@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");
h1.page-title {
  font-size: 28px;
  font-weight: 600;
  color: #40499a;
}

/* ============================================================
   QDNA Pro — Design Tokens (central) — compiled from _design-tokens.scss
   ------------------------------------------------------------
   Drop-in CSS for file:// pages (homepage-mockup, tasklist-page,
   prototype previews). Mirrors the canonical _design-tokens.scss
   1:1; if you edit one, edit the other.

   Two layers:
     A. PRIMITIVES — raw Figma values.
     B. SEMANTIC TOKENS — reference primitives via var().

   Generated 2026-05-19 (FLY BABY FLY overnight migration).
   ============================================================ */
:root {
  /* ---------- Greys (Figma Colors/Grey/*) ---------- */
  --c-grey-950: #0b0b0d;
  --c-grey-900: #18181c;
  --c-grey-800: #2e3036;
  --c-grey-700: #40444d;
  --c-grey-600: #565b66;
  --c-grey-500: #6b7280;
  --c-grey-400: #a6aab3;
  --c-grey-300: #c4c7cc;
  --c-grey-200: #d1d5db;
  --c-grey-100: #e7e9ec;
  --c-grey-50: #f0f1f2;
  /* ---------- Action purples (Figma Colors/Purple/*) ---------- */
  --c-purple-700: #2a3268;
  --c-purple-600: #333a7b;
  --c-purple-500: #40499a;
  --c-purple-400: #5a64b8;
  --c-purple-300: #8a92d0;
  --c-purple-200: #a5acff;
  --c-purple-100: #c0c5ff;
  --c-purple-50: #e6e9ff;
  /* ---------- Action highlight (Figma Purple HIGHLIGHT/*) ---------- */
  --c-action-500: #4652f3;
  --c-action-600: #3540d6;
  --c-action-700: #2a36b8;
  /* ---------- Signal colours (semantic-ish primitives) ---------- */
  --c-signal-green-bg: #c5f5e2;
  --c-signal-green-text: #428b6e;
  --c-signal-green-100: #d8f4e3;
  --c-signal-yellow-bg: #feedb8;
  --c-signal-yellow-text: #bf7202;
  --c-signal-blue-bg: #e6eff9;
  --c-signal-blue-text: #6a8ab4;
  --c-signal-red-bg: #fee3e3;
  --c-signal-red-text: #c65a5a;
  --c-signal-red-soft: #fff0f0;
  /* Orange + pink pairs (02.07.2026, calendar): orange = the "in progress" event
     status, pink = personal events. Pink bg deliberately equals the tasklist pink
     pastel so the two systems stay visually related. */
  --c-signal-orange-bg: #fdeadc;
  --c-signal-orange-text: #bc6a1f;
  --c-signal-pink-bg: #f6e1e8;
  --c-signal-pink-text: #b25777;
  /* ---------- Favorite / heart (Kim 22.07.2026) ----------
     Red-pink used for the "favorite" heart. Was hardcoded in the heart-mode
     favorite button; promoted to a token so qdnapro-status-badge and the
     favorite button share one source. */
  --c-favorite-heart: #ff4d6a;
  /* ---------- Bright signal accents (vivid; Kim 24.06.2026) ----------
     The muted --c-signal-* are for soft pill backgrounds; these brights are for
     vivid accents (filled borders, fills, the toast warning). */
  --c-success-bright: #1d9e75; /* vivid success green */
  /* Success-dialog ramp, added 18.08.2026 as the mirror of the warn-red one: the
     tone="success" dialog fills a whole surface with green and puts white text on it.
     --c-success-bright (#1d9e75) is too light for that at 3.39:1. These numbers were
     picked to match the red dialog's proportions almost exactly, so the two dialogs
     feel like one family: 500 carries white at 4.91:1 (red: 4.83), and 900 is the solid
     button, 3.35:1 away from the surface (red: 3.34) with white at 14:1 on it.
     300 is the optional badge circle, decorative only. */
  --c-success-900: #04241c;
  --c-success-700: #0b4d38;
  --c-success-500: #12805e;
  --c-success-300: #7fd8b8;
  --c-warning-bright-bg: #fff3cd; /* vivid warning yellow set (toast reference) */
  --c-warning-bright-text: #9a6a10;
  --c-warning-bright-border: #f0d060;
  /* ---------- Warning / danger ramp ---------- */
  --c-warn-amber-500: #d97706;
  --c-warn-amber-600: #b45309;
  --c-warn-orange-500: #ea580c;
  --c-warn-orange-600: #c2410c;
  /* 900/700/600 added 18.08.2026 for the danger dialog (qdnapro-bottom-sheet /
     -popover tone="danger"). Kim picked red-400 as the surface and red-300 for the
     icon badge on it; the ramp already had both. What it did NOT have is anything
     readable ON that surface: white text scores 2.77:1 for the title and 2.05:1 for
     the body, well under the 3.0 / 4.5 AA floors, so this dialog reads dark-on-light
     instead of the purple dialog's light-on-dark. red-900 is that text colour (5.84
     title / 4.60 body at 85%) and red-700 is the solid confirm button (10.0:1 with
     white on it). red-600 is the mid-step the popover close circle uses.
     The ramp already had a 600 for amber and orange, so those only fill a gap. */
  --c-warn-red-900: #450a0a;
  --c-warn-red-700: #7f1d1d;
  --c-warn-red-600: #991b1b;
  --c-warn-red-500: #dc2626;
  --c-warn-red-400: #f87171;
  --c-warn-red-300: #fca5a5;
  --c-warn-yellow-500: #fbbf24;
  --c-warn-yellow-600: #f59e0b;
  /* ---------- Toned dialog surfaces (qdnapro-bottom-sheet / -popover tone=…) ----------
     Kim's own colour set for the three verdict dialogs (Pulse "Correct!", "Beetje goed,
     beetje fout", "Helaas, niet juist"), 03.09.2026. One surface, one card fill (the
     darker option blocks on the surface), one solid button and one grab-handle colour
     per tone. These replace the earlier red-500/success-500 dialog surfaces so EVERY
     toned dialog in the app reads as one family with the Pulse sheets. The warning
     tone has a second card fill for an option that was WRONG (a touch redder than the
     right one) - a deliberate design choice, not a slip. Contrast was measured and
     accepted by Kim as-is (green surface 2.4:1 for the 28px title, green card 4.1:1
     for body text); do not "fix" these numbers without her. */
  --c-dialog-danger-surface: #ff3a30;
  --c-dialog-danger-card: #b5251e;
  --c-dialog-danger-button: #cc2e26;
  --c-dialog-danger-grab: #cc2e26;
  --c-dialog-success-surface: #58b992;
  --c-dialog-success-card: #428b6e;
  --c-dialog-success-button: #428b6e;
  --c-dialog-success-grab: #2f5d4a;
  --c-dialog-warning-surface: #ef8e02;
  --c-dialog-warning-card: #bf7202;
  --c-dialog-warning-card-wrong: #bf5a02;
  --c-dialog-warning-button: #bf7202;
  --c-dialog-warning-grab: #8f5501;
  /* ---------- White + black alphas ---------- */
  --c-white-04: rgba(255, 255, 255, 0.04);
  --c-white-06: rgba(255, 255, 255, 0.06);
  --c-white-08: rgba(255, 255, 255, 0.08);
  --c-white-10: rgba(255, 255, 255, 0.10);
  --c-white-12: rgba(255, 255, 255, 0.12);
  --c-white-14: rgba(255, 255, 255, 0.14);
  --c-white-22: rgba(255, 255, 255, 0.22);
  --c-white-28: rgba(255, 255, 255, 0.28);
  --c-white-45: rgba(255, 255, 255, 0.45);
  --c-white-55: rgba(255, 255, 255, 0.55);
  --c-white-65: rgba(255, 255, 255, 0.65);
  --c-white-70: rgba(255, 255, 255, 0.70);
  --c-white-85: rgba(255, 255, 255, 0.85);
  --c-white-90: rgba(255, 255, 255, 0.90);
  --c-black-06: rgba(0, 0, 0, 0.06);
  --c-black-08: rgba(0, 0, 0, 0.08);
  --c-black-12: rgba(0, 0, 0, 0.12);
  --c-black-30: rgba(0, 0, 0, 0.30);
  --c-black-40: rgba(0, 0, 0, 0.40);
  --c-black-45: rgba(0, 0, 0, 0.45);
  /* ---------- Brand purple alphas ---------- */
  --c-action-08: rgba(70, 82, 243, 0.08);
  --c-action-12: rgba(70, 82, 243, 0.12);
  --c-action-18: rgba(70, 82, 243, 0.18);
  --c-action-22: rgba(70, 82, 243, 0.22);
  --c-action-25: rgba(70, 82, 243, 0.25);
  --c-action-30: rgba(70, 82, 243, 0.30);
  --c-action-40: rgba(70, 82, 243, 0.40);
  --c-action-50: rgba(70, 82, 243, 0.50);
  --c-action-70: rgba(70, 82, 243, 0.70);
  --c-purple-soft-12: rgba(64, 73, 154, 0.12);
  --c-purple-soft-18: rgba(64, 73, 154, 0.18);
  --c-purple-200-30: rgba(165, 172, 255, 0.30);
  --c-purple-200-50: rgba(165, 172, 255, 0.50);
  /* ============================================================
     LAYER B — Semantic tokens (LIGHT)
     ============================================================ */
  /* Brand */
  --c-brand-purple: var(--c-purple-500);
  --c-brand-purple-hover: var(--c-purple-600);
  --c-brand-purple-press: var(--c-purple-700);
  --c-purple-highlight: var(--c-action-500);
  /* Surfaces */
  /* Was #ebedfb, but html/body shipped #e6e9ff via a SCSS variable, so two
     near-identical page purples lived side by side (52 uses of #e6e9ff
     against 5 of the token). Aligned ON the value everyone already sees, so
     wiring the page onto this token changed nothing visually. The five
     places that already used the token shift by ~2 points and are now in
     step with the rest. [Kim 2026-08-07] */
  --c-bg-page: #e6e9ff;
  /* Eén trap DONKERDER dan de pagina, voor een vlak dat een paneel moet zijn
     zonder wit te worden: de audit trail naast de witte panelen. Halverwege
     --c-purple-50 (de pagina) en --c-purple-100 (#c0c5ff), want die volgende
     trap in de schaal is als groot vlak te verzadigd. Vulde een gat: hiervoor
     was de enige tint hiertussen --c-border-tree-bright, een RAND-token.
     [Kim 10.08.2026] */
  --c-bg-page-sunken: #dde0f7;
  --c-bg-card: #ffffff;
  --c-bg-card-hover: #f7f8fa;
  --c-bg-secondary-purple: var(--c-purple-50);
  --c-bg-subtle-purple: #f3f5ff;
  --c-bg-subtle-hover: var(--c-grey-50);
  /* Overlay frame
     De schil die ELK gecentreerd venster draagt: `qdnapro-modal` en de
     zelfstandige overlays die `.qos-*` gebruiken (zie
     components/v2/overlay-shell/_overlay-shell.scss). Ze lezen dezelfde
     tokens, zodat de frames niet meer los van elkaar kunnen drijven zoals de
     met-de-hand-gekopieerde versies deden: vijf kopieen, vijf verschillende
     scrims en z-indexen. [Kim 19.08.2026] */
  --overlay-z: 9000;
  /* Geopend VANUIT een ander venster (formule-bouwer, opmaakregels): moet
     boven de "altijd bovenop"-laag van de floweditor (9300) uitkomen, anders
     landt hij ACHTER de modal waaruit je hem net opende. Gemeten, niet
     aangenomen; de uitleg staat in _formula-editor.scss. */
  --overlay-z-nested: 9400;
  --overlay-scrim: rgba(11, 11, 13, 0.45);
  --overlay-frame-bg: var(--c-grey-50);
  --overlay-frame-border: #ffffff;
  --overlay-frame-radius: 16px;
  --overlay-frame-shadow: 0 4px 4px rgba(0, 0, 0, 0.30), 0 8px 12px 6px rgba(0, 0, 0, 0.15);
  --overlay-window-bg: var(--c-bg-card);
  --overlay-window-border: var(--c-grey-300);
  --overlay-window-radius: 12px;
  /* Sidebar */
  --c-sidebar-bg: #3a4290;
  --c-sidebar-bg-active: #ffffff;
  --c-sidebar-icon: #c5c9eb;
  --c-sidebar-icon-active: var(--c-brand-purple);
  --c-sidebar-active-bg: #ffffff;
  /* Text */
  --c-text-body: var(--c-grey-950);
  --c-text-muted: #6e7280;
  --c-text-disabled: #898e99;
  --c-text-disabled-pp: #8c92c2;
  --c-text-heading: #1a1f4d;
  --c-text-on-action: #ffffff;
  /* Tag colours */
  --c-tag-handover-bg: #e7defb;
  --c-tag-handover-text: #6b3fb8;
  --c-tag-critical-bg: #ffe1de;
  --c-tag-critical-text: #c33a30;
  --c-tag-deadline-bg: #ffe2dc;
  --c-tag-deadline-text: #c33a30;
  --c-tag-warning-bg: #fff2d6;
  --c-tag-warning-text: #a06400;
  --c-tag-new-bg: var(--c-signal-green-100);
  --c-tag-new-text: #1f7a48;
  /* Chip palette - the 16 colour families of qdnapro-tag.
     These lived as 88 loose hex values inside _tag.scss while label-circle,
     activity-card, number-indicator-badge, grid-tile, list-row and picker-row
     retyped the same values. Promoted to tokens so there is one source.
     Family names are taken verbatim from the component's tag-color-* classes,
     including the inconsistent ones (bright-blue-2, dark-pink, dark-purple).
     [Kim 2026-08-07] */
  --c-chip-grey-bg: var(--c-grey-50);
  --c-chip-grey-hover: var(--c-border-card);
  --c-chip-grey-text: #1e1f20;
  --c-chip-grey-2-bg: var(--c-grey-300);
  --c-chip-grey-2-hover: var(--c-grey-400);
  --c-chip-grey-2-text: #1e1f20;
  --c-chip-red-bg: var(--c-signal-red-bg);
  --c-chip-red-hover: #fcc6c6;
  --c-chip-red-text: #633030;
  --c-chip-red-2-bg: #fbaaaa;
  --c-chip-red-2-hover: #f98d8d;
  --c-chip-red-2-text: #633030;
  --c-chip-yellow-bg: #fef6db;
  --c-chip-yellow-hover: var(--c-signal-yellow-bg);
  --c-chip-yellow-text: #655522;
  --c-chip-yellow-2-bg: #fde594;
  --c-chip-yellow-2-hover: #fddc71;
  --c-chip-yellow-2-text: #655522;
  --c-chip-green-bg: #e2faf1;
  --c-chip-green-hover: #a8f1d4;
  --c-chip-green-text: #2f5d4a;
  --c-chip-green-2-bg: #8becc5;
  --c-chip-green-2-hover: #6ee7b7;
  --c-chip-green-2-text: #2f5d4a;
  --c-chip-blue-bg: var(--c-signal-blue-bg);
  --c-chip-blue-hover: #cedef3;
  --c-chip-blue-text: #37475a;
  --c-chip-blue-2-bg: #b5ceed;
  --c-chip-blue-2-hover: #9dbde7;
  --c-chip-blue-2-text: #37475a;
  --c-chip-bright-blue-bg: #85a1ec;
  --c-chip-bright-blue-hover: #5d82e5;
  --c-chip-bright-blue-text: #192a5a;
  --c-chip-bright-blue-2-bg: #d6e0f9;
  --c-chip-bright-blue-2-hover: #aec1f2;
  --c-chip-bright-blue-2-text: #192a5a;
  --c-chip-pink-bg: var(--c-signal-pink-bg);
  --c-chip-pink-hover: #eec3d0;
  --c-chip-pink-text: #562d3a;
  --c-chip-dark-pink-bg: #e5a6b9;
  --c-chip-dark-pink-hover: #dd88a1;
  --c-chip-dark-pink-text: #562d3a;
  --c-chip-purple-bg: #ebe9fb;
  --c-chip-purple-hover: #d8d2f7;
  --c-chip-purple-text: #413b5e;
  --c-chip-dark-purple-bg: #c4bcf3;
  --c-chip-dark-purple-hover: #b1a5ef;
  --c-chip-dark-purple-text: #413b5e;
  /* ---------- Battle palette (Pulse gamification battles) ----------
     BOARD-pulse-gamification-battles, besluit 27/36c (kaart 13a, a
     repair card off the kaart 17 verification). Team colours are a
     FIXED, contrasting palette assigned by colour_index (0, 1, 2, ...) -
     never user-picked, never reused as a semantic colour elsewhere.
     Podium colours are fixed BY PLACE: amber (1st), teal (2nd), coral
     (3rd); gold is an accent only, not a 4th podium colour.
     No dedicated "battle" primitives exist in Figma, so every token
     below points at the closest EXISTING primitive/chip colour (chip-
     palette rule: never a raw hex). The hex value in each comment is the
     CURRENT resolved value of that primitive, not a new literal here.
     Distances mentioned in the hand-off report are plain RGB Euclidean
     distance, used only to reason about mutual contrast - not a formal
     colour-science pass, so treat the exact picks as a judgement call,
     not a verified designer-supplied hex. */
  /* Team 0/1 re-mapped 14.09.2026 to Kim's campagne-tile design (coral red
     vs amber, sampled from her Figma) so the common 2-team battle matches
     that design everywhere the tokens are used (tile, strip, chip, reveal).
     The old lavender/teal pair moved to 2/3; orange and yellow dropped out
     because they sat too close to the new red/amber in hue. Red vs amber
     still reads apart under most colour-vision deficiencies (large
     lightness gap, same idea as the old orange/yellow pairing). */
  --c-battle-team-0: #e8564b; /* coral red - team A in Kim's campagne-tile design (14.09.2026) */
  --c-battle-team-1: #f2b33c; /* amber - team B in that same design */
  --c-battle-team-2: var(--c-purple-300); /* #8a92d0 - lavender/violet (team 0 until 14.09.2026) */
  --c-battle-team-3: var(--c-success-bright); /* #1d9e75 - teal/green (team 1 until 14.09.2026) */
  --c-battle-team-4: var(--c-chip-dark-pink-bg); /* #e5a6b9 - pink/rose; also the only team colour with a genuine dark-mode value, inherited for free from the chip palette above */
  --c-battle-team-5: #56ccf2; /* sky/cyan - HERZIEN 16.09.2026 (Kim, finale-eindscherm): het neutrale grijs (--c-grey-600) las als vies zwart op de paarse feestzaal. Cyaan was de open plek in het hue-wiel (rood/amber/lavendel/teal/roze bezet); de CVD-troef van kleurloos grijs ruilen we in voor een groot lichtheids-gat met teal (donker) en de warme tinten. */
  /* Ink ON a team fill - the battle-bar hero writes the averages inside the
     bar halves. FIXED values that do not flip with dark mode, because the
     fills do not flip either (same "vaste inkt op een vaste vulling" rule
     as the reveal stage). Only the light fills need one; every other team
     falls back to --c-text-on-action (white) in the component. Measured:
     white on amber 1.9:1, on lavender 2.9:1, on pink 2.1:1 - all unreadable
     at 21px; these inks sit >= 5:1 on their fill. */
  --c-battle-team-1-ink: #6b5418; /* dark amber-brown, matches the design's dark value on the amber half */
  --c-battle-team-2-ink: #262c56; /* dark indigo on the lavender fill */
  --c-battle-team-4-ink: #5c2437; /* dark rose on the pink fill */
  --c-battle-team-5-ink: #14404f; /* dark petrol on the new cyan fill (16.09.2026) - white on #56ccf2 is ~1.9:1 */
  /* HERZIEN 16.09.2026 (Kim, finale-podium): plek 1 was #d97706 amber en las
     als oranje, plek 2 was #12805e teal en las als groen. Ze dragen nu de
     TEAMKLEUREN die Kim al kent uit de campagne-tile: geel (team-1) en
     lichtblauw (team-5). Eén bron, dus het oude podium, de finale-zuilen en
     de reken-loader wisselen samen mee. Plek 3 (koraal) blijft. */
  --c-battle-podium-1: var(--c-battle-team-1); /* #f2b33c - geel (1e plek) */
  --c-battle-podium-1-ink: var(--c-battle-team-1-ink); /* #6b5418 - donker amberbruin op het gele vlak */
  --c-battle-podium-2: var(--c-battle-team-5); /* #56ccf2 - lichtblauw (2e plek) */
  --c-battle-podium-2-ink: var(--c-battle-team-5-ink); /* #14404f - donker petrol; wit op #56ccf2 is ~1.9:1 */
  --c-battle-podium-3: var(--c-favorite-heart); /* #ff4d6a - closest existing token to koraal (no coral primitive exists in this file); still the least-bad approximation, not a verified exact match */
  --c-battle-podium-3-ink: var(--c-text-on-action); /* white ink; favorite-heart is dark enough to need it */
  /* Borders */
  --c-border-soft: rgba(0, 0, 0, 0.07);
  --c-border-soft-2: #e6e9ef;
  --c-border-card: #e1e3e6;
  --c-border-tree: #d4d8ec;
  --c-border-tree-bright: #d4d8ee;
  /* Shadows */
  --shadow-card: 0 1px 2px rgba(20, 25, 80, 0.04),
                           0 4px 16px rgba(20, 25, 80, 0.04);
  /* Focus */
  --focus-ring: var(--c-brand-purple);
  --focus-glow: var(--c-action-25);
  /* Radii — 4-based scale (matches the spacing scale). [Kim 24.06.2026] */
  --r-1: 4px;
  --r-2: 8px;
  --r-3: 12px;
  --r-4: 16px;
  --r-5: 20px;
  /* Semantic radius tokens now reference the scale (were off-scale 8/10/14).
     Migration: --r-row 10→12, --r-card 14→16. Affects every component that uses them. */
  --r-btn: var(--r-2);
  --r-button: var(--r-2);
  --r-row: var(--r-3);
  --r-card: var(--r-4);
  --r-pill: 999px;
  /* Spacing scale */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 20px;
  --s-6: 24px;
  --s-7: 32px;
  --s-8: 40px;
  /* Typography */
  --ff: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semi: 600;
}

/* ============================================================
   LAYER B — Semantic tokens (DARK)
   ------------------------------------------------------------
   Triggered by ANY of:
     [data-theme-dark]              (boolean, used by tasklist on <html>)
     [data-theme="dark"]            (value, used by some components)
     body[data-theme="dark"]        (value, used by homepage)
   ============================================================ */
[data-theme-dark],
[data-theme=dark],
body[data-theme=dark] {
  /* Brand (lifted for dark contrast) */
  --c-brand-purple: var(--c-purple-200);
  --c-brand-purple-hover: var(--c-purple-100);
  --c-brand-purple-press: var(--c-purple-300);
  --c-purple-highlight: var(--c-action-500);
  /* Surfaces */
  --c-bg-page: var(--c-grey-950);
  /* Donker: de paginakleur is al het diepste grijs, dus "verzonken" kan daar
     niet donkerder. Het paneel gaat één trap OMHOOG, wat in het donker
     hetzelfde doet: het vlak los zien van de pagina. */
  --c-bg-page-sunken: var(--c-grey-900);
  --c-bg-card: var(--c-grey-800);
  --c-bg-card-hover: var(--c-grey-700);
  --c-bg-secondary-purple: var(--c-grey-950);
  --c-bg-subtle-purple: var(--c-grey-900);
  --c-bg-subtle-hover: var(--c-grey-600);
  /* Overlay frame (donker) — precies de waarden die in het dark-blok van
     `qdnapro-modal` stonden, nu op een plek. LET OP: `qdnapro-wizard-modal`
     had hier eigen, afwijkende tinten (#1f2229 / #2a2d36); die zijn hierin
     opgegaan, dus een wizard ziet er in het donker nu uit als een modal. */
  --overlay-scrim: rgba(0, 0, 0, 0.65);
  --overlay-frame-bg: #2e3036;
  --overlay-frame-border: rgba(255, 255, 255, 0.08);
  --overlay-frame-shadow: 0 4px 4px rgba(0, 0, 0, 0.50), 0 8px 12px 6px rgba(0, 0, 0, 0.30);
  --overlay-window-bg: #363940;
  --overlay-window-border: #565b66;
  /* Sidebar */
  --c-sidebar-bg: var(--c-grey-800);
  --c-sidebar-bg-active: var(--c-grey-700);
  --c-sidebar-icon: var(--c-grey-300);
  --c-sidebar-icon-active: #ffffff;
  --c-sidebar-active-bg: var(--c-grey-700);
  /* Text */
  --c-text-body: var(--c-grey-50);
  --c-text-muted: var(--c-grey-400);
  --c-text-disabled: var(--c-grey-500);
  --c-text-disabled-pp: var(--c-grey-500);
  --c-text-heading: var(--c-grey-50);
  --c-text-on-action: #ffffff;
  /* Borders */
  --c-border-soft: var(--c-white-08);
  --c-border-soft-2: var(--c-white-08);
  --c-border-card: var(--c-white-10);
  --c-border-tree: var(--c-white-12);
  --c-border-tree-bright: var(--c-white-12);
  /* Shadows */
  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.40),
                           0 4px 16px rgba(0, 0, 0, 0.40);
  /* Chip palette (dark) - same 16 families, own dark values.
     Most are genuinely new colours that exist nowhere in LAYER A,
     so unlike the rest of this block they are literal hex. */
  --c-chip-grey-bg: var(--c-grey-600);
  --c-chip-grey-hover: #6b7180;
  --c-chip-grey-text: #e1e3e6;
  --c-chip-grey-2-bg: var(--c-grey-700);
  --c-chip-grey-2-hover: #54596b;
  --c-chip-grey-2-text: #e1e3e6;
  --c-chip-red-bg: #5a2b2b;
  --c-chip-red-hover: #7a3838;
  --c-chip-red-text: #fbaaaa;
  --c-chip-red-2-bg: #7a3838;
  --c-chip-red-2-hover: #9a4747;
  --c-chip-red-2-text: var(--c-signal-red-bg);
  --c-chip-yellow-bg: #5a4d1f;
  --c-chip-yellow-hover: #7a6b2d;
  --c-chip-yellow-text: #fde594;
  --c-chip-yellow-2-bg: #7a6b2d;
  --c-chip-yellow-2-hover: #9a8a3b;
  --c-chip-yellow-2-text: #fef6db;
  --c-chip-green-bg: #2a5544;
  --c-chip-green-hover: #3d7a62;
  --c-chip-green-text: #8becc5;
  --c-chip-green-2-bg: #3d7a62;
  --c-chip-green-2-hover: #4d9c7c;
  --c-chip-green-2-text: #e2faf1;
  --c-chip-blue-bg: #2e3e54;
  --c-chip-blue-hover: #445a78;
  --c-chip-blue-text: #b5ceed;
  --c-chip-blue-2-bg: #445a78;
  --c-chip-blue-2-hover: #5a7596;
  --c-chip-blue-2-text: var(--c-signal-blue-bg);
  --c-chip-bright-blue-bg: #3a4a8a;
  --c-chip-bright-blue-hover: #4d5fae;
  --c-chip-bright-blue-text: #d6e0f9;
  --c-chip-bright-blue-2-bg: #2a3560;
  --c-chip-bright-blue-2-hover: #3a4a8a;
  --c-chip-bright-blue-2-text: #85a1ec;
  --c-chip-pink-bg: #4e2a36;
  --c-chip-pink-hover: #6e3d50;
  --c-chip-pink-text: #e5a6b9;
  --c-chip-dark-pink-bg: #6e3d50;
  --c-chip-dark-pink-hover: #8a516a;
  --c-chip-dark-pink-text: var(--c-signal-pink-bg);
  --c-chip-purple-bg: #3a3555;
  --c-chip-purple-hover: #524a7a;
  --c-chip-purple-text: #c4bcf3;
  --c-chip-dark-purple-bg: #524a7a;
  --c-chip-dark-purple-hover: #6c629a;
  --c-chip-dark-purple-text: #ebe9fb;
  /* Battle palette (dark) - no line needed here for most --c-battle-*
     tokens: they point at raw primitives (purple/success/warn/grey ramp),
     and per this file's own convention primitives do NOT get a dark
     override, only semantic and chip tokens do. The one exception,
     --c-battle-team-4, already tracks dark mode for free because it
     points at --c-chip-dark-pink-bg, redefined above with its own dark
     value - no extra declaration required. */
  /* Focus */
  --focus-ring: var(--c-purple-200);
  --focus-glow: var(--c-action-40);
}

/* ============================================================
   Motion utilities (shared)
   ------------------------------------------------------------
   .qdnapro-shake — brief horizontal nudge used to draw attention
   to a field that failed validation. Add the class to trigger it;
   the owning component removes it on `animationend` so it can
   re-fire on a repeated trigger. Standard form-validation cue.
   ============================================================ */
@keyframes qdnapro-shake {
  10%, 90% {
    transform: translateX(-1px);
  }
  20%, 80% {
    transform: translateX(2px);
  }
  30%, 50%, 70% {
    transform: translateX(-4px);
  }
  40%, 60% {
    transform: translateX(4px);
  }
}
.qdnapro-shake {
  animation: qdnapro-shake 400ms cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-shake {
    animation: none;
  }
}
/* ============================================================
   .qdnapro-slide-pages — horizontal page switch (one level deep)
   ------------------------------------------------------------
   The "stap 1 schuift naar links, stap 2 schuift in" motion. It lived in THREE
   hand-written copies before 03.08.2026, all with the same numbers typed out again:
     - qdnapro-event-sheet   (.es-pages / .es-page-main / .es-page-sub / .es-sub-open)
     - the PWA Herhalen-sheet (.ao-repeat-pages / -page-list / -page-preview, plain
       markup inside a qdnapro-bottom-sheet - so NOT in a component at all)
     - the PWA location/department chooser (.lp-pages)
   Kim 03.08.2026, after catching the third copy: make it one vocabulary. It lives here,
   next to .qdnapro-shake, because that is where cross-component motion already lives:
   every v2 component depends on design-tokens, bo2 gets it through style-v1.css and the
   PWA through sync-pwa-components, so no new component, dependency or registry entry.

   It is deliberately CSS-ONLY and shell-agnostic. The three consumers sit in a bottom
   sheet, in a popover and in a plain view, and each already owns its own open/close
   function - what was duplicated is the geometry, not the logic.

   MARKUP
     <div class="qdnapro-slide-pages qdnapro-slide-pages--auto">   (or --frame)
       <div class="qdnapro-slide-page qdnapro-slide-page--first is-current">…</div>
       <div class="qdnapro-slide-page qdnapro-slide-page--second">…</div>
     </div>
   STATE (two class toggles, nothing else)
     - is-second on the viewport while page 2 is showing
     - is-current on exactly ONE page: the one you see
   The two are separate on purpose: is-second says which DIRECTION the first page leaves
   in, is-current says which page is visible. Toggling only is-current would slide page 1
   out to the RIGHT, and then "back" reads as another step forward.

   TWO HEIGHT MODES, and picking the wrong one is the only real trap here:
     --frame  the viewport has a height of its own (a sheet with a fixed detent). Every
              page fills it; page 1 stays in flow. Nothing is ever measured. Use this
              whenever you can - see the fixed-height note in the bottom-sheets skill for
              why measuring a sheet's content height turned into whack-a-mole.
     --auto   the viewport grows with its content (a dialog that must not be taller than
              the list it shows). The page you SEE is in flow and sets the height, the
              other is taken out of flow so it cannot inflate it. The consumer is then
              responsible for the height DURING the slide: while page 2 is taller than
              page 1, the viewport jumps to the new height at once and overflow:hidden
              clips the leaving page. Pin min-height to the taller of the two for the
              length of the transition and release it after (see
              _slideChooserToStep in the PWA's 0-core.js).
   ============================================================ */
.qdnapro-slide-pages {
  position: relative;
  overflow: hidden;
  transition: min-height 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-slide-page {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  transform: translateX(105%);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.32s ease;
}

.qdnapro-slide-page.is-current {
  transform: translateX(0);
  opacity: 1;
  pointer-events: auto;
}

/* Page 1 leaves to the LEFT instead of to the right, and fades FULLY out - any residual
   opacity shows ghost rows through page 2, which is transparent over the panel. */
.qdnapro-slide-pages.is-second .qdnapro-slide-page--first:not(.is-current) {
  transform: translateX(-28%);
}

/* --frame: the viewport brings its own height. */
.qdnapro-slide-pages--frame .qdnapro-slide-page {
  height: 100%;
}

.qdnapro-slide-pages--frame .qdnapro-slide-page--first {
  position: relative;
}

/* --auto: the page you see is in flow, so the viewport is as tall as that page and no
   taller. Specificity 0,3,0, so it beats the out-of-flow base rule. */
.qdnapro-slide-pages--auto .qdnapro-slide-page.is-current {
  position: relative;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-slide-pages,
  .qdnapro-slide-page {
    transition: none;
  }
}
/* ============================================================
   .qdna-pager-* — horizontal PAGER (N pages, dots, swipe)
   ------------------------------------------------------------
   The looks behind window.QdnaPager (web/js/components/v2/pager/qdna-pager.js), used
   by the `slider` attribute of BOTH shells the app swaps between per platform:
   qdnapro-bottom-sheet (phone) and qdnapro-popover (>=1024px). It lives here for the
   same reason .qdnapro-slide-pages does: shell-agnostic, every v2 component already
   depends on design-tokens, so no new dependency and no second copy. [Kim 04.09.2026]

   Where slide-pages is a ONE-LEVEL wizard switch (page 1 leaves, page 2 arrives), this
   is a real pager: any number of pages, a dots strip, a drag gesture, and a height that
   either follows the active page or stays on the tallest one.
   ============================================================ */
.qdna-pager-viewport {
  overflow: hidden;
  flex-shrink: 0;
  /* A floor for the height, so a set with one short page does not open as a cramped
     slit. The JS writes `height` inline; min-height wins over it by definition, so a
     consumer only has to set this variable. Default 0 = no floor. */
  min-height: var(--pager-min-h, 0);
  /* Written by the JS (the active page, or the tallest one in heightMode "max"); the
     transition is what makes a longer page grow into place instead of jumping. */
  transition: height 0.24s ease;
}

.qdna-pager-track {
  display: flex;
  /* Load-bearing, not cosmetic: a flex row stretches its items to the tallest one by
     default, so every page would measure the SAME height and "auto" could never
     animate. */
  align-items: flex-start;
  will-change: transform;
  transition: transform 0.26s cubic-bezier(0.22, 0.9, 0.3, 1);
}

.qdna-pager-page {
  flex: 0 0 100%;
  max-width: 100%;
  /* border-box is load-bearing too: flex-basis:100% resolves against the viewport's
     CONTENT width, so a page with its own horizontal padding rendered WIDER than the
     viewport and every next page drifted a little further out of frame (measured
     04.09.2026: 366px pages in a 358px viewport, so page 3 sat 24px off). */
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.qdna-pager-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 14px 0 4px;
  flex-shrink: 0;
}

.qdna-pager-dot {
  width: 9px;
  height: 9px;
  padding: 0;
  border: none;
  border-radius: var(--r-pill);
  background: var(--c-black-12);
  cursor: pointer;
  /* A 9px dot is far below the 44px touch target, so grow the HIT area without growing
     the dot: a transparent border would change the painted size, a pseudo-element does
     not. */
  position: relative;
}

.qdna-pager-dot::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 40px;
  height: 40px;
  transform: translate(-50%, -50%);
}

.qdna-pager-dot.is-active {
  width: 26px;
  border-radius: 5px;
  background: var(--c-grey-400);
}

/* A page's data-tone colours its dot with the SAME tokens the toned dialogs use, so the
   dots row reads as a summary of the set. Inactive dots keep the colour at a lower
   weight — that is the point of colouring them at all. */
.qdna-pager-dot[data-tone=success] {
  background: var(--c-dialog-success-surface);
}

.qdna-pager-dot[data-tone=danger] {
  background: var(--c-dialog-danger-surface);
}

.qdna-pager-dot[data-tone=warning] {
  background: var(--c-dialog-warning-surface);
}

.qdna-pager-dot[data-tone]:not(.is-active) {
  opacity: 0.45;
}

/* Reduced motion: the pager still WORKS, it just stops sliding and growing. */
@media (prefers-reduced-motion: reduce) {
  .qdna-pager-viewport,
  .qdna-pager-track {
    transition: none;
  }
}
.qos-root {
  position: fixed;
  inset: 0;
  z-index: var(--qos-z, var(--overlay-z));
}

.qos-scrim {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: var(--overlay-scrim);
  animation: qos-scrim-in 160ms ease-out;
}

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

.qos-dialog {
  display: flex;
  width: 100%;
  min-width: 0;
  max-width: var(--qos-w, 560px);
  max-height: calc(100vh - 48px);
  padding: 8px;
  background: var(--overlay-frame-bg);
  border: 0.5px solid var(--overlay-frame-border);
  border-radius: var(--overlay-frame-radius);
  box-shadow: var(--overlay-frame-shadow);
  animation: qos-dialog-in 200ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.qos-window {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  max-height: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 16px 12px;
  background: var(--overlay-window-bg);
  border: 0.5px solid var(--overlay-window-border);
  border-radius: var(--overlay-window-radius);
  overflow: hidden;
}

.qos-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 0 4px;
  flex-shrink: 0;
}

.qos-head-icon {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--c-purple-500);
}

.qos-head-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1 1 auto;
}

.qos-title {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-family: "Inter", sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: var(--c-purple-500);
  text-transform: none;
  letter-spacing: normal;
}

.qos-subtitle:empty {
  display: none;
}

.qos-subtitle {
  margin: 0;
  font-family: "Inter", sans-serif;
  font-size: 13px;
  line-height: 20px;
  color: var(--c-text-muted);
}

.qos-close {
  flex-shrink: 0;
}

.qos-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 4px;
  scroll-padding-top: 8px;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  line-height: 24px;
  color: var(--c-grey-950);
}

.qos-foot {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  gap: 16px;
  padding: 4px 0 0;
  flex-shrink: 0;
}

.qos-foot-spacer {
  flex: 1 1 auto;
}

.qos-foot[hidden] {
  display: none;
}

.qos-scrim ::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.qos-scrim ::-webkit-scrollbar-track {
  background: transparent;
}

.qos-scrim ::-webkit-scrollbar-corner {
  background: transparent;
}

.qos-scrim ::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 8px;
  transition: background 160ms ease;
}

.qos-scrim *:hover::-webkit-scrollbar-thumb,
.qos-scrim *:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
}

.qos-scrim ::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.34);
}

@keyframes qos-scrim-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes qos-dialog-in {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qos-scrim,
  .qos-dialog {
    animation: none;
  }
}
[data-theme=dark] .qos-title,
[data-theme-dark] .qos-title,
[data-theme=dark] .qos-body,
[data-theme-dark] .qos-body {
  color: #f0f1f2;
}

[data-theme=dark] .qos-subtitle,
[data-theme-dark] .qos-subtitle {
  color: #b8bcc4;
}

.btn {
  display: inline-flex;
  gap: 1rem;
  border-radius: 0.5rem;
  padding: 1rem;
  font-size: 16px;
  border: 0;
  background-color: #40499a;
  color: #FFFFFF;
  font-weight: 400;
  border: 1px solid transparent;
  cursor: pointer;
  font-family: "Inter";
}
.btn.btn-size-sm {
  padding: 0.5rem;
  gap: 0.5rem;
}
.btn:focus {
  outline: 0;
}
.btn:hover, .btn.btn-state-hover {
  background-color: #333A7B;
}
.btn:focus-visible, .btn.btn-state-focus {
  background-color: #40499a;
  outline: 1px solid #40499a;
  outline-offset: 2px;
}
.btn:active, .btn.btn-state-active {
  background-color: #7075a2;
}
.btn:disabled, .btn.btn-state-disabled {
  background-color: #f0f1f2;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}
.btn.btn-square {
  aspect-ratio: 1/1;
  padding: 0;
  align-items: center;
  justify-content: center;
  display: inline-flex;
  width: 2.5rem;
  height: 2.5rem;
}

/* 
 * Make skins based on the provided colors at the top
 * the skins are placed in .btn-{skin-name}
 */
.btn-color-primary {
  background-color: #40499a;
  color: #FFFFFF;
  border: 1px solid transparent;
}
.btn-color-primary:hover, .btn-color-primary.btn-state-hover {
  background-color: #333A7B;
}
.btn-color-primary:focus-visible, .btn-color-primary.btn-state-focus {
  background-color: #40499a;
  outline-color: #40499a;
}
.btn-color-primary:active, .btn-color-primary.btn-state-active {
  background-color: #7075a2;
}
.btn-color-primary:disabled, .btn-color-primary.btn-state-disabled {
  background-color: #f0f1f2;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}

.btn-color-orange {
  background-color: #ef8e02;
  color: #FFFFFF;
  border: 1px solid transparent;
}
.btn-color-orange:hover, .btn-color-orange.btn-state-hover {
  background-color: #bf7202;
}
.btn-color-orange:focus-visible, .btn-color-orange.btn-state-focus {
  background-color: #ef8e02;
  outline-color: #ef8e02;
}
.btn-color-orange:active, .btn-color-orange.btn-state-active {
  background-color: #d29c4d;
}
.btn-color-orange:disabled, .btn-color-orange.btn-state-disabled {
  background-color: #f0f1f2;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}

.btn-color-subtle {
  background-color: transparent;
  color: #0B0B0D;
  border: 1px solid transparent;
}
.btn-color-subtle:hover, .btn-color-subtle.btn-state-hover {
  background-color: #F0F1F2;
}
.btn-color-subtle:focus-visible, .btn-color-subtle.btn-state-focus {
  background-color: #f0f1f2;
  outline-color: #0B0B0D;
}
.btn-color-subtle:active, .btn-color-subtle.btn-state-active {
  background-color: #f4f5f6;
}
.btn-color-subtle:disabled, .btn-color-subtle.btn-state-disabled {
  background-color: transparent;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}

.btn-color-secondary {
  background-color: #f0f1f2;
  color: #0B0B0D;
  border: 1px solid transparent;
}
.btn-color-secondary:hover, .btn-color-secondary.btn-state-hover {
  background-color: #c4c7cc;
}
.btn-color-secondary:focus-visible, .btn-color-secondary.btn-state-focus {
  background-color: #f0f1f2;
  outline-color: #0B0B0D;
}
.btn-color-secondary:active, .btn-color-secondary.btn-state-active {
  background-color: #d6d8db;
}
.btn-color-secondary:disabled, .btn-color-secondary.btn-state-disabled {
  background-color: #f0f1f2;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}

.btn-color-secondary-outline {
  background-color: #e6e9ff;
  color: #40499A;
  border: 1px solid #40499A;
}
.btn-color-secondary-outline:hover, .btn-color-secondary-outline.btn-state-hover {
  background-color: #daddf2;
}
.btn-color-secondary-outline:focus-visible, .btn-color-secondary-outline.btn-state-focus {
  background-color: #e6e9ff;
  outline-color: #40499A;
}
.btn-color-secondary-outline:active, .btn-color-secondary-outline.btn-state-active {
  background-color: #e5e7f6;
}
.btn-color-secondary-outline:disabled, .btn-color-secondary-outline.btn-state-disabled {
  background-color: #f0f1f2;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}

.btn-color-secondary-white {
  background-color: transparent;
  color: #40499A;
  border: 1px solid transparent;
}
.btn-color-secondary-white:hover, .btn-color-secondary-white.btn-state-hover {
  background-color: #daddf2;
}
.btn-color-secondary-white:focus-visible, .btn-color-secondary-white.btn-state-focus {
  background-color: #e6e9ff;
  outline-color: #0B0B0D;
}
.btn-color-secondary-white:active, .btn-color-secondary-white.btn-state-active {
  background-color: #e5e7f6;
}
.btn-color-secondary-white:disabled, .btn-color-secondary-white.btn-state-disabled {
  background-color: transparent;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}

.btn-color-secondary-purple {
  background-color: #e6e9ff;
  color: #40499A;
  border: 1px solid transparent;
}
.btn-color-secondary-purple:hover, .btn-color-secondary-purple.btn-state-hover {
  background-color: #daddf2;
}
.btn-color-secondary-purple:focus-visible, .btn-color-secondary-purple.btn-state-focus {
  background-color: #e6e9ff;
  outline-color: #0B0B0D;
}
.btn-color-secondary-purple:active, .btn-color-secondary-purple.btn-state-active {
  background-color: #e5e7f6;
}
.btn-color-secondary-purple:disabled, .btn-color-secondary-purple.btn-state-disabled {
  background-color: #f0f1f2;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}

.btn-color-warning {
  background-color: #f0f1f2;
  color: #C65A5A;
  border: 1px solid transparent;
}
.btn-color-warning:hover, .btn-color-warning.btn-state-hover {
  background-color: #c4c7cc;
}
.btn-color-warning:focus-visible, .btn-color-warning.btn-state-focus {
  background-color: #c4c7cc;
  outline-color: #0B0B0D;
}
.btn-color-warning:active, .btn-color-warning.btn-state-active {
  background-color: #d6d8db;
}
.btn-color-warning:disabled, .btn-color-warning.btn-state-disabled {
  background-color: #f0f1f2;
  color: #898e99;
  border-color: transparent;
  cursor: not-allowed;
}

qdna-input {
  display: inline-block;
  width: 100%;
  position: relative;
}

qdna-input .input-wrapper {
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: 1rem 1.25rem;
  border-radius: 0.5rem;
  background-color: #FFFFFF;
  border: 1px solid #ccc;
  width: 100%;
  line-height: 1rem;
  cursor: pointer;
}
qdna-input .input-wrapper:has(input-prefix) {
  padding: 8px 12px;
}

qdna-input .input-box {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  font-size: 0.875rem;
  color: #0B0B0D;
  padding: 0;
  width: 100%;
}

qdna-input .input-box::placeholder {
  color: #a6aab3;
}

qdna-input[size=sm] .input-wrapper {
  padding: 0.625rem 0.75rem;
}
qdna-input[size=sm] .input-wrapper:has(input-prefix) {
  padding: 4px;
}

qdna-input:hover .input-wrapper,
qdna-input[state=hover] .input-wrapper {
  border-color: #40499A;
}

qdna-input[state=focus] .input-wrapper {
  border-color: #40499A;
  box-shadow: 0 0 0 2px rgba(64, 73, 154, 0.1);
}

qdna-input[state=success] .input-wrapper {
  border-color: #428B6E;
}

qdna-input[state=error] .input-wrapper {
  border-color: #C65A5A;
}

qdna-input[disabled] .input-wrapper {
  background-color: #F0F1F2;
  border-color: transparent;
  color: #898E99;
  cursor: not-allowed;
}

qdna-input[disabled] .input-box {
  color: #898E99;
  cursor: not-allowed;
}

qdna-input .input-icon-prefix {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-right: 0.75rem;
  color: #666;
}

qdna-input .input-external-prefix {
  display: flex;
  align-items: center;
  padding-right: 0.75rem;
}

qdna-input .input-clear {
  display: none;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  font-size: 0.875;
  color: #777;
  cursor: pointer;
}

qdna-input[filled][clearable] .input-clear,
qdna-input[filled][clearable=true] .input-clear {
  display: flex;
}

qdna-input[disabled] .input-clear {
  display: none;
  cursor: not-allowed;
  color: #ccc;
}

qdna-input.qdna-input-as-text .input-wrapper {
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

qdna-input.qdna-input-as-text .input-box {
  padding: 8px;
  border-radius: 4px;
  border: 1px solid #ccc;
}
qdna-input.qdna-input-as-text .input-box:disabled {
  border: none;
  padding-left: 0px;
  padding-right: 0px;
}

.input-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid #C4C7CC;
  border-top: none;
  border-radius: 0 0 8px 8px;
  display: none;
  z-index: 1000;
}

.input-dropdown.open {
  display: block;
}

.input-wrapper.dropdown-open {
  border-radius: 8px 8px 0 0;
}

row-item {
  display: flex;
  align-items: center;
  padding: 6px 12px;
  cursor: pointer;
}

row-item:hover {
  background: #F5F6FA;
}

dropdown-row {
  display: block;
  padding: 8px 12px;
  border-bottom: 1px solid #E0E0E0;
}

dropdown-row:last-child {
  border-bottom: none;
}

qdna-input[type=checkbox] .input-wrapper {
  all: unset;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 6px;
  cursor: pointer;
}

qdna-input[type=checkbox] .input-box {
  all: revert;
  width: 16px;
  height: 16px;
  margin: 0;
  padding: 0;
  vertical-align: middle;
  accent-color: #40499A;
  cursor: pointer;
}

qdna-input[type=checkbox] .checkbox-label {
  all: unset;
  font-size: 14px;
  color: #0B0B0D;
  line-height: 1;
}

qdna-input[type=checkbox][disabled] .input-wrapper {
  opacity: 0.6;
  cursor: not-allowed;
}

.image-circle-ratio {
  width: 29px;
  height: 29px;
  aspect-ratio: 1/1;
  border-radius: calc(infinity * 1px);
  margin-right: 12px;
}

.label {
  display: inline-flex;
  align-items: center;
  align-content: center;
  border-radius: 0.25rem;
  padding: 0.25rem 0.5rem;
  font-family: "Inter";
  font-size: 0.875rem;
  gap: 0.25rem;
  line-height: 1.25rem;
  border: 1px solid transparent;
}
.label.label-outline {
  cursor: pointer;
}
.label.label-sm {
  padding: 0rem 0.5rem;
}
.label-icon-prefix {
  font-size: 1.25rem;
}

.label-primary {
  background-color: #F3F7FC;
  color: #4F6887;
}
.label-primary.label-outline {
  background: transparent;
}
.label-primary.label-outline:hover {
  background-color: #F3F7FC;
}
.label-primary.label-border {
  border-color: #4F6887;
}

.label-yellow {
  background-color: #FEEDB8;
  color: #977F2E;
}
.label-yellow.label-outline {
  background: transparent;
}
.label-yellow.label-outline:hover {
  background-color: #FEEDB8;
}
.label-yellow.label-border {
  border-color: #977F2E;
}

.label-red {
  background-color: #fee3e3;
  color: #c65a5a;
}
.label-red.label-outline {
  background: transparent;
}
.label-red.label-outline:hover {
  background-color: #fee3e3;
}
.label-red.label-border {
  border-color: #c65a5a;
}

.label-green {
  background-color: #c5f5e2;
  color: #428b6e;
}
.label-green.label-outline {
  background: transparent;
}
.label-green.label-outline:hover {
  background-color: #c5f5e2;
}
.label-green.label-border {
  border-color: #428b6e;
}

.label-secondary {
  background-color: #f0f1f2;
  color: #6b7280;
}
.label-secondary.label-outline {
  background: transparent;
}
.label-secondary.label-outline:hover {
  background-color: #f0f1f2;
}
.label-secondary.label-border {
  border-color: #6b7280;
}

.label-blue {
  background-color: #ecedf5;
  color: #40499a;
}
.label-blue.label-outline {
  background: transparent;
}
.label-blue.label-outline:hover {
  background-color: #ecedf5;
}
.label-blue.label-border {
  border-color: #40499a;
}

.label-blue-2 {
  background-color: #ffffff;
  color: #40499a;
}
.label-blue-2.label-outline {
  background: transparent;
}
.label-blue-2.label-outline:hover {
  background-color: #ffffff;
}
.label-blue-2.label-border {
  border-color: #40499a;
}

.badge {
  background: #40499A;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 0.125rem 0.438rem;
  border-radius: 50px;
  color: #FFF;
  text-align: center;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.25rem;
  border: 1px solid transparent;
}
.badge.badge-primary {
  background-color: #40499a;
  color: #ffffff;
}
.badge.badge-primary.badge-outline {
  border-color: #40499a;
}
.badge.badge-purple {
  background-color: #e6e9ff;
  color: #40499a;
}
.badge.badge-purple.badge-outline {
  border-color: #40499a;
}
.badge.badge-yellow {
  background-color: #FEEDB8;
  color: #977F2E;
}
.badge.badge-yellow.badge-outline {
  border-color: #977F2E;
}
.badge.badge-grey {
  background-color: #d3d5d9;
  color: #6b7280;
}
.badge.badge-grey.badge-outline {
  border-color: #6b7280;
}
.badge.badge-red {
  background-color: #fef1f1;
  color: #c65a5a;
}
.badge.badge-red.badge-outline {
  border-color: #c65a5a;
}
.badge.badge-transparent {
  background-color: transparent;
  color: #6b7280;
}
.badge.badge-transparent.badge-outline {
  border-color: transparent;
}

.indicator-badge {
  display: flex;
  width: 1.5rem;
  height: 1.5rem;
  justify-content: center;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  background: #ff3a30;
  border-radius: 3.13rem;
  color: #FFF;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 20px;
}
.indicator-badge.badge-sm {
  width: 1.25rem;
  height: 1.25rem;
  font-size: 0.625rem;
}
.indicator-badge.badge-xs {
  width: 0.5rem;
  height: 0.5rem;
  font-size: 0rem;
}
.indicator-badge.badge-dot {
  font-size: 0rem;
}

.tag {
  background-color: #f0f1f2;
  color: #1e1f20;
  display: inline-flex;
  align-items: center;
  align-content: center;
  border-radius: 6.25rem;
  padding: 0.125rem 0.875rem;
  gap: 0.475rem;
  font-family: "Inter";
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.25rem;
  border: 1px solid transparent;
}
.tag.tag-filled {
  background-color: #c4c7cc;
  color: #1e1f20;
}
.tag.tag-sm {
  font-size: 0.75rem;
  padding: 0rem 0.5rem;
  gap: 0.25rem;
}

.tag-gray {
  background-color: #f0f1f2;
  color: #1e1f20;
}
.tag-gray.tag-filled {
  background-color: #c4c7cc;
  color: #1e1f20;
}

.tag-red {
  background-color: #fee3e3;
  color: #633030;
}
.tag-red.tag-filled {
  background-color: #fbaaaa;
  color: #633030;
}

.tag-yellow {
  background-color: #fef6db;
  color: #655522;
}
.tag-yellow.tag-filled {
  background-color: #fde594;
  color: #655522;
}

.tag-green {
  background-color: #e2faf1;
  color: #2f5d4a;
}
.tag-green.tag-filled {
  background-color: #8becc5;
  color: #2f5d4a;
}

.tag-blue {
  background-color: #e6eff9;
  color: #37475a;
}
.tag-blue.tag-filled {
  background-color: #b5ceed;
  color: #37475a;
}

.tag-dark-blue {
  background-color: #d6e0f9;
  color: #192a5a;
}
.tag-dark-blue.tag-filled {
  background-color: #85a1ec;
  color: #192a5a;
}

.tag-pink {
  background-color: #f6e1e8;
  color: #562d3a;
}
.tag-pink.tag-filled {
  background-color: #e5a6b9;
  color: #562d3a;
}

.tag-purple {
  background-color: #ebe9fb;
  color: #413b5e;
}
.tag-purple.tag-filled {
  background-color: #c4bcf3;
  color: #413b5e;
}

.tag-circle {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  padding: 2px 14px;
  gap: 8px;
  border-radius: 100px;
  position: relative;
  font-size: 0;
}
.tag-circle:not([class*=tag-]) {
  background: #C4C7CC;
  color: #1e1f20;
}
.tag-circle.tag-sm {
  width: 20px;
  height: 20px;
  padding: 2px 10px;
  gap: 4px;
}
.tag-circle .tag-icon-prefix,
.tag-circle .tag-icon-suffix {
  font-size: 16px;
}
.tag-circle:not(.tag-sm) .tag-icon-prefix {
  position: absolute;
  left: -3px;
  top: -3px;
  width: 50px;
  height: 50px;
  border-radius: 25px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
}
.tag-circle.tag-sm .tag-icon-prefix {
  position: static;
  width: 16px;
  height: 16px;
  border: none;
  font-size: 16px;
}

.qdna-sidebar {
  background: #40499a;
  display: flex;
  width: 120px;
  max-width: 120px;
  flex-direction: column;
  align-items: center;
  padding: 8px;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
}
.qdna-sidebar .sidebar-logo {
  cursor: pointer;
  padding-top: 10px;
}
.qdna-sidebar .sidebar-header {
  padding: 16px;
}
.qdna-sidebar .sidebar-header img {
  height: 60px;
}
.qdna-sidebar .sidebar-items {
  display: flex;
  flex-direction: column;
  margin-top: 1rem;
  border-top: 1px solid #666dae;
}
.qdna-sidebar .sidebar-items .sidebar-item {
  height: 90px;
  aspect-ratio: 1;
  background: transparent;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  cursor: pointer;
  border-radius: 8px;
  position: relative;
  padding: 0px 16px;
  width: 104px;
}
.qdna-sidebar .sidebar-items .sidebar-item .icon {
  width: 24px;
  height: 24px;
  aspect-ratio: 1/1;
  background-color: #fff;
  -webkit-mask: var(--icon) no-repeat center/contain;
  mask: var(--icon) no-repeat center/contain;
}
.qdna-sidebar .sidebar-items .sidebar-item .item-title {
  color: #FFF;
  text-align: center;
  font-size: 12px;
}
.qdna-sidebar .sidebar-items .sidebar-item .sidebar-indicator {
  position: absolute;
  top: 12px;
  right: 16px;
  z-index: 2;
  pointer-events: none;
}
.qdna-sidebar .sidebar-items .sidebar-item:hover {
  background: #333a7b;
}
.qdna-sidebar .sidebar-items .sidebar-item.active {
  background: #e6e9ff;
}
.qdna-sidebar .sidebar-items .sidebar-item.active .item-title {
  color: #40499a;
}
.qdna-sidebar .sidebar-items .sidebar-item.active .icon {
  background-color: #40499a;
}
.qdna-sidebar .sidebar-items .sidebar-item.active:hover {
  background: #e6e9ff;
}
.qdna-sidebar .sidebar-items .sidebar-item.active svg path {
  fill: #333a7b;
}
.qdna-sidebar .sidebar-footer {
  padding: 16px;
}
.qdna-sidebar .sidebar-footer img {
  height: 30px;
}

qdna-dropdown dropdown {
  background: #FFFFFF;
  border-radius: 12px;
  padding: 8px 4px;
  z-index: 3;
  box-shadow: 0 8px 12px 6px rgba(0, 0, 0, 0.15), 0 4px 4px 0 rgba(0, 0, 0, 0.3);
}
qdna-dropdown dropdown .qdna-dropdown-menu .menu-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 16px;
  font-weight: 300;
  position: relative;
  border-radius: 8px;
  font-size: 14px;
  gap: 12px;
  cursor: pointer;
}
qdna-dropdown dropdown .qdna-dropdown-menu .menu-item .menu-content {
  display: flex;
  align-items: center;
  position: relative;
  gap: 12px;
}
qdna-dropdown dropdown .qdna-dropdown-menu .menu-item:hover {
  background-color: #e9e9e9;
}
qdna-dropdown dropdown .qdna-dropdown-menu .menu-item .item-icon {
  font-size: 24px;
}
qdna-dropdown dropdown .qdna-dropdown-menu .menu-item.item-danger {
  color: #C65A5A;
}
qdna-dropdown dropdown .qdna-dropdown-menu .menu-divider {
  position: relative;
  padding: 8px 16px;
  border-radius: 8px;
}
qdna-dropdown dropdown .qdna-dropdown-menu .menu-divider::after {
  display: block;
  content: "";
  position: relative;
  height: 2px;
  width: 100%;
  background: #C4C7CC;
}

qdna-dialog {
  display: none;
}

qdna-dialog[open] {
  display: block;
}

.qdna-dialog-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
}

.qdna-dialog {
  background: #fff;
  padding: 20px;
  border-radius: 8px;
  min-width: 300px;
  max-width: 90%;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
}

.qdna-dialog-title {
  font-size: 1.2em;
  margin-bottom: 10px;
  text-align: center;
  font-weight: bold;
}

qdna-dialog qdna-button {
  margin: 5px;
}

qdna-nav-button {
  display: flex;
  flex-direction: row;
  background-color: #FFF;
  border-radius: 8px;
  width: fit-content;
  box-shadow: 0 2px 8px 2px #E0E0E0;
  overflow: visible;
  position: relative;
  align-items: center;
}

navigation-group {
  display: flex;
  flex-direction: row;
  border-right: 1px solid #CCC;
  padding: 12px 8px;
  gap: 4px;
}
navigation-group:last-child {
  border-right: none;
}

.nav-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.nav-left {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 500;
  pointer-events: none;
}

navigation-group[type=doc-preview] .nav-left {
  display: flex;
  align-items: center;
  padding: 8px 12px;
  border-right: 1px solid #E0E0E0;
}

.nav-right {
  display: flex;
  align-items: center;
  gap: 4px;
}

.nav-avatar {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  object-fit: cover;
}

.nav-username {
  font-size: 14px;
  font-weight: 500;
  color: #333;
}

.nav-page-current {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  padding: 0 12px;
  border: 1px solid #999;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
}

.nav-page-separator {
  font-size: 14px;
  color: #999;
}

.nav-page-total {
  font-size: 14px;
  color: #999;
}

navigation-link {
  display: flex !important;
  align-items: center;
  cursor: pointer;
  color: black;
  border-radius: 4px;
  position: relative;
  text-decoration: none;
  transition: color 0.2s, background 0.2s;
  padding: 4px 12px !important;
  white-space: nowrap;
}
navigation-link:hover {
  color: #40499a;
  background: #EFEFEF;
}
navigation-link:hover::after {
  width: 50%;
}
navigation-link[active] {
  background: #e6e9ff;
  color: #40499a;
}
navigation-link[active]::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  height: 2px;
  width: 50%;
  background-color: #40499a;
  transition: width 0.3s ease;
  transform: translateX(-50%);
  transform-origin: center;
}
navigation-link .nav-link__arrow {
  font-size: 1rem;
  margin-left: 8px;
  display: inline-block;
  transition: transform 0.3s;
}
navigation-link .nav-link__arrow.is-open {
  transform: rotate(180deg);
}
navigation-link .nav-link__icon {
  font-size: 1.5rem;
}
navigation-link .nav-link__text {
  font-size: 16px;
  display: flex;
  flex-wrap: nowrap;
}
navigation-link[disabled] {
  cursor: not-allowed;
  pointer-events: none;
  opacity: 0.7;
  color: #9e9e9e;
}
navigation-link[disabled] .nav-link__icon,
navigation-link[disabled] .nav-link__arrow,
navigation-link[disabled] .nav-badge {
  color: #bdbdbd;
}
navigation-link[disabled][active] {
  background: #e6e9ff;
  color: #9e9e9e;
}
navigation-link[disabled][active]::after {
  background-color: #bdbdbd;
}
navigation-link[disabled][active] .nav-link__icon,
navigation-link[disabled][active] .nav-link__arrow {
  color: #bdbdbd;
}
navigation-link[disabled][active] .nav-badge {
  opacity: 0.6;
}
navigation-link .nav-link__icon-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
}
navigation-link .nav-badge {
  position: absolute;
  top: 10px;
  right: 10px;
  transform: translate(100%, -50%);
  width: 14px;
  height: 14px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  line-height: 1;
  border-radius: 50%;
  color: #fff;
  overflow: hidden;
}
navigation-link .nav-badge--red {
  background: #ff4d4f;
}
navigation-link .nav-badge--highlight {
  background: #40499a;
}
navigation-link .nav-badge--dot {
  width: 8px;
  height: 8px;
  min-width: 8px;
  padding: 0;
  border-radius: 50%;
}
navigation-link.nav-link--sm .nav-badge {
  top: -2px;
  right: -4px;
  min-width: 14px;
  height: 14px;
  font-size: 9px;
}
navigation-link.nav-link--sm .nav-badge--dot {
  width: 6px;
  height: 6px;
  min-width: 6px;
}
navigation-link[disabled] .nav-badge {
  opacity: 0.6;
}

/* Dropdown: gebruikt door NavigationGroup (class toegevoegd in JS) */
.nav-dropdown {
  display: none;
  position: absolute;
  z-index: 1000;
}
.nav-dropdown.is-open {
  display: flex;
}

/* fallback: als er nog oude markup leeft */
.qdna-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.qdna-modal-overlay.open {
  display: flex;
}

.qdna-modal {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
  overflow: hidden;
}

/* Sizes */
.modal-sm {
  width: 400px;
}

.modal-md {
  width: 700px;
}

.modal-lg {
  width: 1000px;
}

.modal-xl {
  width: 90%;
  height: 90%;
}

modal-header, modal-body, modal-footer {
  display: block;
  padding: 1rem;
}

modal-header {
  border-bottom: 1px solid #ccc;
  position: relative;
  padding: 1rem;
  font-weight: bold;
}

.close-btn {
  position: absolute;
  top: 10px;
  right: 12px;
  background: none;
  border: none;
  font-size: 22px;
  cursor: pointer;
  line-height: 1;
}

modal-footer {
  border-top: 1px solid #ccc;
  text-align: right;
}

.qdna-card {
  border-radius: 0.5rem;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-bottom: 1rem;
}
.qdna-card.qdna-card--default {
  background: #ffffff;
}
.qdna-card.qdna-card--purple {
  background: #DADDF2;
}
.qdna-card > card-header.qdna-card__header {
  display: flex;
  padding: 1rem 1.5rem;
  justify-content: space-between;
  align-items: center;
  align-self: stretch;
  color: #40499A;
  border-bottom: 1px solid #D9DBEB;
}
.qdna-card > card-header.qdna-card__header h1, .qdna-card > card-header.qdna-card__header h2, .qdna-card > card-header.qdna-card__header h3, .qdna-card > card-header.qdna-card__header h4, .qdna-card > card-header.qdna-card__header h5, .qdna-card > card-header.qdna-card__header h6 {
  padding: 0;
  margin: 0;
}
.qdna-card > card-header.qdna-card__header > card-actions.qdna-card__actions {
  display: inline-flex;
  gap: 0.5rem;
  align-items: center;
  margin-left: auto;
}
.qdna-card > card-body.qdna-card__body {
  padding: 1rem 1.5rem 2rem 1.5rem;
  align-self: stretch;
}
.qdna-card .card-form-section {
  color: #0B0B0D;
  font-family: Inter;
  font-size: 14px;
  font-weight: 500;
}
.qdna-card .card-form-section .card-form-title {
  color: #0B0B0D;
  padding: 8px 0px 4px 0px;
}
.qdna-card .card-form-section .non_editable_field input:not(:disabled) {
  background-color: #ddd;
}

.ts-card-list-group .form-control:disabled,
.ts-card-list-group .form-control[readonly] {
  background-color: transparent;
  border: none !important;
  box-shadow: none !important;
}

.ts-card-list-group button.form-control:disabled {
  color: #878787 !important;
}
.ts-card-list-group .select2-container--bootstrap4.select2-container--disabled .select2-selection__rendered {
  padding-left: 0;
}
.ts-card-list-group .ts-card-layout-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: stretch;
}
.ts-card-list-group .ts-card-layout-col {
  flex: 1 1 0;
  min-width: 0;
}

.ts-card-list-group .select2-container--bootstrap4.select2-container--disabled .select2-selection--single,
.ts-card-list-group .select2-container--bootstrap4.select2-container--disabled .select2-selection--multiple {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

@media (max-width: 991px) {
  .ts-card-list-group .ts-card-layout-col {
    flex-basis: 100%;
  }
}
qdna-card-unit-type {
  display: contents;
}

.unit-type {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  font-weight: normal;
  text-decoration: none;
  justify-content: space-between;
  min-height: 120px;
}
.unit-type:hover {
  background-color: #f5f6f8;
}
.unit-type__top {
  display: flex;
  flex-direction: row;
  gap: 16px;
  padding: 1.25rem 1.5rem 0.5rem;
  align-items: center;
}
.unit-type__icon {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 44px;
  align-self: center;
}
.unit-type__icon img {
  width: 48px;
  height: 48px;
  border-radius: 0.5rem;
  object-fit: contain;
  display: block;
}
.unit-type__content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.unit-type__heading {
  font-family: var(--Type-Font-Family-primary, Inter);
  font-size: var(--Font-size-Body-Inter-medium-14, 14px);
  font-weight: 600;
  line-height: var(--Line-Height-Body-Body-Medium-Caption, 24px);
  color: var(--Text-Body, #0B0B0D);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
}
.unit-type__subheading {
  font-family: var(--Type-Font-Family-primary, Inter);
  font-size: var(--Font-size-Body-small-12, 12px);
  font-weight: 400;
  line-height: var(--Line-Height-Body-Body-Small, 20px);
  color: var(--Text-Body-Secondary, #6B7280);
  margin-top: 0;
  text-overflow: ellipsis;
}
.unit-type__info {
  display: flex;
  flex-flow: row;
  width: 100%;
  padding: 0.5rem 1.5rem 0.75rem;
  box-sizing: border-box;
}
.unit-type__info[hidden] {
  display: none;
}
.unit-type__pair {
  display: flex;
  gap: 4px;
  align-items: baseline;
  padding-right: 24px;
}
.unit-type__label, .unit-type__value {
  font-family: var(--Type-Font-Family-primary, Inter);
  font-size: var(--Font-size-Body-small-12, 12px);
  font-weight: 400;
  line-height: var(--Line-Height-Body-Body-Small, 20px);
  color: var(--Surface-Signal-Signal-grey-Detail, #6B7280);
}

:host {
  display: block;
  cursor: pointer;
  border-radius: 6px;
  transition: background 0.2s;
  width: 40%;
  max-width: 100%;
  box-sizing: border-box;
  --padding: 6px 10px;
  --font-size: 14px;
  --icon-size: 18px;
  --count-width: 30px;
  --color: #000;
  --opacity: 1;
  --hover-bg: rgba(0,0,0,0.06);
}

.wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--padding);
  font-size: var(--font-size);
}

.left {
  display: flex;
  align-items: center;
  gap: 0.5em;
  flex: 1;
  min-width: 0;
}

.icon {
  font-family: "Material Design Icons";
  font-style: normal;
  display: inline-block;
  width: var(--icon-size);
  font-size: var(--icon-size);
  text-align: center;
  color: var(--color);
  opacity: var(--opacity);
  flex-shrink: 0;
}

.text {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: var(--color);
  opacity: var(--opacity);
}

.count {
  min-width: var(--count-width);
  text-align: right;
  color: var(--color);
  opacity: var(--opacity);
}

:host(:hover) {
  background: var(--hover-bg);
}

@media (max-width: 600px) {
  :host {
    width: 80%;
  }
}
qdna-search-bar {
  display: inline-block;
  width: 100%;
}

qdna-search-bar .qdna-search-container {
  display: flex;
  align-items: center;
  padding: 0 8px;
  height: 40px;
  background: #FFF;
  border: 1px solid #dcdcdc;
  border-radius: 8px;
  transition: all 0.2s ease;
  gap: 6px;
}

qdna-search-bar .input {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  font-size: 14px;
  font-family: inherit;
  color: #222;
  width: 100%;
}

qdna-search-bar .input::placeholder {
  color: #999;
}

qdna-search-bar .icon {
  color: #777;
  cursor: pointer;
  display: contents;
}

qdna-search-bar .close {
  display: none;
}

qdna-search-bar .left-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 30px;
  min-width: 30px;
  padding: 0;
  border: none;
  border-radius: 6px;
  background: #E6E9FF;
  color: #40499A;
}

qdna-search-bar .left-btn:focus,
qdna-search-bar .left-btn:focus-visible {
  outline: none;
}

qdna-search-bar .btn-label:empty {
  display: none;
}

qdna-search-bar:not([state=focus]):not([state=filled]):hover .qdna-search-container {
  border-color: #40499A;
  border-radius: 8px;
  border: 1px solid #40499A;
  background: #FFF;
}

qdna-search-bar[state=focus] .qdna-search-container {
  border: 1px solid #40499A;
  box-shadow: 0 0 0 3px #ffffff, 0 0 0 4px #40499A;
}

qdna-search-bar[state=filled] .qdna-search-container {
  border-color: #40499A;
}

qdna-search-bar[disabled] .qdna-search-container {
  background: #f5f5f5;
  border-color: #e0e0e0;
  cursor: not-allowed;
}

qdna-search-bar[disabled] .input {
  cursor: not-allowed;
  color: #aaa;
}

qdna-search-bar[disabled] .icon {
  cursor: not-allowed;
  color: #ccc;
}

qdna-column-item {
  display: block;
  width: 100%;
  margin: 2px;
}

qdna-column-item .qdna-column-component {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px;
  border-radius: 8px;
  border: 1px solid #40499A;
  background: #E6E9FF;
  box-sizing: border-box;
  min-height: 40px;
  line-height: 1;
}

qdna-column-item .qdna-left-section {
  display: flex;
  align-items: center;
  gap: 16px;
  flex: 1;
  min-width: 0;
}

qdna-column-item .qdna-checkbox-wrapper {
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  cursor: pointer;
  position: relative;
  vertical-align: middle;
}

qdna-column-item .qdna-checkbox {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

qdna-column-item .qdna-checkbox-ui {
  width: 16px;
  height: 16px;
  border-radius: 4px;
  background: #fff;
  border: 1.5px solid #40499A;
  box-sizing: border-box;
  transition: all 0.15s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

qdna-column-item[checkbox-shape=round] .qdna-checkbox-ui {
  border-radius: 50%;
}

qdna-column-item .qdna-checkbox-ui::after {
  content: "";
  width: 4px;
  height: 8px;
  border: solid #ffffff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  opacity: 0;
}

qdna-column-item[checked] .qdna-checkbox-ui {
  background: #4652F3;
  border-color: #4652F3;
}

qdna-column-item[checked] .qdna-checkbox-ui::after {
  opacity: 1;
}

qdna-column-item:not([checkbox-state=disabled]) .qdna-checkbox-wrapper:hover .qdna-checkbox-ui {
  border-color: #4652F3;
}

qdna-column-item:focus-within .qdna-checkbox-ui {
  outline: 2px solid rgba(70, 82, 243, 0.35);
  outline-offset: 2px;
}

qdna-column-item[checkbox-state=disabled] {
  pointer-events: none;
}

qdna-column-item[checkbox-state=disabled] .qdna-checkbox-ui {
  background: #F2F4F7;
  border-color: #D0D5DD;
}

qdna-column-item[checkbox-state=disabled][checked] .qdna-checkbox-ui::after {
  border-color: #101828;
}

qdna-column-item[checkbox-state=disabled] .qdna-column-component {
  opacity: 0.6;
}

qdna-column-item .qdna-visibility {
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Material Design Icons";
  font-size: 18px;
  color: #40499A;
  flex-shrink: 0;
}

qdna-column-item:not([visibility=hidden]) .qdna-visibility::before {
  content: "\f01db";
}

qdna-column-item[visibility=hidden] .qdna-visibility {
  display: none;
}

qdna-column-item .qdna-column-label {
  flex: 1;
  min-width: 0;
  font-size: 16px;
  line-height: 1;
  display: flex;
  align-items: center;
  color: #40499A;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

qdna-column-item .qdna-right-section {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

qdna-column-item .qdna-column-message {
  font-size: 12px;
  color: #40499A;
  display: flex;
  align-items: center;
  white-space: nowrap;
  visibility: hidden;
}

qdna-column-item[message] .qdna-column-message {
  visibility: visible;
}

qdna-column-item .qdna-message-tick {
  width: 16px;
  height: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
  flex-shrink: 0;
}

qdna-column-item[message] .qdna-message-tick {
  visibility: visible;
}

qdna-column-item .qdna-message-tick::before {
  content: "✓";
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  color: #40499A;
}

job-card {
  display: block;
  user-select: none;
  --bg-light: #f2f4f7;
  --bg-dark: #f2f4f7;
}

job-card .job-card {
  background: var(--bg-light);
  border: 1px solid #d0d5dd;
  border-radius: 8px;
  padding: 8px 10px;
  transition: background 0.2s ease;
  cursor: pointer;
}

job-card:hover .job-card {
  background: var(--bg-dark);
}

job-card[status=scheduled] {
  --bg-light: #f2f4f7;
  --bg-dark: #d0d5dd;
}

job-card[status=overdue] {
  --bg-light: #fde2e7;
  --bg-dark: #f7bfc8;
}

job-card[status=in-progress] {
  --bg-light: #fff6d1;
  --bg-dark: #ffe9a6;
}

job-card[status=completed] {
  --bg-light: #e6f7ec;
  --bg-dark: #c6efd9;
}

/* Drag / Active State */
job-card[state=drag] {
  --bg-light: #eef4ff;
  --bg-dark: #dbe4ff;
}

job-card[state=drag] .job-card {
  opacity: 0.6;
  cursor: grabbing;
}

job-card[state=active] {
  --bg-light: #eef4ff;
  --bg-dark: #dbe4ff;
}

job-card .row-time,
job-card .row-user {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

job-card .row-user {
  margin-top: 6px;
}

job-card .avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e4e7ec;
  flex-shrink: 0;
}

job-card .avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

job-card .username {
  flex: 1;
  font-size: 14px;
  font-weight: 500;
}

job-card .time {
  font-size: 12px;
  white-space: nowrap;
}

job-card[size=sm] .row-time {
  display: none;
}

job-card[size=sm] .row-user {
  margin-top: 0;
}

job-card[size=sm] .username {
  font-size: 13px;
}

qdna-dropdown-menu {
  position: relative;
  display: block;
  font-family: inherit;
  width: 100%;
}

qdna-dropdown-menu.dropdown-disabled {
  opacity: 0.6;
  pointer-events: none;
}

qdna-dropdown-menu dropdown-trigger {
  display: flex;
  align-items: center;
  cursor: pointer;
  width: 100%;
}

qdna-dropdown-menu dropdown-trigger > * {
  width: 100%;
}

qdna-dropdown-menu dropdown {
  position: absolute;
  display: none;
  z-index: 999;
  background: #fff;
  border-radius: 12px;
  border: 1px solid #eee;
  padding: 4px 0;
  left: 0;
  right: 0;
  box-sizing: border-box;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

qdna-dropdown-menu.dropdown-open dropdown {
  display: block;
}

qdna-dropdown-menu.dropdown-size-sm dropdown {
  font-size: 12px;
}

qdna-dropdown-menu.dropdown-size-md dropdown {
  font-size: 14px;
}

qdna-dropdown-menu.dropdown-size-lg dropdown {
  font-size: 16px;
}

dropdown-option {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  user-select: none;
  transition: background 0.2s ease;
}

dropdown-option:hover {
  background: #f5f6fa;
}

dropdown-option.selected {
  background: #eef2ff;
  color: #40499a;
}

dropdown-option.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

qdna-dropdown-menu dropdown {
  max-height: 260px;
  overflow-y: auto;
}

qdna-dropdown-menu dropdown::-webkit-scrollbar {
  width: 6px;
}

qdna-dropdown-menu dropdown::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 4px;
}

dropdown-divider {
  display: block;
  height: 1px;
  margin: 4px 0;
  background: #eee;
}

dropdown-label {
  display: block;
  font-size: 12px;
  padding: 4px 8px;
  color: #888;
}

qdna-dropdown-menu.dropdown-open dropdown {
  animation: dropdownFade 0.15s ease;
}

@keyframes dropdownFade {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
qdna-toggle {
  display: inline-flex;
  cursor: pointer;
  user-select: none;
}

.qdna-toggle-root {
  --toggle-off: #d0d5dd;
  --toggle-on: #4625f3;
  --toggle-thumb: #ffffff;
  --toggle-focus: rgba(8, 117, 226, .35);
}

.qdna-toggle {
  position: relative;
  background: var(--toggle-off);
  border-radius: 999px;
  transition: background 0.25s ease, box-shadow 0.25s ease;
}

.qdna-toggle-thumb {
  position: absolute;
  background: var(--toggle-thumb);
  border-radius: 50%;
  top: 2px;
  left: 2px;
  transition: transform 0.25s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
}

.toggle-checked .qdna-toggle {
  background: var(--toggle-on);
}

.toggle-checked .qdna-toggle-thumb {
  transform: translateX(100%);
}

.toggle-disabled {
  opacity: 0.5;
  pointer-events: none;
}

.toggle-size-sm .qdna-toggle {
  width: 32px;
  height: 18px;
}

.toggle-size-sm .qdna-toggle-thumb {
  width: 14px;
  height: 14px;
}

.toggle-size-md .qdna-toggle {
  width: 40px;
  height: 22px;
}

.toggle-size-md .qdna-toggle-thumb {
  width: 18px;
  height: 18px;
}

.toggle-size-lg .qdna-toggle {
  width: 52px;
  height: 28px;
}

.toggle-size-lg .qdna-toggle-thumb {
  width: 24px;
  height: 24px;
}

qdna-due-date {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  font-size: 12px;
  font-weight: 400;
  overflow: hidden;
  color: var(--Text-Body, #0B0B0D);
  text-overflow: ellipsis;
  font-style: normal;
  line-height: var(--Line-Height-Body-Body-Small, 20px); /* 166.667% */
}

qdna-due-date.status-complete {
  color: #428B6E;
}

qdna-due-date.status-complete i {
  color: #428B6E;
}

qdna-due-date.status-progress {
  color: #EF8E02;
}

qdna-due-date.status-progress i {
  color: #EF8E02;
}

qdna-due-date.status-open.priority-high,
qdna-due-date.status-deadline.priority-high {
  color: #FF3A30;
}

qdna-due-date.status-open.priority-mid,
qdna-due-date.status-deadline.priority-mid {
  color: #EF8E02;
}

qdna-due-date.status-open.priority-success,
qdna-due-date.status-deadline.priority-success {
  color: #428B6E;
}

qdna-due-date.status-open i,
qdna-due-date.status-deadline i {
  color: inherit;
}

[qdna-tooltip] {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  --tooltip-bg: #40499A;
  --tooltip-text: #ffffff;
  --tooltip-radius: 4px;
  --tooltip-gap: 6px;
  --tooltip-padding: 4px 8px;
  --tooltip-font: 14px;
}

[qdna-tooltip]:not([tooltip-type=arrow])::before {
  content: attr(qdna-tooltip);
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-bottom: var(--tooltip-gap);
  background: var(--tooltip-bg);
  color: var(--tooltip-text);
  padding: var(--tooltip-padding);
  font-size: var(--tooltip-font);
  border-radius: var(--tooltip-radius);
  width: max-content;
  max-width: 220px;
  white-space: normal;
  text-align: center;
  opacity: 0;
  pointer-events: none;
  transition: 0.15s ease;
  z-index: 9999;
}

[qdna-tooltip]:hover:not([tooltip-type=arrow])::before {
  opacity: 1;
}

[tooltip-type=arrow] {
  position: relative;
}

.qdna-tooltip-box {
  position: absolute;
  background: var(--tooltip-bg);
  color: var(--tooltip-text);
  padding: var(--tooltip-padding);
  font-size: var(--tooltip-font);
  border-radius: var(--tooltip-radius);
  text-align: center;
  width: max-content;
  max-width: 220px;
  opacity: 0;
  pointer-events: none;
  transition: 0.15s ease;
  z-index: 9999;
}

.qdna-tooltip-box.show {
  opacity: 1;
}

.qdna-tooltip-title {
  font-weight: 600;
  font-size: 13px;
  margin-bottom: 4px;
}

.qdna-tooltip-body {
  font-size: 12px;
  line-height: 1.4;
}

.qdna-tooltip-arrow {
  position: absolute;
  width: 8px;
  height: 8px;
  background: var(--tooltip-bg);
  transform: rotate(45deg);
}

[tooltip-type=arrow]:not([tooltip-position]) .qdna-tooltip-box,
[tooltip-position=top] .qdna-tooltip-box {
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(calc(-1 * var(--tooltip-gap)));
}

[tooltip-type=arrow]:not([tooltip-position]) .qdna-tooltip-arrow,
[tooltip-position=top] .qdna-tooltip-arrow {
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
}

[tooltip-position=bottom] .qdna-tooltip-box {
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(var(--tooltip-gap));
}

[tooltip-position=bottom] .qdna-tooltip-arrow {
  top: -4px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
}

[tooltip-position=left] .qdna-tooltip-box {
  right: 100%;
  top: 50%;
  transform: translateY(-50%) translateX(calc(-1 * var(--tooltip-gap)));
}

[tooltip-position=left] .qdna-tooltip-arrow {
  right: -4px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}

[tooltip-position=right] .qdna-tooltip-box {
  left: 100%;
  top: 50%;
  transform: translateY(-50%) translateX(var(--tooltip-gap));
}

[tooltip-position=right] .qdna-tooltip-arrow {
  left: -4px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}

[qdna-tooltip]:not([tooltip-type=arrow])[tooltip-color=purple] {
  --tooltip-bg: #40499A;
  --tooltip-text: #ffffff;
}

[qdna-tooltip]:not([tooltip-type=arrow])[tooltip-color=light-purple] {
  --tooltip-bg: #DADDF2;
  --tooltip-text: #40499A;
}

[qdna-tooltip]:not([tooltip-type=arrow])[tooltip-color=grey] {
  --tooltip-bg: #C4C7CC;
  --tooltip-text: #0B0B0D;
}

[qdna-tooltip]:not([tooltip-type=arrow])[tooltip-color=light-grey] {
  --tooltip-bg: #E1E3E6;
  --tooltip-text: #6B7280;
}

[tooltip-type=arrow][tooltip-color=purple] {
  --tooltip-bg: #40499A;
  --tooltip-text: #ffffff;
}

[tooltip-type=arrow][tooltip-color=light-purple] {
  --tooltip-bg: #DADDF2;
  --tooltip-text: #40499A;
}

[tooltip-type=arrow][tooltip-color=white] {
  --tooltip-bg: #ffffff;
  --tooltip-text: #40499A;
}

[qdna-tooltip]:not([tooltip-type=arrow])[tooltip-size=sm] {
  --tooltip-padding: 0px 8px;
  --tooltip-font: 12px;
}

[tooltip-type=arrow][tooltip-size=sm] {
  --tooltip-padding: 2px 8px;
  --tooltip-font: 10px;
}

[tooltip-type=arrow]:not([tooltip-size]),
[tooltip-type=arrow][tooltip-size=lg] {
  --tooltip-padding: 10px 12px;
  --tooltip-font: 13px;
}

[qdna-tooltip][disabled],
[qdna-tooltip].disabled {
  pointer-events: none;
}

[qdna-tooltip][disabled]::before,
[qdna-tooltip].disabled::before {
  display: none !important;
}

[qdna-tooltip][disabled] .qdna-tooltip-box,
[qdna-tooltip].disabled .qdna-tooltip-box {
  display: none !important;
}

.qdna-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  position: relative;
}
.qdna-checkbox input {
  position: absolute;
  opacity: 0;
  width: 16px;
  height: 16px;
  margin: 0;
  cursor: pointer;
}
.qdna-checkbox .checkbox-box {
  width: 16px;
  height: 16px;
  border-radius: 4px;
  background: #FFFFFF;
  border: 1px solid #C4C7CC;
  position: relative;
  box-sizing: border-box;
  transition: all 0.2s ease;
}
.qdna-checkbox .checkbox-box::before {
  display: none !important;
}
.qdna-checkbox[data-shape=round] .checkbox-box {
  border-radius: 50%;
}
.qdna-checkbox:not(.disabled):hover input:not(:checked) + .checkbox-box {
  border-color: #4652F3;
}
.qdna-checkbox:focus-within .checkbox-box::before, .qdna-checkbox[state=focus] .checkbox-box::before {
  opacity: 0;
}
.qdna-checkbox input:checked + .checkbox-box {
  background: #4652F3;
  border-color: #4652F3;
}
.qdna-checkbox input:checked + .checkbox-box::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #FFFFFF;
  -webkit-mask: url("/img/check.svg") no-repeat center/12px;
  mask: url("/img/check.svg") no-repeat center/12px;
}
.qdna-checkbox.indeterminate-type input:checked + .checkbox-box::after {
  content: "";
  position: absolute;
  top: 6px;
  left: 3px;
  width: 8px;
  height: 2px;
  background: #FFFFFF;
  -webkit-mask: none !important;
  mask: none !important;
}
.qdna-checkbox[data-state=success] input:not(:checked) + .checkbox-box {
  border-color: #428B6E;
}
.qdna-checkbox[data-state=success] input:checked + .checkbox-box {
  background: #6EE7B7;
  border-color: #428B6E;
}
.qdna-checkbox[data-state=error] input:not(:checked) + .checkbox-box {
  border-color: #C65A5A;
}
.qdna-checkbox[data-state=error] input:checked + .checkbox-box {
  background: #F87171;
  border-color: #C65A5A;
}
.qdna-checkbox.disabled {
  pointer-events: none;
  opacity: 0.6;
}
.qdna-checkbox.disabled input + .checkbox-box {
  background: #F0F1F2;
  border-color: #C4C7CC;
}
.qdna-checkbox.disabled input:checked + .checkbox-box {
  background: #FFFFFF;
}
.qdna-checkbox.disabled input:checked + .checkbox-box::after {
  background-color: #898E99;
}
.qdna-checkbox .checkbox-label {
  color: #333;
}

qdna-radio {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.qdna-radio {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  position: relative;
}
.qdna-radio input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.qdna-radio .radio-circle {
  display: flex;
  width: 16px;
  height: 16px;
  padding: 4px;
  align-items: center;
  justify-content: center;
  border: 1px solid #C4C7CC;
  border-radius: 50%;
  background: #FFFFFF;
  box-sizing: border-box;
  position: relative;
  transition: all 0.2s ease;
}
.qdna-radio .radio-circle::after {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #FFFFFF;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.qdna-radio .radio-circle::before {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: inherit;
  box-shadow: 0 0 0 2px #4652F3;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}
.qdna-radio:not(.disabled):hover input:not(:checked) + .radio-circle {
  border-color: #4652F3;
}
.qdna-radio input:checked + .radio-circle {
  background: #4652F3;
  border-color: #4652F3;
}
.qdna-radio input:checked + .radio-circle::after {
  opacity: 1;
}
.qdna-radio[data-state=success] input:not(:checked) + .radio-circle {
  border-color: #428B6E;
}
.qdna-radio[data-state=success] input:checked + .radio-circle {
  background: #428B6E;
  border-color: #428B6E;
}
.qdna-radio[data-state=error] input:not(:checked) + .radio-circle {
  border-color: #C65A5A;
}
.qdna-radio[data-state=error] input:checked + .radio-circle {
  background: #C65A5A;
  border-color: #C65A5A;
}
.qdna-radio.disabled {
  pointer-events: none;
  opacity: 0.6;
}
.qdna-radio.disabled input:not(:checked) + .radio-circle {
  background: #E0E0E0;
  border-color: #C4C7CC;
}
.qdna-radio.disabled input:checked + .radio-circle {
  background: #FFFFFF;
  border-color: #C4C7CC;
}
.qdna-radio.disabled input:checked + .radio-circle::after {
  background: #9E9E9E;
  opacity: 1;
}
.qdna-radio .radio-label {
  color: #333;
}

qdna-menu-item {
  display: block;
}

.menu-item__container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 12px;
  cursor: pointer;
  border-radius: 6px;
  transition: background 0.2s ease;
}

.menu-item__container:hover {
  background: #f5f5f5;
}

.menu-item__left {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
}

.menu-item__control {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.menu-item__prefix {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  flex-shrink: 0;
}

.menu-item__label {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.menu-item__suffix {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  flex-shrink: 0;
}

.menu-item__prefix i,
.menu-item__suffix i {
  font-size: 18px;
}

qdna-menu-item[disabled] .menu-item__container {
  opacity: 0.5;
  pointer-events: none;
}

.avatar {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  border: 1px solid;
  aspect-ratio: 1/1;
  overflow: hidden;
  font-weight: 600;
  transition: all 0.2s ease;
  cursor: pointer;
}
.avatar .avatar-content {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.avatar-xs {
  width: 20px;
  height: 20px;
  font-size: 12px;
}

.avatar-sm {
  width: 34px;
  height: 34px;
  font-size: 12px;
}

.avatar-md {
  width: 48px;
  height: 48px;
  font-size: 16px;
}

.avatar-lg {
  width: 64px;
  height: 64px;
  font-size: 18px;
}

.avatar--green {
  border-color: #428B6E;
  background: #C5F5E2;
}
.avatar--green:hover {
  background: rgb(175.25, 241.25, 215.125);
  border-color: rgb(57.7902439024, 121.7097560976, 96.3170731707);
}
.avatar--green.is-selected {
  background: rgb(218.75, 248.75, 236.875);
  border-color: rgb(74.2097560976, 156.2902439024, 123.6829268293);
}

.avatar--pink {
  border-color: #C65A5A;
  background: #F87171;
}
.avatar--pink:hover {
  background: rgb(246.8020134228, 88.6979865772, 88.6979865772);
  border-color: rgb(191.4527027027, 71.0472972973, 71.0472972973);
}
.avatar--pink.is-selected {
  background: rgb(249.1979865772, 137.3020134228, 137.3020134228);
  border-color: rgb(204.5472972973, 108.9527027027, 108.9527027027);
}

.avatar--yellow {
  border-color: #B7791F;
  background: #FDE68A;
}
.avatar--yellow:hover {
  background: rgb(252.5714285714, 224.6428571429, 112.9285714286);
  border-color: rgb(161.1939252336, 106.5817757009, 27.3060747664);
}
.avatar--yellow.is-selected {
  background: rgb(253.4285714286, 235.3571428571, 163.0714285714);
  border-color: rgb(204.8060747664, 135.4182242991, 34.6939252336);
}

.avatar--blue {
  border-color: #2B6CB0;
  background: #BFDBFE;
}
.avatar--blue:hover {
  background: rgb(165.8923076923, 204.8769230769, 253.6076923077);
  border-color: rgb(37.9931506849, 95.4246575342, 155.5068493151);
}
.avatar--blue.is-selected {
  background: rgb(216.1076923077, 233.1230769231, 254.3923076923);
  border-color: rgb(48.0068493151, 120.5753424658, 196.4931506849);
}

.avatar--grey {
  border-color: #C4C7CC;
  background: #E5E7EB;
}
.avatar--grey:hover {
  background: rgb(214.5869565217, 217.6956521739, 223.9130434783);
  border-color: rgb(182.3227272727, 186.0181818182, 192.1772727273);
}
.avatar--grey.is-selected {
  background: rgb(243.4130434783, 244.3043478261, 246.0869565217);
  border-color: rgb(209.6772727273, 211.9818181818, 215.8227272727);
}

.avatar--red {
  border-color: #B91C1C;
  background: #FCA5A5;
}
.avatar--red:hover {
  background: rgb(251.1774193548, 140.3225806452, 140.3225806452);
  border-color: rgb(162.8521126761, 24.6478873239, 24.6478873239);
}
.avatar--red.is-selected {
  background: rgb(252.8225806452, 189.6774193548, 189.6774193548);
  border-color: rgb(207.1478873239, 31.3521126761, 31.3521126761);
}

.qdnapro-account-card {
  display: inline-flex;
  flex-direction: column;
  box-sizing: border-box;
  min-width: 280px;
  padding: 8px;
  gap: 4px;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 8px;
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.15), 0 8px 12px 6px rgba(0, 0, 0, 0.075);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
}

.qdnapro-account-card .account-card-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 4px;
  padding: 16px 16px 12px;
}

.qdnapro-account-card .account-card-header qdnapro-avatar {
  margin-bottom: 8px;
}

.qdnapro-account-card .account-card-name {
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  color: var(--c-grey-950);
}

.qdnapro-account-card .account-card-email {
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  color: var(--c-grey-500);
}

.qdnapro-account-card .account-card-items {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.qdnapro-account-card .account-card-items > qdnapro-menu-item {
  width: 100%;
}

[data-theme=dark] .qdnapro-account-card {
  background: #2e3036;
  border-color: #40444d;
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.3), 0 8px 12px 6px rgba(0, 0, 0, 0.2);
}

[data-theme=dark] .qdnapro-account-card .account-card-name {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-account-card .account-card-email {
  color: #a6aab3;
}

/* compiled from _action-bar.scss */
.qdnapro-action-bar {
  --action-bar-bg: #ffffff;
  --action-bar-border: var(--c-border-tree);
  --action-bar-offset: 16px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 56px;
  padding: 0 16px;
  background: var(--action-bar-bg);
  border: 0.5px solid var(--action-bar-border);
  border-radius: 8px;
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.3);
  box-sizing: border-box;
  font-family: inherit;
}

.qdnapro-action-bar > * {
  vertical-align: middle;
}

.qdnapro-action-bar.action-bar-floating {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: var(--action-bar-offset);
  z-index: 9000;
}

/* Een open venster maakt de balk onbereikbaar, dus hij hoort er dan ook niet te
   staan. Zonder deze regel viel hij ER OVERHEEN: .qdnapro-modal staat op
   dezelfde 9000, en base.html zet de balk NA de pagina-inhoud neer, dus won de
   balk altijd op DOM-volgorde. Verhelpen via de z-index was hier de verkeerde
   knop: de flow-editor heeft boven 9000 al een eigen ladder (9200 voor de
   dropdowns van de balk zelf, 9300 voor "altijd bovenop"-vensters), en die zou
   dan mee moeten schuiven.
   Twee klassen, want de backoffice heeft twee soorten vensters: qdnapro-modal
   zet `qdnapro-modal-open` op de body, Bootstrap (nog steeds in v1 geladen) zet
   `modal-open`. [Kim 10.08.2026] */
body.qdnapro-modal-open .qdnapro-action-bar.action-bar-floating,
body.modal-open .qdnapro-action-bar.action-bar-floating {
  display: none;
}

qdnapro-menu.action-bar-menu-floating {
  z-index: 9200;
  animation: action-bar-menu-pop 160ms cubic-bezier(0.22, 1, 0.36, 1);
  transform-origin: bottom left;
}

@keyframes action-bar-menu-pop {
  from {
    opacity: 0;
    transform: translateY(4px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
[data-theme=dark] .qdnapro-action-bar,
[data-theme-dark] .qdnapro-action-bar {
  --action-bar-bg: #2e3036;
  --action-bar-border: rgba(255, 255, 255, 0.10);
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.45);
}

.qdnapro-activity-card {
  position: relative;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 48px 1fr;
  grid-template-areas: "tile body";
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
  min-height: 64px;
  background: var(--ac-surface, #ffffff);
  border: 1px solid var(--ac-border, #e1e3e6);
  border-radius: 14px;
  cursor: pointer;
  outline: none;
  user-select: none;
  text-decoration: none;
  transition: box-shadow 150ms ease-out, border-color 150ms ease-out, transform 150ms ease-out, background-color 150ms ease-out;
}

.qdnapro-activity-card.ac-has-actions {
  grid-template-areas: "tile body" "actions actions";
}

.qdnapro-activity-card *,
.qdnapro-activity-card *::before,
.qdnapro-activity-card *::after {
  box-sizing: border-box;
}

.qdnapro-activity-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: rgba(0, 0, 0, 0.05);
  opacity: var(--ac-overlay-o, 0);
  transition: opacity 150ms ease-out;
  pointer-events: none;
}

@media (hover: hover) {
  .qdnapro-activity-card:hover {
    --ac-overlay-o: 0.5;
    border-color: rgba(0, 0, 0, 0.14);
    box-shadow: 0 3px 10px rgba(20, 25, 80, 0.08);
    transform: translateY(-1px);
  }
}
.qdnapro-activity-card:active {
  --ac-overlay-o: 1;
  transform: scale(0.985);
  transition: box-shadow 80ms ease-out, transform 80ms ease-out, background-color 80ms ease-out;
}

.qdnapro-activity-card:focus-visible {
  outline: 2px solid var(--c-purple-500);
  outline-offset: 2px;
}

/* === Selected ring ("you are here", Kim's decision 21.08.2026 - ring only,
   NEVER a filled background) ===
   Split-screen layouts (tablet: activity list on the left, the question
   panel open on the right) need the currently-open activity's card to be
   findable at a glance. This uses `outline`, not `box-shadow`, on purpose:
   box-shadow on this host is already a single-value property fought over
   by :hover / :active / .ac-pulse / the is-force-* classes below, so a
   box-shadow ring would get silently replaced the instant any of those
   fire. `outline` is its own paint layer - independent of box-shadow,
   border-color and the ::after hover-overlay - so it never gets clobbered
   and needs no !important anywhere.
   `outline-offset` opens a gap between the ring and the card's own edge, so
   the ring's legibility never depends on the card's OWN surface colour: it
   always renders over the page/list background behind the card, not over
   the card's fill. That is what keeps it equally readable on the
   completed status's green wash and on the grayscale-filtered disabled
   tile.
   It also cannot collide with the error status's red border: that border
   is a plain 1px border-color change on the card's own edge (see
   .ac-status-error further down) and stays completely untouched here - the
   ring is a second, separate ring further OUT, past the gap. A card that
   is both selected AND error keeps both signals fully legible at once.
   Reuses --focus-ring, the SAME token the :focus-visible rule above uses,
   so light/dark theming (--c-purple-200 in dark) stays in sync
   automatically without a separate dark override. */
/* HERBOUWD 24.08.2026 (Kim: "nog steeds geen active state"). Dit was een
   `outline` met `outline-offset: 2px`, dus een ring 2px BUITEN de kaart. In de
   takenlijst zit elke kaart in een <qdnapro-swipe-row> en die heeft
   `overflow: hidden` (qdna-swipe-row.css, twee plekken - nodig om de
   veeg-actiepanelen naast de rij te verbergen). Alles buiten de kaart wordt
   daar dus weggeknipt: de ring was aanwezig in de DOM en volledig onzichtbaar.
   Niet te vinden met grep, alleen door het op een toestel te missen.
   Nu een ::before BINNEN de kaart: overleeft elke overflow-hidden ouder, volgt
   de ronding altijd (border-radius werkt overal, anders dan een outline op
   oudere WebKit - precies waar de unit-tegel op stuk liep), en botst niet met
   de ::after hover-overlay of met de box-shadow die hover/active/pulse al
   claimen. inset 2px met radius 12px = 14px hostradius minus die 2px, zodat de
   ring concentrisch in de hoek loopt. */
/* ZACHTE GLOED, GEEN HARDE LIJN (Kim 24.08.2026: "zo'n harde select ring is
   echt te lelijk, ik wil zoiets als de units doen"). Dezelfde token als
   qdnapro-unit-card's is-selected gebruikt: --focus-glow (--c-action-25 in
   licht, --c-action-40 in donker), 3px dik.
   Verschil met de unit-tegel, en dat kan niet anders: daar tekent de gloed
   BUITEN de kaart, hier NAAR BINNEN (`inset`). Buitenwaarts is hier niet
   mogelijk - de swipe-row eromheen knipt alles buiten de kaart weg (zie de
   uitleg hieronder). Op een lichte kaart met een doorschijnende gloed is dat
   visueel vrijwel hetzelfde; het is alleen niet letterlijk "eromheen".
   `inset: 0` + `border-radius: inherit` laat de gloed exact de 14px hoekronding
   van de kaart volgen, in plaats van een eigen getal dat bij een wijziging van
   de radius stil uit de bocht loopt. */
.qdnapro-activity-card.ac-selected::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 3px var(--focus-glow);
  pointer-events: none;
  z-index: 1;
}

[data-theme=dark] .qdnapro-activity-card::after {
  background: rgba(255, 255, 255, 0.06);
}

/* === Dark mode - base card chrome === */
[data-theme=dark] .qdnapro-activity-card {
  background: #2e3036;
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme=dark] .qdnapro-activity-card .ac-label {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-activity-card .ac-description {
  color: #a0a4b8;
}

[data-theme=dark] .qdnapro-activity-card:hover {
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.4);
  border-color: rgba(255, 255, 255, 0.18);
}

/* === Icon tile === */
.qdnapro-activity-card .ac-tile {
  grid-area: tile;
  width: 48px;
  height: 48px;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: var(--ac-tile-bg, #f0f1f2);
  overflow: hidden;
}

.qdnapro-activity-card .ac-tile-tick svg {
  width: 32px;
  height: 32px;
  display: block;
}

/* === Text column === */
.qdnapro-activity-card .ac-body {
  grid-area: body;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
}

.qdnapro-activity-card .ac-label {
  font-size: 15px;
  font-weight: 600;
  color: var(--ac-text, #0b0b0d);
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-activity-card .ac-description {
  font-size: 12.5px;
  color: var(--ac-text-muted, #898e99);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* === Meta row: repeat tag (first) + completion stamp ===
   Required pill lives OUTSIDE this row now (see the corner-badge block
   below), so the row only exists for the repeat tag and/or the stamp. */
.qdnapro-activity-card .ac-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
}

.qdnapro-activity-card .ac-pill {
  flex: none;
}

/* Icon-only repeat tag (no text content) - the tag's own empty label span
   still carries its 4px icon-label gap, which would add lopsided trailing
   padding around nothing. Neutralised here, scoped to this one usage, same
   fix as qdnapro-activity-row's .row-icon-tag (Kim, 13.07.2026). */
.qdnapro-activity-card .ac-pill-repeat {
  gap: 0;
}

/* === Corner cluster: icon-only repeat tag + required pill side by side in the
   top-right corner (Kim, 13.07.2026). The chevron and its whole glyph
   column are gone, so the cluster owns the right edge against the card's
   own padding. */
.qdnapro-activity-card .ac-corner {
  position: absolute;
  top: 10px;
  right: 12px;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 4px;
}

/* Optional kebab-menu button ("menu" attribute, added 21.08.2026) shares
   this SAME corner row instead of a new right-side layout mechanism -
   flex: none matches the sibling .ac-pill rule above so it never gets
   squeezed by the label column. */
.qdnapro-activity-card .ac-menu-btn {
  flex: none;
}

/* Reserve room so a long title truncates before running under the corner
   cluster instead of behind it - worst case is repeat icon-tag plus
   "Verplicht"/"Required", ~120px covers it. Also reserved for the menu
   button alone (narrower than that worst case, so this stays a safe
   upper bound rather than an exact fit). */
.qdnapro-activity-card.ac-has-corner .ac-label,
.qdnapro-activity-card.ac-has-corner .ac-description {
  padding-right: 120px;
}

/* Menu button ALONE in the corner: the 120px above is the worst-case pill
   reservation and costs a third of the width on a 360px card in the tasklist
   split screen, truncating a title that would otherwise fit. The kebab is a
   32px icon-btn, so 44px (32 + 12 breathing room) is the real reservation.
   Two classes, same specificity as the rule above, so source order decides
   and this one must stay BELOW it. [21.08.2026] */
.qdnapro-activity-card.ac-corner-menu-only .ac-label,
.qdnapro-activity-card.ac-corner-menu-only .ac-description {
  padding-right: 44px;
}

/* === Status-tinted pill ===
   A grey tag on a coloured status surface clashes (Kim, 13.07.2026), so
   every ".ac-pill" (required corner badge, completion stamp, and the
   repeat tag added 13.07.2026) follows the status palette: the "-2" tag
   tone as background with the matching tag text colour. The tag component
   paints itself from the --tag-bg/--tag-text custom properties, so
   overriding those here (three classes, beats the tag's own two-class
   selector) is enough. Open/repeat-done/disabled keep the tag's own
   grey/disabled look (no tint rule exists for ac-status-repeat-done, by
   design - see the repeat-done note further down). */
.qdnapro-activity-card.ac-status-in-progress .ac-pill {
  --tag-bg: var(--c-chip-yellow-2-bg);
  --tag-text: #655522;
}

.qdnapro-activity-card.ac-status-completed .ac-pill {
  --tag-bg: var(--c-chip-green-2-bg);
  --tag-text: #2f5d4a;
}

.qdnapro-activity-card.ac-status-error .ac-pill {
  --tag-bg: var(--c-chip-red-2-bg);
  --tag-text: #633030;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-in-progress .ac-pill {
  --tag-bg: #7a6b2d;
  --tag-text: #fde594;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-completed .ac-pill {
  --tag-bg: #3d7a62;
  --tag-text: #8becc5;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-error .ac-pill {
  --tag-bg: #7a3838;
  --tag-text: #fbaaaa;
}

/* === Bottom action row: briefing / repeat buttons ===
   Full-width row below the tile/text/glyph columns (Kim, 13.07.2026 - the
   old briefing/counter pills were too small as touch targets). Hairline
   divider reuses --ac-border, so it recolours the same way as the card
   border on every status. */
.qdnapro-activity-card .ac-actions {
  grid-area: actions;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1px solid var(--ac-border, #e1e3e6);
}

.qdnapro-activity-card .ac-action-btn {
  flex: none;
}

/* === Status-tinted action buttons ===
   secondary-purple works on the white open card but clashes on the coloured
   status surfaces (Kim, 13.07.2026). On those statuses the buttons take the
   same "-2" tag tone family as the pill: -2 background, status text colour,
   the tag's own -2 hover token on hover/press. qdnapro-button paints from
   fixed class colours (no custom properties), so these five-class overrides
   simply out-specify its three-class rules; icons follow via currentColor. */
.qdnapro-activity-card.ac-status-in-progress .ac-actions .qdnapro-button.button-secondary-purple {
  background: var(--c-chip-yellow-2-bg);
  color: #655522;
}

.qdnapro-activity-card.ac-status-in-progress .ac-actions .qdnapro-button.button-secondary-purple:hover:not(.button-disabled),
.qdnapro-activity-card.ac-status-in-progress .ac-actions .qdnapro-button.button-secondary-purple:active:not(.button-disabled) {
  background: var(--c-chip-yellow-2-hover);
}

.qdnapro-activity-card.ac-status-completed .ac-actions .qdnapro-button.button-secondary-purple {
  background: var(--c-chip-green-2-bg);
  color: #2f5d4a;
}

.qdnapro-activity-card.ac-status-completed .ac-actions .qdnapro-button.button-secondary-purple:hover:not(.button-disabled),
.qdnapro-activity-card.ac-status-completed .ac-actions .qdnapro-button.button-secondary-purple:active:not(.button-disabled) {
  background: var(--c-chip-green-2-hover);
}

.qdnapro-activity-card.ac-status-error .ac-actions .qdnapro-button.button-secondary-purple {
  background: var(--c-chip-red-2-bg);
  color: #633030;
}

.qdnapro-activity-card.ac-status-error .ac-actions .qdnapro-button.button-secondary-purple:hover:not(.button-disabled),
.qdnapro-activity-card.ac-status-error .ac-actions .qdnapro-button.button-secondary-purple:active:not(.button-disabled) {
  background: var(--c-chip-red-2-hover);
}

[data-theme=dark] .qdnapro-activity-card.ac-status-in-progress .ac-actions .qdnapro-button.button-secondary-purple {
  background: #7a6b2d;
  color: #fef6db;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-in-progress .ac-actions .qdnapro-button.button-secondary-purple:hover:not(.button-disabled),
[data-theme=dark] .qdnapro-activity-card.ac-status-in-progress .ac-actions .qdnapro-button.button-secondary-purple:active:not(.button-disabled) {
  background: #9a8a3b;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-completed .ac-actions .qdnapro-button.button-secondary-purple {
  background: #3d7a62;
  color: #e2faf1;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-completed .ac-actions .qdnapro-button.button-secondary-purple:hover:not(.button-disabled),
[data-theme=dark] .qdnapro-activity-card.ac-status-completed .ac-actions .qdnapro-button.button-secondary-purple:active:not(.button-disabled) {
  background: #4d9c7c;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-error .ac-actions .qdnapro-button.button-secondary-purple {
  background: #7a3838;
  color: #fee3e3;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-error .ac-actions .qdnapro-button.button-secondary-purple:hover:not(.button-disabled),
[data-theme=dark] .qdnapro-activity-card.ac-status-error .ac-actions .qdnapro-button.button-secondary-purple:active:not(.button-disabled) {
  background: #9a4747;
}

/* The count badge on the repeat button (qdnapro-button's own badge attr,
   "subtle" pairing = lavender) must follow the same status tint (Kim,
   13.07.2026): the light status surface tone as badge background with the
   status text colour, so it reads as a quiet chip on the "-2" button. */
.qdnapro-activity-card.ac-status-in-progress .ac-actions [data-button-badge] {
  background-color: var(--c-chip-yellow-bg);
  border-color: transparent;
  color: #655522;
}

.qdnapro-activity-card.ac-status-completed .ac-actions [data-button-badge] {
  background-color: var(--c-chip-green-bg);
  border-color: transparent;
  color: #2f5d4a;
}

.qdnapro-activity-card.ac-status-error .ac-actions [data-button-badge] {
  background-color: var(--c-signal-red-bg);
  border-color: transparent;
  color: #633030;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-in-progress .ac-actions [data-button-badge] {
  background-color: #5a4d1f;
  color: #fde594;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-completed .ac-actions [data-button-badge] {
  background-color: #2a5544;
  color: #8becc5;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-error .ac-actions [data-button-badge] {
  background-color: #5a2b2b;
  color: #fbaaaa;
}

@keyframes qdnapro-ac-count-bump {
  0% {
    transform: scale(1);
  }
  35% {
    transform: scale(1.18);
  }
  60% {
    transform: scale(0.95);
  }
  100% {
    transform: scale(1);
  }
}
.qdnapro-activity-card .ac-badge-bump {
  animation: qdnapro-ac-count-bump 380ms ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-activity-card .ac-badge-bump {
    animation: none;
  }
}
/* === Pulse (status-changed feedback) === */
@keyframes qdnapro-ac-pulse {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(64, 73, 154, 0.35);
  }
  40% {
    transform: scale(1.015);
    box-shadow: 0 0 0 8px rgba(64, 73, 154, 0);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(64, 73, 154, 0);
  }
}
.qdnapro-activity-card.ac-pulse {
  animation: qdnapro-ac-pulse 520ms ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-activity-card.ac-pulse {
    animation: none;
  }
}
/* === Icon-color palette (qdnapro-tag --tag-bg values, light) ===
   Only used by the "open" status - every other status overrides the tile
   colour directly further down. */
.qdnapro-activity-card.ac-color-grey {
  --ac-tile-bg: var(--c-grey-50);
}

.qdnapro-activity-card.ac-color-red {
  --ac-tile-bg: var(--c-signal-red-bg);
}

.qdnapro-activity-card.ac-color-yellow {
  --ac-tile-bg: var(--c-chip-yellow-bg);
}

.qdnapro-activity-card.ac-color-green {
  --ac-tile-bg: var(--c-chip-green-bg);
}

.qdnapro-activity-card.ac-color-blue {
  --ac-tile-bg: var(--c-signal-blue-bg);
}

.qdnapro-activity-card.ac-color-bright-blue {
  --ac-tile-bg: var(--c-chip-bright-blue-2-bg);
}

.qdnapro-activity-card.ac-color-pink {
  --ac-tile-bg: var(--c-signal-pink-bg);
}

.qdnapro-activity-card.ac-color-purple {
  --ac-tile-bg: var(--c-chip-purple-bg);
}

[data-theme=dark] .qdnapro-activity-card.ac-color-grey {
  --ac-tile-bg: #565b66;
}

[data-theme=dark] .qdnapro-activity-card.ac-color-red {
  --ac-tile-bg: #5a2b2b;
}

[data-theme=dark] .qdnapro-activity-card.ac-color-yellow {
  --ac-tile-bg: #5a4d1f;
}

[data-theme=dark] .qdnapro-activity-card.ac-color-green {
  --ac-tile-bg: #2a5544;
}

[data-theme=dark] .qdnapro-activity-card.ac-color-blue {
  --ac-tile-bg: #2e3e54;
}

[data-theme=dark] .qdnapro-activity-card.ac-color-bright-blue {
  --ac-tile-bg: #2a3560;
}

[data-theme=dark] .qdnapro-activity-card.ac-color-pink {
  --ac-tile-bg: #4e2a36;
}

[data-theme=dark] .qdnapro-activity-card.ac-color-purple {
  --ac-tile-bg: #3a3555;
}

/* === Status overrides (always win over the icon-color pastel) ===
   Each status sets the tile background directly (not through --ac-tile-bg)
   with a higher-specificity selector (2 classes + descendant), so it wins
   regardless of source order - same pattern as the tasklist-card [archived]
   override. Border colour reuses the tile's "-2" tone for definition, no
   new palette values invented. */
.qdnapro-activity-card.ac-status-in-progress {
  --ac-surface: var(--c-chip-yellow-bg);
  --ac-border: var(--c-chip-yellow-2-bg);
  --ac-text: #655522;
  --ac-text-muted: #655522;
}

.qdnapro-activity-card.ac-status-in-progress .ac-tile {
  background: var(--c-chip-yellow-2-bg);
}

.qdnapro-activity-card.ac-status-completed {
  --ac-surface: var(--c-chip-green-bg);
  --ac-border: var(--c-chip-green-2-bg);
  --ac-text: #2f5d4a;
  --ac-text-muted: #2f5d4a;
}

.qdnapro-activity-card.ac-status-completed .ac-tile {
  background: var(--c-chip-green-2-bg);
}

/* repeat-done (Kim's compromise, 13.07.2026): a repeat activity never truly
   "completes", but after at least one fill-in it deserves the same
   satisfying green tile + text as completed - WITHOUT the green surface
   wash, so the card still reads as open/tappable for the next fill-in.
   Only --ac-text/--ac-text-muted are overridden (matching completed's
   values); --ac-surface/--ac-border are deliberately left unset so the card
   falls back to the neutral open chrome (#ffffff / var(--c-border-card) via the base
   rule's own fallbacks). No pill/action-button tint rules exist for this
   status (unlike in-progress/completed/error) - deliberately, per spec. */
.qdnapro-activity-card.ac-status-repeat-done {
  --ac-text: #2f5d4a;
  --ac-text-muted: #2f5d4a;
}

.qdnapro-activity-card.ac-status-repeat-done .ac-tile {
  background: var(--c-chip-green-2-bg);
}

.qdnapro-activity-card.ac-status-error {
  --ac-surface: var(--c-signal-red-bg);
  --ac-border: var(--c-chip-red-2-bg);
  --ac-text: #633030;
  --ac-text-muted: #633030;
}

.qdnapro-activity-card.ac-status-error .ac-tile {
  background: var(--c-chip-red-2-bg);
}

.qdnapro-activity-card.ac-status-disabled {
  --ac-surface: var(--c-grey-50);
  --ac-border: var(--c-border-card);
  --ac-text: var(--c-text-disabled);
  --ac-text-muted: var(--c-text-disabled);
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-activity-card.ac-status-disabled .ac-tile {
  background: var(--c-border-card);
  filter: grayscale(1);
}

/* Dark-mode status overrides. Values from the tag dark palette:
   yellow(-2), green(-2), red(-2) pairs; grey base + grey hover for disabled. */
[data-theme=dark] .qdnapro-activity-card.ac-status-in-progress {
  --ac-surface: #5a4d1f;
  --ac-border: #7a6b2d;
  --ac-text: #fde594;
  --ac-text-muted: #fde594;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-in-progress .ac-tile {
  background: #7a6b2d;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-completed {
  --ac-surface: #2a5544;
  --ac-border: #3d7a62;
  --ac-text: #8becc5;
  --ac-text-muted: #8becc5;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-completed .ac-tile {
  background: #3d7a62;
}

/* repeat-done dark tile + text (same split as light: surface/border stay
   the dark base card chrome set by the plain [data-theme=dark]
   .qdnapro-activity-card rule above). */
[data-theme=dark] .qdnapro-activity-card.ac-status-repeat-done {
  --ac-text: #8becc5;
  --ac-text-muted: #8becc5;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-repeat-done .ac-tile {
  background: #3d7a62;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-error {
  --ac-surface: #5a2b2b;
  --ac-border: #7a3838;
  --ac-text: #fbaaaa;
  --ac-text-muted: #fbaaaa;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-error .ac-tile {
  background: #7a3838;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-disabled {
  --ac-surface: #565b66;
  --ac-border: #6b7180;
  --ac-text: #6b7180;
  --ac-text-muted: #6b7180;
}

[data-theme=dark] .qdnapro-activity-card.ac-status-disabled .ac-tile {
  background: #6b7180;
  filter: grayscale(1);
}

/* === Force states (preview-only, mirrors real :hover / :active 1:1) ===
   Used by the "Force states" preview section to make transient states
   screenshottable. Keep in sync with the real hover/active rules above. */
.qdnapro-activity-card.is-force-hover {
  --ac-overlay-o: 0.5;
  border-color: rgba(0, 0, 0, 0.14);
  box-shadow: 0 3px 10px rgba(20, 25, 80, 0.08);
  transform: translateY(-1px);
}

.qdnapro-activity-card.is-force-pressed {
  --ac-overlay-o: 1;
  transform: scale(0.985);
}

[data-theme=dark] .qdnapro-activity-card.is-force-hover {
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.4);
  border-color: rgba(255, 255, 255, 0.18);
}

/* === Smallest screen (320px) === */
@media (max-width: 320px) {
  .qdnapro-activity-card {
    grid-template-columns: 40px 1fr;
    padding: 8px 10px;
    gap: 8px;
  }
  .qdnapro-activity-card .ac-tile {
    width: 40px;
    height: 40px;
  }
  .qdnapro-activity-card .ac-tile-tick svg {
    width: 26px;
    height: 26px;
  }
}
.qdnapro-activity-icon {
  display: inline-block;
  box-sizing: border-box;
  flex-shrink: 0;
  line-height: 0;
  vertical-align: middle;
  user-select: none;
  transition: opacity 140ms ease-out;
}

.qdnapro-activity-icon .activity-icon-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
  background: transparent;
}

.qdnapro-activity-icon.activity-icon-disabled {
  opacity: 0.5;
}

.qdnapro-activity-icon.activity-icon-missing {
  position: relative;
  background: rgba(0, 0, 0, 0.03);
  border: 1px dashed #c4c7cc;
  border-radius: 8px;
}

.qdnapro-activity-icon.activity-icon-missing::after {
  content: "?";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  color: #898e99;
}

[data-theme=dark] .qdnapro-activity-icon.activity-icon-missing {
  background: rgba(255, 255, 255, 0.04);
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-activity-icon.activity-icon-missing::after {
  color: #6b7280;
}

/* ============================================================
 * qdnapro-activity-icon-picker
 * Ported into the components-v2 bundle so the picker is styled on
 * v1 pages that load the bundle (it previously only lived inline in
 * the preview + as a for-Sander SCSS drop-in). [Kim 2026-05-31]
 * ============================================================ */
.qdnapro-activity-icon-picker {
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-sizing: border-box;
}

.qdnapro-activity-icon-picker *,
.qdnapro-activity-icon-picker *::before,
.qdnapro-activity-icon-picker *::after {
  box-sizing: border-box;
}

.qdnapro-activity-icon-picker .aip-grid {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 4px;
}

@media (max-width: 600px) {
  .qdnapro-activity-icon-picker .aip-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
.qdnapro-activity-icon-picker .aip-tile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--c-border-card);
  border-radius: 10px;
  background: var(--c-bg-card);
  cursor: pointer;
  outline: none;
  transition: background 120ms ease, border-color 120ms ease, box-shadow 150ms ease, transform 100ms ease;
}

.qdnapro-activity-icon-picker .aip-tile qdnapro-activity-icon {
  pointer-events: none;
  display: inline-flex;
}

.qdnapro-activity-icon-picker .aip-tile:hover {
  background: var(--c-bg-subtle-purple);
  border-color: var(--c-sidebar-icon);
  transform: translateY(-1px);
}

.qdnapro-activity-icon-picker .aip-tile:active {
  transform: translateY(0);
}

.qdnapro-activity-icon-picker .aip-tile:focus-visible {
  border-color: var(--c-purple-500);
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.2);
}

.qdnapro-activity-icon-picker .aip-tile.aip-tile-selected {
  border-color: var(--c-action-500);
  background: rgba(70, 82, 243, 0.06);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.25);
}

.qdnapro-activity-icon-picker .aip-tile.aip-tile-selected:hover {
  background: rgba(70, 82, 243, 0.1);
}

.qdnapro-activity-icon-picker .aip-actions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding-top: 2px;
}

/* "View more" (Meer iconen) uses qdnapro-button (subtle-purple, small). */
/* ---- current-only (04.08.2026) ------------------------------------------
   Kim, takenlijst-instellingen: "ik wil gewoon alleen de huidige icon laten
   zien en de meer icon knop naast elkaar, om ruimte te besparen". De host is
   normaal een KOLOM (grid boven, knop eronder); in deze stand wordt hij een
   RIJ, zodat de ene tegel en de knop naast elkaar staan. Dat scheelt op een
   dichte instellingenpagina een hele regel hoogte.
   Zie qdna-activity-icon-picker.js's `current-only` note voor de rest. */
.qdnapro-activity-icon-picker.aip-current-only {
  flex-direction: row;
  align-items: center;
}

/* De grid heeft hier één tegel, dus geen kolommenraster meer nodig. */
.qdnapro-activity-icon-picker.aip-current-only .aip-grid {
  display: flex;
}

/* De 2px die de knop in de kolomstand van de grid afduwt, hoort hier niet:
   naast elkaar moeten tegel en knop op één lijn staan. */
.qdnapro-activity-icon-picker.aip-current-only .aip-actions {
  padding-top: 0;
}

/* Lege tegel: alleen zichtbaar zolang er nog geen icoon gekozen is. Houdt de
   footprint vast zodat de rij niet verspringt, en gestippeld zodat het als
   "hier komt iets" leest en niet als een kapot icoon. */
.qdnapro-activity-icon-picker .aip-tile.aip-tile-empty {
  border-style: dashed;
  cursor: default;
}

.qdnapro-activity-icon-picker.aip-disabled {
  opacity: 0.55;
  pointer-events: none;
}

/* Error state */
.qdnapro-activity-icon-picker.aip-error .aip-grid {
  padding: 8px;
  border: 1px solid var(--c-signal-red-text);
  border-radius: 12px;
  box-shadow: 0 0 0 4px rgba(198, 90, 90, 0.18);
  background: rgba(198, 90, 90, 0.04);
}

.qdnapro-activity-icon-picker .aip-error-message {
  margin: 0;
  font-size: 12px;
  line-height: 16px;
  color: var(--c-signal-red-text);
  font-weight: 500;
}

/* Size: compact - dense grid for the full-set picker overlay */
.qdnapro-activity-icon-picker.aip-size-compact {
  gap: 6px;
}

.qdnapro-activity-icon-picker.aip-size-compact .aip-grid {
  grid-template-columns: repeat(12, 1fr);
  gap: 4px;
}

@media (max-width: 720px) {
  .qdnapro-activity-icon-picker.aip-size-compact .aip-grid {
    grid-template-columns: repeat(8, 1fr);
  }
}
@media (max-width: 480px) {
  .qdnapro-activity-icon-picker.aip-size-compact .aip-grid {
    grid-template-columns: repeat(6, 1fr);
  }
}
.qdnapro-activity-icon-picker.aip-size-compact .aip-tile {
  border-radius: 6px;
}

.qdnapro-activity-icon-picker.aip-size-compact .aip-tile:hover {
  transform: none;
}

.qdnapro-activity-icon-picker.aip-size-compact .aip-tile.aip-tile-selected {
  box-shadow: 0 0 0 2px rgba(70, 82, 243, 0.3);
}

/* ============================================================
 * qdnapro-activity-icon-picker-overlay
 * Anchored search popover for the full activity-icon set. Ported
 * into the components-v2 bundle so it is styled on v1 pages that
 * load the bundle (it previously only lived inline in the preview).
 * The JS sets position (left/top/width) inline and toggles the
 * .aip-overlay-open class; this CSS supplies the box + chrome.
 * z-index 9100 keeps it above qdnapro-modal (z-index 9000).
 * [Kim 2026-05-31]
 * ============================================================ */
.qdnapro-activity-icon-picker-overlay {
  display: contents;
}

.qdnapro-activity-icon-picker-overlay *,
.qdnapro-activity-icon-picker-overlay *::before,
.qdnapro-activity-icon-picker-overlay *::after {
  box-sizing: border-box;
}

.aip-overlay-popover {
  position: fixed;
  z-index: 9100;
  display: none;
  flex-direction: column;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16), 0 2px 6px rgba(0, 0, 0, 0.08);
  max-height: 520px;
  width: 440px;
  overflow: hidden;
  font-family: "Inter", sans-serif;
  color: var(--c-grey-950);
  animation: aip-overlay-in 140ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.aip-overlay-popover.aip-overlay-open {
  display: flex;
}

@keyframes aip-overlay-in {
  from {
    opacity: 0;
    transform: translateY(-4px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.aip-overlay-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 12px 12px 16px;
  border-bottom: 1px solid var(--c-border-soft-2);
  flex-shrink: 0;
}

.aip-overlay-title {
  margin: 0;
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  color: var(--c-purple-500);
}

.aip-overlay-close {
  flex-shrink: 0;
}

.aip-overlay-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px 16px 0 16px;
  flex: 1 1 auto;
  min-height: 0;
}

.aip-overlay-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.aip-overlay-search {
  flex: 1 1 auto;
  min-width: 0;
}

.aip-overlay-count {
  flex: 0 0 auto;
  font-size: 11px;
  color: var(--c-text-muted);
  white-space: nowrap;
}

.aip-overlay-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 12px 4px 12px 0;
  border-top: 1px solid var(--c-border-soft-2);
  margin-top: -4px;
}

.aip-overlay-scroll::-webkit-scrollbar {
  width: 10px;
}

.aip-overlay-scroll::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.18);
  border-radius: 10px;
}

.aip-overlay-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.28);
}

.aip-overlay-sentinel {
  flex-shrink: 0;
  height: 1px;
  margin-top: 4px;
  pointer-events: none;
}

.aip-overlay-empty {
  text-align: center;
  padding: 40px 8px;
  color: var(--c-text-muted);
}

.aip-overlay-empty-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--c-chip-grey-text);
  margin-bottom: 4px;
}

.aip-overlay-empty-sub {
  font-size: 12px;
  color: var(--c-text-muted);
}

.aip-overlay-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 16px;
  border-top: 1px solid var(--c-border-soft-2);
  flex-shrink: 0;
}

/* Compact tile grid inside the popover (auto-fill 36px cells). */
.aip-overlay-popover .qdnapro-activity-icon-picker.aip-size-compact .aip-grid {
  grid-template-columns: repeat(auto-fill, 36px);
  gap: 8px;
  justify-content: start;
}

/* ============================================================
 * icon-set="mdi" — own simple tile grid (floweditor appearance modal,
 * 12.07.2026). Parallel to the .aip-grid/.aip-tile recipe above so both
 * modes look identical, WITHOUT touching qdnapro-activity-icon-picker
 * itself (that component is a load-bearing Tasklists dependency — see the
 * JS docblock for why this stays a separate, parallel grid).
 * ============================================================ */
.aip-overlay-mdi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, 36px);
  gap: 8px;
  justify-content: start;
}

.aip-overlay-mdi-tile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid var(--c-border-card);
  border-radius: 6px;
  background: var(--c-bg-card);
  color: var(--c-grey-600);
  cursor: pointer;
  outline: none;
  transition: background 120ms ease, border-color 120ms ease, box-shadow 150ms ease;
}

.aip-overlay-mdi-tile qdnapro-icon {
  pointer-events: none;
}

.aip-overlay-mdi-tile:hover {
  background: var(--c-bg-subtle-purple);
  border-color: var(--c-sidebar-icon);
}

.aip-overlay-mdi-tile:focus-visible {
  border-color: var(--c-purple-500);
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.2);
}

.aip-overlay-mdi-tile.aip-overlay-mdi-tile-selected {
  border-color: var(--c-action-500);
  background: rgba(70, 82, 243, 0.06);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.25);
  color: var(--c-purple-500);
}

[data-theme=dark] .aip-overlay-mdi-tile {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
  color: #d1d5db;
}

[data-theme=dark] .aip-overlay-mdi-tile:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.18);
}

[data-theme=dark] .aip-overlay-mdi-tile.aip-overlay-mdi-tile-selected {
  border-color: #a5acff;
  background: rgba(70, 82, 243, 0.18);
  box-shadow: 0 0 0 2px rgba(70, 82, 243, 0.3);
  color: #a5acff;
}

.aip-overlay-anim-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, 48px);
  gap: 8px;
  justify-content: start;
}

.aip-overlay-anim-tile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 4px;
  box-sizing: border-box;
  border: 1px solid var(--c-border-card);
  border-radius: 8px;
  background: var(--c-bg-card);
  cursor: pointer;
  outline: none;
  transition: background 120ms ease, border-color 120ms ease, box-shadow 150ms ease;
}

.aip-overlay-anim-tile qdnapro-lottie {
  --ql-size: 38px;
  pointer-events: none;
}

.aip-overlay-anim-tile:hover {
  background: var(--c-bg-subtle-purple);
  border-color: var(--c-sidebar-icon);
}

.aip-overlay-anim-tile:focus-visible {
  border-color: var(--c-purple-500);
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.2);
}

.aip-overlay-anim-tile.aip-overlay-anim-tile-selected {
  border-color: var(--c-action-500);
  background: rgba(70, 82, 243, 0.06);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.25);
}

[data-theme=dark] .aip-overlay-anim-tile {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .aip-overlay-anim-tile:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.18);
}

[data-theme=dark] .aip-overlay-anim-tile.aip-overlay-anim-tile-selected {
  border-color: #a5acff;
  background: rgba(70, 82, 243, 0.18);
  box-shadow: 0 0 0 2px rgba(70, 82, 243, 0.3);
}

qdnapro-activity-row {
  display: flex;
  align-items: center;
  gap: 6px;
  position: relative;
  box-sizing: border-box;
  --c-focus-ring: var(--c-purple-500);
  --c-focus-glow: rgba(70, 82, 243, 0.25);
}

@property --row-pulse-beam-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}
.activity-row-inner {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 64px;
  flex: 1;
  padding: 8px 12px 8px 32px;
  border-radius: 10px;
  position: relative;
  box-sizing: border-box;
  user-select: none;
  cursor: grab;
  outline: none;
}
.activity-row-inner.is-checkin, .activity-row-inner.is-checkin:active {
  cursor: pointer;
}
.activity-row-inner {
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.7);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease, transform 100ms ease;
}

.activity-row-inner:focus-visible,
.activity-row-inner.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-focus-ring), 0 0 0 6px var(--c-focus-glow);
}

.activity-row-inner.disabled:focus-visible,
.activity-row-inner.disabled.force-focus {
  box-shadow: none;
}

.activity-row-inner.is-pressing:not(.disabled),
.activity-row-inner.force-active:not(.disabled) {
  background: rgba(70, 82, 243, 0.1);
  border-color: rgba(70, 82, 243, 0.28);
  box-shadow: 0 2px 10px rgba(70, 82, 243, 0.12);
  transform: scale(0.975);
  cursor: grabbing;
  transition: background 60ms ease, border-color 60ms ease, transform 60ms ease;
}

.activity-row-inner.disabled {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}

.activity-row-inner.archived {
  opacity: 0.6;
}

.activity-row-inner.archived:hover:not(.disabled) .row-accent-bar {
  opacity: 0;
}

.activity-row-inner.archived.is-pressing:not(.disabled),
.activity-row-inner.archived.force-active:not(.disabled) {
  background: rgba(255, 255, 255, 0.6);
  border-color: rgba(255, 255, 255, 0.7);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  transform: none;
}

.activity-row-inner.is-briefing {
  min-height: 56px;
  background: rgba(230, 239, 249, 0.75);
  border-color: rgba(181, 206, 237, 0.9);
}

.activity-row-inner.is-briefing:hover:not(.disabled),
.activity-row-inner.is-briefing.force-hover:not(.disabled) {
  background: rgba(206, 222, 243, 0.88);
  border-color: rgba(133, 161, 236, 0.9);
}

qdnapro-activity-row[dragging] .activity-row-inner {
  opacity: 0.35;
  cursor: grabbing;
}

qdnapro-activity-row[drop-above] .activity-row-inner {
  box-shadow: 0 -3px 0 0 var(--c-action-500), 0 0 0 2px rgba(70, 82, 243, 0.15);
}

qdnapro-activity-row[drop-below] .activity-row-inner {
  box-shadow: 0 3px 0 0 var(--c-action-500), 0 0 0 2px rgba(70, 82, 243, 0.15);
}

.activity-row-inner:hover:not(.disabled),
.activity-row-inner.force-hover:not(.disabled) {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(255, 255, 255, 0.9);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.activity-row-inner {
  overflow: hidden;
}

.row-accent-bar {
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 40px;
  background: var(--c-action-500);
  border-radius: 2px;
  opacity: 0;
  transition: opacity 150ms ease;
  pointer-events: none;
  z-index: 1;
}

.activity-row-inner:hover:not(.disabled) .row-accent-bar,
.activity-row-inner.force-hover:not(.disabled) .row-accent-bar {
  opacity: 1;
}

.activity-row-inner.is-checkin:hover .row-accent-bar,
.activity-row-inner.is-checkin.force-hover .row-accent-bar {
  opacity: 0;
}

qdnapro-activity-row[locked] .activity-row-inner:hover .row-accent-bar,
qdnapro-activity-row[locked] .activity-row-inner.force-hover .row-accent-bar,
.activity-row-inner.is-readonly:hover .row-accent-bar,
.activity-row-inner.is-readonly.force-hover .row-accent-bar {
  opacity: 0;
}

.row-grip {
  display: none;
}

.row-left {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 0;
}

.row-activity-icon {
  flex-shrink: 0;
}

.row-icon-placeholder {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.06);
  flex-shrink: 0;
}

.row-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.row-name {
  font-size: 14px;
  font-weight: 500;
  color: var(--c-grey-950);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.4;
}

.row-sub {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.row-sub:empty {
  display: none;
}

.row-status {
  display: flex;
  align-items: center;
}

.row-status:empty {
  display: none;
}

.row-meta {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-shrink: 0;
}

.row-meta-id,
.row-meta-version {
  font-size: 11px;
  color: var(--c-grey-400);
  font-weight: 400;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.row-meta-dot {
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: var(--c-grey-200);
  flex-shrink: 0;
}

.row-meta-desc {
  font-size: 11px;
  color: var(--c-grey-400);
  font-weight: 400;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 0 1 auto;
  min-width: 0;
}

.row-type-tag {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  pointer-events: none;
  display: flex;
  align-items: center;
  gap: 6px;
}

.row-type-tag .row-icon-tag {
  gap: 0;
}

@media (max-width: 900px) {
  .row-type-tag {
    display: none;
  }
}
.row-divider {
  width: 1px;
  align-self: stretch;
  margin: 10px 4px;
  background: rgba(0, 0, 0, 0.08);
  flex-shrink: 0;
}

.row-right {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}

.row-col-btns {
  display: flex;
  gap: 4px;
}

.row-btn-divider {
  width: 1px;
  align-self: stretch;
  margin: 8px 2px;
  background: rgba(0, 0, 0, 0.08);
  flex-shrink: 0;
}

.row-required {
  display: flex;
  align-items: center;
  gap: 6px;
  padding-left: 8px;
  border-left: 1px solid rgba(0, 0, 0, 0.08);
  margin-left: 4px;
}

.row-required-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--c-grey-500);
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
}

.activity-row-inner.indent {
  margin-left: 44px;
}

.row-warning-slot {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.row-warning-btn {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  padding: 0;
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  outline: none;
  transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.row-warning-btn--not-connected {
  border: 1px solid rgba(234, 88, 12, 0.35);
  color: var(--c-warn-orange-500);
}

.row-warning-btn--not-connected:hover {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(234, 88, 12, 0.55);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  color: var(--c-warn-orange-600);
}

.row-warning-btn--unpublished {
  border: 1px solid rgba(217, 119, 6, 0.3);
  color: var(--c-warn-amber-500);
}

.row-warning-btn--unpublished:hover {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(217, 119, 6, 0.5);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  color: var(--c-warn-amber-600);
}

.row-warning-btn--not-published {
  border: 1px solid rgba(239, 142, 2, 0.32);
  color: var(--c-warn-yellow-600);
}

.row-warning-btn--not-published:hover {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(239, 142, 2, 0.52);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  color: var(--c-signal-yellow-text);
}

.row-warning-btn--no-location {
  border: 1px solid rgba(239, 142, 2, 0.32);
  color: var(--c-warn-yellow-600);
}

.row-warning-btn--no-location:hover {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(239, 142, 2, 0.52);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  color: var(--c-signal-yellow-text);
}

.row-warning-btn--alert {
  border: 1px solid rgba(239, 142, 2, 0.32);
  color: var(--c-warn-yellow-600);
}

.row-warning-btn--alert:hover {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(239, 142, 2, 0.52);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  color: var(--c-signal-yellow-text);
}

.row-warning-btn:focus-visible {
  box-shadow: 0 0 0 2px var(--c-focus-ring), 0 0 0 6px var(--c-focus-glow);
}

.row-warning-btn:active {
  background: rgba(255, 255, 255, 0.7);
  transform: scale(0.97);
}

[data-theme=dark] qdnapro-activity-row {
  --c-focus-ring: #a5acff;
  --c-focus-glow: rgba(70, 82, 243, 0.40);
}

[data-theme=dark] .activity-row-inner {
  background: #2e3036;
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
}

[data-theme=dark] .activity-row-inner:hover:not(.disabled),
[data-theme=dark] .activity-row-inner.force-hover:not(.disabled) {
  background: #40444d;
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
}

[data-theme=dark] .activity-row-inner.is-pressing:not(.disabled),
[data-theme=dark] .activity-row-inner.force-active:not(.disabled) {
  background: rgba(70, 82, 243, 0.18);
  border-color: rgba(70, 82, 243, 0.4);
  box-shadow: 0 2px 10px rgba(70, 82, 243, 0.2);
}

[data-theme=dark] .activity-row-inner.is-briefing {
  background: #2e3e54;
  border-color: rgba(181, 206, 237, 0.2);
}

[data-theme=dark] .activity-row-inner.is-briefing:hover:not(.disabled),
[data-theme=dark] .activity-row-inner.is-briefing.force-hover:not(.disabled) {
  background: #445a78;
  border-color: rgba(181, 206, 237, 0.32);
}

[data-theme=dark] .row-name {
  color: #f3f4f6;
}

[data-theme=dark] .row-meta-id,
[data-theme=dark] .row-meta-version {
  color: #4b5563;
}

[data-theme=dark] .row-meta-dot {
  background: #374151;
}

[data-theme=dark] .row-meta-desc {
  color: #6b7280;
}

[data-theme=dark] .activity-row-inner.navigating:not(.disabled) {
  background: rgba(70, 82, 243, 0.15);
  border-color: rgba(70, 82, 243, 0.35);
  box-shadow: 0 2px 12px rgba(70, 82, 243, 0.25);
}

[data-theme=dark] .row-divider {
  background: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .row-btn-divider {
  background: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .row-icon-placeholder {
  background: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .row-required {
  border-left-color: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .row-required-label {
  color: #9ca3af;
}

[data-theme=dark] .row-warning-btn {
  background: rgba(20, 22, 35, 0.7);
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
  color: #fbbf24;
}

[data-theme=dark] .row-warning-btn:hover {
  background: rgba(40, 44, 65, 0.85);
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
  color: #f59e0b;
}

qdnapro-activity-row[variant=pulse] .activity-row-inner {
  padding: 8px 12px 8px 8px;
  gap: 10px;
}

qdnapro-activity-row[variant=pulse] .activity-row-inner.is-readonly {
  cursor: default;
}

.row-pulse-grip,
.row-pulse-lock {
  flex: 0 0 auto;
  width: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.row-pulse-grip {
  color: var(--c-grey-300);
  cursor: grab;
}

.activity-row-inner.is-readonly .row-pulse-grip {
  visibility: hidden;
}

.row-pulse-lock {
  color: var(--c-grey-400);
  cursor: default;
}

.row-pulse-lock qdnapro-icon {
  width: 18px;
  height: 18px;
}

.row-pulse-day {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  margin: 0;
  font-family: inherit;
  cursor: pointer;
  flex: 0 0 auto;
  min-width: 76px;
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 6px 10px;
  border-radius: 9px;
  background: var(--c-purple-50);
  color: var(--c-purple-700);
  text-align: center;
}

.row-pulse-day-label {
  font-size: 13px;
  font-weight: 600;
  line-height: 16px;
}

.row-pulse-day-sub {
  font-size: 10.5px;
  line-height: 13px;
  color: var(--c-grey-500);
}

.row-pulse-thumb {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
}

.row-pulse-thumb--image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.row-pulse-thumb--color {
  background: var(--row-pulse-thumb-swatch, var(--c-grey-50));
}

.row-pulse-thumb-pattern {
  position: absolute;
  inset: 0;
  background-color: var(--row-pulse-thumb-pattern-tint, var(--row-pulse-thumb-swatch));
  mask-image: var(--row-pulse-thumb-pattern-url);
  mask-size: var(--row-pulse-thumb-pattern-size, 40px 40px);
  mask-position: var(--row-pulse-thumb-pattern-position, 0 0);
  mask-repeat: var(--row-pulse-thumb-pattern-repeat, repeat);
  -webkit-mask-image: var(--row-pulse-thumb-pattern-url);
  -webkit-mask-size: var(--row-pulse-thumb-pattern-size, 40px 40px);
  -webkit-mask-position: var(--row-pulse-thumb-pattern-position, 0 0);
  -webkit-mask-repeat: var(--row-pulse-thumb-pattern-repeat, repeat);
}

.row-pulse-thumb-pattern::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: var(--row-pulse-thumb-pattern-tint, var(--row-pulse-thumb-swatch));
  mask-image: var(--row-pulse-thumb-pattern-url);
  mask-size: var(--row-pulse-thumb-pattern-size, 40px 40px);
  mask-position: var(--row-pulse-thumb-pattern-position, 0 0);
  mask-repeat: var(--row-pulse-thumb-pattern-repeat, repeat);
  -webkit-mask-image: var(--row-pulse-thumb-pattern-url);
  -webkit-mask-size: var(--row-pulse-thumb-pattern-size, 40px 40px);
  -webkit-mask-position: var(--row-pulse-thumb-pattern-position, 0 0);
  -webkit-mask-repeat: var(--row-pulse-thumb-pattern-repeat, repeat);
}

/* Kim 24.08: de type-pil van een Pulse-stap staat MIDDEN in de rij, precies
   zoals .row-type-tag dat doet voor een takenlijst-activiteit. Zelfde absolute
   centrering, zodat beide lijsten dezelfde ritmiek houden. */
.row-pulse-type-tag {
  flex: 0 0 190px;
  display: flex;
  align-items: center;
  gap: 6px;
  pointer-events: none;
}

@media (max-width: 900px) {
  .row-pulse-type-tag,
  .row-pulse-badges {
    display: none;
  }
}
.row-pulse-badges {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 6px;
  pointer-events: none;
}

.row-pulse-score {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  flex-shrink: 0;
  padding: 2px 7px;
  border-radius: 9px;
  background: var(--c-chip-yellow-2-bg);
  color: var(--c-chip-yellow-2-text);
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.row-pulse-score qdnapro-icon {
  flex-shrink: 0;
}

.row-pulse-score-double {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  flex-shrink: 0;
  padding: 2px 7px;
  border-radius: 9px;
  background: var(--c-chip-dark-purple-bg);
  color: var(--c-chip-dark-purple-text);
  font-size: 11px;
  font-weight: 700;
  line-height: 16px;
  white-space: nowrap;
}

.row-pulse-score-double::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  padding: 1px;
  background: conic-gradient(from var(--row-pulse-beam-angle), color-mix(in srgb, currentColor 10%, transparent) 0deg, color-mix(in srgb, currentColor 10%, transparent) 280deg, color-mix(in srgb, currentColor 60%, transparent) 320deg, color-mix(in srgb, currentColor 10%, transparent) 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: row-pulse-beam-spin 3.2s linear infinite;
  pointer-events: none;
}

@keyframes row-pulse-beam-spin {
  to {
    --row-pulse-beam-angle: 360deg;
  }
}
.row-pulse-score-double qdnapro-icon {
  flex-shrink: 0;
}

@media (prefers-reduced-motion: reduce) {
  .row-pulse-score-double::after {
    animation: none;
  }
}
.row-pulse-thumb--anim {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-grey-50);
}

.row-pulse-thumb--anim qdnapro-lottie {
  width: 28px;
  height: 28px;
}

.row-pulse-thumb--tile-grey {
  background: var(--c-grey-50);
}

.row-pulse-thumb--tile-red {
  background: var(--c-signal-red-bg);
}

.row-pulse-thumb--tile-yellow {
  background: var(--c-chip-yellow-bg);
}

.row-pulse-thumb--tile-green {
  background: var(--c-chip-green-bg);
}

.row-pulse-thumb--tile-blue {
  background: var(--c-signal-blue-bg);
}

.row-pulse-thumb--tile-bright-blue {
  background: var(--c-chip-bright-blue-2-bg);
}

.row-pulse-thumb--tile-pink {
  background: var(--c-signal-pink-bg);
}

.row-pulse-thumb--tile-purple {
  background: var(--c-chip-purple-bg);
}

[data-theme=dark] .row-pulse-thumb--tile-grey {
  background: #40444d;
}

[data-theme=dark] .row-pulse-thumb--tile-red {
  background: #5a2b2b;
}

[data-theme=dark] .row-pulse-thumb--tile-yellow {
  background: #5a4d1f;
}

[data-theme=dark] .row-pulse-thumb--tile-green {
  background: #2a5544;
}

[data-theme=dark] .row-pulse-thumb--tile-blue {
  background: #2e3e54;
}

[data-theme=dark] .row-pulse-thumb--tile-bright-blue {
  background: #3a4a8a;
}

[data-theme=dark] .row-pulse-thumb--tile-pink {
  background: #4e2a36;
}

[data-theme=dark] .row-pulse-thumb--tile-purple {
  background: #3a3555;
}

.row-pulse-thumb--interactive {
  padding: 0;
  border: 0;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

.row-pulse-thumb--interactive::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: rgba(0, 0, 0, 0);
  transition: background-color 120ms ease;
  pointer-events: none;
}

.row-pulse-thumb--interactive:hover::before {
  background: rgba(0, 0, 0, 0.08);
}

.row-pulse-thumb--interactive:active::before {
  background: rgba(0, 0, 0, 0.16);
}

[data-theme=dark] .row-pulse-thumb--interactive:hover::before {
  background: rgba(255, 255, 255, 0.1);
}

[data-theme=dark] .row-pulse-thumb--interactive:active::before {
  background: rgba(255, 255, 255, 0.18);
}

.row-pulse-thumb--interactive:focus {
  outline: none;
}

.row-pulse-thumb--interactive:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring, #534ab7);
}

.row-pulse-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}

.row-pulse-name {
  font-size: 14px;
  font-weight: 500;
  color: var(--c-grey-950);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.4;
}

.row-pulse-desc {
  font-size: 12px;
  line-height: 1.3;
  color: var(--c-grey-500);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.row-pulse-ref {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  margin-top: 2px;
  padding: 2px 9px;
  border-radius: 9px;
  background: var(--row-pulse-ref-bg, #eef0fb);
  color: var(--row-pulse-ref-fg, #394290);
  font-size: 11.5px;
  line-height: 17px;
}

.row-pulse-ref qdnapro-icon {
  flex-shrink: 0;
}

.row-pulse-ref span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.row-pulse-ref.is-missing {
  background: var(--c-tag-warning-bg, #fff2d6);
  color: var(--row-pulse-ref-missing-fg, #7a5300);
}

.row-pulse-chat {
  position: relative;
  flex-shrink: 0;
}

.row-pulse-concept {
  flex-shrink: 0;
}

[data-role=chat-badge] {
  position: absolute;
  top: -6px;
  right: -6px;
  z-index: 1;
  pointer-events: none;
  font-variant-numeric: tabular-nums;
}

.row-pulse-switch {
  flex: 0 0 auto;
  width: 36px;
}

.row-pulse-delete {
  flex-shrink: 0;
}

.row-pulse-menu {
  flex-shrink: 0;
}

@media (max-width: 760px) {
  qdnapro-activity-row[variant=pulse] .row-pulse-switch {
    display: none;
  }
}
[data-theme=dark] .row-pulse-grip {
  color: #565b66;
}

[data-theme=dark] .row-pulse-lock {
  color: #6b7280;
}

[data-theme=dark] .row-pulse-day {
  background: #2a2d55;
  color: #a5acff;
}

[data-theme=dark] .row-pulse-day-sub {
  color: #9ca3af;
}

[data-theme=dark] .row-pulse-name {
  color: #f3f4f6;
}

[data-theme=dark] .row-pulse-desc {
  color: #9ca3af;
}

[data-theme=dark] .row-pulse-ref {
  background: var(--row-pulse-ref-bg-dark, rgba(165, 172, 255, 0.16));
  color: var(--row-pulse-ref-fg-dark, #c0c5ff);
}

[data-theme=dark] .row-pulse-ref.is-missing {
  background: var(--row-pulse-ref-missing-bg-dark, rgba(240, 208, 96, 0.16));
  color: var(--row-pulse-ref-missing-fg-dark, #f0d060);
}

.qdnapro-agenda-list {
  display: block;
  box-sizing: border-box;
  width: 100%;
  background: var(--c-bg-card);
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-agenda-list__day {
  display: block;
}

.qdnapro-agenda-list__header {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 10px 16px 6px;
  background: var(--c-bg-card);
  border-bottom: 1px solid var(--c-border-soft-2, #e6e9ef);
  font-size: 13px;
  font-weight: 600;
  line-height: 16px;
  color: var(--c-grey-600, #565b66);
}

.qdnapro-agenda-list__header.is-today {
  color: var(--c-action-500, #4652f3);
}

.qdnapro-agenda-list__todaypill {
  display: inline-block;
  padding: 1px 8px;
  border-radius: 999px;
  background: var(--c-action-500, #4652f3);
  color: var(--c-text-on-action);
  font-weight: 700;
}

.qdnapro-agenda-list__day.is-past {
  opacity: 0.55;
}

.qdnapro-agenda-list__row {
  display: flex;
  align-items: stretch;
  gap: 8px;
  padding: 4px 8px 4px 12px;
}

.qdnapro-agenda-list__row:first-of-type {
  padding-top: 8px;
}

.qdnapro-agenda-list__time {
  flex: none;
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 56px;
  padding-top: 4px;
}

.qdnapro-agenda-list__start {
  font-size: 14px;
  font-weight: 600;
  line-height: 18px;
  color: var(--c-grey-950, #0b0b0d);
}

.qdnapro-agenda-list__dur {
  font-size: 12px;
  line-height: 16px;
  color: var(--c-grey-500, #6b7280);
}

.qdnapro-agenda-list__row .qdnapro-event-card {
  flex: 1;
  min-width: 0;
  height: auto;
}

.qdnapro-agenda-list__empty {
  padding: 24px 16px;
  text-align: center;
  font-size: 13px;
  line-height: 18px;
  color: var(--c-grey-500, #6b7280);
}

.qdnapro-alert {
  --alert-bg: var(--c-grey-50, #f0f1f2);
  --alert-text: var(--c-grey-600, #565b66);
  --alert-border: var(--c-grey-200, #d1d5db);
  display: flex;
  align-items: center;
  gap: 10px;
  box-sizing: border-box;
  width: 100%;
  padding: 14px 16px;
  border-radius: var(--r-3, 12px);
  border: 1px solid color-mix(in srgb, var(--alert-border) 45%, transparent);
  background: var(--alert-bg);
  color: var(--alert-text);
  font-family: var(--ff, "Inter", -apple-system, sans-serif);
  text-align: left;
}

.qdnapro-alert--error {
  --alert-bg: var(--c-signal-red-bg, #fee3e3);
  --alert-text: var(--c-signal-red-text, #c65a5a);
  --alert-border: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-alert--warning {
  --alert-bg: var(--c-warning-bright-bg, #fff3cd);
  --alert-text: var(--c-warning-bright-text, #9a6a10);
  --alert-border: var(--c-warning-bright-border, #f0d060);
}

.qdnapro-alert--success {
  --alert-bg: var(--c-signal-green-bg, #c5f5e2);
  --alert-text: var(--c-signal-green-text, #428b6e);
  --alert-border: var(--c-signal-green-text, #428b6e);
}

.qdnapro-alert--info {
  --alert-bg: var(--c-signal-blue-bg, #e6eff9);
  --alert-text: var(--c-signal-blue-text, #6a8ab4);
  --alert-border: var(--c-signal-blue-text, #6a8ab4);
}

.qdnapro-alert__icon {
  flex: none;
  display: inline-flex;
  align-items: center;
  color: var(--alert-text);
}

.qdnapro-alert__icon qdnapro-icon {
  width: 20px;
  height: 20px;
}

.qdnapro-alert__main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px;
}

.qdnapro-alert__content {
  flex: 1 1 220px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.qdnapro-alert__title {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--alert-text);
}

.qdnapro-alert__body {
  font-size: 13px;
  font-weight: 400;
  line-height: 1.45;
  color: var(--alert-text);
}

.qdnapro-alert__action {
  flex: none;
  display: flex;
  align-items: center;
}

.qdnapro-alert .qdnapro-alert__action .qdnapro-button {
  background: color-mix(in srgb, var(--alert-text) 12%, transparent);
  color: var(--alert-text);
}

.qdnapro-alert .qdnapro-alert__action .qdnapro-button:hover:not(.button-disabled) {
  background: color-mix(in srgb, var(--alert-text) 20%, transparent);
}

.qdnapro-alert .qdnapro-alert__action .qdnapro-button:active:not(.button-disabled) {
  background: color-mix(in srgb, var(--alert-text) 26%, transparent);
}

.qdnapro-alert__dismiss {
  flex: none;
  margin: 0 -6px 0 0;
}

.qdnapro-alert .qdnapro-alert__dismiss[hidden] {
  display: none;
}

.qdnapro-alert .qdnapro-alert__dismiss.qdnapro-icon-btn {
  color: var(--alert-text);
}

.qdnapro-alert .qdnapro-alert__dismiss.qdnapro-icon-btn:hover:not(.icon-btn-disabled) {
  background: color-mix(in srgb, var(--alert-text) 15%, transparent);
}

.qdnapro-alert--compact {
  padding: 10px 12px;
  gap: 8px;
  border-radius: var(--r-2, 8px);
}

.qdnapro-alert--compact .qdnapro-alert__icon qdnapro-icon {
  width: 18px;
  height: 18px;
}

.qdnapro-alert--compact .qdnapro-alert__title {
  font-size: 13px;
}

.qdnapro-alert--compact .qdnapro-alert__body {
  font-size: 12px;
}

.qdnapro-alert--compact .qdnapro-alert__main {
  gap: 6px 12px;
}

.qdnapro-answer-option {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 0;
  border-radius: 7px;
  border: 1px solid var(--c-border-soft-2);
  background: var(--c-bg-card-hover);
  overflow: visible;
  min-height: 38px;
  transition: border-color 140ms, box-shadow 140ms, transform 120ms, background 140ms;
  position: relative;
  font-family: "Inter", -apple-system, sans-serif;
}
.qdnapro-answer-option *, .qdnapro-answer-option *::before, .qdnapro-answer-option *::after {
  box-sizing: border-box;
}
.qdnapro-answer-option:hover, .qdnapro-answer-option--show-actions {
  border-color: var(--c-chip-bright-blue-2-hover);
  box-shadow: 0 1px 5px rgba(64, 73, 154, 0.1);
}
.qdnapro-answer-option:hover .qdnapro-answer-option__drag, .qdnapro-answer-option--show-actions .qdnapro-answer-option__drag {
  opacity: 1;
}
.qdnapro-answer-option:hover .qdnapro-answer-option__actions, .qdnapro-answer-option--show-actions .qdnapro-answer-option__actions {
  opacity: 1;
  pointer-events: all;
}
.qdnapro-answer-option:hover .qdnapro-answer-option__act, .qdnapro-answer-option--show-actions .qdnapro-answer-option__act {
  transform: scale(1);
  opacity: 1;
}
.qdnapro-answer-option--draggable .qdnapro-answer-option__label {
  padding-left: 14px;
}
.qdnapro-answer-option--pressed {
  border-color: var(--c-chip-bright-blue-2-hover);
  background: var(--c-bg-subtle-purple);
  box-shadow: inset 0 1px 3px rgba(64, 73, 154, 0.12);
  transform: translateY(1px);
}
.qdnapro-answer-option--dragging {
  border-color: var(--c-purple-500);
  background: var(--c-bg-card);
  box-shadow: 0 10px 26px rgba(20, 24, 60, 0.22);
  transform: scale(1.015);
  z-index: 5;
}
.qdnapro-answer-option--dragging .qdnapro-answer-option__drag {
  opacity: 1;
}
.qdnapro-answer-option--unlinked {
  border-color: var(--c-warning-bright-border);
  background: var(--c-bg-card);
}
.qdnapro-answer-option--confirming {
  border-color: var(--c-chip-red-2-bg);
  background: var(--c-signal-red-soft);
}
.qdnapro-answer-option--confirming-unlink {
  border-color: var(--c-warning-bright-border);
  background: var(--c-bg-card);
}
.qdnapro-answer-option {
  --answer-option-accent-bg: var(--c-purple-50, #e6e9ff);
  --answer-option-accent-text: var(--c-purple-500, #40499a);
}
.qdnapro-answer-option--color-positive {
  --answer-option-accent-bg: var(--c-signal-green-bg, #c5f5e2);
  --answer-option-accent-text: var(--c-signal-green-text, #428b6e);
}
.qdnapro-answer-option--color-warning {
  --answer-option-accent-bg: var(--c-signal-yellow-bg, #feedb8);
  --answer-option-accent-text: var(--c-signal-yellow-text, #bf7202);
}
.qdnapro-answer-option--color-negative {
  --answer-option-accent-bg: var(--c-signal-red-bg, #fee3e3);
  --answer-option-accent-text: var(--c-signal-red-text, #c65a5a);
}
.qdnapro-answer-option--color-neutral_alt {
  --answer-option-accent-bg: var(--c-signal-blue-bg, #e6eff9);
  --answer-option-accent-text: var(--c-signal-blue-text, #6a8ab4);
}
.qdnapro-answer-option--cross-check {
  transition: border-color 200ms, box-shadow 200ms, transform 200ms, background 200ms;
}
.qdnapro-answer-option--marked {
  border-color: var(--c-success-500, #12805e);
  background: var(--c-signal-green-bg, #c5f5e2);
}

.qdnapro-answer-option__drag {
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 22px;
  background: var(--c-action-500);
  border-radius: 2px;
  opacity: 0;
  transition: opacity 150ms ease;
  pointer-events: none;
  z-index: 1;
}

.qdnapro-answer-option__mark {
  position: relative;
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  margin-left: 10px;
  border-radius: 50%;
  border: 1.5px solid var(--c-border-soft-2);
  background: var(--c-bg-card);
  color: var(--c-grey-500, #6b6884);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  font-family: inherit;
  transition: background 200ms ease, border-color 200ms ease, color 200ms ease;
}
.qdnapro-answer-option__mark:focus {
  outline: none;
}
.qdnapro-answer-option__mark:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 35%, transparent);
}
.qdnapro-answer-option__mark svg {
  width: 12px;
  height: 12px;
}
.qdnapro-answer-option__mark.is-marked {
  border-color: var(--c-success-500, #12805e);
  background: var(--c-signal-green-bg, #c5f5e2);
  color: var(--c-signal-green-text, #428b6e);
}
.qdnapro-answer-option__mark.is-wrong {
  border-color: var(--c-warn-red-500, #dc2626);
  background: var(--c-signal-red-bg, #fee3e3);
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-answer-option--draggable .qdnapro-answer-option__mark {
  margin-left: 14px;
}

.qdnapro-answer-option__mark-icon {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 200ms ease, transform 200ms ease;
}

.qdnapro-answer-option__mark-icon--cross {
  opacity: 1;
  transform: scale(1) rotate(0);
}

.qdnapro-answer-option__mark-icon--check {
  opacity: 0;
  transform: scale(0.5) rotate(-45deg);
}

.qdnapro-answer-option__mark.is-marked .qdnapro-answer-option__mark-icon--cross {
  opacity: 0;
  transform: scale(0.5) rotate(45deg);
}
.qdnapro-answer-option__mark.is-marked .qdnapro-answer-option__mark-icon--check {
  opacity: 1;
  transform: scale(1) rotate(0);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-answer-option__mark,
  .qdnapro-answer-option__mark-icon,
  .qdnapro-answer-option--cross-check {
    transition: none;
  }
}
.qdnapro-answer-option__correct {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 4px 0 10px;
  font-size: 12px;
  line-height: 1;
  color: var(--c-grey-500, #6b6884);
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
}

.qdnapro-answer-option--correct .qdnapro-answer-option__correct {
  color: var(--c-brand-purple, #534ab7);
}

.qdnapro-answer-option__label {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  color: var(--c-purple-700);
  font-family: inherit;
  font-size: 12px;
  padding: 9px 6px;
  line-height: 1.4;
  min-width: 0;
}
.qdnapro-answer-option__label:focus, .qdnapro-answer-option__label.is-editing {
  background: rgba(255, 255, 255, 0.9);
  border-radius: 4px;
  box-shadow: inset 0 0 0 1.5px var(--c-purple-500);
}
.qdnapro-answer-option__label[readonly] {
  color: var(--c-purple-400);
  cursor: default;
}

.qdnapro-answer-option__label--static {
  display: flex;
  align-items: center;
  cursor: default;
}
.qdnapro-answer-option__label--static.is-empty {
  color: var(--c-text-disabled-pp);
  font-style: italic;
}

.qdnapro-answer-option__node-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--answer-option-accent-text, #40499a);
}

.qdnapro-answer-option--single .qdnapro-answer-option__node-icon {
  padding: 0 2px 0 10px;
  font-size: 18px;
}

.qdnapro-answer-option:not(.qdnapro-answer-option--single) .qdnapro-answer-option__node-icon {
  width: 22px;
  height: 22px;
  margin-left: 8px;
  border-radius: 6px;
  background: var(--answer-option-accent-bg, #e6e9ff);
  font-size: 14px;
  flex-shrink: 0;
}

.qdnapro-answer-option--draggable .qdnapro-answer-option__node-icon {
  margin-left: 14px;
}

.qdnapro-answer-option__conn {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px 8px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
  margin-right: 4px;
  font-family: inherit;
}
.qdnapro-answer-option__conn svg {
  width: 13px;
  height: 13px;
}
.qdnapro-answer-option__conn--linked {
  background: var(--c-bg-subtle-purple);
  color: var(--c-purple-500);
  border: none;
  cursor: default;
}
.qdnapro-answer-option__conn--linked.qdnapro-answer-option__conn--has-tip {
  transition: background 120ms;
}
.qdnapro-answer-option__conn--linked.qdnapro-answer-option__conn--has-tip:hover {
  background: var(--c-purple-50);
}
.qdnapro-answer-option__conn--empty {
  background: var(--c-warning-bright-bg);
  color: var(--c-warning-bright-text);
  border: 1px dashed var(--c-warning-bright-border);
  cursor: pointer;
  transition: background 120ms;
}
.qdnapro-answer-option__conn--empty:hover {
  background: var(--c-chip-yellow-2-bg);
}
.qdnapro-answer-option__conn--linked.qdnapro-answer-option__conn--warning {
  background: var(--c-warning-bright-bg);
  color: var(--c-warning-bright-text);
  border: 1px solid var(--c-warning-bright-border);
  animation: qdnapro-ao-pill-wiggle 3s ease-in-out infinite;
  transform-origin: center;
}
.qdnapro-answer-option__conn--linked.qdnapro-answer-option__conn--warning:hover {
  background: var(--c-chip-yellow-2-bg);
}

@keyframes qdnapro-ao-pill-wiggle {
  0%, 84%, 100% {
    transform: translateX(0) rotate(0);
  }
  87% {
    transform: translateX(-2px) rotate(-3deg);
  }
  90% {
    transform: translateX(2px) rotate(3deg);
  }
  93% {
    transform: translateX(-2px) rotate(-2deg);
  }
  96% {
    transform: translateX(1px) rotate(1deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-answer-option__conn--warning {
    animation: none;
  }
}
.qdnapro-answer-option__actions {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 0 5px 0 0;
  flex-shrink: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms;
}

.qdnapro-answer-option__act {
  width: 26px;
  height: 26px;
  border-radius: 5px;
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  transition: background 120ms, border-color 120ms, color 120ms;
  flex-shrink: 0;
}
.qdnapro-answer-option__act svg {
  width: 15px;
  height: 15px;
}
.qdnapro-answer-option__act--unlink {
  color: var(--c-warning-bright-text);
  background: var(--c-warning-bright-bg);
  border-color: var(--c-warning-bright-border);
}
.qdnapro-answer-option__act--unlink:hover {
  background: var(--c-chip-yellow-2-bg);
  border-color: var(--c-warn-yellow-500);
}
.qdnapro-answer-option__act--delete {
  color: var(--c-tag-critical-text);
  background: var(--c-signal-red-bg);
  border-color: var(--c-chip-red-2-bg);
}
.qdnapro-answer-option__act--delete:hover {
  background: var(--c-chip-red-hover);
  border-color: var(--c-tag-critical-text);
}

.qdnapro-answer-option__confirm {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  padding: 6px 10px;
}

.qdnapro-answer-option__confirm-icon {
  color: var(--c-tag-critical-text);
  font-size: 15px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.qdnapro-answer-option__confirm-icon svg {
  width: 16px;
  height: 16px;
}

.qdnapro-answer-option__confirm-text {
  flex: 1;
  font-size: 12px;
  font-weight: 600;
  color: var(--c-tag-critical-text);
  font-family: inherit;
}

.qdnapro-answer-option--confirming-unlink .qdnapro-answer-option__confirm-icon,
.qdnapro-answer-option--confirming-unlink .qdnapro-answer-option__confirm-text {
  color: var(--c-warning-bright-text);
}

.qdnapro-answer-button {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  box-sizing: border-box;
  min-height: 56px;
  padding: 12px 16px;
  border: 1.5px solid transparent;
  border-radius: var(--r-3, 12px);
  --qab-idle: var(--theme-btn-idle-color, color-mix(in srgb, var(--theme-btn-color, #40499a) 12%, #fff));
  --qab-hover: var(--theme-btn-idle-hover-color, color-mix(in srgb, var(--qab-idle) 92%, #000));
  background: var(--qab-idle);
  color: var(--theme-btn-idle-text-color, var(--theme-btn-color, #40499a));
  font-family: var(--theme-font-family, "Inter", sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.25;
  text-align: left;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease, transform 0.1s ease;
}

.qdnapro-answer-button:hover:not(.is-disabled):not(.is-active) {
  background: var(--qab-hover);
}

.qdnapro-answer-button.is-pressed:not(.is-disabled) {
  background: color-mix(in srgb, var(--qab-hover) 92%, #000);
  transform: scale(0.98);
}

.qdnapro-answer-button[data-force-state=hover]:not(.is-disabled):not(.is-active) {
  background: var(--qab-hover);
}

.qdnapro-answer-button[data-force-state=pressed]:not(.is-disabled):not(.is-active) {
  background: color-mix(in srgb, var(--qab-hover) 92%, #000);
}

.qdnapro-answer-button.is-active {
  background: var(--theme-btn-selected-color, color-mix(in srgb, var(--theme-btn-color, #40499a) 22%, #fff));
  color: var(--theme-btn-selected-text-color, var(--theme-btn-color, #40499a));
  border-color: transparent;
}

.qdnapro-answer-button.is-disabled {
  background: var(--c-grey-50, #f0f1f2);
  color: var(--c-grey-400, #a6aab3);
  cursor: default;
}

.qdnapro-answer-button__tick {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 7px;
  border: 2px solid currentColor;
  color: inherit;
  background: transparent;
  opacity: 0.5;
  transition: background 0.18s ease, border-color 0.18s ease, opacity 0.18s ease, transform 0.2s cubic-bezier(0.34, 1.6, 0.5, 1);
}

.qdnapro-answer-button__tick svg {
  overflow: visible;
}

.qdnapro-answer-button__check {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 24;
  stroke-dashoffset: 24;
  transition: stroke-dashoffset 0.15s ease;
}

.qdnapro-answer-button.is-active .qdnapro-answer-button__tick {
  opacity: 1;
  background: var(--theme-btn-color, #40499a);
  border-color: var(--theme-btn-color, #40499a);
  color: var(--theme-btn-text-color, #fff);
  animation: qab-tick-pop 0.52s cubic-bezier(0.34, 1.56, 0.5, 1);
}

.qdnapro-answer-button.is-active .qdnapro-answer-button__check {
  animation: qab-draw 0.38s cubic-bezier(0.22, 1, 0.36, 1) 0.04s forwards;
}

.qdnapro-answer-button.is-disabled .qdnapro-answer-button__tick {
  border-color: var(--c-grey-300, #c4c7cc);
  opacity: 1;
}

.qdnapro-answer-button__label {
  flex: 1;
  min-width: 0;
  overflow-wrap: anywhere;
}

.qdnapro-answer-button--multiple-choice .qdnapro-answer-button__tick {
  border-radius: 50%;
}

.qdnapro-answer-button__icon {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  overflow: hidden;
}

.qdnapro-answer-button__icon svg,
.qdnapro-answer-button__icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.qdnapro-answer-button.has-icon-mdi .qdnapro-answer-button__icon {
  width: 24px;
  height: 24px;
}

.qdnapro-answer-button.has-icon-mdi .qdnapro-answer-button__icon svg {
  fill: currentColor;
}

@keyframes qab-tick-pop {
  0% {
    transform: scale(0.7) rotate(0deg);
  }
  20% {
    transform: scale(1.22) rotate(-5deg);
  }
  44% {
    transform: scale(0.9) rotate(3deg);
  }
  64% {
    transform: scale(1.08) rotate(-1deg);
  }
  80% {
    transform: scale(0.97) rotate(0deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
  }
}
@keyframes qab-draw {
  0% {
    stroke-dashoffset: 24;
  }
  62% {
    stroke-dashoffset: -1;
  }
  80% {
    stroke-dashoffset: 0.7;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
.qdnapro-answer-button--compact {
  min-height: 48px;
  padding: 10px 14px;
  font-size: 15px;
  gap: 10px;
}

.qdnapro-answer-button--compact .qdnapro-answer-button__tick {
  width: 20px;
  height: 20px;
  border-radius: 6px;
}

.qdnapro-answer-button--compact.qdnapro-answer-button--multiple-choice .qdnapro-answer-button__tick {
  border-radius: 50%;
}

.qdnapro-answer-button--compact .qdnapro-answer-button__tick svg {
  width: 13px;
  height: 13px;
}

.qdnapro-answer-button--compact.has-icon-activity .qdnapro-answer-button__icon {
  width: 26px;
  height: 26px;
}

.qdnapro-answer-button--compact.has-icon-mdi .qdnapro-answer-button__icon {
  width: 20px;
  height: 20px;
}

:where([data-theme=dark], [data-theme-dark=true]) .qdnapro-answer-button {
  background: color-mix(in srgb, var(--theme-btn-color, #40499a) 20%, var(--c-grey-900, #18181c));
  color: color-mix(in srgb, var(--theme-btn-color, #40499a) 70%, #fff);
}

:where([data-theme=dark], [data-theme-dark=true]) .qdnapro-answer-button:hover:not(.is-disabled):not(.is-active) {
  background: color-mix(in srgb, var(--theme-btn-color, #40499a) 30%, var(--c-grey-900, #18181c));
}

:where([data-theme=dark], [data-theme-dark=true]) .qdnapro-answer-button.is-pressed:not(.is-disabled) {
  background: color-mix(in srgb, var(--theme-btn-color, #40499a) 40%, var(--c-grey-900, #18181c));
}

:where([data-theme=dark], [data-theme-dark=true]) .qdnapro-answer-button.is-active {
  background: var(--theme-btn-selected-color, color-mix(in srgb, var(--theme-btn-color, #40499a) 35%, var(--c-grey-900, #18181c)));
  color: var(--theme-btn-selected-text-color, color-mix(in srgb, var(--theme-btn-color, #40499a) 70%, #fff));
}

:where([data-theme=dark], [data-theme-dark=true]) .qdnapro-answer-button.is-disabled {
  background: var(--c-grey-900, #18181c);
  color: var(--c-grey-500, #6b7280);
}

.qdnapro-answer-button--green {
  background: var(--c-signal-green-bg, #c5f5e2);
  color: var(--c-signal-green-text, #428b6e);
}

.qdnapro-answer-button--green:hover:not(.is-disabled):not(.is-active) {
  background: color-mix(in srgb, var(--c-signal-green-bg, #c5f5e2) 85%, #000);
}

.qdnapro-answer-button--green.is-pressed:not(.is-disabled) {
  background: color-mix(in srgb, var(--c-signal-green-bg, #c5f5e2) 75%, #000);
}

.qdnapro-answer-button--green.is-active {
  background: color-mix(in srgb, var(--c-signal-green-bg, #c5f5e2) 80%, #000);
  color: var(--c-signal-green-text, #428b6e);
}

.qdnapro-answer-button--green.is-active .qdnapro-answer-button__tick {
  background: var(--c-success-bright, #1d9e75);
  border-color: var(--c-success-bright, #1d9e75);
}

.qdnapro-answer-button--red {
  background: var(--c-signal-red-bg, #fee3e3);
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-answer-button--red:hover:not(.is-disabled):not(.is-active) {
  background: color-mix(in srgb, var(--c-signal-red-bg, #fee3e3) 85%, #000);
}

.qdnapro-answer-button--red.is-pressed:not(.is-disabled) {
  background: color-mix(in srgb, var(--c-signal-red-bg, #fee3e3) 75%, #000);
}

.qdnapro-answer-button--red.is-active {
  background: color-mix(in srgb, var(--c-signal-red-bg, #fee3e3) 80%, #000);
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-answer-button--red.is-active .qdnapro-answer-button__tick {
  background: var(--c-warn-red-500, #dc2626);
  border-color: var(--c-warn-red-500, #dc2626);
}

.qdnapro-answer-button--positive {
  background: var(--c-signal-green-bg, #c5f5e2);
  color: var(--c-signal-green-text, #428b6e);
}

.qdnapro-answer-button--positive:hover:not(.is-disabled):not(.is-active) {
  background: color-mix(in srgb, var(--c-signal-green-bg, #c5f5e2) 85%, #000);
}

.qdnapro-answer-button--positive.is-pressed:not(.is-disabled) {
  background: color-mix(in srgb, var(--c-signal-green-bg, #c5f5e2) 75%, #000);
}

.qdnapro-answer-button--positive.is-active {
  background: color-mix(in srgb, var(--c-signal-green-bg, #c5f5e2) 80%, #000);
  color: var(--c-signal-green-text, #428b6e);
}

.qdnapro-answer-button--positive.is-active .qdnapro-answer-button__tick {
  background: var(--c-success-bright, #1d9e75);
  border-color: var(--c-success-bright, #1d9e75);
}

.qdnapro-answer-button--warning {
  background: var(--c-signal-yellow-bg, #feedb8);
  color: var(--c-signal-yellow-text, #bf7202);
}

.qdnapro-answer-button--warning:hover:not(.is-disabled):not(.is-active) {
  background: color-mix(in srgb, var(--c-signal-yellow-bg, #feedb8) 85%, #000);
}

.qdnapro-answer-button--warning.is-pressed:not(.is-disabled) {
  background: color-mix(in srgb, var(--c-signal-yellow-bg, #feedb8) 75%, #000);
}

.qdnapro-answer-button--warning.is-active {
  background: color-mix(in srgb, var(--c-signal-yellow-bg, #feedb8) 80%, #000);
  color: var(--c-signal-yellow-text, #bf7202);
}

.qdnapro-answer-button--warning.is-active .qdnapro-answer-button__tick {
  background: var(--c-warn-amber-500, #d97706);
  border-color: var(--c-warn-amber-500, #d97706);
}

.qdnapro-answer-button--negative {
  background: var(--c-signal-red-bg, #fee3e3);
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-answer-button--negative:hover:not(.is-disabled):not(.is-active) {
  background: color-mix(in srgb, var(--c-signal-red-bg, #fee3e3) 85%, #000);
}

.qdnapro-answer-button--negative.is-pressed:not(.is-disabled) {
  background: color-mix(in srgb, var(--c-signal-red-bg, #fee3e3) 75%, #000);
}

.qdnapro-answer-button--negative.is-active {
  background: color-mix(in srgb, var(--c-signal-red-bg, #fee3e3) 80%, #000);
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-answer-button--negative.is-active .qdnapro-answer-button__tick {
  background: var(--c-warn-red-500, #dc2626);
  border-color: var(--c-warn-red-500, #dc2626);
}

.qdnapro-answer-button--neutral_alt {
  background: var(--c-signal-blue-bg, #e6eff9);
  color: var(--c-signal-blue-text, #6a8ab4);
}

.qdnapro-answer-button--neutral_alt:hover:not(.is-disabled):not(.is-active) {
  background: color-mix(in srgb, var(--c-signal-blue-bg, #e6eff9) 85%, #000);
}

.qdnapro-answer-button--neutral_alt.is-pressed:not(.is-disabled) {
  background: color-mix(in srgb, var(--c-signal-blue-bg, #e6eff9) 75%, #000);
}

.qdnapro-answer-button--neutral_alt.is-active {
  background: color-mix(in srgb, var(--c-signal-blue-bg, #e6eff9) 80%, #000);
  color: var(--c-signal-blue-text, #6a8ab4);
}

.qdnapro-answer-button--neutral_alt.is-active .qdnapro-answer-button__tick {
  background: var(--c-signal-blue-text, #6a8ab4);
  border-color: var(--c-signal-blue-text, #6a8ab4);
}

.qdnapro-avatar {
  --av-bg: var(--c-signal-green-bg);
  --av-border: var(--c-signal-green-text);
  --av-size: 48px;
  --av-padding: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: var(--av-size);
  height: var(--av-size);
  flex-shrink: 0;
  padding: var(--av-padding);
  border: 0.5px solid var(--av-border);
  border-radius: 50%;
  background: var(--av-bg);
  overflow: hidden;
  user-select: none;
  transition: opacity 140ms ease-out;
}

.qdnapro-avatar .avatar-animal {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  pointer-events: none;
}

.qdnapro-avatar.avatar-size-72 {
  --av-size: 72px;
  --av-padding: 12px;
}

.qdnapro-avatar.avatar-size-48 {
  --av-size: 48px;
  --av-padding: 8px;
}

.qdnapro-avatar.avatar-size-34 {
  --av-size: 34px;
  --av-padding: 6px;
}

.qdnapro-avatar.avatar-size-28 {
  --av-size: 28px;
  --av-padding: 5px;
}

.qdnapro-avatar.avatar-size-20 {
  --av-size: 20px;
  --av-padding: 4px;
}

.qdnapro-avatar.avatar-color-green {
  --av-bg: var(--c-signal-green-bg);
  --av-border: var(--c-signal-green-text);
  --av-icon: var(--c-signal-green-text);
}

.qdnapro-avatar.avatar-color-yellow {
  --av-bg: var(--c-signal-yellow-bg);
  --av-border: var(--c-signal-yellow-text);
  --av-icon: var(--c-warn-yellow-600);
}

.qdnapro-avatar.avatar-color-blue {
  --av-bg: var(--c-signal-blue-bg);
  --av-border: var(--c-signal-blue-text);
  --av-icon: var(--c-purple-400);
}

.qdnapro-avatar.avatar-color-red {
  --av-bg: var(--c-signal-red-bg);
  --av-border: var(--c-signal-red-text);
  --av-icon: var(--c-signal-red-text);
}

.qdnapro-avatar.avatar-color-neutral {
  --av-bg: var(--c-grey-100, #e7e9ec);
  --av-border: var(--c-grey-500, #6b7280);
  --av-icon: var(--c-grey-600, #565b66);
}

.qdnapro-avatar.avatar-color-purple {
  --av-bg: var(--c-purple-50, #e6e9ff);
  --av-border: var(--c-purple-200, #a5acff);
  --av-icon: var(--c-purple-500, #40499a);
}

.qdnapro-avatar.avatar-mode-photo {
  border: none;
  padding: 0;
  background: var(--c-grey-50);
}

.qdnapro-avatar .avatar-photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}

.qdnapro-avatar .avatar-initials {
  font-family: "Inter", sans-serif;
  font-weight: 600;
  color: var(--c-grey-500);
  text-align: center;
  line-height: 1;
  user-select: none;
  white-space: nowrap;
  transform: translateY(0.05em);
}

.qdnapro-avatar.avatar-mode-initials.avatar-size-72 .avatar-initials {
  font-size: 28px;
}

.qdnapro-avatar.avatar-mode-initials.avatar-size-48 .avatar-initials {
  font-size: 18px;
}

.qdnapro-avatar.avatar-mode-initials.avatar-size-34 .avatar-initials {
  font-size: 13px;
}

.qdnapro-avatar.avatar-mode-initials.avatar-size-28 .avatar-initials {
  font-size: 11px;
}

.qdnapro-avatar.avatar-mode-initials.avatar-size-20 .avatar-initials {
  font-size: 9px;
}

.qdnapro-avatar.avatar-mode-icon {
  color: var(--av-icon);
}

.qdnapro-avatar .avatar-icon {
  display: inline-flex;
  color: inherit;
  pointer-events: none;
}

.qdnapro-avatar .avatar-icon svg {
  fill: currentColor;
  width: 100%;
  height: 100%;
}

.qdnapro-avatar.avatar-mode-icon.avatar-size-72 .avatar-icon {
  width: 36px;
  height: 36px;
}

.qdnapro-avatar.avatar-mode-icon.avatar-size-48 .avatar-icon {
  width: 24px;
  height: 24px;
}

.qdnapro-avatar.avatar-mode-icon.avatar-size-34 .avatar-icon {
  width: 18px;
  height: 18px;
}

.qdnapro-avatar.avatar-mode-icon.avatar-size-28 .avatar-icon {
  width: 15px;
  height: 15px;
}

.qdnapro-avatar.avatar-mode-icon.avatar-size-20 .avatar-icon {
  width: 12px;
  height: 12px;
}

.qdnapro-avatar.avatar-mode-mark {
  color: var(--av-icon);
}

.qdnapro-avatar .avatar-mark {
  display: inline-flex;
  color: inherit;
  pointer-events: none;
}

.qdnapro-avatar .avatar-mark svg {
  display: block;
  fill: currentColor;
  width: 100%;
  height: 100%;
}

.qdnapro-avatar.avatar-mode-mark.avatar-size-72 .avatar-mark {
  width: 42px;
  height: 42px;
}

.qdnapro-avatar.avatar-mode-mark.avatar-size-48 .avatar-mark {
  width: 28px;
  height: 28px;
}

.qdnapro-avatar.avatar-mode-mark.avatar-size-34 .avatar-mark {
  width: 20px;
  height: 20px;
}

.qdnapro-avatar.avatar-mode-mark.avatar-size-28 .avatar-mark {
  width: 16px;
  height: 16px;
}

.qdnapro-avatar.avatar-mode-mark.avatar-size-20 .avatar-mark {
  width: 12px;
  height: 12px;
}

.qdnapro-avatar.avatar-disabled {
  opacity: 0.5;
}

.qdnapro-avatar.avatar-missing::after {
  content: "?";
  position: absolute;
  font-family: "Inter", sans-serif;
  font-size: 0.5em;
  color: var(--av-border);
}

.qdnapro-avatar-stack {
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
}

.qdnapro-avatar-stack [data-role=stack-item] {
  flex-shrink: 0;
  position: relative;
}

.qdnapro-avatar-stack [data-stack-hidden] {
  display: none;
}

.qdnapro-avatar-stack [data-role=overflow] {
  margin-left: 4px;
  flex-shrink: 0;
}

.qdnapro-avatar-stack[data-size="20"] [data-role=stack-item] {
  margin-right: -6px;
}

.qdnapro-avatar-stack[data-size="34"] [data-role=stack-item] {
  margin-right: -10px;
}

.qdnapro-avatar-stack[data-size="48"] [data-role=stack-item] {
  margin-right: -14px;
}

.qdnapro-avatar-stack[data-size="72"] [data-role=stack-item] {
  margin-right: -22px;
}

.qdnapro-avatar-stack [data-role=stack-item][data-stack-last] {
  margin-right: 0;
}

/* variant="button": the whole stack acts like a subtle-purple button
   (hover / active / focus), for use on a light-purple surface. [Kim 2026-06-17] */
.qdnapro-avatar-stack[variant=button] {
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 8px;
  background: transparent;
  transition: background-color 120ms ease, box-shadow 120ms ease;
}

.qdnapro-avatar-stack[variant=button]:hover {
  background: var(--c-border-tree-bright);
}

.qdnapro-avatar-stack[variant=button]:active {
  background: var(--c-sidebar-icon);
}

.qdnapro-avatar-stack[variant=button]:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(64, 73, 154, 0.45);
}

.qdnapro-background-picker {
  display: block;
}

.qdnapro-background-picker *,
.qdnapro-background-picker *::before,
.qdnapro-background-picker *::after {
  box-sizing: border-box;
}

.qbp-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.qbp-tile {
  position: relative;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 10px;
  border: 1px solid var(--c-border-card, #e1e3e6);
  background: var(--qbp-swatch, var(--c-grey-50, #f2f3f5));
  color: var(--c-text-muted, #6e7280);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  cursor: pointer;
  transition: transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease;
}

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

.qbp-tile:active {
  transform: translateY(0) scale(0.96);
}

.qbp-tile:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px var(--focus-glow);
}

.qbp-tile.qbp-tile-selected {
  border-color: var(--focus-ring);
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px var(--focus-glow);
}

.qbp-tile-none,
.qbp-tile-upload:not(.qbp-tile-has-image),
.qbp-tile-grid,
.qbp-tile-pattern-none {
  background: var(--c-grey-50, #f2f3f5);
}

.qbp-tile-color {
  background: var(--qbp-swatch);
}

.qbp-tile-pattern {
  background: var(--qbp-swatch);
}

.qbp-tile-pattern-layer,
.qbp-tile-pattern-layer::after {
  position: absolute;
  inset: 0;
  background-color: var(--qbp-pattern-tint);
  mask-image: var(--qbp-pattern-url);
  mask-size: var(--qbp-pattern-mask-size, 40px) var(--qbp-pattern-mask-size, 40px);
  mask-position: var(--qbp-pattern-mask-pos-x, 0) var(--qbp-pattern-mask-pos-y, 0);
  mask-repeat: repeat;
  -webkit-mask-image: var(--qbp-pattern-url);
  -webkit-mask-size: var(--qbp-pattern-mask-size, 40px) var(--qbp-pattern-mask-size, 40px);
  -webkit-mask-position: var(--qbp-pattern-mask-pos-x, 0) var(--qbp-pattern-mask-pos-y, 0);
  -webkit-mask-repeat: repeat;
}

.qbp-tile-pattern-layer::after {
  content: "";
}

.qbp-tile-scene {
  background-image: var(--qbp-scene-url);
  background-size: cover;
  background-position: center;
}

.qbp-tile-wheel {
  background: var(--c-grey-50, #f2f3f5);
}

.qbp-tile-wheel-face {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1px solid var(--c-border-soft, rgba(0, 0, 0, 0.07));
  background: conic-gradient(from 0deg, var(--c-warn-red-500, #dc2626), var(--c-warn-orange-500, #ea580c), var(--c-warn-yellow-500, #fbbf24), var(--c-success-500, #12805e), var(--c-action-500, #4652f3), var(--c-purple-500, #40499a), var(--c-warn-red-500, #dc2626));
}

.qbp-tile-text-color {
  flex-direction: column;
  gap: 2px;
  background: var(--c-grey-50, #f2f3f5);
}

.qbp-tile-text-bar {
  width: 20px;
  height: 4px;
  border-radius: 2px;
  background: var(--qbp-text-swatch, var(--c-grey-300, #c4c7cc));
}

.qbp-tile-text-color-set .qbp-tile-text-bar {
  box-shadow: 0 0 0 1px var(--c-border-soft, rgba(0, 0, 0, 0.07));
}

.qbp-tile-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.qbp-tile-check {
  position: absolute;
  right: -2px;
  bottom: -2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--c-bg-card, #ffffff);
  border: 1px solid var(--c-border-card, #e1e3e6);
  opacity: 0;
  transform: scale(0.6);
  transition: opacity 120ms ease, transform 120ms ease;
}

.qbp-tile-selected .qbp-tile-check {
  opacity: 1;
  transform: scale(1);
}

.qbp-tile-check::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 5px;
  width: 6px;
  height: 4px;
  border-left: 2px solid var(--focus-ring);
  border-bottom: 2px solid var(--focus-ring);
  transform: rotate(-45deg);
}

.qbp-grid-panel {
  width: 292px;
  max-height: 360px;
  overflow-y: auto;
  padding: 16px;
  background: var(--c-bg-card, #ffffff);
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: 14px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16);
}

.qbp-grid-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.qbp-grid-section {
  margin-top: 16px;
}

.qbp-grid-heading {
  margin-bottom: 8px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--c-text-muted, #6e7280);
}

.qbp-color-panel-card {
  width: 248px;
  max-height: none;
  overflow: visible;
}

.qbp-grid-pattern-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.qdnapro-battle-bar {
  display: block;
  box-sizing: border-box;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-battle-bar.is-interactive {
  cursor: pointer;
  border-radius: var(--r-2, 8px);
}

.qdnapro-battle-bar.is-interactive:focus {
  outline: none;
}

.qdnapro-battle-bar.is-interactive:focus-visible,
.qdnapro-battle-bar.is-interactive.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px var(--focus-glow);
}

.qdnapro-battle-bar--tug {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.bb-tug-names {
  display: flex;
  justify-content: space-between;
  font: 600 12px/1.2 var(--theme-font-family, "Inter", sans-serif);
}

.bb-tug-name {
  max-width: 48%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bb-tug-name--b {
  text-align: right;
}

.bb-tug-bar {
  display: flex;
  height: 12px;
  border-radius: 6px;
  overflow: hidden;
}

.bb-tug-fill {
  display: block;
  height: 100%;
  transition: width 200ms ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .bb-tug-fill {
    transition: none;
  }
}
.bb-tug-sub {
  display: flex;
  justify-content: space-between;
  gap: var(--s-2, 8px);
  font: 400 11px/1.3 var(--theme-font-family, "Inter", sans-serif);
  color: var(--c-text-muted);
}

.bb-tug-sub span:first-child {
  text-align: left;
}

.bb-tug-sub span:last-child {
  text-align: right;
}

.bb-tug-sub span:nth-child(2) {
  text-align: center;
  flex: 1 1 auto;
}

.qdnapro-battle-bar--rank {
  display: flex;
  align-items: center;
  gap: var(--s-3, 10px);
}

.bb-rank-bars {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: 26px;
  flex: 0 0 auto;
}

.bb-rank-mini {
  display: block;
  width: 8px;
  border-radius: 2px;
}

.bb-rank-gap {
  display: block;
  font: 700 12px/1 var(--theme-font-family, "Inter", sans-serif);
  color: var(--c-text-muted);
  padding-bottom: 2px;
}

.bb-rank-info {
  flex: 1 1 auto;
  min-width: 0;
}

.bb-rank-line1 {
  font: 600 13px/1.3 var(--theme-font-family, "Inter", sans-serif);
  color: var(--c-text-heading);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bb-rank-value {
  font-weight: 700;
}

.bb-rank-line2 {
  margin-top: 2px;
  font: 400 11px/1.3 var(--theme-font-family, "Inter", sans-serif);
  color: var(--c-text-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bb-rank-chevron {
  flex: 0 0 auto;
  font-size: 18px;
  line-height: 1;
  color: var(--c-text-muted);
}

.qdnapro-battle-bar--chip {
  display: inline-flex;
  align-items: center;
  background: color-mix(in srgb, var(--bb-chip-accent, var(--c-brand-purple)) 14%, var(--c-chip-purple-bg));
  border-radius: var(--r-pill, 999px);
  padding: 3px 10px;
}

.bb-chip-label {
  font: 600 12px/1.2 var(--theme-font-family, "Inter", sans-serif);
  color: var(--bb-chip-text, var(--c-chip-purple-text));
  white-space: nowrap;
}

.qdnapro-battle-bar--hero {
  display: flex;
  flex-direction: column;
}

.bb-hero-chips {
  display: flex;
  justify-content: space-between;
  gap: var(--s-2, 8px);
}

.bb-hero-chip {
  display: inline-flex;
  align-items: center;
  max-width: 48%;
  padding: 6px 13px;
  border-radius: var(--r-pill, 999px);
  font: 700 13px/1.2 var(--theme-font-family, "Inter", sans-serif);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bb-hero-bar {
  display: flex;
  margin-top: 12px;
  height: 52px;
  border-radius: var(--r-pill, 999px);
  overflow: hidden;
}

.bb-hero-fill {
  display: flex;
  align-items: center;
  height: 100%;
  box-sizing: border-box;
  color: var(--c-text-on-action);
  font: 800 21px/1 var(--theme-font-family, "Inter", sans-serif);
  font-variant-numeric: tabular-nums;
  min-width: 76px;
  transition: width 200ms ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .bb-hero-fill {
    transition: none;
  }
}
.bb-hero-fill--a {
  justify-content: flex-start;
  padding-left: 18px;
}

.bb-hero-fill--b {
  justify-content: flex-end;
  padding-right: 18px;
}

/* De sheet wordt bij openen naar <body> geportald (zie _show). Container is
   position:fixed (NIET transform — dat zou de fixed kinderen vangen) zodat z-index
   geldt en hij een stacking-context op 1000 maakt; de fixed scrim/paneel blijven
   viewport-relatief. */
.qdnapro-bottom-sheet {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-bottom-sheet.is-visible {
  display: block;
}

/* ÉÉN scrim-object dekt het HELE scherm — inclusief de iOS safe-areas (boven +
   onder), want position:fixed + inset:0 is viewport-relatief met viewport-fit=
   cover. Het paneel ligt erbovenop (later in de DOM) en wordt dus niet gedimd.
   Eén object = één uniforme dim, geen safe-area-trucs, geen timing-race. [Jan 30.06.2026] */
.qdnapro-bottom-sheet .bs-scrim {
  position: fixed;
  inset: 0;
  background: var(--c-black-45);
  /* INSTANT dim — geen opacity-transitie. De scrim is er zodra de sheet zichtbaar
     is (display:block via .is-visible) en verdwijnt ineens bij sluiten. Bewust geen
     animatie: een geanimeerde opacity op een safe-area-kruisend fixed element wordt
     door iOS WKWebView in de safe-area met andere timing gecomposit (lag). Het
     paneel slidet wel. [Jan 30.06.2026] */
}

.qdnapro-bottom-sheet .bs-panel {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1; /* boven de scrim (zelfde stacking-context) */
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  max-height: 86%;
  background: var(--c-bg-card);
  border-radius: 32px 32px 0 0;
  /* Inline padding as a custom property so anything that has to CANCEL it (the
     full-bleed .bs-dialog-image) stays in step with variants that change it — the
     reading variant raises it to 16px. A hardcoded negative margin would silently
     be wrong on those variants. [Kim 31.07.2026] */
  --bs-pad-x: 8px;
  padding: 4px var(--bs-pad-x) 0;
  box-shadow: 0 -10px 34px rgba(0, 0, 0, 0.16);
  transform: translateY(100%);
  /* Same timing as the scrim (no delay) — they start together so the panel sliding
     up and the screen darkening read as one motion. will-change keeps the slide on
     its own GPU layer (smooth on iOS, no jank). */
  transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
  outline: none;
}

.qdnapro-bottom-sheet.is-open .bs-panel {
  transform: translateY(0);
}

.qdnapro-bottom-sheet .bs-handle-zone {
  padding: 10px 0 24px;
  margin: 0 -16px; /* full-width grab target */
  cursor: grab;
  touch-action: none; /* let the pointer-drag own the gesture */
  flex-shrink: 0;
}

.qdnapro-bottom-sheet .bs-grab {
  width: 38px;
  height: 5px;
  border-radius: var(--r-pill);
  background: var(--c-grey-300);
  margin: 0 auto;
}

.qdnapro-bottom-sheet .bs-header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 4px 0 12px;
  flex-shrink: 0;
}

.qdnapro-bottom-sheet .bs-header-text {
  flex: 1;
  min-width: 0;
}

.qdnapro-bottom-sheet .bs-title {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  color: var(--c-text-heading);
}

.qdnapro-bottom-sheet .bs-subtitle {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  text-align: center;
  color: var(--c-text-muted);
  margin-top: 2px;
}

.qdnapro-bottom-sheet .bs-header:has(.bs-close) .bs-header-text {
  padding-left: 42px;
}

.qdnapro-bottom-sheet .bs-close {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  border: none;
  border-radius: var(--r-pill);
  background: var(--c-black-06);
  color: var(--c-text-muted);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.qdnapro-bottom-sheet .bs-close:active {
  background: var(--c-black-12);
}

.qdnapro-bottom-sheet .bs-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  display: flex;
  flex-direction: column;
  gap: 8px;
  /* REVERTED 13.07.2026 (Kim): the global padding-bottom 0 made the button
     sheets (edit-exit confirm) sit cramped against the bottom edge, so the
     base keeps its breathing room + iOS safe-area again. ONLY the reading
     variant (further down) keeps the deliberate overflow feel at 0.
     24px fixed breathing room + safe-area for the home indicator. [Kim 15.07.2026] */
  padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  /* A bottom sheet must NEVER show a visible scrollbar — content still scrolls.
     Flat scrollbar-hide (the qdna-scrollbar-hidden mixin can't be used here: this
     partial is copied verbatim to the PWA). */
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* old Edge/IE */
}

.qdnapro-bottom-sheet .bs-body::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none; /* Chrome / Safari */
}

/* Segment controls inside the body should size to content and center — not stretch full-width. */
.qdnapro-bottom-sheet .bs-body > qdnapro-segment {
  align-self: center;
}

/* Auto-card: buttons placed directly in the sheet body (not inside a group) always get
   a card frame — first button gets top corners, last gets bottom corners. This enforces
   the design rule that buttons are NEVER shown naked on the sheet surface. */
.qdnapro-bottom-sheet .bs-body > qdnapro-bottom-sheet-button {
  background: var(--c-grey-50);
}

.qdnapro-bottom-sheet.bs-variant-purple .bs-body > qdnapro-bottom-sheet-button {
  background: var(--c-white-14);
}

.qdnapro-bottom-sheet .bs-body > qdnapro-bottom-sheet-button:first-of-type {
  border-radius: 24px 24px 0 0;
}

.qdnapro-bottom-sheet .bs-body > qdnapro-bottom-sheet-button:last-of-type {
  border-radius: 0 0 24px 24px;
}

.qdnapro-bottom-sheet .bs-body > qdnapro-bottom-sheet-button:only-of-type {
  border-radius: 24px;
}

/* Purple variant — for action menus (the PWA's purple bottom sheets). Uses the fixed
   primitive --c-purple-500 (NOT --c-brand-purple, which lifts to light purple in dark
   mode — the sheet must stay purple). */
.qdnapro-bottom-sheet.bs-variant-purple .bs-panel {
  background: var(--c-purple-500);
}

.qdnapro-bottom-sheet.bs-variant-purple .bs-grab {
  background: var(--c-white-45);
}

.qdnapro-bottom-sheet.bs-variant-purple .bs-title {
  color: var(--c-text-on-action);
}

.qdnapro-bottom-sheet.bs-variant-purple .bs-subtitle {
  color: var(--c-white-45);
}

.qdnapro-bottom-sheet.bs-variant-purple .bs-close {
  background: var(--c-white-14);
  color: var(--c-text-on-action);
}

/* Glass variant — a dark, translucent, blurred panel (iOS/WhatsApp emoji-picker
   look). The scrim stays the normal dim; the panel itself is the frosted layer.
   Content on top is white. Consumers that want a glass surface (e.g.
   qdnapro-emoji-sheet) opt in with variant="glass". */
.qdnapro-bottom-sheet.bs-variant-glass .bs-panel {
  background: rgba(38, 38, 44, 0.72);
  backdrop-filter: blur(30px) saturate(160%);
  -webkit-backdrop-filter: blur(30px) saturate(160%);
  color: var(--c-text-on-action);
  box-shadow: 0 -10px 34px rgba(0, 0, 0, 0.28);
}

.qdnapro-bottom-sheet.bs-variant-glass .bs-grab {
  background: var(--c-white-45);
}

.qdnapro-bottom-sheet.bs-variant-glass .bs-title {
  color: #fff;
}

.qdnapro-bottom-sheet.bs-variant-glass .bs-subtitle {
  color: var(--c-white-45);
}

/* Solid fallback where backdrop-filter is unsupported (old WebViews). */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .qdnapro-bottom-sheet.bs-variant-glass .bs-panel {
    background: var(--c-grey-800);
  }
}
/* Reading variant — for text-heavy content (news items, briefings, questionnaire
   previews). Orthogonal to purple/glass: only the panel breathing-room + loose-text
   size change, the surface colours stay the base white card. [Kim 13.07.2026]
   Roomier horizontal panel padding (16px vs the base 8px, which is tuned for
   button-row sheets and stays unchanged). */
.qdnapro-bottom-sheet.bs-variant-reading .bs-panel {
  --bs-pad-x: 16px;
  padding: 4px var(--bs-pad-x) 0;
}

/* Body stays edge-to-edge inside that roomier panel (no horizontal padding) and
   runs to the bottom edge (matches the global base, kept explicit for clarity). */
.qdnapro-bottom-sheet.bs-variant-reading .bs-body {
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 0;
}

/* 16px is the loose-text reading size, applied ONLY to text that opts in with the
   .bs-text wrapper — deliberately NOT to every .bs-body child. WYSIWYG briefing HTML
   brings its own sizes from the editor and must never be forced to 16px, so it is
   left untouched (it carries no .bs-text). [Kim 13.07.2026] */
.qdnapro-bottom-sheet.bs-variant-reading .bs-body .bs-text {
  font-size: 16px;
  line-height: 1.5;
}

/* ── Slider (`slider`) ─────────────────────────────────────────────────────────────
   The body becomes a horizontal pager: `slot="page"` children move into a track and a
   dots strip lands under them. The looks + behaviour are SHARED with qdnapro-popover
   (.qdna-pager-* in _design-tokens.scss + window.QdnaPager), because the app swaps
   between those two shells per platform — phone gets the sheet, >=1024px the popover —
   and a pager that only worked in one of them would be copied into the other within a
   day. Only the two rules below are sheet-specific. [Kim 04.09.2026] */
/* The reading variant deliberately runs its body to the bottom edge (padding-bottom:0),
   so a dots strip would sit on the panel edge / under the iOS home indicator. Give the
   breathing room back HERE rather than in every consumer that combines the two. */
.qdnapro-bottom-sheet.bs-variant-reading .qdna-pager-dots {
  padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px));
}

/* Dialog variant — ALWAYS purple: a purple illustrated dialog (illustration + bold
   white title + white body text + optional consumer body content + a flexible footer).
   Serves both the destructive confirm (reset-units) AND a blocking notice (finish
   audit with mandatory units still open). `variant="confirm"` is an alias → same
   .bs-variant-dialog class. Composed from qdnapro-illustration + qdnapro-button using
   its own on-purple / on-purple-solid TYPES (see _button.scss) — layout only, no
   bespoke colour overrides. [Kim 15.07.2026] */
.qdnapro-bottom-sheet.bs-variant-dialog .bs-panel {
  background: var(--c-purple-500);
}

.qdnapro-bottom-sheet.bs-variant-dialog .bs-grab {
  background: var(--c-white-45);
}

.qdnapro-bottom-sheet .bs-body.bs-dialog {
  align-items: center;
  text-align: center;
  gap: 0;
  padding-top: 8px;
}

/* Gap illustration → title. Target the TAG, not .bs-dialog-illustration:
   qdnapro-illustration wipes its own className on render (this.className = …), so a
   class hook is dead by the time it paints and the gap collapsed to 0 ("cramped").
   [Kim 15.07.2026] */
.qdnapro-bottom-sheet .bs-body.bs-dialog > qdnapro-illustration {
  display: block;
  margin: 0 auto 20px;
}

/* Full-bleed hero image (`image` attr), the alternative to the centered illustration.
   It MUST reach the panel edges: the celebration illustrations have their own purple
   background baked in, matching the dialog surface, so the artwork flows into the panel
   and the edge of its shape is invisible. Any padding turns that edge into a seam.
   The inline margins cancel the panel's own --bs-pad-x (never a hardcoded number:
   the reading variant raises that padding to 16px, and a fixed -8px would then leave
   the image 8px short on each side). The negative top margin eats most of the
   handle-zone's 24px breathing room so the image sits just under the grab handle.
   The panel's 32px top rounding is not clipped away: the artwork's own corners are
   transparent, so nothing pokes out. An opaque image WOULD need clipping here.
   [Kim 31.07.2026] */
.qdnapro-bottom-sheet .bs-body.bs-dialog > .bs-dialog-image {
  display: block;
  align-self: stretch;
  width: calc(100% + 2 * var(--bs-pad-x));
  margin: -24px calc(-1 * var(--bs-pad-x)) 4px;
}

/* `centered` — wide-screen modifier: phone keeps the bottom sheet, tablet gets a
   centered dialog, from the same element. Below 768px this block does not exist, so a
   phone is untouched. 768px is the breakpoint the PWA documents module already uses for
   its tablet layout, not a new number. [Kim 31.07.2026]

   Centering is done with auto inline margins and a `bottom` offset, deliberately NOT
   with transform: the swipe-to-dismiss handler writes `panel.style.transform =
   translateY(...)` during a drag and clears it on release, so anything parked in
   transform would be wiped mid-gesture. This way the open/close slide and the drag keep
   working exactly as they do on a phone — dragging the dialog down still closes it. */
@media (min-width: 768px) {
  .qdnapro-bottom-sheet.bs-centered .bs-panel {
    max-width: 420px;
    margin-inline: auto;
    bottom: 7vh;
    border-radius: 32px;
    /* Shadow points outward on all sides now that it floats, instead of the
       upward-only shadow of a panel glued to the bottom edge. */
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.24);
    max-height: 80%;
  }
}
.qdnapro-bottom-sheet .bs-dialog-title {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--c-text-on-action);
}

.qdnapro-bottom-sheet .bs-dialog-text {
  font-size: 15px;
  line-height: 1.6;
  color: var(--c-white-70);
  margin-top: 12px;
  max-width: 320px;
}

/* TONED DIALOGS (tone="danger" / tone="success") — the same dialog in a different
   meaning. A tone is a MEANING, not a colour picker: "this costs you something you cannot
   get back", or "this went well". Anything else stays the purple dialog.

   Everything below this comment except the two colour blocks is SHARED by both tones, so
   they cannot drift apart: full-white text, a 28px title, stacked buttons.

   COLOURS (03.09.2026): Kim's exact set for the Pulse verdict sheets, as design tokens
   --c-dialog-<tone>-surface / -card / -button / -grab, shared with the popover dialog and
   the on-<tone>-solid button types so every toned dialog is one family. A third tone,
   "warning" (orange), was added for the half-right verdict. Text stays FULL white. Kim
   measured and accepted the contrast as-is (green surface 2.4:1 under the 28px title,
   green card 4.1:1 under body text); do not "improve" these without her. The grab handle
   is now a solid colour from the set, no longer a 45% shade. [Kim 18.08.2026 / 03.09.2026] */
.qdnapro-bottom-sheet.bs-variant-dialog.bs-tone-danger .bs-panel {
  background: var(--c-dialog-danger-surface);
}

.qdnapro-bottom-sheet.bs-variant-dialog.bs-tone-danger .bs-grab {
  background: var(--c-dialog-danger-grab);
}

.qdnapro-bottom-sheet.bs-variant-dialog.bs-tone-success .bs-panel {
  background: var(--c-dialog-success-surface);
}

.qdnapro-bottom-sheet.bs-variant-dialog.bs-tone-success .bs-grab {
  background: var(--c-dialog-success-grab);
}

.qdnapro-bottom-sheet.bs-variant-dialog.bs-tone-warning .bs-panel {
  background: var(--c-dialog-warning-surface);
}

.qdnapro-bottom-sheet.bs-variant-dialog.bs-tone-warning .bs-grab {
  background: var(--c-dialog-warning-grab);
}

.qdnapro-bottom-sheet.bs-tone-danger .bs-dialog-title,
.qdnapro-bottom-sheet.bs-tone-danger .bs-dialog-text,
.qdnapro-bottom-sheet.bs-tone-success .bs-dialog-title,
.qdnapro-bottom-sheet.bs-tone-success .bs-dialog-text,
.qdnapro-bottom-sheet.bs-tone-warning .bs-dialog-title,
.qdnapro-bottom-sheet.bs-tone-warning .bs-dialog-text {
  color: var(--c-text-on-action);
}

/* Bigger than the purple dialog's 22px: a toned dialog has no illustration competing for
   attention, so the title carries the weight. 28px until 03.09.2026; Kim's verdict-sheet
   design has it at 24px next to a 40px icon, and she asked for exactly that. */
.qdnapro-bottom-sheet.bs-tone-danger .bs-dialog-title,
.qdnapro-bottom-sheet.bs-tone-success .bs-dialog-title,
.qdnapro-bottom-sheet.bs-tone-warning .bs-dialog-title {
  font-size: 24px;
}

/* Buttons STACKED, cancel on top, confirm full width below. Side by side gives the two
   answers equal visual weight; stacked puts the consequence under your thumb and makes it
   a deliberate press. The purple dialog keeps its row. Cancel comes first in the DOM, so
   plain `column` already puts it on top. */
.qdnapro-bottom-sheet.bs-tone-danger .bs-dialog-footer,
.qdnapro-bottom-sheet.bs-tone-success .bs-dialog-footer,
.qdnapro-bottom-sheet.bs-tone-warning .bs-dialog-footer {
  flex-direction: column;
  gap: 4px;
}

/* Badge — the alternative to the illustration, for a dialog that has to read as a signal
   rather than a scene. Free-standing by default and large; `badge-circle` puts it in a
   filled disc instead. The circle keeps its own sizing so the art always lands at 55%. */
.qdnapro-bottom-sheet .bs-body.bs-dialog > .bs-dialog-badge {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 4px auto 16px;
}

.qdnapro-bottom-sheet .bs-body.bs-dialog > .bs-dialog-badge-circle {
  --bs-badge-size: 96px;
  width: var(--bs-badge-size);
  height: var(--bs-badge-size);
  margin-bottom: 20px;
  border-radius: 50%;
  background: var(--c-purple-400);
}

/* Same selector SHAPE as the default above, not a shorter one: the default is four
   classes deep and a plain `.bs-tone-danger .bs-dialog-badge-circle` loses the
   specificity race, which left the badge purple on a red sheet the first time. */
.qdnapro-bottom-sheet.bs-tone-danger .bs-body.bs-dialog > .bs-dialog-badge-circle {
  background: var(--c-dialog-danger-card);
}

.qdnapro-bottom-sheet.bs-tone-success .bs-body.bs-dialog > .bs-dialog-badge-circle {
  background: var(--c-dialog-success-card);
}

.qdnapro-bottom-sheet.bs-tone-warning .bs-body.bs-dialog > .bs-dialog-badge-circle {
  background: var(--c-dialog-warning-card);
}

/* Free-standing art is roughly twice the size it is inside a circle. Both the lottie
   element and the icon land on this class; qdnapro-lottie sizes from --ql-size, and the
   icon is capped here too so a wrong size attribute cannot blow the layout open. */
.qdnapro-bottom-sheet .bs-dialog-badge-art {
  --ql-size: 88px;
  display: block;
  width: 88px;
  height: 88px;
  color: var(--c-text-on-action);
}

.qdnapro-bottom-sheet .bs-dialog-badge-circle .bs-dialog-badge-art {
  --ql-size: calc(var(--bs-badge-size) * 0.55);
  width: calc(var(--bs-badge-size) * 0.55);
  height: calc(var(--bs-badge-size) * 0.55);
}

.qdnapro-bottom-sheet.bs-tone-danger .bs-dialog-badge-circle .bs-dialog-badge-art,
.qdnapro-bottom-sheet.bs-tone-success .bs-dialog-badge-circle .bs-dialog-badge-art,
.qdnapro-bottom-sheet.bs-tone-warning .bs-dialog-badge-circle .bs-dialog-badge-art {
  color: var(--c-text-on-action);
}

/* Consumer body content (stat rows, a notice line, etc.) sits below the illustration/
   title/text. The dialog body centers its built-ins; this wrapper stretches full-width
   and left-aligns so custom rows aren't shrink-wrapped or centered. [Kim 15.07.2026] */
.qdnapro-bottom-sheet .bs-body.bs-dialog > .bs-dialog-content {
  align-self: stretch;
  width: 100%;
  text-align: left;
  margin-top: 20px;
}

.qdnapro-bottom-sheet .bs-dialog-footer {
  display: flex;
  gap: 12px;
  flex-shrink: 0;
  /* The footer sits OUTSIDE .bs-body, so it doesn't inherit the body's bottom
     breathing room — give it the same 24px + safe-area so the buttons don't glue
     to the panel edge. [Kim 15.07.2026]

     The horizontal 16px was added 18.08.2026. The panel's own --bs-pad-x is 8px,
     tuned for button-ROW sheets where an option row is supposed to run nearly edge
     to edge. A dialog's footer is not a row of options, it is two buttons, and one
     of them is a solid fill: at 8px it reads as glued to the panel edge. Measured
     identically on the purple dialog, so this is not a danger-tone problem and the
     fix belongs on both. 8 + 16 = 24px, matching the footer's own vertical rhythm. */
  padding: 20px 16px calc(24px + env(safe-area-inset-bottom, 0px));
}

.qdnapro-bottom-sheet .bs-dialog-footer qdnapro-button {
  flex: 1;
}

/* The dialog variant is always-purple; every OTHER variant keeps the base white card.
   Combining dialog with purple/glass/reading is not supported — variant is a single
   value (same limitation the reading variant already has). */
/* ── Top placement (placement="top") ─────────────────────────────────────────────
   The SAME sheet, hinged on the TOP edge: a quick, low-commitment options menu that
   drops down from under the header its trigger sits in (Outlook's calendar view-
   switcher is the reference). A bottom sheet is the intrusive one that takes over the
   screen; this is the light one for a handful of options. [Kim 29.07.2026]

   ONLY geometry + direction flip here — the surface variants (purple / glass /
   reading) are untouched and combine freely. Horizontal padding is deliberately left
   to the base (8px) or the reading variant (16px); only the vertical padding changes,
   because the grab-handle moved out of the top.

   --bs-top is set inline by _applyTopOffset(): the `anchor` element's bottom edge, or
   the literal `offset-top`. Absent → hang just below the notch. */
.qdnapro-bottom-sheet.bs-placement-top .bs-panel {
  top: var(--bs-top, env(safe-area-inset-top, 0px));
  bottom: auto;
  /* Height follows the content; this cap only bites on a long list (and gives back
     whatever the header above already took). */
  max-height: calc(86% - var(--bs-top, 0px));
  /* Square, NOT rounded — the Outlook reference: the top sheet runs the panel
     straight into the header it hangs from, no corner radius at all. This is the
     DEFAULT for the top sheet (not an attribute): it has no other consumers yet
     than the two agenda menus, and flush corners are the intended look. The
     bottom sheet's own rounding (32px 32px 0 0, above) is untouched. [Kim 29.07.2026] */
  border-radius: 0;
  /* Shadow falls DOWNWARD, away from the edge it hangs on. */
  box-shadow: 0 10px 34px rgba(0, 0, 0, 0.16);
  /* Parked behind its own edge while closed (base sheet uses +100%). */
  transform: translateY(-100%);
  padding-top: 16px;
}

.qdnapro-bottom-sheet.bs-placement-top.is-open .bs-panel {
  transform: translateY(0);
}

/* The scrim must start where the panel starts, NOT cover the whole screen (the base
   .bs-scrim above is inset:0 for the bottom sheet, which pins the scrim under the
   full viewport including any header the sheet hangs from). Fix lives HERE, at the
   source, rather than the consumer reaching for a z-index war it can't win: a header
   living inside its own stacking-context ancestor can never out-stack a scrim
   portalled straight onto <body>, no matter what z-index it's given. Starting the
   scrim itself at --bs-top means the header simply falls OUTSIDE the dimmed area —
   no z-index needed anywhere. Same fallback chain as the panel's own `top` above.
   Consequence: a tap on the header no longer closes the sheet (it's outside the
   scrim) — intended for this pattern, the header stays usable; scrim-tap, Esc and
   the handle remain the ways to dismiss. [Kim 29.07.2026] */
.qdnapro-bottom-sheet.bs-placement-top .bs-scrim {
  top: var(--bs-top, env(safe-area-inset-top, 0px));
}

/* Come out from UNDER the header, never OVER it (Kim 29.07.2026: "voelt veel
   natuurlijker"). The panel opens by sliding down from translateY(-100%), which
   parks it one panel-height ABOVE its own top edge — straight on top of the header
   it is supposed to hang under, and it paints there because the sheet sits on
   <body>. Clipping the HOST at --bs-top kills that overlap for good: the host is
   already `position: fixed; inset: 0`, so its box IS the viewport and this clip is
   in viewport coordinates, which means NOTHING about the panel's or scrim's own
   geometry has to change. It also fixes the same overlap while DRAGGING the sheet
   closed by hand, which a reveal-animation on the panel alone would not.
   The scrim rule above stays as a belt-and-braces: if clip-path ever fails, the
   header still is not dimmed. */
.qdnapro-bottom-sheet.bs-placement-top {
  clip-path: inset(var(--bs-top, env(safe-area-inset-top, 0px)) 0 0 0);
}

/* Drop the panel's own compositing hint for top placement. `will-change: transform`
   promotes it to its own GPU layer, and a composited layer is exactly the case where
   iOS WKWebView has historically escaped an ancestor's clip-path — which would bring
   the overlap right back on the one platform that matters most here. The slide is a
   single short transform on a small panel, so it does not need the hint. */
.qdnapro-bottom-sheet.bs-placement-top .bs-panel {
  will-change: auto;
}

/* Grab-handle to the BOTTOM of the panel via flex order ONLY — the DOM stays as
   rendered, so render() and the pointer-drag binding remain shared with the bottom
   sheet. Every other panel child keeps order:0, hence its DOM order (header, body,
   and the dialog footer if there is one). */
.qdnapro-bottom-sheet.bs-placement-top .bs-handle-zone {
  order: 9;
  padding: 16px 0 12px;
}

/* No home-indicator to clear up here — the handle-zone underneath is the breathing
   room, so drop the base's 24px + safe-area-inset-bottom. */
.qdnapro-bottom-sheet.bs-placement-top .bs-body {
  padding-bottom: 0;
}

/* ── no-handle (boolean attr) ─────────────────────────────────────────────────────
   Hides the grab handle entirely — Outlook has none on its calendar quick menus,
   first requested for the agenda top sheets. Kept as a CLASS on the host (same
   pattern as bs-placement-top / bs-variant-purple), and the handle-zone element
   stays in the DOM (display:none only): the pointer-drag listener binds to
   .bs-handle-zone in the JS and would throw on null if it were removed. [Kim 29.07.2026] */
.qdnapro-bottom-sheet.bs-no-handle .bs-handle-zone {
  display: none;
}

/* The handle-zone doubled as this edge's breathing room — hiding it would otherwise
   glue the adjacent content straight to the panel edge, so give the space back:
   - bottom placement: the zone sits ABOVE the header/body (panel's top edge) → pad
     the panel's top.
   - top placement: the zone sits BELOW the body (flex order:9 above, panel's bottom
     edge) → pad the body's bottom, so the last option row keeps its breathing room. */
.qdnapro-bottom-sheet.bs-no-handle:not(.bs-placement-top) .bs-panel {
  padding-top: 16px;
}

.qdnapro-bottom-sheet.bs-placement-top.bs-no-handle .bs-body {
  padding-bottom: 16px;
}

/* Explainer "bullet" row: [icon/badge] + white text, used inside .bs-dialog-content
   for things like "what does this badge mean" (PWA documents badge-info dialog,
   28.07.2026). NOT a new component — just a consumer-side row wrapping whatever icon
   the consumer passes (e.g. <qdnapro-status-badge favorite size="small">) plus a text
   node. SAME class name + rule as the popover's dialog-arrow counterpart (see
   _popover.scss) so a sheet on phone and a popover on tablet render byte-identical
   content. The icon aligns to the TOP of the text block (flex-start) rather than a
   strict typographic baseline — the icon here is a status-badge pill, not a glyph, so
   there is no single baseline to hook into; top-aligning is the closest match to
   "icon next to the first text line" when the text can wrap to 2 lines. */
.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-bullet {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  color: var(--c-white-90, rgba(255, 255, 255, 0.9));
  font-size: 14px;
  line-height: 1.5;
  text-align: left;
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-bullet + .bs-dialog-bullet {
  margin-top: 14px;
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-bullet > qdnapro-status-badge {
  flex-shrink: 0;
}

/* ── Title art (title-lottie / title-lottie-name / title-icon) ─────────────────────────
   A SMALL animated glyph right next to the heading, as on the Pulse verdict sheets
   ("Correct!" + a check). The title row centres text + art together; the art is 40px
   (Kim's design: 24px title, 40x40 icon). The Lottie loops while the sheet is open - a
   single play finished during the slide-in and Kim saw a still icon. [Kim 03.09.2026] */
.qdnapro-bottom-sheet .bs-dialog-title-with-art {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.qdnapro-bottom-sheet .bs-dialog-title-art {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
}

.qdnapro-bottom-sheet .bs-dialog-title-lottie {
  --ql-size: 40px;
  display: block;
  width: 40px;
  height: 40px;
}

.qdnapro-bottom-sheet .bs-dialog-title-icon {
  color: var(--c-text-on-action);
}

/* ── Float slot (slot="float") ─────────────────────────────────────────────────────────
   Children marked slot="float" are parked here, ABOVE the panel's top edge, right-aligned
   and 14px clear of it (Kim's design: the points pill sits in the gap between the card
   photo and the sheet). Absolute inside the fixed panel, so it travels with the slide-in
   and with a swipe-down. pointer-events off: it is a label, not a control, and must not
   block the scrim behind it. The panel has no overflow clipping (only .bs-body scrolls),
   so nothing here is cut off. [Kim 03.09.2026] */
.qdnapro-bottom-sheet .bs-float {
  position: absolute;
  right: 10px;
  bottom: calc(100% + 14px);
  display: flex;
  align-items: center;
  gap: 8px;
  pointer-events: none;
}

/* The pill: the tone's SURFACE colour, so it reads as a piece of the sheet floating free.
   49px tall like the design, full radius, white bold 20px. The purple dialog gets the
   purple surface for the same reason. */
.qdnapro-bottom-sheet .bs-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 49px;
  padding: 0 18px 0 14px;
  border-radius: var(--r-pill, 999px);
  background: var(--c-purple-500);
  color: var(--c-text-on-action);
  font-size: 20px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.qdnapro-bottom-sheet.bs-tone-danger .bs-pill {
  background: var(--c-dialog-danger-surface);
}

.qdnapro-bottom-sheet.bs-tone-success .bs-pill {
  background: var(--c-dialog-success-surface);
}

.qdnapro-bottom-sheet.bs-tone-warning .bs-pill {
  background: var(--c-dialog-warning-surface);
}

/* ── Verdict cards (.bs-dialog-card) ───────────────────────────────────────────────────
   One rounded block per answer option on a toned dialog: a bold head (verdict icon +
   option text) and the explanation under it, white on the tone's CARD colour (the darker
   fill from Kim's set). data-verdict="right|wrong" picks the icon - Kim's own check and
   cross SVGs, inlined so they are there offline - and, on the warning tone only, a
   slightly redder fill for a wrong option (design choice, see the tokens). Lives inside
   .bs-dialog-content like the bullet rows; 8px between cards as in the design. */
.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card {
  border-radius: 12px;
  padding: 14px 12px 16px;
  background: var(--c-purple-700);
  color: var(--c-text-on-action);
  font-size: 15px;
  line-height: 1.75;
  text-align: left;
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card + .bs-dialog-card {
  margin-top: 8px;
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  margin-bottom: 10px;
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card-icon {
  flex: 0 0 auto;
  width: 21px;
  height: 21px;
  background: no-repeat center/contain;
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card[data-verdict=right] .bs-dialog-card-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='21' height='21' viewBox='0 0 21 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.4413 20.0986C15.7747 20.0986 20.0984 15.775 20.0984 10.4415C20.0984 5.10805 15.7747 0.784424 10.4413 0.784424C5.10781 0.784424 0.78418 5.10805 0.78418 10.4415C0.78418 15.775 5.10781 20.0986 10.4413 20.0986Z' fill='%2358B992'/%3E%3Cpath d='M10.4414 20.8828C4.684 20.8828 0 16.1988 0 10.4414C0 4.684 4.684 0 10.4414 0C16.1988 0 20.8828 4.684 20.8828 10.4414C20.8828 16.1988 16.1988 20.8828 10.4414 20.8828ZM10.4414 1.56863C5.54894 1.56863 1.56863 5.54894 1.56863 10.4414C1.56863 15.3339 5.54894 19.3142 10.4414 19.3142C15.3339 19.3142 19.3142 15.3339 19.3142 10.4414C19.3142 5.54894 15.3339 1.56863 10.4414 1.56863Z' fill='%232F5D4A'/%3E%3Cpath d='M9.26739 14.2197C8.93492 14.2197 8.62237 14.0902 8.38732 13.8551L5.83908 11.3069C5.53281 11.0006 5.53281 10.504 5.83908 10.1976C6.14536 9.89136 6.64198 9.89136 6.94826 10.1976L9.26732 12.5167L13.9342 7.84979C14.2405 7.5436 14.737 7.54352 15.0434 7.84979C15.3497 8.15607 15.3497 8.6527 15.0434 8.95905L10.1473 13.855C9.91241 14.0902 9.59986 14.2197 9.26739 14.2197Z' fill='white'/%3E%3C/svg%3E");
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card[data-verdict=wrong] .bs-dialog-card-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='21' height='21' viewBox='0 0 21 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.1902 19.6146C15.3953 19.6146 19.6149 15.3951 19.6149 10.19C19.6149 4.98492 15.3953 0.765381 10.1902 0.765381C4.98517 0.765381 0.765625 4.98492 0.765625 10.19C0.765625 15.3951 4.98517 19.6146 10.1902 19.6146Z' fill='%23FF3A30'/%3E%3Cpath d='M10.19 20.3801C4.57124 20.3801 0 15.8089 0 10.19C0 4.57124 4.57124 0 10.19 0C15.8089 0 20.3801 4.57124 20.3801 10.19C20.3801 15.8089 15.8089 20.3801 10.19 20.3801ZM10.19 1.53079C5.41536 1.53079 1.53086 5.41528 1.53086 10.19C1.53086 14.9647 5.41536 18.8492 10.19 18.8492C14.9647 18.8492 18.8492 14.9647 18.8492 10.19C18.8492 5.41528 14.9648 1.53079 10.19 1.53079Z' fill='%237C1914'/%3E%3Cpath d='M11.2726 10.19L13.9662 7.49641C14.2651 7.19751 14.2651 6.71284 13.9662 6.41394C13.6672 6.11496 13.1826 6.11512 12.8837 6.41386L10.19 9.1075L7.49641 6.41386C7.19751 6.11496 6.71284 6.11496 6.41386 6.41394C6.11496 6.71284 6.11496 7.19751 6.41394 7.49641L9.10757 10.19L6.41394 12.8835C6.11504 13.1824 6.11496 13.6671 6.41386 13.966C6.56335 14.1155 6.75923 14.1902 6.9551 14.1902C7.15097 14.1902 7.34693 14.1154 7.49634 13.966L10.19 11.2724L12.8836 13.966C13.033 14.1155 13.229 14.1902 13.4248 14.1902C13.6207 14.1902 13.8167 14.1154 13.9661 13.966C14.265 13.6671 14.265 13.1824 13.9661 12.8835L11.2726 10.19Z' fill='white'/%3E%3C/svg%3E");
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card-text {
  display: block;
}

.qdnapro-bottom-sheet.bs-tone-danger .bs-dialog-content .bs-dialog-card {
  background: var(--c-dialog-danger-card);
}

.qdnapro-bottom-sheet.bs-tone-success .bs-dialog-content .bs-dialog-card {
  background: var(--c-dialog-success-card);
}

.qdnapro-bottom-sheet.bs-tone-warning .bs-dialog-content .bs-dialog-card {
  background: var(--c-dialog-warning-card);
}

.qdnapro-bottom-sheet.bs-tone-warning .bs-dialog-content .bs-dialog-card[data-verdict=wrong] {
  background: var(--c-dialog-warning-card-wrong);
}

/* data-verdict="missed": right, but the reader did NOT pick it. Kim 04.09.2026 - a sheet
   that only lists your own picks cannot explain "partly right" when every card on screen
   is green. Same language the answer rows on the card already use for that state
   (data-pulse-stand="goed-gemist"): NO filled block, a dashed outline and a dashed tick.
   The fill stays the tone's own card colour so the block still belongs to the sheet, and
   the dashed border is what separates "the truth" from "what you chose". */
.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card[data-verdict=missed] {
  background: transparent;
  border: 2px dashed rgba(255, 255, 255, 0.7);
  padding: 12px 10px 14px;
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-card[data-verdict=missed] .bs-dialog-card-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='21' height='21' viewBox='0 0 21 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10.5' cy='10.5' r='9.3' stroke='white' stroke-width='1.7' stroke-dasharray='3.2 2.8'/%3E%3Cpath d='M9.26739 14.2197C8.93492 14.2197 8.62237 14.0902 8.38732 13.8551L5.83908 11.3069C5.53281 11.0006 5.53281 10.504 5.83908 10.1976C6.14536 9.89136 6.64198 9.89136 6.94826 10.1976L9.26732 12.5167L13.9342 7.84979C14.2405 7.5436 14.737 7.54352 15.0434 7.84979C15.3497 8.15607 15.3497 8.6527 15.0434 8.95905L10.1473 13.855C9.91241 14.0902 9.59986 14.2197 9.26739 14.2197Z' fill='white'/%3E%3C/svg%3E");
}

/* The line above that group of cards ("Deze had je nog moeten kiezen"). Not a heading
   element: the dialog already owns the only h-level in this panel. */
.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-label {
  margin: 16px 0 8px;
  color: var(--c-text-on-action);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  text-align: left;
}

.qdnapro-bottom-sheet .bs-dialog-content .bs-dialog-label:first-child {
  margin-top: 0;
}

.qdnapro-bottom-sheet-button {
  display: flex;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  border: none;
  border-top: none;
  border-radius: var(--r-3);
  padding: 13px 16px;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.2;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.14s ease, transform 0.1s ease;
}

.qdnapro-bottom-sheet-button .bsb-icon {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  margin-right: 14px;
}

.qdnapro-bottom-sheet-button .bsb-label {
  flex: 1;
  min-width: 0;
}

.qdnapro-bottom-sheet-button .bsb-check {
  display: none;
  align-items: center;
  flex-shrink: 0;
  margin-left: 12px;
}

.qdnapro-bottom-sheet-button.bsb-active .bsb-check {
  display: inline-flex;
}

.qdnapro-bottom-sheet-button .bsb-value {
  flex-shrink: 1;
  min-width: 0;
  max-width: 55%;
  margin-left: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 15px;
  color: var(--c-text-muted);
}

.qdnapro-bottom-sheet-button.bsb-on-purple .bsb-value {
  color: var(--c-white-70);
}

.qdnapro-bottom-sheet-button.bsb-disabled .bsb-value {
  color: inherit;
}

.qdnapro-bottom-sheet-button.bsb-tile .bsb-value {
  display: none;
}

.qdnapro-bottom-sheet-button .bsb-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}

.qdnapro-bottom-sheet-button .bsb-text .bsb-label {
  flex: none;
}

.qdnapro-bottom-sheet-button .bsb-sub {
  font-size: 13px;
  line-height: 1.3;
  color: var(--c-text-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-bottom-sheet-button.bsb-has-sub:not(.bsb-tile) {
  align-items: flex-start;
}

.qdnapro-bottom-sheet-button.bsb-has-sub:not(.bsb-tile) .bsb-icon {
  margin-top: -2px;
}

.qdnapro-bottom-sheet-button.bsb-on-white {
  background: transparent;
  color: var(--c-purple-700);
  border-radius: 0;
}

.qdnapro-bottom-sheet-button.bsb-on-white:hover:not(.bsb-disabled):not(.bsb-active) {
  background: var(--c-grey-50);
  border-radius: var(--r-3);
}

.qdnapro-bottom-sheet-button.bsb-on-white.is-pressed {
  background: var(--c-grey-100);
  border-radius: var(--r-3);
  transform: scale(0.985);
}

.qdnapro-bottom-sheet-button.bsb-on-white.bsb-active {
  background: transparent;
  color: var(--c-purple-700);
}

.qdnapro-bottom-sheet-button.bsb-on-white.bsb-disabled {
  background: transparent;
  color: var(--c-grey-300);
  cursor: default;
}

.qdnapro-bottom-sheet-button.bsb-on-purple {
  background: transparent;
  color: var(--c-text-on-action);
  border-radius: 0;
}

.qdnapro-bottom-sheet-button.bsb-on-purple:hover:not(.bsb-disabled):not(.bsb-active) {
  background: var(--c-white-14);
  border-radius: var(--r-3);
}

.qdnapro-bottom-sheet-button.bsb-on-purple.is-pressed {
  background: var(--c-white-22);
  border-radius: var(--r-3);
  transform: scale(0.985);
}

.qdnapro-bottom-sheet-button.bsb-on-purple.bsb-active {
  background: transparent;
  color: var(--c-text-on-action);
}

.qdnapro-bottom-sheet-button.bsb-on-purple.bsb-disabled {
  background: transparent;
  color: var(--c-white-45);
  cursor: default;
}

.qdnapro-bottom-sheet-button.bsb-tile {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 14px 8px;
  flex: 1;
  border-radius: var(--r-3);
}

.qdnapro-bottom-sheet-button.bsb-tile .bsb-icon {
  margin-right: 0;
}

.qdnapro-bottom-sheet-button.bsb-tile .bsb-label {
  flex: none;
  font-size: 12px;
  text-align: center;
  white-space: nowrap;
}

.qdnapro-bottom-sheet-button.bsb-tile .bsb-text {
  flex: none;
  align-items: center;
  gap: 1px;
  max-width: 100%;
}

.qdnapro-bottom-sheet-button.bsb-tile .bsb-sub {
  font-size: 11px;
  line-height: 1.25;
  max-width: 100%;
  text-align: center;
}

.qdnapro-bottom-sheet-button.bsb-tile .bsb-check,
.qdnapro-bottom-sheet-button.bsb-tile.bsb-active .bsb-check {
  display: none;
}

.qdnapro-bottom-sheet-button-group.bsbg-tiles {
  display: flex;
  flex-direction: row;
  gap: 6px;
}

.qdnapro-bottom-sheet-button-group.bsbg-tiles .qdnapro-bottom-sheet-button {
  border-radius: var(--r-3);
  padding: 14px 8px;
}

.qdnapro-bottom-sheet-button-group.bsbg-tiles.bsbg-on-white .bsb-tile {
  background: var(--c-bg-card);
  color: var(--c-purple-700);
}

.qdnapro-bottom-sheet-button-group.bsbg-tiles.bsbg-on-white .bsb-tile:hover:not(.bsb-disabled) {
  background: var(--c-grey-100);
}

.qdnapro-bottom-sheet-button-group.bsbg-tiles.bsbg-on-white .bsb-tile.is-pressed {
  background: var(--c-grey-100);
  transform: scale(0.97);
}

.qdnapro-bottom-sheet-button-group.bsbg-tiles.bsbg-on-purple .bsb-tile {
  background: var(--c-white-22);
  color: var(--c-text-on-action);
}

.qdnapro-bottom-sheet-button-group.bsbg-tiles.bsbg-on-purple .bsb-tile:hover:not(.bsb-disabled) {
  background: var(--c-white-28);
}

.qdnapro-bottom-sheet-button-group.bsbg-tiles.bsbg-on-purple .bsb-tile.is-pressed {
  background: var(--c-white-28);
  transform: scale(0.97);
}

.qdnapro-bottom-sheet-button.bsb-destructive {
  background: var(--c-signal-red-soft);
  color: var(--c-tag-critical-text);
  margin-top: 8px;
}

.qdnapro-bottom-sheet-button.bsb-destructive:hover:not(.bsb-disabled) {
  background: var(--c-signal-red-bg);
}

.qdnapro-bottom-sheet-button.bsb-destructive.is-pressed {
  background: var(--c-signal-red-bg);
  transform: scale(0.985);
}

.qdnapro-bottom-sheet-button.bsb-destructive.bsb-disabled {
  background: var(--c-grey-50);
  color: var(--c-grey-400);
  cursor: default;
}

.qdnapro-bottom-sheet-button.bsb-warning {
  background: var(--c-warning-bright-bg);
  color: var(--c-warning-bright-text);
  margin-top: 8px;
}

.qdnapro-bottom-sheet-button.bsb-warning:hover:not(.bsb-disabled) {
  background: var(--c-signal-yellow-bg);
}

.qdnapro-bottom-sheet-button.bsb-warning.is-pressed {
  background: var(--c-signal-yellow-bg);
  transform: scale(0.985);
}

.qdnapro-bottom-sheet-button.bsb-warning.bsb-disabled {
  background: var(--c-grey-50);
  color: var(--c-grey-400);
  cursor: default;
}

.qdnapro-bottom-sheet-button.bsb-success {
  background: var(--c-signal-green-100);
  color: var(--c-signal-green-text);
  margin-top: 8px;
}

.qdnapro-bottom-sheet-button.bsb-success:hover:not(.bsb-disabled) {
  background: var(--c-signal-green-bg);
}

.qdnapro-bottom-sheet-button.bsb-success.is-pressed {
  background: var(--c-signal-green-bg);
  transform: scale(0.985);
}

.qdnapro-bottom-sheet-button.bsb-success.bsb-disabled {
  background: var(--c-grey-50);
  color: var(--c-grey-400);
  cursor: default;
}

.qdnapro-bottom-sheet-button-group {
  display: block;
  box-sizing: border-box;
  border-radius: var(--r-3);
  padding: 6px;
}

.qdnapro-bottom-sheet-button-group.bsbg-on-white {
  background: var(--c-grey-50);
}

.qdnapro-bottom-sheet-button-group.bsbg-on-purple {
  background: var(--c-white-14);
}

.qdnapro-bottom-sheet-button-group .qdnapro-bottom-sheet-button {
  border-radius: var(--r-row);
  padding: 11px 16px;
  border-top: none;
}

.qdnapro-bottom-sheet-button-group .qdnapro-bottom-sheet-button + .qdnapro-bottom-sheet-button {
  margin-top: 2px;
  border-top: none;
}

.qdnapro-bottom-sheet-button-group .qdnapro-bottom-sheet-button.bsb-on-white + .qdnapro-bottom-sheet-button.bsb-on-white,
.qdnapro-bottom-sheet-button-group .qdnapro-bottom-sheet-button.bsb-on-purple + .qdnapro-bottom-sheet-button.bsb-on-purple {
  border-top: none;
}

.qdnapro-bottom-sheet-button-group .qdnapro-bottom-sheet-button:not(.is-pressed):not(:hover) {
  background: transparent;
}

.qdnapro-bottom-sheet-button-group.bsbg-on-white .qdnapro-bottom-sheet-button.bsb-on-white:hover:not(.bsb-disabled):not(.bsb-active) {
  background: var(--c-grey-100);
}

.qdnapro-bottom-sheet-button-group.bsbg-on-white .qdnapro-bottom-sheet-button.bsb-on-white.is-pressed {
  background: var(--c-grey-200);
}

.qdnapro-bottom-sheet-button-group.bsbg-on-purple .qdnapro-bottom-sheet-button {
  color: var(--c-text-on-action);
}

.qdnapro-bottom-sheet-button-group.bsbg-on-purple .qdnapro-bottom-sheet-button.bsb-active {
  background: transparent;
  color: var(--c-text-on-action);
}

.qdnapro-bottom-sheet-button-group.bsbg-on-purple .qdnapro-bottom-sheet-button.bsb-disabled {
  color: var(--c-white-45);
  cursor: default;
}

.qdnapro-bottom-sheet-button.bsb-on-purple .bsb-sub,
.qdnapro-bottom-sheet-button-group.bsbg-on-purple .qdnapro-bottom-sheet-button .bsb-sub {
  color: var(--c-white-70);
}

.qdnapro-bottom-sheet-button.bsb-warning .bsb-sub,
.qdnapro-bottom-sheet-button.bsb-destructive .bsb-sub,
.qdnapro-bottom-sheet-button.bsb-success .bsb-sub {
  color: currentColor;
  opacity: 0.78;
}

.qdnapro-bottom-sheet-button.bsb-disabled .bsb-sub {
  color: inherit;
  opacity: 1;
}

.qdnapro-bottom-sheet-button.bsb-on-white.bsb-disabled .bsb-sub {
  color: var(--c-grey-300);
}

.qdnapro-bottom-sheet-button.bsb-on-purple.bsb-disabled .bsb-sub,
.qdnapro-bottom-sheet-button-group.bsbg-on-purple .qdnapro-bottom-sheet-button.bsb-disabled .bsb-sub {
  color: var(--c-white-45);
}

@keyframes bsb-check-pop {
  0% {
    transform: scale(0.6) rotate(0deg);
  }
  20% {
    transform: scale(1.2) rotate(-5deg);
  }
  44% {
    transform: scale(0.92) rotate(3deg);
  }
  64% {
    transform: scale(1.06) rotate(-1deg);
  }
  80% {
    transform: scale(0.97) rotate(0deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
  }
}
@keyframes bsb-check-draw {
  0% {
    stroke-dashoffset: 22;
  }
  62% {
    stroke-dashoffset: -1;
  }
  80% {
    stroke-dashoffset: 0.7;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
.qdnapro-bottom-sheet-button .bsb-check-path {
  stroke-dasharray: 22;
  stroke-dashoffset: 22;
}

.qdnapro-bottom-sheet-button.bsb-active .bsb-check {
  animation: bsb-check-pop 0.52s cubic-bezier(0.34, 1.56, 0.5, 1) forwards;
}

.qdnapro-bottom-sheet-button.bsb-active .bsb-check-path {
  animation: bsb-check-draw 0.38s cubic-bezier(0.22, 1, 0.36, 1) 0.04s forwards;
}

.qdnapro-popover {
  position: fixed;
  z-index: 1001;
  width: 280px;
  padding: 6px;
  box-sizing: border-box;
  border-radius: var(--r-card);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.22);
  font-family: var(--theme-font-family, "Inter", sans-serif);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease, visibility 0.15s ease;
}

.qdnapro-popover.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.qdnapro-popover.pop-below {
  transform-origin: var(--pop-arrow-x, 50%) 0;
}

.qdnapro-popover.pop-side::before {
  display: none;
}

.qdnapro-popover.pop-side {
  transform-origin: 0 20%;
}

.qdnapro-popover.pop-above {
  transform-origin: var(--pop-arrow-x, 50%) 100%;
}

.qdnapro-popover.is-open:not(.pop-variant-dialog) {
  animation: qdnapro-pop-grow 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes qdnapro-pop-grow {
  from {
    opacity: 0;
    transform: scale(0.72);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.qdnapro-popover.pop-closing:not(.pop-variant-dialog) {
  visibility: visible;
  animation: qdnapro-pop-shrink 0.12s ease-in;
}

@keyframes qdnapro-pop-shrink {
  from {
    opacity: 1;
    transform: scale(1);
  }
  to {
    opacity: 0;
    transform: scale(0.85);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-popover.is-open:not(.pop-variant-dialog),
  .qdnapro-popover.pop-closing:not(.pop-variant-dialog) {
    animation: none;
  }
  .qdnapro-popover.pop-closing:not(.pop-variant-dialog) {
    visibility: hidden;
  }
}
qdnapro-popover:not(:defined) {
  display: none;
}

.qdnapro-popover::before {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  border: 9px solid transparent;
  left: var(--pop-arrow-x, 50%);
  transform: translateX(-50%);
}

.qdnapro-popover.pop-below::before {
  top: -18px;
}

.qdnapro-popover.pop-above::before {
  bottom: -18px;
}

.qdnapro-popover.pop-variant-white {
  background: var(--c-bg-card);
}

.qdnapro-popover.pop-variant-white::before {
  border-bottom-color: var(--c-bg-card);
}

.qdnapro-popover.pop-variant-white.pop-above::before {
  border-top-color: var(--c-bg-card);
  border-bottom-color: transparent;
}

.qdnapro-popover.pop-variant-purple {
  background: var(--c-purple-500);
}

.qdnapro-popover.pop-variant-purple::before {
  border-bottom-color: var(--c-purple-500);
}

.qdnapro-popover.pop-variant-purple.pop-above::before {
  border-top-color: var(--c-purple-500);
  border-bottom-color: transparent;
}

.qdnapro-popover.pop-bare {
  width: auto;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

.qdnapro-popover.pop-bare::before {
  display: none;
}

.qdnapro-popover .pop-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.qdnapro-popover .pop-dialog-body {
  align-items: center;
  text-align: center;
  gap: 0;
}

.qdnapro-popover .pop-dialog-body > qdnapro-illustration {
  display: block;
  margin: 0 auto 16px;
  max-width: 100%;
}

.qdnapro-popover .pop-dialog-title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--c-text-on-action);
}

.qdnapro-popover .pop-dialog-text {
  font-size: 14px;
  line-height: 1.6;
  color: var(--c-white-70);
  margin-top: 10px;
}

.qdnapro-popover .pop-dialog-body > .pop-dialog-content {
  align-self: stretch;
  width: 100%;
  text-align: left;
  margin-top: 16px;
}

.qdnapro-popover .pop-dialog-footer qdnapro-button {
  flex: 1;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-bullet {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  color: var(--c-white-90, rgba(255, 255, 255, 0.9));
  font-size: 14px;
  line-height: 1.5;
  text-align: left;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-bullet + .bs-dialog-bullet {
  margin-top: 14px;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-bullet > qdnapro-status-badge {
  flex-shrink: 0;
}

.qdnapro-popover.pop-variant-dialog {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: auto;
  height: auto;
  padding: 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.qdnapro-popover.pop-variant-dialog::before {
  display: none;
}

.qdnapro-popover.pop-variant-dialog .pop-scrim {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 0;
}

.qdnapro-popover.pop-variant-dialog .pop-panel {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  width: min(94vw, 702px);
  max-height: 86vh;
  overflow-y: auto;
  padding: 28px 24px 24px;
  border-radius: var(--r-card);
  background: var(--c-purple-500);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.22);
  transform: scale(0.96);
  transition: transform 0.18s ease;
}

.qdnapro-popover.pop-variant-dialog.is-open .pop-panel {
  transform: scale(1);
}

.qdnapro-popover.pop-variant-dialog .pop-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 32px;
  height: 32px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: var(--c-purple-700);
  color: var(--c-text-on-action);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* Surface colours come from the shared dialog-tone tokens (Kim's exact set for the
   Pulse verdict sheets, 03.09.2026) so a confirm routed to this popover on a wide
   screen is the same colour as the bottom sheet it replaces on a phone. */
.qdnapro-popover.pop-tone-danger .pop-panel {
  background: var(--c-dialog-danger-surface);
}

.qdnapro-popover.pop-tone-danger .pop-close {
  background: var(--c-dialog-danger-grab);
}

.qdnapro-popover.pop-tone-success .pop-panel {
  background: var(--c-dialog-success-surface);
}

.qdnapro-popover.pop-tone-success .pop-close {
  background: var(--c-dialog-success-grab);
}

.qdnapro-popover.pop-tone-warning .pop-panel {
  background: var(--c-dialog-warning-surface);
}

.qdnapro-popover.pop-tone-warning .pop-close {
  background: var(--c-dialog-warning-grab);
}

.qdnapro-popover.pop-tone-danger .pop-dialog-title,
.qdnapro-popover.pop-tone-danger .pop-dialog-text,
.qdnapro-popover.pop-tone-success .pop-dialog-title,
.qdnapro-popover.pop-tone-success .pop-dialog-text,
.qdnapro-popover.pop-tone-warning .pop-dialog-title,
.qdnapro-popover.pop-tone-warning .pop-dialog-text {
  color: var(--c-text-on-action);
}

.qdnapro-popover.pop-tone-danger .pop-dialog-title,
.qdnapro-popover.pop-tone-success .pop-dialog-title,
.qdnapro-popover.pop-tone-warning .pop-dialog-title {
  font-size: 24px;
}

.qdnapro-popover .pop-dialog-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
}

.qdnapro-popover .pop-dialog-badge-circle {
  --pop-badge-size: 96px;
  width: var(--pop-badge-size);
  height: var(--pop-badge-size);
  margin-bottom: 20px;
  border-radius: 50%;
  background: var(--c-purple-400);
}

.qdnapro-popover.pop-tone-danger .pop-dialog-badge-circle {
  background: var(--c-warn-red-300);
}

.qdnapro-popover.pop-tone-success .pop-dialog-badge-circle {
  background: var(--c-success-300);
}

.qdnapro-popover.pop-tone-warning .pop-dialog-badge-circle {
  background: var(--c-dialog-warning-card);
}

.qdnapro-popover .pop-dialog-badge-art {
  --ql-size: 88px;
  display: block;
  width: 88px;
  height: 88px;
  color: var(--c-text-on-action);
}

.qdnapro-popover .pop-dialog-badge-circle .pop-dialog-badge-art {
  --ql-size: calc(var(--pop-badge-size) * 0.55);
  width: calc(var(--pop-badge-size) * 0.55);
  height: calc(var(--pop-badge-size) * 0.55);
}

.qdnapro-popover.pop-tone-danger .pop-dialog-badge-circle .pop-dialog-badge-art {
  color: var(--c-warn-red-900);
}

.qdnapro-popover.pop-tone-success .pop-dialog-badge-circle .pop-dialog-badge-art {
  color: var(--c-success-900);
}

.qdnapro-popover.pop-variant-dialog .pop-dialog-body {
  padding-top: 4px;
}

.qdnapro-popover.pop-variant-dialog .pop-dialog-illustration {
  margin-bottom: 20px;
}

.qdnapro-popover.pop-variant-dialog .pop-dialog-footer {
  display: flex;
  gap: 12px;
  margin-top: 24px;
}

.qdnapro-popover.pop-dialog-light .pop-panel {
  background: var(--c-bg-card, #ffffff);
}

.qdnapro-popover.pop-dialog-light .pop-dialog-title {
  color: var(--c-text-heading, #1a1f4d);
}

.qdnapro-popover.pop-dialog-light .pop-dialog-text {
  color: var(--c-text-muted, #6e7280);
}

.qdnapro-popover.pop-dialog-light .pop-close {
  background: var(--c-bg-subtle-hover, #f5f6f8);
  color: var(--c-text-heading, #1a1f4d);
}

.qdnapro-popover.pop-variant-dialog .pop-header {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  margin-bottom: 16px;
}

.qdnapro-popover.pop-variant-dialog .pop-header > *:first-child {
  flex: 1 1 auto;
  min-width: 0;
}

.qdnapro-popover.pop-variant-dialog.pop-has-header .pop-close {
  position: static;
  top: auto;
  right: auto;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
}

.qdnapro-popover.pop-variant-dialog.pop-has-header .pop-panel {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding-top: 16px;
}

.qdnapro-popover.pop-variant-dialog.pop-has-header .pop-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.qdnapro-popover.pop-variant-dialog.pop-size-medium .pop-panel {
  width: min(92vw, 520px);
}

.qdnapro-popover.pop-variant-dialog-arrow {
  width: 340px;
  background: var(--c-purple-500);
  padding: 20px 20px 18px;
}

.qdnapro-popover.pop-variant-dialog-arrow::before {
  border-bottom-color: var(--c-purple-500);
}

.qdnapro-popover.pop-variant-dialog-arrow.pop-above::before {
  border-top-color: var(--c-purple-500);
  border-bottom-color: transparent;
}

.qdnapro-popover.pop-variant-dialog-arrow .pop-dialog-footer {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 16px;
}

.qdnapro-popover .pop-dialog-title-with-art {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.qdnapro-popover .pop-dialog-title-art {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
}

.qdnapro-popover .pop-dialog-title-lottie {
  --ql-size: 40px;
  display: block;
  width: 40px;
  height: 40px;
}

.qdnapro-popover .pop-dialog-title-icon {
  color: var(--c-text-on-action);
}

/* Een dialoog MET een float-kind mag niet klippen: de pil hangt boven de bovenrand
   van het paneel en `overflow-y: auto` op dat paneel sneed hem compleet weg (gemeten
   op een render, 04.09.2026). Het schuiven verhuist daarom naar de dialoog-body, en
   alleen voor een dialoog die echt een float draagt - een dialoog zonder float houdt
   exact het gedrag dat hij had. De hoogte-cap zit dan op de body: kop, sluit-X en
   voetknop blijven staan en alleen de inhoud schuift, wat voor een dialoog met een
   rij antwoordkaarten ook het betere gedrag is. */
.qdnapro-popover.pop-variant-dialog.pop-has-float .pop-panel {
  overflow: visible;
}

.qdnapro-popover.pop-variant-dialog.pop-has-float .pop-dialog-body {
  max-height: 62vh;
  overflow-y: auto;
}

.qdnapro-popover .pop-float {
  position: absolute;
  right: 10px;
  bottom: calc(100% + 14px);
  display: flex;
  align-items: center;
  gap: 8px;
  pointer-events: none;
}

.qdnapro-popover .bs-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 49px;
  padding: 0 18px 0 14px;
  border-radius: var(--r-pill, 999px);
  background: var(--c-purple-500);
  color: var(--c-text-on-action);
  font-size: 20px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.qdnapro-popover.pop-tone-danger .bs-pill {
  background: var(--c-dialog-danger-surface);
}

.qdnapro-popover.pop-tone-success .bs-pill {
  background: var(--c-dialog-success-surface);
}

.qdnapro-popover.pop-tone-warning .bs-pill {
  background: var(--c-dialog-warning-surface);
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card {
  border-radius: 12px;
  padding: 14px 12px 16px;
  background: var(--c-purple-700);
  color: var(--c-text-on-action);
  font-size: 15px;
  line-height: 1.75;
  text-align: left;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card + .bs-dialog-card {
  margin-top: 8px;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  margin-bottom: 10px;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card-icon {
  flex: 0 0 auto;
  width: 21px;
  height: 21px;
  background: no-repeat center/contain;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card[data-verdict=right] .bs-dialog-card-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='21' height='21' viewBox='0 0 21 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.4413 20.0986C15.7747 20.0986 20.0984 15.775 20.0984 10.4415C20.0984 5.10805 15.7747 0.784424 10.4413 0.784424C5.10781 0.784424 0.78418 5.10805 0.78418 10.4415C0.78418 15.775 5.10781 20.0986 10.4413 20.0986Z' fill='%2358B992'/%3E%3Cpath d='M10.4414 20.8828C4.684 20.8828 0 16.1988 0 10.4414C0 4.684 4.684 0 10.4414 0C16.1988 0 20.8828 4.684 20.8828 10.4414C20.8828 16.1988 16.1988 20.8828 10.4414 20.8828ZM10.4414 1.56863C5.54894 1.56863 1.56863 5.54894 1.56863 10.4414C1.56863 15.3339 5.54894 19.3142 10.4414 19.3142C15.3339 19.3142 19.3142 15.3339 19.3142 10.4414C19.3142 5.54894 15.3339 1.56863 10.4414 1.56863Z' fill='%232F5D4A'/%3E%3Cpath d='M9.26739 14.2197C8.93492 14.2197 8.62237 14.0902 8.38732 13.8551L5.83908 11.3069C5.53281 11.0006 5.53281 10.504 5.83908 10.1976C6.14536 9.89136 6.64198 9.89136 6.94826 10.1976L9.26732 12.5167L13.9342 7.84979C14.2405 7.5436 14.737 7.54352 15.0434 7.84979C15.3497 8.15607 15.3497 8.6527 15.0434 8.95905L10.1473 13.855C9.91241 14.0902 9.59986 14.2197 9.26739 14.2197Z' fill='white'/%3E%3C/svg%3E");
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card[data-verdict=wrong] .bs-dialog-card-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='21' height='21' viewBox='0 0 21 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.1902 19.6146C15.3953 19.6146 19.6149 15.3951 19.6149 10.19C19.6149 4.98492 15.3953 0.765381 10.1902 0.765381C4.98517 0.765381 0.765625 4.98492 0.765625 10.19C0.765625 15.3951 4.98517 19.6146 10.1902 19.6146Z' fill='%23FF3A30'/%3E%3Cpath d='M10.19 20.3801C4.57124 20.3801 0 15.8089 0 10.19C0 4.57124 4.57124 0 10.19 0C15.8089 0 20.3801 4.57124 20.3801 10.19C20.3801 15.8089 15.8089 20.3801 10.19 20.3801ZM10.19 1.53079C5.41536 1.53079 1.53086 5.41528 1.53086 10.19C1.53086 14.9647 5.41536 18.8492 10.19 18.8492C14.9647 18.8492 18.8492 14.9647 18.8492 10.19C18.8492 5.41528 14.9648 1.53079 10.19 1.53079Z' fill='%237C1914'/%3E%3Cpath d='M11.2726 10.19L13.9662 7.49641C14.2651 7.19751 14.2651 6.71284 13.9662 6.41394C13.6672 6.11496 13.1826 6.11512 12.8837 6.41386L10.19 9.1075L7.49641 6.41386C7.19751 6.11496 6.71284 6.11496 6.41386 6.41394C6.11496 6.71284 6.11496 7.19751 6.41394 7.49641L9.10757 10.19L6.41394 12.8835C6.11504 13.1824 6.11496 13.6671 6.41386 13.966C6.56335 14.1155 6.75923 14.1902 6.9551 14.1902C7.15097 14.1902 7.34693 14.1154 7.49634 13.966L10.19 11.2724L12.8836 13.966C13.033 14.1155 13.229 14.1902 13.4248 14.1902C13.6207 14.1902 13.8167 14.1154 13.9661 13.966C14.265 13.6671 14.265 13.1824 13.9661 12.8835L11.2726 10.19Z' fill='white'/%3E%3C/svg%3E");
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card-text {
  display: block;
}

.qdnapro-popover.pop-tone-danger .pop-dialog-content .bs-dialog-card {
  background: var(--c-dialog-danger-card);
}

.qdnapro-popover.pop-tone-success .pop-dialog-content .bs-dialog-card {
  background: var(--c-dialog-success-card);
}

.qdnapro-popover.pop-tone-warning .pop-dialog-content .bs-dialog-card {
  background: var(--c-dialog-warning-card);
}

.qdnapro-popover.pop-tone-warning .pop-dialog-content .bs-dialog-card[data-verdict=wrong] {
  background: var(--c-dialog-warning-card-wrong);
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card[data-verdict=missed] {
  background: transparent;
  border: 2px dashed rgba(255, 255, 255, 0.7);
  padding: 12px 10px 14px;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-card[data-verdict=missed] .bs-dialog-card-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='21' height='21' viewBox='0 0 21 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='10.5' cy='10.5' r='9.3' stroke='white' stroke-width='1.7' stroke-dasharray='3.2 2.8'/%3E%3Cpath d='M9.26739 14.2197C8.93492 14.2197 8.62237 14.0902 8.38732 13.8551L5.83908 11.3069C5.53281 11.0006 5.53281 10.504 5.83908 10.1976C6.14536 9.89136 6.64198 9.89136 6.94826 10.1976L9.26732 12.5167L13.9342 7.84979C14.2405 7.5436 14.737 7.54352 15.0434 7.84979C15.3497 8.15607 15.3497 8.6527 15.0434 8.95905L10.1473 13.855C9.91241 14.0902 9.59986 14.2197 9.26739 14.2197Z' fill='white'/%3E%3C/svg%3E");
}

.qdnapro-popover .pop-dialog-content .bs-dialog-label {
  margin: 16px 0 8px;
  color: var(--c-text-on-action);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  text-align: left;
}

.qdnapro-popover .pop-dialog-content .bs-dialog-label:first-child {
  margin-top: 0;
}

.qdnapro-breadcrumb {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  color: var(--c-text-muted);
}

.qdnapro-breadcrumb > * {
  font-size: 16px;
  font-weight: 400;
  color: var(--c-text-muted);
  text-decoration: none;
}

.qdnapro-breadcrumb > a:hover {
  color: var(--c-purple-500);
  text-decoration: underline;
}

.qdnapro-breadcrumb .breadcrumb-current {
  color: var(--c-purple-500);
  font-weight: 500;
}

.qdnapro-breadcrumb .breadcrumb-sep {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  color: var(--c-text-muted);
  flex-shrink: 0;
}

.qdnapro-breadcrumb .breadcrumb-sep svg {
  width: 12px;
  height: 12px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

[data-theme=dark] .qdnapro-breadcrumb,
[data-theme=dark] .qdnapro-breadcrumb > * {
  color: #a6aab3;
}

[data-theme=dark] .qdnapro-breadcrumb > a:hover {
  color: #c0c5ff;
}

[data-theme=dark] .qdnapro-breadcrumb .breadcrumb-current {
  color: #c0c5ff;
}

[data-theme=dark] .qdnapro-breadcrumb .breadcrumb-sep {
  color: #a6aab3;
}

.qdnapro-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-sizing: border-box;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  --btn-focus-ring: var(--c-purple-500);
  --btn-focus-glow: rgba(70, 82, 243, 0.25);
  font-family: inter, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  text-decoration: none;
  white-space: nowrap;
  user-select: none;
  cursor: pointer;
  transition: background-color 120ms ease-out, border-color 120ms ease-out, color 120ms ease-out;
}

.qdnapro-button > qdnapro-number-indicator-badge[data-button-badge] {
  pointer-events: none;
}

.qdnapro-button.button-size-big {
  min-height: 56px;
  padding: 12px 16px;
}

.qdnapro-button.button-size-big.button-icon-only {
  width: 56px;
  min-width: 56px;
  padding: 0;
}

.qdnapro-button.button-size-small {
  min-height: 40px;
  padding: 8px 12px;
}

.qdnapro-button.button-size-small.button-icon-only {
  width: 40px;
  min-width: 40px;
  padding: 0;
}

.qdnapro-button.button-size-snug {
  min-height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 20px;
}

/* An icon in a button otherwise inherits its size from the font (.qdnapro-icon is
   1em wide), so a snug button drew a 13px glyph while the segment beside it in the
   same toolbar draws 16px — visibly smaller for no reason. A size should decide its
   own glyph, so `snug` says 16 out loud. Scoped to this size: nothing else moves.
   [Kim 10.08.2026] */
.qdnapro-button.button-size-snug > qdnapro-icon {
  width: 16px;
  height: 16px;
}

.qdnapro-button.button-size-snug.button-icon-only {
  width: 32px;
  min-width: 32px;
  padding: 0;
}

.qdnapro-button.button-size-compact {
  min-height: 28px;
  padding: 4px 10px;
  gap: 6px;
  font-size: 13px;
  line-height: 18px;
  border-radius: 8px;
}

.qdnapro-button.button-size-compact.button-icon-only {
  width: 28px;
  min-width: 28px;
  padding: 0;
}

.qdnapro-button.button-size-micro {
  min-height: 24px;
  padding: 3px 10px;
  gap: 4px;
  font-size: 11px;
  font-weight: 700;
  line-height: 16px;
  border-radius: 6px;
}

.qdnapro-button.button-size-micro.button-icon-only {
  width: 24px;
  min-width: 24px;
  padding: 0;
}

.qdnapro-button.button-size-touch {
  min-height: 44px;
  padding: 10px 14px;
}

.qdnapro-button.button-size-touch.button-icon-only {
  width: 44px;
  min-width: 44px;
  padding: 0;
}

.qdnapro-button.button-size-touch-lg {
  min-height: 48px;
  padding: 10px 16px;
}

.qdnapro-button.button-size-touch-lg.button-icon-only {
  width: 48px;
  min-width: 48px;
  padding: 0;
}

.qdnapro-button:focus {
  outline: none;
}

.qdnapro-button:focus-visible, .qdnapro-button.force-focus {
  outline: 2px solid var(--btn-focus-ring);
  outline-offset: var(--btn-focus-offset, -2px);
  box-shadow: 0 0 0 4px var(--btn-focus-glow);
}

.qdnapro-button.button-disabled:focus-visible, .qdnapro-button.button-disabled.force-focus {
  outline: none;
  box-shadow: none;
}

.qdnapro-button.button-primary-purple {
  background: var(--c-purple-500);
  color: var(--c-text-on-action);
  --btn-focus-ring: var(--c-purple-700);
  --btn-focus-glow: rgba(70, 82, 243, 0.40);
}

.qdnapro-button.button-primary-purple:focus-visible, .qdnapro-button.button-primary-purple.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--btn-focus-ring), 0 0 0 6px var(--btn-focus-glow);
}

.qdnapro-button.button-primary-purple:hover:not(.button-disabled) {
  background: var(--c-purple-600);
}

.qdnapro-button.button-primary-purple:active:not(.button-disabled) {
  background: var(--c-purple-700);
}

.qdnapro-button.button-primary-orange {
  background: var(--c-warn-yellow-600);
  color: var(--c-text-on-action);
  --btn-focus-ring: var(--c-tag-warning-text);
  --btn-focus-glow: rgba(239, 142, 2, 0.45);
}

.qdnapro-button.button-primary-orange:focus-visible, .qdnapro-button.button-primary-orange.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--btn-focus-ring), 0 0 0 6px var(--btn-focus-glow);
}

.qdnapro-button.button-primary-orange:hover:not(.button-disabled) {
  background: var(--c-signal-yellow-text);
}

.qdnapro-button.button-primary-orange:active:not(.button-disabled) {
  background: var(--c-tag-warning-text);
}

.qdnapro-button.button-subtle {
  background: transparent;
  color: var(--c-grey-950);
}

.qdnapro-button.button-subtle:hover:not(.button-disabled) {
  background: var(--c-grey-50);
}

.qdnapro-button.button-subtle:active:not(.button-disabled) {
  background: var(--c-border-card);
}

.qdnapro-button.button-subtle-muted {
  background: transparent;
  color: var(--c-text-muted, #6a6e9a);
}

.qdnapro-button.button-subtle-muted:hover:not(.button-disabled) {
  background: var(--c-grey-50);
  color: var(--c-grey-950);
}

.qdnapro-button.button-subtle-muted:active:not(.button-disabled) {
  background: var(--c-border-card);
  color: var(--c-grey-950);
}

.qdnapro-button.button-subtle-purple-bg {
  background: transparent;
  color: var(--c-purple-500);
}

.qdnapro-button.button-subtle-purple-bg:hover:not(.button-disabled) {
  background: var(--c-border-tree-bright);
}

.qdnapro-button.button-subtle-purple-bg:active:not(.button-disabled) {
  background: var(--c-sidebar-icon);
}

.qdnapro-button.button-secondary {
  background: var(--c-grey-50);
  color: var(--c-grey-950);
}

.qdnapro-button.button-secondary:hover:not(.button-disabled) {
  background: var(--c-grey-300);
}

.qdnapro-button.button-secondary:active:not(.button-disabled) {
  background: var(--c-grey-400);
}

.qdnapro-button.button-secondary.button-active {
  background: #e6e9ff;
  color: var(--c-purple-500);
}

.qdnapro-button.button-secondary.button-active:hover:not(.button-disabled) {
  background: var(--c-border-tree-bright);
}

.qdnapro-button.button-secondary.button-active:active:not(.button-disabled) {
  background: var(--c-sidebar-icon);
}

.qdnapro-button.button-secondary-outline {
  background: #e6e9ff;
  color: var(--c-purple-500);
  border-color: var(--c-purple-500);
}

.qdnapro-button.button-secondary-outline:hover:not(.button-disabled) {
  background: var(--c-border-tree-bright);
}

.qdnapro-button.button-secondary-outline:active:not(.button-disabled) {
  background: var(--c-sidebar-icon);
}

.qdnapro-button.button-secondary-purple {
  background: #e6e9ff;
  color: var(--c-purple-500);
}

.qdnapro-button.button-secondary-purple:hover:not(.button-disabled) {
  background: var(--c-border-tree-bright);
}

.qdnapro-button.button-secondary-purple:active:not(.button-disabled) {
  background: var(--c-sidebar-icon);
}

.qdnapro-button.button-secondary-white {
  background: var(--c-bg-card);
  color: var(--c-purple-500);
}

.qdnapro-button.button-secondary-white:hover:not(.button-disabled) {
  background: var(--c-border-tree-bright);
}

.qdnapro-button.button-secondary-white:active:not(.button-disabled) {
  background: var(--c-sidebar-icon);
}

.qdnapro-button.button-warning-red {
  background: var(--c-grey-50);
  color: var(--c-signal-red-text);
}

.qdnapro-button.button-warning-red:hover:not(.button-disabled) {
  background: var(--c-grey-300);
}

.qdnapro-button.button-warning-red:active:not(.button-disabled) {
  background: var(--c-grey-400);
}

.qdnapro-button.button-warning-red-white {
  background: var(--c-bg-card);
  color: var(--c-signal-red-text);
}

.qdnapro-button.button-warning-red-white:hover:not(.button-disabled) {
  background: var(--c-signal-red-soft);
}

.qdnapro-button.button-warning-red-white:active:not(.button-disabled) {
  background: var(--c-signal-red-bg);
}

.qdnapro-button.button-warning-red-tint {
  background: var(--c-signal-red-bg);
  color: var(--c-tag-critical-text);
  border-color: var(--c-chip-red-2-bg);
}

.qdnapro-button.button-warning-red-tint:hover:not(.button-disabled) {
  background: var(--c-chip-red-hover);
  border-color: var(--c-tag-critical-text);
}

.qdnapro-button.button-warning-red-tint:active:not(.button-disabled) {
  background: var(--c-chip-red-hover);
}

.qdnapro-button.button-warning-yellow-tint {
  background: var(--c-warning-bright-bg);
  color: var(--c-warning-bright-text);
  border-color: var(--c-warning-bright-border);
}

.qdnapro-button.button-warning-yellow-tint:hover:not(.button-disabled) {
  background: var(--c-chip-yellow-2-bg);
  border-color: var(--c-warn-yellow-500);
}

.qdnapro-button.button-warning-yellow-tint:active:not(.button-disabled) {
  background: var(--c-chip-yellow-2-bg);
}

.qdnapro-button.button-warning-red-subtle {
  background: transparent;
  color: var(--c-grey-950);
}

.qdnapro-button.button-warning-red-subtle:hover:not(.button-disabled) {
  background: var(--c-chip-red-hover);
}

.qdnapro-button.button-warning-red-subtle:active:not(.button-disabled) {
  background: var(--c-chip-red-hover);
}

.qdnapro-button.button-warning-yellow-subtle {
  background: transparent;
  color: var(--c-grey-950);
}

.qdnapro-button.button-warning-yellow-subtle:hover:not(.button-disabled) {
  background: var(--c-chip-yellow-2-bg);
}

.qdnapro-button.button-warning-yellow-subtle:active:not(.button-disabled) {
  background: var(--c-chip-yellow-2-bg);
}

.qdnapro-button.button-glass {
  background: rgba(255, 255, 255, 0.18);
  color: var(--c-text-on-action);
  border-color: rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.qdnapro-button.button-glass:hover:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.3);
  border-color: rgba(255, 255, 255, 0.4);
}

.qdnapro-button.button-glass:active:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.38);
}

/* on-purple / on-purple-solid — for a purple/dark surface (e.g. qdnapro-bottom-sheet's
   confirm variant), where the plain button-subtle's hardcoded dark text would be
   invisible and primary-purple itself would blend into a purple background.
   [Kim 14.07.2026] */
.qdnapro-button.button-on-purple {
  background: transparent;
  color: var(--c-text-on-action);
}

.qdnapro-button.button-on-purple:hover:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.14);
}

.qdnapro-button.button-on-purple:active:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.14);
}

/* on-purple-outline — on-purple met een witte omlijning: de zichtbare
   secundaire actie op een paars vlak (Pulse-eindscherm "Meer feest!",
   Kims design 16.09.2026). Zelfde hover/active-tint als on-purple. */
.qdnapro-button.button-on-purple-outline {
  background: transparent;
  color: var(--c-text-on-action);
  box-shadow: inset 0 0 0 1.5px var(--c-white-70);
}

.qdnapro-button.button-on-purple-outline:hover:not(.button-disabled),
.qdnapro-button.button-on-purple-outline:active:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.14);
}

.qdnapro-button.button-on-purple-solid {
  background: var(--c-purple-700);
  color: var(--c-text-on-action);
}

.qdnapro-button.button-on-purple-solid:hover:not(.button-disabled) {
  background: var(--c-purple-600);
}

.qdnapro-button.button-on-purple-solid:active:not(.button-disabled) {
  background: var(--c-purple-700);
}

/* on-danger / on-danger-solid — the pair for the RED dialog surface
   (qdnapro-bottom-sheet / -popover with tone="danger"). Its own type rather than the
   sheet overriding on-purple's colours: the button keeps owning its palette, which is
   the rule the dialog variants were built on.

   The surface carries white text, so the SECONDARY button is white on transparent,
   same as on-purple. The SOLID one takes the dialog's own button colour from the
   design tokens (--c-dialog-<tone>-button): Kim's exact colour set for the Pulse
   verdict sheets, 03.09.2026, shared by every toned dialog so they read as one family.
   Hover/pressed darken that ONE colour with a filter instead of stepping through a
   ramp - the set has exactly one button colour per tone and we do not invent a
   second. [Kim 18.08.2026, recoloured 03.09.2026] */
.qdnapro-button.button-on-danger {
  background: transparent;
  color: var(--c-text-on-action);
}

.qdnapro-button.button-on-danger:hover:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.16);
}

.qdnapro-button.button-on-danger:active:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.16);
}

.qdnapro-button.button-on-danger-solid {
  background: var(--c-dialog-danger-button);
  color: var(--c-text-on-action);
}

.qdnapro-button.button-on-danger-solid:hover:not(.button-disabled) {
  background: var(--c-dialog-danger-button);
  filter: brightness(0.92);
}

.qdnapro-button.button-on-danger-solid:active:not(.button-disabled) {
  background: var(--c-dialog-danger-button);
  filter: brightness(0.84);
}

/* on-success / on-success-solid — the same pair for the GREEN dialog surface
   (tone="success"). Structurally identical to the danger pair, and deliberately so: the
   two dialogs differ in hue and in nothing else. [Kim 18.08.2026] */
.qdnapro-button.button-on-success {
  background: transparent;
  color: var(--c-text-on-action);
}

.qdnapro-button.button-on-success:hover:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.16);
}

.qdnapro-button.button-on-success:active:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.16);
}

.qdnapro-button.button-on-success-solid {
  background: var(--c-dialog-success-button);
  color: var(--c-text-on-action);
}

.qdnapro-button.button-on-success-solid:hover:not(.button-disabled) {
  background: var(--c-dialog-success-button);
  filter: brightness(0.92);
}

.qdnapro-button.button-on-success-solid:active:not(.button-disabled) {
  background: var(--c-dialog-success-button);
  filter: brightness(0.84);
}

/* on-warning / on-warning-solid — the third pair, for the ORANGE dialog surface
   (tone="warning": the Pulse "Beetje goed, beetje fout" verdict). Same structure as the
   other two on purpose. [Kim 03.09.2026] */
.qdnapro-button.button-on-warning {
  background: transparent;
  color: var(--c-text-on-action);
}

.qdnapro-button.button-on-warning:hover:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.16);
}

.qdnapro-button.button-on-warning:active:not(.button-disabled) {
  background: rgba(255, 255, 255, 0.16);
}

.qdnapro-button.button-on-warning-solid {
  background: var(--c-dialog-warning-button);
  color: var(--c-text-on-action);
}

.qdnapro-button.button-on-warning-solid:hover:not(.button-disabled) {
  background: var(--c-dialog-warning-button);
  filter: brightness(0.92);
}

.qdnapro-button.button-on-warning-solid:active:not(.button-disabled) {
  background: var(--c-dialog-warning-button);
  filter: brightness(0.84);
}

.qdnapro-button.button-theme {
  --btn-theme-hover: var(--theme-btn-hover-color, color-mix(in srgb, var(--theme-btn-color, #40499a) 87%, #000));
  background: var(--theme-btn-color, #40499a);
  color: var(--theme-btn-text-color, #ffffff);
}

.qdnapro-button.button-theme:hover:not(.button-disabled) {
  background: var(--btn-theme-hover);
}

.qdnapro-button.button-theme:active:not(.button-disabled) {
  background: color-mix(in srgb, var(--btn-theme-hover) 90%, #000);
}

.qdnapro-button.button-theme-secondary {
  --btn-theme-surface: var(--theme-nav-color, color-mix(in srgb, var(--theme-btn-color, #40499a) 12%, #fff));
  --btn-theme-sec-hover: var(--theme-nav-hover-color, color-mix(in srgb, var(--btn-theme-surface) 92%, #000));
  background: var(--btn-theme-surface);
  color: var(--theme-nav-text-color, var(--theme-btn-color, #40499a));
}

.qdnapro-button.button-theme-secondary:hover:not(.button-disabled) {
  background: var(--btn-theme-sec-hover);
}

.qdnapro-button.button-theme-secondary:active:not(.button-disabled) {
  background: color-mix(in srgb, var(--btn-theme-sec-hover) 92%, #000);
}

.qdnapro-button.button-theme-subtle {
  background: transparent;
  color: var(--theme-nav-arrow-color, var(--theme-nav-text-color, var(--theme-btn-color, #40499a)));
}

.qdnapro-button.button-theme-subtle:hover:not(.button-disabled) {
  background: color-mix(in srgb, var(--theme-nav-color, var(--theme-btn-color, #40499a)) 14%, transparent);
}

.qdnapro-button.button-theme-subtle:active:not(.button-disabled) {
  background: color-mix(in srgb, var(--theme-nav-color, var(--theme-btn-color, #40499a)) 22%, transparent);
}

.qdnapro-button.button-theme-subtle.button-disabled {
  background: transparent !important;
}

.qdnapro-button.button-theme[data-force-state=hover]:not(.button-disabled) {
  background: var(--btn-theme-hover);
}

.qdnapro-button.button-theme[data-force-state=pressed]:not(.button-disabled) {
  background: color-mix(in srgb, var(--btn-theme-hover) 90%, #000);
}

.qdnapro-button.button-theme-secondary[data-force-state=hover]:not(.button-disabled) {
  background: var(--btn-theme-sec-hover);
}

.qdnapro-button.button-theme-secondary[data-force-state=pressed]:not(.button-disabled) {
  background: color-mix(in srgb, var(--btn-theme-sec-hover) 92%, #000);
}

.qdnapro-button.button-theme-subtle[data-force-state=hover]:not(.button-disabled) {
  background: color-mix(in srgb, var(--theme-nav-color, var(--theme-btn-color, #40499a)) 14%, transparent);
}

.qdnapro-button.button-theme-subtle[data-force-state=pressed]:not(.button-disabled) {
  background: color-mix(in srgb, var(--theme-nav-color, var(--theme-btn-color, #40499a)) 22%, transparent);
}

.qdnapro-button.button-disabled {
  background: var(--c-grey-50) !important;
  color: var(--c-text-disabled) !important;
  border-color: transparent !important;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-button.button-subtle.button-disabled {
  background: transparent !important;
}

.qdnapro-button.button-subtle-purple-bg.button-disabled {
  background: transparent !important;
  color: var(--c-text-disabled-pp) !important;
}

[data-bg-context=purple] .qdnapro-button.button-disabled {
  background: var(--c-border-tree-bright) !important;
}

[data-theme=dark] .qdnapro-button.button-primary-purple {
  background: #3842c2;
  color: #ffffff;
}

[data-theme=dark] .qdnapro-button.button-primary-purple:hover:not(.button-disabled) {
  background: #2a3192;
}

[data-theme=dark] .qdnapro-button.button-primary-orange {
  background: #ef8e02;
  color: #ffffff;
}

[data-theme=dark] .qdnapro-button.button-primary-orange:hover:not(.button-disabled) {
  background: #f2a535;
}

[data-theme=dark] .qdnapro-button.button-subtle {
  background: transparent;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-button.button-subtle:hover:not(.button-disabled) {
  background: #565b66;
}

[data-theme=dark] .qdnapro-button.button-subtle-purple-bg {
  background: transparent;
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-button.button-subtle-purple-bg:hover:not(.button-disabled) {
  background: #565b66;
}

[data-theme=dark] .qdnapro-button.button-secondary {
  background: #2e3036;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-button.button-secondary:hover:not(.button-disabled) {
  background: #40444d;
}

[data-theme=dark] .qdnapro-button.button-secondary.button-active {
  background: #3a3555;
  color: #a5acff;
}

[data-theme=dark] .qdnapro-button.button-secondary.button-active:hover:not(.button-disabled) {
  background: #4c4767;
}

[data-theme=dark] .qdnapro-button.button-secondary-outline {
  background: transparent;
  color: #f0f1f2;
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-button.button-secondary-outline:hover:not(.button-disabled) {
  background: #40444d;
  border-color: #666dae;
}

[data-theme=dark] .qdnapro-button.button-secondary-purple {
  background: #3a3555;
  color: #a5acff;
}

[data-theme=dark] .qdnapro-button.button-secondary-purple:hover:not(.button-disabled) {
  background: #4c4767;
}

[data-theme=dark] .qdnapro-button.button-secondary-white {
  background: #2e3036;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-button.button-secondary-white:hover:not(.button-disabled) {
  background: #40444d;
}

[data-theme=dark] .qdnapro-button.button-warning-red-white {
  background: #2e3036;
  color: #ec8585;
}

[data-theme=dark] .qdnapro-button.button-warning-red-white:hover:not(.button-disabled) {
  background: #40444d;
}

[data-theme=dark] .qdnapro-button.button-disabled {
  background: #40444d !important;
  color: #6b7280 !important;
}

[data-theme=dark] .qdnapro-button.button-subtle.button-disabled, [data-theme=dark] .qdnapro-button.button-subtle-purple-bg.button-disabled {
  background: transparent !important;
  color: #6b7280 !important;
}

.qdnapro-button.button-pill {
  border-radius: 999px;
  padding-left: 24px;
  padding-right: 24px;
}

.qdnapro-button.button-pill.button-icon-only {
  border-radius: 50%;
}

.qdnapro-button.button-pill.button-size-small {
  padding-left: 20px;
  padding-right: 20px;
}

.qdnapro-button.button-pill.button-size-touch {
  padding-left: 20px;
  padding-right: 20px;
}

[data-theme=dark] .qdnapro-button:focus-visible, [data-theme=dark] .qdnapro-button.force-focus {
  outline-color: #a5acff;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.4);
}

qdnapro-calendar-service-button {
  display: block;
  width: 100%;
  box-sizing: border-box;
}

qdnapro-calendar-service-button *,
qdnapro-calendar-service-button *::before,
qdnapro-calendar-service-button *::after {
  box-sizing: border-box;
}

.qdnapro-calendar-service-button .csb-inner {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--c-grey-100);
  border-radius: var(--r-2);
  background: var(--c-bg-card, #ffffff);
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  outline: none;
  transition: background 150ms ease, border-color 150ms ease;
}

.qdnapro-calendar-service-button .csb-icon-tile {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: var(--r-1);
  background: var(--csb-tint, var(--c-grey-50));
  color: var(--csb-accent, var(--c-grey-600));
}

.qdnapro-calendar-service-button .csb-icon-tile qdnapro-icon {
  width: 20px;
  height: 20px;
  color: inherit;
}

.qdnapro-calendar-service-button .csb-label {
  font-size: 13.5px;
  font-weight: 500;
  color: var(--c-grey-950, #0b0b0d);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-calendar-service-button .csb-inner:hover {
  background: var(--c-bg-subtle-hover, #f0f1f2);
  border-color: var(--c-grey-200, #d1d5db);
}

.qdnapro-calendar-service-button .csb-inner:active {
  background: var(--c-action-08, rgba(70, 82, 243, 0.08));
}

.qdnapro-calendar-service-button .csb-inner:focus-visible {
  box-shadow: 0 0 0 2px var(--c-purple-500, #40499a), 0 0 0 4px var(--c-action-25, rgba(70, 82, 243, 0.25));
}

.qdnapro-calendar-service-button--google .csb-icon-tile {
  --csb-accent: #4285f4;
  --csb-tint: rgba(66, 133, 244, 0.12);
}

.qdnapro-calendar-service-button--outlook .csb-icon-tile {
  --csb-accent: #0072c6;
  --csb-tint: rgba(0, 114, 198, 0.12);
}

.qdnapro-calendar-service-button--apple .csb-icon-tile {
  --csb-accent: #1c1b29;
  --csb-tint: rgba(28, 27, 41, 0.08);
}

[data-theme=dark] .qdnapro-calendar-service-button .csb-inner {
  background: var(--c-grey-800, #2e3036);
  border-color: var(--c-grey-700, #40444d);
}

[data-theme=dark] .qdnapro-calendar-service-button .csb-label {
  color: var(--c-grey-100, #e7e9ec);
}

[data-theme=dark] .qdnapro-calendar-service-button .csb-inner:hover {
  background: var(--c-grey-700, #40444d);
  border-color: var(--c-grey-600, #565b66);
}

.qdnapro-celebration {
  display: block;
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.qdnapro-celebration .qdnapro-celebration-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.qdnapro-party-scene {
  display: block;
}

.qdnapro-party-scene .ps-scene {
  position: relative;
  width: 100%;
  border-radius: 22px;
  overflow: hidden;
  background: radial-gradient(70% 80% at 50% 62%, var(--c-purple-500) 0%, var(--c-sidebar-bg) 55%, var(--c-purple-600) 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.qdnapro-party-scene .ps-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
}

.qdnapro-party-scene .ps-guest {
  opacity: 0;
  transform: translateY(2.2%) scale(0.975);
  transform-origin: 50% 90%;
  transition: opacity 0.5s ease, transform 0.55s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.qdnapro-party-scene .ps-guest.is-here {
  opacity: 1;
  transform: none;
}

.qdnapro-party-scene .ps-controls {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 14px;
}

.qdnapro-party-scene .ps-btn {
  position: relative;
  overflow: hidden;
  appearance: none;
  cursor: pointer;
  font-family: inherit;
  border: none;
  border-radius: 16px;
  padding: 16px 32px;
  min-width: 240px;
  background: var(--c-text-heading);
  color: var(--c-text-on-action);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.01em;
  box-shadow: 0 10px 26px -10px rgba(0, 0, 0, 0.5), inset 0 0 0 1px rgba(255, 255, 255, 0.1);
  transition: transform 0.1s ease;
}

.qdnapro-party-scene .ps-btn:active {
  transform: scale(0.97);
}

.qdnapro-party-scene .ps-fill {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0%;
  background: linear-gradient(90deg, var(--c-purple-500) 0%, var(--c-purple-400) 55%, var(--c-warn-yellow-600) 100%);
  z-index: 0;
}

.qdnapro-party-scene .ps-lbl {
  position: relative;
  z-index: 1;
  display: inline-block;
  white-space: nowrap;
}

.qdnapro-party-scene .ps-reset {
  appearance: none;
  cursor: pointer;
  font-family: inherit;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 14px;
  padding: 14px 20px;
  background: transparent;
  color: var(--c-bg-subtle-purple);
  font-size: 14px;
  font-weight: 600;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, border-color 0.16s;
}

.qdnapro-party-scene .ps-reset.is-shown {
  opacity: 1;
  pointer-events: auto;
}

.qdnapro-party-scene .ps-reset:hover {
  border-color: var(--c-warn-red-400);
  color: var(--c-warn-red-300);
}

.qdnapro-party-scene .ps-count {
  width: 100%;
  text-align: center;
  font-size: 13px;
  color: var(--c-text-disabled-pp);
  font-variant-numeric: tabular-nums;
}

.qdnapro-party-scene .ps-count b {
  color: var(--c-bg-subtle-purple);
  font-weight: 700;
}

.qdnapro-score-count {
  display: block;
  text-align: center;
}

.qdnapro-score-count .sc-num {
  font-size: 56px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--c-text-on-action);
  font-variant-numeric: tabular-nums;
  display: inline-block;
}

.qdnapro-score-count .sc-num.is-pop {
  animation: qdnapro-score-pop 0.42s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.qdnapro-score-count .sc-label {
  margin-top: 6px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
  color: rgba(255, 255, 255, 0.72);
}

@keyframes qdnapro-score-pop {
  0% {
    transform: scale(1);
  }
  45% {
    transform: scale(1.16);
  }
  100% {
    transform: scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-score-count .sc-num.is-pop {
    animation: none;
  }
}
.qdnapro-checkbox {
  --cb-size: 16px;
  --cb-border: var(--c-grey-300);
  --cb-bg: #ffffff;
  --cb-bg-hover: var(--c-grey-50);
  --cb-filled-bg: var(--c-action-500);
  --cb-filled-border: var(--c-action-500);
  --cb-mark: #ffffff;
  --cb-focus-ring: var(--c-purple-500);
  --cb-focus-glow: rgba(70, 82, 243, 0.25);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: var(--cb-size);
  height: var(--cb-size);
  flex-shrink: 0;
  border: 1px solid var(--cb-border);
  border-radius: 4px;
  background: var(--cb-bg);
  cursor: pointer;
  user-select: none;
  transition: background-color 120ms ease-out, border-color 120ms ease-out;
}

.qdnapro-checkbox .checkbox-mark {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 12px;
  height: 12px;
  color: var(--cb-mark);
  pointer-events: none;
  transform: scale(0);
  opacity: 0;
  transition: transform 220ms cubic-bezier(0.34, 1.35, 0.64, 1), opacity 140ms ease-out;
}

.qdnapro-checkbox .checkbox-mark svg {
  fill: currentColor;
  width: 100%;
  height: 100%;
}

.qdnapro-checkbox .checkbox-mark-dash {
  width: 8px;
  height: 2px;
  background: var(--cb-mark);
  border-radius: 1px;
}

.qdnapro-checkbox {
  position: relative;
}

.qdnapro-checkbox.checkbox-checked .checkbox-mark-check {
  transform: scale(1);
  opacity: 1;
}

.qdnapro-checkbox.checkbox-indeterminate .checkbox-mark-dash {
  transform: scale(1);
  opacity: 1;
}

.qdnapro-checkbox.checkbox-shape-square {
  border-radius: 4px;
}

.qdnapro-checkbox.checkbox-shape-round {
  border-radius: 50%;
}

.qdnapro-checkbox.checkbox-size-touch {
  --cb-size: 44px;
  border-width: 2px;
}

.qdnapro-checkbox.checkbox-size-touch.checkbox-shape-square {
  border-radius: 8px;
}

.qdnapro-checkbox.checkbox-size-touch .checkbox-mark {
  width: 32px;
  height: 32px;
}

.qdnapro-checkbox.checkbox-size-touch .checkbox-mark-dash {
  width: 22px;
  height: 5px;
  border-radius: 2px;
}

.qdnapro-checkbox.checkbox-size-touch-sm {
  --cb-size: 28px;
}

.qdnapro-checkbox.checkbox-size-touch-sm.checkbox-shape-square {
  border-radius: 6px;
}

.qdnapro-checkbox.checkbox-size-touch-sm .checkbox-mark {
  width: 20px;
  height: 20px;
}

.qdnapro-checkbox.checkbox-size-touch-sm .checkbox-mark-dash {
  width: 14px;
  height: 3px;
  border-radius: 1.5px;
}

.qdnapro-checkbox.checkbox-checked, .qdnapro-checkbox.checkbox-indeterminate {
  background: var(--cb-filled-bg);
  border-color: var(--cb-filled-border);
}

.qdnapro-checkbox:hover:not(.checkbox-disabled):not(.checkbox-checked):not(.checkbox-indeterminate) {
  background: var(--cb-bg-hover);
}

.qdnapro-checkbox:active:not(.checkbox-disabled) {
  background-image: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15));
}

.qdnapro-checkbox:focus {
  outline: none;
}

.qdnapro-checkbox:focus-visible, .qdnapro-checkbox.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--cb-focus-ring), 0 0 0 6px var(--cb-focus-glow);
}

.qdnapro-checkbox.force-hover:not(.checkbox-disabled):not(.checkbox-checked):not(.checkbox-indeterminate) {
  background: var(--cb-bg-hover);
}

.qdnapro-checkbox.force-pressed:not(.checkbox-disabled) {
  background-image: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15));
}

.qdnapro-checkbox.checkbox-state-error {
  --cb-border: var(--c-signal-red-text);
  --cb-filled-bg: var(--c-warn-red-400);
  --cb-filled-border: var(--c-signal-red-text);
  --cb-focus-ring: var(--c-signal-red-text);
  --cb-focus-glow: rgba(198, 90, 90, 0.25);
}

.qdnapro-checkbox.checkbox-state-success {
  --cb-border: var(--c-signal-green-text);
  --cb-filled-bg: var(--c-chip-green-2-hover);
  --cb-filled-border: var(--c-signal-green-text);
  --cb-focus-ring: var(--c-signal-green-text);
  --cb-focus-glow: rgba(66, 139, 110, 0.25);
}

.qdnapro-checkbox.checkbox-disabled {
  --cb-border: var(--c-grey-300);
  --cb-bg: var(--c-grey-50);
  --cb-filled-bg: var(--c-grey-50);
  --cb-filled-border: var(--c-grey-300);
  --cb-mark: var(--c-text-disabled);
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

[data-theme=dark] .qdnapro-checkbox {
  --cb-border: #565b66;
  --cb-bg: #2e3036;
  --cb-bg-hover: #40444d;
  --cb-filled-bg: #4652f3;
  --cb-filled-border: #4652f3;
  --cb-mark: #ffffff;
  --cb-focus-ring: #a5acff;
  --cb-focus-glow: rgba(70, 82, 243, 0.4);
}

[data-theme=dark] .qdnapro-checkbox.checkbox-state-error {
  --cb-border: #c65a5a;
  --cb-filled-bg: #c65a5a;
  --cb-filled-border: #c65a5a;
  --cb-focus-ring: #e89090;
}

[data-theme=dark] .qdnapro-checkbox.checkbox-state-success {
  --cb-border: #428b6e;
  --cb-filled-bg: #428b6e;
  --cb-filled-border: #428b6e;
  --cb-focus-ring: #7ccfa8;
}

[data-theme=dark] .qdnapro-checkbox.checkbox-disabled {
  --cb-border: #565b66;
  --cb-bg: #40444d;
  --cb-filled-bg: #40444d;
  --cb-filled-border: #565b66;
  --cb-mark: #6b7280;
}

/* === theme: glass — added 2026-06-08 ===
   Translucent checkbox for a dark / coloured surface (login). Activate via
   data-theme="glass" on an ancestor; lila focus ring to match the inputs. */
[data-theme=glass] .qdnapro-checkbox {
  --cb-border: rgba(255, 255, 255, 0.45);
  --cb-bg: rgba(255, 255, 255, 0.15);
  --cb-bg-hover: rgba(255, 255, 255, 0.25);
  /* Checked = solid white box with a dark check, so it stands out on the
     dark surface (a tinted fill blends into the indigo - too low contrast). */
  --cb-filled-bg: #ffffff;
  --cb-filled-border: #ffffff;
  --cb-mark: #26215c;
  --cb-focus-ring: #9a8fff;
  --cb-focus-glow: rgba(154, 143, 255, 0.35);
}

[data-theme=glass] .qdnapro-checkbox.checkbox-disabled {
  --cb-border: rgba(255, 255, 255, 0.25);
  --cb-bg: rgba(255, 255, 255, 0.08);
  --cb-filled-bg: rgba(255, 255, 255, 0.08);
  --cb-filled-border: rgba(255, 255, 255, 0.25);
  --cb-mark: rgba(255, 255, 255, 0.4);
}

/* ============================================================
 * qdnapro-color-picker
 * Pastel swatch picker. Palette matches the tasklist-card
 * .tlc-color-* tints exactly so the swatch == the card tint.
 * ============================================================ */
.qdnapro-color-picker {
  display: block;
  box-sizing: border-box;
}

.qdnapro-color-picker *,
.qdnapro-color-picker *::before,
.qdnapro-color-picker *::after {
  box-sizing: border-box;
}

.qdnapro-color-picker .qcp-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.qdnapro-color-picker .qcp-swatch {
  position: relative;
  width: 36px;
  height: 36px;
  padding: 0;
  border-radius: 10px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: var(--qcp-bg, #eef0f2);
  cursor: pointer;
  transition: transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease;
}

.qdnapro-color-picker .qcp-swatch:hover {
  transform: translateY(-1px);
}

.qdnapro-color-picker .qcp-swatch:active {
  transform: translateY(0);
}

.qdnapro-color-picker .qcp-swatch:focus-visible {
  outline: none;
  border-color: var(--c-purple-500);
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.2);
}

.qdnapro-color-picker .qcp-swatch.qcp-swatch-selected {
  border-color: var(--c-purple-500);
  box-shadow: 0 0 0 2px var(--c-purple-500), 0 0 0 5px rgba(70, 82, 243, 0.18);
}

/* Variant "soft": LIGHT-purple selection ring (same hue as the focus glow)
   instead of the heavy dark var(--c-purple-500) ring. The checkmark still marks the pick.
   Looks much better on dark / saturated swatches. [Kim 2026-06-22] */
.qdnapro-color-picker.qcp-variant-soft .qcp-swatch.qcp-swatch-selected {
  border-color: rgba(70, 82, 243, 0.45);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.22);
}

/* Check mark - visible only on the selected swatch. */
.qdnapro-color-picker .qcp-check {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
}

.qdnapro-color-picker .qcp-swatch-selected .qcp-check {
  opacity: 1;
}

.qdnapro-color-picker .qcp-check::after {
  content: "";
  width: 10px;
  height: 6px;
  /* --qcp-check is set per swatch by the JS contrast detector:
     white on dark swatches, brand indigo on light ones. */
  border-left: 2px solid var(--qcp-check, #40499a);
  border-bottom: 2px solid var(--qcp-check, #40499a);
  transform: rotate(-45deg) translateY(-1px);
}

/* Palette - matches the .tlc-color-* tasklist-card tints exactly. */
.qdnapro-color-picker .qcp-swatch--grey {
  --qcp-bg: var(--c-grey-50);
}

.qdnapro-color-picker .qcp-swatch--red {
  --qcp-bg: var(--c-signal-red-bg);
}

.qdnapro-color-picker .qcp-swatch--yellow {
  --qcp-bg: var(--c-chip-yellow-bg);
}

.qdnapro-color-picker .qcp-swatch--green {
  --qcp-bg: var(--c-chip-green-bg);
}

.qdnapro-color-picker .qcp-swatch--blue {
  --qcp-bg: var(--c-signal-blue-bg);
}

.qdnapro-color-picker .qcp-swatch--bright-blue {
  --qcp-bg: var(--c-chip-bright-blue-2-bg);
}

.qdnapro-color-picker .qcp-swatch--pink {
  --qcp-bg: var(--c-signal-pink-bg);
}

.qdnapro-color-picker .qcp-swatch--purple {
  --qcp-bg: var(--c-chip-purple-bg);
}

.qdnapro-color-picker.qcp-disabled {
  opacity: 0.55;
  pointer-events: none;
}

/* Semantic palette (floweditor per-option appearance modal, 12.07.2026):
   standaard / positive / warning / negative / neutral_alt — the closed
   5-value set the OptionAppearanceOverlay.vue datamodel uses. Tints come
   from the shared signal design tokens (same tokens qdnapro-answer-button's
   --positive/--warning/--negative/--neutral_alt variants already use) so a
   picked colour reads identically in the picker and in the live preview.
   "standaard" has no signal token (it maps to '' in the datamodel) — a
   light brand-purple neutral (--c-purple-50) fits the "neutraal
   purper/grijs" ask better than plain grey in this purple-branded product. */
.qdnapro-color-picker .qcp-swatch--standaard {
  --qcp-bg: var(--c-purple-50, #e6e9ff);
}

.qdnapro-color-picker .qcp-swatch--positive {
  --qcp-bg: var(--c-signal-green-bg, #c5f5e2);
}

.qdnapro-color-picker .qcp-swatch--warning {
  --qcp-bg: var(--c-signal-yellow-bg, #feedb8);
}

.qdnapro-color-picker .qcp-swatch--negative {
  --qcp-bg: var(--c-signal-red-bg, #fee3e3);
}

.qdnapro-color-picker .qcp-swatch--neutral_alt {
  --qcp-bg: var(--c-signal-blue-bg, #e6eff9);
}

.qdnapro-color-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.qdnapro-color-panel *,
.qdnapro-color-panel *::before,
.qdnapro-color-panel *::after {
  box-sizing: border-box;
}

.qcp2-auto {
  display: block;
  width: 100%;
  padding: 10px 14px;
  border-radius: 8px;
  border: 1px solid var(--c-border-card, #e1e3e6);
  background: var(--c-bg-card, #ffffff);
  color: var(--c-text-heading, #1a1f4d);
  font: inherit;
  font-weight: 600;
  text-align: center;
  cursor: pointer;
  transition: border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
}

.qcp2-auto:hover {
  background: var(--c-bg-card-hover, #f7f8fa);
}

.qcp2-auto:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px var(--focus-glow);
}

.qcp2-auto.qcp2-auto-selected {
  border-color: var(--c-purple-500, #40499a);
  background: var(--c-purple-50, #e6e9ff);
  box-shadow: 0 0 0 1px var(--c-purple-500, #40499a);
  color: var(--c-purple-700, #2a3268);
}

.qcp2-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}

.qcp2-swatch {
  position: relative;
  width: 100%;
  aspect-ratio: 1/1;
  padding: 0;
  border-radius: 8px;
  border: 1px solid var(--c-border-soft, rgba(0, 0, 0, 0.07));
  background: var(--qcp2-bg, #eef0f2);
  cursor: pointer;
  transition: transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease;
}

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

.qcp2-swatch:active {
  transform: translateY(0);
}

.qcp2-swatch:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px var(--focus-glow);
}

.qcp2-swatch.qcp2-swatch-selected {
  border-color: var(--c-purple-500, #40499a);
  box-shadow: 0 0 0 2px var(--c-purple-500, #40499a);
}

.qcp2-check {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
}

.qcp2-swatch-selected .qcp2-check {
  opacity: 1;
}

.qcp2-check::after {
  content: "";
  width: 9px;
  height: 5px;
  border-left: 2px solid var(--qcp2-check, var(--c-purple-500, #40499a));
  border-bottom: 2px solid var(--qcp2-check, var(--c-purple-500, #40499a));
  transform: rotate(-45deg) translateY(-1px);
}

.qcp2-more {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--c-text-body, #0b0b0d);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease;
}

.qcp2-more:hover {
  background: var(--c-bg-subtle-hover, var(--c-grey-50, #f0f1f2));
}

.qcp2-more:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px var(--focus-glow);
}

.qcp2-more.qcp2-more-selected {
  border-color: var(--c-purple-500, #40499a);
}

.qcp2-more-swatch {
  flex: none;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  border: 1px solid var(--c-border-soft, rgba(0, 0, 0, 0.07));
  background: var(--qcp2-more-bg, transparent);
}

.qcp2-more:not(.qcp2-more-selected) .qcp2-more-swatch {
  background: conic-gradient(from 0deg, var(--c-warn-red-500, #dc2626), var(--c-warn-orange-500, #ea580c), var(--c-warn-yellow-500, #fbbf24), var(--c-success-500, #12805e), var(--c-action-500, #4652f3), var(--c-purple-500, #40499a), var(--c-warn-red-500, #dc2626));
}

.qcp2-more-label {
  flex: auto;
}

.qcp2-wheel-panel {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.qcp2-wheel-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text-heading, #1a1f4d);
}

.qcp2-wheel-input {
  width: 100%;
  height: 44px;
  padding: 0;
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: 8px;
  background: none;
  cursor: pointer;
}

.qcp2-wheel-input:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px var(--focus-glow);
}

.qcp2-wheel-input::-webkit-color-swatch-wrapper {
  padding: 0;
  border-radius: 7px;
}

.qcp2-wheel-input::-webkit-color-swatch {
  border: none;
  border-radius: 7px;
}

.qcp2-wheel-input::-moz-color-swatch {
  border: none;
  border-radius: 7px;
}

.qdnapro-color-panel.qcp2-disabled {
  opacity: 0.55;
  pointer-events: none;
}

.qdnapro-date-picker {
  --date-picker-day: 32px;
  display: block;
  box-sizing: border-box;
  min-width: 232px;
  background: transparent;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  user-select: none;
}

.qdnapro-date-picker.qdnapro-date-picker--panel {
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 8px;
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.15), 0 8px 12px 6px rgba(0, 0, 0, 0.075);
  padding: 10px 12px;
}

.qdnapro-date-picker__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  margin-bottom: 6px;
}

.qdnapro-date-picker__nav {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: none;
}

.qdnapro-date-picker__label {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: var(--c-text-heading, #1a1f4d);
}

.qdnapro-date-picker__weekdays,
.qdnapro-date-picker__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  justify-items: center;
  gap: 2px;
}

.qdnapro-date-picker__weekdays span {
  font-size: 11px;
  line-height: 16px;
  text-align: center;
  color: var(--c-grey-500, #6b7280);
  padding: 2px 0 4px;
}

.qdnapro-date-picker__day {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--date-picker-day);
  height: var(--date-picker-day);
  border: 0;
  border-radius: 50%;
  padding: 0;
  background: transparent;
  font: inherit;
  font-size: 13px;
  line-height: 1;
  color: var(--c-text-body, #0b0b0d);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 0.1s ease;
}

.qdnapro-date-picker__day:not(.is-disabled):not(.is-selected):hover,
.qdnapro-date-picker__day.force-hover {
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-date-picker__day:not(.is-disabled):not(.is-selected):active,
.qdnapro-date-picker__day.force-pressed {
  background: var(--c-grey-100, #e7e9ec);
}

.qdnapro-date-picker__day.is-today {
  font-weight: 700;
  color: var(--c-brand-purple, #40499a);
}

.qdnapro-date-picker__day.is-selected {
  background: var(--c-purple-highlight, #4652f3);
  color: var(--c-text-on-action, #ffffff);
  font-weight: 600;
}

.qdnapro-date-picker__day.is-selected:not(.is-disabled):hover,
.qdnapro-date-picker__day.is-selected.force-hover {
  background: var(--c-action-600, #3540d6);
}

.qdnapro-date-picker__day.is-selected:not(.is-disabled):active,
.qdnapro-date-picker__day.is-selected.force-pressed {
  background: var(--c-action-700, #2a36b8);
}

.qdnapro-date-picker__day.is-muted {
  color: var(--c-grey-400, #a6aab3);
}

.qdnapro-date-picker__day.is-disabled {
  color: var(--c-text-disabled, #898e99);
  cursor: default;
}

.qdnapro-date-picker__day:focus {
  outline: none;
}

.qdnapro-date-picker__day:focus-visible,
.qdnapro-date-picker__day.force-focus {
  outline: 2px solid var(--focus-ring, #40499a);
  outline-offset: 1px;
  box-shadow: 0 0 0 5px var(--focus-glow, rgba(70, 82, 243, 0.25));
}

.qdnapro-date-picker__cell {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  justify-self: stretch;
  height: var(--date-picker-day);
}

.qdnapro-date-picker__cell.is-band::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 0;
  pointer-events: none;
}

.qdnapro-date-picker__cell.is-band-ghost::before {
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-date-picker__cell.is-band-fill::before {
  background: var(--c-action-12, rgba(70, 82, 243, 0.12));
}

.qdnapro-date-picker__cell.is-band-round-start::before {
  border-top-left-radius: calc(var(--date-picker-day) / 2);
  border-bottom-left-radius: calc(var(--date-picker-day) / 2);
}

.qdnapro-date-picker__cell.is-band-round-end::before {
  border-top-right-radius: calc(var(--date-picker-day) / 2);
  border-bottom-right-radius: calc(var(--date-picker-day) / 2);
}

.qdnapro-date-picker__cell.is-band-bleed-start::before {
  left: -1px;
}

.qdnapro-date-picker__cell.is-band-bleed-end::before {
  right: -1px;
}

.qdnapro-date-picker__cell.is-band-fill .qdnapro-date-picker__day:not(.is-selected):not(.is-disabled) {
  color: var(--c-brand-purple, #40499a);
  font-weight: 600;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-date-picker__day {
    transition: none;
  }
}
.qdnapro-date-picker[touch] {
  --date-picker-day: 44px;
}

.qdnapro-date-picker[touch] .qdnapro-date-picker__weekdays span {
  font-size: 12px;
}

.qdnapro-date-picker[touch] .qdnapro-date-picker__day {
  font-size: 15px;
}

/* compiled from _divider.scss */
.qdnapro-divider {
  display: block;
  flex-shrink: 0;
  pointer-events: none;
  background: var(--c-border-tree);
  border: 0;
  margin: 0;
  padding: 0;
}

.qdnapro-divider.divider-horizontal {
  width: 100%;
  height: 1px;
}

.qdnapro-divider.divider-vertical {
  width: 1px;
  height: 100%;
  align-self: stretch;
}

.qdnapro-divider.divider-vertical.divider-fixed-length {
  align-self: center;
}

.qdnapro-divider.divider-color-neutral {
  background: var(--c-border-tree);
}

.qdnapro-divider.divider-color-subtle {
  background: rgba(0, 0, 0, 0.1);
}

[data-theme=dark] .qdnapro-divider.divider-color-neutral,
[data-theme-dark] .qdnapro-divider.divider-color-neutral {
  background: rgba(255, 255, 255, 0.12);
}

[data-theme=dark] .qdnapro-divider.divider-color-subtle,
[data-theme-dark] .qdnapro-divider.divider-color-subtle {
  background: rgba(255, 255, 255, 0.08);
}

.qdnapro-document-viewer {
  position: fixed;
  inset: 0;
  z-index: 9500;
  display: flex;
  flex-direction: column;
  background: var(--c-grey-900);
  color: var(--c-bg-subtle-purple);
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  font-family: var(--ff, "Inter", system-ui, -apple-system, sans-serif);
  transition: transform 180ms ease, opacity 180ms ease;
}
.qdnapro-document-viewer[hidden] {
  display: none;
}
.qdnapro-document-viewer .qdv-topbar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  padding: 8px 10px;
  padding-top: calc(8px + env(safe-area-inset-top, 0px));
  padding-left: calc(10px + env(safe-area-inset-left, 0px));
  padding-right: calc(10px + env(safe-area-inset-right, 0px));
  background: var(--c-text-heading);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  transition: opacity 200ms ease, transform 200ms ease;
}
.qdnapro-document-viewer .qdv-fname {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.95rem;
  font-weight: 600;
}
.qdnapro-document-viewer .qdv-fname qdnapro-file-icon {
  flex: 0 0 auto;
}
.qdnapro-document-viewer .qdv-fname-text {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.qdnapro-document-viewer .qdv-tools {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 2px;
}
.qdnapro-document-viewer .qdv-tools qdnapro-icon-btn {
  color: var(--c-border-tree-bright);
}
.qdnapro-document-viewer .qdv-tools qdnapro-icon-btn[hidden] {
  display: none;
}
.qdnapro-document-viewer .qdv-close {
  color: var(--c-border-tree-bright);
}
.qdnapro-document-viewer .qdnapro-icon-btn.icon-btn-subtle:hover:not(.icon-btn-disabled) {
  background-color: rgba(255, 255, 255, 0.08);
}
.qdnapro-document-viewer .qdnapro-icon-btn.icon-btn-subtle:active:not(.icon-btn-disabled) {
  background-image: none;
  background-color: rgba(255, 255, 255, 0.14);
}
.qdnapro-document-viewer .qdv-stage {
  flex: 1 1 auto;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.qdnapro-document-viewer .qdv-imgwrap {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 180ms ease;
  touch-action: none;
}
.qdnapro-document-viewer .qdv-imgwrap.is-loaded {
  opacity: 1;
}
.qdnapro-document-viewer .qdv-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transform-origin: center center;
  will-change: transform;
  -webkit-user-drag: none;
}
.qdnapro-document-viewer .qdv-idoc {
  position: absolute;
  inset: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  padding: 12px 0 calc(24px + env(safe-area-inset-bottom, 0px));
  box-sizing: border-box;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.28) transparent;
}
.qdnapro-document-viewer .qdv-idoc::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.qdnapro-document-viewer .qdv-idoc::-webkit-scrollbar-track {
  background: transparent;
}
.qdnapro-document-viewer .qdv-idoc::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.22);
  border-radius: 8px;
}
@media (max-width: 640px) {
  .qdnapro-document-viewer .qdv-idoc {
    padding-top: 0;
  }
}
.qdnapro-document-viewer .qdv-pdf {
  position: absolute;
  inset: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  display: flex;
  justify-content: center;
  overflow-anchor: none;
}
.qdnapro-document-viewer .qdv-pdf.is-zoomed {
  touch-action: pan-x pan-y;
}
.qdnapro-document-viewer .qdv-pdf-pages {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 12px 0 calc(12px + env(safe-area-inset-bottom, 0px));
  transform-origin: top center;
  will-change: transform;
}
.qdnapro-document-viewer .qdv-page {
  position: relative;
  background: var(--c-bg-card);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
  max-width: 100%;
  flex: 0 0 auto;
}
.qdnapro-document-viewer .qdv-page canvas {
  display: block;
  width: 100%;
  height: 100%;
}
.qdnapro-document-viewer .qdv-page:not(.is-rendered)::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, var(--c-bg-card-hover) 30%, var(--c-border-soft-2) 50%, var(--c-bg-card-hover) 70%);
  background-size: 200% 100%;
  animation: qdv-shimmer 1.2s ease-in-out infinite;
}
.qdnapro-document-viewer .qdv-pagepill {
  position: absolute;
  left: 50%;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  background: rgba(20, 22, 40, 0.82);
  color: var(--c-bg-subtle-purple);
  font-size: 0.8rem;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 999px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 220ms ease;
  z-index: 3;
}
.qdnapro-document-viewer .qdv-pagepill.is-visible {
  opacity: 1;
}
.qdnapro-document-viewer.qdv-chrome-hidden .qdv-pagepill {
  bottom: 16px;
}
.qdnapro-document-viewer .qdv-textlayer {
  position: absolute;
  inset: 0;
  overflow: hidden;
  line-height: 1;
  text-align: initial;
  opacity: 1;
  forced-color-adjust: none;
}
.qdnapro-document-viewer .qdv-textlayer span,
.qdnapro-document-viewer .qdv-textlayer br {
  color: transparent;
  position: absolute;
  white-space: pre;
  cursor: text;
  transform-origin: 0 0;
}
.qdnapro-document-viewer .qdv-textlayer ::selection {
  background: rgba(64, 73, 154, 0.35);
}
.qdnapro-document-viewer .qdv-textlayer .qdv-hl {
  background: rgba(255, 213, 0, 0.45);
  border-radius: 2px;
}
.qdnapro-document-viewer .qdv-textlayer .qdv-hl-current {
  background: rgba(255, 145, 0, 0.7);
}
.qdnapro-document-viewer .qdv-searchbar {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: calc(8px + env(safe-area-inset-top, 0px));
  z-index: 4;
  display: none;
  align-items: center;
  gap: 8px;
  width: min(560px, 100% - 24px);
}
.qdnapro-document-viewer.qdv-searching .qdv-searchbar {
  display: flex;
}
.qdnapro-document-viewer.qdv-searching .qdv-topbar {
  opacity: 0;
  pointer-events: none;
}
.qdnapro-document-viewer .qdv-search-input {
  flex: 1 1 auto;
  min-width: 0;
}
.qdnapro-document-viewer .qdv-search-count {
  flex: 0 0 auto;
  font-size: 0.78rem;
  color: var(--c-bg-subtle-purple);
  min-width: 46px;
  padding: 5px 10px;
  text-align: center;
  background: var(--c-chip-bright-blue-text);
  border-radius: 999px;
  font-variant-numeric: tabular-nums;
}
.qdnapro-document-viewer .qdv-search-count:empty {
  display: none;
}
.qdnapro-document-viewer .qdv-searchbar qdnapro-icon-btn {
  flex: 0 0 auto;
}
.qdnapro-document-viewer .qdv-media {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.qdnapro-document-viewer .qdv-video {
  max-width: 100%;
  max-height: 100%;
  outline: none;
  background: var(--c-grey-950);
}
.qdnapro-document-viewer .qdv-audio {
  width: 100%;
  max-width: 320px;
  margin-top: 8px;
}
.qdnapro-document-viewer .qdv-loading {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.qdnapro-document-viewer .qdv-thumb {
  position: absolute;
  max-width: 90%;
  max-height: 90%;
  object-fit: contain;
  filter: blur(14px);
  opacity: 0.5;
  transform: scale(1.02);
}
.qdnapro-document-viewer .qdv-spinner {
  position: relative;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, 0.22);
  border-top-color: var(--c-bg-subtle-purple);
  animation: qdv-spin 0.8s linear infinite;
}
.qdnapro-document-viewer .qdv-card {
  max-width: 320px;
  margin: 0 auto;
  padding: 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.qdnapro-document-viewer .qdv-card-icon {
  --qdnapro-icon-size: 44px;
  width: 44px;
  height: 44px;
  color: var(--c-text-disabled-pp);
}
.qdnapro-document-viewer .qdv-card-fileicon {
  margin-bottom: 4px;
}
.qdnapro-document-viewer .qdv-card-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--c-bg-subtle-purple);
}
.qdnapro-document-viewer .qdv-card-text {
  font-size: 0.875rem;
  line-height: 1.4;
  color: var(--c-sidebar-icon);
}
.qdnapro-document-viewer .qdv-card qdnapro-button {
  margin-top: 6px;
}
.qdnapro-document-viewer .qdv-fb {
  position: absolute;
  left: calc(16px + env(safe-area-inset-left, 0px));
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 4px 6px 4px 14px;
  background: rgba(29, 32, 56, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.38), 0 1px 2px rgba(0, 0, 0, 0.4);
  transition: opacity 200ms ease, transform 200ms ease;
}
.qdnapro-document-viewer .qdv-fb[hidden] {
  display: none;
}
.qdnapro-document-viewer .qdv-fb-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--c-border-tree-bright);
  white-space: nowrap;
  padding-right: 4px;
}
.qdnapro-document-viewer .qdv-fb-label[hidden] {
  display: none;
}
.qdnapro-document-viewer .qdv-fb qdnapro-icon-btn {
  color: var(--c-border-tree-bright);
  border-radius: 50%;
}
.qdnapro-document-viewer .qdv-fb qdnapro-icon-btn.is-active {
  background: rgba(255, 255, 255, 0.16);
  color: var(--c-text-on-action);
}
.qdnapro-document-viewer .qdv-fb-note {
  position: absolute;
  left: calc(16px + env(safe-area-inset-left, 0px));
  bottom: calc(72px + env(safe-area-inset-bottom, 0px));
  right: calc(16px + env(safe-area-inset-right, 0px));
  max-width: 380px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 14px 12px;
  background: var(--c-text-heading);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
}
.qdnapro-document-viewer .qdv-fb-note[hidden] {
  display: none;
}
.qdnapro-document-viewer .qdv-fb-note-head {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--c-bg-subtle-purple);
  line-height: 1.35;
}
.qdnapro-document-viewer .qdv-fb-note-head qdnapro-icon {
  flex: 0 0 auto;
  color: var(--c-text-disabled-pp);
  margin-top: 1px;
}
.qdnapro-document-viewer .qdv-fb-note-sub {
  margin: -4px 0 0;
  font-size: 0.78rem;
  color: var(--c-text-disabled-pp);
  line-height: 1.4;
}
.qdnapro-document-viewer .qdv-fb-note-input {
  width: 100%;
  box-sizing: border-box;
  resize: none;
  background: var(--c-chip-bright-blue-text);
  color: var(--c-bg-subtle-purple);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  padding: 8px 10px;
  font: inherit;
  font-size: 0.85rem;
  line-height: 1.4;
  outline: none;
}
.qdnapro-document-viewer .qdv-fb-note-input::placeholder {
  color: var(--c-text-disabled-pp);
}
.qdnapro-document-viewer .qdv-fb-note-input:focus {
  border-color: rgba(255, 255, 255, 0.32);
}
.qdnapro-document-viewer .qdv-fb-note-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
.qdnapro-document-viewer .qdv-fb-note-actions qdnapro-button.button-subtle {
  color: var(--c-border-tree-bright);
}
.qdnapro-document-viewer.qdv-chrome-hidden .qdv-topbar {
  opacity: 0;
  transform: translateY(-100%);
  pointer-events: none;
}
.qdnapro-document-viewer.qdv-chrome-hidden .qdv-fb {
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-document-viewer {
    transition: none;
  }
  .qdnapro-document-viewer .qdv-topbar, .qdnapro-document-viewer .qdv-fb {
    transition: none;
  }
  .qdnapro-document-viewer .qdv-spinner {
    animation-duration: 1.6s;
  }
}

@keyframes qdv-spin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes qdv-shimmer {
  from {
    background-position: 200% 0;
  }
  to {
    background-position: -200% 0;
  }
}
:root.qdv-open,
:root.qdv-open body {
  overflow: hidden;
}

[data-theme=dark] .qdnapro-document-viewer .qdnapro-icon-btn.icon-btn-subtle:hover:not(.icon-btn-disabled) {
  background-color: rgba(255, 255, 255, 0.08);
}
[data-theme=dark] .qdnapro-document-viewer .qdnapro-icon-btn.icon-btn-subtle:active:not(.icon-btn-disabled) {
  background-image: none;
  background-color: rgba(255, 255, 255, 0.14);
}

:root.qdv-open .qdnapro-popover,
:root.qdv-open .qdnapro-bottom-sheet {
  z-index: 9600;
}

.text-h1 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 60px;
  line-height: 72px;
}

.text-h2 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 40px;
  line-height: 56px;
}

.text-h3 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 32px;
  line-height: 48px;
}

.text-h4 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 28px;
  line-height: 44px;
}

.text-h5 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 24px;
  line-height: 36px;
}

.text-h6 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 20px;
  line-height: 24px;
}

.text-body-xs {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 10px;
  line-height: 20px;
}

.text-body-sm {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 12px;
  line-height: 20px;
}

.text-body-md {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 14px;
  line-height: 24px;
}

.text-body-lg {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
}

.text-body-xl {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 20px;
  line-height: 32px;
}

.qdnapro-drop-zone {
  --dz-c-border: var(--c-purple-500);
  --dz-c-border-highlight: var(--c-action-500);
  --dz-c-bg-tint: rgba(70, 82, 243, 0.08);
  --dz-c-bg-tint-full: rgba(70, 82, 243, 0.14);
  --dz-c-overlay-text: var(--c-purple-500);
  --dz-c-overlay-text-highlight: var(--c-action-500);
  --dz-c-reject-border: var(--c-signal-red-text);
  --dz-c-reject-bg: rgba(198, 90, 90, 0.10);
  --dz-c-reject-bg-full: rgba(198, 90, 90, 0.16);
  --dz-c-reject-text: var(--c-chip-red-text);
  position: relative;
  display: block;
  box-sizing: border-box;
  border-radius: 12px;
  border: 2px solid transparent;
  transition: border-color 180ms ease, background 180ms ease;
}

.qdnapro-drop-zone .drop-zone-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  opacity: 0;
  transition: opacity 180ms ease;
  z-index: 2;
}

.qdnapro-drop-zone .drop-zone-march-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  color: transparent;
  pointer-events: none;
}

.qdnapro-drop-zone .drop-zone-march-rect {
  width: calc(100% - 2px);
  height: calc(100% - 2px);
  animation: drop-zone-march 1.6s linear infinite;
}

.qdnapro-drop-zone.drop-zone-active .drop-zone-march-svg, .qdnapro-drop-zone.force-active .drop-zone-march-svg {
  color: var(--dz-march-color);
}

.qdnapro-drop-zone .drop-zone-overlay-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px 24px;
  text-align: center;
}

.qdnapro-drop-zone .drop-zone-overlay-icon {
  width: 32px;
  height: 32px;
  color: var(--dz-c-overlay-text);
}

.qdnapro-drop-zone.drop-zone-active .drop-zone-overlay-icon, .qdnapro-drop-zone.force-active .drop-zone-overlay-icon {
  animation: drop-zone-icon-figure8 6s ease-in-out infinite;
}

.qdnapro-drop-zone .drop-zone-overlay-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.qdnapro-drop-zone .drop-zone-overlay-text {
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--dz-c-overlay-text);
  line-height: 1.3;
}

.qdnapro-drop-zone .drop-zone-overlay-hint {
  font-family: "Inter", sans-serif;
  font-size: 13px;
  font-weight: 400;
  color: var(--dz-c-overlay-text);
  opacity: 0.7;
  line-height: 1.3;
}

.qdnapro-drop-zone > :not(.drop-zone-overlay):not(.drop-zone-input) {
  transition: opacity 180ms ease, filter 180ms ease, width 320ms ease-in-out;
}

.qdnapro-drop-zone.drop-zone-active > :not(.drop-zone-overlay):not(.drop-zone-input) {
  opacity: 0.45;
  filter: blur(6px);
}

.qdnapro-drop-zone.drop-zone-style-dashed.drop-zone-active:not(.drop-zone-reject) {
  border: 2px solid transparent;
  background: radial-gradient(ellipse at top left, var(--dz-c-bg-tint), transparent 55%), radial-gradient(ellipse at bottom right, var(--dz-c-bg-tint), transparent 55%);
  --dz-march-color: var(--dz-c-border);
}

.qdnapro-drop-zone.drop-zone-style-solid.drop-zone-active:not(.drop-zone-reject) {
  border: 2px solid var(--dz-c-border);
  background: radial-gradient(ellipse at top left, var(--dz-c-bg-tint), transparent 55%), radial-gradient(ellipse at bottom right, var(--dz-c-bg-tint), transparent 55%);
}

.qdnapro-drop-zone.drop-zone-style-highlight.drop-zone-active:not(.drop-zone-reject) {
  border: 2px solid transparent;
  background: var(--dz-c-bg-tint-full);
  --dz-c-overlay-text: var(--dz-c-overlay-text-highlight);
  --dz-march-color: var(--dz-c-border-highlight);
}

.qdnapro-drop-zone.drop-zone-style-dashed.drop-zone-active.drop-zone-reject {
  border: 2px dashed var(--dz-c-reject-border);
  background: radial-gradient(ellipse at top left, var(--dz-c-reject-bg), transparent 55%), radial-gradient(ellipse at bottom right, var(--dz-c-reject-bg), transparent 55%);
  --dz-c-overlay-text: var(--dz-c-reject-text);
}

.qdnapro-drop-zone.drop-zone-style-solid.drop-zone-active.drop-zone-reject {
  border: 2px solid var(--dz-c-reject-border);
  background: radial-gradient(ellipse at top left, var(--dz-c-reject-bg), transparent 55%), radial-gradient(ellipse at bottom right, var(--dz-c-reject-bg), transparent 55%);
  --dz-c-overlay-text: var(--dz-c-reject-text);
}

.qdnapro-drop-zone.drop-zone-style-highlight.drop-zone-active.drop-zone-reject {
  border: 2px dashed var(--dz-c-reject-border);
  background: var(--dz-c-reject-bg-full);
  --dz-c-overlay-text: var(--dz-c-reject-text);
}

.qdnapro-drop-zone.drop-zone-active .drop-zone-overlay {
  opacity: 1;
}

.qdnapro-drop-zone.drop-zone-clickable {
  cursor: pointer;
}

.qdnapro-drop-zone.drop-zone-clickable:not(.drop-zone-active):hover {
  border-color: var(--dz-c-border);
  opacity: 1;
}

.qdnapro-drop-zone.drop-zone-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

[data-theme=dark] .qdnapro-drop-zone {
  --dz-c-border: #a5acff;
  --dz-c-border-highlight: #c4caff;
  --dz-c-bg-tint: rgba(165, 172, 255, 0.10);
  --dz-c-bg-tint-full: rgba(165, 172, 255, 0.18);
  --dz-c-overlay-text: #c4caff;
  --dz-c-overlay-text-highlight: #d6daff;
  --dz-c-reject-border: #fbaaaa;
  --dz-c-reject-bg: rgba(251, 170, 170, 0.10);
  --dz-c-reject-bg-full: rgba(251, 170, 170, 0.18);
  --dz-c-reject-text: #fee3e3;
}

@keyframes drop-zone-march {
  to {
    stroke-dashoffset: -12;
  }
}
@keyframes drop-zone-icon-figure8 {
  0% {
    transform: translate(0, 0);
  }
  12.5% {
    transform: translate(4px, 3px);
  }
  25% {
    transform: translate(5px, 0);
  }
  37.5% {
    transform: translate(4px, -3px);
  }
  50% {
    transform: translate(0, 0);
  }
  62.5% {
    transform: translate(-4px, 3px);
  }
  75% {
    transform: translate(-5px, 0);
  }
  87.5% {
    transform: translate(-4px, -3px);
  }
  100% {
    transform: translate(0, 0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-drop-zone .drop-zone-overlay-icon {
    animation: none;
  }
  .qdnapro-drop-zone::before {
    animation: none;
  }
}
.qdnapro-edit-frame {
  border-radius: var(--r-card);
  background-color: var(--c-purple-50);
  background-image: radial-gradient(circle, #9d94e8 1px, transparent 1px);
  background-size: 20px 20px;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(70, 82, 243, 0.15);
  box-shadow: inset 0 4px 32px rgba(70, 82, 243, 0.06), inset 0 1px 8px rgba(70, 82, 243, 0.04);
}

[data-theme=dark] .qdnapro-edit-frame,
[data-theme-dark] .qdnapro-edit-frame {
  background-color: var(--c-grey-900);
  background-image: radial-gradient(circle, rgba(165, 172, 255, 0.22) 1px, transparent 1px);
  border-color: var(--c-white-06);
  box-shadow: inset 0 4px 32px rgba(0, 0, 0, 0.45), inset 0 1px 8px rgba(0, 0, 0, 0.3);
}

.qdnapro-emoji-sheet {
  display: contents;
}

.qdnapro-bottom-sheet.es-sheet {
  z-index: 21000;
}

.qdnapro-bottom-sheet.es-sheet .bs-panel {
  height: 82%;
  max-height: 82%;
  padding: 4px 6px 0;
}

.qdnapro-bottom-sheet.es-sheet .bs-handle-zone {
  padding: 8px 0 4px;
}

.qdnapro-bottom-sheet.es-sheet .bs-body {
  overflow: hidden;
  gap: 0;
  padding-bottom: 0;
}

.es-root {
  position: relative;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.es-root .es-emoji,
.es-root .es-tone,
.esp-root .es-emoji,
.esp-root .es-tone {
  font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
}

.es-root .es-icon {
  width: 24px;
  height: 24px;
  display: block;
  flex-shrink: 0;
}

.es-root .es-tab .es-icon {
  width: 22px;
  height: 22px;
}

.es-root .es-search {
  flex-shrink: 0;
  padding: 6px 6px 10px;
}

.es-root .es-search-trigger,
.es-root .es-search-field {
  width: 100%;
  height: 40px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  border: none;
  border-radius: 12px;
  background: var(--c-white-08);
  color: var(--c-white-55);
  font-size: 15px;
}

.es-root .es-search-trigger {
  cursor: text;
  text-align: left;
}

.es-root .es-search-placeholder {
  color: var(--c-white-45);
}

.es-root .es-search-field {
  display: none;
}

.es-root.es-searching .es-search-trigger {
  display: none;
}

.es-root.es-searching .es-search-field {
  display: flex;
}

.es-root .es-search-field-icon {
  color: var(--c-white-45);
}

.es-root .es-search-input {
  flex: 1;
  min-width: 0;
  border: none;
  background: none;
  outline: none;
  color: var(--c-text-on-action);
  font-size: 15px;
  font-family: inherit;
}

.es-root .es-search-input::placeholder {
  color: var(--c-white-45);
}

.es-root .es-search-cancel {
  flex-shrink: 0;
  border: none;
  background: none;
  color: var(--c-text-on-action);
  font-size: 15px;
  font-family: inherit;
  cursor: pointer;
  padding: 0 2px;
}

.es-root .es-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.es-root .es-scroll::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.es-root .es-section-title {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 8px 8px 4px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c-white-45);
  background: rgba(38, 38, 44, 0.86);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.es-root .es-grid {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  padding: 2px 4px 6px;
}

.es-root .es-emoji {
  aspect-ratio: 1/1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  border-radius: 10px;
  padding: 0;
  font-size: 27px;
  line-height: 1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

.es-root .es-emoji:active {
  background: var(--c-white-14);
}

.es-root.es-has-query .es-section {
  display: none;
}

.es-root .es-results {
  padding-top: 8px;
}

.es-root .es-empty {
  padding: 44px 16px;
  text-align: center;
  font-size: 14px;
  color: var(--c-white-45);
}

.es-root .es-catnav {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 6px 6px calc(6px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--c-white-08);
}

.es-root .es-tab {
  flex: 1;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  border-radius: 10px;
  color: var(--c-white-45);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.es-root .es-tab:active {
  background: var(--c-white-08);
}

.es-root .es-tab.is-active {
  color: #fff;
  background: var(--c-white-12);
}

.es-root .es-tone-popover,
.esp-root .es-tone-popover {
  position: absolute;
  z-index: 5;
  display: flex;
  gap: 2px;
  padding: 6px;
  background: var(--c-bg-card);
  border-radius: 18px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.28);
}

.es-root .es-tone-popover[hidden],
.esp-root .es-tone-popover[hidden] {
  display: none;
}

.es-root .es-tone-popover::after,
.esp-root .es-tone-popover::after {
  content: "";
  position: absolute;
  bottom: -9px;
  left: var(--es-tail-x, 50%);
  transform: translateX(-50%);
  border: 9px solid transparent;
  border-top-color: #fff;
  border-bottom: 0;
}

.es-root .es-tone,
.esp-root .es-tone {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  border-radius: 10px;
  padding: 0;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
}

.es-root .es-tone:active,
.esp-root .es-tone:active {
  background: rgba(0, 0, 0, 0.06);
}

qdnapro-popover[data-emoji-sheet] {
  width: min(92vw, 380px);
  padding: 8px;
  box-sizing: border-box;
}

qdnapro-popover[data-emoji-sheet] .esp-root {
  flex: none;
  height: 460px;
}

.esp-root {
  position: relative;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.esp-root .esp-search {
  flex-shrink: 0;
  padding: 4px 0 8px;
}

.esp-root .esp-cats {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 0 10px;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.esp-root .esp-cats::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.esp-root .esp-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.esp-root .esp-scroll::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.esp-root .esp-count {
  padding: 0 0 6px;
  font-size: 12px;
  color: var(--c-text-muted);
}

.esp-root .esp-grid {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  padding: 0 0 8px;
}

.esp-root .esp-grid[hidden] {
  display: none;
}

.esp-root .es-emoji {
  aspect-ratio: 1/1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  border-radius: 10px;
  padding: 0;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

.esp-root .es-emoji:active {
  background: var(--c-bg-card-hover);
}

.esp-root .esp-empty {
  padding: 44px 24px;
  text-align: center;
  font-size: 14px;
  color: var(--c-text-muted);
}

.esp-root .esp-empty[hidden] {
  display: none;
}

.qdnapro-empty-state[hidden] {
  display: none;
}

.qdnapro-empty-state {
  box-sizing: border-box;
  display: block;
  max-width: 620px;
  margin: 32px auto 0;
  padding: 44px 48px 48px;
  text-align: center;
  background: rgba(255, 255, 255, 0.55);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(20, 25, 80, 0.04), 0 8px 24px rgba(20, 25, 80, 0.06);
}

.qdnapro-empty-state * {
  box-sizing: border-box;
}

/* Solid variant (surface="solid"): a light-purple card instead of the
   frosted-glass panel, so the empty state reads well on a plain white
   background (the default glass only works over a tinted/purple backdrop). */
.qdnapro-empty-state.empty-state-solid {
  background: var(--c-bg-subtle-purple);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  border: 1px solid var(--c-purple-50);
  box-shadow: none;
}

.qdnapro-empty-state.empty-state-solid .empty-state-title {
  color: var(--c-sidebar-bg);
}

/* On the light-purple solid surface a plain `subtle` button's neutral grey
   hover (var(--c-grey-50)) all but disappears against the card (var(--c-bg-subtle-purple)). Re-tint any
   subtle action to the subtle-on-purple treatment so a default `subtle` CTA
   reads correctly here without the consumer having to reach for a surface-
   specific button type. The solid card is light-purple in both themes, so
   these values apply in light and dark alike. Values mirror
   .qdnapro-button.button-subtle-purple-bg. [Kim 2026-07-09] */
.qdnapro-empty-state.empty-state-solid .empty-state-actions .qdnapro-button.button-subtle {
  color: var(--c-purple-500);
}

.qdnapro-empty-state.empty-state-solid .empty-state-actions .qdnapro-button.button-subtle:hover:not(.button-disabled) {
  background: var(--c-border-tree-bright);
}

.qdnapro-empty-state.empty-state-solid .empty-state-actions .qdnapro-button.button-subtle:active:not(.button-disabled) {
  background: var(--c-sidebar-icon);
}

/* Page variant (surface="page"): Kim's PWA empty-state design, 21.07.2026.
   Neutral background, no card/surface/shadow -- sits directly on the
   page/app background. Always a single vertical column (title, subtext,
   actions, illustration): the "extended" two-column grid never applies
   here, because the JS keeps `empty-state-extended` off whenever
   `empty-state-page` is on (see qdna-empty-state.js _render()). With
   `empty-state-extended` absent, the host stays plain `display: block`
   (the base .qdnapro-empty-state rule above), so the copy column and the
   illustration column -- both already siblings appended in that order --
   simply stack top to bottom with no extra layout rule needed for that.

   Title and subtext use the semantic --c-brand-purple / --c-text-heading
   custom properties (design-tokens/_design-tokens.scss) instead of
   hardcoded hex, so both automatically read correctly in
   [data-theme=dark] with no separate dark-mode override required here. */
.qdnapro-empty-state.empty-state-page {
  max-width: 480px;
  padding: 8px 24px 32px;
  background: transparent;
  border: none;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.qdnapro-empty-state.empty-state-page .empty-state-title {
  color: var(--c-brand-purple, #40499a);
  font-weight: 700;
}

.qdnapro-empty-state.empty-state-page .empty-state-wink {
  color: var(--c-text-heading, #1a1f4d);
  font-style: normal;
}

/* On-purple variant (surface="on-purple"): the page variant's layout, recoloured for
   a purple surface. The JS gives this variant BOTH empty-state-page and
   empty-state-on-purple, so everything above still applies and only the copy colours
   change here -- one layout, two colour sets, so a spacing fix can never land on one
   and miss the other. Used by the PWA tasklist chooser, which paints its own
   --c-purple-500 background; without this the page variant's brand-purple title and
   dark-grey subtext sit unreadable on that purple. [Kim 30.07.2026] */
.qdnapro-empty-state.empty-state-page.empty-state-on-purple .empty-state-title {
  color: var(--c-text-on-action, #ffffff);
}

.qdnapro-empty-state.empty-state-page.empty-state-on-purple .empty-state-wink {
  color: var(--c-white-70, rgba(255, 255, 255, 0.7));
}

/* Actions row: 0, 1 or 2 qdnapro-button children (see the actions-slot
   contract in qdna-empty-state.js). Every button gets flex: 1 1 0, so a
   single button fills the whole row (soft full-width CTA) and two
   buttons split it evenly with equal height (align-items: stretch) --
   no :only-child / :has() selector needed for that. Radius is bumped to
   the --r-3 (12px) token, scoped to this variant's actions row only, so
   qdnapro-button's normal 8px radius everywhere else is untouched. */
.qdnapro-empty-state.empty-state-page .empty-state-actions {
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  align-items: stretch;
  flex-wrap: nowrap;
  gap: 12px;
}

.qdnapro-empty-state.empty-state-page .empty-state-actions .qdnapro-button {
  flex: 1 1 0;
  min-width: 0;
  border-radius: var(--r-3, 12px);
}

@media (max-width: 480px) {
  .qdnapro-empty-state.empty-state-page .empty-state-actions {
    flex-wrap: wrap;
  }
  .qdnapro-empty-state.empty-state-page .empty-state-actions .qdnapro-button {
    flex: 1 1 100%;
  }
}
/* Illustration: large, and always faded to 60% opacity -- this is a
   decorative choice, not a "disabled" state, so it is done here rather
   than via qdnapro-illustration's own `disabled` attribute (which
   carries different semantics/styling). The generic 260px cap below is
   removed so the illustration's own `size` attribute fully controls its
   width, same as any other qdnapro-illustration usage. */
.qdnapro-empty-state.empty-state-page .empty-state-illustration {
  margin-top: 32px;
  opacity: 0.6;
}

.qdnapro-empty-state.empty-state-page .empty-state-illustration img,
.qdnapro-empty-state.empty-state-page .empty-state-illustration svg {
  max-width: none;
}

/* Extended layout: two-column grid when preview or illustration is present. */
.qdnapro-empty-state.empty-state-extended {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, auto);
  align-items: center;
  text-align: left;
  max-width: 1020px;
  padding: 36px 40px 40px;
  gap: 28px;
}

.qdnapro-empty-state.empty-state-extended .empty-state-copy {
  align-items: flex-start;
}

.qdnapro-empty-state.empty-state-extended .empty-state-actions {
  justify-content: flex-start;
}

.qdnapro-empty-state .empty-state-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.qdnapro-empty-state .empty-state-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #e6e9ff;
  color: var(--c-purple-500);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  margin-bottom: 16px;
}

.qdnapro-empty-state .empty-state-title {
  font-size: 28px;
  line-height: 36px;
  font-weight: 600;
  color: var(--c-grey-950);
  margin: 0 0 12px;
}

.qdnapro-empty-state .empty-state-wink {
  font-size: 16px;
  line-height: 24px;
  color: var(--c-grey-700);
  margin: 0 0 24px;
  font-style: italic;
}

.qdnapro-empty-state .empty-state-body {
  font-size: 15px;
  line-height: 24px;
  color: var(--c-text-muted);
  margin: 0 0 28px;
  max-width: 480px;
}

.qdnapro-empty-state .empty-state-body p {
  margin: 0 0 12px;
}

.qdnapro-empty-state .empty-state-body p:last-child {
  margin-bottom: 0;
}

.qdnapro-empty-state .empty-state-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

.qdnapro-empty-state .empty-state-preview,
.qdnapro-empty-state .empty-state-illustration {
  display: flex;
  align-items: center;
  justify-content: center;
}

.qdnapro-empty-state .empty-state-preview img,
.qdnapro-empty-state .empty-state-illustration img,
.qdnapro-empty-state .empty-state-preview svg,
.qdnapro-empty-state .empty-state-illustration svg {
  width: 100%;
  max-width: 260px;
  height: auto;
  display: block;
}

.qdnapro-empty-state .empty-state-preview img {
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(20, 25, 80, 0.05), 0 8px 22px rgba(20, 25, 80, 0.1);
}

@media (max-width: 960px) {
  .qdnapro-empty-state.empty-state-extended {
    grid-template-columns: 1fr;
  }
  .qdnapro-empty-state.empty-state-extended .empty-state-illustration {
    display: none;
  }
}
[data-theme=dark] .qdnapro-empty-state {
  background: rgba(46, 48, 54, 0.55);
  border-color: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .qdnapro-empty-state .empty-state-eyebrow {
  background: #3a3555;
  color: #c0c5ff;
}

[data-theme=dark] .qdnapro-empty-state .empty-state-title {
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-empty-state .empty-state-wink {
  color: #a6aab3;
}

[data-theme=dark] .qdnapro-empty-state .empty-state-body {
  color: #898e99;
}

.qdnapro-event-card {
  --event-card-bg: var(--c-purple-50, #e6e9ff);
  --event-card-text: var(--c-purple-500, #40499a);
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 2px;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  padding: 4px 6px;
  overflow: hidden;
  border-radius: var(--r-2, 8px);
  background: var(--event-card-bg);
  color: var(--event-card-text);
  font-family: var(--theme-font-family, "Inter", sans-serif);
  text-align: left;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: filter 0.16s ease, transform 0.1s ease, box-shadow 0.16s ease;
}

.qdnapro-event-card--complete {
  --event-card-bg: var(--c-signal-green-100, #d8f4e3);
  --event-card-text: var(--c-signal-green-text, #428b6e);
}

.qdnapro-event-card--overdue {
  --event-card-bg: var(--c-signal-red-bg, #fee3e3);
  --event-card-text: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-event-card--blocked {
  --event-card-bg: var(--c-grey-50, #f0f1f2);
  --event-card-text: var(--c-grey-600, #565b66);
}

.qdnapro-event-card--inprogress {
  --event-card-bg: var(--c-signal-orange-bg, #fdeadc);
  --event-card-text: var(--c-signal-orange-text, #bc6a1f);
}

.qdnapro-event-card--personal {
  --event-card-bg: var(--c-signal-pink-bg, #f6e1e8);
  --event-card-text: var(--c-signal-pink-text, #b25777);
}

.qdnapro-event-card.is-draft {
  border: 1.5px dashed var(--event-card-text);
  background: color-mix(in srgb, var(--event-card-bg) 55%, transparent);
}

.qdnapro-event-card--size-small {
  padding: 2px 5px;
  gap: 1px;
}

.qdnapro-event-card--size-small .qdnapro-event-card__title {
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
}

.qdnapro-event-card--size-small .qdnapro-event-card__meta-text {
  font-size: 11px;
  line-height: 14px;
}

.qdnapro-event-card--size-small .qdnapro-event-card__meta .qdnapro-icon,
.qdnapro-event-card--size-small .qdnapro-event-card__meta qdnapro-icon {
  width: 12px;
  height: 12px;
}

.qdnapro-event-card.is-pressed {
  filter: brightness(0.94);
  transform: scale(0.98);
}

.qdnapro-event-card:focus {
  outline: none;
}

.qdnapro-event-card:focus-visible,
.qdnapro-event-card.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-purple-500, #40499a), 0 0 0 6px var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
}

.qdnapro-event-card__title {
  flex: none;
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word;
}

.qdnapro-event-card__row {
  flex: none;
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}

.qdnapro-event-card__row .qdnapro-event-card__title {
  flex: 1;
  min-width: 0;
}

.qdnapro-event-card__avatar {
  flex: none;
}

.qdnapro-event-card__meta {
  flex: none;
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}

.qdnapro-event-card__meta .qdnapro-icon,
.qdnapro-event-card__meta qdnapro-icon {
  flex: none;
  width: 16px;
  height: 16px;
  color: inherit;
}

.qdnapro-event-card__meta-text {
  min-width: 0;
  font-size: 12px;
  font-weight: 400;
  line-height: 16px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-event-card__conflict {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  box-shadow: 0 0 0 1.5px #fff;
  pointer-events: none;
}

.qdnapro-event-card__conflict--overlap {
  background: var(--c-warn-yellow-600);
}

.qdnapro-event-card__conflict--unavailable {
  background: var(--c-warn-red-500);
}

.qdnapro-event-card__conflict--accepted {
  background: transparent;
}

.qdnapro-event-card__conflict--overlap.qdnapro-event-card__conflict--accepted {
  box-shadow: 0 0 0 1.5px #fff, inset 0 0 0 1.5px var(--c-warn-yellow-600);
}

.qdnapro-event-card__conflict--unavailable.qdnapro-event-card__conflict--accepted {
  box-shadow: 0 0 0 1.5px #fff, inset 0 0 0 1.5px var(--c-warn-red-500);
}

qdnapro-export-modal {
  display: none;
}
qdnapro-export-modal[open] {
  display: block;
  position: fixed;
  inset: 0;
  z-index: var(--overlay-z);
}
qdnapro-export-modal .qos-dialog {
  --qos-w: 760px;
  height: min(720px, 100vh - 48px);
}
qdnapro-export-modal .qos-body {
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
qdnapro-export-modal h2.qos-title {
  margin: 0 !important;
  line-height: 24px !important;
}
qdnapro-export-modal .qos-head {
  align-items: center;
}
qdnapro-export-modal .qpem-info {
  flex-shrink: 0;
}
qdnapro-export-modal .qpem-presets {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  flex-shrink: 0;
}
qdnapro-export-modal .qpem-presets-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--c-purple-500, #40499a);
  white-space: nowrap;
}
qdnapro-export-modal .qpem-presets-field {
  flex: 0 1 280px;
  min-width: 0;
}
qdnapro-export-modal .qpem-presets-empty {
  font-size: 13px;
  color: var(--c-text-muted);
}
qdnapro-export-modal .qpem-presets-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex: 1;
}
qdnapro-export-modal .qpem-presets-dirty {
  font-size: 13px;
  font-style: italic;
  color: var(--c-text-muted);
  white-space: nowrap;
}
qdnapro-export-modal .qpem-presets qdnapro-icon-btn[hidden] {
  display: none;
}
qdnapro-export-modal .qpem-preset-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: -8px 0 16px;
  padding: 0 12px;
}
qdnapro-export-modal .qpem-preset-row[hidden] {
  display: none;
}
qdnapro-export-modal .qpem-preset-row qdnapro-input {
  flex: 1;
  min-width: 0;
}
qdnapro-export-modal .qpem-preset-confirm {
  flex: 1;
  min-width: 0;
  font-size: 13px;
  color: var(--c-grey-600);
}
qdnapro-export-modal .qpem-panels {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 16px;
  align-items: stretch;
  flex: 1;
  min-height: 0;
}
qdnapro-export-modal .qpem-panel {
  border: 1px solid var(--c-border-soft-2);
  border-radius: 12px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
qdnapro-export-modal .qpem-panel-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  padding-left: 13px;
  color: var(--c-purple-500, #40499a);
}
qdnapro-export-modal .qpem-empty {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 16px;
  font-size: 13px;
  color: var(--c-text-muted);
}
qdnapro-export-modal .qpem-list {
  display: flex;
  flex-direction: column;
  gap: 5px;
  overflow-y: auto;
  flex: 1;
  min-height: 80px;
}
qdnapro-export-modal .qpem-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 8px 5px 12px;
  border-radius: 8px;
  border: 1px solid var(--c-border-soft-2);
  background: var(--c-bg-card-hover);
  cursor: grab;
  user-select: none;
  position: relative;
  flex-shrink: 0;
}
qdnapro-export-modal .qpem-chip::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 18px;
  background: var(--c-action-500, #4652f3);
  border-radius: 2px;
  opacity: 0;
  transition: opacity 150ms ease;
  pointer-events: none;
}
qdnapro-export-modal .qpem-chip:hover::before {
  opacity: 1;
}
qdnapro-export-modal .qpem-chip--lifted {
  display: none;
}
qdnapro-export-modal .qpem-chip--active {
  background: var(--c-bg-secondary-purple, #e6e9ff);
  border-color: rgba(64, 73, 154, 0.18);
}
qdnapro-export-modal .qpem-chip qdnapro-checkbox,
qdnapro-export-modal .qpem-panel-head qdnapro-checkbox {
  position: relative;
  cursor: pointer;
}
qdnapro-export-modal .qpem-chip qdnapro-checkbox::after,
qdnapro-export-modal .qpem-panel-head qdnapro-checkbox::after {
  content: "";
  position: absolute;
  inset: -8px;
}
qdnapro-export-modal .qpem-chip-label {
  flex: 1;
  font-size: 14px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
qdnapro-export-modal .qpem-chip qdnapro-icon-btn[data-sort=none] {
  color: var(--c-grey-400);
}
qdnapro-export-modal qdnapro-popover[data-qpem-save] {
  width: min(92vw, 320px);
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
qdnapro-export-modal .qpem-pop-text {
  margin: 0;
  font-size: 14px;
  line-height: 20px;
  color: var(--c-grey-950);
}
qdnapro-export-modal .qpem-pop-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}
qdnapro-export-modal .qpem-gap {
  flex-shrink: 0;
  box-sizing: border-box;
  border: 1.5px dashed rgba(70, 82, 243, 0.45);
  border-radius: 8px;
  background: rgba(70, 82, 243, 0.06);
  transition: height 130ms ease;
}
qdnapro-export-modal .qpem-movers {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
}
@media (max-width: 640px) {
  qdnapro-export-modal .qpem-panels {
    grid-template-columns: 1fr;
  }
  qdnapro-export-modal .qpem-movers {
    flex-direction: row;
    justify-content: center;
  }
}

.qdnapro-month-grid {
  --month-grid-cell: 64px;
  display: block;
  box-sizing: border-box;
  width: 100%;
  background: var(--c-bg-card, #fff);
  font-family: var(--theme-font-family, "Inter", sans-serif);
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.qdnapro-month-grid__header {
  display: flex;
  align-items: center;
  gap: 2px;
  border-bottom: 1px solid var(--c-border-soft-2, #e6e9ef);
}

.qdnapro-month-grid__header-title {
  flex: 1 1 auto;
  min-width: 0;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  color: var(--c-grey-800, #1c1b29);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-month-grid__nav-btn {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--c-grey-600, #565b66);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.qdnapro-month-grid__nav-btn qdnapro-icon {
  display: block;
  width: 18px;
  height: 18px;
}

.qdnapro-month-grid__nav-btn:hover {
  color: var(--c-grey-800, #1c1b29);
}

.qdnapro-month-grid__nav-btn:disabled {
  color: var(--c-grey-300, #cdd1d6);
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-month-grid__nav-btn:disabled:hover {
  color: var(--c-grey-300, #cdd1d6);
}

.qdnapro-month-grid__weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  border-bottom: 1px solid var(--c-border-soft-2, #e6e9ef);
}

.qdnapro-month-grid__weekday {
  padding: 6px 0 4px;
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  color: var(--c-grey-500, #6b7280);
  text-transform: lowercase;
}

.qdnapro-month-grid__weeks {
  display: block;
}

.qdnapro-month-grid__week {
  position: relative;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  border-bottom: 1px solid var(--c-border-soft-2, #e6e9ef);
}

.qdnapro-month-grid[fill] {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.qdnapro-month-grid[fill] .qdnapro-month-grid__weeks {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

.qdnapro-month-grid[fill] .qdnapro-month-grid__week {
  flex: 1 1 0;
  min-height: var(--month-grid-cell);
}

.qdnapro-month-grid__cell {
  box-sizing: border-box;
  min-height: var(--month-grid-cell);
  min-width: 0;
  padding: 2px 2px 3px;
  border-right: 1px solid var(--c-border-soft-2, #e6e9ef);
  cursor: pointer;
}

.qdnapro-month-grid__cell:last-child {
  border-right: 0;
}

.qdnapro-month-grid__daynum {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin: 0 auto 2px;
  border-radius: 50%;
  font-size: 13px;
  font-weight: 500;
  line-height: 16px;
  color: var(--c-grey-800, #1c1b29);
}

.qdnapro-month-grid__cell--outside .qdnapro-month-grid__daynum {
  color: var(--c-grey-400, #9ca3af);
}

.qdnapro-month-grid__cell--blocked {
  cursor: not-allowed;
  opacity: 0.45;
}

.qdnapro-month-grid__cell.is-selected:not(.is-today) .qdnapro-month-grid__daynum {
  background: var(--c-bg-secondary-purple, #e6e9ff);
  color: var(--c-action-500, #4652f3);
  font-weight: 700;
}

.qdnapro-month-grid__cell.is-today .qdnapro-month-grid__daynum {
  background: var(--c-action-500, #4652f3);
  color: var(--c-bg-card, #fff);
  font-weight: 700;
}

.qdnapro-month-grid__bars {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
  margin-bottom: 1px;
}

.qdnapro-month-grid__bar,
.qdnapro-month-grid__bar-spacer {
  display: block;
  box-sizing: border-box;
  height: 13px;
  min-width: 0;
}

.qdnapro-month-grid__bar-spacer {
  visibility: hidden;
}

.qdnapro-month-grid__bar {
  --month-grid-chip-bg: var(--c-purple-50, #e6e9ff);
  --month-grid-chip-text: var(--c-purple-500, #40499a);
  padding: 0 3px;
  background: var(--month-grid-chip-bg);
  color: var(--month-grid-chip-text);
  font-size: 10px;
  font-weight: 600;
  line-height: 13px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
  border-radius: 0;
}

.qdnapro-month-grid__bar-overlay {
  position: absolute;
  z-index: 1;
  top: calc(28px + var(--bar-lane, 0) * 14px);
  left: calc(14.2857142857% * var(--bar-start-col, 0) + var(--bar-inset-l, 0px));
  width: calc(14.2857142857% * var(--bar-span-cols, 1) - var(--bar-inset-l, 0px) - var(--bar-inset-r, 0px));
  pointer-events: none;
}

.qdnapro-month-grid__bar--dimmed {
  opacity: 0.45;
}

.qdnapro-month-grid__bar--round-start {
  border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
}

.qdnapro-month-grid__bar--round-end {
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
}

.qdnapro-month-grid__bar-label {
  pointer-events: none;
}

.qdnapro-month-grid__bar--inprogress {
  --month-grid-chip-bg: var(--c-signal-orange-bg, #fdeadc);
  --month-grid-chip-text: var(--c-signal-orange-text, #bc6a1f);
}

.qdnapro-month-grid__bar--complete {
  --month-grid-chip-bg: var(--c-signal-green-100, #d8f4e3);
  --month-grid-chip-text: var(--c-signal-green-text, #428b6e);
}

.qdnapro-month-grid__bar--overdue {
  --month-grid-chip-bg: var(--c-signal-red-bg, #fee3e3);
  --month-grid-chip-text: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-month-grid__bar--blocked {
  --month-grid-chip-bg: var(--c-grey-50, #f0f1f2);
  --month-grid-chip-text: var(--c-grey-600, #565b66);
}

.qdnapro-month-grid__bar--personal {
  --month-grid-chip-bg: var(--c-signal-pink-bg, #f6e1e8);
  --month-grid-chip-text: var(--c-signal-pink-text, #b25777);
}

.qdnapro-month-grid__chips {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.qdnapro-month-grid__chip {
  --month-grid-chip-bg: var(--c-purple-50, #e6e9ff);
  --month-grid-chip-text: var(--c-purple-500, #40499a);
  display: block;
  min-width: 0;
  padding: 1px 3px;
  border-radius: 3px;
  background: var(--month-grid-chip-bg);
  color: var(--month-grid-chip-text);
  font-size: 10px;
  font-weight: 600;
  line-height: 13px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
}

.qdnapro-month-grid__chip--inprogress {
  --month-grid-chip-bg: var(--c-signal-orange-bg, #fdeadc);
  --month-grid-chip-text: var(--c-signal-orange-text, #bc6a1f);
}

.qdnapro-month-grid__chip--complete {
  --month-grid-chip-bg: var(--c-signal-green-100, #d8f4e3);
  --month-grid-chip-text: var(--c-signal-green-text, #428b6e);
}

.qdnapro-month-grid__chip--overdue {
  --month-grid-chip-bg: var(--c-signal-red-bg, #fee3e3);
  --month-grid-chip-text: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-month-grid__chip--blocked {
  --month-grid-chip-bg: var(--c-grey-50, #f0f1f2);
  --month-grid-chip-text: var(--c-grey-600, #565b66);
}

.qdnapro-month-grid__chip--personal {
  --month-grid-chip-bg: var(--c-signal-pink-bg, #f6e1e8);
  --month-grid-chip-text: var(--c-signal-pink-text, #b25777);
}

.qdnapro-month-grid__more {
  padding: 1px 3px;
  font-size: 10px;
  font-weight: 600;
  line-height: 13px;
  color: var(--c-grey-500, #6b7280);
  pointer-events: none;
}

.qdnapro-month-grid__cell--outside .qdnapro-month-grid__chip,
.qdnapro-month-grid__cell--outside .qdnapro-month-grid__more {
  opacity: 0.45;
}

.qdnapro-month-strip {
  display: block;
  box-sizing: border-box;
  width: 100%;
  background: var(--c-bg-card);
  font-family: var(--theme-font-family, "Inter", sans-serif);
  user-select: none;
  touch-action: pan-y;
  overflow-x: clip;
}

.qdnapro-month-strip__month {
  padding: 2px 0 2px;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  text-align: center;
  color: var(--c-grey-500, #6b7280);
}

.qdnapro-month-strip__weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  padding: 0 4px 2px;
}

.qdnapro-month-strip__weekdays span {
  font-size: 12px;
  line-height: 16px;
  text-align: center;
  color: var(--c-grey-500, #6b7280);
}

.qdnapro-month-strip__body {
  overflow: hidden;
  transition: height 0.25s ease;
}

.qdnapro-month-strip__rows {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-auto-rows: 48px;
  padding: 0 4px;
  transition: transform 0.25s ease;
  will-change: transform;
}

.qdnapro-month-strip__body.is-dragging,
.qdnapro-month-strip__body.is-dragging .qdnapro-month-strip__rows {
  transition: none;
}

.qdnapro-month-strip__rows.is-enter-next {
  animation: qms-slide-next 0.24s cubic-bezier(0.2, 0.7, 0.3, 1);
}

.qdnapro-month-strip__rows.is-enter-prev {
  animation: qms-slide-prev 0.24s cubic-bezier(0.2, 0.7, 0.3, 1);
}

@keyframes qms-slide-next {
  from {
    translate: 28px 0;
    opacity: 0.35;
  }
  to {
    translate: 0 0;
    opacity: 1;
  }
}
@keyframes qms-slide-prev {
  from {
    translate: -28px 0;
    opacity: 0.35;
  }
  to {
    translate: 0 0;
    opacity: 1;
  }
}
.qdnapro-month-strip__day {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  border: 0;
  padding: 0;
  background: transparent;
  font: inherit;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.qdnapro-month-strip__num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  font-size: 14px;
  line-height: 1;
  color: var(--c-grey-950, #0b0b0d);
  background: var(--day-tint, transparent);
  transition: background 0.18s ease, color 0.18s ease;
}

@keyframes qdnapro-month-strip-pop {
  0% {
    transform: scale(0.55);
  }
  70% {
    transform: scale(1.12);
  }
  100% {
    transform: scale(1);
  }
}
.qdnapro-month-strip__day.is-pop .qdnapro-month-strip__num {
  animation: qdnapro-month-strip-pop 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.qdnapro-month-strip__dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--c-purple-500, #40499a);
}

.qdnapro-month-strip__day.is-selected:not(.is-today):not(.is-disabled) .qdnapro-month-strip__num {
  background: var(--c-bg-secondary-purple, #e6e9ff);
  color: var(--c-purple-500, #40499a);
  font-weight: 600;
}

.qdnapro-month-strip__day.is-today:not(.is-disabled) .qdnapro-month-strip__num {
  background: var(--c-purple-500, #40499a);
  color: var(--c-text-on-action);
  font-weight: 600;
}

.qdnapro-month-strip__day.is-muted .qdnapro-month-strip__num {
  color: var(--c-grey-400, #a6aab3);
}

.qdnapro-month-strip__day.is-muted .qdnapro-month-strip__dot {
  background: var(--c-grey-400, #a6aab3);
}

.qdnapro-month-strip__day.is-disabled {
  cursor: default;
}

.qdnapro-month-strip__day.is-disabled .qdnapro-month-strip__num {
  color: var(--c-grey-400, #a6aab3);
  background: transparent;
}

.qdnapro-month-strip__day.is-disabled .qdnapro-month-strip__dot {
  background: var(--c-grey-400, #a6aab3);
}

.qdnapro-month-strip__day:focus {
  outline: none;
}

.qdnapro-month-strip__day:focus-visible .qdnapro-month-strip__num {
  box-shadow: 0 0 0 2px var(--c-purple-500, #40499a), 0 0 0 6px var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
}

.qdnapro-month-strip__months {
  display: none;
  gap: 8px;
  padding: 8px 12px 2px;
  overflow-x: auto;
  scrollbar-width: none;
  overscroll-behavior-x: none;
  touch-action: pan-x;
}

.qdnapro-month-strip__months::-webkit-scrollbar {
  display: none;
}

.qdnapro-month-strip[expanded] .qdnapro-month-strip__months {
  display: flex;
}

.qdnapro-month-strip__months .qdnapro-button {
  flex: none;
  position: relative;
}

.qdnapro-month-strip__months .qdnapro-button::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -8px;
  bottom: -8px;
}

.qdnapro-month-strip__months .qdnapro-button.button-size-compact {
  min-height: 34px;
  padding: 6px 14px;
  font-size: 14px;
  line-height: 20px;
}

.qdnapro-month-strip__year-label {
  display: flex;
  align-items: center;
  flex: none;
  padding: 0 2px;
  font-size: 12px;
  font-weight: 700;
  line-height: 20px;
  color: var(--c-grey-500, #6b7280);
  white-space: nowrap;
}

.qdnapro-month-strip__grabber {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 0 12px;
  cursor: grab;
  touch-action: none;
}

.qdnapro-month-strip__grabber span {
  width: 36px;
  height: 4px;
  border-radius: 999px;
  background: var(--c-grey-300, #c4c7cc);
}

.qdnapro-month-strip__grabber:focus {
  outline: none;
}

.qdnapro-month-strip__grabber:focus-visible span {
  box-shadow: 0 0 0 2px var(--c-purple-500, #40499a), 0 0 0 6px var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-month-strip__body {
    transition: none;
  }
  .qdnapro-month-strip__rows {
    transition: none;
  }
  .qdnapro-month-strip__num {
    transition: none;
  }
  .qdnapro-month-strip__day.is-pop .qdnapro-month-strip__num {
    animation: none;
  }
  .qdnapro-month-strip__rows.is-enter-next,
  .qdnapro-month-strip__rows.is-enter-prev {
    animation: none;
  }
}
.qdnapro-time-grid {
  --time-grid-hour: 52px;
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-height: 0;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-time-grid__scroll-y {
  position: relative;
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  scrollbar-width: none;
}

.qdnapro-time-grid__scroll-y::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.qdnapro-time-grid__dayheader {
  position: sticky;
  top: 0;
  z-index: 7;
  display: flex;
  align-items: stretch;
  height: var(--time-grid-dayheader-h, 40px);
  background: var(--c-bg-card, #fff);
  border-bottom: 1px solid var(--c-border-soft-2, #e6e9ef);
}

.qdnapro-time-grid__dayheader-corner {
  flex: none;
  width: 56px;
  background: var(--c-bg-card, #fff);
}

.qdnapro-time-grid__dayheader-vp {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

.qdnapro-time-grid__dayheader-grid {
  display: flex;
  align-items: stretch;
  height: 100%;
  width: max-content;
}

.qdnapro-time-grid__daycell {
  appearance: none;
  -webkit-appearance: none;
  border: none;
  margin: 0;
  font: inherit;
  text-align: inherit;
  color: inherit;
  flex: none;
  width: var(--time-grid-colw, 120px);
  box-sizing: border-box;
  border-right: 1px solid var(--c-border-soft-2, #e6e9ef);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  padding: 2px 4px;
  background: var(--c-bg-card, #fff);
  cursor: pointer;
}

.qdnapro-time-grid__daycell:hover {
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-time-grid__daycell:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--c-purple-500, #40499a);
}

.qdnapro-time-grid__daycell-weekday {
  font-size: 10px;
  font-weight: 600;
  line-height: 13px;
  color: var(--c-grey-500, #6b7280);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.qdnapro-time-grid__daycell-daynum {
  font-size: 13px;
  font-weight: 600;
  line-height: 16px;
  color: var(--c-grey-800, #1c1b29);
  white-space: nowrap;
}

.qdnapro-time-grid__daycell.is-today .qdnapro-time-grid__daycell-weekday {
  color: var(--c-action-500, #4652f3);
}

.qdnapro-time-grid__daycell.is-today .qdnapro-time-grid__daycell-daynum {
  color: var(--c-text-on-action);
  background: var(--c-action-500, #4652f3);
  padding: 1px 8px;
  border-radius: 999px;
}

.qdnapro-time-grid--has-day-header .qdnapro-time-grid__allday {
  top: var(--time-grid-dayheader-h, 40px);
}

.qdnapro-time-grid__allday {
  position: sticky;
  top: 0;
  z-index: 6;
  display: flex;
  align-items: stretch;
  background: var(--c-bg-card, #fff);
  border-bottom: 1px solid var(--c-border-soft-2, #e6e9ef);
  overflow: hidden;
  transition: height 0.2s ease;
}

.qdnapro-time-grid__allday.is-empty {
  border-bottom-width: 0;
}

.qdnapro-time-grid__allday-corner {
  flex: none;
  width: 56px;
  z-index: 1;
  background: var(--c-bg-card, #fff);
}

.qdnapro-time-grid__allday-vp {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

.qdnapro-time-grid__allday-grid {
  display: grid;
  row-gap: 2px;
  column-gap: 0;
  grid-auto-rows: 26px;
  align-items: stretch;
  padding: 4px 2px 4px 0;
  width: max-content;
}

.qdnapro-time-grid__allday-grid.is-scrollable {
  max-height: 112px;
  overflow-y: auto;
}

.qdnapro-time-grid__allday-grid .qdnapro-event-card {
  height: 26px;
  min-height: 0;
  padding: 3px 8px;
  margin: 0 1px;
}

.qdnapro-time-grid__allday-toggle {
  appearance: none;
  border: 0;
  background: transparent;
  text-align: left;
  padding: 3px 8px;
  margin: 0 1px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  color: var(--c-grey-500, #6b7280);
  border-radius: var(--r-2, 8px);
  cursor: pointer;
}

.qdnapro-time-grid__allday-toggle:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-purple-500, #40499a), 0 0 0 6px var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
}

.qdnapro-time-grid__hours {
  display: flex;
  align-items: stretch;
}

.qdnapro-time-grid__gutter {
  position: relative;
  flex: none;
  width: 56px;
  height: calc(var(--time-grid-hours, 24) * var(--time-grid-hour));
  z-index: 5;
  background: var(--c-bg-card, #fff);
}

.qdnapro-time-grid__time {
  position: absolute;
  right: 8px;
  transform: translateY(-50%);
  font-size: 12px;
  line-height: 16px;
  color: var(--c-grey-500, #6b7280);
  white-space: nowrap;
  user-select: none;
}

.qdnapro-time-grid__scroll-x {
  flex: 1;
  min-width: 0;
  height: calc(var(--time-grid-hours, 24) * var(--time-grid-hour));
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  touch-action: pan-x pan-y;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
}

.qdnapro-time-grid__scroll-x::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.qdnapro-time-grid__strip {
  display: flex;
  align-items: stretch;
  height: 100%;
}

.qdnapro-time-grid__day {
  position: relative;
  flex: none;
  width: var(--time-grid-colw, 120px);
  box-sizing: border-box;
  height: 100%;
  border-right: 1px solid var(--c-border-soft-2, #e6e9ef);
  scroll-snap-align: start;
  background-image: repeating-linear-gradient(to bottom, var(--c-border-soft-2, #e6e9ef) 0, var(--c-border-soft-2, #e6e9ef) 1px, transparent 1px, transparent var(--time-grid-hour, 52px));
}

.qdnapro-time-grid--week .qdnapro-time-grid__day {
  scroll-snap-align: none;
}

.qdnapro-time-grid--week .qdnapro-time-grid__day.is-weekstart {
  scroll-snap-align: start;
}

.qdnapro-time-grid__states {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.qdnapro-time-grid__state {
  position: absolute;
  left: 0;
  right: 0;
}

.qdnapro-time-grid__state--disabled {
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-time-grid__events {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.qdnapro-time-grid__events .qdnapro-event-card {
  position: absolute;
  pointer-events: auto;
}

.qdnapro-time-grid__events .qdnapro-event-card[data-qtg-draggable] {
  cursor: grab;
}

.qdnapro-time-grid__events .qdnapro-event-card[data-qtg-draggable]:active,
.qdnapro-time-grid__events .qdnapro-event-card.is-dragging {
  cursor: grabbing;
}

.qdnapro-time-grid__events .qdnapro-event-card.is-dragging {
  transition: none;
  z-index: 5;
  box-shadow: 0 6px 18px rgba(28, 27, 41, 0.22), 0 2px 6px rgba(28, 27, 41, 0.14);
  opacity: 0.92;
}

.qdnapro-time-grid__events .qdnapro-event-card.is-drag-return {
  transition: transform 0.2s cubic-bezier(0.34, 1.3, 0.64, 1);
}

@media (hover: hover) and (pointer: fine) {
  .qdnapro-time-grid__events .qdnapro-event-card[data-qtg-resizable]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 10px;
    cursor: ns-resize;
    z-index: 1;
  }
  .qdnapro-time-grid__events .qdnapro-event-card[data-qtg-resizable]:hover::after {
    border-bottom: 2px solid var(--c-purple-500, #40499a);
    border-bottom-left-radius: var(--r-2, 8px);
    border-bottom-right-radius: var(--r-2, 8px);
    opacity: 0.55;
  }
}
.qdnapro-time-grid__events .qdnapro-event-card.is-resizing {
  transition: none;
  z-index: 5;
  cursor: ns-resize;
  box-shadow: 0 6px 18px rgba(28, 27, 41, 0.22), 0 2px 6px rgba(28, 27, 41, 0.14);
  opacity: 0.92;
}

.qdnapro-time-grid__events .qdnapro-event-card.is-drag-return.is-resizing {
  transition: height 0.2s cubic-bezier(0.34, 1.3, 0.64, 1);
}

.qdnapro-time-grid__drop {
  position: absolute;
  left: 2px;
  right: 2px;
  border: 2px dashed var(--c-purple-500, #40499a);
  border-radius: var(--r-2, 8px);
  background: var(--c-purple-soft-12, rgba(64, 73, 154, 0.12));
  z-index: 2;
  pointer-events: none;
  box-sizing: border-box;
}

.qdnapro-time-grid__drop-label {
  position: absolute;
  top: 2px;
  left: 6px;
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  color: var(--c-purple-500, #40499a);
  white-space: nowrap;
}

.qdnapro-time-grid__drop.is-reject {
  border-color: var(--c-signal-red-text, #c65a5a);
  background: var(--c-signal-red-bg, #fee3e3);
}

.qdnapro-time-grid__drop.is-reject .qdnapro-time-grid__drop-label {
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-time-grid__drop--resize .qdnapro-time-grid__drop-label {
  top: 100%;
  margin-top: 2px;
}

.qdnapro-time-grid__drop.is-over-estimate,
.qdnapro-time-grid__drop.is-under-estimate {
  border-color: var(--c-signal-orange-text, #bc6a1f);
  background: var(--c-signal-orange-bg, #fdeadc);
}

.qdnapro-time-grid__drop.is-over-estimate .qdnapro-time-grid__drop-label,
.qdnapro-time-grid__drop.is-under-estimate .qdnapro-time-grid__drop-label {
  color: var(--c-signal-orange-text, #bc6a1f);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-time-grid__events .qdnapro-event-card.is-drag-return {
    transition: none;
  }
  .qdnapro-time-grid__allday {
    transition: none;
  }
}
.qdnapro-time-grid__now {
  position: absolute;
  left: 0;
  right: 0;
  height: 0;
  border-top: 2px solid var(--c-tag-critical-text);
  z-index: 3;
  pointer-events: none;
}

/* The "now" dot sits fully INSIDE today's column (fixed 29.07.2026, Kim: "valt
   altijd weg onder het linker paneel"). It used to be `left: -5px`, straddling the
   column's left edge, so half of it landed under the times gutter — and the gutter
   is opaque with z-index 5 against this line's z-index 3, so that half was simply
   painted over. In the day view today's column is ALWAYS the leftmost one, which is
   why it was always broken there rather than only sometimes. Raising the line above
   the gutter instead would be wrong: the line is supposed to slide under the gutter
   when you scroll horizontally, that is what makes the gutter read as a fixed panel.
   So the dot moves in, and the gutter keeps winning. */
.qdnapro-time-grid__now::before {
  content: "";
  position: absolute;
  left: 0;
  top: -5px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--c-tag-critical-text);
}

.qdnapro-time-picker {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  user-select: none;
}

.qdnapro-time-picker__highlight {
  position: absolute;
  left: 4px;
  right: 4px;
  top: 50%;
  height: 40px;
  transform: translateY(-50%);
  border-radius: 10px;
  background: var(--c-purple-soft-08, rgba(64, 73, 154, 0.08));
  pointer-events: none;
}

.qdnapro-time-picker__col {
  position: relative;
  width: 72px;
  height: 200px;
  overflow-y: auto;
  scroll-snap-type: y mandatory;
  overscroll-behavior: contain;
  touch-action: pan-y;
  scrollbar-width: none;
  border-radius: 10px;
  -webkit-mask-image: linear-gradient(to bottom, transparent, var(--c-grey-950) 28%, var(--c-grey-950) 72%, transparent);
  mask-image: linear-gradient(to bottom, transparent, var(--c-grey-950) 28%, var(--c-grey-950) 72%, transparent);
}

.qdnapro-time-picker__col::-webkit-scrollbar {
  display: none;
}

.qdnapro-time-picker__list {
  padding: 80px 0;
}

.qdnapro-time-picker__item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 40px;
  border: 0;
  padding: 0;
  background: transparent;
  font: inherit;
  font-size: 20px;
  font-variant-numeric: tabular-nums;
  color: var(--c-grey-400, #a6aab3);
  cursor: pointer;
  scroll-snap-align: center;
  -webkit-tap-highlight-color: transparent;
  transition: color 0.12s ease, font-weight 0.12s ease;
}

.qdnapro-time-picker__item.is-selected {
  color: var(--c-purple-500, #40499a);
  font-weight: 600;
}

.qdnapro-time-picker__colon {
  font-size: 20px;
  font-weight: 600;
  line-height: 40px;
  color: var(--c-grey-500, #6b7280);
}

.qdnapro-time-picker__col:focus {
  outline: none;
}

.qdnapro-time-picker__col:focus-visible {
  box-shadow: 0 0 0 2px var(--c-purple-500, #40499a), 0 0 0 6px var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
}

.qdnapro-time-picker[disabled] {
  opacity: 0.45;
}

.qdnapro-time-picker[disabled] .qdnapro-time-picker__col {
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-time-picker__item {
    transition: none;
  }
}
.qdnapro-time-select {
  display: block;
  width: 100%;
  box-sizing: border-box;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  font-size: 14px;
  line-height: 24px;
}

.qdnapro-time-select * {
  box-sizing: border-box;
}

.qdnapro-time-select .ts-label {
  display: flex;
  align-items: baseline;
  margin-bottom: 4px;
  font-weight: 500;
  color: var(--c-grey-950, #0b0b0d);
}

.qdnapro-time-select .ts-label .ts-required {
  color: var(--c-signal-red-text, #c65a5a);
  margin-right: 2px;
  font-weight: 500;
}

.qdnapro-time-select .ts-field {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300, #c4c7cc);
  border-radius: 8px;
  padding: 0 12px;
  cursor: text;
  transition: border-color 120ms ease-out, box-shadow 120ms ease-out;
}

.qdnapro-time-select.ts-size-default .ts-field {
  min-height: 52px;
}

.qdnapro-time-select.ts-size-small .ts-field {
  min-height: 40px;
}

.qdnapro-time-select .ts-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  color: var(--c-grey-400, #a6aab3);
  flex-shrink: 0;
}

.qdnapro-time-select .ts-chevron {
  display: inline-flex;
  width: 14px;
  height: 14px;
  color: var(--c-grey-400, #a6aab3);
  flex-shrink: 0;
  transition: transform 150ms ease;
}

.qdnapro-time-select.ts-open .ts-chevron {
  transform: rotate(180deg);
}

.qdnapro-time-select .ts-input {
  flex: 1;
  min-width: 0;
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  font: inherit;
  color: var(--c-grey-950, #0b0b0d);
}

.qdnapro-time-select .ts-input::placeholder {
  color: var(--c-grey-400, #a6aab3);
  font-weight: 500;
}

.qdnapro-time-select .ts-input:disabled {
  color: var(--c-grey-400, #a6aab3);
  cursor: not-allowed;
}

.qdnapro-time-select .ts-field:focus-within {
  border-color: var(--c-purple-400);
  box-shadow: 0 0 0 3px var(--c-action-40, rgba(70, 82, 243, 0.4));
}

.qdnapro-time-select.ts-error .ts-field {
  border-color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-time-select.ts-error .ts-field:focus-within {
  border-color: var(--c-signal-red-text, #c65a5a);
  box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.4);
}

.qdnapro-time-select.ts-disabled .ts-field {
  background: var(--c-grey-50, #f0f1f2);
  border-color: transparent;
  cursor: not-allowed;
}

.qdnapro-time-select.ts-disabled .ts-field:focus-within {
  box-shadow: none;
}

.qdnapro-time-select .ts-message {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  font-size: 13px;
  line-height: 20px;
}

.qdnapro-time-select .ts-message qdnapro-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.qdnapro-time-select .ts-message-error {
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-time-select-panel {
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300, #c4c7cc);
  border-radius: 8px;
  padding: 4px;
  overflow-y: auto;
  overflow-x: hidden;
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.15), 0 8px 12px 6px rgba(0, 0, 0, 0.075);
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-time-select-panel::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.qdnapro-time-select-panel::-webkit-scrollbar-track {
  background: transparent;
}

.qdnapro-time-select-panel::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 4px;
}

.qdnapro-time-select-panel:hover::-webkit-scrollbar-thumb,
.qdnapro-time-select-panel:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
}

.qdnapro-time-select-panel::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.34);
}

.qdnapro-time-select-panel .ts-panel-list {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.qdnapro-time-select-option {
  display: flex;
  align-items: center;
  width: 100%;
  border: 0;
  border-radius: 6px;
  padding: 8px 12px;
  background: transparent;
  font: inherit;
  font-size: 14px;
  line-height: 20px;
  font-variant-numeric: tabular-nums;
  color: var(--c-grey-950, #0b0b0d);
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.qdnapro-time-select-option:hover {
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-time-select-option:active {
  background: var(--c-grey-100, #e7e9ec);
}

.qdnapro-time-select-option.is-active {
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-time-select-option.is-selected {
  background: var(--c-action-500, #4652f3);
  color: var(--c-text-on-action);
  font-weight: 600;
}

.qdnapro-time-select-option.is-selected:hover {
  background: var(--c-action-600, #3540d6);
}

.qdnapro-time-select-option.is-off-grid::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-purple-500, #40499a);
  margin-left: 8px;
}

.qdnapro-time-select-option.is-off-grid.is-selected::after {
  background: var(--c-bg-card);
}

[data-theme=dark] .qdnapro-time-select .ts-label {
  color: var(--c-grey-50, #f0f1f2);
}

[data-theme=dark] .qdnapro-time-select .ts-field {
  background: var(--c-grey-900, #18181c);
  border-color: var(--c-grey-600, #565b66);
}

[data-theme=dark] .qdnapro-time-select .ts-input {
  color: var(--c-grey-50, #f0f1f2);
}

[data-theme=dark] .qdnapro-time-select-panel {
  background: var(--c-grey-900, #18181c);
  border-color: var(--c-grey-600, #565b66);
}

[data-theme=dark] .qdnapro-time-select-option {
  color: var(--c-grey-50, #f0f1f2);
}

[data-theme=dark] .qdnapro-time-select-option:hover,
[data-theme=dark] .qdnapro-time-select-option.is-active {
  background: var(--c-grey-800, #2e3036);
}

.qdnapro-quick-event {
  display: block;
  box-sizing: border-box;
  min-width: 320px;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-quick-event__top > *,
.qdnapro-quick-event__rest > * {
  display: block;
  margin-bottom: 10px;
}

.qdnapro-quick-event__when {
  margin-bottom: 10px;
}

.qdnapro-quick-event__summary {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 40px;
  margin: 0;
  padding: 8px 12px;
  border: 1px solid var(--c-grey-200, #d7dae0);
  border-radius: 8px;
  background: var(--c-bg-card, #fff);
  font: inherit;
  font-size: 14px;
  line-height: 20px;
  color: var(--c-text-heading, #1a1f4d);
  text-align: left;
  cursor: pointer;
}

.qdnapro-quick-event__summary[hidden] {
  display: none;
}

.qdnapro-quick-event__summary:hover {
  border-color: var(--c-grey-300, #cdd1d6);
}

.qdnapro-quick-event__summary:focus-visible {
  outline: 2px solid var(--c-action-500, #4652f3);
  outline-offset: 1px;
}

.qdnapro-quick-event__detail {
  padding: 4px 0 2px;
}

.qdnapro-quick-event__detail[hidden] {
  display: none;
}

.qdnapro-quick-event__when-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 10px;
}

.qdnapro-quick-event__datefield {
  flex: 2 1 0;
  min-width: 0;
}

.qdnapro-quick-event__time {
  flex: 1 1 0;
  min-width: 0;
}

.qdnapro-quick-event__dash {
  flex: none;
  color: var(--c-text-muted, #6b7280);
}

.qdnapro-quick-event__allday {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.qdnapro-quick-event__toggle-label {
  font-size: 13px;
  color: var(--c-text-heading, #1a1f4d);
  cursor: pointer;
  user-select: none;
}

.qdnapro-quick-event__repeat {
  margin-bottom: 2px;
}

.qdnapro-quick-event__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding-top: 12px;
  border-top: 1px solid var(--c-grey-100, #e7e9ec);
}

.qdnapro-quick-event__spacer {
  flex: 1 1 auto;
}

qdnapro-event-sheet {
  display: contents;
}

.qdnapro-bottom-sheet[data-es-sheet] .bs-panel {
  background: var(--c-grey-50);
  height: 86%;
}

.qdnapro-bottom-sheet[data-es-sheet] .bs-body {
  overflow: hidden;
}

.qdnapro-event-sheet-body {
  font-family: var(--theme-font-family, "Inter", sans-serif);
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.qdnapro-event-sheet-body .es-pages {
  flex: 1;
  min-height: 0;
}

.qdnapro-event-sheet-body .es-page {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.qdnapro-event-sheet-body .es-page-main {
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.qdnapro-event-sheet-body .es-page-main::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.qdnapro-event-sheet-body .es-sub-head {
  display: flex;
  align-items: center;
  padding: 2px 0;
}

.qdnapro-event-sheet-body .es-back {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: none;
  background: transparent;
  border-radius: var(--r-row);
  padding: 10px 14px 10px 8px;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  font-size: 16px;
  color: var(--c-purple-700);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.14s ease;
}

.qdnapro-event-sheet-body .es-back:hover {
  background: var(--c-grey-100);
}

.qdnapro-event-sheet-body .es-back:active {
  background: var(--c-grey-200);
}

.qdnapro-event-sheet-body .es-tl-list {
  background: var(--c-bg-card);
  border-radius: var(--r-3);
  padding: 6px;
  flex: 0 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.qdnapro-event-sheet-body .es-tl-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  border: none;
  background: transparent;
  border-radius: var(--r-row);
  padding: 9px 12px;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  font-size: 16px;
  line-height: 1.2;
  text-align: left;
  color: var(--c-purple-700);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.14s ease;
}

.qdnapro-event-sheet-body .es-tl-row:hover {
  background: var(--c-grey-50);
}

.qdnapro-event-sheet-body .es-tl-row:active {
  background: var(--c-grey-100);
}

.qdnapro-event-sheet-body .es-tl-row[hidden] {
  display: none;
}

.qdnapro-event-sheet-body .es-tl-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  border-radius: 12px;
}

.qdnapro-event-sheet-body .es-tl-ico .es-tl-img {
  width: 24px;
  height: 24px;
  object-fit: contain;
  display: block;
}

.qdnapro-event-sheet-body .es-tl-name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-event-sheet-body .es-tl-check {
  display: none;
  flex-shrink: 0;
  color: var(--c-purple-700);
}

.qdnapro-event-sheet-body .es-tl-row.is-active .es-tl-check {
  display: inline-flex;
}

.qdnapro-event-sheet-body .es-type-empty {
  padding: 12px 16px;
  font-size: 14px;
  color: var(--c-text-muted);
}

.qdnapro-event-sheet-body .es-page-sub .qdnapro-bottom-sheet-button-group {
  background: var(--c-bg-card);
}

.qdnapro-event-sheet-body .es-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2px 2px 4px;
}

.qdnapro-event-sheet-body .es-card {
  background: var(--c-bg-card);
  border-radius: var(--r-3);
  padding: 6px;
}

.qdnapro-event-sheet-body .es-card > qdnapro-bottom-sheet-button {
  border-radius: var(--r-row);
}

.qdnapro-event-sheet-body .es-panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-event-sheet-body .es-panel > .es-panel-inner {
  overflow: hidden;
  min-height: 0;
}

.qdnapro-event-sheet-body .es-panel.is-open {
  grid-template-rows: 1fr;
}

.qdnapro-event-sheet-body .es-panel-inner > qdnapro-month-strip,
.qdnapro-event-sheet-body .es-panel-inner > qdnapro-time-picker {
  margin: 4px 6px 8px;
}

.qdnapro-event-sheet-body [data-es-panel=start-time] .es-panel-inner,
.qdnapro-event-sheet-body [data-es-panel=end-time] .es-panel-inner {
  text-align: center;
}

.qdnapro-event-sheet-body .es-allday-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 12px 7px 16px;
}

.qdnapro-event-sheet-body .es-allday-lead {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
  color: var(--c-purple-700);
}

.qdnapro-event-sheet-body .es-divider {
  height: 1px;
  margin: 4px 6px;
  background: var(--c-grey-100);
}

.qdnapro-event-sheet-body .es-dt-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 2px 4px;
}

.qdnapro-event-sheet-body .es-dt-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: none;
  background: transparent;
  border-radius: var(--r-row);
  padding: 10px 12px;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  font-size: 16px;
  line-height: 1.2;
  color: var(--c-purple-700);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.14s ease, color 0.14s ease;
}

.qdnapro-event-sheet-body .es-dt-btn:hover {
  background: var(--c-grey-50);
}

.qdnapro-event-sheet-body .es-dt-btn:active {
  background: var(--c-grey-100);
}

.qdnapro-event-sheet-body .es-dt-btn.is-active {
  background: var(--c-grey-50);
  color: var(--c-purple-500);
}

.qdnapro-event-sheet-body .es-card-when.es-allday-on .es-dt-time {
  display: none;
}

.qdnapro-event-sheet-body .es-card-desc {
  padding: 10px 12px 12px;
}

.qdnapro-event-sheet-body .es-card-title {
  padding: 10px 12px 12px;
}

.qdnapro-event-sheet-body .es-card-delete {
  padding: 8px 12px;
  background: transparent;
  border: 0;
}

.qdnapro-event-sheet-body .es-card-delete > qdnapro-button {
  width: 100%;
}

@keyframes es-wiggle {
  0%, 100% {
    transform: translateX(0);
  }
  20% {
    transform: translateX(-6px);
  }
  40% {
    transform: translateX(5px);
  }
  60% {
    transform: translateX(-3px);
  }
  80% {
    transform: translateX(2px);
  }
}
.qdnapro-event-sheet-body .es-wiggle {
  animation: es-wiggle 0.4s ease;
}

/* Recurring personal events (Planner F6 fase 1, 20.07.2026) — the
 * repeat-interval/until fields inside the repeat sub-page, and the
 * edit/delete edit-scope chooser sub-page. Back-ported here (bo2 is the
 * canonical event-sheet source; the PWA copy is generated by
 * sync-v2-components) so a sync no longer wipes the PWA-side rules. */
.qdnapro-event-sheet-body .es-repeat-extra {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.qdnapro-event-sheet-body .es-scope-title {
  padding: 4px 12px 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--c-text-muted);
}

.qdnapro-event-sheet-body .es-scope-confirm-btn {
  width: calc(100% - 24px);
  margin: 4px 12px 0;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-event-sheet-body .es-panel {
    transition: none;
  }
  .qdnapro-event-sheet-body .es-pages,
  .qdnapro-event-sheet-body .es-page-main,
  .qdnapro-event-sheet-body .es-page-sub {
    transition: none;
  }
  .qdnapro-event-sheet-body .es-wiggle {
    animation: none;
  }
}
.qdnapro-favorite-button {
  --c-focus-ring: var(--c-purple-500);
  --c-focus-glow: rgba(70, 82, 243, 0.25);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 32px;
  height: 32px;
  padding: 4px;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: var(--c-text-disabled);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1), background-color 120ms ease, color 300ms ease-in-out, box-shadow 120ms ease;
}

.qdnapro-favorite-button:hover:not(.favorite-button-disabled) {
  background-color: var(--c-grey-50);
  color: var(--c-grey-950);
  transform: scale(1.1);
}

.qdnapro-favorite-button:active:not(.favorite-button-disabled) {
  transform: scale(0.9);
  transition: transform 80ms ease-out, background-color 120ms ease, color 300ms ease-in-out;
}

.qdnapro-favorite-button:focus {
  outline: none;
}

.qdnapro-favorite-button:focus-visible, .qdnapro-favorite-button.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-focus-ring), 0 0 0 6px var(--c-focus-glow);
}

.qdnapro-favorite-button .favorite-button-icons {
  position: relative;
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.qdnapro-favorite-button.favorite-button-size-big {
  width: 40px;
  height: 40px;
  border-radius: 8px;
}

.qdnapro-favorite-button.favorite-button-size-big .favorite-button-icons {
  width: 20px;
  height: 20px;
}

.qdnapro-favorite-button .favorite-icon {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  fill: currentColor;
  pointer-events: none;
  transition: opacity 300ms ease-in-out;
}

.qdnapro-favorite-button .favorite-icon-outline {
  opacity: 1;
}

.qdnapro-favorite-button .favorite-icon-filled {
  opacity: 0;
  fill: var(--c-purple-500);
}

.qdnapro-favorite-button .favorite-icon-pulse {
  opacity: 0;
  fill: var(--c-purple-500);
}

.qdnapro-favorite-button.favorite-button-favorited {
  color: var(--c-purple-500);
}

.qdnapro-favorite-button.favorite-button-favorited .favorite-icon-outline {
  opacity: 0;
}

.qdnapro-favorite-button.favorite-button-favorited .favorite-icon-filled {
  opacity: 1;
}

.qdnapro-favorite-button.favorite-button-pulsing .favorite-icon-pulse {
  animation: qdnapro-favorite-pulse 600ms ease-out;
}

.qdnapro-favorite-button.favorite-button-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

/* Heart mode (Kim 2026-06-30): red/pink fill, no ripple pulse, and a
   pop animation on the filled heart when favorited. Particles are spawned
   in JS and appended to <body>. */
.qdnapro-favorite-button.favorite-button-mode-heart.favorite-button-favorited {
  color: var(--c-favorite-heart);
}

.qdnapro-favorite-button.favorite-button-mode-heart .favorite-icon-filled {
  fill: var(--c-favorite-heart);
}

.qdnapro-favorite-button.favorite-button-mode-heart .favorite-icon-pulse {
  display: none;
}

.qdnapro-favorite-button.favorite-button-mode-heart.favorite-button-popping .favorite-icon-filled {
  transform-origin: center;
  animation: qdnapro-heart-pop 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes qdnapro-heart-pop {
  0% {
    transform: scale(1);
  }
  20% {
    transform: scale(0.8);
  }
  50% {
    transform: scale(1.45);
  }
  70% {
    transform: scale(0.95);
  }
  85% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes qdnapro-favorite-pulse {
  0% {
    opacity: 0.5;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(2);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-favorite-button,
  .qdnapro-favorite-button .favorite-icon {
    transition: opacity 120ms ease, color 120ms ease, background-color 120ms ease;
  }
  .qdnapro-favorite-button:hover:not(.favorite-button-disabled),
  .qdnapro-favorite-button:active:not(.favorite-button-disabled) {
    transform: none;
  }
  .qdnapro-favorite-button.favorite-button-pulsing .favorite-icon-pulse {
    animation: none;
  }
  .qdnapro-favorite-button.favorite-button-popping .favorite-icon-filled {
    animation: none;
  }
}
[data-theme=dark] .qdnapro-favorite-button {
  --c-focus-ring: #a5acff;
  --c-focus-glow: rgba(165, 172, 255, 0.40);
  color: #898e99;
}

[data-theme=dark] .qdnapro-favorite-button:hover:not(.favorite-button-disabled) {
  background-color: rgba(255, 255, 255, 0.08);
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-favorite-button.favorite-button-favorited {
  color: #a5acff;
}

[data-theme=dark] .qdnapro-favorite-button.favorite-button-favorited .favorite-icon-filled {
  fill: #a5acff;
}

[data-theme=dark] .qdnapro-favorite-button.favorite-button-favorited .favorite-icon-pulse {
  fill: #a5acff;
}

/* White variant: white star for use over photos / imagery. Placed
   last so it wins over the favorited + dark-theme colour rules. */
.qdnapro-favorite-button.favorite-button-variant-white,
.qdnapro-favorite-button.favorite-button-variant-white.favorite-button-favorited,
.qdnapro-favorite-button.favorite-button-variant-white:hover:not(.favorite-button-disabled) {
  color: var(--c-text-on-action);
}

.qdnapro-favorite-button.favorite-button-variant-white .favorite-icon-filled,
.qdnapro-favorite-button.favorite-button-variant-white .favorite-icon-pulse {
  fill: #ffffff;
}


/* ============================================================
 *  qdnapro-file-icon — compiled from _file-icon.scss
 * ============================================================ */
.qdnapro-file-icon {
  display: inline-flex;
  flex-shrink: 0;
  user-select: none;
  line-height: 1;
  /* Anchor for the absolutely-positioned fallback badge.
     Without this, the badge escapes to the nearest positioned
     ancestor and renders ABOVE the icon instead of overlaying it.
     [Kim 2026-05-06] */
  position: relative;
}

.qdnapro-file-icon.file-icon-24 {
  width: 24px;
  height: 30px;
}

.qdnapro-file-icon.file-icon-32 {
  width: 32px;
  height: 40px;
}

.qdnapro-file-icon.file-icon-40 {
  width: 40px;
  height: 50px;
}

.qdnapro-file-icon.file-icon-48 {
  width: 48px;
  height: 60px;
}

/* Ext-text fallback badge — HIDDEN by default. The component's JS
   adds `qdnapro-file-icon-no-asset` to the host only when BOTH the
   ext-specific AND the generic SVG fail to load. The display:none
   keeps the badge from bleeding through anti-aliased / transparent
   pixels of a successful SVG load. */
.qdnapro-file-icon .qdnapro-file-icon-badge {
  display: none;
}

.qdnapro-file-icon.qdnapro-file-icon-no-asset .qdnapro-file-icon-badge {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 3px;
  color: var(--c-grey-500);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  z-index: 0;
}

[data-theme=dark] .qdnapro-file-icon.qdnapro-file-icon-no-asset .qdnapro-file-icon-badge {
  background: #2e3036;
  border-color: #565b66;
  color: #a6aab3;
}

/* Dark-mode polish — subtle outer glow on the SVG body so the
   white paper-on-screen icon stays visible against dark canvas. */
[data-theme=dark] .qdnapro-file-icon svg {
  filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.1));
}

/* ============================================================
 *  qdnapro-folder-icon — compiled from _folder-icon.scss
 * ============================================================ */
.qdnapro-folder-icon {
  display: inline-flex;
  flex-shrink: 0;
  user-select: none;
  line-height: 1;
  /* Anchor for the absolutely-positioned fallback badge. Without this,
     the badge escapes to the nearest positioned ancestor instead of
     overlaying the icon — same reasoning as qdnapro-file-icon. */
  position: relative;
}

/* Ext-text fallback badge — HIDDEN by default. The component's JS adds
   `qdnapro-folder-icon-no-asset` to the host only when BOTH the
   variant-specific AND the "closed" fallback SVG fail to load. */
.qdnapro-folder-icon .qdnapro-folder-icon-badge {
  display: none;
}

.qdnapro-folder-icon.qdnapro-folder-icon-no-asset .qdnapro-folder-icon-badge {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 3px;
  color: var(--c-grey-500);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  z-index: 0;
}

[data-theme=dark] .qdnapro-folder-icon.qdnapro-folder-icon-no-asset .qdnapro-folder-icon-badge {
  background: #2e3036;
  border-color: #565b66;
  color: #a6aab3;
}

.qdnapro-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box; /* keeps the 1px border "inside" (Figma stroke: Inside) */
  gap: 8px;
  padding: 4px;
  border: 1px solid var(--c-purple-50, #e6e9ff);
  border-radius: 24px;
  background: var(--c-bg-card);
  overflow: hidden; /* Figma "Clip content" */
}

/* Hidden when no status is set — collapse out of flow. */
.qdnapro-status-badge[hidden] {
  display: none;
}

/* Icon colours. qdnapro-icon renders MDI SVG with fill: currentColor,
   so setting `color` on the nested element tints the glyph. */
.qdnapro-status-badge .status-badge-heart {
  color: var(--c-favorite-heart, #ff4d6a);
}

.qdnapro-status-badge .status-badge-offline {
  color: var(--c-action-500, #4652f3);
}

.qdnapro-status-badge .status-badge-unread {
  color: var(--c-purple-500, #40499a);
}

/* ------------------------------------------------------------------ */
/* interactive variant (28.07.2026, PWA documents badge-info dialog)  */
/* Opt-in: role="button" + tabindex is set by the JS. Purely visual   */
/* additions here — hover/active feedback + the invisible hit-area.   */
/* WITHOUT [interactive] none of this applies, so the default pill    */
/* stays pixel-for-pixel what it was before this variant existed.     */
/* ------------------------------------------------------------------ */
.qdnapro-status-badge.status-badge-interactive {
  position: relative; /* containing block for the ::after hit-area */
  cursor: pointer;
  transition: background-color 120ms ease, border-color 120ms ease, transform 80ms ease-out;
}

.qdnapro-status-badge.status-badge-interactive:hover {
  /* Subtle — reuse the same soft purple wash the rest of the library
     uses for hover-on-white (qdnapro-grid-tile's --qgt-bg-hover token). */
  background: var(--c-bg-card-hover, #f7f8fa);
  border-color: var(--c-purple-100, #c0c5ff);
}

.qdnapro-status-badge.status-badge-interactive:active {
  transform: scale(0.94);
  transition: transform 70ms ease-out;
}

.qdnapro-status-badge.status-badge-interactive:focus {
  outline: none;
}

.qdnapro-status-badge.status-badge-interactive:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 6px var(--focus-glow);
}

/* Invisible hit-area, NOT a bigger pill. The pill itself keeps the Figma
   size (28px tall at size="small") because it sits right next to other
   controls — a 3-dot menu button in a list row, or the corner of a grid
   tile — and a large hit-area would eat into those neighbours. A flat
   6px-per-side inset lands size="small" (28px tall) on a ~40px tappable
   square (the minimum touch target) without reaching far enough to
   overlap anything beside it; size="large" (32/36px tall) clears 40px
   with the same 6px, kept for one consistent rule. */
.qdnapro-status-badge.status-badge-interactive::after {
  content: "";
  position: absolute;
  inset: -6px;
}

.qdnapro-status-track {
  --st-fill: var(--c-brand-purple, #5b4dd1);
  --st-text: var(--c-text-muted, #6e7280);
  --st-empty: var(--c-border-soft, #e3e2f0);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: none;
  white-space: nowrap;
}
.qdnapro-status-track__bar {
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.qdnapro-status-track__seg {
  display: block;
  width: 12px;
  height: 4px;
  border-radius: 2px;
  background: var(--st-empty);
  transition: background-color 180ms ease, opacity 180ms ease;
}
.qdnapro-status-track__seg.is-filled {
  background: var(--st-fill);
  opacity: calc(0.42 + 0.58 * var(--st-i, 1));
}
.qdnapro-status-track__label {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--st-text);
}
.qdnapro-status-track[data-tone=done] {
  --st-fill: var(--c-signal-green-text, #2c7a5b);
  --st-text: var(--c-signal-green-text, #2c7a5b);
}
.qdnapro-status-track[data-tone=warn] {
  --st-fill: var(--c-warn-yellow-600, #f59e0b);
  --st-text: var(--c-warn-amber-600, #b45309);
}
.qdnapro-status-track[data-tone=late] {
  --st-fill: var(--c-signal-red-text, #b8353a);
  --st-text: var(--c-signal-red-text, #b8353a);
}
.qdnapro-status-track[data-tone=off] {
  --st-fill: var(--c-text-disabled, #9a9ab0);
  --st-text: var(--c-text-disabled, #9a9ab0);
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-status-track .qdnapro-status-track__seg {
    transition: none;
  }
}

.qdnapro-station-track {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex: none;
}
.qdnapro-station-track__dot {
  --qst-fill: var(--c-border-soft, #e3e2f0);
  --qst-ring: var(--c-border-soft, #e3e2f0);
  --qst-ink: var(--c-text-muted, #6e7280);
}
.qdnapro-station-track__dot[data-state=done] {
  --qst-fill: var(--c-signal-green-text, #428b6e);
  --qst-ring: var(--c-signal-green-text, #428b6e);
  --qst-ink: #fff;
}
.qdnapro-station-track__dot[data-state=run] {
  --qst-fill: var(--c-warn-yellow-600, #f59e0b);
  --qst-ring: var(--c-warn-yellow-600, #f59e0b);
  --qst-ink: #fff;
}
.qdnapro-station-track__dot[data-state=todo] {
  --qst-fill: var(--c-bg-card, #fff);
  --qst-ring: var(--c-brand-purple, #5b4dd1);
  --qst-ink: var(--c-brand-purple, #5b4dd1);
}
.qdnapro-station-track__dot {
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  box-sizing: border-box;
  background: var(--qst-fill);
  border: 2px solid var(--qst-ring);
}

.qdnapro-station {
  --qst-fill: var(--c-border-soft, #e3e2f0);
  --qst-ring: var(--c-border-soft, #e3e2f0);
  --qst-ink: var(--c-text-muted, #6e7280);
}
.qdnapro-station[data-state=done] {
  --qst-fill: var(--c-signal-green-text, #428b6e);
  --qst-ring: var(--c-signal-green-text, #428b6e);
  --qst-ink: #fff;
}
.qdnapro-station[data-state=run] {
  --qst-fill: var(--c-warn-yellow-600, #f59e0b);
  --qst-ring: var(--c-warn-yellow-600, #f59e0b);
  --qst-ink: #fff;
}
.qdnapro-station[data-state=todo] {
  --qst-fill: var(--c-bg-card, #fff);
  --qst-ring: var(--c-brand-purple, #5b4dd1);
  --qst-ink: var(--c-brand-purple, #5b4dd1);
}
.qdnapro-station {
  position: relative;
  display: block;
  padding: 0 0 22px 46px;
  min-width: 0;
}
.qdnapro-station[data-last] {
  padding-bottom: 0;
}
.qdnapro-station__rail {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.qdnapro-station__dot {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  box-sizing: border-box;
  background: var(--qst-fill);
  border: 2px solid var(--qst-ring);
  color: var(--qst-ink);
  font-size: 13px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.qdnapro-station__line {
  flex: 1 1 auto;
  width: 2px;
  margin: 4px 0 0;
  border-radius: 1px;
  background: var(--c-border-soft, #e3e2f0);
}
.qdnapro-station[data-last] .qdnapro-station__line {
  display: none;
}
.qdnapro-station__head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 10px;
  min-height: 30px;
  margin-bottom: 8px;
}
.qdnapro-station__title {
  font-size: 15px;
  font-weight: 750;
  color: var(--c-text-heading, #2b3384);
}
.qdnapro-station__state {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text-muted, #6e7280);
}
.qdnapro-station__who {
  margin-left: auto;
  font-size: 11.5px;
  font-weight: 650;
  color: var(--c-text-secondary, #4b4a75);
  background: var(--c-purple-100, #eceaff);
  border-radius: 999px;
  padding: 3px 10px;
  white-space: nowrap;
}
.qdnapro-station {
  overflow-wrap: anywhere;
}

.qdnapro-file-upload {
  display: block;
}

.qdnapro-file-upload__note {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  padding: 10px 12px;
  margin-bottom: 16px;
  background: var(--c-bg-subtle-purple);
  border: 1px solid var(--c-purple-soft-12);
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--c-brand-purple);
}
.qdnapro-file-upload__note[hidden] {
  display: none;
}

.qdnapro-file-upload__note-icon {
  flex-shrink: 0;
  margin-top: 1px;
  color: var(--c-brand-purple);
}

.qdnapro-file-upload__note-text strong {
  color: var(--c-brand-purple);
}

.qdnapro-file-upload__zone {
  --fu-c-border: var(--c-purple-500);
  --fu-c-bg-tint: rgba(70, 82, 243, 0.08);
  --fu-c-reject: var(--c-signal-red-text);
  --fu-c-reject-tint: rgba(198, 90, 90, 0.10);
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 28px 16px;
  border: 2px dashed var(--c-border-tree);
  border-radius: 14px;
  background: var(--c-bg-card-hover);
  text-align: center;
  cursor: pointer;
  transition: border-color 140ms ease, background 140ms ease;
}
.qdnapro-file-upload__zone:hover, .qdnapro-file-upload__zone:focus-visible {
  border-color: var(--c-purple-300);
  background: var(--c-bg-subtle-purple);
  outline: none;
}
.qdnapro-file-upload__zone.is-dragover {
  border-color: transparent;
  background: radial-gradient(ellipse at top left, var(--fu-c-bg-tint), transparent 55%), radial-gradient(ellipse at bottom right, var(--fu-c-bg-tint), transparent 55%);
  --fu-march-color: var(--fu-c-border);
}
.qdnapro-file-upload__zone.is-dragover.is-reject {
  background: radial-gradient(ellipse at top left, var(--fu-c-reject-tint), transparent 55%), radial-gradient(ellipse at bottom right, var(--fu-c-reject-tint), transparent 55%);
  --fu-march-color: var(--fu-c-reject);
}

.qdnapro-file-upload__zone-icon {
  color: var(--c-text-disabled-pp);
  line-height: 0;
}

.qdnapro-file-upload__ants {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  color: transparent;
  pointer-events: none;
}

.qdnapro-file-upload__ants-rect {
  width: calc(100% - 2px);
  height: calc(100% - 2px);
  animation: qdna-fu-march 1.6s linear infinite;
}

.qdnapro-file-upload__zone.is-dragover .qdnapro-file-upload__ants {
  color: var(--fu-march-color);
}

@keyframes qdna-fu-march {
  to {
    stroke-dashoffset: -12;
  }
}
.qdnapro-file-upload__title {
  margin: 4px 0 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--c-chip-purple-text);
}

.qdnapro-file-upload__or {
  margin: 0;
  font-size: 12px;
  color: var(--c-grey-400);
}

.qdnapro-file-upload__hint {
  margin: 6px 0 0;
  font-size: 12px;
  color: var(--c-grey-400);
}

.qdnapro-file-upload__pick {
  flex: 0 0 auto;
}

.qdnapro-file-upload__chosen {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  padding: 10px 12px;
  border: 1px solid var(--c-border-soft-2);
  border-radius: 10px;
  background: var(--c-bg-card);
}
.qdnapro-file-upload__chosen[hidden] {
  display: none;
}

.qdnapro-file-upload__file-icon {
  flex-shrink: 0;
  color: var(--c-brand-purple);
  line-height: 0;
}

.qdnapro-file-upload__file-name {
  flex: 1 1 auto;
  font-size: 13px;
  color: var(--c-chip-purple-text);
  word-break: break-all;
}

.qdnapro-file-upload__remove {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--c-grey-400);
  cursor: pointer;
  transition: background 120ms ease, color 120ms ease;
}
.qdnapro-file-upload__remove:hover {
  background: var(--c-bg-card-hover);
  color: #c33a30;
}

.qdnapro-file-upload__error {
  margin: 12px 0 0;
  padding: 9px 12px;
  background: var(--c-signal-red-soft);
  border: 1px solid var(--c-chip-red-hover);
  border-radius: 10px;
  font-size: 13px;
  color: var(--c-tag-critical-text);
}
.qdnapro-file-upload__error[hidden] {
  display: none;
}

.qdnapro-file-upload.is-disabled {
  opacity: 0.6;
  pointer-events: none;
}

[data-theme=dark] .qdnapro-file-upload__zone {
  --fu-c-border: #a5acff;
  --fu-c-bg-tint: rgba(165, 172, 255, 0.10);
  --fu-c-reject: #fbaaaa;
  --fu-c-reject-tint: rgba(251, 170, 170, 0.10);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-file-upload__ants-rect {
    animation: none;
  }
}
.qdnapro-filter-sheet-body {
  display: flex;
  flex-direction: column;
  gap: var(--s-6);
}

.qdnapro-filter-sheet-body .fs-section {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}

.qdnapro-filter-sheet-body .fs-section-title {
  font-size: 12px;
  font-weight: var(--fw-medium);
  line-height: 1.3;
  color: var(--c-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0 var(--s-1);
}

.fs-section-note {
  margin: 2px 0 8px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--c-text-muted, #6e7280);
}

.qdnapro-filter-sheet-body .fs-footer {
  position: sticky;
  bottom: 0;
  z-index: 1;
  padding: var(--s-4) 0;
  background: var(--c-bg-card, #ffffff);
  border-top: 1px solid var(--c-border-soft-2, #e6e9ef);
}

.qdnapro-filter-sheet-body .fs-footer qdnapro-button {
  width: 100%;
}

.qdnapro-popover[data-fs-pop] {
  width: 340px;
  max-width: 92vw;
}

.qdnapro-popover[data-fs-pop] .qdnapro-filter-sheet-body {
  max-height: 72vh;
  overflow-y: auto;
}

.qdnapro-composition-bar {
  display: inline-block;
  flex: none;
  width: var(--cb-w, 120px);
  line-height: 0;
}
.qdnapro-composition-bar__track {
  display: flex;
  width: 100%;
  height: var(--cb-h, 6px);
  border-radius: 999px;
  overflow: hidden;
  background: var(--c-border-soft, #e3e2f0);
}
.qdnapro-composition-bar__part {
  display: block;
  height: 100%;
  width: var(--cb-part, 0%);
  transition: width 220ms cubic-bezier(0.22, 1, 0.36, 1);
}
.qdnapro-composition-bar__part[data-tone=done] {
  background: var(--c-signal-green-text, #428b6e);
}
.qdnapro-composition-bar__part[data-tone=warn] {
  background: var(--c-warn-yellow-600, #f59e0b);
}
.qdnapro-composition-bar__part[data-tone=late] {
  background: var(--c-signal-red-text, #c65a5a);
}
.qdnapro-composition-bar__part[data-tone=info] {
  background: var(--c-signal-blue-text, #6a8ab4);
}
.qdnapro-composition-bar__part[data-tone=muted] {
  background: var(--c-grey-300, #cfd0dd);
}
.qdnapro-composition-bar__part[data-tone=default] {
  background: var(--c-brand-purple, #5b4dd1);
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-composition-bar .qdnapro-composition-bar__part {
    transition: none;
  }
}

.qdnapro-context-menu {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1002;
  display: none;
  box-sizing: border-box;
}

.qdnapro-context-menu.is-open {
  display: block;
}

.qdnapro-form-card {
  --form-card-header-bg: var(--theme-btn-color, var(--c-sidebar-bg, #3a4290));
  --form-card-header-text: #ffffff;
  --form-card-subtitle: rgba(255, 255, 255, 0.75);
  --form-card-body-bg: var(--c-bg-card, #ffffff);
  --form-card-border: var(--c-border-card, #e1e3e6);
  --form-card-radius: var(--r-card, 16px);
  --form-card-max-height: none;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: var(--form-card-radius);
  background: var(--form-card-body-bg);
  box-shadow: var(--shadow-card, 0 1px 2px rgba(20, 25, 80, 0.04), 0 4px 16px rgba(20, 25, 80, 0.08));
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-form-card__header {
  display: flex;
  flex-direction: column;
  gap: 6px;
  box-sizing: border-box;
  padding: 20px 20px 18px;
  background: var(--form-card-header-bg);
  color: var(--form-card-header-text);
}

.qdnapro-form-card--celebratory .qdnapro-form-card__header {
  padding: 32px 24px 26px;
  align-items: center;
  text-align: center;
}

.qdnapro-form-card__image {
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  line-height: 0;
  margin-bottom: 4px;
}

.qdnapro-form-card__image[hidden] {
  display: none;
}

.qdnapro-form-card__image-img {
  display: block;
  width: 100%;
  max-height: 160px;
  object-fit: cover;
}

.qdnapro-form-card__title {
  font-size: 19px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--form-card-header-text);
  overflow-wrap: anywhere;
}

.qdnapro-form-card--celebratory .qdnapro-form-card__title {
  font-size: 22px;
}

.qdnapro-form-card__subtitle {
  font-size: 13px;
  line-height: 1.4;
  color: var(--form-card-subtitle);
  overflow-wrap: anywhere;
}

.qdnapro-form-card__subtitle[hidden] {
  display: none;
}

.qdnapro-form-card__progress {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 2px;
}

.qdnapro-form-card__progress[hidden] {
  display: none;
}

.qdnapro-form-card__progress-pill {
  flex: 0 0 auto;
  padding: 2px 9px;
  border-radius: var(--r-pill, 999px);
  background: rgba(255, 255, 255, 0.18);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--form-card-header-text);
}

.qdnapro-form-card__progress-track {
  flex: 1 1 auto;
  height: 4px;
  border-radius: var(--r-pill, 999px);
  background: rgba(255, 255, 255, 0.2);
  overflow: hidden;
}

.qdnapro-form-card__progress-fill {
  display: block;
  height: 100%;
  width: 0%;
  border-radius: var(--r-pill, 999px);
  background: var(--c-bg-card);
  transition: width 220ms ease;
}

.qdnapro-form-card__body {
  flex: 1 1 auto;
  box-sizing: border-box;
  min-width: 0;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-height: var(--form-card-max-height);
  overflow-y: auto;
}

.qdnapro-form-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  box-sizing: border-box;
  padding: 14px 20px 18px;
  border-top: 1px solid var(--form-card-border);
}

.qdnapro-form-card__footer[hidden] {
  display: none;
}

.qdnapro-form-card__footer [data-fc=prev][hidden] ~ [data-fc=next] {
  margin-left: auto;
}

.qdnapro-form-card__footer qdnapro-button {
  flex: 0 0 auto;
}

.qdnapro-form-card__footer qdnapro-button[hidden] {
  display: none;
}

qdnapro-format-rules {
  display: none;
}
qdnapro-format-rules[open] {
  display: block;
  position: fixed;
  inset: 0;
  z-index: var(--overlay-z-nested);
}
qdnapro-format-rules .qos-dialog {
  --qos-w: 820px;
}
qdnapro-format-rules .qfr-firstmatch {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin: 0;
  padding: 9px 11px;
  border-radius: 8px;
  background: var(--c-bg-subtle-purple, #f3f5ff);
  font-size: 12.5px;
  color: var(--c-text-body, #24262c);
}
qdnapro-format-rules .qfr-firstmatch qdnapro-icon {
  flex: 0 0 auto;
  color: var(--c-brand-purple, #40499a);
  margin-top: 1px;
}
qdnapro-format-rules .qfr-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow-y: auto;
  min-height: 0;
  padding: 2px;
}
qdnapro-format-rules .qfr-empty {
  margin: 0;
  padding: 14px 2px;
  font-size: 12.5px;
  color: var(--c-text-muted, #6e7280);
}
qdnapro-format-rules .qfr-rule {
  border: 1px solid var(--c-purple-300, #8a92d0);
  border-radius: 8px;
  background: var(--c-bg-subtle-purple, #f3f5ff);
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
qdnapro-format-rules .qfr-rule-fout {
  border-color: var(--c-tag-critical-text, #c33a30);
}
qdnapro-format-rules .qfr-cond {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
qdnapro-format-rules .qfr-nr {
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 650;
  color: var(--c-text-muted, #6e7280);
  background: var(--c-bg-card, #fff);
  border: 1px solid var(--c-border-tree, #d4d8ec);
  border-radius: 10px;
  padding: 1px 7px;
}
qdnapro-format-rules .qfr-op {
  flex: 0 0 168px;
}
qdnapro-format-rules .qfr-num {
  flex: 0 0 96px;
}
qdnapro-format-rules .qfr-and {
  font-size: 12.5px;
  color: var(--c-text-muted, #6e7280);
}
qdnapro-format-rules .qfr-del {
  margin-left: auto;
  flex: 0 0 auto;
}
qdnapro-format-rules .qfr-fmt {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
qdnapro-format-rules .qfr-flag {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  cursor: pointer;
  white-space: nowrap;
}
qdnapro-format-rules .qfr-color {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
qdnapro-format-rules .qfr-swatch {
  position: relative;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border-radius: 8px;
  cursor: pointer;
  outline: 2px solid rgba(64, 73, 154, 0.18);
  outline-offset: 1px;
  transition: outline-color 150ms;
}
qdnapro-format-rules .qfr-swatch:hover {
  outline-color: var(--c-brand-purple, #40499a);
}
qdnapro-format-rules .qfr-swatch-leeg {
  background-image: linear-gradient(to top right, transparent calc(50% - 1px), var(--c-grey-300, #c4c7cc) 50%, transparent calc(50% + 1px));
  background-color: var(--c-bg-card, #fff);
}
qdnapro-format-rules .qfr-swatch-input {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  opacity: 0 !important;
  cursor: pointer !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
qdnapro-format-rules .qfr-clear {
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 15px;
  line-height: 1;
  padding: 2px 3px;
  border-radius: 4px;
  color: var(--c-text-muted, #6e7280);
}
qdnapro-format-rules .qfr-clear:hover {
  background: var(--c-bg-subtle-hover, #f0f1f2);
  color: var(--c-text-body, #24262c);
}
qdnapro-format-rules .qfr-clear:focus-visible {
  outline: 2px solid var(--focus-ring, #40499a);
  outline-offset: 1px;
}
qdnapro-format-rules .qfr-preview {
  margin-left: auto;
  min-width: 84px;
  text-align: right;
  padding: 4px 8px;
  border-radius: 6px;
  border: 1px solid var(--c-border-tree, #d4d8ec);
  background: var(--c-bg-card, #fff);
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  color: var(--c-text-body, #24262c);
}
qdnapro-format-rules .qfr-contrast {
  margin: 0;
  font-size: 12px;
  color: var(--c-tag-warning-text, #a06400);
}
qdnapro-format-rules .qfr-contrast[hidden] {
  display: none;
}
qdnapro-format-rules .qfr-addbar {
  display: flex;
  align-items: center;
  gap: 10px;
}
qdnapro-format-rules .qfr-max {
  font-size: 12px;
  color: var(--c-text-muted, #6e7280);
}
qdnapro-format-rules .qfr-status-fout {
  color: var(--c-tag-critical-text, #c33a30);
}
qdnapro-format-rules .qfr-list::-webkit-scrollbar {
  width: 6px;
}
qdnapro-format-rules .qfr-list::-webkit-scrollbar-track {
  background: transparent;
}
qdnapro-format-rules .qfr-list::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.18);
  border-radius: 3px;
}
qdnapro-format-rules .qfr-list {
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.18) transparent;
}
@media (max-width: 720px) {
  qdnapro-format-rules .qfr-op, qdnapro-format-rules .qfr-num {
    flex: 1 1 100px;
  }
  qdnapro-format-rules .qfr-preview {
    margin-left: 0;
  }
}

qdnapro-formula-editor {
  display: none;
}
qdnapro-formula-editor[open] {
  display: block;
  position: fixed;
  inset: 0;
  z-index: var(--overlay-z-nested);
}
qdnapro-formula-editor .qos-dialog {
  --qos-w: 880px;
}
qdnapro-formula-editor .qfe-cols {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 104px minmax(0, 1.1fr);
  gap: 14px;
  align-items: start;
  min-height: 0;
}
qdnapro-formula-editor .qfe-col {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
qdnapro-formula-editor .qfe-col-label {
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--c-text-muted, #6e7280);
}
qdnapro-formula-editor .qfe-list {
  border: 1px solid var(--c-border-tree, #d4d8ec);
  border-radius: 10px;
  background: var(--c-bg-card, #fff);
  padding: 4px;
  max-height: 232px;
  overflow-y: auto;
  min-height: 0;
}
qdnapro-formula-editor .qfe-group {
  padding: 8px 10px 3px;
  font-size: 10.5px;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--c-text-muted, #6e7280);
}
qdnapro-formula-editor .qfe-group-fail {
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 12.5px;
  padding: 10px;
}
qdnapro-formula-editor .qfe-item .menu-item-label {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 12.5px;
  color: var(--c-brand-purple, #40499a);
}
qdnapro-formula-editor .qfe-ops {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}
qdnapro-formula-editor .qfe-ops qdnapro-button {
  width: 100%;
}
qdnapro-formula-editor .qfe-fieldwrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
qdnapro-formula-editor .qfe-field {
  box-sizing: border-box;
  width: 100%;
  min-height: 84px;
  resize: vertical;
  padding: 12px 14px;
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 15px;
  line-height: 1.6;
  color: var(--c-text-body, #24262c);
  background: var(--c-bg-card, #fff);
  border: 1.5px solid var(--c-brand-purple, #40499a);
  border-radius: 10px;
}
qdnapro-formula-editor .qfe-field:focus {
  outline: none;
  box-shadow: 0 0 0 3px var(--c-bg-secondary-purple, #e6e9ff);
}
qdnapro-formula-editor .qfe-field::selection {
  background: var(--c-brand-purple, #40499a);
  color: var(--c-text-on-action);
}
qdnapro-formula-editor .qfe-hint {
  margin: 0;
  font-size: 12.5px;
  color: var(--c-text-muted, #6e7280);
}
qdnapro-formula-editor .qfe-status {
  margin: 0;
  min-height: 1.2em;
  font-size: 12.5px;
}
qdnapro-formula-editor .qfe-status-goed {
  color: var(--c-tag-new-text, #1f7a48);
}
qdnapro-formula-editor .qfe-status-fout {
  color: var(--c-tag-critical-text, #c33a30);
}
qdnapro-formula-editor .qfe-status-waarschuwing {
  color: var(--c-tag-warning-text, #a06400);
}
qdnapro-formula-editor .qfe-list::-webkit-scrollbar {
  width: 6px;
}
qdnapro-formula-editor .qfe-list::-webkit-scrollbar-track {
  background: transparent;
}
qdnapro-formula-editor .qfe-list::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.18);
  border-radius: 3px;
}
qdnapro-formula-editor .qfe-list {
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.18) transparent;
}
@media (max-width: 720px) {
  qdnapro-formula-editor .qfe-cols {
    grid-template-columns: 1fr;
  }
  qdnapro-formula-editor .qfe-ops {
    grid-template-columns: repeat(4, 1fr);
  }
  qdnapro-formula-editor .qfe-list {
    max-height: 168px;
  }
}

.qdnapro-gif-sheet {
  display: contents;
}

.qdnapro-bottom-sheet[data-gif-sheet] .bs-panel {
  height: 80%;
  max-height: 80%;
}

.qdnapro-bottom-sheet[data-gif-sheet] .bs-body {
  overflow: hidden;
  gap: 0;
  padding: 0;
}

qdnapro-popover[data-gif-sheet] {
  width: min(92vw, 380px);
  padding: 8px;
  box-sizing: border-box;
}

qdnapro-popover[data-gif-sheet] .gs-root {
  flex: none;
  height: 460px;
}

qdnapro-popover[data-gif-sheet] .gs-header {
  padding: 0 0 8px;
}

qdnapro-popover[data-gif-sheet] .gs-scroll {
  padding: 0 0 8px;
}

.gs-root {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.gs-header {
  flex-shrink: 0;
  padding: 4px 12px 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.gs-search-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.gs-search-field {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
}

.gs-completions {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  max-height: 260px;
  overflow-y: auto;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 8px;
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.08), 0 1px 2px 0 rgba(0, 0, 0, 0.14);
  padding: 6px;
  z-index: 5;
}

.gs-completions[hidden] {
  display: none;
}

.gs-completion-item {
  display: flex;
  align-items: center;
  width: 100%;
  height: 36px;
  padding: 0 10px;
  margin: 0;
  border: none;
  background: none;
  border-radius: 4px;
  font-family: inherit;
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
  color: var(--c-grey-950);
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.gs-completion-item + .gs-completion-item {
  margin-top: 2px;
}

.gs-completion-item:hover {
  background: var(--c-grey-50);
}

.gs-categories {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 0 12px 10px;
}

.gs-categories::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.gs-suggestions {
  margin-top: 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.gs-suggestions-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text-muted);
}

.gs-suggestions-chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

.gs-badge-wrap {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}

.gs-badge {
  height: 16px;
  width: auto;
  display: block;
}

.gs-badge-dark {
  display: none;
}

[data-theme=dark] .gs-badge-light {
  display: none;
}

[data-theme=dark] .gs-badge-dark {
  display: block;
}

.gs-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  container: qdnapro-gif-sheet/inline-size;
}

.gs-scroll::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.gs-grid {
  column-count: 2;
  column-gap: 8px;
  padding: 0 12px 12px;
}

.gs-grid[hidden] {
  display: none;
}

@container qdnapro-gif-sheet (min-width: 560px) {
  .gs-grid, .gs-skeleton {
    column-count: 3;
  }
}
@container qdnapro-gif-sheet (min-width: 820px) {
  .gs-grid, .gs-skeleton {
    column-count: 4;
  }
}
.gs-cell {
  display: block;
  width: 100%;
  margin: 0 0 8px;
  border: none;
  background: none;
  padding: 0;
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  break-inside: avoid;
  -webkit-tap-highlight-color: transparent;
}

.gs-cell:active {
  opacity: 0.85;
}

.gs-img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 12px;
  background: var(--c-bg-card-hover);
}

.gs-skeleton {
  column-count: 2;
  column-gap: 8px;
  padding: 0 12px 12px;
}

.gs-skeleton[hidden] {
  display: none;
}

.gs-skel-cell {
  margin: 0 0 8px;
  break-inside: avoid;
}

.gs-skeleton qdnapro-skeleton-bone {
  border-radius: 12px;
}

.gs-empty[hidden] {
  display: none;
}

.gs-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 56px 24px;
  text-align: center;
  color: var(--c-text-muted);
}

.gs-empty-icon {
  width: 28px;
  height: 28px;
}

.gs-empty-text {
  font-size: 14px;
  max-width: 260px;
}

.gs-sentinel {
  height: 1px;
}

.qdnapro-grid-tile {
  --qgt-bg: var(--c-bg-card, #ffffff);
  --qgt-bg-hover: var(--c-bg-card-hover, #f7f8fa);
  --qgt-bg-pressed: var(--c-purple-soft-12, rgba(64, 73, 154, 0.12));
  --qgt-title-color: var(--c-text-heading, #1a1f4d);
  --qgt-meta-color: var(--c-text-muted, #6e7280);
  --qgt-focus-ring: var(--c-brand-purple, #40499a);
  --qgt-focus-glow: var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
  --qgt-selected-ring: var(--c-brand-purple, #40499a);
  --qgt-selected-glow: var(--c-action-18, rgba(70, 82, 243, 0.18));
  --qgt-pill-strong-bg: var(--c-warn-red-500, #dc2626);
  --qgt-pill-strong-fg: #ffffff;
  --qgt-pill-soft-bg: var(--c-grey-50, #f0f1f2);
  --qgt-pill-soft-icon-fg: var(--c-action-500, #4652f3);
  --qgt-pill-soft-count-fg: var(--qgt-title-color);
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  position: relative;
  background: var(--qgt-bg);
  border-radius: var(--r-3, 12px);
  padding: 10px;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  font-family: var(--ff, "Inter", system-ui, -apple-system, sans-serif);
  color: var(--qgt-title-color);
  transition: box-shadow 150ms ease, transform 150ms ease, background-color 100ms ease-out;
}
.qdnapro-grid-tile:hover:not(.qgt-disabled):not(.qgt-static) {
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.07), 0 1px 3px rgba(0, 0, 0, 0.06);
  transform: translateY(-1px);
}
.qdnapro-grid-tile.qgt-static {
  cursor: default;
}
.qdnapro-grid-tile.is-pressed:not(.qgt-disabled) {
  background: var(--qgt-bg-pressed);
  transform: scale(0.96);
  transition: transform 70ms ease-out;
}
.qdnapro-grid-tile:focus {
  outline: none;
}
.qdnapro-grid-tile:focus-visible, .qdnapro-grid-tile.force-focus {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--qgt-focus-ring), inset 0 0 0 5px var(--qgt-focus-glow);
}
.qdnapro-grid-tile.qgt-selected {
  box-shadow: 0 0 0 3px var(--qgt-selected-glow);
  background: var(--c-bg-subtle-purple, #f3f5ff);
}
.qdnapro-grid-tile.qgt-selected .qgt-title {
  color: var(--qgt-selected-ring);
}
.qdnapro-grid-tile.qgt-selected:hover:not(.qgt-disabled) {
  box-shadow: 0 0 0 3px var(--qgt-selected-glow), 0 4px 10px rgba(0, 0, 0, 0.07);
}
.qdnapro-grid-tile.qgt-disabled {
  opacity: 0.5;
  cursor: default;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-grid-tile {
    transition: none;
  }
  .qdnapro-grid-tile:hover:not(.qgt-disabled) {
    transform: none;
  }
  .qdnapro-grid-tile.is-pressed:not(.qgt-disabled) {
    transform: none;
    transition: none;
  }
}
.qdnapro-grid-tile.force-hover {
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.07), 0 1px 3px rgba(0, 0, 0, 0.06);
  transform: translateY(-1px);
}
.qdnapro-grid-tile.force-pressed {
  background: var(--qgt-bg-pressed);
  transform: scale(0.96);
}

.qdnapro-grid-tile.qgt-size-s {
  width: 96px;
}
.qdnapro-grid-tile.qgt-size-s .qgt-artwork {
  width: 60px;
  height: 60px;
}
.qdnapro-grid-tile.qgt-size-s .qgt-artwork-icon {
  width: 30px;
  height: 30px;
}
.qdnapro-grid-tile.qgt-size-s .qgt-title {
  font-size: 12px;
}
.qdnapro-grid-tile.qgt-size-s .qgt-meta {
  font-size: 10px;
}

.qdnapro-grid-tile.qgt-size-m {
  width: 120px;
}
.qdnapro-grid-tile.qgt-size-m .qgt-artwork {
  width: 76px;
  height: 76px;
}
.qdnapro-grid-tile.qgt-size-m .qgt-artwork-icon {
  width: 38px;
  height: 38px;
}
.qdnapro-grid-tile.qgt-size-m .qgt-title {
  font-size: 13px;
}
.qdnapro-grid-tile.qgt-size-m .qgt-meta {
  font-size: 11px;
}

.qdnapro-grid-tile.qgt-size-l {
  width: 148px;
}
.qdnapro-grid-tile.qgt-size-l .qgt-artwork {
  width: 92px;
  height: 92px;
}
.qdnapro-grid-tile.qgt-size-l .qgt-artwork-icon {
  width: 46px;
  height: 46px;
}
.qdnapro-grid-tile.qgt-size-l .qgt-title {
  font-size: 14px;
}
.qdnapro-grid-tile.qgt-size-l .qgt-meta {
  font-size: 12px;
}

.qgt-artwork {
  position: relative;
  flex: 0 0 auto;
  border-radius: var(--r-3, 12px);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--qgt-artwork-bg, var(--c-purple-soft-12, rgba(64, 73, 154, 0.12)));
  color: var(--qgt-artwork-fg, var(--c-brand-purple, #40499a));
  overflow: hidden;
}

.qgt-artwork-activity {
  display: flex;
  align-items: center;
  justify-content: center;
}

.qgt-artwork-activity img,
.qgt-artwork-activity .activity-icon-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.qgt-tint-purple {
  --qgt-artwork-bg: var(--c-chip-purple-bg);
  --qgt-artwork-fg: var(--c-brand-purple, #40499a);
}

.qgt-tint-grey {
  --qgt-artwork-bg: var(--c-grey-50);
  --qgt-artwork-fg: var(--c-grey-600, #565b66);
}

.qgt-tint-red {
  --qgt-artwork-bg: var(--c-signal-red-bg);
  --qgt-artwork-fg: var(--c-signal-red-text, #c65a5a);
}

.qgt-tint-yellow {
  --qgt-artwork-bg: var(--c-chip-yellow-bg);
  --qgt-artwork-fg: var(--c-signal-yellow-text, #bf7202);
}

.qgt-tint-green {
  --qgt-artwork-bg: var(--c-chip-green-bg);
  --qgt-artwork-fg: var(--c-signal-green-text, #428b6e);
}

.qgt-tint-blue {
  --qgt-artwork-bg: var(--c-signal-blue-bg);
  --qgt-artwork-fg: var(--c-signal-blue-text, #6a8ab4);
}

.qgt-tint-bright-blue {
  --qgt-artwork-bg: var(--c-chip-bright-blue-2-bg);
  --qgt-artwork-fg: var(--c-purple-400);
}

.qgt-tint-pink {
  --qgt-artwork-bg: var(--c-signal-pink-bg);
  --qgt-artwork-fg: var(--c-signal-pink-text, #b25777);
}

[data-theme=dark] .qgt-tint-purple {
  --qgt-artwork-bg: #3a3555;
  --qgt-artwork-fg: var(--c-purple-200, #a5acff);
}

[data-theme=dark] .qgt-tint-grey {
  --qgt-artwork-bg: #40444d;
  --qgt-artwork-fg: var(--c-grey-300, #c4c7cc);
}

[data-theme=dark] .qgt-tint-red {
  --qgt-artwork-bg: #5a2b2b;
  --qgt-artwork-fg: var(--c-warn-red-400, #f87171);
}

[data-theme=dark] .qgt-tint-yellow {
  --qgt-artwork-bg: #5a4d1f;
  --qgt-artwork-fg: var(--c-warn-yellow-500, #fbbf24);
}

[data-theme=dark] .qgt-tint-green {
  --qgt-artwork-bg: #2a5544;
  --qgt-artwork-fg: #7fe0bc;
}

[data-theme=dark] .qgt-tint-blue {
  --qgt-artwork-bg: #2e3e54;
  --qgt-artwork-fg: #8fb4e0;
}

[data-theme=dark] .qgt-tint-bright-blue {
  --qgt-artwork-bg: #3a4a8a;
  --qgt-artwork-fg: #b9c8f5;
}

[data-theme=dark] .qgt-tint-pink {
  --qgt-artwork-bg: #4e2a36;
  --qgt-artwork-fg: #e4a0b8;
}

.qgt-slot-wrap {
  display: contents;
}

.qgt-badge {
  position: absolute;
  top: 0;
  right: -8px;
  transform: translateY(-30%);
  z-index: 2;
}
.qgt-badge:empty {
  display: none;
}

.qgt-pills {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.qgt-pill {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 16px;
  padding: 0 5px;
  border-radius: 999px;
  line-height: 1;
  font-weight: 600;
  font-size: 10px;
  font-family: var(--ff, "Inter", system-ui, -apple-system, sans-serif);
  white-space: nowrap;
}

.qgt-pill-icon {
  width: 10px;
  height: 10px;
  flex-shrink: 0;
}

.qgt-pill-count {
  line-height: 1;
}

.qgt-pill-strong {
  background: var(--qgt-pill-strong-bg);
  color: var(--qgt-pill-strong-fg);
}
.qgt-pill-strong .qgt-pill-icon {
  color: var(--qgt-pill-strong-fg);
}

.qgt-pill-soft {
  background: var(--qgt-pill-soft-bg);
  color: var(--qgt-pill-soft-count-fg);
}
.qgt-pill-soft .qgt-pill-icon {
  color: var(--qgt-pill-soft-icon-fg);
}

[data-theme=dark] .qgt-pill-soft {
  --qgt-pill-soft-bg: #40444d;
  --qgt-pill-soft-count-fg: var(--c-grey-100, #e7e9ec);
}

.qgt-body {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  margin-top: 8px;
  text-align: center;
}

.qgt-title {
  font-weight: 500;
  line-height: 1.3;
  color: var(--qgt-title-color);
  width: 100%;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-word;
}

.qgt-meta {
  font-weight: 400;
  line-height: 1.3;
  color: var(--qgt-meta-color);
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qgt-meta-rich {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow: visible;
  white-space: normal;
  margin-top: 2px;
}

.qgt-layout-tile .qgt-meta-rich {
  justify-content: center;
}

.qgt-artwork-img {
  width: 100%;
  height: 100%;
  display: block;
}
.qgt-artwork-img.qgt-fit-cover {
  object-fit: cover;
}
.qgt-artwork-img.qgt-fit-contain {
  object-fit: contain;
}
.qgt-artwork-img.qgt-pos-top {
  object-position: top left;
}
.qgt-artwork-img.qgt-pos-center {
  object-position: center;
}

.qgt-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  width: 100%;
  margin-top: 9px;
}
.qgt-stats:empty {
  display: none;
}

.qdnapro-grid-tile-stat {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.qgts-label {
  font-size: 10.5px;
  line-height: 1.3;
  color: var(--c-grey-400);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.qgts-value {
  font-size: 13px;
  line-height: 1.3;
  font-weight: 500;
  color: var(--c-chip-blue-text);
}

.qdnapro-grid-tile.qgt-layout-card {
  width: 100%;
  align-items: stretch;
  padding: 0;
  border: 1px solid var(--c-grey-100);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
  overflow: visible;
}
.qdnapro-grid-tile.qgt-layout-card .qgt-artwork {
  width: 100%;
  border-radius: var(--r-3, 12px) var(--r-3, 12px) 0 0;
}
.qdnapro-grid-tile.qgt-layout-card .qgt-artwork:empty {
  display: none;
}
.qdnapro-grid-tile.qgt-layout-card .qgt-body {
  align-items: flex-start;
  text-align: left;
  margin-top: 0;
  padding: 14px 15px;
  gap: 3px;
}
.qdnapro-grid-tile.qgt-layout-card .qgt-title {
  line-height: 1.35;
}
.qdnapro-grid-tile.qgt-layout-card .qgt-artwork qdnapro-avatar {
  flex-shrink: 0;
}

.qdnapro-grid-tile.qgt-layout-card.qgt-size-s .qgt-artwork {
  height: 96px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-s .qgt-artwork-icon {
  width: 34px;
  height: 34px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-s .qgt-artwork qdnapro-avatar {
  width: 48px;
  height: 48px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-s .qgt-title {
  font-size: 13px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-s .qgt-meta {
  font-size: 11.5px;
}

.qdnapro-grid-tile.qgt-layout-card.qgt-size-m .qgt-artwork {
  height: 136px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-m .qgt-artwork-icon {
  width: 44px;
  height: 44px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-m .qgt-artwork qdnapro-avatar {
  width: 64px;
  height: 64px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-m .qgt-title {
  font-size: 14px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-m .qgt-meta {
  font-size: 12.5px;
}

.qdnapro-grid-tile.qgt-layout-card.qgt-size-l .qgt-artwork {
  height: 168px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-l .qgt-artwork-icon {
  width: 54px;
  height: 54px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-l .qgt-artwork qdnapro-avatar {
  width: 78px;
  height: 78px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-l .qgt-title {
  font-size: 15px;
}
.qdnapro-grid-tile.qgt-layout-card.qgt-size-l .qgt-meta {
  font-size: 13px;
}

.qdnapro-hub-tile {
  --qht-bg: var(--c-bg-card, #ffffff);
  --qht-border: var(--c-grey-100, #e6e6f2);
  --qht-border-hover: var(--c-purple-100, #c9c4f5);
  --qht-title-color: var(--c-text-heading, #1a1f4d);
  --qht-sub-color: var(--c-text-muted, #6e7280);
  --qht-divider: var(--c-grey-50, #f0f0f8);
  --qht-focus-ring: var(--c-brand-purple, #40499a);
  --qht-focus-glow: var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
  --qht-art-size: 72px;
  --qht-visual-size: 64px;
  --qht-min-height: 170px;
  --qht-title-size: 14px;
  --qht-pad-y: 20px;
  --qht-pad-x: 16px;
  --qht-gap: 10px;
  --qht-stats-gap: 18px;
  --qht-stats-space: 10px;
  --qht-stat-value-size: 16px;
  --qht-stat-label-size: 11px;
  display: block;
  box-sizing: border-box;
  font-family: var(--ff, "Inter", system-ui, -apple-system, sans-serif);
  height: 100%;
}
.qdnapro-hub-tile[data-size=s] {
  --qht-art-size: 56px;
  --qht-visual-size: 50px;
  --qht-min-height: 132px;
  --qht-title-size: 13px;
  --qht-pad-y: 14px;
  --qht-pad-x: 12px;
  --qht-gap: 8px;
  --qht-stats-gap: 14px;
  --qht-stats-space: 8px;
  --qht-stat-value-size: 13px;
  --qht-stat-label-size: 11px;
}
.qdnapro-hub-tile[data-size=l] {
  --qht-art-size: 88px;
  --qht-visual-size: 80px;
  --qht-min-height: 196px;
  --qht-title-size: 15px;
}

.qht-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--qht-gap);
  width: 100%;
  height: 100%;
  min-height: var(--qht-min-height);
  box-sizing: border-box;
  padding: var(--qht-pad-y) var(--qht-pad-x);
  background: var(--qht-bg);
  border: 1px solid var(--qht-border);
  border-radius: var(--r-3, 14px);
  color: var(--qht-title-color);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  font-family: inherit;
  -webkit-tap-highlight-color: transparent;
  transition: box-shadow 180ms ease, transform 180ms ease, border-color 180ms ease;
}
.qht-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(60, 50, 140, 0.14);
  border-color: var(--qht-border-hover);
  text-decoration: none;
  color: var(--qht-title-color);
}
.qht-card:focus {
  outline: none;
}
.qht-card:focus-visible {
  outline: none;
  border-color: var(--qht-focus-ring);
  box-shadow: 0 0 0 3px var(--qht-focus-glow);
}

.qht-card-with-stats {
  justify-content: flex-start;
}
.qht-card-with-stats .qht-stats {
  margin-top: auto;
}

.qht-art {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: var(--qht-art-size);
  height: var(--qht-art-size);
  border-radius: var(--r-2, 16px);
  background: var(--qht-art-bg);
  color: var(--qht-art-fg);
  overflow: hidden;
}
.qht-art > .qht-art-anim,
.qht-art > .qht-art-activity,
.qht-art > .qht-art-icon,
.qht-art > .qht-art-slotted,
.qht-art > * {
  width: var(--qht-visual-size);
  height: var(--qht-visual-size);
  display: block;
}
.qht-art > img,
.qht-art .qht-art-slotted img {
  object-fit: contain;
}

.qht-art .qht-art-anim {
  --ql-size: var(--qht-visual-size);
}

.qht-art-icon {
  font-size: var(--qht-visual-size);
  line-height: 1;
  color: var(--qht-art-fg);
}

.qht-title {
  font-size: var(--qht-title-size);
  font-weight: 600;
  line-height: 1.3;
  color: var(--qht-title-color);
}

.qht-sub {
  margin-top: -4px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.35;
  color: var(--qht-sub-color);
}

.qht-stats {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  align-self: stretch;
  width: auto;
  margin-top: calc(var(--qht-stats-space) - 4px);
  margin-left: calc(var(--qht-pad-x) * -1);
  margin-right: calc(var(--qht-pad-x) * -1);
  padding: var(--qht-stats-space) var(--qht-pad-x) 0;
  border-top: 1px solid var(--qht-divider);
}

.qht-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
  text-align: center;
  line-height: 1.2;
  font-size: var(--qht-stat-label-size);
  color: var(--qht-sub-color);
}
.qht-stat b {
  font-size: var(--qht-stat-value-size);
  font-weight: 600;
  color: var(--qht-title-color);
}

.qdnapro-hub-tile[data-size=s] .qht-stat {
  flex-direction: row;
  align-items: baseline;
  justify-content: center;
  gap: 5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.qdnapro-hub-tile[data-size=s] .qht-stat b {
  flex: 0 0 auto;
}
.qdnapro-hub-tile[data-size=s] .qht-stat span {
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-hub-tile.qht-disabled {
  opacity: 0.5;
}
.qdnapro-hub-tile.qht-disabled .qht-card {
  pointer-events: none;
  cursor: default;
}

.qht-tint-purple {
  --qht-art-bg: var(--c-chip-purple-bg);
  --qht-art-fg: var(--c-brand-purple, #40499a);
}

.qht-tint-grey {
  --qht-art-bg: var(--c-grey-50);
  --qht-art-fg: var(--c-grey-600, #565b66);
}

.qht-tint-red {
  --qht-art-bg: var(--c-signal-red-bg);
  --qht-art-fg: var(--c-signal-red-text, #c65a5a);
}

.qht-tint-yellow {
  --qht-art-bg: var(--c-chip-yellow-bg);
  --qht-art-fg: var(--c-signal-yellow-text, #bf7202);
}

.qht-tint-green {
  --qht-art-bg: var(--c-chip-green-bg);
  --qht-art-fg: var(--c-signal-green-text, #428b6e);
}

.qht-tint-blue {
  --qht-art-bg: var(--c-signal-blue-bg);
  --qht-art-fg: var(--c-signal-blue-text, #6a8ab4);
}

.qht-tint-bright-blue {
  --qht-art-bg: var(--c-chip-bright-blue-2-bg);
  --qht-art-fg: var(--c-purple-400);
}

.qht-tint-pink {
  --qht-art-bg: var(--c-signal-pink-bg);
  --qht-art-fg: var(--c-signal-pink-text, #b25777);
}

[data-theme=dark] .qht-tint-purple {
  --qht-art-bg: #3a3555;
  --qht-art-fg: var(--c-purple-200, #a5acff);
}

[data-theme=dark] .qht-tint-grey {
  --qht-art-bg: #40444d;
  --qht-art-fg: var(--c-grey-300, #c4c7cc);
}

[data-theme=dark] .qht-tint-red {
  --qht-art-bg: #5a2b2b;
  --qht-art-fg: var(--c-warn-red-400, #f87171);
}

[data-theme=dark] .qht-tint-yellow {
  --qht-art-bg: #5a4d1f;
  --qht-art-fg: var(--c-warn-yellow-500, #fbbf24);
}

[data-theme=dark] .qht-tint-green {
  --qht-art-bg: #2a5544;
  --qht-art-fg: #7fe0bc;
}

[data-theme=dark] .qht-tint-blue {
  --qht-art-bg: #2e3e54;
  --qht-art-fg: #8fb4e0;
}

[data-theme=dark] .qht-tint-bright-blue {
  --qht-art-bg: #3a4a8a;
  --qht-art-fg: #b9c8f5;
}

[data-theme=dark] .qht-tint-pink {
  --qht-art-bg: #4e2a36;
  --qht-art-fg: #e4a0b8;
}

[data-theme=dark] .qdnapro-hub-tile {
  --qht-bg: var(--c-bg-card, #2e3036);
  --qht-border: var(--c-grey-700, #40444d);
  --qht-border-hover: var(--c-purple-400, #7b83e8);
  --qht-title-color: var(--c-text-heading, #e1e3e6);
  --qht-sub-color: var(--c-text-muted, #898e99);
  --qht-divider: var(--c-grey-700, #40444d);
}

.qht-slot-wrap {
  display: contents;
}

@property --qht-ring-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
@keyframes qht-ring-spin {
  to {
    --qht-ring-angle: 360deg;
  }
}
.qdnapro-hub-tile[data-variant=illustration] {
  --qht-illu-h: 88px;
  --qht-illu-title-color: #394290;
  --qht-pill-text: #22203a;
  --qht-illu-shadow: 0 10px 28px -18px rgba(38, 34, 80, 0.4);
  --qht-illu-shadow-hover: 0 16px 34px -18px rgba(38, 34, 80, 0.42);
}
.qdnapro-hub-tile[data-variant=illustration][data-size=s] {
  --qht-illu-h: 72px;
}
.qdnapro-hub-tile[data-variant=illustration][data-size=l] {
  --qht-illu-h: 110px;
}

[data-theme=dark] .qdnapro-hub-tile[data-variant=illustration] {
  --qht-illu-title-color: var(--qht-title-color);
  --qht-pill-text: var(--qht-title-color);
  --qht-illu-shadow: 0 10px 28px -18px rgba(0, 0, 0, 0.6);
  --qht-illu-shadow-hover: 0 16px 34px -18px rgba(0, 0, 0, 0.7);
}

.qht-card.qht-card-illu {
  position: relative;
  isolation: isolate;
  justify-content: flex-start;
  gap: 10px;
  min-height: 0;
  padding: 16px 14px 14px;
  border: 0;
  border-radius: 20px;
  box-shadow: var(--qht-illu-shadow);
  transition: transform 280ms cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 280ms ease;
}
.qht-card.qht-card-illu::before {
  content: "";
  position: absolute;
  inset: -3px;
  z-index: -1;
  padding: 3px;
  border-radius: 23px;
  background: var(--qht-bg) conic-gradient(from var(--qht-ring-angle), transparent 0deg, var(--qht-accent, var(--qht-art-fg)) 80deg, transparent 130deg);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  opacity: 0;
  pointer-events: none;
  transition: opacity 300ms ease;
  animation: qht-ring-spin 3s linear infinite;
}
.qht-card.qht-card-illu .qht-art {
  width: auto;
  height: var(--qht-illu-h);
  background: none;
  border-radius: 0;
  overflow: visible;
}
.qht-card.qht-card-illu .qht-art > *,
.qht-card.qht-card-illu .qht-art > .qht-art-slotted {
  width: auto;
  height: 100%;
  max-width: 100%;
}
.qht-card.qht-card-illu .qht-title {
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: var(--qht-illu-title-color);
  white-space: nowrap;
  transition: color 300ms ease;
}
.qht-card.qht-card-illu .qht-pills {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
}
.qht-card.qht-card-illu .qht-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 13px;
  border-radius: 10px;
  background: var(--qht-accent-soft, var(--qht-art-bg));
  color: var(--qht-pill-text);
  font-size: 14px;
  line-height: 1.3;
  white-space: nowrap;
  transition: background 400ms ease;
}
.qht-card.qht-card-illu .qht-pill b {
  font-weight: 800;
  color: var(--qht-accent, var(--qht-art-fg));
  transition: color 400ms ease;
}
.qht-card.qht-card-illu .qht-pill-icon {
  flex: 0 0 auto;
  font-size: 16px;
  line-height: 1;
  color: var(--qht-accent, var(--qht-art-fg));
}

.qht-card.qht-card-illu:hover,
.qht-card.qht-card-illu:focus-visible,
.qdnapro-hub-tile[highlight] .qht-card.qht-card-illu {
  transform: translateY(-3px);
  box-shadow: var(--qht-illu-shadow-hover);
}
.qht-card.qht-card-illu:hover::before,
.qht-card.qht-card-illu:focus-visible::before,
.qdnapro-hub-tile[highlight] .qht-card.qht-card-illu::before {
  opacity: 1;
}
.qht-card.qht-card-illu:hover .qht-title,
.qht-card.qht-card-illu:focus-visible .qht-title,
.qdnapro-hub-tile[highlight] .qht-card.qht-card-illu .qht-title {
  color: var(--qht-accent, var(--qht-art-fg));
}

.qht-card.qht-card-illu:focus-visible {
  outline: 3px solid var(--qht-accent, var(--qht-art-fg));
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .qht-card {
    transition: box-shadow 180ms ease, border-color 180ms ease;
  }
  .qht-card:hover {
    transform: none;
  }
  .qht-card.qht-card-illu::before {
    animation: none;
  }
  .qht-card.qht-card-illu:hover,
  .qht-card.qht-card-illu:focus-visible,
  .qdnapro-hub-tile[highlight] .qht-card.qht-card-illu {
    transform: none;
    box-shadow: var(--qht-illu-shadow-hover), 0 0 0 2px var(--qht-accent, var(--qht-art-fg));
  }
  .qht-card.qht-card-illu:hover::before,
  .qht-card.qht-card-illu:focus-visible::before,
  .qdnapro-hub-tile[highlight] .qht-card.qht-card-illu::before {
    opacity: 0;
  }
}
.qdna-icon-field {
  display: flex;
  align-items: center;
  gap: 24px;
}
.qdna-icon-field__preview-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  max-width: 120px;
}
.qdna-icon-field__preview {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--c-grey-50, #f0f1f2);
}
.qdna-icon-field__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.qdna-icon-field__sub {
  color: var(--c-grey-500, #6b7280);
}
.qdna-icon-field__btn {
  align-self: flex-start;
}

.qdnapro-history-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px;
  border-radius: 8px;
  background: var(--c-bg-card);
  color: var(--c-grey-950);
  box-sizing: border-box;
  cursor: pointer;
  user-select: none;
  border: 0.5px solid transparent;
  transition: background-color 120ms ease;
}

.qdnapro-history-item:focus {
  outline: none;
}

.qdnapro-history-item:focus-visible, .qdnapro-history-item.force-focus {
  outline: 2px solid var(--c-purple-500);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-history-item .history-item-row {
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
}

.qdnapro-history-item .history-item-row-top {
  gap: 4px;
}

.qdnapro-history-item .history-item-row-bottom {
  gap: 8px;
}

.qdnapro-history-item .history-item-subject {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
}

.qdnapro-history-item .history-item-preview {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: "Inter", sans-serif;
  font-size: 12px;
  line-height: 20px;
  font-weight: 400;
}

.qdnapro-history-item .history-item-time {
  flex-shrink: 0;
  font-family: "Inter", sans-serif;
  font-size: 12px;
  line-height: 20px;
  font-weight: 400;
  white-space: nowrap;
}

.qdnapro-history-item .history-item-actions {
  display: flex;
  gap: 0;
  flex-shrink: 0;
}

.qdnapro-history-item .history-item-actions > .qdnapro-icon-btn {
  width: 0;
  min-width: 0;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transition: max-width 200ms cubic-bezier(0.4, 0, 0.2, 1), width 200ms cubic-bezier(0.4, 0, 0.2, 1), min-width 200ms cubic-bezier(0.4, 0, 0.2, 1), margin-left 200ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms ease, background-color 120ms ease-out;
}

.qdnapro-history-item .history-item-actions > .history-item-more-btn {
  margin-left: 0;
}

.qdnapro-history-item:hover .history-item-actions > .qdnapro-icon-btn, .qdnapro-history-item:focus-within .history-item-actions > .qdnapro-icon-btn, .qdnapro-history-item.force-hover .history-item-actions > .qdnapro-icon-btn {
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  opacity: 1;
  pointer-events: auto;
}

.qdnapro-history-item:hover .history-item-actions > .history-item-more-btn, .qdnapro-history-item:focus-within .history-item-actions > .history-item-more-btn, .qdnapro-history-item.force-hover .history-item-actions > .history-item-more-btn {
  margin-left: 4px;
}

.qdnapro-history-item .qdnapro-icon-btn.icon-btn-subtle:hover:not(.icon-btn-disabled) {
  background-color: var(--c-grey-300);
}

.qdnapro-history-item .qdnapro-icon-btn.icon-btn-subtle:active:not(.icon-btn-disabled) {
  background-color: var(--c-grey-400);
}

.qdnapro-history-item:not(.history-item-disabled):hover {
  background: var(--c-grey-50);
}

.qdnapro-history-item:not(.history-item-disabled):active {
  background: var(--c-border-card);
}

.qdnapro-history-item.force-hover:not(.history-item-disabled) {
  background: var(--c-grey-50);
}

.qdnapro-history-item.force-pressed:not(.history-item-disabled) {
  background: var(--c-border-card);
}

.qdnapro-history-item.history-item-pinned .history-item-actions > .history-item-pin-btn {
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  opacity: 1;
  pointer-events: auto;
}

.qdnapro-history-item.history-item-disabled, .qdnapro-history-item.history-item-disabled:hover, .qdnapro-history-item.history-item-disabled:active {
  color: var(--c-text-disabled);
  background: transparent;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-history-item.history-item-disabled:focus-visible, .qdnapro-history-item.history-item-disabled.force-focus {
  outline: none;
  box-shadow: none;
}

[data-theme=dark] .qdnapro-history-item {
  background: #1f2024;
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-history-item:not(.history-item-disabled):hover, [data-theme=dark] .qdnapro-history-item.force-hover:not(.history-item-disabled) {
  background: #2a2c33;
}

[data-theme=dark] .qdnapro-history-item:not(.history-item-disabled):active, [data-theme=dark] .qdnapro-history-item.force-pressed:not(.history-item-disabled) {
  background: #353841;
}

[data-theme=dark] .qdnapro-history-item .qdnapro-icon-btn.icon-btn-subtle:hover:not(.icon-btn-disabled) {
  background-color: #565b66;
}

[data-theme=dark] .qdnapro-history-item .qdnapro-icon-btn.icon-btn-subtle:active:not(.icon-btn-disabled) {
  background-color: #6b7280;
}

[data-theme=dark] .qdnapro-history-item.history-item-disabled, [data-theme=dark] .qdnapro-history-item.history-item-disabled:hover, [data-theme=dark] .qdnapro-history-item.history-item-disabled:active {
  color: #6b7280;
  background: transparent;
}

.qdnapro-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  line-height: 1;
  width: 1em;
  height: 1em;
}

.qdnapro-icon > svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: currentColor;
}

.qdnapro-icon.icon-16 {
  width: 16px;
  height: 16px;
}

.qdnapro-icon.icon-20 {
  width: 20px;
  height: 20px;
}

.qdnapro-icon.icon-24 {
  width: 24px;
  height: 24px;
}

/* qdnapro-icon-btn compiled CSS -- generated from _icon-btn.scss 2026-05-13-danger */
.qdnapro-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 24px;
  height: 24px;
  min-width: 24px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  --ib-focus-ring: var(--c-purple-500);
  --ib-focus-glow: rgba(70, 82, 243, 0.25);
  cursor: pointer;
  user-select: none;
  transition: background-color 120ms ease-out, color 120ms ease-out;
}

.qdnapro-icon-btn qdnapro-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
}

.qdnapro-icon-btn.icon-btn-size-big {
  width: 28px;
  height: 28px;
  min-width: 28px;
}

.qdnapro-icon-btn.icon-btn-size-big qdnapro-icon {
  width: 20px;
  height: 20px;
}

.qdnapro-icon-btn:focus {
  outline: none;
}

.qdnapro-icon-btn:focus-visible, .qdnapro-icon-btn.force-focus {
  outline: 2px solid var(--ib-focus-ring);
  outline-offset: var(--ib-focus-offset, -2px);
  box-shadow: 0 0 0 4px var(--ib-focus-glow);
}

.qdnapro-icon-btn.icon-btn-disabled:focus-visible, .qdnapro-icon-btn.icon-btn-disabled.force-focus {
  outline: none;
  box-shadow: none;
}

.qdnapro-icon-btn:active:not(.icon-btn-disabled) {
  background-image: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15));
}

/* TYPE: primary-purple */
.qdnapro-icon-btn.icon-btn-primary-purple {
  background-color: var(--c-purple-500);
  color: var(--c-text-on-action);
  --ib-focus-ring: var(--c-purple-700);
  --ib-focus-glow: rgba(70, 82, 243, 0.40);
}

.qdnapro-icon-btn.icon-btn-primary-purple:focus-visible, .qdnapro-icon-btn.icon-btn-primary-purple.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--ib-focus-ring), 0 0 0 6px var(--ib-focus-glow);
}

.qdnapro-icon-btn.icon-btn-primary-purple:hover:not(.icon-btn-disabled) {
  background-color: var(--c-purple-600);
}

/* TYPE: secondary */
.qdnapro-icon-btn.icon-btn-secondary {
  background-color: var(--c-grey-50);
  color: var(--c-grey-950);
}

.qdnapro-icon-btn.icon-btn-secondary:hover:not(.icon-btn-disabled) {
  background-color: var(--c-grey-300);
}

/* TYPE: dropdown-search */
.qdnapro-icon-btn.icon-btn-dropdown-search {
  background-color: var(--c-border-tree);
  color: var(--c-purple-500);
}

.qdnapro-icon-btn.icon-btn-dropdown-search:hover:not(.icon-btn-disabled) {
  background-color: var(--c-sidebar-icon);
}

/* TYPE: dropdown-input */
.qdnapro-icon-btn.icon-btn-dropdown-input {
  background-color: transparent;
  color: var(--c-grey-950);
}

.qdnapro-icon-btn.icon-btn-dropdown-input:hover:not(.icon-btn-disabled) {
  background-color: var(--c-grey-50);
}

/* TYPE: bulk-select */
.qdnapro-icon-btn.icon-btn-bulk-select {
  background-color: #e6e9ff;
  color: var(--c-purple-500);
}

.qdnapro-icon-btn.icon-btn-bulk-select:hover:not(.icon-btn-disabled) {
  background-color: var(--c-border-tree-bright);
}

/* TYPE: input-icon */
.qdnapro-icon-btn.icon-btn-input-icon {
  background-color: transparent;
  color: var(--c-grey-400);
}

.qdnapro-icon-btn.icon-btn-input-icon:hover:not(.icon-btn-disabled) {
  background-color: var(--c-grey-50);
  color: var(--c-grey-950);
}

.qdnapro-icon-btn.icon-btn-input-icon:active:not(.icon-btn-disabled) {
  color: var(--c-grey-950);
}

/* TYPE: subtle */
.qdnapro-icon-btn.icon-btn-subtle {
  background-color: transparent;
  color: var(--c-grey-950);
}

.qdnapro-icon-btn.icon-btn-subtle:hover:not(.icon-btn-disabled) {
  background-color: var(--c-grey-50);
}

.qdnapro-icon-btn.icon-btn-subtle:active:not(.icon-btn-disabled) {
  background-color: var(--c-border-card);
}

/* TYPE: subtle-purple -- mirrors the button component's subtle-purple-bg specs
   (transparent bg, purple icon, light-purple hover/active). [Kim 2026-06-17] */
.qdnapro-icon-btn.icon-btn-subtle-purple {
  background-color: transparent;
  color: var(--c-purple-500);
}

.qdnapro-icon-btn.icon-btn-subtle-purple:hover:not(.icon-btn-disabled) {
  background-color: var(--c-border-tree-bright);
}

.qdnapro-icon-btn.icon-btn-subtle-purple:active:not(.icon-btn-disabled) {
  background-color: var(--c-sidebar-icon);
}

/* TYPE: subtle-error */
.qdnapro-icon-btn.icon-btn-subtle-error {
  background-color: transparent;
  color: var(--c-signal-red-text);
}

.qdnapro-icon-btn.icon-btn-subtle-error:hover:not(.icon-btn-disabled) {
  background-color: rgba(198, 90, 90, 0.1);
}

.qdnapro-icon-btn.icon-btn-subtle-error:active:not(.icon-btn-disabled) {
  background-color: rgba(198, 90, 90, 0.18);
}

/* === type: outline-purple -- purple border + purple icon [2026-08-05] ===
   The purple counterpart of `danger` below: same shape, brand colour. Built for
   the plus buttons on the rule editor's rail, where a filled circle was too heavy
   and `subtle-purple` (no border at all) too quiet. */
.qdnapro-icon-btn.icon-btn-outline-purple {
  background-color: transparent;
  border-color: var(--c-sidebar-icon);
  color: var(--c-purple-500);
  --ib-focus-ring: var(--c-purple-500);
  --ib-focus-glow: rgba(70, 82, 243, 0.20);
}

.qdnapro-icon-btn.icon-btn-outline-purple:hover:not(.icon-btn-disabled) {
  background-color: var(--c-bg-subtle-purple);
  border-color: var(--c-purple-200);
  color: var(--c-purple-600);
}

.qdnapro-icon-btn.icon-btn-outline-purple:active:not(.icon-btn-disabled) {
  background-color: var(--c-border-tree-bright);
  border-color: var(--c-purple-500);
  color: var(--c-purple-700);
}

.qdnapro-icon-btn.icon-btn-outline-purple.icon-btn-disabled {
  background-color: transparent !important;
  border-color: var(--c-grey-100) !important;
  color: var(--c-grey-400) !important;
}

/* TYPE: danger -- red border + red icon + light red hover bg */
.qdnapro-icon-btn.icon-btn-danger {
  background-color: transparent;
  border-color: var(--c-chip-red-hover);
  color: var(--c-warn-red-500);
  --ib-focus-ring: var(--c-warn-red-500);
  --ib-focus-glow: rgba(239, 68, 68, 0.20);
}

.qdnapro-icon-btn.icon-btn-danger:hover:not(.icon-btn-disabled) {
  background-color: var(--c-signal-red-soft);
  border-color: var(--c-warn-red-400);
  color: var(--c-warn-red-500);
}

.qdnapro-icon-btn.icon-btn-danger:active:not(.icon-btn-disabled) {
  background-color: var(--c-signal-red-bg);
  border-color: var(--c-warn-red-500);
  color: var(--c-tag-critical-text);
}

/* TYPE: purple-active */
.qdnapro-icon-btn.icon-btn-purple-active {
  background-color: var(--c-border-tree-bright);
  color: var(--c-purple-500);
}

.qdnapro-icon-btn.icon-btn-purple-active:hover:not(.icon-btn-disabled) {
  background-color: var(--c-sidebar-icon);
}

.qdnapro-icon-btn.icon-btn-purple-active:active:not(.icon-btn-disabled) {
  background-color: var(--c-sidebar-icon);
}

/* STATE: disabled */
.qdnapro-icon-btn.icon-btn-disabled {
  background-color: var(--c-grey-50) !important;
  background-image: none !important;
  color: var(--c-text-disabled) !important;
  border-color: transparent !important;
  cursor: not-allowed;
  pointer-events: none;
}

[data-bg-context=purple] .qdnapro-icon-btn.icon-btn-disabled {
  background-color: var(--c-border-tree-bright) !important;
}

/* Dark mode */
[data-theme=dark] .qdnapro-icon-btn.icon-btn-primary-purple {
  background-color: #3842c2;
  color: #ffffff;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-primary-purple:hover:not(.icon-btn-disabled) {
  background-color: #2a3192;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-secondary {
  background-color: #2e3036;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-secondary:hover:not(.icon-btn-disabled) {
  background-color: #40444d;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-dropdown-search {
  background-color: #40444d;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-dropdown-search:hover:not(.icon-btn-disabled) {
  background-color: #565b66;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-dropdown-search.icon-btn-disabled {
  background-color: #2e3036 !important;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-dropdown-input {
  background-color: transparent;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-dropdown-input:hover:not(.icon-btn-disabled) {
  background-color: #565b66;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-bulk-select {
  background-color: #0b0b0d;
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-bulk-select:hover:not(.icon-btn-disabled) {
  background-color: #40444d;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-input-icon {
  background-color: transparent;
  color: #898e99;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-input-icon:hover:not(.icon-btn-disabled) {
  background-color: #565b66;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-input-icon:active:not(.icon-btn-disabled) {
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle {
  background-color: transparent;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle:hover:not(.icon-btn-disabled) {
  background-color: #565b66;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle:active:not(.icon-btn-disabled) {
  background-color: #6b7280;
}

/* subtle-purple dark: --c-purple-500 (#40499a) and --c-sidebar-icon (light grey
   in dark) have no usable dark values, so mirror purple-active's dark palette
   one step lighter: hover = purple-active's resting bg, active = its hover bg.
   Icon #a5acff matches the dark focus ring and purple-active's dark icon. [21.08.2026] */
[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle-purple {
  background-color: transparent;
  color: #a5acff;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle-purple:hover:not(.icon-btn-disabled) {
  background-color: rgba(70, 82, 243, 0.2);
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle-purple:active:not(.icon-btn-disabled) {
  background-color: rgba(70, 82, 243, 0.3);
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle-error {
  background-color: transparent;
  color: #fbaaaa;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle-error:hover:not(.icon-btn-disabled) {
  background-color: rgba(251, 170, 170, 0.12);
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-subtle-error:active:not(.icon-btn-disabled) {
  background-color: rgba(251, 170, 170, 0.2);
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-danger {
  background-color: transparent;
  border-color: rgba(252, 165, 165, 0.45);
  color: #fca5a5;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-danger:hover:not(.icon-btn-disabled) {
  background-color: rgba(239, 68, 68, 0.15);
  border-color: #fca5a5;
  color: #ffffff;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-danger:active:not(.icon-btn-disabled) {
  background-color: rgba(239, 68, 68, 0.25);
  border-color: #f87171;
  color: #ffffff;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-purple-active {
  background-color: rgba(70, 82, 243, 0.2);
  color: #a5acff;
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-purple-active:hover:not(.icon-btn-disabled) {
  background-color: rgba(70, 82, 243, 0.3);
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-purple-active:active:not(.icon-btn-disabled) {
  background-color: rgba(70, 82, 243, 0.42);
}

[data-theme=dark] .qdnapro-icon-btn.icon-btn-disabled {
  background-color: #40444d !important;
  color: #6b7280 !important;
}

[data-theme=dark] .qdnapro-icon-btn:focus-visible, [data-theme=dark] .qdnapro-icon-btn.force-focus {
  outline-color: #a5acff;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.4);
}

/* === size: touch — 44×44 minimum tap target [2026-06-30] === */
.qdnapro-icon-btn.icon-btn-size-touch {
  width: 44px;
  height: 44px;
  min-width: 44px;
}

/* === variant: round — full circle [2026-06-30] === */
.qdnapro-icon-btn.icon-btn-round {
  border-radius: 50%;
}

/* === type: on-dark-purple — icon on var(--c-purple-700) surface [2026-06-30] === */
.qdnapro-icon-btn.icon-btn-on-dark-purple {
  background-color: transparent;
  color: var(--c-purple-50);
}

.qdnapro-icon-btn.icon-btn-on-dark-purple:hover:not(.icon-btn-disabled) {
  background-color: var(--c-purple-500);
  color: var(--c-purple-50);
}

.qdnapro-icon-btn.icon-btn-on-dark-purple.icon-btn-disabled {
  background-color: transparent !important;
  color: var(--c-purple-300) !important;
}

/* === type: filled-dark-purple — own var(--c-purple-700) surface [2026-06-30] === */
.qdnapro-icon-btn.icon-btn-filled-dark-purple {
  background-color: var(--c-purple-700);
  color: var(--c-purple-50);
}

.qdnapro-icon-btn.icon-btn-filled-dark-purple:hover:not(.icon-btn-disabled) {
  background-color: var(--c-purple-600);
  color: var(--c-purple-50);
}

.qdnapro-icon-btn.icon-btn-filled-dark-purple.icon-btn-disabled {
  background-color: transparent !important;
  color: var(--c-purple-300) !important;
}

/* === type: filled-error — solid error-red surface, white icon [2026-08-04] ===
   The filled counterpart to subtle-error (transparent) and danger (bordered).
   Uses the same red as subtle-error (var(--c-signal-red-text)), not the danger palette's var(--c-warn-red-500):
   as a full fill that brighter red shouts, and the QDNA red is var(--c-signal-red-text).
   Made for the remove-circle on the rule editor's IF/THEN rail, which used to be
   a hand-rolled filled circle. Combine with `round`. */
.qdnapro-icon-btn.icon-btn-filled-error {
  background-color: var(--c-signal-red-text);
  color: var(--c-text-on-action);
  --ib-focus-ring: var(--c-chip-red-text);
  --ib-focus-glow: rgba(198, 90, 90, 0.40);
}

.qdnapro-icon-btn.icon-btn-filled-error:hover:not(.icon-btn-disabled) {
  background-color: var(--c-signal-red-text);
  color: var(--c-text-on-action);
}

.qdnapro-icon-btn.icon-btn-filled-error:active:not(.icon-btn-disabled) {
  background-color: var(--c-chip-red-text);
}

.qdnapro-icon-btn.icon-btn-filled-error.icon-btn-disabled {
  background-color: var(--c-chip-pink-hover) !important;
  color: var(--c-text-on-action) !important;
}

/* === type: filled-action — solid action-blue surface, white icon [16.08.2026] ===
   The send button at the end of a compose bar. primary-purple (--c-purple-500,
   #40499a) was the closest existing type and it is visibly darker and heavier:
   next to a text field it reads as chrome, while this one reads as "press me".
   Uses the ACTION scale, the same colour the primary buttons use.
   Built for the Pulse reactie-sheet. Combine with `round`. */
.qdnapro-icon-btn.icon-btn-filled-action {
  background-color: var(--c-action-500);
  color: var(--c-text-on-action);
  --ib-focus-ring: var(--c-action-700);
  --ib-focus-glow: var(--c-action-40);
}

.qdnapro-icon-btn.icon-btn-filled-action:focus-visible,
.qdnapro-icon-btn.icon-btn-filled-action.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--ib-focus-ring), 0 0 0 6px var(--ib-focus-glow);
}

.qdnapro-icon-btn.icon-btn-filled-action:hover:not(.icon-btn-disabled) {
  background-color: var(--c-action-600);
}

.qdnapro-icon-btn.icon-btn-filled-action:active:not(.icon-btn-disabled) {
  background-color: var(--c-action-700);
}

.qdnapro-icon-btn.icon-btn-filled-action.icon-btn-disabled {
  background-color: var(--c-action-30) !important;
  color: var(--c-text-on-action) !important;
}

/* ============================================================
 *  qdnapro-illustration — compiled from _illustration.scss
 * ============================================================ */
.qdnapro-illustration {
  display: inline-block;
  box-sizing: border-box;
  flex-shrink: 0;
  line-height: 0;
  vertical-align: middle;
  user-select: none;
  transition: opacity 140ms ease-out;
  height: auto;
}

.qdnapro-illustration .illustration-img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  pointer-events: none;
  background: transparent;
}

.qdnapro-illustration.illustration-disabled {
  opacity: 0.5;
}

.qdnapro-illustration.illustration-emphasis-soft {
  opacity: 0.6;
}

.qdnapro-illustration.illustration-emphasis-faint {
  opacity: 0.35;
}

.qdnapro-illustration.illustration-missing {
  position: relative;
  background: rgba(0, 0, 0, 0.03);
  border: 1px dashed #c4c7cc;
  border-radius: 12px;
  aspect-ratio: 4/3;
  height: auto;
}

.qdnapro-illustration.illustration-missing::after {
  content: "?";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Inter", sans-serif;
  font-size: 24px;
  color: #898e99;
}

[data-theme=dark] .qdnapro-illustration.illustration-missing {
  background: rgba(255, 255, 255, 0.04);
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-illustration.illustration-missing::after {
  color: #6b7280;
}

.qdnapro-info-card {
  --info-card-title: var(--c-text-heading, #1a1d3a);
  --info-card-meta: var(--c-text-muted, #6a6e9a);
  --info-card-frame: var(--c-border, #e7e9ec);
  --info-card-fill: transparent;
  --info-card-icon-bg: var(--c-grey-50);
  display: flex;
  align-items: flex-start;
  gap: 14px;
  box-sizing: border-box;
  padding: 16px;
  border: 1px solid var(--info-card-frame);
  border-radius: 18px;
  background: var(--info-card-fill);
  font-family: var(--theme-font-family, "Inter", sans-serif);
  text-align: left;
}

.qdnapro-info-card--on-purple {
  --info-card-title: #ffffff;
  --info-card-meta: rgba(255, 255, 255, 0.82);
  --info-card-frame: rgba(255, 255, 255, 0.20);
  --info-card-fill: rgba(255, 255, 255, 0.09);
}

.qdnapro-info-card--grey {
  --info-card-icon-bg: var(--c-grey-50);
}

.qdnapro-info-card--red {
  --info-card-icon-bg: var(--c-signal-red-bg);
}

.qdnapro-info-card--yellow {
  --info-card-icon-bg: var(--c-chip-yellow-bg);
}

.qdnapro-info-card--green {
  --info-card-icon-bg: var(--c-chip-green-bg);
}

.qdnapro-info-card--blue {
  --info-card-icon-bg: var(--c-signal-blue-bg);
}

.qdnapro-info-card--bright-blue {
  --info-card-icon-bg: var(--c-chip-bright-blue-2-bg);
}

.qdnapro-info-card--pink {
  --info-card-icon-bg: var(--c-signal-pink-bg);
}

.qdnapro-info-card--purple {
  --info-card-icon-bg: var(--c-chip-purple-bg);
}

.qdnapro-info-card__icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  border-radius: 12px;
  background: var(--info-card-icon-bg);
  line-height: 0;
}

.qdnapro-info-card__icon-img {
  display: block;
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.qdnapro-info-card__body {
  flex: 1 1 auto;
  min-width: 0;
}

.qdnapro-info-card__title {
  color: var(--info-card-title);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.qdnapro-info-card__row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 7px;
  color: var(--info-card-meta);
  font-size: 13px;
  line-height: 1.4;
}

.qdnapro-info-card__row .qdnapro-icon,
.qdnapro-info-card__row qdnapro-icon {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  color: inherit;
}

.qdnapro-info-card__row-text {
  min-width: 0;
  overflow-wrap: anywhere;
}

.qdnapro-ic {
  --ic-purple: var(--c-brand-purple, #40499a);
  --ic-purple-soft: var(--c-bg-secondary-purple, #e6e9ff);
  --ic-text: var(--c-text-body, #0b0b0d);
  --ic-muted: var(--c-text-muted, #6e7280);
  --ic-heading: var(--c-text-heading, #1a1f4d);
  --ic-border: var(--c-border-card, #e1e3e6);
  --ic-card: var(--c-bg-card, #ffffff);
  --ic-stage-bg: var(--c-grey-900);
  --ic-dim: rgba(16, 20, 45, 0.62);
  --ic-warn-bg: var(--c-tag-warning-bg, #fff2d6);
  --ic-warn-text: var(--c-tag-warning-text, #a06400);
  --ic-radius: var(--r-card, 14px);
  --ic-radius-sm: var(--r-btn, 8px);
  --ic-ff: var(--ff, "Inter", system-ui, -apple-system, "Segoe UI", sans-serif);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  font-family: var(--ic-ff);
  color: var(--ic-text);
}
.qdnapro-ic *, .qdnapro-ic *::before, .qdnapro-ic *::after {
  box-sizing: border-box;
}
.qdnapro-ic .qdnapro-ic-main {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  gap: var(--s-5, 20px);
  align-items: stretch;
}
.qdnapro-ic .qdnapro-ic-stagewrap {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-3, 12px);
}
.qdnapro-ic .qdnapro-ic-stage {
  flex: 1 1 auto;
  min-height: 280px;
  position: relative;
  border-radius: var(--ic-radius);
  overflow: hidden;
  background: var(--ic-stage-bg);
}
.qdnapro-ic .qdnapro-ic-img {
  display: block;
  max-width: 100%;
}
.qdnapro-ic .qdnapro-ic-toolbar {
  flex: 0 0 auto;
  display: flex;
  gap: var(--s-2, 8px);
  align-items: center;
}
.qdnapro-ic .qdnapro-ic-side {
  flex: 0 0 230px;
  max-width: 230px;
  display: flex;
  flex-direction: column;
  gap: var(--s-3, 12px);
  padding-left: var(--s-5, 20px);
  border-left: 1px solid var(--ic-border);
  overflow-y: auto;
}
.qdnapro-ic .qdnapro-ic-side-heading {
  font-size: 13px;
  font-weight: var(--fw-semi, 600);
  color: var(--ic-heading);
  letter-spacing: 0.01em;
}
.qdnapro-ic .qdnapro-ic-previews {
  display: flex;
  flex-direction: column;
  gap: var(--s-5, 20px);
}
.qdnapro-ic .qdnapro-ic-preview-target {
  overflow: hidden;
  background: var(--ic-purple-soft);
}
.qdnapro-ic .qdnapro-ic-surface {
  display: flex;
  align-items: center;
  gap: var(--s-3, 12px);
}
.qdnapro-ic .qdnapro-ic-surface-target {
  flex: 0 0 auto;
  box-shadow: 0 0 0 1px var(--ic-border);
}
.qdnapro-ic .qdnapro-ic-surface-label {
  font-size: 12px;
  color: var(--ic-muted);
}
.qdnapro-ic .qdnapro-ic-device {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--s-2, 8px);
}
.qdnapro-ic .qdnapro-ic-device-label {
  font-size: 11px;
  color: var(--ic-muted);
}
.qdnapro-ic .qdnapro-ic-device-frame {
  background: var(--c-border-tree);
  border-radius: 10px;
  padding: 8px;
  width: 100%;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06);
}
.qdnapro-ic .qdnapro-ic-device-target {
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: 4px;
}
.qdnapro-ic .qdnapro-ic-device-phone .qdnapro-ic-device-frame {
  width: 96px;
  border-radius: 16px;
  padding: 10px 6px;
  position: relative;
}
.qdnapro-ic .qdnapro-ic-device-phone .qdnapro-ic-device-frame::before {
  content: "";
  position: absolute;
  top: 5px;
  left: 50%;
  transform: translateX(-50%);
  width: 26px;
  height: 3px;
  border-radius: 2px;
  background: rgba(0, 0, 0, 0.18);
}
.qdnapro-ic .qdnapro-ic-device-phone .qdnapro-ic-device-target {
  border-radius: 6px;
}
.qdnapro-ic .qdnapro-ic-device-tablet .qdnapro-ic-device-frame {
  width: 150px;
  border-radius: 12px;
}
.qdnapro-ic .qdnapro-ic-device-desktop .qdnapro-ic-device-frame {
  width: 100%;
  padding: 0;
  overflow: hidden;
}
.qdnapro-ic .qdnapro-ic-device-desktop .qdnapro-ic-device-frame::before {
  content: "";
  display: block;
  height: 16px;
  background: radial-gradient(circle 2px at 9px 8px, var(--c-grey-300) 50%, transparent 51%), radial-gradient(circle 2px at 18px 8px, var(--c-grey-300) 50%, transparent 51%), radial-gradient(circle 2px at 27px 8px, var(--c-grey-300) 50%, transparent 51%), var(--c-border-soft-2);
}
.qdnapro-ic .qdnapro-ic-device-desktop .qdnapro-ic-device-target {
  border-radius: 0;
}
.qdnapro-ic .qdnapro-ic-footer {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: var(--s-4, 16px);
  margin-top: var(--s-4, 16px);
  padding-top: var(--s-4, 16px);
  border-top: 1px solid var(--ic-border);
}
.qdnapro-ic .qdnapro-ic-warning {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 12px;
  line-height: 1.35;
  color: var(--ic-warn-text);
  background: var(--ic-warn-bg);
  border-radius: var(--ic-radius-sm);
  padding: 8px 12px;
}
.qdnapro-ic .qdnapro-ic-warning[hidden] {
  display: none;
}
.qdnapro-ic .qdnapro-ic-actions {
  flex: 0 0 auto;
  margin-left: auto;
  display: flex;
  gap: var(--s-2, 8px);
}
.qdnapro-ic.is-shape-circle .cropper-view-box,
.qdnapro-ic.is-shape-circle .cropper-face {
  border-radius: 50%;
}
.qdnapro-ic.is-shape-circle .qdnapro-ic-preview-target {
  border-radius: 50%;
}
.qdnapro-ic.is-shape-rounded .cropper-view-box,
.qdnapro-ic.is-shape-rounded .cropper-face {
  border-radius: 12px;
}
.qdnapro-ic.is-shape-rounded .qdnapro-ic-surface-target {
  border-radius: 8px;
}
.qdnapro-ic .cropper-view-box {
  outline: 1px solid var(--ic-purple);
}
.qdnapro-ic .cropper-line,
.qdnapro-ic .cropper-point {
  background-color: var(--ic-purple);
}
.qdnapro-ic .cropper-point.point-se::before {
  background-color: var(--ic-purple);
}
.qdnapro-ic .cropper-modal {
  background-color: var(--ic-dim);
  opacity: 1;
}
.qdnapro-ic .cropper-bg {
  background-image: none;
}

@media (max-width: 720px) {
  .qdnapro-ic .qdnapro-ic-main {
    flex-direction: column;
  }
  .qdnapro-ic .qdnapro-ic-side {
    flex: 0 0 auto;
    max-width: none;
    padding-left: 0;
    border-left: 0;
    border-top: 1px solid var(--ic-border);
    padding-top: var(--s-4, 16px);
  }
  .qdnapro-ic .qdnapro-ic-previews {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
  }
}
.qdnapro-image-crop-trigger {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2, 8px);
  cursor: pointer;
  font-family: var(--ff, "Inter", sans-serif);
  color: var(--c-brand-purple, #40499a);
  font-size: 13px;
  font-weight: var(--fw-medium, 500);
}
.qdnapro-image-crop-trigger .qdnapro-image-crop-thumb {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: var(--c-bg-secondary-purple, #e6e9ff);
  background-size: cover;
  background-position: center;
  box-shadow: inset 0 0 0 1px var(--c-border-card, #e1e3e6);
}

[data-theme-dark] .qdnapro-ic,
[data-theme=dark] .qdnapro-ic,
body[data-theme=dark] .qdnapro-ic {
  --ic-card: var(--c-grey-800, #2e3036);
  --ic-border: var(--c-white-10, rgba(255, 255, 255, 0.10));
  --ic-stage-bg: #0c0e16;
  --ic-purple-soft: var(--c-grey-700, #40444d);
}
[data-theme-dark] .qdnapro-ic .qdnapro-ic-device-frame,
[data-theme=dark] .qdnapro-ic .qdnapro-ic-device-frame,
body[data-theme=dark] .qdnapro-ic .qdnapro-ic-device-frame {
  background: #3a3f4d;
}
[data-theme-dark] .qdnapro-ic .qdnapro-ic-device-desktop .qdnapro-ic-device-frame::before,
[data-theme=dark] .qdnapro-ic .qdnapro-ic-device-desktop .qdnapro-ic-device-frame::before,
body[data-theme=dark] .qdnapro-ic .qdnapro-ic-device-desktop .qdnapro-ic-device-frame::before {
  background: #2b2f3a;
}

.text-h1 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 60px;
  line-height: 72px;
}

.text-h2 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 40px;
  line-height: 56px;
}

.text-h3 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 32px;
  line-height: 48px;
}

.text-h4 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 28px;
  line-height: 44px;
}

.text-h5 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 24px;
  line-height: 36px;
}

.text-h6 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 20px;
  line-height: 24px;
}

.text-body-xs {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 10px;
  line-height: 20px;
}

.text-body-sm {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 12px;
  line-height: 20px;
}

.text-body-md {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 14px;
  line-height: 24px;
}

.text-body-lg {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
}

.text-body-xl {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 20px;
  line-height: 32px;
}

.qdnapro-inbox-message {
  --msg-bg: #ffffff;
  --msg-bg-hover: var(--c-grey-50);
  --msg-text: var(--c-grey-950);
  --msg-text-muted: var(--c-grey-500);
  --msg-accent: var(--c-action-500);
  box-sizing: border-box;
}
.qdnapro-inbox-message *, .qdnapro-inbox-message *::before, .qdnapro-inbox-message *::after {
  box-sizing: border-box;
}
.qdnapro-inbox-message {
  display: flex;
  align-items: stretch;
  gap: 8px;
  padding: 4px 8px 4px 4px;
  border-radius: 8px;
  background: var(--msg-bg);
  color: var(--msg-text);
  cursor: pointer;
  text-decoration: none;
  user-select: none;
  transition: background-color 120ms ease-out;
}
.qdnapro-inbox-message:hover:not(.inbox-message-swiping) {
  background: var(--msg-bg-hover);
}
.qdnapro-inbox-message.inbox-message-selected {
  --msg-bg: #e6e9ff;
  --msg-bg-hover: var(--c-border-tree-bright);
}
.qdnapro-inbox-message.inbox-message-active {
  --msg-bg: #e6e9ff;
  --msg-bg-hover: var(--c-border-tree-bright);
  box-shadow: inset 3px 0 0 0 var(--msg-accent);
}
.qdnapro-inbox-message:focus {
  outline: none;
}
.qdnapro-inbox-message:focus-visible, .qdnapro-inbox-message.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-purple-500), 0 0 0 6px rgba(70, 82, 243, 0.25);
}
.qdnapro-inbox-message.inbox-message-active:focus-visible, .qdnapro-inbox-message.inbox-message-active.force-focus {
  box-shadow: inset 3px 0 0 0 var(--msg-accent), 0 0 0 2px var(--c-purple-500), 0 0 0 6px rgba(70, 82, 243, 0.25);
}
.qdnapro-inbox-message .inbox-message-lead {
  flex-shrink: 0;
  display: flex;
  align-items: flex-start;
  gap: 4px;
  padding-top: 4px;
  width: 46px;
  justify-content: flex-end;
}
.qdnapro-inbox-message .inbox-message-unread-dot {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  margin-top: 13px;
  border-radius: 50%;
  background: var(--msg-accent);
}
.qdnapro-inbox-message .inbox-message-avatar-wrap {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
}
.qdnapro-inbox-message .inbox-message-avatar-status {
  position: absolute;
  right: -3px;
  bottom: -3px;
  box-sizing: border-box;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.qdnapro-inbox-message .inbox-message-avatar-status.is-in-progress {
  width: 17px;
  height: 21px;
  background-image: url(/img/inbox-status/hourglass.svg);
}
.qdnapro-inbox-message .inbox-message-avatar-status.is-completed {
  width: 21px;
  height: 20px;
  background-image: url(/img/inbox-status/check.svg);
}
.qdnapro-inbox-message .inbox-message-avatar-status.is-overdue {
  width: 22px;
  height: 19px;
  background-image: url(/img/inbox-status/warning-red.svg);
}
.qdnapro-inbox-message .inbox-message-avatar-status.is-due-soon {
  width: 22px;
  height: 19px;
  background-image: url(/img/inbox-status/warning-yellow.svg);
}
.qdnapro-inbox-message .inbox-message-avatar-status.is-reminder {
  width: 18px;
  height: 21px;
  background-image: url(/img/inbox-status/bell.svg);
}
.qdnapro-inbox-message .inbox-message-avatar-status.is-scheduled {
  width: 21px;
  height: 20px;
  background-image: url(/img/inbox-status/timer.svg);
}
.qdnapro-inbox-message .inbox-message-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 4px 0;
}
.qdnapro-inbox-message .inbox-message-row-1 {
  display: flex;
  align-items: center;
  gap: 4px;
}
.qdnapro-inbox-message .inbox-message-sender {
  flex: 1 1 auto;
  min-width: 0;
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 700;
  font-size: 14px;
  line-height: 24px;
  color: var(--msg-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qdnapro-inbox-message:not(.inbox-message-unread) .inbox-message-sender {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 500;
  font-size: 14px;
  line-height: 24px;
}
.qdnapro-inbox-message .inbox-message-actions {
  flex-shrink: 0;
  height: 24px;
  display: flex;
  align-items: center;
  gap: 0;
}
.qdnapro-inbox-message .inbox-message-paperclip {
  flex-shrink: 0;
  width: 20px;
  max-width: 20px;
  height: 20px;
  opacity: 1;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--msg-text-muted);
  pointer-events: none;
  transition: max-width 200ms cubic-bezier(0.4, 0, 0.2, 1), width 200ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms ease;
}
.qdnapro-inbox-message .inbox-message-forwarded {
  flex-shrink: 0;
  width: 20px;
  max-width: 20px;
  height: 20px;
  opacity: 1;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--msg-text-muted);
  pointer-events: auto;
  transition: max-width 200ms cubic-bezier(0.4, 0, 0.2, 1), width 200ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms ease;
}
.qdnapro-inbox-message .inbox-message-bookmark,
.qdnapro-inbox-message .inbox-message-delete {
  width: 0;
  min-width: 0;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transition: max-width 200ms cubic-bezier(0.4, 0, 0.2, 1), width 200ms cubic-bezier(0.4, 0, 0.2, 1), min-width 200ms cubic-bezier(0.4, 0, 0.2, 1), margin-left 200ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms ease, color 120ms ease-out;
}
.qdnapro-inbox-message .inbox-message-delete {
  margin-left: 0;
}
.qdnapro-inbox-message:hover:not(.inbox-message-swiping) .inbox-message-paperclip, .qdnapro-inbox-message:focus-within:not(.inbox-message-swiping) .inbox-message-paperclip {
  width: 0;
  max-width: 0;
  opacity: 0;
}
.qdnapro-inbox-message:hover:not(.inbox-message-swiping) .inbox-message-bookmark, .qdnapro-inbox-message:hover:not(.inbox-message-swiping) .inbox-message-delete, .qdnapro-inbox-message:focus-within:not(.inbox-message-swiping) .inbox-message-bookmark, .qdnapro-inbox-message:focus-within:not(.inbox-message-swiping) .inbox-message-delete {
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  opacity: 1;
  pointer-events: auto;
}
.qdnapro-inbox-message:hover:not(.inbox-message-swiping) .inbox-message-delete, .qdnapro-inbox-message:focus-within:not(.inbox-message-swiping) .inbox-message-delete {
  margin-left: 4px;
}
.qdnapro-inbox-message.inbox-message-bookmarked .inbox-message-paperclip {
  width: 0;
  max-width: 0;
  opacity: 0;
}
.qdnapro-inbox-message.inbox-message-bookmarked .inbox-message-bookmark {
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  opacity: 1;
  pointer-events: auto;
  color: var(--msg-accent);
}
.qdnapro-inbox-message.inbox-message-navigate {
  position: relative;
}
.qdnapro-inbox-message.inbox-message-navigate .inbox-message-nav {
  position: absolute;
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1);
}
.qdnapro-inbox-message.inbox-message-navigate .inbox-message-timestamp,
.qdnapro-inbox-message.inbox-message-navigate .inbox-message-due {
  transition: opacity 150ms ease;
}
.qdnapro-inbox-message.inbox-message-navigate:hover:not(.inbox-message-swiping) .inbox-message-nav, .qdnapro-inbox-message.inbox-message-navigate:focus-within:not(.inbox-message-swiping) .inbox-message-nav {
  opacity: 1;
  pointer-events: auto;
}
.qdnapro-inbox-message.inbox-message-navigate:hover:not(.inbox-message-swiping) .inbox-message-timestamp, .qdnapro-inbox-message.inbox-message-navigate:hover:not(.inbox-message-swiping) .inbox-message-due, .qdnapro-inbox-message.inbox-message-navigate:focus-within:not(.inbox-message-swiping) .inbox-message-timestamp, .qdnapro-inbox-message.inbox-message-navigate:focus-within:not(.inbox-message-swiping) .inbox-message-due {
  opacity: 0;
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-inbox-message .inbox-message-paperclip,
  .qdnapro-inbox-message .inbox-message-bookmark,
  .qdnapro-inbox-message .inbox-message-delete,
  .qdnapro-inbox-message .inbox-message-nav,
  .qdnapro-inbox-message .inbox-message-timestamp,
  .qdnapro-inbox-message .inbox-message-due {
    transition: none;
  }
}
.qdnapro-inbox-message .inbox-message-row-2 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: -2px;
}
.qdnapro-inbox-message .inbox-message-subject {
  flex: 1 1 auto;
  min-width: 0;
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 500;
  font-size: 14px;
  line-height: 24px;
  color: var(--msg-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qdnapro-inbox-message.inbox-message-unread .inbox-message-subject {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 700;
  font-size: 14px;
  line-height: 24px;
  color: var(--msg-accent);
}
.qdnapro-inbox-message .inbox-message-timestamp {
  flex-shrink: 0;
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 500;
  font-size: 12px;
  line-height: 20px;
  color: var(--msg-text);
}
.qdnapro-inbox-message.inbox-message-unread .inbox-message-timestamp {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 700;
  font-size: 12px;
  line-height: 20px;
  color: var(--msg-accent);
}
.qdnapro-inbox-message .inbox-message-row-3 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: -2px;
}
.qdnapro-inbox-message .inbox-message-preview {
  flex: 1 1 auto;
  min-width: 0;
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 12px;
  line-height: 20px;
  color: var(--msg-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qdnapro-inbox-message .inbox-message-due {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 12px;
  line-height: 20px;
  color: var(--msg-text);
}
.qdnapro-inbox-message .inbox-message-due qdnapro-icon {
  width: 16px;
  height: 16px;
  color: var(--msg-text-muted);
}
.qdnapro-inbox-message .inbox-message-tags {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.qdnapro-inbox-message.inbox-message-deadline-overdue .inbox-message-due, .qdnapro-inbox-message.inbox-message-deadline-overdue .inbox-message-due qdnapro-icon {
  color: #d93025;
}
.qdnapro-inbox-message.inbox-message-deadline-due-soon .inbox-message-due, .qdnapro-inbox-message.inbox-message-deadline-due-soon .inbox-message-due qdnapro-icon {
  color: #e8810a;
}
.qdnapro-inbox-message.inbox-message-deadline-overdue .inbox-message-due-standalone {
  background: rgba(217, 48, 37, 0.1);
  border-radius: 999px;
  padding: 2px 8px 2px 6px;
  margin-top: 2px;
}
.qdnapro-inbox-message.inbox-message-deadline-due-soon .inbox-message-due-standalone {
  background: rgba(232, 129, 10, 0.1);
  border-radius: 999px;
  padding: 2px 8px 2px 6px;
  margin-top: 2px;
}
.qdnapro-inbox-message .inbox-message-avatar-slot {
  position: relative;
  width: 34px;
  height: 34px;
  flex-shrink: 0;
}
.qdnapro-inbox-message .inbox-message-avatar-slot > qdnapro-avatar,
.qdnapro-inbox-message .inbox-message-avatar-slot > .inbox-message-avatar-wrap {
  position: absolute;
  inset: 0;
  transition: opacity 120ms ease;
}
.qdnapro-inbox-message .inbox-message-select-checkbox {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 16px;
  height: 16px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 120ms ease;
}
.qdnapro-inbox-message.inbox-message-selection-mode .inbox-message-avatar-slot > qdnapro-avatar,
.qdnapro-inbox-message.inbox-message-selection-mode .inbox-message-avatar-slot > .inbox-message-avatar-wrap {
  opacity: 0;
  pointer-events: none;
}
.qdnapro-inbox-message.inbox-message-selection-mode .inbox-message-select-checkbox {
  opacity: 1;
  pointer-events: auto;
}
@media (hover: hover) {
  .qdnapro-inbox-message.inbox-message-selectable:not(.inbox-message-selection-mode):hover .inbox-message-avatar-slot > qdnapro-avatar,
  .qdnapro-inbox-message.inbox-message-selectable:not(.inbox-message-selection-mode):hover .inbox-message-avatar-slot > .inbox-message-avatar-wrap {
    opacity: 0;
    pointer-events: none;
  }
  .qdnapro-inbox-message.inbox-message-selectable:not(.inbox-message-selection-mode):hover .inbox-message-select-checkbox {
    opacity: 1;
    pointer-events: auto;
  }
}
.qdnapro-inbox-message.inbox-message-swiping {
  background: var(--c-bg-card, #ffffff);
}
.qdnapro-inbox-message.inbox-message-disabled {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
}
.qdnapro-inbox-message.inbox-message-disabled:focus-visible, .qdnapro-inbox-message.inbox-message-disabled.force-focus {
  box-shadow: none;
}

[data-bg-context=purple] .qdnapro-inbox-message {
  --msg-bg-hover: var(--c-border-tree-bright);
}

[data-theme=dark] .qdnapro-inbox-message {
  --msg-bg: transparent;
  --msg-bg-hover: #565b66;
  --msg-text: #e1e3e6;
  --msg-text-muted: #a6aab3;
  --msg-accent: #a5acff;
}
[data-theme=dark] .qdnapro-inbox-message.inbox-message-selected {
  --msg-bg: rgba(165, 172, 255, 0.18);
  --msg-bg-hover: rgba(165, 172, 255, 0.28);
}
[data-theme=dark] .qdnapro-inbox-message.inbox-message-active {
  --msg-bg: rgba(165, 172, 255, 0.18);
  --msg-bg-hover: rgba(165, 172, 255, 0.28);
  box-shadow: inset 3px 0 0 0 var(--msg-accent);
}
[data-theme=dark] .qdnapro-inbox-message:focus-visible, [data-theme=dark] .qdnapro-inbox-message.force-focus {
  box-shadow: 0 0 0 2px #a5acff, 0 0 0 6px rgba(70, 82, 243, 0.4);
}
[data-theme=dark] .qdnapro-inbox-message.inbox-message-active:focus-visible, [data-theme=dark] .qdnapro-inbox-message.inbox-message-active.force-focus {
  box-shadow: inset 3px 0 0 0 var(--msg-accent), 0 0 0 2px #a5acff, 0 0 0 6px rgba(70, 82, 243, 0.4);
}

.qdnapro-input {
  display: block;
  font-family: inter, sans-serif;
  font-size: 14px;
  line-height: 24px;
}

.qdnapro-input.input-size-touch {
  font-size: 20px;
  line-height: 30px;
}

.qdnapro-input.input-size-tiny {
  font-size: 13px;
  line-height: 20px;
}

.qdnapro-input .input-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}

.qdnapro-input .input-header .input-label {
  font-weight: 500;
  color: var(--c-grey-950);
  display: inline-flex;
  align-items: baseline;
}

.qdnapro-input .input-header .input-label .input-required {
  color: var(--c-signal-red-text);
  margin-right: 2px;
  font-weight: 500;
}

.qdnapro-input .input-header .input-label .input-optional {
  color: var(--c-grey-500);
  font-weight: 400;
  margin-left: 2px;
}

.qdnapro-input .input-header .input-info-btn {
  flex-shrink: 0;
}

.qdnapro-input .input-hint {
  color: var(--c-grey-500);
  font-size: 13px;
  line-height: 20px;
  margin-bottom: 8px;
}

.qdnapro-input .input-field-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.qdnapro-input.input-size-big .input-external-btn {
  width: 52px;
  min-width: 52px;
  min-height: 52px;
}

.qdnapro-input.input-size-small .input-external-btn {
  width: 40px;
  min-width: 40px;
  min-height: 40px;
}

.qdnapro-input.input-size-tiny .input-external-btn {
  width: 32px;
  min-width: 32px;
  min-height: 32px;
}

.qdnapro-input.input-size-touch .input-external-btn {
  width: 56px;
  min-width: 56px;
  min-height: 56px;
}

.qdnapro-input .input-field {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 8px;
  padding: 0 12px;
  box-sizing: border-box;
  transition: border-color 120ms ease-out, background-color 120ms ease-out;
}

/* Kleur van het LEADING-ICOON in de basis (besluit 78, vervolg 31.07.2026): stond
   op var(--c-grey-400) en haalde daarmee dezelfde contrast-inversie als de placeholder had,
   namelijk een LAGERE verhouding dan de uitgeschakelde stand (var(--c-text-disabled)), waardoor
   een gewoon veld leest als een veld dat je niet mag gebruiken. Gemeten met de
   WCAG-formule, niet op het oog:
     oud  var(--c-grey-400)  op wit #ffffff              -> 2.33:1
     oud  var(--c-grey-400)  op --c-grey-100 var(--c-grey-100)     -> 1.91:1
     oud  var(--c-grey-400)  op het uitgeschakelde vlak var(--c-grey-50) -> 2.06:1
     disabled-icoon var(--c-text-disabled) op var(--c-grey-50) (zijn eigen vlak) -> 2.90:1
     nieuw var(--c-text-muted) var(--c-text-muted) op wit  -> 4.79:1
     nieuw op var(--c-grey-100)                          -> 3.94:1
     nieuw op var(--c-grey-50)                          -> 4.24:1
   De rangorde is daarmee weer gewoon-donkerder-dan-disabled. Het disabled-icoon
   zelf blijft var(--c-text-disabled): dat zat niet fout, het werd ingehaald door een basis die te
   licht stond. De grijze variant had dit icoon al eerder op --c-text-muted gezet;
   die regel blijft staan als zelfstandige garantie voor die variant.
   Met fallback var(--c-text-muted) erin, want `color` zonder fallback valt bij een niet
   resolvende var terug op erven, en dat is hier de bijna-zwarte veldtekst.
   Dark theme, glass en dark-purple zijn niet geraakt: die hebben elk hun eigen
   regel voor dit icoon, verderop in dit bestand. */
.qdnapro-input .input-field .input-leading-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  color: var(--c-text-muted, #6e7280);
  flex-shrink: 0;
}

/* Leading avatar (dropdown trigger showing the selected user's photo). Sits in
   the same slot as the leading icon; slightly tighter right margin so the value
   text hugs it. [Kim 2026-07-20] */
.qdnapro-input .input-field .input-leading-avatar {
  display: inline-flex;
  flex-shrink: 0;
  margin-left: -2px;
}

.qdnapro-input .input-field .input-leading-btn {
  flex-shrink: 0;
  margin-left: -4px;
}

.qdnapro-input .input-field .input-pretab,
.qdnapro-input .input-field .input-posttab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  background: var(--c-grey-50);
  color: var(--c-text-disabled);
  font-weight: 500;
  flex-shrink: 0;
  align-self: stretch;
}

.qdnapro-input .input-field .input-pretab qdnapro-icon,
.qdnapro-input .input-field .input-posttab qdnapro-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  color: var(--c-text-disabled);
  flex-shrink: 0;
}

.qdnapro-input .input-field .input-pretab .input-pretab-text,
.qdnapro-input .input-field .input-pretab .input-posttab-text,
.qdnapro-input .input-field .input-posttab .input-pretab-text,
.qdnapro-input .input-field .input-posttab .input-posttab-text {
  white-space: nowrap;
}

.qdnapro-input .input-field .input-pretab {
  border-right: 1px solid var(--c-grey-300);
}

.qdnapro-input .input-field .input-posttab {
  border-left: 1px solid var(--c-grey-300);
}

.qdnapro-input .input-field .input-field-inner {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
  padding: 0 12px;
  background: var(--c-bg-card);
}

.qdnapro-input .input-field .input-field-inner .input-native {
  width: 100%;
}

.qdnapro-input .input-field .input-native {
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  font: inherit;
  color: var(--c-grey-950);
  padding: 0;
  min-width: 0;
}

/* Placeholder-kleur van de BASIS (besluit 78, klus 4b, Kim 31.07.2026): stond op
   var(--c-grey-400) en haalde daarmee EEN LAGERE contrastverhouding dan de uitgeschakelde
   stand (var(--c-text-disabled)), waardoor een leeg veld leek alsof je het niet mocht gebruiken.
   Gemeten met de WCAG-formule:
     oude basis-placeholder  var(--c-grey-400) op wit       -> 2.33:1
     oude basis-placeholder  var(--c-grey-400) op var(--c-grey-100)   -> 1.91:1
     disabled-placeholder    var(--c-text-disabled) op var(--c-grey-100)   -> 2.70:1
   var(--c-text-muted) is dezelfde token die de grijze variant hieronder al
   gebruikt (zie die toelichting bij .input-grey verderop in dit bestand): op wit
   geeft dat 4.79:1, op var(--c-grey-100) 3.94:1. Beide ruim boven de disabled-stand, dus de
   rangorde is weer gewoon-donkerder-dan-disabled. De disabled-placeholder zelf is
   niet aangepast: die zat niet fout, hij werd alleen ingehaald door een basis die
   te licht stond. */
.qdnapro-input .input-field .input-native::placeholder {
  color: var(--c-text-muted);
  font-weight: 500;
}

.qdnapro-input .input-field .input-native:disabled {
  color: var(--c-text-disabled);
  cursor: not-allowed;
}

.qdnapro-input .input-field .input-trailing {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}

.qdnapro-input .input-field .input-trailing .input-suffix-text {
  font-size: 14px;
  font-weight: 600;
  color: var(--c-text-muted);
  white-space: nowrap;
  padding-right: 2px;
}

.qdnapro-input .input-field .input-trailing .input-state-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
}

.qdnapro-input .input-field .input-trailing .input-state-success {
  color: var(--c-signal-green-text);
}

.qdnapro-input .input-field .input-trailing .input-state-error {
  color: var(--c-signal-red-text);
}

.qdnapro-input .input-field .input-trailing .input-state-warning {
  color: var(--c-warn-yellow-600);
}

.qdnapro-input .input-field .input-trailing .input-trailing-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  color: var(--c-grey-400);
}

.qdnapro-input .input-field .input-trailing .input-chevron {
  margin-right: -4px;
}

.qdnapro-input .input-field .input-trailing .input-mic-btn,
.qdnapro-input .input-field .input-trailing .input-nova-btn,
.qdnapro-input .input-field .input-trailing .input-action-btn,
.qdnapro-input .input-field .input-trailing .input-action-btn-2 {
  flex-shrink: 0;
}

.qdnapro-input.input-size-big .input-field {
  min-height: 52px;
}

.qdnapro-input.input-size-small .input-field {
  min-height: 40px;
}

.qdnapro-input.input-size-tiny .input-field {
  min-height: 32px;
  padding: 0 10px;
  gap: 6px;
}

.qdnapro-input.input-size-touch .input-field {
  min-height: 56px;
}

.qdnapro-input.input-type-defined-field .input-field {
  padding: 0;
  overflow: hidden;
  gap: 0;
}

/* [Kim 2026-05-01] Trailing positioned absolute so the textarea fills full
   width — native scrollbar lands flush on the right border. Clear-x floats
   over the top-right corner just left of the scrollbar. */
.qdnapro-input.input-type-expanding .input-field {
  align-items: stretch;
  position: relative;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 0;
  padding-right: 0;
  overflow: hidden;
}

.qdnapro-input.input-type-expanding .input-field .input-leading-icon {
  align-self: flex-start;
  margin-top: 16px;
  margin-left: 12px;
}

.qdnapro-input.input-type-expanding .input-field .input-trailing {
  position: absolute;
  top: 8px;
  right: 20px;
  margin: 0;
  background: transparent;
  z-index: 1;
}

.qdnapro-input.input-type-expanding .input-field textarea.input-native {
  resize: none;
  overflow-y: hidden;
  line-height: 24px;
  min-height: 52px;
  padding: 14px 52px 14px 12px;
  font-family: inherit;
  display: block;
  box-sizing: border-box;
  width: 100%;
}

.qdnapro-input.input-type-expanding.input-size-small .input-field .input-leading-icon {
  margin-top: 10px;
}

.qdnapro-input.input-type-expanding.input-size-small .input-field .input-trailing {
  top: 4px;
}

.qdnapro-input.input-type-expanding.input-size-small .input-field textarea.input-native {
  min-height: 40px;
  padding: 8px 52px 8px 12px;
}

.qdnapro-input.input-type-expanding.input-size-tiny .input-field .input-leading-icon {
  margin-top: 8px;
  margin-left: 10px;
}

.qdnapro-input.input-type-expanding.input-size-tiny .input-field .input-trailing {
  top: 4px;
}

.qdnapro-input.input-type-expanding.input-size-tiny .input-field textarea.input-native {
  min-height: 32px;
  line-height: 20px;
  padding: 6px 44px 6px 10px;
}

/* De action-knop in een EXPANDING veld hoort ONDERAAN, niet bovenaan.
   Een expanding veld pint zijn trailing-zone bewust tegen de rechterBOVENhoek:
   bij een veld van vier regels moet het wis-kruisje bovenin blijven staan. Voor
   een action-knop klopt precies het omgekeerde — dat is de knop bij de regel
   waar je op typt (een chat-invoerbalk, waarvoor `action-btn` gemaakt is). Bij
   één regel valt "onderaan" samen met "gecentreerd", en groeit het veld uit,
   dan zakt de knop mee.
   Deze regel staat met OPZET na de size-varianten hierboven: hij heeft evenveel
   klassen als die (vijf), dus alleen de volgorde in dit bestand beslist. Eerder
   stond dit als losse regel in de PWA-CSS en dan is het een specificiteitsgevecht
   met een component dat je niet ziet aankomen — het ging daar twee keer mis
   voordat het hier terechtkwam. [Kim 16.08.2026] */
.qdnapro-input.input-type-expanding.input-has-action .input-field .input-trailing {
  /* MIDDEN, en zonder te rekenen. Hier stond eerst `bottom: 8px`, en daarvoor
     `bottom: 10px`, en daarvoor een regel in de app-CSS: elke variant hing af
     van de hoogte van de knop, de hoogte van het veld en de laadvolgorde van
     twee CSS-bestanden, en elke variant was ergens anders weer een paar pixels
     scheef. Vier pogingen, vier keer bijna goed. Dit centreert de trailing-zone
     ongeacht hoe hoog hij is en ongeacht de maat van het veld. */
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
  /* Dichter naar de hoek dan de standaard 20px van een expanding veld. Die 20px
     houdt daar ruimte vrij voor de systeem-scrollbalk naast het wis-kruisje; een
     veld met een action-knop heeft die ruimte niet nodig (`no-clear` hoort bij
     dit patroon) en de knop hoort dan gewoon in de hoek. [Kim 16.08.2026] */
  right: 8px;
}

/* Geen aparte maat-regel meer nodig: de centrering hierboven klopt bij elke
   maat. */
/* no-clear: no trailing clear-x, so the textarea reclaims the reserved right
   space and uses the full width. [Kim 2026-06-16] */
.qdnapro-input.input-type-expanding[no-clear] .input-field textarea.input-native {
  padding-right: 12px;
}

.qdnapro-input:not(.input-filled) [data-role=clear] {
  display: none;
}

.qdnapro-input.input-type-number .input-number-steppers {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  margin-right: -4px;
}

.qdnapro-input.input-type-number .input-number-steppers > qdnapro-icon-btn {
  width: 16px;
  height: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.qdnapro-input.input-type-number .input-number-steppers > qdnapro-icon-btn qdnapro-icon {
  width: 14px;
  height: 14px;
}

.qdnapro-input.input-type-autocomplete .input-field-row, .qdnapro-input.input-type-phone .input-field-row {
  position: relative;
}

.qdnapro-input .input-ac-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  max-height: 320px;
  overflow-y: auto;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 8px;
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.08), 0 1px 2px 0 rgba(0, 0, 0, 0.14);
  padding: 8px;
  z-index: 1000;
}

.input-external-btn + .qdnapro-input .input-ac-dropdown {
  right: 60px;
}

.qdnapro-input .input-ac-item {
  display: flex;
  align-items: center;
  height: 40px;
  padding: 0 12px;
  border-radius: 4px;
  font-family: inter, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
  color: var(--c-grey-950);
  cursor: pointer;
  user-select: none;
}

.qdnapro-input .input-ac-item + .qdnapro-input .input-ac-item {
  margin-top: 4px;
}

.qdnapro-input .input-ac-item strong {
  font-weight: 700;
}

.qdnapro-input .input-ac-item:hover, .qdnapro-input .input-ac-item.input-ac-item-active {
  background: var(--c-grey-50);
}

.qdnapro-input .input-ac-item.input-ac-item-disabled {
  color: var(--c-text-disabled);
  cursor: default;
}

.qdnapro-input .input-ac-empty {
  padding: 12px;
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
  color: var(--c-text-disabled);
  text-align: center;
}

.qdnapro-input .input-ac-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px;
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
  color: var(--c-grey-600);
}

.qdnapro-input .input-ac-spinner {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid var(--c-grey-300);
  border-top-color: var(--c-purple-500);
  border-radius: 50%;
  animation: qdnapro-ac-spin 0.7s linear infinite;
}

@keyframes qdnapro-ac-spin {
  to {
    transform: rotate(360deg);
  }
}
.qdnapro-input .input-ac-error {
  padding: 12px;
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
  color: var(--c-signal-red-text);
  text-align: center;
}

.qdnapro-input.input-ac-open .input-field {
  border-color: var(--c-purple-400);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.4);
}

/* Kleur van de CURRENCY-PREFIX (het euroteken) in de basis, dus bij een leeg of nog
   onveranderd veld (besluit 78, vervolg 31.07.2026). Zelfde contrast-inversie als de
   placeholder en het leading-icoon: stond op var(--c-grey-400) en dat is LICHTER dan de
   uitgeschakelde stand var(--c-text-disabled), waardoor een gewoon bedragveld leest als een veld dat
   je niet mag gebruiken. Gemeten met de WCAG-formule:
     oud  var(--c-grey-400)  op wit #ffffff              -> 2.33:1
     oud  var(--c-grey-400)  op --c-grey-100 var(--c-grey-100)     -> 1.91:1
     oud  var(--c-grey-400)  op het uitgeschakelde vlak var(--c-grey-50) -> 2.06:1
     disabled-prefix var(--c-text-disabled) op var(--c-grey-50) (zijn eigen vlak) -> 2.90:1
     nieuw var(--c-text-muted) var(--c-text-muted) op wit  -> 4.79:1
     nieuw op var(--c-grey-100)                          -> 3.94:1
     nieuw op var(--c-grey-50)                          -> 4.24:1
   De prefix volgde bewust de placeholder-kleur (het is dezelfde "nog niets ingevuld"
   stand), dus hij moest mee met de placeholder-fix. De twee regels hieronder blijven
   ongemoeid: gevuld gaat naar bijna-zwart, uitgeschakeld blijft var(--c-text-disabled).
   Fallback var(--c-text-muted) om dezelfde reden als bij het leading-icoon hierboven. */
.qdnapro-input.input-type-currency .input-currency-prefix {
  color: var(--c-text-muted, #6e7280);
  font-weight: 500;
  flex-shrink: 0;
  user-select: none;
}

.qdnapro-input.input-type-currency.input-filled .input-currency-prefix {
  color: var(--c-grey-950);
}

.qdnapro-input.input-type-currency.input-disabled .input-currency-prefix {
  color: var(--c-text-disabled);
}

.qdnapro-input.input-type-currency .input-native {
  text-align: left;
}

/* === number / currency +/- spinner horizontal layout ===
   Ported to the build source 2026-06-19 (was only in for-sander/_input.scss,
   so the live counter never got its button nudges). Layout: [ - ] value [ + ].
   The minus button is the first child of .input-field; the plus lives in
   .input-trailing. */
.qdnapro-input.input-type-number.input-number-horizontal .input-native {
  text-align: center;
}

.qdnapro-input.input-number-horizontal .input-field > qdnapro-icon-btn[data-role=step-down] {
  flex-shrink: 0;
  margin-left: -4px;
  margin-right: 4px;
}

.qdnapro-input.input-number-horizontal .input-trailing > qdnapro-icon-btn[data-role=step-up] {
  flex-shrink: 0;
  margin-right: -4px;
}

/* Currency + counter: place the minus button before the currency prefix via
   flex order, giving [ - ] [ € value ] [ + ]. The € stays next to the amount. */
.qdnapro-input.input-type-currency.input-number-horizontal .input-field > qdnapro-icon-btn[data-role=step-down] {
  order: -1;
}

.qdnapro-input.input-type-phone .input-country-picker {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  margin: 0 9px 0 4px;
  position: relative;
  background: transparent;
  border: none;
  cursor: pointer;
  font: inherit;
  color: var(--c-grey-900);
  flex-shrink: 0;
}

.qdnapro-input.input-type-phone .input-country-picker::after {
  content: "";
  position: absolute;
  right: -9px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: var(--c-border-card);
}

.qdnapro-input.input-type-phone .input-country-picker:hover {
  background: var(--c-grey-50);
  border-radius: 8px;
}

.qdnapro-input.input-type-phone .input-country-picker[disabled] {
  cursor: not-allowed;
  opacity: 0.6;
}

.qdnapro-input.input-type-phone .input-country-picker.input-country-picker-static {
  cursor: default;
}

.qdnapro-input.input-type-phone .input-country-picker.input-country-picker-static:hover {
  background: transparent;
  border-radius: 0;
}

.qdnapro-input.input-type-phone .input-country-picker .input-country-flag {
  font-size: 18px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
}

.qdnapro-input.input-type-phone .input-country-picker .input-country-dial {
  font-weight: 500;
  color: var(--c-grey-600);
  font-size: 14px;
  line-height: 1;
}

.qdnapro-input.input-type-phone .input-country-picker .input-country-chev {
  color: var(--c-text-disabled);
  margin-left: 2px;
  width: 14px;
  height: 14px;
}

.qdnapro-input .input-country-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 220px;
  max-height: 280px;
  overflow-y: auto;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 8px;
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.08), 0 1px 2px 0 rgba(0, 0, 0, 0.14);
  padding: 8px;
  z-index: 1000;
}

.qdnapro-input .input-country-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: 40px;
  padding: 0 12px;
  border-radius: 4px;
  background: transparent;
  border: none;
  cursor: pointer;
  font: inherit;
  color: var(--c-grey-950);
  text-align: left;
}

.qdnapro-input .input-country-item + .qdnapro-input .input-country-item {
  margin-top: 4px;
}

.qdnapro-input .input-country-item:hover, .qdnapro-input .input-country-item.input-country-item-active {
  background: var(--c-grey-50);
}

.qdnapro-input .input-country-item .input-country-flag {
  font-size: 18px;
  line-height: 1;
  flex-shrink: 0;
}

.qdnapro-input .input-country-item .input-country-name {
  flex: 1;
  font-weight: 500;
}

.qdnapro-input .input-country-item .input-country-dial {
  color: var(--c-grey-600);
  font-weight: 500;
  flex-shrink: 0;
}

.qdnapro-input.input-type-number.input-number-right .input-native {
  text-align: right;
}

.qdnapro-input.input-filled .input-field .input-native {
  color: var(--c-grey-950);
  font-weight: 500;
}

.qdnapro-input.input-success .input-field {
  border-color: var(--c-signal-green-text);
}

.qdnapro-input.input-error .input-field {
  border-color: var(--c-signal-red-text);
}

.qdnapro-input.input-warning .input-field {
  border-color: var(--c-warn-yellow-600);
}

.qdnapro-input .input-field:hover {
  border-color: var(--c-purple-500);
}

.qdnapro-input .input-field:focus-within {
  border-color: var(--c-purple-400);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.4);
}

.qdnapro-input .input-field:focus-within .input-native::placeholder {
  font-weight: 400;
}

.qdnapro-input.input-success .input-field:focus-within {
  border-color: var(--c-signal-green-text);
  box-shadow: 0 0 0 3px rgba(110, 231, 183, 0.4);
}

.qdnapro-input.input-error .input-field:focus-within {
  border-color: var(--c-signal-red-text);
  box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.4);
}

.qdnapro-input.input-warning .input-field:focus-within {
  border-color: var(--c-warn-yellow-600);
  box-shadow: 0 0 0 3px rgba(251, 191, 92, 0.4);
}

.qdnapro-input.input-select .input-field {
  border-color: var(--c-purple-400);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.4);
}

.qdnapro-input.input-select.input-success .input-field {
  border-color: var(--c-signal-green-text);
  box-shadow: 0 0 0 3px rgba(110, 231, 183, 0.4);
}

.qdnapro-input.input-select.input-error .input-field {
  border-color: var(--c-signal-red-text);
  box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.4);
}

.qdnapro-input.input-select.input-warning .input-field {
  border-color: var(--c-warn-yellow-600);
  box-shadow: 0 0 0 3px rgba(251, 191, 92, 0.4);
}

.qdnapro-input.input-disabled .input-field, .qdnapro-input.input-disabled .input-field:hover, .qdnapro-input.input-disabled .input-field:focus-within {
  background: var(--c-grey-50);
  border-color: transparent; /* [Kim 2026-05-01] no outer border for softer look */
  box-shadow: none;
}

.qdnapro-input.input-disabled .input-field .input-native, .qdnapro-input.input-disabled .input-field:hover .input-native, .qdnapro-input.input-disabled .input-field:focus-within .input-native {
  color: var(--c-text-disabled);
  cursor: not-allowed;
}

.qdnapro-input.input-disabled .input-field .input-native::placeholder, .qdnapro-input.input-disabled .input-field:hover .input-native::placeholder, .qdnapro-input.input-disabled .input-field:focus-within .input-native::placeholder {
  color: var(--c-text-disabled);
}

.qdnapro-input.input-disabled .input-field .input-leading-icon,
.qdnapro-input.input-disabled .input-field .input-trailing-icon, .qdnapro-input.input-disabled .input-field:hover .input-leading-icon,
.qdnapro-input.input-disabled .input-field:hover .input-trailing-icon, .qdnapro-input.input-disabled .input-field:focus-within .input-leading-icon,
.qdnapro-input.input-disabled .input-field:focus-within .input-trailing-icon {
  color: var(--c-text-disabled);
}

.qdnapro-input.input-disabled .input-field .input-pretab,
.qdnapro-input.input-disabled .input-field .input-posttab, .qdnapro-input.input-disabled .input-field:hover .input-pretab,
.qdnapro-input.input-disabled .input-field:hover .input-posttab, .qdnapro-input.input-disabled .input-field:focus-within .input-pretab,
.qdnapro-input.input-disabled .input-field:focus-within .input-posttab {
  background: var(--c-border-card);
  border-color: var(--c-grey-300);
  color: var(--c-text-disabled);
}

.qdnapro-input.input-disabled .input-field .input-pretab qdnapro-icon,
.qdnapro-input.input-disabled .input-field .input-posttab qdnapro-icon, .qdnapro-input.input-disabled .input-field:hover .input-pretab qdnapro-icon,
.qdnapro-input.input-disabled .input-field:hover .input-posttab qdnapro-icon, .qdnapro-input.input-disabled .input-field:focus-within .input-pretab qdnapro-icon,
.qdnapro-input.input-disabled .input-field:focus-within .input-posttab qdnapro-icon {
  color: var(--c-text-disabled);
}

.qdnapro-input.input-disabled .input-field .input-field-inner, .qdnapro-input.input-disabled .input-field:hover .input-field-inner, .qdnapro-input.input-disabled .input-field:focus-within .input-field-inner {
  background: transparent;
}

.qdnapro-input.input-readonly .input-field, .qdnapro-input.input-readonly .input-field:hover, .qdnapro-input.input-readonly .input-field:focus-within {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
  padding-left: 0;
}

.qdnapro-input.input-readonly .input-field .input-native, .qdnapro-input.input-readonly .input-field:hover .input-native, .qdnapro-input.input-readonly .input-field:focus-within .input-native {
  color: var(--c-grey-500);
}

.qdnapro-input.input-readonly .input-field .input-field-inner, .qdnapro-input.input-readonly .input-field:hover .input-field-inner, .qdnapro-input.input-readonly .input-field:focus-within .input-field-inner {
  background: transparent;
}

.qdnapro-input.input-readonly .input-field .input-pretab,
.qdnapro-input.input-readonly .input-field .input-posttab, .qdnapro-input.input-readonly .input-field:hover .input-pretab,
.qdnapro-input.input-readonly .input-field:hover .input-posttab, .qdnapro-input.input-readonly .input-field:focus-within .input-pretab,
.qdnapro-input.input-readonly .input-field:focus-within .input-posttab {
  background: transparent;
  border-color: transparent;
  color: var(--c-grey-500);
  padding-left: 0;
}

.qdnapro-input.input-readonly .input-field .input-pretab qdnapro-icon,
.qdnapro-input.input-readonly .input-field .input-posttab qdnapro-icon, .qdnapro-input.input-readonly .input-field:hover .input-pretab qdnapro-icon,
.qdnapro-input.input-readonly .input-field:hover .input-posttab qdnapro-icon, .qdnapro-input.input-readonly .input-field:focus-within .input-pretab qdnapro-icon,
.qdnapro-input.input-readonly .input-field:focus-within .input-posttab qdnapro-icon {
  color: var(--c-grey-500);
}

.qdnapro-input .input-message {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  font-size: 13px;
  line-height: 20px;
}

.qdnapro-input .input-message qdnapro-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.qdnapro-input .input-message-error {
  color: var(--c-signal-red-text);
}

.qdnapro-input .input-message-warning {
  color: var(--c-warn-yellow-600);
}

[data-theme=dark] .qdnapro-input .input-label {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-input .input-optional {
  color: #a6aab3;
}

[data-theme=dark] .qdnapro-input .input-hint {
  color: #a6aab3;
}

[data-theme=dark] .qdnapro-input .input-required {
  color: #f87171;
}

[data-theme=dark] .qdnapro-input .input-field {
  background: #0b0b0d;
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-input .input-native {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-input.input-filled .input-field .input-native {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-input .input-native::placeholder {
  color: #898e99;
}

[data-theme=dark] .qdnapro-input .input-leading-icon,
[data-theme=dark] .qdnapro-input .input-trailing-icon {
  color: #898e99;
}

[data-theme=dark] .qdnapro-input.input-filled .input-leading-icon, [data-theme=dark] .qdnapro-input.input-filled .input-trailing-icon {
  color: #e1e3e6;
}

/* Currency-prefix in de donkere stand: EXPLICIET op de kleur die hij hier vandaag ook
   al heeft, zodat de basis-fix hierboven (var(--c-grey-400) -> var(--c-text-muted)) het donkere
   thema niet meesleept. Dit is geen nieuwe keuze: in het donkere thema resolveert
   --c-text-muted naar --c-grey-400 en dat IS var(--c-grey-400), dus de donkere stand verandert
   niet. De regel staat er omdat de basis nu een token gebruikt dat per thema iets
   anders betekent, en omdat de preview de tokens zelf niet definieert (daar zou de
   fallback var(--c-text-muted) anders op de bijna-zwarte donkere vulling belanden).
   Anders dan de placeholder en het leading-icoon had de prefix nog geen eigen donkere
   regel voor de lege stand, alleen voor gevuld/uitgeschakeld/alleen-lezen. */
[data-theme=dark] .qdnapro-input.input-type-currency .input-currency-prefix {
  color: #a6aab3;
}

[data-theme=dark] .qdnapro-input .input-field:hover {
  border-color: #666dae;
}

[data-theme=dark] .qdnapro-input.input-focus .input-field,
[data-theme=dark] .qdnapro-input .input-field:focus-within {
  border-color: #535ba4;
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.4);
}

[data-theme=dark] .qdnapro-input.input-select .input-field {
  border-color: #535ba4;
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.4);
}

[data-theme=dark] .qdnapro-input.input-success .input-field {
  border-color: #58b992;
  box-shadow: 0 0 0 3px rgba(139, 236, 197, 0.4);
}

[data-theme=dark] .qdnapro-input .input-state-success {
  color: #58b992;
}

[data-theme=dark] .qdnapro-input.input-error .input-field {
  border-color: #f98d8d;
  box-shadow: 0 0 0 3px rgba(249, 141, 141, 0.4);
}

[data-theme=dark] .qdnapro-input .input-state-error {
  color: #f87171;
}

[data-theme=dark] .qdnapro-input .input-message-error {
  color: #f87171;
}

[data-theme=dark] .qdnapro-input.input-warning .input-field {
  border-color: #ef8e02;
  box-shadow: 0 0 0 3px rgba(251, 191, 92, 0.4);
}

[data-theme=dark] .qdnapro-input .input-state-warning {
  color: #ef8e02;
}

[data-theme=dark] .qdnapro-input .input-message-warning {
  color: #ef8e02;
}

[data-theme=dark] .qdnapro-input.input-disabled .input-field {
  background: #40444d;
  border-color: transparent;
}

[data-theme=dark] .qdnapro-input.input-disabled .input-native {
  color: #6b7280;
}

[data-theme=dark] .qdnapro-input.input-disabled .input-leading-icon, [data-theme=dark] .qdnapro-input.input-disabled .input-trailing-icon {
  color: #6b7280;
}

[data-theme=dark] .qdnapro-input.input-readonly .input-field {
  background: transparent;
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-input .input-pretab,
[data-theme=dark] .qdnapro-input .input-posttab {
  background: #40444d;
  color: #a6aab3;
}

[data-theme=dark] .qdnapro-input .input-pretab qdnapro-icon,
[data-theme=dark] .qdnapro-input .input-posttab qdnapro-icon {
  color: #a6aab3;
}

[data-theme=dark] .qdnapro-input .input-pretab {
  border-right-color: #565b66;
}

[data-theme=dark] .qdnapro-input .input-posttab {
  border-left-color: #565b66;
}

[data-theme=dark] .qdnapro-input .input-field-inner {
  background: #0b0b0d;
}

[data-theme=dark] .qdnapro-input.input-type-search .qdnapro-icon-btn.icon-btn-dropdown-search,
[data-theme=dark] .qdnapro-input .qdnapro-icon-btn.icon-btn-dropdown-search {
  background: #40444d;
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-input.input-type-search .qdnapro-icon-btn.icon-btn-dropdown-search:hover:not(.icon-btn-disabled),
[data-theme=dark] .qdnapro-input .qdnapro-icon-btn.icon-btn-dropdown-search:hover:not(.icon-btn-disabled) {
  background: #565b66;
}

[data-theme=dark] .qdnapro-input.input-type-phone .input-country-picker::after {
  background: #565b66;
}

[data-theme=dark] .qdnapro-input .input-ac-dropdown {
  background: #1f2028;
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-input .input-ac-item {
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-input .input-ac-item:hover, [data-theme=dark] .qdnapro-input .input-ac-item.input-ac-item-active {
  background: #565b66;
}

[data-theme=dark] .qdnapro-input .input-ac-item strong {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-input .input-ac-empty,
[data-theme=dark] .qdnapro-input .input-ac-loading {
  color: #a6aab3;
}

[data-theme=dark] .qdnapro-input .input-ac-error {
  color: #f87171;
}

[data-theme=dark] .qdnapro-input .input-ac-spinner {
  border-color: #565b66;
  border-top-color: #4652f3;
}

/* === theme: glass — added 2026-06-08 ===
   Translucent fields for use on a dark / coloured surface (e.g. the login
   stage). Same structure and behaviour as the default input; only the colours
   change. Activate by setting data-theme="glass" on an ancestor (the login
   form does this). Focus ring uses the login lila accent. */
[data-theme=glass] .qdnapro-input .input-field {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.28);
}

[data-theme=glass] .qdnapro-input .input-field .input-native {
  color: #ffffff;
}

[data-theme=glass] .qdnapro-input .input-field .input-native::placeholder {
  color: rgba(255, 255, 255, 0.7);
}

[data-theme=glass] .qdnapro-input .input-leading-icon,
[data-theme=glass] .qdnapro-input .input-trailing-icon {
  color: rgba(255, 255, 255, 0.75);
}

[data-theme=glass] .qdnapro-input.input-filled .input-leading-icon,
[data-theme=glass] .qdnapro-input.input-filled .input-trailing-icon {
  color: #ffffff;
}

/* Currency-prefix op glas: net als bij het donkere thema hierboven expliciet op de
   kleur die hij vandaag ook al heeft, zodat de basis-fix de doorschijnende vulling op
   de donkere loginachtergrond niet meesleept (daar zou var(--c-text-muted) juist SLECHTER worden).
   Puur behoud, geen nieuwe kleurkeuze. Openstaand puntje voor later: glas zet zijn
   placeholder op rgba(255,255,255,0.7) en zijn iconen op 0.75, dus strikt genomen
   hoort de prefix daar ook in die reeks mee en niet op een grijs uit het lichte
   palet. Dat is een aparte designkeuze en is hier niet gemaakt. */
[data-theme=glass] .qdnapro-input.input-type-currency .input-currency-prefix {
  color: #a6aab3;
}

[data-theme=glass] .qdnapro-input .input-field:hover {
  border-color: rgba(255, 255, 255, 0.45);
}

[data-theme=glass] .qdnapro-input.input-focus .input-field,
[data-theme=glass] .qdnapro-input .input-field:focus-within {
  border-color: #9a8fff;
  background: rgba(255, 255, 255, 0.2);
  box-shadow: 0 0 0 3px rgba(154, 143, 255, 0.35);
}

/* Trailing icon buttons (password eye-toggle, clear-x) on glass. */
[data-theme=glass] .qdnapro-input .input-trailing .qdnapro-icon-btn.icon-btn-input-icon {
  color: rgba(255, 255, 255, 0.75);
}

[data-theme=glass] .qdnapro-input .input-trailing .qdnapro-icon-btn.icon-btn-input-icon:hover:not(.icon-btn-disabled) {
  background-color: rgba(255, 255, 255, 0.12);
  color: #ffffff;
}

/* State accents kept legible on the dark surface. */
[data-theme=glass] .qdnapro-input.input-error .input-field {
  border-color: #f98d8d;
  box-shadow: 0 0 0 3px rgba(249, 141, 141, 0.4);
}

[data-theme=glass] .qdnapro-input .input-state-error,
[data-theme=glass] .qdnapro-input .input-message-error {
  color: #f98d8d;
}

[data-theme=glass] .qdnapro-input.input-success .input-field {
  border-color: #58b992;
}

[data-theme=glass] .qdnapro-input .input-state-success {
  color: #8becc5;
}

/* === type: date — added 2026-05-11 (compiled from _input.scss) === */
.qdnapro-input.input-type-date .input-native::-webkit-calendar-picker-indicator {
  display: none;
}

.qdnapro-input.input-type-date .input-native {
  text-align: left;
  min-width: 0;
}

[data-theme=dark] .qdnapro-input.input-type-date .input-native::-webkit-calendar-picker-indicator {
  display: none;
}

/* === type: time — added 2026-06-19 (native <input type="time">, mirrors date) === */
.qdnapro-input.input-type-time .input-native::-webkit-calendar-picker-indicator {
  display: none;
}

.qdnapro-input.input-type-time .input-native {
  text-align: left;
  min-width: 0;
}

[data-theme=dark] .qdnapro-input.input-type-time .input-native::-webkit-calendar-picker-indicator {
  display: none;
}

/* === date/time empty-state placeholder (added 2026-06-19) ===
   When nothing is entered, show the dd/mm/yyyy (and HH:mm) format text in the same
   light-grey placeholder colour as other inputs (like the currency "0,00"); the
   value turns dark once filled (.input-filled). [Kim]
   Meegetrokken met de basis-placeholder-fix (besluit 78, klus 4b, 31.07.2026): deze
   regel gebruikte bewust dezelfde kleur als de basis-placeholder ("in the same
   light-grey placeholder colour as other inputs"), dus zonder deze mee te nemen
   zou alleen dit type de oude, te lichte 1.91:1-kleur houden. */
.qdnapro-input.input-type-date:not(.input-filled) .input-native,
.qdnapro-input.input-type-time:not(.input-filled) .input-native {
  color: var(--c-text-muted);
}

[data-theme=dark] .qdnapro-input.input-type-date:not(.input-filled) .input-native,
[data-theme=dark] .qdnapro-input.input-type-time:not(.input-filled) .input-native {
  color: #898e99;
}

/* === variant: round (pill-shape) — PWA only [2026-06-30] ===
   Boolean attribute `round`. Rounds the field to a pill shape with
   slightly wider horizontal padding so the content breathes at the
   curved edges. Internal icon-btns already use border-radius: 50%
   so their hover circles stay round. The right trailing edge gets
   a small negative margin to keep the last icon optically centred. */
.qdnapro-input.input-round .input-field {
  border-radius: 9999px;
  padding-left: 20px;
  padding-right: 12px;
}

.qdnapro-input.input-round .input-field .input-trailing {
  margin-right: 4px;
}

/* === variant: dark-purple [2026-06-30] ===
   Boolean attribute `dark-purple`. Deep-purple surface for use on
   purple-background pages (PWA list_page search, login, etc.).
   Tokens: surface=--c-purple-700, text=--c-purple-50,
   placeholder/icons=--c-purple-300, label=--c-white-04, hint=--c-purple-300.
   Focus ring unchanged (brand purple border). */
.qdnapro-input.input-dark-purple .input-field {
  background: var(--c-purple-700);
  border-color: transparent;
  transition: background-color 120ms ease-out, border-color 120ms ease-out;
}

.qdnapro-input.input-dark-purple .input-field:hover {
  background: var(--c-purple-600);
  border-color: transparent;
}

.qdnapro-input.input-dark-purple .input-field:focus-within {
  border-color: var(--c-brand);
  background: var(--c-purple-700);
}

.qdnapro-input.input-dark-purple .input-field .input-native {
  color: var(--c-purple-50);
}

.qdnapro-input.input-dark-purple .input-field .input-native::placeholder {
  color: var(--c-purple-300);
  font-weight: 500;
}

.qdnapro-input.input-dark-purple .input-field .input-leading-icon {
  color: var(--c-purple-300);
}

.qdnapro-input.input-dark-purple .input-label {
  color: var(--c-white-04);
}

.qdnapro-input.input-dark-purple .input-hint {
  color: var(--c-purple-300);
}

/* Clear-x, spinner ±, and eye-toggle icon-btns inside dark-purple */
.qdnapro-input.input-dark-purple .input-trailing .qdnapro-icon-btn.icon-btn-input-icon {
  color: var(--c-purple-50);
}

.qdnapro-input.input-dark-purple .input-trailing .qdnapro-icon-btn.icon-btn-input-icon:hover:not(.icon-btn-disabled) {
  background-color: var(--c-purple-600);
  color: var(--c-purple-50);
}

/* === variant: grey [2026-07-31] ===
   Boolean attribute `grey`. Light-grey surface (--c-grey-100) so the field
   stands out against a white background instead of blending into it - built
   for the app-header search field (qdnapro-app-header slot="search"), but
   usable anywhere a field sits directly on white/near-white.
   No border of its own: the grey fill IS the shape (per Kim), same idea as
   dark-purple's border-color: transparent on its own surface.
   Placeholder/icon colours are left at their normal (non-grey) values on
   purpose: grey-100 (var(--c-grey-100)) is close enough to white in luminance that
   the default grey-400 placeholder/icon colour still reads fine on it - a
   dedicated darker placeholder token was not needed the way dark-purple
   needed one for its much-lower-contrast dark surface.
   Combining with dark-purple is a no-op: see qdna-input.js render(), grey
   is ignored whenever dark-purple is also set. */
.qdnapro-input.input-grey .input-field {
  background: var(--c-grey-100, #e7e9ec);
  border-color: transparent;
}

.qdnapro-input.input-grey .input-field:hover {
  border-color: transparent;
}

/* Placeholder DONKERDER op de grijze vulling (Kim, 31.07.2026: "nu lijkt het veld
   ook disabled omdat de placeholder tekst te licht is, die moet echt donkerder").
   Gemeten met de WCAG-formule, niet op het oog:
     de standaard-placeholder var(--c-grey-400) op var(--c-grey-100)  -> 1.91:1
     de DISABLED-placeholder  var(--c-text-disabled) op var(--c-grey-100)  -> 2.70:1
   De gewone placeholder was dus LICHTER dan de uitgeschakelde stand, en daarom las
   een leeg veld als een veld dat je niet mag gebruiken. Dat was een fout in de BASIS
   van dit component en niet alleen in deze variant; toen dit hier gebouwd werd, was
   de fix nog gescoped tot de grijze variant en geflagd voor Kim (de basis raakt elke
   input in de backoffice en de app, dat niemand gevraagd had). Besluit 78 / klus 4b
   (31.07.2026) heeft de basis zelf ook op var(--c-text-muted) gezet (zie de
   basis-regel bovenin dit bestand), dus deze regel hier is nu strikt genomen
   overbodig geworden (de basis levert al dezelfde kleur) maar blijft staan als
   expliciete, zelfstandige garantie voor deze variant.
   var(--c-text-muted) geeft 3.94:1, ruim boven de disabled-stand en boven de 3:1 die
   WCAG voor grote/secundaire tekst aanhoudt. */
.qdnapro-input.input-grey .input-field .input-native::placeholder {
  color: var(--c-text-muted);
}

/* En het loep-icoontje ervoor mee, anders blijft dat als enige licht achter en leest
   de rij nog steeds als uitgeschakeld. */
.qdnapro-input.input-grey .input-field .input-leading-icon {
  color: var(--c-text-muted);
}

/* Focus ring: restated here (not inherited from the base :focus-within
   rule) for the same reason dark-purple restates its own - the plain
   border-color: transparent rule above has equal selector specificity to
   the base ".qdnapro-input .input-field:focus-within" rule and comes later
   in the file, so without this override it would win on focus too and the
   ring would silently disappear.
   Token: var(--c-brand-purple) rather than dark-purple's var(--c-brand) -
   that token is not defined anywhere in this codebase (checked: absent from
   design-tokens/_design-tokens.scss and the compiled style-v1.css), so
   dark-purple's focus-within border-color is very likely a pre-existing,
   silently-broken rule. Not fixed here (out of scope for this task, and
   _input.scss for dark-purple is being read, not rewritten) - flagging it
   in the handoff instead of copying the same undefined token forward. */
.qdnapro-input.input-grey .input-field:focus-within {
  border-color: var(--c-brand-purple);
  background: var(--c-grey-100, #e7e9ec);
}

/* show-count: de "12/40"-teller onder het veld (Kim 15.09.2026, zichtbare
   tekenlimiet op de Pulse startscherm-teksten). Amber zodra de cap geraakt
   is - de harde maxlength blokkeert toch al, dit is alleen de uitleg. */
.qdnapro-input .input-charcount {
  margin-top: 4px;
  font-size: 11px;
  font-weight: 600;
  text-align: right;
  color: var(--c-text-muted);
  font-variant-numeric: tabular-nums;
}

.qdnapro-input .input-charcount.is-max {
  color: var(--c-warn-amber-600, #b45309);
}

.qdnapro-label-circle {
  --lc-size: 44px;
  --lc-icon-size: 16px;
  --lc-bg: var(--c-grey-50);
  --lc-icon: #1e1f20;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: var(--lc-size);
  height: var(--lc-size);
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--lc-bg);
  color: var(--lc-icon);
  user-select: none;
}

.qdnapro-label-circle .label-circle-icon {
  display: inline-flex;
  width: var(--lc-icon-size);
  height: var(--lc-icon-size);
  color: inherit;
  pointer-events: none;
}

.qdnapro-label-circle .label-circle-icon svg {
  fill: currentColor;
  width: 100%;
  height: 100%;
}

.qdnapro-label-circle.label-circle-size-big {
  --lc-size: 44px;
  --lc-icon-size: 16px;
}

.qdnapro-label-circle.label-circle-size-small {
  --lc-size: 20px;
  --lc-icon-size: 12px;
  outline: 1px solid color-mix(in srgb, currentColor 22%, transparent);
  outline-offset: -1px;
}

.qdnapro-label-circle.label-circle-color-grey {
  --lc-bg: var(--c-grey-50);
  --lc-icon: #1e1f20;
}

.qdnapro-label-circle.label-circle-color-grey-2 {
  --lc-bg: var(--c-grey-300);
  --lc-icon: #1e1f20;
}

.qdnapro-label-circle.label-circle-color-red {
  --lc-bg: var(--c-signal-red-bg);
  --lc-icon: #633030;
}

.qdnapro-label-circle.label-circle-color-red-2 {
  --lc-bg: var(--c-chip-red-2-bg);
  --lc-icon: #633030;
}

.qdnapro-label-circle.label-circle-color-yellow {
  --lc-bg: var(--c-chip-yellow-bg);
  --lc-icon: #655522;
}

.qdnapro-label-circle.label-circle-color-yellow-2 {
  --lc-bg: var(--c-chip-yellow-2-bg);
  --lc-icon: #655522;
}

.qdnapro-label-circle.label-circle-color-green {
  --lc-bg: var(--c-chip-green-bg);
  --lc-icon: #2f5d4a;
}

.qdnapro-label-circle.label-circle-color-green-2 {
  --lc-bg: var(--c-chip-green-2-bg);
  --lc-icon: #2f5d4a;
}

.qdnapro-label-circle.label-circle-color-blue {
  --lc-bg: var(--c-signal-blue-bg);
  --lc-icon: #37475a;
}

.qdnapro-label-circle.label-circle-color-blue-2 {
  --lc-bg: var(--c-chip-blue-2-bg);
  --lc-icon: #37475a;
}

.qdnapro-label-circle.label-circle-color-bright-blue {
  --lc-bg: var(--c-chip-bright-blue-bg);
  --lc-icon: #192a5a;
}

.qdnapro-label-circle.label-circle-color-bright-blue-2 {
  --lc-bg: var(--c-chip-bright-blue-2-bg);
  --lc-icon: #192a5a;
}

.qdnapro-label-circle.label-circle-color-pink {
  --lc-bg: var(--c-signal-pink-bg);
  --lc-icon: #562d3a;
}

.qdnapro-label-circle.label-circle-color-dark-pink {
  --lc-bg: var(--c-chip-dark-pink-bg);
  --lc-icon: #562d3a;
}

.qdnapro-label-circle.label-circle-color-purple {
  --lc-bg: var(--c-chip-purple-bg);
  --lc-icon: #413b5e;
}

.qdnapro-label-circle.label-circle-color-dark-purple {
  --lc-bg: var(--c-chip-dark-purple-bg);
  --lc-icon: #413b5e;
}

.qdnapro-label-circle.label-circle-disabled {
  opacity: 0.6;
}

/* Additive status-* colors (16.07.2026 — planner status filter). Solid dots
   (bg == icon color, no light-tint pairing like the 16 colors above) mapped
   1:1 to qdnapro-event-card's own status tokens (see _event-card.scss:
   --c-purple-500, --c-signal-red/-orange/-green-text) — these are used
   icon-less (a pure color indicator, see qdna-menu-item.js), so only --lc-bg
   is ever visible; --lc-icon is set to the same value for consistency should
   an icon ever be added. No dark-theme override: event-card itself has none
   for these tokens either (raw signal primitives, not re-themed). First-
   class here (not a menu-item-scoped override) because this component's own
   render() unconditionally rewrites className on every re-render, which
   silently discarded any externally-added class-based override before this
   fix (Kim's live test, 16.07.2026 — filter dots rendered grey/empty). */
.qdnapro-label-circle.label-circle-color-status-planned {
  --lc-bg: var(--c-purple-500, #40499a);
  --lc-icon: var(--c-purple-500, #40499a);
}

.qdnapro-label-circle.label-circle-color-status-overdue {
  --lc-bg: var(--c-signal-red-text, #c65a5a);
  --lc-icon: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-label-circle.label-circle-color-status-inprogress {
  --lc-bg: var(--c-signal-orange-text, #bc6a1f);
  --lc-icon: var(--c-signal-orange-text, #bc6a1f);
}

.qdnapro-label-circle.label-circle-color-status-complete {
  --lc-bg: var(--c-signal-green-text, #428b6e);
  --lc-icon: var(--c-signal-green-text, #428b6e);
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-grey {
  --lc-bg: #565b66;
  --lc-icon: #e1e3e6;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-grey-2 {
  --lc-bg: #40444d;
  --lc-icon: #e1e3e6;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-red {
  --lc-bg: #5a2b2b;
  --lc-icon: #fbaaaa;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-red-2 {
  --lc-bg: #7a3838;
  --lc-icon: #fee3e3;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-yellow {
  --lc-bg: #5a4d1f;
  --lc-icon: #fde594;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-yellow-2 {
  --lc-bg: #7a6b2d;
  --lc-icon: #fef6db;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-green {
  --lc-bg: #2a5544;
  --lc-icon: #8becc5;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-green-2 {
  --lc-bg: #3d7a62;
  --lc-icon: #e2faf1;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-blue {
  --lc-bg: #2e3e54;
  --lc-icon: #b5ceed;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-blue-2 {
  --lc-bg: #445a78;
  --lc-icon: #e6eff9;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-bright-blue {
  --lc-bg: #3a4a8a;
  --lc-icon: #d6e0f9;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-bright-blue-2 {
  --lc-bg: #2a3560;
  --lc-icon: #85a1ec;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-pink {
  --lc-bg: #4e2a36;
  --lc-icon: #e5a6b9;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-dark-pink {
  --lc-bg: #6e3d50;
  --lc-icon: #f6e1e8;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-purple {
  --lc-bg: #3a3555;
  --lc-icon: #c4bcf3;
}

[data-theme=dark] .qdnapro-label-circle.label-circle-color-dark-purple {
  --lc-bg: #524a7a;
  --lc-icon: #ebe9fb;
}

/* === BEGIN QDNA-LOGO CSS === */
.qdnapro-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  color: inherit;
  line-height: 1;
  user-select: none;
  flex-shrink: 0;
}

.qdnapro-logo svg {
  display: block;
  height: 100%;
  width: auto;
  fill: currentColor;
}

/* === END QDNA-LOGO CSS === */
.qdnapro-members {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 8px 4px 4px;
  border-radius: 999px;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 150ms ease;
}

.qdnapro-members:focus {
  outline: none;
}

.qdnapro-members:focus-visible {
  outline: 2px solid var(--c-purple-500);
  outline-offset: 2px;
}

.qdnapro-members.members-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

/* Trailing "+" circle. Same height as a 34px avatar so it visually
   lines up. Stroke-only SVG so it renders white over photos and
   purple on light surfaces via currentColor. */
.qdnapro-members .members-add {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid transparent;
  transition: background-color 150ms ease, border-color 150ms ease;
}

.qdnapro-members .members-add svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
}

/* --- Tone: on-photo (default) - glass over imagery. --- */
.qdnapro-members.members-tone-on-photo {
  color: var(--c-text-on-action);
}

.qdnapro-members.members-tone-on-photo:hover:not(.members-disabled) {
  background: rgba(255, 255, 255, 0.12);
}

.qdnapro-members.members-tone-on-photo .members-add {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: var(--c-text-on-action);
}

.qdnapro-members.members-tone-on-photo:hover:not(.members-disabled) .members-add {
  background: rgba(255, 255, 255, 0.3);
  border-color: rgba(255, 255, 255, 0.42);
}

/* --- Tone: light - on a light surface (cards, panels). --- */
.qdnapro-members.members-tone-light {
  color: var(--c-purple-500);
}

.qdnapro-members.members-tone-light:hover:not(.members-disabled) {
  background: rgba(70, 82, 243, 0.06);
}

.qdnapro-members.members-tone-light .members-add {
  background: var(--c-bg-card);
  border-color: var(--c-grey-300);
  color: var(--c-purple-500);
}

.qdnapro-members.members-tone-light:hover:not(.members-disabled) .members-add {
  background: var(--c-grey-50);
  border-color: var(--c-text-disabled);
}

[data-theme=dark] .qdnapro-members.members-tone-light {
  color: #a5acff;
}

[data-theme=dark] .qdnapro-members.members-tone-light:hover:not(.members-disabled) {
  background: rgba(165, 172, 255, 0.1);
}

[data-theme=dark] .qdnapro-members.members-tone-light .members-add {
  background: #2e3036;
  border-color: #40444d;
  color: #a5acff;
}

[data-theme=dark] .qdnapro-members.members-tone-light:hover:not(.members-disabled) .members-add {
  background: #40444d;
}

.qdnapro-menu {
  display: inline-flex;
  flex-direction: column;
  box-sizing: border-box;
  min-width: 160px;
  padding: 8px;
  border-radius: 8px;
  gap: 4px;
}

.qdnapro-menu > qdnapro-menu-item,
.qdnapro-menu > qdnapro-menu-separator,
.qdnapro-menu > qdnapro-menu-section-heading,
.qdnapro-menu > qdnapro-menu-header {
  width: 100%;
}

.qdnapro-menu.menu-color-neutral {
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.15), 0 8px 12px 6px rgba(0, 0, 0, 0.075);
}

.qdnapro-menu.menu-color-action {
  background: var(--c-purple-500);
  border: 0.5px solid var(--c-purple-600);
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.075), 0 1px 2px 0 rgba(0, 0, 0, 0.15);
}

.qdnapro-menu.menu-embedded {
  min-width: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

.qdnapro-menu-header {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 8px 16px;
  box-sizing: border-box;
}

.qdnapro-menu-header .menu-header-heading {
  font-family: "Inter", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
}

.qdnapro-menu-header .menu-header-subheading {
  font-family: "Inter", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 20px;
}

.qdnapro-menu-header.menu-header-color-neutral .menu-header-heading {
  color: var(--c-grey-950);
}

.qdnapro-menu-header.menu-header-color-neutral .menu-header-subheading {
  color: var(--c-grey-500);
}

.qdnapro-menu-header.menu-header-color-action .menu-header-heading {
  color: var(--c-text-on-action);
}

.qdnapro-menu-header.menu-header-color-action .menu-header-subheading {
  color: rgba(255, 255, 255, 0.7);
}

.qdnapro-menu-separator {
  display: block;
  height: 1px;
  margin: 8px 0;
  border: none;
  box-sizing: content-box;
  /* qdnapro-menu is a flex column, so the separator is a flex ITEM — and a flex
     item shrinks by default. With no content its min-content height is 0, so the
     moment the menu is height-constrained and has to scroll, this 1px line gets
     compressed to exactly 0px and the keyline silently disappears while its
     class and background colour are still perfectly correct. Measured in the
     capped select popover, 05.08.2026: offsetHeight 0, and 1 again with
     flex-shrink: 0. Menu-items survive because their text gives them a
     min-content height. */
  flex-shrink: 0;
}

.qdnapro-menu-separator.menu-separator-color-neutral {
  background: var(--c-grey-100);
}

.qdnapro-menu-separator.menu-separator-color-action {
  background: rgba(255, 255, 255, 0.16);
}

.qdnapro-menu-section-heading {
  display: block;
  box-sizing: border-box;
  padding: 0 4px;
  margin-top: 4px;
  font-family: "Inter", sans-serif;
  font-size: 10px;
  font-weight: 400;
  line-height: 20px;
  letter-spacing: 0;
  user-select: none;
}

.qdnapro-menu-section-heading.menu-section-heading-color-neutral {
  color: var(--c-grey-500);
}

.qdnapro-menu-section-heading.menu-section-heading-color-action {
  color: rgba(255, 255, 255, 0.7);
}

[data-theme=dark] .qdnapro-menu.menu-color-neutral {
  background: #2e3036;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.3), 0 8px 12px 6px rgba(0, 0, 0, 0.2);
}

[data-theme=dark] .qdnapro-menu.menu-color-action {
  background: #333a7b;
  border: 0.5px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.2), 0 1px 2px 0 rgba(0, 0, 0, 0.3);
}

[data-theme=dark] .qdnapro-menu .qdnapro-menu-header.menu-header-color-neutral .menu-header-heading {
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-menu .qdnapro-menu-header.menu-header-color-neutral .menu-header-subheading {
  color: rgba(225, 227, 230, 0.65);
}

[data-theme=dark] .qdnapro-menu .qdnapro-menu-separator.menu-separator-color-neutral {
  background: rgba(255, 255, 255, 0.12);
}

[data-theme=dark] .qdnapro-menu .qdnapro-menu-separator.menu-separator-color-action {
  background: rgba(255, 255, 255, 0.2);
}

[data-theme=dark] .qdnapro-menu .qdnapro-menu-section-heading.menu-section-heading-color-neutral {
  color: rgba(225, 227, 230, 0.6);
}

.qdnapro-menu-item {
  --mi-text: var(--c-grey-950);
  --mi-text-muted: rgba(11, 11, 13, 0.55);
  --mi-icon: var(--c-grey-950);
  --mi-bg: transparent;
  --mi-bg-hover: var(--c-bg-card-hover);
  --mi-bg-pressed: var(--c-border-card);
  --mi-bg-selected: var(--c-grey-50);
  --mi-disabled-text: var(--c-text-disabled);
  --mi-destructive-text: var(--c-tag-critical-text);
  --mi-destructive-bg-hover: var(--c-signal-red-soft);
  --mi-focus-ring: var(--c-purple-500);
  --mi-focus-glow: rgba(70, 82, 243, 0.25);
  display: flex;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  background: var(--mi-bg);
  color: var(--mi-text);
  cursor: pointer;
  user-select: none;
  font-family: inherit;
  border: 0 solid transparent;
  transition: background-color 100ms ease-out;
}

.qdnapro-menu-item .menu-item-icon,
.qdnapro-menu-item .menu-item-chevron,
.qdnapro-menu-item .menu-item-check {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--mi-icon);
  pointer-events: none;
}

.qdnapro-menu-item .menu-item-icon svg,
.qdnapro-menu-item .menu-item-chevron svg,
.qdnapro-menu-item .menu-item-check svg {
  fill: currentColor;
  width: 100%;
  height: 100%;
}

.qdnapro-menu-item .menu-item-chevron,
.qdnapro-menu-item .menu-item-check {
  opacity: 0.85;
}

.qdnapro-menu-item .menu-item-label {
  flex: 1 0 0;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-menu-item .menu-item-shortcut {
  flex-shrink: 0;
  color: var(--mi-text-muted);
  font-family: "Menlo", "Monaco", monospace;
  letter-spacing: 0.3px;
}

/* Trailing area — a count pill (always visible) and/or hover-revealed action
   buttons (open + remove), grouped at the end of the row. The pill stays put;
   the actions fade in on hover/focus so the row is clean at rest. [Kim 2026-06-15] */
.qdnapro-menu-item .menu-item-trailing {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  margin-left: 6px;
}

.qdnapro-menu-item .menu-item-pill {
  flex-shrink: 0;
}

/* Tag — a real qdnapro-tag on the trailing edge (status label:
   "Nieuw" / "Pro" / "Beta"). The label's flex:1 pushes it right; it sits
   BEFORE the trailing slot so it coexists with a chevron/check/pill.
   flex-shrink:0 so it never squashes (the label truncates first). Disabled
   row fades the tag (opacity 0.4, same treatment as the avatar). [Kim 2026-07-20] */
.qdnapro-menu-item .menu-item-tag {
  flex-shrink: 0;
}

.qdnapro-menu-item.menu-item-disabled .menu-item-tag {
  opacity: 0.4;
}

/* Tag-as-label mode — the tag IS the row content (left after the leading
   slot), for checkbox + coloured-tag category pickers. The wrapper takes the
   flex:1 label slot so the tag hugs its content on the left and the row keeps
   a consistent height; long tag text clips at the wrapper edge. [Kim 2026-07-20] */
.qdnapro-menu-item .menu-item-tag-label {
  flex: 1 0 0;
  min-width: 0;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.qdnapro-menu-item .menu-item-tag-label .menu-item-tag {
  max-width: 100%;
}

.qdnapro-menu-item .menu-item-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 0.15s ease;
}

.qdnapro-menu-item.menu-item-with-actions:hover .menu-item-actions,
.qdnapro-menu-item.menu-item-with-actions:focus-within .menu-item-actions {
  opacity: 1;
}

.qdnapro-menu-item .menu-item-badge {
  flex-shrink: 0;
  background: rgba(0, 0, 0, 0.1);
  color: var(--mi-text);
  font-weight: 600;
  text-align: center;
}

.qdnapro-menu-item.menu-item-size-default {
  gap: 12px;
  min-height: 40px;
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 24px;
}

.qdnapro-menu-item.menu-item-size-default .menu-item-icon {
  width: 24px;
  height: 24px;
}

.qdnapro-menu-item.menu-item-size-default .menu-item-chevron {
  width: 24px;
  height: 24px;
}

.qdnapro-menu-item.menu-item-size-default .menu-item-check {
  width: 16px;
  height: 16px;
}

.qdnapro-menu-item.menu-item-size-default .menu-item-shortcut {
  font-size: 12px;
}

.qdnapro-menu-item.menu-item-size-default .menu-item-badge {
  min-width: 18px;
  height: 18px;
  padding: 0 6px;
  border-radius: 9px;
  font-size: 11px;
  line-height: 18px;
}

.qdnapro-menu-item.menu-item-size-small {
  gap: 12px;
  min-height: 28px;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 12px;
  line-height: 20px;
}

.qdnapro-menu-item.menu-item-size-small .menu-item-icon {
  width: 16px;
  height: 16px;
}

.qdnapro-menu-item.menu-item-size-small .menu-item-chevron {
  width: 16px;
  height: 16px;
}

.qdnapro-menu-item.menu-item-size-small .menu-item-check {
  width: 16px;
  height: 16px;
}

.qdnapro-menu-item.menu-item-size-small .menu-item-shortcut {
  font-size: 11px;
}

.qdnapro-menu-item.menu-item-size-small .menu-item-badge {
  min-width: 16px;
  height: 16px;
  padding: 0 5px;
  border-radius: 8px;
  font-size: 10px;
  line-height: 16px;
}

.qdnapro-menu-item:hover:not(.menu-item-disabled):not(.menu-item-active) {
  background: var(--mi-bg-hover);
}

.qdnapro-menu-item:active:not(.menu-item-disabled) {
  background: var(--mi-bg-pressed);
  background-image: none;
}

.qdnapro-menu-item:focus {
  outline: none;
}

.qdnapro-menu-item:focus-visible, .qdnapro-menu-item.force-focus {
  outline: 2px solid var(--mi-focus-ring);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px var(--mi-focus-glow);
}

.qdnapro-menu-item.menu-item-active {
  background: var(--mi-bg-selected);
}

.qdnapro-menu-item.force-hover:not(.menu-item-disabled):not(.menu-item-active) {
  background: var(--mi-bg-hover);
}

.qdnapro-menu-item.force-pressed:not(.menu-item-disabled) {
  background: var(--mi-bg-pressed);
  background-image: none;
}

.qdnapro-menu-item.menu-item-disabled {
  color: var(--mi-disabled-text) !important;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-menu-item.menu-item-disabled .menu-item-icon,
.qdnapro-menu-item.menu-item-disabled .menu-item-chevron,
.qdnapro-menu-item.menu-item-disabled .menu-item-check {
  color: var(--mi-disabled-text);
}

/* Fade illustrative leading visuals (coloured activity-icon, avatar, file-icon)
   when the row is disabled — they don't pick up the text colour, so without this
   they stay vivid and the row doesn't read as disabled. NB: target the element
   TAGS, not the menu-item-* classes — qdnapro-activity-icon / qdnapro-file-icon
   overwrite their own className on render, so the class selectors never match.
   [Kim 2026-06-15] */
.qdnapro-menu-item.menu-item-disabled qdnapro-activity-icon,
.qdnapro-menu-item.menu-item-disabled .menu-item-avatar-wrap,
.qdnapro-menu-item.menu-item-disabled qdnapro-file-icon {
  opacity: 0.5;
}

.qdnapro-menu-item.menu-item-variant-destructive:not(.menu-item-disabled) {
  --mi-bg-hover: var(--mi-destructive-bg-hover);
  color: var(--mi-destructive-text);
}

.qdnapro-menu-item.menu-item-variant-destructive:not(.menu-item-disabled) .menu-item-icon,
.qdnapro-menu-item.menu-item-variant-destructive:not(.menu-item-disabled) .menu-item-chevron,
.qdnapro-menu-item.menu-item-variant-destructive:not(.menu-item-disabled) .menu-item-check {
  color: var(--mi-destructive-text);
}

.qdnapro-menu-item .menu-item-activity-icon {
  flex-shrink: 0;
  margin-right: -8px;
}

.qdnapro-menu-item.menu-item-disabled .menu-item-activity-icon {
  opacity: 0.3;
}

.qdnapro-menu-item .menu-item-circle {
  flex-shrink: 0;
  margin-right: -4px;
}

.qdnapro-menu-item.menu-item-with-circle .menu-item-label {
  margin-left: 0;
}

.qdnapro-menu-item.menu-item-with-checkbox.menu-item-size-default {
  padding: 8px 4px;
}

.qdnapro-menu-item.menu-item-with-checkbox.menu-item-size-small {
  padding: 4px;
}

.qdnapro-menu-item.menu-item-with-checkbox .menu-item-checkbox-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0 4px;
  pointer-events: none;
}

.qdnapro-menu-item.menu-item-with-checkbox .menu-item-checkbox {
  pointer-events: none;
}

.qdnapro-menu-item.menu-item-with-avatar.menu-item-size-default {
  padding: 8px 4px;
}

.qdnapro-menu-item.menu-item-with-avatar.menu-item-size-small {
  padding: 4px;
  /* Small + avatar (e.g. a user-picker qdnapro-select): the default 12px row
     gap plus the avatar-wrap side padding left the radio, avatar and label too
     far apart. Tighten so avatar + label read as one unit. [Kim 2026-07-20] */
  gap: 6px;
}

.qdnapro-menu-item.menu-item-with-avatar.menu-item-size-small .menu-item-avatar-wrap {
  padding: 0 1px;
}

.qdnapro-menu-item.menu-item-with-avatar .menu-item-avatar-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0 4px;
  pointer-events: none;
}

.qdnapro-menu-item.menu-item-with-avatar .menu-item-avatar {
  pointer-events: none;
}

.qdnapro-menu-item.menu-item-with-avatar.menu-item-disabled .menu-item-avatar-wrap {
  opacity: 0.4;
}

.qdnapro-menu-item.menu-item-with-radio.menu-item-size-default {
  padding: 8px 4px;
}

.qdnapro-menu-item.menu-item-with-radio.menu-item-size-small {
  padding: 4px;
}

.qdnapro-menu-item.menu-item-with-radio .menu-item-radio-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0 4px;
  pointer-events: none;
}

.qdnapro-menu-item.menu-item-with-radio .menu-item-radio {
  pointer-events: none;
}

.qdnapro-menu-item.menu-item-color-action {
  --mi-text: #ffffff;
  --mi-text-muted: rgba(255, 255, 255, 0.7);
  --mi-icon: #ffffff;
  --mi-bg-hover: rgba(255, 255, 255, 0.08);
  --mi-bg-pressed: rgba(255, 255, 255, 0.22);
  --mi-bg-selected: rgba(255, 255, 255, 0.16);
  --mi-disabled-text: var(--c-text-disabled-pp);
  --mi-destructive-text: var(--c-warn-red-300);
  --mi-destructive-bg-hover: rgba(255, 155, 155, 0.18);
  --mi-focus-ring: #ffffff;
  --mi-focus-glow: rgba(255, 255, 255, 0.25);
}

.qdnapro-menu-item.menu-item-color-action .menu-item-badge {
  background: rgba(255, 255, 255, 0.22);
  color: var(--c-text-on-action);
}

[data-theme=dark] .qdnapro-menu-item {
  --mi-text: #e1e3e6;
  --mi-text-muted: rgba(225, 227, 230, 0.6);
  --mi-icon: #e1e3e6;
  --mi-bg-hover: rgba(255, 255, 255, 0.06);
  --mi-bg-pressed: rgba(255, 255, 255, 0.14);
  --mi-bg-selected: rgba(255, 255, 255, 0.10);
  --mi-disabled-text: #6b7280;
  --mi-destructive-text: #ff9b9b;
  --mi-destructive-bg-hover: rgba(255, 155, 155, 0.14);
  --mi-focus-ring: #a5acff;
  --mi-focus-glow: rgba(70, 82, 243, 0.4);
}

[data-theme=dark] .qdnapro-menu-item .menu-item-badge {
  background: rgba(255, 255, 255, 0.14);
  color: var(--mi-text);
}

[data-theme=dark] .qdnapro-menu-item.menu-item-color-action {
  --mi-bg-hover: rgba(255, 255, 255, 0.10);
  --mi-bg-pressed: rgba(255, 255, 255, 0.24);
  --mi-bg-selected: rgba(255, 255, 255, 0.18);
}

/* === description variant — label + sub-text (Figma 9794:243715) === */
.qdnapro-menu-item {
  --mi-description-text: var(--c-grey-500);
}

[data-theme=dark] .qdnapro-menu-item {
  --mi-description-text: #898e99;
}

.qdnapro-menu-item.menu-item-color-action {
  --mi-description-text: rgba(255, 255, 255, 0.7);
}

.qdnapro-menu-item .menu-item-label-group {
  flex: 1 0 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.qdnapro-menu-item .menu-item-label-group .menu-item-label {
  flex: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-menu-item .menu-item-description {
  font-size: 10px;
  line-height: 14px;
  color: var(--mi-description-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 400;
}

.qdnapro-menu-item.menu-item-disabled .menu-item-description {
  color: var(--mi-disabled-text);
}

/* === END description variant CSS === */
/* === Mandatory marker (red asterisk before the label) — matches the unit-card
   mandatory convention (var(--c-favorite-heart)). Prefixed inside .menu-item-label so it stays
   glued to the name and clips together with it. [Kim 2026-07-15] === */
.qdnapro-menu-item .menu-item-label .menu-item-mandatory-mark {
  color: var(--c-favorite-heart);
  font-weight: 700;
  margin-right: 3px;
}

/* Status circle-color values (planner status filter, 16.07.2026) used to be
   painted here via a menu-item-scoped override class (.menu-item-circle-
   status-*) instead of label-circle's own `color` attribute, because those
   4 names didn't exist in qdnapro-label-circle's VALID_COLORS. That override
   never actually worked: label-circle's own render() unconditionally
   rewrites its className on every re-render (see qdna-label-circle.js), so
   the override class was wiped the instant the circle connected to the DOM
   — every status dot rendered grey/empty (Kim's live test, 16.07.2026).
   Fixed at the real cause: the 4 status-* names are now first-class colors
   on qdnapro-label-circle itself (see _label-circle.scss) and passed
   through as a normal `color` attribute from qdna-menu-item.js — nothing
   menu-item-scoped left to override here. */
qdnapro-modal:not(:defined) {
  display: none;
}

/* ============================================================
   qdnapro-modal compiled CSS
   Extracted from qdna-modal-preview.html so the bundle can ship
   modal styling to any v1/v2 page (Kim 2026-05-29).
   Two-layer card: outer GREY frame around inner WHITE window.
   ============================================================ */
.qdnapro-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9000;
  pointer-events: none;
}

.qdnapro-modal.modal-open {
  display: flex;
  pointer-events: auto;
}

/* Bootstrap (globally loaded in v1) defines .modal-dialog with
   `pointer-events: none` (and .modal-content with `auto` to re-enable
   inside). Our v2 modal reuses the .modal-dialog / .modal-window
   class names, so Bootstrap's rule makes clicks fall through to the
   backdrop = modal closes on every interaction.
   Re-enable interaction explicitly when the v2 modal is open. */
.qdnapro-modal.modal-open .modal-dialog,
.qdnapro-modal.modal-open .modal-window {
  pointer-events: auto;
}

/* Bootstrap also adds visual borders on .modal-header (border-bottom)
   and .modal-footer (border-top). Our v2 design uses padding-based
   separation, not border-keylines. Zero them out so the cascade
   from Bootstrap can't draw stray lines. */
.qdnapro-modal .modal-header {
  border-bottom: 0 !important;
}

.qdnapro-modal .modal-footer {
  border-top: 0 !important;
}

/* Bootstrap also injects sibling-margins on modal-footer children
   (.modal-footer > :not(:first-child) { margin-left: 0.25rem }, and
   :not(:last-child) { margin-right: 0.25rem }). On a 2-button footer
   that adds 8px extra to our `gap: 16px` → visual gap becomes 24px
   (= 48 device-px on retina). Zero the sibling-margins so the
   declared gap is the actual gap. */
.qdnapro-modal .modal-footer > * {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ── GEEN counter-zoom (meer) — verwijderd 2026-08-03, en dit is de uitleg ──────────────────
   Hier stond `.qdnapro-modal, .qdnapro-select-popover { zoom: 1.25 }`, om de legacy
   `body { zoom: 0.8 }` van de oude backoffice te compenseren: 0.8 × 1.25 = 1.0, zodat een
   position-fixed kind (de modal en de select-popover hangen beide aan <body>) op de juiste plek
   landde in plaats van op 0.8 × de plek.

   Die 0.8 bereikt een v1-pagina niet meer. Hij staat alleen nog in `web/css/style.css` (als
   `body { zoom: 72% }`), en die stylesheet wordt uitsluitend geladen door de LEGACY headers
   (`View/components/header.html`, `View/NewDesign/components/header.html`) — en die laden géén
   `style-v1.css` en géén `components.js`, dus daar bestaat geen v2-modal om te schalen. Gemeten
   op een v1-pagina: `getComputedStyle(document.body).zoom` = 1.

   Het gevolg was een knoop: de 1.25 had niets te compenseren, dus élke moderne pagina zette hem
   weer uit — en één van die neutralisaties (in `partials/_inbox.scss`) was NIET pagina-gescoopt
   en deed het dus app-breed. Netto stond alles op 1, maar via twee regels die elkaar opheffen.
   ⚠️ Zet hem niet terug "voor de zekerheid": dan wordt élk venster 25% te groot op elke pagina
      die geen eigen neutralisatie heeft. Komt de legacy body-zoom ooit terug op een pagina die
      wél v2-componenten laadt, dan hoort de correctie PAGINA-gescoopt bij die pagina te staan.
   ⓘ Er staat nog een dode `zoom: 1` in `projects-v2.html`, `home-v2.html` en `floweditor.html`.
     Die doen niets meer (1 op iets dat al 1 is) en mogen weg zodra iemand die pagina's aanraakt. */
.qdnapro-modal .modal-backdrop {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(11, 11, 13, 0.45);
  animation: qdnapro-modal-backdrop-in 160ms ease-out;
}

/* OUTER GREY CARD */
.qdnapro-modal .modal-dialog {
  background: var(--c-grey-50);
  border: 0.5px solid #ffffff;
  border-radius: 16px;
  padding: 8px;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.3), 0 8px 12px 6px rgba(0, 0, 0, 0.15);
  display: flex;
  width: 100%;
  max-width: 560px;
  max-height: calc(100vh - 48px);
  animation: qdnapro-modal-dialog-in 200ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.qdnapro-modal.modal-size-small .modal-dialog {
  max-width: 400px;
}

.qdnapro-modal.modal-size-medium .modal-dialog {
  max-width: 560px;
}

.qdnapro-modal.modal-size-large .modal-dialog {
  max-width: 800px;
}

.qdnapro-modal.modal-size-xlarge .modal-dialog {
  max-width: 1000px;
}

.qdnapro-modal.modal-size-xxlarge .modal-dialog {
  max-width: 1100px;
}

/* Layout: with-info - left side info-panel */
.qdnapro-modal.modal-layout-with-info .modal-dialog {
  gap: 8px;
}

.qdnapro-modal .modal-info {
  /* 280px blijft de default; `info-width="N"` op de modal zet --modal-info-w en
     maakt het paneel smaller zonder deze regel te overschrijven. [Kim 05.08.2026] */
  flex: 0 0 var(--modal-info-w, 280px);
  min-width: 0;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  line-height: 22px;
  color: var(--c-grey-950);
  position: relative;
  overflow: visible;
  z-index: 0;
}

.qdnapro-modal .modal-info qdnapro-icon,
.qdnapro-modal .modal-info > .modal-info-icon {
  color: var(--c-purple-500);
  width: 24px;
  height: 24px;
}

.qdnapro-modal .qdnapro-modal-info-title {
  margin: 0;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: var(--c-purple-500);
}

.qdnapro-modal .qdnapro-modal-info-illustration {
  margin-top: auto;
  margin-left: -16px;
  margin-right: -16px;
  align-self: stretch;
  pointer-events: none;
  min-height: 160px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
}

.qdnapro-modal .qdnapro-modal-info-illustration qdnapro-illustration,
.qdnapro-modal .qdnapro-modal-info-illustration img,
.qdnapro-modal .qdnapro-modal-info-illustration svg {
  display: block;
  max-width: 100%;
  height: auto;
}

/* The illustration must never draw OVER its own info text. [Jan 27.07.2026]
   Why it could: the info column is a fixed-height flex column, and the artwork is
   sized by aspect-ratio from a fixed 240px WIDTH — several illustrations are portrait
   (share = 884px tall at width 240, idea 610, tool 556, hands-check 509), so as soon as
   the icon+title+text no longer left that much room the flex algorithm shrank this BOX
   while the artwork inside kept its height, and `align-items: flex-end` then pushed the
   overflow UPWARDS across the text. It is viewport-height dependent (the dialog is
   `min(800px, 100vh - 48px)`), so the same modal was fine on a big screen and unreadable
   on a laptop — measured on a 720px-tall viewport: hands-check covered 55px of text at
   221 characters, share covered 430px (title included).
   Fix: let the artwork scale down into whatever height the box gets, staying bottom-left
   anchored, and clip as a last resort. `object-fit: contain` keeps the aspect ratio, so
   when there IS room the painted pixels are byte-identical to before (verified by
   pixel-diff over 9 fitting cases). */
.qdnapro-modal .qdnapro-modal-info-illustration {
  overflow: hidden;
}

.qdnapro-modal .qdnapro-modal-info-illustration qdnapro-illustration {
  align-self: stretch; /* host height := the (possibly shrunk) box height */
  min-height: 0; /* ...and let it shrink at all */
}

.qdnapro-modal .qdnapro-modal-info-illustration qdnapro-illustration img,
.qdnapro-modal .qdnapro-modal-info-illustration qdnapro-illustration svg {
  height: 100%;
  object-fit: contain;
  object-position: left bottom;
}

/* Horizontaal gecentreerde tekening (04.08.2026, Kim — de modal "Gekoppelde
   documenten"). Linksonder blijft de standaard: de meeste illustraties hier zijn
   breed en lopen bewust de hoek in. Een KLEINERE tekening (size 160 i.p.v. 240)
   staat daar juist scheef in het paneel, en dan is midden beter. Aparte modifier
   en geen paginaregel, zodat elke modal dezelfde keuze kan maken.
   Twee dingen nodig: de flexbox-uitlijning van de doos, en de object-position van
   het plaatje zelf (dat wordt door de regel hierboven linksonder gezet, en die
   heeft dezelfde specificiteit, dus hij moet expliciet mee). Verticaal blijft
   alles onderaan hangen. */
.qdnapro-modal .qdnapro-modal-info-illustration--center {
  justify-content: center;
}

.qdnapro-modal .qdnapro-modal-info-illustration--center qdnapro-illustration img,
.qdnapro-modal .qdnapro-modal-info-illustration--center qdnapro-illustration svg {
  object-position: center bottom;
}

/* Body utility classes */
.qdnapro-modal .qdnapro-modal-section-title {
  margin: 0;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: var(--c-purple-500);
}

.qdnapro-modal .qdnapro-modal-section-sub {
  margin: 0 0 8px;
  font-size: 14px;
  line-height: 22px;
  color: var(--c-purple-500);
  font-weight: 500;
}

.qdnapro-modal .qdnapro-modal-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.qdnapro-modal .qdnapro-modal-error-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  font-size: 13px;
  line-height: 20px;
  font-weight: 500;
  color: var(--c-signal-red-text);
}

.qdnapro-modal .qdnapro-modal-error-banner qdnapro-icon {
  color: inherit;
  flex-shrink: 0;
}

.qdnapro-modal .qdnapro-modal-info-head {
  display: flex;
  align-items: center;
  gap: 8px;
}

.qdnapro-modal .qdnapro-modal-info-head .qdnapro-modal-info-title {
  margin: 0;
}

.qdnapro-modal .qdnapro-modal-toggle-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 4px 0;
}

.qdnapro-modal .qdnapro-modal-toggle-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.qdnapro-modal .qdnapro-modal-toggle-label {
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  color: var(--c-grey-950);
}

.qdnapro-modal .qdnapro-modal-toggle-sub {
  font-size: 12px;
  line-height: 16px;
  color: var(--c-grey-500);
  font-weight: 400;
}

.qdnapro-modal .qdnapro-modal-toggle-warn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  line-height: 16px;
  font-weight: 500;
  color: var(--c-signal-red-text);
  margin-top: 2px;
}

.qdnapro-modal .qdnapro-modal-divider {
  border: none;
  border-top: 1px solid var(--c-border-card);
  margin: 16px 0 12px;
}

/* INNER WHITE CARD */
.qdnapro-modal .modal-window {
  background: var(--c-bg-card);
  border: 0.5px solid var(--c-grey-300);
  border-radius: 12px;
  padding: 16px 16px 12px;
  flex: 1 1 auto;
  min-width: 0;
  max-height: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow: visible;
  position: relative;
  z-index: 1;
}

/* Fixed height + internal scroll for big modals */
.qdnapro-modal.modal-layout-with-info .modal-dialog,
.qdnapro-modal.modal-size-large .modal-dialog,
.qdnapro-modal.modal-size-xlarge .modal-dialog,
.qdnapro-modal.modal-size-xxlarge .modal-dialog {
  height: min(800px, 100vh - 48px);
}

.qdnapro-modal.modal-layout-with-info .modal-window,
.qdnapro-modal.modal-size-large .modal-window,
.qdnapro-modal.modal-size-xlarge .modal-window,
.qdnapro-modal.modal-size-xxlarge .modal-window {
  height: 100%;
}

.qdnapro-modal.modal-layout-with-info .modal-header,
.qdnapro-modal.modal-layout-with-info .modal-footer,
.qdnapro-modal.modal-size-large .modal-header,
.qdnapro-modal.modal-size-large .modal-footer,
.qdnapro-modal.modal-size-xlarge .modal-header,
.qdnapro-modal.modal-size-xlarge .modal-footer,
.qdnapro-modal.modal-size-xxlarge .modal-header,
.qdnapro-modal.modal-size-xxlarge .modal-footer {
  flex-shrink: 0;
}

.qdnapro-modal.modal-layout-with-info .modal-body,
.qdnapro-modal.modal-size-large .modal-body,
.qdnapro-modal.modal-size-xlarge .modal-body,
.qdnapro-modal.modal-size-xxlarge .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  /* The scroll container clips focus rings (overflow-y:auto coerces overflow-x to
     clip), so a field flush against the top edge loses its ring "under the header".
     4px breathing room clears the 3px focus box-shadow on all sides; scroll-padding
     keeps a tabbed-to field from tucking under the top edge. [Kim 22.06.2026] */
  padding: 4px;
  scroll-padding-top: 8px;
}

/* Scrollable modifier — any size modal with tall content.
   NOTE: the class is `qdnapro-modal-scrollable`, NOT `modal-scrollable`.
   qdna-modal.js connectedCallback strips every class starting with
   `modal-` from _originalClasses, so a `modal-*` modifier would not
   survive _render(). The `qdnapro-` prefix passes that filter. */
.qdnapro-modal.qdnapro-modal-scrollable .modal-dialog {
  overflow: hidden;
}

.qdnapro-modal.qdnapro-modal-scrollable .modal-window {
  overflow: hidden;
}

.qdnapro-modal.qdnapro-modal-scrollable .modal-header,
.qdnapro-modal.qdnapro-modal-scrollable .modal-footer {
  flex-shrink: 0;
}

.qdnapro-modal.qdnapro-modal-scrollable .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}

/* Import-options modal: fit content instead of the fixed 800px the large/with-info
   frame forces (it was absurdly tall for a short paste box / upload card). Caps +
   scrolls only if content ever exceeds it. [Kim 22.06.2026] */
.qdnapro-modal.fe-import-modal.modal-size-large .modal-dialog,
.qdnapro-modal.fe-import-modal.modal-layout-with-info .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 48px);
}

.qdnapro-modal.fe-import-modal.modal-size-large .modal-window,
.qdnapro-modal.fe-import-modal.modal-layout-with-info .modal-window {
  height: auto;
}

/* Center the (portrait) illustration in the info panel instead of the default
   bottom-LEFT corner-anchor. Scoped so corner-anchored illustrations in other
   modals keep their layout. [Kim 22.06.2026] */
.qdnapro-modal.fe-import-modal .qdnapro-modal-info-illustration {
  justify-content: center;
}

/* Floweditor confirm dialog (plugins/confirm/Box.vue, PLAN-alert-component.md
   TRACK 2, Kim 09.07.2026): needs to stack above BOTH the floweditor's own
   NodeOptions wizard modal (~9000-9100) and its dropdown/popover layer
   (.fe-add-datapoint-dropdown etc., 9200) — 9300 is the floweditor's
   established "always on top" tier (see .fe-conn-tip). Scoped to this class
   only so every other qdnapro-modal keeps the default 9000. */
.qdnapro-modal.fe-confirm-modal {
  z-index: 9300;
}

/* "Vraag toevoegen" type-picker (FormCardQuestions.vue, PLAN-form-card-
   redesign.md fase 4 delivery 4): opened FROM WITHIN the same NodeOptions
   wizard modal (~9000-9100) this tab lives in, so it needs the exact same
   "always on top" tier as .fe-confirm-modal above, for the exact same
   reason. Scoped to this class only. */
.qdnapro-modal.fe-typepicker-modal {
  z-index: 9300;
}

/* Briefing bij een vraag (View/v1/modals/briefing-editor.html, gedeeld met de
   activiteitenpagina). Op de flow editor gaat hij open vanuit het NodeOptions-
   wizardmodal (~9000-9100) en soms vanaf het canvas eronder, dus dezelfde
   "altijd bovenop"-laag als de twee hierboven. Alleen op deze klasse, die de
   flow editor via de include meegeeft: op de activiteitenpagina staat er niks
   boven en houdt het modal de standaard 9000. [Kim 03.08.2026] */
.qdnapro-modal.fe-briefing-modal {
  z-index: 9300;
}

.qdnapro-modal ::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.qdnapro-modal ::-webkit-scrollbar-track {
  background: transparent;
}

.qdnapro-modal ::-webkit-scrollbar-corner {
  background: transparent;
}

.qdnapro-modal ::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 6px;
  transition: background 160ms ease;
}

.qdnapro-modal *:hover::-webkit-scrollbar-thumb,
.qdnapro-modal *:focus-within::-webkit-scrollbar-thumb {
  background: rgba(64, 73, 154, 0.22);
}

.qdnapro-modal ::-webkit-scrollbar-thumb:hover {
  background: rgba(64, 73, 154, 0.38);
}

.qdnapro-modal {
  scrollbar-width: thin;
}

.qdnapro-modal *:hover, .qdnapro-modal *:focus-within {
  scrollbar-color: rgba(64, 73, 154, 0.3) transparent;
}

.qdnapro-modal .modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 0 12px;
}

.qdnapro-modal .modal-title {
  margin: 0;
  flex: 1 1 auto;
  font-family: "Inter", sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: var(--c-purple-500);
}

.qdnapro-modal .modal-close {
  flex-shrink: 0;
}

.qdnapro-modal .modal-body {
  padding: 0 4px 8px 4px;
  overflow: visible;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  line-height: 24px;
  color: var(--c-grey-950);
}

.qdnapro-modal .modal-body > * + * {
  margin-top: 8px;
}

.qdnapro-modal .qdnapro-modal-label {
  display: block;
  font-weight: 500;
  font-size: 14px;
  line-height: 24px;
  color: var(--c-grey-950);
}

.qdnapro-modal .modal-footer {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  gap: 16px;
  padding: 0;
}

/* secondary-label (e.g. "Delete") pins a button to the footer's LEFT
   edge — Kim 17.07.2026: destructive actions in planner dialogs belong
   in the footer, not floating in the body. space-between pushes it away
   from the cancel/confirm cluster; the cluster itself keeps its own
   `gap: 16px` via .modal-footer-right so cancel/confirm stay together
   regardless of how much room space-between opens up on a wide modal. */
.qdnapro-modal .modal-footer.modal-footer-has-secondary {
  justify-content: space-between;
}

.qdnapro-modal .modal-footer-right {
  display: flex;
  align-items: flex-end;
  gap: 16px;
}

/* Dark theme */
[data-theme=dark] .qdnapro-modal .modal-backdrop {
  background: rgba(0, 0, 0, 0.65);
}

[data-theme=dark] .qdnapro-modal .modal-dialog {
  background: #2e3036;
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.5), 0 8px 12px 6px rgba(0, 0, 0, 0.3);
}

[data-theme=dark] .qdnapro-modal .modal-window {
  background: #363940;
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-modal .modal-title {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-modal .modal-body {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-label {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-modal .modal-info {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-modal .modal-info qdnapro-icon,
[data-theme=dark] .qdnapro-modal .modal-info > .modal-info-icon {
  color: #a5acff;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-info-title {
  color: #a5acff;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-section-title {
  color: #a5acff;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-section-sub {
  color: #a5acff;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-error-banner {
  color: #ef6b6b;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-toggle-label {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-toggle-sub {
  color: #b8bcc4;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-toggle-warn {
  color: #ef6b6b;
}

[data-theme=dark] .qdnapro-modal .qdnapro-modal-divider {
  border-top-color: #40444d;
}

@keyframes qdnapro-modal-backdrop-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes qdnapro-modal-dialog-in {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-modal .modal-backdrop, .qdnapro-modal .modal-dialog {
    animation: none;
  }
}
/* === BEGIN QDNA-NAV-ITEM CSS === */
.qdnapro-nav-item {
  box-sizing: border-box;
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 40px;
  padding: 8px 12px 8px 8px;
  border-radius: 8px;
  background: transparent;
  color: var(--c-nav-icon);
  text-decoration: none;
  cursor: pointer;
  user-select: none;
  font-family: "Inter", sans-serif;
  transition: background-color 120ms ease-out, color 120ms ease-out, transform 80ms ease-out, width 450ms cubic-bezier(0.22, 1, 0.36, 1), padding 450ms cubic-bezier(0.22, 1, 0.36, 1), gap 450ms cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-nav-item *,
.qdnapro-nav-item *::before,
.qdnapro-nav-item *::after {
  box-sizing: border-box;
}

.qdnapro-nav-item .nav-item-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  position: relative;
  z-index: 1;
}

.qdnapro-nav-item .nav-item-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.qdnapro-nav-item .nav-item-label {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: var(--c-nav-label);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  opacity: 1;
  transform: translateX(0);
  max-width: 200px;
  transition: color 120ms ease-out, font-weight 120ms ease-out, opacity 280ms cubic-bezier(0.22, 1, 0.36, 1), max-width 450ms cubic-bezier(0.22, 1, 0.36, 1), transform 280ms cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-nav-item .nav-item-badge {
  position: absolute;
  z-index: 2;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: var(--c-nav-badge-bg);
  color: var(--c-nav-badge-text);
  font-size: 11px;
  font-weight: 600;
  line-height: 18px;
  text-align: center;
  font-variant-numeric: tabular-nums;
  pointer-events: none;
  transition: right 450ms cubic-bezier(0.22, 1, 0.36, 1), top 450ms cubic-bezier(0.22, 1, 0.36, 1), transform 450ms cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-nav-item .nav-item-badge--dot {
  min-width: 8px;
  width: 8px;
  height: 8px;
  padding: 0;
  border-radius: 50%;
}

.qdnapro-nav-item:hover:not(.nav-item-disabled):not(.nav-item-active) {
  background: var(--c-nav-hover-bg);
  color: var(--c-nav-icon-hover);
}

.qdnapro-nav-item:hover:not(.nav-item-disabled):not(.nav-item-active) .nav-item-label {
  color: var(--c-nav-label-hover);
}

.qdnapro-nav-item.nav-item-active {
  background: var(--c-nav-active-bg);
  color: var(--c-nav-icon-active);
}

.qdnapro-nav-item.nav-item-active .nav-item-label {
  color: var(--c-nav-label-active);
  font-weight: 600;
}

.qdnapro-nav-item.nav-item-active:hover:not(.nav-item-disabled)::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: rgba(0, 0, 0, 0.06);
  pointer-events: none;
}

.qdnapro-nav-item:active:not(.nav-item-disabled) {
  transform: scale(0.97);
}

.qdnapro-nav-item:focus {
  outline: none;
}

.qdnapro-nav-item:focus-visible,
.qdnapro-nav-item.force-focus {
  box-shadow: inset 0 0 0 2px var(--focus-ring);
}

.qdnapro-nav-item.nav-item-disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-nav-item[data-nav-mode=collapsed] {
  gap: 0;
  padding: 8px;
  width: 40px;
  height: 40px;
  min-height: 40px;
  align-self: flex-start;
  justify-content: flex-start;
}

.qdnapro-nav-item[data-nav-mode=collapsed] .nav-item-label {
  opacity: 0;
  transform: translateX(-16px);
  max-width: 0;
}

.qdnapro-nav-item[data-nav-mode=collapsed] .nav-item-badge {
  top: 3px;
  right: 4px;
  transform: translateY(0) scale(0.85);
  transform-origin: top right;
}

/* === END QDNA-NAV-ITEM CSS === */
/* === BEGIN QDNA-NAV-RAIL CSS === */
.qdnapro-nav-rail {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  background: var(--c-nav-bg);
  color: var(--c-nav-icon);
  font-family: "Inter", sans-serif;
  user-select: none;
  transition: width 450ms cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-nav-rail *,
.qdnapro-nav-rail *::before,
.qdnapro-nav-rail *::after {
  box-sizing: border-box;
}

.qdnapro-nav-rail[data-mode=expanded] {
  width: 208px;
}

.qdnapro-nav-rail[data-mode=collapsed] {
  width: 84px;
}

.qdnapro-nav-rail .nav-rail-header {
  flex-shrink: 0;
  height: 56px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 16px;
  position: relative;
}

.qdnapro-nav-rail[data-mode=collapsed] .nav-rail-header {
  padding: 0 6px 0 16px;
}

/* Split logo (Jan 2026-06-17): Q = anchor (never moves/re-renders); DNA = the
   letters, which slide down + fade on collapse and reverse on expand.
   Both .nav-rail-logo-q and .nav-rail-logo-dna are inline SVGs that share the
   ORIGINAL wordmark viewBox (180 180 980 420) and are overlaid at the same size
   (70×30 = 30·980/420), so the Q and DNA sit in the exact relative position +
   scale of the real combined logo — no guessed offsets. The container clips to
   the Q's width when collapsed; the DNA group additionally fades + drops. */
.qdnapro-nav-rail .nav-rail-logo {
  position: relative;
  height: 30px;
  overflow: hidden;
  flex-shrink: 0;
  color: var(--c-nav-icon);
  text-decoration: none;
  transition: width 450ms cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-nav-rail .nav-rail-logo-q,
.qdnapro-nav-rail .nav-rail-logo-dna {
  position: absolute;
  left: 0;
  top: 0;
  width: 70px;
  height: 30px;
  pointer-events: none;
}

.qdnapro-nav-rail .nav-rail-logo-q svg,
.qdnapro-nav-rail .nav-rail-logo-dna svg {
  width: 70px;
  height: 30px;
  fill: currentColor;
  display: block;
}

.qdnapro-nav-rail .nav-rail-logo-q {
  z-index: 1;
}

.qdnapro-nav-rail .nav-rail-logo-dna {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 280ms cubic-bezier(0.22, 1, 0.36, 1), transform 450ms cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-nav-rail[data-mode=expanded] .nav-rail-logo {
  width: 70px;
}

.qdnapro-nav-rail[data-mode=collapsed] .nav-rail-logo {
  width: 34px;
}

.qdnapro-nav-rail[data-mode=collapsed] .nav-rail-logo-dna {
  opacity: 0;
  transform: translateX(-20px);
}

.qdnapro-nav-rail .nav-rail-toggle {
  margin-left: auto;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  color: var(--c-nav-icon);
  border-radius: 6px;
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color 120ms ease-out, color 120ms ease-out;
}

.qdnapro-nav-rail .nav-rail-toggle:hover {
  background: var(--c-nav-hover-bg);
  color: var(--c-nav-icon-hover);
}

.qdnapro-nav-rail .nav-rail-toggle:focus {
  outline: none;
}

.qdnapro-nav-rail .nav-rail-toggle:focus-visible {
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px var(--focus-glow);
}

.qdnapro-nav-rail .nav-rail-toggle svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 620ms cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-nav-rail[data-mode=collapsed] .nav-rail-toggle svg {
  transform: rotate(180deg);
}

.qdnapro-nav-rail .nav-rail-header-divider {
  flex-shrink: 0;
  height: 1px;
  background: var(--c-nav-divider);
  margin: 0 16px;
}

.qdnapro-nav-rail[data-mode=collapsed] .nav-rail-header-divider {
  margin: 0 12px;
}

.qdnapro-nav-rail .nav-rail-items {
  flex: 1 1 auto;
  min-height: 0;
  overflow: visible;
  padding: 12px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.qdnapro-nav-rail[data-mode=collapsed] .nav-rail-items {
  padding: 12px 12px;
  align-items: flex-start;
}

.qdnapro-nav-rail .nav-rail-bottom {
  flex-shrink: 0;
  padding: 8px 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  border-top: 1px solid var(--c-nav-divider);
}

.qdnapro-nav-rail[data-mode=collapsed] .nav-rail-bottom {
  align-items: flex-start;
}

/* The version + build footer (.nav-rail-version, a slot="bottom" button that
   opened the About QDNA Pro splash) is REMOVED per 2026-07-31: that entry now
   lives in the profile dropdown as "Over QDNA Pro" (View/v1/base.html). The
   .nav-rail-bottom rules above stay — they are generic for any slot="bottom"
   child, not tied to the version block. */
/* Default surface tokens (navy palette) */
.qdnapro-nav-rail {
  --c-nav-bg: var(--c-sidebar-bg);
  --c-nav-divider: rgba(255, 255, 255, 0.10);
  --c-nav-hover-bg: rgba(255, 255, 255, 0.08);
  --c-nav-active-bg: rgba(255, 255, 255, 0.16);
  --c-nav-icon: var(--c-sidebar-icon);
  --c-nav-icon-hover: #ffffff;
  --c-nav-icon-active: #ffffff;
  --c-nav-label: var(--c-sidebar-icon);
  --c-nav-label-hover: #ffffff;
  --c-nav-label-active: #ffffff;
  --c-nav-badge-bg: var(--c-warn-red-500);
  --c-nav-badge-text: #ffffff;
}

/* Page-level dark mode: rail becomes Grey/800.
   Active state mirrors activity row-btn active (saturated brand-purple
   tint with light-purple icon/label) for visual continuity.
   [Kim 2026-05-19] */
[data-theme-dark] .qdnapro-nav-rail,
[data-theme=dark] .qdnapro-nav-rail,
body[data-theme=dark] .qdnapro-nav-rail {
  --c-nav-bg: var(--c-grey-800);
  --c-nav-divider: rgba(255, 255, 255, 0.08);
  --c-nav-hover-bg: rgba(255, 255, 255, 0.06);
  --c-nav-active-bg: rgba(70, 82, 243, 0.20);
  --c-nav-icon: var(--c-grey-300);
  --c-nav-icon-hover: #ffffff;
  --c-nav-icon-active: #a5acff;
  --c-nav-label: var(--c-grey-300);
  --c-nav-label-hover: #ffffff;
  --c-nav-label-active: #a5acff;
}

/* Forced light theme via attribute on the rail itself. */
.qdnapro-nav-rail[data-theme=light] {
  --c-nav-bg: #ffffff;
  --c-nav-divider: rgba(0, 0, 0, 0.08);
  --c-nav-hover-bg: var(--c-purple-50);
  --c-nav-active-bg: var(--c-bg-secondary-purple);
  --c-nav-icon: var(--c-text-muted);
  --c-nav-icon-hover: var(--c-brand-purple);
  --c-nav-icon-active: var(--c-brand-purple);
  --c-nav-label: var(--c-text-body);
  --c-nav-label-hover: var(--c-brand-purple);
  --c-nav-label-active: var(--c-brand-purple);
}

/* === END QDNA-NAV-RAIL CSS === */
@property --qnp-beam-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
.qdnapro-node-picker {
  --np-rail-bg: var(--c-sidebar-bg);
  --np-rail-icon: var(--c-sidebar-icon);
  --np-rail-icon-hover: #ffffff;
  --np-rail-active-bg: rgba(255, 255, 255, 0.16);
  --np-rail-hover-bg: rgba(255, 255, 255, 0.08);
  --np-rail-label: var(--c-sidebar-icon);
  --np-rail-label-hover: #ffffff;
  --np-panel-bg: #ffffff;
  --np-panel-border: var(--c-border-soft-2);
  --np-panel-shadow: 0 18px 40px rgba(38, 42, 92, 0.16);
  --np-subhead: var(--c-text-disabled-pp);
  --np-node-text: var(--c-sidebar-bg);
  --np-node-hover-bg: var(--c-bg-subtle-purple);
  --np-node-icon: var(--c-purple-400);
  --np-rail-w: 56px;
  --np-panel-w: 208px;
  --np-cat-size: 36px;
  display: flex;
  align-items: stretch;
  height: 100%;
  min-height: 0;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  position: relative;
}

.qdnapro-node-picker *,
.qdnapro-node-picker *::before,
.qdnapro-node-picker *::after {
  box-sizing: border-box;
}

.qdnapro-node-picker__rail {
  flex: 0 0 auto;
  width: var(--np-rail-w);
  background: var(--np-rail-bg);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 8px 0 10px;
  overflow-y: auto;
  z-index: 2;
  position: relative;
}

.qdnapro-node-picker__rail-pill {
  position: absolute;
  top: 0;
  left: 50%;
  width: var(--np-cat-size);
  height: var(--np-cat-size);
  margin-left: calc(var(--np-cat-size) / -2);
  border-radius: 8px;
  background: var(--np-rail-active-bg);
  opacity: 0;
  transform: translateY(0);
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1), opacity 160ms ease-out;
  pointer-events: none;
  z-index: 0;
}

.qdnapro-node-picker__cat {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--np-rail-icon);
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--np-cat-size);
  height: var(--np-cat-size);
  border-radius: 8px;
  cursor: pointer;
  position: relative;
  z-index: 1;
  transition: background-color 120ms ease-out, color 120ms ease-out;
}
.qdnapro-node-picker__cat:hover {
  background: var(--np-rail-hover-bg);
  color: var(--np-rail-icon-hover);
}
.qdnapro-node-picker__cat.is-active {
  color: #ffffff;
}
.qdnapro-node-picker__cat:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--np-rail-bg), 0 0 0 4px rgba(255, 255, 255, 0.7);
}

.qdnapro-node-picker__cat-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  color: inherit;
}
.qdnapro-node-picker__cat-icon i {
  font-size: 18px;
  line-height: 1;
}

.qdnapro-node-picker__card {
  background: var(--c-bg-card);
  color: var(--np-node-icon);
  box-shadow: 0 2px 6px rgba(38, 42, 92, 0.2);
}
.qdnapro-node-picker__card:hover {
  background: #ffffff;
  color: var(--np-node-icon);
}
.qdnapro-node-picker__card.is-active {
  color: var(--np-node-icon);
}
.qdnapro-node-picker__card:hover .qdnapro-node-picker__cat-icon, .qdnapro-node-picker__card.is-active .qdnapro-node-picker__cat-icon {
  color: var(--np-node-icon);
}

@keyframes qdnapro-node-picker-card-pulse {
  0% {
    box-shadow: 0 2px 6px rgba(38, 42, 92, 0.2), 0 0 0 0 rgba(255, 255, 255, 0.75);
    transform: scale(1);
  }
  70% {
    box-shadow: 0 2px 6px rgba(38, 42, 92, 0.2), 0 0 0 9px rgba(255, 255, 255, 0);
    transform: scale(1.06);
  }
  100% {
    box-shadow: 0 2px 6px rgba(38, 42, 92, 0.2), 0 0 0 0 rgba(255, 255, 255, 0);
    transform: scale(1);
  }
}
.qdnapro-node-picker[card-pulse] .qdnapro-node-picker__card {
  animation: qdnapro-node-picker-card-pulse 1.8s ease-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-node-picker[card-pulse] .qdnapro-node-picker__card {
    animation: none;
  }
}
.qdnapro-node-picker[node-pulse] .qdnapro-node-picker__cat[data-cat=questions] {
  animation: qdnapro-node-picker-card-pulse 1.8s ease-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-node-picker[node-pulse] .qdnapro-node-picker__cat[data-cat=questions] {
    animation: none;
  }
}
.qdnapro-node-picker__panel {
  flex: 0 0 auto;
  width: 0;
  overflow: hidden;
  background-color: var(--np-panel-bg);
  background-image: url("/assets/illustrations/node-picker-flow.svg");
  background-repeat: no-repeat;
  background-position: bottom center;
  background-size: contain;
  border-right: 1px solid var(--np-panel-border);
  box-shadow: var(--np-panel-shadow);
  border-radius: 0 10px 10px 0;
  transition: width 200ms cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  z-index: 1;
}

.qdnapro-node-picker[data-open] .qdnapro-node-picker__panel {
  width: var(--np-panel-w);
  overflow-y: auto;
  padding: 8px 8px 10px;
}

.qdnapro-node-picker__panel-head {
  font-size: 15px;
  font-weight: 700;
  color: var(--np-node-text);
  padding: 0 4px 8px;
  white-space: normal;
  line-height: 1.3;
}

.qdnapro-node-picker__panel-sub {
  font-size: 12px;
  line-height: 1.4;
  color: var(--np-subhead);
  padding: 0 4px 12px;
}

.qdnapro-node-picker__form-card {
  position: relative;
  margin: 2px 2px 4px 14px;
  padding: 10px 10px 12px;
  background: var(--c-bg-card);
  border: 1.5px solid var(--np-panel-border);
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(38, 42, 92, 0.1);
  cursor: grab;
  user-select: none;
  transition: border-color 120ms ease, box-shadow 120ms ease;
}
.qdnapro-node-picker__form-card::before {
  content: "";
  position: absolute;
  left: -10px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 30px;
  background: var(--c-action-500);
  border-radius: 2px;
  opacity: 0;
  transition: opacity 150ms ease;
  pointer-events: none;
}
.qdnapro-node-picker__form-card:hover {
  border-color: var(--c-purple-100);
  box-shadow: 0 4px 12px rgba(38, 42, 92, 0.16);
}
.qdnapro-node-picker__form-card:hover::before {
  opacity: 1;
}
.qdnapro-node-picker__form-card:active {
  cursor: grabbing;
}
.qdnapro-node-picker__form-card:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgba(81, 89, 164, 0.45);
}
.qdnapro-node-picker__form-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 2px;
  background: conic-gradient(from var(--qnp-beam-angle), transparent 0deg, transparent 250deg, rgba(70, 82, 243, 0.9) 300deg, var(--c-purple-100) 330deg, transparent 360deg);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  pointer-events: none;
  animation: qdnapro-node-picker-beam 3s linear infinite;
}

@keyframes qdnapro-node-picker-beam {
  to {
    --qnp-beam-angle: 360deg;
  }
}
.qdnapro-node-picker__form-card-header {
  background: var(--c-bg-subtle-purple);
  color: var(--np-node-text);
  font-size: 12px;
  font-weight: 700;
  padding: 6px 8px;
  border-radius: 6px;
  margin-bottom: 10px;
}

.qdnapro-node-picker__form-card-field {
  height: 22px;
  border: 1.5px solid var(--np-panel-border);
  border-radius: 6px;
  background: var(--c-bg-card-hover);
}
.qdnapro-node-picker__form-card-field + .qdnapro-node-picker__form-card-field {
  margin-top: 8px;
}

.qdnapro-node-picker__subhead {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--np-subhead);
  padding: 8px 4px 3px;
  white-space: nowrap;
}
.qdnapro-node-picker__subhead:first-of-type {
  padding-top: 0;
}

.qdnapro-node-picker__empty {
  font-size: 13px;
  color: var(--np-subhead);
  padding: 8px;
}

.qdnapro-node-picker__node {
  position: relative;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 6px 8px 6px 18px;
  margin-bottom: 12px;
  border-radius: 8px;
  cursor: grab;
  color: var(--np-node-text);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  user-select: none;
  transition: background-color 110ms ease-out;
}
.qdnapro-node-picker__node::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 22px;
  background: var(--c-action-500);
  border-radius: 2px;
  opacity: 0;
  transition: opacity 150ms ease;
  pointer-events: none;
}
.qdnapro-node-picker__node:last-child {
  margin-bottom: 0;
}
.qdnapro-node-picker__node:hover {
  background: var(--np-node-hover-bg);
}
.qdnapro-node-picker__node:hover::before {
  opacity: 1;
}
.qdnapro-node-picker__node:active {
  cursor: grabbing;
}
.qdnapro-node-picker__node:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgba(81, 89, 164, 0.45);
}

.qdnapro-node-picker__node-icon {
  flex: 0 0 auto;
  width: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--np-node-icon);
}
.qdnapro-node-picker__node-icon i {
  font-size: 19px;
  line-height: 1;
}

.qdnapro-node-picker__node-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-node-picker__panel {
    transition: none;
  }
  .qdnapro-node-picker__form-card::after {
    animation: none;
  }
}
.qdnapro-nova {
  --nova-primary: var(--c-purple-500);
  --nova-primary-hover: var(--c-purple-600);
  --nova-primary-pressed: var(--c-purple-700);
  --nova-primary-glow: rgba(70, 82, 243, 0.40);
  --nova-panel-bg: #ffffff;
  --nova-user-bubble: var(--c-grey-50);
  --nova-text: var(--c-grey-950);
  --nova-text-secondary: var(--c-grey-500);
  --nova-link: var(--c-action-500);
  --nova-border: var(--c-grey-300);
  --nova-input-bg: #ffffff;
  --nova-placeholder: var(--c-grey-400);
  --nova-divider: var(--c-border-card);
  --nova-quick-hover: #e6e9ff;
  --nova-pinned-bg: #e6e9ff;
  --nova-menu-hover: var(--c-grey-50);
  --nova-error-bg: var(--c-signal-red-soft);
  --nova-error-text: var(--c-signal-red-text);
  --nova-success: var(--c-signal-green-text);
  --nova-sparkle-grad-start: var(--c-action-500);
  --nova-sparkle-grad-end: var(--c-purple-500);
  position: relative;
  height: 100%;
  max-height: 100%;
  width: 0;
  min-width: 0;
  flex-shrink: 0;
  z-index: 10;
  display: flex;
  flex-direction: column;
  background: var(--nova-panel-bg);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 14px;
  line-height: 24px;
  color: var(--nova-text);
  box-shadow: -4px 0 20px rgba(0, 0, 0, 0.06);
  box-sizing: border-box;
  overflow: hidden;
  transition: width 320ms ease-in-out;
}

.qdnapro-nova.nova-open {
  width: 390px;
}

.qdnapro-nova.nova-open.nova-expanded {
  width: min(720px, 100vw);
}

.qdnapro-nova > * {
  min-width: 390px;
  box-sizing: border-box;
}

.qdnapro-nova.nova-expanded > * {
  min-width: min(720px, 100vw);
}

.qdnapro-nova[floating] {
  position: fixed;
  top: 0;
  right: 0;
  height: 100vh;
  height: 100dvh;
  max-height: 100vh;
  max-height: 100dvh;
  width: 0;
  z-index: 1040;
  transition: width 320ms ease-in-out;
}

.qdnapro-nova[floating].nova-open {
  width: 390px;
}

.qdnapro-nova[floating].nova-open.nova-expanded {
  width: min(720px, 100vw);
}

.qdnapro-nova.nova-theme-orange {
  --nova-primary: var(--c-warn-yellow-600);
  --nova-primary-hover: var(--c-warn-amber-500);
  --nova-primary-pressed: var(--c-tag-warning-text);
  --nova-primary-glow: rgba(239, 142, 2, 0.45);
  --nova-quick-hover: var(--c-tag-warning-bg);
  --nova-pinned-bg: var(--c-tag-warning-bg);
  --nova-sparkle-grad-start: var(--c-warn-yellow-600);
  --nova-sparkle-grad-end: var(--c-warn-yellow-500);
}

.qdnapro-nova[pwa] .nova-header {
  padding-top: calc(8px + var(--qdna-inset-top, env(safe-area-inset-top, 0px)));
}

.qdnapro-nova .nova-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 16px 4px;
  border-bottom: 1px solid transparent;
  flex-shrink: 0;
}

.qdnapro-nova .nova-title {
  margin: 0;
  font-size: 24px;
  line-height: 36px;
  font-weight: 600;
  color: var(--nova-primary);
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.qdnapro-nova .nova-title-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 0;
  background: transparent;
  color: var(--nova-primary);
  border-radius: 4px;
  cursor: pointer;
  flex-shrink: 0;
}

.qdnapro-nova .nova-title-back:hover {
  background: var(--nova-quick-hover);
}

.qdnapro-nova .nova-header-actions {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}

.qdnapro-nova .nova-header-divider {
  width: 1px;
  height: 20px;
  background: var(--nova-divider);
  margin: 0 4px;
  flex-shrink: 0;
}

.qdnapro-nova .nova-header-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 0;
  background: transparent;
  color: var(--nova-text);
  border-radius: 8px;
  cursor: pointer;
  transition: background-color 120ms ease-out;
}

.qdnapro-nova .nova-header-btn:hover {
  background: var(--nova-quick-hover);
}

.qdnapro-nova .nova-header-btn svg {
  width: 20px;
  height: 20px;
}

.qdnapro-nova .nova-context-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 12px 8px;
  padding: 4px 8px 4px 10px;
  background: var(--nova-pinned-bg);
  border-radius: 16px;
  font-size: 12px;
  line-height: 20px;
  font-weight: 500;
  color: var(--nova-primary);
  max-width: calc(100% - 24px);
  width: fit-content;
  box-sizing: border-box;
}

.qdnapro-nova .nova-context-pill svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.qdnapro-nova .nova-context-pill-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-nova .nova-context-pill-clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border: 0;
  background: transparent;
  color: var(--nova-primary);
  border-radius: 50%;
  cursor: pointer;
  padding: 0;
  margin-left: 2px;
}

.qdnapro-nova .nova-context-pill-clear:hover {
  background: rgba(0, 0, 0, 0.08);
}

.qdnapro-nova .nova-quick-actions {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 0 8px 8px;
  border-bottom: 1px solid var(--nova-divider);
  flex-shrink: 0;
}

.qdnapro-nova .nova-quick-action {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 6px 8px;
  border: 0;
  background: transparent;
  border-radius: 4px;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  line-height: 20px;
  color: var(--nova-text);
  text-align: left;
  width: 100%;
}

.qdnapro-nova .nova-quick-action:hover {
  background: var(--nova-quick-hover);
}

.qdnapro-nova .nova-quick-action svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  color: var(--nova-primary);
}

.qdnapro-nova .nova-messages {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
  position: relative;
}

.qdnapro-nova.nova-expanded .nova-messages {
  padding: 16px 24px;
}

.qdnapro-nova .nova-messages {
  scrollbar-width: thin;
  scrollbar-color: var(--nova-border) transparent;
}

.qdnapro-nova .nova-messages::-webkit-scrollbar {
  width: 6px;
}

.qdnapro-nova .nova-messages::-webkit-scrollbar-thumb {
  background: var(--nova-border);
  border-radius: 3px;
}

.qdnapro-nova .nova-msg-user-wrap {
  align-self: flex-end;
  max-width: 85%;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}

.qdnapro-nova .nova-msg-user {
  max-width: 100%;
  padding: 8px 12px;
  background: var(--nova-user-bubble);
  color: var(--nova-text);
  border-radius: 12px;
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
  word-wrap: break-word;
  white-space: pre-wrap;
}

.qdnapro-nova .nova-msg-user-actions {
  display: flex;
  gap: 0;
  opacity: 0;
  transition: opacity 120ms ease;
  pointer-events: none;
}

.qdnapro-nova .nova-msg-user-wrap:hover .nova-msg-user-actions,
.qdnapro-nova .nova-msg-user-wrap:focus-within .nova-msg-user-actions {
  opacity: 1;
  pointer-events: auto;
}

.qdnapro-nova .nova-msg-ai {
  align-self: flex-start;
  width: 100%;
  padding: 8px 0;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.qdnapro-nova .nova-msg-ai-heading {
  display: flex;
  align-items: baseline;
  gap: 4px;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: var(--nova-text);
}

.qdnapro-nova .nova-msg-ai-heading-emoji {
  font-size: 14px;
  line-height: 24px;
  flex-shrink: 0;
}

.qdnapro-nova .nova-msg-ai-body {
  font-size: 14px;
  line-height: 24px;
  color: var(--nova-text);
  word-wrap: break-word;
}

.qdnapro-nova .nova-msg-ai-body p {
  margin: 0 0 8px;
}

.qdnapro-nova .nova-msg-ai-body p:last-child {
  margin-bottom: 0;
}

.qdnapro-nova .nova-msg-ai-body strong {
  font-weight: 600;
}

.qdnapro-nova .nova-msg-ai-body a {
  color: var(--nova-link);
  text-decoration: underline;
  text-decoration-style: solid;
}

.qdnapro-nova .nova-msg-ai-body ul, .qdnapro-nova .nova-msg-ai-body ol {
  margin: 0 0 8px;
  padding-left: 20px;
}

.qdnapro-nova .nova-msg-ai-body li + li {
  margin-top: 4px;
}

.qdnapro-nova .nova-msg-ai-body code {
  background: var(--nova-user-bubble);
  padding: 1px 4px;
  border-radius: 3px;
  font-family: Menlo, Monaco, "Courier New", monospace;
  font-size: 12px;
}

.qdnapro-nova .nova-msg-ai-ref {
  display: flex;
  gap: 4px;
  font-size: 12px;
  line-height: 20px;
}

.qdnapro-nova .nova-msg-ai-ref-label {
  font-weight: 600;
  color: var(--nova-text);
}

.qdnapro-nova .nova-msg-ai-ref-value a {
  color: var(--nova-link);
  text-decoration: underline;
}

.qdnapro-nova .nova-streaming-cursor {
  display: inline-block;
  width: 8px;
  height: 16px;
  margin-left: 2px;
  background: currentColor;
  vertical-align: text-bottom;
  animation: nova-cursor-pulse 1s steps(2, end) infinite;
}

@keyframes nova-cursor-pulse {
  0%, 50% {
    opacity: 1;
  }
  51%, 100% {
    opacity: 0;
  }
}
.qdnapro-nova .nova-thinking {
  display: flex;
  align-items: center;
  gap: 12px;
  height: 28px;
  padding: 0 12px;
  color: var(--nova-text-secondary);
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
}

.qdnapro-nova .nova-thinking-icon {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.qdnapro-nova .nova-thinking-sparkle {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  margin: -7px 0 0 -7px;
  color: var(--nova-primary);
  animation: nova-sparkle-orbit 2.7s ease-in-out infinite;
  will-change: transform, opacity, filter;
}

.qdnapro-nova .nova-thinking-sparkle:nth-child(2) {
  animation-delay: -0.9s;
}

.qdnapro-nova .nova-thinking-sparkle:nth-child(3) {
  animation-delay: -1.8s;
}

.qdnapro-nova .nova-thinking-sparkle svg {
  width: 100%;
  height: 100%;
  display: block;
}

@keyframes nova-sparkle-orbit {
  0% {
    transform: translate(0, -13px) scale(0.25);
    opacity: 0.18;
    filter: blur(0.6px);
  }
  25% {
    transform: translate(13px, 0) scale(0.75);
    opacity: 0.7;
    filter: blur(0);
  }
  50% {
    transform: translate(0, 13px) scale(1.5);
    opacity: 1;
    filter: blur(0);
  }
  75% {
    transform: translate(-13px, 0) scale(0.75);
    opacity: 0.7;
    filter: blur(0);
  }
  100% {
    transform: translate(0, -13px) scale(0.25);
    opacity: 0.18;
    filter: blur(0.6px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-nova .nova-thinking-sparkle {
    animation-duration: 0s;
    transform: scale(1);
    opacity: 1;
  }
  .qdnapro-nova .nova-empty-hero svg path {
    animation: none;
  }
}
@keyframes nova-sparkle-big {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.15);
  }
}
@keyframes nova-sparkle-small {
  0%, 100% {
    transform: scale(0.7);
  }
  50% {
    transform: scale(1.25);
  }
}
@keyframes nova-pop-in {
  0% {
    opacity: 0;
    transform: scale(0.85);
  }
  55% {
    opacity: 1;
    transform: scale(1.05);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
.qdnapro-nova .nova-empty-hero {
  animation: nova-pop-in 240ms ease-out both;
}

.qdnapro-nova .nova-quick-action {
  animation: nova-pop-in 240ms ease-out both;
}

.qdnapro-nova .nova-quick-action:nth-child(1) {
  animation-delay: 80ms;
}

.qdnapro-nova .nova-quick-action:nth-child(2) {
  animation-delay: 140ms;
}

.qdnapro-nova .nova-quick-action:nth-child(3) {
  animation-delay: 200ms;
}

.qdnapro-nova .nova-quick-action:nth-child(4) {
  animation-delay: 260ms;
}

.qdnapro-nova .nova-quick-action:nth-child(5) {
  animation-delay: 320ms;
}

.qdnapro-nova .nova-input-wrapper.nova-empty-mode {
  animation: nova-pop-in 240ms ease-out 280ms both;
}

@keyframes nova-history-enter {
  0% {
    opacity: 0;
    transform: translateY(12px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.qdnapro-nova .nova-history {
  animation: nova-history-enter 220ms cubic-bezier(0.4, 0, 0.2, 1) both;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-nova .nova-empty-hero,
  .qdnapro-nova .nova-quick-action,
  .qdnapro-nova .nova-input-wrapper.nova-empty-mode,
  .qdnapro-nova .nova-history {
    animation: none;
  }
}
.qdnapro-nova .nova-msg-actions {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: -4px;
  padding: 0;
  flex-wrap: wrap;
}

.qdnapro-nova .nova-action-btn {
  color: var(--nova-text-secondary);
}

.qdnapro-nova .nova-action-btn:hover {
  color: var(--nova-text);
}

.qdnapro-nova .nova-action-btn.nova-action-thumb {
  display: none;
}

.qdnapro-nova .nova-action-btn.nova-action-active {
  color: var(--nova-primary);
  background: var(--nova-pinned-bg);
}

/* Bronnen-chips onder een antwoord (echte qdnapro-source-pill's) + het
   bronnenpaneel dat van rechts over de chat schuift. De oude .nova-source-pill/
   .nova-source-stack placeholder-stijlen zijn hier vervangen — de placeholder-div
   in de JS bestaat niet meer. [Jan 2026-08-05, afgestemd met Kim] */
.qdnapro-nova .nova-sources {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 2px 0 4px;
}

.qdnapro-nova .nova-sources qdnapro-source-pill {
  cursor: pointer;
}

.qdnapro-nova .nova-source-panel {
  position: absolute;
  inset: 0;
  z-index: 30;
  display: flex;
  flex-direction: column;
  background: var(--nova-panel-bg);
  transform: translateX(100%);
  transition: transform 0.25s ease;
  box-shadow: -8px 0 24px rgba(0, 0, 0, 0.12);
}

.qdnapro-nova[pwa] .nova-source-panel {
  padding-top: var(--qdna-inset-top, env(safe-area-inset-top, 0px));
}

.qdnapro-nova .nova-source-panel.nova-source-panel-in {
  transform: translateX(0);
}

.qdnapro-nova .nova-source-panel-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px;
  border-bottom: 1px solid var(--nova-divider);
}

.qdnapro-nova .nova-source-panel-open-btn {
  flex: 1 1 auto;
}

.qdnapro-nova .nova-source-panel-open-btn button {
  width: 100%;
}

.qdnapro-nova .nova-source-panel-kicker {
  padding: 12px 12px 0;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--nova-text-secondary);
}

.qdnapro-nova .nova-source-panel-title {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 12px 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--nova-text);
}

.qdnapro-nova .nova-source-panel-title svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--nova-text-secondary);
}

.qdnapro-nova .nova-source-panel-body {
  flex: 1 1 auto;
  min-height: 0; /* flex-kind mag krimpen, anders klipt de passage-lijst stil */
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 4px 12px 16px;
  scrollbar-width: thin;
  scrollbar-color: var(--nova-border) transparent;
}

.qdnapro-nova .nova-source-panel-body::-webkit-scrollbar {
  width: 6px;
}

.qdnapro-nova .nova-source-panel-body::-webkit-scrollbar-thumb {
  background: var(--nova-border);
  border-radius: 3px;
}

.qdnapro-nova .nova-source-passage {
  background: var(--nova-user-bubble);
  border-radius: 8px;
  padding: 10px 12px;
}

.qdnapro-nova .nova-source-passage-where {
  margin-bottom: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--nova-text-secondary);
}

.qdnapro-nova .nova-source-passage-text {
  font-size: 13px;
  line-height: 20px;
  color: var(--nova-text);
  white-space: pre-wrap;
}

.qdnapro-nova .nova-source-passage-none {
  font-size: 13px;
  color: var(--nova-text-secondary);
}

.qdnapro-nova .nova-followups {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 12px 4px;
}

.qdnapro-nova .nova-followup-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: transparent;
  border: 1px solid var(--nova-border);
  border-radius: 16px;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  line-height: 16px;
  color: var(--nova-text);
  transition: background-color 120ms ease-out, border-color 120ms ease-out;
}

.qdnapro-nova .nova-followup-chip:hover {
  background: var(--nova-quick-hover);
  border-color: var(--c-chip-bright-blue-2-hover);
  color: var(--nova-primary);
}

.qdnapro-nova .nova-followup-chip:active {
  background: var(--c-sidebar-icon);
  border-color: var(--nova-primary);
  color: var(--nova-primary);
}

.qdnapro-nova .nova-followup-chip svg {
  width: 12px;
  height: 12px;
}

.qdnapro-nova .nova-msg-error {
  align-self: stretch;
  padding: 12px;
  background: var(--nova-error-bg);
  border-radius: 12px;
  color: var(--nova-error-text);
  font-size: 13px;
  line-height: 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.qdnapro-nova .nova-msg-error-retry {
  align-self: flex-start;
  padding: 4px 10px;
  background: var(--nova-error-text);
  color: var(--c-text-on-action);
  border: 0;
  border-radius: 4px;
  font: inherit;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
}

.qdnapro-nova .nova-msg-error-retry:hover {
  opacity: 0.9;
}

.qdnapro-nova .nova-offline-banner {
  padding: 8px 12px;
  background: var(--nova-error-bg);
  color: var(--nova-error-text);
  font-size: 13px;
  line-height: 20px;
  text-align: center;
  flex-shrink: 0;
}

.qdnapro-nova .nova-scroll-bottom {
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: var(--nova-panel-bg);
  border: 1px solid var(--nova-border);
  border-radius: 50%;
  color: var(--nova-text-secondary);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 120ms ease-out, transform 200ms ease-out;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.qdnapro-nova.nova-show-scroll-bottom .nova-scroll-bottom {
  opacity: 1;
  pointer-events: auto;
}

.qdnapro-nova .nova-scroll-bottom:hover {
  color: var(--nova-primary);
  border-color: var(--nova-primary);
}

.qdnapro-nova .nova-scroll-bottom svg {
  width: 16px;
  height: 16px;
}

.qdnapro-nova .nova-empty-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 24px 16px;
  color: var(--nova-text-secondary);
  text-align: center;
  flex: 1;
}

.qdnapro-nova .nova-empty-hero svg {
  width: 48px;
  height: 48px;
  color: var(--nova-primary);
}

.qdnapro-nova .nova-empty-hero svg path {
  transform-box: fill-box;
  transform-origin: center;
}

.qdnapro-nova .nova-empty-hero .sparkle-big {
  animation: nova-sparkle-big 2.2s ease-in-out infinite;
}

.qdnapro-nova .nova-empty-hero .sparkle-small {
  animation: nova-sparkle-small 1.5s ease-in-out -0.4s infinite;
}

.qdnapro-nova .nova-empty-hero-title {
  font-size: 16px;
  font-weight: 600;
  color: var(--nova-text);
}

.qdnapro-nova .nova-empty-hero-sub {
  font-size: 13px;
  line-height: 20px;
}

.qdnapro-nova .nova-welcome {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px;
  flex: 1;
}

.qdnapro-nova .nova-welcome-card {
  position: relative;
  background: #e6e9ff;
  border: 0.5px solid rgba(64, 73, 154, 0.12);
  border-radius: 16px;
  padding: 24px 20px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  animation: nova-pop-in 240ms ease-out both;
}

.qdnapro-nova .nova-welcome-close {
  position: absolute;
  top: 8px;
  right: 8px;
}

.qdnapro-nova .nova-welcome-hero {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 4px;
}

.qdnapro-nova .nova-welcome-hero svg {
  width: 56px;
  height: 56px;
  color: var(--nova-primary);
}

.qdnapro-nova .nova-welcome-hero svg path {
  transform-box: fill-box;
  transform-origin: center;
}

.qdnapro-nova .nova-welcome-hero .sparkle-big {
  animation: nova-sparkle-big 2.2s ease-in-out infinite;
}

.qdnapro-nova .nova-welcome-hero .sparkle-small {
  animation: nova-sparkle-small 1.5s ease-in-out -0.4s infinite;
}

.qdnapro-nova .nova-welcome-title {
  font-size: 18px;
  line-height: 24px;
  font-weight: 600;
  color: var(--c-purple-500);
}

.qdnapro-nova .nova-welcome-sub {
  font-size: 13px;
  line-height: 20px;
  color: var(--nova-text);
  max-width: 320px;
}

.qdnapro-nova .nova-welcome-privacy {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.55);
  font-size: 12px;
  line-height: 16px;
  font-weight: 500;
  color: var(--c-purple-500);
}

.qdnapro-nova .nova-welcome-privacy-icon {
  flex-shrink: 0;
  color: var(--c-purple-500);
}

.qdnapro-nova .nova-welcome-prompts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

.qdnapro-nova .nova-welcome-prompts qdnapro-suggestion-chip {
  animation: nova-pop-in 240ms ease-out both;
}

.qdnapro-nova .nova-welcome-prompts qdnapro-suggestion-chip:nth-child(1) {
  animation-delay: 120ms;
}

.qdnapro-nova .nova-welcome-prompts qdnapro-suggestion-chip:nth-child(2) {
  animation-delay: 180ms;
}

.qdnapro-nova .nova-welcome-prompts qdnapro-suggestion-chip:nth-child(3) {
  animation-delay: 240ms;
}

.qdnapro-nova .nova-welcome-prompts qdnapro-suggestion-chip:nth-child(4) {
  animation-delay: 300ms;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-nova .nova-welcome-card,
  .qdnapro-nova .nova-welcome-prompts qdnapro-suggestion-chip {
    animation: none;
  }
}
.qdnapro-nova.nova-theme-orange .nova-welcome-card {
  background: var(--c-tag-warning-bg);
  border-color: rgba(245, 143, 6, 0.18);
}

.qdnapro-nova.nova-theme-orange .nova-welcome-title, .qdnapro-nova.nova-theme-orange .nova-welcome-privacy, .qdnapro-nova.nova-theme-orange .nova-welcome-privacy-icon {
  color: var(--c-warn-amber-600);
}

.qdnapro-nova .nova-input-wrapper {
  padding: 12px 16px 16px;
  flex-shrink: 0;
}

.qdnapro-nova .nova-input-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px;
  background: var(--nova-input-bg);
  border: 1px solid var(--nova-border);
  border-radius: 8px;
  min-height: 80px;
  transition: border-color 120ms ease-out, box-shadow 120ms ease-out;
}

.qdnapro-nova .nova-input-field:focus-within {
  border-color: var(--nova-primary);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.2);
}

.qdnapro-nova.nova-theme-orange .nova-input-field:focus-within {
  box-shadow: 0 0 0 3px rgba(245, 143, 6, 0.25);
}

.qdnapro-nova .nova-input-attachments {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 6px;
}

.qdnapro-nova .nova-input-attachment-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 4px 4px 8px;
  background: var(--nova-panel-bg);
  border: 1px solid var(--nova-border);
  border-radius: 999px;
  max-width: 220px;
  font-size: 12px;
  line-height: 1.2;
  color: var(--nova-text);
}

.qdnapro-nova .nova-input-attachment-pill qdnapro-file-icon {
  flex-shrink: 0;
}

.qdnapro-nova .nova-input-attachment-name {
  max-width: 140px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-nova .nova-input-attachment-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border: 0;
  background: transparent;
  color: var(--nova-placeholder);
  cursor: pointer;
  border-radius: 50%;
  padding: 0;
  flex-shrink: 0;
}

.qdnapro-nova .nova-input-attachment-remove:hover {
  background: rgba(0, 0, 0, 0.06);
  color: var(--nova-text);
}

.qdnapro-nova .nova-input-top {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  flex: 1;
}

.qdnapro-nova .nova-input-top-icon {
  width: 16px;
  height: 16px;
  margin-top: 4px;
  color: var(--nova-placeholder);
  flex-shrink: 0;
}

.qdnapro-nova .nova-input-textarea {
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  resize: none;
  font: inherit;
  font-family: inherit;
  font-size: 14px;
  line-height: 24px;
  color: var(--nova-text);
  max-height: 200px;
  min-height: 24px;
  padding: 0;
  width: 100%;
}

.qdnapro-nova .nova-input-textarea::placeholder {
  color: var(--nova-placeholder);
}

.qdnapro-nova .nova-input-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 4px;
}

.qdnapro-nova .nova-input-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  min-width: 40px;
  border: 0;
  background: transparent;
  color: var(--nova-text);
  border-radius: 4px;
  cursor: pointer;
  padding: 8px;
  transition: background-color 120ms ease-out, color 120ms ease-out;
}

.qdnapro-nova .nova-input-btn svg {
  width: 20px;
  height: 20px;
}

.qdnapro-nova .nova-input-btn:hover {
  background: var(--nova-user-bubble);
}

.qdnapro-nova .nova-input-btn[disabled] {
  color: var(--nova-placeholder);
  cursor: not-allowed;
}

.qdnapro-nova .nova-input-btn[disabled]:hover {
  background: transparent;
}

.qdnapro-nova .nova-input-action {
  margin-left: auto;
  transition: background-color 200ms cubic-bezier(0.4, 0, 0.2, 1), color 200ms cubic-bezier(0.4, 0, 0.2, 1);
}

.qdnapro-nova .nova-input-action.nova-action-send {
  background: var(--nova-primary);
  color: var(--c-text-on-action);
}

.qdnapro-nova .nova-input-action.nova-action-send:hover {
  background: var(--nova-primary-hover);
}

.qdnapro-nova .nova-input-action.nova-action-send:active {
  background: var(--nova-primary-pressed);
}

.qdnapro-nova .nova-input-action.nova-action-stop {
  background: transparent;
  color: var(--nova-error-text);
}

.qdnapro-nova .nova-input-action.nova-action-stop:hover {
  background: rgba(198, 90, 90, 0.1);
}

.qdnapro-nova .nova-input-action.nova-action-stop:active {
  background: rgba(198, 90, 90, 0.18);
}

.qdnapro-nova .nova-input-action.nova-action-mic {
  background: transparent;
  color: var(--nova-text);
}

.qdnapro-nova .nova-input-action.nova-action-mic:hover {
  background: rgba(0, 0, 0, 0.06);
}

.qdnapro-nova .nova-action-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  transform-origin: center;
  transition: transform 240ms cubic-bezier(0.4, 0, 0.2, 1), opacity 140ms ease;
  will-change: transform, opacity;
}

.qdnapro-nova .nova-action-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-nova .nova-action-icon {
    transition: opacity 80ms ease;
    transform: none !important;
  }
}
.qdnapro-nova .nova-input-hint {
  padding: 4px 12px 0;
  font-size: 11px;
  line-height: 16px;
  color: var(--nova-placeholder);
  text-align: center;
}

.qdnapro-nova .nova-history {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.qdnapro-nova .nova-history-section-label {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 8px 4px;
  font-size: 11px;
  line-height: 16px;
  font-weight: 600;
  color: var(--nova-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.qdnapro-nova .nova-history-section-label svg {
  width: 12px;
  height: 12px;
}

.qdnapro-nova .nova-history-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 8px;
  border-radius: 8px;
  cursor: pointer;
  position: relative;
  transition: background-color 120ms ease-out;
}

.qdnapro-nova .nova-history-item:hover {
  background: var(--nova-menu-hover);
}

.qdnapro-nova .nova-history-item.nova-history-active {
  background: var(--nova-pinned-bg);
}

.qdnapro-nova .nova-history-item-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.qdnapro-nova .nova-history-item-title {
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
  color: var(--nova-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-nova .nova-history-item-snippet {
  font-size: 12px;
  line-height: 16px;
  color: var(--nova-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-nova .nova-history-item-meta {
  font-size: 11px;
  line-height: 14px;
  color: var(--nova-text-secondary);
}

.qdnapro-nova .nova-history-item-pin {
  color: var(--nova-primary);
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  margin-top: 4px;
}

.qdnapro-nova .nova-history-item-menu-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border: 0;
  background: transparent;
  color: var(--nova-text-secondary);
  border-radius: 4px;
  cursor: pointer;
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 120ms ease-out, background-color 120ms ease-out;
}

.qdnapro-nova .nova-history-item:hover .nova-history-item-menu-btn,
.qdnapro-nova .nova-history-item-menu-btn:focus-visible,
.qdnapro-nova .nova-history-item.nova-menu-open .nova-history-item-menu-btn {
  opacity: 1;
}

.qdnapro-nova .nova-history-item-menu-btn:hover {
  background: rgba(0, 0, 0, 0.08);
}

.qdnapro-nova .nova-history-item-menu-btn svg {
  width: 16px;
  height: 16px;
}

.qdnapro-nova .nova-menu {
  position: absolute;
  top: 36px;
  right: 8px;
  z-index: 10;
  min-width: 140px;
  padding: 4px;
  background: var(--nova-panel-bg);
  border: 1px solid var(--nova-border);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.qdnapro-nova .nova-menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  border: 0;
  background: transparent;
  color: var(--nova-text);
  border-radius: 4px;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  line-height: 20px;
  text-align: left;
  width: 100%;
}

.qdnapro-nova .nova-menu-item:hover {
  background: var(--nova-menu-hover);
}

.qdnapro-nova .nova-menu-item svg {
  width: 14px;
  height: 14px;
  color: var(--nova-text-secondary);
  flex-shrink: 0;
}

.qdnapro-nova .nova-menu-item.nova-menu-item-danger {
  color: var(--nova-error-text);
}

.qdnapro-nova .nova-menu-item.nova-menu-item-danger svg {
  color: var(--nova-error-text);
}

.qdnapro-nova .nova-menu-item.nova-menu-item-danger:hover {
  background: var(--nova-error-bg);
}

.qdnapro-nova .nova-history-empty {
  padding: 32px 16px;
  text-align: center;
  color: var(--nova-text-secondary);
  font-size: 13px;
  line-height: 20px;
}

.qdnapro-nova.nova-mic-recording .nova-input-field {
  border-color: var(--c-signal-red-text);
  box-shadow: 0 0 0 3px rgba(198, 90, 90, 0.2);
  animation: nova-mic-border-pulse 1.4s ease-in-out infinite;
}

@keyframes nova-mic-border-pulse {
  0%, 100% {
    box-shadow: 0 0 0 3px rgba(198, 90, 90, 0.2);
  }
  50% {
    box-shadow: 0 0 0 5px rgba(198, 90, 90, 0.08);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-nova.nova-mic-recording .nova-input-field {
    animation: none;
    border-color: var(--c-signal-red-text);
    box-shadow: 0 0 0 3px rgba(198, 90, 90, 0.2);
  }
}
.qdnapro-nova .nova-mic-autosend {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 8px 4px 0;
  padding: 7px 10px;
  border-radius: 8px;
  background: var(--nova-quick-hover);
  color: var(--nova-primary);
  font-size: 12px;
  line-height: 16px;
}

.qdnapro-nova .nova-mic-autosend-label {
  font-weight: 600;
  flex-shrink: 0;
}

.qdnapro-nova .nova-mic-autosend-bar {
  flex: 1;
  height: 3px;
  border-radius: 2px;
  background: rgba(64, 73, 154, 0.18);
  overflow: hidden;
  position: relative;
}

.qdnapro-nova .nova-mic-autosend-bar::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--nova-primary);
  transform-origin: left center;
  animation: nova-autosend-countdown linear forwards;
}

@keyframes nova-autosend-countdown {
  from {
    transform: scaleX(1);
  }
  to {
    transform: scaleX(0);
  }
}
.qdnapro-nova .nova-mic-autosend-cancel {
  flex-shrink: 0;
  border: 0;
  background: transparent;
  color: var(--nova-primary);
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  padding: 2px 4px;
  border-radius: 4px;
  text-decoration: underline;
}

.qdnapro-nova .nova-mic-autosend-cancel:hover {
  background: rgba(64, 73, 154, 0.1);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-nova .nova-mic-autosend-bar::after {
    animation: none;
    transform: scaleX(0.5);
  }
}
[data-theme=dark] .qdnapro-nova {
  --nova-panel-bg: #1f2028;
  --nova-user-bubble: #2e3036;
  --nova-text: #f0f1f2;
  --nova-text-secondary: #a6aab3;
  --nova-link: #8b93ff;
  --nova-border: #565b66;
  --nova-input-bg: #0b0b0d;
  --nova-placeholder: #898e99;
  --nova-divider: #3a3b42;
  --nova-quick-hover: rgba(70, 82, 243, 0.20);
  --nova-pinned-bg: #2a2d52;
  --nova-menu-hover: #2e3036;
  --nova-error-bg: #3a1e1e;
  --nova-error-text: #f87171;
  box-shadow: -4px 0 20px rgba(0, 0, 0, 0.35);
}

[data-theme=dark] .qdnapro-nova.nova-theme-orange {
  --nova-pinned-bg: #3a2a12;
  --nova-quick-hover: #2e3036;
}

[data-theme=dark] .qdnapro-nova {
  --nova-primary: #8b93ff;
  --nova-primary-hover: #6e78ff;
  --nova-primary-pressed: #5560e8;
  --nova-primary-glow: rgba(139, 147, 255, 0.45);
}

[data-theme=dark] .qdnapro-nova.nova-theme-orange {
  --nova-primary: #F58F06;
  --nova-primary-hover: #f2a535;
  --nova-primary-pressed: #d97c00;
  --nova-primary-glow: rgba(245, 143, 6, 0.45);
}

[data-theme=dark] .qdnapro-nova .nova-welcome-card {
  background: #2a2c4d;
  border-color: rgba(165, 172, 255, 0.18);
}

[data-theme=dark] .qdnapro-nova .nova-welcome-title,
[data-theme=dark] .qdnapro-nova .nova-welcome-privacy,
[data-theme=dark] .qdnapro-nova .nova-welcome-privacy-icon {
  color: #a5acff;
}

[data-theme=dark] .qdnapro-nova .nova-welcome-privacy {
  background: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .qdnapro-nova.nova-theme-orange .nova-welcome-card {
  background: #3d2e1a;
  border-color: rgba(251, 191, 92, 0.22);
}

[data-theme=dark] .qdnapro-nova.nova-theme-orange .nova-welcome-title, [data-theme=dark] .qdnapro-nova.nova-theme-orange .nova-welcome-privacy, [data-theme=dark] .qdnapro-nova.nova-theme-orange .nova-welcome-privacy-icon {
  color: #fbbf24;
}

/* ══════════════════════════════════════════════════════════════════════════
   PWA-VARIANT: gesprekkenlijst NAAST de chat  [Jan 04.08.2026]

   Alleen actief met het `pwa`-attribuut, dus het backoffice-zijpaneel merkt
   hier niets van: daar komt de geschiedenis nog steeds IN PLAATS VAN de chat.

   Onder 768px (telefoon) is er één kolom en gedraagt de variant zich exact als
   voorheen: de rechterkolom staat er in de DOM maar wordt niet getoond, en de
   geschiedenis-knop in de kop brengt je naar de volledige lijst.
   Vanaf 768px — dezelfde tabletgrens die de app in documenten, postvak en
   startscherm gebruikt — staat de lijst rechts en is die knop overbodig.
   ══════════════════════════════════════════════════════════════════════════ */
.qdnapro-nova[pwa] .nova-split {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.qdnapro-nova[pwa] .nova-split-chat {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  /* ⚠️ min-width 0 is hier geen opsmuk: zonder deze regel weigert een flex-kind
     te krimpen onder zijn inhoud en duwt een lange regel in een chatbel de
     rechterkolom van het scherm af. */
  min-width: 0;
}

/* Telefoon: de lijst staat in de DOM maar hoort niet in beeld. */
.qdnapro-nova[pwa] .nova-split-history {
  display: none;
}

@media (min-width: 768px) {
  .qdnapro-nova[pwa] .nova-split-history {
    display: flex;
    flex-direction: column;
    /* 320px: breed genoeg voor een gesprekstitel op twee regels, smal genoeg om
       de chat de hoofdrol te laten. Krimpt niet mee (flex 0 0 auto), want een
       gespreklijst van 120px is onleesbaar. */
    flex: 0 0 320px;
    min-width: 0;
    overflow-y: auto;
    border-left: 1px solid var(--nova-divider);
  }
  /* De geschiedenis-knop in de kop wijst naar een lijst die al zichtbaar is. */
  .qdnapro-nova[pwa] .nova-header-actions .nova-header-btn[data-role=history-btn] {
    display: none;
  }
}
/* ============================================================
 *  qdnapro-nova-launcher — compiled from _nova-launcher.scss
 * ============================================================ */
.qdnapro-nova-launcher {
  position: fixed;
  z-index: 9000;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  background: linear-gradient(135deg, var(--c-action-500) 0%, var(--c-purple-500) 50%, var(--c-action-500) 100%);
  background-size: 200% 200%;
  background-position: 0% 0%;
  animation: nova-launcher-glide 8s ease-in-out infinite alternate;
  color: var(--c-text-on-action);
  box-shadow: 0 4px 8px 0 rgba(64, 73, 154, 0.25), 0 8px 16px 4px rgba(0, 0, 0, 0.16), 0 2px 4px 0 rgba(0, 0, 0, 0.12);
  transition: transform 200ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 200ms ease-out, background 160ms ease-out;
}

.qdnapro-nova-launcher .launcher-sparkle {
  width: 56%;
  height: 56%;
  display: block;
  pointer-events: none;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.18));
}

.qdnapro-nova-launcher .launcher-sparkle path {
  transform-box: fill-box;
  transform-origin: center;
}

.qdnapro-nova-launcher .launcher-sparkle .sparkle-big {
  animation: nova-launcher-sparkle-big 2.2s ease-in-out infinite;
}

.qdnapro-nova-launcher .launcher-sparkle .sparkle-small {
  animation: nova-launcher-sparkle-small 1.5s ease-in-out -0.4s infinite;
}

.qdnapro-nova-launcher:hover,
.qdnapro-nova-launcher.force-hover {
  transform: translateY(-2px) scale(1.04);
  box-shadow: 0 6px 12px 0 rgba(64, 73, 154, 0.32), 0 12px 22px 6px rgba(0, 0, 0, 0.18), 0 4px 6px 0 rgba(0, 0, 0, 0.14);
}

.qdnapro-nova-launcher:hover::before,
.qdnapro-nova-launcher.force-hover::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: rgba(70, 82, 243, 0.55);
  z-index: -1;
  animation: nova-launcher-pulse 1.8s ease-out infinite;
}

.qdnapro-nova-launcher:active,
.qdnapro-nova-launcher.force-pressed {
  transform: translateY(0) scale(0.97);
  box-shadow: 0 2px 4px 0 rgba(64, 73, 154, 0.22), 0 4px 8px 2px rgba(0, 0, 0, 0.18), 0 1px 2px 0 rgba(0, 0, 0, 0.14);
  transition-duration: 90ms;
}

.qdnapro-nova-launcher:focus {
  outline: none;
}

.qdnapro-nova-launcher:focus-visible,
.qdnapro-nova-launcher.force-focus {
  outline: 3px solid #ffffff;
  outline-offset: -3px;
  box-shadow: 0 0 0 3px var(--c-action-500), 0 0 0 7px rgba(70, 82, 243, 0.3), 0 8px 16px 4px rgba(0, 0, 0, 0.18), 0 2px 4px 0 rgba(0, 0, 0, 0.12);
}

.qdnapro-nova-launcher.launcher-theme-orange {
  background: linear-gradient(135deg, var(--c-warn-yellow-500) 0%, var(--c-warn-yellow-600) 50%, var(--c-warn-yellow-500) 100%);
  background-size: 200% 200%;
  background-position: 0% 0%;
  animation: nova-launcher-glide 8s ease-in-out infinite alternate;
  color: var(--c-text-on-action);
  box-shadow: 0 4px 8px 0 rgba(245, 143, 6, 0.3), 0 8px 16px 4px rgba(0, 0, 0, 0.16), 0 2px 4px 0 rgba(0, 0, 0, 0.12);
}

.qdnapro-nova-launcher.launcher-theme-orange:hover,
.qdnapro-nova-launcher.launcher-theme-orange.force-hover {
  box-shadow: 0 6px 12px 0 rgba(245, 143, 6, 0.38), 0 12px 22px 6px rgba(0, 0, 0, 0.18), 0 4px 6px 0 rgba(0, 0, 0, 0.14);
}

.qdnapro-nova-launcher.launcher-theme-orange:hover::before,
.qdnapro-nova-launcher.launcher-theme-orange.force-hover::before {
  background: rgba(245, 143, 6, 0.55);
}

.qdnapro-nova-launcher.launcher-theme-orange:active,
.qdnapro-nova-launcher.launcher-theme-orange.force-pressed {
  box-shadow: 0 2px 4px 0 rgba(245, 143, 6, 0.28), 0 4px 8px 2px rgba(0, 0, 0, 0.18), 0 1px 2px 0 rgba(0, 0, 0, 0.14);
}

.qdnapro-nova-launcher.launcher-theme-orange:focus-visible,
.qdnapro-nova-launcher.launcher-theme-orange.force-focus {
  box-shadow: 0 0 0 3px var(--c-warn-yellow-600), 0 0 0 7px rgba(245, 143, 6, 0.32), 0 8px 16px 4px rgba(0, 0, 0, 0.18), 0 2px 4px 0 rgba(0, 0, 0, 0.12);
}

[data-theme=dark] .qdnapro-nova-launcher {
  background: linear-gradient(135deg, #5560e8 0%, #3842c2 50%, #5560e8 100%);
  background-size: 200% 200%;
  box-shadow: 0 4px 8px 0 rgba(70, 82, 243, 0.3), 0 8px 16px 4px rgba(0, 0, 0, 0.3), 0 2px 4px 0 rgba(0, 0, 0, 0.2);
}

[data-theme=dark] .qdnapro-nova-launcher:hover,
[data-theme=dark] .qdnapro-nova-launcher.force-hover {
  box-shadow: 0 6px 12px 0 rgba(70, 82, 243, 0.4), 0 12px 22px 6px rgba(0, 0, 0, 0.32), 0 4px 6px 0 rgba(0, 0, 0, 0.22);
}

[data-theme=dark] .qdnapro-nova-launcher.launcher-theme-orange {
  background: linear-gradient(135deg, #FBBF24 0%, #d97c00 50%, #FBBF24 100%);
  background-size: 200% 200%;
  box-shadow: 0 4px 8px 0 rgba(251, 191, 36, 0.3), 0 8px 16px 4px rgba(0, 0, 0, 0.3), 0 2px 4px 0 rgba(0, 0, 0, 0.2);
}

@keyframes nova-launcher-sparkle-big {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.15);
  }
}
@keyframes nova-launcher-sparkle-small {
  0%, 100% {
    transform: scale(0.7);
  }
  50% {
    transform: scale(1.25);
  }
}
@keyframes nova-launcher-pulse {
  0% {
    transform: scale(1);
    opacity: 0.55;
  }
  70% {
    transform: scale(1.5);
    opacity: 0;
  }
  100% {
    transform: scale(1.5);
    opacity: 0;
  }
}
@keyframes nova-launcher-glide {
  0% {
    background-position: 0% 0%;
  }
  100% {
    background-position: 100% 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-nova-launcher,
  .qdnapro-nova-launcher .launcher-sparkle .sparkle-big,
  .qdnapro-nova-launcher .launcher-sparkle .sparkle-small,
  .qdnapro-nova-launcher:hover::before {
    animation: none;
  }
}
.qdnapro-nova-message {
  --msg-text: var(--nova-text, #1a1c20);
  --msg-text-secondary: var(--nova-text-secondary, #6b7280);
  --msg-user-bubble: var(--nova-user-bubble, #f0f1f2);
  --msg-primary: var(--nova-primary, #40499a);
  --msg-error-bg: var(--nova-error-bg, #fee3e3);
  --msg-error-text: var(--nova-error-text, #c65a5a);
  --msg-pinned-bg: var(--nova-pinned-bg, #e6e9ff);
  --msg-border: var(--nova-border, #c4c7cc);
  --msg-link: var(--nova-link, #40499a);
  --msg-quick-hover: var(--nova-quick-hover, #f0f1f2);
  --msg-divider: var(--nova-divider, rgba(0, 0, 0, 0.1));
  display: flex;
  flex-direction: column;
}

.qdnapro-nova-message.nova-msg-user {
  align-self: flex-end;
  max-width: 85%;
  padding: 8px 12px;
  background: var(--msg-user-bubble);
  color: var(--msg-text);
  border-radius: 20px;
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
  word-wrap: break-word;
  white-space: pre-wrap;
}

.qdnapro-nova-message.nova-msg-ai {
  align-self: flex-start;
  width: 100%;
  padding: 8px 12px;
  border-radius: 20px;
  gap: 12px;
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body {
  font-size: 14px;
  line-height: 24px;
  color: var(--msg-text);
  word-wrap: break-word;
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body p {
  margin: 0 0 8px;
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body p:last-child {
  margin-bottom: 0;
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body strong {
  font-weight: 600;
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body a {
  color: var(--msg-link);
  text-decoration: underline;
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body ul, .qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body ol {
  margin: 0 0 8px;
  padding-left: 20px;
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body li + li {
  margin-top: 4px;
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-ai-body code {
  background: var(--msg-user-bubble);
  padding: 1px 4px;
  border-radius: 3px;
  font-family: Menlo, Monaco, "Courier New", monospace;
  font-size: 12px;
}

.qdnapro-nova-message.nova-msg-ai .nova-source-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 8px 4px 4px;
  background: var(--msg-user-bubble);
  border: 0;
  border-radius: 4px;
  font-size: 12px;
  line-height: 20px;
  font-weight: 500;
  color: var(--msg-text-secondary);
  width: fit-content;
  cursor: pointer;
  transition: background-color 120ms ease-out;
}

.qdnapro-nova-message.nova-msg-ai .nova-source-pill:hover {
  background: var(--msg-quick-hover);
}

.qdnapro-nova-message.nova-msg-ai .nova-source-pill qdnapro-icon,
.qdnapro-nova-message.nova-msg-ai .nova-source-pill .nova-source-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.qdnapro-nova-message.nova-msg-ai .nova-source-stack {
  display: inline-flex;
  align-items: center;
  padding-right: 6px;
}

.qdnapro-nova-message.nova-msg-ai .nova-source-stack-item {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--msg-user-bubble);
  border: 0.5px solid var(--msg-divider);
  margin-right: -6px;
}

.qdnapro-nova-message.nova-msg-ai .nova-followups {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 0 4px;
}

.qdnapro-nova-message.nova-msg-ai .nova-followup-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: transparent;
  border: 1px solid var(--msg-border);
  border-radius: 16px;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  line-height: 16px;
  color: var(--msg-text);
  transition: background-color 120ms ease-out, border-color 120ms ease-out;
}

.qdnapro-nova-message.nova-msg-ai .nova-followup-chip:hover {
  background: var(--msg-quick-hover);
  border-color: var(--msg-primary);
  color: var(--msg-primary);
}

.qdnapro-nova-message.nova-msg-ai .nova-msg-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.qdnapro-nova-message.nova-msg-ai .nova-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border: 0;
  background: transparent;
  color: var(--msg-text-secondary);
  border-radius: 4px;
  cursor: pointer;
  padding: 4px;
  transition: background-color 120ms ease-out, color 120ms ease-out;
}

.qdnapro-nova-message.nova-msg-ai .nova-action-btn:hover {
  background: var(--msg-user-bubble);
  color: var(--msg-text);
}

.qdnapro-nova-message.nova-msg-ai .nova-action-btn qdnapro-icon {
  width: 16px;
  height: 16px;
}

.qdnapro-nova-message.nova-msg-ai .nova-action-btn.nova-action-active {
  color: var(--msg-primary);
  background: var(--msg-pinned-bg);
}

.qdnapro-nova-message.nova-msg-ai .nova-action-btn:focus {
  outline: none;
}

.qdnapro-nova-message.nova-msg-ai .nova-action-btn:focus-visible,
.qdnapro-nova-message.nova-msg-ai .nova-action-btn.force-focus,
.qdnapro-nova-message.nova-msg-ai .nova-followup-chip:focus-visible,
.qdnapro-nova-message.nova-msg-ai .nova-followup-chip.force-focus,
.qdnapro-nova-message.nova-msg-ai .nova-source-pill:focus-visible,
.qdnapro-nova-message.nova-msg-ai .nova-source-pill.force-focus {
  outline: 2px solid var(--msg-primary);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-nova-message.nova-msg-error {
  align-self: stretch;
  padding: 12px;
  background: var(--msg-error-bg);
  border-radius: 12px;
  color: var(--msg-error-text);
  font-size: 13px;
  line-height: 20px;
  gap: 8px;
}

.qdnapro-nova-message.nova-msg-error .nova-msg-error-retry {
  align-self: flex-start;
  padding: 4px 10px;
  background: var(--msg-error-text);
  color: var(--c-text-on-action);
  border: 0;
  border-radius: 4px;
  font: inherit;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
}

.qdnapro-nova-message.nova-msg-error .nova-msg-error-retry:hover {
  opacity: 0.9;
}

.qdnapro-nova-message.nova-msg-error .nova-msg-error-retry:focus {
  outline: none;
}

.qdnapro-nova-message.nova-msg-error .nova-msg-error-retry:focus-visible,
.qdnapro-nova-message.nova-msg-error .nova-msg-error-retry.force-focus {
  outline: 2px solid var(--msg-primary);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-nova-message.nova-msg-thinking {
  align-self: flex-start;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  height: 36px;
  padding: 0;
  color: var(--msg-text-secondary);
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
}

.qdnapro-nova-message.nova-msg-thinking .nova-thinking-icon {
  position: relative;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
}

.qdnapro-nova-message.nova-msg-thinking .nova-thinking-sparkle {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  margin: -7px 0 0 -7px;
  color: var(--msg-primary);
  animation: nova-msg-sparkle-orbit 2.7s ease-in-out infinite;
  will-change: transform, opacity;
}

.qdnapro-nova-message.nova-msg-thinking .nova-thinking-sparkle:nth-child(2) {
  animation-delay: -0.9s;
}

.qdnapro-nova-message.nova-msg-thinking .nova-thinking-sparkle:nth-child(3) {
  animation-delay: -1.8s;
}

.qdnapro-nova-message.nova-msg-thinking .nova-thinking-sparkle svg {
  width: 100%;
  height: 100%;
  display: block;
}

[data-theme=dark] .qdnapro-nova-message.nova-msg-thinking .nova-thinking-sparkle {
  color: #f0f1ff;
}

@keyframes nova-msg-sparkle-orbit {
  0% {
    transform: translate(0, -11px) scale(0.45);
    opacity: 0.35;
  }
  25% {
    transform: translate(11px, 0) scale(0.85);
    opacity: 0.75;
  }
  50% {
    transform: translate(0, 11px) scale(1.2);
    opacity: 1;
  }
  75% {
    transform: translate(-11px, 0) scale(0.85);
    opacity: 0.75;
  }
  100% {
    transform: translate(0, -11px) scale(0.45);
    opacity: 0.35;
  }
}
.qdnapro-nova-message.nova-msg-file {
  align-self: stretch;
  flex-direction: row;
  align-items: center;
  gap: 16px;
  padding: 12px 16px;
  background: #e6e9ff;
  border-radius: 8px;
  cursor: pointer;
  transition: background-color 120ms ease-out;
}

.qdnapro-nova-message.nova-msg-file:hover {
  background: var(--c-border-tree-bright);
}

.qdnapro-nova-message.nova-msg-file:active {
  background: var(--c-sidebar-icon);
}

.qdnapro-nova-message.nova-msg-file:focus {
  outline: none;
}

.qdnapro-nova-message.nova-msg-file:focus-visible, .qdnapro-nova-message.nova-msg-file.force-focus {
  outline: 2px solid var(--msg-primary);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-icon-wrap {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
  gap: 2px;
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-name {
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
  color: var(--msg-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-info {
  font-size: 12px;
  line-height: 16px;
  color: var(--msg-text-secondary);
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-open {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: transparent;
  color: var(--c-purple-500);
  border: 1px solid var(--c-purple-500);
  border-radius: 8px;
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 20px;
  pointer-events: none;
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-open qdnapro-icon {
  width: 16px;
  height: 16px;
  color: var(--c-purple-500);
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-download {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  color: var(--c-purple-500);
  pointer-events: none;
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-download qdnapro-icon {
  width: 20px;
  height: 20px;
  color: inherit;
}

.qdnapro-nova-message.nova-msg-file .nova-msg-file-download qdnapro-icon svg {
  fill: var(--c-purple-500) !important;
}

[data-theme=dark] .qdnapro-nova-message.nova-msg-file {
  background: #2a2c5a;
  border-color: #6b75d6;
}

[data-theme=dark] .qdnapro-nova-message.nova-msg-file:hover {
  background: #333a7b;
}

[data-theme=dark] .qdnapro-nova-message.nova-msg-file:active {
  background: #252b5e;
}

[data-theme=dark] .qdnapro-nova-message.nova-msg-file .nova-msg-file-open,
[data-theme=dark] .qdnapro-nova-message.nova-msg-file .nova-msg-file-open qdnapro-icon {
  color: #b3bbf2;
  border-color: #6b75d6;
}

.qdnapro-number-indicator-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  border-radius: 50px;
  border: 1px solid transparent;
  padding: 0 4px;
  font-family: "Inter", sans-serif;
  text-align: center;
  white-space: nowrap;
  line-height: 1;
}
.qdnapro-number-indicator-badge:focus-visible {
  outline: 1px solid var(--c-purple-500);
  outline-offset: 2px;
}
.qdnapro-number-indicator-badge.number-indicator-badge-size-xs {
  min-width: 20px;
  height: 20px;
  font-size: 10px;
  line-height: 20px;
  opacity: 0.9;
}
.qdnapro-number-indicator-badge.number-indicator-badge-size-sm {
  min-width: 24px;
  height: 24px;
  font-size: 12px;
  line-height: 20px;
}
.qdnapro-number-indicator-badge.number-indicator-badge-size-md {
  min-width: 24px;
  height: 24px;
  font-size: 14px;
  line-height: 24px;
}
.qdnapro-number-indicator-badge.number-indicator-badge-size-lg {
  min-width: 24px;
  height: 24px;
  font-size: 16px;
  line-height: 24px;
}
.qdnapro-number-indicator-badge.number-indicator-badge-weight-regular {
  font-weight: 400;
}
.qdnapro-number-indicator-badge.number-indicator-badge-weight-medium {
  font-weight: 500;
}
.qdnapro-number-indicator-badge.number-indicator-badge-weight-bold {
  font-weight: 700;
}
.qdnapro-number-indicator-badge.number-indicator-badge-primary {
  background-color: var(--c-purple-500);
  color: var(--c-text-on-action);
}
.qdnapro-number-indicator-badge.number-indicator-badge-outlined {
  background-color: #e6e9ff;
  border-color: var(--c-purple-500);
  color: var(--c-purple-500);
}
.qdnapro-number-indicator-badge.number-indicator-badge-subtle {
  background-color: #e6e9ff;
  color: var(--c-purple-500);
}
.qdnapro-number-indicator-badge.number-indicator-badge-muted {
  background-color: rgba(107, 114, 128, 0.3019607843);
  color: var(--c-grey-500);
}
.qdnapro-number-indicator-badge.number-indicator-badge-ghost {
  background-color: transparent;
  color: var(--c-grey-500);
}
.qdnapro-number-indicator-badge.number-indicator-badge-ghost-purple {
  background-color: transparent;
  color: var(--c-purple-500);
}
.qdnapro-number-indicator-badge.number-indicator-badge-alert {
  background-color: var(--c-warn-red-500);
  color: var(--c-text-on-action);
}
.qdnapro-number-indicator-badge.number-indicator-badge-on-primary {
  background-color: var(--c-purple-700);
  color: var(--c-text-on-action);
}
.qdnapro-number-indicator-badge.number-indicator-badge-green {
  background-color: var(--c-chip-green-bg);
  border-color: var(--c-chip-green-2-bg);
  color: #2f5d4a;
}
.qdnapro-number-indicator-badge.number-indicator-badge-yellow {
  background-color: var(--c-chip-yellow-bg);
  border-color: var(--c-chip-yellow-2-bg);
  color: #655522;
}
.qdnapro-number-indicator-badge.number-indicator-badge-red {
  background-color: var(--c-signal-red-bg);
  border-color: var(--c-chip-red-2-bg);
  color: #633030;
}
.qdnapro-number-indicator-badge.number-indicator-badge-borderless {
  border-color: transparent;
}

.qdnapro-number-indicator-badge.number-indicator-badge-dot {
  padding: 0;
  font-size: 0;
  line-height: 0;
  border-width: 0;
}
.qdnapro-number-indicator-badge.number-indicator-badge-dot.number-indicator-badge-size-xs {
  width: 6px;
  height: 6px;
  min-width: 6px;
}
.qdnapro-number-indicator-badge.number-indicator-badge-dot.number-indicator-badge-size-sm {
  width: 8px;
  height: 8px;
  min-width: 8px;
}
.qdnapro-number-indicator-badge.number-indicator-badge-dot.number-indicator-badge-size-md {
  width: 10px;
  height: 10px;
  min-width: 10px;
}
.qdnapro-number-indicator-badge.number-indicator-badge-dot.number-indicator-badge-size-lg {
  width: 12px;
  height: 12px;
  min-width: 12px;
}

[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-primary {
  background-color: #c4c7cc;
  color: #ffffff;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-outlined {
  background-color: #0b0b0d;
  border-color: #565b66;
  color: #f0f1f2;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-subtle {
  background-color: #0b0b0d;
  color: #f0f1f2;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-muted {
  background-color: rgba(107, 114, 128, 0.2);
  color: #a6aab3;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-ghost {
  background-color: transparent;
  color: #a6aab3;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-ghost-purple {
  background-color: transparent;
  color: #f0f1f2;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-alert {
  background-color: #ef4444;
  color: #ffffff;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-green {
  background-color: rgba(66, 139, 110, 0.2);
  border-color: rgba(139, 236, 197, 0.4);
  color: #a7e8cd;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-yellow {
  background-color: rgba(151, 127, 46, 0.2);
  border-color: rgba(253, 229, 148, 0.4);
  color: #f0dc95;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-red {
  background-color: rgba(198, 90, 90, 0.2);
  border-color: rgba(251, 170, 170, 0.4);
  color: #f6c0c0;
}
[data-theme=dark] .qdnapro-number-indicator-badge.number-indicator-badge-borderless {
  border-color: transparent;
}

qdnapro-photo-gallery {
  display: block;
  width: 100%;
  --pg-cell-size: 170px;
}
qdnapro-photo-gallery * {
  box-sizing: border-box;
}
qdnapro-photo-gallery .pg-grid {
  display: grid;
  /* auto-FILL + minmax(<size>, 1fr): the KEY is auto-FILL (not auto-fit).
     auto-fill KEEPS the empty phantom tracks, so a small result set does
     NOT over-stretch (each item stays one track ≈ <size>) — that was the
     original bug with auto-fit, which collapses empty tracks and blows the
     few items up. The 1fr lets the real columns absorb the leftover width
     so the grid fills the card edge-to-edge (no empty column pooling on the
     right). Net: tile size depends only on CONTAINER WIDTH (responsive),
     never on filters or photo count. [Jan 2026-07-06] */
  grid-template-columns: repeat(auto-fill, minmax(var(--pg-cell-size, 170px), 1fr));
  gap: var(--s-3, 12px);
  justify-content: start;
}
qdnapro-photo-gallery .pg-cell {
  position: relative;
  aspect-ratio: 1/1;
  border-radius: var(--r-3, 12px);
  overflow: hidden;
  background: var(--c-bg-subtle-hover, #f0f1f2);
}
qdnapro-photo-gallery .pg-cell-thumb-btn {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}
qdnapro-photo-gallery .pg-cell-thumb {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 220ms cubic-bezier(0.2, 0.6, 0.2, 1);
}
qdnapro-photo-gallery .pg-cell-thumb-btn:hover .pg-cell-thumb {
  transform: scale(1.05);
}
qdnapro-photo-gallery .pg-cell-thumb-btn:focus-visible {
  outline: 2px solid var(--c-brand-purple, #40499a);
  outline-offset: -2px;
}
qdnapro-photo-gallery .pg-cell.pg-cell-selected {
  box-shadow: 0 0 0 3px var(--c-brand-purple, #40499a);
}
qdnapro-photo-gallery .pg-grid.pg-selecting .pg-cell-thumb-btn {
  cursor: pointer;
}
qdnapro-photo-gallery .pg-grid.pg-selecting .pg-cell-thumb-btn:hover .pg-cell-thumb {
  transform: none;
}
qdnapro-photo-gallery .pg-cell.pg-cell-hidden .pg-cell-thumb {
  filter: grayscale(0.7);
  opacity: 0.55;
}
qdnapro-photo-gallery .pg-cell.pg-cell-hidden .pg-cell-thumb-btn:hover .pg-cell-thumb {
  opacity: 0.8;
}
qdnapro-photo-gallery .pg-cell-hidden-badge {
  position: absolute;
  bottom: var(--s-2, 8px);
  right: var(--s-2, 8px);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 6px;
  border-radius: var(--r-1, 4px);
  background: rgba(0, 0, 0, 0.62);
  color: #fff;
  font-size: 10px;
  line-height: 1.4;
  pointer-events: none;
}
qdnapro-photo-gallery .pg-cell-check {
  position: absolute;
  top: var(--s-2, 8px);
  left: var(--s-2, 8px);
  z-index: 3;
  background: rgba(255, 255, 255, 0.85);
  border-radius: var(--r-1, 4px);
  padding: 2px;
}
qdnapro-photo-gallery .pg-cell-flag {
  position: absolute;
  top: var(--s-2, 8px);
  right: var(--s-2, 8px);
  z-index: 3;
  color: var(--c-signal-red-text, #b3261e);
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35));
  pointer-events: none;
}
qdnapro-photo-gallery .pg-cell:has(.pg-cell-id) .pg-cell-flag {
  top: 22px;
}
qdnapro-photo-gallery .pg-cell-id {
  position: absolute;
  top: 4px;
  right: 6px;
  z-index: 3;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.2px;
  font-variant-numeric: tabular-nums;
  pointer-events: none;
  color: rgba(255, 255, 255, 0.92);
  text-shadow: 0 1px 1.5px rgba(0, 0, 0, 0.55);
}
qdnapro-photo-gallery .pg-cell-id.pg-id-dark {
  color: rgba(17, 17, 17, 0.9);
  text-shadow: 0 1px 1.5px rgba(255, 255, 255, 0.6);
}
qdnapro-photo-gallery .pg-cell-fav {
  position: absolute;
  bottom: var(--s-2, 8px);
  left: var(--s-2, 8px);
  z-index: 3;
  color: var(--c-warning-bright-border);
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45));
  pointer-events: none;
}
qdnapro-photo-gallery .pg-cell-comments {
  position: absolute;
  bottom: var(--s-2, 8px);
  right: var(--s-2, 8px);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 7px;
  border-radius: var(--r-pill, 999px);
  background: rgba(0, 0, 0, 0.55);
  color: var(--c-text-on-action);
  font-size: 11px;
  font-weight: 600;
  line-height: 14px;
  pointer-events: none;
}
qdnapro-photo-gallery .pg-state[hidden] {
  display: none;
}
qdnapro-photo-gallery .pg-skel-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(var(--pg-cell-size, 170px), 1fr));
  gap: var(--s-3, 12px);
  justify-content: start;
}
qdnapro-photo-gallery .pg-skel-cell {
  aspect-ratio: 1/1;
  border-radius: var(--r-3, 12px);
  background: linear-gradient(100deg, var(--c-grey-100, #f0f1f2) 30%, var(--c-grey-50, #f7f8f9) 50%, var(--c-grey-100, #f0f1f2) 70%);
  background-size: 200% 100%;
  animation: pg-skel-shimmer 1.4s ease-in-out infinite;
}
@keyframes pg-skel-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
qdnapro-photo-gallery .pg-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--s-2, 8px);
  padding: var(--s-8, 40px) var(--s-4, 16px);
  color: var(--c-text-muted, #6b7280);
  text-align: center;
}
qdnapro-photo-gallery .pg-empty h4 {
  margin: 0;
  color: var(--c-text-heading, #1a1f4d);
}
qdnapro-photo-gallery .pg-empty p {
  margin: 0;
  font-size: 13px;
}
qdnapro-photo-gallery .pg-sentinel {
  height: 1px;
}

qdnapro-modal.pg-lightbox.modal-size-xxlarge .modal-dialog {
  max-width: min(1400px, 95vw);
  width: 95vw;
  height: min(900px, 100vh - 48px);
}
qdnapro-modal.pg-lightbox .modal-body {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 0;
  gap: 0;
}
qdnapro-modal.pg-lightbox .pg-lb-stage {
  position: relative;
  display: flex;
  align-items: stretch;
  gap: var(--s-3, 12px);
  flex: 1 1 auto;
  min-height: 0;
}
qdnapro-modal.pg-lightbox .pg-lb-hero {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
}
qdnapro-modal.pg-lightbox .pg-lb-viewport {
  position: absolute;
  inset: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--r-3, 12px);
  background: var(--c-bg-subtle-hover, #f4f5fb);
}
qdnapro-modal.pg-lightbox .pg-lb-viewport.pg-zoomed {
  cursor: grab;
}
qdnapro-modal.pg-lightbox .pg-lb-viewport.pg-panning {
  cursor: grabbing;
}
qdnapro-modal.pg-lightbox .pg-lb-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transform-origin: center center;
  transition: transform 120ms ease-out;
  will-change: transform;
  user-select: none;
  -webkit-user-drag: none;
}
qdnapro-modal.pg-lightbox .pg-lb-viewport.pg-panning .pg-lb-img {
  transition: none;
}
qdnapro-modal.pg-lightbox .pg-lb-overlay {
  position: absolute;
  inset: 0;
  margin: auto;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  opacity: 0;
  pointer-events: none;
  transition: opacity 260ms ease;
  will-change: opacity;
  user-select: none;
  -webkit-user-drag: none;
}
qdnapro-modal.pg-lightbox .pg-lb-overlay.pg-overlay-show {
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  qdnapro-modal.pg-lightbox .pg-lb-overlay {
    transition: none;
  }
}
qdnapro-modal.pg-lightbox .pg-lb-hero-tools {
  position: absolute;
  top: var(--s-2, 8px);
  right: var(--s-2, 8px);
  z-index: 4;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 3px;
  border-radius: var(--r-pill, 999px);
  background: rgba(11, 11, 13, 0.55);
  backdrop-filter: blur(6px);
}
qdnapro-modal.pg-lightbox .pg-lb-hero-tools qdnapro-icon-btn {
  color: #ffffff;
}
qdnapro-modal.pg-lightbox .pg-lb-hero-tools qdnapro-icon-btn:hover {
  background: rgba(255, 255, 255, 0.16);
}
qdnapro-modal.pg-lightbox .pg-lb-hero-tools .pg-btn-dim {
  opacity: 0.4;
  pointer-events: none;
}
qdnapro-modal.pg-lightbox .pg-lb-zoom-level {
  min-width: 44px;
  padding: 4px 6px;
  border: none;
  background: transparent;
  color: var(--c-text-on-action);
  font-size: 12px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  border-radius: var(--r-2, 8px);
}
qdnapro-modal.pg-lightbox .pg-lb-zoom-level:hover {
  background: rgba(255, 255, 255, 0.16);
}
qdnapro-modal.pg-lightbox .pg-lb-arrow {
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 50%;
  background: var(--c-bg-subtle-purple, rgba(64, 73, 154, 0.1));
  color: var(--c-brand-purple, #40499a);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  align-self: center;
  transition: background-color 180ms ease, transform 180ms ease;
}
qdnapro-modal.pg-lightbox .pg-lb-arrow:hover {
  background: var(--c-purple-100, rgba(64, 73, 154, 0.2));
  transform: scale(1.05);
}
qdnapro-modal.pg-lightbox .pg-lb-meta {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: var(--s-3, 12px);
  margin-top: var(--s-3, 12px);
  padding-top: var(--s-3, 12px);
  border-top: 1px solid var(--c-border-soft, #e6e9ef);
  font-size: 13px;
  color: var(--c-text-muted, #6b7280);
  flex-shrink: 0;
}
qdnapro-modal.pg-lightbox .pg-lb-meta-text {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--s-3, 12px);
  flex: 1 1 auto;
  min-width: 0;
}
qdnapro-modal.pg-lightbox .pg-lb-position {
  font-weight: 600;
  color: var(--c-text-heading, #1a1f4d);
  white-space: nowrap;
}
qdnapro-modal.pg-lightbox .pg-lb-user:empty, qdnapro-modal.pg-lightbox .pg-lb-date:empty, qdnapro-modal.pg-lightbox .pg-lb-node:empty, qdnapro-modal.pg-lightbox .pg-lb-location:empty {
  display: none;
}
qdnapro-modal.pg-lightbox .pg-lb-hidden-info {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 2px 8px;
  border-radius: var(--r-1, 4px);
  background: var(--c-bg-subtle-hover, #f0f1f2);
  color: var(--c-text-subtle, #5b6070);
  font-size: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
qdnapro-modal.pg-lightbox .pg-lb-hidden-info:empty {
  display: none;
}
qdnapro-modal.pg-lightbox .pg-lb-fase2-slot {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2, 8px);
  padding-left: var(--s-3, 12px);
  margin-left: auto;
  flex-shrink: 0;
  border-left: 1px solid var(--c-border-soft, #e6e9ef);
}
qdnapro-modal.pg-lightbox .pg-lb-rating {
  margin: 0 2px;
}
qdnapro-modal.pg-lightbox .pg-lb-classify-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--s-2, 8px);
  margin-top: var(--s-3, 12px);
  flex-shrink: 0;
}
qdnapro-modal.pg-lightbox .pg-lb-classify-btn.qdnapro-icon-btn {
  background: var(--c-bg-subtle-purple);
  color: var(--c-purple-500);
  flex: 0 0 auto;
}
qdnapro-modal.pg-lightbox .pg-lb-classify-btn.qdnapro-icon-btn:hover:not(.icon-btn-disabled) {
  background: var(--c-purple-50);
}
qdnapro-modal.pg-lightbox .pg-lb-classify-pills {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
}
qdnapro-modal.pg-lightbox .pg-lb-classify-none {
  color: var(--c-text-muted, #8890b8);
  font-size: 12.5px;
}
qdnapro-modal.pg-lightbox .pg-lb-actions {
  margin-top: var(--s-3, 12px);
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: var(--s-2, 8px);
  flex-shrink: 0;
}
qdnapro-modal.pg-lightbox .pg-lb-download {
  display: inline-flex;
}
qdnapro-modal.pg-lightbox .pg-lb-comments-toggle {
  position: relative;
}
qdnapro-modal.pg-lightbox .pg-lb-comments-toggle[data-count]:not([data-count=""])::after {
  content: attr(data-count);
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 15px;
  height: 15px;
  padding: 0 3px;
  border-radius: var(--r-pill, 999px);
  background: var(--c-brand-purple, #40499a);
  color: var(--c-text-on-action);
  font-size: 10px;
  font-weight: 700;
  line-height: 15px;
  text-align: center;
  pointer-events: none;
}
qdnapro-modal.pg-lightbox .pg-lb-comments-panel {
  margin-top: var(--s-3, 12px);
  padding-top: var(--s-3, 12px);
  border-top: 1px solid var(--c-border-soft, #e6e9ef);
  flex-shrink: 0;
}
qdnapro-modal.pg-lightbox .pg-lb-comments-panel[hidden] {
  display: none;
}
qdnapro-modal.pg-lightbox .pg-lb-comments-list {
  display: flex;
  flex-direction: column;
  gap: var(--s-3, 12px);
  max-height: 220px;
  overflow-y: auto;
  margin-bottom: var(--s-3, 12px);
}
qdnapro-modal.pg-lightbox .pg-comments-empty, qdnapro-modal.pg-lightbox .pg-comments-loading {
  margin: 0;
  color: var(--c-text-muted, #6b7280);
  font-size: 13px;
}
qdnapro-modal.pg-lightbox .pg-comment {
  display: flex;
  align-items: flex-start;
  gap: var(--s-2, 8px);
}
qdnapro-modal.pg-lightbox .pg-comment-avatar {
  flex-shrink: 0;
  margin-top: 2px;
}
qdnapro-modal.pg-lightbox .pg-comment-body {
  flex: 1 1 auto;
  min-width: 0;
}
qdnapro-modal.pg-lightbox .pg-comment-head {
  display: flex;
  align-items: baseline;
  gap: var(--s-2, 8px);
}
qdnapro-modal.pg-lightbox .pg-comment-author {
  font-weight: 600;
  font-size: 13px;
  color: var(--c-text-heading, #1a1f4d);
}
qdnapro-modal.pg-lightbox .pg-comment-date {
  font-size: 11px;
  color: var(--c-text-muted, #6b7280);
}
qdnapro-modal.pg-lightbox .pg-lb-comment-delete {
  margin-left: auto;
}
qdnapro-modal.pg-lightbox .pg-comment-message {
  font-size: 13px;
  color: var(--c-text-body, #333a4d);
  white-space: pre-wrap;
  word-break: break-word;
}
qdnapro-modal.pg-lightbox .pg-lb-comments-compose {
  display: flex;
  align-items: flex-end;
  gap: var(--s-2, 8px);
}
qdnapro-modal.pg-lightbox .pg-lb-comment-input {
  flex: 1 1 auto;
  min-width: 0;
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .modal-backdrop {
  padding: 0;
  background: var(--c-grey-950);
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .modal-dialog {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  border-radius: 0;
  border: none;
  padding: 0;
  background: var(--c-grey-950);
  box-shadow: none;
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .modal-window {
  border-radius: 0;
  border: none;
  background: var(--c-grey-950);
  box-shadow: none;
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-viewport {
  background: var(--c-grey-950);
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .modal-title {
  color: var(--c-grey-50);
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-meta, qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-position {
  color: var(--c-grey-50);
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-meta, qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-classify-row, qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-comments-panel {
  border-top-color: rgba(255, 255, 255, 0.14);
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-fase2-slot {
  border-left-color: rgba(255, 255, 255, 0.14);
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-actions qdnapro-icon-btn {
  color: #ffffff;
}
qdnapro-modal.pg-lightbox.pg-lb-fullscreen-on .pg-lb-actions qdnapro-icon-btn:hover {
  background: rgba(255, 255, 255, 0.16);
}

qdnapro-modal.pg-classify-picker .pg-classify-list {
  display: flex;
  flex-direction: column;
  max-height: 44vh;
  overflow-y: auto;
}
qdnapro-modal.pg-classify-picker .pg-classify-check-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 4px;
  border-bottom: 1px solid var(--c-bg-subtle-purple);
  cursor: pointer;
}
qdnapro-modal.pg-classify-picker .pg-classify-check-row:last-child {
  border-bottom: none;
}
qdnapro-modal.pg-classify-picker .pg-classify-check-row input[type=checkbox] {
  width: 16px;
  height: 16px;
  cursor: pointer;
  accent-color: var(--c-brand-purple, #40499a);
}
qdnapro-modal.pg-classify-picker .pg-classify-empty {
  margin: 0;
  color: var(--c-text-muted, #6b7280);
  font-size: 13px;
}

/* ============================================================
   qdnapro-photo-tile compiled CSS
   Extracted from qdna-modal-preview.html (Kim 2026-05-29) so the
   bundle ships photo-tile styling. Keep in lockstep with the
   inline copy in qdna-photo-tile-preview.html / qdna-modal-preview.html.
   ============================================================ */
.qdnapro-photo-tile {
  --c-tile-radius: 8px;
  --c-tile-ring-radius: 12px;
  --c-tile-ring: var(--c-action-500);
  --c-tile-overlay: rgba(107, 114, 128, 0.30);
  --c-focus-ring: var(--c-purple-500);
  --c-focus-glow: rgba(70, 82, 243, 0.25);
  position: relative;
  display: inline-block;
  box-sizing: border-box;
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  border-radius: var(--c-tile-radius);
  overflow: visible;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: transform 120ms cubic-bezier(0.4, 0, 0.2, 1);
}

.qdnapro-photo-tile .photo-tile-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--c-tile-radius);
  -webkit-user-drag: none;
  pointer-events: none;
  /* Same desaturate treatment as .project-card-photo so tiles
     match the rest of the UI's photo aesthetic (Kim 2026-05-29). */
  filter: saturate(0.45) brightness(0.9);
}

/* Dark gradient overlay along the bottom of the tile — matches the
   `.project-card-photo::after` rule so tile + card share one visual
   language. Painted as an empty <span> sibling so it doesn't conflict
   with the tile's own ::before (hover overlay) and ::after (ring).
   (Kim 2026-05-29) */
.qdnapro-photo-tile .photo-tile-gradient {
  position: absolute;
  inset: 0;
  border-radius: var(--c-tile-radius);
  background: linear-gradient(to bottom, rgba(22, 25, 75, 0) 0%, rgba(22, 25, 75, 0.25) 50%, rgba(22, 25, 75, 0.78) 100%);
  pointer-events: none;
}

.qdnapro-photo-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--c-tile-radius);
  background: var(--c-tile-overlay);
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms ease;
}

.qdnapro-photo-tile:hover:not(.photo-tile-disabled)::before {
  opacity: 1;
}

.qdnapro-photo-tile::after {
  content: "";
  position: absolute;
  inset: -3px;
  border: 1px solid transparent;
  border-radius: var(--c-tile-ring-radius);
  pointer-events: none;
  transition: border-color 160ms ease;
}

.qdnapro-photo-tile.photo-tile-selected::after {
  border-color: var(--c-tile-ring);
}

/* Selected tiles also get the focus-glow box-shadow so the selection
   is visually unmistakable — without the glow the 1px ring is easy
   to miss against busy photos. (Kim 2026-05-29) */
.qdnapro-photo-tile.photo-tile-selected {
  box-shadow: 0 0 0 2px var(--c-focus-ring), 0 0 0 6px var(--c-focus-glow);
}

.qdnapro-photo-tile:active:not(.photo-tile-disabled) {
  transform: scale(0.97);
}

.qdnapro-photo-tile:active:not(.photo-tile-disabled)::before {
  opacity: 1;
  background: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15)), var(--c-tile-overlay);
}

.qdnapro-photo-tile:focus {
  outline: none;
}

.qdnapro-photo-tile:focus-visible,
.qdnapro-photo-tile.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-focus-ring), 0 0 0 6px var(--c-focus-glow);
}

.qdnapro-photo-tile.photo-tile-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-photo-tile.photo-tile-small {
  width: 87px;
  height: 65px;
}

[data-theme=dark] .qdnapro-photo-tile {
  --c-tile-ring: #a5acff;
  --c-tile-overlay: rgba(0, 0, 0, 0.40);
  --c-focus-ring: #a5acff;
  --c-focus-glow: rgba(70, 82, 243, 0.40);
}

.qdnapro-picker-tile {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: left;
  padding: 0;
  border: 1px solid var(--c-border-soft-2);
  border-radius: 12px;
  background: var(--c-bg-card);
  cursor: pointer;
  font-family: inherit;
  color: var(--c-grey-950);
  overflow: hidden;
  transition: border-color 120ms ease, box-shadow 200ms ease, transform 200ms cubic-bezier(0.4, 0, 0.2, 1), background-color 120ms ease;
}

.qdnapro-picker-tile:hover {
  border-color: var(--c-purple-500);
  box-shadow: 0 1px 2px rgba(20, 25, 80, 0.04), 0 8px 18px rgba(20, 25, 80, 0.08);
  transform: translateY(-2px);
}

.qdnapro-picker-tile:focus {
  outline: none;
}

.qdnapro-picker-tile:focus-visible {
  border-color: var(--c-purple-500);
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-picker-tile.picker-tile-selected {
  border-color: var(--c-purple-500);
  background: var(--c-bg-subtle-purple);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.18), 0 4px 14px rgba(20, 25, 80, 0.1);
}

.qdnapro-picker-tile.picker-tile-selected .picker-tile-title {
  color: var(--c-purple-500);
}

.qdnapro-picker-tile.picker-tile-disabled {
  opacity: 0.5;
  pointer-events: none;
  cursor: not-allowed;
}

.qdnapro-picker-tile .picker-tile-thumb {
  height: 110px;
  background: linear-gradient(135deg, var(--c-bg-card-hover) 0%, var(--c-bg-subtle-purple) 100%);
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  padding: 12px;
  position: relative;
  overflow: hidden;
}

.qdnapro-picker-tile .picker-tile-body {
  padding: 12px 14px 14px;
}

.qdnapro-picker-tile .picker-tile-title {
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  color: var(--c-text-heading);
  margin: 0 0 2px;
}

.qdnapro-picker-tile .picker-tile-desc {
  font-size: 12px;
  line-height: 18px;
  color: var(--c-grey-500);
  margin: 0;
}

.qdnapro-picker-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

@media (max-width: 720px) {
  .qdnapro-picker-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 480px) {
  .qdnapro-picker-grid {
    grid-template-columns: 1fr;
  }
}
[data-theme=dark] .qdnapro-picker-tile {
  background: #2a2d36;
  border-color: rgba(255, 255, 255, 0.08);
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-picker-tile:hover {
  border-color: #a5acff;
}

[data-theme=dark] .qdnapro-picker-tile.picker-tile-selected {
  background: rgba(165, 172, 255, 0.1);
  border-color: #a5acff;
}

[data-theme=dark] .qdnapro-picker-tile.picker-tile-selected .picker-tile-title {
  color: #a5acff;
}

[data-theme=dark] .qdnapro-picker-tile .picker-tile-thumb {
  background: linear-gradient(135deg, #2e323d 0%, #2a2d36 100%);
}

[data-theme=dark] .qdnapro-picker-tile .picker-tile-title {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-picker-tile .picker-tile-desc {
  color: #a6aab3;
}

qdnapro-picker-row {
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
  box-sizing: border-box;
  overflow: hidden;
  padding: 6px 8px 6px 10px;
  border-radius: 8px;
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
  user-select: none;
  outline: none;
  min-height: 40px;
  transition: background 150ms ease, border-color 150ms ease;
  --pr-focus-ring: var(--c-purple-500);
  --pr-focus-glow: rgba(70, 82, 243, 0.25);
}

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

qdnapro-picker-row.pr-has-meta {
  min-height: 48px;
}

qdnapro-picker-row:hover,
qdnapro-picker-row.force-hover {
  background: var(--c-bg-card-hover);
}

qdnapro-picker-row:focus-within {
  background: var(--c-bg-card-hover);
}

qdnapro-picker-row:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--pr-focus-ring), 0 0 0 5px var(--pr-focus-glow);
}

qdnapro-picker-row[draggable=true] {
  cursor: grab;
}

qdnapro-picker-row.is-dragging {
  opacity: 0.5;
  cursor: grabbing;
}

.pr-accent-bar {
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 24px;
  background: var(--c-action-500);
  border-radius: 2px;
  opacity: 0;
  transition: opacity 150ms ease;
  pointer-events: none;
  z-index: 1;
}

qdnapro-picker-row:hover .pr-accent-bar,
qdnapro-picker-row:focus-within .pr-accent-bar,
qdnapro-picker-row.force-hover .pr-accent-bar {
  opacity: 1;
}

.pr-leading {
  position: relative;
  width: 28px;
  height: 28px;
  flex: none;
}

.pr-visual {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  transition: opacity 150ms ease;
}

.pr-visual qdnapro-avatar {
  flex: none;
}

.pr-options-btn {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 150ms ease;
}

qdnapro-picker-row:hover .pr-visual,
qdnapro-picker-row:focus-within .pr-visual,
qdnapro-picker-row.force-hover .pr-visual {
  opacity: 0;
}

qdnapro-picker-row:hover .pr-options-btn,
qdnapro-picker-row:focus-within .pr-options-btn,
qdnapro-picker-row.force-hover .pr-options-btn {
  opacity: 1;
  pointer-events: auto;
}

.pr-tile {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--pr-tile-bg, #eef0f2);
}

.pr-tile-color-grey {
  --pr-tile-bg: var(--c-grey-50);
}

.pr-tile-color-red {
  --pr-tile-bg: var(--c-signal-red-bg);
}

.pr-tile-color-yellow {
  --pr-tile-bg: var(--c-chip-yellow-bg);
}

.pr-tile-color-green {
  --pr-tile-bg: var(--c-chip-green-bg);
}

.pr-tile-color-blue {
  --pr-tile-bg: var(--c-signal-blue-bg);
}

.pr-tile-color-bright-blue {
  --pr-tile-bg: var(--c-chip-bright-blue-2-bg);
}

.pr-tile-color-pink {
  --pr-tile-bg: var(--c-signal-pink-bg);
}

.pr-tile-color-purple {
  --pr-tile-bg: var(--c-chip-purple-bg);
}

[data-theme=dark] .pr-tile-color-grey {
  --pr-tile-bg: #40444d;
}

[data-theme=dark] .pr-tile-color-red {
  --pr-tile-bg: #5a2b2b;
}

[data-theme=dark] .pr-tile-color-yellow {
  --pr-tile-bg: #5a4d1f;
}

[data-theme=dark] .pr-tile-color-green {
  --pr-tile-bg: #2a5544;
}

[data-theme=dark] .pr-tile-color-blue {
  --pr-tile-bg: #2e3e54;
}

[data-theme=dark] .pr-tile-color-bright-blue {
  --pr-tile-bg: #3a4a8a;
}

[data-theme=dark] .pr-tile-color-pink {
  --pr-tile-bg: #4e2a36;
}

[data-theme=dark] .pr-tile-color-purple {
  --pr-tile-bg: #3a3555;
}

.pr-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1px;
}

.pr-label {
  font-size: 13.5px;
  font-weight: 500;
  color: var(--c-text-heading);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
}

.pr-meta {
  font-size: 11.5px;
  color: var(--c-text-disabled);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
}

@media (prefers-reduced-motion: reduce) {
  .pr-accent-bar,
  .pr-visual,
  .pr-options-btn,
  qdnapro-picker-row {
    transition: none !important;
  }
}
[data-theme=dark] qdnapro-picker-row {
  --pr-focus-ring: #a5acff;
  --pr-focus-glow: rgba(70, 82, 243, 0.40);
}

[data-theme=dark] qdnapro-picker-row:hover,
[data-theme=dark] qdnapro-picker-row:focus-within,
[data-theme=dark] qdnapro-picker-row.force-hover {
  background: rgba(255, 255, 255, 0.06);
}

[data-theme=dark] .pr-label {
  color: #f0f1f2;
}

[data-theme=dark] .pr-meta {
  color: #a0a4b8;
}

/* qdnapro-placeholder-image — host + img styling.
   Mirrors the qdnapro-illustration approach: width-driven with auto height,
   plus an optional cover mode and a soft missing-asset fallback. */
.qdnapro-placeholder-image {
  display: inline-block;
  line-height: 0;
  border-radius: 12px;
  overflow: hidden;
  background: var(--c-grey-50);
}

.qdnapro-placeholder-image .placeholder-image-img {
  display: block;
  width: 100%;
  height: auto;
}

/* Cover mode: consumer sets width + height on the host, image fills it. */
.qdnapro-placeholder-image.placeholder-image-cover {
  line-height: 0;
}

.qdnapro-placeholder-image.placeholder-image-cover .placeholder-image-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Missing asset: soft dashed placeholder instead of a broken-image icon. */
.qdnapro-placeholder-image.placeholder-image-missing {
  position: relative;
  min-height: 80px;
  border: 1px dashed var(--c-grey-300);
  background: repeating-linear-gradient(45deg, var(--c-bg-card-hover), var(--c-bg-card-hover) 8px, var(--c-border-soft-2) 8px, var(--c-border-soft-2) 16px);
}

.qdnapro-progress {
  display: block;
  box-sizing: border-box;
  width: 100%;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  --pg-fill: var(--c-success-bright);
  --pg-track: var(--c-black-12);
}

.qdnapro-progress.progress-tone-purple {
  --pg-fill: var(--c-brand-purple);
}

.qdnapro-progress.progress-tone-neutral {
  --pg-fill: var(--c-grey-500);
}

.qdnapro-progress.progress-tone-highlight {
  --pg-fill: var(--c-purple-highlight);
}

.qdnapro-progress.progress-tone-mint {
  --pg-fill: #6bbdb8;
}

.qdnapro-progress.progress-tone-rose {
  --pg-fill: #e05780;
}

.qdnapro-progress.progress-tone-gold {
  --pg-fill: #e3a11c;
}

.qdnapro-progress.progress-tone-orange {
  --pg-fill: #f27b1d;
}

.qdnapro-progress .progress-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 6px;
}

.qdnapro-progress .progress-label {
  font-size: 13px;
  color: var(--c-text-muted);
}

.qdnapro-progress .progress-pct {
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-body);
}

.qdnapro-progress .progress-track {
  height: 6px;
  background: var(--pg-track);
  border-radius: var(--r-pill);
  overflow: hidden;
}

.qdnapro-progress .progress-fill {
  height: 100%;
  background: var(--pg-fill);
  border-radius: var(--r-pill);
  transition: width 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
  position: relative;
  overflow: hidden;
}
.qdnapro-progress .progress-fill::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.38) 50%, transparent 100%);
  animation: progress-shimmer 2.4s ease-in-out infinite;
}

@keyframes progress-shimmer {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-progress .progress-fill {
    transition: none;
  }
  .qdnapro-progress .progress-fill::after {
    animation: none;
  }
}
.qdnapro-progress.progress-indeterminate .progress-fill {
  width: 40% !important;
  transition: none;
  animation: progress-indeterminate-slide 1.2s ease-in-out infinite;
}

@keyframes progress-indeterminate-slide {
  0% {
    transform: translateX(-120%);
  }
  100% {
    transform: translateX(320%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-progress.progress-indeterminate .progress-fill {
    animation: none;
    transform: none;
    width: 50% !important;
    opacity: 0.5;
  }
  .qdnapro-progress.progress-indeterminate .progress-fill::after {
    animation: none;
  }
}
.qdnapro-progress.progress-variant-highlight {
  padding: 12px 14px;
  border-radius: var(--r-card);
  background: var(--c-black-06);
}

.qdnapro-progress.progress-variant-highlight.progress-tone-success {
  background: var(--c-signal-green-bg);
}

.qdnapro-progress.progress-variant-highlight.progress-tone-purple {
  background: var(--c-bg-secondary-purple);
}

.qdnapro-progress.progress-variant-highlight.progress-tone-neutral {
  background: var(--c-black-06);
}

.qdnapro-progress.progress-variant-highlight.progress-tone-highlight {
  background: var(--c-action-08);
}

.qdnapro-progress.progress-variant-highlight .progress-track {
  height: 8px;
}

.qdnapro-progress.progress-variant-highlight .progress-label {
  font-weight: 600;
  color: var(--c-text-body);
}

.qdnapro-progress.progress-variant-highlight .progress-pct {
  font-size: 15px;
}

.qdnapro-project-card {
  /* Height of the photo, as ONE value the photo badge can also read. Declared
     on the HOST and not on .project-card-frame: the overlay variant overrides
     it on the host too, and a value set on the child would always beat an
     inherited one - the badge would then sit 27px above the overlay photo's
     real edge (measured 15.09.2026). */
  --pc-photo-h: calc(124px * var(--pc-scale));
  --c-card-bg: #ffffff;
  --c-card-border: var(--c-border-soft-2);
  --c-card-divider: var(--c-grey-300);
  --c-text-body: var(--c-grey-950);
  --c-text-secondary: var(--c-grey-500);
  --c-photo-fallback: linear-gradient(135deg, var(--c-border-tree-bright) 0%, var(--c-chip-purple-bg) 100%);
  /* Density scale knob: 1 = default; [density=compact] sets 0.8 so the
     whole absolute-positioned layout (sizes, positions, fonts) scales
     uniformly to the 80% look WITHOUT the zoom property. [Kim 2026-06-03] */
  --pc-scale: 1;
  display: block;
  box-sizing: border-box;
  width: 100%;
  background: var(--c-card-bg);
  border: calc(1px * var(--pc-scale)) solid var(--c-card-border);
  border-radius: calc(12px * var(--pc-scale));
  overflow: hidden;
  box-shadow: 0 calc(1px * var(--pc-scale)) calc(2px * var(--pc-scale)) rgba(20, 25, 80, 0.04), 0 calc(6px * var(--pc-scale)) calc(16px * var(--pc-scale)) rgba(20, 25, 80, 0.05);
  color: var(--c-text-body);
  font-family: "Inter", system-ui, sans-serif;
  transition: transform 140ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 140ms cubic-bezier(0.4, 0, 0.2, 1);
}

.qdnapro-project-card[data-mode=animated]:active {
  transform: scale(0.99);
  box-shadow: 0 calc(1px * var(--pc-scale)) calc(1px * var(--pc-scale)) rgba(20, 25, 80, 0.04), 0 calc(2px * var(--pc-scale)) calc(6px * var(--pc-scale)) rgba(20, 25, 80, 0.04);
}

/* ⚠️ `.project-card-menu[open]` MOET in deze uitzondering staan.
   Een open kaartmenu wordt uit de kaart getild met `position: fixed` (de kaart
   knipt zichzelf af met `overflow: hidden` hierboven). Een `transform` op een
   voorouder maakt die voorouder echter het referentiekader voor een `fixed`
   kind — dus zodra de kaart bij het INDRUKKEN van de muisknop `scale(0.99)`
   kreeg, sprong het open menu weg van onder de cursor (gemeten 10.08.2026:
   919px naar links, buiten het venster) en werd het ook nog geknipt. De
   `mouseup` landde daardoor op de kaartfoto in plaats van op het menu-item, de
   browser vuurde de klik op de KAART, en pagina's die de hele kaart klikbaar
   maken (Pulse) navigeerden weg in plaats van het menu-item uit te voeren.
   Effect: elk menu-item was met een echte muis onbruikbaar, terwijl een
   geautomatiseerde klik (indrukken+loslaten in één frame) wél werkte.
   De drie `:active`-uitzonderingen hieronder bestonden al om dezelfde reden;
   het open menu was simpelweg vergeten. */
.qdnapro-project-card[data-mode=animated]:active:has(.project-card-favorite:active,
.project-card-menu-trigger:active,
.project-card-action:active,
.project-card-menu[open]) {
  transform: none;
  box-shadow: 0 calc(1px * var(--pc-scale)) calc(2px * var(--pc-scale)) rgba(20, 25, 80, 0.04), 0 calc(6px * var(--pc-scale)) calc(16px * var(--pc-scale)) rgba(20, 25, 80, 0.05);
}

.qdnapro-project-card[data-mode=animated]:focus-visible {
  outline: none;
  box-shadow: 0 calc(1px * var(--pc-scale)) calc(2px * var(--pc-scale)) rgba(20, 25, 80, 0.04), 0 calc(6px * var(--pc-scale)) calc(16px * var(--pc-scale)) rgba(20, 25, 80, 0.05), 0 0 0 calc(4px * var(--pc-scale)) rgba(70, 82, 243, 0.25);
}

.qdnapro-project-card .project-card-frame {
  position: relative;
  min-height: calc(208px * var(--pc-scale));
}

.qdnapro-project-card .project-card-upper-clip {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: calc(50px * var(--pc-scale));
  overflow: hidden;
}

.qdnapro-project-card .project-card-photo {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: calc(124px * var(--pc-scale));
  background-size: cover;
  background-position: center;
  background-color: var(--c-border-tree-bright);
  z-index: 2;
  filter: saturate(0.45) brightness(0.9);
  transition: transform 600ms cubic-bezier(0.34, 1.05, 0.5, 1);
}

.qdnapro-project-card .project-card-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(22, 25, 75, 0) 0%, rgba(22, 25, 75, 0.25) 50%, rgba(22, 25, 75, 0.78) 100%);
  pointer-events: none;
}

.qdnapro-project-card .project-card-photo-placeholder {
  background-image: var(--c-photo-fallback);
}

.qdnapro-project-card .project-card-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: calc(44px * var(--pc-scale));
  padding: calc(8px * var(--pc-scale)) calc(44px * var(--pc-scale)) 0 calc(8px * var(--pc-scale));
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  z-index: 1;
}

.qdnapro-project-card .project-card-logo {
  border-radius: calc(4px * var(--pc-scale)) !important;
}

.qdnapro-project-card .project-card-header-actions {
  display: inline-flex;
  align-items: center;
  gap: calc(4px * var(--pc-scale));
}

.qdnapro-project-card .project-card-name {
  position: absolute;
  top: calc(132px * var(--pc-scale));
  left: 0;
  right: calc(56px * var(--pc-scale));
  margin: 0;
  padding: 0 calc(8px * var(--pc-scale));
  font-size: calc(16px * var(--pc-scale));
  line-height: calc(24px * var(--pc-scale));
  font-weight: 600;
  color: var(--c-text-body);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  z-index: 3;
  will-change: transform;
  transition: transform 600ms cubic-bezier(0.34, 1.05, 0.5, 1), right 600ms cubic-bezier(0.34, 1.05, 0.5, 1);
}

.qdnapro-project-card .project-card-org {
  position: absolute;
  top: calc(160px * var(--pc-scale));
  left: 0;
  right: 0;
  margin: 0;
  padding: 0 calc(8px * var(--pc-scale));
  font-size: calc(12px * var(--pc-scale));
  line-height: calc(20px * var(--pc-scale));
  font-weight: 400;
  color: var(--c-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  z-index: 1;
  will-change: transform;
  transition: transform 600ms cubic-bezier(0.34, 1.05, 0.5, 1);
}

.qdnapro-project-card .project-card-info {
  position: absolute;
  top: calc(184px * var(--pc-scale));
  left: 0;
  right: 0;
  height: calc(28px * var(--pc-scale));
  padding: 0 calc(8px * var(--pc-scale));
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 1;
  will-change: transform;
  transition: transform 600ms cubic-bezier(0.34, 1.05, 0.5, 1);
}

.qdnapro-project-card .project-card-team {
  display: inline-flex;
  align-items: center;
}

.qdnapro-project-card .project-card-date {
  display: inline-flex;
  align-items: center;
  gap: calc(4px * var(--pc-scale));
  color: var(--c-text-secondary);
  font-size: calc(10px * var(--pc-scale));
  line-height: calc(20px * var(--pc-scale));
}

.qdnapro-project-card .project-card-date qdnapro-icon {
  color: currentColor;
}

.qdnapro-project-card .project-card-top-actions {
  position: absolute;
  top: calc(8px * var(--pc-scale));
  right: calc(8px * var(--pc-scale));
  z-index: 4;
  display: inline-flex;
  align-items: center;
}

.qdnapro-project-card .project-card-favorite {
  flex: 0 0 auto;
  width: calc(32px * var(--pc-scale));
  height: calc(32px * var(--pc-scale));
  background-color: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(calc(8px * var(--pc-scale))) saturate(1.5);
  -webkit-backdrop-filter: blur(calc(8px * var(--pc-scale))) saturate(1.5);
  box-shadow: 0 calc(1px * var(--pc-scale)) calc(3px * var(--pc-scale)) rgba(0, 0, 0, 0.08), 0 0 0 calc(1px * var(--pc-scale)) rgba(0, 0, 0, 0.04);
  transition: opacity 200ms ease, background-color 160ms ease;
}

.qdnapro-project-card .project-card-favorite:not(.favorite-button-favorited) {
  opacity: 0;
  pointer-events: none;
}

.qdnapro-project-card:hover .project-card-favorite:not(.favorite-button-favorited), .qdnapro-project-card:focus-within .project-card-favorite:not(.favorite-button-favorited) {
  opacity: 1;
  pointer-events: auto;
}

.qdnapro-project-card .project-card-favorite:hover {
  background-color: rgba(255, 255, 255, 0.75);
}

.qdnapro-project-card .project-card-menu-trigger {
  flex: 0 0 auto;
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0;
  height: calc(32px * var(--pc-scale)) !important;
  min-height: calc(32px * var(--pc-scale)) !important;
  max-height: calc(32px * var(--pc-scale)) !important;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  margin-left: 0;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transition: max-width 200ms cubic-bezier(0.4, 0, 0.2, 1), width 200ms cubic-bezier(0.4, 0, 0.2, 1), min-width 200ms cubic-bezier(0.4, 0, 0.2, 1), margin-left 200ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms ease, background 120ms ease;
}

.qdnapro-project-card:hover .project-card-menu-trigger, .qdnapro-project-card:focus-within .project-card-menu-trigger {
  width: calc(32px * var(--pc-scale)) !important;
  min-width: calc(32px * var(--pc-scale)) !important;
  max-width: calc(32px * var(--pc-scale));
  opacity: 1;
  pointer-events: auto;
  margin-left: calc(8px * var(--pc-scale));
  background: rgba(255, 255, 255, 0.55) !important;
  backdrop-filter: blur(calc(8px * var(--pc-scale))) saturate(1.5);
  -webkit-backdrop-filter: blur(calc(8px * var(--pc-scale))) saturate(1.5);
  box-shadow: 0 calc(1px * var(--pc-scale)) calc(3px * var(--pc-scale)) rgba(0, 0, 0, 0.08), 0 0 0 calc(1px * var(--pc-scale)) rgba(0, 0, 0, 0.04);
}

.qdnapro-project-card:hover .project-card-menu-trigger:hover, .qdnapro-project-card:focus-within .project-card-menu-trigger:hover {
  background: rgba(255, 255, 255, 0.75) !important;
}

.qdnapro-project-card .project-card-divider {
  position: absolute;
  bottom: calc(50px * var(--pc-scale));
  left: 0;
  right: 0;
  height: calc(1px * var(--pc-scale));
  background: var(--c-card-divider);
  z-index: 4;
}

/* Checklist action — hidden until the backend feature lands.
   (Kim 2026-05-30 — placeholder, re-enable when the page exists.) */
.qdnapro-project-card .project-card-action-list {
  display: none !important;
}

/* ============================================================
   Archived variant — set via [archived] attribute on the host.
   Photo is heavily desaturated, pin-button is hidden, a
   "Gearchiveerd" chip sits top-left, and a diagonal GEARCHIVEERD
   watermark crosses the photo. (Kim 2026-05-29)
   ============================================================ */
.qdnapro-project-card[archived] {
  opacity: 0.85;
}

.qdnapro-project-card[archived] .project-card-photo {
  filter: saturate(0.15) brightness(0.85);
}

.qdnapro-project-card[archived] .project-card-favorite {
  display: none !important;
}

/* Status pill (slot="status") — top-left on the photo, above the photo (z=2)
   and out of the way of the pin + hover menu, which own the top-RIGHT corner.
   The pill itself is a qdnapro-tag variant="glass" handed in by the consumer;
   this rule only places it. NB that variant is WHITE glass, while the archived
   chip below is dark: they started as the same recipe and were split on
   19.08.2026 because dark read too heavy on a Pulse tile. Scale-aware like everything else in the card, so it
   shrinks along at density="compact". [19.08.2026]
   Note it sits INSIDE the upper clip, so in the `compact` animation (where the
   photo slides up out of view on hover) the pill stays put and ends up over the
   revealed back layer — same behaviour as the archived chip below. In `overlay`
   (what Pulse uses) the photo does not move, so it stays on the photo. */
.qdnapro-project-card .project-card-status {
  position: absolute;
  top: calc(8px * var(--pc-scale));
  left: calc(8px * var(--pc-scale));
  z-index: 4;
  pointer-events: none;
}

/* NAME: `project-card-photo-badge`, not `project-card-badge` - that one is
   taken by the small red notification dot on the bell button further down.
   Reusing it made this badge inherit an 8px red dot (measured 15.09.2026).

   Round badge straddling the photo's bottom edge, bottom-left - the shape the
   Pulse campaign tile uses in the PWA (Kim, 15.09.2026). White disc with a ring
   in the card's own background colour, so it reads as a cut-out of the photo
   rather than a sticker on top of it. z-index 4 puts it above the photo (2) and
   the archived layers (3), level with the status pill it never overlaps (that
   one sits top-left). */
.qdnapro-project-card .project-card-photo-badge {
  position: absolute;
  right: calc(12px * var(--pc-scale));
  top: var(--pc-photo-h, calc(124px * var(--pc-scale)));
  transform: translateY(-50%);
  /* 5, niet 4: de voetrij en de scheidingslijn staan OOK op 4 en komen later
     in de DOM, dus bij gelijke z-index wonnen zij en werd de onderste helft
     van de badge afgedekt (Kim, 16.09.2026: "hij valt achter de witte footer").
     6 is bezet door het openklap-menu, dat boven alles hoort te blijven. */
  z-index: 5;
  width: calc(46px * var(--pc-scale));
  height: calc(46px * var(--pc-scale));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-bg-card);
  border: calc(3px * var(--pc-scale)) solid var(--c-bg-card);
  box-shadow: 0 calc(2px * var(--pc-scale)) calc(8px * var(--pc-scale)) rgba(20, 25, 80, 0.18);
  pointer-events: none;
  box-sizing: border-box;
}

/* De titel houdt afstand zolang er een fotobadge is: de badge staat rechts
   (Kim, 16.09.2026) en loopt tot 58px vanaf de rechterrand, terwijl de titel
   standaard tot 56px doorloopt - zonder dit schuift de ellipsis onder de
   badge. Alleen als de kaart de badge echt draagt, dus een kaart zonder
   `badge-src` verschuift nergens. */
.qdnapro-project-card:has(.project-card-photo-badge) .project-card-name {
  right: calc(66px * var(--pc-scale));
}

/* Bij compact vertrekt de badge met de foto op hover; dan mag de titel zijn
   volle breedte weer gebruiken. */
.qdnapro-project-card[data-mode=animated][data-animation=compact]:hover:has(.project-card-photo-badge) .project-card-name,
.qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within:has(.project-card-photo-badge) .project-card-name {
  right: calc(56px * var(--pc-scale));
}

.qdnapro-project-card .project-card-photo-badge img {
  width: calc(30px * var(--pc-scale));
  height: calc(30px * var(--pc-scale));
  display: block;
}

/* The compact variant slides its photo out of the clip on hover; a badge that
   stayed put would end up floating over the back-side text. It leaves with the
   photo. The overlay variant only zooms its photo, so there the badge simply
   stays where it is. */
.qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-photo-badge,
.qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-photo-badge {
  opacity: 0;
  transform: translateY(calc(-50% - 78px * var(--pc-scale)));
}

.qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-photo-badge {
  transition: transform 600ms cubic-bezier(0.34, 1.05, 0.5, 1), opacity 240ms ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-photo-badge {
    transition: none;
  }
}
.qdnapro-project-card .project-card-archived-chip {
  position: absolute;
  top: calc(8px * var(--pc-scale));
  left: calc(8px * var(--pc-scale));
  z-index: 4;
  display: inline-flex;
  align-items: center;
  gap: calc(4px * var(--pc-scale));
  padding: calc(4px * var(--pc-scale)) calc(9px * var(--pc-scale)) calc(4px * var(--pc-scale)) calc(7px * var(--pc-scale));
  background: rgba(40, 42, 52, 0.72);
  border: calc(1px * var(--pc-scale)) solid rgba(255, 255, 255, 0.2);
  border-radius: calc(999px * var(--pc-scale));
  backdrop-filter: blur(calc(8px * var(--pc-scale))) saturate(1.2);
  -webkit-backdrop-filter: blur(calc(8px * var(--pc-scale))) saturate(1.2);
  color: var(--c-text-on-action);
  font-size: calc(11px * var(--pc-scale));
  font-weight: 500;
  line-height: calc(14px * var(--pc-scale));
  letter-spacing: calc(0.2px * var(--pc-scale));
  pointer-events: none;
}

.qdnapro-project-card .project-card-archived-chip qdnapro-icon {
  color: var(--c-text-on-action);
  flex: 0 0 auto;
}

.qdnapro-project-card .project-card-watermark {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 3;
  transform: translate(-50%, -50%) rotate(-18deg);
  pointer-events: none;
  white-space: nowrap;
  font-size: calc(22px * var(--pc-scale));
  font-weight: 800;
  letter-spacing: calc(4px * var(--pc-scale));
  color: rgba(255, 255, 255, 0.55);
  text-shadow: 0 calc(2px * var(--pc-scale)) calc(6px * var(--pc-scale)) rgba(0, 0, 0, 0.45), 0 0 calc(1px * var(--pc-scale)) rgba(0, 0, 0, 0.6);
  text-transform: uppercase;
}

/* Slot="menu" qdnapro-menu — sits as a floating popover anchored
   to the 3-dots trigger. Hidden by default; the menu's `open`
   attribute (toggled by qdnapro-project-card._toggleMenu) reveals
   it. (Kim 2026-05-29) */
.qdnapro-project-card .project-card-menu {
  position: absolute;
  top: calc(48px * var(--pc-scale));
  right: calc(8px * var(--pc-scale));
  z-index: 6;
  display: none;
}

.qdnapro-project-card .project-card-menu[open] {
  display: inline-flex;
}

.qdnapro-project-card .project-card-actions {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: calc(50px * var(--pc-scale));
  padding: calc(4px * var(--pc-scale)) calc(8px * var(--pc-scale)) calc(8px * var(--pc-scale));
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 4;
  background: var(--c-card-bg);
}

.qdnapro-project-card .project-card-actions-left {
  display: inline-flex;
  align-items: center;
  gap: calc(8px * var(--pc-scale));
}

.qdnapro-project-card .project-card-action-date {
  display: inline-flex;
  align-items: center;
  gap: calc(4px * var(--pc-scale));
  color: var(--c-text-secondary);
  font-size: calc(12px * var(--pc-scale));
  line-height: calc(20px * var(--pc-scale));
  white-space: nowrap;
}

.qdnapro-project-card .project-card-action-date qdnapro-icon {
  color: currentColor;
}

.qdnapro-project-card .project-card-action-comments,
.qdnapro-project-card .project-card-action-bell {
  position: relative;
}

/* Non-interactive action indicators (Kim 2026-06-02): the lightbulb (task
   count) + bell have no behaviour yet, so they read as static info — no
   hover highlight, no hand-cursor — until interaction is built. Paired with
   tabindex -1 + a click guard in JS so they are neither focusable nor
   clickable. !important beats the qdnapro-button :hover/cursor rules. */
.qdnapro-project-card .project-card-action-static {
  cursor: default !important;
}

.qdnapro-project-card .project-card-action-static:hover,
.qdnapro-project-card .project-card-action-static:active {
  background: transparent !important;
}

.qdnapro-project-card .project-card-badge {
  position: absolute;
  top: calc(8px * var(--pc-scale));
  right: calc(6px * var(--pc-scale));
  width: calc(8px * var(--pc-scale));
  height: calc(8px * var(--pc-scale));
  border-radius: 50%;
  background: var(--c-warn-red-500);
  pointer-events: none;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact] {
  cursor: pointer;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-header {
  display: none;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-photo {
  transform: translateY(0) scale(1);
  transition: transform 600ms cubic-bezier(0.34, 1.05, 0.5, 1) 300ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-name {
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1), right 420ms cubic-bezier(0.34, 1.05, 0.5, 1);
  transition-delay: 120ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-org {
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
  transition-delay: 60ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-info {
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
  transition-delay: 0ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-photo, .qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-photo {
  transform: translateY(calc(-78px * var(--pc-scale))) scale(1.15);
  transition-delay: 200ms;
  pointer-events: none;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-name, .qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-name {
  transform: translateY(calc(-62px * var(--pc-scale)));
  right: 0;
  transition-delay: 400ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-org, .qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-org {
  transform: translateY(calc(-62px * var(--pc-scale)));
  transition-delay: 460ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-info, .qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-info {
  transform: translateY(calc(-62px * var(--pc-scale)));
  transition-delay: 520ms;
}

.qdnapro-project-card[data-mode=static-front] .project-card-name {
  transition: none;
}

.qdnapro-project-card[data-mode=static-back] .project-card-name {
  transform: translateY(calc(-88px * var(--pc-scale)));
  transition: none;
  right: 0;
}

.qdnapro-project-card[data-mode=static-back] .project-card-org,
.qdnapro-project-card[data-mode=static-back] .project-card-info {
  transform: translateY(calc(-88px * var(--pc-scale)));
  transition: none;
}

/* ============================================================
   ANIMATION VARIANT: overlay (experiment, Kim 2026-05-29)
   ============================================================
   Rust state: photo extends down to the divider position (calc(158px * var(--pc-scale))
   instead of 124). Title sits in its idle position but white on
   the gradient. Keyline hidden.
   Hover: photo subtle zoom 1.06 (no translate). Title, org and
   date staggered translate up onto the photo. All three get a
   glass-pill background. Avatars stay free (no glass). */
.qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-header,
.qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-divider {
  display: none;
}

/* Photo: taller (down to keyline) + subtle zoom on hover. */
.qdnapro-project-card[data-mode=animated][data-animation=overlay] {
  --pc-photo-h: calc(158px * var(--pc-scale));
}

.qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-photo {
  height: calc(158px * var(--pc-scale));
  transform: scale(1);
  transition: transform 600ms cubic-bezier(0.34, 1.05, 0.5, 1);
}

.qdnapro-project-card[data-mode=animated][data-animation=overlay]:hover .project-card-photo,
.qdnapro-project-card[data-mode=animated][data-animation=overlay]:focus-within .project-card-photo {
  transform: scale(1.06);
}

/* Title: white in idle (already on photo gradient). On hover it
   also becomes a glass-pill. */
.qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-name {
  color: var(--c-text-on-action);
  text-shadow: 0 calc(1px * var(--pc-scale)) calc(3px * var(--pc-scale)) rgba(0, 0, 0, 0.5);
  z-index: 3;
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1), right 420ms cubic-bezier(0.34, 1.05, 0.5, 1);
  transition-delay: 120ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-org {
  color: var(--c-text-on-action);
  text-shadow: 0 calc(1px * var(--pc-scale)) calc(3px * var(--pc-scale)) rgba(0, 0, 0, 0.5);
  z-index: 3;
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
  transition-delay: 60ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-info {
  z-index: 3;
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
  transition-delay: 0ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-date {
  color: var(--c-text-on-action);
  text-shadow: 0 calc(1px * var(--pc-scale)) calc(3px * var(--pc-scale)) rgba(0, 0, 0, 0.5);
}

.qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-date qdnapro-icon {
  color: var(--c-text-on-action);
}

/* HOVER: stagger up + glass-pill backgrounds appear. */
.qdnapro-project-card[data-mode=animated][data-animation=overlay]:hover .project-card-name,
.qdnapro-project-card[data-mode=animated][data-animation=overlay]:focus-within .project-card-name {
  transform: translateY(calc(-62px * var(--pc-scale)));
  transition-delay: 400ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=overlay]:hover .project-card-org,
.qdnapro-project-card[data-mode=animated][data-animation=overlay]:focus-within .project-card-org {
  transform: translateY(calc(-62px * var(--pc-scale)));
  transition-delay: 460ms;
}

.qdnapro-project-card[data-mode=animated][data-animation=overlay]:hover .project-card-info,
.qdnapro-project-card[data-mode=animated][data-animation=overlay]:focus-within .project-card-info {
  transform: translateY(calc(-62px * var(--pc-scale)));
  transition-delay: 520ms;
}

@keyframes pc-compact-photo-in {
  0% {
    transform: translateY(0) scale(1);
  }
  25% {
    transform: translateY(0) scale(1.15);
  }
  100% {
    transform: translateY(-78px) scale(1.15);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-photo,
  .qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-name,
  .qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-org,
  .qdnapro-project-card[data-mode=animated][data-animation=compact] .project-card-info {
    transition: none;
    animation: none;
  }
  .qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-photo, .qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-photo {
    transform: translateY(calc(-124px * var(--pc-scale)));
    animation: none;
  }
  .qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-name, .qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-name {
    transform: translateY(calc(-88px * var(--pc-scale)));
  }
  .qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-org, .qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-org, .qdnapro-project-card[data-mode=animated][data-animation=compact]:hover .project-card-info, .qdnapro-project-card[data-mode=animated][data-animation=compact]:focus-within .project-card-info {
    transform: translateY(calc(-88px * var(--pc-scale)));
  }
  /* Overlay variant: drop the staggered easing, snap into place. */
  .qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-photo,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-name,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-org,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-info,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay] .project-card-date {
    transition: none;
    animation: none;
  }
  .qdnapro-project-card[data-mode=animated][data-animation=overlay]:hover .project-card-name,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay]:focus-within .project-card-name,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay]:hover .project-card-org,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay]:focus-within .project-card-org,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay]:hover .project-card-info,
  .qdnapro-project-card[data-mode=animated][data-animation=overlay]:focus-within .project-card-info {
    transform: translateY(calc(-62px * var(--pc-scale)));
  }
}
[data-theme=dark] .qdnapro-project-card {
  --c-card-bg: #2a2d36;
  --c-card-border: rgba(255, 255, 255, 0.08);
  --c-card-divider: rgba(255, 255, 255, 0.12);
  --c-text-body: #f0f1f2;
  --c-text-secondary: #a6aab3;
  --c-photo-fallback: linear-gradient(135deg, #2e323d 0%, #2a2d36 100%);
  box-shadow: 0 calc(1px * var(--pc-scale)) calc(2px * var(--pc-scale)) rgba(0, 0, 0, 0.3), 0 calc(6px * var(--pc-scale)) calc(16px * var(--pc-scale)) rgba(0, 0, 0, 0.2);
}

/* ============================================================
   Density: compact — uniform 0.8 scale of the whole card so it
   matches the legacy 80%-zoom look while the page renders at 100%.
   Non-breaking: cards without [density] keep --pc-scale:1. [Kim 2026-06-03]
   ============================================================ */
.qdnapro-project-card[density=compact] {
  --pc-scale: 0.8;
}

.qdnapro-pulse-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  box-sizing: border-box;
  padding: 16px;
  background: var(--c-bg-card, #ffffff);
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: 16px;
  box-shadow: var(--shadow-card, 0 1px 2px rgba(20, 25, 80, 0.04), 0 4px 16px rgba(20, 25, 80, 0.04));
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-pulse-flash,
.qdnapro-pulse-document,
.qdnapro-pulse-action,
.qdnapro-pulse-video,
.qdnapro-pulse-poll,
.qdnapro-pulse-question {
  display: contents;
}

.qdnapro-pulse-card[data-pulse-done="1"] {
  gap: 6px;
}

.qdnapro-pulse-card[data-pulse-done="1"] .pulse-card__title {
  font-size: 15px;
  font-weight: 600;
}

.qdnapro-pulse-card .pt-kop {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}

.qdnapro-pulse-card .pt-kop__tekst {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1 1 auto;
}

.qdnapro-pulse-card .pt-kop__campagne {
  justify-content: flex-start;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-muted, #6b7280);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-pulse-card .pt-kop__tijd {
  font-size: 12px;
  color: var(--c-text-muted, #6b7280);
}

.qdnapro-pulse-card .pt-kop__tags {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  flex-shrink: 1;
}

.qdnapro-pulse-card .pt-kop__tags qdnapro-tag[data-pulse-type-tag] {
  min-width: 0;
  flex-shrink: 1;
}

.qdnapro-pulse-card .pt-kop__tags qdnapro-tag[data-pulse-type-tag] .tag-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-pulse-card .pulse-card__title {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--c-text, #0b0b0d);
}

.qdnapro-pulse-card .pulse-card__body {
  font-size: 15px;
  line-height: 1.5;
  color: var(--c-text, #0b0b0d);
}

.qdnapro-pulse-card .pulse-card__body p {
  margin: 0 0 8px;
}

.qdnapro-pulse-card .pulse-card__body p:last-child {
  margin-bottom: 0;
}

.qdnapro-pulse-card .pulse-card__image {
  display: block;
  width: 100%;
  max-width: 100%;
  max-height: 320px;
  object-fit: contain;
  background: var(--c-bg-card, #ffffff);
  border-radius: 0;
}

.qdnapro-pulse-card .pulse-card__note {
  font-size: 13px;
  color: var(--c-text-muted, #6b7280);
}

.qdnapro-pulse-cta {
  position: relative;
  display: inline-flex;
  min-width: 220px;
  max-width: 100%;
  margin: 4px 0 12px;
  border-radius: 999px;
  overflow: hidden;
  isolation: isolate;
}

.qdnapro-pulse-cta qdnapro-button,
.qdnapro-pulse-cta .pulse-card__cta-btn {
  flex: 1 1 auto;
}

.qdnapro-pulse-cta::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -60%;
  width: 55%;
  pointer-events: none;
  background: linear-gradient(100deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.55) 50%, rgba(255, 255, 255, 0) 100%);
  transform: skewX(-18deg);
  animation: pulse-cta-shimmer 3.2s ease-in-out infinite;
}

.qdnapro-pulse-cta.pulse-card__cta--no-shimmer::after {
  animation: none;
  opacity: 0;
}

@keyframes pulse-cta-shimmer {
  0% {
    left: -60%;
  }
  45% {
    left: 115%;
  }
  100% {
    left: 115%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-pulse-cta::after {
    animation: none;
    opacity: 0;
  }
}
.qdnapro-pulse-card .pulse-doc {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--c-grey-50, #f7f7f9);
}

.qdnapro-pulse-card .pulse-doc qdnapro-icon {
  flex: 0 0 auto;
  color: var(--c-text-muted, #6b7280);
}

.qdnapro-pulse-card .pulse-doc__name {
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--c-text, #0b0b0d);
  overflow-wrap: anywhere;
}

.qdnapro-pulse-card.pulse-card--blocked .pulse-doc {
  opacity: 0.55;
}

.qdnapro-pulse-card .pulse-action {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.qdnapro-pulse-card .pulse-video {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  margin: 4px 0 12px;
  border-radius: 12px;
  overflow: hidden;
  background: #000;
}

@supports not (aspect-ratio: 16/9) {
  .qdnapro-pulse-card .pulse-video {
    height: 0;
    padding-bottom: 56.25%;
  }
}
.qdnapro-pulse-card .pulse-video__frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.qdnapro-pulse-card .pulse-card__options {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.qdnapro-pulse-question .pulse-card__options .qdnapro-answer-button.qdnapro-answer-button--green {
  background: var(--c-chip-green-bg, #e2faf1);
  color: var(--c-chip-green-text, #2f5d4a);
}

.qdnapro-pulse-question .pulse-card__options .qdnapro-answer-button.qdnapro-answer-button--green .qdnapro-answer-button__tick {
  opacity: 1;
  background: var(--c-success-bright, #1d9e75);
  border-color: var(--c-success-bright, #1d9e75);
  color: #fff;
}

.qdnapro-pulse-question .pulse-card__options .qdnapro-answer-button.qdnapro-answer-button--green .qdnapro-answer-button__check {
  stroke-dashoffset: 0;
}

.qdnapro-pulse-question .pulse-card__options .qdnapro-answer-button.qdnapro-answer-button--red {
  background: var(--c-chip-red-bg, #fee3e3);
  color: var(--c-chip-red-text, #633030);
}

.qdnapro-pulse-card .pulse-card__verdict {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
}

.qdnapro-pulse-card .pulse-card__verdict[data-verdict=correct] {
  color: var(--c-signal-green-text, #428b6e);
}

.qdnapro-pulse-card .pulse-card__verdict[data-verdict=incorrect] {
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-pulse-card .pulse-card__feedback {
  font-size: 14px;
  line-height: 1.5;
  color: var(--c-text-muted, #6b7280);
}

.qdnapro-pulse-card .pulse-card__dist {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 2px;
}

.qdnapro-pulse-card .pulse-card__queued {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 14px;
  line-height: 20px;
  color: #40499a;
}

.qdnapro-pulse-card .pulse-card__queued qdnapro-icon {
  flex-shrink: 0;
}

.qdnapro-pulse-card .pulse-poll {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.qdnapro-pulse-card .pulse-poll__option {
  position: relative;
  overflow: hidden;
  padding: 10px 12px;
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: var(--r-row, 12px);
  background: var(--c-chip-grey-bg, #f0f1f2);
  cursor: pointer;
  transition: border-color 120ms ease, transform 120ms ease;
}

.qdnapro-pulse-card .pulse-poll__option:not([aria-disabled=true]):hover,
.qdnapro-pulse-card .pulse-poll__option:not([aria-disabled=true]):focus-visible {
  border-color: var(--c-brand-purple, #40499a);
  outline: none;
}

.qdnapro-pulse-card .pulse-poll__option:not([aria-disabled=true]):active {
  transform: scale(0.99);
}

.qdnapro-pulse-card .pulse-poll__option[aria-disabled=true] {
  cursor: default;
  pointer-events: none;
}

.qdnapro-pulse-card .pulse-poll__option--mine {
  border-color: var(--c-brand-purple, #40499a);
}

.qdnapro-pulse-card .pulse-poll__row {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 8px;
}

.qdnapro-pulse-card .pulse-poll__tick {
  flex-shrink: 0;
  color: var(--c-brand-purple, #40499a);
}

.qdnapro-pulse-card .pulse-poll__label {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 15px;
  color: var(--c-text, #0b0b0d);
  overflow-wrap: anywhere;
}

.qdnapro-pulse-card .pulse-poll__option--mine .pulse-poll__label {
  font-weight: 600;
}

.qdnapro-pulse-card .pulse-poll__count {
  flex-shrink: 0;
  min-width: 1.5em;
  font-size: 14px;
  font-weight: 600;
  text-align: right;
  color: var(--c-text-muted, #6b7280);
}

.qdnapro-pulse-card .pulse-poll__option--mine .pulse-poll__count {
  color: var(--c-chip-purple-text, #413b5e);
}

.qdnapro-pulse-card .pulse-poll__option qdnapro-progress {
  margin-top: 8px;
}

.qdnapro-pulse-card .pt-footer {
  display: flex;
  align-items: center;
  gap: 16px;
}

.qdnapro-pulse-card .pt-footer__actions {
  display: flex;
  align-items: center;
}

.qdnapro-pulse-card .pt-footer__actie {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 12px;
  color: var(--c-text-muted, #6b7280);
  cursor: pointer;
}

.qdnapro-pulse-card .pt-footer__actie:first-child {
  padding-left: 16px;
}

.qdnapro-pulse-card .pt-footer__actie[aria-pressed=true] qdnapro-icon {
  color: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-pulse-card .pt-footer__actie[data-pulse-heart][aria-disabled=true] {
  color: var(--c-text-disabled, #898e99);
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-pulse-card .pt-footer__teller {
  font-size: 13px;
  font-weight: 600;
}

.qdnapro-pulse-card .pt-footer__rechts {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.qdnapro-pulse-card .pt-footer__status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  color: var(--c-text-muted, #6b7280);
}

.qdnapro-pulse-card .pt-footer__status-check {
  color: var(--c-brand-purple, #40499A);
}

.qdnapro-pulse-card .pt-footer__status-btn {
  flex-shrink: 0;
}

.qdnapro-pulse-card .pt-footer__rechts > * + .pt-reactie-samenvatting {
  border-left: 1px solid var(--c-border-card, #e1e3e6);
  padding-left: 10px;
  margin-left: 2px;
}

.qdnapro-pulse-card .pt-reactie-samenvatting {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px 4px 4px;
  margin: -4px -8px -4px -4px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-muted, #6b7280);
  cursor: pointer;
}

.qdnapro-pulse-card .pt-reactie-samenvatting:hover,
.qdnapro-pulse-card .pt-reactie-samenvatting:focus-visible {
  background: var(--c-bg-subtle-hover, #f0f1f2);
  outline: none;
}

.qdnapro-pulse-card .pt-reactie-samenvatting:active {
  background: var(--c-bg-subtle-hover, #f0f1f2);
  transform: scale(0.97);
}

.qdnapro-pulse-card .pt-reactie-samenvatting__stapel {
  display: flex;
  align-items: center;
}

.qdnapro-pulse-card .pt-reactie-samenvatting__badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  font-size: 11px;
  line-height: 1;
  border-radius: 50%;
  background: var(--c-bg-card, #ffffff);
  border: 2px solid var(--c-bg-card, #ffffff);
  box-shadow: 0 0 0 1px var(--c-border-card, #e1e3e6);
  overflow: hidden;
}

.qdnapro-pulse-card .pt-reactie-samenvatting__badge + .pt-reactie-samenvatting__badge {
  margin-left: -6px;
}

.qdnapro-pulse-card .pt-reactie-samenvatting__badge svg {
  width: 100%;
  height: 100%;
}

.qdnapro-pulse-card .pt-reactie-samenvatting__totaal {
  margin-left: 2px;
}

.qdnapro-pulse-canvas {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16/10;
  overflow: hidden;
  box-sizing: border-box;
  background: var(--c-bg-card, #ffffff);
  font-family: var(--theme-font-family, "Inter", sans-serif);
  isolation: isolate;
  container-type: inline-size;
  container-name: qpc-card;
}

@supports not (aspect-ratio: 16/10) {
  .qdnapro-pulse-canvas {
    height: 0;
    padding-bottom: 62.5%;
  }
}
.qdnapro-pulse-canvas .qpc-color {
  position: absolute;
  inset: 0;
}

.qdnapro-pulse-canvas .qpc-pattern {
  position: absolute;
  inset: 0;
  mask-repeat: repeat;
  -webkit-mask-repeat: repeat;
  mask-position: center;
  -webkit-mask-position: center;
  mask-size: 96px 96px;
  -webkit-mask-size: 96px 96px;
}

.qdnapro-pulse-canvas .qpc-image {
  position: absolute;
  inset: 0;
  display: none;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.qdnapro-pulse-canvas.qpc--photo .qpc-image,
.qdnapro-pulse-canvas.qpc--scene .qpc-image {
  display: block;
}

.qdnapro-pulse-canvas .qpc-text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 24px;
  padding: 8cqw;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.3;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
  outline: none;
  cursor: default;
  color: var(--c-text, #0b0b0d);
}

.qdnapro-pulse-canvas[data-scale="20"] .qpc-text {
  font-size: max(13px, 9.33cqw);
}

.qdnapro-pulse-canvas[data-scale="40"] .qpc-text {
  font-size: max(13px, 8cqw);
}

.qdnapro-pulse-canvas[data-scale="70"] .qpc-text {
  font-size: max(13px, 6.67cqw);
}

.qdnapro-pulse-canvas[data-scale="110"] .qpc-text {
  font-size: max(13px, 6cqw);
}

.qdnapro-pulse-canvas[data-scale=max] .qpc-text {
  font-size: max(13px, 5.33cqw);
}

.qdnapro-pulse-canvas[data-tint=light] .qpc-text {
  color: var(--c-text-on-action, #ffffff);
}

.qdnapro-pulse-canvas[data-tint=dark] .qpc-text {
  color: var(--c-text, #0b0b0d);
}

.qdnapro-pulse-canvas.qpc--text-outline .qpc-text {
  color: var(--c-text-on-action, #ffffff);
}

.qdnapro-pulse-canvas.qpc--text-outline .qpc-text {
  --qpc-outline-w: 0.04em;
  --qpc-outline-c: var(--c-black-45, rgba(0, 0, 0, .45));
  text-shadow: var(--qpc-outline-w) 0 0 var(--qpc-outline-c), calc(var(--qpc-outline-w) * -1) 0 0 var(--qpc-outline-c), 0 var(--qpc-outline-w) 0 var(--qpc-outline-c), 0 calc(var(--qpc-outline-w) * -1) 0 var(--qpc-outline-c), var(--qpc-outline-w) var(--qpc-outline-w) 0 var(--qpc-outline-c), calc(var(--qpc-outline-w) * -1) var(--qpc-outline-w) 0 var(--qpc-outline-c), var(--qpc-outline-w) calc(var(--qpc-outline-w) * -1) 0 var(--qpc-outline-c), calc(var(--qpc-outline-w) * -1) calc(var(--qpc-outline-w) * -1) 0 var(--qpc-outline-c), 0 0 calc(var(--qpc-outline-w) * 3) var(--qpc-outline-c);
}

.qdnapro-pulse-canvas.qpc--editable .qpc-text {
  cursor: text;
}

.qdnapro-pulse-canvas.qpc--editable .qpc-text:focus-visible {
  border-radius: inherit;
  box-shadow: inset 0 0 0 2px var(--focus-ring, #40499a);
}

.qdnapro-pulse-canvas .qpc-markup {
  position: absolute;
  inset: 0;
  display: none;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  pointer-events: none;
}

.qdnapro-pulse-canvas.qpc--markup .qpc-markup {
  display: block;
}

.qdnapro-pulse-canvas .qpc-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.qdnapro-pulse-canvas .qpc-counter {
  position: absolute;
  right: 8px;
  bottom: 8px;
  display: none;
  padding: 2px 8px;
  border-radius: var(--r-pill, 999px);
  background: var(--c-black-45, rgba(0, 0, 0, 0.45));
  color: var(--c-text-on-action, #ffffff);
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  pointer-events: none;
}

.qdnapro-pulse-canvas .qpc-counter.qpc-counter--visible {
  display: inline-flex;
}

.qdnapro-push-notification {
  --pn-surface: rgba(255, 255, 255, 0.68);
  --pn-title: var(--c-text-heading, #1a1d3a);
  --pn-body: var(--c-text-heading, #1a1d3a);
  --pn-meta: var(--c-text-muted, #6a6e9a);
  --pn-tile-bg: var(--c-purple-500, #40499a);
  --pn-tile-glyph: #ffffff;
  --pn-divider: rgba(40, 46, 100, 0.10);
  --pn-edge: rgba(255, 255, 255, 0.60);
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: 100%;
  padding: 13px 14px;
  border-radius: var(--r-3, 12px);
  background: var(--pn-surface);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  backdrop-filter: blur(24px) saturate(160%);
  border: 1px solid var(--pn-edge);
  box-shadow: 0 0 0 1px rgba(40, 46, 100, 0.06), 0 10px 30px rgba(40, 46, 100, 0.18);
  font-family: var(--ff, "Inter", -apple-system, sans-serif);
  text-align: left;
}

.qdnapro-push-notification--swipeable {
  touch-action: none;
  transition: transform 0.24s cubic-bezier(0.21, 1.24, 0.42, 1);
}

.qdnapro-push-notification--dragging {
  transition: none;
  cursor: grabbing;
}

.qdnapro-push-notification--swipe-out {
  transform: translateY(-140%);
  opacity: 0;
  transition: transform 0.2s ease-in, opacity 0.2s ease-in;
  pointer-events: none;
}

.qdnapro-push-notification--info {
  --pn-tile-bg: var(--c-signal-blue-text, #6a8ab4);
}

.qdnapro-push-notification--success {
  --pn-tile-bg: var(--c-signal-green-text, #428b6e);
}

.qdnapro-push-notification--warning {
  --pn-tile-bg: var(--c-warning-bright-text, #9a6a10);
}

.qdnapro-push-notification--error {
  --pn-tile-bg: var(--c-signal-red-text, #c65a5a);
}

.qdnapro-push-notification__row {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  width: 100%;
}

.qdnapro-push-notification__tile {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--r-2, 8px);
  background: var(--pn-tile-bg);
  color: var(--pn-tile-glyph);
  line-height: 0;
}

.qdnapro-push-notification__tile qdnapro-icon,
.qdnapro-push-notification__tile .qdnapro-icon {
  width: 18px;
  height: 18px;
  color: inherit;
}

.qdnapro-push-notification__tile--image {
  background: var(--c-grey-50, #f0f1f2);
  padding: 3px;
}

.qdnapro-push-notification__tile-img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: var(--r-1, 4px);
  object-fit: contain;
}

.qdnapro-push-notification__main {
  flex: 1 1 auto;
  min-width: 0;
}

.qdnapro-push-notification__headline {
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.qdnapro-push-notification__title {
  min-width: 0;
  color: var(--pn-title);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.qdnapro-push-notification--collapsed .qdnapro-push-notification__title {
  flex: 0 1 auto;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.qdnapro-push-notification__time {
  flex: 0 0 auto;
  color: var(--pn-meta);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  white-space: nowrap;
}

.qdnapro-push-notification__body {
  margin-top: 2px;
  color: var(--pn-body);
  font-size: 13.5px;
  font-weight: 400;
  line-height: 1.42;
  overflow-wrap: anywhere;
}

.qdnapro-push-notification--collapsed .qdnapro-push-notification__body {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.qdnapro-push-notification__chevron,
.qdnapro-push-notification__dismiss {
  flex: 0 0 auto;
  margin: -1px -4px 0 0;
}

.qdnapro-push-notification__meta {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 1px;
}

.qdnapro-push-notification__app {
  min-width: 0;
  overflow: hidden;
  color: var(--c-purple-500, #40499a);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-push-notification--expanded .qdnapro-push-notification__title {
  display: block;
}

.qdnapro-push-notification__media {
  margin-top: 9px;
  border-radius: var(--r-2, 8px);
  overflow: hidden;
  line-height: 0;
}

.qdnapro-push-notification__media-img {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-push-notification__footer {
  display: flex;
  align-items: stretch;
  margin: 11px -14px -13px;
  border-top: 1px solid var(--pn-divider);
}

.qdnapro-push-notification__footer .qdnapro-push-notification__action {
  flex: 1 1 0;
  min-width: 0;
  width: 100%;
  border-radius: 0;
}

.qdnapro-push-notification__footer .qdnapro-push-notification__action:first-child {
  border-bottom-left-radius: var(--r-3, 12px);
}

.qdnapro-push-notification__footer .qdnapro-push-notification__action:last-child {
  border-bottom-right-radius: var(--r-3, 12px);
}

.qdnapro-push-notification__action + .qdnapro-push-notification__action {
  border-left: 1px solid var(--pn-divider);
}

.qdnapro-radio {
  --rb-size: 16px;
  --rb-border: var(--c-border-card);
  --rb-bg: var(--c-grey-50);
  --rb-bg-hover: var(--c-border-card);
  --rb-selected-bg: var(--c-action-500);
  --rb-selected-bg-hover: var(--c-action-600);
  --rb-selected-dot: #ffffff;
  --rb-focus-ring: var(--c-purple-500);
  --rb-focus-glow: rgba(70, 82, 243, 0.25);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: var(--rb-size);
  height: var(--rb-size);
  flex-shrink: 0;
  border: 1px solid var(--rb-border);
  border-radius: 50%;
  background: var(--rb-bg);
  cursor: pointer;
  user-select: none;
  transition: background-color 140ms ease-out, border-color 140ms ease-out;
}

.qdnapro-radio .radio-dot {
  display: inline-block;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--rb-selected-dot);
  transform: scale(0);
  opacity: 0;
  pointer-events: none;
  transition: transform 220ms cubic-bezier(0.34, 1.35, 0.64, 1), opacity 140ms ease-out;
}

.qdnapro-radio.radio-selected {
  background: var(--rb-selected-bg);
  border-color: var(--rb-selected-bg);
}

.qdnapro-radio.radio-selected .radio-dot {
  transform: scale(1);
  opacity: 1;
}

.qdnapro-radio:hover:not(.radio-disabled):not(.radio-selected) {
  background: var(--rb-bg-hover);
}

.qdnapro-radio:hover:not(.radio-disabled).radio-selected {
  background: var(--rb-selected-bg-hover);
  border-color: var(--rb-selected-bg-hover);
}

.qdnapro-radio:active:not(.radio-disabled) {
  background-image: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15));
}

.qdnapro-radio:focus {
  outline: none;
}

.qdnapro-radio:focus-visible, .qdnapro-radio.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--rb-focus-ring), 0 0 0 6px var(--rb-focus-glow);
}

.qdnapro-radio.force-hover:not(.radio-disabled):not(.radio-selected) {
  background: var(--rb-bg-hover);
}

.qdnapro-radio.force-hover:not(.radio-disabled).radio-selected {
  background: var(--rb-selected-bg-hover);
  border-color: var(--rb-selected-bg-hover);
}

.qdnapro-radio.force-pressed:not(.radio-disabled) {
  background-image: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15));
}

.qdnapro-radio.radio-state-error {
  --rb-border: var(--c-signal-red-text);
  --rb-bg-hover: var(--c-tag-critical-bg);
  --rb-selected-bg: var(--c-signal-red-text);
  --rb-selected-bg-hover: var(--c-tag-critical-text);
  --rb-selected-dot: #ffffff;
  --rb-focus-ring: var(--c-signal-red-text);
  --rb-focus-glow: rgba(198, 90, 90, 0.25);
}

.qdnapro-radio.radio-state-success {
  --rb-border: var(--c-signal-green-text);
  --rb-bg-hover: var(--c-signal-green-bg);
  --rb-selected-bg: var(--c-signal-green-text);
  --rb-selected-bg-hover: #2f5d4a;
  --rb-selected-dot: #ffffff;
  --rb-focus-ring: var(--c-signal-green-text);
  --rb-focus-glow: rgba(66, 139, 110, 0.25);
}

.qdnapro-radio.radio-disabled {
  --rb-border: var(--c-border-card);
  --rb-bg: var(--c-grey-50);
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-radio.radio-disabled.radio-selected {
  background: var(--c-grey-50);
  border-color: var(--c-border-card);
}

.qdnapro-radio.radio-disabled.radio-selected .radio-dot {
  background: var(--c-text-disabled);
}

[data-theme=dark] .qdnapro-radio {
  --rb-border: #565b66;
  --rb-bg: #2e3036;
  --rb-bg-hover: #40444d;
  --rb-selected-bg: #4652f3;
  --rb-selected-bg-hover: #5a66ff;
  --rb-selected-dot: #ffffff;
  --rb-focus-ring: #a5acff;
  --rb-focus-glow: rgba(70, 82, 243, 0.4);
}

[data-theme=dark] .qdnapro-radio.radio-state-error {
  --rb-border: #c65a5a;
  --rb-bg-hover: #5a2b2b;
  --rb-selected-bg: #c65a5a;
  --rb-selected-bg-hover: #a04444;
  --rb-focus-ring: #e89090;
}

[data-theme=dark] .qdnapro-radio.radio-state-success {
  --rb-border: #428b6e;
  --rb-bg-hover: #2a5544;
  --rb-selected-bg: #428b6e;
  --rb-selected-bg-hover: #2f5d4a;
  --rb-focus-ring: #7ccfa8;
}

[data-theme=dark] .qdnapro-radio.radio-disabled {
  --rb-border: #565b66;
  --rb-bg: #40444d;
}

[data-theme=dark] .qdnapro-radio.radio-disabled.radio-selected {
  background: #40444d;
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-radio.radio-disabled.radio-selected .radio-dot {
  background: #6b7280;
}

@property --qrt-beam-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}
.qdnapro-radio-tiles {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}
.qdnapro-radio-tiles *, .qdnapro-radio-tiles *::before, .qdnapro-radio-tiles *::after {
  box-sizing: border-box;
}
.qdnapro-radio-tiles .radio-tiles-label {
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
  color: var(--c-text-body);
}
.qdnapro-radio-tiles .radio-tiles-track {
  --radio-tiles-columns: 3;
  --radio-tile-max: 200px;
  --radio-tiles-gap: 10px;
  display: grid;
  grid-template-columns: repeat(var(--radio-tiles-columns), minmax(0, 1fr));
  gap: var(--radio-tiles-gap);
  align-items: stretch;
  max-width: calc(var(--radio-tiles-columns) * var(--radio-tile-max) + (var(--radio-tiles-columns) - 1) * var(--radio-tiles-gap));
}
.qdnapro-radio-tiles.radio-tiles-disabled {
  cursor: not-allowed;
}

@media (max-width: 720px) {
  .qdnapro-radio-tiles .radio-tiles-track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 480px) {
  .qdnapro-radio-tiles .radio-tiles-track {
    grid-template-columns: 1fr;
  }
}
.qdnapro-radio-tile {
  --radio-tile-media: 88px;
  position: relative;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 14px 12px 12px;
  border: 1px solid var(--c-border-soft-2);
  border-radius: 14px;
  background: var(--c-bg-card);
  cursor: pointer;
  user-select: none;
  outline: none;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 140ms ease, border-color 140ms ease, box-shadow 200ms ease, transform 140ms cubic-bezier(0.4, 0, 0.2, 1);
}
.qdnapro-radio-tile *, .qdnapro-radio-tile *::before, .qdnapro-radio-tile *::after {
  box-sizing: border-box;
}
.qdnapro-radio-tile .radio-tile-title {
  font-size: 15px;
  line-height: 20px;
  font-weight: 700;
  color: var(--c-grey-950);
  text-align: center;
  overflow-wrap: anywhere;
}
.qdnapro-radio-tile .radio-tile-media {
  position: relative;
  display: block;
  width: var(--radio-tile-media);
  height: var(--radio-tile-media);
  flex-shrink: 0;
}
.qdnapro-radio-tile .radio-tile-poster,
.qdnapro-radio-tile .radio-tile-anim {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transition: opacity 140ms ease;
}
.qdnapro-radio-tile .radio-tile-poster {
  object-fit: contain;
  opacity: 1;
}
.qdnapro-radio-tile .radio-tile-anim {
  opacity: 0;
  pointer-events: none;
}
.qdnapro-radio-tile .radio-tile-anim svg {
  display: block;
  width: 100%;
  height: 100%;
}
.qdnapro-radio-tile.radio-tile-animating .radio-tile-poster {
  opacity: 0;
}
.qdnapro-radio-tile.radio-tile-animating .radio-tile-anim {
  opacity: 1;
}
.qdnapro-radio-tile .radio-tile-desc {
  font-size: 11px;
  line-height: 16px;
  color: var(--c-grey-500);
  text-align: center;
}
.qdnapro-radio-tile .radio-tile-desc[hidden] {
  display: none;
}
.qdnapro-radio-tile .radio-tile-mark {
  margin-top: auto;
  padding-top: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.qdnapro-radio-tile .radio-tile-mark qdnapro-radio {
  pointer-events: none;
}
.qdnapro-radio-tile .radio-tile-info {
  position: absolute;
  top: 6px;
  right: 6px;
  z-index: 2;
  opacity: 0;
  pointer-events: none;
  transform: scale(0.9);
  transition: opacity 140ms ease, transform 140ms ease;
}
.qdnapro-radio-tile:hover .radio-tile-info, .qdnapro-radio-tile.force-hover .radio-tile-info,
.qdnapro-radio-tile .radio-tile-info:focus-visible,
.qdnapro-radio-tile .radio-tile-info:focus-within {
  opacity: 1;
  pointer-events: auto;
  transform: scale(1);
}
.qdnapro-radio-tile:hover:not(.radio-tile-disabled), .qdnapro-radio-tile.force-hover:not(.radio-tile-disabled) {
  background: var(--c-grey-50);
  border-color: var(--c-border-card);
}
.qdnapro-radio-tile:active:not(.radio-tile-disabled), .qdnapro-radio-tile.force-pressed:not(.radio-tile-disabled) {
  background: var(--c-grey-100);
  transform: scale(0.985);
}
.qdnapro-radio-tile:focus {
  outline: none;
}
.qdnapro-radio-tile:focus-visible, .qdnapro-radio-tile.force-focus {
  outline: none;
  border-color: var(--c-action-500);
  box-shadow: 0 0 0 2px var(--c-action-500), 0 0 0 6px rgba(70, 82, 243, 0.25);
}
.qdnapro-radio-tile.radio-tile-selected {
  border-color: var(--c-action-500);
  background: var(--c-bg-card);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.18);
}
.qdnapro-radio-tile.radio-tile-selected:hover:not(.radio-tile-disabled), .qdnapro-radio-tile.radio-tile-selected.force-hover:not(.radio-tile-disabled) {
  background: var(--c-bg-subtle-purple);
}
.qdnapro-radio-tile.radio-tile-selected:focus-visible, .qdnapro-radio-tile.radio-tile-selected.force-focus {
  box-shadow: 0 0 0 2px var(--c-action-500), 0 0 0 6px rgba(70, 82, 243, 0.25);
}
.qdnapro-radio-tile.radio-tile-disabled {
  cursor: not-allowed;
  opacity: 0.45;
  transform: none;
}
.qdnapro-radio-tile.radio-tile-disabled .radio-tile-info {
  display: none;
}

@media (hover: none) {
  .qdnapro-radio-tile .radio-tile-info {
    opacity: 1;
    pointer-events: auto;
    transform: scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-radio-tile,
  .qdnapro-radio-tile .radio-tile-poster,
  .qdnapro-radio-tile .radio-tile-anim,
  .qdnapro-radio-tile .radio-tile-info {
    transition: none;
  }
  .qdnapro-radio-tile.radio-tile-beam::after,
  .qdnapro-radio-tile.radio-tile-pop {
    animation: none;
  }
}
.qdnapro-radio-tile.radio-tile-toggle {
  --radio-tile-media: 96px;
  max-width: 240px;
}
.qdnapro-radio-tile.radio-tile-toggle .radio-tile-mark qdnapro-toggle {
  pointer-events: none;
}
.qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected {
  border-color: transparent;
  box-shadow: none;
  background: var(--c-bg-subtle-purple);
}
.qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected:hover:not(.radio-tile-disabled), .qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected.force-hover:not(.radio-tile-disabled) {
  background: var(--c-bg-subtle-purple);
}
.qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected:focus-visible, .qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected.force-focus {
  box-shadow: 0 0 0 2px var(--c-action-500), 0 0 0 6px rgba(70, 82, 243, 0.25);
}

.qdnapro-radio-tile.radio-tile-beam::after {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: 0;
  border-radius: 15px;
  padding: 2px;
  background: conic-gradient(from var(--qrt-beam-angle), rgba(70, 82, 243, 0.16) 0deg, rgba(70, 82, 243, 0.16) 200deg, var(--c-chip-yellow-fg, #b07d10) 268deg, #ffd66b 300deg, var(--c-action-500) 336deg, rgba(70, 82, 243, 0.16) 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: qrt-beam-spin 3.2s linear infinite;
  pointer-events: none;
}

@keyframes qrt-beam-spin {
  to {
    --qrt-beam-angle: 360deg;
  }
}
.qdnapro-radio-tile.radio-tile-beam > * {
  position: relative;
  z-index: 1;
}

.qdnapro-radio-tile.radio-tile-pop {
  animation: qrt-pop 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes qrt-pop {
  0% {
    transform: scale(1);
  }
  32% {
    transform: scale(1.045);
  }
  100% {
    transform: scale(1);
  }
}
.qdnapro-radio-tile .radio-tile-sparks {
  position: absolute;
  inset: -60px;
  display: block;
  pointer-events: none;
  z-index: 3;
}

.qdnapro-radio-tile .radio-tile-spark {
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--qrt-spark-size, 14px);
  height: var(--qrt-spark-size, 14px);
  margin: calc(var(--qrt-spark-size, 14px) / -2) 0 0 calc(var(--qrt-spark-size, 14px) / -2);
  background: #ffc93f;
  clip-path: polygon(50% 0%, 59% 41%, 100% 50%, 59% 59%, 50% 100%, 41% 59%, 0% 50%, 41% 41%);
  filter: drop-shadow(0 0 5px rgba(255, 201, 63, 0.85));
  opacity: 0;
  animation: qrt-spark 850ms cubic-bezier(0.16, 0.84, 0.44, 1) var(--qrt-spark-delay, 0ms) both;
}

.qdnapro-radio-tile .radio-tile-spark:nth-child(3n+2) {
  background: var(--c-action-500, #4652f3);
  filter: drop-shadow(0 0 5px rgba(70, 82, 243, 0.75));
}

.qdnapro-radio-tile .radio-tile-spark:nth-child(3n+3) {
  background: #ff6fb8;
  filter: drop-shadow(0 0 5px rgba(255, 111, 184, 0.75));
}

@keyframes qrt-spark {
  0% {
    opacity: 0;
    transform: translate(0, 0) scale(0.2) rotate(0deg);
  }
  20% {
    opacity: 1;
    transform: translate(calc(var(--qrt-spark-x, 0px) * 0.4), calc(var(--qrt-spark-y, 0px) * 0.4)) scale(1.15) rotate(calc(var(--qrt-spark-turn, 0deg) * 0.35));
  }
  55% {
    opacity: 1;
    transform: translate(calc(var(--qrt-spark-x, 0px) * 0.78), calc(var(--qrt-spark-y, 0px) * 0.78)) scale(0.9) rotate(calc(var(--qrt-spark-turn, 0deg) * 0.7));
  }
  100% {
    opacity: 0;
    transform: translate(var(--qrt-spark-x, 0px), var(--qrt-spark-y, 0px)) scale(0.35) rotate(var(--qrt-spark-turn, 0deg));
  }
}
[data-theme=dark] .qdnapro-radio-tiles .radio-tiles-label,
.theme-dark .qdnapro-radio-tiles .radio-tiles-label {
  color: rgba(240, 241, 242, 0.75);
}
[data-theme=dark] .qdnapro-radio-tile,
.theme-dark .qdnapro-radio-tile {
  background: var(--c-bg-card);
  border-color: var(--c-border-soft-2);
}
[data-theme=dark] .qdnapro-radio-tile .radio-tile-title,
.theme-dark .qdnapro-radio-tile .radio-tile-title {
  color: var(--c-text-heading);
}
[data-theme=dark] .qdnapro-radio-tile .radio-tile-desc,
.theme-dark .qdnapro-radio-tile .radio-tile-desc {
  color: rgba(240, 241, 242, 0.65);
}
[data-theme=dark] .qdnapro-radio-tile:hover:not(.radio-tile-disabled), [data-theme=dark] .qdnapro-radio-tile.force-hover:not(.radio-tile-disabled),
.theme-dark .qdnapro-radio-tile:hover:not(.radio-tile-disabled),
.theme-dark .qdnapro-radio-tile.force-hover:not(.radio-tile-disabled) {
  background: var(--c-bg-card-hover);
  border-color: var(--c-border-card);
}
[data-theme=dark] .qdnapro-radio-tile:active:not(.radio-tile-disabled), [data-theme=dark] .qdnapro-radio-tile.force-pressed:not(.radio-tile-disabled),
.theme-dark .qdnapro-radio-tile:active:not(.radio-tile-disabled),
.theme-dark .qdnapro-radio-tile.force-pressed:not(.radio-tile-disabled) {
  background: rgba(255, 255, 255, 0.06);
}
[data-theme=dark] .qdnapro-radio-tile.radio-tile-selected,
.theme-dark .qdnapro-radio-tile.radio-tile-selected {
  border-color: var(--c-action-500);
  background: rgba(70, 82, 243, 0.1);
}
[data-theme=dark] .qdnapro-radio-tile.radio-tile-selected:hover:not(.radio-tile-disabled), [data-theme=dark] .qdnapro-radio-tile.radio-tile-selected.force-hover:not(.radio-tile-disabled),
.theme-dark .qdnapro-radio-tile.radio-tile-selected:hover:not(.radio-tile-disabled),
.theme-dark .qdnapro-radio-tile.radio-tile-selected.force-hover:not(.radio-tile-disabled) {
  background: rgba(70, 82, 243, 0.16);
}
[data-theme=dark] .qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected,
.theme-dark .qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected {
  border-color: transparent;
  background: rgba(70, 82, 243, 0.14);
}
[data-theme=dark] .qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected:hover:not(.radio-tile-disabled), [data-theme=dark] .qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected.force-hover:not(.radio-tile-disabled),
.theme-dark .qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected:hover:not(.radio-tile-disabled),
.theme-dark .qdnapro-radio-tile.radio-tile-toggle.radio-tile-selected.force-hover:not(.radio-tile-disabled) {
  background: rgba(70, 82, 243, 0.2);
}

.qdnapro-range-slider {
  --rs-track: var(--c-border-card);
  --rs-fill: var(--c-action-500);
  --rs-dot: var(--c-sidebar-icon);
  --rs-handle: #ffffff;
  --rs-handle-border: var(--c-action-500);
  --rs-handle-glow: rgba(70, 82, 243, 0.25);
  --rs-label: var(--c-purple-400);
  --rs-label-active: var(--c-text-heading);
  display: block;
  position: relative;
  box-sizing: border-box;
  padding: 6px 12px 4px;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
}

.qdnapro-range-slider .rs-track {
  position: relative;
  height: 6px;
  margin: 14px 0 6px;
  border-radius: 999px;
  background: var(--rs-track);
}

.qdnapro-range-slider .rs-fill {
  position: absolute;
  top: 0;
  height: 100%;
  border-radius: 999px;
  background: var(--rs-fill);
}

.qdnapro-range-slider .rs-dot {
  position: absolute;
  top: 50%;
  width: 4px;
  height: 4px;
  margin-left: -2px;
  margin-top: -2px;
  border-radius: 50%;
  background: var(--rs-dot);
  pointer-events: none;
}

.qdnapro-range-slider .rs-handle {
  position: absolute;
  top: 50%;
  width: 18px;
  height: 18px;
  margin-left: -9px;
  padding: 0;
  transform: translateY(-50%);
  border-radius: 50%;
  background: var(--rs-handle);
  border: 2px solid var(--rs-handle-border);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
  cursor: grab;
  z-index: 2;
  transition: box-shadow 140ms ease-out, transform 120ms ease-out;
}

.qdnapro-range-slider .rs-handle:hover {
  box-shadow: 0 0 0 6px var(--rs-handle-glow), 0 1px 3px rgba(0, 0, 0, 0.18);
}

.qdnapro-range-slider .rs-handle:active {
  cursor: grabbing;
  transform: translateY(-50%) scale(1.08);
}

.qdnapro-range-slider .rs-handle:focus {
  outline: none;
}

.qdnapro-range-slider .rs-handle:focus-visible {
  box-shadow: 0 0 0 4px var(--rs-handle-glow), 0 1px 3px rgba(0, 0, 0, 0.18);
}

.qdnapro-range-slider .rs-labels {
  position: relative;
  height: 16px;
  margin-top: 2px;
}

.qdnapro-range-slider .rs-label {
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  font-size: 11px;
  line-height: 16px;
  font-weight: 600;
  color: var(--rs-label);
  white-space: nowrap;
  transition: color 120ms ease-out;
}

.qdnapro-range-slider .rs-label.is-active {
  color: var(--rs-label-active);
}

.qdnapro-range-slider.is-disabled {
  opacity: 0.5;
  pointer-events: none;
}

.qdnapro-recipient-picker [hidden] {
  display: none;
}

.qdnapro-recipient-picker {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
}

.rp-section-title {
  font-size: 12px;
  font-weight: var(--fw-medium);
  line-height: 1.3;
  color: var(--c-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0 var(--s-1);
  margin-bottom: var(--s-2);
}

.rp-search {
  padding: 0 var(--s-1);
}
.rp-search qdnapro-input {
  width: 100%;
}

.rp-body {
  display: flex;
  flex-direction: column;
  height: var(--rp-list-height, 320px);
  overflow-y: auto;
}
.rp-body::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.rp-body::-webkit-scrollbar-track {
  background: transparent;
}
.rp-body::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 8px;
  transition: background 160ms ease;
}
.rp-body:hover::-webkit-scrollbar-thumb, .rp-body:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
}
.rp-body::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.34);
}

.rp-hint,
.rp-empty {
  padding: var(--s-4) var(--s-1);
  font-size: 13px;
  line-height: 1.4;
  color: var(--c-text-muted);
  text-align: center;
}

.rp-busy {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--s-6) 0;
}

.rp-spinner {
  display: block;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid var(--c-border-soft-2, #e6e9ef);
  border-top-color: var(--c-brand-purple);
  animation: rp-spin 0.8s linear infinite;
}

@keyframes rp-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .rp-spinner {
    animation-duration: 1.6s;
  }
}
.rp-results-list {
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
}

.rp-row {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  padding: var(--s-2) var(--s-1);
  border-radius: var(--r-2);
  cursor: pointer;
}
.rp-row:hover {
  background: var(--c-bg-subtle-hover);
}
.rp-row--disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
.rp-row--disabled:hover {
  background: transparent;
}

.rp-row-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.rp-row-name {
  font-size: 14px;
  font-weight: var(--fw-medium);
  color: var(--c-text-body);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.rp-row-role {
  font-size: 12px;
  line-height: 1.3;
  color: var(--c-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.rp-row-access {
  flex-shrink: 0;
  font-size: 12px;
  line-height: 1.3;
  color: var(--c-text-muted);
  white-space: nowrap;
  text-align: right;
}

.rp-footer {
  display: flex;
  justify-content: flex-end;
  gap: var(--s-2);
  padding-top: var(--s-2);
  border-top: 1px solid var(--c-border-soft-2, #e6e9ef);
}

.qdnapro-resource-timeline {
  --resource-timeline-label-col: 220px;
  --resource-timeline-row-compact: 44px;
  --resource-timeline-header: 44px;
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-height: 0;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-resource-timeline__scroll {
  display: grid;
  grid-template-columns: var(--resource-timeline-label-col) repeat(7, 1fr);
  align-content: start;
  width: 100%;
  height: 100%;
  overflow: auto;
  scrollbar-width: thin;
  background: var(--c-bg-card, #fff);
}

.qdnapro-resource-timeline__scroll::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.qdnapro-resource-timeline__scroll::-webkit-scrollbar-thumb {
  background: var(--c-grey-200, #d8dade);
  border-radius: 8px;
}

.qdnapro-resource-timeline__scroll::-webkit-scrollbar-track {
  background: transparent;
}

.qdnapro-resource-timeline__corner {
  position: sticky;
  top: 0;
  left: 0;
  z-index: 4;
  height: var(--resource-timeline-header);
  background: var(--c-bg-card, #fff);
  border-bottom: 1px solid var(--c-grey-100, #e7e9ec);
  border-right: 1px solid var(--c-grey-100, #e7e9ec);
  box-sizing: border-box;
}

.qdnapro-resource-timeline__corner--search {
  display: flex;
  align-items: center;
  padding: 0 10px;
}

.qdnapro-resource-timeline__corner--search .qdnapro-resource-timeline__searchinput {
  flex: 1;
  min-width: 0;
}

.qdnapro-resource-timeline__daycell {
  appearance: none;
  -webkit-appearance: none;
  border: none;
  margin: 0;
  font: inherit;
  text-align: inherit;
  color: inherit;
  position: sticky;
  top: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  height: var(--resource-timeline-header);
  min-width: 0;
  background: var(--c-bg-card, #fff);
  border-bottom: 1px solid var(--c-grey-100, #e7e9ec);
  border-right: 1px solid var(--c-grey-100, #e7e9ec);
  padding: 2px 4px;
  box-sizing: border-box;
  cursor: pointer;
}

.qdnapro-resource-timeline__daycell:hover {
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-resource-timeline__daycell:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--c-purple-500, #40499a);
}

.qdnapro-resource-timeline__weekday {
  font-size: 10px;
  font-weight: 600;
  line-height: 13px;
  color: var(--c-grey-500, #6b7280);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.qdnapro-resource-timeline__daynum {
  font-size: 13px;
  font-weight: 600;
  line-height: 16px;
  color: var(--c-grey-800, #1c1b29);
  white-space: nowrap;
}

.qdnapro-resource-timeline__daycell.is-today .qdnapro-resource-timeline__weekday {
  color: var(--c-action-500, #4652f3);
}

.qdnapro-resource-timeline__daycell.is-today .qdnapro-resource-timeline__daynum {
  color: var(--c-text-on-action);
  background: var(--c-action-500, #4652f3);
  padding: 1px 8px;
  border-radius: 999px;
}

.qdnapro-resource-timeline__todaytag {
  font-size: 9px;
  font-weight: 700;
  line-height: 11px;
  color: var(--c-action-500, #4652f3);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.qdnapro-resource-timeline__daycell.is-today .qdnapro-resource-timeline__todaytag {
  display: none;
}

.qdnapro-resource-timeline__topspace,
.qdnapro-resource-timeline__botspace {
  grid-column: 1/-1;
  height: 0;
}

.qdnapro-resource-timeline__label {
  position: sticky;
  left: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 10px;
  height: var(--resource-timeline-row-compact, 44px);
  min-width: 0;
  padding: 0 12px;
  background: var(--c-bg-card, #fff);
  border-bottom: 1px solid var(--c-grey-100, #e7e9ec);
  border-right: 1px solid var(--c-grey-100, #e7e9ec);
  box-sizing: border-box;
}

.qdnapro-resource-timeline__labeltext {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.qdnapro-resource-timeline__labelname {
  font-size: 13px;
  font-weight: 600;
  line-height: 16px;
  color: var(--c-grey-800, #1c1b29);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-resource-timeline__labelmeta {
  font-size: 11px;
  font-weight: 500;
  line-height: 14px;
  color: var(--c-grey-500, #6b7280);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-resource-timeline__cell {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  height: var(--resource-timeline-row-compact, 44px);
  padding: 3px 4px;
  box-sizing: border-box;
  background: var(--c-bg-card, #fff);
  border-bottom: 1px solid var(--c-grey-100, #e7e9ec);
  border-right: 1px solid var(--c-grey-100, #e7e9ec);
  overflow: hidden;
  cursor: default;
}

.qdnapro-resource-timeline__cell.is-today {
  background: rgba(64, 73, 154, 0.04);
}

.qdnapro-resource-timeline__cell.is-empty {
  cursor: pointer;
}

.qdnapro-resource-timeline__cell.is-disabled,
.qdnapro-resource-timeline__cell.is-unavailable {
  background: repeating-linear-gradient(135deg, var(--c-grey-50, #f0f1f2) 0 6px, rgba(107, 114, 128, 0.14) 6px 12px);
}

.qdnapro-resource-timeline__cell.is-disabled {
  cursor: not-allowed;
}

.qdnapro-resource-timeline__cell.is-unavailable {
  cursor: pointer;
}

.qdnapro-resource-timeline__cell.is-drop-target {
  background: var(--c-purple-soft-12, rgba(64, 73, 154, 0.12));
}

.qdnapro-resource-timeline__cell.is-drop-target::before {
  content: "";
  position: absolute;
  inset: 1px;
  pointer-events: none;
  background-image: repeating-linear-gradient(to right, var(--c-purple-500, #40499a) 0 6px, transparent 0 12px), repeating-linear-gradient(to right, var(--c-purple-500, #40499a) 0 6px, transparent 0 12px), repeating-linear-gradient(to bottom, var(--c-purple-500, #40499a) 0 6px, transparent 0 12px), repeating-linear-gradient(to bottom, var(--c-purple-500, #40499a) 0 6px, transparent 0 12px);
  background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
  background-size: 12px 2px, 12px 2px, 2px 12px, 2px 12px;
  background-position: 0 0, 0 100%, 0 0, 100% 0;
  animation: qdna-resource-timeline-march 1.6s linear infinite;
}

@keyframes qdna-resource-timeline-march {
  to {
    background-position: 12px 0, -12px 100%, 0 -12px, 100% 12px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-resource-timeline__cell.is-drop-target::before {
    animation: none;
  }
}
.qdnapro-resource-timeline__chip {
  flex: 1 1 22px;
  min-height: 22px;
  padding: 2px 6px;
}

.qdnapro-resource-timeline__chip .qdnapro-event-card__meta {
  display: none;
}

.qdnapro-resource-timeline__chip .qdnapro-event-card__avatar {
  --av-size: 16px;
  --av-padding: 3px;
}

.qdnapro-resource-timeline__chip[draggable=true] {
  cursor: grab;
}

.qdnapro-resource-timeline__chip.is-dragging {
  opacity: 0.5;
  cursor: grabbing;
}

.qdnapro-resource-timeline__chip--draft {
  border: 1.5px dashed var(--event-card-text, currentColor);
  background: color-mix(in srgb, var(--event-card-bg, transparent) 55%, transparent);
}

.qdnapro-resource-timeline__more {
  appearance: none;
  border: 0;
  background: transparent;
  text-align: left;
  padding: 1px 6px;
  margin: 0;
  font-family: inherit;
  font-size: 10px;
  font-weight: 600;
  line-height: 14px;
  color: var(--c-grey-500, #6b7280);
  border-radius: var(--r-1, 4px);
  cursor: pointer;
}

.qdnapro-resource-timeline__more:hover {
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-resource-timeline__more:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-purple-500, #40499a), 0 0 0 6px var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
}

.qdnapro-resource-timeline--wide .qdnapro-resource-timeline__daycell,
.qdnapro-resource-timeline--wide .qdnapro-resource-timeline__cell {
  min-width: 88px;
}

.qdnapro-reveal-stage {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  width: 100%;
  height: 100%;
  min-height: 420px;
  text-align: center;
  color: var(--c-text-on-action);
  background: var(--c-purple-500);
  font-family: var(--theme-font-family, "Inter", sans-serif);
}
.qdnapro-reveal-stage.rs-closed {
  display: none;
}
.qdnapro-reveal-stage.rs-shaking {
  animation: rs-shake 0.4s linear;
}

@keyframes rs-shake {
  0%, 100% {
    transform: none;
  }
  20% {
    transform: translate(-5px, 3px) rotate(-0.6deg);
  }
  40% {
    transform: translate(5px, -3px) rotate(0.6deg);
  }
  60% {
    transform: translate(-4px, -2px);
  }
  80% {
    transform: translate(3px, 2px);
  }
}
.qdnapro-reveal-stage .rs-close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 20;
}

.qdnapro-reveal-stage .rs-fx {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
}

.qdnapro-reveal-stage .rs-flash {
  position: absolute;
  inset: 0;
  z-index: 6;
  background: var(--c-text-on-action);
  opacity: 0;
  pointer-events: none;
}
.qdnapro-reveal-stage .rs-flash.is-flashing {
  animation: rs-flash 0.5s ease-out;
}

@keyframes rs-flash {
  0% {
    opacity: 0.95;
  }
  100% {
    opacity: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-reveal-stage .rs-flash {
    display: none;
  }
}
.qdnapro-reveal-stage .rs-card {
  position: relative;
  z-index: 2;
  width: min(260px, 84%);
  padding: 24px 22px;
  cursor: pointer;
  border: 1.5px dashed var(--c-white-85);
  border-radius: var(--r-5);
  background: var(--c-purple-100);
  box-shadow: 0 8px 26px rgba(0, 0, 0, 0.16);
  animation: rs-breathe 2s ease-in-out infinite;
}
.qdnapro-reveal-stage .rs-card[hidden] {
  display: none;
}

@keyframes rs-breathe {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.04);
  }
}
.qdnapro-reveal-stage .rs-card-icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--c-text-on-action);
  overflow: hidden;
  animation: rs-wiggle 1.6s ease-in-out infinite;
}

@keyframes rs-wiggle {
  0%, 100% {
    transform: rotate(-6deg);
  }
  50% {
    transform: rotate(6deg) scale(1.08);
  }
}
.qdnapro-reveal-stage .rs-card-heading {
  margin-top: 8px;
  font-size: 15px;
  font-weight: 800;
  color: var(--c-purple-700);
}

.qdnapro-reveal-stage .rs-card-sub {
  margin-top: 4px;
  font-size: 12px;
  color: var(--c-purple-600);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-reveal-stage .rs-card,
  .qdnapro-reveal-stage .rs-card-icon {
    animation: none;
  }
}
.qdnapro-reveal-stage .rs-scene {
  position: relative;
  z-index: 2;
  flex: 1 1 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
}

.qdnapro-reveal-stage .rs-fade-in {
  animation: rs-fade-in 0.35s ease-out both;
}

@keyframes rs-fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.qdnapro-reveal-stage .rs-cta {
  margin-top: 20px;
}

.qdnapro-reveal-stage .rs-statrow {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-top: 16px;
}

.qdnapro-reveal-stage .rs-stat {
  padding: 8px 12px;
  border-radius: var(--r-3);
  background: var(--c-purple-100);
  color: var(--c-purple-700);
}
.qdnapro-reveal-stage .rs-stat .rs-stat-v {
  font-size: 17px;
  font-weight: 800;
}
.qdnapro-reveal-stage .rs-stat .rs-stat-k {
  font-size: 10px;
  color: var(--c-purple-600);
}

.qdnapro-reveal-stage[show-type=finale] {
  background: rgba(64, 73, 154, 0.95);
  background: color-mix(in srgb, var(--c-purple-500) 95%, transparent);
}

.qdnapro-reveal-stage[show-type=finale] .rs-scene {
  position: absolute;
  inset: 0;
}

.qdnapro-reveal-stage .rs-card.rs-card--finale .rs-card-icon {
  width: min(190px, 50%);
  margin-top: 84px;
}
.qdnapro-reveal-stage .rs-card.rs-card--finale .rs-card-hint {
  margin-top: 56px;
}

.qdnapro-reveal-stage.rs-finale-opening .rs-card--finale {
  pointer-events: none;
}
.qdnapro-reveal-stage.rs-finale-opening .rs-card--finale .rs-card-heading,
.qdnapro-reveal-stage.rs-finale-opening .rs-card--finale .rs-card-sub,
.qdnapro-reveal-stage.rs-finale-opening .rs-card--finale .rs-card-hint {
  transition: opacity 0.3s ease;
  opacity: 0;
}
.qdnapro-reveal-stage.rs-finale-opening .rs-card--finale .rs-card-icon {
  animation: rs-fin-boxpop 0.5s cubic-bezier(0.4, 0, 0.6, 1) 0.12s forwards;
}

@keyframes rs-fin-boxpop {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  35% {
    transform: scale(1.12);
    opacity: 1;
  }
  60% {
    transform: scale(0.86);
    opacity: 1;
  }
  100% {
    transform: scale(0.4);
    opacity: 0;
  }
}
.qdnapro-reveal-stage .rs-finale {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(320px, 100%);
  height: 100%;
  margin: 0 auto;
  box-sizing: border-box;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.qdnapro-reveal-stage .rs-finale.rs-fin-go, .qdnapro-reveal-stage .rs-finale.rs-fin-done {
  opacity: 1;
}
.qdnapro-reveal-stage .rs-finale::before {
  content: "";
  flex: 0 1 40px;
}

.qdnapro-reveal-stage .rs-fin-headzone {
  position: relative;
  width: 100%;
  min-height: 112px;
  display: grid;
  place-items: center;
}
.qdnapro-reveal-stage .rs-fin-headzone > * {
  grid-area: 1/1;
}

.qdnapro-reveal-stage .rs-fin-calctitle {
  font-size: 34px;
  font-weight: 800;
  color: var(--c-text-on-action);
  animation: rs-fin-calcpulse 1.4s ease-in-out infinite;
}

@keyframes rs-fin-calcpulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.55;
  }
}
.qdnapro-reveal-stage .rs-fin-result {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: scale(0.2);
  pointer-events: none;
}

.qdnapro-reveal-stage .rs-fin-resultstate .rs-fin-calctitle {
  animation: none;
  opacity: 0;
  transition: opacity 0.18s ease;
}
.qdnapro-reveal-stage .rs-fin-resultstate .rs-fin-result {
  animation: rs-unbox-bam 0.5s cubic-bezier(0.2, 1.6, 0.35, 1) forwards;
}

.qdnapro-reveal-stage .rs-fin-resheading {
  font-size: 24px;
  font-weight: 800;
  color: var(--c-text-on-action);
}

.qdnapro-reveal-stage .rs-fin-amp {
  margin: 2px 0;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--c-white-70);
}

.qdnapro-reveal-stage .rs-fin-result--pills .rs-fin-resheading {
  font-size: 36px;
  margin-bottom: 14px;
}

.qdnapro-reveal-stage .rs-fin-result--nosub .rs-fin-ressub {
  display: none;
}

.qdnapro-reveal-stage .rs-fin-winpills--groot .rs-fin-winpill {
  font-size: 26px;
}

.qdnapro-reveal-stage .rs-fin-winpills {
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 100%;
}

.qdnapro-reveal-stage .rs-fin-winpill {
  box-sizing: border-box;
  width: 100%;
  padding: 12px 20px;
  border: 1.5px solid var(--c-white-85);
  border-radius: 28px;
  font-size: 22px;
  font-weight: 800;
  line-height: 1.2;
  color: var(--c-text-on-action);
  text-align: center;
}

.qdnapro-reveal-stage .rs-fin-winpilltext {
  text-wrap: balance;
  overflow-wrap: break-word;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.qdnapro-reveal-stage .rs-fin-ressub {
  margin-top: 8px;
  font-size: 16px;
  font-weight: 600;
  color: var(--c-white-85);
}

.qdnapro-reveal-stage .rs-fin-board {
  position: relative;
  width: 100%;
  margin-top: 10px;
}
.qdnapro-reveal-stage .rs-fin-board.rs-fin-board--full {
  flex: 0 1 auto;
  max-height: 46vh;
  overflow-y: auto;
}

.qdnapro-reveal-stage .rs-fin-row {
  position: absolute;
  left: 0;
  right: 0;
  transition: top 0.38s cubic-bezier(0.3, 0.9, 0.3, 1);
}
.qdnapro-reveal-stage .rs-fin-row.rs-fin-row--static {
  position: static;
  margin-bottom: 14px;
  transition: none;
}

.qdnapro-reveal-stage .rs-fin-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 4px;
  font-size: 15px;
  font-weight: 700;
  color: var(--c-text-on-action);
}

.qdnapro-reveal-stage .rs-fin-name {
  flex: 1 1 auto;
  min-width: 0;
  margin-right: 12px;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-reveal-stage .rs-fin-score {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex: 0 0 auto;
}
.qdnapro-reveal-stage .rs-fin-score qdnapro-lottie {
  width: 18px;
  height: 18px;
  --ql-size: 18px;
}

.qdnapro-reveal-stage .rs-fin-val {
  font-size: 16px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.qdnapro-reveal-stage .rs-fin-row--winner .rs-fin-name {
  font-weight: 800;
}
.qdnapro-reveal-stage .rs-fin-row--winner .rs-fin-track {
  animation: rs-fin-winnerpulse 1.5s ease-in-out infinite;
  border-radius: var(--r-2);
}

@keyframes rs-fin-winnerpulse {
  0%, 100% {
    transform: scaleY(1);
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
  }
  50% {
    transform: scaleY(1.25);
    box-shadow: 0 0 14px 2px rgba(255, 255, 255, 0.35);
  }
}
.qdnapro-reveal-stage .rs-fin-more {
  margin-top: 6px;
  padding: 6px 12px;
  border: 0;
  border-radius: var(--r-3);
  background: transparent;
  font-size: 14px;
  font-weight: 700;
  font-family: inherit;
  color: var(--c-white-70);
  cursor: pointer;
}
.qdnapro-reveal-stage .rs-fin-more:disabled {
  cursor: default;
}
.qdnapro-reveal-stage .rs-fin-more:not(:disabled):hover {
  background: rgba(255, 255, 255, 0.14);
  color: var(--c-text-on-action);
}

.qdnapro-reveal-stage .rs-fin-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: auto;
  padding-bottom: 8px;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.2, 0.9, 0.3, 1.1);
}
.qdnapro-reveal-stage .rs-fin-actions .rs-cta {
  margin-top: 0;
}

.qdnapro-reveal-stage .rs-fin-actions-in .rs-fin-actions {
  opacity: 1;
  transform: none;
}

.qdnapro-reveal-stage .rs-fin-party qdnapro-icon,
.qdnapro-reveal-stage .rs-fin-actions .rs-cta qdnapro-icon {
  margin-left: 8px;
}

.qdnapro-reveal-stage .rs-fin-garland {
  position: absolute;
  top: 0;
  left: -4%;
  width: 108%;
  height: 72px;
  z-index: 4;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.6s ease;
  transform-origin: 50% 0;
  animation: rs-fin-garlandsway 5s ease-in-out infinite;
}
.qdnapro-reveal-stage .rs-fin-garland svg {
  width: 100%;
  height: 100%;
}
.qdnapro-reveal-stage .rs-fin-garland.rs-fin-garland-in {
  opacity: 1;
}

@keyframes rs-fin-garlandsway {
  0%, 100% {
    transform: rotate(-0.6deg);
  }
  50% {
    transform: rotate(0.6deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-reveal-stage .rs-fin-calctitle,
  .qdnapro-reveal-stage .rs-fin-garland,
  .qdnapro-reveal-stage .rs-fin-row--winner .rs-fin-track,
  .qdnapro-reveal-stage .rs-fsolo-calcbars .rs-podium-bar {
    animation: none;
  }
}
.qdnapro-reveal-stage .rs-fin-done .rs-fin-result {
  animation: none;
  opacity: 1;
  transform: none;
}
.qdnapro-reveal-stage .rs-fin-done .rs-fin-calctitle {
  opacity: 0;
}

.qdnapro-reveal-stage .rs-podium-wrap {
  position: relative;
  z-index: 2;
  width: min(280px, 90%);
}

.qdnapro-reveal-stage .rs-podium-spot {
  min-height: 20px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.qdnapro-reveal-stage .rs-podium-bars {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 10px;
  height: 190px;
  margin-top: 8px;
}

.qdnapro-reveal-stage .rs-podium-slot {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  width: 74px;
  height: 100%;
}

.qdnapro-reveal-stage .rs-podium-who {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: center;
  gap: 4px;
  margin-bottom: 6px;
}

.qdnapro-reveal-stage .rs-podium-who--stapel {
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: center;
  gap: 2px;
}

.qdnapro-reveal-stage .rs-podium-person {
  display: flex;
  flex-direction: column;
  align-items: center;
  opacity: 0;
  transform: translateY(-40px);
}

.qdnapro-reveal-stage .rs-podium-who--stapel .rs-podium-name {
  max-width: 88px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-reveal-stage .rs-podium-who-land .rs-podium-person {
  opacity: 1;
  transform: none;
  transition: all 0.45s cubic-bezier(0.2, 1.8, 0.4, 1);
}

.qdnapro-reveal-stage .rs-podium-name {
  margin-top: 3px;
  font-size: 12px;
  font-weight: 800;
}

.qdnapro-reveal-stage .rs-podium-bar {
  width: 64px;
  height: 0;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 6px;
  font-size: 18px;
  font-weight: 900;
  overflow: hidden;
  border-radius: var(--r-2) var(--r-2) 0 0;
  background: var(--rs-bar-color, var(--c-purple-300));
  color: var(--rs-bar-ink, var(--c-text-on-action));
  transition: height 0.5s cubic-bezier(0.2, 1.3, 0.4, 1);
}

.qdnapro-reveal-stage .rs-podium-floor {
  height: 4px;
  margin-top: -2px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.4);
}

.qdnapro-reveal-stage[show-type=finale-solo] {
  background: rgba(64, 73, 154, 0.95);
  background: color-mix(in srgb, var(--c-purple-500) 95%, transparent);
}

.qdnapro-reveal-stage[show-type=finale-solo] .rs-scene {
  position: absolute;
  inset: 0;
}

.qdnapro-reveal-stage .rs-fsolo-count {
  margin-top: 26px;
  text-align: center;
}
.qdnapro-reveal-stage .rs-fsolo-count qdnapro-score-count {
  font-size: 64px;
  font-weight: 800;
  line-height: 1;
  color: var(--c-text-on-action);
  font-variant-numeric: tabular-nums;
}

.qdnapro-reveal-stage .rs-fsolo-countlabel {
  margin-top: 8px;
  font-size: 15px;
  font-weight: 600;
  color: var(--c-white-85);
}

.qdnapro-reveal-stage .rs-fsolo-resultstate .rs-fsolo-count {
  display: none;
}

.qdnapro-reveal-stage .rs-fsolo-calcbars .rs-podium-bar {
  animation: rs-fsolo-barload 0.9s ease-in-out infinite;
}

.qdnapro-reveal-stage .rs-fsolo-calcbars .rs-podium-bar--2 {
  animation-delay: 0.15s;
}

.qdnapro-reveal-stage .rs-fsolo-calcbars .rs-podium-bar--3 {
  animation-delay: 0.3s;
}

@keyframes rs-fsolo-barload {
  0%, 100% {
    height: 16px;
  }
  50% {
    height: 58px;
  }
}
.qdnapro-reveal-stage .rs-fsolo-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  width: 100%;
  margin-top: 6px;
}

.qdnapro-reveal-stage .rs-fsolo .rs-fsolo-pill,
.qdnapro-reveal-stage .rs-fsolo .rs-fsolo-winners,
.qdnapro-reveal-stage .rs-fsolo .rs-statrow {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.2, 0.9, 0.3, 1.1);
}

.qdnapro-reveal-stage .rs-fsolo-pill-in .rs-fsolo-pill,
.qdnapro-reveal-stage .rs-fsolo-pill-in .rs-fsolo-winners,
.qdnapro-reveal-stage .rs-fsolo-pill-in .rs-statrow {
  opacity: 1;
  transform: none;
}

.qdnapro-reveal-stage .rs-fsolo-winners {
  gap: 8px;
  margin-top: 16px;
}

.qdnapro-reveal-stage .rs-fin-winpill--klein {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  border-radius: 999px;
  border-color: var(--c-white-70);
  font-size: 15px;
  font-weight: 700;
  text-align: left;
}
.qdnapro-reveal-stage .rs-fin-winpill--klein qdnapro-lottie {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  --ql-size: 16px;
}

.qdnapro-reveal-stage .rs-fsolo-winname {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-reveal-stage .rs-fsolo-winpts {
  flex: 0 0 auto;
  margin-left: 2px;
  font-variant-numeric: tabular-nums;
  color: var(--c-white-85);
}

.qdnapro-reveal-stage .rs-fsolo-winners + .rs-fsolo-pill {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--c-white-70);
}

.qdnapro-reveal-stage .rs-fin-winpill--score {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.qdnapro-reveal-stage .rs-fin-winpill--score qdnapro-lottie {
  width: 22px;
  height: 22px;
  --ql-size: 22px;
}

.qdnapro-reveal-stage[show-type=unbox] {
  background: rgba(64, 73, 154, 0.95);
  background: color-mix(in srgb, var(--c-purple-500) 95%, transparent);
}

.qdnapro-reveal-stage[show-type=unbox] .rs-scene {
  position: absolute;
  inset: 0;
}

.qdnapro-reveal-stage .rs-card.rs-card--unbox {
  position: absolute;
  inset: 0;
  z-index: 3;
}

.qdnapro-reveal-stage .rs-fx-back {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.qdnapro-reveal-stage .rs-card-hint {
  display: none;
}

.qdnapro-reveal-stage .rs-card.rs-card--unbox {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 0 24px 24px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  animation: none;
  box-sizing: border-box;
}
.qdnapro-reveal-stage .rs-card.rs-card--unbox[hidden] {
  display: none;
}
.qdnapro-reveal-stage .rs-card.rs-card--unbox::before {
  content: "";
  order: 0;
  flex: 0 1 150px;
}
.qdnapro-reveal-stage .rs-card.rs-card--unbox::after {
  content: "";
  order: 5;
  flex: 1 1 0;
}
.qdnapro-reveal-stage .rs-card.rs-card--unbox .rs-card-heading {
  order: 1;
}
.qdnapro-reveal-stage .rs-card.rs-card--unbox .rs-card-sub {
  order: 2;
}
.qdnapro-reveal-stage .rs-card.rs-card--unbox .rs-card-icon {
  order: 3;
}
.qdnapro-reveal-stage .rs-card.rs-card--unbox .rs-card-hint {
  order: 4;
}
.qdnapro-reveal-stage .rs-card.rs-card--unbox .rs-card-heading {
  margin-top: 0;
  font-size: 40px;
  font-weight: 800;
  letter-spacing: 0.2px;
  line-height: 1.1;
  color: var(--c-text-on-action);
  text-wrap: balance;
}
.qdnapro-reveal-stage .rs-card.rs-card--unbox .rs-card-sub {
  margin-top: 10px;
  font-size: 17px;
  font-weight: 500;
  color: var(--c-white-85);
}
.qdnapro-reveal-stage .rs-card.rs-card--unbox .rs-card-icon {
  flex: 0 1 auto;
  width: min(230px, 59%);
  aspect-ratio: 1/1;
  height: auto;
  min-height: 0;
  margin: 64px auto 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
  animation: none;
  transition: transform 0.12s ease;
  will-change: transform;
}
.qdnapro-reveal-stage .rs-card.rs-card--unbox .rs-card-icon qdnapro-lottie {
  width: 100%;
  height: 100%;
}
.qdnapro-reveal-stage .rs-card.rs-card--unbox .rs-card-hint {
  display: block;
  margin-top: 44px;
  font-size: 17px;
  font-weight: 600;
  color: var(--c-text-on-action);
}

.qdnapro-reveal-stage .rs-card.rs-unbox-press .rs-card-icon {
  transform: scale(0.9, 0.8) translateY(12px);
}

.qdnapro-reveal-stage.rs-unbox-opening .rs-card--unbox {
  pointer-events: none;
}
.qdnapro-reveal-stage.rs-unbox-opening .rs-card--unbox .rs-card-heading,
.qdnapro-reveal-stage.rs-unbox-opening .rs-card--unbox .rs-card-sub,
.qdnapro-reveal-stage.rs-unbox-opening .rs-card--unbox .rs-card-hint {
  transition: opacity 0.3s ease;
  opacity: 0;
}
.qdnapro-reveal-stage.rs-unbox-opening .rs-card--unbox .rs-card-icon {
  transition: opacity 0.35s ease 0.45s;
  opacity: 0;
}

.qdnapro-reveal-stage .rs-unbox {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
}
.qdnapro-reveal-stage .rs-unbox::before {
  content: "";
  flex: 0 1 72px;
}

.qdnapro-reveal-stage .rs-unbox-you {
  opacity: 0;
}

.qdnapro-reveal-stage .rs-unbox-youname {
  font-size: 38px;
  font-weight: 800;
  line-height: 1.15;
  color: var(--c-text-on-action);
  text-wrap: balance;
}

.qdnapro-reveal-stage .rs-unbox-youlabel {
  margin-top: 4px;
  font-size: 15px;
  font-weight: 600;
  color: var(--c-white-85);
}

.qdnapro-reveal-stage .rs-unbox-go .rs-unbox-you {
  animation: rs-unbox-launch 0.62s cubic-bezier(0.18, 1.35, 0.4, 1) forwards;
}

@keyframes rs-unbox-launch {
  0% {
    opacity: 0;
    transform: translateY(300px) scale(0.35);
  }
  60% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: none;
  }
}
.qdnapro-reveal-stage .rs-unbox-gloves {
  position: relative;
  flex: 0 1 180px;
  width: auto;
  aspect-ratio: 1/1;
  min-height: 96px;
  margin: 26px 0 10px;
  opacity: 0;
  transform: scale(0.2);
}
.qdnapro-reveal-stage .rs-unbox-gloves qdnapro-lottie {
  position: absolute;
  inset: 0;
  --ql-size: 100%;
}

.qdnapro-reveal-stage .rs-unbox--multi .rs-unbox-gloves {
  flex-basis: 150px;
  margin: 18px 0 4px;
}

.qdnapro-reveal-stage .rs-unbox-gloves.rs-unbox-bam {
  animation: rs-unbox-bam 0.5s cubic-bezier(0.2, 1.6, 0.35, 1) forwards;
}

@keyframes rs-unbox-bam {
  0% {
    opacity: 0;
    transform: scale(0.2) rotate(-14deg);
  }
  55% {
    opacity: 1;
    transform: scale(1.16) rotate(3deg);
  }
  100% {
    opacity: 1;
    transform: none;
  }
}
.qdnapro-reveal-stage .rs-unbox-shock {
  position: absolute;
  inset: -30%;
  border: 5px solid var(--c-white-85);
  border-radius: 50%;
  opacity: 0;
  transform: scale(0.3);
  pointer-events: none;
}

.qdnapro-reveal-stage .rs-unbox-bam .rs-unbox-shock {
  animation: rs-unbox-shock 0.55s ease-out 0.1s forwards;
}

@keyframes rs-unbox-shock {
  0% {
    opacity: 0.9;
    transform: scale(0.35);
    border-width: 6px;
  }
  100% {
    opacity: 0;
    transform: scale(1.25);
    border-width: 1px;
  }
}
.qdnapro-reveal-stage .rs-unbox-opp {
  margin-top: 26px;
  font-size: 38px;
  font-weight: 800;
  line-height: 1.15;
  color: var(--c-text-on-action);
  text-wrap: balance;
  opacity: 0;
}

.qdnapro-reveal-stage .rs-unbox-opp-go .rs-unbox-opp {
  animation: rs-unbox-from-right 0.5s cubic-bezier(0.2, 0.9, 0.3, 1.1) forwards;
}

@keyframes rs-unbox-from-right {
  0% {
    opacity: 0;
    transform: translateX(90px);
  }
  100% {
    opacity: 1;
    transform: none;
  }
}
.qdnapro-reveal-stage .rs-unbox-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 18px;
}

.qdnapro-reveal-stage .rs-unbox-oppitem {
  font-size: 23px;
  font-weight: 800;
  color: var(--c-text-on-action);
  opacity: 0;
  transform: translateY(14px);
}
.qdnapro-reveal-stage .rs-unbox-oppitem.rs-unbox-oppitem-in {
  animation: rs-unbox-oppitem-in 0.38s cubic-bezier(0.2, 0.9, 0.3, 1.15) forwards;
}
.qdnapro-reveal-stage .rs-unbox-oppitem.rs-unbox-more {
  font-size: 20px;
  color: var(--c-purple-700);
}

@keyframes rs-unbox-oppitem-in {
  100% {
    opacity: 1;
    transform: none;
  }
}
.qdnapro-reveal-stage .rs-unbox-count {
  margin-top: auto;
  opacity: 0;
  transition: opacity 0.4s ease;
}

.qdnapro-reveal-stage .rs-unbox-count-in .rs-unbox-count {
  opacity: 1;
}

.qdnapro-reveal-stage .rs-unbox-countnum {
  font-size: 48px;
  font-weight: 800;
  line-height: 1;
  color: var(--c-text-on-action);
  font-variant-numeric: tabular-nums;
}

.qdnapro-reveal-stage .rs-unbox-countlabel {
  margin-top: 6px;
  font-size: 15px;
  font-weight: 600;
  color: var(--c-white-85);
}

.qdnapro-reveal-stage .rs-unbox .rs-cta {
  margin-top: 28px;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.2, 0.9, 0.3, 1.1);
}

.qdnapro-reveal-stage .rs-unbox-cta-in .rs-cta {
  opacity: 1;
  transform: none;
}

.qdnapro-reveal-stage .rs-unbox-done .rs-unbox-you,
.qdnapro-reveal-stage .rs-unbox-done .rs-unbox-gloves,
.qdnapro-reveal-stage .rs-unbox-done .rs-unbox-opp,
.qdnapro-reveal-stage .rs-unbox-done .rs-unbox-oppitem,
.qdnapro-reveal-stage .rs-unbox-done .rs-unbox-count,
.qdnapro-reveal-stage .rs-unbox-done .rs-cta {
  opacity: 1;
  transform: none;
}

.qdnapro-reveal-stage .rs-unbox--simple .rs-unbox-youname {
  max-width: 300px;
  font-size: 34px;
}

.qdnapro-reveal-stage .rs-unbox--simple .rs-unbox-gloves {
  flex-basis: 130px;
  min-height: 80px;
  margin: 34px 0 6px;
}

.qdnapro-reveal-stage .rs-unbox-revealsub {
  max-width: 280px;
  margin-top: 22px;
  font-size: 15px;
  font-weight: 600;
  color: var(--c-white-85);
  text-wrap: balance;
  opacity: 0;
  transform: translateY(12px);
}

.qdnapro-reveal-stage .rs-unbox-sub-in .rs-unbox-revealsub {
  animation: rs-unbox-oppitem-in 0.38s cubic-bezier(0.2, 0.9, 0.3, 1.15) forwards;
}

.qdnapro-reveal-stage .rs-unbox-done .rs-unbox-revealsub {
  opacity: 1;
  transform: none;
}

.qdnapro-reveal-stage .rs-cta qdnapro-icon {
  margin-left: 8px;
}

.qdnapro-reveal-stage .rs-unbox--nocount .rs-cta {
  margin-top: auto;
}

.qdnapro-reveal-stage[show-type=finale-none] .rs-card--finale .rs-card-icon {
  animation: rs-fnone-beat 1.15s ease-in-out infinite;
}

@keyframes rs-fnone-beat {
  0%, 100% {
    transform: scale(1);
  }
  14% {
    transform: scale(1.13);
  }
  28% {
    transform: scale(1);
  }
  42% {
    transform: scale(1.08);
  }
  56% {
    transform: scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-reveal-stage[show-type=finale-none] .rs-card--finale .rs-card-icon {
    animation: none;
  }
}
.qdnapro-reveal-stage[show-type=finale-none] .rs-card--finale.rs-unbox-press .rs-card-icon {
  animation: none;
}

.qdnapro-reveal-stage .rs-fnone .rs-fin-headzone {
  min-height: 0;
}

.qdnapro-reveal-stage .rs-fnone .rs-fsolo-body {
  justify-content: center;
}

.qdnapro-reveal-stage .rs-statrow--tellers {
  flex-wrap: wrap;
  gap: 12px;
}
.qdnapro-reveal-stage .rs-statrow--tellers .rs-stat {
  min-width: 92px;
  padding: 12px 16px;
}
.qdnapro-reveal-stage .rs-statrow--tellers .rs-stat-v .sc-num {
  font-size: 26px;
  line-height: 1.1;
  letter-spacing: 0;
  color: var(--c-purple-700);
}
.qdnapro-reveal-stage .rs-statrow--tellers .rs-stat-k {
  margin-top: 2px;
  font-size: 11px;
}

.qdnapro-row-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-sizing: border-box;
  padding: 0;
  border: none;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.04);
  color: var(--c-grey-500);
  cursor: pointer;
  user-select: none;
  outline: none;
  transition: background 120ms ease, color 120ms ease;
}
.qdnapro-row-btn *, .qdnapro-row-btn *::before, .qdnapro-row-btn *::after {
  box-sizing: border-box;
}
.qdnapro-row-btn svg,
.qdnapro-row-btn qdnapro-icon {
  display: inline-flex;
  flex-shrink: 0;
  pointer-events: none;
  color: inherit;
}
.qdnapro-row-btn svg {
  fill: currentColor;
}
.qdnapro-row-btn.row-btn-size-36 {
  width: 36px;
  height: 36px;
}
.qdnapro-row-btn.row-btn-size-36 svg,
.qdnapro-row-btn.row-btn-size-36 qdnapro-icon {
  width: 20px;
  height: 20px;
}
.qdnapro-row-btn.row-btn-size-40 {
  width: 40px;
  height: 40px;
}
.qdnapro-row-btn.row-btn-size-40 svg,
.qdnapro-row-btn.row-btn-size-40 qdnapro-icon {
  width: 20px;
  height: 20px;
}
.qdnapro-row-btn.row-btn-size-28 {
  width: 28px;
  height: 28px;
  border-radius: 4px;
}
.qdnapro-row-btn.row-btn-size-28 svg,
.qdnapro-row-btn.row-btn-size-28 qdnapro-icon {
  width: 16px;
  height: 16px;
}
.qdnapro-row-btn:hover:not(.row-btn-disabled) {
  background: rgba(0, 0, 0, 0.08);
  color: var(--c-grey-950);
}
.qdnapro-row-btn:active:not(.row-btn-disabled) {
  background: rgba(0, 0, 0, 0.12);
}
.qdnapro-row-btn:focus-visible {
  box-shadow: 0 0 0 2px var(--c-focus-ring, #40499a), 0 0 0 5px var(--c-focus-glow, rgba(70, 82, 243, 0.2));
}
.qdnapro-row-btn.row-btn-active {
  background: rgba(70, 82, 243, 0.12);
  color: var(--c-purple-500);
}
.qdnapro-row-btn.row-btn-active:hover:not(.row-btn-disabled) {
  background: rgba(70, 82, 243, 0.18);
  color: var(--c-purple-600);
}
.qdnapro-row-btn.row-btn-active.row-btn-variant-concept {
  background: rgba(245, 158, 11, 0.16);
  color: var(--c-warn-amber-600);
}
.qdnapro-row-btn.row-btn-active.row-btn-variant-concept:hover:not(.row-btn-disabled) {
  background: rgba(245, 158, 11, 0.24);
  color: var(--c-warn-amber-600);
}
.qdnapro-row-btn.row-btn-disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

[data-theme=dark] .qdnapro-row-btn {
  background: rgba(255, 255, 255, 0.05);
  color: #9ca3af;
}
[data-theme=dark] .qdnapro-row-btn:hover:not(.row-btn-disabled) {
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
}
[data-theme=dark] .qdnapro-row-btn:active:not(.row-btn-disabled) {
  background: rgba(255, 255, 255, 0.14);
}
[data-theme=dark] .qdnapro-row-btn.row-btn-active {
  background: rgba(70, 82, 243, 0.2);
  color: #a5acff;
}
[data-theme=dark] .qdnapro-row-btn.row-btn-active:hover:not(.row-btn-disabled) {
  background: rgba(70, 82, 243, 0.3);
  color: #ffffff;
}
[data-theme=dark] .qdnapro-row-btn.row-btn-active.row-btn-variant-concept {
  background: rgba(245, 158, 11, 0.22);
  color: #fbbf24;
}
[data-theme=dark] .qdnapro-row-btn.row-btn-active.row-btn-variant-concept:hover:not(.row-btn-disabled) {
  background: rgba(245, 158, 11, 0.32);
  color: #fcd34d;
}

.qdnapro-segment {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 3px;
  background: #f0f1f2;
  border-radius: 10px;
  box-sizing: border-box;
  position: relative;
}
.qdnapro-segment.segment-size-small {
  border-radius: 8px;
}
.qdnapro-segment.segment-disabled {
  background: rgba(240, 241, 242, 0.7);
  pointer-events: none;
}
[data-theme=dark] .qdnapro-segment, .theme-dark .qdnapro-segment {
  background: #2a2d35;
}
[data-theme=dark] .qdnapro-segment.segment-disabled, .theme-dark .qdnapro-segment.segment-disabled {
  background: rgba(42, 45, 53, 0.6);
}

.segment-track-pill {
  position: absolute;
  top: 3px;
  left: 0;
  height: calc(100% - 6px);
  width: 0;
  transform: translateX(0);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.08);
  pointer-events: none;
  z-index: 0;
  transition: transform 280ms cubic-bezier(0.4, 0, 0.2, 1), width 280ms cubic-bezier(0.4, 0, 0.2, 1);
}
.segment-size-small .segment-track-pill {
  border-radius: 6px;
}
[data-theme=dark] .qdnapro-segment .segment-track-pill, .theme-dark .qdnapro-segment .segment-track-pill {
  background: #1e2028;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
}

.qdnapro-segment-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 64px;
  height: 36px;
  padding: 0 14px;
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  border-radius: 8px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  color: rgba(11, 11, 13, 0.55);
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  outline: none;
  border: none;
  background: transparent;
  transition: color 200ms ease, background 150ms ease, box-shadow 150ms ease;
}
.qdnapro-segment-item .segment-item-icon {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  color: inherit;
}
.qdnapro-segment-item .segment-item-label {
  position: relative;
}
.qdnapro-segment-item .segment-item-label::after {
  content: attr(data-text);
  display: block;
  height: 0;
  overflow: hidden;
  visibility: hidden;
  font-weight: 600;
  pointer-events: none;
}
.qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):hover {
  color: rgba(11, 11, 13, 0.75);
  background: rgba(11, 11, 13, 0.06);
}
.qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):active {
  background: rgba(11, 11, 13, 0.1);
  color: rgba(11, 11, 13, 0.85);
}
.qdnapro-segment-item:focus-visible {
  box-shadow: 0 0 0 2px #40499a, 0 0 0 4px rgba(70, 82, 243, 0.25);
}
.qdnapro-segment-item.segment-item-active {
  color: #0b0b0d;
  font-weight: 600;
  cursor: default;
}
.qdnapro-segment-item.segment-item-active:focus-visible {
  box-shadow: 0 0 0 2px #40499a, 0 0 0 4px rgba(70, 82, 243, 0.25);
}
.qdnapro-segment-item.segment-item-disabled {
  color: #898e99;
  cursor: not-allowed;
  pointer-events: none;
  opacity: 0.7;
}
.qdnapro-segment-item.segment-item-icon-only {
  min-width: 0;
  width: 36px;
  padding: 0;
  gap: 0;
}
.qdnapro-segment-item.segment-item-icon-only .segment-item-label {
  display: none;
}
.segment-size-snug .qdnapro-segment-item {
  height: 32px;
  padding: 0 12px;
  border-radius: 8px;
  font-size: 12px;
  gap: 4px;
}
.segment-size-snug .qdnapro-segment-item .segment-item-icon {
  width: 16px;
  height: 16px;
}
.segment-size-snug .qdnapro-segment-item.segment-item-icon-only {
  width: 32px;
  padding: 0;
}
.segment-size-small .qdnapro-segment-item {
  height: 28px;
  padding: 0 10px;
  border-radius: 6px;
  font-size: 12px;
  gap: 4px;
}
.segment-size-small .qdnapro-segment-item .segment-item-icon {
  width: 14px;
  height: 14px;
}
.segment-size-small .qdnapro-segment-item.segment-item-icon-only {
  width: 28px;
  padding: 0;
}
[data-theme=dark] .qdnapro-segment-item, .theme-dark .qdnapro-segment-item {
  color: rgba(240, 241, 242, 0.5);
}
[data-theme=dark] .qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):hover, .theme-dark .qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):hover {
  color: rgba(240, 241, 242, 0.75);
  background: rgba(240, 241, 242, 0.08);
}
[data-theme=dark] .qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):active, .theme-dark .qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):active {
  background: rgba(240, 241, 242, 0.12);
  color: rgba(240, 241, 242, 0.9);
}
[data-theme=dark] .qdnapro-segment-item.segment-item-active, .theme-dark .qdnapro-segment-item.segment-item-active {
  color: #f0f1f2;
}
[data-theme=dark] .qdnapro-segment-item.segment-item-disabled, .theme-dark .qdnapro-segment-item.segment-item-disabled {
  color: #55585f;
  opacity: 0.6;
}

.qdnapro-segment.segment-variant-sliding-pills {
  background: transparent;
  padding: 0;
  gap: 4px;
  border-radius: 0;
}
.qdnapro-segment.segment-variant-sliding-pills .segment-track-pill {
  top: 0;
  height: 100%;
  border-radius: 20px;
  background: var(--c-purple-50);
  box-shadow: none;
}
.qdnapro-segment.segment-variant-sliding-pills .qdnapro-segment-item {
  border-radius: 20px;
}
.qdnapro-segment.segment-variant-sliding-pills .qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled) {
  color: var(--c-purple-500);
}
.qdnapro-segment.segment-variant-sliding-pills .qdnapro-segment-item.segment-item-disabled {
  color: var(--c-text-disabled-pp);
}
.qdnapro-segment.segment-variant-sliding-pills .qdnapro-segment-item.segment-item-active {
  color: var(--c-purple-700);
}
.qdnapro-segment.segment-variant-sliding-pills .qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):hover {
  color: var(--c-purple-500);
  background: rgba(65, 73, 154, 0.06);
}
.qdnapro-segment.segment-variant-sliding-pills .qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):active {
  color: var(--c-purple-500);
  background: rgba(65, 73, 154, 0.1);
}

.qdnapro-segment.segment-variant-tiles {
  background: transparent;
  padding: 0;
  gap: 4px;
  border-radius: 0;
}
.qdnapro-segment.segment-variant-tiles .segment-track-pill {
  top: 0;
  height: 100%;
  border-radius: 8px;
  background: var(--c-purple-50, #e6e9ff);
  box-shadow: none;
}
.qdnapro-segment.segment-variant-tiles .qdnapro-segment-item {
  border-radius: 8px;
  color: var(--c-grey-500);
}
.qdnapro-segment.segment-variant-tiles .qdnapro-segment-item.segment-item-active {
  color: var(--c-purple-500);
}
.qdnapro-segment.segment-variant-tiles .qdnapro-segment-item:not(.segment-item-active):not(.segment-item-disabled):hover {
  background: var(--c-grey-50);
  color: var(--c-grey-950);
}
[data-theme=dark] .qdnapro-segment.segment-variant-tiles .segment-track-pill, .theme-dark .qdnapro-segment.segment-variant-tiles .segment-track-pill {
  background: var(--c-bg-secondary-purple);
}
[data-theme=dark] .qdnapro-segment.segment-variant-tiles .qdnapro-segment-item.segment-item-active, .theme-dark .qdnapro-segment.segment-variant-tiles .qdnapro-segment-item.segment-item-active {
  color: var(--c-purple-100, #c0c5ff);
}

.qdnapro-segment-item .segment-item-dot {
  position: absolute;
  top: 4px;
  right: 6px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  pointer-events: none;
}

.qdnapro-segment-item .segment-item-dot-warning {
  background: var(--c-warn-yellow-600);
}

.qdnapro-segment-item .segment-item-dot-alert {
  background: var(--c-favorite-heart);
}

.qdnapro-segment-tiles {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}
.qdnapro-segment-tiles *, .qdnapro-segment-tiles *::before, .qdnapro-segment-tiles *::after {
  box-sizing: border-box;
}

.qdnapro-segment-tiles .segment-label {
  font-size: 11px;
  font-weight: 500;
  color: rgba(11, 11, 13, 0.55);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.qdnapro-segment-tiles .segment-shell {
  position: relative;
}

.qdnapro-segment-tiles .segment-track {
  position: relative;
  display: flex;
  background: var(--c-grey-50);
  border-radius: 10px;
  padding: 3px;
  gap: 0;
}

.qdnapro-segment-tiles .segment-pill {
  position: absolute;
  top: 3px;
  bottom: 3px;
  border-radius: 8px;
  background: var(--c-bg-card);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.08);
  pointer-events: none;
  z-index: 0;
  transition: left 280ms cubic-bezier(0.4, 0, 0.2, 1), width 280ms cubic-bezier(0.4, 0, 0.2, 1);
}

.qdnapro-segment-tiles .segment-tile {
  position: relative;
  z-index: 1;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 10px 8px;
  border-radius: 7px;
  cursor: pointer;
  user-select: none;
  outline: none;
  transition: color 180ms ease;
}
.qdnapro-segment-tiles .segment-tile > qdnapro-icon {
  font-size: 18px;
  color: rgba(11, 11, 13, 0.55);
  transition: color 180ms ease;
  pointer-events: none;
}
.qdnapro-segment-tiles .segment-tile > span {
  font-size: 10px;
  font-weight: 500;
  color: rgba(11, 11, 13, 0.55);
  text-align: center;
  line-height: 1.3;
  transition: color 180ms ease;
  pointer-events: none;
}
.qdnapro-segment-tiles .segment-tile:focus-visible {
  box-shadow: 0 0 0 2px var(--focus-ring);
  border-radius: 7px;
}
.qdnapro-segment-tiles .segment-tile.active > qdnapro-icon {
  color: var(--c-purple-600);
}
.qdnapro-segment-tiles .segment-tile.active > span {
  color: var(--c-purple-600);
  font-weight: 600;
}
.qdnapro-segment-tiles .segment-tile:not(.active):not(.segment-tile--disabled):hover > qdnapro-icon {
  color: rgba(11, 11, 13, 0.75);
}
.qdnapro-segment-tiles .segment-tile:not(.active):not(.segment-tile--disabled):hover > span {
  color: rgba(11, 11, 13, 0.75);
}
.qdnapro-segment-tiles .segment-tile--disabled {
  cursor: not-allowed;
  opacity: 0.45;
}
.qdnapro-segment-tiles .segment-tile--disabled > qdnapro-icon {
  color: rgba(11, 11, 13, 0.45);
}
.qdnapro-segment-tiles .segment-tile--disabled > span {
  color: rgba(11, 11, 13, 0.45);
}

.qdnapro-segment-tiles--smiley .segment-tile {
  gap: 6px;
  padding: 12px 10px;
}
.qdnapro-segment-tiles--smiley .segment-tile-smileys {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex-wrap: nowrap;
  pointer-events: none;
}
.qdnapro-segment-tiles--smiley .segment-tile-smileys qdnapro-smiley {
  pointer-events: none;
}

.qdnapro-segment-tiles .segment-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(100% + 8px);
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 38px 12px 14px;
  min-height: 52px;
  background: var(--c-bg-card);
  border-radius: 10px;
  border: 0.5px solid var(--c-border-soft);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14), 0 2px 6px rgba(0, 0, 0, 0.08);
  z-index: 20;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(6px);
  transition: opacity 180ms ease, transform 180ms ease, visibility 0s linear 180ms;
}
.qdnapro-segment-tiles .segment-overlay.is-below {
  bottom: auto;
  top: calc(100% + 8px);
  transform: translateY(-6px);
}
.qdnapro-segment-tiles .segment-overlay.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition: opacity 180ms ease, transform 180ms ease;
}
.qdnapro-segment-tiles .segment-overlay .segment-overlay-close {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: rgba(11, 11, 13, 0.45);
  font-size: 16px;
  cursor: pointer;
  transition: background 140ms ease, color 140ms ease;
}
.qdnapro-segment-tiles .segment-overlay .segment-overlay-close:hover {
  background: var(--c-black-06);
  color: rgba(11, 11, 13, 0.75);
}
.qdnapro-segment-tiles .segment-overlay .segment-overlay-close:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring);
}
.qdnapro-segment-tiles .segment-overlay .segment-desc-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--c-bg-card-hover);
  border: 0.5px solid var(--c-border-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.qdnapro-segment-tiles .segment-overlay .segment-desc-icon qdnapro-icon {
  font-size: 16px;
  color: var(--c-purple-600);
}
.qdnapro-segment-tiles .segment-overlay .segment-desc-icon--warning {
  background: var(--c-signal-orange-bg);
  border-color: rgba(214, 122, 47, 0.25);
}
.qdnapro-segment-tiles .segment-overlay .segment-desc-icon--warning qdnapro-icon {
  color: var(--c-warn-amber-500);
}
.qdnapro-segment-tiles .segment-overlay .segment-desc-text {
  flex: 1;
}
.qdnapro-segment-tiles .segment-overlay .segment-desc-text strong {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--c-purple-600);
  line-height: 1.3;
  margin-bottom: 3px;
}
.qdnapro-segment-tiles .segment-overlay .segment-desc-text p {
  font-size: 11px;
  color: rgba(11, 11, 13, 0.65);
  line-height: 1.5;
  margin: 0;
}

qdnapro-segment-tile {
  display: none !important;
}

[data-theme=dark] .qdnapro-segment-tiles .segment-track,
.theme-dark .qdnapro-segment-tiles .segment-track {
  background: #2a2d35;
}
[data-theme=dark] .qdnapro-segment-tiles .segment-tile > qdnapro-icon,
.theme-dark .qdnapro-segment-tiles .segment-tile > qdnapro-icon {
  color: rgba(240, 241, 242, 0.5);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-tile > span,
.theme-dark .qdnapro-segment-tiles .segment-tile > span {
  color: rgba(240, 241, 242, 0.5);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-tile.active > qdnapro-icon,
.theme-dark .qdnapro-segment-tiles .segment-tile.active > qdnapro-icon {
  color: var(--c-brand-purple);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-tile.active > span,
.theme-dark .qdnapro-segment-tiles .segment-tile.active > span {
  color: var(--c-brand-purple);
  font-weight: 600;
}
[data-theme=dark] .qdnapro-segment-tiles .segment-tile:not(.active):not(.segment-tile--disabled):hover > qdnapro-icon,
.theme-dark .qdnapro-segment-tiles .segment-tile:not(.active):not(.segment-tile--disabled):hover > qdnapro-icon {
  color: rgba(240, 241, 242, 0.75);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-tile:not(.active):not(.segment-tile--disabled):hover > span,
.theme-dark .qdnapro-segment-tiles .segment-tile:not(.active):not(.segment-tile--disabled):hover > span {
  color: rgba(240, 241, 242, 0.75);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-tile--disabled > qdnapro-icon,
.theme-dark .qdnapro-segment-tiles .segment-tile--disabled > qdnapro-icon {
  color: rgba(240, 241, 242, 0.3);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-tile--disabled > span,
.theme-dark .qdnapro-segment-tiles .segment-tile--disabled > span {
  color: rgba(240, 241, 242, 0.3);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-overlay .segment-overlay-close,
.theme-dark .qdnapro-segment-tiles .segment-overlay .segment-overlay-close {
  color: rgba(240, 241, 242, 0.45);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-overlay .segment-overlay-close:hover,
.theme-dark .qdnapro-segment-tiles .segment-overlay .segment-overlay-close:hover {
  background: rgba(240, 241, 242, 0.08);
  color: rgba(240, 241, 242, 0.75);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-overlay .segment-desc-icon qdnapro-icon,
.theme-dark .qdnapro-segment-tiles .segment-overlay .segment-desc-icon qdnapro-icon {
  color: var(--c-brand-purple);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-overlay .segment-desc-icon--warning,
.theme-dark .qdnapro-segment-tiles .segment-overlay .segment-desc-icon--warning {
  background: rgba(214, 122, 47, 0.15);
  border-color: rgba(214, 122, 47, 0.3);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-overlay .segment-desc-icon--warning qdnapro-icon,
.theme-dark .qdnapro-segment-tiles .segment-overlay .segment-desc-icon--warning qdnapro-icon {
  color: #e8994a;
}
[data-theme=dark] .qdnapro-segment-tiles .segment-overlay .segment-desc-text strong,
.theme-dark .qdnapro-segment-tiles .segment-overlay .segment-desc-text strong {
  color: var(--c-brand-purple);
}
[data-theme=dark] .qdnapro-segment-tiles .segment-overlay .segment-desc-text p,
.theme-dark .qdnapro-segment-tiles .segment-overlay .segment-desc-text p {
  color: rgba(240, 241, 242, 0.65);
}

.qdnapro-score-scale {
  --qss-neutral-idle-bg: color-mix(in srgb, var(--theme-btn-color, #40499a) 10%, #fff);
  --qss-neutral-idle-text: var(--theme-btn-color, #40499a);
  --qss-neutral-selected-bg: var(--theme-btn-selected-color, var(--theme-btn-color, #40499a));
  --qss-neutral-selected-text: var(--theme-btn-selected-text-color, #fff);
  --qss-separator: rgba(0, 0, 0, 0.08);
  --qss-selected-shadow: 0 8px 20px rgba(20, 25, 80, 0.16), 0 2px 6px rgba(20, 25, 80, 0.10);
  --qss-grow: 7px;
  --qss-grad-1: var(--c-warn-red-500, #dc2626);
  --qss-grad-2: var(--c-warn-yellow-500, #fbbf24);
  --qss-grad-3: var(--c-success-bright, #1d9e75);
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-score-scale .qss-bar {
  display: flex;
  align-items: center;
  width: 100%;
  height: 56px;
  overflow: visible;
  box-shadow: var(--shadow-card, 0 1px 2px rgba(20, 25, 80, 0.04));
  touch-action: pan-y;
}

.qdnapro-score-scale.is-dragging .qss-segment {
  transition: none;
}

.qdnapro-score-scale .qss-segment {
  box-sizing: border-box;
  flex: 1 1 0;
  min-width: 0;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-right: 1px solid var(--qss-separator);
  background: var(--qss-neutral-idle-bg);
  color: var(--qss-neutral-idle-text);
  font-family: inherit;
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  position: relative;
  z-index: 0;
  transition: height 150ms cubic-bezier(0.34, 1.56, 0.64, 1), border-radius 150ms cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 150ms ease-out, background-color 150ms ease-out, color 150ms ease-out, filter 150ms ease-out, opacity 150ms ease-out;
}

.qdnapro-score-scale .qss-segment:first-child {
  border-top-left-radius: var(--r-3, 12px);
  border-bottom-left-radius: var(--r-3, 12px);
}

.qdnapro-score-scale .qss-segment:last-child {
  border-right: none;
  border-top-right-radius: var(--r-3, 12px);
  border-bottom-right-radius: var(--r-3, 12px);
}

.qdnapro-score-scale .qss-segment:has(+ .qss-segment.is-selected) {
  border-right-color: transparent;
}

.qdnapro-score-scale .qss-segment:hover:not(:disabled):not(.is-selected) {
  filter: brightness(0.97);
}

.qdnapro-score-scale .qss-segment:focus {
  outline: none;
}

.qdnapro-score-scale .qss-segment:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--c-action-500, #4652f3);
  z-index: 3;
}

.qdnapro-score-scale .qss-num {
  line-height: 1;
  pointer-events: none;
}

.qdnapro-score-scale .qss-segment.is-selected {
  height: calc(56px + var(--qss-grow) * 2);
  border-radius: var(--r-2, 8px);
  background: var(--qss-neutral-selected-bg);
  color: var(--qss-neutral-selected-text);
  border-right-color: transparent;
  box-shadow: var(--qss-selected-shadow);
  z-index: 2;
}

.qdnapro-score-scale .qss-segment.is-selected .qss-num {
  font-weight: 700;
  font-size: 17px;
}

.qdnapro-score-scale.is-gradient .qss-segment {
  color: var(--c-text-on-action);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
  border-right-color: rgba(255, 255, 255, 0.35);
}

.qdnapro-score-scale.is-gradient .qss-segment:not(.is-selected) {
  filter: saturate(0.45) brightness(1.05);
  opacity: 0.82;
}

.qdnapro-score-scale.is-gradient .qss-segment.is-selected {
  background-color: transparent;
  filter: none;
  opacity: 1;
}

.qdnapro-score-scale .qss-footer {
  margin-top: var(--s-2, 8px);
}

.qdnapro-score-scale .qss-endpoints {
  display: flex;
  justify-content: space-between;
  gap: var(--s-2, 8px);
  font-size: 12px;
  color: var(--c-text-muted, #6e7280);
}

.qdnapro-score-scale .qss-label-min,
.qdnapro-score-scale .qss-label-max {
  max-width: 48%;
  overflow-wrap: anywhere;
}

.qdnapro-score-scale .qss-label-max {
  text-align: right;
}

.qdnapro-score-scale .qss-bands {
  position: relative;
  height: 18px;
  margin-top: var(--s-1, 4px);
}

.qdnapro-score-scale .qss-band {
  position: absolute;
  top: 0;
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--c-text-muted, #6e7280);
  padding-top: var(--s-1, 4px);
  border-top: 1px solid var(--c-border-soft-2, #e6e9ef);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-score-scale .qss-nvt-divider {
  height: 1px;
  margin: var(--s-3, 12px) 0 var(--s-2, 8px);
  background: var(--c-border-card, #e1e3e6);
}

.qdnapro-score-scale .qss-nvt {
  box-sizing: border-box;
  display: block;
  margin-left: auto;
  min-height: 40px;
  padding: 0 var(--s-4, 16px);
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: var(--r-pill, 999px);
  background: var(--c-bg-card, #fff);
  color: var(--c-text-muted, #6e7280);
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 150ms ease-out, border-color 150ms ease-out, color 150ms ease-out;
}

.qdnapro-score-scale .qss-nvt:hover:not(:disabled):not(.is-selected) {
  background: var(--c-bg-subtle-hover, #f4f5f8);
  border-color: var(--c-border-tree, #d4d8ec);
}

.qdnapro-score-scale .qss-nvt:focus {
  outline: none;
}

.qdnapro-score-scale .qss-nvt:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-action-500, #4652f3);
}

.qdnapro-score-scale .qss-nvt.is-selected {
  border-width: 2px;
  border-color: var(--c-text-body, #14151a);
  background: var(--c-bg-subtle-hover, #f4f5f8);
  color: var(--c-text-body, #14151a);
  font-weight: 700;
}

.qdnapro-score-scale.is-disabled .qss-nvt {
  cursor: not-allowed;
}

[data-theme=dark] .qdnapro-score-scale .qss-nvt-divider {
  background: var(--c-border-card, rgba(255, 255, 255, 0.1));
}

[data-theme=dark] .qdnapro-score-scale .qss-nvt {
  border-color: var(--c-border-card, rgba(255, 255, 255, 0.1));
  background: var(--c-bg-card, #26262b);
}

@media (max-width: 420px) {
  .qdnapro-score-scale .qss-nvt {
    width: 100%;
    margin-left: 0;
    text-align: center;
  }
}
.qdnapro-score-scale.is-disabled {
  opacity: 0.55;
}

.qdnapro-score-scale.is-disabled .qss-segment {
  cursor: not-allowed;
}

[data-theme=dark] .qdnapro-score-scale {
  --qss-neutral-idle-bg: color-mix(in srgb, var(--theme-btn-color, #40499a) 22%, var(--c-grey-900, #18181c));
  --qss-neutral-idle-text: color-mix(in srgb, var(--theme-btn-color, #40499a) 70%, #fff);
  --qss-neutral-selected-bg: var(--theme-btn-selected-color, var(--theme-btn-color, #40499a));
  --qss-neutral-selected-text: var(--theme-btn-selected-text-color, #fff);
  --qss-separator: rgba(255, 255, 255, 0.1);
  --qss-selected-shadow: 0 8px 20px rgba(0, 0, 0, 0.45), 0 2px 6px rgba(0, 0, 0, 0.30);
}

[data-theme=dark] .qdnapro-score-scale .qss-band {
  border-top-color: var(--c-border-soft, rgba(255, 255, 255, 0.08));
}

@media (max-width: 420px) {
  .qdnapro-score-scale .qss-segment {
    font-size: 13px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-score-scale .qss-segment {
    transition: none;
  }
}
.qdnapro-likert-scale {
  --likert-accent: var(--theme-btn-color, var(--c-brand-purple, #40499a));
  --qls-check-color: var(--theme-btn-text-color, #fff);
  --qls-nvt-color: var(--c-grey-500, #6b7280);
  --qls-nvt-ring: var(--c-grey-400, #a6aab3);
  --qls-circle-size: 28px;
  --qls-gap: var(--s-2, 8px);
  display: block;
  box-sizing: border-box;
  width: 100%;
  font-family: var(--theme-font-family, "Inter", sans-serif);
  container: qdnapro-likert-scale/inline-size;
}
.qdnapro-likert-scale *,
.qdnapro-likert-scale *::before,
.qdnapro-likert-scale *::after {
  box-sizing: border-box;
}

.qdnapro-likert-scale__row {
  display: flex;
  align-items: flex-start;
  width: 100%;
  gap: var(--s-4, 16px);
  padding: 6px 4px 9px;
  overflow-x: auto;
  overflow-y: hidden;
}

.qdnapro-likert-scale__row::-webkit-scrollbar {
  height: 6px;
}

.qdnapro-likert-scale__row::-webkit-scrollbar-track {
  background: transparent;
}

.qdnapro-likert-scale__row::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 3px;
}

.qdnapro-likert-scale__row:hover::-webkit-scrollbar-thumb,
.qdnapro-likert-scale__row:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
}

.qdnapro-likert-scale__row::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.34);
}

.qdnapro-likert-scale__scale {
  display: flex;
  flex: 1 1 auto;
  justify-content: space-between;
  gap: var(--s-1, 4px);
  min-width: 0;
}

.qdnapro-likert-scale__item {
  display: flex;
  flex: 1 1 0;
  min-width: 0;
}

.qdnapro-likert-scale__item--nvt {
  flex: 0 0 auto;
}

.qdnapro-likert-scale__option {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--qls-gap);
  width: 100%;
  border: none;
  background: transparent;
  padding: 4px;
  border-radius: 8px;
  cursor: pointer;
  font: inherit;
  color: inherit;
  transition: background-color 150ms ease-out;
}

.qdnapro-likert-scale__option:focus {
  outline: none;
}

.qdnapro-likert-scale__label {
  width: 100%;
  max-width: 96px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--c-text-heading, #1a1f4d);
  text-align: center;
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.5em;
}

.qdnapro-likert-scale__item--nvt .qdnapro-likert-scale__label {
  color: var(--c-text-muted, #6e7280);
}

.qdnapro-likert-scale__divider {
  align-self: stretch;
  width: 1px;
  min-width: 1px;
  margin-top: calc(2.5em + var(--qls-gap));
  background: var(--c-border-soft-2, #e6e9ef);
}

.qdnapro-likert-scale__dot {
  width: var(--qls-circle-size);
  height: var(--qls-circle-size);
  min-width: var(--qls-circle-size);
  flex-shrink: 0;
  border-radius: 50%;
  border: 2px solid var(--likert-accent);
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background-color 150ms ease-out, border-color 150ms ease-out, box-shadow 150ms ease-out, transform 100ms ease-out;
}

.qdnapro-likert-scale__check {
  width: 58%;
  height: 58%;
  fill: none;
  stroke: var(--qls-check-color, #fff);
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 24;
  stroke-dashoffset: 24;
  opacity: 0;
  pointer-events: none;
  overflow: visible;
}

.qdnapro-likert-scale__option.is-selected .qdnapro-likert-scale__check {
  opacity: 1;
  animation: qls-check-pop 0.52s cubic-bezier(0.34, 1.56, 0.5, 1), qls-check-draw 0.38s cubic-bezier(0.22, 1, 0.36, 1) 0.04s forwards;
}

@keyframes qls-check-pop {
  0% {
    transform: scale(0.7) rotate(0deg);
  }
  20% {
    transform: scale(1.22) rotate(-5deg);
  }
  44% {
    transform: scale(0.9) rotate(3deg);
  }
  64% {
    transform: scale(1.08) rotate(-1deg);
  }
  80% {
    transform: scale(0.97) rotate(0deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
  }
}
@keyframes qls-check-draw {
  0% {
    stroke-dashoffset: 24;
  }
  62% {
    stroke-dashoffset: -1;
  }
  80% {
    stroke-dashoffset: 0.7;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-likert-scale__option.is-selected .qdnapro-likert-scale__check {
    animation: none;
    stroke-dashoffset: 0;
  }
}
.qdnapro-likert-scale__option:hover:not(:disabled):not(.is-selected) .qdnapro-likert-scale__dot {
  background: color-mix(in srgb, var(--likert-accent) 12%, transparent);
}

.qdnapro-likert-scale__option:focus-visible .qdnapro-likert-scale__dot {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--likert-accent) 30%, transparent);
}

.qdnapro-likert-scale__option.is-selected .qdnapro-likert-scale__dot {
  background: var(--likert-accent);
  border-color: var(--likert-accent);
  transform: scale(1.08);
}

.qdnapro-likert-scale__option:active:not(:disabled) .qdnapro-likert-scale__dot {
  transform: scale(0.94);
}

.qdnapro-likert-scale__dot--nvt {
  border-color: var(--qls-nvt-ring);
}

.qdnapro-likert-scale__option--nvt:hover:not(:disabled):not(.is-selected) .qdnapro-likert-scale__dot {
  background: color-mix(in srgb, var(--qls-nvt-color) 12%, transparent);
}

.qdnapro-likert-scale__option--nvt:focus-visible .qdnapro-likert-scale__dot {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--qls-nvt-color) 30%, transparent);
}

.qdnapro-likert-scale__option--nvt.is-selected .qdnapro-likert-scale__dot {
  background: var(--qls-nvt-color);
  border-color: var(--qls-nvt-color);
}

.qdnapro-likert-scale.is-readonly .qdnapro-likert-scale__option {
  cursor: default;
}

.qdnapro-likert-scale.is-readonly .qdnapro-likert-scale__option:hover .qdnapro-likert-scale__dot {
  background: transparent;
}

.qdnapro-likert-scale.is-readonly .qdnapro-likert-scale__option--nvt:hover .qdnapro-likert-scale__dot {
  background: transparent;
}

.qdnapro-likert-scale.is-readonly .qdnapro-likert-scale__option.is-selected .qdnapro-likert-scale__dot {
  background: var(--likert-accent);
}

.qdnapro-likert-scale.is-readonly .qdnapro-likert-scale__option--nvt.is-selected .qdnapro-likert-scale__dot {
  background: var(--qls-nvt-color);
}

.qdnapro-likert-scale.is-disabled {
  opacity: 0.55;
}

.qdnapro-likert-scale.is-disabled .qdnapro-likert-scale__option {
  cursor: not-allowed;
}

[data-theme=dark] .qdnapro-likert-scale {
  --qls-nvt-color: var(--c-grey-400, #a6aab3);
  --qls-nvt-ring: var(--c-grey-600, #565b66);
}

[data-theme=dark] .qdnapro-likert-scale__divider {
  background: var(--c-border-soft, rgba(255, 255, 255, 0.08));
}

[data-theme=dark] .qdnapro-likert-scale__label {
  color: var(--c-text-heading, #e1e3e6);
}

@container qdnapro-likert-scale (max-width: 680px) {
  .qdnapro-likert-scale__row {
    flex-direction: column;
    align-items: stretch;
    gap: var(--s-2, 8px);
    overflow: visible;
  }
  .qdnapro-likert-scale__scale {
    flex-direction: column;
    align-items: stretch;
    gap: var(--s-2, 8px);
  }
  .qdnapro-likert-scale__item {
    flex: 0 0 auto;
  }
  .qdnapro-likert-scale__option {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: var(--s-3, 12px);
    min-height: 44px;
    padding: 6px 4px;
  }
  .qdnapro-likert-scale__dot {
    order: 0;
  }
  .qdnapro-likert-scale__label {
    order: 1;
    flex: 1 1 auto;
    width: auto;
    max-width: none;
    text-align: left;
    min-height: 0;
    -webkit-line-clamp: initial;
    display: block;
    overflow: visible;
  }
  .qdnapro-likert-scale__divider {
    display: none;
  }
  .qdnapro-likert-scale__item--nvt {
    margin-top: var(--s-2, 8px);
    padding-top: var(--s-3, 12px);
    border-top: 1px solid var(--c-border-soft-2, #e6e9ef);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-likert-scale__dot {
    transition: none;
  }
}
.qdnapro-smiley {
  --smiley-size: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.qdnapro-smiley__visual {
  display: inline-flex;
  transform-origin: 50% 78%;
  will-change: transform;
}

.qdnapro-smiley__img {
  display: block;
  width: var(--smiley-size);
  height: var(--smiley-size);
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none;
}

.qdnapro-smiley--interactive {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.qdnapro-smiley--interactive:focus-visible {
  outline: 2px solid var(--c-action-500, #4652f3);
  outline-offset: 2px;
  border-radius: 8px;
}

.qdnapro-smiley--interactive[data-face=sad] .qdnapro-smiley__visual {
  animation: qsm-idle-sad 4.4s ease-in-out infinite;
}

.qdnapro-smiley--interactive[data-face=meh] .qdnapro-smiley__visual {
  animation: qsm-idle-meh 5.2s ease-in-out infinite;
}

.qdnapro-smiley--interactive[data-face=ok] .qdnapro-smiley__visual {
  animation: qsm-idle-ok 3.6s ease-in-out infinite;
}

.qdnapro-smiley--interactive[data-face=smile] .qdnapro-smiley__visual {
  animation: qsm-idle-smile 2.8s ease-in-out infinite;
}

.qdnapro-smiley--interactive[data-face=yay] .qdnapro-smiley__visual {
  animation: qsm-idle-yay 2.1s ease-in-out infinite;
}

@keyframes qsm-idle-sad {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(2px) rotate(-2.5deg);
  }
}
@keyframes qsm-idle-meh {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(1px) rotate(1deg);
  }
}
@keyframes qsm-idle-ok {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-3px);
  }
}
@keyframes qsm-idle-smile {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(-5px) rotate(2.5deg);
  }
}
@keyframes qsm-idle-yay {
  0%, 20%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  10% {
    transform: translateY(-6px) rotate(-4deg);
  }
  30% {
    transform: translateY(-6px) rotate(4deg);
  }
}
.qdnapro-smiley--interactive[data-face=sad] .qdnapro-smiley__visual.is-reacting {
  animation: qsm-react-sad 0.72s cubic-bezier(0.36, 0, 0.66, -0.06) 1;
}

.qdnapro-smiley--interactive[data-face=meh] .qdnapro-smiley__visual.is-reacting {
  animation: qsm-react-meh 0.5s ease-in-out 1;
}

.qdnapro-smiley--interactive[data-face=ok] .qdnapro-smiley__visual.is-reacting {
  animation: qsm-react-ok 0.5s cubic-bezier(0.34, 1.2, 0.64, 1) 1;
}

.qdnapro-smiley--interactive[data-face=smile] .qdnapro-smiley__visual.is-reacting {
  animation: qsm-react-smile 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) 1;
}

.qdnapro-smiley--interactive[data-face=yay] .qdnapro-smiley__visual.is-reacting {
  animation: qsm-react-yay 0.85s cubic-bezier(0.34, 1.56, 0.64, 1) 1;
}

@keyframes qsm-react-sad {
  0% {
    transform: translateY(0) rotate(0deg) scale(1);
  }
  22% {
    transform: translateY(3px) rotate(-9deg) scale(0.96);
  }
  44% {
    transform: translateY(3px) rotate(7deg) scale(0.96);
  }
  66% {
    transform: translateY(3px) rotate(-5deg) scale(0.97);
  }
  85% {
    transform: translateY(2px) rotate(1deg) scale(0.99);
  }
  100% {
    transform: translateY(2px) rotate(0deg) scale(1);
  }
}
@keyframes qsm-react-meh {
  0% {
    transform: rotate(0deg) scale(1);
  }
  30% {
    transform: rotate(-6deg) scale(1.02);
  }
  60% {
    transform: rotate(4deg) scale(1.01);
  }
  100% {
    transform: rotate(0deg) scale(1);
  }
}
@keyframes qsm-react-ok {
  0% {
    transform: translateY(0) scale(1);
  }
  35% {
    transform: translateY(6px) scale(0.95);
  }
  65% {
    transform: translateY(-3px) scale(1.03);
  }
  100% {
    transform: translateY(0) scale(1);
  }
}
@keyframes qsm-react-smile {
  0% {
    transform: scale(1) translateY(0);
  }
  32% {
    transform: scale(1.2) translateY(-8px);
  }
  58% {
    transform: scale(0.95) translateY(2px);
  }
  78% {
    transform: scale(1.06) translateY(-2px);
  }
  100% {
    transform: scale(1) translateY(0);
  }
}
@keyframes qsm-react-yay {
  0% {
    transform: scale(1) translateY(0) rotate(0deg);
  }
  14% {
    transform: scale(1.24) translateY(-13px) rotate(-7deg);
  }
  30% {
    transform: scale(0.93) translateY(0) rotate(5deg);
  }
  46% {
    transform: scale(1.17) translateY(-10px) rotate(-4deg);
  }
  62% {
    transform: scale(0.96) translateY(0) rotate(2deg);
  }
  82% {
    transform: scale(1.04) translateY(-2px) rotate(0deg);
  }
  100% {
    transform: scale(1) translateY(0) rotate(0deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-smiley__visual {
    animation: none !important;
  }
}
.qdnapro-smiley-picker {
  display: block;
}

.qdnapro-smiley-picker .qsp-track {
  display: flex;
  justify-content: space-between;
  gap: 4px;
}

.qdnapro-smiley-picker .qsp-option {
  box-sizing: border-box;
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 8px 4px 10px;
  border-radius: 14px;
  border: 1px solid transparent;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.16s ease, border-color 0.16s ease;
}

.qdnapro-smiley-picker .qsp-option:hover {
  background: color-mix(in srgb, var(--theme-btn-color, #40499a) 8%, transparent);
}

.qdnapro-smiley-picker .qsp-option.is-active {
  background: color-mix(in srgb, var(--theme-btn-color, #40499a) 15%, transparent);
  border-color: var(--theme-btn-color, #40499a);
}

.qdnapro-smiley-picker .qsp-option:focus-visible {
  outline: 2px solid var(--c-action-500, #4652f3);
  outline-offset: 2px;
}

.qdnapro-smiley-picker .qsp-label {
  overflow-wrap: anywhere;
  font-size: 11px;
  font-weight: 600;
  color: var(--c-text-muted, #6b7280);
  text-align: center;
  line-height: 1.3;
}

.qdnapro-smiley-picker .qsp-option.is-active .qsp-label {
  color: var(--theme-btn-color, #40499a);
}

.qdnapro-smiley-picker.is-disabled .qsp-option {
  cursor: default;
  opacity: 0.5;
  pointer-events: none;
}

@media (max-width: 420px) {
  .qdnapro-smiley-picker .qsp-track {
    gap: 0;
  }
  .qdnapro-smiley-picker .qsp-label {
    font-size: 9.5px;
  }
}
/* ============================================================
 *  qdnapro-select — compiled from _select.scss
 * ============================================================ */
.qdnapro-select {
  display: block;
  width: 100%;
  position: relative;
}

/* Direct children of the select are the SOURCE list — hidden until the popover
   moves them in. `qdnapro-menu-separator` is the keyline (qdna-menu.js); the
   `qdnapro-menu-divider` that used to be listed here was never a real element,
   so it hid nothing and rendered nothing. [Kim 05.08.2026] */
.qdnapro-select > qdnapro-menu-item,
.qdnapro-select > qdnapro-menu-section-heading,
.qdnapro-select > qdnapro-menu-separator {
  display: none !important;
}

.qdnapro-select-trigger {
  display: block;
  width: 100%;
  cursor: pointer;
}

.qdnapro-select-popover {
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-300);
  border-radius: 8px;
  padding: 4px;
  max-height: 320px;
  overflow-y: auto;
  overflow-x: hidden;
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.08), 0 1px 2px 0 rgba(0, 0, 0, 0.14);
  display: flex;
  flex-direction: column;
  gap: 4px;
  /* Hide the scrollbar — content still scrolls. Flat scrollbar-hide (the
     qdna-scrollbar-hidden mixin isn't in scope in the components-v2 bundle,
     same reason as _bottom-sheet.scss). [Kim 2026-07-20] */
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* old Edge/IE */
}

.qdnapro-select-popover::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none; /* Chrome / Safari */
}

/* `dense` popover — tighten the row spacing (radio / avatar / label closer) for
   selects that opt in via the `dense` attribute (e.g. the Auditritme user
   pickers). Scoped to this popover modifier so no menu-item elsewhere is
   affected. [Kim 2026-07-20] */
.qdnapro-select-popover--dense .qdnapro-menu-item {
  gap: 6px;
}

.qdnapro-select-popover--dense .qdnapro-menu-item.menu-item-with-avatar .menu-item-avatar-wrap {
  padding: 0 1px;
}

.qdnapro-select-popover .qdnapro-select-search {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--c-bg-card);
  padding: 4px;
  margin: -4px -4px 0 -4px;
  border-bottom: 1px solid var(--c-border-card);
}

.qdnapro-select-popover .qdnapro-select-menu {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  width: 100%;
}

/* popover-max-height="N" — the popover is capped, so the MENU becomes the scroller
   instead of the popover root. Without this the root scrolls, and a `searchable`
   select then scrolls its own search field out of view the moment you scroll the
   list — precisely when you need it. qdna-select.js sets overflow-y: hidden inline
   on the root when capped, and adds this modifier class. [Kim 05.08.2026] */
.qdnapro-select-popover--capped {
  overflow: hidden;
}

.qdnapro-select-popover--capped .qdnapro-select-search {
  flex: 0 0 auto;
}

.qdnapro-select-popover--capped .qdnapro-select-menu {
  flex: 1 1 auto;
  /* Without min-height:0 a flex item refuses to shrink below its content, so the
     menu would push past the cap instead of scrolling inside it. */
  min-height: 0;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(64, 73, 154, 0.35) transparent;
}

.qdnapro-select-popover--capped .qdnapro-select-menu::-webkit-scrollbar {
  width: 7px;
}

.qdnapro-select-popover--capped .qdnapro-select-menu::-webkit-scrollbar-track {
  background: transparent;
}

.qdnapro-select-popover--capped .qdnapro-select-menu::-webkit-scrollbar-thumb {
  background: rgba(64, 73, 154, 0.35);
  border-radius: 4px;
}

.qdnapro-select-popover--capped .qdnapro-select-menu::-webkit-scrollbar-thumb:hover {
  background: rgba(64, 73, 154, 0.55);
}

.qdnapro-select-popover .qdnapro-select-empty {
  padding: 16px 12px;
  text-align: center;
  font-family: "Inter", sans-serif;
  font-size: 13px;
  line-height: 18px;
  color: var(--c-text-disabled);
}

[data-theme=dark] .qdnapro-select-popover {
  background: #1f2028;
  border-color: #565b66;
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.3), 0 1px 2px 0 rgba(0, 0, 0, 0.4);
}

[data-theme=dark] .qdnapro-select-popover .qdnapro-select-search {
  background: #1f2028;
  border-bottom-color: #40444d;
}

[data-theme=dark] .qdnapro-select-popover .qdnapro-select-empty {
  color: #898e99;
}

/* ============================================================
 *  touch mode — opt-in via a `touch` attribute on <qdnapro-select>
 *  (PWA flow only; never set in the backoffice, so desktop selects are
 *  byte-for-byte unaffected). qdna-select.js adds the modifier class
 *  BELOW to the popover ROOT itself (not the host) because the popover
 *  is portaled to document.body — a `.flow …` ancestor selector would
 *  never reach it there. Verified current values before overriding:
 *  option row was min-height 40px / padding 8px 16px / 14px label
 *  (_menu-item.scss menu-item-size-default); checkbox/radio indicator
 *  was 16px (_checkbox.scss / _radio.scss default --cb-size/--rb-size);
 *  search input text was 14px (inherited .qdnapro-input default), NOT
 *  13px as first assumed — still bumped to 16px since anything under
 *  16px triggers iOS Safari's auto-zoom-on-focus. [2026-07-13]
 * ============================================================ */
/* Option rows — Material/Apple touch guidance: >=48px tap target, 16px
   label (never smaller — readability at arm's length). */
.qdnapro-select-popover--touch .qdnapro-menu-item.menu-item-size-default {
  /* min-height (not fixed height) is a floor — the row grows when a long
     label wraps to two lines. align-items: center (from _menu-item.scss)
     keeps the toggle centred against the taller row. */
  min-height: 48px;
  padding: 12px 16px;
  font-size: 16px;
  line-height: 24px;
}

.qdnapro-select-popover--touch .qdnapro-menu-item .menu-item-label {
  font-size: 16px;
  /* Let long option labels WRAP instead of truncating with an ellipsis —
     the wider break-out popover plus wrapping means a full "Antwoordoptie"
     label shows. Overrides the base .menu-item-label nowrap/ellipsis. */
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

/* Checkbox/radio indicator — bump from the 16px default toward the 28px
   already established by qdnapro-checkbox's own size="touch-sm" (dense-row
   touch convention, see _checkbox.scss). Mark/dot scale with it. */
.qdnapro-select-popover--touch .qdnapro-menu-item qdnapro-checkbox {
  --cb-size: 28px;
}

.qdnapro-select-popover--touch .qdnapro-menu-item qdnapro-checkbox .checkbox-mark {
  width: 20px;
  height: 20px;
}

.qdnapro-select-popover--touch .qdnapro-menu-item qdnapro-checkbox .checkbox-mark-dash {
  width: 14px;
  height: 3px;
}

.qdnapro-select-popover--touch .qdnapro-menu-item qdnapro-radio {
  --rb-size: 28px;
}

.qdnapro-select-popover--touch .qdnapro-menu-item qdnapro-radio .radio-dot {
  width: 7px;
  height: 7px;
}

/* A little extra room between rows once they're taller. */
.qdnapro-select-popover--touch .qdnapro-select-menu {
  gap: 6px;
}

/* Search input — >=16px is CRITICAL (anything smaller makes iOS Safari
   auto-zoom on focus). Extra height/padding + explicit specificity (two
   classes on the search element itself) so this reliably beats
   _input.scss's own `.qdnapro-input.input-size-small .input-field` rule
   regardless of partial import order. */
.qdnapro-select-popover--touch .qdnapro-select-search.input-size-small .input-field {
  min-height: 48px;
  padding: 0 14px;
}

.qdnapro-select-popover--touch .qdnapro-select-search .input-native {
  font-size: 16px;
}

.qdnapro-share-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.qdnapro-share-warn {
  margin: 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--c-tag-warning-bg);
  color: var(--c-tag-warning-text);
  border: 1px solid var(--c-warning-bright-border);
  font-size: 13px;
  line-height: 18px;
}

.qdnapro-share-note {
  margin: 0;
  color: var(--c-text-muted);
  font-size: 12px;
  line-height: 16px;
}

.qdnapro-share-channels {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.qdnapro-share-channel {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 11px 12px;
  border: 1px solid var(--c-border-card);
  border-radius: 12px;
  background: var(--c-bg-card);
  color: var(--c-text-body);
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  text-align: left;
  cursor: pointer;
  transition: background 120ms ease-out, border-color 120ms ease-out;
}
.qdnapro-share-channel:hover {
  background: var(--c-bg-subtle-purple);
  border-color: var(--c-purple-100);
}
.qdnapro-share-channel:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}
.qdnapro-share-channel:active {
  background: var(--c-purple-50);
}

.qdnapro-share-channel-icon {
  flex-shrink: 0;
  display: inline-flex;
  color: var(--c-purple-500);
}

.qdnapro-share-channel-label {
  flex: 1 1 auto;
}

.qdnapro-share-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 10px;
  border: 1px solid transparent;
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  cursor: pointer;
  user-select: none;
  transition: background 120ms ease-out, border-color 120ms ease-out, color 120ms ease-out;
}
.qdnapro-share-btn .share-btn-icon {
  display: inline-flex;
  flex-shrink: 0;
}
.qdnapro-share-btn:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}
.qdnapro-share-btn.share-btn-icon-only {
  gap: 0;
  padding: 8px;
  border-radius: 8px;
}
.qdnapro-share-btn.share-btn-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-share-btn.share-btn-primary {
  background: var(--c-brand-purple);
  color: var(--c-text-on-action);
}
.qdnapro-share-btn.share-btn-primary:hover {
  background: var(--c-brand-purple-hover);
}
.qdnapro-share-btn.share-btn-primary:active {
  background: var(--c-brand-purple-press);
}

.qdnapro-share-btn.share-btn-subtle {
  background: transparent;
  color: var(--c-purple-500);
}
.qdnapro-share-btn.share-btn-subtle .share-btn-icon {
  color: var(--c-purple-500);
}
.qdnapro-share-btn.share-btn-subtle:hover {
  background: var(--c-bg-subtle-purple);
}

.qdnapro-share-btn.share-btn-secondary {
  background: var(--c-bg-card);
  color: var(--c-text-body);
  border-color: var(--c-border-card);
}
.qdnapro-share-btn.share-btn-secondary .share-btn-icon {
  color: var(--c-purple-500);
}
.qdnapro-share-btn.share-btn-secondary:hover {
  background: var(--c-bg-card-hover);
}

.qdnapro-share-inbox-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.qdnapro-share-inbox-list {
  display: flex;
  flex-direction: column;
  max-height: 46vh;
  overflow-y: auto;
  margin: 0 -4px;
  padding: 0 4px;
}

/* Pick-mode header slot: custom fields (frequentie + set) boven de Teams/Personen-
   secties. Onderrand scheidt ze van de zoek/lijst. [Jan 2026-07-11] */
.qdnapro-share-inbox-header {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-bottom: 12px;
  margin-bottom: 2px;
  border-bottom: 1px solid var(--c-border, #e6e4f2);
}

.qdnapro-share-inbox-header .mdash-fld {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.qdnapro-share-inbox-header label {
  font-size: 10.5px;
  color: var(--c-text-muted, #6b6884);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding-left: 2px;
}

.qdnapro-share-inbox-header select {
  font-size: 13px;
  color: var(--c-text-heading);
  border: 1px solid var(--c-border-tree);
  background: #fff;
  border-radius: 10px;
  padding: 8px 12px;
  width: 100%;
  cursor: pointer;
}

.qdnapro-share-inbox-header select:focus {
  outline: none;
  border-color: var(--c-sidebar-bg);
}

.qdnapro-share-inbox-section {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-text-muted);
  padding: 10px 4px 4px;
}

.qdnapro-share-inbox-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--c-text-body);
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  transition: background 110ms ease-out, border-color 110ms ease-out;
}
.qdnapro-share-inbox-row:hover {
  background: var(--c-bg-subtle-purple);
}
.qdnapro-share-inbox-row.is-selected {
  background: var(--c-bg-subtle-purple);
  border-color: var(--c-purple-100);
}
.qdnapro-share-inbox-row:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

.qdnapro-share-inbox-check {
  flex-shrink: 0;
}

.qdnapro-share-inbox-avatar {
  flex-shrink: 0;
}

.qdnapro-share-inbox-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.25;
}

.qdnapro-share-inbox-name {
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-share-inbox-sub {
  font-size: 12px;
  color: var(--c-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-share-inbox-comment-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 10px;
  padding-top: 12px;
  border-top: 1px solid var(--c-border-card);
}

.qdnapro-share-inbox-comment-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text-muted);
}

.qdnapro-share-link {
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-sizing: border-box;
  width: 100%;
  border: 1px solid var(--c-grey-100, #e7e9ec);
  border-radius: var(--r-3, 12px);
  background: var(--c-bg-card);
  padding: 16px;
  align-items: stretch;
  font-family: "Inter", sans-serif;
}

.qdnapro-share-link--card {
  align-items: center;
}

.qdnapro-share-link__heading {
  align-self: flex-start;
  font-size: 15px;
  font-weight: 700;
  color: var(--c-text-heading);
}

.qdnapro-share-link__desc {
  align-self: flex-start;
  margin-top: -4px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--c-grey-500, #6b7280);
}

.qdnapro-share-link__head {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  min-height: 4px;
}

.qdnapro-share-link__badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.4;
}

.qdnapro-share-link__badge--active {
  background: var(--c-signal-green-bg, #c5f5e2);
  color: var(--c-signal-green-text, #428b6e);
}

.qdnapro-share-link__badge--inactive {
  background: var(--c-grey-100, #e7e9ec);
  color: var(--c-grey-600, #565b66);
}

.qdnapro-share-link__qr {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4px;
}

.qdnapro-share-link__qr canvas,
.qdnapro-share-link__qr img,
.qdnapro-share-link__qr table {
  display: block;
}

.qdnapro-share-link__meta {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px 20px;
  font-size: 0.8rem;
  color: var(--c-grey-500, #6b7280);
}

.qdnapro-share-link__url {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border-radius: var(--r-2, 8px);
  background: var(--c-grey-50, #f0f1f2);
}

.qdnapro-share-link__url-text {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: Menlo, monospace;
  font-size: 12.5px;
  color: var(--c-text-heading);
}

.qdnapro-share-link__actions {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.qdnapro-share-link__copy qdnapro-icon,
.qdnapro-share-link__deactivate qdnapro-icon {
  margin-right: 6px;
  vertical-align: middle;
}

.qdnapro-sidebar {
  display: flex;
  flex-direction: column;
  width: 297px;
  max-height: 100vh;
  background: var(--c-bg-card);
  border-radius: 8px;
  box-sizing: border-box;
  font-family: "Inter", inter, sans-serif;
  overflow: hidden;
  transition: max-height 180ms ease-out;
}
.qdnapro-sidebar.sidebar-collapsed .sidebar-search, .qdnapro-sidebar.sidebar-collapsed .sidebar-items {
  max-height: 0;
  opacity: 0;
  padding-top: 0;
  padding-bottom: 0;
  margin-top: 0;
  margin-bottom: 0;
  pointer-events: none;
  overflow: hidden;
}
.qdnapro-sidebar .sidebar-top {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  flex-shrink: 0;
  overflow: hidden;
  min-width: 0;
}
.qdnapro-sidebar .sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 0 0 4px 8px;
}
.qdnapro-sidebar .sidebar-title {
  margin: 0;
  font-family: "Inter", inter, sans-serif;
  font-size: 20px;
  font-weight: 600;
  line-height: 24px;
  color: var(--c-purple-500);
}
.qdnapro-sidebar .sidebar-actions {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.qdnapro-sidebar .sidebar-search {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-width: 0;
  max-height: 80px;
  opacity: 1;
  transition: max-height 180ms ease-out, opacity 120ms ease-out, padding 180ms ease-out, margin 180ms ease-out;
}
.qdnapro-sidebar .sidebar-items {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  overflow-y: auto;
  overflow-x: hidden;
  flex: 1 1 auto;
  min-height: 0;
  max-height: 1200px;
  opacity: 1;
  transition: max-height 220ms ease-out, opacity 140ms ease-out, padding 220ms ease-out, margin 220ms ease-out;
}
.qdnapro-sidebar .sidebar-items > hr {
  margin: 0;
  border: 0;
  border-top: 1px solid var(--c-border-tree);
  width: 100%;
}
.qdnapro-sidebar .sidebar-items > qdnapro-tree-item {
  width: 100%;
  margin: 0;
}

[data-theme=dark] .qdnapro-sidebar {
  background: #1f2028;
}
[data-theme=dark] .qdnapro-sidebar .sidebar-title {
  color: #f0f1f2;
}
[data-theme=dark] .qdnapro-sidebar .sidebar-items > hr {
  border-top-color: #3a3b42;
}
[data-theme=dark] .qdnapro-sidebar qdnapro-input .input-field {
  background: #2a2b34;
  border-color: #3a3b42;
}
[data-theme=dark] .qdnapro-sidebar qdnapro-input .input-native {
  color: #e1e3e6;
}
[data-theme=dark] .qdnapro-sidebar qdnapro-input .input-native::placeholder {
  color: #a6aab3;
}

.qdnapro-slider {
  --qs-track: var(--c-grey-100, #e7e9ec);
  --qs-fill: var(--c-purple-500, #40499a);
  --qs-dot: var(--c-grey-300, #c4c7cc);
  --qs-dot-active: var(--c-purple-500, #40499a);
  --qs-default-marker: var(--c-grey-400, #a6aab3);
  --qs-handle: #fff;
  --qs-handle-border: var(--c-purple-500, #40499a);
  --qs-handle-glow: var(--c-action-500, #4652f3);
  display: flex;
  align-items: center;
  gap: 10px;
  box-sizing: border-box;
  padding: 6px 4px;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.qdnapro-slider.qdnapro-slider--neutral {
  --qs-track: var(--c-grey-50, #f0f1f2);
  --qs-fill: var(--c-grey-400, #a6aab3);
  --qs-dot-active: var(--c-grey-400, #a6aab3);
  --qs-handle-border: var(--c-grey-400, #a6aab3);
  --qs-handle-glow: var(--c-grey-300, #c4c7cc);
}

.qdnapro-slider.qdnapro-slider--sentiment .qs-track {
  background: linear-gradient(90deg, var(--c-warn-red-500, #dc2626), var(--c-warn-yellow-500, #fbbf24), var(--c-success-bright, #1d9e75));
}

.qdnapro-slider.qdnapro-slider--sentiment .qs-fill {
  background: transparent;
}

.qdnapro-slider.qdnapro-slider--sentiment {
  --qs-handle-border: var(--c-grey-700, #40444d);
  --qs-handle-glow: var(--c-grey-400, #a6aab3);
  --qs-dot: rgba(255, 255, 255, 0.6);
  --qs-dot-active: #fff;
}

.qdnapro-slider.qdnapro-slider--highlight {
  --qs-track: var(--c-bg-subtle-purple, #f3f5ff);
  --qs-fill: var(--c-purple-highlight, #4652f3);
  --qs-dot-active: var(--c-purple-highlight, #4652f3);
  --qs-handle-border: var(--c-purple-highlight, #4652f3);
  --qs-handle-glow: var(--c-purple-highlight, #4652f3);
}

.qdnapro-slider .qs-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-text-muted, #6b7280);
}

.qdnapro-slider .qs-icon svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}

.qdnapro-slider .qs-track {
  position: relative;
  flex: 1;
  min-width: 0;
  height: 6px;
  margin: 14px 0;
  border-radius: 999px;
  background: var(--qs-track);
}

.qdnapro-slider .qs-fill {
  position: absolute;
  top: 0;
  height: 100%;
  border-radius: 999px;
  background: var(--qs-fill);
}

.qdnapro-slider .qs-dot {
  position: absolute;
  top: 50%;
  width: 5px;
  height: 5px;
  margin-left: -2.5px;
  margin-top: -2.5px;
  border-radius: 50%;
  background: var(--qs-dot);
  pointer-events: none;
  transition: background 120ms ease-out, transform 120ms ease-out;
}

.qdnapro-slider .qs-dot.is-active {
  background: var(--qs-dot-active);
  transform: scale(1.15);
}

.qdnapro-slider .qs-default-marker {
  position: absolute;
  top: 50%;
  width: 2px;
  height: 12px;
  margin-left: -1px;
  margin-top: -6px;
  border-radius: 1px;
  background: var(--qs-default-marker);
  pointer-events: none;
  z-index: 1;
}

.qdnapro-slider .qs-handle {
  position: absolute;
  top: 50%;
  width: 18px;
  height: 18px;
  margin-left: -9px;
  padding: 0;
  transform: translateY(-50%);
  border-radius: 50%;
  background: var(--qs-handle);
  border: 2px solid var(--qs-handle-border);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
  cursor: grab;
  z-index: 2;
  transition: box-shadow 140ms ease-out, transform 120ms ease-out;
}

.qdnapro-slider .qs-handle:hover {
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--qs-handle-glow) 25%, transparent), 0 1px 3px rgba(0, 0, 0, 0.18);
}

.qdnapro-slider .qs-handle:active,
.qdnapro-slider.is-dragging .qs-handle {
  cursor: grabbing;
  transform: translateY(-50%) scale(1.08);
}

.qdnapro-slider .qs-handle:focus {
  outline: none;
}

.qdnapro-slider .qs-handle:focus-visible {
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--qs-handle-glow) 25%, transparent), 0 1px 3px rgba(0, 0, 0, 0.18);
}

.qdnapro-slider .qs-handle qdnapro-tooltip {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  z-index: 3;
  pointer-events: none;
  transform: translateX(-50%) scale(0.92);
}

.qdnapro-slider .qs-handle qdnapro-tooltip.tooltip-visible {
  transform: translateX(-50%) scale(1);
}

.qdnapro-slider .qs-input {
  flex-shrink: 0;
  width: 68px;
}

.qdnapro-slider.qdnapro-slider--touch .qs-track {
  height: 10px;
  margin: 22px 0;
}

.qdnapro-slider.qdnapro-slider--touch .qs-handle {
  width: 44px;
  height: 44px;
  margin-left: -22px;
  border-width: 3px;
}

.qdnapro-slider.qdnapro-slider--touch .qs-dot {
  width: 7px;
  height: 7px;
  margin-left: -3.5px;
  margin-top: -3.5px;
}

.qdnapro-slider.qdnapro-slider--touch .qs-icon {
  width: 28px;
  height: 28px;
}

.qdnapro-slider.qdnapro-slider--touch .qs-default-marker {
  width: 3px;
  height: 18px;
  margin-left: -1.5px;
  margin-top: -9px;
}

.qdnapro-slider.is-disabled {
  opacity: 0.5;
  pointer-events: none;
}

[data-theme=dark] .qdnapro-slider {
  --qs-track: var(--c-grey-700, #40444d);
  --qs-dot: var(--c-grey-500, #6b7280);
  --qs-default-marker: var(--c-grey-300, #c4c7cc);
  --qs-handle: var(--c-grey-100, #e7e9ec);
  --qs-handle-border: var(--c-purple-300, #8a92d0);
  --qs-handle-glow: var(--c-purple-200, #a5acff);
}

[data-theme=dark] .qdnapro-slider.qdnapro-slider--neutral {
  --qs-track: var(--c-grey-700, #40444d);
  --qs-fill: var(--c-grey-400, #a6aab3);
  --qs-dot-active: var(--c-grey-300, #c4c7cc);
  --qs-handle-border: var(--c-grey-300, #c4c7cc);
  --qs-handle-glow: var(--c-grey-500, #6b7280);
}

[data-theme=dark] .qdnapro-slider.qdnapro-slider--sentiment {
  --qs-handle-border: var(--c-grey-300, #c4c7cc);
  --qs-handle-glow: var(--c-grey-500, #6b7280);
}

/* ============================================================
   Skeleton loader — central CSS for all v1 pages that show a
   skeleton while data loads. Same shimmer / .sk-bone vocabulary
   as the homepage-mockup proto so every page lookt consistent.
   (Kim 2026-05-29.)

   Usage:
     <body class="is-skeleton-loading">
       ...
       <div class="skeleton-grid">
         <div class="sk-card">
           <div class="sk-bone" style="height:60px;"></div>
           <div class="sk-bone" style="height:12px;width:60%;"></div>
         </div>
       </div>
     </body>

   Toggle visibility by adding / removing `is-skeleton-loading`
   on the body. The page-specific layout (.sk-card shape, grid
   columns, etc.) lives in the page's own stylesheet — only
   the bone / shimmer primitives live here.
   ============================================================ */
@keyframes sk-shimmer {
  0% {
    background-position: -800px 0;
  }
  100% {
    background-position: 800px 0;
  }
}
/* Page-default — light theme. Dark mode overrides below. */
body {
  --sk-base: var(--c-sidebar-icon);
  --sk-shine: var(--c-border-tree-bright);
  --sk-card-bg: var(--c-purple-50);
}

body[data-theme=dark] {
  --sk-base: #1e1f2e;
  --sk-shine: #262840;
  --sk-card-bg: #14151f;
}

/* The bone — single shimmer-painted rectangle. Compose into
   page-specific skeleton shapes by stacking these inside .sk-card
   wrappers (page-side). */
.sk-bone {
  background: linear-gradient(90deg, var(--sk-base) 25%, var(--sk-shine) 50%, var(--sk-base) 75%);
  background-size: 800px 100%;
  animation: sk-shimmer 1.5s infinite linear;
  border-radius: 4px;
}

/* Generic skeleton card chrome — page can override grid layout
   and individual card dimensions. Pages that want a different
   look can skip this class and style their own wrapper. */
.sk-card {
  background: var(--sk-card-bg);
  border: 1px solid rgba(64, 73, 154, 0.12);
  border-radius: 12px;
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
  .sk-bone {
    animation: none;
  }
}
/* ============================================================
   qdnapro-skeleton-bone — atomic shimmer placeholder.

   The shimmer paint (.sk-bone, @keyframes sk-shimmer) and the
   --sk-* color vars live in skeleton/_skeleton-compiled.css and
   are NOT duplicated here. This file only makes the custom element
   a block box and adds the circle/pill radius modifiers. The shape
   overrides beat .sk-bone's 4px on specificity (type + class), so
   bundle source-order does not matter. (Kim 2026-05-30)
   ============================================================ */
qdnapro-skeleton-bone {
  display: block;
  flex-shrink: 0;
}

qdnapro-skeleton-bone.skeleton-bone-circle {
  border-radius: 50%;
}

qdnapro-skeleton-bone.skeleton-bone-pill {
  border-radius: 999px;
}

qdnapro-skeleton-inbox-row {
  box-sizing: border-box;
  display: flex;
  align-items: stretch;
  gap: 8px;
  padding: 4px 8px;
  border-radius: 8px;
  opacity: 0;
  animation: ski-row-enter 240ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
qdnapro-skeleton-inbox-row:nth-of-type(1) {
  animation-delay: 0ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(2) {
  animation-delay: 25ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(3) {
  animation-delay: 50ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(4) {
  animation-delay: 75ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(5) {
  animation-delay: 100ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(6) {
  animation-delay: 125ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(7) {
  animation-delay: 150ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(8) {
  animation-delay: 175ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(9) {
  animation-delay: 200ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(10) {
  animation-delay: 225ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(11) {
  animation-delay: 250ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(12) {
  animation-delay: 275ms;
}
qdnapro-skeleton-inbox-row:nth-of-type(n + 13) {
  animation-delay: 0ms;
}

@keyframes ski-row-enter {
  0% {
    opacity: 0;
    transform: translateY(6px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  qdnapro-skeleton-inbox-row {
    animation: none;
    opacity: 1;
  }
}
qdnapro-skeleton-inbox-row .ski-lead {
  flex-shrink: 0;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  width: 50px;
  padding-top: 4px;
}

qdnapro-skeleton-inbox-row .ski-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 4px 0;
}

qdnapro-skeleton-inbox-row .ski-row-1 {
  display: flex;
  align-items: center;
  height: 24px;
}

qdnapro-skeleton-inbox-row .ski-row-2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  height: 24px;
  margin-top: -2px;
}

qdnapro-skeleton-inbox-row .ski-row-3 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  height: 20px;
  margin-top: -2px;
}

/* ============================================================
   qdnapro-skeleton-project-card — composes skeleton-bone atoms into
   a project-card-shaped loading placeholder. Mirrors the original
   .pv2-skeleton-card chrome so the skeleton -> real card swap has
   zero layout shift (same 12px radius, 1px border, 208px min-height,
   158px photo block). Card surface color comes from --sk-card-bg in
   skeleton/_skeleton-compiled.css. (Kim 2026-05-30)
   ============================================================ */
qdnapro-skeleton-project-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 208px;
  background: var(--sk-card-bg);
  border: 1px solid rgba(64, 73, 154, 0.12);
  border-radius: 12px;
}

/* Photo block fills the top edge-to-edge; the card's own radius +
   overflow:hidden clips the corners, so the bone itself has no radius.
   Beats .sk-bone's 4px on specificity (type + class + :first-child). */
qdnapro-skeleton-project-card > .sk-bone:first-child {
  border-radius: 0;
}

qdnapro-skeleton-project-card .ssp-body {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
}

qdnapro-skeleton-project-card .ssp-spacer {
  flex: 1;
}

.text-h1 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 60px;
  line-height: 72px;
}

.text-h2 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 40px;
  line-height: 56px;
}

.text-h3 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 32px;
  line-height: 48px;
}

.text-h4 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 28px;
  line-height: 44px;
}

.text-h5 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 24px;
  line-height: 36px;
}

.text-h6 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 20px;
  line-height: 24px;
}

.text-body-xs {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 10px;
  line-height: 20px;
}

.text-body-sm {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 12px;
  line-height: 20px;
}

.text-body-md {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 14px;
  line-height: 24px;
}

.text-body-lg {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
}

.text-body-xl {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 20px;
  line-height: 32px;
}

.qdnapro-source-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 8px;
  border-radius: 4px;
  box-sizing: border-box;
  font-family: "Inter", sans-serif;
  font-size: 12px;
  line-height: 20px;
  font-weight: 500;
  color: var(--c-grey-500);
  background: var(--c-grey-50);
  transition: background-color 120ms ease-out;
  user-select: none;
}

.qdnapro-source-pill[role=button]:hover, .qdnapro-source-pill.force-hover {
  background: var(--c-border-card);
}

.qdnapro-source-pill[role=button]:active, .qdnapro-source-pill.force-pressed {
  background: var(--c-grey-300);
}

.qdnapro-source-pill.source-pill-type-text {
  gap: 0;
}

.qdnapro-source-pill .source-pill-leading {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}

.qdnapro-source-pill qdnapro-file-icon.source-pill-leading {
  width: 16px;
  height: 16px;
}

.qdnapro-source-pill qdnapro-file-icon.source-pill-leading .qdnapro-file-icon-badge {
  display: none;
}

.qdnapro-source-pill .source-pill-favicon {
  width: 16px;
  height: 17px;
  border-radius: 100px;
  border: 1px solid var(--c-grey-300);
  overflow: hidden;
  background: var(--c-bg-card-hover);
  position: relative;
}

.qdnapro-source-pill .source-pill-favicon img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity 120ms ease;
}

.qdnapro-source-pill .source-pill-favicon-letter {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-weight: 600;
  color: var(--c-grey-500);
  text-transform: uppercase;
  line-height: 1;
  z-index: 0;
  user-select: none;
}

.qdnapro-source-pill .source-pill-favicon-fallback {
  background: var(--c-grey-200);
}

.qdnapro-source-pill .source-pill-favicon-fallback img {
  display: none;
}

.qdnapro-source-pill .source-pill-stack {
  display: inline-flex;
  align-items: center;
  padding-right: 6px;
}

.qdnapro-source-pill .source-pill-stack-item {
  width: 16px;
  height: 17px;
  border-radius: 100px;
  border: 1px solid var(--c-grey-300);
  background: var(--c-bg-card-hover);
  margin-right: -6px;
  overflow: hidden;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.qdnapro-source-pill .source-pill-stack-item img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity 120ms ease;
}

.qdnapro-source-pill .source-pill-stack-item .source-pill-favicon-letter {
  font-size: 8px;
}

.qdnapro-source-pill .source-pill-stack-fallback {
  background: var(--c-grey-200);
}

.qdnapro-source-pill .source-pill-stack-fallback img {
  display: none;
}

.qdnapro-source-pill .source-pill-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 240px;
}

.qdnapro-source-pill[role=button] {
  cursor: pointer;
}

.qdnapro-source-pill:focus {
  outline: none;
}

.qdnapro-source-pill[role=button]:focus-visible, .qdnapro-source-pill.force-focus {
  outline: 2px solid var(--c-purple-500);
  outline-offset: 2px;
}

[data-theme=dark] .qdnapro-source-pill {
  color: #a6aab3;
  background: #2e3036;
}

[data-theme=dark] .qdnapro-source-pill[role=button]:hover, [data-theme=dark] .qdnapro-source-pill.force-hover {
  background: #40444d;
}

[data-theme=dark] .qdnapro-source-pill[role=button]:active, [data-theme=dark] .qdnapro-source-pill.force-pressed {
  background: #565b66;
}

[data-theme=dark] .qdnapro-source-pill .source-pill-favicon,
[data-theme=dark] .qdnapro-source-pill .source-pill-stack-item {
  background: #1f2028;
  border-color: #565b66;
}

[data-theme=dark] .qdnapro-source-pill .source-pill-favicon-fallback,
[data-theme=dark] .qdnapro-source-pill .source-pill-stack-fallback {
  background: #565b66;
}

qdnapro-star-rating {
  --c-focus-ring: var(--c-purple-500);
  --c-focus-glow: rgba(70, 82, 243, 0.25);
  display: inline-flex;
  align-items: center;
  gap: 2px;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
qdnapro-star-rating .star-rating-star {
  color: var(--c-grey-300);
  transition: color 120ms ease, transform 120ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
qdnapro-star-rating .star-rating-star-filled {
  color: var(--c-warning-bright-border);
}
qdnapro-star-rating:not(.star-rating-readonly) .star-rating-star:hover {
  transform: scale(1.15);
}
qdnapro-star-rating:focus {
  outline: none;
}
qdnapro-star-rating:focus-visible {
  outline: none;
  border-radius: 4px;
  box-shadow: 0 0 0 2px var(--c-focus-ring), 0 0 0 6px var(--c-focus-glow);
}
qdnapro-star-rating.star-rating-readonly {
  cursor: default;
}

[data-theme=dark] qdnapro-star-rating {
  --c-focus-ring: #a5acff;
  --c-focus-glow: rgba(165, 172, 255, 0.40);
}
[data-theme=dark] qdnapro-star-rating .star-rating-star {
  color: #4a4e5c;
}
[data-theme=dark] qdnapro-star-rating .star-rating-star-filled {
  color: #ffd54a;
}

.qdnapro-stat-card {
  --sc-accent: var(--c-purple-500);
  --sc-soft: var(--c-bg-subtle-purple);
  --sc-border: var(--c-border-tree-bright);
  --sc-fill: var(--c-purple-500);
  flex: 1;
  min-width: 0;
  min-height: 80px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--c-bg-card);
  border: 1px solid var(--c-border-soft-2);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  cursor: pointer;
  font-family: inherit;
  -webkit-tap-highlight-color: transparent;
  transition: box-shadow 160ms ease, transform 160ms cubic-bezier(0.4, 0, 0.2, 1), border-color 140ms ease, background-color 140ms ease;
}

.qdnapro-stat-card.stat-card-tone-purple {
  --sc-accent: var(--c-purple-500);
  --sc-soft: var(--c-bg-subtle-purple);
  --sc-border: var(--c-border-tree-bright);
  --sc-fill: var(--c-purple-500);
}

.qdnapro-stat-card.stat-card-tone-red {
  --sc-accent: var(--c-signal-red-text);
  --sc-soft: var(--c-signal-red-soft);
  --sc-border: var(--c-tag-critical-bg);
  --sc-fill: var(--c-warn-red-600);
}

.qdnapro-stat-card.stat-card-tone-green {
  --sc-accent: var(--c-success-bright);
  --sc-soft: var(--c-chip-green-bg);
  --sc-border: var(--c-signal-green-100);
  --sc-fill: var(--c-success-500);
}

.qdnapro-stat-card.stat-card-tone-blue {
  --sc-accent: var(--c-chip-bright-blue-hover);
  --sc-soft: var(--c-bg-subtle-purple);
  --sc-border: var(--c-chip-bright-blue-2-bg);
  --sc-fill: var(--c-action-600);
}

.qdnapro-stat-card.stat-card-tone-orange {
  --sc-accent: var(--c-warn-yellow-600);
  --sc-soft: var(--c-signal-orange-bg);
  --sc-border: var(--c-signal-yellow-bg);
  --sc-fill: var(--c-warn-amber-600);
}

.qdnapro-stat-card.stat-card-tone-gray {
  --sc-accent: var(--c-grey-500);
  --sc-soft: var(--c-bg-card-hover);
  --sc-border: var(--c-chip-grey-hover);
  --sc-fill: var(--c-grey-600);
}

.qdnapro-stat-card .stat-card-icon {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
}

.qdnapro-stat-card .stat-card-body {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.qdnapro-stat-card .stat-card-value {
  font-size: 20px;
  font-weight: 600;
  color: var(--c-text-heading);
  line-height: 1.1;
  white-space: nowrap;
}

.qdnapro-stat-card .stat-card-label {
  font-size: 11px;
  font-weight: 500;
  color: var(--c-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-stat-card.stat-card-variant-accent {
  background: var(--sc-soft);
  border-color: var(--sc-border);
  box-shadow: none;
}

.qdnapro-stat-card.stat-card-variant-accent .stat-card-icon {
  width: 40px;
  height: 40px;
  background: var(--c-bg-card);
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(20, 25, 80, 0.1);
}

.qdnapro-stat-card.stat-card-variant-accent .stat-card-value {
  font-size: 22px;
}

.qdnapro-stat-card.stat-card-variant-accent .stat-card-label {
  color: var(--sc-accent);
}

.qdnapro-stat-card.stat-card-variant-solid {
  background: var(--sc-fill);
  border-color: transparent;
  box-shadow: 0 2px 8px rgba(20, 25, 80, 0.14);
}

.qdnapro-stat-card.stat-card-variant-solid .stat-card-value,
.qdnapro-stat-card.stat-card-variant-solid .stat-card-label,
.qdnapro-stat-card.stat-card-variant-solid .stat-card-sub {
  color: #fff;
}

.qdnapro-stat-card.stat-card-variant-solid .stat-card-value {
  font-size: 22px;
  font-weight: 700;
}

.qdnapro-stat-card.stat-card-variant-solid .stat-card-label {
  font-weight: 600;
  white-space: normal;
  overflow: visible;
  line-height: 1.3;
}

.qdnapro-stat-card.stat-card-variant-solid .stat-card-icon {
  background: var(--c-white-22);
  border-radius: 9px;
}

.qdnapro-stat-card.stat-card-variant-solid .stat-card-icon:empty {
  display: none;
}

.qdnapro-stat-card.stat-card-variant-solid:not(.stat-card-disabled):not(.stat-card-static):hover {
  border-color: transparent;
  box-shadow: 0 8px 20px rgba(20, 25, 80, 0.26);
}

.qdnapro-stat-card.stat-card-variant-solid:not(.stat-card-disabled):not(.stat-card-static):focus-visible {
  border-color: transparent;
  box-shadow: 0 0 0 4px var(--focus-glow);
}

.qdnapro-stat-card.stat-card-variant-solid.stat-card-size-medium .stat-card-value {
  font-size: 19px;
}

.qdnapro-stat-card.stat-card-variant-solid.stat-card-size-small .stat-card-value {
  font-size: 16px;
}

.qdnapro-stat-card.stat-card-variant-empty {
  background: var(--c-bg-card);
  border: 1.5px dashed var(--c-sidebar-icon);
  box-shadow: none;
}

.qdnapro-stat-card.stat-card-variant-empty .stat-card-icon {
  background: var(--sc-soft);
  opacity: 0.55;
}

.qdnapro-stat-card.stat-card-variant-empty .stat-card-value {
  display: none;
}

.qdnapro-stat-card.stat-card-variant-empty .stat-card-label {
  font-size: 16px;
  font-weight: 500;
  color: var(--c-text-disabled-pp);
  transition: color 140ms ease;
}

.qdnapro-stat-card .stat-card-sub {
  font-size: 12px;
  font-weight: 500;
  color: var(--c-sidebar-icon);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color 140ms ease;
}

.qdnapro-stat-card.stat-card-variant-empty:not(.stat-card-disabled):not(.stat-card-static):hover {
  border-color: var(--c-purple-300);
  box-shadow: none;
  transform: translateY(-2px);
}

.qdnapro-stat-card.stat-card-variant-empty:not(.stat-card-disabled):not(.stat-card-static):hover .stat-card-label {
  color: var(--c-purple-500);
}

.qdnapro-stat-card.stat-card-variant-empty:not(.stat-card-disabled):not(.stat-card-static):hover .stat-card-sub {
  color: var(--c-purple-300);
}

.qdnapro-stat-card.stat-card-warning {
  --sc-accent: var(--c-warn-yellow-600);
  --sc-soft: var(--c-signal-orange-bg);
  --sc-border: var(--c-signal-yellow-bg);
}

.qdnapro-stat-card.stat-card-warning.stat-card-variant-empty {
  border-color: var(--c-warn-yellow-600);
}

.qdnapro-stat-card.stat-card-warning.stat-card-variant-empty .stat-card-icon {
  opacity: 1;
}

.qdnapro-stat-card.stat-card-warning .stat-card-sub {
  color: var(--c-signal-yellow-text);
}

.qdnapro-stat-card.stat-card-warning.stat-card-variant-empty .stat-card-label {
  color: var(--c-tag-warning-text);
}

.qdnapro-stat-card.stat-card-warning.stat-card-variant-empty:not(.stat-card-disabled):not(.stat-card-static):hover {
  border-color: var(--c-warn-yellow-600);
}

.qdnapro-stat-card.stat-card-warning.stat-card-variant-empty:not(.stat-card-disabled):not(.stat-card-static):hover .stat-card-label {
  color: var(--c-tag-warning-text);
}

.qdnapro-stat-card.stat-card-warning.stat-card-variant-empty:not(.stat-card-disabled):not(.stat-card-static):hover .stat-card-sub {
  color: var(--c-tag-warning-text);
}

.qdnapro-stat-card.stat-card-size-large {
  min-height: 80px;
  padding: 12px 14px;
  gap: 10px;
}

.qdnapro-stat-card.stat-card-size-medium {
  min-height: 60px;
  padding: 9px 12px;
  gap: 9px;
  border-radius: 11px;
}

.qdnapro-stat-card.stat-card-size-medium .stat-card-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
}

.qdnapro-stat-card.stat-card-size-medium .stat-card-value {
  font-size: 17px;
}

.qdnapro-stat-card.stat-card-size-medium .stat-card-label {
  font-size: 11px;
  line-height: 1.35;
}

.qdnapro-stat-card.stat-card-size-medium .stat-card-sub {
  font-size: 11px;
  line-height: 1.35;
}

.qdnapro-stat-card.stat-card-size-medium.stat-card-variant-empty .stat-card-label {
  font-size: 14px;
  line-height: 1.3;
}

.qdnapro-stat-card.stat-card-size-small {
  min-height: 44px;
  padding: 5px 10px;
  gap: 8px;
  border-radius: 10px;
}

.qdnapro-stat-card.stat-card-size-small .stat-card-icon {
  width: 22px;
  height: 22px;
  border-radius: 7px;
}

.qdnapro-stat-card.stat-card-size-small .stat-card-value {
  font-size: 15px;
}

.qdnapro-stat-card.stat-card-size-small .stat-card-label {
  font-size: 10px;
  line-height: 1.35;
}

.qdnapro-stat-card.stat-card-size-small .stat-card-sub {
  font-size: 10px;
  line-height: 1.35;
}

.qdnapro-stat-card.stat-card-size-small.stat-card-variant-empty .stat-card-label {
  font-size: 13px;
  line-height: 1.3;
}

.qdnapro-stat-card.stat-card-variant-accent.stat-card-size-medium .stat-card-value {
  font-size: 18px;
}

.qdnapro-stat-card.stat-card-variant-accent.stat-card-size-small .stat-card-value {
  font-size: 15px;
}

.qdnapro-stat-card:not(.stat-card-disabled):not(.stat-card-static):hover {
  border-color: var(--sc-accent);
  box-shadow: 0 4px 14px rgba(20, 25, 80, 0.1);
  transform: translateY(-2px);
}

.qdnapro-stat-card.stat-card-variant-accent:not(.stat-card-disabled):not(.stat-card-static):hover {
  box-shadow: 0 6px 18px rgba(20, 25, 80, 0.12);
}

.qdnapro-stat-card:not(.stat-card-disabled):not(.stat-card-static):active {
  transform: translateY(0) scale(0.985);
  box-shadow: 0 1px 2px rgba(20, 25, 80, 0.12);
  transition-duration: 60ms;
}

.qdnapro-stat-card:focus {
  outline: none;
}

.qdnapro-stat-card:not(.stat-card-disabled):not(.stat-card-static):focus-visible {
  outline: none;
  border-color: var(--sc-accent);
  box-shadow: 0 0 0 4px var(--focus-glow);
}

.qdnapro-stat-card.stat-card-static {
  cursor: default;
}

.qdnapro-stat-card.stat-card-disabled {
  opacity: 0.5;
  pointer-events: none;
  cursor: not-allowed;
}

.qdnapro-stat-card.stat-card-variant-stacked {
  flex-direction: column;
  justify-content: center;
  min-height: 0;
  gap: 0;
  padding: 12px 8px 14px;
  border-radius: 14px;
  border-color: var(--c-border-card);
  box-shadow: none;
  text-align: center;
}

.qdnapro-stat-card.stat-card-variant-stacked .stat-card-stacked-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 0;
  max-width: 100%;
}

.qdnapro-stat-card.stat-card-variant-stacked .stat-card-icon {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  border-radius: 0;
  background: none;
}

.qdnapro-stat-card.stat-card-variant-stacked .stat-card-icon qdnapro-lottie {
  width: 32px;
  height: 32px;
}

.qdnapro-stat-card.stat-card-variant-stacked .stat-card-value {
  font-size: 36px;
  font-weight: 800;
  line-height: 1;
  color: var(--c-text-heading);
  white-space: nowrap;
}

.qdnapro-stat-card.stat-card-variant-stacked .stat-card-label {
  margin-top: 6px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.25;
  color: var(--c-text-heading);
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  max-width: 100%;
}

.qdnapro-stat-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  min-width: 0;
}

.qdnapro-stat-card-row {
  display: flex;
  gap: 10px;
  min-width: 0;
}

[data-theme=dark] .qdnapro-stat-card,
[data-theme-dark] .qdnapro-stat-card {
  background: #2a2d36;
  border-color: var(--c-white-08);
}

[data-theme=dark] .qdnapro-stat-card .stat-card-value,
[data-theme-dark] .qdnapro-stat-card .stat-card-value {
  color: #f0f1fa;
}

[data-theme=dark] .qdnapro-stat-card .stat-card-label,
[data-theme-dark] .qdnapro-stat-card .stat-card-label {
  color: rgba(255, 255, 255, 0.45);
}

[data-theme=dark] .qdnapro-stat-card.stat-card-variant-accent,
[data-theme-dark] .qdnapro-stat-card.stat-card-variant-accent {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme=dark] .qdnapro-stat-card.stat-card-variant-accent .stat-card-icon,
[data-theme-dark] .qdnapro-stat-card.stat-card-variant-accent .stat-card-icon {
  background: rgba(255, 255, 255, 0.1);
  box-shadow: none;
}

[data-theme=dark] .qdnapro-stat-card.stat-card-variant-solid,
[data-theme-dark] .qdnapro-stat-card.stat-card-variant-solid {
  background: var(--sc-fill);
  border-color: transparent;
}

[data-theme=dark] .qdnapro-stat-card.stat-card-variant-solid .stat-card-value,
[data-theme-dark] .qdnapro-stat-card.stat-card-variant-solid .stat-card-value,
[data-theme=dark] .qdnapro-stat-card.stat-card-variant-solid .stat-card-label,
[data-theme-dark] .qdnapro-stat-card.stat-card-variant-solid .stat-card-label,
[data-theme=dark] .qdnapro-stat-card.stat-card-variant-solid .stat-card-sub,
[data-theme-dark] .qdnapro-stat-card.stat-card-variant-solid .stat-card-sub {
  color: #fff;
}

[data-theme=dark] .qdnapro-stat-card.stat-card-variant-solid .stat-card-icon,
[data-theme-dark] .qdnapro-stat-card.stat-card-variant-solid .stat-card-icon {
  background: var(--c-white-22);
}

.qdnapro-status-board {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  overflow-x: auto;
  padding-bottom: 8px;
}
.qdnapro-status-board::-webkit-scrollbar {
  height: 8px;
}
.qdnapro-status-board::-webkit-scrollbar-track {
  background: transparent;
}
.qdnapro-status-board::-webkit-scrollbar-thumb {
  background: rgba(64, 73, 154, 0.25);
  border-radius: 4px;
}

.qsb-col {
  flex: 1 1 0;
  min-width: 230px;
  max-width: 340px;
  background: rgba(255, 255, 255, 0.55);
  border-radius: 14px;
  padding: 10px;
  transition: background 0.15s ease, box-shadow 0.15s ease;
}

.qsb-col-over {
  background: #eef0fb;
  box-shadow: inset 0 0 0 2px rgba(64, 73, 154, 0.45);
}

.qsb-col-head {
  --qsb-accent: #b9bdd9;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 2px 4px 9px;
  border-bottom: 3px solid var(--qsb-accent);
  margin-bottom: 10px;
}

.qsb-col-label {
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #3a3860;
}

.qsb-col-count {
  margin-left: auto;
  font-size: 11.5px;
  font-weight: 700;
  color: #6a6890;
  background: #fff;
  border-radius: 8px;
  padding: 1px 8px;
}

.qsb-col-cards {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 62vh;
  overflow-y: auto;
}
.qsb-col-cards::-webkit-scrollbar {
  width: 6px;
}
.qsb-col-cards::-webkit-scrollbar-track {
  background: transparent;
}
.qsb-col-cards::-webkit-scrollbar-thumb {
  background: rgba(64, 73, 154, 0.25);
  border-radius: 3px;
}

.qsb-card {
  background: #fff;
  border-radius: 12px;
  padding: 11px 13px;
  box-shadow: 0 6px 18px -14px rgba(38, 34, 80, 0.5);
  cursor: pointer;
  font-size: 12.5px;
  line-height: 1.45;
}
.qsb-card[draggable=true] {
  cursor: grab;
}
.qsb-card:hover {
  box-shadow: 0 10px 22px -14px rgba(38, 34, 80, 0.55);
}

.qsb-dragging {
  opacity: 0.45;
}

.qdnapro-sticker-sheet {
  display: contents;
}

.qdnapro-bottom-sheet[data-sticker-sheet] .bs-panel {
  height: 80%;
  max-height: 80%;
}

.qdnapro-bottom-sheet[data-sticker-sheet] .bs-body {
  overflow: hidden;
  gap: 0;
  padding: 0;
}

qdnapro-popover[data-sticker-sheet] {
  width: min(92vw, 380px);
  padding: 8px;
  box-sizing: border-box;
}

qdnapro-popover[data-sticker-sheet] .ss-root {
  flex: none;
  height: 460px;
}

qdnapro-popover[data-sticker-sheet] .ss-search {
  padding: 0 0 8px;
}

qdnapro-popover[data-sticker-sheet] .ss-cats {
  padding: 0 0 10px;
}

qdnapro-popover[data-sticker-sheet] .ss-count {
  padding: 0 0 6px;
}

qdnapro-popover[data-sticker-sheet] .ss-grid {
  padding: 0 0 8px;
}

.ss-root {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  font-family: var(--theme-font-family, "Inter", sans-serif);
}

.ss-search {
  flex-shrink: 0;
  padding: 4px 12px 8px;
}

.ss-cats {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px 10px;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.ss-cats::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.ss-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.ss-scroll::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.ss-count {
  padding: 0 12px 6px;
  font-size: 12px;
  color: var(--c-text-muted);
}

.ss-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  padding: 0 12px 12px;
}

.ss-grid[hidden] {
  display: none;
}

.ss-cell {
  aspect-ratio: 1/1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  border-radius: 12px;
  padding: 6px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.ss-cell:active {
  background: var(--c-bg-card-hover);
}

.ss-cell .ss-img,
.ss-cell qdnapro-lottie {
  width: 100%;
  height: 100%;
  display: block;
}

.ss-cell .ss-img {
  object-fit: contain;
}

.ss-empty {
  padding: 44px 24px;
  text-align: center;
  font-size: 14px;
  color: var(--c-text-muted);
}

.ss-offline[hidden] {
  display: none;
}

.ss-offline {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 56px 24px;
  text-align: center;
  color: var(--c-text-muted);
}

.ss-offline .ss-icon {
  width: 32px;
  height: 32px;
}

.ss-offline-text {
  font-size: 14px;
  max-width: 260px;
}

.qdnapro-suggestion-chip {
  --c-focus-ring: var(--c-purple-500);
  --c-focus-glow: rgba(70, 82, 243, 0.25);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: transparent;
  border: 1px solid var(--c-grey-300);
  border-radius: 16px;
  font-family: "Inter", sans-serif;
  font-size: 12px;
  line-height: 16px;
  font-weight: 500;
  color: var(--c-grey-950);
  cursor: pointer;
  user-select: none;
  transition: background-color 120ms ease-out, border-color 120ms ease-out, color 120ms ease-out, box-shadow 120ms ease-out;
  box-sizing: border-box;
}

.qdnapro-suggestion-chip .suggestion-chip-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.qdnapro-suggestion-chip .suggestion-chip-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 240px;
}

.qdnapro-suggestion-chip:focus {
  outline: none;
}

.qdnapro-suggestion-chip:focus-visible, .qdnapro-suggestion-chip.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-focus-ring), 0 0 0 6px var(--c-focus-glow);
}

.qdnapro-suggestion-chip.suggestion-chip-theme-purple:hover:not(.suggestion-chip-disabled), .qdnapro-suggestion-chip.suggestion-chip-theme-purple.force-hover:not(.suggestion-chip-disabled) {
  background: #e6e9ff;
  border-color: var(--c-chip-bright-blue-2-hover);
  color: var(--c-purple-500);
}

.qdnapro-suggestion-chip.suggestion-chip-theme-purple:active:not(.suggestion-chip-disabled), .qdnapro-suggestion-chip.suggestion-chip-theme-purple.force-pressed:not(.suggestion-chip-disabled) {
  background: var(--c-sidebar-icon);
  border-color: var(--c-purple-500);
  color: var(--c-purple-500);
}

.qdnapro-suggestion-chip.suggestion-chip-theme-orange:hover:not(.suggestion-chip-disabled), .qdnapro-suggestion-chip.suggestion-chip-theme-orange.force-hover:not(.suggestion-chip-disabled) {
  background: var(--c-tag-warning-bg);
  border-color: var(--c-warn-yellow-600);
  color: var(--c-tag-warning-text);
}

.qdnapro-suggestion-chip.suggestion-chip-theme-orange:active:not(.suggestion-chip-disabled), .qdnapro-suggestion-chip.suggestion-chip-theme-orange.force-pressed:not(.suggestion-chip-disabled) {
  background: var(--c-signal-yellow-bg);
  border-color: var(--c-warn-yellow-600);
  color: var(--c-tag-warning-text);
}

.qdnapro-suggestion-chip.suggestion-chip-disabled, .qdnapro-suggestion-chip.suggestion-chip-disabled:hover, .qdnapro-suggestion-chip.suggestion-chip-disabled:active {
  color: var(--c-text-disabled);
  background: transparent;
  border-color: var(--c-border-card);
  cursor: not-allowed;
  pointer-events: none;
}

[data-theme=dark] .qdnapro-suggestion-chip {
  border-color: #565b66;
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-theme-purple:hover:not(.suggestion-chip-disabled), [data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-theme-purple.force-hover:not(.suggestion-chip-disabled) {
  background: rgba(70, 82, 243, 0.3);
  border-color: #7c84c5;
  color: #ffffff;
}

[data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-theme-purple:active:not(.suggestion-chip-disabled), [data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-theme-purple.force-pressed:not(.suggestion-chip-disabled) {
  background: rgba(70, 82, 243, 0.45);
  border-color: #a5acff;
  color: #ffffff;
}

[data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-theme-orange:hover:not(.suggestion-chip-disabled), [data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-theme-orange.force-hover:not(.suggestion-chip-disabled) {
  background: rgba(245, 143, 6, 0.25);
  border-color: #c97e22;
  color: #ffe4ba;
}

[data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-theme-orange:active:not(.suggestion-chip-disabled), [data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-theme-orange.force-pressed:not(.suggestion-chip-disabled) {
  background: rgba(245, 143, 6, 0.4);
  border-color: #f5b770;
  color: #ffffff;
}

[data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-disabled, [data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-disabled:hover, [data-theme=dark] .qdnapro-suggestion-chip.suggestion-chip-disabled:active {
  color: #6b7280;
  border-color: #3a3b42;
}

@media (pointer: coarse) {
  .qdnapro-table-list thead th.col-checkbox,
  .qdnapro-table-list tbody td.col-checkbox {
    width: 44px;
    padding-left: 12px;
    padding-right: 12px;
  }
}
qdnapro-table {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.qdnapro-table-wrapper {
  position: relative;
  width: 100%;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: auto;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.qdnapro-table-spinner {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  z-index: 10;
  display: none;
  overflow: hidden;
  background: var(--c-grey-100);
  border-radius: 8px 8px 0 0;
  pointer-events: none;
}
.qdnapro-table-spinner:not([hidden]) {
  display: block;
}
.qdnapro-table-spinner::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 35%;
  background: var(--c-action-500);
  border-radius: 2px;
  animation: qdnapro-table-progress 1.1s ease-in-out infinite;
}

@keyframes qdnapro-table-progress {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(400%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-table-spinner::after {
    animation: none;
    width: 100%;
    opacity: 0.45;
  }
}
.qdnapro-table-sentinel {
  height: 1px;
  pointer-events: none;
}

.qdnapro-table-list {
  width: 100%;
  border-collapse: collapse;
  background: var(--c-bg-card);
  font-size: 14px;
}
.qdnapro-table-list thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 10px 16px;
  background: var(--c-bg-card-hover);
  color: var(--c-grey-950);
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  text-align: left;
  border-bottom: 1px solid var(--c-grey-100);
  user-select: none;
}
.qdnapro-table-list thead th.col-checkbox {
  width: 36px;
  padding: 10px 10px;
}
.qdnapro-table-list thead th.is-sortable {
  cursor: pointer;
}
.qdnapro-table-list thead th.is-sortable:hover {
  background: var(--c-grey-50);
}
.qdnapro-table-list thead th.is-sortable:hover .col-sort-icon {
  opacity: 0.45;
}
.qdnapro-table-list thead th.is-sortable:focus-visible .col-sort-icon {
  opacity: 0.45;
}
.qdnapro-table-list thead th.is-sortable.is-sorted .col-sort-icon {
  opacity: 1;
  background: var(--c-purple-50, #e6e9ff);
  color: var(--c-purple-500, #40499a);
}
.qdnapro-table-list thead th.is-orderable {
  cursor: grab;
}
.qdnapro-table-list thead th.is-orderable:active {
  cursor: grabbing;
}
.qdnapro-table-list thead th.is-dragging {
  opacity: 0.4;
}
.qdnapro-table-list thead th.drop-before {
  box-shadow: inset 2px 0 0 0 var(--c-action-500);
}
.qdnapro-table-list thead th.drop-after {
  box-shadow: inset -2px 0 0 0 var(--c-action-500);
}
.qdnapro-table-list thead th .col-header-content {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.qdnapro-table-list thead th .col-sort-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.15s, background 0.15s, color 0.15s;
}
.qdnapro-table-list thead th .col-sort-icon svg {
  width: 14px;
  height: 14px;
  fill: currentColor !important;
}
.qdnapro-table-list th.col-sticky,
.qdnapro-table-list td.col-sticky {
  position: sticky;
  left: 0;
  z-index: 1;
  box-shadow: inset -1px 0 0 var(--c-grey-100);
}
.qdnapro-table-list td.col-sticky {
  background: #ffffff;
}
.qdnapro-table-list thead th.col-sticky {
  z-index: 3;
}
.qdnapro-table-list tbody tr:hover td.col-sticky {
  background: var(--c-bg-card-hover);
}
.qdnapro-table-list tbody tr.is-selected td.col-sticky {
  background: var(--c-signal-blue-bg);
}
.qdnapro-table-list tbody tr.is-active td.col-sticky {
  background: var(--c-purple-50, #eef0ff);
}
.qdnapro-table-list qdnapro-checkbox {
  --cb-bg: #ffffff;
  --cb-bg-hover: var(--c-grey-50);
  --cb-border: var(--c-grey-300);
  --cb-filled-bg: var(--c-action-500);
  --cb-filled-border: var(--c-action-500);
  --cb-mark: #ffffff;
}
.qdnapro-table-list tbody tr {
  border-bottom: 1px solid var(--c-bg-card-hover);
  transition: background 0.1s;
}
.qdnapro-table-list tbody tr:hover {
  background: var(--c-bg-card-hover);
}
.qdnapro-table-list tbody tr.is-selected {
  background: var(--c-signal-blue-bg);
}
.qdnapro-table-list tbody tr.is-active {
  background: var(--c-purple-50, #eef0ff);
}
.qdnapro-table-list tbody tr.is-clickable {
  cursor: pointer;
}
.qdnapro-table-list tbody tr.qdnapro-table-empty-row td.col-empty {
  text-align: center;
  padding: 52px 16px;
  color: var(--c-grey-400);
  font-size: 14px;
}
.qdnapro-table-list tbody td {
  padding: 11px 16px;
  vertical-align: middle;
  color: var(--c-grey-900);
  font-size: 14px;
}
.qdnapro-table-list tbody td.col-checkbox {
  width: 36px;
  padding: 11px 10px;
}
.qdnapro-table-list tbody td.col-checkbox.is-hit-area {
  cursor: pointer;
}
.qdnapro-table-list tbody td .col-number {
  font-variant-numeric: tabular-nums;
}
.qdnapro-table-list tbody td .col-truncate {
  display: inline-block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
}
.qdnapro-table-list tbody td .col-thumbnail {
  display: inline-flex;
  align-items: center;
}
.qdnapro-table-list tbody td .col-thumbnail img {
  width: 28px;
  height: 28px;
  object-fit: cover;
  border-radius: 4px;
  background: var(--c-bg-card-hover);
  display: block;
}
.qdnapro-table-list tbody td .col-thumbnail-text {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.qdnapro-table-list tbody td .col-thumbnail-text img {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  object-fit: cover;
  border-radius: 4px;
  background: var(--c-bg-card-hover);
}
.qdnapro-table-list tbody td .col-thumbnail-text qdnapro-avatar {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
}
.qdnapro-table-list tbody td .col-thumbnail-text .ctt-media {
  flex-shrink: 0;
  box-sizing: border-box;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  display: block;
}
.qdnapro-table-list tbody td .col-thumbnail-text img.ctt-photo {
  object-fit: cover;
  background: var(--c-bg-card-hover);
}
.qdnapro-table-list tbody td .col-thumbnail-text .ctt-tile {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-grey-50);
}
.qdnapro-table-list tbody td .col-thumbnail-text .ctt-tile--initials {
  color: var(--c-grey-500);
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
}
.qdnapro-table-list tbody td .col-thumbnail-text .ctt-tile-icon {
  width: 70%;
  height: 70%;
  object-fit: contain;
  display: block;
}
.qdnapro-table-list tbody td .col-thumbnail-text span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qdnapro-table-list tbody td .col-thumbnail-text span.ctt-media {
  overflow: visible;
  white-space: normal;
}
.qdnapro-table-list tbody td .col-icon-text {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.qdnapro-table-list tbody td .col-visual-text {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: 100%;
}
.qdnapro-table-list tbody td .col-visual-text img.cvt-media {
  flex-shrink: 0;
  object-fit: cover;
  border-radius: 4px;
  background: var(--c-bg-card-hover);
  display: block;
}
.qdnapro-table-list tbody td .col-visual-text qdnapro-avatar.cvt-media {
  flex-shrink: 0;
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  background: var(--c-grey-100);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile--grey {
  background: var(--c-grey-50);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile--red {
  background: var(--c-signal-red-bg);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile--yellow {
  background: var(--c-chip-yellow-bg);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile--green {
  background: var(--c-chip-green-bg);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile--blue {
  background: var(--c-signal-blue-bg);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile--bright-blue {
  background: var(--c-chip-bright-blue-2-bg);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile--pink {
  background: var(--c-signal-pink-bg);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-tile--purple {
  background: var(--c-chip-purple-bg);
}
.qdnapro-table-list tbody td .col-visual-text .cvt-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qdnapro-table-list tbody td .col-text-sub {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: 100%;
}
.qdnapro-table-list tbody td .col-text-sub img.cts-mark {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  object-fit: contain;
  display: block;
}
.qdnapro-table-list tbody td .col-text-sub .cts-lines {
  display: flex;
  flex-direction: column;
  line-height: 1.3;
  min-width: 0;
}
.qdnapro-table-list tbody td .col-text-sub .cts-main,
.qdnapro-table-list tbody td .col-text-sub .cts-sub {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qdnapro-table-list tbody td .col-text-sub .cts-sub {
  color: var(--c-grey-500);
  font-size: 12px;
}
.qdnapro-table-list tbody td .col-avatar {
  display: inline-flex;
}
.qdnapro-table-list tbody td .col-avatar img {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--c-grey-100);
}
.qdnapro-table-list tbody td .col-avatar img.is-empty {
  background: var(--c-bg-card-hover);
}

.qdnapro-table-grid {
  display: none;
  gap: 16px;
  padding: 16px;
}
.qdnapro-table-grid:not([hidden]) {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}

.qdnapro-table-grid-empty {
  width: 100%;
  text-align: center;
  padding: 52px 16px;
  color: var(--c-grey-400);
  font-size: 14px;
}

@keyframes qdnapro-table-enter {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes qdnapro-table-enter-flat {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.qdnapro-table-list tbody tr.is-entering,
.qdnapro-table-grid .qdnapro-grid-tile.is-entering {
  animation: qdnapro-table-enter 180ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
  animation-delay: calc(var(--qdnapro-table-enter-i, 0) * 25ms);
}

.qdnapro-table-list tbody tr.is-entering-flat {
  animation-name: qdnapro-table-enter-flat;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-table-list tbody tr.is-entering,
  .qdnapro-table-grid .qdnapro-grid-tile.is-entering {
    animation: none;
  }
}
.qdnapro-table-list thead th,
.qdnapro-table-list tbody td {
  transition: padding-top 200ms cubic-bezier(0.22, 0.61, 0.36, 1), padding-bottom 200ms cubic-bezier(0.22, 0.61, 0.36, 1), padding-left 200ms cubic-bezier(0.22, 0.61, 0.36, 1), padding-right 200ms cubic-bezier(0.22, 0.61, 0.36, 1), font-size 200ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-table-list thead th,
  .qdnapro-table-list tbody td {
    transition: none;
  }
}
.qdnapro-table-list.is-density-comfortable thead th {
  padding-top: 12px;
  padding-bottom: 12px;
}
.qdnapro-table-list.is-density-comfortable tbody td {
  padding-top: 16px;
  padding-bottom: 16px;
  font-size: 15px;
}
.qdnapro-table-list.is-density-comfortable tbody td.col-checkbox {
  padding-top: 16px;
  padding-bottom: 16px;
}
.qdnapro-table-list.is-density-comfortable .col-thumbnail-text span,
.qdnapro-table-list.is-density-comfortable .col-icon-text,
.qdnapro-table-list.is-density-comfortable .col-visual-text .cvt-label,
.qdnapro-table-list.is-density-comfortable .col-text-sub .cts-main {
  font-size: 15px;
}
.qdnapro-table-list.is-density-comfortable .col-thumbnail-text img,
.qdnapro-table-list.is-density-comfortable .col-thumbnail-text qdnapro-avatar,
.qdnapro-table-list.is-density-comfortable .col-thumbnail-text .ctt-media,
.qdnapro-table-list.is-density-comfortable .col-thumbnail img,
.qdnapro-table-list.is-density-comfortable .col-text-sub img.cts-mark {
  width: 34px;
  height: 34px;
}
.qdnapro-table-list.is-density-comfortable .col-thumbnail-text .ctt-tile--initials {
  font-size: 13px;
}

.qdnapro-table-list.is-density-compact thead th {
  padding-top: 7px;
  padding-bottom: 7px;
  padding-left: 12px;
  padding-right: 12px;
}
.qdnapro-table-list.is-density-compact tbody td {
  padding-top: 8px;
  padding-bottom: 8px;
  padding-left: 12px;
  padding-right: 12px;
  font-size: 12px;
}
.qdnapro-table-list.is-density-compact tbody td.col-checkbox {
  padding-top: 8px;
  padding-bottom: 8px;
}
.qdnapro-table-list.is-density-compact .col-thumbnail-text span,
.qdnapro-table-list.is-density-compact .col-icon-text,
.qdnapro-table-list.is-density-compact .col-visual-text .cvt-label,
.qdnapro-table-list.is-density-compact .col-text-sub .cts-main {
  font-size: 12px;
}
.qdnapro-table-list.is-density-compact .col-text-sub .cts-sub {
  font-size: 11px;
}
.qdnapro-table-list.is-density-compact .col-thumbnail-text img,
.qdnapro-table-list.is-density-compact .col-thumbnail-text qdnapro-avatar,
.qdnapro-table-list.is-density-compact .col-thumbnail-text .ctt-media,
.qdnapro-table-list.is-density-compact .col-thumbnail img,
.qdnapro-table-list.is-density-compact .col-text-sub img.cts-mark {
  width: 20px;
  height: 20px;
}
.qdnapro-table-list.is-density-compact .col-thumbnail-text .ctt-media {
  border-radius: 4px;
}
.qdnapro-table-list.is-density-compact .col-thumbnail-text .ctt-tile--initials {
  font-size: 9px;
}

qdnapro-table-wrapper {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
qdnapro-table-wrapper > qdnapro-table {
  flex: 1 1 auto;
  min-height: 0;
}

.qdnapro-table-wrapper__header {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  padding: 4px 16px;
  border-bottom: 1px solid var(--c-border-soft, #f0f1f2);
  --qtw-bar-height: 32px;
}

.qdnapro-table-wrapper__bar {
  grid-area: 1/1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  min-height: var(--qtw-bar-height);
  transition: opacity 0.12s ease;
}
.qdnapro-table-wrapper__bar[hidden] {
  display: flex;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.qdnapro-table-wrapper__selection-icon {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  color: var(--c-purple-500, #40499a);
}

[data-qtw-selection-count] {
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-body, #374151);
  white-space: nowrap;
}

.qdnapro-table-wrapper__selection-actions {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: 8px;
}

@keyframes qdnapro-table-wrapper-bulk-in {
  from {
    opacity: 0;
    transform: translate(4px, 2px) scale(0.94);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
[data-qtw-bar=selection] .is-entering {
  animation: qdnapro-table-wrapper-bulk-in 120ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
  animation-delay: calc(var(--qtw-enter-i, 0) * 20ms);
}

@media (prefers-reduced-motion: reduce) {
  [data-qtw-bar=selection] .is-entering {
    animation: none;
  }
}
.qdnapro-table-wrapper__left {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.qdnapro-table-wrapper__left > .qdnapro-button {
  margin-left: 6px;
}

.qdnapro-table-wrapper__right {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 0 0 auto;
}

.qdnapro-table-wrapper__actions {
  display: flex;
  align-items: center;
  gap: 4px;
}
.qdnapro-table-wrapper__actions:not(:empty) {
  margin-right: 4px;
}

.qdnapro-table-wrapper__label {
  font-size: 13px;
  font-weight: 500;
  color: var(--c-text-body, #374151);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

[data-qtw-count] {
  flex: 0 0 auto;
  margin-left: 2px;
  font-size: 14px;
  font-weight: 400;
  color: var(--c-grey-500);
  font-variant-numeric: tabular-nums;
}
[data-qtw-count][hidden] {
  display: none;
}

.qdnapro-table-wrapper__divider {
  flex: 0 0 auto;
  margin: 0 4px;
}

.qdnapro-table-wrapper__right > qdnapro-segment {
  margin-left: 2px;
}

.qdnapro-table-wrapper__header [data-qtw-action=density].qdnapro-button.button-active {
  background: var(--c-purple-50, #e6e9ff);
  color: var(--c-purple-500, #40499a);
}
.qdnapro-table-wrapper__header [data-qtw-action=density].qdnapro-button.button-active:hover:not(.button-disabled) {
  background: var(--c-purple-100, #c0c5ff);
}

qdnapro-popover[data-qtw-columns-panel] {
  width: min(92vw, 360px);
  padding: 0;
}

.qtw-colpanel {
  display: flex;
  flex-direction: column;
  max-height: min(80vh, 720px);
}

.qtw-colpanel__title {
  flex: 0 0 auto;
  padding: 10px 12px 4px;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-heading, #1a1f4d);
}

.qtw-colpanel__title + qdnapro-input {
  display: block;
  padding: 0 12px 8px;
}

.qtw-colpanel__list {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 4px 6px;
}

.qtw-colpanel__section + .qtw-colpanel__section {
  margin-top: 6px;
}

.qtw-colpanel__section-label {
  padding: 6px 6px 2px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--c-grey-500, #6b7280);
}
.qtw-colpanel__section-label[hidden] {
  display: none;
}

.qtw-colpanel__row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px;
  border-radius: 6px;
}
.qtw-colpanel__row[hidden] {
  display: none;
}
.qtw-colpanel__row:hover {
  background: var(--c-grey-50, #f0f1f2);
}
.qtw-colpanel__row.is-dragging {
  opacity: 0.4;
}
.qtw-colpanel__row.drop-before {
  box-shadow: inset 0 2px 0 0 var(--c-action-500);
}
.qtw-colpanel__row.drop-after {
  box-shadow: inset 0 -2px 0 0 var(--c-action-500);
}
.qtw-colpanel__row.is-draggable {
  cursor: grab;
}
.qtw-colpanel__row.is-draggable.is-dragging {
  cursor: grabbing;
}

.qtw-colpanel__handle,
.qtw-colpanel__handle-spacer {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
}

.qtw-colpanel__handle {
  color: var(--c-grey-400, #a6aab3);
}

.qtw-colpanel__label {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13px;
  color: var(--c-text-body, #374151);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qtw-colpanel__eye {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  border-radius: 6px;
  background: none;
  color: var(--c-grey-500, #6b7280);
  cursor: pointer;
}
.qtw-colpanel__eye qdnapro-icon {
  width: 16px;
  height: 16px;
}
.qtw-colpanel__eye:hover {
  background: var(--c-grey-100, #e7e9ec);
  color: var(--c-text-body, #374151);
}
.qtw-colpanel__eye:focus-visible {
  outline: 2px solid var(--c-action-500);
  outline-offset: 1px;
}

.qtw-colpanel__lock {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  color: var(--c-grey-400, #a6aab3);
}

.qtw-colpanel__footer {
  flex: 0 0 auto;
  padding: 8px 12px;
  border-top: 1px solid var(--c-border-soft, #f0f1f2);
}

.qtw-colpanel__reset {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 6px;
  border: none;
  background: none;
  font-size: 13px;
  font-weight: 500;
  color: var(--c-purple-500, #40499a);
  cursor: pointer;
  border-radius: 6px;
}
.qtw-colpanel__reset qdnapro-icon {
  width: 16px;
  height: 16px;
}
.qtw-colpanel__reset:hover {
  background: var(--c-purple-50, #e6e9ff);
}
.qtw-colpanel__reset:focus-visible {
  outline: 2px solid var(--c-action-500);
  outline-offset: 1px;
}

.text-h1 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 60px;
  line-height: 72px;
}

.text-h2 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 40px;
  line-height: 56px;
}

.text-h3 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 32px;
  line-height: 48px;
}

.text-h4 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 28px;
  line-height: 44px;
}

.text-h5 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 24px;
  line-height: 36px;
}

.text-h6 {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 20px;
  line-height: 24px;
}

.text-body-xs {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 10px;
  line-height: 20px;
}

.text-body-sm {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 12px;
  line-height: 20px;
}

.text-body-md {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 14px;
  line-height: 24px;
}

.text-body-lg {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
}

.text-body-xl {
  font-family: "Inter", sans-serif;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 20px;
  line-height: 32px;
}

.qdnapro-tag {
  --tag-bg: var(--c-grey-50);
  --tag-bg-hover: var(--c-border-card);
  --tag-text: #1e1f20;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  flex-shrink: 0;
  gap: 4px;
  padding: 0 8px;
  border-radius: 16px;
  background: var(--tag-bg);
  color: var(--tag-text);
  font-family: "Inter", sans-serif;
  font-weight: 600;
  user-select: none;
  outline: 2px solid transparent;
  outline-offset: -2px;
  transition: background-color 120ms ease;
}

.qdnapro-tag .tag-icon {
  display: inline-flex;
  flex-shrink: 0;
  color: inherit;
  pointer-events: none;
}

.qdnapro-tag .tag-icon svg {
  fill: currentColor;
  width: 100%;
  height: 100%;
}

.qdnapro-tag .tag-label {
  line-height: 1;
  white-space: nowrap;
}

/* Animated leading icon (lottie-name / lottie-src). A hair larger than the
   static icon: a Lottie's artwork rarely fills its own frame edge to edge,
   so at icon-size it reads smaller than its static sibling. */
.qdnapro-tag .tag-lottie {
  display: inline-flex;
  flex-shrink: 0;
  pointer-events: none;
}

.qdnapro-tag.tag-size-big {
  height: 28px;
  font-size: 14px;
  line-height: 1;
}

.qdnapro-tag.tag-size-big .tag-icon {
  width: 14px;
  height: 14px;
}

.qdnapro-tag.tag-size-big .tag-lottie {
  --ql-size: 18px;
  width: 18px;
  height: 18px;
}

.qdnapro-tag.tag-size-small {
  height: 24px;
  font-size: 12px;
  line-height: 1;
  padding: 0 8px;
}

.qdnapro-tag.tag-size-small .tag-icon {
  width: 12px;
  height: 12px;
}

.qdnapro-tag.tag-size-small .tag-lottie {
  --ql-size: 16px;
  width: 16px;
  height: 16px;
}

/* Removable ✕ (selection tokens / removable pills). */
.qdnapro-tag.tag-removable {
  padding-right: 4px;
}

.qdnapro-tag .tag-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  border-radius: 50%;
  opacity: 0.6;
  transition: background-color 120ms ease, opacity 120ms ease;
}

.qdnapro-tag .tag-remove:hover {
  opacity: 1;
  background: rgba(0, 0, 0, 0.1);
}

.qdnapro-tag .tag-remove:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 1px;
}

.qdnapro-tag .tag-remove qdnapro-icon {
  display: inline-flex;
  pointer-events: none;
}

.qdnapro-tag .tag-remove qdnapro-icon svg {
  fill: currentColor;
  width: 100%;
  height: 100%;
}

.qdnapro-tag.tag-size-big .tag-remove {
  width: 18px;
  height: 18px;
}

.qdnapro-tag.tag-size-big .tag-remove qdnapro-icon {
  width: 14px;
  height: 14px;
}

.qdnapro-tag.tag-size-small .tag-remove {
  width: 16px;
  height: 16px;
}

.qdnapro-tag.tag-size-small .tag-remove qdnapro-icon {
  width: 12px;
  height: 12px;
}

.qdnapro-tag.tag-disabled .tag-remove {
  pointer-events: none;
}

.qdnapro-tag.tag-color-grey {
  --tag-bg: var(--c-chip-grey-bg);
  --tag-bg-hover: var(--c-chip-grey-hover);
  --tag-text: var(--c-chip-grey-text);
}

.qdnapro-tag.tag-color-grey-2 {
  --tag-bg: var(--c-chip-grey-2-bg);
  --tag-bg-hover: var(--c-chip-grey-2-hover);
  --tag-text: var(--c-chip-grey-2-text);
}

.qdnapro-tag.tag-color-red {
  --tag-bg: var(--c-chip-red-bg);
  --tag-bg-hover: var(--c-chip-red-hover);
  --tag-text: var(--c-chip-red-text);
}

.qdnapro-tag.tag-color-red-2 {
  --tag-bg: var(--c-chip-red-2-bg);
  --tag-bg-hover: var(--c-chip-red-2-hover);
  --tag-text: var(--c-chip-red-2-text);
}

.qdnapro-tag.tag-color-yellow {
  --tag-bg: var(--c-chip-yellow-bg);
  --tag-bg-hover: var(--c-chip-yellow-hover);
  --tag-text: var(--c-chip-yellow-text);
}

.qdnapro-tag.tag-color-yellow-2 {
  --tag-bg: var(--c-chip-yellow-2-bg);
  --tag-bg-hover: var(--c-chip-yellow-2-hover);
  --tag-text: var(--c-chip-yellow-2-text);
}

.qdnapro-tag.tag-color-green {
  --tag-bg: var(--c-chip-green-bg);
  --tag-bg-hover: var(--c-chip-green-hover);
  --tag-text: var(--c-chip-green-text);
}

.qdnapro-tag.tag-color-green-2 {
  --tag-bg: var(--c-chip-green-2-bg);
  --tag-bg-hover: var(--c-chip-green-2-hover);
  --tag-text: var(--c-chip-green-2-text);
}

.qdnapro-tag.tag-color-blue {
  --tag-bg: var(--c-chip-blue-bg);
  --tag-bg-hover: var(--c-chip-blue-hover);
  --tag-text: var(--c-chip-blue-text);
}

.qdnapro-tag.tag-color-blue-2 {
  --tag-bg: var(--c-chip-blue-2-bg);
  --tag-bg-hover: var(--c-chip-blue-2-hover);
  --tag-text: var(--c-chip-blue-2-text);
}

.qdnapro-tag.tag-color-bright-blue {
  --tag-bg: var(--c-chip-bright-blue-bg);
  --tag-bg-hover: var(--c-chip-bright-blue-hover);
  --tag-text: var(--c-chip-bright-blue-text);
}

.qdnapro-tag.tag-color-bright-blue-2 {
  --tag-bg: var(--c-chip-bright-blue-2-bg);
  --tag-bg-hover: var(--c-chip-bright-blue-2-hover);
  --tag-text: var(--c-chip-bright-blue-2-text);
}

.qdnapro-tag.tag-color-pink {
  --tag-bg: var(--c-chip-pink-bg);
  --tag-bg-hover: var(--c-chip-pink-hover);
  --tag-text: var(--c-chip-pink-text);
}

.qdnapro-tag.tag-color-dark-pink {
  --tag-bg: var(--c-chip-dark-pink-bg);
  --tag-bg-hover: var(--c-chip-dark-pink-hover);
  --tag-text: var(--c-chip-dark-pink-text);
}

.qdnapro-tag.tag-color-purple {
  --tag-bg: var(--c-chip-purple-bg);
  --tag-bg-hover: var(--c-chip-purple-hover);
  --tag-text: var(--c-chip-purple-text);
}

.qdnapro-tag.tag-color-dark-purple {
  --tag-bg: var(--c-chip-dark-purple-bg);
  --tag-bg-hover: var(--c-chip-dark-purple-hover);
  --tag-text: var(--c-chip-dark-purple-text);
}

/* COLOR: action — the odd one out [16.08.2026]. The sixteen colours above are
   pastel surfaces with dark text, made for LABELLING something. This one is the
   solid brand blue with white text: the CHOSEN state of a filter chip, which the
   palette simply had no answer for. Built with variant=outline below, for the
   category chips in the sticker sheet. */
.qdnapro-tag.tag-color-action {
  --tag-bg: var(--c-action-500);
  --tag-bg-hover: var(--c-action-600);
  --tag-text: var(--c-text-on-action);
}

/* VARIANT: outline — white surface with a border instead of a filled chip
   [16.08.2026]. The UNchosen state of a filter chip. A row of filled pastel
   chips all read as "selected", which is exactly what a filter row must not do,
   so this was the missing half of the pair.
   The border sits on --tag-border so a colour can move it along; by default it
   follows the card border. `background` and `color` keep coming from the same
   --tag-bg/--tag-text as everywhere else, so hover, focus, disabled and the
   dark-mode block below need no extra rules. */
.qdnapro-tag.tag-variant-outline {
  --tag-bg: var(--c-bg-card);
  --tag-bg-hover: var(--c-grey-50);
  --tag-text: var(--c-text-body);
  --tag-border: var(--c-border-card);
  border: 1px solid var(--tag-border);
}

/* VARIANT: glass — doorschijnend WIT vlak met een blur [19.08.2026]. Voor een
   tag die OP EEN FOTO ligt: de campagnestatus op een Pulse-kaart. Donker glas
   was de eerste poging en las te zwaar op de tegel (Kim, 19.08.2026); wit glas
   legt een lichte waas over de foto in plaats van er een blok op te zetten.
   De tekst is bewust var(--c-grey-900) en NIET --c-text-body: die laatste klapt
   in donkere modus om naar lichtgrijs, en op een wit vlak is dat onleesbaar. De
   grijsschaal wordt in het donkere thema niet herzet, dus deze waarde staat vast
   in beide thema's — net als de pil zelf, want hij ligt op een foto en niet op
   de paginakleur.
   Glass negeert `color`. Eén neutrale laag werkt op elke foto, licht of donker;
   de status leest je aan het LABEL. De kleurregels hierboven hebben dezelfde
   soortelijkheid en komen eerder, dus dit blok wint; het donkere-modus-blok
   onderaan dit bestand heeft één selector meer, dus glass staat daar opnieuw. */
.qdnapro-tag.tag-variant-glass {
  --tag-bg: rgba(255, 255, 255, 0.72);
  --tag-bg-hover: rgba(255, 255, 255, 0.85);
  --tag-text: var(--c-grey-900);
  --tag-border: rgba(255, 255, 255, 0.55);
  border: 1px solid var(--tag-border);
  backdrop-filter: blur(8px) saturate(1.4);
  -webkit-backdrop-filter: blur(8px) saturate(1.4);
  /* Een tag op een foto draagt zijn eigen schaduw: de foto eronder kan elke
     helderheid hebben en zonder dit lost de rand op in een lichte foto. */
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
}

.qdnapro-tag.tag-interactive {
  cursor: pointer;
}

.qdnapro-tag.tag-interactive:hover {
  background: var(--tag-bg-hover);
}

.qdnapro-tag.tag-interactive:focus {
  outline: none;
}

.qdnapro-tag.tag-interactive:focus-visible, .qdnapro-tag.tag-interactive.force-focus {
  outline: 2px solid var(--c-purple-500);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-tag.tag-disabled, .qdnapro-tag.tag-disabled.tag-interactive {
  --tag-bg: var(--c-grey-50);
  --tag-bg-hover: var(--c-grey-50);
  --tag-text: var(--c-text-disabled);
  cursor: not-allowed;
}

.qdnapro-tag.tag-disabled:focus-visible, .qdnapro-tag.tag-disabled.force-focus, .qdnapro-tag.tag-disabled.tag-interactive:focus-visible, .qdnapro-tag.tag-disabled.tag-interactive.force-focus {
  outline: 2px solid transparent;
  box-shadow: none;
}

[data-theme=dark] .qdnapro-tag.tag-color-grey {
  --tag-bg: var(--c-chip-grey-bg);
  --tag-bg-hover: var(--c-chip-grey-hover);
  --tag-text: var(--c-chip-grey-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-grey-2 {
  --tag-bg: var(--c-chip-grey-2-bg);
  --tag-bg-hover: var(--c-chip-grey-2-hover);
  --tag-text: var(--c-chip-grey-2-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-red {
  --tag-bg: var(--c-chip-red-bg);
  --tag-bg-hover: var(--c-chip-red-hover);
  --tag-text: var(--c-chip-red-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-red-2 {
  --tag-bg: var(--c-chip-red-2-bg);
  --tag-bg-hover: var(--c-chip-red-2-hover);
  --tag-text: var(--c-chip-red-2-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-yellow {
  --tag-bg: var(--c-chip-yellow-bg);
  --tag-bg-hover: var(--c-chip-yellow-hover);
  --tag-text: var(--c-chip-yellow-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-yellow-2 {
  --tag-bg: var(--c-chip-yellow-2-bg);
  --tag-bg-hover: var(--c-chip-yellow-2-hover);
  --tag-text: var(--c-chip-yellow-2-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-green {
  --tag-bg: var(--c-chip-green-bg);
  --tag-bg-hover: var(--c-chip-green-hover);
  --tag-text: var(--c-chip-green-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-green-2 {
  --tag-bg: var(--c-chip-green-2-bg);
  --tag-bg-hover: var(--c-chip-green-2-hover);
  --tag-text: var(--c-chip-green-2-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-blue {
  --tag-bg: var(--c-chip-blue-bg);
  --tag-bg-hover: var(--c-chip-blue-hover);
  --tag-text: var(--c-chip-blue-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-blue-2 {
  --tag-bg: var(--c-chip-blue-2-bg);
  --tag-bg-hover: var(--c-chip-blue-2-hover);
  --tag-text: var(--c-chip-blue-2-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-bright-blue {
  --tag-bg: var(--c-chip-bright-blue-bg);
  --tag-bg-hover: var(--c-chip-bright-blue-hover);
  --tag-text: var(--c-chip-bright-blue-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-bright-blue-2 {
  --tag-bg: var(--c-chip-bright-blue-2-bg);
  --tag-bg-hover: var(--c-chip-bright-blue-2-hover);
  --tag-text: var(--c-chip-bright-blue-2-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-pink {
  --tag-bg: var(--c-chip-pink-bg);
  --tag-bg-hover: var(--c-chip-pink-hover);
  --tag-text: var(--c-chip-pink-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-dark-pink {
  --tag-bg: var(--c-chip-dark-pink-bg);
  --tag-bg-hover: var(--c-chip-dark-pink-hover);
  --tag-text: var(--c-chip-dark-pink-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-purple {
  --tag-bg: var(--c-chip-purple-bg);
  --tag-bg-hover: var(--c-chip-purple-hover);
  --tag-text: var(--c-chip-purple-text);
}

[data-theme=dark] .qdnapro-tag.tag-color-dark-purple {
  --tag-bg: var(--c-chip-dark-purple-bg);
  --tag-bg-hover: var(--c-chip-dark-purple-hover);
  --tag-text: var(--c-chip-dark-purple-text);
}

[data-theme=dark] .qdnapro-tag.tag-disabled, [data-theme=dark] .qdnapro-tag.tag-disabled.tag-interactive {
  --tag-bg: #2e3034;
  --tag-bg-hover: #2e3034;
  --tag-text: #6b7180;
}

/* Glass blijft glass in donkere modus. De [data-theme=dark] kleurregels hierboven
   hebben één selector meer dan .qdnapro-tag.tag-variant-glass, dus zonder dit
   blok zouden zij het vlak terugpakken. Hetzelfde witte glas in beide thema's is
   met opzet: de pil ligt op een foto, niet op de paginakleur. [19.08.2026] */
[data-theme=dark] .qdnapro-tag.tag-variant-glass {
  --tag-bg: rgba(255, 255, 255, 0.72);
  --tag-bg-hover: rgba(255, 255, 255, 0.85);
  --tag-text: var(--c-grey-900);
  --tag-border: rgba(255, 255, 255, 0.55);
}

.qdnapro-tasklist-card {
  position: relative;
  box-sizing: border-box;
  display: flex;
  align-items: stretch;
  background: var(--c-bg-card, #ffffff);
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: 14px;
  overflow: hidden;
  cursor: pointer;
  min-height: 84px;
  transition: box-shadow 160ms ease, border-color 160ms ease, transform 120ms ease;
  user-select: none;
  outline: none;
  /* Never inherit the anchor underline when the card is wrapped in a
     link (e.g. the projects-v2 tasklist grid). */
  text-decoration: none;
}

.qdnapro-tasklist-card *,
.qdnapro-tasklist-card *::before,
.qdnapro-tasklist-card *::after {
  box-sizing: border-box;
}

.qdnapro-tasklist-card:hover {
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.1);
  border-color: rgba(0, 0, 0, 0.12);
}

.qdnapro-tasklist-card:active {
  transform: scale(0.985);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
  transition: box-shadow 80ms ease, transform 80ms ease;
}

.qdnapro-tasklist-card:focus-visible {
  outline: 2px solid var(--c-purple-500);
  outline-offset: 2px;
}

/* === Dark mode - base card chrome ===
   In the bundle these read from the global --c-* tokens, but in the
   standalone library preview those tokens are absent, so the light
   fallbacks would win and the card would stay light. These explicit
   dark overrides make the base chrome correct in dark mode everywhere.
   Values match the dark palette already used in this file (surface
   var(--c-grey-800), neutral tile var(--c-grey-700), primary text var(--c-grey-50), muted var(--c-grey-400),
   subtle border rgba(255,255,255,0.10)). */
[data-theme=dark] .qdnapro-tasklist-card {
  background: #2e3036;
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme=dark] .qdnapro-tasklist-card .tlc-tile {
  background: #40444d;
}

[data-theme=dark] .qdnapro-tasklist-card .tlc-name {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-tasklist-card .tlc-sub {
  color: #a0a4b8;
}

.qdnapro-tasklist-card .tlc-icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 0 12px 12px;
}

.qdnapro-tasklist-card .tlc-tile {
  width: 60px;
  height: 60px;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 13px;
  background: var(--c-grey-100, #f0f1f2);
}

.qdnapro-tasklist-card.has-color .tlc-tile {
  background: var(--tlc-bg, var(--c-grey-100, #f0f1f2));
}

.qdnapro-tasklist-card .tlc-body {
  flex: 1;
  min-width: 0;
  padding: 16px 20px 16px 12px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.qdnapro-tasklist-card .tlc-name {
  font-size: 16px;
  font-weight: 500;
  color: var(--c-grey-900, #0b0b0d);
  line-height: 1.3;
  text-decoration: none;
  /* Wrap to a second line, then truncate with an ellipsis - never a
     third line. `white-space: normal` is explicit so it always beats
     the legacy page-level `.tlc-name { white-space: nowrap }`. The 60px
     icon tile keeps the card >= 84px tall, which fits two 16px/1.3
     lines, so the card height does not grow. */
  white-space: normal;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}

.qdnapro-tasklist-card .tlc-sub {
  font-size: 12.5px;
  color: var(--c-grey-500, #898e99);
  margin-top: 4px;
}

/* Compact variant: smaller tile + body, for dense list contexts. */
.qdnapro-tasklist-card.tlc-compact {
  min-height: 72px;
}

.qdnapro-tasklist-card.tlc-compact .tlc-icon {
  padding: 9px 0 9px 9px;
}

.qdnapro-tasklist-card.tlc-compact .tlc-tile {
  width: 48px;
  height: 48px;
  border-radius: 11px;
}

.qdnapro-tasklist-card.tlc-compact .tlc-body {
  padding: 12px 14px 12px 10px;
}

.qdnapro-tasklist-card.tlc-compact .tlc-name {
  font-size: 14px;
}

.qdnapro-tasklist-card.tlc-compact .tlc-sub {
  font-size: 11.5px;
}

/* === List variant: one-line picker/panel row ===
   `list` wins over `compact` (enforced in JS render(): compact is never
   applied together with tlc-list). One row, ~40px total (6px icon-block
   padding top/bottom + 28px tile = 40px), a small 28px icon tile (same
   color/icon vocabulary as every other mode), single-line ellipsized
   name, ~8px radius. No count/meta/archived-chip/actions/favorite ever
   render in this mode (guarded in JS), so there is nothing to style for
   them here.
   Hover uses a FLAT background tint - the house list-row convention
   (matches qdnapro-menu-item's --mi-bg-hover and the event-sheet row
   hover), not the free-floating card's shadow-lift - because this
   variant sits inline in a list, not as its own card. */
.qdnapro-tasklist-card.tlc-list {
  min-height: 40px;
  border-radius: 8px;
  align-items: center;
}

.qdnapro-tasklist-card.tlc-list:hover {
  background: var(--c-grey-50, #f0f1f2);
  box-shadow: none;
  border-color: var(--c-border-card, #e1e3e6);
}

.qdnapro-tasklist-card.tlc-list:active {
  transform: none;
  box-shadow: none;
}

.qdnapro-tasklist-card.tlc-list .tlc-icon {
  padding: 6px 0 6px 6px;
}

.qdnapro-tasklist-card.tlc-list .tlc-tile {
  width: 28px;
  height: 28px;
  border-radius: 6px;
}

.qdnapro-tasklist-card.tlc-list .tlc-body {
  padding: 6px 12px 6px 8px;
}

.qdnapro-tasklist-card.tlc-list .tlc-name {
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  /* Override the base rule's 2-line clamp box - single line only. */
  display: block;
  -webkit-line-clamp: unset;
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-list:hover {
  background: rgba(255, 255, 255, 0.06);
}

/* === Centered variant: vertical grid tile ===
   `centered` wins over both `list` and `compact` (enforced in JS render():
   neither is applied together with tlc-centered). Rectangular tile for a
   grid of tiles (e.g. 4 per row on the master-data landing page): the
   icon tile sits centered on top, the name centers underneath it, and
   the count centers below that - a vertical stack instead of the default
   icon-left/body-right row. Width is driven by the page's grid, not by
   this component. No actions/favorite/archived-chip ever render here
   (guarded in JS); the archived dim/desaturate treatment below still
   applies unchanged since it targets the shared .tlc-tile/.tlc-name
   selectors. */
.qdnapro-tasklist-card.tlc-centered {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 20px 16px 18px;
  min-height: 132px;
}

.qdnapro-tasklist-card.tlc-centered .tlc-icon {
  flex-shrink: 0;
  padding: 0 0 12px;
}

.qdnapro-tasklist-card.tlc-centered .tlc-body {
  flex: none;
  width: 100%;
  padding: 0;
  align-items: center;
}

.qdnapro-tasklist-card.tlc-centered .tlc-name {
  text-align: center;
}

.qdnapro-tasklist-card.tlc-centered .tlc-sub {
  text-align: center;
}

/* === Hover action buttons (favorite + 3-dots) ===
   Behaviour mirrors the project-card top-actions EXACTLY (Kim 2026-06-01):
   - Right-anchored inline-flex in the top-right corner.
   - The favorite (star) is hidden at rest and fades in on hover; once it
     is favorited (.favorite-button-favorited) it STAYS visible in the
     corner, so you see at a glance which lists are marked.
   - The 3-dots SLIDES IN: collapsed to width 0 at rest (so there is no
     empty box), expands to 32px + an 8px left margin on hover - the same
     width/opacity transition .project-card-menu-trigger uses.
   The project card uses a glass surface (it sits on a photo); the tasklist
   card is white, so the buttons get a solid-white surface + ring instead
   (glass is invisible on white). */
.qdnapro-tasklist-card .tlc-actions {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
}

/* Favorite (star): hidden at rest, fades in on hover, persists when marked. */
.qdnapro-tasklist-card .tlc-actions .qdnapro-favorite-button {
  flex: 0 0 auto;
  background: var(--c-bg-card);
  box-shadow: 0 2px 6px rgba(20, 25, 80, 0.22), 0 0 0 1px rgba(20, 25, 80, 0.14);
  transition: opacity 200ms ease, background-color 160ms ease;
}

.qdnapro-tasklist-card .tlc-actions .qdnapro-favorite-button:not(.favorite-button-favorited) {
  opacity: 0;
  pointer-events: none;
}

.qdnapro-tasklist-card:hover .tlc-actions .qdnapro-favorite-button:not(.favorite-button-favorited),
.qdnapro-tasklist-card:focus-within .tlc-actions .qdnapro-favorite-button:not(.favorite-button-favorited) {
  opacity: 1;
  pointer-events: auto;
}

.qdnapro-tasklist-card .tlc-actions .qdnapro-favorite-button:hover {
  background: var(--c-bg-subtle-purple);
}

/* 3-dots: slides in from width 0 on hover (mirrors .project-card-menu-trigger). */
.qdnapro-tasklist-card .tlc-actions .qdnapro-button {
  flex: 0 0 auto;
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0;
  height: 32px !important;
  min-height: 32px !important;
  max-height: 32px !important;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  margin-left: 0;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 4px !important;
  background: transparent !important;
  box-shadow: none !important;
  transition: max-width 200ms cubic-bezier(0.4, 0, 0.2, 1), width 200ms cubic-bezier(0.4, 0, 0.2, 1), min-width 200ms cubic-bezier(0.4, 0, 0.2, 1), margin-left 200ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms ease, background 120ms ease;
}

.qdnapro-tasklist-card:hover .tlc-actions .qdnapro-button,
.qdnapro-tasklist-card:focus-within .tlc-actions .qdnapro-button {
  width: 32px !important;
  min-width: 32px !important;
  max-width: 32px;
  opacity: 1;
  pointer-events: auto;
  margin-left: 8px;
  background: var(--c-bg-card) !important;
  box-shadow: 0 2px 6px rgba(20, 25, 80, 0.22), 0 0 0 1px rgba(20, 25, 80, 0.14) !important;
}

.qdnapro-tasklist-card:hover .tlc-actions .qdnapro-button:hover,
.qdnapro-tasklist-card:focus-within .tlc-actions .qdnapro-button:hover {
  background: var(--c-bg-subtle-purple) !important;
}

/* Dark-mode surfaces. */
[data-theme=dark] .qdnapro-tasklist-card .tlc-actions .qdnapro-favorite-button {
  background: #2e3036;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.14);
}

[data-theme=dark] .qdnapro-tasklist-card .tlc-actions .qdnapro-favorite-button:hover {
  background: #383b42;
}

[data-theme=dark] .qdnapro-tasklist-card:hover .tlc-actions .qdnapro-button,
[data-theme=dark] .qdnapro-tasklist-card:focus-within .tlc-actions .qdnapro-button {
  background: #2e3036 !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.14) !important;
}

[data-theme=dark] .qdnapro-tasklist-card:hover .tlc-actions .qdnapro-button:hover,
[data-theme=dark] .qdnapro-tasklist-card:focus-within .tlc-actions .qdnapro-button:hover {
  background: #383b42 !important;
}

/* === Archived state (mirrors the project-card archived variant) ===
   The tasklist card has no photo to desaturate, so the colour tile IS
   the imagery: it is fully greyed out (grayscale 1) so the pastel
   identity drops away, exactly like the project card's desaturated
   photo. Card dims to 0.85 (same as the project card) and the name is
   muted. */
.qdnapro-tasklist-card[archived] {
  opacity: 0.85;
}

.qdnapro-tasklist-card[archived] .tlc-tile {
  filter: grayscale(1) brightness(0.98);
  background: var(--c-grey-100, #eef0f2);
}

.qdnapro-tasklist-card[archived] .tlc-name {
  color: var(--c-grey-600, #6b7280);
}

/* The favorite/pin makes no sense on an archived tasklist; keep only the
   3-dots (which offers "Activeren"). */
.qdnapro-tasklist-card[archived] .tlc-actions .qdnapro-favorite-button {
  display: none;
}

.qdnapro-tasklist-card .tlc-archived-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  padding: 2px 9px 2px 7px;
  border-radius: 999px;
  background: var(--c-grey-100, #eef0f2);
  color: var(--c-grey-600, #6b7280);
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0.2px;
}

.qdnapro-tasklist-card .tlc-archived-chip qdnapro-icon {
  flex: 0 0 auto;
}

[data-theme=dark] .qdnapro-tasklist-card .tlc-archived-chip {
  background: rgba(255, 255, 255, 0.08);
  color: #a0a4b8;
}

/* Archived variant in dark mode: a dark neutral tile (the archived
   light rule sets its own background, so it must be re-overridden here)
   and a lighter muted grey name, so the dimmed/desaturated treatment
   reads correctly on the dark card surface. */
[data-theme=dark] .qdnapro-tasklist-card[archived] .tlc-tile {
  background: #40444d;
}

[data-theme=dark] .qdnapro-tasklist-card[archived] .tlc-name {
  color: #a0a4b8;
}

/* === Colour palette (qdnapro-tag light pastels) === */
.qdnapro-tasklist-card.tlc-color-grey {
  --tlc-bg: var(--c-grey-50);
}

.qdnapro-tasklist-card.tlc-color-red {
  --tlc-bg: var(--c-signal-red-bg);
}

.qdnapro-tasklist-card.tlc-color-yellow {
  --tlc-bg: var(--c-chip-yellow-bg);
}

.qdnapro-tasklist-card.tlc-color-green {
  --tlc-bg: var(--c-chip-green-bg);
}

.qdnapro-tasklist-card.tlc-color-blue {
  --tlc-bg: var(--c-signal-blue-bg);
}

.qdnapro-tasklist-card.tlc-color-bright-blue {
  --tlc-bg: var(--c-chip-bright-blue-2-bg);
}

.qdnapro-tasklist-card.tlc-color-pink {
  --tlc-bg: var(--c-signal-pink-bg);
}

.qdnapro-tasklist-card.tlc-color-purple {
  --tlc-bg: var(--c-chip-purple-bg);
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-color-grey {
  --tlc-bg: #40444d;
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-color-red {
  --tlc-bg: #5a2b2b;
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-color-yellow {
  --tlc-bg: #5a4d1f;
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-color-green {
  --tlc-bg: #2a5544;
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-color-blue {
  --tlc-bg: #2e3e54;
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-color-bright-blue {
  --tlc-bg: #3a4a8a;
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-color-pink {
  --tlc-bg: #4e2a36;
}

[data-theme=dark] .qdnapro-tasklist-card.tlc-color-purple {
  --tlc-bg: #3a3555;
}

[data-theme=dark] .qdnapro-tasklist-card:hover {
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.4);
  border-color: rgba(255, 255, 255, 0.18);
}

.qdnapro-text-link {
  --tl-c-focus-ring: var(--c-purple-500);
  --tl-c-focus-glow: rgba(70, 82, 243, 0.25);
  --tl-c-bg-hover: var(--c-grey-50);
  --tl-c-bg-pressed: var(--c-border-card);
  --tl-c-text: var(--c-text-body);
  --tl-c-text-hover: var(--c-text-body);
  --tl-c-text-pressed: var(--c-grey-800);
  display: inline-flex;
}
.qdnapro-text-link[hidden] {
  display: none;
}
.qdnapro-text-link {
  align-items: center;
  justify-content: center;
  padding: 2px var(--s-1);
  border: 0.5px solid transparent;
  border-radius: var(--r-2);
  background: transparent;
  color: var(--tl-c-text);
  font-family: var(--ff);
  font-weight: 700;
  font-size: 14px;
  line-height: 24px;
  white-space: nowrap;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease, color 120ms ease, text-decoration 120ms ease, opacity 120ms ease;
}
.qdnapro-text-link:focus {
  outline: none;
}
.qdnapro-text-link:focus-visible, .qdnapro-text-link.force-focus {
  outline: 2px solid var(--tl-c-focus-ring);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px var(--tl-c-focus-glow);
}
.qdnapro-text-link[disabled], .qdnapro-text-link.text-link-disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.qdnapro-text-link[disabled]:focus-visible, .qdnapro-text-link[disabled].force-focus, .qdnapro-text-link.text-link-disabled:focus-visible, .qdnapro-text-link.text-link-disabled.force-focus {
  outline: 2px solid transparent;
  box-shadow: none;
}
.qdnapro-text-link.text-link-neutral {
  --tl-c-text: var(--c-text-body);
  --tl-c-text-pressed: var(--c-grey-800);
}
.qdnapro-text-link.text-link-error {
  --tl-c-text: var(--c-signal-red-text);
  --tl-c-text-pressed: var(--c-chip-red-text);
}
.qdnapro-text-link.text-link-success {
  --tl-c-text: var(--c-signal-green-text);
  --tl-c-text-pressed: var(--c-chip-green-text);
}
.qdnapro-text-link.text-link-highlight {
  --tl-c-text: var(--c-purple-highlight);
  --tl-c-text-pressed: var(--c-purple-700);
}
.qdnapro-text-link.text-link-10 {
  font-size: 10px;
  line-height: 20px;
}
.qdnapro-text-link.text-link-12 {
  font-size: 12px;
  line-height: 20px;
}
.qdnapro-text-link.text-link-14 {
  font-size: 14px;
  line-height: 24px;
}
.qdnapro-text-link.text-link-16 {
  font-size: 16px;
  line-height: 24px;
}
.qdnapro-text-link.text-link-20 {
  font-size: 20px;
  line-height: 32px;
}
.qdnapro-text-link.text-link-weight-regular {
  font-weight: var(--fw-regular);
}
.qdnapro-text-link.text-link-weight-medium {
  font-weight: var(--fw-medium);
}
.qdnapro-text-link.text-link-weight-semibold {
  font-weight: var(--fw-semi);
}
.qdnapro-text-link.text-link-weight-bold {
  font-weight: 700;
}
.qdnapro-text-link.text-link-hover-link:not([disabled]):not(.text-link-disabled):hover, .qdnapro-text-link.text-link-hover-link.text-link-active {
  text-decoration: underline;
}
.qdnapro-text-link.text-link-hover-bg:not([disabled]):not(.text-link-disabled):hover, .qdnapro-text-link.text-link-hover-bg.text-link-active {
  background: var(--tl-c-bg-hover);
}
.qdnapro-text-link.text-link-hover-bg.text-link-error:not([disabled]):not(.text-link-disabled):hover, .qdnapro-text-link.text-link-hover-bg.text-link-error.text-link-active {
  background: var(--c-signal-red-soft);
  border-color: var(--c-signal-red-text);
  color: var(--c-signal-red-text);
}
.qdnapro-text-link.text-link-hover-bg.text-link-success:not([disabled]):not(.text-link-disabled):hover, .qdnapro-text-link.text-link-hover-bg.text-link-success.text-link-active {
  background: var(--c-chip-green-bg);
  border-color: var(--c-signal-green-text);
}
.qdnapro-text-link.text-link-hover-link:not([disabled]):not(.text-link-disabled):active, .qdnapro-text-link.text-link-hover-link.text-link-pressed, .qdnapro-text-link.text-link-hover-link.force-pressed {
  background: var(--tl-c-bg-pressed);
  color: var(--tl-c-text-pressed);
  text-decoration: underline;
}
.qdnapro-text-link.text-link-hover-bg:not([disabled]):not(.text-link-disabled):active, .qdnapro-text-link.text-link-hover-bg.text-link-pressed, .qdnapro-text-link.text-link-hover-bg.force-pressed {
  background: var(--tl-c-bg-pressed);
  color: var(--tl-c-text-pressed);
}
.qdnapro-text-link.text-link-hover-bg.text-link-error:not([disabled]):not(.text-link-disabled):active, .qdnapro-text-link.text-link-hover-bg.text-link-error.text-link-pressed, .qdnapro-text-link.text-link-hover-bg.text-link-error.force-pressed {
  background: var(--c-signal-red-bg);
  border-color: var(--c-tag-critical-text);
  color: var(--c-chip-red-text);
}
.qdnapro-text-link.text-link-hover-bg.text-link-success:not([disabled]):not(.text-link-disabled):active, .qdnapro-text-link.text-link-hover-bg.text-link-success.text-link-pressed, .qdnapro-text-link.text-link-hover-bg.text-link-success.force-pressed {
  background: var(--c-chip-green-bg);
  border-color: var(--c-chip-green-text);
  color: var(--c-chip-green-text);
}

[data-theme=dark] .qdnapro-text-link {
  --tl-c-bg-hover: #40444d;
  --tl-c-bg-pressed: #565b66;
  --tl-c-text: #e1e3e6;
  --tl-c-text-hover: #e1e3e6;
  --tl-c-text-pressed: #f0f1f2;
}
[data-theme=dark] .qdnapro-text-link.text-link-neutral {
  --tl-c-text: #e1e3e6;
  --tl-c-text-pressed: #f0f1f2;
}
[data-theme=dark] .qdnapro-text-link.text-link-error {
  --tl-c-text: #fbaaaa;
  --tl-c-text-pressed: #fee3e3;
}
[data-theme=dark] .qdnapro-text-link.text-link-success {
  --tl-c-text: #8becc5;
  --tl-c-text-pressed: #e2faf1;
}
[data-theme=dark] .qdnapro-text-link.text-link-highlight {
  --tl-c-text: #aab2ff;
  --tl-c-text-pressed: #d6daff;
}
[data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-error:not([disabled]):not(.text-link-disabled):hover, [data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-error.text-link-active {
  background: #5a2b2b;
  border-color: #fbaaaa;
  color: #fee3e3;
}
[data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-success:not([disabled]):not(.text-link-disabled):hover, [data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-success.text-link-active {
  background: #2a5544;
  border-color: #8becc5;
  color: #e2faf1;
}
[data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-error:not([disabled]):not(.text-link-disabled):active, [data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-error.text-link-pressed, [data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-error.force-pressed {
  background: #7a3838;
  border-color: #fee3e3;
  color: #fee3e3;
}
[data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-success:not([disabled]):not(.text-link-disabled):active, [data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-success.text-link-pressed, [data-theme=dark] .qdnapro-text-link.text-link-hover-bg.text-link-success.force-pressed {
  background: #3d7a62;
  border-color: #e2faf1;
  color: #e2faf1;
}

.qdnapro-timestamp {
  --ts-color: var(--c-text-disabled);
  display: inline;
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ts-color);
  font-weight: 400;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.qdnapro-timestamp.timestamp-color-purple {
  --ts-color: var(--c-purple-500);
}

.qdnapro-timestamp.timestamp-color-highlight {
  --ts-color: var(--c-action-500);
}

.qdnapro-timestamp.timestamp-weight-regular {
  font-weight: 400;
}

.qdnapro-timestamp.timestamp-weight-bold {
  font-weight: 700;
}

.qdnapro-timestamp.timestamp-size-10 {
  font-size: 10px;
  line-height: 14px;
}

.qdnapro-timestamp.timestamp-size-11 {
  font-size: 11px;
  line-height: 16px;
}

.qdnapro-timestamp.timestamp-size-12 {
  font-size: 12px;
  line-height: 18px;
}

.qdnapro-timestamp.timestamp-size-13 {
  font-size: 13px;
  line-height: 18px;
}

.qdnapro-timestamp.timestamp-size-14 {
  font-size: 14px;
  line-height: 20px;
}

.qdnapro-timestamp.timestamp-size-15 {
  font-size: 15px;
  line-height: 22px;
}

.qdnapro-timestamp.timestamp-size-16 {
  font-size: 16px;
  line-height: 24px;
}

.qdnapro-timestamp.timestamp-inline {
  align-self: baseline;
}

[data-theme=dark] .qdnapro-timestamp {
  --ts-color: #b8bcc4;
}

[data-theme=dark] .qdnapro-timestamp.timestamp-color-purple {
  --ts-color: #b8bcc4;
}

[data-theme=dark] .qdnapro-timestamp.timestamp-color-highlight {
  --ts-color: #a5acff;
}

.qdnapro-toast {
  --toast-bg: var(--c-grey-950);
  --toast-text: #ffffff;
  position: fixed;
  z-index: 10000;
  transform: translate(-50%, 4px);
  transform-origin: center;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  border: none;
  background: var(--toast-bg);
  color: var(--toast-text);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
  white-space: nowrap;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18), 0 1px 3px rgba(0, 0, 0, 0.1);
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease-out, transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.qdnapro-toast.toast-position-top {
  transform: translate(-50%, calc(-100% + 4px));
}

.qdnapro-toast.toast-position-bottom {
  transform: translate(-50%, 4px);
}

.qdnapro-toast .toast-icon {
  flex-shrink: 0;
  display: inline-flex;
  color: inherit;
}

.qdnapro-toast .toast-label {
  flex: 1 1 auto;
}

.qdnapro-toast .toast-action {
  flex-shrink: 0;
  appearance: none;
  border: none;
  background: transparent;
  margin: -4px -6px -4px 4px;
  padding: 4px 10px;
  border-radius: 999px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: 18px;
  color: inherit;
  cursor: pointer;
  pointer-events: auto;
  opacity: 0.95;
}

.qdnapro-toast .toast-action:hover {
  background: rgba(255, 255, 255, 0.14);
}

.qdnapro-toast .toast-action:active {
  opacity: 0.75;
}

.qdnapro-toast.toast-variant-yellow .toast-action:hover,
.qdnapro-toast.toast-variant-red .toast-action:hover {
  background: rgba(0, 0, 0, 0.08);
}

.qdnapro-toast.toast-variant-dark {
  --toast-bg: var(--c-grey-950);
  --toast-text: #ffffff;
}

.qdnapro-toast.toast-variant-purple {
  --toast-bg: var(--c-purple-500);
  --toast-text: #ffffff;
}

.qdnapro-toast.toast-variant-yellow {
  --toast-bg: var(--c-warning-bright-bg);
  --toast-text: var(--c-warning-bright-text);
  border: 1px solid var(--c-warning-bright-border);
}

.qdnapro-toast.toast-variant-red {
  --toast-bg: var(--c-signal-red-bg);
  --toast-text: var(--c-tag-critical-text);
  border: 1px solid var(--c-chip-red-2-bg);
}

.qdnapro-toast.toast-visible, .qdnapro-toast[visible] {
  opacity: 1;
}

.qdnapro-toast.toast-visible.toast-position-top, .qdnapro-toast[visible].toast-position-top {
  transform: translate(-50%, -100%);
}

.qdnapro-toast.toast-visible.toast-position-bottom, .qdnapro-toast[visible].toast-position-bottom {
  transform: translate(-50%, 0);
}

[data-theme=dark] .qdnapro-toast {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4), 0 1px 3px rgba(0, 0, 0, 0.25);
}

[data-theme=dark] .qdnapro-toast.toast-variant-dark {
  --toast-bg: #f0f1f2;
  --toast-text: #0b0b0d;
}

[data-theme=dark] .qdnapro-toast.toast-variant-purple {
  --toast-bg: #a5acff;
  --toast-text: #0b0b0d;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-toast {
    transition: opacity 120ms linear;
  }
  .qdnapro-toast.toast-position-top {
    transform: translate(-50%, -100%) !important;
  }
  .qdnapro-toast.toast-position-bottom {
    transform: translate(-50%, 0) !important;
  }
}
.qdnapro-toggle {
  --tg-bg: var(--c-grey-300);
  --tg-bg-active: var(--c-action-500);
  --tg-bg-hover: var(--c-grey-400);
  --tg-bg-active-hover: var(--c-action-600);
  --tg-thumb: #ffffff;
  --tg-focus-ring: var(--c-purple-500);
  --tg-focus-glow: rgba(70, 82, 243, 0.25);
  position: relative;
  display: inline-block;
  box-sizing: border-box;
  background: var(--tg-bg);
  border-radius: 999px;
  cursor: pointer;
  user-select: none;
  flex-shrink: 0;
  transition: background-color 180ms ease-out;
}

.qdnapro-toggle .toggle-thumb {
  position: absolute;
  top: 50%;
  background: var(--tg-thumb);
  border-radius: 50%;
  box-shadow: 0 0 0 rgba(0, 0, 0, 0.04), 0 3px 8px rgba(0, 0, 0, 0.15), 0 3px 1px rgba(0, 0, 0, 0.06);
  pointer-events: none;
  transform-origin: left center;
  transition: left 320ms cubic-bezier(0.34, 1.35, 0.64, 1), transform 200ms cubic-bezier(0.34, 1.35, 0.64, 1), background-color 180ms ease-out;
}

.qdnapro-toggle.toggle-active .toggle-thumb {
  transform-origin: right center;
}

.qdnapro-toggle.toggle-size-average {
  width: 51px;
  height: 31px;
}

.qdnapro-toggle.toggle-size-average .toggle-thumb {
  width: 27px;
  height: 27px;
  left: 2px;
  transform: translateY(-50%);
}

.qdnapro-toggle.toggle-size-average.toggle-active .toggle-thumb {
  left: 22px;
}

.qdnapro-toggle.toggle-size-small {
  width: 37px;
  height: 22px;
}

.qdnapro-toggle.toggle-size-small .toggle-thumb {
  width: 18px;
  height: 18px;
  left: 2px;
  transform: translateY(-50%);
}

.qdnapro-toggle.toggle-size-small.toggle-active .toggle-thumb {
  left: 17px;
}

.qdnapro-toggle.toggle-active {
  background: var(--tg-bg-active);
}

.qdnapro-toggle:hover:not(.toggle-disabled):not(.toggle-active), .qdnapro-toggle.force-hover:not(.toggle-disabled):not(.toggle-active) {
  background: var(--tg-bg-hover);
}

.qdnapro-toggle:hover:not(.toggle-disabled).toggle-active, .qdnapro-toggle.force-hover:not(.toggle-disabled).toggle-active {
  background: var(--tg-bg-active-hover);
}

.qdnapro-toggle:active:not(.toggle-disabled) .toggle-thumb, .qdnapro-toggle.force-pressed:not(.toggle-disabled) .toggle-thumb {
  transform: translateY(-50%) scaleX(1.15);
}

.qdnapro-toggle:focus {
  outline: none;
}

.qdnapro-toggle:focus-visible, .qdnapro-toggle.force-focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--tg-focus-ring), 0 0 0 6px var(--tg-focus-glow);
}

.qdnapro-toggle.toggle-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-toggle.toggle-disabled:not(.toggle-active) {
  background: var(--c-grey-50);
}

.qdnapro-toggle.toggle-disabled.toggle-active {
  background: var(--c-grey-50);
}

[data-theme=dark] .qdnapro-toggle {
  --tg-bg: #565b66;
  --tg-bg-active: #4652f3;
  --tg-bg-hover: #6b7280;
  --tg-bg-active-hover: #5a66ff;
  --tg-thumb: #e1e3e6;
  --tg-focus-ring: #a5acff;
  --tg-focus-glow: rgba(70, 82, 243, 0.4);
}

[data-theme=dark] .qdnapro-toggle.toggle-disabled:not(.toggle-active) {
  background: #40444d;
}

[data-theme=dark] .qdnapro-toggle.toggle-disabled.toggle-active {
  background: #40444d;
}

.qdnapro-action-btn {
  --ab-bg: transparent;
  --ab-bg-hover: var(--c-grey-50);
  --ab-bg-active: #e6e9ff;
  --ab-bg-active-hover: var(--c-border-tree-bright);
  --ab-icon: var(--c-grey-950);
  --ab-icon-active: var(--c-purple-500);
  --ab-underline: var(--c-purple-500);
  --ab-focus-ring: var(--c-grey-950);
  --ab-focus-glow: rgba(70, 82, 243, 0.25);
  --ab-disabled-bg: var(--c-grey-50);
  --ab-disabled-icon: var(--c-text-disabled);
  --ab-active-line-width: 16px;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  box-sizing: border-box;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 4px;
  background: var(--ab-bg);
  color: var(--ab-icon);
  cursor: pointer;
  user-select: none;
  flex-shrink: 0;
  transition: background-color 120ms ease-out, color 120ms ease-out;
  font-family: inherit;
}

.qdnapro-action-btn qdnapro-icon,
.qdnapro-action-btn .action-btn-icon,
.qdnapro-action-btn .action-btn-chevron {
  display: inline-flex;
  flex-shrink: 0;
  pointer-events: none;
  color: inherit;
}

.qdnapro-action-btn svg {
  fill: currentColor;
  width: 100%;
  height: 100%;
}

.qdnapro-action-btn .action-btn-icon-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.qdnapro-action-btn .action-btn-dot {
  position: absolute;
  top: -2px;
  right: -2px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--c-warn-red-500);
  pointer-events: none;
  box-shadow: 0 0 0 1.5px var(--ab-dot-ring, #ffffff);
}

.qdnapro-action-btn::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: var(--ab-active-line-width);
  height: 2px;
  background: var(--ab-underline);
  border-radius: 1px 1px 0 0;
  transform: translateX(-50%) scaleX(0);
  transform-origin: center;
  opacity: 0;
  transition: transform 260ms cubic-bezier(0.34, 1.35, 0.64, 1), opacity 180ms ease-out;
  pointer-events: none;
}

.qdnapro-action-btn.action-btn-active::after {
  transform: translateX(-50%) scaleX(1);
  opacity: 1;
}

.qdnapro-action-btn[disabled].action-btn-active::after, .qdnapro-action-btn.action-btn-disabled.action-btn-active::after {
  background: var(--ab-disabled-icon);
  opacity: 0.6;
}

.qdnapro-action-btn.action-btn-shape-square.action-btn-size-default {
  width: 40px;
  height: 40px;
  min-width: 40px;
}

.qdnapro-action-btn.action-btn-shape-square.action-btn-size-default qdnapro-icon,
.qdnapro-action-btn.action-btn-shape-square.action-btn-size-default .action-btn-icon {
  width: 20px;
  height: 20px;
}

.qdnapro-action-btn.action-btn-shape-square.action-btn-size-small {
  width: 28px;
  height: 28px;
  min-width: 28px;
  --ab-active-line-width: 12px;
}

.qdnapro-action-btn.action-btn-shape-square.action-btn-size-small qdnapro-icon,
.qdnapro-action-btn.action-btn-shape-square.action-btn-size-small .action-btn-icon {
  width: 16px;
  height: 16px;
}

.qdnapro-action-btn.action-btn-shape-square.action-btn-size-small::after {
  bottom: 0;
  height: 1.5px;
}

.qdnapro-action-btn.action-btn-shape-thin.action-btn-size-default {
  width: 20px;
  height: 40px;
  min-width: 20px;
  --ab-active-line-width: 12px;
}

.qdnapro-action-btn.action-btn-shape-thin.action-btn-size-default qdnapro-icon,
.qdnapro-action-btn.action-btn-shape-thin.action-btn-size-default .action-btn-icon {
  width: 16px;
  height: 16px;
}

.qdnapro-action-btn.action-btn-shape-thin.action-btn-size-small {
  width: 20px;
  height: 28px;
  min-width: 20px;
  --ab-active-line-width: 10px;
}

.qdnapro-action-btn.action-btn-shape-thin.action-btn-size-small qdnapro-icon,
.qdnapro-action-btn.action-btn-shape-thin.action-btn-size-small .action-btn-icon {
  width: 14px;
  height: 14px;
}

.qdnapro-action-btn.action-btn-shape-thin.action-btn-size-small::after {
  bottom: 0;
  height: 1.5px;
}

.qdnapro-action-btn.action-btn-has-chevron.action-btn-shape-square.action-btn-size-default {
  width: 60px;
}

.qdnapro-action-btn.action-btn-has-chevron.action-btn-shape-square.action-btn-size-small {
  width: auto;
  min-width: 44px;
  padding: 0 4px;
}

.qdnapro-action-btn .action-btn-chevron {
  opacity: 0.7;
}

.qdnapro-action-btn.action-btn-has-chevron .action-btn-chevron {
  width: 12px;
  height: 12px;
}

.qdnapro-action-btn.action-btn-type-table {
  --ab-bg-hover: var(--c-border-card);
}

.qdnapro-action-btn.action-btn-color-highlight {
  --ab-icon: var(--c-action-500);
  --ab-bg-active: #e6e9ff;
  --ab-bg-active-hover: var(--c-border-tree-bright);
  --ab-icon-active: var(--c-action-500);
  --ab-underline: var(--c-action-500);
  --ab-focus-ring: var(--c-purple-500);
}

.qdnapro-action-btn.action-btn-active {
  background: var(--ab-bg-active);
  color: var(--ab-icon-active);
}

.qdnapro-action-btn:hover:not([disabled]):not(.action-btn-active) {
  background: var(--ab-bg-hover);
}

.qdnapro-action-btn:hover:not([disabled]).action-btn-active {
  background: var(--ab-bg-active-hover);
}

.qdnapro-action-btn:active:not([disabled]) {
  background-image: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15));
}

.qdnapro-action-btn:focus {
  outline: none;
}

.qdnapro-action-btn:focus-visible, .qdnapro-action-btn.force-focus {
  outline: 2px solid var(--ab-focus-ring);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px var(--ab-focus-glow);
}

.qdnapro-action-btn.force-hover:not([disabled]):not(.action-btn-active) {
  background: var(--ab-bg-hover);
}

.qdnapro-action-btn.force-hover:not([disabled]).action-btn-active {
  background: var(--ab-bg-active-hover);
}

.qdnapro-action-btn.force-pressed:not([disabled]) {
  background-image: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15));
}

.qdnapro-action-btn[disabled], .qdnapro-action-btn.action-btn-disabled {
  background: var(--ab-disabled-bg) !important;
  color: var(--ab-disabled-icon) !important;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-action-btn[disabled].action-btn-active, .qdnapro-action-btn.action-btn-disabled.action-btn-active {
  background: var(--ab-bg-active) !important;
  color: var(--ab-disabled-icon) !important;
  opacity: 0.6;
}

[data-theme=dark] .qdnapro-action-btn {
  --ab-bg: transparent;
  --ab-bg-hover: #565b66;
  --ab-bg-active: #2a2d52;
  --ab-bg-active-hover: #3a3f6b;
  --ab-icon: #e1e3e6;
  --ab-icon-active: #a5acff;
  --ab-underline: #a5acff;
  --ab-focus-ring: #e1e3e6;
  --ab-focus-glow: rgba(70, 82, 243, 0.4);
  --ab-disabled-bg: #40444d;
  --ab-disabled-icon: #6b7280;
  --ab-dot-ring: #2e3036;
}

[data-theme=dark] .qdnapro-action-btn.action-btn-type-table {
  --ab-bg-hover: #40444d;
}

[data-theme=dark] .qdnapro-action-btn.action-btn-color-highlight {
  --ab-icon: #a5acff;
  --ab-bg-hover: rgba(70, 82, 243, 0.18);
  --ab-bg-active: #4652f3;
  --ab-bg-active-hover: #5a66ff;
  --ab-icon-active: #ffffff;
  --ab-underline: #ffffff;
  --ab-focus-ring: #a5acff;
}

.qdnapro-tooltip {
  --tt-bg: var(--c-grey-300);
  --tt-border: var(--c-grey-300);
  --tt-text: var(--c-grey-950);
  --tt-title: var(--c-grey-950);
  --tt-pointer-size: 8px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 0 8px;
  border: 1px solid var(--tt-border);
  border-radius: 4px;
  background: var(--tt-bg);
  color: var(--tt-text);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: 400;
  box-sizing: border-box;
  position: relative;
  white-space: nowrap;
  box-shadow: 0 1px 4px rgba(12, 12, 13, 0.05);
  max-width: 320px;
}

.qdnapro-tooltip[hidden] {
  display: none;
}

/* wrap (05.08.2026) — een langere tekst over meerdere regels.
   WAAROM dit nodig was: hierboven staan `white-space: nowrap` en `max-width: 320px`
   samen, en dan wint nowrap: de tekst breekt niet af maar loopt gewoon buiten die
   320px door, tot buiten het venster. Gemeten met een waarschuwingstekst van 79 tekens
   in het documentenvenster van een takenlijst: de tooltip was 474px breed en liep aan
   de rechterkant van het scherm af.
   Standaard blijft nowrap, dus geen enkele bestaande tooltip verandert van vorm; deze
   klasse is er voor tooltips die een hele zin zijn in plaats van een label.
   `text-align: left` want gecentreerde loopende tekst leest slecht, en de basisregel
   centreert (align-items: center op de flexkolom). */
.qdnapro-tooltip.tooltip-wrap {
  white-space: normal;
  align-items: flex-start;
  text-align: left;
  line-height: 1.35;
}

.qdnapro-tooltip.tooltip-wrap.tooltip-small {
  padding: 4px 8px;
}

.qdnapro-tooltip.tooltip-big {
  padding: 4px 8px;
}

.qdnapro-tooltip.tooltip-small {
  padding: 0 8px;
}

.qdnapro-tooltip .tooltip-title {
  color: var(--tt-title);
  font-size: 14px;
  line-height: 24px;
  font-weight: 500;
  text-align: center;
}

.qdnapro-tooltip .tooltip-body {
  color: var(--tt-text);
  text-align: center;
}

.qdnapro-tooltip.tooltip-big .tooltip-body {
  font-size: 10px;
  line-height: 20px;
}

.qdnapro-tooltip.tooltip-small .tooltip-body {
  font-size: 12px;
  line-height: 20px;
}

.qdnapro-tooltip.tooltip-floating.tooltip-big .tooltip-body {
  font-size: 14px;
  line-height: 24px;
}

.qdnapro-tooltip.tooltip-purple {
  --tt-bg: var(--c-purple-500);
  --tt-border: var(--c-purple-500);
  --tt-text: #ffffff;
  --tt-title: #ffffff;
}

.qdnapro-tooltip.tooltip-purple-dark {
  --tt-bg: var(--c-purple-700);
  --tt-border: var(--c-purple-700);
  --tt-text: #ffffff;
  --tt-title: #ffffff;
}

.qdnapro-tooltip.tooltip-light-purple {
  --tt-bg: #e6e9ff;
  --tt-border: var(--c-border-tree-bright);
  --tt-text: var(--c-purple-500);
  --tt-title: var(--c-purple-500);
}

.qdnapro-tooltip.tooltip-neutral-dark {
  --tt-bg: var(--c-grey-300);
  --tt-border: var(--c-grey-300);
  --tt-text: var(--c-grey-950);
  --tt-title: var(--c-grey-950);
}

.qdnapro-tooltip.tooltip-neutral-light {
  --tt-bg: var(--c-border-card);
  --tt-border: var(--c-border-card);
  --tt-text: var(--c-grey-500);
  --tt-title: var(--c-grey-500);
}

.qdnapro-tooltip.tooltip-pointer::before {
  content: "";
  position: absolute;
  width: var(--tt-pointer-size);
  height: var(--tt-pointer-size);
  background: var(--tt-bg);
  border: 1px solid var(--tt-border);
  box-sizing: border-box;
  pointer-events: none;
}

.qdnapro-tooltip.tooltip-pointer.tooltip-position-top::before {
  bottom: calc(var(--tt-pointer-size) * -0.5 - 1px);
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  border-top-color: transparent;
  border-left-color: transparent;
}

.qdnapro-tooltip.tooltip-pointer.tooltip-position-bottom::before {
  top: calc(var(--tt-pointer-size) * -0.5 - 1px);
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  border-bottom-color: transparent;
  border-right-color: transparent;
}

.qdnapro-tooltip.tooltip-pointer.tooltip-position-left::before {
  right: calc(var(--tt-pointer-size) * -0.5 - 1px);
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  border-top-color: transparent;
  border-left-color: transparent;
}

.qdnapro-tooltip.tooltip-pointer.tooltip-position-right::before {
  left: calc(var(--tt-pointer-size) * -0.5 - 1px);
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  border-bottom-color: transparent;
  border-right-color: transparent;
}

.qdnapro-tooltip {
  opacity: 0;
  transform: scale(0.92);
  transition: opacity 120ms ease-out, transform 120ms ease-out;
}

.qdnapro-tooltip.tooltip-visible {
  opacity: 1;
  transform: scale(1);
}

.qdnapro-tooltip:not(.tooltip-managed) {
  opacity: 1;
  transform: none;
}

[data-theme=dark] .qdnapro-tooltip {
  --tt-bg: #40444d;
  --tt-border: #40444d;
  --tt-text: #e1e3e6;
  --tt-title: #e1e3e6;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

[data-theme=dark] .qdnapro-tooltip.tooltip-purple {
  --tt-bg: #3842c2;
  --tt-border: #3842c2;
  --tt-text: #ffffff;
  --tt-title: #ffffff;
}

[data-theme=dark] .qdnapro-tooltip.tooltip-light-purple {
  --tt-bg: #2a2d52;
  --tt-border: #3a3f6b;
  --tt-text: #8b93ff;
  --tt-title: #8b93ff;
}

[data-theme=dark] .qdnapro-tooltip.tooltip-neutral-dark {
  --tt-bg: #40444d;
  --tt-border: #40444d;
  --tt-text: #e1e3e6;
  --tt-title: #e1e3e6;
}

[data-theme=dark] .qdnapro-tooltip.tooltip-neutral-light {
  --tt-bg: #2e3036;
  --tt-border: #2e3036;
  --tt-text: #a6aab3;
  --tt-title: #a6aab3;
}

.qdnapro-touch-button {
  --qtb-bg: var(--c-bg-card, #ffffff);
  --qtb-bg-hover: var(--c-grey-100, #e7e9ec);
  --qtb-bg-pressed: var(--c-grey-200, #d1d5db);
  --qtb-border: var(--c-grey-100, #e7e9ec);
  --qtb-border-hover: var(--c-grey-200, #d1d5db);
  --qtb-border-pressed: var(--c-grey-300, #c4c7cc);
  --qtb-label-color: var(--c-text-body, #0b0b0d);
  --qtb-disabled-bg: var(--c-grey-50);
  --qtb-disabled-color: var(--c-text-disabled);
  --btn-focus-ring: var(--c-purple-500);
  --btn-focus-glow: rgba(70, 82, 243, 0.25);
  --qtb-pill-strong-bg: #e8705f;
  --qtb-pill-strong-fg: #ffffff;
  --qtb-pill-soft-dot-bg: var(--c-action-500, #4652f3);
  position: relative;
  display: flex;
  box-sizing: border-box;
  width: 100%;
  background: var(--qtb-bg);
  border: 1px solid var(--qtb-border);
  border-radius: var(--r-3, 12px);
  color: var(--qtb-label-color);
  font-family: var(--ff, "Inter", system-ui, -apple-system, sans-serif);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 120ms ease-out, border-color 120ms ease-out, color 120ms ease-out;
}

.qdnapro-touch-button .qtb-label {
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  overflow: hidden;
  overflow-wrap: anywhere;
}

.qdnapro-touch-button .qtb-icon {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  transition: opacity 120ms ease-out;
}

.qdnapro-touch-button .qtb-badge {
  display: flex;
  align-items: center;
  line-height: 0;
}

.qdnapro-touch-button.qtb-variant-grid {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 104px;
  padding: 12px;
  text-align: center;
}

.qdnapro-touch-button.qtb-variant-grid .qtb-label {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

.qdnapro-touch-button.qtb-variant-grid .qtb-badge {
  position: absolute;
  top: 8px;
  right: 8px;
  pointer-events: none;
  z-index: 1;
}

.qdnapro-touch-button.qtb-variant-grid .qtb-pills {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  pointer-events: none;
}

.qtb-pill {
  position: relative;
  display: block;
  line-height: 0;
}

.qtb-pill-icon {
  width: 26px;
  height: 26px;
  display: block;
  color: var(--qtb-label-color);
}

.qtb-pill-dot {
  position: absolute;
  top: -3px;
  right: -3px;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: 2px solid var(--qtb-bg, #ffffff);
  box-sizing: border-box;
}

.qtb-pill-strong .qtb-pill-dot {
  background: var(--qtb-pill-strong-bg);
  --qtb-dot-radar: 232, 112, 95;
}

.qtb-pill-soft .qtb-pill-dot {
  background: var(--qtb-pill-soft-dot-bg);
  --qtb-dot-radar: 70, 82, 243;
}

@keyframes qtb-dot-radar {
  0% {
    box-shadow: 0 0 0 0 rgba(var(--qtb-dot-radar, 70, 82, 243), 0.4);
  }
  30% {
    box-shadow: 0 0 0 9px rgba(var(--qtb-dot-radar, 70, 82, 243), 0);
  }
  100% {
    box-shadow: 0 0 0 9px rgba(var(--qtb-dot-radar, 70, 82, 243), 0);
  }
}
.qtb-pill-dot {
  animation: qtb-dot-radar 6s ease-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .qtb-pill-dot {
    animation: none;
  }
}
.qtb-pill-count {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.qdnapro-touch-button.qtb-variant-row {
  flex-direction: row;
  align-items: center;
  gap: 24px;
  min-height: 58px;
  padding: 8px;
  text-align: left;
}

.qdnapro-touch-button.qtb-variant-row .qtb-label {
  flex: 1 1 auto;
  min-width: 0;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.qdnapro-touch-button.qtb-variant-row .qtb-badge {
  flex: 0 0 auto;
  margin-left: auto;
  margin-right: 8px;
  pointer-events: none;
}

.qdnapro-touch-button:hover:not(.qtb-disabled),
.qdnapro-touch-button.force-hover:not(.qtb-disabled) {
  background: var(--qtb-bg-hover);
  border-color: var(--qtb-border-hover);
}

.qdnapro-touch-button.is-pressed:not(.qtb-disabled),
.qdnapro-touch-button.force-pressed:not(.qtb-disabled) {
  background: var(--qtb-bg-pressed);
  border-color: var(--qtb-border-pressed);
}

.qdnapro-touch-button:focus {
  outline: none;
}

.qdnapro-touch-button:focus-visible,
.qdnapro-touch-button.force-focus {
  outline: 2px solid var(--btn-focus-ring);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px var(--btn-focus-glow);
}

.qdnapro-touch-button.qtb-disabled {
  background: var(--qtb-disabled-bg);
  color: var(--qtb-disabled-color);
  border-color: transparent;
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-touch-button.qtb-disabled:focus-visible,
.qdnapro-touch-button.qtb-disabled.force-focus {
  outline: none;
  box-shadow: none;
}

.qdnapro-touch-button.qtb-disabled .qtb-icon {
  opacity: 0.3;
}

[data-theme=dark] .qdnapro-touch-button {
  --qtb-bg: var(--c-bg-card, #2a2d34);
  --qtb-bg-hover: #343841;
  --qtb-bg-pressed: #3e434d;
  --qtb-border: #40444d;
  --qtb-border-hover: #4b505a;
  --qtb-border-pressed: #575d68;
  --qtb-label-color: var(--c-text-body, #f0f1f2);
  --qtb-disabled-bg: #40444d;
  --qtb-disabled-color: #6b7280;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-touch-button {
    transition: none;
  }
}
qdnapro-translation-panel {
  display: contents;
}

body.qtp-open .stats-bar,
body.qtp-open .mgr-stack-trigger,
body.qtp-open .insert-zone {
  pointer-events: none;
}

.qtp {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 420px;
  max-width: 92vw;
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(24px) saturate(160%);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  border-left: 1px solid rgba(255, 255, 255, 0.55);
  display: flex;
  flex-direction: column;
  z-index: 1050;
  box-shadow: -8px 0 32px rgba(40, 46, 100, 0.18);
  overflow: hidden;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  box-sizing: border-box;
  transform: translateX(100%);
  transition: transform 240ms cubic-bezier(0.4, 0, 0.2, 1);
}
.qtp--visible {
  transform: translateX(0);
}
.qtp * {
  box-sizing: border-box;
}

.qtp-header {
  display: flex;
  align-items: center;
  padding: 11px 16px;
  background: rgba(65, 73, 154, 0.55);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  flex-shrink: 0;
  gap: 9px;
}

.qtp-header-spacer {
  flex: 1;
}

.qtp-at-btn {
  position: relative;
  overflow: hidden;
}
.qtp-at-btn::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 55%;
  background: linear-gradient(120deg, transparent 0%, rgba(65, 73, 154, 0.13) 50%, transparent 100%);
  transform: translateX(-200%);
  animation: qtp-shimmer 3.4s ease-in-out infinite;
  pointer-events: none;
}

@keyframes qtp-shimmer {
  0% {
    transform: translateX(-200%);
  }
  30% {
    transform: translateX(220%);
  }
  100% {
    transform: translateX(220%);
  }
}
.qtp-at-icon {
  display: inline-block;
}

.qtp-at-icon--spin {
  animation: qtp-rotate 0.8s linear infinite;
}

@keyframes qtp-rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.qtp-at-bar {
  padding: 9px 14px;
  background: transparent;
  border-bottom: 1px solid rgba(216, 219, 237, 0.6);
  font-size: 12px;
  color: var(--c-purple-500);
  flex-shrink: 0;
}
.qtp-at-bar--done {
  background: rgba(34, 140, 90, 0.1);
  border-bottom-color: rgba(34, 140, 90, 0.18);
  color: var(--c-tag-new-text);
  display: flex;
  align-items: center;
  gap: 6px;
}
.qtp-at-bar--error {
  background: rgba(196, 54, 42, 0.1);
  border-bottom-color: rgba(196, 54, 42, 0.18);
  color: var(--c-tag-critical-text);
  display: flex;
  align-items: center;
  gap: 6px;
}

.qtp-at-bar-question {
  display: block;
  margin-bottom: 7px;
  font-weight: 500;
}

.qtp-at-dir {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 7px;
}

.qtp-at-dir-lang {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 22px;
  padding: 0 8px;
  border-radius: 6px;
  background: rgba(65, 73, 154, 0.1);
  color: var(--c-purple-500);
  font-size: 12px;
  font-weight: 600;
}

.qtp-at-dir-arrow {
  flex-shrink: 0;
  color: rgba(63, 73, 154, 0.55);
}

.qtp-at-bar-btns {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}

.qtp-lang-bar {
  display: flex;
  padding: 8px 14px;
  background: rgba(255, 255, 255, 0.5);
  border-bottom: 1px solid rgba(216, 219, 237, 0.7);
  flex-shrink: 0;
}

.qtp-lang-seg .qdnapro-segment-item[data-missing] {
  position: relative;
}
.qtp-lang-seg .qdnapro-segment-item[data-missing]::after {
  content: "";
  position: absolute;
  top: 3px;
  right: 6px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--c-warn-yellow-600);
  box-shadow: 0 0 0 2px #fff;
  pointer-events: none;
}

.qtp-col-headers {
  display: grid;
  grid-template-columns: 1fr 1fr;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.5);
  border-bottom: 2px solid rgba(216, 219, 237, 0.7);
}

.qtp-col-h {
  font-size: 11px;
  font-weight: 700;
  color: var(--c-purple-500);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
}
.qtp-col-h:first-child {
  border-right: 1px solid var(--c-border-tree);
}

.qtp-missing-pill {
  font-size: 10px;
  background: var(--c-tag-warning-bg);
  color: var(--c-signal-yellow-text);
  border-radius: 4px;
  padding: 2px 6px;
  border: 1px solid var(--c-warn-yellow-600);
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
}

.qtp-body {
  flex: 1;
  overflow-y: auto;
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  scrollbar-width: none;
}
.qtp-body::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.qtp-empty {
  padding: 28px 16px;
  text-align: center;
  color: var(--c-text-disabled-pp);
  font-size: 13px;
}

.qtp-card {
  border-radius: 7px;
  border: 1px solid var(--c-border-tree-bright);
  overflow: hidden;
  background: var(--c-bg-card);
  transition: box-shadow 120ms;
  flex-shrink: 0;
}
.qtp-card:hover {
  box-shadow: 0 2px 10px rgba(65, 73, 154, 0.14);
}
.qtp-card--selected, .qtp-card--selected:hover {
  box-shadow: 0 0 0 2px var(--c-chip-bright-blue-hover), 0 4px 14px rgba(65, 73, 154, 0.18);
}
.qtp-card--spotlight {
  animation: qtp-spotlight 900ms ease-out forwards;
}
.qtp-card--archived {
  border-color: var(--c-border-tree);
  background: var(--c-bg-card-hover);
}
.qtp-card--archived .qtp-meta {
  background: rgba(120, 124, 150, 0.08);
  border-bottom-color: var(--c-border-soft-2);
}

@keyframes qtp-spotlight {
  0% {
    box-shadow: 0 0 0 3px rgba(65, 73, 154, 0.55);
  }
  60% {
    box-shadow: 0 0 0 3px rgba(65, 73, 154, 0.25);
  }
  100% {
    box-shadow: none;
  }
}
.qtp-card--badge .qtp-meta {
  padding-left: 12px;
}
.qtp-card--badge .qtp-badge {
  border-radius: 6px;
}

.qtp-section-divider {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 16px 2px 8px;
  flex-shrink: 0;
}
.qtp-section-divider::after {
  content: "";
  flex: 1;
  height: 2px;
  border-radius: 2px;
  background: var(--c-purple-500);
}

.qtp-section-label {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--c-purple-500);
  color: var(--c-text-on-action);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 3px 8px;
  border-radius: 5px;
}

.qtp-section-icon {
  display: inline-block;
}

.qtp-meta {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 6px 10px 6px 0;
  background: rgba(65, 73, 154, 0.06);
  border-bottom: 1px solid var(--c-chip-purple-bg);
  cursor: pointer;
}

.qtp-badge {
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 6px 0 0 6px;
  color: var(--c-text-on-action);
  font-weight: 600;
  white-space: nowrap;
}

.qtp-node-id {
  font-size: 11px;
  color: var(--c-text-disabled-pp);
  font-weight: 500;
  flex-shrink: 0;
}

.qtp-meta--icon {
  padding-left: 10px;
  gap: 8px;
}

.qtp-activity-icon {
  flex-shrink: 0;
}

.qtp-icon-placeholder {
  width: 26px;
  height: 26px;
  border-radius: 6px;
  background: var(--c-chip-purple-bg);
  flex-shrink: 0;
}

.qtp-title {
  flex: 0 1 auto;
  min-width: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-purple-700);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qtp-tag {
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 5px;
  white-space: nowrap;
  color: var(--c-purple-500);
  background: rgba(65, 73, 154, 0.12);
}
.qtp-tag--archived {
  color: var(--c-grey-500);
  background: var(--c-border-soft-2);
}

.qtp-save {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-left: auto;
}
.qtp-save--saving {
  background: var(--c-warn-yellow-600);
}
.qtp-save--saved {
  background: var(--c-success-bright);
}
.qtp-save--error {
  background: var(--c-tag-critical-text);
}

.qtp-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.qtp-col {
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 50px;
}
.qtp-col--primary {
  padding-right: 4px;
}
.qtp-col--target {
  padding-left: 4px;
  background: var(--c-bg-subtle-purple);
  border-left: 1px solid var(--c-chip-purple-bg);
}

.qtp-field {
  display: block;
  width: 100%;
}

.qtp-field-group {
  display: flex;
  flex-direction: column;
}

.qtp-field-caption {
  font-size: 10px;
  font-weight: 600;
  color: var(--c-text-disabled-pp);
  text-transform: uppercase;
  letter-spacing: 0.045em;
  line-height: 1.3;
  margin-bottom: 3px;
}
.qtp-field-caption--section {
  margin: 2px 0 4px;
  color: var(--c-text-disabled-pp);
}

.qtp-ans-row .qtp-field {
  flex: 1;
  min-width: 0;
}

.qtp-field--missing .input-field {
  border-color: var(--c-warn-yellow-600) !important;
  background: var(--c-bg-card) !important;
}

qdnapro-activity-row.qtp-row-focused .activity-row-inner {
  box-shadow: 0 0 0 2px var(--c-chip-bright-blue-hover), 0 4px 14px rgba(65, 73, 154, 0.18);
}

qdnapro-section-header.qtp-row-focused .sh-pill {
  box-shadow: 0 0 0 2px var(--c-chip-bright-blue-hover), 0 4px 14px rgba(65, 73, 154, 0.18);
  border-radius: 8px;
}

.qtp-ans-divider {
  height: 1px;
  background: var(--c-chip-purple-bg);
  margin: 2px 0;
}

.qtp-ans-row {
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

.qtp-ans-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 11px;
}

qdnapro-translation-modal {
  display: contents;
}

.qtm {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
}
.qtm * {
  box-sizing: border-box;
}

.qtm-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.qtm-source {
  min-width: 0;
  flex: 1;
}

.qtm-field-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--c-purple-500);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin-bottom: 6px;
}

.qtm-source-row {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.qtm-source-text {
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--c-purple-700);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qtm-source-empty {
  color: var(--c-text-disabled-pp);
  font-weight: 500;
}

.qtm-pill {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 3px 8px;
  border-radius: 5px;
  color: var(--c-purple-500);
  background: rgba(65, 73, 154, 0.12);
}
.qtm-pill--source {
  color: var(--c-text-on-action);
  background: var(--c-purple-500);
}

.qtm-at-btn {
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
}
.qtm-at-btn::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 55%;
  background: linear-gradient(120deg, transparent 0%, rgba(65, 73, 154, 0.13) 50%, transparent 100%);
  transform: translateX(-200%);
  animation: qtm-shimmer 3.4s ease-in-out infinite;
  pointer-events: none;
}
.qtm-at-btn[disabled]::after {
  animation: none;
}

@keyframes qtm-shimmer {
  0% {
    transform: translateX(-200%);
  }
  30% {
    transform: translateX(220%);
  }
  100% {
    transform: translateX(220%);
  }
}
.qtm-at-icon {
  display: inline-block;
}

.qtm-at-icon--spin {
  animation: qtm-rotate 0.8s linear infinite;
}

@keyframes qtm-rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.qtm-at-bar-host:not(:empty) {
  margin-bottom: 12px;
}

.qtm-at-bar {
  padding: 10px 12px;
  border: 1px solid rgba(216, 219, 237, 0.8);
  border-radius: 8px;
  font-size: 12px;
  color: var(--c-purple-500);
  background: rgba(65, 73, 154, 0.04);
}
.qtm-at-bar--done {
  background: rgba(34, 140, 90, 0.1);
  border-color: rgba(34, 140, 90, 0.2);
  color: var(--c-tag-new-text);
  display: flex;
  align-items: center;
  gap: 6px;
}
.qtm-at-bar--error {
  background: rgba(196, 54, 42, 0.1);
  border-color: rgba(196, 54, 42, 0.2);
  color: var(--c-tag-critical-text);
  display: flex;
  align-items: center;
  gap: 6px;
}

.qtm-at-bar-question {
  display: block;
  margin-bottom: 8px;
  font-weight: 500;
}

.qtm-at-bar-btns {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}

.qtm-fields {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.qtm-empty {
  padding: 22px 16px;
  text-align: center;
  color: var(--c-text-disabled-pp);
  font-size: 13px;
}

.qtm-field-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
}
.qtm-field-row .qtm-pill {
  flex-shrink: 0;
  min-width: 38px;
  justify-content: center;
}

.qtm-field {
  flex: 1;
  min-width: 0;
}

.qtm-field--missing .input-field {
  border-color: var(--c-warn-yellow-600) !important;
  background: var(--c-bg-card) !important;
}

.qdnapro-tree-item {
  display: flex;
  align-items: center;
  gap: 8px;
  box-sizing: border-box;
  border-radius: 8px;
  cursor: pointer;
  user-select: none;
  overflow: hidden;
  font-family: "Inter", sans-serif;
  color: var(--c-grey-950);
  background: transparent;
  border: 0.5px solid transparent;
  transition: background-color 120ms, color 120ms;
}

.qdnapro-tree-item:focus {
  outline: none;
}

.qdnapro-tree-item:focus-visible, .qdnapro-tree-item.force-focus {
  outline: 2px solid var(--c-purple-500);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-tree-item > .tree-item-chevron-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  cursor: pointer;
  flex-shrink: 0;
}

.qdnapro-tree-item > .tree-item-chevron-btn > .tree-item-chevron-icon {
  transition: transform 160ms ease;
  transform: rotate(-90deg);
}

.qdnapro-tree-item > .tree-item-chevron-btn:hover {
  background: rgba(0, 0, 0, 0.04);
}

.qdnapro-tree-item > .tree-item-chevron-btn:active {
  background: rgba(0, 0, 0, 0.08);
}

.qdnapro-tree-item > .tree-item-chevron-btn:focus {
  outline: none;
}

.qdnapro-tree-item > .tree-item-chevron-btn:focus-visible, .qdnapro-tree-item > .tree-item-chevron-btn.force-focus {
  outline: 2px solid var(--c-purple-500);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-tree-item > .tree-item-icon {
  flex-shrink: 0;
}

.qdnapro-tree-item > .tree-item-label {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-tree-item > .tree-item-badge {
  flex-shrink: 0;
}

.qdnapro-tree-item.tree-item-expanded > .tree-item-chevron-btn > .tree-item-chevron-icon {
  transform: rotate(0deg);
}

.qdnapro-tree-item.tree-item-large {
  min-height: 40px;
  padding: 8px 12px;
  font-size: 14px;
  line-height: 24px;
  font-weight: 400;
}

.qdnapro-tree-item.tree-item-large > .tree-item-chevron-btn {
  width: 24px;
  height: 24px;
}

.qdnapro-tree-item.tree-item-large.tree-item-type-subfolder {
  padding-left: 24px;
  padding-right: 8px;
}

.qdnapro-tree-item.tree-item-large.tree-item-type-subfolder.tree-item-active {
  padding-left: 48px;
}

.qdnapro-tree-item.tree-item-small {
  min-height: 32px;
  padding: 4px 8px;
  font-size: 12px;
  line-height: 20px;
  font-weight: 400;
  gap: 8px;
}

.qdnapro-tree-item.tree-item-small > .tree-item-chevron-btn {
  width: 16px;
  height: 16px;
}

.qdnapro-tree-item.tree-item-small.tree-item-type-subfolder {
  padding-left: 24px;
  padding-right: 8px;
}

.qdnapro-tree-item.tree-item-small.tree-item-type-subfolder.tree-item-active {
  padding-left: 48px;
}

.qdnapro-tree-item.tree-item-type-subfolder:not(.tree-item-active):not(.tree-item-disabled) {
  color: var(--c-grey-500);
}

.qdnapro-tree-item.tree-item-type-chevron:not(.tree-item-active):not(.tree-item-disabled) > .tree-item-label {
  font-weight: 700;
}

.qdnapro-tree-item:not(.tree-item-active):not(.tree-item-disabled):hover {
  background: var(--c-grey-50);
}

.qdnapro-tree-item:not(.tree-item-active):not(.tree-item-disabled):active {
  background: var(--c-border-card);
}

.qdnapro-tree-item.tree-item-active {
  background: #e6e9ff;
  color: var(--c-purple-500);
}

.qdnapro-tree-item.tree-item-active > .tree-item-label {
  font-weight: 700;
}

.qdnapro-tree-item.tree-item-active:hover {
  background: var(--c-border-tree-bright);
}

.qdnapro-tree-item.tree-item-active:active {
  background: var(--c-sidebar-icon);
}

.qdnapro-tree-item.tree-item-disabled, .qdnapro-tree-item.tree-item-disabled:hover {
  color: var(--c-text-disabled);
  background: transparent;
  cursor: not-allowed;
  pointer-events: none;
}

[data-theme=dark] .qdnapro-tree-item {
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-tree-item > .tree-item-icon,
[data-theme=dark] .qdnapro-tree-item > .tree-item-chevron-btn > .tree-item-chevron-icon {
  color: #e1e3e6;
}

[data-theme=dark] .qdnapro-tree-item > .tree-item-badge {
  color: #a6aab3;
  background: transparent;
}

[data-theme=dark] .qdnapro-tree-item:not(.tree-item-active):not(.tree-item-disabled):hover {
  background: #565b66;
}

[data-theme=dark] .qdnapro-tree-item.tree-item-active {
  background: #4652f3;
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-tree-item.tree-item-active:hover {
  background: #3842c2;
}

[data-theme=dark] .qdnapro-tree-item.tree-item-active > .tree-item-icon,
[data-theme=dark] .qdnapro-tree-item.tree-item-active > .tree-item-badge,
[data-theme=dark] .qdnapro-tree-item.tree-item-active > .tree-item-chevron-btn > .tree-item-chevron-icon {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-tree-item.tree-item-disabled, [data-theme=dark] .qdnapro-tree-item.tree-item-disabled:hover {
  color: #6b7280;
}

[data-theme=dark] .qdnapro-tree-item.tree-item-disabled > .tree-item-icon,
[data-theme=dark] .qdnapro-tree-item.tree-item-disabled > .tree-item-badge,
[data-theme=dark] .qdnapro-tree-item.tree-item-disabled > .tree-item-chevron-btn > .tree-item-chevron-icon, [data-theme=dark] .qdnapro-tree-item.tree-item-disabled:hover > .tree-item-icon,
[data-theme=dark] .qdnapro-tree-item.tree-item-disabled:hover > .tree-item-badge,
[data-theme=dark] .qdnapro-tree-item.tree-item-disabled:hover > .tree-item-chevron-btn > .tree-item-chevron-icon {
  color: #6b7280;
}

[data-theme=dark] .qdnapro-tree-item:focus-visible, [data-theme=dark] .qdnapro-tree-item.force-focus {
  outline-color: #a5acff;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.4);
}

.qdnapro-unit-input-row {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  box-sizing: border-box;
  padding: 8px 12px;
  border: 1.5px solid transparent;
  border-bottom: 1px solid var(--c-border-soft);
  border-radius: var(--r-row);
  font-family: var(--theme-font-family, "Inter", sans-serif);
  transition: border-color 0.2s, background 0.2s;
}

.qdnapro-unit-input-row.uir-borderless {
  border-bottom: none;
}

/* Error = soft red background; no coloured border. */
.qdnapro-unit-input-row.uir-error {
  background: var(--c-signal-red-soft);
}

.qdnapro-unit-input-row .uir-error-msg {
  font-size: 12px;
  color: var(--c-tag-critical-text);
  margin-top: 3px;
}

.qdnapro-unit-input-row .uir-main {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
  cursor: pointer;
  border-radius: var(--r-3); /* 12px — the pressed-zone radius Kim picked */
  padding: 4px;
  margin: -4px;
  transform-origin: left center;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.12s ease, transform 0.1s ease;
}

/* Pressed state (added via JS pointerdown — reliable on touch): purple-tinted
   highlight over image + name + EAN, plus a small squash. */
.qdnapro-unit-input-row .uir-main.is-pressed {
  background: var(--c-purple-soft-12);
  transform: scale(0.98);
}

.qdnapro-unit-input-row .uir-image {
  position: relative;
  flex-shrink: 0;
}

.qdnapro-unit-input-row.uir-no-image .uir-image {
  width: 0;
  overflow: visible;
}

.qdnapro-unit-input-row .uir-image img {
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: var(--r-btn);
  display: block;
}

.qdnapro-unit-input-row .uir-image-empty {
  width: 48px;
  height: 48px;
  border-radius: var(--r-btn);
  background: var(--c-black-06);
}

.qdnapro-unit-input-row .uir-status-circle {
  position: absolute;
  bottom: -6px;
  left: -6px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-text-on-action);
  flex-shrink: 0;
  pointer-events: none;
  opacity: 0;
  transform: scale(0.4);
  z-index: 2;
  border: 2px solid var(--c-bg-card, #fff);
}

.qdnapro-unit-input-row.uir-filled .uir-status-circle {
  background: var(--c-success-bright, #1db87a);
  opacity: 1;
  transform: scale(1);
  animation: uir-badge-pop 0.52s cubic-bezier(0.34, 1.56, 0.5, 1);
}

.qdnapro-unit-input-row.uir-error .uir-status-circle {
  background: var(--c-tag-critical-text, #c0392b);
  opacity: 1;
  transform: scale(1);
  animation: uir-badge-pop 0.52s cubic-bezier(0.34, 1.56, 0.5, 1);
}

.qdnapro-unit-input-row .uir-check-path {
  stroke-dasharray: 23;
  stroke-dashoffset: 23;
}

.qdnapro-unit-input-row.uir-filled .uir-check-path {
  animation: uir-draw 0.38s cubic-bezier(0.22, 1, 0.36, 1) 0.04s forwards;
}

@keyframes uir-badge-pop {
  0% {
    transform: scale(0.7) rotate(0deg);
  }
  20% {
    transform: scale(1.22) rotate(-5deg);
  }
  44% {
    transform: scale(0.9) rotate(3deg);
  }
  64% {
    transform: scale(1.08) rotate(-1deg);
  }
  80% {
    transform: scale(0.97) rotate(0deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
  }
}
@keyframes uir-draw {
  0% {
    stroke-dashoffset: 23;
  }
  62% {
    stroke-dashoffset: -1;
  }
  80% {
    stroke-dashoffset: 0.7;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
.qdnapro-unit-input-row .uir-text {
  flex: 1;
  min-width: 0;
}

.qdnapro-unit-input-row .uir-name {
  font-size: 16px;
  font-weight: 400;
  color: var(--theme-field-text-color, #1d1d1b);
  line-height: 1.5em;
  max-height: 1.5em;
  overflow: hidden;
  white-space: normal;
  word-break: break-word;
  transition: max-height 0.26s cubic-bezier(0.22, 1, 0.36, 1);
}

.qdnapro-unit-input-row .uir-name.is-clamped {
  white-space: nowrap;
  text-overflow: ellipsis;
}

.qdnapro-unit-input-row.uir-no-meta .uir-name {
  max-height: 3em;
}

.qdnapro-unit-input-row.uir-no-meta .uir-name.is-clamped {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  text-overflow: ellipsis;
  white-space: normal;
}

.qdnapro-unit-input-row.uir-filled .uir-name {
  color: var(--theme-description-color, #6b6b6b);
}

.qdnapro-unit-input-row .uir-meta {
  font-size: 12px;
  color: var(--theme-description-color, #8a8a8a);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-unit-input-row .uir-meta[hidden] {
  display: none;
}

.qdnapro-unit-input-row .uir-input {
  flex-shrink: 0;
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.qdnapro-unit-input-row .uir-input qdnapro-input {
  width: 96px;
}

/* With ± counter buttons (spinner) the field needs room for − field + . The ± touch
   buttons (~44px each) + a decimal value clipped at 138px; widened so "0,00" / counts
   stay visible. Not viewport-gated: the clip is field-vs-content, present everywhere. */
.qdnapro-unit-input-row .uir-input qdnapro-input[spinner] {
  width: 180px;
}

/* Drop the in-field state icon (the red "!" alert-circle) inside the per-unit row. The error is
   already signalled by the red row border, the red ✗ on the image, and the "Still to fill" line —
   the extra "!" only eats width, which hurts most on the narrow number/date/decimal fields.
   Scoped to this row only (not qdnapro-input elsewhere). 5 classes + element (51) beats the
   component's own .input-state-icon display rule (40) without !important. */
.qdnapro-unit-input-row .uir-input qdnapro-input .input-field .input-trailing .input-state-icon {
  display: none;
}

/* Narrow screens (phone) + per-unit ONLY: drop the in-field clear (×) button. In the
   compact "input for every unit" rows the × eats the width the value needs — it clips
   "€ 2,00" / "0,000" on decimal + currency. On phone that space is too precious; on
   tablet/desktop there's room, so the × stays there. Select-all + retype still clears.
   Scoped to .qdnapro-unit-input-row so single full-width fields keep their ×. [Kim 2026-07-01] */
@media (max-width: 767px) {
  .qdnapro-unit-input-row .uir-input qdnapro-input .input-field .input-trailing qdnapro-icon-btn[icon=close] {
    display: none;
  }
  /* Currency still needs a bit more room for the € prefix + value (even without the ×). */
  .qdnapro-unit-input-row[input-type=currency] .uir-input qdnapro-input {
    width: 130px;
  }
  /* Date: the native picker (dd/mm/yyyy + calendar icon) has a wide intrinsic min
     (~200px). At the 96px default it overflowed off-screen. Widen so it fits; the name
     column yields (Kim's pick — option 1). Time is narrower but also clipped at 96px. */
  .qdnapro-unit-input-row[input-type=date] .uir-input qdnapro-input {
    width: 200px;
  }
  .qdnapro-unit-input-row[input-type=time] .uir-input qdnapro-input {
    width: 120px;
  }
}
/* Per-unit message channel: the field's OWN validation message stays hidden — the per-unit error
   is carried by the row instead ("Still to fill" under the name, set by advanced_input.js). The
   long required message ("You have to fill out all required form fields.") would otherwise run off
   a narrow phone field. Auto-scoped to per-unit because only the per-unit screen wraps the input in
   .qdnapro-unit-input-row; the single full-width field (not-per-unit) is unwrapped and keeps the
   fuller message. Covers both blur and submit paths in one rule. The constraints hint (a separate
   line below the field) is NOT .input-message, so min/max/range hints still show. */
.qdnapro-unit-input-row .uir-input qdnapro-input .input-message {
  display: none;
}

.qdnapro-unit-input-row .uir-scan {
  flex-shrink: 0;
  background: color-mix(in srgb, var(--theme-btn-color, #40499a) 12%, #fff);
  color: var(--theme-btn-color, #40499a);
}

.qdnapro-unit-input-row .uir-scan qdnapro-icon {
  color: var(--theme-btn-color, #40499a);
}

.qdnapro-unit-input-row.uir-layout-stacked {
  flex-wrap: wrap;
}

.qdnapro-unit-input-row.uir-layout-stacked .uir-main {
  width: 100%;
}

.qdnapro-unit-input-row.uir-layout-stacked .uir-input {
  width: 100%;
  margin-top: 6px;
}

.qdnapro-unit-input-row.uir-layout-stacked .uir-input qdnapro-input {
  flex: 1;
  width: auto;
}

.qdnapro-unit-input-row[input-type=text]:not(.uir-layout-stacked) .uir-main,
.qdnapro-unit-input-row[input-type=expanding]:not(.uir-layout-stacked) .uir-main {
  flex: 4 1 0;
}

.qdnapro-unit-input-row[input-type=text]:not(.uir-layout-stacked) .uir-input,
.qdnapro-unit-input-row[input-type=expanding]:not(.uir-layout-stacked) .uir-input {
  flex: 6 1 0;
  min-width: 0;
  max-width: 564px;
}

.qdnapro-unit-input-row[input-type=text]:not(.uir-layout-stacked) .uir-input qdnapro-input,
.qdnapro-unit-input-row[input-type=expanding]:not(.uir-layout-stacked) .uir-input qdnapro-input {
  flex: 1;
  width: auto;
  min-width: 0;
}

@media (min-width: 768px) {
  .qdnapro-unit-input-row[input-type=number] .uir-input qdnapro-input,
  .qdnapro-unit-input-row[input-type=currency] .uir-input qdnapro-input {
    width: 160px;
  }
  .qdnapro-unit-input-row[input-type=date] .uir-input qdnapro-input {
    width: 170px;
  }
  .qdnapro-unit-input-row[input-type=time] .uir-input qdnapro-input {
    width: 130px;
  }
}
.qdnapro-unit-input-row[input-type=number]:not(.uir-layout-stacked) .uir-input,
.qdnapro-unit-input-row[input-type=currency]:not(.uir-layout-stacked) .uir-input,
.qdnapro-unit-input-row[input-type=date]:not(.uir-layout-stacked) .uir-input,
.qdnapro-unit-input-row[input-type=time]:not(.uir-layout-stacked) .uir-input,
.qdnapro-unit-input-row[input-type=photo]:not(.uir-layout-stacked) .uir-input {
  flex-grow: 0;
}

@media (min-width: 768px) {
  .qdnapro-unit-input-row {
    border: 1px solid var(--c-border-card);
    border-radius: var(--r-row);
    margin-bottom: 8px;
  }
  .qdnapro-unit-input-row.uir-borderless {
    border: 1.5px solid transparent;
    border-bottom: none;
    border-radius: var(--r-row);
    margin-bottom: 0;
  }
}
.qdnapro-update-row {
  --uir-bg-hover: var(--c-bg-subtle-hover, #f0f1f2);
  --uir-bg-pressed: var(--c-purple-soft-12, rgba(64, 73, 154, 0.12));
  --uir-title-color: var(--c-text-heading, #1a1f4d);
  --uir-muted-color: var(--c-text-muted, #6e7280);
  --uir-dot-color: var(--c-action-500, #4652f3);
  --uir-focus-ring: var(--c-action-500, #4652f3);
  --uir-focus-glow: rgba(70, 82, 243, 0.25);
  --uir-badge-warm-bg: #e8705f;
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  box-sizing: border-box;
  width: 100%;
  padding: 10px 16px;
  background: transparent;
  border: 0 solid transparent;
  border-radius: 10px;
  color: var(--uir-title-color);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  font-family: inherit;
  text-align: left;
  transition: background-color 100ms ease-out;
}
.qdnapro-update-row:hover {
  background: var(--uir-bg-hover);
}
.qdnapro-update-row.is-pressed {
  background: var(--uir-bg-pressed);
}
.qdnapro-update-row:focus {
  outline: none;
}
.qdnapro-update-row:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--uir-focus-ring), inset 0 0 0 5px var(--uir-focus-glow);
}

.uir-avatar {
  position: relative;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
}

.uir-avatar-img {
  display: block;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  pointer-events: none;
}

.uir-avatar-el {
  flex-shrink: 0;
}

.uir-badge {
  position: absolute;
  right: -2px;
  bottom: -2px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid var(--c-bg-card, #ffffff);
  color: #ffffff;
}

.uir-badge-action {
  background: var(--c-action-500, #4652f3);
}

.uir-badge-warm {
  background: var(--uir-badge-warm-bg, #e8705f);
}

.uir-badge-icon {
  width: 12px;
  height: 12px;
}

.uir-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
  gap: 2px;
}

.uir-title {
  font-size: 15px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--uir-title-color);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qdnapro-update-row.uir-unread {
  background: var(--c-action-08, rgba(70, 82, 243, 0.08));
}

.qdnapro-update-row.uir-unread .uir-title {
  font-weight: 600;
}

.uir-preview {
  font-size: 13px;
  font-weight: 400;
  line-height: 1.35;
  color: var(--uir-muted-color);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.uir-meta {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  color: var(--uir-muted-color);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.uir-dot {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--uir-dot-color);
}

.qdnapro-wizard-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: var(--overlay-z);
  /* Geen ingebakken zoom, en dat is sinds 2026-08-03 de regel voor ELK venster: `qdnapro-modal` had
     er een van 1.25 voor de legacy `body { zoom: 0.8 }`, en die is weggehaald omdat die body-zoom een
     v1-pagina niet meer bereikt (zie de uitleg in `components/v2/modal/_modal.scss`). Zet hier dus ook
     geen counter-zoom terug; komt zo'n pagina er ooit weer, dan hoort de correctie bij die PAGINA. */
}

.qdnapro-wizard-modal.wm-open {
  display: flex;
}

/* Het grijze frame zelf is .qos-dialog; hier alleen de breedte die per stap
   animeert. Dat is het enige wat een wizard anders doet dan een modal. */
.wm-dialog {
  width: 480px;
  max-width: calc(100vw - 48px);
  transition: width 0.38s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Step viewport (inside the 8px grey padding). Steps stack + slide here. */
.wm-steps {
  position: relative;
  /* .qos-dialog is een flexcontainer (net als bij qdnapro-modal, waar
     .modal-window de flexchild is), dus dit moet expliciet de ruimte pakken.
     Zonder deze twee regels klapt het stapvenster in tot 1px breed: de stappen
     zelf staan absoluut, dus er is geen inhoud die breedte geeft. Het oude
     .wm-dialog was een blok, waardoor dit gratis goed ging. */
  flex: 1 1 auto;
  min-width: 0;
  height: var(--wm-height, 540px);
  max-height: calc(100vh - 64px);
  overflow: hidden;
}

/* AUTO-HEIGHT hosts (opt-in attribute, 20.07.2026): the component writes the
   active step's measured natural height as an inline style; this transition
   makes step changes glide on the SAME curve as the width. Gated on the
   attribute so fixed-height hosts (Master Picker) never animate height. */
.qdnapro-wizard-modal[auto-height] .wm-steps {
  transition: height 0.38s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Elke stap IS het witte venster: zelfde kleur/rand/radius als .qos-window en
   als qdnapro-modal, uit de overlay-tokens. */
.qdnapro-wizard-step {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  background: var(--overlay-window-bg);
  border: 0.5px solid var(--overlay-window-border);
  border-radius: var(--overlay-window-radius);
  overflow: hidden;
  transition: transform 0.36s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.28s ease;
}

.qdnapro-wizard-step.wm-active {
  transform: none;
  opacity: 1;
}

.qdnapro-wizard-step.wm-off-left {
  transform: translateX(-70px);
  opacity: 0;
  pointer-events: none;
}

.qdnapro-wizard-step.wm-off-right {
  transform: translateX(70px);
  opacity: 0;
  pointer-events: none;
}

/* Optional centered segment / tab bar under the header (like qdnapro-modal's
   tabs row, e.g. "Vragen | Tijdsinstellingen"). Drop a qdnapro-segment in a
   .wm-tabbar; omit the element when it's not needed (= hidden). [Kim 2026-06-15] */
.wm-tabbar {
  display: flex;
  justify-content: center;
  padding: 6px 16px 8px;
  flex-shrink: 0;
}

/* with-info step: transparent so the grey dialog frame shows on the left; a
   grey info panel + 8px gap + the white bordered main. Mirrors qdnapro-modal. */
.qdnapro-wizard-step.wm-with-info {
  flex-direction: row;
  gap: 8px;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
}

.wm-info {
  flex: 0 0 260px;
  min-width: 0;
  align-self: stretch;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow: hidden;
}

.wm-info-head {
  display: flex;
  align-items: center;
  gap: 8px;
}

.wm-info-head qdnapro-icon {
  color: var(--c-purple-500);
}

.wm-info-title {
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: var(--c-purple-500);
}

.wm-info-text {
  font-size: 14px;
  line-height: 22px;
  color: var(--c-text-heading);
}

.wm-info-illustration {
  margin-top: auto;
  margin-left: -16px;
  margin-right: -16px;
  margin-bottom: -16px;
  align-self: stretch;
  pointer-events: none;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  /* Decorative illustration always at 60% opacity so it stays subtle behind
     the content, consistent across every modal. [Kim 2026-06-15] */
  opacity: 0.6;
}

.wm-info-illustration qdnapro-illustration,
.wm-info-illustration img,
.wm-info-illustration svg {
  display: block;
  max-width: 100%;
  height: auto;
}

/* The DMS folder-access role art is tall portrait; without a height cap it
   fills the whole info column. Cap it so it sits as a subtle bottom
   illustration like the landscape ones. Scoped to the role-* assets so the
   other picker consumers (teams/locations/KPIs) are untouched. [Kim 2026-07-21] */
.wm-info-illustration img[src*=role-] {
  width: auto;
  max-height: 300px;
  margin-left: auto;
  margin-right: auto;
}

.wm-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: var(--overlay-window-bg);
  border: 0.5px solid var(--overlay-window-border);
  border-radius: var(--overlay-window-radius);
  overflow: hidden;
}

qdnapro-unit-type {
  display: contents;
}

.qdnapro-unit-type {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: var(--c-bg-card);
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  font-weight: normal;
  text-decoration: none;
  justify-content: space-between;
  min-height: 120px;
}
.qdnapro-unit-type:hover {
  background-color: var(--c-bg-card-hover);
}

.qdnapro-unit-type *,
.qdnapro-unit-type *::before,
.qdnapro-unit-type *::after {
  box-sizing: border-box;
}

.utc-top {
  display: flex;
  flex-direction: row;
  gap: 16px;
  padding: 1.25rem 1.5rem 0.5rem;
  align-items: center;
}

.utc-icon {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 44px;
  align-self: center;
}
.utc-icon img {
  width: 48px;
  height: 48px;
  border-radius: 0.5rem;
  object-fit: contain;
  display: block;
}

.utc-content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.utc-heading {
  font-family: var(--Type-Font-Family-primary, Inter);
  font-size: var(--Font-size-Body-Inter-medium-14, 14px);
  font-weight: 600;
  line-height: var(--Line-Height-Body-Body-Medium-Caption, 24px);
  color: var(--Text-Body, #0b0b0d);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
}

.utc-subheading {
  font-family: var(--Type-Font-Family-primary, Inter);
  font-size: var(--Font-size-Body-small-12, 12px);
  font-weight: 400;
  line-height: var(--Line-Height-Body-Body-Small, 20px);
  color: var(--Text-Body-Secondary, #6b7280);
  margin-top: 0;
  text-overflow: ellipsis;
}

.utc-footer {
  display: flex;
  flex-flow: row;
  width: 100%;
  padding: 0.5rem 1.5rem 0.75rem;
  box-sizing: border-box;
}
.utc-footer[hidden] {
  display: none;
}

.utc-pair {
  display: flex;
  gap: 4px;
  align-items: baseline;
  padding-right: 24px;
}

.utc-label,
.utc-value {
  font-family: var(--Type-Font-Family-primary, Inter);
  font-size: var(--Font-size-Body-small-12, 12px);
  font-weight: 400;
  line-height: var(--Line-Height-Body-Body-Small, 20px);
  color: var(--Surface-Signal-Signal-grey-Detail, #6b7280);
}

.qdnapro-date-carousel {
  --dc-active: var(--c-sidebar-bg);
  --dc-card-bg: #ffffff;
  --dc-border: rgba(58, 66, 144, 0.13);
  --dc-border-past: rgba(58, 66, 144, 0.07);
  --dc-name-idle: var(--c-text-disabled-pp);
  --dc-day-idle: var(--c-purple-400);
  --dc-name-past: var(--c-sidebar-icon);
  --dc-day-past: var(--c-purple-400);
  --dc-dot-idle: rgba(58, 66, 144, 0.22);
  --dc-title-color: var(--c-text-heading);
  --dc-month-color: var(--c-purple-400);
  display: block;
  cursor: grab;
  -webkit-user-select: none;
  user-select: none;
  border-bottom: 0.5px solid var(--dc-border);
  overflow-x: clip;
}

.qdnapro-date-carousel.is-dragging {
  cursor: grabbing;
}

.qdnapro-date-carousel__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0 8px;
  min-height: 52px;
  max-height: 52px;
  overflow: hidden;
  transition: max-height 0.28s cubic-bezier(0.2, 0, 0, 1), min-height 0.28s cubic-bezier(0.2, 0, 0, 1), opacity 0.18s ease, transform 0.28s cubic-bezier(0.2, 0, 0, 1);
}

.qdnapro-date-carousel__header-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.qdnapro-date-carousel__header-title {
  font-size: 18px;
  font-weight: 500;
  color: var(--dc-title-color);
  line-height: 1.2;
}

.qdnapro-date-carousel__header-month {
  font-size: 13px;
  font-weight: 500;
  color: var(--dc-month-color);
  letter-spacing: 0.02em;
}

.qdnapro-date-carousel__vandaag-btn {
  flex-shrink: 0;
  align-self: flex-start;
  transform-origin: right center;
}

.qdnapro-date-carousel__vandaag-btn.is-popping-in {
  animation: qdnapro-dc-btn-in 0.38s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.qdnapro-date-carousel__vandaag-btn.is-popping-out {
  animation: qdnapro-dc-btn-out 0.2s ease-in forwards;
}

.qdnapro-date-carousel__strip-wrap {
  clip-path: inset(-200px 0px -200px 0px);
  padding: 10px 0 8px;
  margin-top: -10px;
  -webkit-mask: linear-gradient(to right, transparent 0%, black 11%, black 89%, transparent 100%);
  mask: linear-gradient(to right, transparent 0%, black 11%, black 89%, transparent 100%);
  touch-action: pan-y;
}

.qdnapro-date-carousel__strip {
  display: flex;
  gap: 8px;
  will-change: transform;
}

.qdnapro-date-carousel__card {
  width: 56px;
  height: 72px;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
  box-sizing: border-box;
  transition: transform 0.15s ease, background-color 0.12s ease, border-color 0.12s ease, opacity 0.12s ease, width 0.28s cubic-bezier(0.2, 0, 0, 1), height 0.28s cubic-bezier(0.2, 0, 0, 1), border-radius 0.28s cubic-bezier(0.2, 0, 0, 1);
}

.qdnapro-date-carousel__card--idle {
  background: var(--dc-card-bg);
  border: 0.5px solid var(--dc-border);
}

.qdnapro-date-carousel__card--idle .qdnapro-date-carousel__card-name {
  color: var(--dc-name-idle);
}

.qdnapro-date-carousel__card--idle .qdnapro-date-carousel__card-day {
  color: var(--dc-day-idle);
}

.qdnapro-date-carousel__card--idle .qdnapro-date-carousel__card-dot {
  background: var(--dc-dot-idle);
}

.qdnapro-date-carousel__card--past {
  background: var(--dc-card-bg);
  border: 0.5px solid var(--dc-border-past);
  opacity: 0.48;
}

.qdnapro-date-carousel__card--past .qdnapro-date-carousel__card-name {
  color: var(--dc-name-past);
}

.qdnapro-date-carousel__card--past .qdnapro-date-carousel__card-day {
  color: var(--dc-day-past);
}

.qdnapro-date-carousel__card--past .qdnapro-date-carousel__card-dot {
  background: var(--dc-dot-idle);
}

.qdnapro-date-carousel__card--active {
  background: var(--dc-active);
  border: none;
}

.qdnapro-date-carousel__card--active .qdnapro-date-carousel__card-name {
  color: rgba(255, 255, 255, 0.6);
}

.qdnapro-date-carousel__card--active .qdnapro-date-carousel__card-day {
  color: var(--c-text-on-action);
}

.qdnapro-date-carousel__card--active .qdnapro-date-carousel__card-dot {
  background: rgba(255, 255, 255, 0.5);
}

.qdnapro-date-carousel__card-name {
  font-size: 12px;
  line-height: 1;
  margin-bottom: 4px;
  font-weight: 400;
  transition: color 0.12s ease, font-size 0.28s cubic-bezier(0.2, 0, 0, 1), margin-bottom 0.28s cubic-bezier(0.2, 0, 0, 1);
}

.qdnapro-date-carousel__card-day {
  font-size: 23px;
  line-height: 1;
  font-weight: 500;
  transition: color 0.12s ease, font-size 0.28s cubic-bezier(0.2, 0, 0, 1);
}

.qdnapro-date-carousel__card-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  margin-top: 5px;
}

.qdnapro-date-carousel .drag-mode .qdnapro-date-carousel__card--active:not(.is-growing) {
  transform: scale(1.1);
  transition: transform 0.18s ease;
}

.qdnapro-date-carousel__card.is-pressing {
  transform: scale(0.86);
  transition: transform 0.09s ease-in;
}

.qdnapro-date-carousel[compact] .qdnapro-date-carousel__header {
  max-height: 0;
  min-height: 0;
  opacity: 0;
  transform: translateY(-4px);
  pointer-events: none;
}

.qdnapro-date-carousel[compact] .qdnapro-date-carousel__card {
  width: 38px;
  height: 44px;
  border-radius: 10px;
}

.qdnapro-date-carousel[compact] .qdnapro-date-carousel__card-name {
  font-size: 9px;
  margin-bottom: 2px;
}

.qdnapro-date-carousel[compact] .qdnapro-date-carousel__card-day {
  font-size: 15px;
}

.qdnapro-date-carousel[compact] .qdnapro-date-carousel__card-dot {
  width: 3px;
  height: 3px;
  margin-top: 2px;
}

.qdnapro-date-carousel[compact] .qdnapro-date-carousel__strip-wrap {
  padding: 6px 0;
  margin-top: -6px;
}

@keyframes qdnapro-dc-grow {
  0% {
    transform: scale(1);
  }
  55% {
    transform: scale(1.18);
  }
  100% {
    transform: scale(1.1);
  }
}
@keyframes qdnapro-dc-pop {
  0% {
    transform: scale(0.86);
  }
  50% {
    transform: scale(1.12);
  }
  72% {
    transform: scale(0.96);
  }
  87% {
    transform: scale(1.03);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes qdnapro-dc-confirm {
  0% {
    transform: scale(1.1);
  }
  45% {
    transform: scale(1.15);
  }
  70% {
    transform: scale(0.97);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes qdnapro-dc-wiggle {
  0% {
    transform: scale(1) rotate(0deg);
  }
  25% {
    transform: scale(0.93) rotate(-3deg);
  }
  60% {
    transform: scale(1.04) rotate(2.5deg);
  }
  80% {
    transform: scale(0.98) rotate(-1deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
  }
}
.qdnapro-date-carousel__card.is-growing {
  animation: qdnapro-dc-grow 0.32s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  transition: none;
}

.qdnapro-date-carousel__card.is-popping {
  animation: qdnapro-dc-pop 0.48s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  transition: none;
}

.qdnapro-date-carousel__card.is-confirming {
  animation: qdnapro-dc-confirm 0.42s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  transition: none;
}

.qdnapro-date-carousel__card.is-wiggle {
  animation: qdnapro-dc-wiggle 0.36s ease forwards;
  transition: none;
}

@keyframes qdnapro-dc-btn-in {
  0% {
    transform: scale(0.4);
    opacity: 0;
  }
  65% {
    transform: scale(1.1);
    opacity: 1;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes qdnapro-dc-btn-out {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  35% {
    transform: scale(1.08);
    opacity: 1;
  }
  100% {
    transform: scale(0.4);
    opacity: 0;
  }
}
.qdnapro-unit-card {
  display: flex;
  position: relative;
  overflow: visible;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  font-family: "Inter", system-ui, -apple-system, sans-serif;
  transition: transform 170ms cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 120ms ease;
}

.qdnapro-unit-card__frame {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  position: relative;
  box-sizing: border-box;
  border: 1.5px solid var(--c-border-soft-2);
  border-radius: var(--r-2);
  background: var(--c-bg-card);
  overflow: hidden;
  transition: border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
}

.qdnapro-unit-card.is-pressing {
  transform: scale(0.95);
  transition: transform 70ms ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-unit-card,
  .qdnapro-unit-card.is-pressing {
    transition: none;
    transform: none;
  }
}
.qdnapro-unit-card.view-grid-compact .qdnapro-unit-card__frame,
.qdnapro-unit-card.view-grid-standard .qdnapro-unit-card__frame {
  flex-direction: column;
}

.qdnapro-unit-card.view-grid-compact .qdnapro-unit-card__name,
.qdnapro-unit-card.view-grid-standard .qdnapro-unit-card__name {
  flex: 1 0 auto;
  padding: 8px 6px 6px;
  font-size: 14px;
  line-height: 1.3;
  font-weight: 400;
  color: var(--c-text-heading);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  white-space: normal;
  overflow: hidden;
}

.qdnapro-unit-card.view-grid-compact .qdnapro-unit-card__image-wrap,
.qdnapro-unit-card.view-grid-standard .qdnapro-unit-card__image-wrap {
  width: 100%;
  aspect-ratio: 1/1;
  flex-shrink: 0;
}

.qdnapro-unit-card.view-grid-compact .qdnapro-unit-card__check-badge,
.qdnapro-unit-card.view-grid-standard .qdnapro-unit-card__check-badge {
  position: absolute;
  bottom: 6px;
  right: 6px;
}

.qdnapro-unit-card.view-grid-standard .qdnapro-unit-card__name {
  font-size: 15px;
  padding: 9px 11px 7px;
}

.qdnapro-unit-card.view-grid-standard .qdnapro-unit-card__fallback-abbr {
  font-size: 24px;
}

.qdnapro-unit-card.view-grid-standard .qdnapro-unit-card__check-badge {
  bottom: 8px;
  right: 8px;
  width: 26px;
  height: 26px;
}

.qdnapro-unit-card.view-list-compact .qdnapro-unit-card__frame,
.qdnapro-unit-card.view-list-large .qdnapro-unit-card__frame {
  flex-direction: row;
  align-items: center;
}

.qdnapro-unit-card.view-list-compact .qdnapro-unit-card__image-wrap,
.qdnapro-unit-card.view-list-large .qdnapro-unit-card__image-wrap {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  order: -1;
}

.qdnapro-unit-card.view-list-compact .qdnapro-unit-card__status-bar,
.qdnapro-unit-card.view-list-large .qdnapro-unit-card__status-bar {
  display: none;
}

.qdnapro-unit-card.view-list-compact .qdnapro-unit-card__name,
.qdnapro-unit-card.view-list-large .qdnapro-unit-card__name {
  flex: 1;
  padding: 0 12px;
  font-size: 14px;
  font-weight: 500;
  color: var(--c-text-heading);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.qdnapro-unit-card.view-list-compact .qdnapro-unit-card__check-badge,
.qdnapro-unit-card.view-list-large .qdnapro-unit-card__check-badge {
  position: static;
  margin-right: 10px;
  flex-shrink: 0;
}

.qdnapro-unit-card.view-list-large .qdnapro-unit-card__image-wrap {
  width: 64px;
  height: 64px;
}

.qdnapro-unit-card.view-list-large .qdnapro-unit-card__name {
  font-size: 14px;
  font-weight: 600;
}

.qdnapro-unit-card.view-list-large .qdnapro-unit-card__check-badge {
  margin-right: 14px;
  width: 26px;
  height: 26px;
}

.qdnapro-unit-card.flat.view-list-compact .qdnapro-unit-card__frame,
.qdnapro-unit-card.flat.view-list-large .qdnapro-unit-card__frame {
  border: 1.5px solid transparent;
  border-bottom: 1px solid var(--c-border-soft);
  border-radius: 0;
}

.qdnapro-unit-card__clear {
  display: none;
}

.qdnapro-unit-card.view-list-compact .qdnapro-unit-card__clear,
.qdnapro-unit-card.view-list-large .qdnapro-unit-card__clear {
  display: flex;
  flex-shrink: 0;
  margin-left: 4px;
}

.qdnapro-unit-card__image-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-bg-card-hover);
  overflow: hidden;
}

.qdnapro-unit-card__image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.qdnapro-unit-card__fallback {
  width: 100%;
  height: 100%;
  min-height: 68px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--uc-fb-bg, #eef0fb);
}

.qdnapro-unit-card__fallback-abbr {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--uc-fb-fg, #4a52a0);
}

.qdnapro-unit-card__check-badge {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--c-brand-purple);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-text-on-action);
  flex-shrink: 0;
  pointer-events: none;
  opacity: 0;
  transform: scale(0.4);
  transition: opacity 150ms ease, transform 220ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

.qdnapro-unit-card__check-badge svg {
  display: block;
}

.qdnapro-unit-card__lp-ring {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 2.5px solid var(--c-brand-purple);
  pointer-events: none;
  opacity: 0;
}

.qdnapro-unit-card__status-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--c-text-on-action);
  position: relative;
  z-index: 2;
  flex-shrink: 0;
}

.qdnapro-unit-card__status-icon {
  display: flex;
  flex-shrink: 0;
}

.qdnapro-unit-card__status-icon svg {
  display: block;
}

.qdnapro-unit-card__status-label {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-unit-card.result-ok .qdnapro-unit-card__status-bar {
  background: #6bb6ab;
}

.qdnapro-unit-card.result-not-ok .qdnapro-unit-card__status-bar {
  background: var(--c-favorite-heart);
}

.qdnapro-unit-card.result-future-fix .qdnapro-unit-card__status-bar {
  background: var(--c-warn-yellow-600);
}

.qdnapro-unit-card.result-issue .qdnapro-unit-card__status-bar {
  background: var(--c-tag-handover-text);
}

.qdnapro-unit-card.has-result.view-grid-compact .qdnapro-unit-card__check-badge,
.qdnapro-unit-card.has-result.view-grid-standard .qdnapro-unit-card__check-badge {
  bottom: 36px;
}

.qdnapro-unit-card.is-selected .qdnapro-unit-card__frame {
  background: var(--c-bg-subtle-purple);
  box-shadow: 0 0 0 3px var(--focus-glow);
}

.qdnapro-unit-card.is-selected .qdnapro-unit-card__frame::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(26, 31, 77, 0.32);
  pointer-events: none;
  z-index: 1;
}

.qdnapro-unit-card.is-selected .qdnapro-unit-card__check-badge {
  opacity: 1;
  transform: scale(1);
  z-index: 2;
  animation: uc-badge-pop 0.52s cubic-bezier(0.34, 1.56, 0.5, 1);
}

.qdnapro-unit-card__check-path {
  stroke-dasharray: 23;
  stroke-dashoffset: 23;
  transition: stroke-dashoffset 0.15s ease;
}

.qdnapro-unit-card.is-selected .qdnapro-unit-card__check-path {
  animation: uc-draw 0.38s cubic-bezier(0.22, 1, 0.36, 1) 0.04s forwards;
}

@keyframes uc-badge-pop {
  0% {
    transform: scale(0.7) rotate(0deg);
  }
  20% {
    transform: scale(1.22) rotate(-5deg);
  }
  44% {
    transform: scale(0.9) rotate(3deg);
  }
  64% {
    transform: scale(1.08) rotate(-1deg);
  }
  80% {
    transform: scale(0.97) rotate(0deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
  }
}
@keyframes uc-draw {
  0% {
    stroke-dashoffset: 23;
  }
  62% {
    stroke-dashoffset: -1;
  }
  80% {
    stroke-dashoffset: 0.7;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
.qdnapro-unit-card.status-problem.view-list-compact .qdnapro-unit-card__frame,
.qdnapro-unit-card.status-problem.view-list-large .qdnapro-unit-card__frame {
  border-left-color: var(--c-favorite-heart);
  border-left-width: 3px;
}

.qdnapro-unit-card .qdnapro-unit-card__image-wrap {
  position: relative;
}

.qdnapro-unit-card .qdnapro-unit-card__mandatory-badge {
  position: absolute;
  top: -7px;
  right: -7px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--c-favorite-heart);
  border: 2px solid var(--c-bg-card);
  box-sizing: border-box;
  color: var(--c-text-on-action);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
  pointer-events: none;
  z-index: 4;
}

.qdnapro-unit-card .qdnapro-unit-card__mandatory-badge svg {
  width: 12px;
  height: 12px;
  display: block;
}

.qdnapro-unit-card.is-mandatory.view-grid-compact .qdnapro-unit-card__name,
.qdnapro-unit-card.is-mandatory.view-grid-standard .qdnapro-unit-card__name {
  padding-right: 14px;
}

.qdnapro-unit-card.view-list-compact .qdnapro-unit-card__mandatory-badge {
  width: 16px;
  height: 16px;
  top: -6px;
  right: -6px;
  border: 2px solid var(--c-bg-card);
  box-sizing: border-box;
}

.qdnapro-unit-card.view-list-compact .qdnapro-unit-card__mandatory-badge svg {
  width: 9px;
  height: 9px;
}

.qdnapro-unit-context {
  display: block;
}

.qdnapro-unit-context.is-empty {
  display: none;
}

.qdnapro-unit-context__bar {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  max-width: 200px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: background 120ms ease-out;
}

.qdnapro-unit-context__bar:hover {
  background: var(--c-grey-100);
}

.qdnapro-unit-context__bar:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--focus-glow);
  border-color: var(--focus-ring);
}

.qdnapro-unit-context__name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  font-weight: var(--fw-medium);
  color: var(--c-text-heading);
}

.qdnapro-unit-context__chevron {
  flex: none;
  display: inline-flex;
  align-items: center;
  color: var(--c-text-muted);
}

.qdnapro-unit-context__chevron svg {
  display: block;
}

.qdnapro-unit-context__overlay {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
}

.qdnapro-unit-context__overlay[hidden] {
  display: none;
}

.qdnapro-unit-context__backdrop {
  position: absolute;
  inset: 0;
  background: var(--c-black-30);
  opacity: 0;
  transition: opacity 240ms ease;
}

.qdnapro-unit-context__panel {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  background: var(--c-bg-card);
  clip-path: circle(0% at 100% 0%);
  transition: clip-path 340ms cubic-bezier(0.4, 0, 0.2, 1);
  will-change: clip-path;
}

.qdnapro-unit-context__overlay.is-open .qdnapro-unit-context__backdrop {
  opacity: 1;
}

.qdnapro-unit-context__overlay.is-open .qdnapro-unit-context__panel {
  clip-path: circle(150% at 100% 0%);
}

.qdnapro-unit-context__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s-3);
  padding: 18px var(--s-4) var(--s-3);
}

.qdnapro-unit-context__heading-wrap {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  flex-wrap: wrap;
}

.qdnapro-unit-context__title {
  font-size: 24px;
  font-weight: var(--fw-semi);
  color: var(--c-text-heading);
  line-height: 1.3;
}

.qdnapro-unit-context__subtitle {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: var(--r-pill);
  background: var(--c-bg-secondary-purple);
  font-size: 20px;
  font-weight: var(--fw-medium);
  color: var(--c-brand-purple);
}

.qdnapro-unit-context__subtitle.is-pulsing {
  animation: qdnapro-unit-context-count-pop 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes qdnapro-unit-context-count-pop {
  0% {
    transform: scale(1);
  }
  30% {
    transform: scale(1.18);
  }
  55% {
    transform: scale(0.94);
  }
  75% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}
.qdnapro-icon-btn.qdnapro-unit-context__close {
  flex: none;
  color: var(--c-text-muted);
}

.qdnapro-unit-context__hint {
  display: inline-flex;
  align-self: center;
  align-items: center;
  gap: 6px;
  margin: 0 var(--s-4) var(--s-2);
  padding: 4px 10px;
  border-radius: 6px;
  background: var(--c-bg-secondary-purple);
  color: var(--c-brand-purple);
  font-size: 14px;
  font-weight: var(--fw-medium);
  line-height: 1.3;
}

.qdnapro-unit-context__hint::before {
  content: "";
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  background-color: var(--c-brand-purple);
  -webkit-mask: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M11 9h2V7h-2m1 13c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m-1 15h2v-6h-2z'/%3E%3C/svg%3E");
  mask: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M11 9h2V7h-2m1 13c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m-1 15h2v-6h-2z'/%3E%3C/svg%3E");
}

.qdnapro-unit-context__search {
  padding: 0 var(--s-4) var(--s-3);
}

.qdnapro-unit-context__list {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 2px var(--s-3) var(--s-4);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.qdnapro-unit-context__list[hidden] {
  display: none;
}

.qdnapro-unit-context__empty {
  flex: 1;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 40px var(--s-4);
  color: var(--c-text-muted);
  font-size: 13px;
}

.qdnapro-unit-context__empty[hidden] {
  display: none;
}

@media (min-width: 640px) {
  .qdnapro-unit-context__overlay {
    align-items: center;
    justify-content: center;
    padding: var(--s-6);
  }
  .qdnapro-unit-context__panel {
    flex: none;
    width: 480px;
    max-width: 100%;
    max-height: 80vh;
    border-radius: var(--r-card);
    box-shadow: var(--shadow-card);
    overflow: hidden;
  }
}
.qdnapro-summary-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
  padding: 8px 16px;
  background: color-mix(in srgb, var(--theme-btn-color, #40499a) 10%, white);
  color: var(--theme-btn-color, #40499a);
  border-radius: var(--r-btn);
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}

qdnapro-pwa-main-menu-item,
.qdnapro-pwa-main-menu-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
qdnapro-pwa-main-menu-item .pmi-circle,
.qdnapro-pwa-main-menu-item .pmi-circle {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 120ms ease-out;
}
qdnapro-pwa-main-menu-item .pmi-circle qdnapro-activity-icon,
.qdnapro-pwa-main-menu-item .pmi-circle qdnapro-activity-icon {
  width: 36px;
  height: 36px;
  display: block;
}
qdnapro-pwa-main-menu-item:hover .pmi-circle,
qdnapro-pwa-main-menu-item .pmi-circle.force-hover,
.qdnapro-pwa-main-menu-item:hover .pmi-circle,
.qdnapro-pwa-main-menu-item .pmi-circle.force-hover {
  background: rgba(255, 255, 255, 0.25);
}
qdnapro-pwa-main-menu-item .pmi-circle.is-pressed,
qdnapro-pwa-main-menu-item .pmi-circle.force-pressed,
.qdnapro-pwa-main-menu-item .pmi-circle.is-pressed,
.qdnapro-pwa-main-menu-item .pmi-circle.force-pressed {
  background: rgba(255, 255, 255, 0.35);
}
qdnapro-pwa-main-menu-item .pmi-label,
.qdnapro-pwa-main-menu-item .pmi-label {
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: var(--c-text-on-action);
  text-align: center;
  line-height: 1.3;
  max-width: 72px;
  word-break: break-word;
}

.qdnapro-bottom-nav {
  --bn-height: 60px;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 100;
  display: flex;
  align-items: stretch;
  height: calc(var(--bn-height) + var(--qdna-inset-bottom, env(safe-area-inset-bottom, 0px)));
  padding-bottom: var(--qdna-inset-bottom, env(safe-area-inset-bottom, 0px));
  background: var(--c-brand-purple);
  border-top: none;
  box-shadow: 0 -2px 16px rgba(20, 25, 80, 0.18);
  box-sizing: border-box;
}
.qdnapro-bottom-nav *, .qdnapro-bottom-nav *::before, .qdnapro-bottom-nav *::after {
  box-sizing: border-box;
}
.qdnapro-bottom-nav {
  transition: transform 0.3s cubic-bezier(0.2, 0, 0, 1), opacity 0.22s ease;
}

.qdnapro-bottom-nav.nav-hidden {
  transform: translateY(calc(100% + 24px));
  opacity: 0;
  pointer-events: none;
}

.qdnapro-bottom-nav-btn {
  flex: 1 1 0;
  min-width: 0;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 8px 4px;
  background: transparent;
  border: none;
  border-radius: 0;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  color: var(--c-white-65);
  font-family: "Inter", sans-serif;
  text-decoration: none;
  transition: color 120ms ease-out;
}
.qdnapro-bottom-nav-btn__icon {
  width: 48px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  position: relative;
  transition: background-color 120ms ease-out, transform 100ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
.qdnapro-bottom-nav-btn__icon svg {
  width: 24px;
  height: 24px;
  fill: currentColor;
  stroke: none;
  pointer-events: none;
}
.qdnapro-bottom-nav-btn__svg-filled {
  display: none;
  position: absolute;
  width: 24px;
  height: 24px;
  fill: currentColor;
  stroke: none;
  pointer-events: none;
  clip-path: inset(0 100% 0 0);
}
.qdnapro-bottom-nav-btn__dot {
  position: absolute;
  bottom: 5px;
  left: 50%;
  transform: translateX(-50%);
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--c-text-on-action);
  opacity: 0;
  transition: opacity 150ms ease-out;
  pointer-events: none;
}
.qdnapro-bottom-nav-btn__label {
  display: none;
  font-size: 10px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.01em;
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.qdnapro-bottom-nav-btn [data-role=nav-badge] {
  position: absolute;
  top: 4px;
  right: calc(50% - 26px);
  z-index: 2;
  font-variant-numeric: tabular-nums;
  pointer-events: none;
}
.qdnapro-bottom-nav-btn [data-role=nav-dot] {
  position: absolute;
  top: 10px;
  right: calc(50% - 26px);
  z-index: 2;
  pointer-events: none;
}
.qdnapro-bottom-nav-btn.has-badge {
  z-index: 2;
}
@media (hover: hover) {
  .qdnapro-bottom-nav-btn:hover:not(.is-disabled):not(.is-fab) .qdnapro-bottom-nav-btn__icon {
    background: var(--c-white-12);
  }
}
.qdnapro-bottom-nav-btn:active:not(.is-disabled):not(.is-fab) .qdnapro-bottom-nav-btn__icon, .qdnapro-bottom-nav-btn.is-pressing:not(.is-disabled):not(.is-fab) .qdnapro-bottom-nav-btn__icon {
  background: var(--c-white-22);
  transform: scale(0.88);
}
.qdnapro-bottom-nav-btn.is-active {
  color: var(--c-text-on-action);
}
.qdnapro-bottom-nav-btn.is-active .qdnapro-bottom-nav-btn__icon {
  background: var(--c-white-22);
}
.qdnapro-bottom-nav-btn.is-active .qdnapro-bottom-nav-btn__dot {
  opacity: 1;
}
@media (hover: hover) {
  .qdnapro-bottom-nav-btn.is-active:hover:not(.is-disabled) .qdnapro-bottom-nav-btn__icon {
    background: var(--c-white-28);
  }
}
.qdnapro-bottom-nav-btn.is-active:active:not(.is-disabled) .qdnapro-bottom-nav-btn__icon, .qdnapro-bottom-nav-btn.is-active.is-pressing:not(.is-disabled) .qdnapro-bottom-nav-btn__icon {
  background: var(--c-white-22);
  transform: scale(0.88);
}
.qdnapro-bottom-nav-btn.is-disabled {
  color: var(--c-white-28);
  cursor: not-allowed;
  pointer-events: none;
  opacity: 0.45;
}
.qdnapro-bottom-nav-btn:focus {
  outline: none;
}
.qdnapro-bottom-nav-btn:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: -2px;
  border-radius: 4px;
}
.qdnapro-bottom-nav-btn.is-fab {
  overflow: visible;
}
.qdnapro-bottom-nav-btn.is-fab .qdnapro-bottom-nav-btn__icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--c-bg-card);
  color: var(--c-brand-purple);
  transform: translateY(-8px);
  box-shadow: 0 2px 8px rgba(20, 25, 80, 0.2), 0 6px 20px rgba(20, 25, 80, 0.14);
  transition: background-color 120ms ease-out, box-shadow 120ms ease-out, transform 150ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
.qdnapro-bottom-nav-btn.is-fab .qdnapro-bottom-nav-btn__icon svg {
  stroke-width: 2;
}
@media (hover: hover) {
  .qdnapro-bottom-nav-btn.is-fab:hover:not(.is-disabled) .qdnapro-bottom-nav-btn__icon {
    background: var(--c-white-90);
    transform: translateY(-12px);
    box-shadow: 0 4px 14px rgba(20, 25, 80, 0.28), 0 8px 28px rgba(20, 25, 80, 0.18);
  }
}
.qdnapro-bottom-nav-btn.is-fab:active:not(.is-disabled) .qdnapro-bottom-nav-btn__icon, .qdnapro-bottom-nav-btn.is-fab.is-pressing:not(.is-disabled) .qdnapro-bottom-nav-btn__icon {
  background: var(--c-white-85);
  transform: translateY(-4px) scale(0.93);
  box-shadow: 0 1px 4px rgba(20, 25, 80, 0.14), 0 2px 8px rgba(20, 25, 80, 0.1);
}
.qdnapro-bottom-nav-btn.is-fab.is-active {
  color: var(--c-white-65);
}
.qdnapro-bottom-nav-btn.is-fab.is-active .qdnapro-bottom-nav-btn__icon {
  background: #ffffff;
  color: var(--c-brand-purple);
}
.qdnapro-bottom-nav-btn.is-fab.is-active .qdnapro-bottom-nav-btn__dot {
  display: none;
}
.qdnapro-bottom-nav-btn.is-fab:focus-visible {
  outline-offset: 4px;
  border-radius: 50%;
}

.qdnapro-bottom-nav[variant=sliding-pill] {
  position: relative;
  user-select: none;
  cursor: grab;
}
.qdnapro-bottom-nav[variant=sliding-pill]:active {
  cursor: grabbing;
}
.qdnapro-bottom-nav[variant=sliding-pill] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__icon {
  background: transparent !important;
}
.qdnapro-bottom-nav[variant=sliding-pill] .qdnapro-bottom-nav-btn__dot {
  display: none;
}
.qdnapro-bottom-nav[variant=sliding-pill] .qdnapro-bottom-nav-btn.has-badge {
  z-index: 2;
}
.qdnapro-bottom-nav[variant=sliding-pill] qdnapro-bottom-nav-btn {
  position: relative;
  z-index: 0;
  cursor: inherit;
  color: var(--c-white-55) !important;
}
.qdnapro-bottom-nav[variant=sliding-pill] .qdnapro-bottom-nav__pill {
  position: absolute;
  top: calc((var(--bn-height) - 40px) / 2);
  left: 0;
  width: 48px;
  height: 40px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
  backdrop-filter: brightness(1.5);
  -webkit-backdrop-filter: brightness(1.5);
  border: 0.5px solid rgba(255, 255, 255, 0.12);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 2px 6px rgba(0, 0, 0, 0.1);
  transform: translateX(0);
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
  pointer-events: none;
  z-index: 1;
}

.qdnapro-bottom-nav[variant=floating-glass],
.qdnapro-bottom-nav[variant=floating-solid] {
  left: 16px;
  right: 16px;
  bottom: calc(20px + var(--qdna-inset-bottom, 0px) - var(--qdna-inset-ime, 0px));
  height: auto;
  padding: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(24px) saturate(1.5);
  -webkit-backdrop-filter: blur(24px) saturate(1.5);
  border: 1px solid rgba(255, 255, 255, 0.55);
  box-shadow: 0 8px 32px rgba(20, 25, 80, 0.16), 0 2px 8px rgba(20, 25, 80, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.75);
  user-select: none;
  cursor: grab;
  touch-action: none;
}
.qdnapro-bottom-nav[variant=floating-glass]:active,
.qdnapro-bottom-nav[variant=floating-solid]:active {
  cursor: grabbing;
}
.qdnapro-bottom-nav[variant=floating-glass]::after,
.qdnapro-bottom-nav[variant=floating-solid]::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 14px;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn {
  padding: 11px 4px;
  color: rgba(50, 55, 100, 0.45);
  position: relative;
  z-index: 0;
  cursor: inherit;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn.has-badge,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn.has-badge {
  z-index: 2;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__icon,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__icon {
  width: 44px;
  height: 40px;
  background: transparent !important;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__icon svg,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__icon svg {
  width: 28px;
  height: 28px;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__svg-filled,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__svg-filled {
  display: block;
  color: var(--c-brand-purple);
  width: 28px;
  height: 28px;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__label,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__label {
  display: none;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__dot,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__dot {
  display: none;
}
@media (hover: hover) {
  .qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn:hover:not(.is-disabled) .qdnapro-bottom-nav-btn__icon,
  .qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn:hover:not(.is-disabled) .qdnapro-bottom-nav-btn__icon {
    background: transparent !important;
  }
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn:active:not(.is-disabled) .qdnapro-bottom-nav-btn__icon, .qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn.is-pressing:not(.is-disabled) .qdnapro-bottom-nav-btn__icon,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn:active:not(.is-disabled) .qdnapro-bottom-nav-btn__icon,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn.is-pressing:not(.is-disabled) .qdnapro-bottom-nav-btn__icon {
  background: transparent !important;
  transform: scale(0.92);
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn.is-active,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn.is-active {
  color: var(--c-brand-purple);
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn.is-active .qdnapro-bottom-nav-btn__icon,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn.is-active .qdnapro-bottom-nav-btn__icon {
  background: transparent !important;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn[icon=plus-circle].is-active .qdnapro-bottom-nav-btn__icon,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn[icon=plus-circle].is-active .qdnapro-bottom-nav-btn__icon {
  position: relative;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn[icon=plus-circle].is-active .qdnapro-bottom-nav-btn__icon::before,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn[icon=plus-circle].is-active .qdnapro-bottom-nav-btn__icon::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 16px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: var(--c-bg-card);
  z-index: 0;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav-btn[icon=plus-circle].is-active .qdnapro-bottom-nav-btn__svg-filled,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn[icon=plus-circle].is-active .qdnapro-bottom-nav-btn__svg-filled {
  z-index: 1;
}
.qdnapro-bottom-nav[variant=floating-glass] .qdnapro-bottom-nav__pill,
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav__pill {
  position: absolute;
  top: calc(50% - 26px);
  left: 0;
  width: 68px;
  height: 52px;
  border-radius: 999px;
  background: rgba(64, 73, 154, 0.1);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: none;
  box-shadow: none;
  transform: translateX(0);
  transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
  pointer-events: none;
  z-index: 1;
}

.qdnapro-bottom-nav[variant=floating-solid] {
  background: var(--c-brand-purple);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: none;
  box-shadow: 0 8px 28px rgba(20, 25, 80, 0.28), 0 2px 8px rgba(20, 25, 80, 0.16);
}
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn {
  color: var(--c-white-65);
}
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn.is-active {
  color: #ffffff;
}
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav__pill {
  background: rgba(255, 255, 255, 0.18);
}
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn .qdnapro-bottom-nav-btn__svg-filled {
  display: none;
}
.qdnapro-bottom-nav[variant=floating-solid] .qdnapro-bottom-nav-btn[icon=plus-circle].is-active .qdnapro-bottom-nav-btn__icon::before {
  display: none;
}

@keyframes qdnapro-slide-in-right {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
@keyframes qdnapro-slide-in-left {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
@keyframes qdnapro-slide-out-left {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(-30%);
    opacity: 0;
  }
}
@keyframes qdnapro-slide-out-right {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(30%);
    opacity: 0;
  }
}
.qdnapro-page-stack {
  position: relative;
  overflow: hidden;
}

.qdnapro-page {
  will-change: transform, opacity;
}

.qdnapro-page--enter-fwd {
  animation: qdnapro-slide-in-right 280ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.qdnapro-page--leave-fwd {
  position: absolute !important;
  inset: 0;
  animation: qdnapro-slide-out-left 240ms cubic-bezier(0.4, 0, 0.8, 0.6) both;
  pointer-events: none;
}

.qdnapro-page--enter-bwd {
  animation: qdnapro-slide-in-left 280ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.qdnapro-page--leave-bwd {
  position: absolute !important;
  inset: 0;
  animation: qdnapro-slide-out-right 240ms cubic-bezier(0.4, 0, 0.8, 0.6) both;
  pointer-events: none;
}

/* compiled from _pull-refresh.scss */
.qdnapro-pull-refresh {
  --pr-max-pull: 96px;
  --pr-bg: transparent;
  --pr-color: #40499a;
  --pr-label-color: #6e7280;
  --pr-label-size: 13px;
  --pr-spinner-size: 22px;
  --pr-spinner-width: 2px;
  --pr-distance: 0px;
  --pr-progress: 0;
  display: block;
  /* ⚠️ Functioneel, net als de overflow hierboven. De zone is bijna altijd een
     kind van de scrollende bak, en die is op de meeste schermen een FLEX-KOLOM
     (.qdna-content--page). Een flex-item mag standaard krimpen, dus de inhoud
     eronder drukt de zone terug naar 0 px: het gebaar werkt dan wél — de klassen
     lopen netjes door pr-pulling/pr-ready/pr-busy — maar je ziet en voelt niets.
     Gemeten op Pulse 20.08.2026: --pr-distance stond op 80px, de computed height
     op 0px. Op het startscherm viel dit nooit op, want .home_view__panel is een
     gewone blok-container. */
  flex-shrink: 0;
  overflow: hidden;
  height: var(--pr-distance);
  max-height: var(--pr-max-pull);
  background: var(--pr-bg);
  /* Terugveren als de vinger los is. Tijdens het trekken staat de overgang uit,
     anders loopt de zone achter de vinger aan. */
  transition: height 220ms ease;
}

.qdnapro-pull-refresh.pr-pulling,
.qdnapro-pull-refresh.pr-ready {
  transition: none;
}

.qdnapro-pull-refresh .pr-indicator {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 100%;
  min-height: var(--pr-spinner-size);
  opacity: var(--pr-progress);
}

.qdnapro-pull-refresh .pr-spinner {
  width: var(--pr-spinner-size);
  height: var(--pr-spinner-size);
  border-radius: 50%;
  border: var(--pr-spinner-width) solid var(--pr-color);
  border-top-color: transparent;
  /* Meedraaien met de vinger: één hele slag over de volledige trekafstand. */
  transform: rotate(calc(var(--pr-progress) * 360deg));
}

.qdnapro-pull-refresh.pr-ready .pr-spinner {
  /* Ver genoeg: het rondje staat stil en vol, als bevestiging dat loslaten werkt. */
  border-top-color: var(--pr-color);
}

.qdnapro-pull-refresh.pr-busy .pr-indicator {
  opacity: 1;
}

.qdnapro-pull-refresh.pr-busy .pr-spinner {
  animation: qdnapro-pull-refresh-spin 900ms linear infinite;
}

.qdnapro-pull-refresh .pr-label {
  color: var(--pr-label-color);
  font-size: var(--pr-label-size);
  line-height: 1;
  white-space: nowrap;
}

@keyframes qdnapro-pull-refresh-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .qdnapro-pull-refresh {
    transition: none;
  }
  .qdnapro-pull-refresh .pr-spinner {
    animation: none;
    transform: none;
  }
}
.qdnapro-tab-bar {
  --tb-pill-duration: 220ms;
  --tb-track-bg: var(--c-grey-50);
  --tb-pill-bg: var(--c-bg-card);
  display: flex;
  align-items: center;
  position: relative;
  width: 100%;
  box-sizing: border-box;
  padding: var(--s-1);
  gap: 2px;
  background: var(--tb-track-bg);
  border-radius: var(--r-4);
  font-family: var(--ff);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-tab-bar {
    --tb-pill-duration: 0ms;
  }
}
.qdnapro-tab-bar__pill {
  position: absolute;
  top: var(--s-1);
  left: 0;
  bottom: var(--s-1);
  width: 0;
  transform: translateX(0);
  background: var(--tb-pill-bg);
  border-radius: var(--r-3);
  box-shadow: var(--shadow-card);
  pointer-events: none;
  z-index: 0;
  opacity: 0;
  transition: transform var(--tb-pill-duration) cubic-bezier(0.05, 0.7, 0.1, 1), width var(--tb-pill-duration) cubic-bezier(0.05, 0.7, 0.1, 1), opacity 120ms ease;
}

.qdnapro-tab-bar-item {
  position: relative;
  z-index: 1;
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 44px;
  padding: 0 var(--s-2);
  box-sizing: border-box;
  border-radius: var(--r-3);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  background: transparent;
  transition: color 150ms ease;
}

.qdnapro-tab-bar-item__label {
  font-size: 14px;
  font-weight: var(--fw-medium);
  line-height: 1.2;
  color: var(--c-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color 150ms ease, font-weight 150ms ease;
}

.qdnapro-tab-bar-item.is-active .qdnapro-tab-bar-item__label {
  color: var(--c-brand-purple);
  font-weight: var(--fw-semi);
}

.qdnapro-tab-bar-item:not(.is-active):hover .qdnapro-tab-bar-item__label {
  color: var(--c-text-body);
}

.qdnapro-tab-bar-item:focus-visible {
  box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 4px var(--focus-glow);
}

.qdnapro-tab-bar-item__badge {
  flex-shrink: 0;
}

[data-theme-dark] .qdnapro-tab-bar,
[data-theme=dark] .qdnapro-tab-bar,
body[data-theme=dark] .qdnapro-tab-bar {
  --tb-track-bg: var(--c-grey-800);
  --tb-pill-bg: var(--c-grey-900);
}

.qdnapro-app-header {
  --qah-bg: var(--c-bg-card, #ffffff);
  --qah-fg: var(--c-text-heading, #1a1f4d);
  --qah-subtitle-color: var(--c-text-muted, #6e7280);
  --qah-border-color: var(--c-border-soft, rgba(0, 0, 0, 0.07));
  --qah-height: 56px;
  --qah-selection-fg: var(--c-brand-purple, #40499a);
  display: block;
  width: 100%;
  background: var(--qah-bg);
  border-bottom: 1px solid var(--qah-border-color);
  padding-top: var(--qdna-inset-top, env(safe-area-inset-top, 0px));
  box-sizing: border-box;
}
.qdnapro-app-header *, .qdnapro-app-header *::before, .qdnapro-app-header *::after {
  box-sizing: border-box;
}

.qdnapro-app-header.qah-variant-transparent {
  --qah-bg: transparent;
  --qah-border-color: transparent;
}

.qah-row {
  display: flex;
  align-items: center;
  min-height: var(--qah-height);
  gap: 8px;
  padding: 4px 12px;
}

.qah-back {
  flex: 0 0 auto;
}
.qah-back[hidden] {
  display: none;
}

.qah-title-cluster {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.qah-titles {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.qah-avatar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
}
.qah-avatar:empty {
  display: none;
}

.qah-title {
  color: var(--qah-fg);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qah-title:empty {
  display: none;
}

.qah-subtitle {
  color: var(--qah-subtitle-color);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qah-subtitle:empty {
  display: none;
}

.qah-leading [hidden],
.qah-search [hidden],
.qah-actions [hidden],
.qah-nova [hidden] {
  display: none;
}

.qah-leading {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 4px;
}
.qah-leading:empty {
  display: none;
}

.qah-search {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.qah-search:empty {
  display: none;
}
.qah-search > * {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

.qah-row:has(.qah-search:not(:empty)) .qah-title-cluster {
  flex: 0 1 auto;
}

.qdnapro-app-header.qah-align-start {
  --qah-search-gutter: 32px;
}

@media (min-width: 1024px) {
  .qdnapro-app-header.qah-align-start .qah-row:has(.qah-search:not(:empty)) {
    position: relative;
  }
  .qdnapro-app-header.qah-align-start .qah-row:has(.qah-search:not(:empty)) .qah-search {
    position: absolute;
    top: 50%;
    left: var(--qah-search-gutter);
    right: var(--qah-search-gutter);
    transform: translateY(-50%);
  }
  .qdnapro-app-header.qah-align-start .qah-row:has(.qah-search:not(:empty)) .qah-title-cluster {
    max-width: 140px;
  }
  .qdnapro-app-header.qah-align-start .qah-row:has(.qah-search:not(:empty)) .qah-actions,
  .qdnapro-app-header.qah-align-start .qah-row:has(.qah-search:not(:empty)) .qah-nova {
    margin-left: auto;
  }
}
@media (min-width: 1280px) {
  .qdnapro-app-header.qah-align-start .qah-row:has(.qah-search:not(:empty)) .qah-title-cluster {
    max-width: 260px;
  }
}
@media (min-width: 1440px) {
  .qdnapro-app-header.qah-align-start .qah-row:has(.qah-search:not(:empty)) .qah-title-cluster {
    max-width: 340px;
  }
}
.qah-actions,
.qah-nova {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 4px;
}
.qah-actions:empty,
.qah-nova:empty {
  display: none;
}

.qah-context:empty {
  display: none;
}

.qah-cancel {
  flex: 0 0 auto;
  display: none;
}

.qah-selection-count {
  flex: 1 1 auto;
  min-width: 0;
  display: none;
  color: var(--qah-selection-fg);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qah-selection-actions {
  flex: 0 0 auto;
  display: none;
  align-items: center;
}

.qdnapro-app-header.qah-align-center {
  --qah-center-gutter: 60px;
}
.qdnapro-app-header.qah-align-center .qah-row {
  position: relative;
}
.qdnapro-app-header.qah-align-center .qah-actions,
.qdnapro-app-header.qah-align-center .qah-nova {
  margin-left: auto;
}
.qdnapro-app-header.qah-align-center .qah-title-cluster {
  position: absolute;
  top: 50%;
  left: var(--qah-center-gutter);
  right: var(--qah-center-gutter);
  transform: translateY(-50%);
  justify-content: center;
}
.qdnapro-app-header.qah-align-center .qah-titles {
  flex: 0 1 auto;
  text-align: center;
}
.qdnapro-app-header.qah-align-center .qah-title-cluster {
  pointer-events: none;
}
.qdnapro-app-header.qah-align-center .qah-titles,
.qdnapro-app-header.qah-align-center .qah-avatar {
  pointer-events: auto;
}

@media (min-width: 600px) {
  .qdnapro-app-header.qah-align-center {
    --qah-center-gutter: 76px;
  }
}
@media (min-width: 1024px) {
  .qdnapro-app-header.qah-align-center {
    --qah-center-gutter: 92px;
  }
}
.qdnapro-app-header.qah-mode-selection {
  --qah-bg: var(--c-bg-card, #ffffff);
  --qah-border-color: var(--c-border-soft, rgba(0, 0, 0, 0.07));
}
.qdnapro-app-header.qah-mode-selection .qah-back,
.qdnapro-app-header.qah-mode-selection .qah-title-cluster,
.qdnapro-app-header.qah-mode-selection .qah-leading,
.qdnapro-app-header.qah-mode-selection .qah-search,
.qdnapro-app-header.qah-mode-selection .qah-actions,
.qdnapro-app-header.qah-mode-selection .qah-nova {
  display: none;
}
.qdnapro-app-header.qah-mode-selection .qah-cancel {
  display: flex;
}
.qdnapro-app-header.qah-mode-selection .qah-selection-count {
  display: block;
}
.qdnapro-app-header.qah-mode-selection .qah-selection-actions {
  display: flex;
}

@media (min-width: 600px) {
  .qah-row {
    padding: 6px 20px;
    gap: 12px;
  }
  .qah-title {
    font-size: 19px;
  }
}
@media (min-width: 1024px) {
  .qah-row {
    padding: 8px 32px;
  }
}
.qdnapro-swipe-row {
  position: relative;
  display: block;
  overflow: hidden;
  /* Let the browser keep owning vertical scrolling at all times — the
     component's own axis-lock decides whether a given gesture is horizontal
     before it ever calls preventDefault. */
  touch-action: pan-y;
  isolation: isolate; /* keep the panel/content stacking local to this row */
}

/* Content layer — whatever the host slotted in, unmodified. Always painted
   with its own opaque background (default var(--c-bg-card)) so a
   transparent child never lets a button's background show through, even at
   rest (not just while .swiping is present). A consumer can retint this per
   instance via style="--qsr-content-bg: ...". */
.qdnapro-swipe-row .qsr-content {
  position: relative;
  z-index: 1;
  background: var(--qsr-content-bg, var(--c-bg-card));
  will-change: transform;
}

/* Action panels — anchored to the edge the content recedes FROM, sized to
   exactly the currently revealed width (set inline by the JS: resting width
   = sum of that side's button widths; grows to match the live drag distance
   once it exceeds that). Because the panel is never wider than what's
   actually exposed, the OUTERMOST button (flush against the true edge) is
   the very first thing a drag reveals — no dead full-row space to cross
   before anything becomes visible. */
.qdnapro-swipe-row .qsr-panel {
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 0;
  display: flex;
  align-items: stretch;
  overflow: hidden;
}

.qdnapro-swipe-row .qsr-panel-left {
  right: 0;
  justify-content: flex-end; /* group flush against the true right edge */
}

.qdnapro-swipe-row .qsr-panel-right {
  left: 0;
  justify-content: flex-start; /* group flush against the true left edge */
}

.qdnapro-swipe-row .qsr-panel-empty {
  width: 0 !important;
}

/* Each button is a REAL <button>, owning its own fixed-width box — icon and
   label sit INSIDE that box, never centered on the row. This is the whole
   point of the redesign. Stretches to the row's full height (comfortably
   over the 44px minimum tappable target on any real row). Buttons are only
   in the tab order / reachable by AT while their side is open — see the
   tabindex/aria-hidden handling in the JS. */
.qdnapro-swipe-row .qsr-panel-btn {
  flex: 0 0 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  border: 0;
  padding: 0;
  background: none; /* colour comes from the .qsr-color-* modifier below */
  color: var(--c-text-on-action);
  font-family: var(--ff, "Inter", sans-serif);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: flex-basis 0.2s cubic-bezier(0.4, 0, 0.2, 1), flex-grow 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.15s ease;
}

.qdnapro-swipe-row .qsr-panel-btn:focus-visible {
  outline: 2px solid var(--c-text-on-action);
  outline-offset: -3px;
}

.qdnapro-swipe-row .qsr-panel-label {
  font-size: 12px;
  font-weight: 500;
  line-height: 1.3;
  white-space: nowrap;
}

/* Icon grows slightly once the drag crosses the commit threshold, so the
   user can feel the commit point before releasing. */
.qdnapro-swipe-row .qsr-panel-icon {
  transition: transform 0.15s ease;
}

.qdnapro-swipe-row.qsr-committing .qsr-panel-icon {
  transform: scale(1.16);
}

/* Stage 2 — commit: past the `threshold` drag distance, the secondary
   button(s) on the ACTIVE side collapse away and the MAIN button (the
   outermost / last-configured entry) expands to fill the whole revealed
   width, so releasing here fires it immediately without a tap. Scoped to
   the currently dragging direction so the idle side is never affected. */
.qdnapro-swipe-row.qsr-committing.qsr-dir-left .qsr-panel-left .qsr-panel-btn:not(.qsr-btn-main) {
  flex: 0 0 0;
  opacity: 0;
  pointer-events: none;
}

.qdnapro-swipe-row.qsr-committing.qsr-dir-right .qsr-panel-right .qsr-panel-btn:not(.qsr-btn-main) {
  flex: 0 0 0;
  opacity: 0;
  pointer-events: none;
}

.qdnapro-swipe-row.qsr-committing.qsr-dir-left .qsr-panel-left .qsr-btn-main,
.qdnapro-swipe-row.qsr-committing.qsr-dir-right .qsr-panel-right .qsr-btn-main {
  flex: 1 1 auto;
}

/* Colour vocabulary — a small named set, mapped to FIXED primitives (not the
   lifted --c-brand-purple) so a button reads the exact same accent in light
   and dark mode, same convention as qdnapro-bottom-sheet's purple variant
   (--c-purple-500, deliberately not --c-brand-purple). "yellow" is new
   (29.07.2026, flagging) and maps to the existing warn/flag ramp token
   --c-warn-yellow-500 — paired with --c-signal-yellow-text for the label,
   since white text on that particular yellow fails contrast (same pairing
   qdnapro-answer-button and qdnapro-score-scale already use for warning
   yellow). Never a raw hex. */
.qdnapro-swipe-row .qsr-color-purple {
  background: var(--c-purple-500);
}

.qdnapro-swipe-row .qsr-color-grey {
  background: var(--c-grey-500);
}

.qdnapro-swipe-row .qsr-color-red {
  background: var(--c-warn-red-500);
}

.qdnapro-swipe-row .qsr-color-green {
  background: var(--c-success-bright);
}

.qdnapro-swipe-row .qsr-color-yellow {
  background: var(--c-warn-yellow-500);
  color: var(--c-signal-yellow-text, #bf7202);
}

/* prefers-reduced-motion: no bounce/scale/collapse-animation — the JS itself
   switches every settle/dismiss transition to instant (transition: none)
   inline; these rules are the CSS-driven backstop for the transitions that
   aren't inline (the icon's commit-scale, and the button collapse/expand
   above), so they jump instead of easing. */
@media (prefers-reduced-motion: reduce) {
  .qdnapro-swipe-row .qsr-panel-icon,
  .qdnapro-swipe-row .qsr-panel-btn {
    transition: none;
  }
}
.qdnapro-list-row {
  --qlr-bg-hover: var(--c-bg-subtle-hover, #f5f6f8);
  --qlr-bg-pressed: var(--c-purple-soft-12, rgba(64, 73, 154, 0.12));
  --qlr-border: var(--c-border-soft, rgba(0, 0, 0, 0.07));
  --qlr-title-color: var(--c-text-heading, #1a1f4d);
  --qlr-subtitle-color: var(--c-text-muted, #6e7280);
  --qlr-chevron-color: var(--c-text-muted, #6e7280);
  --qlr-focus-ring: var(--c-brand-purple, #40499a);
  --qlr-focus-glow: var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
  --qlr-bare-icon-color: var(--c-brand-purple, #40499a);
  --qlr-warning-color: var(--c-warn-amber-500, #d97706);
  --qlr-warning-color-hover: var(--c-warn-amber-600, #b45309);
  --qlr-warning-bg-hover: var(--c-signal-orange-bg, #fdeadc);
  --qlr-mark-bg: var(--c-signal-yellow-bg, #feedb8);
  --qlr-mark-color: var(--c-text-heading);
  --qlr-bg-selected: var(--c-purple-soft-12, rgba(64, 73, 154, 0.12));
  --qlr-bg-selected-hover: var(--c-purple-soft-18, rgba(64, 73, 154, 0.18));
  --qlr-depth: 0;
  --qlr-depth-step: 20px;
  --qlr-toggle-duration: 180ms;
  display: flex;
  align-items: center;
  gap: 12px;
  box-sizing: border-box;
  width: 100%;
  min-height: 44px;
}
.qdnapro-list-row[hidden] {
  display: none;
}
.qdnapro-list-row {
  padding: 8px 16px;
  padding-left: calc(16px + var(--qlr-depth) * var(--qlr-depth-step));
  background: transparent;
  color: var(--qlr-title-color);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  font-family: inherit;
  border: 0 solid transparent;
  transition: background-color 100ms ease-out;
}
.qdnapro-list-row:hover:not(.qlr-disabled) {
  background: var(--qlr-bg-hover);
}
.qdnapro-list-row.is-pressed:not(.qlr-disabled) {
  background: var(--qlr-bg-pressed);
}
.qdnapro-list-row:focus {
  outline: none;
}
.qdnapro-list-row:focus-visible, .qdnapro-list-row.force-focus {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--qlr-focus-ring), inset 0 0 0 5px var(--qlr-focus-glow);
}
.qdnapro-list-row.qlr-disabled {
  opacity: 0.5;
  cursor: default;
  pointer-events: none;
}
.qdnapro-list-row.qlr-static {
  cursor: default;
}
.qdnapro-list-row.qlr-static:hover {
  background: transparent;
}
.qdnapro-list-row.qlr-static.is-pressed {
  background: transparent;
}
.qdnapro-list-row.qlr-static:focus-visible {
  outline: none;
  box-shadow: none;
}
.qdnapro-list-row.force-hover {
  background: var(--qlr-bg-hover);
}
.qdnapro-list-row.force-pressed {
  background: var(--qlr-bg-pressed);
}
.qdnapro-list-row.qlr-selected:not(.qlr-disabled) {
  background: var(--qlr-bg-selected);
}
.qdnapro-list-row.qlr-selected:hover:not(.qlr-disabled) {
  background: var(--qlr-bg-selected-hover);
}
.qdnapro-list-row.qlr-tone-danger {
  --qlr-title-color: var(--c-signal-red-text, #c65a5a);
  --qlr-subtitle-color: var(--c-signal-red-text, #c65a5a);
  --qlr-chevron-color: var(--c-signal-red-text, #c65a5a);
  --qlr-bare-icon-color: var(--c-signal-red-text, #c65a5a);
}
.qdnapro-list-row.qlr-tone-muted {
  --qlr-title-color: var(--c-text-muted, #6e7280);
  --qlr-subtitle-color: var(--c-text-muted, #6e7280);
  --qlr-chevron-color: var(--c-text-muted, #6e7280);
  --qlr-bare-icon-color: var(--c-text-muted, #6e7280);
}

.qdnapro-list-row.qlr-surface-on-purple,
.qdnapro-list-row-group--on-purple .qdnapro-list-row {
  --qlr-bg-hover: var(--c-white-10, rgba(255, 255, 255, 0.10));
  --qlr-bg-pressed: var(--c-white-22, rgba(255, 255, 255, 0.22));
  --qlr-bg-selected: var(--c-white-22, rgba(255, 255, 255, 0.22));
  --qlr-bg-selected-hover: var(--c-white-28, rgba(255, 255, 255, 0.28));
  --qlr-border: var(--c-white-14, rgba(255, 255, 255, 0.14));
  --qlr-title-color: var(--c-text-on-action, #ffffff);
  --qlr-subtitle-color: var(--c-white-70, rgba(255, 255, 255, 0.70));
  --qlr-chevron-color: var(--c-white-70, rgba(255, 255, 255, 0.70));
  --qlr-bare-icon-color: var(--c-text-on-action, #ffffff);
  --qlr-focus-ring: var(--c-text-on-action, #ffffff);
  --qlr-warning-color: var(--c-text-on-action, #ffffff);
  --qlr-warning-color-hover: var(--c-text-on-action, #ffffff);
  --qlr-warning-bg-hover: var(--c-white-22, rgba(255, 255, 255, 0.22));
  --qlr-focus-glow: var(--c-white-22, rgba(255, 255, 255, 0.22));
}

[data-theme=dark] .qdnapro-list-row.qlr-tone-danger {
  --qlr-title-color: var(--c-warn-red-400, #f87171);
  --qlr-subtitle-color: var(--c-warn-red-400, #f87171);
  --qlr-chevron-color: var(--c-warn-red-400, #f87171);
  --qlr-bare-icon-color: var(--c-warn-red-400, #f87171);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-list-row {
    --qlr-toggle-duration: 0ms;
  }
}
.qlr-lead {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 0 0 auto;
}

.qlr-expand-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: var(--r-row, 12px);
  color: var(--qlr-chevron-color);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 100ms ease-out;
}
.qlr-expand-toggle:hover {
  background: var(--qlr-bg-hover);
}
.qlr-expand-toggle:active {
  background: var(--qlr-bg-pressed);
}
.qlr-expand-toggle:focus {
  outline: none;
}
.qlr-expand-toggle:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--qlr-focus-ring), inset 0 0 0 4px var(--qlr-focus-glow);
}

.qlr-expand-chevron {
  width: 18px;
  height: 18px;
  transition: transform var(--qlr-toggle-duration) ease;
}

.qdnapro-list-row.qlr-expanded .qlr-expand-chevron {
  transform: rotate(90deg);
}

.qlr-tile {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: var(--r-row, 12px);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--qlr-tile-bg, var(--c-purple-soft-12, rgba(64, 73, 154, 0.12)));
  color: var(--qlr-tile-fg, var(--c-brand-purple, #40499a));
}

.qlr-tile-icon {
  width: 22px;
  height: 22px;
}

.qlr-tile-activity {
  flex: 0 0 auto;
}

.qlr-tile-color-purple {
  --qlr-tile-bg: var(--c-chip-purple-bg);
  --qlr-tile-fg: var(--c-brand-purple, #40499a);
}

.qlr-tile-color-grey {
  --qlr-tile-bg: var(--c-grey-50);
  --qlr-tile-fg: var(--c-grey-600, #565b66);
}

.qlr-tile-color-red {
  --qlr-tile-bg: var(--c-signal-red-bg);
  --qlr-tile-fg: var(--c-signal-red-text, #c65a5a);
}

.qlr-tile-color-yellow {
  --qlr-tile-bg: var(--c-chip-yellow-bg);
  --qlr-tile-fg: var(--c-signal-yellow-text, #bf7202);
}

.qlr-tile-color-green {
  --qlr-tile-bg: var(--c-chip-green-bg);
  --qlr-tile-fg: var(--c-signal-green-text, #428b6e);
}

.qlr-tile-color-blue {
  --qlr-tile-bg: var(--c-signal-blue-bg);
  --qlr-tile-fg: var(--c-signal-blue-text, #6a8ab4);
}

.qlr-tile-color-bright-blue {
  --qlr-tile-bg: var(--c-chip-bright-blue-2-bg);
  --qlr-tile-fg: var(--c-purple-400);
}

.qlr-tile-color-pink {
  --qlr-tile-bg: var(--c-signal-pink-bg);
  --qlr-tile-fg: var(--c-signal-pink-text, #b25777);
}

[data-theme=dark] .qlr-tile-color-purple {
  --qlr-tile-bg: #3a3555;
  --qlr-tile-fg: var(--c-purple-200, #a5acff);
}

[data-theme=dark] .qlr-tile-color-grey {
  --qlr-tile-bg: #40444d;
  --qlr-tile-fg: var(--c-grey-300, #c4c7cc);
}

[data-theme=dark] .qlr-tile-color-red {
  --qlr-tile-bg: #5a2b2b;
  --qlr-tile-fg: var(--c-warn-red-400, #f87171);
}

[data-theme=dark] .qlr-tile-color-yellow {
  --qlr-tile-bg: #5a4d1f;
  --qlr-tile-fg: var(--c-warn-yellow-500, #fbbf24);
}

[data-theme=dark] .qlr-tile-color-green {
  --qlr-tile-bg: #2a5544;
  --qlr-tile-fg: #7fe0bc;
}

[data-theme=dark] .qlr-tile-color-blue {
  --qlr-tile-bg: #2e3e54;
  --qlr-tile-fg: #8fb4e0;
}

[data-theme=dark] .qlr-tile-color-bright-blue {
  --qlr-tile-bg: #3a4a8a;
  --qlr-tile-fg: #b9c8f5;
}

[data-theme=dark] .qlr-tile-color-pink {
  --qlr-tile-bg: #4e2a36;
  --qlr-tile-fg: #e4a0b8;
}

.qdnapro-list-row.qlr-tile-none .qlr-tile, .qdnapro-list-row.qlr-tile-none.qlr-size-compact .qlr-tile {
  width: auto;
  height: auto;
  background: none;
  border-radius: 0;
  color: var(--qlr-bare-icon-color);
}
.qdnapro-list-row.qlr-tile-none .qlr-tile-icon {
  width: 24px;
  height: 24px;
}
.qdnapro-list-row.qlr-tile-none.qlr-size-compact .qlr-tile-icon {
  width: 20px;
  height: 20px;
}

.qlr-body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
}

.qlr-title {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--qlr-title-color);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qlr-subtitle {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  color: var(--qlr-subtitle-color);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qlr-title mark {
  background: var(--qlr-mark-bg);
  color: var(--qlr-mark-color);
  font: inherit;
  border-radius: 2px;
  padding: 0 1px;
}

.qlr-subtitle mark {
  background: var(--qlr-mark-bg);
  color: var(--qlr-mark-color);
  font: inherit;
  border-radius: 2px;
  padding: 0 1px;
}

.qdnapro-list-row.qlr-wrap {
  --qlr-wrap-max-width: 60ch;
  align-items: flex-start;
}
.qdnapro-list-row.qlr-wrap .qlr-body {
  justify-content: flex-start;
  max-width: var(--qlr-wrap-max-width);
}
.qdnapro-list-row.qlr-wrap .qlr-subtitle {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  line-height: 1.45;
}
.qdnapro-list-row.qlr-wrap .qlr-trailing {
  margin-left: auto;
}
.qdnapro-list-row.qlr-wrap .qlr-warning {
  margin-left: auto;
}
.qdnapro-list-row.qlr-wrap .qlr-warning ~ .qlr-trailing {
  margin-left: 0;
}

.qlr-trailing {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 4px;
}
.qlr-trailing:empty {
  display: none;
}

.qlr-slot-wrap {
  display: contents;
}

.qlr-chevron {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  color: var(--qlr-chevron-color);
}

.qlr-warning {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--qlr-warning-color);
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease;
}

.qlr-warning:hover {
  background: var(--qlr-warning-bg-hover);
  color: var(--qlr-warning-color-hover);
}

.qlr-warning:focus-visible {
  outline: 2px solid var(--qlr-focus-ring);
  outline-offset: 2px;
}

.qlr-warning-icon {
  width: 20px;
  height: 20px;
}

.qdnapro-list-row.qlr-size-compact {
  --qlr-depth-step: 16px;
  min-height: 36px;
  padding: 6px 12px;
  padding-left: calc(12px + var(--qlr-depth) * var(--qlr-depth-step));
  gap: 8px;
}
.qdnapro-list-row.qlr-size-compact .qlr-tile {
  width: 28px;
  height: 28px;
  border-radius: var(--r-2, 8px);
}
.qdnapro-list-row.qlr-size-compact .qlr-tile-icon {
  width: 18px;
  height: 18px;
}
.qdnapro-list-row.qlr-size-compact .qlr-title {
  font-size: 13px;
}
.qdnapro-list-row.qlr-size-compact .qlr-subtitle {
  font-size: 11px;
}
.qdnapro-list-row.qlr-size-compact .qlr-expand-toggle {
  width: 32px;
  height: 32px;
}
.qdnapro-list-row.qlr-size-compact .qlr-expand-chevron {
  width: 16px;
  height: 16px;
}
.qdnapro-list-row.qlr-size-compact .qlr-chevron {
  width: 18px;
  height: 18px;
}
.qdnapro-list-row.qlr-size-compact .qlr-warning {
  width: 24px;
  height: 24px;
}
.qdnapro-list-row.qlr-size-compact .qlr-warning-icon {
  width: 18px;
  height: 18px;
}
.qdnapro-list-row.qlr-size-compact .qlr-grip {
  width: 18px;
  height: 32px;
}
.qdnapro-list-row.qlr-size-compact .qlr-grip-icon {
  width: 16px;
  height: 16px;
}

.qlr-grip {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 20px;
  height: 40px;
  color: var(--qlr-chevron-color);
  cursor: grab;
  -webkit-tap-highlight-color: transparent;
  transition: color 100ms ease-out;
}

.qdnapro-list-row:hover .qlr-grip {
  color: var(--qlr-title-color);
}

.qlr-grip-icon {
  width: 18px;
  height: 18px;
}

qdnapro-list-row[dragging] {
  opacity: 0.35;
}
qdnapro-list-row[dragging] .qlr-grip {
  cursor: grabbing;
}

qdnapro-list-row[drop-above] {
  box-shadow: inset 0 3px 0 0 var(--qlr-focus-ring);
}

qdnapro-list-row[drop-below] {
  box-shadow: inset 0 -3px 0 0 var(--qlr-focus-ring);
}

.qdnapro-list-row-group {
  background: var(--c-bg-card, #ffffff);
  border-radius: var(--r-card, 16px);
  overflow: hidden;
}
.qdnapro-list-row-group .qdnapro-list-row:not(:last-child) {
  border-bottom: 1px solid var(--qlr-border, var(--c-border-soft, rgba(0, 0, 0, 0.07)));
}

.qdnapro-list-row-group--on-purple {
  background: var(--c-white-14, rgba(255, 255, 255, 0.14));
}

qdnapro-section-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  box-sizing: border-box;
  padding: 0;
  background: var(--c-bg-card, #ffffff);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--shadow-card, 0 1px 2px rgba(20, 25, 80, 0.04), 0 4px 16px rgba(20, 25, 80, 0.04));
}
qdnapro-section-card .qsc-head {
  order: -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 20px 20px 0;
  margin-bottom: 12px;
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--c-bg-card, #ffffff);
}
qdnapro-section-card .qsc-title {
  font-family: "Inter", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--c-text-heading, #1a1f4d);
  min-width: 0;
}
qdnapro-section-card .qsc-subtitle {
  padding: 0 20px;
  margin-bottom: 12px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.45;
  color: var(--c-text-muted, #6e7280);
  max-width: var(--qsc-subtitle-max-width, 62ch);
}
qdnapro-section-card.qsc-size-compact .qsc-head {
  padding: 16px 16px 0;
}
qdnapro-section-card.qsc-size-compact .qsc-title {
  font-size: 17px;
  font-weight: 600;
}
qdnapro-section-card.qsc-size-compact .qsc-subtitle {
  padding: 0 16px;
  font-size: 13px;
}
qdnapro-section-card.qsc-size-compact .qsc-icon {
  font-size: 20px;
}
qdnapro-section-card.qsc-size-compact .qsc-empty {
  padding: 0 16px 16px;
}
qdnapro-section-card.qsc-has-subtitle .qsc-head {
  margin-bottom: 4px;
}
qdnapro-section-card .qsc-icon {
  flex-shrink: 0;
  font-size: 28px;
}
qdnapro-section-card .qsc-icon-color-heading {
  color: var(--c-text-heading, #1a1f4d);
}
qdnapro-section-card .qsc-icon-color-heart {
  color: var(--c-favorite-heart, #ff4d6a);
}
qdnapro-section-card .qsc-icon-color-purple {
  color: var(--c-purple-500, #40499a);
}
qdnapro-section-card .qsc-icon-color-grey {
  color: var(--c-text-muted, #6e7280);
}
qdnapro-section-card .qsc-empty {
  padding: 0 20px 20px;
  font-size: 14px;
  color: var(--c-text-muted, #6e7280);
}
qdnapro-section-card > :not(.qsc-head):not(.qsc-empty):not(.qsc-subtitle) + :not(.qsc-head):not(.qsc-empty):not(.qsc-subtitle) {
  border-top: 1px solid var(--c-grey-100, #e7e9ec);
}

.qdnapro-search-overlay {
  display: contents;
}

qdnapro-search-overlay:not(:defined) {
  display: none;
}

.qso-overlay {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
}

.qso-overlay[hidden] {
  display: none;
}

.qso-backdrop {
  position: absolute;
  inset: 0;
  background: var(--c-black-30);
  opacity: 0;
  --qso-duration: 200ms;
  transition: opacity var(--qso-duration) ease;
}

.qso-panel {
  position: relative;
  flex: 1;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: var(--c-bg-card);
  padding-top: env(safe-area-inset-top, 0px);
  opacity: 0;
  transform: translateY(-8px) scale(0.98);
  --qso-duration: 200ms;
  transition: opacity var(--qso-duration) ease, transform var(--qso-duration) cubic-bezier(0.4, 0, 0.2, 1);
  will-change: opacity, transform;
}

.qso-overlay.is-open .qso-backdrop {
  opacity: 1;
}

.qso-overlay.is-open .qso-panel {
  opacity: 1;
  transform: translateY(0) scale(1);
}

@media (prefers-reduced-motion: reduce) {
  .qso-backdrop,
  .qso-panel {
    --qso-duration: 0ms;
  }
}
.qso-header {
  flex: none;
  display: flex;
  align-items: center;
  gap: var(--s-3);
  padding: var(--s-4) var(--s-4) var(--s-2);
  box-sizing: border-box;
}

.qso-field {
  flex: 1;
  min-width: 0;
}

.qso-cancel {
  flex: none;
}

.qso-nova {
  flex: none;
  padding: 0 var(--s-4) var(--s-2);
}

.qso-nova:empty {
  display: none;
}

.qso-body {
  min-width: 0;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0 0 var(--s-4);
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}

.qso-recents[hidden] {
  display: none;
}

.qso-recents-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-2);
  padding: var(--s-3) var(--s-2) var(--s-1);
}

.qso-recents-heading {
  font-size: 12px;
  font-weight: var(--fw-medium);
  color: var(--c-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding-left: var(--s-4);
  padding-right: var(--s-4);
}

.qso-recents-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.qso-results-list[hidden] {
  display: none;
}

.qso-results-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.qso-section-heading {
  padding: var(--s-3) var(--s-4) var(--s-1);
  font-size: 14px;
  font-weight: var(--fw-medium);
  color: var(--c-text-heading);
}

.qso-empty[hidden] {
  display: none;
}

.qso-empty {
  flex: 1;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: var(--s-8) var(--s-4);
  color: var(--c-text-muted);
  font-size: 14px;
  line-height: 1.5;
  text-align: center;
}

.qso-more-row {
  --qlr-title-color: var(--c-purple-highlight);
  --qlr-chevron-color: var(--c-purple-highlight);
}

@media (min-width: 640px) {
  .qso-overlay {
    align-items: center;
    justify-content: center;
    padding: var(--s-6);
  }
  .qso-panel {
    flex: none;
    width: 520px;
    max-width: 100%;
    max-height: 80vh;
    padding-top: 0;
    border-radius: var(--r-card);
    box-shadow: var(--shadow-card);
    overflow: hidden;
  }
}
.qso-overlay.qso-mode-dropdown {
  position: fixed;
  inset: auto;
  left: 0;
  top: 0;
  padding: 0;
  display: block;
}

.qso-overlay.qso-mode-dropdown[hidden] {
  display: none;
}

.qso-overlay.qso-mode-dropdown .qso-panel {
  flex: none;
  width: 100%;
  max-height: 60vh;
  padding-top: 0;
  border: 1px solid var(--c-grey-300);
  border-radius: var(--r-2);
  box-shadow: var(--shadow-card);
  box-sizing: border-box;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-4px);
}

.qso-overlay.qso-mode-dropdown.qso-dropdown-above .qso-panel {
  flex-direction: column-reverse;
}

.qso-overlay.qso-mode-dropdown.is-open .qso-panel {
  opacity: 1;
  transform: translateY(0);
}

.qso-overlay.qso-mode-dropdown .qso-body::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.qso-overlay.qso-mode-dropdown .qso-body::-webkit-scrollbar-track {
  background: transparent;
}
.qso-overlay.qso-mode-dropdown .qso-body::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 8px;
  transition: background 160ms ease;
}
.qso-overlay.qso-mode-dropdown .qso-body:hover::-webkit-scrollbar-thumb, .qso-overlay.qso-mode-dropdown .qso-body:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
}
.qso-overlay.qso-mode-dropdown .qso-body::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.34);
}

.qso-overlay.qso-mode-dropdown .qso-header {
  padding: 0;
  gap: 0;
}

.qso-overlay.qso-mode-dropdown .qso-header .input-field {
  border: none;
  background: transparent;
  border-radius: 0;
}

.qso-overlay.qso-mode-dropdown .qso-header .input-field:hover,
.qso-overlay.qso-mode-dropdown .qso-header .input-field:focus-within {
  border: none;
  background: transparent;
  box-shadow: none;
}

.qso-overlay.qso-mode-dropdown .qso-header .input-field .input-field-inner {
  background: transparent;
}

.qso-overlay.qso-mode-dropdown.qso-surface-grey .qso-panel {
  background: var(--c-grey-100);
}

.qso-overlay.qso-mode-dropdown.qso-surface-grey qdnapro-divider {
  background: var(--c-grey-300);
}

.qso-overlay.qso-mode-dropdown.qso-surface-grey qdnapro-list-row {
  --qlr-bg-hover: var(--c-grey-200);
}

.qso-recents-list qdnapro-list-row {
  --qlr-bare-icon-color: var(--c-text-muted);
}

.qso-recents-list .qdnapro-list-row qdnapro-icon-btn.icon-btn-subtle {
  color: var(--c-text-muted);
}

qdnapro-search-filter-panel {
  display: contents;
}

.sfp-root[hidden] {
  display: none;
}

.sfp-backdrop {
  position: fixed;
  inset: 0;
  background: color-mix(in srgb, var(--c-grey-950) 38%, transparent);
  opacity: 0;
  transition: opacity 240ms cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 1049;
}
.sfp-backdrop--visible {
  opacity: 1;
}

.sfp {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 380px;
  max-width: 92vw;
  display: flex;
  flex-direction: column;
  z-index: 1050;
  overflow: hidden;
  box-sizing: border-box;
  background: color-mix(in srgb, var(--c-bg-card) 74%, transparent);
  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  border-left: 1px solid var(--c-border-card);
  box-shadow: -8px 0 32px var(--c-purple-soft-18);
  transform: translateX(100%);
  transition: transform 240ms cubic-bezier(0.4, 0, 0.2, 1);
}
.sfp--visible {
  transform: translateX(0);
}
.sfp * {
  box-sizing: border-box;
}

.sfp-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  flex-shrink: 0;
  background: color-mix(in srgb, var(--c-purple-500) 88%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--c-white-12);
}

.sfp-head-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  border: 2px solid rgba(255, 255, 255, 0.55);
  border-radius: var(--r-2);
  color: #fff;
}

.sfp-head-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.sfp-head-title {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.25;
  color: #fff;
}

.sfp-head-desc {
  font-size: 12px;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.8);
}
.sfp-head-desc[hidden] {
  display: none;
}

.sfp-head-close {
  flex-shrink: 0;
  margin-left: auto;
}
.sfp-head-close[hidden] {
  display: none;
}

.sfp-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding: 10px 16px 0;
  flex-shrink: 0;
}
.sfp-chips:empty {
  display: none;
}
.sfp-chips[hidden] {
  display: none;
}

.sfp-body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  --sfp-thumb: color-mix(in srgb, var(--c-text-muted) 45%, transparent);
  scrollbar-width: thin;
  scrollbar-color: var(--sfp-thumb) transparent;
}
.sfp-body::-webkit-scrollbar {
  width: 5px;
}
.sfp-body::-webkit-scrollbar-track {
  background: transparent;
}
.sfp-body::-webkit-scrollbar-thumb {
  background: var(--sfp-thumb);
  border-radius: 3px;
}

.sfp-section {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.sfp-section-head {
  padding-bottom: 8px;
  border-bottom: 1px solid var(--c-border-card);
}

.sfp-section-title {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--c-brand-purple);
}

.sfp-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.sfp-field--range {
  flex-direction: row;
  gap: 8px;
}
.sfp-field--range > * {
  flex: 1 1 0;
  min-width: 0;
}

@media (max-width: 420px) {
  .sfp-field--range {
    flex-direction: column;
  }
}
.sfp-foot {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  flex-shrink: 0;
  border-top: 1px solid var(--c-border-card);
}

.sfp-foot-search {
  flex: 1;
}

.qdnapro-tasklist-run-card {
  position: relative;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  background: var(--c-bg-card);
  border: 1px solid var(--c-grey-100, #e7e9ec);
  border-radius: 12px;
  cursor: pointer;
  outline: none;
  user-select: none;
  transition: background-color 120ms ease-out, border-color 120ms ease-out;
}

.qdnapro-tasklist-run-card *,
.qdnapro-tasklist-run-card *::before,
.qdnapro-tasklist-run-card *::after {
  box-sizing: border-box;
}

.qdnapro-tasklist-run-card:focus {
  outline: none;
}

@media (hover: hover) {
  .qdnapro-tasklist-run-card:not(.trc-disabled):hover {
    background: var(--c-grey-100, #e7e9ec);
  }
}
.qdnapro-tasklist-run-card.force-hover:not(.trc-disabled) {
  background: var(--c-grey-100, #e7e9ec);
}

.qdnapro-tasklist-run-card:not(.trc-disabled):active {
  background: var(--c-grey-200, #d1d5db);
}

.qdnapro-tasklist-run-card:not(.trc-disabled).is-pressed {
  background: var(--c-grey-200, #d1d5db);
}

.qdnapro-tasklist-run-card.force-pressed:not(.trc-disabled) {
  background: var(--c-grey-200, #d1d5db);
}

.qdnapro-tasklist-run-card:not(.trc-disabled):focus-visible {
  outline: 2px solid var(--c-purple-500);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

.qdnapro-tasklist-run-card.force-focus:not(.trc-disabled) {
  outline: 2px solid var(--c-purple-500);
  outline-offset: -2px;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.25);
}

/* === Main row (dims to opacity .5 when the run is completed) === */
.qdnapro-tasklist-run-card .trc-main {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 8px 12px;
}

/* AFGEROND DIMT NIET MEER (Kim 06.08.2026). Hier stond `opacity: 0.5` op de hoofdrij van
   een afgeronde kaart. Die dimming had één doel: in een lijst waarin afgeronde en nog
   openstaande takenlijsten DOOR ELKAAR stonden moest het afgeronde werk naar achteren
   zakken. Die lijst bestaat niet meer - de oude dag-lijst van de PWA is op 06.08.2026
   verwijderd, en elk scherm dat nu een afgeronde kaart toont bevat alleen nog kaarten van
   één soort: de "Niet verstuurd"-bucket, het rechterpaneel op tablet en de nieuwe
   geschiedenis. Zonder die vermenging is een half doorzichtige kaart geen signaal meer maar
   gewoon slechter leesbaar. De check-badge, het woord "Afgerond" en de afrondtijd zeggen al
   wat er te zeggen valt.
   De .trc-disabled-stand verderop blijft wél dimmen: dat is een echte "kan nu niet"-stand,
   een andere boodschap dan "dit is klaar".
   De class `trc-main-completed` blijft de component wél zetten: bruikbaar haakje voor een
   consumer die de afgerond-stand toch anders wil tekenen, alleen zonder eigen opmaak hier.
   Commentaar met slashes-sterretje en niet met dubbele slashes: dit bestand wordt als PLATTE
   CSS naar de PWA gekopieerd (zie sync-v2-components.js), dus SCSS-commentaar hoort hier
   niet. */
.qdnapro-tasklist-run-card .trc-icon {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
}

.qdnapro-tasklist-run-card .trc-tile {
  width: 40px;
  height: 40px;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--trc-bg, #eef0f2);
}

.qdnapro-tasklist-run-card .trc-body {
  flex: 1;
  min-width: 0;
}

.qdnapro-tasklist-run-card .trc-name {
  font-size: 17px;
  color: var(--c-purple-500);
  line-height: 1.3;
}

.qdnapro-tasklist-run-card .trc-project {
  font-size: 15px;
  color: var(--c-grey-900, #0b0b0d);
  line-height: 1.3;
}

.qdnapro-tasklist-run-card .trc-meta {
  display: flex;
  align-items: center;
  padding: 4px 0;
}

.qdnapro-tasklist-run-card .trc-meta > qdnapro-icon {
  flex: none;
  color: var(--c-purple-500);
  margin-right: 8px;
}

.qdnapro-tasklist-run-card .trc-time {
  color: var(--c-grey-300);
}

.qdnapro-tasklist-run-card .trc-status {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: 24px;
  color: var(--c-favorite-heart);
}

/* === Footers === */
.qdnapro-tasklist-run-card .trc-footer {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 16px;
  border-top: 1px solid var(--c-grey-50);
}

/* Round slot in front of the location holds the ORGANISATION logo (Kim
   28.07.2026). It is only in the DOM when there IS a logo (Kim 24.08.2026):
   the empty placeholder circle carried no information. White disc, because an
   organisation logo is usually drawn on white and a grey disc behind it reads
   as a dirty edge. */
.qdnapro-tasklist-run-card .trc-org-logo {
  width: 24px;
  height: 24px;
  flex: none;
  border-radius: 50%;
  overflow: hidden;
  background: var(--c-bg-card);
  display: flex;
  align-items: center;
  justify-content: center;
}

/* contain, not cover: a logo is rarely square, and cover would crop the
   sides off a wide wordmark. Letterboxing inside the circle keeps it whole. */
.qdnapro-tasklist-run-card .trc-org-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.qdnapro-tasklist-run-card .trc-loc-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.qdnapro-tasklist-run-card .trc-loc-name {
  color: var(--c-purple-500);
}

.qdnapro-tasklist-run-card .trc-loc-address {
  color: var(--c-grey-300);
}

/* Afdeling van de check-in: derde regel IN de tekstkolom, met een klein
   gebouw-icoontje ervoor. Zelfde opbouw als .ao-header-place-dept in de
   takenlijst-header (_pwa-current.scss), zodat de kaart en de header dezelfde
   plaats + afdeling op dezelfde manier laten zien. Kleur is hier wel het navy
   van deze kaart (var(--c-purple-500), gelijk aan .trc-loc-name) in plaats van het
   header-navy: de header staat op een pastel vlak, deze footer op wit. */
.qdnapro-tasklist-run-card .trc-loc-dept {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  margin-top: 3px;
}

.qdnapro-tasklist-run-card .trc-loc-dept > qdnapro-icon {
  flex: none;
  color: rgba(64, 73, 154, 0.75);
}

/* Niet zwaarder dan de locatienaam erboven: de afdeling is een detail van de
   locatie, geen tweede titel. */
.qdnapro-tasklist-run-card .trc-loc-dept-name {
  min-width: 0;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.25;
  color: var(--c-purple-500);
}

.qdnapro-tasklist-run-card .trc-check {
  width: 24px;
  height: 24px;
  flex: none;
  border-radius: 50%;
  background: var(--c-purple-500);
  color: var(--c-text-on-action);
  display: flex;
  align-items: center;
  justify-content: center;
}

.qdnapro-tasklist-run-card .trc-completed-label {
  color: var(--c-purple-500);
  font-size: 15px;
  margin-right: 15px;
}

.qdnapro-tasklist-run-card .trc-completed-time {
  color: var(--c-purple-500);
  opacity: 0.5;
  font-size: 12px;
}

.qdnapro-tasklist-run-card .trc-hide {
  color: var(--c-purple-500);
  margin-left: auto;
  cursor: pointer;
}

.qdnapro-tasklist-run-card .trc-footer-unsynced {
  color: var(--c-warn-yellow-600);
  font-size: 15px;
}

/* === Disabled state ===
   Background stays white and border stays grey-100 (both deliberate, Kim
   28.07.2026 - a grey fill would vanish against the light grey page). Text
   goes to the button component's disabled text colour and the activity
   icon fades; hover / pressed / focus are suppressed via the :not(.trc-disabled)
   guards above. */
.qdnapro-tasklist-run-card.trc-disabled {
  cursor: not-allowed;
  pointer-events: none;
}

.qdnapro-tasklist-run-card.trc-disabled .trc-tile qdnapro-activity-icon {
  opacity: 0.3;
}

.qdnapro-tasklist-run-card.trc-disabled .trc-name,
.qdnapro-tasklist-run-card.trc-disabled .trc-project,
.qdnapro-tasklist-run-card.trc-disabled .trc-time,
.qdnapro-tasklist-run-card.trc-disabled .trc-status,
.qdnapro-tasklist-run-card.trc-disabled .trc-loc-name,
.qdnapro-tasklist-run-card.trc-disabled .trc-loc-address,
.qdnapro-tasklist-run-card.trc-disabled .trc-loc-dept-name,
.qdnapro-tasklist-run-card.trc-disabled .trc-completed-label,
.qdnapro-tasklist-run-card.trc-disabled .trc-completed-time,
.qdnapro-tasklist-run-card.trc-disabled .trc-hide,
.qdnapro-tasklist-run-card.trc-disabled .trc-footer-unsynced {
  color: var(--c-text-disabled);
}

.qdnapro-tasklist-run-card.trc-disabled .trc-meta > qdnapro-icon,
.qdnapro-tasklist-run-card.trc-disabled .trc-loc-dept > qdnapro-icon {
  color: var(--c-text-disabled);
}

/* === Colour palette (qdnapro-tag light pastels, same tokens as qdnapro-tasklist-card) === */
.qdnapro-tasklist-run-card.trc-color-grey {
  --trc-bg: var(--c-grey-50);
}

.qdnapro-tasklist-run-card.trc-color-red {
  --trc-bg: var(--c-signal-red-bg);
}

.qdnapro-tasklist-run-card.trc-color-yellow {
  --trc-bg: var(--c-chip-yellow-bg);
}

.qdnapro-tasklist-run-card.trc-color-green {
  --trc-bg: var(--c-chip-green-bg);
}

.qdnapro-tasklist-run-card.trc-color-blue {
  --trc-bg: var(--c-signal-blue-bg);
}

.qdnapro-tasklist-run-card.trc-color-bright-blue {
  --trc-bg: var(--c-chip-bright-blue-2-bg);
}

.qdnapro-tasklist-run-card.trc-color-pink {
  --trc-bg: var(--c-signal-pink-bg);
}

.qdnapro-tasklist-run-card.trc-color-purple {
  --trc-bg: var(--c-chip-purple-bg);
}

/* === Dark mode - base card chrome ===
   Explicit dark overrides (standalone library preview has no --c-* tokens
   set, so light fallbacks would otherwise win). Values follow the same
   dark palette used across the other v2 components: surface var(--c-grey-800),
   hover var(--c-grey-700), pressed var(--c-grey-600), primary text var(--c-grey-50), muted var(--c-grey-400),
   subtle border rgba(255,255,255,0.10). */
[data-theme=dark] .qdnapro-tasklist-run-card {
  background: #2e3036;
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme=dark] .qdnapro-tasklist-run-card .trc-name {
  color: #c7cce8;
}

[data-theme=dark] .qdnapro-tasklist-run-card .trc-project {
  color: #f0f1f2;
}

[data-theme=dark] .qdnapro-tasklist-run-card .trc-time {
  color: #a0a4b8;
}

[data-theme=dark] .qdnapro-tasklist-run-card .trc-footer {
  border-top-color: rgba(255, 255, 255, 0.1);
}

@media (hover: hover) {
  [data-theme=dark] .qdnapro-tasklist-run-card:not(.trc-disabled):hover {
    background: #40444d;
  }
}
[data-theme=dark] .qdnapro-tasklist-run-card.force-hover {
  background: #40444d;
}

[data-theme=dark] .qdnapro-tasklist-run-card:not(.trc-disabled):active {
  background: #565b66;
}

[data-theme=dark] .qdnapro-tasklist-run-card:not(.trc-disabled).is-pressed {
  background: #565b66;
}

[data-theme=dark] .qdnapro-tasklist-run-card.force-pressed {
  background: #565b66;
}

[data-theme=dark] .qdnapro-tasklist-run-card.trc-color-grey {
  --trc-bg: #40444d;
}

[data-theme=dark] .qdnapro-tasklist-run-card.trc-color-red {
  --trc-bg: #5a2b2b;
}

[data-theme=dark] .qdnapro-tasklist-run-card.trc-color-yellow {
  --trc-bg: #5a4d1f;
}

[data-theme=dark] .qdnapro-tasklist-run-card.trc-color-green {
  --trc-bg: #2a5544;
}

[data-theme=dark] .qdnapro-tasklist-run-card.trc-color-blue {
  --trc-bg: #2e3e54;
}

[data-theme=dark] .qdnapro-tasklist-run-card.trc-color-bright-blue {
  --trc-bg: #3a4a8a;
}

[data-theme=dark] .qdnapro-tasklist-run-card.trc-color-pink {
  --trc-bg: #4e2a36;
}

[data-theme=dark] .qdnapro-tasklist-run-card.trc-color-purple {
  --trc-bg: #3a3555;
}

.qdnapro-selection-bar {
  --qsb-bg: var(--c-bg-card, #ffffff);
  --qsb-border: var(--c-border-soft-2, #e6e9ef);
  --qsb-fg: var(--c-text-body, #0b0b0d);
  --qsb-fg-idle: var(--c-text-muted, #6e7280);
  --qsb-fg-disabled: var(--c-text-disabled, #898e99);
  --qsb-fg-danger: var(--c-signal-red-text, #c65a5a);
  --qsb-hover-bg: var(--c-bg-subtle-hover, #f0f1f2);
  --qsb-press-bg: var(--c-bg-subtle-press, #e7e9ec);
  --qsb-bottom-offset: 0px;
  --qsb-lift: 0px;
  --qsb-pad-y: 6px;
  --qsb-pad-x: 4px;
  --qsb-btn-max: 140px;
  --qsb-label-size: 11px;
  --qsb-gap: 2px;
  position: fixed;
  left: 0;
  right: 0;
  bottom: calc(var(--qsb-bottom-offset) + var(--qsb-lift));
  z-index: 99;
  display: flex;
  align-items: stretch;
  justify-content: center;
  padding: var(--qsb-pad-y) var(--qsb-pad-x);
  padding-bottom: calc(var(--qsb-pad-y) + max(0px, env(safe-area-inset-bottom, 0px) - var(--qsb-bottom-offset) - var(--qsb-lift)));
  background: var(--qsb-bg);
  color: var(--qsb-fg);
  font-family: var(--ff, "Inter", sans-serif);
  box-sizing: border-box;
}

.qdnapro-selection-bar *,
.qdnapro-selection-bar *::before,
.qdnapro-selection-bar *::after {
  box-sizing: border-box;
}

.qdnapro-selection-bar[hidden] {
  display: none;
}

.qdnapro-selection-bar[data-variant=flat] {
  border-top: 1px solid var(--qsb-border);
  border-radius: 0;
  box-shadow: 0 -2px 16px rgba(20, 25, 80, 0.1);
}

.qdnapro-selection-bar[data-variant=floating] {
  --qsb-lift: 12px;
  --qsb-pad-x: 6px;
  left: 12px;
  right: 12px;
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
  border: 1px solid var(--qsb-border);
  border-radius: var(--r-4, 16px);
  box-shadow: 0 8px 24px rgba(20, 25, 80, 0.18);
}

.qdnapro-selection-bar[data-mode=message] {
  --qsb-pad-x: 16px;
  --qsb-pad-y: 10px;
  --qsb-bottom-offset: 0px;
  --qsb-lift: 0px;
  left: 0;
  right: 0;
  z-index: 101;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 8px;
  text-align: left;
}

.qdnapro-selection-bar[data-mode=message] .qsb-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 12px;
  min-width: 0;
}

.qdnapro-selection-bar[data-mode=message] .qsb-below {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.qdnapro-selection-bar[data-mode=message][data-variant=floating] {
  --qsb-pad-x: 16px;
  left: 0;
  right: 0;
  max-width: none;
  border: none;
  border-top: 1px solid var(--qsb-border);
  border-radius: 0;
  box-shadow: 0 -2px 16px rgba(20, 25, 80, 0.1);
}

.qdnapro-selection-bar[data-mode=message] .qsb-lead {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.qdnapro-selection-bar[data-mode=message] .qsb-lead > * {
  max-width: 100%;
  max-height: 100%;
}

.qdnapro-selection-bar[data-mode=message] .qsb-lead > qdnapro-icon,
.qdnapro-selection-bar[data-mode=message] .qsb-lead > qdnapro-icon svg {
  width: 24px;
  height: 24px;
  fill: currentColor;
}

.qdnapro-selection-bar[data-mode=message] .qsb-message {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.qdnapro-selection-bar[data-mode=message] .qsb-message__title {
  font-size: 15px;
  font-weight: var(--fw-semi, 600);
  line-height: 1.25;
  color: var(--qsb-fg);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.qdnapro-selection-bar[data-mode=message] .qsb-message__sub {
  font-size: 13px;
  font-weight: var(--fw-regular, 400);
  line-height: 1.3;
  color: var(--qsb-fg-idle);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qdnapro-selection-bar[data-mode=message] .qsb-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
}

.qdnapro-selection-bar[data-mode=message] .qdnapro-selection-bar-btn {
  flex: 0 0 auto;
  max-width: 96px;
  padding-left: 8px;
  padding-right: 8px;
}

.qdnapro-selection-bar-btn {
  flex: 1 1 0;
  min-width: 0;
  max-width: var(--qsb-btn-max);
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--qsb-gap);
  min-height: 44px;
  padding: 4px 2px;
  background: transparent;
  border: none;
  border-radius: var(--r-2, 8px);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  color: var(--qsb-fg-idle);
  text-decoration: none;
  transition: background-color 120ms ease-out, color 120ms ease-out;
}

.qdnapro-selection-bar-btn .qsb-btn__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
}

.qdnapro-selection-bar-btn .qsb-btn__icon qdnapro-icon,
.qdnapro-selection-bar-btn .qsb-btn__icon svg {
  width: 24px;
  height: 24px;
  fill: currentColor;
  pointer-events: none;
}

.qdnapro-selection-bar-btn .qsb-btn__label {
  display: block;
  max-width: 100%;
  font-size: var(--qsb-label-size);
  font-weight: var(--fw-medium, 500);
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (hover: hover) {
  .qdnapro-selection-bar-btn:hover {
    background: var(--qsb-hover-bg);
    color: var(--qsb-fg);
  }
}
.qdnapro-selection-bar-btn[data-pressing=true] {
  background: var(--qsb-press-bg);
  color: var(--qsb-fg);
}

.qdnapro-selection-bar-btn:focus-visible {
  outline: 2px solid var(--focus-ring, #40499a);
  outline-offset: -2px;
}

.qdnapro-selection-bar-btn[data-tone=danger] {
  color: var(--qsb-fg-danger);
}

@media (hover: hover) {
  .qdnapro-selection-bar-btn[data-tone=danger]:hover {
    background: var(--c-signal-red-soft, #fff0f0);
    color: var(--qsb-fg-danger);
  }
}
.qdnapro-selection-bar-btn[data-tone=danger][data-pressing=true] {
  background: var(--c-signal-red-bg, #fee3e3);
  color: var(--qsb-fg-danger);
}

.qdnapro-selection-bar-btn[data-disabled=true] {
  color: var(--qsb-fg-disabled);
  cursor: default;
  pointer-events: none;
}

.qdnapro-selection-bar-btn[data-disabled=true][data-tone=danger] {
  color: var(--qsb-fg-disabled);
}

[data-theme-dark] .qdnapro-selection-bar,
[data-theme=dark] .qdnapro-selection-bar,
body[data-theme=dark] .qdnapro-selection-bar {
  --qsb-fg-danger: var(--c-warn-red-400, #f87171);
}

[data-theme-dark] .qdnapro-selection-bar[data-variant=flat],
[data-theme=dark] .qdnapro-selection-bar[data-variant=flat],
body[data-theme=dark] .qdnapro-selection-bar[data-variant=flat] {
  box-shadow: 0 -2px 16px rgba(0, 0, 0, 0.45);
}

[data-theme-dark] .qdnapro-selection-bar[data-variant=floating],
[data-theme=dark] .qdnapro-selection-bar[data-variant=floating],
body[data-theme=dark] .qdnapro-selection-bar[data-variant=floating] {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
}

[data-theme-dark] .qdnapro-selection-bar-btn[data-tone=danger][data-pressing=true],
[data-theme=dark] .qdnapro-selection-bar-btn[data-tone=danger][data-pressing=true],
body[data-theme=dark] .qdnapro-selection-bar-btn[data-tone=danger][data-pressing=true] {
  background: rgba(248, 113, 113, 0.16);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-selection-bar-btn {
    transition: none;
  }
}
.qdnapro-selection-bar {
  transition: transform 260ms cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}

.qdnapro-selection-bar[data-entering=true] {
  transform: translateY(120%);
}

@media (prefers-reduced-motion: reduce) {
  .qdnapro-selection-bar {
    transition: none;
  }
  .qdnapro-selection-bar[data-entering=true] {
    transform: none;
  }
}
.qdnapro-selection-bar[data-color=purple] {
  --qsb-bg: var(--c-bg-secondary-purple, #e6e9ff);
  --qsb-border: var(--c-sidebar-icon, #c5c9eb);
  --qsb-fg-idle: var(--c-purple-500, #40499a);
  --qsb-fg: var(--c-purple-600, #333a7b);
  --qsb-hover-bg: var(--c-purple-100, #c0c5ff);
  --qsb-press-bg: var(--c-purple-100, #c0c5ff);
  --qsb-fg-danger: var(--c-warn-red-500, #dc2626);
}

.qdnapro-selection-bar[data-color=purple] .qdnapro-selection-bar-btn[data-tone=danger] {
  background: var(--c-bg-card, #ffffff);
}

[data-theme-dark] .qdnapro-selection-bar[data-color=purple],
[data-theme=dark] .qdnapro-selection-bar[data-color=purple],
body[data-theme=dark] .qdnapro-selection-bar[data-color=purple] {
  --qsb-fg-idle: var(--c-purple-200, #a5acff);
  --qsb-fg: var(--c-purple-100, #c0c5ff);
  --qsb-hover-bg: rgba(165, 172, 255, 0.16);
  --qsb-press-bg: rgba(165, 172, 255, 0.24);
}

.qdnapro-message-header [hidden] {
  display: none;
}

.qdnapro-message-header {
  --mh-heading: var(--c-purple-500, #40499a);
  --mh-fg: var(--c-text-body, #0b0b0d);
  --mh-muted: var(--c-text-muted, #6e7280);
  --mh-border: var(--c-border-soft, rgba(0, 0, 0, 0.07));
  --mh-bg: var(--c-bg-card, #ffffff);
  display: flex;
  flex-direction: column;
  background: var(--mh-bg);
  animation: inbox-detail-in 200ms ease-out;
  box-sizing: border-box;
}
.qdnapro-message-header *, .qdnapro-message-header *::before, .qdnapro-message-header *::after {
  box-sizing: border-box;
}

.mh-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  height: 56px;
  padding: 0 8px 0 20px;
  border-bottom: 1px solid var(--mh-border);
}

.mh-title-label {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--mh-heading);
  font-size: 16px;
  font-weight: 600;
}

.mh-title-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 4px;
}
.mh-title-actions:empty {
  display: none;
}

.mh-action-sep {
  flex: 0 0 auto;
  align-self: center;
  width: 1px;
  height: 24px;
  background: var(--mh-border);
}

.mh-sender {
  display: flex;
  gap: 16px;
  padding: 16px 20px 12px;
  border-bottom: 1px solid var(--mh-border);
}

.mh-sender-avatar {
  flex: 0 0 auto;
}

.mh-sender-body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.mh-sender-row {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
}

.mh-sender-name {
  color: var(--mh-fg);
  font-size: 15px;
  font-weight: 600;
}

.mh-sender-email {
  color: var(--mh-muted);
  font-size: 14px;
  font-weight: 500;
}

.mh-sender-date {
  margin-left: auto;
  flex-shrink: 0;
  color: var(--mh-muted);
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.mh-to,
.mh-cc {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 4px;
  color: var(--mh-muted);
  font-size: 12px;
  font-weight: 500;
}

.mh-field-label {
  flex-shrink: 0;
}

.mh-person {
  display: inline-flex;
  align-items: baseline;
  gap: 0;
}

.mh-person-name {
  font-weight: 600;
  padding-right: 4px;
}

.mh-tags {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}

.qdnapro-answer-row [hidden] {
  display: none;
}

.qdnapro-answer-row {
  --ar-heading: var(--c-purple-500, #40499a);
  --ar-fg: var(--c-text-body, #0b0b0d);
  --ar-muted: var(--c-text-muted, #6e7280);
  --ar-icon-color: var(--c-grey-300);
  --ar-pill-bg: var(--c-bg-card-hover, #f7f8fa);
  display: flex;
  flex-direction: column;
  padding: 4px 8px;
  box-sizing: border-box;
}
.qdnapro-answer-row *, .qdnapro-answer-row *::before, .qdnapro-answer-row *::after {
  box-sizing: border-box;
}

.ar-question {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 20px;
  color: var(--ar-heading);
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
}

.ar-icon {
  flex: 0 0 auto;
  color: var(--ar-icon-color);
}

.ar-question-label {
  flex: 1 1 auto;
  min-width: 0;
}

.ar-node-id {
  flex: 0 0 auto;
  margin-left: 6px;
  font-size: 10px;
  font-weight: 400;
  line-height: 1;
  color: var(--ar-icon-color);
}

.ar-draft {
  flex: 0 0 auto;
  padding: 1px 6px;
  border-radius: 999px;
  background: var(--ar-pill-bg);
  color: var(--ar-muted);
  font-size: 11px;
  font-weight: 500;
}

.ar-answer {
  padding-left: 24px;
  color: var(--ar-fg);
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  white-space: pre-wrap;
  overflow-wrap: break-word;
}

.qdnapro-message-actionbar [hidden] {
  display: none;
}

.qdnapro-message-actionbar {
  --mab-fg: var(--c-purple-500, #40499a);
  --mab-muted: var(--c-purple-500, #40499a);
  --mab-bg: var(--c-bg-subtle-purple);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px;
  border-radius: 8px;
  background: var(--mab-bg);
  color: var(--mab-fg);
  box-sizing: border-box;
}
.qdnapro-message-actionbar *, .qdnapro-message-actionbar *::before, .qdnapro-message-actionbar *::after {
  box-sizing: border-box;
}

.mab-info {
  display: flex;
  align-items: center;
  gap: 10px;
}

.mab-info-icon {
  flex-shrink: 0;
  color: var(--mab-fg);
}

.mab-note {
  color: var(--mab-fg);
}

.mab-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  font-weight: 500;
}
.mab-actions:empty {
  display: none;
}

.qdnapro-timeline-marker [hidden] {
  display: none;
}

.qdnapro-timeline-marker {
  --tm-fg: var(--c-text-disabled-pp);
  --tm-border: var(--c-border-tree);
  --tm-bg: var(--c-bg-card, #fff);
  display: flex;
  justify-content: center;
  padding: 8px 0;
  color: var(--tm-fg);
  font-size: 14px;
  font-weight: 400;
  box-sizing: border-box;
}
.qdnapro-timeline-marker *, .qdnapro-timeline-marker *::before, .qdnapro-timeline-marker *::after {
  box-sizing: border-box;
}

[data-theme=dark] .qdnapro-timeline-marker {
  --tm-fg: var(--c-text-muted, #6e7280);
  --tm-border: var(--c-border-card, rgba(255, 255, 255, 0.1));
}

.tm-block {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
  max-width: 100%;
  padding: 6px 16px;
  border: 1px solid var(--tm-border);
  border-radius: 12px;
  background-color: var(--tm-bg);
}

.tm-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1 1 auto;
  min-width: 0;
}

.tm-icon {
  flex: 0 0 auto;
}

.tm-label {
  min-width: 0;
  overflow-wrap: break-word;
}

.tm-sep {
  flex: 0 0 auto;
}

.tm-block > qdnapro-avatar {
  flex: 0 0 auto;
  display: inline-flex;
  line-height: 0;
}

.tm-time {
  flex: 0 0 auto;
  white-space: nowrap;
}

.qdnapro-lottie {
  --ql-size: 48px;
  position: relative;
  display: inline-block;
  width: var(--ql-size);
  height: var(--ql-size);
  line-height: 0;
  vertical-align: middle;
}

.qdnapro-lottie__stage,
.qdnapro-lottie__poster {
  display: block;
  width: 100%;
  height: 100%;
}

.qdnapro-lottie__stage svg {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

.qdnapro-lottie__poster {
  position: absolute;
  inset: 0;
  object-fit: contain;
}

.qdnapro-lottie__poster[hidden] {
  display: none;
}

.qdnapro-lottie[data-trigger=click] {
  cursor: pointer;
}

.qdnapro-lottie:focus-visible {
  outline: 2px solid var(--focus-ring, #5b4dd1);
  outline-offset: 2px;
  border-radius: 4px;
}

.qdnapro-lottie[data-state=error] .qdnapro-lottie__stage {
  display: none;
}

/* Cross-document View Transitions (Optie B, Jan 2026-06-17): smooth the
   full-page navigations so the content cross-fades instead of hard-cutting,
   while the nav-rail (its own `view-transition-name` below) stays put and its
   active-item highlight glides across. Chrome honours this for same-origin MPA
   navigation; browsers/pages that don't opt in fall back to a normal instant
   navigation — no animation, no regression. */
@view-transition {
  navigation: auto;
}
/* No-dip transition: the default cross-fade fades the old out (1→0) AND the new
   in (0→1) simultaneously, so at the crossover both layers are translucent and
   the light page background bleeds through — the "flash to light". Instead, keep
   the OLD page fully opaque underneath and fade the NEW in on top of it, so there
   is never a see-through moment. The nav-rail (identical across pages) holds
   perfectly static — no fade, no flicker. */
::view-transition-old(root) {
  animation: none;
}

::view-transition-new(root) {
  animation: qdna-vt-fade-in 200ms ease both;
}

@keyframes qdna-vt-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
::view-transition-old(qdna-nav-rail),
::view-transition-new(qdna-nav-rail) {
  animation: none;
}

html, body {
  height: 100%;
}

/* ── inline code ────────────────────────────────────────────────────────────────────────────
   Bootstrap geeft ÉLK `<code>` zijn eigen roze (`#e83e8c`) — een kleur die verder nergens in
   QDNA Pro voorkomt en die niet uit de tokenbibliotheek komt. Zichtbaar op onder meer de
   parameter- en meetwaarde-labels in de rapport-editor en op de technische waarden in de
   ontwikkelaarspagina's (Jan, 2026-08-03: "roze is een kleur die verder nergens voorkomt").

   Vervangen door `--c-brand-purple`: hetzelfde merkpaars waarmee de app al haar kleine
   technische chips zet (het conditie-chipje in de documenteditor, de selectie-chip in de
   blokkenlijst), en — anders dan een kale `--c-purple-500` — een SEMANTISCHE token die in het
   donkere thema meekantelt naar een licht paars.

   ⚠️ Dit werkt op gelijke specificiteit (0,0,1) en wint dus puur op VOLGORDE: `style-v1.css`
      staat ná `bootstrap.min.css`. Verhuist de stylesheet-volgorde ooit, dan is dit de eerste
      regel die stil terugvalt op roze. */
code {
  color: var(--c-brand-purple);
}

html.app-scroll-locked, html.app-scroll-locked body {
  overflow: hidden !important;
}

/* Same paint surface on <html> as on <body>. Without this, every
   navigation between pages briefly paints the browser's default white
   background between unload and the new page's first paint — visible
   as a white flash when clicking around the nav-rail. (Kim 2026-06-07) */
/* Page surface comes from the SEMANTIC token, not from a SCSS variable.
   A SCSS variable is resolved at compile time (`colors.$light-purple-100`
   shipped as a literal `#e6e9ff`), so there was nothing left for a theme to
   redefine at runtime — the page background could never follow dark mode.
   `--c-bg-page` is declared for both themes in
   components/v2/design-tokens/_design-tokens.scss, so this is now the ONE
   place the page surface is set and it flips by itself. Same for the body
   text colour: a dark surface with `$text-body-color` on it is unreadable.
   Do NOT reintroduce a per-page body background; point it here instead.
   [Kim 2026-08-07] */
html {
  background: var(--c-bg-page);
}

body {
  font-family: "Inter", sans-serif;
  font-optical-sizing: auto;
  font-weight: normal;
  font-style: normal;
  margin: 0;
  padding: 0;
  color: var(--c-text-body);
  background: var(--c-bg-page);
}

.ms-drop {
  z-index: 1050;
  width: 40% !important;
}
.ms-drop ul > li.multiple {
  width: 100% !important;
}

.ms-choice > div {
  background: none !important;
}
.ms-choice > div.open {
  background: none !important;
}

.qdna-page {
  display: flex;
  min-height: 100%;
  align-items: flex-start;
}
.qdna-page qdnapro-nav-rail {
  flex-shrink: 0;
  position: sticky;
  top: 0;
  height: 100vh;
  align-self: flex-start;
  view-transition-name: qdna-nav-rail;
}
.qdna-page {
  /* components.js is a deferred module, so on every (full-page) navigation the
     raw <qdnapro-nav-rail> exists for a beat before it upgrades — with no width
     or background it collapses the menu strip and the lavender page bg flashes
     through, then the rail pops to 208px dark purple and the content reflows.
     Reserve the expanded width + nav surface up front (render-blocking CSS) so
     the rail looks identical before/after upgrade → no reflow, no flash.
     208px = the expanded width; var fallback = the resolved --c-nav-bg. */
}
.qdna-page qdnapro-nav-rail:not(:defined) {
  width: 208px;
  background: var(--c-nav-bg, #3a4290);
}
.qdna-page .qdna-page-content {
  flex-grow: 1;
  min-width: 0;
  overflow-x: clip;
}

/* Fix-A companion for collapsed-rail users: when <html> is flagged
   `rail-collapsed` (set pre-paint by the inline script in header.html, reading
   the saved localStorage preference), reserve the COLLAPSED rail width for the
   not-yet-upgraded rail instead of the default 208px. Without this a user who
   prefers the rail collapsed would see a 208→collapsed reflow on every
   navigation (and a view-transition size mismatch). 84px must match the
   collapsed width in _nav-rail.scss. */
html.rail-collapsed .qdna-page qdnapro-nav-rail:not(:defined) {
  width: 84px;
}

.ts-section, .qdna-section {
  height: 100%;
  padding-left: 16px;
  padding-right: 16px;
}

:root {
  --qdna-topbar-h: 44px;
}

.qdna-navbar {
  width: 100%;
  height: var(--qdna-topbar-h);
  background-color: var(--c-bg-page);
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  padding: 0 16px;
  justify-content: space-between;
}
.qdna-navbar .qdna-breadcrumbs {
  display: flex;
  gap: 8px;
  align-items: center;
}
.qdna-navbar .qdna-breadcrumbs a.qdna-breadcrumb {
  color: #1e1f20;
  text-decoration: none;
  font-size: 15px;
  display: flex;
  gap: 4px;
  align-items: center;
  padding: 0 8px;
}
.qdna-navbar .qdna-breadcrumbs a.qdna-breadcrumb:hover {
  text-decoration: underline;
}
.qdna-navbar .qdna-breadcrumbs a.qdna-breadcrumb.active:hover {
  text-decoration: none;
}
.qdna-navbar .navbar-items {
  display: flex;
  gap: 12px;
  align-items: center;
}

#navbar-bell-btn.qdnapro-icon-btn,
#navbar-nova-btn.qdnapro-icon-btn,
#navbar-app-btn.qdnapro-icon-btn {
  color: #40499a;
}
#navbar-bell-btn.qdnapro-icon-btn:hover:not(.icon-btn-disabled),
#navbar-nova-btn.qdnapro-icon-btn:hover:not(.icon-btn-disabled),
#navbar-app-btn.qdnapro-icon-btn:hover:not(.icon-btn-disabled) {
  background-color: #daddf2;
}

.al-backdrop {
  position: fixed;
  inset: 0;
  z-index: 10100;
  background: rgba(10, 12, 40, 0.72);
  backdrop-filter: blur(4px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding-top: 20px;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.al-backdrop[hidden] {
  display: none;
}

.al-shell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding-bottom: 32px;
}

.al-chrome {
  display: flex;
  align-items: center;
  gap: 12px;
}

.al-devices {
  display: flex;
  align-items: center;
  gap: 4px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 8px;
  padding: 3px;
}

.al-device-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 6px;
  border: none;
  background: transparent;
  color: rgba(255, 255, 255, 0.65);
  font-size: 18px;
  cursor: pointer;
  transition: background 140ms, color 140ms;
}
.al-device-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}
.al-device-btn--active {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}

.al-close-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.75);
  font-size: 18px;
  cursor: pointer;
  transition: background 140ms, color 140ms;
}
.al-close-btn:hover {
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
}

.al-frame {
  position: relative;
  background: #1a1b2e;
  border: 3px solid #3a3b55;
  border-radius: 40px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 24px 80px rgba(0, 0, 0, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: width 280ms cubic-bezier(0.4, 0, 0.2, 1), height 280ms cubic-bezier(0.4, 0, 0.2, 1), border-radius 280ms;
  overflow: hidden;
}
.al-frame--phone {
  width: 375px;
  height: 812px;
  border-radius: 44px;
}
.al-frame--tablet-portrait {
  width: 768px;
  height: 1024px;
  border-radius: 24px;
}
.al-frame--tablet-landscape {
  width: 1024px;
  height: 768px;
  border-radius: 24px;
}
.al-frame--phone-landscape {
  width: 812px;
  height: 375px;
  border-radius: 32px;
}
.al-frame--desktop {
  width: min(1680px, 96vw);
  height: calc(100vh - 140px);
  max-height: 1100px;
  border-radius: 12px;
}

.al-notch {
  flex-shrink: 0;
  width: 120px;
  height: 28px;
  margin-top: 6px;
  background: #1a1b2e;
  border-radius: 0 0 18px 18px;
  z-index: 2;
}
.al-frame--tablet-portrait .al-notch, .al-frame--tablet-landscape .al-notch, .al-frame--phone-landscape .al-notch, .al-frame--desktop .al-notch {
  display: none;
}

.al-screen {
  flex: 1;
  width: 100%;
  background: #fff;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.al-frame--tablet-portrait > .al-screen,
.al-frame--tablet-landscape > .al-screen,
.al-frame--desktop > .al-screen {
  box-sizing: border-box;
  padding: 22px;
}

.al-frame--phone-landscape > .al-screen {
  box-sizing: border-box;
  padding: 16px;
}

.al-iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}

.al-home-bar {
  flex-shrink: 0;
  width: 120px;
  height: 5px;
  margin: 8px auto;
  background: rgba(255, 255, 255, 0.25);
  border-radius: 3px;
}
.al-frame--tablet-portrait .al-home-bar, .al-frame--tablet-landscape .al-home-bar, .al-frame--phone-landscape .al-home-bar, .al-frame--desktop .al-home-bar {
  display: none;
}

.al-live-notice {
  position: absolute;
  top: 46px;
  left: 12px;
  right: 12px;
  z-index: 3;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 12px 14px;
  border-radius: 12px;
  background: #b04a42;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;
  transition: opacity 220ms ease, transform 220ms ease;
}
.al-live-notice--show {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
@media (prefers-reduced-motion: reduce) {
  .al-live-notice {
    transition: none;
  }
}
.al-live-notice__icon {
  flex: 0 0 auto;
  margin-top: 1px;
  font-size: 22px;
  line-height: 1;
  color: #fff;
}
.al-live-notice__body {
  flex: 1 1 auto;
  min-width: 0;
}
.al-live-notice__title {
  margin: 0 0 3px;
  font-size: 14px;
  font-weight: 600;
  color: #fff;
}
.al-live-notice__text {
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.45;
  color: #fbe6e4;
}
.al-live-notice__ok {
  display: inline-block;
  padding: 5px 18px;
  font-size: 13px;
  font-weight: 500;
  color: #fff;
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 8px;
  cursor: pointer;
  transition: background 140ms ease;
}
.al-live-notice__ok:hover {
  background: rgba(255, 255, 255, 0.28);
}
.al-live-notice__ok:active {
  transform: scale(0.98);
}
.al-frame--tablet-portrait .al-live-notice, .al-frame--tablet-landscape .al-live-notice {
  left: 16px;
  right: auto;
  max-width: 420px;
  top: 16px;
}

@keyframes nova-soft-pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.12);
  }
}
#navbar-nova-btn.qdnapro-icon-btn {
  transform-origin: center;
  animation: nova-soft-pulse 2.6s ease-in-out infinite;
}
#navbar-nova-btn.qdnapro-icon-btn:hover {
  animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
  #navbar-nova-btn.qdnapro-icon-btn {
    animation: none;
  }
}
#navbar-notification-menu {
  background: rgba(247, 248, 253, 0.5) !important;
  backdrop-filter: blur(28px) saturate(1.5);
  -webkit-backdrop-filter: blur(28px) saturate(1.5);
  border: none;
  border-radius: 14px;
  box-shadow: 0 12px 40px rgba(40, 46, 100, 0.18);
  overflow: hidden;
  padding: 0 !important;
  scrollbar-width: thin;
  scrollbar-color: rgba(40, 46, 100, 0.25) transparent;
}
#navbar-notification-menu::-webkit-scrollbar {
  width: 8px;
}
#navbar-notification-menu::-webkit-scrollbar-track {
  background: transparent;
}
#navbar-notification-menu::-webkit-scrollbar-thumb {
  background: rgba(40, 46, 100, 0.25);
  border-radius: 4px;
}
#navbar-notification-menu::-webkit-scrollbar-thumb:hover {
  background: rgba(40, 46, 100, 0.4);
}

.user-profile-dropdown .user-profile-btn {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 4px 8px;
  border-radius: 8px;
  user-select: none;
  cursor: pointer;
  border: 1px solid #40499a;
  color: #40499a;
  white-space: nowrap;
}
.user-profile-dropdown .user-profile-btn img.profile-picture {
  width: 29px;
  height: 29px;
  aspect-ratio: 1/1;
  border-radius: calc(infinity * 1px);
  user-select: inherit;
}
.user-profile-dropdown .user-profile-btn .profile-content {
  font-size: 16px;
  font-weight: 400;
}
.user-profile-dropdown .user-profile-btn:hover {
  background: #daddf2;
}
.user-profile-dropdown .user-profile-details {
  border: none;
  z-index: 1;
}
.user-profile-dropdown .user-profile-details .user-card {
  display: flex;
  align-items: center;
  flex-direction: column;
  margin-bottom: 1rem;
  width: 301px;
}
.user-profile-dropdown .user-profile-details .user-card .user-image {
  position: relative;
  margin-bottom: 1.5rem;
}
.user-profile-dropdown .user-profile-details .user-card .user-image img.image {
  width: 124px;
  height: 124px;
  border-radius: 50%;
  object-fit: cover;
}
.user-profile-dropdown .user-profile-details .user-card .user-image .settings-icon {
  width: 40px;
  height: 40px;
  background-color: #F0F1F2;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: absolute;
  right: -8px;
  bottom: -8px;
}
.user-profile-dropdown .user-profile-details .user-card .user-info {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
.user-profile-dropdown .user-profile-details .user-card .user-info .info-name {
  font-weight: 800;
  color: #202124;
}
.user-profile-dropdown .user-profile-details .user-card .user-info .info-email {
  color: #6B7280;
}

.ts-load-large, .ts-load-statusbar {
  position: fixed;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  z-index: 9999;
  display: none;
}
.ts-load-large--in, .ts-load-statusbar--in {
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.5);
  height: 100%;
  width: 100%;
}

.ts-loader, .ts-loader:after {
  border-radius: 50%;
  width: 10em;
  height: 10em;
}

.ts-loader {
  font-size: 10px;
  position: relative;
  text-indent: -9999em;
  border-top: 1.1em solid rgba(255, 255, 255, 0.2);
  border-right: 1.1em solid rgba(255, 255, 255, 0.2);
  border-bottom: 1.1em solid rgba(255, 255, 255, 0.2);
  border-left: 1.1em solid #ffffff;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation: load8 1.1s infinite linear;
  animation: load8 1.1s infinite linear;
}

@-webkit-keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes load8 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
.flash-message {
  padding: 16px;
  position: absolute;
  width: 100%;
  top: 24px;
}
.flash-message .alert {
  padding: 8px 24px;
  font-size: 14px;
}

qdnapro-nav-item[href="/v1/kwaliteitslandschap"] .nav-item-label {
  font-size: 12.5px;
  letter-spacing: -0.015em;
}

.tox.tox-silver-sink,
.tox-tinymce-aux {
  z-index: 100000 !important;
}

.tox.tox-tinymce .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled),
.tox.tox-silver-sink .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled),
.tox.tox-tinymce-aux .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) {
  background-color: var(--c-bg-secondary-purple);
  color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after,
.tox.tox-silver-sink .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after,
.tox.tox-tinymce-aux .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after {
  box-shadow: 0 0 0 2px var(--c-brand-purple) inset;
}
.tox.tox-tinymce .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after,
.tox.tox-silver-sink .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after,
.tox.tox-tinymce-aux .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled):focus::after {
  box-shadow: 0 0 0 2px var(--c-brand-purple);
}
.tox.tox-tinymce .tox-image-selector-menu .tox-collection__item-checkmark svg path,
.tox.tox-silver-sink .tox-image-selector-menu .tox-collection__item-checkmark svg path,
.tox.tox-tinymce-aux .tox-image-selector-menu .tox-collection__item-checkmark svg path {
  fill: var(--c-brand-purple);
  stroke: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-edit-area::before,
.tox.tox-silver-sink .tox-edit-area::before,
.tox.tox-tinymce-aux .tox-edit-area::before {
  border-width: 1px;
  border-color: var(--c-brand-purple);
  border-radius: 0;
  box-shadow: inset 0 0 0 3px var(--c-action-25);
}
.tox.tox-tinymce .tox-button,
.tox.tox-tinymce .tox-button[disabled],
.tox.tox-silver-sink .tox-button,
.tox.tox-silver-sink .tox-button[disabled],
.tox.tox-tinymce-aux .tox-button,
.tox.tox-tinymce-aux .tox-button[disabled] {
  background-color: var(--c-brand-purple);
  border-color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-button::before,
.tox.tox-silver-sink .tox-button::before,
.tox.tox-tinymce-aux .tox-button::before {
  box-shadow: inset 0 0 0 1px #fff, 0 0 0 2px var(--c-brand-purple);
}
.tox.tox-tinymce .tox-naked-btn,
.tox.tox-silver-sink .tox-naked-btn,
.tox.tox-tinymce-aux .tox-naked-btn {
  color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-checkbox__icons .tox-checkbox-icon__checked svg,
.tox.tox-tinymce .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg,
.tox.tox-silver-sink .tox-checkbox__icons .tox-checkbox-icon__checked svg,
.tox.tox-silver-sink .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg,
.tox.tox-tinymce-aux .tox-checkbox__icons .tox-checkbox-icon__checked svg,
.tox.tox-tinymce-aux .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg {
  fill: var(--c-brand-purple);
}
.tox.tox-tinymce input.tox-checkbox__input:focus + .tox-checkbox__icons,
.tox.tox-silver-sink input.tox-checkbox__input:focus + .tox-checkbox__icons,
.tox.tox-tinymce-aux input.tox-checkbox__input:focus + .tox-checkbox__icons {
  box-shadow: inset 0 0 0 1px var(--c-brand-purple);
}
.tox.tox-tinymce .tox-custom-editor:focus-within,
.tox.tox-tinymce .tox-focusable-wrapper:focus,
.tox.tox-tinymce .tox-listboxfield .tox-listbox--select:focus,
.tox.tox-tinymce .tox-textarea-wrap:focus-within,
.tox.tox-tinymce .tox-textarea:focus,
.tox.tox-tinymce .tox-textfield:focus,
.tox.tox-tinymce .tox-toolbar-textfield:focus,
.tox.tox-tinymce .tox-selectfield select:focus,
.tox.tox-silver-sink .tox-custom-editor:focus-within,
.tox.tox-silver-sink .tox-focusable-wrapper:focus,
.tox.tox-silver-sink .tox-listboxfield .tox-listbox--select:focus,
.tox.tox-silver-sink .tox-textarea-wrap:focus-within,
.tox.tox-silver-sink .tox-textarea:focus,
.tox.tox-silver-sink .tox-textfield:focus,
.tox.tox-silver-sink .tox-toolbar-textfield:focus,
.tox.tox-silver-sink .tox-selectfield select:focus,
.tox.tox-tinymce-aux .tox-custom-editor:focus-within,
.tox.tox-tinymce-aux .tox-focusable-wrapper:focus,
.tox.tox-tinymce-aux .tox-listboxfield .tox-listbox--select:focus,
.tox.tox-tinymce-aux .tox-textarea-wrap:focus-within,
.tox.tox-tinymce-aux .tox-textarea:focus,
.tox.tox-tinymce-aux .tox-textfield:focus,
.tox.tox-tinymce-aux .tox-toolbar-textfield:focus,
.tox.tox-tinymce-aux .tox-selectfield select:focus {
  border-color: var(--c-brand-purple);
  box-shadow: 0 0 0 3px var(--c-action-25);
}
.tox.tox-tinymce .tox-color-input span:focus:not([aria-disabled=true]),
.tox.tox-tinymce .tox-color-input span:hover:not([aria-disabled=true]),
.tox.tox-silver-sink .tox-color-input span:focus:not([aria-disabled=true]),
.tox.tox-silver-sink .tox-color-input span:hover:not([aria-disabled=true]),
.tox.tox-tinymce-aux .tox-color-input span:focus:not([aria-disabled=true]),
.tox.tox-tinymce-aux .tox-color-input span:hover:not([aria-disabled=true]) {
  border-color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-dialog__body-nav-item:focus,
.tox.tox-silver-sink .tox-dialog__body-nav-item:focus,
.tox.tox-tinymce-aux .tox-dialog__body-nav-item:focus {
  background-color: rgba(64, 73, 154, 0.08);
}
.tox.tox-tinymce .tox-tbtn:focus::after,
.tox.tox-tinymce .tox-tbtn--enabled:focus::after,
.tox.tox-tinymce .tox-mbtn:focus:not(:disabled)::after,
.tox.tox-tinymce .tox-split-button:focus::after,
.tox.tox-tinymce .tox-number-input:focus::after,
.tox.tox-tinymce .tox-number-input .tox-input-wrapper:focus::after,
.tox.tox-tinymce .tox-number-input .tox-input-wrapper:has(input:focus)::after,
.tox.tox-tinymce .tox-number-input button:focus::after,
.tox.tox-tinymce .tox-statusbar a:focus-visible::after,
.tox.tox-tinymce .tox-statusbar__path-item:focus-visible::after,
.tox.tox-tinymce .tox-statusbar__wordcount:focus-visible::after,
.tox.tox-tinymce .tox-statusbar__resize-handle:focus-visible::after,
.tox.tox-silver-sink .tox-tbtn:focus::after,
.tox.tox-silver-sink .tox-tbtn--enabled:focus::after,
.tox.tox-silver-sink .tox-mbtn:focus:not(:disabled)::after,
.tox.tox-silver-sink .tox-split-button:focus::after,
.tox.tox-silver-sink .tox-number-input:focus::after,
.tox.tox-silver-sink .tox-number-input .tox-input-wrapper:focus::after,
.tox.tox-silver-sink .tox-number-input .tox-input-wrapper:has(input:focus)::after,
.tox.tox-silver-sink .tox-number-input button:focus::after,
.tox.tox-silver-sink .tox-statusbar a:focus-visible::after,
.tox.tox-silver-sink .tox-statusbar__path-item:focus-visible::after,
.tox.tox-silver-sink .tox-statusbar__wordcount:focus-visible::after,
.tox.tox-silver-sink .tox-statusbar__resize-handle:focus-visible::after,
.tox.tox-tinymce-aux .tox-tbtn:focus::after,
.tox.tox-tinymce-aux .tox-tbtn--enabled:focus::after,
.tox.tox-tinymce-aux .tox-mbtn:focus:not(:disabled)::after,
.tox.tox-tinymce-aux .tox-split-button:focus::after,
.tox.tox-tinymce-aux .tox-number-input:focus::after,
.tox.tox-tinymce-aux .tox-number-input .tox-input-wrapper:focus::after,
.tox.tox-tinymce-aux .tox-number-input .tox-input-wrapper:has(input:focus)::after,
.tox.tox-tinymce-aux .tox-number-input button:focus::after,
.tox.tox-tinymce-aux .tox-statusbar a:focus-visible::after,
.tox.tox-tinymce-aux .tox-statusbar__path-item:focus-visible::after,
.tox.tox-tinymce-aux .tox-statusbar__wordcount:focus-visible::after,
.tox.tox-tinymce-aux .tox-statusbar__resize-handle:focus-visible::after {
  box-shadow: 0 0 0 2px var(--c-brand-purple);
}
.tox.tox-tinymce .tox-navobj-bordered-focus.tox-navobj-bordered::before,
.tox.tox-silver-sink .tox-navobj-bordered-focus.tox-navobj-bordered::before,
.tox.tox-tinymce-aux .tox-navobj-bordered-focus.tox-navobj-bordered::before {
  border-color: var(--c-brand-purple);
  box-shadow: 0 0 0 1px var(--c-brand-purple);
}
.tox.tox-tinymce .tox-notification:focus,
.tox.tox-silver-sink .tox-notification:focus,
.tox.tox-tinymce-aux .tox-notification:focus {
  border-color: var(--c-brand-purple);
  box-shadow: 0 0 0 1px var(--c-brand-purple);
}
.tox.tox-tinymce .tox-insert-table-picker .tox-insert-table-picker__selected,
.tox.tox-silver-sink .tox-insert-table-picker .tox-insert-table-picker__selected,
.tox.tox-tinymce-aux .tox-insert-table-picker .tox-insert-table-picker__selected {
  background-color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-slider__handle,
.tox.tox-silver-sink .tox-slider__handle,
.tox.tox-tinymce-aux .tox-slider__handle {
  background-color: var(--c-brand-purple);
  border-color: var(--c-brand-purple-press);
}
.tox.tox-tinymce .tox-toolbar-slider__input::-webkit-slider-thumb,
.tox.tox-silver-sink .tox-toolbar-slider__input::-webkit-slider-thumb,
.tox.tox-tinymce-aux .tox-toolbar-slider__input::-webkit-slider-thumb {
  background-color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-toolbar-slider__input::-moz-range-thumb,
.tox.tox-silver-sink .tox-toolbar-slider__input::-moz-range-thumb,
.tox.tox-tinymce-aux .tox-toolbar-slider__input::-moz-range-thumb {
  background-color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-toolbar-slider__input:focus::-webkit-slider-thumb,
.tox.tox-tinymce .tox-toolbar-slider__input:focus::-moz-range-thumb,
.tox.tox-silver-sink .tox-toolbar-slider__input:focus::-webkit-slider-thumb,
.tox.tox-silver-sink .tox-toolbar-slider__input:focus::-moz-range-thumb,
.tox.tox-tinymce-aux .tox-toolbar-slider__input:focus::-webkit-slider-thumb,
.tox.tox-tinymce-aux .tox-toolbar-slider__input:focus::-moz-range-thumb {
  box-shadow: inset 0 0 0 1px #fff, 0 0 0 2px var(--c-brand-purple);
}
.tox.tox-tinymce .tox-image-selector-loading-spinner,
.tox.tox-silver-sink .tox-image-selector-loading-spinner,
.tox.tox-tinymce-aux .tox-image-selector-loading-spinner {
  border-color: var(--c-brand-purple);
  border-bottom-color: transparent;
}
.tox.tox-tinymce .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2,
.tox.tox-silver-sink .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2,
.tox.tox-tinymce-aux .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2 {
  color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-dialog__body-content .accessibility-issue--info .tox-icon.accessibility-issue__icon svg,
.tox.tox-silver-sink .tox-dialog__body-content .accessibility-issue--info .tox-icon.accessibility-issue__icon svg,
.tox.tox-tinymce-aux .tox-dialog__body-content .accessibility-issue--info .tox-icon.accessibility-issue__icon svg {
  fill: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon,
.tox.tox-silver-sink .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon,
.tox.tox-tinymce-aux .tox-dialog__body-content .accessibility-issue--info a.tox-button--naked.tox-button--icon {
  background-color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-comment.tox-comment--selected:focus,
.tox.tox-silver-sink .tox-comment.tox-comment--selected:focus,
.tox.tox-tinymce-aux .tox-comment.tox-comment--selected:focus {
  border-color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-comment.tox-comment--selected .tox-comment__single:focus::after,
.tox.tox-silver-sink .tox-comment.tox-comment--selected .tox-comment__single:focus::after,
.tox.tox-tinymce-aux .tox-comment.tox-comment--selected .tox-comment__single:focus::after {
  border-color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-promotion-dialog .tox-promotion-dialog-plugin--icon,
.tox.tox-silver-sink .tox-promotion-dialog .tox-promotion-dialog-plugin--icon,
.tox.tox-tinymce-aux .tox-promotion-dialog .tox-promotion-dialog-plugin--icon {
  color: var(--c-brand-purple);
}
.tox.tox-tinymce .tox-promotion-dialog--explore a,
.tox.tox-silver-sink .tox-promotion-dialog--explore a,
.tox.tox-tinymce-aux .tox-promotion-dialog--explore a {
  color: var(--c-brand-purple);
}

.about-qdna {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  text-align: center;
}

.about-qdna__crown {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.about-qdna__lockup {
  display: flex;
  align-items: baseline;
  gap: 9px;
  color: #40499a;
}

.about-qdna__pro {
  font-size: 22px;
  font-weight: 300;
  line-height: 1;
  color: #40499a;
}

.about-qdna__tagline {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: #6b6884;
}

.about-qdna__version {
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.about-qdna__num {
  font-size: 38px;
  font-weight: 300;
  letter-spacing: -0.02em;
  line-height: 1;
  color: #23253a;
  font-variant-numeric: tabular-nums;
}

.about-qdna__channel {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #40499a;
  background: rgba(64, 73, 154, 0.1);
  border-radius: 999px;
  padding: 4px 9px;
}

.about-qdna__grid {
  width: 100%;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: #f7f7fb;
  border: 1px solid #e2e2f0;
  border-radius: 10px;
  overflow: hidden;
}
.about-qdna__grid > div {
  padding: 11px 8px 12px;
  border-left: 1px solid #e2e2f0;
  min-width: 0;
}
.about-qdna__grid > div:first-child {
  border-left: 0;
}
.about-qdna__grid dt {
  margin: 0 0 4px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #8a8fb5;
}
.about-qdna__grid dd {
  margin: 0;
  font-size: 13px;
  font-weight: 500;
  color: #23253a;
  font-variant-numeric: tabular-nums;
  overflow: hidden;
  text-overflow: ellipsis;
}

.about-qdna__actions qdnapro-icon {
  margin-right: 6px;
}

.about-qdna__contact {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
}
.about-qdna__contact a {
  color: #40499a;
  text-decoration: none;
  font-weight: 500;
}
.about-qdna__contact a:hover {
  text-decoration: underline;
}

.about-qdna__dot {
  color: #c3c3d6;
}

.about-qdna__footer {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding-top: 16px;
  border-top: 1px solid #e2e2f0;
}

.about-qdna__by {
  margin: 0;
  font-size: 12.5px;
  color: #6b6884;
}

.about-qdna__copy {
  margin: 0 0 6px;
  font-size: 12px;
  color: #8a8fb5;
}

.about-qdna__eyebrow {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: #8a8fb5;
}

.about-qdna__plate {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  background: #ffffff;
  border: 1px solid #e6e7f2;
  border-radius: 10px;
  padding: 12px 18px;
}
.about-qdna__plate img {
  height: 58px;
  width: auto;
  display: block;
}

.about-qdna__standards {
  margin: 0;
  font-size: 11px;
  line-height: 1.5;
  color: #8a8fb5;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 520px) {
  .about-qdna__plate {
    gap: 10px;
    padding: 10px 12px;
  }
  .about-qdna__plate img {
    height: 44px;
  }
}
.default-overview {
  display: flex;
  flex-flow: column;
  height: calc(100vh - var(--qdna-topbar-h));
  min-height: 0;
  background-color: transparent;
  padding-top: 1rem;
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 1rem;
}
.default-overview .overview-panel-left {
  display: flex;
  flex-flow: column;
  flex: 1;
  min-width: 0;
  padding: 0px;
  margin: 0px 8px 0px 0px;
}
.default-overview .overview-panel-center {
  display: flex;
  flex-flow: column;
  flex: 3;
  min-width: 0;
  padding: 0px;
}
.default-overview > .overview-header {
  display: flex;
  flex-flow: row;
  flex: 0 0 auto;
  min-height: 0;
  padding-top: 10px;
}
.default-overview > .overview-header > #header-pc-card-search {
  display: flex;
  justify-content: flex-end;
  margin-left: auto;
  margin-bottom: 8px;
}
.default-overview > .overview-header > #header-pc-card-search > .overview-card-search__input {
  width: 340px;
  max-width: 100%;
  flex: 0 0 auto;
}
.default-overview > .overview-header > #header-panel-left {
  gap: 16px;
}
.default-overview > .overview-header > #header-panel-left > * {
  background-color: white;
}
.default-overview > .overview-header > #header-panel-left > *:first-child {
  border-top-left-radius: 8px;
}
.default-overview > .overview-header > #header-panel-left > *:last-child {
  border-top-right-radius: 8px;
}
.default-overview > .overview-header > #header-panel-left > * {
  flex: 0 0 auto;
  padding: 8px;
  padding-bottom: 4px;
  padding-top: 4px;
}
.default-overview > .overview-header > #header-panel-left > #header-pl-options {
  display: flex;
  flex-flow: row;
}
.default-overview > .overview-header > #header-panel-left > #header-pl-options > *:last-child {
  margin-left: auto;
  order: 2;
}
.default-overview > .overview-header > #header-panel-left.hidden-content {
  align-self: flex-start;
}
.default-overview > .overview-header > #header-panel-left.hidden-content > *:first-child {
  border-top-left-radius: 8px;
  border-bottom-left-radius: 8px;
}
.default-overview > .overview-header > #header-panel-left.hidden-content > *:last-child {
  border-top-right-radius: 8px;
  border-bottom-right-radius: 8px;
}
.default-overview > .overview-header > #header-panel-center {
  display: flex;
  flex-flow: column;
  gap: 8px;
  margin-bottom: 8px;
}
.default-overview > .overview-header > #header-panel-center > #header-pc-functions {
  display: flex;
  flex: 0 0;
  flex-flow: row;
  align-items: center;
  gap: 4px;
}
.default-overview > .overview-header > #header-panel-center > #header-pc-functions > #header-pc-search {
  display: flex;
  flex-flow: row;
  width: 50%;
}
.default-overview > .overview-header > #header-panel-center > #header-pc-functions > #header-pc-options {
  display: flex;
  flex-flow: row;
  align-items: center;
  flex: 0 0 auto;
}
.default-overview > .overview-header > #header-panel-center > #header-pc-functions > #header-pc-options > * {
  flex: 0 0 auto;
}
.default-overview > .overview-header > #header-panel-center > #header-pc-functions > #header-pc-options > #header-pc-btn-advanced-search .btn-icon-prefix {
  font-size: 21px;
}
.default-overview > .overview-header > #header-panel-center > #header-pc-filters {
  gap: 8px;
}
.default-overview > .overview-body {
  display: flex;
  flex-flow: row;
  flex: 1 1 auto;
  min-height: 0;
}
.default-overview > .overview-body > #body-panel-left {
  margin-top: -9px;
  background-color: white;
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-search {
  display: flex;
  flex-flow: row;
  flex: 0 0 auto;
  padding: 8px;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-search > * {
  flex: 1 1 auto;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-search > *:last-child {
  margin-left: 8px;
  flex: 0 0 auto;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-none {
  flex: 0 0 auto;
  margin: 8px;
}
.default-overview > .overview-body > #body-panel-left > hr {
  border-top-width: 2px;
  border-top-color: #D9DBEB;
  margin: 2px auto 0px;
  width: 94%;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-data {
  display: flex;
  flex-flow: column;
  flex: 1 1 auto;
  padding: 8px;
  min-width: 0;
  overflow-y: scroll;
  overflow-x: hidden;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-data .body-pl-data-record {
  display: flex;
  flex-flow: row;
  flex: 0 0 auto;
  padding: 6px 12px 6px 0px;
  border-radius: 8px;
  cursor: pointer;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-data .body-pl-data-record > *:first-child {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-data .body-pl-data-record > *:last-child {
  flex: 0 0 auto;
  text-align: right;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-data .body-pl-data-record:hover {
  background-color: #F0F1F2;
}
.default-overview > .overview-body > #body-panel-left > #body-pl-data .body-pl-data-record.active {
  background-color: #F0F1F2;
}
.default-overview > .overview-body > #body-panel-center {
  border-radius: 8px;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-header {
  display: flex;
  flex-flow: column;
  flex: 0 0 auto;
  padding: 8px;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-header > div {
  display: flex;
  flex-flow: row;
  flex: 0 0 auto;
  padding: 4px;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-header > div .body-pc-header-option-group {
  display: flex;
  flex-flow: row;
  flex: 0 0 auto;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-header > div .body-pc-header-option-group > #btn-pc-header-options-add-existing {
  margin-right: 8px;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-header > div .body-pc-header-checked-option-group {
  display: flex;
  flex-flow: row;
  flex: 0 0 auto;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-header > div .body-pc-header-checked-option-group > qdna-label#lbl-checked-options-count {
  font-size: 1rem;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-header #body-pc-header-options > .body-pc-header-option-group:not(:only-child):last-child {
  margin-left: auto;
  order: 2;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-header #body-pc-header-checked-options {
  gap: 8px;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data {
  display: flex;
  flex-flow: column;
  flex: 1 1 auto;
  min-width: 0;
  text-align: center;
  overflow-y: auto;
  overflow-x: hidden;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data > table {
  text-align: left;
  table-layout: fixed;
  width: 100%;
  min-width: 0;
  border-collapse: separate;
  border-spacing: 0 1px;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data > table > thead > tr > th {
  position: sticky;
  background-color: #DADADA;
  top: 0;
  z-index: 2;
  padding-top: 4px;
  padding-bottom: 4px;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data > table > thead > tr > th > div {
  display: flex;
  flex-flow: row;
  justify-content: space-between;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data > table > thead > tr > th > div > *:last-child {
  text-align: right;
  display: none;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data > table > tbody > tr > td {
  border-bottom: 1px solid #ccc;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data > table > tbody > tr:hover {
  background-color: #F0F1F2;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data > table > tbody > tr:hover > td {
  background-color: #F0F1F2;
}
.default-overview > .overview-body > #body-panel-center > #body-pc-data > .loader {
  margin: 16px auto;
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  border: 2px solid black;
  border-bottom-color: transparent;
  border-radius: 50%;
  display: inline-block;
  box-sizing: border-box;
  animation: rotation 1s linear infinite;
}
@keyframes rotation {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.default-overview > .overview-body > #body-panel-center.table-view > #body-pc-header {
  background-color: white;
  border-radius: 8px 8px 0 0;
}
.default-overview > .overview-body > #body-panel-center.table-view > #body-pc-data {
  background-color: white;
  border-radius: 0 0 8px 8px;
}
.default-overview > .overview-body > #body-panel-center:not(.table-view) {
  background-color: transparent;
}
.default-overview > .overview-body > #body-panel-center:not(.table-view) > #body-pc-header {
  background-color: white;
  border-radius: 8px;
}
.default-overview > .overview-footer #footer-navigation {
  position: absolute;
  bottom: 48px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 50;
}

.total-data {
  padding-bottom: 70px;
}

.hidden {
  display: none !important;
}

th.checkbox {
  width: 48px;
  border-bottom: 1px solid #ccc;
}
th.checkbox qdna-input {
  display: flex !important;
  justify-content: center !important;
}

.pc-data-table-cell.bigger {
  padding: 16px 0px 16px 0px !important;
}
.pc-data-table-cell qdna-label {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pc-data-table-cell > div {
  min-width: 0;
  height: 36px;
  display: flex;
}

table#body-pc-data-table thead tr {
  cursor: pointer;
}
table#body-pc-data-table tbody tr[data-id] {
  cursor: pointer;
}

.creation-row {
  padding: 8px;
}

.creation-row:last-child {
  padding-bottom: 48px;
}

.id-column {
  width: 82px;
}

#body-pc-data-cards qdnapro-hub-tile[hidden] {
  display: none;
}

.overview-card-search-empty {
  padding: 40px 16px;
  text-align: center;
  color: var(--c-text-muted, #6e7280);
  font-size: 14px;
}

.overview-card-search-empty[hidden] {
  display: none;
}

.overview-card-search-empty__title {
  display: block;
  margin-bottom: 4px;
  font-size: 15px;
  font-weight: 600;
  color: var(--c-text-heading, #1a1f4d);
}

#body-pc-data-cards,
#default-overview-optionsbox {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
  max-width: 100%;
  margin-bottom: 8px;
  text-align: start;
  padding-right: 1rem;
}

#body-pc-data-cards.cards-compact {
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

/* ==========  Side-panel show/hide animation (Jan 2026-06-17)  ==========
   The left/right overview side panels (Teams/Locaties/Units list) are toggled
   via the `.hidden` class (globally `display:none !important`). To make the
   WHOLE row feel fluid — panel AND the neighbouring list moving together —
   we don't pop the panel in/out with display. Instead, under no-preference we
   override `.hidden` to keep the panel in flow at zero width and animate its
   `flex-grow` (0↔1) + opacity. Because the panel and the center list share one
   flex row, the browser redistributes the freed/claimed space frame-by-frame,
   so the list glides to its new width instead of snapping. `overflow:hidden`
   clips the content while the box is narrower than its content; `min-width:0`
   (already on the panel) lets it collapse fully. The "hidden" panel stays at
   0 width / opacity 0 / pointer-events:none — visually gone, no layout cost.
   Under `prefers-reduced-motion: reduce` this whole block is skipped, so the
   global `.hidden { display:none }` applies and the toggle is instant. */
@media (prefers-reduced-motion: no-preference) {
  .default-overview .overview-panel-left,
  .default-overview .overview-panel-right {
    overflow: hidden;
    transition: flex-grow 260ms ease, opacity 200ms ease, margin 260ms ease;
  }
  .default-overview .overview-panel-left.hidden,
  .default-overview .overview-panel-right.hidden {
    display: flex !important; /* beat global .hidden { display:none !important } */
    flex-grow: 0;
    opacity: 0;
    margin-right: 0;
    margin-left: 0;
    pointer-events: none;
  }
}
.tsa-toolbar-colors .slick-next,
.tsa-toolbar-users .slick-next, .tsa-toolbar-colors .slick-prev,
.tsa-toolbar-users .slick-prev, #dashboard-colors .slick-next, #dashboard-users .slick-next, #dashboard-colors .slick-prev, #dashboard-users .slick-prev {
  font-size: 0;
  line-height: 0;
  display: block;
  padding: 0;
  cursor: pointer;
  color: transparent;
  border: none;
  outline: none;
  background: transparent;
  flex: 0 0 auto;
  z-index: 10;
}
.tsa-toolbar-colors .slick-next:focus,
.tsa-toolbar-users .slick-next:focus, .tsa-toolbar-colors .slick-prev:focus,
.tsa-toolbar-users .slick-prev:focus, #dashboard-colors .slick-next:focus, #dashboard-users .slick-next:focus, #dashboard-colors .slick-prev:focus, #dashboard-users .slick-prev:focus {
  color: transparent;
  outline: none;
  background: transparent;
}
.tsa-toolbar-colors .slick-disabled.slick-next:before,
.tsa-toolbar-users .slick-disabled.slick-next:before, .tsa-toolbar-colors .slick-disabled.slick-prev:before,
.tsa-toolbar-users .slick-disabled.slick-prev:before, #dashboard-colors .slick-disabled.slick-next:before, #dashboard-users .slick-disabled.slick-next:before, #dashboard-colors .slick-disabled.slick-prev:before, #dashboard-users .slick-disabled.slick-prev:before {
  opacity: 0.25;
  cursor: default;
}
.tsa-toolbar-colors .slick-next:before,
.tsa-toolbar-users .slick-next:before, .tsa-toolbar-colors .slick-prev:before,
.tsa-toolbar-users .slick-prev:before, #dashboard-colors .slick-next:before, #dashboard-users .slick-next:before, #dashboard-colors .slick-prev:before, #dashboard-users .slick-prev:before {
  display: inline-block;
  font: normal normal normal 24px/1 "Material Design Icons";
  font-size: 24px;
  text-rendering: auto;
  line-height: 1;
  color: #fff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.tsa-dashboard-header-title, .tsa-dashboard-header-color, .tsa-dashboard-header-logo {
  background: #e1e1e1;
  border: 1px dashed rgba(0, 0, 0, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.tsa-dashboard-item-empty, .tsa-dashboard-item {
  min-height: 200px;
  border-radius: 0.25rem;
  position: relative;
  color: #797979;
  height: 100%;
  transition: box-shadow 0.5s;
}

.ts-autometrics {
  display: flex;
  flex-grow: 1;
  height: calc(100vh - 100px);
  overflow: hidden;
}
.ts-autometrics .tsa-sidebar {
  border-radius: 0.25rem;
  margin-right: 0.625rem;
  flex: 0 0 150px;
  max-width: 150px;
  overflow-y: auto;
  background-color: #fff;
}
@media (min-width: 1200px) {
  .ts-autometrics .tsa-sidebar {
    flex: 0 0 200px;
    max-width: 200px;
  }
}
.ts-autometrics .tsa-main {
  border-radius: 0.25rem;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  background: #fff;
}
.ts-autometrics .tsa-main .tsa-toolbar {
  background: #555;
  display: flex;
  padding: 8px 16px;
  color: #fff;
  flex-shrink: 0;
}
.ts-autometrics .tsa-main .tsa-toolbar .slick-slider {
  display: flex;
}
.ts-autometrics .tsa-main .tsa-toolbar-group {
  padding: 0 10px;
  display: flex;
  flex-direction: column;
  white-space: nowrap;
  text-align: center;
  font-size: 0.625rem;
  font-weight: 500;
}
.ts-autometrics .tsa-main .tsa-toolbar-group:not(:first-child) {
  border-left: 1px solid #888888;
}
.ts-autometrics .tsa-main .tsa-toolbar-group-inner {
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.ts-autometrics .tsa-main .tsa-toolbar-group-inner .clearfix {
  display: flex;
  gap: 4px;
}
.ts-autometrics .tsa-main .tsa-toolbar-group.slick-fix {
  flex: 1;
  gap: 4px;
}
.ts-autometrics .tsa-main .tsa-toolbar-item:not(:first-child) {
  margin-left: 8px;
}
.ts-autometrics .tsa-main .tsa-toolbar-btn {
  border: 1px solid rgb(49.3, 49.3, 49.3);
  background: rgb(69.7, 69.7, 69.7);
  color: #fff;
  border-radius: 0.25rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  width: 24px;
  height: 24px;
  line-height: 1;
  transition: 0.3s;
}
.ts-autometrics .tsa-main .tsa-toolbar-btn:hover {
  background: rgb(49.3, 49.3, 49.3);
}
.ts-autometrics .tsa-main .tsa-toolbar-btn-primary {
  background-color: #40499a !important;
  border-color: #40499a !important;
}
.ts-autometrics .tsa-main .tsa-toolbar-btn-primary:hover {
  background-color: rgb(58.0110091743, 66.1688073394, 139.5889908257) !important;
  border-color: rgb(58.0110091743, 66.1688073394, 139.5889908257) !important;
}
.ts-autometrics-modal.modal .modal-content {
  padding: 1rem;
}
.ts-autometrics-modal.modal .modal-header {
  gap: 8px;
  padding: 0 0 0.5rem !important;
  align-items: center;
}
.ts-autometrics-modal.modal .modal-header .modal-title {
  font-size: 1rem;
}
.ts-autometrics-modal.modal img.ts-rounded {
  width: 36px;
  border-radius: 8px;
}
.ts-autometrics-modal.modal .modal-body .table td, .ts-autometrics-modal.modal .modal-body .table th {
  vertical-align: middle !important;
  padding: 0.5rem;
}
.ts-autometrics-modal.modal .modal-body .form-setting-field {
  padding: 0.5rem 0rem;
  gap: 0.75rem;
  display: flex;
  align-items: center;
  width: 75%;
  justify-content: space-between;
}
.ts-autometrics-modal.modal .modal-body .form-setting-field input[type=checkbox] {
  width: 1rem;
  height: 1rem;
}
.ts-autometrics-modal.modal .modal-footer {
  padding: 0.5rem 0 0 !important;
}
.ts-autometrics-modal.modal .modal-icon {
  padding: 8px 16px;
  border-radius: 8px;
}

.tsa-type-selected {
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  text-align: center;
}
.tsa-type-selected a {
  margin-left: 8px;
}
.tsa-type-selected-item {
  flex-direction: column;
  width: 75px;
  height: 75px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px dashed #ababab;
  padding: 10px;
  border-radius: 8px;
}
.tsa-type-selected-item img {
  transform: scale(0.8);
}
.tsa-type-selected-item span {
  font-size: 11px;
}

.tsa-type-selector {
  margin-top: 10px;
  display: flex;
  justify-content: flex-start;
  border: 1px dashed #ababab;
  background: rgb(244.8, 244.8, 244.8);
  border-radius: 8px;
  padding: 10px;
}
.tsa-type-selector-item {
  display: flex;
  width: 100%;
  justify-content: flex-start;
  flex-direction: column;
}
.tsa-type-selector-item-cat {
  width: 100%;
  margin: 0 2px;
  background: #fff;
}
.tsa-type-selector-item-cat-header {
  background: #40499a;
  color: #fff;
  padding: 5px 10px;
  margin-bottom: 5px;
  border-radius: 0.25rem;
  font-size: 14px;
}
.tsa-type-selector-item-cat-list {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
}
.tsa-type-selector-item-cat-list a {
  flex: 0 0 30%;
  max-width: 30%;
  transition: background 0.3s;
  font-size: 12px;
  padding: 5px 10px;
}
.tsa-type-selector-item-cat-list a .tsa-charttype-icon {
  width: 18px;
  height: 18px;
  max-width: 100%;
  margin-right: 10px;
}
.tsa-type-selector-item-cat-list a:hover, .tsa-type-selector-item-cat-list a.active {
  background: rgb(244.8, 244.8, 244.8);
}

.tsa-dashboard {
  padding: 15px 15px 0;
  flex-grow: 1;
  overflow-y: auto;
}

.tsa-dashboard-themes {
  padding: 12px;
  width: 50%;
}
.tsa-dashboard-themes-color {
  width: 25%;
  height: 50px;
  float: left;
}
.tsa-dashboard-themes-color:first-child {
  border-top-left-radius: 0.25rem;
}
.tsa-dashboard-themes-color:last-child {
  border-top-right-radius: 0.25rem;
}
.tsa-dashboard-themes .card {
  max-width: 23.699%;
  width: 23.699%;
  margin: 5px;
  transition: all 1s;
}
.tsa-dashboard-themes .card:last-child {
  margin-right: 0;
}
.tsa-dashboard-themes .card.selected {
  box-shadow: 0 0 10px #9f9f9f;
}
.tsa-dashboard-themes .card:hover {
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}
.tsa-dashboard-themes .card-body {
  padding: 0;
}
.tsa-dashboard-themes .card-footer {
  padding: 10px 0;
  font-size: 12px;
  font-weight: 500;
}

#dash_colors .child_colors,
#dash_colors .ui-sortable-placeholder {
  width: 24px;
  height: 24px;
  border-radius: 50%;
}
#dash_colors .ui-sortable-placeholder {
  float: left;
}
#dash_colors .ui-state-highlight {
  border-style: dashed;
  border-color: rgba(255, 255, 255, 0.5);
  background-color: rgba(255, 255, 255, 0.1);
}

.tsa-dashboard-color {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  position: relative;
  font-size: 0.625rem;
  transition: all 0.5s;
  cursor: pointer;
}
.tsa-dashboard-color > a {
  position: absolute;
  top: -2px;
  right: -2px;
  background: #fff;
  border-radius: 50%;
  width: 12px;
  height: 12px;
  line-height: 12px;
}

.tsa-dashboard-user {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  overflow: hidden;
  margin: 0 auto;
}
@media (min-width: 1520px) {
  .tsa-dashboard-user {
    width: 48px;
    height: 48px;
  }
}

.tsa-dashboard-header {
  padding: 8px 16px;
  color: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-shrink: 0;
}
.tsa-dashboard-header-logo {
  height: 60px;
  min-width: 100px;
  border-radius: 0.25rem;
  overflow: hidden;
}
.tsa-dashboard-header-logo:hover .btn-tr, .tsa-dashboard-header-logo:hover .btn-br {
  opacity: 1;
}
.tsa-dashboard-header-color {
  width: 48px;
  height: 48px;
  border-radius: 50%;
}
.tsa-dashboard-header-title {
  height: 48px;
  border-radius: 0.25rem;
  padding: 32px 16px;
}
.tsa-dashboard-header-title-bold.active, .tsa-dashboard-header-title-italic.active {
  color: #FFF;
  background-color: #40499a;
}
.tsa-dashboard-header-title input {
  font-size: 24px;
  max-width: 350px;
  background: transparent;
  border: none;
  text-align: right;
  padding-right: 15px;
}
.tsa-dashboard-header-title input:focus {
  outline: none;
}
.tsa-dashboard-header-btn {
  width: 24px;
  height: 24px;
  border-radius: 0.25rem;
  background-color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #797979;
  transition: 0.3s;
  box-shadow: none;
  border: none;
}
.tsa-dashboard-header-btn.btn-tr, .tsa-dashboard-header-btn.btn-br {
  opacity: 0;
}
.tsa-dashboard-header-btn:hover {
  color: #797979;
  background: rgb(186.75, 186.75, 186.75);
}

.tsa-dashboard-tabs {
  display: flex;
  align-items: center;
  background-color: #fff;
  flex-shrink: 0;
}
.tsa-dashboard-tabs .ts-tabs {
  flex-grow: 1;
  background: transparent;
  margin: 0;
  padding: 0;
}
.tsa-dashboard-tabs .ts-tabs .active a {
  background: #f5f5f5;
}

.tsa-dashboard-item {
  background: #fff;
  padding: 0 16px 16px;
}
.tsa-dashboard-item .tsa-group-icon {
  position: absolute;
  top: 8px;
  right: 8px;
  display: flex;
}
.tsa-dashboard-item-placeholder {
  border: 2px dashed #878787;
}
.tsa-dashboard-item-question {
  display: flex;
  align-items: center;
  margin-top: 16px;
}
.tsa-dashboard-item-question .ts-icon {
  margin-right: 8px;
}
.tsa-dashboard-item-question .ts-rounded-border {
  background: #ebebeb;
  border-color: #ebebeb;
  color: #666666;
  padding: 6px 12px;
  border-radius: 4px;
}
.tsa-dashboard-item-question input {
  font-size: 14px;
}
.tsa-dashboard-item-type {
  border: 1px dashed #ababab;
  display: flex;
  align-items: center;
  border-radius: 0.25rem;
  margin-bottom: 8px;
  padding: 4px 16px;
  font-size: 14px;
}
.tsa-dashboard-item-type .mdi {
  margin-right: 16px;
  font-size: 24px;
}
.tsa-dashboard-item-type span {
  flex-grow: 1;
}
.tsa-dashboard-item-empty {
  background: #e1e1e1;
  padding: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tsa-dashboard-item-empty > .mdi {
  font-size: 36px;
}
.tsa-dashboard-item-empty .tsa-item-icon {
  position: absolute;
  top: 0;
  right: 0;
}

.tsa-btn {
  font-size: 24px;
  color: #fff;
  border-radius: 6px;
  border: 1px solid rgb(44.5, 44.5, 44.5);
  background: #464646;
  width: 36px;
  height: 36px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 10px;
  transition: 0.3s;
}
.tsa-btn:not(:first-child) {
  margin-left: 8px;
}
.tsa-btn:hover {
  color: #fff;
  background: rgb(59.8, 59.8, 59.8);
}
.tsa-btn-grp {
  display: flex;
}
.tsa-btn-primary {
  background-color: #40499a !important;
  border-color: #40499a !important;
}
.tsa-btn-primary:hover {
  background-color: rgb(58.0110091743, 66.1688073394, 139.5889908257) !important;
  border-color: rgb(58.0110091743, 66.1688073394, 139.5889908257) !important;
}
.tsa-btn-danger {
  background-color: #40499a !important;
  border-color: #40499a !important;
}
.tsa-btn-danger:hover {
  background-color: rgb(58.0110091743, 66.1688073394, 139.5889908257) !important;
  border-color: rgb(58.0110091743, 66.1688073394, 139.5889908257) !important;
}

.tsa-item-icon {
  width: 30px;
  height: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 16px;
  transition: 0.2s;
}
.tsa-item-icon-danger {
  color: #e44d42;
}
.tsa-item-icon-danger:hover {
  color: rgb(225.45, 60.1888888889, 48.15) !important;
}

.tsa-drag-handle, .element-drag-handle {
  font-size: 24px;
  text-align: center;
  cursor: pointer;
}

#dashboard-colors .slick-list, #dashboard-users .slick-list {
  flex-grow: 1;
}
#dashboard-colors .slick-prev, #dashboard-users .slick-prev {
  left: 0;
}
#dashboard-colors .slick-prev:before, #dashboard-users .slick-prev:before {
  content: "\f141";
}
#dashboard-colors .slick-next, #dashboard-users .slick-next {
  right: 0;
}
#dashboard-colors .slick-next:before, #dashboard-users .slick-next:before {
  content: "\f142";
}

.tsa-toolbar-colors .slick-prev:before,
.tsa-toolbar-users .slick-prev:before {
  content: "\f141";
}
.tsa-toolbar-colors .slick-next:before,
.tsa-toolbar-users .slick-next:before {
  content: "\f142";
}

.tsa-slider-grp {
  display: flex;
}

.tsa-chart-colors .tsa-toolbar-btn-add, .tsa-dashboard-users .tsa-toolbar-btn-add {
  background: transparent;
  border: 1px dashed #fff;
  border-radius: 50%;
  color: #fff;
  flex-shrink: 0;
  cursor: pointer;
  transition: background 0.3s;
  width: 24px;
  height: 24px;
  font-size: 10px;
}
.tsa-chart-colors .tsa-toolbar-btn-add:hover, .tsa-dashboard-users .tsa-toolbar-btn-add:hover {
  background: rgba(255, 255, 255, 0.1);
}
.tsa-chart-colors .tsa-toolbar-btn-add:focus, .tsa-dashboard-users .tsa-toolbar-btn-add:focus {
  outline: none;
}

@media (min-width: 1520px) {
  .tsa-dashboard-users .tsa-toolbar-btn-add {
    width: 24px;
    height: 24px;
  }
}

.tsa-charttype-preview {
  padding: 12px 0;
  text-align: center;
}
.tsa-charttype-preview img {
  width: 20px;
  height: 20px;
  margin-bottom: 4px;
}
.tsa-charttype-preview p {
  margin-bottom: 0;
  font-size: 14px;
}

.chart_container .ui-sortable-placeholder {
  min-height: 300px;
}
.chart_container .ui-state-highlight {
  border: none;
  background: transparent;
}
.chart_container .ui-state-highlight > div {
  border: 1px dashed rgba(0, 0, 0, 0.2);
  background: rgba(0, 0, 0, 0.1);
  border-radius: 0.5rem;
  height: 100%;
}
.chart_container .ui-sortable-helper .tsa-dashboard-item {
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.25);
}

#tabs.ui-widget {
  font-family: inherit;
}
#tabs.ui-widget.ui-widget-content {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
}

.tsa-tabs {
  background-color: #e1e1e1;
  display: flex;
  align-items: center;
  padding: 4px 8px 0px 8px;
}
.tsa-tabs .tab-actions {
  position: absolute;
  top: 4px;
  right: 4px;
  opacity: 0;
}
.tsa-tabs .tab-actions span.mdi {
  font-size: 0.75rem;
  cursor: pointer;
  padding: 2px;
  border-radius: 2px;
  color: #40499a;
  background-color: #ccc;
}
.tsa-tabs .btn-circle:hover {
  background: #e1e1e1;
}
.tsa-tabs .ui-widget-header {
  border: none;
  background: transparent;
  padding: 0px 4px 0px 0px;
}
.tsa-tabs .ui-widget-header .ui-state-default {
  background: transparent;
  border: none;
  transition: background 0.3s;
}
.tsa-tabs .ui-widget-header .ui-state-hover {
  background: rgba(255, 255, 255, 0.5);
}
.tsa-tabs .ui-widget-header .ui-tabs-anchor {
  padding: 8px 24px 8px 16px;
  color: inherit;
  font-size: 12px;
  font-weight: 500;
}
.tsa-tabs .ui-widget-header .ui-tabs-active,
.tsa-tabs .ui-widget-header .ui-state-active {
  background: #f5f5f5;
}
.tsa-tabs .ui-widget-header .ui-tabs-active > a,
.tsa-tabs .ui-widget-header .ui-state-active > a {
  color: #333 !important;
}
.tsa-tabs .ui-tabs-nav li {
  margin: 0 !important;
  padding: 0 !important;
}
.tsa-tabs .ui-tabs-nav li:hover .tab-actions {
  opacity: 1;
  transition: opacity 0.1s 0.2s;
}
.tsa-tabs .ui-corner-top,
.tsa-tabs .ui-corner-all {
  border-top-left-radius: 0.5rem;
  border-top-right-radius: 0.5rem;
}
.tsa-tabs .btn-circle {
  margin-top: 0.375rem;
}
.tsa-tabs .tsa-dashboard-header-btn {
  color: #797979;
}
.tsa-tabs .ui-state-highlight {
  border: 1px dashed rgba(0, 0, 0, 0.3);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.5);
}

.element-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-radius: 0.25rem;
}
.element-list-header {
  background: #40499a;
  border-radius: 0.25rem;
  cursor: pointer;
  color: #fff;
  padding: 6px 16px;
  font-size: 0.75rem;
  margin-bottom: 8px;
  display: flex;
}
.element-list-header:not(:first-child) {
  margin-top: 10px;
}
.element-list-header.not-draggable {
  cursor: default;
}
.element-list-header.not-draggable:hover {
  color: #fff;
}
.element-list-item {
  display: block;
  border-radius: 0.25rem;
  cursor: pointer;
  font-size: 0.75rem;
  padding: 4px 12px;
  transition: background 0.3s;
}
.element-list-item:hover {
  background: rgb(244.8, 244.8, 244.8);
}
.element-list-item .charttype-icon {
  width: 16px;
  height: 16px;
  max-width: 100%;
  margin-right: 12px;
}

.tsa-list-item {
  padding-bottom: 12px;
}

.ts-autometrics-popover .popover-body select {
  height: calc(1.5em + 0.75rem + 2px);
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
}

.dms-idoc-page {
  position: relative;
  max-width: 880px;
  margin: 0 auto;
  background: #fff;
  color: #23253a;
  border-radius: 8px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4);
  padding: 40px 48px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

@media (max-width: 640px) {
  .dms-idoc-page {
    padding: 24px 18px;
    border-radius: 0;
    gap: 18px;
  }
}
.dms-idoc-block {
  min-width: 0;
}

.dms-idoc-heading {
  font-size: 1.3rem;
  font-weight: 700;
  margin: 0 0 8px;
  color: #23253a;
}

.dms-idoc-text-body {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #33344a;
  word-break: break-word;
}
.dms-idoc-text-body p {
  margin: 0 0 0.8em;
}
.dms-idoc-text-body p:last-child {
  margin-bottom: 0;
}
.dms-idoc-text-body ul,
.dms-idoc-text-body ol {
  padding-left: 1.4em;
  margin: 0 0 0.8em;
}

.dms-idoc-block-image {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.dms-idoc-img-wrap {
  position: relative;
  display: block;
}

.dms-idoc-img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  display: block;
}

.dms-idoc-img-await {
  height: 160px;
  background: #f4f4fa;
  border: 1px dashed #d7d8ec;
  box-sizing: border-box;
  background-image: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.85) 50%, rgba(255, 255, 255, 0) 100%);
  background-repeat: no-repeat;
  background-size: 40% 100%;
  animation: dms-idoc-img-shimmer 1.4s ease-in-out infinite;
}

@keyframes dms-idoc-img-shimmer {
  from {
    background-position: -60% 0;
  }
  to {
    background-position: 160% 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .dms-idoc-img-await {
    animation: none;
  }
}
.dms-idoc-img-failed {
  display: none;
}

.dms-idoc-img-fallback {
  display: none;
}

.dms-idoc-img-failed + .dms-idoc-img-fallback {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 160px;
  padding: 12px;
  background: #f4f4fa;
  border: 1px dashed #d7d8ec;
  border-radius: 8px;
  box-sizing: border-box;
  color: #6b6884;
  text-align: center;
}

.dms-idoc-img-fallback-text {
  font-size: 0.85rem;
  line-height: 1.3;
  max-width: 24em;
}

.dms-idoc-img-fallback-retry {
  font: inherit;
  font-weight: 600;
  font-size: 0.85rem;
  color: #40499a;
  background: #fff;
  border: 1px solid #d7d8ec;
  border-radius: 999px;
  padding: 6px 14px;
  cursor: pointer;
}
.dms-idoc-img-fallback-retry:hover {
  background: #f0f0f8;
}
.dms-idoc-img-fallback-retry:active {
  transform: scale(0.97);
}

.dms-idoc-img-await ~ .dms-idoc-hotspot,
.dms-idoc-img-failed ~ .dms-idoc-hotspot,
.dms-idoc-img-await ~ .dms-idoc-hotspot-pop,
.dms-idoc-img-failed ~ .dms-idoc-hotspot-pop {
  display: none;
}

.dms-idoc-img-large .dms-idoc-img-wrap {
  width: 100%;
}

.dms-idoc-img-medium .dms-idoc-img-wrap {
  width: 60%;
}

.dms-idoc-img-small .dms-idoc-img-wrap {
  width: 33%;
  min-width: 160px;
}

.dms-idoc-caption {
  font-size: 0.82rem;
  color: #6b6884;
  text-align: center;
}

.dms-idoc-block-video {
  display: flex;
}

.dms-idoc-video-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  border: 1px solid #e2e2f0;
  border-radius: 8px;
  background: #f7f7fb;
  color: #40499a;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9rem;
}
.dms-idoc-video-link:hover {
  background: #edeefb;
}
.dms-idoc-video-link qdnapro-icon {
  color: #ff0000;
  flex: 0 0 auto;
}

.dms-idoc-table-wrap {
  overflow-x: auto;
  position: relative;
  -webkit-overflow-scrolling: touch;
}

.dms-idoc-table {
  border-collapse: separate;
  border-spacing: 0;
  border-left: 1px solid #e2e2f0;
  border-top: 1px solid #e2e2f0;
  width: 100%;
  font-size: 0.88rem;
}
.dms-idoc-table th,
.dms-idoc-table td {
  border: 0;
  border-right: 1px solid #e2e2f0;
  border-bottom: 1px solid #e2e2f0;
  padding: 8px 12px;
  text-align: left;
  vertical-align: top;
}
.dms-idoc-table th {
  background: #f4f4fa;
  font-weight: 700;
  color: #23253a;
}

.dms-idoc-table-wrap th:first-child,
.dms-idoc-table-wrap td:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  background: #fff;
}
.dms-idoc-table-wrap th:first-child {
  background: #f4f4fa;
}

.dms-idoc-table-wrap-overflow:not(.dms-idoc-table-wrap-atend) {
  -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent 100%);
  mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent 100%);
}

.dms-idoc-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: #8a8fb5;
  padding: 40px 0;
  text-align: center;
}

.dms-idoc-hidden {
  display: none !important;
}

.dms-idoc-block-choice {
  min-width: 0;
}

.dms-idoc-choice-title {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0 0 12px;
  color: #23253a;
}

.dms-idoc-choice-options {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.dms-idoc-choice-options-vertical {
  flex-direction: column;
  align-items: flex-start;
}

.dms-idoc-choice-btn {
  appearance: none;
  border: 1px solid #d7d8ec;
  border-radius: 8px;
  background: #edeefb;
  color: #23253a;
  font-size: 0.88rem;
  font-weight: 600;
  padding: 10px 18px;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.dms-idoc-choice-btn:hover {
  background: #dfe0f7;
}
.dms-idoc-choice-btn.dms-idoc-choice-btn-selected {
  background: #40499a;
  border-color: #40499a;
  color: #fff;
}
.dms-idoc-choice-btn.dms-idoc-choice-btn-selected:hover {
  background: #333a80;
}

.dms-idoc-shell {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 20px;
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  box-sizing: border-box;
  container-type: inline-size;
  position: relative;
  overflow: clip;
}

.dms-idoc-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  justify-content: center;
}

.dms-idoc-main .dms-idoc-page {
  margin: 0;
}

.dms-idoc-toc {
  flex: 0 0 220px;
  width: 220px;
  box-sizing: border-box;
  position: sticky;
  top: 0;
  align-self: flex-start;
  background: #fff;
  border: 1px solid #e2e2f0;
  border-radius: 8px;
  padding: 12px;
  max-height: calc(100vh - 32px);
  overflow-y: auto;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.18);
}

.dms-idoc-toc[hidden] {
  display: none;
}

.dms-idoc-toc-header {
  display: flex;
  align-items: center;
}

.dms-idoc-toc-toggle {
  appearance: none;
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 4px 2px;
  cursor: pointer;
  color: #40499a;
  font-weight: 700;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.dms-idoc-toc-toggle qdnapro-icon {
  flex: 0 0 auto;
}

.dms-idoc-toc-list {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.dms-idoc-toc-item {
  appearance: none;
  border: 0;
  background: transparent;
  text-align: left;
  width: 100%;
  padding: 6px 8px;
  border-radius: 6px;
  font-size: 0.85rem;
  color: #33344a;
  cursor: pointer;
}
.dms-idoc-toc-item:hover {
  background: #edeefb;
  color: #40499a;
}

.dms-idoc-toc-fab {
  display: none;
}

.dms-idoc-toc-close {
  display: none;
}

@container (max-width: 760px) {
  .dms-idoc-toc {
    position: fixed;
    top: 0;
    left: 0;
    width: min(300px, 82%);
    height: 100%;
    max-height: none;
    box-sizing: border-box;
    transform: translateX(-100%);
    transition: transform 0.25s ease;
    z-index: 5;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25);
    overflow-y: auto;
  }
  .dms-idoc-toc.dms-idoc-toc-open {
    transform: translateX(0);
  }
  .dms-idoc-toc-header {
    justify-content: space-between;
  }
  .dms-idoc-toc.dms-idoc-toc-open .dms-idoc-toc-close {
    display: flex;
    align-items: center;
    justify-content: center;
    appearance: none;
    border: 0;
    background: transparent;
    color: #6b6884;
    padding: 4px;
    border-radius: 6px;
    cursor: pointer;
    flex: 0 0 auto;
  }
  .dms-idoc-toc.dms-idoc-toc-open .dms-idoc-toc-close:hover {
    background: #edeefb;
    color: #40499a;
  }
  .dms-idoc-main {
    flex: 0 0 100%;
    transition: transform 0.25s ease;
  }
  .dms-idoc-toc.dms-idoc-toc-open ~ .dms-idoc-main {
    transform: translateX(min(300px, 82%));
  }
  .dms-idoc-toc-fab {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 16px;
    left: 16px;
    z-index: 6;
    width: 44px;
    height: 44px;
    box-sizing: border-box;
    border-radius: 50%;
    border: 0;
    background: #40499a;
    color: #fff;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.28);
    transition: background 0.12s ease;
  }
  .dms-idoc-toc-fab:hover {
    background: #333a80;
  }
  .dms-idoc-toc.dms-idoc-toc-open ~ .dms-idoc-toc-fab {
    display: none;
  }
}
.dms-idoc-block-panel {
  min-width: 0;
}

.dms-idoc-panelgroup {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.dms-idoc-panel {
  border: 1px solid #e2e2f0;
  border-radius: 8px;
  background: #fff;
}

.dms-idoc-panel-head {
  appearance: none;
  border: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  background: #f4f4fa;
  color: #23253a;
  font-size: 0.95rem;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  border-radius: 8px;
}
.dms-idoc-panel-head:hover {
  background: #edeefb;
}

.dms-idoc-panel-open > .dms-idoc-panel-head {
  position: sticky;
  top: 0;
  z-index: 2;
  border-radius: 8px 8px 0 0;
}

.dms-idoc-panel-chevron {
  flex: 0 0 auto;
  transition: transform 0.15s ease;
}

.dms-idoc-panel-open .dms-idoc-panel-chevron {
  transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {
  .dms-idoc-panel-chevron {
    transition: none;
  }
}
.dms-idoc-panel-body {
  display: none;
  flex-direction: column;
  gap: 16px;
  padding: 16px 18px;
  border-top: 1px solid #e2e2f0;
}

.dms-idoc-panel-open > .dms-idoc-panel-body {
  display: flex;
}

.dms-idoc-moreinfo {
  border: 1px solid #e2e2f0;
  border-radius: 8px;
  background: #f7f7fb;
}

.dms-idoc-moreinfo-toggle {
  appearance: none;
  border: 0;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: transparent;
  color: #40499a;
  font-size: 0.88rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  border-radius: 8px;
}
.dms-idoc-moreinfo-toggle:hover {
  background: #edeefb;
}
.dms-idoc-moreinfo-toggle span {
  flex: 1 1 auto;
}
.dms-idoc-moreinfo-toggle .dms-idoc-panel-chevron {
  color: #40499a;
}

.dms-idoc-moreinfo-open .dms-idoc-moreinfo-toggle {
  border-radius: 8px 8px 0 0;
}

.dms-idoc-moreinfo-body {
  display: none;
  flex-direction: column;
  gap: 16px;
  padding: 0 16px 16px;
}

.dms-idoc-moreinfo-open .dms-idoc-moreinfo-body {
  display: flex;
}

.dms-idoc-toc-item-indent {
  padding-left: 24px;
  font-size: 0.8rem;
  color: #6b6884;
}

.dms-idoc-hotspot {
  position: absolute;
  transform: translate(-50%, -50%);
  z-index: 1;
  width: 22px;
  height: 22px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  appearance: none;
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
  color: #fff;
  text-decoration: none;
  line-height: 1;
  cursor: default;
}

.dms-idoc-hotspot-clickable {
  cursor: pointer;
  transition: transform 0.12s ease;
}
.dms-idoc-hotspot-clickable:hover, .dms-idoc-hotspot-clickable:focus-visible {
  transform: translate(-50%, -50%) scale(1.15);
}

.dms-idoc-hotspot:focus-visible {
  outline: 2px solid #40499a;
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .dms-idoc-hotspot-clickable {
    transition: none;
  }
  .dms-idoc-hotspot-clickable:hover, .dms-idoc-hotspot-clickable:focus-visible {
    transform: translate(-50%, -50%);
  }
}
.dms-idoc-hotspot-label {
  font-size: 0.68rem;
  font-weight: 700;
  color: #fff;
  line-height: 1;
  pointer-events: none;
}

.dms-idoc-hotspot-open {
  box-shadow: 0 0 0 3px rgba(64, 73, 154, 0.35), 0 1px 4px rgba(0, 0, 0, 0.35);
}

.dms-idoc-hotspot-pop {
  position: absolute;
  transform: translate(calc(-50% + var(--dms-idoc-hs-shift, 0px)), 14px);
  z-index: 2;
  max-width: 260px;
  box-sizing: border-box;
  background: #fff;
  color: #23253a;
  border: 1px solid #e2e2f0;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.22);
  padding: 10px 12px;
  font-size: 0.85rem;
  line-height: 1.5;
  word-wrap: break-word;
}

.dms-idoc-hotspot-pop[hidden] {
  display: none;
}

.dms-idoc-hotspot-pop-text {
  margin: 0 0 8px;
  white-space: pre-wrap;
}

.dms-idoc-hotspot-pop-text:last-child {
  margin-bottom: 0;
}

.dms-idoc-hotspot-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #40499a;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.82rem;
  word-break: break-all;
}
.dms-idoc-hotspot-link:hover {
  text-decoration: underline;
}
.dms-idoc-hotspot-link qdnapro-icon {
  flex: 0 0 auto;
}

@keyframes dms-idoc-flash-pulse {
  0% {
    box-shadow: 0 0 0 4px rgba(64, 73, 154, 0.55);
    background-color: rgba(64, 73, 154, 0.1);
  }
  100% {
    box-shadow: 0 0 0 4px rgba(64, 73, 154, 0);
    background-color: transparent;
  }
}
.dms-idoc-flash {
  animation: dms-idoc-flash-pulse 1.6s ease-out;
  border-radius: 8px;
}

@media (prefers-reduced-motion: reduce) {
  .dms-idoc-flash {
    animation: none;
  }
}
.dms-idoc-search {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: #f7f7fb;
  border: 1px solid #e2e2f0;
  border-radius: 8px;
  margin-bottom: 4px;
}
.dms-idoc-search qdnapro-icon {
  color: #6b6884;
  flex: 0 0 auto;
}

.dms-idoc-search-input {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 320px;
  background: #fff;
  color: #23253a;
  border: 1px solid #d7d8ec;
  border-radius: 6px;
  padding: 6px 10px;
  font-size: 0.85rem;
  font-family: inherit;
  outline: none;
}
.dms-idoc-search-input:focus {
  border-color: #40499a;
}
.dms-idoc-search-input::placeholder {
  color: #8a8fb5;
}
.dms-idoc-search-input::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

.dms-idoc-search-count {
  flex: 0 0 auto;
  font-size: 0.8rem;
  color: #6b6884;
  min-width: 44px;
  text-align: center;
}

.dms-idoc-search-count[hidden] {
  display: none;
}

.dms-idoc-search-count-nomatch {
  color: #c0392b;
}

.dms-idoc-search-nav {
  display: flex;
  align-items: center;
  gap: 2px;
}

.dms-idoc-mark {
  background: #ffe08a;
  color: #23253a;
  border-radius: 2px;
  padding: 0 1px;
}

.dms-idoc-mark-current {
  background: #e8912d;
  color: #fff;
  box-shadow: 0 0 0 2px rgba(232, 145, 45, 0.35);
}

.dms-idoc-print {
  background: #fff;
  color: #23253a;
  font-family: inherit;
}

.dms-idoc-print-doc {
  max-width: 760px;
  margin: 0 auto;
  padding: 24px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 18px;
  font-size: 0.92rem;
  line-height: 1.55;
}

.dms-idoc-print-block {
  min-width: 0;
  page-break-inside: avoid;
  break-inside: avoid;
}

.dms-idoc-print-condition {
  font-size: 0.78rem;
  font-style: italic;
  color: #6b6884;
  margin-bottom: 4px;
}

.dms-idoc-print-choice {
  min-width: 0;
}

.dms-idoc-print-choice-title {
  font-size: 1.02rem;
  font-weight: 700;
  margin: 0 0 6px;
  color: #23253a;
}

.dms-idoc-print-choice-options {
  margin: 0;
  padding-left: 1.3em;
}

.dms-idoc-print-image {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  page-break-inside: avoid;
  break-inside: avoid;
}

.dms-idoc-print-img-wrap {
  position: relative;
  display: block;
  width: 100%;
  max-width: 480px;
}

.dms-idoc-print-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}

.dms-idoc-print-caption {
  font-size: 0.8rem;
  color: #6b6884;
  text-align: center;
}

.dms-idoc-print-hotspot {
  position: absolute;
  transform: translate(-50%, -50%);
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1px solid #fff;
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.dms-idoc-print-hotspot-legend {
  width: 100%;
  max-width: 480px;
  margin: 4px 0 0;
  padding-left: 1.4em;
  font-size: 0.8rem;
  color: #33344a;
}

.dms-idoc-print-panelgroup {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dms-idoc-print-panel {
  border: 1px solid #e2e2f0;
  border-radius: 6px;
  padding: 10px 14px;
  page-break-inside: avoid;
  break-inside: avoid;
}

.dms-idoc-print-panel-title {
  font-weight: 700;
  color: #23253a;
  margin-bottom: 8px;
}

.dms-idoc-print-panel-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

@media print {
  .dms-idoc-print {
    background: #fff;
  }
  .dms-idoc-print-doc {
    max-width: 100%;
    padding: 0;
  }
  .dms-idoc-print-block,
  .dms-idoc-print-panel,
  .dms-idoc-print-image {
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .dms-idoc-print a {
    color: inherit;
    text-decoration: underline;
  }
}
.dms-idoc-block-action {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.dms-idoc-action {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 12px 22px;
  font-size: 0.92rem;
  font-weight: 700;
  font-family: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.1s ease;
}
.dms-idoc-action qdnapro-icon {
  flex: 0 0 auto;
}
.dms-idoc-action:active {
  transform: translateY(1px);
}
.dms-idoc-action:focus-visible {
  outline: 2px solid #40499a;
  outline-offset: 2px;
}

.dms-idoc-action-primary {
  background: #40499a;
  color: #fff;
}
.dms-idoc-action-primary qdnapro-icon {
  color: #fff;
}
.dms-idoc-action-primary:hover {
  background: #333a80;
}

.dms-idoc-action-secondary {
  background: #edeefb;
  color: #23253a;
  border-color: #d7d8ec;
}
.dms-idoc-action-secondary qdnapro-icon {
  color: #40499a;
}
.dms-idoc-action-secondary:hover {
  background: #dfe0f7;
}

.dms-idoc-action-disabled {
  opacity: 0.5;
  cursor: default;
}
.dms-idoc-action-disabled:hover {
  background: inherit;
}
.dms-idoc-action-disabled:active {
  transform: none;
}

.dms-idoc-action-primary.dms-idoc-action-disabled:hover {
  background: #40499a;
}

.dms-idoc-action-secondary.dms-idoc-action-disabled:hover {
  background: #edeefb;
}

.dms-idoc-action-preview {
  cursor: default;
  border: 1px dashed rgba(255, 255, 255, 0.6);
}
.dms-idoc-action-preview:hover {
  background: inherit;
}
.dms-idoc-action-preview:active {
  transform: none;
}

.dms-idoc-action-primary.dms-idoc-action-preview:hover {
  background: #40499a;
}

.dms-idoc-action-secondary.dms-idoc-action-preview:hover {
  background: #edeefb;
}

@media (prefers-reduced-motion: reduce) {
  .dms-idoc-action {
    transition: none;
  }
}
.dms-idoc-action-note {
  font-size: 0.78rem;
  color: #6b6884;
}

.dms-idoc-action-note-preview {
  font-style: italic;
}

.dms-idoc-print-action {
  display: flex;
}

.dms-idoc-print-action-label {
  display: inline-block;
  border: 1px solid #6b6884;
  border-radius: 6px;
  padding: 8px 16px;
  font-weight: 700;
  color: #23253a;
}

.dms-idoc-ref-notice {
  position: absolute;
  z-index: 5;
  max-width: 280px;
  padding: 7px 11px;
  border-radius: 6px;
  background: #23253a;
  color: #fff;
  font-size: 12px;
  line-height: 1.4;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.28);
  pointer-events: none;
  animation: dms-idoc-ref-notice-in 0.14s ease-out;
}

@keyframes dms-idoc-ref-notice-in {
  from {
    opacity: 0;
    transform: translateY(-3px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.dms-idoc-print-ref {
  color: inherit;
  text-decoration: none;
}

/* === Briefing modal (qdnapro-wysiwyg) ===
   Verhuisd uit scss/v1/tasklist-activities.scss op 03.08.2026. Het modal wordt nu
   door TWEE pagina's gebruikt (de activiteitenpagina en de flow editor, voor een
   briefing op een vraag), en tasklist-activities.css wordt alleen door de
   activiteitenpagina geladen. Beide pagina's laden style-v1.css, dus daar hoort dit. */
/* The briefing editor is a full-document writing surface, so give the modal
   nearly the whole viewport and let the editor FILL it via a flex chain
   (modal-body -> briefing-modal-body -> editor-col -> wysiwyg -> .tox-tinymce),
   each link min-height:0 so the edit area gets a definite height and scrolls
   INTERNALLY. ID specificity (0,1,1) beats the component's .modal-size-large
   (0,3,0) max-height:800 cap. [Kim 2026-06-11] */
#modal-briefing .modal-dialog {
  height: min(960px, 100vh - 32px);
  max-width: min(1400px, 100vw - 56px);
  min-height: 0;
  overflow: hidden;
}

#modal-briefing .modal-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.briefing-modal-body {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
}

.briefing-editor-col {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

#modal-briefing qdnapro-wysiwyg,
#modal-briefing .qdnapro-wysiwyg {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

#modal-briefing .tox-tinymce {
  flex: 1 1 auto;
  min-height: 0;
}

/* === Live device-preview (right column of the briefing split) === */
.briefing-preview-col {
  flex: 0 0 clamp(320px, 36%, 520px);
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  border-left: 1px solid #eceef5;
  background: #f6f7fb;
  border-radius: 0 8px 8px 0;
  overflow: hidden;
}

.briefing-preview-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-bottom: 1px solid #eceef5;
  flex-shrink: 0;
}

.bp-bar-title {
  font-size: 13px;
  font-weight: 600;
  color: #3b4252;
}

.bp-device-toggle {
  display: flex;
  gap: 2px;
  margin-left: auto;
  background: #eceef5;
  border-radius: 8px;
  padding: 2px;
}

.bp-device {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 26px;
  border: 0;
  background: transparent;
  border-radius: 6px;
  color: #6b7280;
  cursor: pointer;
  transition: background 120ms, color 120ms;
}

.bp-device:hover {
  color: #3b4252;
}

.bp-device.is-active {
  background: #fff;
  color: #4652f3;
  box-shadow: 0 1px 2px rgba(17, 20, 45, 0.1);
}

.bp-device-dims {
  font-size: 11px;
  color: #9aa0ad;
  font-variant-numeric: tabular-nums;
  min-width: 62px;
  text-align: right;
}

.briefing-preview-stage {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 24px;
}

.bp-sizer {
  position: relative;
  flex-shrink: 0;
}

.briefing-preview-frame {
  position: absolute;
  top: 0;
  left: 0;
  transform-origin: top left;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #e1e3e6;
  overflow: hidden;
  box-shadow: 0 6px 24px rgba(17, 20, 45, 0.16);
}

.briefing-preview-frame[data-device=phone] {
  border-radius: 22px;
}

.briefing-preview-frame[data-device=tablet] {
  border-radius: 16px;
}

.briefing-preview-frame[data-device=desktop] {
  border-radius: 8px;
}

.briefing-preview-iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background: #fff;
}

[data-theme=dark] .briefing-preview-col {
  background: #1b1d27;
  border-left-color: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .briefing-preview-bar {
  border-bottom-color: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .bp-bar-title {
  color: #d4d7e0;
}

[data-theme=dark] .bp-device-toggle {
  background: #2a2d3a;
}

[data-theme=dark] .bp-device.is-active {
  background: #3a3f52;
  color: #aeb4ff;
}

.briefing-modal-footer {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-top: 16px;
  margin-top: 8px;
  border-top: 1px solid #eceef5;
}

/* "Elke keer opnieuw tonen" toggle. Sits at the far left of the footer, before
   the status text, so it reads as a property of the briefing you are about to
   save rather than as another action button. [Kim 03.08.2026]
   De vraag-briefing hangt "knop tonen bij de vraag" op exact dezelfde vorm, dus
   de klasse is generiek: één toggle-blok, per consumer een andere tekst. */
.briefing-repeat-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-right: 16px;
}

.briefing-repeat-text {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}

.briefing-repeat-label {
  font-size: 13px;
  font-weight: 600;
  color: #1f2430;
}

.briefing-repeat-sub {
  font-size: 11.5px;
  color: #6b7280;
}

[data-theme=dark] .briefing-repeat-label {
  color: #f3f4f6;
}

[data-theme=dark] .briefing-repeat-sub {
  color: #a6aab3;
}

/* Een toggle-blok dat niet bij deze consumer hoort, staat op hidden. Zonder deze
   regel zou display:flex het `hidden`-attribuut overrulen en stond hij er alsnog. */
.briefing-repeat-toggle[hidden] {
  display: none;
}

/* Status text (e.g. "Concept opgeslagen") sits far-left, buttons right. */
.briefing-status {
  margin-right: auto;
  font-size: 13px;
  color: #6b7280;
}

.briefing-status[data-kind=concept] {
  color: #8a6d1f;
}

.briefing-status[data-kind=live] {
  color: #2f8a5b;
  font-weight: 600;
}

.briefing-status[data-kind=error] {
  color: #c33a30;
}

[data-theme=dark] .briefing-modal-footer {
  border-top-color: rgba(255, 255, 255, 0.08);
}

[data-theme=dark] .briefing-status {
  color: #a6aab3;
}

/* ============================================================================
   BlockStrip — de GEDEELDE blokkenlijst (client/shared/BlockStrip.vue).
   ----------------------------------------------------------------------------
   Gebruikt door de interactieve-documenteditor én de rapport-editor. Stond eerder
   als `.idoc-fs-*` / `.idoc-add-*` in de <style> van `documents/interactive-editor.html`
   en is bij het gelijktrekken van de twee editors (Jan, 2026-08-03) hierheen verhuisd
   en hernoemd naar `bstrip-*`.

   ⚠️ Deze stijlen zitten in `style-v1.css`, dus ELKE pagina die de blokkenlijst mount
      heeft ze al — nooit een los CSS-bestand naast de editor hangen (huisregel).
   ⚠️ Bewerk je hier iets, dan verandert het in BEIDE editors. Dat is de bedoeling:
      precies daarom staat het hier en niet twee keer.
   ============================================================================ */
/* ── de "+"-balk tussen en rond de kaarten ─────────────────────────────────── */
.bstrip-add-bar {
  position: relative;
  display: flex;
  justify-content: center;
  height: 14px;
}

.bstrip-add-bar-btn {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1px dashed #d3d3e6;
  background: #fff;
  color: #8a8fb5;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.12s, border-color 0.12s, color 0.12s;
  padding: 0;
}

.bstrip-add-bar:hover .bstrip-add-bar-btn,
.bstrip-add-bar-open .bstrip-add-bar-btn {
  opacity: 1;
  border-color: #40499a;
  color: #40499a;
}

/* Lege lijst: zonder dit stond er niets dan één "+" die je moest raken om te zien —
   "een raadselspel" (Jan, 2026-07-22). Zolang er geen blokken zijn staat de "+" er
   blijvend, met een hint erboven. Allebei weg zodra het eerste blok geplaatst is. */
.bstrip-empty-hint {
  text-align: center;
  color: #b3b3c6;
  font-size: 12.5px;
  padding: 24px 12px 4px;
}

.bstrip-add-bar-empty {
  height: auto;
  padding: 4px 0 20px;
}

.bstrip-add-bar-empty .bstrip-add-bar-btn {
  opacity: 1;
}

.bstrip-add-picker {
  position: absolute;
  z-index: 20;
  top: 22px;
  left: 50%;
  transform: translateX(-50%);
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 6px 24px rgba(34, 32, 58, 0.18);
  padding: 6px;
  display: flex;
  flex-direction: column;
  min-width: 170px;
}

.bstrip-add-picker-up {
  top: auto;
  bottom: 22px;
}

.bstrip-add-picker-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border: none;
  background: none;
  border-radius: 6px;
  font-size: 13px;
  color: #23253a;
  text-align: left;
  cursor: pointer;
}

.bstrip-add-picker-item:hover {
  background: #f3f5ff;
  color: #40499a;
}

/* ── de kaart ──────────────────────────────────────────────────────────────── */
.bstrip-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 7px;
  padding: 9px 8px;
  border-radius: 8px;
  cursor: pointer;
  border: 1px solid #d6d8dd;
  background: #fff;
}

.bstrip-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.bstrip-card:hover {
  background: #f7f7fb;
}

.bstrip-card-selected {
  background: #f3f5ff;
  border-color: var(--c-brand-purple);
}

.bstrip-card-incomplete .bstrip-snippet {
  opacity: 0.65;
  font-style: italic;
}

.bstrip-card-checked {
  background: #f3f5ff;
}

.bstrip-drag-handle {
  color: #c3c3d6;
  cursor: grab;
  flex: 0 0 auto;
}

/* ── slepen: de lijst herschikt LIVE ───────────────────────────────────────────
   Tijdens het slepen schuift elke kaart met een `transform` naar de plek die hij bij
   lossen zou krijgen; de volgorde in de data verandert pas bij het lossen. Zie de lange
   toelichting bij `onDragStart` in BlockStrip.vue — vooral wáárom er hier alleen
   `transform` staat en de kaarten nooit met de hand verplaatst mogen worden.

   ⚠️ De overgang hangt aan `.bstrip-dragging` en niet aan `.bstrip-card` zelf. Die klasse
      verdwijnt in dezelfde render als de echte herordening, zodat een kaart die door Vue
      naar zijn nieuwe plek wordt gezet daar NIET naartoe animeert (hij staat er al) — en
      een gewone her-render buiten een sleep om nooit gaat schuiven.
   ⚠️ Duur bewust kort (~165ms): dit loopt terwijl je nog sleept, dus een kaart moet zijn
      beweging af hebben vóór je de volgende grens overgaat. Trager voelt stroperig en laat
      de lijst achterlopen op je cursor. */
.bstrip-dragging .bstrip-card {
  transition: transform 165ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* De opgepakte kaart blijft zichtbaar op zijn landingsplek, maar gedimd: hij is "in
   beweging", en de volle kaart hangt op dat moment als sleep-schaduw onder je cursor. */
.bstrip-card-dragsource {
  opacity: 0.5;
}

.bstrip-type-icon {
  color: #6b6884;
  flex: 0 0 auto;
}

.bstrip-snippet {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13px;
  color: #33344a;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Het "Zeker?"-label van het twee-staps verwijderen. Staat hier — bij de blokkenlijst — omdat dit
   gebaar één plek hoort te hebben: `shared/arm-delete.js` bewaakt de TERMIJN, deze regel het BEELD.
   `.idoc-arm-label` is dezelfde stap in de blokFORMULIEREN van de documenteditor (optieregels,
   paneelregels, hotspot-regels). Twee namen, één regel — anders lopen ze uit elkaar op kleur.
   ⚠️ `white-space: nowrap` is functioneel: een label dat afbreekt maakt de rij hoger en dan
   verschuift de prullenbak alsnog, precies wat de tweede klik moet kunnen vertrouwen. */
/* `.qfr-arm` is dezelfde stap in `qdnapro-format-rules` (de voorwaardelijke opmaak van een
   rapportkolom). Dat is een COMPONENT en geen pagina, maar de regel staat hier bij de andere drie
   omdat de comment hierboven precies dat vraagt: vier namen, één regel — anders lopen ze uit elkaar
   op kleur, en dan heet hetzelfde gebaar op vier plekken iets anders. */
.bstrip-arm-label,
.idoc-arm-label,
.qfr-arm,
.rpe-arm {
  font-size: 11.5px;
  color: #c33a30;
  font-weight: 600;
  white-space: nowrap;
  flex: 0 0 auto;
}

/* De actiehoek van een kaart. Bestaat als eigen element omdat de natieve klik hier moet STOPPEN —
   zie de ⚠️ in BlockStrip.vue: zonder die stopper selecteert een klik op de prullenbak óók nog de
   kaart die daarmee net verdween. */
.bstrip-card-acties {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 0 0 auto;
}

/* Miniatuur van het echte blok, bovenaan afgesneden. De binnenkant tekent op volle
   breedte en wordt daarna verkleind; `pointer-events:none` houdt hem inert zodat een
   klik doorvalt naar de kaart zelf. */
.bstrip-preview {
  height: 88px;
  overflow: hidden;
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--c-brand-purple) 45%, transparent);
  border-radius: 8px;
}

.bstrip-preview-inner {
  width: 760px;
  transform: scale(0.33);
  transform-origin: top left;
  pointer-events: none;
  padding: 14px 16px;
  box-sizing: border-box;
  color: #23253a;
}

/* ── meervoudige selectie ──────────────────────────────────────────────────── */
.bstrip-checkbox-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 18px;
  opacity: 0;
  transition: opacity 0.12s;
}

.bstrip-card:hover .bstrip-checkbox-wrap,
.bstrip-mode-select .bstrip-checkbox-wrap {
  opacity: 1;
}

.bstrip-selectbar {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 8px 10px;
  margin-bottom: 10px;
  border-radius: 12px;
  background: rgba(232, 235, 252, 0.55);
  border: 1px solid rgba(64, 73, 154, 0.1);
}

.bstrip-selchip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  padding: 5px 10px;
  border: none;
  border-radius: 999px;
  background: #e2e6fc;
  color: #40499a;
  font: 600 12px "Inter", sans-serif;
}

.bstrip-selchip:hover {
  background: #d5dbfa;
}

.bstrip-selectbar-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  flex-wrap: wrap;
}

/* Een UITGEZETTE actieknop moet aanwijsbaar blijven, anders is zijn tooltip — die
   uitlegt waaróm hij grijs is — onbereikbaar. De knop zelf doet bij `disabled` toch
   al niets, dus pointer-events terugzetten blijft klik-veilig. */
.bstrip-selectbar-actions .qdnapro-icon-btn.icon-btn-disabled {
  pointer-events: auto;
}

.tls-intro {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 4px 8px 20px;
}
.tls-intro__title {
  font-size: 22px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--c-text-heading, #1a1f4d);
}
.tls-intro__text {
  font-size: 14px;
  color: var(--c-text-muted, #6e7280);
  max-width: 62ch;
}

.tls-layout {
  display: grid;
  grid-template-columns: 236px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  padding-bottom: 96px;
}
@media (max-width: 900px) {
  .tls-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}

.tls-nav {
  background: var(--c-bg-card, #ffffff);
  border: 1px solid var(--c-border-soft-2, #e6e9ef);
  border-radius: var(--r-card, 16px);
  box-shadow: var(--shadow-card, 0 1px 2px rgba(20, 25, 80, 0.04), 0 4px 16px rgba(20, 25, 80, 0.04));
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  position: sticky;
  top: 16px;
}
@media (max-width: 900px) {
  .tls-nav {
    position: static;
  }
}
.tls-nav__label {
  padding: 12px 12px 8px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-text-muted, #6e7280);
}

.tls-main {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}

.tls-search {
  max-width: 420px;
}

.tls-layout.is-searching .tls-panel {
  display: flex;
}

.tls-layout qdnapro-list-row[hidden],
.tls-layout qdnapro-section-card[hidden],
.tls-main qdnapro-empty-state[hidden] {
  display: none;
}

.tls-panel {
  display: none;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.tls-panel.is-active {
  display: flex;
}

.tls-control {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
}
.tls-control qdnapro-select {
  width: clamp(220px, 24vw, 360px);
}
.tls-control #tls-name,
.tls-control #tls-purpose {
  width: clamp(220px, 26vw, 380px);
}
.tls-control [data-tls-duration] {
  width: 180px;
}

.tls-saved {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  border-radius: var(--r-pill, 999px);
  background: var(--c-signal-green-bg, #c5f5e2);
  color: var(--c-signal-green-text, #428b6e);
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(-2px);
  transition: opacity 200ms ease, transform 200ms ease;
  pointer-events: none;
}
.tls-saved.is-on {
  opacity: 1;
  transform: none;
}
.tls-saved.tls-saved--error {
  background: var(--c-signal-red-bg, #fee3e3);
  color: var(--c-signal-red-text, #c65a5a);
}
@media (prefers-reduced-motion: reduce) {
  .tls-saved {
    transition: none;
  }
}

.tls-field-error {
  margin-top: 4px;
  font-size: 12px;
  color: var(--c-signal-red-text, #c65a5a);
}
.tls-field-error:empty {
  display: none;
}

.tls-duration {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tls-info {
  min-width: 0;
}
.tls-info__title {
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 600;
  color: var(--c-text-heading, #1a1f4d);
  padding-right: 24px;
}
.tls-info [data-tls-info-note]:not(:empty) {
  margin-top: 12px;
}

.udp-panel {
  background: var(--c-bg-card);
  border: 1px solid var(--c-border-card);
  border-radius: var(--r-card);
  overflow: hidden;
  box-shadow: var(--shadow-card);
}

.udp-ph {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 14px;
  border-bottom: 1px solid var(--c-border-soft-2);
}

.udp-pt {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--c-brand-purple);
}

.udp-pb {
  padding: 11px 14px;
}

.udp-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.udp-hero-left {
  display: flex;
  align-items: center;
  gap: var(--s-4);
}

.udp-name {
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--c-text-heading);
  letter-spacing: -0.025em;
  line-height: 1.1;
}

.udp-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--c-text-muted);
  margin-top: 3px;
}

.udp-dot {
  color: var(--c-border-card);
}

.udp-lock {
  display: flex;
  align-items: center;
  gap: 6px;
}

.udp-lock-label {
  font-size: 11px;
  color: var(--c-text-muted);
}

.udp-fg {
  display: grid;
  gap: 10px 16px;
}

.udp-fg-2 {
  grid-template-columns: 1fr 1fr;
}

.udp-fg-3 {
  grid-template-columns: 1fr 1fr 1fr;
}

.udp-fl {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--c-text-muted);
  text-transform: uppercase;
  margin-bottom: 2px;
}

.udp-fv {
  font-size: 12.5px;
  color: var(--c-text-body);
}

.udp-fe {
  font-size: 12px;
  color: var(--c-text-muted);
  font-style: italic;
}

.udp-input {
  width: 100%;
  padding: 5px 8px;
  border: 1px solid var(--c-border-card);
  border-radius: var(--r-btn);
  font-size: 12px;
  font-family: inherit;
  color: var(--c-text-body);
  background: var(--c-bg-page);
  box-sizing: border-box;
  height: 28px;
}

.udp-input:focus {
  outline: none;
  border-color: var(--c-brand-purple);
  box-shadow: 0 0 0 2px rgba(64, 73, 154, 0.12);
}

.udp-textarea {
  height: 72px;
  resize: vertical;
  line-height: 1.4;
}

.udp-ef-footer {
  display: flex;
  gap: 8px;
  padding: 8px 14px;
  border-top: 1px solid var(--c-border-soft-2);
  justify-content: flex-end;
  background: var(--c-bg-page);
}

.udp-save-btn {
  background: var(--c-brand-purple);
  color: white;
  border: none;
  border-radius: var(--r-btn);
  padding: 5px 14px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
}

.udp-save-btn:hover {
  opacity: 0.88;
}

.udp-cancel-btn {
  background: none;
  border: 1px solid var(--c-border-card);
  border-radius: var(--r-btn);
  padding: 5px 14px;
  font-size: 12px;
  color: var(--c-text-muted);
  cursor: pointer;
  font-family: inherit;
}

.udp-cancel-btn:hover {
  background: var(--c-bg-card);
}

.udp-edit-btn {
  font-size: 11px;
  color: var(--c-brand-purple);
  background: none;
  border: 1px solid var(--c-border-soft-2);
  border-radius: 4px;
  cursor: pointer;
  padding: 2px 8px;
  font-family: inherit;
  font-weight: 500;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s, background 0.12s;
}

.udp-edit-btn:hover {
  background: var(--c-bg-page);
}

.udp.editing .udp-edit-btn {
  opacity: 1;
  pointer-events: auto;
}

.udp-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 7px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 600;
}

.udp-badge-gray {
  background: var(--c-bg-page);
  color: var(--c-text-muted);
}

.udp-badge-green {
  background: #DCFCE7;
  color: #15803D;
}

.udp-badge-blue {
  background: #DBEAFE;
  color: #1D4ED8;
}

.udp-badge-purple {
  background: #EDE9FE;
  color: #6D28D9;
}

.udp-badge-type {
  background: var(--c-light-purple-100, #EEF0FB);
  color: var(--c-brand-purple);
}

.udp-img {
  width: 40px;
  height: 40px;
  border-radius: var(--r-card);
  object-fit: cover;
  background: var(--c-bg-page);
  border: 1px solid var(--c-border-soft-2);
  flex-shrink: 0;
}

.udp-img-wrap {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
  cursor: default;
}

.udp-visual-tile {
  width: 40px;
  height: 40px;
  border-radius: var(--r-card);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: var(--c-grey-100);
}

.udp-visual-tile--grey {
  background: var(--c-grey-50);
}

.udp-visual-tile--red {
  background: var(--c-signal-red-bg);
}

.udp-visual-tile--yellow {
  background: var(--c-chip-yellow-bg);
}

.udp-visual-tile--green {
  background: var(--c-chip-green-bg);
}

.udp-visual-tile--blue {
  background: var(--c-signal-blue-bg);
}

.udp-visual-tile--bright-blue {
  background: var(--c-chip-bright-blue-2-bg);
}

.udp-visual-tile--pink {
  background: var(--c-signal-pink-bg);
}

.udp-visual-tile--purple {
  background: var(--c-chip-purple-bg);
}

.udp-visual-avatar {
  flex-shrink: 0;
}

.udp-img-overlay {
  position: absolute;
  inset: 0;
  border-radius: var(--r-card);
  background: rgba(0, 0, 0, 0.42);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s;
}

.udp-img-overlay-icon {
  color: #fff;
  font-size: 14px;
}

.udp-audit-body::-webkit-scrollbar {
  width: 4px;
}

.udp-audit-body::-webkit-scrollbar-thumb {
  background: var(--c-border-card);
  border-radius: 2px;
}

.udp-audit-body::-webkit-scrollbar-thumb:hover {
  background: var(--c-text-muted);
}

.udp-audit-body::-webkit-scrollbar-track {
  background: transparent;
}

.udp-audit-feed .udp-ta {
  font-weight: 400;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.udp-audit-hdr {
  padding: 8px 14px;
  border-bottom: 1px solid var(--c-border-soft-2);
  background: var(--c-bg-card);
  flex-shrink: 0;
}

.udp-audit-ph {
  flex: 1;
  margin-top: 8px;
  padding: 12px 8px;
  background: var(--c-bg-card);
  border-radius: var(--r-row);
  border: 1.5px dashed var(--c-border-card);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 60px;
}

.udp-audit-ph-sub {
  font-size: 10.5px;
  color: var(--c-text-muted);
  margin-top: 2px;
  line-height: 1.4;
}

.udp-audit-ph-title {
  font-size: 11px;
  font-weight: 700;
  color: var(--c-brand-purple);
  margin-top: 5px;
}

.udp-audit-v {
  background: var(--c-bg-card);
  border: 1px solid var(--c-border-soft-2);
  border-radius: var(--r-row);
  padding: 0 4px;
  font-weight: 600;
  color: var(--c-text-body);
}

.udp-mgmt {
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--c-border-soft-2);
}

.udp-mgmt-lbl {
  color: var(--c-text-muted);
}

.udp-mgmt-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11.5px;
  margin-bottom: 4px;
}

.udp-mgmt-row:last-child {
  margin-bottom: 0;
}

.udp-mgmt-section-lbl {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-text-muted);
  margin-bottom: 6px;
}

.udp-mgmt-val {
  color: var(--c-text-body);
  font-weight: 500;
  font-size: 11px;
}

.udp-ta {
  font-size: 11.5px;
  color: var(--c-text-body);
  font-weight: 500;
}

.udp-td {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--c-brand-purple);
  flex-shrink: 0;
  margin-top: 4px;
}

.udp-td.dim {
  background: var(--c-border-card);
}

.udp-te {
  display: flex;
  gap: 8px;
  padding: 6px 0;
  border-bottom: 1px solid var(--c-border-soft-2);
}

.udp-te:last-of-type {
  border-bottom: none;
}

.udp-tl {
  display: flex;
  flex-direction: column;
}

.udp-tm {
  font-size: 10.5px;
  color: var(--c-text-muted);
  margin-top: 1px;
}

.udp-main::-webkit-scrollbar {
  width: 4px;
}

.udp-main::-webkit-scrollbar-thumb {
  background: var(--c-border-card);
  border-radius: 2px;
}

.udp-main::-webkit-scrollbar-track {
  background: transparent;
}

.udp.editing .udp-img-wrap {
  cursor: pointer;
}

.udp.editing .udp-img-wrap:hover .udp-img-overlay {
  opacity: 1;
}

[id^=udp-ef-].udp-ef-open {
  max-height: 2000px;
  pointer-events: auto;
  animation: udpRollDown 0.26s cubic-bezier(0.4, 0, 0.2, 1) both;
}

[id^=udp-ro-].udp-ro-hidden {
  display: none;
}

/* Pulse-campagnepagina — pagina-gescoopt (pulse-*).
   Let op: geen Twig-commentaar in dit blok (dat breekt de hele pagina). */
/* --- Kop: één witte laag die doorloopt vanaf de breadcrumb-balk ---------- */
/* Zelfde "geopende kaart"-idioom als de takenlijstpagina: een doorschijnende
   witte laag met een verloop-masker, zodat de paarse pagina eronder begint. */
.pulse-detail-header {
  position: relative;
  z-index: 1;
  padding: 18px 28px 22px;
}

.pulse-detail-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(20px) saturate(1.6);
  -webkit-backdrop-filter: blur(20px) saturate(1.6);
  -webkit-mask-image: linear-gradient(to bottom, #000 40%, rgba(0, 0, 0, 0) 100%);
  mask-image: linear-gradient(to bottom, #000 40%, rgba(0, 0, 0, 0) 100%);
}

/* --- Campagnekop: hero-kopie van de projectenpagina --------------------- */
/* 1-op-1 gekopieerd van .pv2-hero c.s. in projects-v2.html (regels 229-307):
   foto met verloop-overlay, ronde glazen terugknop, witte titel, omschrijving
   en meta, avatar-stack met plusknop, en het actiecluster (favoriet +
   meer-menu) rechtsboven. Prefix is .pulse-hero i.p.v. .pv2-hero; de nieuwe
   kop-markup die deze klassen gebruikt komt in een volgende kaart.

   AANNAME, nog te checken bij die markup-kaart: .pulse-hero zit rechtstreeks
   IN .pulse-detail-header (hierboven), waarvan de padding (18px 28px 22px)
   hier met negatieve marges wordt opgeheven zodat de foto — net als
   .pv2-hero op de projectenpagina — tot de rand van de kop loopt. Nest de
   markup anders, dan moet deze negatieve marge mee verhuizen. */
.pulse-hero {
  position: relative;
  /* One source for the hero height; the breakpoints below and the
     glass-navbar pull-up both read this token instead of re-stating px. */
  --pulse-hero-h: 280px;
  height: var(--pulse-hero-h);
  margin: -18px -28px -22px;
  display: flex;
  align-items: flex-end;
  padding: 24px 28px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-color: var(--c-purple-200);
  /* Naam voor de cross-document view-transition hieronder. */
  view-transition-name: pulse-hero-photo;
}

.pulse-hero-overlay {
  position: absolute;
  inset: 0;
  /* Readability scrim (19.08.2026, Kim): Pulse covers are often light,
     pastel illustrations where the pv2 gradient is too thin around the
     title zone. Two stacked gradients: a stronger bottom scrim that
     starts higher, plus a left-side scrim over the text column so the
     right side of the illustration stays visible. Works together with
     the text-shadow on .pulse-hero-info below. */
  background: linear-gradient(to right, rgba(0, 0, 0, 0.38) 0%, rgba(0, 0, 0, 0) 60%), linear-gradient(to top, rgba(0, 0, 0, 0.78) 0%, rgba(0, 0, 0, 0.38) 50%, rgba(0, 0, 0, 0) 100%);
}

.pulse-hero-back {
  position: absolute;
  top: 20px;
  left: 20px;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #fff;
  cursor: pointer;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 150ms ease;
}

.pulse-hero-back:hover {
  background: rgba(255, 255, 255, 0.34);
}

.pulse-hero-back qdnapro-icon {
  color: #fff;
}

.pulse-hero-info {
  position: relative;
  z-index: 2;
  color: #fff;
  /* Inherited by title, description and meta: carries the lightest spots
     of a near-white illustration without reading as a drop shadow. */
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

/* Titel + statuschip op één rij. .pv2-hero heeft geen chip naast de titel —
   dat is eigen aan de campagnekop — dus deze rij-wrapper is nieuw. De chip zelf
   is een qdnapro-tag in een pastelkleur (_campaign-head.html), en NIET dezelfde
   vorm als de pil op de tegel: die ligt op een omslagfoto en gebruikt daarom
   variant="glass". Twee plekken, twee achtergronden, hetzelfde WOORD. */
.pulse-hero-title {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.pulse-hero-name {
  font-size: 26px;
  font-weight: 500;
  color: #fff;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

.pulse-hero-status {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 9px 4px 7px;
  background: rgba(64, 73, 154, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  backdrop-filter: blur(8px) saturate(1.2);
  -webkit-backdrop-filter: blur(8px) saturate(1.2);
  color: #fff;
  font-size: 11px;
  font-weight: 500;
  line-height: 14px;
  letter-spacing: 0.2px;
}

.pulse-hero-status qdnapro-icon {
  color: #fff;
  flex-shrink: 0;
}

/* Omschrijving: witte tekst op de foto, 3 regels afgekapt. Geen equivalent in
   .pv2-hero (die toont geen omschrijving) — vorm en toon volgen wel dezelfde
   "wit-op-foto"-taal als .pv2-org (rgba(255,255,255,0.72) + text-shadow). */
.pulse-hero-descr {
  margin: 6px 0 0;
  max-width: 640px;
  font-size: 14px;
  line-height: 20px;
  color: rgba(255, 255, 255, 0.86);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.pulse-hero-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  flex-wrap: wrap;
}

.pulse-hero-meta-item {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.62);
  display: flex;
  align-items: center;
  gap: 5px;
}

.pulse-hero-meta-item qdnapro-icon {
  color: rgba(255, 255, 255, 0.62);
}

/* Avatar-stack + plusknop: kopie van .pv2-members / .pv2-members-add. De
   overlappende ronde avatars zelf komen uit het gedeelde qdnapro-avatar-stack
   component (scss/components/v2/avatar-stack/_avatar-stack.scss) — hier
   alleen de klikbare omhullende pil en de ronde glazen plusknop. */
.pulse-hero-members {
  all: unset;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 8px 4px 4px;
  border-radius: 999px;
  cursor: pointer;
  transition: background 150ms ease;
}

.pulse-hero-members:hover {
  background: rgba(255, 255, 255, 0.12);
}

.pulse-hero-members-add {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}

.pulse-hero-members-add qdnapro-icon {
  color: #fff;
}

/* Actiecluster (favoriet + meer-menu), kopie van .pv2-hero-actions incl. de
   favorite-button hover-regel. */
.pulse-hero-actions {
  position: absolute;
  bottom: 26px;
  right: 28px;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 10px;
}

.pulse-hero-actions qdnapro-favorite-button {
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.pulse-hero-actions qdnapro-favorite-button:hover:not(.favorite-button-disabled) {
  background: rgba(255, 255, 255, 0.3);
}

.pulse-hero-more {
  position: relative;
}

.pulse-hero-menu {
  position: absolute;
  bottom: calc(100% + 8px);
  right: 0;
  z-index: 10;
}

.pulse-hero-menu[hidden] {
  display: none;
}

/* --- Cross-document view-transition + fallback entrance ------------------ */
/* ⚠️ GEEN nieuw `@view-transition { navigation: auto; }`-blok hier: dat staat
   al globaal in base.scss (regel 10), en dat bestand compileert mee in
   dezelfde style-v1.css. Een tweede `@view-transition`-at-rule zou puur
   overbodig zijn — de scope hieronder pakt alleen het morph-gedrag van het
   met naam gemerkte hero-element. */
::view-transition-old(pulse-hero-photo),
::view-transition-new(pulse-hero-photo) {
  animation-duration: 500ms;
  /* Zelfde bewogen "groei"-easing als de kaart-entree op de projecten- en
     campagnegrid (pv2-card-enter / pulse-card-enter): een lichte overshoot
     past bij het gevoel van een tegel die uitgroeit tot volledig scherm. */
  animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Fallback voor browsers zonder cross-document view-transitions: dezelfde
   groei-vanuit-klein-met-afgeronde-hoeken op de kop zelf, met dezelfde
   easing als hierboven. Klasse wordt door de pagina-JS gezet/verwijderd op
   de kop (kaart 3); zonder die klasse verandert er niets. */
@keyframes pulse-hero-enter {
  0% {
    opacity: 0;
    transform: scale(0.6);
    border-radius: 20px;
  }
  100% {
    opacity: 1;
    transform: scale(1);
    border-radius: 0;
  }
}
.pulse-hero--enter {
  animation: pulse-hero-enter 500ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

@media (prefers-reduced-motion: reduce) {
  .pulse-hero--enter {
    animation: none;
  }
}
/* --- Publiceer-knop: border-beam (19.08.2026, Kim) ------------------------ */
/* De witte Publiceer-knop (secondary-white, zie _campaign-head.html) krijgt
   een lichtstreep die langs de rand loopt. Techniek: een ::after-ring net
   buiten de knop (inset -3px, 2px dik) met een conic-gradient waarvan de
   starthoek geanimeerd wordt via een geregistreerde custom property; de
   dubbele mask met exclude houdt alleen de ring over. Browsers zonder
   @property-interpolatie tonen een stilstaande, subtiele ring: nette
   terugval, geen kapotte animatie. Alleen op deze ene knop, dus
   pagina-gescoopt en niet in de button-component. */
@property --pulse-beam-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
.pulse-hero-actions #pulse-publish-btn {
  position: relative;
}

.pulse-hero-actions #pulse-publish-btn::after {
  content: "";
  position: absolute;
  inset: -3px;
  border-radius: 11px; /* knop-radius 8px + 3px offset */
  padding: 2px; /* ringdikte */
  background: conic-gradient(from var(--pulse-beam-angle), rgba(255, 255, 255, 0.16) 0turn 0.72turn, rgba(255, 255, 255, 0.98) 0.86turn, rgba(255, 255, 255, 0.16) 1turn);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: pulse-beam-spin 3.2s linear infinite;
  pointer-events: none;
}

@keyframes pulse-beam-spin {
  to {
    --pulse-beam-angle: 1turn;
  }
}
@media (prefers-reduced-motion: reduce) {
  .pulse-hero-actions #pulse-publish-btn::after {
    animation: none;
  }
}
/* --- Glass navbar boven de hero (19.08.2026, Kim) ------------------------- */
/* Zelfde gedrag als de projectenpagina (.pv2-has-open-project in
   projects-v2.html, regels 873-892): op de drie CAMPAGNEpagina's wordt de
   navbar glas en loopt de herofoto eronderdoor. De views zetten daarvoor
   bodyClass "pulse-campaign-page"; het Pulse-overzicht houdt de gewone
   navbar, precies zoals het projectenoverzicht. De navbar is sticky en
   reserveert zijn eigen hoogte in de flow, dus alleen de negatieve marge
   trekt de foto eronder; de hero wordt evenveel hoger zodat het zichtbare
   deel onder de frost gelijk blijft. De terugknop zakt mee onder de navbar
   uit (een (0,2,1)-selector, wint dus ook van de 760px-regel hieronder). */
body.pulse-campaign-page .qdna-navbar {
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(20px) saturate(1.6);
  -webkit-backdrop-filter: blur(20px) saturate(1.6);
}

body.pulse-campaign-page .pulse-hero {
  margin-top: calc(-18px - var(--qdna-topbar-h));
  height: calc(var(--pulse-hero-h) + var(--qdna-topbar-h));
}

body.pulse-campaign-page .pulse-hero-back {
  top: calc(var(--qdna-topbar-h) + 14px);
}

/* --- Responsive: tablet en telefoon --------------------------------------- */
/* .pv2-hero zelf heeft in projects-v2.html GEEN eigen media-queries (het
   enige @media-blok in dat bestand, regel 106, gaat over .pv2-bg-illustration
   en heeft niets met de hero te maken) — er valt dus niets 1-op-1 te
   spiegelen. Onderstaande twee breakpoints zijn eigen, behoudende keuzes,
   op dezelfde ad-hoc manier als de rest van dit bestand al doet
   (.pulse-detail-body op 1100px, .pulse-units-row op 760px). Nog te
   verifiëren zodra de echte markup (kaart 3) er is. */
@media (max-width: 1100px) {
  .pulse-hero {
    --pulse-hero-h: 240px;
    padding: 20px 24px;
  }
  .pulse-hero-name {
    font-size: 22px;
  }
}
@media (max-width: 760px) {
  .pulse-hero {
    --pulse-hero-h: 200px;
    padding: 16px 18px;
  }
  .pulse-hero-name {
    font-size: 19px;
  }
  .pulse-hero-descr {
    font-size: 13px;
    -webkit-line-clamp: 2;
  }
  .pulse-hero-actions {
    bottom: 16px;
    right: 16px;
    gap: 8px;
  }
  .pulse-hero-back {
    top: 14px;
    left: 14px;
    width: 36px;
    height: 36px;
  }
}
/* Publicatiemeldingen: de server geeft alle problemen tegelijk terug, dus ze
   komen als lijstje onder de kop te staan in plaats van één per poging.

   ⚠️ margin-top 36px, niet 14px (28.08.2026, Kim): .pulse-hero heeft
   `margin: -18px -28px -22px;` (regel 69) om de header-padding te negeren
   zodat de foto tot de rand loopt. Die margin-bottom van -22px collapt met
   de margin-top van deze balk (block-siblings, geen BFC ertussen), dus het
   werkelijke gat is max(0, margin-top) + min(0, -22px). Met 14px gaf dat
   14 - 22 = -8px: de balk school 8px ONDER de hero. 36px geeft
   36 - 22 = 14px, het oorspronkelijk bedoelde gat. Bevestigd met een
   headless-Chrome meting (getBoundingClientRect) op een losse harness. */
.pulse-problems {
  margin: 36px 0 0;
  padding: 12px 14px;
  background: #fff8e1;
  border: 1px solid #f5d68a;
  border-radius: 10px;
  color: #5c4100;
  font-size: 13.5px;
  line-height: 20px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.pulse-problems[hidden] {
  display: none;
}

.pulse-problems qdnapro-icon {
  color: #b78100;
  flex-shrink: 0;
  margin-top: 1px;
}

.pulse-problems ul {
  margin: 4px 0 0;
  padding-left: 18px;
}

.pulse-problems li {
  margin: 2px 0;
}

/* --- De vier cijfers bovenaan de campagnepagina ------------------------- */
/* Zelfde vorm als de statsbalk op de takenlijst (v1/tasklist-activities.scss):
   een rij kaarten, geen grid. Bewust GEEN vier gelijke kolommen — dan zou elke
   kaart uitrekken tot de volle paginabreedte en zouden vier korte getallen in
   vier halflege vlakken staan. De kaarten houden hun eigen breedte en de rij
   loopt van links op, precies zoals op de takenlijst.

   Links uitgelijnd met .pulse-detail-body eronder (dezelfde 28px marge), zodat
   de balk en de stappenkaart op één lijn beginnen. [Kim 12.08.2026] */
.pulse-stats-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 20px 28px 0;
}

/* De balk neemt de bovenmarge over van de inhoud eronder, anders staat er twee
   keer lucht tussen de kaarten en de stappen. */
.pulse-stats-bar + .pulse-detail-body {
  margin-top: 14px;
}

/* --- Pagina-inhoud: stappen links, doelgroep rechts --------------------- */
.pulse-detail-body {
  max-width: none;
  /* Onderruimte 48px → 96px (11.08.2026): sinds de splitsing staat er een
     ZWEVENDE actiebalk onderin. Die is `position: fixed`, neemt dus geen
     ruimte in de pagina in en legt zich over de laatste rij heen; je kunt er
     ook niet voorbij scrollen omdat er niets meer onder staat.

     SYNC-PUNT, met opzet een vast getal — hetzelfde als in
     _tasklist-settings.scss, om dezelfde reden: _action-bar.scss zet
     `height: 56px` hard (er is geen --action-bar-height) en
     --action-bar-offset staat op .qdnapro-action-bar zelf, dus die is hier
     niet erfbaar en een var() zou stil altijd op de fallback landen.
     96px = 56 (hoogte) + 16 (offset) + 24 lucht. Wordt de balk hoger of komt
     hij verder van de rand, dan moet dit mee. */
  margin: 20px 28px 96px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 22px;
  align-items: start;
}

@media (max-width: 1100px) {
  .pulse-detail-body {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* De twee ZUSTERPAGINA'S (gesprekken, statistieken) dragen elk één paneel, dus
   daar valt niets te verdelen: de smalle rechterkolom van de campagnepagina zou
   er alleen een lege strook van maken. [Kim 11.08.2026] */
.pulse-detail-body--single {
  grid-template-columns: minmax(0, 1fr);
}

.pulse-panel {
  background: var(--c-bg-card, #fff);
  border-radius: 14px;
  box-shadow: 0 1px 3px rgba(20, 25, 80, 0.08), 0 8px 24px rgba(20, 25, 80, 0.06);
  padding: 20px 22px 22px;
}

.pulse-panel-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 4px;
}

.pulse-panel-head h2 {
  margin: 0;
  font-size: 16px;
  line-height: 22px;
  color: var(--c-brand-purple, #394290);
  flex: 1 1 auto;
}

.pulse-panel-sub {
  margin: 0 0 18px;
  font-size: 12.5px;
  line-height: 18px;
  color: var(--c-grey-500, #6b6884);
}

/* --- Stappen-werkbalk (W9F1, kaart 4): alleen het zoekveld --------------- */
/* .pulse-toolbar bestaat al hierboven (OVERZICHTSPAGINA / analytics, regel
   ~1729) met een eigen indeling voor de campagnelijst (links "maak"-knoppen,
   rechts zoeken+sorteren). De view (kaart 3) gebruikt daarom de modifier
   .pulse-toolbar--steps op de balk boven de stappenlijst, met het zoekveld
   in de bestaande .pulse-toolbar-right — die heeft al margin-left: auto,
   dus die duwt het veld vanzelf naar rechts. Hier dus alleen de breedte van
   het veld en een op de paneelcontext afgestemde marge. */
/* Twee klassen, met opzet: de basisregel `.pulse-toolbar { margin-bottom: 20px }`
   staat verderop in dit bestand en zou een enkele-klasse-modifier in de cascade
   stilletjes overrulen (gelijke specificiteit, latere regel wint). */
.pulse-toolbar.pulse-toolbar--steps {
  margin-bottom: 14px;
}

.pulse-toolbar--steps .pulse-toolbar-right qdnapro-input {
  width: 220px;
  flex-shrink: 0;
}

/* De kop "Stappen" staat sinds 20.08.2026 IN de werkbalk (Kim): het witte
   paneel eromheen is weg, dus de kop zit op dezelfde regel als het zoekveld.
   Zelfde maat en kleur als de oude `.pulse-panel-head h2` had, zodat het
   dezelfde kop blijft en niet ineens een andere hiërarchie leest. */
.pulse-steps-title {
  margin: 0;
  font-size: 16px;
  line-height: 22px;
  color: var(--c-brand-purple, #394290);
}

/* De werkbalk stond met `align-items: center`, maar de kop en een klein
   invoerveld zijn niet even hoog; center is hier precies goed en staat al op
   `.pulse-toolbar`. Wat WEL nodig is: de kop mag niet meekrimpen wanneer de
   balk op een smal scherm gaat wikkelen. */
.pulse-toolbar--steps .pulse-toolbar-left {
  min-width: 0;
  flex: 0 1 auto;
}

/* Het uitlegpaneel achter het i-knopje. qdnapro-popover is standaard 280px
   breed met 6px padding — dat is de MENU-maat (zie de qdna-popovers skill,
   punt 1); drie zinnen lopen daar zichtbaar uit het kaartje. De pagina zet de
   maat dus zelf. Haak op het data-attribuut en niet op een klasse: het
   component herschrijft zijn className bij elke render. */
qdnapro-popover[data-pulse-info] {
  width: min(92vw, 380px);
  padding: 14px 16px;
}

.pulse-info-text {
  margin: 0;
  font-size: 12.5px;
  line-height: 18px;
  color: var(--c-grey-600, #4b4869);
}

/* --- De stappen-tijdlijn ------------------------------------------------ */
.pulse-steps {
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
}

/* Kaart 12 (20.08.2026): het stippen-vlak (.qdnapro-edit-frame, zie
   scss/components/v2/edit-frame/_edit-frame.scss) levert bewust GEEN
   padding — die hoort bij de pagina die het invult. `.pulse-steps-frame`
   is de haak in de view (v1/pulse/detail.html) waarop hij landt: werkbalk,
   lijst en toevoeg-rij staan er samen in, dus de binnenmarge komt op de
   frame zelf i.p.v. op elk kind apart. ~16-20px, zoals de takenlijst zijn
   .edit-frame-inhoud (.toolbar/.activity-list) vult. */
.pulse-steps-frame {
  padding: 18px;
}

/* Kaart 12: de rij is sinds kaart 11 het gedeelde
   qdnapro-activity-row[variant="pulse"] (styling in
   scss/components/v2/activity-row/_activity-row.scss). Dat component regelt
   zelf al de hover-opmaak en het dimmen tijdens het slepen (het
   [dragging]-attribuut) — de oude `.pulse-steps.is-manage .pulse-step-row`
   hover/cursor-regel en `.pulse-step-row.is-dragging { opacity }` zijn
   daarmee overbodig en zijn weg. (Kijker-rijen regelen hun cursor sinds
   kaart 13/14 volledig in het component zelf, via het readonly-attribuut —
   de tijdelijke .pulse-row-readonly-regel die hier stond is daarmee dood en
   verwijderd.) Eén ding uit die oude regels bleef wél zinvol, herricht op de
   nieuwe rij: tijdens het slepen geeft de 150ms-transitie op
   border/shadow/transform van de basisrij (_activity-row.scss) merkbare
   vertraging als meerdere rijen snel van hover-/drop-indicator wisselen —
   hier uitgezet zolang .pulse-steps.is-dragging aan staat, exact zoals de
   oude .pulse-steps.is-dragging .pulse-step-row deed. */
.pulse-steps.is-dragging qdnapro-activity-row .activity-row-inner {
  transition: none;
}

/* Kaart 18 (BOARD-pulse-antwoordopties-richting-c.md, Kims design-feedback
   25.08.2026): de dag-pill op elke stappenrij ("Dag N" / een datum) opent al
   de dag-popover (zie stepsEl.addEventListener("click", ...) hieronder in
   deze view), maar oogde als een dood label. Knop-affordance erbovenop,
   hetzelfde recept als .button-secondary-purple (components/v2/button/
   _button.scss) — precies wat .pulse-wiz-card/.pulse-type-card hierboven in
   dit bestand ook al 1-op-1 spiegelen: hover = lichte achtergrondtint,
   active = een iets diepere tint van dezelfde kleurfamilie, geen transform.
   Basis-achtergrond van de pill (var(--c-purple-50)) is dezelfde token als
   de rustkleur van .button-secondary-purple, dus de hover/active-tinten van
   die knop passen hier zonder iets nieuws te verzinnen.
   Belangrijk: .row-pulse-day wordt gebouwd in qdna-activity-row.js
   (_renderPulse(), als <div class="row-pulse-day">) — dat bestand valt
   buiten de scope van deze kaart (alleen detail.html en _pulse.scss), dus
   dit blok raakt alleen het UITERLIJK via de class-selector. De pill heeft
   op dit moment geen tabindex/role="button": de :focus-visible-ring
   hieronder ligt daardoor klaar maar is met het toetsenbord nog niet te
   bereiken totdat de pill in het component zelf een echt <button> (of
   role="button"+tabindex, zoals .pulse-add-bar hierboven al doet) wordt. */
.pulse-steps qdnapro-activity-row .row-pulse-day {
  cursor: pointer;
  transition: background-color 120ms ease;
}

/* UITLIJNING VAN DE STAPTYPE-ICONEN (Kim 02.09.2026: "ik wil dat de iconen van
   alle stappen hetzelfde zijn uitgelijnd. De finish vlag breekt dat nu.")

   Gemeten op /v1/pulse/47 vóór deze regels: het icoon van een kennisvraag begon
   op x=350, dat van het eindscherm op x=397 - 47px verschil, uit twee bronnen:
     - 28px van het kalenderslotje (18px kolom + 10px tussenruimte) dat alleen
       die rij had. Weg: detail.html zet nu `no-handle` op ELKE rij.
     - 19px van de dagpil zelf: "Dag 0" komt op de ondergrens van 76px uit,
       "15-09-2026" op 95px.

   Die laatste 19px lost deze regel op. `width` in plaats van `min-width`, zodat
   een langere tekst de pil nooit meer kan oprekken - de uitlijning is dan een
   garantie en geen toevalligheid. De datum wordt kleiner gezet om in diezelfde
   76px te passen (Kims eigen voorstel). Gemeten breedte van "15-09-2026" in dit
   font: 13px -> 75.2, 12px -> 69.4, 11px -> 63.6. Met 5px lucht links en rechts
   past 11px met 2.4px over; 12px zou er 3.4px overheen steken.
   De subregel ("vaste datum") blijft op 10.5px: het label is vet en de subregel
   niet, dus de rangorde blijft leesbaar ook al schelen ze nog maar een halve
   punt. */
.pulse-steps qdnapro-activity-row .row-pulse-day {
  width: 76px;
  min-width: 0;
}

.pulse-steps qdnapro-activity-row.pulse-row-fixed-date .row-pulse-day {
  padding-left: 5px;
  padding-right: 5px;
}

.pulse-steps qdnapro-activity-row.pulse-row-fixed-date .row-pulse-day-label {
  font-size: 11px;
  line-height: 15px;
}

.pulse-steps qdnapro-activity-row .row-pulse-day:hover {
  background: var(--c-border-tree-bright, #d4d8ee);
}

.pulse-steps qdnapro-activity-row .row-pulse-day:active {
  background: var(--c-sidebar-icon, #c5c9eb);
}

/* Zelfde bootstrap-valkuil als bij .pulse-wiz-card/.pulse-type-card
   hierboven in dit bestand: de v1-header laadt bootstrap.min.css, en die
   zet `button:focus { outline: 5px auto -webkit-focus-ring-color }` op ELKE
   knop (een muisklik geeft wel :focus maar geen :focus-visible). outline
   uitzetten, de zichtbare markering is een eigen box-shadow-ring — geen
   outline, want .activity-row-inner staat op overflow:hidden (zie de
   opmerking daarover in _activity-row.scss, "box-shadow (focus ring) is
   unaffected"): een outline zou aan de rand van de rij afgeknipt worden. */
.pulse-steps qdnapro-activity-row .row-pulse-day:focus {
  outline: none;
}

.pulse-steps qdnapro-activity-row .row-pulse-day:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring, #534ab7);
}

/* Dark mode: de pill heeft hier geen los token (#2a2d55, zie _activity-row.
   scss), dus geen bestaande hover/active-kleur om te hergebruiken. Zelfde
   verhouding als .qdnapro-nav-rail hanteert voor hover/active op een donker
   vlak (rgba(255,255,255,.08) / .16, zie _nav-rail.scss) — hier via
   color-mix() omdat de pill al een eigen effen achtergrond heeft in plaats
   van transparant op de paginakleur. */
[data-theme=dark] .pulse-steps qdnapro-activity-row .row-pulse-day:hover {
  background: color-mix(in srgb, #2a2d55 92%, #fff);
}

[data-theme=dark] .pulse-steps qdnapro-activity-row .row-pulse-day:active {
  background: color-mix(in srgb, #2a2d55 84%, #fff);
}

.pulse-step-type {
  flex: 0 0 auto;
  /* 34 -> 40px (W9F1, kaart 4): takenlijst-maat. Groeit alleen dit tegeltje;
     de kolommen ervoor (greep/slotje, dagpil) staan links ervan in de flex-
     volgorde en verschuiven niet, dus .pulse-step-row::before (de
     verbindingslijn hieronder, links: 27px) hoeft niet mee — die hangt al
     op de breedte van de kolommen VOOR het tegeltje, niet erop. Rij-padding
     (12px 12px 12px 10px) blijft ook ongewijzigd: met dit tegeltje erin
     komt de rij vanzelf op 12+40+12 = 64px, dezelfde hoogte als een
     takenlijstrij (qdnapro-activity-row, min-height: 64px). */
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Pulse-kleurenpalet per staptype: ONGEWIJZIGD (kaart 4-opdracht, expliciet
   bevroren) — alleen de tegelmaat hierboven is aangepast. */
/* Kim 24.08: de tegels gebruiken nu de KLEUREN VAN TAKENLIJSTEN (dezelfde
   tokens als .qdnapro-tasklist-card.tlc-color-*), zodat de kiezer dezelfde
   taal spreekt als de rest. Dit vervangt bewust het eerder bevroren
   Pulse-eigen palet: de opdracht om die kleuren te bevriezen is hiermee
   ingehaald. Per type dezelfde kleurfamilie als voorheen, alleen nu uit het
   gedeelde palet; video en verbeteractie krijgen er hun eigen kleur bij. */
.pulse-step-type--flash {
  background: var(--c-chip-yellow-bg, #fff2d6);
}

.pulse-step-type--question {
  background: var(--c-signal-blue-bg, #e6efff);
}

.pulse-step-type--poll {
  background: var(--c-chip-purple-bg, #eae4ff);
}

/* Kim 25.08: de laatste drie zijn onderling GEDRAAID. Video kreeg het rood van
   verbeteractie (haar keuze, ook nadat ik had gemeld dat het roze videospelertje
   daardoor weinig contrast met zijn eigen vlakje houdt), verbeteractie het groen
   van document, en document het bright-blue van video. Dezelfde rotatie staat in
   `tileColor` in pulse/detail.html - dat is de tegel op de STAPPENRIJ en dit de
   tegel in de TYPEKIEZER, en die twee horen dezelfde kleur te dragen. Verander er
   nooit een zonder de ander. */
.pulse-step-type--document {
  background: var(--c-chip-bright-blue-2-bg, #e3f0fb);
}

.pulse-step-type--video {
  background: var(--c-signal-red-bg, #fde8e8);
}

.pulse-step-type--action {
  background: var(--c-chip-green-bg, #e3f3ee);
}

/* Card 8 follow-up (Kim 01.09): the two frame types were shipped without a
   tinted tile. Same colours as `tileColor` in pulse/detail.html (pink/grey);
   the pairing rule above applies here too: never change one without the
   other. */
.pulse-step-type--start {
  background: var(--c-chip-pink-bg, #fde7f1);
}

.pulse-step-type--finish {
  background: var(--c-chip-grey-bg, #ededf2);
}

/* Het geanimeerde icoon vult de tegel met wat lucht eromheen. */
.pulse-type-anim {
  width: 30px;
  height: 30px;
  display: block;
}

/* OPTISCHE MAATCORRECTIE voor `education-5` ("Bul", het kennisvraag-icoon).
   Kim 02.09.2026: "het hoedje lijkt kleiner dan de andere icons." Klopt, en het
   is te meten. Elk icoon uit de set staat op hetzelfde canvas van 500x500, maar
   vult daar een ander deel van. Gerasterd op 200px en de niet-transparante
   pixels opgemeten:

     education (het oude)  85%    video-camera  75%
     thunder               80%    text-file     76%
     rate-2                79%    progress      72%
     education-5           72%  <- de baret

   De baret is bovendien breed en laag (144x122 van de 200), waar de buren juist
   hoog zijn, dus hij oogt nog kleiner dan die 72% al zegt. 1.1 tilt hem naar
   ~79%, precies in de bandbreedte van thunder en rate-2 - gelijktrekken met de
   groep, niet met het oude icoon.

   Gekozen op de `src` en niet op het STAPTYPE: dit is een eigenschap van dit
   BESTAND, niet van de kennisvraag. Kiest Kim morgen een ander icoon, dan valt
   deze regel vanzelf weg in plaats van stilletjes het verkeerde plaatje op te
   blazen. En `transform` in plaats van breedte/hoogte, omdat dezelfde animatie
   op drie plekken staat met drie verschillende maten (typekiezer 30px,
   stappenrij 28px, gesprekkenpagina zijn eigen tegel) - een schaal werkt op
   alle drie, een vaste maat zou er twee stukmaken. Alle drie de containers
   centreren met flex, dus het icoon blijft staan waar het stond. */
qdnapro-lottie[src*="/education-5.json"] {
  transform: scale(1.1);
}

/* De koppelingschip op een suite-stap (F3-W3): dezelfde ingetogen vorm als de
   dag-badge links, zodat de tijdlijn één taal blijft spreken. Hij staat ONDER
   de meta-regel omdat een bestandsnaam lang is en de meta-regel al afkapt. */
.pulse-step-ref {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  margin-top: 4px;
  padding: 2px 9px;
  border-radius: 9px;
  background: #eef0fb;
  color: var(--c-brand-purple, #394290);
  font-size: 11.5px;
  line-height: 17px;
}

.pulse-step-ref qdnapro-icon {
  flex-shrink: 0;
}

.pulse-step-ref span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pulse-step-ref.is-missing {
  background: #fff2d6;
  color: #7a5300;
}

.pulse-steps-foot {
  margin-top: 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.pulse-steps-hint {
  font-size: 12px;
  color: var(--c-grey-500, #6b6884);
}

/* `el.hidden = true` werkt NIET vanzelf op deze elementen: de UA-regel
   [hidden] { display: none } verliest van de klasse-regels die de componenten
   zelf meebrengen (.qdnapro-button/.qdnapro-icon-btn zetten display:inline-flex)
   en van de display:flex hierboven. Pagina-gescoopt terugzetten, zodat verbergen
   in JS gewoon een kwestie van .hidden blijft. */
.pulse-steps-foot[hidden],
.pulse-detail-body qdnapro-button[hidden],
.pulse-detail-body qdnapro-icon-btn[hidden],
#pulse-step-modal qdnapro-button[hidden],
#pulse-step-modal qdnapro-icon-btn[hidden] {
  display: none;
}

/* De lege staat is sinds 12.08.2026 het gedeelde qdnapro-empty-state met
   surface="page" — eigen markup (.pulse-steps-empty) is daarmee weg. Alleen wat
   lucht eromheen blijft hier staan; de rest komt uit het component. */
.pulse-steps qdnapro-empty-state {
  display: block;
  padding: 18px 0 6px;
}

/* --- Toevoeg-rij: brede, gestippelde CTA i.p.v. de knop in de voet ------- */
/* Zelfde vorm als de takenlijst (.add-bar/.add-bar-circle/.add-bar-label,
   tasklist-activities.scss 913–962): gestippelde rand, gecentreerd
   pluscirkeltje, subtiele hover, "Pulse-maat" — d.w.z. zonder de
   margin-right: 46px-hack van de takenlijst (die compenseerde daar voor de
   losse warning-slot rechts van elke rij; de Pulse-stappenrij heeft die
   niet). `width: 100%` staat er expliciet bij in plaats van te vertrouwen op
   flex-stretch van de ouder: de exacte plek in de voet (.pulse-steps-foot)
   wordt parallel gebouwd (kaart 3) en width:100% werkt ongeacht of die ouder
   een flex-rij of -kolom is. */
.pulse-add-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 40px;
  padding: 8px 16px;
  border-radius: 10px;
  border: 1.5px dashed rgba(70, 82, 243, 0.3);
  background: rgba(255, 255, 255, 0.28);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease;
  user-select: none;
  color: var(--c-action-500, #4652f3);
  flex-shrink: 0;
}

.pulse-add-bar:hover {
  background: rgba(255, 255, 255, 0.45);
  border-color: rgba(70, 82, 243, 0.5);
}

/* Toetsenbord-toegankelijkheid: kaart 3 opent de typekiezer ook op Enter/
   Space, dus deze CTA is met het toetsenbord te bereiken — dan hoort er ook
   een zichtbare focusring te zijn. Zelfde patroon als elders in dit bestand
   (bv. .pulse-type-card:focus-visible). */
.pulse-add-bar:focus-visible {
  outline: 2px solid var(--c-action-500, #4652f3);
  outline-offset: 2px;
}

.pulse-add-bar-circle {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(70, 82, 243, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 300;
  color: var(--c-action-500, #4652f3);
  flex-shrink: 0;
  transition: background 150ms ease, color 150ms ease;
  line-height: 1;
}

.pulse-add-bar:hover .pulse-add-bar-circle {
  background: var(--c-action-500, #4652f3);
  color: #fff;
}

.pulse-add-bar-label {
  font-size: 13px;
  font-weight: 500;
  color: var(--c-action-500, #4652f3);
}

[data-theme=dark] .pulse-add-bar {
  background: rgba(255, 255, 255, 0.04);
  border-color: var(--c-purple-200-30, rgba(165, 172, 255, 0.3));
  color: var(--c-purple-200, #a5acff);
}

[data-theme=dark] .pulse-add-bar:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: var(--c-purple-200-50, rgba(165, 172, 255, 0.5));
}

[data-theme=dark] .pulse-add-bar-circle {
  background: var(--c-purple-200-30, rgba(165, 172, 255, 0.14));
  color: var(--c-purple-200, #a5acff);
}

[data-theme=dark] .pulse-add-bar:hover .pulse-add-bar-circle {
  background: var(--c-action-500, #4652f3);
  color: #fff;
}

[data-theme=dark] .pulse-add-bar-label {
  color: var(--c-purple-200, #a5acff);
}

/* --- Sectiekop (weekkopjes): subset van .list-section-header/.sh-* ------- */
/* <qdnapro-section-header> (host-klasse .pulse-week-header op de Pulse-
   pagina, per aanvulling van de view-kaart) is de bestaande component uit de
   takenlijst (web/js/components/v2/section-header/qdna-section-header.js);
   die rendert altijd zijn canonieke .list-section-header/.sh-*-markup en
   leunt voor styling op tasklist-activities.scss (2220–2447 aldaar). Dat
   bestand wordt op Pulse NIET geladen (mag ook niet — bevat pagina-brede
   regels die hier niet thuishoren), dus zonder deze subset rendert de kop
   kaal. Alleen wat de kop hier ZELF nog nodig heeft: de pil met titel/
   subtitel. Geen sleepgreep, geen bewerk/verwijder-knoppen — weekkopjes zijn
   client-side berekend en slaan niets op (kopjes-regel, besluit 8), dus die
   twee altijd-gerenderde onderdelen worden hieronder expliciet verborgen op
   deze pagina i.p.v. gestyled. Kleuren zijn overgezet naar bestaande tokens
   i.p.v. de losse hex uit tasklist-activities.scss (zie kaart-4-rapport voor
   de mapping tussen oude hex en gebruikte token). */
.list-section-header {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin: 8px 0 5px;
  position: relative;
  align-self: flex-start;
}

.list-section-header:first-child {
  margin-top: 0;
}

.sh-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: auto;
  padding: 5px 10px 5px 16px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.38);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.55);
  cursor: grab;
  transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.list-section-header:hover .sh-pill {
  background: rgba(255, 255, 255, 0.8);
  border-color: rgba(255, 255, 255, 0.9);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.07);
}

.sh-text-block {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.sh-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--c-grey-500, #6b7280);
  white-space: nowrap;
  outline: none;
  transition: color 150ms ease;
  line-height: 1.4;
}

.sh-subtitle {
  font-size: 10px;
  font-weight: 400;
  color: var(--c-grey-400, #a6aab3);
  white-space: nowrap;
  outline: none;
  transition: color 150ms ease;
  line-height: 1.4;
  min-width: 2px;
}

/* Lege subtitel (weekkopjes hebben er geen) collapt, zodat de titel netjes
   in de pil centreert i.p.v. ruimte te reserveren voor een lege regel. */
.sh-subtitle:empty {
  display: none;
}

.list-section-header:hover .sh-title {
  color: var(--c-grey-950, #1a1d2e);
}

.list-section-header:hover .sh-subtitle {
  color: var(--c-grey-500, #6b7280);
}

/* Aanvulling coordinator 20.08.2026: sleepgreep + bewerk/verwijder-knoppen
   verbergen op de weekkopjes — het component rendert ze altijd, maar er is
   hier niets om te slepen of op te slaan. */
.pulse-week-header .sh-drag,
.pulse-week-header .sh-actions {
  display: none;
}

/* De pill van het component draagt cursor:grab, maar een automatisch kopje
   valt niet te verslepen — de cursor mag dat dan ook niet beloven. */
.pulse-week-header .sh-pill {
  cursor: default;
}

[data-theme=dark] .sh-pill {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.12);
}

[data-theme=dark] .list-section-header:hover .sh-pill {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.2);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

[data-theme=dark] .sh-title {
  color: var(--c-grey-100, #e7e9ec);
}

[data-theme=dark] .sh-subtitle {
  color: var(--c-grey-400, #a6aab3);
}

[data-theme=dark] .list-section-header:hover .sh-title {
  color: var(--c-grey-50, #f0f1f2);
}

[data-theme=dark] .list-section-header:hover .sh-subtitle {
  color: var(--c-grey-300, #c4c7cc);
}

/* --- Typekiezer (welke soort stap wordt het?) --------------------------- */
/* De typekiezer moet kunnen SCROLLEN (12.08.2026). Sinds elke kaart twee regels
   tekst draagt is de lijst hoger dan een laptopscherm, en vielen de onderste
   tegels buiten de modal.
 *
 * `qdnapro-modal-scrollable` (op de modal gezet in de JS) laat de body scrollen,
 * maar dat is niet genoeg: de dialog heeft alleen een `max-height`, en een
 * flex-item krijgt standaard `min-height: auto` = zijn eigen inhoudshoogte. Die
 * wint dan van de max-height en de modal groeit alsnog door — gemeten: 643px
 * hoog waar 625 mocht.
 *
 * Vandaar `min-height: 0` op de hele keten dialog → window. Dezelfde ingreep als
 * bij de stap-modal hierboven; zie ook de qdna-modals skill §1d. */
.qdnapro-modal.pulse-type-modal .modal-dialog,
.qdnapro-modal.pulse-type-modal .modal-window {
  min-height: 0;
}

/* En een ruimere marge dan de standaard `calc(100vh - 48px)`. Die 48 is precies
   de padding van de backdrop, maar de dialog MEET 18px meer dan hij rekent (zijn
   rand en padding vallen buiten die max-height), dus met de standaardwaarde
   steekt hij er aan onder- en bovenkant een stukje uit. Gemeten op een venster
   van 673px: dialog 643 hoog waar er 625 beschikbaar was.
   80px laat die 18 ruimschoots vrij en geeft de modal wat lucht. */
.qdnapro-modal.pulse-type-modal .modal-dialog {
  max-height: calc(100vh - 80px);
}

/* En sinds het raster past de inhoud in een paar rijen: de vaste hoogte van
   size="xxlarge" liet dan tweederde van de bak leeg. Hoogte op auto laat de
   modal om de zes kaarten heen krimpen; de max-height blijft de vangrail.
   Zelfde aanpak als .pulse-targets-modal hierboven. */
.qdnapro-modal.pulse-type-modal .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 80px);
}

.qdnapro-modal.pulse-type-modal .modal-window {
  height: auto;
}

/* De illustratie in het infopaneel staat bewust ingetogen (Kim: 60%): het is
   sfeer naast de keuze, geen element dat om aandacht vraagt. Page-scoped, dus
   de andere with-info-modals houden hun eigen weergave. */
.qdnapro-modal.pulse-type-modal .qdnapro-modal-info-illustration {
  opacity: 0.6;
}

/* Doelgroep-modal (kaart 6, 20.08.2026): size="large" forceert een vaste hoogte
   van min(800px, 100vh - 48px) op de dialog, terwijl de doelgroepbouwer maar
   ~500px vult — dat gaf een grotendeels lege bak. Hoogte op auto laat de modal
   om de bouwer heen krimpen; de max-height blijft de vangrail bij veel content
   (dan scrollt de body). Zelfde aanpak als .fe-import-modal in _modal.scss. */
.qdnapro-modal.pulse-targets-modal .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 48px);
}

.qdnapro-modal.pulse-targets-modal .modal-window {
  height: auto;
}

/* Kims review 24.08: de zes typekaarten stonden als volle-breedte rijen onder
   elkaar en droegen een andere hover/focus-taal dan de opmaakkaarten van
   wizard-stap 1, terwijl je ze vlak na elkaar ziet in dezelfde flow. Nu een
   raster (drie kolommen op de verbrede modal) met exact dezelfde standen als
   .pulse-wiz-card. */
.pulse-type-cards {
  display: grid;
  /* Twee kolommen sinds het infopaneel erbij kwam (Kim 24.08): dat paneel
     eet links ruimte, dus drie kolommen werden te smal voor twee regels
     tekst per kaart. Zes kaarten worden zo 3 rijen van 2. */
  /* auto-fit i.p.v. een vast aantal: bij een smal venster (of browserzoom)
     valt het raster vanzelf terug naar een kolom in plaats van te knellen.
     De media-query hieronder keek naar de VIEWPORT en miste dat geval. */
  /* Twee kolommen, vast. auto-fit leek slimmer maar rekende zichzelf naar
     drie kolommen op een breed scherm en naar een op ~850px: precies de twee
     dingen die Kim niet wilde. De terugval naar een kolom staat daarom op
     een echte kleine-venstergrens hieronder. */
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

@media (max-width: 820px) {
  .pulse-type-cards {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* De kaart en zijn tekstblok mogen krimpen; zonder min-width:0 duwt de langste
   regel de kolom breder dan de ruimte en krijg je een horizontale schuifbalk
   (wat Kim zag). */
.pulse-type-card {
  min-width: 0;
}

.pulse-type-card > div {
  min-width: 0;
}

.pulse-type-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  width: 100%;
  padding: 14px;
  border: 1px solid var(--c-border-soft, #e5e5ea);
  border-radius: 12px;
  background: var(--c-bg-card, #fff);
  text-align: left;
  cursor: pointer;
  /* geen transform/box-shadow in de transitie: zie de uitleg bij
     .pulse-wiz-card (een geanimeerde ring staat op t=0 nog op zijn
     startwaarde en Kim wil geen hover-lift). */
  transition: border-color 120ms ease, background 120ms ease;
}

.pulse-type-card:hover {
  border-color: var(--c-purple-300, #a9adde);
} /* Kim 24.08: hover verft NIET, alleen de rand kleurt. */
.pulse-type-card:active {
  border-color: var(--c-purple-300, #a9adde);
  background: var(--c-border-tree-bright, #d4d8ee);
}

/* Zelfde reden als bij .pulse-wiz-card: de v1-header laadt bootstrap, en die
   zet een harde blauwe systeem-outline op ELKE knop bij :focus (een muisklik
   geeft wel :focus maar geen :focus-visible). Uitzetten, en de zichtbare
   markering is de zachte lichtpaarse dubbele ring hieronder. */
.pulse-type-card:focus {
  outline: none;
}

.pulse-type-card:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--c-purple-200, #a5acff), 0 0 0 5px var(--focus-glow, rgba(83, 74, 183, 0.18));
}

.pulse-type-card-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--c-brand-purple, #394290);
  margin: 0 0 2px;
}

.pulse-type-card-desc {
  font-size: 12.5px;
  line-height: 18px;
  color: var(--c-grey-500, #6b6884);
  margin: 0;
}

/* De praktische regel per staptype (12.08.2026): wat er ná het kiezen gebeurt,
   of wat een deelnemer wél en niet te zien krijgt. Lichter gezet dan de
   omschrijving erboven — het is een voetnoot bij de keuze, geen tweede titel. */
/* Kim 24.08: het i-puntje rechtsboven in de kaart. Hover of tik toont de
   tekst die eerst als derde regel in de kaart stond. Ingetogen in rust, want
   het is een hulpmiddel, geen tweede actie naast de keuze zelf. */
.pulse-type-card {
  position: relative;
}

/* De info-popover hoort BOVEN de modal te liggen. qdnapro-popover staat op
   z-index 1001 en qdnapro-modal op 9000, dus binnen een modal opende hij
   onzichtbaar erachter: dat was de "hover doet niks"-melding van Kim (24.08).
   Geldt voor beide gebruikers van deze popover: het i-puntje op een typekaart
   en het i-knopje bij Subtekst in de wizard. */
.qdnapro-popover[data-pulse-info] {
  z-index: 9400;
}

/* ⚠️ ZELFDE VAL, TWEE KEER OPNIEUW GEVONDEN (27.08.2026). Elke popover die
   vanuit de wizard/modal opent heeft deze regel nodig, anders opent hij
   onzichtbaar ACHTER de overlay. Gemeten met elementFromPoint op het midden
   van het geopende paneel: zonder de regel kwam de wizard-stap terug, niet de
   popover. De emoji-/icoon-kiezers (kaart M11) misten hem — die waren alleen
   functioneel getest (invoeging klopte), niet visueel, dus de fout bleef
   onopgemerkt. Het opmaak-menu (M13c) hoort in dezelfde lijst. */
/* 02.09.2026: de twee kiezers zijn nu bibliotheekcomponenten
   (qdnapro-emoji-sheet / qdnapro-sticker-sheet met variant="popover"), en die
   bouwen hun eigen qdnapro-popover-schil met een EIGEN data-haak. Dezelfde val
   geldt dus onverkort: zonder deze regel openen ze vanuit de stap-modal
   onzichtbaar achter de overlay. Het is niet aan de componenten om dit te
   weten — de z-index-laag is een eigenschap van DEZE pagina. */
.qdnapro-popover[data-emoji-sheet],
.qdnapro-popover[data-sticker-sheet],
.qdnapro-popover[data-pulse-layout-menu] {
  z-index: 9400;
}

.pulse-type-card-info {
  position: absolute;
  top: 10px;
  right: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  color: var(--c-grey-400, #8b88a3);
  cursor: help;
}

.pulse-type-card-info:hover,
.pulse-type-card-info:focus-visible {
  color: var(--c-brand-purple, #394290);
  background: var(--c-grey-50, #f3f3f7);
  outline: none;
}

/* De omschrijving mag nu de volle breedte pakken op één plek minder tekst. */
.pulse-type-card-desc {
  padding-right: 26px;
}

.pulse-type-card-note {
  margin: 5px 0 0;
  font-size: 11.5px;
  line-height: 16px;
  color: var(--c-grey-400, #8b88a3);
}

/* Kaart 8 zette al `disabled` op de knop van een start-/eindscherm dat er al
   is (de klik was dus al geblokkeerd) en schreef de reden eronder, maar de
   kaart ZAG er nog uit als elke andere: witte achtergrond, hover-rand, vol
   gekleurd icoontje. Kim 02.09.2026: "deze knop moet een disabled state
   krijgen". Vandaar hieronder.
   De UITLEG blijft op volle sterkte staan - juist die moet je kunnen lezen -
   dus het doffen gebeurt per onderdeel en niet met één opacity over de hele
   kaart. Het icoontje gaat naar grijs: een vrolijk gekleurd vlakje blijft
   uitnodigen, ook als de rest al gedoofd is. Animeren doet hij hier bewust
   niet (openTypeChooser slaat uitgeschakelde kaarten over bij hover). */
.pulse-type-card:disabled {
  cursor: not-allowed;
  background: var(--c-grey-50, #f3f3f7);
  border-color: var(--c-border-soft, #e5e5ea);
}

.pulse-type-card:disabled:hover,
.pulse-type-card:disabled:active {
  border-color: var(--c-border-soft, #e5e5ea);
  background: var(--c-grey-50, #f3f3f7);
}

.pulse-type-card:disabled .pulse-type-card-title,
.pulse-type-card:disabled .pulse-type-card-desc {
  opacity: 0.5;
}

.pulse-type-card:disabled .pulse-step-type {
  opacity: 0.5;
  filter: grayscale(1);
}

/* Het i-puntje hoort bij een keuze die je kunt maken. */
.pulse-type-card:disabled .pulse-type-card-info {
  display: none;
}

/* --- Stap-modal --------------------------------------------------------- */
/* De hoogte-correctie voor `layout="with-info"` die hier stond is weg per
   12.08.2026: die layout gebruikt deze modal niet meer (zie de splitscreen-regels
   verderop, die hun eigen vaste hoogte zetten zodat de kolommen kunnen scrollen). */
#pulse-step-modal.modal-layout-with-info .modal-window {
  height: auto;
  padding-bottom: 16px;
}

/* --- Splitscreen in de stap-modal (12.08.2026, Kim) ---------------------- */
/* Links wat je INSTELT, rechts wat de deelnemer ZIET.
 *
 * Het uitlegpaneel (`layout="with-info"`) is hiervoor opgegeven: dat kostte 280
 * van de 800 pixels aan een illustratie, waardoor élk veld — inclusief de
 * tekstverwerker — in de resterende ~500px moest passen.
 *
 * ⚠️ DE KOLOMMEN SCROLLEN, NIET DE MODAL-BODY. Dat is het hele punt: pas je
 * links iets aan, dan hoort de tekstverwerker rechts in beeld te blijven. Dat
 * vraagt `min-height: 0` op de HELE flex-keten (dialog → window → body → split),
 * want een flex-item krijgt standaard `min-height: auto` = zijn eigen inhoud, en
 * dan wint de inhoudshoogte van elke hoogte die je oplegt en scrollt er niets.
 * Zie ook de qdna-modals skill, §1d. */
#pulse-step-modal .modal-dialog {
  height: min(760px, 100vh - 64px);
  min-height: 0;
  overflow: hidden;
}

#pulse-step-modal .modal-window {
  min-height: 0;
  overflow: hidden;
}

#pulse-step-modal .modal-body {
  min-height: 0;
  display: flex;
  flex-direction: column;
  /* De body scrollt NIET; de kolommen erin doen dat. */
  overflow: hidden;
}

.pulse-sm-split {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  /* 45/55 in plaats van de eerste 340/620 (Kim 12.08.2026: "een beetje meer
     50-50"). Niet exact half om half: de rechterkolom draagt de
     tekstverwerker én de antwoordopties, dus die mag de bredere blijven.
     Percentages en geen vaste pixels, zodat de verhouding klopt blijft als de
     modal ooit naar xxlarge gaat. */
  grid-template-columns: 45% minmax(0, 1fr);
  gap: 0;
}

@media (max-width: 900px) {
  /* Te smal voor twee kolommen: dan onder elkaar, en scrollt de body weer als
     geheel. Zonder deze terugval zou de linkerkolom van 340px de rechter
     platdrukken. */
  .pulse-sm-split {
    grid-template-columns: minmax(0, 1fr);
  }
  #pulse-step-modal .modal-body {
    overflow-y: auto;
  }
  .pulse-sm-col {
    overflow: visible !important;
  }
}
.pulse-sm-col {
  min-height: 0;
  overflow-y: auto;
  /* 4px ademruimte + scroll-padding: zonder dit wordt de focus-ring van het
     bovenste veld (een box-shadow van 3px) door de scroll-container afgekapt.
     Dezelfde regel als op .modal-body in _modal.scss — een nieuwe
     scroll-container heeft hem opnieuw nodig. */
  padding: 4px 16px 16px;
  scroll-padding-top: 8px;
}

.pulse-sm-col--set {
  border-right: 1px solid var(--c-border-soft, #e5e5ea);
  background: var(--c-bg-subtle-purple, #faf9fe);
}

.pulse-sm-col--content {
  display: flex;
  flex-direction: column;
}

/* De wrap-regels voor "dag naast ritme" zijn weg per 12.08.2026: die twee staan
   niet meer naast elkaar (zie .pulse-pace hierboven), dus er valt niets meer te
   laten wrappen. .pulse-sm-row zelf blijft bestaan voor ander gebruik. */
/* De antwoordopties staan sinds 12.08.2026 LINKS, onder de planning. Een
   haarlijn erboven scheidt "wanneer en hoe" van "de vraag zelf"; zonder die
   scheiding loopt de kolom als één lange sliert velden door. */
.pulse-sm-col--set #pulse-sm-options-field {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--c-border-soft, #e5e5ea);
}

/* Beeld boven tekst in de rechterkolom: een streepje lucht ertussen, zodat de
   twee als aparte onderdelen van dezelfde kaart lezen. */
.pulse-sm-col--content .pulse-sm-image {
  margin-bottom: 4px;
}

/* De kolomkoppen "INSTELLINGEN" en "DE KAART" zijn weg per 12.08.2026 (Kim):
   de scheidingslijn tussen de kolommen zegt al dat het twee gebieden zijn, en
   twee kopjes die niets toevoegen kosten alleen hoogte bovenaan het formulier. */
/* Het typekaartje dat hier stond (.pulse-sm-typecard) is weg per 12.08.2026:
   uitleg over het STAPTYPE hoort in de kiezer "Wat voor stap wordt het?", waar
   je die keuze maakt. Zie .pulse-type-card-note hieronder. */
/* De tekstverwerker krijgt een ruime minimumhoogte — dat is waar deze hele
   verbouwing om begonnen is.
 *
 * ⚠️ GEEN `flex` + `min-height: 0` op het VELD hier. Dat stond er eerst, en toen
 * kromp het veld tot 74px terwijl de editor erin 180px bleef: het kind stak 138px
 * buiten zijn ouder uit en legde zich over het label "Antwoordopties" eronder
 * heen. In een kolom die zelf scrollt hoort de inhoud gewoon zijn natuurlijke
 * hoogte te krijgen; opvullen en scrollen gaan niet samen.
 *
 * Het veld is dus een gewoon blok dat om de editor heen groeit; alleen de MOUNT
 * draagt de minimumhoogte, en het component erin vult die op. */
/* 340 en niet 220 (Kim 12.08.2026): het schrijfvlak hoort er ruim uit te zien
   OOK als er nog niets in staat. Een klein leeg vak nodigt uit tot een klein
   berichtje, en dit is het veld waar de hele kaart om draait. */
/* Kaart 16 (BOARD-pulse-pwa-inhaalslag, Kims screenshot 28.08): column, want
   zonder richting is flex ROW en stonden de emoji/sticker-knoppen NAAST de
   editor in plaats van eronder — terwijl Kim expliciet "onder het veld, zoals
   bij Subtekst" had gevraagd. De knoppenrij (.pulse-inline-picker-btns) is een
   sibling van <qdnapro-wysiwyg> in dezelfde mount (makeEditorController), dus
   met column landt hij vanzelf onder het veld; de flex-groei van de editor
   werkt gewoon langs de verticale as door. Geldt bewust voor ALLE drie de
   mounts die deze klasse delen (oude stap-modal, wizard-Opmaak, Vrij
   vormgeven) — zelfde oorzaak, zelfde wens. */
.pulse-sm-field--grow .pulse-sm-editor-mount {
  min-height: 340px;
  display: flex;
  flex-direction: column;
}

.pulse-sm-field--grow qdnapro-wysiwyg {
  flex: 1 1 auto;
  min-width: 0;
}

/* Kaart 4 (BOARD-pulse-opmaak-hybride, 25.08.2026): de rijke-mount kan nu
   OOK individueel verborgen worden (Subtekst/Opmaak-pill, los van of zijn
   `.pulse-sm-field--grow`-ouder zelf zichtbaar is). Zonder deze regel wint
   de `display: flex` hierboven altijd van het native `[hidden]`: auteur-CSS
   gaat vóór de user-agent-stylesheet, ongeacht specificiteit-cijfers —
   headless geverifieerd (offsetParent bleef waar met `hidden` gezet, zie
   het kaart-4-verslag). Zelfde valkuil als .pulse-opt-view-seg hierboven
   (kaart 5/22), nu op een ANDER element gevonden. */
.pulse-sm-field--grow .pulse-sm-editor-mount[hidden] {
  display: none;
}

/* Kims acceptatietest 26.08: in de WIZARD is de rijke editor de SUBTEKST
   (Subtekst/Opmaak-pill), niet het hoofdveld — daar liet de 340px hierboven
   een fors leeg stuk host onder het zichtbare kader achter (de idoc-text-
   preset heeft `autoresize`: TinyMCE schrijft zijn eigen hoogte, ~197px
   leeg, en groeit met de inhoud mee; gemeten 143px onzichtbare rest), en
   begonnen de antwoordopties dus een heel eind te laag. Hier bepaalt de
   editor zelf zijn hoogte. De OUDE stap-modal (video/document/actie, waar
   de editor wél het hoofdveld is) behoudt de 340px. Id-selector wint met
   opzet van de klasse-regel hierboven. */
/* 01.09.2026 (Kim: "de smiley/sticker-knoppen zitten heel ver onder het
   inputfield"): de OUDE stap-modal doet nu mee met diezelfde regel. De 340px
   hierboven rekte de MOUNT op, de redacteur groeide mee tot zijn onzichtbare
   rest en de knoppenrij eronder landde honderden pixels lager dan het
   zichtbare kader. Het royale schrijfvlak is niet weg, het is verhuisd naar de
   redacteur zelf: mountEditor() geeft `height="300"` mee (TinyMCE min_height,
   groeit daarna mee met de inhoud). */
#pulse-wiz-classic-editor-mount, #pulse-wiz-free-editor-mount, #pulse-sm-editor-mount {
  min-height: 0;
}

/* --- Dag + ritme (12.08.2026, Kim) -------------------------------------- */
/* Was een getalveld met een segment ernaast. Nu een smal getalveld met daaronder
   twee radiokeuzes die elk zeggen wat ze doen, en één regel die de uitkomst in
   gewone taal samenvat. Die laatste is het punt van de hele wijziging. */
.pulse-sm-day {
  display: block;
  max-width: 150px;
}

.pulse-pace {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
}

.pulse-pace-choice {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  cursor: pointer;
}

/* De knop mag niet meekrimpen met een lange uitlegregel ernaast. */
.pulse-pace-choice qdnapro-radio {
  flex: 0 0 auto;
  margin-top: 1px;
}

.pulse-pace-text {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.pulse-pace-name {
  font-size: 13px;
  color: var(--c-text-body, #1c1e2a);
}

.pulse-pace-text small {
  font-size: 11.5px;
  line-height: 16px;
  color: var(--c-grey-500, #6b6884);
}

/* De uitkomstregel. Nadrukkelijker dan een gewone hint (donkerder en op de
   merkkleur): het is geen terzijde maar het antwoord op "wat heb ik nu
   ingesteld". Hij verandert mee met het getal én met de keuze. */
.pulse-pace-summary {
  margin: 12px 0 0;
  padding: 8px 10px;
  border-radius: 8px;
  background: var(--c-purple-50, #f0eefc);
  font-size: 12px;
  line-height: 17px;
  color: var(--c-brand-purple, #394290);
}

.pulse-pace-summary:empty {
  display: none;
}

/* Kim 02.09.2026: de uitkomstregel stond ONDER de drie ritmekeuzes en kostte
   daar een hele regel in een kolom die toch al vol is. Hij staat nu NAAST het
   dagveld (zie pacingFieldsHtml in detail.html).
   `align-items: flex-end` is de kern: het dagveld draagt zijn eigen label
   ("Dag") BOVEN het invoervakje, dus alleen onderlijnen laat de regel netjes
   op dezelfde hoogte als het stappenvakje uitkomen. De regel krijgt daarom ook
   dezelfde hoogte als een `size="small"` invoerveld en centreert zijn tekst
   verticaal - anders zou hij als een lage strook onder het vakje bungelen.
   Het dagveld en het vaste-datumveld zijn elkaars afwisseling (zie
   updatePacingSummaryOf), dus er staat er altijd precies één naast de regel. */
.pulse-pace-when {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  /* Wrappen i.p.v. samenknijpen: in de brede stap-modal past alles op één
     regel, in de smalle dag-popover (268px inhoud) zakt de uitkomstregel
     naar de volgende regel in plaats van tot een hoge, smalle kolom te
     worden geperst. Zie de min-widths hieronder, die het omslagpunt zetten. */
  flex-wrap: wrap;
}

/* De generieke veldmarge (.pulse-sm-field) hoort niet in een rij. */
/* 02.09.2026: het vaste-datumveld is sinds de huiskalender een TEKSTveld met
   een kalendericoon links en een kruisje rechts. Op `flex: 0 0 auto` kromp het
   tot 96px, waarvan 14px voor de tekst overbleef terwijl "31.12.2026" er 71
   nodig heeft — gemeten; de datum was afgekapt tot "02". 168px geeft 86px
   tekstruimte, dus 15px speling. */
.pulse-pace-when > .pulse-sm-field {
  margin-top: 0;
  flex: 0 0 168px;
}

.pulse-pace-when > .pulse-sm-day {
  flex: 0 0 auto;
}

.pulse-pace-when > .pulse-pace-summary {
  /* De min-width is het omslagpunt van de wrap hierboven: onder 200px leest
     deze zin als een kolom van losse woorden, dan hoort hij op een eigen
     regel. */
  flex: 1 1 200px;
  min-width: 200px;
  margin: 0;
  min-height: 38px;
  display: flex;
  align-items: center;
}

/* Onder de tabletbreedte is er geen plek meer voor twee kolommen; dan valt de
   regel gewoon weer onder het veld, zoals hij altijd stond. */
@media (max-width: 620px) {
  .pulse-pace-when {
    flex-direction: column;
    align-items: stretch;
  }
  .pulse-pace-when > .pulse-pace-summary {
    min-height: 0;
  }
}
/* De waarschuwing onder het gekoppelde document heeft een KNOP in zijn
   actie-slot, en in deze smalle kolom (427px) past die knop niet naast de
   tekst: hij valt eronder. De melding centreert zijn icoon verticaal, en dan
   staat het waarschuwingsdriehoekje ineens naast de knop in plaats van bij de
   regel waar het over gaat (gemeten in Kims browser, 04.09.2026). Deze twee
   regels zetten het icoon bovenaan uitgelijnd, alleen voor DEZE melding, zodat
   het component zelf ongemoeid blijft. */
#pulse-sm-link-doc-warning {
  align-items: flex-start;
  /* Kim 04.09.2026: de melding plakte tegen het documentkader. */
  margin-top: 10px;
}

#pulse-sm-link-doc-warning .qdnapro-alert__icon {
  margin-top: 2px;
}

/* De melding zet zijn tekstblok op `flex: 1 1 220px`, en met een knop ernaast
   past dat niet in deze kolom van 427px: de knop viel dan onder de tekst.
   Hier mag het tekstblok verder krimpen, zodat regel en knop naast elkaar
   staan (Kim 04.09.2026: "hopelijk dan rechts van de tekst"). Alleen voor
   DEZE melding; het component blijft ongemoeid. */
#pulse-sm-link-doc-warning .qdnapro-alert__content {
  flex-basis: 150px;
}

/* Het VOORBEELD van het gekoppelde document (Kim 04.09.2026: "ik wil het
   document kunnen openen en een preview zien, dit doen we met YouTube-video's
   ook"). Dus geen 96 bij 64 duimnagel met object-fit: cover, want dan snijdt
   een staande pagina weg; dit is een venster op pagina 1 op de volle
   kolombreedte, met de pagina volledig in beeld (contain) op wit. De
   maximumhoogte houdt de modal bij elkaar: een A4 op 530px breed zou anders
   750px hoog worden. */
.pulse-sm-doc-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  max-height: 260px;
  overflow: hidden;
  background: var(--c-bg-card, #fff);
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: 12px;
}

.pulse-sm-doc-preview img {
  display: block;
  max-width: 100%;
  max-height: 260px;
  object-fit: contain;
}

/* Kim 04.09.2026: de Openen-knop zat tegen het voorbeeldkader aangeplakt. Deze
   regel geldt alleen voor de actierij ONDER dat kader, dus de knoppenrij van
   het afbeelding-veld eronder verschuift niet mee. */
.pulse-sm-doc-preview + .pulse-sm-hint,
.pulse-sm-doc-preview ~ .pulse-sm-image-actions {
  margin-top: 10px;
}

/* Het gekoppelde document in de stap-modal staat in een EIGEN kader op wit
   (Kim 04.09.2026). De linkerkolom van deze modal is lichtpaars, en een
   bestandsrij die daar los op ligt leest als tekst in plaats van als een
   object dat je hebt gekoppeld. Alleen een oppervlak: de rij binnenin is
   qdnapro-list-row en houdt zijn eigen maten. */
.pulse-sm-doc-frame {
  background: var(--c-bg-card, #fff);
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: 12px;
  padding: 4px 12px 4px 4px;
}

.pulse-sm-row {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-top: 14px;
}

.pulse-sm-row > * {
  flex: 1 1 0;
  min-width: 0;
}

.pulse-sm-field {
  margin-top: 14px;
}

.pulse-sm-field[hidden] {
  display: none;
}

.pulse-sm-label {
  display: block;
  margin: 0 0 6px;
  font-size: 12.5px;
  font-weight: 600;
  color: #40499a;
}

/* 01.09.2026: #pulse-sm-body-label wordt bij video/document/actie verborgen
   (de Subtekst/Opmaak-pill IS daar het label). `display: block` hierboven is
   een auteur-regel en wint van het native `[hidden]` van de browser, ongeacht
   specificiteit — zonder deze regel blijft het label gewoon staan. Zelfde
   valkuil als bij .pulse-sm-editor-mount[hidden] hierboven. */
.pulse-sm-label[hidden] {
  display: none;
}

.pulse-sm-hint {
  margin: 6px 0 0;
  font-size: 11.5px;
  color: var(--c-grey-500, #6b6884);
}

.pulse-sm-error {
  margin: 8px 0 0;
  font-size: 12.5px;
  color: #d8442e;
}

.pulse-sm-error[hidden] {
  display: none;
}

.pulse-sm-status {
  margin: 8px 0 0;
  font-size: 12.5px;
  color: #1d9e75;
}

.pulse-sm-status[hidden] {
  display: none;
}

/* Kaart 21 (rustiger stap 2): .pulse-sm-label-row (kaart 19, punt 4 — de
   losse labelrij met i-knopje voor Subtekst) is VERWIJDERD. De regel bestaat
   niet meer in de markup (detail.html gebruikt nu qdnapro-input's eigen
   `label`+`info`-attributen, zelfde patroon als "Vraag of titel"), en er is
   geen andere gebruiker van deze klasse gevonden (repo-brede grep) — dus
   deze CSS is dode code en is hier weggehaald. */
/* De redacteur wordt bij het openen in de LIVE modal-body gemonteerd, dus dit
   is alleen het lege haakje waar hij in landt. */
.pulse-sm-editor-mount {
  margin-top: 2px;
}

/* Kaart 4 (BOARD-pulse-opmaak-hybride, 25.08.2026): de Subtekst/Opmaak-pill
   boven een tekstveld (Klassiek/Achtergrond/peiling en Vrij vormgeven, zie
   pulseBodyFormatPillHtml() in detail.html).
   Kaart 11 (25.08.2026, Kims herziening): het i-knopje dat vroeger IN het
   qdnapro-input-veld zat (`info`-attribuut) verhuist bij het gedeelde
   Klassiek/Achtergrond-exemplaar naar deze balk, rechts uitgelijnd — dus nu
   wel `justify-content: space-between` nodig, zelfde geometrie-gedachte als
   .pulse-opt-view-bar hierboven (kaart 5/22). Het Vrij vormgeven-exemplaar
   heeft geen i-knopje (`infoBtnId` blijft daar ongezet) en toont dan gewoon
   de pill alleen; flex met één kind gedraagt zich hetzelfde als vóór deze
   kaart. `[hidden]` verbergt de HELE balk (niet alleen het segment erin):
   bij Vrij vormgeven bestaat het GEDEELDE exemplaar niet (dat heeft zijn
   eigen bar), en dan mag er ook geen lege regel ruimte overblijven. */
.pulse-body-format-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}

.pulse-body-format-bar[hidden] {
  display: none;
}

/* --- Kaart M11 (BOARD-pulse-markup-v2, ronde 3, 27.08.2026): emoji-/
   icoon-knopjes onder elk subtekst-veld + hun kleine donkere kiezerpanelen
   ---------------------------------------------------------------------- */
/* De knopjes zelf: rechts uitgelijnd, direct onder het veld (plat of
   WYSIWYG) waar ze bij horen — zie detail.html's pulseInlinePickerBtnsHtml()
   voor de vier plekken. */
.pulse-inline-picker-btns {
  display: flex;
  justify-content: flex-end;
  gap: 4px;
  margin-top: 4px;
}

/* Het eigen donkere kiezerpaneel (`.pulse-inline-picker` + zijn raster, kop,
   zoekveld, emoji-knopjes en icoon-tegels) is op 02.09.2026 VERVALLEN: beide
   kiezers zijn nu de echte bibliotheekcomponenten qdnapro-emoji-sheet en
   qdnapro-sticker-sheet met variant="popover", die hun eigen witte kaart
   meebrengen. Zie het Twig-commentaar bovenaan detail.html.
   Wat hier moest blijven is de z-index-regel bovenaan dit bestand (de twee
   componentschillen zijn daar toegevoegd) en de knoppenrij hierboven. */
/* --- Koppelpaneel (F3-W3): zoek en kies één document of verbeteractie ---- */
/* De lijst heeft een EIGEN maximumhoogte met een smalle, doorzichtige balk
   binnen het component (huisregel) — twintig resultaten zouden de modal anders
   twee schermen hoog maken. */
.pulse-sm-pick-results {
  margin-top: 8px;
  max-height: 208px;
  overflow-y: auto;
  border: 1px solid var(--c-border-soft, #e5e5ea);
  border-radius: 10px;
  background: var(--c-bg-card, #fff);
}

.pulse-sm-pick-results[hidden] {
  display: none;
}

.pulse-sm-pick-results::-webkit-scrollbar {
  width: 6px;
}

.pulse-sm-pick-results::-webkit-scrollbar-track {
  background: transparent;
}

.pulse-sm-pick-results::-webkit-scrollbar-thumb {
  background: rgba(57, 66, 144, 0.22);
  border-radius: 999px;
}

.pulse-sm-pick-results {
  scrollbar-width: thin;
  scrollbar-color: rgba(57, 66, 144, 0.22) transparent;
}

.pulse-sm-pick-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 9px 12px;
  border: 0;
  border-bottom: 1px solid var(--c-border-soft, #e5e5ea);
  background: transparent;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
}

.pulse-sm-pick-item:last-child {
  border-bottom: 0;
}

.pulse-sm-pick-item:hover {
  background: #f7f8ff;
}

.pulse-sm-pick-item:focus-visible {
  outline: 2px solid var(--focus-ring, #534ab7);
  outline-offset: -2px;
}

.pulse-sm-pick-item qdnapro-icon {
  flex-shrink: 0;
  color: #6b6884;
}

.pulse-sm-pick-texts {
  min-width: 0;
  flex: 1 1 auto;
}

.pulse-sm-pick-name {
  font-size: 13px;
  line-height: 18px;
  color: var(--c-text-body, #1c1e2a);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pulse-sm-pick-sub {
  font-size: 11.5px;
  line-height: 16px;
  color: var(--c-grey-500, #6b6884);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pulse-sm-pick-note {
  padding: 10px 12px;
  font-size: 12.5px;
  color: var(--c-grey-500, #6b6884);
}

/* De gekozen koppeling. Hij staat BOVEN het zoekveld: dat is wat er straks in
   de app komt te staan, en dus het antwoord op de vraag die dit paneel stelt. */
.pulse-sm-linked {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #eef0fb;
  color: #40499a;
  font-size: 13px;
  line-height: 19px;
}

.pulse-sm-linked[hidden] {
  display: none;
}

.pulse-sm-linked qdnapro-icon {
  flex-shrink: 0;
}

.pulse-sm-linked-name {
  flex: 1 1 auto;
  min-width: 0;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Antwoordopties: één rij per optie. */
/* --- Antwoordopties: een kaartje per optie (12.08.2026, Kim) ------------ */
/* Elke optie is één blokje met de gedeelde rij (qdnapro-answer-option) en de
   uitleg eronder. Dat blokje is ook het ding dat je sleept, zodat antwoord en
   uitleg samen verhuizen.
 *
 * Waarom een kaartje: met een uitlegveld onder élke optie stonden er bij drie
 * antwoorden negen even zware velden onder elkaar, zonder dat je zag wat bij
 * elkaar hoorde. Nu zie je drie groepen. */
.pulse-opt-rows {
  display: flex;
  flex-direction: column;
  /* Kaart 17 (BOARD-pulse-antwoordopties-richting-c, 25.08.2026): geen
     `gap` meer — de rijen liggen nu tegen elkaar aan in het gedeelde frame
     (.pulse-opt-frame hieronder) i.p.v. lucht tussen losse paarse
     kaartjes. Kaart 21-aanvulling: de dunne scheidingslijn tussen rijen
     (kaart 17) is inmiddels ook weg (elke rij heeft al zijn eigen rand);
     de ruimte tussen rijen komt nu alleen nog uit de eigen padding van
     `.pulse-opt-card` hieronder. */
  /* Anker voor de droplijn hieronder, die absoluut in deze lijst hangt. */
  position: relative;
}

.pulse-opt-frame {
  border: 1px solid var(--c-border-soft, #e5e5ea);
  border-radius: 12px;
  overflow: hidden;
  background: var(--c-bg-card, #fff);
  padding: 6px 0;
}

/* Kaart 19, punt 3 (Kim): foutstand van het GEDEELDE optieblok — geen
   component-schil, want qdnapro-answer-option heeft geen eigen `error`/
   `checkValidity()` (zie showOptionsError()/clearOptionsError() in
   detail.html). `.pulse-opt-card--error` wijst een specifieke lege rij aan
   (te weinig ingevulde opties); de boodschap eronder geldt voor het hele
   blok, ook wanneer er geen aanwijsbare rij is (bv. "geen juist antwoord").
   Zelfde opmaak als qdnapro-input's eigen foutregel (icon + rode tekst, zie
   .input-message-error in components/v2/input/_input.scss). */
.pulse-opt-card--error qdnapro-answer-option {
  box-shadow: 0 0 0 1.5px var(--c-signal-red-text);
  border-radius: 8px;
}

.pulse-opt-rows-error-msg {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 20px;
  color: var(--c-signal-red-text);
}

/* De zachte alles-juist-waarschuwing onder het optieblok (Kim 04.09.2026):
   zelfde vorm als de foutregel hierboven, maar amber - het is een heads-up
   over de puntentelling, geen fout die het opslaan tegenhoudt. */
.pulse-opt-allcorrect-warn {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 20px;
  color: var(--c-warn-amber-600);
}

.pulse-opt-allcorrect-warn qdnapro-icon {
  flex: 0 0 auto;
}

.pulse-opt-allcorrect-warn[hidden] {
  display: none;
}

.pulse-opt-rows-error-msg[hidden] {
  display: none;
}

.pulse-opt-rows-error-msg qdnapro-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.pulse-opt-card {
  /* Kaart 17 (BOARD-pulse-antwoordopties-richting-c, 25.08.2026): GEEN
     eigen achtergrond/afronding meer — dat was het paarse kaartje-per-rij
     dat Kim te druk vond. De rij leeft nu in het gedeelde .pulse-opt-frame
     hierboven; qdnapro-answer-option houdt zijn eigen rand, en dat blijft
     het "hier kun je typen"-signaal (ongewijzigd t.o.v. vóór deze kaart). */
  /* Ruimte links voor de sleepgreep, en `relative` als anker daarvoor. */
  position: relative;
  padding: 6px 8px 6px 16px;
  /* Het kaartje is sleepbaar; zonder dit pakt de browser de tekstselectie op
     in plaats van het blok. Het invoerveld zet het zelf weer aan (hieronder),
     anders kun je je eigen antwoord niet meer selecteren. */
  user-select: none;
}

.pulse-opt-card input,
.pulse-opt-card textarea {
  user-select: text;
}

/* De rij houdt zijn eigen rand en witte vlak — dat is de affordance van een
   invoerveld, en ook precies hoe hij er in de flow-editor uitziet. */
.pulse-opt-card qdnapro-answer-option {
  background: var(--c-bg-card, #fff);
}

/* Geen inspringing (Kim 12.08.2026): het uitlegveld lijnt links precies uit met
   het antwoordveld erboven. Ingesprongen leek het een bijlage van iets anders;
   onder elkaar lezen ze als twee velden van dezelfde optie. */
/* De sleepgreep van het KAARTJE (12.08.2026, Kim). Zat eerst in de rij zelf
   (`draggable-handle` op qdnapro-answer-option), maar je versleept het hele
   kaartje inclusief de uitleg — een greep die alleen de bovenste rij omspant
   belooft dan het verkeerde.
   Zelfde vorm en gedrag als de greep ín het component (paarse balk links,
   zichtbaar bij hover), maar over de VOLLE hoogte van het kaartje, zodat je ziet
   dat de hele groep meegaat. */
.pulse-opt-grip {
  position: absolute;
  left: 5px;
  top: 6px;
  bottom: 6px;
  width: 4px;
  border-radius: 2px;
  background: var(--c-action-500, #4652f3);
  opacity: 0;
  transition: opacity 150ms ease;
  /* Wél aanwijsbaar (dus geen pointer-events: none zoals de greep ín het
     component): de cursor moet hier een grijphandje worden. Iets breder
     aanraakgebied dan de 4px die je ziet, via een onzichtbare rand eromheen. */
  cursor: grab;
  padding: 0 5px;
  box-sizing: content-box;
  margin-left: -5px;
  background-clip: content-box;
}

.pulse-opt-card:hover .pulse-opt-grip {
  opacity: 1;
}

/* Het hele kaartje is sleepbaar, dus overal het grijphandje — anders belooft
   alleen de balk links dat je kunt slepen terwijl het overal werkt. */
.pulse-opt-card {
  cursor: grab;
}

/* Maar niet boven de velden zelf: daar wil je een tekstcursor. */
.pulse-opt-card qdnapro-input,
.pulse-opt-card input,
.pulse-opt-card textarea {
  cursor: auto;
}

.pulse-opt-card qdnapro-answer-option {
  cursor: grab;
}

.pulse-opt-card .qdnapro-answer-option__label {
  cursor: auto;
}

/* Tijdens het slepen: gesloten hand. */
.pulse-opt-card[data-slepend],
.pulse-opt-card[data-slepend] .pulse-opt-grip,
.pulse-opt-card[data-slepend] qdnapro-answer-option {
  cursor: grabbing;
}

/* Tijdens het slepen blijft hij staan, ook als de muis het kaartje verlaat. */
.pulse-opt-card[data-slepend] .pulse-opt-grip {
  opacity: 1;
}

.pulse-opt-why {
  margin: 6px 0 0;
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
}

.pulse-opt-why-mark {
  margin-left: 0;
  cursor: default;
  pointer-events: none;
  position: absolute;
  left: 8px;
  top: 5px;
  z-index: 1;
}

/* Kaart 22 (Kim, 25.08.2026): één regel boven het optieframe met LINKS de
   Antwoorden/Uitleg-schakelaar en RECHTS de "meerdere antwoorden juist"-
   toggle. Die toggle zat eerst in een eigen qdnapro-list-row met titel én
   subtitel eronder: twee regels tekst die zeiden wat de toggle zelf al zegt.
   De marge zit nu op deze balk, niet meer op het segment (anders telt hij
   dubbel zodra de balk zelf ruimte houdt). `min-height` houdt de regel stabiel
   wanneer één van de twee verborgen is (peiling: geen segment, geen toggle). */
.pulse-opt-view-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 10px;
  min-height: 28px;
}

.pulse-opt-view-seg[hidden] {
  display: none;
}

/* Het label hoort BIJ de toggle (het is een <label>), dus een klik op de tekst
   schakelt hem ook — daarom geen los <span> ernaast maar deze wrapper. */
.pulse-opt-multi {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 0 auto;
  cursor: pointer;
  user-select: none;
}

.pulse-opt-multi[hidden] {
  display: none;
}

.pulse-opt-multi-text {
  font-size: 12.5px;
  line-height: 18px;
  color: var(--c-grey-500, #6b6884);
}

.pulse-opt-rows:not([data-view=explain]) .pulse-opt-why,
.pulse-opt-rows:not([data-view=explain]) .pulse-opt-explain-title {
  display: none;
}
.pulse-opt-rows[data-view=explain] .pulse-opt-card--empty {
  display: none;
}
.pulse-opt-rows[data-view=explain] .pulse-opt-card {
  cursor: default;
}
.pulse-opt-rows[data-view=explain] .pulse-opt-grip,
.pulse-opt-rows[data-view=explain] .pulse-opt-card > qdnapro-answer-option {
  display: none;
}
.pulse-opt-rows[data-view=explain] .pulse-opt-explain-title {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: var(--c-purple-900, #1c2140);
  margin: 0 0 6px;
}
.pulse-opt-rows[data-view=explain] .pulse-opt-why {
  margin: 0;
}

/* Het uitlegveld volgt de ANTWOORDREGEL erboven, niet de standaard-input.
 *
 * Gemeten verschil vóór deze regels: antwoord 12px/gewicht 400 in donkerblauw,
 * uitleg 13px/gewicht 500 in bijna-zwart. Vooral dat gewicht deed het werk — de
 * uitleg oogde zwaarder dan het antwoord waar hij bij hoort, terwijl het
 * andersom hoort te zijn. `size="tiny"` bracht de grootte al van 14 naar 13;
 * kleur en gewicht regelen we hier, want daar heeft het component geen variant
 * voor.
 *
 * Bewust op het kaartje gescoopt: elders in de app blijft een qdnapro-input
 * gewoon zijn eigen gewicht houden. */
/* Het uitlegveld leest als de antwoordregel erboven, niet als een los formulier.
 *
 * ⚠️ SPECIFICITEIT. qdnapro-input zet een INGEVULD veld op gewicht 500 via
 * `.qdnapro-input.input-filled .input-field .input-native` — vier klassen. Een
 * override met drie klassen verliest daarvan, ook al staat hij later in het
 * bestand; dat kostte drie pogingen voordat ik de winnende regel had opgezocht
 * in plaats van geraden. Vandaar dat `.input-filled` hier meedoet.
 *
 * ⚠️ Dit WIJKT AF van de rest van de app: overal elders is ingevulde invoer
 * zwaarder dan lege. Hier volgt het uitlegveld bewust de antwoordregel erboven
 * (12px/gewicht 400), omdat de twee samen één kaartje vormen en de uitleg
 * ondergeschikt hoort te zijn aan het antwoord. Wil je terug naar de
 * app-standaard, dan is dit blok het enige dat weg moet. [Kim 12.08.2026] */
.pulse-opt-card .pulse-opt-why-text.input-filled .input-field .input-native,
.pulse-opt-card .pulse-opt-why-text .input-field .input-native {
  font-weight: 400;
  color: var(--c-purple-700, #2a3268);
}

.pulse-opt-why-text {
  flex: 1 1 auto;
  min-width: 0;
}

.pulse-opt-card .qdnapro-input.pulse-opt-why-text.input-type-expanding .input-field .input-trailing {
  right: 10px;
}

.pulse-opt-card .qdnapro-input.pulse-opt-why-text.input-type-expanding.input-size-tiny .input-field textarea.input-native {
  padding-right: 34px;
  padding-left: 40px;
}

.pulse-opt-card .qdnapro-input.pulse-opt-why-text.input-type-expanding[data-why-overflow] .input-field .input-trailing {
  right: 20px;
}

.pulse-opt-card .qdnapro-input.pulse-opt-why-text.input-type-expanding.input-size-tiny[data-why-overflow] .input-field textarea.input-native {
  padding-right: 44px;
}

/* De droplijn tijdens het slepen: één paarse lijn op de landingsplek. Zelfde
   idee als .fe-drop-line in de flow-editor. */
.pulse-opt-dropline {
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  margin-top: -5px;
  background: var(--c-brand-purple, #534ab7);
  border-radius: 2px;
  pointer-events: none;
  z-index: 2;
}

.pulse-opt-dropline[hidden] {
  display: none;
}

.pulse-opt-add {
  margin-top: 0;
}

.pulse-opt-frame .pulse-add-bar {
  border: none;
  border-top: 1.5px dashed rgba(70, 82, 243, 0.3);
  border-radius: 0;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  width: 100%;
  min-height: 44px;
}

.pulse-opt-frame .pulse-add-bar:focus {
  outline: none;
}

.pulse-opt-frame .pulse-add-bar:hover {
  background: var(--c-bg-subtle-purple, #f4f3fb);
  border-top-color: rgba(70, 82, 243, 0.5);
}

[data-theme=dark] .pulse-opt-frame .pulse-add-bar {
  border-top-color: var(--c-purple-200-30, rgba(165, 172, 255, 0.3));
}

[data-theme=dark] .pulse-opt-frame .pulse-add-bar:hover {
  background: rgba(255, 255, 255, 0.06);
  border-top-color: var(--c-purple-200-50, rgba(165, 172, 255, 0.5));
}

/* Afbeelding bij een stap. */
.pulse-sm-image {
  display: flex;
  align-items: center;
  gap: 12px;
}

.pulse-sm-thumb {
  width: 96px;
  height: 64px;
  border-radius: 10px;
  overflow: hidden;
  background: var(--c-bg-subtle-purple, #f3f4fb);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #b9bcd6;
  flex: 0 0 auto;
}

.pulse-sm-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pulse-sm-image-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* Videovoorbeeld (01.09.2026, Kim) — bij een videostap staat op de plek van
   de afbeelding-kiezer het voorbeeld van de video zelf. 16:9 en niet een
   vaste hoogte: dat is de verhouding waarin YouTube levert, en de kolom
   bepaalt de breedte. De speler is een echte, afspeelbare insluiting (zelfde
   youtube-nocookie-vorm als de app), zodat je in de backoffice kunt
   controleren of je de JUISTE video geplakt hebt. */
.pulse-sm-video-preview {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: 12px;
  overflow: hidden;
  background: #000;
}

.pulse-sm-video-preview-frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* De lege plaat: geen zwart vlak zonder uitleg, maar een rustige stippellijn
   met één regel die zegt wat er moet gebeuren. Bewust NIET 16:9: zolang er
   geen video is, is een leeg vlak van 300px hoog alleen maar gat in het
   formulier. Hij groeit pas naar de echte verhouding zodra de speler er
   staat. */
.pulse-sm-video-preview.is-empty {
  aspect-ratio: auto;
  min-height: 116px;
  background: var(--c-bg-subtle-purple, #f3f4fb);
  border: 1px dashed var(--c-border-soft, #e5e5ea);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px;
  color: #b9bcd6;
  text-align: center;
}

.pulse-sm-video-preview-text {
  margin: 0;
  max-width: 260px;
  font-size: 11.5px;
  line-height: 16px;
  color: var(--c-grey-500, #6b6884);
}

[data-theme=dark] .pulse-sm-video-preview.is-empty {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.14);
}

/* De twee kale tekstvlakken die hier stonden (.pulse-sm-textarea) zijn weg per
   12.08.2026: de feedbackvelden zijn vervangen door de uitleg per optie, en die
   is een qdnapro-input type="expanding". Een handgemaakt tekstvlak met een eigen
   randje en een eigen focus-ring naast de echte velden in dezelfde modal is
   precies het soort scheefgroei dat je later niet meer terugvindt. */
/* --- Opmaak-wizard (kaart 6, SCOPE-pulse-opmaak-wizard.md) --------------- */
/* Schil: qdnapro-wizard-modal (components/v2/wizard-modal). Elke stap is zijn
   EIGEN venster (.qdnapro-wizard-step), dus kop/voortgang/voet staan in ELK
   van de drie stappen — geen gedeeld element dat buiten de stappen leeft. */
/* Kaart 17 (Kims Figma, letterlijk): de kop IS de staptitel (paars,
   linksboven), kruisje rechtsboven, een dunne scheidingslijn onder de kop.
   Geen los "Nieuwe kennisvraag"-kopje en geen grijze "STAP 1/3"-regel meer
   (.pulse-wiz-progress is daarom verwijderd). */
/* Kaart 19, punt 2 (Kim): VASTE hoogte, gelijk op alle drie de stappen — was
   `auto-height` (component-attribuut, zie qdna-wizard-modal.js), waarbij elke
   stap zijn EIGEN natuurlijke inhoudshoogte kreeg en de modal dus verspong
   tussen stap 1 (drie kaarten), 2 (formulier) en 3 (kort pacing-blok). De
   breedte was via `data-width` op elke stap al gelijk (880, nu 1280, zie
   WIZ_STEP_WIDTH in detail.html) — dat verspringt dus al niet. `--wm-height`
   is de CSS-var die het component zelf leest (`.wm-steps { height:
   var(--wm-height, 540px); }`, zie _wizard-modal.scss); dit is de
   page-scoped override die de skill/kaart hier vraagt, want de component
   zelf kent geen `size`-schaal zoals qdnapro-modal (xxlarge enz.) — nagekeken
   in qdna-wizard-modal.js, die kent alleen per-stap `data-width` + deze
   hoogte-var/`auto-height`. `.pulse-wiz-scroll` (verderop) is en blijft de
   scrollende kolom BINNEN een stap wanneer de inhoud niet past — nooit de
   modal zelf, dezelfde `min-height: 0`-keten-regel als elders in dit bestand. */
/* Kaart 14 (25.08.2026): hoger nu de stap meer informatie draagt (toggle,
   schakelaar, uitleg-stand). min() houdt hem binnen beeld op lage schermen;
   96px marge omdat de dialog 18px meer meet dan zijn max-height rekent. */
#pulse-wizard-modal {
  --wm-height: min(800px, calc(100vh - 96px));
}

.pulse-wiz-hdr {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px 14px;
  border-bottom: 1px solid var(--c-border-soft, #e5e5ea);
  flex-shrink: 0;
}

.pulse-wiz-hdr-title {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--c-brand-purple, #394290);
}

/* Kaart 21: het "Bewerk vraag"/"Instellingen"-segment bovenin, ALLEEN
   zichtbaar in bewerkstand — `hidden` staat standaard op de wrapper en wordt
   per sessie gezet/verwijderd door wizApplyEditChrome() (detail.html). Elke
   stap draagt zijn EIGEN exemplaar (de wizard bouwt zijn drie stappen maar
   ÉÉN keer en verplaatst ze, geen gedeelde node), vandaar drie identieke
   wrappers in de markup, één per `.pulse-wiz-step`. */
.pulse-wiz-edit-seg-wrap {
  padding: 12px 20px 0;
  flex-shrink: 0;
}

.pulse-wiz-hdr {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  grid-template-areas: "left seg close";
  align-items: center;
}
.pulse-wiz-hdr-left {
  grid-area: left;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.pulse-wiz-hdr-title {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pulse-wiz-hdr-pill {
  flex-shrink: 0;
}

.pulse-wiz-edit-seg-wrap {
  grid-area: seg;
  justify-self: center;
  padding: 0;
}

.pulse-wiz-close-btn {
  grid-area: close;
  justify-self: end;
}

#pulse-step-modal .pulse-sm-hdr-left {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex: 1 1 auto;
}
#pulse-step-modal .pulse-sm-hdr-title-shrunk {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#pulse-step-modal .pulse-sm-hdr-pill {
  flex-shrink: 0;
}

.pulse-wiz-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 20px 20px;
}

.pulse-wiz-ftr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-top: 1px solid var(--c-border-soft, #e5e5ea);
  flex-shrink: 0;
}

.pulse-wiz-ftr-right {
  display: flex;
  gap: 8px;
}

/* .pulse-wiz-ftr-left is leeg op stap 1 (geen terugknop); `justify-content:
   space-between` op de voet houdt de rechterknoppen dan toch rechts. */
.pulse-wiz-back-btn qdnapro-icon {
  margin-right: 4px;
}

.pulse-wiz-next-btn qdnapro-icon {
  margin-left: 4px;
}

/* Stap 1 (kaart 17, Kims Figma): GECENTREERDE paarse kolomtitel boven één
   rijke voorbeeldkaart per opmaakvariant — geen beschrijvende zin meer. */
.pulse-wiz-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  /* Kaart 17c, punt 2: rij expliciet op stretch zodat elke kolom (grid-item)
     de hoogte van de langste kolom krijgt (Kims feedback: "de kolommenrij
     op stretch"). Grid doet dit al standaard, maar de daadwerkelijke gelijke
     hoogte moet daarna nog doorgezet worden naar de kaart zelf (zie
     .pulse-wiz-card hieronder), anders blijft de KAART zelf ongelijk. */
  align-items: stretch;
  gap: 16px;
}

@media (max-width: 900px) {
  .pulse-wiz-cards {
    grid-template-columns: minmax(0, 1fr);
  }
}
.pulse-wiz-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
  height: 100%;
}

/* Kaart 15b-stijl tokenisatie: --c-brand-purple is hier al de vaste
   merkpaars-titelkleur (zelfde token als .pulse-wiz-hdr-title). */
.pulse-wiz-col-title {
  margin: 0;
  font-size: 13.5px;
  font-weight: 600;
  text-align: center;
  color: var(--c-brand-purple, #394290);
}

.pulse-wiz-card {
  display: flex;
  flex-direction: column;
  /* Kaart 17c, punt 2: de kaart vult de resterende hoogte van .pulse-wiz-col
     (col staat hierboven al op height:100% via de grid-stretch). Kim schreef
     "de kaarten op height 100%"; een letterlijke height:100% zou hier de
     kolomtitel (h4.pulse-wiz-col-title, dezelfde flex-column) overlappen
     omdat percentage-hoogte de ruimte van een sibling niet aftrekt. flex:1
     geeft hetzelfde zichtbare resultaat (kaart vult de rest van de kolom,
     alle drie kaarten even hoog) zonder die overlap. */
  flex: 1 1 auto;
  padding: 0;
  border: 2px solid var(--c-border-soft, #e5e5ea);
  border-radius: 14px;
  background: var(--c-bg-card, #fff);
  overflow: hidden;
  text-align: left;
  cursor: pointer;
  /* Kaart 17d: de gemeten oorzaak van de onzichtbare selectie-ring was NIET
     een overschreven regel, clipping of specificiteit — de SCSS-regel
     .pulse-wiz-card.is-selected hieronder was en is correct en compileert
     prima. De ring komt op door deze transitielijst, die tot en met kaart
     17c ook box-shadow bevatte. `openWizard()` (view + harnas) toggelt
     `is-selected` bij ELKE nieuwe/herstart wizard-sessie opnieuw op ALLE
     kaarten (reset naar Klassiek) — óók wanneer de vorige sessie een
     ANDERE kaart had gekozen (bv. na "Tekst op achtergrond" testen en de
     wizard opnieuw openen). Op dat moment krijgen TWEE kaarten in
     dezelfde tick een echte class-wijziging: Klassiek WINT `is-selected`,
     de vorige kaart VERLIEST hem. Met box-shadow in de transitielijst
     ANIMEERT die wissel over 120ms — en meteen na de class-toggle (of een
     headless screenshot die het frame op t≈0 van die transitie vastlegt,
     precies wat --virtual-time-budget doet) staat de animatie nog op zijn
     STARTwaarde: de kaart die de ring KRIJGT toont 'm nog niet (start =
     "geen schaduw", dezelfde vorm maar rgba(0,0,0,0)), de kaart die hem
     VERLIEST toont 'm nog steeds VOL (start = de oude, nog niet vervaagde
     ring). Bevestigd via de wizhold-hook in het harnas, op hetzelfde
     moment: "computed classic is-selected=true | boxShadow=rgba(0, 0, 0,
     0) 0px 0px 0px 0px, ..." (moet de ring hebben, toont 'm nog niet) vs.
     "computed background is-selected=false | boxShadow=rgb(165, 172,
     255) ... rgba(70, 82, 243, 0.25) ..." (mag hem niet hebben, toont 'm
     nog wél) — exact de is-selected-kleuren op de kaart die de class net
     kwijt is. Fix: box-shadow NIET meer animeren op deze kaart —
     border-color/background-color blijven zacht overvloeien (hover/
     active), maar de selectie-ring verschijnt/verdwijnt DIRECT zodra de
     class wisselt, zodat hij nooit meer op een tussentijdse (onjuiste)
     animatiestand gevangen kan worden — ook niet bij een reset naar
     Klassiek. */
  transition: border-color 120ms ease, background-color 120ms ease;
}

/* Hover/pressed/selected met de bestaande focus-ring-tokens (besluit 4),
   zelfde recept als .qdnapro-background-picker's tegels.
   Kaart 17c (Kims visuele review, punten 1/3/4):
   - geen transform/translateY/scale meer op :hover of :active (punt 3);
   - het pressed-patroon is 1-op-1 gespiegeld van de knop-component
     (components/v2/button/_button.scss, .button-secondary-outline en
     .button-secondary-purple: :hover = een lichte achtergrondtint, :active =
     een iets diepere tint van dezelfde kleurfamilie, GEEN transform en GEEN
     extra box-shadow op :active — de knop-component doet dat nergens; punt 4). */
.pulse-wiz-card:hover {
  border-color: var(--c-purple-300, #a9adde);
} /* Kim 24.08: hover verft NIET, alleen de rand kleurt. */
.pulse-wiz-card:active {
  border-color: var(--c-purple-300, #a9adde);
  background: var(--c-border-tree-bright, #d4d8ee);
}

/* Kims review 24.08 (tweede ronde): op de ECHTE pagina laadt de v1-header
   bootstrap.min.css, en die zet `button:focus { outline: 5px auto
   -webkit-focus-ring-color }` op ELKE knop. Deze kaarten zijn buttons, dus
   een echte muisklik (die wel :focus geeft maar geen :focus-visible) kreeg
   daardoor alsnog de harde blauwe systeem-ring rond de kaart — de
   :focus-visible-regel hieronder kon dat niet opvangen. In het statische
   harnas (_pulse-modal-harness.html) laadt bootstrap niet, daarom was het
   daar niet te zien. Deze regel zet de bootstrap-outline uit voor ALLE
   focusstanden; de zichtbare focusmarkering blijft de zachte lichtpaarse
   dubbele ring hieronder. */
.pulse-wiz-card:focus {
  outline: none;
}

.pulse-wiz-card:focus-visible {
  /* Kims review 24.08: never the hard dark ring on these cards. Focus uses
     the SAME soft light-purple double ring as .is-selected, so a click (or
     programmatic focus) can never paint the harsh blue inner border. */
  outline: none;
  box-shadow: 0 0 0 2px var(--c-purple-200, #a5acff), 0 0 0 5px var(--focus-glow, rgba(83, 74, 183, 0.18));
}

/* Kaart 17c, punt 1: de dikke donkerpaarse rand bij selectie was te hard.
   De geselecteerde kaart houdt nu alleen een dunne lichtpaarse rand
   (--c-purple-200) plus de zachte glow eromheen (--focus-glow) — geen harde
   2px --focus-ring laag meer. */
.pulse-wiz-card.is-selected {
  /* Kaart 17d: de SOFT lichtpaarse dubbele ring (zoals de focusring, maar
     lichtpaars, nooit de harde donkere rand): dunne purple-200-ring plus de
     zachte glow. Deze ring verschijnt altijd DIRECT — zie het "transition"-
     commentaar bij de basisregel .pulse-wiz-card hierboven voor waarom
     box-shadow daar bewust NIET meer in de transitielijst staat. */
  border-color: var(--c-purple-200, #a5acff);
  box-shadow: 0 0 0 2px var(--c-purple-200, #a5acff), 0 0 0 5px var(--focus-glow, rgba(83, 74, 183, 0.18));
}

/* De kaart-inhoud (vraag/subtekst/pillen) krijgt zijn eigen binnenkant, want
   de illustratie/canvas hierboven loopt bewust tot de kaartrand (borderless,
   Kims annotatie). */
.pulse-wiz-card-q {
  display: block;
  margin: 10px 12px 2px;
  font-size: 13px;
  font-weight: 700;
  color: var(--c-text-heading, #1c1e2a);
}

.pulse-wiz-card-sub {
  display: block;
  margin: 0 12px 10px;
  font-size: 11.5px;
  line-height: 16px;
  color: var(--c-grey-500, #6b6884);
}

/* De twee voorbeeldpillen: klikken moet de KAART selecteren, niet de pil
   "aanzetten" — vandaar pointer-events:none op de wrapper (decoratief). */
.pulse-wiz-card-answers {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0 12px 12px;
  pointer-events: none;
}

.pulse-wiz-card-answers qdnapro-answer-button {
  width: 100%;
}

/* Klassiek: borderless illustratie over de volle kaartbreedte (kaart 17d —
   Kims raket-illustratie, cover-fit, geen vervorming). De achtergrondkleur
   blijft staan als laadval/fallback-kleur onder de <img> (zichtbaar in de
   rand als het beeld niet laadt), niet als zichtbaar vlak eromheen — de
   illustratie vult de hele hoogte/breedte van dit kader. */
/* Kims review 24.08 (derde ronde): de drie voorbeeldkaarten moeten hun
   ANTWOORDOPTIES op exact dezelfde hoogte hebben, met de middelste kaart
   ("Tekst op achtergrond") als goede voorbeeld. De kaarten waren al even
   hoog (flex:1 hierboven), maar de inhoud stapelde in alle drie van boven
   af en niets vulde de restruimte, dus stond de eerste pil op 177 (Klassiek)
   / 309 (middelste) / 129 (Vrij vormgeven) px — gemeten met de pilmeting in
   _pulse-modal-harness.html (?wizhold=step1).
   Het recept: per kaart slokt EEN blok de restruimte op (flex-grow), en de
   pillen zijn overal het laatste element met dezelfde ondermarge. Dan valt
   de bovenkant van de eerste pil automatisch op dezelfde lijn, ongeacht of
   er boven de pillen een vraag + subtekst staat (Klassiek), alleen een
   subtekst (middelste) of niets (Vrij vormgeven). Hoogtes met de hand
   gelijkzetten zou breken zodra een vertaling een regel langer wordt.
   Hier is dat het illustratiekader: geen VASTE 96px meer maar 96px als
   MINIMUM plus flex-grow, zodat het beeld doorgroeit tot het net zo groot
   is als het achtergrondvlak van de middelste kaart (Kims annotatie:
   "afbeelding dus net zo groot als in de middelste optie").
   ⚠️ `position: relative` hier + `position: absolute; inset: 0` op de <img>
   (zie hieronder) is GEEN opsmuk: het is de enige stand die in BEIDE layouts
   klopt. De img stond op width/height 100%. Zodra de hoogte van dit kader
   niet meer VAST is (96px) maar door flex-grow bepaald wordt, resolvt die
   height:100% niet in de GESTAPELDE stand (<= 900px, één kolom, auto-rij:
   geen definitieve ouderhoogte om tegen te rekenen) — de img valt dan terug
   op zijn intrinsieke verhouding en werd bij 820px viewport ~493px hoog,
   waardoor de klassieke kaart 638px werd i.p.v. ~200px. Gemeten met de
   pilmeting in het harnas op --window-size=820. Absolute positionering
   binnen een relative kader vult altijd exact het kader, of de hoogte nu
   van flex-grow, van de min-height of van een media-query komt. */
.pulse-wiz-card-illustration {
  position: relative;
  display: block;
  flex: 1 1 auto;
  min-height: 96px;
  overflow: hidden;
  background: var(--c-bg-subtle-purple, #f3f4fb);
}

/* Cover + center-top-ish: het onderwerp (gezicht + raket) staat in het
   BOVENSTE deel van de illustratie (2742x1828, kop rond y≈150-450, raket
   rond y≈250-750) — bij een brede/lage kaart (cover schaalt op breedte,
   dus de hoogte wordt afgekapt) laat een pure center-center-crop te veel
   van het bovenste hoofd/haar weg en te veel lucht/rook onderin staan.
   object-position: center 25% getest met de daadwerkelijke breedte/hoogte-
   verhouding van dit kader: houdt gezicht ÉN raket goed in beeld. Kims
   review 24.08 (derde ronde) maakt dit kader hoger (~280x246 i.p.v.
   ~280x96, zie .pulse-wiz-card-illustration hierboven) — opnieuw gemeten:
   bij die hogere verhouding wordt er MINDER hoogte afgekapt, dus blijft
   center 25% goed staan en hoeft het brandpunt niet mee te verschuiven. */
.pulse-wiz-card-illustration-img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 25%;
}

/* Tekst op achtergrond: de bovenste ~55% van de kaart is de scène-canvas
   (qdnapro-pulse-canvas, WEERGAVE) met de vraag gecentreerd erop; de rest
   van de kaart (subtekst + pillen) blijft wit. */
.pulse-wiz-card--background {
  padding: 0;
}

.pulse-wiz-card-bgcanvas {
  display: block;
  width: 100%;
  /* 28.08.2026: 16/10 en NIET 16/9. De crop die de gebruiker moet doorlopen
     (PULSE_PHOTO_CROP_RATIO in detail.html), het component zelf en de kaart in
     de app staan alle drie op 16/10; alleen de wizard-frames stonden op 16/9.
     Daardoor ontwierp je op een ander vlak dan je terugkreeg, wat precies de
     klacht van Kim was ('de verhoudingen moeten gelijk zijn'). */
  aspect-ratio: 16/10;
}

.pulse-wiz-card-bgcanvas qdnapro-pulse-canvas {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 0;
}

.pulse-wiz-card-body {
  display: flex;
  flex-direction: column;
  padding-top: 10px;
}

.pulse-wiz-card-body .pulse-wiz-card-sub {
  margin-top: 0;
}

/* Vrij vormgeven: bovenaan de vraag, dan een kleine afbeelding LINKS met
   wrappende uitlegtekst eromheen (float, Kims annotatie), dan de pillen. */
/* Kims review 24.08 (derde ronde): de `padding-bottom: 4px` die hier stond
   is weg. De andere twee kaarten hebben padding 0 (zie .pulse-wiz-card),
   dus die 4px zette de pillen van DEZE kaart structureel 4px hoger dan de
   andere twee — precies het soort verschil dat de "gelijke hoogte" alsnog
   net niet haalt. De ondermarge van het pillenblok (12px) is nu in alle
   drie de kaarten de enige ruimte onder de pillen. */
/* Kims review 24.08 (VIERDE ronde): de kaart moet LATEN ZIEN dat je hier je
   eigen kader bouwt, "als een soort Word, met foto's en tekst naast elkaar".
   De oude opzet (een 40x40-plaatje dat in de tekst zweeft, 11.5px letters,
   daaronder een half lege kaart) beloofde dat wel maar toonde het niet.
   Nu een miniatuur-DOCUMENT: eigen kop, beeld LINKS met de uitleg ERNAAST,
   daaronder een tweede alinea over de volle breedte, dan pas de pillen.
   Dit blok is meteen ook het blok dat de restruimte opslokt (flex-grow) —
   zelfde recept als het illustratiekader bij Klassiek en het achtergrond-
   vlak bij de middelste kaart, zodat de eerste antwoordpil in alle drie de
   kaarten op dezelfde hoogte blijft vallen. `justify-content: space-between`
   verdeelt de winst over kop/beeldrij/slotalinea in plaats van hem als één
   gat onder de tekst te laten staan. */
.pulse-wiz-card-doc {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: space-between;
  gap: 10px;
  margin: 12px 12px 12px;
  min-width: 0;
}

/* Eigen, GROTERE kop dan .pulse-wiz-card-q (13px, de gedeelde kop van
   Klassiek): bij deze variant bepaal je je koppen zelf, dus laat de
   voorbeeldkaart dat ook zien. */
.pulse-wiz-card-free-q {
  display: block;
  font-size: 15px;
  line-height: 1.25;
  font-weight: 700;
  color: var(--c-text-heading, #1c1e2a);
}

/* Beeld en tekst NAAST elkaar (Kims Figma). Geen float meer: bij een float
   loopt korte tekst onder het beeld door en krijg je precies het rommelige
   beeld dat hier niet moet. Flex houdt de twee kolommen strak naast elkaar
   en laat de tekst zijn eigen kolom houden, ook als hij langer wordt. */
.pulse-wiz-card-free-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
}

.pulse-wiz-card-free-explain {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  /* Kim: "de tekst is te klein". 11.5/16 -> 12.5/18. */
  font-size: 12.5px;
  line-height: 18px;
  color: var(--c-grey-500, #6b6884);
}

/* De slotalinea loopt bewust over de VOLLE kaartbreedte (het beeld staat er
   niet meer naast) — dat is het tweede halve bewijs van "vrij vormgeven":
   niet elke alinea hoeft dezelfde vorm te hebben. */
.pulse-wiz-card-free-explain--full {
  flex: 0 0 auto;
}

/* Kaart 17d, Kims expliciete instructie: dit kadertje is vierkant (40x40,
   los van de 6px padding erbinnen) terwijl de raket-illustratie zelf
   LANDSCAPE is (2742x1828, ~1.5:1) — object-fit:cover alleen zou zomaar
   lucht/rook laten staan i.p.v. het ONDERWERP (de vrouw met de raket).
   Gekozen brandpunt (geverifieerd met een 200x200-testcrop in headless
   Chrome, zie het kaart-17d-verslag): het gezicht van de vrouw zit rond
   x≈1110/y≈450 in de 2742x1828-illustratie, de raket rond x≈1670/y≈590 —
   beide dicht genoeg bij elkaar (x-afstand ≈560px) om samen in één
   vierkante cover-crop te passen zolang die crop niet dood-centreert.
   Bij object-fit:cover op een vierkant kader wordt de VOLLE hoogte (1828px)
   getoond en alleen de breedte afgekapt tot 1828px (van de 2742px totaal) —
   object-position-y doet er dus niets toe (de volledige hoogte is al
   zichtbaar); object-position-x=52% legt het midden van die 1828px-brede
   crop tussen gezicht en raket in, zodat beide zichtbaar blijven. */
/* Middle example card: Kim's dedicated readable-background version of the
   rocket illustration (Achtegrond.svg), with the sample question in DARK bold
   text centred on it, exactly like her Figma. No scrim needed: the asset
   itself keeps the text zone calm. */
/* Kims review 24.08 (derde ronde): ook dit vlak krijgt flex-grow, met de
   16/10 als MINIMUM. In de huidige vertalingen is deze kaart de langste en
   groeit hier dus niets — maar zodra de uitlegtekst van "Vrij vormgeven"
   één regel langer wordt (andere taal), is de MIDDELSTE de kortste en moet
   hij op zijn beurt kunnen opvullen, anders staan de pillen weer ongelijk. */
.pulse-wiz-card-bgimage {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16/10;
  width: 100%;
  background-image: url("/assets/pulse-backgrounds/wizard-raket-achtergrond.svg");
  background-size: cover;
  background-position: center 30%;
  padding: 12px 18px;
  box-sizing: border-box;
}

.pulse-wiz-card-bgimage-q {
  font-size: 17px;
  line-height: 1.3;
  font-weight: 700;
  color: var(--c-text, #1c1e2a);
  text-align: center;
}

/* Kims review 24.08 (vierde ronde): het beeld is geen 40x40-postzegel meer
   maar een echt afbeeldingsblok, ~34% van de kaartbreedte en staand
   (aspect-ratio 4/5, de verhouding uit Kims Figma: 207x268). `flex-basis`
   in procenten i.p.v. een vaste px-maat, zodat het blok bij een smallere
   kaart (gestapelde stand onder 900px, of een vierde kolom later) mee
   krimpt en de tekst ernaast nooit tot één woord per regel geknepen wordt.
   Brandpunt: bij object-fit:cover op een STAAND kader wordt van de
   landschaps-illustratie (2742x1828) juist de BREEDTE afgekapt — er blijft
   ~1462px van de 2742px over. Gezicht (x~1110) en raket (x~1670) liggen
   ~560px uit elkaar en passen daar samen in zolang de crop niet
   dood-centreert; 52% legt het midden van die crop tussen die twee in
   (zelfde brandpunt als de oude vierkante postzegel, opnieuw geldig omdat
   alleen de verhouding veranderde, niet de as die wordt afgekapt). */
.pulse-wiz-card-free-img {
  flex: 0 0 34%;
  /* ⚠️ Zonder deze regel is de kaart stuk. Een flex-item heeft
     `min-width: auto`, en voor een VERVANGEN element (een <img>) is die
     automatische minimummaat de INTRINSIEKE breedte van het bestand — hier
     2742px. `flex-basis: 34%` (134px) wordt daar simpelweg door
     overstemd: gemeten stond het beeld op 2742x3428 en werd de hele
     kaartenrij 3662px hoog. Gemeten in een los harnas op de gecompileerde
     style-v1.css, niet beredeneerd. */
  min-width: 0;
  aspect-ratio: 4/5;
  border-radius: 8px;
  background: var(--c-bg-subtle-purple, #f3f4fb);
  object-fit: cover;
  object-position: 52% 30%;
}

/* Stap 2: placeholder-stijl van kaart 6 — niet meer aangeroepen sinds kaart 7
   (de placeholder-paneel-HTML bestaat niet meer), maar de vertaalsleutel
   erachter blijft ongebruikt bestaan (zie het kaart-7-verslag). Regel laten
   staan is goedkoper dan een class weghalen die misschien nog ergens anders
   gebruikt wordt; hier niet het geval, maar geen risico voor niets nemen. */
.pulse-wiz-step2-placeholder {
  margin: 0;
  padding: 32px 16px;
  text-align: center;
  border: 1px dashed var(--c-border-soft, #e5e5ea);
  border-radius: 12px;
  font-size: 13px;
  color: var(--c-grey-500, #6b6884);
}

/* --- Stap 2: inhoud per opmaakvariant (kaart 7) -------------------------- */
/* Preview LINKS, velden RECHTS (SCOPE-besluit 15); onder de bestaande
   wizard-breedtegrens van 900px (zie .pulse-wiz-cards hierboven) stapelt het,
   preview boven. */
.pulse-wiz-step2 {
  display: grid;
  grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

@media (max-width: 900px) {
  .pulse-wiz-step2 {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* Kaart 12b (BOARD-pulse-opmaak-hybride, 25.08.2026): stap 3 (Instellingen)
   hergebruikt de grid hierboven (`.pulse-wiz-step2`, ongewijzigd) in plaats
   van een eigen 2-koloms-layout te schrijven — zie de toelichting bij
   `step3Body` in detail.html. `.pulse-wiz-step3-fields` is de enige nieuwe
   regel: hij zet de instellingenkolom expliciet in kolom 2, zodat hij daar
   al staat vóórdat wizMovePreviewToStep() het kaartvoorbeeld-paneel voor het
   eerst naar deze stap verplaatst (zonder deze regel zou de kolom, als enige
   grid-item, in de SMALLE eerste kolom vallen — auto-plaatsing kent geen
   voorkeur voor de brede kolom). Onder de bestaande 900px-terugval hierboven
   is de grid zelf al één kolom breed; `grid-column: 2` zou daar een
   overtollige tweede (impliciete) kolom aanmaken, dus die val terug naar
   kolom 1, exact zoals de rest van deze grid al doet. */
.pulse-wiz-step3-fields {
  grid-column: 2;
}

@media (max-width: 900px) {
  .pulse-wiz-step3-fields {
    grid-column: 1;
  }
}
.pulse-wiz-step2-preview {
  display: flex;
  flex-direction: column;
  gap: 12px;
  /* De drie voorbeelden delen deze kolom en wisselen via [hidden] (besluit
     3: opmaak wisselen bewaart alles, dus niets wordt hier ooit herbouwd).
     Het relative/overflow-houvast voor de Uitleg-sheet is op 26.08.2026
     (Kims acceptatietest) verhuisd naar .pulse-wiz-preview-frame
     hieronder: de sheet klemt nu aan het KAARTFRAME, niet aan het hele
     paneel, zodat het Juist/Fout-schakeltje onder het frame kan staan
     zonder dat de sheet er overheen zakt. */
}

/* Kims acceptatietest 26.08: het frame om de drie kaartpreviews + de
   Uitleg-sheet. `position: relative` + `overflow: hidden` geven de sheet
   (.pulse-wiz-explain-preview, verderop) een houvast om ONDER de kaart te
   wachten (translateY) zonder scrollbalk of extra ruimte. `position:
   relative` (geen transform) verandert niets aan het `position: fixed`-
   gedrag van qdnapro-popover — die blijft t.o.v. de viewport plaatsen, ook
   al zit hij dieper in deze boom (de achtergrond-kleurkiezer in
   .pulse-wiz-bg-preview). In de telefoon-overlay (kaart 9) is het paneel
   viewporthoog maar dit frame kaarthoog — de "sheet blijft deels zichtbaar
   in dichte stand"-bevinding uit de kaart-9-metingen is daarmee ook weg. */
.pulse-wiz-preview-frame {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Kaart 21-aanvulling (Kim): .pulse-wiz-step2-preview-kicker (kaart 17, de
   grijze "PULSE STAP"-eyebrow boven de preview) is VERWIJDERD uit de markup
   — de modaltitel en de typepill zeggen dat al. Geen andere gebruiker
   gevonden (repo-brede grep, ook de harness), dus deze CSS is dode code en
   is hier weggehaald. */
.pulse-wiz-step2-fields > * {
  margin-top: 14px;
}

.pulse-wiz-step2-fields > *:first-child {
  margin-top: 0;
}

/* Kaart 17: de klassieke preview is nu een ECHTE kaart (rand + witte
   achtergrond), geen los beeldblok meer — foto/vraag/subtekst/pillen staan
   er allemaal in, precies zoals de kaart er straks ECHT uitziet.
   Kaart 2 (BOARD-pulse-opmaak-hybride, 25.08.2026): dit blok is niet langer
   classic-only — bij "free" toont dezelfde kaart-schil, maar dan ALLEEN de
   foto (vraag/subtekst/pillen blijven daar verborgen, zie
   wizApplyLayoutVisibility() in detail.html), zodat de rand er straks als
   een nette losse fotokaart uitziet i.p.v. een leeg wit vlak onder de foto. */
.pulse-wiz-classic-preview {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--c-border-soft, #e5e5ea);
  border-radius: 12px;
  overflow: hidden;
  background: var(--c-bg-card, #fff);
}

/* Klassiek: mini-kaartpreview met het beeldblok (Kims annotaties "Nog
   blanko" / "+ afbeelding"). 16:9 zoals de bijsnijd-cropper voor Pulse
   afdwingt (preset "pulse"), zodat de preview klopt met wat er straks
   daadwerkelijk op de kaart staat. */
.pulse-wiz-classic-photo {
  position: relative;
  width: 100%;
  /* 28.08.2026: 16/10 en NIET 16/9. De crop die de gebruiker moet doorlopen
     (PULSE_PHOTO_CROP_RATIO in detail.html), het component zelf en de kaart in
     de app staan alle drie op 16/10; alleen de wizard-frames stonden op 16/9.
     Daardoor ontwierp je op een ander vlak dan je terugkreeg, wat precies de
     klacht van Kim was ('de verhoudingen moeten gelijk zijn'). */
  aspect-ratio: 16/10;
  overflow: hidden;
  background: var(--c-bg-subtle-purple, #f3f4fb);
  display: flex;
  align-items: center;
  justify-content: center;
}

.pulse-wiz-classic-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Vraag/subtekst/pillen in de klassieke preview-kaart, onder de foto. */
.pulse-wiz-preview-q {
  display: block;
  margin: 10px 12px 2px;
  font-size: 13px;
  font-weight: 700;
  color: var(--c-text-heading, #1c1e2a);
}

/* Kims annotatie 27.08.2026: "ik wil wel dat er spaties geregistreerd worden,
   deze worden nu niet getoond in de preview". Ze werden WEL bewaard (de
   sanitizer op de server laat \n, lege regels en voorloopspaties ongemoeid,
   nagemeten) en de app toont ze ook al (`_platteBodyNaarHtml()` in 16-pulse.js
   zet \n om naar <br>) — alleen DEZE previewkaart plakte alles aan elkaar,
   want `white-space` stond op de standaard `normal` en dan vallen newlines en
   dubbele spaties samen tot één spatie. `pre-wrap` houdt regelafbrekingen,
   lege regels en spatiereeksen intact en laat lange regels nog steeds
   afbreken. De subtekst komt hier als textContent binnen (zie
   wizRefreshClassicPreview in detail.html), dus de \n's stonden al in de DOM;
   het was puur de CSS. */
.pulse-wiz-preview-sub {
  display: block;
  margin: 0 12px 10px;
  font-size: 11.5px;
  line-height: 16px;
  color: var(--c-grey-500, #6b6884);
  white-space: pre-wrap;
}

/* Kaart M11/M12-contract (BOARD-pulse-markup-v2, ronde 3, 27.08.2026): het
   icoon-blok van de subtekst, gecentreerd op zijn eigen regel, ~96px —
   zelfde maat als de app straks toont. Zie pulseExtractIconToken() in
   detail.html voor de token-herkenning die dit blok vult. */
.pulse-wiz-preview-icon-block {
  display: flex;
  justify-content: center;
  margin: 0 12px 10px;
}

.pulse-wiz-preview-icon-block img {
  width: 96px;
  height: 96px;
  object-fit: contain;
}

/* Dezelfde blok-maat voor de RIJKE vorm (de contract-alinea die de emoji-/
   icoon-knop in de WYSIWYG invoegt, zie qdnapro-wysiwyg's insertContent()-
   aanroep in makeEditorController). Dit is precies wat vrij-vormgevens
   preview toont (die zet freeEditor.value() rechtstreeks als innerHTML,
   dus de img komt vanzelf mee) en wat de app straks ook herkent
   (img.pulse-body-icon, zie 16-pulse.js). */
.pulse-body-icon-row {
  display: flex;
  justify-content: center;
  margin: 8px 0;
}

.pulse-body-icon-row .pulse-body-icon,
.pulse-body-icon {
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

/* Kim 03.09.2026: het icoon moest in de tekstverwerker groter gesleept kunnen
   worden. TinyMCE legt die maat vast als width/height-ATTRIBUUT op de img (een
   presentational hint), en een hint verliest van élke regel hier — een harde
   `width: 96px` slikte dus iedere sleepbeweging. De 96px is nu alleen nog de
   TERUGVAL voor een img zonder eigen maat; draagt hij er een, dan blijft deze
   stylesheet eraf. Zelfde afspraak in de tekstverwerker (content_style in
   qdna-wysiwyg.js) en in de app (16-pulse.js). */
.pulse-body-icon-row .pulse-body-icon:not([width]),
.pulse-body-icon:not([width]) {
  width: 96px;
  height: 96px;
}

/* ⚠️ Na OPSLAAN is die class weg. De gedeelde HtmlSanitizer laat op een img
   alleen src/alt/width/height door (HtmlSanitizer::purifier), dus een
   opgeslagen kaart bevat een kale <img> in een kale <p> — de regels hierboven
   raken die niet meer en het icoon vulde daardoor de hele breedte. Vandaar
   dezelfde maat nog een keer, nu op de SRC (zelfde haak als de app gebruikt,
   zie PULSE_ICON_SRC_RE in 16-pulse.js), en gecentreerd via de img zelf omdat
   ook de class op de alinea sneuvelt. Bewust GESCOOPT op de drie plekken die
   opgeslagen body-HTML tonen: een losse `img[src*=...]`-regel zou ook de
   32px-tegels in de icoonkiezer op 96px zetten. Nieuw ingevoegde iconen
   dragen sinds 28.08.2026 bovendien width/height als attribuut, dus dit is
   het vangnet voor alles wat vóór die datum is opgeslagen. */
.pulse-wiz-preview-sub img[src*="/activity-animated/posters/"],
.pulse-wiz-free-preview-body img[src*="/activity-animated/posters/"],
.pulse-preview-body img[src*="/activity-animated/posters/"] {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 8px auto;
  object-fit: contain;
}

/* Terugval voor een opgeslagen icoon zonder eigen maat, zie de uitleg bij
   .pulse-body-icon hierboven. */
.pulse-wiz-preview-sub img[src*="/activity-animated/posters/"]:not([width]),
.pulse-wiz-free-preview-body img[src*="/activity-animated/posters/"]:not([width]),
.pulse-preview-body img[src*="/activity-animated/posters/"]:not([width]) {
  width: 96px;
  height: 96px;
}

/* Kim 28.08.2026: de icoon-strip onder een PLAT subtekstveld. Een animerend
   icoon kan daar alleen als `{{icon:<naam>}}`-token leven (een textarea kan
   geen plaatje bevatten), dus deze rij laat zien wat de app ervan maakt. Zie
   pulseIconHintHtml() in detail.html. */
.pulse-inline-icon-hint {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  padding: 6px 10px;
  border-radius: 10px;
  background: var(--c-bg-subtle-purple, #f3f5ff);
}

/* `display: flex` hierboven is auteur-CSS en wint ALTIJD van het native
   [hidden] uit de user-agent-stylesheet — zelfde valkuil als bij
   .pulse-sm-editor-mount en .pulse-opt-view-seg elders in dit bestand. */
.pulse-inline-icon-hint[hidden] {
  display: none;
}

.pulse-inline-icon-hint-label {
  font-size: 12px;
  line-height: 16px;
  color: var(--c-text-muted, #6e7280);
}

.pulse-inline-icon-hint-icons {
  display: flex;
  align-items: center;
  gap: 6px;
}

.pulse-inline-icon-hint-icons img {
  width: 32px;
  height: 32px;
  object-fit: contain;
}

.pulse-wiz-preview-answers {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0 12px 12px;
  pointer-events: none;
}

.pulse-wiz-preview-answers qdnapro-answer-button {
  width: 100%;
}

/* Blanco: de upload-knop staat ÍN de preview, niet ernaast — dat is Kims
   annotatie "Nog blanko" bij de foto-plek zelf. */
/* Kims review 24.08: keep the dashed drop zone (it invites dragging a photo
   in) and put her Figma details inside it: a dark image glyph plus a solid
   dark-purple upload pill. */
.pulse-wiz-classic-upload-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  border: 1px dashed var(--c-border-soft, #c7c5e0);
  border-radius: 10px;
  background: transparent;
  color: var(--c-grey-500, #6b6884);
  font-family: inherit;
  font-size: 12px;
  cursor: pointer;
  padding: 18px 22px;
}

.pulse-wiz-classic-upload-btn:hover {
  border-color: var(--c-purple-200, #a5acff);
}

.pulse-wiz-classic-upload-glyph {
  /* The size attribute alone renders too small inside this zone, so the
     box is pinned here: Kims Figma shows a clearly readable glyph. */
  color: var(--c-brand-purple, #40499a);
  width: 34px;
  height: 34px;
  font-size: 34px;
  line-height: 1;
}

.pulse-wiz-classic-upload-glyph svg {
  width: 100%;
  height: 100%;
}

.pulse-wiz-classic-upload-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 8px;
  background: var(--c-brand-purple, #40499a);
  color: var(--c-text-on-action, #ffffff);
  font-size: 13px;
  font-weight: 500;
}

.pulse-wiz-classic-upload-pill qdnapro-icon {
  color: inherit;
}

.pulse-wiz-classic-upload-btn:hover .pulse-wiz-classic-upload-pill {
  background: var(--c-purple-600, #363e85);
}

/* Gevuld: knopjespaar rechtsonder op de foto (Kims annotatie "+ afbeelding").
   Kaart 14 (BOARD-pulse-opmaak-hybride.md): dit was ooit een glas-pil
   (achtergrond + blur + schaduw) ROND de qdnapro-icon-btn's — maar elke
   icon-btn (type="secondary") draagt al zijn EIGEN lichte vierkante schil.
   Twee schillen over elkaar heen gaf een los wit afgerond kader over de
   foto (Kims annotatie: "wat zit hier voor raar frame?"). Deze wrapper is nu
   PUUR positionering: geen eigen achtergrond/blur/schaduw meer. De knopjes
   zelf kregen het `round`-attribuut (zie detail.html/harnas) zodat ze als
   twee losse ronde chips op de foto liggen — zelfde idioom als het kruisje
   in de overlay-schil (.qos-*): een kale qdnapro-icon-btn, geen extra frame
   eromheen. Kaart 10, punt 2/3: sinds die kaart zitten hier TWEE knopjes
   (potlood = markup, upload = nieuwe foto) i.p.v. één — zelfde wrapper, ook
   hergebruikt boven de achtergrond-canvas (.pulse-wiz-bg-canvas-wrap). */
.pulse-wiz-classic-photo-edit-wrap {
  position: absolute;
  right: 8px;
  bottom: 8px;
  display: flex;
  gap: 4px;
}

/* Kaart M13, punt 3 (Kim 27.08, cirkel linksboven op haar screenshot): het
   wisselknopje klassiek <-> tekst op achtergrond. Zelfde kale ronde-chip-
   idioom als het potlood/upload-paar (edit-wrap hierboven), maar linksboven
   en ALTIJD zichtbaar (niet hover-gated zoals de verwijderknop hieronder):
   wisselen is niet-destructief (preset-geen-slot), dus geen reden om hem te
   verstoppen achter een hover. Gedeeld door de klassieke fotobox EN de
   achtergrond-canvas-wrap (zie pulseBgPhotoButtonsHtml/renderClassicPhotoOf
   in detail.html). */
.pulse-wiz-layout-swap-wrap {
  position: absolute;
  left: 8px;
  top: 8px;
}

/* Kims verzoek 27.08 (rode cirkel linksonder op de kaartfoto): de foto was in
   de wizard niet meer te verwijderen. Eigen hoek linksonder, en alleen
   zichtbaar bij hover over de foto — of bij toetsenbordfocus, anders is de
   knop voor toetsenbordgebruikers onbereikbaar onzichtbaar. Zelfde kale
   ronde-chip-idioom als het potlood/upload-paar rechts. */
.pulse-wiz-classic-photo-delete-wrap {
  position: absolute;
  left: 8px;
  bottom: 8px;
  opacity: 0;
  transition: opacity 0.15s ease;
}

.pulse-wiz-classic-photo:hover .pulse-wiz-classic-photo-delete-wrap,
.pulse-wiz-bg-canvas-wrap:hover .pulse-wiz-classic-photo-delete-wrap,
.pulse-wiz-classic-photo-delete-wrap:focus-within {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .pulse-wiz-classic-photo-delete-wrap {
    transition: none;
  }
}
/* Tekst op achtergrond: de canvas (niet-editable, herzien kaart 17) + de
   kiezer direct eronder (besluit 5+6), dan dezelfde live antwoordpillen als
   Klassiek. */
.pulse-wiz-bg-preview {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Kaart 10 (BOARD-pulse-opmaak-hybride.md, punt 2/3): wrapper rond de canvas
   met `position: relative`, zodat het potlood-/uploadknopjespaar er als een
   absoluut gepositioneerd paar overheen kan liggen (kaart 14: geen glas-wrap
   meer, zie .pulse-wiz-classic-photo-edit-wrap) — zelfde constructie als
   .pulse-wiz-classic-photo bij Klassiek/Vrij vormgeven. Vervangt de vroegere
   losse "Stickers en icons"-knoppenrij (.pulse-bg-tools-row, hieronder
   verwijderd: geen aanroepers meer). */
.pulse-wiz-bg-canvas-wrap {
  position: relative;
}

/* Kaart 6 (BOARD-pulse-kaart-proportioneel, 28.08.2026): de `border-radius:
   12px` die hier stond is WEG. De kaart is sinds kaart 5 overal recht (het
   component brengt zelf geen rand, schaduw of ronding meer mee), en juist het
   verschil tussen deze wizard-preview en de app was wat Kim terugstuurde. Twee
   plekken zetten die ronding zelf: hier en .pulse-preview-bg-canvas-wrap
   verderop; beide zijn eraf. `overflow: hidden` blijft wél staan: dat klemt de
   beeld-/tekenlaag binnen het kaartvlak, dat is geen vormgeving.
   ⚠️ MELDING (kaart 6-verslag): het hover-kaartje bij de stappenlijst
   (.pulse-imgpop-canvas, onderaan dit bestand) zet stond tot 28.08.2026 nog op `border-radius: 10px` en staat nu op 0.
   Dat staat niet op deze kaart en is dus met opzet niet meegenomen. */
.pulse-wiz-bg-canvas-wrap qdnapro-pulse-canvas {
  display: block;
  width: 100%;
  /* 28.08.2026: 16/10 en NIET 16/9. De crop die de gebruiker moet doorlopen
     (PULSE_PHOTO_CROP_RATIO in detail.html), het component zelf en de kaart in
     de app staan alle drie op 16/10; alleen de wizard-frames stonden op 16/9.
     Daardoor ontwierp je op een ander vlak dan je terugkreeg, wat precies de
     klacht van Kim was ('de verhoudingen moeten gelijk zijn'). */
  aspect-ratio: 16/10;
  overflow: hidden;
}

.pulse-wiz-bg-preview .pulse-wiz-preview-answers {
  margin: 0;
}

/* Kaart 6, punt g — DE AFGEKNIPTE FOCUSRING van de kleurtegels.
   De ring van een tegel is `box-shadow: 0 0 0 2px var(--focus-ring), 0 0 0 5px
   var(--focus-glow)` (zie _background-picker.scss), dus hij valt 5px BUITEN de
   tegel. De tegels staan tegen de linker-/rechterrand van hun kolom, en die
   kolom zit in twee containers met `overflow: hidden`: het kaartframe
   (.pulse-wiz-preview-frame, dat de Uitleg-sheet klemt) en daarboven nog
   .qdnapro-wizard-step in het gedeelde wizard-modal-component. Van die twee is
   het FRAME de eerste die klemt, dus daar moet de ruimte vandaan komen — het
   gedeelde component blijft ongemoeid (dat heeft andere gebruikers).
   Vandaar 5px lucht binnen de kolom, precies de ringbreedte, alleen om de
   kiezer heen: de kaart zelf houdt zo zijn volle breedte, en alleen de
   tegelstrook schuift 5px naar binnen. Onder is het ook 5px; boven niet nodig,
   daar zit al 10px `gap` naar de canvas. */
.pulse-wiz-bg-preview qdnapro-background-picker {
  padding: 0 5px 5px;
}

/* Kaart 6, punt c — de contrast-waarschuwing onder de kiezer. qdnapro-alert
   zet zelf `display: flex`, en een class verslaat de `[hidden]`-regel uit de
   browserstijl, dus die moet hier expliciet terug. */
.pulse-wiz-bg-contrast {
  margin-top: 2px;
}

.pulse-wiz-bg-contrast[hidden] {
  display: none;
}

/* Kaart M13, punt 1 (Kim 27.08): lege titel in de achtergrond-preview toont
   een gedempte placeholder ("Hier komt jouw titel") i.p.v. een kaal leeg
   vlak - wizApplyQuestionToCanvas() in detail.html zet de klasse zodra het
   gedeelde "Vraag of titel"-veld leeg is. Puur een opacity-demping bovenop
   de tekstkleur die het component zelf al kiest (data-tint, licht/donker
   afhankelijk van de achtergrond) - werkt dus op elke achtergrondsoort,
   geen eigen kleur nodig. qdna-pulse-canvas.js/_pulse-canvas.scss blijven
   onaangeraakt (component-eigen bestanden, buiten deze kaart se scope). */
.qdnapro-pulse-canvas.pulse-wiz-canvas--placeholder .qpc-text {
  opacity: 0.55;
}

/* Kaart 6, punt d/e — DE GEMETEN TINT.
   qdnapro-pulse-canvas kiest zijn titelkleur zelf: uit de helderheid van de
   kleur (drempel 140), uit patterns.json bij een scène, en bij een `image`
   zet het HARD op "light" (witte tekst). Dat laatste klopt niet voor een LICHT
   beeld — de merkachtergrond is daar het voorbeeld van (punt e: de
   placeholder-titel was wit op een lichte plaat). Deze twee host-classes
   overschrijven die keuze met de uitkomst van de middenvlak-meting
   (pulseApplyCanvasTint()/pulseCanvasTintClass() in detail.html).
   Bewust met de EIGEN tokenkleuren van het component (--c-text /
   --c-text-on-action, exact zoals _pulse-canvas.scss ze voor data-tint
   gebruikt), zodat licht/donker één betekenis houdt en er geen hex in JS hoeft.
   Deze regels staan ná components/components in style-v1.scss (zie de kop van
   dit bestand), dus bij gelijke specificiteit winnen ze op volgorde.
   Een expliciete `text-color` blijft altijd sterker: die schrijft het component
   als inline style op .qpc-text, en dat verslaat elke selector hier. */
.qdnapro-pulse-canvas.pulse-canvas-tint-dark .qpc-text {
  color: var(--c-text, #0b0b0d);
}

.qdnapro-pulse-canvas.pulse-canvas-tint-light .qpc-text {
  color: var(--c-text-on-action, #ffffff);
}

/* Kaart 17, besluit 14: het teller-tekstje onder het "Vraag of titel"-veld,
   alleen bij tekst op achtergrond en pas zichtbaar vanaf ~100 tekens. */
.pulse-wiz-question-counter {
  margin: 4px 2px 0;
  font-size: 11px;
  text-align: right;
  color: var(--c-grey-400, #8b88a3);
}

/* Sticker/icon-overlay-preview (kaart 14) binnen de gereserveerde
   .qpc-overlay-laag van qdnapro-pulse-canvas — het component zelf laat die
   laag leeg (zie qdna-pulse-canvas.js, laag 4); dit tekent hem HOST-SIDE,
   gedeeld door de wizard-preview bij aanmaken én bewerken
   (pulseRenderOverlay() in detail.html). Positie/schaal komen als inline
   style mee (per item), dus
   hier staat alleen de vaste vormgeving. */
.qdnapro-pulse-canvas .qpc-overlay .pulse-ov-item {
  position: absolute;
  pointer-events: none;
}

.qdnapro-pulse-canvas .qpc-overlay .pulse-ov-item-img,
.qdnapro-pulse-canvas .qpc-overlay .pulse-ov-item-lottie {
  display: block;
  width: 100%;
  /* `height` MOET hier expliciet staan, ook al doet aspect-ratio het werk:
     qdnapro-lottie zet op zichzelf `height: var(--ql-size)` (48px) en een
     expliciete hoogte wint ALTIJD van aspect-ratio, ongeacht specificiteit.
     Zonder deze regel werd elk geplaatst icoon platgedrukt tot een streep —
     dezelfde val als op de kaartfoto (28.08.2026, daar inline opgelost). */
  height: auto;
  aspect-ratio: 1/1;
  object-fit: contain;
}

/* Vrij vormgeven: een eenvoudige preview van titel + inhoud (besluit 9-10) —
   bewust GEEN opgemaakte kaart-schil, dat zou een tweede, afwijkende
   weergave van dezelfde WYSIWYG-inhoud beloven. */
.pulse-wiz-free-preview {
  padding: 12px;
  border-radius: 10px;
  background: var(--c-bg-subtle-purple, #f3f4fb);
  min-height: 108px;
}

.pulse-wiz-free-preview-title {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 700;
  color: var(--c-text-heading, #1c1e2a);
}

.pulse-wiz-free-preview-body {
  font-size: 12px;
  line-height: 17px;
  color: var(--c-grey-500, #6b6884);
  /* De WYSIWYG-inhoud kan eigen opmaak dragen (vetjes, lijstjes, ...);
     overerven i.p.v. overschrijven, zodat die opmaak zichtbaar blijft. */
}

.pulse-wiz-free-preview-body p {
  margin: 0 0 6px;
}

.pulse-wiz-free-preview-body p:last-child {
  margin-bottom: 0;
}

/* De preview zit al in 12px padding; de pillen hoeven dat niet nogmaals. */
.pulse-wiz-free-preview .pulse-wiz-preview-answers {
  margin: 10px 0 0;
}

/* Kaart 17b, gebrek 1: `el.hidden = true` (wizApplyLayoutVisibility/
   editApplyLayoutVisibility) werkt op deze drie panelen NIET vanzelf —
   zelfde val als hierboven bij .pulse-steps-foot[hidden]: de UA-regel
   [hidden]{display:none} verliest altijd van een auteursregel die op
   hetzelfde element `display` zet, ongeacht specificiteit of bronvolgorde
   (author normal wint altijd van user-agent normal). .pulse-wiz-classic-
   preview en .pulse-wiz-bg-preview zetten allebei display:flex, dus zonder
   deze eigen [hidden]-override bleven bij layout=classic zowel de
   klassieke kaart ALS de achtergrond-canvas + -kiezer + een tweede set
   preview-pillen zichtbaar (en omgekeerd bij layout=background). Alle drie
   staan hier voor de zekerheid samen, ook .pulse-wiz-free-preview, die
   vandaag geen eigen `display` zet maar dat morgen kan krijgen. Gedeeld
   door de wizard (stap 2), zowel bij aanmaken als in bewerkstand
   (kaart 21: dezelfde #pulse-wiz-*-DOM voor allebei). */
.pulse-wiz-classic-preview[hidden],
.pulse-wiz-bg-preview[hidden],
.pulse-wiz-free-preview[hidden] {
  display: none;
}

/* Kaart 2 (BOARD-pulse-opmaak-hybride, 25.08.2026): zelfde val als
   hierboven, nu voor de vraag/subtekst/pillen BINNEN .pulse-wiz-classic-
   preview — die krijgen bij "free" hun eigen [hidden] (zie
   wizApplyLayoutVisibility()), maar .pulse-wiz-preview-q/-sub/-answers
   zetten allemaal zelf al `display` (block/flex) via een gewone klasse-
   regel, die zonder deze override zou winnen van de UA [hidden]-regel. */
.pulse-wiz-preview-q[hidden],
.pulse-wiz-preview-sub[hidden],
.pulse-wiz-preview-answers[hidden] {
  display: none;
}

/* Kaart M11: hetzelfde val voor het icoon-blok (ook een gewone klasse-regel
   die `display: flex` zet, zie hierboven). */
.pulse-wiz-preview-icon-block[hidden] {
  display: none;
}

.pulse-wiz-explain-preview {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-bottom: 6px;
  transform: translateY(100%);
  transition: transform 0.3s ease;
  box-shadow: var(--shadow-card, 0 1px 2px rgba(20, 25, 80, 0.04), 0 4px 16px rgba(20, 25, 80, 0.08));
}
.pulse-wiz-explain-preview.is-open {
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .pulse-wiz-explain-preview {
    transition: none;
  }
}

.pulse-wiz-explain-sheet {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  padding: 20px 16px 16px;
  border-radius: 20px 20px 6px 6px;
  background: var(--c-success-500, #12805e);
}
.pulse-wiz-explain-sheet[data-tone=wrong] {
  background: var(--c-warn-red-500, #dc2626);
}
.pulse-wiz-explain-sheet-handle {
  width: 32px;
  height: 4px;
  border-radius: var(--r-pill, 999px);
  background: var(--c-white-45, rgba(255, 255, 255, 0.45));
}
.pulse-wiz-explain-sheet-icon {
  color: var(--c-text-on-action, #fff);
}
.pulse-wiz-explain-sheet-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--c-text-on-action, #fff);
}
.pulse-wiz-explain-sheet-body {
  margin: 0;
  max-width: 260px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--c-text-on-action, #fff);
}
.pulse-wiz-explain-sheet-btn {
  margin-top: 4px;
  align-self: stretch;
}

/* Kims acceptatietest 26.08: het schakeltje staat onder het frame als
   gewone paneelinhoud; [hidden] moet expliciet winnen van de eigen
   display-regels van qdnapro-segment (zelfde [hidden]-valkuil als
   .pulse-opt-view-seg, kaart 5/22). */
.pulse-wiz-explain-tone-seg {
  align-self: center;
}

.pulse-wiz-explain-tone-seg[hidden] {
  display: none;
}

.pulse-wiz-preview-trigger {
  display: none;
}

.pulse-wiz-preview-close {
  display: none;
}

.pulse-wiz-preview-scrim {
  display: none;
}

@media (max-width: 600px) {
  .pulse-wiz-hdr {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "title close" "seg seg";
    row-gap: 10px;
  }
  .pulse-wiz-hdr-left {
    grid-area: title;
  }
  .pulse-wiz-close-btn {
    grid-area: close;
  }
  .pulse-wiz-edit-seg-wrap {
    grid-area: seg;
    justify-self: stretch;
    min-width: 0;
  }
  .pulse-wiz-edit-seg-wrap qdnapro-segment {
    width: 100%;
    min-width: 0;
  }
  .pulse-wiz-hdr:has(.pulse-wiz-edit-seg-wrap[hidden]) {
    row-gap: 0;
  }
  .pulse-wiz-preview-trigger {
    display: inline-flex;
    margin-bottom: 14px;
  }
  .pulse-wiz-step2-preview {
    display: none;
  }
  .pulse-wiz-step2-preview.pulse-wiz-preview-open {
    display: flex;
    position: fixed;
    inset: 16px;
    z-index: 5;
    overflow-y: auto;
    padding: 44px 16px 16px;
    border-radius: 16px;
    background: var(--overlay-window-bg, #fff);
    box-shadow: var(--overlay-frame-shadow, 0 4px 4px rgba(0, 0, 0, 0.3), 0 8px 12px 6px rgba(0, 0, 0, 0.15));
  }
  .pulse-wiz-preview-scrim.pulse-wiz-preview-open {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 4;
    background: var(--overlay-scrim, rgba(11, 11, 13, 0.45));
  }
  .pulse-wiz-step2-preview .pulse-wiz-preview-close {
    display: inline-flex;
    position: absolute;
    top: 10px;
    right: 10px;
  }
}
/* Stap-2-foutmelding: zelfde stijl als de gedeelde #pulse-wiz-error op stap 3
   (.pulse-sm-error hierboven regelt het uiterlijk al), hier alleen de marge
   tot de laatste veldblok erboven. */
#pulse-wiz-step2-error {
  margin-top: 16px;
}

/* Stap 3: reacties-schakelaar. qdnapro-list-row levert de rij al (label +
   hint + trailing-slot); alleen wat lucht erboven, zelfde maat als de andere
   .pulse-sm-field-blokken. */
.pulse-wiz-comments-row {
  margin-top: 18px;
}

/* Kim 02.09.2026: keylines tussen planning / reacties / score, zodat de kolom
   drie onderdelen toont in plaats van een doorlopende lijst velden. Het
   bestaande atoom qdnapro-divider tekent de lijn; hier alleen de ruimte
   eromheen. De rij eronder draagt zelf al 18px, dus die kant is smaller. */
.pulse-wiz-keyline {
  display: block;
  margin: 18px 0 0;
}

/* Het Score-blok: kopje, uitleg, en de verdubbelaar als losse tegel
   (qdnapro-radio-tile in toggle-stand). Verhuisd van de antwoordenbalk op
   stap 2. */
.pulse-wiz-score {
  margin-top: 18px;
}

.pulse-wiz-score[hidden] {
  display: none;
}

.pulse-wiz-score .pulse-sm-label {
  display: block;
}

.pulse-wiz-score-lead {
  margin: 4px 0 12px;
}

.pulse-wiz-score .pulse-sm-hint {
  margin-top: 10px;
}

/* --- Doelgroeppaneel ---------------------------------------------------- */
.pulse-audience-seg {
  margin-bottom: 16px;
}

.pulse-audience-block[hidden] {
  display: none;
}

.pulse-audience-field {
  margin-bottom: 14px;
}

.pulse-audience-summary {
  margin: 4px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.pulse-audience-empty {
  margin: 0;
  font-size: 12.5px;
  color: var(--c-grey-500, #6b6884);
}

.pulse-audience-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
  padding: 12px 14px;
  background: #eef0fb;
  border-radius: 10px;
  font-size: 13px;
  line-height: 19px;
  color: #40499a;
}

.pulse-audience-note qdnapro-icon {
  flex-shrink: 0;
  margin-top: 1px;
}

.pulse-audience-foot {
  margin-top: 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.pulse-audience-status {
  font-size: 12.5px;
  color: #1d9e75;
}

.pulse-audience-status[hidden] {
  display: none;
}

.pulse-audience-error {
  font-size: 12.5px;
  color: #d8442e;
}

.pulse-audience-error[hidden] {
  display: none;
}

/* --- Voorbeeld ("Bekijk als deelnemer") --------------------------------- */
.pulse-preview-day {
  margin: 22px 0 10px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--c-grey-500, #6b6884);
}

.pulse-preview-day:first-child {
  margin-top: 4px;
}

.pulse-preview-card {
  border: 1px solid var(--c-border-soft, #e5e5ea);
  border-radius: 14px;
  padding: 16px 18px 18px;
  margin-bottom: 10px;
  background: var(--c-bg-card, #fff);
}

.pulse-preview-kind {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--c-grey-500, #6b6884);
  margin-bottom: 6px;
}

.pulse-preview-title {
  margin: 0 0 8px;
  font-size: 16px;
  line-height: 22px;
  color: var(--c-brand-purple, #394290);
}

.pulse-preview-body {
  font-size: 13.5px;
  line-height: 21px;
  color: var(--c-text-body, #1c1e2a);
}

.pulse-preview-body p:last-child {
  margin-bottom: 0;
}

/* Kaart 6 (BOARD-pulse-pwa-inhaalslag): `position: relative` zodat de
   bewegende-icons-laag (.pulse-preview-image-overlay) er exact overheen kan
   liggen, procentueel t.o.v. dezelfde box als de <img> — geen vaste
   aspect-ratio, de foto behoudt gewoon zijn eigen verhouding. */
.pulse-preview-image {
  position: relative;
  margin-top: 12px;
}

/* 28.08.2026: ronding eraf. Besluit 8 maakte beeld in een Pulse-kaart overal een
   rechte band, ook de foto; dit voorbeeld hoorde daar nog niet bij. */
.pulse-preview-image img {
  max-width: 100%;
  border-radius: 0;
  display: block;
}

/* Kaart 6 — bewegende icons op de kaartfoto (image_markup_json). Zelfde
   idioom als de .qpc-overlay-laag van qdnapro-pulse-canvas hieronder
   (position absolute, pointer-events none op de laag zelf, geen klik hoort
   een speler te raken). Positie/breedte komen als inline style per item mee
   (pulsePreviewMarkupOverlay() in detail.html), hier alleen de vaste vorm. */
.pulse-preview-image-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.pulse-preview-image-overlay-item {
  position: absolute;
  pointer-events: none;
}

.pulse-preview-image-overlay-item qdnapro-lottie {
  display: block;
  width: 100%;
  /* 28.08.2026: `height:100%` en NIET `aspect-ratio:1/1`. Het component zet
     zichzelf de klasse `qdnapro-lottie` en die draagt
     `height:var(--ql-size)` (48px). Een expliciete hoogte wint van
     aspect-ratio, dus elke sticker werd platgedrukt tot een streep (gemeten:
     424x48 terwijl hij vierkant hoort). Het item zelf krijgt nu zijn hoogte
     inline mee, net als in de app (pulsePreviewMarkupOverlay in detail.html);
     deze regel laat de speler die hoogte vullen. */
  height: 100%;
  object-fit: contain;
}

/* Kaart 6 — layout "achtergrond" in het deelnemer-voorbeeld: dezelfde
   qdnapro-pulse-canvas als de wizard-preview (.pulse-wiz-bg-canvas-wrap
   hierboven), eigen wrapper omdat die selector er niet op past. */
/* 28.08.2026 (eindverificatie): dit voorbeeld is bedoeld om te tonen wat de
   DEELNEMER straks ziet, en in de app staat het beeld rand-tot-rand in de kaart
   (margin 0 -16px + width calc(100% + 32px), zie _pwa-current.scss "Punt 2").
   Hier stond het nog binnen de 18px padding van .pulse-preview-card, dus het
   voorbeeld week af van de app op precies het punt waarvoor dit hele bord
   bestaat. De negatieve marges hieronder halen de kaartpadding er weer af. */
.pulse-preview-bg-canvas-wrap {
  margin: 4px -18px 0;
  width: calc(100% + 36px);
  max-width: calc(100% + 36px);
}

/* Kaart 6: `border-radius: 12px` is hier ook weg — zelfde reden als bij
   .pulse-wiz-bg-canvas-wrap hierboven (de kaart is overal recht; het verschil
   tussen wizard, voorbeeld en app was juist de klacht). */
.pulse-preview-bg-canvas-wrap qdnapro-pulse-canvas {
  display: block;
  width: 100%;
  /* 28.08.2026: 16/10 en NIET 16/9. De crop die de gebruiker moet doorlopen
     (PULSE_PHOTO_CROP_RATIO in detail.html), het component zelf en de kaart in
     de app staan alle drie op 16/10; alleen de wizard-frames stonden op 16/9.
     Daardoor ontwierp je op een ander vlak dan je terugkreeg, wat precies de
     klacht van Kim was ('de verhoudingen moeten gelijk zijn'). */
  aspect-ratio: 16/10;
  overflow: hidden;
}

/* W6 (fase 4) — de videostap in het voorbeeld. Een aanduiding, geen speler: in de
   backoffice geen YouTube-kader inladen (zie de opmerking in detail.html). */
.pulse-preview-video {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #eef0fb;
  font-size: 12.5px;
  line-height: 18px;
  color: #40499a;
}

.pulse-preview-video qdnapro-icon {
  flex-shrink: 0;
}

.pulse-preview-options {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
}

.pulse-preview-opt {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  border: 1px solid var(--c-border-soft, #e5e5ea);
  border-radius: 10px;
  background: var(--c-bg-card, #fff);
  font-size: 13.5px;
  text-align: left;
  color: var(--c-text-body, #1c1e2a);
  cursor: pointer;
  transition: border-color 120ms ease, background 120ms ease;
}

.pulse-preview-opt:hover {
  border-color: var(--c-purple-300, #a9adde);
  background: #f7f8ff;
}

/* Kaart 6 — de LOKALE selectie-stand van een meerkeuze-kennisvraag, vóór de
   bevestigknop: nog geen oordeel (dat blijft is-correct/is-wrong), alleen
   "dit heb ik aangevinkt". Na .pulse-preview-opt:hover in de bron zodat hij
   bij gelijke specificiteit wint over de hover-tint. */
.pulse-preview-opt.is-selected {
  border-color: var(--c-brand-purple, #394290);
  background: #eef0fb;
}

.pulse-preview-opt.is-correct {
  border-color: #1d9e75;
  background: #eafaf3;
  color: #10604a;
}

.pulse-preview-opt.is-wrong {
  border-color: #d8442e;
  background: #fdeeeb;
  color: #8e2718;
}

.pulse-preview-opt qdnapro-icon {
  flex-shrink: 0;
}

/* Kaart 6 — de bevestigknop van een meerkeuze-kennisvraag, vlak onder de
   opties; verdwijnt na bevestigen (zie pulsePreviewConfirmMulti() in
   detail.html), zelfde [hidden]-regel als .pulse-preview-feedback hieronder. */
.pulse-preview-multi-confirm {
  margin-top: 10px;
}

.pulse-preview-multi-confirm[hidden] {
  display: none;
}

.pulse-preview-feedback {
  margin: 12px 0 0;
  padding: 12px 14px;
  border-radius: 10px;
  background: #eef0fb;
  font-size: 13px;
  line-height: 19px;
  color: #40499a;
}

.pulse-preview-feedback[hidden] {
  display: none;
}

.pulse-preview-hint {
  margin: 10px 0 0;
  font-size: 12px;
  color: var(--c-grey-500, #6b6884);
}

.pulse-preview-empty {
  padding: 40px 8px;
  text-align: center;
  color: var(--c-grey-500, #6b6884);
}

/* --- Statistieken (W7) -------------------------------------------------- */
/* Het paneel loopt over BEIDE kolommen van de pagina-grid. Een gegroepeerde
   staafgrafiek in de 340px-kolom naast de tijdlijn is onleesbaar, dus hij komt
   over de volle breedte onder de twee panelen te staan. */
/* --- Gesprekken / moderatie (F2-W3) ------------------------------------- */
/* Volle breedte, net als de statistiek: een gesprek per stap is een brede lijst,
   geen zijkolom. Het paneel wordt alleen gerenderd voor een BEHEERDER — een
   kijker heeft hier niets te zoeken, voor hem is het gesprek in de app de plek. */
.pulse-mod-panel {
  grid-column: 1/-1;
}

.pulse-mod-setting {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 18px;
  padding: 12px 14px;
  margin: 4px 0 20px;
  border: 1px solid #ecebf4;
  border-radius: 12px;
  background: #fbfbfe;
}

.pulse-mod-setting-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 220px;
  flex: 1 1 320px;
}

.pulse-mod-setting-label {
  font-size: 13.5px;
  font-weight: 600;
  color: #2f2d45;
}

.pulse-mod-setting-hint {
  font-size: 12px;
  color: #6b6884;
  line-height: 1.45;
}

.pulse-mod-setting-control {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}

/* ⚠️ Zonder een breedte HIER wordt zo'n veld 96px breed en is zijn eigen inhoud
   onleesbaar. `qdnapro-select` staat op `width: 100%`: het component laat zich
   bewust door zijn omhulsel opmeten. Maar dit omhulsel is een flex-item zonder
   basis, dus het krimpt tot de inhoud, en die inhoud vraagt zijn breedte weer
   aan het omhulsel. Dat loopt rond en eindigt op de minimale maat: "Onbeperkt"
   werd "On…" en "09:00" werd "0(…", terwijl er rechts een halve pagina leeg
   stond. De breedte hoort dus op het omhulsel, niet in het component.
   De drie velden staan op dezelfde maat, anders wordt de rechterkolom rafelig.

   ⚠️ Alleen DIRECTE kinderen: de trigger ván de select is zelf ook een
   `qdnapro-input`, en die hoort de volle breedte van zijn select te houden. */
.pulse-mod-setting-control > qdnapro-select,
.pulse-mod-setting-control > qdnapro-input {
  flex: 0 0 auto;
  width: 190px;
}

.pulse-mod-saved {
  font-size: 12px;
  color: #1d9e75;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: opacity 0.2s ease;
}

.pulse-mod-saved[hidden] {
  display: none;
}

.pulse-mod-step {
  border: 1px solid #efeef6;
  border-radius: 12px;
  padding: 14px 16px 12px;
  margin-bottom: 14px;
}

.pulse-mod-step:last-child {
  margin-bottom: 0;
}

.pulse-mod-step-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 10px;
}

.pulse-mod-step-title {
  font-size: 13.5px;
  font-weight: 600;
  color: #2f2d45;
  flex: 1 1 auto;
  min-width: 0;
  overflow-wrap: anywhere;
}

.pulse-mod-step-count {
  font-size: 11.5px;
  color: #8a87a0;
  white-space: nowrap;
}

.pulse-mod-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 12px;
}

.pulse-mod-empty-step {
  font-size: 12.5px;
  color: #8a87a0;
  margin: 0 0 12px;
}

.pulse-mod-c {
  border-radius: 10px;
  background: #f7f7fb;
  padding: 9px 11px;
}

.pulse-mod-c.is-admin {
  background: #f3f2fd;
  border: 1px solid #e6e3fa;
}

.pulse-mod-c-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}

.pulse-mod-c-author {
  font-size: 12.5px;
  font-weight: 600;
  color: #2f2d45;
}

.pulse-mod-c-time {
  font-size: 11.5px;
  color: #8a87a0;
}

.pulse-mod-c-spacer {
  flex: 1 1 auto;
}

.pulse-mod-c-body {
  margin: 0;
  font-size: 13px;
  color: #3a3852;
  line-height: 1.5;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.pulse-mod-c.is-deleted .pulse-mod-c-body {
  color: #9d9ab0;
  text-decoration: line-through;
}

.pulse-mod-c-gone {
  margin: 6px 0 0;
  font-size: 11.5px;
  color: #8a87a0;
  display: flex;
  align-items: flex-start;
  gap: 6px;
  line-height: 1.45;
}

.pulse-mod-c-gone qdnapro-icon {
  flex-shrink: 0;
  margin-top: 1px;
}

/* Het antwoordveld WRAPT op smal in plaats van te krimpen. Zonder die wrap
   perst de knop het invoerveld samen tot een kolom van enkele tekens, en dan
   loopt de placeholder over tien regels — de auto-hoogte van qdnapro-input
   maakt daar een blok van ~270px van (live gemeten in een smal venster).
   De ondergrens van 260px en max-rows="4" op het veld zetten dat allebei vast. */
.pulse-mod-reply {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 10px;
}

.pulse-mod-reply qdnapro-input {
  flex: 1 1 260px;
  min-width: 0;
}

.pulse-mod-reply qdnapro-button {
  flex-shrink: 0;
  margin-top: 3px;
}

.pulse-mod-modal-label {
  display: block;
  margin: 14px 0 6px;
  font-size: 12.5px;
  font-weight: 600;
  color: #2f2d45;
}

.pulse-mod-modal-error {
  margin: 8px 0 0;
  font-size: 12.5px;
  color: #c0392b;
}

.pulse-mod-modal-error[hidden] {
  display: none;
}

.pulse-mod-skeleton {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.pulse-mod-skeleton[hidden] {
  display: none;
}

.pulse-mod-skel {
  border-radius: 12px;
  background: linear-gradient(90deg, #f2f1f8 25%, #e9e8f3 37%, #f2f1f8 63%);
  background-size: 400% 100%;
  animation: pulse-stats-shimmer 1.3s ease-in-out infinite;
  height: 92px;
}

@media (prefers-reduced-motion: reduce) {
  .pulse-mod-skel {
    animation: none;
  }
}
.pulse-mod-error {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 12px 14px;
  border-radius: 12px;
  background: #fdf3f2;
  color: #a83a2c;
  font-size: 13px;
}

.pulse-mod-error[hidden] {
  display: none;
}

.pulse-mod-error qdnapro-icon {
  flex-shrink: 0;
}

.pulse-mod-error span {
  flex: 1 1 220px;
}

.pulse-mod-note {
  font-size: 12.5px;
  color: #6b6884;
  margin: 0;
}

/* De .pulse-mod-* sectie hierboven blijft ONGEMOEID staan tot de herbouwde
   view (kaart 4) hem niet meer gebruikt — deze sectie komt er alleen ONDER
   bij, in lijn met de kaartopdracht.

   TWEE LAGEN hieronder:

   A. Chat-port (.pcs-*) — 1:1 geport uit
      app_api_qdnav2/src/REX/Resources/Scss/_pwa-current.scss (regels
      ~4388-5256, alles onder .pcs-list t/m .pcs-cancel-edit:active). Waarden,
      volgorde en waarschuwingscommentaren zijn letterlijk overgenomen; alleen
      drie dingen zijn vertaald:
        1. var(--c-text, #hex) → var(--c-text-body, #hex) — zelfde hex-terugval,
           alleen de tokennaam verschilt tussen de twee projecten.
        2. Sheet-specifieke regels ([data-pulse-comments-sheet], .bs-*,
           --bs-pad-x) zijn NIET geport: de chat leeft hier in een paneel, geen
           bottom sheet. .pcs-editstrip's --bs-pad-x-breedteconstructie is
           vervangen door gewone volle breedte binnen het paneel (geen negatieve
           marge nodig, er is geen sheet-zijpadding om te compenseren).
        3. Het actie-blauw (var(--c-action-500, #4652f3)) is NIET vertaald naar
           backoffice-paars — dit paneel IS de app-chat, bewust niet
           backoffice-huisstijl (citaat-keyline, citaat-auteur, "toon oudere
           reacties", verstuurknop-groei).
      De twee samengestelde specificiteit-selectors (.pcs-comment__sticker met
      qdnapro-lottie, .pcs-send met de drie-klassen-breedteregel) zijn
      overgenomen INCLUSIEF hun waarschuwingscommentaar: dat zijn geen
      opsmuk-comments maar de reden dat de regel eronder niet zomaar
      vereenvoudigd mag worden.

      Bewust WEL meegenomen, buiten de letterlijke naamlijst uit de kaartbrief
      (".pcs-list, .pcs-meer, .pcs-comment, .pcs-quote, .pcs-compose,
      .pcs-emoji-row/-btn, .pcs-form, .pcs-left, .pcs-field, .pcs-send,
      .pcs-editstrip") maar wél "__-kinderen van .pcs-comment" of onmisbaar
      voor de door kaart 4 gevraagde functies (drie-puntjes-menu, Antwoorden,
      hartje, bewerken, @mention, "gemarkeerd"/"geflitst" bij een sprong naar
      een citaat): .pcs-note/.pcs-error-note, .pcs-comment__edited,
      .pcs-comment__menu-btn, .pcs-comment__foot, .pcs-comment__reply (incl.
      :active/:disabled), .pcs-comment__like-wrap/-count, .pcs-mention,
      .pcs-cancel-edit, .pcs-comment--bewerkt/--flits/--doelwit (+ de
      @keyframes pcs-comment-flits). Reden: kaart 6 (eindverificatie) noemt
      pariteit met de .pcs-*-bron expliciet een SCOPE-eis, en zonder deze
      __-kinderen zou de helft van een reactie-rij onopgemaakt blijven.
      Gemeld i.p.v. stilzwijgend toegevoegd — check dit tegen kaart 4's
      uiteindelijke markup.

      BEWUST NIET meegenomen (fase 2 of sheet/dialoog-specifiek, dus hier
      niet van toepassing): .pcs-pick/.pcs-pick__* (sticker/gif-conceptstrip
      in de composer), .pcs-error (bijna-duplicaat van .pcs-error-note, hoort
      bij diezelfde conceptstrip), .pcs-plus-menu en
      qdnapro-popover[data-pulse-plus-sheet] (het +-menu voor sticker/gif),
      en alles onder "Pulse brede dialoog" / .pcd-comments (de qdnapro-popover
      dialoogvariant van de sheet — ook een overlay, geen paneel).

      GEVONDEN, NIET OPGELOST (bug in de PWA-bron, hoort niet in deze kaart
      gerepareerd te worden — zie het rapport): in _pwa-current.scss staat
      `.pcs-comment__menu-btn` twee keer gedefinieerd (~regel 5173 met volledige
      flex/padding/kleur/hover-opmaak, en nogmaals ~regel 5382 met alleen
      `margin-left: auto`). Het commentaar bij de tweede regel beweert dat de
      eerste, volledige regel is weggehaald omdat het knopje nu een component
      is — maar die eerste regel staat nog gewoon in het bestand. Hieronder is
      alleen de eerste, volledige regel geport (die geeft een correcte
      basisopmaak ongeacht of kaart 4 hier een kaal `<button>` of een
      qdnapro-icon-btn-component van maakt); de dode tweede regel is niet
      overgenomen.

   B. Paginalaag (.pgs-*) — nieuw, prefix volgens het klassencontract uit de
      kaartbrief: werkbalk, lijst+detail-split, stappenrij en detailkop/-
      draad. Alleen bestaande tokens (zie backoffice2/scss/components/v2/
      design-tokens/_design-tokens.scss); geen mixins hergebruikt omdat dit
      bestand zelf overal met platte @media (max-width: …)-blokken werkt in
      plaats van breakpoint-mixins (zelfde stijl aangehouden, zie o.a. de
      .pulse-detail-body-regel hierboven in dit bestand). */
.pcs-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pcs-list:empty {
  display: none;
}

/* "Toon oudere reacties" — bovenaan de lijst, tekstknop i.p.v. volle knop
   (navigatie binnen de lijst, geen actie op een bericht). Zie de bron voor de
   volledige toelichting. */
.pcs-meer {
  display: block;
  width: 100%;
  margin: 0 0 4px;
  padding: 10px 8px;
  border: none;
  border-radius: 10px;
  background: none;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  color: var(--c-action-500, #4652f3);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.pcs-meer:active {
  background: var(--c-bg-subtle-hover, #f0f1f2);
}

.pcs-meer[disabled] {
  color: var(--c-text-muted, #6b7280);
  cursor: default;
}

.pcs-note,
.pcs-error-note {
  font-size: 13px;
  color: var(--c-text-muted, #6b7280);
}

.pcs-error-note {
  color: var(--c-signal-red-text, #c65a5a);
}

.pcs-comment {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.pcs-comment qdnapro-avatar {
  flex: 0 0 auto;
}

.pcs-comment__text {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.pcs-comment__head {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  /* Zonder min-width: 0 weigert deze rij smaller te worden dan zijn inhoud, en
     duwt een lange naam + beheerder-badge + tijd het drie-puntjes-menu voorbij
     de rechterrand van het paneel. De rij mag wél afbreken. */
  min-width: 0;
}

.pcs-comment__author {
  /* Een lange naam breekt af i.p.v. de rij op te rekken. `anywhere` en niet
     `break-word`: een lange naam zonder spaties (of een geplakte URL) moet ook
     kunnen breken. */
  min-width: 0;
  overflow-wrap: anywhere;
}

.pcs-comment__author {
  font-size: 14px;
  font-weight: 600;
  color: var(--c-text-body, #0b0b0d);
}

.pcs-comment__time {
  font-size: 12px;
  color: var(--c-text-muted, #6b7280);
}

/* pre-wrap: een reactie is platte tekst, maar getikte regeleinden zijn wél
   betekenis. anywhere breekt een geplakte lange URL af i.p.v. het paneel open
   te duwen. */
.pcs-comment__body {
  font-size: 14px;
  line-height: 1.5;
  color: var(--c-text-body, #0b0b0d);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

/* Een sticker IN een geplaatste reactie. Geen achtergrond/kader: de stickers
   hebben zelf een transparante rand.
   ⚠️ SAMENGESTELDE class-selector (`.pcs-comment__sticker.qdnapro-lottie`,
   specificiteit 0-2-0) en dat is expres: qdnapro-lottie zet zijn eigen default
   ook via een class-selector (`.qdnapro-lottie { --ql-size: 48px; }`), en die
   component-CSS wordt NA style-v1.css aan <head> toegevoegd. Twee
   class-selectors op hetzelfde element met gelijke specificiteit laten dan de
   LAATSTE in de broncode winnen — dat is bij gelijke specificiteit het
   component, niet deze regel. Met de samengestelde selector (0-2-0) wint deze
   regel altijd, ongeacht laadvolgorde. Zie _pwa-current.scss voor de volledige
   meting die dit vaststelde (dezelfde race trof ook .pcs-pick__thumb daar). */
.pcs-comment__sticker.qdnapro-lottie {
  --ql-size: 120px;
  display: block;
  /* Negatieve linkermarge haalt de witruimte weg die in de stickertekeningen
     zelf zit (gemeten over 24 stickers: gemiddeld 11,6% links leeg); 14px is
     de mediaan van 120px, waardoor de meeste stickers uitlijnen met de tekst. */
  margin: 2px 0 4px -14px;
}

/* Een GIF in een geplaatste reactie. `aspect-ratio` komt als inline style mee
   vanuit de renderende JS (gif_ratio, of breedte/hoogte als terugval) — dat
   voorkomt een layout-sprong zodra het bestand laadt. */
.pcs-comment__gif {
  display: block;
  width: 100%;
  max-width: 220px;
  margin: 2px 0 4px;
  border-radius: 12px;
  overflow: hidden;
  background: var(--c-grey-100, #e7e9ec);
}

.pcs-comment__gif-media {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pcs-comment__body--deleted {
  font-style: italic;
  color: var(--c-text-muted, #6b7280);
}

/* Achter de tijd in de kop, alleen bij edited && !deleted. */
.pcs-comment__edited {
  font-size: 12px;
  font-style: italic;
  color: var(--c-text-muted, #6b7280);
}

/* Het drie-puntjes-knopje, uiterst rechts in de kop (mine && !deleted). Geen
   negatieve margin-right: die trekt het knopje bij een lange naam + badge +
   tijd voorbij de rand van het paneel. */
.pcs-comment__menu-btn {
  flex: 0 0 auto;
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px;
  margin-top: -6px;
  margin-bottom: -6px;
  border: none;
  background: transparent;
  border-radius: 8px;
  color: var(--c-text-muted, #6b7280);
  cursor: pointer;
}

.pcs-comment__menu-btn:hover,
.pcs-comment__menu-btn:focus-visible {
  background: var(--c-bg-subtle-hover, #f0f1f2);
  outline: none;
}

/* Antwoorden + hartje, onder de body van een niet-verwijderde reactie. */
.pcs-comment__foot {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 2px;
}

.pcs-comment__reply {
  padding: 0;
  border: none;
  background: transparent;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-muted, #6b7280);
  cursor: pointer;
}

.pcs-comment__reply:hover,
.pcs-comment__reply:focus-visible {
  color: var(--c-text-body, #0b0b0d);
  outline: none;
}

.pcs-comment__reply:active {
  color: var(--c-text-body, #0b0b0d);
  transform: scale(0.96);
}

.pcs-comment__reply:disabled {
  color: var(--c-text-disabled, #898e99);
  cursor: not-allowed;
}

/* .pcs-comment__like is een qdnapro-favorite-button (mode="heart") — dat
   component brengt zijn eigen box/hover/active/pop-CSS al mee. Hier blijft
   alleen de wrapper-layout over: hartje + teller naast elkaar. */
.pcs-comment__like-wrap {
  display: flex;
  align-items: center;
  gap: 4px;
}

.pcs-comment__like-count {
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  color: var(--c-text-muted, #6b7280);
}

/* De "@Naam "-mention vooraan een antwoord — puur styling, geen link. */
.pcs-mention {
  color: var(--c-brand-purple, #40499a);
  font-weight: 600;
}

/* De reactie die je NU bewerkt, gemarkeerd in de lijst. */
.pcs-comment--bewerkt {
  background: var(--c-action-08, rgba(70, 82, 243, 0.08));
  box-shadow: inset 3px 0 0 var(--c-action-500, #4652f3);
  border-radius: 8px;
  padding: 6px 8px;
  margin: -6px -8px;
}

/* Eenmalige achtergrond-puls op de reactie waar je na een sprong (tik op een
   citaatblok) op landt. Dooft vanzelf uit in 1,2s. */
.pcs-comment--flits {
  border-radius: 8px;
  animation: pcs-comment-flits 1.2s ease-out;
}

@keyframes pcs-comment-flits {
  0% {
    background-color: var(--c-action-12, rgba(70, 82, 243, 0.12));
  }
  100% {
    background-color: var(--c-action-08, rgba(70, 82, 243, 0.08));
  }
}
@media (prefers-reduced-motion: reduce) {
  .pcs-comment--flits {
    animation: none;
  }
}
/* De BLIJVENDE markering van de reactie waar de laatste sprong op landde.
   Verpaarst lokaal de twee grijs-tokens (citaatblok, like-hover) zodat niets
   binnen de rij nog tegen de paarse vlakte vloekt; rgba, dus dark mode werkt
   zonder aparte regel. */
.pcs-comment--doelwit {
  background-color: var(--c-action-08, rgba(70, 82, 243, 0.08));
  border-radius: 12px;
  padding: 8px;
  margin: -8px;
  --c-bg-subtle-hover: var(--c-action-12, rgba(70, 82, 243, 0.12));
  --c-grey-50: var(--c-action-12, rgba(70, 82, 243, 0.12));
}

/* De annuleerknop in de bewerk-stand, alleen zichtbaar tijdens bewerken. */
.pcs-cancel-edit {
  align-self: center;
  padding: 0 4px;
  border: none;
  background: transparent;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-muted, #6b7280);
  cursor: pointer;
}

.pcs-cancel-edit[hidden] {
  display: none;
}

.pcs-cancel-edit:hover,
.pcs-cancel-edit:focus-visible {
  color: var(--c-text-body, #0b0b0d);
  outline: none;
}

.pcs-cancel-edit:active {
  color: var(--c-text-body, #0b0b0d);
  transform: scale(0.96);
}

/* Citaatblok BOVEN de eigen tekst in een antwoord-reactie (WhatsApp-model): een
   <button> zodat een tik erop naar het origineel kan springen, volle breedte
   van de tekstkolom. Auteur en tekst staan zonder wikkel-element in de DOM;
   flex-wrap + een volle-breedte flex-basis op de auteursregel forceert die naar
   zijn eigen rij. */
.pcs-quote {
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 8px;
  row-gap: 2px;
  width: 100%;
  margin: 0 0 4px;
  padding: 6px 10px;
  border: none;
  border-radius: 10px;
  background: var(--c-bg-subtle-hover, #f5f6f8);
  box-shadow: inset 3px 0 0 var(--c-action-500, #4652f3);
  font: inherit;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.pcs-quote__author {
  flex: 1 0 100%;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-action-500, #4652f3);
}

.pcs-quote__text {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13px;
  color: var(--c-text-muted, #6b7280);
  /* Max 2 regels: een citaat is een verwijzing, geen herhaling. */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.pcs-quote__sticker {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  object-fit: contain;
}

/* Het origineel bestaat niet meer: geen actie meer, dus geen aanwijzer en geen
   actie-blauw meer. */
.pcs-quote--dead {
  cursor: default;
  box-shadow: inset 3px 0 0 var(--c-text-muted, #6b7280);
}

.pcs-quote--dead .pcs-quote__author {
  color: var(--c-text-muted, #6b7280);
}

.pcs-compose {
  position: sticky;
  bottom: 0;
  background: var(--c-bg-card, #ffffff);
  padding: 10px 0 calc(12px + env(safe-area-inset-bottom, 0px));
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Acht emoji's over de volle breedte verdeeld (passen op elk scherm), i.p.v.
   links geklonterd met een horizontale scroll. `hidden` verbergt de rij zodra
   er een sticker klaarstaat — expliciet, want display:flex wint anders van het
   browser-standaardgedrag van `hidden`. */
.pcs-emoji-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 4px;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.pcs-emoji-row[hidden] {
  display: none;
}

.pcs-emoji-row::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.pcs-emoji-btn {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  line-height: 1;
  border: none;
  background: transparent;
  border-radius: 50%;
  cursor: pointer;
}

.pcs-emoji-btn:hover,
.pcs-emoji-btn:focus-visible {
  background: var(--c-bg-subtle-hover, #f0f1f2);
  outline: none;
}

.pcs-emoji-btn:active {
  background: var(--c-bg-subtle-hover, #f0f1f2);
  transform: scale(0.9);
}

/* Negende knop (kaart 17, herstart 01.09.2026): opent de volledige
   emoji-kiezer. Zelfde ronde 36px-vorm als de acht emoji ernaast (die
   erven van .pcs-emoji-btn hierboven); alleen de kleur van het icoon zelf
   staat hier, zelfde muted-token als het bestaande drie-puntjes-menu
   (.pcs-comment__menu-btn) zodat het "even zwaar" oogt als een emoji-glyph. */
.pcs-emoji-more {
  color: var(--c-text-muted, #6b7280);
}

/* [eigen avatar/plus-knop] [veld] [verzendknop]. `flex-end` houdt avatar en
   knop op de onderste regel als het veld uitgroeit tot vier regels. */
.pcs-form {
  display: flex;
  align-items: flex-end;
  gap: 8px;
}

/* De linkerplek houdt TWEE dingen vast die elkaar afwisselen: eigen avatar
   (leeg veld) en de +-knop (zodra je typt). Beide altijd in de DOM — wisselen
   gebeurt met een klasse, niet door elementen te verwisselen (dat zou het veld
   bij de eerste aanslag herbouwen en de cursor kwijtraken). Vaste breedte van
   44px zodat het veld niet verspringt op het moment van de wissel. */
.pcs-left {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.pcs-left > qdnapro-avatar,
.pcs-left > .pcs-plus-btn {
  flex: 0 0 auto;
}

/* Kruisvervaging met een klein popje, geen harde omslag: beide knoppen liggen
   op elkaar in dezelfde 44px, opacity + schaal als enige verschil (`display:
   none` is niet animeerbaar). `visibility` gaat mee zodat de weggevaagde knop
   geen tikken meer opvangt, en wisselt pas aan het eind van de overgang. */
.pcs-left > qdnapro-avatar,
.pcs-left > .pcs-plus-btn {
  position: absolute;
  transition: opacity 160ms ease, transform 200ms cubic-bezier(0.2, 0.9, 0.3, 1.5), visibility 0s linear 160ms;
}

.pcs-left > .pcs-plus-btn {
  opacity: 0;
  visibility: hidden;
  transform: scale(0.6);
}

.pcs-form--typt .pcs-left > qdnapro-avatar {
  opacity: 0;
  visibility: hidden;
  transform: scale(0.6);
}

.pcs-form--typt .pcs-left > .pcs-plus-btn {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
  transition-delay: 0s, 0s, 0s;
}

/* De icoontjes ín het veld vervagen, want dáár botsten ze met de tekst.
   Verbergen en niet weghalen: de knoppen weghalen zou qdnapro-input laten
   hertekenen en de focus midden in een woord wegnemen. */
.pcs-field .input-action-btn,
.pcs-field .input-action-btn-2 {
  transition: opacity 140ms ease, transform 160ms ease, visibility 0s linear 140ms;
}

.pcs-form--typt .pcs-field .input-action-btn,
.pcs-form--typt .pcs-field .input-action-btn-2 {
  opacity: 0;
  visibility: hidden;
  /* Alleen schalen: de verticale centrering zit op .input-trailing (de doos
     eromheen), niet op deze knop. */
  transform: scale(0.7);
  pointer-events: none;
}

/* Wie liever geen beweging ziet, krijgt geen beweging. */
@media (prefers-reduced-motion: reduce) {
  .pcs-left > qdnapro-avatar,
  .pcs-left > .pcs-plus-btn,
  .pcs-field .input-action-btn,
  .pcs-field .input-action-btn-2,
  .pcs-send {
    transition-duration: 0s;
  }
}
.pcs-field {
  flex: 1 1 auto;
  min-width: 0;
}

.pcs-form qdnapro-input {
  flex: 1 1 auto;
  min-width: 0;
  display: block;
}

/* De verstuurknop groeit erin zodra er tekst of een sticker is. Blijft altijd
   in de DOM staan — weghalen zou de animatie onmogelijk maken — en krimpt naar
   breedte 0 als er niets te versturen valt. `overflow: hidden` zorgt dat het
   icoon meekrimpt i.p.v. uit de knop te steken.
   ⚠️ DRIE klassen in de selector, en dat is nodig: de breedte hieronder vecht
   met `.qdnapro-icon-btn.icon-btn-size-touch` van het component (twee
   klassen, 44px vast). Met `.pcs-send` alleen verliest die strijd en blijft de
   knop altijd 44px breed — dan gebeurt alleen een vervaging en geen groei. */
.pcs-form .pcs-send.qdnapro-icon-btn {
  flex: 0 0 auto;
  width: 0;
  min-width: 0;
  opacity: 0;
  transform: scale(0.3);
  overflow: hidden;
  pointer-events: none;
  /* Breedte gaat snel (layout: hoe korter, hoe minder het veld zichtbaar
     meebeweegt), schaal langzamer met een doorschieter — leest zo als een
     popje i.p.v. een knop die opzij schuift. Zelfde curve/tijd als de wissel
     links, zodat beide bewegingen bij elkaar horen. */
  transition: width 140ms cubic-bezier(0.2, 0.9, 0.3, 1.2), opacity 140ms ease, transform 220ms cubic-bezier(0.2, 0.9, 0.3, 1.6);
}

.pcs-form .pcs-send.qdnapro-icon-btn.pcs-send--on {
  width: 44px;
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}

/* Het BEWERK-strookje: potlood, twee regels tekst, een kruisje om te stoppen.
   Volle breedte binnen het paneel (geen sheet-zijpadding om terug te rekenen,
   dus geen --bs-pad-x-constructie zoals in de PWA-bron). */
.pcs-editstrip {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 4px;
  border-top: 1px solid var(--c-grey-100, #e7e9ec);
}

.pcs-editstrip[hidden] {
  display: none;
}

.pcs-editstrip__icon {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  color: var(--c-text-muted, #6b7280);
}

/* Zelfde maat als het potlood ernaast via --ql-size, anders wint de
   48px-standaard van qdnapro-lottie. */
.pcs-editstrip__sticker.qdnapro-lottie {
  --ql-size: 28px;
  flex: 0 0 auto;
}

.pcs-editstrip__text {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.pcs-editstrip__title {
  font-size: 13px;
  font-weight: 600;
  color: var(--c-action-500, #4652f3);
}

.pcs-editstrip__poster {
  width: 20px;
  height: 20px;
  object-fit: contain;
  vertical-align: -5px;
  margin-right: 6px;
}

.pcs-editstrip__body {
  font-size: 13px;
  color: var(--c-text-muted, #6b7280);
  /* Eén regel: het strookje mag nooit hoger worden dan de sticker-strip. */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pcs-editstrip__clear {
  flex: 0 0 auto;
  margin-left: auto;
}

/* Zelfde strook, antwoorden-stand: accent verlegd naar de linker inset-streep. */
.pcs-editstrip--reply {
  box-shadow: inset 3px 0 0 var(--c-action-500, #4652f3);
}

.pcs-editstrip--reply .pcs-editstrip__title {
  color: var(--c-action-500, #4652f3);
}

.pgs-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--c-border-card, #e1e3e6);
}

.pgs-notify {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.pgs-notify-label {
  font-size: 13px;
  color: var(--c-text-muted, #6e7280);
}

.pgs-split {
  display: grid;
  grid-template-columns: 340px 1fr;
  min-height: 560px;
}

@media (max-width: 840px) {
  .pgs-split {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* ⚠️ 16.09.2026 — `hidden` op deze lijst deed NIETS. De regel hieronder zet
   `display: flex`, en auteur-CSS met normale prioriteit wint altijd van de
   browserstandaard `[hidden] { display: none }`, ongeacht specificiteit. De
   gesprek-modal op de campagnepagina zet dat attribuut wel (daar gaat het over
   EEN stap, dus de stappenlijst hoort weg te blijven), maar de lijst bleef
   gewoon ruimte innemen naast het gesprek. Zelfde val als elders in dit
   product: elke rij die zichzelf een display geeft, moet zijn eigen
   [hidden]-regel meenemen. Gemeten met getComputedStyle: display was "flex",
   niet "none". */
.pgs-steplist[hidden] {
  display: none;
}

.pgs-steplist {
  /* min-height: 0 laat de kolom de rijhoogte van .pgs-split volgen i.p.v. op
     zijn eigen inhoud te groeien — nodig zodat de lijst zelf kan scrollen
     i.p.v. het hele paneel op te rekken (aanname: een omliggend element
     geeft het paneel een begrensde hoogte; niet in de browser geverifieerd). */
  min-height: 0;
  max-height: inherit;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px;
  border-right: 1px solid var(--c-border-card, #e1e3e6);
  background: var(--c-bg-subtle-purple, #f3f5ff);
}

@media (max-width: 840px) {
  .pgs-steplist {
    border-right: none;
    border-bottom: 1px solid var(--c-border-card, #e1e3e6);
  }
}
.pgs-steprow {
  display: grid;
  grid-template-columns: 36px 1fr auto;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  margin: 0;
  border: 1px solid transparent;
  border-radius: 12px;
  background: none;
  font: inherit;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.pgs-steprow:hover {
  background: var(--c-bg-card, #ffffff);
  border-color: var(--c-border-card, #e1e3e6);
}

.pgs-steprow.is-selected {
  background: var(--c-bg-card, #ffffff);
  border-color: var(--c-purple-200, #a5acff);
  box-shadow: 0 2px 8px var(--c-purple-200-30, rgba(165, 172, 255, 0.3));
}

.pgs-steprow.is-quiet .pgs-step-title {
  color: var(--c-text-muted, #6e7280);
}

/* Bootstrap zet `button:focus { outline: 5px auto -webkit-focus-ring-color }`
   op ELKE knop (v1-header laadt bootstrap.min.css) — een muisklik geeft wel
   :focus maar geen :focus-visible. Uitzetten, eigen ring op :focus-visible,
   zelfde patroon als elders in dit bestand (o.a. .pulse-type-card). */
.pgs-steprow:focus {
  outline: none;
}

.pgs-steprow:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--focus-ring, #40499a);
}

.pgs-steprow.is-selected:focus-visible {
  box-shadow: 0 0 0 2px var(--focus-ring, #40499a), 0 2px 8px var(--c-purple-200-30, rgba(165, 172, 255, 0.3));
}

.pgs-step-ico {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--c-chip-purple-bg, #ebe9fb);
  color: var(--c-brand-purple, #40499a);
  display: flex;
  align-items: center;
  justify-content: center;
}

.pgs-step-title {
  display: block;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--c-text-heading, #1a1f4d);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pgs-step-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--c-text-muted, #6e7280);
  font-variant-numeric: tabular-nums;
}

.pgs-step-side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.pgs-badge-new {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--c-brand-purple, #40499a);
  color: var(--c-text-on-action, #ffffff);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}

.pgs-step-time {
  font-size: 11px;
  color: var(--c-text-muted, #6e7280);
  white-space: nowrap;
}

.pgs-detail {
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: var(--c-bg-card, #ffffff);
}

.pgs-thread-head {
  flex: 0 0 auto;
  padding: 18px 24px 14px;
  border-bottom: 1px solid var(--c-border-card, #e1e3e6);
}

.pgs-thread-title {
  margin: 0 0 8px;
  font-size: 17px;
  font-weight: 700;
  color: var(--c-text-heading, #1a1f4d);
}

.pgs-mood {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.pgs-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--c-grey-50, #f0f1f2);
  color: var(--c-text-body, #0b0b0d);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.3;
}

.pgs-chip--total {
  background: var(--c-chip-purple-bg, #ebe9fb);
  color: var(--c-brand-purple, #40499a);
}

.pgs-thread {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 18px 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* .pcs-compose leeft hier IN het paneel i.p.v. in een sheet: geen
   --bs-pad-x-zijpadding om terug te rekenen, dus gewoon volle breedte met
   eigen zijpadding en een scheidingslijn i.p.v. de kaartrand van een sheet. */
.pgs-detail .pcs-compose {
  flex: 0 0 auto;
  padding: 10px 24px 14px;
  border-top: 1px solid var(--c-border-card, #e1e3e6);
}

/* De "nieuw sinds je vorige bezoek"-lijn: label met een streep aan weerszijden,
   op de meegeleverde last_seen-grens. */
.pgs-new-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 4px 0;
}

.pgs-new-divider::before,
.pgs-new-divider::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--c-purple-200, #a5acff);
}

.pgs-new-divider__label {
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-brand-purple, #40499a);
}

/* Skeleton/fout/leeg: zelfde vormtaal als de .pulse-mod-*-sectie hierboven
   (shimmer-balken, rode foutbanner, gedempte centered tekst) — hier met
   tokens i.p.v. de vaste hex-waarden die daar staan, en de bestaande
   `pulse-stats-shimmer`-keyframe hergebruikt (verderop in dit bestand, kaart
   F3-W1) i.p.v. een tweede, identieke keyframe te definiëren. */
.pgs-skeleton {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px;
}

.pgs-skeleton[hidden] {
  display: none;
}

.pgs-skel {
  height: 64px;
  border-radius: 12px;
  background: linear-gradient(90deg, var(--c-grey-50, #f0f1f2) 25%, var(--c-grey-100, #e7e9ec) 37%, var(--c-grey-50, #f0f1f2) 63%);
  background-size: 400% 100%;
  animation: pulse-stats-shimmer 1.3s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .pgs-skel {
    animation: none;
  }
}
.pgs-error {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--c-signal-red-soft, #fff0f0);
  color: var(--c-signal-red-text, #c65a5a);
  font-size: 13px;
}

.pgs-error[hidden] {
  display: none;
}

.pgs-error qdnapro-icon {
  flex-shrink: 0;
}

.pgs-empty {
  padding: 40px 16px;
  text-align: center;
  color: var(--c-text-muted, #6e7280);
  font-size: 13px;
}

@media (max-width: 600px) {
  .pgs-notify {
    flex: 1 1 100%;
    margin-left: 0;
  }
}
.pulse-stats-panel {
  grid-column: 1/-1;
}

.pulse-stats-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 14px;
  margin-bottom: 24px;
}

/* Team-tegels (F3-W1). Ze delen bewust het rooster van de tegels erboven:
   het zijn dezelfde soort cijfers, alleen opgesplitst per team, en twee
   verschillende tegelrasters onder elkaar leest als twee losse panelen.
   De sectie zit tussen de totalen en de trechter in. */
.pulse-stats-teams {
  margin-bottom: 24px;
}

.pulse-stats-teams[hidden] {
  display: none;
}

.pulse-stats-teams .pulse-stats-cards {
  margin-bottom: 0;
}

.pulse-stats-teams .pulse-stats-note {
  padding: 18px 8px;
}

.pulse-stats-subhead {
  margin: 0 0 2px;
  font-size: 13.5px;
  line-height: 19px;
  color: var(--c-brand-purple, #394290);
}

.pulse-stats-subsub {
  margin: 0 0 12px;
  font-size: 12.5px;
  line-height: 18px;
  color: var(--c-grey-500, #6b6884);
  max-width: 70ch;
}

/* VASTE hoogte: Highcharts meet zijn container, en in een cel zonder eigen
   hoogte is dat 0 — dan tekent hij niets en staat er een leeg vak zonder
   foutmelding (de les van de AI-verbruikpagina). */
.pulse-stats-chart {
  height: 320px;
  margin-bottom: 26px;
}

.pulse-stats-chart[hidden] {
  display: none;
}

.pulse-stats-q {
  border: 1px solid var(--c-border-soft, #e5e5ea);
  border-radius: 12px;
  padding: 14px 16px 16px;
  margin-bottom: 10px;
}

.pulse-stats-q:last-child {
  margin-bottom: 0;
}

.pulse-stats-q-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.pulse-stats-q-title {
  margin: 0;
  font-size: 14px;
  line-height: 20px;
  color: var(--c-brand-purple, #394290);
  flex: 1 1 240px;
  min-width: 0;
}

.pulse-stats-q-meta {
  flex: 0 0 auto;
  font-size: 12px;
  color: var(--c-grey-500, #6b6884);
  font-variant-numeric: tabular-nums;
}

.pulse-stats-q-correct {
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 600;
  color: #10604a;
  background: #eafaf3;
  border-radius: 999px;
  padding: 2px 10px;
}

.pulse-stats-bars {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pulse-stats-bar-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  line-height: 18px;
  color: var(--c-text-body, #1c1e2a);
  margin-bottom: 4px;
}

.pulse-stats-bar-name {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pulse-stats-bar-label qdnapro-icon {
  flex-shrink: 0;
  color: #1d9e75;
}

.pulse-stats-bar-value {
  flex: 0 0 auto;
  font-size: 12px;
  color: var(--c-grey-500, #6b6884);
  font-variant-numeric: tabular-nums;
}

.pulse-stats-bar-track {
  height: 10px;
  border-radius: 999px;
  background: #eef0fb;
  overflow: hidden;
}

.pulse-stats-bar-fill {
  height: 100%;
  border-radius: 999px;
  background: #5b63c4;
}

.pulse-stats-bar-row.is-correct .pulse-stats-bar-fill {
  background: #1d9e75;
}

/* Deelname per locatie/afdeling op de statistiekenpagina (17.08.2026) — een
   TABEL met vier kolommen: naam · balk · percentage · aantal.

   Hiervoor stond hier het balken-idioom hierboven: label op één regel, balk op
   volle breedte daaronder. Met dertig groepen werd dat een streepjestrui, en op
   een breed scherm was de balk zo lang dat je hem met je ogen niet in één keer
   kon overzien: de naam stond links, en het enige stuk dat iets zegt (het
   uiteinde) aan de andere kant van het scherm.

   ⚠️ De balkkolom staat op `vw` en NIET op een percentage van de rij. Een
   ingesprongen kinderrij is smaller dan zijn locatierij; met een percentage
   zouden die twee balken een andere schaal krijgen, en dan vergelijk je twee
   dingen die niet vergelijkbaar zijn. Nu is elke balk overal even breed en dus
   onderling te lezen. */
/* ⚠️ De MAXIMALE BREEDTE is geen opsmuk. Zonder die grens rekt de naamkolom
   mee met het scherm en staat de balk een halve meter rechts van de naam waar
   hij bij hoort; dan lees je de regel in twee losse stukken. Alles bij elkaar
   houden is precies het punt van deze omzetting. */
/* De onderkant houdt hetzelfde ritme aan als een grafiekblok (26px), anders
   plakt de volgende kop tegen de laatste regel. */
.pulse-units {
  display: flex;
  flex-direction: column;
  max-width: 920px;
  margin-bottom: 26px;
}

.pulse-units-groep {
  display: flex;
  flex-direction: column;
}

.pulse-units-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(140px, 18vw, 340px) 52px 84px;
  align-items: center;
  gap: 0 16px;
  padding: 6px 8px;
  border-radius: 8px;
  font-size: 13px;
  line-height: 18px;
  color: var(--c-text-body, #1c1e2a);
}

/* De kolomkoppen staan er één keer, in plaats van "gestart" en "deelnemers" op
   elke regel te herhalen. */
.pulse-units-head {
  padding-top: 0;
  padding-bottom: 6px;
  margin-bottom: 4px;
  border-bottom: 1px solid #ecebf4;
  border-radius: 0;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--c-grey-500, #6b6884);
}

.pulse-units-name {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.pulse-units-naam-tekst {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pulse-units-count {
  flex: 0 0 auto;
  font-weight: 400;
  font-size: 12px;
  color: var(--c-grey-500, #6b6884);
}

.pulse-units-chevron {
  flex-shrink: 0;
  color: #6b6884;
  transition: transform 0.15s ease;
}

.pulse-units-row--klik {
  cursor: pointer;
  font-weight: 600;
}

.pulse-units-row--klik:hover {
  background: #f7f7fc;
}

.pulse-units-row--klik.is-open .pulse-units-chevron {
  transform: rotate(90deg);
}

.pulse-units-track {
  display: block;
  height: 8px;
  border-radius: 999px;
  background: #eef0fb;
  overflow: hidden;
}

.pulse-units-fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: #5b63c4;
}

/* De lege cel in de koprij is alleen een uitlijner, geen lege balk. */
.pulse-units-head .pulse-units-track {
  background: none;
}

.pulse-units-pct {
  text-align: right;
  font-size: 14px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.pulse-units-head .pulse-units-pct {
  font-size: 11px;
}

.pulse-units-people {
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: var(--c-grey-500, #6b6884);
}

/* Geen balk en geen percentage: het slotje neemt allebei die kolommen in, zodat
   het aantal rechts op zijn plek blijft staan. Rustig blauw, want de k-poort is
   een bewuste keuze en geen foutmelding. */
.pulse-units-toofew {
  grid-column: 2/4;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #6b6884;
}

.pulse-units-toofew qdnapro-icon {
  flex-shrink: 0;
}

.pulse-units-kids {
  display: flex;
  flex-direction: column;
  margin: 2px 0 6px 22px;
  padding-left: 12px;
  border-left: 2px solid #e5e3f0;
}

/* ⚠️ Zonder deze regel wint `display: flex` hierboven van het `hidden`-attribuut
   en staat elke locatie open. */
.pulse-units-kids[hidden] {
  display: none;
}

.pulse-units-row--kind {
  font-size: 12.5px;
}

/* Smal scherm: de balk gaat eruit, de cijfers blijven. Een balk van 140px naast
   een afgekapte naam zegt minder dan het getal zelf. */
@media (max-width: 760px) {
  .pulse-units-row {
    grid-template-columns: minmax(0, 1fr) 48px 76px;
    gap: 0 10px;
  }
  .pulse-units-track {
    display: none;
  }
  .pulse-units-toofew {
    grid-column: 2/3;
  }
}
/* De k-poort is geen foutmelding maar een bewuste keuze — dus rustig blauw,
   niet amber of rood. */
.pulse-stats-toofew {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: #eef0fb;
  font-size: 12.5px;
  line-height: 18px;
  color: #40499a;
}

.pulse-stats-toofew qdnapro-icon {
  flex-shrink: 0;
}

.pulse-stats-note {
  margin: 0;
  padding: 26px 8px;
  text-align: center;
  font-size: 13px;
  color: var(--c-grey-500, #6b6884);
}

.pulse-stats-note[hidden] {
  display: none;
}

/* De "cijfers bevroren"-regel (F2-W5). Bewust dezelfde ingetogen toon als de
   "te weinig antwoorden"-melding: het is een mededeling over wat je ziet, geen
   waarschuwing dat er iets mis is. */
.pulse-stats-frozen {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px;
  padding: 9px 12px;
  border-radius: 10px;
  background: #f6f5fb;
  font-size: 12.5px;
  color: #6b6884;
  line-height: 1.45;
}

.pulse-stats-frozen[hidden] {
  display: none;
}

.pulse-stats-frozen qdnapro-icon {
  flex-shrink: 0;
}

/* Laadstaat: dezelfde vakverdeling als het echte paneel, zodat er niets
   verspringt zodra de cijfers binnen zijn. */
.pulse-stats-skeleton {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 14px;
}

.pulse-stats-skeleton[hidden] {
  display: none;
}

.pulse-stats-skel {
  border-radius: 14px;
  background: linear-gradient(90deg, #f1f2f8 25%, #e7e9f4 37%, #f1f2f8 63%);
  background-size: 400% 100%;
  animation: pulse-stats-shimmer 1.3s ease-in-out infinite;
}

.pulse-stats-skel-card {
  height: 80px;
}

.pulse-stats-skel-chart {
  height: 200px;
  grid-column: 1/-1;
}

@keyframes pulse-stats-shimmer {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: 0 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .pulse-stats-skel {
    animation: none;
  }
}
.pulse-stats-error {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 12px 14px;
  border-radius: 10px;
  background: #fdeeeb;
  border: 1px solid #f0c4bc;
  color: #8e2718;
  font-size: 13px;
}

.pulse-stats-error[hidden] {
  display: none;
}

.pulse-stats-error qdnapro-icon {
  flex-shrink: 0;
}

.pulse-stats-error span {
  flex: 1 1 220px;
}

/* Pulse — pagina-gescoopt (pulse-*). Overgenomen uit projects-v2.html zodat het
   overzicht 1-op-1 hetzelfde leest; alleen de klassenamen zijn hernoemd.
   Let op: geen Twig-commentaar in dit blok (dat breekt de hele pagina). */
/* Volle breedte (werklijst-idioom zoals Werkvoorraad/Documenten). */
/* Onderruimte 40px → 96px (19.08.2026): deze pagina's dragen sinds vandaag de
   ZWEVENDE actiebalk (ActionBar::pulseOverview). Die is `position: fixed`, neemt
   dus geen ruimte in de pagina in en zou zich over de laatste rij tegels heen
   leggen zonder dat je eronder kunt scrollen.

   SYNC-PUNT, met opzet een vast getal — exact dezelfde afweging als bij
   .pulse-detail-body hieronder: _action-bar.scss zet `height: 56px` hard (er is
   geen --action-bar-height) en --action-bar-offset staat op .qdnapro-action-bar
   zelf, dus die is hier niet erfbaar en een var() zou stil altijd op de fallback
   landen. 96px = 56 (hoogte) + 16 (offset) + 24 lucht. Wordt de balk hoger of
   komt hij verder van de rand, dan moet dit mee — op BEIDE plekken. */
.pulse-wrap {
  max-width: none;
  margin: 24px 28px 96px;
}

.pulse-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.pulse-head-titles {
  flex: 1;
  min-width: 200px;
}

.pulse-head h1 {
  font-size: 22px;
  color: var(--c-brand-purple, #394290);
  margin: 0 0 2px;
}

.pulse-head .pulse-sub {
  color: #6b6884;
  font-size: 13px;
  margin: 0;
}

/* Werkbalk — links de knoppen die iets MAKEN (campagne / uit sjabloon / met
   Nova), rechts zoeken + sorteren (pv2-idioom). Analytics en Gearchiveerd
   stonden hier ook en zitten sinds 19.08.2026 in de onderbalk: navigeren hoort
   in de balk, maken hoort bij de inhoud. */
.pulse-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}

.pulse-toolbar-left {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.pulse-toolbar-right {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
}

.pulse-search {
  width: 340px;
  max-width: 100%;
  flex: 0 0 auto;
}

#pulse-sort-btn {
  flex: 0 0 auto;
}

/* Werkbalk-links wikkelen een qdnapro-button — de globale a-selector zet
   `underline` terug, vandaar het !important. */
.pulse-toolbar-link,
.pulse-toolbar-link:hover,
.pulse-toolbar-link:focus {
  display: inline-flex;
  text-decoration: none !important;
  color: inherit;
}

.pulse-toolbar-link * {
  text-decoration: none !important;
}

.pulse-toolbar-hint {
  font-size: 13px;
  color: var(--c-grey-500, #6b6884);
}

/* Sorteermenu — vaste positionering onder de knop (zelfde aanpak als pv2). */
.pulse-sort-menu {
  position: fixed;
  z-index: 9000;
}

.pulse-sort-menu[hidden] {
  display: none;
}

/* Het drie-puntjes-menu van een kaart wordt bij openen uit de kaart getild:
   de kaartrand knipt (overflow:hidden voor de afgeronde hoeken), dus een
   absoluut menu wordt halverwege afgekapt (Jan-melding 09.08). position:fixed
   ontsnapt aan die knip — de kaartwortel heeft geen (blijvende) transform, dus
   fixed rekent gewoon vanaf het venster. Coördinaten zet de pagina bij elk
   openen opnieuw (qdnapro-project-card-menu-open → positionFixedMenu). */
qdnapro-project-card qdnapro-menu.pulse-card-menu-fixed {
  position: fixed !important;
  right: auto;
  z-index: 9100;
}

/* De tegelgrid zelf. */
.pulse-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(268px, 1fr));
  gap: 16px;
  align-items: start;
}

/* Sectiekoppen voor de splitsing vastgepind / alle campagnes. Beide zijn
   verborgen zolang de gebruiker niets heeft vastgepind. */
.pulse-section-heading {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--c-grey-500, #6b6884);
  margin: 4px 2px 12px;
}

.pulse-section-heading qdnapro-icon {
  color: var(--c-purple-500, #534ab7);
}

.pulse-section-heading[hidden] {
  display: none;
}

.pulse-pinned-section {
  margin-bottom: 26px;
}

.pulse-pinned-section[hidden] {
  display: none;
}

/* Klikbaarheid: sinds W3 opent ELKE tegel de campagnepagina — ook in het
   archief en ook zonder beheerrecht (de pagina is kijk-gated en toont een
   kijker dezelfde inhoud, alleen zonder bewerkknoppen). Daarom één cursor
   voor alle tegels; het onderscheid uit W2 is vervallen. */
.pulse-cards-grid > qdnapro-project-card.pulse-card-clickable {
  cursor: pointer;
}

/* Zonder beheerrecht krijgt een tegel geen menu; dan hoort de drie-puntjes-knop
   er ook niet te zijn (hij zou bij hover verschijnen en niets doen). */
.pulse-cards-grid > qdnapro-project-card.pulse-card-nomenu .project-card-menu-trigger {
  display: none;
}

/* De statuspil linksboven op de tegel was hier een pagina-eigen chip
   (.pulse-state-chip). Vanaf 19.08.2026 heeft de kaart er een slot voor
   (slot="status") en is de pil een echte qdnapro-tag met variant="glass", dus
   die regels zijn weg: opmaak van een pil hoort bij de pil. */
/* Gearchiveerde tegel: GEEN tweede voetregel-knop. De reactie-teller wordt in
   de archieflens niet meer berekend (zie _decorateCampaignRows: dat is de enige
   groeirichting zonder plafond), en zonder `comment-count` valt het component
   terug op zijn bel — een knop die in Pulse niets doet. Liever niets dan een
   dode bel. Het aantal stappen en de datum blijven staan.
   Hetzelfde idioom als de derde knop in _project-card.scss, die daar
   component-breed op display:none staat. Deze regel staat bewust HIER en niet
   in het component: op het projectenoverzicht mag die bel blijven staan. */
.pulse-cards-grid qdnapro-project-card[archived] .project-card-action-bell {
  display: none !important;
}

/* Binnenkomst-animatie na het wisselen van skelet naar echte tegels. */
@keyframes pulse-card-enter {
  0% {
    opacity: 0;
    transform: scale(0.96) translateY(8px);
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}
.pulse-cards-grid > qdnapro-project-card.pulse-card-entering {
  animation: pulse-card-enter 240ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

/* Vertrek-animatie (archiveren / activeren) en de kortere variant voor het
   verplaatsen bij vastpinnen. */
@keyframes pulse-card-leave {
  0% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
  100% {
    opacity: 0;
    transform: scale(0.88) translateY(8px);
  }
}
.pulse-cards-grid > qdnapro-project-card.pulse-card-leaving {
  animation: pulse-card-leave 500ms cubic-bezier(0.55, 0, 0.35, 1) forwards;
  pointer-events: none;
}

.pulse-cards-grid > qdnapro-project-card.pulse-card-pinleave {
  animation: pulse-card-leave 300ms cubic-bezier(0.55, 0, 0.35, 1) forwards;
  pointer-events: none;
}

/* Geen-zoekresultaat-melding onder de grid. */
.pulse-search-empty {
  padding: 32px 8px;
  color: var(--c-grey-500, #6b6884);
  font-size: 14px;
}

/* --- Maak/bewerk-campagne-modal ------------------------------------------ */
/* Fotokiezer-tegels in de modal. */
.pulse-photo-grid {
  display: grid;
  grid-template-columns: repeat(4, 87px);
  gap: 8px;
  margin-top: 8px;
  justify-content: start;
}

.pulse-photo-actions {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}

.pulse-photo-hint {
  margin: 8px 0 0;
  font-size: 12px;
  color: #6b7280;
}

[data-theme=dark] .pulse-photo-hint {
  color: #a6aab3;
}

.pulse-photo-error {
  margin: 8px 0 0;
  font-size: 12.5px;
  color: #d8442e;
}

.pulse-photo-error[hidden] {
  display: none;
}

.pulse-photo-status {
  margin: 8px 0 0;
  font-size: 12.5px;
  color: #1d9e75;
}

.pulse-photo-status[hidden] {
  display: none;
}

/* Vertaalknop naast de titel en de omschrijving in de campagne-modal
   (17.09.2026). Dezelfde opbouw als de projecttitel op /v1/projects: een
   relatieve wikkel om het invoerveld, met de knop rechtsboven op de labelregel
   en een oranje stip zodra er nog een taal leeg is. De knop is een BROERTJE
   van het veld, nooit een kind: qdnapro-input bouwt zijn eigen inhoud opnieuw
   op en zou hem wissen. De marge zit op de wikkel, want die is nu het directe
   kind van .modal-body. */
.pulse-translate-field {
  position: relative;
}
.pulse-translate-field > qdnapro-input {
  margin-top: 0 !important;
}

.pulse-translate-btn {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
}

/* Dezelfde mini-stip als elders in de backoffice (.translations-mini-badge op
   de takenlijst, .pv2-translate-badge op de projecten). */
.pulse-translate-badge {
  position: absolute;
  top: -2px;
  right: -2px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #e8a320;
  box-shadow: 0 0 0 2px #fff;
  pointer-events: none;
  z-index: 3;
}

.pulse-translate-badge[hidden] {
  display: none;
}

/* Het ringetje volgt de achtergrond van het modalvenster, zodat de stip los
   van de knop blijft lezen in plaats van erop te plakken. */
[data-theme=dark] .pulse-translate-badge {
  box-shadow: 0 0 0 2px #2e3036;
}

/* Hoogte-correctie voor de with-info-modal: het component forceert een vaste
   800px die voor dit korte formulier veel te hoog is. Pagina-gescoopt op het
   id — nooit de globale component-CSS aanpassen (qdna-action-modals). */
#pulse-campaign-modal.modal-layout-with-info .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 48px);
  align-items: stretch;
}

#pulse-campaign-modal.modal-layout-with-info .modal-window {
  height: auto;
  padding-bottom: 16px;
}

/* --- Sjabloonkiezer ("Uit sjabloon") ------------------------------------- */
/* Dezelfde hoogte-correctie als de campagne-modal hierboven: with-info forceert
   anders een VASTE 800px, en een korte sjabloonlijst zwemt daarin. Pagina-
   gescoopt op het id — nooit de globale component-CSS aanpassen. */
#pulse-template-modal.modal-layout-with-info .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 48px);
  align-items: stretch;
}

#pulse-template-modal.modal-layout-with-info .modal-window {
  height: auto;
  padding-bottom: 16px;
}

/* Dit is een KEUZElijst, geen tegeloverzicht: één kolom over de volle breedte.
   De kaart zelf is het gedeelde qdnapro-picker-tile (het component voor "kies
   er een uit N"; zijn eigen docblock noemt een sjabloongalerij als voorbeeld).
   Alleen de VORM wordt hier omgezet van galerij-tegel naar brede regel —
   zelfde soort pagina-gescoopte hervorming als de compacte grafiektype-tegels
   op de dashboard-kaartpagina. */
.pulse-tpl-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

/* column-reverse zet de body (titel + omschrijving) BOVEN het thumb-vak; dat
   vak draagt hier de samenstellingsregel. Die regel is een light-DOM-kind van
   de tegel, en het component klont zijn kinderen bij elke her-render — dus de
   regel overleeft het aan- en uitzetten van `selected`. */
.pulse-tpl-list qdnapro-picker-tile {
  flex-direction: column-reverse;
}

.pulse-tpl-list qdnapro-picker-tile .picker-tile-body {
  padding: 14px 16px 4px;
}

.pulse-tpl-list qdnapro-picker-tile .picker-tile-thumb {
  height: auto;
  background: none;
  padding: 0 16px 14px;
  align-items: center;
}

.pulse-tpl-meta {
  font-size: 12px;
  line-height: 18px;
  color: #6b7280;
}

[data-theme=dark] .pulse-tpl-list qdnapro-picker-tile .picker-tile-thumb {
  background: none;
}

[data-theme=dark] .pulse-tpl-meta {
  color: #a6aab3;
}

/* Statusregel in de lijst (laden / leeg / lijst niet geladen) en de fout onder
   de lijst als het aanmaken zelf misgaat. Lege tekst = verborgen. */
.pulse-tpl-msg {
  margin: 4px 2px;
  font-size: 13px;
  color: #6b7280;
}

.pulse-tpl-msg[hidden] {
  display: none;
}

.pulse-tpl-error {
  margin: 12px 2px 0;
  font-size: 12.5px;
  color: #d8442e;
}

.pulse-tpl-error[hidden] {
  display: none;
}

[data-theme=dark] .pulse-tpl-msg {
  color: #a6aab3;
}

/* --- Nova-campagnegeneratie ("Met Nova", F3-W4) -------------------------- */
/* Het sterretje draagt het Nova-idioom. De knop blijft dezelfde vorm als
   "Uit sjabloon" (secondary-white) — drie primaire kleuren naast elkaar zou
   ruzie geven — maar het icoon staat in het merkpaars uit de tokenbibliotheek,
   nooit in het bijna-zwart van een kale subtle-knop. Target op het #id: de
   knop bestaat als host al bij page-load, ook vóór zijn upgrade. */
#pulse-nova-btn qdnapro-icon {
  color: var(--c-brand-purple, #40499a);
}

/* Dezelfde hoogte-correctie als de twee modals hierboven: with-info forceert
   anders een VASTE 800px. Pagina-gescoopt op het id. */
#pulse-nova-modal.modal-layout-with-info .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 48px);
  align-items: stretch;
}

#pulse-nova-modal.modal-layout-with-info .modal-window {
  height: auto;
  padding-bottom: 16px;
}

.pulse-nova-label {
  display: block;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--c-brand-purple, #394290);
  margin: 0 0 6px;
}

.pulse-nova-field {
  margin-top: 16px;
}

.pulse-nova-field:first-of-type {
  margin-top: 0;
}

/* Resultatenlijst — eigen maximumhoogte met een smalle, doorzichtige balk
   BINNEN het onderdeel (huisregel); twintig treffers zouden de modal anders
   twee schermen hoog maken. Zelfde vorm als het koppelpaneel op de
   campagnepagina, zodat beide zoeklijsten identiek lezen. */
.pulse-nova-results {
  margin-top: 8px;
  max-height: 208px;
  overflow-y: auto;
  border: 1px solid var(--c-border-soft, #e5e5ea);
  border-radius: 10px;
  background: var(--c-bg-card, #fff);
}

.pulse-nova-results[hidden] {
  display: none;
}

.pulse-nova-results::-webkit-scrollbar {
  width: 6px;
}

.pulse-nova-results::-webkit-scrollbar-track {
  background: transparent;
}

.pulse-nova-results::-webkit-scrollbar-thumb {
  background: rgba(57, 66, 144, 0.22);
  border-radius: 999px;
}

.pulse-nova-results {
  scrollbar-width: thin;
  scrollbar-color: rgba(57, 66, 144, 0.22) transparent;
}

.pulse-nova-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 9px 12px;
  border: 0;
  border-bottom: 1px solid var(--c-border-soft, #e5e5ea);
  background: transparent;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
}

.pulse-nova-item:last-child {
  border-bottom: 0;
}

.pulse-nova-item:hover {
  background: #f7f8ff;
}

.pulse-nova-item:focus-visible {
  outline: 2px solid var(--focus-ring, #534ab7);
  outline-offset: -2px;
}

.pulse-nova-item qdnapro-icon {
  flex-shrink: 0;
  color: #6b6884;
}

.pulse-nova-item-texts {
  min-width: 0;
  flex: 1 1 auto;
}

.pulse-nova-item-name {
  display: block;
  font-size: 13px;
  line-height: 18px;
  color: var(--c-text-body, #1c1e2a);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pulse-nova-item-sub {
  display: block;
  font-size: 11.5px;
  line-height: 16px;
  color: var(--c-grey-500, #6b6884);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pulse-nova-note {
  padding: 10px 12px;
  font-size: 12.5px;
  color: var(--c-grey-500, #6b6884);
}

/* De gekozen documenten. Eén regel per document, met een kruisje om hem er
   weer uit te halen. Zelfde lavendel als de gekozen koppeling op de
   campagnepagina. */
.pulse-nova-chosen {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pulse-nova-chosen[hidden] {
  display: none;
}

.pulse-nova-chip {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 8px 9px 12px;
  border-radius: 10px;
  background: #eef0fb;
  color: #40499a;
  font-size: 13px;
  line-height: 19px;
}

.pulse-nova-chip qdnapro-icon {
  flex-shrink: 0;
}

.pulse-nova-chip-texts {
  min-width: 0;
  flex: 1 1 auto;
}

.pulse-nova-chip-name {
  display: block;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pulse-nova-chip-sub {
  display: block;
  font-size: 11.5px;
  line-height: 16px;
  color: #6b6884;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

[data-theme=dark] .pulse-nova-chip-sub {
  color: #a6aab3;
}

.pulse-nova-hint {
  margin: 8px 0 0;
  font-size: 12px;
  line-height: 17px;
  color: #6b7280;
}

.pulse-nova-hint[hidden] {
  display: none;
}

/* Het aandachtspunt uit Analytics (de focuslijst-brug): een rustige chip in
   plaats van een invoerveld — er valt niets te bewerken, alleen te weten. */
.pulse-nova-focus {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  padding: 8px 10px;
  background: #f4f3fb;
  border-radius: 8px;
  color: #3a3854;
  font-size: 12.5px;
}

.pulse-nova-focus qdnapro-icon {
  color: #5b45b5;
  flex-shrink: 0;
  margin-top: 1px;
}

[data-theme=dark] .pulse-nova-hint {
  color: #a6aab3;
}

/* Wachtstand IN de modal: de generatie duurt 30-90 seconden, dus een stille
   knop is niet genoeg. */
.pulse-nova-busy {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 16px 0 0;
  padding: 12px 14px;
  border-radius: 10px;
  background: #eef0fb;
  color: #40499a;
  font-size: 13px;
  line-height: 19px;
}

.pulse-nova-busy[hidden] {
  display: none;
}

.pulse-nova-spinner {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid rgba(64, 73, 154, 0.25);
  border-top-color: #40499a;
  animation: pulse-nova-spin 800ms linear infinite;
}

@keyframes pulse-nova-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .pulse-nova-spinner {
    animation: none;
  }
}
.pulse-nova-error {
  margin: 12px 2px 0;
  font-size: 12.5px;
  color: #d8442e;
}

.pulse-nova-error[hidden] {
  display: none;
}

/* --- Stockfoto-kiezer ("Meer afbeeldingen") ------------------------------ */
/* Zwevend paneel naast de modal; bewust zonder eigen achtergrondlaag zodat de
   campagne-modal zichtbaar blijft. */
.pulse-sp-pop {
  position: fixed;
  right: 32px;
  top: 24px;
  bottom: 24px;
  z-index: 9100;
  width: min(460px, 94vw);
  background: var(--c-bg-card, #fff);
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16), 0 2px 6px rgba(0, 0, 0, 0.08);
  display: none;
  flex-direction: column;
  overflow: hidden;
}

.pulse-sp-pop.is-open {
  display: flex;
  animation: pulse-sp-pop-in 160ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

@keyframes pulse-sp-pop-in {
  from {
    opacity: 0;
    transform: translateX(12px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.pulse-sp-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 12px 12px 16px;
  border-bottom: 1px solid #e5e5ea;
  flex: 0 0 auto;
}

.pulse-sp-title {
  margin: 0;
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  color: #40499a;
}

.pulse-sp-close {
  flex: 0 0 auto;
  border: 0;
  background: none;
  cursor: pointer;
  padding: 6px;
  border-radius: 8px;
  color: var(--c-text-body, #1c1e2a);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.pulse-sp-close:hover {
  background: var(--c-bg-subtle-hover, #f3f4fb);
}

.pulse-sp-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px 0 16px;
  flex: 0 0 auto;
}

.pulse-sp-search {
  flex: 1 1 auto;
  min-width: 0;
}

.pulse-sp-count {
  flex: 0 0 auto;
  font-size: 12px;
  color: #6e6e73;
  white-space: nowrap;
}

.pulse-sp-grid {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 12px;
  overflow-y: auto;
  padding: 12px 16px 16px 16px;
  align-content: start;
}

/* Vaste celhoogte (NIET aspect-ratio): een grid-item met aspect-ratio wordt
   uitgerekt en levert strepen op. */
.pulse-sp-cell {
  position: relative;
  height: 104px;
  padding: 0;
  border: 0;
  background: var(--c-bg-subtle-purple, #f3f4fb);
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
  outline: 2px solid transparent;
  outline-offset: 0;
  transition: outline-color 120ms ease, transform 120ms ease;
}

.pulse-sp-cell:hover {
  transform: translateY(-1px);
}

.pulse-sp-cell:focus-visible {
  outline-color: var(--focus-ring, #534ab7);
}

.pulse-sp-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pulse-sp-cell.pulse-sp-selected {
  outline-color: var(--c-brand-purple, #534ab7);
}

.pulse-sp-check {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #fff;
  color: var(--c-purple-500, #534ab7);
  display: none;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 4px rgba(20, 25, 80, 0.25);
}

.pulse-sp-cell.pulse-sp-selected .pulse-sp-check {
  display: flex;
}

.pulse-sp-empty {
  grid-column: 1/-1;
  padding: 28px;
  text-align: center;
  color: var(--c-text-muted, #8a8fa3);
  font-size: 14px;
}

/* --- Archiveer-bevestiging (waarschuwingsmodal, bewust ZONDER info-kolom) - */
.pulse-archive-warning {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 14px 0 0;
  padding: 12px 14px;
  background: #fff8e1;
  border: 1px solid #f5d68a;
  border-radius: 8px;
  color: #5c4100;
  font-size: 14px;
  line-height: 20px;
}

.pulse-archive-warning qdnapro-icon {
  color: #b78100;
  flex-shrink: 0;
  margin-top: 1px;
}

/* --- In-app help (beknopte secties; het Werkvoorraad-/KL-precedent) --------
   De helpknop staat NAAST de paginatitel en is type="subtle-purple" (nooit
   "subtle" — dat is bijna-zwart; huisregel voor helpknoppen).
   De modal is size="large" voor de leesbreedte, maar met een pagina-gescoopte
   auto-hoogte: large forceert anders een VASTE hoogte van 800px, en zes korte
   alinea's zwemmen daarin. Zelfde overschrijving als de import-modal. */
.pulse-head h1 qdnapro-icon-btn {
  vertical-align: middle;
  margin-left: 2px;
}

#pulse-help-modal .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 48px);
}

#pulse-help-modal .modal-window {
  height: auto;
}

.pulse-help-sec {
  margin: 0 0 15px;
}

.pulse-help-sec:last-child {
  margin-bottom: 2px;
}

.pulse-help-sec h3 {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--c-brand-purple, #394290);
  margin: 0 0 4px;
}

.pulse-help-sec p {
  font-size: 13px;
  line-height: 20px;
  color: #3a3854;
  margin: 0;
}

/* --- Analytics (/v1/pulse/analytics, 2026-08-12) ---------------------------
   Het overkoepelende statistiekoverzicht. Hergebruikt de stats-klassen van de
   detailpagina (kaarten, balken, skelet, foutstaat); hieronder staat alleen
   wat deze pagina zelf toevoegt. Alles pulse-ana-gescoopt. */
.pulse-ana-toolbar {
  align-items: flex-end;
}

.pulse-ana-toolbar .pulse-toolbar-left {
  align-items: flex-end;
}

.pulse-ana-filter {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 150px;
}

.pulse-ana-filter-label {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--c-grey-500, #6b6884);
}

.pulse-ana-panel {
  margin-bottom: 18px;
}

.pulse-ana-cards {
  margin-bottom: 18px;
}

.pulse-ana-cols {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 18px;
  /* De kolommen zelf zijn geen panelen; panelen erbinnen houden hun marge. */
  margin-bottom: 18px;
}

.pulse-ana-cols .pulse-ana-panel {
  margin-bottom: 0;
}

.pulse-ana-colhead {
  font-size: 13px;
  font-weight: 600;
  color: var(--c-brand-purple, #394290);
  margin: 0 0 8px;
}

.pulse-ana-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13px;
  line-height: 19px;
  color: var(--c-grey-500, #6b6884);
  margin: 0 0 14px;
}

.pulse-ana-note[hidden] {
  display: none;
}

.pulse-ana-note qdnapro-icon {
  flex-shrink: 0;
  color: #7d85d6;
  margin-top: 1px;
}

.pulse-ana-knote {
  margin-top: 4px;
}

.pulse-ana-empty {
  padding: 40px 12px;
  text-align: center;
  font-size: 14px;
  color: var(--c-grey-500, #6b6884);
}

.pulse-ana-empty[hidden] {
  display: none;
}

/* De campagnetabel. Brede inhoud scrolt binnen de eigen wrapper (smalle,
   transparante balk — de huisregel), nooit de pagina. */
.pulse-ana-table-scroll {
  overflow-x: auto;
}

.pulse-ana-table-scroll::-webkit-scrollbar {
  height: 6px;
}

.pulse-ana-table-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.pulse-ana-table-scroll::-webkit-scrollbar-thumb {
  background: #d6d4e4;
  border-radius: 999px;
}

.pulse-ana-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  color: #3a3854;
}

.pulse-ana-table th {
  text-align: left;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--c-grey-500, #6b6884);
  padding: 6px 10px;
  border-bottom: 1px solid #e5e3f0;
  white-space: nowrap;
}

.pulse-ana-table td {
  padding: 8px 10px;
  border-bottom: 1px solid #f0eff7;
  white-space: nowrap;
}

.pulse-ana-table th.num,
.pulse-ana-table td.num {
  text-align: right;
}

.pulse-ana-table tbody tr:hover {
  background: #f7f7fc;
}

.pulse-ana-td-title {
  max-width: 340px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pulse-ana-camp-link {
  color: var(--c-brand-purple, #394290);
  font-weight: 600;
  text-decoration: none;
}

.pulse-ana-camp-link:hover {
  text-decoration: underline;
}

.pulse-ana-lock {
  color: #a5a3b8;
  display: inline-flex;
  vertical-align: middle;
}

.pulse-ana-state {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  background: #eceafd;
  color: #5b45b5;
}

.pulse-ana-state--running {
  background: #e3f3ee;
  color: #1d6f57;
}

.pulse-ana-state--closed {
  background: #e6efff;
  color: #2f5fb8;
}

.pulse-ana-state--archived {
  background: #efeef5;
  color: #6b6884;
}

/* De focuslijst: vraagrijen met een scorebalk en de Nova-knop ernaast. */
.pulse-ana-q {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 0;
  border-bottom: 1px solid #f0eff7;
}

.pulse-ana-q:last-child {
  border-bottom: 0;
}

.pulse-ana-q-main {
  flex: 1 1 auto;
  min-width: 0;
}

.pulse-ana-q-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}

.pulse-ana-q-title {
  font-size: 13.5px;
  font-weight: 600;
  color: #3a3854;
}

.pulse-ana-q-pct {
  font-size: 12.5px;
  font-weight: 600;
  white-space: nowrap;
}

.pulse-ana-q-pct--laag {
  color: #b23a2f;
}

.pulse-ana-q-pct--middel {
  color: #a26a00;
}

.pulse-ana-q-pct--hoog {
  color: #1d6f57;
}

.pulse-ana-q-meta {
  font-size: 12px;
  color: var(--c-grey-500, #6b6884);
  margin: 2px 0 6px;
}

.pulse-ana-q-meta .pulse-ana-camp-link {
  font-weight: 500;
}

.pulse-ana-fill--laag {
  background: #d96a5f;
}

.pulse-ana-fill--middel {
  background: #e0a53f;
}

.pulse-ana-fill--hoog {
  background: #1d9e75;
}

.pulse-ana-q-nova {
  flex: 0 0 auto;
  text-decoration: none;
}

/* Effect van de spelelementen: twee blokken naast elkaar. */
.pulse-ana-gam {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

.pulse-ana-gam-block {
  flex: 1 1 200px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 14px 16px;
  background: #f7f7fc;
  border-radius: 10px;
}

.pulse-ana-gam-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-grey-500, #6b6884);
}

.pulse-ana-gam-value {
  font-size: 24px;
  font-weight: 700;
  color: var(--c-brand-purple, #394290);
}

.pulse-ana-gam-sub {
  font-size: 12px;
  color: var(--c-grey-500, #6b6884);
}

/* Afdrukken: de bediening verdwijnt, de cijfers blijven. */
@media print {
  .pulse-ana-toolbar,
  #pulse-ana-loading,
  #pulse-ana-error,
  .pulse-ana-q-nova {
    display: none !important;
  }
  .pulse-ana-panel {
    break-inside: avoid;
  }
}
/* Bereik per locatie/afdeling — de uitklapbare boom (2026-08-12): locatierijen
   zijn klikbaar en tonen de afdelingen eronder ingesprongen. */
.pulse-ana-unit-groep {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pulse-ana-unit--klikbaar {
  cursor: pointer;
  border-radius: 8px;
}

.pulse-ana-unit--klikbaar:hover {
  background: #f7f7fc;
}

.pulse-ana-unit--klikbaar .pulse-stats-bar-name {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.pulse-ana-unit-chevron {
  transition: transform 0.15s ease;
  flex-shrink: 0;
  color: #6b6884;
}

.pulse-ana-unit--klikbaar.is-open .pulse-ana-unit-chevron {
  transform: rotate(90deg);
}

.pulse-ana-unit-count {
  font-weight: 400;
  color: var(--c-grey-500, #6b6884);
  font-size: 12px;
}

.pulse-ana-unit-kinderen {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0 0 4px 22px;
  padding-left: 12px;
  border-left: 2px solid #e5e3f0;
}

.pulse-ana-unit-kinderen[hidden] {
  display: none;
}

.pulse-ana-unit--child .pulse-stats-bar-name {
  font-weight: 500;
  font-size: 12.5px;
}

/* --- Dag-pill-popover (BOARD-pulse-opmaak-wizard, kaart 9 punt 5) -------- */
/* Hergebruikt de bestaande .pulse-sm-day / .pulse-pace* / .pulse-sm-field
   opbouw van pacingFieldsHtml() (zie hierboven) in een smalle qdnapro-popover
   in plaats van in de brede stap-modal. Alleen de buitenste kaart en de
   opslaan/annuleren-knoppen zijn nieuw; de velden zelf leunen op de styles
   die er al staan. */
qdnapro-popover[data-pulse-day-pop] {
  width: min(92vw, 300px);
  padding: 16px 16px 14px;
}

.pulse-daypop {
  display: block;
}

.pulse-daypop-error {
  margin: 10px 0 0;
  font-size: 12px;
  color: var(--c-signal-red-text, #c65a5a);
}

.pulse-daypop-error[hidden] {
  display: none;
}

.pulse-daypop-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 16px;
}

/* --- Afbeelding-popover bij de miniatuur (kaart 28) ---------------------- */
/* De stappenrij toont sinds kaart 28 altijd het geanimeerde staptype-icoon;
   wat er aan de stap HANGT staat hier, op een formaat waarop je het herkent.
   Zie initStepImagePopover() in detail.html.

   Twee maten in dezelfde popover-instantie, geschakeld met [data-empty] op de
   host: een beeldkaartje, of één regel tekst. Een data-attribuut en geen
   klasse, want qdnapro-popover herschrijft zijn eigen className bij elke
   render (qdna-popovers-skill, valkuil 4).

   pointer-events: none — er staat niets klikbaars in, en zonder dit kan de
   popover onder de cursor terechtkomen: dat geeft een mouseout op de
   miniatuur, die sluit hem, waarna de mouseover hem heropent. Een flikkerlus.
   De sluit-bij-klik-ernaast van het component blijft gewoon werken: die kijkt
   naar waar de klik LANDT, en dat is dankzij deze regel nooit de popover. */
/* 300px (28.08.2026): de kaarttekst van qdnapro-pulse-canvas is in cqw
   geijkt op een kaart van 300px breed (zie de kop van qdna-pulse-canvas.js),
   dus op deze breedte leest het kaartje hier in dezelfde verhoudingen als in
   de wizard. Was 248px, uit de tijd dat hier alleen een uitsnede stond. */
qdnapro-popover[data-pulse-img-pop] {
  width: 300px;
  padding: 12px;
}

qdnapro-popover[data-pulse-img-pop][data-empty] {
  width: 200px;
  padding: 12px 14px;
}

/* De klasse MOET erbij: _popover.scss zet `pointer-events: auto` op
   `.qdnapro-popover.is-open` (0,2,0) en dat wint van een selector met alleen
   het element plus een attribuut (0,1,1). Gemeten in een harnas met de echte
   style-v1.css — zonder deze regel bleef de popover gewoon muisgevoelig en
   was de flikkerlus hierboven niet opgelost maar alleen opgeschreven. */
.qdnapro-popover[data-pulse-img-pop] {
  pointer-events: none;
}

.pulse-imgpop {
  display: block;
}

/* 16:10 — de verhouding waarop een stapfoto bij het uploaden wordt
   bijgesneden (PULSE_PHOTO_CROP_RATIO in detail.html) en waarop de kaart in de
   app staat (.pt-bg in 03-style.css). Was 3:4 met als reden "de verhouding van
   de kaart in de app"; dat was niet nagemeten en klopte niet, en elke liggende
   stapfoto stond hier dus met grijze banden boven en onder in een staand
   kaartje (Kim, 28.08.2026). */
.pulse-imgpop-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16/10;
  border-radius: 10px;
  overflow: hidden;
  background: var(--c-grey-50, #f2f2f5);
}

[data-theme=dark] .pulse-imgpop-frame {
  background: #2a2d55;
}

/* `contain`, want dit frame toont sinds 28.08.2026 alleen nog de foto van
   Klassiek / Vrij vormgeven, en die is INHOUD: hij hoort helemaal in beeld.
   Voor elke foto van na de crop-regel is dat hetzelfde als vullend; een oudere
   foto met een andere verhouding blijft zo tenminste heel. De achtergrond van
   "tekst op achtergrond" komt niet meer door dit frame maar door
   .pulse-imgpop-canvas hieronder. */
.pulse-imgpop-frame img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* "Tekst op achtergrond": de ECHTE kaart, met dezelfde qdnapro-pulse-canvas als
   de wizard (.pulse-wiz-bg-canvas-wrap) en het deelnemer-voorbeeld
   (.pulse-preview-bg-canvas-wrap). Bewust GEEN eigen aspect-ratio hier: het
   component staat zelf op 16:10 en dat is ook de maat in de app, dus die
   overschrijven zou opnieuw een derde verhouding introduceren. Alleen de
   kaartrand iets kleiner, want dit kaartje is 276px breed en geen halve pagina.
   (De wizard en het voorbeeld stonden tot 28.08.2026 op 16:9 terwijl de app
   16:10 is; sindsdien staan alle vier de frames op 16:10, dus ontwerpen,
   nakijken en krijgen gebeurt eindelijk op hetzelfde vlak.) */
.pulse-imgpop-canvas qdnapro-pulse-canvas {
  display: block;
  width: 100%;
  /* 28.08.2026: de ronding is hier ook weg. Dit was de vierde en laatste plek
     die de kaart nog rond tekende; de kaart is sinds besluit 8 overal recht,
     en juist het verschil tussen de plekken was de klacht. */
  border-radius: 0;
  overflow: hidden;
}

/* Lege staat: klein houden. Dit is een hover-kaartje, geen lege staat van een
   pagina — een illustratie van 240px maakt een vluchtige muisbeweging zwaarder
   dan wat hij oplevert (besluit D, Kim 25.08.2026). */
.pulse-imgpop--empty {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--c-grey-500, #6b6884);
}

.pulse-imgpop-empty-text {
  margin: 0;
  font-size: 13px;
  line-height: 1.3;
}

/* ============================================================
   Kaart 7 (BOARD-pulse-gesprekken, reparatie 01.09.2026): zeven
   klassen die kaart 4 in de markup gebruikt maar kaart 5 niet
   heeft gestyled — naamdrift tussen twee parallelle kaarten.
   Waarden gespiegeld aan de bestaande pulse-mod-tegenhangers
   hierboven, zodat het beeld niet verandert per bron.
   ============================================================ */
/* Grid-kind in de stap-rij: zonder min-width weigert de kolom
   smaller te worden dan zijn inhoud en loopt een lange titel
   over de nieuw-badge heen (zelfde les als .pcs-comment__head). */
.pgs-step-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

/* Verwijderd-regel onder een weggemodereerde reactie — de
   beheer-laag bovenop de PWA-chat; spiegelt .pulse-mod-c-gone. */
.pcs-comment__gone {
  margin: 6px 0 0;
  font-size: 11.5px;
  color: var(--c-text-muted, #8a87a0);
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

/* Het opgeslagen-vinkje bij het meldingen-segment — spiegelt
   .pulse-mod-saved. */
.pgs-notify-saved {
  font-size: 12px;
  color: #1d9e75;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: opacity 0.2s ease;
}

.pgs-notify-saved[hidden] {
  display: none;
}

/* Lege en fout-staten: zelfde toon als .pgs-empty hierboven. */
.pgs-list-empty,
.pgs-thread-empty {
  margin: 8px 6px;
  font-size: 13px;
  color: var(--c-text-muted, #6e7280);
}

.pgs-detail-empty {
  flex: 1 1 auto;
  display: grid;
  place-items: center;
  padding: 40px 24px;
  text-align: center;
  font-size: 13px;
  color: var(--c-text-muted, #6e7280);
}

.pgs-thread-error {
  margin: 8px 0;
  font-size: 13px;
  color: var(--c-signal-red-text, #c65a5a);
}

/* Kaart 5 hierboven portte bewust NIET .pcs-pick/.pcs-pick__*, .pcs-error,
   .pcs-plus-menu en qdnapro-popover[data-pulse-plus-sheet] — die hoorden bij
   fase 2 (kaart 10/11), die toen nog niet gebouwd was (zie kaart 5's eigen
   "BEWUST NIET meegenomen"-lijst hierboven). Deze sectie port ze alsnog, 1:1
   uit dezelfde bron (app_api_qdnav2/src/REX/Resources/Scss/_pwa-current.scss,
   regels ~4914-4931 en ~5083-5146), met dezelfde tokenvertaling als kaart 5:
   var(--c-text, #hex) → var(--c-text-body, #hex) (komt in dit stuk niet voor),
   het actie-blauw var(--c-action-500, #4652f3) blijft ONVERTAALD, en
   hex-terugvallen blijven overal staan.

   Gecontroleerd vóór het porten (geen dubbele definities): kaart 5 had
   .pcs-left, .pcs-form--typt, .pcs-emoji-row[hidden] en de
   .input-action-btn/-2-vervaging AL VOLLEDIG geport, inclusief de
   prefers-reduced-motion-regel (zie hierboven, rond .pcs-emoji-row/.pcs-form).
   Die staan hier dus NIET nog een keer.

   BEVINDING, nagezocht en niet aangenomen: de "kiezer-grid" uit de
   kaartbrief (zoekveld/categorieën/thumbnails om een sticker of gif te
   KIEZEN) bestaat niet als los .pcs-*-blok in _pwa-current.scss om te
   porten. De app rendert die kiezer met de webcomponents
   <qdnapro-sticker-sheet> en <qdnapro-gif-sheet> (zie 16-pulse.js:
   `_pulseStickerSheet`/`_pulseGifSheet`), die hun EIGEN CSS meebrengen
   (app_api_qdnav2/.../Css/components-v2/qdna-sticker-sheet.css en
   qdna-gif-sheet.css) — hetzelfde patroon als qdnapro-lottie elders in dit
   bestand (component-CSS laadt NA style-v1.css). Beide componenten bestaan
   AL in de backoffice-componentenbibliotheek
   (backoffice2/web/js/components/v2/sticker-sheet/ en .../gif-sheet/), dus
   kaart 11 kan ze rechtstreeks gebruiken — er zijn hier geen nieuwe
   .pcs-pick*-grid-klassen nodig of bedacht. Wat .pcs-pick* WÉL is (bevestigd
   in de bron): de CONCEPTSTRIP die toont wat er klaarstaat om te versturen
   (sticker of gif), niet de kiezer zelf. Gemeld i.p.v. zelf iets verzonnen. */
/* De twee tegels (sticker/gif) in het +-menu. De schil levert zelf al
   padding en een afgeronde kaart; dit is alleen de rij die de twee tegels
   vasthoudt. Hier is de popover de PRIMAIRE en enige vorm (dit paneel is
   desktop-only) — de bottom-sheet-variant uit de PWA-bron (telefoon) is NIET
   geport. */
.pcs-plus-menu {
  display: flex;
  justify-content: center;
  gap: 16px;
  padding: 8px 4px 4px;
}

/* De standaard-popover is een 280px menu-achtige doos (zie de qdna-popovers
   skill, punt 1) — te smal en te krap gepad voor twee grid-tegels. Hier
   verbreed en herpad. */
qdnapro-popover[data-pulse-plus-sheet] {
  width: min(92vw, 280px);
  padding: 12px;
}

/* De sticker of gif die klaarstaat, boven de emoji-rij: het beeld zelf, een
   label (bv. "Sticker toegevoegd") en een kruisje om het weg te halen.

   De keyline erboven loopt over de volle breedte, zelfde reden als bij
   .pcs-editstrip hierboven (kaart 5): de streep hakt het scherm in tweeën,
   erboven het gesprek, eronder wat je aan het maken bent. Zelfde vertaling
   als daar: de PWA-bron rekent de breedte terug met --bs-pad-x omdat de
   strip daar in een bottom sheet leeft; hier leeft hij in een paneel zonder
   sheet-zijpadding, dus gewone volle breedte zonder negatieve marge (net als
   .pcs-editstrip hierboven). */
.pcs-pick {
  display: flex;
  align-items: center;
  gap: 10px;
  box-sizing: border-box;
  width: 100%;
  padding: 10px 4px;
  border-top: 1px solid var(--c-grey-100, #e7e9ec);
}

.pcs-pick[hidden] {
  display: none;
}

/* Zelfde samengestelde selector als .pcs-comment__sticker hierboven, en om
   exact dezelfde reden: qdnapro-lottie zet zijn eigen default óók via een
   class-selector, en die component-CSS wordt NA style-v1.css aan <head>
   toegevoegd. Bij gelijke specificiteit wint dan de laatste in de broncode
   — niet deze regel. Met de samengestelde selector (0-2-0) wint deze regel
   altijd, ongeacht laadvolgorde (zie _pwa-current.scss voor de meting die
   dit vaststelde — dezelfde race trof daar ook .pcs-comment__sticker). */
.pcs-pick__thumb.qdnapro-lottie {
  --ql-size: 44px;
  flex: 0 0 auto;
}

/* Dezelfde 44px-doos als de sticker-thumb hierboven, maar voor een GIF — een
   gewoon <img> in plaats van qdnapro-lottie, dus hier geen component-race
   (puur eigen CSS). Een stilstaande poster (preview_url): dit is nog een
   concept, geen geplaatste reactie. */
.pcs-pick__thumb--gif {
  display: block;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 6px;
  overflow: hidden;
  background: var(--c-grey-100, #e7e9ec);
}

.pcs-pick__thumb--gif img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pcs-pick__label {
  font-size: 14px;
  color: var(--c-text-muted, #6b7280);
}

.pcs-pick__clear {
  margin-left: auto;
}

.pcs-error {
  font-size: 13px;
  color: var(--c-signal-red-text, #c65a5a);
}

.pcs-error[hidden] {
  display: none;
}

/* ============================================================
   Kaart 16 (BOARD-pulse-gesprekken, feedback Kim 01.09.2026):
   styling voor de staptype-lottie in de rij, de stapfoto in de
   gesprekskop, en de emoji-rij links uitgelijnd.
   ============================================================ */
/* De bewegende staptype-tegel in de stap-rij. Samengestelde selector
   (0-2-0), anders wint qdnapro-lottie's eigen 48px-standaard van deze
   maat — zelfde race als .pcs-comment__sticker hierboven. */
.pgs-step-anim.qdnapro-lottie {
  --ql-size: 24px;
  display: block;
}

/* Stapfoto + titel naast elkaar in de gesprekskop. De marge die eerst
   op de titel zat verhuist naar de rij, anders verdwijnt de ruimte
   boven de stemming-chips zodra de rij eromheen komt. */
.pgs-thread-head-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}

.pgs-thread-head-row .pgs-thread-title {
  margin: 0;
  min-width: 0;
}

.pgs-thread-img {
  flex: 0 0 auto;
  width: 56px;
  height: 35px;
  border-radius: 8px;
  object-fit: cover;
  background: var(--c-grey-100, #e7e9ec);
}

/* Kaart 17-voorbereiding (feedback Kim, screenshot backend naast PWA):
   de snelle emoji staan LINKS gegroepeerd, niet uitgesmeerd over de
   volle breedte. Bewuste backend-afwijking van de geporte PWA-regel
   (space-between hierboven, kaart 5): op een brede desktop-composer
   dreven de acht knoppen te ver uit elkaar. Deze regel staat later in
   het bestand en wint dus op volgorde. */
.pcs-emoji-row {
  justify-content: flex-start;
  gap: 8px;
}

/* Kaart 22 (BOARD-pulse-gesprekken): de "Meest gewaardeerd"-chip in de
   gesprekskop is een KNOP (springt naar de reactie), dus button-reset
   bovenop de gewone .pgs-chip-vorm, met een hover die vertelt dat hij
   klikbaar is. Tekst kapt af: de snippet mag de kop niet oprekken. */
.pgs-chip--top {
  border: 0;
  font: inherit;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  max-width: 360px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  background: var(--c-chip-purple-bg, #ebe9fb);
  color: var(--c-chip-purple-text, #413b5e);
}

.pgs-chip--top:hover {
  background: var(--c-chip-purple-hover, #d8d2f7);
}

.pgs-chip--top:focus-visible {
  outline: 2px solid var(--focus-ring, #40499a);
  outline-offset: 2px;
}

/* ============================================================
   Kaart 25 (BOARD-pulse-gesprekken, fase G, Kim 02.09.2026):
   subtiele feedback-animaties op de gesprekken-pagina. Alles staat
   ONDER prefers-reduced-motion: no-preference — wie geen beweging wil
   krijgt exact de harde omslagen van voorheen. Klassencontract met de
   view (kaart 24): .is-switching, .pgs-enter (+ --pgs-i), .pgs-enter--live,
   .is-leaving, .is-filtering.
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
  /* 4. Geselecteerde rij: zachte omslag i.p.v. hard. */
  .pgs-steprow {
    transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
  }
  /* 1. Stap wisselen: kop en gesprek kruisvervagen. De view zet
     .is-switching, wacht ~120ms, tekent opnieuw en haalt hem weg. */
  .pgs-thread,
  .pgs-thread-head {
    transition: opacity 120ms ease;
  }
  .pgs-thread.is-switching,
  .pgs-thread-head.is-switching {
    opacity: 0;
  }
  /* 1b. Reacties komen gestaggerd binnen: --pgs-i is de rij-index (door
     de view begrensd, zodat een lange pagina niet seconden duurt). */
  .pcs-comment.pgs-enter {
    animation: pgs-enter 220ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
    animation-delay: calc(var(--pgs-i, 0) * 25ms);
  }
  .pgs-new-divider.pgs-enter {
    animation: pgs-fade 260ms ease both;
    animation-delay: calc(var(--pgs-i, 0) * 25ms);
  }
  /* 3. Een reactie die via de 10s-verversing binnenkomt glijdt van
     onderen in; de view zet er ook .pcs-comment--flits op (bestaat al). */
  .pcs-comment.pgs-enter--live {
    animation: pgs-enter-live 260ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
  }
  /* 2. De nieuw-badge krimpt weg bij het openen; de view verwijdert hem
     pas na de overgang. */
  .pgs-badge-new {
    transition: transform 180ms ease, opacity 180ms ease;
  }
  .pgs-badge-new.is-leaving {
    transform: scale(0.6);
    opacity: 0;
  }
  /* 5. Filter wisselen: de lijst vervaagt uit en in rond het hertekenen. */
  .pgs-steplist {
    transition: opacity 120ms ease;
  }
  .pgs-steplist.is-filtering {
    opacity: 0;
  }
}
@keyframes pgs-enter {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes pgs-enter-live {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes pgs-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* Kaart 27 (feedback Kim 02.09.2026, "geen padding"): de lijst+detail-
   indeling loopt rand-tot-rand door het paneel; de 22px zijpadding van
   .pulse-panel (en de onderpadding) worden hier teruggerekend. De
   onderhoeken ronden mee met het paneel, anders steekt de lila lijstkolom
   vierkant uit de afgeronde kaart. */
.pulse-mod-panel .pgs-split {
  margin: 0 -22px -22px;
  border-radius: 0 0 14px 14px;
  overflow: hidden;
}

/* Kaart 29 (Kim 02.09.2026): chat-layout. De view zet --pgs-split-h
   (viewport minus navbar en actiebalk); lijst en gesprek scrollen intern,
   de composer blijft onderaan in beeld. Zonder de variabele (JS nog niet
   gelopen) valt het terug op de oude meegroeiende hoogte. De 96px onder
   het paneel is hetzelfde sync-punt als _tasklist-settings.scss: balk 56
   + offset 16 + 24 lucht, zodat de onderkant nooit achter de balk valt. */
.pulse-detail-body--single {
  padding-bottom: 96px;
}

.pulse-mod-panel .pgs-split {
  height: var(--pgs-split-h, auto);
  max-height: var(--pgs-split-h, none);
  min-height: 480px;
}

.pulse-mod-panel .pgs-detail {
  min-height: 0;
  overflow: hidden;
}

.pulse-mod-panel .pgs-thread {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}

/* ── Stapchat-modal (openStepChatModal() in detail.html) ─────────────────
   Kim, 16.09.2026, na het bekijken van het echte scherm:
     1) "De chat is in een frame gepropt en is onnodig smal geworden."
     2) "Antwoordopties vallen buiten het modal" (de kaart links liep door
        buiten de modal-rand).
   Alles hieronder is gescoopt op `.pulse-chat-modal`, de class die alleen
   op DIE ene modal staat (zie detail.html) — de gesprekkenPAGINA
   (gesprekken.html, geen `.pulse-chat-modal`-voorouder) blijft hierdoor
   byte-voor-byte hetzelfde. `_modal.scss` zelf is niet aangeraakt: dat
   component wordt door het hele product gebruikt. */
/* 1) Breedte: `size="xxlarge"` (1100px, _modal.scss) is de breedste
   ingebouwde maat en wordt gedeeld door de kaart (280px) EN het gesprek,
   wat het gesprek weinig ruimte liet. Eigen breedte voor deze ene modal. */
.qdnapro-modal.pulse-chat-modal .modal-dialog {
  max-width: 1280px;
}

/* 2) De kaartvoorbeeld-kolom (`.modal-info`) heeft in _modal.scss bewust
   `overflow: visible` (geldt voor alle with-info-modals). Bij een lange
   kaart (kennisvraag met veel/lange antwoordopties) liep die kolom hier
   daardoor door buiten de afgeronde modal-rand. Alleen in deze modal moet
   de kolom zelf scrollen; andere with-info-modals houden hun overflow:
   visible (bv. voor de illustratie die er ligt). */
.qdnapro-modal.pulse-chat-modal .modal-info {
  overflow-y: auto;
}

/* 3) Hoogte-keten voor het lijst+detail-blok. `.pulse-mod-panel .pgs-split`
   (kaart 27/29 hierboven) rekent met de 22px-zijpadding van `.pulse-panel`
   terug (die klasse staat in modal-modus niet meer op het paneel — SCOPE
   16.09.2026) en met `--pgs-split-h`, een hoogte die pgsSizeSplit() in
   _gesprekken-paneel.html uit `window.innerHeight` berekent — beide kloppen
   niet in een modal (GEMELD: dat bestand mag voor deze kaart niet worden
   aangeraakt). In plaats van op die variabele te vertrouwen, laten we de
   hoogte hier via een flex-keten uit de ECHTE modal-geometrie komen
   (modal-body heeft al een vaste hoogte, zie de with-info/xxlarge-regels
   in _modal.scss): modal-body wordt een flex-kolom, en elke laag daaronder
   krijgt `flex: 1 1 auto; min-height: 0` tot aan `.pgs-split`. Zo blijft de
   composer in beeld en scrollen alleen de kaartkolom, de stappenlijst en de
   draad (dat laatste regelt de bestaande `.pulse-mod-panel .pgs-thread` /
   `.pcs-compose`-CSS hierboven al, zodra hun voorouder een echte hoogte
   heeft). De -22px-marge hierboven wordt hier expliciet geneutraliseerd:
   in de modal staat er geen `.pulse-panel`-padding tegenover die marge. */
/* ⚠️ `overflow: hidden` is hier de SCHAKEL, niet cosmetica. `.modal-body` krijgt
   van het modal-component `overflow-y: auto`, en zo lang die staat mag de inhoud
   gewoon doorgroeien en scrollt de HELE body mee: het paneel werd 2113px hoog in
   een venster van 754px, en het antwoordveld zakte ver onder de rand van de
   modal. Met hidden is de hoogte een harde grens, krimpt de keten eronder mee en
   scrollt alleen de draad. Gemeten met getBoundingClientRect vóór en na. */
.qdnapro-modal.pulse-chat-modal .modal-body {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 0;
}

.qdnapro-modal.pulse-chat-modal .pulse-mod-panel,
.qdnapro-modal.pulse-chat-modal #pulse-mod-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

/* Een verborgen grid-ITEM laat zijn KOLOM staan: zonder deze regel bleef er
   340px gereserveerd voor de stappenlijst die in deze modal niet bestaat, en
   werd het gesprek daar naast geperst. Zelfde eenkolomsvorm als het
   smalle-schermblok bij .pgs-split hierboven. */
/* ⚠️ DE ONTBREKENDE SCHAKEL. Tussen `.modal-body` en het paneel zit de
   pagina-wrapper `.pulse-detail-body--single`: een grid met een auto-rij,
   `flex-grow: 0` en `min-height: auto`. Die gaf de volledige inhoudshoogte
   ongehinderd door naar beneden, waardoor elke flex-regel eronder zinloos was
   (gemeten: 2209px in een venster van 754px). Hij hoort bij de PAGINA, waar hij
   in een grid van de detailkolom staat; in een modal is hij alleen nog een
   doorgeefluik en moet hij dus meekrimpen.
   De 96px onderaan is ruimte voor de zwevende actiebalk van de pagina. Die balk
   bestaat hier niet, dus dat is loze hoogte onder het gesprek. */
.qdnapro-modal.pulse-chat-modal .pulse-detail-body {
  flex: 1 1 auto;
  min-height: 0;
  grid-template-rows: minmax(0, 1fr);
  padding-bottom: 0;
}

/* De hele keten van de modal-body tot de draad in EEN regel. Laag voor laag
   repareren werkte niet: elke laag die nog kon groeien gaf de volle
   inhoudshoogte door aan de volgende, en dan is het antwoordveld alsnog weg.
   `max-height: 100%` is hier de sleutel naast `min-height: 0`: een grid-item
   mag namelijk gewoon buiten zijn rij groeien, ook als die rij begrensd is.
   De draad zelf staat bewust NIET in deze lijst; die moet juist scrollen. */
.qdnapro-modal.pulse-chat-modal .pulse-detail-body,
.qdnapro-modal.pulse-chat-modal .pulse-mod-panel,
.qdnapro-modal.pulse-chat-modal #pulse-mod-body,
.qdnapro-modal.pulse-chat-modal .pgs-split,
.qdnapro-modal.pulse-chat-modal .pgs-detail {
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
}

.qdnapro-modal.pulse-chat-modal .pgs-split {
  grid-template-columns: minmax(0, 1fr);
  /* ⚠️ En de RIJ moet ook begrensd worden. `.pgs-split` is een grid, en een
     grid met een auto-rij groeit met zijn inhoud, ongeacht welke flex-regels
     er op het element zelf staan: het blok bleef 2113px hoog in een venster
     van 754px. `minmax(0, 1fr)` maakt de rij precies zo hoog als er ruimte is,
     zodat de draad eronder zelf gaat scrollen in plaats van het hele venster
     op te rekken. Op de PAGINA doet `--pgs-split-h` dit werk; in een modal
     bestaat die berekening niet (die gaat uit van de viewport minus navbar en
     actiebalk, en die zijn hier niet). */
  grid-template-rows: minmax(0, 1fr);
  min-height: 0;
}

.qdnapro-modal.pulse-chat-modal .pgs-split {
  flex: 1 1 auto;
  min-height: 0;
  height: auto;
  max-height: none;
  margin: 0;
}

/* Datumvelden -> huiskalender (Kim 02.09.2026). De gedeelde popover met de
   qdnapro-date-picker hangt aan document.body, buiten de modal. Die staat op
   z-index 9000 (.qdnapro-modal) en de popover standaard op 1001, dus zonder
   deze regel opent de kalender ACHTER de stap-modal. 9400 is boven de
   "altijd bovenop"-laag 9300 die de flow editor gebruikt. Op het data-
   attribuut en niet op een class: qdnapro-popover overschrijft zijn eigen
   className bij elke render. Zie _campaign-head-scripts.html. */
.qdnapro-popover[data-pulse-date-pop] {
  z-index: 9400;
}

#pulse-sm-start-preview-field {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

.pulse-start-preview {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1 1 auto;
  gap: 6px;
  width: min(100%, 320px);
  min-height: 480px;
  margin: 0 auto;
  padding: 40px 20px 20px;
  border-radius: 22px;
  background: var(--c-purple-500);
  text-align: center;
}

.pulse-start-preview-heading {
  font-size: 19px;
  font-weight: 800;
  line-height: 1.2;
  color: var(--c-text-on-action);
  text-wrap: balance;
  min-height: 23px;
  max-width: 250px;
  overflow-wrap: anywhere;
}

.pulse-start-preview-team {
  font-size: 16px;
  font-weight: 800;
  color: var(--c-text-on-action);
}

.pulse-start-preview-teamlabel {
  font-size: 11px;
  font-weight: 600;
  color: var(--c-white-70);
}

.pulse-start-preview-icon {
  margin: 26px 0 10px;
}

.pulse-start-preview-sub {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-white-85);
  min-height: 15px;
  max-width: 230px;
  overflow-wrap: anywhere;
}

.pulse-start-preview-btn {
  margin-top: auto;
  padding: 8px 18px;
  border-radius: 999px;
  background: var(--c-purple-700);
  color: var(--c-text-on-action);
  font-size: 12px;
  font-weight: 600;
}
.pulse-start-preview-btn.pulse-start-preview-hintline {
  padding: 0;
  border-radius: 0;
  background: transparent;
  font-size: 12px;
  font-weight: 600;
}

.pulse-add-bar--inline {
  margin: 2px 0;
}

@property --fe2-beam-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
.fe-font-preload {
  font-family: "Montserrat", sans-serif;
  position: absolute;
  visibility: hidden;
  pointer-events: none;
}

.fe-breadcrumb-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 16px;
  background: transparent;
}
.fe-breadcrumb-bar .fe-breadcrumb-back {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: #41499a;
  text-decoration: none;
  transition: background 120ms ease;
  flex-shrink: 0;
}
.fe-breadcrumb-bar .fe-breadcrumb-back:hover {
  background: rgba(65, 73, 154, 0.1);
}
.fe-breadcrumb-bar .fe-breadcrumb-back .mdi {
  font-size: 20px;
  line-height: 1;
}

.floweditor_modal .table-responsive {
  display: inline !important;
}

.floweditor_holder {
  overflow: hidden;
  width: 100%;
  height: 100%;
}

.floweditor_holder__canvas-row {
  display: flex;
  align-items: stretch;
  width: 100%;
  height: 100%;
}

.floweditor_holder__canvas-row > .floweditor-nodepicker-v2 {
  flex: 0 0 56px;
  min-width: 0;
  position: relative;
  z-index: 10;
}

.floweditor_holder__canvas-row > .fe-right-col {
  flex: 1 1 0%;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.floweditor_holder__canvas-row .fe-breadcrumb-host {
  flex: 0 0 auto;
}

.floweditor_holder__canvas-row .fe-right-col > .floweditor {
  flex: 1 1 0%;
  min-height: 0;
  width: auto;
  min-width: 0;
}

.fe-form-empty-hint {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 12;
  transform: translate(-50%, calc(-100% - 46px));
  width: 264px;
  max-width: 78%;
  background: #ffffff;
  border-radius: 14px;
  box-shadow: 0 18px 44px rgba(38, 42, 92, 0.2);
  padding: 16px 16px 18px;
  pointer-events: none;
  transition: opacity 160ms ease;
}
.fe-form-empty-hint::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -7px;
  width: 16px;
  height: 16px;
  background: #ffffff;
  transform: translateX(-50%) rotate(45deg);
  border-radius: 0 0 3px 0;
  box-shadow: 3px 3px 7px rgba(38, 42, 92, 0.1);
}

.fe-form-empty-hint__title {
  font-size: 15px;
  font-weight: 700;
  color: #2a2e5e;
  line-height: 1.3;
  margin-bottom: 4px;
  text-align: center;
}

.fe-form-empty-hint__sub {
  font-size: 12.5px;
  color: #6c7099;
  line-height: 1.4;
  margin-bottom: 14px;
  text-align: center;
}

.fe-form-empty-hint__card {
  border: 1.5px solid #e6e7ef;
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 2px 8px rgba(38, 42, 92, 0.08);
  padding: 10px;
}

.fe-form-empty-hint__card-header {
  background: #eceefb;
  color: #3a4290;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 8px;
  border-radius: 6px;
  margin-bottom: 10px;
}

.fe-form-empty-hint__card-field {
  height: 20px;
  border: 1.5px solid #e6e7ef;
  border-radius: 6px;
  background: #fbfbfe;
}
.fe-form-empty-hint__card-field + .fe-form-empty-hint__card-field {
  margin-top: 8px;
}

.floweditor-diagram-holder {
  width: 100%;
  height: 100%;
}

.floweditor_empty_state {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: #fff;
  z-index: 23;
  font-weight: 400;
  font-size: 18px;
  color: rgba(0, 0, 0, 0.4);
  text-align: center;
  cursor: pointer;
}

.floweditor_empty_state_text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 100px;
}

.floweditor_empty_state_text:hover {
  color: #158b6c;
}

.floweditor_empty_state_icon {
  font-size: 40px;
  display: block;
}

.floweditor-overflow-auto {
  max-height: 500px;
  overflow-x: auto;
}

.floweditor_modal-holder {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1001;
  overflow-y: auto;
}
.floweditor_modal-holder.-stacked {
  z-index: 9100;
}
.floweditor_modal-holder.-prompt-holder {
  z-index: 9300;
}

.floweditor_modal-background {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1003;
  animation: modal-fade-in 200ms ease-out both;
}

.floweditor_modal,
.floweditor_menu {
  position: fixed;
  background: rgba(249, 249, 249, 0.75);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  animation: modal-scale-in 200ms cubic-bezier(0.16, 1, 0.3, 1) both;
  box-shadow: 0 2px 4px rgba(31, 14, 14, 0.15);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1004;
  border-radius: 30px;
  backface-visibility: hidden;
  padding: 2rem;
  max-height: 90vh;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(65, 73, 154, 0.3) transparent;
}
.floweditor_modal::-webkit-scrollbar,
.floweditor_menu::-webkit-scrollbar {
  width: 4px;
}
.floweditor_modal::-webkit-scrollbar-track,
.floweditor_menu::-webkit-scrollbar-track {
  background: transparent;
}
.floweditor_modal::-webkit-scrollbar-thumb,
.floweditor_menu::-webkit-scrollbar-thumb {
  background: rgba(65, 73, 154, 0.3);
  border-radius: 4px;
}
.floweditor_modal::-webkit-scrollbar-thumb:hover,
.floweditor_menu::-webkit-scrollbar-thumb:hover {
  background: rgba(65, 73, 154, 0.5);
}

.floweditor_menu {
  padding: 1rem;
  border-radius: 1rem;
}

@media (max-width: 1000px) {
  .floweditor_menu,
  .floweditor_modal {
    left: 50% !important;
    top: 50% !important;
  }
}
.floweditor_modal-title {
  display: flex;
  align-items: center;
}
.floweditor_modal-title .icon-wrapper {
  margin-right: 15px;
}
.floweditor_modal-title .icon-wrapper .ts-rounded-border-small {
  background: #000;
  height: 35px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  border-radius: 0.225rem;
}
.floweditor_modal-title .icon-wrapper .ts-rounded-border-small i {
  color: #ffffff;
}

.floweditor_menu.-add-node {
  width: 370px;
}

.floweditor_modal.-translate-label {
  min-width: 500px;
}

.floweditor_modal.-template-manager {
  width: 80%;
  min-width: 1075px;
}

.floweditor_modal.-activities-manager {
  min-width: 500px;
}

.floweditor_modal.-conditions-manager {
  min-width: 950px;
}

.floweditor_modal.-node-options {
  min-width: 950px;
}

.floweditor_modal.-prompt {
  padding: 20px;
}

.floweditor_modal.-subflow-logic-and-rules,
.floweditor_modal.-action-node-options {
  width: 90%;
  max-width: 960px;
}
.floweditor_modal.-subflow-logic-and-rules .floweditor_modal-body,
.floweditor_modal.-action-node-options .floweditor_modal-body {
  overflow-y: auto;
  max-height: 80vh;
}

.floweditor_modal-header {
  border-bottom: 2px solid #31387a;
  font-size: 18px;
  /*margin: 15px 0;*/
  font-weight: 500;
  color: #333333;
  padding-bottom: 1rem;
  display: flex;
  align-items: center;
}
.floweditor_modal-header .fe-card {
  flex: 1;
  min-width: 0;
}
.floweditor_modal-header .ts-rounded {
  margin-right: 1rem;
}
.floweditor_modal-header .subtitle {
  display: block;
  font-weight: 400;
  font-size: 0.875rem;
}

.floweditor_modal-close {
  color: #000;
  opacity: 0.5;
  font-size: 18px;
  cursor: pointer;
  margin-left: auto;
}

.floweditor_modal-close:hover {
  color: #000;
  opacity: 0.75;
}

.floweditor_modal-close:before {
  font-family: "Material Design Icons";
  content: "\f0156";
}

.floweditor_modal-body {
  padding: 1rem;
}

.fe-header-color-picker {
  display: flex;
  align-items: center;
  margin-right: 1rem;
}

.fe-header-color-list {
  display: flex;
  align-items: center;
  gap: 6px;
}

.fe-header-color-input {
  display: none;
}

.fe-header-color-dot {
  display: block;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  cursor: pointer;
  border: 2px solid transparent;
  transition: transform 0.15s ease, border-color 0.15s ease;
}
.fe-header-color-dot:hover {
  transform: scale(1.2);
}

.fe-header-color-input:checked + .fe-header-color-dot {
  border-color: #fff;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.35);
  transform: scale(1.15);
}

.floweditor_modal-footer {
  display: flex;
  justify-content: flex-end;
  padding-top: 1rem;
}
.floweditor_modal-footer .btn:not(:first-child) {
  margin-left: 0.5rem;
}

.floweditor_modal-label {
  display: block;
  margin-bottom: 10px;
  position: relative;
}

.floweditor_modal-label.-error:after {
  font-family: "Material Design Icons";
  content: "\f0787";
  position: absolute;
  color: #e33244;
  right: 7px;
  font-size: 20px;
  top: 3px;
}

.floweditor_modal-error {
  display: none;
}

.floweditor_modal-label.-error .floweditor_modal-error {
  display: block;
  color: #df9292;
  font-style: italic;
  margin: 5px 0 0 20%;
}

.floweditor_modal-label.-error .floweditor_modal-input {
  border: 1px solid #df9292;
}

.floweditor_modal-label_text {
  float: left;
  width: 20%;
  margin: 6px 0 0;
}

.floweditor_modal-input {
  width: 80%;
}

input.floweditor_modal-separator-checkbox {
  float: left;
  margin-right: 5px;
}

.floweditor_modal-separator {
  margin: 10px 0 10px 0;
  font-weight: bold;
  display: block;
}

.floweditor_conditions-manager_list-holder {
  float: left;
  width: 45%;
  position: relative;
}

.floweditor_conditions-manager_list {
  border: 1px solid #e4e4e4;
  height: 400px;
  overflow-x: auto;
}

.floweditor_conditions-manager_list-loading {
  position: absolute;
  top: 75px;
  left: 1px;
  right: 1px;
  bottom: 1px;
  background-color: rgba(255, 255, 255, 0.8);
}

.floweditor_conditions-manager_list-spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #0ea57f;
  font-size: 24px;
}

.floweditor_conditions-manager_list-item {
  padding: 5px 10px;
}

.floweditor_conditions-manager_list-item.-selected {
  background: #1aae88;
  color: #fff;
}

.floweditor_conditions-manager_list-empty {
  padding: 5px 10px;
  font-style: italic;
  color: #a39f9f;
}

.floweditor_conditions-manager_list-search {
  display: block;
  margin: 10px 0;
}

.floweditor_conditions-manager_buttons {
  float: left;
  width: 10%;
  margin-top: 200px;
}

.floweditor_conditions-manager_button {
  float: left;
  margin: 0 0 15px 22px;
}

.floweditor_modal-separator.-clickable:hover {
  cursor: pointer;
  color: #158b6c;
}

.floweditor_menu-option-holder {
  max-height: 400px;
  overflow-x: auto;
}

.floweditor_menu-option {
  cursor: pointer;
  padding: 5px 10px;
  border-radius: 0.25rem;
  flex: 0 0 50%;
  display: flex;
  align-items: center;
}
.floweditor_menu-option#menu-node-type-10 .floweditor_menu-icon {
  color: #f5605a;
}
.floweditor_menu-option#menu-node-type-14 .floweditor_menu-icon {
  color: #4cb8ab;
}
.floweditor_menu-option#menu-node-type-15 .floweditor_menu-icon {
  color: #f6a855;
}
.floweditor_menu-option#menu-node-type-16 .floweditor_menu-icon {
  color: #f14167;
}

.floweditor_menu-option:hover,
.floweditor_menu-option.active {
  background: #eeeeee;
}

.floweditor_menu-icon {
  font-family: "Material Design Icons";
  font-size: 24px;
  float: left;
  margin-right: 10px;
}

.floweditor_menu-label {
  padding: 10px;
  font-weight: bold;
}

.floweditor_menu_input-holder {
  position: relative;
  margin-bottom: 10px;
}

.floweditor_menu_input-holder.-error:after {
  font-family: "Material Design Icons";
  content: "\f0787";
  position: absolute;
  color: #e33244;
  right: 7px;
  font-size: 20px;
  top: 3px;
}

.floweditor_menu_input {
  display: block;
  width: 100%;
}

.floweditor_menu_input-holder.-error .floweditor_menu_input {
  border: 1px solid #df9292;
}

.floweditor_menu_input-error-message {
  color: #df9292;
  font-style: italic;
  display: none;
}

.floweditor_menu_input-holder.-error .floweditor_menu_input-error-message {
  display: block;
}

.floweditor_menu-header {
  background-color: #5c82ed;
  color: #fff;
  border-radius: 0.25rem;
  padding: 8px 15px;
  text-align: center;
  position: relative;
}
.nodebar .floweditor_menu-header {
  width: 222px;
  margin-top: 0.5rem;
}
.floweditor_menu-header.header-collapse {
  cursor: pointer;
}
.floweditor_menu-header.header-collapse::after {
  content: "\f0d7";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  float: right;
}
.floweditor_menu-header.header-collapse.collapsed::after {
  content: "\f0d8";
}

.floweditor_menu-subheader {
  padding: 8px 15px;
  text-align: center;
  border-top: 1px solid #ababab;
  border-bottom: 1px solid #ababab;
}

.floweditor_menu-holder {
  padding: 8px 0;
}

.floweditor_menu-templates-options {
  margin: 10px 0;
  width: 550px;
  border-bottom: 1px solid #ccc;
  padding-bottom: 5px;
}

.floweditor_menu-templates-options:after {
  content: "";
  clear: both;
  display: block;
}

.floweditor_menu-label-templates {
  float: left;
  margin-right: 10px;
  font-weight: bold;
  padding-top: 7px;
}

.floweditor_menu-label-input {
  float: left;
  width: auto;
  padding: 3px 6px;
  font-size: 12px;
  margin-right: 20px;
}

.floweditor_menu-radio {
  float: left;
  margin: 7px 5px 0 10px;
}

.floweditor_menu-radio-input {
  float: left;
  margin: 2px 5px 0 10px;
}

.floweditor_menu-loading,
.floweditor_menu-empty {
  font-style: italic;
  padding: 10px 0;
}

.floweditor_menu-loader {
  color: #0ea57f;
}

.floweditor-toolbar-label-holder {
  position: relative;
  width: 100%;
  margin-right: 10px;
}

.floweditor-toolbar-label-holder.-error:after {
  font-family: "Material Design Icons";
  content: "\f0787";
  position: absolute;
  color: #e33244;
  right: 7px;
  font-size: 20px;
  top: 3px;
}

.floweditor-toolbar-label-input {
  width: 100%;
  max-height: 220px;
}

.floweditor-toolbar-label-holder.-error .floweditor-toolbar-label-input {
  border: 1px solid #df9292;
}

.floweditor-toolbar-label-button {
  float: left;
  width: 25%;
}

.floweditor-toolbar-label-error-message {
  color: #df9292;
  font-style: italic;
  float: left;
  clear: both;
  margin: 0 0 10px 0;
}

.floweditor-toolbar-translate-link {
  color: #3f469c;
  cursor: pointer;
  margin: 0 0 10px 0;
  float: left;
  clear: both;
  font-weight: 500;
}

.floweditor-toolbar-translate-link:hover {
  color: #2d336f;
}

.floweditor-toolbar-translate-link.-error {
  color: #df9292;
}

.floweditor-toolbar-translate-link.-error:hover {
  color: #e33244;
}

.floweditor-toolbar-translate-link.-error:before {
  content: "\f02fc";
  color: #e33244;
}

.floweditor_activities-manager_search-holder {
  margin-bottom: 15px;
}

.floweditor_activities-manager_search-loading {
  font-style: italic;
}

.floweditor_activities-manager_search-spinner {
  color: #0ea57f;
}

.fe-section {
  clear: both;
  border-bottom: 2px solid #31387a;
  padding: 2.5em 0 2em;
}
.fe-section.no-border {
  border: none;
}
.fe-section:last-child {
  border-bottom: 0;
}

.fe-section-header {
  background-color: #5a5a5a;
  color: #fff;
  padding: 0.5rem 1rem;
  font-weight: 400;
  display: flex;
  align-items: center;
  margin-top: 0.5rem;
}

.fe-item-text:after,
.fe-item-text:before {
  font-family: "Material Design Icons";
  float: left;
  font-size: 17px;
  margin: -2px 5px 0 0;
  font-style: normal;
}

.fe-item-text.-smile-tevreden:before {
  color: #9ab498;
  content: "\f01f5";
}

.fe-item-text.-smile-ontevreden:before {
  color: #df9292;
  content: "\f01f8";
}

.fe-item-text.-smile-zeer-tevreden:before {
  color: #9ab498;
  content: "\f01f2";
}

.fe-item-text.-smile-zeer-ontevreden:before {
  color: #df9292;
  content: "\f0c6a";
}

.fe-item-text.-smile-neutraal:before {
  color: #df9292;
  content: "\f01f6";
}

.fe-item-text.-yes-node:before {
  color: #9ab498;
  content: "\f0513";
}

.fe-item-text.-no-node:before {
  color: #df9292;
  content: "\f0511";
}

.fe-item-text.-empty {
  color: #df9292;
}

.fe-item-text.-empty:after {
  content: "\f02fc";
  color: #e33244;
}

.fe-item-actions-icon {
  float: left;
  cursor: pointer;
  font-size: 22px;
  color: #3c4144;
  margin-left: 5px;
}

.fe-item-actions-icon:hover {
  color: #181a1c;
}

.fe-item-actions-icon-sed {
  float: left;
  cursor: pointer;
  font-size: 18px;
  color: #3c4144;
  margin: 5px 0px 5px 5px;
}

.fe-item-actions-icon-sed:hover {
  color: #181a1c;
}

.fe-item-actions-icon:before {
  font-family: "Material Design Icons";
}

.fe-item-actions-icon.-add-datapoint:before {
  content: "\f0419";
}

.fe-item-actions-icon.-remove-datapoint:before {
  content: "\f0377";
}

.fe-item-actions-icon.-unlink-link {
  color: #f87070;
}

.fe-item-actions-icon.-unlink-link:hover {
  color: #e33244;
}

.fe-item-actions-icon.-unlink-node:before {
  content: "\f033a";
}

.fe-item-actions-icon.-link-link {
  color: #3f469c;
}

.fe-item-actions-icon.-link-link:hover {
  color: #2d3371;
}

.fe-item-actions-icon.-link-node:before {
  content: "\f0339";
}

.fe-item-actions-icon.-remove-link {
  color: #3f469c;
}

.fe-item-actions-icon.-remove-link:hover {
  color: #2d3371;
}

.fe-item-actions-icon.-remove-link:before {
  content: "\f0a7a";
}

.fe-create-datapoint-holder {
  padding: 10px 0;
}

.fe-datapoints-list {
  position: fixed;
  margin: 0 !important;
  padding: 4px 0 !important;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(20, 25, 80, 0.18), 0 0 0 1px rgba(64, 73, 154, 0.12);
  max-height: 220px;
  overflow-y: auto;
  z-index: 9200;
}

.fe-add-datapoint {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 12px;
  margin: 0 4px;
  border-radius: 6px;
  background: transparent;
  font-weight: normal;
  cursor: pointer;
  border-bottom: 1px solid #f0f1f8;
}
.fe-add-datapoint:last-child {
  border-bottom: none;
}
.fe-add-datapoint:hover {
  background: #f0f1f8;
}

.fe-dp-label {
  font-size: 13px;
  color: #2a2e5e;
  line-height: 1.3;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fe-dp-type {
  font-size: 11px;
  color: #8890b8;
  white-space: nowrap;
  flex-shrink: 0;
}

.fe-tab {
  font-size: 25px;
  padding: 10px 15px;
  color: rgba(0, 0, 0, 0.5);
  cursor: pointer;
}

.fe-tab:hover {
  color: #0ea57f;
}

.fe-save-methods {
  margin-bottom: 15px;
}

.fe-delete-template {
  font-family: "Material Design Icons";
  font-size: 18px;
  color: #e33244;
  float: right;
  cursor: pointer;
}

.fe-delete-template:hover {
  color: #843534;
}

.fe-delete-template:before {
  content: "\f1c0";
}

.fe-node-icon {
  font-family: "Material Design Icons";
  float: left;
  width: 44px;
  height: 44px;
  position: relative;
  border-radius: 0.625rem;
  box-sizing: border-box;
  font-size: 24px;
  color: #ffffff;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 15px;
}

.fe-versions {
  display: none;
  position: absolute;
  top: 15px;
  left: 15px;
  z-index: 10;
  padding: 7px 5px;
  background: #ffffff;
}

/*.fe-versions-text,
.fe-versions-item {
    float: left;
    font-size: 12px;
    padding: 7px 5px;
}*/
/*.fe-versions-text {
    padding: 7px 0 7px 10px;
}*/
.ts-editor-big-btn {
  /*line-height: 50px;*/
}

.fe-versions-text {
  font-size: 12px;
  padding: 0 15px;
  font-weight: 400;
}

.fe-versions-item:not(.-active) {
  cursor: pointer;
  text-decoration: underline;
  color: #1aae88;
}

.fe-versions-item:not(.-active):hover {
  color: #158b6c;
}

.fe-versions-item.-active {
  font-weight: bold;
}

.fe-versions-activate {
  float: right;
  margin-left: 10px;
}

.fe-versions-select {
  float: left;
  padding: 5px;
  font-size: 12px;
  width: 40px;
  margin: 0 0 0 10px;
  height: auto;
}

.fe-properties-errors {
  color: #df9292;
  margin-bottom: 10px;
}

.fe-properties-error:before {
  font-family: "Material Design Icons";
  content: "\f2fc";
  float: left;
  font-size: 17px;
  margin: -2px 5px 0 0;
  color: #e33244;
}

.fe-properties-image {
  width: 100%;
  margin: 5px 0 10px;
  border: 1px solid #cbd5dd;
}

.fe-modal {
  position: relative;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  width: 100%;
  height: 50vh;
}
.fe-modal .modal-dialog {
  background: #fff;
  border-radius: 8px;
  margin: 0px;
  width: 100%;
  max-width: 100%;
}
.fe-modal .modal-dialog .cropper-crop-box, .fe-modal .modal-dialog .cropper-view-box {
  border-radius: 15px;
  outline: 0;
}
.fe-modal .modal-dialog .cropper-line, .fe-modal .modal-dialog .cropper-point, .fe-modal .modal-dialog .cropper-face {
  background-color: transparent;
}

.fe-properties-no-meta {
  margin: 5px 0 10px;
  color: #df9292;
}

.fe-properties-no-meta:before {
  font-family: "Material Design Icons";
  content: "\f2fc";
  color: #e33244;
  float: left;
  font-size: 17px;
  margin: -2px 5px 0 0;
}

textarea.fe-properties-textarea {
  width: 100%;
  display: block;
  margin: 10px 0;
  height: 150px;
}

/*
Marx's stuff
 */
.floweditor_modal-button {
  float: left;
  margin: 10px 0 0 0;
  width: calc(50% - 5px);
}

.floweditor_modal-button-100 {
  float: left;
  margin: 10px 0 0 0;
  width: 100%;
}

.floweditor_modal-button.-yes {
  margin-right: 10px;
}

.floweditor-toolbar .fe-add-margin-10 {
  margin: 1em;
}

.floweditor-toolbar .fe-add-margin-12 {
  margin: 1.2em;
}

.floweditor-toolbar .fe-add-margin-15 {
  margin: 1.5em;
}

.floweditor-toolbar .fe-add-margin-20 {
  margin: 2em;
}

.floweditor-toolbar .fe-add-padding-12 {
  padding: 1.2em;
}

.floweditor-modal .fe-m-content {
  box-shadow: 0px 0px 60px 10px rgba(0, 0, 0, 0.3);
}

#fe-working-target {
  margin-left: auto;
  display: flex;
  align-items: center;
}

.fe-working-indicator {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 4px 12px 4px 8px;
  background: rgba(65, 73, 154, 0.82);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 20px;
  color: #fff;
  font-size: 12px;
  font-family: "Inter", system-ui, sans-serif;
  font-weight: 500;
  pointer-events: none;
  white-space: nowrap;
}
.fe-working-indicator .mdi {
  font-size: 14px;
  line-height: 1;
}

.fe-working-fade-enter-active,
.fe-working-fade-leave-active {
  transition: opacity 180ms ease, transform 180ms ease;
}

.fe-working-fade-enter,
.fe-working-fade-enter-from,
.fe-working-fade-leave-to {
  opacity: 0;
  transform: translateY(-6px);
}

.floweditor-controls {
  position: absolute;
  bottom: 15px;
  left: 15px;
  width: 150px;
  display: flex;
  justify-content: space-between;
}

.floweditor-controls .floweditor-zoom {
  display: flex;
  margin-right: 15px;
}

.floweditor-status {
  position: absolute;
  top: 15px;
  left: 15px;
  display: flex;
}

.floweditor-status p {
  font-size: 24px;
  color: #676767;
  margin: 0;
}

body {
  transition: margin-right 240ms cubic-bezier(0.4, 0, 0.2, 1);
}

body.fe-tp-open {
  margin-right: 420px;
}

.floweditor {
  position: relative;
  width: 100%;
  height: 100%;
}

.floweditor .form-control {
  border-radius: 0.625rem;
  padding: 0.75rem 0.8rem;
  height: auto;
}

.floweditor-canvas {
  background: #e6e9ff;
  position: relative;
  width: 100%;
  height: 100%;
}

.floweditor-publish {
  position: relative;
}
.floweditor-publish .floweditor-canvas {
  background: #e6e9ff;
}
.floweditor-publish .floweditor-buttons {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  padding: 1rem;
}

.floweditor-toolbar.nodebar {
  position: absolute;
  top: 1em;
  left: 1em;
  z-index: 10;
  zoom: 80%;
}
.floweditor-toolbar.toolbar {
  position: absolute;
  top: 1em;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  zoom: 80%;
}

.floweditor-toolbar.toolbar .toolbar_menu-wrapper {
  max-width: none;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu {
  background: rgba(65, 73, 154, 0.55);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  padding: 0.5em;
  border-radius: 1em;
  display: flex;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .toolbar_sub_menu {
  display: flex;
  gap: 0.2em;
  border-right: 1px #dfe2fb solid;
  padding: 0 0.75em;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .toolbar_sub_menu:last-child {
  border-right: none;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .menu-item {
  display: flex;
  gap: 1em;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .menu-button {
  border-radius: 1em;
  color: #fff;
  padding: 0.5em 1em;
  background: #3b257a;
  cursor: pointer;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .menu-button.button-icon {
  font-size: 1.6em;
  padding: 0em 0.25em;
  background: transparent;
  line-height: 1.5em;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .menu-button:hover {
  background: #1f205c;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-version-item {
  position: relative;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-version-item.fe-version-item--dirty::after {
  content: "";
  position: absolute;
  top: -4px;
  right: -4px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #f59e0b;
  animation: fe-publish-pulse 2s ease-in-out infinite;
  pointer-events: none;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap {
  display: flex;
  align-items: center;
  align-self: center;
  gap: 4px;
  border-radius: 20px;
  padding: 0 4px;
  height: 1.5em;
  width: 1.6em;
  overflow: hidden;
  cursor: pointer;
  background: transparent;
  border: 1px solid transparent;
  transition: width 240ms cubic-bezier(0.4, 0, 0.2, 1), background 200ms ease, border-color 200ms ease;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap--active {
  width: 210px;
  height: 30px;
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.3);
  cursor: default;
  padding: 0 8px 0 6px;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap .fe-search-input,
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap .fe-search-close {
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms ease 80ms;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap--active .fe-search-input, .floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap--active .fe-search-close {
  opacity: 1;
  pointer-events: auto;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap .fe-search-icon {
  color: #fff !important;
  font-size: 1.6em;
  flex-shrink: 0;
  line-height: 1;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap--active .fe-search-icon {
  font-size: 1.1em;
  color: rgba(255, 255, 255, 0.75) !important;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap .fe-search-input {
  background: transparent !important;
  border: none !important;
  outline: none !important;
  color: #fff !important;
  font-size: 0.85em;
  width: 100%;
  min-width: 0;
  padding: 0;
  box-shadow: none !important;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap .fe-search-input::placeholder {
  color: rgba(255, 255, 255, 0.5) !important;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap .fe-search-close {
  color: rgba(255, 255, 255, 0.65) !important;
  cursor: pointer;
  display: flex;
  align-items: center;
  flex-shrink: 0;
  line-height: 1;
  text-decoration: none !important;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap .fe-search-close .mdi {
  color: rgba(255, 255, 255, 0.65) !important;
  font-size: 1em;
  line-height: 1;
}
.floweditor-toolbar.toolbar .toolbar_menu-wrapper .toolbar_menu .fe-search-wrap .fe-search-close:hover .mdi {
  color: #fff !important;
}

.floweditor-toolbar-v2 {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 10;
  zoom: 80%;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.glass2 {
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(14px) saturate(1.4);
  -webkit-backdrop-filter: blur(14px) saturate(1.4);
  border: 1px solid rgba(255, 255, 255, 0.6);
  box-shadow: 0 12px 30px rgba(38, 42, 92, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.5);
  border-radius: 999px;
  pointer-events: auto;
}

.fe2-toprow {
  /* Breedte waarover de zoom-extra's uitschuiven. ⚠️ MOET meegroeien met het
     aantal knoppen erin: de groep heeft `overflow: hidden`, dus wat niet past
     verdwijnt ZONDER spoor — geen scrollbar, geen foutmelding. Gemeten
     2026-08-08 nadat de twee exportknoppen erbij kwamen: 5 knoppen van 32 px
     met 4 tussenruimtes van 3 px = 172 px nodig, en op 129 px waren de laatste
     twee simpelweg onzichtbaar (melding Jan: "ik zie de knop nergens"). Exact
     172 was nog te krap — op de subpixel viel de laatste er net buiten — dus
     een paar pixels lucht.
     ⚠️ Deze partial komt in TWEE stylesheets terecht (style.css én style-v1.css)
     en de flow editor laadt ze BEIDE, met style-v1.css als laatste. Alleen
     `gulp sass` draaien verandert dus niets zichtbaars: `gulp sass-v1` moet er
     ook langs. Dat kostte hier een ronde.
     Zelfde variabele stuurt ook de tegen-verschuiving die de knoppen onder de
     cursor houdt, dus die blijft automatisch kloppen. */
  --fe2-zoom-extra-w: 180px;
  position: absolute;
  top: 1em;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 14px;
  transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1);
}

.fe2-toprow:has(.fe2-zoom:hover),
.fe2-toprow:has(.fe2-zoom:focus-within) {
  transform: translateX(calc(-50% - var(--fe2-zoom-extra-w) / 2));
}

.fe2-barwrap {
  position: relative;
  pointer-events: none;
}

.fe2-bar {
  display: flex;
  align-items: center;
  gap: 3px;
  padding: 8px;
}

.fe2-divider {
  width: 1px;
  height: 26px;
  background: rgba(38, 42, 92, 0.14);
  margin: 0 7px;
  flex: 0 0 auto;
}

.fe2-icon-btn {
  width: 40px;
  height: 40px;
  min-width: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #52579c;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 120ms ease, color 120ms ease;
  flex: 0 0 auto;
}
.fe2-icon-btn .mdi {
  font-size: 22px;
  line-height: 1;
}
.fe2-icon-btn:hover {
  background: rgba(65, 73, 154, 0.1);
  color: #2f3570;
}

.fe2-icon-btn--disabled {
  opacity: 0.35;
  pointer-events: none;
}

.fe2-icon-btn--labelled {
  width: auto;
  min-width: 0;
  border-radius: 999px;
  padding: 0 14px 0 10px;
  gap: 7px;
}

.fe2-btn-label {
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}

.fe2-zoom {
  display: flex;
  align-items: center;
  gap: 3px;
  pointer-events: auto;
}

.fe2-zoom-core {
  display: flex;
  align-items: center;
  gap: 3px;
  flex: 0 0 auto;
}

.fe2-zoom-pct {
  font-size: 14px;
  font-weight: 700;
  color: #41499a;
  font-variant-numeric: tabular-nums;
  user-select: none;
  min-width: 42px;
  text-align: center;
  flex: 0 0 auto;
}

.fe2-zoom-extra {
  display: flex;
  align-items: center;
  gap: 3px;
  opacity: 0;
  width: 0;
  overflow: hidden;
  transition: opacity 140ms ease 60ms, width 220ms cubic-bezier(0.4, 0, 0.2, 1);
}

.fe2-zoom:hover .fe2-zoom-extra,
.fe2-zoom:focus-within .fe2-zoom-extra {
  opacity: 1;
  width: var(--fe2-zoom-extra-w);
}

.fe2-play {
  position: relative;
  overflow: hidden;
  width: 52px;
  height: 52px;
  min-width: 52px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #1e1f20;
  cursor: pointer;
  text-decoration: none;
  pointer-events: auto;
  flex: 0 0 auto;
  transition: background-color 140ms ease, transform 100ms ease;
}
.fe2-play .mdi {
  font-size: 26px;
  line-height: 1;
  margin-left: 2px;
  position: relative;
  z-index: 1;
}
.fe2-play:active {
  transform: scale(0.94);
}
.fe2-play--loading {
  pointer-events: none;
}
.fe2-play::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, rgba(108, 92, 231, 0) 38%, rgba(108, 92, 231, 0.3) 50%, rgba(108, 92, 231, 0) 62%);
  transform: translateX(-130%);
  animation: fe2-play-shimmer 9s ease-in-out infinite;
  pointer-events: none;
}

@keyframes fe2-play-shimmer {
  0%, 88% {
    transform: translateX(-130%);
  }
  100% {
    transform: translateX(130%);
  }
}
.fe2-play::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 2px;
  background: conic-gradient(from var(--fe2-beam-angle), transparent 0deg, transparent 250deg, rgba(70, 82, 243, 0.95) 305deg, #b9c0f7 335deg, transparent 360deg);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  pointer-events: none;
  opacity: 0;
  transition: opacity 160ms ease;
  z-index: 0;
}

.fe2-play:hover::before,
.fe2-play:focus-visible::before {
  opacity: 1;
  animation: fe2-play-beam 1.6s linear infinite;
}

@keyframes fe2-play-beam {
  to {
    --fe2-beam-angle: 360deg;
  }
}
.fe2-context {
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  padding: 5px;
  pointer-events: auto;
  animation: fe2-context-in 160ms ease-out;
}

@keyframes fe2-context-in {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}
.fe2-context-btn {
  display: flex;
  align-items: center;
  gap: 7px;
  height: 34px;
  padding: 0 14px 0 11px;
  border-radius: 999px;
  color: #c0392b;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 120ms ease, color 120ms ease;
}
.fe2-context-btn .mdi {
  font-size: 19px;
  line-height: 1;
}
.fe2-context-btn:hover {
  background: rgba(192, 57, 43, 0.1);
  color: #96281b;
}

.fe2-duplicate-hint {
  position: absolute;
  top: 115px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 60;
  display: flex;
  align-items: center;
  gap: 8px;
  max-width: min(520px, 100% - 32px);
  padding: 9px 16px;
  border-radius: var(--r-pill, 999px);
  background: var(--c-bg-card, #fff);
  color: var(--c-text-body, #14151a);
  font-size: 13px;
  line-height: 1.35;
  box-shadow: 0 8px 24px rgba(20, 25, 80, 0.18), 0 2px 6px rgba(20, 25, 80, 0.1);
  pointer-events: none;
}
.fe2-duplicate-hint .mdi {
  font-size: 18px;
  line-height: 1;
  color: var(--c-brand-purple, #40499a);
}

.fe2-context-btn--duplicate {
  color: var(--c-brand-purple, #40499a);
}
.fe2-context-btn--duplicate:hover {
  background: rgba(64, 73, 154, 0.1);
  color: var(--c-brand-purple, #40499a);
}

.fe2-context-btn--duplicate.fe2-context-btn--active {
  background: rgba(64, 73, 154, 0.14);
  color: var(--c-brand-purple, #40499a);
}

.fe2-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  padding-right: 4px;
}

.fe2-header-item {
  display: inline-flex;
}

.fe2-inline-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #f59e0b;
  flex: 0 0 auto;
  animation: fe-publish-pulse 2s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .fe2-inline-dot {
    animation: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .fe2-zoom-extra, .fe2-play, .fe2-context {
    transition: none;
    animation: none;
  }
  .fe2-play::after {
    animation: none;
    opacity: 0;
  }
}
.fe2-search-item {
  display: flex;
  align-items: center;
}

.fe2-bar .fe-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
  gap: 4px;
  border-radius: 22px;
  padding: 0 4px;
  height: 40px;
  width: 40px;
  overflow: hidden;
  cursor: pointer;
  background: transparent;
  border: 1px solid transparent;
  transition: width 240ms cubic-bezier(0.4, 0, 0.2, 1), background 200ms ease, border-color 200ms ease;
}
.fe2-bar .fe-search-wrap:not(.fe-search-wrap--active):hover {
  background: rgba(65, 73, 154, 0.1);
}
.fe2-bar .fe-search-wrap:not(.fe-search-wrap--active):hover .fe-search-icon {
  color: #2f3570 !important;
}
.fe2-bar .fe-search-wrap:not(.fe-search-wrap--active) .fe-search-icon {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.fe2-bar .fe-search-wrap--active {
  width: 220px;
  background: rgba(65, 73, 154, 0.08);
  border-color: rgba(65, 73, 154, 0.2);
  cursor: default;
  padding: 0 10px 0 8px;
}
.fe2-bar .fe-search-wrap .fe-search-input, .fe2-bar .fe-search-wrap .fe-search-close {
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms ease 80ms;
}
.fe2-bar .fe-search-wrap--active .fe-search-input, .fe2-bar .fe-search-wrap--active .fe-search-close {
  opacity: 1;
  pointer-events: auto;
}
.fe2-bar .fe-search-wrap .fe-search-icon {
  color: #1e1f20 !important;
  font-size: 22px;
  flex-shrink: 0;
  line-height: 1;
}
.fe2-bar .fe-search-wrap--active .fe-search-icon {
  font-size: 17px;
  color: #6d72a8 !important;
}
.fe2-bar .fe-search-wrap .fe-search-input {
  background: transparent !important;
  border: none !important;
  outline: none !important;
  color: #262a5c !important;
  font-size: 14px;
  width: 100%;
  min-width: 0;
  padding: 0;
  box-shadow: none !important;
}
.fe2-bar .fe-search-wrap .fe-search-input::placeholder {
  color: rgba(38, 42, 92, 0.4) !important;
}
.fe2-bar .fe-search-wrap .fe-search-close {
  cursor: pointer;
  display: flex;
  align-items: center;
  flex-shrink: 0;
  line-height: 1;
  text-decoration: none !important;
}
.fe2-bar .fe-search-wrap .fe-search-close .mdi {
  color: rgba(38, 42, 92, 0.45) !important;
  font-size: 15px;
  line-height: 1;
}
.fe2-bar .fe-search-wrap .fe-search-close:hover .mdi {
  color: #2f3570 !important;
}
.fe2-bar .fe-translate-btn--active {
  background: rgba(65, 73, 154, 0.14);
  color: #2f3570 !important;
}
.fe2-bar .fe-translate-btn--incomplete::after {
  top: 2px;
  right: 4px;
}
.fe2-bar .fe-preview-toolbar-btn {
  color: #52579c;
  opacity: 1;
}
.fe2-bar .fe-preview-toolbar-btn:hover {
  color: #2f3570;
  background: rgba(65, 73, 154, 0.1);
}
.fe2-bar .qdnapro-button.button-on-purple {
  color: #41499a !important;
}
.fe2-bar .qdnapro-button.button-on-purple:hover:not(.button-disabled),
.fe2-bar .qdnapro-button.button-on-purple:active:not(.button-disabled) {
  background: rgba(65, 73, 154, 0.1) !important;
}
.fe2-bar .qdnapro-button.button-on-purple-solid:not(.button-disabled) {
  background: #41499a !important;
}
.fe2-bar .qdnapro-button.button-on-purple-solid:hover:not(.button-disabled),
.fe2-bar .qdnapro-button.button-on-purple-solid:active:not(.button-disabled) {
  background: #2f3570 !important;
}
.fe2-bar .qdnapro-button.button-disabled {
  background: transparent !important;
  color: rgba(38, 42, 92, 0.36) !important;
  border: 1.5px solid rgba(38, 42, 92, 0.18) !important;
}

.floweditor-toolbar .nodebar_menu-wrapper {
  display: flex;
}

@keyframes nodebar-slide-in {
  from {
    opacity: 0;
    transform: translateX(-10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes modal-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes modal-scale-in {
  from {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
}
.floweditor-toolbar .nodebar_menu {
  font-size: 0.8em;
}
.floweditor-toolbar .nodebar_menu.primary-menu {
  color: #fff;
  max-width: 220px;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1em;
  overflow: hidden;
}
.floweditor-toolbar .nodebar_menu.primary-menu .nodebar_menu-item {
  cursor: pointer;
  background: rgba(65, 73, 154, 0.55);
}
.floweditor-toolbar .nodebar_menu.primary-menu .nodebar_menu-item:first-child {
  border-radius: 1em 1em 0 0;
}
.floweditor-toolbar .nodebar_menu.primary-menu .nodebar_menu-item:last-child {
  border-radius: 0 0 1em 1em;
}
.floweditor-toolbar .nodebar_menu.primary-menu .nodebar_menu-item:hover, .floweditor-toolbar .nodebar_menu.primary-menu .nodebar_menu-item.active {
  background: rgba(59, 37, 122, 0.7);
}
.floweditor-toolbar .nodebar_menu.primary-menu .nodebar_menu-item:active {
  background: rgba(31, 32, 92, 0.8);
}
.floweditor-toolbar .nodebar_menu.secondary-menu {
  color: #41499a;
  font-weight: bold;
  display: none;
  max-height: 60vh;
  overflow-y: scroll;
  margin-left: -20px;
  scrollbar-width: thin;
  scrollbar-color: rgba(65, 73, 154, 0.3) transparent;
}
.floweditor-toolbar .nodebar_menu.secondary-menu::-webkit-scrollbar {
  width: 4px;
}
.floweditor-toolbar .nodebar_menu.secondary-menu::-webkit-scrollbar-track {
  background: transparent;
}
.floweditor-toolbar .nodebar_menu.secondary-menu::-webkit-scrollbar-thumb {
  background: rgba(65, 73, 154, 0.3);
  border-radius: 4px;
}
.floweditor-toolbar .nodebar_menu.secondary-menu::-webkit-scrollbar-thumb:hover {
  background: rgba(65, 73, 154, 0.5);
}
.floweditor-toolbar .nodebar_menu.secondary-menu {
  border-radius: 0 1em 1em 1em;
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 4px 24px rgba(65, 73, 154, 0.12);
}
.floweditor-toolbar .nodebar_menu.secondary-menu.active {
  display: block;
  animation: nodebar-slide-in 180ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
.floweditor-toolbar .nodebar_menu.secondary-menu .nodebar_menu-item {
  cursor: move;
  background: transparent;
}
.floweditor-toolbar .nodebar_menu.secondary-menu .nodebar_menu-item:first-child {
  border-radius: 0 1em 0 0;
}
.floweditor-toolbar .nodebar_menu.secondary-menu .nodebar_menu-item:last-child {
  border-radius: 0 0 1em 1em;
}
.floweditor-toolbar .nodebar_menu.secondary-menu .nodebar_menu-item:hover, .floweditor-toolbar .nodebar_menu.secondary-menu .nodebar_menu-item.active {
  background: rgba(235, 235, 235, 0.7);
}
.floweditor-toolbar .nodebar_menu .nodebar_menu-item {
  padding: 0.75em 1em;
  display: flex;
  align-items: center;
  gap: 0.75em;
  width: 100%;
  font-weight: 500;
  -webkit-user-select: none;
  user-select: none;
}
.floweditor-toolbar .nodebar_menu .nodebar_menu-item.option {
  background: rgba(59, 37, 122, 0.65);
  border-bottom: 1px rgba(31, 32, 92, 0.6) solid;
  padding: 0em 1em;
}
.floweditor-toolbar .nodebar_menu .nodebar_menu-item.option .nodebar_menu-icon {
  font-family: "Material Design Icons";
  font-size: 18px;
  font-size: #939acd;
}
.floweditor-toolbar .nodebar_menu .nodebar_menu-item.option .nodebar_menu-icon .mdi {
  margin-right: -10px;
}
.floweditor-toolbar .nodebar_menu .nodebar_menu-icon {
  font-family: "Material Design Icons";
  font-size: 18px;
}

.floweditor-toolbar.nodebar.minimized .primary-menu .nodebar_menu-item span.nodebar_menu-title {
  display: none;
}
.floweditor-toolbar.nodebar.minimized .secondary-menu {
  margin-left: 0px;
}

.floweditor-toolbar .fe-tabs {
  flex-basis: 50px;
  border-left: 1px solid #efefef;
  background-color: #fafafa;
}

.floweditor-toolbar .fe-tabs .fe-wrapper {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  /*height: 100vh;*/
  height: 100%;
}

.floweditor-toolbar .fe-tabs .fe-wrapper ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.floweditor-toolbar .fe-tabs .fe-wrapper ul:first-child {
  margin-top: 65px;
}

.floweditor-toolbar .fe-tabs .fe-wrapper ul:last-child {
  margin-bottom: 10px;
}

.floweditor-toolbar .fe-right {
  flex-basis: 100%;
  /*height: 100vh;*/
  height: 100%;
  overflow-x: scroll;
  color: #66584e;
}

.floweditor-toolbar .fe-right .fe-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  /*height: 100vh;*/
  height: 100%;
}

.floweditor-toolbar .fe-right .fe-empty p {
  font-weight: 400;
  font-size: 18px;
  color: rgba(0, 0, 0, 0.4);
  text-align: center;
}

.floweditor-toolbar .fe-right .fe-empty p i {
  font-size: 40px;
  display: block;
}

.floweditor-toolbar .fe-node-frame {
  border-radius: 8px;
  background-color: #f7f7f7;
  box-shadow: 0 2px 4px rgba(31, 14, 14, 0.15);
  width: 50%;
  padding: 15px 10px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 400;
  color: #777;
}
.floweditor-toolbar .fe-node-frame .ts-rounded {
  background-color: #c5c5c5;
  color: #fff;
  margin-bottom: 0.5rem;
  border-radius: 0.375rem;
  width: 44px;
  height: 44px;
}
.floweditor-toolbar .fe-node-type {
  color: #acacac;
  font-size: 12px;
  margin-top: 0.5rem;
}

.floweditor-toolbar .fe-right .fe-wrapper {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  /*height: 100vh;*/
  height: 100%;
}

.floweditor-toolbar .fe-right .fe-wrapper footer {
  border-top: 1px solid #eaeaea;
}

.floweditor-toolbar .fe-right .fe-wrapper footer .fe-card-body {
  display: block;
}

.floweditor-toolbar .fe-section-wrapper {
  display: flex;
  flex-grow: 1;
}
.floweditor-toolbar .fe-section-wrapper > .fe-right {
  overflow-x: visible;
}

.floweditor-toolbar .fe-section .fe-card-body {
  display: none;
}

.floweditor-toolbar .fe-section.fe-open .fe-card-body {
  display: block;
  min-height: 34px;
}

.floweditor-toolbar .fe-section .fe-card-body i {
  font-size: 18px;
}

.floweditor-toolbar .fe-section .fe-card-body .fe-card-action-bar {
  display: flex;
  justify-content: space-between;
  flex-wrap: nowrap;
  align-items: center;
  border-bottom: 1px solid #eaeaea;
  padding-bottom: 10px;
}

.floweditor-toolbar .fe-section .fe-card-body .fe-card-overlay {
  padding: 0 12px;
  box-shadow: 0px 5px 50px 2px rgba(0, 0, 0, 0.1);
}

.floweditor-toolbar .fe-section .fe-card-body .fe-card-overlay .fe-title {
  background: none;
  padding-left: 0;
  padding-right: 0;
  font-size: 14px;
  border-top: none;
  border-bottom: none;
}

.floweditor-toolbar .fe-section .fe-card-body .fe-card-overlay .fe-title i {
  font-size: 14px;
}

.floweditor-toolbar .fe-section ul {
  list-style: none;
  margin: 1em 0 0 0;
  padding: 0;
  /*overflow-y: auto;
  overflow-x: hidden;
  max-height: 223px;*/
  -moz-user-select: none;
}

.floweditor-toolbar .fe-section .fe-card-body ul li {
  padding-bottom: 1em;
  padding-right: 1.5rem;
}

.floweditor-toolbar .fe-section .fe-card-body ul li span.fe-item-subtext {
  display: block;
}

.floweditor-toolbar .fe-section .fe-tab-title,
.floweditor-toolbar .fe-section .fe-title {
  padding: 0.8em 1.2em;
  letter-spacing: 0.2px;
  color: #636363;
}

.floweditor-toolbar .fe-section .fe-card-body .fe-item-content .fe-item-actions a {
  /*margin-right: 10px;*/
}

.floweditor-toolbar .fe-section .fe-card-body .fe-item-content .fe-item-actions a:last-child {
  margin-right: 0;
}

.floweditor-toolbar .fe-section .fe-card-body .fe-item-content {
  display: flex;
  justify-content: space-between;
}

.floweditor-toolbar .fe-section .fe-tab-title {
  background: #fafafa;
  color: rgba(0, 0, 0, 0.6);
  font-size: 16px;
  font-weight: 400;
}

.floweditor-toolbar .fe-section .fe-tab-title span,
.floweditor-modal .fe-m-content .fe-m-body .fe-sections-overview ul li a span,
.floweditor-modal .fe-m-content .fe-m-body .fe-or-line {
  color: rgba(0, 0, 0, 0.4);
}

.floweditor-toolbar .fe-section .fe-tab-title span {
  display: block;
  font-size: 14px;
}

.floweditor-toolbar .fe-section .fe-title {
  background: #fafafa;
  font-size: 14px;
  font-weight: 400;
  border-top: 1px solid #eee;
}

.floweditor-toolbar .fe-section.fe-open .fe-title {
  background-color: #f3f3f3;
}

.floweditor-toolbar .fe-section .fe-btn {
  margin-bottom: 0.8em;
}

.floweditor-modal {
  display: none;
  position: fixed;
  z-index: 1;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
}

.floweditor-modal.fe-open {
  display: block;
}

.floweditor-modal .fe-m-content {
  background-color: #fefefe;
  margin: 10% auto;
  padding: 30px 25px;
  width: 80%;
}

.floweditor-modal .fe-m-content .fe-m-header {
  border-bottom: 1px solid #e4e4e4;
  margin-bottom: 30px;
}

.floweditor-modal .fe-m-content .fe-m-header h2 {
  font-size: 18px;
  margin: 15px 0;
  padding: 0;
}

.floweditor-modal .fe-m-content .fe-m-header h2 span {
  color: rgba(0, 0, 0, 0.4);
}

.floweditor-modal .fe-m-content .fe-m-body .fe-sections-overview {
  /* Reserved */
}

.fe-save-methods ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  justify-content: space-between;
  flex-wrap: nowrap;
  text-align: center;
  flex-direction: row;
}

.fe-save-methods ul li {
  width: 100%;
  margin-right: 15px;
}

.fe-save-methods ul li:last-child {
  margin-right: 0;
}

.fe-save-method {
  border: 2px solid rgba(0, 0, 0, 0.1);
  display: block;
  text-align: center;
  /*padding: 30px 15px;*/
  padding: 15px;
  text-decoration: none;
  color: #222222;
  cursor: pointer;
}

.fe-save-method:hover {
  background: rgba(14, 165, 127, 0.2);
}

.fe-save-method span {
  display: block;
  color: #9c9c9c;
}

.floweditor-modal .fe-m-content .fe-m-body .fe-sections-overview .fe-other-tools {
  /* Reserved */
}

.fe-or-line {
  margin-top: 35px;
  margin-bottom: 15px;
  border-top: 1px solid #e4e4e4;
  overflow: visible;
  padding: 0;
  font-weight: 600;
  text-align: center;
}

.fe-or-line:after {
  content: "or";
  display: inline-block;
  position: relative;
  top: -1em;
  font-size: 12px;
  padding: 0 0.95em;
  background: white;
}

.fe-other-tools ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  justify-content: space-between;
  flex-wrap: nowrap;
  text-align: center;
  flex-direction: column;
}

.fe-other-tools ul li {
  width: 100%;
}

.fe-other-tools ul li a {
  border: 2px solid rgba(0, 0, 0, 0.1);
  display: block;
  text-align: center;
  padding: 30px 15px;
  text-decoration: none;
}

.floweditor-modal .fe-m-content .fe-m-body .fe-sections {
  /* Reserved */
}

.floweditor-modal .fe-m-content .fe-m-body .fe-sections .fe-section {
  display: none;
}

.floweditor-modal .fe-m-content .fe-m-body .fe-sections .fe-section.fe-open {
  display: block;
}

.floweditor-modal .fe-m-content .fe-m-body .fe-sections .fe-section .fe-table-wrapper {
  max-height: 300px !important;
  overflow-x: scroll;
}

.floweditor-modal .fe-m-content .fe-m-footer {
  border-top: 1px solid #e4e4e4;
  margin-top: 30px;
  padding-top: 15px;
}

.floweditor-modal .fe-m-close {
  float: right;
  font-size: 16px;
}

.floweditor-modal .fe-m-close:hover,
.floweditor-modal .fe-m-close:focus {
  color: black;
  text-decoration: none;
  cursor: pointer;
}

.text-rules {
  color: #5a83ec;
}

.card-rules {
  background-color: rgb(231.7744565217, 237.5456521739, 252.3255434783);
  border: 1px solid #5a83ec;
  padding: 1.25rem;
  border-radius: 0.25rem;
  position: relative;
}
.card-rules h6 {
  color: #5a83ec;
  font-size: 1rem;
}
.card-rules .top-right {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
}
.card-rules .form-control {
  border-color: #5a83ec;
}
.card-rules .form-control:focus {
  box-shadow: 0 0 0 0.2rem rgba(90, 131, 236, 0.25);
}
.card-rules .form-control:disabled {
  background-color: rgb(245.4945652174, 247.8565217391, 253.9054347826);
}
.card-rules .rule-header {
  display: flex;
  flex-direction: row;
  font-size: 0.875rem;
  color: #5a83ec;
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 1rem;
}
.card-rules .rule-header:before, .card-rules .rule-header:after {
  content: "";
  flex: 1;
  border-bottom: 1px dotted #5a83ec;
  margin: auto;
}
.card-rules .rule-header span {
  background-color: rgb(231.7744565217, 237.5456521739, 252.3255434783);
  border: 1px solid #5a83ec;
  padding: 0.375rem 1rem;
  border-radius: 0.25rem;
  overflow: hidden;
}
.card-rules .rule-header .btn-outline-primary {
  border-color: #5a83ec;
  color: #5a83ec;
  font-size: 0.875rem;
}
.card-rules .rule-header .btn-outline-primary:hover {
  background-color: #5a83ec;
  border-color: #5a83ec;
  color: #fff;
}
.card-rules .rule-header .btn-outline-primary:focus {
  box-shadow: 0 0 0 0.2rem rgba(90, 131, 236, 0.5);
}
.card-rules .rule-header .btn-outline-primary:not(:disabled):not(.disabled).active, .card-rules .rule-header .btn-outline-primary:not(:disabled):not(.disabled):active {
  color: #fff;
  background-color: #5a83ec;
  border-color: #5a83ec;
}
@media (min-width: 992px) {
  .card-rules .rule-header {
    margin-bottom: 0;
  }
}
.card-rules .rule {
  position: relative;
}
.card-rules .rule .btn-circle {
  position: absolute;
  top: 0;
  right: -40px;
}
.card-rules .btn-circle {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: transparent;
  border: none;
  user-select: none;
  font-size: 24px;
  color: #5a83ec;
  line-height: 1;
  padding: 0;
  transition: background-color 0.15s ease-in-out;
  cursor: pointer;
}
.card-rules .btn-circle:hover {
  background-color: rgb(199.7608695652, 213.4869565217, 248.6391304348);
}

.btn-rules {
  background-color: rgb(231.7744565217, 237.5456521739, 252.3255434783);
  color: #5a83ec;
  border-color: #5a83ec;
}
.btn-rules:hover {
  color: #fff;
  background-color: #5a83ec;
  border-color: #5a83ec;
}
.btn-rules:focus {
  box-shadow: 0 0 0 0.2rem rgba(90, 131, 236, 0.5);
}
.btn-rules:not(:disabled):not(.disabled):active {
  color: #fff;
  background-color: #5a83ec;
  border-color: #5a83ec;
}

.btn-rule {
  background-color: rgb(199.7608695652, 213.4869565217, 248.6391304348);
  color: #5a83ec;
  border-color: rgb(199.7608695652, 213.4869565217, 248.6391304348);
}
.btn-rule:hover {
  background-color: #5a83ec;
  color: #fff;
  border-color: #5a83ec;
}
.btn-rule:focus {
  box-shadow: 0 0 0 0.2rem rgba(90, 131, 236, 0.5);
}
.btn-rule:not(:disabled):not(.disabled):active {
  color: #fff;
  background-color: #5a83ec;
  border-color: #5a83ec;
}

.floweditor_modal {
  zoom: 80%;
}
.floweditor_modal .tabs-component-tabs {
  display: flex;
  list-style: none;
  margin-bottom: 0;
  padding-left: 0;
}
.floweditor_modal .tabs-component-tab {
  flex-grow: 1;
}
.floweditor_modal .tabs-component-tab a {
  display: block;
  padding: 1rem;
  font-weight: 400;
  text-align: center;
  background-color: #ebebeb;
  color: #acacac;
}
.floweditor_modal .tabs-component-tab.is-active a {
  background-color: #fff;
  color: #5a83ec;
}
.floweditor_modal .tabs-component-panels {
  padding: 2rem;
}
.floweditor_modal .ts-form-check {
  margin-top: 0;
}
.floweditor_modal .ts-form-check .ts-element-label {
  font-size: 1rem;
  font-weight: 400;
}
.floweditor_modal .ts-form-check .ts-label-text::before {
  font-size: 22px;
}
.floweditor_modal .ts-form-check input[type=checkbox] + .ts-label-text:before {
  color: #5a83ec;
}

.selected-questions {
  border: 1px solid #5a83ec;
  border-radius: 0.25rem;
  background-color: rgb(231.7744565217, 237.5456521739, 252.3255434783);
  overflow: hidden;
}
.selected-questions table {
  width: 100%;
  color: #5a83ec;
  border-collapse: collapse;
  font-size: 0.875rem;
}
.selected-questions table td {
  padding: 0.3rem;
}
.selected-questions table td:first-child {
  width: 24px;
}
.selected-questions table td .btn-remove {
  cursor: pointer;
  transition: color 0.15s ease-in-out;
}
.selected-questions table td .btn-remove:hover {
  color: rgb(44.2663043478, 96.6304347826, 230.7336956522);
}
.selected-questions table tbody tr:nth-of-type(even) {
  background-color: rgb(199.7608695652, 213.4869565217, 248.6391304348);
}

.fe-node-title-card {
  background: #3f469c;
  padding: 0.75em;
  border-radius: 1em;
  color: white;
  display: inline-flex;
  width: fit-content;
  gap: 1em;
  align-items: center;
}
.fe-node-title-card .fe-node-title-icon {
  font-size: 1em;
}
.fe-node-title-card .fe-node-title-name {
  font-weight: 600;
  font-size: 1em;
}
.fe-node-title-card .fe-node-title-id {
  font-size: 0.75em;
}

.fe-card-title {
  color: #3f469c;
  font-weight: bold;
  font-size: 1.2em;
}

.btn {
  padding: 0.75rem 2rem;
  font-size: 16px;
  border-radius: 0.75em;
  font-weight: 500;
  cursor: pointer;
  border: 1px solid transparent;
}
.btn.btn-primary {
  background: #3f469c;
}
.btn.btn-outline {
  border: 1px #3f469c solid;
  background: transparent;
  color: #3f469c;
}
.btn.btn-outline:hover {
  background: #3f469c;
  color: #fff;
}
.btn.btn-link {
  padding: 0;
  margin: 0;
  background: transparent;
  color: #3f469c;
  border: none;
  font-size: 1.2em;
  font-weight: bold;
}
.btn.btn-size-sm {
  padding: 0.5rem 1rem;
  font-size: 14px;
}
.btn.btn-color-primary {
  background: #3f469c;
  border-color: #3f469c;
  color: #fff;
}
.btn.btn-color-primary:hover {
  background: #333a7b;
  border-color: #333a7b;
}
.btn.btn-color-secondary {
  background: #f0f1f2;
  border-color: transparent;
  color: #0b0b0d;
}
.btn.btn-color-secondary:hover {
  background: #c4c7cc;
}
.btn.btn-color-secondary-outline {
  border: 1px #3f469c solid;
  background: transparent;
  color: #3f469c;
}
.btn.btn-color-secondary-outline:hover {
  background: #3f469c;
  color: #fff;
}
.btn.btn-color-secondary-white {
  padding: 0;
  margin: 0;
  background: transparent;
  border: none;
  color: #3f469c;
  font-size: 1.2em;
  font-weight: bold;
}
.btn.btn-color-secondary-white:hover {
  background: transparent;
  color: rgb(48.3287671233, 53.698630137, 119.6712328767);
}
.btn.btn-color-warning {
  background: #f0f1f2;
  border-color: transparent;
  color: #C65A5A;
}
.btn.btn-color-warning:hover {
  background: #c4c7cc;
}

.fe-form.form-row label {
  font-weight: bold;
  color: #40499A;
}
.fe-form.form-row .form-control {
  border-radius: 0.625rem;
  padding: 0.75rem 0.8rem;
  height: auto;
}

.input-group .input-group-prepend.inline .input-group-text {
  background: #fff;
  border-right: 0;
  border-radius: 0.625rem;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.input-group .input-group-append.inline .input-group-text {
  background: #fff;
  border-left: 0;
  border-radius: 0.625rem;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.input-group:has(.input-group-prepend.inline) .form-control {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  border-left: 0;
}
.input-group:has(.input-group-append.inline) .form-control {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  border-right: 0;
}

.fe-lang-indicator {
  color: #6c5f55;
  font-weight: bold;
}

.fe-language-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1em;
}

.fe-items {
  padding: 0;
  margin: 0;
  list-style: none;
}
.fe-items.fe-link-list {
  max-height: 300px;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.fe-items.fe-link-list::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
.fe-items.fe-link-list > .fe-answer-row-wrap + .fe-answer-row-wrap,
.fe-items.fe-link-list > .fe-answer-row-wrap + .fe-answer-row--adding {
  margin-top: 4px;
}
.fe-items.fe-link-list > .fe-grade-row + .fe-grade-row,
.fe-items.fe-link-list > .fe-grade-row + .fe-answer-row--adding {
  margin-top: 4px;
}
.fe-items::-webkit-scrollbar {
  width: 8px;
}
.fe-items {
  /* Track */
}
.fe-items::-webkit-scrollbar-track {
  background: transparent;
}
.fe-items {
  /* Handle */
}
.fe-items::-webkit-scrollbar-thumb {
  background: #3b257a;
  border-radius: 4px;
}
.fe-items {
  /* Handle on hover */
}
.fe-items::-webkit-scrollbar-thumb:hover {
  background: #3b257a;
}

.fe-selectable-wrapper .fe-selectable {
  border: 1px #3f469c solid;
  border-radius: 0.625rem;
  padding: 1.25em;
  cursor: pointer;
  display: flex;
  align-items: center;
  flex-direction: row-reverse;
  justify-content: start;
  gap: 1em;
}
.fe-selectable-wrapper .fe-selectable .fe-selectable--image {
  width: 100px;
  height: 100px;
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
  border-radius: 1em;
  flex-grow: 0;
}
.fe-selectable-wrapper .fe-selectable .fe-selectable--title {
  color: #3f469c;
  font-weight: bold;
  font-size: 1.2em;
}
.fe-selectable-wrapper .fe-selectable .fe-selectable--description {
  color: #66584e;
  font-weight: medium;
  font-size: 1em;
  padding: 0;
  margin: 0;
  flex-grow: 1;
}
.fe-selectable-wrapper .fe-selectable.fe-selectable-big-icon {
  flex-direction: column;
  justify-content: center;
}
.fe-selectable-wrapper .fe-selectable.fe-selectable-big-icon .fe-selectable--image {
  width: 100%;
  margin: auto;
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
  border-radius: 1em;
  flex-grow: 0;
}
.fe-selectable-wrapper .fe-selectable-input:checked + .fe-selectable {
  background: #e6e8ff;
  border: 2px #3f469c solid;
}
.fe-selectable-wrapper .fe-selectable-input {
  display: none;
}

.fe-hero-button {
  border: 1px #3f469c solid;
  background: #e6e8ff;
  border-radius: 0.625rem;
  padding: 2em;
  text-align: center;
  cursor: pointer;
  font-size: 1em;
  font-weight: bold;
  color: #3f469c;
}
.fe-hero-button:hover {
  border: 1px #3f469c solid;
  background: #d3d8ff;
}
.fe-hero-button .mdi {
  font-size: 2em;
}

.fe-property-color .fe-color-list {
  display: flex;
  gap: 0.5em;
}
.fe-property-color .fe-color-list .fe-color-wrapper .fe-color {
  width: 30px;
  height: 30px;
  cursor: pointer;
  border-radius: 100%;
  border: 2px #ffffff solid;
  outline: #ffffff solid;
}
.fe-property-color .fe-color-list .fe-color-wrapper .fe-color-selector {
  display: none;
}
.fe-property-color .fe-color-list .fe-color-wrapper .fe-color-selector:checked + .fe-color {
  outline: #3d449d solid;
}

.gap-1 {
  gap: 1em;
}

.fe-settings-title {
  color: #414696;
  font-size: 1em;
}
.fe-settings-title .fe-settings-description-icon {
  color: #FFF;
  background: #ee8e01;
  border-radius: 100%;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  flex-grow: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.fe-settings-switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
}
.fe-settings-switch input {
  display: none;
}
.fe-settings-switch input:checked + .slider {
  background-color: #414696;
}
.fe-settings-switch input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}
.fe-settings-switch .slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #e8e8e8;
  -webkit-transition: 0.1s;
  transition: 0.1s;
  border-radius: 34px;
}
.fe-settings-switch .slider:before {
  position: absolute;
  content: "";
  height: 28px;
  width: 28px;
  left: 3px;
  bottom: 3px;
  border-radius: 100%;
  background-color: white;
  -webkit-transition: 0.4s;
  transition: 0.4s;
  box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.1);
}

.fe-debug-holder {
  position: fixed;
  color: #000;
  top: 1em;
  right: 1em;
  z-index: 100;
  zoom: 80%;
}
.fe-debug-holder .fe-debug {
  border-radius: 1em;
}
.fe-debug-holder .fe-debug .fe-debug-controls {
  display: flex;
  background: #3b257a;
  justify-content: space-between;
  color: #FFF;
  border-radius: 0.5em 0.5em 0 0;
}
.fe-debug-holder .fe-debug .fe-debug-controls .fe-debug-control-option {
  padding: 0.5em 1em;
  cursor: pointer;
}
.fe-debug-holder .fe-debug .fe-debug-item {
  background: #FFF;
  border-bottom: 1px #727299 solid;
  padding: 0.2em 0.5em;
}
.fe-debug-holder .fe-debug .fe-debug-item--title {
  font-weight: bold;
  color: #20244d;
}
.fe-debug-holder .fe-debug .fe-debug-item--content {
  font-weight: medium;
  color: #ffffff;
  background: #41499a;
  padding: 0.4em 0.8em;
  border-radius: 10em;
  font-size: 0.75em;
}
.fe-debug-holder .fe-debug .fe-debug-item--child {
  background: #b4bbd8;
  padding: 0.2em 2em;
}

.fe-card .fe-card-tabs {
  background: #40499a;
  display: flex;
  padding: 0 1em;
}
.fe-card .fe-card-tabs .fe-card-tab {
  color: #Fff;
  background: #40499a;
  padding: 1.5em 1.25em;
  font-weight: bold;
  margin: 0 1em;
  cursor: pointer;
}
.fe-card .fe-card-tabs .fe-card-tab:hover {
  background: #353d83;
}
.fe-card .fe-card-tabs .fe-card-tab.active {
  color: #40499a;
  background: #FFF;
}

.fe-divider {
  display: flex;
  align-items: center;
  color: #3f469c;
  font-weight: bold;
  font-size: 1.2em;
}
.fe-divider::after {
  content: "";
  flex: 1;
  padding: 1px;
  background-color: #3f469c;
  margin: 5px;
}

.fe-range-current-value {
  margin-top: 4px;
  margin-bottom: 0;
  font-size: 13px;
  font-weight: 600;
  color: #40499a;
}

.fe-no .fe-range-row {
  padding: 12px 0;
}

.fe-no .fe-range-block .qdnapro-modal-toggle-text {
  margin-bottom: 6px;
}

.fe-ht-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}
.fe-ht-head .fe-card-title {
  margin: 0;
}
.fe-ht-head qdnapro-icon {
  margin-right: 6px;
}

.fe-ht-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.fe-ht-search {
  flex: 1 1 auto;
  min-width: 0;
}

.fe-ht-filter-btn,
.fe-ht-add-btn {
  flex: 0 0 auto;
}

.fe-ht-recip-filter {
  flex: 0 0 auto;
  width: 220px;
}

.fe-ht-toolbar-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: -4px 0 8px;
}

.fe-ht-count {
  font-size: 12px;
  color: #6b7192;
}

.fe-ht-trailing {
  display: flex;
  align-items: center;
  gap: 10px;
}

.fe-ht-recipients {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  font-size: 12px;
  line-height: 1.35;
}

.fe-ht-recip {
  display: flex;
  align-items: baseline;
  gap: 6px;
  max-width: 220px;
}

.fe-ht-recip-key {
  flex: 0 0 auto;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #9097b8;
}

.fe-ht-recip-names {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #1a1f4d;
}

.fe-ht-recip--cc .fe-ht-recip-names {
  color: #6b7192;
}

.fe-ht-recip--none {
  color: #9097b8;
}

.fe-lr-hint {
  margin: 0 0 12px;
  font-size: 12px;
  color: #6b7192;
}

.fe-lr-trailing {
  display: flex;
  align-items: center;
  gap: 10px;
}

.fe-lr-trailing--no-action {
  padding-right: 34px;
}

.fe-lr-exit-cell {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  font-size: 12px;
  line-height: 1.35;
}

.fe-lr-path {
  font-weight: 600;
  color: #1a1f4d;
}

.fe-lr-dest {
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #6b7192;
}

.fe-lr-dest--none {
  color: #9097b8;
  font-style: italic;
}

.fe-lr-exit {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.fe-lr-exit-label {
  display: block;
  margin: 0 0 4px;
  font-weight: 500;
  line-height: 1.5;
  color: #0b0b0d;
}

.fe-lr-exit-value {
  display: flex;
  align-items: baseline;
  gap: 6px;
  min-height: 40px;
  align-items: center;
  font-size: 14px;
  color: #1a1f4d;
}

.fe-lr-exit-arrow {
  color: #9097b8;
}

.fe-lr-exit-value em {
  color: #9097b8;
}

.fe-trigger-editor-wrapper {
  background: #f2f2f2;
  border-radius: 1rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
  min-width: 900px;
  max-height: 60vh;
  overflow-y: auto;
}
.fe-trigger-editor-wrapper .btn-add-trigger,
.fe-trigger-editor-wrapper .btn-remove-trigger,
.fe-trigger-editor-wrapper .fe-rc-add,
.fe-trigger-editor-wrapper .fe-rc-remove {
  flex-shrink: 0;
  position: relative;
  z-index: 10;
}
.fe-trigger-editor-wrapper .btn-add-trigger {
  background: #cbcccb;
  color: #FFF;
  font-size: 1.5rem;
  width: 35px;
  height: 35px;
  border-radius: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  position: relative;
  z-index: 10;
}
.fe-trigger-editor-wrapper .btn-add-trigger:hover {
  background: #bdbdbd;
}
.fe-trigger-editor-wrapper .btn-add-trigger:active {
  background: #979797;
}
.fe-trigger-editor-wrapper .btn-remove-trigger {
  background: #cd5e68;
  color: #FFF;
  font-size: 1rem;
  width: 25px;
  height: 25px;
  border-radius: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  position: relative;
  z-index: 10;
}
.fe-trigger-editor-wrapper .btn-remove-trigger:hover {
  background: #99454d;
}
.fe-trigger-editor-wrapper .btn-remove-trigger:active {
  background: #803a41;
}
.fe-trigger-editor-wrapper .trigger-condition {
  display: flex;
  gap: 1rem;
  margin: 1rem 0;
  position: relative;
  align-items: center;
  border-radius: 1rem;
  padding-right: 1rem;
}
.fe-trigger-editor-wrapper .trigger-condition .trigger-column {
  flex: 1 1 50%;
  min-width: 200px;
}
.fe-trigger-editor-wrapper .trigger-condition .trigger-column.column-flex {
  display: flex;
  gap: 1rem;
  align-items: center;
}
.fe-trigger-editor-wrapper .trigger-condition .separator {
  width: 100%;
  border-top: 2px dashed #d1d4e6;
}
.fe-trigger-editor-wrapper .trigger-condition .trigger-condition-wrapper {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 120px;
  position: relative;
}
.fe-trigger-editor-wrapper .trigger-condition .trigger-condition-wrapper::before {
  content: "";
  position: absolute;
  height: 200%;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  border-left: 2px dashed #d1d4e6;
}
.fe-trigger-editor-wrapper .trigger-condition.last-trigger .trigger-condition-wrapper::before {
  height: 100%;
}
.fe-trigger-editor-wrapper .trigger-condition.trigger-removable .btn-remove-trigger,
.fe-trigger-editor-wrapper .trigger-condition.trigger-removable .fe-rc-remove {
  display: none;
}
.fe-trigger-editor-wrapper .trigger-condition.trigger-removable:hover {
  background: #ececec;
}
.fe-trigger-editor-wrapper .trigger-condition.trigger-removable:hover .btn-remove-trigger {
  display: flex;
}
.fe-trigger-editor-wrapper .trigger-condition.trigger-removable:hover .fe-rc-remove {
  display: inline-flex;
}
.fe-trigger-editor-wrapper .condition-select {
  flex-shrink: 0;
}
.fe-trigger-editor-wrapper .condition-select .vs__dropdown-toggle {
  padding: 0.75rem 1.3rem;
  background: #434796;
  color: #fff;
  font-weight: 600;
  border-radius: 0.75rem;
  font-size: 1.1rem;
  position: relative;
  cursor: pointer;
}
.fe-trigger-editor-wrapper .condition-select .vs__selected-options {
  padding: 0;
}
.fe-trigger-editor-wrapper .condition-select .vs__selected {
  margin: 0;
  padding: 0;
  border: none;
  color: #FFF;
}
.fe-trigger-editor-wrapper .condition-select.vs--open .vs__selected {
  position: relative;
}
.fe-trigger-editor-wrapper .condition-select .vs__actions svg {
  fill: #FFF;
}
.fe-trigger-editor-wrapper .condition {
  padding: 0.75rem 1.3rem;
  background: #434796;
  color: #fff;
  font-weight: 600;
  border-radius: 0.75rem;
  font-size: 1.1rem;
  position: relative;
}
.fe-trigger-editor-wrapper .condition.condition-secondary {
  background: #b4b4b4;
}
.fe-trigger-editor-wrapper .condition::before, .fe-trigger-editor-wrapper .condition::after {
  content: "";
  display: none;
  position: absolute;
  background: #e6e8fd;
  width: 10px;
  height: 10px;
  border-radius: 100%;
  border: 2px #434796 solid;
}
.fe-trigger-editor-wrapper .condition.condition-secondary::before, .fe-trigger-editor-wrapper .condition.condition-secondary::after {
  border: 2px #b4b4b4 solid;
}
.fe-trigger-editor-wrapper .condition.condition-connection-top::before, .fe-trigger-editor-wrapper .condition.condition-connection-y::before {
  display: block;
  top: -5px;
  left: 50%;
  transform: translateX(-50%);
}
.fe-trigger-editor-wrapper .condition.condition-connection-bottom::after, .fe-trigger-editor-wrapper .condition.condition-connection-y::after {
  display: block;
  bottom: -5px;
  left: 50%;
  transform: translateX(-50%);
}

.qdnapro-modal.fe-rule-modal {
  z-index: 9100;
}

.qdnapro-modal.fe-rule-modal.modal-size-xxlarge .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 48px);
}

.qdnapro-modal.fe-rule-modal.modal-size-xxlarge .modal-window {
  height: auto;
}

.fe-re {
  display: block;
}

.fe-re-info {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

.fe-re-info .qdnapro-modal-info-illustration {
  margin-top: auto;
}

.fe-re-info qdnapro-illustration {
  width: 100%;
  max-width: 100%;
}

.fe-re-sentence {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(17, 24, 39, 0.08);
}

.fe-re-sentence-title {
  margin: 0 0 0.25rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6b7280;
}

.fe-re-sentence-body {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #374151;
  overflow-wrap: anywhere;
  hyphens: auto;
}

.fe-re-sentence-todo {
  color: #9ca3af;
}

.fe-re-rail {
  min-width: 0;
  max-height: none;
  overflow-y: visible;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

.fe-re-rail .trigger-condition {
  margin: 0.5rem 0;
}

.fe-re-rail .condition {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 0 0.7rem;
  font-size: 0.8125rem;
  border-radius: 0.5rem;
  letter-spacing: 0.02em;
}

.fe-re-rail .condition.fe-rc-conj {
  color: #434796;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  padding: 0 0.35rem;
  border-radius: 0;
  background: transparent;
}

.fe-re-rail .trigger-condition .trigger-condition-wrapper::before {
  display: none;
}

.fe-re-rail .condition.condition-connection-top::before,
.fe-re-rail .condition.condition-connection-y::before,
.fe-re-rail .condition.condition-connection-bottom::after,
.fe-re-rail .condition.condition-connection-y::after {
  display: none;
}

.fe-re-rail .trigger-condition .trigger-condition-wrapper {
  min-width: 68px;
  align-self: flex-end;
}

.fe-re-rail .trigger-condition .fe-re-col-a {
  flex: 0 1 240px;
}
.fe-re-rail .trigger-condition .fe-re-col-b {
  flex: 1 1 auto;
  min-width: 0;
}

.fe-re-rail .trigger-condition .fe-rc-remove {
  align-self: flex-end;
  margin-bottom: 8px;
}

.fe-re-rail .trigger-condition .trigger-column.column-flex {
  align-items: flex-end;
  gap: 0.75rem;
}

.fe-re-op {
  flex: 0 0 72px;
}

.fe-re-val {
  flex: 1 1 auto;
  min-width: 0;
}

.fe-re-always-hint {
  margin: 0 0 0.25rem calc(68px + 1rem);
  font-size: 0.8125rem;
  line-height: 1.4;
  color: #6b7280;
}

.fe-lr-never-hint {
  color: #8a6d1f;
}

.fe-re-error {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
  padding: 0.625rem 0.75rem;
  border-radius: 0.5rem;
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #b91c1c;
  font-size: 0.8125rem;
  line-height: 1.4;
}

.fe-re-error qdnapro-icon {
  flex-shrink: 0;
  margin-top: 1px;
}

.fe-re-name {
  margin-top: 0.75rem;
  max-width: 420px;
}

.fe-translate-btn {
  position: relative;
}
.fe-translate-btn--active {
  background: rgba(255, 255, 255, 0.2);
  color: #ffffff !important;
}
.fe-translate-btn--incomplete::after {
  content: "";
  position: absolute;
  top: -4px;
  right: -4px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #ef4444;
  animation: fe-publish-pulse 2s ease-in-out infinite;
}

.fe-translation-panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 420px;
  background: rgba(232, 235, 252, 0.78);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-left: 1px solid rgba(255, 255, 255, 0.4);
  display: flex;
  flex-direction: column;
  z-index: 1050;
  box-shadow: -8px 0 32px rgba(40, 46, 100, 0.18);
  overflow: hidden;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
}

.fe-tp-slide-enter-active,
.fe-tp-slide-leave-active {
  transition: transform 240ms cubic-bezier(0.4, 0, 0.2, 1);
}

.fe-tp-slide-enter,
.fe-tp-slide-enter-from,
.fe-tp-slide-leave-to {
  transform: translateX(100%);
}

.fe-tp-slide-enter-to,
.fe-tp-slide-leave,
.fe-tp-slide-leave-from {
  transform: translateX(0);
}

.fe-tp-header {
  display: flex;
  align-items: center;
  padding: 11px 16px;
  background: rgba(65, 73, 154, 0.55);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  flex-shrink: 0;
  gap: 9px;
}

.fe-tp-header-icon {
  font-size: 18px;
  color: rgba(255, 255, 255, 0.85);
}

.fe-tp-header-title {
  font-size: 15px;
  font-weight: 500;
  color: #fff;
  flex: 1;
}

.fe-tp-close {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.65);
  font-size: 18px;
  cursor: pointer;
  line-height: 1;
  padding: 4px 6px;
  border-radius: 5px;
}
.fe-tp-close:hover {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
}

.fe-tp-at-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: none;
  border: 1.5px solid rgba(255, 255, 255, 0.3);
  color: rgba(255, 255, 255, 0.85);
  font-size: 12px;
  font-family: inter, sans-serif;
  font-weight: 400;
  cursor: pointer;
  border-radius: 6px;
  padding: 4px 8px;
  transition: border-color 160ms, background 160ms, color 160ms;
}
.fe-tp-at-btn .mdi {
  font-size: 15px;
}
.fe-tp-at-btn:hover {
  border-color: rgba(255, 255, 255, 0.65);
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}
.fe-tp-at-btn--active, .fe-tp-at-btn:active {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.7);
  color: #fff;
}
.fe-tp-at-btn:disabled {
  opacity: 0.55;
  cursor: default;
}

@keyframes fe-tp-rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.fe-tp-at-spin {
  display: inline-block;
  animation: fe-tp-rotate 0.8s linear infinite;
}

.fe-tp-at-bar {
  padding: 9px 14px;
  background: rgba(65, 73, 154, 0.12);
  border-bottom: 1px solid rgba(65, 73, 154, 0.15);
  font-size: 12px;
  color: #3f499a;
  flex-shrink: 0;
}
.fe-tp-at-bar--done {
  background: rgba(34, 140, 90, 0.1);
  border-bottom-color: rgba(34, 140, 90, 0.18);
  color: #1a7a50;
  display: flex;
  align-items: center;
  gap: 6px;
}
.fe-tp-at-bar--done .mdi {
  font-size: 15px;
}
.fe-tp-at-bar--error {
  background: rgba(196, 54, 42, 0.1);
  border-bottom-color: rgba(196, 54, 42, 0.18);
  color: #c4362a;
  display: flex;
  align-items: center;
  gap: 6px;
}
.fe-tp-at-bar--error .mdi {
  font-size: 15px;
}

.fe-tp-at-bar-question {
  display: block;
  margin-bottom: 7px;
  font-weight: 500;
}

.fe-tp-at-bar-btns {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.fe-tp-at-bar-btn {
  background: #3f499a;
  color: #fff;
  border: none;
  border-radius: 5px;
  padding: 4px 10px;
  font-size: 11px;
  font-family: inter, sans-serif;
  cursor: pointer;
}
.fe-tp-at-bar-btn:hover {
  background: #31397e;
}
.fe-tp-at-bar-btn--all {
  background: rgba(65, 73, 154, 0.15);
  color: #3f499a;
  border: 1px solid rgba(65, 73, 154, 0.3);
}
.fe-tp-at-bar-btn--all:hover {
  background: rgba(65, 73, 154, 0.25);
}
.fe-tp-at-bar-btn--cancel {
  background: none;
  color: rgba(63, 73, 154, 0.65);
  border: none;
}
.fe-tp-at-bar-btn--cancel:hover {
  color: #3f499a;
}

.fe-tp-at-slide-enter-active, .fe-tp-at-slide-leave-active {
  transition: max-height 200ms ease, opacity 200ms ease;
  overflow: hidden;
}

.fe-tp-at-slide-enter, .fe-tp-at-slide-leave-to {
  max-height: 0;
  opacity: 0;
}

.fe-tp-at-slide-enter-to, .fe-tp-at-slide-leave {
  max-height: 120px;
  opacity: 1;
}

.fe-tp-lang-bar {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 8px 14px 8px;
  background: rgba(255, 255, 255, 0.5);
  border-bottom: 1px solid rgba(216, 219, 237, 0.7);
  flex-shrink: 0;
}

.fe-tp-lang-indicator {
  position: absolute;
  background: #e8eafd;
  border-radius: 20px;
  pointer-events: none;
  z-index: 0;
}

.fe-tp-lang-tab {
  position: relative;
  z-index: 1;
  font-size: 12px;
  font-weight: 500;
  padding: 5px 13px;
  border-radius: 20px;
  border: none;
  background: transparent;
  color: #8890b8;
  cursor: pointer;
  font-family: inherit;
  transition: color 150ms;
}
.fe-tp-lang-tab--active {
  color: #40499a;
  font-weight: 600;
}

.fe-tp-col-headers {
  display: grid;
  grid-template-columns: 1fr 1fr;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.5);
  border-bottom: 2px solid rgba(216, 219, 237, 0.7);
}

.fe-tp-col-h {
  font-size: 11px;
  font-weight: 700;
  color: #41499a;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
}
.fe-tp-col-h:first-child {
  border-right: 1px solid #d8dbed;
}

.fe-tp-missing-pill {
  font-size: 10px;
  background: #fdf0dc;
  color: #b47a14;
  border-radius: 4px;
  padding: 2px 6px;
  border: 1px solid #e8a320;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
}

.fe-tp-body {
  flex: 1;
  overflow-y: auto;
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.fe-tp-card {
  border-radius: 7px;
  border: 1px solid #d0d3ea;
  overflow: hidden;
  background: #fff;
  border-left: 4px solid var(--node-color, #41499a);
  transition: box-shadow 120ms;
  flex-shrink: 0;
}
.fe-tp-card:hover {
  box-shadow: 0 2px 10px rgba(65, 73, 154, 0.14);
}
.fe-tp-card--selected {
  box-shadow: 0 0 0 2px var(--node-color, #41499a);
}
.fe-tp-card--missing {
  background: #fefdfb;
}
.fe-tp-card--spotlight {
  animation: fe-tp-spotlight 900ms ease-out forwards;
}

@keyframes fe-tp-spotlight {
  0% {
    box-shadow: 0 0 0 3px rgba(65, 73, 154, 0.55);
  }
  60% {
    box-shadow: 0 0 0 3px rgba(65, 73, 154, 0.25);
  }
  100% {
    box-shadow: none;
  }
}
.fe-tp-meta {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 6px 10px 6px 8px;
  background: rgba(65, 73, 154, 0.06);
  border-bottom: 1px solid #e4e6f4;
  cursor: pointer;
}

.fe-tp-badge {
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 5px;
  color: #fff;
  font-weight: 600;
  white-space: nowrap;
}

.fe-tp-node-id {
  font-size: 11px;
  color: #9099c0;
  font-weight: 500;
}

.fe-tp-save-indicator {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-left: auto;
}
.fe-tp-save-indicator--saving {
  background: #e8a320;
}
.fe-tp-save-indicator--saved {
  background: #3e9e6e;
}
.fe-tp-save-indicator--error {
  background: #c4362a;
}

.fe-tp-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.fe-tp-col {
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 50px;
}
.fe-tp-col--target {
  background: #f4f5fb;
  border-left: 1px solid #e4e6f4;
}

.fe-tp-input {
  width: 100%;
  box-sizing: border-box;
  font-size: 10px;
  line-height: 1.4;
  padding: 4px 7px;
  border: 1px solid #cdd0e8;
  border-radius: 5px;
  background: #fff;
  color: #1e2460 !important;
  resize: none;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  overflow-y: auto;
  min-height: 36px !important;
  height: auto;
  display: block;
  transition: border-color 120ms, background 120ms;
}
.fe-tp-input:focus {
  outline: none;
  border-color: #41499a;
  background: #fff;
  box-shadow: 0 0 0 2px rgba(65, 73, 154, 0.12);
}
.fe-tp-input--sub {
  font-size: 8px;
  font-style: italic;
  color: #6670a0;
  min-height: 24px;
  border-style: dashed;
  border-color: #d8dbed;
}
.fe-tp-input--ans {
  font-size: 10px;
  min-height: 28px;
}
.fe-tp-input--missing {
  border-color: #e8a320;
  background: #fffcf3;
  border-style: solid;
}
.fe-tp-input--missing::placeholder {
  color: #c89430;
  font-style: italic;
  font-size: 10px;
}
.fe-tp-col--target .fe-tp-input {
  background: #eef0fa;
  border-color: #c8cbdf;
}
.fe-tp-col--target .fe-tp-input:focus {
  background: #fff;
  border-color: #41499a;
}
.fe-tp-col--target .fe-tp-input.fe-tp-input--missing {
  background: #fffcf3;
  border-color: #e8a320;
}
.fe-tp-input::placeholder {
  color: #b0b5cc;
  font-size: 10px;
}
.fe-tp-input--sub::placeholder {
  font-size: 8px;
}
.fe-tp-input--ans::placeholder {
  font-size: 10px;
}

.fe-tp-ans-divider {
  height: 1px;
  background: #e4e6f4;
  margin: 2px 0;
}

.fe-tp-ans-row {
  display: flex;
  align-items: flex-start;
  gap: 6px;
}
.fe-tp-ans-row--target {
  padding-left: 0;
}

.fe-tp-ans-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 11px;
}

.fe-nm-holder {
  position: fixed;
  inset: 0;
  z-index: 9100;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.fe-nm-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(20, 24, 60, 0.35);
  backdrop-filter: blur(2px);
  pointer-events: all;
  z-index: 0;
}

.fe-nm {
  position: relative;
  z-index: 1;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  width: min(860px, 94vw);
  max-height: calc(100vh - 48px);
  border-radius: 14px;
  overflow: hidden;
  background: rgba(245, 246, 252, 0.84);
  backdrop-filter: blur(20px) saturate(1.4);
  -webkit-backdrop-filter: blur(20px) saturate(1.4);
  border: 1px solid rgba(255, 255, 255, 0.55);
  box-shadow: 0 24px 64px rgba(20, 24, 60, 0.22), 0 2px 8px rgba(20, 24, 60, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.7);
}
.fe-nm.fe-nm--annotation {
  width: min(480px, 94vw);
  background: rgba(255, 253, 235, 0.92);
  border-color: rgba(224, 200, 64, 0.45);
}

.fe-nm-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px 12px 16px;
  border-bottom: 1px solid rgba(180, 188, 220, 0.35);
  background: rgba(255, 255, 255, 0.45);
  flex-shrink: 0;
}

.fe-nm-type-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 20px;
  background: rgba(64, 73, 154, 0.1);
  border: 1px solid rgba(64, 73, 154, 0.18);
}

.fe-nm-type-icon {
  font-size: 15px;
  color: #40499a;
  line-height: 1;
}

.fe-nm-type-name {
  font-size: 12px;
  font-weight: 600;
  color: #2a2e5e;
  font-family: "Inter", -apple-system, sans-serif;
}

.fe-nm-type-id {
  font-size: 11px;
  color: #9097b8;
  font-family: "Inter", -apple-system, sans-serif;
}

.fe-nm-close-btn,
.fe-nm-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 8px;
  border-radius: 6px;
  border: none;
  background: transparent;
  color: #667;
  font-family: "Inter", -apple-system, sans-serif;
  font-size: 12px;
  cursor: pointer;
  transition: background 120ms, color 120ms;
  flex-shrink: 0;
  line-height: 1;
}
.fe-nm-close-btn:hover,
.fe-nm-back-btn:hover {
  background: rgba(64, 73, 154, 0.08);
  color: #2a2e5e;
}
.fe-nm-close-btn .mdi,
.fe-nm-back-btn .mdi {
  font-size: 16px;
}

.fe-nm-close-btn {
  margin-left: auto;
  padding: 5px;
  font-size: 16px;
  color: #888;
}

.fe-nm-body {
  display: flex;
  flex: 1;
  overflow: hidden;
  min-height: 0;
  padding: 10px;
  gap: 10px;
}

.fe-nm-info {
  width: 220px;
  flex-shrink: 0;
  padding: 20px 16px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  border-right: 1px solid rgba(180, 188, 220, 0.3);
  background: rgba(255, 255, 255, 0.3);
  overflow-y: auto;
}

.fe-nm-info-illu svg {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}

.fe-nm-info-desc {
  font-size: 11.5px;
  line-height: 1.6;
  color: #555e88;
  font-family: "Inter", -apple-system, sans-serif;
  margin: 0;
}

.fe-nm-content {
  flex: 1;
  overflow-y: auto;
  min-width: 0;
  padding: 20px 24px;
  background: #ffffff;
  border: 0.5px solid #c4c7cc;
  border-radius: 12px;
}
.fe-nm-content.fe-nm-content--full {
  padding: 20px 24px;
}
.fe-nm-content .fe-section {
  border: none;
  padding: 0;
  clear: none;
}
.fe-nm-content .fe-card-body {
  padding: 0;
}
.fe-nm-content label.qdnapro-modal-label {
  display: block;
  font-weight: 500;
  font-size: 14px;
  line-height: 24px;
  color: #0b0b0d;
  margin-bottom: 4px;
}
.fe-nm-content label.qdnapro-modal-label .fe-label-required {
  color: #c65a5a;
  margin-left: 2px;
}
.fe-nm-content label.qdnapro-modal-label.fe-nm-q-label {
  margin-top: 22px;
}

.fe-nm-footer {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-top: 1px solid rgba(180, 188, 220, 0.35);
  background: rgba(255, 255, 255, 0.4);
  flex-shrink: 0;
  gap: 8px;
}

.fe-nm-footer-play {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #40499a;
  color: #fff;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  transition: background 140ms, transform 140ms, box-shadow 140ms;
  box-shadow: 0 2px 8px rgba(64, 73, 154, 0.3);
  pointer-events: all;
}
.fe-nm-footer-play .mdi {
  line-height: 1;
}
.fe-nm-footer-play:hover {
  background: #353e8c;
  transform: translateX(-50%) scale(1.08);
  box-shadow: 0 4px 12px rgba(64, 73, 154, 0.4);
}

.fe-nm-footer-left,
.fe-nm-footer-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.fe-nm-adv-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 7px;
  border: 1.5px solid rgba(64, 73, 154, 0.35);
  background: transparent;
  color: #40499a;
  font-family: "Inter", -apple-system, sans-serif;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: background 120ms, border-color 120ms;
}
.fe-nm-adv-btn:hover {
  background: rgba(64, 73, 154, 0.08);
  border-color: #40499a;
}
.fe-nm-adv-btn .mdi {
  font-size: 14px;
}

.fe-nm-btn {
  display: inline-flex;
  align-items: center;
  padding: 7px 18px;
  border-radius: 7px;
  font-family: "Inter", -apple-system, sans-serif;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  border: none;
  transition: background 120ms, box-shadow 120ms;
}
.fe-nm-btn--cancel {
  background: rgba(64, 73, 154, 0.08);
  color: #40499a;
}
.fe-nm-btn--cancel:hover {
  background: rgba(64, 73, 154, 0.14);
}
.fe-nm-btn--save {
  background: #40499a;
  color: #fff;
  box-shadow: 0 2px 8px rgba(64, 73, 154, 0.3);
}
.fe-nm-btn--save:hover {
  background: #333d88;
  box-shadow: 0 3px 12px rgba(64, 73, 154, 0.4);
}

.fe-answer-row {
  display: flex;
  align-items: center;
  gap: 0;
  border-radius: 7px;
  border: 1px solid #e2e4ef;
  background: #fafbff;
  overflow: visible;
  min-height: 38px;
  transition: border-color 140ms, box-shadow 140ms;
  position: relative;
}
.fe-answer-row:hover {
  border-color: #a8b2e8;
  box-shadow: 0 1px 5px rgba(64, 73, 154, 0.1);
}
.fe-answer-row:hover .fe-answer-actions {
  opacity: 1;
  pointer-events: all;
}
.fe-answer-row:hover .fe-answer-act--delete,
.fe-answer-row:hover .fe-answer-act--unlink {
  transform: scale(1);
  opacity: 1;
}
.fe-answer-row--unlinked {
  border-color: #ddb84a;
  background: #fffbf0;
}
.fe-answer-row--confirming {
  border-color: #e4a0a0;
  background: #fff5f5;
}

.fe-answer-drag {
  padding: 0 5px 0 8px;
  color: #ccc;
  cursor: grab;
  display: flex;
  align-items: center;
  flex-shrink: 0;
  font-size: 16px;
}

.fe-answer-label {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  color: #2a2e5e;
  font-family: "Inter", -apple-system, sans-serif;
  font-size: 12px;
  padding: 9px 6px;
  line-height: 1.4;
  min-width: 0;
}
.fe-answer-label:focus {
  background: rgba(255, 255, 255, 0.9);
  border-radius: 4px;
  box-shadow: inset 0 0 0 1.5px #40499a;
}
.fe-answer-label[readonly] {
  color: #6a6e9a;
  cursor: default;
}

.fe-answer-conn {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px 8px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
  margin-right: 4px;
  font-family: "Inter", -apple-system, sans-serif;
}
.fe-answer-conn--linked {
  background: #eef0ff;
  color: #40499a;
  border: none;
  cursor: default;
}
.fe-answer-conn--linked.fe-answer-conn--has-tip {
  transition: background 120ms;
}
.fe-answer-conn--linked.fe-answer-conn--has-tip:hover {
  background: #e0e3ff;
}
.fe-answer-conn--empty {
  background: #fff3cd;
  color: #8a6a10;
  border: 1px dashed #ddb84a;
  cursor: pointer;
  transition: background 120ms;
}
.fe-answer-conn--empty:hover {
  background: #ffeea0;
}

.fe-next-step-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
}

.fe-next-step-remove {
  background: none;
  border: none;
  color: #c4362a;
  font-size: 12px;
  font-weight: 500;
  font-family: "Inter", -apple-system, sans-serif;
  padding: 3px 8px;
  border-radius: 6px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  line-height: 1;
  transition: background 120ms;
}
.fe-next-step-remove:hover {
  background: rgba(196, 54, 42, 0.08);
}
.fe-next-step-remove .mdi {
  font-size: 13px;
}

.fe-conn-tip {
  position: fixed;
  z-index: 9300;
  transform: translate(-50%, calc(-100% - 10px));
  max-width: 280px;
  padding: 7px 11px;
  border-radius: 8px;
  background: rgba(42, 46, 94, 0.96);
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  font-family: "Inter", -apple-system, sans-serif;
  box-shadow: 0 6px 20px rgba(20, 24, 60, 0.28);
  pointer-events: none;
  white-space: normal;
  word-break: break-word;
  animation: fe-conn-tip-in 120ms ease;
}
.fe-conn-tip::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-top-color: rgba(42, 46, 94, 0.96);
}

@keyframes fe-conn-tip-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.fe-answer-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 0 5px 0 0;
  flex-shrink: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms;
}

.fe-answer-act {
  width: 26px;
  height: 26px;
  border-radius: 5px;
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  transition: background 120ms, border-color 120ms, color 120ms;
  flex-shrink: 0;
}
.fe-answer-act--unlink {
  color: #9a6a10;
  background: #fff3cd;
  border-color: #f0d060;
}
.fe-answer-act--unlink:hover {
  background: #fde8a0;
  border-color: #d0a820;
}
.fe-answer-act--delete {
  color: #c94040;
  background: #fde8e8;
  border-color: #e8b0b0;
}
.fe-answer-act--delete:hover {
  background: #fcc;
  border-color: #c94040;
}

.fe-answer-confirm {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  padding: 6px 10px;
}

.fe-answer-confirm-icon {
  color: #c94040;
  font-size: 15px;
  flex-shrink: 0;
}

.fe-answer-confirm-text {
  flex: 1;
  font-size: 12px;
  font-weight: 600;
  color: #c94040;
  font-family: "Inter", -apple-system, sans-serif;
}

.fe-answer-btn {
  padding: 4px 11px;
  border-radius: 5px;
  font-family: "Inter", -apple-system, sans-serif;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  border: none;
  white-space: nowrap;
  transition: background 120ms;
}
.fe-answer-btn--cancel {
  background: #f0f1f4;
  color: #555;
  border: 1px solid #d0d2db;
}
.fe-answer-btn--cancel:hover {
  background: #e4e6ef;
}
.fe-answer-btn--delete {
  background: #c94040;
  color: #fff;
}
.fe-answer-btn--delete:hover {
  background: #a83030;
}

.fe-pm-fade-enter-active,
.fe-pm-fade-leave-active {
  transition: opacity 180ms ease;
}

.fe-pm-fade-enter-from,
.fe-pm-fade-leave-to {
  opacity: 0;
}

.fe-pm-backdrop {
  position: fixed;
  inset: 0;
  z-index: 10100;
  background: rgba(10, 12, 40, 0.72);
  backdrop-filter: blur(4px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding-top: 20px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.fe-pm-shell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding-bottom: 32px;
}

.fe-pm-chrome {
  display: flex;
  align-items: center;
  gap: 12px;
}

.fe-pm-devices {
  display: flex;
  align-items: center;
  gap: 4px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 8px;
  padding: 3px;
}

.fe-pm-device-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 6px;
  border: none;
  background: transparent;
  color: rgba(255, 255, 255, 0.65);
  font-size: 18px;
  cursor: pointer;
  transition: background 140ms, color 140ms;
}
.fe-pm-device-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}
.fe-pm-device-btn--active {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}

.fe-pm-close-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.75);
  font-size: 18px;
  cursor: pointer;
  transition: background 140ms, color 140ms;
}
.fe-pm-close-btn:hover {
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
}

.fe-pm-device-sep {
  width: 1px;
  height: 20px;
  background: rgba(255, 255, 255, 0.2);
  margin: 0 2px;
  flex-shrink: 0;
}

.fe-pm-stage {
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.fe-pm-frame {
  position: relative;
  background: #1a1b2e;
  border: 3px solid #3a3b55;
  border-radius: 40px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 24px 80px rgba(0, 0, 0, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: width 280ms cubic-bezier(0.4, 0, 0.2, 1), height 280ms cubic-bezier(0.4, 0, 0.2, 1), border-radius 280ms;
  overflow: hidden;
}
.fe-pm-frame--phone {
  width: 375px;
  height: 812px;
  border-radius: 44px;
}
.fe-pm-frame--tablet-portrait {
  width: 768px;
  height: 1024px;
  border-radius: 24px;
}
.fe-pm-frame--tablet-landscape {
  width: 1024px;
  height: 768px;
  border-radius: 24px;
}
.fe-pm-frame--phone-landscape {
  width: 812px;
  height: 375px;
  border-radius: 32px;
}
.fe-pm-frame--desktop {
  width: min(1680px, 96vw);
  height: calc(100vh - 140px);
  max-height: 1100px;
  border-radius: 12px;
}

.fe-pm-notch {
  flex-shrink: 0;
  width: 120px;
  height: 28px;
  margin-top: 6px;
  background: #1a1b2e;
  border-radius: 0 0 18px 18px;
  z-index: 2;
}
.fe-pm-frame--tablet-portrait .fe-pm-notch, .fe-pm-frame--tablet-landscape .fe-pm-notch, .fe-pm-frame--phone-landscape .fe-pm-notch, .fe-pm-frame--desktop .fe-pm-notch {
  display: none;
}

.fe-pm-screen {
  flex: 1;
  width: 100%;
  background: #fff;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.fe-pm-frame--phone .fe-pm-screen {
  border-radius: 0 0 0 0;
}

.fe-pm-frame--tablet-portrait > .fe-pm-screen,
.fe-pm-frame--tablet-landscape > .fe-pm-screen,
.fe-pm-frame--desktop > .fe-pm-screen {
  box-sizing: border-box;
  padding: 22px;
}

.fe-pm-frame--phone-landscape > .fe-pm-screen {
  box-sizing: border-box;
  padding: 16px;
}

.fe-pm-iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}

.fe-pm-home-bar {
  flex-shrink: 0;
  width: 120px;
  height: 5px;
  margin: 8px auto;
  background: rgba(255, 255, 255, 0.25);
  border-radius: 3px;
}
.fe-pm-frame--tablet-portrait .fe-pm-home-bar, .fe-pm-frame--tablet-landscape .fe-pm-home-bar, .fe-pm-frame--phone-landscape .fe-pm-home-bar, .fe-pm-frame--desktop .fe-pm-home-bar {
  display: none;
}

.fe-pm-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #40499a;
}

.fe-pm-spinner {
  font-size: 40px;
}

.fe-pm-error-icon {
  font-size: 40px;
  color: #c94040;
}

.fe-pm-loading-text {
  font-size: 14px;
  color: #6b7280;
}

.fe-preview-toolbar-btn {
  color: #fff;
  font-size: 1.6em;
  opacity: 0.9;
}
.fe-preview-toolbar-btn:hover {
  opacity: 1;
}

.fe-nm-preview-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1.5px solid rgba(64, 73, 154, 0.35);
  background: rgba(64, 73, 154, 0.07);
  color: #40499a;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: background 140ms, border-color 140ms;
  white-space: nowrap;
  margin-right: 4px;
}
.fe-nm-preview-btn .mdi {
  font-size: 15px;
}
.fe-nm-preview-btn:hover {
  background: rgba(64, 73, 154, 0.13);
  border-color: rgba(64, 73, 154, 0.55);
}

.fe-add-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  margin-top: 6px;
  border-radius: 7px;
  border: 1.5px dashed rgba(70, 82, 243, 0.3);
  background: #fafbff;
  cursor: pointer;
  color: #4652f3;
  transition: border-color 150ms, background 150ms;
  user-select: none;
}
.fe-add-bar:hover {
  background: #f0f1fb;
  border-color: rgba(70, 82, 243, 0.55);
}
.fe-add-bar:hover .fe-add-bar-circle {
  background: #4652f3;
  color: white;
}

.fe-add-bar-circle {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(70, 82, 243, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #4652f3;
  transition: background 150ms, color 150ms;
}

@keyframes fe-publish-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.7);
  }
  50% {
    box-shadow: 0 0 0 5px rgba(245, 158, 11, 0);
  }
}
.fe-vl-wrap {
  font-family: inter, sans-serif;
  min-height: 120px;
}

.fe-vl-loading,
.fe-vl-error,
.fe-vl-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 16px;
  color: #8890b8;
  font-size: 14px;
  gap: 8px;
}
.fe-vl-loading .mdi,
.fe-vl-error .mdi,
.fe-vl-empty .mdi {
  font-size: 18px;
}

.fe-vl-error {
  color: #c4362a;
}

.fe-vl-section {
  border-radius: 10px;
  border: 1px solid #e4e7f5;
  margin-bottom: 10px;
  overflow: hidden;
  background: #fff;
}
.fe-vl-section:last-child {
  margin-bottom: 0;
}

.fe-vl-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  cursor: pointer;
  background: #f5f6fd;
  border-bottom: 1px solid transparent;
  user-select: none;
  transition: background 120ms;
}
.fe-vl-header:hover {
  background: #eceffe;
}
.fe-vl-section--open .fe-vl-header {
  border-bottom-color: #e4e7f5;
}

.fe-vl-chevron {
  font-size: 16px;
  color: #8890b8;
  flex-shrink: 0;
  transition: transform 150ms;
}

.fe-vl-title {
  flex: 1;
  font-size: 13px;
  color: #2a2e5e;
  line-height: 1.4;
}
.fe-vl-title strong {
  font-weight: 600;
}

.fe-vl-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 7px;
  border-radius: 20px;
  background: #e0e3ff;
  color: #40499a;
  font-size: 11px;
  font-weight: 600;
  vertical-align: middle;
}

.fe-vl-tag-pub {
  margin-left: 6px;
  font-size: 11px;
  font-weight: 400;
  color: #8890b8;
  vertical-align: middle;
}

.fe-vl-count {
  font-size: 11px;
  color: #a0a4b8;
  white-space: nowrap;
  flex-shrink: 0;
}

.fe-vl-events {
  display: none;
  padding: 6px 0;
}
.fe-vl-section--open .fe-vl-events {
  display: block;
}

.fe-vl-event-empty {
  padding: 16px 14px;
  font-size: 13px;
  color: #a0a4b8;
}

.fe-vl-event {
  display: grid;
  grid-template-columns: 280px 1fr auto;
  align-items: start;
  gap: 8px;
  padding: 7px 14px;
  border-bottom: 1px solid #f0f1f8;
  transition: background 100ms;
}
.fe-vl-event:last-child {
  border-bottom: none;
}
.fe-vl-event:hover {
  background: #f9f9fd;
}

.fe-vl-event-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  min-width: 0;
}

.fe-vl-pill {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  background: #e8eaf8;
  color: #40499a;
}
.fe-vl-pill.fe-vl-pill--node-created {
  background: #d1fae5;
  color: #065f46;
}
.fe-vl-pill.fe-vl-pill--node-deleted {
  background: #fee2e2;
  color: #991b1b;
}
.fe-vl-pill.fe-vl-pill--node-type-changed {
  background: #ede9fe;
  color: #5b21b6;
}
.fe-vl-pill.fe-vl-pill--label-changed, .fe-vl-pill.fe-vl-pill--sublabel-changed {
  background: #ede9fe;
  color: #5b21b6;
}
.fe-vl-pill.fe-vl-pill--meta-changed {
  background: #fef3c7;
  color: #92400e;
}
.fe-vl-pill.fe-vl-pill--link-created, .fe-vl-pill.fe-vl-pill--link-connected {
  background: #d1fae5;
  color: #065f46;
}
.fe-vl-pill.fe-vl-pill--link-disconnected, .fe-vl-pill.fe-vl-pill--link-deleted {
  background: #fee2e2;
  color: #991b1b;
}
.fe-vl-pill.fe-vl-pill--answer-added {
  background: #d1fae5;
  color: #065f46;
}
.fe-vl-pill.fe-vl-pill--answer-changed {
  background: #fef3c7;
  color: #92400e;
}
.fe-vl-pill.fe-vl-pill--answer-deleted {
  background: #fee2e2;
  color: #991b1b;
}

.fe-vl-time {
  font-size: 11px;
  color: #a0a4b8;
  white-space: nowrap;
}

.fe-vl-user {
  font-size: 11px;
  color: #6b7280;
  white-space: nowrap;
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fe-vl-event-detail {
  min-width: 0;
}

.fe-vl-node {
  display: block;
  font-size: 12px;
  color: #6b7280;
  margin-bottom: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fe-vl-field {
  font-size: 12px;
  line-height: 1.5;
  color: #4b5563;
  word-break: break-word;
}

.fe-vl-field-name {
  font-weight: 600;
  color: #374151;
}

.fe-vl-before {
  text-decoration: line-through;
  color: #9ca3af;
}

.fe-vl-arrow {
  color: #d1d5db;
  font-size: 11px;
}

.fe-vl-after {
  color: #111827;
}

@keyframes fe-vl-row-in {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.fe-vl-event--entering {
  animation: fe-vl-row-in 180ms cubic-bezier(0.2, 0, 0.38, 1) both;
}

.fe-vl-filter-bar {
  position: relative;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  padding: 0 0 12px 0;
  margin-bottom: 12px;
  border-bottom: 1px solid #e4e7f5;
}

.fe-vl-filter-indicator {
  position: absolute;
  background: #e8eafd;
  border-radius: 20px;
  pointer-events: none;
  z-index: 0;
}

.fe-vl-pill-filter {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  padding: 5px 12px;
  border-radius: 20px;
  border: none;
  background: transparent;
  font-family: inter, sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #8890b8;
  cursor: pointer;
  transition: color 150ms;
}
.fe-vl-pill-filter--active {
  color: #40499a;
  font-weight: 600;
}
.fe-vl-pill-filter:hover:not(.fe-vl-pill-filter--active) {
  color: #5560b8;
}
.fe-vl-pill-filter:focus-visible {
  outline: 2px solid #40499a;
  outline-offset: 2px;
}

.fe-vl-restore-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid #c7d2fe;
  background: #eef2ff;
  color: #4338ca;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  align-self: center;
  transition: background 120ms, border-color 120ms;
}
.fe-vl-restore-btn:hover:not(:disabled) {
  background: #e0e7ff;
  border-color: #a5b4fc;
}
.fe-vl-restore-btn:disabled {
  opacity: 0.6;
  cursor: default;
}
.fe-vl-restore-btn.fe-vl-restore-btn--done {
  background: #d1fae5;
  border-color: #6ee7b7;
  color: #065f46;
  cursor: default;
}

/* ════════════════════════════════════════════════════════════════
   Open invoer modal — InputFieldOptions converted to qdnapro-wizard-modal
   (wm-with-info: left info panel + live dummy preview, right settings).
   Shell/chrome (wm-*) comes from style-v1.css; these are the modal-specific
   bits. [Kim + Claude 2026-06-18]
   ════════════════════════════════════════════════════════════════ */
.fe-oi-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 14px 16px 4px;
  flex-shrink: 0;
}

.fe-oi-title {
  font-family: "Inter", -apple-system, sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: #40499a;
}

.fe-oi-x {
  border: 0;
  background: transparent;
  padding: 4px;
  line-height: 1;
  color: #6b7280;
  cursor: pointer;
  border-radius: 8px;
  transition: background 120ms ease, color 120ms ease;
}
.fe-oi-x i {
  font-size: 20px;
}
.fe-oi-x:hover {
  background: rgba(64, 73, 154, 0.08);
  color: #40499a;
}

.fe-oi-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 4px 16px 8px;
}

.fe-oi-panel > p {
  color: #6b7280;
  margin-bottom: 12px;
}

.fe-oi-footer {
  flex-shrink: 0;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-top: 1px solid #e1e3e6;
}

.fe-oi-preview {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fe-oi-preview-cap {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #9097b8;
}

.fe-oi-phone {
  background: #ffffff;
  border: 1px solid #d8daea;
  border-radius: 14px;
  padding: 14px;
  box-shadow: 0 6px 18px rgba(20, 24, 60, 0.1);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.fe-oi-q {
  font-size: 14px;
  font-weight: 600;
  color: #1a1f4d;
  word-break: break-word;
}

.fe-oi-field {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1.5px solid #c4c7cc;
  border-radius: 10px;
  padding: 8px 10px;
  background: #fbfbfd;
}

.fe-oi-field--counter {
  justify-content: space-between;
}

.fe-oi-step {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  border: 1px solid #c4c7cc;
  border-radius: 8px;
  background: #ffffff;
  color: #40499a;
  font-size: 18px;
  line-height: 1;
  cursor: default;
  display: flex;
  align-items: center;
  justify-content: center;
}

.fe-oi-input {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.fe-oi-cur {
  color: #40499a;
  font-weight: 600;
}

.fe-oi-val {
  color: #0b0b0d;
}

.fe-oi-ph {
  color: #9aa0b5;
}

.fe-oi-barcode {
  margin-left: auto;
  color: #40499a;
  font-size: 18px;
}

.fe-oi-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
}

.fe-oi-hint {
  font-size: 12px;
  color: #6b7280;
}

.fe-oi-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  color: #40499a;
  background: rgba(64, 73, 154, 0.1);
  border-radius: 20px;
  padding: 2px 8px;
}
.fe-oi-chip i {
  font-size: 13px;
}

.fe-oi-skip {
  align-self: flex-start;
  font-size: 13px;
  font-weight: 600;
  color: #40499a;
  text-decoration: underline;
  cursor: default;
}

/* ════════════════════════════════════════════════════════════════
   NodeOptions modal — converted to qdnapro-wizard-modal (fase 1).
   Shell/chrome (wm-*) comes from style-v1.css; these are the
   step-specific bits for the basis + advanced steps. [Kim + Claude 2026-06-18]
   ════════════════════════════════════════════════════════════════ */
.fe-no-illu {
  margin-top: 8px;
}
.fe-no-illu svg {
  width: 100%;
  height: auto;
  display: block;
}

.fe-no-desc {
  font-size: 14px;
  line-height: 22px;
  color: #1a1f4d;
  margin: 12px 0 0;
}

.fe-no-main {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.fe-no-hdr {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 12px 8px 16px;
  flex-shrink: 0;
}

.fe-no-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 20px;
  background: rgba(64, 73, 154, 0.1);
  border: 1px solid rgba(64, 73, 154, 0.18);
}

.fe-no-pill-icon {
  font-size: 15px;
  color: #40499a;
  line-height: 1;
}

.fe-no-pill-name {
  font-size: 12px;
  font-weight: 600;
  color: #2a2e5e;
}

.fe-no-pill-id {
  font-size: 11px;
  color: #9097b8;
}

.fe-no-x {
  margin-left: auto;
  border: 0;
  background: transparent;
  padding: 4px;
  line-height: 1;
  color: #6b7280;
  cursor: pointer;
  border-radius: 8px;
  transition: background 120ms ease, color 120ms ease;
}
.fe-no-x i {
  font-size: 20px;
}
.fe-no-x:hover {
  background: rgba(64, 73, 154, 0.08);
  color: #40499a;
}

.fe-no-back {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: 0;
  background: transparent;
  padding: 4px 8px;
  color: #40499a;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  border-radius: 8px;
  transition: background 120ms ease;
}
.fe-no-back i {
  font-size: 18px;
}
.fe-no-back:hover {
  background: rgba(64, 73, 154, 0.08);
}

.fe-no > .wm-scrim {
  transition: background 220ms ease;
}

.fe-no.fe-no--stacked > .wm-scrim {
  background: rgba(11, 11, 13, 0.62);
}

.fe-no > .wm-scrim > .wm-dialog {
  transition: box-shadow 220ms ease;
}

.fe-no.fe-no--stacked > .wm-scrim > .wm-dialog {
  box-shadow: 0 10px 10px rgba(0, 0, 0, 0.34), 0 16px 24px 10px rgba(0, 0, 0, 0.22);
}

@media (prefers-reduced-motion: reduce) {
  .fe-no > .wm-scrim,
  .fe-no > .wm-scrim > .wm-dialog {
    transition: none;
  }
}
.fe-no-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 12px 16px 8px;
  position: relative;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.fe-no-body::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.fe-node-link .qdnapro-answer-option__label--static.is-empty {
  font-style: normal;
  color: #c2410c;
}

.fe-no-style-block {
  margin-bottom: 18px;
}
.fe-no-style-block .fe-nm-q-label {
  display: block;
  margin-bottom: 8px;
}

.fe-no-style {
  border: 1px solid #e6e8ef;
  border-radius: 12px;
  padding: 14px;
}

.fe-no-colors {
  display: flex;
  justify-content: flex-start;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--default {
  --qcp-bg: #3a4290;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--indigo {
  --qcp-bg: #4F46E5;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--default_dark {
  --qcp-bg: #7C3AED;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--purple {
  --qcp-bg: #DB2777;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--pink {
  --qcp-bg: #D97706;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--green {
  --qcp-bg: #059669;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--blue {
  --qcp-bg: #0284C7;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--grey {
  --qcp-bg: #475569;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--orange {
  --qcp-bg: #E05A38;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-grey {
  --qcp-bg: #f0f1f2;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-grey-2 {
  --qcp-bg: #c4c7cc;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-red {
  --qcp-bg: #fee3e3;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-red-2 {
  --qcp-bg: #fbaaaa;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-yellow {
  --qcp-bg: #fef6db;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-yellow-2 {
  --qcp-bg: #fde594;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-green {
  --qcp-bg: #e2faf1;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-green-2 {
  --qcp-bg: #8becc5;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-blue {
  --qcp-bg: #e6eff9;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-blue-2 {
  --qcp-bg: #b5ceed;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-bright-blue {
  --qcp-bg: #85a1ec;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-bright-blue-2 {
  --qcp-bg: #d6e0f9;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-pink {
  --qcp-bg: #f6e1e8;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-dark-pink {
  --qcp-bg: #e5a6b9;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-purple {
  --qcp-bg: #ebe9fb;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--tag-dark-purple {
  --qcp-bg: #c4bcf3;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--qdna-purple {
  --qcp-bg: #3a4290;
}
.fe-no-colors .qdnapro-color-picker .qcp-swatch--qdna-orange {
  --qcp-bg: #f59e0b;
}

.fe-no-img .fe-label-align-toolbar {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  margin-left: auto;
}

.fe-no-ftr {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-top: 1px solid #e1e3e6;
}

.fe-no-ftr-left {
  flex: 1 1 0;
  display: flex;
  align-items: center;
}

.fe-no-ftr-right {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

.fe-no-adv-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid #d8daea;
  background: #fff;
  border-radius: 8px;
  padding: 6px 12px;
  color: #40499a;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease;
}
.fe-no-adv-btn i {
  font-size: 16px;
}
.fe-no-adv-btn:hover {
  background: rgba(64, 73, 154, 0.06);
  border-color: #b0b8e8;
}

.fe-no-play {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: #40499a;
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(64, 73, 154, 0.35);
  transition: transform 120ms ease, box-shadow 120ms ease;
}
.fe-no-play i {
  font-size: 20px;
  margin-left: 2px;
}
.fe-no-play:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(64, 73, 154, 0.45);
}

/* ── Live "how it looks in the app" preview (fase 2) ──────────────
   Mirrors the app's qtypes.scss (.flow-question-*) at panel scale.
   Colors: primary #40499A, yes #6BB6AB, no #DE5066. [Kim + Claude 2026-06-18] */
.fe-no-preview {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
}

.fe-no-preview-cap {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #9097b8;
}

.fe-pv {
  padding: 4px 0 8px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.fe-pv-screen {
  position: relative;
  background: #ffffff;
  border: 1px solid #d8daea;
  border-radius: 14px;
  padding: 14px;
  box-shadow: 0 6px 18px rgba(20, 24, 60, 0.1);
  flex: 0 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.fe-pv-screen::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.fe-pv-question {
  position: relative;
}

.fe-pv-title {
  color: #40499A;
}

.fe-pv-title--center {
  text-align: center;
}

.fe-pv-label {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.25;
  word-break: break-word;
}

.fe-pv-sub {
  font-size: 12px;
  margin-top: 2px;
  opacity: 0.85;
}

.fe-pv-body {
  margin-top: 12px;
}

.fe-pv-yesno-wrap {
  display: flex;
  flex-direction: column;
}

.fe-pv-yesno {
  display: flex;
  gap: 8px;
}

.fe-pv-yesno qdnapro-answer-button {
  flex: 1 1 0;
  min-width: 0;
}

.fe-pv-yesno--stacked {
  flex-direction: column;
}

.fe-pv-yesno--stacked qdnapro-answer-button {
  flex: 0 0 auto;
  width: 100%;
}

.fe-pv-btn {
  flex: 1 1 0;
  border-radius: 10px;
  padding: 12px 8px;
  text-align: center;
  color: #ffffff;
  font-weight: 600;
  font-size: 13px;
}

.fe-pv-btn--yes {
  background: #6BB6AB;
}

.fe-pv-btn--no {
  background: #DE5066;
}

.fe-pv-options {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fe-pv-opts-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fe-pv-opts-wrap.fe-pv-opts--cols2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}

.fe-pv-opt {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  background: #40499A;
  color: #ffffff;
  border-radius: 10px;
  padding: 10px 28px 10px 14px;
  font-size: 13px;
  font-weight: 600;
  opacity: 0.5;
  word-break: break-word;
  cursor: pointer;
  transition: opacity 0.12s ease, background 0.12s ease;
}
.fe-pv-opt:hover {
  opacity: 0.75;
}

.fe-pv-opt-icon {
  flex-shrink: 0;
}

.fe-pv-opt--color-positive {
  background: var(--c-signal-green-text, #428b6e);
}

.fe-pv-opt--color-warning {
  background: var(--c-warn-amber-500, #d97706);
}

.fe-pv-opt--color-negative {
  background: var(--c-signal-red-text, #c65a5a);
}

.fe-pv-opt--color-neutral_alt {
  background: var(--c-signal-blue-text, #6a8ab4);
}

.fe-pv-score {
  padding: 6px 2px;
}
.fe-pv-score qdnapro-score-scale {
  display: block;
}

.fe-pv-comment {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed rgba(180, 188, 220, 0.55);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fe-pv-comment-label {
  font-size: 13px;
  font-weight: 500;
  color: #1f2430;
}

.fe-pv-smile {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  padding: 6px 2px;
}

.fe-pv-smile-face {
  cursor: pointer;
  line-height: 0;
  transition: transform 0.12s ease;
}
.fe-pv-smile-face img {
  width: 44px;
  height: 44px;
  object-fit: contain;
  display: block;
}
.fe-pv-smile-face:hover {
  transform: scale(1.08);
}

.fe-pv-smile-face--active {
  transform: scale(1.14);
}

.fe-pv-smile-face--active:hover {
  transform: scale(1.14);
}

.fe-pv-opt--empty {
  font-style: italic;
}

.fe-pv-opt--active {
  opacity: 1;
}
.fe-pv-opt--active::after {
  content: "\f012c";
  font-family: "Material Design Icons";
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 16px;
}

.fe-pv-options-empty {
  padding: 10px 2px;
}

.fe-pv-options-empty-title {
  font-size: 13px;
  font-weight: 600;
  color: #2a2c3a;
  margin-bottom: 2px;
}

.fe-pv-options-empty-hint {
  font-size: 12px;
  line-height: 1.4;
  color: #9aa0bd;
}

/* Multi-radio "Toon als dropdown" preview = the REAL qdnapro-select (it brings
   its own styling). Just let it sit flush in the preview card. [Kim 2026-06-20] */
.fe-pv-select {
  display: block;
}

/* ---- Import answer options (modal + trigger) ---- [Kim 2026-06-20] */
.fe-answeropts-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 20px 0 8px;
}
.fe-answeropts-head .qdnapro-modal-label {
  margin: 0;
}

.fe-answeropts-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}

.fe-import-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 6px 4px;
  background: none;
  border: none;
  color: #40499A;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  border-radius: 8px;
}
.fe-import-trigger .mdi {
  font-size: 16px;
}
.fe-import-trigger:hover {
  color: #2f367a;
  text-decoration: underline;
}

.fe-import-trigger--head {
  margin-top: 0;
}

.fe-bulk-actions-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 8px;
  padding: 8px 10px;
  background: rgba(64, 73, 154, 0.06);
  border-radius: 10px;
}
.fe-bulk-actions-row qdnapro-icon {
  margin-right: 4px;
}

.fe-grade-row {
  display: flex;
  align-items: center;
  gap: 8px;
  border-radius: 10px;
  transition: background-color 120ms ease-out;
}
.fe-grade-row qdnapro-answer-option {
  flex: 1 1 auto;
  min-width: 0;
}

.fe-grade-row--checked {
  background: rgba(64, 73, 154, 0.06);
}

.fe-grade-select {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
}

.fe-answer-row-wrap {
  display: flex;
  align-items: center;
  gap: 2px;
  width: 100%;
  min-width: 0;
}
.fe-answer-row-wrap qdnapro-answer-option {
  flex: 1 1 auto;
  min-width: 0;
}

.fe-answer-appearance {
  position: relative;
  flex: 0 0 auto;
}

.fe-answer-pending-tag {
  flex: 0 0 auto;
  font-size: 11px;
  line-height: 1.2;
  color: var(--qdna-color-text-muted, #6b7280);
  background: rgba(107, 114, 128, 0.1);
  border-radius: 999px;
  padding: 3px 8px;
  white-space: nowrap;
}

.fe-answer-appearance-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 6px;
  border: 1px solid transparent;
  background: transparent;
  color: #8a8fb8;
  cursor: pointer;
  font-size: 14px;
  transition: background 120ms, color 120ms, border-color 120ms;
}
.fe-answer-appearance-trigger:hover, .fe-answer-appearance-trigger--active {
  background: #eef0ff;
  color: #40499a;
  border-color: #d4d8ee;
}

.fe-oa-modal {
  z-index: 9350;
}

.fe-oa-browse-body {
  display: flex;
  gap: 28px;
  height: 100%;
  min-height: 0;
}

.fe-oa-browse-left {
  flex: 0 0 296px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 22px;
  overflow-y: auto;
  padding: 2px 4px 2px 2px;
}

.fe-oa-browse-right {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.fe-oa-preview {
  padding: 12px;
  border-radius: 10px;
  background: #f4f5fb;
}
.fe-oa-preview qdnapro-answer-button {
  display: block;
}

[data-theme=dark] .fe-oa-preview {
  background: rgba(255, 255, 255, 0.04);
}

.fe-oa-block {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fe-oa-nav {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 16px;
  border-top: 1px solid #e5e5ea;
}

.fe-oa-nav-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 15px;
  font-weight: 600;
  color: #0b0b0d;
}

.fe-oa-nav-title-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fe-oa-dirty-dot {
  flex-shrink: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #c98a1f;
}

.fe-oa-nav-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.fe-oa-nav-counter {
  flex-shrink: 0;
  font-size: 12px;
  color: #6b7280;
  white-space: nowrap;
}

.fe-oa-nav-hint {
  margin: 0;
  font-size: 12px;
  line-height: 18px;
  color: #8a90ac;
}

[data-theme=dark] .fe-oa-nav {
  border-top-color: #40444d;
}

.fe-oa-icon-search {
  flex-shrink: 0;
}

.fe-oa-grid-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding-top: 12px;
  margin-top: -4px;
  border-top: 1px solid #e5e5ea;
}

[data-theme=dark] .fe-oa-grid-scroll {
  border-top-color: #40444d;
}

.fe-oa-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, 36px);
  gap: 8px;
  justify-content: start;
  padding-bottom: 4px;
}

.fe-oa-tile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid #e1e3e6;
  border-radius: 6px;
  background: #ffffff;
  color: #565b66;
  cursor: pointer;
  outline: none;
  transition: background 120ms ease, border-color 120ms ease, box-shadow 150ms ease;
}
.fe-oa-tile qdnapro-icon {
  pointer-events: none;
}
.fe-oa-tile:hover {
  background: #ebedfb;
  border-color: #b8bde8;
}
.fe-oa-tile:focus-visible {
  border-color: #40499a;
  box-shadow: 0 0 0 4px rgba(70, 82, 243, 0.2);
}
.fe-oa-tile--selected {
  border-color: #4652f3;
  background: rgba(70, 82, 243, 0.06);
  box-shadow: 0 0 0 3px rgba(70, 82, 243, 0.25);
  color: #40499a;
}

[data-theme=dark] .fe-oa-tile {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
  color: #d1d5db;
}
[data-theme=dark] .fe-oa-tile:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.18);
}
[data-theme=dark] .fe-oa-tile.fe-oa-tile--selected {
  border-color: #a5acff;
  background: rgba(70, 82, 243, 0.18);
  box-shadow: 0 0 0 2px rgba(70, 82, 243, 0.3);
  color: #a5acff;
}

.fe-oa-icon-empty {
  text-align: center;
  padding: 24px 8px;
  color: #6e6e73;
  font-size: 13px;
}

.fe-oa-icon-count {
  flex-shrink: 0;
  text-align: right;
  font-size: 11px;
  color: #6e6e73;
}

.fe-fi-anchor {
  flex: 0 0 auto;
}

.fe-fi-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 10px;
  border-radius: 8px;
  border: 1px solid #e2e4ef;
  background: #ffffff;
  color: #40499a;
  cursor: pointer;
  font-size: 13px;
  transition: background 120ms, border-color 120ms;
}
.fe-fi-trigger:hover, .fe-fi-trigger--active {
  background: #eef0ff;
  border-color: #d4d8ee;
}

.fe-fi-trigger-label {
  max-width: 140px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fe-import {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 420px;
}

.fe-import-pane {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 170px;
}

/* qdnapro-modal toggles .modal-tab-panel(-active); supply the show/hide here
   (the modal build ships no tab-panel CSS of its own). [Kim 2026-06-20] */
.fe-import-pane.modal-tab-panel:not(.modal-tab-panel-active) {
  display: none;
}

/* Drop-zone resting content (it is an overlay wrapper, so it needs its own
   body for height + a click target). */
.fe-import-dz {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 28px 16px;
  text-align: center;
  color: #6B7192;
}
.fe-import-dz .mdi {
  font-size: 28px;
  color: #40499A;
}
.fe-import-dz-text {
  font-size: 14px;
  font-weight: 600;
  color: #2A2F45;
}
.fe-import-dz-hint {
  font-size: 12px;
  color: #8A90AC;
}
.fe-import-dz .fe-import-pick {
  margin-top: 8px;
}

.fe-import-hint {
  margin: 0;
  font-size: 12px;
  color: #8A90AC;
}

.fe-import-count {
  margin-left: 4px;
  color: #40499A;
  font-weight: 600;
}

.fe-import-file {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  background: #F4F5FB;
  border-radius: 10px;
}
.fe-import-file-name {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13px;
  color: #2A2F45;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.fe-import-file-remove {
  flex: 0 0 auto;
  background: none;
  border: none;
  color: #8A90AC;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
}
.fe-import-file-remove:hover {
  color: #40499A;
}

.fe-import-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 4px;
}

.fe-pv-field {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1.5px solid #40499A;
  border-radius: 10px;
  padding: 10px 12px;
  background: #ffffff;
}

.fe-pv-field--counter {
  justify-content: space-between;
}

.fe-pv-step {
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  border: 1px solid #40499A;
  border-radius: 7px;
  background: #ffffff;
  color: #40499A;
  font-size: 16px;
  line-height: 1;
  padding: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 120ms ease;
}
.fe-pv-step:hover {
  background: rgba(64, 73, 154, 0.1);
}
.fe-pv-step:active {
  background: rgba(64, 73, 154, 0.18);
}

.fe-pv-input {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.fe-pv-cur {
  color: #40499A;
  font-weight: 700;
}

.fe-pv-realinput {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  background: transparent;
  outline: none;
  padding: 0;
  font-size: 14px;
  font-family: inherit;
  color: #0b0b0d;
}
.fe-pv-realinput::placeholder {
  color: #9aa0b5;
}

.fe-pv-ph {
  color: #9aa0b5;
  font-size: 14px;
}

.fe-pv-barcode {
  margin-left: auto;
  color: #40499A;
  font-size: 18px;
}

.fe-no input[type=date]::before,
.fe-no input[type=time]::before,
.fe-pv input[type=date]::before,
.fe-pv input[type=time]::before {
  content: none !important;
}

.fe-pv-imgaction {
  padding-bottom: 12px;
  margin-bottom: 14px;
  border-bottom: 1px solid #eceef5;
}

.fe-pv-photo {
  margin: 12px 0;
}
.fe-pv-photo img {
  display: block;
  width: 100%;
  max-height: 220px;
  object-fit: cover;
  border-radius: 14px;
}

.fe-pv-photo--s img,
.fe-pv-photo--m img {
  width: auto;
  max-width: 100%;
  margin: 0 auto;
  object-fit: contain;
}

.fe-pv-photo--s img {
  max-height: 75px;
}

.fe-pv-photo--m img {
  max-height: 130px;
}

.fe-pv-req {
  color: #DE5066;
  font-weight: 700;
  margin-left: 2px;
  cursor: help;
}

.fe-pv-single {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fe-pv-field--error {
  border-color: #DE5066 !important;
}

.fe-pv-error {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: #DE5066;
}
.fe-pv-error .mdi {
  font-size: 14px;
}

.fe-pv-hint {
  font-size: 11px;
  color: #9aa0bd;
  line-height: 1.3;
}

.fe-pv-textarea {
  width: 100%;
  min-height: 96px;
  resize: none;
  text-align: left;
  line-height: 1.4;
  overflow: hidden;
}

.fe-pv-realinput--center {
  text-align: center;
}

.fe-pv-affix {
  color: #40499A;
  font-size: 18px;
  margin-left: 6px;
  flex: 0 0 auto;
  opacity: 0.8;
}

.fe-pv-sum {
  align-self: flex-end;
}

.fe-pv-units {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fe-pv-unit-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 4px 0;
}

.fe-pv-unit-info {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
  width: 160px;
  min-width: 160px;
  max-width: 160px;
  overflow: hidden;
  cursor: pointer;
  user-select: none;
}

.fe-pv-unit-img {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #eef0fa;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.fe-pv-unit-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.fe-pv-unit-img.fe-pv-unit-img--icon img {
  object-fit: contain;
  padding: 8px;
  box-sizing: border-box;
}

.fe-pv-units-empty {
  font-size: 12px;
  line-height: 1.4;
  color: #9aa0bd;
  padding: 8px 2px;
}

.fe-pv-unit-label {
  font-size: 13px;
  font-weight: 600;
  color: #2a2c3a;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fe-pv-unit-counter {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 0 0 auto;
}

.fe-pv-unit-input {
  width: 96px;
  text-align: center;
  border: 1px solid #ccc;
  border-radius: 8px;
  padding: 6px 8px;
  font: inherit;
  color: #2a2c3a;
  background: #fff;
}
.fe-pv-unit-input::placeholder {
  color: #9aa0bd;
}

.fe-pv-units-note {
  font-size: 11px;
  color: #9aa0bd;
  line-height: 1.3;
}

.fe-pv-unit-control {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1 1 auto;
  min-width: 0;
}

.fe-pv-unit-field {
  flex: 1 1 auto;
  min-width: 0;
}
.fe-pv-unit-field .input-field-row, .fe-pv-unit-field .input-field {
  min-width: 0;
}

.fe-pv-unit-control--yesno {
  flex-wrap: wrap;
}
.fe-pv-unit-control--yesno qdnapro-answer-button {
  flex: 1 1 0;
  min-width: 64px;
}
.fe-pv-unit-control--yesno qdnapro-answer-button .qdnapro-answer-button__tick,
.fe-pv-unit-control--yesno qdnapro-answer-button .qdnapro-answer-button__icon {
  display: none;
}

.fe-pv-unit-control--yesno-stacked {
  flex-direction: column;
  align-items: stretch;
}
.fe-pv-unit-control--yesno-stacked qdnapro-answer-button {
  flex: 1 1 auto;
}

.fe-pv-unit-control--photo {
  flex: 0 0 auto;
  justify-content: flex-end;
}
.fe-pv-unit-control--photo .fe-pv-camera-btn--mini {
  opacity: 1;
}

.fe-pv-unit-select {
  flex: 1 1 auto;
  min-width: 0;
}

.fe-pv-unit-scan {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 8px;
  background: #40499A;
  color: #fff;
  cursor: pointer;
  transition: background-color 120ms ease-out;
}
.fe-pv-unit-scan qdnapro-icon {
  width: 18px;
  height: 18px;
}
.fe-pv-unit-scan:hover {
  background: #353d86;
}

.fe-pv-barcode-btn {
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 6px;
  background: #40499A;
  color: #fff;
  cursor: pointer;
}
.fe-pv-barcode-btn .mdi {
  font-size: 16px;
}

.fe-pv-scan-btn {
  margin-top: 10px;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 14px;
  border: none;
  border-radius: 10px;
  background: #40499A;
  color: #fff;
  font: inherit;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  transition: background-color 120ms ease-out;
}
.fe-pv-scan-btn qdnapro-icon {
  width: 18px;
  height: 18px;
}
.fe-pv-scan-btn:hover {
  background: #353d86;
}

.fe-pv-photo-node {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fe-pv-camera-btn {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 14px;
  border: none;
  border-radius: 10px;
  background: #40499A;
  color: #fff;
  font: inherit;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  transition: background-color 120ms ease-out;
}
.fe-pv-camera-btn qdnapro-icon {
  width: 18px;
  height: 18px;
}
.fe-pv-camera-btn:hover {
  background: #353d86;
}

.fe-pv-signature-pad {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 96px;
  padding: 16px;
  border: 1.5px dashed #b0b8e8;
  border-radius: 12px;
  background: #f5f6ff;
  color: #8b93c9;
}

.fe-pv-signature-line {
  width: 70%;
  height: 2px;
  border-radius: 2px;
  background: #d3d8f2;
}

.fe-pv-toast {
  position: absolute;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: calc(100% - 32px);
  padding: 10px 14px;
  border-radius: 10px;
  background: #2a2c3a;
  color: #fff;
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.3;
  box-shadow: 0 6px 20px rgba(20, 22, 40, 0.28);
  z-index: 5;
}
.fe-pv-toast qdnapro-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.fe-pv-toast-fade-enter-active,
.fe-pv-toast-fade-leave-active {
  transition: opacity 180ms ease-out, transform 180ms ease-out;
}

.fe-pv-toast-fade-enter-from,
.fe-pv-toast-fade-leave-to {
  opacity: 0;
  transform: translateX(-50%) translateY(8px);
}

.fe-pv-formcard-empty {
  font-size: 12.5px;
  color: #9aa0bd;
  padding: 8px 0;
}

.fe-pv-formcard-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.fe-pv-formcard-item {
  padding-top: 12px;
  border-top: 1px solid #eceef5;
}
.fe-pv-formcard-item:first-child {
  padding-top: 0;
  border-top: none;
}

.fe-pv-formcard-item-label {
  font-size: 13px;
  font-weight: 600;
  color: #2a2c3a;
  margin-bottom: 8px;
  word-break: break-word;
}

.fe-pv-formcard-item-label--has-sub {
  margin-bottom: 2px;
}

.fe-pv-formcard-item-sub {
  font-size: 12px;
  color: #6b7093;
  margin-bottom: 8px;
  word-break: break-word;
}

.fe-pv-yesno--mini .fe-pv-btn {
  padding: 8px 6px;
  font-size: 12px;
}

.fe-pv-opt--mini {
  padding: 8px 12px;
  font-size: 12px;
  cursor: default;
}

.fe-pv-formcard-input-mock {
  height: 36px;
  border: 1.5px solid #40499A;
  border-radius: 10px;
  background: #ffffff;
  opacity: 0.6;
}

.fe-pv-camera-btn--mini {
  padding: 8px 12px;
  font-size: 12px;
  opacity: 0.85;
  cursor: default;
}

.fe-pv-field--mini {
  padding: 8px 12px;
}

.fe-pv-formcard-smile {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 2px 0;
}
.fe-pv-formcard-smile img {
  width: 34px;
  height: 34px;
  object-fit: contain;
  display: block;
}

.fe-pv-formcard-scoremock {
  pointer-events: none;
}

.fe-pv-formcard-signature {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 40px;
  padding: 8px 12px;
  border: 1.5px dashed #b0b8e8;
  border-radius: 10px;
  background: #f5f6ff;
  color: #8b93c9;
}
.fe-pv-formcard-signature .fe-pv-signature-line {
  flex: 1;
  width: auto;
}

.fe-pv-display {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.fe-pv-display-content {
  color: #1f2430;
  font-size: 14px;
  line-height: 1.55;
}
.fe-pv-display-content h1, .fe-pv-display-content h2, .fe-pv-display-content h3 {
  color: #40499A;
  font-weight: 600;
  line-height: 1.25;
  margin: 0.9em 0 0.3em;
}
.fe-pv-display-content h1:first-child, .fe-pv-display-content h2:first-child, .fe-pv-display-content h3:first-child {
  margin-top: 0;
}
.fe-pv-display-content h1 {
  font-size: 20px;
}
.fe-pv-display-content h2 {
  font-size: 17px;
}
.fe-pv-display-content h3 {
  font-size: 15px;
}
.fe-pv-display-content p {
  margin: 0 0 0.7em;
}
.fe-pv-display-content p:last-child {
  margin-bottom: 0;
}
.fe-pv-display-content ul, .fe-pv-display-content ol {
  padding-left: 20px;
  margin: 0 0 0.7em;
}
.fe-pv-display-content li {
  margin: 0.2em 0;
}
.fe-pv-display-content a {
  color: #40499A;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.fe-pv-display-content a:hover {
  color: #333a7b;
}
.fe-pv-display-content img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

.fe-pv-display-video {
  display: block;
  width: 100%;
  max-height: 220px;
  border-radius: 10px;
  background: #000;
}

.fe-pv-display-empty {
  padding: 16px;
  border: 1px dashed #d0d4e8;
  border-radius: 10px;
  text-align: center;
}

.fe-pv-display-empty-title {
  font-size: 13px;
  font-weight: 600;
  color: #40499A;
  margin-bottom: 4px;
}

.fe-pv-display-empty-hint {
  font-size: 12px;
  color: #9aa0bd;
  line-height: 1.35;
}

.fe-rt-sublabel {
  margin: 2px 0 8px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--qdna-color-text-muted, #6b7280);
}

.fe-video-block qdnapro-button {
  margin-right: 8px;
}

.fe-video-preview {
  display: flex;
  align-items: center;
  gap: 10px;
}

.fe-video-el {
  max-width: 260px;
  max-height: 160px;
  border-radius: 8px;
  background: #000;
}

.fe-video-errors {
  margin-top: 6px;
}

.fe-video-error {
  font-size: 12px;
  color: #c33a30;
  line-height: 1.35;
}

.fe-no .fe-set-divider {
  margin: 16px 0;
}
.fe-no .fe-set-divider .fe-set-divider-label {
  font-size: 12px;
  font-weight: 600;
  color: #6b6f78;
  margin-bottom: 8px;
}

.fe-no .fe-set-number-sub {
  display: block;
  font-size: 12px;
  line-height: 1.35;
  color: #6b6f78;
  margin: 2px 0 8px;
}

.fe-set-number-field {
  max-width: 120px;
}

.fe-form--compact-number .fe-set-number-field {
  max-width: 72px;
}

.fe-set-image {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
}

.fe-set-image-preview {
  max-width: 220px;
  max-height: 160px;
  border-radius: 8px;
  border: 1px solid #e6e6ea;
  object-fit: contain;
}

.fe-set-image-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.fe-no .fe-set-disabled-hint {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 2px 0 6px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #fdf4e3;
  color: #8a6100;
  font-size: 12px;
  line-height: 1.35;
}
.fe-no .fe-set-disabled-hint qdnapro-icon {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin-top: 1px;
  color: #c98a00;
}

.fe-no .wm-info {
  flex: 0 0 380px;
}

.fe-no--noprev .wm-info {
  flex: 0 0 260px;
}

.fe-no .fe-section {
  border-bottom: 0;
  padding: 10px 0;
}

.fe-no .fe-set-block {
  display: flex;
  flex-direction: column;
}

.fe-no .fe-set-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
}

.fe-no .fe-ti-inputs {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 0 0 12px 2px;
}
.fe-no .fe-ti-inputs.fe-ti-inputs--multi {
  flex-direction: row;
  flex-wrap: wrap;
}
.fe-no .fe-ti-inputs.fe-ti-inputs--multi .fe-ti-field {
  flex: 1 1 140px;
}

.fe-no .fe-ti-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.fe-no .fe-ti-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--qdna-color-text-muted, #6b7280);
}

.fe-no .fe-ti-input {
  height: 38px;
  padding: 0 12px;
  font-size: 14px;
  border: 1px solid #d8d6ea;
  border-radius: 8px;
  background: #fff;
  color: #1f2430;
  outline: none;
  transition: border-color 140ms ease, box-shadow 140ms ease;
}
.fe-no .fe-ti-input:focus {
  border-color: #40499a;
  box-shadow: 0 0 0 2px rgba(64, 73, 154, 0.15);
}

.fe-no .qdnapro-modal-toggle-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.fe-no .qdnapro-modal-toggle-label {
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  color: #0b0b0d;
}

.fe-no .qdnapro-modal-toggle-sub {
  font-size: 12px;
  line-height: 16px;
  color: #6b7280;
}

.fe-no .qdnapro-modal-section-title,
.fe-no .fe-set-section {
  margin: 18px 0 2px;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: #40499a;
}

.fe-no .fe-no-tiles-block {
  margin: 8px 0 16px;
}
.fe-no .fe-no-tiles-block .qdnapro-modal-toggle-label {
  display: block;
  margin-bottom: 8px;
}

.fe-no-seg {
  flex: 1 1 auto;
  display: flex;
  justify-content: center;
}

.fe-no .wm-info .fe-no-pill {
  align-self: flex-start;
}

.fe-no .fe-no-inputtype {
  margin-top: 20px;
}
.fe-no .fe-no-inputtype .fe-no-inputtype-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.fe-no .fe-no-inputtype .fe-no-inputtype-head-text {
  min-width: 0;
}
.fe-no .fe-no-inputtype .fe-nm-q-label {
  display: block;
  margin-bottom: 4px;
}
.fe-no .fe-no-inputtype .fe-no-inputtype-hint {
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--qdna-color-text-muted, #6b7280);
}

.fe-multi-next-step-hint {
  margin: 0 0 10px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--qdna-color-text-muted, #6b7280);
}

.fe-scale-sync-hint {
  margin: 0 0 10px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--qdna-color-text-muted, #6b7280);
}

.fe-link-list {
  position: relative;
}

.fe-drop-line {
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background: #4652f3;
  border-radius: 1px;
  box-shadow: 0 0 10px rgba(70, 82, 243, 0.55);
  pointer-events: none;
  z-index: 5;
  transition: top 120ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.qdnapro-answer-option[data-fe-settle] {
  animation: fe-ao-settle 260ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

@keyframes fe-ao-settle {
  0% {
    box-shadow: 0 8px 20px rgba(70, 82, 243, 0.2);
  }
  100% {
    box-shadow: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .fe-drop-line {
    transition: none;
  }
  .qdnapro-answer-option[data-fe-settle] {
    animation: none;
  }
}
.fe-prop-warning {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 6px 0 0;
  padding: 8px 10px;
  border-radius: 8px;
  background: #fff3cd;
  border: 1px solid #f0d060;
  color: #9a6a10;
  font-size: 12px;
  line-height: 1.4;
}
.fe-prop-warning .mdi {
  font-size: 15px;
  line-height: 1.3;
  flex-shrink: 0;
}

.fe-prop-alert {
  margin: 6px 0 0;
}

.fe-no-preview-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.fe-no-preview-btn qdnapro-icon {
  margin-right: 6px;
}

.fe-no-noprev {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1 1 auto;
  min-height: 0;
}

.fe-no-noprev-illu {
  display: flex;
  justify-content: center;
}
.fe-no-noprev-illu .illustration-img {
  width: auto;
  max-width: 100%;
  max-height: min(42vh, 400px);
  margin: 0 auto;
}

.fe-no-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 8px;
  margin-bottom: 14px;
}

.fe-no .fe-no-typesettings-btn {
  flex-shrink: 0;
}
.fe-no .fe-no-typesettings-btn qdnapro-icon:first-child {
  margin-right: 6px;
}
.fe-no .fe-no-typesettings-btn qdnapro-icon:last-child {
  margin-left: 4px;
}

.fe-no .fe-no-format-row {
  margin-top: 12px;
}
.fe-no .fe-no-format-row .fe-no-format-select {
  display: block;
  width: 100%;
}

.fe-no .fe-no-startflow-btn {
  position: relative;
  overflow: hidden;
}
.fe-no .fe-no-startflow-btn qdnapro-icon {
  margin-right: 6px;
}
.fe-no .fe-no-startflow-btn::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 55%;
  background: linear-gradient(120deg, transparent 0%, rgba(255, 255, 255, 0.45) 50%, transparent 100%);
  transform: translateX(-200%);
  animation: fe-no-startflow-shimmer 3.4s ease-in-out infinite;
  pointer-events: none;
}
.fe-no .fe-no-startflow-btn[disabled]::after {
  content: none;
}

@keyframes fe-no-startflow-shimmer {
  0% {
    transform: translateX(-200%);
  }
  30% {
    transform: translateX(220%);
  }
  100% {
    transform: translateX(220%);
  }
}
.fe-no-img {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.fe-no-img-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}

.fe-no-img-pos {
  position: relative;
  display: inline-flex;
}

.fe-no-img-pos-backdrop {
  position: fixed;
  inset: 0;
  z-index: 40;
}

.fe-no-img-pos-menu {
  position: fixed;
  z-index: 50;
  min-width: 200px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(20, 24, 60, 0.18);
  padding: 4px;
}

.fe-no-img-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 7px 14px;
  font-size: 13px;
  font-weight: 600;
  color: #40499a;
  background: #fff;
  border: 1px solid #d8d6ea;
  border-radius: 8px;
  cursor: pointer;
  transition: background 140ms ease, border-color 140ms ease;
}
.fe-no-img-btn qdnapro-icon {
  color: #40499a;
}
.fe-no-img-btn:hover {
  background: #f4f3fb;
  border-color: #c3bfe4;
}

.fe-no-img-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  color: #b3261e;
  background: transparent;
  border: 1px solid #ecc9c6;
  border-radius: 8px;
  cursor: pointer;
}
.fe-no-img-remove:hover {
  background: #fdeceb;
}

.fe-logic-section .fe-logic-match {
  margin: 6px 0 12px;
}
.fe-logic-section .fe-logic-empty-hint {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 8px;
  background: #f4f5fb;
  color: #6b6f78;
  font-size: 13px;
  line-height: 1.4;
}
.fe-logic-section .fe-logic-add-if-btn {
  flex: 0 0 auto;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 600;
  color: #4652f3;
  background: #fff;
  border: 1.5px solid rgba(70, 82, 243, 0.3);
  border-radius: 7px;
  cursor: pointer;
  transition: background 140ms ease, border-color 140ms ease;
}
.fe-logic-section .fe-logic-add-if-btn:hover {
  background: #f0f1fb;
  border-color: rgba(70, 82, 243, 0.55);
}
.fe-logic-section .fe-logic-rules {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.fe-logic-section .fe-logic-rule {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #f8f8fb;
}
.fe-logic-section .fe-logic-rule-prefix {
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 600;
  color: #40499a;
  min-width: 52px;
}
.fe-logic-section .fe-logic-rule-node {
  flex: 1 1 220px;
  min-width: 180px;
}
.fe-logic-section .fe-logic-rule-op {
  flex: 0 0 auto;
  min-width: 72px;
}
.fe-logic-section .fe-logic-rule-value {
  flex: 1 1 160px;
  min-width: 120px;
}
.fe-logic-section .fe-logic-rule-del {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  padding: 0;
  margin-left: auto;
  color: #9aa0cc;
  background: transparent;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: color 140ms ease, background 140ms ease;
}
.fe-logic-section .fe-logic-rule-del:hover {
  color: #c8485b;
  background: rgba(200, 72, 91, 0.08);
}
.fe-logic-section .fe-logic-target-label {
  margin-top: 14px;
  display: block;
}

.fe-logic-section.fe-logic-section--focus {
  border-radius: 10px;
  animation: fe-logic-focus-flash 1300ms ease;
}

@keyframes fe-logic-focus-flash {
  0% {
    background: rgba(64, 73, 154, 0.14);
  }
  100% {
    background: transparent;
  }
}
.fe-fcq-empty-state {
  padding: 12px 0;
}

.fe-fcq-empty-illustration {
  max-height: 160px;
  width: auto;
}

.fe-fcq-add-row {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  margin-top: 8px;
  padding: 10px;
  border: 1px dashed #a8b2e8;
  border-radius: 8px;
  background: transparent;
  color: #40499a;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease;
}
.fe-fcq-add-row:hover {
  background: rgba(64, 73, 154, 0.06);
  border-color: #40499a;
}

.fe-fcq-add-row__icon {
  font-size: 15px;
}

.fe-typepicker-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 10px;
}

.fe-typepicker-tile {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px 10px;
  border: 1px solid #e2e4ef;
  border-radius: 8px;
  background: #f4f5fb;
  color: #2a2e5e;
  font-size: 13px;
  line-height: 1.3;
  text-align: center;
  cursor: pointer;
  transition: border-color 140ms, box-shadow 140ms, background 140ms;
}
.fe-typepicker-tile:hover, .fe-typepicker-tile:focus-visible {
  border-color: #a8b2e8;
  background: #eef0ff;
  box-shadow: 0 1px 5px rgba(64, 73, 154, 0.1);
}

.fe-typepicker-tile__icon {
  font-size: 22px;
  color: #40499a;
}

.fe-typepicker-tile__label {
  word-break: break-word;
}

.fe-fcq-jump-line {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(64, 73, 154, 0.07);
  color: #2a2e5e;
  font-size: 13px;
  line-height: 1.4;
}

.fe-fcq-jump-line__icon {
  flex-shrink: 0;
  margin-top: 1px;
  font-size: 15px;
  color: #40499a;
}

.fe-fcq-list {
  position: relative;
  padding: 0;
  margin: 0;
  list-style: none;
}
.fe-fcq-list > .fe-fcq-row + .fe-fcq-row {
  margin-top: 6px;
}

.fe-fcq-row {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
  padding: 10px 10px 10px 18px;
  border-radius: 8px;
  border: 1px solid #e2e4ef;
  background: color-mix(in srgb, var(--theme-btn-color, #40499a) 12%, #fff);
  cursor: pointer;
  transition: border-color 140ms, box-shadow 140ms, background 140ms;
}
.fe-fcq-row:hover {
  border-color: #a8b2e8;
  box-shadow: 0 1px 5px rgba(64, 73, 154, 0.1);
}
.fe-fcq-row:hover .fe-fcq-row__drag {
  opacity: 1;
}
.fe-fcq-row:hover .fe-fcq-row__move {
  opacity: 1;
  pointer-events: all;
}
.fe-fcq-row:hover .fe-fcq-row__delete {
  opacity: 1;
  pointer-events: all;
}

.fe-fcq-row__text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.fe-fcq-row__drag {
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 22px;
  background: #4652f3;
  border-radius: 2px;
  opacity: 0;
  transition: opacity 150ms ease;
  pointer-events: none;
}

.fe-fcq-row__icon {
  flex-shrink: 0;
  font-size: 18px;
  color: #40499a;
}

.fe-fcq-row__label {
  min-width: 0;
  font-size: 15px;
  line-height: 1.4;
  color: #2a2e5e;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fe-fcq-row__chip {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  max-width: 100%;
  padding: 2px 8px;
  border: 1px solid rgba(64, 73, 154, 0.22);
  border-radius: 20px;
  background: rgba(64, 73, 154, 0.08);
  color: #40499a;
  font-size: 12px;
  line-height: 1.5;
  cursor: pointer;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: background 120ms ease, border-color 120ms ease;
}
.fe-fcq-row__chip:hover {
  background: rgba(64, 73, 154, 0.14);
  border-color: rgba(64, 73, 154, 0.34);
}

.fe-fcq-row__chip-icon {
  flex-shrink: 0;
  font-size: 12px;
}

.fe-fcq-row__required {
  flex-shrink: 0;
  color: #c65a5a;
  font-weight: 600;
}

.fe-fcq-row__move {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: #40499a;
  background: #eef0ff;
  border: 1px solid #c7cced;
  border-radius: 5px;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms, background 120ms, border-color 120ms;
}
.fe-fcq-row__move .mdi {
  font-size: 15px;
}
.fe-fcq-row__move:hover {
  background: #dde1ff;
  border-color: #a8b2e8;
}
.fe-fcq-row__move.fe-fcq-row__move--active {
  opacity: 1;
  pointer-events: all;
  background: #dde1ff;
  border-color: #40499a;
}

.fe-fcq-row__delete {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: #c94040;
  background: #fde8e8;
  border: 1px solid #e8b0b0;
  border-radius: 5px;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms, background 120ms, border-color 120ms;
}
.fe-fcq-row__delete .mdi {
  font-size: 15px;
}
.fe-fcq-row__delete:hover {
  background: #ffcccc;
  border-color: #c94040;
}

.fe-fcq-move-row {
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  padding: 10px;
  border-radius: 8px;
  border: 1px dashed #b0b8e8;
  background: #eef0ff;
}

.fe-fcq-move-select {
  flex: 1 1 220px;
  min-width: 160px;
}

.fe-fcq-move-empty {
  flex: 1;
  font-size: 13px;
  color: #6b6f78;
}

.fe-fcq-move-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
}

.fe-fcq-move-cancel,
.fe-fcq-move-confirm {
  flex-shrink: 0;
  padding: 6px 12px;
  font-size: 13px;
  font-weight: 600;
  border-radius: 6px;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease, opacity 120ms ease;
}

.fe-fcq-move-cancel {
  color: #40499a;
  background: transparent;
  border: 1px solid transparent;
}
.fe-fcq-move-cancel:hover {
  background: rgba(64, 73, 154, 0.08);
}

.fe-fcq-move-confirm {
  color: #fff;
  background: #40499a;
  border: 1px solid #40499a;
}
.fe-fcq-move-confirm:hover {
  background: #333a7b;
}
.fe-fcq-move-confirm:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.fe-fcq-move-toast {
  position: sticky;
  bottom: 6px;
  z-index: 3;
  margin-top: 10px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
  padding: 9px 14px;
  border-radius: 10px;
  background: #1f7a4d;
  color: #fff;
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.3;
  box-shadow: 0 6px 20px rgba(20, 22, 40, 0.24);
}

.fe-fcq-move-toast__icon {
  flex-shrink: 0;
  font-size: 16px;
}

.fe-fcq-move-toast-fade-enter-active,
.fe-fcq-move-toast-fade-leave-active {
  transition: opacity 180ms ease-out, transform 180ms ease-out;
}

.fe-fcq-move-toast-fade-enter-from,
.fe-fcq-move-toast-fade-leave-to {
  opacity: 0;
  transform: translateY(8px);
}

.fe2-handover-btn {
  position: relative;
}

.fe2-count-badge {
  position: absolute;
  top: -3px;
  right: -4px;
  min-width: 15px;
  height: 15px;
  padding: 0 4px;
  border-radius: 999px;
  background: #e14e47;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  line-height: 15px;
  text-align: center;
  pointer-events: none;
}

.qdnapro-modal.fe-ho-modal.modal-size-large .modal-dialog {
  height: auto;
  max-height: min(800px, 100vh - 48px);
}

.qdnapro-modal.fe-ho-modal.modal-size-large .modal-window {
  height: auto;
}

.fe-ho-summary {
  margin: 2px 2px 10px;
  font-size: 12px;
  color: #6b7192;
}

.fe-ho-group {
  padding: 12px 2px 14px;
}

.fe-ho-group + .fe-ho-group {
  border-top: 1px solid rgba(17, 24, 39, 0.08);
}

.fe-ho-group-head {
  display: flex;
  align-items: center;
  gap: 8px;
}
.fe-ho-group-head qdnapro-button {
  margin-left: auto;
}
.fe-ho-group-head qdnapro-icon {
  margin-right: 4px;
}

.fe-ho-group-dot {
  flex: 0 0 auto;
  width: 9px;
  height: 9px;
  border-radius: 3px;
  background: #e14e47;
}

.fe-ho-group-title {
  font-size: 13px;
  font-weight: 700;
  color: #1a1f4d;
  letter-spacing: 0.02em;
}

.fe-ho-group-source {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 4px 0 2px 1px;
  font-size: 12px;
  color: #6b7192;
}
.fe-ho-group-source qdnapro-icon {
  flex: 0 0 auto;
  margin-top: 2px;
  color: #9097b8;
}

.fe-ho-group-source:last-of-type {
  margin-bottom: 8px;
}

.fe-ho-none {
  margin: 4px 0 8px;
  font-size: 12px;
  color: #9097b8;
}

.fe-ho-add {
  margin-top: 8px;
}

.fe-ho-trailing {
  display: flex;
  align-items: center;
  gap: 10px;
}

.fe-ho-recipients {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  font-size: 12px;
  line-height: 1.35;
}

.fe-ho-recip {
  display: flex;
  align-items: baseline;
  gap: 6px;
  max-width: 220px;
}

.fe-ho-recip-key {
  flex: 0 0 auto;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #9097b8;
}

.fe-ho-recip-names {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #1a1f4d;
}

.fe-ho-recip--cc .fe-ho-recip-names {
  color: #6b7192;
}

.fe-ho-recip--none {
  color: #9097b8;
}

.fe-ho-source-text {
  min-width: 0;
  overflow-wrap: anywhere;
}

.fe-ho-source-text b {
  color: #3f3f56;
  font-weight: 600;
}

.fe-ho-source-prefix {
  margin-right: 4px;
}

.fe-ho-source-arrow {
  margin: 0 5px;
  color: #9097b8;
}

.fe-ho-source-option {
  color: #40499a;
  font-weight: 600;
}

.fe-score .fe-score-name {
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px solid #eceaf4;
}
.fe-score .fe-score-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.fe-score .fe-score-name-row qdnapro-select {
  flex: 0 0 220px;
  max-width: 220px;
}
.fe-score .fe-score-name-input {
  flex: 0 0 220px;
  max-width: 220px;
  min-width: 0;
}
.fe-score .fe-score-input {
  flex: 0 0 72px;
  max-width: 72px;
}
.fe-score .fe-score-trailing {
  display: flex;
  align-items: center;
  gap: 6px;
}
.fe-score .fe-score-unit {
  font-size: 12px;
  color: #6b7192;
  flex: 0 0 auto;
  min-width: 14px;
}
.fe-score .fe-score-list {
  margin-top: 4px;
}
.fe-score .fe-score-summary {
  margin: 12px 0 0;
  padding: 9px 12px;
  background: #f5f4fb;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  color: #3f3f56;
}
.fe-score .fe-score-band-head,
.fe-score .fe-score-band-fields {
  display: grid;
  grid-template-columns: 72px 72px 72px auto;
  align-items: center;
  gap: 8px;
  justify-content: start;
}
.fe-score .fe-score-band-head {
  margin: 8px 0 4px;
}
.fe-score .fe-score-band-col {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: #8c91ab;
}
.fe-score .fe-score-band-row {
  padding: 8px 0;
  border-bottom: 1px solid #f0f0f6;
}
.fe-score .fe-score-band-row:last-of-type {
  border-bottom: 0;
}
.fe-score .fe-score-band-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-left: 8px;
}
.fe-score .fe-score-band-sentence {
  margin: 4px 0 0;
  font-size: 12px;
  color: #6b7192;
}
.fe-score .fe-score-band-sentence--problem {
  color: #b0561f;
  font-weight: 500;
}

/* ============================================================
   Dev X-ray — component/hand-rolled overlay (dev right only)
   ------------------------------------------------------------
   Driven by web/js/dev-xray.js. Markers are DATA ATTRIBUTES,
   never classes: several components rewrite their own className
   on re-render, which would wipe a class-based hook.

   The marker colours are DELIBERATELY off-system (lime + magenta).
   A dev overlay must never be mistaken for real UI, so it may not
   borrow brand or signal tokens. The panel itself does use tokens,
   because it is a normal surface.

   Line style carries the meaning too, not just hue, so the two
   states stay apart without relying on red/green:
     solid  = component
     dashed = hand-rolled
   ============================================================ */
[data-xray=component] {
  outline: 2px solid #00e07a !important;
  outline-offset: -2px !important;
}

[data-xray=handrolled] {
  outline: 2px dashed #ff2d95 !important;
  outline-offset: -2px !important;
}

/* Hover label. KNOWN LIMITATION: this borrows ::after, so an element
   that already draws an icon through ::after loses it while hovered
   with the overlay on. Hover-only keeps the blast radius small; the
   panel's clickable work list is the real way to navigate. */
[data-xray]:hover {
  position: relative;
}
[data-xray]:hover::after {
  content: attr(data-xray-tag);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2147483000;
  padding: 2px 6px;
  border-radius: 0 0 var(--radius-sm, 4px) 0;
  font: 600 10px/1.4 ui-monospace, "SF Mono", Menlo, monospace;
  letter-spacing: 0.02em;
  white-space: nowrap;
  pointer-events: none;
}

[data-xray=component]:hover::after {
  background: #00e07a;
  color: var(--c-grey-950, #0b0b0d);
}

[data-xray=handrolled]:hover::after {
  background: #ff2d95;
  color: #ffffff;
}

/* Pulse used by the "click a row to find it" jump. */
@keyframes dev-xray-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(255, 45, 149, 0);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(255, 45, 149, 0.55);
  }
}
[data-xray-pulse] {
  animation: dev-xray-pulse 0.5s ease-in-out 3;
}

/* ---------------------------------------------------------- panel */
.dev-xray {
  position: fixed;
  right: var(--s-4, 16px);
  bottom: var(--s-4, 16px);
  z-index: 2147483001;
  display: flex;
  flex-direction: column;
  width: 320px;
  max-height: 70vh;
  overflow: hidden;
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: var(--radius-md, 8px);
  background: var(--c-bg-card, #ffffff);
  box-shadow: var(--shadow-card, 0 4px 16px rgba(20, 25, 80, 0.12));
  font-family: inherit;
  color: var(--c-text-body, #40444d);
}
.dev-xray__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--s-3, 12px) var(--s-4, 16px);
  border-bottom: 1px solid var(--c-border-soft, #f0f1f2);
}
.dev-xray__title {
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-heading, #0b0b0d);
}
.dev-xray__actions {
  display: flex;
  align-items: center;
  gap: var(--s-2, 8px);
}
.dev-xray__close, .dev-xray__min {
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
  color: var(--c-text-muted, #6b7280);
}
.dev-xray__close:hover, .dev-xray__min:hover {
  color: var(--c-text-heading, #0b0b0d);
}
.dev-xray__min {
  font-size: 18px;
}
.dev-xray {
  /* ------------------------------------------------ collapsed (pill) */
}
.dev-xray[data-min] {
  width: auto;
  max-height: none;
  border-radius: 999px;
}
.dev-xray__pill {
  display: flex;
  align-items: center;
  gap: var(--s-3, 12px);
  padding: 7px var(--s-3, 12px);
  border: 0;
  background: none;
  cursor: pointer;
}
.dev-xray__pilltitle {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text-heading, #0b0b0d);
}
.dev-xray__pillcount {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font: 700 11px/1.4 ui-monospace, "SF Mono", Menlo, monospace;
  color: var(--c-text-heading, #0b0b0d);
}
.dev-xray__pillcount::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
}
.dev-xray__pillcount[data-kind=component]::before {
  background: #00e07a;
}
.dev-xray__pillcount[data-kind=handrolled]::before {
  background: #ff2d95;
}
.dev-xray__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--s-2, 8px);
  padding: var(--s-3, 12px) var(--s-4, 16px);
}
.dev-xray__stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--s-2, 8px);
  border-radius: var(--radius-sm, 4px);
  border-left: 3px solid transparent;
  background: var(--c-bg-subtle-purple, #f0f1f2);
}
.dev-xray__stat[data-kind=component] {
  border-left-color: #00e07a;
}
.dev-xray__stat[data-kind=handrolled] {
  border-left-color: #ff2d95;
}
.dev-xray__num {
  font-size: 18px;
  font-weight: 700;
  color: var(--c-text-heading, #0b0b0d);
}
.dev-xray__label {
  font-size: 10px;
  line-height: 1.3;
  color: var(--c-text-muted, #6b7280);
}
.dev-xray__subhead {
  padding: var(--s-2, 8px) var(--s-4, 16px);
  border-top: 1px solid var(--c-border-soft, #f0f1f2);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-text-muted, #6b7280);
}
.dev-xray__list {
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-y: auto;
  flex: 1 1 auto;
}
.dev-xray__row {
  margin: 0;
  padding: 0;
}
.dev-xray__rowbtn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-2, 8px);
  width: 100%;
  padding: 6px var(--s-4, 16px);
  border: 0;
  background: none;
  cursor: pointer;
  text-align: left;
}
.dev-xray__rowbtn:hover {
  background: var(--c-bg-card-hover, #f0f1f2);
}
.dev-xray__rowname {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font: 500 11px/1.4 ui-monospace, "SF Mono", Menlo, monospace;
  color: var(--c-text-body, #40444d);
}
.dev-xray__rowcount {
  flex: 0 0 auto;
  min-width: 20px;
  padding: 1px 5px;
  border-radius: var(--radius-pill, 999px);
  background: var(--c-bg-subtle-purple, #f0f1f2);
  font-size: 10px;
  font-weight: 600;
  text-align: center;
  color: var(--c-text-muted, #6b7280);
}
.dev-xray__more {
  padding: 6px var(--s-4, 16px);
  font-size: 10px;
  font-style: italic;
  color: var(--c-text-muted, #6b7280);
}
.dev-xray__foot {
  padding: var(--s-2, 8px) var(--s-4, 16px) var(--s-3, 12px);
  border-top: 1px solid var(--c-border-soft, #f0f1f2);
}
.dev-xray__btn {
  width: 100%;
  padding: 6px 10px;
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: var(--radius-sm, 4px);
  background: var(--c-bg-card, #ffffff);
  cursor: pointer;
  font-size: 11px;
  font-weight: 600;
  color: var(--c-text-body, #40444d);
}
.dev-xray__btn:hover {
  background: var(--c-bg-card-hover, #f0f1f2);
}

/* The panel must never mark itself. */
.dev-xray [data-xray] {
  outline: 0 !important;
}
.dev-xray [data-xray]::after {
  content: none;
}

/* ============================================================
   Dev tokens — hardcoded-colour overlay (dev right only)
   ------------------------------------------------------------
   Driven by web/js/dev-tokens.js. Marks elements whose colour
   comes from a literal value instead of var(--…), which is the
   real dark-mode readiness question.

   Runs ALONGSIDE the röntgen (_dev-xray.scss), so it must use a
   different visual channel: röntgen owns `outline`, this owns an
   inset box-shadow. Both can be on at once and stay readable.

   Marker colour is deliberately off-system (amber), same reason
   as in _dev-xray.scss: a dev overlay must never read as real UI.
   ============================================================ */
[data-tokens=hardcoded] {
  box-shadow: inset 0 0 0 2px #ffb300 !important;
}

@keyframes dev-tokens-pulse {
  0%, 100% {
    outline: 0 solid rgba(255, 179, 0, 0);
    outline-offset: 0;
  }
  50% {
    outline: 6px solid rgba(255, 179, 0, 0.6);
    outline-offset: 2px;
  }
}
[data-tokens-pulse] {
  animation: dev-tokens-pulse 0.5s ease-in-out 3;
}

/* ---------------------------------------------------------- panel */
.dev-tokens {
  position: fixed;
  left: var(--s-4, 16px);
  bottom: var(--s-4, 16px);
  z-index: 2147483001;
  display: flex;
  flex-direction: column;
  width: 300px;
  max-height: 70vh;
  overflow: hidden;
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: var(--radius-md, 8px);
  background: var(--c-bg-card, #ffffff);
  box-shadow: var(--shadow-card, 0 4px 16px rgba(20, 25, 80, 0.12));
  font-family: inherit;
  color: var(--c-text-body, #40444d);
}
.dev-tokens__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--s-3, 12px) var(--s-4, 16px);
  border-bottom: 1px solid var(--c-border-soft, #f0f1f2);
}
.dev-tokens__title {
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text-heading, #0b0b0d);
}
.dev-tokens__actions {
  display: flex;
  align-items: center;
  gap: var(--s-2, 8px);
}
.dev-tokens__close, .dev-tokens__min {
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
  color: var(--c-text-muted, #6b7280);
}
.dev-tokens__close:hover, .dev-tokens__min:hover {
  color: var(--c-text-heading, #0b0b0d);
}
.dev-tokens__min {
  font-size: 18px;
}
.dev-tokens {
  /* ------------------------------------------------ collapsed (pill) */
}
.dev-tokens[data-min] {
  width: auto;
  max-height: none;
  border-radius: 999px;
}
.dev-tokens__pill {
  display: flex;
  align-items: center;
  gap: var(--s-3, 12px);
  padding: 7px var(--s-3, 12px);
  border: 0;
  background: none;
  cursor: pointer;
}
.dev-tokens__pilltitle {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text-heading, #0b0b0d);
}
.dev-tokens__pillcount {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font: 700 11px/1.4 ui-monospace, "SF Mono", Menlo, monospace;
  color: var(--c-text-heading, #0b0b0d);
}
.dev-tokens__pillcount::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
}
.dev-tokens__pillcount[data-kind=colours]::before {
  background: #ffb300;
}
.dev-tokens__pillcount[data-kind=elements]::before {
  box-shadow: inset 0 0 0 2px #ffb300;
}
.dev-tokens__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--s-2, 8px);
  padding: var(--s-3, 12px) var(--s-4, 16px);
}
.dev-tokens__stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--s-2, 8px);
  border-radius: var(--radius-sm, 4px);
  border-left: 3px solid #ffb300;
  background: var(--c-bg-subtle-purple, #f0f1f2);
}
.dev-tokens__num {
  font-size: 18px;
  font-weight: 700;
  color: var(--c-text-heading, #0b0b0d);
}
.dev-tokens__label {
  font-size: 10px;
  line-height: 1.3;
  color: var(--c-text-muted, #6b7280);
}
.dev-tokens__subhead {
  padding: var(--s-2, 8px) var(--s-4, 16px);
  border-top: 1px solid var(--c-border-soft, #f0f1f2);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-text-muted, #6b7280);
}
.dev-tokens__list {
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-y: auto;
  flex: 1 1 auto;
}
.dev-tokens__row {
  margin: 0;
  padding: 0;
}
.dev-tokens__rowbtn {
  display: flex;
  align-items: center;
  gap: var(--s-2, 8px);
  width: 100%;
  padding: 5px var(--s-4, 16px);
  border: 0;
  background: none;
  cursor: pointer;
  text-align: left;
}
.dev-tokens__rowbtn:hover {
  background: var(--c-bg-card-hover, #f0f1f2);
}
.dev-tokens__swatch {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  border-radius: 3px;
  border: 1px solid var(--c-border-card, #c4c7cc);
  background-image: linear-gradient(45deg, #cccccc 25%, transparent 25%, transparent 75%, #cccccc 75%), linear-gradient(45deg, #cccccc 25%, transparent 25%, transparent 75%, #cccccc 75%);
  background-size: 8px 8px;
  background-position: 0 0, 4px 4px;
}
.dev-tokens__colour {
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font: 500 11px/1.4 ui-monospace, "SF Mono", Menlo, monospace;
  color: var(--c-text-body, #40444d);
}
.dev-tokens__count {
  flex: 0 0 auto;
  min-width: 20px;
  padding: 1px 5px;
  border-radius: var(--radius-pill, 999px);
  background: var(--c-bg-subtle-purple, #f0f1f2);
  font-size: 10px;
  font-weight: 600;
  text-align: center;
  color: var(--c-text-muted, #6b7280);
}
.dev-tokens__more {
  padding: 6px var(--s-4, 16px);
  font-size: 10px;
  font-style: italic;
  color: var(--c-text-muted, #6b7280);
}
.dev-tokens__foot {
  padding: var(--s-2, 8px) var(--s-4, 16px) var(--s-3, 12px);
  border-top: 1px solid var(--c-border-soft, #f0f1f2);
}
.dev-tokens__btn {
  width: 100%;
  padding: 6px 10px;
  border: 1px solid var(--c-border-card, #e1e3e6);
  border-radius: var(--radius-sm, 4px);
  background: var(--c-bg-card, #ffffff);
  cursor: pointer;
  font-size: 11px;
  font-weight: 600;
  color: var(--c-text-body, #40444d);
}
.dev-tokens__btn:hover {
  background: var(--c-bg-card-hover, #f0f1f2);
}

/* Neither panel may mark itself. */
.dev-tokens [data-tokens],
.dev-xray [data-tokens] {
  box-shadow: none !important;
}

/* ============================================================
   Dev dark mode (dev right only)
   ------------------------------------------------------------
   Driven by web/js/dev-dark-mode.js, which sets data-theme="dark"
   on <html>. That attribute is what LAYER B of
   components/v2/design-tokens/_design-tokens.scss already listens
   to, so every component that uses the semantic tokens flips by
   itself. Nothing is forced here.

   THAT IS THE WHOLE POINT: anything still painting a hardcoded
   hex stays light and therefore stands out. Light patches are the
   work list, not a bug in this file. Do NOT "fix" them by piling
   overrides in here; fix the component's own SCSS to use tokens.

   This file no longer paints anything. It used to force html/body
   to var(--c-bg-page), because those carried a compiled-away SCSS
   variable that no theme could reach. That is fixed at the source:
   partials/v1/base.scss now points html/body at --c-bg-page and
   --c-text-body, so the page surface flips on its own.
   ============================================================ */
html[data-theme=dark] {
  color-scheme: dark;
}

.inbox-container {
  height: calc(100vh - 76px);
  max-height: calc(100vh - 76px);
  overflow: hidden;
  padding: 8px 0 0 8px;
  display: flex;
  flex-direction: column;
}

.inbox-selection-group {
  display: flex;
  align-items: center;
  gap: 4px;
}

.inbox-count-display {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 40px;
  padding: 0 12px;
  border-radius: 8px;
  background: #e6e9ff;
  color: var(--c-brand-purple);
  font-size: 16px;
  font-weight: 400;
  white-space: nowrap;
  user-select: none;
  flex-shrink: 0;
}

.search-actions-bar {
  padding-bottom: 8px;
  display: flex;
  gap: 16px;
  align-items: center;
}
.search-actions-bar .search-section {
  flex: 0 1 400px;
  min-width: 160px;
  max-width: 400px;
}
.search-actions-bar .search-section .search-input-wrapper {
  position: relative;
}
.search-actions-bar .actions-section {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--c-brand-purple);
  flex: 1 1 auto;
  min-width: 0;
  animation: inbox-toolbar-in 180ms ease-out;
}
.search-actions-bar .actions-section .divider {
  height: 30px;
  border-left: 2px solid rgba(0, 0, 0, 0.05);
  margin: 0 4px;
}
.search-actions-bar .actions-section .actions-inline {
  display: flex;
  align-items: center;
  gap: 12px;
}
.search-actions-bar .actions-section .actions-overflow-anchor {
  display: none;
  position: relative;
}
.search-actions-bar .actions-section .actions-overflow-anchor .inbox-menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 200;
}
.search-actions-bar .actions-section .actions-overflow-anchor.inbox-menu-open .inbox-menu {
  display: block;
  transform-origin: top right;
  animation: inbox-menu-in 140ms ease-out;
}

.main-content {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  overflow: hidden;
  gap: 8px;
}

.left-sidebar {
  flex: 0 0 180px;
  width: 180px;
  max-width: 180px;
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  border-radius: 8px;
  background-color: var(--c-bg-card);
  border-right: 1px solid var(--c-border-card);
  padding: 4px 8px;
  font-weight: 400;
}
.left-sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px 12px 20px;
  font-weight: 600;
  color: var(--c-brand-purple);
  font-size: 18px;
}
.left-sidebar hr {
  width: 90%;
  margin: 8px;
}
.left-sidebar .sidebar-section {
  margin-bottom: 8px;
}
.left-sidebar .sidebar-section .sidebar-items-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}
.left-sidebar .sidebar-section .section-header {
  display: flex;
  align-items: center;
  padding: 6px 8px;
  font-weight: 600;
  color: var(--c-text-body);
  font-size: 0.75rem;
  border-radius: 8px;
  gap: 8px;
}
.left-sidebar .sidebar-section .section-header > i.collapse-btn {
  flex-shrink: 0;
  width: 20px;
  text-align: center;
  font-size: 14px;
  margin: 0;
  color: #5f6368;
  cursor: pointer;
}
.left-sidebar .sidebar-section .section-header.active {
  color: var(--c-brand-purple);
  background-color: #EEEFFA;
}
.left-sidebar .sidebar-section .section-header.active > i.collapse-btn {
  color: var(--c-brand-purple);
}
.left-sidebar .sidebar-section .section-header-title {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0;
}
.left-sidebar .sidebar-section .section-header-title i {
  flex-shrink: 0;
  width: 16px;
  text-align: center;
  font-size: 14px;
  margin: 0;
}
.left-sidebar .sidebar-section .section-header-title .section-label {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  min-width: 0;
}
.left-sidebar .sidebar-section .section-header-title .section-label .section-title {
  flex: 1;
  min-width: 0;
}
.left-sidebar .sidebar-section .section-header-title .section-label .count {
  font-size: 11px;
  color: var(--c-text-disabled-pp);
  flex-shrink: 0;
}
.left-sidebar .sidebar-section .sidebar-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px 6px 28px;
  color: var(--c-text-body);
  font-size: 12px;
  font-weight: 400;
  line-height: 20px;
  cursor: pointer;
  border-radius: 8px;
  user-select: none;
}
.left-sidebar .sidebar-section .sidebar-item i {
  font-size: 14px;
  flex-shrink: 0;
  width: 16px;
  text-align: center;
  margin: 0;
  color: var(--c-text-body);
}
.left-sidebar .sidebar-section .sidebar-item .sidebar-item-label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.left-sidebar .sidebar-section .sidebar-item .sidebar-item-count {
  font-size: 11px;
  color: var(--c-text-disabled-pp);
  flex-shrink: 0;
}
.left-sidebar .sidebar-section .sidebar-item:hover {
  background-color: var(--c-bg-subtle-hover);
}
.left-sidebar .sidebar-section .sidebar-item.active {
  background-color: #EEEFFA;
  color: var(--c-brand-purple);
  font-weight: 500;
}
.left-sidebar .sidebar-section .sidebar-item.active i {
  color: var(--c-brand-purple);
}
.left-sidebar .sidebar-section .section-label {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.middle-panel {
  flex: 1 1 300px;
  width: auto !important;
  min-width: 300px;
  max-width: 380px;
  min-height: 0;
  border-right: 1px solid var(--c-border-card);
  display: flex;
  flex-direction: column;
  background-color: var(--c-bg-card);
  border-radius: 8px;
}
.middle-panel .panel-header {
  border-bottom: 1px solid var(--c-border-card);
  height: 56px;
  box-sizing: border-box;
  padding: 0 8px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.middle-panel .panel-header .filter-tabs {
  display: flex;
  gap: 4px;
  background-color: #e9e9e9;
  border-radius: 24px;
  padding: 6px 8px;
  font-weight: 400;
}
.middle-panel .panel-header .filter-tabs .filter-tab {
  padding: 4px 12px;
  border: none;
  background: none;
  color: var(--c-text-muted);
  font-size: 1rem;
  border-radius: 24px;
  box-shadow: none !important;
}
.middle-panel .panel-header .filter-tabs .filter-tab:hover:not(.active) {
  background-color: rgba(0, 0, 0, 0.05);
}
.middle-panel .panel-header .filter-tabs .filter-tab.active {
  background-color: var(--c-bg-card);
  color: var(--c-brand-purple);
}
.middle-panel .panel-header .panel-actions {
  display: flex;
  gap: 4px;
  padding: 0px 4px;
}
.middle-panel .panel-header .inbox-menu-anchor {
  position: relative;
}
.middle-panel .panel-header .inbox-menu-anchor .inbox-menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 200;
}
.middle-panel .panel-header .inbox-menu-anchor.inbox-menu-open .inbox-menu {
  display: block;
  transform-origin: top right;
  animation: inbox-menu-in 140ms ease-out;
}
.middle-panel .multi-select-hint {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  padding: 6px 12px;
  font-size: 11px;
  color: var(--c-text-disabled-pp);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.middle-panel .multi-select-hint:empty {
  display: none;
}
.middle-panel .multi-select-hint .inbox-select-count {
  font-weight: 500;
  color: var(--c-brand-purple);
}
.middle-panel .multi-select-hint .inbox-select-clear {
  cursor: pointer;
  color: var(--c-brand-purple);
  font-weight: 500;
  padding: 2px 6px;
  border-radius: 6px;
}
.middle-panel .multi-select-hint .inbox-select-clear:hover {
  background: #EEEFFA;
}
.middle-panel .timeline-section {
  flex: 1;
  overflow-y: auto;
  padding: 4px 8px;
}
.middle-panel .timeline-section .timeline-header {
  font-weight: 600;
  color: var(--c-text-body);
  margin-bottom: 8px;
  font-size: 14px;
}
.middle-panel .timeline-section .message-item {
  padding: 4px 8px;
  margin-bottom: 4px;
  display: flex;
  border-radius: 8px;
  gap: 8px;
  cursor: pointer;
  border: none;
}
.middle-panel .timeline-section qdnapro-inbox-message.inbox-message-selected:hover {
  background: #daddf2 !important;
}

.right-panel {
  flex: 8 1 0;
  width: auto !important;
  min-width: 0;
  overflow-y: auto;
  background-color: var(--c-bg-card);
  border-radius: 8px;
}

/* Let the detail view fill the panel so its "nothing selected" empty state
   centres vertically like the other panel-3 empty states (which live in
   #inbox-detail-empty, a direct child of .right-panel). */
#notification_detail-view {
  height: 100%;
}

.inbox-skeleton-card {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 4px 8px;
  min-height: 108px;
  box-sizing: border-box;
}
.inbox-skeleton-card__avatar {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
}
.inbox-skeleton-card__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-top: 4px;
}
.inbox-skeleton-card__sender {
  height: 12px;
  width: 45%;
}
.inbox-skeleton-card__subject {
  height: 14px;
  width: 80%;
}
.inbox-skeleton-card__preview {
  height: 12px;
  width: 65%;
}
.inbox-skeleton-card__tag {
  height: 24px;
  width: 88px;
  border-radius: 12px;
}

@keyframes inbox-msg-enter {
  0% {
    opacity: 0;
    transform: translateY(6px) scale(0.98);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.inbox-msg-stagger {
  opacity: 0;
  animation: inbox-msg-enter 240ms cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.qdnapro-tooltip {
  z-index: 10001 !important;
}

qdnapro-inbox-message[data-deadline-status=overdue] .inbox-message-due,
qdnapro-inbox-message[data-deadline-status=overdue] .inbox-message-due qdnapro-icon {
  color: #d93025 !important;
}

qdnapro-inbox-message[data-deadline-status=due-soon] .inbox-message-due,
qdnapro-inbox-message[data-deadline-status=due-soon] .inbox-message-due qdnapro-icon {
  color: #e8810a !important;
}

.middle-panel .timeline-section .message-item:hover {
  background: var(--msg-bg-hover, var(--c-bg-subtle-hover)) !important;
}

.right-panel::-webkit-scrollbar,
.middle-panel .timeline-section::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.right-panel::-webkit-scrollbar-track,
.middle-panel .timeline-section::-webkit-scrollbar-track {
  background: transparent;
}
.right-panel::-webkit-scrollbar-thumb,
.middle-panel .timeline-section::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 8px;
  transition: background 160ms ease;
}
.right-panel:hover::-webkit-scrollbar-thumb, .right-panel:focus-within::-webkit-scrollbar-thumb,
.middle-panel .timeline-section:hover::-webkit-scrollbar-thumb,
.middle-panel .timeline-section:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
}
.right-panel::-webkit-scrollbar-thumb:hover,
.middle-panel .timeline-section::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.34);
}

.left-sidebar {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.left-sidebar::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.inbox-body {
  padding: 0 20px 12px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.inbox-body qdnapro-message-header {
  display: block;
  position: sticky;
  top: 0;
  background: var(--c-bg-card);
  z-index: 10;
  margin: 0 -20px;
}
.inbox-body qdnapro-message-header .mh-title-actions qdnapro-icon[name=bookmark],
.inbox-body qdnapro-message-header .mh-title-actions qdnapro-icon[name=square-rounded-badge] {
  color: #4652f3;
}
.inbox-body qdnapro-message-header .mh-title-actions qdnapro-button.inbox-action-blocked {
  cursor: not-allowed;
}
.inbox-body qdnapro-message-header .mh-title-actions qdnapro-button.inbox-action-blocked qdnapro-icon {
  color: var(--c-text-disabled);
}
.inbox-body-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 56px;
  box-sizing: border-box;
  position: sticky;
  top: 0;
  background: var(--c-bg-card);
  z-index: 10;
  margin: 0 -20px;
  padding: 0 0 0 20px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.inbox-body-title-label {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--c-brand-purple);
  font-size: 16px;
  font-weight: 600;
}
.inbox-body-title-actions {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  gap: 4px;
  color: var(--c-brand-purple);
}
.inbox-body-title-actions qdnapro-icon[name=bookmark],
.inbox-body-title-actions qdnapro-icon[name=square-rounded-badge] {
  color: #4652f3;
}
.inbox-body-title-actions qdnapro-button.inbox-action-blocked {
  cursor: not-allowed;
}
.inbox-body-title-actions qdnapro-button.inbox-action-blocked qdnapro-icon {
  color: var(--c-text-disabled);
}
.inbox-body-title-actions #inbox-dots-menu qdnapro-menu-item.inbox-dots-blocked {
  color: var(--c-text-disabled) !important;
  cursor: not-allowed;
  pointer-events: auto !important;
}
.inbox-body-title-actions #inbox-dots-menu qdnapro-menu-item.inbox-dots-blocked .menu-item-icon {
  color: var(--c-text-disabled) !important;
}
.inbox-body-title-actions .action-btn {
  display: flex;
  padding: 4px 10px;
}
.inbox-body-title-actions .action-btn:hover:not(.action-block) {
  cursor: pointer;
  background-color: #D9DBEB;
  border-radius: 8px;
}
.inbox-body-title-actions .action-btn i {
  font-size: 16px;
}
.inbox-body-title-actions .action-btn i.selected {
  color: #4852ea;
}
.inbox-body-title-actions .action-btn.action-block {
  opacity: 0.5;
}
.inbox-body-title-actions .divider {
  height: 30px;
  border-left: 2px solid rgba(0, 0, 0, 0.05);
  margin: 0 4px;
}
.inbox-body-header {
  animation: inbox-detail-in 200ms ease-out;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  margin: -6px -20px 0;
  padding-bottom: 6px;
}
.inbox-body-header .inbox-body-user {
  display: flex;
  gap: 16px;
  margin-bottom: 0;
  padding: 0 24px 0 24px;
}
.inbox-body-header .inbox-body-user .user-avatar .avatar-placeholder {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #f9e69e;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #e29334;
}
.inbox-body-header .inbox-body-user .user-avatar .avatar-placeholder i {
  font-size: 20px;
}
.inbox-body-header .inbox-body-user .user-avatar img {
  width: 40px;
  height: 40px;
  border-radius: 50%;
}
.inbox-body-header .inbox-body-user .user-info {
  flex: 1;
  display: flex;
  padding: 6px 0px;
  gap: 12px;
  align-items: center;
}
.inbox-body-header .inbox-body-user .user-info-name {
  display: block;
  font-weight: 600;
  color: var(--c-text-body);
  font-size: 15px;
}
.inbox-body-header .inbox-body-user .user-info-email {
  display: block;
  color: var(--c-text-muted);
  font-size: 14px;
  font-weight: 500;
}
.inbox-body-header .inbox-body-user .inbox-body-meta {
  text-align: right;
  font-size: 12px;
  color: var(--c-text-muted);
  font-weight: 500;
  display: flex;
  gap: 4px;
  align-items: center;
  justify-content: center;
}
.inbox-body-header .inbox-body-user .inbox-body-meta .time {
  display: block;
  font-weight: 600;
}
.inbox-body-header .inbox-body-user .inbox-body-meta .days {
  display: block;
}
.inbox-body-header .inbox-body-details {
  flex: 1;
  display: flex;
  font-weight: 500;
  flex-wrap: wrap;
}
.inbox-body-header .inbox-body-details .email-to-block {
  display: flex;
  flex-wrap: wrap;
}
.inbox-body-header .inbox-body-details .email-cc-block {
  display: flex;
  flex-wrap: wrap;
}
.inbox-body-header .inbox-body-details .inbox-body-field {
  display: block;
  font-size: 12px;
  color: var(--c-text-muted);
  margin-bottom: 2px;
}
.inbox-body-header .inbox-body-details .inbox-body-field-bold {
  font-weight: 600;
  padding-right: 4px;
}
.inbox-body-header .status-badges {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}
.inbox-body-header .status-badges .badge {
  font-size: 12px;
  display: flex;
  border-radius: 16px;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
}
.inbox-body-header .status-badges .badge.bg-danger {
  background-color: #efadac !important;
}
.inbox-body-header .status-badges .badge.bg-secondary {
  background-color: #c3bcef !important;
}
.inbox-body-header .status-badges .badge.bg-warning {
  background-color: #f9e69e !important;
}
.inbox-body-header .status-badges .badge.bg-info {
  background-color: #bacdea !important;
}
.inbox-body-header .status-badges .btn-sm {
  font-size: 12px;
  padding: 2px 8px;
  color: #4852ea;
  text-decoration: none;
}
.inbox-body-header .status-badges .btn-sm:hover {
  text-decoration: none;
}
.inbox-body-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.inbox-body-content .inbox-body-group {
  display: flex;
  font-size: 14px;
  padding: 4px 8px;
  flex-direction: column;
}
.inbox-body-content .inbox-body-group .inbox-body-label {
  display: flex;
  align-items: center;
  min-height: 20px;
  margin-bottom: 0;
  font-weight: 600;
  color: var(--c-brand-purple);
  font-size: 14px;
  line-height: 20px;
}
.inbox-body-content .inbox-body-group .inbox-body-label .inbox-q-type-icon {
  flex: 0 0 auto;
  margin-right: 6px;
  font-size: 18px;
  line-height: 1;
  color: #c2c2c2;
}
.inbox-body-content .inbox-body-group .inbox-body-label .inbox-q-node-id {
  flex: 0 0 auto;
  margin-left: 6px;
  font-size: 10px;
  font-weight: 400;
  line-height: 1;
  color: #c2c2c2;
}
.inbox-body-content .inbox-body-group .inbox-body-value {
  padding-left: 24px;
  color: #202124;
  font-weight: 400;
  font-size: 14px;
  line-height: 20px;
}
.inbox-body-content .inbox-body-group .inbox-body-value.sub-label {
  color: var(--c-brand-purple);
}
.inbox-body-content .task-status {
  position: relative;
  z-index: 1;
  padding: 8px 0;
  display: flex;
  justify-content: center;
  color: var(--c-text-disabled-pp);
  font-weight: 400;
  font-size: 14px;
  gap: 24px;
}
.inbox-body-content .task-status-block {
  display: flex;
  align-items: center;
  border: 1px solid #D9DBEB;
  border-radius: 12px;
  gap: 8px;
  padding: 6px 16px;
  background-color: var(--c-bg-card);
}
.inbox-body-content .task-status-block .status-badge {
  background-color: #bacdea;
  color: var(--c-brand-purple);
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 11px;
  margin-left: 8px;
}
.inbox-body-content .task-status-block .user-avatar .avatar-placeholder {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background-color: #f9e69e;
  display: flex;
  align-items: center;
  justify-content: center;
}
.inbox-body-content .task-status-block .user-avatar .avatar-placeholder i {
  font-size: 20px;
  color: #e29334;
}
.inbox-body-content .task-status-block .user-avatar .avatar-placeholder i:first {
  color: var(--c-brand-purple);
}
.inbox-body-content .task-status-block .user-avatar img {
  width: 28px;
  height: 28px;
  border-radius: 50%;
}
.inbox-body-content hr {
  border: 0;
  height: 1px;
  background: #D9DBEB;
  margin: -2rem -24px 28px;
}
.inbox-body-content qdnapro-message-actionbar {
  display: block;
  margin-top: 2rem;
  margin-bottom: 16px;
}
.inbox-body-content .input-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #EEEFFA;
  color: var(--c-brand-purple);
  padding: 16px;
  border-radius: 8px;
  gap: 8px;
  margin-top: 2rem;
  margin-bottom: 16px;
}
.inbox-body-content .input-footer-info {
  display: flex;
  align-items: center;
  gap: 10px;
}
.inbox-body-content .input-footer-info i {
  cursor: pointer;
}
.inbox-body-content .input-footer-action-btn {
  display: flex;
  align-items: center;
  gap: 16px;
  font-weight: 500;
}
.inbox-body-content .input-footer-action-btn .inbox-secondary-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 20px;
  cursor: pointer;
}
.inbox-body-content .input-footer-action-btn .inbox-primary-btn {
  color: white;
  background-color: var(--c-brand-purple);
  border-radius: 12px;
  padding: 8px 20px;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}

.multiple-selection {
  display: flex;
  justify-content: center;
  height: 72vh;
}
.multiple-selection-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
}
.multiple-selection-block-image {
  height: 175px;
  width: 175px;
}
.multiple-selection-block-message {
  color: #4852ea;
  font-weight: 600;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.custom-popup {
  position: fixed;
  top: 50px;
  left: 100px;
  width: 60%;
  background: var(--c-bg-card);
  border: 1px solid #ccc;
  border-radius: 10px;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.35);
  z-index: 9999;
  height: 90vh;
  overflow: hidden;
  resize: none;
}
.custom-popup .ui-resizable-se {
  width: 20px;
  height: 20px;
  right: 12px;
  bottom: 4px;
  cursor: se-resize;
  background: none;
}
.custom-popup .ui-resizable-se::after {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  margin: 5px 0 0 5px;
  border-right: 2px solid rgba(0, 0, 0, 0.25);
  border-bottom: 2px solid rgba(0, 0, 0, 0.25);
  border-radius: 0 0 3px 0;
}
.custom-popup .ui-resizable-se:hover::after {
  border-color: var(--c-brand-purple);
}
.custom-popup .ui-resizable-handle {
  z-index: 100;
}
.custom-popup-body {
  padding: 4px;
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  box-sizing: border-box;
}
.custom-popup-body .ui-draggable-handle {
  cursor: move;
}
.custom-popup-body .close-popup {
  padding: 6px 12px;
  border-radius: 10px;
}
.custom-popup-body .close-popup:hover {
  background-color: rgba(0, 0, 0, 0.05);
  cursor: pointer;
}

.popup-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #c3bcef;
  z-index: 9998;
  opacity: 0.2;
}

.title-bar {
  color: var(--c-brand-purple);
  font-weight: 600;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 24px;
  border-bottom: 1px solid var(--c-border-card);
}

.inbox-sidebar-toggle {
  display: none;
}

.inbox-mobile-back {
  display: none;
}

/* ── Phase 3: mobile (≤768px) — master-detail drill-down ───────────────────
   One pane at a time. The message list is the default ("master"); tapping a
   message slides in the detail with a ← back button to return. The Activity
   drawer (from the ≤1100 block above) still overlays via the ☰ toggle. This
   replaces the old three-panel vertical stack, which was impractical on a phone. */
@media (max-width: 768px) {
  .inbox-container {
    max-width: 768px;
    margin: 0 auto;
  }
  .search-actions-bar {
    flex-direction: row;
    align-items: center;
  }
  .search-actions-bar .search-section {
    flex: 1 1 auto;
    max-width: none;
  }
  .middle-panel,
  .right-panel {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100% !important;
    min-width: 0;
    max-width: none;
    max-height: none;
    transition: transform 280ms cubic-bezier(0.2, 0.7, 0.3, 1);
    will-change: transform;
  }
  .middle-panel {
    transform: translateX(0);
    z-index: 2;
  }
  .right-panel {
    transform: translateX(100%);
    z-index: 3;
  }
  .inbox-container.mobile-detail-open .search-actions-bar {
    display: none;
  }
  .inbox-container.mobile-detail-open .middle-panel {
    transform: translateX(-100%);
  }
  .inbox-container.mobile-detail-open .right-panel {
    transform: translateX(0);
  }
  .inbox-mobile-back {
    display: inline-flex;
    margin: 8px 0 0 8px;
  }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .left-sidebar {
    width: 180px;
  }
}
@media (min-width: 1025px) {
  .left-sidebar {
    width: 180px;
  }
}
/* ── Phase 2: tablet (769–1100px) — Activity sidebar becomes a slide-in drawer ──
   In this band the list + detail need the full row, so the Activity pane leaves
   the flow and opens on demand as an overlay from the left. A "☰ Activity" toggle
   in the list header opens it; the scrim or picking a filter closes it. Above
   1100px the sidebar is in-flow as usual and both toggle + scrim stay hidden. */
.inbox-sidebar-scrim {
  position: absolute;
  inset: 0;
  z-index: 40;
  background: rgba(20, 22, 40, 0.32);
  opacity: 0;
  visibility: hidden;
  transition: opacity 200ms ease, visibility 0s linear 200ms;
  cursor: pointer;
}

@media (max-width: 1100px) {
  .main-content {
    position: relative;
  }
  .inbox-sidebar-toggle {
    display: inline-flex;
    flex: 0 0 auto;
  }
  .left-sidebar {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 50;
    flex: 0 0 auto;
    width: 248px;
    max-width: 248px;
    max-height: none;
    border-radius: 0;
    transform: translateX(calc(-100% - 16px));
    transition: transform 240ms cubic-bezier(0.2, 0.7, 0.3, 1);
    box-shadow: 0 8px 28px rgba(20, 22, 40, 0.18);
    will-change: transform;
  }
  .main-content.sidebar-open .left-sidebar {
    transform: translateX(0);
  }
  .main-content.sidebar-open .inbox-sidebar-scrim {
    opacity: 1;
    visibility: visible;
    transition: opacity 200ms ease;
  }
}
/* Reduced-motion: no slide, just appear/disappear. */
@media (prefers-reduced-motion: reduce) {
  .left-sidebar {
    transition: none !important;
  }
  .inbox-sidebar-scrim {
    transition: opacity 1ms linear !important;
  }
  .middle-panel, .right-panel {
    transition: none !important;
  }
}
@keyframes inbox-toolbar-in {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Detail (message-open): plugin content follows the sender block by 40ms. */
.inbox-body-content {
  animation: inbox-detail-in 200ms ease-out 40ms both;
}

.inbox-forwarded-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 4px 0 14px;
  padding: 10px 14px;
  border-radius: 8px;
  background: #f3f1ff;
  border-left: 3px solid #c0c5ff;
  color: #4b4470;
  font-size: 13px;
  line-height: 1.4;
}
.inbox-forwarded-notice qdnapro-icon {
  flex-shrink: 0;
  color: #7a7fb0;
}

.inbox-text-body--rich hr {
  border: none;
  border-top: 1px solid #e1e3e6;
  margin: 18px 0;
}
.inbox-text-body--rich blockquote {
  margin: 18px 0 0;
  padding: 14px 0 2px 14px;
  border-top: 1px solid #e1e3e6;
  border-left: 3px solid #c0c5ff;
  color: #4b4470;
}

@keyframes inbox-detail-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes inbox-menu-in {
  from {
    opacity: 0;
    transform: scale(0.96) translateY(-4px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}
/* Right-click context menu on a message tile. The anchor is positioned fixed at
   the cursor (left/top set inline by JS); the menu sits at the anchor's top-left.
   Inbox runs at body{zoom:1}, so clientX/clientY map 1:1 — no zoom correction.
   qdnapro-menu provides its own surface/shadow; we only position + animate. */
.inbox-ctx-anchor {
  position: fixed;
  z-index: 1000;
}
.inbox-ctx-anchor .inbox-ctx-menu {
  position: absolute;
  top: 0;
  left: 0;
  transform-origin: top left;
  animation: inbox-menu-in 140ms ease-out;
}

/* Toolbar overflow swap: the ⋮ (and the inline row, on the way back) fade +
   scale in so the eye catches the change instead of a hard snap. Applied via JS
   only on the actual inline⇄overflow transition (see fitToolbar). */
@keyframes inbox-overflow-in {
  from {
    opacity: 0;
    transform: scale(0.7);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes inbox-inline-in {
  from {
    opacity: 0;
    transform: translateX(8px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
/* Secondary→all collapse: the ⋮ is already visible, so give it a tiny pulse
   to signal "more moved in here" rather than re-popping the whole button. */
@keyframes inbox-overflow-pulse {
  0% {
    transform: scale(1);
  }
  45% {
    transform: scale(1.18);
  }
  100% {
    transform: scale(1);
  }
}
/* Respect users who prefer less motion: drop all inbox entrance animations. */
@media (prefers-reduced-motion: reduce) {
  .actions-section,
  .inbox-body-header,
  .inbox-body-content,
  .inbox-menu-anchor.inbox-menu-open .inbox-menu,
  .inbox-msg-stagger {
    animation: none !important;
  }
}
/* ── Empty states ──────────────────────────────────────────────────────── */
/* Panel 2: message-list empty state */
.inbox-empty {
  /* display toggled to flex via JS */
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 16px;
  padding: 64px 24px 0;
  min-height: 320px;
  /* Target the element, not a class: qdnapro-illustration rewrites its own
     class attribute on render, so a custom class won't survive.
     The component sizes by WIDTH only; portrait illustrations (e.g. share)
     then blow up in height. Constrain by both max-width and max-height so
     any aspect ratio fits the same box. */
}
.inbox-empty qdnapro-illustration {
  opacity: 0.6;
  /* Pin the height, let width follow the aspect ratio. Reliable for
     both landscape and portrait art (the component only sizes width,
     which blows up tall illustrations like `share`). */
  width: auto !important;
  height: 190px !important;
}
.inbox-empty qdnapro-illustration img {
  width: auto !important;
  height: 100% !important;
}
.inbox-empty .inbox-empty-text {
  margin: 0;
  max-width: 260px;
  font-size: 15px;
  line-height: 1.4;
  color: var(--text-secondary, #6b7280);
}

/* Panel 3: detail empty state (Show all + Handover) */
.inbox-detail-empty {
  /* display toggled to flex via JS */
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 24px;
  /* Panel stays white; the empty-state card uses surface="solid"
     (light-purple) so it reads without needing a tinted backdrop. */
}
.inbox-detail-empty qdnapro-illustration {
  opacity: 0.6;
  /* Pin the height, width follows aspect ratio (see panel-2 note). */
  width: auto !important;
  height: 230px !important;
}
.inbox-detail-empty qdnapro-illustration img {
  width: auto !important;
  height: 100% !important;
}

/* ── Forward modal: recipient picker ─────────────────────────────────────── */
/* Hier stond `.qdnapro-modal, .qdnapro-select-popover { zoom: 1 !important }` om de counter-zoom
   van 1.25 uit `_modal.scss` te neutraliseren. Twee redenen om hem weg te halen (2026-08-03):
   de comment zei "page-scoped" maar de SELECTOR was dat niet — deze regel gold app-breed en
   bepaalde dus in elk scherm de maat van elk venster; en de 1.25 die hij neutraliseerde bestaat
   niet meer (zie de uitleg in `components/v2/modal/_modal.scss`). Netto verandert er niets: het
   was 1, en het blijft 1. */
/* Recipient picker — identical to the project "Managers" picker (pv2-bm-*).
   Values copied from projects-v2.html and scoped to the forward modal. */
#inbox-forward-modal {
  /* The candidate list is an absolute overlay dropdown (like projects), so the
     modal body must not clip it; reserve height so it doesn't cover the footer. */
}
#inbox-forward-modal .modal-body {
  overflow: visible;
  min-height: 360px;
}
#inbox-forward-modal .pv2-bm {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
#inbox-forward-modal .pv2-bm-subtitle {
  margin: 0 0 2px;
  font-size: 13px;
  color: var(--c-text-muted, var(--c-text-muted));
}
#inbox-forward-modal .pv2-bm-search-wrap {
  position: relative;
}
#inbox-forward-modal {
  /* Overlay dropdown card below the search field. */
}
#inbox-forward-modal .pv2-bm-results {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 30;
  max-height: 260px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: var(--c-bg-card);
  border: 1px solid #c4c7cc;
  border-radius: 8px;
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.08), 0 1px 2px 0 rgba(0, 0, 0, 0.14);
  padding: 6px;
}
#inbox-forward-modal .pv2-bm-results[hidden] {
  display: none;
}
#inbox-forward-modal .pv2-bm-results-list {
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  min-height: 0;
}
#inbox-forward-modal .pv2-bm-results-list::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
#inbox-forward-modal .pv2-bm-results-list::-webkit-scrollbar-track {
  background: transparent;
}
#inbox-forward-modal .pv2-bm-results-list::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 8px;
  transition: background 160ms ease;
}
#inbox-forward-modal .pv2-bm-results-list:hover::-webkit-scrollbar-thumb, #inbox-forward-modal .pv2-bm-results-list:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
}
#inbox-forward-modal .pv2-bm-results-list::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.34);
}
#inbox-forward-modal .pv2-bm-result {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px;
  border-radius: 8px;
  cursor: pointer;
}
#inbox-forward-modal .pv2-bm-result:hover, #inbox-forward-modal .pv2-bm-result:focus-visible {
  background: var(--c-bg-hover, #f3f4fb);
  outline: none;
}
#inbox-forward-modal .pv2-bm-result-check {
  flex: 0 0 auto;
}
#inbox-forward-modal .pv2-bm-result-text {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}
#inbox-forward-modal .pv2-bm-result-name {
  font-size: 14px;
  color: var(--c-text-body, #1c1e2a);
}
#inbox-forward-modal .pv2-bm-result-role {
  font-size: 12px;
  color: var(--c-text-muted, var(--c-text-muted));
}
#inbox-forward-modal .pv2-bm-row-you {
  font-size: 12px;
  color: var(--c-text-muted, var(--c-text-muted));
  margin-left: 4px;
}
#inbox-forward-modal .pv2-bm-result-added {
  opacity: 0.6;
  cursor: default;
}
#inbox-forward-modal .pv2-bm-result-added:hover {
  background: transparent;
}
#inbox-forward-modal .pv2-bm-results-empty {
  padding: 14px 10px;
  font-size: 13px;
  color: var(--c-text-muted, var(--c-text-muted));
  text-align: center;
}
#inbox-forward-modal .pv2-bm-loading {
  padding: 20px;
  text-align: center;
  font-size: 13px;
  color: var(--c-text-muted, var(--c-text-muted));
}
#inbox-forward-modal {
  /* Selected recipients (shown below the search, under the overlay dropdown). */
}
#inbox-forward-modal .inbox-forward-selected {
  display: flex;
  flex-direction: column;
  gap: 2px;
  max-height: 168px;
  overflow-y: auto;
}
#inbox-forward-modal .inbox-forward-selected::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
#inbox-forward-modal .inbox-forward-selected::-webkit-scrollbar-track {
  background: transparent;
}
#inbox-forward-modal .inbox-forward-selected::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 8px;
  transition: background 160ms ease;
}
#inbox-forward-modal .inbox-forward-selected:hover::-webkit-scrollbar-thumb, #inbox-forward-modal .inbox-forward-selected:focus-within::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.22);
}
#inbox-forward-modal .inbox-forward-selected::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.34);
}
#inbox-forward-modal .inbox-forward-selected-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 5px 6px;
  border-radius: 8px;
}
#inbox-forward-modal .inbox-forward-selected-row:hover {
  background: var(--c-bg-hover, #f3f4fb);
}
#inbox-forward-modal .inbox-forward-selected-name {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 14px;
  color: var(--c-text-body, #1c1e2a);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#inbox-forward-modal .inbox-forward-selected-remove {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  border-radius: 6px;
  color: var(--c-text-muted);
  cursor: pointer;
  transition: background 120ms ease, color 120ms ease;
}
#inbox-forward-modal .inbox-forward-selected-remove:hover {
  background: #eceef5;
  color: #c0392b;
}
#inbox-forward-modal {
  /* "X selected" count, pinned to the footer's left corner. Positioned
     absolutely so the global .modal-footer margin override can't clobber it. */
}
#inbox-forward-modal .modal-footer {
  position: relative;
}
#inbox-forward-modal .inbox-forward-count {
  position: absolute;
  left: 24px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 13px;
  color: var(--c-text-muted, var(--c-text-muted));
  pointer-events: none;
}

/* Pickup status badge in the handover detail */
.inbox-pickup-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  border-radius: 999px;
  padding: 4px 10px;
}
.inbox-pickup-status.is-open {
  color: #8a6d00;
  background: #fff4d6;
}
.inbox-pickup-status.is-pending {
  color: #2f6f3e;
  background: #e3f4e9;
}
.inbox-pickup-status.is-finished {
  color: #3a4290;
  background: #e4e6f8;
}

/* ════════════════════════════════════════════════════════════════════════
   Responsive — phased rework (industry-standard inbox patterns)
   Phase 1: bulk-action toolbar overflow ⋮ + empty-state art on small screens
   (Phase 2 = collapse Activity sidebar; Phase 3 = mobile drill-down.)
   ════════════════════════════════════════════════════════════════════════ */
/* The bulk-action toolbar collapses into the ⋮ overflow menu via JS overflow
   detection (fitToolbar()) the moment the inline buttons no longer fit — no
   magic breakpoint. The search box scales (flex) to give the actions room
   first. See .search-section / .actions-section above + fitToolbar() in JS. */
/* Detail empty-state cards reflow on the PANEL width, not the viewport: a wide
   window can still leave a narrow detail panel, which squeezes the 2-column
   grid until the illustration overlaps the copy. Container query → when the card
   is narrow, stack the illustration BELOW the centered copy (don't hide it). */
.inbox-detail-empty {
  container-type: inline-size;
}

@container (max-width: 520px) {
  .inbox-detail-empty .qdnapro-empty-state.empty-state-extended {
    grid-template-columns: 1fr;
    text-align: center;
    justify-items: center;
  }
  .inbox-detail-empty .empty-state-extended .empty-state-copy {
    align-items: center;
    order: 1;
  }
  .inbox-detail-empty .empty-state-extended .empty-state-illustration {
    display: flex;
    order: 2;
    margin-top: 8px;
  }
  .inbox-detail-empty .empty-state-illustration qdnapro-illustration,
  .inbox-detail-empty .empty-state-illustration img,
  .inbox-detail-empty .empty-state-illustration svg {
    max-width: 180px;
  }
}
/* Panel-2 (list) empty: drop the decorative art on mobile (revisit in Phase 3). */
@media (max-width: 768px) {
  .inbox-empty qdnapro-illustration {
    display: none;
  }
}
/* ── Nova melding-analyse (meldingen-classificatie Fase 4, 2026-07-11) ──
   Knop-slot rechtsboven in de handover-detail + het analysepaneel
   (samenvatting / toon / classificatie-suggestie / disclaimer). */
.inbox-nova-btn-slot {
  flex: none;
  margin-left: auto;
  align-self: flex-start;
}

.inbox-nova-panel {
  background: #f5f3ff;
  border: 1px solid #e3defa;
  border-radius: 12px;
  padding: 14px 16px;
  margin: 10px 0 14px;
  font-size: 13px;
  color: var(--c-text-heading);
}
.inbox-nova-panel.is-loading {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--c-text-muted);
}
.inbox-nova-panel.is-loading .mdi-creation {
  color: #7c6fe0;
  animation: inbox-nova-pulse 1.2s ease-in-out infinite;
}
.inbox-nova-panel .inbox-nova-head {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  color: #4f46a5;
  margin-bottom: 8px;
}
.inbox-nova-panel .inbox-nova-head .mdi {
  color: #7c6fe0;
}
.inbox-nova-panel .inbox-nova-head {
  /* "Opnieuw analyseren" (force) rechts in de kop */
}
.inbox-nova-panel .inbox-nova-head .js-inbox-nova-reanalyse {
  margin-left: auto;
}
.inbox-nova-panel .inbox-nova-summary {
  margin: 0 0 10px;
  white-space: pre-wrap;
}
.inbox-nova-panel .inbox-nova-row {
  margin: 4px 0;
}
.inbox-nova-panel .inbox-nova-label {
  font-weight: 600;
  color: #4f46a5;
  margin-right: 4px;
}
.inbox-nova-panel .inbox-nova-class {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: #e9e6fb;
  color: #4f46a5;
  border-radius: 999px;
  padding: 2px 10px;
  font-weight: 600;
}
.inbox-nova-panel .inbox-nova-class.is-none {
  background: #eeedf5;
  color: var(--c-text-muted);
  font-weight: 400;
}
.inbox-nova-panel .inbox-nova-rationale {
  color: var(--c-text-muted);
  font-size: 12.5px;
  margin-top: 6px;
}
.inbox-nova-panel .inbox-nova-disclaimer {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid #e3defa;
  color: var(--c-text-muted);
  font-size: 12px;
  font-style: italic;
}
.inbox-nova-panel .inbox-nova-disclaimer .mdi {
  flex: none;
  margin-top: 1px;
}

@keyframes inbox-nova-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.35;
  }
}
/* ── Classificatie-blok (meldingen-classificatie Fase 5, 2026-07-11) ──
   Huidig resultaat (chip + kans + score-badge in bandkleur + herkomst +
   AI-kalibratie-marker) en het inline classificatieformulier met live score. */
.inbox-mc {
  background: var(--c-bg-card);
  border: 1px solid #e6e4f0;
  border-radius: 12px;
  padding: 14px 16px;
  margin: 10px 0 14px;
  font-size: 13px;
  color: var(--c-text-heading);
}
.inbox-mc .inbox-mc-head {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  color: #4f46a5;
}
.inbox-mc .inbox-mc-head .mdi {
  color: #7c6fe0;
}
.inbox-mc .inbox-mc-head qdnapro-button {
  margin-left: auto;
}
.inbox-mc .inbox-mc-result {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}
.inbox-mc .inbox-mc-rec {
  color: var(--c-text-muted);
}
.inbox-mc .inbox-mc-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 14px;
  margin-top: 8px;
  color: var(--c-text-muted);
  font-size: 12px;
}
.inbox-mc .inbox-mc-ai {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.inbox-mc .inbox-mc-ai .mdi {
  color: #7c6fe0;
}
.inbox-mc .inbox-mc-ai.is-match {
  color: #2e7d32;
}
.inbox-mc .inbox-mc-ai.is-deviated {
  color: #b06e00;
}
.inbox-mc .inbox-mc-empty {
  margin-top: 8px;
  color: var(--c-text-muted);
}
.inbox-mc .inbox-mc-form {
  margin-top: 12px;
}
.inbox-mc .inbox-mc-form-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.inbox-mc .inbox-mc-form-row qdnapro-select {
  flex: 1;
  min-width: 220px;
}
.inbox-mc .inbox-mc-form-foot {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
}
.inbox-mc .inbox-mc-form-foot .inbox-mc-live-score {
  flex: 1;
}

/* ── Melding-samenvatting (opening van het bericht, 2026-07-20) ──
   De prominente OPENING, op de plek onder de takenlijst-kop; de ingevulde velden
   eronder blijven als "bewijs". Bewust visueel GELIJK aan .inbox-nova-panel
   (zelfde kaart + fontgrootte) voor consistentie tussen samenvatting en analyse.
   Het bewerk-veld is een echt qdnapro-input (type=expanding), geen textarea. */
/* Verborgen invulling (2026-08-16, besluit 4): de melding bovenaan een overdracht waarvan
   de invulling is verborgen. Zelfde gedempte rood als de melding op de Antwoorden-pagina
   (#b3261e) — bewust geen signaalrood: dit is context bij het bericht, geen storing. */
.inbox-hidden-note {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 0 0 16px 0;
  padding: 10px 12px;
  border-left: 3px solid #b3261e;
  border-radius: 6px;
  background: rgba(179, 38, 30, 0.06);
}
.inbox-hidden-note .mdi {
  color: #b3261e;
  font-size: 18px;
  line-height: 1.3;
}
.inbox-hidden-note strong {
  color: #b3261e;
  font-size: 13.5px;
}

.inbox-hidden-meta {
  font-size: 12px;
  color: #6b7194;
  margin-top: 2px;
}

.inbox-hidden-reason {
  font-size: 13px;
  color: #282e64;
  margin-top: 4px;
  white-space: pre-wrap;
}

.inbox-summary {
  background: #f5f3ff;
  border: 1px solid #e3defa;
  border-radius: 12px;
  padding: 14px 16px;
  margin: 10px 0 14px;
  font-size: 13px;
  color: var(--c-text-heading);
}
.inbox-summary .inbox-summary-head {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  color: #4f46a5;
}
.inbox-summary .inbox-summary-head .mdi {
  color: #7c6fe0;
}
.inbox-summary .inbox-summary-title {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  min-width: 0;
}
.inbox-summary .inbox-summary-src {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 1px 8px;
  border-radius: 999px;
  background: #e9e6fb;
  color: #4f46a5;
  font-size: 11px;
  font-weight: 600;
}
.inbox-summary .inbox-summary-src .mdi {
  font-size: 13px;
  color: #4f46a5;
}
.inbox-summary .inbox-summary-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-left: auto;
  flex-shrink: 0;
}
.inbox-summary .inbox-summary-body {
  margin-top: 8px;
}
.inbox-summary .inbox-summary-text {
  margin: 0;
  line-height: 1.5;
  white-space: pre-wrap;
}
.inbox-summary .inbox-summary-meta {
  margin-top: 8px;
  font-size: 12px;
  color: var(--c-text-muted);
}
.inbox-summary.is-collapsed .inbox-summary-body {
  display: none;
}
.inbox-summary .inbox-summary-add {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: #4f46a5;
  font-size: 13px;
  font-weight: 600;
}
.inbox-summary .inbox-summary-add .mdi {
  font-size: 18px;
}
.inbox-summary .inbox-summary-add:hover {
  text-decoration: underline;
}
.inbox-summary .inbox-summary-input {
  display: block;
  width: 100%;
  margin-top: 8px;
}
.inbox-summary .inbox-summary-form-foot {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}
.inbox-summary .inbox-summary-form-foot .inbox-summary-spacer {
  flex: 1;
}

/* ── Incidentanalyse-blok (PRISMA/SIRE fase 1, 2026-07-20) ──
   Router-advies + Start-knop, of de bestaande analyse (methode-chip + status +
   deep-link naar het workbench op het meldingen-dashboard). Zelfde kaart-idioom
   als .inbox-mc erboven. */
.inbox-ia {
  background: var(--c-bg-card);
  border: 1px solid #e6e4f0;
  border-radius: 12px;
  padding: 14px 16px;
  margin: 10px 0 14px;
  font-size: 13px;
  color: var(--c-text-heading);
}
.inbox-ia .inbox-ia-head {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  color: #4f46a5;
}
.inbox-ia .inbox-ia-head .mdi {
  color: #7c6fe0;
}
.inbox-ia .inbox-ia-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}
.inbox-ia .inbox-ia-row qdnapro-button {
  margin-left: auto;
}
.inbox-ia .inbox-ia-status {
  color: var(--c-text-muted);
}
.inbox-ia .inbox-ia-src {
  color: var(--c-text-muted);
  font-size: 12px;
}
.inbox-ia .inbox-ia-open {
  margin-left: auto;
  color: #4f46a5;
  font-weight: 600;
  text-decoration: none;
}
.inbox-ia .inbox-ia-open:hover {
  text-decoration: underline;
}
.inbox-ia .inbox-ia-muted {
  margin-top: 8px;
  color: var(--c-text-muted);
}

/* ── Classificatiemappen in de sidebar-tree (meldingen-classificatie Fase 6) ──
   Status-rij met uitklap-chevron + geneste sublijst: per set een vette kop, de
   classificaties en "Ongeclassificeerd". Bouwt voort op .sidebar-item. */
.left-sidebar .cls-status-row {
  padding-left: 8px;
}
.left-sidebar .cls-status-row .cls-collapse-btn {
  cursor: pointer;
  transition: color 0.12s;
}
.left-sidebar .cls-status-row .cls-collapse-btn:hover {
  color: var(--c-brand-purple);
}
.left-sidebar .cls-status-row .cls-collapse-spacer {
  visibility: hidden;
}
.left-sidebar .cls-sub-list {
  margin: 2px 0 4px;
}
.left-sidebar .cls-set-header {
  padding: 6px 8px 3px 30px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--c-text-disabled-pp);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.left-sidebar .cls-item {
  padding-left: 42px;
  font-size: 11.5px;
}
.left-sidebar .cls-item.cls-item-unclassified i, .left-sidebar .cls-item.cls-item-unclassified .sidebar-item-label {
  color: var(--c-text-disabled-pp);
}

/* ── Definitief-verwijderen bevestiging ────────────────────────────────────
   Het aantal krijgt bewust visueel gewicht: dit is het enige moment waarop een
   te ruime selectie nog opvalt vóór de berichten weg zijn. De map staat in de
   zin eronder, zodat "112 · berichten uit Prullenbak" als één blok leest.     */
.inbox-purge-body--many {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.inbox-purge-body--many .inbox-purge-count {
  font-size: 34px;
  font-weight: 700;
  line-height: 1.1;
  color: var(--c-warn-red-500, #dc2626);
  font-variant-numeric: tabular-nums;
}
.inbox-purge-body--many .inbox-purge-lead {
  color: var(--c-text-body, #1c1e2a);
}
.inbox-purge-body--many .inbox-purge-stray {
  margin-top: 8px;
  width: 100%;
}

#project-content-info {
  position: relative;
  background-color: #40499A;
}

#project-content-info-man {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#project-content-info-details {
  text-align: center;
  position: absolute;
  top: 62%;
  left: 45%;
  transform: translate(-50%, -50%);
  width: 40%;
}

.lightbulb-icon {
  width: 25%;
}

.essentials-button {
  padding: 4px 12px 4px 6px;
  border-radius: 10px;
  background-color: #40499a !important;
  color: #f1f1f1;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}

.circle-count {
  padding-left: 3px;
  padding-right: 3px;
  background-color: #1E205C;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
}

.project-content-row {
  font-size: 14px;
  gap: 16px;
  flex-wrap: nowrap;
}
.project-content-row .card {
  background-color: #FFF !important;
}

.project-content-col {
  border-radius: 20px;
  background-color: #FFF;
  padding: 12px 16px;
}

.txt-vw-2 {
  font-size: 2vmin;
}

.txt-vw-3 {
  font-size: 3vmin;
}

.custom-text-blue {
  color: #40499A;
  text-align: center;
}

.abcd {
  border-radius: 20px;
  font-weight: normal;
}
.abcd .ts-primary-button {
  width: 200px;
  border-radius: 10px;
  padding: 8px;
  background-color: #40499A !important;
  color: #FFF;
  cursor: pointer;
}

.def {
  border-radius: 12px;
  background-color: #FFF;
  min-height: 124px;
  text-align: center;
  color: #40499A;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  cursor: pointer;
}

.modal-backdrop {
  width: 100%;
  height: 100%;
}

.validate-error {
  color: red;
}

.ts-sort-placeholder {
  border: 2px dashed #c1c1c1;
  height: 75px;
  margin: 15px 0;
}

#home {
  gap: 12px;
  display: flex;
  flex-direction: column;
}
#home .blocks_background {
  background-color: #FFF;
  border-radius: 12px;
}
#home .block_heading {
  font-weight: 600;
}
#home .detail_block {
  font-weight: 400;
  padding: 24px 32px;
}
#home .detail_block-title {
  font-size: 25px;
  font-weight: 600;
}
#home .detail_block-description {
  font-size: 16px;
}
#home .detail_block-user_detail {
  padding-top: 8px;
  display: flex;
  align-items: center;
  gap: 72px;
}
#home .detail_block-user_detail-info {
  padding-top: 8px;
  display: flex;
  align-items: center;
  gap: 36px;
  border-radius: 8px;
}
#home .detail_block-user_detail-info img {
  width: 90px;
  border-radius: 16px;
}
#home .detail_block-user_detail-info .block_heading {
  font-size: 18px;
}
#home .project_count {
  display: flex;
  gap: 12px;
}
#home .project_count-cols {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px;
}
#home .project_count .star_block {
  display: flex;
  align-items: center;
  flex: 1;
  padding: 4px 0px;
}
#home .project_count .star_block-detail {
  display: flex;
  flex: 1;
  font-weight: 500;
}
#home .project_count .star_block-detail-icon {
  font-size: 48px;
  text-align: center;
  color: #40499a;
  padding: 0px 24px;
}
#home .project_count .star_block-detail-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
#home .project_count .star_block-detail-body-title {
  font-size: 20px;
}
#home .project_count .star_block-count {
  font-size: 48px;
  font-weight: 600;
  display: flex;
  justify-content: end;
  padding: 0px 40px;
}
#home .project_count .assesment_block {
  display: flex;
  flex: 1;
  padding: 0;
  flex-direction: column;
  padding: 0px 16px;
}
#home .project_count .assesment_block-icon {
  font-size: 60px;
  padding: 0px 24px;
  color: #40499a;
}
#home .project_count .assesment_block-body {
  padding: 0px 24px;
}
#home .project_count .assesment_block-body-title {
  font-size: 32px;
  font-weight: 700;
}
#home .project_count .assesment_block-body-description {
  font-size: 16px;
}
#home .project_count .assesment_block-body-count {
  font-size: 60px;
  font-weight: 700;
}
#home .graph_container i {
  font-size: 48px;
  padding: 8px;
  color: #40499a;
}
#home .graph_container-title {
  font-size: 16px;
  padding: 0px 8px;
  font-weight: 600;
}

.ov-root {
  display: flex;
  flex-direction: column;
  height: calc(100vh - var(--qdna-topbar-h));
  overflow: hidden;
  padding: 0;
}

.ov-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0 8px;
}

.ov-ctrl-bar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0;
  padding: 8px 0 6px;
  transition: gap 220ms cubic-bezier(0.4, 0, 0.2, 1);
}

.ov-ctrl-sidebar {
  flex: 0 0 auto;
  width: 0;
  overflow: hidden;
  background: white;
  border-radius: 12px;
  transition: width 220ms cubic-bezier(0.4, 0, 0.2, 1), border-radius 220ms cubic-bezier(0.4, 0, 0.2, 1);
}

.ov-ctrl-sidebar-inner {
  width: 260px;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 6px 0 12px;
  min-height: 44px;
  font-size: 13px;
  font-weight: 500;
  color: #374151;
  white-space: nowrap;
  box-sizing: border-box;
}

.ov-ctrl-sidebar-title {
  flex: 1 1 auto;
}

.ov-ctrl-search {
  flex: 0 1 auto;
  width: 100%;
  max-width: 420px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.ov-ctrl-search qdnapro-input {
  flex: 1 1 auto;
}

.ov-workspace {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  gap: 0;
  padding-bottom: 8px;
  position: relative;
}

.ov-sidebar-wrap {
  flex: 0 0 auto;
  width: 0;
  overflow: hidden;
  margin-right: 0;
  background: white;
  border-radius: 12px;
  transition: width 220ms cubic-bezier(0.4, 0, 0.2, 1), border-radius 220ms cubic-bezier(0.4, 0, 0.2, 1), margin-right 220ms cubic-bezier(0.4, 0, 0.2, 1), margin-top 220ms cubic-bezier(0.4, 0, 0.2, 1);
}
.ov-sidebar-wrap qdnapro-sidebar {
  width: 260px;
  height: 100%;
}

.ov-content {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: white;
  border-radius: 12px;
  overflow: hidden;
}

.ov-root.split-open .ov-content {
  min-width: 560px;
}

.ov-table-area {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.ov-table-area qdnapro-table-wrapper,
.ov-table-area qdnapro-table {
  flex: 1 1 auto;
  min-height: 0;
}

.ov-btn-active {
  background: var(--c-purple-50, #e6e9ff) !important;
  color: var(--c-purple-500, #40499a) !important;
}

.ov-footer {
  flex: 0 0 auto;
  display: flex;
  justify-content: center;
  padding: 6px 8px;
}

.ov-footer[hidden] {
  display: none;
}

.ov-root.has-record-nav .qdnapro-table-wrapper {
  padding-bottom: 80px;
}

.ov-root.sidebar-open .ov-ctrl-bar {
  gap: 8px;
}
.ov-root.sidebar-open .ov-ctrl-sidebar {
  width: 260px;
  border-radius: 12px 12px 0 0;
  padding: 4px;
}
.ov-root.sidebar-open .ov-sidebar-wrap {
  width: 260px;
  border-radius: 0 0 12px 12px;
  margin-right: 8px;
  margin-top: -6px;
}

.ov-root.sidebar-collapsed .ov-ctrl-bar {
  gap: 8px;
}
.ov-root.sidebar-collapsed .ov-ctrl-sidebar {
  width: 260px;
  padding: 4px;
}

.ov-ctrl-page-switch {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  margin-left: 12px;
}
.ov-ctrl-page-switch[hidden] {
  display: none;
}
.ov-ctrl-page-switch {
  background: white;
  border-radius: 20px;
  padding: 3px;
}

.ov-split-resizer {
  position: relative;
  flex: 0 0 auto;
  width: 14px;
  margin: 0;
  cursor: col-resize;
  background: transparent;
}
.ov-split-resizer::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 4px;
  height: 36px;
  border-radius: 2px;
  background: rgba(64, 73, 154, 0.3);
  transition: background 120ms ease, height 200ms ease;
}
.ov-split-resizer:hover::after, .ov-split-resizer:active::after {
  background: rgba(64, 73, 154, 0.95);
  height: 56px;
}

body.ov-split-resizing,
body.ov-split-resizing * {
  cursor: col-resize !important;
}

.ov-split-panel {
  flex: 0 0 auto;
  min-width: 280px;
  display: flex;
  flex-direction: column;
  background: white;
  border-radius: 12px;
  overflow: hidden;
  transform: translateX(0);
  opacity: 1;
  transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1), opacity 160ms cubic-bezier(0.4, 0, 0.2, 1);
}
.ov-split-panel.is-sliding {
  transform: translateX(calc(100% + 8px));
  opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
  .ov-split-panel {
    transition: none;
  }
}
.ov-split-toolbar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 8px 0;
}
.ov-split-toolbar qdnapro-input {
  flex: 1 1 auto;
}

.ov-split-table-area {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.ov-split-table-area qdnapro-table-wrapper,
.ov-split-table-area qdnapro-table {
  flex: 1 1 auto;
  min-height: 0;
}

.ov-split-hint {
  flex: 0 0 auto;
  padding: 6px 14px 8px;
  font-size: 11px;
  color: var(--c-text-soft, #9299ad);
  text-align: right;
}

@keyframes ov-split-row-enter {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.ov-split-panel .qdnapro-table-list tbody tr.is-entering,
.ov-split-panel .qdnapro-table-list tbody tr.is-entering-flat {
  animation-name: ov-split-row-enter;
  animation-duration: 320ms;
  animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
  animation-delay: calc(var(--qdnapro-table-enter-i, 0) * 45ms);
  animation-fill-mode: both;
}

@media (prefers-reduced-motion: reduce) {
  .ov-split-panel .qdnapro-table-list tbody tr.is-entering,
  .ov-split-panel .qdnapro-table-list tbody tr.is-entering-flat {
    animation: none;
  }
}
.ov-split-empty {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  overflow: auto;
}

@media (max-width: 1024px) {
  .ov-root.split-open .ov-content {
    min-width: 0;
  }
  .ov-root.split-open .ov-split-panel {
    width: clamp(280px, 38%, 420px) !important;
  }
}
.settings-hub {
  position: relative;
}

.settings-hub__toolbar {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.settings-hub__heading {
  padding: 16px 16px 4px;
}

.settings-hub__block:first-of-type .settings-hub__heading {
  padding-top: 8px;
  padding-bottom: 8px;
  min-height: 40px;
  display: flex;
  align-items: center;
  padding-right: 360px;
}

@media (max-width: 900px) {
  .settings-hub__toolbar {
    position: static;
    margin-bottom: 8px;
  }
  .settings-hub__block:first-of-type .settings-hub__heading {
    padding-right: 16px;
  }
}
.settings-hub__search {
  width: 340px;
  max-width: 100%;
  flex: 0 0 auto;
}

.settings-hub__block[hidden],
.settings-hub__cell[hidden] {
  display: none;
}

.settings-hub__empty {
  padding: 40px 16px;
  text-align: center;
  color: var(--c-text-muted, #6e7280);
  font-size: 14px;
}

.settings-hub__empty-title {
  display: block;
  margin-bottom: 4px;
  font-size: 15px;
  font-weight: 600;
  color: var(--c-text-heading, #1a1f4d);
}

.alert.mdi::before,
.breadcrumb .mdi::before,
.btn.mdi::before,
.card-title.mdi::before,
.card-subtitle.mdi::before,
.card-link.mdi::before,
.dropdown-item.mdi::before,
.list-group-item.mdi::before,
.nav-link.mdi::before {
  font-size: 1.25em;
  line-height: initial;
  position: relative;
  top: 0.09rem;
}

.alert.mdi::before,
.breadcrumb .mdi:not(:empty)::before,
.btn.mdi:not(:empty)::before,
.card-title.mdi:not(:empty)::before,
.card-subtitle.mdi:not(:empty)::before,
.card-link.mdi:not(:empty)::before,
.dropdown-item.mdi:not(:empty)::before,
.nav-link.mdi:not(:empty)::before {
  margin-right: 0.25rem;
}

.list-group-item.mdi:not(:empty)::before {
  margin-right: 0.5rem;
}

.dropdown-item.mdi:not(:empty)::before {
  margin-left: -0.75rem;
}

.alert.mdi::before,
.list-group-item.mdi:not(:empty)::before {
  margin-left: -0.5rem;
}

.modal-title.mdi::before {
  font-size: 1.5em;
  line-height: 0.5;
  position: relative;
  top: 0.26rem;
  margin-right: 0.5rem;
}

fieldset[disabled] .multiselect {
  pointer-events: none;
}

.multiselect__spinner {
  position: absolute;
  right: 1px;
  top: 1px;
  width: 48px;
  height: 35px;
  background: #fff;
  display: block;
}

.multiselect__spinner:after, .multiselect__spinner:before {
  position: absolute;
  content: "";
  top: 50%;
  left: 50%;
  margin: -8px 0 0 -8px;
  width: 16px;
  height: 16px;
  border-radius: 100%;
  border: 2px solid transparent;
  border-top-color: #41b883;
  box-shadow: 0 0 0 1px transparent;
}

.multiselect__spinner:before {
  animation: spinning 2.4s cubic-bezier(0.41, 0.26, 0.2, 0.62);
  animation-iteration-count: infinite;
}

.multiselect__spinner:after {
  animation: spinning 2.4s cubic-bezier(0.51, 0.09, 0.21, 0.8);
  animation-iteration-count: infinite;
}

.multiselect__loading-enter-active, .multiselect__loading-leave-active {
  transition: opacity 0.4s ease-in-out;
  opacity: 1;
}

.multiselect__loading-enter, .multiselect__loading-leave-active {
  opacity: 0;
}

.multiselect, .multiselect__input, .multiselect__single {
  font-family: inherit;
  font-size: 16px;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
}

.multiselect {
  box-sizing: content-box;
  display: block;
  position: relative;
  width: 100%;
  min-height: 40px;
  text-align: left;
  color: #35495e;
}

.multiselect * {
  box-sizing: border-box;
}

.multiselect:focus {
  outline: none;
}

.multiselect--disabled {
  background: #ededed;
  pointer-events: none;
  opacity: 0.6;
}

.multiselect--active {
  z-index: 50;
}

.multiselect--active:not(.multiselect--above) .multiselect__current, .multiselect--active:not(.multiselect--above) .multiselect__input, .multiselect--active:not(.multiselect--above) .multiselect__tags {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.multiselect--active .multiselect__select {
  transform: rotate(180deg);
}

.multiselect--above.multiselect--active .multiselect__current, .multiselect--above.multiselect--active .multiselect__input, .multiselect--above.multiselect--active .multiselect__tags {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.multiselect__input, .multiselect__single {
  position: relative;
  display: inline-block;
  min-height: 20px;
  line-height: 20px;
  border: none;
  border-radius: 5px;
  background: #fff;
  padding: 0 0 0 5px;
  width: 100%;
  transition: border 0.1s ease;
  box-sizing: border-box;
  margin-bottom: 8px;
  vertical-align: top;
}

.multiselect__input:-ms-input-placeholder {
  color: #35495e;
}

.multiselect__input::placeholder {
  color: #35495e;
}

.multiselect__tag ~ .multiselect__input, .multiselect__tag ~ .multiselect__single {
  width: auto;
}

.multiselect__input:hover, .multiselect__single:hover {
  border-color: #cfcfcf;
}

.multiselect__input:focus, .multiselect__single:focus {
  border-color: #a8a8a8;
  outline: none;
}

.multiselect__single {
  padding-left: 5px;
  margin-bottom: 8px;
}

.multiselect__tags-wrap {
  display: inline;
}

.multiselect__tags {
  min-height: 40px;
  display: block;
  padding: 8px 40px 0 8px;
  border-radius: 5px;
  border: 1px solid #e8e8e8;
  background: #fff;
  font-size: 14px;
}

.multiselect__tag {
  position: relative;
  display: inline-block;
  padding: 4px 26px 4px 10px;
  border-radius: 5px;
  margin-right: 10px;
  color: #fff;
  line-height: 1;
  background: #41b883;
  margin-bottom: 5px;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  text-overflow: ellipsis;
}

.multiselect__tag-icon {
  cursor: pointer;
  margin-left: 7px;
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  font-weight: 700;
  font-style: normal;
  width: 22px;
  text-align: center;
  line-height: 22px;
  transition: all 0.2s ease;
  border-radius: 5px;
}

.multiselect__tag-icon:after {
  content: "×";
  color: #266d4d;
  font-size: 14px;
}

.multiselect__tag-icon:focus, .multiselect__tag-icon:hover {
  background: #369a6e;
}

.multiselect__tag-icon:focus:after, .multiselect__tag-icon:hover:after {
  color: #fff;
}

.multiselect__current {
  min-height: 40px;
  overflow: hidden;
  padding: 8px 30px 0 12px;
  white-space: nowrap;
  border-radius: 5px;
  border: 1px solid #e8e8e8;
}

.multiselect__current, .multiselect__select {
  line-height: 16px;
  box-sizing: border-box;
  display: block;
  margin: 0;
  text-decoration: none;
  cursor: pointer;
}

.multiselect__select {
  position: absolute;
  width: 40px;
  height: 38px;
  right: 1px;
  top: 1px;
  padding: 4px 8px;
  text-align: center;
  transition: transform 0.2s ease;
}

.multiselect__select:before {
  position: relative;
  right: 0;
  top: 65%;
  color: #999;
  margin-top: 4px;
  border-color: #999 transparent transparent;
  border-style: solid;
  border-width: 5px 5px 0;
  content: "";
}

.multiselect__placeholder {
  color: #adadad;
  display: inline-block;
  margin-bottom: 10px;
  padding-top: 2px;
}

.multiselect--active .multiselect__placeholder {
  display: none;
}

.multiselect__content-wrapper {
  position: absolute;
  display: block;
  background: #fff;
  width: 100%;
  max-height: 240px;
  overflow: auto;
  border: 1px solid #e8e8e8;
  border-top: none;
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 5px;
  z-index: 50;
  -webkit-overflow-scrolling: touch;
}

.multiselect__content {
  list-style: none;
  display: inline-block;
  padding: 0;
  margin: 0;
  min-width: 100%;
  vertical-align: top;
}

.multiselect--above .multiselect__content-wrapper {
  bottom: 100%;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
  border-bottom: none;
  border-top: 1px solid #e8e8e8;
}

.multiselect__content::webkit-scrollbar {
  display: none;
}

.multiselect__element {
  display: block;
}

.multiselect__option {
  display: block;
  padding: 12px;
  min-height: 40px;
  line-height: 16px;
  text-decoration: none;
  text-transform: none;
  vertical-align: middle;
  position: relative;
  cursor: pointer;
  white-space: nowrap;
}

.multiselect__option:after {
  top: 0;
  right: 0;
  position: absolute;
  line-height: 40px;
  padding-right: 12px;
  padding-left: 20px;
  font-size: 13px;
}

.multiselect__option--highlight {
  background: #41b883;
  outline: none;
  color: #fff;
}

.multiselect__option--highlight:after {
  content: attr(data-select);
  background: #41b883;
  color: #fff;
}

.multiselect__option--selected {
  background: #f3f3f3;
  color: #35495e;
  font-weight: 700;
}

.multiselect__option--selected:after {
  content: attr(data-selected);
  color: silver;
}

.multiselect__option--selected.multiselect__option--highlight {
  background: #ff6a6a;
  color: #fff;
}

.multiselect__option--selected.multiselect__option--highlight:after {
  background: #ff6a6a;
  content: attr(data-deselect);
  color: #fff;
}

.multiselect--disabled .multiselect__current, .multiselect--disabled .multiselect__select {
  background: #ededed;
  color: #a6a6a6;
}

.multiselect__option--disabled {
  background: #ededed !important;
  color: #a6a6a6 !important;
  cursor: text;
  pointer-events: none;
}

.multiselect__option--group {
  background: #ededed;
  color: #35495e;
}

.multiselect__option--group.multiselect__option--highlight {
  background: #35495e;
  color: #fff;
}

.multiselect__option--group.multiselect__option--highlight:after {
  background: #35495e;
}

.multiselect__option--disabled.multiselect__option--highlight {
  background: #dedede;
}

.multiselect__option--group-selected.multiselect__option--highlight {
  background: #ff6a6a;
  color: #fff;
}

.multiselect__option--group-selected.multiselect__option--highlight:after {
  background: #ff6a6a;
  content: attr(data-deselect);
  color: #fff;
}

.multiselect-enter-active, .multiselect-leave-active {
  transition: all 0.15s ease;
}

.multiselect-enter, .multiselect-leave-active {
  opacity: 0;
}

.multiselect__strong {
  margin-bottom: 8px;
  line-height: 20px;
  display: inline-block;
  vertical-align: top;
}

[dir=rtl] .multiselect {
  text-align: right;
}

[dir=rtl] .multiselect__select {
  right: auto;
  left: 1px;
}

[dir=rtl] .multiselect__tags {
  padding: 8px 8px 0 40px;
}

[dir=rtl] .multiselect__content {
  text-align: right;
}

[dir=rtl] .multiselect__option:after {
  right: auto;
  left: 0;
}

[dir=rtl] .multiselect__clear {
  right: auto;
  left: 12px;
}

[dir=rtl] .multiselect__spinner {
  right: auto;
  left: 1px;
}

@keyframes spinning {
  0% {
    transform: rotate(0);
  }
  to {
    transform: rotate(2turn);
  }
}
.multiselect__tags {
  display: block;
  width: 100%;
  padding-top: 0.375rem;
  padding-left: 0.75rem;
  font-size: 1rem;
  color: #495057;
  background-clip: padding-box;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
  min-height: calc(2.25rem + 2px);
}

.multiselect__single,
.multiselect__placeholder,
.multiselect__input {
  color: #495057;
  padding-top: 0;
  margin-bottom: 0.375rem;
  font-weight: 400;
  padding-left: 0;
  line-height: 1.5;
}

.card-rules .multiselect__tags {
  border-color: #5a83ec;
}
.card-rules .multiselect__tag {
  background-color: #e8eefc;
  color: #495057;
  border: 1px solid #5a83ec;
  font-weight: 400;
  font-size: 0.875rem;
  margin-bottom: 2px;
}
.card-rules .multiselect__tag-icon:after {
  color: #495057;
}
.card-rules .multiselect__tag-icon {
  border-radius: 50%;
}
.card-rules .multiselect__tag-icon:focus, .card-rules .multiselect__tag-icon:hover {
  background: #5a83ec;
  color: #495057;
}
.card-rules .multiselect__tag-icon:focus:after, .card-rules .multiselect__tag-icon:hover:after {
  color: #fff;
}
.card-rules .multiselect--above .multiselect__content-wrapper {
  border-color: #5a83ec;
  font-size: 0.875rem;
}
.card-rules .multiselect__option--highlight {
  background: #44bcab;
}
.card-rules .multiselect__option--highlight:after {
  background: #44bcab;
}
.card-rules .multiselect__option--selected {
  background: #5a83ec;
  color: #fff;
}
.card-rules .multiselect__option--selected:hover {
  background: #d63b49;
}
.card-rules .multiselect__option--selected:hover:after {
  background: #d63b49;
}
.card-rules .multiselect__option--selected:after {
  background: #5a83ec;
}

.cropper-container {
  direction: ltr;
  font-size: 0;
  line-height: 0;
  position: relative;
  touch-action: none;
  -webkit-touch-callout: none;
  user-select: none;
}
.cropper-container img {
  backface-visibility: hidden;
  display: block;
  height: 100%;
  image-orientation: 0deg;
  max-height: none !important;
  max-width: none !important;
  min-height: 0 !important;
  min-width: 0 !important;
  width: 100%;
}
.cropper-wrap-box, .cropper-canvas, .cropper-drag-box, .cropper-crop-box, .cropper-modal {
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}
.cropper-wrap-box, .cropper-canvas {
  overflow: hidden;
}
.cropper-drag-box {
  background-color: #fff;
  opacity: 0;
}
.cropper-modal {
  background-color: #000;
  opacity: 0.5;
}
.cropper-view-box {
  display: block;
  height: 100%;
  outline: 1px solid #39f;
  outline-color: rgba(51, 153, 255, 0.75);
  overflow: hidden;
  width: 100%;
}
.cropper-dashed {
  border: 0 dashed #eee;
  display: block;
  opacity: 0.5;
  position: absolute;
}
.cropper-dashed.dashed-h {
  border-bottom-width: 1px;
  border-top-width: 1px;
  height: 33.3333333333%;
  left: 0;
  top: 33.3333333333%;
  width: 100%;
}
.cropper-dashed.dashed-v {
  border-left-width: 1px;
  border-right-width: 1px;
  height: 100%;
  left: 33.3333333333%;
  top: 0;
  width: 33.3333333333%;
}
.cropper-center {
  display: block;
  height: 0;
  left: 50%;
  opacity: 0.75;
  position: absolute;
  top: 50%;
  width: 0;
}
.cropper-center::before, .cropper-center::after {
  background-color: #eee;
  content: " ";
  display: block;
  position: absolute;
}
.cropper-center::before {
  height: 1px;
  left: -3px;
  top: 0;
  width: 7px;
}
.cropper-center::after {
  height: 7px;
  left: 0;
  top: -3px;
  width: 1px;
}
.cropper-face, .cropper-line, .cropper-point {
  display: block;
  height: 100%;
  opacity: 0.1;
  position: absolute;
  width: 100%;
}
.cropper-face {
  background-color: #fff;
  left: 0;
  top: 0;
}
.cropper-line {
  background-color: #39f;
}
.cropper-line.line-e {
  cursor: ew-resize;
  right: -3px;
  top: 0;
  width: 5px;
}
.cropper-line.line-n {
  cursor: ns-resize;
  height: 5px;
  left: 0;
  top: -3px;
}
.cropper-line.line-w {
  cursor: ew-resize;
  left: -3px;
  top: 0;
  width: 5px;
}
.cropper-line.line-s {
  bottom: -3px;
  cursor: ns-resize;
  height: 5px;
  left: 0;
}
.cropper-point {
  background-color: #39f;
  height: 5px;
  opacity: 0.75;
  width: 5px;
}
.cropper-point.point-e {
  cursor: ew-resize;
  margin-top: -3px;
  right: -3px;
  top: 50%;
}
.cropper-point.point-n {
  cursor: ns-resize;
  left: 50%;
  margin-left: -3px;
  top: -3px;
}
.cropper-point.point-w {
  cursor: ew-resize;
  left: -3px;
  margin-top: -3px;
  top: 50%;
}
.cropper-point.point-s {
  bottom: -3px;
  cursor: s-resize;
  left: 50%;
  margin-left: -3px;
}
.cropper-point.point-ne {
  cursor: nesw-resize;
  right: -3px;
  top: -3px;
}
.cropper-point.point-nw {
  cursor: nwse-resize;
  left: -3px;
  top: -3px;
}
.cropper-point.point-sw {
  bottom: -3px;
  cursor: nesw-resize;
  left: -3px;
}
.cropper-point.point-se {
  bottom: -3px;
  cursor: nwse-resize;
  height: 20px;
  opacity: 1;
  right: -3px;
  width: 20px;
}
@media (min-width: 768px) {
  .cropper-point.point-se {
    height: 15px;
    width: 15px;
  }
}
@media (min-width: 992px) {
  .cropper-point.point-se {
    height: 10px;
    width: 10px;
  }
}
@media (min-width: 1200px) {
  .cropper-point.point-se {
    height: 5px;
    opacity: 0.75;
    width: 5px;
  }
}
.cropper-point.point-se::before {
  background-color: #39f;
  bottom: -50%;
  content: " ";
  display: block;
  height: 200%;
  opacity: 0;
  position: absolute;
  right: -50%;
  width: 200%;
}
.cropper-invisible {
  opacity: 0;
}
.cropper-bg {
  background-image: url("../images/bg.png");
}
.cropper-hide {
  display: block;
  height: 0;
  position: absolute;
  width: 0;
}
.cropper-hidden {
  display: none !important;
}
.cropper-move {
  cursor: move;
}
.cropper-crop {
  cursor: crosshair;
}
.cropper-disabled .cropper-drag-box, .cropper-disabled .cropper-face, .cropper-disabled .cropper-line, .cropper-disabled .cropper-point {
  cursor: not-allowed;
}

.cropper-line {
  background-color: #3f499a;
}

:host,
:root {
  --vs-colors--lightest: rgba(60, 60, 60, 0.26);
  --vs-colors--light: rgba(60, 60, 60, 0.5);
  --vs-colors--dark: #333;
  --vs-colors--darkest: rgba(0, 0, 0, 0.15);
  --vs-search-input-color: inherit;
  --vs-search-input-bg: #fff;
  --vs-search-input-placeholder-color: inherit;
  --vs-font-size: 1rem;
  --vs-line-height: 1.4;
  --vs-state-disabled-bg: #f8f8f8;
  --vs-state-disabled-color: var(--vs-colors--light);
  --vs-state-disabled-controls-color: var(--vs-colors--light);
  --vs-state-disabled-cursor: not-allowed;
  --vs-border-color: var(--vs-colors--lightest);
  --vs-border-width: 1px;
  --vs-border-style: solid;
  --vs-border-radius: 4px;
  --vs-actions-padding: 4px 6px 0 3px;
  --vs-controls-color: var(--vs-colors--light);
  --vs-controls-size: 1;
  --vs-controls--deselect-text-shadow: 0 1px 0 #fff;
  --vs-selected-bg: #f0f0f0;
  --vs-selected-color: var(--vs-colors--dark);
  --vs-selected-border-color: var(--vs-border-color);
  --vs-selected-border-style: var(--vs-border-style);
  --vs-selected-border-width: var(--vs-border-width);
  --vs-dropdown-bg: #fff;
  --vs-dropdown-color: inherit;
  --vs-dropdown-z-index: 1000;
  --vs-dropdown-min-width: 160px;
  --vs-dropdown-max-height: 350px;
  --vs-dropdown-box-shadow: 0px 3px 6px 0px var(--vs-colors--darkest);
  --vs-dropdown-option-bg: #000;
  --vs-dropdown-option-color: var(--vs-dropdown-color);
  --vs-dropdown-option-padding: 3px 20px;
  --vs-dropdown-option--active-bg: #5897fb;
  --vs-dropdown-option--active-color: #fff;
  --vs-dropdown-option--deselect-bg: #fb5858;
  --vs-dropdown-option--deselect-color: #fff;
  --vs-transition-timing-function: cubic-bezier(1, -0.115, 0.975, 0.855);
  --vs-transition-duration: 150ms ;
}

.v-select {
  font-family: inherit;
  position: relative;
}

.v-select,
.v-select * {
  box-sizing: border-box;
}

:root {
  --vs-transition-timing-function: cubic-bezier(1, 0.5, 0.8, 1);
  --vs-transition-duration: 0.15s ;
}

@-webkit-keyframes vSelectSpinner {
  0% {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(1turn);
  }
}
@keyframes vSelectSpinner {
  0% {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(1turn);
  }
}
.vs__fade-enter-active,
.vs__fade-leave-active {
  pointer-events: none;
  transition: opacity var(--vs-transition-duration) var(--vs-transition-timing-function);
}

.vs__fade-enter,
.vs__fade-leave-to {
  opacity: 0;
}

:root {
  --vs-disabled-bg: var(--vs-state-disabled-bg);
  --vs-disabled-color: var(--vs-state-disabled-color);
  --vs-disabled-cursor: var(--vs-state-disabled-cursor) ;
}

.vs--disabled .vs__clear,
.vs--disabled .vs__dropdown-toggle,
.vs--disabled .vs__open-indicator,
.vs--disabled .vs__search,
.vs--disabled .vs__selected {
  background-color: var(--vs-disabled-bg);
  cursor: var(--vs-disabled-cursor);
}

.v-select[dir=rtl] .vs__actions {
  padding: 0 3px 0 6px;
}

.v-select[dir=rtl] .vs__clear {
  margin-left: 6px;
  margin-right: 0;
}

.v-select[dir=rtl] .vs__deselect {
  margin-left: 0;
  margin-right: 2px;
}

.v-select[dir=rtl] .vs__dropdown-menu {
  text-align: right;
}

.vs__dropdown-toggle {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: var(--vs-search-input-bg);
  border: var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);
  border-radius: var(--vs-border-radius);
  display: flex;
  padding: 0 0 4px;
  white-space: normal;
}

.vs__selected-options {
  display: flex;
  flex-basis: 100%;
  flex-grow: 1;
  flex-wrap: wrap;
  padding: 0 2px;
  position: relative;
}

.vs__actions {
  align-items: center;
  display: flex;
  padding: var(--vs-actions-padding);
}

.vs--searchable .vs__dropdown-toggle {
  cursor: text;
}

.vs--unsearchable .vs__dropdown-toggle {
  cursor: pointer;
}

.vs--open .vs__dropdown-toggle {
  border-bottom-color: transparent;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.vs__open-indicator {
  fill: var(--vs-controls-color);
  transform: scale(var(--vs-controls-size));
  transition: transform var(--vs-transition-duration) var(--vs-transition-timing-function);
  transition-timing-function: var(--vs-transition-timing-function);
}

.vs--open .vs__open-indicator {
  transform: rotate(180deg) scale(var(--vs-controls-size));
}

.vs--loading .vs__open-indicator {
  opacity: 0;
}

.vs__clear {
  fill: var(--vs-controls-color);
  background-color: transparent;
  border: 0;
  cursor: pointer;
  margin-right: 8px;
  padding: 0;
}

.vs__dropdown-menu {
  background: var(--vs-dropdown-bg);
  border: var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);
  border-radius: 0 0 var(--vs-border-radius) var(--vs-border-radius);
  border-top-style: none;
  box-shadow: var(--vs-dropdown-box-shadow);
  box-sizing: border-box;
  color: var(--vs-dropdown-color);
  display: block;
  left: 0;
  list-style: none;
  margin: 0;
  max-height: var(--vs-dropdown-max-height);
  min-width: var(--vs-dropdown-min-width);
  overflow-y: auto;
  padding: 5px 0;
  position: absolute;
  text-align: left;
  top: calc(100% - var(--vs-border-width));
  width: 100%;
  z-index: var(--vs-dropdown-z-index);
}

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

.vs__dropdown-option {
  clear: both;
  color: var(--vs-dropdown-option-color);
  cursor: pointer;
  display: block;
  line-height: 1.42857143;
  padding: var(--vs-dropdown-option-padding);
  white-space: nowrap;
}

.vs__dropdown-option--highlight {
  background: var(--vs-dropdown-option--active-bg);
  color: var(--vs-dropdown-option--active-color);
}

.vs__dropdown-option--deselect {
  background: var(--vs-dropdown-option--deselect-bg);
  color: var(--vs-dropdown-option--deselect-color);
}

.vs__dropdown-option--disabled {
  background: var(--vs-state-disabled-bg);
  color: var(--vs-state-disabled-color);
  cursor: var(--vs-state-disabled-cursor);
}

.vs__selected {
  align-items: center;
  background-color: var(--vs-selected-bg);
  border: var(--vs-selected-border-width) var(--vs-selected-border-style) var(--vs-selected-border-color);
  border-radius: var(--vs-border-radius);
  color: var(--vs-selected-color);
  display: flex;
  line-height: var(--vs-line-height);
  margin: 4px 2px 0;
  padding: 0 0.25em;
  z-index: 0;
}

.vs__deselect {
  fill: var(--vs-controls-color);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: none;
  border: 0;
  cursor: pointer;
  display: inline-flex;
  margin-left: 4px;
  padding: 0;
  text-shadow: var(--vs-controls--deselect-text-shadow);
}

.vs--single .vs__selected {
  background-color: transparent;
  border-color: transparent;
}

.vs--single.vs--loading .vs__selected,
.vs--single.vs--open .vs__selected {
  opacity: 0.4;
  position: absolute;
}

.vs--single.vs--searching .vs__selected {
  display: none;
}

.vs__search::-webkit-search-cancel-button {
  display: none;
}

.vs__search::-ms-clear,
.vs__search::-webkit-search-decoration,
.vs__search::-webkit-search-results-button,
.vs__search::-webkit-search-results-decoration {
  display: none;
}

.vs__search,
.vs__search:focus {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: none;
  border: 1px solid transparent;
  border-left: none;
  box-shadow: none;
  color: var(--vs-search-input-color);
  flex-grow: 1;
  font-size: var(--vs-font-size);
  line-height: var(--vs-line-height);
  margin: 4px 0 0;
  max-width: 100%;
  outline: none;
  padding: 0 7px;
  width: 0;
  z-index: 1;
}

.vs__search::-moz-placeholder {
  color: var(--vs-search-input-placeholder-color);
}

.vs__search:-ms-input-placeholder {
  color: var(--vs-search-input-placeholder-color);
}

.vs__search::placeholder {
  color: var(--vs-search-input-placeholder-color);
}

.vs--unsearchable .vs__search {
  opacity: 1;
}

.vs--unsearchable:not(.vs--disabled) .vs__search {
  cursor: pointer;
}

.vs--single.vs--searching:not(.vs--open):not(.vs--loading) .vs__search {
  opacity: 0.2;
}

.vs__spinner {
  align-self: center;
  -webkit-animation: vSelectSpinner 1.1s linear infinite;
  animation: vSelectSpinner 1.1s linear infinite;
  border: 0.9em solid hsla(0, 0%, 39%, 0.1);
  border-left-color: rgba(60, 60, 60, 0.45);
  font-size: 5px;
  opacity: 0;
  overflow: hidden;
  text-indent: -9999em;
  transform: translateZ(0) scale(var(--vs-controls--spinner-size, var(--vs-controls-size)));
  transition: opacity 0.1s;
}

.vs__spinner,
.vs__spinner:after {
  border-radius: 50%;
  height: 5em;
  transform: scale(var(--vs-controls--spinner-size, var(--vs-controls-size)));
  width: 5em;
}

.vs--loading .vs__spinner {
  opacity: 1;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1vZHVsZXMvdjEvdHlwb2dyYXBoeS5zY3NzIiwicGFydGlhbHMvX2Zsb3dlZGl0b3Iuc2NzcyIsIm1vZHVsZXMvdjEvY29sb3JzLnNjc3MiLCJjb21wb25lbnRzL3YyL2Rlc2lnbi10b2tlbnMvX2Rlc2lnbi10b2tlbnMuc2NzcyIsImNvbXBvbmVudHMvdjIvb3ZlcmxheS1zaGVsbC9fb3ZlcmxheS1zaGVsbC5zY3NzIiwiY29tcG9uZW50cy92MS9idXR0b25zLnNjc3MiLCJjb21wb25lbnRzL3YxL2lucHV0LnNjc3MiLCJjb21wb25lbnRzL3YxL2xhYmVscy5zY3NzIiwiY29tcG9uZW50cy92MS9iYWRnZXMuc2NzcyIsImNvbXBvbmVudHMvdjEvdGFncy5zY3NzIiwiY29tcG9uZW50cy92MS9zaWRlYmFyLnNjc3MiLCJjb21wb25lbnRzL3YxL2Ryb3Bkb3duLnNjc3MiLCJjb21wb25lbnRzL3YxL2RpYWxvZy5zY3NzIiwiY29tcG9uZW50cy92MS9uYXZpZ2F0aW9uYnV0dG9uLnNjc3MiLCJjb21wb25lbnRzL3YxL21vZGFsLnNjc3MiLCJjb21wb25lbnRzL3YxL2NhcmQuc2NzcyIsImNvbXBvbmVudHMvdjEvdW5pdFR5cGUuc2NzcyIsImNvbXBvbmVudHMvdjEvbWVudUxhYmVsLnNjc3MiLCJjb21wb25lbnRzL3YxL3NlYXJjaGJhci5zY3NzIiwiY29tcG9uZW50cy92MS9jb2x1bW4uc2NzcyIsImNvbXBvbmVudHMvdjEvY2FsZW5kZXIvam9iLWNhcmQuc2NzcyIsImNvbXBvbmVudHMvdjEvY2FsZW5kZXIvZHJvcGRvd25fbWVudS5zY3NzIiwiY29tcG9uZW50cy92MS9jYWxlbmRlci90b2dnbGUuc2NzcyIsImNvbXBvbmVudHMvdjEvY2FsZW5kZXIvZHVlLWRhdGUuc2NzcyIsImNvbXBvbmVudHMvdjEvdG9vbHRpcC5zY3NzIiwiY29tcG9uZW50cy92MS9jaGVja2JveC5zY3NzIiwiY29tcG9uZW50cy92MS9yYWRpb0J1dHRvbi5zY3NzIiwiY29tcG9uZW50cy92MS9tZW51SXRlbS5zY3NzIiwiY29tcG9uZW50cy92MS9hdmF0YXIuc2NzcyIsImNvbXBvbmVudHMvdjIvYWNjb3VudC1jYXJkL19hY2NvdW50LWNhcmQuc2NzcyIsImNvbXBvbmVudHMvdjIvYWN0aW9uLWJhci9fYWN0aW9uLWJhci5zY3NzIiwiY29tcG9uZW50cy92Mi9hY3Rpdml0eS1jYXJkL19hY3Rpdml0eS1jYXJkLnNjc3MiLCJjb21wb25lbnRzL3YyL2FjdGl2aXR5LWljb24vX2FjdGl2aXR5LWljb24uc2NzcyIsImNvbXBvbmVudHMvdjIvYWN0aXZpdHktaWNvbi1waWNrZXIvX2FjdGl2aXR5LWljb24tcGlja2VyLnNjc3MiLCJjb21wb25lbnRzL3YyL2FjdGl2aXR5LWljb24tcGlja2VyLW92ZXJsYXkvX2FjdGl2aXR5LWljb24tcGlja2VyLW92ZXJsYXkuc2NzcyIsImNvbXBvbmVudHMvdjIvYWN0aXZpdHktcm93L19hY3Rpdml0eS1yb3cuc2NzcyIsImNvbXBvbmVudHMvdjIvYWdlbmRhLWxpc3QvX2FnZW5kYS1saXN0LnNjc3MiLCJjb21wb25lbnRzL3YyL2FsZXJ0L19hbGVydC5zY3NzIiwiY29tcG9uZW50cy92Mi9hbnN3ZXItb3B0aW9uL19hbnN3ZXItb3B0aW9uLnNjc3MiLCJjb21wb25lbnRzL3YyL2Fuc3dlci1idXR0b24vX2Fuc3dlci1idXR0b24uc2NzcyIsImNvbXBvbmVudHMvdjIvYXZhdGFyL19hdmF0YXIuc2NzcyIsImNvbXBvbmVudHMvdjIvYXZhdGFyLXN0YWNrL19hdmF0YXItc3RhY2suc2NzcyIsImNvbXBvbmVudHMvdjIvYmFja2dyb3VuZC1waWNrZXIvX2JhY2tncm91bmQtcGlja2VyLnNjc3MiLCJjb21wb25lbnRzL3YyL2JhdHRsZS1iYXIvX2JhdHRsZS1iYXIuc2NzcyIsImNvbXBvbmVudHMvdjIvYm90dG9tLXNoZWV0L19ib3R0b20tc2hlZXQuc2NzcyIsImNvbXBvbmVudHMvdjIvYm90dG9tLXNoZWV0LWJ1dHRvbi9fYm90dG9tLXNoZWV0LWJ1dHRvbi5zY3NzIiwiY29tcG9uZW50cy92Mi9wb3BvdmVyL19wb3BvdmVyLnNjc3MiLCJjb21wb25lbnRzL3YyL2JyZWFkY3J1bWIvX2JyZWFkY3J1bWIuc2NzcyIsImNvbXBvbmVudHMvdjIvYnV0dG9uL19idXR0b24uc2NzcyIsImNvbXBvbmVudHMvdjIvY2FsZW5kYXItc2VydmljZS1idXR0b24vX2NhbGVuZGFyLXNlcnZpY2UtYnV0dG9uLnNjc3MiLCJjb21wb25lbnRzL3YyL2NlbGVicmF0aW9uL19jZWxlYnJhdGlvbi5zY3NzIiwiY29tcG9uZW50cy92Mi9wYXJ0eS1zY2VuZS9fcGFydHktc2NlbmUuc2NzcyIsImNvbXBvbmVudHMvdjIvc2NvcmUtY291bnQvX3Njb3JlLWNvdW50LnNjc3MiLCJjb21wb25lbnRzL3YyL2NoZWNrYm94L19jaGVja2JveC5zY3NzIiwiY29tcG9uZW50cy92Mi9jb2xvci1waWNrZXIvX2NvbG9yLXBpY2tlci5zY3NzIiwiY29tcG9uZW50cy92Mi9jb2xvci1wYW5lbC9fY29sb3ItcGFuZWwuc2NzcyIsImNvbXBvbmVudHMvdjIvZGF0ZS1waWNrZXIvX2RhdGUtcGlja2VyLnNjc3MiLCJjb21wb25lbnRzL3YyL2RpdmlkZXIvX2RpdmlkZXIuc2NzcyIsImNvbXBvbmVudHMvdjIvZG9jdW1lbnQtdmlld2VyL19kb2N1bWVudC12aWV3ZXIuc2NzcyIsImNvbXBvbmVudHMvdjIvZHJvcC16b25lL19kcm9wLXpvbmUuc2NzcyIsImNvbXBvbmVudHMvdjIvZWRpdC1mcmFtZS9fZWRpdC1mcmFtZS5zY3NzIiwiY29tcG9uZW50cy92Mi9lbW9qaS1zaGVldC9fZW1vamktc2hlZXQuc2NzcyIsImNvbXBvbmVudHMvdjIvZW1wdHktc3RhdGUvX2VtcHR5LXN0YXRlLnNjc3MiLCJjb21wb25lbnRzL3YyL2V2ZW50LWNhcmQvX2V2ZW50LWNhcmQuc2NzcyIsImNvbXBvbmVudHMvdjIvZXhwb3J0LW1vZGFsL19leHBvcnQtbW9kYWwuc2NzcyIsImNvbXBvbmVudHMvdjIvbW9udGgtZ3JpZC9fbW9udGgtZ3JpZC5zY3NzIiwiY29tcG9uZW50cy92Mi9tb250aC1zdHJpcC9fbW9udGgtc3RyaXAuc2NzcyIsImNvbXBvbmVudHMvdjIvdGltZS1ncmlkL190aW1lLWdyaWQuc2NzcyIsImNvbXBvbmVudHMvdjIvdGltZS1waWNrZXIvX3RpbWUtcGlja2VyLnNjc3MiLCJjb21wb25lbnRzL3YyL3RpbWUtc2VsZWN0L190aW1lLXNlbGVjdC5zY3NzIiwiY29tcG9uZW50cy92Mi9xdWljay1ldmVudC9fcXVpY2stZXZlbnQuc2NzcyIsImNvbXBvbmVudHMvdjIvZXZlbnQtc2hlZXQvX2V2ZW50LXNoZWV0LnNjc3MiLCJjb21wb25lbnRzL3YyL2Zhdm9yaXRlLWJ1dHRvbi9fZmF2b3JpdGUtYnV0dG9uLnNjc3MiLCJjb21wb25lbnRzL3YyL2ZpbGUtaWNvbi9fZmlsZS1pY29uLnNjc3MiLCJjb21wb25lbnRzL3YyL2ZvbGRlci1pY29uL19mb2xkZXItaWNvbi5zY3NzIiwiY29tcG9uZW50cy92Mi9zdGF0dXMtYmFkZ2UvX3N0YXR1cy1iYWRnZS5zY3NzIiwiY29tcG9uZW50cy92Mi9zdGF0dXMtdHJhY2svX3N0YXR1cy10cmFjay5zY3NzIiwiY29tcG9uZW50cy92Mi9zdGF0aW9uLXRyYWNrL19zdGF0aW9uLXRyYWNrLnNjc3MiLCJjb21wb25lbnRzL3YyL2ZpbGUtdXBsb2FkL19maWxlLXVwbG9hZC5zY3NzIiwiY29tcG9uZW50cy92Mi9maWx0ZXItc2hlZXQvX2ZpbHRlci1zaGVldC5zY3NzIiwiY29tcG9uZW50cy92Mi9jb21wb3NpdGlvbi1iYXIvX2NvbXBvc2l0aW9uLWJhci5zY3NzIiwiY29tcG9uZW50cy92Mi9jb250ZXh0LW1lbnUvX2NvbnRleHQtbWVudS5zY3NzIiwiY29tcG9uZW50cy92Mi9mb3JtLWNhcmQvX2Zvcm0tY2FyZC5zY3NzIiwiY29tcG9uZW50cy92Mi9mb3JtYXQtcnVsZXMvX2Zvcm1hdC1ydWxlcy5zY3NzIiwiY29tcG9uZW50cy92Mi9mb3JtdWxhLWVkaXRvci9fZm9ybXVsYS1lZGl0b3Iuc2NzcyIsImNvbXBvbmVudHMvdjIvZ2lmLXNoZWV0L19naWYtc2hlZXQuc2NzcyIsImNvbXBvbmVudHMvdjIvZ3JpZC10aWxlL19ncmlkLXRpbGUuc2NzcyIsImNvbXBvbmVudHMvdjIvaHViLXRpbGUvX2h1Yi10aWxlLnNjc3MiLCJjb21wb25lbnRzL3YyL2ljb24tZmllbGQvX2ljb24tZmllbGQuc2NzcyIsImNvbXBvbmVudHMvdjIvaGlzdG9yeS1pdGVtL19oaXN0b3J5LWl0ZW0uc2NzcyIsImNvbXBvbmVudHMvdjIvaWNvbi9faWNvbi5zY3NzIiwiY29tcG9uZW50cy92Mi9pY29uLWJ0bi9faWNvbi1idG4uc2NzcyIsImNvbXBvbmVudHMvdjIvaWxsdXN0cmF0aW9uL19pbGx1c3RyYXRpb24uc2NzcyIsImNvbXBvbmVudHMvdjIvaW5mby1jYXJkL19pbmZvLWNhcmQuc2NzcyIsImNvbXBvbmVudHMvdjIvaW1hZ2UtY3JvcC9faW1hZ2UtY3JvcC5zY3NzIiwiY29tcG9uZW50cy92Mi90eXBvZ3JhcGh5L190eXBvZ3JhcGh5LnNjc3MiLCJjb21wb25lbnRzL3YyL2luYm94LW1lc3NhZ2UvX2luYm94LW1lc3NhZ2Uuc2NzcyIsImNvbXBvbmVudHMvdjIvaW5wdXQvX2lucHV0LnNjc3MiLCJjb21wb25lbnRzL3YyL2xhYmVsLWNpcmNsZS9fbGFiZWwtY2lyY2xlLnNjc3MiLCJjb21wb25lbnRzL3YyL2xvZ28vX2xvZ28uc2NzcyIsImNvbXBvbmVudHMvdjIvbWVtYmVycy9fbWVtYmVycy5zY3NzIiwiY29tcG9uZW50cy92Mi9tZW51L19tZW51LnNjc3MiLCJjb21wb25lbnRzL3YyL21lbnUtaXRlbS9fbWVudS1pdGVtLnNjc3MiLCJjb21wb25lbnRzL3YyL21vZGFsL19tb2RhbC5zY3NzIiwiY29tcG9uZW50cy92Mi9uYXYtaXRlbS9fbmF2LWl0ZW0uc2NzcyIsImNvbXBvbmVudHMvdjIvbmF2LXJhaWwvX25hdi1yYWlsLnNjc3MiLCJjb21wb25lbnRzL3YyL25vZGUtcGlja2VyL19ub2RlLXBpY2tlci5zY3NzIiwiY29tcG9uZW50cy92Mi9ub3ZhL19ub3ZhLnNjc3MiLCJjb21wb25lbnRzL3YyL25vdmEtbGF1bmNoZXIvX25vdmEtbGF1bmNoZXIuc2NzcyIsImNvbXBvbmVudHMvdjIvbm92YS1tZXNzYWdlL19ub3ZhLW1lc3NhZ2Uuc2NzcyIsImNvbXBvbmVudHMvdjIvbnVtYmVyLWluZGljYXRvci1iYWRnZS9fbnVtYmVyLWluZGljYXRvci1iYWRnZS5zY3NzIiwiY29tcG9uZW50cy92Mi9waG90by1nYWxsZXJ5L19waG90by1nYWxsZXJ5LnNjc3MiLCJjb21wb25lbnRzL3YyL3Bob3RvLXRpbGUvX3Bob3RvLXRpbGUuc2NzcyIsImNvbXBvbmVudHMvdjIvcGlja2VyLXRpbGUvX3BpY2tlci10aWxlLnNjc3MiLCJjb21wb25lbnRzL3YyL3BpY2tlci1yb3cvX3BpY2tlci1yb3cuc2NzcyIsImNvbXBvbmVudHMvdjIvcGxhY2Vob2xkZXItaW1hZ2UvX3BsYWNlaG9sZGVyLWltYWdlLnNjc3MiLCJjb21wb25lbnRzL3YyL3Byb2dyZXNzL19wcm9ncmVzcy5zY3NzIiwiY29tcG9uZW50cy92Mi9wcm9qZWN0LWNhcmQvX3Byb2plY3QtY2FyZC5zY3NzIiwiY29tcG9uZW50cy92Mi9wdWxzZS1jYXJkL19wdWxzZS1jYXJkLnNjc3MiLCJjb21wb25lbnRzL3YyL3B1bHNlLWNhbnZhcy9fcHVsc2UtY2FudmFzLnNjc3MiLCJjb21wb25lbnRzL3YyL3B1c2gtbm90aWZpY2F0aW9uL19wdXNoLW5vdGlmaWNhdGlvbi5zY3NzIiwiY29tcG9uZW50cy92Mi9yYWRpby9fcmFkaW8uc2NzcyIsImNvbXBvbmVudHMvdjIvcmFkaW8tdGlsZS9fcmFkaW8tdGlsZS5zY3NzIiwiY29tcG9uZW50cy92Mi9yYW5nZS1zbGlkZXIvX3JhbmdlLXNsaWRlci5zY3NzIiwiY29tcG9uZW50cy92Mi9yZWNpcGllbnQtcGlja2VyL19yZWNpcGllbnQtcGlja2VyLnNjc3MiLCJtb2R1bGVzL19taXhpbnMuc2NzcyIsImNvbXBvbmVudHMvdjIvcmVzb3VyY2UtdGltZWxpbmUvX3Jlc291cmNlLXRpbWVsaW5lLnNjc3MiLCJjb21wb25lbnRzL3YyL3JldmVhbC1zdGFnZS9fcmV2ZWFsLXN0YWdlLnNjc3MiLCJjb21wb25lbnRzL3YyL3Jvdy1idG4vX3Jvdy1idG4uc2NzcyIsImNvbXBvbmVudHMvdjIvc2VnbWVudC9fc2VnbWVudC5zY3NzIiwiY29tcG9uZW50cy92Mi9zZWdtZW50LXRpbGVzL19zZWdtZW50LXRpbGVzLnNjc3MiLCJjb21wb25lbnRzL3YyL3Njb3JlLXNjYWxlL19zY29yZS1zY2FsZS5zY3NzIiwiY29tcG9uZW50cy92Mi9saWtlcnQtc2NhbGUvX2xpa2VydC1zY2FsZS5zY3NzIiwiY29tcG9uZW50cy92Mi9zbWlsZXkvX3NtaWxleS5zY3NzIiwiY29tcG9uZW50cy92Mi9zbWlsZXktcGlja2VyL19zbWlsZXktcGlja2VyLnNjc3MiLCJjb21wb25lbnRzL3YyL3NlbGVjdC9fc2VsZWN0LnNjc3MiLCJjb21wb25lbnRzL3YyL3NoYXJlL19zaGFyZS5zY3NzIiwiY29tcG9uZW50cy92Mi9zaGFyZS1saW5rL19zaGFyZS1saW5rLnNjc3MiLCJjb21wb25lbnRzL3YyL3NpZGViYXIvX3NpZGViYXIuc2NzcyIsImNvbXBvbmVudHMvdjIvc2xpZGVyL19zbGlkZXIuc2NzcyIsImNvbXBvbmVudHMvdjIvc2tlbGV0b24vX3NrZWxldG9uLnNjc3MiLCJjb21wb25lbnRzL3YyL3NrZWxldG9uLWJvbmUvX3NrZWxldG9uLWJvbmUuc2NzcyIsImNvbXBvbmVudHMvdjIvc2tlbGV0b24taW5ib3gtcm93L19za2VsZXRvbi1pbmJveC1yb3cuc2NzcyIsImNvbXBvbmVudHMvdjIvc2tlbGV0b24tcHJvamVjdC1jYXJkL19za2VsZXRvbi1wcm9qZWN0LWNhcmQuc2NzcyIsImNvbXBvbmVudHMvdjIvc291cmNlLXBpbGwvX3NvdXJjZS1waWxsLnNjc3MiLCJjb21wb25lbnRzL3YyL3N0YXItcmF0aW5nL19zdGFyLXJhdGluZy5zY3NzIiwiY29tcG9uZW50cy92Mi9zdGF0LWNhcmQvX3N0YXQtY2FyZC5zY3NzIiwiY29tcG9uZW50cy92Mi9zdGF0dXMtYm9hcmQvX3N0YXR1cy1ib2FyZC5zY3NzIiwiY29tcG9uZW50cy92Mi9zdGlja2VyLXNoZWV0L19zdGlja2VyLXNoZWV0LnNjc3MiLCJjb21wb25lbnRzL3YyL3N1Z2dlc3Rpb24tY2hpcC9fc3VnZ2VzdGlvbi1jaGlwLnNjc3MiLCJjb21wb25lbnRzL3YyL3RhYmxlL3RhYmxlLnNjc3MiLCJjb21wb25lbnRzL3YyL3RhYmxlLXdyYXBwZXIvX3RhYmxlLXdyYXBwZXIuc2NzcyIsImNvbXBvbmVudHMvdjIvdGFnL190YWcuc2NzcyIsImNvbXBvbmVudHMvdjIvdGFza2xpc3QtY2FyZC9fdGFza2xpc3QtY2FyZC5zY3NzIiwiY29tcG9uZW50cy92Mi90ZXh0LWxpbmsvX3RleHQtbGluay5zY3NzIiwiY29tcG9uZW50cy92Mi90aW1lc3RhbXAvX3RpbWVzdGFtcC5zY3NzIiwiY29tcG9uZW50cy92Mi90b2FzdC9fdG9hc3Quc2NzcyIsImNvbXBvbmVudHMvdjIvdG9nZ2xlL190b2dnbGUuc2NzcyIsImNvbXBvbmVudHMvdjIvdG9vbGJhci1hY3Rpb24tYnRuL19hY3Rpb24tYnRuLnNjc3MiLCJjb21wb25lbnRzL3YyL3Rvb2x0aXAvX3Rvb2x0aXAuc2NzcyIsImNvbXBvbmVudHMvdjIvdG91Y2gtYnV0dG9uL190b3VjaC1idXR0b24uc2NzcyIsImNvbXBvbmVudHMvdjIvdHJhbnNsYXRpb24tcGFuZWwvX3RyYW5zbGF0aW9uLXBhbmVsLnNjc3MiLCJjb21wb25lbnRzL3YyL3RyYW5zbGF0aW9uLW1vZGFsL190cmFuc2xhdGlvbi1tb2RhbC5zY3NzIiwiY29tcG9uZW50cy92Mi90cmVlLWl0ZW0vX3RyZWUtaXRlbS5zY3NzIiwiY29tcG9uZW50cy92Mi91bml0LWlucHV0LXJvdy9fdW5pdC1pbnB1dC1yb3cuc2NzcyIsImNvbXBvbmVudHMvdjIvdXBkYXRlLXJvdy9fdXBkYXRlLXJvdy5zY3NzIiwiY29tcG9uZW50cy92Mi93aXphcmQtbW9kYWwvX3dpemFyZC1tb2RhbC5zY3NzIiwiY29tcG9uZW50cy92Mi91bml0LXR5cGUvX3VuaXQtdHlwZS5zY3NzIiwiY29tcG9uZW50cy92Mi9kYXRlLWNhcm91c2VsL19kYXRlLWNhcm91c2VsLnNjc3MiLCJjb21wb25lbnRzL3YyL3VuaXQtY2FyZC9fdW5pdC1jYXJkLnNjc3MiLCJjb21wb25lbnRzL3YyL3VuaXQtY29udGV4dC9fdW5pdC1jb250ZXh0LnNjc3MiLCJjb21wb25lbnRzL3YyL3N1bW1hcnktYmFkZ2UvX3N1bW1hcnktYmFkZ2Uuc2NzcyIsImNvbXBvbmVudHMvdjIvcHdhLW1haW4tbWVudS1pdGVtL19wd2EtbWFpbi1tZW51LWl0ZW0uc2NzcyIsImNvbXBvbmVudHMvdjIvYm90dG9tLW5hdi9ib3R0b20tbmF2LnNjc3MiLCJjb21wb25lbnRzL3YyL3B1bGwtcmVmcmVzaC9fcHVsbC1yZWZyZXNoLnNjc3MiLCJjb21wb25lbnRzL3YyL3RhYi1iYXIvX3RhYi1iYXIuc2NzcyIsImNvbXBvbmVudHMvdjIvYXBwLWhlYWRlci9hcHAtaGVhZGVyLnNjc3MiLCJjb21wb25lbnRzL3YyL3N3aXBlLXJvdy9fc3dpcGUtcm93LnNjc3MiLCJjb21wb25lbnRzL3YyL2xpc3Qtcm93L19saXN0LXJvdy5zY3NzIiwiY29tcG9uZW50cy92Mi9zZWN0aW9uLWNhcmQvX3NlY3Rpb24tY2FyZC5zY3NzIiwiY29tcG9uZW50cy92Mi9zZWFyY2gtb3ZlcmxheS9fc2VhcmNoLW92ZXJsYXkuc2NzcyIsImNvbXBvbmVudHMvdjIvc2VhcmNoLWZpbHRlci1wYW5lbC9fc2VhcmNoLWZpbHRlci1wYW5lbC5zY3NzIiwiY29tcG9uZW50cy92Mi90YXNrbGlzdC1ydW4tY2FyZC9fdGFza2xpc3QtcnVuLWNhcmQuc2NzcyIsImNvbXBvbmVudHMvdjIvc2VsZWN0aW9uLWJhci9fc2VsZWN0aW9uLWJhci5zY3NzIiwiY29tcG9uZW50cy92Mi9tZXNzYWdlLWhlYWRlci9fbWVzc2FnZS1oZWFkZXIuc2NzcyIsImNvbXBvbmVudHMvdjIvYW5zd2VyLXJvdy9fYW5zd2VyLXJvdy5zY3NzIiwiY29tcG9uZW50cy92Mi9tZXNzYWdlLWFjdGlvbmJhci9fbWVzc2FnZS1hY3Rpb25iYXIuc2NzcyIsImNvbXBvbmVudHMvdjIvdGltZWxpbmUtbWFya2VyL190aW1lbGluZS1tYXJrZXIuc2NzcyIsImNvbXBvbmVudHMvdjIvbG90dGllL19sb3R0aWUuc2NzcyIsInBhcnRpYWxzL3YxL2Jhc2Uuc2NzcyIsInBhcnRpYWxzL3YxL292ZXJ2aWV3L292ZXJ2aWV3LnNjc3MiLCJwYXJ0aWFscy92MS9hdXRvbWV0cmljcy5zY3NzIiwibW9kdWxlcy9fY29sb3JzLnNjc3MiLCJwYXJ0aWFscy92MS9fZG1zLWlkb2Muc2NzcyIsInBhcnRpYWxzL3YxL19icmllZmluZy1lZGl0b3Iuc2NzcyIsInBhcnRpYWxzL3YxL19ibG9jay1zdHJpcC5zY3NzIiwicGFydGlhbHMvdjEvX3Rhc2tsaXN0LXNldHRpbmdzLnNjc3MiLCJwYXJ0aWFscy92MS9fZGV0YWlsLXBhZ2Uuc2NzcyIsInBhcnRpYWxzL3YxL19wdWxzZS5zY3NzIiwicGFydGlhbHMvX2Rldi14cmF5LnNjc3MiLCJwYXJ0aWFscy9fZGV2LXRva2Vucy5zY3NzIiwicGFydGlhbHMvX2Rldi1kYXJrLW1vZGUuc2NzcyIsInBhcnRpYWxzL19pbmJveC5zY3NzIiwicGFnZXMvX3N1cnZleV92aWV3LnNjc3MiLCJwYWdlcy9faG9tZS5zY3NzIiwicGFnZXMvX292ZXJ2aWV3LnNjc3MiLCJwYWdlcy9fc2V0dGluZ3NfaHViLnNjc3MiLCJ2ZW5kb3IvX21hdGVyaWFsZGVzaWduaWNvbnMuc2NzcyIsInZlbmRvci9fdnVlLW11bHRpc2VsZWN0LnNjc3MiLCJ2YXIvd3d3L3FkbmEtcHJvL25vZGVfbW9kdWxlcy9jcm9wcGVyanMvc3JjL2Nzcy9jcm9wcGVyLnNjc3MiLCJ2ZW5kb3IvX2Nyb3BwZXIuc2NzcyIsInZlbmRvci9fdnVlLXNlbGVjdC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHUTtBQ0RBO0FEUVI7RUFDSTtFQUNBO0VBQ0EsT0VpQ1M7OztBQzFDYjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFjQTtBQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7RUFJQTtBQUVBO0FBQUE7QUFBQTtFQUdBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFPQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFTQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFVQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7QUFFQTtBQUFBO0FBQUE7QUFJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFNQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1BO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBT0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtFQUlBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBT0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFPQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU9BO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7QUFBQTtBQUdBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUdJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFFQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7RUFJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7QUFBQTtBQUdBO0FBQUE7QUFBQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7RUFDSTtJQUFXOztFQUNYO0lBQVc7O0VBQ1g7SUFBZ0I7O0VBQ2hCO0lBQVc7OztBQUVmO0VBQ0k7OztBQUVKO0VBQ0k7SUFBaUI7OztBQUdyQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNENBO0VBQ0k7RUFDQTtFQUdBOzs7QUFHSjtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBRUE7RUFDSTs7O0FBR0o7QUFDQTtFQUFrRDs7O0FBQ2xEO0VBQXlEOzs7QUFFekQ7QUFBQTtBQUVBO0VBQTREOzs7QUFFNUQ7RUFDSTtBQUFBO0lBQ3NCOzs7QUFHMUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0VBQ0k7RUFDQTtBQUNBO0FBQUE7QUFBQTtFQUdBO0FBQ0E7QUFBQTtFQUVBOzs7QUFFSjtFQUNJO0FBQ0E7QUFBQTtBQUFBO0VBR0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtFQUlBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtFQUdBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBR0E7RUFBdUM7OztBQUN2QztFQUF1Qzs7O0FBQ3ZDO0VBQXVDOzs7QUFDdkM7RUFBNkM7OztBQUU3QztBQUNBO0VBQ0k7QUFBQTtJQUNvQjs7O0FDaHNCeEI7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0VBRXNCOzs7QUFHdEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFLQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBS0E7RUFDQTs7O0FBS0o7RUFBc0I7OztBQUV0QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFBbUI7OztBQUtuQjtFQUFvQjs7O0FBTXBCO0VBQWlDO0VBQVk7OztBQUM3QztFQUF1Qzs7O0FBQ3ZDO0VBQXdDOzs7QUFDeEM7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7RUFDcUQ7OztBQUNyRDtFQUE2Qzs7O0FBRTdDO0VBQ0k7SUFBTzs7RUFDUDtJQUFPOzs7QUFHWDtFQUNJO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFHdkI7RUFDSTtBQUFBO0lBQ2M7OztBQU1sQjtBQUFBO0FBQUE7QUFBQTtFQUc4Qjs7O0FBRTlCO0FBQUE7RUFDa0M7OztBQ3BJbEM7RUFHSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUlKO0VBQ0k7O0FBR0o7RUFFSTs7QUFHSjtFQUVJO0VBQ0E7RUFDQTs7QUFHSjtFQUVJOztBQUtKO0VBRUk7RUFDQTtFQUNBO0VBRUE7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS1I7QUFBQTtBQUFBO0FBQUE7QUFLSTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUVJOztBQUdKO0VBRUk7RUFDQTs7QUFHSjtFQUVJOztBQUdKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQTFCUjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUVJOztBQUdKO0VBRUk7RUFDQTs7QUFHSjtFQUVJOztBQUdKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQTFCUjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUVJOztBQUdKO0VBRUk7RUFDQTs7QUFHSjtFQUVJOztBQUdKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQTFCUjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUVJOztBQUdKO0VBRUk7RUFDQTs7QUFHSjtFQUVJOztBQUdKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQTFCUjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUVJOztBQUdKO0VBRUk7RUFDQTs7QUFHSjtFQUVJOztBQUdKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQTFCUjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUVJOztBQUdKO0VBRUk7RUFDQTs7QUFHSjtFQUVJOztBQUdKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQTFCUjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUVJOztBQUdKO0VBRUk7RUFDQTs7QUFHSjtFQUVJOztBQUdKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQTFCUjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUVJOztBQUdKO0VBRUk7RUFDQTs7QUFHSjtFQUVJOztBQUdKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQ3BNWjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7O0FBRUE7RUFDSTs7O0FBSVI7QUFBQTtFQUVJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FDeEtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7O0FBRUo7RUFDSTs7O0FBS0o7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBRUE7RUFDSTs7QUFJUjtFQUNJOzs7QUFiUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7OztBQWJSO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTs7O0FBYlI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBRUE7RUFDSTs7QUFJUjtFQUNJOzs7QUFiUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7OztBQWJSO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTs7O0FBYlI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBRUE7RUFDSTs7QUFJUjtFQUNJOzs7QUNqRFo7RUFDSTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUVBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUVBOztBQUlJO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUxSO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUxSO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUxSO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUxSO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUxSO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOzs7QUFRaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7OztBQzNDUjtFQUdJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBTlI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBTlI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBTlI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBTlI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBTlI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBTlI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBTlI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBUVo7RUFDRTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtBQUFBO0VBRUU7O0FBSUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQzFKTjtFQUNJLFlSMkNTO0VRekNUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFJSjtFQUNJOztBQUVBO0VBQ0k7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJLFlSbENIOztBUXFDRDtFQUNJLFlSK0VHOztBUTdFSDtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSSxZUm9FRDs7QVFoRUM7RUFDSSxNUnREWDs7QVE2RFQ7RUFDSTs7QUFFQTtFQUNJOzs7QUN6R1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDdkRwQjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FDdkNGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0M7OztBQUtIO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBOztBQUVBO0VBQ0U7O0FBSUo7RUFDRTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOztBQUlKO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7O0FBR0o7RUFDRTtFQUNBO0VBQ0E7RUFFQTs7QUFFQTtBQUFBO0FBQUE7RUFHRTs7QUFJSjtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7QUFHRjtBQUFBO0VBRUU7O0FBR0Y7RUFDRTs7QUFLRjtFQUNFO0VBQ0E7RUFDQTs7QUFFSDtFQUNBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFFQTs7QUFFQTtFQUNFOztBQUVGO0VBQ0U7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFHSjtFQUNFOzs7QUFJSjtBQUNBO0VBQ0U7RUFDQTtFQUNBOztBQUVBO0VBQ0U7OztBQUlKO0FDalFBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUdBO0VBQ0E7OztBQUlGO0FBRUE7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUNqRUY7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0k7RUFDSTs7QUFESjtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUdKO0VBQ0k7OztBQU1aO0FBQUE7RUFFQztFQUNBO0VBQ0E7OztBQUtFO0VBQ0M7O0FBTUQ7RUFDQzs7QUFJSDtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQUVEO0VBQ0M7RUFDQTs7O0FBR0Y7QUFBQTtFQUVDO0VBQ0E7RUFDQTs7O0FBRUQ7RUFDSTtJQUNJOzs7QUN4R1I7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQ3pHUjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtJQUFROzs7QUNsRVY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNLO0VBQ0E7OztBQUVMO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FDL0VGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFFRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBRUU7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUM5SkY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFFQTtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFJRjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFLRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUN0SEY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQStDOzs7QUFDL0M7RUFBK0M7OztBQUMvQztFQUErQzs7O0FBRS9DO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUF3Qjs7O0FBQ3hCO0VBQTJCO0VBQXFCOzs7QUFDaEQ7RUFBMkI7RUFBYzs7O0FBRXpDO0VBQ0U7RUFDQTs7O0FBR0Y7RUFBaUQ7OztBQUNqRDtFQUF1RDtFQUFrQjs7O0FBRXpFO0VBQW1CO0VBQWdCO0VBQWE7RUFBZTs7O0FBQy9EO0VBQWlCO0VBQWdCO0VBQWlCO0VBQWtCOzs7QUFFcEU7RUFDRTs7O0FBR0Y7RUFDRTtJQUFPO0lBQVk7O0VBQ25CO0lBQUs7SUFBWTs7O0FDMUVuQjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUNuRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFFRjtBQUFBO0VBRUU7OztBQUVGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUMxQ0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFJRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBSUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBSUY7RUFDRTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7OztBQUlGO0FBQUE7RUFFRTtFQUNBOzs7QUFJRjtBQUFBO0VBRUU7OztBQUlGO0FBQUE7RUFFRTs7O0FBSUY7QUFBQTtFQUVFOzs7QUM5TUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0EsWUF6Qkk7RUEwQko7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFJSjtFQUNFOztBQUdGO0VBQ0UsY0FoRE07O0FBbURSO0VBRUU7O0FBR0Y7RUFDRSxZQXpETTtFQTBETixjQTFETTs7QUE2RFI7RUFDRTtFQUNBO0VBQ0E7RUFDQSxrQkExREk7RUE0REo7RUFDQTs7QUFLQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBekVFO0VBMEVGO0VBQ0E7O0FBS0Y7RUFDRSxjQXRGSTs7QUF5Rk47RUFDRSxZQXpGTztFQTBGUCxjQTNGSTs7QUFxRk47RUFDRSxjQXBGRTs7QUF1Rko7RUFDRSxZQXZGSztFQXdGTCxjQXpGRTs7QUFxR047RUFDRTtFQUNBOztBQUVBO0VBQ0UsWUF0R1E7RUF1R1IsY0F0R1k7O0FBeUdkO0VBQ0UsWUE1R0U7O0FBK0dKO0VBQ0Usa0JBN0dVOztBQWlIZDtFQUNFOzs7QUNoSEo7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQW5DSTtFQW9DSjtFQUNBO0VBQ0E7O0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBNUNFO0VBOENGO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0UsY0FsRUs7O0FBcUVQO0VBQ0UsWUF0RUs7RUF1RUwsY0F2RUs7O0FBMEVQO0VBQ0U7O0FBSUE7RUFDRSxjQTVFSTs7QUErRU47RUFDRSxZQWhGSTtFQWlGSixjQWpGSTs7QUEyRU47RUFDRSxjQTNFRTs7QUE4RUo7RUFDRSxZQS9FRTtFQWdGRixjQWhGRTs7QUE0Rk47RUFDRTtFQUNBOztBQUVBO0VBQ0UsWUEvRlE7RUFnR1IsY0EvRlk7O0FBa0dkO0VBQ0UsWUF6R0U7RUEwR0YsY0FwR1k7O0FBdUdkO0VBQ0UsWUF2R1M7RUF3R1Q7O0FBSUo7RUFDRTs7O0FDdkhKO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFFQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFFQTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQUdGO0VBQ0U7RUFDQTs7O0FDbkVGO0VBQ0U7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFLSjtFQUFhO0VBQWE7RUFBYzs7O0FBQ3hDO0VBQWE7RUFBYTtFQUFjOzs7QUFDeEM7RUFBYTtFQUFhO0VBQWM7OztBQUN4QztFQUFhO0VBQWE7RUFBYzs7O0FBWXRDO0VBSUUsY0FIUztFQUlULFlBSEs7O0FBS0w7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7O0FBZEo7RUFJRSxjQUhTO0VBSVQsWUFISzs7QUFLTDtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOzs7QUFkSjtFQUlFLGNBSFM7RUFJVCxZQUhLOztBQUtMO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7OztBQWRKO0VBSUUsY0FIUztFQUlULFlBSEs7O0FBS0w7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7O0FBZEo7RUFJRSxjQUhTO0VBSVQsWUFISzs7QUFLTDtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOzs7QUFkSjtFQUlFLGNBSFM7RUFJVCxZQUhLOztBQUtMO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7OztBQy9DTjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQzFFRjtBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0k7RUFFSjtFQUNBOzs7QUFFSjtFQUEwQjs7O0FBRTFCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0VBRUk7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFHdkI7QUFBQTtFQUVJO0VBQ0E7RUFDQSxZQUNJOzs7QUN2RFI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFRRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7RUFHRTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7OztBQUlKO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBeUJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtJQUFLOztFQUNMO0lBQU07O0VBQ047SUFBTTs7RUFDTjtJQUFPOzs7QUFHVDtFQUNFOzs7QUFHRjtFQUNFO0lBQ0U7OztBQUlKO0FBQ0E7RUFDRTtJQUFLO0lBQXFCOztFQUMxQjtJQUFNO0lBQXlCOztFQUMvQjtJQUFPO0lBQXFCOzs7QUFHOUI7RUFDRTs7O0FBR0Y7RUFDRTtJQUNFOzs7QUFJSjtBQUFBO0FBQUE7QUFHQTtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFNRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTtJQUNFO0lBQ0E7SUFDQTs7RUFHRjtJQUNFO0lBQ0E7O0VBR0Y7SUFDRTtJQUNBOzs7QUNoc0JKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUM1Q0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFBZ0M7RUFBZTtFQUF3QjtFQUFVOzs7QUFDakY7QUFBQTtBQUFBO0VBRXlDOzs7QUFFekM7RUFDSTtFQUFlO0VBQXVDOzs7QUFFMUQ7RUFDSTtJQUEwQzs7O0FBRzlDO0VBQ0k7RUFBc0I7RUFBcUI7RUFDM0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUFpQjtFQUNqQjs7O0FBRUo7RUFBZ0U7RUFBc0I7OztBQUN0RjtFQUNJO0VBQXVDO0VBQXFDOzs7QUFFaEY7RUFBaUQ7OztBQUNqRDtFQUNJO0VBQW1DOzs7QUFFdkM7RUFDSTtFQUFtQztFQUNuQzs7O0FBRUo7RUFBa0U7OztBQUVsRTtFQUNJO0VBQWU7RUFBcUI7RUFDcEM7OztBQUVKO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNJO0VBQ0E7OztBQUVKO0FBQ0E7RUFDSTs7O0FBRUo7QUFBQTtBQUVBO0VBQ0k7OztBQUVKO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTs7O0FBR0o7RUFBNkM7RUFBZTs7O0FBRTVEO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQVc7RUFBaUI7RUFDNUI7RUFBaUM7OztBQUdyQztBQUNBO0VBQWlEOzs7QUFDakQ7RUFDSTtFQUF3Qzs7O0FBRTVDO0VBQ0k7SUFBMkQ7OztBQUUvRDtFQUNJO0lBQTJEOzs7QUFFL0Q7RUFBMkQ7OztBQUMzRDtFQUFpRTs7O0FBQ2pFO0VBQ0k7OztBQ3pHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0VBQXdDOzs7QUFDeEM7QUFBQTtBQUFBO0VBRWlEOzs7QUFFakQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0k7RUFFSjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXdDOzs7QUFDeEM7RUFDSTtJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBR3ZCO0VBQ0k7RUFBZTtFQUFxQjtFQUNwQztFQUFXO0VBQ1g7RUFBaUQ7OztBQUVyRDtFQUNJO0VBQVc7RUFBaUI7RUFBbUI7RUFBa0I7OztBQUVyRTtFQUFxQjs7O0FBRXJCO0VBQ0k7RUFBZTtFQUF3QjtFQUN2QztFQUEyQjtFQUFnQjs7O0FBRS9DO0VBQ0k7RUFBZTtFQUFxQjtFQUFXOzs7QUFFbkQ7RUFBc0I7RUFBZ0I7OztBQUN0QztFQUNJO0VBQWdCO0VBQWlCO0VBQTRCOzs7QUFHakU7RUFDSTtFQUFnQjtFQUNoQjtFQUFrQjtFQUNsQjtFQUNBO0VBQThDOzs7QUFFbEQ7RUFBeUM7OztBQUN6QztFQUNJO0VBQWlDOzs7QUFFckM7RUFBcUQ7OztBQUVyRDtFQUNJO0VBQWdCO0VBQWE7RUFBaUI7OztBQUdsRDtFQUNJO0VBQW9CO0VBQW1COzs7QUFFM0M7RUFDSTtFQUFpQjtFQUFrQjtFQUFnQzs7O0FBRXZFO0VBQXlCO0VBQWlCOzs7QUFFMUM7RUFDSTtFQUFlO0VBQXFCO0VBQTJCO0VBQy9EO0VBQW9CO0VBQThDOzs7QUFHdEU7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FDN01KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7OztBQVFKO0VBQ0k7RUFDQTtFQUNBOztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlBO0VBQ3NCOztBQWpCMUI7RUFtQkk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBLFlBQ0k7OztBQVVSO0FBQUE7RUFFSTtFQUNBLFlBQ0k7OztBQUlSO0FBQUE7RUFFSTs7O0FBUUo7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJOzs7QUFPUjtFQUNJO0VBQ0E7RUFDQTs7O0FBT0o7RUFDSTs7O0FBRUo7RUFDSTs7O0FBRUo7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBOzs7QUFlSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTs7O0FBS0o7RUFDSSxZQUNJOzs7QUFJUjtFQUNJLFlBQ0k7OztBQU1SO0FBQUE7RUFFSTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7OztBQUtKO0FBQUE7RUFFSTs7O0FBV0o7QUFBQTtBQUFBO0FBQUE7RUFJSTs7O0FBSUo7RUFDSTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUFxQjs7O0FBRXJCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFBaUI7OztBQUVqQjtFQUFjO0VBQWU7OztBQUM3QjtFQUFvQjs7O0FBSXBCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBOzs7QUFTSjtFQUNJOzs7QUFLSjtFQUNJO0lBQWdCOzs7QUFHcEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFRSjtFQUFnQjtFQUFlOzs7QUFFL0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQTZCOzs7QUFLN0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0k7OztBQU1SO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQU9KO0VBQ0k7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7OztBQUdKO0VBQTRDOzs7QUFDNUM7QUFBQTtFQUM0Qzs7O0FBQzVDO0VBQTRDOzs7QUFDNUM7RUFBNEM7OztBQUM1QztFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFBNEM7OztBQUM1QztFQUE0Qzs7O0FBQzVDO0VBQTRDOzs7QUFDNUM7RUFBNEM7OztBQUM1QztFQUE0Qzs7O0FBRTVDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQW9CSjtFQUNJO0VBQ0E7OztBQU1KO0VBQ0k7OztBQUtKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQU9KO0VBQ0k7OztBQUtKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFpQko7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFPSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTs7O0FBbUJKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBZ0JKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFVSjtBQUFBO0FBQUE7QUFTQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7QUFBQTtJQUNvQjs7O0FBV3hCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBWUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFnQko7RUFDSTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7RUFDQTtFQU9BLGNBQ0k7RUFFSjtFQUNBLE1BQ0k7RUFFSjtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7SUFBSzs7O0FBR1Q7RUFDSTs7O0FBR0o7RUFDSTtJQUFpQzs7O0FBR3JDO0VBQ0k7RUFDQTtFQUNBO0VBR0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBUUo7RUFBcUM7OztBQUNyQztFQUFxQzs7O0FBQ3JDO0VBQXFDOzs7QUFDckM7RUFBcUM7OztBQUNyQztFQUFxQzs7O0FBQ3JDO0VBQXFDOzs7QUFDckM7RUFBcUM7OztBQUNyQztFQUFxQzs7O0FBRXJDO0VBQXlEOzs7QUFDekQ7RUFBeUQ7OztBQUN6RDtFQUF5RDs7O0FBQ3pEO0VBQXlEOzs7QUFDekQ7RUFBeUQ7OztBQUN6RDtFQUF5RDs7O0FBQ3pEO0VBQXlEOzs7QUFDekQ7RUFBeUQ7OztBQXlCekQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUErQzs7O0FBQy9DO0VBQStDOzs7QUFJL0M7RUFBbUU7OztBQUNuRTtFQUFtRTs7O0FBRW5FO0VBQXNDOzs7QUFDdEM7RUFDSTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFXSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBVUo7RUFDSTtFQUNBOzs7QUFXSjtFQUNJOzs7QUFZSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBOzs7QUFNSjtFQUNJOzs7QUFRSjtFQUNJOzs7QUFXSjtFQUNJO0lBQ0k7OztBQVFSO0VBQXNDOzs7QUFDdEM7RUFBc0M7OztBQUV0QztFQUNJO0VBQ0E7OztBQUdKO0VBQXlDOzs7QUFDekM7RUFBeUM7OztBQUN6QztFQUF5Qzs7O0FBSXpDO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUMvckNKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVVGO0VBQ0U7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDL0ZGO0VBRUU7RUFDQTtFQUNBO0VBRUE7RUFJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTs7O0FBUUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQVdGO0VBQ0U7OztBQU1GO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUtGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQ2hLRjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUF5Qjs7QUFJekI7RUFFSTtFQUNBOztBQUVBO0VBQWtDOztBQUNsQztFQUFrQztFQUFZOztBQUM5QztFQUFrQztFQUFxQjs7QUFJM0Q7RUFBNkM7O0FBRzdDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQStCOztBQUluQztFQUNJO0VBQ0E7O0FBSUo7RUFDSTtFQUNBOztBQUlKO0VBQ0k7RUFDQTs7QUFqRVI7RUE2RUk7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBVUo7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7OztBQWNSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFhSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQVNBO0VBQVU7O0FBRVY7RUFDSTtFQUNBOztBQUdKO0VBQU07RUFBYTs7QUFFbkI7RUFDSTtFQUNBO0VBQ0E7O0FBaUJKO0VBQ0k7RUFDQTtFQUNBOzs7QUFJUjtFQUFpRTs7O0FBRWpFO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUEyQztFQUFZOzs7QUFDdkQ7RUFBMkM7RUFBWTs7O0FBR25EO0VBQTJDO0VBQVk7O0FBQ3ZEO0VBQTJDO0VBQVk7OztBQUczRDtFQUNJO0FBQUE7QUFBQTtJQUdJOzs7QUFjUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQWFKO0VBQ0k7OztBQVFKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFFSTtFQUNBO0VBQ0E7O0FBR0o7RUFBYztFQUE0Qjs7O0FBSzlDO0VBQ0k7RUFDQTtFQUNBOztBQUdBO0VBQWE7RUFBa0M7OztBQWFuRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQU07RUFBYTs7QUFFbkI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJOztBQUNBO0VBQVU7O0FBR2Q7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQVU7O0FBTWQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7OztBQUlsQjtFQUdJO0lBQWdCOztFQUNoQjtJQUFNOztFQUNOO0lBQU07O0VBQ047SUFBTTs7RUFDTjtJQUFNOzs7QUFHVjtFQUNJO0lBQXdDOzs7QUFJNUM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFNO0VBQWE7O0FBRW5CO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQVU7RUFBdUM7O0FBR3JEO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQVU7RUFBcUM7OztBQUt2RDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFNO0VBQWE7OztBQUd2QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0FBQUE7RUFFSTs7O0FDM2VKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBU0E7RUFDQTtFQUNBO0VBTUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU9GO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBS0Y7RUFDRTs7O0FBRUY7RUFDRTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFBbUM7OztBQUduQztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFBa0U7RUFBMEM7OztBQU81RztFQUFnQztFQUFTO0VBQWM7OztBQUd2RDtFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBR1Q7RUFDRTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOzs7QUFJVDtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBU0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBTUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBVUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FDbFdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUVFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQWdCRjtFQUNFO0VBQ0E7RUFDQTs7O0FBVUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFFRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUVFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBS0Y7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQy9ORjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FDcEJGO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtFQUdJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFJSjtBQUFBO0FBQUE7QUFBQTtFQUlJOzs7QUFJSjtFQUNJOzs7QUFJSjtFQUNJOzs7QUEwQko7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQU1KO0VBQ0k7RUFDQTtFQUNBOzs7QUFVSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQWVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUdBOzs7QUFPSjtFQUNJOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQU9KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFRSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FDL1NKO0VBQ0k7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUtKO0FBQUE7RUFFSTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUlBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUVBOzs7QUFFSjtFQUNJO0lBQ0k7OztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBUUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBRUk7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFLQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBR0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBS0E7RUFDQTs7O0FBRUo7RUFDSTtJQUNJOzs7QUFHUjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FDek9KO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FBT0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7RUFJQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtFQUdBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFPRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLQTtBQUNBO0FBQUE7QUFBQTtFQUdBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUNBO0VBQW1EOzs7QUFFbkQ7QUFBQTtBQUFBO0FBR0E7RUFBK0Q7OztBQUMvRDtFQUFpRjs7O0FBQ2pGO0VBQTZFOzs7QUFDN0U7RUFBNkU7OztBQUM3RTtFQUE2RTs7O0FBRTdFO0FBQUE7QUFBQTtBQUdBO0VBQW9EOzs7QUFDcEQ7RUFBbUQ7OztBQUNuRDtFQUFvRDs7O0FBQ3BEO0VBQXVEOzs7QUFDdkQ7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBa0Q7OztBQUNsRDtFQUFtRDs7O0FBQ25EO0VBQXNEOzs7QUFDdEQ7QUFDQTtFQUNFO0lBQW1EOzs7QUFHckQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBRUY7QUFBQTtBQUVBO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFHQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDRTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQUE7SUFFQTtJQUNBOzs7QUFHSjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTs7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0E7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBTUU7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtFQUdFOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtFQUdFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtFQUdFOzs7QUFHRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFVQTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBYUE7RUFDRTtFQUNBO0FBQ0E7QUFBQTtFQUVBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtBO0FBQ0E7RUFDQTtBQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtFQUNFOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7OztBQUVGO0FBQUE7QUFFQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNFOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUN4dUJGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQTBDO0VBQVM7OztBQUNuRDtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFxRDs7O0FBSXJEO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUF3RDs7O0FBQ3hEO0VBQXVEOzs7QUFDdkQ7RUFBbUQ7OztBQVVuRDtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQW9EOzs7QUFDcEQ7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQTBEOzs7QUFDMUQ7RUFBb0U7OztBQUdwRTtFQUE0QztFQUF5QjtFQUE0Qjs7O0FBQ2pHO0VBQXNGO0VBQThCOzs7QUFDcEg7RUFBdUQ7RUFBK0I7RUFBMkI7OztBQUNqSDtFQUF1RDtFQUF5Qjs7O0FBQ2hGO0VBQXlEO0VBQXlCO0VBQTBCOzs7QUFHNUc7RUFBNkM7RUFBeUI7RUFBZ0M7OztBQUN0RztFQUF1RjtFQUErQjs7O0FBQ3RIO0VBQXdEO0VBQStCO0VBQTJCOzs7QUFDbEg7RUFBd0Q7RUFBeUI7OztBQUNqRjtFQUEwRDtFQUF5QjtFQUEwQjs7O0FBRzdHO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQWtEOzs7QUFDbEQ7RUFBbUQ7RUFBWTtFQUFpQjtFQUFvQjs7O0FBSXBHO0VBQWtEO0VBQVk7RUFBcUI7RUFBVTs7O0FBQzdGO0VBQWlEO0VBQWlCO0VBQW1CO0VBQWlCOzs7QUFDdEc7QUFBQTtFQUM4RDs7O0FBRzlEO0VBQWdEO0VBQWU7RUFBcUI7OztBQUNwRjtFQUE2RTtFQUEyQjs7O0FBR3hHO0VBQXdFO0VBQThCOzs7QUFDdEc7RUFBaUc7OztBQUNqRztFQUFtRjtFQUErQjs7O0FBR2xIO0VBQXlFO0VBQStCOzs7QUFDeEc7RUFBa0c7OztBQUNsRztFQUFvRjtFQUErQjs7O0FBR25IO0VBQStDO0VBQXNDO0VBQW1DOzs7QUFDeEg7RUFBd0U7OztBQUN4RTtFQUEwRDtFQUFvQzs7O0FBQzlGO0VBQTREO0VBQThCO0VBQTBCOzs7QUFFcEg7RUFBMkM7RUFBd0M7RUFBcUM7OztBQUN4SDtFQUFvRTs7O0FBQ3BFO0VBQXNEO0VBQXVDOzs7QUFDN0Y7RUFBd0Q7RUFBOEI7RUFBMEI7OztBQUVoSDtFQUEyQztFQUF1QztFQUFtQzs7O0FBQ3JIO0VBQW9FOzs7QUFDcEU7RUFBc0Q7RUFBc0M7OztBQUM1RjtFQUF3RDtFQUE4QjtFQUEwQjs7O0FBSWhIO0VBQXFDO0VBQWdCO0VBQXdCO0VBQTJCOzs7QUFDeEc7RUFBb0Q7OztBQUNwRDtFQUFvRDs7O0FBQ3BEO0VBQWtFO0VBQTZCO0VBQW9COzs7QUFDbkg7RUFBaUc7RUFBaUI7OztBQUNsSDtBQUFBO0VBQzZIOzs7QUFDN0g7RUFBK0Y7OztBQUcvRjtFQUF1STs7O0FBQ3ZJO0VBQXdHOzs7QUFFeEc7RUFBaUY7OztBQUNqRjtFQUE0RjtFQUF5Qjs7O0FBVXJIO0VBQThGO0VBQTBCOzs7QUFNeEg7QUFBQTtFQUMwRjs7O0FBRzFGO0FBQUE7QUFBQTtFQUVvRDtFQUFxQjs7O0FBRXpFO0VBQXFEO0VBQWdCOzs7QUFDckU7RUFBa0U7OztBQUNsRTtBQUFBO0VBQ3VHOzs7QUFHdkc7RUFDRTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBRVQ7RUFDRTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOzs7QUFFVDtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQ3JORjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQXNCRjtFQUE2Qjs7O0FBSzdCO0VBQW9DOzs7QUFDcEM7RUFBNEI7OztBQUU1QjtFQUE2Qjs7O0FBUzdCO0VBQ0U7OztBQUVGO0VBQ0U7SUFBTztJQUFZOztFQUNuQjtJQUFPO0lBQVk7OztBQU9yQjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7SUFBTztJQUFZOztFQUNuQjtJQUFPO0lBQVk7OztBQUdyQjtFQUNFO0FBQUE7SUFFRTs7RUFFRjtJQUNFOzs7QUFjSjtFQUFnQzs7O0FBSWhDO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUlGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBSUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFXRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUlGO0VBQ0U7RUFDQTtFQUNBOzs7QUFVRjtFQUNFO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBO0VBR0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQVVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUlGO0VBSUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1FOzs7QUFNRjtBQUFBO0FBQUE7RUFHRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFjRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQVlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBOzs7QUFZRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTs7O0FBSUY7RUFHRTtFQUNBO0VBSUE7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBU0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQVlGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFRRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBWUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUNyckJGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FDM0RGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBSUE7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFPRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBTUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBNEJGO0VBUUU7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBR0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBSUE7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQWNGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBSUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQzFwQkY7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtFQUdJOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUtKO0VBQ0k7OztBQUtKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUN0SEo7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQ1pGO0VBQXVCOzs7QUFFdkI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBeUM7RUFBWTs7O0FBRXJEO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFzQzs7O0FBQ3RDO0VBQ0U7RUFDQTtFQUFTO0VBQVE7RUFDakI7RUFDQTtFQUNBOzs7QUFFRjtFQUErQjtFQUFvQjtFQUFZO0VBQXVCOzs7QUFDdEY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBMEM7RUFBWTs7O0FBQ3REO0VBQXVDO0VBQXFDOzs7QUFDNUU7RUFBaUM7RUFBYTtFQUFvQjtFQUFpQjtFQUFrQzs7O0FBQ3JIO0VBQW1DO0VBQWtDOzs7QUNsRnJFO0VBQXVCO0VBQWdCOzs7QUFFdkM7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBc0M7OztBQUN0QztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7SUFBSzs7RUFDTDtJQUFNOztFQUNOO0lBQU87OztBQUdUO0VBQ0U7SUFBc0M7OztBQ3pCeEM7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQU1GO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBT0Y7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtBQUNBO0FBQUE7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQzNNRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7RUFHRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0FBQ0E7QUFBQTtFQUVBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQzNJRjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0VBR0k7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBTUE7OztBQUtKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFJQTs7O0FBR0o7RUFDSSxZQUNJOzs7QUFrQlI7RUFDSTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTs7O0FDL05KO0VBS0U7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVFGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0FBQUE7RUFFRTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFLRjtFQUNFO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7OztBQUVGO0FBQUE7RUFFRTs7O0FBSUY7RUFDRTs7O0FBSUY7RUFDRTtFQUNBOzs7QUFLRjtFQUNFOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFlRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFOzs7QUFLRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBSUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0lBQ0U7OztBQXFCSjtFQUNFOzs7QUFJRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUM5UEY7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFzQztFQUFhOzs7QUFDbkQ7RUFBc0M7RUFBWTtFQUFjOzs7QUFDaEU7RUFBeUQ7OztBQUN6RDtFQUF5Qzs7O0FBQ3pDO0VBQXlDOzs7QUFFekM7QUFBQTtFQUM0RDs7O0FBQzVEO0FBQUE7RUFDNEQ7OztBQ1g1RDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBR0E7O0FBRUE7RUFBWTs7QUFHWjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQStCOztBQUMvQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFBOEI7O0FBQzlCO0VBQXNDOztBQUN0QztFQUFhOztBQVFiO0VBQ0k7O0FBRUo7RUFDSTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU9KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUF5Qjs7QUFDekI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBWUo7RUFDSTtFQUNBO0VBQ0E7RUFLQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBR0E7RUFDQTs7QUFFQTtFQUF1QjtFQUFZOztBQUNuQztFQUE2Qjs7QUFDN0I7RUFDSTtFQUNBOztBQU9SO0VBQ0k7SUFBWTs7O0FBSWhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFLQTs7QUFFSjtFQUFxQjs7QUFDckI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUVBO0VBT0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQTJCOztBQUMzQjtFQUFvQzs7QUFHcEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUE2Qjs7QUFDN0I7RUFBeUI7RUFBcUM7O0FBQzlEO0VBQWlDOztBQU1qQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUFpQzs7QUFDakM7RUFBOEI7RUFBWTs7QUFHMUM7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQTBCOztBQUcxQjtFQUFrQzs7QUFHbEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUFxQjs7QUFDckI7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFBMkI7O0FBTzNCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBWTs7QUFFaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVk7O0FBRWhCO0VBQTJCO0VBQW9DOztBQUkvRDtFQUNJO0VBQ0E7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVk7O0FBRWhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZTtFQUFnQjtFQUFrQzs7QUFFckU7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFpQjs7QUFDakI7RUFBVTs7QUFFZDtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUFvRDs7QUFHcEQ7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBS0o7RUF0ZUo7SUF1ZVE7O0VBQ0E7SUFBdUI7O0VBQ3ZCO0lBQWU7Ozs7QUFJdkI7RUFDSTtJQUFLOzs7QUFHVDtFQUNJO0lBQU87O0VBQ1A7SUFBSzs7O0FBSVQ7QUFBQTtFQUVJOzs7QUFPQTtFQUNJOztBQUVKO0VBQ0k7RUFDQTs7O0FBU1I7QUFBQTtFQUVJOzs7QUN4aEJKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7SUFDRTs7O0FBR0o7RUFDRTtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7O0FBR0o7RUFDRTtJQUNFOztFQUVGO0lBQ0U7OztBQzlQSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVdGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQSxZQUNFOzs7QUN4Q0o7RUFDRTs7O0FBTUY7RUFDRTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBSUY7RUFBb0I7RUFBYTtFQUFjO0VBQWdCOzs7QUFDL0Q7RUFBNEI7RUFBYTs7O0FBR3pDO0VBQ0U7RUFDQTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBOEI7RUFBYzs7O0FBQzVDO0VBQWtDOzs7QUFHbEM7RUFBNEI7OztBQUM1QjtFQUEyQzs7O0FBQzNDO0VBQXlDOzs7QUFFekM7RUFBaUM7OztBQUNqQztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQXlDOzs7QUFDekM7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUF5QztFQUFVO0VBQVc7OztBQUU5RDtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQTRCOzs7QUFHNUI7RUFBb0M7OztBQUNwQztFQUF1Qjs7O0FBRXZCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQTBCOzs7QUFDMUI7RUFBNkI7RUFBYTs7O0FBTzFDO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBQ3FDOzs7QUFFckM7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFDNEI7OztBQWlCNUI7RUFDRTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUF5QztFQUFVO0VBQVc7OztBQUs5RDtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBMkM7RUFBVTtFQUFXOzs7QUFFaEU7RUFDRTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJRjtFQUE4Qjs7O0FBRTlCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQTZCOzs7QUFHN0I7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBK0I7OztBQzdWL0I7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7O0FBSUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtJQUNFOztFQUVGO0lBQ0U7OztBQUdKO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUN6UUY7RUFFRTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7OztBQWNGO0VBQ0U7RUFDQTs7O0FBVUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBOzs7QUFJRjtFQUNFOzs7QUFFRjtBQUFBO0VBRUU7RUFDQSxZQUNFOzs7QUFXSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBVUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFXRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUNoT0Y7RUFDSTs7QUFNQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQVVKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFNSjtFQUNJO0VBQ0E7O0FBR0o7RUFBWTs7QUFJWjtFQUFhOztBQU9iO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBUUo7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBWTs7QUFFWjtFQUFnQjtFQUFTOztBQUc3QjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU9KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBS0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFBa0I7O0FBSWxCO0VBQVk7O0FBSVo7RUFDSTtFQUNBOztBQU9SO0FBQUE7RUFFSTtFQUNBOztBQUVBO0FBQUE7RUFDSTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU1KO0VBQWdEOztBQUtoRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUtKO0VBQ0k7SUFDSTs7RUFFSjtJQUNJO0lBQ0E7Ozs7QUM3UVo7RUFFRTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFRRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFPRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQVdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBLE9BMUplO0VBMkpmLFFBM0plO0VBNEpmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBT0Y7RUFDRTtFQUNBOzs7QUFhRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQVlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNFOzs7QUFFRjtFQUdFO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBOzs7QUFhRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUVFO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtBQUFBO0VBRUU7OztBQ2pZRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBSUE7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFNRjtFQUEyQzs7O0FBQzNDO0VBQTJDOzs7QUFDM0M7RUFDRTtJQUFPO0lBQW1COztFQUMxQjtJQUFPO0lBQWdCOzs7QUFFekI7RUFDRTtJQUFPO0lBQW9COztFQUMzQjtJQUFPO0lBQWdCOzs7QUFHekI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBR0E7OztBQU1GO0VBQ0U7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87OztBQUVUO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQVlGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBSUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFJRjtFQUFrQzs7O0FBQ2xDO0VBQ0UsWUFDRTs7O0FBV0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBSUE7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFzQzs7O0FBQ3RDO0VBQ0UsWUFDRTs7O0FBSUo7RUFDRTtJQUE2Qjs7RUFDN0I7SUFBNkI7O0VBQzdCO0lBQTRCOztFQUM1QjtJQUE2RDs7RUFDN0Q7QUFBQTtJQUMyQzs7O0FDaFE3QztFQUVFO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBa0Q7RUFBVTtFQUFXOzs7QUFRdkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQVNGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBT0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNFOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFNQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBLFlBQ0U7OztBQUtKO0VBQ0U7RUFDQTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFPQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBa0Q7RUFBVTtFQUFXOzs7QUFFdkU7RUFDRTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBUUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0Y7RUFBbUQ7OztBQUNuRDtFQUFnRTs7O0FBR2hFO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBT0Y7RUFDRTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQSxZQUNFO0VBRUY7OztBQUVGO0VBQ0U7OztBQWFGO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUdBOztFQUdGO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7OztBQUdKO0VBQ0U7RUFDQTtFQUNBO0VBQ0EsWUFDRTtFQUVGOzs7QUFJRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQU1GO0VBQ0U7RUFDQTs7O0FBSUY7QUFBQTtFQUVFO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7RUFDRTtJQUFnRTs7RUFDaEU7SUFBNkI7OztBQUkvQjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQ3BkRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBSUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUFrQzs7O0FBQ2xDO0VBQ0UsWUFDRTs7O0FBSUo7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtJQUE2Qjs7O0FDckYvQjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQU1GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7RUFFRTs7O0FDbFBGO0VBQ0U7RUFDQTtFQUlBO0VBQ0E7OztBQUtGO0FBQUE7RUFFRTtFQUNBOzs7QUFJRjtFQUNFOzs7QUFZRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFPRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFTRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFVRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTs7O0FDdklGO0VBQXNCOzs7QUFPdEI7RUFDRTtFQUNBOzs7QUFHRjtFQUFnRDs7O0FBRWhEO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBV0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBNkQ7RUFBVTtFQUFXOzs7QUFHbEY7RUFBeUM7RUFBZTtFQUFxQjs7O0FBQzdFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQTJDOzs7QUFDM0M7RUFBNEM7OztBQUs1QztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUE2Qzs7O0FBQzdDO0VBQThDOzs7QUFDOUM7RUFBK0M7OztBQUUvQztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQXlDO0VBQWU7RUFBZ0I7OztBQUN4RTtFQUE4RDs7O0FBRTlEO0VBQ0U7RUFDQTtFQUNBOzs7QUFJRjtFQUE0RTs7O0FBRzVFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUFtRTs7O0FBR25FO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUF3RDtFQUFrQjs7O0FBQzFFO0VBQThDOzs7QUFDOUM7QUFBQTtFQUNrRTs7O0FBSWxFO0FBQUE7RUFDdUU7OztBQUd2RTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBNkM7OztBQUM3QztFQUE4Qzs7O0FBRTlDO0VBQWlEO0VBQThCOzs7QUFHL0U7RUFBbUU7OztBQUVuRTtFQUEwQzs7O0FBRzFDO0VBQTJDOzs7QUFDM0M7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQTZEOzs7QUFHN0Q7RUFDRTtJQUFXOztFQUNYO0lBQU07O0VBQ047SUFBTTs7RUFDTjtJQUFNOztFQUNOO0lBQU07OztBQUVSO0VBQXVDOzs7QUFFdkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7SUFBc0M7O0VBQ3RDO0FBQUE7QUFBQTtJQUV5Qzs7RUFDekM7SUFBdUM7OztBQ25SekM7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFHQTtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87OztBQUdUO0VBQ0U7SUFDRTtJQUNBOztFQUVGO0lBQ0U7SUFDQTs7O0FBR0o7RUFDRTtBQUFBO0lBRUU7O0VBRUY7QUFBQTtJQUVFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7O0FBR0o7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFBQTtBQUVBO0FBQUE7QUFBQTtFQUdFOzs7QUFFRjtBQUFBO0VBRUU7Ozs7QUN6S0Y7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0VBSUE7OztBQUVKO0VBQWtDO0VBQWE7OztBQUMvQztFQUFrQztFQUFhOzs7QUFDL0M7RUFBa0M7RUFBYTs7O0FBQy9DO0VBQWtDO0VBQWE7OztBQUUvQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBRUE7RUFDSTs7O0FDdkRKO0FBQUE7QUFBQTtBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7RUFHQTs7O0FBR0o7QUFBQTtBQUFBO0FBR0E7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUNyQko7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFDQTtFQUNJOzs7QUFHSjtBQUFBO0FBRUE7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7QUFDSTtBQUFBO0VBRUE7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtFQUNJO0VBQ0E7RUFDQTs7O0FDekZKO0VBRUk7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTs7QUFXQTtFQUNJO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7O0FBcUJKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBS0o7RUFDSTtFQUNBOztBQUlKO0VBQ0k7SUFDSTs7OztBQ2hFWjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBOUJBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7QUFXSjtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFPUjtFQTdDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7O0FBMEJSO0VBRUk7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZTs7QUFFZjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUF1Qjs7QUFFdkI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQTdFUjtFQWtGSTs7O0FDN0lKO0VBQ0k7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFZOzs7QUFFaEI7RUFBa0M7RUFBZ0I7RUFBaUI7OztBQUNuRTtFQUF5Qzs7O0FBTXpDO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNrQjtFQUFtQztFQUF1Qzs7QUFHNUY7RUFDSTtFQUNBLFlBQ0k7RUFFSjs7QUFHSjtFQUNJLFlBQ0k7RUFFSjs7O0FBR1I7RUFBa0M7RUFBa0M7OztBQUdwRTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUdKO0VBQ0k7SUFBSzs7O0FBRVQ7RUFBOEI7RUFBaUI7RUFBaUI7RUFBa0I7OztBQUNsRjtFQUE4QjtFQUFXO0VBQWlCOzs7QUFDMUQ7RUFBOEI7RUFBaUI7RUFBaUI7OztBQU1oRTtFQUE2Qjs7O0FBRzdCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFZOzs7QUFFaEI7RUFBa0M7RUFBZ0I7RUFBOEI7OztBQUNoRjtFQUFrQztFQUFnQjtFQUFpQjtFQUFrQzs7O0FBQ3JHO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUFhO0VBQ2I7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7RUFBb0M7OztBQUlsRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVk7OztBQUloQjtFQUNJO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7SUFBa0M7OztBQzdKdEM7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUF3Qko7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQWlCRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FDdEZGO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFHQTs7QUFFQTtFQUF5Qjs7QUFDekI7RUFBeUI7O0FBQ3pCO0VBQXlCOztBQUN6QjtFQUF5Qjs7QUFDekI7RUFBeUI7O0FBQ3pCO0VBQXlCOztBQUc3QjtFQUNJO0lBQ0k7Ozs7QUM5Qlo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQ0NKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFvQzs7O0FBQ3BDO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBdUM7OztBQUd2QztFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUF1Qzs7O0FBRXZDO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQXFDOzs7QUFHckM7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBRUY7RUFBb0Q7OztBQ25LcEQ7RUFDSTs7QUFNQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQWM7O0FBTWQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZTtFQUFnQjtFQUF1Qzs7QUFJMUU7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBS0o7RUFBWTs7QUFDWjtFQUFZOztBQUNaO0VBQVk7RUFBbUI7O0FBUS9CO0VBQVk7RUFBbUI7O0FBRS9CO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7QUFNZDtFQUNJO0VBR0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7RUFBK0M7O0FBQ3pEO0VBQWtCO0VBQStDOztBQUtyRTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFBWTs7QUFJaEI7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQW1COztBQUduQjtFQUErQjs7QUFDL0I7RUFBcUM7O0FBQ3JDO0VBQXFDO0VBQWdDOztBQUNyRTtFQUFZO0VBQXVCOztBQUVuQztFQUNJO0lBQW9COztFQUNwQjtJQUFlOzs7O0FDaE92QjtFQUNJOztBQU9BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFBYzs7QUFPZDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBS0o7RUFDSTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQTZCOztBQUM3QjtFQUE2Qjs7QUFDN0I7RUFBNkI7O0FBSzdCO0VBQStCOztBQUMvQjtFQUFxQzs7QUFDckM7RUFDSTtFQUNBOztBQUVKO0VBQVk7RUFBdUI7O0FBR25DO0VBQ0k7SUFBWTs7RUFDWjtJQUFZOztFQUNaO0lBQVk7Ozs7QUM3SnBCO0VBQ0U7OztBQVFGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQU9GO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUlFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFVRjtFQUNFO0VBQ0E7RUFDQTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7OztBQVdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUEwQjs7O0FBQzFCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBV0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQW9DO0VBQVU7RUFBVzs7O0FBUXpEO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQVFGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBS0Y7RUFBaUI7OztBQUNqQjtFQUFvQzs7O0FBQ3BDO0VBQW1DOzs7QUFXbkM7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBZ0M7RUFBVTtFQUFXOzs7QUFpQnJEO0VBQ0U7RUFDQTtFQUNBOzs7QUFLRjtFQUFtQjs7O0FBRW5CO0VBQ0U7SUFBeUI7OztBQUUzQjtFQUNFO0lBQXlCOzs7QUFHM0I7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFrQjs7O0FBQ2xCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFPRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFBdUI7OztBQUN2QjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUlGO0VBQW9COzs7QUFDcEI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQU9GO0VBQ0U7OztBQzdRRjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQVNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBSUk7RUFDQTs7QUFNSjtFQUNJOztBQUdKO0VBQ0k7RUFHQTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFFSTtFQUNBLFlBQ0k7O0FBSVI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQTdGSjtJQThGUTs7RUFDQTtJQUNJOztFQUVKO0lBQ0k7SUFDQTs7O0FBS1I7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7O0FBU1I7RUFDSTs7QUFFQTtFQUFlO0VBQWE7O0FBQzVCO0VBQW9CO0VBQWE7O0FBQ2pDO0VBQWE7O0FBQ2I7RUFBWTs7O0FBR2hCO0VBQ0k7O0FBRUE7RUFBZTtFQUFhOztBQUM1QjtFQUFvQjtFQUFhOztBQUNqQztFQUFhOztBQUNiO0VBQVk7OztBQUdoQjtFQUNJOztBQUVBO0VBQWU7RUFBYTs7QUFDNUI7RUFBb0I7RUFBYTs7QUFDakM7RUFBYTs7QUFDYjtFQUFZOzs7QUFJaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0VBRUk7RUFDQTtFQUNBOzs7QUFTSjtFQUF3QjtFQUEyQzs7O0FBQ25FO0VBQXdCO0VBQW9DOzs7QUFDNUQ7RUFBd0I7RUFBMEM7OztBQUNsRTtFQUF3QjtFQUEyQzs7O0FBQ25FO0VBQXdCO0VBQTBDOzs7QUFDbEU7RUFBd0I7RUFBMkM7OztBQUNuRTtFQUF3QjtFQUFrRDs7O0FBQzFFO0VBQXdCO0VBQTJDOzs7QUFFbkU7RUFBMEM7RUFBMkI7OztBQUNyRTtFQUEwQztFQUEyQjs7O0FBQ3JFO0VBQTBDO0VBQTJCOzs7QUFDckU7RUFBMEM7RUFBMkI7OztBQUNyRTtFQUEwQztFQUEyQjs7O0FBQ3JFO0VBQTBDO0VBQTJCOzs7QUFDckU7RUFBMEM7RUFBMkI7OztBQUNyRTtFQUEwQztFQUEyQjs7O0FBY3JFO0VBQ0k7OztBQVNKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOzs7QUF1QlI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFJSjtFQUNJO0VBQ0E7O0FBRUE7RUFBaUI7OztBQU9yQjtFQUNJO0VBQ0E7O0FBRUE7RUFBaUI7OztBQUdyQjtFQUdJO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFPSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBU0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFBb0I7O0FBQ3BCO0VBQW9COztBQUtwQjtFQUFtQjs7QUFDbkI7RUFBbUI7OztBQVF2QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUEyQko7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7O0FBRUE7RUFDSTtFQUNBOztBQVFKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBYUo7RUFDSTs7O0FBaUJKO0VBQWU7O0FBQ2Y7RUFBb0I7RUFBYTs7QUFDakM7RUFBOEI7RUFBYTs7QUFDM0M7RUFBYTs7QUFDYjtFQUFZOzs7QUFJWjtFQUFlOztBQUNmO0VBQW9CO0VBQWE7O0FBQ2pDO0VBQThCO0VBQWE7O0FBQzNDO0VBQWE7O0FBQ2I7RUFBWTs7O0FBSVo7RUFBZTs7QUFDZjtFQUFvQjtFQUFhOztBQUNqQztFQUE4QjtFQUFhOztBQUMzQztFQUFhOztBQUNiO0VBQVk7OztBQ3hnQmhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFZQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBUVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBR0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUFVOztBQUVWO0VBQ0k7RUFDQTtFQUNBOzs7QUFrQlI7RUFDSTs7QUFFQTtFQUNJOzs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLSTtFQUNBO0VBQ0E7O0FBSUo7QUFBQTtFQUVJOzs7QUFRUjtFQUNJOzs7QUFZSjtFQUNJO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFHSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFpQko7RUFDSTtFQUNBO0VBQ0E7RUFLQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7OztBQW1CSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOzs7QUFPUjtFQUNJOztBQUVBO0VBQ0k7RUFDQTs7O0FBVVI7RUFBd0I7RUFBdUM7OztBQUMvRDtFQUF3QjtFQUFnQzs7O0FBQ3hEO0VBQXdCO0VBQXNDOzs7QUFDOUQ7RUFBd0I7RUFBdUM7OztBQUMvRDtFQUF3QjtFQUFzQzs7O0FBQzlEO0VBQXdCO0VBQXVDOzs7QUFDL0Q7RUFBd0I7RUFBOEM7OztBQUN0RTtFQUF3QjtFQUF1Qzs7O0FBRS9EO0VBQTBDO0VBQXVCOzs7QUFDakU7RUFBMEM7RUFBdUI7OztBQUNqRTtFQUEwQztFQUF1Qjs7O0FBQ2pFO0VBQTBDO0VBQXVCOzs7QUFDakU7RUFBMEM7RUFBdUI7OztBQUNqRTtFQUEwQztFQUF1Qjs7O0FBQ2pFO0VBQTBDO0VBQXVCOzs7QUFDakU7RUFBMEM7RUFBdUI7OztBQUlqRTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUo7RUFDSTs7O0FBb0JKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7SUFBSzs7O0FBR1Q7RUFDSTtFQUVBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQW1COztBQUNuQjtFQUFtQjs7O0FBR3ZCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU1KO0FBQUE7RUFFSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJUjtBQUFBO0FBQUE7RUFHSTtFQUNBOztBQUVBO0FBQUE7QUFBQTtFQUFZOztBQUVaO0FBQUE7QUFBQTtFQUFhOzs7QUFHakI7RUFDSTtFQUNBOzs7QUFPSjtFQUNJO0lBQ0k7O0VBR0o7SUFDSTs7RUFHSjtJQUNJOztFQUdKO0FBQUE7QUFBQTtJQUdJO0lBQ0E7O0VBRUE7QUFBQTtBQUFBO0lBQVk7OztBQzlsQnBCO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOzs7QUNwQ1I7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQ2pKRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUN6QkY7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0FBQ0E7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0FBQ0E7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFBQTtBQUVBO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQzlhRjtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQU1KO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFFSjtFQUNJOzs7QUMvQ0o7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQWtDOzs7QUFDbEM7RUFBa0M7OztBQUNsQztFQUFrQzs7O0FBQ2xDO0VBQWtDOzs7QUFDbEM7RUFBa0M7OztBQUNsQztFQUFrQzs7O0FBQ2xDO0VBQWtDOzs7QUFDbEM7RUFBa0M7OztBQUdsQztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUVBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FDOUZGO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQXlCOztBQUd6QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtKO0VBQ0k7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQVU7RUFDVjtFQUNBO0VBQWE7RUFDYjtFQUNBOztBQUVKO0VBQXFEOztBQUdyRDtFQUFxRDtFQUFjOztBQUduRTtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBLFlBQ0k7O0FBS1I7RUFBdUQ7O0FBR3ZEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQThCOztBQUM5QjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQU9BO0FBQUE7RUFDZ0I7O0FBQ2hCO0VBQTZCOztBQUc3QjtBQUFBO0VBQ2dCOztBQUNoQjtFQUE2Qjs7QUFPakM7RUFBb0I7O0FBQ3BCO0FBQUE7RUFDaUI7O0FBQ2pCO0VBQWtDOztBQUNsQztFQUFpQjtFQUFpQzs7QUFDbEQ7RUFBYzs7O0FBTWxCO0VBQ0k7SUFBK0I7O0VBQy9CO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUVKO0lBQ0k7SUFDQTtJQUNBOzs7QUFPUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBVUo7QUFBQTtBQUFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7QUFBQTtBQUFBO0VBQXVDOztBQUN2QztBQUFBO0FBQUE7RUFBMEU7OztBQ3NJOUU7RUE1VUksYUFyRm1CO0VBc0ZuQjtFQU1BLGFBbkZxQjtFQW9GckIsV0E1RG1CO0VBNkRuQixhQXZDcUI7OztBQTJXekI7RUE3VUksYUFyRm1CO0VBc0ZuQjtFQWFBLGFBMUZxQjtFQTJGckIsV0FwRW1CO0VBcUVuQixhQS9DcUI7OztBQTZXekI7RUE5VUksYUFyRm1CO0VBc0ZuQjtFQW9CQSxhQWpHcUI7RUFrR3JCLFdBNUVtQjtFQTZFbkIsYUF2RHFCOzs7QUErV3pCO0VBL1VJLGFBckZtQjtFQXNGbkI7RUEyQkEsYUF4R3FCO0VBeUdyQixXQXBGbUI7RUFxRm5CLGFBL0RxQjs7O0FBaVh6QjtFQWhWSSxhQXJGbUI7RUFzRm5CO0VBa0NBLGFBL0dxQjtFQWdIckIsV0E1Rm1CO0VBNkZuQixhQXZFcUI7OztBQW1YekI7RUFqVkksYUFyRm1CO0VBc0ZuQjtFQXlDQSxhQXRIcUI7RUF1SHJCLFdBcEdtQjtFQXFHbkIsYUEvRXFCOzs7QUFzWHpCO0VBblZJLGFBckZtQjtFQXNGbkI7RUFpREEsYUFoSXFCO0VBaUlyQixXQXZIa0I7RUF3SGxCLGFBakcrQjs7O0FBaVluQztFQXBWSSxhQXJGbUI7RUFzRm5CO0VBd0RBLGFBdklxQjtFQXdJckIsV0E3SGtCO0VBOEhsQixhQXhHK0I7OztBQWtZbkM7RUFyVkksYUFyRm1CO0VBc0ZuQjtFQStEQSxhQTlJcUI7RUErSXJCLFdBbklrQjtFQW9JbEIsYUE3RytCOzs7QUFpWW5DO0VBdFZJLGFBckZtQjtFQXNGbkI7RUFzRUEsYUFySnFCO0VBc0pyQixXQXpJa0I7RUEwSWxCLGFBckgrQjs7O0FBbVluQztFQXZWSSxhQXJGbUI7RUFzRm5CO0VBNkVBLGFBNUpxQjtFQTZKckIsV0EvSWtCO0VBZ0psQixhQTFIK0I7OztBQ1BuQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFPQTs7QUFDQTtFQUF5Qjs7QUFiN0I7RUFlSTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtBO0VBQ0k7O0FBTUo7RUFDSTtFQUNBOztBQWdCSjtFQUNJO0VBQ0E7RUFFQTs7QUFPSjtFQUFVOztBQUNWO0VBRUk7RUFDQSxZQUNJOztBQU9SO0VBRUksWUFDSTs7QUFvQ1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFTSjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtBO0VBQW1CO0VBQWE7RUFBYzs7QUFDOUM7RUFBbUI7RUFBYTtFQUFjOztBQUM5QztFQUFtQjtFQUFhO0VBQWM7O0FBRTlDO0VBQW1CO0VBQWE7RUFBYzs7QUFDOUM7RUFBbUI7RUFBYTtFQUFjOztBQUM5QztFQUFtQjtFQUFhO0VBQWM7O0FBWWxEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFRG5KSixhQXJGbUI7RUFzRm5CO0VBMktBLGFBdlBxQjtFQXdQckIsV0EvT2tCO0VBZ1BsQixhQXpOK0I7RUNnTTNCO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VEM0pBLGFBckZtQjtFQXNGbkI7RUFtR0EsYUFqTHFCO0VBa0xyQixXQXZLa0I7RUF3S2xCLGFBakorQjs7QUNpTi9CO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFRSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBT0o7RUFBd0I7O0FBY3hCO0VBRUk7RUFDQTtFQUNBOztBQUVKO0VBSUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUVJOztBQWFBO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQWNSO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7QUFBQTtFQUVJOztBQUdKO0VBRUk7RUFDQTs7QUFHSjtFQUlJOztBQUtSO0VBQ0k7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBTUk7OztBQWFSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VEcldKLGFBckZtQjtFQXNGbkI7RUFtR0EsYUFqTHFCO0VBa0xyQixXQXZLa0I7RUF3S2xCLGFBakorQjtFQ2taM0I7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUQ1V0EsYUFyRm1CO0VBc0ZuQjtFQTJLQSxhQXZQcUI7RUF3UHJCLFdBL09rQjtFQWdQbEIsYUF6TitCO0VDeVozQjs7QUFFSjtFQUNJO0VEalhKLGFBckZtQjtFQXNGbkI7RUE0RkEsYUExS3FCO0VBMktyQixXQWpLa0I7RUFrS2xCLGFBNUkrQjtFQ2dhM0I7O0FBRUo7RURyWEEsYUFyRm1CO0VBc0ZuQjtFQW9LQSxhQWhQcUI7RUFpUHJCLFdBek9rQjtFQTBPbEIsYUFwTitCO0VDb2EzQjs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFRG5ZSixhQXJGbUI7RUFzRm5CO0VBd0RBLGFBdklxQjtFQXdJckIsV0E3SGtCO0VBOEhsQixhQXhHK0I7RUNrYjNCO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUQ5WUosYUFyRm1CO0VBc0ZuQjtFQXdEQSxhQXZJcUI7RUF3SXJCLFdBN0hrQjtFQThIbEIsYUF4RytCO0VDNmIzQjs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBU0o7RUFFSSxPQTlkZ0I7O0FBZ2VwQjtFQUVJLE9BamVnQjs7QUF1ZXBCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFTSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtBO0FBQUE7RUFFSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFRUjtFQUVRO0FBQUE7SUFFSTtJQUNBOztFQUVKO0lBQ0k7SUFDQTs7O0FBZVo7RUFDSTs7QUFNSjtFQUNJO0VBQ0E7RUFDQTs7QUFHQTtFQUVJOzs7QUFZWjtFQUNJOzs7QUFRSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUlBOztBQUdKO0VBRUksWUFDSTs7QUFJUjtFQUVJLFlBQ0k7OztBQ2hyQlo7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUY7RUFDRTtFQUNBOzs7QUFPRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFvQkE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFVRjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhQTtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBV0Y7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBO0FBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBTUE7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7RUFJQTs7O0FBRUY7QUFBQTtBQUVBO0FBQUE7QUFFQTtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0lBQ0U7OztBQUdKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtBQUFBO0FBRUE7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7RUFJRTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQU9GO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7OztBQUVGO0FBQ0E7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtBQUNBO0VBQ0U7RUFDQTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUNBO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0VBRUU7OztBQUVGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUNBO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFnQkE7RUFDRTs7O0FBR0Y7QUFBQTtBQUVBO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUE7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FDM3FDRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUN0TUY7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FDakJBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FDN0dGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBT0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQVFBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQ3hJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtFQUdFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7RUFHRTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQXFDOzs7QUFDckM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQW9DOzs7QUFDcEM7RUFBdUQ7OztBQUN2RDtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBeUQ7OztBQUN6RDtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUM0RTs7O0FBQzVFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtFQUdFOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7RUFHRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7RUFHRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0FBQ0E7QUFBQTtBQUFBO0VBR0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtFQUFxQjs7O0FBQ3JCO0VBQXVDOzs7QUFDdkM7RUFBNEM7OztBQUM1QztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0FBRUE7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ3ZYQTtFQUE4Qjs7O0FBTTlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBNEI7RUFBZTs7O0FBRTNDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7RUFDMEM7OztBQUUxQztBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQStCOzs7QUFDL0I7RUFBK0I7OztBQUUvQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBcUJBO0VBQ0U7RUFBb0I7RUFDcEI7RUFBZTtFQUFxQjtFQUNwQztFQUNBO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0U7RUFFRjtFQUNBO0VBQWE7RUFBa0I7RUFDL0I7OztBQUVGO0VBQWtEOzs7QUFDbEQ7RUFBa0Q7OztBQUNsRDtFQUFrRDs7O0FBQ2xEO0VBQWtEOzs7QUFDbEQ7RUFBa0Q7OztBQUVsRDtBQUNBO0VBQXNEOzs7QUFDdEQ7QUFDRTtBQUFBO0VBRUE7RUFBc0M7RUFBYztFQUNwRDtFQUFlO0VBQXdCO0VBQ3ZDO0VBQ0E7RUFBaUI7RUFBbUI7RUFDcEM7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFBNEI7RUFBYTs7O0FBRTNDO0VBQ0U7RUFBVztFQUFpQjtFQUFtQjtFQUFrQjs7O0FBRW5FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7RUFHRTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQTtFQUFrRDs7O0FBQ2xEO0VBQ0U7RUFDQTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7RUFDRTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFHRjtBQUNBO0VBQ0U7RUFBVztFQUFpQjtFQUFtQjtFQUFrQjs7O0FBRW5FO0VBQ0U7RUFBaUI7RUFBaUI7RUFBbUI7RUFBNEI7OztBQUVuRjtFQUNFO0VBQWU7RUFBZ0M7OztBQUVqRDtFQUNFO0VBQWU7RUFBcUI7RUFBVTtFQUM5QztFQUFpQjtFQUFtQjtFQUFrQjs7O0FBRXhEO0VBQTBEO0VBQWdCOzs7QUFFMUU7RUFDRTtFQUFlO0VBQXFCOzs7QUFFdEM7RUFBb0U7OztBQUVwRTtFQUNFO0VBQWU7RUFBeUI7RUFDeEM7RUFBVzs7O0FBRWI7RUFDRTtFQUFlO0VBQXdCOzs7QUFFekM7RUFDRTtFQUFpQjtFQUFtQjtFQUFrQjs7O0FBRXhEO0VBQ0U7RUFBaUI7RUFBbUI7RUFBMEI7OztBQUVoRTtFQUNFO0VBQXNCO0VBQXFCO0VBQzNDO0VBQWlCO0VBQW1CO0VBQ3BDO0VBQWlDOzs7QUFHbkM7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtBQUFBO0FBQUE7QUFBQTtFQUlFOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtFQUdzRDs7O0FBQ3REO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFPc0Q7OztBQUN0RDtBQUFBO0FBQUE7QUFBQTtFQUlFO0VBQWdCO0VBQWU7QUFDL0I7QUFBQTtBQUFBO0FBQUE7RUFJQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFBeUQ7OztBQUN6RDtFQUF5RDs7O0FBQ3pEO0FBQUE7RUFDeUQ7OztBQUN6RDtFQUF5RDtFQUFnQjtFQUFlOzs7QUFDeEY7QUFBQTtBQUFBO0FBR0E7QUFBQTtFQUVFO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7OztBQWtCRjtFQUFxQztFQUFZOzs7QUFDakQ7RUFBMkM7OztBQUMzQztFQUE0Qzs7O0FBQzVDO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBQ3lEOzs7QUFDekQ7RUFBaUQ7OztBQUVqRDtFQUFpQjs7O0FBQ2pCO0VBQXdEOzs7QUFFeEQ7RUFDRTtFQUFlO0VBQXFCO0VBQ3BDO0VBQVc7OztBQUViO0VBQ0U7RUFBVztFQUNYO0VBQ0E7RUFBaUI7RUFBbUI7RUFDcEM7OztBQUVGO0VBQThCOzs7QUFFOUI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUFpQjtFQUNqQjs7O0FBRUY7RUFBcUM7OztBQUNyQztFQUNFO0VBQWdCO0VBQ2hCO0VBQWlCO0VBQW1COzs7QUFHdEM7RUFDRTtFQUFlO0VBQTJCO0VBQzFDO0VBQVc7OztBQUdiO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7OztBQUVGO0VBQ0U7RUFBZTtFQUF1Qjs7O0FBR3hDO0FBQ0E7RUFBcUQ7OztBQUNyRDtFQUNFO0VBQ0E7RUFDQSxZQUNFOzs7QUFHSjtFQUNFO0VBQ0E7OztBQUVGO0VBQStEOzs7QUFDL0Q7RUFBK0Q7OztBQUMvRDtFQUErRDs7O0FBQy9EO0VBQStEOzs7QUFDL0Q7QUFBQTtFQUNvRTs7O0FBQ3BFO0VBQWtFOzs7QUFDbEU7RUFBa0U7OztBQUNsRTtFQUFrRTs7O0FBQ2xFO0VBQWtFOzs7QUFDbEU7RUFBa0U7OztBQUNsRTtFQUFrRTs7O0FBQ2xFO0VBQWtFOzs7QUFDbEU7RUFBa0U7OztBQUVsRTtFQUF1QztJQUFPOztFQUFjO0lBQUs7OztBQUNqRTtFQUNFO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFFckI7RUFDRTtJQUErRDs7O0FDdmJqRTtBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTs7O0FBT1I7QUFBQTtBQUFBO0VBRTZCOzs7QUFFN0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTs7O0FBTVI7RUFNSTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFBMEI7OztBQUMxQjtBQUFBO0VBRUk7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBTUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUtJO0VBQ0E7RUFDQTs7O0FBRUo7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUNqTEE7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtFQUU2Qjs7O0FBTzdCO0VBQTJDOzs7QUFDM0M7RUFBMkM7OztBQUUzQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7RUFDMkM7RUFBYTtFQUFjO0VBQW9COzs7QUFFMUY7RUFBcUM7OztBQUVyQztFQUNJO0VBQ0E7RUFDQSxZQUNJOzs7QUFHUjtFQUEwRDs7O0FBQzFEO0VBQTBEOzs7QUFDMUQ7RUFDSTtFQUNBOzs7QUFHSjtFQUlJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQTJDOzs7QUFDM0M7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU1BOzs7QUFFSjtFQUFnRTs7O0FBQ2hFO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQW9FOzs7QUFFcEU7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUdBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0VBR0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUMvTUE7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7RUFFZ0M7OztBQUdoQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVNKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVO0VBQXFDOztBQUcvQztFQUFjOztBQUVkO0VBQ0k7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFJO0VBQWlCOzs7QUFNekI7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFBaUI7RUFBNkI7O0FBQzlDO0VBQWlCOztBQUNqQjtFQUM2Qzs7O0FBTWpEO0VBQ0k7SUFBTztJQUFpRjs7RUFDeEY7SUFBTztJQUFrRjs7RUFDekY7SUFBTztJQUFrRjs7O0FBRTdGO0VBQ0k7OztBQUVKO0VBQ0k7SUFBOEQ7OztBQVNsRTtFQUNJOzs7QUFFSjtFQUNJO0lBQW1GOzs7QUFJdkY7RUFDSTtFQUNBO0VBQ0E7RUFVQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBQ0E7RUFBWTs7QUFFaEI7RUFBVzs7QUFDWDtFQUNJO0VBQ0E7O0FBVUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBS0E7RUFRQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0k7SUFBSzs7O0FBR1Q7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFROzs7QUFHWjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQWtCOzs7QUFHdEI7RUFDSTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUFlOztBQUNmO0VBQ0k7O0FBQ0E7RUFBWTs7QUFFaEI7RUFBVzs7QUFDWDtFQUNJO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQUk7RUFBaUI7OztBQUV6QjtFQUNJO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtJQUE4Qjs7RUFDOUI7SUFBeUM7OztBQzdZN0M7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFZRjtFQUNJOzs7QUFHSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtJQUNFOztFQUVGO0lBQ0U7OztBQUdKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7O0VBRUY7SUFDRTtJQUNBO0lBQ0E7O0VBRUY7SUFDRTtJQUNBO0lBQ0E7O0VBRUY7SUFDRTtJQUNBO0lBQ0E7O0VBRUY7SUFDRTtJQUNBO0lBQ0E7OztBQUdKO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7O0VBRUY7SUFDRTs7O0FBR0o7RUFDRTtJQUNFOztFQUVGO0lBQ0U7OztBQUdKO0VBQ0U7SUFDRTs7RUFFRjtJQUNFOzs7QUFHSjtFQUNFO0lBQ0U7SUFDQTs7RUFFRjtJQUNFO0lBQ0E7O0VBRUY7SUFDRTtJQUNBOzs7QUFHSjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0lBQ0U7SUFDQTs7RUFFRjtJQUNFO0lBQ0E7OztBQUdKO0VBQ0U7OztBQUVGO0VBQ0U7QUFBQTtBQUFBO0FBQUE7SUFJRTs7O0FBR0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBU0Y7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7QUFBQTtJQUVFOzs7QUFHSjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtJQUNFO0lBQ0E7OztBQUdKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtFQUdFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtJQUFXOztFQUNYO0lBQVk7OztBQUVkO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7OztBQU1KO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0lBQU87O0VBQ1A7SUFBTzs7O0FBRVQ7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0lBQThDO0lBQWlCOzs7QUFHakU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7RUFHRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7RUFHQTs7O0FBRUY7QUFDQTtFQUNFOzs7QUFHRjtFQUNFO0lBQ0U7SUFDQTtBQUNBO0FBQUE7QUFBQTtJQUdBO0lBQ0E7SUFDQTtJQUNBOztBQUVGO0VBQ0E7SUFDRTs7O0FDbDdDSjtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJO0VBR0osWUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQTBEOzs7QUFDMUQ7RUFBMEQ7OztBQUUxRDtBQUFBO0VBRUk7RUFDQSxZQUNJOzs7QUFJUjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7RUFFSTtFQUNBLFlBQ0k7RUFHSjs7O0FBRUo7RUFBK0I7OztBQUMvQjtBQUFBO0VBRUk7RUFDQTtFQUNBLFlBQ0k7OztBQU1SO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0k7OztBQUlSO0FBQUE7RUFFSSxZQUNJOzs7QUFJUjtBQUFBO0VBRUk7OztBQUVKO0FBQUE7RUFFSSxZQUNJOzs7QUFJUjtBQUFBO0VBRUksWUFDSTs7O0FBTVI7RUFDSTtFQUNBO0VBQ0EsWUFDSTs7O0FBSVI7QUFBQTtFQUVJLFlBQ0k7OztBQUlSO0VBQ0k7RUFDQTtFQUNBLFlBQ0k7OztBQUtSO0VBQ0k7SUFBVzs7RUFDWDtJQUFXOzs7QUFFZjtFQUNJO0lBQVc7O0VBQ1g7SUFBVzs7O0FBRWY7RUFDSTtJQUFPO0lBQXVCOztFQUM5QjtJQUFPO0lBQXVCOztFQUM5QjtJQUFPO0lBQXVCOzs7QUFFbEM7RUFDSTtJQUFPOztFQUNQO0lBQU87OztBQUdYO0VBQ0k7QUFBQTtBQUFBO0FBQUE7SUFHdUM7OztBQ3hLM0M7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1FO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7SUFDRTtJQUNBOztFQUVGO0lBQ0U7SUFDQTs7RUFFRjtJQUNFO0lBQ0E7O0VBRUY7SUFDRTtJQUNBOztFQUVGO0lBQ0U7SUFDQTs7O0FBR0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUM5WEY7RUFHSTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBSUE7RUFHQTtFQUVBO0VBQ0E7RUFDQTtFQUNBOztBQUlBO0VBQ0k7RUFDQTs7QUFRSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBRUE7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBS0o7RUFBMEM7O0FBQzFDO0VBQTBDOztBQUMxQztFQUEwQzs7QUFLMUM7RUFDSTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7O0FBSUo7RUFDSTtFQUNBOztBQUlKO0VBQ0k7RUFDQTs7QUFNSjtFQUNJO0VBQ0E7O0FBS0o7RUFDSTtFQUNBOztBQVNKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQU1KO0VBQXNDOzs7QUFTMUM7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFtQztFQUFhO0VBQWM7O0FBQzlEO0VBQW1DO0VBQWE7RUFBYzs7QUFDOUQ7RUFBbUM7RUFBYTtFQUFjOztBQUM5RDtFQUFtQztFQUFhO0VBQWM7OztBQWU5RDtFQUNJO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBOztBQUlKO0VBQ0k7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7O0FBSUo7RUFDSTtFQUNBOztBQUtKO0VBQ0k7RUFDQTs7QUFNSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUFzQzs7O0FDdFAxQztFQUNJO0VBQ0E7RUFHQTs7QUFFQTtFQUFJOztBQUVKO0VBQ0k7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBUUE7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQTBDOztBQUMxQztFQUFtQztFQUFtRDs7QUFJdEY7RUFDSTs7QUFJSjtFQUEyQzs7QUFDM0M7RUFBZ0U7O0FBTWhFO0VBQ0k7RUFDQTs7QUFFSjtFQUFrRTs7QUFFbEU7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUEwQzs7QUFPMUM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQVNKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFBb0I7O0FBRXBCO0VBQ0k7RUFFQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7SUFBSzs7RUFDTDtJQUFPOzs7QUFHWDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBSztFQUFXOztBQUNoQjtFQUFJO0VBQVc7O0FBR25CO0VBQWU7OztBQVdmO0VBQ0k7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUE0Qjs7QUFDNUI7RUFBNkI7O0FBQzdCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QUFFSjtFQUF3Qzs7QUFReEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQWlDOztBQUdqQztFQUNJO0lBQWlCOzs7QUFJckI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQXFDOztBQUNyQztFQUEyQzs7QUFDM0M7RUFBZ0M7RUFBYzs7QUFDOUM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUEwQjs7QUFFMUI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUFxQjtFQUEwRDs7QUFFL0U7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUFrQjtFQUFrQjtFQUF1Qzs7QUFDM0U7RUFBaUY7O0FBS2pGO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUEyQjs7QUFJM0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJOztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQXVDO0VBQXVDO0VBQTRCOztBQUMxRztFQUFxRTs7QUFDckU7RUFBd0I7RUFBZTtFQUFxQjtFQUFpQjs7QUFDN0U7RUFBdUI7RUFBcUM7O0FBRTVEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQWtCOztBQU1sQjtFQUNJOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU1SO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBWTs7QUFHaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFBcUI7RUFBZ0I7O0FBQ3JDO0VBQW1CO0VBQWdCOztBQUNuQztFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBSUo7RUFBd0I7O0FBQ3hCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFBdUI7RUFBZ0I7O0FBT3ZDO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQXdDOztBQUN4QztFQUFxQzs7QUFDckM7RUFDd0M7O0FBQ3hDO0VBRThDOztBQUM5QztFQUEwQzs7QUFNMUM7RUFBd0Q7O0FBQ3hEO0VBQThEOzs7QUFPOUQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUFvQzs7QUFDcEM7RUFBZ0Q7RUFBYTtFQUFjO0VBQWlCOztBQUM1RjtFQUNJO0VBQ0E7RUFDQTs7O0FDdmxCUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtFQUVBOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQU1BOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQThEOzs7QUFDOUQ7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7QUFBQTtBQUFBO0FBR0E7RUFDRSxZQUNFOzs7QUFHSjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0EsWUFDRTs7O0FBR0o7RUFBNEI7OztBQUM1QjtBQUFBO0VBRUU7RUFDQSxZQUNFOzs7QUFHSjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUNySEY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7SUFDRTs7O0FBR0o7RUFDRTtJQUNFOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUM3RUY7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTs7O0FBSUo7RUFDSTs7O0FBR0o7QUFBQTtFQUVJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQVFKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtFQUdJOzs7QUFRSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtFQUdJOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTtFQUNBOzs7QUFRSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFXSjtFQUE2Qjs7O0FBQzdCO0VBQTZCOzs7QUFDN0I7RUFBNkI7OztBQUM3QjtFQUE2Qjs7O0FBQzdCO0VBQTZCOzs7QUFDN0I7RUFBNkI7OztBQUM3QjtFQUE2Qjs7O0FBQzdCO0VBQTZCOzs7QUFFN0I7RUFBK0M7OztBQUMvQztFQUErQzs7O0FBQy9DO0VBQStDOzs7QUFDL0M7RUFBK0M7OztBQUMvQztFQUErQzs7O0FBQy9DO0VBQStDOzs7QUFDL0M7RUFBK0M7OztBQUMvQztFQUErQzs7O0FBSS9DO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtBQUFBO0FBQUE7QUFBQTtJQUlJOzs7QUFRUjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtFQUdJOzs7QUFHSjtFQUE4Qjs7O0FBQzlCO0VBQThCOzs7QUN0UTlCO0FBQUE7QUFBQTtBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQ0E7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FDakNKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUE0Qzs7O0FBQzVDO0VBQTRDOzs7QUFDNUM7RUFBNEM7OztBQU81QztFQUF5Qzs7O0FBQ3pDO0VBQXlDOzs7QUFDekM7RUFBeUM7OztBQUN6QztFQUF5Qzs7O0FBRXpDO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDRTtJQUFPOztFQUNQO0lBQU87OztBQVFUO0VBQ0U7SUFDRTs7RUFFRjtJQUNFOzs7QUFRSjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtJQUFPOztFQUNQO0lBQU87OztBQUlUO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7SUFDQTs7RUFFRjtJQUFpRTs7O0FBS25FO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUF1RTs7O0FBQ3ZFO0VBQXVFOzs7QUFDdkU7RUFBdUU7OztBQUN2RTtFQUF1RTs7O0FBQ3ZFO0VBQStEOzs7QUFDL0Q7RUFDRTtFQUNBOzs7QUFFRjtFQUE2RDs7O0FDN0g3RDtBQUNFO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0E7QUFBQTtBQUFBO0FBQUE7RUFJRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBTUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBRUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtFQUlBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7OztBQUdGO0FBQUE7QUFFQTtBQUFBO0VBRUU7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0lBQ0U7OztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtFQUVFOzs7QUFHRjtBQUNBO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFDQTtBQUFBO0VBRUU7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTtFQUNBOzs7QUFHRjtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOzs7QUFHSjtFQUNFO0FBQUE7QUFBQTtBQUFBO0lBSUU7SUFDQTs7RUFFRjtJQUNFO0lBQ0E7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOztBQUVGO0VBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQUtFO0lBQ0E7O0VBRUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBTUU7OztBQUdKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFOzs7QUNsdEJGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU9GO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1FOzs7QUFNRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBSUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBT0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFBMEM7OztBQUMxQztFQUFxRDs7O0FBTXJEO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBU0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBO0VBRUE7OztBQUVGO0VBQXdEO0VBQWlCOzs7QUFDekU7RUFDRTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBRVQ7RUFDRTtJQUE0QjtJQUFpQjs7O0FBTy9DO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFBcUQ7OztBQUdyRDtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0lBQW1DO0lBQVc7OztBQUVoRDtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7OztBQWFGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQW1FOzs7QUFDbkU7RUFBcUU7OztBQUVyRTtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQXVEOzs7QUFNdkQ7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBbUU7OztBQUduRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFBMkQ7OztBQUszRDtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUFvRDs7O0FBQ3BEO0VBQ0U7OztBQUtGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUErQzs7O0FBQy9DO0VBQTZDOzs7QUFDN0M7RUFDRTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUF1RDs7O0FDamR2RDtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU9BO0VBQ0E7RUFHQTtFQUVBO0VBQ0E7OztBQUVGO0VBQ0U7SUFBd0I7SUFBVzs7O0FBSXJDO0VBQ0U7RUFDQTs7O0FBUUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFRRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFVRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFhRjtFQUFvRDs7O0FBQ3BEO0VBQW9EOzs7QUFDcEQ7RUFBb0Q7OztBQUNwRDtFQUFvRDs7O0FBQ3BEO0VBQW9EOzs7QUFVcEQ7RUFDRTs7O0FBRUY7RUFDRTs7O0FBaUJGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBLGFBQ0U7OztBQVdKO0VBQ0U7OztBQVNGO0VBQ0U7RUFDQTs7O0FBV0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBUUY7RUFDRTtFQUNBO0VBQ0E7OztBQVFGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUN0T0Y7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBO0VBU0E7RUFDQTtFQUNBO0VBS0E7RUFDQTtFQUNBO0VBQ0E7OztBQU9GO0VBQ0U7RUFHQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUFzQzs7O0FBQ3RDO0VBQXNDOzs7QUFDdEM7RUFBc0M7OztBQUN0QztFQUFzQzs7O0FBS3RDO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQU9GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUdBOzs7QUFJRjtFQUNFO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBV0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtBQUFBO0VBRUU7RUFDQTs7O0FBT0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFTRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBSUE7OztBQU9GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQU1GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUlGO0VBQ0U7OztBQ3JTRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FDMUhGO0VBQ0k7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUtBOztBQU1KO0VBQ0k7OztBQUtSO0VBQ0k7SUFDSTs7O0FBSVI7RUFDSTtJQUNJOzs7QUFRUjtFQUtJO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0k7O0FBS0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUtKO0VBQ0k7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFLSjtFQUFxQjs7QUFDckI7RUFBcUI7O0FBR3pCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBWTs7QUFLaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0k7O0FBT1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0FBQUE7QUFBQTtFQUlJO0VBQ0E7RUFDQTs7QUFJSjtFQUVJO0VBQ0E7O0FBSUo7RUFFSTtFQUNBOztBQUlKO0VBQVU7O0FBRVY7RUFFSTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFFSTs7QUFJSjtFQUVJOztBQUtSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQW1COzs7QUFLM0I7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7O0FBUVI7RUFDSTtBQUFBO0FBQUE7QUFBQTtJQUlJOztFQUdKO0FBQUE7SUFFSTs7O0FBWVI7RUFHSTtFQUNBOztBQU1JO0VBQWlCOztBQU1yQjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUVJOztBQUlKO0VBRUk7OztBQVNaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFTQSxjQUNJO0VBRUo7RUFDQSxNQUNJO0VBRUo7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0lBQUs7OztBQUlUO0VBQ0k7RUFDQTs7O0FBS0o7RUFDSTs7O0FBR0o7RUFDSTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBS1g7RUFDSTtFQUdBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFPQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7SUFDQTs7RUFFSjtJQUNJO0lBQ0EsV0FDSTs7RUFHUjtJQUNJO0lBQ0EsV0FDSTs7RUFHUjtJQUNJO0lBQ0EsV0FDSTs7O0FBV1I7QUFBQTtFQUNJOztBQUdKO0FBQUE7RUFDSTtFQUNBOztBQUVBO0FBQUE7RUFBb0I7O0FBQ3BCO0FBQUE7RUFBb0I7O0FBRXBCO0FBQUE7QUFBQTtFQUVJO0VBQ0E7O0FBR0o7QUFBQTtBQUFBO0VBRUk7O0FBR0o7QUFBQTtFQUNJO0VBQ0E7O0FBRUE7QUFBQTtBQUFBO0VBRUk7O0FBTVI7QUFBQTtFQUNJO0VBQ0E7O0FBRUE7QUFBQTtBQUFBO0VBRUk7OztBQ2xmaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQXlDOzs7QUFDekM7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUE0Qzs7O0FBRTVDO0VBQ0k7RUFDQTs7O0FDeERKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQWtCSjtFQUNJOztBQUVBO0VBQ0k7OztBQVVSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FDeEVBO0VBQXVCO0VBQVk7O0FBQ25DO0VBQTZCOztBQUM3QjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUMwQzs7QUFDMUM7RUFBbUM7OztBRG1FdkM7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7SUFBSzs7O0FBR1Q7RUFDSTtJQUNJOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBRWpNSjtFQU9FO0VBQ0E7RUFFQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVNGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQU1GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTs7O0FBSUY7QUFBQTtFQUVFO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBS0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU1BO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBTUU7OztBQUVGO0VBQ0U7OztBQWdCRjtBQUFBO0VBRUU7OztBQU1GO0VBQ0U7OztBQUVGO0VBQ0U7OztBQXlCRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esa0JBQ0U7RUFJRjtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtJQUNFOzs7QUFLSjtFQUNFO0lBQ0U7OztBQWdCSjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBTUY7RUFDRTtFQUNBOzs7QUFZRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQWFGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBLFlBQ0U7OztBQU9KO0FBQUE7RUFFRTs7O0FDcGJGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUtBO0VBQ0E7O0FBRUE7RUFDRTs7QUFHRjtFQUNFOzs7QUFJSjtFQUNFO0lBQVc7O0VBQ1g7SUFBTTs7RUFDTjtJQUFNOztFQUNOO0lBQU07O0VBQ047SUFBTTs7O0FBTVI7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7O0FBSUo7RUFDRTtJQUFLOztFQUNMO0lBQU87OztBQUdUO0VBR0U7SUFDRTs7O0FBT0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOzs7QUFJSjtFQUNFO0lBQVc7O0VBQ1g7SUFBTTs7O0FBR1I7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtJQUFXOztFQUNYO0lBQU07OztBQUdSO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0FBQUE7SUFFRTs7O0FBT0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtJQUFLOztFQUNMO0lBQU87OztBQUdUO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7O0FBYUo7RUFDRTtFQUNBOzs7QUFLRjtFQUNFO0VBQ0E7OztBQU1BO0VBQ0U7RUFDQTs7QUFHRjtFQUNFOzs7QUFPSjtFQUNFOztBQUVBO0FBQUE7QUFBQTtFQUdFO0VBQ0E7O0FBR0Y7RUFDRTs7O0FBSUo7RUFDRTtJQUFLO0lBQXFCOztFQUMxQjtJQUFNO0lBQXdCOztFQUM5QjtJQUFNO0lBQXdCOztFQUM5QjtJQUFPO0lBQXVCOzs7QUFNaEM7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFFRTs7QUFJRjtFQUNFO0VBQ0E7OztBQU9KO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0lBQVc7O0VBQ1g7SUFBTTs7O0FBSVI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUE7RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0Y7RUFDRTtFQUNBOzs7QUFNRjtFQUNFOzs7QUFJRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0E7RUFDRTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0U7RUFDQTtFQUNBOzs7QUFLQTtFQUNFOztBQUdGO0VBQ0U7RUFDQTs7O0FBSUo7RUFDRTtJQUFXO0lBQXNCOztFQUNqQztJQUFNO0lBQXlCOzs7QUFJakM7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7RUFDQTs7O0FBS0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOzs7QUFJSjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTs7QUFHRjtFQUNFOzs7QUFJSjtFQUNFO0lBQVc7O0VBQ1g7SUFBTTs7O0FBSVI7RUFDRTtBQUFBO0FBQUE7QUFBQTtJQUlFOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOzs7QUFPSjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQU1GO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBV0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7OztBQVFGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7SUFBVzs7RUFDWDtJQUFNOzs7QUFHUjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7QUFBQTtBQUFBO0VBR0U7RUFDQTtFQUNBOzs7QUFJQTtBQUFBO0FBQUE7RUFHRTtFQUNBOzs7QUFRSjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7OztBQWFKO0VBQ0U7RUFDQTs7O0FBUUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBT0E7RUFDRTs7QUFhRjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFLRjtFQUFtQjs7QUFDbkI7RUFBZTs7QUFDZjtFQUFnQjs7QUFDaEI7RUFBZ0I7O0FBRWhCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNFOzs7QUFLRjtFQUNFOztBQUVBO0FBQUE7QUFBQTtFQUdFO0VBQ0E7O0FBR0Y7RUFJRTtFQUNBOzs7QUFPSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFNQTtFQUNFO0VBQ0E7OztBQUlKO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTs7O0FBR0Y7RUFDRTtJQUFLO0lBQVk7O0VBQ2pCO0lBQU07O0VBQ047SUFBTztJQUFZOzs7QUFHckI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBOzs7QUFJSjtFQUNFO0VBQ0E7OztBQUlGO0VBQ0U7OztBQUdGO0VBQ0U7SUFBSztJQUFZOztFQUNqQjtJQUFNO0lBQVk7O0VBQ2xCO0lBQU87SUFBWTs7O0FBR3JCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7SUFBSztJQUFjO0lBQXdCOztFQUMzQztJQUFPO0lBQVk7SUFBd0I7OztBQUk3QztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0lBQUs7SUFBWTs7RUFDakI7SUFBTztJQUFZOzs7QUFJckI7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBOzs7QUFJSjtFQUNFO0lBQU87SUFBWTs7O0FBSXJCO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBTUU7RUFDQTs7O0FBU0o7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUlGO0VBQ0U7OztBQU1GO0VBQ0U7OztBQVlGO0VBQ0U7OztBQUdGO0VBQ0U7SUFBVzs7RUFDWDtJQUFNOztFQUNOO0lBQU07O0VBQ047SUFBTTs7RUFDTjtJQUFNOzs7QUFHUjtFQUNFO0lBQ0U7OztBQVdKO0VBQ0U7OztBQUtGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUtGO0VBQ0U7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7O0FBT0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7OztBQ3gwQ0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQXlCOztBQUd6QjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFBTTs7QUFHTjtFQUNJO0VBQ0E7O0FBQ0E7QUFBQTtFQUNlO0VBQWE7O0FBUWhDO0VBQ0k7RUFDQTs7QUFDQTtBQUFBO0VBQ2U7RUFBYTs7QUFJaEM7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7QUFBQTtFQUNlO0VBQWE7O0FBSWhDO0VBQ0k7RUFDQTs7QUFJSjtFQUNJOztBQUlKO0VBQ0k7O0FBS0o7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBOzs7QUFPUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOzs7QUN6RlI7RUFDSTtFQUNBO0VBQ0EsS0FoQzRCO0VBaUM1QixTQXZDNEI7RUF3QzVCLFlBM0I0QjtFQTRCNUIsZUE3QzRCO0VBOEM1QjtFQUVBOztBQUVBO0VBQ0ksZUFsRHdCOztBQXFENUI7RUFDSTtFQUNBOztBQUdKO0VBRUksWUEzQ3dCOztBQTZDeEI7RUFDSTs7O0FBVVo7RUFDSTtFQUNBLEtBeEU0QjtFQXlFNUI7RUFDQTtFQUNBO0VBQ0E7RUFDQSxlQS9FNEI7RUFnRjVCLFlBL0Q0QjtFQWdFNUIsWUE5RDRCO0VBK0Q1QjtFQUNBO0VBRUEsWUFDSTs7QUFHSjtFQUNJLGVBekZ3Qjs7QUE0RjVCO0VBRUksWUE3RXdCO0VBOEV4QixZQUNJOzs7QUFTWjtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV0EzRzRCO0VBNEc1QixRQTlHNEI7RUErRzVCO0VBQ0E7RUFHQTtFQUNBO0VBR0EsZUExSDRCO0VBNkg1QjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT0E1RzRCO0VBK0c1QjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJOztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU1KO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLUjtFQUNJO0VBQ0EsWUFwSndCOztBQXdKNUI7RUFDSSxZQXZKd0I7RUF3SnhCOztBQUlKO0VBQ0ksWUFDSTs7QUFPUjtFQUNJLE9BOUt3QjtFQStLeEI7RUFDQTs7QUFFQTtFQUNJLFlBQ0k7O0FBTVo7RUFDSSxPQXZMd0I7RUF3THhCO0VBQ0E7RUFDQTs7QUFZSjtFQUNJO0VBQ0EsT0E3TndCO0VBOE54QjtFQUNBOztBQUVBO0VBQXNCOztBQVcxQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFRUjtFQUNJLFFBbFF3QjtFQW1ReEI7RUFDQSxlQXZRd0I7RUF3UXhCO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUdKO0VBQ0ksT0E5UW9CO0VBK1FwQjs7QUFRUjtFQUVJLE9BdFF3Qjs7QUF3UXhCO0VBQ0k7RUFDQSxZQXRRb0I7O0FBeVF4QjtFQUNJLFlBeFFvQjtFQXlRcEI7O0FBR0o7RUFDSSxPQXJSb0I7O0FBd1J4QjtFQUNJLE9BclJvQjtFQXNScEI7OztBQVlaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBTUE7RUFDSTs7QUFNSjtFQUNJOztBQU9KO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7O0FBb0JaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUlBOztBQUdKO0VBQ0k7RUFDQTs7QUFFQTtFQUF3Qjs7QUFFeEI7RUFDSTtFQUNBOztBQU1KO0VBSUk7O0FBR0o7RUFBNEM7OztBQVVwRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUFrRDs7O0FBQ2xEO0VBQWtEOzs7QUMxY2xEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOzs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJOzs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTs7QUFLQTtFQUFpQjs7QUFDakI7RUFBaUI7RUFBNEI7O0FBSzdDO0VBQWlCOztBQUNqQjtFQUFpQjs7QUFLckI7RUFDSTtFQUNBOztBQUVBO0VBQWlCOztBQUNqQjtFQUFpQjs7O0FBV3JCO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFpQjs7O0FBUXpCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUlKO0VBQ0k7RUFDQTs7QUFFQTtFQUFlOztBQUt2QjtFQUNJOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQU1aO0VBQ0k7OztBQVNBO0FBQUE7RUFDSTs7QUFJQTtBQUFBO0VBQWlCOztBQUNqQjtBQUFBO0VBQWlCOztBQUdiO0FBQUE7RUFBaUI7O0FBQ2pCO0FBQUE7RUFBaUI7RUFBOEI7O0FBSS9DO0FBQUE7RUFBaUI7O0FBQ2pCO0FBQUE7RUFBaUI7O0FBSWpCO0FBQUE7RUFBaUI7O0FBQ2pCO0FBQUE7RUFBaUI7O0FBS3JCO0FBQUE7RUFDSTs7QUFFQTtBQUFBO0VBQ0k7RUFDQTs7QUFLSjtBQUFBO0VBQWU7O0FBRWY7QUFBQTtFQUNJO0VBQ0E7O0FBRUE7QUFBQTtFQUFlOztBQUtuQjtBQUFBO0VBQVM7O0FBQ1Q7QUFBQTtFQUFTOzs7QUM1VXJCO0VBR0U7RUFDQTtFQUlBO0VBQ0E7RUFDQTtFQUdBO0VBRUE7RUFJQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUlBO0VBQ0E7RUFHQTtFQUNBO0VBS0E7OztBQU1GO0VBQ0U7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDRTs7O0FBV0o7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBV0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFPRjtFQUNFO0VBQ0E7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBTUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtBQUFBO0VBRUU7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQWlCRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBS0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0U7OztBQUlKO0VBQ0U7RUFDQTs7O0FBRUY7RUFBc0M7OztBQUN0QztFQUNFO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFNRjtFQUNFO0lBQ0U7SUFDQTtJQUNBOzs7QUFLSjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFRRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBT0Y7RUFDRTtJQUNFOzs7QUFRSjtFQUNFO0lBQ0U7OztBQzlVSjtFQU9FO0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBSUE7O0FBRUE7QUFBQTtBQUFBO0VBR0U7OztBQUtKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFJQTtFQUlBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFFRjtFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJRjtFQUNFOzs7QUFTRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQSxZQUNFOzs7QUFVSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBLFdBQ0U7OztBQUdKO0VBQ0U7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87OztBQUVUO0VBQ0U7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBR1Q7RUFDRTtJQUNFO0lBQ0E7OztBQUdKO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFLRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQU1GO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUlGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQVVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBYUY7RUFDRTtJQUNFO0lBQ0E7SUFDQTtJQUNBOztFQUVGO0lBQ0U7SUFDQTtJQUNBOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUlBO0lBQ0E7O0VBRUY7SUFBNkI7O0VBQzdCO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUlGO0lBQWlDOztFQUNqQztJQUNFO0lBQ0E7SUFDQTs7O0FBS0o7RUFDRTtJQUNFOzs7QUNqV0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFBd0U7OztBQUN4RTtFQUF3RTs7O0FBQ3hFO0VBQXVFOzs7QUFDdkU7RUFBMEU7OztBQUMxRTtFQUF3RTs7O0FBRXhFO0VBQ0k7SUFBVzs7RUFDWDtJQUFNOzs7QUFFVjtFQUNJO0lBQVc7O0VBQ1g7SUFBTTs7O0FBRVY7RUFDSTtJQUFXOztFQUNYO0lBQU07OztBQUVWO0VBQ0k7SUFBVzs7RUFDWDtJQUFNOzs7QUFFVjtFQUNJO0lBQWdCOztFQUNoQjtJQUFNOztFQUNOO0lBQU07OztBQUtWO0VBQW9GOzs7QUFDcEY7RUFBb0Y7OztBQUNwRjtFQUFtRjs7O0FBQ25GO0VBQXNGOzs7QUFDdEY7RUFBb0Y7OztBQUVwRjtFQUNJO0lBQUs7O0VBQ0w7SUFBTTs7RUFDTjtJQUFNOztFQUNOO0lBQU07O0VBQ047SUFBTTs7RUFDTjtJQUFPOzs7QUFFWDtFQUNJO0lBQUs7O0VBQ0w7SUFBTTs7RUFDTjtJQUFNOztFQUNOO0lBQU87OztBQUVYO0VBQ0k7SUFBSzs7RUFDTDtJQUFNOztFQUNOO0lBQU07O0VBQ047SUFBTzs7O0FBRVg7RUFDSTtJQUFLOztFQUNMO0lBQU07O0VBQ047SUFBTTs7RUFDTjtJQUFNOztFQUNOO0lBQU87OztBQUVYO0VBQ0k7SUFBSzs7RUFDTDtJQUFNOztFQUNOO0lBQU07O0VBQ047SUFBTTs7RUFDTjtJQUFNOztFQUNOO0lBQU07O0VBQ047SUFBTzs7O0FBR1g7RUFDSTtJQUEwQjs7O0FDbkg5QjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTs7O0FBUUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUdKO0VBR0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtJQUFvQzs7RUFDcEM7SUFBb0M7OztBQ3ZFeEM7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0VBR0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTtFQUVKO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtFQUdBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7QUFDQTtBQUFBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBLFlBQ0k7OztBQUdSO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWVBO0FBQUE7QUFFQTtBQUNJO0FBQUE7QUFBQTtFQUdBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0FBQ0E7QUFBQTtBQUFBO0VBR0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFHSjtBQUNBO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQ3pNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBa0I7RUFBc0I7O0FBRXhDO0VBQ0k7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBS1I7RUFDSTtFQUNBOztBQUNBO0VBQVc7O0FBQ1g7RUFBVzs7O0FBSWY7RUFDSTtFQUNBOztBQUNBO0VBQWtCOztBQUNsQjtFQUFVOzs7QUFJZDtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUFrQjs7QUFDbEI7RUFBVTs7O0FBTWQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBeUM7RUFBZTtFQUF3Qjs7O0FBQ2hGO0VBQ0k7RUFBbUI7RUFDbkI7RUFBMkI7RUFBdUI7OztBQUV0RDtFQUNJO0VBQWlCO0VBQThCO0VBQXdDO0VBQ3ZGO0VBQXFCO0VBQW1CO0VBQWE7OztBQUV6RDtFQUEyQztFQUFlOzs7QUFFMUQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7QUFDVjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOzs7QUFJUjtFQUE2Qjs7O0FBQzdCO0VBQThCOzs7QUFFOUI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FDN1BKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7RUFHRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFO0VBQ0E7OztBQzFHRjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU9BO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFRSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQWFKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJOztBQVNSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJOztBQU9SO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBS0o7RUFDSTtFQUNBOzs7QUFVUjtFQUNJOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTs7QUFJSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOzs7QUNoTFI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7OztBQU9GO0VBQXFEOzs7QUFDckQ7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUErQjtFQUFhO0VBQWM7OztBQUcxRDtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBUUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTs7O0FBRUY7RUFBbUM7OztBQUNuQztFQUNFOzs7QUFhRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBSUY7RUFDRTtFQUNBOzs7QUFNRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFVRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQ25QRjtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFzQkE7RUFDRTtJQUNFOztFQUVGO0lBQ0U7OztBQUdKO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0lBQ0U7OztBQ3BFSjtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUNBRjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU1BO0VBQ0E7O0FBR0k7RUFDSTs7QUFESjtFQUNJOztBQURKO0VBQ0k7O0FBREo7RUFDSTs7QUFESjtFQUNJOztBQURKO0VBQ0k7O0FBREo7RUFDSTs7QUFESjtFQUNJOztBQURKO0VBQ0k7O0FBREo7RUFDSTs7QUFESjtFQUNJOztBQURKO0VBQ0k7O0FBS1I7RUFDSTs7O0FBSVI7RUFDSTtJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBR3ZCO0VBQ0k7SUFDSTtJQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFVSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQ3pHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBR0E7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUNuQ0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7OztBQ3RPRjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUVKO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQU9KO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUVKO0VBQ0k7OztBQzlCUjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFZRjtFQUEyQztFQUFrQztFQUFzQztFQUEwQzs7O0FBQzdKO0VBQTJDO0VBQXVDO0VBQXFDO0VBQXVDOzs7QUFDOUo7RUFBMkM7RUFBc0M7RUFBbUM7RUFBd0M7OztBQUM1SjtFQUEyQztFQUE4QztFQUFzQztFQUE2Qzs7O0FBQzVLO0VBQTJDO0VBQXVDO0VBQXNDO0VBQXdDOzs7QUFDaEs7RUFBMkM7RUFBZ0M7RUFBbUM7RUFBdUM7OztBQUdySjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFhRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0VBR0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBT0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBOzs7QUFJRjtFQUNFOzs7QUFLRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFBb0Y7OztBQUNwRjtFQUFvRjs7O0FBTXBGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFNRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBT0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFNRjtFQUE0RDs7O0FBQzVEO0VBQTREO0VBQWlCOzs7QUFDN0U7RUFBNEQ7RUFBaUI7OztBQUM3RTtFQUFvRjtFQUFpQjs7O0FBRXJHO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUEyRDs7O0FBQzNEO0VBQTJEO0VBQWlCOzs7QUFDNUU7RUFBMkQ7RUFBaUI7OztBQUM1RTtFQUFtRjtFQUFpQjs7O0FBSXBHO0VBQXFGOzs7QUFDckY7RUFBcUY7OztBQUdyRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7OztBQUlGO0VBQTJCOzs7QUFDM0I7RUFDRTtFQUNBO0VBQ0E7OztBQVNGO0VBQ0U7OztBQUlGO0VBQ0U7RUFDQTtFQUNBOzs7QUFRRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUdBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTs7O0FBSUY7QUFBQTtFQUVFO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7QUFBQTtFQUVFOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7OztBQVlGO0FBQUE7RUFFRTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFNRTs7O0FBRUY7QUFBQTtFQUVFOzs7QUM3Y0Y7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQXVCOztBQUN2QjtFQUE2Qjs7QUFDN0I7RUFBNkI7RUFBb0M7OztBQUdyRTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQXVCOztBQUN2QjtFQUE2Qjs7QUFDN0I7RUFBNkI7RUFBb0M7OztBQUdyRTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQXNCOztBQUN0QjtFQUFVOzs7QUFHZDtFQUFnQjs7O0FDekVoQjtFQUNFOzs7QUFVRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFPRjtFQUNFO0VBQ0E7RUFDQTs7O0FBS0Y7RUFLRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUE4QjtFQUFVO0VBQVc7OztBQWVuRDtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTs7O0FBRUY7RUFBZ0M7RUFBVTtFQUFXOzs7QUFFckQ7RUFDRTtFQUNBO0VBQ0E7OztBQVNGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQU9GO0VBQW1COzs7QUFDbkI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBa0I7OztBQU1sQjtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFJRjtFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFRRjtFQUFzQjs7O0FBQ3RCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUNyTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FDckVGO0VBRVE7QUFBQTtJQUVJLE9BUGlCO0lBUWpCLGNBUG1CO0lBUW5CLGVBUm1COzs7QUFhL0I7RUFDSTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU1BO0VBQ0E7RUFDQTs7O0FBaUJKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFrQjs7QUFFbEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJUjtFQUdJO0lBQU87O0VBQ1A7SUFBTzs7O0FBS1g7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7O0FBTVI7RUFDSTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQVFJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU1BO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0ksT0EzSWE7RUE0SWI7O0FBZ0JKO0VBQ0k7O0FBRUE7RUFDSTs7QUFFQTtFQUFpQjs7QUFHckI7RUFBaUM7O0FBRWpDO0VBQ0k7RUFDQTtFQUNBOztBQU9SO0VBQ0k7O0FBRUE7RUFBVzs7QUFHZjtFQUFnQjs7QUFFaEI7RUFBZ0I7O0FBQ2hCO0VBQWdCOztBQUdoQjtFQUNJO0VBQ0E7RUFDQTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFXaEI7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQWdCOztBQUloQjtFQUFzQjs7QUFJdEI7RUFBcUM7O0FBQ3JDO0VBQXFDOztBQUdyQztFQUFxQzs7QUFLckM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUE7RUFDSTtFQUNBOztBQU9BO0VBQVU7O0FBRVY7RUFBZ0I7O0FBT2hCO0VBQWM7O0FBRWQ7RUFBaUI7O0FBR2I7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFLWjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQU9BO0VBQ0ksT0E3U2E7RUE4U2I7O0FBRUE7RUFBZ0I7O0FBR3BCO0VBQWM7O0FBV2Q7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtKO0VBQ0k7RUFDQTs7QUFNQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTs7QUFRQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFXSjtFQUNJO0VBQ0E7RUFDQTs7QUFhSjtFQUNJO0VBQ0E7RUFLQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBTUo7RUFDSTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBOztBQVlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBU0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU1KO0VBQ0k7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFBeUI7O0FBQ3pCO0VBQXlCOztBQUN6QjtFQUF5Qjs7QUFDekI7RUFBeUI7O0FBQ3pCO0VBQXlCOztBQUN6QjtFQUF5Qjs7QUFDekI7RUFBeUI7O0FBQ3pCO0VBQXlCOztBQUV6QjtFQUNJO0VBQ0E7RUFDQTs7QUFlUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFJQTtFQUNBOztBQU9KO0FBQUE7RUFFSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUtBOztBQUlSO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQWE7OztBQVVqQztFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBTUE7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBK0JKO0VBQ0k7SUFBTztJQUFZOztFQUNuQjtJQUFPO0lBQVk7OztBQUd2QjtFQUNJO0lBQU87O0VBQ1A7SUFBTzs7O0FBR1g7QUFBQTtFQUVJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUtKO0VBQ0k7QUFBQTtJQUVJOzs7QUE4Q0o7QUFBQTtFQUVJLFlBQ0k7OztBQVVaO0VBRVE7QUFBQTtJQUNXOzs7QUFLZjtFQUNJLGFBeEM0QjtFQXlDNUIsZ0JBekM0Qjs7QUE0Q2hDO0VBQ0ksYUEvQzRCO0VBZ0Q1QixnQkFoRDRCO0VBaUQ1QixXQWhENEI7O0FBa0Q1QjtFQUNJLGFBcER3QjtFQXFEeEIsZ0JBckR3Qjs7QUEyRGhDO0FBQUE7QUFBQTtBQUFBO0VBSUksV0E5RDRCOztBQW1FaEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtJO0VBQ0E7O0FBR0o7RUFBMEM7OztBQWtCMUM7RUFDSSxhQWpHNEI7RUFrRzVCLGdCQWxHNEI7RUFtRzVCLGNBckc0QjtFQXNHNUIsZUF0RzRCOztBQXlHaEM7RUFDSSxhQTNHNEI7RUE0RzVCLGdCQTVHNEI7RUE2RzVCLGNBNUc0QjtFQTZHNUIsZUE3RzRCO0VBOEc1QixXQTdHNEI7O0FBK0c1QjtFQUNJLGFBbEh3QjtFQW1IeEIsZ0JBbkh3Qjs7QUF1SGhDO0FBQUE7QUFBQTtBQUFBO0VBSUksV0F6SDRCOztBQThIaEM7RUFDSTs7QUFLSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0k7RUFDQTs7QUFJSjtFQUEwQzs7QUFDMUM7RUFBMEM7OztBQzcwQjlDO0VBQ0k7RUFDQTtFQUlBOztBQUVBO0VBQ0k7RUFDQTs7O0FBaUJSO0VBQ0k7RUFDQTtFQUNBO0VBTUE7RUFDQTtFQWtCQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQWtCSjtFQUNJO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFHdkI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0lBQTBDOzs7QUFLOUM7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFvQjs7O0FBR3hCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFTSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFZOzs7QUFLaEI7RUFDSTtFQUNBOzs7QUFXSjtFQUNJOzs7QUFjQTtFQUNJO0VBQ0E7O0FBS0o7RUFDSTs7O0FBZ0JSO0VBR0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBSUE7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFZOzs7QUFHaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVk7O0FBRVo7RUFBVTs7QUFJVjtFQUFnQjs7QUFDaEI7RUFBZ0I7O0FBQ2hCO0VBQWdCOztBQUVoQjtFQUFpQjs7QUFDakI7RUFBNkI7OztBQUdqQztBQUFBO0VBRUk7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFlO0VBQWE7O0FBRTVCO0VBQWlCO0VBQXdDOztBQUN6RDtFQUFrQjtFQUF3Qzs7O0FBRzlEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZTtFQUFhOztBQUU1QjtFQUFrQjs7QUFDbEI7RUFBa0I7RUFBd0M7OztBQzdZOUQ7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7QUFDQTtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0VBRUE7OztBQUdGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUNwZEY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7RUFFQTs7O0FBR0Y7QUFBQTtBQUFBO0VBR0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7RUFFRTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtBQUVBO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQzVZRjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7O0FBS0E7RUFBWTs7QUFkaEI7RUFlSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU9BO0VBQVU7O0FBQ1Y7RUFFSTtFQUNBO0VBQ0E7O0FBSUo7RUFFSTtFQUNBOztBQUNBO0VBQ2dCO0VBQWdDOztBQUlwRDtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBSUo7RUFBaUI7RUFBaUI7O0FBQ2xDO0VBQWlCO0VBQWlCOztBQUNsQztFQUFpQjtFQUFpQjs7QUFDbEM7RUFBaUI7RUFBaUI7O0FBQ2xDO0VBQWlCO0VBQWlCOztBQUdsQztFQUE4Qjs7QUFDOUI7RUFBOEI7O0FBQzlCO0VBQThCOztBQUM5QjtFQUE4Qjs7QUFHOUI7RUFFSTs7QUFNSjtFQUVJOztBQUdKO0VBRUk7RUFDQTtFQUNBOztBQUdKO0VBRUk7RUFDQTs7QUFTSjtFQUdJO0VBQ0E7RUFDQTs7QUFLSjtFQUdJO0VBQ0E7O0FBR0o7RUFHSTtFQUNBO0VBQ0E7O0FBR0o7RUFHSTtFQUNBO0VBQ0E7OztBQVdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBSUo7RUFFSTtFQUNBO0VBQ0E7O0FBRUo7RUFFSTtFQUNBO0VBQ0E7O0FBSUo7RUFHSTtFQUNBO0VBQ0E7O0FBRUo7RUFHSTtFQUNBO0VBQ0E7OztBQ25TUjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQzVERjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBcUM7OztBQUNyQztFQUFzQzs7O0FBRXRDO0FBQUE7RUFDdUQ7OztBQUN2RDtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7O0FDbEhKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQ3JHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0FBQUE7RUFHRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNuT0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFJRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUNsSkY7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBU0E7RUFDQTtFQUVBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBSUE7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBS0E7OztBQXNDSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQVNKO0VBQ0k7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87OztBQUVYO0VBQ0k7OztBQUdKO0VBQ0k7SUFBZ0I7OztBQUlwQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBR0E7RUFDQTs7O0FBS0o7QUFBQTtFQUVJO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTtFQUNBOzs7QUFJSjtFQUNJOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtJQUNJOzs7QUM5VlI7RUFDSTs7O0FBUUE7QUFBQTtBQUFBO0VBR0k7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUFJOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTs7O0FBT0o7RUFDSTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7OztBQUdSO0VBQ0k7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87OztBQU1YO0VBQWU7OztBQUNmO0VBQXFCOzs7QUFFckI7RUFDSTtJQUFPOztFQUNQO0lBQU87OztBQUlYO0VBQ0k7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHUjtFQUNJO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7OztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBOztBQUNBO0VBQXVCO0VBQVU7OztBQUVyQztFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTs7QUFFQTtFQUNJOztBQUlKO0VBRUk7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7O0FBQ0E7RUFBWTtFQUF1Qzs7O0FBSTNEO0VBQ0k7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87OztBQVNQO0VBQWE7O0FBQ2I7RUFBYTs7O0FBSWpCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFvQjs7O0FBR3BCO0VBQ0k7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFHUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBWTs7QUFDWjtFQUFZOztBQUNaO0VBQVk7OztBQUloQjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUFhOztBQUNiO0VBQ0k7RUFDQTtFQUNBOzs7QUFRUjtFQUNJO0VBQ0E7OztBQU9KO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJQTtFQUNJO0VBQ0E7OztBQUdSO0VBQ0k7RUFDQTs7O0FBSUo7RUFDSTtFQUNBOzs7QUFPSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUN4Zko7RUFDSTs7O0FBR0o7RUFDSTs7QUFDQTtFQUFJOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQW9CO0VBQWtDOzs7QUFHdEQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7RUFDQTs7QUFHSjtFQUFxQjs7O0FBRXpCO0VBQ0k7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87OztBQUVYO0VBQWU7OztBQUNmO0VBQXFCOzs7QUFDckI7RUFDSTtJQUFPOztFQUNQO0lBQU87OztBQUlYO0VBQStCOzs7QUFDL0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdSO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7O0FBR1I7RUFDSTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7OztBQ3BMSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtFQUdFOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0U7OztBQUVGO0VBQ0U7RUFDQTs7O0FDM0tGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFFQTtFQUNFO0VBQ0E7OztBQU1GO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBRVQ7RUFDRTtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOzs7QUFHVDtFQUNFO0VBQ0E7OztBQU1GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQU1GO0VBQ0U7OztBQU1GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFNQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQWVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtBQUFBO0FBQUE7QUFHQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7SUFDRTs7QUFFRjtFQUNBO0lBQ0U7O0FBRUY7QUFBQTtBQUFBO0VBR0E7SUFDRTs7RUFFRjtJQUNFOzs7QUFJSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0U7OztBQVNGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFJRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBa0JGO0FBQUE7RUFDcUY7OztBQUVyRjtBQUFBO0VBQ3NGO0VBQWE7RUFBYzs7O0FBRWpIO0FBQUE7RUFDb0c7RUFBUztFQUFhOzs7QUFLMUg7RUFJSTtBQUFBO0lBQTJCOztFQUk3QjtJQUF1RTs7RUFDdkU7SUFBdUU7OztBQVd6RTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0U7OztBQUlGO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7O0VBS0Y7SUFDRTtJQUNBO0lBQ0E7SUFDQTs7O0FDOVdKO0VBQ0k7RUFNQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFNQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBLFlBQ0k7OztBQU9aO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJOzs7QUFRSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVVKO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNqTEo7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBOzs7QUFLRjtFQUFnQzs7O0FBR2hDO0FBQUE7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFvQztFQUFpQjs7O0FBQ3JEO0VBQW9DO0VBQThCO0VBQVk7OztBQUM5RTtFQUFvQztFQUE4QjtFQUFZOzs7QUFFOUU7QUFBQTtBQUFBO0FBR0E7RUFBYTtFQUFlO0VBQXlCO0VBQXVCOzs7QUFFNUU7QUFBQTtBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQWdCO0VBQWU7RUFBcUI7OztBQUNwRDtFQUE2Qjs7O0FBQzdCO0VBQWlCO0VBQWlCO0VBQW1CO0VBQWtCOzs7QUFDdkU7RUFBZ0I7RUFBaUI7RUFBbUI7OztBQUNwRDtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7RUFFQTs7O0FBRUY7QUFBQTtBQUFBO0VBRTRCO0VBQWdCO0VBQWlCOzs7QUFDN0Q7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUEwQztFQUFhO0VBQW1CO0VBQW1COzs7QUFDN0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNuSUY7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7OztBQUlSO0FBQUE7QUFBQTtFQUdJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDOUdKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFPQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBT0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQU9GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7O0FBR0o7RUFDRTtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOztFQUVGO0lBQ0U7OztBQUdKO0VBQ0U7SUFDRTs7RUFFRjtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7O0FBR0o7RUFDRTtJQUNFOztFQUVGO0lBQ0U7O0VBRUY7SUFDRTs7RUFFRjtJQUNFOztFQUVGO0lBQ0U7OztBQUdKO0VBQ0U7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtJQUNFO0lBQ0E7O0VBRUY7SUFDRTtJQUNBOztFQUVGO0lBQ0U7SUFDQTs7O0FBR0o7RUFDRTtJQUNFO0lBQ0E7O0VBRUY7SUFDRTtJQUNBOztFQUVGO0lBQ0U7SUFDQTs7O0FDM1JKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFLQTs7O0FBS0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFJQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0FBQUE7SUFDaUM7SUFBa0I7OztBQUlyRDtBQUFBO0VBRUU7OztBQUVGO0FBQUE7RUFJRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0FBQUE7RUFFRTtFQUNBOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7QUFBQTtFQUVFO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFPRjtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFPRjtFQUNFOzs7QUFFRjtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFFRjtFQUNFOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFzRTs7O0FBQ3RFO0VBQXNFOzs7QUFDdEU7RUFBc0U7OztBQUN0RTtFQUFzRTs7O0FBR3RFO0FBQUE7RUFFRTs7O0FBZUY7RUFDRTtFQUNBOzs7QUFPRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUdGO0VBQ0U7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87OztBQUdUO0VBQ0U7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBRVQ7QUFBQTtFQUVFO0VBQ0E7OztBQVVGO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFJRjtBQUFBO0VBRUU7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQ2pZRjtFQUF3Qjs7O0FBQ3hCO0VBQWlDOzs7QUFHakM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQW1DOzs7QUFDbkM7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBcUM7OztBQUdyQztFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUF5Qzs7O0FBRXpDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBOzs7QUFNSjtFQUF5RTs7O0FBQ3pFO0VBQ0k7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87O0VBQ1A7SUFBTzs7O0FBU1g7RUFDSTtFQUNBOzs7QUFRSjtFQUNJO0VBTUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFBZ0M7OztBQUdoQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFzQzs7O0FBRXRDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXVDOzs7QUFJdkM7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUM1T1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQ1RKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0VBQ0k7RUFDQTtFQUNBOztBQUlSO0FBQUE7QUFBQTtBQUFBO0VBRUk7O0FBR0o7QUFBQTtBQUFBO0FBQUE7RUFFSTs7QUFHSjtBQUFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDakJSO0VBQ0k7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQU1BO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTs7QUFDQTtFQUF5Qjs7QUF4QjdCO0VBMEJJOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQW9CSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFhSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBV0o7RUFDSTs7QUFJSjtFQUVRO0lBQ0k7OztBQVFSO0VBQ0k7RUFDQTs7QUFLUjtFQUNJOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTs7QUFLUjtFQUVRO0lBQ0k7OztBQVFSO0VBQ0k7RUFDQTs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQW1COztBQUNuQjtFQUNJO0VBQ0E7RUFDQTs7QUFJSjtFQUNJOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTtFQUVKLFlBQ0k7O0FBSUo7RUFBTTs7QUFHVjtFQUVRO0lBQ0k7SUFDQTtJQUNBLFlBQ0k7OztBQVFaO0VBQ0k7RUFDQTtFQUNBLFlBQ0k7O0FBS1o7RUFDSTs7QUFFQTtFQUFnQztFQUFxQjs7QUFDckQ7RUFBZ0M7O0FBR3BDO0VBQ0k7RUFDQTs7O0FBVVo7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFBVzs7QUFHWDtFQUF3RDs7QUFDeEQ7RUFBd0Q7O0FBR3hEO0VBQW9DOztBQUdwQztFQUNJO0VBQ0E7RUFDQTtFQUVBOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJO0VBRUo7RUFDQTtFQUNBO0VBQ0E7OztBQVNSO0FBQUE7RUFFSTtFQUNBO0VBc0JBO0VBQ0E7RUFDQTtFQUVBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJO0VBS0o7RUFDQTtFQUdBOztBQUNBO0FBQUE7RUFBVzs7QUFLWDtBQUFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0FBQUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0FBQUE7RUFBYzs7QUFJZDtBQUFBO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0FBQUE7RUFBTTtFQUFhOztBQUl2QjtBQUFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7QUFBQTtFQUFpQzs7QUFDakM7QUFBQTtFQUFpQzs7QUFHakM7RUFDSTtBQUFBO0lBQTBEOzs7QUFFOUQ7QUFBQTtBQUFBO0VBRUk7RUFDQTs7QUFHSjtBQUFBO0VBQ0k7O0FBQ0E7QUFBQTtFQUFnQzs7QUFRaEM7QUFBQTtFQUFnQzs7QUFDaEM7QUFBQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0FBQUE7RUFBc0M7O0FBSzlDO0FBQUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUNJOztBQUdKO0VBQWlDOztBQUNqQztFQUFvQzs7QUFHcEM7RUFBNEI7O0FBTzVCO0VBQThEOztBQUc5RDtFQUE4Rjs7O0FBUWxHO0VBQ0k7SUFBTztJQUE2Qjs7RUFDcEM7SUFBTztJQUE2Qjs7O0FBR3hDO0VBQ0k7SUFBTztJQUE4Qjs7RUFDckM7SUFBTztJQUE4Qjs7O0FBR3pDO0VBQ0k7SUFBTztJQUE2Qjs7RUFDcEM7SUFBTztJQUE2Qjs7O0FBR3hDO0VBQ0k7SUFBTztJQUE0Qjs7RUFDbkM7SUFBTztJQUE0Qjs7O0FBR3ZDO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FDamxCSjtBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBUUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7RUFFQTs7O0FBR0o7QUFBQTtFQUVJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtFQUNBOzs7QUFHSjtBQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7SUFBSzs7O0FBS1Q7RUFDSTtJQUF3Qjs7RUFDeEI7SUFBb0M7SUFBaUI7OztBQ3JHekQ7RUFDRTtFQU9BO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtJQUFtQjs7O0FBTXJCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDRTs7O0FBS0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7RUFDQTs7O0FBSUY7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBWUY7QUFBQTtBQUFBO0VBR0U7RUFDQTs7O0FDL0ZGO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFhQTtFQUVBOztBQUNBO0VBQXlCOzs7QUFLN0I7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7O0FBRUE7RUFBWTs7O0FBUWhCO0VBQ0k7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBRUE7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBRUE7RUFDQTs7QUFFQTtFQUFVOzs7QUFZZDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBOztBQUVBO0VBQVU7OztBQUdkO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7O0FBdUJkO0FBQUE7QUFBQTtBQUFBO0VBSUk7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7O0FBYWQ7RUFDSTtFQUNBO0VBQ0E7RUFZQTtFQUNBO0VBRUE7RUFDQTtFQUNBOztBQUVBO0VBQVU7O0FBTVY7RUFDSTtFQUNBO0VBQ0E7OztBQWVSO0VBQ0k7OztBQWlESjtFQUNJOzs7QUFHSjtFQUNJO0lBQ0k7O0VBRUE7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUdKO0lBQ0k7O0VBR0o7QUFBQTtJQUVJOzs7QUFLWjtFQUNJO0lBQ0k7OztBQUlSO0VBQ0k7SUFDSTs7O0FBT1I7QUFBQTtFQUVJO0VBRUE7RUFDQTtFQUNBOztBQUVBO0FBQUE7RUFBVTs7O0FBTVY7RUFBVTs7O0FBUWQ7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBOzs7QUFPSjtFQUNJO0VBQ0E7RUFDQTs7O0FBcUJKO0VBQ0k7O0FBRUE7RUFDSTs7QUFVSjtBQUFBO0VBRUk7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBV0o7RUFDSTtFQUNBOztBQVVKO0VBQ0k7O0FBR0o7QUFBQTtFQUVJOzs7QUFJUjtFQUNJO0lBQ0k7OztBQUlSO0VBQ0k7SUFDSTs7O0FBbUJSO0VBZUk7RUFDQTs7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFNSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7O0FBT1I7RUFDSTtJQUNJO0lBQ0E7O0VBR0o7SUFBYTs7O0FBR2pCO0VBQ0k7SUFDSTs7O0FDbmhCUjtFQUNJO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtFQUdBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUVBO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7RUFFSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7RUFBdUM7OztBQUN2QztFQUF1Qzs7O0FBQ3ZDO0VBQXVDOzs7QUFDdkM7RUFBdUM7OztBQUN2QztFQUNJO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0FBQUE7SUFFSTs7O0FDOUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU1BO0VBTUE7RUFDQTtFQUNBO0VBaUJBO0VBQ0E7RUFJQTtFQUNBO0VBTUE7RUFDQTtFQUdBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU9BO0VBQ0k7O0FBdEVSO0VBd0VJO0VBS0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBRUk7RUFDQSxZQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBOztBQVlKO0VBQ0k7O0FBRUE7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7RUFDQTs7QUFLUjtFQUNJOztBQUVKO0VBQ0k7O0FBU0o7RUFDSTs7QUFFSjtFQUNJOztBQVdKO0VBR0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFNSTtFQUNBO0VBQ0E7RUFDQTs7O0FBaUNSO0FBQUE7RUFNSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFFQTtFQUlBO0VBQ0E7RUFDQTtFQUNBOzs7QUFVSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7OztBQVFSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQVFKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJO0VBQ0EsWUFDSTs7O0FBS1o7RUFDSTtFQUNBO0VBR0E7OztBQU1KO0VBQ0k7OztBQVFKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQWFKO0VBQ0k7OztBQWdCSjtFQUE4QjtFQUF3Qzs7O0FBQ3RFO0VBQThCO0VBQWlDOzs7QUFDL0Q7RUFBOEI7RUFBdUM7OztBQUNyRTtFQUE4QjtFQUF3Qzs7O0FBQ3RFO0VBQThCO0VBQXVDOzs7QUFDckU7RUFBOEI7RUFBd0M7OztBQUN0RTtFQUE4QjtFQUErQzs7O0FBQzdFO0VBQThCO0VBQXdDOzs7QUFFdEU7RUFBZ0Q7RUFBd0I7OztBQUN4RTtFQUFnRDtFQUF3Qjs7O0FBQ3hFO0VBQWdEO0VBQXdCOzs7QUFDeEU7RUFBZ0Q7RUFBd0I7OztBQUN4RTtFQUFnRDtFQUF3Qjs7O0FBQ3hFO0VBQWdEO0VBQXdCOzs7QUFDeEU7RUFBZ0Q7RUFBd0I7OztBQUN4RTtFQUFnRDtFQUF3Qjs7O0FBc0JwRTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUtKO0VBQ0k7RUFDQTs7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQWdCSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBZ0JKO0VBSUk7RUFJQTs7QUFFQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFFQTs7QUFtQko7RUFDSTs7QUFNSjtFQUNJOztBQUtKO0VBQ0k7OztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7O0FBd0JSO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQVFKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBTUo7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQVVKO0VBQ0k7RUFFQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7O0FBYVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFPSjtFQUNJOztBQUVBO0VBQ0k7OztBQU9SO0VBQ0k7OztBQUdKO0VBQ0k7OztBQVFKO0VBQ0k7RUFDQTtFQUNBOztBQU1BO0VBQ0k7OztBQVFSO0VBQ0k7OztBQzF4Qko7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQU1BO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7O0FBS0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU1BO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQVFKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7O0FBWUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBSUo7RUFDSTs7QUFRUjtFQUNJOztBQVFKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQU1KO0VBQ0k7RUFDQTtFQUNBOztBQVdKO0VBRUk7OztBQ2pJUjtFQUEwQjs7O0FBVzFCO0VBQXVDOzs7QUFHdkM7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBdUI7OztBQUV2QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFlQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFBcUM7OztBQUNyQztFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7QUFBQTtJQUVJOzs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFRQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFPSjtFQUNJOzs7QUFJSjtFQUNJO0VBQ0E7OztBQUVKO0VBQWtCOzs7QUFHbEI7RUFHSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBVUE7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQXVCOzs7QUFFdkI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFLQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFBNEI7OztBQUM1QjtFQUNJO0VBQ0E7RUFDQTtFQUdBOzs7QUFhSjtFQUNJO0VBS0E7RUFDQTtFQUNBOzs7QUFHSjtFQUFxQjs7O0FBQ3JCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFTSjtFQUNJO0VBQ0E7OztBQU9KO0VBQ0k7SUFDSTtJQUNBO0lBQ0E7O0VBRUo7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUF5QlI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVFKO0VBQ0k7OztBQWlCSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBTUE7RUFDQTtFQUlBO0VBQ0E7OztBQVlKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0F2RGxXQTtFQUF1QjtFQUFZOztBQUNuQztFQUE2Qjs7QUFDN0I7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDMEM7O0FBQzFDO0VBQW1DOzs7QXVEOFh2QztFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0VBRUk7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFlSjtFQUNJOzs7QUFhSjtFQUNJOzs7QUFrQko7RUFDSTs7O0FBYUo7RUFPSTs7O0FBWUo7RUFDSTs7O0FDdmZKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQU9KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7OztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU1BO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFBSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQVk7OztBQUdoQjtFQUNJO0VBQ0E7O0FBRUE7RUFBWTs7O0FBSWhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJQTtFQUFVOztBQUNWO0VBQVk7OztBQUloQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7RUFDQTs7QUFFQTtFQUF1Qjs7QUFDdkI7RUFBNkI7O0FBQzdCO0VBQ0k7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUdBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBOztBQUVBO0VBQU07RUFBYTs7O0FBR3ZCO0VBQ0k7SUFBb0I7OztBQUl4QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FDeE5KO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0VBR0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7SUFDRTs7O0FBSUo7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBaUJBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQVdFOzs7QUFHRjtBQUFBO0VBRUU7OztBQUdGO0FBQ0E7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0lBQ0U7OztBQUlKO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQ3RXRjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBS0E7RUFJQTtFQUVBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBS0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtFQUVrQzs7O0FBS2xDO0VBQWlDOzs7QUFLakM7RUFDSTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQW1ESjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBT0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBU0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBR0k7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUVBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU1BO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtJQUNJO0lBQ0E7OztBQUlSO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFJSjtFQUNJOzs7QUFHSjtFQUNJO0lBQ0k7SUFDQTs7O0FBSVI7RUFDSTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBT0o7QUFBQTtBQUFBO0VBR0k7OztBQUdKO0FBQUE7QUFBQTtFQUdJOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTs7O0FBR0o7QUFBQTtBQUFBO0VBR0k7OztBQUdKO0VBQ0k7SUFBNkI7OztBQW1CakM7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUdJO0lBQXlCOztFQUN6QjtJQUErQzs7O0FBd0JuRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBT0E7RUFDQTtFQUlBOzs7QUFRSjtFQUNJOzs7QUFRSjtBQUFBO0FBQUE7RUFHSTtFQUNBO0VBQ0E7RUFDQTs7O0FDN2hCSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFVQTtFQUVBOztBQUNBO0VBQXlCOzs7QUFJN0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBS0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7OztBQVFkO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFJQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFPSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDeEtKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBOztBQUNBO0VBQXlCOzs7QUFHN0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBS0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUtBO0VBQ0E7OztBQ2hGSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTs7QUFDQTtFQUF5Qjs7O0FBRzdCO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7OztBQzVDZDtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBOztBQUNBO0VBQXlCOzs7QUFHN0I7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUtBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFRSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBT0o7RUFDSTtFQUdBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FDakdKO0VBSUk7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBS0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7OztBQ3ZFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNJOztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQThCOzs7QUFDOUI7RUFBOEI7OztBQUM5QjtFQUE2QjtJQUFPOztFQUFjO0lBQUs7OztBQUV2RDtBQUFBO0VBQ3VDOzs7QUFFdkM7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFjQTtFQUNJOzs7QUFRSjtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7O0FBSVI7RUFDSTs7QUFFQTtFQUNJOzs7QUFJUjtFQUNJO0VBQ0E7RUFNQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFJQTs7QUFuQlI7QUFzQkk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBT0E7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQU1BOzs7QUFJUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQWdFOzs7QUFFaEU7RUFDSTtFQUVBO0VBQ0E7OztBQVFKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQU1BO0VBTUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSSxPM0x4TUM7RTJMeU1EO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUlBO0VBQ0k7O0FBT2hCO0VBQ0k7RUFDQTtFQUNBOzs7QUFRUjtBQUFBO0FBQUE7RUFHSSxPM0wvTFM7O0EyTGlNVDtBQUFBO0FBQUE7RUFDSSxrQjNMN0VXOzs7QTJMd0ZuQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTs7QUFHQTtFQUFZOzs7QUFHaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTtFQUF1Qzs7QUFFakQ7RUFDSTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQVU7RUFBdUM7OztBQUtyRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDSTtFQUVKO0VBQ0E7RUFDQTtFQUNBO0VBR0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUd1Qjs7O0FBRzNCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVFKO0FBQUE7QUFBQTtFQUdJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFHdUI7OztBQU8zQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBeEJKO0lBd0I4Qzs7O0FBRTFDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUFVO0VBQWdCOztBQUUxQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOztBQUNWO0VBQVc7O0FBSWY7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7O0FBTVI7RUFDSTtJQUFXOztFQUNYO0lBQVc7OztBQUdmO0VBQ0k7RUFDQTs7QUFFQTtFQUFVOzs7QUFHZDtFQUNJO0lBQW9DOzs7QUFLeEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTs7QUFDQTtFQUF1Qjs7QUFDdkI7RUFBNkI7O0FBQzdCO0VBQTZCO0VBQXFDOztBQUNsRTtFQUFtQzs7O0FBSW5DO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBLE8zTG5oQks7RTJMb2hCTDs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0ksWTNML2FPOztBMkxtYmY7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7O0FBT3BCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdSO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtJQUNJO0lBQ0E7O0VBRUo7SUFDSTtJQUNBOzs7QUFHUjtFQUNJO0lBQ0k7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFRUjtFQUNJO0VBQ0E7OztBQVNKO0FBQUE7RUFFSTs7O0FBdUNBO0FBQUE7QUFBQTtFQUNJO0VBQ0E7O0FBRUo7QUFBQTtBQUFBO0VBQ0k7O0FBRUo7QUFBQTtBQUFBO0VBQ0k7O0FBRUo7QUFBQTtBQUFBO0VBQ0k7RUFDQTs7QUFLSjtBQUFBO0FBQUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFFSTtFQUNBOztBQUVKO0FBQUE7QUFBQTtFQUNJOztBQUVKO0FBQUE7QUFBQTtFQUFpQjs7QUFHakI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBRUk7O0FBRUo7QUFBQTtBQUFBO0VBQ0k7O0FBS0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBUUk7RUFDQTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFFSTs7QUFFSjtBQUFBO0FBQUE7RUFDSTs7QUFJSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFZSTs7QUFFSjtBQUFBO0FBQUE7RUFDSTtFQUNBOztBQUVKO0FBQUE7QUFBQTtFQUNJO0VBQ0E7O0FBSUo7QUFBQTtBQUFBO0VBQ0k7O0FBRUo7QUFBQTtBQUFBO0VBQ0k7RUFDQTs7QUFFSjtBQUFBO0FBQUE7RUFBbUQ7O0FBQ25EO0FBQUE7QUFBQTtFQUErQzs7QUFDL0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBRUk7O0FBRUo7QUFBQTtBQUFBO0VBQXNDO0VBQXFDOztBQUkzRTtBQUFBO0FBQUE7RUFBMkU7O0FBQzNFO0FBQUE7QUFBQTtFQUErRjs7QUFDL0Y7QUFBQTtBQUFBO0VBQTRGOztBQUM1RjtBQUFBO0FBQUE7RUFBMkM7O0FBQzNDO0FBQUE7QUFBQTtFQUF1RTs7QUFDdkU7QUFBQTtBQUFBO0VBQTJEOztBQUMzRDtBQUFBO0FBQUE7RUFBbUM7OztBQVl2QztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFBb0I7O0FBRXBCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlSO0VBQW9DOzs7QUFFcEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOzs7QUFHbEI7RUFBbUI7OztBQUVuQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFxQjtFQUFXO0VBQW1COzs7QUFDbkQ7RUFBcUI7RUFBaUI7RUFBaUI7OztBQUN2RDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFNO0VBQWM7RUFBYTs7O0FBRXJDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtJQUNJO0lBQ0E7O0VBRUE7SUFBTTs7O0FDNWlDZDtFQUNJO0VBQ0E7RUFRQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQVNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTs7QUFFQTtFQUNJOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTs7QUFSUjtFQVdJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBS1o7RUFDSTs7QUFHSTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUtaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFJSjtFQUNJOztBQUtaO0VBQ0k7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7O0FBSVI7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUlSO0VBQ0k7O0FBR0o7RUFDSTs7QUFNWjtFQUNJOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBTVI7RUFDSTtFQUNBOztBQUlSO0VBQ0k7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBS1o7RUFDSTs7QUFHSjtFQUNJOztBQUVBO0VBQ0k7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0lBQU87O0VBQ1A7SUFBTzs7O0FBTVg7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFLUjtFQUNJOztBQUVBO0VBQ0k7RUFDQTs7QUFTWjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtaO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7OztBQUtKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTs7QUFHSjtFQUNJOzs7QUFJUjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFPSjtFQUNJOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBWUo7RUFDSTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBO0VBRVE7QUFBQTtJQUVJO0lBQ0E7O0VBR0o7QUFBQTtJQUVJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7O0FDdGdCWjtBQUFBO0FBQUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7QUFBQTtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtBQUFBO0FBQUE7RUFDSTtFQUNBOztBQUVKO0FBQUE7QUFBQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxPQ2xCQTtFRG1CQTtFQUNBOzs7QUFJUjtFQUNJLFlBeENlO0VBeUNmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsT0F4RGU7RUF5RGY7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxrQkN0REE7O0FEd0RBO0VBUko7SUFTUTtJQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQ3BFQTs7QURzRUE7RUFDSSxZQXBGTztFQXFGUDtFQUNBO0VBQ0EsT0MxRUo7RUQyRUk7O0FBRUE7RUFBZ0I7O0FBRWhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBc0I7O0FBRXRCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBSVI7RUFDSTtFQUNBOztBQUlSO0VBQTJCOztBQUUzQjtFQUNJO0VBQ0E7RUFDQSxPQ2xIUjtFRG1IUTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOztBQUVWO0VBQ0k7RUFDQTs7QUFDQTtFQUVJO0VBQ0E7O0FBU3JCO0VBQ0M7O0FBRUQ7RUFDQztFQUNBO0VBQ0E7O0FBQ0E7RUFDQzs7QUFHRjtFQUNDO0VBQ0E7O0FBR0E7RUFDQztFQUNBOztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0M7RUFDQTs7QUFJSDtFQUNDOztBQUlEO0VBQ0M7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFJOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVE7O0FBQ1I7RUFBUTs7O0FBSWhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQSxZQ3hPSjs7QUQwT0k7RUFDSSxZQS9QRztFQWdRSCxPQzVPUjtFRDZPUTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNXOzs7QUFPL0I7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUFnQjs7QUFDaEI7RUFBZ0I7O0FBR3BCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZ0I7O0FBQ2hCO0VBQWdCOztBQUNoQjtFQUFnQjs7QUFDaEI7RUFBZ0I7O0FBQ2hCO0VBQ0k7RUFDQTtFQUNBOzs7QUFNUjtBQUFBO0VBRUk7RUFDQTtFQUNBOztBQUVKO0VBQTJCOztBQUMzQjtFQUNJO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBLFlDOVVBO0VEK1VBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFQSjtJQVFRO0lBQ0E7Ozs7QUFJUjtFQUNJO0VBQ0EsT0NyV0k7RURzV0o7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFFSTtFQUNOO0VBQ007RUFDQTs7QUFFQTtFQUFtQzs7QUFHdkM7RUFFSTtFQUNBO0VBQ0E7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7O0FBR0k7RUFDSTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQVU7O0FBSWxCO0VBQ0k7RUFDQTtFQUNBO0VBQ0Esa0JDeFpBO0VEeVpBO0VBQ0E7RUFDQTtFQUNBLE9BL2FXO0VBZ2JYO0VBQ0E7RUFDQTs7QUFFTjtFQUNDOztBQUdEO0VBQ0MsT0F6YmdCO0VBMGJoQjs7O0FBS0g7RUFDSTtFQUNBO0VBQ0Esa0JDL2FJO0VEZ2JKOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBWTs7O0FBSXBCO0VBRUksWUM5Ykk7RUQrYko7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUFnQjs7QUFFaEI7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFBVzs7QUFFWDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVE7RUFBb0I7O0FBQzVCO0VBQVE7O0FBR1o7RUFFSSxZQTNmVztFQTRmWDtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFTOztBQUVUO0VBQ0k7RUFDQTtFQUNBOzs7QUFLWjtFQUNJO0VBQ0EsT0M5Zkk7RUQrZko7RUFDQTtFQUNBLFlBL2dCZTtFQWdoQmY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBc0I7O0FBQ3RCO0VBQ0ksT0M1Z0JBO0VENmdCQTs7QUFHSjtFQUFROztBQUVSO0VBQ0k7RUFDQTs7QUFDQTtFQUVJO0VBQ0E7O0FBSVI7RUFDSTtFQUNBOztBQUNBO0VBRUk7RUFDQTs7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJLE9DMWZLOztBRDJmTDtFQUFVOzs7QUFJbEI7RUFDSTtFQUNBO0VBQ0E7OztBQUlBO0VBQWM7O0FBRWQ7RUFFSTs7QUFDQTtFQUFXOztBQUVmO0VBRUk7O0FBQ0E7RUFBVzs7O0FBUVg7QUFBQTtFQUFXOztBQUlYO0FBQUE7RUFBVzs7O0FBSW5CO0VBQWtCOzs7QUFHZDtFQUNJO0VBQ0E7RUFDQTtFQUNBLE9DOWxCQTtFRCtsQkE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVc7O0FBQ1g7RUFBVzs7O0FBS2Y7RUFESjtJQUVRO0lBQ0E7Ozs7QUFJUjtFQUNJO0VBQ0E7O0FBRUE7RUFBTTtFQUFhO0VBQWM7O0FBQ2pDO0VBQU07RUFBa0I7OztBQUl4QjtFQUEyQjs7QUFFM0I7RUFDSTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTs7O0FBSVI7RUFDSTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJUjtFQUNJLGtCQXZxQmU7RUF3cUJmO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxPQTVyQk87RUE2ckJQOztBQUlSO0VBQW9CLFlBNXJCTDs7QUE4ckJmO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQW1COztBQUNuQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0FBQUE7RUFFSTs7QUFDQTtBQUFBO0VBQU07O0FBS1Y7RUFDSTtFQUNBOztBQUNBO0VBQXVCO0VBQVk7O0FBSTNDO0FBQUE7RUFFSTtFQUNBOztBQUdKO0VBQXVCOztBQUN2QjtFQUE0QixPQTF1QmI7O0FBNHVCZjtFQUNJO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJLFlBM3ZCVztFQTR2Qlg7RUFDQTtFQUNBLE9DMXVCQTtFRDJ1QkE7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBc0I7O0FBRXRCO0VBQ0k7O0FBQ0E7RUFBVSxPQ3B2QmQ7O0FEd3ZCSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOztBQUVWO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUtaO0VBQWlCOzs7QUFHaEI7RUFDQztFQUNBO0VBQ0E7OztBRXZ4QkY7RUFNSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7SUFDSTtJQUNBO0lBQ0E7OztBQUlSO0VBQWtCOzs7QUFFbEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFJOztBQUNKO0VBQWU7O0FBRWY7QUFBQTtFQUVJO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBVUo7RUFDSTtFQUNBOzs7QUFVSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUErQko7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0lBQU87O0VBQ1A7SUFBTzs7O0FBS1g7RUFDSTtJQUFzQjs7O0FBTTFCO0VBQXVCOzs7QUFFdkI7RUFBeUI7OztBQUl6QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7QUFDVjtFQUFXOzs7QUFPZjtBQUFBO0FBQUE7QUFBQTtFQUcrQzs7O0FBRS9DO0VBQXlDOzs7QUFDekM7RUFBMEM7OztBQUMxQztFQUF5QztFQUFZOzs7QUFFckQ7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQXdCOzs7QUFLeEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7O0FBRVY7RUFBZTtFQUFnQjs7O0FBT25DO0VBQ0k7RUFDQTtFQUNBOzs7QUFvQko7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBc0JKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFFQTs7QUFLSjtFQUFpQjs7O0FBb0JyQjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVVKO0VBQW1COzs7QUFFbkI7RUFBeUI7OztBQUV6QjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7QUFFVjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOzs7QUFTbEI7RUFDSTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBTUE7RUFRQTtFQWVBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUFnQzs7O0FBRWhDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFTQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXdCOzs7QUFFeEI7RUFBdUI7RUFBZTs7O0FBRXRDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFlOzs7QUFHbkI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTtFQUFxQjs7O0FBUW5DO0VBQW9COzs7QUFDcEI7RUFBc0I7OztBQVl0QjtFQXNCSTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RUFFSjtJQUFrQzs7RUFFbEM7SUFDSTs7RUFJSjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBRUE7SUFBVTtJQUFxQjs7RUFHbkM7SUFDSTtJQUNBOztFQUtKO0lBQ0k7O0VBV0o7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUVBO0lBQVU7O0VBSWQ7SUFBc0Q7OztBQVUxRDtFQUF3Qjs7O0FBRXhCO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7O0FBUWQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUErQzs7O0FBRS9DO0VBQ0k7SUFBMEI7OztBQUc5QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQThDOzs7QUFJOUM7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOztBQUVWO0VBQU87O0FBRVA7RUFBMEI7OztBQUc5QjtFQUFvRDs7O0FBRXBEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQWtEOzs7QUFJbEQ7RUFDSTtFQUNBO0VBQ0E7OztBQVlKO0VBQ0k7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTs7QUFFQTtFQUtJOzs7QUFJUjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7SUFDSTs7RUFDQTtJQUNrQjs7O0FBSTFCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTs7O0FBR0o7RUFDSTtFQVdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFnQzs7O0FBRWhDO0VBQ0k7RUFDQTs7O0FBRUo7RUFBd0M7OztBQUV4QztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7QUFFVjtFQUFlOzs7QUFjbkI7RUFDSTtJQUNJO0lBQ0E7O0VBRUo7SUFDSTtJQUNBOzs7QUFHUjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7SUFBa0I7OztBQVV0QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZTtFQUFnQjs7O0FBR25DO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOztBQUNWO0VBQWlCOztBQUdqQjtFQUFrQzs7O0FBR3RDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBaUM7OztBQUNqQztFQUFpQzs7O0FBRWpDO0VBQ0k7RUFDQTtFQUNBOzs7QUFTSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBZ0JKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQXlCOzs7QUFDekI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0lBQWtCOztFQUNsQjtJQUNJO0lBQ0E7O0VBS0o7QUFBQTtBQUFBO0lBR0k7SUFDQTs7RUFNSjtJQUFvQjtJQUFnQjs7O0FBWXhDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZTs7QUFFZjtFQUFXOztBQUVYO0VBQ0k7RUFDQTs7O0FBSVI7RUFDSTtFQUNBOztBQUVBO0VBQWU7O0FBRWY7RUFBVTs7O0FBR2Q7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFBZTs7QUFFZjtFQUFVOzs7QUFNZDtFQUNJO0VBQ0E7O0FBRUE7RUFBVTs7QUFDVjtFQUFXOzs7QUFFZjtFQUEwRDs7O0FBQzFEO0VBQTREOzs7QUFNNUQ7RUFDSTtFQUNBOztBQUVBO0VBQVU7O0FBQ1Y7RUFBVzs7O0FBRWY7RUFBeUQ7OztBQUN6RDtFQUEyRDs7O0FBRTNEO0VBQ0k7SUFBbUI7OztBQUd2QjtFQUNJO0VBQ0E7OztBQUVKO0VBQWdDOzs7QUFPaEM7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFNdkI7RUFDSTtFQUNBOzs7QUMxeUNKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUE4QjtFQUFlO0VBQXdCOzs7QUFDckU7RUFBdUI7RUFBZTtFQUFnQjs7O0FBQ3REO0VBQ0k7RUFBZ0I7RUFBYztFQUM5QjtFQUFlOzs7QUFFbkI7QUFBQTtFQUVJO0VBQWdCO0VBQ2hCO0VBQWU7OztBQUVuQjtFQUErQjtFQUFnQjs7O0FBRS9DO0FBQ0E7RUFDSTtFQUNBO0VBQWM7RUFDZDtFQUFlO0VBQ2Y7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFBZTtFQUFxQjtFQUNwQztFQUNBO0VBQ0E7OztBQUVKO0VBQWdCO0VBQWlCO0VBQWtCOzs7QUFDbkQ7RUFDSTtFQUFlO0VBQVU7RUFDekI7RUFBcUI7RUFBb0I7OztBQUU3QztFQUNJO0VBQXNCO0VBQXFCO0VBQzNDO0VBQWE7RUFDYjtFQUFXO0VBQXlCO0VBQ3BDO0VBQWdCO0VBQ2hCOzs7QUFFSjtFQUFtQjs7O0FBQ25CO0VBQ0k7RUFBa0I7RUFDbEI7OztBQUVKO0VBQ0k7RUFBaUI7RUFDakI7RUFDQTtFQUFpQjs7O0FBRXJCO0VBQ0k7RUFBZ0I7RUFDaEI7RUFDQTtFQUFlO0VBQXlCO0VBQ3hDOzs7QUFFSjtFQUFZO0VBQW9COzs7QUFDaEM7RUFDSTtFQUFvQjtFQUFRO0VBQzVCO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBaUQ7OztBQUNqRDtFQUFpRDs7O0FBQ2pEO0VBQWlEOzs7QUFDakQ7RUFDSTtFQUFhO0VBQ2I7RUFBVztFQUFnQjs7O0FBRS9CO0VBQTRDO0VBQXFCOzs7QUFDakU7RUFBNEM7OztBQUM1QztFQUFvQzs7O0FBQ3BDO0VBQXdDOzs7QUFDeEM7RUFBMkM7RUFBcUI7OztBQUVoRTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXdCO0VBQWU7RUFBd0I7OztBQUMvRDtFQUF5QjtFQUFpQjtFQUFrQjs7O0FBQzVEO0VBQXlCO0VBQW1COzs7QUFDNUM7RUFBNkM7OztBQUM3QztFQUE2Qzs7O0FBQzdDO0FBQUE7QUFFQTtFQUFrQzs7O0FBRWxDO0FBQ0E7RUFBbUI7RUFBb0I7RUFBaUI7OztBQUN4RDtFQUF3Qzs7O0FBQ3hDO0VBQXdDO0VBQWdCOzs7QUFDeEQ7RUFBd0M7OztBQUN4QztFQUE2Qzs7O0FBQzdDO0VBQXVDOzs7QUNwSXZDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQTtBQUNBO0VBQWtCO0VBQW9CO0VBQWU7RUFBeUI7OztBQUM5RTtFQUNJO0VBQWE7RUFBYztFQUMzQjtFQUE0QjtFQUFrQjtFQUM5QztFQUFlO0VBQXFCO0VBQ3BDO0VBQWlCO0VBQVk7RUFDN0I7OztBQUVKO0FBQUE7RUFDMkM7RUFBWTtFQUF1Qjs7O0FBRTlFO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFBb0I7RUFBZ0I7RUFDcEM7OztBQUVKO0VBQXdCO0VBQWM7OztBQUN0QztFQUE0Qzs7O0FBRTVDO0VBQ0k7RUFBb0I7RUFBYTtFQUFXO0VBQVc7RUFDdkQ7RUFBa0I7RUFBcUI7RUFDdkM7RUFBYztFQUFlO0VBQXdCOzs7QUFFekQ7RUFBd0I7RUFBVzs7O0FBQ25DO0VBQ0k7RUFBZTtFQUFxQjtFQUNwQztFQUFtQjtFQUFjO0VBQWtCO0VBQ25EO0VBQWlCO0VBQWdCO0VBQWtCOzs7QUFFdkQ7RUFBZ0M7RUFBcUI7OztBQUVyRDtBQUNBO0VBQ0k7RUFBZTtFQUF3QjtFQUFzQjtFQUM3RDtFQUFrQjtFQUFvQjtFQUN0QztFQUEyQjs7O0FBRS9CO0VBQW9CO0VBQWU7RUFBcUI7RUFBVTs7O0FBQ2xFO0VBQXFCOzs7QUFDckI7RUFBd0I7RUFBcUI7OztBQUM3QztFQUEwQztFQUFjOzs7QUFDeEQ7RUFBdUI7OztBQUN2QjtFQUFzQjtFQUFnQjtFQUFjOzs7QUFFcEQ7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0VBQWdDOzs7QUFDaEM7QUFBQTtBQUVBO0VBQTBCOzs7QUFDMUI7RUFBb0I7RUFBZ0I7OztBQUNwQztFQUNJO0VBQWdCO0VBQWM7RUFBaUI7RUFDL0M7RUFBa0I7RUFBeUI7OztBQUUvQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0VBR1c7RUFBbUI7RUFBZ0I7RUFBa0I7RUFBcUI7OztBQUNyRjtBQUFBO0FBQUE7QUFHQTtFQUFzQjtFQUFlO0VBQXFCO0VBQVU7OztBQUVwRTtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQWM7RUFBa0I7RUFDaEM7RUFDQTs7O0FBRUo7RUFDSTtFQUFjO0VBQXVCO0VBQ3JDO0VBQXNCO0VBQW9CO0VBQzFDOzs7QUFHSjtBQUNBO0VBQ0k7RUFBZTtFQUFxQjtFQUNwQztFQUFnQjtFQUFhO0VBQVk7OztBQUU3QztBQUFBO0VBQzRDOzs7QUFFNUM7RUFDSTtFQUFlO0VBQXFCO0VBQVc7RUFDL0M7RUFBbUI7RUFBcUI7RUFDeEM7RUFBc0M7OztBQUUxQztFQUNJO0VBQXNCO0VBQXFCO0VBQVU7RUFDckQ7RUFBbUI7RUFBYztFQUNqQztFQUFxQjtFQUFnQjs7O0FBRXpDO0VBQXdCOzs7QUFDeEI7RUFBNEI7RUFBZTtFQUFxQjtFQUFVOzs7QUFDMUU7QUFBQTtBQUFBO0FBR0E7RUFBZ0U7OztBQzVIaEU7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBRUE7OztBQU9SO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFnQkE7O0FBRUE7RUF0Qko7SUF1QlE7Ozs7QUFRUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFJQTtFQUNBOztBQUVBO0VBZko7SUFnQlE7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUdJOzs7QUFLSjtFQUNJOzs7QUFVSjtBQUFBO0FBQUE7RUFHSTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOzs7QUFRUjtFQUNJO0VBQ0E7RUFDQTtFQUdBOztBQXlCQTtFQUNJOztBQVVKO0FBQUE7RUFFSTs7QUFjSjtFQUNJOzs7QUFPUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7O0FBRUE7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQTNCSjtJQTRCUTs7OztBQU1SO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7OztBQVNSO0VBQ0k7RUFDQTtFQUNBOzs7QUFjSjtFQU1JOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFFQTs7QUFNSjtFQUNJOzs7QUN4UlI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFnQzs7O0FBQ2hDO0VBQWdDOzs7QUFDaEM7RUFBZ0M7OztBQUNoQztFQUFnQzs7O0FBQ2hDO0VBQWdDOzs7QUFDaEM7RUFBZ0M7OztBQUNoQztFQUFnQzs7O0FBQ2hDO0VBQWdDOzs7QUFDaEM7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFJSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFJSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUN2Wko7QUFBQTtBQUdBO0FBQ0E7QUFBQTtBQUVBO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtFQUNJO0FBQ0E7QUFBQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBTUEsWUFDSTs7O0FBWVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUF5Qjs7O0FBQ3pCO0VBQWdDOzs7QUFFaEM7RUFDSTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0VBRUE7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQWtDO0VBQWE7OztBQUUvQztBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBcUM7OztBQUVyQztBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUE0Qjs7O0FBQzVCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBdUM7OztBQUV2QztBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFBbUI7OztBQUNuQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUEyQjs7O0FBRTNCO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7RUFFSTtBQUNBO0FBQUE7QUFBQTtFQUdBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7SUFDSTtJQUNBO0lBQ0E7O0VBRUo7SUFDSTtJQUNBO0lBQ0E7OztBQUdSO0VBQ0k7OztBQUVKO0VBQ0k7SUFBcUI7OztBQUd6QjtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQU1BO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtJQUFLOzs7QUFFVDtFQUNJO0lBQWdEOzs7QUFHcEQ7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFHSjtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDSTtJQUFjO0lBQXVCOztFQUNyQztJQUFtQjs7O0FBRXZCO0VBQ0k7SUFBYztJQUF1Qjs7RUFDckM7SUFBbUI7O0VBQ25CO0lBQW9CO0lBQWlCOztFQUNyQztJQUFzQjtJQUFjO0lBQWE7O0VBQ2pEO0lBQW1CO0lBQVc7SUFBWTtJQUFhOzs7QUFHM0Q7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUEwQjs7O0FBQzFCO0VBQStCO0VBQWdCO0VBQWdCOzs7QUFDL0Q7RUFBcUI7RUFBaUI7OztBQUN0QztFQUFxQjs7O0FBRXJCO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBUUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUVBO0VBQ0k7OztBQUdKO0FBQ0E7RUFDSTtBQUNBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBWUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtJQUFxQjs7O0FBR3pCO0FBQUE7QUFBQTtBQUdBO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUdBO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWVBO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBbUJBO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBbUJBO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtFQUF5RDs7O0FBQ3pEO0VBQ0k7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDSTs7O0FBRUo7RUFDSTs7O0FBR0o7RUFDSTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFRQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUE2Qjs7O0FBQzdCO0VBQTZCOzs7QUFDN0I7RUFBNkI7OztBQUM3QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQTZCOzs7QUFDN0I7RUFBNkI7OztBQUM3QjtFQUE2Qjs7O0FBQzdCO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFBNkI7OztBQUM3QjtFQUE2Qjs7O0FBQzdCO0FBQ0E7RUFBbUI7RUFBYTtFQUFjOzs7QUFFOUM7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBd0JBO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBK0I7OztBQUMvQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUE2QjtFQUFxQjs7O0FBR2xEO0VBQW9CO0VBQWtCO0VBQWU7RUFBcUI7RUFBVzs7O0FBQ3JGO0VBQW9CO0VBQWlCOzs7QUFFckM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFJNkM7OztBQUU3QztBQUFBO0FBQUE7QUFHQTtFQUFtQztFQUFnQjs7O0FBRW5EO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBR0o7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQW1DOzs7QUFFbkM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBRUE7RUFBcUI7OztBQUNyQjtFQUF1Qzs7O0FBQ3ZDO0VBQTBDOzs7QUFFMUM7QUFBQTtBQUFBO0FBR0E7QUFBQTtFQUVJOzs7QUFFSjtBQUFBO0FBRUE7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFBZ0M7OztBQUNoQztFQUFtQzs7O0FBQ25DO0VBQTJEOzs7QUFDM0Q7RUFBOEQ7OztBQUU5RDtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBO0FBQUE7RUFFSTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUdBO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0FBQ0E7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7RUFJQTtFQUNBOzs7QUFFSjtFQUNJO0lBQW9COzs7QUFFeEI7QUFBQTtBQUFBO0FBR0E7RUFBbUI7OztBQUNuQjtFQUF5Qjs7O0FBQ3pCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7RUFHQTs7O0FBRUo7RUFBMEI7RUFBK0M7QUFDekU7RUFBMEI7RUFBNEM7OztBQUN0RTtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQXlCOzs7QUFDekI7RUFDSTtFQUNBOzs7QUFFSjtFQUF5QjtFQUFpQjtFQUFrQjtFQUF1Qzs7O0FBQ25HO0VBQXlCO0VBQW1CO0VBQW1CO0VBQW1DOzs7QUFDbEc7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBR0E7RUFBbUI7OztBQUNuQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFBb0M7OztBQUNwQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtFQUUyQzs7O0FBRTNDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtFQUVJO0VBQ0E7RUFDQTs7O0FBRUo7QUFDQTtFQUF3Qjs7O0FBRXhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7RUFFSTtFQUNBOzs7QUFFSjtBQUFBO0VBQ2tEOzs7QUFDbEQ7RUFDSTtFQUNBOzs7QUFFSjtBQUNBO0VBQWtEOzs7QUFFbEQ7QUFDQTtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7OztBQUdKO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQWtDO0VBQWU7OztBQUNqRDtFQUNJO0VBQ0E7RUFDQTtBQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtBO0VBQ0E7OztBQUVKO0FBQ0k7QUFBQTtBQUFBO0VBR0E7SUFBa0I7O0VBQ2xCO0lBQWdDOztFQUNoQztJQUFnQjs7O0FBR3BCO0VBQ0k7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0VBSUE7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUF5QjtFQUFlOzs7QUFFeEM7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFFQTtFQUF5Qzs7O0FBRXpDO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtFQUErQztFQUFtQjtFQUFlOzs7QUFDakY7RUFBd0M7RUFBZ0I7OztBQUN4RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7RUFBdUQ7OztBQUN2RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQXdGOzs7QUFFeEY7QUFDQTtBQUFBO0FBQUE7QUFHQTtFQUFnQjtFQUFnQjs7O0FBRWhDO0VBQWM7RUFBZTtFQUF3QjtFQUFVOzs7QUFDL0Q7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFDQTtFQUFtQztFQUFnQjs7O0FBQ25EO0VBQW1CO0VBQWU7RUFBd0I7RUFBVTs7O0FBQ3BFO0VBQW1CO0VBQWlCOzs7QUFDcEM7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQTRCOzs7QUFFNUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtFQUNJO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0VBSUE7OztBQUVKO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQXFDO0VBQWU7OztBQUNwRDtFQUFxQzs7O0FBQ3JDO0FBQ0k7QUFBQTtBQUFBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBRUE7RUFDSTtJQUNJO0lBQ0E7O0VBRUo7SUFBeUM7OztBQUc3QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0k7QUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUdBO0FBQUE7RUFFSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQWdCO0VBQWU7RUFBVztFQUF5Qjs7O0FBQ25FO0VBQW9CO0VBQWE7OztBQUNqQztFQUFrQjs7O0FBQ2xCO0VBQTBCOzs7QUFDMUI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFBMEI7OztBQUMxQjtFQUFpQjtFQUFpQjtFQUFtQjs7O0FBQ3JEO0VBQWtCO0VBQWlCO0VBQW1COzs7QUFDdEQ7RUFBMEI7OztBQUMxQjtFQUFtQjtFQUFpQjtFQUFtQjs7O0FBQ3ZEO0VBQTJCOzs7QUFFM0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUVBO0VBQXlCOzs7QUFFekI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQWlDOzs7QUFFakM7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFpQzs7O0FBQ2pDO0VBQTRDOzs7QUFDNUM7RUFBa0Q7OztBQUNsRDtFQUNJO0VBQ0E7OztBQUVKO0VBQXlCO0VBQXVCOzs7QUFFaEQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFpQzs7O0FBQ2pDO0VBQTRCOzs7QUFDNUI7RUFBb0M7RUFBK0M7OztBQUNuRjtFQUFtQztFQUFnQjs7O0FBQ25EO0VBQXVCO0VBQWM7OztBQUNyQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQTJCOzs7QUFDM0I7RUFBZ0M7OztBQUNoQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDSTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNBOzs7QUFtQko7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQVNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUFvQzs7O0FBQ3BDO0VBQXlDO0VBQXNCO0VBQWE7RUFBYzs7O0FBRTFGO0FBQ0k7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0E7RUFRQTtBQUNBO0FBQUE7QUFBQTtFQUdBOzs7QUFFSjtBQUFBO0VBQzJCOzs7QUFZM0I7QUFBQTtBQUVBO0VBQXdDOzs7QUFFeEM7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNJO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXdDOzs7QUFDeEM7QUFBQTtBQUVBO0VBQWtCOzs7QUFDbEI7QUFDQTtBQUFBO0FBQUE7RUFFMkI7OztBQUMzQjtFQUF3Qzs7O0FBQ3hDO0VBQWdEOzs7QUFDaEQ7QUFDQTtBQUFBO0FBQUE7RUFFc0Q7OztBQUN0RDtBQUNBO0VBQWdEOzs7QUFhaEQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUE2Qko7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBVUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUE4Qjs7O0FBRTlCO0FBQUE7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBMkI7OztBQUMzQjtFQUNJO0VBQ0E7RUFDQTs7O0FBU0k7QUFBQTtFQUVJOztBQVFKO0VBQXlCOztBQUN6QjtFQUFrQjs7QUFDbEI7QUFBQTtFQUVJOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUFpQjs7O0FBU3pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0FBQUE7RUFFSTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7OztBQTRDSjtFQUNJOzs7QUFFSjtFQUNJO0VBSUE7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUdKO0FBQUE7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBOEI7OztBQU85QjtFQUFpQjs7O0FBUWpCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBV0o7RUFDSTs7O0FBRUo7RUFJSTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUdKO0FBQ0E7RUFBa0I7RUFBZTtFQUFxQjs7O0FBQ3REO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXNCO0VBQWE7RUFBYztFQUFtQjs7O0FBQ3BFO0VBQTBCO0VBQWU7RUFBVTs7O0FBRW5EO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQ0E7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0E7QUFBQTtBQUFBO0FBR0E7RUFBc0I7OztBQUV0QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUF1QjtFQUFXO0VBQWlCO0VBQWtCOzs7QUFFckU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDSTtFQUNBOzs7QUFrQ0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUFTOzs7QUFFYjtFQUEyQjtFQUFnQjtFQUFzQjs7O0FBQ2pFO0VBQXVCO0VBQWtCOzs7QUFHckM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUFxQjs7O0FBR3pCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXVCO0VBQWU7OztBQUN0QztBQUFBO0FBRUE7RUFBbUM7OztBQUNuQztFQUFtQzs7O0FBRW5DO0FBQUE7QUFFQTtFQUNJO0VBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0E7RUFDQTs7O0FBRUo7RUFDSTtJQUFtQjs7O0FBRXZCO0VBQWlCO0VBQWU7RUFBd0I7RUFBVzs7O0FBQ25FO0FBQUE7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBT0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUE2QkE7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0VBQXlCO0VBQStDO0FBQ3hFO0VBQXlCO0VBQTRDOzs7QUFDckU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtFQUF3Qjs7O0FBQ3hCO0FBQ0k7QUFBQTtBQUFBO0VBR0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUNJO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBZ0Q7OztBQUVoRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE0QkE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUE4Qjs7O0FBQzlCO0VBQ0k7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLQTs7O0FBRUo7RUFBZ0Q7RUFBZ0I7RUFBYTtFQUFjOzs7QUFDM0Y7RUFBdUI7RUFBZTtFQUF3Qjs7O0FBQzlEO0VBQTJDOzs7QUFFM0M7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFHQTtFQUFxQzs7O0FBQ3JDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhQTtFQUNJO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFPQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUNBO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7SUFBbUI7OztBQUd2QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtFQUEwQjs7O0FBQzFCO0VBQ0k7SUFBMEI7OztBQUU5QjtFQUNJO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7QUFTSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQThCOzs7QUFDOUI7RUFBMEM7OztBQUUxQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBK0I7RUFBYTtFQUFjO0VBQW1COzs7QUFDN0U7QUFDQTtFQUF5QjtFQUFnQjtFQUF1QjtFQUFpQjtFQUFrQjs7O0FBQ25HO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtFQUF5QjtFQUFnQjtFQUFxQjtFQUFtQjtFQUFtQjtFQUFtQzs7O0FBQ3ZJO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFBZ0M7RUFBZTtFQUF5Qjs7O0FBQ3hFO0VBQW9DO0VBQWE7RUFBYzs7O0FBQy9EO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQXVCO0VBQWU7RUFBeUI7OztBQUMvRDtBQUFBO0VBQ21CO0VBQWlCO0VBQWM7OztBQUNsRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7RUFDZ0M7RUFBYTs7O0FBQzdDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtBQUFBO0FBQUE7RUFHSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBRUE7QUFBQTtBQUFBO0VBR0k7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFHQTtFQUFrQzs7O0FBQ2xDO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUFnQztFQUFlO0VBQXFCOzs7QUFDcEU7RUFBb0M7RUFBYTtFQUFjOzs7QUFDL0Q7RUFBNkI7RUFBZTtFQUF3QjtFQUFVO0VBQXFCOzs7QUFDbkc7RUFBbUQ7OztBQUVuRDtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0FBQ0k7QUFBQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQThDOzs7QUFDOUM7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0VBR0k7OztBQUVKO0VBQ0k7SUFBdUM7OztBQUczQztBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNJOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0VBQ0k7RUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLQTtFQUNBOzs7QUFFSjtFQUFtRDs7O0FBRW5EO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBYUE7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBR0E7RUFBeUI7OztBQUN6QjtFQUFpQzs7O0FBRWpDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlQTtFQUNJOzs7QUFFSjtFQUNJOzs7QUFHSjtBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNJO0VBQ0E7OztBQUVKO0FBQUE7RUFFSTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtBQUNBO0FBQUE7OztBQUdKO0VBQWlDOzs7QUFDakM7RUFBNEM7OztBQUM1QztBQUNBO0VBQXFEOzs7QUFFckQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBO0FBQUE7QUFBQTtFQUVrQzs7O0FBRWxDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtFQUVxQzs7O0FBQ3JDO0FBQUE7QUFFQTtFQUF3Qzs7O0FBa0N4QztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFZOztBQUVaO0VBaEJKO0lBaUJROzs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUFTOztBQUVUO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUFRO0VBQWlCOzs7QUFFN0I7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUE4Qjs7O0FBQzlCO0VBQXNDOzs7QUFrQ3RDO0VBQTZCOzs7QUFDN0I7RUFBMkI7OztBQUMzQjtFQUEyQjs7O0FBQzNCO0VBRUk7SUFDSTtJQUNBO0lBQ0E7O0VBRUo7SUFBc0I7O0VBQ3RCO0lBQXVCOztFQU92QjtJQUEyQjtJQUFnQjtJQUF1Qjs7RUFDbEU7SUFBMkM7SUFBYTs7RUFFeEQ7SUFBdUQ7O0VBRXZEO0lBQTZCO0lBQXNCOztFQUNuRDtJQUEyQjs7RUFDM0I7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUdBO0lBQ0E7O0VBRUo7SUFDSTtJQUNBO0lBQ0E7SUFDQTtJQUlBOztFQUVKO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7OztBQUlSO0FBQUE7QUFBQTtBQUdBO0VBQXlCOzs7QUFFekI7QUFBQTtBQUFBO0FBR0E7RUFBMEI7OztBQUUxQjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBR0E7RUFBbUI7OztBQUNuQjtFQUEyQjs7O0FBQzNCO0VBQW1DOzs7QUFDbkM7RUFBd0I7OztBQUN4QjtFQUFrQzs7O0FBRWxDO0FBQ0E7RUFBc0I7OztBQUN0QjtFQUFnQzs7O0FBQ2hDO0VBQXdCOzs7QUFDeEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQW9DO0VBQWdCOzs7QUFDcEQ7RUFBdUI7RUFBa0I7RUFBZTtFQUFxQjtFQUFXOzs7QUFDeEY7RUFBeUI7RUFBbUI7OztBQUM1QztFQUFpQzs7O0FBQ2pDO0VBQXdCO0VBQW1COzs7QUFDM0M7RUFBZ0M7OztBQUVoQztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFpQzs7O0FBQ2pDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXVCO0VBQWlCO0VBQWlCO0VBQW1COzs7QUFDNUU7RUFBc0I7RUFBbUI7RUFBbUI7OztBQUM1RDtFQUFtQzs7O0FBQ25DO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFBdUI7RUFBb0I7OztBQUMzQztBQUFBO0FBRUE7RUFBMkI7RUFBaUI7RUFBa0I7OztBQUU5RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFPQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtBO0VBQ0E7OztBQUdKO0FBQUE7QUFFQTtFQUNJO0VBQWU7RUFBcUI7RUFDcEM7RUFBa0I7RUFDbEI7RUFBcUI7RUFDckI7RUFBbUI7RUFBbUI7OztBQUUxQztFQUFvQzs7O0FBQ3BDO0VBQXlCO0VBQWU7RUFBd0I7RUFBVTs7O0FBQzFFO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUEyQjtFQUE0Qzs7O0FBQ3ZFO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFBaUM7RUFBOEM7OztBQUMvRTtFQUFnQztFQUF1QjtFQUFxQjs7O0FBQzVFO0VBQWdDO0VBQXVCO0VBQXFCOzs7QUFDNUU7RUFBa0M7OztBQUNsQztBQUFBO0FBQUE7QUFHQTtFQUErQjs7O0FBQy9CO0VBQXVDOzs7QUFDdkM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBa0M7OztBQUNsQztFQUFzQjtFQUFrQjtFQUFpQjs7O0FBQ3pEO0VBQXVCO0VBQW1CO0VBQW9COzs7QUFFOUQ7QUFDQTtBQUFBO0FBQUE7QUFHQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0VBQW1COzs7QUFFbkI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBMEI7RUFBZTtFQUF3QjtFQUFVO0VBQWtCOzs7QUFDN0Y7RUFBMkI7RUFBbUI7RUFBa0I7OztBQUNoRTtFQUEyQjtFQUFpQjtFQUFnQjs7O0FBQzVEO0VBQTZCO0VBQWU7RUFBcUI7RUFBVzs7O0FBRTVFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQVdBO0FBQUE7RUFDNkM7RUFBZ0I7OztBQUM3RDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBMkI7OztBQUUzQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUE2Qjs7O0FBQzdCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUF3QjtFQUFtQjtFQUFnQjs7O0FBRTNEO0VBQWtCO0VBQWU7RUFBd0I7RUFBVzs7O0FBQ3BFO0VBQXdCO0VBQW1CO0VBQWdCOzs7QUFFM0Q7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQXdCO0VBQXFCOzs7QUFDN0M7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBc0I7RUFBbUI7RUFBa0I7OztBQUMzRDtFQUFzQjtFQUFtQjs7O0FBQ3pDO0VBQXNCOzs7QUFDdEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQTRDO0VBQWdCOzs7QUFDNUQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBaUM7RUFBZ0I7OztBQUVqRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFBbUI7RUFBZTtFQUF5QjtFQUFpQjs7O0FBQzVFO0VBQWlDO0VBQWlCOzs7QUFDbEQ7RUFBa0M7RUFBZ0I7OztBQUVsRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXlCO0VBQWlCO0VBQW1COzs7QUFDN0Q7RUFBaUM7OztBQUVqQztFQUFzQjtFQUFlO0VBQXdCOzs7QUFDN0Q7RUFBOEI7OztBQUM5QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7SUFBa0I7OztBQUV0QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBMkI7OztBQUMzQjtFQUFnQzs7O0FBQ2hDO0VBQXdCOzs7QUFDeEI7RUFBa0I7RUFBbUI7RUFBZ0I7OztBQUtyRDtBQUFBO0FBQUE7O0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBeUVBO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7OztBQUdSO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUFBO0FBQUE7RUFHQTs7O0FBRUo7QUFDSTtBQUFBO0FBQUE7RUFHQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtFQUNJO0VBQ0E7QUFDQTtBQUFBO0FBQUE7RUFHQTs7O0FBRUo7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtBQUNBO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0VBRUk7RUFDQTs7O0FBRUo7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0VBRUk7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUNBO0VBQ0k7RUFDQTs7O0FBRUo7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFFQTtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7SUFBSzs7RUFDTDtJQUFPOzs7QUFFWDtFQUNJO0lBQ0k7OztBQUdSO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtBQUFBO0VBRUk7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUVBO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtFQUVJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7OztBQUdKO0FBQUE7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7RUFFSTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUk7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFHQTtBQUFBO0VBRUk7OztBQUVKO0FBQUE7RUFFSTtFQUNBO0FBQ0E7QUFBQTtFQUVBO0VBQ0E7OztBQUVKO0FBQ0E7RUFDSTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBS0k7OztBQUdSO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7RUFJQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUVBO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7QUFDQTtFQUNJOzs7QUFFSjtFQUNJOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtJQUNJOzs7QUFJUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtFQUNJOzs7QUFHSjtBQUNJO0FBQUE7QUFBQTtBQUFBO0VBSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0lBQ0k7SUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0lBQ0k7OztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7SUFDQTs7O0FBSVI7RUFBcUI7OztBQUVyQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQXFCOzs7QUFDckI7RUFBNkI7OztBQUM3QjtFQUF3Qzs7O0FBQ3hDO0VBQXVDOzs7QUFFdkM7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUFxQjtFQUFlOzs7QUFDcEM7RUFBNkI7OztBQUU3QjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUE0Qjs7O0FBQzVCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQW9CO0VBQWU7RUFBd0I7OztBQUMzRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXNDO0VBQWdCOzs7QUFDdEQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBd0I7RUFBYztFQUFzQjs7O0FBQzVEO0VBQXdEOzs7QUFFeEQ7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFFQTtFQUFlO0VBQWU7RUFBd0I7RUFBa0I7OztBQUN4RTtFQUFxQjtFQUFlOzs7QUFFcEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQXlCO0VBQWlCOzs7QUFDMUM7RUFBK0I7OztBQUMvQjtFQUFzRDs7O0FBRXREO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFDQTtFQUF1Qzs7O0FBRXZDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXFDOzs7QUFDckM7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFtQzs7O0FBRW5DO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUVBO0VBQTRCOzs7QUFDNUI7RUFBeUI7OztBQUV6QjtBQUFBO0FBRUE7RUFDSTtJQUNJO0lBQ0E7O0VBRUo7SUFBcUI7O0VBQ3JCO0lBQXNCOzs7QUFHMUI7QUFBQTtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQW1DOzs7QUFFbkM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUE0Qjs7O0FBRTVCO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQThCOzs7QUFDOUI7RUFBbUM7OztBQUVuQztBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQWdDOzs7QUFDaEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBMEI7OztBQUMxQjtFQUEwQjtFQUFlOzs7QUFDekM7RUFDSTtJQUFPOztFQUNQO0lBQU87OztBQUVYO0VBQ0k7SUFBb0I7OztBQUd4QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUE2Qjs7O0FBQzdCO0VBQWtDOzs7QUFDbEM7RUFBMEI7OztBQUsxQjtBQUFBO0FBQUE7QUFJQTtBQUNBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0VBQWM7RUFBaUI7OztBQUMvQjtFQUFjO0VBQWU7RUFBeUI7RUFBVztFQUFpQjs7O0FBQ2xGO0VBQXFCO0VBQVM7OztBQUM5QjtFQUFpQjtFQUFpQjtFQUF1Qzs7O0FBQ3pFO0VBQXlCO0VBQWdCO0VBQWlCOzs7QUFFMUQ7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQWU7RUFBcUI7RUFDcEM7RUFBVztFQUFxQjs7O0FBRXBDO0VBQXNCO0VBQWU7RUFBcUI7RUFBVzs7O0FBQ3JFO0VBQXVCO0VBQWU7RUFBcUI7RUFBVzs7O0FBQ3RFO0VBQWdCO0VBQWM7RUFBaUI7OztBQUMvQztFQUFrQjs7O0FBRWxCO0FBQUE7QUFFQTtBQUFBO0FBQUE7RUFHSTtFQUNBO0VBQ0E7OztBQUVKO0VBQXdCOzs7QUFDeEI7RUFBc0I7RUFBaUI7OztBQUV2QztBQUNBO0VBQW1CO0VBQWlCOzs7QUFDcEM7RUFBMkI7OztBQUUzQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXNDOzs7QUFDdEM7RUFBaUM7OztBQUNqQztFQUF3Qjs7O0FBQ3hCO0VBQWdDOzs7QUFFaEM7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUFnRTs7O0FBQ2hFO0FBQUE7QUFFQTtFQUF3Rjs7O0FBRXhGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0VBQ0k7OztBQUdKO0FBQ0E7RUFDSTtJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBRXZCO0VBQ0k7OztBQUdKO0FBQUE7QUFFQTtFQUNJO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFFdkI7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUdKO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQ0E7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQXVCO0VBQWU7RUFBVTs7O0FBQ2hEO0VBQW9CO0VBQWlCO0VBQWlCOzs7QUFDdEQ7RUFBd0M7OztBQUN4QztFQUFxQjtFQUFpQjtFQUFtQjs7O0FBQ3pEO0VBQTZCOzs7QUFDN0I7RUFBc0I7RUFBaUI7RUFBbUI7OztBQUMxRDtFQUE4Qjs7O0FBRTlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDSTs7QUFFQTtFQUFrQjs7O0FBRXRCO0VBQXVCO0VBQW9CO0VBQVE7RUFBVTs7O0FBRTdEO0FBQUE7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFpQzs7O0FBQ2pDO0FBQUE7QUFFQTtFQUE2Qzs7O0FBRTdDO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUdKO0FBQ0E7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFBa0I7RUFBZTtFQUE0Qjs7O0FBRTdEO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFBc0M7OztBQUN0QztFQUF3RDs7O0FBQ3hEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQWtCO0VBQWlCO0VBQW1COzs7QUFDdEQ7RUFBNkU7OztBQUM3RTtFQUFzQzs7O0FBRXRDO0FBQUE7QUFFQTtFQUFpQjtFQUFpQjtFQUFpQjs7O0FBQ25EO0VBQXlCOzs7QUFDekI7RUFBbUI7RUFBb0I7RUFBbUI7OztBQUMxRDtFQUEyQjs7O0FBQzNCO0VBQXFDOzs7QUFFckM7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFBK0I7OztBQUUvQjtBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFvQjs7O0FBQ3BCO0VBQWtDOzs7QUFFbEM7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBOEI7OztBQUM5QjtFQUF5Qzs7O0FBQ3pDO0VBQStDOzs7QUFDL0M7RUFDSTtFQUNBOzs7QUFFSjtFQUFzQjtFQUF1Qjs7O0FBRTdDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBOEI7OztBQUM5QjtFQUF5Qjs7O0FBQ3pCO0VBQWlDO0VBQStDOzs7QUFDaEY7RUFBZ0M7RUFBZ0I7OztBQUNoRDtFQUF5QjtFQUFjOzs7QUFDdkM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUdBO0VBQXFCO0VBQWU7RUFBd0I7OztBQUM1RDtFQUE2Qjs7O0FBQzdCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFnQzs7O0FBQ2hDO0VBQXlCO0VBQWM7OztBQUN2QztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQTJDOzs7QUFFM0M7RUFBbUI7RUFBaUI7RUFBaUI7RUFBbUI7OztBQUN4RTtFQUEyQjs7O0FBQzNCO0FBQUE7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQWlDO0VBQWdCO0VBQWdCOzs7QUFDakU7RUFBdUM7OztBQUV2QztBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBMkI7OztBQUMzQjtFQUNJO0VBQ0E7RUFBYTtFQUNiO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUE2QjtJQUFLOzs7QUFDbEM7RUFDSTtJQUFzQjs7O0FBRzFCO0VBQW9CO0VBQW9CO0VBQW1COzs7QUFDM0Q7RUFBNEI7OztBQUU1QjtBQUNBO0FBQUE7QUFFQTtFQUNJO0VBQWlCO0VBQWE7RUFBVztFQUN6QztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFBZTtFQUF3Qjs7O0FBRTNDO0VBQXdCO0VBQWU7OztBQUN2QztFQUNJO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFFdkI7RUFDSTtFQUFlO0VBQXFCO0VBQ3BDO0VBQVc7RUFDWDtFQUFrQzs7O0FBRXRDO0VBQWtCO0VBQVc7RUFBaUI7RUFBbUI7RUFBa0I7OztBQUNuRjtFQUNJO0VBQWdCO0VBQVc7RUFBa0I7RUFDN0M7RUFBYztFQUFvQjtFQUNsQztFQUFzQjtFQUFxQjs7O0FBRS9DO0VBQXdCOzs7QUFDeEI7RUFDSTtFQUFlO0VBQXFCO0VBQ3BDO0VBQTJCOzs7QUFFL0I7RUFBbUI7RUFBZ0I7OztBQUNuQztFQUFrQjtFQUFnQjtFQUFpQjtFQUFnQjs7O0FBQ25FO0VBQ0k7RUFBZ0I7RUFDaEI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUF1Qjs7O0FBQ3ZCO0VBQStCOzs7QUFDL0I7RUFBa0I7RUFBYTtFQUFjO0VBQW1COzs7QUFDaEU7RUFBbUM7OztBQUNuQztFQUNJO0VBQW9CO0VBQVU7RUFDOUI7RUFBYTtFQUFjO0VBRzNCO0VBQWtCO0VBQ2xCO0VBQWU7RUFBcUI7RUFDcEM7OztBQUVKO0VBQW1EOzs7QUFDbkQ7RUFDSTtFQUNBO0VBQWU7RUFDZjtFQUFxQzs7O0FBR3pDO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFzQztFQUFnQjtFQUFnQjs7O0FBRXRFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQWtDO0VBQXdCOzs7QUFDMUQ7RUFBa0M7RUFBYzs7O0FBQ2hEO0VBQWtDOzs7QUFDbEM7RUFBa0I7OztBQUNsQjtFQUE2Qjs7O0FBQzdCO0VBQXFCO0VBQW1CO0VBQWtCO0VBQXVDOzs7QUFDakc7RUFBb0I7RUFBaUI7RUFBbUI7RUFBZ0I7OztBQUV4RTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQXFCOzs7QUFDckI7RUFBeUM7OztBQUN6QztFQUFvQjtFQUFlO0VBQXdCO0VBQVU7OztBQUNyRTtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFBbUI7OztBQUNuQjtFQUFtQjs7O0FBRW5CO0VBQ0k7RUFDQTtFQUNBO0FBQ0E7RUFDQTs7O0FBRUo7RUFBbUM7OztBQUNuQztFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUEwQjs7O0FBQzFCO0VBQStCO0VBQWdCO0VBQWdCOzs7QUFDL0Q7RUFBbUI7OztBQUVuQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUEyQjs7O0FBRTNCO0FBQUE7QUFFQTtFQUEwQjs7O0FBQzFCO0VBQTZDOzs7QUFDN0M7RUFBbUQ7OztBQUNuRDtFQUFtRDtFQUFxQjs7O0FBQ3hFO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0VBQzBCOzs7QUFDMUI7RUFBa0M7OztBQUNsQztFQUFzQjtFQUFrQjtFQUFrQjs7O0FBQzFEO0VBQXVCO0VBQXVDO0VBQWtCOzs7QUFDaEY7RUFBNkI7OztBQUM3QjtFQUFrQjtFQUFnQjtFQUFzQjs7O0FBRXhEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQTZCO0VBQXFCOzs7QUFDbEQ7RUFBNkI7RUFBcUI7OztBQUNsRDtFQUE2QjtFQUFxQjs7O0FBRWxEO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUEwQjs7O0FBQzFCO0VBQW9CO0VBQWdCOzs7QUFDcEM7RUFBb0I7RUFBZTtFQUF1QjtFQUFXOzs7QUFDckU7RUFBcUI7RUFBbUI7RUFBa0I7OztBQUMxRDtFQUFtQjtFQUFtQjtFQUFrQjs7O0FBQ3hEO0VBQTJCOzs7QUFDM0I7RUFBMkI7OztBQUMzQjtFQUEyQjs7O0FBQzNCO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUF5Qzs7O0FBQ3pDO0VBQTBCOzs7QUFDMUI7RUFBMEI7OztBQUMxQjtFQUEwQjs7O0FBQzFCO0VBQW9CO0VBQWdCOzs7QUFFcEM7QUFDQTtFQUFpQjtFQUFlO0VBQVc7OztBQUMzQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUF1QjtFQUFpQjtFQUFrQjs7O0FBQzFEO0VBQXVCO0VBQWlCO0VBQWtCOzs7QUFDMUQ7RUFBdUI7RUFBaUI7OztBQUV4QztBQUNBO0VBQ0k7QUFBQTtBQUFBO0FBQUE7SUFHb0I7O0VBQ3BCO0lBQW1COzs7QUFHdkI7QUFBQTtBQUVBO0VBQXdCO0VBQWU7RUFBd0I7OztBQUMvRDtFQUE0QjtFQUFpQjs7O0FBQzdDO0VBQWtDOzs7QUFDbEM7RUFBa0Q7RUFBc0I7RUFBcUI7OztBQUM3RjtFQUEwQjtFQUFrQztFQUFnQjs7O0FBQzVFO0VBQTREOzs7QUFDNUQ7RUFBd0I7RUFBa0I7RUFBbUM7OztBQUM3RTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBbUM7OztBQUNuQztFQUErQztFQUFrQjs7O0FBRWpFO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7RUFDQTs7O0FBRUo7RUFBZ0I7OztBQUNoQjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFBOEI7OztBQUM5QjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUNBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0E7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQXVDOzs7QUFFdkM7RUFBZ0I7OztBQUVoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBMEM7OztBQUUxQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtFQUNJO0VBQ0E7QUFDQTtBQUFBO0FBQUE7RUFHQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBNEI7OztBQUU1QjtBQUNBO0FBQUE7RUFFSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFPSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTs7O0FBSUo7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDSTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBR0E7RUFDSTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUNJO0VBQ0E7SUFDSTs7QUFHSjtBQUFBO0VBRUE7QUFBQTtJQUVJOztFQUVKO0FBQUE7SUFFSTs7QUFHSjtBQUFBO0VBRUE7SUFDSTtJQUNBOztFQUVKO0lBQ0k7SUFDQTs7QUFHSjtBQUFBO0VBRUE7SUFDSTs7QUFHSjtBQUFBO0VBRUE7SUFDSTs7RUFFSjtJQUNJO0lBQ0E7O0FBR0o7RUFDQTtJQUNJOztFQUVKO0lBQ0k7OztBQUlSO0VBQ0k7SUFBTztJQUFZOztFQUNuQjtJQUFPO0lBQVk7OztBQUV2QjtFQUNJO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFFdkI7RUFDSTtJQUFPOztFQUNQO0lBQU87OztBQUdYO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBR0E7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFnQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBUUE7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0k7OztBQVNKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNFOzs7QXJNbDFNRjtFQUNJO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOztBQUVWO0VBQU87RUFBaUI7OztBQUtoQztFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBZUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQU1BO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBSUE7RUFDQTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBUTs7O0FBR1o7RUFDSTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZK0w3S0k7RS9MOEtKO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFZQTtFQUNJOztBQU9KO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUdBO0VBQ0E7O0FBRUE7QUFBQTtFQUNJOztBQUVKO0FBQUE7RUFDSTs7QUFFSjtBQUFBO0VBQ0k7RUFDQTs7QUFDQTtBQUFBO0VBQVU7OztBQUlsQjtFQUNJO0VBQ0E7OztBQUlKO0VBRUk7QUFBQTtJQUVJO0lBQ0E7OztBQUlSO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7O0FBTWhCO0VBQ0k7OztBQUtKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7O0FBRUE7QUFBQTtFQUNJO0VBQ0E7OztBQVVSO0VBQ0k7RUFDQTtBQUNBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHQTtFQUNJOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0EsTytMM2lCSTs7O0EvTDhpQlI7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBSUo7RUFDSTs7QUFJSjtFQUNJOztBQUlKO0VBQ0k7OztBQU1SO0FBQUE7RUFFSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUtKO0VBQ0k7RUFDQSxPK0xucUJJO0UvTG9xQko7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFFQTs7QUFPQTtFQUNJOzs7QUFRaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFHSTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUtKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJOzs7QUFJUjtFQUNJO0VBQ0EsTytMbDJCSTtFL0xtMkJKO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUtKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUlKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQU1KO0VBR0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZTs7QUFFZjtFQUFVOzs7QUFJZDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFJQTtBQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFFSjtFQUNJOzs7QUFLWjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUlKO0VBQ0k7OztBQUtKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7OztBQUtSO0FBQUE7RUFFSTs7O0FBRUo7QUFBQTtBQUFBO0VBR0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLE1BLzRDVTs7QUFrNUNkO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLE1BeDVDVTs7O0FBbTZDZDtFQUNJOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGVBWlE7RUFhUjs7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTtFQUNBOztBQUdKO0VBQ0ksZUFqQ0k7RUFrQ0osTytMLzZDUjtFL0xnN0NRO0VBQ0EsWUF0Q0k7RUF1Q0o7O0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJLFlBakRDOztBQW1FVDtFQUNJOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtBQUFBO0VBRUk7RUFDQTtFQUNBOztBQUdKO0VBRUk7RUFDQTs7QUFHSjtFQUVJO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTs7O0FBMEJ4QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsTUExbURjO0VBMm1EZDs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7QUFLSTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBY0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFVSjtBQUFBO0VBRUk7OztBQUtKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFPO0VBQWlCOztBQUV4QjtFQUFVO0VBQXFDOzs7QUFLbkQ7RUFDSTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQVFKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7OztBQVNKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFPSjtFQUFXOztBQUNYO0VBQWE7O0FBTWI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSTtJQUFVOztFQUNWO0lBQVU7OztBQVVkO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBUUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7OztBQUdKO0VBQ0k7SUFBSzs7O0FBSVQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7SUFBTztJQUFZOztFQUNuQjtJQUFPO0lBQVk7OztBQUd2QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQU87RUFBaUI7O0FBRXhCO0VBQVU7RUFBcUM7OztBQU1uRDtFQUNJO0VBSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7OztBQVFSO0VBQ0k7O0FBRUE7RUFBVTtFQUFxQzs7O0FBS25EO0VBQ0k7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFPSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtJQUFrQjs7O0FBR3RCO0VBQ0k7SUFBMkM7SUFBa0I7O0VBQzdEO0lBQW1CO0lBQWlCOzs7QUFHeEM7RUFBbUI7RUFBZTs7O0FBYzlCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBYUk7RUFDSTs7QUFDQTtFQUFrQjs7QUFHdEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQWlCOztBQUVyQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFPO0VBQTBDO0VBQWlCOztBQUNsRTtFQUFlOztBQUl2QjtFQUNJO0VBQ0E7O0FBUUo7RUFDSTtFQUNBOztBQUdKO0VBQTBCO0VBQWdCOztBQUMxQztFQUFnQztFQUFnQjs7QUFPaEQ7RUFDSTs7QUFFSjtBQUFBO0VBRUk7O0FBT0o7RUFDSTs7QUFFSjtBQUFBO0VBRUk7O0FBU0o7RUFDSTtFQUNBO0VBQ0E7OztBQVNSO0VBQ0k7OztBQUtKO0VBQ0k7SUFBTztJQUFZOztFQUNuQjtJQUFPO0lBQVk7OztBQUd2QjtFQUNJO0lBQU87O0VBQ1A7SUFBTzs7O0FBR1g7RUFDSTtJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBR3ZCO0VBT0k7O0FBR0E7RUFFSSxPK0wvcUVBO0UvTGdyRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQSxlQWJZO0VBY1o7O0FBRUE7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUVJOztBQUdKO0VBQ0k7O0FBUVo7RUFDSSxPQTlDTTtFQStDTjtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBR0E7RUFDQTs7QUFFQTtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTtFQUNBOztBQUNBO0VBQVU7O0FBdEJsQjtFQXdCSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFJSjtFQUVJO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBRUk7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBOztBQUdBO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBUWhCO0VBQ0k7RUFDQTs7O0FBU0k7RUFDSTs7QUFLWjtFQUNJOzs7QUFpQ1I7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtBQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtBQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0EsTytMbjZFSjtFL0xvNkVJO0VBQ0E7RUFDQTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtBQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOzs7QUFLUjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtBQUNBO0FBQUE7QUFBQTtFQUdBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUtKO0VBRUk7OztBQUdKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7OztBQUtKO0FBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0VBR0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtBQUNJOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0FBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTtFQUNBO0VBQ0E7OztBQVdKO0VBQ0ksT0FMSTs7O0FBUVI7RUFDSSxrQkFQWTtFQVFaO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0ksT0FoQkE7RUFpQkE7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSSxjQTNCQTs7QUE2QkE7RUFDSTs7QUFHSjtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsT0ExQ0E7RUEyQ0E7RUFDQTtFQUNBOztBQUVBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSSxrQkF0REk7RUF1REo7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDSSxjQWpFSjtFQWtFSSxPQWxFSjtFQW1FSTs7QUFFQTtFQUNJLGtCQXRFUjtFQXVFUSxjQXZFUjtFQXdFUSxPK0xsekZSOztBL0xxekZJO0VBQ0k7O0FBR0o7RUFFSSxPK0wzekZSO0UvTDR6RlEsa0JBbEZSO0VBbUZRLGNBbkZSOztBQXVGQTtFQWpESjtJQWtEUTs7O0FBSVI7RUFDSTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT0E5R0E7RUErR0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSSxrQkFwSEU7OztBQTBIZDtFQUNJLGtCQTFIWTtFQTJIWixPQTdISTtFQThISixjQTlISTs7QUFnSUo7RUFDSSxPK0wzMkZBO0UvTDQyRkEsa0JBbElBO0VBbUlBLGNBbklBOztBQXNJSjtFQUNJOztBQUdKO0VBQ0ksTytMcjNGQTtFL0xzM0ZBLGtCQTVJQTtFQTZJQSxjQTdJQTs7O0FBaUpSO0VBQ0ksa0JBakpVO0VBa0pWLE9BbkpJO0VBb0pKLGNBbkpVOztBQXFKVjtFQUNJLGtCQXZKQTtFQXdKQSxPK0xsNEZBO0UvTG00RkEsY0F6SkE7O0FBNEpKO0VBQ0k7O0FBR0o7RUFDSSxPK0wzNEZBO0UvTDQ0RkEsa0JBbEtBO0VBbUtBLGNBbktBOzs7QUF1S1I7RUFDSTs7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUE7RUFDSSxrQitMMTZGUjtFL0wyNkZROztBQUtaO0VBQ0k7O0FBR0o7RUFDSTs7QUFFQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOzs7QUFNWjtFQUNJO0VBQ0E7RUFDQSxrQkE5Tlk7RUErTlo7O0FBRUE7RUFDSTtFQUNBLE9Bck9BO0VBc09BO0VBQ0E7O0FBRUE7RUFDSTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUtaO0VBQ0ksa0JBMVBFOzs7QUErUGQ7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBR0k7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7OztBQUtSO0VBRUksT0FEVTtFQUVWO0VBQ0E7OztBQUlKO0VBUUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlBO0VBQ0ksWUFqQk07O0FBb0JWO0VBQ0k7RUFDQTtFQUNBLE9BdkJNOztBQXlCTjtFQUNJLFlBMUJFO0VBMkJGOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsT0FuQ007RUFvQ047RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJLFlBL0NNO0VBZ0ROLGNBaERNO0VBaUROOztBQUVBO0VBQ0ksWUFuRFE7RUFvRFIsY0FwRFE7O0FBd0RoQjtFQUNJLFlBeERRO0VBeURSO0VBQ0E7O0FBRUE7RUFDSSxZQTVEVTs7QUFnRWxCO0VBQ0k7RUFDQTtFQUNBLE9BdEVNOztBQXdFTjtFQUNJLFlBekVFO0VBMEVGOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxPQW5GTTtFQW9GTjtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFJUjtFQUNJLFlBMUZNO0VBMkZOO0VBQ0E7O0FBRUE7RUFDSSxZQTlGUTs7O0FBb0doQjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQU9BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFPSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7OztBQUtaO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBRUk7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBR0E7RUFDQTs7QUFDQTtFQUF1QjtFQUFVO0VBQVc7O0FBb0I1QztBQUFBO0VBRUk7O0FBWUo7QUFBQTtFQUVJOztBQUtSO0VBQ0k7O0FBeERSO0FBNkRJOztBQUNBO0VBQ0k7O0FBL0RSO0FBa0VJOztBQUNBO0VBQ0k7RUFDQTs7QUFyRVI7QUF3RUk7O0FBQ0E7RUFDSTs7O0FBT0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTs7QUFVWjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUdKO0VBQ0k7OztBQU1KO0VBQ0k7RUFDQTs7QUFLSTtFQUNJO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTs7QUFLSjtFQUNJOztBQUVBO0VBQ0k7OztBQWVoQjtFQUNJOzs7QUFJUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdJO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBT2hCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLUjtFQUNJO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQSxNQXYvR2M7O0FBeS9HZDtFQUVJOztBQUdBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUNJO0VBQ0E7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7O0FBR0E7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtKO0VBQ0k7RUFDQTs7O0FBU2hCO0VBRUk7RUFDQTtFQUNBOztBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBSUo7RUFDSTtFQUNBOzs7QUFPWjtFQUdJO0VBQ0E7RUFDQSxPQUpVO0VBS1Y7RUFDQTs7QUFFQTtFQUNJO0VBRUE7RUFDQTtFQUNBLGtCQWJNO0VBY047OztBQUtSO0VBQ0k7RUFHQTtFQUNBO0VBQ0E7RUFJQTs7O0FBU0o7RUFDSTs7O0FBRUo7RUFDSTs7O0FBU0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTs7O0FBV1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFFSTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7OztBQUdKO0VBQ0k7RUFHQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUdBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFHQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBY0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFTSjtFQUNJOzs7QUFPSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7OztBQVFKO0VBQ0k7RUFDQTtFQUNBO0VBSUE7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBT0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTs7QUFXQTtBQUFBO0FBQUE7QUFBQTtFQUlJO0VBRUE7RUFDQTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUVJOztBQUtKO0VBQ0k7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFFSTs7QUFHSjtFQUNJOztBQU1SO0VBQ0k7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0E7RUFDSTtFQUNBOztBQUVBO0VBRUk7RUFDQTtFQUNBOztBQVFSO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLSjtFQUNJOztBQUtKO0FBQUE7RUFFSTs7QUFJSjtFQUNJOztBQUVBO0VBQ0k7O0FBS0o7RUFDSTs7QUFPaEI7RUFDSTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBRUk7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUVJO0VBQ0E7RUFDQTtFQUNBOzs7QUFrQ1o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUVJOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQVNKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7OztBQUdKO0VBTUk7RUFNQTtFQUNBO0VBY0E7RUFDQTs7O0FBR0o7RUFHSTs7O0FBR0o7RUFNSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFXSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFZSjtFQUNJOzs7QUFPSjtBQUFBO0FBQUE7QUFBQTtFQUlJOzs7QUFJSjtFQUNJO0VBZUE7OztBQXFCQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7O0FBVVI7RUFDSTtFQUNBOzs7QUFVSjtFQUNJO0VBQ0E7OztBQU1KO0VBS0k7OztBQUdKO0VBQ0k7RUFHQTs7O0FBUUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBV0o7RUFDSTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBUUo7RUFDSTs7QUFFQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7OztBQUVKO0FBQUE7QUFBQTtFQUdJOzs7QUFFSjtBQUFBO0FBQUE7RUFHSTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTs7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFPOztBQUNQO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7O0FBSVI7RUFDSTtJQUFPOztFQUNQO0lBQU87OztBQUVYO0VBQ0k7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBTzs7QUFFWDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFPOzs7QUFHZjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFVOztBQUNWO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQVU7O0FBRWQ7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFBVTs7O0FBS2xCO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7OztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7OztBQUlSO0VBQ0k7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87OztBQUlYO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQVk7O0FBQ1o7RUFBWTs7QUFDWjtFQUFZOzs7QUFJaEI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBOzs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBOztBQUdSO0VBQ0k7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7O0FBR1I7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7OztBQUtSO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUFZOzs7QUFFaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFPSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0k7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7OztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBU0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtFQUFVO0VBQXFDOztBQUUvQztBQUFBO0VBQU87OztBQUdYO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0k7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7O0FBS0o7RUFDSTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUNJO0VBQ0E7O0FBT1I7RUFDSTs7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFPOztBQUVQO0VBQ0k7RUFDQTtFQUNBOzs7QUFJUjtBQUFBO0VBRUk7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUFPOzs7QUFJWDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFDQTtFQUFVOztBQUdkO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQVU7RUFBcUI7OztBQVN2QztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0k7RUFDQTs7QUFFQTtFQUFxQjtFQUFZOztBQUNqQztBQUFBO0VBQ3lCO0VBQXFCOztBQUlsRDtFQUNJO0VBQ0E7O0FBSUo7RUFDSTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQWM7RUFBZ0I7OztBQUlsQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFLSjtFQUNJOztBQUVBO0VBQVU7O0FBR2Q7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7OztBQUtsQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7QUFFVjtFQUFPOzs7QUFPWDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSVI7RUFDSTtJQUFPOztFQUNQO0lBQU87OztBQVFYO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTtFQUFxQjs7QUFHbkM7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTtFQUFrQjs7O0FBS3BDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFBVTs7QUFHZDtFQUNJO0VBQ0E7O0FBQ0E7RUFBVTs7O0FBTWxCO0FBQUE7RUFDMkI7OztBQUMzQjtBQUFBO0VBQzBCOzs7QUFFMUI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7RUFBb0M7O0FBRTlDO0VBQ0k7RUFDQTtFQUNBOzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFVO0VBQW9DOzs7QUFJbEQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0k7RUFFSjtFQUNBO0VBQ0E7RUFDQTtFQUdBOztBQUdBO0VBQ0k7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFJSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOzs7QUFPUjtBQUFBO0FBQUE7RUFHSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBSUk7OztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFBVTs7O0FBSWQ7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQU87O0FBRVA7RUFDSTtFQUNBOzs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFLWjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtJQUFXOztFQUNYO0lBQVk7OztBQUtoQjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtFQUdJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7QUFBQTtFQUFPOzs7QUFHWDtFQUFlOzs7QUFHZjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZTs7O0FBR25CO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7O0FBRVY7RUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFTOzs7QUFHYjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7O0FBRUE7RUFBeUI7OztBQUc3QjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFlOztBQUNmO0VBQVU7OztBQUdkO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQWdDO0VBQXFCOztBQUNyRDtFQUFnQztFQUFxQjs7QUFDckQ7RUFBa0M7RUFBcUI7O0FBR3ZEO0VBQ2lDO0VBQXFCOztBQUd0RDtFQUFnQztFQUFxQjs7QUFHckQ7RUFDZ0M7RUFBcUI7O0FBQ3JEO0VBQ2dDO0VBQXFCOztBQUdyRDtFQUFnQztFQUFxQjs7QUFDckQ7RUFBZ0M7RUFBcUI7O0FBQ3JEO0VBQWdDO0VBQXFCOzs7QUFHekQ7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFJSjtFQUNJO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFHdkI7RUFDSTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUdKO0VBQWE7RUFBYzs7QUFFM0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBSVI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQUk7O0FBQ0o7RUFBVTtFQUFxQzs7O0FBR25EO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBd0I7OztBQUN4QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQWE7RUFBZ0I7OztBQUM3QjtFQUFhOzs7QUFDYjtFQUFhOzs7QUFDYjtFQUFpQjtFQUFtQjtFQUFnQjs7O0FBQ3BEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQWM7RUFBaUI7OztBQUMvQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFJOzs7QUFFUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0VBQ0k7O0FBRUE7RUFBTTtFQUFhO0VBQWM7OztBQUVyQztFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQW1CO0VBQWlCO0VBQWdCOzs7QUFDcEQ7RUFBbUI7RUFBaUI7RUFBa0I7OztBQUN0RDtFQUFtQjtFQUFpQjs7O0FBRXBDO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQUk7O0FBQ0o7RUFBVTtFQUFxQzs7O0FBRW5EO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQUk7O0FBQ0o7RUFBVTs7O0FBdUJkO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0ksWUFDSTs7O0FBUVI7RUFDSTtBQUFBO0lBRUk7OztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBR0E7RUFDQTs7QUFDQTtFQUF1QjtFQUFVO0VBQVc7OztBQUloRDtFQUNJO0VBQ0E7OztBQU9KO0VBQ0k7O0FBRUE7RUFBaUI7RUFBZ0I7OztBQUVyQztFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOztBQUtBO0VBQWtEOztBQUNsRDtFQUFrRDs7QUFDbEQ7RUFBa0Q7O0FBQ2xEO0VBQWtEOztBQUNsRDtFQUFrRDs7QUFDbEQ7RUFBa0Q7O0FBQ2xEO0VBQWtEOztBQUNsRDtFQUFrRDs7QUFDbEQ7RUFBa0Q7O0FBR2xEO0VBQXVEOztBQUN2RDtFQUF1RDs7QUFDdkQ7RUFBdUQ7O0FBQ3ZEO0VBQXVEOztBQUN2RDtFQUF1RDs7QUFDdkQ7RUFBdUQ7O0FBQ3ZEO0VBQXVEOztBQUN2RDtFQUF1RDs7QUFDdkQ7RUFBdUQ7O0FBQ3ZEO0VBQXVEOztBQUN2RDtFQUF1RDs7QUFDdkQ7RUFBdUQ7O0FBQ3ZEO0VBQXVEOztBQUN2RDtFQUF1RDs7QUFDdkQ7RUFBdUQ7O0FBQ3ZEO0VBQXVEOztBQUV2RDtFQUF1RDs7QUFDdkQ7RUFBdUQ7OztBQVMzRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFtQjtFQUFhO0VBQWU7OztBQUMvQztFQUFtQjtFQUFhO0VBQWU7RUFBcUI7RUFBMkI7OztBQUMvRjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFJOztBQUNKO0VBQVU7RUFBcUM7OztBQUVuRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQUk7RUFBaUI7O0FBQ3JCO0VBQVU7RUFBNkI7OztBQUczQztBQUFBO0FBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBS0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBSUE7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQVVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUF1QjtFQUFVO0VBQVc7OztBQU1oRDtFQUNJOzs7QUFFSjtFQUFlOzs7QUFJZjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFBYzs7O0FBT2Q7RUFBb0I7RUFBZTs7O0FBQ25DO0VBQWU7RUFBZTs7O0FBQzlCO0VBQXFDO0VBQWE7OztBQVNsRDtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQWtCOzs7QUFDbEI7RUFBa0I7OztBQUdsQjtFQUFpQjtFQUFlO0VBQXdCOzs7QUFFeEQ7RUFBbUI7RUFBZTtFQUF3Qjs7O0FBQzFEO0VBQXFDO0VBQWU7RUFBZ0M7OztBQUNwRjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7O0FBR2Q7RUFBa0I7OztBQUtsQjtFQUFnQzs7O0FBQ2hDO0VBQWdDOzs7QUFDaEM7RUFBZ0M7OztBQUNoQztFQUFnQzs7O0FBSWhDO0VBQ0k7O0FBRUE7RUFBc0I7OztBQU8xQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUFVOzs7QUFFZDtFQUE0Qjs7O0FBQzVCO0VBQWtDOzs7QUFHbEM7RUFBb0I7OztBQUNwQjtFQUNJOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQVFSO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBRUE7RUFBZ0I7OztBQUVoQjtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUF1Qjs7O0FBTzNCO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFPOztBQUNQO0VBQVU7RUFBZ0I7OztBQUU5QjtFQUEyQjs7O0FBUTNCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFlOzs7QUFRbkI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQVlBO0VBQ0k7RUFDQTs7O0FBR1I7RUFBeUI7OztBQU16QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBY0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU9BO0VBQ0k7RUFDQTs7O0FBT1I7RUFDSTtFQUNBOzs7QUFPSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBRUk7RUFDQTtFQUNBOzs7QUFrQlI7RUFDSTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7RUFDQTtFQUNBOztBQU1BO0VBQ0k7OztBQUdSO0VBQ0k7OztBQVVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFRSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBRUo7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHUjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0o7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFFSTtFQUNBOzs7QUFHUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0FBRUE7RUFDSTs7O0FBRUo7QUFBQTtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFPO0VBQWlCOztBQUN4QjtFQUFTO0VBQWlCO0VBQWtCOztBQUM1QztFQUFTO0VBQWlCOztBQUUxQjtFQUFrQjs7O0FBRXRCO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQVU7OztBQUdsQjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUF3Qjs7O0FBQ3hCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7O0FBQ1Y7RUFBVzs7O0FBRWY7RUFBZTtFQUFnQjtFQUFjO0VBQWU7RUFBcUI7OztBQUNqRjtFQUFhO0VBQWdCOzs7QUFDN0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBaUI7OztBQUVyQjtFQUFhO0VBQWdCOzs7QUFDN0I7RUFBaUI7RUFBbUI7RUFBZ0I7OztBQU1wRDtBQUFBO0FBQUE7QUFBQTtFQUdvQzs7O0FBSXBDO0VBQ0k7RUFDQTtFQUNBOzs7QUFNSjtFQUNJOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBV1I7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFzQjs7O0FBQ3RCO0VBQXNCOzs7QUFJdEI7RUFBYTtFQUFnQjtFQUFrQjtFQUFrQjs7O0FBRWpFO0VBQWdCO0VBQWU7RUFBd0I7OztBQUl2RDtFQUFzQjs7O0FBQ3RCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFPOzs7QUFFWDtFQUFjO0VBQWlCO0VBQWdCOzs7QUFHL0M7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQTJCOzs7QUFHM0I7RUFBZTtFQUFnQjtFQUFpQjtFQUFrQjtFQUFnQjs7O0FBSWxGO0VBQWE7OztBQUdiO0VBQWU7RUFBZTtFQUF3Qjs7O0FBSXREO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUtBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0E7RUFBTTtFQUFhO0VBQWM7RUFBbUI7O0FBRXBEO0VBQTZCO0VBQXFCO0VBQWM7OztBQUdwRTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFBc0I7RUFBZTtFQUFxQjtFQUFVOzs7QUFDcEU7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQWlCOzs7QUFFckI7RUFBb0I7RUFBaUI7RUFBZ0I7OztBQUtyRDtFQUFzQjtFQUFlO0VBQXFCO0VBQVU7RUFBZ0I7OztBQUNwRjtFQUNJO0VBQ0E7O0FBR0E7RUFBaUM7OztBQU1yQztFQUNJOztBQUNBO0VBQXdCO0VBQWE7O0FBT3JDO0FBQUE7RUFFSTs7O0FBR1I7RUFDSTtFQUNBOztBQUNBO0VBQXdCOzs7QUFNNUI7RUFDSTtFQUNBOztBQUNBO0VBQTBCOzs7QUFJOUI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFlO0VBQWE7O0FBQzVCO0VBQVU7OztBQUVkO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFPOzs7QUFLWDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQWU7RUFBYTs7QUFDNUI7RUFBVTs7O0FBTWQ7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQWU7RUFBYTs7QUFDNUI7RUFBVTs7O0FBS2Q7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZTtFQUFhO0VBQWM7OztBQUU5QztBQUFBO0VBQ2lDOzs7QUFDakM7QUFBQTtFQUM2QjtFQUFZOzs7QUFRekM7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFHUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQXNDOzs7QUFDdEM7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFBZ0M7RUFBa0I7OztBQUNsRDtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUFxQjs7O0FBQ3JCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR1I7RUFJSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFRUjtFQUNJO0VBQ0E7RUFDQTs7O0FBTUo7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFnQjs7QUFFcEI7RUFBSzs7QUFDTDtFQUFLOztBQUNMO0VBQUs7O0FBRUw7RUFBSTs7QUFBbUI7RUFBZTs7QUFDdEM7RUFBUztFQUFvQjs7QUFDN0I7RUFBSzs7QUFFTDtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQVU7O0FBRVY7RUFBTTtFQUFpQjtFQUFjOzs7QUFFekM7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0E7RUFBaUI7OztBQUVyQjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFPSjtFQUNJOzs7QUFTSjtFQUNJOzs7QUFRSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQWU7RUFBZ0I7RUFBYTtFQUFjO0VBQWlCOzs7QUFLL0U7RUFDSTs7O0FBTUo7RUFDSTs7O0FBS0o7RUFDSTtFQUNBOzs7QUFPSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUNJO0VBQ0E7O0FBRUE7RUFBZTs7O0FBR3ZCO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUFHUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7O0FBRUE7RUFDSTtFQUNBOzs7QUFNUjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBSUo7RUFDSTs7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFBNkI7O0FBQzdCO0VBQ0k7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFPUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFRSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFNSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0lBQU87O0VBQ1A7SUFBTzs7O0FBRVg7RUFDSTtJQUFnQjs7RUFDaEI7SUFBeUM7OztBQUs3QztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBTztFQUFpQjtFQUFrQjs7O0FBTzlDO0VBQ0k7OztBQUlKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHQTtFQUFlOzs7QUFPbkI7RUFDSTtFQUNBO0VBQ0E7RUFJQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7O0FBUUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBS1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJSjtFQUNJOztBQUVBO0VBQTJCOztBQUMzQjtFQUEyQjs7O0FBTS9CO0VBQ0k7O0FBQ0E7RUFBdUI7RUFBZ0I7OztBQUszQztFQUNJO0VBQ0E7O0FBRUE7RUFBZTs7QUFFZjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUtKO0VBQ0k7OztBQUdSO0VBQ0k7SUFBTzs7RUFDUDtJQUFPOztFQUNQO0lBQU87OztBQVFYO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUVKO0VBS0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBZTs7QUFFZjtFQUNJO0VBQ0E7OztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOzs7QUFRVjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7OztBQU9SO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtJQUFLOztFQUNMO0lBQU87OztBQWFYO0VBQ0k7OztBQUVKO0VBQ0k7RUFDQTs7O0FBU0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7OztBQUdSO0VBQ0k7OztBQU9KO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7O0FBR1I7RUFDSTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFNSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBRUE7RUFBb0I7O0FBQ3BCO0VBQW9CO0VBQVk7O0FBQ2hDO0VBQXNCO0VBQVk7OztBQUsxQztFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7OztBQUdSO0VBQ0k7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQU87O0FBRVA7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQU87O0FBRVA7RUFDSTtFQUNBOzs7QUFRUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQVU7OztBQUVkO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQVU7O0FBRVY7RUFDSTtFQUNBOzs7QUF1QlI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtBQUFBO0VBQ3VDOzs7QUFDdkM7QUFBQTtFQUNtQztFQUFZOzs7QUFXL0M7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFPSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFFSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUVKO0VBQ0k7OztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7OztBQUVKO0VBQ0k7OztBQUtKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBZ0JBO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUlBO0VBQ0k7RUFDQTs7QUFNUjtFQUNJO0VBQ0E7RUFDQTs7QUFLSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBR0E7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBWUo7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFHQTs7QUFNSjtFQUNJO0VBQ0E7RUFDQTs7QUFNSjtFQUNJO0VBQ0E7OztBc00zblNSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBdUJBO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJUjtFQUNJLFlBdENpQjtFQXVDakI7OztBQUdKO0VBQ0ksWUExQ2tCO0VBMkNsQjs7O0FBR0o7QUFDQTtFQUNJO0lBQVc7O0VBQ1g7SUFBVzs7O0FBR2Y7RUFDSTs7O0FBR0o7QUFLQTtFQUlJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUtSO0VBQ0k7O0FBekRSO0FBNERJOztBQUtBO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSSxZQXRLUzs7QUF5S2I7RUFDSSxZQXpLVTs7QUE2S2xCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJLG1CQS9MUzs7QUFrTWI7RUFDSSxtQkFsTVU7O0FBc01sQjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOzs7QUFLWjtBQUNBO0VBQ0k7O0FBRUE7RUFDSTs7O0FDblVSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBb0JBO0VBQ0k7OztBQUdKO0VBQ0k7SUFBVztJQUF1Qzs7RUFDbEQ7SUFBVztJQUEyQzs7O0FBRzFEO0VBQ0k7OztBQUdKO0FBS0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7QUFJZDtFQUNJOztBQXBEUjtBQXVESTs7QUFLQTtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0ksWUExSE07O0FBNkhWO0VBQ0k7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOztBQUdkO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUNBLGtCQUNJO0VBRUo7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFVOzs7QUFJbEI7QUFDQTtBQUFBO0VBRUk7OztBQ3JSSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXFCQTtFQUtJOzs7QUNZSjtFQUdDO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7OztBQUVEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFHQztFQUNBO0VBQ0E7O0FBQ0E7RUFDQzs7QUFHRjtFQUNDO0VBQ0E7RUFDQTtFQUNNLE9BbkZBO0VBb0ZBO0VBQ0E7RUFHQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7QUFLSjtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOzs7QUFNaEI7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNHOzs7QUFHSjtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esa0JBekhxQjtFQTBIckI7RUFDQTtFQUNHOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLE9BdEpBO0VBdUpBOztBQUVKO0VBQ0k7RUFDQTs7QUFFUDtFQUNDOztBQUNBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0FBRUQ7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBLE9BdEtPO0VBdUtQO0VBQ1M7RUFDQTs7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxPQW5MTjtFQW9MTTs7QUFFSjtFQUNJLE9BMUxSO0VBMkxRLGtCQWxMSzs7QUFtTEw7RUFBbUIsT0E1TDNCOztBQThMSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQWlCO0VBQVM7O0FBQzFCO0VBQVM7RUFBaUIsT0E1TXBDO0VBNE1xRDs7QUFJN0Q7RUFDQztFQUNBO0VBQ0E7RUFFQTtFQUNBLE9Bek5PO0VBME5QO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxPQXRPTTs7QUF3T1A7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVEO0VBQ0M7RUFDQSxPQTlPTTtFQStPTjs7QUFFRDtFQUNDOztBQUVRO0VBQ0ksa0JBblBLO0VBb1BMLE9BN1BSO0VBOFBKOztBQUNBO0VBQUksT0EvUEE7O0FBa1FBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUtaO0VBR0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGtCQXBRcUI7RUFxUXJCOztBQUNBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDQztFQUNBO0VBQ1Msa0JBclJTO0VBc1JUO0VBQ0E7RUFDQTs7QUFDVDtFQUNDO0VBQ0E7RUFDQTtFQUNBLE9BNVNNO0VBNlNOO0VBQ0E7RUFDWTs7QUFFWDtFQUNDLGtCQXZTZTs7QUEyU2xCO0VBQ0Msa0JBMVNpQjtFQTJTakIsT0F2VEk7O0FBMFROO0VBQ0M7RUFDQTtFQUNTOztBQUVWO0VBQ0M7O0FBQ0E7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVEO0VBQ0M7RUFFQTtFQUNBOztBQUlIO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT0FoVlE7RUFpVlI7O0FBQ0E7RUFBVTs7QUFDVjtFQUNDO0VBQ0EsT0E1Vks7O0FBOFZOO0VBQ0M7RUFDQSxPQWhXSztFQWlXTDtFQUNBO0VBQ0E7O0FBQ0E7RUFBVSxZQTNWUTs7QUE4VnBCO0VBQ0M7RUFDQTtFQUNBOztBQUNBO0VBQ0M7RUFDQSxPQXpXTztFQTBXUDtFQUNBOztBQUtEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBTUQ7RUFDQzs7O0FBS0g7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNHLGtCQTFYa0I7RUEyWGxCOzs7QUFHSjtBQUFBO0FBQUE7QUFHQTtFQUNDOzs7QUFJRDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFhO0VBQWU7RUFBWTtFQUFhOztBQUNyRDtFQUFhO0VBQVE7RUFBYTtFQUFjO0VBQXVCO0VBQVM7O0FBQ2hGO0VBQWE7RUFBYTs7QUFDMUI7RUFBYTtFQUFhOztBQUMxQjtFQUFhO0VBQWE7O0FBQzFCO0VBQWE7RUFBYTtFQUFZOzs7QUFHMUM7RUFDSTtJQUFPO0lBQVc7O0VBQ2xCO0lBQU87SUFBVzs7O0FBRXRCO0VBQ0k7RUFDQTs7O0FBS0o7RUFBbUI7OztBQUlmO0FBQUE7RUFDa0M7OztBQUdsQztBQUFBO0VBQ2tDOzs7QUFNdEM7RUFDSTs7O0E3RS9hQTtBQUFBO0VBQXVCO0VBQVk7O0FBQ25DO0FBQUE7RUFBNkI7O0FBQzdCO0FBQUE7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7QUFBQTtBQUFBO0VBQzBDOztBQUMxQztBQUFBO0VBQW1DOzs7QTZFK2F2QztFN0UzYUk7RUFDQTs7QUFDQTtFQUF1QjtFQUFVO0VBQVc7OztBNkU0YWhEO0VBRUk7RUFDQTtFQUNBO0VBQ0E7O0FBb0JBO0VBQ0k7RUFDQTtFQUNBO0VBQ0EsWUF6ZGM7RUEwZGQ7RUFDQTs7QUFHSTtBQUFBO0VBRUk7O0FBRUo7RUFDSTs7QUFDQTtFQUFlOztBQUszQjtFQUNJO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFJQTtFQUNBO0VBQ0EsWUFyZmM7RUFzZmQ7RUFFQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT0FuaEJKO0VBb2hCSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxPQTVoQko7O0FBK2hCSTtBQUFBO0VBRUk7O0FBSUo7RUFDSTs7QUFDQTtFQUFlOztBQUkvQjtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUFrQjs7QUFFVjtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBLGtCQXppQkM7RUEwaUJEOztBQUVKO0VBQ0k7O0FBQ0E7RUFDSSxPQXRqQmQ7O0FBeWpCTTtFQUNJOztBQUdSO0VBQ0k7RUFDQTtFQUNBOztBQUlaO0VBRUk7RUFFQTtFQUtBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFSTtFQUNJO0VBQ0E7RUFDQTtFQUNBLGtCQTFrQkU7RUEya0JGO0VBQ0E7RUFDQTtFQUNBLE9BM2xCVDs7QUE0bEJTO0VBQ0k7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBLE9Bbm5CVjtFQW9uQlU7O0FBRUo7RUFDSTtFQUNBLE9BN25CVjtFQThuQlU7RUFDQTs7QUFHUjtFQUNJO0VBQ0E7RUFDQSxPQXJvQk47RUFzb0JNO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBOztBQUVKO0VBQ0k7O0FBSVo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBLE9BcHFCTjtFQXFxQk07O0FBQ0E7RUFDSTtFQUNBOztBQUlaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJO0VBQ0E7RUFDQSxPQWpzQk47RUFrc0JNOztBQUNBO0VBQ0k7O0FBS2hCO0VBRUk7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUVBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT0FodUJSO0VBaXVCUTtFQUNBOztBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHUjtFQUdJO0VBQ0EsT0ExdkJOO0VBMnZCTTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSSxPQWp3Qlo7O0FBcXdCQTtFQUlJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxPQXZ3QkY7RUF3d0JFO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGtCQTd3Qks7O0FBOHdCTDtFQUNJLGtCQXJ3QkU7RUFzd0JGLE9BNXhCWjtFQTZ4Qlk7RUFDQTtFQUNBO0VBQ0E7O0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQSxrQkFseEJGO0VBbXhCRTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBLE9BcnlCakI7O0FBc3lCaUI7RUFDSSxPQS95QnhCOztBQW16Qlk7RUFDSTtFQUNBO0VBQ0E7O0FBS2hCO0VBVUk7RUFDQTtFQUNBLFlBMXpCUztFQTJ6QlQ7O0FBU0o7RUFDSTtFQUNBO0VBQ0E7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQSxrQkFwMUJTO0VBcTFCVCxPQTkxQko7RUErMUJJO0VBQ0E7RUFDQTtFQUlBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTs7QUFHUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJLE9BMzNCVjtFQTQzQlUsa0JBNzNCWjtFQTgzQlk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFNcEI7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTs7QUFFSjtFQUNJLE9BbDVCRjtFQW01QkU7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBS0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0ksY0F0OEJKOztBQXk4Qko7RUFBdUI7O0FBQ3ZCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJOztBQUVKO0VBQ0k7RUFDQTs7QUFDQTtFQUNJLGtCQTc4Qks7RUE4OEJMOzs7QUFNaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFwOUJpQjtFQXE5QmpCO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQXdCOzs7QUFDeEI7RUFBd0I7OztBQUV4QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDQztJQUNDO0lBQ0E7O0VBTUQ7SUFDQztJQUNBOztFQUVEO0lBQ0M7SUFDQTs7RUFLRDtBQUFBO0lBRUM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBRUQ7SUFBZ0I7SUFBNkI7O0VBQzdDO0lBQWdCO0lBQTZCOztFQUs1QztJQUFzQjs7RUFDdEI7SUFBZ0I7O0VBQ2hCO0lBQWdCOztFQUlqQjtJQUNDO0lBQ0E7OztBQUlGO0VBQ0M7SUFDQzs7O0FBSUY7RUFDQztJQUNDOzs7QUFJRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtFQUNDO0lBQWdCOztFQUdoQjtJQUNDO0lBQ0E7O0VBR0Q7SUFDQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUlBO0lBQWdCOztFQUNoQjtJQUNDO0lBQ0E7SUFDQTs7O0FBS0g7QUFDQTtFQUNDO0lBQWdCOztFQUNoQjtJQUF1Qjs7RUFDdkI7SUFBOEI7OztBQUcvQjtFQUNDO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFHcEI7QUFDQTtFQUNDOzs7QUFNRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBOzs7QUFVRDtFQUNDO0VBQ0E7RUFDQTs7QUFFRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0M7SUFBTztJQUFZOztFQUNuQjtJQUFPO0lBQVk7OztBQUdwQjtFQUNDO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFHcEI7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNDO0VBQ0E7O0FBQ0E7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtBQUFBO0FBQUE7QUFHQTtFQUNDO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFFcEI7RUFDQztJQUFPO0lBQVk7O0VBQ25CO0lBQU87SUFBWTs7O0FBRXBCO0FBQUE7QUFFQTtFQUNDO0lBQU87O0VBQ1A7SUFBTzs7RUFDUDtJQUFPOzs7QUFHUjtBQUNBO0VBQ0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQUtDOzs7QUFJRjtBQUNBO0FBQ0E7QUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFLQTtFQUNDO0FBQ0E7QUFBQTtBQUFBO0VBR0E7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7O0FBSUY7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtBQUNBO0FBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBQUE7O0FBR0E7RUFDQztBQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7OztBQUtIO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUVBO0FBQ0M7QUFBQTs7QUFFQTtFQUFjO0VBQW1COztBQUVqQztFQUFVO0VBQWU7RUFBd0I7O0FBRWpEO0VBQ0M7RUFDQTtFQUNBOztBQUdEO0VBQXNCOztBQWJ2QjtBQWVDOztBQUNBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUEsWUFDQztFQUVEOztBQUVBO0VBQVk7O0FBR2I7RUFDQztFQUNBO0VBQ0E7RUFDQTs7QTdFcDBDRTtFQUF1QjtFQUFZOztBQUNuQztFQUE2Qjs7QUFDN0I7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDMEM7O0FBQzFDO0VBQW1DOztBNkUrekN0QztFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNrQjtFQUF3Qzs7QUFHM0Q7RUFBdUI7O0FBRXZCO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRDtFQUFzQjtFQUFpQjs7QUFDdkM7RUFBc0I7RUFBaUI7O0FBQ3ZDO0VBQWtCO0VBQWlCO0VBQWlEOztBQUVwRjtFQUNDO0VBQ0E7O0FBQ0E7RUFBVTs7QUFHWDtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0FBekZGO0FBNEZDOztBQUNBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QTdFNTNDRTtFQUF1QjtFQUFZOztBQUNuQztFQUE2Qjs7QUFDN0I7RUFDSTtFQUNBO0VBQ0E7O0FBRUo7RUFDMEM7O0FBQzFDO0VBQW1DOztBNkVzM0N0QztFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTs7QUFFWDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTtFQUFxQjs7QUF0SWpDO0FBeUlDO0FBQUE7O0FBRUE7RUFBZ0I7O0FBQ2hCO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0FBQ0E7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFpQjtFQUFnQjs7QUFDakM7RUFBaUI7RUFBZ0I7O0FBQ2pDO0VBQWlCO0VBQWdCOzs7QUFHbEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUFzQjs7O0FBRXRCO0VBQ0M7SUFDQztJQUNBO0lBQ0E7O0VBRUQ7SUFDQztJQUNBOztFQUVEO0lBQ0M7SUFDQTtJQUNBOztFQUdEO0FBQUE7QUFBQTtJQUVvRDs7O0FBR3JEO0FBQ0E7RUFDQztJQUFvQzs7O0FBR3JDO0FBQUE7QUFBQTtBQUdBO0VBQ0M7RUFDQTtFQUNBOzs7QUFFRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBZ0I7RUFBZ0I7O0FBR2pDO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQU87O0FBUFI7QUFRQzs7QUFDQTtFQUEyQjs7QUFFNUI7RUFBc0I7RUFBa0I7O0FBQ3hDO0VBQWtCOztBQUNsQjtFQUFvQjtFQUFrQjtFQUFnQjs7QUFDdEQ7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQVk7RUFBcUI7RUFBNEI7O0FBRTlEO0VBQXdCO0VBQTRCO0VBQW1COztBQUN2RTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUFPO0VBQVk7OztBQUdyQjtFQUNDO0lBQVc7O0VBQ1g7SUFBTTs7O0FBR1A7QUFBQTtBQUFBO0FBR0E7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBTzs7QUFDUDtFQUFpQjs7QUFFbEI7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVEO0VBQWdCOztBQUNoQjtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVEO0VBQ0M7RUFDQTtFQUNBOztBQUNBO0VBQU87O0FBQ1A7RUFBYTs7QUFDYjtFQUFnQjs7QUFFakI7RUFBa0I7RUFBaUI7O0FBQ25DO0VBQWlCOztBQUNqQjtFQUNDO0VBQ0E7RUFDQTs7QUFDQTtFQUFpQjtFQUFTOztBQUUzQjtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQXVCOzs7QUFJekI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUFPO0VBQWdCO0VBQWlCOztBQUN4QztFQUFTO0VBQWdCOzs7QUFFN0I7RUFBdUI7RUFBaUI7RUFBZ0I7OztBQUN4RDtFQUF1QjtFQUFpQjtFQUFnQjtFQUFpQjs7O0FBRXpFO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQU87O0FBRVI7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQU87RUFBaUI7O0FBRXpCO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFRDtFQUFzQjs7QUFDdEI7RUFDQztFQUNBO0VBQ0E7O0FBRUQ7RUFDQztFQUNBO0VBQ0E7O0FBRUQ7RUFBcUM7O0FBRXJDO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBTzs7QUFDUDtFQUFVOztBQUdYO0VBQ0M7RUFDQTtFQUNBOztBQUVEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBd0I7OztBQUkxQjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQU87O0FBRVI7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQWlCOztBQUVsQjtFQUFtQjs7QUFDbkI7RUFBZ0I7RUFBNEI7O0FBQzVDO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFBVTs7QUFFWDtFQUFrQjtFQUFpQjs7O0FBR3BDO0FBQUE7QUFBQTtBQUlDO0VBRUM7O0FBQ0E7RUFDQztFQUNBOztBQUNBO0VBQVUsT0FseURMOztBQW95RE47RUFBdUI7O0FBRXhCO0VBRUM7O0FBRUQ7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT0F6eURRO0VBMHlEUjtFQUNBO0VBQ0E7O0FBRUQ7RUFFQztFQUNBOztBQUNBO0VBQzhDLE9BbnpEdEM7OztBQXV6RFY7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRDtFQUNDOztBQUdEO0VBQ0M7RUFDQTs7O0FDNzFERjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7OztBQ2xISjtFQUNJO0VBQ0E7RUFDQTs7QUFDSDtFQUNDO0VBQ0E7O0FBRUU7RUFDSTs7QUFFUDtFQUNDO0VBQ0E7O0FBQ0E7RUFDQztFQUNHOztBQUVKO0VBQ0M7O0FBRUs7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBOztBQUVKO0VBQ0k7O0FBTWhCO0VBQ0k7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJOztBQUNBO0VBQ0k7RUFDQTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7RUFDQTs7QUFPWjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7O0FDdkdaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGVBbERpQjtFQW1EakIsWUFDSTs7O0FBSVI7RUFDSSxPQTFEZ0I7RUEyRGhCO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFJSjtFQUtJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOzs7QUFNUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFJQTs7O0FBSUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsZUFqSGlCO0VBa0hqQixZQUNJOztBQUtKO0VBQ0ksT0ExSFk7RUEySFo7OztBQU1SO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGVBdElpQjtFQXVJakI7OztBQU9KO0VBQWtDLFdBeElQOzs7QUFpSjNCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0E7QUFBQTtFQUVJO0VBQ0E7OztBQU1SO0VBQ0k7RUFDQTs7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBYUo7RUFDSTs7O0FBYUo7RUFDSTs7O0FBTUE7RUFBb0I7O0FBQ3BCO0VBQW9CLE9BdE5KO0VBc044QjtFQUEwRDs7QUFDeEc7RUFBb0IsT0F2Tko7RUF1TjhCO0VBQTBEO0VBQW1COzs7QUFNM0g7RUFBb0I7O0FBQ3BCO0VBQW9CLE9BOU5KO0VBOE44Qjs7O0FBT2xEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBTUE7RUFBWTs7QUFWaEI7RUFpQkk7RUFDQTtFQUNBOzs7QUFTSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBRUk7RUFDQTs7O0FBTVI7QUFBQTtFQUMyQjs7O0FBSTNCO0VBQ0k7RUFDQSxXQWpTa0I7RUFrU2xCO0VBQ0E7RUFDQTtFQUNBLGVBelNpQjtFQTBTakI7RUFPQTtFQUNBO0VBQ0EsWUFDSTs7QUFNSjtFQUNJO0VBQ0E7OztBQUtSO0VBQ0k7SUFBa0I7OztBQUd0QjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0VBRUk7RUFDQTs7O0FBV1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFRSjtFQUNJO0lBQU87SUFBWTs7RUFDbkI7SUFBTztJQUFZOzs7QUFJbkI7QUFBQTtFQUVJO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQUlSO0VBQ0k7QUFBQTtJQUVJOzs7QUFPUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFlSjtFQUVRO0lBQWM7O0VBTWQ7SUFDSTs7O0FDcGFaO0VBQ0k7OztBQVdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0VBQ0k7OztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLSjtFQUNJO0lBQ0k7SUFDQTs7RUFHSjtJQUNJOzs7QUFJUjtFQUlJO0VBQ0E7RUFDQTs7O0FBWUo7QUFBQTtFQUVJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQ3RHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFTSTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQVFJOzs7QUFFSjtFQUNJOzs7QUFFSjtFQUNJOzs7QUFFSjtBQUFBO0VBRUk7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDdkNKO0VBQWdDOzs7QUFBb0I7RUFBc0I7RUFBa0I7RUFBVTtFQUFRO0VBQVc7RUFBWTtFQUFnQjs7O0FBQWM7RUFBeUQ7RUFBa0I7RUFBVztFQUFRO0VBQVM7RUFBcUI7RUFBVztFQUFZO0VBQW1CO0VBQTZCO0VBQXlCOzs7QUFBaUM7RUFBNkI7RUFBcUQ7OztBQUFtQztFQUE0QjtFQUFxRDs7O0FBQW1DO0VBQXNFO0VBQW1DOzs7QUFBVTtFQUErRDs7O0FBQVU7RUFBc0Q7RUFBb0I7RUFBZTtFQUE4Qjs7O0FBQTBCO0VBQWE7RUFBdUI7RUFBYztFQUFrQjtFQUFXO0VBQWdCO0VBQWdCOzs7QUFBYztFQUFlOzs7QUFBc0I7RUFBbUI7OztBQUFhO0VBQXVCO0VBQW1CO0VBQW9COzs7QUFBVztFQUFxQjs7O0FBQVc7RUFBdU07RUFBNEI7OztBQUE2QjtFQUEwQzs7O0FBQXlCO0VBQXFMO0VBQXlCOzs7QUFBMEI7RUFBeUM7RUFBa0I7RUFBcUI7RUFBZ0I7RUFBaUI7RUFBWTtFQUFrQjtFQUFnQjtFQUFrQjtFQUFXO0VBQTJCO0VBQXNCO0VBQWtCOzs7QUFBbUI7RUFBMEM7OztBQUFjO0VBQWlDOzs7QUFBYztFQUE2RTs7O0FBQVc7RUFBcUQ7OztBQUFxQjtFQUFxRDtFQUFxQjs7O0FBQWE7RUFBcUI7RUFBaUI7OztBQUFrQjtFQUF3Qjs7O0FBQWU7RUFBbUI7RUFBZ0I7RUFBYztFQUF1QjtFQUFrQjtFQUF5QjtFQUFnQjs7O0FBQWU7RUFBa0I7RUFBa0I7RUFBcUI7RUFBMEI7RUFBa0I7RUFBa0I7RUFBVztFQUFjO0VBQW1CO0VBQWtCO0VBQW1CO0VBQWdCO0VBQWU7OztBQUF1QjtFQUF1QjtFQUFlO0VBQWdCO0VBQWtCO0VBQVE7RUFBTTtFQUFTO0VBQWdCO0VBQWtCO0VBQVc7RUFBa0I7RUFBaUI7RUFBd0I7OztBQUFrQjtFQUE2QjtFQUFjO0VBQWM7OztBQUFlO0VBQTBEOzs7QUFBbUI7RUFBc0U7OztBQUFXO0VBQXNCO0VBQWdCO0VBQWdCO0VBQXdCO0VBQW1CO0VBQWtCOzs7QUFBeUI7RUFBMkM7RUFBaUI7RUFBc0I7RUFBYztFQUFTO0VBQXFCOzs7QUFBZTtFQUFxQjtFQUFrQjtFQUFXO0VBQVk7RUFBVTtFQUFRO0VBQWdCO0VBQWtCOzs7QUFBOEI7RUFBNEI7RUFBa0I7RUFBUTtFQUFRO0VBQVc7RUFBZTtFQUEwQztFQUFtQjtFQUF1Qjs7O0FBQVc7RUFBMEI7RUFBYztFQUFxQjtFQUFtQjs7O0FBQWdCO0VBQStDOzs7QUFBYTtFQUE4QjtFQUFrQjtFQUFjO0VBQWdCO0VBQVc7RUFBaUI7RUFBYztFQUF5QjtFQUFnQjtFQUE4QjtFQUErQjtFQUFXOzs7QUFBaUM7RUFBc0I7RUFBZ0I7RUFBcUI7RUFBVTtFQUFTO0VBQWU7OztBQUFtQjtFQUFrRDtFQUFZO0VBQTRCO0VBQTZCO0VBQTJCO0VBQTRCO0VBQW1COzs7QUFBNkI7RUFBd0M7OztBQUFhO0VBQXNCOzs7QUFBYztFQUFxQjtFQUFjO0VBQWE7RUFBZ0I7RUFBaUI7RUFBcUI7RUFBb0I7RUFBc0I7RUFBa0I7RUFBZTs7O0FBQW1CO0VBQTJCO0VBQU07RUFBUTtFQUFrQjtFQUFpQjtFQUFtQjtFQUFrQjs7O0FBQWU7RUFBZ0M7RUFBbUI7RUFBYTs7O0FBQVc7RUFBc0M7RUFBMEI7RUFBbUI7OztBQUFXO0VBQStCO0VBQW1CO0VBQWM7OztBQUFnQjtFQUFxQztFQUE0Qjs7O0FBQWE7RUFBOEQ7RUFBbUI7OztBQUFXO0VBQW9FO0VBQW1CO0VBQTRCOzs7QUFBVztFQUF5RjtFQUFtQjs7O0FBQWM7RUFBK0I7RUFBNkI7RUFBd0I7RUFBWTs7O0FBQW9CO0VBQTRCO0VBQW1COzs7QUFBYztFQUEyRDtFQUFtQjs7O0FBQVc7RUFBaUU7OztBQUFtQjtFQUE4RDs7O0FBQW1CO0VBQW9FO0VBQW1COzs7QUFBVztFQUEwRTtFQUFtQjtFQUE0Qjs7O0FBQVc7RUFBb0Q7OztBQUF5QjtFQUE2Qzs7O0FBQVU7RUFBcUI7RUFBa0I7RUFBaUI7RUFBcUI7OztBQUFtQjtFQUF1Qjs7O0FBQWlCO0VBQStCO0VBQVc7OztBQUFTO0VBQTZCOzs7QUFBdUI7RUFBZ0M7OztBQUFpQjtFQUFxQztFQUFXOzs7QUFBTztFQUE4QjtFQUFXOzs7QUFBVTtFQUFnQztFQUFXOzs7QUFBUztFQUFvQjtJQUFHOztFQUFvQjtJQUFHOzs7QUFHNzlOO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtFQUdJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUE7RUFDSTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7O0FBQ0E7RUFFSTtFQUNBOztBQUNBO0VBQ0k7O0FBS1o7RUFFSTtFQUNBOztBQUVKO0VBQ0k7O0FBQ0E7RUFDSTs7QUFHUjtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTs7QUFDQTtFQUNJOztBQUdSO0VBQ0k7OztBQ3hFVjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBS0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUVFOztBQUdGO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0VBR0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBUkY7SUFTSTtJQUNBOzs7QUFHRjtFQWJGO0lBY0k7SUFDQTs7O0FBR0Y7RUFsQkY7SUFtQkk7SUFDQTtJQUNBOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNFOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTs7QUFHRjtFQUlFOzs7QUM3Uko7RUFDSTs7O0FDSEo7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7QUFBQTtFQUVJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7SUFDSTs7RUFHSjtJQUNJOzs7QUFJUjtFQUNJO0lBQ0k7O0VBR0o7SUFDSTs7O0FBSVI7QUFBQTtFQUVJO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtFQUlJOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0kiLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlIFwiY29sb3JzXCI7XG5cblxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9SW50ZXI6aXRhbCxvcHN6LHdnaHRAMCwxNC4uMzIsMTAwLi45MDA7MSwxNC4uMzIsMTAwLi45MDAmZGlzcGxheT1zd2FwJyk7XG5cbiR0ZXh0LWJvZHktY29sb3I6IGNvbG9ycy4kYmFzZS1ibGFjaztcbiR0aXRsZS1ib2R5LWNvbG9yOiBjb2xvcnMuJHB1cnBsZS01MDA7XG5cbiRwYWdlLXJlc29sdXRpb246IDgwJTtcblxuaDEucGFnZS10aXRsZSB7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICR0aXRsZS1ib2R5LWNvbG9yO1xuXG59IiwiQHVzZSAnLi4vbW9kdWxlcy9fY29sb3JzLnNjc3MnO1xuQHVzZSBcInNhc3M6Y29sb3JcIjtcbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUludGVyOml0YWwsb3Bzeix3Z2h0QDAsMTQuLjMyLDEwMC4uOTAwOzEsMTQuLjMyLDEwMC4uOTAwJmRpc3BsYXk9c3dhcCcpO1xuXG4kcGFnZS1yZXNvbHV0aW9uOiA4MCU7XG5cbi8vIEJvcmRlci1iZWFtIGFuZ2xlIGZvciB0aGUgdjIgdG9vbGJhcidzIHBsYXkgYnV0dG9uICguZmUyLXBsYXk6OmJlZm9yZSkuXG4vLyBNVVNUIGJlIGEgdG9wLWxldmVsIEBwcm9wZXJ0eSDigJQgcmVnaXN0ZXJpbmcgaXQgYXMgYW4gPGFuZ2xlPiBpcyB3aGF0IGxldHMgdGhlXG4vLyBicm93c2VyIGludGVycG9sYXRlIGl0IGZyYW1lLWJ5LWZyYW1lLCBvdGhlcndpc2UgdGhlIGNvbmljLWdyYWRpZW50IHNuYXBzXG4vLyBpbnN0ZWFkIG9mIHJvdGF0aW5nLiBTYW1lIG1lY2hhbmlzbSBhcyAtLXFucC1iZWFtLWFuZ2xlIGluIHRoZSBub2RlLXBpY2tlci5cbkBwcm9wZXJ0eSAtLWZlMi1iZWFtLWFuZ2xlIHtcbiAgICBzeW50YXg6IFwiPGFuZ2xlPlwiO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbiAgICBpbml0aWFsLXZhbHVlOiAwZGVnO1xufVxuXG4vLyBNaW5pbWFsIGJyZWFkY3J1bWIgYmFyIGFib3ZlIHRoZSBmbG93IGVkaXRvciBjYW52YXNcbi5mZS1mb250LXByZWxvYWQge1xuICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmZlLWJyZWFkY3J1bWItYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogNnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAuZmUtYnJlYWRjcnVtYi1iYWNrIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgY29sb3I6ICM0MTQ5OWE7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlO1xuICAgICAgICBmbGV4LXNocmluazogMDtcblxuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4xKTsgfVxuXG4gICAgICAgIC5tZGkgeyBmb250LXNpemU6IDIwcHg7IGxpbmUtaGVpZ2h0OiAxOyB9XG4gICAgfVxuXG59XG5cbi5mbG93ZWRpdG9yX21vZGFsIC50YWJsZS1yZXNwb25zaXZlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbn1cblxuLmZsb3dlZGl0b3JfaG9sZGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLy8gcWRuYXByby1ub2RlLXBpY2tlciByYWlsIChvcHQtaW4gP25vZGVwaWNrZXI9djIsIHNlZSBIb2xkZXIudnVlKS4gQSBERURJQ0FURURcbi8vIHdyYXBwZXIgYXJvdW5kIGp1c3QgPG5vZGViYXI+KzxtYWluPiDigJQgTk9UIGRpc3BsYXk6ZmxleCBvbiAuZmxvd2VkaXRvcl9ob2xkZXJcbi8vIGl0c2VsZiwgd2hpY2ggd291bGQgYWxzbyB0dXJuIDxtb2RhbHM+ICh0aGUgbm9kZS1vcHRpb25zIFwid2hpdGUgd2luZG93XCIpLFxuLy8gPGxvYWRpbmc+LCA8bmV3PiwgPHZlcnNpb25zPiwgPHByZXZpZXctbW9kYWw+IGludG8gZmxleCBpdGVtcyBhbmQgZHJhZyB0aGVtXG4vLyBpbnRvIHRoZSByb3cgaW5zdGVhZCBvZiBvdmVybGF5aW5nIChidWcgZm91bmQgMTYuMDcuMjAyNikuIFRoZSByYWlsIGdldHMgYVxuLy8gRklYRUQgNTZweCBzbG90IChtYXRjaGVzIHRoZSBjb21wb25lbnQncyAtLW5wLXJhaWwtdywgc2hydW5rIGZyb20gNjhweFxuLy8gMTYuMDcuMjAyNikgc28gaXQgcmVzZXJ2ZXMgcmVhbCBzcGFjZSBpbnN0ZWFkIG9mIGZsb2F0aW5nIG9uIHRvcCBvZiB0aGVcbi8vIGNhbnZhczsgLmZsb3dlZGl0b3IgdGFrZXMgdGhlIHJlc3QuIFRoZSByYWlsJ3MgZXhwYW5kIHBhbmVsICgyMDhweCB3aGVuIGFcbi8vIGNhdGVnb3J5IGlzIG9wZW4pIGlzIE5PVCBwYXJ0IG9mIHRoaXMgcmVzZXJ2ZWQgd2lkdGgg4oCUIGl0IHNpbXBseSBvdmVyZmxvd3Ncbi8vIHRoZSA1NnB4IHNsb3Qgd2hlbiBvcGVuIChub1xuLy8gb3ZlcmZsb3c6aGlkZGVuIGhlcmUgdG8gY2xpcCBpdCksIHNvIG9wZW5pbmcvY2xvc2luZyBhIGNhdGVnb3J5IG5ldmVyXG4vLyBjaGFuZ2VzIC5mbG93ZWRpdG9yJ3Mgc2l6ZSBhbmQgbmV2ZXIgdHJpZ2dlcnMgYSBHb0pTIGNhbnZhcyByZXNpemUuXG4uZmxvd2VkaXRvcl9ob2xkZXJfX2NhbnZhcy1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLmZsb3dlZGl0b3JfaG9sZGVyX19jYW52YXMtcm93ID4gLmZsb3dlZGl0b3Itbm9kZXBpY2tlci12MiB7XG4gICAgZmxleDogMCAwIDU2cHg7XG4gICAgLy8gV2l0aG91dCB0aGlzLCB0aGUgaXRlbSdzIGRlZmF1bHQgbWluLXdpZHRoOmF1dG8gcmVzb2x2ZXMgdG8gaXRzIG93blxuICAgIC8vIG1pbi1jb250ZW50IHNpemUg4oCUIHJhaWwgKDU2cHgpIFBMVVMgYW4gb3BlbiBwYW5lbCAofjIwOHB4KSDigJQgd2hpY2hcbiAgICAvLyBzaWxlbnRseSBvdmVycmlkZXMgZmxleC1zaHJpbms6MCBhbmQgZm9yY2VzIHRoZSBib3ggcGFzdCBpdHMgNTZweFxuICAgIC8vIGJhc2lzLCBzaG92aW5nIC5mbG93ZWRpdG9yIG92ZXIgaW5zdGVhZCBvZiBsZXR0aW5nIHRoZSBwYW5lbCBmbG9hdFxuICAgIC8vIG92ZXIgdGhlIGNhbnZhcyAoZm91bmQgdmlhIEtpbSdzIHNjcmVlbnNob3QsIDE2LjA3LjIwMjYpLlxuICAgIG1pbi13aWR0aDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIHN0YWNraW5nIGNvbnRleHQgZm9yIHRoZSBvdmVyZmxvd2luZyBwYW5lbFxuICAgIHotaW5kZXg6IDEwO1xufVxuLy8gUmlnaHQgY29sdW1uID0gYnJlYWRjcnVtYiBob3N0IChhdXRvIGhlaWdodCkgc3RhY2tlZCBhYm92ZSB0aGUgY2FudmFzXG4vLyAoZmxleDoxKS4gU2l0cyB0byB0aGUgUklHSFQgb2YgdGhlIGZ1bGwtaGVpZ2h0IHJhaWwsIHNvIHRoZSByYWlsIHJ1bnMgdGhlXG4vLyBmdWxsIHBhZ2UgaGVpZ2h0IGFuZCB0aGUgYnJlYWRjcnVtYiBzdGFydHMgbmV4dCB0byBpdCAoS2ltIDE2LjA3LjIwMjY6XG4vLyBcImhlbGVtYWFsIHRvdCBib3ZlbiBsYXRlbiBkb29ybG9wZW4sIGJyZWFkY3J1bWIgZXZlbiBvcHNjaHVpdmVuXCIpLlxuLmZsb3dlZGl0b3JfaG9sZGVyX19jYW52YXMtcm93ID4gLmZlLXJpZ2h0LWNvbCB7XG4gICAgZmxleDogMSAxIDAlO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4uZmxvd2VkaXRvcl9ob2xkZXJfX2NhbnZhcy1yb3cgLmZlLWJyZWFkY3J1bWItaG9zdCB7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG4uZmxvd2VkaXRvcl9ob2xkZXJfX2NhbnZhcy1yb3cgLmZlLXJpZ2h0LWNvbCA+IC5mbG93ZWRpdG9yIHtcbiAgICBmbGV4OiAxIDEgMCU7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICAvLyBPdmVycmlkZXMgdGhlIGNsYXNzaWMgd2lkdGg6MTAwJSBiZWxvdywgd2hpY2ggd291bGQgZmlnaHQgZmxleC1iYXNpczpcbiAgICAvLyBhdXRvIChpdCByZWFkcyB0aGUgd2lkdGggcHJvcGVydHkpIGFuZCBwcm9kdWNlIGEgaHVnZWx5IG5lZ2F0aXZlXG4gICAgLy8gZnJlZS1zcGFjZSBjYWxjIGluc3RlYWQgb2YgXCJyZW1haW5pbmcgc3BhY2UgYWZ0ZXIgdGhlIHJhaWxcIi5cbiAgICB3aWR0aDogYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi8vIOKUgOKUgCBGb3JtIGVkaXRvciBlbXB0eS1zdGF0ZSBjYWxsb3V0IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQ2VudHJlZCBvdmVyIHRoZSBjYW52YXMsIGxpZnRlZCBhYm92ZSB0aGUgKGF1dG8tY2VudHJlZCkgZmxvdyByb3cgc28gaXRzIHRhaWxcbi8vIHBvaW50cyBkb3duIGF0IHRoZSBcIitcIiBiZXR3ZWVuIHN0YXJ0IGFuZCBmaW5pc2guIFB1cmVseSBpbnN0cnVjdGlvbmFsLCBzbyBpdFxuLy8gbmV2ZXIgaW50ZXJjZXB0cyBwb2ludGVyIGV2ZW50cyBvbiB0aGUgY2FudmFzIGJlbmVhdGggaXQuXG4uZmUtZm9ybS1lbXB0eS1oaW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogNTAlO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIGNhbGMoLTEwMCUgLSA0NnB4KSk7XG4gICAgd2lkdGg6IDI2NHB4O1xuICAgIG1heC13aWR0aDogNzglO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBib3gtc2hhZG93OiAwIDE4cHggNDRweCByZ2JhKDM4LCA0MiwgOTIsIDAuMjApO1xuICAgIHBhZGRpbmc6IDE2cHggMTZweCAxOHB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTYwbXMgZWFzZTtcblxuICAgIC8vIERvd253YXJkIHRhaWwgKHJvdGF0ZWQgc3F1YXJlKSBwb2ludGluZyBhdCB0aGUgXCIrXCIuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgYm90dG9tOiAtN3B4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDNweCAwO1xuICAgICAgICBib3gtc2hhZG93OiAzcHggM3B4IDdweCByZ2JhKDM4LCA0MiwgOTIsIDAuMTApO1xuICAgIH1cbn1cbi5mZS1mb3JtLWVtcHR5LWhpbnRfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzJhMmU1ZTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IC8vIFtLaW0gMTYuMDddIGNlbnRyZWVyIGRlIHRla3N0IG9wIGRlIGVtcHR5LXN0YXRlIGNhcmRcbn1cbi5mZS1mb3JtLWVtcHR5LWhpbnRfX3N1YiB7XG4gICAgZm9udC1zaXplOiAxMi41cHg7XG4gICAgY29sb3I6ICM2YzcwOTk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5mZS1mb3JtLWVtcHR5LWhpbnRfX2NhcmQge1xuICAgIGJvcmRlcjogMS41cHggc29saWQgI2U2ZTdlZjtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMzgsIDQyLCA5MiwgMC4wOCk7XG4gICAgcGFkZGluZzogMTBweDtcbn1cbi5mZS1mb3JtLWVtcHR5LWhpbnRfX2NhcmQtaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWNlZWZiO1xuICAgIGNvbG9yOiAjM2E0MjkwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4uZmUtZm9ybS1lbXB0eS1oaW50X19jYXJkLWZpZWxkIHtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCAjZTZlN2VmO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmJmYmZlO1xuICAgICYgKyAmIHsgbWFyZ2luLXRvcDogOHB4OyB9XG59XG5cbi5mbG93ZWRpdG9yLWRpYWdyYW0taG9sZGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbn1cblxuLmZsb3dlZGl0b3JfZW1wdHlfc3RhdGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZDogY29sb3JzLiR3aGl0ZTtcbiAgICB6LWluZGV4OiAyMztcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjb2xvcjogcmdiYSgjMDAwLCAuNCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZsb3dlZGl0b3JfZW1wdHlfc3RhdGVfdGV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICBwYWRkaW5nOiAxMDBweDtcbn1cblxuLmZsb3dlZGl0b3JfZW1wdHlfc3RhdGVfdGV4dDpob3ZlciB7XG4gICAgY29sb3I6ICMxNThiNmM7XG59XG5cbi5mbG93ZWRpdG9yX2VtcHR5X3N0YXRlX2ljb24ge1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmZsb3dlZGl0b3Itb3ZlcmZsb3ctYXV0byB7XG4gICAgbWF4LWhlaWdodDogNTAwcHg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwtaG9sZGVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDEwMDE7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIEEgbGVnYWN5IG1vZGFsIHRoYXQgb3BlbnMgT04gVE9QIG9mIGFub3RoZXIgbW9kYWwgaW5zdGVhZCBvZiByZXBsYWNpbmcgaXQuXG4gICAgLy8gcWRuYXByby13aXphcmQtbW9kYWwgc2l0cyBhdCB6LWluZGV4IDkwMDAsIHNvIHRoZSAxMDAxIGFib3ZlIHdvdWxkIGhpZGUgc3VjaCBhXG4gICAgLy8gZGlhbG9nIGJlaGluZCBpdCB3aGlsZSBpdCBpcyBzdGlsbCBjbGlja2FibGUg4oCUIHRoZSB3b3JzdCBvZiBib3RoLiBPbmx5IHRoZVxuICAgIC8vIG1vZGlmaWVyIGlzIHJhaXNlZCwgc28gdGhlIG90aGVyIGxlZ2FjeSBtb2RhbHMga2VlcCB0aGVpciBvbGQgc3RhY2tpbmcuXG4gICAgLy9cbiAgICAvLyDimqDvuI8gTlUgT05HRUJSVUlLVCAoMDQuMDguMjAyNikuIERlIGVuaWdlIGdlYnJ1aWtlciB3YXMgZGUgcmVnZWwtZWRpdG9yLCBlbiBkaWVcbiAgICAvLyBzdGFhdCBzaW5kc2RpZW4gaW4gZWVuIGVjaHRlIGBxZG5hcHJvLW1vZGFsYCAoemllIGAuZmUtcnVsZS1tb2RhbGAsIGRhdCBkZVxuICAgIC8vIDkxMDAgaGVlZnQgb3Zlcmdlbm9tZW4pLiBCZXd1c3QgbGF0ZW4gc3RhYW46IGRpdCBpcyBoZXQgd2Vya2VuZGUgcmVjZXB0IHZvb3JcbiAgICAvLyBkZSB2b2xnZW5kZSBsZWdhY3ktbW9kYWwgZGllIG92ZXIgZWVuIGFuZGVyZSBoZWVuIG1vZXQsIGVuIGRhdCByZWNlcHQgaXMgbWV0XG4gICAgLy8gYGVsZW1lbnRGcm9tUG9pbnRgIGdlbWV0ZW4gaW4gcGxhYXRzIHZhbiBiZXJlZGVuZWVyZC4gW0tpbSAwNC4wOC4yMDI2XVxuICAgICYuLXN0YWNrZWQge1xuICAgICAgICB6LWluZGV4OiA5MTAwO1xuICAgIH1cblxuICAgIC8vIERlIGJldmVzdGlnaW5nc3ZyYWFnIHZhbiBgJHByb21wdGAgKHBsdWdpbnMvcHJvbXB0L0JveC52dWUpLiBNb2V0IGJvdmVuIEFMTEVTXG4gICAgLy8gdWl0OiBib3ZlbiBoZXQgbm9kZS1tb2RhbCAoOTAwMCksIGRlIHJlZ2VsLWVkaXRvciAoOTEwMCkgZW4gZGUgZHJvcGRvd25sYWFnXG4gICAgLy8gKDkyMDApLiBab25kZXIgZGl0IHN0b25kIGRlIHZyYWFnIG9wIDEwMDEsIGR1cyBvbnppY2h0YmFhciBvbmRlciBoZXQgdmVuc3RlclxuICAgIC8vIHdhYXIgaGlqIG92ZXIgZ2luZyDigJQgZ2VtZXRlbiwgbmlldCBiZXJlZGVuZWVyZC4gW0tpbSAwNS4wOC4yMDI2XVxuICAgICYuLXByb21wdC1ob2xkZXIge1xuICAgICAgICB6LWluZGV4OiA5MzAwO1xuICAgIH1cbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwtYmFja2dyb3VuZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCMwMDAsIC41KTtcbiAgICB6LWluZGV4OiAxMDAzO1xuICAgIGFuaW1hdGlvbjogbW9kYWwtZmFkZS1pbiAyMDBtcyBlYXNlLW91dCBib3RoO1xufVxuXG4uZmxvd2VkaXRvcl9tb2RhbCxcbi5mbG93ZWRpdG9yX21lbnUge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0OSwgMjQ5LCAyNDksIDAuNzUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNnB4KTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxNnB4KTtcbiAgICBhbmltYXRpb246IG1vZGFsLXNjYWxlLWluIDIwMG1zIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpIGJvdGg7XG4gICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMzEsIDE0LCAxNCwgMC4xNSk7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIHotaW5kZXg6IDEwMDQ7XG4gICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcGFkZGluZzogMnJlbTtcblxuICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIE1vZGVybiB0aGluIHNjcm9sbGJhclxuICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgICBzY3JvbGxiYXItY29sb3I6IHJnYmEoNjUsIDczLCAxNTQsIDAuMykgdHJhbnNwYXJlbnQ7XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiA0cHg7XG4gICAgfVxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4zKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC41KTsgfVxuICAgIH1cbn1cblxuLmZsb3dlZGl0b3JfbWVudXtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgXG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDAwcHgpIHtcblxuICAgIC5mbG93ZWRpdG9yX21lbnUsXG4gICAgLmZsb3dlZGl0b3JfbW9kYWwge1xuICAgICAgICBsZWZ0OiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgdG9wOiA1MCUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5mbG93ZWRpdG9yX21vZGFsLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAuaWNvbi13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuXG4gICAgICAgIC50cy1yb3VuZGVkLWJvcmRlci1zbWFsbCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogLjIyNXJlbTtcblxuICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5mbG93ZWRpdG9yX21lbnUuLWFkZC1ub2RlIHtcbiAgICB3aWR0aDogMzcwcHg7XG59XG5cbi5mbG93ZWRpdG9yX21vZGFsIHt9XG5cbi5mbG93ZWRpdG9yX21vZGFsLi10cmFuc2xhdGUtbGFiZWwge1xuICAgIG1pbi13aWR0aDogNTAwcHg7XG59XG5cbi5mbG93ZWRpdG9yX21vZGFsLi10ZW1wbGF0ZS1tYW5hZ2VyIHtcbiAgICB3aWR0aDogODAlO1xuICAgIG1pbi13aWR0aDogMTA3NXB4O1xufVxuXG4uZmxvd2VkaXRvcl9tb2RhbC4tYWN0aXZpdGllcy1tYW5hZ2VyIHtcbiAgICBtaW4td2lkdGg6IDUwMHB4O1xufVxuXG4uZmxvd2VkaXRvcl9tb2RhbC4tY29uZGl0aW9ucy1tYW5hZ2VyIHtcbiAgICBtaW4td2lkdGg6IDk1MHB4O1xufVxuXG4uZmxvd2VkaXRvcl9tb2RhbC4tbm9kZS1vcHRpb25zIHtcbiAgICBtaW4td2lkdGg6IDk1MHB4O1xufVxuXG4uZmxvd2VkaXRvcl9tb2RhbC4tcHJvbXB0IHtcbiAgICBwYWRkaW5nOiAyMHB4O1xufVxuXG4uZmxvd2VkaXRvcl9tb2RhbC4tc3ViZmxvdy1sb2dpYy1hbmQtcnVsZXMsXG4uZmxvd2VkaXRvcl9tb2RhbC4tYWN0aW9uLW5vZGUtb3B0aW9ucyB7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXgtd2lkdGg6IDk2MHB4O1xuXG4gICAgLmZsb3dlZGl0b3JfbW9kYWwtYm9keSB7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG1heC1oZWlnaHQ6IDgwdmg7XG4gICAgfVxufVxuXG4vLyAoSGllciBzdG9uZCBgLmZsb3dlZGl0b3JfbW9kYWwuLWZsb3ctbG9naWNgLCBkZSBicmVkZXJlIGxlZ2FjeS1zY2hpbCB2YW4gZGVcbi8vIHJlZ2Vsc2V0cy1tb2RhbCB2YW4gZGUgbG9naWNhLW5vZGUuIERpZSBtb2RhbCBpcyBvcCAwNS4wOC4yMDI2IHZlcmR3ZW5lbjogZGVcbi8vIGxvZ2ljYS1ub2RlIGhlZWZ0IG51IGVlbiByZWdlbGxpanN0IG1ldCBlZW4gYHFkbmFwcm8tbW9kYWxgIHBlciByZWdlbCwgcHJlY2llc1xuLy8gem9hbHMgZGUgb3ZlcmRyYWNodC1ub2RlLiBaaWpuIGxhYXRzdGUgY29uc3VtZW50IHdhcyBgRmxvd0xvZ2ljT3B0aW9ucy52dWVgLCBkdXMgZGVcbi8vIGhlbGUgbW9kaWZpZXIgaXMgbWVlZ2VnYWFuIGluIHBsYWF0cyB2YW4gYWxzIGRvZGUgQ1NTIHRlIGJsaWp2ZW4gc3RhYW4uKVxuXG4uZmxvd2VkaXRvcl9tb2RhbC1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMzEzODdhO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAvKm1hcmdpbjogMTVweCAwOyovXG4gICAgLy8gbWFyZ2luOiAwIDAgMTVweCAwO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgLy8gcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLmZlLWNhcmQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLnRzLXJvdW5kZWQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgfVxuXG4gICAgLnN1YnRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICB9XG59XG5cbi5mbG93ZWRpdG9yX21vZGFsLWNsb3NlIHtcbiAgICBjb2xvcjogIzAwMDtcbiAgICBvcGFjaXR5OiAuNTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4uZmxvd2VkaXRvcl9tb2RhbC1jbG9zZTpob3ZlciB7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgb3BhY2l0eTogLjc1O1xufVxuXG4uZmxvd2VkaXRvcl9tb2RhbC1jbG9zZTpiZWZvcmUge1xuICAgIGZvbnQtZmFtaWx5OiBcIk1hdGVyaWFsIERlc2lnbiBJY29uc1wiO1xuICAgIGNvbnRlbnQ6ICdcXEYwMTU2Jztcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwtYm9keSB7XG4gICAgcGFkZGluZzogMXJlbVxufVxuXG4vLyBIZWFkZXIgY29sb3IgcGlja2VyIChtb3ZlZCBmcm9tIEdlYXZhbmNlZXJkZSBpbnN0ZWxsaW5nZW4pXG4uZmUtaGVhZGVyLWNvbG9yLXBpY2tlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbn1cblxuLmZlLWhlYWRlci1jb2xvci1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG59XG5cbi5mZS1oZWFkZXItY29sb3ItaW5wdXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5mZS1oZWFkZXItY29sb3ItZG90IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xuICAgIH1cbn1cblxuLmZlLWhlYWRlci1jb2xvci1pbnB1dDpjaGVja2VkICsgLmZlLWhlYWRlci1jb2xvci1kb3Qge1xuICAgIGJvcmRlci1jb2xvcjogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xufVxuXG4uZmxvd2VkaXRvcl9tb2RhbC1mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcblxuXG4gICAgLmJ0bjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcbiAgICB9XG59XG5cbi5mbG93ZWRpdG9yX21vZGFsLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwtbGFiZWwuLWVycm9yOmFmdGVyIHtcbiAgICBmb250LWZhbWlseTogXCJNYXRlcmlhbCBEZXNpZ24gSWNvbnNcIjtcbiAgICBjb250ZW50OiAnXFxGMDc4Nyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbG9yOiAjZTMzMjQ0O1xuICAgIHJpZ2h0OiA3cHg7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIHRvcDogM3B4O1xufVxuXG4uZmxvd2VkaXRvcl9tb2RhbC1lcnJvciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwtbGFiZWwuLWVycm9yIC5mbG93ZWRpdG9yX21vZGFsLWVycm9yIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogI2RmOTI5MjtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbWFyZ2luOiA1cHggMCAwIDIwJTtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwtbGFiZWwuLWVycm9yIC5mbG93ZWRpdG9yX21vZGFsLWlucHV0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGY5MjkyO1xufVxuXG4uZmxvd2VkaXRvcl9tb2RhbC1sYWJlbF90ZXh0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjAlO1xuICAgIG1hcmdpbjogNnB4IDAgMDtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwtaW5wdXQge1xuICAgIHdpZHRoOiA4MCU7XG59XG5cbmlucHV0LmZsb3dlZGl0b3JfbW9kYWwtc2VwYXJhdG9yLWNoZWNrYm94IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwtc2VwYXJhdG9yIHtcbiAgICBtYXJnaW46IDEwcHggMCAxMHB4IDA7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mbG93ZWRpdG9yX2NvbmRpdGlvbnMtbWFuYWdlcl9saXN0LWhvbGRlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDQ1JTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5mbG93ZWRpdG9yX2NvbmRpdGlvbnMtbWFuYWdlcl9saXN0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNGU0O1xuICAgIGhlaWdodDogNDAwcHg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxuLmZsb3dlZGl0b3JfY29uZGl0aW9ucy1tYW5hZ2VyX2xpc3QtbG9hZGluZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNzVweDtcbiAgICBsZWZ0OiAxcHg7XG4gICAgcmlnaHQ6IDFweDtcbiAgICBib3R0b206IDFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGNvbG9ycy4kd2hpdGUsIC44KTtcbn1cblxuLmZsb3dlZGl0b3JfY29uZGl0aW9ucy1tYW5hZ2VyX2xpc3Qtc3Bpbm5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICBjb2xvcjogIzBlYTU3ZjtcbiAgICBmb250LXNpemU6IDI0cHg7XG59XG5cbi5mbG93ZWRpdG9yX2NvbmRpdGlvbnMtbWFuYWdlcl9saXN0LWl0ZW0ge1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xufVxuXG4uZmxvd2VkaXRvcl9jb25kaXRpb25zLW1hbmFnZXJfbGlzdC1pdGVtLi1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZDogIzFhYWU4ODtcbiAgICBjb2xvcjogY29sb3JzLiR3aGl0ZTtcbn1cblxuLmZsb3dlZGl0b3JfY29uZGl0aW9ucy1tYW5hZ2VyX2xpc3QtZW1wdHkge1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBjb2xvcjogI2EzOWY5Zjtcbn1cblxuLmZsb3dlZGl0b3JfY29uZGl0aW9ucy1tYW5hZ2VyX2xpc3Qtc2VhcmNoIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDEwcHggMDtcbn1cblxuLmZsb3dlZGl0b3JfY29uZGl0aW9ucy1tYW5hZ2VyX2J1dHRvbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMCU7XG4gICAgbWFyZ2luLXRvcDogMjAwcHg7XG59XG5cbi5mbG93ZWRpdG9yX2NvbmRpdGlvbnMtbWFuYWdlcl9idXR0b24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMCAwIDE1cHggMjJweDtcbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwtc2VwYXJhdG9yLi1jbGlja2FibGU6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogIzE1OGI2Yztcbn1cblxuLmZsb3dlZGl0b3JfbWVudS1vcHRpb24taG9sZGVyIHtcbiAgICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4uZmxvd2VkaXRvcl9tZW51LW9wdGlvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IC4yNXJlbTtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICYjbWVudS1ub2RlLXR5cGUtMTAgLmZsb3dlZGl0b3JfbWVudS1pY29uIHtcbiAgICAgICAgY29sb3I6ICNmNTYwNWFcbiAgICB9XG5cbiAgICAvLyBpc3N1ZXNcbiAgICAmI21lbnUtbm9kZS10eXBlLTE0IC5mbG93ZWRpdG9yX21lbnUtaWNvbiB7XG4gICAgICAgIGNvbG9yOiAjNGNiOGFiXG4gICAgfVxuXG4gICAgLy8gb2tcbiAgICAmI21lbnUtbm9kZS10eXBlLTE1IC5mbG93ZWRpdG9yX21lbnUtaWNvbiB7XG4gICAgICAgIGNvbG9yOiAjZjZhODU1XG4gICAgfVxuXG4gICAgLy8gZnV0dXJlIGZpeFxuICAgICYjbWVudS1ub2RlLXR5cGUtMTYgLmZsb3dlZGl0b3JfbWVudS1pY29uIHtcbiAgICAgICAgY29sb3I6ICNmMTQxNjdcbiAgICB9XG5cbiAgICAvLyBub3Qgb2tcbn1cblxuLmZsb3dlZGl0b3JfbWVudS1vcHRpb246aG92ZXIsXG4uZmxvd2VkaXRvcl9tZW51LW9wdGlvbi5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICNlZWVlZWU7XG59XG5cbi5mbG93ZWRpdG9yX21lbnUtaWNvbiB7XG4gICAgZm9udC1mYW1pbHk6IFwiTWF0ZXJpYWwgRGVzaWduIEljb25zXCI7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuLmZsb3dlZGl0b3JfbWVudS1sYWJlbCB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmZsb3dlZGl0b3JfbWVudV9pbnB1dC1ob2xkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uZmxvd2VkaXRvcl9tZW51X2lucHV0LWhvbGRlci4tZXJyb3I6YWZ0ZXIge1xuICAgIGZvbnQtZmFtaWx5OiBcIk1hdGVyaWFsIERlc2lnbiBJY29uc1wiO1xuICAgIGNvbnRlbnQ6ICdcXEYwNzg3JztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29sb3I6ICNlMzMyNDQ7XG4gICAgcmlnaHQ6IDdweDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgdG9wOiAzcHg7XG59XG5cbi5mbG93ZWRpdG9yX21lbnVfaW5wdXQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uZmxvd2VkaXRvcl9tZW51X2lucHV0LWhvbGRlci4tZXJyb3IgLmZsb3dlZGl0b3JfbWVudV9pbnB1dCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RmOTI5Mjtcbn1cblxuLmZsb3dlZGl0b3JfbWVudV9pbnB1dC1lcnJvci1tZXNzYWdlIHtcbiAgICBjb2xvcjogI2RmOTI5MjtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZsb3dlZGl0b3JfbWVudV9pbnB1dC1ob2xkZXIuLWVycm9yIC5mbG93ZWRpdG9yX21lbnVfaW5wdXQtZXJyb3ItbWVzc2FnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cblxuXG4uZmxvd2VkaXRvcl9tZW51LWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzVjODJlZDtcbiAgICBjb2xvcjogY29sb3JzLiR3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gICAgcGFkZGluZzogOHB4IDE1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5ub2RlYmFyICYge1xuICAgICAgICB3aWR0aDogMjIycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC41cmVtO1xuICAgIH1cblxuICAgICYuaGVhZGVyLWNvbGxhcHNlIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxmMGQ3XCI7XG4gICAgICAgICAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBGcmVlXCI7XG4gICAgICAgICAgICBmb250LXdlaWdodDogOTAwO1xuXG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG5cbiAgICAgICAgfVxuXG4gICAgICAgICYuY29sbGFwc2VkIHtcblxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcXGYwZDhcIjtcblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi5mbG93ZWRpdG9yX21lbnUtc3ViaGVhZGVyIHtcbiAgICBwYWRkaW5nOiA4cHggMTVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGNvbG9ycy4kYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcnMuJGJvcmRlci1jb2xvcjtcbn1cblxuLmZsb3dlZGl0b3JfbWVudS1ob2xkZXIge1xuICAgIC8vIGRpc3BsYXk6IGZsZXg7XG4gICAgLy8gZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmc6IDhweCAwO1xuXG59XG5cbi5mbG93ZWRpdG9yX21lbnUtdGVtcGxhdGVzLW9wdGlvbnMge1xuICAgIG1hcmdpbjogMTBweCAwO1xuICAgIHdpZHRoOiA1NTBweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xufVxuXG4uZmxvd2VkaXRvcl9tZW51LXRlbXBsYXRlcy1vcHRpb25zOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBjbGVhcjogYm90aDtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmZsb3dlZGl0b3JfbWVudS1sYWJlbC10ZW1wbGF0ZXMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nLXRvcDogN3B4O1xufVxuXG4uZmxvd2VkaXRvcl9tZW51LWxhYmVsLWlucHV0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBwYWRkaW5nOiAzcHggNnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5mbG93ZWRpdG9yX21lbnUtcmFkaW8ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogN3B4IDVweCAwIDEwcHg7XG59XG5cbi5mbG93ZWRpdG9yX21lbnUtcmFkaW8taW5wdXQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMnB4IDVweCAwIDEwcHg7XG59XG5cbi5mbG93ZWRpdG9yX21lbnUtbG9hZGluZyxcbi5mbG93ZWRpdG9yX21lbnUtZW1wdHkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG59XG5cbi5mbG93ZWRpdG9yX21lbnUtbG9hZGVyIHtcbiAgICBjb2xvcjogIzBlYTU3Zjtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhci1sYWJlbC1ob2xkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXItbGFiZWwtaG9sZGVyLi1lcnJvcjphZnRlciB7XG4gICAgZm9udC1mYW1pbHk6IFwiTWF0ZXJpYWwgRGVzaWduIEljb25zXCI7XG4gICAgY29udGVudDogJ1xcRjA3ODcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb2xvcjogI2UzMzI0NDtcbiAgICByaWdodDogN3B4O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB0b3A6IDNweDtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhci1sYWJlbC1pbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMjIwcHg7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXItbGFiZWwtaG9sZGVyLi1lcnJvciAuZmxvd2VkaXRvci10b29sYmFyLWxhYmVsLWlucHV0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGY5MjkyO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyLWxhYmVsLWJ1dHRvbiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDI1JTtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhci1sYWJlbC1lcnJvci1tZXNzYWdlIHtcbiAgICBjb2xvcjogI2RmOTI5MjtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgbWFyZ2luOiAwIDAgMTBweCAwO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyLXRyYW5zbGF0ZS1saW5rIHtcbiAgICBjb2xvcjogIzNmNDY5YztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXItdHJhbnNsYXRlLWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjMmQzMzZmO1xufVxuXG5cblxuLmZsb3dlZGl0b3ItdG9vbGJhci10cmFuc2xhdGUtbGluay4tZXJyb3Ige1xuICAgIGNvbG9yOiAjZGY5MjkyO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyLXRyYW5zbGF0ZS1saW5rLi1lcnJvcjpob3ZlciB7XG4gICAgY29sb3I6ICNlMzMyNDQ7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXItdHJhbnNsYXRlLWxpbmsuLWVycm9yOmJlZm9yZSB7XG4gICAgY29udGVudDogJ1xcRjAyRkMnO1xuICAgIGNvbG9yOiAjZTMzMjQ0O1xufVxuXG4uZmxvd2VkaXRvcl9hY3Rpdml0aWVzLW1hbmFnZXJfc2VhcmNoLWhvbGRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLmZsb3dlZGl0b3JfYWN0aXZpdGllcy1tYW5hZ2VyX3NlYXJjaC1sb2FkaW5nIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5mbG93ZWRpdG9yX2FjdGl2aXRpZXMtbWFuYWdlcl9zZWFyY2gtc3Bpbm5lciB7XG4gICAgY29sb3I6ICMwZWE1N2Y7XG59XG5cbi5mZS1zZWN0aW9uIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzMxMzg3YTtcbiAgICBwYWRkaW5nOiAyLjVlbSAwIDJlbTtcblxuICAgICYubm8tYm9yZGVyIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgfVxufVxuXG4uZmUtc2VjdGlvbi1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1YTVhNWE7XG4gICAgY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgcGFkZGluZzogLjVyZW0gMXJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAuNXJlbTtcbn1cblxuLmZlLWl0ZW0ge31cblxuLmZlLWl0ZW0tdGV4dDphZnRlcixcbi5mZS1pdGVtLXRleHQ6YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogXCJNYXRlcmlhbCBEZXNpZ24gSWNvbnNcIjtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgbWFyZ2luOiAtMnB4IDVweCAwIDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4uZmUtaXRlbS10ZXh0Li1zbWlsZS10ZXZyZWRlbjpiZWZvcmUge1xuICAgIGNvbG9yOiAjOWFiNDk4O1xuICAgIGNvbnRlbnQ6ICdcXEYwMUY1Jztcbn1cblxuLmZlLWl0ZW0tdGV4dC4tc21pbGUtb250ZXZyZWRlbjpiZWZvcmUge1xuICAgIGNvbG9yOiAjZGY5MjkyO1xuICAgIGNvbnRlbnQ6ICdcXEYwMUY4Jztcbn1cblxuLmZlLWl0ZW0tdGV4dC4tc21pbGUtemVlci10ZXZyZWRlbjpiZWZvcmUge1xuICAgIGNvbG9yOiAjOWFiNDk4O1xuICAgIGNvbnRlbnQ6ICdcXEYwMUYyJztcbn1cblxuLmZlLWl0ZW0tdGV4dC4tc21pbGUtemVlci1vbnRldnJlZGVuOmJlZm9yZSB7XG4gICAgY29sb3I6ICNkZjkyOTI7XG4gICAgY29udGVudDogJ1xcRjBDNkEnO1xufVxuXG4uZmUtaXRlbS10ZXh0Li1zbWlsZS1uZXV0cmFhbDpiZWZvcmUge1xuICAgIGNvbG9yOiAjZGY5MjkyO1xuICAgIGNvbnRlbnQ6ICdcXEYwMUY2Jztcbn1cblxuLmZlLWl0ZW0tdGV4dC4teWVzLW5vZGU6YmVmb3JlIHtcbiAgICBjb2xvcjogIzlhYjQ5ODtcbiAgICBjb250ZW50OiAnXFxGMDUxMyc7XG59XG5cbi5mZS1pdGVtLXRleHQuLW5vLW5vZGU6YmVmb3JlIHtcbiAgICBjb2xvcjogI2RmOTI5MjtcbiAgICBjb250ZW50OiAnXFxGMDUxMSc7XG59XG5cbi5mZS1pdGVtLXRleHQuLWVtcHR5IHtcbiAgICBjb2xvcjogI2RmOTI5Mjtcbn1cblxuLmZlLWl0ZW0tdGV4dC4tZW1wdHk6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICdcXEYwMkZDJztcbiAgICBjb2xvcjogI2UzMzI0NDtcbn1cblxuLmZlLWl0ZW0tYWN0aW9ucy1pY29uIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGNvbG9yOiAjM2M0MTQ0O1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbi5mZS1pdGVtLWFjdGlvbnMtaWNvbjpob3ZlciB7XG4gICAgY29sb3I6ICMxODFhMWM7XG59XG5cbi5mZS1pdGVtLWFjdGlvbnMtaWNvbi1zZWQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY29sb3I6ICMzYzQxNDQ7XG4gICAgbWFyZ2luOiA1cHggMHB4IDVweCA1cHg7XG59XG5cbi5mZS1pdGVtLWFjdGlvbnMtaWNvbi1zZWQ6aG92ZXIge1xuICAgIGNvbG9yOiAjMTgxYTFjO1xufVxuXG4uZmUtaXRlbS1hY3Rpb25zLWljb246YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogXCJNYXRlcmlhbCBEZXNpZ24gSWNvbnNcIjtcbn1cblxuLmZlLWl0ZW0tYWN0aW9ucy1pY29uLi1hZGQtZGF0YXBvaW50OmJlZm9yZSB7XG4gICAgY29udGVudDogJ1xcRjA0MTknO1xufVxuXG4uZmUtaXRlbS1hY3Rpb25zLWljb24uLXJlbW92ZS1kYXRhcG9pbnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnXFxGMDM3Nyc7XG59XG5cblxuXG4uZmUtaXRlbS1hY3Rpb25zLWljb24uLXVubGluay1saW5rIHtcbiAgICBjb2xvcjogI2Y4NzA3MDtcbn1cblxuLmZlLWl0ZW0tYWN0aW9ucy1pY29uLi11bmxpbmstbGluazpob3ZlciB7XG4gICAgY29sb3I6ICNlMzMyNDQ7XG59XG5cbi5mZS1pdGVtLWFjdGlvbnMtaWNvbi4tdW5saW5rLW5vZGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnXFxGMDMzQSc7XG59XG5cbi5mZS1pdGVtLWFjdGlvbnMtaWNvbi4tbGluay1saW5rIHtcbiAgICBjb2xvcjogIzNmNDY5Yztcbn1cblxuLmZlLWl0ZW0tYWN0aW9ucy1pY29uLi1saW5rLWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjMmQzMzcxO1xufVxuXG4uZmUtaXRlbS1hY3Rpb25zLWljb24uLWxpbmstbm9kZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdcXEYwMzM5Jztcbn1cblxuXG4uZmUtaXRlbS1hY3Rpb25zLWljb24uLXJlbW92ZS1saW5rIHtcbiAgICBjb2xvcjogIzNmNDY5Yztcbn1cblxuLmZlLWl0ZW0tYWN0aW9ucy1pY29uLi1yZW1vdmUtbGluazpob3ZlciB7XG4gICAgY29sb3I6ICMyZDMzNzE7XG59XG5cbi5mZS1pdGVtLWFjdGlvbnMtaWNvbi4tcmVtb3ZlLWxpbms6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnXFxGMEE3QSc7XG59XG5cbi5mZS1jcmVhdGUtZGF0YXBvaW50LWhvbGRlciB7XG4gICAgcGFkZGluZzogMTBweCAwO1xufVxuXG5cblxuXG4uZmUtZGF0YXBvaW50cy1saXN0IHtcbiAgICAvLyBwb3NpdGlvbjogZml4ZWQg4oCUIEpTIHNldHMgbGVmdC90b3AvYm90dG9tL3dpZHRoIHZpYSBwb3NpdGlvbkRyb3Bkb3duKClcbiAgICAvLyBzbyB0aGUgZHJvcGRvd24gZXNjYXBlcyB0aGUgb3ZlcmZsb3c6aGlkZGVuIG1vZGFsL2xpc3QgYW5jZXN0b3JzXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDRweCAwICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDIwLCAyNSwgODAsIDAuMTgpLCAwIDAgMCAxcHggcmdiYSg2NCwgNzMsIDE1NCwgMC4xMik7XG4gICAgbWF4LWhlaWdodDogMjIwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB6LWluZGV4OiA5MjAwOyAvLyBhYm92ZSBtb2RhbCAoOTEwMClcbn1cblxuLmZlLWFkZC1kYXRhcG9pbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA3cHggMTJweDtcbiAgICBtYXJnaW46IDAgNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZjFmODtcblxuICAgICY6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZjBmMWY4OyB9XG59XG5cbi8vIEF1dG9jb21wbGV0ZSBzdWdnZXN0aW9uIHRleHQgZWxlbWVudHNcbi5mZS1kcC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjMmEyZTVlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZmUtZHAtdHlwZSB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiAjODg5MGI4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5mZS10YWIge1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgY29sb3I6IHJnYmEoIzAwMCwgLjUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZlLXRhYjpob3ZlciB7XG4gICAgY29sb3I6ICMwZWE1N2Y7XG59XG5cbi5mZS1zYXZlLW1ldGhvZHMge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG5cbi5mZS1kZWxldGUtdGVtcGxhdGUge1xuICAgIGZvbnQtZmFtaWx5OiBcIk1hdGVyaWFsIERlc2lnbiBJY29uc1wiO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjb2xvcjogI2UzMzI0NDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZmUtZGVsZXRlLXRlbXBsYXRlOmhvdmVyIHtcbiAgICBjb2xvcjogIzg0MzUzNDtcbn1cblxuLmZlLWRlbGV0ZS10ZW1wbGF0ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdcXGYxYzAnO1xufVxuXG4uZmUtbm9kZS1pY29uIHtcbiAgICBmb250LWZhbWlseTogXCJNYXRlcmlhbCBEZXNpZ24gSWNvbnNcIjtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6IC42MjVyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG59XG5cbi5mZS12ZXJzaW9ucyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxNXB4O1xuICAgIGxlZnQ6IDE1cHg7XG4gICAgei1pbmRleDogMTA7XG4gICAgcGFkZGluZzogN3B4IDVweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuXG4vKi5mZS12ZXJzaW9ucy10ZXh0LFxuLmZlLXZlcnNpb25zLWl0ZW0ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nOiA3cHggNXB4O1xufSovXG5cbi8qLmZlLXZlcnNpb25zLXRleHQge1xuICAgIHBhZGRpbmc6IDdweCAwIDdweCAxMHB4O1xufSovXG5cbi50cy1lZGl0b3ItYmlnLWJ0biB7XG4gICAgLypsaW5lLWhlaWdodDogNTBweDsqL1xufVxuXG4uZmUtdmVyc2lvbnMtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xufVxuXG4uZmUtdmVyc2lvbnMtaXRlbTpub3QoLi1hY3RpdmUpIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY29sb3I6ICMxYWFlODg7XG59XG5cbi5mZS12ZXJzaW9ucy1pdGVtOm5vdCguLWFjdGl2ZSk6aG92ZXIge1xuICAgIGNvbG9yOiAjMTU4YjZjO1xufVxuXG4uZmUtdmVyc2lvbnMtaXRlbS4tYWN0aXZlIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmZlLXZlcnNpb25zLWFjdGl2YXRlIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5mZS12ZXJzaW9ucy1zZWxlY3Qge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgbWFyZ2luOiAwIDAgMCAxMHB4O1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuLmZlLXByb3BlcnRpZXMtZXJyb3JzIHtcbiAgICBjb2xvcjogI2RmOTI5MjtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uZmUtcHJvcGVydGllcy1lcnJvcjpiZWZvcmUge1xuICAgIGZvbnQtZmFtaWx5OiBcIk1hdGVyaWFsIERlc2lnbiBJY29uc1wiO1xuICAgIGNvbnRlbnQ6ICdcXGYyZmMnO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICBtYXJnaW46IC0ycHggNXB4IDAgMDtcbiAgICBjb2xvcjogI2UzMzI0NDtcbn1cblxuLmZlLXByb3BlcnRpZXMtaW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogNXB4IDAgMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2JkNWRkO1xufVxuXG4uZmUtbW9kYWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBpbnNldDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgei1pbmRleDogOTk5OTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDUwdmg7XG5cbiAgICAubW9kYWwtZGlhbG9nIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAuY3JvcHBlci1jcm9wLWJveCwgLmNyb3BwZXItdmlldy1ib3gge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICAgICAgLmNyb3BwZXItbGluZSwgLmNyb3BwZXItcG9pbnQsIC5jcm9wcGVyLWZhY2Uge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5mZS1wcm9wZXJ0aWVzLW5vLW1ldGEge1xuICAgIG1hcmdpbjogNXB4IDAgMTBweDtcbiAgICBjb2xvcjogI2RmOTI5Mjtcbn1cblxuLmZlLXByb3BlcnRpZXMtbm8tbWV0YTpiZWZvcmUge1xuICAgIGZvbnQtZmFtaWx5OiBcIk1hdGVyaWFsIERlc2lnbiBJY29uc1wiO1xuICAgIGNvbnRlbnQ6ICdcXGYyZmMnO1xuICAgIGNvbG9yOiAjZTMzMjQ0O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICBtYXJnaW46IC0ycHggNXB4IDAgMDtcbn1cblxudGV4dGFyZWEuZmUtcHJvcGVydGllcy10ZXh0YXJlYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgaGVpZ2h0OiAxNTBweDtcbn1cblxuXG5cbi8qXG5NYXJ4J3Mgc3R1ZmZcbiAqL1xuXG4uZmxvd2VkaXRvcl9tb2RhbC1idXR0b24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMTBweCAwIDAgMDtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSA1cHgpO1xufVxuXG4uZmxvd2VkaXRvcl9tb2RhbC1idXR0b24tMTAwIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDEwcHggMCAwIDA7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5mbG93ZWRpdG9yX21vZGFsLWJ1dHRvbi4teWVzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLWFkZC1tYXJnaW4tMTAge1xuICAgIG1hcmdpbjogMWVtO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1hZGQtbWFyZ2luLTEyIHtcbiAgICBtYXJnaW46IDEuMmVtO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1hZGQtbWFyZ2luLTE1IHtcbiAgICBtYXJnaW46IDEuNWVtO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1hZGQtbWFyZ2luLTIwIHtcbiAgICBtYXJnaW46IDIuMGVtO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1hZGQtcGFkZGluZy0xMiB7XG4gICAgcGFkZGluZzogMS4yZW07XG59XG5cbi8vIEtlZXAgLmZsb3dlZGl0b3ItbW9kYWwgb3ZlcmxheSBzaGFkb3cgKHVzZWQgZWxzZXdoZXJlKVxuLmZsb3dlZGl0b3ItbW9kYWwgLmZlLW0tY29udGVudCB7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCA2MHB4IDEwcHggcmdiYSgjMDAwLCAuMyk7XG59XG5cbi8vIFNtYWxsIFwiV29ya2luZ+KAplwiIGluZGljYXRvciDigJQgcmVwbGFjZXMgdGhlIG9sZCBmdWxsLXNjcmVlbiBvdmVybGF5XG4vLyBUYXJnZXQgc3BhbiBsaXZlcyBpbiB0aGUgYnJlYWRjcnVtYiBiYXI7IGF1dG8tbWFyZ2luIHB1c2hlcyBpdCB0byB0aGUgcmlnaHRcbiNmZS13b3JraW5nLXRhcmdldCB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uZmUtd29ya2luZy1pbmRpY2F0b3Ige1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA3cHg7XG4gICAgcGFkZGluZzogNHB4IDEycHggNHB4IDhweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDY1LCA3MywgMTU0LCAwLjgyKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzeXN0ZW0tdWksIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgLm1kaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxufVxuXG4vLyBGYWRlIHRyYW5zaXRpb25cbi5mZS13b3JraW5nLWZhZGUtZW50ZXItYWN0aXZlLFxuLmZlLXdvcmtpbmctZmFkZS1sZWF2ZS1hY3RpdmUge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTgwbXMgZWFzZSwgdHJhbnNmb3JtIDE4MG1zIGVhc2U7XG59XG4uZmUtd29ya2luZy1mYWRlLWVudGVyLFxuLmZlLXdvcmtpbmctZmFkZS1lbnRlci1mcm9tLFxuLmZlLXdvcmtpbmctZmFkZS1sZWF2ZS10byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTZweCk7XG59XG5cbi5mbG93ZWRpdG9yLWNvbnRyb2xzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAxNXB4O1xuICAgIGxlZnQ6IDE1cHg7XG4gICAgd2lkdGg6IDE1MHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uZmxvd2VkaXRvci1jb250cm9scyAuZmxvd2VkaXRvci16b29tIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1yaWdodDogMTVweDtcbn1cblxuLmZsb3dlZGl0b3Itc3RhdHVzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxNXB4O1xuICAgIGxlZnQ6IDE1cHg7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLmZsb3dlZGl0b3Itc3RhdHVzIHAge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBjb2xvcjogIzY3Njc2NztcbiAgICBtYXJnaW46IDA7XG59XG5cbi8vIFB1c2ggdGhlIGVudGlyZSBwYWdlIHdoZW4gdGhlIHRyYW5zbGF0aW9uIHBhbmVsIGlzIG9wZW5cbmJvZHkge1xuICAgIHRyYW5zaXRpb246IG1hcmdpbi1yaWdodCAyNDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuYm9keS5mZS10cC1vcGVuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDQyMHB4O1xufVxuXG4uZmxvd2VkaXRvciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLmZsb3dlZGl0b3IgLmZvcm0tY29udHJvbCB7XG4gICAgYm9yZGVyLXJhZGl1czogLjYyNXJlbTtcbiAgICBwYWRkaW5nOiAuNzVyZW0gLjhyZW07XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uZmxvd2VkaXRvci1jYW52YXMge1xuICAgIGJhY2tncm91bmQ6ICNlNmU5ZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLmZsb3dlZGl0b3ItcHVibGlzaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmZsb3dlZGl0b3ItY2FudmFzIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2U2ZTlmZjtcbiAgICB9XG5cbiAgICAuZmxvd2VkaXRvci1idXR0b25zIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgIH1cbn1cblxuXG4uZmxvd2VkaXRvci10b29sYmFyIHtcbiAgICAmLm5vZGViYXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMWVtO1xuICAgICAgICBsZWZ0OiAxZW07XG4gICAgICAgIHotaW5kZXg6IDEwOyAgICAgICAgXG4gICAgICAgIHpvb206ICRwYWdlLXJlc29sdXRpb247XG4gICAgfVxuXG4gICAgJi50b29sYmFyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDFlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICB6b29tOiAkcGFnZS1yZXNvbHV0aW9uO1xuICAgIH1cbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhci50b29sYmFyIHtcbiAgICAkcHJpbWFyeTogIzQxNDk5YTtcbiAgICAkcHJpbWFyeS1ob3ZlcjogIzNiMjU3YTtcbiAgICAkcHJpbWFyeS1hY3RpdmU6ICMxZjIwNWM7XG4gICAgJGJvcmRlci1yYWRpdXM6IDFlbTtcbiAgICAkc2Vjb25kYXJ5X29mZnNldDogMjBweDtcblxuICAgIC50b29sYmFyX21lbnUtd3JhcHBlciB7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcblxuICAgICAgICAudG9vbGJhcl9tZW51IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuNTUpO1xuICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE0cHgpO1xuICAgICAgICAgICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTRweCk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICAgICAgICAgICAgcGFkZGluZzogLjVlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuXG4gICAgICAgICAgICAudG9vbGJhcl9zdWJfbWVudSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBnYXA6IC4yZW07XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggI2RmZTJmYiBzb2xpZDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIC43NWVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1lbnUtaXRlbSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBnYXA6IDFlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1lbnUtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgICAgICBjb2xvcjogY29sb3JzLiR3aGl0ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAuNWVtIDFlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1ob3ZlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cblxuICAgICAgICAgICAgICAgICYuYnV0dG9uLWljb24ge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwZW0gLjI1ZW07XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWFjdGl2ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSGlzdG9yeSAodntufSkgYW5kIFB1Ymxpc2ggYXJlIHJlYWwgcWRuYXByby1idXR0b24gaW5zdGFuY2VzIG5vd1xuICAgICAgICAgICAgLy8gKDE3LjA3LjIwMjY6IFwibW9ldGVuIGJ1dHRvbiBjb21wb25lbnRzIHdvcmRlblwiIOKAlCBLaW0pLCB0eXBlXG4gICAgICAgICAgICAvLyBvbi1wdXJwbGUgLyBvbi1wdXJwbGUtc29saWQsIHNpemUgY29tcGFjdCwgcGlsbCDigJQgdGhvc2UgdHdvIHR5cGVzXG4gICAgICAgICAgICAvLyBhcmUgQlVJTFQgZm9yIGEgcHVycGxlL2Rhcmsgc3VyZmFjZSBleGFjdGx5IGxpa2UgdGhpcyB0b29sYmFyLCBzb1xuICAgICAgICAgICAgLy8gbm8gbG9jYWwgYnV0dG9uIHN0eWxpbmcgcmVtYWlucyBoZXJlLiBUaGUgXCJ1bnB1Ymxpc2hlZCBjaGFuZ2VzXCJcbiAgICAgICAgICAgIC8vIGRvdCBsaXZlcyBvbiB0aGUgc3Vycm91bmRpbmcgLm1lbnUtaXRlbSB3cmFwcGVyLCBub3QgdGhlIGJ1dHRvblxuICAgICAgICAgICAgLy8gY29tcG9uZW50IGl0c2VsZjogcWRuYXByby1idXR0b24ncyBpbml0aWFsaXplQ2xhc3NlcygpIHJlYnVpbGRzXG4gICAgICAgICAgICAvLyBpdHMgb3duIGNsYXNzTmFtZSBmcm9tIGEgb25lLXRpbWUgXCJvcmlnaW5hbENsYXNzZXNcIiBzbmFwc2hvdFxuICAgICAgICAgICAgLy8gd2hlbmV2ZXIgYW4gT0JTRVJWRUQgYXR0cmlidXRlIGNoYW5nZXMgKHR5cGUvc2l6ZS9kaXNhYmxlZC9waWxsL1xuICAgICAgICAgICAgLy8gYmFkZ2UvYWN0aXZlKSDigJQgYSBjbGFzcyBhZGRlZCBleHRlcm5hbGx5IHZpYSBWdWUncyA6Y2xhc3Mgd291bGRcbiAgICAgICAgICAgIC8vIGJlIHNhZmUgaGVyZSB0b2RheSAobm9uZSBvZiB0aGlzIGJ1dHRvbidzIG9ic2VydmVkIGF0dHJpYnV0ZXNcbiAgICAgICAgICAgIC8vIGNoYW5nZSBhZnRlciBtb3VudCkgYnV0IGlzIGZyYWdpbGUgdG8gcmVseSBvbiwgc28gdGhlIGRvdCBpcyBrZXB0XG4gICAgICAgICAgICAvLyBvbmUgbGV2ZWwgdXAgd2hlcmUgaXQgY2FuIG5ldmVyIGJlIHdpcGVkIGJ5IHRoZSBjb21wb25lbnQuXG4gICAgICAgICAgICAuZmUtdmVyc2lvbi1pdGVtIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmLmZlLXZlcnNpb24taXRlbS0tZGlydHk6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAtNHB4O1xuICAgICAgICAgICAgICAgICAgICByaWdodDogLTRweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDlweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA5cHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2Y1OWUwYjtcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBmZS1wdWJsaXNoLXB1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNlYXJjaCBwaWxsIOKAlCBhbHdheXMgaW4gRE9NLCBhbmltYXRlcyBiZXR3ZWVuIGljb24tb25seSBhbmQgZnVsbC13aWR0aFxuICAgICAgICAgICAgLmZlLXNlYXJjaC13cmFwIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyOyAgIC8vIHZlcnRpY2FsbHkgY2VudGVyIHdpdGhpbiB0aGUgdG9vbGJhciByb3dcbiAgICAgICAgICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMS41ZW07ICAgICAgICAvLyBtYXRjaCBidXR0b24taWNvbiBsaW5lLWhlaWdodCBzbyBoZWlnaHRzIGFyZSBlcXVhbFxuICAgICAgICAgICAgICAgIHdpZHRoOiAxLjZlbTsgICAgICAgICAvLyBjb2xsYXBzZWQ6IHNhbWUgd2lkdGggYXMgb3RoZXIgYnV0dG9uLWljb24gYnV0dG9uc1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDI0MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZCAyMDBtcyBlYXNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvciAyMDBtcyBlYXNlO1xuXG4gICAgICAgICAgICAgICAgLy8gRXhwYW5kZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjEwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzApO1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgOHB4IDAgNnB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIElucHV0IGFuZCBjbG9zZTogaW52aXNpYmxlIHdoZW4gY29sbGFwc2VkLCBmYWRlIGluIGFmdGVyIHdpZHRoIHN0YXJ0cyBncm93aW5nXG4gICAgICAgICAgICAgICAgLmZlLXNlYXJjaC1pbnB1dCxcbiAgICAgICAgICAgICAgICAuZmUtc2VhcmNoLWNsb3NlIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXMgZWFzZSA4MG1zOyAvLyA4MG1zIGRlbGF5IHNvIHdpZHRoIGxlYWRzXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi0tYWN0aXZlIC5mZS1zZWFyY2gtaW5wdXQsXG4gICAgICAgICAgICAgICAgJi0tYWN0aXZlIC5mZS1zZWFyY2gtY2xvc2Uge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuZmUtc2VhcmNoLWljb24ge1xuICAgICAgICAgICAgICAgICAgICAvLyBDb2xsYXBzZWQ6IG1hdGNoIG90aGVyIGJ1dHRvbi1pY29uIGJ1dHRvbnMgZXhhY3RseVxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogY29sb3JzLiR3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNmVtO1xuICAgICAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gRXhwYW5kZWQ6IHNtYWxsZXIgcHJlZml4IGljb24sIG11dGVkXG4gICAgICAgICAgICAgICAgJi0tYWN0aXZlIC5mZS1zZWFyY2gtaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xZW07XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmZlLXNlYXJjaC1pbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41MCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5mZS1zZWFyY2gtY2xvc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgLm1kaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIgLm1kaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIHYyIFRPT0xCQVIgQ09OQ0VQVCAoMTcuMDcuMjAyNiwgS2ltK0phbiByZXZpZXcsIG9wdC1pbiB2aWEgP3Rvb2xiYXI9djIpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRFTVBPUkFSWS4gT25jZSBhcHByb3ZlZCBmb3IgZnVsbCByb2xsb3V0OiBkZWxldGUgdGhpcyBlbnRpcmUgYmxvY2sgUExVU1xuLy8gdGhlIGNsYXNzaWMgLmZsb3dlZGl0b3ItdG9vbGJhci50b29sYmFyIHJ1bGVzIGFib3ZlIGl0LCBjb252ZXJnZSB0byBvbmVcbi8vIGltcGxlbWVudGF0aW9uIChLaW0sIDE3LjA3LjIwMjY6IFwiYWxzIHdlIHZvbGxlZGlnIGludGVncmVyZW4gbW9ldGVuIHdlXG4vLyBkZSB2MiB2ZXJzaWUgb29rIHdlZXIgb3BydWltZW5cIiDigJQgcmVhZCBsaXRlcmFsbHk6IG9uIGZ1bGwgaW50ZWdyYXRpb24sXG4vLyBUSElTIHYyIGJsb2NrICsgaXRzIGZsYWcgZ2V0IGZvbGRlZCBpbnRvIHRoZSBzaW5nbGUgcmVtYWluaW5nIHZlcnNpb24sXG4vLyBub3Qga2VwdCBhcyBhIHBlcm1hbmVudCBzZWNvbmQgbmFtZXNwYWNlKS5cbi8vXG4vLyBPbmUgZ2xhc3MgYmFyIChub3Qgc3BsaXQgaW50byBwYW5lbHMg4oCUIEtpbSwgMTcuMDc6IFwiaG91ICdtIGluIDEgYmFsa1wiKVxuLy8gd2l0aCBhbiBpbnRlcm5hbCBkaXZpZGVyIGJldHdlZW4gY2FudmFzLWFjdGlvbnMgYW5kIGZsb3ctYWN0aW9ucywgcm91bmRcbi8vIGljb24gYnV0dG9ucyAoS2ltLCAxNy4wNzogXCJkaWUgbW9nZW4gd2VsIHJvbmQgYmxpanZlblwiKSwgVjEvUHVibGlzaCByZXVzZVxuLy8gdGhlIFNBTUUgcWRuYXByby1idXR0b24gbWFya3VwIGFscmVhZHkgbGl2ZSBpbiB0aGUgY2xhc3NpYyBiYXIuIFpvb20gbW92ZXNcbi8vIHRvIGEgY29ybmVyIGRvY2sgdGhhdCBpcyBuZWFyLWludmlzaWJsZSBhdCByZXN0IGFuZCBleHBhbmRzIG9uIGhvdmVyIOKAlFxuLy8gSmFuJ3MgYmlnZ2VzdCB3b3JyeSB3YXMgdGhhdCBhIGNvcm5lciB6b29tIGNsdXN0ZXIgd291bGQgZmVlbCBpbnRydXNpdmVcbi8vIGFuZCBpbnRlcnJ1cHQgdGhlIHdvcmtmbG93LCBzbyB0aGlzIHJldXNlcyB0aGUgRVhBQ1QgZXhwYW5kIGlkaW9tIHRoZVxuLy8gc2VhcmNoIGJhciBhbHJlYWR5IGhhcyAod2lkdGgvb3BhY2l0eSB0cmFuc2l0aW9uKSwgbm90IGEgbmV3IHBhdHRlcm4uXG4uZmxvd2VkaXRvci10b29sYmFyLXYyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8vIGNoaWxkcmVuIG9wdCBiYWNrIGluIGluZGl2aWR1YWxseVxuICAgIHotaW5kZXg6IDEwO1xuICAgIHpvb206ICRwYWdlLXJlc29sdXRpb247IC8vIHNhbWUgem9vbSBjb250ZXh0IGFzIHRoZSBjbGFzc2ljIGJhclxuICAgIGZvbnQtZmFtaWx5OiBJbnRlciwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5nbGFzczIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43Mik7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE0cHgpIHNhdHVyYXRlKDEuNCk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTRweCkgc2F0dXJhdGUoMS40KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDMwcHggcmdiYSgzOCwgNDIsIDkyLCAwLjE0KSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi8vIFRvcCBjbHVzdGVyOiB0aGUgYmFyICh3aXRoIHRoZSBjb250ZXh0dWFsIHBpbGwgaGFuZ2luZyB1bmRlciBpdCkgKyB0aGUgbG9vc2Vcbi8vIHBsYXkgY2lyY2xlIGJlc2lkZSBpdC4gT25lIGNlbnRyZWQgZmxleCByb3csIHNvIHRoZSBwbGF5IGJ1dHRvbiBzaXRzIG5leHQgdG9cbi8vIHRoZSBiYXIgd2l0aG91dCBhYnNvbHV0ZS1wb3NpdGlvbmluZyBndWVzc3dvcmsuIFtLaW0gMTcuMDcuMjAyNl1cbi5mZTItdG9wcm93IHtcbiAgICAvLyBXaWR0aCB0aGUgem9vbSBjbHVzdGVyIGdhaW5zIHdoZW4gaXRzIGV4dHJhcyBzbGlkZSBvdXQuIFNJTkdMRSBzb3VyY2Ugb2ZcbiAgICAvLyB0cnV0aDogdGhlIGV4dHJhcyBjb250YWluZXIgaXMgcGlubmVkIHRvIGV4YWN0bHkgdGhpcyB3aWR0aCwgYW5kIHRoZSByb3dcbiAgICAvLyBzaGlmdHMgYnkgZXhhY3RseSBoYWxmIG9mIGl0IChiZWxvdyksIHdoaWNoIGlzIHdoYXQga2VlcHMg4oiSLyUvKyB2aXN1YWxseVxuICAgIC8vIHN0aWxsLiAzIMOXIDQwcHggYnV0dG9ucyArIDIgw5cgM3B4IGdhcHMgPSAxMjZweCwgcm91bmRlZCB1cCBmb3Igc2xhY2suXG4gICAgLyogQnJlZWR0ZSB3YWFyb3ZlciBkZSB6b29tLWV4dHJhJ3MgdWl0c2NodWl2ZW4uIOKaoO+4jyBNT0VUIG1lZWdyb2VpZW4gbWV0IGhldFxuICAgICAgIGFhbnRhbCBrbm9wcGVuIGVyaW46IGRlIGdyb2VwIGhlZWZ0IGBvdmVyZmxvdzogaGlkZGVuYCwgZHVzIHdhdCBuaWV0IHBhc3RcbiAgICAgICB2ZXJkd2lqbnQgWk9OREVSIHNwb29yIOKAlCBnZWVuIHNjcm9sbGJhciwgZ2VlbiBmb3V0bWVsZGluZy4gR2VtZXRlblxuICAgICAgIDIwMjYtMDgtMDggbmFkYXQgZGUgdHdlZSBleHBvcnRrbm9wcGVuIGVyYmlqIGt3YW1lbjogNSBrbm9wcGVuIHZhbiAzMiBweFxuICAgICAgIG1ldCA0IHR1c3NlbnJ1aW10ZXMgdmFuIDMgcHggPSAxNzIgcHggbm9kaWcsIGVuIG9wIDEyOSBweCB3YXJlbiBkZSBsYWF0c3RlXG4gICAgICAgdHdlZSBzaW1wZWx3ZWcgb256aWNodGJhYXIgKG1lbGRpbmcgSmFuOiBcImlrIHppZSBkZSBrbm9wIG5lcmdlbnNcIikuIEV4YWN0XG4gICAgICAgMTcyIHdhcyBub2cgdGUga3JhcCDigJQgb3AgZGUgc3VicGl4ZWwgdmllbCBkZSBsYWF0c3RlIGVyIG5ldCBidWl0ZW4g4oCUIGR1c1xuICAgICAgIGVlbiBwYWFyIHBpeGVscyBsdWNodC5cbiAgICAgICDimqDvuI8gRGV6ZSBwYXJ0aWFsIGtvbXQgaW4gVFdFRSBzdHlsZXNoZWV0cyB0ZXJlY2h0IChzdHlsZS5jc3Mgw6luIHN0eWxlLXYxLmNzcylcbiAgICAgICBlbiBkZSBmbG93IGVkaXRvciBsYWFkdCB6ZSBCRUlERSwgbWV0IHN0eWxlLXYxLmNzcyBhbHMgbGFhdHN0ZS4gQWxsZWVuXG4gICAgICAgYGd1bHAgc2Fzc2AgZHJhYWllbiB2ZXJhbmRlcnQgZHVzIG5pZXRzIHppY2h0YmFhcnM6IGBndWxwIHNhc3MtdjFgIG1vZXQgZXJcbiAgICAgICBvb2sgbGFuZ3MuIERhdCBrb3N0dGUgaGllciBlZW4gcm9uZGUuXG4gICAgICAgWmVsZmRlIHZhcmlhYmVsZSBzdHV1cnQgb29rIGRlIHRlZ2VuLXZlcnNjaHVpdmluZyBkaWUgZGUga25vcHBlbiBvbmRlciBkZVxuICAgICAgIGN1cnNvciBob3VkdCwgZHVzIGRpZSBibGlqZnQgYXV0b21hdGlzY2gga2xvcHBlbi4gKi9cbiAgICAtLWZlMi16b29tLWV4dHJhLXc6IDE4MHB4O1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMWVtO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTRweDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjIwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cblxuLy8gS2VlcCBldmVyeSBidXR0b24gdW5kZXIgdGhlIGN1cnNvciB3aGlsZSB0aGUgem9vbSBleHRyYXMgZXhwYW5kIChLaW1cbi8vIDE3LjA3LjIwMjY6IFwicGx1cyBlbiBtaW4gZW4gNzAlIG1vZXRlbiBvcCBkZXplbGZkZSBwbGVrIGJsaWp2ZW4gc3RhYW5cIikuXG4vLyBUaGUgYmFyIGlzIGNlbnRyZS1hbmNob3JlZCwgc28gZ3Jvd2luZyBpdCBieSBYIG1vdmVzIGV2ZXJ5dGhpbmcgYnkgWC8yIOKAlFxuLy8gd2hpY2hldmVyIHNpZGUgdGhlIGV4dHJhcyBhcHBlYXIgb24uIFRoZSBleHRyYXMgc2l0IEZJUlNUIGluIHRoZSBET00gKGdyb3dcbi8vIGxlZnR3YXJkKSBhbmQgdGhpcyBzaGlmdHMgdGhlIHdob2xlIHJvdyBsZWZ0IGJ5IFgvMiwgY2FuY2VsbGluZyB0aGF0IG91dFxuLy8gZXhhY3RseTogbmV0IG1vdmVtZW50IGZvciDiiJIvJS8rLCBzZWFyY2gsIFB1YmxpY2VyZW4gYW5kIHRoZSBwbGF5IGJ1dHRvbiBpc1xuLy8gemVybywgYW5kIG9ubHkgdGhlIGV4dHJhcyB0aGVtc2VsdmVzIGFuaW1hdGUgaW50byB2aWV3LlxuLmZlMi10b3Byb3c6aGFzKC5mZTItem9vbTpob3ZlciksXG4uZmUyLXRvcHJvdzpoYXMoLmZlMi16b29tOmZvY3VzLXdpdGhpbikge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC01MCUgLSAodmFyKC0tZmUyLXpvb20tZXh0cmEtdykgLyAyKSkpO1xufVxuXG4vLyBBbmNob3IgZm9yIHRoZSBjb250ZXh0dWFsIHBpbGwgc28gaXQgY2VudHJlcyB1bmRlciB0aGUgQkFSLCBub3QgdW5kZXIgdGhlXG4vLyBiYXIrcGxheSBjb21iaW5hdGlvbi5cbi5mZTItYmFyd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvLyBjaGlsZHJlbiBvcHQgYmFjayBpblxufVxuXG4uZmUyLWJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogM3B4O1xuICAgIHBhZGRpbmc6IDhweDtcbn1cblxuLmZlMi1kaXZpZGVyIHtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMjZweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDM4LCA0MiwgOTIsIDAuMTQpO1xuICAgIG1hcmdpbjogMCA3cHg7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG5cbi8vIEJ1bXBlZCBhIG5vdGNoIGFjcm9zcyB0aGUgYm9hcmQgKEtpbSwgMTcuMDcuMjAyNjogXCJtYWcgYWxsZXMgZWNodCBmZiBlZW5cbi8vIHRpa2tpZSBncm90ZXJcIikg4oCUIHdhcyAzNHB4LzE5cHguXG4uZmUyLWljb24tYnRuIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbWluLXdpZHRoOiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY29sb3I6ICM1MjU3OWM7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2UsIGNvbG9yIDEyMG1zIGVhc2U7XG4gICAgZmxleDogMCAwIGF1dG87XG5cbiAgICAubWRpIHsgZm9udC1zaXplOiAyMnB4OyBsaW5lLWhlaWdodDogMTsgfVxuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuMTApOyBjb2xvcjogIzJmMzU3MDsgfVxufVxuXG4vLyBVbmRvL3JlZG8gKDIwMjYtMDgtMDgpOiB0aGUgYnV0dG9ucyBrZWVwIHRoZWlyIHNsb3Qgd2hlbiB0aGUgaGlzdG9yeSBpcyBlbXB0eVxuLy8gKHYtaWYgd291bGQgc2hpZnQgdGhlIGNlbnRyZS1hbmNob3JlZCBiYXIpLCBzbyBkaXNhYmxlZCBpcyBhIGxvb2ssIG5vdCByZW1vdmFsLlxuLmZlMi1pY29uLWJ0bi0tZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuMzU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8vIEljb24gKyB0ZXh0IHZhcmlhbnQgKFZlcnRhbGluZ2VuKSDigJQgYSBwaWxsIGluc3RlYWQgb2YgYSBmaXhlZCBjaXJjbGUuXG4uZmUyLWljb24tYnRuLS1sYWJlbGxlZCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHBhZGRpbmc6IDAgMTRweCAwIDEwcHg7XG4gICAgZ2FwOiA3cHg7XG59XG5cbi5mZTItYnRuLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vLyDilIDilIAgWm9vbSBjbHVzdGVyLCBJTlNJREUgdGhlIGJhciwgY29sbGFwc2VkIGF0IHJlc3Qg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBLaW0gMTcuMDcuMjAyNjogem9vbSByZXR1cm5zIHRvIHRoZSBiYXIgKHRoZSBjb3JuZXIgZG9jayBpcyBnb25lKSwgYnV0IGtlZXBzXG4vLyB0aGUgaG92ZXItZXhwYW5kIHNoZSBleHBsaWNpdGx5IGxpa2VkIOKAlCBcImRhdCBzY2hlZWx0IGVlbiBob29wIHJ1aXNcIi4gQXQgcmVzdFxuLy8gb25seSDiiJIvJS8rIHNob3c7IDE6MSAvIGZpdCAvIHJhc3RlciBzbGlkZSBvdXQgb24gaG92ZXIuIFNhbWUgaWRpb20gYXMgdGhlXG4vLyBzZWFyY2ggZmllbGQsIHNvIG5vdGhpbmcgbmV3IHRvIGxlYXJuLlxuLmZlMi16b29tIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAzcHg7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi5mZTItem9vbS1jb3JlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAzcHg7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG5cbi5mZTItem9vbS1wY3Qge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjNDE0OTlhO1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgbWluLXdpZHRoOiA0MnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLy8gVXNlcyBhbiBleHBsaWNpdCBgd2lkdGhgIChub3QgbWF4LXdpZHRoKSBzbyB0aGUgZ3Jvd24gc2l6ZSBpcyBFWEFDVExZXG4vLyAtLWZlMi16b29tLWV4dHJhLXcuIFRoZSByb3cncyBjb21wZW5zYXRpbmcgc2hpZnQgaXMgaGFsZiB0aGF0IHZhbHVlOyB3aXRoXG4vLyBtYXgtd2lkdGggdGhlIHJlYWwgd2lkdGggd291bGQgc3RheSB1bmtub3duIGFuZCB0aGUgY29tcGVuc2F0aW9uIHdvdWxkIGRyaWZ0LlxuLmZlMi16b29tLWV4dHJhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAzcHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICB3aWR0aDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXMgZWFzZSA2MG1zLCB3aWR0aCAyMjBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuXG4uZmUyLXpvb206aG92ZXIgLmZlMi16b29tLWV4dHJhLFxuLmZlMi16b29tOmZvY3VzLXdpdGhpbiAuZmUyLXpvb20tZXh0cmEge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgd2lkdGg6IHZhcigtLWZlMi16b29tLWV4dHJhLXcpO1xufVxuXG4vLyDilIDilIAgTG9vc2UgcGxheSBjaXJjbGUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBEZXRhY2hlZCBiZXNpZGUgdGhlIGJhciAoS2ltJ3Mgb3duIGNhbGwsIDE3LjA3LjIwMjY6IFwibGVra2VyIG9wdmFsbGVuZFwiKS5cbi8vIFN1cmZhY2UgaXMgdGhlIFNBTUUgZ2xhc3MgYXMgdGhlIGJhci9wYW5lbCDigJQgaXQgY2FycmllcyB0aGUgYGdsYXNzMmAgY2xhc3MsIHNvXG4vLyB0aGUgZmlsbC9ibHVyL3NoYWRvdyBjb21lIGZyb20gdGhlcmUgYW5kIHRoaXMgcnVsZSBvbmx5IGRvZXMgc2hhcGUgKyBpY29uXG4vLyAoS2ltIDE3LjA3LjIwMjY6IFwiZGV6ZWxmZGUgc3VyZmFjZSBrbGV1ciBhbHMgZGUgcGFuZWxcIikuIEF0dGVudGlvbiBjb21lcyBmcm9tXG4vLyBpdHMgZGV0YWNoZWQgcG9zaXRpb24gcGx1cyBhbiBvY2Nhc2lvbmFsIHNoaW1tZXIsIG5vdCBmcm9tIGEgbG91ZCBmaWxsLlxuLmZlMi1wbGF5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgICAvLyBjbGlwcyB0aGUgc2hpbW1lciBzd2VlcCB0byB0aGUgY2lyY2xlXG4gICAgd2lkdGg6IDUycHg7XG4gICAgaGVpZ2h0OiA1MnB4O1xuICAgIG1pbi13aWR0aDogNTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGNvbG9yOiAjMWUxZjIwOyAgIC8vIHNhbWUgbmVhci1ibGFjayBhcyBldmVyeSBvdGhlciB0b29sYmFyIGljb25cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTQwbXMgZWFzZSwgdHJhbnNmb3JtIDEwMG1zIGVhc2U7XG5cbiAgICAubWRpIHtcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsgICAvLyBvcHRpY2FsIGNlbnRyaW5nIG9mIHRoZSB0cmlhbmdsZVxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIHN0YXkgYWJvdmUgdGhlIHNoaW1tZXIgbGF5ZXJcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAvLyBObyBob3ZlciB0aW50IChLaW0gMTcuMDcuMjAyNjogXCJuaWV0IHpvIHRldnJlZGVuIG1ldCBkZSBob3ZlciBrbGV1ciwgZGVcbiAgICAvLyBmbGV0cy4uLiBtaXNzY2hpZW4gZ2V3b29uIGFsbGVlbiBkZSBib3JkZXIgYmVhbVwiKS4gQSB0cmFuc2x1Y2VudCBwdXJwbGVcbiAgICAvLyB3YXNoIG92ZXIgdHJhbnNsdWNlbnQgZ2xhc3MganVzdCBtdWRkaWVkIGl0OyB0aGUgYmVhbSBhbG9uZSBpcyB0aGUgaG92ZXJcbiAgICAvLyBzaWduYWwsIHNvIHRoZSBzdXJmYWNlIHN0YXlzIGNsZWFuLlxuICAgICY6YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk0KTsgfVxuICAgICYtLWxvYWRpbmcgeyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4gICAgLy8gU3BhcnNlIHNoaW1tZXI6IHRoZSBzd2VlcCBvbmx5IG9jY3VwaWVzIHRoZSBsYXN0IH4xMiUgb2YgYSA5cyBjeWNsZSwgc28gaXRcbiAgICAvLyBjYXRjaGVzIHRoZSBleWUgcm91Z2hseSBldmVyeSA5IHNlY29uZHMgaW5zdGVhZCBvZiBhbmltYXRpbmcgY29uc3RhbnRseVxuICAgIC8vIChLaW06IFwibmlldCB0ZSB2YWFrLCBhbmRlcnMgaW50cnVzaXZlXCIpLiBQdXJwbGUtdGludGVkLCBiZWNhdXNlIGEgd2hpdGVcbiAgICAvLyBzaGVlbiB3b3VsZCBiZSBpbnZpc2libGUgb24gdGhpcyB3aGl0ZSBnbGFzcyBzdXJmYWNlLlxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExNWRlZyxcbiAgICAgICAgICAgIHJnYmEoMTA4LCA5MiwgMjMxLCAwKSAzOCUsXG4gICAgICAgICAgICByZ2JhKDEwOCwgOTIsIDIzMSwgMC4zMCkgNTAlLFxuICAgICAgICAgICAgcmdiYSgxMDgsIDkyLCAyMzEsIDApIDYyJSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTMwJSk7XG4gICAgICAgIGFuaW1hdGlvbjogZmUyLXBsYXktc2hpbW1lciA5cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZlMi1wbGF5LXNoaW1tZXIge1xuICAgIDAlLCA4OCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEzMCUpOyB9XG4gICAgMTAwJSAgICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMzAlKTsgfVxufVxuXG4vLyBCb3JkZXIgYmVhbSBvbiBob3ZlciAoS2ltIDE3LjA3LjIwMjY6IFwiZGF0IGVyIGVlbiBoaWdobGlnaHQgb20gZGUga25vcCBoZWVuXG4vLyBsb29wdC4uLiBkYXQgZGllIGtub3AgZWNodCB0b3QgbGV2ZW4ga29tdFwiKS4gU2FtZSByZWNpcGUgYXMgdGhlIG5vZGUtcGlja2VyXG4vLyBmb3JtLWNhcmQncyBiZWFtIOKAlCBhIHJvdGF0aW5nIGNvbmljLWdyYWRpZW50IG1hc2tlZCBkb3duIHRvIGp1c3QgdGhlIGJvcmRlclxuLy8gcmluZyB2aWEgbWFzay1jb21wb3NpdGU6IGV4Y2x1ZGUsIHNvIGl0IHRyYWNlcyB0aGUgZWRnZSB3aXRob3V0IGNvdmVyaW5nIHRoZVxuLy8gaWNvbi4gUmV1c2VzIDo6YmVmb3JlIGJlY2F1c2UgOjphZnRlciBpcyBhbHJlYWR5IHRoZSBzaGltbWVyIGxheWVyLlxuLy8gVGhlIGFuZ2xlIG5lZWRzIGl0cyBvd24gcmVnaXN0ZXJlZCBAcHJvcGVydHkgKGJlbG93KSBvciBpdCBzbmFwcyBpbnN0ZWFkIG9mXG4vLyByb3RhdGluZy4gSG92ZXItb25seSBoZXJlLCBzbyBpdCBzdGF5cyBjYWxtIHVudGlsIHlvdSByZWFjaCBmb3IgaXQuXG4uZmUyLXBsYXk6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgYmFja2dyb3VuZDogY29uaWMtZ3JhZGllbnQoXG4gICAgICAgIGZyb20gdmFyKC0tZmUyLWJlYW0tYW5nbGUpLFxuICAgICAgICB0cmFuc3BhcmVudCAwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudCAyNTBkZWcsXG4gICAgICAgIHJnYmEoNzAsIDgyLCAyNDMsIDAuOTUpIDMwNWRlZyxcbiAgICAgICAgI2I5YzBmNyAzMzVkZWcsXG4gICAgICAgIHRyYW5zcGFyZW50IDM2MGRlZ1xuICAgICk7XG4gICAgLXdlYmtpdC1tYXNrOiBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApIGNvbnRlbnQtYm94LCBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApO1xuICAgIC13ZWJraXQtbWFzay1jb21wb3NpdGU6IHhvcjtcbiAgICBtYXNrOiBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApIGNvbnRlbnQtYm94LCBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApO1xuICAgIG1hc2stY29tcG9zaXRlOiBleGNsdWRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNjBtcyBlYXNlO1xuICAgIHotaW5kZXg6IDA7XG59XG5cbi5mZTItcGxheTpob3Zlcjo6YmVmb3JlLFxuLmZlMi1wbGF5OmZvY3VzLXZpc2libGU6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBhbmltYXRpb246IGZlMi1wbGF5LWJlYW0gMS42cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgZmUyLXBsYXktYmVhbSB7XG4gICAgdG8geyAtLWZlMi1iZWFtLWFuZ2xlOiAzNjBkZWc7IH1cbn1cblxuLy8g4pSA4pSAIENvbnRleHR1YWwgZGVsZXRlIHBpbGwgKG9ubHkgd2hpbGUgYSBub2RlIGlzIHNlbGVjdGVkKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5mZTItY29udGV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYygxMDAlICsgMTBweCk7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIGFuaW1hdGlvbjogZmUyLWNvbnRleHQtaW4gMTYwbXMgZWFzZS1vdXQ7XG59XG5cbkBrZXlmcmFtZXMgZmUyLWNvbnRleHQtaW4ge1xuICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNHB4KTsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKTsgfVxufVxuXG4uZmUyLWNvbnRleHQtYnRuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA3cHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIHBhZGRpbmc6IDAgMTRweCAwIDExcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgY29sb3I6ICNjMDM5MmI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2UsIGNvbG9yIDEyMG1zIGVhc2U7XG5cbiAgICAubWRpIHsgZm9udC1zaXplOiAxOXB4OyBsaW5lLWhlaWdodDogMTsgfVxuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMTkyLCA1NywgNDMsIDAuMTApOyBjb2xvcjogIzk2MjgxYjsgfVxufVxuXG4vLyBXYXQtbnUtcmVnZWwgdGVyd2lqbCBlciBlZW4ga29waWUgZ2VwbGFhdHN0IG1vZXQgd29yZGVuLiBad2VlZnQgYm92ZW4gaGV0IGdlZG9vZmRlXG4vLyBkb2VrLCBidWl0ZW4gaGV0IGJlcmVpayB2YW4gZGUga2xpazogaGlqIG1hZyBkZSBcIitcIi1wdW50ZW4gZXIgbmlldCBvbmRlciB2ZXJzdG9wcGVuXG4vLyBlbiB6ZWxmIG9vayBnZWVuIGtsaWsgb3B2YW5nZW4gZGllIHZvb3IgZWVuIFwiK1wiIGJlZG9lbGQgd2FzLlxuLmZlMi1kdXBsaWNhdGUtaGludCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vIE9uZGVyIGRlIGNvbnRleHRwaWwgbWV0IER1cGxpY2VyZW4vVmVyd2lqZGVyZW4sIG5pZXQgZXJvdmVyOiBkaWUgcGlsIGVpbmRpZ3QgZ2VtZXRlblxuICAgIC8vIDEwM3B4IG9uZGVyIGRlIGJvdmVua2FudCB2YW4gaGV0IGRvZWssIGVuIGRlIGtub3AgZGllIGRlemUgc3RhbmQgYWFuemV0dGUgbW9ldFxuICAgIC8vIHppY2h0YmFhciBibGlqdmVuIOKAlCBkYXQgaXMgb29rIGRlIGtub3Agd2Fhcm1lZSBqZSBoZW0gd2VlciB1aXR6ZXQuXG4gICAgdG9wOiAxMTVweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIHotaW5kZXg6IDYwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXgtd2lkdGg6IG1pbig1MjBweCwgY2FsYygxMDAlIC0gMzJweCkpO1xuICAgIHBhZGRpbmc6IDlweCAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCwgOTk5cHgpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMTQxNTFhKTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDIwLCAyNSwgODAsIDAuMTgpLCAwIDJweCA2cHggcmdiYSgyMCwgMjUsIDgwLCAwLjEwKTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIC5tZGkge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xuICAgIH1cbn1cblxuLy8gRHVwbGljZXJlbiBzdGFhdCBpbiBkZXplbGZkZSBwaWwgYWxzIFZlcndpamRlcmVuLCBtYWFyIG1hZyBlciBuaWV0IGFscyBlZW5cbi8vIGdldmFhcmxpamtlIGFjdGllIHVpdHppZW46IGRlIGJhc2lzc3RpamwgaGllcmJvdmVuIGlzIHJvb2Qgb21kYXQgZGllIHBpbCB0b3Rcbi8vIDI1LjA4LjIwMjYgYWxsZWVuIFZlcndpamRlcmVuIGJldmF0dGUuIERlemUgdmFyaWFudCB6ZXQgZGF0IHRlcnVnIG5hYXIgZGVcbi8vIG1lcmtrbGV1ciwgem9kYXQgZGUga2xldXIgemVndCB3YXQgZGUga25vcCBkb2V0IGVuIG5pZXQgd2FhciBoaWogdG9ldmFsbGlnIHN0YWF0LlxuLmZlMi1jb250ZXh0LWJ0bi0tZHVwbGljYXRlIHtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMTApOyBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpOyB9XG59XG5cbi8vIEFhbi1zdGFuZDogem9sYW5nIGplIGVlbiBwbGVrIGFhbiBoZXQga2llemVuIGJlbnQgYmxpamZ0IGRlIGtub3AgaW5nZWRydWt0IHN0YWFuLFxuLy8gem9kYXQgemljaHRiYWFyIGlzIFdBQVJPTSBoZXQgZG9layBnZWRvb2ZkIGlzIGVuIHdhYXIgamUgaGVtIHdlZXIgdWl0emV0LlxuLmZlMi1jb250ZXh0LWJ0bi0tZHVwbGljYXRlLmZlMi1jb250ZXh0LWJ0bi0tYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjE0KTtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xufVxuXG4vLyDilIDilIAgSGVhZGVyIGFjdGlvbnMgKFZlcnNpZWdlc2NoaWVkZW5pcyArIEhlbHApLCByZWxvY2F0ZWQgaW50byB0aGUgYnJlYWRjcnVtYlxuLy8gICAgcm93IGJ5IFRvb2xiYXIudnVlJ3MgX3JlbG9jYXRlSGVhZGVyQWN0aW9ucygpLiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5mZTItaGVhZGVyLWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgLy8gcHVzaCB0byB0aGUgcmlnaHQgZW5kIG9mIHRoZSBicmVhZGNydW1iIHJvd1xuICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcbn1cblxuLmZlMi1oZWFkZXItaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cbi8vIFVucHVibGlzaGVkLWNoYW5nZXMgZG90LCBJTkxJTkUgaW5zaWRlIHRoZSB2ZXJzaW9uIGJ1dHRvbiAoc2VlIHRoZSB0ZW1wbGF0ZVxuLy8gY29tbWVudCkuIEVkZ2UtYW5jaG9yaW5nIGl0IGZhaWxlZCBoZXJlOiB0aGlzIGJ1dHRvbiB2YXJpYW50IGlzIHRyYW5zcGFyZW50LFxuLy8gc28gdGhlcmUgaXMgbm8gdmlzaWJsZSBib3JkZXIgZm9yIHRoZSBkb3QgdG8gc2l0IGFnYWluc3QgYW5kIGl0IGp1c3QgZmxvYXRlZFxuLy8gaW4gdGhlIHBpbGwncyBlbXB0eSBwYWRkaW5nLiBSaWRpbmcgYWxvbmcgd2l0aCB0aGUgbGFiZWwgc29sdmVzIHRoYXQuXG4uZmUyLWlubGluZS1kb3Qge1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICNmNTllMGI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgYW5pbWF0aW9uOiBmZS1wdWJsaXNoLXB1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5mZTItaW5saW5lLWRvdCB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5mZTItem9vbS1leHRyYSwgLmZlMi1wbGF5LCAuZmUyLWNvbnRleHQgeyB0cmFuc2l0aW9uOiBub25lOyBhbmltYXRpb246IG5vbmU7IH1cbiAgICAuZmUyLXBsYXk6OmFmdGVyIHsgYW5pbWF0aW9uOiBub25lOyBvcGFjaXR5OiAwOyB9XG59XG5cbi5mZTItc2VhcmNoLWl0ZW0geyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi8vIFRoZSBjbGFzc2ljIC5mZS1zZWFyY2gtd3JhcCBjb2xsYXBzZS9leHBhbmQgbWVjaGFuaWNzICh3aWR0aCB0cmFuc2l0aW9uLFxuLy8gb3ZlcmZsb3c6aGlkZGVuLCBvcGFjaXR5IGZhZGVzKSBhcmUgbmVzdGVkIDQgbGV2ZWxzIGRlZXAgdW5kZXJcbi8vIC5mbG93ZWRpdG9yLXRvb2xiYXIudG9vbGJhciAudG9vbGJhcl9tZW51LXdyYXBwZXIgLnRvb2xiYXJfbWVudVxuLy8gLnRvb2xiYXJfc3ViX21lbnUsIGkuZS4gUFJJVkFURSB0byB0aGF0IGV4YWN0IGFuY2VzdG9yIGNoYWluIOKAlCByZXVzaW5nIHRoZVxuLy8gYmFyZSBjbGFzcyBuYW1lIHVuZGVyIC5mZTItYmFyIGluaGVyaXRzIE5PTkUgb2YgdGhhdCAoY29uZmlybWVkIGxpdmUsXG4vLyAxNy4wNy4yMDI2OiB0aGUgdjIgc2VhcmNoIGJveCByZW5kZXJlZCBwZXJtYW5lbnRseSBleHBhbmRlZCwgdW5zdHlsZWQsXG4vLyBiZWNhdXNlIG9ubHkgY29sb3VycyB3ZXJlIG92ZXJyaWRkZW4gaGVyZSBvcmlnaW5hbGx5IGFuZCB0aGUgYWN0dWFsXG4vLyBsYXlvdXQgcnVsZXMgbmV2ZXIgbWF0Y2hlZCkuIFNvIHRoaXMgaXMgYSBmdWxsLCBzZWxmLWNvbnRhaW5lZFxuLy8gcmUtaW1wbGVtZW50YXRpb24gb2YgdGhlIHNhbWUgYmVoYXZpb3VyIGZvciB0aGUgbGlnaHQgZ2xhc3Mgc3VyZmFjZSwgbm90XG4vLyBqdXN0IGEgcmVjb2xvdXIg4oCUIHZlcmJhdGltIGRpbWVuc2lvbnMvdGltaW5ncyBmcm9tIHRoZSBjbGFzc2ljIHZlcnNpb24sXG4vLyBQVVJQTEUtT04tR0xBU1MgY29sb3VycyBpbnN0ZWFkIG9mIHdoaXRlLW9uLXB1cnBsZS5cbi5mZTItYmFyIHtcbiAgICAuZmUtc2VhcmNoLXdyYXAge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7ICAgLy8gbGV0cyB0aGUgaWNvbiBiZSBvcHRpY2FsbHkgY2VudHJlZCB3aGlsZSBjb2xsYXBzZWRcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIycHg7XG4gICAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMjQwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZCAyMDBtcyBlYXNlLFxuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3IgMjAwbXMgZWFzZTtcblxuICAgICAgICAvLyBDT0xMQVBTRUQgc3RhdGUg4oCUIGl0IHJlYWRzIGFzIGEgcGxhaW4gaWNvbiBidXR0b24gaGVyZSwgc28gaXQgbmVlZHNcbiAgICAgICAgLy8gYm90aCBhIGhvdmVyIHRpbnQgKEtpbTogXCJoZWVmdCBnZWVuIGhvdmVyIHN0YXRlXCIpIGFuZCBhIHByb3Blcmx5XG4gICAgICAgIC8vIGNlbnRyZWQgaWNvbiAoS2ltOiBcInN0YWF0IG5pZXQgaW4gaGV0IG1pZGRlblwiKS4gVGhlIGljb24gaGFzIHRvIGJlXG4gICAgICAgIC8vIGNlbnRyZWQgQUJTT0xVVEVMWTogdGhlIGlucHV0IGFuZCBjbGVhci1saW5rIGFyZSBvbmx5IG9wYWNpdHk6MCwgc29cbiAgICAgICAgLy8gdGhleSBzdGlsbCBvY2N1cHkgZmxleCBzcGFjZSBhbmQgc2hvdmUgdGhlIGljb24gb2ZmLWNlbnRyZSDigJRcbiAgICAgICAgLy8ganVzdGlmeS1jb250ZW50IGNhbid0IGZpeCB0aGF0IGJlY2F1c2UgdGhlIGlucHV0J3Mgd2lkdGg6MTAwJVxuICAgICAgICAvLyBjb25zdW1lcyBhbGwgdGhlIGZyZWUgc3BhY2UuIFdyaXR0ZW4gYXMgYW4gZXhwbGljaXQgOm5vdCgpIHJhdGhlclxuICAgICAgICAvLyB0aGFuIGEgbmVzdGVkIGAmYCBzbyB0aGUgY29tcGlsZWQgc2VsZWN0b3Igc3RheXMgc2ltcGxlLlxuICAgICAgICAmOm5vdCguZmUtc2VhcmNoLXdyYXAtLWFjdGl2ZSkge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4xMCk7XG4gICAgICAgICAgICAgICAgLmZlLXNlYXJjaC1pY29uIHsgY29sb3I6ICMyZjM1NzAgIWltcG9ydGFudDsgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZmUtc2VhcmNoLWljb24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgd2lkdGg6IDIyMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4wOCk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoNjUsIDczLCAxNTQsIDAuMjApO1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4IDAgOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZlLXNlYXJjaC1pbnB1dCwgLmZlLXNlYXJjaC1jbG9zZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zIGVhc2UgODBtcztcbiAgICAgICAgfVxuICAgICAgICAmLS1hY3RpdmUgLmZlLXNlYXJjaC1pbnB1dCwgJi0tYWN0aXZlIC5mZS1zZWFyY2gtY2xvc2Uge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTmVhci1ibGFjaywgbWF0Y2hpbmcgZXZlcnkgb3RoZXIgdG9vbGJhciBpY29uIChLaW0gMTcuMDcuMjAyNjogaXQgd2FzXG4gICAgICAgIC8vIHRoZSBvbmx5IHB1cnBsZSBvbmUpLiAhaW1wb3J0YW50IGJlY2F1c2UgdGhlIGNsYXNzaWMgYmFyJ3Mgb3duXG4gICAgICAgIC8vIHdoaXRlLW9uLXB1cnBsZSBydWxlIHVzZXMgaXQgdG9vLlxuICAgICAgICAuZmUtc2VhcmNoLWljb24ge1xuICAgICAgICAgICAgY29sb3I6ICMxZTFmMjAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIH1cbiAgICAgICAgJi0tYWN0aXZlIC5mZS1zZWFyY2gtaWNvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgICAgICBjb2xvcjogIzZkNzJhOCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZlLXNlYXJjaC1pbnB1dCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBjb2xvcjogIzI2MmE1YyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIgeyBjb2xvcjogcmdiYSgzOCwgNDIsIDkyLCAwLjQwKSAhaW1wb3J0YW50OyB9XG4gICAgICAgIH1cbiAgICAgICAgLmZlLXNlYXJjaC1jbG9zZSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIC5tZGkgeyBjb2xvcjogcmdiYSgzOCwgNDIsIDkyLCAwLjQ1KSAhaW1wb3J0YW50OyBmb250LXNpemU6IDE1cHg7IGxpbmUtaGVpZ2h0OiAxOyB9XG4gICAgICAgICAgICAmOmhvdmVyIC5tZGkgeyBjb2xvcjogIzJmMzU3MCAhaW1wb3J0YW50OyB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZmUtdHJhbnNsYXRlLWJ0bi0tYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4xNCk7XG4gICAgICAgIGNvbG9yOiAjMmYzNTcwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLy8gSW5jb21wbGV0ZS10cmFuc2xhdGlvbnMgZG90OiBwdWxsZWQgT05UTyB0aGUgYnV0dG9uIChLaW0gMTcuMDcuMjAyNixcbiAgICAvLyBcInN0YWF0IGVlbiBiZWV0amUgYXdrd2FyZFwiKS4gVGhlIHNoYXJlZCBydWxlIGFuY2hvcnMgaXQgYXQgLTRweC8tNHB4LFxuICAgIC8vIHdoaWNoIGlzIHJpZ2h0IGZvciB0aGUgY2xhc3NpYyBiYXIncyBDSVJDVUxBUiBpY29uIGJ1dHRvbiDigJQgYnV0IHRoaXNcbiAgICAvLyB2YXJpYW50IGlzIGEgdGV4dCBQSUxMLCBzbyB0aGF0IGNvcm5lciBkb2Vzbid0IHZpc3VhbGx5IGV4aXN0IGFuZCB0aGUgZG90XG4gICAgLy8gZmxvYXRlZCBkaWFnb25hbGx5IG9mZiBpbnRvIHNwYWNlLiBTaXRzIG9uIHRoZSB0b3AtcmlnaHQgY3VydmUgbm93LlxuICAgIC5mZS10cmFuc2xhdGUtYnRuLS1pbmNvbXBsZXRlOjphZnRlciB7XG4gICAgICAgIHRvcDogMnB4O1xuICAgICAgICByaWdodDogNHB4O1xuICAgIH1cblxuICAgIC5mZS1wcmV2aWV3LXRvb2xiYXItYnRuIHsgY29sb3I6ICM1MjU3OWM7IG9wYWNpdHk6IDE7IH1cbiAgICAuZmUtcHJldmlldy10b29sYmFyLWJ0bjpob3ZlciB7IGNvbG9yOiAjMmYzNTcwOyBiYWNrZ3JvdW5kOiByZ2JhKDY1LCA3MywgMTU0LCAwLjEwKTsgfVxuXG4gICAgLy8gVjEvaGlzdG9yeSBpcyBxZG5hcHJvLWJ1dHRvbiB0eXBlPVwib24tcHVycGxlXCIg4oCUIHRyYW5zcGFyZW50IGJnICsgV0hJVEVcbiAgICAvLyB0ZXh0L2ljb24gKGRlc2lnbmVkIGZvciBhIHB1cnBsZSBzdXJmYWNlKS4gT24gdGhpcyBsaWdodCBnbGFzcyBiYXIgdGhhdFxuICAgIC8vIHdhcyBpbnZpc2libGUgKEtpbSwgMTcuMDcuMjAyNjogXCJkZSB2ZXJzaW9uIGJ1dHRvbiBpcyBvbnppY2h0YmFhclwiKS5cbiAgICAvLyBSZWNvbG91ciB0byB0aGUgYnJhbmQgcHVycGxlOyBzdGF5cyBhIGdob3N0L29ob3N0ICh0cmFuc3BhcmVudCBiZyksIGp1c3RcbiAgICAvLyBkYXJrLW9uLWxpZ2h0IGluc3RlYWQgb2YgbGlnaHQtb24tZGFyay5cbiAgICAucWRuYXByby1idXR0b24uYnV0dG9uLW9uLXB1cnBsZSB7XG4gICAgICAgIGNvbG9yOiAjNDE0OTlhICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24tcHVycGxlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSxcbiAgICAucWRuYXByby1idXR0b24uYnV0dG9uLW9uLXB1cnBsZTphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4xMCkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvLyBQdWJsaXNoLCBFTkFCTEVEOiBxZG5hcHJvLWJ1dHRvbiB0eXBlPVwib24tcHVycGxlLXNvbGlkXCIgZmlsbHMgIzJhMzI2OCAoYVxuICAgIC8vIGRhcmsgbmF2eSB0dW5lZCBmb3IgYSBwdXJwbGUvZGFyayBzdXJmYWNlKSDigJQgb24gbGlnaHQgZ2xhc3MgaXQgcmVhZCBhc1xuICAgIC8vIG5lYXItYmxhY2sgcmF0aGVyIHRoYW4gXCJwdXJwbGVcIi4gS2ltLCAxNy4wNy4yMDI2OiBcImFscyBoaWogcHVibGljZWVyYmFhclxuICAgIC8vIGlzIGdld29vbiBwYWFyc1wiIOKAlCBvdmVycmlkZSB0byB0aGUgcmVhbCBicmFuZCBwdXJwbGUuXG4gICAgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1wdXJwbGUtc29saWQ6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzQxNDk5YSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAucWRuYXByby1idXR0b24uYnV0dG9uLW9uLXB1cnBsZS1zb2xpZDpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCksXG4gICAgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1wdXJwbGUtc29saWQ6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMyZjM1NzAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvLyBQdWJsaXNoLCBESVNBQkxFRDogS2ltLCAxNy4wNy4yMDI2IOKAlCBcIndpbCBpayB0cmFuc3BhcmFudCBhbHMgaGlqXG4gICAgLy8gZGlzYWJsZWQgaXNcIiAobm90IHRoZSBmaWxsZWQgZ3JleSBib3ggZnJvbSB0aGUgZmlyc3QgcGFzcywgd2hpY2ggZml4ZWRcbiAgICAvLyB0aGUgY29udHJhc3QgcHJvYmxlbSBidXQgb3ZlcnNob3QgaW50byBhIHNvbGlkIGJveCkuIFRyYW5zcGFyZW50IGZpbGwsXG4gICAgLy8gYSBoYWlybGluZSBib3JkZXIgZm9yIGRlZmluaXRpb24gc28gaXQgc3RpbGwgcmVhZHMgYXMgYSBidXR0b24gb3V0bGluZSxcbiAgICAvLyBtdXRlZCB0ZXh0LiBTY29wZWQgKyAhaW1wb3J0YW50IHRvIHdpbiBvdmVyIHRoZSBnbG9iYWwgLmJ1dHRvbi1kaXNhYmxlZFxuICAgIC8vIHJ1bGUgKGFsc28gIWltcG9ydGFudCkgd2l0aG91dCB0b3VjaGluZyBpdCBhbnl3aGVyZSBlbHNlIGluIHRoZSBhcHAuXG4gICAgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1kaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiByZ2JhKDM4LCA0MiwgOTIsIDAuMzYpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlcjogMS41cHggc29saWQgcmdiYSgzOCwgNDIsIDkyLCAwLjE4KSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLy8gKFRoZSBib3R0b20tcmlnaHQgY29ybmVyIHpvb20gZG9jayBsaXZlZCBoZXJlIHVudGlsIDE3LjA3LjIwMjYuIEtpbSBtb3ZlZFxuLy8gdmVyc2lvbiArIGhlbHAgdG8gdGhlIGhlYWRlciwgd2hpY2ggZnJlZWQgZW5vdWdoIHJvb20gdG8gYnJpbmcgem9vbSBiYWNrXG4vLyBJTlRPIHRoZSBiYXIgYXMgYSBjb2xsYXBzZWQgY2x1c3RlciDigJQgc2VlIC5mZTItem9vbSBhYm92ZSDigJQgc28gdGhlIGNvcm5lciBpc1xuLy8gZW1wdHkgYWdhaW4gYW5kIEphbidzIFwibmlldCBpbiBkZSB3ZWdcIiBjb25jZXJuIGlzIG1vb3QuKVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5ub2RlYmFyX21lbnUtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLy8gLmZlLXNlYXJjaC1vdmVybGF5IGlzIGluamVjdGVkIGludG8gdGhlIEdvSlMgZGl2IHZpYSBKUyAoYXBwbHlTZWFyY2ggaW4gZGlhZ3JhbS9pbmRleC5qcylcblxuQGtleWZyYW1lcyBub2RlYmFyLXNsaWRlLWluIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbn1cblxuQGtleWZyYW1lcyBtb2RhbC1mYWRlLWluIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB9XG59XG5cbkBrZXlmcmFtZXMgbW9kYWwtc2NhbGUtaW4ge1xuICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgwLjk1KTsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxKTsgfVxufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5ub2RlYmFyX21lbnUge1xuICAgICRwcmltYXJ5OiAjNDE0OTlhO1xuICAgICRwcmltYXJ5LWhvdmVyOiAjM2IyNTdhO1xuICAgICRwcmltYXJ5LWFjdGl2ZTogIzFmMjA1YztcbiAgICAkYm9yZGVyLXJhZGl1czogMWVtO1xuICAgICRzZWNvbmRhcnlfb2Zmc2V0OiAyMHB4O1xuXG4gICAgZm9udC1zaXplOiAuOGVtO1xuXG5cbiAgICAmLnByaW1hcnktbWVudSB7XG5cbiAgICAgICAgY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygyMDBweCArICRzZWNvbmRhcnlfb2Zmc2V0KTtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE0cHgpO1xuICAgICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgLm5vZGViYXJfbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuNTUpO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cyAkYm9yZGVyLXJhZGl1cyAwIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwICRib3JkZXItcmFkaXVzICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNTksIDM3LCAxMjIsIDAuNzApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzMSwgMzIsIDkyLCAwLjgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cblxuICAgIH1cblxuICAgICYuc2Vjb25kYXJ5LW1lbnUge1xuICAgICAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIG1heC1oZWlnaHQ6IDYwdmg7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2Vjb25kYXJ5X29mZnNldDtcblxuICAgICAgICAvLyBNb2Rlcm4gdGhpbiBzY3JvbGxiYXJcbiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICAgICAgICBzY3JvbGxiYXItY29sb3I6IHJnYmEoNjUsIDczLCAxNTQsIDAuMykgdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICAgICAgd2lkdGg6IDRweDtcbiAgICAgICAgfVxuICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDY1LCA3MywgMTU0LCAwLjMpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuNSk7IH1cbiAgICAgICAgfVxuICAgICAgICBib3JkZXItcmFkaXVzOiAwICRib3JkZXItcmFkaXVzICRib3JkZXItcmFkaXVzICRib3JkZXItcmFkaXVzO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzIpO1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTZweCk7XG4gICAgICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE2cHgpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCAyNHB4IHJnYmEoNjUsIDczLCAxNTQsIDAuMTIpO1xuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBub2RlYmFyLXNsaWRlLWluIDE4MG1zIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKSBib3RoO1xuICAgICAgICB9XG5cblxuICAgICAgICAubm9kZWJhcl9tZW51LWl0ZW0ge1xuXG4gICAgICAgICAgICBjdXJzb3I6IG1vdmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAkYm9yZGVyLXJhZGl1cyAwIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwICRib3JkZXItcmFkaXVzICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM1LCAyMzUsIDIzNSwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ub2RlYmFyX21lbnUtaXRlbSB7XG4gICAgICAgIHBhZGRpbmc6IC43NWVtIDFlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAuNzVlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cblxuICAgICAgICAmLm9wdGlvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAzNywgMTIyLCAwLjY1KTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCByZ2JhKDMxLCAzMiwgOTIsIDAuNjApIHNvbGlkO1xuICAgICAgICAgICAgcGFkZGluZzogMGVtIDFlbTtcblxuICAgICAgICAgICAgLm5vZGViYXJfbWVudS1pY29uIHtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogXCJNYXRlcmlhbCBEZXNpZ24gSWNvbnNcIjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAjOTM5YWNkO1xuXG4gICAgICAgICAgICAgICAgLm1kaSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgIH1cblxuICAgIC5ub2RlYmFyX21lbnUtaWNvbiB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIk1hdGVyaWFsIERlc2lnbiBJY29uc1wiO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxufVxuXG4vLyBtaW5pbWl6ZWQgbm9kZWJhclxuLmZsb3dlZGl0b3ItdG9vbGJhci5ub2RlYmFyLm1pbmltaXplZCB7XG5cbiAgICAucHJpbWFyeS1tZW51IHtcbiAgICAgICAgLm5vZGViYXJfbWVudS1pdGVtIHtcbiAgICAgICAgICAgIHNwYW4ubm9kZWJhcl9tZW51LXRpdGxlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNlY29uZGFyeS1tZW51IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICB9XG5cbn1cblxuXG4vLyAuZmxvd2VkaXRvci10b29sYmFyIHtcbi8vICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuLy8gICAgIGRpc3BsYXk6IGZsZXg7XG4vLyAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbi8vICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlNGU0ZTQ7XG5cbi8vICAgICAmLm5vZGViYXJ7XG5cbi8vICAgICAgICAgbWF4LXdpZHRoOiAyNzJweDtcblxuXG4vLyAgICAgICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgLyogaU9TIFNhZmFyaSAqL1xuLy8gICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyAvKiBTYWZhcmkgKi9cbi8vICAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAvKiBJbnRlcm5ldCBFeHBsb3Jlci9FZGdlICovXG4vLyAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuLy8gICAgIH1cbi8vICAgICAmLi10b29sYmFyLWluLW1vZGFse1xuLy8gICAgICAgICBtYXgtd2lkdGg6YXV0bztcbi8vICAgICAgICAgd2lkdGg6MTAwJTtcbi8vICAgICAgICAgLmZlLXNlY3Rpb24td3JhcHBlcntcbi8vICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4O1xuLy8gICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbi8vICAgICAgICAgfVxuXG4vLyAgICAgfVxuLy8gfVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS10YWJzIHtcbiAgICBmbGV4LWJhc2lzOiA1MHB4O1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2VmZWZlZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS10YWJzIC5mZS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLypoZWlnaHQ6IDEwMHZoOyovXG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS10YWJzIC5mZS13cmFwcGVyIHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS10YWJzIC5mZS13cmFwcGVyIHVsOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiA2NXB4O1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS10YWJzIC5mZS13cmFwcGVyIHVsOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXJpZ2h0IHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIC8qaGVpZ2h0OiAxMDB2aDsqL1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgY29sb3I6ICM2NjU4NGU7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXJpZ2h0IC5mZS1lbXB0eSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC8qaGVpZ2h0OiAxMDB2aDsqL1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtcmlnaHQgLmZlLWVtcHR5IHAge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGNvbG9yOiByZ2JhKCMwMDAsIC40KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXJpZ2h0IC5mZS1lbXB0eSBwIGkge1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciB7XG4gICAgLmZlLW5vZGUtZnJhbWUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDMxLCAxNCwgMTQsIDAuMTUpO1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDEwcHggMTBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgY29sb3I6ICM3Nzc7XG5cbiAgICAgICAgLnRzLXJvdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2M1YzVjNTtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAuMzc1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDQ0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZmUtbm9kZS10eXBlIHtcbiAgICAgICAgY29sb3I6ICNhY2FjYWM7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLjVyZW07XG4gICAgfVxufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1yaWdodCAuZmUtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAvKmhlaWdodDogMTAwdmg7Ki9cbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXJpZ2h0IC5mZS13cmFwcGVyIGZvb3RlciB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlYWVhZWE7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXJpZ2h0IC5mZS13cmFwcGVyIGZvb3RlciAuZmUtY2FyZC1ib2R5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbi13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZ3JvdzogMTtcblxuICAgID4uZmUtcmlnaHQge1xuICAgICAgICBvdmVyZmxvdy14OiB2aXNpYmxlO1xuICAgIH1cblxufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1zZWN0aW9uIC5mZS1jYXJkLWJvZHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXNlY3Rpb24uZmUtb3BlbiAuZmUtY2FyZC1ib2R5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtaW4taGVpZ2h0OiAzNHB4O1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1zZWN0aW9uIC5mZS1jYXJkLWJvZHkgaSB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1zZWN0aW9uIC5mZS1jYXJkLWJvZHkgLmZlLWNhcmQtYWN0aW9uLWJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VhZWFlYTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtY2FyZC1ib2R5IC5mZS1jYXJkLW92ZXJsYXkge1xuICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICBib3gtc2hhZG93OiAwcHggNXB4IDUwcHggMnB4IHJnYmEoIzAwMCwgLjEpO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1zZWN0aW9uIC5mZS1jYXJkLWJvZHkgLmZlLWNhcmQtb3ZlcmxheSAuZmUtdGl0bGUge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtY2FyZC1ib2R5IC5mZS1jYXJkLW92ZXJsYXkgLmZlLXRpdGxlIGkge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDFlbSAwIDAgMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIC8qb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgbWF4LWhlaWdodDogMjIzcHg7Ki9cbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1zZWN0aW9uIC5mZS1jYXJkLWJvZHkgdWwgbGkge1xuICAgIHBhZGRpbmctYm90dG9tOiAxZW07XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1zZWN0aW9uIC5mZS1jYXJkLWJvZHkgdWwgbGkgc3Bhbi5mZS1pdGVtLXRleHQge31cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtY2FyZC1ib2R5IHVsIGxpIHNwYW4uZmUtaXRlbS1zdWJ0ZXh0IHtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1zZWN0aW9uIC5mZS10YWItdGl0bGUsXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1zZWN0aW9uIC5mZS10aXRsZSB7XG4gICAgcGFkZGluZzogMC44ZW0gMS4yZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xuICAgIGNvbG9yOiAjNjM2MzYzO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1zZWN0aW9uIC5mZS1jYXJkLWJvZHkgLmZlLWl0ZW0taW5uZXIge31cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtY2FyZC1ib2R5IC5mZS1pdGVtLWNvbnRlbnQgLmZlLWl0ZW0tYWN0aW9ucyBhIHtcbiAgICAvKm1hcmdpbi1yaWdodDogMTBweDsqL1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1zZWN0aW9uIC5mZS1jYXJkLWJvZHkgLmZlLWl0ZW0tY29udGVudCAuZmUtaXRlbS1hY3Rpb25zIGE6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4uZmxvd2VkaXRvci10b29sYmFyIC5mZS1zZWN0aW9uIC5mZS1jYXJkLWJvZHkgLmZlLWl0ZW0tY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXNlY3Rpb24gLmZlLXRhYi10aXRsZSB7XG4gICAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgICBjb2xvcjogcmdiYSgjMDAwLCAuNik7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXNlY3Rpb24gLmZlLXRhYi10aXRsZSBzcGFuLFxuLmZsb3dlZGl0b3ItbW9kYWwgLmZlLW0tY29udGVudCAuZmUtbS1ib2R5IC5mZS1zZWN0aW9ucy1vdmVydmlldyB1bCBsaSBhIHNwYW4sXG4uZmxvd2VkaXRvci1tb2RhbCAuZmUtbS1jb250ZW50IC5mZS1tLWJvZHkgLmZlLW9yLWxpbmUge1xuICAgIGNvbG9yOiByZ2JhKCMwMDAsIC40KTtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtdGFiLXRpdGxlIHNwYW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmZsb3dlZGl0b3ItdG9vbGJhciAuZmUtc2VjdGlvbiAuZmUtdGl0bGUge1xuICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXNlY3Rpb24uZmUtb3BlbiAuZmUtdGl0bGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG59XG5cbi5mbG93ZWRpdG9yLXRvb2xiYXIgLmZlLXNlY3Rpb24gLmZlLWJ0biB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC44ZW07XG59XG5cbi5mbG93ZWRpdG9yLW1vZGFsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLmZsb3dlZGl0b3ItbW9kYWwuZmUtb3BlbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mbG93ZWRpdG9yLW1vZGFsIC5mZS1tLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgbWFyZ2luOiAxMCUgYXV0bztcbiAgICBwYWRkaW5nOiAzMHB4IDI1cHg7XG4gICAgd2lkdGg6IDgwJTtcbn1cblxuLmZsb3dlZGl0b3ItbW9kYWwgLmZlLW0tY29udGVudCAuZmUtbS1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU0O1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5mbG93ZWRpdG9yLW1vZGFsIC5mZS1tLWNvbnRlbnQgLmZlLW0taGVhZGVyIGgyIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luOiAxNXB4IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLmZsb3dlZGl0b3ItbW9kYWwgLmZlLW0tY29udGVudCAuZmUtbS1oZWFkZXIgaDIgc3BhbiB7XG4gICAgY29sb3I6IHJnYmEoIzAwMCwgLjQpO1xufVxuXG4uZmxvd2VkaXRvci1tb2RhbCAuZmUtbS1jb250ZW50IC5mZS1tLWJvZHkgLmZlLXNlY3Rpb25zLW92ZXJ2aWV3IHtcbiAgICAvKiBSZXNlcnZlZCAqL1xufVxuXG5cblxuLmZlLXNhdmUtbWV0aG9kcyB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cblxuLmZlLXNhdmUtbWV0aG9kcyB1bCBsaSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xufVxuXG4uZmUtc2F2ZS1tZXRob2RzIHVsIGxpOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLmZlLXNhdmUtbWV0aG9kIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKCMwMDAsIC4xKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLypwYWRkaW5nOiAzMHB4IDE1cHg7Ki9cbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzIyMjIyMjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5mZS1zYXZlLW1ldGhvZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNCwgMTY1LCAxMjcsIC4yKTtcbn1cblxuLmZlLXNhdmUtbWV0aG9kIHNwYW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAjOWM5YzljO1xufVxuXG4uZmxvd2VkaXRvci1tb2RhbCAuZmUtbS1jb250ZW50IC5mZS1tLWJvZHkgLmZlLXNlY3Rpb25zLW92ZXJ2aWV3IC5mZS1vdGhlci10b29scyB7XG4gICAgLyogUmVzZXJ2ZWQgKi9cbn1cblxuLmZlLW9yLWxpbmUge1xuICAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2U0ZTRlNDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZmUtb3ItbGluZTphZnRlciB7XG4gICAgY29udGVudDogXCJvclwiO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMWVtO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nOiAwIDAuOTVlbTtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLmZlLW90aGVyLXRvb2xzIHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZmUtb3RoZXItdG9vbHMgdWwgbGkge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uZmUtb3RoZXItdG9vbHMgdWwgbGkgYSB7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgjMDAwLCAuMSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDMwcHggMTVweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5mbG93ZWRpdG9yLW1vZGFsIC5mZS1tLWNvbnRlbnQgLmZlLW0tYm9keSAuZmUtc2VjdGlvbnMge1xuICAgIC8qIFJlc2VydmVkICovXG59XG5cbi5mbG93ZWRpdG9yLW1vZGFsIC5mZS1tLWNvbnRlbnQgLmZlLW0tYm9keSAuZmUtc2VjdGlvbnMgLmZlLXNlY3Rpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5mbG93ZWRpdG9yLW1vZGFsIC5mZS1tLWNvbnRlbnQgLmZlLW0tYm9keSAuZmUtc2VjdGlvbnMgLmZlLXNlY3Rpb24uZmUtb3BlbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mbG93ZWRpdG9yLW1vZGFsIC5mZS1tLWNvbnRlbnQgLmZlLW0tYm9keSAuZmUtc2VjdGlvbnMgLmZlLXNlY3Rpb24gLmZlLXRhYmxlLXdyYXBwZXIge1xuICAgIG1heC1oZWlnaHQ6IDMwMHB4ICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xufVxuXG4uZmxvd2VkaXRvci1tb2RhbCAuZmUtbS1jb250ZW50IC5mZS1tLWZvb3RlciB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICBwYWRkaW5nLXRvcDogMTVweDtcbn1cblxuLmZsb3dlZGl0b3ItbW9kYWwgLmZlLW0tY2xvc2Uge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5mbG93ZWRpdG9yLW1vZGFsIC5mZS1tLWNsb3NlOmhvdmVyLFxuLmZsb3dlZGl0b3ItbW9kYWwgLmZlLW0tY2xvc2U6Zm9jdXMge1xuICAgIGNvbG9yOiBibGFjaztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLyBcbi8vIFN1YmZsb3cgTG9naWMgYW5kIFJ1bGVzXG4vLyBcblxuJHJ1bGVzOiAjNWE4M2VjO1xuJHJ1bGVzLWxpZ2h0OiBjb2xvci5hZGp1c3QoJHJ1bGVzLCAkbGlnaHRuZXNzOiAyNCUpO1xuJHJ1bGVzLWxpZ2h0ZXI6IGNvbG9yLmFkanVzdCgkcnVsZXMsICRsaWdodG5lc3M6IDMxJSk7XG5cbi50ZXh0LXJ1bGVzIHtcbiAgICBjb2xvcjogJHJ1bGVzO1xufVxuXG4uY2FyZC1ydWxlcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJ1bGVzLWxpZ2h0ZXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHJ1bGVzO1xuICAgIHBhZGRpbmc6IDEuMjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogLjI1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGg2IHtcbiAgICAgICAgY29sb3I6ICRydWxlcztcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cblxuICAgIC50b3AtcmlnaHQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLjVyZW07XG4gICAgICAgIHJpZ2h0OiAuNXJlbTtcbiAgICB9XG5cbiAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcnVsZXM7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgkcnVsZXMsIC4yNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLmFkanVzdCgkcnVsZXMtbGlnaHRlciwgJGxpZ2h0bmVzczogMyUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJ1bGUtaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICBjb2xvcjogJHJ1bGVzO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRydWxlcztcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJ1bGVzLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcnVsZXM7XG4gICAgICAgICAgICBwYWRkaW5nOiAuMzc1cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cblxuICAgICAgICAuYnRuLW91dGxpbmUtcHJpbWFyeSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRydWxlcztcbiAgICAgICAgICAgIGNvbG9yOiAkcnVsZXM7XG4gICAgICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRydWxlcztcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRydWxlcztcbiAgICAgICAgICAgICAgICBjb2xvcjogY29sb3JzLiR3aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoJHJ1bGVzLCAuNSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuICAgICAgICAgICAgJjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRydWxlcztcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRydWxlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ydWxlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC5idG4tY2lyY2xlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtNDBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5idG4tY2lyY2xlIHtcbiAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICBjb2xvcjogJHJ1bGVzO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UtaW4tb3V0O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcnVsZXMtbGlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEJ1dHRvbnNcbi5idG4tcnVsZXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRydWxlcy1saWdodGVyO1xuICAgIGNvbG9yOiAkcnVsZXM7XG4gICAgYm9yZGVyLWNvbG9yOiAkcnVsZXM7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRydWxlcztcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcnVsZXM7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKCRydWxlcywgLjUpO1xuICAgIH1cblxuICAgICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRydWxlcztcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcnVsZXM7XG4gICAgfVxufVxuXG4uYnRuLXJ1bGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRydWxlcy1saWdodDtcbiAgICBjb2xvcjogJHJ1bGVzO1xuICAgIGJvcmRlci1jb2xvcjogJHJ1bGVzLWxpZ2h0O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRydWxlcztcbiAgICAgICAgY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHJ1bGVzO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgkcnVsZXMsIC41KTtcbiAgICB9XG5cbiAgICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcnVsZXM7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHJ1bGVzO1xuICAgIH1cbn1cblxuLmZsb3dlZGl0b3JfbW9kYWwgeyAgICBcbiAgICB6b29tOiA4MCU7XG4gICAgLnRhYnMtY29tcG9uZW50IHt9XG5cbiAgICAudGFicy1jb21wb25lbnQtdGFicyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG5cbiAgICAudGFicy1jb21wb25lbnQtdGFiIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7XG4gICAgICAgICAgICBjb2xvcjogI2FjYWNhYztcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM1YTgzZWM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudGFicy1jb21wb25lbnQtcGFuZWxzIHtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICB9XG5cbiAgICAudHMtZm9ybS1jaGVjayB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAgICAgLnRzLWVsZW1lbnQtbGFiZWwge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50cy1sYWJlbC10ZXh0OjpiZWZvcmUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdKy50cy1sYWJlbC10ZXh0OmJlZm9yZSB7XG4gICAgICAgICAgICBjb2xvcjogIzVhODNlYztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gQWN0aW9uIG5vZGUgb3B0aW9uc1xuLnNlbGVjdGVkLXF1ZXN0aW9ucyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHJ1bGVzO1xuICAgIGJvcmRlci1yYWRpdXM6IC4yNXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcnVsZXMtbGlnaHRlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgdGFibGUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgY29sb3I6ICRydWxlcztcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IC4zcmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJ0bi1yZW1vdmUge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAuMTVzIGVhc2UtaW4tb3V0O1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvci5hZGp1c3QoJHJ1bGVzLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSB0cjpudGgtb2YtdHlwZShldmVuKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcnVsZXMtbGlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5mZS1ub2RlLXRpdGxlLWNhcmQge1xuXG4gICAgYmFja2dyb3VuZDogIzNmNDY5YztcbiAgICBwYWRkaW5nOiAuNzVlbTtcbiAgICBib3JkZXItcmFkaXVzOiAxZW07XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBnYXA6IDFlbTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cbiAgICAuZmUtbm9kZS10aXRsZS1pY29uIHtcblxuXG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIH1cblxuICAgIC5mZS1ub2RlLXRpdGxlLW5hbWUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICB9XG5cbiAgICAuZmUtbm9kZS10aXRsZS1pZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogLjc1ZW07XG4gICAgfVxuXG59XG5cbi5mZS1jYXJkLXRpdGxlIHtcbiAgICAkcHJpbWFyeTogIzNmNDY5YztcbiAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcblxufVxuXG4uYnRuIHtcbiAgICAkcHJpbWFyeTogIzNmNDY5YztcbiAgICAkcHJpbWFyeS1ob3ZlcjogIzMzM2E3YjtcbiAgICAkc2Vjb25kYXJ5OiAjZjBmMWYyO1xuICAgICRzZWNvbmRhcnktaG92ZXI6ICNjNGM3Y2M7XG4gICAgJHdhcm5pbmc6ICNmMGYxZjI7XG4gICAgJHdhcm5pbmctaG92ZXI6ICNjNGM3Y2M7XG5cbiAgICBwYWRkaW5nOiAuNzVyZW0gMnJlbTtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogLjc1ZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cblxuXG4gICAgJi5idG4tcHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5XG4gICAgfVxuXG4gICAgJi5idG4tb3V0bGluZSB7XG4gICAgICAgIGJvcmRlcjogMXB4ICRwcmltYXJ5IHNvbGlkO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnk7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuYnRuLWxpbmsge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHByaW1hcnk7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgJi5idG4tc2l6ZS1zbSB7XG4gICAgICAgIHBhZGRpbmc6IC41cmVtIDFyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG5cbiAgICAmLmJ0bi1jb2xvci1wcmltYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnk7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktaG92ZXI7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWhvdmVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5idG4tY29sb3Itc2Vjb25kYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZDogJHNlY29uZGFyeTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICMwYjBiMGQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5LWhvdmVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5idG4tY29sb3Itc2Vjb25kYXJ5LW91dGxpbmUge1xuICAgICAgICBib3JkZXI6IDFweCAkcHJpbWFyeSBzb2xpZDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmJ0bi1jb2xvci1zZWNvbmRhcnktd2hpdGUge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvci5hZGp1c3QoJHByaW1hcnksICRsaWdodG5lc3M6IC0xMCUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5idG4tY29sb3Itd2FybmluZyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR3YXJuaW5nO1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogI0M2NUE1QTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3YXJuaW5nLWhvdmVyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZmUtZm9ybS5mb3JtLXJvdyB7XG4gICAgbGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgY29sb3I6ICM0MDQ5OUE7XG4gICAgfVxuXG4gICAgLmZvcm0tY29udHJvbCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IC42MjVyZW07XG4gICAgICAgIHBhZGRpbmc6IC43NXJlbSAuOHJlbTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbn1cblxuLmlucHV0LWdyb3VwIHtcbiAgICAuaW5wdXQtZ3JvdXAtcHJlcGVuZC5pbmxpbmUge1xuXG4gICAgICAgIC5pbnB1dC1ncm91cC10ZXh0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmlucHV0LWdyb3VwLWFwcGVuZC5pbmxpbmUge1xuXG4gICAgICAgIC5pbnB1dC1ncm91cC10ZXh0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJjpoYXMoLmlucHV0LWdyb3VwLXByZXBlbmQuaW5saW5lKSB7XG4gICAgICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhhcyguaW5wdXQtZ3JvdXAtYXBwZW5kLmlubGluZSkge1xuICAgICAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZmUtbGFuZy1pbmRpY2F0b3Ige1xuICAgIGNvbG9yOiAjNmM1ZjU1O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZmUtbGFuZ3VhZ2UtZmllbGRzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBnYXA6IDFlbTtcbn1cblxuLmZlLWl0ZW1zIHtcbiAgICAvLyBSZXNldCBicm93c2VyIGRlZmF1bHQgbGlzdCBpbmRlbnQgc28gYW5zd2VyIHJvd3MgYWxpZ24gd2l0aCB0aGUgdGV4dCBmaWVsZHMgYWJvdmUuXG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICYuZmUtbGluay1saXN0IHtcbiAgICAgICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAvLyBJbnZpc2libGUgc2Nyb2xsYmFyOiBrZWVwIHNjcm9sbGluZywgaGlkZSB0aGUgYmFyLiBbS2ltIDIyLjA2LjIwMjZdXG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgICAgICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgICAvLyA0cHggdmVydGljYWwgZ2FwIGJldHdlZW4gY29uc2VjdXRpdmUgYW5zd2VyLW9wdGlvbiByb3dzLiBUaGUgbGlzdCBpcyBhXG4gICAgICAgIC8vIHBsYWluIGJsb2NrIDx1bD4gKG5vdCBmbGV4KSwgc28gdXNlIGFkamFjZW50LXNpYmxpbmcgbWFyZ2luLiBBbHNvIHNwYWNlc1xuICAgICAgICAvLyB0aGUgaW5saW5lIGFkZC1kYXRhcG9pbnQgb3ZlcmxheSByb3cgZnJvbSB0aGUgbGFzdCBhbnN3ZXIuIFRoZSBkYXNoZWRcbiAgICAgICAgLy8gXCIrXCIgYWRkLWJhciBrZWVwcyBpdHMgb3duIG1hcmdpbiBhbmQgaXMgaW50ZW50aW9uYWxseSBleGNsdWRlZC4gW0tpbSAyMDI2LTA2LTIwXVxuICAgICAgICAvL1xuICAgICAgICAvLyBSRUdSRVNTSU9OIEZJWCAoUGhhc2UgNUIgTWVlcmtldXplIHBlci1vcHRpb24gYXBwZWFyYW5jZSwgMTEuMDcuMjAyNik6XG4gICAgICAgIC8vIExpbmsudnVlJ3MgdGVtcGxhdGUgcm9vdCB1c2VkIHRvIEJFIHFkbmFwcm8tYW5zd2VyLW9wdGlvbiBpdHNlbGYsIHNvIGl0XG4gICAgICAgIC8vIGxhbmRlZCBhcyB0aGUgZGlyZWN0IGNoaWxkIG9mIHRoaXMgPHVsPiBhbmQgdGhpcyBzZWxlY3RvciBtYXRjaGVkLiBTaW5jZVxuICAgICAgICAvLyBQaGFzZSA1QiwgTGluay52dWUgQUxXQVlTIHdyYXBzIGl0IGluIGEgYC5mZS1hbnN3ZXItcm93LXdyYXBgIGRpdiAoZm9yXG4gICAgICAgIC8vIGV2ZXJ5IG5vZGUgdHlwZSwgbm90IGp1c3QgTWVlcmtldXplIOKAlCBzZWUgdGhhdCBjbGFzcydzIG93biBjb21tZW50IGluXG4gICAgICAgIC8vIHRoaXMgZmlsZSksIHNvIHRoZSBkaXJlY3QgPHVsPiBjaGlsZCBpcyBub3cgYC5mZS1hbnN3ZXItcm93LXdyYXBgIGFuZFxuICAgICAgICAvLyBgcWRuYXByby1hbnN3ZXItb3B0aW9uYCBzaXRzIG9uZSBsZXZlbCBkZWVwZXIuIFRoZSBvbGRcbiAgICAgICAgLy8gYHFkbmFwcm8tYW5zd2VyLW9wdGlvbiArIHFkbmFwcm8tYW5zd2VyLW9wdGlvbmAgc2VsZWN0b3Igbm8gbG9uZ2VyIGhhc1xuICAgICAgICAvLyBhbnkgdHdvIGFkamFjZW50IG1hdGNoZXMgKHRoZXJlIElTIG5vIGJhcmUgcWRuYXByby1hbnN3ZXItb3B0aW9uIGRpcmVjdFxuICAgICAgICAvLyBjaGlsZCBsZWZ0KSwgc28gaXQgc2lsZW50bHkgc3RvcHBlZCBtYXRjaGluZyDigJQgdGhhdCdzIHRoZSB5ZXMvbm9cbiAgICAgICAgLy8gKGFuZCBhbnkgb3RoZXIgcGxhaW4sIG5vbi0uZmUtZ3JhZGUtcm93IHJvdyB0eXBlLCBlLmcuIE1lZXJrZXV6ZSB3aGlsZVxuICAgICAgICAvLyBpbiBNVUxUSS9jaGVja2JveCBtb2RlLCBmaXhlcywgc2t1X2RldGFpbF9kZXNjcmlwdGlvbikgemVyby1nYXAgYnVnXG4gICAgICAgIC8vIGZyb20gS2ltJ3Mgc2NyZWVuc2hvdC4gVGFyZ2V0IHRoZSBuZXcgd3JhcHBlciBpbnN0ZWFkLiBbS2ltIDExLjA3LjIwMjZdXG4gICAgICAgID4gLmZlLWFuc3dlci1yb3ctd3JhcCArIC5mZS1hbnN3ZXItcm93LXdyYXAsXG4gICAgICAgID4gLmZlLWFuc3dlci1yb3ctd3JhcCArIC5mZS1hbnN3ZXItcm93LS1hZGRpbmcge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICB9XG4gICAgICAgIC8vIGdyYWRlX25vZGUvbnBzX25vZGUgcm93cyAoYW5kLCBzaW5jZSB0aGUgbGlua3MtZWRpdG9yIHJldmlldyBiYXRjaCxcbiAgICAgICAgLy8gTWVlcmtldXplIHJvd3MgaW4gcmFkaW8gbW9kZSkgYXJlIHdyYXBwZWQgaW4gLmZlLWdyYWRlLXJvdyAoY2hlY2tib3ggK1xuICAgICAgICAvLyB0aGUgYW5zd2VyLW9wdGlvbiksIHNvIHRoZXkgYXJlIHRoZSBESVJFQ1QgY2hpbGQgaW5zdGVhZCDigJQgc2FtZSA0cHhcbiAgICAgICAgLy8gcmh5dGhtLCBpbmNsLiB0aGUgZ2FwIGJlZm9yZSB0aGUgYWRkLWRhdGFwb2ludCBvdmVybGF5IHJvdyAoTWVlcmtldXplXG4gICAgICAgIC8vIGlzIHRoZSBmaXJzdCBidWxrLXNlbGVjdGFibGUgdHlwZSB0aGF0IGFsc28gaGFzIHNob3dBZGREYXRhcG9pbnQoKSkuXG4gICAgICAgIC8vIC5mZS1ncmFkZS1yb3cgaXRzZWxmIHdhcyBOT1QgdG91Y2hlZCBieSB0aGUgUGhhc2UgNUIgd3JhcHBlciBjaGFuZ2VcbiAgICAgICAgLy8gKExpbmsudnVlJ3MgbmV3IGAuZmUtYW5zd2VyLXJvdy13cmFwYCBuZXN0cyBJTlNJREUgYC5mZS1ncmFkZS1yb3dgLFxuICAgICAgICAvLyBub3QgaW5zdGVhZCBvZiBpdCksIHNvIHRoaXMgcnVsZSBrZXB0IG1hdGNoaW5nIGFuZCBuZWVkcyBubyBjaGFuZ2Ug4oCUXG4gICAgICAgIC8vIGtlcHQgaGVyZSBvbmx5IHNvIHRoZSA0cHggcmh5dGhtIHN0YXlzIGRlY2xhcmVkIG5leHQgdG8gaXRzIHNpYmxpbmdcbiAgICAgICAgLy8gcnVsZSBhYm92ZS4gW1BoYXNlIDIgU2NvcmUvTlBTIG92ZXJoYXVsLCAyMDI2LTA3LTExXVxuICAgICAgICA+IC5mZS1ncmFkZS1yb3cgKyAuZmUtZ3JhZGUtcm93LFxuICAgICAgICA+IC5mZS1ncmFkZS1yb3cgKyAuZmUtYW5zd2VyLXJvdy0tYWRkaW5nIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICB3aWR0aDogOHB4O1xuXG5cbiAgICB9XG5cbiAgICAvKiBUcmFjayAqL1xuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLyogSGFuZGxlICovXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjM2IyNTdhO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgfVxuXG4gICAgLyogSGFuZGxlIG9uIGhvdmVyICovXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjM2IyNTdhO1xuICAgIH1cbn1cblxuLmZlLXNlbGVjdGFibGUtd3JhcHBlciB7XG5cblxuICAgIC5mZS1zZWxlY3RhYmxlIHtcblxuICAgICAgICBib3JkZXI6IDFweCAjM2Y0NjljIHNvbGlkO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAuNjI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAxLjI1ZW07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAgICAgICBnYXA6IDFlbTtcblxuICAgICAgICAuZmUtc2VsZWN0YWJsZS0taW1hZ2Uge1xuICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDtcblxuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDFlbTtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mZS1zZWxlY3RhYmxlLS10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogIzNmNDY5YztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mZS1zZWxlY3RhYmxlLS1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBjb2xvcjogIzY2NTg0ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBtZWRpdW07XG4gICAgICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLmZlLXNlbGVjdGFibGUtYmlnLWljb24ge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICAuZmUtc2VsZWN0YWJsZS0taW1hZ2Uge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMWVtO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuZmUtc2VsZWN0YWJsZS1ib2R5IHt9XG5cbiAgICB9XG5cbiAgICAuZmUtc2VsZWN0YWJsZS1pbnB1dDpjaGVja2VkKy5mZS1zZWxlY3RhYmxlIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2U2ZThmZjtcbiAgICAgICAgYm9yZGVyOiAycHggIzNmNDY5YyBzb2xpZDtcbiAgICB9XG5cbiAgICAuZmUtc2VsZWN0YWJsZS1pbnB1dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmVcbiAgICB9XG59XG5cbi5mZS1oZXJvLWJ1dHRvbiB7XG4gICAgYm9yZGVyOiAxcHggIzNmNDY5YyBzb2xpZDtcbiAgICBiYWNrZ3JvdW5kOiAjZTZlOGZmO1xuXG4gICAgYm9yZGVyLXJhZGl1czogLjYyNXJlbTtcbiAgICBwYWRkaW5nOiAyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiAjM2Y0NjljO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlcjogMXB4ICMzZjQ2OWMgc29saWQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICNkM2Q4ZmY7XG4gICAgfVxuXG4gICAgLm1kaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIH1cblxufVxuXG4uZmUtcHJvcGVydHktY29sb3Ige1xuICAgIC5mZS1jb2xvci1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAuNWVtO1xuXG4gICAgICAgIC5mZS1jb2xvci13cmFwcGVyIHtcblxuXG4gICAgICAgICAgICAuZmUtY29sb3Ige1xuICAgICAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xuXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgYm9yZGVyOiAycHggI2ZmZmZmZiBzb2xpZDtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAjZmZmZmZmIHNvbGlkO1xuXG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmZlLWNvbG9yLXNlbGVjdG9yIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAgICAgJjpjaGVja2VkKy5mZS1jb2xvciB7XG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICMzZDQ0OWQgc29saWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgfVxuXG5cblxuXG5cbiAgICB9XG59XG5cbi5nYXAge1xuICAgICYtMSB7XG4gICAgICAgIGdhcDogMWVtO1xuICAgIH1cbn1cblxuLmZlLXNldHRpbmdzLXRpdGxlIHtcbiAgICBjb2xvcjogIzQxNDY5NjtcbiAgICBmb250LXNpemU6IDFlbTtcblxuICAgIC5mZS1zZXR0aW5ncy1kZXNjcmlwdGlvbi1pY29uIHtcbiAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlZThlMDE7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbn1cblxuLmZlLXNldHRpbmdzLXN3aXRjaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogNjBweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICYrLnNsaWRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQxNDY5NjtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCk7XG4gICAgICAgICAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCk7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNnB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zbGlkZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThlOGU4O1xuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IC4xcztcbiAgICAgICAgdHJhbnNpdGlvbjogLjFzO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzNHB4O1xuICAgIH1cblxuICAgIC5zbGlkZXI6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICBsZWZ0OiAzcHg7XG4gICAgICAgIGJvdHRvbTogM3B4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAuNHM7XG4gICAgICAgIHRyYW5zaXRpb246IC40cztcbiAgICAgICAgYm94LXNoYWRvdzogMXB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICB9XG5cbn1cblxuLmZlLWRlYnVnLWhvbGRlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGNvbG9yOiAjMDAwO1xuXG4gICAgdG9wOiAxZW07XG4gICAgcmlnaHQ6IDFlbTtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgem9vbTogJHBhZ2UtcmVzb2x1dGlvbjtcblxuICAgIC5mZS1kZWJ1ZyB7XG5cbiAgICAgICAgYm9yZGVyLXJhZGl1czogMWVtO1xuXG5cbiAgICAgICAgLmZlLWRlYnVnLWNvbnRyb2xzIHtcblxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMzYjI1N2E7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBjb2xvcjogI0ZGRjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IC41ZW0gLjVlbSAwIDA7XG5cblxuICAgICAgICAgICAgLmZlLWRlYnVnLWNvbnRyb2wtb3B0aW9uIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAuNWVtIDFlbTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5mZS1kZWJ1Zy1pdGVtIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGRkY7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggIzcyNzI5OSBzb2xpZDtcbiAgICAgICAgICAgIHBhZGRpbmc6IC4yZW0gLjVlbTtcblxuXG4gICAgICAgICAgICAmLS10aXRsZSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICMyMDI0NGQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBtZWRpdW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzQxNDk5YTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjRlbSAwLjhlbTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMGVtO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjc1ZW07XG4gICAgICAgICAgICB9XG5cblxuXG4gICAgICAgICAgICAmLS1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2I0YmJkODtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjJlbSAyZW07XG5cblxuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5mZS1jYXJkIC5mZS1jYXJkLXRhYnMge1xuXG4gICAgYmFja2dyb3VuZDogIzQwNDk5YTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmc6IDAgMWVtO1xuXG5cbiAgICAuZmUtY2FyZC10YWIge1xuICAgICAgICBjb2xvcjogI0ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogIzQwNDk5YTtcbiAgICAgICAgcGFkZGluZzogMS41ZW0gMS4yNWVtO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgbWFyZ2luOiAwIDFlbTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzM1M2Q4MztcblxuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRkZGO1xuXG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLmZlLWRpdmlkZXIge1xuICAgICRwcmltYXJ5OiAjM2Y0NjljO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAkcHJpbWFyeTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcblxuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBwYWRkaW5nOiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICBtYXJnaW46IDVweDtcbiAgICB9XG59XG5cbi8vIFJlcGxhY2VkIGJ5IHRoZSBxZG5hcHJvLXNsaWRlciBjb21wb25lbnQgKHNlZSBBYnN0cmFjdFJhbmdlLnZ1ZSkuIFtLaW0gMTEuMDcuMjAyNl1cbi5mZS1yYW5nZS1jdXJyZW50LXZhbHVlIHtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgLy8gUmVzZXQgdGhlIDxwPiB0YWcncyBpbmhlcml0ZWQgYm9vdHN0cmFwIG1hcmdpbi1ib3R0b20gc28gaXQgZG9lc24ndCBhZGRcbiAgICAvLyBleHRyYSB3aGl0ZXNwYWNlIGJlbG93IHRoZSByb3cgb24gdG9wIG9mIC5mZS1yYW5nZS1yb3cncyBvd24gcGFkZGluZy5cbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIC8vIEJyYW5kIHB1cnBsZSwgaGFyZGNvZGVkIGxpa2UgdGhlIG90aGVyIG9uZS1vZmYgY29sb3JzIGluIHRoaXMgZmlsZSDigJQgbm9cbiAgICAvLyBnbG9iYWwgJHByaW1hcnkgdmFyaWFibGUgaXMgaW4gc2NvcGUgaGVyZSAoc2VlIC5mZS1kaXZpZGVyIGFib3ZlLCB3aG9zZVxuICAgIC8vICRwcmltYXJ5IGlzIGEgTE9DQUwgdmFyaWFibGUgc2NvcGVkIHRvIHRoYXQgb25lIGJsb2NrIG9ubHkpLlxuICAgIGNvbG9yOiAjNDA0OTlhO1xufVxuXG4vLyBDb21wYWN0IHZlcnRpY2FsIHJoeXRobSBmb3IgdGhlIHJhbmdlL3NsaWRlciBzZXR0aW5nIHJvdyAoUGhvdG8ucGhwJ3Ncbi8vIGltYWdlX3F1YWxpdHkpLCB0aWdodGVuZWQgcGVyIEtpbSdzIHJldmlldyAxMS4wNy4yMDI2OiB0aXRsZS9zdWIgc2F0IDE2cHhcbi8vIChib290c3RyYXAgbWItMykgYWJvdmUgdGhlIHNsaWRlciBhbmQgdGhlIHdob2xlIHJvdyBjYXJyaWVkIGEgMjRweFxuLy8gbWItNC9tdC00IGdhcCDigJQgYm90aCBmYXIgbG9vc2VyIHRoYW4gZXZlcnkgb3RoZXIgc2V0dGluZyByb3cgaW4gdGhpcyBtb2RhbC5cbi8vIE1hdGNoIC5mZS1zZXQtcm93J3MgMTJweCB0b3AvYm90dG9tIHJoeXRobSAoc2VlIGZ1cnRoZXIgZG93biB0aGlzIGZpbGUpXG4vLyBpbnN0ZWFkIG9mIHRoZSBvbGQgYm9vdHN0cmFwIHV0aWxpdHkgY2xhc3Nlcy5cbi5mZS1ubyAuZmUtcmFuZ2Utcm93IHtcbiAgICBwYWRkaW5nOiAxMnB4IDA7XG59XG4uZmUtbm8gLmZlLXJhbmdlLWJsb2NrIC5xZG5hcHJvLW1vZGFsLXRvZ2dsZS10ZXh0IHtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG59XG5cbi8vIEhhbmRvdmVyIHRyaWdnZXIgbGlzdC4gUmVwbGFjZWQgdGhlIGhhbmQtcm9sbGVkIGB0YWJsZS5mZS1oYW5kb3Zlci10cmlnZ2VyLWxpc3RgXG4vLyAocmVtb3ZlZCAwNC4wOC4yMDI2IHRvZ2V0aGVyIHdpdGggaXRzIG1hcmt1cCwgdGhlIGNsYXNzIGhhZCBubyBvdGhlciBjb25zdW1lcik6XG4vLyB0aGUgcm93cyBhcmUgcWRuYXByby1saXN0LXJvdyBub3csIHNvIHRoZSByb3cgc3VyZmFjZSwgaG92ZXIsIGRpdmlkZXJzIGFuZCB0aGVcbi8vIHRyYWlsaW5nLXNsb3QgbGF5b3V0IGFsbCBjb21lIGZyb20gdGhlIGNvbXBvbmVudC4gV2hhdCBpcyBsZWZ0IGhlcmUgaXMgb25seSB0aGVcbi8vIGhlYWRlciByb3cgYWJvdmUgdGhlIGxpc3QgYW5kIHRoZSByZWNpcGllbnRzIGJsb2NrIGluc2lkZSB0aGUgdHJhaWxpbmcgc2xvdC5cbi8vIFtLaW0gMDQuMDguMjAyNl1cbi5mZS1odC1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG4gICAgLmZlLWNhcmQtdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgcWRuYXByby1pY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgfVxufVxuXG4vLyBab2VrLSBlbiBmaWx0ZXJiYWxrIGJvdmVuIGRlIHJlZ2VsbGlqc3QgKGZhc2UgRCwgMDUuMDguMjAyNikuIFZlcnNjaGlqbnQgdmFuYWZcbi8vIGFjaHQgcmVnZWxzOyB6aWUgQWJzdHJhY3RIYW5kb3ZlclRyaWdnZXJzLnZ1ZSB2b29yIHdhYXJvbSBkaWUgZHJlbXBlbCBlciBpcy5cbi8vXG4vLyDDicOJTiByZWdlbDogem9la3ZlbGQsIGZpbHRlcmtub3AsIG9udHZhbmdlcmtldXplIChLaW0gMDUuMDguMjAyNiwgbmEgZGUgZWVyc3RlXG4vLyB2ZXJzaWUgbWV0IGVlbiBzZWdtZW50YmFsayBlcm9uZGVyOiBcIm51IGhlYmJlbiB3ZSAyIHJlZ2VscyBhYW4gcnVpbXRlIGluIGJlc2xhZyxcbi8vIGlrIHdpbCBiZWlkZSBmaWx0ZXIgb3B0aWVzIGdld29vbiBuYWFzdCBkZSBzZWFyY2ggaGViYmVuIHN0YWFuXCIpLiBBbGxlIGRyaWUgemlqblxuLy8gNDBweCBob29nLiBEZSB0ZWxsZXJyZWdlbCBlcm9uZGVyIGJlc3RhYXQgYWxsZWVuIHRpamRlbnMgZmlsdGVyZW4uXG4uZmUtaHQtdG9vbGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG5cbi5mZS1odC1zZWFyY2gge1xuICAgIC8vIEhldCB6b2VrdmVsZCBlZXQgZGUgcmVzdCB2YW4gZGUgcmVnZWw7IGRlIHR3ZWUgZmlsdGVycyBob3VkZW4gaHVuIGVpZ2VuIG1hYXQuXG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4uZmUtaHQtZmlsdGVyLWJ0bixcbi5mZS1odC1hZGQtYnRuIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLmZlLWh0LXJlY2lwLWZpbHRlciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgLy8gR2Vub2VnIHZvb3IgbGFuZ2UgbmFtZW4sIG1hYXIgbmlldCB6byBicmVlZCBkYXQgZXIgdmFuIGhldCB6b2VrdmVsZCBuaWV0c1xuICAgIC8vIG92ZXJibGlqZnQuXG4gICAgd2lkdGg6IDIyMHB4O1xufVxuXG4uZmUtaHQtdG9vbGJhci1tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogOHB4O1xuICAgIC8vIFRyZWt0IGRlIHJlZ2VsIG9wIHRlZ2VuIGRlIGJhbGs6IGhpaiBob29ydCBiaWogaGV0IGZpbHRlciBlcmJvdmVuLCBuaWV0IGJpaiBkZVxuICAgIC8vIGxpanN0IGVyb25kZXIuXG4gICAgbWFyZ2luOiAtNHB4IDAgOHB4O1xufVxuXG4uZmUtaHQtY291bnQge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzZiNzE5Mjtcbn1cblxuLmZlLWh0LXRyYWlsaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4uZmUtaHQtcmVjaXBpZW50cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC8vIFJpZ2h0LWFsaWduZWQ6IHRoZSB0cmFpbGluZyBzbG90IHNpdHMgYWdhaW5zdCB0aGUgcm93J3MgcmlnaHQgZWRnZSBpbiB0aGVcbiAgICAvLyBgd3JhcGAgdmFyaWFudCwgc28gbGVmdC1hbGlnbmluZyB0aGUgdHdvIGxpbmVzIHdvdWxkIGxlYXZlIHRoZW0gZmxvYXRpbmcuXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGdhcDogMnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcbn1cblxuLmZlLWh0LXJlY2lwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBnYXA6IDZweDtcbiAgICAvLyBBIHRyaWdnZXIgY2FuIGFkZHJlc3Mgc2V2ZXJhbCBwZW9wbGU7IGNhcCB0aGUgbGluZSByYXRoZXIgdGhhbiBsZXQgaXQgcHVzaFxuICAgIC8vIHRoZSByb3cgd2lkZXIgdGhhbiB0aGUgcGFuZWwuXG4gICAgbWF4LXdpZHRoOiAyMjBweDtcbn1cblxuLmZlLWh0LXJlY2lwLWtleSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjOTA5N2I4O1xufVxuXG4uZmUtaHQtcmVjaXAtbmFtZXMge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY29sb3I6ICMxYTFmNGQ7XG59XG5cbi5mZS1odC1yZWNpcC0tY2MgLmZlLWh0LXJlY2lwLW5hbWVzIHtcbiAgICBjb2xvcjogIzZiNzE5Mjtcbn1cblxuLmZlLWh0LXJlY2lwLS1ub25lIHtcbiAgICBjb2xvcjogIzkwOTdiODtcbn1cblxuLy8g4pSA4pSAIFJlZ2VsbGlqc3QgdmFuIGRlIExPR0lDQS1ub2RlICgwNS4wOC4yMDI2KSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFplbGZkZSBvcGJvdXcgYWxzIGRlIG92ZXJkcmFjaHQtbGlqc3QgaGllcmJvdmVuIChgLmZlLWh0LSpgKTogZGUgcmlqZW4gemlqblxuLy8gcWRuYXByby1saXN0LXJvdywgZHVzIGRlIHJpanZvcm0sIGRlIGhvdmVyLCBkZSBzY2hlaWRpbmdzbGlqbmVuIGVuIGRlXG4vLyB0cmFpbGluZy1sYXlvdXQga29tZW4gdmFuIGhldCBjb21wb25lbnQuIFdhdCBoaWVyIHN0YWF0IGlzIGFsbGVlbiBkZSBrb3AtcmVnZWwsXG4vLyBkZSBzcGVscmVnZWwgZXJib3ZlbiBlbiBoZXQgYmVzdGVtbWluZ3NibG9rIGluIGRlIHRyYWlsaW5nLXNsb3QuXG4vL1xuLy8gRWlnZW4gYC5mZS1sci0qYC1wcmVmaXggZW4gbmlldCBtZWVsaWZ0ZW4gb3AgYC5mZS1odC0qYDogZGUgdHdlZSBsaWpzdGVuIExJSktFTlxuLy8gb3AgZWxrYWFyIG1hYXIgemVnZ2VuIGlldHMgYW5kZXJzIChBQU4vQ0MgdGVnZW4gcGFkICsgYmVzdGVtbWluZyksIGVuIMOpw6luXG4vLyBnZWRlZWxkZSBwcmVmaXggem91IGJldGVrZW5lbiBkYXQgZWVuIHdpanppZ2luZyBhYW4gZGUgZW5lIGxpanN0IGRlIGFuZGVyZVxuLy8gc3RpbGxldGplcyBtZWVuZWVtdC4gRGUga29wcmVnZWwgaXMgd8OpbCBnZWRlZWxkIChgLmZlLWh0LWhlYWRgKSDigJQgZGF0IGlzXG4vLyBsZXR0ZXJsaWprIGRlemVsZmRlIHJpaiBtZXQgZGV6ZWxmZGUga25vcC5cbi5mZS1sci1oaW50IHtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzZiNzE5Mjtcbn1cblxuLmZlLWxyLXRyYWlsaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4vLyBEZSB0ZXJ1Z3ZhbCBoZWVmdCBnZWVuIHZlcndpamRlcmtub3AsIGR1cyB6aWpuIGJlc3RlbW1pbmcgc2Nob29mIDM0cHggdmVyZGVyIG5hYXJcbi8vIHJlY2h0cyBkYW4gZGllIHZhbiBkZSByZWdlbHMgZXJib3ZlbiBlbiBzdG9uZCBkZSBrb2xvbSBuaWV0IG1lZXIgb3Agw6nDqW4gbGlqbiAoZ2VtZXRlblxuLy8gaW4gZWVuIGhhcm5hczogcmVjaHRlcnJhbmQgNzI4IHRlZ2VuIDY5NCkuIERpZSAzNHB4IGlzIGRlIGtub3AgcGx1cyBkZSB0dXNzZW5ydWltdGVcbi8vIHZhbiBkZXplIHJpajogcWRuYXByby1pY29uLWJ0biBzaXplPVwic21hbGxcIiBpcyAyNHB4IGJyZWVkIGVuIGRlIGBnYXBgIGhpZXJib3ZlbiBpc1xuLy8gMTBweC4gQmV3dXN0IGVlbiB1aXRzcGFyaW5nIGVuIGdlZW4gb256aWNodGJhcmUgbmVwa25vcDogZWVuIGVsZW1lbnQgZGF0IGVyIGFsbGVlblxuLy8gc3RhYXQgb20gcnVpbXRlIHRlIHZ1bGxlbiBsZWVzdCB2b29yIGVlbiBzY2hlcm1sZXplciBhbHMgZWVuIGtub3AgZGllIG5pZXRzIGRvZXQuXG4uZmUtbHItdHJhaWxpbmctLW5vLWFjdGlvbiB7XG4gICAgcGFkZGluZy1yaWdodDogMzRweDtcbn1cblxuLy8gUGFkbnVtbWVyIG1ldCBkZSBiZXN0ZW1taW5nIGVyb25kZXIgKFNDT1BFIGJlc2xpc3NpbmcgMyksIG9wIGRlIHBsZWsgd2FhciBkZVxuLy8gb3ZlcmRyYWNodC1saWpzdCBBQU4vQ0MgbGFhdCB6aWVuLiBSZWNodHMgdWl0Z2VsaWpuZDogZGUgdHJhaWxpbmctc2xvdCBzdGFhdCBpblxuLy8gZGUgYHdyYXBgLXZhcmlhbnQgdGVnZW4gZGUgcmVjaHRlcnJhbmQsIGR1cyBsaW5rcyB1aXRsaWpuZW4gem91IGRlIHR3ZWUgcmVnZWxzXG4vLyBsYXRlbiB6d2V2ZW4uXG4uZmUtbHItZXhpdC1jZWxsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGdhcDogMnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcbn1cblxuLmZlLWxyLXBhdGgge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMxYTFmNGQ7XG59XG5cbi5mZS1sci1kZXN0IHtcbiAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogIzZiNzE5Mjtcbn1cblxuLy8gXCJub2cgbmlldCB2ZXJib25kZW5cIiBpcyBnZWVuIGJlc3RlbW1pbmcgbWFhciBoZXQgb250YnJla2VuIGVydmFuOyBsaWNodGVyLCBlblxuLy8gYmV3dXN0IGdlZW4gcm9vZCDigJQgZWVuIHBhZCBkYXQgamUgbm9nIG5pZXQgZ2V0cm9ra2VuIGhlYnQgaXMgZWVuIG5vcm1hbGVcbi8vIHR1c3NlbnN0YW5kIHRpamRlbnMgaGV0IGJvdXdlbi5cbi5mZS1sci1kZXN0LS1ub25lIHtcbiAgICBjb2xvcjogIzkwOTdiODtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8vIERlIERBTi1yaWogaW4gaGV0IHJlZ2VsdmVuc3RlcjogYWxsZWVuIHRla3N0LCBnZWVuIGtldXpldmVsZCAoYmVzbGlzc2luZyA1KS5cbi8vIERlemVsZmRlIGtvbG9tYnJlZWR0ZSBhbHMgZGUgdmVsZGtvbG9tbWVuIGVyYm92ZW4sIHpvZGF0IGRlIHJhaWwgw6nDqW4gYmxvayBibGlqZnQuXG4uZmUtbHItZXhpdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi8vIEJld3VzdCBFWEFDVCBkZSBtYWF0IHZhbiBoZXQgbGFiZWwgdmFuIGVlbiB2ZWxkIGVybmFhc3Rcbi8vIChgLnFkbmFwcm8taW5wdXQgLmlucHV0LWhlYWRlciAuaW5wdXQtbGFiZWxgOiBnZcOrcmZkZSBncm9vdHRlLCBnZXdpY2h0IDUwMCwgNHB4XG4vLyBlcm9uZGVyKS4gTWV0IGVlbiBlaWdlbiBrbGVpbmVyIGxhYmVsIHdhcyBkZSBEQU4tcmlqIDU4cHggaG9vZyB0ZWdlbiA2OHB4IHZvb3IgZWVuXG4vLyB2ZWxkcmlqLCBlbiBkYW4gc3RhYXQgZGUgcmFpbCBuaWV0IG1lZXIgaW4gaGV0emVsZmRlIHJpdG1lIChnZW1ldGVuIGluIGVlbiBoYXJuYXMpLlxuLy8gXCJHYWF0IG5hYXJcIiBJUyBlZW4gdmVsZGtvcCwgYWxsZWVuIHpvbmRlciB2ZWxkIGVyYWNodGVyLlxuLmZlLWxyLWV4aXQtbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCAwIDRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIC8vIDEuNSBpcyBkZSByZWdlbGhvb2d0ZSBkaWUgaGV0IGxhYmVsIHZhbiBxZG5hcHJvLWlucHV0IHZhbiBkZSBwYWdpbmEgZXJmdDsgZXhwbGljaWV0XG4gICAgLy8gaGllciwgd2FudCB6b25kZXIgZGllIHJlZ2VsIGlzIGRpdCBsYWJlbCAyMnB4IGhvb2cgdGVnZW4gMjhweCB2b29yIGVlbiB2ZWxka29wIGVuIGlzXG4gICAgLy8gZGUgREFOLXJpaiA2cHgga29ydGVyIGRhbiBlZW4gdmVsZHJpaiAoZ2VtZXRlbjogNjIgdGVnZW4gNjgpLlxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgY29sb3I6ICMwYjBiMGQ7XG59XG5cbi5mZS1sci1leGl0LXZhbHVlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBnYXA6IDZweDtcbiAgICAvLyBHZWxpamsgYWFuIGRlIHZlbGRob29ndGUgZXJuYWFzdCAocWRuYXByby0qIHNpemU9XCJzbWFsbFwiIGlzIDQwcHgpLCB6b2RhdCBkZVxuICAgIC8vIHBpbCB2YW4gZGUgcmFpbCBvcCBkZXplbGZkZSBsaWpuIGJsaWpmdCBzdGFhbiBhbHMgYmlqIGRlIHJpamVuIGVyYm92ZW4uXG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogIzFhMWY0ZDtcbn1cblxuLmZlLWxyLWV4aXQtYXJyb3cge1xuICAgIGNvbG9yOiAjOTA5N2I4O1xufVxuXG4uZmUtbHItZXhpdC12YWx1ZSBlbSB7XG4gICAgY29sb3I6ICM5MDk3Yjg7XG59XG5cblxuXG5cblxuLmZlLXRyaWdnZXItZWRpdG9yLXdyYXBwZXIge1xuICAgIGJhY2tncm91bmQ6ICNmMmYyZjI7XG4gICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICBtaW4td2lkdGg6IDkwMHB4O1xuXG4gICAgbWF4LWhlaWdodDogNjB2aDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG5cbiAgICAvLyBCb3RoIGNpcmNsZXMgYXJlIGZsZXggaXRlbXMsIHNvIHRoZXkgTVVTVCByZWZ1c2UgdG8gc2hyaW5rOiBhIGZsZXggaXRlbVxuICAgIC8vIGRlZmF1bHRzIHRvIGZsZXgtc2hyaW5rIDEsIGFuZCBhIHNxdWVlemVkIDI1cHggY2lyY2xlIGJlY29tZXMgYSAxOS42cHgtd2lkZVxuICAgIC8vIG92YWwgd2hpbGUga2VlcGluZyBpdHMgMjVweCBoZWlnaHQuIFRoYXQgaXMgZXhhY3RseSB3aGF0IGhhcHBlbmVkIHRvIHRoZVxuICAgIC8vIHJlbW92ZSBidXR0b24gd2hlbiBpdCBtb3ZlZCBmcm9tIGluc2lkZSB0aGUgdmFsdWUgY29sdW1uIHRvIHJvdyBsZXZlbFxuICAgIC8vIChtZWFzdXJlZCBhdCB0aGUgOTAwcHggbWluLXdpZHRoIG9mIHRoaXMgd3JhcHBlcikuIFtLaW0gMDQuMDguMjAyNl1cbiAgICAvLyAuZmUtcmMtKiBhcmUgdGhlIFNBTUUgdHdvIGNpcmNsZXMgYXMgcWRuYXByby1pY29uLWJ0biAoUnVsZUNoYWluL1J1bGVSb3csXG4gICAgLy8gMDQuMDguMjAyNik7IC5idG4tKi10cmlnZ2VyIGFyZSB0aGUgaGFuZC1yb2xsZWQgb25lcyBGbG93TG9naWNPcHRpb25zLnZ1ZVxuICAgIC8vIHN0aWxsIGNhcnJpZXMuIEJvdGggbmVlZCB0aGlzIHVudGlsIHRoYXQgbW9kYWwgaXMgY29udmVydGVkIHRvby5cbiAgICAuYnRuLWFkZC10cmlnZ2VyLFxuICAgIC5idG4tcmVtb3ZlLXRyaWdnZXIsXG4gICAgLmZlLXJjLWFkZCxcbiAgICAuZmUtcmMtcmVtb3ZlIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIC8vIEFib3ZlIHRoZSBkYXNoZWQgY29ubmVjdG9yIGxpbmUgdGhlIHJhaWwgZHJhd3MgYmVoaW5kIHRoZSByb3cuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTA7XG4gICAgfVxuXG5cblxuICAgIC5idG4tYWRkLXRyaWdnZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjY2JjY2NiO1xuICAgICAgICBjb2xvcjogI0ZGRjtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTA7XG5cbiAgICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNiZGJkYmQ7XG5cblxuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzk3OTc5NztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5idG4tcmVtb3ZlLXRyaWdnZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjY2Q1ZTY4O1xuICAgICAgICBjb2xvcjogI0ZGRjtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICB3aWR0aDogMjVweDtcbiAgICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuXG4gICAgICAgICY6aG92ZXIge1xuXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjOTk0NTRkO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzgwM2E0MTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cbiAgICAudHJpZ2dlci1jb25kaXRpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDFyZW07XG5cbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcblxuXG4gICAgICAgIC50cmlnZ2VyLWNvbHVtbiB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgNTAlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcblxuICAgICAgICAgICAgJi5jb2x1bW4tZmxleCB7XG5cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGdhcDogMXJlbTtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgIH1cblxuICAgICAgICAuc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMnB4IGRhc2hlZCAjZDFkNGU2XG4gICAgICAgIH1cblxuICAgICAgICAudHJpZ2dlci1jb25kaXRpb24td3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMDAlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAycHggZGFzaGVkICNkMWQ0ZTY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmxhc3QtdHJpZ2dlciB7XG4gICAgICAgICAgICAudHJpZ2dlci1jb25kaXRpb24td3JhcHBlcjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnRyaWdnZXItcmVtb3ZhYmxlIHtcbiAgICAgICAgICAgIC5idG4tcmVtb3ZlLXRyaWdnZXIsXG4gICAgICAgICAgICAuZmUtcmMtcmVtb3ZlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNlY2VjZWM7XG5cbiAgICAgICAgICAgICAgICAuYnRuLXJlbW92ZS10cmlnZ2VyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBxZG5hcHJvLWljb24tYnRuIGlzIGlubGluZS1mbGV4IGJ5IGRlZmF1bHQ7IGZvcmNpbmcgYGZsZXhgXG4gICAgICAgICAgICAgICAgLy8gaGVyZSB3b3VsZCBzdHJldGNoIGl0IHRvIHRoZSByb3cgaGVpZ2h0LlxuICAgICAgICAgICAgICAgIC5mZS1yYy1yZW1vdmUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb25kaXRpb24tc2VsZWN0IHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgLnZzX19kcm9wZG93bi10b2dnbGUge1xuICAgICAgICAgICAgcGFkZGluZzogLjc1cmVtIDEuMzByZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjNDM0Nzk2O1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLnZzX19zZWxlY3RlZC1vcHRpb25zIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cblxuICAgICAgICB9XG5cbiAgICAgICAgLnZzX19zZWxlY3RlZCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgIH1cblxuICAgICAgICAmLnZzLS1vcGVuIC52c19fc2VsZWN0ZWQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnZzX19hY3Rpb25zIHN2ZyB7XG4gICAgICAgICAgICBmaWxsOiAjRkZGO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAuY29uZGl0aW9uIHtcbiAgICAgICAgcGFkZGluZzogLjc1cmVtIDEuMzByZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICM0MzQ3OTY7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICYuY29uZGl0aW9uLXNlY29uZGFyeSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjYjRiNGI0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNlNmU4ZmQ7XG4gICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXI6IDJweCAjNDM0Nzk2IHNvbGlkO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jb25kaXRpb24tc2Vjb25kYXJ5OjpiZWZvcmUsXG4gICAgICAgICYuY29uZGl0aW9uLXNlY29uZGFyeTo6YWZ0ZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAycHggI2I0YjRiNCBzb2xpZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuY29uZGl0aW9uLWNvbm5lY3Rpb24tdG9wOjpiZWZvcmUsXG4gICAgICAgICYuY29uZGl0aW9uLWNvbm5lY3Rpb24teTo6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgdG9wOiAtNXB4O1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jb25kaXRpb24tY29ubmVjdGlvbi1ib3R0b206OmFmdGVyLFxuICAgICAgICAmLmNvbmRpdGlvbi1jb25uZWN0aW9uLXk6OmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYm90dG9tOiAtNXB4O1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8vIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuLy8gUmVnZWwtZWRpdG9yIChvdmVyZHJhY2h0LW5vZGUpIOKAlCBvdmVyaGF1bCBmYXNlIDEsIDA0LjA4LjIwMjZcbi8vIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuLy8gQWxsZWVuIGRlIEJJTk5FTktBTlQgdmFuIEhhbmRvdmVyVHJpZ2dlci52dWUuIERlIHJhaWwgemVsZiAocGlsbGVuLFxuLy8gc3RpcHBlbGxpam5lbiwgcGx1cy9taW4tY2lya2VscykgYmxpamZ0IGAuZmUtdHJpZ2dlci1lZGl0b3Itd3JhcHBlcmBcbi8vIGhpZXJib3ZlbiwgZ2VkZWVsZCBtZXQgZGUgbG9naWNhLW5vZGUuIERpdCBibG9rIHJlZ2VsdCB1aXRzbHVpdGVuZCBkZVxuLy8gaW5kZWxpbmcgdmFuIGRlIHZlbGRlbiBlcmluLCBwbHVzIGhldCBuYWFtdmVsZCBlcm9uZGVyLlxuLy9cbi8vIERlIHZlbGRlbiB6aWpuIHFkbmFwcm8tc2VsZWN0IC8gcWRuYXByby1pbnB1dC4gRGllIHpldHRlbiB6ZWxmXG4vLyBgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMDAlYCBvcCBodW4gaG9zdCwgZHVzIGluIGVlbiBmbGV4cmlqIG1vZXQgZGVcbi8vIGJyZWVkdGUgdmlhIGZsZXgtYmFzaXMgZ2VyZWdlbGQgd29yZGVuIOKAlCB3aWR0aCBhbGxlZW4gZG9ldCBuaWV0cy5cblxuLy8g4pSA4pSAIERlIHNjaGlsOiBxZG5hcHJvLW1vZGFsIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gVHdlZSBkaW5nZW4gZGllIGRpdCB2ZW5zdGVyIHZhbiBkZSBzdGFuZGFhcmQtbW9kYWwgYWZ3aWprdCwgYmVpZGUgdm9sZ2VucyBlZW5cbi8vIHBhdHJvb24gZGF0IGFsIGluIF9tb2RhbC5zY3NzIHN0YWF0IGVuIGRhdCBLaW0gZGFhciBlZXJkZXIgaGVlZnQgZ29lZGdla2V1cmQ6XG4vL1xuLy8gMS4gU1RBUEVMSU5HLiBIZXQgbm9kZS1tb2RhbCBlcm9uZGVyIGlzIGVlbiBxZG5hcHJvLXdpemFyZC1tb2RhbCBvcCB6LWluZGV4XG4vLyAgICA5MDAwIGVuIGAucWRuYXByby1tb2RhbGAgc3RhYXQgw7PDs2sgb3AgOTAwMC4gQmlqIGdlbGlqa3NwZWwgYmVzbGlzdCBkZVxuLy8gICAgRE9NLXZvbGdvcmRlLCBlbiBkYWFyIHdpbCBqZSByb3V0ZXJpbmcgbmlldCB2YW4gbGF0ZW4gYWZoYW5nZW46IGRhbiBsaWd0IGRlXG4vLyAgICBlZGl0b3Igb256aWNodGJhYXIgb25kZXIgaGV0IG5vZGUtbW9kYWwgZW4gaXMgaGlqIHRvY2ggYWFua2xpa2JhYXIuIDkxMDAgaXNcbi8vICAgIGRlemVsZmRlIHRpZXIgZGllIGRlIG91ZGUgbGVnYWN5LXNjaGlsIGhpZXIgZ2VicnVpa3RlIChgLXN0YWNrZWRgKSwgb25kZXIgZGVcbi8vICAgIGRyb3Bkb3dubGFhZyAoOTIwMCkgZW4gb25kZXIgaGV0IGNvbmZpcm0tdmVuc3RlciAoOTMwMCwgYC5mZS1jb25maXJtLW1vZGFsYClcbi8vICAgIGRhdCBpbiBmYXNlIDIgb3ZlciBkZXplIGVkaXRvciBoZWVuIG1vZXQga3VubmVuLlxuLy8gMi4gSE9PR1RFLiBgc2l6ZT1cInh4bGFyZ2VcImAgZHdpbmd0IGBoZWlnaHQ6IG1pbig4MDBweCwgMTAwdmggLSA0OHB4KWAgYWYsIGR1c1xuLy8gICAgZWVuIHJlZ2VsIG1ldCDDqcOpbiB2b29yd2FhcmRlIHpvdSBpbiBlZW4gdmVuc3RlciB2YW4gODAwcHggaG9vZyBzdGFhbiBtZXRcbi8vICAgIGRyaWVrd2FydCBsZWVndGUuIFplbGZkZSBvcGxvc3NpbmcgYWxzIGAuZmUtaW1wb3J0LW1vZGFsYCAoS2ltIDIyLjA2LjIwMjYpOlxuLy8gICAgaG9vZ3RlIG5hYXIgZGUgaW5ob3VkLCBtZXQgODAwcHggYWxzIHBsYWZvbmQg4oCUIGRhYXJuYSBzY3JvbGx0IGRlIGJvZHksIGRpZVxuLy8gICAgdmFuIHh4bGFyZ2UgYWwgYG92ZXJmbG93LXk6IGF1dG9gIG1lZWtyaWpndC5cbi5xZG5hcHJvLW1vZGFsLmZlLXJ1bGUtbW9kYWwge1xuICAgIHotaW5kZXg6IDkxMDA7XG59XG5cbi5xZG5hcHJvLW1vZGFsLmZlLXJ1bGUtbW9kYWwubW9kYWwtc2l6ZS14eGxhcmdlIC5tb2RhbC1kaWFsb2cge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiBtaW4oODAwcHgsIGNhbGMoMTAwdmggLSA0OHB4KSk7XG59XG5cbi5xZG5hcHJvLW1vZGFsLmZlLXJ1bGUtbW9kYWwubW9kYWwtc2l6ZS14eGxhcmdlIC5tb2RhbC13aW5kb3cge1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuLmZlLXJlIHtcbiAgICAvLyBIZXQgbmFhbXZlbGQgaGFuZ3Qgb25kZXIgZGUgcmFpbDsgcnVpbXRlIGVydHVzc2VuIHppdCBvcCAuZmUtcmUtbmFtZS5cbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLy8gSGV0IGxpbmtlcnBhbmVlbC4gRGUgaWxsdXN0cmF0aWUgc3RhYXQgb25kZXJhYW4gem9kYXQgZXIgYm92ZW5pbiBydWltdGVcbi8vIG92ZXJibGlqZnQgdm9vciBkZSBtZWVsZXplbmRlIHppbiAoZmFzZSAzKS5cbi5mZS1yZS1pbmZvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi8vIEhldCBwYW5lZWwgaXMgMjAwcHggKGBpbmZvLXdpZHRoYCksIGR1cyBkZSBpbGx1c3RyYXRpZSBrcmltcHQgbWVlLiBgbWFyZ2luLXRvcDpcbi8vIGF1dG9gIG9wIGRlIGlsbHVzdHJhdGllLXdyYXBwZXIgZHV3dCBoZW0gbmFhciBkZSBvbmRlcmthbnQsIHpvZGF0IGRlIGJlZ2VsZWlkZW5kZVxuLy8gdGVrc3QgYm92ZW5hYW4gc3RhYXQgZW4gZGUgbWVlbGV6ZW5kZSB6aW4gdmFuIGZhc2UgMyBkYWFyIG5vZyBvbmRlciBwYXN0LlxuLmZlLXJlLWluZm8gLnFkbmFwcm8tbW9kYWwtaW5mby1pbGx1c3RyYXRpb24ge1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG59XG5cbi5mZS1yZS1pbmZvIHFkbmFwcm8taWxsdXN0cmF0aW9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8vIERlIG1lZWxlemVuZGUgemluIChmYXNlIDMpLiBIZXQgcGFuZWVsIGlzIDIwMHB4IGJyZWVkLCBkdXMgZGl0IGlzIGVlbiBzbWFsbGVcbi8vIGtvbG9tIG1ldCBsb3BlbmRlIHRla3N0OiBgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmVgIGlzIGVyIHZvb3IgZGUgd2FhcmRlbiBkaWUgdWl0XG4vLyBkZSBkYXRhIGtvbWVuIChlZW4gbG9jYXRpZW5hYW0gb2YgZWVuIHZyYWFnbGFiZWwgdmFuIMOpw6luIGxhbmcgd29vcmQga2FuIGhpZXIgbmlldFxuLy8gYWZnZWJyb2tlbiB3b3JkZW4gZW4gem91IGFuZGVycyB1aXQgaGV0IHBhbmVlbCBsb3BlbiksIGVuIGBoeXBoZW5zOiBhdXRvYCBsYWF0IGRlXG4vLyBicm93c2VyIG5vcm1hbGUgd29vcmRlbiBuZXRqZXMgYWZicmVrZW4gaW4gcGxhYXRzIHZhbiBlciBnYXRlbiBpbiBkZSByZWdlbCB0ZVxuLy8gbGF0ZW4gdmFsbGVuLlxuLmZlLXJlLXNlbnRlbmNlIHtcbiAgICBtYXJnaW4tdG9wOiAuNzVyZW07XG4gICAgcGFkZGluZy10b3A6IC43NXJlbTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxNywgMjQsIDM5LCAuMDgpO1xufVxuXG4uZmUtcmUtc2VudGVuY2UtdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIC4yNXJlbTtcbiAgICBmb250LXNpemU6IC42ODc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM2YjcyODA7XG59XG5cbi5mZS1yZS1zZW50ZW5jZS1ib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAuODEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICBjb2xvcjogIzM3NDE1MTtcbiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgICBoeXBoZW5zOiBhdXRvO1xufVxuXG4vLyBEZSBg4oCmYCBvcCBkZSBwbGVrIHZhbiBpZXRzIGRhdCBub2cgbmlldCBpcyBpbmdldnVsZC4gR2VkZW1wdCBlbiBOSUVUIHJvb2Q6IGVyIGlzXG4vLyBub2cgbmlldHMgZm91dCwgZXIgaXMgYWxsZWVuIG5vZyBuaWV0cyBnZWtvemVuLiBEZSBtZWxkaW5nc2JhbGsgKC5mZS1yZS1lcnJvcikgaXNcbi8vIGRlIHBsZWsgdm9vciB3YXQgd8OpbCBmb3V0IGlzLlxuLmZlLXJlLXNlbnRlbmNlLXRvZG8ge1xuICAgIGNvbG9yOiAjOWNhM2FmO1xufVxuXG4uZmUtcmUtcmFpbCB7XG4gICAgLy8gRGUgOTAwcHggbWluLXdpZHRoIHZhbiBkZSB3cmFwcGVyIHdhcyBlciB2b29yIGRlIG91ZGUsIG5pZXQta3JpbXBlbmRlXG4gICAgLy8gYm9vdHN0cmFwLXZlbGRlbi4gRGUgY29tcG9uZW50ZW4ga3JpbXBlbiB3w6lsIG5ldGplcywgZW4gYC50cmlnZ2VyLWNvbHVtbmBcbiAgICAvLyBicmVuZ3QgemlqbiBlaWdlbiBgbWluLXdpZHRoOiAyMDBweGAgbWVlIOKAlCBkYXQgaXMgbnUgZGUgb25kZXJncmVucy4gWm9uZGVyXG4gICAgLy8gZGl0IGxvb3B0IGRlIHJhaWwgb3AgZWVuIHNtYWwgc2NoZXJtIGhvcml6b250YWFsIHVpdCBkZSBtb2RhbCwgd2FudCBkZVxuICAgIC8vIHdyYXBwZXIgc2Nyb2xsdCBhbGxlZW4gdmVydGljYWFsLlxuICAgIG1pbi13aWR0aDogMDtcblxuICAgIC8vIMOJw4lOIHNjcm9sbGVyLiBEZSB3cmFwcGVyIGJyYWNodCB6aWpuIGVpZ2VuIGBtYXgtaGVpZ2h0OiA2MHZoOyBvdmVyZmxvdy15OlxuICAgIC8vIGF1dG9gIG1lZTsgYmlubmVuIHFkbmFwcm8tbW9kYWwgc2Nyb2xsdCBkZSBib2R5IGFsLCBlbiB0d2VlIGdlbmVzdGVcbiAgICAvLyBzY3JvbGxnZWJpZWRlbiBpbiDDqcOpbiB2ZW5zdGVyIGlzIHByZWNpZXMgd2Fhcm9tIGAtZmxvdy1sb2dpY2AgaGllcmJvdmVuXG4gICAgLy8gZGV6ZWxmZGUgcmVzZXQgZG9ldC5cbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG5cbiAgICAvLyBDT01QQUNURVIgKEtpbSAwNC4wOC4yMDI2LCBuYSBkZSBlZXJzdGUgbGl2ZSBibGlrKTogXCJkZSBoZWxlIHJhaWwgaXMgVkVFTCB0ZVxuICAgIC8vIGdyb290LCBvbndpanMgdmVlbCBwYWRkaW5nLCBoZXQgc3RhYXQgd2VsIDYwcHggdmFuIGRlIHJhbmRcIi4gS2xvcHQsIGVuIGRlXG4gICAgLy8gb29yemFhayBpcyB0ZSBoZXJsZWlkZW46IGRlIHJhaWwtbWF0ZW4gemlqbiBnZXRla2VuZCBpbiBkZSBvdWRlIGxlZ2FjeS1zY2hpbCxcbiAgICAvLyBkaWUgYHpvb206IDgwJWAgb3AgYC5mbG93ZWRpdG9yX21vZGFsYCBoYWQgc3RhYW4uIEFsbGVzIHdhdCBkYWFyIDEuMXJlbSB3YXMsXG4gICAgLy8ga3dhbSBvcCBoZXQgc2NoZXJtIGFscyAwLjg4cmVtLiBJbiBxZG5hcHJvLW1vZGFsIGlzIGRpZSB6b29tIHdlZywgZHVzXG4gICAgLy8gZGV6ZWxmZGUgd2FhcmRlbiB2YWxsZW4gaW5lZW5zIDI1JSBncm90ZXIgdWl0LlxuICAgIC8vXG4gICAgLy8gQWxsZXMgaGllcm9uZGVyIGlzIEJFV1VTVCBvcCBgLmZlLXJlLXJhaWxgIGdlaGFuZ2VuIGVuIG5pZXQgb3BcbiAgICAvLyBgLmZlLXRyaWdnZXItZWRpdG9yLXdyYXBwZXJgOiBkaWUgd3JhcHBlciBpcyBnZWRlZWxkIG1ldCBGbG93TG9naWNPcHRpb25zIChkZVxuICAgIC8vIGxvZ2ljYS1ub2RlKSwgZW4gZGllIHppdCBub2cgd8OpbCBpbiBkZSBnZXpvb21kZSBsZWdhY3ktc2NoaWwuIERhYXIgem91IGRpdCBkZVxuICAgIC8vIHJhaWwgZHVzIGp1aXN0IHRlIGtsZWluIG1ha2VuLiBBbHMgZGUgbG9naWNhLW5vZGUgb3AgZGV6ZSByYWlsIG92ZXJnYWF0LFxuICAgIC8vIHZlcmh1aXplbiBkZXplIHJlZ2VscyBtZWUgbmFhciBkZSB3cmFwcGVyLlxuICAgIHBhZGRpbmctdG9wOiAuMjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IC4yNXJlbTtcbn1cblxuLmZlLXJlLXJhaWwgLnRyaWdnZXItY29uZGl0aW9uIHtcbiAgICAvLyBXYXMgMXJlbSBib3ZlbiDDqW4gb25kZXI7IG1ldCBkZSBrb3AgdmFuIGhldCB2ZWxkIGVyYmlqIGdhZiBkYXQgZGUgNjBweCBkaWVcbiAgICAvLyBLaW0gemFnLiBJZXRzIHJ1aW1lciBkYW4gLjM3NXJlbSBuYSBLaW1zIFwiZGlrIG9wIGVsa2FhclwiICgwNS4wOC4yMDI2KS5cbiAgICBtYXJnaW46IC41cmVtIDA7XG59XG5cbi5mZS1yZS1yYWlsIC5jb25kaXRpb24ge1xuICAgIC8vIFdhcyBwYWRkaW5nIC43NXJlbSAxLjMwcmVtICsgZm9udC1zaXplIDEuMXJlbSDigJQgZWVuIHBpbCB2YW4gfjk1eDY2cHggdm9vciBoZXRcbiAgICAvLyB3b29yZCBcIklGXCIuXG4gICAgLy8gRGUgSE9PR1RFIGlzIGdlbGlqayBhYW4gZWVuIGBxZG5hcHJvLWlucHV0IHNpemU9XCJzbWFsbFwiYCAoNDBweCkuIE1ldCBlZW5cbiAgICAvLyBlaWdlbiBob29ndGUgc3RvbmQgZWxrZSBwaWwgbmV0IGlldHMgYW5kZXJzIGRhbiBoZXQgdmVsZCBlcm5hYXN0LCBlbiBkYXRcbiAgICAvLyBtYWFrdGUgZGUgaGVsZSByYWlsIG9ucnVzdGlnIChLaW0gMDUuMDguMjAyNikuXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogMCAuN3JlbTtcbiAgICBmb250LXNpemU6IC44MTI1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IC41cmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDJlbTtcbn1cblxuLy8gVkVSVk9MR1JJSkVOOiBoZXQgdm9lZ3dvb3JkLCBnZWVuIGtvcC5cbi8vIEtpbSAwNS4wOC4yMDI2OiBcImRpZSBUSEVOIEFORCBBTkQgc3RhYW4gd2VsIGhlZWwgcHJvbWluZW50IGVuIGRpayBvcCBlbGthYXJcIi5cbi8vIERyaWUgZ2V2dWxkZSBwaWxsZW4gb3AgZWxrYWFyIHppam4gZHJpZSBrZWVyIGhldHplbGZkZSB3b29yZCBtZXQgZXZlbnZlZWxcbi8vIGdld2ljaHQuIERlIGVlcnN0ZSBwaWwgdmFuIGVlbiBibG9rIGJlbm9lbXQgaGV0IGJsb2s7IGRlIHJpamVuIGVyb25kZXIgemV0dGVuXG4vLyBkZSB2b3JpZ2UgcmVnZWwgdm9vcnQuIER1cyByaWogMCBob3VkdCBkZSBwaWwsIGRlIHJlc3Qgd29yZHQgaGV0emVsZmRlIHBhYXJzXG4vLyBhbHMga2xlaW4gd29vcmQgb3AgZGUgcmFpbC5cbi8vIE5JRVQgYmVzbGlzc2luZyAyMCB0ZXJ1Z2RyYWFpZW46IGRpZSBnaW5nIG92ZXIgS0xFVVIgKGdyaWpzID0gXCJtaW5kZXJcbi8vIGJlbGFuZ3JpamtcIikuIERlIGtsZXVyIGJsaWpmdCBpZGVudGllayBwYWFycywgYWxsZWVuIGRlIHZvcm0gdmVyc2NoaWx0LlxuLmZlLXJlLXJhaWwgLmNvbmRpdGlvbi5mZS1yYy1jb25qIHtcbiAgICBjb2xvcjogIzQzNDc5NjtcbiAgICBmb250LXNpemU6IC42ODc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNmVtO1xuICAgIHBhZGRpbmc6IDAgLjM1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi8vIEdFRU4gVkVSQklORElOR1NMSUpOIEVOIEdFRU4gQk9MTEVUSkVTIChLaW0gMDUuMDguMjAyNjogXCJkaWUgc3RpcHBlbGxpam50amVzXG4vLyBrdW5uZW4gZXIgd2VsIGhlbGVtYWFsIHVpdFwiKS4gWmUgdmVyYm9uZGVuIGRlIHBpbGxlbiB0b2VuIGRpZSBhbGxlIHZpZXIgZ2V2dWxkZVxuLy8gYmxva2tlbiB3YXJlbjsgbnUgZGUgdmVydm9sZ3JpamVuIGVlbiB3b29yZCBvcCBkZSByYWlsIHppam4sIHZlcmJvbmRlbiB6ZSBuaWV0c1xuLy8gbWVlciBlbiBnYXZlbiB6ZSBhbGxlZW4gcnVpcy4gTWV0IGRlIGxpam4gd2VnIHZlcmR3aWpudCBvb2sgZGUgcmVkZW4gdm9vciBkZVxuLy8gZGVrdmxha2plcyBvcCBkZSBwbHVza25vcCBlbiBoZXQgdm9lZ3dvb3JkIChkaWUgbWFza2VlcmRlbiBhbGxlZW4gZGllIGxpam4pLlxuLy9cbi8vIEFsbGVlbiB2b29yIERFWkUgcmFpbCB1aXRnZXpldCwgbmlldCBpbiBgLmZlLXRyaWdnZXItZWRpdG9yLXdyYXBwZXJgIHplbGY6XG4vLyBGbG93TG9naWNPcHRpb25zIChkZSBsb2dpY2Etbm9kZSkgZGVlbHQgZGllIHdyYXBwZXIgZW4gaG91ZHQgemlqbiBlaWdlbiBsaWpuXG4vLyB0b3RkYXQgZGllIG5vZGUgb3ZlcmdhYXQuXG4uZmUtcmUtcmFpbCAudHJpZ2dlci1jb25kaXRpb24gLnRyaWdnZXItY29uZGl0aW9uLXdyYXBwZXI6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8g4pqg77iPIERyaWUgY2xhc3NlcyBub2RpZy4gRGUgYmFzaXNyZWdlbHMgemlqblxuLy8gYC5mZS10cmlnZ2VyLWVkaXRvci13cmFwcGVyIC5jb25kaXRpb24uY29uZGl0aW9uLWNvbm5lY3Rpb24tKjo6YmVmb3JlL2FmdGVyYCwgZHVzXG4vLyAzIGNsYXNzZXM7IGVlbiAyLWNsYXNzLXJlZ2VsIGhpZXIgdmVybG9vciBlbiBoZXQgT05ERVJTVEUgYm9sbGV0amUgYmxlZWYgc3RhYW5cbi8vIChnZW1ldGVuOiA6OmFmdGVyIG5vZyBgZGlzcGxheTogYmxvY2tgKS5cbi5mZS1yZS1yYWlsIC5jb25kaXRpb24uY29uZGl0aW9uLWNvbm5lY3Rpb24tdG9wOjpiZWZvcmUsXG4uZmUtcmUtcmFpbCAuY29uZGl0aW9uLmNvbmRpdGlvbi1jb25uZWN0aW9uLXk6OmJlZm9yZSxcbi5mZS1yZS1yYWlsIC5jb25kaXRpb24uY29uZGl0aW9uLWNvbm5lY3Rpb24tYm90dG9tOjphZnRlcixcbi5mZS1yZS1yYWlsIC5jb25kaXRpb24uY29uZGl0aW9uLWNvbm5lY3Rpb24teTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIERlIHBpbC1rb2xvbSB3YXMgMTIwcHggYnJlZWQgdm9vciB0d2VlIHRvdCB2aWVyIGxldHRlcnMuXG4uZmUtcmUtcmFpbCAudHJpZ2dlci1jb25kaXRpb24gLnRyaWdnZXItY29uZGl0aW9uLXdyYXBwZXIge1xuICAgIG1pbi13aWR0aDogNjhweDtcblxuICAgIC8vIERlIHBpbCBvbmRlcmFhbiBpbiBwbGFhdHMgdmFuIGdlY2VudHJlZXJkLCB6b2RhdCBoaWogb3Agw6nDqW4gbGlqbiBzdGFhdCBtZXQgZGVcbiAgICAvLyBpbnZvZXJ2ZWxkZW4uIE9wIGRlIEVFUlNURSByaWogc3RhYXQgZXIgZWVuIGtvcCBib3ZlbiBkZSB2ZWxkZW47IGdlY2VudHJlZXJkXG4gICAgLy8gb3ZlciBkZSBoZWxlIHJpamhvb2d0ZSBrd2FtIGRlIHBpbCBkYWFyIHRlIGhvb2cuIFplbGZkZSByZWRlbiBhbHMgYmlqIGRlXG4gICAgLy8gbWluLWtub3AuIEJld3VzdCBvcCBkZSB3cmFwcGVyIGVuIG5pZXQgb3AgZGUgcGlsIHplbGY6IGRlIHdyYXBwZXIgaG91ZHQgem9cbiAgICAvLyB6aWpuIHZvbGxlIGhvb2d0ZSwgZW4gZGllIHRyZWt0IG1ldCBgOjpiZWZvcmVgIGRlIGdlc3RpcHBlbGRlXG4gICAgLy8gdmVyYmluZGluZ3NsaWpuIHR1c3NlbiBkZSByaWplbi4gW0tpbSAwNS4wOC4yMDI2XVxuICAgIC8vXG4gICAgLy8gYGFsaWduLXNlbGY6IGZsZXgtZW5kYCBvcCBkZSBXUkFQUEVSLCBlbiBuaWV0IGBzdHJldGNoYCArIGBhbGlnbi1pdGVtc2AgZXJpbi5cbiAgICAvLyBNZXQgc3RyZXRjaCB3ZXJrdGUgZGUgdWl0bGlqbmluZyBvb2ssIG1hYXIgZGFuIGxpZXAgZGUgZ2VzdGlwcGVsZGUgbGlqbiB2YW5cbiAgICAvLyBgOjpiZWZvcmVgIHZhbmFmIGRlIHdyYXBwZXItVE9QIOKAlCBkdXMgdmFuYWYgZGUga29wIGJvdmVuIGhldCB2ZWxkIOKAlCBlbiBzdGFrIGVyXG4gICAgLy8gZWVuIGxvcyBzdHVramUgbGlqbiBiw7N2ZW4gZGUgZWVyc3RlIHBpbCB1aXQuIE51IGlzIGRlIHdyYXBwZXIgcHJlY2llcyB6byBob29nXG4gICAgLy8gYWxzIGRlIHBpbCBlbiBoYW5ndCBoaWogb25kZXJhYW4gZGUgcmlqOiBkZSBwaWwgc3RhYXQgb3AgZGUgdmVsZGhvb2d0ZSDDqW4gZGVcbiAgICAvLyBsaWpuIGJlZ2ludCBiaWogZGUgcGlsLCB6b2FscyBiZWRvZWxkLiBbS2ltIDA1LjA4LjIwMjZdXG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG59XG5cbi8vIEtvbG9tdmVyZGVsaW5nLiBgLnRyaWdnZXItY29sdW1uYCBkZWVsdCBkZSByaWogc3RhbmRhYXJkIDUwLzUwLCBlbiBkYXQgZ2FmIGRlXG4vLyB3YWFyZGUta29sb20gdGUgd2VpbmlnOiBtZXQgZGUgb3BlcmF0b3IgdmFuIDE3MHB4IGVybmFhc3QgYmxlZWYgZXIgMjI4cHggb3ZlclxuLy8gZW4ga2FwdGUgXCJXb29uem9yZ2NlbnRydW0gQmFrZW5cIiBhZiAoZ2VtZXRlbiBpbiBlZW4gaGFybmVzcywgbmlldCBnZXNjaGF0KS5cbi8vIE51IGhlZWZ0IGRlIGxpbmtlcmtvbG9tIGVlbiB2YXN0ZSBtYWF0IGVuIGtyaWpndCBkZSByZWNodGVyIGRlIHJlc3QuIERlemVsZmRlXG4vLyB0d2VlIGNsYXNzZXMgb3AgZGUgdm9vcndhYXJkZW4tIMOpbiBkZSBvbnR2YW5nZXJzcmlqZW4sIHpvZGF0IGRlIGtvbG9tbWVuIHZhblxuLy8gYmVpZGUgYmxva2tlbiBvcCDDqcOpbiBsaWpuIHN0YWFuLlxuLy9cbi8vIOKaoO+4jyBEZXplIHR3ZWUgTU9FVEVOIGdlbmVzdCBzdGFhbi4gYC5mZS10cmlnZ2VyLWVkaXRvci13cmFwcGVyXG4vLyAudHJpZ2dlci1jb25kaXRpb24gLnRyaWdnZXItY29sdW1uIHsgZmxleDogMSAxIDUwJSB9YCBoaWVyYm92ZW4gaGVlZnQgZHJpZVxuLy8gY2xhc3NlczsgZWVuIGxvc3NlIGAuZmUtcmUtY29sLWFgIGhlZWZ0IGVyIMOpw6luIGVuIHZlcmxpZXN0IGdld29vbiDigJQgZWVyc3Qgem9cbi8vIGdlc2NocmV2ZW4gZW4gZGUga29sb21tZW4gYmxldmVuIHByZWNpZXMgZXZlbiBicmVlZC4gYC5mZS1yZS1yYWlsYCB6aXQgb3Bcbi8vIGhldHplbGZkZSBlbGVtZW50IGFscyBgLmZlLXRyaWdnZXItZWRpdG9yLXdyYXBwZXJgLCBkdXMgZGl0IGlzIGRlemVsZmRlXG4vLyBzcGVjaWZpY2l0ZWl0IGVuIHN0YWF0IGxhdGVyIGluIGhldCBiZXN0YW5kLlxuLmZlLXJlLXJhaWwgLnRyaWdnZXItY29uZGl0aW9uIHtcbiAgICAvLyAzMDBweCB3YXMgZGUgbWFhdCBaT05ERVIgbGlua2VycGFuZWVsLiBNZXQgYGxheW91dD1cIndpdGgtaW5mb1wiYCBrb3N0IGhldFxuICAgIC8vIHBhbmVlbCAyODBweCBlbiBob3VkdCBoZXQgd2l0dGUgdmVuc3RlciA3OTVweCBvdmVyOiBkZSB3YWFyZGUta29sb20ga3dhbVxuICAgIC8vIGRhYXJkb29yIG9wIDExNnB4IHVpdCBlbiBrYXB0ZSBcIldvb256b3JnY2VudHJ1bSBCYWtlblwiIHdlZXIgYWYgKGdlbWV0ZW4pLlxuICAgIC8vIDI0MCBoaWVyIGxhYXQgZ2Vub2VnIG92ZXIgdm9vciBkZSBvcGVyYXRvciBwbHVzIGVlbiBsZWVzYmFyZSB3YWFyZGUuXG4gICAgLmZlLXJlLWNvbC1hIHtcbiAgICAgICAgZmxleDogMCAxIDI0MHB4O1xuICAgIH1cblxuICAgIC5mZS1yZS1jb2wtYiB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxufVxuXG4vLyBEZSBtaW4ta25vcCBzdG9uZCBzY2hlZWYgKEtpbSAwNS4wOC4yMDI2OiBcIm5pZXQgZ2VjZW50cmVlcmQgbWV0IGhldCBpbnB1dCBmaWVsZFwiKS5cbi8vIE9vcnphYWs6IGhpaiBpcyBlZW4gZGlyZWN0IGtpbmQgdmFuIGRlIHJpaiwgZW4gZGllIGNlbnRyZWVydCB2ZXJ0aWNhYWwgb3ZlciBkZVxuLy8gSEVMRSByaWpob29ndGUg4oCUIGR1cyBpbmNsdXNpZWYgZGUga29wIGJvdmVuIGRlIHZlbGRlbi4gSGV0IGludm9lcnZlbGQgemVsZiB6aXRcbi8vIG9uZGVyIGRpZSBrb3AsIGR1cyBkZSBrbm9wIGt3YW0gdGUgaG9vZy4gT25kZXJsaWpuZW4gZW4gZGFuIG1ldCBlZW4gaGFsdmVcbi8vIGludm9lcmhvb2d0ZSB0ZXJ1ZyBvbWhvb2c6IGRhbiBzdGFhdCBoaWogcHJlY2llcyBvcCBoZXQgbWlkZGVuIHZhbiBoZXQgdmVsZC5cbi8vIERlIDhweCBpcyAoNDAgLSAyNCkgLyAyIOKAlCBpbnZvZXJ2ZWxkIHNpemU9XCJzbWFsbFwiIGlzIDQwcHgsIGRlIGtub3AgMjRweC5cbi5mZS1yZS1yYWlsIC50cmlnZ2VyLWNvbmRpdGlvbiAuZmUtcmMtcmVtb3ZlIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi8vIERlIG9wZXJhdG9yIHN0b25kIG5pZXQgb3Agw6nDqW4gbGlqbiBtZXQgZGUgdmVsZGVuIGVybmFhc3QgKEtpbSkuIE9vcnphYWs6IGRlIHJpalxuLy8gY2VudHJlZXJ0IHppam4ga29sb21tZW4gdmVydGljYWFsLCBlbiBkZSBvcGVyYXRvciBpcyBoZXQgZW5pZ2UgdmVsZCBaT05ERVIga29wIOKAlFxuLy8gaGlqIGlzIGR1cyBsYWdlciwgZW4gZ2VjZW50cmVlcmQga29tdCB6aWpuIG1pZGRlbiBvcCBoZXQgbWlkZGVuIHZhbiBlZW4gdmVsZFxuLy8gbcOpdCBrb3AgdGUgbGlnZ2VuLCBkdXMgdGUgaG9vZy5cbi8vIE9uZGVybGlqbmVuIGluIHBsYWF0cyB2YW4gZWVuIGtvcCB2ZXJ6aW5uZW46IGRhbiBsaWpuZW4gZGUgaW52b2VydmFra2VuIHplbGYgdWl0LFxuLy8gZW4gYmxpamZ0IGRlIG9wZXJhdG9yIGVlbiBydXN0aWdlIGtldXplbGlqc3Qgem9uZGVyIGxhYmVsLXJ1aXMgZXJib3Zlbi5cbi8vIDQgY2xhc3Nlcywgd2FudCBkZSBiZXN0YWFuZGUgYGFsaWduLWl0ZW1zOiBjZW50ZXJgIGhlZWZ0IGRhdCBvb2sg4oCUIGRlemUgc3RhYXQgbGF0ZXIuXG4uZmUtcmUtcmFpbCAudHJpZ2dlci1jb25kaXRpb24gLnRyaWdnZXItY29sdW1uLmNvbHVtbi1mbGV4IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgZ2FwOiAuNzVyZW07XG59XG5cbi8vIERlIG9wZXJhdG9yLiBXYXMgZWVuIFBBQVJTRSB2LXNlbGVjdCwgbmV0IHpvIGhhcmQgYWxzIGRlIHJhaWwtcGlsIGVybmFhc3Q7XG4vLyBudSBlZW4gcnVzdGlnZSBrZXV6ZWxpanN0IG9wIGVlbiB2YXN0ZSwgc21hbGxlIGJyZWVkdGUgem9kYXQgZGUgd2FhcmRlLWtvbG9tXG4vLyBkZSByZXN0IGtyaWpndC4gXCJJUyBPUiBISUdIRVJcIiBpcyBkZSBsYW5nc3RlIG9wdGllIGVuIHBhc3QgaGllcmluLlxuLmZlLXJlLW9wIHtcbiAgICAvLyA3MiBpbiBwbGFhdHMgdmFuIDE0MCAoMTIuMDguMjAyNik6IGRlIG9wZXJhdG9ycyB6aWpuIHN5bWJvbGVuIGdld29yZGVuICg9IOKJoCDiiaQg4omlKSBvbWRhdFxuICAgIC8vIFwiaXMgb2YgbGFnZXJcIiBpbiBkZSBtZWVsZXplbmRlIHppbiBnZWVuIE5lZGVybGFuZHMgb3BsZXZlcmRlIChcIkFscyBBZGVtaGFsaW5nIGlzIG9mIGxhZ2VyXG4gICAgLy8gOFwiKS4gRcOpbiB0ZWtlbiBwbHVzIGRlIGNoZXZyb24gaGVlZnQgZ2VlbiAxNDBweCBub2RpZywgZW4gYWxsZXMgd2F0IGhpZXIgb3ZlcmJsaWpmdCBnYWF0XG4gICAgLy8gbmFhciBkZSB3YWFyZGUta29sb20gZXJuYWFzdCDigJQgZGllIGlzIGluIGRlIHByYWt0aWprIGRlIGtyYXBzdGUgdmFuIGRlIGRyaWUuXG4gICAgZmxleDogMCAwIDcycHg7XG59XG5cbi5mZS1yZS12YWwge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIC8vIFpvbmRlciBkaXQgd2VpZ2VydCBlZW4gZmxleC1pdGVtIG9uZGVyIHppam4gaW5ob3VkIHRlIGtyaW1wZW4gZW4gZHV3dCBlZW5cbiAgICAvLyBsYW5nZSBnZWJydWlrZXJzbmFhbSBkZSByaWogYnJlZGVyIGRhbiBkZSBtb2RhbC5cbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi8vIE5hYW0gT05ERVIgZGUgcmVnZWwgKEtpbSwgYmVzbGlzc2luZyAxNCkuIEJld3VzdCBuaWV0IG92ZXIgZGUgdm9sbGUgYnJlZWR0ZTpcbi8vIGhldCBpcyBlZW4ga29ydCBsYWJlbCwgZW4gZWVuIDEwMDBweC1icmVlZCBpbnZvZXJ2ZWxkIHN1Z2dlcmVlcnQgZWVuIGxhbmdlIHRla3N0LlxuLy8gXCJEZXplIHJlZ2VsIGdlbGR0IGFsdGlqZFwiLCBvbmRlciBoZXQgdm9vcndhYXJkZW5ibG9rIHpvbGFuZyBlciBuaWV0cyBpc1xuLy8gaW5nZXZ1bGQuIFVpdGdlbGlqbmQgbWV0IGRlIHZlbGRlbiAoNjhweCBwaWwta29sb20gKyAxcmVtIGdhdCkgaW4gcGxhYXRzIHZhblxuLy8gbWV0IGRlIHBpbCwgd2FudCBoZXQgZ2FhdCBvdmVyIGRlIHZlbGRlbi5cbi5mZS1yZS1hbHdheXMtaGludCB7XG4gICAgbWFyZ2luOiAwIDAgLjI1cmVtIGNhbGMoNjhweCArIDFyZW0pO1xuICAgIGZvbnQtc2l6ZTogLjgxMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBjb2xvcjogIzZiNzI4MDtcbn1cblxuLy8gRGUgbG9naWNhLXZhcmlhbnQgdmFuIGRpZXplbGZkZSBtZWRlZGVsaW5nLiBEZWVsdCBkZSB2b3JtICh6ZWxmZGUgcGxlaywgemVsZmRlXG4vLyBtYWF0KSBtYWFyIHplZ3QgaGV0IE9NR0VLRUVSREU6IGJpaiBlZW4gb3ZlcmRyYWNodCB2dXVydCBlZW4gcmVnZWwgem9uZGVyXG4vLyB2b29yd2FhcmRlbiBhbHRpamQsIGJpaiBkZSBsb2dpY2Etbm9kZSBnYWF0IGhpaiBub29pdCBnZWxkZW4gKEZsb3dMb2dpYyByZWdlbCA0KS5cbi8vIERhYXJvbSBhbWJlciBlbiBuaWV0IGdyaWpzIOKAlCBoZXQgaXMgZWVuIHdhYXJzY2h1d2luZyBlbiBnZWVuIG1lZGVkZWxpbmcuXG4vL1xuLy8g4pqg77iPIE1PRVQgTkEgYC5mZS1yZS1hbHdheXMtaGludGAgc3RhYW4uIEJlaWRlIHppam4gw6nDqW4gY2xhc3MsIGR1cyBiaWogZ2VsaWprZVxuLy8gc3BlY2lmaWNpdGVpdCB3aW50IGRlIGxhYXRzdGUgcmVnZWw7IHN0b25kIGRpdCBibG9rIGVlcnN0IGhvZ2VyIGluIGhldCBiZXN0YW5kIGVuXG4vLyBibGVlZiBkZSB0ZWtzdCBncmlqcy4gR2VtZXRlbiwgbmlldCBiZXJlZGVuZWVyZC5cbi5mZS1sci1uZXZlci1oaW50IHtcbiAgICBjb2xvcjogIzhhNmQxZjtcbn1cblxuLy8gRcOpbiBtZWxkaW5nc2JhbGsgYm92ZW4gZGUgcmFpbC4gVmVydmFuZ3QgZGUgb3VkZSBuZXAtZm91dG1lbGRpbmcgb25kZXIgaGV0XG4vLyBuYWFtdmVsZCwgZGllIG9wIGA6Y2xhc3M9XCJ7ICctZXJyb3InOiBmYWxzZSB9XCJgIHN0b25kIGVuIGR1cyBub29pdCBrb24gYWFuZ2Fhbi5cbi5mZS1yZS1lcnJvciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IC41cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IC43NXJlbTtcbiAgICBwYWRkaW5nOiAuNjI1cmVtIC43NXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAuNXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmMmYyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZWNhY2E7XG4gICAgY29sb3I6ICNiOTFjMWM7XG4gICAgZm9udC1zaXplOiAuODEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4uZmUtcmUtZXJyb3IgcWRuYXByby1pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tdG9wOiAxcHg7XG59XG5cbi5mZS1yZS1uYW1lIHtcbiAgICBtYXJnaW4tdG9wOiAuNzVyZW07XG4gICAgbWF4LXdpZHRoOiA0MjBweDtcbn1cblxuXG4vLyDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbi8vIFRyYW5zbGF0aW9uIFBhbmVsIOKAlCByaWdodC1zaWRlIHNsaWRlLWluIHBhbmVsXG4vLyDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcblxuLmZlLXRyYW5zbGF0ZS1idG4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLS1pbmNvbXBsZXRlOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTRweDtcbiAgICAgICAgcmlnaHQ6IC00cHg7XG4gICAgICAgIHdpZHRoOiA5cHg7XG4gICAgICAgIGhlaWdodDogOXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlZjQ0NDQ7XG4gICAgICAgIGFuaW1hdGlvbjogZmUtcHVibGlzaC1wdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB9XG59XG5cbi5mZS10cmFuc2xhdGlvbi1wYW5lbCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDQyMHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjMyLCAyMzUsIDI1MiwgMC43OCk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQwKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgei1pbmRleDogMTA1MDtcbiAgICBib3gtc2hhZG93OiAtOHB4IDAgMzJweCByZ2JhKDQwLCA0NiwgMTAwLCAwLjE4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgXCJTZWdvZSBVSVwiLCBzYW5zLXNlcmlmO1xufVxuXG4uZmUtdHAtc2xpZGUtZW50ZXItYWN0aXZlLFxuLmZlLXRwLXNsaWRlLWxlYXZlLWFjdGl2ZSB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI0MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG4uZmUtdHAtc2xpZGUtZW50ZXIsXG4uZmUtdHAtc2xpZGUtZW50ZXItZnJvbSxcbi5mZS10cC1zbGlkZS1sZWF2ZS10byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xufVxuLmZlLXRwLXNsaWRlLWVudGVyLXRvLFxuLmZlLXRwLXNsaWRlLWxlYXZlLFxuLmZlLXRwLXNsaWRlLWxlYXZlLWZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuLy8g4pSA4pSAIEhlYWRlciDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5mZS10cC1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxMXB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC41NSk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE0cHgpO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE0cHgpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGdhcDogOXB4O1xufVxuLmZlLXRwLWhlYWRlci1pY29uIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG59XG4uZmUtdHAtaGVhZGVyLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmbGV4OiAxO1xufVxuLmZlLXRwLWNsb3NlIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHBhZGRpbmc6IDRweCA2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBBdXRvLXRyYW5zbGF0ZSBidXR0b24gKGluIGhlYWRlcikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4uZmUtdHAtYXQtYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNXB4O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzApO1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LWZhbWlseTogaW50ZXIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDE2MG1zLCBiYWNrZ3JvdW5kIDE2MG1zLCBjb2xvciAxNjBtcztcbiAgICAubWRpIHsgZm9udC1zaXplOiAxNXB4OyB9XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEwKTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuICAgICYtLWFjdGl2ZSwgJjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43MCk7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC41NTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBmZS10cC1yb3RhdGUge1xuICAgIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAgIHRvICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG59XG4uZmUtdHAtYXQtc3BpbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGFuaW1hdGlvbjogZmUtdHAtcm90YXRlIDAuOHMgbGluZWFyIGluZmluaXRlO1xufVxuXG4vLyDilIDilIAgQXV0by10cmFuc2xhdGUgYmFyIChjb25maXJtIC8gcmVzdWx0IHN0cmlwKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5mZS10cC1hdC1iYXIge1xuICAgIHBhZGRpbmc6IDlweCAxNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuMTIpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDY1LCA3MywgMTU0LCAwLjE1KTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICMzZjQ5OWE7XG4gICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAmLS1kb25lIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTQwLCA5MCwgMC4xMCk7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMzQsIDE0MCwgOTAsIDAuMTgpO1xuICAgICAgICBjb2xvcjogIzFhN2E1MDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIC5tZGkgeyBmb250LXNpemU6IDE1cHg7IH1cbiAgICB9XG4gICAgJi0tZXJyb3Ige1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE5NiwgNTQsIDQyLCAwLjEwKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgxOTYsIDU0LCA0MiwgMC4xOCk7XG4gICAgICAgIGNvbG9yOiAjYzQzNjJhO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgICAgLm1kaSB7IGZvbnQtc2l6ZTogMTVweDsgfVxuICAgIH1cbn1cbi5mZS10cC1hdC1iYXItcXVlc3Rpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDdweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuLmZlLXRwLWF0LWJhci1idG5zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogNnB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5mZS10cC1hdC1iYXItYnRuIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2Y0OTlhO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtZmFtaWx5OiBpbnRlciwgc2Fucy1zZXJpZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICMzMTM5N2U7IH1cbiAgICAmLS1hbGwge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDY1LCA3MywgMTU0LCAwLjE1KTtcbiAgICAgICAgY29sb3I6ICMzZjQ5OWE7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNjUsIDczLCAxNTQsIDAuMzApO1xuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4yNSk7IH1cbiAgICB9XG4gICAgJi0tY2FuY2VsIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgY29sb3I6IHJnYmEoNjMsIDczLCAxNTQsIDAuNjUpO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICY6aG92ZXIgeyBjb2xvcjogIzNmNDk5YTsgfVxuICAgIH1cbn1cblxuLy8gU2xpZGUgdHJhbnNpdGlvbiBmb3IgdGhlIGJhclxuLmZlLXRwLWF0LXNsaWRlLWVudGVyLWFjdGl2ZSwgLmZlLXRwLWF0LXNsaWRlLWxlYXZlLWFjdGl2ZSB7XG4gICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAyMDBtcyBlYXNlLCBvcGFjaXR5IDIwMG1zIGVhc2U7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5mZS10cC1hdC1zbGlkZS1lbnRlciwgLmZlLXRwLWF0LXNsaWRlLWxlYXZlLXRvIHtcbiAgICBtYXgtaGVpZ2h0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG59XG4uZmUtdHAtYXQtc2xpZGUtZW50ZXItdG8sIC5mZS10cC1hdC1zbGlkZS1sZWF2ZSB7XG4gICAgbWF4LWhlaWdodDogMTIwcHg7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLy8g4pSA4pSAIExhbmd1YWdlIHBpbGxzIChzbGlkaW5nIGluZGljYXRvciwgbWlycm9ycyB2ZXJzaW9uLWxvZyBmaWx0ZXIgYmFyKSDilIBcbi5mZS10cC1sYW5nLWJhciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNHB4O1xuICAgIHBhZGRpbmc6IDhweCAxNHB4IDhweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTApO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDIxNiwgMjE5LCAyMzcsIDAuNzApO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuLmZlLXRwLWxhbmctaW5kaWNhdG9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogI2U4ZWFmZDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDA7XG4gICAgLy8gdHJhbnNpdGlvbiBhcm1lZCBieSBKUyBhZnRlciBmaXJzdCBwb3NpdGlvblxufVxuLmZlLXRwLWxhbmctdGFiIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBwYWRkaW5nOiA1cHggMTNweDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzg4OTBiODtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMTUwbXM7XG4gICAgJi0tYWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxufVxuXG4vLyDilIDilIAgQ29sdW1uIGhlYWRlcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4uZmUtdHAtY29sLWhlYWRlcnMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41MCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEoMjE2LCAyMTksIDIzNywgMC43MCk7XG59XG4uZmUtdHAtY29sLWgge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjNDE0OTlhO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDdlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkOGRiZWQ7XG4gICAgfVxufVxuLmZlLXRwLW1pc3NpbmctcGlsbCB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZGYwZGM7XG4gICAgY29sb3I6ICNiNDdhMTQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U4YTMyMDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xufVxuXG4vLyDilIDilIAgQ2FyZCBsaXN0IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLmZlLXRwLWJvZHkge1xuICAgIGZsZXg6IDE7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA3cHg7XG59XG5cbi5mZS10cC1jYXJkIHtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2QwZDNlYTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1ub2RlLWNvbG9yLCAjNDE0OTlhKTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDEyMG1zO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSg2NSwgNzMsIDE1NCwgMC4xNCk7XG4gICAgfVxuICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLW5vZGUtY29sb3IsICM0MTQ5OWEpO1xuICAgIH1cbiAgICAmLS1taXNzaW5nIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZlZmRmYjtcbiAgICB9XG4gICAgJi0tc3BvdGxpZ2h0IHtcbiAgICAgICAgYW5pbWF0aW9uOiBmZS10cC1zcG90bGlnaHQgOTAwbXMgZWFzZS1vdXQgZm9yd2FyZHM7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZlLXRwLXNwb3RsaWdodCB7XG4gICAgMCUgICB7IGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDY1LCA3MywgMTU0LCAwLjU1KTsgfVxuICAgIDYwJSAgeyBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg2NSwgNzMsIDE1NCwgMC4yNSk7IH1cbiAgICAxMDAlIHsgYm94LXNoYWRvdzogbm9uZTsgfVxufVxuXG4vLyBDYXJkIGhlYWRlcjogdHlwZSBiYWRnZSArIG5vZGUgaWRcbi5mZS10cC1tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA3cHg7XG4gICAgcGFkZGluZzogNnB4IDEwcHggNnB4IDhweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDY1LCA3MywgMTU0LCAwLjA2KTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTZmNDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZmUtdHAtYmFkZ2Uge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uZmUtdHAtbm9kZS1pZCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiAjOTA5OWMwO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uZmUtdHAtc2F2ZS1pbmRpY2F0b3Ige1xuICAgIHdpZHRoOiA3cHg7XG4gICAgaGVpZ2h0OiA3cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICYtLXNhdmluZyB7IGJhY2tncm91bmQ6ICNlOGEzMjA7IH1cbiAgICAmLS1zYXZlZCAgeyBiYWNrZ3JvdW5kOiAjM2U5ZTZlOyB9XG4gICAgJi0tZXJyb3IgIHsgYmFja2dyb3VuZDogI2M0MzYyYTsgfVxufVxuXG4vLyDilIDilIAgVHdvLWNvbHVtbiBsYXlvdXQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4uZmUtdHAtY29scyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG59XG5cbi5mZS10cC1jb2wge1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgICYtLXRhcmdldCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmNGY1ZmI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2U0ZTZmNDtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBJbnB1dHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4uZmUtdHAtaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgcGFkZGluZzogNHB4IDdweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2RkMGU4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAjMWUyNDYwICFpbXBvcnRhbnQ7XG4gICAgcmVzaXplOiBub25lO1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgXCJTZWdvZSBVSVwiLCBzYW5zLXNlcmlmO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbWluLWhlaWdodDogMzZweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTIwbXMsIGJhY2tncm91bmQgMTIwbXM7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNDE0OTlhO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSg2NSwgNzMsIDE1NCwgMC4xMik7XG4gICAgfVxuICAgICYtLXN1YiB7XG4gICAgICAgIGZvbnQtc2l6ZTogOHB4O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGNvbG9yOiAjNjY3MGEwO1xuICAgICAgICBtaW4taGVpZ2h0OiAyNHB4O1xuICAgICAgICBib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZDhkYmVkO1xuICAgIH1cbiAgICAmLS1hbnMge1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI4cHg7XG4gICAgfVxuICAgICYtLW1pc3Npbmcge1xuICAgICAgICBib3JkZXItY29sb3I6ICNlOGEzMjA7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZjZjM7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjYzg5NDMwO1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5mZS10cC1jb2wtLXRhcmdldCAmIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2VlZjBmYTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYzhjYmRmO1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICM0MTQ5OWE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZlLXRwLWNvbC0tdGFyZ2V0ICYuZmUtdHAtaW5wdXQtLW1pc3Npbmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmY2YzO1xuICAgICAgICBib3JkZXItY29sb3I6ICNlOGEzMjA7XG4gICAgfVxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6ICNiMGI1Y2M7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB9XG4gICAgJi0tc3ViOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogOHB4O1xuICAgIH1cbiAgICAmLS1hbnM6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgIH1cbn1cblxuLy8g4pSA4pSAIEFuc3dlciBvcHRpb25zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLmZlLXRwLWFucy1kaXZpZGVyIHtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiAjZTRlNmY0O1xuICAgIG1hcmdpbjogMnB4IDA7XG59XG4uZmUtdHAtYW5zLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDZweDtcbiAgICAmLS10YXJnZXQgeyBwYWRkaW5nLWxlZnQ6IDA7IH1cbn1cbi5mZS10cC1hbnMtZG90IHtcbiAgICB3aWR0aDogNnB4O1xuICAgIGhlaWdodDogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tdG9wOiAxMXB4O1xufVxuXG4vLyDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbi8vIEZFLU5NICDigJQgIE5vZGUgZWRpdCBtb2RhbCAgKGZyb3N0ZWQgZ2xhc3MsIHR3by1jb2x1bW4gbGF5b3V0KVxuLy8g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG5cbi5mZS1ubS1ob2xkZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBpbnNldDogMDtcbiAgICB6LWluZGV4OiA5MTAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLy8gaG9sZGVyIGlzIHBhc3MtdGhyb3VnaDsgY2hpbGRyZW4gcmUtZW5hYmxlXG59XG5cbi5mZS1ubS1iYWNrZHJvcCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjAsIDI0LCA2MCwgMC4zNSk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICB6LWluZGV4OiAwO1xufVxuXG4vLyDilIDilIAgTW9kYWwgc2hlbGwg4pSA4pSAXG4uZmUtbm0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiBtaW4oODYwcHgsIDk0dncpO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0OHB4KTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAvLyBGcm9zdGVkIGdsYXNzXG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDUsIDI0NiwgMjUyLCAwLjg0KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCkgc2F0dXJhdGUoMS40KTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KSBzYXR1cmF0ZSgxLjQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAyNHB4IDY0cHggcmdiYSgyMCwgMjQsIDYwLCAwLjIyKSxcbiAgICAgICAgMCAycHggOHB4IHJnYmEoMjAsIDI0LCA2MCwgMC4xMCksXG4gICAgICAgIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcwKTtcblxuICAgIC8vIEFubm90YXRpb24gdmFyaWFudDogbmFycm93ZXIsIHllbGxvdy10aW50ZWRcbiAgICAmLmZlLW5tLS1hbm5vdGF0aW9uIHtcbiAgICAgICAgd2lkdGg6IG1pbig0ODBweCwgOTR2dyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTMsIDIzNSwgMC45Mik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMjQsIDIwMCwgNjQsIDAuNDUpO1xuICAgIH1cbn1cblxuLy8g4pSA4pSAIEhlYWRlciDilIDilIBcbi5mZS1ubS1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHggMTJweCAxNnB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDE4MCwgMTg4LCAyMjAsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSk7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5mZS1ubS10eXBlLXBpbGwge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjEwKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDY0LCA3MywgMTU0LCAwLjE4KTtcbn1cblxuLmZlLW5tLXR5cGUtaWNvbiB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uZmUtbm0tdHlwZS1uYW1lIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzJhMmU1ZTtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmO1xufVxuXG4uZmUtbm0tdHlwZS1pZCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiAjOTA5N2I4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7XG59XG5cbi8vIChSZW1vdmVkIHRoZSBsZWdhY3kgLmZlLW5tLWNvbG9ycyBibG9jazogaXQgZHVwbGljYXRlZCB0aGUgYmFzZSBjb2xvci1waWNrZXJcbi8vIENTUyB3aXRoIGFuIG91dGRhdGVkLCBjb250cmFzdC11bmF3YXJlIHNlbGVjdCBzdGF0ZS4gVGhlIGZlLW5tIG1vZGFsIGlzIGdvbmVcbi8vIOKAlCBOb2RlT3B0aW9ucyBpcyB0aGUgd2l6YXJkICguZmUtbm8pIG5vdywgYW5kIHN0eWxlLXYxLmNzcyBhbHJlYWR5IHByb3ZpZGVzXG4vLyB0aGUgdXBkYXRlZCBxZG5hcHJvLWNvbG9yLXBpY2tlci4gVGhlIGZsb3dlZGl0b3Igb25seSBvdmVycmlkZXMgc3dhdGNoXG4vLyBjb2xvdXJzLCBzZWUgLmZlLW5vLWNvbG9ycyBiZWxvdy4gW0tpbSAyMDI2LTA2LTE4XSlcblxuLmZlLW5tLWNsb3NlLWJ0bixcbi5mZS1ubS1iYWNrLWJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDVweDtcbiAgICBwYWRkaW5nOiA1cHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM2Njc7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMsIGNvbG9yIDEyMG1zO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMDgpOyBjb2xvcjogIzJhMmU1ZTsgfVxuXG4gICAgLm1kaSB7IGZvbnQtc2l6ZTogMTZweDsgfVxufVxuXG4uZmUtbm0tY2xvc2UtYnRuIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGNvbG9yOiAjODg4O1xufVxuXG4vLyDilIDilIAgQm9keSDilIDilIBcbi5mZS1ubS1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIC8vIFVuaWZvcm0gcGFkZGluZyBzbyB0aGUgd2hpdGUgY29udGVudCBjYXJkIChhbmQgdGhlIGluZm8gcGFuZWwpIGhhdmVcbiAgICAvLyBicmVhdGhpbmcgcm9vbSBmcm9tIHRoZSBmcm9zdGVkLWdsYXNzIG1vZGFsIGVkZ2Ugb24gYWxsIHNpZGVzLlxuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4vLyBJbmZvIHBhbmVsIOKAlCBsZWZ0IGNvbHVtblxuLmZlLW5tLWluZm8ge1xuICAgIHdpZHRoOiAyMjBweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBwYWRkaW5nOiAyMHB4IDE2cHggMjBweCAyMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE0cHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgxODAsIDE4OCwgMjIwLCAwLjMwKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzApO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5mZS1ubS1pbmZvLWlsbHUge1xuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgfVxufVxuXG4uZmUtbm0taW5mby1kZXNjIHtcbiAgICBmb250LXNpemU6IDExLjVweDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGNvbG9yOiAjNTU1ZTg4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vLyBDb250ZW50IHBhbmVsIOKAlCByaWdodCBjb2x1bW4sIHdoaXRlIHJvdW5kZWQgY2FyZCAobWlycm9ycyAubW9kYWwtd2luZG93KVxuLmZlLW5tLWNvbnRlbnQge1xuICAgIGZsZXg6IDE7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogMjBweCAyNHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAwLjVweCBzb2xpZCAjYzRjN2NjO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG5cbiAgICAvLyBGdWxsIHdpZHRoIGZvciBhbm5vdGF0aW9uIChubyBpbmZvIHBhbmVsKSDigJQgc2FtZSBjYXJkIHRyZWF0bWVudFxuICAgICYuZmUtbm0tY29udGVudC0tZnVsbCB7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMjRweDtcbiAgICB9XG5cbiAgICAvLyBOZXV0cmFsaXNlIHRoZSBvbGQgbGVnYWN5IHRvb2xiYXIgLmZlLXNlY3Rpb24gY2hyb21lIChib3JkZXIsIHBhZGRpbmcpLlxuICAgIC8vIEluIHRoZSBuZXcgbW9kYWwgdGhlIHNlY3Rpb24gd3JhcHBlciBpcyBwdXJlbHkgc3RydWN0dXJhbC5cbiAgICAuZmUtc2VjdGlvbiB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gVGhlIGZlLWNhcmQgYW5kIGZlLWNhcmQtYm9keSB3cmFwcGVycyBkb24ndCBuZWVkIGV4dHJhIHNwYWNpbmcgaGVyZSDigJRcbiAgICAvLyB0aGUgY29udGVudCBwYW5lbCBwYWRkaW5nIGFscmVhZHkgcHJvdmlkZXMgdGhlIGJyZWF0aGluZyByb29tLlxuICAgIC5mZS1jYXJkLWJvZHkge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8vIHFkbmFwcm8tbW9kYWwtbGFiZWwg4oCUIHNjb3BlZCBoZXJlIGJlY2F1c2UgdGhlIHJ1bGUgaW4gc3R5bGUtdjEuY3NzXG4gICAgLy8gb25seSBhcHBsaWVzIGluc2lkZSAucWRuYXByby1tb2RhbCAod2hpY2ggdGhlIGZsb3cgZWRpdG9yIGlzIG5vdCkuXG4gICAgbGFiZWwucWRuYXByby1tb2RhbC1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICBjb2xvcjogIzBiMGIwZDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuXG4gICAgICAgIC8vIFJlcXVpcmVkIGFzdGVyaXNrIOKAlCBtYXRjaGVzIHRoZSBxZG5hcHJvLWlucHV0IC5pbnB1dC1yZXF1aXJlZCBjb2xvdXIuXG4gICAgICAgIC5mZS1sYWJlbC1yZXF1aXJlZCB7XG4gICAgICAgICAgICBjb2xvcjogI2M2NWE1YTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQdXNoIHRoZSBxdWVzdGlvbiBoZWFkZXIgKyBmaWVsZCBkb3duIHNvIHRoZSBmaWVsZCBjbGVhcnMgdGhlIGZsb2F0ZWRcbiAgICAvLyBjb2xvdXIgcGlja2VyLCBnaXZpbmcgc3ltbWV0cmljIHNwYWNpbmc6IChmcmFtZS10b3Ag4oaSIGNvbG91ciBwaWNrZXIpIOKJiFxuICAgIC8vIChjb2xvdXIgcGlja2VyIOKGkiBmaWVsZCkuIFRoZSBjb2xvdXIgcGlja2VyIHN0YXlzIGFuY2hvcmVkIHRvcC1yaWdodC5cbiAgICBsYWJlbC5xZG5hcHJvLW1vZGFsLWxhYmVsLmZlLW5tLXEtbGFiZWwge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMnB4O1xuICAgIH1cbn1cblxuLy8g4pSA4pSAIEZvb3RlciDilIDilIBcbi5mZS1ubS1mb290ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgICAgICAgICAvLyBhbmNob3IgZm9yIHRoZSBjZW50ZXJlZCBwbGF5IGJ1dHRvblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgcGFkZGluZzogMTBweCAxNHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDE4MCwgMTg4LCAyMjAsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40MCk7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi8vIENlbnRlcmVkIHJvdW5kIFwiU3RhcnQgdmFuYWYgaGllclwiIHBsYXkgYnV0dG9uIGluIHRoZSBmb290ZXJcbi5mZS1ubS1mb290ZXItcGxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjNDA0OTlhO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE0MG1zLCB0cmFuc2Zvcm0gMTQwbXMsIGJveC1zaGFkb3cgMTQwbXM7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoNjQsIDczLCAxNTQsIDAuMzApO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAubWRpIHsgbGluZS1oZWlnaHQ6IDE7IH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMzUzZThjO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMS4wOCk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSg2NCwgNzMsIDE1NCwgMC40MCk7XG4gICAgfVxufVxuXG4uZmUtbm0tZm9vdGVyLWxlZnQsXG4uZmUtbm0tZm9vdGVyLXJpZ2h0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi8vIEFkdmFuY2VkIHNldHRpbmdzIGJ1dHRvblxuLmZlLW5tLWFkdi1idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIGJvcmRlcjogMS41cHggc29saWQgcmdiYSg2NCwgNzMsIDE1NCwgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcywgYm9yZGVyLWNvbG9yIDEyMG1zO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMDgpO1xuICAgICAgICBib3JkZXItY29sb3I6ICM0MDQ5OWE7XG4gICAgfVxuXG4gICAgLm1kaSB7IGZvbnQtc2l6ZTogMTRweDsgfVxufVxuXG4vLyBDYW5jZWwgLyBTYXZlIGJ1dHRvbnNcbi5mZS1ubS1idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogN3B4IDE4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zLCBib3gtc2hhZG93IDEyMG1zO1xuXG4gICAgJi0tY2FuY2VsIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4wOCk7XG4gICAgICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4xNCk7IH1cbiAgICB9XG5cbiAgICAmLS1zYXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzQwNDk5YTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDY0LCA3MywgMTU0LCAwLjMwKTtcbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICMzMzNkODg7IGJveC1zaGFkb3c6IDAgM3B4IDEycHggcmdiYSg2NCwgNzMsIDE1NCwgMC40MCk7IH1cbiAgICB9XG59XG5cblxuLy8g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4vLyBGRS1BTlNXRVIgIOKAlCAgQW5zd2VyIG9wdGlvbiByb3dzIGluIHRoZSBub2RlIG1vZGFsXG4vLyDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcblxuLmZlLWFuc3dlci1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU0ZWY7XG4gICAgYmFja2dyb3VuZDogI2ZhZmJmZjtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBtaW4taGVpZ2h0OiAzOHB4O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxNDBtcywgYm94LXNoYWRvdyAxNDBtcztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvLyBTaG93IGFjdGlvbnMgb24gaG92ZXJcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYThiMmU4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSg2NCwgNzMsIDE1NCwgMC4xMCk7XG5cbiAgICAgICAgLmZlLWFuc3dlci1hY3Rpb25zIHsgb3BhY2l0eTogMTsgcG9pbnRlci1ldmVudHM6IGFsbDsgfVxuICAgICAgICAuZmUtYW5zd2VyLWFjdC0tZGVsZXRlLFxuICAgICAgICAuZmUtYW5zd2VyLWFjdC0tdW5saW5rIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMTsgfVxuICAgIH1cblxuICAgIC8vIFVubGlua2VkIHN0YXRlOiBhbWJlciB0aW50XG4gICAgJi0tdW5saW5rZWQge1xuICAgICAgICBib3JkZXItY29sb3I6ICNkZGI4NGE7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZiZjA7XG4gICAgfVxuXG4gICAgLy8gQ29uZmlybS1kZWxldGUgc3RhdGU6IHJlZCB0aW50XG4gICAgJi0tY29uZmlybWluZyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2U0YTBhMDtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjVmNTtcbiAgICB9XG59XG5cbi5mZS1hbnN3ZXItZHJhZyB7XG4gICAgcGFkZGluZzogMCA1cHggMCA4cHg7XG4gICAgY29sb3I6ICNjY2M7XG4gICAgY3Vyc29yOiBncmFiO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5mZS1hbnN3ZXItbGFiZWwge1xuICAgIGZsZXg6IDE7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICMyYTJlNWU7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogOXB4IDZweDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIG1pbi13aWR0aDogMDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggIzQwNDk5YTtcbiAgICB9XG5cbiAgICAmW3JlYWRvbmx5XSB7IGNvbG9yOiAjNmE2ZTlhOyBjdXJzb3I6IGRlZmF1bHQ7IH1cbn1cblxuLy8gQ29ubmVjdGlvbiBwaWxsXG4uZmUtYW5zd2VyLWNvbm4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAzcHg7XG4gICAgcGFkZGluZzogM3B4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcblxuICAgICYtLWxpbmtlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlZWYwZmY7XG4gICAgICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAvLyBMaW5rZWQgcGlsbCB0aGF0IGhhcyBhIHJlc29sdmFibGUgdGFyZ2V0IHF1ZXN0aW9uOiBzdWJ0bGUgaG92ZXIgaGlnaGxpZ2h0XG4gICAgLy8gKGN1cnNvciBzdGF5cyBkZWZhdWx0IOKAlCB0aGUgdG9vbHRpcCBhcHBlYXJpbmcgaXMgY3VlIGVub3VnaCkuXG4gICAgJi0tbGlua2VkLmZlLWFuc3dlci1jb25uLS1oYXMtdGlwIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcztcblxuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogI2UwZTNmZjsgfVxuICAgIH1cblxuICAgICYtLWVtcHR5IHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjNjZDtcbiAgICAgICAgY29sb3I6ICM4YTZhMTA7XG4gICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCAjZGRiODRhO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXM7XG5cbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICNmZmVlYTA7IH1cbiAgICB9XG59XG5cbi8vIE5leHQtc3RlcCByb3cgKE9wZW4gaW52b2VyIC8gc2luZ2xlLWxpbmsgbm9kZXMpXG4uZmUtbmV4dC1zdGVwLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDhweDtcbn1cblxuLmZlLW5leHQtc3RlcC1yZW1vdmUge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiAjYzQzNjJhO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7XG4gICAgcGFkZGluZzogM3B4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcztcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDE5NiwgNTQsIDQyLCAwLjA4KTsgfVxuXG4gICAgLm1kaSB7IGZvbnQtc2l6ZTogMTNweDsgfVxufVxuXG4vLyBUb29sdGlwIG9uIHRoZSBjb25uZWN0aW9uIHBpbGwg4oCUIHNob3dzIHRoZSB0YXJnZXQgbm9kZSdzIHF1ZXN0aW9uLlxuLy8gcG9zaXRpb246Zml4ZWQgKEpTLXBvc2l0aW9uZWQgZnJvbSB0aGUgcGlsbCdzIGJvdW5kaW5nIHJlY3QpIHNvIGl0IGlzIG5ldmVyXG4vLyBjbGlwcGVkIGJ5IC5mZS1ubS1jb250ZW50J3Mgb3ZlcmZsb3cuIE5vIHRyYW5zZm9ybWVkIGFuY2VzdG9yIGV4aXN0cywgc29cbi8vIGZpeGVkIHJlc29sdmVzIGFnYWluc3QgdGhlIHZpZXdwb3J0LlxuLmZlLWNvbm4tdGlwIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogOTMwMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCBjYWxjKC0xMDAlIC0gMTBweCkpO1xuICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgcGFkZGluZzogN3B4IDExcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNDIsIDQ2LCA5NCwgMC45Nik7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmO1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSgyMCwgMjQsIDYwLCAwLjI4KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgYW5pbWF0aW9uOiBmZS1jb25uLXRpcC1pbiAxMjBtcyBlYXNlO1xuXG4gICAgLy8gZG93bndhcmQgYXJyb3cgY2VudGVyZWQgdW5kZXIgdGhlIGJ1YmJsZVxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICBib3JkZXI6IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSg0MiwgNDYsIDk0LCAwLjk2KTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgZmUtY29ubi10aXAtaW4ge1xuICAgIGZyb20geyBvcGFjaXR5OiAwOyB9XG4gICAgdG8gICB7IG9wYWNpdHk6IDE7IH1cbn1cblxuLy8gI2ZlLWR1cC10aXAgcmVtb3ZlZCDigJQgZHVwbGljYXRlLWxpbmtzIGJhZGdlIHRvb2x0aXAgbm93IHVzZXMgR29KUyBuYXRpdmVcbi8vIHRvb2xUaXAgKGR1cFRvb2x0aXAgYWRvcm5tZW50IGluIGR1cGxpY2F0ZV9saW5rcy5qcyksIHdoaWNoIHBvc2l0aW9ucyBpdHNlbGZcbi8vIHdpdGhpbiB0aGUgZGlhZ3JhbSBsYXllciBhbmQgaXMgdW5hZmZlY3RlZCBieSBib2R5IHsgem9vbTowLjggfS5cblxuLy8gSG92ZXIgYWN0aW9uIGJ1dHRvbnMgKHNsaWRlLWluIGZyb20gcmlnaHQpXG4uZmUtYW5zd2VyLWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDJweDtcbiAgICBwYWRkaW5nOiAwIDVweCAwIDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zO1xufVxuXG4uZmUtYW5zd2VyLWFjdCB7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zLCBib3JkZXItY29sb3IgMTIwbXMsIGNvbG9yIDEyMG1zO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgJi0tdW5saW5rIHtcbiAgICAgICAgY29sb3I6ICM5YTZhMTA7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmYzY2Q7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2YwZDA2MDtcblxuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogI2ZkZThhMDsgYm9yZGVyLWNvbG9yOiAjZDBhODIwOyB9XG4gICAgfVxuXG4gICAgJi0tZGVsZXRlIHtcbiAgICAgICAgY29sb3I6ICNjOTQwNDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZGU4ZTg7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2U4YjBiMDtcblxuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogI2ZjYzsgYm9yZGVyLWNvbG9yOiAjYzk0MDQwOyB9XG4gICAgfVxufVxuXG4vLyBJbmxpbmUgZGVsZXRlIGNvbmZpcm0gYmFyXG4uZmUtYW5zd2VyLWNvbmZpcm0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBmbGV4OiAxO1xuICAgIHBhZGRpbmc6IDZweCAxMHB4O1xufVxuXG4uZmUtYW5zd2VyLWNvbmZpcm0taWNvbiB7XG4gICAgY29sb3I6ICNjOTQwNDA7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uZmUtYW5zd2VyLWNvbmZpcm0tdGV4dCB7XG4gICAgZmxleDogMTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogI2M5NDA0MDtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmO1xufVxuXG4uZmUtYW5zd2VyLWJ0biB7XG4gICAgcGFkZGluZzogNHB4IDExcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXM7XG5cbiAgICAmLS1jYW5jZWwge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmMWY0O1xuICAgICAgICBjb2xvcjogIzU1NTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2QwZDJkYjtcbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICNlNGU2ZWY7IH1cbiAgICB9XG5cbiAgICAmLS1kZWxldGUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjYzk0MDQwO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICNhODMwMzA7IH1cbiAgICB9XG59XG5cbi8vIOKUgOKUgOKUgCBGbG93IEVkaXRvciBQcmV2aWV3IE1vZGFsIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4uZmUtcG0tZmFkZS1lbnRlci1hY3RpdmUsXG4uZmUtcG0tZmFkZS1sZWF2ZS1hY3RpdmUgeyB0cmFuc2l0aW9uOiBvcGFjaXR5IDE4MG1zIGVhc2U7IH1cbi5mZS1wbS1mYWRlLWVudGVyLWZyb20sXG4uZmUtcG0tZmFkZS1sZWF2ZS10byAgICB7IG9wYWNpdHk6IDA7IH1cblxuLmZlLXBtLWJhY2tkcm9wIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogMTAxMDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMCwgMTIsIDQwLCAwLjcyKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAvLyBLZWVwIHRoZSBiYWNrZHJvcCdzIG93biBzY3JvbGwgZnJvbSBjaGFpbmluZyB0byB0aGUgcGFnZSBiZWhpbmQgaXQuXG4gICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbn1cblxuLmZlLXBtLXNoZWxsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHg7XG59XG5cbi8vIERldmljZSBzd2l0Y2hlciArIGNsb3NlIGJhclxuLmZlLXBtLWNocm9tZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbn1cblxuLmZlLXBtLWRldmljZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTApO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xNik7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBhZGRpbmc6IDNweDtcbn1cblxuLmZlLXBtLWRldmljZS1idG4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjY1KTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTQwbXMsIGNvbG9yIDE0MG1zO1xuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7IGNvbG9yOiAjZmZmOyB9XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMjApO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMCwwLDAsMC4yNSk7XG4gICAgfVxufVxuXG4uZmUtcG0tY2xvc2UtYnRuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDM0cHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTgpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7XG4gICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43NSk7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE0MG1zLCBjb2xvciAxNDBtcztcbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjE2KTsgY29sb3I6ICNmZmY7IH1cbn1cblxuLy8gVGhpbiBkaXZpZGVyIGJldHdlZW4gZGV2aWNlIGJ1dHRvbnMgYW5kIHRoZSB6b29tIHRvZ2dsZSBpbnNpZGUgLmZlLXBtLWRldmljZXNcbi5mZS1wbS1kZXZpY2Utc2VwIHtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMjApO1xuICAgIG1hcmdpbjogMCAycHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cblxuLy8gRGV2aWNlIGZyYW1lc1xuLmZlLXBtLXN0YWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uZmUtcG0tZnJhbWUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAjMWExYjJlO1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICMzYTNiNTU7XG4gICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwwLjA2KSxcbiAgICAgICAgMCAyNHB4IDgwcHggcmdiYSgwLDAsMCwwLjcpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDI4MG1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLFxuICAgICAgICAgICAgICAgIGhlaWdodCAyODBtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzIDI4MG1zO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAvLyBQaG9uZSBwb3J0cmFpdCAoZGVmYXVsdClcbiAgICAmLS1waG9uZSB7XG4gICAgICAgIHdpZHRoOiAzNzVweDtcbiAgICAgICAgaGVpZ2h0OiA4MTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNDRweDtcbiAgICB9XG5cbiAgICAvLyBUYWJsZXQgcG9ydHJhaXRcbiAgICAmLS10YWJsZXQtcG9ydHJhaXQge1xuICAgICAgICB3aWR0aDogNzY4cHg7XG4gICAgICAgIGhlaWdodDogMTAyNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIH1cblxuICAgIC8vIFRhYmxldCBsYW5kc2NhcGVcbiAgICAmLS10YWJsZXQtbGFuZHNjYXBlIHtcbiAgICAgICAgd2lkdGg6IDEwMjRweDtcbiAgICAgICAgaGVpZ2h0OiA3NjhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICB9XG5cbiAgICAvLyBQaG9uZSBsYW5kc2NhcGVcbiAgICAmLS1waG9uZS1sYW5kc2NhcGUge1xuICAgICAgICB3aWR0aDogODEycHg7XG4gICAgICAgIGhlaWdodDogMzc1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDMycHg7XG4gICAgfVxuXG4gICAgLy8gRGVza3RvcCDigJQgbmVhcmx5IHZpZXdwb3J0LWZpbGxpbmcgKG5vIGZpeGVkIGFzcGVjdCwgbm8gem9vbTsgQ1NTIHNpemVzIGl0KS5cbiAgICAmLS1kZXNrdG9wIHtcbiAgICAgICAgd2lkdGg6IG1pbigxNjgwcHgsIDk2dncpO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxNDBweCk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDExMDBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICB9XG59XG5cbi5mZS1wbS1ub3RjaCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDEyMHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgYmFja2dyb3VuZDogIzFhMWIyZTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMThweCAxOHB4O1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICAuZmUtcG0tZnJhbWUtLXRhYmxldC1wb3J0cmFpdCAmLFxuICAgIC5mZS1wbS1mcmFtZS0tdGFibGV0LWxhbmRzY2FwZSAmLFxuICAgIC5mZS1wbS1mcmFtZS0tcGhvbmUtbGFuZHNjYXBlICYsXG4gICAgLmZlLXBtLWZyYW1lLS1kZXNrdG9wICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmZlLXBtLXNjcmVlbiB7XG4gICAgZmxleDogMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgLmZlLXBtLWZyYW1lLS1waG9uZSAmIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDtcbiAgICB9XG59XG5cbi8vIE5vbi1waG9uZS1wb3J0cmFpdCBmcmFtZXMgaGlkZSB0aGUgbm90Y2gvaG9tZS1iYXIg4oaSIGluc2V0IHRoZSAod2hpdGUpIHNjcmVlbiBhXG4vLyBsaXR0bGUgc28gY29udGVudCBpc24ndCBmbHVzaCBhZ2FpbnN0IC8gY2xpcHBlZCBieSB0aGUgZnJhbWUgZWRnZS4gTWlycm9ycyB0aGVcbi8vIGFwcC1sYXVuY2ggb3ZlcmxheSAoLmFsLXNjcmVlbikuIFBob25lLXBvcnRyYWl0IGtlZXBzIGl0cyBub3RjaC9ob21lLWJhciBiZXplbC5cbi5mZS1wbS1mcmFtZS0tdGFibGV0LXBvcnRyYWl0ID4gLmZlLXBtLXNjcmVlbixcbi5mZS1wbS1mcmFtZS0tdGFibGV0LWxhbmRzY2FwZSA+IC5mZS1wbS1zY3JlZW4sXG4uZmUtcG0tZnJhbWUtLWRlc2t0b3AgPiAuZmUtcG0tc2NyZWVuIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDIycHg7XG59XG4uZmUtcG0tZnJhbWUtLXBob25lLWxhbmRzY2FwZSA+IC5mZS1wbS1zY3JlZW4ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMTZweDtcbn1cblxuLmZlLXBtLWlmcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmZlLXBtLWhvbWUtYmFyIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aWR0aDogMTIwcHg7XG4gICAgaGVpZ2h0OiA1cHg7XG4gICAgbWFyZ2luOiA4cHggYXV0bztcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcblxuICAgIC5mZS1wbS1mcmFtZS0tdGFibGV0LXBvcnRyYWl0ICYsXG4gICAgLmZlLXBtLWZyYW1lLS10YWJsZXQtbGFuZHNjYXBlICYsXG4gICAgLmZlLXBtLWZyYW1lLS1waG9uZS1sYW5kc2NhcGUgJixcbiAgICAuZmUtcG0tZnJhbWUtLWRlc2t0b3AgJiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4vLyBMb2FkaW5nIC8gZXJyb3Igc3RhdGUgaW5zaWRlIHRoZSBzY3JlZW5cbi5mZS1wbS1sb2FkaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG59XG5cbi5mZS1wbS1zcGlubmVyIHtcbiAgICBmb250LXNpemU6IDQwcHg7XG59XG5cbi5mZS1wbS1lcnJvci1pY29uIHtcbiAgICBmb250LXNpemU6IDQwcHg7XG4gICAgY29sb3I6ICNjOTQwNDA7XG59XG5cbi5mZS1wbS1sb2FkaW5nLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogIzZiNzI4MDtcbn1cblxuLy8gVG9vbGJhciBwbGF5IGJ1dHRvblxuLmZlLXByZXZpZXctdG9vbGJhci1idG4ge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS42ZW07XG4gICAgb3BhY2l0eTogMC45O1xuICAgICY6aG92ZXIgeyBvcGFjaXR5OiAxOyB9XG59XG5cbi8vIE5vZGUgbW9kYWwgXCJTdGFydCB2YW5hZiBoaWVyXCIgYnV0dG9uXG4uZmUtbm0tcHJldmlldy1idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA1cHg7XG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJvcmRlcjogMS41cHggc29saWQgcmdiYSg2NCw3MywxNTQsMC4zNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2NCw3MywxNTQsMC4wNyk7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTQwbXMsIGJvcmRlci1jb2xvciAxNDBtcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xuXG4gICAgLm1kaSB7IGZvbnQtc2l6ZTogMTVweDsgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNjQsNzMsMTU0LDAuMTMpO1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoNjQsNzMsMTU0LDAuNTUpO1xuICAgIH1cbn1cblxuLy8g4pSA4pSAIEFkZC1iYXI6IHJlcGxhY2VzIFwiVG9ldm9lZ2VuIEFudHdvb3Jkb3B0aWVcIiBidXR0b24g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4uZmUtYWRkLWJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1pbi1oZWlnaHQ6IDM4cHg7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBib3JkZXI6IDEuNXB4IGRhc2hlZCByZ2JhKDcwLCA4MiwgMjQzLCAwLjMwKTtcbiAgICBiYWNrZ3JvdW5kOiAjZmFmYmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogIzQ2NTJmMztcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTUwbXMsIGJhY2tncm91bmQgMTUwbXM7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2YwZjFmYjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjU1KTtcblxuICAgICAgICAuZmUtYWRkLWJhci1jaXJjbGUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzQ2NTJmMztcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZlLWFkZC1iYXItY2lyY2xlIHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMTIpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogIzQ2NTJmMztcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zLCBjb2xvciAxNTBtcztcbn1cblxuQGtleWZyYW1lcyBmZS1wdWJsaXNoLXB1bHNlIHtcbiAgICAwJSwgMTAwJSB7IGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyNDUsIDE1OCwgMTEsIDAuNyk7IH1cbiAgICA1MCUgICAgICAgeyBib3gtc2hhZG93OiAwIDAgMCA1cHggcmdiYSgyNDUsIDE1OCwgMTEsIDApOyB9XG59XG5cbi8vIOKUgOKUgCBWZXJzaW9uIGxvZyBtb2RhbCAoLmZlLXZsLSopIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4uZmUtdmwtd3JhcCB7XG4gICAgZm9udC1mYW1pbHk6IGludGVyLCBzYW5zLXNlcmlmO1xuICAgIG1pbi1oZWlnaHQ6IDEyMHB4O1xufVxuXG4uZmUtdmwtbG9hZGluZyxcbi5mZS12bC1lcnJvcixcbi5mZS12bC1lbXB0eSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDQ4cHggMTZweDtcbiAgICBjb2xvcjogIzg4OTBiODtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZ2FwOiA4cHg7XG5cbiAgICAubWRpIHsgZm9udC1zaXplOiAxOHB4OyB9XG59XG5cbi5mZS12bC1lcnJvciB7IGNvbG9yOiAjYzQzNjJhOyB9XG5cbi8vIFZlcnNpb24gc2VjdGlvblxuLmZlLXZsLXNlY3Rpb24ge1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U0ZTdmNTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcblxuICAgICY6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cbn1cblxuLmZlLXZsLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjZmZDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcztcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZWNlZmZlOyB9XG5cbiAgICAuZmUtdmwtc2VjdGlvbi0tb3BlbiAmIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2U0ZTdmNTtcbiAgICB9XG59XG5cbi5mZS12bC1jaGV2cm9uIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgY29sb3I6ICM4ODkwYjg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE1MG1zO1xufVxuXG4uZmUtdmwtdGl0bGUge1xuICAgIGZsZXg6IDE7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjMmEyZTVlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG5cbiAgICBzdHJvbmcgeyBmb250LXdlaWdodDogNjAwOyB9XG59XG5cbi5mZS12bC10YWcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgIHBhZGRpbmc6IDFweCA3cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZTBlM2ZmO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5mZS12bC10YWctcHViIHtcbiAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiAjODg5MGI4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5mZS12bC1jb3VudCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiAjYTBhNGI4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8vIEV2ZW50cyBsaXN0IOKAlCBoaWRkZW4gd2hlbiBjb2xsYXBzZWRcbi5mZS12bC1ldmVudHMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcGFkZGluZzogNnB4IDA7XG5cbiAgICAuZmUtdmwtc2VjdGlvbi0tb3BlbiAmIHsgZGlzcGxheTogYmxvY2s7IH1cbn1cblxuLmZlLXZsLWV2ZW50LWVtcHR5IHtcbiAgICBwYWRkaW5nOiAxNnB4IDE0cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjYTBhNGI4O1xufVxuXG4uZmUtdmwtZXZlbnQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyODBweCAxZnIgYXV0bztcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogN3B4IDE0cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMGYxZjg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMDBtcztcblxuICAgICY6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogI2Y5ZjlmZDsgfVxufVxuXG4uZmUtdmwtZXZlbnQtbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDVweDtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5mZS12bC1waWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYmFja2dyb3VuZDogI2U4ZWFmODtcbiAgICBjb2xvcjogIzQwNDk5YTtcblxuICAgIC8vIE5vZGUgZXZlbnRzIOKAlCBibHVlLWlzaFxuICAgICYuZmUtdmwtcGlsbC0tbm9kZS1jcmVhdGVkICAgIHsgYmFja2dyb3VuZDogI2QxZmFlNTsgY29sb3I6ICMwNjVmNDY7IH1cbiAgICAmLmZlLXZsLXBpbGwtLW5vZGUtZGVsZXRlZCAgICB7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjOTkxYjFiOyB9XG4gICAgJi5mZS12bC1waWxsLS1ub2RlLXR5cGUtY2hhbmdlZCB7IGJhY2tncm91bmQ6ICNlZGU5ZmU7IGNvbG9yOiAjNWIyMWI2OyB9XG5cbiAgICAvLyBMYWJlbCBldmVudHMg4oCUIHB1cnBsZVxuICAgICYuZmUtdmwtcGlsbC0tbGFiZWwtY2hhbmdlZCxcbiAgICAmLmZlLXZsLXBpbGwtLXN1YmxhYmVsLWNoYW5nZWQgeyBiYWNrZ3JvdW5kOiAjZWRlOWZlOyBjb2xvcjogIzViMjFiNjsgfVxuXG4gICAgLy8gTWV0YVxuICAgICYuZmUtdmwtcGlsbC0tbWV0YS1jaGFuZ2VkICAgIHsgYmFja2dyb3VuZDogI2ZlZjNjNzsgY29sb3I6ICM5MjQwMGU7IH1cblxuICAgIC8vIExpbmtzXG4gICAgJi5mZS12bC1waWxsLS1saW5rLWNyZWF0ZWQsXG4gICAgJi5mZS12bC1waWxsLS1saW5rLWNvbm5lY3RlZCAgeyBiYWNrZ3JvdW5kOiAjZDFmYWU1OyBjb2xvcjogIzA2NWY0NjsgfVxuICAgICYuZmUtdmwtcGlsbC0tbGluay1kaXNjb25uZWN0ZWQsXG4gICAgJi5mZS12bC1waWxsLS1saW5rLWRlbGV0ZWQgICAgeyBiYWNrZ3JvdW5kOiAjZmVlMmUyOyBjb2xvcjogIzk5MWIxYjsgfVxuXG4gICAgLy8gQW5zd2Vyc1xuICAgICYuZmUtdmwtcGlsbC0tYW5zd2VyLWFkZGVkICAgIHsgYmFja2dyb3VuZDogI2QxZmFlNTsgY29sb3I6ICMwNjVmNDY7IH1cbiAgICAmLmZlLXZsLXBpbGwtLWFuc3dlci1jaGFuZ2VkICB7IGJhY2tncm91bmQ6ICNmZWYzYzc7IGNvbG9yOiAjOTI0MDBlOyB9XG4gICAgJi5mZS12bC1waWxsLS1hbnN3ZXItZGVsZXRlZCAgeyBiYWNrZ3JvdW5kOiAjZmVlMmUyOyBjb2xvcjogIzk5MWIxYjsgfVxufVxuXG4uZmUtdmwtdGltZSB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiAjYTBhNGI4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5mZS12bC11c2VyIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6ICM2YjcyODA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBtYXgtd2lkdGg6IDEyMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5mZS12bC1ldmVudC1kZXRhaWwge1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLmZlLXZsLW5vZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzZiNzI4MDtcbiAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4uZmUtdmwtZmllbGQge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGNvbG9yOiAjNGI1NTYzO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbi5mZS12bC1maWVsZC1uYW1lIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMzc0MTUxO1xufVxuXG4uZmUtdmwtYmVmb3JlIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICBjb2xvcjogIzljYTNhZjtcbn1cblxuLmZlLXZsLWFycm93IHtcbiAgICBjb2xvcjogI2QxZDVkYjtcbiAgICBmb250LXNpemU6IDExcHg7XG59XG5cbi5mZS12bC1hZnRlciB7XG4gICAgY29sb3I6ICMxMTE4Mjc7XG59XG5cbi8vIOKUgOKUgCBWZXJzaW9uIGxvZyByb3cgZW50ZXIgYW5pbWF0aW9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuQGtleWZyYW1lcyBmZS12bC1yb3ctaW4ge1xuICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7IH1cbiAgICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG5cbi5mZS12bC1ldmVudC0tZW50ZXJpbmcge1xuICAgIGFuaW1hdGlvbjogZmUtdmwtcm93LWluIDE4MG1zIGN1YmljLWJlemllcigwLjIsIDAsIDAuMzgsIDEpIGJvdGg7XG59XG5cbi8vIOKUgOKUgCBWZXJzaW9uIGxvZyBmaWx0ZXIgYmFyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLmZlLXZsLWZpbHRlci1iYXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gYW5jaG9yIGZvciB0aGUgYWJzb2x1dGUgaW5kaWNhdG9yXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDRweDtcbiAgICBwYWRkaW5nOiAwIDAgMTJweCAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU3ZjU7XG59XG5cbi5mZS12bC1maWx0ZXItaW5kaWNhdG9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZDogI2U4ZWFmZDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDA7XG4gICAgLy8gbGVmdC90b3Avd2lkdGgvaGVpZ2h0IHRyYW5zaXRpb24gYWRkZWQgYnkgSlMgYWZ0ZXIgaW5pdGlhbCBzbmFwLXBsYWNlbWVudFxufVxuXG4uZmUtdmwtcGlsbC1maWx0ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxOyAvLyBhYm92ZSB0aGUgaW5kaWNhdG9yXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBhZGRpbmc6IDVweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtZmFtaWx5OiBpbnRlciwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogIzg4OTBiODtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMTUwbXM7XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgICBjb2xvcjogIzQwNDk5YTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG5cbiAgICAmOmhvdmVyOm5vdCguZmUtdmwtcGlsbC1maWx0ZXItLWFjdGl2ZSkge1xuICAgICAgICBjb2xvcjogIzU1NjBiODtcbiAgICB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgIzQwNDk5YTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICB9XG59XG5cbi8vIFJlc3RvcmUgYnV0dG9uXG4uZmUtdmwtcmVzdG9yZS1idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjN2QyZmU7XG4gICAgYmFja2dyb3VuZDogI2VlZjJmZjtcbiAgICBjb2xvcjogIzQzMzhjYTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcywgYm9yZGVyLWNvbG9yIDEyMG1zO1xuXG4gICAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlMGU3ZmY7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2E1YjRmYztcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHsgb3BhY2l0eTogMC42OyBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuICAgICYuZmUtdmwtcmVzdG9yZS1idG4tLWRvbmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZDFmYWU1O1xuICAgICAgICBib3JkZXItY29sb3I6ICM2ZWU3Yjc7XG4gICAgICAgIGNvbG9yOiAjMDY1ZjQ2O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxufVxuXG4vKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgIE9wZW4gaW52b2VyIG1vZGFsIOKAlCBJbnB1dEZpZWxkT3B0aW9ucyBjb252ZXJ0ZWQgdG8gcWRuYXByby13aXphcmQtbW9kYWxcbiAgICh3bS13aXRoLWluZm86IGxlZnQgaW5mbyBwYW5lbCArIGxpdmUgZHVtbXkgcHJldmlldywgcmlnaHQgc2V0dGluZ3MpLlxuICAgU2hlbGwvY2hyb21lICh3bS0qKSBjb21lcyBmcm9tIHN0eWxlLXYxLmNzczsgdGhlc2UgYXJlIHRoZSBtb2RhbC1zcGVjaWZpY1xuICAgYml0cy4gW0tpbSArIENsYXVkZSAyMDI2LTA2LTE4XVxuICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG5cbi8vIOKUgOKUgCBSaWdodCBjb2x1bW46IGhlYWRlciAvIHRhYmJhciAvIHNjcm9sbGluZyBib2R5IC8gZm9vdGVyIOKUgOKUgFxuLmZlLW9pLWhlYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTRweCAxNnB4IDRweDtcbiAgICBmbGV4LXNocmluazogMDtcbn1cbi5mZS1vaS10aXRsZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzQwNDk5YTtcbn1cbi5mZS1vaS14IHtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlLCBjb2xvciAxMjBtcyBlYXNlO1xuXG4gICAgaSB7IGZvbnQtc2l6ZTogMjBweDsgfVxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjA4KTsgY29sb3I6ICM0MDQ5OWE7IH1cbn1cblxuLmZlLW9pLWJvZHkge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgcGFkZGluZzogNHB4IDE2cHggOHB4O1xufVxuLmZlLW9pLXBhbmVsID4gcCB7XG4gICAgY29sb3I6ICM2YjcyODA7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cblxuLmZlLW9pLWZvb3RlciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2UxZTNlNjtcbn1cblxuLy8g4pSA4pSAIExlZnQgY29sdW1uOiBsaXZlIGR1bW15IHByZXZpZXcgb2YgdGhlIHF1ZXN0aW9uIGluIHRoZSBhcHAg4pSA4pSAXG4uZmUtb2ktcHJldmlldyB7XG4gICAgbWFyZ2luLXRvcDogYXV0bzsgICAgICAgICAgLy8gcGluIHRvIHRoZSBib3R0b20gb2YgdGhlIGluZm8gcGFuZWxcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG59XG4uZmUtb2ktcHJldmlldy1jYXAge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzkwOTdiODtcbn1cbi5mZS1vaS1waG9uZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDhkYWVhO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgcGFkZGluZzogMTRweDtcbiAgICBib3gtc2hhZG93OiAwIDZweCAxOHB4IHJnYmEoMjAsIDI0LCA2MCwgMC4xMCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbn1cbi5mZS1vaS1xIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzFhMWY0ZDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuLmZlLW9pLWZpZWxkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCAjYzRjN2NjO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZiZmJmZDtcbn1cbi5mZS1vaS1maWVsZC0tY291bnRlciB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuLmZlLW9pLXN0ZXAge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzRjN2NjO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmZlLW9pLWlucHV0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xufVxuLmZlLW9pLWN1ciB7IGNvbG9yOiAjNDA0OTlhOyBmb250LXdlaWdodDogNjAwOyB9XG4uZmUtb2ktdmFsIHsgY29sb3I6ICMwYjBiMGQ7IH1cbi5mZS1vaS1waCAgeyBjb2xvcjogIzlhYTBiNTsgfVxuLmZlLW9pLWJhcmNvZGUgeyBtYXJnaW4tbGVmdDogYXV0bzsgY29sb3I6ICM0MDQ5OWE7IGZvbnQtc2l6ZTogMThweDsgfVxuLmZlLW9pLW1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHggMTBweDtcbn1cbi5mZS1vaS1oaW50IHsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogIzZiNzI4MDsgfVxuLmZlLW9pLWNoaXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4xMCk7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBwYWRkaW5nOiAycHggOHB4O1xuXG4gICAgaSB7IGZvbnQtc2l6ZTogMTNweDsgfVxufVxuLmZlLW9pLXNraXAge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgIE5vZGVPcHRpb25zIG1vZGFsIOKAlCBjb252ZXJ0ZWQgdG8gcWRuYXByby13aXphcmQtbW9kYWwgKGZhc2UgMSkuXG4gICBTaGVsbC9jaHJvbWUgKHdtLSopIGNvbWVzIGZyb20gc3R5bGUtdjEuY3NzOyB0aGVzZSBhcmUgdGhlXG4gICBzdGVwLXNwZWNpZmljIGJpdHMgZm9yIHRoZSBiYXNpcyArIGFkdmFuY2VkIHN0ZXBzLiBbS2ltICsgQ2xhdWRlIDIwMjYtMDYtMThdXG4gICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cblxuLy8gTGVmdCBpbmZvIHBhbmVsIGNvbnRlbnQgKHNpdHMgaW5zaWRlIHRoZSB3bS1pbmZvIGJhc2UgcGFuZWwpXG4uZmUtbm8taWxsdSB7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuXG4gICAgc3ZnIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgZGlzcGxheTogYmxvY2s7IH1cbn1cbi5mZS1uby1kZXNjIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgY29sb3I6ICMxYTFmNGQ7XG4gICAgbWFyZ2luOiAxMnB4IDAgMDtcbn1cblxuLy8gUmlnaHQgY29sdW1uIOKAlCBnZXRzIHdtLW1haW4gKHdoaXRlIHdpbmRvdykgb24gbm9ybWFsIG5vZGVzOyBvbiBhbm5vdGF0aW9uIGl0XG4vLyBpcyBhIGJhcmUgZmxleCBjb2x1bW4gaW5zaWRlIHRoZSBwbGFpbiB3aGl0ZSBzdGVwLlxuLmZlLW5vLW1haW4ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4taGVpZ2h0OiAwO1xufVxuXG4vLyBIZWFkZXIgcm93XG4uZmUtbm8taGRyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAxMnB4IDhweCAxNnB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuLmZlLW5vLXBpbGwge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjEwKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDY0LCA3MywgMTU0LCAwLjE4KTtcbn1cbi5mZS1uby1waWxsLWljb24geyBmb250LXNpemU6IDE1cHg7IGNvbG9yOiAjNDA0OTlhOyBsaW5lLWhlaWdodDogMTsgfVxuLmZlLW5vLXBpbGwtbmFtZSB7IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6ICMyYTJlNWU7IH1cbi5mZS1uby1waWxsLWlkICAgeyBmb250LXNpemU6IDExcHg7IGNvbG9yOiAjOTA5N2I4OyB9XG5cbi5mZS1uby14IHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlLCBjb2xvciAxMjBtcyBlYXNlO1xuXG4gICAgaSB7IGZvbnQtc2l6ZTogMjBweDsgfVxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjA4KTsgY29sb3I6ICM0MDQ5OWE7IH1cbn1cbi5mZS1uby1iYWNrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlO1xuXG4gICAgaSB7IGZvbnQtc2l6ZTogMThweDsgfVxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjA4KTsgfVxufVxuXG4vLyBGb3JtIGVkaXRvciBmYXNlIDQgZGVsaXZlcnkgMiAocGxhbiBENS1SRVZJU0VELCBcInZpc3VlZWwgZ2VzdGFwZWxkXCIpOiBhXG4vLyBxdWVzdGlvbiBvcGVuZWQgRlJPTSBhIGNhcmQncyBWcmFnZW4gdGFiIHJlbmRlcnMgaW4gdGhlIFNBTUUgTm9kZU9wdGlvbnNcbi8vIG1vZGFsIGluc3RhbmNlIChubyBzZWNvbmQgbW9kYWwgZWxlbWVudCkg4oCUIHRoZSBcInN0YWNrZWQgc2Vjb25kIHdpbmRvd1wiIHJlYWRcbi8vIGlzIHB1cmVseSB2aXN1YWw6IGEgZGFya2VyIGJhY2tkcm9wIChhcyBpZiB0aGUgY2FyZCBtb2RhbCBkaW1tZWQgZnVydGhlclxuLy8gYmVoaW5kIGl0KSArIGEgc2xpZ2h0bHkgaGVhdmllciBzaGFkb3csIHBsdXMgdGhlIC5mZS1uby1iYWNrIGhlYWRlclxuLy8gYWZmb3JkYW5jZSB3aXJlZCBhYm92ZS4gd20tc2NyaW0vd20tZGlhbG9nIGFyZSBkaXJlY3QgY2hpbGRyZW4gdGhlXG4vLyB3aXphcmQtbW9kYWwgY3VzdG9tIGVsZW1lbnQgYXBwZW5kcyB0byBpdHNlbGYgKHNlZSBxZG5hLXdpemFyZC1tb2RhbC5qcyksXG4vLyBzbyBgLmZlLW5vLS1zdGFja2VkYCBvbiB0aGUgaG9zdCBzY29wZXMgY2xlYW5seSDigJQgZXZlcnkgT1RIRVIgd2l6YXJkLW1vZGFsXG4vLyBvbiB0aGUgc2l0ZSBpcyB1bnRvdWNoZWQuIFtLaW0gZmFzZSA0IGRlbGl2ZXJ5IDJdXG4vL1xuLy8gUkVXT1JLRUQgKEtpbSBmYXNlIDQgZGVsaXZlcnkgMywgMTAuMDcuMjAyNik6IHRoZSBlbnRyYW5jZS9yZXR1cm4gU0NBTEUgK1xuLy8gT1BBQ0lUWSBtb3Rpb24gb24gLndtLWRpYWxvZyBub3cgcGxheXMgdmlhIEVsZW1lbnQuYW5pbWF0ZSgpIGZyb21cbi8vIE5vZGVPcHRpb25zLnZ1ZSdzIGhhc1JldHVybkFuY2hvciB3YXRjaGVyIChfcGxheVN0YWNrVHJhbnNpdGlvbiksIG5vdCBhIENTU1xuLy8ga2V5ZnJhbWUgaGVyZSDigJQgYSBrZXlmcmFtZSB0aWVkIHRvIGAuZmUtbm8tLXN0YWNrZWRgIChhIGNsYXNzIHRoYXQgc3RheXNcbi8vIGFwcGxpZWQgZm9yIHRoZSB3aG9sZSB0aW1lIGEgcXVlc3Rpb24gaXMgc3RhY2tlZCkgb25seSBwbGF5cyBvbmNlLCBvblxuLy8gY2xhc3MtYWRkOyBpdCBjYW4gbmV2ZXIgcmVwbGF5IGZvciBhIFNFQ09ORCBxdWVzdGlvbiBvcGVuZWQgd2hpbGUgb25lIGlzXG4vLyBhbHJlYWR5IHN0YWNrZWQsIGFuZCBpdCBuZXZlciBoYWQgYSByZXZlcnNlIChcInJldHVybiB0byBjYXJkXCIpIHZhcmlhbnQgYXRcbi8vIGFsbC4gV2hhdCBzdGF5cyBDU1MtZHJpdmVuIGlzIHRoZSBzY3JpbSBkaW1taW5nOiBhIGB0cmFuc2l0aW9uYCAobm90IGFuXG4vLyBgYW5pbWF0aW9uYCkgbmF0dXJhbGx5IHJlcGxheXMgY29ycmVjdGx5IGluIEJPVEggZGlyZWN0aW9ucyBldmVyeSB0aW1lIHRoZVxuLy8gY2xhc3MgdG9nZ2xlcywgc28gdGhlcmUncyBubyByZWFzb24gdG8gbW92ZSBpdCB0byBKUy5cbi5mZS1ubyA+IC53bS1zY3JpbSB7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMjBtcyBlYXNlO1xufVxuLmZlLW5vLmZlLW5vLS1zdGFja2VkID4gLndtLXNjcmltIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDExLCAxMSwgMTMsIDAuNjIpO1xufVxuLmZlLW5vID4gLndtLXNjcmltID4gLndtLWRpYWxvZyB7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMjBtcyBlYXNlO1xufVxuLmZlLW5vLmZlLW5vLS1zdGFja2VkID4gLndtLXNjcmltID4gLndtLWRpYWxvZyB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAxMHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjM0KSxcbiAgICAgICAgMCAxNnB4IDI0cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMjIpO1xufVxuLy8gUmVkdWNlZCBtb3Rpb246IE5vZGVPcHRpb25zLnZ1ZSdzIF9wbGF5U3RhY2tUcmFuc2l0aW9uIGFscmVhZHkgc2tpcHMgdGhlXG4vLyBFbGVtZW50LmFuaW1hdGUoKSBjYWxsIGVudGlyZWx5IHdoZW4gdGhpcyBpcyBzZXQuIFRoZSBzY3JpbS9zaGFkb3dcbi8vIHRyYW5zaXRpb25zIGFib3ZlIGFyZSBjb21wYXJhdGl2ZWx5IHN1YnRsZSAobm8gbW92ZW1lbnQsIG5vIHNjYWxlKSBidXQgYXJlXG4vLyBzdGlsbCBtb3Rpb24g4oCUIGRyb3AgdGhlbSB0b28gc28gYSByZWR1Y2VkLW1vdGlvbiB1c2VyIGdldHMgYW4gaW5zdGFudFxuLy8gc3dhcCwgbWF0Y2hpbmcgdGhlIEpTIGhhbGYgb2YgdGhpcyBzYW1lIGZlYXR1cmUuIFtLaW0gZmFzZSA0IGRlbGl2ZXJ5IDNdXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5mZS1ubyA+IC53bS1zY3JpbSxcbiAgICAuZmUtbm8gPiAud20tc2NyaW0gPiAud20tZGlhbG9nIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi8vIFNjcm9sbGluZyBib2R5XG4uZmUtbm8tYm9keSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHggOHB4OyAgIC8vIHRvcCBwYWRkaW5nIHNvIHRoZSBjb2xvdXItcGlja2VyJ3Mgc2VsZWN0ZWQgZ2xvdyBpc24ndCBjbGlwcGVkXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLy8gSW52aXNpYmxlIHNjcm9sbGJhci4gW0tpbSAyMi4wNi4yMDI2XVxuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogMDsgaGVpZ2h0OiAwOyBkaXNwbGF5OiBub25lOyB9XG59XG4vLyBOb2RlLWxpbmsgZW1wdHkgc3RhdGU6IHRoZSBcIkRlemUgbm9kZSBpcyBuaWV0IGdla29wcGVsZFwiIHBsYWNlaG9sZGVyIHNob3VsZFxuLy8gcmVhZCBhcyBhIGNsZWFyIGRhcmstb3JhbmdlIG1lc3NhZ2UsIG5vdCBhIG11dGVkIGl0YWxpYyBmYWxsYmFjay4gW0tpbSAyMi4wNi4yMDI2XVxuLmZlLW5vZGUtbGluayAucWRuYXByby1hbnN3ZXItb3B0aW9uX19sYWJlbC0tc3RhdGljLmlzLWVtcHR5IHtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgY29sb3I6ICNjMjQxMGM7XG59XG5cbi8vIE5vZGUgY29sb3VyIHBpY2tlciDigJQgYSBjbGVhbiByaWdodC1hbGlnbmVkIHJvdyBhdCB0aGUgdG9wIG9mIFwiQWFucGFzc2VuXCJcbi8vIChubyBmbG9hdCwgc28gaXQgY2FuJ3Qgc2xpcCB1bmRlciB0aGUgaGVhZGVyKS4gRGVlcGVyIHN3YXRjaCBjb2xvdXJzIG1hdGNoXG4vLyBKYW4ncyBvcmlnaW5hbHMuIFtLaW0gMjAyNi0wNi0xOF1cbi8vIFwiU3RpamxcIiBmcmFtZWQgc2VjdGlvbiAobWlycm9ycyB0aGUgdGFza2xpc3QgZWRpdCBtb2RhbCdzIC5wdjItY3RsLXN0eWxlKS5cbi5mZS1uby1zdHlsZS1ibG9jayB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcblxuICAgIC5mZS1ubS1xLWxhYmVsIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IDhweDsgfVxufVxuLmZlLW5vLXN0eWxlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTZlOGVmO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMTRweDtcbn1cbi5mZS1uby1jb2xvcnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gICAgLy8gRmxhdCByZXByZXNlbnRhdGl2ZSBoZXggcGVyIHRoZW1lICh0aGUgdGhlbWUgYGJhY2tncm91bmRgKS4gS2VwdCBmbGF0IC0gbm90XG4gICAgLy8gYSBncmFkaWVudCAtIHNvIHRoZSBwaWNrZXIncyBvd24gY2hlY2ttYXJrLWNvbnRyYXN0IGRldGVjdG9yXG4gICAgLy8gKGdldENvbXB1dGVkU3R5bGUoKS5iYWNrZ3JvdW5kQ29sb3IpIHJlYWRzIGEgcmVhbCBjb2xvdXIuIFsyMi4wNi4yMDI2XVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tZGVmYXVsdCAgICAgIHsgLS1xY3AtYmc6ICMzYTQyOTA7IH0gLy8gS2ltJ3MgZGVmYXVsdFxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0taW5kaWdvICAgICAgIHsgLS1xY3AtYmc6ICM0RjQ2RTU7IH0gLy8gSW5kaWdvIChzZXBhcmF0ZSBvcHRpb24pXG4gICAgLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1kZWZhdWx0X2RhcmsgeyAtLXFjcC1iZzogIzdDM0FFRDsgfSAvLyBWaW9sZXRcbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXB1cnBsZSAgICAgICB7IC0tcWNwLWJnOiAjREIyNzc3OyB9IC8vIFJvc2VcbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXBpbmsgICAgICAgICB7IC0tcWNwLWJnOiAjRDk3NzA2OyB9IC8vIEFtYmVyXG4gICAgLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1ncmVlbiAgICAgICAgeyAtLXFjcC1iZzogIzA1OTY2OTsgfSAvLyBTYWdlXG4gICAgLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1ibHVlICAgICAgICAgeyAtLXFjcC1iZzogIzAyODRDNzsgfSAvLyBTa3lcbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLWdyZXkgICAgICAgICB7IC0tcWNwLWJnOiAjNDc1NTY5OyB9IC8vIFNsYXRlXG4gICAgLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1vcmFuZ2UgICAgICAgeyAtLXFjcC1iZzogI0UwNUEzODsgfSAvLyBDb3JhbFxuXG4gICAgLy8gcWRuYXByby10YWcgcGFsZXR0ZSBleHBlcmltZW50ICgyMi4wNi4yMDI2KSAtIHN3YXRjaCA9IHRoZSBmbGF0IC0tdGFnLWJnLlxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tdGFnLWdyZXkgICAgICAgICAgeyAtLXFjcC1iZzogI2YwZjFmMjsgfVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tdGFnLWdyZXktMiAgICAgICAgeyAtLXFjcC1iZzogI2M0YzdjYzsgfVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tdGFnLXJlZCAgICAgICAgICAgeyAtLXFjcC1iZzogI2ZlZTNlMzsgfVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tdGFnLXJlZC0yICAgICAgICAgeyAtLXFjcC1iZzogI2ZiYWFhYTsgfVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tdGFnLXllbGxvdyAgICAgICAgeyAtLXFjcC1iZzogI2ZlZjZkYjsgfVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tdGFnLXllbGxvdy0yICAgICAgeyAtLXFjcC1iZzogI2ZkZTU5NDsgfVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tdGFnLWdyZWVuICAgICAgICAgeyAtLXFjcC1iZzogI2UyZmFmMTsgfVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tdGFnLWdyZWVuLTIgICAgICAgeyAtLXFjcC1iZzogIzhiZWNjNTsgfVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tdGFnLWJsdWUgICAgICAgICAgeyAtLXFjcC1iZzogI2U2ZWZmOTsgfVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tdGFnLWJsdWUtMiAgICAgICAgeyAtLXFjcC1iZzogI2I1Y2VlZDsgfVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tdGFnLWJyaWdodC1ibHVlICAgeyAtLXFjcC1iZzogIzg1YTFlYzsgfVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tdGFnLWJyaWdodC1ibHVlLTIgeyAtLXFjcC1iZzogI2Q2ZTBmOTsgfVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tdGFnLXBpbmsgICAgICAgICAgeyAtLXFjcC1iZzogI2Y2ZTFlODsgfVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tdGFnLWRhcmstcGluayAgICAgeyAtLXFjcC1iZzogI2U1YTZiOTsgfVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tdGFnLXB1cnBsZSAgICAgICAgeyAtLXFjcC1iZzogI2ViZTlmYjsgfVxuICAgIC5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tdGFnLWRhcmstcHVycGxlICAgeyAtLXFjcC1iZzogI2M0YmNmMzsgfVxuICAgIC8vIEtpbSdzIGFkZGl0aW9ucyAoMjIuMDYuMjAyNilcbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXFkbmEtcHVycGxlICAgICAgIHsgLS1xY3AtYmc6ICMzYTQyOTA7IH1cbiAgICAucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXFkbmEtb3JhbmdlICAgICAgIHsgLS1xY3AtYmc6ICNmNTllMGI7IH1cbn1cblxuLy8gVGV4dC1hbGlnbm1lbnQgdG9nZ2xlIChmYXNlIEEsIDIwMjYtMDctMTYpOiB0aGUgbGVmdC9jZW50ZXIgc2VnbWVudGVkIHRvZ2dsZVxuLy8gKGxhYmVsX2FsaWduIG1ldGEpIGxpdmluZyBpbnNpZGUgQWJzdHJhY3RJbWFnZSdzIGNvbXBhY3QgaW1hZ2UgdG9vbGJhclxuLy8gKC5mZS1uby1pbWcpLiBJdCBzaXRzIG9uIHRoZSBTRUNPTkQgdG9vbGJhciByb3cgKC5mZS1uby1pbWctcm93KSBzaW5jZSB0aGVcbi8vIGJyaWVmaW5nIGJ1dHRvbiBqb2luZWQ7IG1hcmdpbi1sZWZ0OmF1dG8gcGlucyBpdCB0byB0aGUgZmFyIHJpZ2h0IG9mIHRoYXQgcm93LFxuLy8gd2l0aCBicmllZmluZyBvbiB0aGUgbGVmdC4gTGF5b3V0IG9ubHkgLS0gdGhlIHFkbmFwcm8tYnV0dG9uL3FkbmFwcm8taWNvblxuLy8gY29tcG9uZW50cyBvd24gdGhlaXIgb3duIGxvb2suIFtyb3cgc3BsaXQ6IEtpbSAwMy4wOC4yMDI2XVxuLmZlLW5vLWltZyAuZmUtbGFiZWwtYWxpZ24tdG9vbGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4vLyBGb290ZXJcbi5mZS1uby1mdHIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTFlM2U2O1xufVxuLmZlLW5vLWZ0ci1sZWZ0ICB7IGZsZXg6IDEgMSAwOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4uZmUtbm8tZnRyLXJpZ2h0IHsgZmxleDogMSAxIDA7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IGdhcDogMTJweDsgfVxuLmZlLW5vLWFkdi1idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q4ZGFlYTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICBjb2xvcjogIzQwNDk5YTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlLCBib3JkZXItY29sb3IgMTIwbXMgZWFzZTtcblxuICAgIGkgeyBmb250LXNpemU6IDE2cHg7IH1cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4wNik7IGJvcmRlci1jb2xvcjogI2IwYjhlODsgfVxufVxuLmZlLW5vLXBsYXkge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICM0MDQ5OWE7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoNjQsIDczLCAxNTQsIDAuMzUpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMjBtcyBlYXNlLCBib3gtc2hhZG93IDEyMG1zIGVhc2U7XG5cbiAgICBpIHsgZm9udC1zaXplOiAyMHB4OyBtYXJnaW4tbGVmdDogMnB4OyB9XG4gICAgJjpob3ZlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsgYm94LXNoYWRvdzogMCA2cHggMTZweCByZ2JhKDY0LCA3MywgMTU0LCAwLjQ1KTsgfVxufVxuXG4vKiDilIDilIAgTGl2ZSBcImhvdyBpdCBsb29rcyBpbiB0aGUgYXBwXCIgcHJldmlldyAoZmFzZSAyKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIE1pcnJvcnMgdGhlIGFwcCdzIHF0eXBlcy5zY3NzICguZmxvdy1xdWVzdGlvbi0qKSBhdCBwYW5lbCBzY2FsZS5cbiAgIENvbG9yczogcHJpbWFyeSAjNDA0OTlBLCB5ZXMgIzZCQjZBQiwgbm8gI0RFNTA2Ni4gW0tpbSArIENsYXVkZSAyMDI2LTA2LTE4XSAqL1xuLmZlLW5vLXByZXZpZXcge1xuICAgIG1hcmdpbi10b3A6IGF1dG87ICAgICAgICAgIC8vIHBpbiB0byB0aGUgYm90dG9tIG9mIHRoZSBpbmZvIHBhbmVsXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuXG4gICAgLy8gQWxsb3cgdGhlIGJsb2NrIHRvIHNocmluayBpbnNpZGUgLndtLWluZm8gc28gLmZlLXB2LXNjcmVlbiBiZWxvdyBjYW4gdGFrZVxuICAgIC8vIHdoYXRldmVyIGhlaWdodCB0aGUgcGFuZWwgc3RpbGwgaGFzLCBpbnN0ZWFkIG9mIHN0b3BwaW5nIGF0IGEgZml4ZWQgY2FwXG4gICAgLy8gd2hpbGUgZW1wdHkgcGFuZWwgc3BhY2Ugc2F0IHVuZGVybmVhdGggaXQuIFtLaW0gMDMuMDguMjAyNl1cbiAgICBtaW4taGVpZ2h0OiAwO1xufVxuLmZlLW5vLXByZXZpZXctY2FwIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM5MDk3Yjg7XG59XG5cbi8vIFByZXZpZXcgdXNlcyB0aGUgRlVMTCBwYW5lbCB3aWR0aCAobm8gc2lkZSBwYWRkaW5nKSBzbyBpdCBnZXRzIGFzIG11Y2ggcm9vbSBhc1xuLy8gcG9zc2libGU7IGl0IGFsaWducyB3aXRoIHRoZSBkZXNjcmlwdGlvbiB0ZXh0ICsgY2FwdGlvbiBhYm92ZSAod2hpY2ggYWxyZWFkeSBzaXRcbi8vIGluc2lkZSB0aGUgLndtLWluZm8gMTZweCBndXR0ZXIpLiBWZXJ0aWNhbC1vbmx5IHBhZGRpbmcuIFtLaW0gMjAyNi0wNi0xOV1cbi5mZS1wdiB7XG4gICAgcGFkZGluZzogNHB4IDAgOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAvLyBGbGV4IGNvbHVtbiArIG1pbi1oZWlnaHQ6MCBzbyB0aGUgLmZlLXB2LXNjcmVlbiBjYXJkIGluc2lkZSBjYW4gYmUgYm91bmRlZFxuICAgIC8vIGJ5IHRoZSBwYW5lbCdzIHJlbWFpbmluZyBoZWlnaHQgYW5kIHNjcm9sbCBpbnRlcm5hbGx5LiBbS2ltIDAzLjA4LjIwMjZdXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG59XG4uZmUtcHYtc2NyZWVuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIGFuY2hvciBmb3IgdGhlIGZsb2F0aW5nIGJhcmNvZGUgdG9hc3RcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkOGRhZWE7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBwYWRkaW5nOiAxNHB4O1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDE4cHggcmdiYSgyMCwgMjQsIDYwLCAwLjEwKTtcblxuICAgIC8vIFNjcm9sbCB0aGUgcHJldmlldyBpbnRlcm5hbGx5IHdoZW4gbWFueSBvcHRpb25zIG92ZXJmbG93IHRoZSBtb2RhbCxcbiAgICAvLyB3aXRoIGFuIGludmlzaWJsZSBzY3JvbGxiYXIgc28gZXZlcnkgb3B0aW9uIHN0YXlzIHJlYWNoYWJsZS4gW0tpbSAyMi4wNi4yMDI2XVxuICAgIC8vXG4gICAgLy8gVGhlIG9sZCBoYXJkIDYwdmggY2FwIG1hZGUgdGhlIGNhcmQgc3RvcCBzaG9ydCB3aGlsZSB0aGUgaW5mbyBwYW5lbCBzdGlsbFxuICAgIC8vIGhhZCBlbXB0eSBzcGFjZSBiZWxvdyBpdCwgc28gbG9uZyBvcHRpb24gbGlzdHMgd2VyZSBjdXQgb2ZmIGZvciBubyByZWFzb24uXG4gICAgLy8gSXQgbm93IGdyb3dzIHRvIGl0cyBjb250ZW50IGFuZCBpcyBib3VuZGVkIGJ5IHRoZSBwYW5lbCBpbnN0ZWFkIChmbGV4IGNoYWluXG4gICAgLy8gLmZlLW5vLXByZXZpZXcgLT4gLmZlLXB2IC0+IGhlcmUpLCBzdGlsbCBzY3JvbGxpbmcgaW50ZXJuYWxseSB3aGVuIHRoZVxuICAgIC8vIGNvbnRlbnQgaXMgdGFsbGVyIHRoYW4gdGhlIHJvb20gYXZhaWxhYmxlLiBbS2ltIDAzLjA4LjIwMjZdXG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDA7IGhlaWdodDogMDsgZGlzcGxheTogbm9uZTsgfVxufVxuLy8gQmFyZSBlbWJlZGRlZCB2YXJpYW50IChmYXNlIDEsIGZvcm1fY2FyZCBjaGlsZHN0YWNrIG1pZ3JhdGlvbiwgMTYuMDcuMjAyNik6XG4vLyBRdWVzdGlvblByZXZpZXcgcmVuZGVyZWQgYXMgYSBDSElMRCBpbnNpZGUgYSBmb3JtIGNhcmQncyBvd24gLmZlLXB2LWZvcm1jYXJkLWl0ZW1cbi8vIChiYXJlIHByb3ApLiBObyBib3JkZXIvc2hhZG93L2JhY2tncm91bmQgYm94IGFuZCBubyBvd24gbWF4LWhlaWdodC9zY3JvbGwg4oCUIHRoZVxuLy8gcXVlc3Rpb24gZmxvd3MgbmF0dXJhbGx5IGluc2lkZSB0aGUgY2FyZCwgbm90IGFzIGEgc2Nyb2xsaW5nIGNhcmQtaW4tY2FyZC5cbi5mZS1wdi1xdWVzdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBhbmNob3IgZm9yIHRoZSBmbG9hdGluZyBiYXJjb2RlIHRvYXN0LCBsaWtlIC5mZS1wdi1zY3JlZW5cbn1cbi5mZS1wdi10aXRsZSB7IGNvbG9yOiAjNDA0OTlBOyB9XG4vLyBUZXh0LWFsaWdubWVudCB0b2dnbGUgKGZhc2UgQSwgMjAyNi0wNy0xNik6IGxhYmVsX2FsaWduID09PSAnY2VudGVyJyBjZW50ZXJzXG4vLyB0aGUgdGl0bGUgKyBzdWJ0ZXh0IHRvZ2V0aGVyIGluIHRoZSBsaXZlIHByZXZpZXcuIExlZnQgaXMgdGhlIGRlZmF1bHQgKG5vXG4vLyBjbGFzcyBuZWVkZWQg4oCUIG1hdGNoZXMgdGhlIGJsb2NrJ3MgbmF0dXJhbCBhbGlnbm1lbnQpLlxuLmZlLXB2LXRpdGxlLS1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5mZS1wdi1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cbi5mZS1wdi1zdWIge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgb3BhY2l0eTogMC44NTtcbn1cbi5mZS1wdi1ib2R5IHsgbWFyZ2luLXRvcDogMTJweDsgfVxuXG4vLyBKYSAvIE5lZS4gLmZlLXB2LWJ0bi8tLXllcy8tLW5vIGFyZSB0aGUgcGxhaW4gc3RhdGljIHN3YXRjaGVzIHN0aWxsIHVzZWQgYnkgdGhlXG4vLyBmb3JtLWNhcmQgY2hpbGQgbWluaSBtb2NrIChkZWxpYmVyYXRlbHkgc2ltcGxlLCBub24taW50ZXJhY3RpdmUsIHNlZVxuLy8gZm9ybUNoaWxkS2luZCgpICd5ZXNubycgYnJhbmNoIGJlbG93KS4gVGhlIG1haW4gWWVzL05vIHByZXZpZXcgKFBoYXNlIDQgWWVzL05vXG4vLyBvdmVyaGF1bCwgMjAyNi0wNy0xMSkgdXBncmFkZWQgdG8gdGhlIHJlYWwgcWRuYXByby1hbnN3ZXItYnV0dG9uLCB3cmFwcGVkIHNvIHRoZVxuLy8gb3B0aW9uYWwgXCJjb21tZW50IG9uIE5vXCIgbW9jayBjYW4gc2l0IGJlbG93IHRoZSBidXR0b24gcm93LiBbS2ltXVxuLmZlLXB2LXllc25vLXdyYXAgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4uZmUtcHYteWVzbm8geyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgfVxuLmZlLXB2LXllc25vIHFkbmFwcm8tYW5zd2VyLWJ1dHRvbiB7IGZsZXg6IDEgMSAwOyBtaW4td2lkdGg6IDA7IH1cbi8vIDMtYnV0dG9uIGxheW91dCAoTi52LnQuIGVuYWJsZWQpIOKAlCBzaWRlLWJ5LXNpZGUgYXQgZmxleDoxIDEgMCBzcXVlZXplZCBlYWNoXG4vLyBidXR0b24gKGljb24gKyB0aWNrICsgcGFkZGluZyBsZWF2ZSBhbG1vc3Qgbm8gcm9vbSBmb3IgdGhlIGxhYmVsIGF0IH4xLzNcbi8vIHdpZHRoKSwgdHJ1bmNhdGluZyB0aGUgdGV4dCBpbGxlZ2libHkgKFwiWWVcIiAvIFwiTm9cIiAvIFwiTm90IGFwcC4uLlwiLCBLaW0nc1xuLy8gdGVzdCBmZWVkYmFjayAyMDI2LTA3LTExKS4gU3RhY2sgZnVsbC13aWR0aCByb3dzIGluc3RlYWQ6IDIgYnV0dG9ucyAocGxhaW5cbi8vIHllcy9ubykga2VlcCB0aGUgc2lkZS1ieS1zaWRlIHJvdyBhYm92ZSB1bmNoYW5nZWQuIGBmbGV4OiAwIDAgYXV0b2AgKG5vdCB0aGVcbi8vIHJvdydzIDEgMSAwKSBsZXRzIGVhY2ggYnV0dG9uIHNpemUgdG8gaXRzIG93biBuYXR1cmFsIGhlaWdodCBpbiB0aGUgY29sdW1uXG4vLyBpbnN0ZWFkIG9mIGJlaW5nIHN0cmV0Y2hlZCB0byBhbiBlcXVhbCAxLzMgc2hhcmUgb2YgdmVydGljYWwgc3BhY2UsIGFuZFxuLy8ga2VlcHMgcWRuYXByby1hbnN3ZXItYnV0dG9uJ3Mgb3duIGB3aWR0aDogMTAwJWAgaW4gY2hhcmdlIG9mIHRoZSB3aWR0aC4gW0tpbV1cbi5mZS1wdi15ZXNuby0tc3RhY2tlZCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5mZS1wdi15ZXNuby0tc3RhY2tlZCBxZG5hcHJvLWFuc3dlci1idXR0b24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuLmZlLXB2LWJ0biB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBwYWRkaW5nOiAxMnB4IDhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG4uZmUtcHYtYnRuLS15ZXMgeyBiYWNrZ3JvdW5kOiAjNkJCNkFCOyB9XG4uZmUtcHYtYnRuLS1ubyAgeyBiYWNrZ3JvdW5kOiAjREU1MDY2OyB9XG5cbi8vIEFudHdvb3Jkb3B0aWVzXG4uZmUtcHYtb3B0aW9ucyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNnB4OyB9XG4vLyBCdXR0b25zLXdyYXA6IDEgY29sdW1uIChkZWZhdWx0KSBvciAyIGNvbHVtbnMsIGRyaXZlbiBieSB0aGUgYnV0dG9uX2NvbHVtbnMgc2V0dGluZy4gW0tpbSAyMS4wNi4yMDI2XVxuLmZlLXB2LW9wdHMtd3JhcCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNnB4OyB9XG4uZmUtcHYtb3B0cy13cmFwLmZlLXB2LW9wdHMtLWNvbHMyIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IDZweDsgfVxuLmZlLXB2LW9wdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiAjNDA0OTlBO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgcGFkZGluZzogMTBweCAyOHB4IDEwcHggMTRweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjEycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTJzIGVhc2U7XG5cbiAgICAmOmhvdmVyIHsgb3BhY2l0eTogMC43NTsgfVxufVxuLy8gUGVyLW9wdGlvbiBpY29uIChGYXNlIDUgTWVlcmtldXplIG92ZXJoYXVsLCAxMS4wNy4yMDI2KSDigJQgc2l0cyBiZWZvcmUgdGhlIGxhYmVsLlxuLmZlLXB2LW9wdC1pY29uIHsgZmxleC1zaHJpbms6IDA7IH1cbi8vIFNlbWFudGljIG9wdGlvbiBjb2xvdXIg4oCUIG92ZXJyaWRlcyB0aGUgZGVmYXVsdCBwdXJwbGUgYmFja2dyb3VuZC4gU2FtZVxuLy8gY2xvc2VkIHBhbGV0dGUgKyB0b2tlbnMgYXMgdGhlIHFkbmFwcm8tYW5zd2VyLW9wdGlvbiBlZGl0b3Igcm93IChpY29uIGJhZGdlKVxuLy8gYW5kIHRoZSBPcHRpb25BcHBlYXJhbmNlIHBvcG92ZXIgc3dhdGNoZXMsIHNvIHRoZSBjb2xvdXIgcmVhZHMgY29uc2lzdGVudGx5XG4vLyBlbmQtdG8tZW5kIChyb3cgLT4gcG9wb3ZlciAtPiBsaXZlIHByZXZpZXcpLiBbS2ltIDExLjA3LjIwMjZdXG4uZmUtcHYtb3B0LS1jb2xvci1wb3NpdGl2ZSAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQsICM0MjhiNmUpOyB9XG4uZmUtcHYtb3B0LS1jb2xvci13YXJuaW5nICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtd2Fybi1hbWJlci01MDAsICNkOTc3MDYpOyB9XG4uZmUtcHYtb3B0LS1jb2xvci1uZWdhdGl2ZSAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTsgfVxuLmZlLXB2LW9wdC0tY29sb3ItbmV1dHJhbF9hbHQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ibHVlLXRleHQsICM2YThhYjQpOyB9XG4vLyBTY29yZSAvIE5QUyDigJQgcWRuYXByby1zY29yZS1zY2FsZSBzaXRzIGZsdXNoIGluIHRoZSBwcmV2aWV3IGNhcmQsIHNhbWVcbi8vIHRyZWF0bWVudCBhcyB0aGUgbXVsdGktcmFkaW8gZHJvcGRvd24gKC5mZS1wdi1zZWxlY3QpIGFib3ZlLlxuLy8gW1BoYXNlIDIgU2NvcmUvTlBTIG92ZXJoYXVsLCAyMDI2LTA3LTExXVxuLmZlLXB2LXNjb3JlIHtcbiAgICBwYWRkaW5nOiA2cHggMnB4O1xuXG4gICAgcWRuYXByby1zY29yZS1zY2FsZSB7IGRpc3BsYXk6IGJsb2NrOyB9XG59XG5cbi8vIEF0dGFjaGVkIFwiY29tbWVudCBvbiBsb3cgc2NvcmVcIiBtb2NrIOKAlCBhcHBlYXJzIHVuZGVyIHRoZSBzY2FsZSwgbGl2ZSxcbi8vIHdoZW4gY29tbWVudF9lbmFibGVkIGlzIG9uIGFuZCB0aGUgc2FuZGJveC1zZWxlY3RlZCB2YWx1ZSBpcyA8PSB0aGVcbi8vIGNvbmZpZ3VyZWQgdGhyZXNob2xkLiBBbnN3ZXJzIEtpbSdzIFwibm90IHZpc2libGUgaW4gcHJldmlld1wiIHJldmlldyBub3RlLlxuLy8gW1BoYXNlIDIgU2NvcmUvTlBTIG92ZXJoYXVsIHNldHRpbmdzLW1vZGFsIHJldmlldywgMjAyNi0wNy0xMV1cbi5mZS1wdi1jb21tZW50IHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBkYXNoZWQgcmdiYSgxODAsIDE4OCwgMjIwLCAwLjU1KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG59XG4uZmUtcHYtY29tbWVudC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICMxZjI0MzA7XG59XG5cbi8vIEZlZWRiYWNrIChlbW9qaSkg4oCUIHNtaWxleSBzY2FsZSByb3cgaW4gdGhlIGxpdmUgcHJldmlldy4gTWlycm9ycyB0aGUgYXBwJ3Ncbi8vIC5mbG93LXNtaWxlLXJvdyAoZmFjZXMgY2VudGVyZWQ7IHRhcCBzd2FwcyBfVCAtPiBfRikuIFswNS4wNy4yMDI2XVxuLmZlLXB2LXNtaWxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogNnB4IDJweDtcbn1cbi5mZS1wdi1zbWlsZS1mYWNlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTJzIGVhc2U7XG5cbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogNDRweDtcbiAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmOmhvdmVyIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA4KTsgfVxufVxuLmZlLXB2LXNtaWxlLWZhY2UtLWFjdGl2ZSB7IHRyYW5zZm9ybTogc2NhbGUoMS4xNCk7IH1cbi5mZS1wdi1zbWlsZS1mYWNlLS1hY3RpdmU6aG92ZXIgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMTQpOyB9XG5cbi8vIFJlYWwgb3B0aW9uIHdpdGhvdXQgYSBsYWJlbCDigJQgc2hvdyBpdCBhcyBhIGNsZWFybHktZW1wdHkgcGxhY2Vob2xkZXIuIFtLaW0gMjEuMDYuMjAyNl1cbi5mZS1wdi1vcHQtLWVtcHR5IHsgZm9udC1zdHlsZTogaXRhbGljOyB9XG4uZmUtcHYtb3B0LS1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxGMDEyQ1wiO1xuICAgICAgICBmb250LWZhbWlseTogXCJNYXRlcmlhbCBEZXNpZ24gSWNvbnNcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cbn1cblxuLy8gRW1wdHkgc3RhdGUg4oCUIHRoZSBub2RlIGhhcyB6ZXJvIGFuc3dlciBvcHRpb25zIHlldC4gTWlycm9ycyB0aGUgbXV0ZWQtaGludFxuLy8gbG9vayBvZiAuZmUtcHYtdW5pdHMtZW1wdHkgLyAuZmUtcHYtZm9ybWNhcmQtZW1wdHkgZWxzZXdoZXJlIGluIHRoaXMgcHJldmlldyxcbi8vIHdpdGggYW4gZXh0cmEgdGl0bGUgbGluZSBzaW5jZSB0aGlzIGlzIHRoZSB3aG9sZSBib2R5IGNvbnRlbnQgaGVyZSAobm90IGFcbi8vIG5lc3RlZCByb3cpLiBbS2ltIDExLjA3LjIwMjZdXG4uZmUtcHYtb3B0aW9ucy1lbXB0eSB7XG4gICAgcGFkZGluZzogMTBweCAycHg7XG59XG4uZmUtcHYtb3B0aW9ucy1lbXB0eS10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMyYTJjM2E7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuLmZlLXB2LW9wdGlvbnMtZW1wdHktaGludCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6ICM5YWEwYmQ7XG59XG5cbi8qIE11bHRpLXJhZGlvIFwiVG9vbiBhbHMgZHJvcGRvd25cIiBwcmV2aWV3ID0gdGhlIFJFQUwgcWRuYXByby1zZWxlY3QgKGl0IGJyaW5nc1xuICAgaXRzIG93biBzdHlsaW5nKS4gSnVzdCBsZXQgaXQgc2l0IGZsdXNoIGluIHRoZSBwcmV2aWV3IGNhcmQuIFtLaW0gMjAyNi0wNi0yMF0gKi9cbi5mZS1wdi1zZWxlY3QgeyBkaXNwbGF5OiBibG9jazsgfVxuXG4vKiAtLS0tIEltcG9ydCBhbnN3ZXIgb3B0aW9ucyAobW9kYWwgKyB0cmlnZ2VyKSAtLS0tIFtLaW0gMjAyNi0wNi0yMF0gKi9cbi8vIFwiQW50d29vcmRvcHRpZXNcIiBoZWFkZXIgcm93OiBsYWJlbCBsZWZ0LCBcIk9wdGllcyBpbXBvcnRlcmVuXCIgcmlnaHQuIFtLaW0gMjEuMDYuMjAyNl1cbi5mZS1hbnN3ZXJvcHRzLWhlYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbjogMjBweCAwIDhweDtcblxuICAgIC5xZG5hcHJvLW1vZGFsLWxhYmVsIHsgbWFyZ2luOiAwOyB9XG59XG4vLyBXcmFwcyB0aGUgaGVhZGVyLXJpZ2h0IGJ1dHRvbnMgKGltcG9ydCB0cmlnZ2VyICsgdGhlIFwiU2VsZWN0XCIgYnVsay1tb2RlIGVudHJ5XG4vLyBwb2ludCkgc28ganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuIGFib3ZlIHN0aWxsIHNwbGl0cyBsYWJlbCB2cyBUSElTXG4vLyBncm91cCwgbm90IGVhY2ggaW5kaXZpZHVhbCBidXR0b24uIE9ubHkgcmVuZGVyZWQgd2hpbGUgc2VsZWN0IG1vZGUgaXMgT0ZGIOKAlFxuLy8gb25jZSBhY3RpdmUgdGhpcyB3aG9sZSBncm91cCBoaWRlcyBhbmQgLmZlLWJ1bGstYWN0aW9ucy1yb3cgKGJlbG93KSB0YWtlc1xuLy8gb3Zlci4gW1BoYXNlIDIgU2NvcmUvTlBTIG92ZXJoYXVsLCAyMDI2LTA3LTExOyByZWdyb3VwZWQgS2ltIDEyLjA3LjIwMjZdXG4uZmUtYW5zd2Vyb3B0cy1hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG59XG4uZmUtaW1wb3J0LXRyaWdnZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIHBhZGRpbmc6IDZweCA0cHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6ICM0MDQ5OUE7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgIC5tZGkgeyBmb250LXNpemU6IDE2cHg7IH1cbiAgICAmOmhvdmVyIHsgY29sb3I6ICMyZjM2N2E7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG59XG4uZmUtaW1wb3J0LXRyaWdnZXItLWhlYWQgeyBtYXJnaW4tdG9wOiAwOyB9XG5cbi8vIEJ1bGstYWN0aW9uIHRvb2xiYXI6IGl0cyBvd24gcm93IHVuZGVyIHRoZSBcIkFudHdvb3Jkb3B0aWVzXCIgdGl0bGUsIHNob3duIG9ubHlcbi8vIHdoaWxlIHNlbGVjdCBtb2RlIGlzIGFjdGl2ZS4gV2FzIHByZXZpb3VzbHkgY3JhbW1lZCBvbnRvIHRoZSBoZWFkZXIgbGluZVxuLy8gYWxvbmdzaWRlIHRoZSB0aXRsZSArIEltcG9ydCBvcHRpb25zIOKAlCBLaW0ncyBmZWVkYmFjayAxMi4wNy4yMDI2LiBBIHN1YnRsZVxuLy8gdGludGVkIHN0cmlwIChzYW1lIHB1cnBsZSBmYW1pbHkgYXMgLmZlLWdyYWRlLXJvdy0tY2hlY2tlZCkgc2V0cyBpdCBhcGFydFxuLy8gZnJvbSB0aGUgcGxhaW4gb3B0aW9uIGxpc3QgYmVsb3cgaXQuIENhbmNlbC9MaW5rIHNlbGVjdGlvbi9Vbmxpbmsgc2VsZWN0aW9uXG4vLyBhcmUgcWRuYXByby1idXR0b24gbm93ICh3ZXJlIHRleHQtbGluayAuZmUtaW1wb3J0LXRyaWdnZXIgYnV0dG9ucykuIFtLaW1dXG4uZmUtYnVsay1hY3Rpb25zLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW46IDAgMCA4cHg7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4wNik7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcblxuICAgIHFkbmFwcm8taWNvbiB7IG1hcmdpbi1yaWdodDogNHB4OyB9XG59XG5cbi8vIEJ1bGstc2VsZWN0YWJsZSBhbnN3ZXItb3B0aW9uIHJvdzogb3B0aW9uYWwgc2VsZWN0IGNoZWNrYm94ICsgdGhlIHNoYXJlZFxuLy8gcWRuYXByby1hbnN3ZXItb3B0aW9uLiBVc2VkIGZvciBncmFkZV9ub2RlL25wc19ub2RlIChyZWFkb25seSBoYXJkLXZhbHVlXG4vLyBsYWJlbCwgbm8gZGVsZXRlL2RyYWcg4oCUIHNlZSBMaW5rLnZ1ZSdzIGlzSGFyZFZhbHVlKSBBTkQsIHNpbmNlIHRoZVxuLy8gbGlua3MtZWRpdG9yIHJldmlldyBiYXRjaCAoMjAyNi0wNy0xMSksIE1lZXJrZXV6ZSByb3dzIGluIHJhZGlvIG1vZGUgKHN0aWxsXG4vLyBkcmFnZ2FibGUvZWRpdGFibGUvcmVtb3ZhYmxlIHRoZXJlKS4gW1BoYXNlIDIgU2NvcmUvTlBTIG92ZXJoYXVsLCAyMDI2LTA3LTExXVxuLmZlLWdyYWRlLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dDtcblxuICAgIC8vIFdJRFRIIEJVRyBGSVggKGxpbmtzLWVkaXRvciByZXZpZXcsIDIwMjYtMDctMTEpOiBldmVyeSBvdGhlciBub2RlIHR5cGUnc1xuICAgIC8vIHJvdyByZW5kZXJzIHFkbmFwcm8tYW5zd2VyLW9wdGlvbiBhcyBhIERJUkVDVCBjaGlsZCBvZiB0aGUgcGxhaW4gYmxvY2tcbiAgICAvLyA8dWwgY2xhc3M9XCJmZS1pdGVtc1wiPiwgc28gaXQgZmlsbHMgdGhlIGZ1bGwgd2lkdGggZm9yIGZyZWUuIEhlcmUgaXQncyBvbmVcbiAgICAvLyBsZXZlbCBkZWVwZXIsIGluc2lkZSBUSElTIGZsZXggcm93IOKAlCBhbmQgYnkgZGVmYXVsdCBhIGZsZXggaXRlbSBvbmx5XG4gICAgLy8gc2l6ZXMgdG8gaXRzIGNvbnRlbnQgKGZsZXgtZ3JvdzogMCksIHNvIGl0IHNocmFuayB0byByb3VnaGx5IGhhbGYgd2lkdGguXG4gICAgLy8gVGhlIG9idmlvdXMgZml4IGlzIGEgYC5mZS1ncmFkZS1yb3ctbGlua2AgY2xhc3Mgb24gPGxpbmtqZT4gaW4gTGlua3MudnVlLFxuICAgIC8vIGJ1dCBxZG5hLWFuc3dlci1vcHRpb24uanMncyBfcmVuZGVyKCkgZG9lcyBgdGhpcy5jbGFzc05hbWUgPSBbLi4uXWAgb25cbiAgICAvLyBldmVyeSByZW5kZXIsIHdoaWNoIFdJUEVTIGFueSBjbGFzcyB0aGUgaG9zdCB0ZW1wbGF0ZSBwdXQgdGhlcmUg4oCUXG4gICAgLy8gdGFyZ2V0aW5nIHRoZSBDVVNUT00gRUxFTUVOVCBUQUcgTkFNRSBpbnN0ZWFkIHN1cnZpdmVzIHRoYXQgcmV3cml0ZVxuICAgIC8vICh0aGUgY29tcG9uZW50IG5ldmVyIHRvdWNoZXMgaXRzIG93biB0YWcgbmFtZSkuIFtLaW1dXG4gICAgcWRuYXByby1hbnN3ZXItb3B0aW9uIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG59XG4uZmUtZ3JhZGUtcm93LS1jaGVja2VkIHsgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4wNik7IH1cbi8vIFdhcyBhIHJhdyA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCI+IOKAlCByZWFkIGFzIFwibm90IG5ldGplcyB2ZXJ0aWNhbGx5IGNlbnRlcmVkXCJcbi8vIGFnYWluc3QgdGhlIGFuc3dlci1vcHRpb24gcm93IG5leHQgdG8gaXQgKEtpbSdzIGZlZWRiYWNrIDEyLjA3LjIwMjYpLiBOb3dcbi8vIHFkbmFwcm8tY2hlY2tib3gsIHdoaWNoIGlzIGRpc3BsYXk6aW5saW5lLWZsZXggKyBzZWxmLWNlbnRlcmluZyBieSBkZXNpZ25cbi8vIChzZWUgX2NoZWNrYm94LnNjc3MpOyB0aGlzIHdyYXBwZXIgb25seSBuZWVkcyB0byBjZW50ZXIgVEhBVCB3aXRoaW4gdGhlXG4vLyBzYW1lIDIwcHggaGl0LWJveCB0aGUgcm93IGFscmVhZHkgcmVzZXJ2ZWQuIFtLaW1dXG4uZmUtZ3JhZGUtc2VsZWN0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbn1cblxuLy8gUGVyLXJvdyB3cmFwcGVyIGFyb3VuZCBxZG5hcHJvLWFuc3dlci1vcHRpb24gKEZhc2UgNSBNZWVya2V1emUgcGVyLW9wdGlvblxuLy8gYXBwZWFyYW5jZSwgMTEuMDcuMjAyNikuIEFMV0FZUyBwcmVzZW50IOKAlCBmb3IgZXZlcnkgbm9kZSB0eXBlJ3Mgcm93LCBub3Rcbi8vIGp1c3QgTWVlcmtldXplIOKAlCBzbyBMaW5rLnZ1ZSBoYXMgYSBzdGFibGUgcGxhY2UgdG8gYXR0YWNoIHRoZSBhcHBlYXJhbmNlXG4vLyB0cmlnZ2VyICsgcG9wb3ZlciB3aXRob3V0IGNoYW5naW5nIHRoZSBzaW5nbGUtcm9vdC1lbGVtZW50IGF0dHJzXG4vLyBmYWxsdGhyb3VnaCAoaWQvZHJhZ2dhYmxlIG11c3Qgc3RpbGwgbGFuZCBPTiBxZG5hcHJvLWFuc3dlci1vcHRpb24gaXRzZWxmXG4vLyBmb3IgTGlzdC52dWUncyBuYXRpdmUgRG5EOyBMaW5rLnZ1ZSBzZXRzIGluaGVyaXRBdHRyczpmYWxzZSArIGFuIGV4cGxpY2l0XG4vLyB2LWJpbmQ9XCIkYXR0cnNcIiBvbiB0aGUgcWRuYXByby1hbnN3ZXItb3B0aW9uIHRhZyB0byBndWFyYW50ZWUgdGhhdCkuXG4vLyBwb3NpdGlvbjogc3RhdGljIGlzIGRlbGliZXJhdGUg4oCUIHRoaXMgd3JhcHBlciBtdXN0IE5PVCBiZWNvbWVcbi8vIHFkbmFwcm8tYW5zd2VyLW9wdGlvbidzIG9mZnNldFBhcmVudCwgb3IgTGlzdC52dWUncyBkcmFnIGRyb3AtbGluZSBtYXRoXG4vLyAocmVhZHMgLm9mZnNldFRvcCByZWxhdGl2ZSB0byB0aGUgc2Nyb2xsaW5nIDx1bD4pIHdvdWxkIGJyZWFrLiBPbmx5IHRoZVxuLy8gc21hbGwgLmZlLWFuc3dlci1hcHBlYXJhbmNlIHNwYW4gKGZvciB0aGUgcG9wb3ZlcikgaXMgcG9zaXRpb25lZC5cbi5mZS1hbnN3ZXItcm93LXdyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAvLyBTYW1lIHdpZHRoIGZpeCAuZmUtZ3JhZGUtcm93IGFscmVhZHkgbmVlZGVkIGFib3ZlOiBuZXN0ZWQgb25lIGxldmVsXG4gICAgLy8gZGVlcGVyIHRoYW4gdGhlIGJhcmUgPHVsPiBjaGlsZCwgc28gaXQgbm8gbG9uZ2VyIGdldHMgZnVsbCB3aWR0aCBmb3JcbiAgICAvLyBmcmVlIGJ5IGRlZmF1bHQgKGZsZXgtaXRlbSBjb250ZW50LXNpemluZykuIFRhcmdldCB0aGUgdGFnIG5hbWUgKG5vdCBhXG4gICAgLy8gY2xhc3MpIHNpbmNlIHFkbmEtYW5zd2VyLW9wdGlvbi5qcydzIF9yZW5kZXIoKSBvdmVyd3JpdGVzIGl0cyBvd25cbiAgICAvLyBjbGFzc05hbWUgd2hvbGVzYWxlIG9uIGV2ZXJ5IHJlbmRlci5cbiAgICBxZG5hcHJvLWFuc3dlci1vcHRpb24ge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbn1cblxuLy8gU3VidGxlIHBlci1yb3cgYWZmb3JkYW5jZSB0byBvcGVuIHRoZSBpY29uL2NvbG91ciBwb3BvdmVyIOKAlCBvbmx5IHJlbmRlcmVkXG4vLyBmb3IgTWVlcmtldXplJ3MgcmVhbCAoZGF0YXBvaW50LWJhY2tlZCkgb3B0aW9uIHJvd3MsIHNlZSBMaW5rLnZ1ZVxuLy8gc2hvd0FwcGVhcmFuY2VUcmlnZ2VyKCkuXG4uZmUtYW5zd2VyLWFwcGVhcmFuY2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cbi8vIFRhZyBvbiB0aGUgc3ludGhldGljIHBlbmRpbmctbnZ0IHJvdyAoTGluay52dWUsIGJ1Z2ZpeCAxMi4wNy4yMDI2KTogbWFya3MgdGhlXG4vLyBsaXZlLXByZXZpZXcgYW5zd2VyLW9wdGlvbiByb3cgYXMgXCJub3QgeWV0IHJlYWxcIiB1bnRpbCB0aGUgd2l6YXJkJ3MgU2F2ZVxuLy8gYnV0dG9uIGFjdHVhbGx5IGNyZWF0ZXMgdGhlIGJhY2tpbmcgbGluayBzZXJ2ZXItc2lkZS4gU2FtZSBzbWFsbC1tdXRlZFxuLy8gbGFuZ3VhZ2UgYXMgLmZlLXNjYWxlLXN5bmMtaGludCwgYnV0IGFuIGlubGluZSBwaWxsIChzaXRzIG5leHQgdG8gdGhlIHJvdyxcbi8vIG5vdCBhIGZ1bGwtd2lkdGggcGFyYWdyYXBoKSBzaW5jZSAuZmUtYW5zd2VyLXJvdy13cmFwIGlzIGEgZmxleCByb3cuXG4uZmUtYW5zd2VyLXBlbmRpbmctdGFnIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjb2xvcjogdmFyKC0tcWRuYS1jb2xvci10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwNywgMTE0LCAxMjgsIDAuMSk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgcGFkZGluZzogM3B4IDhweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZmUtYW5zd2VyLWFwcGVhcmFuY2UtdHJpZ2dlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjZweDtcbiAgICBoZWlnaHQ6IDI2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjOGE4ZmI4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcywgY29sb3IgMTIwbXMsIGJvcmRlci1jb2xvciAxMjBtcztcblxuICAgICY6aG92ZXIsXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2VlZjBmZjtcbiAgICAgICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2Q0ZDhlZTtcbiAgICB9XG59XG5cbi8vIEJyb3dzZSBtb2RhbCBvdmVyIEFMTCBhbnN3ZXIgb3B0aW9ucyAoT3B0aW9uQXBwZWFyYW5jZU92ZXJsYXkudnVlKS5cbi8vIFJFREVTSUdOIHY3IChLaW0sIGRlZmluaXRpdmUgZGVzaWduICsgc2tldGNoLCAxMi4wNy4yMDI2KTogcmVwbGFjZXMgdjQnc1xuLy8gXCJvbmUgY2VudGVyZWQgc21hbGwgbW9kYWwgcGVyIG9wdGlvbiwgaWNvbi1waWNraW5nIGRlbGVnYXRlZCB0byBhIG5lc3RlZFxuLy8gcG9wb3ZlclwiIHdpdGggT05FIG1vZGFsLXNpemUtbGFyZ2UsIHR3by1jb2x1bW4gbGF5b3V0IOKAlCBldmVyeSBvcHRpb24gb2Zcbi8vIHRoZSBub2RlIGlzIGJyb3dzYWJsZSBpbiBvbmUgc2l0dGluZywgYW5kIHRoZSBpY29uIHBhbmVsIGlzIG5vdyBhXG4vLyBQRVJNQU5FTlQgcGFydCBvZiB0aGlzIG1vZGFsJ3Mgb3duIGJvZHkgKG5vIG1vcmUgb3ZlcmxheS1vdmVyLW1vZGFsKS5cbi8vIFRoZSBjb21wb25lbnQgc3RpbGwgcmVuZGVycyB0aGUgRVhBQ1QgcWRuYXByby1tb2RhbCBtYXJrdXAvY2xhc3Nlc1xuLy8gKC5tb2RhbC1iYWNrZHJvcCA+IC5tb2RhbC1kaWFsb2cgPiAubW9kYWwtd2luZG93ICsgaGVhZGVyL2JvZHkvZm9vdGVyKSBzb1xuLy8gYWxsIGNhcmQgY2hyb21lIGNvbWVzIDE6MSBmcm9tIF9tb2RhbC5zY3NzICg8cWRuYXByby1tb2RhbD4gdGhlIHdlYlxuLy8gY29tcG9uZW50IGl0c2VsZiBzdGlsbCBjYW4ndCBob3N0IHRoaXM6IGl0IGNsb25lcyBpdHMgbGlnaHQgRE9NIG9uXG4vLyByZW5kZXIsIGtpbGxpbmcgZXZlcnkgVnVlIGxpc3RlbmVyOyBrbm93biBnb3RjaGEpLiBPbmx5IGFkZGl0aW9ucyBoZXJlOlxuLy8gdGhlIHotaW5kZXggYnVtcCBhbmQgdGhlIGFwcGVhcmFuY2Utc3BlY2lmaWMgaW5uYXJkcyBiZWxvdy5cbi8vIHotaW5kZXggOTM1MCBjbGVhcnMgdGhlIHdpemFyZCBtb2RhbCAoOTAwMCksIGl0cyBkcm9wZG93biBsYXllciAoOTIwMCkgYW5kXG4vLyB0aGUgc2hhcmVkIGNvbmZpcm0gZGlhbG9nJ3MgYnVtcCAoOTMwMCk6IGhpZ2hlc3Qgc2xvdCBiZWxvdyB0b2FzdHMgKDk5OTkpLlxuLmZlLW9hLW1vZGFsIHtcbiAgICB6LWluZGV4OiA5MzUwO1xufVxuXG4vLyBUd28tY29sdW1uIGJvZHkuIEtpbSdzIGV4cGxpY2l0IGZlZWRiYWNrIG9uIHY0OiBcImFsbGVzIHppdCBvcCBlbGthYXJcbi8vIGdlcHJvcHRcIiDigJQgZ2VuZXJvdXMgZ2FwcyBib3RoIGJldHdlZW4gdGhlIHR3byBjb2x1bW5zIGFuZCBiZXR3ZWVuIGVhY2hcbi8vIGJsb2NrIGluc2lkZSB0aGUgbGVmdCBjb2x1bW4gKHNlZSAuZmUtb2EtYnJvd3NlLWxlZnQgYmVsb3cpLlxuLmZlLW9hLWJyb3dzZS1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMjhweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMDtcbn1cbi5mZS1vYS1icm93c2UtbGVmdCB7XG4gICAgZmxleDogMCAwIDI5NnB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAyMnB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgcGFkZGluZzogMnB4IDRweCAycHggMnB4O1xufVxuLmZlLW9hLWJyb3dzZS1yaWdodCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbn1cblxuLy8gTGl2ZSBwcmV2aWV3IGF0IHRoZSB0b3Agb2YgdGhlIGxlZnQgY29sdW1uOiB0aGUgc3RhZ2VkIGljb24vbGFiZWwvY29sb3VyXG4vLyBhcyB0aGUgUkVBTCBhbnN3ZXItYnV0dG9uIGNvbXBvbmVudCAodGhlIG9uZSBhY3R1YWxseSB1c2VkIGluIHRoZSBQV0Fcbi8vIHN1cnZleS9hdWRpdCBmbG93KSwgb24gYSBzdWJ0bGUgY29udHJhc3Rpbmcgc3VyZmFjZSBzbyBpdCByZWFkcyBhc1xuLy8gXCJ2b29yYmVlbGRcIi4gRGVsaWJlcmF0ZWx5IGludGVyYWN0aXZlOiB0aGUgYXV0aG9yIGNhbiBjbGljayBhbmQgZmVlbCBpdC5cbi5mZS1vYS1wcmV2aWV3IHtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2Y0ZjVmYjtcblxuICAgIC8vIFByZXZlbnRzIGEgRk9VQyBvZiB1bnN0eWxlZCBpbmxpbmUgY29udGVudDogcWRuYXByby1hbnN3ZXItYnV0dG9uJ3NcbiAgICAvLyBvd24gZGlzcGxheTpmbGV4IG9ubHkgYXBwbGllcyBvbmNlIGl0cyBKUyBhc3NpZ25zIHRoZSBjb21wb25lbnQgY2xhc3NcbiAgICAvLyBvbiBjb25uZWN0ZWRDYWxsYmFjazsgYmVmb3JlIHRoYXQgdGhlIHVuLXVwZ3JhZGVkIHRhZyBkZWZhdWx0cyB0b1xuICAgIC8vIGlubGluZS5cbiAgICBxZG5hcHJvLWFuc3dlci1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmZlLW9hLXByZXZpZXcge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5cbi8vIEdlbmVyaWMgdmVydGljYWwgYmxvY2sgKGNvbG91ciBwaWNrZXIgc2VjdGlvbiB0b2RheSkg4oCUIGxhYmVsIHVzZXMgdGhlXG4vLyBzaGFyZWQgLnFkbmFwcm8tbW9kYWwtbGFiZWwgY2xhc3MgKHNlZSBfbW9kYWwuc2NzcyksIE5PVCBhIGJlc3Bva2Ugc3R5bGU6XG4vLyBLaW0ncyBmZWVkYmFjayAoMTIuMDcuMjAyNikgd2FzIHRoYXQgdGhlIG9sZCBJQ09OL0NPTE9VUiBrb3BqZXMgKDExcHgvNzAwL1xuLy8gdXBwZXJjYXNlL2xldHRlci1zcGFjZWQpIGRpZG4ndCBtYXRjaCBob3cgZXZlcnkgb3RoZXIgbW9kYWwgaW4gdGhpcyBhcHBcbi8vIGxhYmVscyBhIGZpZWxkLiBUaGUgc2hhcmVkIGNsYXNzIGlzIDE0cHgvNTAwLyMwYjBiMGQsIG5vcm1hbCBjYXNlIOKAlCB0aGVcbi8vIHNhbWUgc3R5bGUgdGhpcyBtb2RhbCdzIG93biBcIkFudHdvb3Jkb3B0aWVzXCIgc2VjdGlvbiB0aXRsZSBhbmRcbi8vIE5vZGVPcHRpb25zLnZ1ZSdzIFwiU3R5bGVcIiBsYWJlbCBhbHJlYWR5IHVzZS5cbi5mZS1vYS1ibG9jayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xufVxuXG4vLyBQcmV2aW91cy9OZXh0ICsgXCJuIHZhbiBtXCIgKyB0aGUgb3B0aW9uJ3Mgb3duIGxhYmVsIGFzIGEgY29sdW1uIHRpdGxlICtcbi8vIGJyb3dzZSBoaW50LiBPbmx5IHJlbmRlcmVkIHdoaWxlIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgb3B0aW9uIHRvIGJyb3dzZVxuLy8gKHNlZSBPcHRpb25BcHBlYXJhbmNlT3ZlcmxheS52dWUncyBzaG93TmF2KS5cbi5mZS1vYS1uYXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZWE7XG59XG4uZmUtb2EtbmF2LXRpdGxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwYjBiMGQ7XG59XG4uZmUtb2EtbmF2LXRpdGxlLXRleHQge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi8vIFVuc2F2ZWQtY2hhbmdlIGluZGljYXRvciBuZXh0IHRvIHRoZSBjdXJyZW50bHktYnJvd3NlZCBvcHRpb24ncyB0aXRsZS5cbi5mZS1vYS1kaXJ0eS1kb3Qge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiA2cHg7XG4gICAgaGVpZ2h0OiA2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICNjOThhMWY7XG59XG4uZmUtb2EtbmF2LXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDhweDtcbn1cbi5mZS1vYS1uYXYtY291bnRlciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uZmUtb2EtbmF2LWhpbnQge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgY29sb3I6ICM4YTkwYWM7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmZlLW9hLW5hdiB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzQwNDQ0ZDtcbn1cblxuLy8gUmlnaHQgY29sdW1uOiBwZXJtYW5lbnQgaWNvbiBwYW5lbCAoc2VhcmNoICsgc2VsZi1zY3JvbGxpbmcgZ3JpZCArIGFcbi8vIHJ1bm5pbmcgXCJuIHZhbiBtIGljb25lblwiIGNvdW50ZXIpIOKAlCByZXBsYWNlcyB2NCdzIG5lc3RlZFxuLy8gcWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci1vdmVybGF5IHBvcG92ZXItb3Zlci1tb2RhbC4gU2VlXG4vLyBPcHRpb25BcHBlYXJhbmNlT3ZlcmxheS52dWUncyBkb2NibG9jayBmb3Igd2h5IHRoaXMgaXMgYSBmcmVzaCBWdWUtbmF0aXZlXG4vLyBwYW5lbCByYXRoZXIgdGhhbiB0aGF0IHBvcG92ZXIgZW1iZWRkZWQgaW4gcGxhY2UuXG4uZmUtb2EtaWNvbi1zZWFyY2gge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuLmZlLW9hLWdyaWQtc2Nyb2xsIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlYTtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuZmUtb2EtZ3JpZC1zY3JvbGwge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICM0MDQ0NGQ7XG59XG4uZmUtb2EtZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIDM2cHgpO1xuICAgIGdhcDogOHB4O1xuICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDRweDtcbn1cbi8vIFRpbGUgbG9vayBtaXJyb3JzIC5haXAtb3ZlcmxheS1tZGktdGlsZSAodGhlIHNoYXJlZCBvdmVybGF5J3Mgb3duIE1ESSB0aWxlLFxuLy8gX2FjdGl2aXR5LWljb24tcGlja2VyLW92ZXJsYXkuc2Nzcykgc28gYm90aCBpY29uLXBpY2tpbmcgc3VyZmFjZXMgaW4gdGhlXG4vLyBmbG93ZWRpdG9yIHJlYWQgYXMgb25lIGNvbnNpc3RlbnQgdmlzdWFsIGxhbmd1YWdlLCB3aXRob3V0IHRoaXMgbW9kYWxcbi8vIGRlcGVuZGluZyBvbiB0aGF0IHBvcG92ZXIgY29tcG9uZW50J3MgaW50ZXJuYWwgY2xhc3Nlcy5cbi5mZS1vYS10aWxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMWUzZTY7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgY29sb3I6ICM1NjViNjY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlLCBib3JkZXItY29sb3IgMTIwbXMgZWFzZSwgYm94LXNoYWRvdyAxNTBtcyBlYXNlO1xuXG4gICAgcWRuYXByby1pY29uIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWJlZGZiO1xuICAgICAgICBib3JkZXItY29sb3I6ICNiOGJkZTg7XG4gICAgfVxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzQwNDk5YTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjApO1xuICAgIH1cbiAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzQ2NTJmMztcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4wNik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbiAgICAgICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgfVxufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5mZS1vYS10aWxlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICBjb2xvcjogI2QxZDVkYjtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG4gICAgfVxuICAgICYuZmUtb2EtdGlsZS0tc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6ICNhNWFjZmY7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMTgpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSg3MCwgODIsIDI0MywgMC4zMCk7XG4gICAgICAgIGNvbG9yOiAjYTVhY2ZmO1xuICAgIH1cbn1cbi5mZS1vYS1pY29uLWVtcHR5IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMjRweCA4cHg7XG4gICAgY29sb3I6ICM2ZTZlNzM7XG4gICAgZm9udC1zaXplOiAxM3B4O1xufVxuLmZlLW9hLWljb24tY291bnQge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogIzZlNmU3Mztcbn1cblxuLy8gYWR2YW5jZWRfaW5wdXQgZnJlZS1maWVsZCBpY29uIHBpY2tlciAoQWJzdHJhY3RJY29uUGlja2VyLnZ1ZSwgUGhhc2UgNkEsXG4vLyAxMS4wNy4yMDI2KTogYSBzZXR0aW5ncy1yb3cgdHJpZ2dlciBidXR0b24gdGhhdCBvcGVucyB0aGUgc2hhcmVkXG4vLyBPcHRpb25BcHBlYXJhbmNlT3ZlcmxheSAoY2VudGVyZWQgbW9kYWwtbGF5ZXIsIHNob3dDb2xvcj1mYWxzZSksIHNlZSB0aGVcbi8vIC5mZS1vYS1tb2RhbCBydWxlcyBhYm92ZS4gW1JlZGVzaWduZWQgMTIuMDcuMjAyNl1cbi5mZS1maS1hbmNob3Ige1xuICAgIGZsZXg6IDAgMCBhdXRvO1xufVxuLmZlLWZpLXRyaWdnZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZTRlZjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcywgYm9yZGVyLWNvbG9yIDEyMG1zO1xuXG4gICAgJjpob3ZlcixcbiAgICAmLS1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWVmMGZmO1xuICAgICAgICBib3JkZXItY29sb3I6ICNkNGQ4ZWU7XG4gICAgfVxufVxuLmZlLWZpLXRyaWdnZXItbGFiZWwge1xuICAgIG1heC13aWR0aDogMTQwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmZlLWltcG9ydCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcbiAgICBtaW4td2lkdGg6IDQyMHB4O1xufVxuLmZlLWltcG9ydC1wYW5lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG4gICAgbWluLWhlaWdodDogMTcwcHg7XG59XG4vKiBxZG5hcHJvLW1vZGFsIHRvZ2dsZXMgLm1vZGFsLXRhYi1wYW5lbCgtYWN0aXZlKTsgc3VwcGx5IHRoZSBzaG93L2hpZGUgaGVyZVxuICAgKHRoZSBtb2RhbCBidWlsZCBzaGlwcyBubyB0YWItcGFuZWwgQ1NTIG9mIGl0cyBvd24pLiBbS2ltIDIwMjYtMDYtMjBdICovXG4uZmUtaW1wb3J0LXBhbmUubW9kYWwtdGFiLXBhbmVsOm5vdCgubW9kYWwtdGFiLXBhbmVsLWFjdGl2ZSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBEcm9wLXpvbmUgcmVzdGluZyBjb250ZW50IChpdCBpcyBhbiBvdmVybGF5IHdyYXBwZXIsIHNvIGl0IG5lZWRzIGl0cyBvd25cbiAgIGJvZHkgZm9yIGhlaWdodCArIGEgY2xpY2sgdGFyZ2V0KS4gKi9cbi5mZS1pbXBvcnQtZHoge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDI4cHggMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICM2QjcxOTI7XG5cbiAgICAubWRpIHsgZm9udC1zaXplOiAyOHB4OyBjb2xvcjogIzQwNDk5QTsgfVxuICAgICYtdGV4dCB7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6ICMyQTJGNDU7IH1cbiAgICAmLWhpbnQgeyBmb250LXNpemU6IDEycHg7IGNvbG9yOiAjOEE5MEFDOyB9XG5cbiAgICAuZmUtaW1wb3J0LXBpY2sgeyBtYXJnaW4tdG9wOiA4cHg7IH1cbn1cbi5mZS1pbXBvcnQtaGludCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzhBOTBBQztcbn1cbi5mZS1pbXBvcnQtY291bnQge1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgY29sb3I6ICM0MDQ5OUE7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5mZS1pbXBvcnQtZmlsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNGNEY1RkI7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcblxuICAgICYtbmFtZSB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgY29sb3I6ICMyQTJGNDU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgICAmLXJlbW92ZSB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAjOEE5MEFDO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICY6aG92ZXIgeyBjb2xvcjogIzQwNDk5QTsgfVxuICAgIH1cbn1cbi5mZS1pbXBvcnQtYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG59XG5cbi8vIE9wZW4gaW52b2VyIC8gZ2V0YWxcbi5mZS1wdi1maWVsZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGJvcmRlcjogMS41cHggc29saWQgIzQwNDk5QTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xufVxuLmZlLXB2LWZpZWxkLS1jb3VudGVyIHsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4uZmUtcHYtc3RlcCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM0MDQ5OUE7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgY29sb3I6ICM0MDQ5OUE7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zIGVhc2U7XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4xMCk7IH1cbiAgICAmOmFjdGl2ZSB7IGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMTgpOyB9XG59XG4uZmUtcHYtaW5wdXQgeyBmbGV4OiAxIDEgYXV0bzsgbWluLXdpZHRoOiAwOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsgfVxuLmZlLXB2LWN1ciB7IGNvbG9yOiAjNDA0OTlBOyBmb250LXdlaWdodDogNzAwOyB9XG4uZmUtcHYtcmVhbGlucHV0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgY29sb3I6ICMwYjBiMGQ7XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7IGNvbG9yOiAjOWFhMGI1OyB9XG59XG4uZmUtcHYtcGggIHsgY29sb3I6ICM5YWEwYjU7IGZvbnQtc2l6ZTogMTRweDsgfVxuLmZlLXB2LWJhcmNvZGUgeyBtYXJnaW4tbGVmdDogYXV0bzsgY29sb3I6ICM0MDQ5OUE7IGZvbnQtc2l6ZTogMThweDsgfVxuXG4vLyBLaWxsIGEgbGVnYWN5IGdsb2JhbCBgaW5wdXRbdHlwZT1cImRhdGVcIl06OmJlZm9yZWAgKGFuZCB0aW1lKSBNREktZ2x5cGggKGZyb21cbi8vIHN0eWxlLmNzcykgdGhhdCBsZWFrcyBvbnRvIEVWRVJZIG5hdGl2ZSBkYXRlL3RpbWUgZmllbGQgaW4gdGhlIG1vZGFsIChxZG5hcHJvLWlucHV0XG4vLyBBTkQgdGhlIHJhdyBpbnB1dHMgaW4gQWJzdHJhY3RUb2dnbGVJbnB1dCkgYW5kIHJlbmRlcnMgYXMgYSBzdHJheSBDSksgY2hhciAoXCLlsaJcIilcbi8vIGJlY2F1c2UgdGhlIE1ESSB3ZWJmb250IGlzbid0IGxvYWRlZCBvbiB0aGUgZmxvd2VkaXRvciBwYWdlLiBbS2ltIDIwMjYtMDYtMTldXG4uZmUtbm8gaW5wdXRbdHlwZT1cImRhdGVcIl06OmJlZm9yZSxcbi5mZS1ubyBpbnB1dFt0eXBlPVwidGltZVwiXTo6YmVmb3JlLFxuLmZlLXB2IGlucHV0W3R5cGU9XCJkYXRlXCJdOjpiZWZvcmUsXG4uZmUtcHYgaW5wdXRbdHlwZT1cInRpbWVcIl06OmJlZm9yZSB7IGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4vLyBJbWFnZS11cGxvYWQgYWN0aW9uIHBpbm5lZCB0byB0aGUgdG9wIG9mIHRoZSBwcmV2aWV3IGNhcmQsIHNlcGFyYXRlZCBmcm9tIHRoZVxuLy8gcXVlc3Rpb24gYnkgYSBrZXlsaW5lLiBbS2ltIDIwMjYtMDYtMThdXG4uZmUtcHYtaW1nYWN0aW9uIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWNlZWY1O1xufVxuXG4vLyBVcGxvYWRlZCBkaXNwbGF5IGltYWdlIGluIHRoZSBwcmV2aWV3IOKAlCByb3VuZGVkIGNvcm5lcnMgKG1hdGNoZXMgdGhlIGNyb3BwZXInc1xuLy8gcm91bmRlZCBtYXNrICsgaG93IHRoZSBhcHAgcmVuZGVycyBpdCkuIDEycHggdG9wK2JvdHRvbSBzbyBpdCBicmVhdGhlcyB0aGUgc2FtZVxuLy8gYXMgdGhlIGlucHV0IGZpZWxkLCBpbiB3aGljaGV2ZXIgcG9zaXRpb24gaXQgc2l0cy4gW0tpbSAyMDI2LTA2LTE5XVxuLmZlLXB2LXBob3RvIHtcbiAgICBtYXJnaW46IDEycHggMDtcbiAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDIyMHB4O1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICB9XG59XG4vLyBEaXNwbGF5LWltYWdlIHNpemUgKGltYWdlX3NpemUgbWV0YTogcyB8IG0gfCBsKS4gTCBpcyB0aGUgdW5tb2RpZmllZCBydWxlIGFib3ZlLFxuLy8gc28gbm8gZXhpc3RpbmcgcXVlc3Rpb24gY2hhbmdlcy4gVGhlIHB4IHZhbHVlcyBhcmUgdGhlIGFwcCdzIDIwLzM1LzYwdmggc2NhbGVkIHRvXG4vLyB0aGlzIHByZXZpZXcgY2FyZCAoMjIwcHggc3RhbmRzIGluIGZvciA2MHZoKSwga2VlcGluZyB0aGUgcHJvcG9ydGlvbnMgaG9uZXN0LlxuLy9cbi8vIFMgYW5kIE0gc2NhbGUgUFJPUE9SVElPTkFMTFkgYW5kIGNlbnRyZSAod2lkdGg6YXV0byArIGNvbnRhaW4pIGluc3RlYWQgb2YgdGhlXG4vLyBmdWxsLXdpZHRoIGNyb3AgTCB1c2VzLCBiZWNhdXNlIHRoYXQgaXMgd2hhdCB0aGUgZmllbGQgYXBwIGRvZXMgd2l0aCBhIGJvdW5kZWRcbi8vIGltYWdlIChtYXgtd2lkdGg6MTAwJSArIGhlaWdodDphdXRvICsgbWF4LWhlaWdodCkuIEEgZnVsbC13aWR0aCBjcm9wIGF0IDc1cHggdGFsbFxuLy8gd291bGQgc2hvdyBhIGxldHRlcmJveCBzbGljZSwgd2hpY2ggaXMgbm90IHdoYXQgdGhlIGFwcCByZW5kZXJzLiBbS2ltIDAzLjA4LjIwMjZdXG4uZmUtcHYtcGhvdG8tLXMgaW1nLFxuLmZlLXB2LXBob3RvLS1tIGltZyB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG4uZmUtcHYtcGhvdG8tLXMgaW1nIHsgbWF4LWhlaWdodDogNzVweDsgfVxuLmZlLXB2LXBob3RvLS1tIGltZyB7IG1heC1oZWlnaHQ6IDEzMHB4OyB9XG5cbi8vIOKUgOKUgCBSZWJ1aWx0IGFkdmFuY2VkX2lucHV0IHByZXZpZXc6IGFwcC1mYWl0aGZ1bCwgcmVhY3RzIHRvIGV2ZXJ5IHNldHRpbmcg4pSA4pSAXG4vLyBFZGl0b3Itb25seSByZXF1aXJlZCBjdWUgKHRoZSBmaWVsZCBhcHAgc2hvd3Mgbm8gYXN0ZXJpc2s7IHRoaXMgaXMgYW4gYXV0aG9yIGhpbnQpLlxuLmZlLXB2LXJlcSB7IGNvbG9yOiAjREU1MDY2OyBmb250LXdlaWdodDogNzAwOyBtYXJnaW4tbGVmdDogMnB4OyBjdXJzb3I6IGhlbHA7IH1cblxuLmZlLXB2LXNpbmdsZSB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogOHB4OyB9XG5cbi8vIExpdmUgdmFsaWRhdGlvbiBmZWVkYmFjayAoc2FuZGJveCk6IHJlZCBmaWVsZCArIG1lc3NhZ2Ugd2hlbiBhIHJ1bGUgZmFpbHMsXG4vLyBtdXRlZCBoaW50IGxpc3RpbmcgdGhlIGFjdGl2ZSBydWxlcyBvdGhlcndpc2UuXG4uZmUtcHYtZmllbGQtLWVycm9yIHsgYm9yZGVyLWNvbG9yOiAjREU1MDY2ICFpbXBvcnRhbnQ7IH1cbi5mZS1wdi1lcnJvciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogI0RFNTA2NjtcblxuICAgIC5tZGkgeyBmb250LXNpemU6IDE0cHg7IH1cbn1cbi5mZS1wdi1oaW50IHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogIzlhYTBiZDsgbGluZS1oZWlnaHQ6IDEuMzsgfVxuXG4vLyBFeHBhbmRhYmxlIHRleHQgLT4gbGVmdC1hbGlnbmVkIG11bHRpLWxpbmUgYXJlYS5cbi5mZS1wdi10ZXh0YXJlYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogOTZweDtcbiAgICByZXNpemU6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4uZmUtcHYtcmVhbGlucHV0LS1jZW50ZXIgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLy8gQ2xvY2sgLyBjYWxlbmRhciBhZmZvcmRhbmNlIGluc2lkZSB0aW1lICsgZGF0ZSBmaWVsZHMuXG4uZmUtcHYtYWZmaXggeyBjb2xvcjogIzQwNDk5QTsgZm9udC1zaXplOiAxOHB4OyBtYXJnaW4tbGVmdDogNnB4OyBmbGV4OiAwIDAgYXV0bzsgb3BhY2l0eTogLjg7IH1cblxuLy8gU3VtIHJvdyAoYXV0b19zdW0pOiBwb3NpdGlvbnMgdGhlIHFkbmFwcm8tc3VtbWFyeS1iYWRnZSBhdCB0aGUgcmlnaHQuXG4vLyBJbnRlcm5hbCBzdHlsaW5nIChjb2xvdXIsIHBhZGRpbmcsIGJvcmRlci1yYWRpdXMpIGNvbWVzIGZyb20gdGhlIGJhZGdlIGNvbXBvbmVudC5cbi5mZS1wdi1zdW0geyBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuXG4vLyBJbnB1dCBmb3IgZXZlcnkgdW5pdDogb25lIHJlcHJlc2VudGF0aXZlIHBlci11bml0IHJvdyArIGNhcHRpb24uXG4uZmUtcHYtdW5pdHMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDhweDsgfVxuLy8gTm8gcGVyLXJvdyBib3JkZXIgaW4gdGhlIHByZXZpZXcgKEtpbSAyMDI2LTA2LTE5KTogZGVuc2VyID0gbW9yZSByb29tLiBUaGVcbi8vIHJvdyBjYXJkIGJvcmRlciBpcyB0aGUgXCJ0YWJsZXQgb25seVwiIHRyZWF0bWVudCBmb3IgdGhlIGFwcCAoc2VlIG1lbW9yeVxuLy8gcmVzcG9uc2l2ZS1ib3JkZXItdGFibGV0LW5vdC1tb2JpbGUpOyB0aGUgZWRpdG9yIHByZXZpZXcgc3RheXMgZmxhdC9kZW5zZS5cbi5mZS1wdi11bml0LXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA0cHggMDtcbn1cbi8vIEljb24gKyBuYW1lID0gYSBmaXhlZCwgY2xpY2thYmxlIHpvbmUgdGhhdCBzbGlkZXMgdGhlIG5hbWUgb3V0IG9uIGNsaWNrICh0aGVcbi8vIGZpZWxkIHNocmlua3MpLiBDb2xsYXBzZWQgc2hvd3MgaWNvbiArIGEgc2xpdmVyIG9mIG5hbWU7IC5pcy1leHBhbmRlZCByZXZlYWxzXG4vLyB+MTUwcHggb2YgbmFtZS4gRnVsbCBuYW1lIHZpYSB0aXRsZSB0b29sdGlwLiBbS2ltIDIwMjYtMDYtMTldXG4uZmUtcHYtdW5pdC1pbmZvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIC8vIENvbXBhY3QtZmllbGQgbGF5b3V0IChLaW0gMjAyNi0wNi0xOSk6IHR5cGVzIHRoYXQgZG9uJ3QgZXhwZWN0IGxhcmdlIGlucHV0XG4gICAgLy8gKGN1cnJlbmN5L251bWJlci90aW1lL2RhdGUpIGRvbid0IG5lZWQgYSB3aWRlIGZpZWxkIHBlciB1bml0IOKAlCBzbyB0aGUgbmFtZVxuICAgIC8vIHpvbmUgZ2V0cyB0aGUgcm9vbSAoaXQgd2FzIGJhcmVseSByZWFkYWJsZSBhdCA5MnB4KS4gVGhlIGZpZWxkIHNocmlua3MgdG9cbiAgICAvLyBmaWxsIHRoZSByZXN0LiBPbmx5IGFwcGxpZXMgaW4gcGVyLXVuaXQgbW9kZSAodGhlc2UgY2xhc3NlcyBvbmx5IHJlbmRlciB0aGVuKS5cbiAgICB3aWR0aDogMTYwcHg7ICAgICAgICAgICAgLy8gY29sbGFwc2VkIGRlZmF1bHQ7IGV4cGFuZCBhbmltYXRlcyB0byAyMzBweCB2aWEgckFGXG4gICAgbWluLXdpZHRoOiAxNjBweDtcbiAgICBtYXgtd2lkdGg6IDE2MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC8vIE5PVEU6IE5PIENTUyB3aWR0aC9taW4vbWF4IHRyYW5zaXRpb24gaGVyZSDigJQgaXQgZnJlZXplcyBvbiB0aGlzIGZsZXggaXRlbVxuICAgIC8vIChyZXByb2R1Y2libGUpLiBUaGUgc2xpZGUgaXMgZHJpdmVuIGJ5IHJlcXVlc3RBbmltYXRpb25GcmFtZSBpbiBfYW5pbWF0ZVVuaXRXaWR0aFxuICAgIC8vIChzZXRzIHdpZHRoK21pbittYXggZWFjaCBmcmFtZSkuIFsyMDI2LTA2LTE5XVxufVxuLmZlLXB2LXVuaXQtaW1nIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZWVmMGZhO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gcmVhbCB1bml0IHBob3RvIGZpbGxzIHRoZSB0aWxlXG4gICAgaW1nIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgb2JqZWN0LWZpdDogY292ZXI7IGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLy8gdHlwZS1pY29uIGZhbGxiYWNrIChhY3Rpdml0eSBTVkcgbGluZS1hcnQpOiBjb250YWluZWQgKyBwYWRkZWQsIHRpbnRlZCBiZ1xuICAgICYuZmUtcHYtdW5pdC1pbWctLWljb24gaW1nIHsgb2JqZWN0LWZpdDogY29udGFpbjsgcGFkZGluZzogOHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG59XG4vLyBTaG93biB3aGVuIHRoZSBmbG93IGhhcyBubyBjb3VwbGVkIHVuaXRzIHlldC5cbi5mZS1wdi11bml0cy1lbXB0eSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6ICM5YWEwYmQ7XG4gICAgcGFkZGluZzogOHB4IDJweDtcbn1cbi5mZS1wdi11bml0LWxhYmVsIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzJhMmMzYTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uZmUtcHYtdW5pdC1jb3VudGVyIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA0cHg7IGZsZXg6IDAgMCBhdXRvOyB9XG4uZmUtcHYtdW5pdC1pbnB1dCB7XG4gICAgd2lkdGg6IDk2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBjb2xvcjogIzJhMmMzYTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIgeyBjb2xvcjogIzlhYTBiZDsgfVxufVxuLmZlLXB2LXVuaXRzLW5vdGUgeyBmb250LXNpemU6IDExcHg7IGNvbG9yOiAjOWFhMGJkOyBsaW5lLWhlaWdodDogMS4zOyB9XG4vLyBSaWdodC1zaWRlIGNvbnRyb2wgb2YgYSBwZXItdW5pdCByb3c6IG9wdGlvbmFsIGJhcmNvZGUgc2NhbiBidXR0b24gKyB0aGUgZmllbGQuXG4vLyBOT1RFOiBubyBvdmVyZmxvdzpoaWRkZW4gaGVyZSDigJQgaXQgY2xpcHBlZCB0aGUgZmllbGQncyBmb2N1cyByaW5nIG9uIHRoZSByaWdodFxuLy8gKEtpbSAyMDI2LTA2LTE5KS4gVGhlIGZsZXggc2hyaW5rIGlzIGhhbmRsZWQgYnkgbWluLXdpZHRoOjAgYWxvbmUsIHNvIHRoZSBjbGlwXG4vLyBpc24ndCBuZWVkZWQ7IGRyb3BwaW5nIGl0IGxldHMgdGhlIGZvY3VzIGdsb3cgcmVuZGVyIGZ1bGx5IGluc2lkZSB0aGUgY2FyZCBwYWRkaW5nLlxuLmZlLXB2LXVuaXQtY29udHJvbCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4OyBmbGV4OiAxIDEgYXV0bzsgbWluLXdpZHRoOiAwOyB9XG4uZmUtcHYtdW5pdC1maWVsZCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIC8vIGxldCB0aGUgcWRuYXByby1pbnB1dCBzaHJpbmsgZnVsbHkgc28gaXQgbmV2ZXIgYnJlYWtzIG91dCBvZiB0aGUgY2FyZCB3aGVuXG4gICAgLy8gdGhlIG5hbWUgem9uZSBleHBhbmRzICh0aGUgZmllbGQgZ2V0cyBzbWFsbGVyIGluc3RlYWQpLiBbS2ltIDIwMjYtMDYtMTldXG4gICAgLmlucHV0LWZpZWxkLXJvdywgLmlucHV0LWZpZWxkIHsgbWluLXdpZHRoOiAwOyB9XG59XG4vLyBcIkFuc3dlciBwZXIgdW5pdFwiIHBlci1yb3cgY29udHJvbHMgKHllc19ubyAvIG9wdGlvbnMgY2F0ZWdvcmllcywgcGVyLXVuaXRcbi8vIGFkYXB0ZXJzLCAxMi4wNy4yMDI2KS4gUmV1c2VzIC5mZS1wdi11bml0LWNvbnRyb2wncyBmbGV4L2dhcCBiYXNlOyB0aGUgeWVzbm9cbi8vIHZhcmlhbnQgbmVlZHMgaXRzIGJ1dHRvbnMgdG8gd3JhcC9zdGFjayB3aGVuIGEgdGhpcmQgKG52dCkgYnV0dG9uIHdvbid0IGZpdCxcbi8vIG1pcnJvcmluZyAuZmUtcHYteWVzbm8tLXN0YWNrZWQncyBvd24gcnVsZSBmb3IgdGhlIHNpbmdsZS1xdWVzdGlvbiBsYXlvdXQuXG4uZmUtcHYtdW5pdC1jb250cm9sLS15ZXNubyB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHFkbmFwcm8tYW5zd2VyLWJ1dHRvbiB7IGZsZXg6IDEgMSAwOyBtaW4td2lkdGg6IDY0cHg7IH1cbiAgICAvLyBQaG9uZSBwYXJpdHkgKFllcy9ObyBwZXItdW5pdCwgMTIuMDcuMjAyNik6IHRoZSBmaWVsZCBhcHAgaGlkZXMgdGhlIHJvdW5kXG4gICAgLy8gaW5kaWNhdG9yICsgdGh1bWIgaWNvbiBpbiB0aGVzZSBjb21wYWN0IHBlci11bml0IHJvd3MgdG8gc2F2ZSBob3Jpem9udGFsXG4gICAgLy8gc3BhY2UsIGxlYXZpbmcgb25seSB0aGUgSmEvTmVlKC9OdnQpIHRleHQg4oCUIHNlZSB0aGUgcGFyYWxsZWwgUFdBIGNoYW5nZVxuICAgIC8vIHRvIHllc19uby5qcydzIHBlci11bml0IHJvdyAoLnluLXVuaXQtYnV0dG9ucykuIFNjb3BlZCB0byBUSElTIHBlci11bml0XG4gICAgLy8gd3JhcHBlciBvbmx5LCBzbyB0aGUgc2luZ2xlLXF1ZXN0aW9uIFllcy9ObyBidXR0b25zIGFib3ZlICguZmUtcHYteWVzbm8pXG4gICAgLy8ga2VlcCB0aGVpciBpbmRpY2F0b3IgKyBpY29uIHVudG91Y2hlZC4gW0tpbV1cbiAgICBxZG5hcHJvLWFuc3dlci1idXR0b24gLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbl9fdGljayxcbiAgICBxZG5hcHJvLWFuc3dlci1idXR0b24gLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbl9faWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuLmZlLXB2LXVuaXQtY29udHJvbC0teWVzbm8tc3RhY2tlZCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBxZG5hcHJvLWFuc3dlci1idXR0b24geyBmbGV4OiAxIDEgYXV0bzsgfVxufVxuLy8gUGhvdG8gY2F0ZWdvcnkncyBwZXItdW5pdCByb3cgY29udHJvbCAocGVyLXVuaXQgYWRhcHRlcnMsIDEzLjA3LjIwMjYpOiBhIHNpbmdsZVxuLy8gY29tcGFjdCBjYW1lcmEgYnV0dG9uIG9uIHRoZSByaWdodCwgTk9UIHN0cmV0Y2hlZCBhY3Jvc3MgdGhlIHJvdy4gUmV1c2VzXG4vLyAuZmUtcHYtY2FtZXJhLWJ0bi0tbWluaSdzIHNoYXBlIGJ1dCBrZWVwcyBpdCBsb29raW5nIGVuYWJsZWQg4oCUIHRoaXMgcm93IGlzIGFuXG4vLyBpbGx1c3RyYXRpdmUgbW9jaywgc2FtZSBhcyB0aGUgeWVzbm8gcGVyLXVuaXQgYnV0dG9ucyBhYm92ZS4gWzEzLjA3LjIwMjZdXG4uZmUtcHYtdW5pdC1jb250cm9sLS1waG90byB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAuZmUtcHYtY2FtZXJhLWJ0bi0tbWluaSB7IG9wYWNpdHk6IDE7IH1cbn1cbi8vIE9wdGlvbnMgY2F0ZWdvcnkncyBwZXItdW5pdCBkcm9wZG93biByb3cg4oCUIHNhbWUgd2lkdGgvc2hyaW5rIHRyZWF0bWVudCBhc1xuLy8gLmZlLXB2LXVuaXQtZmllbGQgYWJvdmUsIGp1c3QgZm9yIHRoZSBzZWxlY3QgY29udHJvbCBpbnN0ZWFkIG9mIGFuIGlucHV0LlxuLmZlLXB2LXVuaXQtc2VsZWN0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG59XG4vLyBQZXItdW5pdCBiYXJjb2RlIHNjYW4gYnV0dG9uIChzbWFsbCBzcXVhcmU7IHRoZSBmaWVsZC1sZXZlbCBzY2FubmVyKS4gW0tpbSAyMDI2LTA2LTE5XVxuLmZlLXB2LXVuaXQtc2NhbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDM0cHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjNDA0OTlBO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2Utb3V0O1xuXG4gICAgcWRuYXByby1pY29uIHsgd2lkdGg6IDE4cHg7IGhlaWdodDogMThweDsgfVxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjMzUzZDg2OyB9XG59XG4uZmUtcHYtYmFyY29kZS1idG4ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogIzQwNDk5QTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAubWRpIHsgZm9udC1zaXplOiAxNnB4OyB9XG59XG5cbi8vIFNjYW4gYmFyY29kZSBidXR0b24gKHByZXZpZXcpOiBmdWxsLXdpZHRoIHBpbGwgdW5kZXIgdGhlIGZpZWxkLiBJbiB0aGUgYXBwXG4vLyB0aGlzIG9wZW5zIHRoZSBjYW1lcmE7IGhlcmUgaXQgdHJpZ2dlcnMgdGhlIGZsb2F0aW5nIHRvYXN0IGJlbG93LiBbS2ltIDIwMjYtMDYtMTldXG4uZmUtcHYtc2Nhbi1idG4ge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogIzQwNDk5QTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2Utb3V0O1xuXG4gICAgcWRuYXByby1pY29uIHsgd2lkdGg6IDE4cHg7IGhlaWdodDogMThweDsgfVxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjMzUzZDg2OyB9XG59XG5cbi8vIFRha2UtYS1waG90byBwcmV2aWV3OiB0aGUgcHVycGxlIFwiVGFrZSBhIHBpY3R1cmVcIiBidXR0b24gKG1pcnJvcnMgdGhlIHJlYWwgUFdBXG4vLyBidXR0b24gKyB0aGUgc2Nhbi1idXR0b24gc3R5bGluZyksIHRoZSBtaW4vbWF4IGhpbnQsIGFuZCB0aGUgdXBsb2FkZWQgaW1hZ2Vcbi8vIHN0YWNrIGJlbG93IGl0LiBbS2ltIDIwMjYtMDctMDVdXG4uZmUtcHYtcGhvdG8tbm9kZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xufVxuLmZlLXB2LWNhbWVyYS1idG4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICM0MDQ5OUE7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dDtcblxuICAgIHFkbmFwcm8taWNvbiB7IHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE4cHg7IH1cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogIzM1M2Q4NjsgfVxufVxuXG4vLyBTaWduYXR1cmUgcHJldmlldzogYSBzdGF0aWMsIG5vbi1pbnRlcmFjdGl2ZSBzaWduYXR1cmUtcGFkIG1vY2sgKGJvcmRlcmVkXG4vLyBib3ggdGhlIGZpZWxkIHdvcmtlciBzaWducyBpbiwgZmFpbnQgcGVuIGljb24gKyBiYXNlbGluZSkuIFtLaW1dXG4uZmUtcHYtc2lnbmF0dXJlLXBhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDk2cHg7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBib3JkZXI6IDEuNXB4IGRhc2hlZCAjYjBiOGU4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjZmZjtcbiAgICBjb2xvcjogIzhiOTNjOTtcbn1cbi5mZS1wdi1zaWduYXR1cmUtbGluZSB7XG4gICAgd2lkdGg6IDcwJTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYmFja2dyb3VuZDogI2QzZDhmMjtcbn1cblxuLy8gRmxvYXRpbmcgdG9hc3Qgc2hvd24gd2hlbiB0aGUgc2NhbiBidXR0b24gaXMgY2xpY2tlZCBpbiB0aGUgcHJldmlldy5cbi5mZS1wdi10b2FzdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBib3R0b206IDE2cHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAzMnB4KTtcbiAgICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjMmEyYzNhO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBib3gtc2hhZG93OiAwIDZweCAyMHB4IHJnYmEoMjAsIDIyLCA0MCwgMC4yOCk7XG4gICAgei1pbmRleDogNTtcblxuICAgIHFkbmFwcm8taWNvbiB7IHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE4cHg7IGZsZXg6IDAgMCBhdXRvOyB9XG59XG4uZmUtcHYtdG9hc3QtZmFkZS1lbnRlci1hY3RpdmUsXG4uZmUtcHYtdG9hc3QtZmFkZS1sZWF2ZS1hY3RpdmUgeyB0cmFuc2l0aW9uOiBvcGFjaXR5IDE4MG1zIGVhc2Utb3V0LCB0cmFuc2Zvcm0gMTgwbXMgZWFzZS1vdXQ7IH1cbi5mZS1wdi10b2FzdC1mYWRlLWVudGVyLWZyb20sXG4uZmUtcHYtdG9hc3QtZmFkZS1sZWF2ZS10byB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDhweCk7IH1cblxuLy8g4pSA4pSAIEZvcm0gY2FyZCBwcmV2aWV3IChmYXNlIDMpOiBzZWN0aW9uIHRpdGxlICsgc3VidGV4dCByZW5kZXIgdmlhIHRoZSBzaGFyZWRcbi8vIGZlLXB2LXRpdGxlL2ZlLXB2LXN1YiBhYm92ZTsgdGhpcyBpcyBqdXN0IHRoZSBzdGFja2VkIGNoaWxkLXF1ZXN0aW9uIGxpc3Rcbi8vIGJlbG93IGl0LiBFdmVyeSByb3cgcmV1c2VzIHRoZSBleGlzdGluZyBmZS1wdi0qIHZvY2FidWxhcnkgKHllc25vL29wdC9jYW1lcmEvXG4vLyBmaWVsZCkgYXQgYSBzbWFsbGVyIFwibWluaVwiIHNjYWxlLCBzbyB0aGUgY2FyZCByZWFkcyBhcyBPTkUgcHJldmlldyBsYW5ndWFnZVxuLy8gaW5zdGVhZCBvZiBhIHNlY29uZCBkZXNpZ24uIFNjcm9sbGluZyBpcyBoYW5kbGVkIGJ5IHRoZSBleGlzdGluZyAuZmUtcHYtc2NyZWVuXG4vLyBtYXgtaGVpZ2h0L292ZXJmbG93LXkgKG5vIGV4dHJhIHNjcm9sbCBjb250YWluZXIgbmVlZGVkIGhlcmUpLiBbS2ltIDA3LjA3LjIwMjYgZmFzZSAzXVxuLmZlLXB2LWZvcm1jYXJkLWVtcHR5IHtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBjb2xvcjogIzlhYTBiZDtcbiAgICBwYWRkaW5nOiA4cHggMDtcbn1cbi5mZS1wdi1mb3JtY2FyZC1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xufVxuLmZlLXB2LWZvcm1jYXJkLWl0ZW0ge1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWNlZWY1O1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cbn1cbi5mZS1wdi1mb3JtY2FyZC1pdGVtLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzJhMmMzYTtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cbi8vIFdoZW4gYSBwZXItcXVlc3Rpb24gc3VidGV4dCBmb2xsb3dzLCB0aWdodGVuIHRoZSBnYXAgdG8gdGhlIGxhYmVsIHNvIHRoZSB0d29cbi8vIHJlYWQgYXMgb25lIGhlYWRlciwgdGhlbiBsZXQgdGhlIHN1YnRleHQgY2FycnkgdGhlIDhweCBnYXAgdG8gdGhlIGNvbnRyb2wuIFtLaW1dXG4uZmUtcHYtZm9ybWNhcmQtaXRlbS1sYWJlbC0taGFzLXN1YiB7IG1hcmdpbi1ib3R0b206IDJweDsgfVxuLmZlLXB2LWZvcm1jYXJkLWl0ZW0tc3ViIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM2YjcwOTM7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG4vLyBNaW5pIEphL05lZSArIG9wdGlvbiByb3dzOiBzYW1lIGxvb2sgYXMgdGhlIGZ1bGwtc2l6ZSB2ZXJzaW9ucywgZGVuc2VyLlxuLmZlLXB2LXllc25vLS1taW5pIC5mZS1wdi1idG4geyBwYWRkaW5nOiA4cHggNnB4OyBmb250LXNpemU6IDEycHg7IH1cbi5mZS1wdi1vcHQtLW1pbmkge1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IC8vIHN0YXRpYyBpbiB0aGUgY2FyZCBzdGFjaywgbm90IHRoZSBpbnRlcmFjdGl2ZSBzaW5nbGUtcXVlc3Rpb24gcHJldmlld1xufVxuLy8gQWR2YW5jZWRfaW5wdXQgLyBudW1iZXIgcGxhY2Vob2xkZXI6IGFuIGVtcHR5IG91dGxpbmVkIGZpZWxkIChubyBtYXNrLCBzdGF0aWMpLlxuLmZlLXB2LWZvcm1jYXJkLWlucHV0LW1vY2sge1xuICAgIGhlaWdodDogMzZweDtcbiAgICBib3JkZXI6IDEuNXB4IHNvbGlkICM0MDQ5OUE7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIG9wYWNpdHk6IDAuNjtcbn1cbi5mZS1wdi1jYW1lcmEtYnRuLS1taW5pIHtcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgb3BhY2l0eTogMC44NTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4uZmUtcHYtZmllbGQtLW1pbmkgeyBwYWRkaW5nOiA4cHggMTJweDsgfVxuLmZlLXB2LWZvcm1jYXJkLXNtaWxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAycHggMDtcblxuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAzNHB4O1xuICAgICAgICBoZWlnaHQ6IDM0cHg7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cbi5mZS1wdi1mb3JtY2FyZC1zY29yZW1vY2sge1xuICAgIC8vIFN0YXRpYyBwcmV2aWV3IG9mIHRoZSByZWFsIHNjb3JlL05QUyBzY2FsZSDigJQgbm9uLWludGVyYWN0aXZlIGJ5IGRlc2lnblxuICAgIC8vIChmYXNlLTMgc2NvcGU6IHRoZSBjYXJkIHByZXZpZXcgc2hvd3MgdGhlIHNoYXBlOyB0aGUgcmVhbCBpbnRlcmFjdGlvbiBsaXZlc1xuICAgIC8vIGluIHRoZSBxdWVzdGlvbidzIG93biBwcmV2aWV3KS4gW0tpbSBwdW50IDMvNF1cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi8vIENvbXBhY3QgdmFyaWFudCBpbnNpZGUgYSBmb3JtIGNhcmQncyBjaGlsZCBzdGFjay5cbi5mZS1wdi1mb3JtY2FyZC1zaWduYXR1cmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBib3JkZXI6IDEuNXB4IGRhc2hlZCAjYjBiOGU4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjZmZjtcbiAgICBjb2xvcjogIzhiOTNjOTtcblxuICAgIC5mZS1wdi1zaWduYXR1cmUtbGluZSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbn1cblxuLy8gXCJkaXNwbGF5XCIgbm9kZSBwcmV2aWV3IChmYXNlIDcsIDEyLjA3LjIwMjYpOiByaWNoIHRleHQgKyBvcHRpb25hbCB2aWRlby5cbi8vIFRpdGxlL3N1YnRleHQvaW1hZ2UgYWxyZWFkeSByZW5kZXIgZ2VuZXJpY2FsbHkgYWJvdmUgKGZlLXB2LXRpdGxlIC8gZmUtcHYtc3ViXG4vLyAvIGZlLXB2LXBob3RvLCBzaGFyZWQgd2l0aCBldmVyeSBub2RlIHR5cGUpIOKAlCB0aGlzIGJsb2NrIG9ubHkgY292ZXJzIHRoZVxuLy8gcmljaC10ZXh0IGJvZHkgKyB0aGUgdmlkZW8gcGxheWVyICsgdGhlIGVtcHR5IHN0YXRlLiBbS2ltXVxuLmZlLXB2LWRpc3BsYXkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG59XG4vLyBCZXNjaGVpZGVuIHR5cG9ncmFmaWUsIGJld3VzdCBlZW4gc3Vic2V0IChwL2gyL2gzL3VsL29sL2EpIOKAlCBtaXJyb3JzIHRoZVxuLy8gd3lzaXd5ZydzIG93biBjb250ZW50X3N0eWxlIChxZG5hLXd5c2l3eWcuanMgX2J1aWxkQ29udGVudFN0eWxlIC9cbi8vIC5xZG5hcHJvLXd5c2l3eWctcmVhZG9ubHkgaW4gX3d5c2l3eWcuc2Nzcykgc28gdGhlIHByZXZpZXcgbWF0Y2hlcyBib3RoIHRoZVxuLy8gZWRpdG9yIHdpZGdldCBhbmQgdGhlIGFwcCByZW5kZXIgMToxLlxuLmZlLXB2LWRpc3BsYXktY29udGVudCB7XG4gICAgY29sb3I6ICMxZjI0MzA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU1O1xuXG4gICAgaDEsIGgyLCBoMyB7XG4gICAgICAgIGNvbG9yOiAjNDA0OTlBO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgICAgbWFyZ2luOiAwLjllbSAwIDAuM2VtO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAwOyB9XG4gICAgfVxuICAgIGgxIHsgZm9udC1zaXplOiAyMHB4OyB9XG4gICAgaDIgeyBmb250LXNpemU6IDE3cHg7IH1cbiAgICBoMyB7IGZvbnQtc2l6ZTogMTVweDsgfVxuXG4gICAgcCB7IG1hcmdpbjogMCAwIDAuN2VtOyAmOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgICB1bCwgb2wgeyBwYWRkaW5nLWxlZnQ6IDIwcHg7IG1hcmdpbjogMCAwIDAuN2VtOyB9XG4gICAgbGkgeyBtYXJnaW46IDAuMmVtIDA7IH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogIzQwNDk5QTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDFweDtcbiAgICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHg7XG4gICAgfVxuICAgIGE6aG92ZXIgeyBjb2xvcjogIzMzM2E3YjsgfVxuXG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87IGJvcmRlci1yYWRpdXM6IDhweDsgfVxufVxuLmZlLXB2LWRpc3BsYXktdmlkZW8ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDIyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbn1cbi5mZS1wdi1kaXNwbGF5LWVtcHR5IHtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCAjZDBkNGU4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmZlLXB2LWRpc3BsYXktZW1wdHktdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjNDA0OTlBO1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbn1cbi5mZS1wdi1kaXNwbGF5LWVtcHR5LWhpbnQge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzlhYTBiZDtcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcbn1cblxuLy8gU2hhcmVkIG11dGVkIHN1YmxhYmVsIHVuZGVyIGEgc2V0dGluZydzIGxhYmVsIChyaWNoX3RleHQgLyB2aWRlb191cGxvYWQg4oCUXG4vLyBmYXNlIDcpLiBTYW1lIHZpc3VhbCB3ZWlnaHQgYXMgLmZlLW5vIC5mZS10aS1sYWJlbC4gW0tpbV1cbi5mZS1ydC1zdWJsYWJlbCB7XG4gICAgbWFyZ2luOiAycHggMCA4cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6IHZhcigtLXFkbmEtY29sb3ItdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG59XG5cbi8vIFZpZGVvLXVwbG9hZCBzZXR0aW5nIChmYXNlIDcpOiBidXR0b24gcm93ICsgY29tcGFjdCBwcmV2aWV3IHBsYXllciArIGVycm9ycy5cbi5mZS12aWRlby1ibG9jayB7XG4gICAgcWRuYXByby1idXR0b24geyBtYXJnaW4tcmlnaHQ6IDhweDsgfVxufVxuLmZlLXZpZGVvLXByZXZpZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG59XG4uZmUtdmlkZW8tZWwge1xuICAgIG1heC13aWR0aDogMjYwcHg7XG4gICAgbWF4LWhlaWdodDogMTYwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICMwMDA7XG59XG4uZmUtdmlkZW8tZXJyb3JzIHtcbiAgICBtYXJnaW4tdG9wOiA2cHg7XG59XG4uZmUtdmlkZW8tZXJyb3Ige1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogI2MzM2EzMDtcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcbn1cblxuLy8gU2VjdGlvbiBzZXBhcmF0b3IgaW5zaWRlIHRoZSBzZXR0aW5ncyBwYW5lbDogYSB0aGluIHFkbmFwcm8tZGl2aWRlciBrZXlsaW5lXG4vLyAocmVwbGFjZXMgdGhlIG9sZCB0aGljayBcImZlLWRpdmlkZXJcIiBwdXJwbGUgYmFyKS4gW0tpbSAyMDI2LTA2LTE5XVxuLmZlLW5vIC5mZS1zZXQtZGl2aWRlciB7XG4gICAgbWFyZ2luOiAxNnB4IDA7XG5cbiAgICAuZmUtc2V0LWRpdmlkZXItbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAjNmI2Zjc4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgfVxufVxuXG4vLyBTdWItdGV4dCB1bmRlciBhIG51bWJlciBzZXR0aW5nIGxhYmVsIChlLmcuIGNvdW50ZXIgc3RlcC1zaXplIGV4cGxhbmF0aW9uKS5cbi5mZS1ubyAuZmUtc2V0LW51bWJlci1zdWIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICBjb2xvcjogIzZiNmY3ODtcbiAgICBtYXJnaW46IDJweCAwIDhweDtcbn1cblxuLy8gTnVtYmVyIHNldHRpbmdzIGFyZSB0aGUgcmVhbCBxZG5hcHJvLWlucHV0IGNvbXBvbmVudCAoQWJzdHJhY3ROdW1iZXIudnVlLFxuLy8gMDUuMDguMjAyNikuIEEgbnVtYmVyIG5ldmVyIG5lZWRzIHRoZSBmdWxsIHBhbmVsIHdpZHRoIOKAlCAzIGRpZ2l0cyBpcyB0aGVcbi8vIHdpZGVzdCBhbnkgb2YgdGhlbSBnZXRzIChoYW5kb3ZlciBkZWFkbGluZSBjYXBzIGF0IDM2NSkg4oCUIHNvIGV2ZXJ5ICdudW1iZXInXG4vLyBibHVlcHJpbnQgZWxlbWVudCBpcyBjYXBwZWQgbmFycm93IGluc3RlYWQgb2Ygc3RyZXRjaGluZyBhY3Jvc3MgdGhlIHBhbmVsLlxuLmZlLXNldC1udW1iZXItZmllbGQge1xuICAgIG1heC13aWR0aDogMTIwcHg7XG59XG5cbi8vIEV2ZW4gbmFycm93ZXIgZm9yIHRoZSBTY29yZS9OUFMgXCJjb21tZW50X3RocmVzaG9sZFwiIHNldHRpbmcgKFwiQXNrIGZvciBhXG4vLyBjb21tZW50IGF0IHNjb3JlIHVwIHRvIGFuZCBpbmNsdWRpbmdcIik6IHRoYXQgc2NhbGUgbmV2ZXIgZXhjZWVkcyAyIGRpZ2l0c1xuLy8gKG1heCBcIjEwXCIpLCBhbmQgdGhlIHZhbHVlIHJlYWRzIGJldHRlciBjZW50cmVkLiBTY29wZWQgdG8gT05MWSB0aGF0IGluc3RhbmNlXG4vLyB2aWEgdGhlIGNvbmRpdGlvbmFsIGNsYXNzIG9uIHRoZSB3cmFwcGVyIChnZXRTZWxlY3RlZE5vZGVOYW1lID09PVxuLy8gJ2NvbW1lbnRfdGhyZXNob2xkJykuIFtLaW0gMjAyNi0wNy0xMV1cbi8vIChUaGUgY2VudHJpbmcgaXRzZWxmIGlzIHRoZSBjb21wb25lbnQncyBvd24gYWxpZ249XCJjZW50ZXJcIiBhdHRyaWJ1dGUsIG5vdCBDU1MuKVxuLmZlLWZvcm0tLWNvbXBhY3QtbnVtYmVyIC5mZS1zZXQtbnVtYmVyLWZpZWxkIHtcbiAgICBtYXgtd2lkdGg6IDcycHg7XG59XG5cbi8vIEJsdWVwcmludCBlbGVtZW50IHR5cGUgJ25vZGVfaW1hZ2UnIChBYnN0cmFjdE5vZGVJbWFnZS52dWUpOiBhIHNlY29uZCwgb3B0aW9uYWxcbi8vIGltYWdlIG9uIGEgbm9kZSB1bmRlciBpdHMgb3duIG1ldGEga2V5IOKAlCBmaXJzdCBjb25zdW1lciBpcyB0aGUgaGFuZG92ZXIgZW5kXG4vLyBzY3JlZW4uIERlbGliZXJhdGVseSBwbGFpbjogYSBib3VuZGVkIHByZXZpZXcgcGx1cyBpdHMgdHdvIGJ1dHRvbnMuIFRoZSBxdWVzdGlvblxuLy8gZGlzcGxheSBpbWFnZSAoQWJzdHJhY3RJbWFnZSkgaGFzIGl0cyBvd24sIG11Y2ggcmljaGVyIGxlZnQtcGFuZWwgdHJlYXRtZW50LlxuLy8gW0tpbSAwNS4wOC4yMDI2XVxuLmZlLXNldC1pbWFnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuXG4uZmUtc2V0LWltYWdlLXByZXZpZXcge1xuICAgIG1heC13aWR0aDogMjIwcHg7XG4gICAgbWF4LWhlaWdodDogMTYwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZWE7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLmZlLXNldC1pbWFnZS1hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLy8gQW1iZXIgXCJ3aHkgaXMgdGhpcyBkaXNhYmxlZFwiIGhpbnQgc2hvd24gdW5kZXIgYSBzZXR0aW5nIHRoYXQgaXRzIGRlcGVuZHNfb25cbi8vIGhhcyBncmV5ZWQgb3V0IChlLmcuIGF1dG9fc3VtIHdoZW4gbm90IFwiaW5wdXQgZm9yIGV2ZXJ5IHVuaXRcIikuIFtLaW0gMjAyNi0wNi0xOV1cbi5mZS1ubyAuZmUtc2V0LWRpc2FibGVkLWhpbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWFyZ2luOiAycHggMCA2cHg7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZGY0ZTM7XG4gICAgY29sb3I6ICM4YTYxMDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuXG4gICAgcWRuYXByby1pY29uIHsgZmxleDogMCAwIGF1dG87IHdpZHRoOiAxNHB4OyBoZWlnaHQ6IDE0cHg7IG1hcmdpbi10b3A6IDFweDsgY29sb3I6ICNjOThhMDA7IH1cbn1cblxuLy8gV2lkZXIgbGVmdCBpbmZvIHBhbmVsIHNvIHRoZSBsaXZlIGV4YW1wbGUgZ2V0cyBtb3JlIHJvb20gKEtpbSAyMDI2LTA2LTE4KS5cbi8vIE92ZXJyaWRlcyB0aGUgd2l6YXJkIGRlZmF1bHQgKC53bS1pbmZvIGZsZXggMCAwIDI2MHB4IGluIHN0eWxlLXYxLmNzcykuXG4uZmUtbm8gLndtLWluZm8ge1xuICAgIGZsZXg6IDAgMCAzODBweDtcbn1cblxuLy8gLi4uIGV4Y2VwdCB3aGVuIHRoZXJlIGlzIG5vIHByZXZpZXcgdG8gZ2l2ZSByb29tIHRvIChoYW5kb3ZlcikuIEJhY2sgdG8gdGhlXG4vLyB3aXphcmQncyBvd24gMjYwcHggaW5mbyBwYW5lbCBpbnN0ZWFkIG9mIGEgbWFkZS11cCB3aWR0aCwgYW5kIHRoZSByaWdodCBzaWRlXG4vLyBrZWVwcyB0aGUgc3BhY2Ugc2luY2UgdGhlIHN0ZXAgd2lkdGggZG9lcyBub3QgY2hhbmdlLiBbS2ltIDA0LjA4LjIwMjZdXG4uZmUtbm8tLW5vcHJldiAud20taW5mbyB7XG4gICAgZmxleDogMCAwIDI2MHB4O1xufVxuXG4vLyBEcm9wIHRoZSBsZWdhY3kgbmF2eSBzZWN0aW9uIGRpdmlkZXIgKyBpdHMgb3ZlcnNpemVkIDQwLzMycHggcGFkZGluZyBpbnNpZGVcbi8vIHRoZSBuZXcgbW9kYWwgKHRoYXQgcGFkZGluZyB3YXMgdGhlIFwidGUgdmVlbCB3aXRydWltdGVcIiBiZXR3ZWVuIGZpZWxkcykuXG4uZmUtbm8gLmZlLXNlY3Rpb24ge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgcGFkZGluZzogMTBweCAwO1xufVxuXG4vLyBTZXR0aW5ncyB0YWJzIHJlbmRlcmVkIGxpa2UgdGhlIGFjdGl2aXR5L3Byb2plY3QgbW9kYWw6IGNsZWFuIHRvZ2dsZSByb3dzXG4vLyAobGFiZWwgKyBzdWIgKyBxZG5hcHJvLXRvZ2dsZSkgdW5kZXIgcHVycGxlIHNlY3Rpb24gdGl0bGVzLiBUaGVcbi8vIC5xZG5hcHJvLW1vZGFsLSogaGVscGVycyBhcmUgc2NvcGVkIHRvIC5xZG5hcHJvLW1vZGFsIGluIF9tb2RhbC5zY3NzLCBzbyB3ZVxuLy8gcmVkZWZpbmUgdGhlbSBoZXJlIGZvciB0aGUgd2l6YXJkIG1vZGFsLiBbS2ltIDIwMjYtMDYtMThdXG4uZmUtbm8gLmZlLXNldC1ibG9jayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmZlLW5vIC5mZS1zZXQtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAxMnB4IDA7XG59XG5cbi8vIHRvZ2dsZV9pbnB1dDogdGhlIHJldmVhbGVkIGlucHV0IGZpZWxkKHMpIHVuZGVyIGEgdG9nZ2xlIHJvdyAoS2ltIDIwMjYtMDYtMTgpXG4uZmUtbm8gLmZlLXRpLWlucHV0cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAwIDAgMTJweCAycHg7XG5cbiAgICAvLyBUd28tdXAgKGUuZy4gSW4gcmFuZ2Ugc3RhcnQvZW5kKVxuICAgICYuZmUtdGktaW5wdXRzLS1tdWx0aSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICAuZmUtdGktZmllbGQgeyBmbGV4OiAxIDEgMTQwcHg7IH1cbiAgICB9XG59XG4uZmUtbm8gLmZlLXRpLWZpZWxkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG59XG4uZmUtbm8gLmZlLXRpLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogdmFyKC0tcWRuYS1jb2xvci10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbn1cbi5mZS1ubyAuZmUtdGktaW5wdXQge1xuICAgIGhlaWdodDogMzhweDtcbiAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkOGQ2ZWE7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY29sb3I6ICMxZjI0MzA7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTQwbXMgZWFzZSwgYm94LXNoYWRvdyAxNDBtcyBlYXNlO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzQwNDk5YTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoNjQsIDczLCAxNTQsIDAuMTUpO1xuICAgIH1cbn1cbi5mZS1ubyAucWRuYXByby1tb2RhbC10b2dnbGUtdGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cbi5mZS1ubyAucWRuYXByby1tb2RhbC10b2dnbGUtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGIwYjBkO1xufVxuLmZlLW5vIC5xZG5hcHJvLW1vZGFsLXRvZ2dsZS1zdWIge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBjb2xvcjogIzZiNzI4MDtcbn1cbi5mZS1ubyAucWRuYXByby1tb2RhbC1zZWN0aW9uLXRpdGxlLFxuLmZlLW5vIC5mZS1zZXQtc2VjdGlvbiB7XG4gICAgbWFyZ2luOiAxOHB4IDAgMnB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xufVxuXG4vLyBTZWdtZW50LXRpbGVzIGluc2lkZSBhIHNldHRpbmdzIHRhYiAoZS5nLiBkaXNwbGF5X3R5cGUpIOKAlCBsYWJlbCArIHRpbGVzLlxuLmZlLW5vIC5mZS1uby10aWxlcy1ibG9jayB7XG4gICAgbWFyZ2luOiA4cHggMCAxNnB4O1xuXG4gICAgLnFkbmFwcm8tbW9kYWwtdG9nZ2xlLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG59XG5cbi8vIFNlZ21lbnQgbGl2ZXMgaW4gdGhlIGhlYWRlciByb3cgbm93OyBmaWxsIHRoZSBzcGFjZSArIGNlbnRlciBpdCAoY2xvc2UgYnV0dG9uXG4vLyBzaXRzIHRvIGl0cyByaWdodCkuIFR5cGUgcGlsbCBtb3ZlZCB0byB0aGUgbGVmdCBpbmZvIHBhbmVsLlxuLmZlLW5vLXNlZyB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi8vIFR5cGUgcGlsbCBpbiB0aGUgbGVmdCBpbmZvIHBhbmVsIHN0YXlzIGNvbnRlbnQtd2lkdGgsIHRvcC1sZWZ0LlxuLmZlLW5vIC53bS1pbmZvIC5mZS1uby1waWxsIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xufVxuXG4vLyBJbnB1dC10eXBlIHNlbGVjdG9yIChzZWdtZW50LXRpbGVzKSBzaXRzIHVuZGVyIHRoZSBzdWJ0ZXh0LCBwcm9taW5lbnQuXG4uZmUtbm8gLmZlLW5vLWlucHV0dHlwZSB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcblxuICAgIC8vIFwiSW52b2VydHlwZVwiIGxhYmVsICsgc3VidGV4dCBvbiB0aGUgbGVmdCwgdGhlIHR5cGUtc2V0dGluZ3Mgc2hvcnRjdXQgYnV0dG9uIG9uXG4gICAgLy8gdGhlIHJpZ2h0LCB2ZXJ0aWNhbGx5IGNlbnRlcmVkIHNvIGl0IHNpdHMgQkVTSURFIFRIRSBTVUJURVhUIChhIGJpdCBsb3dlciB0aGFuXG4gICAgLy8gdGhlIGxhYmVsKS4gW0tpbSAyMDI2LTA2LTE5XVxuICAgIC5mZS1uby1pbnB1dHR5cGUtaGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIH1cbiAgICAuZmUtbm8taW5wdXR0eXBlLWhlYWQtdGV4dCB7IG1pbi13aWR0aDogMDsgfVxuICAgIC5mZS1ubS1xLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICB9XG5cbiAgICAvLyBIZWxwZXIgbGluZTogZXhwbGFpbnMgdGhlIGlucHV0IHR5cGUgZ2F0ZXMgd2hpY2ggc2V0dGluZ3MgYXBwZWFyIChLaW0gMjAyNi0wNi0xOClcbiAgICAuZmUtbm8taW5wdXR0eXBlLWhpbnQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgY29sb3I6IHZhcigtLXFkbmEtY29sb3ItdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgfVxufVxuXG4vLyBNdWx0aS1zZWxlY3Qgbm9kZS13aWRlIFwiVm9sZ2VuZGUgc3RhcFwiIGhpbnQg4oCUIHNhbWUgbXV0ZWQgc21hbGwgc3R5bGUgYXMgdGhlXG4vLyBcIlR5cGUgYW50d29vcmRcIiBoZWxwZXIsIGJ1dCBpdHMgb3duIHRvcC1sZXZlbCBydWxlICh0aGUgaW5wdXR0eXBlLWhpbnQgYWJvdmUgaXNcbi8vIHNjb3BlZCB0byAuZmUtbm8taW5wdXR0eXBlLCBzbyBpdCBkaWRuJ3QgYXBwbHkgaGVyZSkuIFtLaW0gMjIuMDYuMjAyNl1cbi5mZS1tdWx0aS1uZXh0LXN0ZXAtaGludCB7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBjb2xvcjogdmFyKC0tcWRuYS1jb2xvci10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbn1cblxuLy8gU2NhbGUtY2hhbmdlIHBlbmRpbmctc3luYyBoaW50IChMaW5rcy52dWUncyBzY2FsZVBlbmRpbmdTeW5jTm90aWNlLCBLaW0nc1xuLy8gdGVzdCBmZWVkYmFjayAyMDI2LTA3LTExKSDigJQgc2FtZSBtdXRlZCBzbWFsbCBzdHlsZSBhcyB0aGUgdHdvIGhpbnRzIGFib3ZlLFxuLy8gb3duIHRvcC1sZXZlbCBydWxlIGZvciB0aGUgc2FtZSByZWFzb24gKExpbmtzLnZ1ZSdzIGFuc3dlci1vcHRpb25zIGxpc3Rcbi8vIGlzbid0IG5lc3RlZCB1bmRlciAuZmUtbm8taW5wdXR0eXBlIGVpdGhlcikuIFNpdHMgYmV0d2VlbiB0aGUgbGlzdCBoZWFkZXJcbi8vIGFuZCB0aGUgYW5zd2VyLW9wdGlvbiByb3dzLiBbS2ltXVxuLmZlLXNjYWxlLXN5bmMtaGludCB7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBjb2xvcjogdmFyKC0tcWRuYS1jb2xvci10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbn1cblxuLy8gQW5zd2VyLW9wdGlvbiBkcmFnIHBvbGlzaDogdGhlIHB1cnBsZSBkcm9wLWxpbmUgaW5kaWNhdG9yIChsYW5kaW5nIHNwb3QpICsgYVxuLy8gc2V0dGxlIG9uIHRoZSBkcm9wcGVkIHJvdy4gTWlycm9ycyB0aGUgdGFza2xpc3QgaW5zZXJ0LWxpbmUgbG9vayAoIzQ2NTJmMywgMnB4LFxuLy8gZ2xvdykuIFRoZSBGTElQIHNsaWRlIG9mIHRoZSBuZWlnaGJvdXJzIGlzIGRyaXZlbiBpbmxpbmUgYnkgTGlzdC52dWUuIFtLaW0gMjIuMDYuMjAyNl1cbi5mZS1saW5rLWxpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gYW5jaG9yIGZvciB0aGUgYWJzb2x1dGUgZHJvcC1saW5lXG59XG4uZmUtZHJvcC1saW5lIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICAvLyBObyBuZWdhdGl2ZSBtYXJnaW46IGF0IHRoZSBUT1AgZ2FwICh0b3A6MCkgYSAtMXB4IG1hcmdpbiBwdXNoZWQgdGhlIGxpbmUgYWJvdmVcbiAgICAvLyB0aGUgc2Nyb2xsLWNvbnRhaW5lcidzIGNsaXAgZWRnZSBzbyBvbmx5IDFweCBzaG93ZWQgKFwia2xlaW4gc3RyZWVwamVcIikuIFNpdCBpdFxuICAgIC8vIGV4YWN0bHkgb24gdGhlIGdhcCBib3VuZGFyeSBpbnN0ZWFkLiBbS2ltIDIyLjA2LjIwMjZdXG4gICAgYmFja2dyb3VuZDogIzQ2NTJmMztcbiAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSg3MCwgODIsIDI0MywgMC41NSk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogNTtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMTIwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC44LCAwLjIsIDEpO1xufVxuLnFkbmFwcm8tYW5zd2VyLW9wdGlvbltkYXRhLWZlLXNldHRsZV0ge1xuICAgIGFuaW1hdGlvbjogZmUtYW8tc2V0dGxlIDI2MG1zIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKTtcbn1cbkBrZXlmcmFtZXMgZmUtYW8tc2V0dGxlIHtcbiAgICAwJSAgIHsgYm94LXNoYWRvdzogMCA4cHggMjBweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjIwKTsgfVxuICAgIDEwMCUgeyBib3gtc2hhZG93OiBub25lOyB9XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5mZS1kcm9wLWxpbmUgeyB0cmFuc2l0aW9uOiBub25lOyB9XG4gICAgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbltkYXRhLWZlLXNldHRsZV0geyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLy8gTm9uLWJsb2NraW5nIGNvbmZsaWN0IHdhcm5pbmcgdW5kZXIgYSBzZXR0aW5nIChlLmcuIGJhcmNvZGUgKyBHZWhlZWwgZ2V0YWwpLlxuLy8gQW1iZXIsIHJldXNlcyB0aGUgZGVzaWduLXN5c3RlbSB3YXJuaW5nIHBhbGV0dGUuIFtLaW0gMjIuMDYuMjAyNl1cbi5mZS1wcm9wLXdhcm5pbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWFyZ2luOiA2cHggMCAwO1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmM2NkO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMGQwNjA7XG4gICAgY29sb3I6ICM5YTZhMTA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG5cbiAgICAubWRpIHsgZm9udC1zaXplOiAxNXB4OyBsaW5lLWhlaWdodDogMS4zOyBmbGV4LXNocmluazogMDsgfVxufVxuXG4vLyBOb24tYmxvY2tpbmcgaW5mb3JtYXRpb25hbCBub3RpY2UgdW5kZXIgYSBzZXR0aW5nLCBlLmcuIFllcy9ObydzIHRodW1icyArXG4vLyBcIkFuc3dlciBwZXIgdW5pdFwiIHBob25lLXBhcml0eSBub3RpY2UgKFllc05vLnBocCwgYWN0aXZlQWxlcnQoKSBpblxuLy8gUHJvcGVydGllcy52dWUpLiBxZG5hcHJvLWFsZXJ0ICh0eXBlPVwiaW5mb1wiKSBvd25zIGl0cyBvd24gY2hyb21lIOKAlCBvbmx5IHRoZVxuLy8gdG9wIHNwYWNpbmcgbmVlZHMgbWF0Y2hpbmcgdG8gLmZlLXByb3Atd2FybmluZyBhYm92ZS4gW0tpbSAxMi4wNy4yMDI2XVxuLmZlLXByb3AtYWxlcnQge1xuICAgIG1hcmdpbjogNnB4IDAgMDtcbn1cblxuLy8gUHJldmlldyBncm91cGVkIGluIHRoZSBMRUZUIGluZm8gcGFuZWwgKEtpbSAyMDI2LTA2LTE4KVxuLmZlLW5vLXByZXZpZXctZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG59XG4uZmUtbm8tcHJldmlldy1idG4ge1xuICAgIHFkbmFwcm8taWNvbiB7IG1hcmdpbi1yaWdodDogNnB4OyB9XG59XG5cbi8vIEhhbmRvdmVyOiB0aGUgbGVmdCBwYW5lbCBzaG93cyBhbiBpbGx1c3RyYXRpb24gaW5zdGVhZCBvZiBhIGxpdmUgcHJldmlldyBjYXJkLFxuLy8gYmVjYXVzZSBhIGhhbmRvdmVyIGhhcyBubyBzY3JlZW4gaW4gdGhlIGFwcCAoc2VlIGlzSGFuZG92ZXIgaW4gTm9kZU9wdGlvbnMudnVlKS5cbi8vIE5vIGNhcHRpb24gYW5kIG5vIGV4cGxhbmF0aW9uIHRleHQsIHNvIHRoZSBpbGx1c3RyYXRpb24gaXMgdGhlIG9ubHkgdGhpbmcgaGVyZVxuLy8gYW5kIGl0IGNlbnRyZXMgaW4gd2hhdGV2ZXIgaGVpZ2h0IGlzIGxlZnQgdW5kZXIgdGhlIGRlc2NyaXB0aW9uLiBbS2ltIDA0LjA4LjIwMjZdXG4uZmUtbm8tbm9wcmV2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgLy8gVGFrZSB0aGUgbGVmdG92ZXIgcGFuZWwgaGVpZ2h0IHNvIHRoZSBpbGx1c3RyYXRpb24gcmVhZHMgYXMgcGxhY2VkIHJhdGhlclxuICAgIC8vIHRoYW4gYXMgdG9wLWFsaWduZWQgd2l0aCBhIGdhcCB1bmRlcm5lYXRoOyBtaW4taGVpZ2h0IGxldHMgaXQgc2hyaW5rIGZpcnN0XG4gICAgLy8gb24gYSBzaG9ydCB2aWV3cG9ydCBpbnN0ZWFkIG9mIG92ZXJmbG93aW5nIHRoZSAob3ZlcmZsb3c6aGlkZGVuKSBwYW5lbC5cbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xufVxuLmZlLW5vLW5vcHJldi1pbGx1IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAgIC8vIGhvcml6b250YWFsIGdlY2VudHJlZXJkXG5cbiAgICAvLyBUaGlzIGlsbHVzdHJhdGlvbiBpcyBhIHRhbGwgMTo0IHN0cmlwLCBzbyBpdHMgaGVpZ2h0IGlzIHdoYXQgbmVlZHMgY2FwcGluZyxcbiAgICAvLyBub3QgaXRzIHdpZHRoLiBgc2l6ZWAgb24gdGhlIGNvbXBvbmVudCBzZXRzIHRoZSBXSURUSDsgbWF4LWhlaWdodCBoZXJlIGtlZXBzXG4gICAgLy8gaXQgaW5zaWRlIGEgc2hvcnQgcGFuZWwgYXMgd2VsbC4gQm90aCBtYXhpbWEgYXBwbHkgdG8gdGhlIHJlcGxhY2VkIDxpbWc+LCBzb1xuICAgIC8vIHRoZSBhc3BlY3QtcmF0aW8gaXMgcHJlc2VydmVkIGFuZCBpdCBzaW1wbHkgZml0cyB0aGUgc21hbGxlciBvZiB0aGUgdHdvLlxuICAgIC8vIFN0eWxlZCB2aWEgdGhpcyB3cmFwcGVyIGFuZCBOT1QgdmlhIGEgY2xhc3Mgb24gdGhlIGhvc3Q6IHFkbmFwcm8taWxsdXN0cmF0aW9uXG4gICAgLy8gcmV3cml0ZXMgaXRzIG93biBjbGFzc05hbWUgb24gZXZlcnkgcmVuZGVyIGFuZCB3b3VsZCB3aXBlIGl0LlxuICAgIC5pbGx1c3RyYXRpb24taW1nIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogbWluKDQydmgsIDQwMHB4KTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxufVxuXG4vLyBDb21wYWN0IGFjdGlvbiByb3cgYWJvdmUgdGhlIHByZXZpZXc6IFtBZmJlZWxkaW5nIHRvZXZvZWdlbl0gW0Jla2lqayBpbiBhcHBdXG4uZmUtbm8tYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbn1cblxuLy8gXCJbdHlwZS1pY29uXSBJbnN0ZWxsaW5nZW4g4oC6XCIgYnV0dG9uIHVuZGVyIHRoZSBpbnB1dC10eXBlIHRpbGVzIOKAlCBqdW1wcyB0byBJbnN0ZWxsaW5nZW4uXG4uZmUtbm8gLmZlLW5vLXR5cGVzZXR0aW5ncy1idG4ge1xuICAgIGZsZXgtc2hyaW5rOiAwOyAgIC8vIHNpdHMgYmVzaWRlIHRoZSBcIkludm9lcnR5cGVcIiBsYWJlbCAoaW4gLmZlLW5vLWlucHV0dHlwZS1oZWFkKVxuXG4gICAgcWRuYXByby1pY29uOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXJpZ2h0OiA2cHg7IH0gIC8vIGxlYWRpbmcgdHlwZSBpY29uXG4gICAgcWRuYXByby1pY29uOmxhc3QtY2hpbGQgIHsgbWFyZ2luLWxlZnQ6IDRweDsgfSAgIC8vIHRyYWlsaW5nIGNoZXZyb25cbn1cblxuLy8gXCJGb3JtYWF0XCIgdHlwZTogYSBncm91cGVkIGRyb3Bkb3duIHJpZ2h0IHVuZGVyIHRoZSBpbnB1dC10eXBlIHRpbGVzIChubyBtb2RhbCkuXG4vLyBHcm91cCBsYWJlbHMgdXNlIHRoZSBidWlsdC1pbiBxZG5hcHJvLW1lbnUtc2VjdGlvbi1oZWFkaW5nIChBbGdlbWVlbiAvIFpvcmcpO1xuLy8gcWRuYXByby1zZWxlY3Qgbm93IGZvcndhcmRzIHNlY3Rpb24taGVhZGluZ3MgKyBkaXZpZGVycyBpbnRvIGl0cyBwb3BvdmVyLlxuLmZlLW5vIC5mZS1uby1mb3JtYXQtcm93IHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIC5mZS1uby1mb3JtYXQtc2VsZWN0IHsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMDAlOyB9XG59XG5cbi8vIFwiU3RhcnQgZmxvdyBpbiBhcHBcIiBmb290ZXIgYnV0dG9uIOKAlCBhIGxpZ2h0IHN0cmVhayBzd2VlcHMgYWNyb3NzIHBlcmlvZGljYWxseSB0b1xuLy8gZHJhdyB0aGUgZXllIHRvIHRoZSB0ZXN0IGFjdGlvbiAobWlycm9ycyB0aGUgdHJhbnNsYXRpb24tcGFuZWwgc2hpbW1lcikuIFtLaW0gMjAyNi0wNi0xOV1cbi5mZS1ubyAuZmUtbm8tc3RhcnRmbG93LWJ0biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBxZG5hcHJvLWljb24geyBtYXJnaW4tcmlnaHQ6IDZweDsgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogNTUlO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTIwZGVnLCB0cmFuc3BhcmVudCAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ1KSA1MCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpO1xuICAgICAgICBhbmltYXRpb246IGZlLW5vLXN0YXJ0Zmxvdy1zaGltbWVyIDMuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC8vIEEgZGlzYWJsZWQgYnV0dG9uIG11c3Qgbm90IGtlZXAgZHJhd2luZyB0aGUgZXllIHRvIGFuIGFjdGlvbiB5b3UgY2Fubm90XG4gICAgLy8gdGFrZSAoaGFuZG92ZXIgbm9kZXMpLiBbS2ltIDA0LjA4LjIwMjZdXG4gICAgJltkaXNhYmxlZF06OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogbm9uZTtcbiAgICB9XG59XG5Aa2V5ZnJhbWVzIGZlLW5vLXN0YXJ0Zmxvdy1zaGltbWVyIHtcbiAgICAwJSAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAlKTsgfVxuICAgIDMwJSAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjIwJSk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIyMCUpOyB9XG59XG5cbi8vIEltYWdlLXVwbG9hZCBhcyBhIGNvbXBhY3QgYnV0dG9uIChtaXJyb3JzIHRoZSBzZWNvbmRhcnktcHVycGxlIGJ1dHRvbiBsb29rKS5cbi8vIFR3byBleHBsaWNpdCByb3dzIHNpbmNlIHRoZSBicmllZmluZyBidXR0b24gam9pbmVkIHRoaXMgdG9vbGJhcjogcm93IDEgaG9sZHMgdGhlXG4vLyBpbWFnZSBjb250cm9scywgcm93IDIgaG9sZHMgYnJpZWZpbmcgKGxlZnQpICsgdGV4dCBhbGlnbm1lbnQgKHJpZ2h0KS4gQmVmb3JlIHRoaXNcbi8vIHRoZSB3aG9sZSB0aGluZyB3YXMgb25lIHdyYXBwaW5nIGZsZXggcm93LCBzbyB0aGUgYWxpZ25tZW50IHRvZ2dsZXMgZHJvcHBlZCB0byBhXG4vLyBzZWNvbmQgbGluZSBieSBhY2NpZGVudCBhbmQgbW92ZWQgYXJvdW5kIGFzIGJ1dHRvbnMgYXBwZWFyZWQuIFtLaW0gMDMuMDguMjAyNl1cbi5mZS1uby1pbWcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG59XG4uZmUtbm8taW1nLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbn1cbi8vIEltYWdlLXBvc2l0aW9uIHBpY2tlcjogaWNvbiBidXR0b24gKyBhIHNtYWxsIHBvcG92ZXIgbWVudSBhbmNob3JlZCBiZWxvdyBpdC5cbi5mZS1uby1pbWctcG9zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4uZmUtbm8taW1nLXBvcy1iYWNrZHJvcCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGluc2V0OiAwO1xuICAgIHotaW5kZXg6IDQwO1xufVxuLmZlLW5vLWltZy1wb3MtbWVudSB7XG4gICAgLy8gRml4ZWQgKG5vdCBhYnNvbHV0ZSkgc28gaXQgZXNjYXBlcyAuZmUtcHYtc2NyZWVuJ3Mgb3ZlcmZsb3cgY2xpcDsgdG9wL3JpZ2h0XG4gICAgLy8gYXJlIHNldCBpbmxpbmUgYnkgQWJzdHJhY3RJbWFnZS50b2dnbGVQb3NpdGlvbk1lbnUoKSBmcm9tIHRoZSB0cmlnZ2VyJ3MgcmVjdCxcbiAgICAvLyByaWdodC1hbGlnbmVkIHRvIHRoZSBidXR0b24gYW5kIHZpZXdwb3J0LWNsYW1wZWQuIHotaW5kZXggYWJvdmUgdGhlIGZpeGVkXG4gICAgLy8gYmFja2Ryb3AgKHogNDApLiBbS2ltIDIwMjYtMDctMTNdXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDUwO1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMjAsIDI0LCA2MCwgMC4xOCk7XG4gICAgcGFkZGluZzogNHB4O1xufVxuLmZlLW5vLWltZy1idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDdweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q4ZDZlYTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTQwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE0MG1zIGVhc2U7XG5cbiAgICBxZG5hcHJvLWljb24geyBjb2xvcjogIzQwNDk5YTsgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmNGYzZmI7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2MzYmZlNDtcbiAgICB9XG59XG4uZmUtbm8taW1nLXJlbW92ZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogI2IzMjYxZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWNjOWM2O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogI2ZkZWNlYjsgfVxufVxuXG4vLyDilIDilIAgRm9ybSBlZGl0b3IgZmFzZSA1IChsb2dpYyk6IERpc3BsYXlMb2dpYy52dWUgKyBJZkNvbmRpdGlvbi52dWUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBTZW50ZW5jZS1zdHlsZSBjb25kaXRpb24gcm93cyAoXCJUb29uIGRlemUgdnJhYWcgYWxsZWVuIGFscyA8dnJhYWc+IDxvcD4gPHdhYXJkZT5cIiksXG4vLyBtaXJyb3JzIHRoZSBCSSBjZWxsLWVkaXRvciBjb25kaXRpb24gYnVpbGRlciBVWCAoY2FyZF92aWV3Lmh0bWwgYmlSZW5kZXJDb25kcylcbi8vIHdpdGhvdXQgaW1wb3J0aW5nIHRoYXQgY29kZS4gW0tpbSBmYXNlIDVdXG4uZmUtbG9naWMtc2VjdGlvbiB7XG4gICAgLmZlLWxvZ2ljLW1hdGNoIHtcbiAgICAgICAgbWFyZ2luOiA2cHggMCAxMnB4O1xuICAgIH1cblxuICAgIC5mZS1sb2dpYy1lbXB0eS1oaW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjRmNWZiO1xuICAgICAgICBjb2xvcjogIzZiNmY3ODtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIH1cblxuICAgIC5mZS1sb2dpYy1hZGQtaWYtYnRuIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAjNDY1MmYzO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHJnYmEoNzAsIDgyLCAyNDMsIDAuMzApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNDBtcyBlYXNlLCBib3JkZXItY29sb3IgMTQwbXMgZWFzZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmMGYxZmI7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNTUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZlLWxvZ2ljLXJ1bGVzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgfVxuXG4gICAgLmZlLWxvZ2ljLXJ1bGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjhmOGZiO1xuICAgIH1cblxuICAgIC5mZS1sb2dpYy1ydWxlLXByZWZpeCB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgICAgICBtaW4td2lkdGg6IDUycHg7XG4gICAgfVxuXG4gICAgLmZlLWxvZ2ljLXJ1bGUtbm9kZSB7XG4gICAgICAgIGZsZXg6IDEgMSAyMjBweDtcbiAgICAgICAgbWluLXdpZHRoOiAxODBweDtcbiAgICB9XG5cbiAgICAuZmUtbG9naWMtcnVsZS1vcCB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDcycHg7XG4gICAgfVxuXG4gICAgLmZlLWxvZ2ljLXJ1bGUtdmFsdWUge1xuICAgICAgICBmbGV4OiAxIDEgMTYwcHg7XG4gICAgICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgfVxuXG4gICAgLmZlLWxvZ2ljLXJ1bGUtZGVsIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgIGhlaWdodDogMjZweDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIGNvbG9yOiAjOWFhMGNjO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMTQwbXMgZWFzZSwgYmFja2dyb3VuZCAxNDBtcyBlYXNlO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICNjODQ4NWI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIwMCwgNzIsIDkxLCAwLjA4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mZS1sb2dpYy10YXJnZXQtbGFiZWwge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNHB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cbi8vIEZvcm0gZWRpdG9yIGZhc2UgNCBkZWxpdmVyeSAyIChwbGFuIHNlY3Rpb24gRSk6IGJyaWVmIGhpZ2hsaWdodCB3aGVuIGEgbG9naWNcbi8vIGNoaXAgY2xpY2sgc2Nyb2xscyB0aGlzIHNlY3Rpb24gaW50byB2aWV3IChOb2RlT3B0aW9ucy52dWUnc1xuLy8gbm9kZV9vcHRpb25zX2ZvY3VzX3NlY3Rpb24gd2F0Y2hlciB0b2dnbGVzIHRoaXMgY2xhc3MgZm9yIH4xLjRzKS4gW0tpbSBmYXNlIDQgZGVsaXZlcnkgMl1cbi5mZS1sb2dpYy1zZWN0aW9uLmZlLWxvZ2ljLXNlY3Rpb24tLWZvY3VzIHtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGFuaW1hdGlvbjogZmUtbG9naWMtZm9jdXMtZmxhc2ggMTMwMG1zIGVhc2U7XG59XG5Aa2V5ZnJhbWVzIGZlLWxvZ2ljLWZvY3VzLWZsYXNoIHtcbiAgICAwJSB7IGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMTQpOyB9XG4gICAgMTAwJSB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG59XG5cbi8vIOKUgOKUgCBGb3JtIGVkaXRvciBmYXNlIDQ6IG1vZGFsIHRhYiAyIFwiVnJhZ2VuXCIgKFBMQU4tZm9ybS1jYXJkLXJlZGVzaWduLm1kIMKnRCkg4pSA4pSAXG4vLyBRdWVzdGlvbiBsaXN0LCBkcmFnLXJlb3JkZXIsIGRlbGV0ZS4gU2FtZSB2aXN1YWwgbGFuZ3VhZ2UgYXMgdGhlXG4vLyBxZG5hcHJvLWFuc3dlci1vcHRpb24gcm93cyAoI2UyZTRlZiBib3JkZXIsICM0NjUyZjMgZHJhZyBiYXIsIHJlZCBkZWxldGVcbi8vIGFjdGlvbikgYnV0IGhhbmQtYnVpbHQgaGVyZTogbm9uZSBvZiB0aGF0IGNvbXBvbmVudCdzIHZhcmlhbnRzIG9mZmVyIGEgcGxhaW5cbi8vIGljb24gKyBsYWJlbCArIHJlcXVpcmVkLXN0YXIgcmVhZC1vbmx5IHJvdywgYW5kIHRoZSBwbGFuIGV4cGxpY2l0bHkgY2FsbHMgZm9yXG4vLyBOT1QgZXh0ZW5kaW5nIHRoZSBzaGFyZWQgY29tcG9uZW50IGp1c3QgZm9yIHRoaXMuIFtLaW0gZmFzZSA0XVxuLy8gRmFzZSA0IGRlbGl2ZXJ5IDQ6IHJlYWwgcWRuYXByby1lbXB0eS1zdGF0ZSAocmVwbGFjZXMgdGhlIHBsYWluIHR3by1saW5lXG4vLyB0ZXh0IHRoaXMgdXNlZCB0byBiZSkuIE5vIGV4dHJhIHBvc2l0aW9uaW5nIG5lZWRlZCDigJQgdGhlIGNvbXBvbmVudCBjZW50ZXJzXG4vLyBpdHNlbGY7IGp1c3QgY2FwIHRoZSBpbGx1c3RyYXRpb24gc28gYSB0YWxsIHNvdXJjZSBTVkcgY2FuJ3QgYmxvdyBvdXQgdGhlXG4vLyB0YWIncyBoZWlnaHQuIFtLaW0gZmFzZSA0IGRlbGl2ZXJ5IDRdXG4uZmUtZmNxLWVtcHR5LXN0YXRlIHtcbiAgICBwYWRkaW5nOiAxMnB4IDA7XG59XG4uZmUtZmNxLWVtcHR5LWlsbHVzdHJhdGlvbiB7XG4gICAgbWF4LWhlaWdodDogMTYwcHg7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi8vIEZhc2UgNCBkZWxpdmVyeSA0OiBwZXJzaXN0ZW50IFwiK1ZyYWFnIHRvZXZvZWdlblwiIGFmZm9yZGFuY2Ugb25jZSB0aGUgY2FyZFxuLy8gYWxyZWFkeSBoYXMgcXVlc3Rpb25zIOKAlCBmdWxsLXdpZHRoIGRhc2hlZCByb3cgVU5ERVIgdGhlIGxpc3QsIHNhbWUgZGFzaGVkXG4vLyB2b2NhYnVsYXJ5IGFzIC5mZS1mY3EtbW92ZS1yb3cgYWJvdmUgKGJvcmRlci1kYXNoZWQgKyB0aW50ZWQgYmFja2dyb3VuZClcbi8vIGJ1dCBpbiB0aGUgdGFiJ3Mgb3duIHB1cnBsZS1wcmltYXJ5IHRvbmUgKGFuIFwiYWRkXCIgY3VlKSByYXRoZXIgdGhhbiB0aGF0XG4vLyByb3cncyBsYXZlbmRlciBjaG9vc2VyIHRvbmUsIHNvIHRoZSB0d28gZGFzaGVkIHJvd3Mgc3RpbGwgcmVhZCBhcyB2aXN1YWxseVxuLy8gZGlzdGluY3QgYWZmb3JkYW5jZXMuIFtLaW0gZmFzZSA0IGRlbGl2ZXJ5IDRdXG4uZmUtZmNxLWFkZC1yb3cge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCAjYThiMmU4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzQwNDk5YTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlLCBib3JkZXItY29sb3IgMTIwbXMgZWFzZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjA2KTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNDA0OTlhO1xuICAgIH1cbn1cbi5mZS1mY3EtYWRkLXJvd19faWNvbiB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xufVxuXG4vLyBGYXNlIDQgZGVsaXZlcnkgNDogXCJWcmFhZyB0b2V2b2VnZW5cIiB0eXBlLXBpY2tlciB0aWxlIGdyaWQsIHJlbmRlcmVkIGluc2lkZVxuLy8gdGhlIG1vZGFsIGJvZHkgKC5mZS10eXBlcGlja2VyLW1vZGFsIC5tb2RhbC1ib2R5IOKAlCBzZWUgX21vZGFsLnNjc3MgZm9yIHRoZVxuLy8gei1pbmRleCBvdmVycmlkZSkuIFNhbWUgcHVycGxlL2ljb24gbGFuZ3VhZ2UgYXMgLmZlLWZjcS1yb3cgYWJvdmUuXG4vLyBbS2ltIGZhc2UgNCBkZWxpdmVyeSA0XVxuLmZlLXR5cGVwaWNrZXItZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxNDBweCwgMWZyKSk7XG4gICAgZ2FwOiAxMHB4O1xufVxuLmZlLXR5cGVwaWNrZXItdGlsZSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAxNnB4IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZTRlZjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogI2Y0ZjVmYjtcbiAgICBjb2xvcjogIzJhMmU1ZTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxNDBtcywgYm94LXNoYWRvdyAxNDBtcywgYmFja2dyb3VuZCAxNDBtcztcblxuICAgICY6aG92ZXIsICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2E4YjJlODtcbiAgICAgICAgYmFja2dyb3VuZDogI2VlZjBmZjtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoNjQsIDczLCAxNTQsIDAuMTApO1xuICAgIH1cbn1cbi5mZS10eXBlcGlja2VyLXRpbGVfX2ljb24ge1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBjb2xvcjogIzQwNDk5YTtcbn1cbi5mZS10eXBlcGlja2VyLXRpbGVfX2xhYmVsIHtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4vLyBGYXNlIDQgZGVsaXZlcnkgMiAocGxhbiBFKTogdGhlIGNhcmQncyBvd24gaWYtanVtcCwgaW4gcGxhaW4gbGFuZ3VhZ2UsIGFib3ZlXG4vLyB0aGUgbGlzdC4gVGludGVkLWJhbm5lciBzdHlsZSAoaW5mb3JtYXRpdmUsIG5vdCBhIHdhcm5pbmcpLCBzb3VyY2UtYnJhbmNoXG4vLyBnbHlwaCB0byByZWFkIGFzIFwiZmxvdyBsb2dpY1wiIGF0IGEgZ2xhbmNlLiBbS2ltIGZhc2UgNCBkZWxpdmVyeSAyXVxuLmZlLWZjcS1qdW1wLWxpbmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMDcpO1xuICAgIGNvbG9yOiAjMmEyZTVlO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xufVxuLmZlLWZjcS1qdW1wLWxpbmVfX2ljb24ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbi10b3A6IDFweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG59XG5cbi5mZS1mY3EtbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBhbmNob3IgZm9yIHRoZSBhYnNvbHV0ZSAuZmUtZHJvcC1saW5lIChzaGFyZWQgcnVsZSwgfjYxMzcpXG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgID4gLmZlLWZjcS1yb3cgKyAuZmUtZmNxLXJvdyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICB9XG59XG5cbi5mZS1mY3Etcm93IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMTBweCAxMHB4IDEwcHggMThweDsgLy8gbGVmdCBwYWRkaW5nIGNsZWFycyB0aGUgZHJhZyBoYW5kbGUgYmFyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU0ZWY7XG4gICAgLy8gU2FtZSBpZGxlIHN1cmZhY2UgYXMgdGhlIFllcy9ObyBhbnN3ZXItYnV0dG9uIChpdHMgMTIlLXB1cnBsZS1vbi13aGl0ZSBtaXgsXG4gICAgLy8gc2VlIGNvbXBvbmVudHMvdjIvYW5zd2VyLWJ1dHRvbi9fYW5zd2VyLWJ1dHRvbi5zY3NzKSBzbyB0aGUgcXVlc3Rpb24gcm93cyByZWFkXG4gICAgLy8gYXMgdGhlIHNhbWUgXCJhbnN3ZXIgc3VyZmFjZVwiIGZhbWlseSBpbnN0ZWFkIG9mIGEgcGFsZXIgbmVhci13aGl0ZS4gW0tpbSAxNi4wN11cbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSAxMiUsICNmZmYpO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgLy8gZmFzZSA0IGRlbGl2ZXJ5IDIgKEQ1KTogcm93IGNsaWNrIG9wZW5zIHRoZSBxdWVzdGlvbiwgc3RhY2tlZFxuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxNDBtcywgYm94LXNoYWRvdyAxNDBtcywgYmFja2dyb3VuZCAxNDBtcztcblxuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICNhOGIyZTg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDY0LCA3MywgMTU0LCAwLjEwKTtcblxuICAgICAgICAuZmUtZmNxLXJvd19fZHJhZyB7IG9wYWNpdHk6IDE7IH1cbiAgICAgICAgLmZlLWZjcS1yb3dfX21vdmUgeyBvcGFjaXR5OiAxOyBwb2ludGVyLWV2ZW50czogYWxsOyB9XG4gICAgICAgIC5mZS1mY3Etcm93X19kZWxldGUgeyBvcGFjaXR5OiAxOyBwb2ludGVyLWV2ZW50czogYWxsOyB9XG4gICAgfVxufVxuXG4vLyBUZXh0IGNvbHVtbiAobGFiZWwgKyBvcHRpb25hbCBsb2dpYyBjaGlwIHN0YWNrZWQpIOKAlCBmYXNlIDQgZGVsaXZlcnkgMi4gW0tpbSBmYXNlIDQgZGVsaXZlcnkgMl1cbi5mZS1mY3Etcm93X190ZXh0IHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAzcHg7XG59XG5cbi8vIERyYWcgaGFuZGxlIOKAlCBpZGVudGljYWwgYWZmb3JkYW5jZSB0byBxZG5hcHJvLWFuc3dlci1vcHRpb25fX2RyYWcuXG4uZmUtZmNxLXJvd19fZHJhZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDRweDtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgd2lkdGg6IDRweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYmFja2dyb3VuZDogIzQ2NTJmMztcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGVhc2U7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5mZS1mY3Etcm93X19pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG59XG5cbi5mZS1mY3Etcm93X19sYWJlbCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGNvbG9yOiAjMmEyZTVlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLy8gTG9naWMtY2hpcCBwaWxsIChwbGFuIEUpIOKAlCBwbGFpbi1sYW5ndWFnZSBydWxlIHN1bW1hcnksIGNsaWNrIG9wZW5zIHRoZVxuLy8gcXVlc3Rpb24gc3RhY2tlZCwgZm9jdXNlZCBvbiBpdHMgbG9naWMgc2VjdGlvbi4gT3duIGJ1dHRvbiBzbyBpdCBjYW4gc3RvcFxuLy8gcm93LWNsaWNrIHByb3BhZ2F0aW9uIHdoaWxlIHN0aWxsIHJlYWRpbmcgYXMgcGFydCBvZiB0aGUgcm93LiBbS2ltIGZhc2UgNCBkZWxpdmVyeSAyXVxuLmZlLWZjcS1yb3dfX2NoaXAge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDY0LCA3MywgMTU0LCAwLjIyKTtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMDgpO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlLCBib3JkZXItY29sb3IgMTIwbXMgZWFzZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjE0KTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDY0LCA3MywgMTU0LCAwLjM0KTtcbiAgICB9XG59XG4uZmUtZmNxLXJvd19fY2hpcC1pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi8vIFJlcXVpcmVkIGN1ZSDigJQgc2FtZSBjb2xvdXIgYXMgLmZlLWxhYmVsLXJlcXVpcmVkIChtYXRjaGVzIHFkbmFwcm8taW5wdXRcbi8vIC5pbnB1dC1yZXF1aXJlZCksIH4zOTQ4LlxuLmZlLWZjcS1yb3dfX3JlcXVpcmVkIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBjb2xvcjogI2M2NWE1YTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4vLyBcIlZlcnBsYWF0cyBuYWFyIGFuZGVyZSBrYWFydFwiIChENikg4oCUIHNhbWUgaG92ZXItcmV2ZWFsIGFmZm9yZGFuY2UgYXNcbi8vIC5mZS1mY3Etcm93X19kZWxldGUsIG5ldXRyYWwvcHVycGxlIGluc3RlYWQgb2YgcmVkIChub3QgZGVzdHJ1Y3RpdmUpLCBwbHVzXG4vLyBhIHBlcnNpc3RlbnQgdGludCB3aGlsZSBpdHMgY2hvb3NlciBpcyBleHBhbmRlZC4gW0tpbSBmYXNlIDQgZGVsaXZlcnkgMl1cbi5mZS1mY3Etcm93X19tb3ZlIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aWR0aDogMjZweDtcbiAgICBoZWlnaHQ6IDI2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgYmFja2dyb3VuZDogI2VlZjBmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzdjY2VkO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zLCBiYWNrZ3JvdW5kIDEyMG1zLCBib3JkZXItY29sb3IgMTIwbXM7XG5cbiAgICAubWRpIHsgZm9udC1zaXplOiAxNXB4OyB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2RkZTFmZjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYThiMmU4O1xuICAgIH1cblxuICAgICYuZmUtZmNxLXJvd19fbW92ZS0tYWN0aXZlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgICAgYmFja2dyb3VuZDogI2RkZTFmZjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNDA0OTlhO1xuICAgIH1cbn1cblxuLmZlLWZjcS1yb3dfX2RlbGV0ZSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiAjYzk0MDQwO1xuICAgIGJhY2tncm91bmQ6ICNmZGU4ZTg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U4YjBiMDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcywgYmFja2dyb3VuZCAxMjBtcywgYm9yZGVyLWNvbG9yIDEyMG1zO1xuXG4gICAgLm1kaSB7IGZvbnQtc2l6ZTogMTVweDsgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmNjY2M7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2M5NDA0MDtcbiAgICB9XG59XG5cbi8vIEQ2IGlubGluZSBcIm1vdmUgdG8gYW5vdGhlciBjYXJkXCIgY2hvb3NlciDigJQgZXhwYW5kcyBhcyBpdHMgb3duIHJvdyBkaXJlY3RseVxuLy8gdW5kZXIgdGhlIHF1ZXN0aW9uIHJvdyBpdCBiZWxvbmdzIHRvIChub3QgYSBmbG9hdGluZyBwb3BvdmVyOiBubyBhbmNob3JpbmcvXG4vLyBwb3NpdGlvbmluZyBtYXRoIG5lZWRlZCwgYW5kIGl0IHN0YXlzIHZpc3VhbGx5IGF0dGFjaGVkIHRvIHRoZSByb3cgaXQgYWN0c1xuLy8gb24pLiBbS2ltIGZhc2UgNCBkZWxpdmVyeSAyXVxuLmZlLWZjcS1tb3ZlLXJvdyB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgI2IwYjhlODtcbiAgICBiYWNrZ3JvdW5kOiAjZWVmMGZmO1xufVxuLmZlLWZjcS1tb3ZlLXNlbGVjdCB7XG4gICAgZmxleDogMSAxIDIyMHB4O1xuICAgIG1pbi13aWR0aDogMTYwcHg7XG59XG4uZmUtZmNxLW1vdmUtZW1wdHkge1xuICAgIGZsZXg6IDE7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjNmI2Zjc4O1xufVxuLmZlLWZjcS1tb3ZlLWFjdGlvbnMge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbn1cbi5mZS1mY3EtbW92ZS1jYW5jZWwsXG4uZmUtZmNxLW1vdmUtY29uZmlybSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zIGVhc2UsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLCBvcGFjaXR5IDEyMG1zIGVhc2U7XG59XG4uZmUtZmNxLW1vdmUtY2FuY2VsIHtcbiAgICBjb2xvcjogIzQwNDk5YTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjA4KTsgfVxufVxuLmZlLWZjcS1tb3ZlLWNvbmZpcm0ge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQ6ICM0MDQ5OWE7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzQwNDk5YTtcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjMzMzYTdiOyB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC40NTtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBTaGFyZWQgdjIgY29uZmlybSAoZmFzZSA0IGRlbGl2ZXJ5IDMsIHBsYW4gwqdENC9ENiwgS2ltIDA4LjA3LjIwMjYpIOKUgOKUgFxuLy8gVFJBQ0sgMiByZWJ1aWxkIChQTEFOLWFsZXJ0LWNvbXBvbmVudC5tZCwgMDkuMDcuMjAyNik6IHRoZSBoYW5kLXJvbGxlZFxuLy8gLmZlLWNvbmZpcm0tc2NyaW0vLWNhcmQvLXRpdGxlLy1ib2R5Ly13YXJuaW5nLy1mdHIgZnJhbWUgdGhhdCB1c2VkIHRvIGxpdmVcbi8vIGhlcmUgaXMgZ29uZSDigJQgQm94LnZ1ZSAocGx1Z2lucy9jb25maXJtL0JveC52dWUpIG5vdyByZW5kZXJzIGEgcmVhbFxuLy8gPHFkbmFwcm8tbW9kYWwgY2xhc3M9XCJmZS1jb25maXJtLW1vZGFsXCI+LCBzbyB0aGUgY29uZmlybSBnZXRzIHRoZSBhY3R1YWxcbi8vIHYyIGRpYWxvZyBjaHJvbWUgKHdoaXRlIHJvdW5kZWQgY2FyZCwgcHVycGxlIHRpdGxlLCBYIGNsb3NlLCBmb290ZXJcbi8vIGJ1dHRvbnMpIGZvciBmcmVlIGZyb20gc2Nzcy9jb21wb25lbnRzL3YyL21vZGFsL19tb2RhbC5zY3NzLiBPbmx5IHRoZVxuLy8gZmxvd2VkaXRvci1zcGVjaWZpYyB6LWluZGV4IGJ1bXAgKDkzMDAsIHNvIGl0IGNsZWFycyBib3RoIHRoZSB3aXphcmRcbi8vIG1vZGFsJ3MgfjkwMDAtOTEwMCBhbmQgaXRzIG93biA5MjAwIGRyb3Bkb3duIGxheWVyKSBsaXZlcyB0aGVyZSBub3csXG4vLyBzY29wZWQgYnkgLmZlLWNvbmZpcm0tbW9kYWwg4oCUIHNhbWUgcGF0dGVybiBhcyB0aGUgZXhpc3Rpbmdcbi8vIC5mZS1pbXBvcnQtbW9kYWwgb3ZlcnJpZGVzIGluIHRoYXQgc2FtZSBmaWxlLlxuXG4vLyDilIDilIAgRDYgbW92ZSBzdWNjZXNzIHRvYXN0IChmYXNlIDQgZGVsaXZlcnkgMywgcGxhbiDCp0Q2LCBLaW0gMDguMDcuMjAyNikg4pSA4pSAXG4vLyBTaXRzIGF0IHRoZSBib3R0b20gb2YgdGhlIFZyYWdlbiB0YWIncyBvd24gc2Nyb2xsIGJvZHksIHN0aWNreSBzbyBpdCBzdGF5c1xuLy8gdmlzaWJsZSByZWdhcmRsZXNzIG9mIHNjcm9sbCBwb3NpdGlvbiwgd2l0aG91dCBlc2NhcGluZyB0aGUgdGFiIChwZXIgcGxhbjpcbi8vIFwidG9hc3QgSU5TSURFIHRoZSBtb2RhbCBib2R5IGJvdHRvbVwiLCBubyBuYXZpZ2F0aW9uL3Jlb3BlbikuIFNhbWUgZmFkZVxuLy8gdHJhbnNpdGlvbiBGQU1JTFkgYXMgLmZlLXB2LXRvYXN0LWZhZGUgKFByZXZpZXcudnVlJ3MgYmFyY29kZS1zY2FuIHRvYXN0LFxuLy8gfjU4ODMpIOKAlCBpZGVudGljYWwgdGltaW5nL2Vhc2luZyDigJQgYnV0IGEgZ3JlZW4gc3VyZmFjZSBmb3IgYSBzdWNjZXNzXG4vLyBtZXNzYWdlIGluc3RlYWQgb2YgdGhhdCB0b2FzdCdzIG5ldXRyYWwtZGFyayBpbmZvIHRvbmUuXG4uZmUtZmNxLW1vdmUtdG9hc3Qge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgYm90dG9tOiA2cHg7XG4gICAgei1pbmRleDogMztcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDlweCAxNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogIzFmN2E0ZDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMjBweCByZ2JhKDIwLCAyMiwgNDAsIDAuMjQpO1xufVxuLmZlLWZjcS1tb3ZlLXRvYXN0X19pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG59XG4uZmUtZmNxLW1vdmUtdG9hc3QtZmFkZS1lbnRlci1hY3RpdmUsXG4uZmUtZmNxLW1vdmUtdG9hc3QtZmFkZS1sZWF2ZS1hY3RpdmUgeyB0cmFuc2l0aW9uOiBvcGFjaXR5IDE4MG1zIGVhc2Utb3V0LCB0cmFuc2Zvcm0gMTgwbXMgZWFzZS1vdXQ7IH1cbi5mZS1mY3EtbW92ZS10b2FzdC1mYWRlLWVudGVyLWZyb20sXG4uZmUtZmNxLW1vdmUtdG9hc3QtZmFkZS1sZWF2ZS10byB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpOyB9XG5cbi8vIOKUgOKUgCBPdmVyZHJhY2h0ZW4tb3ZlcnppY2h0ICh0b29sYmFyIOKGkiBtb2RhbCBtZXQgQUxMRSBoYW5kb3Zlci1yZWdlbHMpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gW0phbiAwOC4wOC4yMDI2XSBFw6luIG1vZGFsIG1ldCBwZXIgaGFuZG92ZXItbm9kZSB6aWpuIHJlZ2VscywgZ2Vncm9lcGVlcmQsIG1ldFxuLy8gZGUgaGVya29tc3QtdnJhYWcgZXJvbmRlci4gRGUgcmlqZW4gemlqbiBxZG5hcHJvLWxpc3Qtcm93IGVuIGhldCBvbnR2YW5nZXJzYmxva1xuLy8gaXMgQkVXVVNUIGVlbiBrb3BpZSB2YW4gZGUgYC5mZS1odC0qYC1tYXRlbiBoaWVyYm92ZW4gKGVpZ2VuIHByZWZpeCBvbSBkZXplbGZkZVxuLy8gcmVkZW4gYWxzIGAuZmUtbHItKmA6IMOpw6luIGdlZGVlbGRlIHByZWZpeCBsYWF0IGVlbiB3aWp6aWdpbmcgYWFuIGRlIGVuZSBsaWpzdCBkZVxuLy8gYW5kZXJlIHN0aWxsZXRqZXMgbWVlbmVtZW4pLlxuXG4vLyBEZSB0ZWxsZXIgb3AgZGUgdG9vbGJhci1rbm9wLiBPcCBkZSBrbm9wLWFuY2hvciB6ZWxmIChkaWUgaXMgcG9zaXRpb246c3RhdGljKSxcbi8vIGR1cyBkZSBrbm9wIGtyaWpndCB6aWpuIGVpZ2VuIGFua2VyLlxuLmZlMi1oYW5kb3Zlci1idG4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5mZTItY291bnQtYmFkZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0zcHg7XG4gICAgcmlnaHQ6IC00cHg7XG4gICAgbWluLXdpZHRoOiAxNXB4O1xuICAgIGhlaWdodDogMTVweDtcbiAgICBwYWRkaW5nOiAwIDRweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjZTE0ZTQ3OyAvLyBkZSBrbGV1ciB2YW4gZGUgaGFuZG92ZXItbm9kZSB6ZWxmXG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiA5cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8vIERlIHNjaGlsOiBzaXplPVwibGFyZ2VcIiBkd2luZ3QgZWVuIHZhc3RlIGhvb2d0ZSB2YW4gODAwcHggYWYgKHZhbGt1aWwgOCkg4oCUIGhpZXJcbi8vIGhvb2d0ZSBuYWFyIGRlIGluaG91ZCBtZXQgODAwcHggYWxzIHBsYWZvbmQsIHplbGZkZSBwYXRyb29uIGFscyAuZmUtcnVsZS1tb2RhbC5cbi8vIEdlZW4gZWlnZW4gei1pbmRleDogOTAwMCAoY29tcG9uZW50LWRlZmF1bHQpIGlzIGdvZWQsIGRlIHJlZ2VsLWVkaXRvciBzdGFwZWx0XG4vLyBlciBtZXQgOTEwMCBvdmVyaGVlbi5cbi5xZG5hcHJvLW1vZGFsLmZlLWhvLW1vZGFsLm1vZGFsLXNpemUtbGFyZ2UgLm1vZGFsLWRpYWxvZyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IG1pbig4MDBweCwgY2FsYygxMDB2aCAtIDQ4cHgpKTtcbn1cbi5xZG5hcHJvLW1vZGFsLmZlLWhvLW1vZGFsLm1vZGFsLXNpemUtbGFyZ2UgLm1vZGFsLXdpbmRvdyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uZmUtaG8tc3VtbWFyeSB7XG4gICAgbWFyZ2luOiAycHggMnB4IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjNmI3MTkyO1xufVxuXG4uZmUtaG8tZ3JvdXAge1xuICAgIHBhZGRpbmc6IDEycHggMnB4IDE0cHg7XG59XG4uZmUtaG8tZ3JvdXAgKyAuZmUtaG8tZ3JvdXAge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDE3LCAyNCwgMzksIDAuMDgpO1xufVxuXG4uZmUtaG8tZ3JvdXAtaGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuXG4gICAgcWRuYXByby1idXR0b24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gICAgcWRuYXByby1pY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgfVxufVxuLmZlLWhvLWdyb3VwLWRvdCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDlweDtcbiAgICBoZWlnaHQ6IDlweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYmFja2dyb3VuZDogI2UxNGU0NzsgLy8gbm9kZS1rbGV1ciB2YW4gZGUgaGFuZG92ZXJcbn1cbi5mZS1oby1ncm91cC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMxYTFmNGQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbn1cblxuLy8gRGUgaGVya29tc3Q6IGRlIHZyYWFnL3ZyYWdlbiBkaWUgaW4gZGUgZmxvdyBkaXJlY3QgdsOzw7NyIGRlemUgb3ZlcmRyYWNodCBzdGFhbi5cbi5mZS1oby1ncm91cC1zb3VyY2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8vIGhldCBpY29vbiBob29ydCBiaWogZGUgRUVSU1RFIHJlZ2VsIGFscyBkZSB0ZWtzdCBvbWxvb3B0XG4gICAgZ2FwOiA2cHg7XG4gICAgbWFyZ2luOiA0cHggMCAycHggMXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzZiNzE5MjtcblxuICAgIHFkbmFwcm8taWNvbiB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgIGNvbG9yOiAjOTA5N2I4O1xuICAgIH1cbn1cbi8vIERlIGxhYXRzdGUgaGVya29tc3RyZWdlbCBob3VkdCBkZSBvdWRlIGFmc3RhbmQgdG90IGRlIGxpanN0IGVyb25kZXIuXG4uZmUtaG8tZ3JvdXAtc291cmNlOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4uZmUtaG8tbm9uZSB7XG4gICAgbWFyZ2luOiA0cHggMCA4cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjOTA5N2I4O1xufVxuXG4uZmUtaG8tYWRkIHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi8vIFRyYWlsaW5nLXNsb3Q6IHplbGZkZSBtYXRlbiBhbHMgLmZlLWh0LXRyYWlsaW5nIC8gLmZlLWh0LXJlY2lwIGhpZXJib3Zlbi5cbi5mZS1oby10cmFpbGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbn1cbi5mZS1oby1yZWNpcGllbnRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGdhcDogMnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcbn1cbi5mZS1oby1yZWNpcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWF4LXdpZHRoOiAyMjBweDtcbn1cbi5mZS1oby1yZWNpcC1rZXkge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzkwOTdiODtcbn1cbi5mZS1oby1yZWNpcC1uYW1lcyB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogIzFhMWY0ZDtcbn1cbi5mZS1oby1yZWNpcC0tY2MgLmZlLWhvLXJlY2lwLW5hbWVzIHtcbiAgICBjb2xvcjogIzZiNzE5Mjtcbn1cbi5mZS1oby1yZWNpcC0tbm9uZSB7XG4gICAgY29sb3I6ICM5MDk3Yjg7XG59XG5cbi8vIERlIGtldXplLW9wdGllIGluIGRlIGhlcmtvbXN0cmVnZWwgKFwiS29tdCB1aXQgdnJhYWc6IFgg4oaSICdrZXV6ZSdcIik6IGRlIGtldXplXG4vLyBkcmFhZ3QgZGUgYmV0ZWtlbmlzLCBkdXMgZGllIGtyaWpndCBrbGV1cjsgZGUgcGlqbCBibGlqZnQgZ2VkZW1wdC5cbi5mZS1oby1zb3VyY2UtdGV4dCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuLmZlLWhvLXNvdXJjZS10ZXh0IGIge1xuICAgIGNvbG9yOiAjM2YzZjU2O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZmUtaG8tc291cmNlLXByZWZpeCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG59XG4uZmUtaG8tc291cmNlLWFycm93IHtcbiAgICBtYXJnaW46IDAgNXB4O1xuICAgIGNvbG9yOiAjOTA5N2I4O1xufVxuLmZlLWhvLXNvdXJjZS1vcHRpb24ge1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi8vIOKUgOKUgCBEZSBNRUVMT1BFTkRFIFNDT1JFIOKAlCBoZXQgaW5zdGVsbGluZ2VuLXRhYmJsYWQgXCJTY29yZVwiIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gVHdlZSBzZWN0aWVzLCDDqcOpbiBvcG1hYWs6IHB1bnRlbiBwZXIgYW50d29vcmRvcHRpZSAoQWJzdHJhY3RTY29yZVBvaW50cy52dWUpIGVuXG4vLyBwdW50ZW4gcGVyIGdldGFsYmVyZWlrIChBYnN0cmFjdFNjb3JlQmFuZHMudnVlKSwgbWV0IGRlIGdlZGVlbGRlIG5hYW1raWV6ZXJcbi8vIChTY29yZU5hbWVQaWNrZXIudnVlKSBlcmJvdmVuLiBbMTIuMDguMjAyNl1cbi8vXG4vLyBBbGxlIEJFRElFTklORyBpcyBkZSBjb21wb25lbnRiaWJsaW90aGVlayAocWRuYXByby1pbnB1dCwgLXNlbGVjdCwgLWljb24tYnRuLFxuLy8gLWxpc3Qtcm93LCAtYWxlcnQsIC1lbXB0eS1zdGF0ZSwgLWJ1dHRvbik7IHdhdCBoaWVyIHN0YWF0IGlzIHVpdHNsdWl0ZW5kIGhldFxuLy8gcmFzdGVyIGVyb21oZWVuLiBEYXQgaXMgYmV3dXN0OiBkZSB2b3JpZ2Ugc2NvcmUtc2VjdGllIChBdWRpdFNjb3JpbmcudnVlKSByb2xkZVxuLy8gemlqbiBlaWdlbiBrbm9wcGVuIG1ldCBpbmxpbmUgc3RpamxlbiwgZW4gZGF0IGlzIHByZWNpZXMgd2F0IGhpZXIgbmlldCBtb2V0LlxuLmZlLXNjb3JlIHtcblxuICAgIC8vIERlIG5hYW1raWV6ZXIgc3RhYXQgYm92ZW4gZGUgcHVudGVuIGVuIGlzIGR1aWRlbGlqayBlZW4gYW5kZXJlIHZyYWFnIChcImFhblxuICAgIC8vIHdlbGtlIHNjb3JlIGRyYWFndCBkaXQgYmlqXCIpIGRhbiBkZSBwdW50ZW4gemVsZiwgZHVzIGVlbiBrZXlsaW5lIGVydHVzc2VuLlxuICAgIC5mZS1zY29yZS1uYW1lIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWNlYWY0O1xuICAgIH1cblxuICAgIC5mZS1zY29yZS1uYW1lLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuXG4gICAgICAgIC8vIERlIGtldXplbGlqc3QgaG91ZHQgeiduIGVpZ2VuIG1hYXQ7IGhldCBuYWFtdmVsZCBlcm5hYXN0IChhbGxlZW4gemljaHRiYWFyXG4gICAgICAgIC8vIGJpaiBcIk5pZXV3ZSBzY29yZeKAplwiKSBlZXQgZGUgcmVzdCB2YW4gZGUgcmVnZWwuXG4gICAgICAgIHFkbmFwcm8tc2VsZWN0IHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCAyMjBweDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjIwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFdmVuIGJyZWVkIGFscyBkZSBrZXV6ZWxpanN0IGVybmFhc3QuIEVlbiBzY29yZW5hYW0gaXMgw6nDqW4gd29vcmQgKFwiRVdTXCIpOyBlZW4gdmVsZCBkYXQgZGVcbiAgICAvLyByZXN0IHZhbiBkZSByZWdlbCBvcGVldCBzdWdnZXJlZXJ0IGRhdCBlciBlZW4gemluIGluIGhvb3J0LlxuICAgIC5mZS1zY29yZS1uYW1lLWlucHV0IHtcbiAgICAgICAgZmxleDogMCAwIDIyMHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLy8gSGV0IHB1bnRlbnZlbGQ6IG5vb2l0IGJyZWRlciBkYW4gaGV0IGhvZWZ0LiBEcmllIHRla2VucyBwbHVzIGVlbiBtaW50ZWtlbiBpc1xuICAgIC8vIGhldCBtZWVzdGUgZGF0IGVlbiBwdW50ZW53YWFyZGUgaW4gZGUgcHJha3Rpamsgd29yZHQuXG4gICAgLmZlLXNjb3JlLWlucHV0IHtcbiAgICAgICAgZmxleDogMCAwIDcycHg7XG4gICAgICAgIG1heC13aWR0aDogNzJweDtcbiAgICB9XG5cbiAgICAuZmUtc2NvcmUtdHJhaWxpbmcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICB9XG5cbiAgICAuZmUtc2NvcmUtdW5pdCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6ICM2YjcxOTI7XG4gICAgICAgIC8vIFZhc3RlIGJyZWVkdGUsIHpvZGF0IGRlIGludm9lcnZlbGRlbiB2YW4gYWxsZSByaWplbiBvcCDDqcOpbiBsaWpuIHN0YWFuIG9va1xuICAgICAgICAvLyBhbHMgZGUgZWVuaGVpZCBvb2l0IGVlbiBsYW5nZXIgd29vcmQgd29yZHQuXG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDE0cHg7XG4gICAgfVxuXG4gICAgLmZlLXNjb3JlLWxpc3Qge1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgfVxuXG4gICAgLmZlLXNjb3JlLXN1bW1hcnkge1xuICAgICAgICBtYXJnaW46IDEycHggMCAwO1xuICAgICAgICBwYWRkaW5nOiA5cHggMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y1ZjRmYjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGNvbG9yOiAjM2YzZjU2O1xuICAgIH1cblxuICAgIC8vIOKUgOKUgCBEZSBiZXJlaWtlbiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgICAvLyBFZW4gYmVyZWlrIGlzIGVlbiBGT1JNVUxJRVJyaWogKHZhbiAvIHRvdCBlbiBtZXQgLyBwdW50ZW4pLCBnZWVuIGxpanN0cmlqOlxuICAgIC8vIGVyIHppam4gZHJpZSBpbnZvZXJ2ZWxkZW4gZW4gZGUgcmlqIGhlZWZ0IGdlZW4gZWlnZW4gdGl0ZWwuIFZhbmRhYXIgZWVuXG4gICAgLy8gcmFzdGVyIGluIHBsYWF0cyB2YW4gcWRuYXByby1saXN0LXJvdyDigJQgbWV0IGRlemVsZmRlIGtvbG9tYnJlZWR0ZXMgdm9vciBkZVxuICAgIC8vIGtvcCBlbiBkZSByaWplbiwgem9kYXQgZGUgbGFiZWxzIGJvdmVuIGh1biB2ZWxkIGJsaWp2ZW4gc3RhYW4uXG4gICAgLy8g4pqg77iPIERlIGxhYXRzdGUga29sb20gaXMgYGF1dG9gIGVuIE5JRVQgYDFmcmAuIE1ldCBgMWZyYCBkdXd0IGhldCByYXN0ZXIgZGUga25vcHBlbiBuYWFyIGRlXG4gICAgLy8gcmVjaHRlcnJhbmQgdmFuIGhldCBwYW5lZWwsIGVuIG9wIGVlbiBicmVlZCBwYW5lZWwgc3RhYXQgZXIgZGFuIGVlbiBsZWVndGUgdmFuIGhvbmRlcmRlblxuICAgIC8vIHBpeGVscyB0dXNzZW4gXCJQdW50ZW5cIiBlbiBkZSBrbm9wcGVuIGRpZSBiaWogZGllemVsZmRlIHJpaiBob3JlbiDigJQgZ2VtZXRlbiBpbiBlZW4gcmVuZGVyOlxuICAgIC8vIHJ1aW0gNjAwcHgsIHdhYXJkb29yIGRlIGtub3BwZW4gYmlqIG5pZXRzIG1lZXIgaG9vcmRlbi4gTnUgc2x1aXRlbiB6ZSBhYW4gb3AgZGUgdmVsZGVuLlxuICAgIC5mZS1zY29yZS1iYW5kLWhlYWQsXG4gICAgLmZlLXNjb3JlLWJhbmQtZmllbGRzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA3MnB4IDcycHggNzJweCBhdXRvO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgICB9XG5cbiAgICAuZmUtc2NvcmUtYmFuZC1oZWFkIHtcbiAgICAgICAgbWFyZ2luOiA4cHggMCA0cHg7XG4gICAgfVxuXG4gICAgLmZlLXNjb3JlLWJhbmQtY29sIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICAgICAgICBjb2xvcjogIzhjOTFhYjtcbiAgICB9XG5cbiAgICAuZmUtc2NvcmUtYmFuZC1yb3cge1xuICAgICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMGYwZjY7XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mZS1zY29yZS1iYW5kLWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgICAgLy8gRWVuIGtsZWluIHpldGplIHZhbiBkZSB2ZWxkZW4gYWYsIHpvZGF0IGRlIGtub3BwZW4gZXJiaWogaG9yZW4gbWFhciBuaWV0IHRlZ2VuIGhldFxuICAgICAgICAvLyBwdW50ZW52ZWxkIGFhbiBzdGFhbi5cbiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICB9XG5cbiAgICAvLyBEZSByaWogaW4gZ2V3b25lIHRhYWwgdGVydWcgKFwiMTIgdG90IGVuIG1ldCAyMCDihpIgMCBwdW50ZW5cIikuIEhpaiBzdGFhdCBPTkRFUlxuICAgIC8vIGRlIHZlbGRlbiBlbiBuaWV0IGVybmFhc3Q6IGJpaiBcImxlZWcgPSBvbmJlZ3JlbnNkXCIgaXMgZGUgemluIGhldCBlbmlnZSBkYXRcbiAgICAvLyB1aXRsZWd0IHdhdCBlZW4gbGVlZyB2ZWxkIGJldGVrZW50LCBlbiBkaWUgbW9ldCBkdXMgZGUgdm9sbGUgYnJlZWR0ZSBoZWJiZW4uXG4gICAgLmZlLXNjb3JlLWJhbmQtc2VudGVuY2Uge1xuICAgICAgICBtYXJnaW46IDRweCAwIDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6ICM2YjcxOTI7XG4gICAgfVxuXG4gICAgLy8gRWVuIGJlcmVpayBkYXQgbm9vaXQga2FuIHBhc3Nlbi4gRWVuIHdhYXJzY2h1d2luZywgZ2VlbiBzbG90OiBkaXQgaXMgZWVuXG4gICAgLy8gYm91d2VyLCBnZWVuIGtldXJtZWVzdGVyICh6ZWxmZGUgYWZ3ZWdpbmcgYWxzIGRlIGNvbnRyYXN0d2FhcnNjaHV3aW5nIGluXG4gICAgLy8gcWRuYXByby1mb3JtYXQtcnVsZXMpLlxuICAgIC5mZS1zY29yZS1iYW5kLXNlbnRlbmNlLS1wcm9ibGVtIHtcbiAgICAgICAgY29sb3I6ICNiMDU2MWY7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgfVxufVxuIiwiJGJhc2UtYmF0Y2g6ICNGRjNBMzBGRjtcbiRiYXNlLXdoaXRlOiAjRkZGRkZGRkY7XG4kYmFzZS1ibGFjazogIzFFMUYyMEZGO1xuXG5cbiRiYXNlLWNvbG9yczogKFxuICAgIGJhdGNoOiAkYmFzZS1iYXRjaCxcbiAgICB3aGl0ZTogJGJhc2Utd2hpdGUsXG4gICAgYmxhY2s6ICRiYXNlLWJsYWNrXG4pO1xuXG4kcHVycGxlLWxpbGE6IChcbiAgICA5NTA6ICMxMDBFMThGRixcbiAgICA5MDA6ICMxRjFEMkZGRixcbiAgICA4MDA6ICM0MTNCNUVGRixcbiAgICA3MDA6ICM1RTU2OERGRixcbiAgICA2MDA6ICM3RTcyQkNGRixcbiAgICA1MDA6ICM5RDhGRUJGRixcbiAgICA0MDA6ICNCMUE1RUZGRixcbiAgICAzMDA6ICNDNEJDRjNGRixcbiAgICAyMDA6ICNEOEQyRjdGRixcbiAgICAxMDA6ICNFQkU5RkJGRixcbiAgICA1MDogI0Y1RjRGREZGXG4pO1xuXG4kc2lnbmFsLXJlZDogKFxuICAgIDk1MDogIzE5MEIwQkZGLFxuICAgIDkwMDogIzMyMTcxN0ZGLFxuICAgIDgwMDogIzYzMzAzMEZGLFxuICAgIDcwMDogIzk1NDQ0NEZGLFxuICAgIDYwMDogI0M2NUE1QUZGLFxuICAgIDUwMDogI0Y4NzE3MUZGLFxuICAgIDQwMDogI0Y5OEQ4REZGLFxuICAgIDMwMDogI0ZCQUFBQUZGLFxuICAgIDIwMDogI0ZDQzZDNkZGLFxuICAgIDEwMDogI0ZFRTNFM0ZGLFxuICAgIDUwOiAjRkVGMUYxRkZcbik7XG5cblxuLy8gSW5kaXZpZHVlbGUga2xldXJ2YXJpYWJlbGVuXG4kcHVycGxlLTk1MDogIzA2MDcwRkZGO1xuJHB1cnBsZS05MDA6ICMwRDBGMUZGRjtcbiRwdXJwbGUtODAwOiAjMUQyMTQwRkY7XG4kcHVycGxlLTcwMDogIzI2MkM1Q0ZGO1xuJHB1cnBsZS02MDA6ICMzMzNBN0JGRjtcbiRwdXJwbGUtNTAwOiAjNDA0OTlBRkY7XG4kcHVycGxlLTQ1MDogIzUzNUJBNEZGO1xuJHB1cnBsZS00MDA6ICM2NjZEQUVGRjtcbiRwdXJwbGUtMzAwOiAjOEM5MkMyRkY7XG4kcHVycGxlLTIwMDogI0IzQjZEN0ZGO1xuJHB1cnBsZS0xNTA6ICNDNkM4RTFGRjtcbiRwdXJwbGUtMTAwOiAjRDlEQkVCRkY7XG4kcHVycGxlLTUwOiAjRUNFREY1RkY7XG5cbi8vIE1hcCB2YW4gcHVycGxlIGtsZXVyZW5cbiRwdXJwbGU6IChcbiAgICA5NTA6ICRwdXJwbGUtOTUwLFxuICAgIDkwMDogJHB1cnBsZS05MDAsXG4gICAgODAwOiAkcHVycGxlLTgwMCxcbiAgICA3MDA6ICRwdXJwbGUtNzAwLFxuICAgIDYwMDogJHB1cnBsZS02MDAsXG4gICAgNTAwOiAkcHVycGxlLTUwMCxcbiAgICA0NTA6ICRwdXJwbGUtNDUwLFxuICAgIDQwMDogJHB1cnBsZS00MDAsXG4gICAgMzAwOiAkcHVycGxlLTMwMCxcbiAgICAyMDA6ICRwdXJwbGUtMjAwLFxuICAgIDE1MDogJHB1cnBsZS0xNTAsXG4gICAgMTAwOiAkcHVycGxlLTEwMCxcbiAgICA1MDogJHB1cnBsZS01MFxuKTtcblxuXG4kb3JhbmdlOiAoXG4gICAgOTUwOiAjMTgwRTAwRkYsXG4gICAgOTAwOiAjMzAxQzAwRkYsXG4gICAgODAwOiAjNjAzQjA2RkYsXG4gICAgNzAwOiAjOEY1NTAxRkYsXG4gICAgNjAwOiAjQkY3MjAyRkYsXG4gICAgNTAwOiAjRUY4RTAyRkYsXG4gICAgNDAwOiAjRjJBNTM1RkYsXG4gICAgMzAwOiAjRjVCQjY3RkYsXG4gICAgMjAwOiAjRjlEMjlBRkYsXG4gICAgMTAwOiAjRkNFOENDRkYsXG4gICAgNTA6ICNGREY0RTZGRlxuKTtcblxuJGdyZXk6IChcbiAgICAxMDAwOiAjMDAwMDAwRkYsXG4gICAgOTUwOiAjMEIwQjBERkYsXG4gICAgOTAwOiAjMTUxNzFBRkYsXG4gICAgODUwOiAjMTUxNzFBRkYsXG4gICAgODAwOiAjMkUzMDM2RkYsXG4gICAgNzUwOiAjMzYzOTQwRkYsXG4gICAgNzAwOiAjNDA0NDRERkYsXG4gICAgNjAwOiAjNTY1QjY2RkYsXG4gICAgNTAwOiAjNkI3MjgwRkYsXG4gICAgNDAwOiAjODk4RTk5RkYsXG4gICAgMzAwOiAjQTZBQUIzRkYsXG4gICAgMjAwOiAjQzRDN0NDRkYsXG4gICAgMTAwOiAjRTFFM0U2RkYsXG4gICAgNTA6ICNGMEYxRjJGRlxuKTtcblxuJHNpZ25hbC1ncmVlbjogKFxuICAgIDk1MDogIzBCMTcxMkZGLFxuICAgIDkwMDogIzE2MkUyNUZGLFxuICAgIDgwMDogIzJGNUQ0QUZGLFxuICAgIDcwMDogIzQyOEI2RUZGLFxuICAgIDYwMDogIzU4Qjk5MkZGLFxuICAgIDUwMDogIzZFRTdCN0ZGLFxuICAgIDQwMDogIzhCRUNDNUZGLFxuICAgIDMwMDogI0E4RjFENEZGLFxuICAgIDIwMDogI0M1RjVFMkZGLFxuICAgIDEwMDogI0UyRkFGMUZGLFxuICAgIDUwOiAjRjBGREY4RkZcbik7XG5cbiRzaWduYWwteWVsbG93OiAoXG4gICAgOTUwOiAjMTkxNTA4RkYsXG4gICAgOTAwOiAjMzIyQTBGRkYsXG4gICAgODAwOiAjNjU1NTIyRkYsXG4gICAgNzAwOiAjOTc3RjJFRkYsXG4gICAgNjAwOiAjQ0FBOTNFRkYsXG4gICAgNTAwOiAjRkNEMzRERkYsXG4gICAgNDAwOiAjRkREQzcxRkYsXG4gICAgMzAwOiAjRkRFNTk0RkYsXG4gICAgMjAwOiAjRkVFREI4RkYsXG4gICAgMTAwOiAjRkVGNkRCRkYsXG4gICAgNTA6ICNGRkZCRURGRlxuKTtcblxuJHNpZ25hbC1oaWdobGlnaHQtcHVycGxlOiAoXG4gICAgOTUwOiAjMDcwODE4RkYsXG4gICAgOTAwOiAjMEUxMDMxRkYsXG4gICAgODAwOiAjMjAyNDYyRkYsXG4gICAgNzAwOiAjMkEzMTkyRkYsXG4gICAgNjAwOiAjMzg0MkMyRkYsXG4gICAgNTAwOiAjNDY1MkYzRkYsXG4gICAgNDAwOiAjNkI3NUY1RkYsXG4gICAgMzAwOiAjOTA5N0Y4RkYsXG4gICAgMjAwOiAjQjVCQUZBRkYsXG4gICAgMTAwOiAjREFEQ0ZERkYsXG4gICAgNTA6ICNFQ0VFRkVGRlxuKTtcblxuJHNpZ25hbC1uZXV0cmFsLWJsdWU6IChcbiAgICA5NTA6ICMwRDExMTdGRixcbiAgICA5MDA6ICMxQTIzMkRGRixcbiAgICA4MDA6ICMzNzQ3NUFGRixcbiAgICA3MDA6ICM0RjY4ODdGRixcbiAgICA2MDA6ICM2QThBQjRGRixcbiAgICA1MDA6ICM4NEFERTFGRixcbiAgICA0MDA6ICM5REJERTdGRixcbiAgICAzMDA6ICNCNUNFRURGRixcbiAgICAyMDA6ICNDRURFRjNGRixcbiAgICAxMDA6ICNFNkVGRjlGRixcbiAgICA1MDogI0YzRjdGQ0ZGXG4pO1xuXG5cblxuJGxpZ2h0LXB1cnBsZS0xMDA6ICNFNkU5RkZGRjtcbiRsaWdodC1wdXJwbGUtMTUwOiAjREFEREYyRkY7XG5cbiRsaWdodC1wdXJwbGU6IChcbiAgICAxMDA6ICRsaWdodC1wdXJwbGUtMTAwLFxuICAgIDE1MDogJGxpZ2h0LXB1cnBsZS0xNTBcbik7XG5cbiR0YWctcGluazogKFxuICAgIDk1MDogIzE1MEIwRUZGLFxuICAgIDkwMDogIzJBMTUxQ0ZGLFxuICAgIDgwMDogIzU2MkQzQUZGLFxuICAgIDcwMDogIzdGNDA1M0ZGLFxuICAgIDYwMDogI0FBNTU2RUZGLFxuICAgIDUwMDogI0Q0NkE4QUZGLFxuICAgIDQwMDogI0REODhBMUZGLFxuICAgIDMwMDogI0U1QTZCOUZGLFxuICAgIDIwMDogI0VFQzNEMEZGLFxuICAgIDEwMDogI0Y2RTFFOEZGLFxuICAgIDUwOiAjRkJGMEYzRkZcbik7XG5cbiR0YWctdmlvbGV0OiAoXG4gICAgOTUwOiAjMEYwODEwRkYsXG4gICAgOTAwOiAjMUUxMTFGRkYsXG4gICAgODAwOiAjM0YyNTQwRkYsXG4gICAgNzAwOiAjNUIzMjVERkYsXG4gICAgNjAwOiAjN0E0MzdDRkYsXG4gICAgNTAwOiAjOTg1NDlCRkYsXG4gICAgNDAwOiAjQUQ3NkFGRkYsXG4gICAgMzAwOiAjQzE5OEMzRkYsXG4gICAgMjAwOiAjRDZCQkQ3RkYsXG4gICAgMTAwOiAjRUFEREVCRkYsXG4gICAgNTA6ICNGNUVFRjVGRlxuKTtcblxuJHRhZy1ibHVlOiAoXG4gICAgOTUwOiAjMDUwQTE2RkYsXG4gICAgOTAwOiAjMEExNDJERkYsXG4gICAgODAwOiAjMTkyQTVBRkYsXG4gICAgNzAwOiAjMUYzQjg2RkYsXG4gICAgNjAwOiAjMkE0RkIyRkYsXG4gICAgNTAwOiAjMzQ2M0RGRkYsXG4gICAgNDAwOiAjNUQ4MkU1RkYsXG4gICAgMzAwOiAjODVBMUVDRkYsXG4gICAgMjAwOiAjQUVDMUYyRkYsXG4gICAgMTAwOiAjRDZFMEY5RkYsXG4gICAgNTA6ICNFQkVGRkNGRlxuKTtcblxuJHRhZy1ncmVlbjogKFxuICAgIDk1MDogIzEwMTQwOUZGLFxuICAgIDkwMDogIzIwMjgxMUZGLFxuICAgIDgwMDogIzQyNTAyNkZGLFxuICAgIDcwMDogIzVGNzczNEZGLFxuICAgIDYwMDogIzdGOUU0NUZGLFxuICAgIDUwMDogIzlGQzY1NkZGLFxuICAgIDQwMDogI0IyRDE3OEZGLFxuICAgIDMwMDogI0M1REQ5QUZGLFxuICAgIDIwMDogI0Q5RThCQkZGLFxuICAgIDEwMDogI0VDRjREREZGLFxuICAgIDUwOiAjRjVGOUVFRkZcbik7IiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvZGVzaWduLXRva2Vucy9fZGVzaWduLXRva2Vucy1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFFETkEgUHJvIOKAlCBEZXNpZ24gVG9rZW5zIChjZW50cmFsKSDigJQgY29tcGlsZWQgZnJvbSBfZGVzaWduLXRva2Vucy5zY3NzXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIERyb3AtaW4gQ1NTIGZvciBmaWxlOi8vIHBhZ2VzIChob21lcGFnZS1tb2NrdXAsIHRhc2tsaXN0LXBhZ2UsXG4gICBwcm90b3R5cGUgcHJldmlld3MpLiBNaXJyb3JzIHRoZSBjYW5vbmljYWwgX2Rlc2lnbi10b2tlbnMuc2Nzc1xuICAgMToxOyBpZiB5b3UgZWRpdCBvbmUsIGVkaXQgdGhlIG90aGVyLlxuXG4gICBUd28gbGF5ZXJzOlxuICAgICBBLiBQUklNSVRJVkVTIOKAlCByYXcgRmlnbWEgdmFsdWVzLlxuICAgICBCLiBTRU1BTlRJQyBUT0tFTlMg4oCUIHJlZmVyZW5jZSBwcmltaXRpdmVzIHZpYSB2YXIoKS5cblxuICAgR2VuZXJhdGVkIDIwMjYtMDUtMTkgKEZMWSBCQUJZIEZMWSBvdmVybmlnaHQgbWlncmF0aW9uKS5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG46cm9vdCB7XG4gICAgLyogLS0tLS0tLS0tLSBHcmV5cyAoRmlnbWEgQ29sb3JzL0dyZXkvKikgLS0tLS0tLS0tLSAqL1xuICAgIC0tYy1ncmV5LTk1MDogIzBiMGIwZDtcbiAgICAtLWMtZ3JleS05MDA6ICMxODE4MWM7XG4gICAgLS1jLWdyZXktODAwOiAjMmUzMDM2O1xuICAgIC0tYy1ncmV5LTcwMDogIzQwNDQ0ZDtcbiAgICAtLWMtZ3JleS02MDA6ICM1NjViNjY7XG4gICAgLS1jLWdyZXktNTAwOiAjNmI3MjgwO1xuICAgIC0tYy1ncmV5LTQwMDogI2E2YWFiMztcbiAgICAtLWMtZ3JleS0zMDA6ICNjNGM3Y2M7XG4gICAgLS1jLWdyZXktMjAwOiAjZDFkNWRiO1xuICAgIC0tYy1ncmV5LTEwMDogI2U3ZTllYztcbiAgICAtLWMtZ3JleS01MDogICNmMGYxZjI7XG5cbiAgICAvKiAtLS0tLS0tLS0tIEFjdGlvbiBwdXJwbGVzIChGaWdtYSBDb2xvcnMvUHVycGxlLyopIC0tLS0tLS0tLS0gKi9cbiAgICAtLWMtcHVycGxlLTcwMDogIzJhMzI2ODtcbiAgICAtLWMtcHVycGxlLTYwMDogIzMzM2E3YjtcbiAgICAtLWMtcHVycGxlLTUwMDogIzQwNDk5YTtcbiAgICAtLWMtcHVycGxlLTQwMDogIzVhNjRiODtcbiAgICAtLWMtcHVycGxlLTMwMDogIzhhOTJkMDtcbiAgICAtLWMtcHVycGxlLTIwMDogI2E1YWNmZjtcbiAgICAtLWMtcHVycGxlLTEwMDogI2MwYzVmZjtcbiAgICAtLWMtcHVycGxlLTUwOiAgI2U2ZTlmZjtcblxuICAgIC8qIC0tLS0tLS0tLS0gQWN0aW9uIGhpZ2hsaWdodCAoRmlnbWEgUHVycGxlIEhJR0hMSUdIVC8qKSAtLS0tLS0tLS0tICovXG4gICAgLS1jLWFjdGlvbi01MDA6ICM0NjUyZjM7XG4gICAgLS1jLWFjdGlvbi02MDA6ICMzNTQwZDY7XG4gICAgLS1jLWFjdGlvbi03MDA6ICMyYTM2Yjg7XG5cbiAgICAvKiAtLS0tLS0tLS0tIFNpZ25hbCBjb2xvdXJzIChzZW1hbnRpYy1pc2ggcHJpbWl0aXZlcykgLS0tLS0tLS0tLSAqL1xuICAgIC0tYy1zaWduYWwtZ3JlZW4tYmc6ICAgICNjNWY1ZTI7XG4gICAgLS1jLXNpZ25hbC1ncmVlbi10ZXh0OiAgIzQyOGI2ZTtcbiAgICAtLWMtc2lnbmFsLWdyZWVuLTEwMDogICAjZDhmNGUzO1xuICAgIC0tYy1zaWduYWwteWVsbG93LWJnOiAgICNmZWVkYjg7XG4gICAgLS1jLXNpZ25hbC15ZWxsb3ctdGV4dDogI2JmNzIwMjtcbiAgICAtLWMtc2lnbmFsLWJsdWUtYmc6ICAgICAjZTZlZmY5O1xuICAgIC0tYy1zaWduYWwtYmx1ZS10ZXh0OiAgICM2YThhYjQ7XG4gICAgLS1jLXNpZ25hbC1yZWQtYmc6ICAgICAgI2ZlZTNlMztcbiAgICAtLWMtc2lnbmFsLXJlZC10ZXh0OiAgICAjYzY1YTVhO1xuICAgIC0tYy1zaWduYWwtcmVkLXNvZnQ6ICAgICNmZmYwZjA7XG4gICAgLyogT3JhbmdlICsgcGluayBwYWlycyAoMDIuMDcuMjAyNiwgY2FsZW5kYXIpOiBvcmFuZ2UgPSB0aGUgXCJpbiBwcm9ncmVzc1wiIGV2ZW50XG4gICAgICAgc3RhdHVzLCBwaW5rID0gcGVyc29uYWwgZXZlbnRzLiBQaW5rIGJnIGRlbGliZXJhdGVseSBlcXVhbHMgdGhlIHRhc2tsaXN0IHBpbmtcbiAgICAgICBwYXN0ZWwgc28gdGhlIHR3byBzeXN0ZW1zIHN0YXkgdmlzdWFsbHkgcmVsYXRlZC4gKi9cbiAgICAtLWMtc2lnbmFsLW9yYW5nZS1iZzogICAjZmRlYWRjO1xuICAgIC0tYy1zaWduYWwtb3JhbmdlLXRleHQ6ICNiYzZhMWY7XG4gICAgLS1jLXNpZ25hbC1waW5rLWJnOiAgICAgI2Y2ZTFlODtcbiAgICAtLWMtc2lnbmFsLXBpbmstdGV4dDogICAjYjI1Nzc3O1xuXG4gICAgLyogLS0tLS0tLS0tLSBGYXZvcml0ZSAvIGhlYXJ0IChLaW0gMjIuMDcuMjAyNikgLS0tLS0tLS0tLVxuICAgICAgIFJlZC1waW5rIHVzZWQgZm9yIHRoZSBcImZhdm9yaXRlXCIgaGVhcnQuIFdhcyBoYXJkY29kZWQgaW4gdGhlIGhlYXJ0LW1vZGVcbiAgICAgICBmYXZvcml0ZSBidXR0b247IHByb21vdGVkIHRvIGEgdG9rZW4gc28gcWRuYXByby1zdGF0dXMtYmFkZ2UgYW5kIHRoZVxuICAgICAgIGZhdm9yaXRlIGJ1dHRvbiBzaGFyZSBvbmUgc291cmNlLiAqL1xuICAgIC0tYy1mYXZvcml0ZS1oZWFydDogICAgICNmZjRkNmE7XG5cbiAgICAvKiAtLS0tLS0tLS0tIEJyaWdodCBzaWduYWwgYWNjZW50cyAodml2aWQ7IEtpbSAyNC4wNi4yMDI2KSAtLS0tLS0tLS0tXG4gICAgICAgVGhlIG11dGVkIC0tYy1zaWduYWwtKiBhcmUgZm9yIHNvZnQgcGlsbCBiYWNrZ3JvdW5kczsgdGhlc2UgYnJpZ2h0cyBhcmUgZm9yXG4gICAgICAgdml2aWQgYWNjZW50cyAoZmlsbGVkIGJvcmRlcnMsIGZpbGxzLCB0aGUgdG9hc3Qgd2FybmluZykuICovXG4gICAgLS1jLXN1Y2Nlc3MtYnJpZ2h0OiAgICAgICAgIzFkOWU3NTsgLyogdml2aWQgc3VjY2VzcyBncmVlbiAqL1xuICAgIC8qIFN1Y2Nlc3MtZGlhbG9nIHJhbXAsIGFkZGVkIDE4LjA4LjIwMjYgYXMgdGhlIG1pcnJvciBvZiB0aGUgd2Fybi1yZWQgb25lOiB0aGVcbiAgICAgICB0b25lPVwic3VjY2Vzc1wiIGRpYWxvZyBmaWxscyBhIHdob2xlIHN1cmZhY2Ugd2l0aCBncmVlbiBhbmQgcHV0cyB3aGl0ZSB0ZXh0IG9uIGl0LlxuICAgICAgIC0tYy1zdWNjZXNzLWJyaWdodCAoIzFkOWU3NSkgaXMgdG9vIGxpZ2h0IGZvciB0aGF0IGF0IDMuMzk6MS4gVGhlc2UgbnVtYmVycyB3ZXJlXG4gICAgICAgcGlja2VkIHRvIG1hdGNoIHRoZSByZWQgZGlhbG9nJ3MgcHJvcG9ydGlvbnMgYWxtb3N0IGV4YWN0bHksIHNvIHRoZSB0d28gZGlhbG9nc1xuICAgICAgIGZlZWwgbGlrZSBvbmUgZmFtaWx5OiA1MDAgY2FycmllcyB3aGl0ZSBhdCA0LjkxOjEgKHJlZDogNC44MyksIGFuZCA5MDAgaXMgdGhlIHNvbGlkXG4gICAgICAgYnV0dG9uLCAzLjM1OjEgYXdheSBmcm9tIHRoZSBzdXJmYWNlIChyZWQ6IDMuMzQpIHdpdGggd2hpdGUgYXQgMTQ6MSBvbiBpdC5cbiAgICAgICAzMDAgaXMgdGhlIG9wdGlvbmFsIGJhZGdlIGNpcmNsZSwgZGVjb3JhdGl2ZSBvbmx5LiAqL1xuICAgIC0tYy1zdWNjZXNzLTkwMDogICAgICAgICAgICMwNDI0MWM7XG4gICAgLS1jLXN1Y2Nlc3MtNzAwOiAgICAgICAgICAgIzBiNGQzODtcbiAgICAtLWMtc3VjY2Vzcy01MDA6ICAgICAgICAgICAjMTI4MDVlO1xuICAgIC0tYy1zdWNjZXNzLTMwMDogICAgICAgICAgICM3ZmQ4Yjg7XG4gICAgLS1jLXdhcm5pbmctYnJpZ2h0LWJnOiAgICAgI2ZmZjNjZDsgLyogdml2aWQgd2FybmluZyB5ZWxsb3cgc2V0ICh0b2FzdCByZWZlcmVuY2UpICovXG4gICAgLS1jLXdhcm5pbmctYnJpZ2h0LXRleHQ6ICAgIzlhNmExMDtcbiAgICAtLWMtd2FybmluZy1icmlnaHQtYm9yZGVyOiAjZjBkMDYwO1xuXG4gICAgLyogLS0tLS0tLS0tLSBXYXJuaW5nIC8gZGFuZ2VyIHJhbXAgLS0tLS0tLS0tLSAqL1xuICAgIC0tYy13YXJuLWFtYmVyLTUwMDogICNkOTc3MDY7XG4gICAgLS1jLXdhcm4tYW1iZXItNjAwOiAgI2I0NTMwOTtcbiAgICAtLWMtd2Fybi1vcmFuZ2UtNTAwOiAjZWE1ODBjO1xuICAgIC0tYy13YXJuLW9yYW5nZS02MDA6ICNjMjQxMGM7XG4gICAgLyogOTAwLzcwMC82MDAgYWRkZWQgMTguMDguMjAyNiBmb3IgdGhlIGRhbmdlciBkaWFsb2cgKHFkbmFwcm8tYm90dG9tLXNoZWV0IC9cbiAgICAgICAtcG9wb3ZlciB0b25lPVwiZGFuZ2VyXCIpLiBLaW0gcGlja2VkIHJlZC00MDAgYXMgdGhlIHN1cmZhY2UgYW5kIHJlZC0zMDAgZm9yIHRoZVxuICAgICAgIGljb24gYmFkZ2Ugb24gaXQ7IHRoZSByYW1wIGFscmVhZHkgaGFkIGJvdGguIFdoYXQgaXQgZGlkIE5PVCBoYXZlIGlzIGFueXRoaW5nXG4gICAgICAgcmVhZGFibGUgT04gdGhhdCBzdXJmYWNlOiB3aGl0ZSB0ZXh0IHNjb3JlcyAyLjc3OjEgZm9yIHRoZSB0aXRsZSBhbmQgMi4wNToxIGZvclxuICAgICAgIHRoZSBib2R5LCB3ZWxsIHVuZGVyIHRoZSAzLjAgLyA0LjUgQUEgZmxvb3JzLCBzbyB0aGlzIGRpYWxvZyByZWFkcyBkYXJrLW9uLWxpZ2h0XG4gICAgICAgaW5zdGVhZCBvZiB0aGUgcHVycGxlIGRpYWxvZydzIGxpZ2h0LW9uLWRhcmsuIHJlZC05MDAgaXMgdGhhdCB0ZXh0IGNvbG91ciAoNS44NFxuICAgICAgIHRpdGxlIC8gNC42MCBib2R5IGF0IDg1JSkgYW5kIHJlZC03MDAgaXMgdGhlIHNvbGlkIGNvbmZpcm0gYnV0dG9uICgxMC4wOjEgd2l0aFxuICAgICAgIHdoaXRlIG9uIGl0KS4gcmVkLTYwMCBpcyB0aGUgbWlkLXN0ZXAgdGhlIHBvcG92ZXIgY2xvc2UgY2lyY2xlIHVzZXMuXG4gICAgICAgVGhlIHJhbXAgYWxyZWFkeSBoYWQgYSA2MDAgZm9yIGFtYmVyIGFuZCBvcmFuZ2UsIHNvIHRob3NlIG9ubHkgZmlsbCBhIGdhcC4gKi9cbiAgICAtLWMtd2Fybi1yZWQtOTAwOiAgICAjNDUwYTBhO1xuICAgIC0tYy13YXJuLXJlZC03MDA6ICAgICM3ZjFkMWQ7XG4gICAgLS1jLXdhcm4tcmVkLTYwMDogICAgIzk5MWIxYjtcbiAgICAtLWMtd2Fybi1yZWQtNTAwOiAgICAjZGMyNjI2O1xuICAgIC0tYy13YXJuLXJlZC00MDA6ICAgICNmODcxNzE7XG4gICAgLS1jLXdhcm4tcmVkLTMwMDogICAgI2ZjYTVhNTtcbiAgICAtLWMtd2Fybi15ZWxsb3ctNTAwOiAjZmJiZjI0O1xuICAgIC0tYy13YXJuLXllbGxvdy02MDA6ICNmNTllMGI7XG5cbiAgICAvKiAtLS0tLS0tLS0tIFRvbmVkIGRpYWxvZyBzdXJmYWNlcyAocWRuYXByby1ib3R0b20tc2hlZXQgLyAtcG9wb3ZlciB0b25lPeKApikgLS0tLS0tLS0tLVxuICAgICAgIEtpbSdzIG93biBjb2xvdXIgc2V0IGZvciB0aGUgdGhyZWUgdmVyZGljdCBkaWFsb2dzIChQdWxzZSBcIkNvcnJlY3QhXCIsIFwiQmVldGplIGdvZWQsXG4gICAgICAgYmVldGplIGZvdXRcIiwgXCJIZWxhYXMsIG5pZXQganVpc3RcIiksIDAzLjA5LjIwMjYuIE9uZSBzdXJmYWNlLCBvbmUgY2FyZCBmaWxsICh0aGVcbiAgICAgICBkYXJrZXIgb3B0aW9uIGJsb2NrcyBvbiB0aGUgc3VyZmFjZSksIG9uZSBzb2xpZCBidXR0b24gYW5kIG9uZSBncmFiLWhhbmRsZSBjb2xvdXJcbiAgICAgICBwZXIgdG9uZS4gVGhlc2UgcmVwbGFjZSB0aGUgZWFybGllciByZWQtNTAwL3N1Y2Nlc3MtNTAwIGRpYWxvZyBzdXJmYWNlcyBzbyBFVkVSWVxuICAgICAgIHRvbmVkIGRpYWxvZyBpbiB0aGUgYXBwIHJlYWRzIGFzIG9uZSBmYW1pbHkgd2l0aCB0aGUgUHVsc2Ugc2hlZXRzLiBUaGUgd2FybmluZ1xuICAgICAgIHRvbmUgaGFzIGEgc2Vjb25kIGNhcmQgZmlsbCBmb3IgYW4gb3B0aW9uIHRoYXQgd2FzIFdST05HIChhIHRvdWNoIHJlZGRlciB0aGFuIHRoZVxuICAgICAgIHJpZ2h0IG9uZSkgLSBhIGRlbGliZXJhdGUgZGVzaWduIGNob2ljZSwgbm90IGEgc2xpcC4gQ29udHJhc3Qgd2FzIG1lYXN1cmVkIGFuZFxuICAgICAgIGFjY2VwdGVkIGJ5IEtpbSBhcy1pcyAoZ3JlZW4gc3VyZmFjZSAyLjQ6MSBmb3IgdGhlIDI4cHggdGl0bGUsIGdyZWVuIGNhcmQgNC4xOjFcbiAgICAgICBmb3IgYm9keSB0ZXh0KTsgZG8gbm90IFwiZml4XCIgdGhlc2UgbnVtYmVycyB3aXRob3V0IGhlci4gKi9cbiAgICAtLWMtZGlhbG9nLWRhbmdlci1zdXJmYWNlOiAgICAgICNmZjNhMzA7XG4gICAgLS1jLWRpYWxvZy1kYW5nZXItY2FyZDogICAgICAgICAjYjUyNTFlO1xuICAgIC0tYy1kaWFsb2ctZGFuZ2VyLWJ1dHRvbjogICAgICAgI2NjMmUyNjtcbiAgICAtLWMtZGlhbG9nLWRhbmdlci1ncmFiOiAgICAgICAgICNjYzJlMjY7XG4gICAgLS1jLWRpYWxvZy1zdWNjZXNzLXN1cmZhY2U6ICAgICAjNThiOTkyO1xuICAgIC0tYy1kaWFsb2ctc3VjY2Vzcy1jYXJkOiAgICAgICAgIzQyOGI2ZTtcbiAgICAtLWMtZGlhbG9nLXN1Y2Nlc3MtYnV0dG9uOiAgICAgICM0MjhiNmU7XG4gICAgLS1jLWRpYWxvZy1zdWNjZXNzLWdyYWI6ICAgICAgICAjMmY1ZDRhO1xuICAgIC0tYy1kaWFsb2ctd2FybmluZy1zdXJmYWNlOiAgICAgI2VmOGUwMjtcbiAgICAtLWMtZGlhbG9nLXdhcm5pbmctY2FyZDogICAgICAgICNiZjcyMDI7XG4gICAgLS1jLWRpYWxvZy13YXJuaW5nLWNhcmQtd3Jvbmc6ICAjYmY1YTAyO1xuICAgIC0tYy1kaWFsb2ctd2FybmluZy1idXR0b246ICAgICAgI2JmNzIwMjtcbiAgICAtLWMtZGlhbG9nLXdhcm5pbmctZ3JhYjogICAgICAgICM4ZjU1MDE7XG5cbiAgICAvKiAtLS0tLS0tLS0tIFdoaXRlICsgYmxhY2sgYWxwaGFzIC0tLS0tLS0tLS0gKi9cbiAgICAtLWMtd2hpdGUtMDQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gICAgLS1jLXdoaXRlLTA2OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpO1xuICAgIC0tYy13aGl0ZS0wODogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICAtLWMtd2hpdGUtMTA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCk7XG4gICAgLS1jLXdoaXRlLTEyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICAgIC0tYy13aGl0ZS0xNDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbiAgICAtLWMtd2hpdGUtMjI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMik7XG4gICAgLS1jLXdoaXRlLTI4OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjgpO1xuICAgIC0tYy13aGl0ZS00NTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ1KTtcbiAgICAtLWMtd2hpdGUtNTU6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7XG4gICAgLS1jLXdoaXRlLTY1OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjUpO1xuICAgIC0tYy13aGl0ZS03MDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcwKTtcbiAgICAtLWMtd2hpdGUtODU6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG4gICAgLS1jLXdoaXRlLTkwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTApO1xuXG4gICAgLS1jLWJsYWNrLTA2OiByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgIC0tYy1ibGFjay0wODogcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgICAtLWMtYmxhY2stMTI6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgLS1jLWJsYWNrLTMwOiByZ2JhKDAsIDAsIDAsIDAuMzApO1xuICAgIC0tYy1ibGFjay00MDogcmdiYSgwLCAwLCAwLCAwLjQwKTtcbiAgICAtLWMtYmxhY2stNDU6IHJnYmEoMCwgMCwgMCwgMC40NSk7XG5cbiAgICAvKiAtLS0tLS0tLS0tIEJyYW5kIHB1cnBsZSBhbHBoYXMgLS0tLS0tLS0tLSAqL1xuICAgIC0tYy1hY3Rpb24tMDg6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMDgpO1xuICAgIC0tYy1hY3Rpb24tMTI6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMTIpO1xuICAgIC0tYy1hY3Rpb24tMTg6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMTgpO1xuICAgIC0tYy1hY3Rpb24tMjI6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjIpO1xuICAgIC0tYy1hY3Rpb24tMjU6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xuICAgIC0tYy1hY3Rpb24tMzA6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMzApO1xuICAgIC0tYy1hY3Rpb24tNDA6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNDApO1xuICAgIC0tYy1hY3Rpb24tNTA6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNTApO1xuICAgIC0tYy1hY3Rpb24tNzA6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNzApO1xuXG4gICAgLS1jLXB1cnBsZS1zb2Z0LTEyOiByZ2JhKDY0LCA3MywgMTU0LCAwLjEyKTtcbiAgICAtLWMtcHVycGxlLXNvZnQtMTg6IHJnYmEoNjQsIDczLCAxNTQsIDAuMTgpO1xuXG4gICAgLS1jLXB1cnBsZS0yMDAtMzA6IHJnYmEoMTY1LCAxNzIsIDI1NSwgMC4zMCk7XG4gICAgLS1jLXB1cnBsZS0yMDAtNTA6IHJnYmEoMTY1LCAxNzIsIDI1NSwgMC41MCk7XG5cbiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgICBMQVlFUiBCIOKAlCBTZW1hbnRpYyB0b2tlbnMgKExJR0hUKVxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyogQnJhbmQgKi9cbiAgICAtLWMtYnJhbmQtcHVycGxlOiAgICAgICAgdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICAtLWMtYnJhbmQtcHVycGxlLWhvdmVyOiAgdmFyKC0tYy1wdXJwbGUtNjAwKTtcbiAgICAtLWMtYnJhbmQtcHVycGxlLXByZXNzOiAgdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgICAtLWMtcHVycGxlLWhpZ2hsaWdodDogICAgdmFyKC0tYy1hY3Rpb24tNTAwKTtcblxuICAgIC8qIFN1cmZhY2VzICovXG4gICAgLyogV2FzICNlYmVkZmIsIGJ1dCBodG1sL2JvZHkgc2hpcHBlZCAjZTZlOWZmIHZpYSBhIFNDU1MgdmFyaWFibGUsIHNvIHR3b1xuICAgICAgIG5lYXItaWRlbnRpY2FsIHBhZ2UgcHVycGxlcyBsaXZlZCBzaWRlIGJ5IHNpZGUgKDUyIHVzZXMgb2YgI2U2ZTlmZlxuICAgICAgIGFnYWluc3QgNSBvZiB0aGUgdG9rZW4pLiBBbGlnbmVkIE9OIHRoZSB2YWx1ZSBldmVyeW9uZSBhbHJlYWR5IHNlZXMsIHNvXG4gICAgICAgd2lyaW5nIHRoZSBwYWdlIG9udG8gdGhpcyB0b2tlbiBjaGFuZ2VkIG5vdGhpbmcgdmlzdWFsbHkuIFRoZSBmaXZlXG4gICAgICAgcGxhY2VzIHRoYXQgYWxyZWFkeSB1c2VkIHRoZSB0b2tlbiBzaGlmdCBieSB+MiBwb2ludHMgYW5kIGFyZSBub3cgaW5cbiAgICAgICBzdGVwIHdpdGggdGhlIHJlc3QuIFtLaW0gMjAyNi0wOC0wN10gKi9cbiAgICAtLWMtYmctcGFnZTogICAgICAgICAgICAgI2U2ZTlmZjtcbiAgICAvKiBFw6luIHRyYXAgRE9OS0VSREVSIGRhbiBkZSBwYWdpbmEsIHZvb3IgZWVuIHZsYWsgZGF0IGVlbiBwYW5lZWwgbW9ldCB6aWpuXG4gICAgICAgem9uZGVyIHdpdCB0ZSB3b3JkZW46IGRlIGF1ZGl0IHRyYWlsIG5hYXN0IGRlIHdpdHRlIHBhbmVsZW4uIEhhbHZlcndlZ2VcbiAgICAgICAtLWMtcHVycGxlLTUwIChkZSBwYWdpbmEpIGVuIC0tYy1wdXJwbGUtMTAwICgjYzBjNWZmKSwgd2FudCBkaWUgdm9sZ2VuZGVcbiAgICAgICB0cmFwIGluIGRlIHNjaGFhbCBpcyBhbHMgZ3Jvb3QgdmxhayB0ZSB2ZXJ6YWRpZ2QuIFZ1bGRlIGVlbiBnYXQ6IGhpZXJ2b29yXG4gICAgICAgd2FzIGRlIGVuaWdlIHRpbnQgaGllcnR1c3NlbiAtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0LCBlZW4gUkFORC10b2tlbi5cbiAgICAgICBbS2ltIDEwLjA4LjIwMjZdICovXG4gICAgLS1jLWJnLXBhZ2Utc3Vua2VuOiAgICAgICNkZGUwZjc7XG4gICAgLS1jLWJnLWNhcmQ6ICAgICAgICAgICAgICNmZmZmZmY7XG4gICAgLS1jLWJnLWNhcmQtaG92ZXI6ICAgICAgICNmN2Y4ZmE7XG4gICAgLS1jLWJnLXNlY29uZGFyeS1wdXJwbGU6IHZhcigtLWMtcHVycGxlLTUwKTtcbiAgICAtLWMtYmctc3VidGxlLXB1cnBsZTogICAgI2YzZjVmZjtcbiAgICAtLWMtYmctc3VidGxlLWhvdmVyOiAgICAgdmFyKC0tYy1ncmV5LTUwKTtcblxuICAgIC8qIE92ZXJsYXkgZnJhbWVcbiAgICAgICBEZSBzY2hpbCBkaWUgRUxLIGdlY2VudHJlZXJkIHZlbnN0ZXIgZHJhYWd0OiBgcWRuYXByby1tb2RhbGAgZW4gZGVcbiAgICAgICB6ZWxmc3RhbmRpZ2Ugb3ZlcmxheXMgZGllIGAucW9zLSpgIGdlYnJ1aWtlbiAoemllXG4gICAgICAgY29tcG9uZW50cy92Mi9vdmVybGF5LXNoZWxsL19vdmVybGF5LXNoZWxsLnNjc3MpLiBaZSBsZXplbiBkZXplbGZkZVxuICAgICAgIHRva2Vucywgem9kYXQgZGUgZnJhbWVzIG5pZXQgbWVlciBsb3MgdmFuIGVsa2FhciBrdW5uZW4gZHJpanZlbiB6b2FscyBkZVxuICAgICAgIG1ldC1kZS1oYW5kLWdla29waWVlcmRlIHZlcnNpZXMgZGVkZW46IHZpamYga29waWVlbiwgdmlqZiB2ZXJzY2hpbGxlbmRlXG4gICAgICAgc2NyaW1zIGVuIHotaW5kZXhlbi4gW0tpbSAxOS4wOC4yMDI2XSAqL1xuICAgIC0tb3ZlcmxheS16OiAgICAgICAgICAgICA5MDAwO1xuICAgIC8qIEdlb3BlbmQgVkFOVUlUIGVlbiBhbmRlciB2ZW5zdGVyIChmb3JtdWxlLWJvdXdlciwgb3BtYWFrcmVnZWxzKTogbW9ldFxuICAgICAgIGJvdmVuIGRlIFwiYWx0aWpkIGJvdmVub3BcIi1sYWFnIHZhbiBkZSBmbG93ZWRpdG9yICg5MzAwKSB1aXRrb21lbiwgYW5kZXJzXG4gICAgICAgbGFuZHQgaGlqIEFDSFRFUiBkZSBtb2RhbCB3YWFydWl0IGplIGhlbSBuZXQgb3BlbmRlLiBHZW1ldGVuLCBuaWV0XG4gICAgICAgYWFuZ2Vub21lbjsgZGUgdWl0bGVnIHN0YWF0IGluIF9mb3JtdWxhLWVkaXRvci5zY3NzLiAqL1xuICAgIC0tb3ZlcmxheS16LW5lc3RlZDogICAgICA5NDAwO1xuICAgIC0tb3ZlcmxheS1zY3JpbTogICAgICAgICByZ2JhKDExLCAxMSwgMTMsIDAuNDUpO1xuICAgIC0tb3ZlcmxheS1mcmFtZS1iZzogICAgICB2YXIoLS1jLWdyZXktNTApO1xuICAgIC0tb3ZlcmxheS1mcmFtZS1ib3JkZXI6ICAjZmZmZmZmO1xuICAgIC0tb3ZlcmxheS1mcmFtZS1yYWRpdXM6ICAxNnB4O1xuICAgIC0tb3ZlcmxheS1mcmFtZS1zaGFkb3c6ICAwIDRweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMwKSwgMCA4cHggMTJweCA2cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICAtLW92ZXJsYXktd2luZG93LWJnOiAgICAgdmFyKC0tYy1iZy1jYXJkKTtcbiAgICAtLW92ZXJsYXktd2luZG93LWJvcmRlcjogdmFyKC0tYy1ncmV5LTMwMCk7XG4gICAgLS1vdmVybGF5LXdpbmRvdy1yYWRpdXM6IDEycHg7XG5cbiAgICAvKiBTaWRlYmFyICovXG4gICAgLS1jLXNpZGViYXItYmc6ICAgICAgICAgICMzYTQyOTA7XG4gICAgLS1jLXNpZGViYXItYmctYWN0aXZlOiAgICNmZmZmZmY7XG4gICAgLS1jLXNpZGViYXItaWNvbjogICAgICAgICNjNWM5ZWI7XG4gICAgLS1jLXNpZGViYXItaWNvbi1hY3RpdmU6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICAtLWMtc2lkZWJhci1hY3RpdmUtYmc6ICAgI2ZmZmZmZjtcblxuICAgIC8qIFRleHQgKi9cbiAgICAtLWMtdGV4dC1ib2R5OiAgICAgICAgICAgdmFyKC0tYy1ncmV5LTk1MCk7XG4gICAgLS1jLXRleHQtbXV0ZWQ6ICAgICAgICAgICM2ZTcyODA7XG4gICAgLS1jLXRleHQtZGlzYWJsZWQ6ICAgICAgICM4OThlOTk7XG4gICAgLS1jLXRleHQtZGlzYWJsZWQtcHA6ICAgICM4YzkyYzI7XG4gICAgLS1jLXRleHQtaGVhZGluZzogICAgICAgICMxYTFmNGQ7XG4gICAgLS1jLXRleHQtb24tYWN0aW9uOiAgICAgICNmZmZmZmY7XG5cbiAgICAvKiBUYWcgY29sb3VycyAqL1xuICAgIC0tYy10YWctaGFuZG92ZXItYmc6ICAgICAjZTdkZWZiO1xuICAgIC0tYy10YWctaGFuZG92ZXItdGV4dDogICAjNmIzZmI4O1xuICAgIC0tYy10YWctY3JpdGljYWwtYmc6ICAgICAjZmZlMWRlO1xuICAgIC0tYy10YWctY3JpdGljYWwtdGV4dDogICAjYzMzYTMwO1xuICAgIC0tYy10YWctZGVhZGxpbmUtYmc6ICAgICAjZmZlMmRjO1xuICAgIC0tYy10YWctZGVhZGxpbmUtdGV4dDogICAjYzMzYTMwO1xuICAgIC0tYy10YWctd2FybmluZy1iZzogICAgICAjZmZmMmQ2O1xuICAgIC0tYy10YWctd2FybmluZy10ZXh0OiAgICAjYTA2NDAwO1xuICAgIC0tYy10YWctbmV3LWJnOiAgICAgICAgICB2YXIoLS1jLXNpZ25hbC1ncmVlbi0xMDApO1xuICAgIC0tYy10YWctbmV3LXRleHQ6ICAgICAgICAjMWY3YTQ4O1xuXG4gICAgLyogQ2hpcCBwYWxldHRlIC0gdGhlIDE2IGNvbG91ciBmYW1pbGllcyBvZiBxZG5hcHJvLXRhZy5cbiAgICAgICBUaGVzZSBsaXZlZCBhcyA4OCBsb29zZSBoZXggdmFsdWVzIGluc2lkZSBfdGFnLnNjc3Mgd2hpbGUgbGFiZWwtY2lyY2xlLFxuICAgICAgIGFjdGl2aXR5LWNhcmQsIG51bWJlci1pbmRpY2F0b3ItYmFkZ2UsIGdyaWQtdGlsZSwgbGlzdC1yb3cgYW5kIHBpY2tlci1yb3dcbiAgICAgICByZXR5cGVkIHRoZSBzYW1lIHZhbHVlcy4gUHJvbW90ZWQgdG8gdG9rZW5zIHNvIHRoZXJlIGlzIG9uZSBzb3VyY2UuXG4gICAgICAgRmFtaWx5IG5hbWVzIGFyZSB0YWtlbiB2ZXJiYXRpbSBmcm9tIHRoZSBjb21wb25lbnQncyB0YWctY29sb3ItKiBjbGFzc2VzLFxuICAgICAgIGluY2x1ZGluZyB0aGUgaW5jb25zaXN0ZW50IG9uZXMgKGJyaWdodC1ibHVlLTIsIGRhcmstcGluaywgZGFyay1wdXJwbGUpLlxuICAgICAgIFtLaW0gMjAyNi0wOC0wN10gKi9cbiAgICAtLWMtY2hpcC1ncmV5LWJnOiAgICAgICAgICAgICAgdmFyKC0tYy1ncmV5LTUwKTtcbiAgICAtLWMtY2hpcC1ncmV5LWhvdmVyOiAgICAgICAgICAgdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgLS1jLWNoaXAtZ3JleS10ZXh0OiAgICAgICAgICAgICMxZTFmMjA7XG4gICAgLS1jLWNoaXAtZ3JleS0yLWJnOiAgICAgICAgICAgIHZhcigtLWMtZ3JleS0zMDApO1xuICAgIC0tYy1jaGlwLWdyZXktMi1ob3ZlcjogICAgICAgICB2YXIoLS1jLWdyZXktNDAwKTtcbiAgICAtLWMtY2hpcC1ncmV5LTItdGV4dDogICAgICAgICAgIzFlMWYyMDtcbiAgICAtLWMtY2hpcC1yZWQtYmc6ICAgICAgICAgICAgICAgdmFyKC0tYy1zaWduYWwtcmVkLWJnKTtcbiAgICAtLWMtY2hpcC1yZWQtaG92ZXI6ICAgICAgICAgICAgI2ZjYzZjNjtcbiAgICAtLWMtY2hpcC1yZWQtdGV4dDogICAgICAgICAgICAgIzYzMzAzMDtcbiAgICAtLWMtY2hpcC1yZWQtMi1iZzogICAgICAgICAgICAgI2ZiYWFhYTtcbiAgICAtLWMtY2hpcC1yZWQtMi1ob3ZlcjogICAgICAgICAgI2Y5OGQ4ZDtcbiAgICAtLWMtY2hpcC1yZWQtMi10ZXh0OiAgICAgICAgICAgIzYzMzAzMDtcbiAgICAtLWMtY2hpcC15ZWxsb3ctYmc6ICAgICAgICAgICAgI2ZlZjZkYjtcbiAgICAtLWMtY2hpcC15ZWxsb3ctaG92ZXI6ICAgICAgICAgdmFyKC0tYy1zaWduYWwteWVsbG93LWJnKTtcbiAgICAtLWMtY2hpcC15ZWxsb3ctdGV4dDogICAgICAgICAgIzY1NTUyMjtcbiAgICAtLWMtY2hpcC15ZWxsb3ctMi1iZzogICAgICAgICAgI2ZkZTU5NDtcbiAgICAtLWMtY2hpcC15ZWxsb3ctMi1ob3ZlcjogICAgICAgI2ZkZGM3MTtcbiAgICAtLWMtY2hpcC15ZWxsb3ctMi10ZXh0OiAgICAgICAgIzY1NTUyMjtcbiAgICAtLWMtY2hpcC1ncmVlbi1iZzogICAgICAgICAgICAgI2UyZmFmMTtcbiAgICAtLWMtY2hpcC1ncmVlbi1ob3ZlcjogICAgICAgICAgI2E4ZjFkNDtcbiAgICAtLWMtY2hpcC1ncmVlbi10ZXh0OiAgICAgICAgICAgIzJmNWQ0YTtcbiAgICAtLWMtY2hpcC1ncmVlbi0yLWJnOiAgICAgICAgICAgIzhiZWNjNTtcbiAgICAtLWMtY2hpcC1ncmVlbi0yLWhvdmVyOiAgICAgICAgIzZlZTdiNztcbiAgICAtLWMtY2hpcC1ncmVlbi0yLXRleHQ6ICAgICAgICAgIzJmNWQ0YTtcbiAgICAtLWMtY2hpcC1ibHVlLWJnOiAgICAgICAgICAgICAgdmFyKC0tYy1zaWduYWwtYmx1ZS1iZyk7XG4gICAgLS1jLWNoaXAtYmx1ZS1ob3ZlcjogICAgICAgICAgICNjZWRlZjM7XG4gICAgLS1jLWNoaXAtYmx1ZS10ZXh0OiAgICAgICAgICAgICMzNzQ3NWE7XG4gICAgLS1jLWNoaXAtYmx1ZS0yLWJnOiAgICAgICAgICAgICNiNWNlZWQ7XG4gICAgLS1jLWNoaXAtYmx1ZS0yLWhvdmVyOiAgICAgICAgICM5ZGJkZTc7XG4gICAgLS1jLWNoaXAtYmx1ZS0yLXRleHQ6ICAgICAgICAgICMzNzQ3NWE7XG4gICAgLS1jLWNoaXAtYnJpZ2h0LWJsdWUtYmc6ICAgICAgICM4NWExZWM7XG4gICAgLS1jLWNoaXAtYnJpZ2h0LWJsdWUtaG92ZXI6ICAgICM1ZDgyZTU7XG4gICAgLS1jLWNoaXAtYnJpZ2h0LWJsdWUtdGV4dDogICAgICMxOTJhNWE7XG4gICAgLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1iZzogICAgICNkNmUwZjk7XG4gICAgLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1ob3ZlcjogICNhZWMxZjI7XG4gICAgLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi10ZXh0OiAgICMxOTJhNWE7XG4gICAgLS1jLWNoaXAtcGluay1iZzogICAgICAgICAgICAgIHZhcigtLWMtc2lnbmFsLXBpbmstYmcpO1xuICAgIC0tYy1jaGlwLXBpbmstaG92ZXI6ICAgICAgICAgICAjZWVjM2QwO1xuICAgIC0tYy1jaGlwLXBpbmstdGV4dDogICAgICAgICAgICAjNTYyZDNhO1xuICAgIC0tYy1jaGlwLWRhcmstcGluay1iZzogICAgICAgICAjZTVhNmI5O1xuICAgIC0tYy1jaGlwLWRhcmstcGluay1ob3ZlcjogICAgICAjZGQ4OGExO1xuICAgIC0tYy1jaGlwLWRhcmstcGluay10ZXh0OiAgICAgICAjNTYyZDNhO1xuICAgIC0tYy1jaGlwLXB1cnBsZS1iZzogICAgICAgICAgICAjZWJlOWZiO1xuICAgIC0tYy1jaGlwLXB1cnBsZS1ob3ZlcjogICAgICAgICAjZDhkMmY3O1xuICAgIC0tYy1jaGlwLXB1cnBsZS10ZXh0OiAgICAgICAgICAjNDEzYjVlO1xuICAgIC0tYy1jaGlwLWRhcmstcHVycGxlLWJnOiAgICAgICAjYzRiY2YzO1xuICAgIC0tYy1jaGlwLWRhcmstcHVycGxlLWhvdmVyOiAgICAjYjFhNWVmO1xuICAgIC0tYy1jaGlwLWRhcmstcHVycGxlLXRleHQ6ICAgICAjNDEzYjVlO1xuXG4gICAgLyogLS0tLS0tLS0tLSBCYXR0bGUgcGFsZXR0ZSAoUHVsc2UgZ2FtaWZpY2F0aW9uIGJhdHRsZXMpIC0tLS0tLS0tLS1cbiAgICAgICBCT0FSRC1wdWxzZS1nYW1pZmljYXRpb24tYmF0dGxlcywgYmVzbHVpdCAyNy8zNmMgKGthYXJ0IDEzYSwgYVxuICAgICAgIHJlcGFpciBjYXJkIG9mZiB0aGUga2FhcnQgMTcgdmVyaWZpY2F0aW9uKS4gVGVhbSBjb2xvdXJzIGFyZSBhXG4gICAgICAgRklYRUQsIGNvbnRyYXN0aW5nIHBhbGV0dGUgYXNzaWduZWQgYnkgY29sb3VyX2luZGV4ICgwLCAxLCAyLCAuLi4pIC1cbiAgICAgICBuZXZlciB1c2VyLXBpY2tlZCwgbmV2ZXIgcmV1c2VkIGFzIGEgc2VtYW50aWMgY29sb3VyIGVsc2V3aGVyZS5cbiAgICAgICBQb2RpdW0gY29sb3VycyBhcmUgZml4ZWQgQlkgUExBQ0U6IGFtYmVyICgxc3QpLCB0ZWFsICgybmQpLCBjb3JhbFxuICAgICAgICgzcmQpOyBnb2xkIGlzIGFuIGFjY2VudCBvbmx5LCBub3QgYSA0dGggcG9kaXVtIGNvbG91ci5cbiAgICAgICBObyBkZWRpY2F0ZWQgXCJiYXR0bGVcIiBwcmltaXRpdmVzIGV4aXN0IGluIEZpZ21hLCBzbyBldmVyeSB0b2tlblxuICAgICAgIGJlbG93IHBvaW50cyBhdCB0aGUgY2xvc2VzdCBFWElTVElORyBwcmltaXRpdmUvY2hpcCBjb2xvdXIgKGNoaXAtXG4gICAgICAgcGFsZXR0ZSBydWxlOiBuZXZlciBhIHJhdyBoZXgpLiBUaGUgaGV4IHZhbHVlIGluIGVhY2ggY29tbWVudCBpcyB0aGVcbiAgICAgICBDVVJSRU5UIHJlc29sdmVkIHZhbHVlIG9mIHRoYXQgcHJpbWl0aXZlLCBub3QgYSBuZXcgbGl0ZXJhbCBoZXJlLlxuICAgICAgIERpc3RhbmNlcyBtZW50aW9uZWQgaW4gdGhlIGhhbmQtb2ZmIHJlcG9ydCBhcmUgcGxhaW4gUkdCIEV1Y2xpZGVhblxuICAgICAgIGRpc3RhbmNlLCB1c2VkIG9ubHkgdG8gcmVhc29uIGFib3V0IG11dHVhbCBjb250cmFzdCAtIG5vdCBhIGZvcm1hbFxuICAgICAgIGNvbG91ci1zY2llbmNlIHBhc3MsIHNvIHRyZWF0IHRoZSBleGFjdCBwaWNrcyBhcyBhIGp1ZGdlbWVudCBjYWxsLFxuICAgICAgIG5vdCBhIHZlcmlmaWVkIGRlc2lnbmVyLXN1cHBsaWVkIGhleC4gKi9cbiAgICAvKiBUZWFtIDAvMSByZS1tYXBwZWQgMTQuMDkuMjAyNiB0byBLaW0ncyBjYW1wYWduZS10aWxlIGRlc2lnbiAoY29yYWwgcmVkXG4gICAgICAgdnMgYW1iZXIsIHNhbXBsZWQgZnJvbSBoZXIgRmlnbWEpIHNvIHRoZSBjb21tb24gMi10ZWFtIGJhdHRsZSBtYXRjaGVzXG4gICAgICAgdGhhdCBkZXNpZ24gZXZlcnl3aGVyZSB0aGUgdG9rZW5zIGFyZSB1c2VkICh0aWxlLCBzdHJpcCwgY2hpcCwgcmV2ZWFsKS5cbiAgICAgICBUaGUgb2xkIGxhdmVuZGVyL3RlYWwgcGFpciBtb3ZlZCB0byAyLzM7IG9yYW5nZSBhbmQgeWVsbG93IGRyb3BwZWQgb3V0XG4gICAgICAgYmVjYXVzZSB0aGV5IHNhdCB0b28gY2xvc2UgdG8gdGhlIG5ldyByZWQvYW1iZXIgaW4gaHVlLiBSZWQgdnMgYW1iZXJcbiAgICAgICBzdGlsbCByZWFkcyBhcGFydCB1bmRlciBtb3N0IGNvbG91ci12aXNpb24gZGVmaWNpZW5jaWVzIChsYXJnZVxuICAgICAgIGxpZ2h0bmVzcyBnYXAsIHNhbWUgaWRlYSBhcyB0aGUgb2xkIG9yYW5nZS95ZWxsb3cgcGFpcmluZykuICovXG4gICAgLS1jLWJhdHRsZS10ZWFtLTA6ICAjZTg1NjRiOyAgICAgICAgICAgICAgICAgICAgLyogY29yYWwgcmVkIC0gdGVhbSBBIGluIEtpbSdzIGNhbXBhZ25lLXRpbGUgZGVzaWduICgxNC4wOS4yMDI2KSAqL1xuICAgIC0tYy1iYXR0bGUtdGVhbS0xOiAgI2YyYjMzYzsgICAgICAgICAgICAgICAgICAgIC8qIGFtYmVyIC0gdGVhbSBCIGluIHRoYXQgc2FtZSBkZXNpZ24gKi9cbiAgICAtLWMtYmF0dGxlLXRlYW0tMjogIHZhcigtLWMtcHVycGxlLTMwMCk7ICAgICAgICAvKiAjOGE5MmQwIC0gbGF2ZW5kZXIvdmlvbGV0ICh0ZWFtIDAgdW50aWwgMTQuMDkuMjAyNikgKi9cbiAgICAtLWMtYmF0dGxlLXRlYW0tMzogIHZhcigtLWMtc3VjY2Vzcy1icmlnaHQpOyAgICAvKiAjMWQ5ZTc1IC0gdGVhbC9ncmVlbiAodGVhbSAxIHVudGlsIDE0LjA5LjIwMjYpICovXG4gICAgLS1jLWJhdHRsZS10ZWFtLTQ6ICB2YXIoLS1jLWNoaXAtZGFyay1waW5rLWJnKTsgLyogI2U1YTZiOSAtIHBpbmsvcm9zZTsgYWxzbyB0aGUgb25seSB0ZWFtIGNvbG91ciB3aXRoIGEgZ2VudWluZSBkYXJrLW1vZGUgdmFsdWUsIGluaGVyaXRlZCBmb3IgZnJlZSBmcm9tIHRoZSBjaGlwIHBhbGV0dGUgYWJvdmUgKi9cbiAgICAtLWMtYmF0dGxlLXRlYW0tNTogICM1NmNjZjI7ICAgICAgICAgICAgICAgICAgICAvKiBza3kvY3lhbiAtIEhFUlpJRU4gMTYuMDkuMjAyNiAoS2ltLCBmaW5hbGUtZWluZHNjaGVybSk6IGhldCBuZXV0cmFsZSBncmlqcyAoLS1jLWdyZXktNjAwKSBsYXMgYWxzIHZpZXMgendhcnQgb3AgZGUgcGFhcnNlIGZlZXN0emFhbC4gQ3lhYW4gd2FzIGRlIG9wZW4gcGxlayBpbiBoZXQgaHVlLXdpZWwgKHJvb2QvYW1iZXIvbGF2ZW5kZWwvdGVhbC9yb3plIGJlemV0KTsgZGUgQ1ZELXRyb2VmIHZhbiBrbGV1cmxvb3MgZ3JpanMgcnVpbGVuIHdlIGluIHZvb3IgZWVuIGdyb290IGxpY2h0aGVpZHMtZ2F0IG1ldCB0ZWFsIChkb25rZXIpIGVuIGRlIHdhcm1lIHRpbnRlbi4gKi9cblxuICAgIC8qIEluayBPTiBhIHRlYW0gZmlsbCAtIHRoZSBiYXR0bGUtYmFyIGhlcm8gd3JpdGVzIHRoZSBhdmVyYWdlcyBpbnNpZGUgdGhlXG4gICAgICAgYmFyIGhhbHZlcy4gRklYRUQgdmFsdWVzIHRoYXQgZG8gbm90IGZsaXAgd2l0aCBkYXJrIG1vZGUsIGJlY2F1c2UgdGhlXG4gICAgICAgZmlsbHMgZG8gbm90IGZsaXAgZWl0aGVyIChzYW1lIFwidmFzdGUgaW5rdCBvcCBlZW4gdmFzdGUgdnVsbGluZ1wiIHJ1bGVcbiAgICAgICBhcyB0aGUgcmV2ZWFsIHN0YWdlKS4gT25seSB0aGUgbGlnaHQgZmlsbHMgbmVlZCBvbmU7IGV2ZXJ5IG90aGVyIHRlYW1cbiAgICAgICBmYWxscyBiYWNrIHRvIC0tYy10ZXh0LW9uLWFjdGlvbiAod2hpdGUpIGluIHRoZSBjb21wb25lbnQuIE1lYXN1cmVkOlxuICAgICAgIHdoaXRlIG9uIGFtYmVyIDEuOToxLCBvbiBsYXZlbmRlciAyLjk6MSwgb24gcGluayAyLjE6MSAtIGFsbCB1bnJlYWRhYmxlXG4gICAgICAgYXQgMjFweDsgdGhlc2UgaW5rcyBzaXQgPj0gNToxIG9uIHRoZWlyIGZpbGwuICovXG4gICAgLS1jLWJhdHRsZS10ZWFtLTEtaW5rOiAjNmI1NDE4OyAgLyogZGFyayBhbWJlci1icm93biwgbWF0Y2hlcyB0aGUgZGVzaWduJ3MgZGFyayB2YWx1ZSBvbiB0aGUgYW1iZXIgaGFsZiAqL1xuICAgIC0tYy1iYXR0bGUtdGVhbS0yLWluazogIzI2MmM1NjsgIC8qIGRhcmsgaW5kaWdvIG9uIHRoZSBsYXZlbmRlciBmaWxsICovXG4gICAgLS1jLWJhdHRsZS10ZWFtLTQtaW5rOiAjNWMyNDM3OyAgLyogZGFyayByb3NlIG9uIHRoZSBwaW5rIGZpbGwgKi9cbiAgICAtLWMtYmF0dGxlLXRlYW0tNS1pbms6ICMxNDQwNGY7ICAvKiBkYXJrIHBldHJvbCBvbiB0aGUgbmV3IGN5YW4gZmlsbCAoMTYuMDkuMjAyNikgLSB3aGl0ZSBvbiAjNTZjY2YyIGlzIH4xLjk6MSAqL1xuXG4gICAgLyogSEVSWklFTiAxNi4wOS4yMDI2IChLaW0sIGZpbmFsZS1wb2RpdW0pOiBwbGVrIDEgd2FzICNkOTc3MDYgYW1iZXIgZW4gbGFzXG4gICAgICAgYWxzIG9yYW5qZSwgcGxlayAyIHdhcyAjMTI4MDVlIHRlYWwgZW4gbGFzIGFscyBncm9lbi4gWmUgZHJhZ2VuIG51IGRlXG4gICAgICAgVEVBTUtMRVVSRU4gZGllIEtpbSBhbCBrZW50IHVpdCBkZSBjYW1wYWduZS10aWxlOiBnZWVsICh0ZWFtLTEpIGVuXG4gICAgICAgbGljaHRibGF1dyAodGVhbS01KS4gRcOpbiBicm9uLCBkdXMgaGV0IG91ZGUgcG9kaXVtLCBkZSBmaW5hbGUtenVpbGVuIGVuXG4gICAgICAgZGUgcmVrZW4tbG9hZGVyIHdpc3NlbGVuIHNhbWVuIG1lZS4gUGxlayAzIChrb3JhYWwpIGJsaWpmdC4gKi9cbiAgICAtLWMtYmF0dGxlLXBvZGl1bS0xOiAgICAgdmFyKC0tYy1iYXR0bGUtdGVhbS0xKTsgICAgIC8qICNmMmIzM2MgLSBnZWVsICgxZSBwbGVrKSAqL1xuICAgIC0tYy1iYXR0bGUtcG9kaXVtLTEtaW5rOiB2YXIoLS1jLWJhdHRsZS10ZWFtLTEtaW5rKTsgLyogIzZiNTQxOCAtIGRvbmtlciBhbWJlcmJydWluIG9wIGhldCBnZWxlIHZsYWsgKi9cbiAgICAtLWMtYmF0dGxlLXBvZGl1bS0yOiAgICAgdmFyKC0tYy1iYXR0bGUtdGVhbS01KTsgICAgIC8qICM1NmNjZjIgLSBsaWNodGJsYXV3ICgyZSBwbGVrKSAqL1xuICAgIC0tYy1iYXR0bGUtcG9kaXVtLTItaW5rOiB2YXIoLS1jLWJhdHRsZS10ZWFtLTUtaW5rKTsgLyogIzE0NDA0ZiAtIGRvbmtlciBwZXRyb2w7IHdpdCBvcCAjNTZjY2YyIGlzIH4xLjk6MSAqL1xuICAgIC0tYy1iYXR0bGUtcG9kaXVtLTM6ICAgICB2YXIoLS1jLWZhdm9yaXRlLWhlYXJ0KTsgLyogI2ZmNGQ2YSAtIGNsb3Nlc3QgZXhpc3RpbmcgdG9rZW4gdG8ga29yYWFsIChubyBjb3JhbCBwcmltaXRpdmUgZXhpc3RzIGluIHRoaXMgZmlsZSk7IHN0aWxsIHRoZSBsZWFzdC1iYWQgYXBwcm94aW1hdGlvbiwgbm90IGEgdmVyaWZpZWQgZXhhY3QgbWF0Y2ggKi9cbiAgICAtLWMtYmF0dGxlLXBvZGl1bS0zLWluazogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7IC8qIHdoaXRlIGluazsgZmF2b3JpdGUtaGVhcnQgaXMgZGFyayBlbm91Z2ggdG8gbmVlZCBpdCAqL1xuXG4gICAgLyogQm9yZGVycyAqL1xuICAgIC0tYy1ib3JkZXItc29mdDogICAgICAgICByZ2JhKDAsIDAsIDAsIDAuMDcpO1xuICAgIC0tYy1ib3JkZXItc29mdC0yOiAgICAgICAjZTZlOWVmO1xuICAgIC0tYy1ib3JkZXItY2FyZDogICAgICAgICAjZTFlM2U2O1xuICAgIC0tYy1ib3JkZXItdHJlZTogICAgICAgICAjZDRkOGVjO1xuICAgIC0tYy1ib3JkZXItdHJlZS1icmlnaHQ6ICAjZDRkOGVlO1xuXG4gICAgLyogU2hhZG93cyAqL1xuICAgIC0tc2hhZG93LWNhcmQ6ICAgICAgICAgICAwIDFweCAycHggcmdiYSgyMCwgMjUsIDgwLCAwLjA0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCA0cHggMTZweCByZ2JhKDIwLCAyNSwgODAsIDAuMDQpO1xuXG4gICAgLyogRm9jdXMgKi9cbiAgICAtLWZvY3VzLXJpbmc6ICAgICAgICAgICAgdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIC0tZm9jdXMtZ2xvdzogICAgICAgICAgICB2YXIoLS1jLWFjdGlvbi0yNSk7XG5cbiAgICAvKiBSYWRpaSDigJQgNC1iYXNlZCBzY2FsZSAobWF0Y2hlcyB0aGUgc3BhY2luZyBzY2FsZSkuIFtLaW0gMjQuMDYuMjAyNl0gKi9cbiAgICAtLXItMTogNHB4O1xuICAgIC0tci0yOiA4cHg7XG4gICAgLS1yLTM6IDEycHg7XG4gICAgLS1yLTQ6IDE2cHg7XG4gICAgLS1yLTU6IDIwcHg7XG4gICAgLyogU2VtYW50aWMgcmFkaXVzIHRva2VucyBub3cgcmVmZXJlbmNlIHRoZSBzY2FsZSAod2VyZSBvZmYtc2NhbGUgOC8xMC8xNCkuXG4gICAgICAgTWlncmF0aW9uOiAtLXItcm93IDEw4oaSMTIsIC0tci1jYXJkIDE04oaSMTYuIEFmZmVjdHMgZXZlcnkgY29tcG9uZW50IHRoYXQgdXNlcyB0aGVtLiAqL1xuICAgIC0tci1idG46ICAgICB2YXIoLS1yLTIpO1xuICAgIC0tci1idXR0b246ICB2YXIoLS1yLTIpO1xuICAgIC0tci1yb3c6ICAgICB2YXIoLS1yLTMpO1xuICAgIC0tci1jYXJkOiAgICB2YXIoLS1yLTQpO1xuICAgIC0tci1waWxsOiAgICA5OTlweDtcblxuICAgIC8qIFNwYWNpbmcgc2NhbGUgKi9cbiAgICAtLXMtMTogNHB4O1xuICAgIC0tcy0yOiA4cHg7XG4gICAgLS1zLTM6IDEycHg7XG4gICAgLS1zLTQ6IDE2cHg7XG4gICAgLS1zLTU6IDIwcHg7XG4gICAgLS1zLTY6IDI0cHg7XG4gICAgLS1zLTc6IDMycHg7XG4gICAgLS1zLTg6IDQwcHg7XG5cbiAgICAvKiBUeXBvZ3JhcGh5ICovXG4gICAgLS1mZjogXCJJbnRlclwiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFwiU2Vnb2UgVUlcIiwgc2Fucy1zZXJpZjtcbiAgICAtLWZ3LXJlZ3VsYXI6IDQwMDtcbiAgICAtLWZ3LW1lZGl1bTogIDUwMDtcbiAgICAtLWZ3LXNlbWk6ICAgIDYwMDtcbn1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIExBWUVSIEIg4oCUIFNlbWFudGljIHRva2VucyAoREFSSylcbiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgVHJpZ2dlcmVkIGJ5IEFOWSBvZjpcbiAgICAgW2RhdGEtdGhlbWUtZGFya10gICAgICAgICAgICAgIChib29sZWFuLCB1c2VkIGJ5IHRhc2tsaXN0IG9uIDxodG1sPilcbiAgICAgW2RhdGEtdGhlbWU9XCJkYXJrXCJdICAgICAgICAgICAgKHZhbHVlLCB1c2VkIGJ5IHNvbWUgY29tcG9uZW50cylcbiAgICAgYm9keVtkYXRhLXRoZW1lPVwiZGFya1wiXSAgICAgICAgKHZhbHVlLCB1c2VkIGJ5IGhvbWVwYWdlKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5bZGF0YS10aGVtZS1kYXJrXSxcbltkYXRhLXRoZW1lPVwiZGFya1wiXSxcbmJvZHlbZGF0YS10aGVtZT1cImRhcmtcIl0ge1xuICAgIC8qIEJyYW5kIChsaWZ0ZWQgZm9yIGRhcmsgY29udHJhc3QpICovXG4gICAgLS1jLWJyYW5kLXB1cnBsZTogICAgICAgIHZhcigtLWMtcHVycGxlLTIwMCk7XG4gICAgLS1jLWJyYW5kLXB1cnBsZS1ob3ZlcjogIHZhcigtLWMtcHVycGxlLTEwMCk7XG4gICAgLS1jLWJyYW5kLXB1cnBsZS1wcmVzczogIHZhcigtLWMtcHVycGxlLTMwMCk7XG4gICAgLS1jLXB1cnBsZS1oaWdobGlnaHQ6ICAgIHZhcigtLWMtYWN0aW9uLTUwMCk7XG5cbiAgICAvKiBTdXJmYWNlcyAqL1xuICAgIC0tYy1iZy1wYWdlOiAgICAgICAgICAgICB2YXIoLS1jLWdyZXktOTUwKTtcbiAgICAvKiBEb25rZXI6IGRlIHBhZ2luYWtsZXVyIGlzIGFsIGhldCBkaWVwc3RlIGdyaWpzLCBkdXMgXCJ2ZXJ6b25rZW5cIiBrYW4gZGFhclxuICAgICAgIG5pZXQgZG9ua2VyZGVyLiBIZXQgcGFuZWVsIGdhYXQgw6nDqW4gdHJhcCBPTUhPT0csIHdhdCBpbiBoZXQgZG9ua2VyXG4gICAgICAgaGV0emVsZmRlIGRvZXQ6IGhldCB2bGFrIGxvcyB6aWVuIHZhbiBkZSBwYWdpbmEuICovXG4gICAgLS1jLWJnLXBhZ2Utc3Vua2VuOiAgICAgIHZhcigtLWMtZ3JleS05MDApO1xuICAgIC0tYy1iZy1jYXJkOiAgICAgICAgICAgICB2YXIoLS1jLWdyZXktODAwKTtcbiAgICAtLWMtYmctY2FyZC1ob3ZlcjogICAgICAgdmFyKC0tYy1ncmV5LTcwMCk7XG4gICAgLS1jLWJnLXNlY29uZGFyeS1wdXJwbGU6IHZhcigtLWMtZ3JleS05NTApO1xuICAgIC0tYy1iZy1zdWJ0bGUtcHVycGxlOiAgICB2YXIoLS1jLWdyZXktOTAwKTtcbiAgICAtLWMtYmctc3VidGxlLWhvdmVyOiAgICAgdmFyKC0tYy1ncmV5LTYwMCk7XG5cbiAgICAvKiBPdmVybGF5IGZyYW1lIChkb25rZXIpIOKAlCBwcmVjaWVzIGRlIHdhYXJkZW4gZGllIGluIGhldCBkYXJrLWJsb2sgdmFuXG4gICAgICAgYHFkbmFwcm8tbW9kYWxgIHN0b25kZW4sIG51IG9wIGVlbiBwbGVrLiBMRVQgT1A6IGBxZG5hcHJvLXdpemFyZC1tb2RhbGBcbiAgICAgICBoYWQgaGllciBlaWdlbiwgYWZ3aWprZW5kZSB0aW50ZW4gKCMxZjIyMjkgLyAjMmEyZDM2KTsgZGllIHppam4gaGllcmluXG4gICAgICAgb3BnZWdhYW4sIGR1cyBlZW4gd2l6YXJkIHppZXQgZXIgaW4gaGV0IGRvbmtlciBudSB1aXQgYWxzIGVlbiBtb2RhbC4gKi9cbiAgICAtLW92ZXJsYXktc2NyaW06ICAgICAgICAgcmdiYSgwLCAwLCAwLCAwLjY1KTtcbiAgICAtLW92ZXJsYXktZnJhbWUtYmc6ICAgICAgIzJlMzAzNjtcbiAgICAtLW92ZXJsYXktZnJhbWUtYm9yZGVyOiAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICAtLW92ZXJsYXktZnJhbWUtc2hhZG93OiAgMCA0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC41MCksIDAgOHB4IDEycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4zMCk7XG4gICAgLS1vdmVybGF5LXdpbmRvdy1iZzogICAgICMzNjM5NDA7XG4gICAgLS1vdmVybGF5LXdpbmRvdy1ib3JkZXI6ICM1NjViNjY7XG5cbiAgICAvKiBTaWRlYmFyICovXG4gICAgLS1jLXNpZGViYXItYmc6ICAgICAgICAgIHZhcigtLWMtZ3JleS04MDApO1xuICAgIC0tYy1zaWRlYmFyLWJnLWFjdGl2ZTogICB2YXIoLS1jLWdyZXktNzAwKTtcbiAgICAtLWMtc2lkZWJhci1pY29uOiAgICAgICAgdmFyKC0tYy1ncmV5LTMwMCk7XG4gICAgLS1jLXNpZGViYXItaWNvbi1hY3RpdmU6ICNmZmZmZmY7XG4gICAgLS1jLXNpZGViYXItYWN0aXZlLWJnOiAgIHZhcigtLWMtZ3JleS03MDApO1xuXG4gICAgLyogVGV4dCAqL1xuICAgIC0tYy10ZXh0LWJvZHk6ICAgICAgICAgICB2YXIoLS1jLWdyZXktNTApO1xuICAgIC0tYy10ZXh0LW11dGVkOiAgICAgICAgICB2YXIoLS1jLWdyZXktNDAwKTtcbiAgICAtLWMtdGV4dC1kaXNhYmxlZDogICAgICAgdmFyKC0tYy1ncmV5LTUwMCk7XG4gICAgLS1jLXRleHQtZGlzYWJsZWQtcHA6ICAgIHZhcigtLWMtZ3JleS01MDApO1xuICAgIC0tYy10ZXh0LWhlYWRpbmc6ICAgICAgICB2YXIoLS1jLWdyZXktNTApO1xuICAgIC0tYy10ZXh0LW9uLWFjdGlvbjogICAgICAjZmZmZmZmO1xuXG4gICAgLyogQm9yZGVycyAqL1xuICAgIC0tYy1ib3JkZXItc29mdDogICAgICAgICB2YXIoLS1jLXdoaXRlLTA4KTtcbiAgICAtLWMtYm9yZGVyLXNvZnQtMjogICAgICAgdmFyKC0tYy13aGl0ZS0wOCk7XG4gICAgLS1jLWJvcmRlci1jYXJkOiAgICAgICAgIHZhcigtLWMtd2hpdGUtMTApO1xuICAgIC0tYy1ib3JkZXItdHJlZTogICAgICAgICB2YXIoLS1jLXdoaXRlLTEyKTtcbiAgICAtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0OiAgdmFyKC0tYy13aGl0ZS0xMik7XG5cbiAgICAvKiBTaGFkb3dzICovXG4gICAgLS1zaGFkb3ctY2FyZDogICAgICAgICAgIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNDApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwIDRweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC40MCk7XG5cbiAgICAvKiBDaGlwIHBhbGV0dGUgKGRhcmspIC0gc2FtZSAxNiBmYW1pbGllcywgb3duIGRhcmsgdmFsdWVzLlxuICAgICAgIE1vc3QgYXJlIGdlbnVpbmVseSBuZXcgY29sb3VycyB0aGF0IGV4aXN0IG5vd2hlcmUgaW4gTEFZRVIgQSxcbiAgICAgICBzbyB1bmxpa2UgdGhlIHJlc3Qgb2YgdGhpcyBibG9jayB0aGV5IGFyZSBsaXRlcmFsIGhleC4gKi9cbiAgICAtLWMtY2hpcC1ncmV5LWJnOiAgICAgICAgICAgICAgdmFyKC0tYy1ncmV5LTYwMCk7XG4gICAgLS1jLWNoaXAtZ3JleS1ob3ZlcjogICAgICAgICAgICM2YjcxODA7XG4gICAgLS1jLWNoaXAtZ3JleS10ZXh0OiAgICAgICAgICAgICNlMWUzZTY7XG4gICAgLS1jLWNoaXAtZ3JleS0yLWJnOiAgICAgICAgICAgIHZhcigtLWMtZ3JleS03MDApO1xuICAgIC0tYy1jaGlwLWdyZXktMi1ob3ZlcjogICAgICAgICAjNTQ1OTZiO1xuICAgIC0tYy1jaGlwLWdyZXktMi10ZXh0OiAgICAgICAgICAjZTFlM2U2O1xuICAgIC0tYy1jaGlwLXJlZC1iZzogICAgICAgICAgICAgICAjNWEyYjJiO1xuICAgIC0tYy1jaGlwLXJlZC1ob3ZlcjogICAgICAgICAgICAjN2EzODM4O1xuICAgIC0tYy1jaGlwLXJlZC10ZXh0OiAgICAgICAgICAgICAjZmJhYWFhO1xuICAgIC0tYy1jaGlwLXJlZC0yLWJnOiAgICAgICAgICAgICAjN2EzODM4O1xuICAgIC0tYy1jaGlwLXJlZC0yLWhvdmVyOiAgICAgICAgICAjOWE0NzQ3O1xuICAgIC0tYy1jaGlwLXJlZC0yLXRleHQ6ICAgICAgICAgICB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpO1xuICAgIC0tYy1jaGlwLXllbGxvdy1iZzogICAgICAgICAgICAjNWE0ZDFmO1xuICAgIC0tYy1jaGlwLXllbGxvdy1ob3ZlcjogICAgICAgICAjN2E2YjJkO1xuICAgIC0tYy1jaGlwLXllbGxvdy10ZXh0OiAgICAgICAgICAjZmRlNTk0O1xuICAgIC0tYy1jaGlwLXllbGxvdy0yLWJnOiAgICAgICAgICAjN2E2YjJkO1xuICAgIC0tYy1jaGlwLXllbGxvdy0yLWhvdmVyOiAgICAgICAjOWE4YTNiO1xuICAgIC0tYy1jaGlwLXllbGxvdy0yLXRleHQ6ICAgICAgICAjZmVmNmRiO1xuICAgIC0tYy1jaGlwLWdyZWVuLWJnOiAgICAgICAgICAgICAjMmE1NTQ0O1xuICAgIC0tYy1jaGlwLWdyZWVuLWhvdmVyOiAgICAgICAgICAjM2Q3YTYyO1xuICAgIC0tYy1jaGlwLWdyZWVuLXRleHQ6ICAgICAgICAgICAjOGJlY2M1O1xuICAgIC0tYy1jaGlwLWdyZWVuLTItYmc6ICAgICAgICAgICAjM2Q3YTYyO1xuICAgIC0tYy1jaGlwLWdyZWVuLTItaG92ZXI6ICAgICAgICAjNGQ5YzdjO1xuICAgIC0tYy1jaGlwLWdyZWVuLTItdGV4dDogICAgICAgICAjZTJmYWYxO1xuICAgIC0tYy1jaGlwLWJsdWUtYmc6ICAgICAgICAgICAgICAjMmUzZTU0O1xuICAgIC0tYy1jaGlwLWJsdWUtaG92ZXI6ICAgICAgICAgICAjNDQ1YTc4O1xuICAgIC0tYy1jaGlwLWJsdWUtdGV4dDogICAgICAgICAgICAjYjVjZWVkO1xuICAgIC0tYy1jaGlwLWJsdWUtMi1iZzogICAgICAgICAgICAjNDQ1YTc4O1xuICAgIC0tYy1jaGlwLWJsdWUtMi1ob3ZlcjogICAgICAgICAjNWE3NTk2O1xuICAgIC0tYy1jaGlwLWJsdWUtMi10ZXh0OiAgICAgICAgICB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnKTtcbiAgICAtLWMtY2hpcC1icmlnaHQtYmx1ZS1iZzogICAgICAgIzNhNGE4YTtcbiAgICAtLWMtY2hpcC1icmlnaHQtYmx1ZS1ob3ZlcjogICAgIzRkNWZhZTtcbiAgICAtLWMtY2hpcC1icmlnaHQtYmx1ZS10ZXh0OiAgICAgI2Q2ZTBmOTtcbiAgICAtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWJnOiAgICAgIzJhMzU2MDtcbiAgICAtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWhvdmVyOiAgIzNhNGE4YTtcbiAgICAtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLXRleHQ6ICAgIzg1YTFlYztcbiAgICAtLWMtY2hpcC1waW5rLWJnOiAgICAgICAgICAgICAgIzRlMmEzNjtcbiAgICAtLWMtY2hpcC1waW5rLWhvdmVyOiAgICAgICAgICAgIzZlM2Q1MDtcbiAgICAtLWMtY2hpcC1waW5rLXRleHQ6ICAgICAgICAgICAgI2U1YTZiOTtcbiAgICAtLWMtY2hpcC1kYXJrLXBpbmstYmc6ICAgICAgICAgIzZlM2Q1MDtcbiAgICAtLWMtY2hpcC1kYXJrLXBpbmstaG92ZXI6ICAgICAgIzhhNTE2YTtcbiAgICAtLWMtY2hpcC1kYXJrLXBpbmstdGV4dDogICAgICAgdmFyKC0tYy1zaWduYWwtcGluay1iZyk7XG4gICAgLS1jLWNoaXAtcHVycGxlLWJnOiAgICAgICAgICAgICMzYTM1NTU7XG4gICAgLS1jLWNoaXAtcHVycGxlLWhvdmVyOiAgICAgICAgICM1MjRhN2E7XG4gICAgLS1jLWNoaXAtcHVycGxlLXRleHQ6ICAgICAgICAgICNjNGJjZjM7XG4gICAgLS1jLWNoaXAtZGFyay1wdXJwbGUtYmc6ICAgICAgICM1MjRhN2E7XG4gICAgLS1jLWNoaXAtZGFyay1wdXJwbGUtaG92ZXI6ICAgICM2YzYyOWE7XG4gICAgLS1jLWNoaXAtZGFyay1wdXJwbGUtdGV4dDogICAgICNlYmU5ZmI7XG5cbiAgICAvKiBCYXR0bGUgcGFsZXR0ZSAoZGFyaykgLSBubyBsaW5lIG5lZWRlZCBoZXJlIGZvciBtb3N0IC0tYy1iYXR0bGUtKlxuICAgICAgIHRva2VuczogdGhleSBwb2ludCBhdCByYXcgcHJpbWl0aXZlcyAocHVycGxlL3N1Y2Nlc3Mvd2Fybi9ncmV5IHJhbXApLFxuICAgICAgIGFuZCBwZXIgdGhpcyBmaWxlJ3Mgb3duIGNvbnZlbnRpb24gcHJpbWl0aXZlcyBkbyBOT1QgZ2V0IGEgZGFya1xuICAgICAgIG92ZXJyaWRlLCBvbmx5IHNlbWFudGljIGFuZCBjaGlwIHRva2VucyBkby4gVGhlIG9uZSBleGNlcHRpb24sXG4gICAgICAgLS1jLWJhdHRsZS10ZWFtLTQsIGFscmVhZHkgdHJhY2tzIGRhcmsgbW9kZSBmb3IgZnJlZSBiZWNhdXNlIGl0XG4gICAgICAgcG9pbnRzIGF0IC0tYy1jaGlwLWRhcmstcGluay1iZywgcmVkZWZpbmVkIGFib3ZlIHdpdGggaXRzIG93biBkYXJrXG4gICAgICAgdmFsdWUgLSBubyBleHRyYSBkZWNsYXJhdGlvbiByZXF1aXJlZC4gKi9cblxuICAgIC8qIEZvY3VzICovXG4gICAgLS1mb2N1cy1yaW5nOiAgICAgICAgICAgIHZhcigtLWMtcHVycGxlLTIwMCk7XG4gICAgLS1mb2N1cy1nbG93OiAgICAgICAgICAgIHZhcigtLWMtYWN0aW9uLTQwKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNb3Rpb24gdXRpbGl0aWVzIChzaGFyZWQpXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIC5xZG5hcHJvLXNoYWtlIOKAlCBicmllZiBob3Jpem9udGFsIG51ZGdlIHVzZWQgdG8gZHJhdyBhdHRlbnRpb25cbiAgIHRvIGEgZmllbGQgdGhhdCBmYWlsZWQgdmFsaWRhdGlvbi4gQWRkIHRoZSBjbGFzcyB0byB0cmlnZ2VyIGl0O1xuICAgdGhlIG93bmluZyBjb21wb25lbnQgcmVtb3ZlcyBpdCBvbiBgYW5pbWF0aW9uZW5kYCBzbyBpdCBjYW5cbiAgIHJlLWZpcmUgb24gYSByZXBlYXRlZCB0cmlnZ2VyLiBTdGFuZGFyZCBmb3JtLXZhbGlkYXRpb24gY3VlLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5Aa2V5ZnJhbWVzIHFkbmFwcm8tc2hha2Uge1xuICAgIDEwJSwgOTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xcHgpOyB9XG4gICAgMjAlLCA4MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTsgIH1cbiAgICAzMCUsIDUwJSwgNzAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpOyB9XG4gICAgNDAlLCA2MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTsgIH1cbn1cbi5xZG5hcHJvLXNoYWtlIHtcbiAgICBhbmltYXRpb246IHFkbmFwcm8tc2hha2UgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMzYsIDAuMDcsIDAuMTksIDAuOTcpIGJvdGg7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLXNoYWtlIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgLnFkbmFwcm8tc2xpZGUtcGFnZXMg4oCUIGhvcml6b250YWwgcGFnZSBzd2l0Y2ggKG9uZSBsZXZlbCBkZWVwKVxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBUaGUgXCJzdGFwIDEgc2NodWlmdCBuYWFyIGxpbmtzLCBzdGFwIDIgc2NodWlmdCBpblwiIG1vdGlvbi4gSXQgbGl2ZWQgaW4gVEhSRUVcbiAgIGhhbmQtd3JpdHRlbiBjb3BpZXMgYmVmb3JlIDAzLjA4LjIwMjYsIGFsbCB3aXRoIHRoZSBzYW1lIG51bWJlcnMgdHlwZWQgb3V0IGFnYWluOlxuICAgICAtIHFkbmFwcm8tZXZlbnQtc2hlZXQgICAoLmVzLXBhZ2VzIC8gLmVzLXBhZ2UtbWFpbiAvIC5lcy1wYWdlLXN1YiAvIC5lcy1zdWItb3BlbilcbiAgICAgLSB0aGUgUFdBIEhlcmhhbGVuLXNoZWV0ICguYW8tcmVwZWF0LXBhZ2VzIC8gLXBhZ2UtbGlzdCAvIC1wYWdlLXByZXZpZXcsIHBsYWluXG4gICAgICAgbWFya3VwIGluc2lkZSBhIHFkbmFwcm8tYm90dG9tLXNoZWV0IC0gc28gTk9UIGluIGEgY29tcG9uZW50IGF0IGFsbClcbiAgICAgLSB0aGUgUFdBIGxvY2F0aW9uL2RlcGFydG1lbnQgY2hvb3NlciAoLmxwLXBhZ2VzKVxuICAgS2ltIDAzLjA4LjIwMjYsIGFmdGVyIGNhdGNoaW5nIHRoZSB0aGlyZCBjb3B5OiBtYWtlIGl0IG9uZSB2b2NhYnVsYXJ5LiBJdCBsaXZlcyBoZXJlLFxuICAgbmV4dCB0byAucWRuYXByby1zaGFrZSwgYmVjYXVzZSB0aGF0IGlzIHdoZXJlIGNyb3NzLWNvbXBvbmVudCBtb3Rpb24gYWxyZWFkeSBsaXZlczpcbiAgIGV2ZXJ5IHYyIGNvbXBvbmVudCBkZXBlbmRzIG9uIGRlc2lnbi10b2tlbnMsIGJvMiBnZXRzIGl0IHRocm91Z2ggc3R5bGUtdjEuY3NzIGFuZCB0aGVcbiAgIFBXQSB0aHJvdWdoIHN5bmMtcHdhLWNvbXBvbmVudHMsIHNvIG5vIG5ldyBjb21wb25lbnQsIGRlcGVuZGVuY3kgb3IgcmVnaXN0cnkgZW50cnkuXG5cbiAgIEl0IGlzIGRlbGliZXJhdGVseSBDU1MtT05MWSBhbmQgc2hlbGwtYWdub3N0aWMuIFRoZSB0aHJlZSBjb25zdW1lcnMgc2l0IGluIGEgYm90dG9tXG4gICBzaGVldCwgaW4gYSBwb3BvdmVyIGFuZCBpbiBhIHBsYWluIHZpZXcsIGFuZCBlYWNoIGFscmVhZHkgb3ducyBpdHMgb3duIG9wZW4vY2xvc2VcbiAgIGZ1bmN0aW9uIC0gd2hhdCB3YXMgZHVwbGljYXRlZCBpcyB0aGUgZ2VvbWV0cnksIG5vdCB0aGUgbG9naWMuXG5cbiAgIE1BUktVUFxuICAgICA8ZGl2IGNsYXNzPVwicWRuYXByby1zbGlkZS1wYWdlcyBxZG5hcHJvLXNsaWRlLXBhZ2VzLS1hdXRvXCI+ICAgKG9yIC0tZnJhbWUpXG4gICAgICAgPGRpdiBjbGFzcz1cInFkbmFwcm8tc2xpZGUtcGFnZSBxZG5hcHJvLXNsaWRlLXBhZ2UtLWZpcnN0IGlzLWN1cnJlbnRcIj7igKY8L2Rpdj5cbiAgICAgICA8ZGl2IGNsYXNzPVwicWRuYXByby1zbGlkZS1wYWdlIHFkbmFwcm8tc2xpZGUtcGFnZS0tc2Vjb25kXCI+4oCmPC9kaXY+XG4gICAgIDwvZGl2PlxuICAgU1RBVEUgKHR3byBjbGFzcyB0b2dnbGVzLCBub3RoaW5nIGVsc2UpXG4gICAgIC0gaXMtc2Vjb25kIG9uIHRoZSB2aWV3cG9ydCB3aGlsZSBwYWdlIDIgaXMgc2hvd2luZ1xuICAgICAtIGlzLWN1cnJlbnQgb24gZXhhY3RseSBPTkUgcGFnZTogdGhlIG9uZSB5b3Ugc2VlXG4gICBUaGUgdHdvIGFyZSBzZXBhcmF0ZSBvbiBwdXJwb3NlOiBpcy1zZWNvbmQgc2F5cyB3aGljaCBESVJFQ1RJT04gdGhlIGZpcnN0IHBhZ2UgbGVhdmVzXG4gICBpbiwgaXMtY3VycmVudCBzYXlzIHdoaWNoIHBhZ2UgaXMgdmlzaWJsZS4gVG9nZ2xpbmcgb25seSBpcy1jdXJyZW50IHdvdWxkIHNsaWRlIHBhZ2UgMVxuICAgb3V0IHRvIHRoZSBSSUdIVCwgYW5kIHRoZW4gXCJiYWNrXCIgcmVhZHMgYXMgYW5vdGhlciBzdGVwIGZvcndhcmQuXG5cbiAgIFRXTyBIRUlHSFQgTU9ERVMsIGFuZCBwaWNraW5nIHRoZSB3cm9uZyBvbmUgaXMgdGhlIG9ubHkgcmVhbCB0cmFwIGhlcmU6XG4gICAgIC0tZnJhbWUgIHRoZSB2aWV3cG9ydCBoYXMgYSBoZWlnaHQgb2YgaXRzIG93biAoYSBzaGVldCB3aXRoIGEgZml4ZWQgZGV0ZW50KS4gRXZlcnlcbiAgICAgICAgICAgICAgcGFnZSBmaWxscyBpdDsgcGFnZSAxIHN0YXlzIGluIGZsb3cuIE5vdGhpbmcgaXMgZXZlciBtZWFzdXJlZC4gVXNlIHRoaXNcbiAgICAgICAgICAgICAgd2hlbmV2ZXIgeW91IGNhbiAtIHNlZSB0aGUgZml4ZWQtaGVpZ2h0IG5vdGUgaW4gdGhlIGJvdHRvbS1zaGVldHMgc2tpbGwgZm9yXG4gICAgICAgICAgICAgIHdoeSBtZWFzdXJpbmcgYSBzaGVldCdzIGNvbnRlbnQgaGVpZ2h0IHR1cm5lZCBpbnRvIHdoYWNrLWEtbW9sZS5cbiAgICAgLS1hdXRvICAgdGhlIHZpZXdwb3J0IGdyb3dzIHdpdGggaXRzIGNvbnRlbnQgKGEgZGlhbG9nIHRoYXQgbXVzdCBub3QgYmUgdGFsbGVyIHRoYW5cbiAgICAgICAgICAgICAgdGhlIGxpc3QgaXQgc2hvd3MpLiBUaGUgcGFnZSB5b3UgU0VFIGlzIGluIGZsb3cgYW5kIHNldHMgdGhlIGhlaWdodCwgdGhlXG4gICAgICAgICAgICAgIG90aGVyIGlzIHRha2VuIG91dCBvZiBmbG93IHNvIGl0IGNhbm5vdCBpbmZsYXRlIGl0LiBUaGUgY29uc3VtZXIgaXMgdGhlblxuICAgICAgICAgICAgICByZXNwb25zaWJsZSBmb3IgdGhlIGhlaWdodCBEVVJJTkcgdGhlIHNsaWRlOiB3aGlsZSBwYWdlIDIgaXMgdGFsbGVyIHRoYW5cbiAgICAgICAgICAgICAgcGFnZSAxLCB0aGUgdmlld3BvcnQganVtcHMgdG8gdGhlIG5ldyBoZWlnaHQgYXQgb25jZSBhbmQgb3ZlcmZsb3c6aGlkZGVuXG4gICAgICAgICAgICAgIGNsaXBzIHRoZSBsZWF2aW5nIHBhZ2UuIFBpbiBtaW4taGVpZ2h0IHRvIHRoZSB0YWxsZXIgb2YgdGhlIHR3byBmb3IgdGhlXG4gICAgICAgICAgICAgIGxlbmd0aCBvZiB0aGUgdHJhbnNpdGlvbiBhbmQgcmVsZWFzZSBpdCBhZnRlciAoc2VlXG4gICAgICAgICAgICAgIF9zbGlkZUNob29zZXJUb1N0ZXAgaW4gdGhlIFBXQSdzIDAtY29yZS5qcykuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5xZG5hcHJvLXNsaWRlLXBhZ2VzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvLyBPbmx5IHVzZWQgYnkgLS1hdXRvIGNvbnN1bWVycyB0aGF0IHBpbiBtaW4taGVpZ2h0IGR1cmluZyB0aGUgc2xpZGU7IGhhcm1sZXNzXG4gICAgLy8gb3RoZXJ3aXNlLCBhbmQgaXQgbGl2ZXMgaGVyZSBzbyB0aGV5IGNhbm5vdCBlYWNoIHBpY2sgYSBkaWZmZXJlbnQgZHVyYXRpb24uXG4gICAgdHJhbnNpdGlvbjogbWluLWhlaWdodCAwLjMycyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSk7XG59XG5cbi5xZG5hcHJvLXNsaWRlLXBhZ2Uge1xuICAgIC8vIFJlc3RpbmcgcG9zaXRpb24gb2YgYSBwYWdlIHRoYXQgaXMgbm90IHNob3dpbmc6IG91dCBvZiBmbG93LCBvZmYgdG8gdGhlIHJpZ2h0LlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTA1JSk7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zMnMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpLCBvcGFjaXR5IDAuMzJzIGVhc2U7XG59XG5cbi5xZG5hcHJvLXNsaWRlLXBhZ2UuaXMtY3VycmVudCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi8qIFBhZ2UgMSBsZWF2ZXMgdG8gdGhlIExFRlQgaW5zdGVhZCBvZiB0byB0aGUgcmlnaHQsIGFuZCBmYWRlcyBGVUxMWSBvdXQgLSBhbnkgcmVzaWR1YWxcbiAgIG9wYWNpdHkgc2hvd3MgZ2hvc3Qgcm93cyB0aHJvdWdoIHBhZ2UgMiwgd2hpY2ggaXMgdHJhbnNwYXJlbnQgb3ZlciB0aGUgcGFuZWwuICovXG4ucWRuYXByby1zbGlkZS1wYWdlcy5pcy1zZWNvbmQgLnFkbmFwcm8tc2xpZGUtcGFnZS0tZmlyc3Q6bm90KC5pcy1jdXJyZW50KSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yOCUpO1xufVxuXG4vKiAtLWZyYW1lOiB0aGUgdmlld3BvcnQgYnJpbmdzIGl0cyBvd24gaGVpZ2h0LiAqL1xuLnFkbmFwcm8tc2xpZGUtcGFnZXMtLWZyYW1lIC5xZG5hcHJvLXNsaWRlLXBhZ2UgeyBoZWlnaHQ6IDEwMCU7IH1cbi5xZG5hcHJvLXNsaWRlLXBhZ2VzLS1mcmFtZSAucWRuYXByby1zbGlkZS1wYWdlLS1maXJzdCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKiAtLWF1dG86IHRoZSBwYWdlIHlvdSBzZWUgaXMgaW4gZmxvdywgc28gdGhlIHZpZXdwb3J0IGlzIGFzIHRhbGwgYXMgdGhhdCBwYWdlIGFuZCBub1xuICAgdGFsbGVyLiBTcGVjaWZpY2l0eSAwLDMsMCwgc28gaXQgYmVhdHMgdGhlIG91dC1vZi1mbG93IGJhc2UgcnVsZS4gKi9cbi5xZG5hcHJvLXNsaWRlLXBhZ2VzLS1hdXRvIC5xZG5hcHJvLXNsaWRlLXBhZ2UuaXMtY3VycmVudCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLXNsaWRlLXBhZ2VzLFxuICAgIC5xZG5hcHJvLXNsaWRlLXBhZ2UgeyB0cmFuc2l0aW9uOiBub25lOyB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgLnFkbmEtcGFnZXItKiDigJQgaG9yaXpvbnRhbCBQQUdFUiAoTiBwYWdlcywgZG90cywgc3dpcGUpXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFRoZSBsb29rcyBiZWhpbmQgd2luZG93LlFkbmFQYWdlciAod2ViL2pzL2NvbXBvbmVudHMvdjIvcGFnZXIvcWRuYS1wYWdlci5qcyksIHVzZWRcbiAgIGJ5IHRoZSBgc2xpZGVyYCBhdHRyaWJ1dGUgb2YgQk9USCBzaGVsbHMgdGhlIGFwcCBzd2FwcyBiZXR3ZWVuIHBlciBwbGF0Zm9ybTpcbiAgIHFkbmFwcm8tYm90dG9tLXNoZWV0IChwaG9uZSkgYW5kIHFkbmFwcm8tcG9wb3ZlciAoPj0xMDI0cHgpLiBJdCBsaXZlcyBoZXJlIGZvciB0aGVcbiAgIHNhbWUgcmVhc29uIC5xZG5hcHJvLXNsaWRlLXBhZ2VzIGRvZXM6IHNoZWxsLWFnbm9zdGljLCBldmVyeSB2MiBjb21wb25lbnQgYWxyZWFkeVxuICAgZGVwZW5kcyBvbiBkZXNpZ24tdG9rZW5zLCBzbyBubyBuZXcgZGVwZW5kZW5jeSBhbmQgbm8gc2Vjb25kIGNvcHkuIFtLaW0gMDQuMDkuMjAyNl1cblxuICAgV2hlcmUgc2xpZGUtcGFnZXMgaXMgYSBPTkUtTEVWRUwgd2l6YXJkIHN3aXRjaCAocGFnZSAxIGxlYXZlcywgcGFnZSAyIGFycml2ZXMpLCB0aGlzXG4gICBpcyBhIHJlYWwgcGFnZXI6IGFueSBudW1iZXIgb2YgcGFnZXMsIGEgZG90cyBzdHJpcCwgYSBkcmFnIGdlc3R1cmUsIGFuZCBhIGhlaWdodCB0aGF0XG4gICBlaXRoZXIgZm9sbG93cyB0aGUgYWN0aXZlIHBhZ2Ugb3Igc3RheXMgb24gdGhlIHRhbGxlc3Qgb25lLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucWRuYS1wYWdlci12aWV3cG9ydCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICAvKiBBIGZsb29yIGZvciB0aGUgaGVpZ2h0LCBzbyBhIHNldCB3aXRoIG9uZSBzaG9ydCBwYWdlIGRvZXMgbm90IG9wZW4gYXMgYSBjcmFtcGVkXG4gICAgICAgc2xpdC4gVGhlIEpTIHdyaXRlcyBgaGVpZ2h0YCBpbmxpbmU7IG1pbi1oZWlnaHQgd2lucyBvdmVyIGl0IGJ5IGRlZmluaXRpb24sIHNvIGFcbiAgICAgICBjb25zdW1lciBvbmx5IGhhcyB0byBzZXQgdGhpcyB2YXJpYWJsZS4gRGVmYXVsdCAwID0gbm8gZmxvb3IuICovXG4gICAgbWluLWhlaWdodDogdmFyKC0tcGFnZXItbWluLWgsIDApO1xuICAgIC8qIFdyaXR0ZW4gYnkgdGhlIEpTICh0aGUgYWN0aXZlIHBhZ2UsIG9yIHRoZSB0YWxsZXN0IG9uZSBpbiBoZWlnaHRNb2RlIFwibWF4XCIpOyB0aGVcbiAgICAgICB0cmFuc2l0aW9uIGlzIHdoYXQgbWFrZXMgYSBsb25nZXIgcGFnZSBncm93IGludG8gcGxhY2UgaW5zdGVhZCBvZiBqdW1waW5nLiAqL1xuICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjI0cyBlYXNlO1xufVxuLnFkbmEtcGFnZXItdHJhY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLyogTG9hZC1iZWFyaW5nLCBub3QgY29zbWV0aWM6IGEgZmxleCByb3cgc3RyZXRjaGVzIGl0cyBpdGVtcyB0byB0aGUgdGFsbGVzdCBvbmUgYnlcbiAgICAgICBkZWZhdWx0LCBzbyBldmVyeSBwYWdlIHdvdWxkIG1lYXN1cmUgdGhlIFNBTUUgaGVpZ2h0IGFuZCBcImF1dG9cIiBjb3VsZCBuZXZlclxuICAgICAgIGFuaW1hdGUuICovXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNnMgY3ViaWMtYmV6aWVyKDAuMjIsIDAuOSwgMC4zLCAxKTtcbn1cbi5xZG5hLXBhZ2VyLXBhZ2Uge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAvKiBib3JkZXItYm94IGlzIGxvYWQtYmVhcmluZyB0b286IGZsZXgtYmFzaXM6MTAwJSByZXNvbHZlcyBhZ2FpbnN0IHRoZSB2aWV3cG9ydCdzXG4gICAgICAgQ09OVEVOVCB3aWR0aCwgc28gYSBwYWdlIHdpdGggaXRzIG93biBob3Jpem9udGFsIHBhZGRpbmcgcmVuZGVyZWQgV0lERVIgdGhhbiB0aGVcbiAgICAgICB2aWV3cG9ydCBhbmQgZXZlcnkgbmV4dCBwYWdlIGRyaWZ0ZWQgYSBsaXR0bGUgZnVydGhlciBvdXQgb2YgZnJhbWUgKG1lYXN1cmVkXG4gICAgICAgMDQuMDkuMjAyNjogMzY2cHggcGFnZXMgaW4gYSAzNThweCB2aWV3cG9ydCwgc28gcGFnZSAzIHNhdCAyNHB4IG9mZikuICovXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG59XG4ucWRuYS1wYWdlci1kb3RzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA5cHg7XG4gICAgcGFkZGluZzogMTRweCAwIDRweDtcbiAgICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hLXBhZ2VyLWRvdCB7XG4gICAgd2lkdGg6IDlweDtcbiAgICBoZWlnaHQ6IDlweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmxhY2stMTIpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAvKiBBIDlweCBkb3QgaXMgZmFyIGJlbG93IHRoZSA0NHB4IHRvdWNoIHRhcmdldCwgc28gZ3JvdyB0aGUgSElUIGFyZWEgd2l0aG91dCBncm93aW5nXG4gICAgICAgdGhlIGRvdDogYSB0cmFuc3BhcmVudCBib3JkZXIgd291bGQgY2hhbmdlIHRoZSBwYWludGVkIHNpemUsIGEgcHNldWRvLWVsZW1lbnQgZG9lc1xuICAgICAgIG5vdC4gKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucWRuYS1wYWdlci1kb3Q6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuLnFkbmEtcGFnZXItZG90LmlzLWFjdGl2ZSB7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS00MDApO1xufVxuLyogQSBwYWdlJ3MgZGF0YS10b25lIGNvbG91cnMgaXRzIGRvdCB3aXRoIHRoZSBTQU1FIHRva2VucyB0aGUgdG9uZWQgZGlhbG9ncyB1c2UsIHNvIHRoZVxuICAgZG90cyByb3cgcmVhZHMgYXMgYSBzdW1tYXJ5IG9mIHRoZSBzZXQuIEluYWN0aXZlIGRvdHMga2VlcCB0aGUgY29sb3VyIGF0IGEgbG93ZXJcbiAgIHdlaWdodCDigJQgdGhhdCBpcyB0aGUgcG9pbnQgb2YgY29sb3VyaW5nIHRoZW0gYXQgYWxsLiAqL1xuLnFkbmEtcGFnZXItZG90W2RhdGEtdG9uZT1cInN1Y2Nlc3NcIl0geyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy1zdWNjZXNzLXN1cmZhY2UpOyB9XG4ucWRuYS1wYWdlci1kb3RbZGF0YS10b25lPVwiZGFuZ2VyXCJdICB7IGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLWRhbmdlci1zdXJmYWNlKTsgfVxuLnFkbmEtcGFnZXItZG90W2RhdGEtdG9uZT1cIndhcm5pbmdcIl0geyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy13YXJuaW5nLXN1cmZhY2UpOyB9XG4ucWRuYS1wYWdlci1kb3RbZGF0YS10b25lXTpub3QoLmlzLWFjdGl2ZSkgeyBvcGFjaXR5OiAwLjQ1OyB9XG5cbi8qIFJlZHVjZWQgbW90aW9uOiB0aGUgcGFnZXIgc3RpbGwgV09SS1MsIGl0IGp1c3Qgc3RvcHMgc2xpZGluZyBhbmQgZ3Jvd2luZy4gKi9cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnFkbmEtcGFnZXItdmlld3BvcnQsXG4gICAgLnFkbmEtcGFnZXItdHJhY2sgeyB0cmFuc2l0aW9uOiBub25lOyB9XG59XG4iLCIvLyBxZG5hcHJvIG92ZXJsYXkgc2hlbGwg4oCUIGRlIEdFREVFTERFIHNjaGlsIChgLnFvcy0qYClcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRcOpbiBmcmFtZSB2b29yIGVsayB6ZWxmc3RhbmRpZyBnZWNlbnRyZWVyZCB2ZW5zdGVyOiBzY3JpbSwgZ3JpanMgZnJhbWUsIHdpdFxuLy8gdmVuc3Rlciwga29wLCBib2R5LCB2b2V0LiBBbGxlIHdhYXJkZW4ga29tZW4gdWl0IGRlIG92ZXJsYXktdG9rZW5zIGluXG4vLyBjb21wb25lbnRzL3YyL2Rlc2lnbi10b2tlbnMvX2Rlc2lnbi10b2tlbnMuc2Nzcywgem9kYXQgZGl0IGZyYW1lIGVuXG4vLyBgcWRuYXByby1tb2RhbGAgbmlldCB1aXQgZWxrYWFyIGt1bm5lbiBsb3Blbi5cbi8vXG4vLyBXYWFyb20gZGl0IGJlc3RhYXQ6IGV4cG9ydC1tb2RhbCwgZm9ybXVsZS1ib3V3ZXIsIG9wbWFha3JlZ2VscyBlbiBkZSB3aXphcmRcbi8vIGhhZGRlbiBFTEsgaHVuIGVpZ2VuIGtvcGllIHZhbiBkZXplbGZkZSBzY2hpbCwgbWV0IHZpamYgdmVyc2NoaWxsZW5kZVxuLy8gei1pbmRleGVuICgxMDgwIC8gOTAwMCAvIDkxMDAgLyA5NDAwKSBlbiB0d2VlIHZlcnNjaGlsbGVuZGUgc2NyaW1rbGV1cmVuLlxuLy8gW0tpbSAxOS4wOC4yMDI2XVxuLy9cbi8vIEdlYnJ1aWsgaW4gZWVuIGNvbXBvbmVudCAoUGF0dGVybiBCLCBsaWdodCBET00pOlxuLy9cbi8vICAgPGRpdiBjbGFzcz1cInFvcy1zY3JpbVwiPiAgICAgICAgICAgICAgICAgICAgIDwhLS0ga2xpayA9IGFubnVsZXJlbiAgICAgICAgLS0+XG4vLyAgICAgPGRpdiBjbGFzcz1cInFvcy1kaWFsb2dcIiBzdHlsZT1cIi0tcW9zLXc6ODAwcHhcIj5cbi8vICAgICAgIDxkaXYgY2xhc3M9XCJxb3Mtd2luZG93XCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtbW9kYWw9XCJ0cnVlXCI+XG4vLyAgICAgICAgIDxoZWFkZXIgY2xhc3M9XCJxb3MtaGVhZFwiPiBpY29uICsgLnFvcy10aXRsZSArIC5xb3MtY2xvc2UgPC9oZWFkZXI+XG4vLyAgICAgICAgIDxkaXYgY2xhc3M9XCJxb3MtYm9keVwiPiAgICBlaWdlbiBpbmhvdWQsIGVpZ2VuIHByZWZpeCAgICA8L2Rpdj5cbi8vICAgICAgICAgPGZvb3RlciBjbGFzcz1cInFvcy1mb290XCI+IGtub3BwZW4gICAgICAgICAgICAgICAgICAgICAgIDwvZm9vdGVyPlxuLy8gICAgICAgPC9kaXY+XG4vLyAgICAgPC9kaXY+XG4vLyAgIDwvZGl2PlxuLy9cbi8vIFR3ZWUga25vcHBlbiBvbSBhYW4gdGUgZHJhYWllbiwgYWxsZWJlaSBhbHMgY3VzdG9tIHByb3BlcnR5IG9wIC5xb3MtZGlhbG9nOlxuLy8gICAtLXFvcy13ICAgYnJlZWR0ZS1wbGFmb25kIChkZWZhdWx0IDU2MHB4LCBkZSBtYWF0IHZhbiBlZW4gbWVkaXVtIG1vZGFsKVxuLy8gICAtLXFvcy16ICAgc3RhcGVsbGFhZzsgemV0IG9wIHZhcigtLW92ZXJsYXktei1uZXN0ZWQpIGFscyBoZXQgdmVuc3RlclxuLy8gICAgICAgICAgICAgZ2VvcGVuZCB3b3JkdCBWQU5VSVQgZWVuIGFuZGVyIHZlbnN0ZXJcbi8vXG4vLyBIZXQgR0VEUkFHIChFc2NhcGUsIHNjcm9sbC1sb2NrLCBmb2N1cywga2xpayBvcCBkZSBzY3JpbSkgeml0IG5pZXQgaGllciBtYWFyXG4vLyBpbiB3ZWIvanMvY29tcG9uZW50cy92Mi9vdmVybGF5LXNoZWxsL292ZXJsYXktc2hlbGwuanMuXG4vL1xuLy8gRGV6ZSBwYXJ0aWFsIHdvcmR0IFZST0VHIGluIGNvbXBvbmVudHMuc2NzcyBnZWxhZGVuLCB6b2RhdCBlZW4gY29tcG9uZW50IGRhdFxuLy8gZWNodCBtb2V0IGFmd2lqa2VuIG1ldCBnZWxpamtlIHNwZWNpZmljaXRlaXQgd2ludC5cblxuLy8gRGUgVkFTVEUgbGFhZyBvdmVyIGRlIHBhZ2luYS4gYHFkbmFwcm8tbW9kYWxgIGRvZXQgaGV0IGluIHR3ZWUgbGFnZW4gKGRlIGhvc3Rcbi8vIGlzIGZpeGVkLCBkZSBiYWNrZHJvcCBlcmJpbm5lbiBpcyBhYnNvbHV0ZSkgZW4gZGF0IGlzIG5pZXQgY29zbWV0aXNjaDogZWVuXG4vLyBgcG9zaXRpb246IGZpeGVkYCBzY3JpbSByZWtlbnQgemlqbiBgaW5zZXQ6IDBgIGFmIHRlZ2VuIGVlbiBjb250YWluaW5nIGJsb2NrXG4vLyBkYXQgbmlldCBhbHRpamQgaGV0IHZlbnN0ZXIgaXMsIGVuIGtsYXB0IGRhbiBpbiB0b3QgemlqbiBlaWdlbiBwYWRkaW5nLiBQcmVjaWVzXG4vLyBkYXQgZ2ViZXVyZGUgaGllciBvcCAxOS4wOC4yMDI2OiBkZSB3aXphcmQgaGFkIGdlZW4gZGltIG1lZXIuXG4vLyBFZW4gY29tcG9uZW50IHpldCBkZXplIGtsYXNzZSBvcCB6aWpuIGhvc3QsIG9mIGdlZWZ0IGRlIGhvc3QgaW4gemlqbiBlaWdlbiBTQ1NTXG4vLyBkZXplbGZkZSBkcmllIHJlZ2VscyAoem8gZG9ldCBxZG5hcHJvLXdpemFyZC1tb2RhbCBoZXQsIGRpZSBoYWQgemUgYWwpLlxuLnFvcy1yb290IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogdmFyKC0tcW9zLXosIHZhcigtLW92ZXJsYXkteikpO1xufVxuXG4ucW9zLXNjcmltIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tb3ZlcmxheS1zY3JpbSk7XG4gICAgYW5pbWF0aW9uOiBxb3Mtc2NyaW0taW4gMTYwbXMgZWFzZS1vdXQ7XG59XG5cbi5xb3Mtc2NyaW0gKixcbi5xb3Mtc2NyaW0gKjo6YmVmb3JlLFxuLnFvcy1zY3JpbSAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLy8gQlVJVEVOU1RFIEdSSUpaRSBGUkFNRVxuLnFvcy1kaWFsb2cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1heC13aWR0aDogdmFyKC0tcW9zLXcsIDU2MHB4KTtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDhweCk7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW92ZXJsYXktZnJhbWUtYmcpO1xuICAgIGJvcmRlcjogMC41cHggc29saWQgdmFyKC0tb3ZlcmxheS1mcmFtZS1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW92ZXJsYXktZnJhbWUtcmFkaXVzKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1vdmVybGF5LWZyYW1lLXNoYWRvdyk7XG4gICAgYW5pbWF0aW9uOiBxb3MtZGlhbG9nLWluIDIwMG1zIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKTtcbn1cblxuLy8gQklOTkVOU1RFIFdJVFRFIFZFTlNURVJcbi5xb3Mtd2luZG93IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgLy8gYG1pbi1oZWlnaHQ6IDBgIG9wIGVsa2Ugc2NoYWtlbCB2YW4gZGUgZmxleGtldGVuLCBhbmRlcnMga3Jpamd0IGVlbiBraW5kXG4gICAgLy8gbWluaW11bWhvb2d0ZSBgYXV0b2AgZW4ga2xpcHQgaGV0IHppam4gZWlnZW4gc2Nyb2xsIHdlZy4gRGF0IGlzIGRlIHN0aWxsZVxuICAgIC8vIGtsaXBidWcgZGllIGluIF9mb3JtdWxhLWVkaXRvci5zY3NzIGVuIF9mb3JtYXQtcnVsZXMuc2NzcyBhbCBiZXNjaHJldmVuXG4gICAgLy8gc3RhYXQ7IGhpaiBob29ydCBoaWVyLCBpbiBkZSBzY2hpbCwgZW4gbmlldCBkcmllIGtlZXIgbG9zLlxuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDE2cHggMTZweCAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW92ZXJsYXktd2luZG93LWJnKTtcbiAgICBib3JkZXI6IDAuNXB4IHNvbGlkIHZhcigtLW92ZXJsYXktd2luZG93LWJvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tb3ZlcmxheS13aW5kb3ctcmFkaXVzKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLyAtLS0tIGtvcCAtLS0tXG4ucW9zLWhlYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogMCAwIDRweDtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLnFvcy1oZWFkLWljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuXG4vLyBLb3AgbWV0IGVlbiB0d2VlZGUgcmVnZWwgZXJvbmRlciAoZm9ybXVsZS1ib3V3ZXIsIG9wbWFha3JlZ2VscykuXG4ucW9zLWhlYWQtdGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLnFvcy10aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgIC8vIERlIHRpdGVsIGlzIGVlbiA8aDI+IEJJTk5FTiBlZW4gd2lsbGVrZXVyaWdlIHBhZ2luYSwgZW4gZWVuIHBhZ2luYSBkaWUgemlqblxuICAgIC8vIGgyJ3MgYWxzIHNlY3RpZWtvcGplIG9wbWFha3QgKGthcGl0YWxlbiwgbGV0dGVyYWZzdGFuZCkgdHJla3QgZGllIG9wbWFha1xuICAgIC8vIGhpZXIgem8gbmFhciBiaW5uZW4uIEdlemllbiBpbiBkZSBleHBvcnQtcHJldmlldzogXCJLT0xPTU1FTiBFWFBPUlRFUkVOXCIuXG4gICAgLy8gWmVsZmRlIHNvb3J0IGNhc2NhZGUtdmVyZGVkaWdpbmcgYWxzIGRlICFpbXBvcnRhbnQtcmVnZWxzIGluIF9tb2RhbC5zY3NzLlxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG59XG5cbi8vIEVlbiBsZWVnIHN1YnRpdGVsLWVsZW1lbnQgbWFnIGdlZW4gcnVpbXRlIHBha2tlbiAoZGUgZm9ybXVsZS1ib3V3ZXIgZW4gZGVcbi8vIG9wbWFha3JlZ2VscyByZW5kZXJlbiBoZW0gYWx0aWpkLCBvb2sgem9uZGVyIHRla3N0KS5cbi5xb3Mtc3VidGl0bGU6ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG5cbi5xb3Mtc3VidGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cblxuLy8gSGV0IGtydWlzamUgaXMgZWVuIEVDSFRFIGBxZG5hcHJvLWljb24tYnRuYCAodHlwZT1cInNlY29uZGFyeVwiIGljb249XCJjbG9zZVwiKSxcbi8vIHByZWNpZXMgem9hbHMgYHFkbmFwcm8tbW9kYWxgIGhldCBkb2V0LiBIaWVyIGR1cyBhbGxlZW4gbm9nIGRlIHBsYWF0c2luZzsgZGVcbi8vIGtub3AgYnJlbmd0IHppam4gZWlnZW4gdm9ybSwgaG92ZXIgZW4gZm9jdXMgbWVlLiBTdG9uZCBoaWVyIHRvdCAxOS4wOC4yMDI2IGFsc1xuLy8gbmFnZW1hYWt0ZSA8YnV0dG9uPiBtZXQgZWVuIGxvcyBpY29vbiBlcmluLlxuLnFvcy1jbG9zZSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8vIC0tLS0gYm9keSAtLS0tXG4ucW9zLWJvZHkge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAvLyA0cHggbHVjaHQgem9kYXQgZWVuIHZlbGQgdGVnZW4gZGUgYm92ZW5yYW5kIHppam4gZm9jdXNyaW5nIG5pZXQgb25kZXIgZGVcbiAgICAvLyBrb3AgdmVybGllc3QgKG92ZXJmbG93LXk6YXV0byBrbGlwdCBvdmVyZmxvdy14IG1lZSk7IHNjcm9sbC1wYWRkaW5nIGhvdWR0XG4gICAgLy8gZWVuIGdldGFiZCB2ZWxkIG9uZGVyIGRlIHJhbmQgdWl0LiBaZWxmZGUgcmVkZW4gYWxzIGluIF9tb2RhbC5zY3NzLlxuICAgIHBhZGRpbmc6IDRweDtcbiAgICBzY3JvbGwtcGFkZGluZy10b3A6IDhweDtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG59XG5cbi8vIC0tLS0gdm9ldCAtLS0tXG4ucW9zLWZvb3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDRweCAwIDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8vIER1d3Qgd2F0IGVybmEga29tdCBuYWFyIHJlY2h0czogZWVuIGtub3AgbGlua3MgaW4gZGUgdm9ldCAoVmVyd2lqZGVyZW4pLlxuLnFvcy1mb290LXNwYWNlciB7IGZsZXg6IDEgMSBhdXRvOyB9XG5cbi8vIGBkaXNwbGF5OiBmbGV4YCBoaWVyYm92ZW4gd2ludCBhbmRlcnMgdmFuIGhldCBgaGlkZGVuYC1hdHRyaWJ1dXQgKHplbGZkZVxuLy8gdmFsa3VpbCBhbHMgcWRuYXByby1pY29uLWJ0bltoaWRkZW5dIGluIGRlIGV4cG9ydC1tb2RhbCkuIERlIGV4cG9ydC1tb2RhbFxuLy8gdmVyYmVyZ3QgemlqbiB2b2V0IHRpamRlbnMgZGUgYmV3YWFyLXZyYWFnIG5hIGVlbiBleHBvcnQuXG4ucW9zLWZvb3RbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gQWxsZWVuLWR1aW0gc2Nyb2xsYmFycyB2b29yIGRlIEhFTEUgc3VidHJlZSwgbm9vaXQgZWVuIGdyaWp6ZSBiYWFuLiBaZWxmZGVcbi8vIHJlZGVuIGFscyBpbiBfbW9kYWwuc2NzcyBlbiBfd2l6YXJkLW1vZGFsLnNjc3M6IGRlIGluaG91ZCBrb210IG5hIHJlbmRlciBlblxuLy8gYnJlbmd0IGVpZ2VuIHNjcm9sbGNvbnRhaW5lcnMgbWVlLCBkdXMgaGV0IG1vZXQgZWVuIGFmc3RhbW1lbGluZ3NzZWxlY3RvclxuLy8gemlqbi4gV2Via2l0LW9ubHksIG1ldCBvcHpldC5cbi5xb3Mtc2NyaW0gOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiA4cHg7IGhlaWdodDogOHB4OyB9XG4ucW9zLXNjcmltIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuLnFvcy1zY3JpbSA6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4ucW9zLXNjcmltIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE2MG1zIGVhc2U7XG59XG4ucW9zLXNjcmltICo6aG92ZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuLnFvcy1zY3JpbSAqOmZvY3VzLXdpdGhpbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgeyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMjIpOyB9XG4ucW9zLXNjcmltIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzQpOyB9XG5cbkBrZXlmcmFtZXMgcW9zLXNjcmltLWluIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB9XG59XG5cbkBrZXlmcmFtZXMgcW9zLWRpYWxvZy1pbiB7XG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTgpOyB9XG4gICAgdG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTsgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xb3Mtc2NyaW0sXG4gICAgLnFvcy1kaWFsb2cgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLy8gLS0tLSBkb25rZXIgLS0tLVxuLy8gRnJhbWUsIHZlbnN0ZXIgZW4gc2NyaW0ga29tZW4gdWl0IGRlIHRva2VucyBlbiB3aXNzZWxlbiBkdXMgYXV0b21hdGlzY2guIFdhdFxuLy8gaGllciBvdmVyYmxpamZ0IGlzIGRlIHRla3N0LCBwcmVjaWVzIHpvYWxzIGBxZG5hcHJvLW1vZGFsYCBoZXQgZG9ldC5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucW9zLXRpdGxlLFxuW2RhdGEtdGhlbWUtZGFya10gLnFvcy10aXRsZSxcbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucW9zLWJvZHksXG5bZGF0YS10aGVtZS1kYXJrXSAucW9zLWJvZHkgeyBjb2xvcjogI2YwZjFmMjsgfVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFvcy1zdWJ0aXRsZSxcbltkYXRhLXRoZW1lLWRhcmtdIC5xb3Mtc3VidGl0bGUgeyBjb2xvcjogI2I4YmNjNDsgfVxuXG4iLCJAdXNlIFwic2FzczptYXBcIjtcblxuJGJ0bi1za2luczogKFxuICAgIFwicHJpbWFyeVwiOiAoYmFzZTogIzQwNDk5YSxcbiAgICAgICAgaG92ZXI6ICMzMzNBN0IsXG4gICAgICAgIGFjdGl2ZTogIzcwNzVhMixcbiAgICAgICAgZm9jdXM6ICM0MDQ5OWEsXG4gICAgICAgIGZvY3VzLW91dGxpbmU6ICM0MDQ5OWEsXG4gICAgICAgIGRpc2FibGVkOiAjZjBmMWYyLFxuICAgICAgICB0ZXh0OiAjRkZGRkZGLFxuICAgICAgICB0ZXh0LWRpc2FibGVkOiAjODk4ZTk5LFxuICAgICAgICBib3JkZXI6IHRyYW5zcGFyZW50LFxuICAgICAgICBib3JkZXItZGlzYWJsZWQ6IHRyYW5zcGFyZW50LFxuICAgICksXG4gICAgXCJvcmFuZ2VcIjogKGJhc2U6ICNlZjhlMDIsXG4gICAgICAgIGhvdmVyOiAjYmY3MjAyLFxuICAgICAgICBhY3RpdmU6ICNkMjljNGQsXG4gICAgICAgIGZvY3VzOiAjZWY4ZTAyLFxuICAgICAgICBmb2N1cy1vdXRsaW5lOiAjZWY4ZTAyLFxuICAgICAgICBkaXNhYmxlZDogI2YwZjFmMixcbiAgICAgICAgdGV4dDogI0ZGRkZGRixcbiAgICAgICAgdGV4dC1kaXNhYmxlZDogIzg5OGU5OSxcbiAgICAgICAgYm9yZGVyOiB0cmFuc3BhcmVudCxcbiAgICAgICAgYm9yZGVyLWRpc2FibGVkOiB0cmFuc3BhcmVudCxcbiAgICApLFxuICAgIFwic3VidGxlXCI6IChiYXNlOiB0cmFuc3BhcmVudCxcbiAgICAgICAgaG92ZXI6ICNGMEYxRjIsXG4gICAgICAgIGFjdGl2ZTogI2Y0ZjVmNixcbiAgICAgICAgZm9jdXM6ICNmMGYxZjIsXG4gICAgICAgIGZvY3VzLW91dGxpbmU6ICMwQjBCMEQsXG4gICAgICAgIGRpc2FibGVkOiB0cmFuc3BhcmVudCwgLy8gYXNrIGlmIHRoaXMgc2hvdWxkIGJlIHdoaXRlIG9yIHRyYW5zcGFyYW50XG4gICAgICAgIHRleHQ6ICMwQjBCMEQsXG4gICAgICAgIHRleHQtZGlzYWJsZWQ6ICM4OThlOTksXG4gICAgICAgIGJvcmRlcjogdHJhbnNwYXJlbnQsXG4gICAgICAgIGJvcmRlci1kaXNhYmxlZDogdHJhbnNwYXJlbnQsXG4gICAgKSxcbiAgICBcInNlY29uZGFyeVwiOiAoYmFzZTogI2YwZjFmMixcbiAgICAgICAgaG92ZXI6ICNjNGM3Y2MsXG4gICAgICAgIGFjdGl2ZTogI2Q2ZDhkYixcbiAgICAgICAgZm9jdXM6ICNmMGYxZjIsXG4gICAgICAgIGZvY3VzLW91dGxpbmU6ICMwQjBCMEQsXG4gICAgICAgIGRpc2FibGVkOiAjZjBmMWYyLFxuICAgICAgICB0ZXh0OiAjMEIwQjBELFxuICAgICAgICB0ZXh0LWRpc2FibGVkOiAjODk4ZTk5LFxuICAgICAgICBib3JkZXI6IHRyYW5zcGFyZW50LFxuICAgICAgICBib3JkZXItZGlzYWJsZWQ6IHRyYW5zcGFyZW50LFxuICAgICksXG4gICAgXCJzZWNvbmRhcnktb3V0bGluZVwiOiAoYmFzZTogI2U2ZTlmZixcbiAgICAgICAgaG92ZXI6ICNkYWRkZjIsXG4gICAgICAgIGFjdGl2ZTogI2U1ZTdmNixcbiAgICAgICAgZm9jdXM6ICNlNmU5ZmYsXG4gICAgICAgIGZvY3VzLW91dGxpbmU6ICM0MDQ5OUEsXG4gICAgICAgIGRpc2FibGVkOiAjZjBmMWYyLFxuICAgICAgICB0ZXh0OiAjNDA0OTlBLFxuICAgICAgICB0ZXh0LWRpc2FibGVkOiAjODk4ZTk5LFxuICAgICAgICBib3JkZXI6ICM0MDQ5OUEsXG4gICAgICAgIGJvcmRlci1kaXNhYmxlZDogdHJhbnNwYXJlbnQsXG4gICAgKSxcbiAgICBcInNlY29uZGFyeS13aGl0ZVwiOiAoYmFzZTogdHJhbnNwYXJlbnQsXG4gICAgICAgIGhvdmVyOiAjZGFkZGYyLFxuICAgICAgICBhY3RpdmU6ICNlNWU3ZjYsXG4gICAgICAgIGZvY3VzOiAjZTZlOWZmLFxuICAgICAgICBmb2N1cy1vdXRsaW5lOiAjMEIwQjBELFxuICAgICAgICBkaXNhYmxlZDogdHJhbnNwYXJlbnQsXG4gICAgICAgIHRleHQ6ICM0MDQ5OUEsXG4gICAgICAgIHRleHQtZGlzYWJsZWQ6ICM4OThlOTksXG4gICAgICAgIGJvcmRlcjogdHJhbnNwYXJlbnQsXG4gICAgICAgIGJvcmRlci1kaXNhYmxlZDogdHJhbnNwYXJlbnQsXG4gICAgKSxcbiAgICBcInNlY29uZGFyeS1wdXJwbGVcIjogKGJhc2U6ICNlNmU5ZmYsXG4gICAgICAgIGhvdmVyOiAjZGFkZGYyLFxuICAgICAgICBhY3RpdmU6ICNlNWU3ZjYsXG4gICAgICAgIGZvY3VzOiAjZTZlOWZmLFxuICAgICAgICBmb2N1cy1vdXRsaW5lOiAjMEIwQjBELFxuICAgICAgICBkaXNhYmxlZDogI2YwZjFmMixcbiAgICAgICAgdGV4dDogIzQwNDk5QSxcbiAgICAgICAgdGV4dC1kaXNhYmxlZDogIzg5OGU5OSxcbiAgICAgICAgYm9yZGVyOiB0cmFuc3BhcmVudCxcbiAgICAgICAgYm9yZGVyLWRpc2FibGVkOiB0cmFuc3BhcmVudCxcblxuICAgICksXG4gICAgXCJ3YXJuaW5nXCI6IChiYXNlOiAjZjBmMWYyLFxuICAgICAgICBob3ZlcjogI2M0YzdjYyxcbiAgICAgICAgYWN0aXZlOiAjZDZkOGRiLFxuICAgICAgICBmb2N1czogI2M0YzdjYyxcbiAgICAgICAgZm9jdXMtb3V0bGluZTogIzBCMEIwRCxcbiAgICAgICAgZGlzYWJsZWQ6ICNmMGYxZjIsXG4gICAgICAgIHRleHQ6ICNDNjVBNUEsXG4gICAgICAgIHRleHQtZGlzYWJsZWQ6ICM4OThlOTksXG4gICAgICAgIGJvcmRlcjogdHJhbnNwYXJlbnQsXG4gICAgICAgIGJvcmRlci1kaXNhYmxlZDogdHJhbnNwYXJlbnQsXG5cbiAgICApLFxuXG4pO1xuXG4kZGVmYXVsdC1za2luOiAncHJpbWFyeSc7XG5cblxuXG4uYnRuIHtcbiAgICAkZGVmYXVsdC1jb2xvcnM6IG1hcC5nZXQoJGJ0bi1za2lucywgJGRlZmF1bHQtc2tpbik7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBnYXA6IDFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCRkZWZhdWx0LWNvbG9ycywgYmFzZSk7XG4gICAgY29sb3I6IG1hcC5nZXQoJGRlZmF1bHQtY29sb3JzLCB0ZXh0KTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC5nZXQoJGRlZmF1bHQtY29sb3JzLCBib3JkZXIpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiO1xuXG4gICAgJi5idG4tc2l6ZS1zbSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG5cbiAgICB9XG5cbiAgICAmOmZvY3Vze1xuICAgICAgICBvdXRsaW5lOjA7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmLmJ0bi1zdGF0ZS1ob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJGRlZmF1bHQtY29sb3JzLCBob3Zlcik7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlLFxuICAgICYuYnRuLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkZGVmYXVsdC1jb2xvcnMsIGZvY3VzKTtcbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIG1hcC5nZXQoJGRlZmF1bHQtY29sb3JzLCBmb2N1cy1vdXRsaW5lKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmLmJ0bi1zdGF0ZS1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCRkZWZhdWx0LWNvbG9ycywgYWN0aXZlKTtcbiAgICB9XG5cblxuXG4gICAgJjpkaXNhYmxlZCxcbiAgICAmLmJ0bi1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJGRlZmF1bHQtY29sb3JzLCBkaXNhYmxlZCk7XG4gICAgICAgIGNvbG9yOiBtYXAuZ2V0KCRkZWZhdWx0LWNvbG9ycywgdGV4dC1kaXNhYmxlZCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogbWFwLmdldCgkZGVmYXVsdC1jb2xvcnMsIGJvcmRlci1kaXNhYmxlZCk7XG5cbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG5cbiAgICAmLmJ0bi1zcXVhcmUge1xuICAgICAgICBhc3BlY3QtcmF0aW86IDEvMTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICB3aWR0aDogMi41cmVtO1xuICAgICAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICB9XG5cbn1cblxuLyogXG4gKiBNYWtlIHNraW5zIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBjb2xvcnMgYXQgdGhlIHRvcFxuICogdGhlIHNraW5zIGFyZSBwbGFjZWQgaW4gLmJ0bi17c2tpbi1uYW1lfVxuICovXG5AZWFjaCAkbmFtZSwgJGNvbG9ycyBpbiAkYnRuLXNraW5zIHtcbiAgICAuYnRuLWNvbG9yLSN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkY29sb3JzLCBiYXNlKTtcbiAgICAgICAgY29sb3I6IG1hcC5nZXQoJGNvbG9ycywgdGV4dCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIG1hcC5nZXQoJGNvbG9ycywgYm9yZGVyKTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmLmJ0bi1zdGF0ZS1ob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIGhvdmVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSxcbiAgICAgICAgJi5idG4tc3RhdGUtZm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkY29sb3JzLCBmb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lLWNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIGZvY3VzLW91dGxpbmUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICYuYnRuLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIGFjdGl2ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmRpc2FibGVkLFxuICAgICAgICAmLmJ0bi1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIGRpc2FibGVkKTtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIHRleHQtZGlzYWJsZWQpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIGJvcmRlci1kaXNhYmxlZCk7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG4gICAgfVxufSIsIlxucWRuYS1pbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxucWRuYS1pbnB1dCAuaW5wdXQtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMXJlbSAxLjI1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGluZS1oZWlnaHQ6IDFyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpoYXMoaW5wdXQtcHJlZml4KSB7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIH1cbn1cblxucWRuYS1pbnB1dCAuaW5wdXQtYm94IHtcbiAgICBmbGV4OiAxO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgY29sb3I6ICMwQjBCMEQ7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxucWRuYS1pbnB1dCAuaW5wdXQtYm94OjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICNhNmFhYjM7XG59XG5cbnFkbmEtaW5wdXRbc2l6ZT1cInNtXCJdIC5pbnB1dC13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwLjYyNXJlbSAwLjc1cmVtO1xuXG4gICAgJjpoYXMoaW5wdXQtcHJlZml4KSB7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICB9XG59XG5cbnFkbmEtaW5wdXQ6aG92ZXIgLmlucHV0LXdyYXBwZXIsXG5xZG5hLWlucHV0W3N0YXRlPVwiaG92ZXJcIl0gLmlucHV0LXdyYXBwZXIge1xuICAgIGJvcmRlci1jb2xvcjogIzQwNDk5QTtcbn1cblxucWRuYS1pbnB1dFtzdGF0ZT1cImZvY3VzXCJdIC5pbnB1dC13cmFwcGVyIHtcbiAgICBib3JkZXItY29sb3I6ICM0MDQ5OUE7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoNjQsIDczLCAxNTQsIDAuMSk7XG59XG5cbnFkbmEtaW5wdXRbc3RhdGU9XCJzdWNjZXNzXCJdIC5pbnB1dC13cmFwcGVyIHtcbiAgICBib3JkZXItY29sb3I6ICM0MjhCNkU7XG59XG5cbnFkbmEtaW5wdXRbc3RhdGU9XCJlcnJvclwiXSAuaW5wdXQtd3JhcHBlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjQzY1QTVBO1xufVxuXG5xZG5hLWlucHV0W2Rpc2FibGVkXSAuaW5wdXQtd3JhcHBlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0YwRjFGMjtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjODk4RTk5O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbnFkbmEtaW5wdXRbZGlzYWJsZWRdIC5pbnB1dC1ib3gge1xuICAgIGNvbG9yOiAjODk4RTk5O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbnFkbmEtaW5wdXQgLmlucHV0LWljb24tcHJlZml4IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcbiAgICBjb2xvcjogIzY2Njtcbn1cblxucWRuYS1pbnB1dCAuaW5wdXQtZXh0ZXJuYWwtcHJlZml4IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcbn1cblxucWRuYS1pbnB1dCAuaW5wdXQtY2xlYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgZm9udC1zaXplOiAwLjg3NTtcbiAgICBjb2xvcjogIzc3NztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbnFkbmEtaW5wdXRbZmlsbGVkXVtjbGVhcmFibGVdIC5pbnB1dC1jbGVhcixcbnFkbmEtaW5wdXRbZmlsbGVkXVtjbGVhcmFibGU9XCJ0cnVlXCJdIC5pbnB1dC1jbGVhciB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxucWRuYS1pbnB1dFtkaXNhYmxlZF0gLmlucHV0LWNsZWFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgY29sb3I6ICNjY2M7XG59XG5cbnFkbmEtaW5wdXQucWRuYS1pbnB1dC1hcy10ZXh0IC5pbnB1dC13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbnFkbmEtaW5wdXQucWRuYS1pbnB1dC1hcy10ZXh0IC5pbnB1dC1ib3gge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgIH1cbn1cblxuLmlucHV0LWRyb3Bkb3duIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQzRDN0NDO1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDhweCA4cHg7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB6LWluZGV4OiAxMDAwO1xufVxuXG4uaW5wdXQtZHJvcGRvd24ub3BlbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5pbnB1dC13cmFwcGVyLmRyb3Bkb3duLW9wZW4ge1xuICAgIGJvcmRlci1yYWRpdXM6IDhweCA4cHggMCAwO1xufVxuXG5yb3ctaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxucm93LWl0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNGNUY2RkE7XG59XG5cbmRyb3Bkb3duLXJvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFMEUwRTA7XG59XG5cbmRyb3Bkb3duLXJvdzpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG5xZG5hLWlucHV0W3R5cGU9XCJjaGVja2JveFwiXSAuaW5wdXQtd3JhcHBlciB7XG4gICAgYWxsOiB1bnNldDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDRweCA2cHg7IFxuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxucWRuYS1pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gLmlucHV0LWJveCB7XG4gICAgYWxsOiByZXZlcnQ7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYWNjZW50LWNvbG9yOiAjNDA0OTlBO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxucWRuYS1pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gLmNoZWNrYm94LWxhYmVsIHtcbiAgICBhbGw6IHVuc2V0O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogIzBCMEIwRDtcbiAgICBsaW5lLWhlaWdodDogMTsgXG59XG5cbnFkbmEtaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdW2Rpc2FibGVkXSAuaW5wdXQtd3JhcHBlciB7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59IiwiQHVzZSBcInNhc3M6bWFwXCI7XG5cblxuJGxhYmVsLXNraW5zOiAoXG4gICAgXCJwcmltYXJ5XCI6IChiYXNlOiAjRjNGN0ZDLFxuICAgICAgICB0ZXh0OiAjNEY2ODg3LFxuICAgICAgICBib3JkZXI6ICM0RjY4ODcsXG4gICAgKSxcbiAgICBcInllbGxvd1wiOiAoYmFzZTogI0ZFRURCOCxcbiAgICAgICAgdGV4dDogIzk3N0YyRSxcbiAgICAgICAgYm9yZGVyOiAjOTc3RjJFLFxuICAgICksXG4gICAgXCJyZWRcIjogKGJhc2U6ICNmZWUzZTMsXG4gICAgICAgIHRleHQ6ICNjNjVhNWEsXG4gICAgICAgIGJvcmRlcjogI2M2NWE1YSxcbiAgICApLFxuICAgIFwiZ3JlZW5cIjogKGJhc2U6ICNjNWY1ZTIsXG4gICAgICAgIHRleHQ6ICM0MjhiNmUsXG4gICAgICAgIGJvcmRlcjogIzQyOGI2ZSxcbiAgICApLFxuICAgIFwic2Vjb25kYXJ5XCI6IChiYXNlOiAjZjBmMWYyLFxuICAgICAgICB0ZXh0OiAjNmI3MjgwLFxuICAgICAgICBib3JkZXI6ICM2YjcyODAsXG4gICAgKSxcbiAgICBcImJsdWVcIjogKGJhc2U6ICNlY2VkZjUsXG4gICAgICAgIHRleHQ6ICM0MDQ5OWEsXG4gICAgICAgIGJvcmRlcjogIzQwNDk5YSxcbiAgICApLFxuICAgIFwiYmx1ZS0yXCI6IChiYXNlOiAjZmZmZmZmLFxuICAgICAgICB0ZXh0OiAjNDA0OTlhLFxuICAgICAgICBib3JkZXI6ICM0MDQ5OWEsXG4gICAgKSxcbik7XG5cbi5pbWFnZS1jaXJjbGUtcmF0aW97XG4gICAgd2lkdGg6IDI5cHg7XG4gICAgaGVpZ2h0OiAyOXB4O1xuICAgIGFzcGVjdC1yYXRpbzogMS8xO1xuICAgIGJvcmRlci1yYWRpdXM6IGNhbGMoaW5maW5pdHkqMXB4KTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG59XG5cbi5sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiO1xuICAgIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgICBnYXA6IDAuMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAmLmxhYmVsLW91dGxpbmUge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi5sYWJlbC1zbXtcbiAgICAgICAgcGFkZGluZzogMHJlbSAwLjVyZW07XG4gICAgfVxuICAgICYtaWNvbi1wcmVmaXgge1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgfVxufVxuXG5AZWFjaCAkbmFtZSwgJGNvbG9ycyBpbiAkbGFiZWwtc2tpbnMge1xuICAgIC5sYWJlbC0jeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJGNvbG9ycywgYmFzZSk7XG4gICAgICAgIGNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIHRleHQpO1xuXG4gICAgICAgICYubGFiZWwtb3V0bGluZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkY29sb3JzLCBiYXNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubGFiZWwtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLmdldCgkY29sb3JzLCBib3JkZXIpO1xuICAgICAgICB9XG5cbiAgICB9XG5cblxufSIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuXG4kYmFkZ2Utc2tpbnM6IChcbiAgICBcInByaW1hcnlcIjogKGJhc2U6ICM0MDQ5OWEsXG4gICAgICAgIHRleHQ6ICNmZmZmZmYsXG4gICAgICAgIGJvcmRlcjogIzQwNDk5YSxcbiAgICApLFxuICAgIFwicHVycGxlXCI6IChiYXNlOiAjZTZlOWZmLFxuICAgICAgICB0ZXh0OiAjNDA0OTlhLFxuICAgICAgICBib3JkZXI6ICM0MDQ5OWEsXG4gICAgKSxcbiAgICBcInllbGxvd1wiOiAoYmFzZTogI0ZFRURCOCxcbiAgICAgICAgdGV4dDogIzk3N0YyRSxcbiAgICAgICAgYm9yZGVyOiAjOTc3RjJFLFxuICAgICksXG4gICAgXCJncmV5XCI6IChiYXNlOiAjZDNkNWQ5LFxuICAgICAgICB0ZXh0OiAjNmI3MjgwLFxuICAgICAgICBib3JkZXI6ICM2YjcyODAsXG4gICAgKSxcbiAgICBcInJlZFwiOiAoYmFzZTogI2ZlZjFmMSxcbiAgICAgICAgdGV4dDogI2M2NWE1YSxcbiAgICAgICAgYm9yZGVyOiAjYzY1YTVhLFxuICAgICksXG4gICAgXCJ0cmFuc3BhcmVudFwiOiAoYmFzZTogdHJhbnNwYXJlbnQsXG4gICAgICAgIHRleHQ6ICM2YjcyODAsXG4gICAgICAgIGJvcmRlcjogdHJhbnNwYXJlbnQsXG4gICAgKSxcblxuKTtcblxuXG4uYmFkZ2Uge1xuICAgIGJhY2tncm91bmQ6ICM0MDQ5OUE7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAwLjEyNXJlbSAwLjQzOHJlbTtcblxuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG5cbiAgICBjb2xvcjogI0ZGRjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvcnMgaW4gJGJhZGdlLXNraW5zIHtcbiAgICAgICAgJi5iYWRnZS0jeyRuYW1lfSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIGJhc2UpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC5nZXQoJGNvbG9ycywgdGV4dCk7XG5cbiAgICAgICAgICAgICYuYmFkZ2Utb3V0bGluZXtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC5nZXQoJGNvbG9ycywgYm9yZGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5cbi5pbmRpY2F0b3ItYmFkZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgIGJhY2tncm91bmQ6ICNmZjNhMzA7XG4gICAgYm9yZGVyLXJhZGl1czogMy4xM3JlbTtcblxuICAgIGNvbG9yOiAjRkZGO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICAgJi5iYWRnZS1zbSB7XG4gICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC42MjVyZW07XG4gICAgfVxuXG4gICAgJi5iYWRnZS14cyB7XG4gICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICBmb250LXNpemU6IDByZW07XG4gICAgfVxuXG4gICAgJi5iYWRnZS1kb3Qge1xuICAgICAgICBmb250LXNpemU6IDByZW07XG5cbiAgICB9XG59IiwiQHVzZSBcInNhc3M6bWFwXCI7XG5cblxuJHRhZ3Mtc2tpbnM6IChcbiAgICBcImdyYXlcIjogKGJhc2U6ICNmMGYxZjIsXG4gICAgICAgIGZpbGxlZC1iYXNlOiAjYzRjN2NjLFxuICAgICAgICB0ZXh0OiAjMWUxZjIwLFxuICAgICAgICBib3JkZXI6ICM2YjcyODAsXG4gICAgKSxcblxuICAgIFwicmVkXCI6IChiYXNlOiAjZmVlM2UzLFxuICAgICAgICBmaWxsZWQtYmFzZTogI2ZiYWFhYSxcblxuICAgICAgICB0ZXh0OiAjNjMzMDMwLFxuICAgICAgICBib3JkZXI6ICNjNjVhNWEsXG4gICAgKSxcbiAgICBcInllbGxvd1wiOiAoYmFzZTogI2ZlZjZkYixcbiAgICAgICAgZmlsbGVkLWJhc2U6ICNmZGU1OTQsXG5cbiAgICAgICAgdGV4dDogIzY1NTUyMixcbiAgICAgICAgYm9yZGVyOiAjOTc3RjJFLFxuICAgICksXG4gICAgXCJncmVlblwiOiAoYmFzZTogI2UyZmFmMSxcbiAgICAgICAgZmlsbGVkLWJhc2U6ICM4YmVjYzUsXG5cbiAgICAgICAgdGV4dDogIzJmNWQ0YSxcbiAgICAgICAgYm9yZGVyOiAjNDI4YjZlLFxuICAgICksXG4gICAgXCJibHVlXCI6IChiYXNlOiAjZTZlZmY5LFxuICAgICAgICBmaWxsZWQtYmFzZTogI2I1Y2VlZCxcblxuICAgICAgICB0ZXh0OiAjMzc0NzVhLFxuICAgICAgICBib3JkZXI6ICMzNzQ3NWEsXG4gICAgKSxcbiAgICBcImRhcmstYmx1ZVwiOiAoYmFzZTogI2Q2ZTBmOSxcbiAgICAgICAgZmlsbGVkLWJhc2U6ICM4NWExZWMsXG5cbiAgICAgICAgdGV4dDogIzE5MmE1YSxcbiAgICAgICAgYm9yZGVyOiAjNDA0OTlhLFxuICAgICksXG4gICAgXCJwaW5rXCI6IChiYXNlOiAjZjZlMWU4LFxuICAgICAgICBmaWxsZWQtYmFzZTogI2U1YTZiOSxcblxuICAgICAgICB0ZXh0OiAjNTYyZDNhLFxuICAgICAgICBib3JkZXI6ICM1NjJkM2EsXG4gICAgKSxcbiAgICBcInB1cnBsZVwiOiAoYmFzZTogI2ViZTlmYixcbiAgICAgICAgZmlsbGVkLWJhc2U6ICNjNGJjZjMsXG5cbiAgICAgICAgdGV4dDogIzQxM2I1ZSxcbiAgICAgICAgYm9yZGVyOiAjNDEzYjVlLFxuICAgICksXG5cblxuKTtcblxuLnRhZyB7XG5cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYxZjI7XG4gICAgY29sb3I6ICMxZTFmMjA7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNi4yNXJlbTtcbiAgICBwYWRkaW5nOiAwLjEyNXJlbSAwLjg3NXJlbTtcblxuICAgIGdhcDogMC40NzVyZW07XG5cblxuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCI7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAmLnRhZy1maWxsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjN2NjO1xuICAgICAgICBjb2xvcjogIzFlMWYyMDtcbiAgICB9XG5cbiAgICAmLnRhZy1zbSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgcGFkZGluZzogMHJlbSAwLjVyZW07XG4gICAgICAgIGdhcDogMC4yNXJlbTtcblxuICAgIH1cbn1cblxuQGVhY2ggJG5hbWUsICRjb2xvcnMgaW4gJHRhZ3Mtc2tpbnMge1xuICAgIC50YWctI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCRjb2xvcnMsIGJhc2UpO1xuICAgICAgICBjb2xvcjogbWFwLmdldCgkY29sb3JzLCB0ZXh0KTtcblxuICAgICAgICAmLnRhZy1maWxsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkY29sb3JzLCBmaWxsZWQtYmFzZSk7XG4gICAgICAgICAgICBjb2xvcjogbWFwLmdldCgkY29sb3JzLCB0ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG5cbi8vdmFyaWFudD1jaXJjbGVcbi50YWctY2lyY2xlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgcGFkZGluZzogMnB4IDE0cHg7XG4gIGdhcDogOHB4O1xuXG4gIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMDtcblxuICAmOm5vdChbY2xhc3MqPVwidGFnLVwiXSkge1xuICAgIGJhY2tncm91bmQ6ICNDNEM3Q0M7XG4gICAgY29sb3I6ICMxZTFmMjA7XG4gIH1cblxuICAmLnRhZy1zbSB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmc6IDJweCAxMHB4O1xuICAgIGdhcDogNHB4O1xuICB9XG5cbiAgLnRhZy1pY29uLXByZWZpeCxcbiAgLnRhZy1pY29uLXN1ZmZpeCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG5cbiAgJjpub3QoLnRhZy1zbSkge1xuICAgIC50YWctaWNvbi1wcmVmaXgge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogLTNweDtcbiAgICAgIHRvcDogLTNweDtcbiAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgfVxuICB9XG5cbiAgJi50YWctc20ge1xuICAgIC50YWctaWNvbi1wcmVmaXgge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cbiAgfVxufSIsIkB1c2UgXCIuLi8uLi9tb2R1bGVzL3YxL2NvbG9yc1wiO1xuXG4ucWRuYS1zaWRlYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvcnMuJHB1cnBsZS01MDA7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMjBweDtcbiAgICBtYXgtd2lkdGg6IDEyMHB4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgLnNpZGViYXItbG9nbyB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG5cbiAgICB9XG5cbiAgICAuc2lkZWJhci1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiAxNnB4O1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5zaWRlYmFyLWl0ZW1zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM2NjZkYWU7XG5cblxuICAgICAgICAuc2lkZWJhci1pdGVtIHtcbiAgICAgICAgICAgIGhlaWdodDogOTBweDtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweCAxNnB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwNHB4O1xuXG4gICAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMS8xO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cbiAgICAgICAgICAgICAgICAtd2Via2l0LW1hc2s6IHZhcigtLWljb24pIG5vLXJlcGVhdCBjZW50ZXIgLyBjb250YWluO1xuICAgICAgICAgICAgICAgIG1hc2s6IHZhcigtLWljb24pIG5vLXJlcGVhdCBjZW50ZXIgLyBjb250YWluO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaXRlbS10aXRsZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNpZGViYXItaW5kaWNhdG9yIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAxMnB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8vIGJhZGdlIG5pZXQga2xpa2JhYXIsIGl0ZW0gd2VsXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGNvbG9ycy4kcHVycGxlLTYwMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGNvbG9ycy4kbGlnaHQtcHVycGxlLTEwMDtcblxuICAgICAgICAgICAgICAgIC5pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDA0OTlhO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvcnMuJGxpZ2h0LXB1cnBsZS0xMDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiBjb2xvcnMuJHB1cnBsZS02MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2lkZWJhci1mb290ZXIge1xuICAgICAgICBwYWRkaW5nOiAxNnB4O1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbn0iLCJAdXNlIFwiLi4vLi4vbW9kdWxlcy92MS9jb2xvcnNcIjtcbkB1c2UgXCIuLi8uLi9tb2R1bGVzL3YxL3R5cG9ncmFwaHlcIjtcblxucWRuYS1kcm9wZG93biB7XG5cbiAgICBkcm9wZG93biB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDhweCA0cHg7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDEycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgNHB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4zMCk7XG5cbiAgICAgICAgLnFkbmEtZHJvcGRvd24tbWVudSB7XG4gICAgICAgICAgICAubWVudS1pdGVtIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgICAgIC5tZW51LWNvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogMTJweDtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllOWU5O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5pdGVtLWljb24ge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5pdGVtLWRhbmdlcntcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNDNjVBNUE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWVudS1kaXZpZGVyIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjQzRDN0NDO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIgQHVzZSBcInNhc3M6bWFwXCI7XG4gICBcbnFkbmEtZGlhbG9nIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxucWRuYS1kaWFsb2dbb3Blbl0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnFkbmEtZGlhbG9nLW92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjUpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4ucWRuYS1kaWFsb2cge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwYWRkaW5nOiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG1pbi13aWR0aDogMzAwcHg7XG4gIG1heC13aWR0aDogOTAlO1xuICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMCwwLDAsMC4zKTtcbn1cblxuLnFkbmEtZGlhbG9nLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxucWRuYS1kaWFsb2cgcWRuYS1idXR0b24ge1xuICBtYXJnaW46IDVweDtcbn0iLCJAdXNlIFwic2FzczptYXBcIjtcblxucWRuYS1uYXYtYnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCAycHggI0UwRTBFMDtcbiAgLy8gb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3ZlcmZsb3c6dmlzaWJsZTsgLy9mb3IgdG9vbHRpcCB1c2VcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG5uYXZpZ2F0aW9uLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0NDQztcbiAgcGFkZGluZzogMTJweCA4cHg7XG4gIGdhcDogNHB4O1xuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICB9XG59XG5cbi5uYXYtYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDEycHg7XG59XG5cbi5uYXYtbGVmdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuXG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIFxufVxuXG5uYXZpZ2F0aW9uLWdyb3VwW3R5cGU9XCJkb2MtcHJldmlld1wiXSAubmF2LWxlZnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0UwRTBFMDtcbn1cblxuLm5hdi1yaWdodCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xufVxuXG4ubmF2LWF2YXRhciB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5uYXYtdXNlcm5hbWUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiAjMzMzO1xufVxuXG4ubmF2LXBhZ2UtY3VycmVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IDMycHg7ICBcbiAgcGFkZGluZzogMCAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm5hdi1wYWdlLXNlcGFyYXRvciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICM5OTk7XG59XG5cbi5uYXYtcGFnZS10b3RhbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgIGNvbG9yOiAjOTk5O1xufVxuXG5cblxubmF2aWdhdGlvbi1saW5rIHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiBibGFjaztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycywgYmFja2dyb3VuZCAwLjJzO1xuICBwYWRkaW5nOiA0cHggMTJweCAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGJhY2tncm91bmQ6ICNFRkVGRUY7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cbiAgfVxuXG4gICZbYWN0aXZlXSB7XG4gICAgYmFja2dyb3VuZDogI2U2ZTlmZjtcbiAgICBjb2xvcjogIzQwNDk5YTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDA0OTlhO1xuICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBlYXNlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIC5uYXYtbGlua19fYXJyb3cge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcblxuICAgICYuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cbiAgfVxuXG4gIC5uYXYtbGlua19faWNvbiB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cblxuICAubmF2LWxpbmtfX3RleHQge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBkaXNwbGF5OmZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cblxuJltkaXNhYmxlZF0ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMC43O1xuXG4gIGNvbG9yOiAjOWU5ZTllO1xuXG4gIC5uYXYtbGlua19faWNvbixcbiAgLm5hdi1saW5rX19hcnJvdyxcbiAgLm5hdi1iYWRnZSB7XG4gICAgY29sb3I6ICNiZGJkYmQ7XG4gIH1cbn1cblxuJltkaXNhYmxlZF1bYWN0aXZlXSB7XG4gIGJhY2tncm91bmQ6ICNlNmU5ZmY7XG4gIGNvbG9yOiAjOWU5ZTllO1xuXG4gICY6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmRiZGJkO1xuICB9XG5cbiAgLm5hdi1saW5rX19pY29uLFxuICAubmF2LWxpbmtfX2Fycm93IHtcbiAgICBjb2xvcjogI2JkYmRiZDtcbiAgfVxuXG4gIC5uYXYtYmFkZ2Uge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxufVxuXG4gIFxuICAubmF2LWxpbmtfX2ljb24td3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAubmF2LWJhZGdlIHtcbiBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMCUsIC01MCUpO1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBwYWRkaW5nOiAwO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGZvbnQtc2l6ZTogOXB4OyBcbiAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjb2xvcjogI2ZmZjtcblxuICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG4gIC5uYXYtYmFkZ2UtLXJlZCB7XG4gICAgYmFja2dyb3VuZDogI2ZmNGQ0ZjtcbiAgfVxuICAubmF2LWJhZGdlLS1oaWdobGlnaHQge1xuICAgIGJhY2tncm91bmQ6ICM0MDQ5OWE7XG4gIH1cbiAgLm5hdi1iYWRnZS0tZG90IHtcbiAgICB3aWR0aDogOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIG1pbi13aWR0aDogOHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB9XG4gICYubmF2LWxpbmstLXNtIHtcbiAgICAubmF2LWJhZGdlIHtcbiAgICAgIHRvcDogLTJweDtcbiAgICAgIHJpZ2h0OiAtNHB4O1xuICAgICAgbWluLXdpZHRoOiAxNHB4O1xuICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgZm9udC1zaXplOiA5cHg7XG4gICAgfVxuXG4gICAgLm5hdi1iYWRnZS0tZG90IHtcbiAgICAgIHdpZHRoOiA2cHg7XG4gICAgICBoZWlnaHQ6IDZweDtcbiAgICAgIG1pbi13aWR0aDogNnB4O1xuICAgIH1cbiAgfVxuICAmW2Rpc2FibGVkXSAubmF2LWJhZGdlIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gIH1cbn1cblxuLyogRHJvcGRvd246IGdlYnJ1aWt0IGRvb3IgTmF2aWdhdGlvbkdyb3VwIChjbGFzcyB0b2VnZXZvZWdkIGluIEpTKSAqL1xuLm5hdi1kcm9wZG93biB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwMDtcblxuICAmLmlzLW9wZW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn1cblxuLyogZmFsbGJhY2s6IGFscyBlciBub2cgb3VkZSBtYXJrdXAgbGVlZnQgKi9cbi8vIHFkbmEtZHJvcGRvd24gPiBkcm9wZG93biB7XG4vLyAgIGRpc3BsYXk6IG5vbmU7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgei1pbmRleDogMTAwMDtcbi8vIH1cbiIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuXG4ucWRuYS1tb2RhbC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC41KTtcbiAgZGlzcGxheTogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHotaW5kZXg6IDk5OTk7XG59XG5cbi5xZG5hLW1vZGFsLW92ZXJsYXkub3BlbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5xZG5hLW1vZGFsIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gXG4gIGJveC1zaGFkb3c6IDAgMTBweCAyNXB4IHJnYmEoMCwwLDAsMC4yKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuXG4vKiBTaXplcyAqL1xuXG4ubW9kYWwtc20ge1xuICB3aWR0aDogNDAwcHg7XG59XG5cbi5tb2RhbC1tZCB7XG4gIHdpZHRoOiA3MDBweDtcbn1cblxuLm1vZGFsLWxnIHtcbiAgd2lkdGg6IDEwMDBweDtcbn1cblxuLm1vZGFsLXhsIHtcbiAgd2lkdGg6IDkwJTtcbiAgaGVpZ2h0OiA5MCU7XG59XG5tb2RhbC1oZWFkZXIsIG1vZGFsLWJvZHksIG1vZGFsLWZvb3RlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuXG5cbm1vZGFsLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uY2xvc2UtYnRuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwcHg7XG4gIHJpZ2h0OiAxMnB4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbm1vZGFsLWZvb3RlciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbiIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuXG4kY2FyZC1za2luczogKFxuICAgIFwiZGVmYXVsdFwiOiAoYmc6ICNmZmZmZmYpLFxuICAgIFwicHVycGxlXCI6IChiZzogI0RBRERGMiksXG4pO1xuXG4ucWRuYS1jYXJkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3JzIGluICRjYXJkLXNraW5zIHtcbiAgICAgICAgJi5xZG5hLWNhcmQtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG1hcC5nZXQoJGNvbG9ycywgYmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiBjYXJkLWhlYWRlci5xZG5hLWNhcmRfX2hlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMS41cmVtO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgIGNvbG9yOiAjNDA0OTlBO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0Q5REJFQjtcblxuICAgICAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+IGNhcmQtaGVhZGVyLnFkbmEtY2FyZF9faGVhZGVyPmNhcmQtYWN0aW9ucy5xZG5hLWNhcmRfX2FjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgID4gY2FyZC1ib2R5LnFkbmEtY2FyZF9fYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMS41cmVtIDJyZW0gMS41cmVtO1xuICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIH1cblxuICAgIC5jYXJkLWZvcm0tc2VjdGlvbiB7XG4gICAgICAgIGNvbG9yOiAjMEIwQjBEO1xuICAgICAgICBmb250LWZhbWlseTogSW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgICAgICAuY2FyZC1mb3JtLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMEIwQjBEO1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDBweCA0cHggMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm5vbl9lZGl0YWJsZV9maWVsZCBpbnB1dDpub3QoOmRpc2FibGVkKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICAgICAgICB9XG5cbiAgICB9XG59XG5cbi50cy1jYXJkLWxpc3QtZ3JvdXAgLmZvcm0tY29udHJvbDpkaXNhYmxlZCxcbi50cy1jYXJkLWxpc3QtZ3JvdXAgLmZvcm0tY29udHJvbFtyZWFkb25seV0ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi50cy1jYXJkLWxpc3QtZ3JvdXAge1xuXHRidXR0b24ge1xuXHRcdCYuZm9ybS1jb250cm9sIHtcblx0XHRcdCY6ZGlzYWJsZWQge1xuXHRcdFx0XHRjb2xvcjogIzg3ODc4NyAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQuc2VsZWN0Mi1jb250YWluZXItLWJvb3RzdHJhcDQge1xuXHRcdCYuc2VsZWN0Mi1jb250YWluZXItLWRpc2FibGVkIHtcblx0XHRcdC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC50cy1jYXJkLWxheW91dC1yb3cge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGdhcDogMTJweDtcblx0XHRhbGlnbi1pdGVtczogc3RyZXRjaDtcblx0fVxuXHQudHMtY2FyZC1sYXlvdXQtY29sIHtcblx0XHRmbGV4OiAxIDEgMDtcblx0XHRtaW4td2lkdGg6IDA7XG5cdH1cbn1cbi50cy1jYXJkLWxpc3QtZ3JvdXAgLnNlbGVjdDItY29udGFpbmVyLS1ib290c3RyYXA0LnNlbGVjdDItY29udGFpbmVyLS1kaXNhYmxlZCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcbi50cy1jYXJkLWxpc3QtZ3JvdXAgLnNlbGVjdDItY29udGFpbmVyLS1ib290c3RyYXA0LnNlbGVjdDItY29udGFpbmVyLS1kaXNhYmxlZCAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgIC50cy1jYXJkLWxpc3QtZ3JvdXAgLnRzLWNhcmQtbGF5b3V0LWNvbCB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgfVxufSIsIkB1c2UgXCJzYXNzOm1hcFwiO1xuXG5xZG5hLWNhcmQtdW5pdC10eXBlIHtcbiAgICBkaXNwbGF5OiBjb250ZW50czsgLy8gbGV0IHRoZSBpbm5lciAudW5pdC10eXBlIHBhcnRpY2lwYXRlIGluIHRoZSBncmlkIGRpcmVjdGx5XG59XG5cbi51bml0LXR5cGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjsgXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXdlaWdodDogbm9ybWFsOyAgICAgIC8vIHJlc2V0IGFueSBpbmhlcml0ZWQgYm9sZFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgICAgLy8gcmVzZXQgYW55IGluaGVyaXRlZCB1bmRlcmxpbmVcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWluLWhlaWdodDogMTIwcHg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjZmODtcbiAgICB9XG5cbiAgICAmX190b3Age1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyAgLy8gZXhwbGljaXQsIG5vIGFtYmlndWl0eVxuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gMS41cmVtIDAuNXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgIC8vIHZlcnRpY2FsbHkgY2VudGVyIGljb24gd2l0aCB0ZXh0IGJsb2NrXG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIGZsZXg6IDAgMCA0OHB4O1xuICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiA0NHB4O1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7ICAgLy8gYmVsdC1hbmQtc3VzcGVuZGVycyB2ZXJ0aWNhbCBjZW50ZXJpbmdcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7ICAgLy8gcmVtb3ZlcyBpbmxpbmUgaW1hZ2UgZ2FwXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19oZWFkaW5nIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLVR5cGUtRm9udC1GYW1pbHktcHJpbWFyeSwgSW50ZXIpO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLUZvbnQtc2l6ZS1Cb2R5LUludGVyLW1lZGl1bS0xNCwgMTRweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1MaW5lLUhlaWdodC1Cb2R5LUJvZHktTWVkaXVtLUNhcHRpb24sIDI0cHgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tVGV4dC1Cb2R5LCAjMEIwQjBEKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cblxuICAgICZfX3N1YmhlYWRpbmcge1xuICAgICAgICBmb250LWZhbWlseTogdmFyKC0tVHlwZS1Gb250LUZhbWlseS1wcmltYXJ5LCBJbnRlcik7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tRm9udC1zaXplLUJvZHktc21hbGwtMTIsIDEycHgpO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tTGluZS1IZWlnaHQtQm9keS1Cb2R5LVNtYWxsLCAyMHB4KTtcbiAgICAgICAgY29sb3I6IHZhcigtLVRleHQtQm9keS1TZWNvbmRhcnksICM2QjcyODApO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICAmX19pbmZvIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiByb3c7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMS41cmVtIDAuNzVyZW07XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgJltoaWRkZW5dIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wYWlyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICB9XG5cbiAgICAmX19sYWJlbCxcbiAgICAmX192YWx1ZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1UeXBlLUZvbnQtRmFtaWx5LXByaW1hcnksIEludGVyKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1Gb250LXNpemUtQm9keS1zbWFsbC0xMiwgMTJweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1MaW5lLUhlaWdodC1Cb2R5LUJvZHktU21hbGwsIDIwcHgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tU3VyZmFjZS1TaWduYWwtU2lnbmFsLWdyZXktRGV0YWlsLCAjNkI3MjgwKTtcbiAgICB9XG59XG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBPTEQgU1RZTEVTIOKAlCBrZXB0IGZvciByZWZlcmVuY2UsIG5vIGxvbmdlciBhY3RpdmVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyAudG9wLXJvdyB7XG4vLyAgICAgZGlzcGxheTogZmxleDtcbi8vICAgICBnYXA6IDEycHg7XG4vLyAgICAgcGFkZGluZzogMjVweCAyNXB4O1xuLy8gICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4vLyAgICAgYmFja2dyb3VuZDogI2ZmZjtcbi8vICAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xuLy8gICAgIGhlaWdodDogMTA0cHg7XG4vLyAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4vLyB9XG4vL1xuLy8gLnRvcC1yb3c6aG92ZXIge1xuLy8gICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4vLyAgICAgY3Vyc29yOiBwb2ludGVyO1xuLy8gfVxuLy9cbi8vIC5pY29uIHtcbi8vICAgICBmbGV4OiAwIDAgNDBweDtcbi8vICAgICBkaXNwbGF5OiBmbGV4O1xuLy8gICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4vLyAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4vLyB9XG4vL1xuLy8gLmljb24gaW1nIHtcbi8vICAgICB3aWR0aDogMzZweDtcbi8vICAgICBoZWlnaHQ6IDM2cHg7XG4vLyB9XG4vL1xuLy8gLmNvbnRlbnQge1xuLy8gICAgIGZsZXg6IDE7XG4vLyAgICAgZGlzcGxheTogZmxleDtcbi8vICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuLy8gfVxuLy9cbi8vIC5oZWFkaW5nIHtcbi8vICAgICBmb250LXdlaWdodDogYm9sZDtcbi8vICAgICBmb250LXNpemU6IDE4cHg7XG4vLyB9XG4vL1xuLy8gLnN1YmhlYWRpbmcge1xuLy8gICAgIGZvbnQtc2l6ZTogMTRweDtcbi8vICAgICBjb2xvcjogIzY2Njtcbi8vICAgICBtYXJnaW4tdG9wOiA0cHg7XG4vLyB9XG4vL1xuLy8gLmluZm8tcm93IHtcbi8vICAgICBkaXNwbGF5OiBmbGV4O1xuLy8gICAgIHdpZHRoOiAxMDAlO1xuLy8gICAgIHBhZGRpbmc6IDE1cHggMjVweDtcbi8vICAgICBmb250LXNpemU6IDE0cHg7XG4vLyAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7XG4vLyAgICAgZ2FwOiAyMHB4O1xuLy8gICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuLy8gfVxuLy9cbi8vIC52YWx1ZSB7XG4vLyAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4vLyB9IiwiQHVzZSBcInNhc3M6bWFwXCI7XG46aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzO1xuICB3aWR0aDogNDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC0tcGFkZGluZzogNnB4IDEwcHg7XG4gIC0tZm9udC1zaXplOiAxNHB4O1xuICAtLWljb24tc2l6ZTogMThweDtcbiAgLS1jb3VudC13aWR0aDogMzBweDtcbiAgLS1jb2xvcjogIzAwMDtcbiAgLS1vcGFjaXR5OiAxO1xuICAtLWhvdmVyLWJnOiByZ2JhKDAsMCwwLDAuMDYpO1xufVxuXG4ud3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcbn1cblxuLmxlZnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNWVtO1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5pY29uIHtcbiAgZm9udC1mYW1pbHk6IFwiTWF0ZXJpYWwgRGVzaWduIEljb25zXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogdmFyKC0taWNvbi1zaXplKTtcbiAgZm9udC1zaXplOiB2YXIoLS1pY29uLXNpemUpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1jb2xvcik7XG4gIG9wYWNpdHk6IHZhcigtLW9wYWNpdHkpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnRleHQge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBjb2xvcjogdmFyKC0tY29sb3IpO1xuICBvcGFjaXR5OiB2YXIoLS1vcGFjaXR5KTtcbn1cblxuLmNvdW50IHtcbiAgbWluLXdpZHRoOiB2YXIoLS1jb3VudC13aWR0aCk7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBjb2xvcjogdmFyKC0tY29sb3IpO1xuICBvcGFjaXR5OiB2YXIoLS1vcGFjaXR5KTtcbn1cblxuOmhvc3QoOmhvdmVyKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWhvdmVyLWJnKTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIDpob3N0IHsgd2lkdGg6IDgwJTsgfVxufVxuIiwiQHVzZSBcInNhc3M6bWFwXCI7XG5cbnFkbmEtc2VhcmNoLWJhciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5xZG5hLXNlYXJjaC1iYXIgLnFkbmEtc2VhcmNoLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJhY2tncm91bmQ6ICNGRkY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgZ2FwOiA2cHhcbn1cbnFkbmEtc2VhcmNoLWJhciAuaW5wdXQge1xuICBmbGV4OiAxO1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBjb2xvcjogIzIyMjtcbiAgd2lkdGg6IDEwMCU7XG59XG5xZG5hLXNlYXJjaC1iYXIgLmlucHV0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5O1xufVxucWRuYS1zZWFyY2gtYmFyIC5pY29uIHtcbiAgY29sb3I6ICM3Nzc7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogY29udGVudHM7XG59XG5xZG5hLXNlYXJjaC1iYXIgLmNsb3NlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnFkbmEtc2VhcmNoLWJhciAubGVmdC1idG4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtaW4td2lkdGg6IDMwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiAjRTZFOUZGO1xuICBjb2xvcjogIzQwNDk5QTtcbn1cbnFkbmEtc2VhcmNoLWJhciAubGVmdC1idG46Zm9jdXMsXG5xZG5hLXNlYXJjaC1iYXIgLmxlZnQtYnRuOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiBub25lO1xufVxucWRuYS1zZWFyY2gtYmFyIC5idG4tbGFiZWw6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxucWRuYS1zZWFyY2gtYmFyOm5vdChbc3RhdGU9XCJmb2N1c1wiXSk6bm90KFtzdGF0ZT1cImZpbGxlZFwiXSk6aG92ZXIgLnFkbmEtc2VhcmNoLWNvbnRhaW5lciB7XG4gIGJvcmRlci1jb2xvcjogIzQwNDk5QTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjNDA0OTlBO1xuICBiYWNrZ3JvdW5kOiNGRkY7XG59XG5xZG5hLXNlYXJjaC1iYXJbc3RhdGU9XCJmb2N1c1wiXSAucWRuYS1zZWFyY2gtY29udGFpbmVyIHtcbiAgICAgYm9yZGVyOiAxcHggc29saWQgIzQwNDk5QTtcbiAgICAgYm94LXNoYWRvdzowIDAgMCAzcHggI2ZmZmZmZiwwIDAgMCA0cHggIzQwNDk5QTsgXG59XG5xZG5hLXNlYXJjaC1iYXJbc3RhdGU9XCJmaWxsZWRcIl0gLnFkbmEtc2VhcmNoLWNvbnRhaW5lciB7XG4gIGJvcmRlci1jb2xvcjogIzQwNDk5QTtcbn1cbnFkbmEtc2VhcmNoLWJhcltkaXNhYmxlZF0gLnFkbmEtc2VhcmNoLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gIGJvcmRlci1jb2xvcjogI2UwZTBlMDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbnFkbmEtc2VhcmNoLWJhcltkaXNhYmxlZF0gLmlucHV0IHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgY29sb3I6ICNhYWE7XG59XG5xZG5hLXNlYXJjaC1iYXJbZGlzYWJsZWRdIC5pY29uIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgY29sb3I6ICNjY2M7XG59XG4iLCJAdXNlIFwic2FzczptYXBcIjtcblxucWRuYS1jb2x1bW4taXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAycHg7XG59XG5xZG5hLWNvbHVtbi1pdGVtIC5xZG5hLWNvbHVtbi1jb21wb25lbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjNDA0OTlBO1xuICBiYWNrZ3JvdW5kOiAjRTZFOUZGO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBsaW5lLWhlaWdodDogMTtcbn1cbnFkbmEtY29sdW1uLWl0ZW0gLnFkbmEtbGVmdC1zZWN0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxNnB4O1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG5xZG5hLWNvbHVtbi1pdGVtIC5xZG5hLWNoZWNrYm94LXdyYXBwZXIge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbnFkbmEtY29sdW1uLWl0ZW0gLnFkbmEtY2hlY2tib3gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBtYXJnaW46IDA7XG4gIG9wYWNpdHk6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbnFkbmEtY29sdW1uLWl0ZW0gLnFkbmEtY2hlY2tib3gtdWkge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMS41cHggc29saWQgIzQwNDk5QTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxucWRuYS1jb2x1bW4taXRlbVtjaGVja2JveC1zaGFwZT1cInJvdW5kXCJdIC5xZG5hLWNoZWNrYm94LXVpIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxucWRuYS1jb2x1bW4taXRlbSAucWRuYS1jaGVja2JveC11aTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyOiBzb2xpZCAjZmZmZmZmO1xuICBib3JkZXItd2lkdGg6IDAgMnB4IDJweCAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIG9wYWNpdHk6IDA7XG59XG5xZG5hLWNvbHVtbi1pdGVtW2NoZWNrZWRdIC5xZG5hLWNoZWNrYm94LXVpIHtcbiAgYmFja2dyb3VuZDogIzQ2NTJGMztcbiAgYm9yZGVyLWNvbG9yOiAjNDY1MkYzO1xufVxucWRuYS1jb2x1bW4taXRlbVtjaGVja2VkXSAucWRuYS1jaGVja2JveC11aTo6YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xufVxucWRuYS1jb2x1bW4taXRlbTpub3QoW2NoZWNrYm94LXN0YXRlPVwiZGlzYWJsZWRcIl0pXG4ucWRuYS1jaGVja2JveC13cmFwcGVyOmhvdmVyIC5xZG5hLWNoZWNrYm94LXVpIHtcbiAgYm9yZGVyLWNvbG9yOiAjNDY1MkYzO1xufVxucWRuYS1jb2x1bW4taXRlbTpmb2N1cy13aXRoaW4gLnFkbmEtY2hlY2tib3gtdWkge1xuICBvdXRsaW5lOiAycHggc29saWQgcmdiYSg3MCwgODIsIDI0MywgMC4zNSk7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5xZG5hLWNvbHVtbi1pdGVtW2NoZWNrYm94LXN0YXRlPVwiZGlzYWJsZWRcIl0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbnFkbmEtY29sdW1uLWl0ZW1bY2hlY2tib3gtc3RhdGU9XCJkaXNhYmxlZFwiXSAucWRuYS1jaGVja2JveC11aSB7XG4gIGJhY2tncm91bmQ6ICNGMkY0Rjc7XG4gIGJvcmRlci1jb2xvcjogI0QwRDVERDtcbn1cbnFkbmEtY29sdW1uLWl0ZW1bY2hlY2tib3gtc3RhdGU9XCJkaXNhYmxlZFwiXVtjaGVja2VkXVxuLnFkbmEtY2hlY2tib3gtdWk6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjMTAxODI4O1xufVxucWRuYS1jb2x1bW4taXRlbVtjaGVja2JveC1zdGF0ZT1cImRpc2FibGVkXCJdIC5xZG5hLWNvbHVtbi1jb21wb25lbnQge1xuICBvcGFjaXR5OiAwLjY7XG59XG5xZG5hLWNvbHVtbi1pdGVtIC5xZG5hLXZpc2liaWxpdHkge1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6IFwiTWF0ZXJpYWwgRGVzaWduIEljb25zXCI7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY29sb3I6ICM0MDQ5OUE7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxucWRuYS1jb2x1bW4taXRlbTpub3QoW3Zpc2liaWxpdHk9XCJoaWRkZW5cIl0pIC5xZG5hLXZpc2liaWxpdHk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDFEQlwiO1xufVxucWRuYS1jb2x1bW4taXRlbVt2aXNpYmlsaXR5PVwiaGlkZGVuXCJdIC5xZG5hLXZpc2liaWxpdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxucWRuYS1jb2x1bW4taXRlbSAucWRuYS1jb2x1bW4tbGFiZWwge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiAjNDA0OTlBO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbnFkbmEtY29sdW1uLWl0ZW0gLnFkbmEtcmlnaHQtc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmbGV4LXNocmluazogMDtcbn1cbnFkbmEtY29sdW1uLWl0ZW0gLnFkbmEtY29sdW1uLW1lc3NhZ2Uge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNDA0OTlBO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5xZG5hLWNvbHVtbi1pdGVtW21lc3NhZ2VdIC5xZG5hLWNvbHVtbi1tZXNzYWdlIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbnFkbmEtY29sdW1uLWl0ZW0gLnFkbmEtbWVzc2FnZS10aWNrIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5xZG5hLWNvbHVtbi1pdGVtW21lc3NhZ2VdIC5xZG5hLW1lc3NhZ2UtdGljayB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5xZG5hLWNvbHVtbi1pdGVtIC5xZG5hLW1lc3NhZ2UtdGljazo6YmVmb3JlIHtcbiAgY29udGVudDogXCLinJNcIjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICM0MDQ5OUE7XG59XG4iLCJAdXNlIFwic2FzczptYXBcIjtcblxuam9iLWNhcmQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC0tYmctbGlnaHQ6ICNmMmY0Zjc7XG4gIC0tYmctZGFyazogI2YyZjRmNztcbn1cblxuXG5qb2ItY2FyZCAuam9iLWNhcmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1saWdodCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMGQ1ZGQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogOHB4IDEwcHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmpvYi1jYXJkOmhvdmVyIC5qb2ItY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJnLWRhcmspO1xufVxuXG5qb2ItY2FyZFtzdGF0dXM9XCJzY2hlZHVsZWRcIl0ge1xuICAtLWJnLWxpZ2h0OiAjZjJmNGY3O1xuICAtLWJnLWRhcms6ICNkMGQ1ZGQ7XG59XG5cbmpvYi1jYXJkW3N0YXR1cz1cIm92ZXJkdWVcIl0ge1xuICAtLWJnLWxpZ2h0OiAjZmRlMmU3O1xuICAtLWJnLWRhcms6ICNmN2JmYzg7XG59XG5cbmpvYi1jYXJkW3N0YXR1cz1cImluLXByb2dyZXNzXCJdIHtcbiAgLS1iZy1saWdodDogI2ZmZjZkMTtcbiAgLS1iZy1kYXJrOiAjZmZlOWE2O1xufVxuXG5cbmpvYi1jYXJkW3N0YXR1cz1cImNvbXBsZXRlZFwiXSB7XG4gIC0tYmctbGlnaHQ6ICNlNmY3ZWM7XG4gIC0tYmctZGFyazogI2M2ZWZkOTtcbn1cblxuLyogRHJhZyAvIEFjdGl2ZSBTdGF0ZSAqL1xuXG5qb2ItY2FyZFtzdGF0ZT1cImRyYWdcIl0ge1xuICAtLWJnLWxpZ2h0OiAjZWVmNGZmO1xuICAtLWJnLWRhcms6ICNkYmU0ZmY7XG59XG5cbmpvYi1jYXJkW3N0YXRlPVwiZHJhZ1wiXSAuam9iLWNhcmQge1xuICBvcGFjaXR5OiAwLjY7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG5cbmpvYi1jYXJkW3N0YXRlPVwiYWN0aXZlXCJdIHtcbiAgLS1iZy1saWdodDogI2VlZjRmZjtcbiAgLS1iZy1kYXJrOiAjZGJlNGZmO1xufVxuXG5cbmpvYi1jYXJkIC5yb3ctdGltZSxcbmpvYi1jYXJkIC5yb3ctdXNlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiA4cHg7XG59XG5cbmpvYi1jYXJkIC5yb3ctdXNlciB7XG4gIG1hcmdpbi10b3A6IDZweDtcbn1cblxuXG5qb2ItY2FyZCAuYXZhdGFyIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogI2U0ZTdlYztcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbmpvYi1jYXJkIC5hdmF0YXIgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5cblxuam9iLWNhcmQgLnVzZXJuYW1lIHtcbiAgZmxleDogMTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG5qb2ItY2FyZCAudGltZSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuXG5cbmpvYi1jYXJkW3NpemU9XCJzbVwiXSAucm93LXRpbWUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5qb2ItY2FyZFtzaXplPVwic21cIl0gLnJvdy11c2VyIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuam9iLWNhcmRbc2l6ZT1cInNtXCJdIC51c2VybmFtZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbiIsInFkbmEtZHJvcGRvd24tbWVudSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7IFxuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbnFkbmEtZHJvcGRvd24tbWVudS5kcm9wZG93bi1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbnFkbmEtZHJvcGRvd24tbWVudSBkcm9wZG93bi10cmlnZ2VyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMTAwJTtcbn1cblxucWRuYS1kcm9wZG93bi1tZW51IGRyb3Bkb3duLXRyaWdnZXIgPiAqIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbnFkbmEtZHJvcGRvd24tbWVudSBkcm9wZG93biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDk5OTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgcGFkZGluZzogNHB4IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwOyBcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG5xZG5hLWRyb3Bkb3duLW1lbnUuZHJvcGRvd24tb3BlbiBkcm9wZG93biB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5xZG5hLWRyb3Bkb3duLW1lbnUuZHJvcGRvd24tc2l6ZS1zbSBkcm9wZG93biB7IGZvbnQtc2l6ZTogMTJweDsgfVxucWRuYS1kcm9wZG93bi1tZW51LmRyb3Bkb3duLXNpemUtbWQgZHJvcGRvd24geyBmb250LXNpemU6IDE0cHg7IH1cbnFkbmEtZHJvcGRvd24tbWVudS5kcm9wZG93bi1zaXplLWxnIGRyb3Bkb3duIHsgZm9udC1zaXplOiAxNnB4OyB9XG5cbmRyb3Bkb3duLW9wdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZTtcbn1cblxuZHJvcGRvd24tb3B0aW9uOmhvdmVyIHsgYmFja2dyb3VuZDogI2Y1ZjZmYTsgfVxuZHJvcGRvd24tb3B0aW9uLnNlbGVjdGVkIHsgYmFja2dyb3VuZDogI2VlZjJmZjsgY29sb3I6ICM0MDQ5OWE7IH1cbmRyb3Bkb3duLW9wdGlvbi5kaXNhYmxlZCB7IG9wYWNpdHk6IDAuNTsgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG5xZG5hLWRyb3Bkb3duLW1lbnUgZHJvcGRvd24ge1xuICBtYXgtaGVpZ2h0OiAyNjBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxucWRuYS1kcm9wZG93bi1tZW51IGRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiA2cHg7IH1cbnFkbmEtZHJvcGRvd24tbWVudSBkcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgeyBiYWNrZ3JvdW5kOiAjY2NjOyBib3JkZXItcmFkaXVzOiA0cHg7IH1cblxuZHJvcGRvd24tZGl2aWRlciB7IGRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IDFweDsgbWFyZ2luOiA0cHggMDsgYmFja2dyb3VuZDogI2VlZTsgfVxuZHJvcGRvd24tbGFiZWwgeyBkaXNwbGF5OiBibG9jazsgZm9udC1zaXplOiAxMnB4OyBwYWRkaW5nOiA0cHggOHB4OyBjb2xvcjogIzg4ODsgfVxuXG5xZG5hLWRyb3Bkb3duLW1lbnUuZHJvcGRvd24tb3BlbiBkcm9wZG93biB7XG4gIGFuaW1hdGlvbjogZHJvcGRvd25GYWRlIDAuMTVzIGVhc2U7XG59XG5cbkBrZXlmcmFtZXMgZHJvcGRvd25GYWRlIHtcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpOyB9XG4gIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59IiwiQHVzZSBcInNhc3M6bWFwXCI7XG5xZG5hLXRvZ2dsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLnFkbmEtdG9nZ2xlLXJvb3Qge1xuICAtLXRvZ2dsZS1vZmY6ICNkMGQ1ZGQ7XG4gIC0tdG9nZ2xlLW9uOiAjNDYyNWYzO1xuICAtLXRvZ2dsZS10aHVtYjogI2ZmZmZmZjtcbiAgLS10b2dnbGUtZm9jdXM6IHJnYmEoOCwgMTE3LCAyMjYsIC4zNSk7XG59XG4ucWRuYS10b2dnbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRvZ2dsZS1vZmYpO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMjVzIGVhc2UsIGJveC1zaGFkb3cgLjI1cyBlYXNlO1xufVxuLnFkbmEtdG9nZ2xlLXRodW1iIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10b2dnbGUtdGh1bWIpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRvcDogMnB4O1xuICBsZWZ0OiAycHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMjVzIGVhc2U7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsMCwwLC4yNSk7XG59XG5cbi50b2dnbGUtY2hlY2tlZCAucWRuYS10b2dnbGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10b2dnbGUtb24pO1xufVxuXG4udG9nZ2xlLWNoZWNrZWQgLnFkbmEtdG9nZ2xlLXRodW1iIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xufVxuLnRvZ2dsZS1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IC41O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuXG4udG9nZ2xlLXNpemUtc20gLnFkbmEtdG9nZ2xlIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMThweDtcbn1cblxuLnRvZ2dsZS1zaXplLXNtIC5xZG5hLXRvZ2dsZS10aHVtYiB7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG59XG5cbi50b2dnbGUtc2l6ZS1tZCAucWRuYS10b2dnbGUge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiAyMnB4O1xufVxuXG4udG9nZ2xlLXNpemUtbWQgLnFkbmEtdG9nZ2xlLXRodW1iIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbn1cblxuLnRvZ2dsZS1zaXplLWxnIC5xZG5hLXRvZ2dsZSB7XG4gIHdpZHRoOiA1MnB4O1xuICBoZWlnaHQ6IDI4cHg7XG59XG5cbi50b2dnbGUtc2l6ZS1sZyAucWRuYS10b2dnbGUtdGh1bWIge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xufVxuXG4iLCJAdXNlIFwic2FzczptYXBcIjtcbnFkbmEtZHVlLWRhdGUge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAxO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiB2YXIoLS1UZXh0LUJvZHksICMwQjBCMEQpO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogdmFyKC0tTGluZS1IZWlnaHQtQm9keS1Cb2R5LVNtYWxsLCAyMHB4KTsgLyogMTY2LjY2NyUgKi9cbn1cblxucWRuYS1kdWUtZGF0ZS5zdGF0dXMtY29tcGxldGUge1xuICBjb2xvcjojNDI4QjZFO1xufVxuXG5xZG5hLWR1ZS1kYXRlLnN0YXR1cy1jb21wbGV0ZSBpIHtcbiAgY29sb3I6IzQyOEI2RTtcbn1cbnFkbmEtZHVlLWRhdGUuc3RhdHVzLXByb2dyZXNzIHtcbiAgY29sb3I6ICNFRjhFMDI7XG59XG5cbnFkbmEtZHVlLWRhdGUuc3RhdHVzLXByb2dyZXNzIGkge1xuICBjb2xvcjojRUY4RTAyO1xufVxucWRuYS1kdWUtZGF0ZS5zdGF0dXMtb3Blbi5wcmlvcml0eS1oaWdoLFxucWRuYS1kdWUtZGF0ZS5zdGF0dXMtZGVhZGxpbmUucHJpb3JpdHktaGlnaCB7XG4gIGNvbG9yOiAjRkYzQTMwO1xufVxucWRuYS1kdWUtZGF0ZS5zdGF0dXMtb3Blbi5wcmlvcml0eS1taWQsXG5xZG5hLWR1ZS1kYXRlLnN0YXR1cy1kZWFkbGluZS5wcmlvcml0eS1taWQge1xuICBjb2xvcjogI0VGOEUwMjtcbn1cbnFkbmEtZHVlLWRhdGUuc3RhdHVzLW9wZW4ucHJpb3JpdHktc3VjY2VzcyxcbnFkbmEtZHVlLWRhdGUuc3RhdHVzLWRlYWRsaW5lLnByaW9yaXR5LXN1Y2Nlc3Mge1xuICBjb2xvcjogIzQyOEI2RTtcbn1cblxucWRuYS1kdWUtZGF0ZS5zdGF0dXMtb3BlbiBpLFxucWRuYS1kdWUtZGF0ZS5zdGF0dXMtZGVhZGxpbmUgaSB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuIiwiXG5bcWRuYS10b29sdGlwXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG5cbiAgLS10b29sdGlwLWJnOiAjNDA0OTlBO1xuICAtLXRvb2x0aXAtdGV4dDogI2ZmZmZmZjtcbiAgLS10b29sdGlwLXJhZGl1czogNHB4O1xuICAtLXRvb2x0aXAtZ2FwOiA2cHg7XG5cbiAgLS10b29sdGlwLXBhZGRpbmc6IDRweCA4cHg7XG4gIC0tdG9vbHRpcC1mb250OiAxNHB4O1xufVxuXG4vL25vIGFycm93XG5bcWRuYS10b29sdGlwXTpub3QoW3Rvb2x0aXAtdHlwZT1cImFycm93XCJdKTo6YmVmb3JlIHtcbiAgY29udGVudDogYXR0cihxZG5hLXRvb2x0aXApO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgYm90dG9tOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tdG9vbHRpcC1nYXApO1xuXG4gIGJhY2tncm91bmQ6IHZhcigtLXRvb2x0aXAtYmcpO1xuICBjb2xvcjogdmFyKC0tdG9vbHRpcC10ZXh0KTtcbiAgcGFkZGluZzogdmFyKC0tdG9vbHRpcC1wYWRkaW5nKTtcbiAgZm9udC1zaXplOiB2YXIoLS10b29sdGlwLWZvbnQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS10b29sdGlwLXJhZGl1cyk7XG5cbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBtYXgtd2lkdGg6IDIyMHB4O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IDAuMTVzIGVhc2U7XG4gIHotaW5kZXg6IDk5OTk7XG59XG5cbltxZG5hLXRvb2x0aXBdOmhvdmVyOm5vdChbdG9vbHRpcC10eXBlPVwiYXJyb3dcIl0pOjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xufVxuXG4vL3dpdGggYXJyb3dcblt0b29sdGlwLXR5cGU9XCJhcnJvd1wiXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnFkbmEtdG9vbHRpcC1ib3gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRvb2x0aXAtYmcpO1xuICBjb2xvcjogdmFyKC0tdG9vbHRpcC10ZXh0KTtcbiAgcGFkZGluZzogdmFyKC0tdG9vbHRpcC1wYWRkaW5nKTtcbiAgZm9udC1zaXplOiB2YXIoLS10b29sdGlwLWZvbnQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS10b29sdGlwLXJhZGl1cyk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIG1heC13aWR0aDogMjIwcHg7XG5cbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IDAuMTVzIGVhc2U7XG4gIHotaW5kZXg6IDk5OTk7XG59XG5cbi5xZG5hLXRvb2x0aXAtYm94LnNob3cge1xuICBvcGFjaXR5OiAxO1xufVxuXG4ucWRuYS10b29sdGlwLXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG5cbi5xZG5hLXRvb2x0aXAtYm9keSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLy9hcnJvd1xuLnFkbmEtdG9vbHRpcC1hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRvb2x0aXAtYmcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5cbi8vcHNpdGlvblxuW3Rvb2x0aXAtdHlwZT1cImFycm93XCJdOm5vdChbdG9vbHRpcC1wb3NpdGlvbl0pIC5xZG5hLXRvb2x0aXAtYm94LFxuW3Rvb2x0aXAtcG9zaXRpb249XCJ0b3BcIl0gLnFkbmEtdG9vbHRpcC1ib3gge1xuICBib3R0b206IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoY2FsYygtMSAqIHZhcigtLXRvb2x0aXAtZ2FwKSkpO1xufVxuXG5bdG9vbHRpcC10eXBlPVwiYXJyb3dcIl06bm90KFt0b29sdGlwLXBvc2l0aW9uXSkgLnFkbmEtdG9vbHRpcC1hcnJvdyxcblt0b29sdGlwLXBvc2l0aW9uPVwidG9wXCJdIC5xZG5hLXRvb2x0aXAtYXJyb3cge1xuICBib3R0b206IC00cHg7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG59XG5cblt0b29sdGlwLXBvc2l0aW9uPVwiYm90dG9tXCJdIC5xZG5hLXRvb2x0aXAtYm94IHtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKHZhcigtLXRvb2x0aXAtZ2FwKSk7XG59XG5cblt0b29sdGlwLXBvc2l0aW9uPVwiYm90dG9tXCJdIC5xZG5hLXRvb2x0aXAtYXJyb3cge1xuICB0b3A6IC00cHg7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG59XG5cblt0b29sdGlwLXBvc2l0aW9uPVwibGVmdFwiXSAucWRuYS10b29sdGlwLWJveCB7XG4gIHJpZ2h0OiAxMDAlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoY2FsYygtMSAqIHZhcigtLXRvb2x0aXAtZ2FwKSkpO1xufVxuXG5bdG9vbHRpcC1wb3NpdGlvbj1cImxlZnRcIl0gLnFkbmEtdG9vbHRpcC1hcnJvdyB7XG4gIHJpZ2h0OiAtNHB4O1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG59XG5cblt0b29sdGlwLXBvc2l0aW9uPVwicmlnaHRcIl0gLnFkbmEtdG9vbHRpcC1ib3gge1xuICBsZWZ0OiAxMDAlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgodmFyKC0tdG9vbHRpcC1nYXApKTtcbn1cblxuW3Rvb2x0aXAtcG9zaXRpb249XCJyaWdodFwiXSAucWRuYS10b29sdGlwLWFycm93IHtcbiAgbGVmdDogLTRweDtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xufVxuXG4vL2NvbG9ycyBmb3IgdG9vbHRpcFxuXG5bcWRuYS10b29sdGlwXTpub3QoW3Rvb2x0aXAtdHlwZT1cImFycm93XCJdKVt0b29sdGlwLWNvbG9yPVwicHVycGxlXCJdIHtcbiAgLS10b29sdGlwLWJnOiAjNDA0OTlBO1xuICAtLXRvb2x0aXAtdGV4dDogI2ZmZmZmZjtcbn1cblxuW3FkbmEtdG9vbHRpcF06bm90KFt0b29sdGlwLXR5cGU9XCJhcnJvd1wiXSlbdG9vbHRpcC1jb2xvcj1cImxpZ2h0LXB1cnBsZVwiXSB7XG4gIC0tdG9vbHRpcC1iZzogI0RBRERGMjtcbiAgLS10b29sdGlwLXRleHQ6ICM0MDQ5OUE7XG59XG5cbltxZG5hLXRvb2x0aXBdOm5vdChbdG9vbHRpcC10eXBlPVwiYXJyb3dcIl0pW3Rvb2x0aXAtY29sb3I9XCJncmV5XCJdIHtcbiAgLS10b29sdGlwLWJnOiAjQzRDN0NDO1xuICAtLXRvb2x0aXAtdGV4dDogIzBCMEIwRDtcbn1cblxuW3FkbmEtdG9vbHRpcF06bm90KFt0b29sdGlwLXR5cGU9XCJhcnJvd1wiXSlbdG9vbHRpcC1jb2xvcj1cImxpZ2h0LWdyZXlcIl0ge1xuICAtLXRvb2x0aXAtYmc6ICNFMUUzRTY7XG4gIC0tdG9vbHRpcC10ZXh0OiAjNkI3MjgwO1xufVxuXG4vL2NvbG9ycyBmb3IgYXJyb3cgdG9vbHRpcFxuW3Rvb2x0aXAtdHlwZT1cImFycm93XCJdW3Rvb2x0aXAtY29sb3I9XCJwdXJwbGVcIl0ge1xuICAtLXRvb2x0aXAtYmc6ICM0MDQ5OUE7XG4gIC0tdG9vbHRpcC10ZXh0OiAjZmZmZmZmO1xufVxuXG5bdG9vbHRpcC10eXBlPVwiYXJyb3dcIl1bdG9vbHRpcC1jb2xvcj1cImxpZ2h0LXB1cnBsZVwiXSB7XG4gIC0tdG9vbHRpcC1iZzogI0RBRERGMjtcbiAgLS10b29sdGlwLXRleHQ6ICM0MDQ5OUE7XG59XG5cblt0b29sdGlwLXR5cGU9XCJhcnJvd1wiXVt0b29sdGlwLWNvbG9yPVwid2hpdGVcIl0ge1xuICAtLXRvb2x0aXAtYmc6ICNmZmZmZmY7XG4gIC0tdG9vbHRpcC10ZXh0OiAjNDA0OTlBO1xufVxuXG4vL3dpdGhvdXQgYXJyb3coc21hbGwpXG5bcWRuYS10b29sdGlwXTpub3QoW3Rvb2x0aXAtdHlwZT1cImFycm93XCJdKVt0b29sdGlwLXNpemU9XCJzbVwiXSB7XG4gIC0tdG9vbHRpcC1wYWRkaW5nOiAwcHggOHB4O1xuICAtLXRvb2x0aXAtZm9udDogMTJweDtcbn1cblxuLy9hcnJvdyhzbWFsbClcblt0b29sdGlwLXR5cGU9XCJhcnJvd1wiXVt0b29sdGlwLXNpemU9XCJzbVwiXSB7XG4gIC0tdG9vbHRpcC1wYWRkaW5nOiAycHggOHB4O1xuICAtLXRvb2x0aXAtZm9udDogMTBweDtcbn1cblxuLy9hcnJvdyhsYXJnZS1kZWZhdWx0KVxuW3Rvb2x0aXAtdHlwZT1cImFycm93XCJdOm5vdChbdG9vbHRpcC1zaXplXSksXG5bdG9vbHRpcC10eXBlPVwiYXJyb3dcIl1bdG9vbHRpcC1zaXplPVwibGdcIl0ge1xuICAtLXRvb2x0aXAtcGFkZGluZzogMTBweCAxMnB4O1xuICAtLXRvb2x0aXAtZm9udDogMTNweDtcbn1cblxuLy9EaXNhYmxlIHRvb2x0aXAgd2hlbiBlbGVtZW50IGlzIGRpc2FibGVkIFxuW3FkbmEtdG9vbHRpcF1bZGlzYWJsZWRdLFxuW3FkbmEtdG9vbHRpcF0uZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuXG5bcWRuYS10b29sdGlwXVtkaXNhYmxlZF06OmJlZm9yZSxcbltxZG5hLXRvb2x0aXBdLmRpc2FibGVkOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cblxuW3FkbmEtdG9vbHRpcF1bZGlzYWJsZWRdIC5xZG5hLXRvb2x0aXAtYm94LFxuW3FkbmEtdG9vbHRpcF0uZGlzYWJsZWQgLnFkbmEtdG9vbHRpcC1ib3gge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59IiwiJHByaW1hcnk6ICM0NjUyRjM7XG4kZm9jdXM6ICM0MDQ5OUE7XG4kc3VjY2VzczogIzQyOEI2RTsgXG4kc3VjY2Vzcy1iZzogIzZFRTdCNztcbiRlcnJvcjogI0M2NUE1QTtcbiRlcnJvci1iZzogI0Y4NzE3MTtcbiRib3JkZXItZGVmYXVsdDogI0M0QzdDQztcbiR3aGl0ZTogI0ZGRkZGRjtcbiRkaXNhYmxlZC1iZzogI0YwRjFGMjtcbiRkaXNhYmxlZC1ib3JkZXI6ICNDNEM3Q0M7XG4kZGlzYWJsZWQtaWNvbjogIzg5OEU5OTtcblxuLnFkbmEtY2hlY2tib3gge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGlucHV0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogMDtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gIC5jaGVja2JveC1ib3gge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItZGVmYXVsdDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtc2hhcGU9XCJyb3VuZFwiXSAuY2hlY2tib3gtYm94IHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIH1cblxuICAmOm5vdCguZGlzYWJsZWQpOmhvdmVyIGlucHV0Om5vdCg6Y2hlY2tlZCkgKyAuY2hlY2tib3gtYm94IHtcbiAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5O1xuICB9XG5cbiAgJjpmb2N1cy13aXRoaW4gLmNoZWNrYm94LWJveDo6YmVmb3JlLFxuICAmW3N0YXRlPVwiZm9jdXNcIl0gLmNoZWNrYm94LWJveDo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIC5jaGVja2JveC1ib3gge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5O1xuICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnk7XG4gIH1cblxuICBpbnB1dDpjaGVja2VkICsgLmNoZWNrYm94LWJveDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblxuICAgIC13ZWJraXQtbWFzazogdXJsKFwiL2ltZy9jaGVjay5zdmdcIikgbm8tcmVwZWF0IGNlbnRlciAvIDEycHg7XG4gICAgbWFzazogdXJsKFwiL2ltZy9jaGVjay5zdmdcIikgbm8tcmVwZWF0IGNlbnRlciAvIDEycHg7XG4gIH1cblxuICAmLmluZGV0ZXJtaW5hdGUtdHlwZSB7XG5cbiAgICBpbnB1dDpjaGVja2VkICsgLmNoZWNrYm94LWJveDo6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNnB4O1xuICAgICAgbGVmdDogM3B4O1xuICAgICAgd2lkdGg6IDhweDtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgICAgLXdlYmtpdC1tYXNrOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBtYXNrOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgQG1peGluIHN0YXRlKCRib3JkZXIsICRiZykge1xuICAgIGlucHV0Om5vdCg6Y2hlY2tlZCkgKyAuY2hlY2tib3gtYm94IHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkICsgLmNoZWNrYm94LWJveCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmc7XG4gICAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLXN0YXRlPVwic3VjY2Vzc1wiXSB7XG4gICAgQGluY2x1ZGUgc3RhdGUoJHN1Y2Nlc3MsICRzdWNjZXNzLWJnKTtcbiAgfVxuXG4gICZbZGF0YS1zdGF0ZT1cImVycm9yXCJdIHtcbiAgICBAaW5jbHVkZSBzdGF0ZSgkZXJyb3IsICRlcnJvci1iZyk7XG4gIH1cblxuICAmLmRpc2FibGVkIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBvcGFjaXR5OiAwLjY7XG5cbiAgICBpbnB1dCArIC5jaGVja2JveC1ib3gge1xuICAgICAgYmFja2dyb3VuZDogJGRpc2FibGVkLWJnO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkZGlzYWJsZWQtYm9yZGVyO1xuICAgIH1cblxuICAgIGlucHV0OmNoZWNrZWQgKyAuY2hlY2tib3gtYm94IHtcbiAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkICsgLmNoZWNrYm94LWJveDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpc2FibGVkLWljb247XG4gICAgfVxuICB9XG5cbiAgLmNoZWNrYm94LWxhYmVsIHtcbiAgICBjb2xvcjogIzMzMztcbiAgfVxufSIsIlxuJHByaW1hcnk6IzQ2NTJGMztcbiRib3JkZXItZGVmYXVsdDogI0M0QzdDQztcbiR3aGl0ZTogI0ZGRkZGRjtcblxuJHN1Y2Nlc3M6ICM0MjhCNkU7XG4kZXJyb3I6ICNDNjVBNUE7XG5cbiRkaXNhYmxlZC1iZzogI0UwRTBFMDtcbiRkaXNhYmxlZC1ib3JkZXI6ICNDNEM3Q0M7XG4kZGlzYWJsZWQtZG90OiAjOUU5RTlFO1xuXG5xZG5hLXJhZGlvIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xufVxuLnFkbmEtcmFkaW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGlucHV0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuICAucmFkaW8tY2lyY2xlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWRlZmF1bHQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB3aWR0aDogNHB4O1xuICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGluc2V0OiAtNHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcblxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICRwcmltYXJ5O1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG4gICAgfVxuICB9XG5cbiAgJjpub3QoLmRpc2FibGVkKTpob3ZlciBpbnB1dDpub3QoOmNoZWNrZWQpICsgLnJhZGlvLWNpcmNsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeTtcbiAgfVxuXG4gIGlucHV0OmNoZWNrZWQgKyAucmFkaW8tY2lyY2xlIHtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcbiAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5O1xuICB9XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIC5yYWRpby1jaXJjbGU6OmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxOyBcbiAgfVxuXG4gIEBtaXhpbiBzdGF0ZSgkY29sb3IpIHtcbiAgICBpbnB1dDpub3QoOmNoZWNrZWQpICsgLnJhZGlvLWNpcmNsZSB7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkICsgLnJhZGlvLWNpcmNsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gIH1cblxuICAmW2RhdGEtc3RhdGU9XCJzdWNjZXNzXCJdIHtcbiAgICBAaW5jbHVkZSBzdGF0ZSgkc3VjY2Vzcyk7XG4gIH1cblxuICAmW2RhdGEtc3RhdGU9XCJlcnJvclwiXSB7XG4gICAgQGluY2x1ZGUgc3RhdGUoJGVycm9yKTtcbiAgfVxuXG4gICYuZGlzYWJsZWQge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIG9wYWNpdHk6IDAuNjtcblxuICAgIGlucHV0Om5vdCg6Y2hlY2tlZCkgKyAucmFkaW8tY2lyY2xlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkaXNhYmxlZC1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWJvcmRlcjtcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkICsgLnJhZGlvLWNpcmNsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICBib3JkZXItY29sb3I6ICRkaXNhYmxlZC1ib3JkZXI7XG4gICAgfVxuXG4gICAgaW5wdXQ6Y2hlY2tlZCArIC5yYWRpby1jaXJjbGU6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkaXNhYmxlZC1kb3Q7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIC5yYWRpby1sYWJlbCB7XG4gICAgY29sb3I6ICMzMzM7XG4gIH1cbn0iLCJxZG5hLW1lbnUtaXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubWVudS1pdGVtX19jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogOHB4O1xuXG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2U7XG59XG5cbi5tZW51LWl0ZW1fX2NvbnRhaW5lcjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG59XG5cbi5tZW51LWl0ZW1fX2xlZnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLy9DT05UUk9MIChjaGVja2JveCAvIHJhZGlvKVxuLm1lbnUtaXRlbV9fY29udHJvbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ubWVudS1pdGVtX19wcmVmaXgge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICBtaW4td2lkdGg6IDIwcHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ubWVudS1pdGVtX19sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ubWVudS1pdGVtX19zdWZmaXgge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICBtaW4td2lkdGg6IDIwcHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ubWVudS1pdGVtX19wcmVmaXggaSxcbi5tZW51LWl0ZW1fX3N1ZmZpeCBpIHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG5xZG5hLW1lbnUtaXRlbVtkaXNhYmxlZF0gLm1lbnUtaXRlbV9fY29udGFpbmVyIHtcbiAgb3BhY2l0eTogMC41O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn0iLCJAdXNlIFwic2FzczpsaXN0XCI7XG5AdXNlIFwic2Fzczpjb2xvclwiO1xuXG4uYXZhdGFyIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG4gIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC5hdmF0YXItY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICB9XG59XG5cblxuLmF2YXRhci14cyB7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IGZvbnQtc2l6ZTogMTJweDsgfVxuLmF2YXRhci1zbSB7IHdpZHRoOiAzNHB4OyBoZWlnaHQ6IDM0cHg7IGZvbnQtc2l6ZTogMTJweDsgfVxuLmF2YXRhci1tZCB7IHdpZHRoOiA0OHB4OyBoZWlnaHQ6IDQ4cHg7IGZvbnQtc2l6ZTogMTZweDsgfVxuLmF2YXRhci1sZyB7IHdpZHRoOiA2NHB4OyBoZWlnaHQ6IDY0cHg7IGZvbnQtc2l6ZTogMThweDsgfVxuXG4kY29sb3JzOiAoXG4gIFwiZ3JlZW5cIjogKCM0MjhCNkUsICNDNUY1RTIpLFxuICBcInBpbmtcIjogKCNDNjVBNUEsICNGODcxNzEpLFxuICBcInllbGxvd1wiOiAoI0I3NzkxRiwgI0ZERTY4QSksXG4gIFwiYmx1ZVwiOiAoIzJCNkNCMCwgI0JGREJGRSksXG4gIFwiZ3JleVwiOiAoI0M0QzdDQywgI0U1RTdFQiksXG4gIFwicmVkXCI6ICgjQjkxQzFDLCAjRkNBNUE1KVxuKTtcblxuQGVhY2ggJG5hbWUsICRwYWlyIGluICRjb2xvcnMge1xuICAuYXZhdGFyLS0jeyRuYW1lfSB7XG4gICAgJGJvcmRlcjogbGlzdC5udGgoJHBhaXIsIDEpO1xuICAgICRiZzogbGlzdC5udGgoJHBhaXIsIDIpO1xuXG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRiZztcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogY29sb3IuYWRqdXN0KCRiZywgJGxpZ2h0bmVzczogLTUlKTtcbiAgICAgIGJvcmRlci1jb2xvcjogY29sb3IuYWRqdXN0KCRib3JkZXIsICRsaWdodG5lc3M6IC01JSk7XG4gICAgfVxuXG4gICAgJi5pcy1zZWxlY3RlZCB7XG4gICAgICBiYWNrZ3JvdW5kOiBjb2xvci5hZGp1c3QoJGJnLCAkbGlnaHRuZXNzOiA1JSk7XG4gICAgICBib3JkZXItY29sb3I6IGNvbG9yLmFkanVzdCgkYm9yZGVyLCAkbGlnaHRuZXNzOiA1JSk7XG4gICAgfVxuICB9XG59IiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZS5cbi8vIENvbXBpbGVkIGludG8gd2ViL2Nzcy92MS9zdHlsZS12MS5jc3MgdmlhIHNjc3MvY29tcG9uZW50cy9jb21wb25lbnRzLnNjc3Ncbi8vIChndWxwIFwic2Fzcy12MVwiKS4gRWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuLy9cbi8vIHFkbmFwcm8tYWNjb3VudC1jYXJkXG4vLyAgIEFjY291bnQgLyBwcm9maWxlIGRyb3Bkb3duIGNhcmQuIENhcmQgY2hyb21lIG1pcnJvcnMgcWRuYXByby1tZW51XG4vLyAgIChuZXV0cmFsKS4gSGVhZGVyID0gYXZhdGFyICsgbmFtZSArIGVtYWlsLCB0aGVuIGEgZGl2aWRlciwgdGhlbiB0aGVcbi8vICAgc2xvdHRlZCBxZG5hcHJvLW1lbnUtaXRlbSByb3dzLlxuLy9cbi8vIFFETkEgdG9rZW5zIHVzZWQ6XG4vLyAgIFN1cmZhY2UvV2hpdGUgICAgICAgICAgICAjZmZmZmZmICAgY2FyZCBiYWNrZ3JvdW5kXG4vLyAgIEJvcmRlci9OZXV0cmFsICAgICAgICAgICAjYzRjN2NjICAgY2FyZCBib3JkZXJcbi8vICAgVGV4dC9Pbi1Cb2R5ICAgICAgICAgICAgICMwYjBiMGQgICBuYW1lXG4vLyAgIFRleHQvU2Vjb25kYXJ5ICAgICAgICAgICAjNmI3MjgwICAgZW1haWxcblxuLnFkbmFwcm8tYWNjb3VudC1jYXJkIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi13aWR0aDogMjgwcHg7XG4gIHBhZGRpbmc6IDhweDtcbiAgZ2FwOiA0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgOHB4IDEycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7XG59XG5cbi5xZG5hcHJvLWFjY291bnQtY2FyZCAuYWNjb3VudC1jYXJkLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIHBhZGRpbmc6IDE2cHggMTZweCAxMnB4O1xufVxuXG4ucWRuYXByby1hY2NvdW50LWNhcmQgLmFjY291bnQtY2FyZC1oZWFkZXIgcWRuYXByby1hdmF0YXIge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi5xZG5hcHJvLWFjY291bnQtY2FyZCAuYWNjb3VudC1jYXJkLW5hbWUge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG59XG5cbi5xZG5hcHJvLWFjY291bnQtY2FyZCAuYWNjb3VudC1jYXJkLWVtYWlsIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDApO1xufVxuXG4ucWRuYXByby1hY2NvdW50LWNhcmQgLmFjY291bnQtY2FyZC1pdGVtcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xufVxuXG4ucWRuYXByby1hY2NvdW50LWNhcmQgLmFjY291bnQtY2FyZC1pdGVtcyA+IHFkbmFwcm8tbWVudS1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8vIERhcmsgbW9kZVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWNjb3VudC1jYXJkIHtcbiAgYmFja2dyb3VuZDogIzJlMzAzNjtcbiAgYm9yZGVyLWNvbG9yOiAjNDA0NDRkO1xuICBib3gtc2hhZG93OiAwIDRweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMzApLCAwIDhweCAxMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMjApO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY2NvdW50LWNhcmQgLmFjY291bnQtY2FyZC1uYW1lIHtcbiAgY29sb3I6ICNmMGYxZjI7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjY291bnQtY2FyZCAuYWNjb3VudC1jYXJkLWVtYWlsIHtcbiAgY29sb3I6ICNhNmFhYjM7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9hY3Rpb24tYmFyL19hY3Rpb24tYmFyLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi8qIGNvbXBpbGVkIGZyb20gX2FjdGlvbi1iYXIuc2NzcyAqL1xuLnFkbmFwcm8tYWN0aW9uLWJhciB7XG4gICAgLS1hY3Rpb24tYmFyLWJnOiAgICAgI2ZmZmZmZjtcbiAgICAtLWFjdGlvbi1iYXItYm9yZGVyOiB2YXIoLS1jLWJvcmRlci10cmVlKTtcbiAgICAtLWFjdGlvbi1iYXItb2Zmc2V0OiAxNnB4O1xuXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGlvbi1iYXItYmcpO1xuICAgIGJvcmRlcjogMC41cHggc29saWQgdmFyKC0tYWN0aW9uLWJhci1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDFweCAzcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNSksXG4gICAgICAgIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMzApO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG4ucWRuYXByby1hY3Rpb24tYmFyID4gKiB7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLnFkbmFwcm8tYWN0aW9uLWJhci5hY3Rpb24tYmFyLWZsb2F0aW5nIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBib3R0b206IHZhcigtLWFjdGlvbi1iYXItb2Zmc2V0KTtcbiAgICB6LWluZGV4OiA5MDAwO1xufVxuXG4vKiBFZW4gb3BlbiB2ZW5zdGVyIG1hYWt0IGRlIGJhbGsgb25iZXJlaWtiYWFyLCBkdXMgaGlqIGhvb3J0IGVyIGRhbiBvb2sgbmlldCB0ZVxuICAgc3RhYW4uIFpvbmRlciBkZXplIHJlZ2VsIHZpZWwgaGlqIEVSIE9WRVJIRUVOOiAucWRuYXByby1tb2RhbCBzdGFhdCBvcFxuICAgZGV6ZWxmZGUgOTAwMCwgZW4gYmFzZS5odG1sIHpldCBkZSBiYWxrIE5BIGRlIHBhZ2luYS1pbmhvdWQgbmVlciwgZHVzIHdvbiBkZVxuICAgYmFsayBhbHRpamQgb3AgRE9NLXZvbGdvcmRlLiBWZXJoZWxwZW4gdmlhIGRlIHotaW5kZXggd2FzIGhpZXIgZGUgdmVya2VlcmRlXG4gICBrbm9wOiBkZSBmbG93LWVkaXRvciBoZWVmdCBib3ZlbiA5MDAwIGFsIGVlbiBlaWdlbiBsYWRkZXIgKDkyMDAgdm9vciBkZVxuICAgZHJvcGRvd25zIHZhbiBkZSBiYWxrIHplbGYsIDkzMDAgdm9vciBcImFsdGlqZCBib3Zlbm9wXCItdmVuc3RlcnMpLCBlbiBkaWUgem91XG4gICBkYW4gbWVlIG1vZXRlbiBzY2h1aXZlbi5cbiAgIFR3ZWUga2xhc3Nlbiwgd2FudCBkZSBiYWNrb2ZmaWNlIGhlZWZ0IHR3ZWUgc29vcnRlbiB2ZW5zdGVyczogcWRuYXByby1tb2RhbFxuICAgemV0IGBxZG5hcHJvLW1vZGFsLW9wZW5gIG9wIGRlIGJvZHksIEJvb3RzdHJhcCAobm9nIHN0ZWVkcyBpbiB2MSBnZWxhZGVuKSB6ZXRcbiAgIGBtb2RhbC1vcGVuYC4gW0tpbSAxMC4wOC4yMDI2XSAqL1xuYm9keS5xZG5hcHJvLW1vZGFsLW9wZW4gLnFkbmFwcm8tYWN0aW9uLWJhci5hY3Rpb24tYmFyLWZsb2F0aW5nLFxuYm9keS5tb2RhbC1vcGVuIC5xZG5hcHJvLWFjdGlvbi1iYXIuYWN0aW9uLWJhci1mbG9hdGluZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxucWRuYXByby1tZW51LmFjdGlvbi1iYXItbWVudS1mbG9hdGluZyB7XG4gICAgei1pbmRleDogOTIwMDtcbiAgICBhbmltYXRpb246IGFjdGlvbi1iYXItbWVudS1wb3AgMTYwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0O1xufVxuXG5Aa2V5ZnJhbWVzIGFjdGlvbi1iYXItbWVudS1wb3Age1xuICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KSBzY2FsZSgwLjk4KTsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgICBzY2FsZSgxKTsgfVxufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tYWN0aW9uLWJhcixcbltkYXRhLXRoZW1lLWRhcmtdICAucWRuYXByby1hY3Rpb24tYmFyIHtcbiAgICAtLWFjdGlvbi1iYXItYmc6ICAgICAjMmUzMDM2O1xuICAgIC0tYWN0aW9uLWJhci1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCk7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAxcHggM3B4IDFweCByZ2JhKDAsIDAsIDAsIDAuMzApLFxuICAgICAgICAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvYWN0aXZpdHktY2FyZC9fYWN0aXZpdHktY2FyZC1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuLy9cbi8vIENvbG91ciB2YWx1ZXMgYXJlIHRha2VuIGRpcmVjdGx5IGZyb20gdGhlIHFkbmFwcm8tdGFnIHRva2VuIHNvdXJjZVxuLy8gKHNjc3MvY29tcG9uZW50cy92Mi90YWcvX3RhZy5zY3NzKS4gLS1hYy10aWxlLSogY3VzdG9tIHByb3BlcnRpZXMgaG9sZFxuLy8gdGhlIGljb24tY29sb3IgcGFzdGVsIChsaWdodCArIGRhcmspOyBzdGF0dXMgb3ZlcnJpZGVzIHdpbiBvdmVyIHRoZW0gYnlcbi8vIHNldHRpbmcgdGhlIHRpbGUvYm9yZGVyL3N1cmZhY2UvdGV4dCBjb2xvdXIgZGlyZWN0bHkgKGhpZ2hlci1zcGVjaWZpY2l0eVxuLy8gc2VsZWN0b3IsIG1pcnJvcnMgdGhlIHRhc2tsaXN0LWNhcmQgW2FyY2hpdmVkXSBwYXR0ZXJuKS5cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0OHB4IDFmcjtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJ0aWxlIGJvZHlcIjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgbWluLWhlaWdodDogNjRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWMtc3VyZmFjZSwgI2ZmZmZmZik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFjLWJvcmRlciwgI2UxZTNlNik7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3V0bGluZTogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAxNTBtcyBlYXNlLW91dCwgYm9yZGVyLWNvbG9yIDE1MG1zIGVhc2Utb3V0LCB0cmFuc2Zvcm0gMTUwbXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMTUwbXMgZWFzZS1vdXQ7XG59XG5cbi8vIFdoZW4gdGhlIGJvdHRvbSBhY3Rpb24gcm93IGlzIHByZXNlbnQsIGFkZCBhIHNlY29uZCByb3cgc3Bhbm5pbmcgYm90aFxuLy8gY29sdW1ucyBiZWxvdyB0aWxlL2JvZHkuIEtpbSdzIGRlc2lnbiBkZWNpc2lvbiAxMy4wNy4yMDI2OiBicmllZmluZyBhbmRcbi8vIHJlcGVhdCBiZWNhbWUgcmVhbCBmdWxsLXdpZHRoIGJ1dHRvbnMgaW5zdGVhZCBvZiBtZXRhIHBpbGxzLiBUaGUgY2hldnJvblxuLy8gZ2x5cGggY29sdW1uIHdhcyByZW1vdmVkIGVudGlyZWx5IG9uIDEzLjA3LjIwMjYgKHRoZSB3aG9sZSBjYXJkIGlzIHRoZVxuLy8gdGFwIHRhcmdldCwgdGhlIGNoZXZyb24gb25seSBhdGUgaG9yaXpvbnRhbCBzcGFjZSkuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWhhcy1hY3Rpb25zIHtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJ0aWxlIGJvZHlcIiBcImFjdGlvbnMgYWN0aW9uc1wiO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkICosXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkICo6OmJlZm9yZSxcbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQgKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vLyBTb2Z0IG92ZXJsYXkgdXNlZCB0byBcImRlZXBlblwiIHRoZSBzdXJmYWNlIG9uIGhvdmVyL3ByZXNzLCBkcml2ZW4gYnkgYVxuLy8gY3VzdG9tIHByb3BlcnR5IHNvIG9uZSBydWxlIGNvdmVycyBib3RoIHN0YXRlcyB3aXRoIGRpZmZlcmVudCBzdHJlbmd0aC5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQ6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgb3BhY2l0eTogdmFyKC0tYWMtb3ZlcmxheS1vLCAwKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlLW91dDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQ6aG92ZXIge1xuICAgIC0tYWMtb3ZlcmxheS1vOiAwLjU7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTQpO1xuICAgIGJveC1zaGFkb3c6IDAgM3B4IDEwcHggcmdiYSgyMCwgMjUsIDgwLCAwLjA4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIH1cbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZDphY3RpdmUge1xuICAtLWFjLW92ZXJsYXktbzogMTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4NSk7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgODBtcyBlYXNlLW91dCwgdHJhbnNmb3JtIDgwbXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgODBtcyBlYXNlLW91dDtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZDpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi8qID09PSBTZWxlY3RlZCByaW5nIChcInlvdSBhcmUgaGVyZVwiLCBLaW0ncyBkZWNpc2lvbiAyMS4wOC4yMDI2IC0gcmluZyBvbmx5LFxuICAgTkVWRVIgYSBmaWxsZWQgYmFja2dyb3VuZCkgPT09XG4gICBTcGxpdC1zY3JlZW4gbGF5b3V0cyAodGFibGV0OiBhY3Rpdml0eSBsaXN0IG9uIHRoZSBsZWZ0LCB0aGUgcXVlc3Rpb25cbiAgIHBhbmVsIG9wZW4gb24gdGhlIHJpZ2h0KSBuZWVkIHRoZSBjdXJyZW50bHktb3BlbiBhY3Rpdml0eSdzIGNhcmQgdG8gYmVcbiAgIGZpbmRhYmxlIGF0IGEgZ2xhbmNlLiBUaGlzIHVzZXMgYG91dGxpbmVgLCBub3QgYGJveC1zaGFkb3dgLCBvbiBwdXJwb3NlOlxuICAgYm94LXNoYWRvdyBvbiB0aGlzIGhvc3QgaXMgYWxyZWFkeSBhIHNpbmdsZS12YWx1ZSBwcm9wZXJ0eSBmb3VnaHQgb3ZlclxuICAgYnkgOmhvdmVyIC8gOmFjdGl2ZSAvIC5hYy1wdWxzZSAvIHRoZSBpcy1mb3JjZS0qIGNsYXNzZXMgYmVsb3csIHNvIGFcbiAgIGJveC1zaGFkb3cgcmluZyB3b3VsZCBnZXQgc2lsZW50bHkgcmVwbGFjZWQgdGhlIGluc3RhbnQgYW55IG9mIHRob3NlXG4gICBmaXJlLiBgb3V0bGluZWAgaXMgaXRzIG93biBwYWludCBsYXllciAtIGluZGVwZW5kZW50IG9mIGJveC1zaGFkb3csXG4gICBib3JkZXItY29sb3IgYW5kIHRoZSA6OmFmdGVyIGhvdmVyLW92ZXJsYXkgLSBzbyBpdCBuZXZlciBnZXRzIGNsb2JiZXJlZFxuICAgYW5kIG5lZWRzIG5vICFpbXBvcnRhbnQgYW55d2hlcmUuXG4gICBgb3V0bGluZS1vZmZzZXRgIG9wZW5zIGEgZ2FwIGJldHdlZW4gdGhlIHJpbmcgYW5kIHRoZSBjYXJkJ3Mgb3duIGVkZ2UsIHNvXG4gICB0aGUgcmluZydzIGxlZ2liaWxpdHkgbmV2ZXIgZGVwZW5kcyBvbiB0aGUgY2FyZCdzIE9XTiBzdXJmYWNlIGNvbG91cjogaXRcbiAgIGFsd2F5cyByZW5kZXJzIG92ZXIgdGhlIHBhZ2UvbGlzdCBiYWNrZ3JvdW5kIGJlaGluZCB0aGUgY2FyZCwgbm90IG92ZXJcbiAgIHRoZSBjYXJkJ3MgZmlsbC4gVGhhdCBpcyB3aGF0IGtlZXBzIGl0IGVxdWFsbHkgcmVhZGFibGUgb24gdGhlXG4gICBjb21wbGV0ZWQgc3RhdHVzJ3MgZ3JlZW4gd2FzaCBhbmQgb24gdGhlIGdyYXlzY2FsZS1maWx0ZXJlZCBkaXNhYmxlZFxuICAgdGlsZS5cbiAgIEl0IGFsc28gY2Fubm90IGNvbGxpZGUgd2l0aCB0aGUgZXJyb3Igc3RhdHVzJ3MgcmVkIGJvcmRlcjogdGhhdCBib3JkZXJcbiAgIGlzIGEgcGxhaW4gMXB4IGJvcmRlci1jb2xvciBjaGFuZ2Ugb24gdGhlIGNhcmQncyBvd24gZWRnZSAoc2VlXG4gICAuYWMtc3RhdHVzLWVycm9yIGZ1cnRoZXIgZG93bikgYW5kIHN0YXlzIGNvbXBsZXRlbHkgdW50b3VjaGVkIGhlcmUgLSB0aGVcbiAgIHJpbmcgaXMgYSBzZWNvbmQsIHNlcGFyYXRlIHJpbmcgZnVydGhlciBPVVQsIHBhc3QgdGhlIGdhcC4gQSBjYXJkIHRoYXRcbiAgIGlzIGJvdGggc2VsZWN0ZWQgQU5EIGVycm9yIGtlZXBzIGJvdGggc2lnbmFscyBmdWxseSBsZWdpYmxlIGF0IG9uY2UuXG4gICBSZXVzZXMgLS1mb2N1cy1yaW5nLCB0aGUgU0FNRSB0b2tlbiB0aGUgOmZvY3VzLXZpc2libGUgcnVsZSBhYm92ZSB1c2VzLFxuICAgc28gbGlnaHQvZGFyayB0aGVtaW5nICgtLWMtcHVycGxlLTIwMCBpbiBkYXJrKSBzdGF5cyBpbiBzeW5jXG4gICBhdXRvbWF0aWNhbGx5IHdpdGhvdXQgYSBzZXBhcmF0ZSBkYXJrIG92ZXJyaWRlLiAqL1xuLyogSEVSQk9VV0QgMjQuMDguMjAyNiAoS2ltOiBcIm5vZyBzdGVlZHMgZ2VlbiBhY3RpdmUgc3RhdGVcIikuIERpdCB3YXMgZWVuXG4gICBgb3V0bGluZWAgbWV0IGBvdXRsaW5lLW9mZnNldDogMnB4YCwgZHVzIGVlbiByaW5nIDJweCBCVUlURU4gZGUga2FhcnQuIEluIGRlXG4gICB0YWtlbmxpanN0IHppdCBlbGtlIGthYXJ0IGluIGVlbiA8cWRuYXByby1zd2lwZS1yb3c+IGVuIGRpZSBoZWVmdFxuICAgYG92ZXJmbG93OiBoaWRkZW5gIChxZG5hLXN3aXBlLXJvdy5jc3MsIHR3ZWUgcGxla2tlbiAtIG5vZGlnIG9tIGRlXG4gICB2ZWVnLWFjdGllcGFuZWxlbiBuYWFzdCBkZSByaWogdGUgdmVyYmVyZ2VuKS4gQWxsZXMgYnVpdGVuIGRlIGthYXJ0IHdvcmR0XG4gICBkYWFyIGR1cyB3ZWdnZWtuaXB0OiBkZSByaW5nIHdhcyBhYW53ZXppZyBpbiBkZSBET00gZW4gdm9sbGVkaWcgb256aWNodGJhYXIuXG4gICBOaWV0IHRlIHZpbmRlbiBtZXQgZ3JlcCwgYWxsZWVuIGRvb3IgaGV0IG9wIGVlbiB0b2VzdGVsIHRlIG1pc3Nlbi5cbiAgIE51IGVlbiA6OmJlZm9yZSBCSU5ORU4gZGUga2FhcnQ6IG92ZXJsZWVmdCBlbGtlIG92ZXJmbG93LWhpZGRlbiBvdWRlciwgdm9sZ3RcbiAgIGRlIHJvbmRpbmcgYWx0aWpkIChib3JkZXItcmFkaXVzIHdlcmt0IG92ZXJhbCwgYW5kZXJzIGRhbiBlZW4gb3V0bGluZSBvcFxuICAgb3VkZXJlIFdlYktpdCAtIHByZWNpZXMgd2FhciBkZSB1bml0LXRlZ2VsIG9wIHN0dWsgbGllcCksIGVuIGJvdHN0IG5pZXQgbWV0XG4gICBkZSA6OmFmdGVyIGhvdmVyLW92ZXJsYXkgb2YgbWV0IGRlIGJveC1zaGFkb3cgZGllIGhvdmVyL2FjdGl2ZS9wdWxzZSBhbFxuICAgY2xhaW1lbi4gaW5zZXQgMnB4IG1ldCByYWRpdXMgMTJweCA9IDE0cHggaG9zdHJhZGl1cyBtaW51cyBkaWUgMnB4LCB6b2RhdCBkZVxuICAgcmluZyBjb25jZW50cmlzY2ggaW4gZGUgaG9layBsb29wdC4gKi9cbi8qIFpBQ0hURSBHTE9FRCwgR0VFTiBIQVJERSBMSUpOIChLaW0gMjQuMDguMjAyNjogXCJ6byduIGhhcmRlIHNlbGVjdCByaW5nIGlzXG4gICBlY2h0IHRlIGxlbGlqaywgaWsgd2lsIHpvaWV0cyBhbHMgZGUgdW5pdHMgZG9lblwiKS4gRGV6ZWxmZGUgdG9rZW4gYWxzXG4gICBxZG5hcHJvLXVuaXQtY2FyZCdzIGlzLXNlbGVjdGVkIGdlYnJ1aWt0OiAtLWZvY3VzLWdsb3cgKC0tYy1hY3Rpb24tMjUgaW5cbiAgIGxpY2h0LCAtLWMtYWN0aW9uLTQwIGluIGRvbmtlciksIDNweCBkaWsuXG4gICBWZXJzY2hpbCBtZXQgZGUgdW5pdC10ZWdlbCwgZW4gZGF0IGthbiBuaWV0IGFuZGVyczogZGFhciB0ZWtlbnQgZGUgZ2xvZWRcbiAgIEJVSVRFTiBkZSBrYWFydCwgaGllciBOQUFSIEJJTk5FTiAoYGluc2V0YCkuIEJ1aXRlbndhYXJ0cyBpcyBoaWVyIG5pZXRcbiAgIG1vZ2VsaWprIC0gZGUgc3dpcGUtcm93IGVyb21oZWVuIGtuaXB0IGFsbGVzIGJ1aXRlbiBkZSBrYWFydCB3ZWcgKHppZSBkZVxuICAgdWl0bGVnIGhpZXJvbmRlcikuIE9wIGVlbiBsaWNodGUga2FhcnQgbWV0IGVlbiBkb29yc2NoaWpuZW5kZSBnbG9lZCBpcyBkYXRcbiAgIHZpc3VlZWwgdnJpandlbCBoZXR6ZWxmZGU7IGhldCBpcyBhbGxlZW4gbmlldCBsZXR0ZXJsaWprIFwiZXJvbWhlZW5cIi5cbiAgIGBpbnNldDogMGAgKyBgYm9yZGVyLXJhZGl1czogaW5oZXJpdGAgbGFhdCBkZSBnbG9lZCBleGFjdCBkZSAxNHB4IGhvZWtyb25kaW5nXG4gICB2YW4gZGUga2FhcnQgdm9sZ2VuLCBpbiBwbGFhdHMgdmFuIGVlbiBlaWdlbiBnZXRhbCBkYXQgYmlqIGVlbiB3aWp6aWdpbmcgdmFuXG4gICBkZSByYWRpdXMgc3RpbCB1aXQgZGUgYm9jaHQgbG9vcHQuICovXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXNlbGVjdGVkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzcHggdmFyKC0tZm9jdXMtZ2xvdyk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAxO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG59XG5cbi8qID09PSBEYXJrIG1vZGUgLSBiYXNlIGNhcmQgY2hyb21lID09PSAqL1xuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZCB7XG4gIGJhY2tncm91bmQ6ICMyZTMwMzY7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkIC5hYy1sYWJlbCB7XG4gIGNvbG9yOiAjZjBmMWYyO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkIC5hYy1kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiAjYTBhNGI4O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMCAzcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbn1cblxuLyogPT09IEljb24gdGlsZSA9PT0gKi9cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQgLmFjLXRpbGUge1xuICBncmlkLWFyZWE6IHRpbGU7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGZsZXg6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hYy10aWxlLWJnLCAjZjBmMWYyKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZCAuYWMtdGlsZS10aWNrIHN2ZyB7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiA9PT0gVGV4dCBjb2x1bW4gPT09ICovXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkIC5hYy1ib2R5IHtcbiAgZ3JpZC1hcmVhOiBib2R5O1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDJweDtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZCAuYWMtbGFiZWwge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1hYy10ZXh0LCAjMGIwYjBkKTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQgLmFjLWRlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiAxMi41cHg7XG4gIGNvbG9yOiB2YXIoLS1hYy10ZXh0LW11dGVkLCAjODk4ZTk5KTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8qID09PSBNZXRhIHJvdzogcmVwZWF0IHRhZyAoZmlyc3QpICsgY29tcGxldGlvbiBzdGFtcCA9PT1cbiAgIFJlcXVpcmVkIHBpbGwgbGl2ZXMgT1VUU0lERSB0aGlzIHJvdyBub3cgKHNlZSB0aGUgY29ybmVyLWJhZGdlIGJsb2NrXG4gICBiZWxvdyksIHNvIHRoZSByb3cgb25seSBleGlzdHMgZm9yIHRoZSByZXBlYXQgdGFnIGFuZC9vciB0aGUgc3RhbXAuICovXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkIC5hYy1tZXRhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkIC5hYy1waWxsIHtcbiAgZmxleDogbm9uZTtcbn1cblxuLyogSWNvbi1vbmx5IHJlcGVhdCB0YWcgKG5vIHRleHQgY29udGVudCkgLSB0aGUgdGFnJ3Mgb3duIGVtcHR5IGxhYmVsIHNwYW5cbiAgIHN0aWxsIGNhcnJpZXMgaXRzIDRweCBpY29uLWxhYmVsIGdhcCwgd2hpY2ggd291bGQgYWRkIGxvcHNpZGVkIHRyYWlsaW5nXG4gICBwYWRkaW5nIGFyb3VuZCBub3RoaW5nLiBOZXV0cmFsaXNlZCBoZXJlLCBzY29wZWQgdG8gdGhpcyBvbmUgdXNhZ2UsIHNhbWVcbiAgIGZpeCBhcyBxZG5hcHJvLWFjdGl2aXR5LXJvdydzIC5yb3ctaWNvbi10YWcgKEtpbSwgMTMuMDcuMjAyNikuICovXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkIC5hYy1waWxsLXJlcGVhdCB7XG4gIGdhcDogMDtcbn1cblxuLyogPT09IENvcm5lciBjbHVzdGVyOiBpY29uLW9ubHkgcmVwZWF0IHRhZyArIHJlcXVpcmVkIHBpbGwgc2lkZSBieSBzaWRlIGluIHRoZVxuICAgdG9wLXJpZ2h0IGNvcm5lciAoS2ltLCAxMy4wNy4yMDI2KS4gVGhlIGNoZXZyb24gYW5kIGl0cyB3aG9sZSBnbHlwaFxuICAgY29sdW1uIGFyZSBnb25lLCBzbyB0aGUgY2x1c3RlciBvd25zIHRoZSByaWdodCBlZGdlIGFnYWluc3QgdGhlIGNhcmQnc1xuICAgb3duIHBhZGRpbmcuICovXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkIC5hYy1jb3JuZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEycHg7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xufVxuXG4vKiBPcHRpb25hbCBrZWJhYi1tZW51IGJ1dHRvbiAoXCJtZW51XCIgYXR0cmlidXRlLCBhZGRlZCAyMS4wOC4yMDI2KSBzaGFyZXNcbiAgIHRoaXMgU0FNRSBjb3JuZXIgcm93IGluc3RlYWQgb2YgYSBuZXcgcmlnaHQtc2lkZSBsYXlvdXQgbWVjaGFuaXNtIC1cbiAgIGZsZXg6IG5vbmUgbWF0Y2hlcyB0aGUgc2libGluZyAuYWMtcGlsbCBydWxlIGFib3ZlIHNvIGl0IG5ldmVyIGdldHNcbiAgIHNxdWVlemVkIGJ5IHRoZSBsYWJlbCBjb2x1bW4uICovXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkIC5hYy1tZW51LWJ0biB7XG4gIGZsZXg6IG5vbmU7XG59XG5cbi8qIFJlc2VydmUgcm9vbSBzbyBhIGxvbmcgdGl0bGUgdHJ1bmNhdGVzIGJlZm9yZSBydW5uaW5nIHVuZGVyIHRoZSBjb3JuZXJcbiAgIGNsdXN0ZXIgaW5zdGVhZCBvZiBiZWhpbmQgaXQgLSB3b3JzdCBjYXNlIGlzIHJlcGVhdCBpY29uLXRhZyBwbHVzXG4gICBcIlZlcnBsaWNodFwiL1wiUmVxdWlyZWRcIiwgfjEyMHB4IGNvdmVycyBpdC4gQWxzbyByZXNlcnZlZCBmb3IgdGhlIG1lbnVcbiAgIGJ1dHRvbiBhbG9uZSAobmFycm93ZXIgdGhhbiB0aGF0IHdvcnN0IGNhc2UsIHNvIHRoaXMgc3RheXMgYSBzYWZlXG4gICB1cHBlciBib3VuZCByYXRoZXIgdGhhbiBhbiBleGFjdCBmaXQpLiAqL1xuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1oYXMtY29ybmVyIC5hYy1sYWJlbCxcbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtaGFzLWNvcm5lciAuYWMtZGVzY3JpcHRpb24ge1xuICBwYWRkaW5nLXJpZ2h0OiAxMjBweDtcbn1cblxuLyogTWVudSBidXR0b24gQUxPTkUgaW4gdGhlIGNvcm5lcjogdGhlIDEyMHB4IGFib3ZlIGlzIHRoZSB3b3JzdC1jYXNlIHBpbGxcbiAgIHJlc2VydmF0aW9uIGFuZCBjb3N0cyBhIHRoaXJkIG9mIHRoZSB3aWR0aCBvbiBhIDM2MHB4IGNhcmQgaW4gdGhlIHRhc2tsaXN0XG4gICBzcGxpdCBzY3JlZW4sIHRydW5jYXRpbmcgYSB0aXRsZSB0aGF0IHdvdWxkIG90aGVyd2lzZSBmaXQuIFRoZSBrZWJhYiBpcyBhXG4gICAzMnB4IGljb24tYnRuLCBzbyA0NHB4ICgzMiArIDEyIGJyZWF0aGluZyByb29tKSBpcyB0aGUgcmVhbCByZXNlcnZhdGlvbi5cbiAgIFR3byBjbGFzc2VzLCBzYW1lIHNwZWNpZmljaXR5IGFzIHRoZSBydWxlIGFib3ZlLCBzbyBzb3VyY2Ugb3JkZXIgZGVjaWRlc1xuICAgYW5kIHRoaXMgb25lIG11c3Qgc3RheSBCRUxPVyBpdC4gWzIxLjA4LjIwMjZdICovXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWNvcm5lci1tZW51LW9ubHkgLmFjLWxhYmVsLFxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1jb3JuZXItbWVudS1vbmx5IC5hYy1kZXNjcmlwdGlvbiB7XG4gIHBhZGRpbmctcmlnaHQ6IDQ0cHg7XG59XG5cbi8qID09PSBTdGF0dXMtdGludGVkIHBpbGwgPT09XG4gICBBIGdyZXkgdGFnIG9uIGEgY29sb3VyZWQgc3RhdHVzIHN1cmZhY2UgY2xhc2hlcyAoS2ltLCAxMy4wNy4yMDI2KSwgc29cbiAgIGV2ZXJ5IFwiLmFjLXBpbGxcIiAocmVxdWlyZWQgY29ybmVyIGJhZGdlLCBjb21wbGV0aW9uIHN0YW1wLCBhbmQgdGhlXG4gICByZXBlYXQgdGFnIGFkZGVkIDEzLjA3LjIwMjYpIGZvbGxvd3MgdGhlIHN0YXR1cyBwYWxldHRlOiB0aGUgXCItMlwiIHRhZ1xuICAgdG9uZSBhcyBiYWNrZ3JvdW5kIHdpdGggdGhlIG1hdGNoaW5nIHRhZyB0ZXh0IGNvbG91ci4gVGhlIHRhZyBjb21wb25lbnRcbiAgIHBhaW50cyBpdHNlbGYgZnJvbSB0aGUgLS10YWctYmcvLS10YWctdGV4dCBjdXN0b20gcHJvcGVydGllcywgc29cbiAgIG92ZXJyaWRpbmcgdGhvc2UgaGVyZSAodGhyZWUgY2xhc3NlcywgYmVhdHMgdGhlIHRhZydzIG93biB0d28tY2xhc3NcbiAgIHNlbGVjdG9yKSBpcyBlbm91Z2guIE9wZW4vcmVwZWF0LWRvbmUvZGlzYWJsZWQga2VlcCB0aGUgdGFnJ3Mgb3duXG4gICBncmV5L2Rpc2FibGVkIGxvb2sgKG5vIHRpbnQgcnVsZSBleGlzdHMgZm9yIGFjLXN0YXR1cy1yZXBlYXQtZG9uZSwgYnlcbiAgIGRlc2lnbiAtIHNlZSB0aGUgcmVwZWF0LWRvbmUgbm90ZSBmdXJ0aGVyIGRvd24pLiAqL1xuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtaW4tcHJvZ3Jlc3MgLmFjLXBpbGwge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLXllbGxvdy0yLWJnKTtcbiAgLS10YWctdGV4dDogIzY1NTUyMjtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtY29tcGxldGVkIC5hYy1waWxsIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1ncmVlbi0yLWJnKTtcbiAgLS10YWctdGV4dDogIzJmNWQ0YTtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtZXJyb3IgLmFjLXBpbGwge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLXJlZC0yLWJnKTtcbiAgLS10YWctdGV4dDogIzYzMzAzMDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtaW4tcHJvZ3Jlc3MgLmFjLXBpbGwge1xuICAtLXRhZy1iZzogIzdhNmIyZDtcbiAgLS10YWctdGV4dDogI2ZkZTU5NDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtY29tcGxldGVkIC5hYy1waWxsIHtcbiAgLS10YWctYmc6ICMzZDdhNjI7XG4gIC0tdGFnLXRleHQ6ICM4YmVjYzU7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWVycm9yIC5hYy1waWxsIHtcbiAgLS10YWctYmc6ICM3YTM4Mzg7XG4gIC0tdGFnLXRleHQ6ICNmYmFhYWE7XG59XG5cbi8qID09PSBCb3R0b20gYWN0aW9uIHJvdzogYnJpZWZpbmcgLyByZXBlYXQgYnV0dG9ucyA9PT1cbiAgIEZ1bGwtd2lkdGggcm93IGJlbG93IHRoZSB0aWxlL3RleHQvZ2x5cGggY29sdW1ucyAoS2ltLCAxMy4wNy4yMDI2IC0gdGhlXG4gICBvbGQgYnJpZWZpbmcvY291bnRlciBwaWxscyB3ZXJlIHRvbyBzbWFsbCBhcyB0b3VjaCB0YXJnZXRzKS4gSGFpcmxpbmVcbiAgIGRpdmlkZXIgcmV1c2VzIC0tYWMtYm9yZGVyLCBzbyBpdCByZWNvbG91cnMgdGhlIHNhbWUgd2F5IGFzIHRoZSBjYXJkXG4gICBib3JkZXIgb24gZXZlcnkgc3RhdHVzLiAqL1xuLnFkbmFwcm8tYWN0aXZpdHktY2FyZCAuYWMtYWN0aW9ucyB7XG4gIGdyaWQtYXJlYTogYWN0aW9ucztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWFjLWJvcmRlciwgI2UxZTNlNik7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQgLmFjLWFjdGlvbi1idG4ge1xuICBmbGV4OiBub25lO1xufVxuXG4vKiA9PT0gU3RhdHVzLXRpbnRlZCBhY3Rpb24gYnV0dG9ucyA9PT1cbiAgIHNlY29uZGFyeS1wdXJwbGUgd29ya3Mgb24gdGhlIHdoaXRlIG9wZW4gY2FyZCBidXQgY2xhc2hlcyBvbiB0aGUgY29sb3VyZWRcbiAgIHN0YXR1cyBzdXJmYWNlcyAoS2ltLCAxMy4wNy4yMDI2KS4gT24gdGhvc2Ugc3RhdHVzZXMgdGhlIGJ1dHRvbnMgdGFrZSB0aGVcbiAgIHNhbWUgXCItMlwiIHRhZyB0b25lIGZhbWlseSBhcyB0aGUgcGlsbDogLTIgYmFja2dyb3VuZCwgc3RhdHVzIHRleHQgY29sb3VyLFxuICAgdGhlIHRhZydzIG93biAtMiBob3ZlciB0b2tlbiBvbiBob3Zlci9wcmVzcy4gcWRuYXByby1idXR0b24gcGFpbnRzIGZyb21cbiAgIGZpeGVkIGNsYXNzIGNvbG91cnMgKG5vIGN1c3RvbSBwcm9wZXJ0aWVzKSwgc28gdGhlc2UgZml2ZS1jbGFzcyBvdmVycmlkZXNcbiAgIHNpbXBseSBvdXQtc3BlY2lmeSBpdHMgdGhyZWUtY2xhc3MgcnVsZXM7IGljb25zIGZvbGxvdyB2aWEgY3VycmVudENvbG9yLiAqL1xuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtaW4tcHJvZ3Jlc3MgLmFjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktcHVycGxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXllbGxvdy0yLWJnKTtcbiAgY29sb3I6ICM2NTU1MjI7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWluLXByb2dyZXNzIC5hYy1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCksXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1pbi1wcm9ncmVzcyAuYWMtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGU6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC15ZWxsb3ctMi1ob3Zlcik7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWNvbXBsZXRlZCAuYWMtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtZ3JlZW4tMi1iZyk7XG4gIGNvbG9yOiAjMmY1ZDRhO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1jb21wbGV0ZWQgLmFjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktcHVycGxlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSxcbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWNvbXBsZXRlZCAuYWMtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGU6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1ncmVlbi0yLWhvdmVyKTtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtZXJyb3IgLmFjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktcHVycGxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXJlZC0yLWJnKTtcbiAgY29sb3I6ICM2MzMwMzA7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWVycm9yIC5hYy1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCksXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1lcnJvciAuYWMtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGU6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1yZWQtMi1ob3Zlcik7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWluLXByb2dyZXNzIC5hYy1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZSB7XG4gIGJhY2tncm91bmQ6ICM3YTZiMmQ7XG4gIGNvbG9yOiAjZmVmNmRiO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1pbi1wcm9ncmVzcyAuYWMtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGU6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtaW4tcHJvZ3Jlc3MgLmFjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktcHVycGxlOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiAjOWE4YTNiO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1jb21wbGV0ZWQgLmFjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktcHVycGxlIHtcbiAgYmFja2dyb3VuZDogIzNkN2E2MjtcbiAgY29sb3I6ICNlMmZhZjE7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWNvbXBsZXRlZCAuYWMtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGU6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtY29tcGxldGVkIC5hYy1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZTphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogIzRkOWM3Yztcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtZXJyb3IgLmFjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktcHVycGxlIHtcbiAgYmFja2dyb3VuZDogIzdhMzgzODtcbiAgY29sb3I6ICNmZWUzZTM7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWVycm9yIC5hYy1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCksXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1lcnJvciAuYWMtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGU6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6ICM5YTQ3NDc7XG59XG5cbi8qIFRoZSBjb3VudCBiYWRnZSBvbiB0aGUgcmVwZWF0IGJ1dHRvbiAocWRuYXByby1idXR0b24ncyBvd24gYmFkZ2UgYXR0cixcbiAgIFwic3VidGxlXCIgcGFpcmluZyA9IGxhdmVuZGVyKSBtdXN0IGZvbGxvdyB0aGUgc2FtZSBzdGF0dXMgdGludCAoS2ltLFxuICAgMTMuMDcuMjAyNik6IHRoZSBsaWdodCBzdGF0dXMgc3VyZmFjZSB0b25lIGFzIGJhZGdlIGJhY2tncm91bmQgd2l0aCB0aGVcbiAgIHN0YXR1cyB0ZXh0IGNvbG91ciwgc28gaXQgcmVhZHMgYXMgYSBxdWlldCBjaGlwIG9uIHRoZSBcIi0yXCIgYnV0dG9uLiAqL1xuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtaW4tcHJvZ3Jlc3MgLmFjLWFjdGlvbnMgW2RhdGEtYnV0dG9uLWJhZGdlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzY1NTUyMjtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtY29tcGxldGVkIC5hYy1hY3Rpb25zIFtkYXRhLWJ1dHRvbi1iYWRnZV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWNoaXAtZ3JlZW4tYmcpO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzJmNWQ0YTtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtZXJyb3IgLmFjLWFjdGlvbnMgW2RhdGEtYnV0dG9uLWJhZGdlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjNjMzMDMwO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1pbi1wcm9ncmVzcyAuYWMtYWN0aW9ucyBbZGF0YS1idXR0b24tYmFkZ2VdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVhNGQxZjtcbiAgY29sb3I6ICNmZGU1OTQ7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWNvbXBsZXRlZCAuYWMtYWN0aW9ucyBbZGF0YS1idXR0b24tYmFkZ2VdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJhNTU0NDtcbiAgY29sb3I6ICM4YmVjYzU7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWVycm9yIC5hYy1hY3Rpb25zIFtkYXRhLWJ1dHRvbi1iYWRnZV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWEyYjJiO1xuICBjb2xvcjogI2ZiYWFhYTtcbn1cblxuQGtleWZyYW1lcyBxZG5hcHJvLWFjLWNvdW50LWJ1bXAge1xuICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgMzUlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjE4KTsgfVxuICA2MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQgLmFjLWJhZGdlLWJ1bXAge1xuICBhbmltYXRpb246IHFkbmFwcm8tYWMtY291bnQtYnVtcCAzODBtcyBlYXNlLW91dDtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tYWN0aXZpdHktY2FyZCAuYWMtYmFkZ2UtYnVtcCB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG59XG5cbi8qID09PSBQdWxzZSAoc3RhdHVzLWNoYW5nZWQgZmVlZGJhY2spID09PSAqL1xuQGtleWZyYW1lcyBxZG5hcHJvLWFjLXB1bHNlIHtcbiAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoNjQsIDczLCAxNTQsIDAuMzUpOyB9XG4gIDQwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wMTUpOyBib3gtc2hhZG93OiAwIDAgMCA4cHggcmdiYSg2NCwgNzMsIDE1NCwgMCk7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSg2NCwgNzMsIDE1NCwgMCk7IH1cbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1wdWxzZSB7XG4gIGFuaW1hdGlvbjogcWRuYXByby1hYy1wdWxzZSA1MjBtcyBlYXNlLW91dDtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1wdWxzZSB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG59XG5cbi8qID09PSBJY29uLWNvbG9yIHBhbGV0dGUgKHFkbmFwcm8tdGFnIC0tdGFnLWJnIHZhbHVlcywgbGlnaHQpID09PVxuICAgT25seSB1c2VkIGJ5IHRoZSBcIm9wZW5cIiBzdGF0dXMgLSBldmVyeSBvdGhlciBzdGF0dXMgb3ZlcnJpZGVzIHRoZSB0aWxlXG4gICBjb2xvdXIgZGlyZWN0bHkgZnVydGhlciBkb3duLiAqL1xuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1jb2xvci1ncmV5IHtcbiAgLS1hYy10aWxlLWJnOiB2YXIoLS1jLWdyZXktNTApO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWNvbG9yLXJlZCB7XG4gIC0tYWMtdGlsZS1iZzogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1jb2xvci15ZWxsb3cge1xuICAtLWFjLXRpbGUtYmc6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWNvbG9yLWdyZWVuIHtcbiAgLS1hYy10aWxlLWJnOiB2YXIoLS1jLWNoaXAtZ3JlZW4tYmcpO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWNvbG9yLWJsdWUge1xuICAtLWFjLXRpbGUtYmc6IHZhcigtLWMtc2lnbmFsLWJsdWUtYmcpO1xufVxuXG4vLyBicmlnaHQtYmx1ZSB1c2VzIHRoZSBzb2Z0ZXIgYnJpZ2h0LWJsdWUtMiBwYXN0ZWw6IHRoZSBiYXNlIGJyaWdodC1ibHVlXG4vLyB0b2tlbiAoIzg1YTFlYykgaXMgZmFyIG1vcmUgc2F0dXJhdGVkIHRoYW4gdGhlIG90aGVyIHNldmVuIHBhc3RlbHMgYW5kXG4vLyB3b3VsZCBtYWtlIHRoZSB0aWxlIHNob3V0LiBTYW1lIHN1YnN0aXR1dGlvbiB0aGUgdGFza2xpc3QtY2FyZCBtYWtlcy5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtY29sb3ItYnJpZ2h0LWJsdWUge1xuICAtLWFjLXRpbGUtYmc6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWJnKTtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1jb2xvci1waW5rIHtcbiAgLS1hYy10aWxlLWJnOiB2YXIoLS1jLXNpZ25hbC1waW5rLWJnKTtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1jb2xvci1wdXJwbGUge1xuICAtLWFjLXRpbGUtYmc6IHZhcigtLWMtY2hpcC1wdXJwbGUtYmcpO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWNvbG9yLWdyZXkge1xuICAtLWFjLXRpbGUtYmc6ICM1NjViNjY7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtY29sb3ItcmVkIHtcbiAgLS1hYy10aWxlLWJnOiAjNWEyYjJiO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWNvbG9yLXllbGxvdyB7XG4gIC0tYWMtdGlsZS1iZzogIzVhNGQxZjtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1jb2xvci1ncmVlbiB7XG4gIC0tYWMtdGlsZS1iZzogIzJhNTU0NDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1jb2xvci1ibHVlIHtcbiAgLS1hYy10aWxlLWJnOiAjMmUzZTU0O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWNvbG9yLWJyaWdodC1ibHVlIHtcbiAgLS1hYy10aWxlLWJnOiAjMmEzNTYwO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLWNvbG9yLXBpbmsge1xuICAtLWFjLXRpbGUtYmc6ICM0ZTJhMzY7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtY29sb3ItcHVycGxlIHtcbiAgLS1hYy10aWxlLWJnOiAjM2EzNTU1O1xufVxuXG4vKiA9PT0gU3RhdHVzIG92ZXJyaWRlcyAoYWx3YXlzIHdpbiBvdmVyIHRoZSBpY29uLWNvbG9yIHBhc3RlbCkgPT09XG4gICBFYWNoIHN0YXR1cyBzZXRzIHRoZSB0aWxlIGJhY2tncm91bmQgZGlyZWN0bHkgKG5vdCB0aHJvdWdoIC0tYWMtdGlsZS1iZylcbiAgIHdpdGggYSBoaWdoZXItc3BlY2lmaWNpdHkgc2VsZWN0b3IgKDIgY2xhc3NlcyArIGRlc2NlbmRhbnQpLCBzbyBpdCB3aW5zXG4gICByZWdhcmRsZXNzIG9mIHNvdXJjZSBvcmRlciAtIHNhbWUgcGF0dGVybiBhcyB0aGUgdGFza2xpc3QtY2FyZCBbYXJjaGl2ZWRdXG4gICBvdmVycmlkZS4gQm9yZGVyIGNvbG91ciByZXVzZXMgdGhlIHRpbGUncyBcIi0yXCIgdG9uZSBmb3IgZGVmaW5pdGlvbiwgbm9cbiAgIG5ldyBwYWxldHRlIHZhbHVlcyBpbnZlbnRlZC4gKi9cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWluLXByb2dyZXNzIHtcbiAgLS1hYy1zdXJmYWNlOiB2YXIoLS1jLWNoaXAteWVsbG93LWJnKTtcbiAgLS1hYy1ib3JkZXI6IHZhcigtLWMtY2hpcC15ZWxsb3ctMi1iZyk7XG4gIC0tYWMtdGV4dDogIzY1NTUyMjtcbiAgLS1hYy10ZXh0LW11dGVkOiAjNjU1NTIyO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1pbi1wcm9ncmVzcyAuYWMtdGlsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC15ZWxsb3ctMi1iZyk7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWNvbXBsZXRlZCB7XG4gIC0tYWMtc3VyZmFjZTogdmFyKC0tYy1jaGlwLWdyZWVuLWJnKTtcbiAgLS1hYy1ib3JkZXI6IHZhcigtLWMtY2hpcC1ncmVlbi0yLWJnKTtcbiAgLS1hYy10ZXh0OiAjMmY1ZDRhO1xuICAtLWFjLXRleHQtbXV0ZWQ6ICMyZjVkNGE7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWNvbXBsZXRlZCAuYWMtdGlsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1ncmVlbi0yLWJnKTtcbn1cblxuLyogcmVwZWF0LWRvbmUgKEtpbSdzIGNvbXByb21pc2UsIDEzLjA3LjIwMjYpOiBhIHJlcGVhdCBhY3Rpdml0eSBuZXZlciB0cnVseVxuICAgXCJjb21wbGV0ZXNcIiwgYnV0IGFmdGVyIGF0IGxlYXN0IG9uZSBmaWxsLWluIGl0IGRlc2VydmVzIHRoZSBzYW1lXG4gICBzYXRpc2Z5aW5nIGdyZWVuIHRpbGUgKyB0ZXh0IGFzIGNvbXBsZXRlZCAtIFdJVEhPVVQgdGhlIGdyZWVuIHN1cmZhY2VcbiAgIHdhc2gsIHNvIHRoZSBjYXJkIHN0aWxsIHJlYWRzIGFzIG9wZW4vdGFwcGFibGUgZm9yIHRoZSBuZXh0IGZpbGwtaW4uXG4gICBPbmx5IC0tYWMtdGV4dC8tLWFjLXRleHQtbXV0ZWQgYXJlIG92ZXJyaWRkZW4gKG1hdGNoaW5nIGNvbXBsZXRlZCdzXG4gICB2YWx1ZXMpOyAtLWFjLXN1cmZhY2UvLS1hYy1ib3JkZXIgYXJlIGRlbGliZXJhdGVseSBsZWZ0IHVuc2V0IHNvIHRoZSBjYXJkXG4gICBmYWxscyBiYWNrIHRvIHRoZSBuZXV0cmFsIG9wZW4gY2hyb21lICgjZmZmZmZmIC8gdmFyKC0tYy1ib3JkZXItY2FyZCkgdmlhIHRoZSBiYXNlXG4gICBydWxlJ3Mgb3duIGZhbGxiYWNrcykuIE5vIHBpbGwvYWN0aW9uLWJ1dHRvbiB0aW50IHJ1bGVzIGV4aXN0IGZvciB0aGlzXG4gICBzdGF0dXMgKHVubGlrZSBpbi1wcm9ncmVzcy9jb21wbGV0ZWQvZXJyb3IpIC0gZGVsaWJlcmF0ZWx5LCBwZXIgc3BlYy4gKi9cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLXJlcGVhdC1kb25lIHtcbiAgLS1hYy10ZXh0OiAjMmY1ZDRhO1xuICAtLWFjLXRleHQtbXV0ZWQ6ICMyZjVkNGE7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLXJlcGVhdC1kb25lIC5hYy10aWxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLWdyZWVuLTItYmcpO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1lcnJvciB7XG4gIC0tYWMtc3VyZmFjZTogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTtcbiAgLS1hYy1ib3JkZXI6IHZhcigtLWMtY2hpcC1yZWQtMi1iZyk7XG4gIC0tYWMtdGV4dDogIzYzMzAzMDtcbiAgLS1hYy10ZXh0LW11dGVkOiAjNjMzMDMwO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1lcnJvciAuYWMtdGlsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1yZWQtMi1iZyk7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWRpc2FibGVkIHtcbiAgLS1hYy1zdXJmYWNlOiB2YXIoLS1jLWdyZXktNTApO1xuICAtLWFjLWJvcmRlcjogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gIC0tYWMtdGV4dDogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbiAgLS1hYy10ZXh0LW11dGVkOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtZGlzYWJsZWQgLmFjLXRpbGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgZmlsdGVyOiBncmF5c2NhbGUoMSk7XG59XG5cbi8qIERhcmstbW9kZSBzdGF0dXMgb3ZlcnJpZGVzLiBWYWx1ZXMgZnJvbSB0aGUgdGFnIGRhcmsgcGFsZXR0ZTpcbiAgIHllbGxvdygtMiksIGdyZWVuKC0yKSwgcmVkKC0yKSBwYWlyczsgZ3JleSBiYXNlICsgZ3JleSBob3ZlciBmb3IgZGlzYWJsZWQuICovXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1pbi1wcm9ncmVzcyB7XG4gIC0tYWMtc3VyZmFjZTogIzVhNGQxZjtcbiAgLS1hYy1ib3JkZXI6ICM3YTZiMmQ7XG4gIC0tYWMtdGV4dDogI2ZkZTU5NDtcbiAgLS1hYy10ZXh0LW11dGVkOiAjZmRlNTk0O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1pbi1wcm9ncmVzcyAuYWMtdGlsZSB7XG4gIGJhY2tncm91bmQ6ICM3YTZiMmQ7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWNvbXBsZXRlZCB7XG4gIC0tYWMtc3VyZmFjZTogIzJhNTU0NDtcbiAgLS1hYy1ib3JkZXI6ICMzZDdhNjI7XG4gIC0tYWMtdGV4dDogIzhiZWNjNTtcbiAgLS1hYy10ZXh0LW11dGVkOiAjOGJlY2M1O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1jb21wbGV0ZWQgLmFjLXRpbGUge1xuICBiYWNrZ3JvdW5kOiAjM2Q3YTYyO1xufVxuXG4vKiByZXBlYXQtZG9uZSBkYXJrIHRpbGUgKyB0ZXh0IChzYW1lIHNwbGl0IGFzIGxpZ2h0OiBzdXJmYWNlL2JvcmRlciBzdGF5XG4gICB0aGUgZGFyayBiYXNlIGNhcmQgY2hyb21lIHNldCBieSB0aGUgcGxhaW4gW2RhdGEtdGhlbWU9ZGFya11cbiAgIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQgcnVsZSBhYm92ZSkuICovXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1yZXBlYXQtZG9uZSB7XG4gIC0tYWMtdGV4dDogIzhiZWNjNTtcbiAgLS1hYy10ZXh0LW11dGVkOiAjOGJlY2M1O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1jYXJkLmFjLXN0YXR1cy1yZXBlYXQtZG9uZSAuYWMtdGlsZSB7XG4gIGJhY2tncm91bmQ6ICMzZDdhNjI7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWVycm9yIHtcbiAgLS1hYy1zdXJmYWNlOiAjNWEyYjJiO1xuICAtLWFjLWJvcmRlcjogIzdhMzgzODtcbiAgLS1hYy10ZXh0OiAjZmJhYWFhO1xuICAtLWFjLXRleHQtbXV0ZWQ6ICNmYmFhYWE7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuYWMtc3RhdHVzLWVycm9yIC5hYy10aWxlIHtcbiAgYmFja2dyb3VuZDogIzdhMzgzODtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtZGlzYWJsZWQge1xuICAtLWFjLXN1cmZhY2U6ICM1NjViNjY7XG4gIC0tYWMtYm9yZGVyOiAjNmI3MTgwO1xuICAtLWFjLXRleHQ6ICM2YjcxODA7XG4gIC0tYWMtdGV4dC1tdXRlZDogIzZiNzE4MDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYWN0aXZpdHktY2FyZC5hYy1zdGF0dXMtZGlzYWJsZWQgLmFjLXRpbGUge1xuICBiYWNrZ3JvdW5kOiAjNmI3MTgwO1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgxKTtcbn1cblxuLyogPT09IEZvcmNlIHN0YXRlcyAocHJldmlldy1vbmx5LCBtaXJyb3JzIHJlYWwgOmhvdmVyIC8gOmFjdGl2ZSAxOjEpID09PVxuICAgVXNlZCBieSB0aGUgXCJGb3JjZSBzdGF0ZXNcIiBwcmV2aWV3IHNlY3Rpb24gdG8gbWFrZSB0cmFuc2llbnQgc3RhdGVzXG4gICBzY3JlZW5zaG90dGFibGUuIEtlZXAgaW4gc3luYyB3aXRoIHRoZSByZWFsIGhvdmVyL2FjdGl2ZSBydWxlcyBhYm92ZS4gKi9cbi5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuaXMtZm9yY2UtaG92ZXIge1xuICAtLWFjLW92ZXJsYXktbzogMC41O1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNCk7XG4gIGJveC1zaGFkb3c6IDAgM3B4IDEwcHggcmdiYSgyMCwgMjUsIDgwLCAwLjA4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4ucWRuYXByby1hY3Rpdml0eS1jYXJkLmlzLWZvcmNlLXByZXNzZWQge1xuICAtLWFjLW92ZXJsYXktbzogMTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4NSk7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQuaXMtZm9yY2UtaG92ZXIge1xuICBib3gtc2hhZG93OiAwIDNweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xufVxuXG4vKiA9PT0gU21hbGxlc3Qgc2NyZWVuICgzMjBweCkgPT09ICovXG5AbWVkaWEgKG1heC13aWR0aDogMzIwcHgpIHtcbiAgLnFkbmFwcm8tYWN0aXZpdHktY2FyZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0MHB4IDFmcjtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQgLmFjLXRpbGUge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgfVxuXG4gIC5xZG5hcHJvLWFjdGl2aXR5LWNhcmQgLmFjLXRpbGUtdGljayBzdmcge1xuICAgIHdpZHRoOiAyNnB4O1xuICAgIGhlaWdodDogMjZweDtcbiAgfVxufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvYWN0aXZpdHktaWNvbi9fYWN0aXZpdHktaWNvbi1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby1hY3Rpdml0eS1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4LXNocmluazogMDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbiAuYWN0aXZpdHktaWNvbi1pbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi5hY3Rpdml0eS1pY29uLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xufVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi5hY3Rpdml0eS1pY29uLW1pc3Npbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIGJvcmRlcjogMXB4IGRhc2hlZCAjYzRjN2NjO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG4ucWRuYXByby1hY3Rpdml0eS1pY29uLmFjdGl2aXR5LWljb24tbWlzc2luZzo6YWZ0ZXIge1xuICBjb250ZW50OiBcIj9cIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICM4OThlOTk7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGl2aXR5LWljb24uYWN0aXZpdHktaWNvbi1taXNzaW5nIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgYm9yZGVyLWNvbG9yOiAjNTY1YjY2O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpdml0eS1pY29uLmFjdGl2aXR5LWljb24tbWlzc2luZzo6YWZ0ZXIge1xuICBjb2xvcjogIzZiNzI4MDtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL2FjdGl2aXR5LWljb24tcGlja2VyL19hY3Rpdml0eS1pY29uLXBpY2tlci1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIHFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXJcbiAqIFBvcnRlZCBpbnRvIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSBzbyB0aGUgcGlja2VyIGlzIHN0eWxlZCBvblxuICogdjEgcGFnZXMgdGhhdCBsb2FkIHRoZSBidW5kbGUgKGl0IHByZXZpb3VzbHkgb25seSBsaXZlZCBpbmxpbmUgaW5cbiAqIHRoZSBwcmV2aWV3ICsgYXMgYSBmb3ItU2FuZGVyIFNDU1MgZHJvcC1pbikuIFtLaW0gMjAyNi0wNS0zMV1cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlciB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogOHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlciAqLFxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgKjo6YmVmb3JlLFxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgKjo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyIC5haXAtZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoOCwgMWZyKTsgZ2FwOiA0cHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlciAuYWlwLWdyaWQgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpOyB9XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyIC5haXAtdGlsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgb3V0bGluZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zIGVhc2UsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLCBib3gtc2hhZG93IDE1MG1zIGVhc2UsIHRyYW5zZm9ybSAxMDBtcyBlYXNlO1xufVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgLmFpcC10aWxlIHFkbmFwcm8tYWN0aXZpdHktaWNvbiB7IHBvaW50ZXItZXZlbnRzOiBub25lOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgLmFpcC10aWxlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpOyBib3JkZXItY29sb3I6IHZhcigtLWMtc2lkZWJhci1pY29uKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgLmFpcC10aWxlOmFjdGl2ZSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgLmFpcC10aWxlOmZvY3VzLXZpc2libGUge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTsgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjApO1xufVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgLmFpcC10aWxlLmFpcC10aWxlLXNlbGVjdGVkIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYWN0aW9uLTUwMCk7IGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMDYpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cbi5xZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyIC5haXAtdGlsZS5haXAtdGlsZS1zZWxlY3RlZDpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMTApOyB9XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyIC5haXAtYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmctdG9wOiAycHg7XG59XG4vKiBcIlZpZXcgbW9yZVwiIChNZWVyIGljb25lbikgdXNlcyBxZG5hcHJvLWJ1dHRvbiAoc3VidGxlLXB1cnBsZSwgc21hbGwpLiAqL1xuXG4vKiAtLS0tIGN1cnJlbnQtb25seSAoMDQuMDguMjAyNikgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBLaW0sIHRha2VubGlqc3QtaW5zdGVsbGluZ2VuOiBcImlrIHdpbCBnZXdvb24gYWxsZWVuIGRlIGh1aWRpZ2UgaWNvbiBsYXRlblxuICAgemllbiBlbiBkZSBtZWVyIGljb24ga25vcCBuYWFzdCBlbGthYXIsIG9tIHJ1aW10ZSB0ZSBiZXNwYXJlblwiLiBEZSBob3N0IGlzXG4gICBub3JtYWFsIGVlbiBLT0xPTSAoZ3JpZCBib3Zlbiwga25vcCBlcm9uZGVyKTsgaW4gZGV6ZSBzdGFuZCB3b3JkdCBoaWogZWVuXG4gICBSSUosIHpvZGF0IGRlIGVuZSB0ZWdlbCBlbiBkZSBrbm9wIG5hYXN0IGVsa2FhciBzdGFhbi4gRGF0IHNjaGVlbHQgb3AgZWVuXG4gICBkaWNodGUgaW5zdGVsbGluZ2VucGFnaW5hIGVlbiBoZWxlIHJlZ2VsIGhvb2d0ZS5cbiAgIFppZSBxZG5hLWFjdGl2aXR5LWljb24tcGlja2VyLmpzJ3MgYGN1cnJlbnQtb25seWAgbm90ZSB2b29yIGRlIHJlc3QuICovXG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci5haXAtY3VycmVudC1vbmx5IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4vKiBEZSBncmlkIGhlZWZ0IGhpZXIgw6nDqW4gdGVnZWwsIGR1cyBnZWVuIGtvbG9tbWVucmFzdGVyIG1lZXIgbm9kaWcuICovXG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci5haXAtY3VycmVudC1vbmx5IC5haXAtZ3JpZCB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cbi8qIERlIDJweCBkaWUgZGUga25vcCBpbiBkZSBrb2xvbXN0YW5kIHZhbiBkZSBncmlkIGFmZHV3dCwgaG9vcnQgaGllciBuaWV0OlxuICAgbmFhc3QgZWxrYWFyIG1vZXRlbiB0ZWdlbCBlbiBrbm9wIG9wIMOpw6luIGxpam4gc3RhYW4uICovXG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci5haXAtY3VycmVudC1vbmx5IC5haXAtYWN0aW9ucyB7XG4gICAgcGFkZGluZy10b3A6IDA7XG59XG4vKiBMZWdlIHRlZ2VsOiBhbGxlZW4gemljaHRiYWFyIHpvbGFuZyBlciBub2cgZ2VlbiBpY29vbiBnZWtvemVuIGlzLiBIb3VkdCBkZVxuICAgZm9vdHByaW50IHZhc3Qgem9kYXQgZGUgcmlqIG5pZXQgdmVyc3ByaW5ndCwgZW4gZ2VzdGlwcGVsZCB6b2RhdCBoZXQgYWxzXG4gICBcImhpZXIga29tdCBpZXRzXCIgbGVlc3QgZW4gbmlldCBhbHMgZWVuIGthcG90IGljb29uLiAqL1xuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgLmFpcC10aWxlLmFpcC10aWxlLWVtcHR5IHtcbiAgICBib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5xZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyLmFpcC1kaXNhYmxlZCB7IG9wYWNpdHk6IDAuNTU7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi8qIEVycm9yIHN0YXRlICovXG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci5haXAtZXJyb3IgLmFpcC1ncmlkIHtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMTk4LCA5MCwgOTAsIDAuMTgpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTk4LCA5MCwgOTAsIDAuMDQpO1xufVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIgLmFpcC1lcnJvci1tZXNzYWdlIHtcbiAgICBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTJweDsgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTsgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLyogU2l6ZTogY29tcGFjdCAtIGRlbnNlIGdyaWQgZm9yIHRoZSBmdWxsLXNldCBwaWNrZXIgb3ZlcmxheSAqL1xuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIuYWlwLXNpemUtY29tcGFjdCB7IGdhcDogNnB4OyB9XG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci5haXAtc2l6ZS1jb21wYWN0IC5haXAtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7IGdhcDogNHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gICAgLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIuYWlwLXNpemUtY29tcGFjdCAuYWlwLWdyaWQgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg4LCAxZnIpOyB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci5haXAtc2l6ZS1jb21wYWN0IC5haXAtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDYsIDFmcik7IH1cbn1cbi5xZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyLmFpcC1zaXplLWNvbXBhY3QgLmFpcC10aWxlIHsgYm9yZGVyLXJhZGl1czogNnB4OyB9XG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci5haXAtc2l6ZS1jb21wYWN0IC5haXAtdGlsZTpob3ZlciB7IHRyYW5zZm9ybTogbm9uZTsgfVxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIuYWlwLXNpemUtY29tcGFjdCAuYWlwLXRpbGUuYWlwLXRpbGUtc2VsZWN0ZWQge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjMwKTtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL2FjdGl2aXR5LWljb24tcGlja2VyLW92ZXJsYXkvX2FjdGl2aXR5LWljb24tcGlja2VyLW92ZXJsYXktY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBxZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyLW92ZXJsYXlcbiAqIEFuY2hvcmVkIHNlYXJjaCBwb3BvdmVyIGZvciB0aGUgZnVsbCBhY3Rpdml0eS1pY29uIHNldC4gUG9ydGVkXG4gKiBpbnRvIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSBzbyBpdCBpcyBzdHlsZWQgb24gdjEgcGFnZXMgdGhhdFxuICogbG9hZCB0aGUgYnVuZGxlIChpdCBwcmV2aW91c2x5IG9ubHkgbGl2ZWQgaW5saW5lIGluIHRoZSBwcmV2aWV3KS5cbiAqIFRoZSBKUyBzZXRzIHBvc2l0aW9uIChsZWZ0L3RvcC93aWR0aCkgaW5saW5lIGFuZCB0b2dnbGVzIHRoZVxuICogLmFpcC1vdmVybGF5LW9wZW4gY2xhc3M7IHRoaXMgQ1NTIHN1cHBsaWVzIHRoZSBib3ggKyBjaHJvbWUuXG4gKiB6LWluZGV4IDkxMDAga2VlcHMgaXQgYWJvdmUgcWRuYXByby1tb2RhbCAoei1pbmRleCA5MDAwKS5cbiAqIFtLaW0gMjAyNi0wNS0zMV1cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ucWRuYXByby1hY3Rpdml0eS1pY29uLXBpY2tlci1vdmVybGF5IHsgZGlzcGxheTogY29udGVudHM7IH1cbi5xZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyLW92ZXJsYXkgKixcbi5xZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyLW92ZXJsYXkgKjo6YmVmb3JlLFxuLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXItb3ZlcmxheSAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLmFpcC1vdmVybGF5LXBvcG92ZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA5MTAwO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAxMnB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjE2KSxcbiAgICAgICAgMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gICAgbWF4LWhlaWdodDogNTIwcHg7XG4gICAgd2lkdGg6IDQ0MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gICAgYW5pbWF0aW9uOiBhaXAtb3ZlcmxheS1pbiAxNDBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjgsIDAuMiwgMSk7XG59XG4uYWlwLW92ZXJsYXktcG9wb3Zlci5haXAtb3ZlcmxheS1vcGVuIHsgZGlzcGxheTogZmxleDsgfVxuQGtleWZyYW1lcyBhaXAtb3ZlcmxheS1pbiB7XG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KSBzY2FsZSgwLjk4KTsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7IH1cbn1cblxuLmFpcC1vdmVybGF5LWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDsgcGFkZGluZzogMTJweCAxMnB4IDEycHggMTZweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yKTsgZmxleC1zaHJpbms6IDA7XG59XG4uYWlwLW92ZXJsYXktdGl0bGUge1xuICAgIG1hcmdpbjogMDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMjBweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4uYWlwLW92ZXJsYXktY2xvc2UgeyBmbGV4LXNocmluazogMDsgfVxuXG4uYWlwLW92ZXJsYXktYm9keSB7XG4gICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDEycHggMTZweCAwIDE2cHg7IGZsZXg6IDEgMSBhdXRvOyBtaW4taGVpZ2h0OiAwO1xufVxuLmFpcC1vdmVybGF5LXRvb2xiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDsgZmxleC1zaHJpbms6IDA7XG59XG4uYWlwLW92ZXJsYXktc2VhcmNoIHsgZmxleDogMSAxIGF1dG87IG1pbi13aWR0aDogMDsgfVxuLmFpcC1vdmVybGF5LWNvdW50IHtcbiAgICBmbGV4OiAwIDAgYXV0bzsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmFpcC1vdmVybGF5LXNjcm9sbCB7XG4gICAgZmxleDogMSAxIGF1dG87IG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3cteTogYXV0bzsgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDEycHggNHB4IDEycHggMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yKTsgbWFyZ2luLXRvcDogLTRweDtcbn1cbi5haXAtb3ZlcmxheS1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDEwcHg7IH1cbi5haXAtb3ZlcmxheS1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTgpOyBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuLmFpcC1vdmVybGF5LXNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMjgpOyB9XG5cbi5haXAtb3ZlcmxheS1zZW50aW5lbCB7XG4gICAgZmxleC1zaHJpbms6IDA7IGhlaWdodDogMXB4OyBtYXJnaW4tdG9wOiA0cHg7IHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uYWlwLW92ZXJsYXktZW1wdHkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogNDBweCA4cHg7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuLmFpcC1vdmVybGF5LWVtcHR5LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1jLWNoaXAtZ3JleS10ZXh0KTsgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuLmFpcC1vdmVybGF5LWVtcHR5LXN1YiB7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IH1cblxuLmFpcC1vdmVybGF5LWZvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4OyBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yKTsgZmxleC1zaHJpbms6IDA7XG59XG5cbi8qIENvbXBhY3QgdGlsZSBncmlkIGluc2lkZSB0aGUgcG9wb3ZlciAoYXV0by1maWxsIDM2cHggY2VsbHMpLiAqL1xuLmFpcC1vdmVybGF5LXBvcG92ZXIgLnFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXIuYWlwLXNpemUtY29tcGFjdCAuYWlwLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgMzZweCk7XG4gICAgZ2FwOiA4cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBpY29uLXNldD1cIm1kaVwiIOKAlCBvd24gc2ltcGxlIHRpbGUgZ3JpZCAoZmxvd2VkaXRvciBhcHBlYXJhbmNlIG1vZGFsLFxuICogMTIuMDcuMjAyNikuIFBhcmFsbGVsIHRvIHRoZSAuYWlwLWdyaWQvLmFpcC10aWxlIHJlY2lwZSBhYm92ZSBzbyBib3RoXG4gKiBtb2RlcyBsb29rIGlkZW50aWNhbCwgV0lUSE9VVCB0b3VjaGluZyBxZG5hcHJvLWFjdGl2aXR5LWljb24tcGlja2VyXG4gKiBpdHNlbGYgKHRoYXQgY29tcG9uZW50IGlzIGEgbG9hZC1iZWFyaW5nIFRhc2tsaXN0cyBkZXBlbmRlbmN5IOKAlCBzZWUgdGhlXG4gKiBKUyBkb2NibG9jayBmb3Igd2h5IHRoaXMgc3RheXMgYSBzZXBhcmF0ZSwgcGFyYWxsZWwgZ3JpZCkuXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5haXAtb3ZlcmxheS1tZGktZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIDM2cHgpO1xuICAgIGdhcDogOHB4O1xuICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG59XG4uYWlwLW92ZXJsYXktbWRpLXRpbGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS02MDApO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2UsIGJveC1zaGFkb3cgMTUwbXMgZWFzZTtcbn1cbi5haXAtb3ZlcmxheS1tZGktdGlsZSBxZG5hcHJvLWljb24ge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmFpcC1vdmVybGF5LW1kaS10aWxlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xufVxuLmFpcC1vdmVybGF5LW1kaS10aWxlOmZvY3VzLXZpc2libGUge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSg3MCwgODIsIDI0MywgMC4yMCk7XG59XG4uYWlwLW92ZXJsYXktbWRpLXRpbGUuYWlwLW92ZXJsYXktbWRpLXRpbGUtc2VsZWN0ZWQge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjA2KTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG4gICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuYWlwLW92ZXJsYXktbWRpLXRpbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICAgIGNvbG9yOiAjZDFkNWRiO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5haXAtb3ZlcmxheS1tZGktdGlsZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmFpcC1vdmVybGF5LW1kaS10aWxlLmFpcC1vdmVybGF5LW1kaS10aWxlLXNlbGVjdGVkIHtcbiAgICBib3JkZXItY29sb3I6ICNhNWFjZmY7XG4gICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4xOCk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMzApO1xuICAgIGNvbG9yOiAjYTVhY2ZmO1xufVxuXG4vLyAtLS0tIGljb24tc2V0PVwiYW5pbWF0ZWRcIjogdGhlIG1vdmluZyBzZXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2FtZSB0aWxlIGlkaW9tIGFzIHRoZSBtZGkgZ3JpZCBhYm92ZSwgb25lIHNpemUgdXA6IHRoZXNlIGFyZSBmdWxsLWNvbG91clxuLy8gZHJhd2luZ3MsIG5vdCBtb25vY2hyb21lIGdseXBocywgYW5kIGF0IDM2cHggdGhleSB0dXJuIHRvIG11c2guIDQ4cHggaXMgdGhlXG4vLyBzbWFsbGVzdCBzaXplIGF0IHdoaWNoIHRoZSBhcnR3b3JrIGlzIHN0aWxsIHJlYWRhYmxlLCBtZWFzdXJlZCBhZ2FpbnN0IHRoZVxuLy8gaHViIHRpbGUncyBvd24gaGlzdG9yeSB3aXRoIHRoaXMgc2V0LiBbS2ltIDMxLjA4LjIwMjZdXG4uYWlwLW92ZXJsYXktYW5pbS1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgNDhweCk7XG4gICAgZ2FwOiA4cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbn1cblxuLmFpcC1vdmVybGF5LWFuaW0tdGlsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlLCBib3JkZXItY29sb3IgMTIwbXMgZWFzZSwgYm94LXNoYWRvdyAxNTBtcyBlYXNlO1xufVxuXG4vLyBUaGUgcGxheWVyIG11c3Qgbm90IGVhdCB0aGUgY2xpY2s6IHRoZSB0aWxlIGlzIHRoZSBidXR0b24sIGFuZCBhIHBvaW50ZXJcbi8vIGV2ZW50IGxhbmRpbmcgb24gdGhlIGFuaW1hdGlvbiB3b3VsZCBuZXZlciByZWFjaCB0aGUgZGVsZWdhdGVkIGhhbmRsZXIuXG4vLyBJdHMgaG92ZXIgdHJpZ2dlciBzdGlsbCBmaXJlcyDigJQgdGhhdCBsaXN0ZW5zIG9uIHRoZSBlbGVtZW50IGl0c2VsZi5cbi5haXAtb3ZlcmxheS1hbmltLXRpbGUgcWRuYXByby1sb3R0aWUge1xuICAgIC0tcWwtc2l6ZTogMzhweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmFpcC1vdmVybGF5LWFuaW0tdGlsZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtc2lkZWJhci1pY29uKTtcbn1cblxuLmFpcC1vdmVybGF5LWFuaW0tdGlsZTpmb2N1cy12aXNpYmxlIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjApO1xufVxuXG4uYWlwLW92ZXJsYXktYW5pbS10aWxlLmFpcC1vdmVybGF5LWFuaW0tdGlsZS1zZWxlY3RlZCB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMDYpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5haXAtb3ZlcmxheS1hbmltLXRpbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5haXAtb3ZlcmxheS1hbmltLXRpbGU6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5haXAtb3ZlcmxheS1hbmltLXRpbGUuYWlwLW92ZXJsYXktYW5pbS10aWxlLXNlbGVjdGVkIHtcbiAgICBib3JkZXItY29sb3I6ICNhNWFjZmY7XG4gICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4xOCk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMzApO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1hY3Rpdml0eS1yb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFFETkEgdG9rZW5zIHVzZWQ6XG4vLyAgICBTdXJmYWNlL0dsYXNzL0xpZ2h0ICAgICAgICAgICAgIHJnYmEoMjU1LDI1NSwyNTUsMC42MCkgICBkZWZhdWx0IGJnXG4vLyAgICBTdXJmYWNlL0dsYXNzL0xpZ2h0LUhvdmVyICAgICAgIHJnYmEoMjU1LDI1NSwyNTUsMC44MikgICBob3ZlciBiZ1xuLy8gICAgU3VyZmFjZS9HbGFzcy9MaWdodC1BY3RpdmUgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuNzApICAgcHJlc3NlZCBiZ1xuLy8gICAgU3VyZmFjZS9HbGFzcy9EYXJrICAgICAgICAgICAgICByZ2JhKDIwLDIyLDM1LDAuNzApICAgICAgZGFyayBkZWZhdWx0IGJnXG4vLyAgICBTdXJmYWNlL0dsYXNzL0RhcmstSG92ZXIgICAgICAgIHJnYmEoNDAsNDQsNjUsMC44NSkgICAgICBkYXJrIGhvdmVyIGJnXG4vLyAgICBCb3JkZXIvR2xhc3MvTGlnaHQgICAgICAgICAgICAgIHJnYmEoMjU1LDI1NSwyNTUsMC43MCkgICBsaWdodCBib3JkZXJcbi8vICAgIEJvcmRlci9HbGFzcy9EYXJrICAgICAgICAgICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjA4KSAgIGRhcmsgYm9yZGVyXG4vLyAgICBQdXJwbGUtSGlnaGxpZ2h0ICAgICAgICAgICAgICAgICM0NjUyZjMgICAgICAgICAgICAgICAgICBkcm9wIGluZGljYXRvcnMsIGRyYWcgYWNjZW50XG4vLyAgICBJY29uL0FjdGlvbi1QdXJwbGUgKHByZXNzZWQpICAgICM0MDQ5OWEgICAgICAgICAgICAgICAgICBmb2N1cyByaW5nLCBhY3RpdmUgYnRuIGNvbG9yXG4vLyAgICBQdXJwbGUtSGlnaGxpZ2h0IEAgMjUlICAgICAgICAgIHJnYmEoNzAsODIsMjQzLDAuMjUpICAgICBmb2N1cyBnbG93XG4vLyAgICBUZXh0L09uLUJvZHkgICAgICAgICAgICAgICAgICAgICMwYjBiMGQgICAgICAgICAgICAgICAgICByb3cgbmFtZVxuLy8gICAgVGV4dC9Pbi1EYXJrICAgICAgICAgICAgICAgICAgICAjZjNmNGY2ICAgICAgICAgICAgICAgICAgZGFyayBtb2RlIHJvdyBuYW1lXG4vLyAgICBJY29uL1N1YnRsZSAgICAgICAgICAgICAgICAgICAgICM2YjcyODAgICAgICAgICAgICAgICAgICBkZWZhdWx0IGJ1dHRvbiBpY29uXG4vLyAgICBJY29uL0ZhZGVkICAgICAgICAgICAgICAgICAgICAgICM5Y2EzYWYgICAgICAgICAgICAgICAgICBzZXR0aW5ncyBidXR0b24gaWNvblxuLy8gICAgU3VyZmFjZS9Sb3ctYnRuLWRlZmF1bHQgICAgICAgICByZ2JhKDAsMCwwLDAuMDQpICAgICAgICAgYnV0dG9uIHJlc3RpbmcgYmdcbi8vICAgIEJvcmRlci9EaXZpZGVyICAgICAgICAgICAgICAgICAgcmdiYSgwLDAsMCwwLjA4KSAgICAgICAgIHZlcnRpY2FsIGRpdmlkZXIgKyByZXF1aXJlZCBib3JkZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5xZG5hcHJvLWFjdGl2aXR5LXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgLy8gRm9jdXMgcmluZyB0b2tlbnMg4oCUIG92ZXJyaWRkZW4gcGVyIGRhcmsgbW9kZVxuICAgIC0tYy1mb2N1cy1yaW5nOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgIC0tYy1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cblxuLy8gRGUgaG9layB2YW4gZGUgYm9yZGVyIGJlYW0gb3AgZGUgdmVyZHViYmVsYWFyLWJhZGdlICgucm93LXB1bHNlLXNjb3JlLWRvdWJsZSxcbi8vIGhlbGVtYWFsIG9uZGVyYWFuIGRpdCBiZXN0YW5kKS4gTU9FVCBlZW4gdG9wLWxldmVsIEBwcm9wZXJ0eSB6aWpuIGVuIG5pZXRcbi8vIGdlbmVzdDogYWxsZWVuIGVlbiBhbHMgPGFuZ2xlPiBnZXJlZ2lzdHJlZXJkZSBlaWdlbnNjaGFwIGthbiBlZW5cbi8vIGNvbmljLWdyYWRpZW50IGxhdGVuIGRyYWFpZW4uIFplbGZkZSBwYXRyb29uIGFscyAtLXFydC1iZWFtLWFuZ2xlIGluXG4vLyBfcmFkaW8tdGlsZS5zY3NzIGVuIC0tcW5wLWJlYW0tYW5nbGUgaW4gX25vZGUtcGlja2VyLnNjc3MuXG5AcHJvcGVydHkgLS1yb3ctcHVsc2UtYmVhbS1hbmdsZSB7XG4gICAgc3ludGF4OiBcIjxhbmdsZT5cIjtcbiAgICBpbml0aWFsLXZhbHVlOiAwZGVnO1xuICAgIGluaGVyaXRzOiBmYWxzZTtcbn1cblxuLy8gLS0tLSBHbGFzcyBjYXJkIC0tLS1cblxuLmFjdGl2aXR5LXJvdy1pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi1oZWlnaHQ6IDY0cHg7XG4gICAgZmxleDogMTtcbiAgICBwYWRkaW5nOiA4cHggMTJweCA4cHggMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGN1cnNvcjogZ3JhYjtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgLy8gQ2hlY2staW4gaXMgcGlubmVkIHRvIHRoZSB0b3Ag4oCUIG5vdCBkcmFnZ2FibGUuIEl0IElTIGNsaWNrYWJsZSAob3BlbnMgaXRzXG4gICAgLy8gc2V0dGluZ3MgbW9kYWwpLCBzbyBzaG93IGEgcG9pbnRlciwgbmV2ZXIgdGhlIGdyYWIvZ3JhYmJpbmcgYWZmb3JkYW5jZS4gW0tpbSAyMDI2LTA2LTE2XVxuICAgICYuaXMtY2hlY2tpbixcbiAgICAmLmlzLWNoZWNraW46YWN0aXZlIHsgY3Vyc29yOiBwb2ludGVyOyB9XG5cbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjApO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcwKTtcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcblxuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGJhY2tncm91bmQgMTUwbXMgZWFzZSxcbiAgICAgICAgYm9yZGVyLWNvbG9yIDE1MG1zIGVhc2UsXG4gICAgICAgIGJveC1zaGFkb3cgMTUwbXMgZWFzZSxcbiAgICAgICAgdHJhbnNmb3JtIDEwMG1zIGVhc2U7XG59XG5cbi8vIC0tLS0gU3RhdGU6IEhvdmVyIChoYW5kbGVkIGluIGFjY2VudCBiYXIgYmxvY2sgYmVsb3cpIC0tLS1cblxuLy8gLS0tLSBTdGF0ZTogRm9jdXMgLS0tLVxuXG4uYWN0aXZpdHktcm93LWlubmVyOmZvY3VzLXZpc2libGUsXG4uYWN0aXZpdHktcm93LWlubmVyLmZvcmNlLWZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgMCAwIDJweCB2YXIoLS1jLWZvY3VzLXJpbmcpLFxuICAgICAgICAwIDAgMCA2cHggdmFyKC0tYy1mb2N1cy1nbG93KTtcbn1cblxuLmFjdGl2aXR5LXJvdy1pbm5lci5kaXNhYmxlZDpmb2N1cy12aXNpYmxlLFxuLmFjdGl2aXR5LXJvdy1pbm5lci5kaXNhYmxlZC5mb3JjZS1mb2N1cyB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLy8gLS0tLSBTdGF0ZTogQWN0aXZlIC8gUHJlc3NlZCAtLS0tXG4vLyBQdXJwbGUgdGludCArIHNjYWxlIHNpZ25hbHMgXCJJJ20gb3BlbmluZyB0aGUgZmxvdyBlZGl0b3JcIiDigJQgc3Ryb25nIGVub3VnaCB0byBmZWVsIG9uIGNsaWNrXG5cbi8vIC5pcy1wcmVzc2luZyBpcyBzZXQgdmlhIEpTIG9ubHkgd2hlbiB0aGUgcGFuZWwgaXRzZWxmIChub3QgYSBjaGlsZCBidXR0b24pIGlzIHByZXNzZWQuXG4vLyBUaGlzIHByZXZlbnRzIHRoZSBwcmVzc2VkIHN0YXRlIGZyb20gZmlyaW5nIHdoZW4gY2xpY2tpbmcgYnV0dG9ucyBpbnNpZGUgdGhlIHJvdy5cbi5hY3Rpdml0eS1yb3ctaW5uZXIuaXMtcHJlc3Npbmc6bm90KC5kaXNhYmxlZCksXG4uYWN0aXZpdHktcm93LWlubmVyLmZvcmNlLWFjdGl2ZTpub3QoLmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4xMCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI4KTtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMTIpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NzUpO1xuICAgIGN1cnNvcjogZ3JhYmJpbmc7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgYmFja2dyb3VuZCA2MG1zIGVhc2UsXG4gICAgICAgIGJvcmRlci1jb2xvciA2MG1zIGVhc2UsXG4gICAgICAgIHRyYW5zZm9ybSA2MG1zIGVhc2U7XG59XG5cbi8vIC0tLS0gU3RhdGU6IERpc2FibGVkIC0tLS1cblxuLmFjdGl2aXR5LXJvdy1pbm5lci5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC40NTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vLyAtLS0tIFN0YXRlOiBBcmNoaXZlZCAtLS0tXG4vLyBWaXN1YWwgY3VlIHRoYXQgdGhpcyBhY3Rpdml0eSBpcyBpbiB0aGUgYXJjaGl2ZSBzZWN0aW9uLiBTdGlsbCBmdWxseVxuLy8gaW50ZXJhY3RpdmUgKGRyYWctYW5kLWRyb3AgYmFjaywgY29nLW1lbnUgcmVhY3RpdmF0ZSksIG9ubHkgdGhlXG4vLyBcIm5hdmlnYXRlIHRvIGZsb3cgZWRpdG9yXCIgYWZmb3JkYW5jZSBpcyBzdXBwcmVzc2VkIChubyBob3ZlciBhY2NlbnQpLlxuLmFjdGl2aXR5LXJvdy1pbm5lci5hcmNoaXZlZCB7XG4gICAgb3BhY2l0eTogMC42MDtcbn1cbi5hY3Rpdml0eS1yb3ctaW5uZXIuYXJjaGl2ZWQ6aG92ZXI6bm90KC5kaXNhYmxlZCkgLnJvdy1hY2NlbnQtYmFyIHtcbiAgICBvcGFjaXR5OiAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBubyBhY2NlbnQtYmFyIOKAlCBhcmNoaXZlZCByb3dzIGFyZSBub3Qgb3BlbmFibGVcbn1cbi5hY3Rpdml0eS1yb3ctaW5uZXIuYXJjaGl2ZWQuaXMtcHJlc3Npbmc6bm90KC5kaXNhYmxlZCksXG4uYWN0aXZpdHktcm93LWlubmVyLmFyY2hpdmVkLmZvcmNlLWFjdGl2ZTpub3QoLmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYwKTsgLy8gc3VwcHJlc3MgcHJlc3NlZC1zdGF0ZSBwdXJwbGUgdGludFxuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcwKTtcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vIC0tLS0gVmFyaWFudDogQnJpZWZpbmcgLS0tLVxuLy8gQSBicmllZmluZyByb3cgaXMgcmVhZGluZyBtYXRlcmlhbCBwYXJrZWQgaW4gdGhlIGFjdGl2aXR5IGxpc3QsIG5vdCB3b3JrIHRvXG4vLyBjb21wbGV0ZS4gSXQgbXVzdCBiZSByZWFkYWJsZSBhcyBcIm5vdCBhIHRhc2tcIiBhdCBhIGdsYW5jZSwgZnJvbSBhY3Jvc3MgdGhlXG4vLyBsaXN0LCB3aXRob3V0IHJlYWRpbmcgYSBzaW5nbGUgd29yZC4gVGhyZWUgc2lnbmFscyBkbyB0aGF0OlxuLy8gICAxLiBhIHNvZnQgYmx1ZSBzdXJmYWNlIGluc3RlYWQgb2YgdGhlIHdoaXRlIGdsYXNzIGV2ZXJ5IGFjdGl2aXR5IHVzZXNcbi8vICAgICAgKHNhbWUgcGFsZXR0ZSBhcyB0aGUgYmx1ZSBxZG5hcHJvLXRhZyBpdCBjYXJyaWVzKSxcbi8vICAgMi4gYSBzaG9ydGVyIHJvdyDigJQgaXQgaGFzIG5vIHJlcXVpcmVkIGNoZWNrYm94LCBubyB2ZXJzaW9uIGFuZCBubyBjb2x1bW5cbi8vICAgICAgYnV0dG9ucywgc28gdGhlIGV4dHJhIGhlaWdodCB3b3VsZCBqdXN0IGJlIGVtcHR5IHNwYWNlLFxuLy8gICAzLiB0aGUgYmx1ZSBcIkJyaWVmaW5nXCIgdHlwZSB0YWcgcmVuZGVyZWQgYnkgdGhlIGNvbXBvbmVudC5cbi8vIEV2ZXJ5dGhpbmcgaW50ZXJhY3RpdmUgc3RheXMgaWRlbnRpY2FsOiBpdCBkcmFncywgcmVvcmRlcnMgYW5kIG9wZW5zIGxpa2UgYW55XG4vLyBvdGhlciByb3csIHNvIHRoZSBwdXJwbGUgYWNjZW50IGJhciBpcyBkZWxpYmVyYXRlbHkgbGVmdCBwdXJwbGUg4oCUIHRoYXQgYmFyIGlzXG4vLyB0aGUgZHJhZy9vcGVuIGFmZm9yZGFuY2UsIG5vdCBhIHR5cGUgc2lnbmFsLiBbS2ltIDIwMjYtMDgtMDJdXG4uYWN0aXZpdHktcm93LWlubmVyLmlzLWJyaWVmaW5nIHtcbiAgICBtaW4taGVpZ2h0OiA1NnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjMwLCAyMzksIDI0OSwgMC43NSk7ICAgICAgLy8gVGFnL0JsdWUgYmcgQCA3NSUgb3ZlciB0aGUgZ2xhc3NcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTgxLCAyMDYsIDIzNywgMC45MCk7ICAgIC8vIFRhZy9CbHVlLTJcbn1cblxuLmFjdGl2aXR5LXJvdy1pbm5lci5pcy1icmllZmluZzpob3Zlcjpub3QoLmRpc2FibGVkKSxcbi5hY3Rpdml0eS1yb3ctaW5uZXIuaXMtYnJpZWZpbmcuZm9yY2UtaG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjA2LCAyMjIsIDI0MywgMC44OCk7ICAgICAgLy8gVGFnL0JsdWUgYmctaG92ZXJcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTMzLCAxNjEsIDIzNiwgMC45MCk7ICAgIC8vIFRhZy9CcmlnaHQtYmx1ZVxufVxuXG4vLyAtLS0tIFN0YXRlOiBEcmFnZ2luZyAtLS0tXG5cbnFkbmFwcm8tYWN0aXZpdHktcm93W2RyYWdnaW5nXSAuYWN0aXZpdHktcm93LWlubmVyIHtcbiAgICBvcGFjaXR5OiAwLjM1O1xuICAgIGN1cnNvcjogZ3JhYmJpbmc7XG59XG5cbi8vIC0tLS0gRHJvcCBpbmRpY2F0b3JzIC0tLS1cblxucWRuYXByby1hY3Rpdml0eS1yb3dbZHJvcC1hYm92ZV0gLmFjdGl2aXR5LXJvdy1pbm5lciB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAtM3B4IDAgMCB2YXIoLS1jLWFjdGlvbi01MDApLFxuICAgICAgICAwIDAgMCAycHggcmdiYSg3MCwgODIsIDI0MywgMC4xNSk7XG59XG5cbnFkbmFwcm8tYWN0aXZpdHktcm93W2Ryb3AtYmVsb3ddIC5hY3Rpdml0eS1yb3ctaW5uZXIge1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgM3B4IDAgMCB2YXIoLS1jLWFjdGlvbi01MDApLFxuICAgICAgICAwIDAgMCAycHggcmdiYSg3MCwgODIsIDI0MywgMC4xNSk7XG59XG5cbi8vIC0tLS0gU3RhdGU6IEhvdmVyIC0tLS1cblxuLmFjdGl2aXR5LXJvdy1pbm5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSxcbi5hY3Rpdml0eS1yb3ctaW5uZXIuZm9yY2UtaG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Mik7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTApO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjEwKTtcbn1cblxuLy8gLS0tLSBMZWZ0IGFjY2VudCBiYXIgLS0tLVxuLy8gUmVhbCBET00gZWxlbWVudCDigJQgYXZvaWRzIGJhY2tkcm9wLWZpbHRlciBzdGFja2luZyBjb250ZXh0IGlzc3VlcyB3aXRoIDo6YmVmb3JlLlxuLy8gb3ZlcmZsb3c6aGlkZGVuIGNsaXBzIGl0IHRvIGJvcmRlci1yYWRpdXMuIGJveC1zaGFkb3cgKGZvY3VzIHJpbmcpIGlzIHVuYWZmZWN0ZWQuXG5cbi5hY3Rpdml0eS1yb3ctaW5uZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5yb3ctYWNjZW50LWJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDRweDtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgd2lkdGg6IDRweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGVhc2U7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogMTtcbn1cblxuLmFjdGl2aXR5LXJvdy1pbm5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSAucm93LWFjY2VudC1iYXIsXG4uYWN0aXZpdHktcm93LWlubmVyLmZvcmNlLWhvdmVyOm5vdCguZGlzYWJsZWQpIC5yb3ctYWNjZW50LWJhciB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLy8gQ2hlY2staW4gaXMgcGlubmVkIChub3QgZHJhZ2dhYmxlKSwgc28gdGhlIGFjY2VudCBiYXIg4oCUIHdoaWNoIGlzIHRoZSBkcmFnL2dyaXBcbi8vIGFmZm9yZGFuY2UgKGl0IHJlcGxhY2VkIHRoZSBvbGQgZ3JpcCBoYW5kbGUpIOKAlCBtdXN0IE5PVCBhcHBlYXIgb24gaG92ZXIuIFtLaW0gMjAyNi0wNi0xNl1cbi5hY3Rpdml0eS1yb3ctaW5uZXIuaXMtY2hlY2tpbjpob3ZlciAucm93LWFjY2VudC1iYXIsXG4uYWN0aXZpdHktcm93LWlubmVyLmlzLWNoZWNraW4uZm9yY2UtaG92ZXIgLnJvdy1hY2NlbnQtYmFyIHtcbiAgICBvcGFjaXR5OiAwO1xufVxuXG4vLyBTYW1lIHJlYXNvbiwgc2FtZSBydWxlLCBmb3IgYSBMT0NLRUQgKGZpeGVkLWRhdGUgLyBwdWxzZSBmaW5pc2gpIG9yIFJFQURPTkxZXG4vLyByb3c6IG5laXRoZXIgaXMgZHJhZ2dhYmxlIOKAlCBzZWUgYGRyYWdnYWJsZT1cIiR7IWxvY2tlZCAmJiAhcmVhZG9ubHl9XCJgIGluXG4vLyBfcmVuZGVyUHVsc2UoKSDigJQgc28gdGhlIGJhciBwcm9taXNlcyBhIGdyYWIgdGhhdCBkb2VzIG5vdCBleGlzdC5cbi8vIEtpbSBzcG90dGVkIHRoaXMgb24gdGhlIFB1bHNlIGZpbmlzaCByb3cgKDAyLjA5LjIwMjYpIHJpZ2h0IGFmdGVyIHRoZVxuLy8gY2FsZW5kYXItbG9jayBpY29uIHdhcyBkcm9wcGVkIGZyb20gaXQ6IFwibWFhciBkZSBkcmFnaGFuZGxlIGlzIGVyIG5vZyBzdGVlZHNcbi8vIGJpaiBob3ZlclwiLiBUaGUgYmFyIGlzIGVhc3kgdG8gbWlzcyB3aGVuIHlvdSBnbyBsb29raW5nIGZvciBhIGdyaXAsIGJlY2F1c2Vcbi8vIHRoZSBncmlwIGVsZW1lbnQgaXRzZWxmIHdhcyByZW1vdmVkIGxvbmcgYWdvIChzZWUgLnJvdy1ncmlwIGJlbG93KSBhbmQgdGhpc1xuLy8gYmFyIHF1aWV0bHkgdG9vayBvdmVyIHRoZSBqb2IuXG5xZG5hcHJvLWFjdGl2aXR5LXJvd1tsb2NrZWRdIC5hY3Rpdml0eS1yb3ctaW5uZXI6aG92ZXIgLnJvdy1hY2NlbnQtYmFyLFxucWRuYXByby1hY3Rpdml0eS1yb3dbbG9ja2VkXSAuYWN0aXZpdHktcm93LWlubmVyLmZvcmNlLWhvdmVyIC5yb3ctYWNjZW50LWJhcixcbi5hY3Rpdml0eS1yb3ctaW5uZXIuaXMtcmVhZG9ubHk6aG92ZXIgLnJvdy1hY2NlbnQtYmFyLFxuLmFjdGl2aXR5LXJvdy1pbm5lci5pcy1yZWFkb25seS5mb3JjZS1ob3ZlciAucm93LWFjY2VudC1iYXIge1xuICAgIG9wYWNpdHk6IDA7XG59XG5cbi8vIEdyaXAgZWxlbWVudCByZW1vdmVkIGZyb20gSFRNTCDigJQgcmVwbGFjZWQgYnkgYWNjZW50IGJhclxuLnJvdy1ncmlwIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyAtLS0tIExheW91dCAtLS0tXG5cbi5yb3ctbGVmdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLnJvdy1hY3Rpdml0eS1pY29uIHsgZmxleC1zaHJpbms6IDA7IH1cblxuLnJvdy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNik7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5yb3ctaW5mbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLnJvdy1uYW1lIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi8vIC5yb3ctc3ViIHdyYXBzIHN0YXR1cyBiYWRnZSArIG1ldGEgKElEL3ZlcnNpb24pIG9uIG9uZSBzdWJ0aXRsZSBsaW5lXG4ucm93LXN1YiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLnJvdy1zdWI6ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG5cbi5yb3ctc3RhdHVzIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuLnJvdy1zdGF0dXM6ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIC0tLS0gTWV0YTogYWN0aXZpdHkgSUQgKyB2ZXJzaW9uIG51bWJlciAtLS0tXG5cbi5yb3ctbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNXB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ucm93LW1ldGEtaWQsXG4ucm93LW1ldGEtdmVyc2lvbiB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnJvdy1tZXRhLWRvdCB7XG4gICAgd2lkdGg6IDJweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTIwMCk7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8vIEFjdGl2aXR5IGRlc2NyaXB0aW9uIG9uIHRoZSBzdWJ0aXRsZSBsaW5lLCBhZnRlciAjaWQgwrcgdmVyc2lvbi4gVGFrZXMgdGhlXG4vLyByZW1haW5pbmcgd2lkdGggYW5kIHRydW5jYXRlcyB3aXRoIGFuIGVsbGlwc2lzIHNvIGxvbmcgZGVzY3JpcHRpb25zIG5ldmVyXG4vLyBicmVhayB0aGUgcm93IGxheW91dCAoZnVsbCB0ZXh0IGluIGEgdGl0bGUgdG9vbHRpcCkuIFtLaW0gMjAyNi0wNi0xN11cbi5yb3ctbWV0YS1kZXNjIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS00MDApO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4vLyAtLS0tIEFjdGl2aXR5LXR5cGUgdGFnIC0tLS1cbi8vIFNpdHMgY2VudHJlZCBpbiB0aGUgcm93LCBiZXR3ZWVuIHRoZSB0aXRsZSBibG9jayBhbmQgdGhlIGFjdGlvbiBpY29uc1xuLy8gKEtpbSdzIHNrZXRjaCkuIEFic29sdXRlbHkgcG9zaXRpb25lZCBhZ2FpbnN0IC5hY3Rpdml0eS1yb3ctaW5uZXIgKGFscmVhZHlcbi8vIHBvc2l0aW9uOnJlbGF0aXZlICsgb3ZlcmZsb3c6aGlkZGVuIGZvciB0aGUgYWNjZW50IGJhcikgc28gaXQgbmV2ZXJcbi8vIHBhcnRpY2lwYXRlcyBpbiB0aGUgcm93J3MgZmxleCBzaXppbmcg4oCUIGFkZGluZy9yZW1vdmluZyBpdCBjYW4ndCByZWZsb3cgb3Jcbi8vIHNxdWFzaCAucm93LWxlZnQncyB0aXRsZSBvciAucm93LXJpZ2h0J3MgYnV0dG9ucy4gRW1wdHkgKG5vIHFkbmFwcm8tdGFnXG4vLyBjaGlsZCkgd2hlbiB0aGUgcm93J3MgdHlwZSBoYXMgbm8gZW50cnkgaW4gVFlQRV9UQUdTLiBbS2ltIDIwMjYtMDctMTNdXG4ucm93LXR5cGUtdGFnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIHotaW5kZXg6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC8vIFNwYWNlIGJldHdlZW4gdGhlIHR5cGUgdGFnIGFuZCB0aGUgcmVhZC1vbmx5IHJlcGVhdCAvIHNpbmdsZS11bml0XG4gICAgLy8gaW5kaWNhdG9yIHRhZ3MsIHdoZW4gcHJlc2VudC4gW0tpbSAyMDI2LTA3LTEzXVxuICAgIGdhcDogNnB4O1xufVxuXG4vLyBSZWFkLW9ubHkgXCJBbGxvdyBmaWxsaW5nIGluIG11bHRpcGxlIHRpbWVzXCIgLyBcIlNlbGVjdCBvbmUgdW5pdCBhdCBhIHRpbWVcIlxuLy8gaW5kaWNhdG9yIHRhZ3Mg4oCUIGljb24tb25seSBxZG5hcHJvLXRhZyB1c2FnZSAobm8gdGV4dCBjb250ZW50KS4gVGhlIHRhZ1xuLy8gY29tcG9uZW50IGl0c2VsZiBhbHdheXMgcmVuZGVycyBhbiAoZW1wdHkpIC50YWctbGFiZWwgc3BhbiBhbG9uZ3NpZGUgdGhlXG4vLyBpY29uLCBhbmQgaXRzIG93biBnYXA6NHB4IHdvdWxkIG90aGVyd2lzZSBhZGQgbG9wc2lkZWQgdHJhaWxpbmcgcGFkZGluZ1xuLy8gYXJvdW5kIHRoYXQgZW1wdHkgc3Bhbi4gTmV1dHJhbGlzZWQgaGVyZSwgc2NvcGVkIHRvIHRoaXMgb25lIHVzYWdlLFxuLy8gaW5zdGVhZCBvZiB0b3VjaGluZyB0aGUgc2hhcmVkIHRhZyBjb21wb25lbnQuIFtLaW0gMjAyNi0wNy0xM11cbi5yb3ctdHlwZS10YWcgLnJvdy1pY29uLXRhZyB7XG4gICAgZ2FwOiAwO1xufVxuXG4vLyBIaWRlIG9uIG5hcnJvdyByb3dzIHJhdGhlciB0aGFuIGxldCBpdCBvdmVybGFwIGEgbG9uZyB0aXRsZSBvciBjcm93ZCB0aGVcbi8vIGFjdGlvbiBpY29ucyDigJQgdGhlIHRhZyBpcyBhIG5pY2UtdG8taGF2ZSBpZGVudGlmaWVyLCBub3QgY3JpdGljYWwgaW5mby5cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgIC5yb3ctdHlwZS10YWcgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi5yb3ctZGl2aWRlciB7XG4gICAgd2lkdGg6IDFweDtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIG1hcmdpbjogMTBweCA0cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLnJvdy1yaWdodCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vLyAtLS0tIEJ1dHRvbnMgLS0tLVxuLy8gQWxsIGZpdmUgcm93IGJ1dHRvbnMgKGJyaWVmaW5nLCBsb2dpYywgdW5pdC1saXN0LCBzZXR0aW5ncywgZG93bmxvYWQpIHVzZVxuLy8gcWRuYXByby1yb3ctYnRuIChzZWUgX3Jvdy1idG4uc2NzcyBmb3IgdGhlIGJ1dHRvbiBzdHlsaW5nIGl0c2VsZikuXG4vLyBPbmx5IHRoZSBsYXlvdXQgY29udGFpbmVycyAoLnJvdy1jb2wtYnRucywgLnJvdy1idG4tZGl2aWRlcikgbGl2ZSBoZXJlLlxuXG4ucm93LWNvbC1idG5zIHsgZGlzcGxheTogZmxleDsgZ2FwOiA0cHg7IH1cblxuLnJvdy1idG4tZGl2aWRlciB7XG4gICAgd2lkdGg6IDFweDtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIG1hcmdpbjogOHB4IDJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vLyAtLS0tIFJlcXVpcmVkIChyb3VuZCBjaGVja2JveCArIGxhYmVsKSAtLS0tXG4vLyBBbHdheXMgcmVuZGVyZWQgc28gdGhlIHVzZXIgY2FuIHRvZ2dsZSBpbiBib3RoIGRpcmVjdGlvbnMgZnJvbSBhbnkgcm93LlxuXG4ucm93LXJlcXVpcmVkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG59XG5cbi5yb3ctcmVxdWlyZWQtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLy8gLS0tLSBJbmRlbnQgKHN1YmZsb3cgcm93cykgLS0tLVxuXG4uYWN0aXZpdHktcm93LWlubmVyLmluZGVudCB7IG1hcmdpbi1sZWZ0OiA0NHB4OyB9XG5cbi8vIC0tLS0gV2FybmluZyBzbG90ICsgYnV0dG9uIChvdXRzaWRlIHRoZSBnbGFzcyBjYXJkKSAtLS0tXG4vLyBTbG90IGlzIGFsd2F5cyByZW5kZXJlZCDigJQga2VlcHMgYWxsIHJvd3MgdGhlIHNhbWUgdG90YWwgd2lkdGhcblxuLnJvdy13YXJuaW5nLXNsb3Qge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5yb3ctd2FybmluZy1idG4ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYwKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBiYWNrZ3JvdW5kIDE1MG1zIGVhc2UsXG4gICAgICAgIGJvcmRlci1jb2xvciAxNTBtcyBlYXNlLFxuICAgICAgICBib3gtc2hhZG93IDE1MG1zIGVhc2U7XG59XG5cbi8vIE5vdCBjb25uZWN0ZWQg4oCUIG9yYW5nZSwgYnJva2VuIGxpbmsgaWNvblxuLnJvdy13YXJuaW5nLWJ0bi0tbm90LWNvbm5lY3RlZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzQsIDg4LCAxMiwgMC4zNSk7XG4gICAgY29sb3I6IHZhcigtLWMtd2Fybi1vcmFuZ2UtNTAwKTtcbn1cblxuLnJvdy13YXJuaW5nLWJ0bi0tbm90LWNvbm5lY3RlZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjM0LCA4OCwgMTIsIDAuNTUpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjEwKTtcbiAgICBjb2xvcjogdmFyKC0tYy13YXJuLW9yYW5nZS02MDApO1xufVxuXG4vLyBVbnB1Ymxpc2hlZCBjaGFuZ2VzIOKAlCBhbWJlciwgdXBsb2FkIGljb25cbi5yb3ctd2FybmluZy1idG4tLXVucHVibGlzaGVkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxNywgMTE5LCA2LCAwLjMwKTtcbiAgICBjb2xvcjogdmFyKC0tYy13YXJuLWFtYmVyLTUwMCk7XG59XG5cbi5yb3ctd2FybmluZy1idG4tLXVucHVibGlzaGVkOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODIpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMTcsIDExOSwgNiwgMC41MCk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMTApO1xuICAgIGNvbG9yOiB2YXIoLS1jLXdhcm4tYW1iZXItNjAwKTtcbn1cblxuLy8gTm90IHB1Ymxpc2hlZCB5ZXQg4oCUIGFtYmVyLCBjbG91ZC1vZmYgaWNvblxuLnJvdy13YXJuaW5nLWJ0bi0tbm90LXB1Ymxpc2hlZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzksIDE0MiwgMiwgMC4zMik7XG4gICAgY29sb3I6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKTtcbn1cblxuLnJvdy13YXJuaW5nLWJ0bi0tbm90LXB1Ymxpc2hlZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjM5LCAxNDIsIDIsIDAuNTIpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjEwKTtcbiAgICBjb2xvcjogdmFyKC0tYy1zaWduYWwteWVsbG93LXRleHQpO1xufVxuXG4vLyBObyBsb2NhdGlvbiAoY2hlY2staW4gcmVxdWlyZXMgbG9jYXRpb24gYnV0IHRoZSB0YXNrbGlzdCBoYXMgbm9uZSkg4oCUIGFtYmVyLCBtYXJrZXIgaWNvblxuLnJvdy13YXJuaW5nLWJ0bi0tbm8tbG9jYXRpb24ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM5LCAxNDIsIDIsIDAuMzIpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG59XG5cbi5yb3ctd2FybmluZy1idG4tLW5vLWxvY2F0aW9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODIpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDE0MiwgMiwgMC41Mik7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMTApO1xuICAgIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctdGV4dCk7XG59XG5cbi8vIE5vIGFjY2VzcyAodGhlc2UgcGVvcGxlIGFyZSBub3QgYWxsb3dlZCB0byB2aWV3IHRoaXMgZG9jdW1lbnQpIOKAlCBhbWJlciwgbG9jayBpY29uLlxuLy8gU2FtZSBhbWJlciBmYW1pbHkvdG9uZSBhcyAucm93LXdhcm5pbmctYnRuLS1uby1sb2NhdGlvbiBhYm92ZS5cbi5yb3ctd2FybmluZy1idG4tLWFsZXJ0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIzOSwgMTQyLCAyLCAwLjMyKTtcbiAgICBjb2xvcjogdmFyKC0tYy13YXJuLXllbGxvdy02MDApO1xufVxuXG4ucm93LXdhcm5pbmctYnRuLS1hbGVydDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjM5LCAxNDIsIDIsIDAuNTIpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjEwKTtcbiAgICBjb2xvcjogdmFyKC0tYy1zaWduYWwteWVsbG93LXRleHQpO1xufVxuXG4ucm93LXdhcm5pbmctYnRuOmZvY3VzLXZpc2libGUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jLWZvY3VzLXJpbmcpLCAwIDAgMCA2cHggdmFyKC0tYy1mb2N1cy1nbG93KTtcbn1cblxuLnJvdy13YXJuaW5nLWJ0bjphY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43MCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk3KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgRGFyayBtb2RlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIHFkbmFwcm8tYWN0aXZpdHktcm93IHtcbiAgICAtLWMtZm9jdXMtcmluZzogI2E1YWNmZjtcbiAgICAtLWMtZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC40MCk7XG59XG5cbi8vIFNvbGlkIGRhcmsgc3VyZmFjZSAobm90IGdsYXNzKSDigJQgbWF0Y2hlcyB0aGUgdGFza2xpc3QgcGFnZSBkZXNpZ24uXG4vLyBLZXB0IHNvbGlkIG9uIHB1cnBvc2Ugc28gcm93cyByZWFkIGFzIGRpc3RpbmN0IGNhcmRzIG9uIHRoZSBkYXJrIGNhbnZhcy5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuYWN0aXZpdHktcm93LWlubmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMmUzMDM2O1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbn1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5hY3Rpdml0eS1yb3ctaW5uZXI6aG92ZXI6bm90KC5kaXNhYmxlZCksXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmFjdGl2aXR5LXJvdy1pbm5lci5mb3JjZS1ob3Zlcjpub3QoLmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogIzQwNDQ0ZDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuNDApO1xufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmFjdGl2aXR5LXJvdy1pbm5lci5pcy1wcmVzc2luZzpub3QoLmRpc2FibGVkKSxcbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuYWN0aXZpdHktcm93LWlubmVyLmZvcmNlLWFjdGl2ZTpub3QoLmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4xOCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjQwKTtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjApO1xufVxuXG4vLyBCcmllZmluZyB2YXJpYW50IG9uIGRhcms6IHNhbWUgaWRlYSBhcyBsaWdodCwgdXNpbmcgdGhlIGRhcmsgYmx1ZS10YWcgcGFpclxuLy8gKCMyZTNlNTQgLyAjNDQ1YTc4KSBzbyBpdCBzdGlsbCByZWFkcyBhcyBcIm5vdCBhIHRhc2tcIiBhZ2FpbnN0IHRoZSBzb2xpZFxuLy8gIzJlMzAzNiBhY3Rpdml0eSByb3dzLiBbS2ltIDIwMjYtMDgtMDJdXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmFjdGl2aXR5LXJvdy1pbm5lci5pcy1icmllZmluZyB7XG4gICAgYmFja2dyb3VuZDogIzJlM2U1NDtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTgxLCAyMDYsIDIzNywgMC4yMCk7XG59XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuYWN0aXZpdHktcm93LWlubmVyLmlzLWJyaWVmaW5nOmhvdmVyOm5vdCguZGlzYWJsZWQpLFxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5hY3Rpdml0eS1yb3ctaW5uZXIuaXMtYnJpZWZpbmcuZm9yY2UtaG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6ICM0NDVhNzg7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE4MSwgMjA2LCAyMzcsIDAuMzIpO1xufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1uYW1lICAgICAgICAgICAgIHsgY29sb3I6ICNmM2Y0ZjY7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LW1ldGEtaWQsXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1tZXRhLXZlcnNpb24gICAgIHsgY29sb3I6ICM0YjU1NjM7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LW1ldGEtZG90ICAgICAgICAgeyBiYWNrZ3JvdW5kOiAjMzc0MTUxOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1tZXRhLWRlc2MgICAgICAgIHsgY29sb3I6ICM2YjcyODA7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuYWN0aXZpdHktcm93LWlubmVyLm5hdmlnYXRpbmc6bm90KC5kaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMTUpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSg3MCwgODIsIDI0MywgMC4zNSk7XG4gICAgYm94LXNoYWRvdzogMCAycHggMTJweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LWRpdmlkZXIgICAgICAgICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1idG4tZGl2aWRlciAgICAgIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctaWNvbi1wbGFjZWhvbGRlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXJlcXVpcmVkICAgICAgICAgeyBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctcmVxdWlyZWQtbGFiZWwgICB7IGNvbG9yOiAjOWNhM2FmOyB9XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXdhcm5pbmctYnRuIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIwLCAyMiwgMzUsIDAuNzApO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMwKTtcbiAgICBjb2xvcjogI2ZiYmYyNDtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXdhcm5pbmctYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDQwLCA0NCwgNjUsIDAuODUpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4zMCk7XG4gICAgY29sb3I6ICNmNTllMGI7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIFZhcmlhbnQ6IFB1bHNlICh2YXJpYW50PVwicHVsc2VcIilcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIEJPQVJELXB1bHNlLXN0YXBwZW4tYWxzLXRha2VubGlqc3QubWQsIGthYXJ0IDkuIE93biBsYXlvdXQgaW5zaWRlIHRoZSBTQU1FXG4vLyAgLmFjdGl2aXR5LXJvdy1pbm5lciBzaGVsbCAoaGVpZ2h0L3JhZGl1cy9ob3Zlci9hY2NlbnQtYmFyIGFsbCBpbmhlcml0ZWRcbi8vICB1bmNoYW5nZWQgZnJvbSB0aGUgcnVsZXMgYWJvdmUpIOKAlCBvbmx5IHRoZSBDT05URU5UUyBiZXR3ZWVuIHRoZSBhY2NlbnRcbi8vICBiYXIgYW5kIHRoZSBkZWxldGUgYnV0dG9uIGFyZSB2YXJpYW50LXNwZWNpZmljLCBzbyBldmVyeSBzZWxlY3RvciBoZXJlIGlzXG4vLyAgc2NvcGVkIHVuZGVyIHRoZSBxZG5hcHJvLWFjdGl2aXR5LXJvd1t2YXJpYW50PVwicHVsc2VcIl0gaG9zdCBhdHRyaWJ1dGUgYW5kXG4vLyAgbmV2ZXIgdG91Y2hlcyB0aGUgdW5zY29wZWQgcnVsZXMgYWJvdmUuIFNpemVzIG1pcnJvciB0aGUgdGFrZW5saWpzdC1tYWF0XG4vLyAgdGhlIG9sZCAucHVsc2Utc3RlcC1yb3cgZmFtaWx5IHVzZWQgKGJhY2tvZmZpY2UyL3Njc3MvcGFydGlhbHMvdjEvX3B1bHNlLnNjc3MsXG4vLyAgbm93IHN1cGVyc2VkZWQgYnkgdGhpcyBjb21wb25lbnQg4oCUIHNlZSBrYWFydCAxMiBmb3IgaXRzIHJlbW92YWwpLlxuLy8gIFtLaW0gMjAyNi0wOC0yMF1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBTYW1lIGxlZnQgcGFkZGluZyBhcyB0aGUgZGVmYXVsdCByb3cgKDMycHggcmVzZXJ2ZXMgcm9vbSBmb3IgdGhlIGFjY2VudFxuLy8gYmFyKTsgdGhlIGdyaXAvbG9jayBnbHlwaCB0aGVuIHNpdHMgaW5zaWRlIHRoYXQgcmVzZXJ2ZWQgc3RyaXAgaW5zdGVhZCBvZlxuLy8gYmVpbmcgcHVyZWx5IGRlY29yYXRpdmUgbGlrZSBvbiB0aGUgZGVmYXVsdCByb3cuXG5xZG5hcHJvLWFjdGl2aXR5LXJvd1t2YXJpYW50PVwicHVsc2VcIl0gLmFjdGl2aXR5LXJvdy1pbm5lciB7XG4gICAgcGFkZGluZzogOHB4IDEycHggOHB4IDhweDtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi8vIFJlYWRvbmx5IHJvd3MgKGthYXJ0IDEzLCBhdHRyaWJ1dGUgYHJlYWRvbmx5YCk6IHRoZSByb3cga2VlcHMgaXRzIG5vcm1hbFxuLy8gbG9vayBhbmQgY2xpY2stdG8tb3BlbiBiZWhhdmlvdXIsIG9ubHkgdGhlIGdyYWIgYWZmb3JkYW5jZSBpcyBnb25lIOKAlCBzYW1lXG4vLyBzY29waW5nIGFwcHJvYWNoIGFzIHRoZSBkZWZhdWx0IHJvdydzICYuaXMtY2hlY2tpbiBjdXJzb3Igb3ZlcnJpZGUgYWJvdmUuXG5xZG5hcHJvLWFjdGl2aXR5LXJvd1t2YXJpYW50PVwicHVsc2VcIl0gLmFjdGl2aXR5LXJvdy1pbm5lci5pcy1yZWFkb25seSB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLyAtLS0tIEdyaXAgLyBsb2NrIChsZWZ0IGFmZm9yZGFuY2UpIC0tLS1cblxuLnJvdy1wdWxzZS1ncmlwLFxuLnJvdy1wdWxzZS1sb2NrIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMThweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5yb3ctcHVsc2UtZ3JpcCB7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS0zMDApO1xuICAgIGN1cnNvcjogZ3JhYjtcbn1cblxuLy8gUmVhZG9ubHk6IGhpZGUgdGhlIGdyaXAgYnV0IGtlZXAgaXRzIGJveCAodmlzaWJpbGl0eSwgbm90IGRpc3BsYXkpIHNvIHRoZVxuLy8gZGF5IHBpbGwvaWNvbi9uYW1lIHN0YXkgYWxpZ25lZCB3aXRoIGRyYWdnYWJsZSByb3dzLiBNaXJyb3JzIHRoZSBvbGRcbi8vIC5wdWxzZS1zdGVwLXJvdzpub3QoLmlzLWRyYWdnYWJsZSkgLnB1bHNlLXN0ZXAtZHJhZyBydWxlIHRoaXMgdmFyaWFudFxuLy8gcmVwbGFjZXMgKGJhY2tvZmZpY2UyL3Njc3MvcGFydGlhbHMvdjEvX3B1bHNlLnNjc3MsIGxpbmUgfjU1MSkuXG4uYWN0aXZpdHktcm93LWlubmVyLmlzLXJlYWRvbmx5IC5yb3ctcHVsc2UtZ3JpcCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vLyBMb2NrZWQgKGZpeGVkLWRhdGUpIHJvd3MgYXJlIG5vdCBkcmFnZ2FibGUg4oCUIG5vIGdyYWIgYWZmb3JkYW5jZSwgbXV0ZWRcbi8vIGNvbG91ciBtYXRjaGVzIHRoZSBkYXktcGlsbCBzdWIgbGFiZWwgc28gaXQgcmVhZHMgYXMgYSBjYXB0aW9uLCBub3QgYSBjb250cm9sLlxuLnJvdy1wdWxzZS1sb2NrIHtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCk7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ucm93LXB1bHNlLWxvY2sgcWRuYXByby1pY29uIHtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG59XG5cbi8vIC0tLS0gRGF5IHBpbGwgLS0tLVxuXG4vLyBLYWFydCAxOGI6IC5yb3ctcHVsc2UtZGF5IGlzIG5vdyBhIHJlYWwgPGJ1dHRvbj4gKHdhcyBhIDxkaXY+LCBzZWVcbi8vIHFkbmEtYWN0aXZpdHktcm93LmpzIF9yZW5kZXJQdWxzZSgpKSBzbyBpdCBjYW4gdGFrZSBrZXlib2FyZCBmb2N1cyBhbmRcbi8vIHNob3cgdGhlIDpmb2N1cy12aXNpYmxlIHJpbmcgYWxyZWFkeSBzdGFnZWQgaW4gX3B1bHNlLnNjc3MuIEEgPGJ1dHRvbj5cbi8vIGJyaW5ncyB1c2VyLWFnZW50IGNocm9tZSAoYmFja2dyb3VuZCwgYm9yZGVyLCBmb250LCBwYWRkaW5nLCBhcHBlYXJhbmNlKVxuLy8gdGhhdCBtdXN0IGJlIHJlc2V0IGhlcmUg4oCUIHNhbWUgcmVjaXBlIC5xZG5hcHJvLW5vZGUtcGlja2VyX19jYXQgYW5kXG4vLyAucWRuYXByby1jYWxlbmRhci1zZXJ2aWNlLWJ1dHRvbiAuY3NiLWlubmVyIGFscmVhZHkgdXNlOiBleHBsaWNpdFxuLy8gYXBwZWFyYW5jZS9ib3JkZXIvbWFyZ2luL2ZvbnQtZmFtaWx5LCB0aGVuIGV2ZXJ5IHZpc3VhbCBwcm9wZXJ0eSBiZWxvd1xuLy8gKGZsZXgsIHBhZGRpbmcsIHJhZGl1cywgYmFja2dyb3VuZCwgY29sb3IpIGlzIHNldCBleGFjdGx5IGxpa2UgYmVmb3JlIHNvXG4vLyB0aGUgcGlsbCBzdGF5cyBwaXhlbC1pZGVudGljYWwuIGBhbGw6IHVuc2V0YCBpcyBub3QgdXNlZCDigJQgaXQgd291bGQgYWxzb1xuLy8gc3RyaXAgYGRpc3BsYXlgL2B0ZXh0LWFsaWduYCwgd2hpY2ggYXJlIHJlLWRlY2xhcmVkIGJlbG93IGFueXdheSwgYnV0IHRoZVxuLy8gbmVpZ2hib3VyaW5nIGNvbXBvbmVudHMgcmVzZXQgcHJvcGVydHktYnktcHJvcGVydHksIG5vdCB3aXRoIHRoZSBibHVudFxuLy8gc2hvcnRoYW5kLiBbS2ltIDIwMjYtMDgtMjVdXG4ucm93LXB1bHNlLWRheSB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWluLXdpZHRoOiA3NnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDFweDtcbiAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTApO1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnJvdy1wdWxzZS1kYXktbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuXG4ucm93LXB1bHNlLWRheS1zdWIge1xuICAgIGZvbnQtc2l6ZTogMTAuNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxM3B4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbn1cblxuLy8gLS0tLSBUaHVtYm5haWwgKGthYXJ0IDgsIEJPQVJELXB1bHNlLW9wbWFhay13aXphcmQubWQpIC0tLS1cbi8vIFRha2VzIG92ZXIgdGhlIGV4YWN0IHNsb3QgdGhlIGFjdGl2aXR5IGljb24gdGlsZSB1c2VzIGFib3ZlIChzYW1lIDQweDQwXG4vLyBzaXplLCBzYW1lIDhweCByYWRpdXMgYXMgLnJvdy1pY29uLXBsYWNlaG9sZGVyKSB3aGVuIGB0aHVtYi1zcmNgIG9yXG4vLyBgdGh1bWItY29sb3JgIGlzIHNldC4gTm8gdGh1bWIgYXR0cmlidXRlIC0+IHRoYXQgaWNvbiB0aWxlIGlzIHVudG91Y2hlZC5cbi5yb3ctcHVsc2UtdGh1bWIge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5yb3ctcHVsc2UtdGh1bWItLWltYWdlIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBGbGF0IGNvbG91ciBiYWNrZ3JvdW5kIOKAlCB0aGUgY3VzdG9tIHByb3BlcnR5IGlzIHNldCBpbmxpbmUgcGVyLXJvdyAodGhlXG4vLyBhY3R1YWwgY29sb3VyIGlzIGRhdGEsIG5vdCBhIGRlc2lnbiB0b2tlbikuXG4ucm93LXB1bHNlLXRodW1iLS1jb2xvciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcm93LXB1bHNlLXRodW1iLXN3YXRjaCwgdmFyKC0tYy1ncmV5LTUwKSk7XG59XG5cbi8vIE1hc2tlZCBwYXR0ZXJuIGxheWVyIG9uIHRvcCBvZiB0aGUgZmxhdCBjb2xvdXIg4oCUIHNhbWUgdHdvLWxheWVyIG1vZGVsIGFzXG4vLyBxZG5hcHJvLWJhY2tncm91bmQtcGlja2VyJ3MgLnFicC10aWxlLXBhdHRlcm4tbGF5ZXIgKF9iYWNrZ3JvdW5kLXBpY2tlci5zY3NzKTpcbi8vIGEgcGxhaW4gdGludGVkIGxheWVyIG1hc2tlZCB3aXRoIHRoZSBwYXR0ZXJuIFNWRywgc2luY2UgYW4gZXh0ZXJuYWxseVxuLy8gbG9hZGVkIFNWRyB1c2VkIGFzIG1hc2staW1hZ2UvYmFja2dyb3VuZC1pbWFnZSBuZXZlciBpbmhlcml0cyBwYWdlIENTU1xuLy8gKHRoZSBwYXR0ZXJuIFNWR3MgYXJlIGZpbGw9XCJjdXJyZW50Q29sb3JcIikuXG4vL1xuLy8gS2FhcnQgOGIgKGhlcnN0ZWxrYWFydCwgQk9BUkQtcHVsc2Utb3BtYWFrLXdpemFyZC5tZCk6IG1hc2stc2l6ZSA0MHB4IDE6MVxuLy8gc2NhbGVkIHRoZSBXSE9MRSBuYXRpdmUgcGF0dGVybiBjYW52YXMgKDEwMC0xNDBweCwgbW90aWZzIG9ubHkgbmVhciB0aGVcbi8vIGNvcm5lcnMsIGVtcHR5IG1pZGRsZSkgaW50byB0aGUgNDBweCB0aWxlLCBzbyBhbG1vc3Qgb25seSB0aGUgZW1wdHlcbi8vIG1pZGRsZSBldmVyIGxhbmRlZCBpbnNpZGUg4oCUIGEgZmxhdCBjb2xvdXIgdGlsZSB3aXRoIG5vIHZpc2libGUgbW90aWYuXG4vLyAtLXJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuLXNpemUvLXBvc2l0aW9uLy1yZXBlYXQgYXJlIG5vdyBzZXQgcGVyIHBhdHRlcm5cbi8vIGJ5IHFkbmEtYWN0aXZpdHktcm93LmpzIChRZG5hQWN0aXZpdHlSb3cuVEhVTUJfUEFUVEVSTl9HRU9NRVRSWSDigJQgc2VlIHRoZVxuLy8gY2FsY3VsYXRpb24gcGVyIHBhdHRlcm4gdGhlcmUpIHRvIHpvb20gdGhlIG1hc2sgb250byBPTkUgbW90aWYgYW5kIGNlbnRyZVxuLy8gaXQgaW4gdGhlIHRpbGUgaW5zdGVhZC4gVGhlIDQwcHgvMCAwL3JlcGVhdCBmYWxsYmFja3MgYmVsb3cgYXJlIHRoZSBleGFjdFxuLy8gcHJlLWV4aXN0aW5nIHZhbHVlcywgc28gYW4gdW5rbm93biBwYXR0ZXJuIGtleSAobm90IGluIHRoYXQgbWFwKSByZW5kZXJzXG4vLyBieXRlLWZvci1ieXRlIGxpa2UgYmVmb3JlIHRoaXMgY2FyZC5cbi5yb3ctcHVsc2UtdGh1bWItcGF0dGVybiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuLXRpbnQsIHZhcigtLXJvdy1wdWxzZS10aHVtYi1zd2F0Y2gpKTtcbiAgICBtYXNrLWltYWdlOiB2YXIoLS1yb3ctcHVsc2UtdGh1bWItcGF0dGVybi11cmwpO1xuICAgIG1hc2stc2l6ZTogdmFyKC0tcm93LXB1bHNlLXRodW1iLXBhdHRlcm4tc2l6ZSwgNDBweCA0MHB4KTtcbiAgICBtYXNrLXBvc2l0aW9uOiB2YXIoLS1yb3ctcHVsc2UtdGh1bWItcGF0dGVybi1wb3NpdGlvbiwgMCAwKTtcbiAgICBtYXNrLXJlcGVhdDogdmFyKC0tcm93LXB1bHNlLXRodW1iLXBhdHRlcm4tcmVwZWF0LCByZXBlYXQpO1xuICAgIC13ZWJraXQtbWFzay1pbWFnZTogdmFyKC0tcm93LXB1bHNlLXRodW1iLXBhdHRlcm4tdXJsKTtcbiAgICAtd2Via2l0LW1hc2stc2l6ZTogdmFyKC0tcm93LXB1bHNlLXRodW1iLXBhdHRlcm4tc2l6ZSwgNDBweCA0MHB4KTtcbiAgICAtd2Via2l0LW1hc2stcG9zaXRpb246IHZhcigtLXJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuLXBvc2l0aW9uLCAwIDApO1xuICAgIC13ZWJraXQtbWFzay1yZXBlYXQ6IHZhcigtLXJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuLXJlcGVhdCwgcmVwZWF0KTtcbn1cblxuLy8gSGVyc3RlbCBrYWFydCA0ZCAoQk9BUkQtcHVsc2Utb3BtYWFrLXdpemFyZC5tZCk6IHRoZSBwYXR0ZXJuIFNWR3MnIG93blxuLy8gcGVyLW1vdGlmIGZpbGwtb3BhY2l0eSAoMC4xMi0wLjMsIHNoYXJlZCBkYXRhIHRoaXMgY29tcG9uZW50IG1heSBub3Rcbi8vIGNoYW5nZSAtIHNlZSB0aGUgY29tbWVudCBhYm92ZSkgcmVhZHMgYXMgdG9vIGZhaW50IGF0IDQwcHggb24gT05FIG1hc2tcbi8vIGxheWVyLCB3b3JzdCBvbiBjb25mZXR0aSAob3BhY2l0eSAuMTYtLjMpLiBTYW1lIGZpeCBxZG5hcHJvLWJhY2tncm91bmQtXG4vLyBwaWNrZXIgYWxyZWFkeSBhcHBsaWVzIHRvIGV2ZXJ5IHBhdHRlcm4gdGlsZSAoYC5xYnAtdGlsZS1wYXR0ZXJuLWxheWVyLFxuLy8gLnFicC10aWxlLXBhdHRlcm4tbGF5ZXI6OmFmdGVyYCBpbiBfYmFja2dyb3VuZC1waWNrZXIuc2Nzcyk6IHN0YWNrIGFcbi8vIFNFQ09ORCBpZGVudGljYWwgbWFza2VkL3RpbnRlZCBsYXllciB2aWEgYDo6YWZ0ZXJgIG9uIHRvcCBvZiB0aGUgZmlyc3QuXG4vLyBUd28gc2VtaS10cmFuc3BhcmVudCBsYXllcnMgY29tcG91bmQgdGhlaXIgYWxwaGEgKGUuZy4gdHdvIDAuMy1vcGFxdWVcbi8vIGxheWVycyByZWFkIGFzIH4wLjUxKSAtIGEgdGlsZS1vbmx5IGNvbnRyYXN0IGJvb3N0LCBnZW5lcmljIGZvciBhbGwgc2l4XG4vLyBwYXR0ZXJucyAoY29uZmV0dGkgbmVlZGVkIGl0IG1vc3QsIHRoZSBvdGhlciBmaXZlIGp1c3QgZ2V0IGEgYml0XG4vLyBjcmlzcGVyKS4gU2NvcGVkIHRvIGAucm93LXB1bHNlLXRodW1iLXBhdHRlcm5gLCB3aGljaCBvbmx5IGV4aXN0cyB3aGVuXG4vLyBgdGh1bWItcGF0dGVybi11cmxgIGlzIHNldCwgc28gcm93cyB3aXRob3V0IGEgdGh1bWIgcGF0dGVybiBhcmVcbi8vIGJ5dGUtaWRlbnRpY2FsIHRvIGJlZm9yZSB0aGlzIHJ1bGUuXG4ucm93LXB1bHNlLXRodW1iLXBhdHRlcm46OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1yb3ctcHVsc2UtdGh1bWItcGF0dGVybi10aW50LCB2YXIoLS1yb3ctcHVsc2UtdGh1bWItc3dhdGNoKSk7XG4gICAgbWFzay1pbWFnZTogdmFyKC0tcm93LXB1bHNlLXRodW1iLXBhdHRlcm4tdXJsKTtcbiAgICBtYXNrLXNpemU6IHZhcigtLXJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuLXNpemUsIDQwcHggNDBweCk7XG4gICAgbWFzay1wb3NpdGlvbjogdmFyKC0tcm93LXB1bHNlLXRodW1iLXBhdHRlcm4tcG9zaXRpb24sIDAgMCk7XG4gICAgbWFzay1yZXBlYXQ6IHZhcigtLXJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuLXJlcGVhdCwgcmVwZWF0KTtcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6IHZhcigtLXJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuLXVybCk7XG4gICAgLXdlYmtpdC1tYXNrLXNpemU6IHZhcigtLXJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuLXNpemUsIDQwcHggNDBweCk7XG4gICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOiB2YXIoLS1yb3ctcHVsc2UtdGh1bWItcGF0dGVybi1wb3NpdGlvbiwgMCAwKTtcbiAgICAtd2Via2l0LW1hc2stcmVwZWF0OiB2YXIoLS1yb3ctcHVsc2UtdGh1bWItcGF0dGVybi1yZXBlYXQsIHJlcGVhdCk7XG59XG5cbi8vIC0tLS0gQW5pbWF0ZWQtaWNvbiB0aWxlIChrYWFydCAyNywgQk9BUkQtcHVsc2Utb3BtYWFrLXdpemFyZC5tZCkgLS0tLVxuLy8gU2Vjb25kIHRodW1ibmFpbCBmYWxsYmFjayB0aWVyLCBzYW1lIHNsb3QgYXMgLnJvdy1wdWxzZS10aHVtYiBhYm92ZSAodGhlXG4vLyBiYXNlIGNsYXNzIHN0YXlzIG9uIHRoZSBlbGVtZW50IGZvciBpdHMgNDB4NDAvOHB4LXJhZGl1cyBib3gg4oCUIHNlZSB0aGVcbi8vIHByZWNlZGVuY2UgY29tbWVudCBpbiBxZG5hLWFjdGl2aXR5LXJvdy5qcydzIF9yZW5kZXJQdWxzZSgpKS4gU2hvd24gd2hlblxuLy8gYHRodW1iLWFuaW1gIGlzIHNldCBhbmQgYHRodW1iLXNyY2AgaXMgbm90OiBhIGNlbnRyZWQgcWRuYXByby1sb3R0aWVcbi8vICh0cmlnZ2VyPVwibWFudWFsXCIsIHBsYXllZC9zdG9wcGVkIGJ5IHRoZSByb3cncyBvd24gaG92ZXIvZm9jdXMgaGFuZGxlcnNcbi8vIGluIF9iaW5kUHVsc2VFdmVudHMoKSkgb24gYSBmbGF0IGNvbG91ciB0aWxlLlxuLyogS2ltIDI0LjA4OiBkZSB0eXBlLXBpbCB2YW4gZWVuIFB1bHNlLXN0YXAgc3RhYXQgTUlEREVOIGluIGRlIHJpaiwgcHJlY2llc1xuICAgem9hbHMgLnJvdy10eXBlLXRhZyBkYXQgZG9ldCB2b29yIGVlbiB0YWtlbmxpanN0LWFjdGl2aXRlaXQuIFplbGZkZSBhYnNvbHV0ZVxuICAgY2VudHJlcmluZywgem9kYXQgYmVpZGUgbGlqc3RlbiBkZXplbGZkZSByaXRtaWVrIGhvdWRlbi4gKi9cbi8vIEtpbSAyNC4wOCAoaGVyemllbik6IE5JRVQgYWJzb2x1dXQgZ2VjZW50cmVlcmQgem9hbHMgLnJvdy10eXBlLXRhZyBoaWVyYm92ZW4uXG4vLyBFZW4gcHVsc2UtdGl0ZWwgaXMgdmFhayBlZW4gaGVsZSB2cmFhZ3ppbiBlbiBsaWVwIG9uZGVyIGRlIHp3ZXZlbmRlIHBpbCBkb29yLlxuLy8gRGFhcm9tIGVlbiBFQ0hURSBrb2xvbSBpbiBkZSByaWotZmxleCwgcmVjaHRzIHZhbiBkZSB0aXRlbDogZGUgdGl0ZWwgaG91ZHQgZGVcbi8vIHJlc3RlcmVuZGUgcnVpbXRlIGVuIGthcHQgbmV0amVzIGFmIG1ldCBlZW4gZWxsaXBzLCBkZSBwaWwga2FuIGVyIHBlciBkZWZpbml0aWVcbi8vIG5pZXQgbWVlciBvdmVyaGVlbiB2YWxsZW4uIFZhc3RlIGJyZWVkdGUsIHpvZGF0IGRlIHBpbGxlbiBvcCBlbGtlIHJpaiBvcFxuLy8gZGV6ZWxmZGUgeCBiZWdpbm5lbiBvbmRhbmtzIHZlcnNjaGlsbGVuZGUgc3RhdGlzdGlla2VuIGVyYWNodGVyLlxuLnJvdy1wdWxzZS10eXBlLXRhZyB7XG4gICAgZmxleDogMCAwIDE5MHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLy8gWmVsZmRlIGFmd2VnaW5nIGFscyBiaWogLnJvdy10eXBlLXRhZzogbGlldmVyIHdlZyBkYW4gZGUgdGl0ZWwgb3BldGVuLlxuLy8gLnJvdy1wdWxzZS1iYWRnZXMgKGthYXJ0IDEwYSBoaWVyb25kZXIpIGhhbmd0IGhpZXIgb29rIGFhbjogb3Agc21hbGxlXG4vLyBzY2hlcm1lbiBpcyBoZXQgZWVuIGV2ZW4gb250YmVlcmxpamtlLCBcImxldWsgb20gdGUgd2V0ZW5cIiBwaWwgYWxzIGRlXG4vLyBzdGFwdHlwZS1waWwgemVsZi5cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgIC5yb3ctcHVsc2UtdHlwZS10YWcsXG4gICAgLnJvdy1wdWxzZS1iYWRnZXMgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi8vIC0tLS0gU2NvcmUgYmFkZ2VzIChrYWFydCAxMGEsIEJPQVJELXB1bHNlLWdhbWlmaWNhdGlvbi1iYXR0bGVzLm1kKSAtLS0tXG4vLyBUd2VlIGxvc3N0YWFuZGUsIGFsdGlqZCBvcHRpb25lbGUgcGlsbGV0amVzIE5BQVNUIGRlIGJlc3RhYW5kZSBzdGFwdHlwZS1waWxcbi8vICgucm93LXB1bHNlLXR5cGUtdGFnIGhpZXJib3Zlbikg4oCUIGVlbiBFSUdFTiBrb2xvbSBlcm5hLCBuaWV0IGVyaW46IHpvIGJsaWpmdFxuLy8gZGUgdmFzdGUgMTkwcHgtYnJlZWR0ZSB2YW4gZGUgc3RhcHR5cGUtcGlsIChrYWFydCAyNC4wOCwgXCJkZXplbGZkZSB4IG9wIGVsa2Vcbi8vIHJpalwiKSBvbmFhbmdlcm9lcmQsIG9uZ2VhY2h0IG9mIGVyIHB1bnRlbi1iYWRnZXMgYmlqa29tZW4uIGBmbGV4OiAwIDAgYXV0b2Bcbi8vIGR1cyBkZXplIGtvbG9tIG5lZW10IHByZWNpZXMgZGUgYnJlZWR0ZSB2YW4gemlqbiBpbmhvdWQsIGVuIHZlcnNjaGlqbnQvXG4vLyB2ZXJkd2lqbnQgaGVsZW1hYWwgKGdlZW4gbGVlZyBlbGVtZW50KSBhbHMgZGUgYXR0cmlidXRlbiBvbnRicmVrZW4g4oCUIHppZVxuLy8gX3JlbmRlclB1bHNlKCkgaW4gcWRuYS1hY3Rpdml0eS1yb3cuanMuXG4ucm93LXB1bHNlLWJhZGdlcyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vLyBTY29yZS1iYWRnZSAoYXR0cmlidXV0IGBzY29yZS1sYWJlbGApOiBzdGVyLWljb29uICsgd2FhcmRlLiBLaW0gMDIuMDkuMjAyNjpcbi8vIGRlIGdlbGUgY2hpcC1mYW1pbGllIGB5ZWxsb3ctMmAgaW4gcGxhYXRzIHZhbiBgeWVsbG93YCDigJQgZWVuIHZvbGxlcmUsIHdhcm1lcmVcbi8vIGdlZWwgZGllIG5hYXN0IGRlIG5pZXV3ZSBwYWFyc2UgdmVyZHViYmVsYWFyLWJhZGdlIGhpZXJvbmRlciBub2cgbGVlc3QgYWxzXG4vLyBlZW4gZWlnZW4gc2lnbmFhbC4gWmVsZmRlIHBpbC12b3JtICg5cHggcmFkaXVzKSBhbHMgLnJvdy1wdWxzZS1yZWYgaGllcmJvdmVuLlxuLnJvdy1wdWxzZS1zY29yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDNweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBwYWRkaW5nOiAycHggN3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDlweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAteWVsbG93LTItYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1jLWNoaXAteWVsbG93LTItdGV4dCk7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucm93LXB1bHNlLXNjb3JlIHFkbmFwcm8taWNvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8vIFZlcmR1YmJlbGFhci1iYWRnZSAoYXR0cmlidXV0IGBzY29yZS1kb3VibGVgKTogZGlhbWFudC1pY29vbiArIHZhc3RlIHRla3N0XG4vLyBcIngyXCIuIEtpbSAwMi4wOS4yMDI2OiBoZXQgZ291ZGVuIGJhdHRsZS1wb2RpdW0tdG9rZW4gaXMgZXJ1aXQsIGRpdCBpcyBudSBkZVxuLy8gYGRhcmstcHVycGxlYC1mYW1pbGllIHVpdCBoZXQgZ2VkZWVsZGUgY2hpcC1wYWxldCDigJQgZGV6ZWxmZGUga2xldXJlbiBhbHNcbi8vIGA8cWRuYXByby10YWcgY29sb3I9XCJkYXJrLXB1cnBsZVwiPmAsIHpvZGF0IGRlIGJhZGdlIGVlbiBiZXN0YWFuZGUgdGFna2xldXJcbi8vIGRyYWFndCBpbiBwbGFhdHMgdmFuIGVlbiBlaWdlbiBoZXguIERpZSB0b2tlbnMga2xhcHBlbiB6ZWxmIG9tIGluIGhldCBkb25rZXJlXG4vLyB0aGVtYSwgZHVzIGVyIGlzIChuZXQgYWxzIHZvb3JoZWVuKSBnZWVuIFtkYXRhLXRoZW1lPVwiZGFya1wiXS1vdmVycmlkZSBub2RpZy5cbi8vIEhldCBkaWFtYW50LWljb29uIGlzIGJld3VzdCBoZXR6ZWxmZGUgYmVlbGQgYWxzIGRlIHZlcmR1YmJlbGFhci10ZWdlbCBpbiBkZVxuLy8gc3RhcHdpemFyZCAoYHFkbmFwcm8tcmFkaW8tdGlsZSBtb2RlPVwidG9nZ2xlXCJgIG1ldCBkZSBiZXdlZ2VuZGUgZGlhbWFudCk6IG9wXG4vLyAxMSBwaXhlbHMgd29yZHQgZWVuIExvdHRpZSBlZW4gdmxla2plLCBkdXMgaGllciBkZSBzdGlsc3RhYW5kZSBNREktdmFyaWFudC5cbi5yb3ctcHVsc2Utc2NvcmUtZG91YmxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAzcHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgcGFkZGluZzogMnB4IDdweDtcbiAgICBib3JkZXItcmFkaXVzOiA5cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLWRhcmstcHVycGxlLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tYy1jaGlwLWRhcmstcHVycGxlLXRleHQpO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIC0tLS0gQm9yZGVyIGJlYW0gb3AgZGUgdmVyZHViYmVsYWFyIChLaW0gMDIuMDkuMjAyNjogXCJzdWJ0aWVsXCIpIC0tLS1cbi8vIEV4YWN0IGRlemVsZmRlIHRydWMgYWxzIGRlIHZlcmR1YmJlbGFhci1URUdFTCBpbiBkZSB3aXphcmRcbi8vICgucWRuYXByby1yYWRpby10aWxlLnJhZGlvLXRpbGUtYmVhbSwgX3JhZGlvLXRpbGUuc2Nzcyk6IGVlbiBjb25pYy1ncmFkaWVudFxuLy8gYWNodGVyIGRlIHBpbCwgbWV0IHBhZGRpbmcgKyB4b3ItbWFza2VyIHRlcnVnZ2VicmFjaHQgdG90IGFsbGVlbiBkZSByYW5kLlxuLy8gVHdlZSBkaW5nZW4gemlqbiBoaWVyIGJld3VzdCBhbmRlcnMsIHdhbnQgZGl0IGlzIGVlbiBiYWRnZSB2YW4gMjAgcGl4ZWxzIGhvb2dcbi8vIGVuIGdlZW4ga2FhcnQ6XG4vLyAgICogZGUgcmluZyBpcyAxcHggaW4gcGxhYXRzIHZhbiAycHgsIGVuIGRlIGxpY2h0Ym9vZyBiZXNsYWF0IG1hYXIgfjUwIGdyYWRlbjtcbi8vICAgKiBkZSBrbGV1ciBpcyBgY3VycmVudENvbG9yYCAoPSBkZSBkYXJrLXB1cnBsZSBpbmt0KSBpbiBwbGFhdHMgdmFuIGdvdWQsIGR1c1xuLy8gICAgIGRlIGJlYW0gY29udHJhc3RlZXJ0IHZhbnplbGYgZ29lZCBpbiBaT1dFTCBoZXQgbGljaHRlIGFscyBoZXQgZG9ua2VyZVxuLy8gICAgIHRoZW1hIOKAlCBpbiBsaWNodCBlZW4gZG9ua2VyZSB2ZWVnIG92ZXIgZGUgbGF2ZW5kZWwsIGluIGRvbmtlciBlZW4gbGljaHRlLlxuLy8gV2FhciBAcHJvcGVydHkgb250YnJlZWt0IGJsaWpmdCBkZSBob2VrIG9wIDBkZWcgc3RhYW46IGRhbiB6aWUgamUgZWVuIHN0aWxsZVxuLy8gYm9vZyBpbiBwbGFhdHMgdmFuIGVlbiBsb3BlbmRlLiBEYXQgaXMgZWVuIHByaW1hIHRlcnVndmFsLCBnZWVuIGZhbGxiYWNrLXJlZ2VsXG4vLyBub2RpZy5cbi5yb3ctcHVsc2Utc2NvcmUtZG91YmxlOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgLy8gTmVnYXRpZWYsIG1ldCBgaXNvbGF0aW9uOiBpc29sYXRlYCBvcCBkZSBwaWwgZXJvbWhlZW46IGRlIHJpbmcga29tdCB6b1xuICAgIC8vIEJPVkVOIGRlIHZ1bGxpbmcgbWFhciBPTkRFUiBoZXQgaWNvb24gZW4gZGUgdGVrc3QsIHpvbmRlciBkYXQgZGllIHR3ZWVcbiAgICAvLyB6ZWxmIGdlcG9zaXRpb25lZXJkIGhvZXZlbiB0ZSB3b3JkZW4uXG4gICAgei1pbmRleDogLTE7XG4gICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICBwYWRkaW5nOiAxcHg7XG4gICAgYmFja2dyb3VuZDogY29uaWMtZ3JhZGllbnQoXG4gICAgICAgIGZyb20gdmFyKC0tcm93LXB1bHNlLWJlYW0tYW5nbGUpLFxuICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgY3VycmVudENvbG9yIDEwJSwgdHJhbnNwYXJlbnQpIDBkZWcsXG4gICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCBjdXJyZW50Q29sb3IgMTAlLCB0cmFuc3BhcmVudCkgMjgwZGVnLFxuICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgY3VycmVudENvbG9yIDYwJSwgdHJhbnNwYXJlbnQpIDMyMGRlZyxcbiAgICAgICAgY29sb3ItbWl4KGluIHNyZ2IsIGN1cnJlbnRDb2xvciAxMCUsIHRyYW5zcGFyZW50KSAzNjBkZWdcbiAgICApO1xuICAgIC13ZWJraXQtbWFzazpcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKSBjb250ZW50LWJveCxcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKTtcbiAgICAtd2Via2l0LW1hc2stY29tcG9zaXRlOiB4b3I7XG4gICAgbWFzazpcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKSBjb250ZW50LWJveCxcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKTtcbiAgICBtYXNrLWNvbXBvc2l0ZTogZXhjbHVkZTtcbiAgICBhbmltYXRpb246IHJvdy1wdWxzZS1iZWFtLXNwaW4gMy4ycyBsaW5lYXIgaW5maW5pdGU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBrZXlmcmFtZXMgcm93LXB1bHNlLWJlYW0tc3BpbiB7XG4gICAgdG8geyAtLXJvdy1wdWxzZS1iZWFtLWFuZ2xlOiAzNjBkZWc7IH1cbn1cblxuLnJvdy1wdWxzZS1zY29yZS1kb3VibGUgcWRuYXByby1pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucm93LXB1bHNlLXNjb3JlLWRvdWJsZTo6YWZ0ZXIgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLnJvdy1wdWxzZS10aHVtYi0tYW5pbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC8vIFBsYWluIGdyZXkgd2hlbiBgdGh1bWItdGlsZWAgaXMgYWJzZW50L3VucmVjb2duaXNlZCDigJQgc2FtZSBmYWxsYmFja1xuICAgIC8vIHFkbmFwcm8tdGFza2xpc3QtY2FyZCdzIG93biB0bGMtY29sb3ItZ3JleSB1c2VzLlxuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG59XG5cbi5yb3ctcHVsc2UtdGh1bWItLWFuaW0gcWRuYXByby1sb3R0aWUge1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbn1cblxuLy8gVGlsZSBjb2xvdXJzIOKAlCB0aGUgZXhhY3Qgc2FtZSA4LWNvbG91ciBmYW1pbHkgYW5kIHRva2VucyBhc1xuLy8gcWRuYXByby10YXNrbGlzdC1jYXJkJ3MgLnRsYy1jb2xvci0qIChfdGFza2xpc3QtY2FyZC5zY3NzKSBhbmRcbi8vIHFkbmFwcm8taHViLXRpbGUncyAucWh0LXRpbnQtKiAoX2h1Yi10aWxlLnNjc3MpLiBObyBuZXcgY29sb3VyczogdGhlXG4vLyBkYXJrLXRoZW1lIHZhbHVlcyBiZWxvdyBhcmUgY29waWVkIDE6MSBmcm9tIHRob3NlIHR3byBjb21wb25lbnRzJyBvd25cbi8vIGRhcmstdGhlbWUgb3ZlcnJpZGVzIGZvciB0aGVzZSBleGFjdCBjb2xvdXIgbmFtZXMsIG5vdCBpbnZlbnRlZCBoZXJlLlxuLnJvdy1wdWxzZS10aHVtYi0tdGlsZS1ncmV5ICAgICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7IH1cbi5yb3ctcHVsc2UtdGh1bWItLXRpbGUtcmVkICAgICAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpOyB9XG4ucm93LXB1bHNlLXRodW1iLS10aWxlLXllbGxvdyAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXllbGxvdy1iZyk7IH1cbi5yb3ctcHVsc2UtdGh1bWItLXRpbGUtZ3JlZW4gICAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtZ3JlZW4tYmcpOyB9XG4ucm93LXB1bHNlLXRodW1iLS10aWxlLWJsdWUgICAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtYmx1ZS1iZyk7IH1cbi5yb3ctcHVsc2UtdGh1bWItLXRpbGUtYnJpZ2h0LWJsdWUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1iZyk7IH1cbi5yb3ctcHVsc2UtdGh1bWItLXRpbGUtcGluayAgICAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1waW5rLWJnKTsgfVxuLnJvdy1wdWxzZS10aHVtYi0tdGlsZS1wdXJwbGUgICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1wdXJwbGUtYmcpOyB9XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXB1bHNlLXRodW1iLS10aWxlLWdyZXkgICAgICAgIHsgYmFja2dyb3VuZDogIzQwNDQ0ZDsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctcHVsc2UtdGh1bWItLXRpbGUtcmVkICAgICAgICAgeyBiYWNrZ3JvdW5kOiAjNWEyYjJiOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1wdWxzZS10aHVtYi0tdGlsZS15ZWxsb3cgICAgICB7IGJhY2tncm91bmQ6ICM1YTRkMWY7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXB1bHNlLXRodW1iLS10aWxlLWdyZWVuICAgICAgIHsgYmFja2dyb3VuZDogIzJhNTU0NDsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctcHVsc2UtdGh1bWItLXRpbGUtYmx1ZSAgICAgICAgeyBiYWNrZ3JvdW5kOiAjMmUzZTU0OyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1wdWxzZS10aHVtYi0tdGlsZS1icmlnaHQtYmx1ZSB7IGJhY2tncm91bmQ6ICMzYTRhOGE7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXB1bHNlLXRodW1iLS10aWxlLXBpbmsgICAgICAgIHsgYmFja2dyb3VuZDogIzRlMmEzNjsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctcHVsc2UtdGh1bWItLXRpbGUtcHVycGxlICAgICAgeyBiYWNrZ3JvdW5kOiAjM2EzNTU1OyB9XG5cbi8vIC0tLS0gS2FhcnQgMjg6IGRlIG1pbmlhdHV1ciBhbHMgZWNodGUga25vcCAoYHRodW1iLWludGVyYWN0aXZlYCkgLS0tLVxuLy8gSGV0emVsZmRlIGFmc3ByYWtlbnBha2tldCBhbHMgZGUgZGFnLXBpbGwgaW4ga2FhcnQgMTggKHppZSAucm93LXB1bHNlLWRheSBpblxuLy8gX3B1bHNlLnNjc3MpOiBob3ZlciA9IGVlbiB0aW50IGRvbmtlcmRlciwgYWN0aXZlID0gbm9nIGVlbiB0aW50LCBnZWVuXG4vLyB0cmFuc2Zvcm0sIGVuIGVlbiBlaWdlbiBmb2N1cy1yaW5nIG9tZGF0IGJvb3RzdHJhcCBpbiB2MSBvcCBFTEtFIGtub3AgZWVuXG4vLyBlaWdlbiBvdXRsaW5lIHpldCBlbiAuYWN0aXZpdHktcm93LWlubmVyIG9wIG92ZXJmbG93OmhpZGRlbiBzdGFhdCAoZWVuXG4vLyBvdXRsaW5lIHpvdSBhYW4gZGUgcmFuZCB2YW4gZGUgcmlqIGFmZ2VrbmlwdCB3b3JkZW4sIGVlbiBib3gtc2hhZG93IG5pZXQpLlxuLy9cbi8vIERlIHRpbnQgaXMgZWVuIFNDUklNIGVuIGdlZW4ga2xldXJ0b2tlbiwgZW4gZGF0IGlzIG1ldCBvcHpldDogZGUgdGVnZWwgaXNcbi8vIGhpZXJvbmRlciBhY2h0IHZlcnNjaGlsbGVuZGUga2xldXJlbiwga2FuIGVlbiBmb3RvIHppam4sIG9mIGVlbiBrbGV1ciBtZXQgZWVuXG4vLyBwYXRyb29uIGVyb3ZlcmhlZW4uIEXDqW4gdGludCBwZXIgdGVnZWxrbGV1ciB2ZXJ6aW5uZW4gem91IGFjaHQgbmlldXdlIGtsZXVyZW5cbi8vIGJldGVrZW5lbiBkaWUgbmVyZ2VucyBhbmRlcnMgYmVzdGFhbjsgZWVuIGRvb3J6aWNodGlnZSBsYWFnIHdlcmt0IG9wIGFsbGVcbi8vIGRyaWUgZGUgc29vcnRlbiBpbmhvdWQgbWV0IGRlemVsZmRlIHJlZ2VsLiBIZXQgaXMgZWVuIDo6YmVmb3JlIGVuIGdlZW5cbi8vIDo6YWZ0ZXIsIHdhbnQgLnJvdy1wdWxzZS10aHVtYi1wYXR0ZXJuIGdlYnJ1aWt0IDo6YWZ0ZXIgYWwgdm9vciBkZSB0d2VlZGVcbi8vIHBhdHJvb25sYWFnLlxuLy8gQkVXVVNUIEdFRU4gYGJhY2tncm91bmRgIGhpZXIuIERpZSBzdG9uZCBlciBlZXJzdCB3ZWwgKG9tIGRlIGVpZ2VuXG4vLyBhY2h0ZXJncm9uZCB2YW4gZWVuIDxidXR0b24+IHRlIG5ldXRyYWxpc2VyZW4pIGVuIGRhdCBtYWFrdGUgw6lsa2UgdGVnZWxcbi8vIGtsZXVybG9vczogLnJvdy1wdWxzZS10aHVtYi0tdGlsZS0qIGVuIC0tY29sb3IgaGViYmVuIHByZWNpZXMgZGV6ZWxmZGVcbi8vIHNwZWNpZmljaXRlaXQgYWxzIGRlemUga2xhc3NlLCBlbiBkaXQgYmxvayBzdGFhdCBlcm9uZGVyLCBkdXMgaGV0IHdvbiBvcFxuLy8gYnJvbnZvbGdvcmRlLiBHZXppZW4gaW4gZGUgbGlicmFyeS1wcmV2aWV3OiBkZSBibGF1d2UgZW4gZGUgZWZmZW4gdGVnZWxcbi8vIHdhcmVuIHdpdC4gRGUgVUEtcmVnZWwgYGJ1dHRvbiB7IGJhY2tncm91bmQtY29sb3I6IEJ1dHRvbkZhY2UgfWAgdmVybGllc3Rcbi8vIHZhbiDDqWxrZSBhdXRldXJzcmVnZWwsIGR1cyBkZSB0ZWdlbGtsYXNzZW4gaGllcm9uZGVyIGRvZW4gZGl0IHdlcmsgYWw7IGFsbGVlblxuLy8gYmlqIC0taW1hZ2Ugc3RhYXQgZXIgZ2VlbiBhdXRldXJzYWNodGVyZ3JvbmQsIGVuIGRhYXIgZGVrdCBkZSA8aW1nPiBoZXQgdmxha1xuLy8gdm9sbGVkaWcgYWYuXG4ucm93LXB1bHNlLXRodW1iLS1pbnRlcmFjdGl2ZSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4ucm93LXB1bHNlLXRodW1iLS1pbnRlcmFjdGl2ZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICAvLyBCb3ZlbiBkZSBmb3RvL3BhdHJvb25sYWFnLCBtYWFyIGRlIGxvdHRpZSBlcm9uZGVyIGJsaWpmdCBsZWVzYmFhcjogZGVcbiAgICAvLyBzY3JpbSBpcyBsaWNodCBnZW5vZWcgb20gZG9vcmhlZW4gdGUga2lqa2VuLlxuICAgIHotaW5kZXg6IDI7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2U7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5yb3ctcHVsc2UtdGh1bWItLWludGVyYWN0aXZlOmhvdmVyOjpiZWZvcmUgIHsgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuMDgpOyB9XG4ucm93LXB1bHNlLXRodW1iLS1pbnRlcmFjdGl2ZTphY3RpdmU6OmJlZm9yZSB7IGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjE2KTsgfVxuXG4vLyBPcCBlZW4gZG9ua2VyIHZsYWsgd2Vya3QgendhcnQtb3AtendhcnQgbmlldDsgZGV6ZWxmZGUgdmVyaG91ZGluZyBhbHMgZGVcbi8vIG5hdi1yYWlsIChlbiBhbHMgZGUgZGFnLXBpbGwgaW4gZGFyayBtb2RlKSBtYWFyIGRhbiBtZXQgd2l0LlxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctcHVsc2UtdGh1bWItLWludGVyYWN0aXZlOmhvdmVyOjpiZWZvcmUgIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMTApOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1wdWxzZS10aHVtYi0taW50ZXJhY3RpdmU6YWN0aXZlOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4xOCk7IH1cblxuLnJvdy1wdWxzZS10aHVtYi0taW50ZXJhY3RpdmU6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4ucm93LXB1bHNlLXRodW1iLS1pbnRlcmFjdGl2ZTpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nLCAjNTM0YWI3KTtcbn1cblxuLy8gLS0tLSBOYW1lICsgZGVzY3JpcHRpb24gLS0tLVxuXG4ucm93LXB1bHNlLWluZm8ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZmxleDogMSAxIGF1dG87XG59XG5cbi5yb3ctcHVsc2UtbmFtZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4ucm93LXB1bHNlLWRlc2Mge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8vIC0tLS0gUmVmLWNoaXAgKGthYXJ0IDEzKSAtLS0tXG4vLyBDb21wYWN0IFwibGlua2VkIHRvIFhcIiBjaGlwIHVuZGVyIHRoZSBuYW1lL2Rlc2NyaXB0aW9uLiBTYW1lIHNoYXBlIGFzIHRoZVxuLy8gbm93LXN1cGVyc2VkZWQgLnB1bHNlLXN0ZXAtcmVmIChiYWNrb2ZmaWNlMi9zY3NzL3BhcnRpYWxzL3YxL19wdWxzZS5zY3NzLFxuLy8gbGluZSB+NjE0KTogaW5saW5lLWZsZXgsIDVweCBnYXAsIDJweC85cHggcGFkZGluZywgOXB4IHJhZGl1cy4gQ29sb3VycyBhcmVcbi8vIGNvbXBvbmVudC1sb2NhbCBjdXN0b20gcHJvcGVydGllcyB3aXRoIHRoZSBPUklHSU5BTCBoZXggYXMgYSBkZWxpYmVyYXRlXG4vLyBmYWxsYmFjayAobm8gZXhhY3QgbWF0Y2hpbmcgZ2xvYmFsIHRva2VuIGV4aXN0cyBmb3IgdGhpcyBsaWdodC1ibHVlIHBhaXI7XG4vLyB0aGUgYW1iZXIgXCJtaXNzaW5nXCIgYmFja2dyb3VuZCBkb2VzIOKAlCAtLWMtdGFnLXdhcm5pbmctYmcg4oCUIHNvIHRoYXQgb25lIGlzXG4vLyByZXVzZWQgZGlyZWN0bHkpLlxuLnJvdy1wdWxzZS1yZWYge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA1cHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBwYWRkaW5nOiAycHggOXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDlweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1yb3ctcHVsc2UtcmVmLWJnLCAjZWVmMGZiKTtcbiAgICBjb2xvcjogdmFyKC0tcm93LXB1bHNlLXJlZi1mZywgIzM5NDI5MCk7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE3cHg7XG59XG5cbi5yb3ctcHVsc2UtcmVmIHFkbmFwcm8taWNvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5yb3ctcHVsc2UtcmVmIHNwYW4ge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5yb3ctcHVsc2UtcmVmLmlzLW1pc3Npbmcge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtdGFnLXdhcm5pbmctYmcsICNmZmYyZDYpO1xuICAgIGNvbG9yOiB2YXIoLS1yb3ctcHVsc2UtcmVmLW1pc3NpbmctZmcsICM3YTUzMDApO1xufVxuXG4vLyAtLS0tIENoYXQgYnV0dG9uIChrYWFydCAxLCBCT0FSRC1wdWxzZS1jb25jZXB0c3RhcHBlbi5tZCkgLS0tLVxuLy8gUmVwbGFjZXMgdGhlIHRocmVlIHN0YXQgaXRlbXMgdGhpcyByb3cgdXNlZCB0byByZW5kZXIgaGVyZSAoYSBjb21wbGV0aW9uXG4vLyBjb3VudCBhbmQgYSBjb21wbGV0aW9uIHBlcmNlbnRhZ2Ug4oCUIHNlZSB0aGUgYGNoYXRgIC8gYGNoYXQtdW5yZWFkYFxuLy8gYXR0cmlidXRlIGRvY2Jsb2NrIGluIHFkbmEtYWN0aXZpdHktcm93LmpzIGZvciB3aHkgdGhleSB3ZXJlIHJlbW92ZWQpLlxuLy8gYHBvc2l0aW9uOiByZWxhdGl2ZWAgd3JhcHBlciBzbyB0aGUgdW5yZWFkIGJhZGdlIGNhbiBzaXQgb24gaXRzIGNvcm5lciDigJRcbi8vIHFkbmFwcm8taWNvbi1idG4gcmVzZXRzIGl0cyBvd24gY2xhc3NOYW1lIG9uIGV2ZXJ5IHJlbmRlciwgc28gYSBjbGFzc1xuLy8gYWRkZWQgdG8gSVQgd291bGQgYmUgd2lwZWQ7IHRoZSB3cmFwcGVyIGNhcnJpZXMgdGhlIHBvc2l0aW9uaW5nIGluc3RlYWQuXG4ucm93LXB1bHNlLWNoYXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLy8gLS0tLSBDb25jZXB0IGNoaXAgKGF0dHJpYnV1dCBgY29uY2VwdC1sYWJlbGAsIGthYXJ0IDYpIC0tLS1cbi8vIE5lZW10IGV4YWN0IGRlemVsZmRlIHBsZWsgaW4gYWxzIC5yb3ctcHVsc2UtY2hhdCBoaWVyYm92ZW46IGVyIHN0YWF0IGhpZXJcbi8vIG5vb2l0IGVlbiBjaGlwIEVOIGVlbiBjaGF0a25vcCB0ZWdlbGlqayAoemllIGRlIGV4Y2x1c2l2aXRlaXQgaW5cbi8vIHFkbmEtYWN0aXZpdHktcm93LmpzKS4gR2VlbiBlaWdlbiBrbGV1ciBoaWVyOiBgcWRuYXByby10YWcgY29sb3I9XCJncmV5XCJgXG4vLyBsZXZlcnQgZGUgZ3JpanplIGAtLWMtY2hpcC1ncmV5LSpgIHRva2VucyBhbCwgZGV6ZWxmZGUgYWxzIGRlIHR5cGUtdGFnIHBpbFxuLy8gaGllcmJvdmVuLiBCZXd1c3QgTklFVCBkZSBnZWxlL29yYW5qZSBmYW1pbGllIChgLS1jLWNoaXAteWVsbG93LSpgLFxuLy8gYC5yb3ctd2FybmluZy1idG5gKSDigJQgZGllIHN0YWF0IGFsIHZvb3IgXCJoaWVyIG1vZXQgamUgaWV0cyBhYW4gZG9lblwiOyBncmlqc1xuLy8gYmV0ZWtlbnQgaGllciBcInN0YWF0IGtsYWFyXCIgKGJlc2x1aXQgMTEsIEJFU0xVSVRFTi1wdWxzZS1jb25jZXB0c3RhcHBlbi5tZCkuXG4ucm93LXB1bHNlLWNvbmNlcHQge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vLyBVbnJlYWQtY291bnQgYmFkZ2Ug4oCUIHFkbmFwcm8tbnVtYmVyLWluZGljYXRvci1iYWRnZSAoY29sb3I9XCJhbGVydFwiKSwgdGhlXG4vLyBzYW1lIGNvbXBvbmVudC9za2luIHFkbmFwcm8tYm90dG9tLW5hdiBhbHJlYWR5IHVzZXMgZm9yIGFuIHVucmVhZCBjb3VudFxuLy8gKHNlZSBib3R0b20tbmF2LnNjc3MpLiBIT09LIE9OIFRIRSBEQVRBLUFUVFJJQlVURSwgTk9UIEEgQ0xBU1M6IHRoYXRcbi8vIGNvbXBvbmVudCBkb2VzIGB0aGlzLmNsYXNzTmFtZSA9IFwiXCJgIGluIGluaXRpYWxpemVDbGFzc2VzKCkgb24gdXBncmFkZSxcbi8vIHdoaWNoIHJ1bnMgYmVmb3JlIHRoaXMgZWxlbWVudCBpcyBldmVyIGluc2VydGVkIGxvbmcgZW5vdWdoIHRvIHNuYXBzaG90IGFcbi8vIGNsYXNzIOKAlCBzYW1lIHRyYXAgYm90dG9tLW5hdidzIGJhZGdlIGFscmVhZHkgZG9jdW1lbnRzLiBTbWFsbCBuZWdhdGl2ZVxuLy8gb2Zmc2V0IChub3QgdGhlIGJvdHRvbS1uYXYgZm9ybXVsYSwgd2hpY2ggaXMgdHVuZWQgZm9yIGEgbXVjaCB3aWRlci90YWxsZXJcbi8vIG5hdiBidXR0b24pOiB0aGlzIGJ1dHRvbiBpcyBhIDI4cHggaWNvbi1idG4gKHNpemU9XCJiaWdcIiksIHNvIHRoZSBiYWRnZVxuLy8gb25seSBuZWVkcyB0byBudWRnZSBvbnRvIGl0cyB0b3AtcmlnaHQgY29ybmVyLlxuW2RhdGEtcm9sZT1cImNoYXQtYmFkZ2VcIl0ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC02cHg7XG4gICAgcmlnaHQ6IC02cHg7XG4gICAgei1pbmRleDogMTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuXG4vLyAtLS0tIFJlc2VydmVkIHRvZ2dsZSBzbG90IC0tLS1cbi8vIFJlbmRlcnMgbm90aGluZyB2aXNpYmxlIOKAlCBrZWVwcyBldmVyeSBwdWxzZSByb3cgdGhlIHNhbWUgdG90YWwgd2lkdGhcbi8vIHdoZXRoZXIgb3Igbm90IGEgdG9nZ2xlIGNvbnRyb2wgbGFuZHMgaGVyZSBsYXRlci5cbi5yb3ctcHVsc2Utc3dpdGNoIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzZweDtcbn1cblxuLy8gLS0tLSBEZWxldGUgYnV0dG9uIC0tLS1cbi8vIHFkbmFwcm8taWNvbi1idG4gKHR5cGU9XCJzdWJ0bGUtZXJyb3JcIikgYWxyZWFkeSBjYXJyaWVzIGl0cyBvd24gaG92ZXIvXG4vLyBmb2N1cy9hY3RpdmUgc3RhdGVzIOKAlCBvbmx5IHRoZSBwbGFjZW1lbnQgbGl2ZXMgaGVyZS5cbi5yb3ctcHVsc2UtZGVsZXRlIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLy8gLS0tLSBNZW51LXRyaWdnZXIgYnV0dG9uIChrYWFydCA5YikgLS0tLVxuLy8gVGFrZXMgb3ZlciB0aGUgZXhhY3Qgc2FtZSBzbG90IGFzIC5yb3ctcHVsc2UtZGVsZXRlIGFib3ZlIHdoZW5cbi8vIGBtZW51LXRyaWdnZXJgIGlzIHNldCAoc2VlIHRoZSBhdHRyaWJ1dGUgZG9jYmxvY2sgaW4gcWRuYS1hY3Rpdml0eS1yb3cuanMpLlxuLy8gcWRuYXByby1pY29uLWJ0biAodHlwZT1cInN1YnRsZVwiKSBhbHJlYWR5IGNhcnJpZXMgaXRzIG93biBob3Zlci9mb2N1cy9hY3RpdmVcbi8vIHN0YXRlcyDigJQgb25seSB0aGUgcGxhY2VtZW50IGxpdmVzIGhlcmUuXG4ucm93LXB1bHNlLW1lbnUge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vLyAtLS0tIFJlc3BvbnNpdmUgKFNDT1BFIGJlc2x1aXQgMTQsIHB1bHNlIHZhcmlhbnQgb25seSkgLS0tLVxuLy8gUGhvbmU6IHRoZSByZXNlcnZlZCB0b2dnbGUgc2xvdCBsZWF2ZXMgdGhlIHJvdyBlbnRpcmVseS4gQnJlYWtwb2ludCBtaXJyb3JzXG4vLyB0aGUgb25lIHRoZSBQdWxzZSBwYWdlIGFscmVhZHkgdXNlcyAoNzYwLCBzZWUgX3B1bHNlLnNjc3MpLiBLYWFydCAxXG4vLyAoQk9BUkQtcHVsc2UtY29uY2VwdHN0YXBwZW4ubWQpIHJlbW92ZWQgdGhlIHRhYmxldC1vbmx5IHN0YXQtaXRlbVxuLy8gY29tcGFjdGlvbiB0aGF0IHVzZWQgdG8gbGl2ZSBoZXJlICgucm93LXB1bHNlLXN0YXRzIC8gLnJvdy1wdWxzZS1zdGF0LCBhXG4vLyB0aWdodGVyIGdhcCArIHNtYWxsZXIgdGV4dCBhdCAxMTAwcHgpIOKAlCB0aG9zZSBjbGFzc2VzIG5vIGxvbmdlciByZW5kZXIsIGFuZFxuLy8gdGhlIGNoYXQgYnV0dG9uIHRoYXQgcmVwbGFjZWQgdGhlbSBpcyBzbWFsbCBlbm91Z2ggdG8gc3RheSB1bmNoYW5nZWQgYXRcbi8vIGV2ZXJ5IHdpZHRoLlxuQG1lZGlhIChtYXgtd2lkdGg6IDc2MHB4KSB7XG4gICAgcWRuYXByby1hY3Rpdml0eS1yb3dbdmFyaWFudD1cInB1bHNlXCJdIC5yb3ctcHVsc2Utc3dpdGNoIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIFZhcmlhbnQ6IFB1bHNlIOKAlCBkYXJrIG1vZGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1wdWxzZS1ncmlwIHsgY29sb3I6ICM1NjViNjY7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXB1bHNlLWxvY2sgeyBjb2xvcjogIzZiNzI4MDsgfVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1wdWxzZS1kYXkge1xuICAgIGJhY2tncm91bmQ6ICMyYTJkNTU7XG4gICAgY29sb3I6ICNhNWFjZmY7XG59XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXB1bHNlLWRheS1zdWIgeyBjb2xvcjogIzljYTNhZjsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctcHVsc2UtbmFtZSAgICB7IGNvbG9yOiAjZjNmNGY2OyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnJvdy1wdWxzZS1kZXNjICAgIHsgY29sb3I6ICM5Y2EzYWY7IH1cblxuLy8gUmVmLWNoaXAgKGthYXJ0IDEzKSDigJQgc2FtZSBjdXN0b20tcHJvcGVydHkgcGF0dGVybiBhcyB0aGUgbGlnaHQgY2hpcCBhYm92ZSxcbi8vIGRhcmstbW9kZSBmYWxsYmFja3MgaW5zdGVhZC5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucm93LXB1bHNlLXJlZiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcm93LXB1bHNlLXJlZi1iZy1kYXJrLCByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuMTYpKTtcbiAgICBjb2xvcjogdmFyKC0tcm93LXB1bHNlLXJlZi1mZy1kYXJrLCAjYzBjNWZmKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5yb3ctcHVsc2UtcmVmLmlzLW1pc3Npbmcge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXJvdy1wdWxzZS1yZWYtbWlzc2luZy1iZy1kYXJrLCByZ2JhKDI0MCwgMjA4LCA5NiwgMC4xNikpO1xuICAgIGNvbG9yOiB2YXIoLS1yb3ctcHVsc2UtcmVmLW1pc3NpbmctZmctZGFyaywgI2YwZDA2MCk7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLWFnZW5kYS1saXN0IOKAlCBhZ2VuZGEgbGlzdCB2aWV3IChQV0EgY2FsZW5kYXIgTTEpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBRRE5BIHRva2VucyB1c2VkOlxuLy8gICAgLS1jLWdyZXktNTAwICAjNmI3MjgwICAgZHVyYXRpb24gdGV4dCArIGVtcHR5IGxpbmVcbi8vICAgIC0tYy1ncmV5LTYwMCAgIzU2NWI2NiAgIGRheSBoZWFkZXIgdGV4dFxuLy8gICAgLS1jLWdyZXktOTUwICAjMGIwYjBkICAgc3RhcnQgdGltZVxuLy8gICAgLS1jLWJvcmRlci1zb2Z0LTIgIGRheSBoZWFkZXIgZGl2aWRlciAod2FzIC0tYy1ncmV5LTEwMClcbi8vICBObyBGaWdtYSBza2V0Y2ggKHNjb3BlIGRlY2lzaW9uOiBkZXNpZ24gaW4gY29kZSwgT3V0bG9vayBtb2JpbGUgYXNcbi8vICByZWZlcmVuY2UpOiBzdGlja3kgZGF5IGhlYWRlcnMsIDU2cHggdGltZSBjb2x1bW4gbGVmdCwgZXZlbnQtY2FyZCByaWdodC5cbi8vICBDYXJkcyBrZWVwIHRoZWlyIG93biBzdGF0dXMgY29sb3VycyDigJQgc2FtZSBsYW5ndWFnZSBhcyB0aGUgdGltZSBncmlkLlxuLy8gIEZMQVQgQ1NTOyBzeW5jZWQgdG8gdGhlIFBXQSB2aWEgc3luYy12Mi1jb21wb25lbnRzLmpzLlxuXG4ucWRuYXByby1hZ2VuZGEtbGlzdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xufVxuXG4vLyBEYXkgZ3JvdXAg4oCUIGhlYWRlciBzdGlja3Mgd2l0aGluIHRoZSBob3N0J3Mgc2Nyb2xsIGNvbnRhaW5lclxuLnFkbmFwcm8tYWdlbmRhLWxpc3RfX2RheSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnFkbmFwcm8tYWdlbmRhLWxpc3RfX2hlYWRlciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcbiAgei1pbmRleDogMTtcbiAgcGFkZGluZzogMTBweCAxNnB4IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMiwgI2U2ZTllZik7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNjAwLCAjNTY1YjY2KTtcbn1cbi8vIFRPREFZIHBpbGwgKEtpbSwgMjAuMDcuMjAyNikg4oCUIHRoZSBcInRvZGF5XCIgd29yZCBiZWNvbWVzIGEgZmlsbGVkXG4vLyAtLWMtYWN0aW9uLTUwMCBjaGlwLCBzYW1lIGJsdWUgdG9kYXkgbGFuZ3VhZ2UgYXMgdGhlIHRpbWUtZ3JpZCAvXG4vLyByZXNvdXJjZS10aW1lbGluZSBkYXktaGVhZGVyIHBpbGxzLiBTaXRzIGlubGluZSBiZWZvcmUgdGhlIGZvcm1hdHRlZCBkYXRlLlxuLnFkbmFwcm8tYWdlbmRhLWxpc3RfX2hlYWRlci5pcy10b2RheSB7XG4gIGNvbG9yOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xufVxuLnFkbmFwcm8tYWdlbmRhLWxpc3RfX3RvZGF5cGlsbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMXB4IDhweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLy8gUEFTVCBEQVlTIChkaW0tcGFzdCwgMDMuMDguMjAyNikg4oCUIHRoZSBzZWFyY2ggdmlldyBzaG93cyBoaXRzIGFjcm9zcyB0aGUgd2hvbGVcbi8vIGNhbGVuZGFyLCBzbyB3aGF0IGFscmVhZHkgaGFwcGVuZWQgaGFzIHRvIHJlYWQgcXVpZXRlciB0aGFuIHdoYXQgaXMgc3RpbGwgY29taW5nLlxuLy8gT25lIG9wYWNpdHkgb24gdGhlIHdob2xlIGRheSBncm91cCwgaGVhZGVyIGluY2x1ZGVkOiB0aGUgZXZlbnQtY2FyZHMga2VlcCB0aGVpciBvd25cbi8vIHN0YXR1cyBjb2xvdXJzIChwbGFubmVkL292ZXJkdWUvY29tcGxldGUpIGFuZCBvbmx5IGxvc2UgbG91ZG5lc3MsIHdoaWNoIGlzIGV4YWN0bHlcbi8vIHRoZSBHb29nbGUgQ2FsZW5kYXIgdHJlYXRtZW50LiBEaW1taW5nIHBlciB0b2tlbiBpbnN0ZWFkIHdvdWxkIG1lYW4gcmUtc3RhdGluZyBldmVyeVxuLy8gY2FyZCBjb2xvdXIgaW4gYSBtdXRlZCB2YXJpYW50LCBhbmQgdGhvc2UgdHdvIGxpc3RzIHdvdWxkIGRyaWZ0IGFwYXJ0LlxuLy8gTm90aGluZyBvdXRzaWRlIHRoZSBzZWFyY2ggdmlldyBzZXRzIGRpbS1wYXN0LCBzbyBubyBleGlzdGluZyB1c2FnZSBjaGFuZ2VzLlxuLnFkbmFwcm8tYWdlbmRhLWxpc3RfX2RheS5pcy1wYXN0IHtcbiAgb3BhY2l0eTogMC41NTtcbn1cblxuLy8gUm93OiB0aW1lIGNvbHVtbiArIGNhcmRcbi5xZG5hcHJvLWFnZW5kYS1saXN0X19yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDRweCA4cHggNHB4IDEycHg7XG59XG4ucWRuYXByby1hZ2VuZGEtbGlzdF9fcm93OmZpcnN0LW9mLXR5cGUge1xuICBwYWRkaW5nLXRvcDogOHB4O1xufVxuXG4ucWRuYXByby1hZ2VuZGEtbGlzdF9fdGltZSB7XG4gIGZsZXg6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMnB4O1xuICB3aWR0aDogNTZweDtcbiAgcGFkZGluZy10b3A6IDRweDtcbn1cbi5xZG5hcHJvLWFnZW5kYS1saXN0X19zdGFydCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwLCAjMGIwYjBkKTtcbn1cbi5xZG5hcHJvLWFnZW5kYS1saXN0X19kdXIge1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG59XG5cbi8vIENhcmRzIHNpemUgdG8gdGhlaXIgY29udGVudCBpbiB0aGUgbGlzdCAodGhlIGdyaWQgc3RyZXRjaGVzIHRoZW0gaW5zdGVhZClcbi5xZG5hcHJvLWFnZW5kYS1saXN0X19yb3cgLnFkbmFwcm8tZXZlbnQtY2FyZCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4ucWRuYXByby1hZ2VuZGEtbGlzdF9fZW1wdHkge1xuICBwYWRkaW5nOiAyNHB4IDE2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xufVxuIiwiLy8gcWRuYXByby1hbGVydCDigJQgcGVyc2lzdGVudCBpbi1wYWdlIHN0YXR1cyBiYW5uZXIgKG5vdCBhIHRvYXN0KS5cbi8vIFFETkEgdG9rZW5zIHVzZWQgKHNhbWUgc2lnbmFsLWNvbG91ciBmYW1pbGllcyBhcyBldmVudC1jYXJkIC8gYW5zd2VyLWJ1dHRvbiAvXG4vLyB0b2FzdCwgc28gYWxlcnQgcmVhZHMgYXMgdGhlIHNhbWUgdmlzdWFsIGxhbmd1YWdlIGV2ZXJ5d2hlcmUpOlxuLy8gICBlcnJvciAgIGJnIHZhcigtLWMtc2lnbmFsLXJlZC1iZykgICAgICNmZWUzZTMgICB0ZXh0L2JvcmRlciB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCkgICAgICNjNjVhNWFcbi8vICAgd2FybmluZyBiZyB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJnKSAjZmZmM2NkICAgdGV4dCB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LXRleHQpICM5YTZhMTAgIGJvcmRlciB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJvcmRlcikgI2YwZDA2MFxuLy8gICBzdWNjZXNzIGJnIHZhcigtLWMtc2lnbmFsLWdyZWVuLWJnKSAgICNjNWY1ZTIgICB0ZXh0L2JvcmRlciB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0KSAgICM0MjhiNmVcbi8vICAgbmV1dHJhbCBiZyB2YXIoLS1jLWdyZXktNTApICAgICAgICAgICAjZjBmMWYyICAgdGV4dCB2YXIoLS1jLWdyZXktNjAwKSAjNTY1YjY2ICBib3JkZXIgdmFyKC0tYy1ncmV5LTIwMCkgI2QxZDVkYlxuLy8gICBpbmZvICAgIGJnIHZhcigtLWMtc2lnbmFsLWJsdWUtYmcpICAgICNlNmVmZjkgICB0ZXh0L2JvcmRlciB2YXIoLS1jLXNpZ25hbC1ibHVlLXRleHQpICAgICM2YThhYjRcbi8vIEV2ZXJ5IHR5cGUgPSAzIHZhcmlhYmxlIG92ZXJyaWRlcyAoYmcvdGV4dC9ib3JkZXIpOyBGTEFUIENTUywgbm8gbmVzdGluZyAtXG4vLyB0aGUgUFdBIHYyLWNvbXBvbmVudCBydW50aW1lIGV4cGVjdHMgZmxhdCBjb21waWxlZCBzZWxlY3RvcnMuXG5cbi5xZG5hcHJvLWFsZXJ0IHtcbiAgLy8gTmV1dHJhbCAoZGVmYXVsdCkgc3VyZmFjZVxuICAtLWFsZXJ0LWJnOiAgICAgdmFyKC0tYy1ncmV5LTUwLCAjZjBmMWYyKTtcbiAgLS1hbGVydC10ZXh0OiAgIHZhcigtLWMtZ3JleS02MDAsICM1NjViNjYpO1xuICAtLWFsZXJ0LWJvcmRlcjogdmFyKC0tYy1ncmV5LTIwMCwgI2QxZDVkYik7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgLy8gVmVydGljYWxseSBjZW50ZXJlZCByb3c6IGEgc2luZ2xlLWxpbmUgYWxlcnQgcmVhZHMgd2l0aCBpY29uLCB0ZXh0IGFuZFxuICAvLyBkaXNtaXNzIFggb24gb25lIHZpc3VhbCBsaW5lIChLaW0gMDkuMDcpOyBtdWx0aS1saW5lIGFsZXJ0cyBjZW50ZXIgdGhlXG4gIC8vIGljb24vWCBhZ2FpbnN0IHRoZSB3aG9sZSB0ZXh0IGJsb2NrLCBzYW1lIGZlZWwgYXMgcWRuYXByby10b2FzdC5cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTRweCAxNnB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMsIDEycHgpO1xuICAvLyBCb3JkZXIgcmVhZHMgYXMgYSBzb2Z0IHRpbnQgb2YgdGhlIHRleHQgY29sb3VyLCBub3QgYSBmdWxsLXN0cmVuZ3RoIGxpbmUgLVxuICAvLyBzYW1lIFwiMXB4IGJvcmRlciBkZWZpbmVzIHRoZSBlZGdlIG9uIGEgbGlnaHQtb24tbGlnaHQgc3VyZmFjZVwiIGlkZWEgYXMgdGhlXG4gIC8vIHFkbmFwcm8tdG9hc3QgeWVsbG93L3JlZCB2YXJpYW50cy5cbiAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFsZXJ0LWJvcmRlcikgNDUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFsZXJ0LWJnKTtcbiAgY29sb3I6IHZhcigtLWFsZXJ0LXRleHQpO1xuICBmb250LWZhbWlseTogdmFyKC0tZmYsIFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZik7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5xZG5hcHJvLWFsZXJ0LS1lcnJvciB7XG4gIC0tYWxlcnQtYmc6ICAgICB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZWUzZTMpO1xuICAtLWFsZXJ0LXRleHQ6ICAgdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xuICAtLWFsZXJ0LWJvcmRlcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xufVxuLnFkbmFwcm8tYWxlcnQtLXdhcm5pbmcge1xuICAtLWFsZXJ0LWJnOiAgICAgdmFyKC0tYy13YXJuaW5nLWJyaWdodC1iZywgI2ZmZjNjZCk7XG4gIC0tYWxlcnQtdGV4dDogICB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LXRleHQsICM5YTZhMTApO1xuICAtLWFsZXJ0LWJvcmRlcjogdmFyKC0tYy13YXJuaW5nLWJyaWdodC1ib3JkZXIsICNmMGQwNjApO1xufVxuLnFkbmFwcm8tYWxlcnQtLXN1Y2Nlc3Mge1xuICAtLWFsZXJ0LWJnOiAgICAgdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcsICNjNWY1ZTIpO1xuICAtLWFsZXJ0LXRleHQ6ICAgdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCwgIzQyOGI2ZSk7XG4gIC0tYWxlcnQtYm9yZGVyOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTtcbn1cbi5xZG5hcHJvLWFsZXJ0LS1pbmZvIHtcbiAgLS1hbGVydC1iZzogICAgIHZhcigtLWMtc2lnbmFsLWJsdWUtYmcsICNlNmVmZjkpO1xuICAtLWFsZXJ0LXRleHQ6ICAgdmFyKC0tYy1zaWduYWwtYmx1ZS10ZXh0LCAjNmE4YWI0KTtcbiAgLS1hbGVydC1ib3JkZXI6IHZhcigtLWMtc2lnbmFsLWJsdWUtdGV4dCwgIzZhOGFiNCk7XG59XG5cbi5xZG5hcHJvLWFsZXJ0X19pY29uIHtcbiAgZmxleDogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1hbGVydC10ZXh0KTtcbn1cbi5xZG5hcHJvLWFsZXJ0X19pY29uIHFkbmFwcm8taWNvbiB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5xZG5hcHJvLWFsZXJ0X19tYWluIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDhweCAxNnB4O1xufVxuXG4ucWRuYXByby1hbGVydF9fY29udGVudCB7XG4gIGZsZXg6IDEgMSAyMjBweDtcbiAgbWluLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbn1cblxuLnFkbmFwcm8tYWxlcnRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMS4zNTtcbiAgY29sb3I6IHZhcigtLWFsZXJ0LXRleHQpO1xufVxuXG4ucWRuYXByby1hbGVydF9fYm9keSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gIGNvbG9yOiB2YXIoLS1hbGVydC10ZXh0KTtcbn1cbi8vIEJvZHkgdGV4dCBpcyBkZWxpYmVyYXRlbHkgTk9UIG11dGVkL29wYWNpdHktcmVkdWNlZCAtIHRoZSB3aG9sZSBjYXJkIGlzXG4vLyBhbHJlYWR5IGEgc29mdCB0aW50LCBzbyB0aGUgdHlwZSBjb2xvdXIgc3RheXMgdGhlIHNpbmdsZSBzb3VyY2Ugb2YgZW1waGFzaXMuXG5cbi5xZG5hcHJvLWFsZXJ0X19hY3Rpb24ge1xuICBmbGV4OiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4vLyBBY3Rpb24gYnV0dG9ucyBpbnNpZGUgYW4gYWxlcnQgYWRhcHQgdG8gdGhlIGFsZXJ0J3MgY29sb3VyIGZhbWlseSBpbnN0ZWFkIG9mXG4vLyBjbGFzaGluZyB3aXRoIGl0IChLaW0gMDkuMDc6IGEgbGlsYWMgc3VidGxlIGJ1dHRvbiBvbiB0aGUgeWVsbG93IHdhcm5pbmdcbi8vIHN1cmZhY2UgcmVhZHMgYXMgYSBmb3JlaWduIGVsZW1lbnQpLiBPbmUgcnVsZSBjb3ZlcnMgYWxsIGZpdmUgdHlwZXMgYmVjYXVzZVxuLy8gaXQgZGVyaXZlcyBmcm9tIHRoZSBzYW1lIC0tYWxlcnQtdGV4dCBjdXN0b20gcHJvcCB0aGUgdHlwZSBtb2RpZmllcnMgc2V0O1xuLy8gdGhlIGV4dHJhIGFuY2VzdG9yIGluIHRoZSBzZWxlY3RvciBvdXRyYW5rcyB0aGUgYnV0dG9uJ3Mgb3duIHR5cGUgY2xhc3Nlcy5cbi5xZG5hcHJvLWFsZXJ0IC5xZG5hcHJvLWFsZXJ0X19hY3Rpb24gLnFkbmFwcm8tYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFsZXJ0LXRleHQpIDEyJSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tYWxlcnQtdGV4dCk7XG59XG5cbi5xZG5hcHJvLWFsZXJ0IC5xZG5hcHJvLWFsZXJ0X19hY3Rpb24gLnFkbmFwcm8tYnV0dG9uOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hbGVydC10ZXh0KSAyMCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnFkbmFwcm8tYWxlcnQgLnFkbmFwcm8tYWxlcnRfX2FjdGlvbiAucWRuYXByby1idXR0b246YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hbGVydC10ZXh0KSAyNiUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnFkbmFwcm8tYWxlcnRfX2Rpc21pc3Mge1xuICBmbGV4OiBub25lO1xuICBtYXJnaW46IDAgLTZweCAwIDA7XG59XG5cbi8vIEhldCBzbHVpdGtydWlzamUgdmFuIGVlbiBOSUVULXdlZ2tsaWtiYXJlIGFsZXJ0IHZlcmJlcmdlbi4gWzIzLjA5LjIwMjZdXG4vLyBIZXQgY29tcG9uZW50IHpldCBgaGlkZGVuYCBvcCBkZSBrbm9wIGFscyBgZGlzbWlzc2libGVgIG9udGJyZWVrdCwgbWFhciBkYXQgZG9ldCBuaWV0c1xuLy8gb3AgZWVuIHFkbmFwcm8taWNvbi1idG46IGRlIGJyb3dzZXJyZWdlbCBhY2h0ZXIgYGhpZGRlbmAgdmVybGllc3QgdmFuXG4vLyBgLnFkbmFwcm8taWNvbi1idG4geyBkaXNwbGF5OiBpbmxpbmUtZmxleCB9YCAoQ0xBVURFLm1kLCB2YWxrdWlsIDZjKS4gR2V2b2xnOiBFTEtFIGFsZXJ0XG4vLyBoYWQgZWVuIGtydWlzamUsIG9vayBhbHMgaGlqIGJlZG9lbGQgd2FzIG9tIHRlIGJsaWp2ZW4gc3RhYW4sIGVuIGtsaWtrZW4gZXJvcCBoYWFsZGUgaGVtXG4vLyB3ZWcuIEdlbWV0ZW4gb3AgZGUgdm9vcmJlZWxkcGFnaW5hIHZhbiBkaXQgY29tcG9uZW50OiAxMiB2YW4gZGUgMTQgYWxlcnRzIHppam4gbmlldFxuLy8gd2Vna2xpa2JhYXIgYmVkb2VsZCBlbiB0b29uZGVuIHRvY2ggaGV0IGtydWlzamUuIERyaWUga2xhc3NlbiB0ZWdlbiBlZW4sIGR1cyBnZWVuXG4vLyAhaW1wb3J0YW50IG5vZGlnLlxuLnFkbmFwcm8tYWxlcnQgLnFkbmFwcm8tYWxlcnRfX2Rpc21pc3NbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIERpc21pc3MgWCBhZGFwdHMgdG8gdGhlIGFsZXJ0J3MgY29sb3VyIGZhbWlseSwgc2FtZSBydWxlIGFzIHRoZSBhY3Rpb25cbi8vIGJ1dHRvbiBhYm92ZSAoS2ltIDA5LjA3OiB0aGUgZGVmYXVsdCBkYXJrIFggcmVhZCBhcyBhIGZvcmVpZ24gZWxlbWVudCBvblxuLy8gdGhlIHRpbnRlZCBzdXJmYWNlcykuIEV4dHJhIGFuY2VzdG9yIG91dHJhbmtzIHRoZSBpY29uLWJ0biB0eXBlIGNsYXNzZXMuXG4ucWRuYXByby1hbGVydCAucWRuYXByby1hbGVydF9fZGlzbWlzcy5xZG5hcHJvLWljb24tYnRuIHtcbiAgY29sb3I6IHZhcigtLWFsZXJ0LXRleHQpO1xufVxuXG4ucWRuYXByby1hbGVydCAucWRuYXByby1hbGVydF9fZGlzbWlzcy5xZG5hcHJvLWljb24tYnRuOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFsZXJ0LXRleHQpIDE1JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4vLyBDb21wYWN0IOKAlCB0aWdodGVyIHBhZGRpbmcvdHlwb2dyYXBoeSBmb3IgdXNlIGluc2lkZSBtb2RhbHMgYW5kIGRlbnNlIGxpc3RzXG4vLyAoZS5nLiB0aGUgZmxvd2VkaXRvciBub2RlLW9wdGlvbnMgcGFuZWwpLlxuLnFkbmFwcm8tYWxlcnQtLWNvbXBhY3Qge1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gIGdhcDogOHB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIsIDhweCk7XG59XG4ucWRuYXByby1hbGVydC0tY29tcGFjdCAucWRuYXByby1hbGVydF9faWNvbiBxZG5hcHJvLWljb24ge1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xufVxuLnFkbmFwcm8tYWxlcnQtLWNvbXBhY3QgLnFkbmFwcm8tYWxlcnRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLnFkbmFwcm8tYWxlcnQtLWNvbXBhY3QgLnFkbmFwcm8tYWxlcnRfX2JvZHkge1xuICBmb250LXNpemU6IDEycHg7XG59XG4ucWRuYXByby1hbGVydC0tY29tcGFjdCAucWRuYXByby1hbGVydF9fbWFpbiB7XG4gIGdhcDogNnB4IDEycHg7XG59XG4iLCIvLyDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbi8vIHFkbmFwcm8tYW5zd2VyLW9wdGlvbiAg4oCUICBBbnN3ZXIgb3B0aW9uIHJvdyAoZmxvdy1lZGl0b3Igbm9kZSBtb2RhbClcbi8vIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuLy9cbi8vIEV4dHJhY3RlZCAxOjEgZnJvbSB0aGUgbGl2ZSBmbG93ZWRpdG9yIC5mZS1hbnN3ZXItKiByb3cgYW5kIG5hbWVzcGFjZWRcbi8vIGFzIGEgcmV1c2FibGUgY29tcG9uZW50LiBJZGxlIC8gaG92ZXIgLyBwcmVzc2VkIC8gZHJhZ2dpbmcgLyBlZGl0aW5nIC9cbi8vIGNvbmZpcm0tZGVsZXRlIC8gY29uZmlybS11bmxpbmsgLyB1bmxpbmtlZCBzdGF0ZXMuXG4vL1xuLy8gU3RhdGVzIHRoYXQgZXhpc3QgaW4gdGhlIGxpdmUgZmxvd2VkaXRvciB0b2RheTogaWRsZSwgaG92ZXIsIGVkaXRpbmdcbi8vIChpbnB1dCA6Zm9jdXMpLCBjb25maXJtLWRlbGV0ZSwgY29uZmlybS11bmxpbmssIHVubGlua2VkLlxuLy8gTkVXIGhlcmUgKGRlc2lnbmVkIHRvIHJvdW5kIG91dCB0aGUgY29tcG9uZW50IHNwZWMpOiBwcmVzc2VkLCBkcmFnZ2luZy5cblxuLnFkbmFwcm8tYW5zd2VyLW9wdGlvbiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgbWluLWhlaWdodDogMzhweDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTQwbXMsIGJveC1zaGFkb3cgMTQwbXMsIHRyYW5zZm9ybSAxMjBtcywgYmFja2dyb3VuZCAxNDBtcztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcblxuICAgICosICo6OmJlZm9yZSwgKjo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbiAgICAvLyDilIDilIAgSG92ZXI6IHJldmVhbCB0aGUgYWN0aW9uIGJ1dHRvbnMg4pSA4pSAXG4gICAgLy8gLi0tc2hvdy1hY3Rpb25zIGxldHMgYSBwYXJlbnQgLyB0aGUgbGlicmFyeSBmb3JjZSB0aGUgaG92ZXIgbG9vay5cbiAgICAmOmhvdmVyLFxuICAgICYtLXNob3ctYWN0aW9ucyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLTItaG92ZXIpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSg2NCwgNzMsIDE1NCwgMC4xMCk7XG5cbiAgICAgICAgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fZHJhZyAgICB7IG9wYWNpdHk6IDE7IH1cbiAgICAgICAgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fYWN0aW9ucyB7IG9wYWNpdHk6IDE7IHBvaW50ZXItZXZlbnRzOiBhbGw7IH1cbiAgICAgICAgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fYWN0ICAgICB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IG9wYWNpdHk6IDE7IH1cbiAgICB9XG5cbiAgICAvLyBEcmFnZ2FibGUgcm93czogbWFrZSByb29tIG9uIHRoZSBsZWZ0IHNvIHRoZSBsYWJlbCBjbGVhcnMgdGhlIGFjY2VudCBiYXIuXG4gICAgJi0tZHJhZ2dhYmxlIC5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2xhYmVsIHsgcGFkZGluZy1sZWZ0OiAxNHB4OyB9XG5cbiAgICAvLyDilIDilIAgUHJlc3NlZDogcm93IGhlbGQgZG93biAoTkVXKSDilIDilIBcbiAgICAmLS1wcmVzc2VkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1ob3Zlcik7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDNweCByZ2JhKDY0LCA3MywgMTU0LCAwLjEyKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7XG4gICAgfVxuXG4gICAgLy8g4pSA4pSAIERyYWdnaW5nOiBsaWZ0ZWQgd2hpbGUgcmVvcmRlcmluZyAoTkVXKSDilIDilIBcbiAgICAmLS1kcmFnZ2luZyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDI2cHggcmdiYSgyMCwgMjQsIDYwLCAwLjIyKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAxNSk7XG4gICAgICAgIHotaW5kZXg6IDU7XG5cbiAgICAgICAgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fZHJhZyB7IG9wYWNpdHk6IDE7IH1cbiAgICB9XG5cbiAgICAvLyDilIDilIAgVW5saW5rZWQ6IGFtYmVyIHRpbnQg4pSA4pSAXG4gICAgJi0tdW5saW5rZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtd2FybmluZy1icmlnaHQtYm9yZGVyKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICB9XG5cbiAgICAvLyDilIDilIAgQ29uZmlybWluZyBkZWxldGU6IHJlZCB0aW50IChkZXN0cnVjdGl2ZSkg4pSA4pSAXG4gICAgJi0tY29uZmlybWluZyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1jaGlwLXJlZC0yLWJnKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLXNvZnQpO1xuICAgIH1cblxuICAgIC8vIOKUgOKUgCBDb25maXJtaW5nIHVubGluazogeWVsbG93L2FtYmVyIHRpbnQgKGdlbnRsZSDigJQgbm90IGRlc3RydWN0aXZlKSDilIDilIBcbiAgICAmLS1jb25maXJtaW5nLXVubGluayB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy13YXJuaW5nLWJyaWdodC1ib3JkZXIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIH1cblxuICAgIC8vIOKUgOKUgCBTZW1hbnRpYyBvcHRpb24gY29sb3VyIChNZWVya2V1emUgcGVyLW9wdGlvbiBhcHBlYXJhbmNlLCBGYXNlIDUsXG4gICAgLy8gMTEuMDcuMjAyNikg4oCUIGEgY2xvc2VkIHBhbGV0dGUgKHN0YW5kYWFyZC9wb3NpdGllZi93YWFyc2NodXdpbmcvbmVnYXRpZWYvXG4gICAgLy8gYWZ3aWprZW5kKSwgbmV2ZXIgYSBmcmVlIGNvbG91ciBwaWNrZXIuIERlbGliZXJhdGVseSB0aW50cyBPTkxZIHRoZSBpY29uXG4gICAgLy8gYmFkZ2UgKC0tYW5zd2VyLW9wdGlvbi1hY2NlbnQtKiksIG5ldmVyIHRoZSByb3cncyBvd24gYm9yZGVyL2JhY2tncm91bmQg4oCUXG4gICAgLy8gdGhvc2UgYXJlIG93bmVkIGJ5IHRoZSBzdHJ1Y3R1cmFsIHN0YXRlcyBhYm92ZSAodW5saW5rZWQvY29uZmlybWluZy9cbiAgICAvLyBkcmFnZ2luZykgYW5kIG11c3Qga2VlcCB3aW5uaW5nLiBTYW1lIFwic2VtYW50aWNzIG5ldmVyIGZpZ2h0IHN0YXRlXCIgcnVsZVxuICAgIC8vIGFzIHRoZSByZXN0IG9mIHRoaXMgY29tcG9uZW50LiBNaXJyb3JzIHRoZSAtLWV2ZW50LWNhcmQtKiB0b2tlbi1vdmVycmlkZVxuICAgIC8vIHBhdHRlcm4gKDIgdmFyaWFibGVzIHBlciB2YXJpYW50KS4gXCJzdGFuZGFhcmRcIiAobm8gYXR0cmlidXRlKSA9IG5vIGFjY2VudCxcbiAgICAvLyB0aGUgaWNvbiBiYWRnZSBrZWVwcyBpdHMgbmV1dHJhbCBwdXJwbGUgZGVmYXVsdC5cbiAgICAtLWFuc3dlci1vcHRpb24tYWNjZW50LWJnOiAgIHZhcigtLWMtcHVycGxlLTUwLCAjZTZlOWZmKTtcbiAgICAtLWFuc3dlci1vcHRpb24tYWNjZW50LXRleHQ6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG5cbiAgICAmLS1jb2xvci1wb3NpdGl2ZSB7XG4gICAgICAgIC0tYW5zd2VyLW9wdGlvbi1hY2NlbnQtYmc6ICAgdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcsICNjNWY1ZTIpO1xuICAgICAgICAtLWFuc3dlci1vcHRpb24tYWNjZW50LXRleHQ6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQsICM0MjhiNmUpO1xuICAgIH1cbiAgICAmLS1jb2xvci13YXJuaW5nIHtcbiAgICAgICAgLS1hbnN3ZXItb3B0aW9uLWFjY2VudC1iZzogICB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctYmcsICNmZWVkYjgpO1xuICAgICAgICAtLWFuc3dlci1vcHRpb24tYWNjZW50LXRleHQ6IHZhcigtLWMtc2lnbmFsLXllbGxvdy10ZXh0LCAjYmY3MjAyKTtcbiAgICB9XG4gICAgJi0tY29sb3ItbmVnYXRpdmUge1xuICAgICAgICAtLWFuc3dlci1vcHRpb24tYWNjZW50LWJnOiAgIHZhcigtLWMtc2lnbmFsLXJlZC1iZywgI2ZlZTNlMyk7XG4gICAgICAgIC0tYW5zd2VyLW9wdGlvbi1hY2NlbnQtdGV4dDogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xuICAgIH1cbiAgICAmLS1jb2xvci1uZXV0cmFsX2FsdCB7XG4gICAgICAgIC0tYW5zd2VyLW9wdGlvbi1hY2NlbnQtYmc6ICAgdmFyKC0tYy1zaWduYWwtYmx1ZS1iZywgI2U2ZWZmOSk7XG4gICAgICAgIC0tYW5zd2VyLW9wdGlvbi1hY2NlbnQtdGV4dDogdmFyKC0tYy1zaWduYWwtYmx1ZS10ZXh0LCAjNmE4YWI0KTtcbiAgICB9XG5cbiAgICAvLyDilIDilIAgQ3Jvc3MtY2hlY2sgbWFyay1tb2RlICgyNS4wOC4yMDI2KSDilIDilIBcbiAgICAvLyBPcHQtaW4gc3RhbmQgZm9yIFB1bHNlLXN0eWxlIG9wdGlvbiBsaXN0cyB0aGF0IGRvbid0IHVzZSB0aGUgZmxvdy1lZGl0b3Inc1xuICAgIC8vIGBjb3JyZWN0YWJsZWAgcmFkaW8uIGAtLWNyb3NzLWNoZWNrYCBvbmx5IHdpZGVucyB0aGUgdHJhbnNpdGlvbi10aW1pbmdcbiAgICAvLyBmb3IgVEhJUyByb3cgdG8gfjIwMG1zIChzZWUgdGhlIGNhcmQpIOKAlCBpdCBkZWxpYmVyYXRlbHkgZG9lcyBub3QgdG91Y2hcbiAgICAvLyBvdGhlciByb3dzJyAxNDBtcyBiYXNlIHRyYW5zaXRpb24sIHNvIGBjb3JyZWN0YWJsZWAgLyBmbG93LWVkaXRvciByb3dzXG4gICAgLy8gYXJlIGJ5dGUtaWRlbnRpY2FsIHdpdGhvdXQgdGhpcyBhdHRyaWJ1dGUuIFRoZSByb3cgdGludCByZXVzZXMgdGhlIFNBTUVcbiAgICAvLyBzdWNjZXNzIHRva2VucyBhcyBgLS1jb2xvci1wb3NpdGl2ZWAgYWJvdmUgKG5vIG5ldyBoZXggaW50cm9kdWNlZCkuXG4gICAgJi0tY3Jvc3MtY2hlY2sge1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMjAwbXMsIGJveC1zaGFkb3cgMjAwbXMsIHRyYW5zZm9ybSAyMDBtcywgYmFja2dyb3VuZCAyMDBtcztcbiAgICB9XG5cbiAgICAmLS1tYXJrZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtc3VjY2Vzcy01MDAsICMxMjgwNWUpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi1iZywgI2M1ZjVlMik7XG4gICAgfVxuXG4gICAgLy8gTk9URSAoY2FyZCAxOSwgMjUuMDguMjAyNik6IHRoZSBcIndyb25nIG9uY2Ugc29tZXRoaW5nIGlzIG1hcmtlZFwiIHN0YXRlXG4gICAgLy8gKGBtYXJrLWRlY2lkZWRgIG9uIHRoZSBob3N0LCBgLmlzLXdyb25nYCBvbiB0aGUgY3Jvc3MtY2hlY2sgYnV0dG9uXG4gICAgLy8gYmVsb3cpIGRlbGliZXJhdGVseSBnZXRzIE5PIHJvdy1sZXZlbCBtb2RpZmllci90aW50IGhlcmUuIE9ubHkgdGhlXG4gICAgLy8gYnV0dG9uIGl0c2VsZiB0dXJucyByZWQg4oCUIHNlZSB0aGUgYC5pcy13cm9uZ2AgY29tbWVudCBvblxuICAgIC8vIGAucWRuYXByby1hbnN3ZXItb3B0aW9uX19tYXJrYCBiZWxvdyBmb3Igd2h5IGEgZnVsbCByZWQgUk9XIHBlciB3cm9uZ1xuICAgIC8vIG9wdGlvbiB3YXMgcmVqZWN0ZWQgKGEgXCJibG9vZGJhdGhcIiB3aXRoIHNldmVyYWwgb3B0aW9ucykuXG59XG5cbi8vIERyYWcgaGFuZGxlID0gcHVycGxlIGFjY2VudCBiYXIsIHJldmVhbGVkIG9uIGhvdmVyLlxuLy8gSWRlbnRpY2FsIGFmZm9yZGFuY2UgdG8gcWRuYXByby1hY3Rpdml0eS1yb3cgLnJvdy1hY2NlbnQtYmFyIC9cbi8vIHNlY3Rpb24taGVhZGVyIC5zaC1kcmFnIChhYnNvbHV0ZSwgbGVmdDo0cHgsICM0NjUyZjMsIG9wYWNpdHkgMCAtPiAxKS5cbi5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2RyYWcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA0cHg7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHdpZHRoOiA0cHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDE7XG59XG5cbi8vIOKUgOKUgCBDcm9zcy1jaGVjayBtYXJrIHRvZ2dsZSAobWFyay1tb2RlPVwiY3Jvc3MtY2hlY2tcIiwgMjUuMDguMjAyNikg4pSA4pSAXG4vLyBBIHJvdW5kIGJ1dHRvbiBCRUZPUkUgdGhlIGFuc3dlciB0ZXh0OiBncmV5IGNyb3NzIHdoZW4gdW5tYXJrZWQsIGdyZWVuXG4vLyBjaGVjayB3aGVuIGBtYXJrZWRgLiBTaXRzIGF0IHRoZSBmcm9udCBvZiB0aGUgZmxleCByb3cgKHRoZSBkcmFnIGhhbmRsZSBpc1xuLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLCBzbyBpdCBkb2Vzbid0IHRha2UgZmxvdyBzcGFjZSDigJQgdGhpcyBidXR0b24gSVMgdGhlXG4vLyBsZWZ0bW9zdCB0aGluZyBpbiB0aGUgcm93J3MgZmxvdykuIEluZGVwZW5kZW50IG9mIGBjb3JyZWN0YWJsZWAncyByYWRpb1xuLy8gKHdoaWNoIGxpdmVzIGF0IHRoZSBFTkQgb2YgdGhlIHJvdyBhbmQgbmVlZHMgcWRuYS1yYWRpby5qcyk7IHRoaXMgdG9nZ2xlXG4vLyBpcyBpbmxpbmUgU1ZHIG9ubHksIG5vIGNvbXBvbmVudCBkZXBlbmRlbmN5LiBCb3RoIGljb25zIHN0YXkgaW4gdGhlIERPTVxuLy8gYW5kIGNyb3NzLWZhZGUgdmlhIG9wYWNpdHkvdHJhbnNmb3JtIHNvIHRoZSBzd2FwIGNhbiBhbmltYXRlIOKAlCBzZWUgdGhlXG4vLyBgbWFya2VkYCBndWFyZCBpbiB0aGUgSlMgZm9yIHdoeSB0aGUgY2xpY2sgdG9nZ2xlcyBgLmlzLW1hcmtlZGAgZGlyZWN0bHlcbi8vIGluc3RlYWQgb2YgZ29pbmcgdGhyb3VnaCBhIGZ1bGwgcmUtcmVuZGVyLlxuLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fbWFyayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2UsIGJvcmRlci1jb2xvciAyMDBtcyBlYXNlLCBjb2xvciAyMDBtcyBlYXNlO1xuXG4gICAgLy8gQm9vdHN0cmFwIHppdCBvcCBlbGtlIHYxLXBhZ2luYSBlbiB6ZXQgYGJ1dHRvbjpmb2N1cyB7IG91dGxpbmU6IDVweCBhdXRvXG4gICAgLy8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIH1gIOKAlCBlZW4gQkxBVVdFIHJpbmcgb20gZGl0IGtub3BqZSB6b2RyYSBqZSBlcm9wXG4gICAgLy8ga2xpa3QsIGR3YXJzIGRvb3IgZGUgZ3JvZW4vcm9vZC10YWFsIGhlZW4gKEtpbSwgMjUuMDguMjAyNikuIEFsbGVlblxuICAgIC8vIGA6Zm9jdXMtdmlzaWJsZWAgYWZoYW5kZWxlbiBpcyBuaWV0IGdlbm9lZzogZWVuIGVjaHRlIG11aXNrbGlrIHpldCB3w6lsXG4gICAgLy8gYDpmb2N1c2AsIGR1cyBkaWUgbW9ldCBleHBsaWNpZXQgdWl0ICh6aWUgb29rIGRlIGJvb3RzdHJhcC1ub3RpdGllIGJpalxuICAgIC8vIC5wdWxzZS10eXBlLWNhcmQgaW4gX3B1bHNlLnNjc3MpLiBEZSB0b2V0c2VuYm9yZC1yaW5nIGtvbXQgdGVydWcgaW4gZGVcbiAgICAvLyBFSUdFTiBrbGV1ciB2YW4gZGUgc3RhbmQgdmlhIGN1cnJlbnRDb2xvciDigJQgbm9vaXQgYmxhdXcuXG4gICAgJjpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCBjb2xvci1taXgoaW4gc3JnYiwgY3VycmVudENvbG9yIDM1JSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cblxuICAgIHN2ZyB7IHdpZHRoOiAxMnB4OyBoZWlnaHQ6IDEycHg7IH1cblxuICAgICYuaXMtbWFya2VkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXN1Y2Nlc3MtNTAwLCAjMTI4MDVlKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcsICNjNWY1ZTIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCwgIzQyOGI2ZSk7XG4gICAgfVxuXG4gICAgLy8g4pSA4pSAIFwiRm91dCB6b2RyYSBlciBlZW4ganVpc3QgaXNcIiAoY2FyZCAxOSwgMjUuMDguMjAyNiwgS2ltIG5hIHZpc3VlbGVcbiAgICAvLyByZXZpZXcpIOKAlCBtaXJyb3JzIGAuaXMtbWFya2VkYCBhYm92ZSAxOjEgd2l0aCB0aGUgcmVkIHNpZGUgb2YgdGhlIFNBTUVcbiAgICAvLyBzaWduYWwtdG9rZW4gcGFpciAoLS1jLXNpZ25hbC1yZWQtKiAvIC0tYy13YXJuLXJlZC01MDApIGluc3RlYWQgb2YgdGhlXG4gICAgLy8gZ3JlZW4gb25lLCBzbyB0aGUgdHdvIHN0YXRlcyByZWFkIGFzIG9uZSBjbG9zZWQgcGFpciwgbm90IHR3byByYW5kb21cbiAgICAvLyBjaG9pY2VzLiBgLS1jLXdhcm4tcmVkLTUwMGAgb24gdGhlIGJvcmRlciAodGhlIFwic3ByZWtlbmRlIGxpam5cIiwgc2FtZVxuICAgIC8vIFJPTEUgYC0tYy1zdWNjZXNzLTUwMGAgcGxheXMgZm9yIGdyZWVuKSB3aXRoIHRoZSBzb2Z0XG4gICAgLy8gYC0tYy1zaWduYWwtcmVkLWJnYC9gLS1jLXNpZ25hbC1yZWQtdGV4dGAgZmlsbCDigJQgbmV2ZXIgYSBuZXcgaGV4LCBhbmRcbiAgICAvLyBuZXZlciBvbiB0aGUgcm93IGl0c2VsZiAoc2VlIHRoZSBgLS1tYXJrLWRlY2lkZWRgIG5vdGUgbmVhclxuICAgIC8vIGAucWRuYXByby1hbnN3ZXItb3B0aW9uYCBhYm92ZSk6IHdpdGggdXAgdG8gYE9QVF9NQVhgIHJvd3MgYSBmdWxseVxuICAgIC8vIHRpbnRlZCByZWQgUk9XIHBlciB3cm9uZyBvcHRpb24gcmVhZHMgYXMgYSBcImJsb29kYmF0aFwiLCB0aGUgYnV0dG9uXG4gICAgLy8gYWxvbmUgaXMgZW5vdWdoIG9mIGEgY3VlIG9uY2UgdGhlIHNpbmdsZSBncmVlbiByb3cgYWxyZWFkeSBzdGFuZHMgb3V0LlxuICAgIC8vIFNldCBieSB0aGUgSlMgb25seSB3aGVuIGBtYXJrLWRlY2lkZWRgIGlzIHByZXNlbnQgQU5EIHRoaXMgcm93IGlzIE5PVFxuICAgIC8vIGBtYXJrZWRgIChzZWUgYF9zeW5jTWFya0RlY2lkZWRgL2BtYXJrV3JvbmdgIHRoZXJlKSDigJQgYC5pcy1tYXJrZWRgXG4gICAgLy8gYWJvdmUgYWx3YXlzIHdpbnMsIHNvIHRoZSB0d28gY2xhc3NlcyBuZXZlciBhcHBseSB0b2dldGhlci5cbiAgICAmLmlzLXdyb25nIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm4tcmVkLTUwMCwgI2RjMjYyNik7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXJlZC1iZywgI2ZlZTNlMyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7XG4gICAgfVxufVxuXG4ucWRuYXByby1hbnN3ZXItb3B0aW9uLS1kcmFnZ2FibGUgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fbWFyayB7IG1hcmdpbi1sZWZ0OiAxNHB4OyB9XG5cbi5xZG5hcHJvLWFuc3dlci1vcHRpb25fX21hcmstaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIHRyYW5zZm9ybSAyMDBtcyBlYXNlO1xufVxuXG4ucWRuYXByby1hbnN3ZXItb3B0aW9uX19tYXJrLWljb24tLWNyb3NzIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoMCk7IH1cbi5xZG5hcHJvLWFuc3dlci1vcHRpb25fX21hcmstaWNvbi0tY2hlY2sgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHNjYWxlKDAuNSkgcm90YXRlKC00NWRlZyk7IH1cblxuLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fbWFyay5pcy1tYXJrZWQge1xuICAgIC5xZG5hcHJvLWFuc3dlci1vcHRpb25fX21hcmstaWNvbi0tY3Jvc3MgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHNjYWxlKDAuNSkgcm90YXRlKDQ1ZGVnKTsgfVxuICAgIC5xZG5hcHJvLWFuc3dlci1vcHRpb25fX21hcmstaWNvbi0tY2hlY2sgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEpIHJvdGF0ZSgwKTsgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLWFuc3dlci1vcHRpb25fX21hcmssXG4gICAgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fbWFyay1pY29uLFxuICAgIC5xZG5hcHJvLWFuc3dlci1vcHRpb24tLWNyb3NzLWNoZWNrIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBcIkp1aXN0XCIta2V1emUgKDEyLjA4LjIwMjYpIOKUgOKUgFxuLy8gVm9vciB0b2V0cy12cmFnZW4gd2FhciBwcmVjaWVzIMOpw6luIG9wdGllIGhldCBnb2VkZSBhbnR3b29yZCBpcyAoUHVsc2Vcbi8vIGtlbm5pc3ZyYWFnKS4gT3B0LWluIHZpYSBgY29ycmVjdGFibGVgOyB6b25kZXIgZGF0IGF0dHJpYnV1dCByZW5kZXJ0IGhldFxuLy8gY29tcG9uZW50IHByZWNpZXMgem9hbHMgaGllcnZvb3IsIGR1cyBkZSBmbG93LWVkaXRvciBtZXJrdCBlciBuaWV0cyB2YW4uXG4vL1xuLy8gU3RhYXQgYWFuIGhldCBFSU5EIHZhbiBkZSByaWosIG5hYXN0IGRlIGFjdGllcy4gVm9vcmFhbiBkdXdkZSBoaWogaGV0XG4vLyBhbnR3b29yZHZlbGQgNzJweCBuYWFyIHJlY2h0cyAoZ2VtZXRlbiksIHdhYXJkb29yIGRhdCB2ZWxkIG5pZXQgbWVlciB1aXRsaWpuZGVcbi8vIG1ldCB3YXQgZXJvbmRlciBzdGFhdCDigJQgaW4gUHVsc2UgaGV0IHVpdGxlZ3ZlbGQgcGVyIG9wdGllLiBBY2h0ZXJhYW4gYmVnaW50IGhldFxuLy8gYW50d29vcmR2ZWxkIG9wIGRlIGxpbmtlcnJhbmQgdmFuIGRlIHJpaiBlbiB2b3JtZW4gZGUgcmFkaW8ncyBub2cgc3RlZWRzIGh1blxuLy8gZWlnZW4gdWl0Z2VsaWpuZGUga29sb20uXG4ucWRuYXByby1hbnN3ZXItb3B0aW9uX19jb3JyZWN0IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDAgNHB4IDAgMTBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuLy8gRGUgZ2Vrb3plbiByaWogYmVub2VtdCB6aWNoemVsZiBtZXQgS0xFVVIsIG5pZXQgbWV0IGVlbiB6d2FhcmRlciBnZXdpY2h0LlxuLy9cbi8vIOKaoO+4jyBCZXd1c3QgZ2VlbiBgZm9udC13ZWlnaHRgOiB2ZXR0ZXIgaXMgQlJFREVSLCBlbiBvbWRhdCBkaXQgYmxvayByZWNodHMgaW4gZGVcbi8vIHJpaiBzdGFhdCBzY2h1aWZ0IGRlIHJhZGlvIGRhbiBlZW4gcGl4ZWwgb2YgbWVlciBuYWFyIGxpbmtzIHpvZHJhIGVlbiByaWpcbi8vIGdla296ZW4gd29yZHQuIEluIGVlbiBrb2xvbSB2YW4gcmFkaW8ncyBpcyBkYXQgZGlyZWN0IHppY2h0YmFhciBhbHMgXCJkZVxuLy8ga25vcHBlbiBzdGFhbiBuaWV0IHJlY2h0IG9uZGVyIGVsa2FhclwiIChnZW1ldGVuOiA1MTUgdGVnZW4gNTE2IHB4LCBlbiBvcCBlZW5cbi8vIHJldGluYS1zY2hlcm0gdmFsdCBoZXQgc3RlcmtlciBvcCkuIERlIGdldnVsZGUgcmFkaW8gcGx1cyBkZSBtZXJra2xldXIgemlqblxuLy8gb25kZXJzY2hlaWQgZ2Vub2VnLiBbS2ltIDEyLjA4LjIwMjZdXG4vL1xuLy8gQWxsZWVuIGRlIFRFS1NUIGtsZXVydCwgbmlldCBkZSByaWpyYW5kIOKAlCBkaWUgaXMgdm9vciBkZSBiZXN0YWFuZGUgc3RhbmRlblxuLy8gKHVubGlua2VkLCBjb25maXJtLCBkcmFnZ2luZykuXG4ucWRuYXByby1hbnN3ZXItb3B0aW9uLS1jb3JyZWN0IC5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2NvcnJlY3Qge1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzUzNGFiNyk7XG59XG4vLyBEZSBncmVlcCB6aXQgYWJzb2x1dXQgbGlua3M7IGhldCBsYWJlbCBob3VkdCBkYWFyb20gemlqbiBub3JtYWxlXG4vLyBsaW5rZXJ2dWxsaW5nIChkaWUgZGUgLS1kcmFnZ2FibGUtcmVnZWwgaGllcmJvdmVuIGFsIHpldCksIHpvZGF0IHRla3N0IGVuIGdyZWVwXG4vLyBuaWV0IG92ZXIgZWxrYWFyIHZhbGxlbi4gR2VlbiBlaWdlbiByZWdlbCBtZWVyIG5vZGlnIHNpbmRzIGRlIHJhZGlvIGFjaHRlcmFhblxuLy8gc3RhYXQuXG5cbi8vIEVkaXRhYmxlIGxhYmVsXG4ucWRuYXByby1hbnN3ZXItb3B0aW9uX19sYWJlbCB7XG4gICAgZmxleDogMTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogOXB4IDZweDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIG1pbi13aWR0aDogMDtcblxuICAgICY6Zm9jdXMsXG4gICAgJi5pcy1lZGl0aW5nIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDEuNXB4IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gICAgfVxuXG4gICAgJltyZWFkb25seV0geyBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNDAwKTsgY3Vyc29yOiBkZWZhdWx0OyB9XG59XG5cbi8vIFJlYWQtb25seSBib2R5IHRleHQgZm9yIHRoZSBzaW5nbGUtcGF0aCB2YXJpYW50IChvcGVuIGFuc3dlciAvIFwiVm9sZ2VuZGVcbi8vIHN0YXBcIik6IHNhbWUgc2xvdCArIHR5cG9ncmFwaHkgYXMgdGhlIGVkaXRhYmxlIGxhYmVsLCBidXQgYSBzdGF0aWMgc3Bhbi5cbi5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2xhYmVsLS1zdGF0aWMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAvLyBNdXRlZCB3aGVuIHNob3dpbmcgdGhlIGZhbGxiYWNrIChcIlZvbGdlbmRlIHN0YXBcIikgaW5zdGVhZCBvZiBhIHJlYWwgdGFyZ2V0LlxuICAgICYuaXMtZW1wdHkgeyBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKTsgZm9udC1zdHlsZTogaXRhbGljOyB9XG59XG5cbi8vIFNpbmdsZS1wYXRoIHZhcmlhbnQ6IG9uZSBmaXhlZCBsaW5rLCBubyBkcmFnLCBubyBsYWJlbCwgbm8gZGVsZXRlLlxuLnFkbmFwcm8tYW5zd2VyLW9wdGlvbi0tc2luZ2xlIHtcbiAgICAvLyBOb3RoaW5nIHN0cnVjdHVyYWwgdG8gY2hhbmdlIOKAlCB0aGUgcm93IHJldXNlcyB0aGUgY2FyZCBjaHJvbWUuIFRoaXMgaG9va1xuICAgIC8vIGV4aXN0cyBmb3IgY29uc3VtZXJzL292ZXJyaWRlcyBhbmQgdG8gZG9jdW1lbnQgdGhlIHZhcmlhbnQgaW4gdGhlIGNhc2NhZGUuXG59XG5cbi8vIE9wdGlvbiBpY29uIOKAlCBzaXRzIGJlZm9yZSB0aGUgYm9keSB0ZXh0LiBTaW5nbGUgdmFyaWFudDogdGhlIHRhcmdldFxuLy8gbm9kZS10eXBlIGljb24gKHBsYWluLCBubyBiYWRnZSBjaHJvbWUpLiBOb3JtYWwgcm93IChNZWVya2V1emUgcGVyLW9wdGlvblxuLy8gYXBwZWFyYW5jZSwgRmFzZSA1KTogYSBzbWFsbCB0aW50ZWQgYmFkZ2Ugc28gdGhlIHNlbWFudGljIGNvbG91ciByZWFkcyBldmVuXG4vLyB3aXRob3V0IG9wZW5pbmcgdGhlIGFwcGVhcmFuY2UgcG9wb3Zlci4gWzExLjA3LjIwMjZdXG4ucWRuYXByby1hbnN3ZXItb3B0aW9uX19ub2RlLWljb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBjb2xvcjogdmFyKC0tYW5zd2VyLW9wdGlvbi1hY2NlbnQtdGV4dCwgIzQwNDk5YSk7XG59XG5cbi8vIFNpbmdsZSB2YXJpYW50OiBwbGFpbiBpY29uLCBubyBiYWRnZSBiYWNrZ3JvdW5kICh1bmNoYW5nZWQgbG9vaykuXG4ucWRuYXByby1hbnN3ZXItb3B0aW9uLS1zaW5nbGUgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fbm9kZS1pY29uIHtcbiAgICBwYWRkaW5nOiAwIDJweCAwIDEwcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4vLyBOb3JtYWwgcm93OiBzbWFsbCByb3VuZGVkIGJhZGdlLCB0aW50ZWQgdmlhIHRoZSBhY2NlbnQgdG9rZW5zIGFib3ZlLlxuLnFkbmFwcm8tYW5zd2VyLW9wdGlvbjpub3QoLnFkbmFwcm8tYW5zd2VyLW9wdGlvbi0tc2luZ2xlKSAucWRuYXByby1hbnN3ZXItb3B0aW9uX19ub2RlLWljb24ge1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hbnN3ZXItb3B0aW9uLWFjY2VudC1iZywgI2U2ZTlmZik7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuLy8gRHJhZ2dhYmxlIHJvd3MgcmVzZXJ2ZSB0aGUgYWNjZW50IGJhcidzIHNwYWNlIChzYW1lIGNsZWFyYW5jZSB0aGUgbGFiZWxcbi8vIGFscmVhZHkgZ2V0cyB2aWEgJi0tZHJhZ2dhYmxlIGFib3ZlKSBzbyB0aGUgaWNvbiBiYWRnZSBkb2Vzbid0IHNpdCB1bmRlciBpdC5cbi5xZG5hcHJvLWFuc3dlci1vcHRpb24tLWRyYWdnYWJsZSAucWRuYXByby1hbnN3ZXItb3B0aW9uX19ub2RlLWljb24ge1xuICAgIG1hcmdpbi1sZWZ0OiAxNHB4O1xufVxuXG4vLyBDb25uZWN0aW9uIHBpbGxcbi5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2Nvbm4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAzcHg7XG4gICAgcGFkZGluZzogM3B4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cbiAgICBzdmcgeyB3aWR0aDogMTNweDsgaGVpZ2h0OiAxM3B4OyB9XG5cbiAgICAmLS1saW5rZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgLy8gTGlua2VkIHBpbGwgdGhhdCBoYXMgYSByZXNvbHZhYmxlIHRhcmdldCBxdWVzdGlvbjogc3VidGxlIGhvdmVyIGhpZ2hsaWdodC5cbiAgICAmLS1saW5rZWQucWRuYXByby1hbnN3ZXItb3B0aW9uX19jb25uLS1oYXMtdGlwIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcztcbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwKTsgfVxuICAgIH1cblxuICAgICYtLWVtcHR5IHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy13YXJuaW5nLWJyaWdodC1iZyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LXRleHQpO1xuICAgICAgICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tYy13YXJuaW5nLWJyaWdodC1ib3JkZXIpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXM7XG4gICAgICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAteWVsbG93LTItYmcpOyB9XG4gICAgfVxuXG4gICAgLy8gV2FybmluZyBzdGF0ZTogYW1iZXIgcGlsbCArIHBlcmlvZGljIHdpZ2dsZS4gRmxhZ3MgYSBjb25uZWN0aW9uIHRoYXQgbXVzdFxuICAgIC8vIGJlIGZpeGVkIChlLmcuIGFuIGV4dHJhIGJyYW5jaCBibG9ja2luZyB0aGUgTXVsdGktcmFkaW8g4oaSIE11bHRpLXNlbGVjdFxuICAgIC8vIHN3aXRjaCkuIENvbXBvdW5kIHNlbGVjdG9yIHNvIGl0IHdpbnMgb3ZlciAtLWxpbmtlZCAvIC0taGFzLXRpcC5cbiAgICAmLS1saW5rZWQucWRuYXByby1hbnN3ZXItb3B0aW9uX19jb25uLS13YXJuaW5nIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy13YXJuaW5nLWJyaWdodC1iZyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LXRleHQpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJvcmRlcik7XG4gICAgICAgIGFuaW1hdGlvbjogcWRuYXByby1hby1waWxsLXdpZ2dsZSAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuXG4gICAgICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAteWVsbG93LTItYmcpOyB9XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHFkbmFwcm8tYW8tcGlsbC13aWdnbGUge1xuICAgIC8vIE1vc3RseSBhdCByZXN0OyBhIGJyaWVmIHNoYWtlIG5lYXIgdGhlIGVuZCBvZiBlYWNoIGN5Y2xlIGRyYXdzIHRoZSBleWVcbiAgICAvLyB3aXRob3V0IGJlaW5nIGEgY29uc3RhbnQgbW90aW9uLlxuICAgIDAlLCA4NCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgcm90YXRlKDApOyB9XG4gICAgODclIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpIHJvdGF0ZSgtM2RlZyk7IH1cbiAgICA5MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KSAgcm90YXRlKDNkZWcpOyB9XG4gICAgOTMlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpIHJvdGF0ZSgtMmRlZyk7IH1cbiAgICA5NiUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KSAgcm90YXRlKDFkZWcpOyB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fY29ubi0td2FybmluZyB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuXG4vLyBIb3ZlciBhY3Rpb24gYnV0dG9ucyAoc2xpZGUtaW4gZnJvbSByaWdodClcbi5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDJweDtcbiAgICBwYWRkaW5nOiAwIDVweCAwIDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zO1xufVxuXG4ucWRuYXByby1hbnN3ZXItb3B0aW9uX19hY3Qge1xuICAgIHdpZHRoOiAyNnB4O1xuICAgIGhlaWdodDogMjZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcywgYm9yZGVyLWNvbG9yIDEyMG1zLCBjb2xvciAxMjBtcztcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgIHN2ZyB7IHdpZHRoOiAxNXB4OyBoZWlnaHQ6IDE1cHg7IH1cblxuICAgICYtLXVubGluayB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LXRleHQpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJnKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJvcmRlcik7XG4gICAgICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAteWVsbG93LTItYmcpOyBib3JkZXItY29sb3I6IHZhcigtLWMtd2Fybi15ZWxsb3ctNTAwKTsgfVxuICAgIH1cblxuICAgICYtLWRlbGV0ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRhZy1jcml0aWNhbC10ZXh0KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWNoaXAtcmVkLTItYmcpO1xuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXJlZC1ob3Zlcik7IGJvcmRlci1jb2xvcjogdmFyKC0tYy10YWctY3JpdGljYWwtdGV4dCk7IH1cbiAgICB9XG59XG5cbi8vIElubGluZSBjb25maXJtIGJhciAoZGVsZXRlIC8gdW5saW5rKVxuLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fY29uZmlybSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGZsZXg6IDE7XG4gICAgcGFkZGluZzogNnB4IDEwcHg7XG59XG5cbi5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2NvbmZpcm0taWNvbiB7XG4gICAgY29sb3I6IHZhcigtLWMtdGFnLWNyaXRpY2FsLXRleHQpO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBzdmcgeyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyB9XG59XG5cbi5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2NvbmZpcm0tdGV4dCB7XG4gICAgZmxleDogMTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10YWctY3JpdGljYWwtdGV4dCk7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG5cbi8vIFVubGluayBjb25maXJtIGJhciA9IGFtYmVyLCBub3QgcmVkIChnZW50bGUgYWN0aW9uKS5cbi5xZG5hcHJvLWFuc3dlci1vcHRpb24tLWNvbmZpcm1pbmctdW5saW5rIC5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2NvbmZpcm0taWNvbixcbi5xZG5hcHJvLWFuc3dlci1vcHRpb24tLWNvbmZpcm1pbmctdW5saW5rIC5xZG5hcHJvLWFuc3dlci1vcHRpb25fX2NvbmZpcm0tdGV4dCB7XG4gICAgY29sb3I6IHZhcigtLWMtd2FybmluZy1icmlnaHQtdGV4dCk7XG59XG5cbi8vIENvbmZpcm0tYmFyIGJ1dHRvbnMgYXJlIHFkbmFwcm8tYnV0dG9uIHNpemU9XCJtaWNyb1wiIChzZWNvbmRhcnkgKyB3YXJuaW5nLXJlZCk7XG4vLyBubyBiZXNwb2tlIGJ1dHRvbiBzdHlsaW5nIGxpdmVzIGhlcmUgYW55bW9yZS5cbiIsIi8vIHFkbmFwcm8tYW5zd2VyLWJ1dHRvbiDigJQgc3VydmV5L2F1ZGl0IGFuc3dlciBidXR0b24gZm9yIHRoZSBQV0EgKG11bHRpIHJhZGlvIC8gbWVlcmtldXplKS5cbi8vIElkbGUvaG92ZXIvcHJlc3NlZCBzdXJmYWNlIHRha2VuIGZyb20gdGhlIHFkbmFwcm8tYnV0dG9uIFwic2Vjb25kYXJ5LXB1cnBsZVwiIHZhcmlhbnQ7IHRoZVxuLy8gc2VsZWN0ZWQgKGFjdGl2ZSkgc3RhdGUgaXMgYSBTT0ZUIHNlbGVjdGlvbiAoc3VidGxlIGZpbGwgKyBwZXJpd2lua2xlIHJpbmcgKyBmaWxsZWRcbi8vIGNoZWNrYm94KSwgbm90IGEgZnVsbCBmbG9vZC4gU3VyZmFjZSBjb2xvdXJzIHJvdXRlIHRocm91Z2ggdGhlIHRoZW1lLWVkaXRvciB2YXJzXG4vLyAoLS10aGVtZS1idG4tKikgd2l0aCB0aGUgc2Vjb25kYXJ5LXB1cnBsZSB2YWx1ZXMgYXMgZmFsbGJhY2tzLCBzbyB0aGUgcWRuYSB0aGVtZSBlZGl0b3Jcbi8vIGNhbiByZWNvbG91ciB0aGVtLiBMZWFkaW5nIGNoZWNrYm94IGluZGljYXRvcjsgdGljayBwb3BzIGluIG9uIHNlbGVjdC5cbi8vXG4vLyAtLXRoZW1lLWJ0bi1pZGxlLWNvbG9yICgwNS4wOC4yMDI2KSBzZXRzIHRoZSBVTlNFTEVDVEVEIGZpbGwgZGlyZWN0bHkgYW5kXG4vLyAtLXRoZW1lLWJ0bi1pZGxlLXRleHQtY29sb3IgKDA2LjA4LjIwMjYpIGl0cyBsYWJlbDsgdW5zZXQga2VlcHMgdGhlIGRlcml2ZWQgMTIlIHRpbnQgYW5kXG4vLyB0aGUgdGhlbWUgY29sb3VyIGFzIGxhYmVsLCBzbyBleGlzdGluZyB0aGVtZXMgbG9vayBpZGVudGljYWwuIEhvdmVyL3ByZXNzZWQgZGFya2VuIHRoZVxuLy8gcmVzb2x2ZWQgaWRsZSBzdXJmYWNlICgtLXFhYi1pZGxlKSBpbnN0ZWFkIG9mIHJlLWRlcml2aW5nIHRoZWlyIG93biB0aW50LlxuLy8gRkxBVCBDU1M7IHRva2VucyBmcm9tIHRoZSBkZXNpZ24tdG9rZW4gOnJvb3QuXG5cbi5xZG5hcHJvLWFuc3dlci1idXR0b24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiA1NnB4O1xuICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gIGJvcmRlcjogMS41cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMywgMTJweCk7XG4gIC8vIElkbGUgc3VyZmFjZS4gQW4gZXhwbGljaXQgLS10aGVtZS1idG4taWRsZS1jb2xvciAodGhlbWUgZWRpdG9yLCBcIktub3AgKG5pZXQgZ2Vrb3plbilcIilcbiAgLy8gd2luczsgdW5zZXQgZmFsbHMgYmFjayB0byB0aGUgb3JpZ2luYWwgZGVyaXZlZCB0aW50OiAxMiUgb2YgdGhlIHRoZW1lIGNvbG91ciBtaXhlZCBpbnRvXG4gIC8vIHdoaXRlIOKGkiBsaWdodCBwZXJpd2lua2xlIG9uIHRoZSBkZWZhdWx0IHRoZW1lLCBsaWdodCBtaW50L3BlYWNoL2V0Yy4gb24gY3VzdG9tIHRoZW1lcy5cbiAgLy8gTmV2ZXIgYSBmdWxsLWZpbGw7IHRoZSBmaWxsZWQgdmFyaWFudCBpcyB0aGUgY29udGludWUgYnV0dG9uLlxuICAvL1xuICAvLyBLZXB0IGluIGl0cyBvd24gY3VzdG9tIHByb3BlcnR5IHNvIGhvdmVyL3ByZXNzZWQgY2FuIGRhcmtlbiBXSEFURVZFUiB0aGUgaWRsZSBzdXJmYWNlXG4gIC8vIHJlc29sdmVkIHRvLiBCZWZvcmUgMDUuMDguMjAyNiB0aG9zZSB0d28gc3RhdGVzIHJlLWRlcml2ZWQgdGhlaXIgb3duIDIwJS8yOCUgdGludCBmcm9tXG4gIC8vIC0tdGhlbWUtYnRuLWNvbG9yLCB3aGljaCBzaWxlbnRseSBpZ25vcmVkIGFuIGV4cGxpY2l0IGlkbGUgY29sb3VyLlxuICAtLXFhYi1pZGxlOiB2YXIoLS10aGVtZS1idG4taWRsZS1jb2xvciwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRoZW1lLWJ0bi1jb2xvciwgIzQwNDk5YSkgMTIlLCAjZmZmKSk7XG4gIC0tcWFiLWhvdmVyOiB2YXIoLS10aGVtZS1idG4taWRsZS1ob3Zlci1jb2xvciwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXFhYi1pZGxlKSA5MiUsICMwMDApKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcWFiLWlkbGUpO1xuICAvLyBMYWJlbCArIGluZGljYXRvciBvbiB0aGUgVU5TRUxFQ1RFRCByb3cuIC0tdGhlbWUtYnRuLWlkbGUtdGV4dC1jb2xvciAodGhlbWUgZWRpdG9yLFxuICAvLyBcIktub3B0ZWtzdCAobmlldCBnZWtvemVuKVwiKSB3aW5zOyB1bnNldCBrZWVwcyB0aGUgb3JpZ2luYWwgYmVoYXZpb3VyIG9mIHVzaW5nIHRoZSB0aGVtZVxuICAvLyBjb2xvdXIgaXRzZWxmLCB3aGljaCByZWFkcyBmaW5lIG9uIHRoZSBsaWdodCBkZXJpdmVkIHRpbnQgYnV0IG5vdCBuZWNlc3NhcmlseSBvbiBhIGZpbGxcbiAgLy8gdGhlIGFkbWluIGNob3NlIGJ5IGhhbmQuIFRoZSBjaGVja2JveC9yYWRpbyBpbmRpY2F0b3IgZm9sbG93cyBhdXRvbWF0aWNhbGx5OiBpdHMgYm9yZGVyXG4gIC8vIGlzIGAycHggc29saWQgY3VycmVudENvbG9yYC4gW0tpbSAwNi4wOC4yMDI2XVxuICBjb2xvcjogdmFyKC0tdGhlbWUtYnRuLWlkbGUtdGV4dC1jb2xvciwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE2cyBlYXNlLCBib3JkZXItY29sb3IgMC4xNnMgZWFzZSwgY29sb3IgMC4xNnMgZWFzZSxcbiAgICAgICAgICAgICAgYm94LXNoYWRvdyAwLjE2cyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyBlYXNlO1xufVxuXG4vLyBIb3ZlciBzbG90ICgwNi4wOC4yMDI2KTogZXhwbGljaXQgLS10aGVtZS1idG4taWRsZS1ob3Zlci1jb2xvciB3aW5zLCBlbHNlIGRhcmtlbiB0aGVcbi8vIHJlc29sdmVkIGlkbGUgc3VyZmFjZS4gUHJlc3NlZCBkZXJpdmVzIGZyb20gdGhlIFJFU09MVkVEIGhvdmVyIHNvIGlkbGUgLT4gaG92ZXIgLT4gcHJlc3NlZFxuLy8gc3RheXMgb3JkZXJlZDsgd2l0aCBub3RoaW5nIHNldCB0aGlzIHJlcHJvZHVjZXMgdGhlIG9sZCA5MiUgLyA4NSUgcGFpciBleGFjdGx5LlxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbjpob3Zlcjpub3QoLmlzLWRpc2FibGVkKTpub3QoLmlzLWFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1xYWItaG92ZXIpO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi5pcy1wcmVzc2VkOm5vdCguaXMtZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXFhYi1ob3ZlcikgOTIlLCAjMDAwKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTtcbn1cblxuLy8gRm9yY2Utc3RhdGUgaG9vayDigJQgc2VlIHRoZSBtYXRjaGluZyBibG9jayBpbiBfYnV0dG9uLnNjc3MgZm9yIHdoeSB0aGlzIGlzIGEgZGF0YS1hdHRyaWJ1dGVcbi8vIGFuZCBub3QgYSBjbGFzcy4gTGV0cyB0aGUgdGhlbWUgZWRpdG9yJ3MgcGhvbmUgcHJldmlldyBzaG93IGhvdmVyL3ByZXNzZWQgb24gZGVtYW5kLlxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbltkYXRhLWZvcmNlLXN0YXRlPVwiaG92ZXJcIl06bm90KC5pcy1kaXNhYmxlZCk6bm90KC5pcy1hY3RpdmUpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tcWFiLWhvdmVyKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b25bZGF0YS1mb3JjZS1zdGF0ZT1cInByZXNzZWRcIl06bm90KC5pcy1kaXNhYmxlZCk6bm90KC5pcy1hY3RpdmUpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXFhYi1ob3ZlcikgOTIlLCAjMDAwKTtcbn1cblxuLy8gU2VsZWN0ZWQg4oCUIGV4cGxpY2l0IC0tdGhlbWUtYnRuLXNlbGVjdGVkLWNvbG9yIHdpbnMgKGUuZy4gdGhlIGRlcml2ZWQgIzc5ODBCOCB0aGVcbi8vIHRoZW1lIGVuZ2luZSBzZXRzIGZyb20gYSBkYXJrIHByaW1hcnkgY29sb3VyKS4gRmFsbGJhY2sgPSBhIDIyJSBzb2Z0IHRpbnQgKHNsaWdodGx5XG4vLyBkZWVwZXIgdGhhbiBpZGxlIDEyJSkgc28gdGhlIHNlbGVjdGVkIHN0YXRlIGlzIGFsd2F5cyB2aXNpYmx5IGRpc3RpbmN0IG9uIGFueSB0aGVtZS5cbi5xZG5hcHJvLWFuc3dlci1idXR0b24uaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYnRuLXNlbGVjdGVkLWNvbG9yLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSAyMiUsICNmZmYpKTtcbiAgY29sb3I6IHZhcigtLXRoZW1lLWJ0bi1zZWxlY3RlZC10ZXh0LWNvbG9yLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpKTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi5pcy1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLyBDaGVja2JveCBpbmRpY2F0b3Jcbi5xZG5hcHJvLWFuc3dlci1idXR0b25fX3RpY2sge1xuICBmbGV4OiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIG9wYWNpdHk6IDAuNTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE4cyBlYXNlLCBib3JkZXItY29sb3IgMC4xOHMgZWFzZSwgb3BhY2l0eSAwLjE4cyBlYXNlLFxuICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMC4zNCwgMS42LCAwLjUsIDEpO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbl9fdGljayBzdmcgeyBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vLyBTdHJva2VkIGNoZWNrbWFyayDigJQgZHJhdy1pbiB2aWEgc3Ryb2tlLWRhc2hvZmZzZXRcbi5xZG5hcHJvLWFuc3dlci1idXR0b25fX2NoZWNrIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlOiBjdXJyZW50Q29sb3I7XG4gIHN0cm9rZS13aWR0aDogMi41O1xuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gIHN0cm9rZS1saW5lam9pbjogcm91bmQ7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDI0O1xuICBzdHJva2UtZGFzaG9mZnNldDogMjQ7XG4gIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuMTVzIGVhc2U7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLmlzLWFjdGl2ZSAucWRuYXByby1hbnN3ZXItYnV0dG9uX190aWNrIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpO1xuICBjb2xvcjogdmFyKC0tdGhlbWUtYnRuLXRleHQtY29sb3IsICNmZmYpO1xuICBhbmltYXRpb246IHFhYi10aWNrLXBvcCAwLjUycyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC41LCAxKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24uaXMtYWN0aXZlIC5xZG5hcHJvLWFuc3dlci1idXR0b25fX2NoZWNrIHtcbiAgYW5pbWF0aW9uOiBxYWItZHJhdyAwLjM4cyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSkgMC4wNHMgZm9yd2FyZHM7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLmlzLWRpc2FibGVkIC5xZG5hcHJvLWFuc3dlci1idXR0b25fX3RpY2sgeyBib3JkZXItY29sb3I6IHZhcigtLWMtZ3JleS0zMDAsICNjNGM3Y2MpOyBvcGFjaXR5OiAxOyB9XG5cbi8vIG92ZXJmbG93LXdyYXA6IGVlbiBhbnR3b29yZG9wdGllIGlzIGtsYW50ZW50ZWtzdCBlbiBrYW4gw6nDqW4gbGFuZyB3b29yZCB6aWpuIGRhdFxuLy8gYnJlZGVyIGlzIGRhbiBkZSBrbm9wIChcIk1hbnRlbHpvcmdlci9uYWFzdGUvdmVydGVnZW53b29yZGlnZXJcIik6IGVlbiBzY2h1aW5lIHN0cmVlcFxuLy8gaXMgR0VFTiBhZmJyZWVrcHVudCBpbiBDaHJvbWUvV2ViS2l0LiBab25kZXIgZGV6ZSByZWdlbCBsb29wdCBkZSB0ZWtzdCBkd2FycyBkb29yIGRlXG4vLyByYW5kIGhlZW4sIHRvdCBidWl0ZW4gaGV0IHNjaGVybS4gYGFueXdoZXJlYCBicmVla3QgYWxsZWVuIGFscyBoZXQgd29vcmQgYWxsZWVuIG9va1xuLy8gbmlldCBwYXN0LCBkdXMgYmVzdGFhbmRlLCBrb3J0ZXJlIGxhYmVscyB6aWVuIGVyIG9udmVyYW5kZXJkIHVpdC4gWzE4LjA5LjIwMjZdXG4ucWRuYXByby1hbnN3ZXItYnV0dG9uX19sYWJlbCB7IGZsZXg6IDE7IG1pbi13aWR0aDogMDsgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7IH1cblxuLy8gVmFyaWFudDogcm91bmQgaW5kaWNhdG9yIChtdWx0aXBsZS1jaG9pY2UgLyByYWRpbyBzdHlsZSlcbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLW11bHRpcGxlLWNob2ljZSAucWRuYXByby1hbnN3ZXItYnV0dG9uX190aWNrIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4vLyBJY29uIHNsb3Qg4oCUIGFjdGl2aXR5IGljb24gKHR3by10b25lLCBmaXhlZCBjb2xvdXJzKSBvciBNREkgaWNvbiAoY3VycmVudENvbG9yKVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbl9faWNvbiB7XG4gIGZsZXg6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b25fX2ljb24gc3ZnLFxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbl9faWNvbiBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi8vIE1ESSBpY29uczogc2V0IGZpbGwgdG8gY3VycmVudENvbG9yIHNvIHRoZXkgaW5oZXJpdCB0aGUgYnV0dG9uIHRleHQgY29sb3VyIChwdXJwbGUvdGhlbWVkKS5cbi8vIE1ESSBTVkdzIGhhdmUgbm8gZXhwbGljaXQgZmlsbCBhdHRyaWJ1dGUgKFNWRyBkZWZhdWx0ID0gYmxhY2spLCBzbyBDU1MgbXVzdCBzZXQgaXQuXG4vLyBBY3Rpdml0eSBpY29ucyBoYXZlIGJha2VkLWluIGNvbG91cnMgaW5zaWRlIGFuIDxpbWc+IOKAlCBubyBDU1Mgb3ZlcnJpZGUgbmVlZGVkIHRoZXJlLlxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi5oYXMtaWNvbi1tZGkgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbl9faWNvbiB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLmhhcy1pY29uLW1kaSAucWRuYXByby1hbnN3ZXItYnV0dG9uX19pY29uIHN2ZyB7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cblxuQGtleWZyYW1lcyBxYWItdGljay1wb3Age1xuICAwJSAgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjcpICAgIHJvdGF0ZSgwZGVnKTsgIH1cbiAgMjAlICB7IHRyYW5zZm9ybTogc2NhbGUoMS4yMikgICByb3RhdGUoLTVkZWcpOyB9XG4gIDQ0JSAgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTApICAgcm90YXRlKDNkZWcpOyAgfVxuICA2NCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA4KSAgIHJvdGF0ZSgtMWRlZyk7IH1cbiAgODAlICB7IHRyYW5zZm9ybTogc2NhbGUoMC45NykgICByb3RhdGUoMGRlZyk7ICB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpICAgICAgcm90YXRlKDBkZWcpOyAgfVxufVxuXG5Aa2V5ZnJhbWVzIHFhYi1kcmF3IHtcbiAgMCUgICB7IHN0cm9rZS1kYXNob2Zmc2V0OiAyNDsgICB9XG4gIDYyJSAgeyBzdHJva2UtZGFzaG9mZnNldDogLTE7ICAgfVxuICA4MCUgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDAuNzsgIH1cbiAgMTAwJSB7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyAgICB9XG59XG5cbi8vIFNpemUgdmFyaWFudDogY29tcGFjdCAoNDhweCkg4oCUIGFsbCBpbnRlcm5hbHMgc2NhbGUgcHJvcG9ydGlvbmFsbHkuXG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1jb21wYWN0IHtcbiAgbWluLWhlaWdodDogNDhweDtcbiAgcGFkZGluZzogMTBweCAxNHB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGdhcDogMTBweDtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLWNvbXBhY3QgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbl9fdGljayB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLWNvbXBhY3QucWRuYXByby1hbnN3ZXItYnV0dG9uLS1tdWx0aXBsZS1jaG9pY2UgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbl9fdGljayB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLWNvbXBhY3QgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbl9fdGljayBzdmcge1xuICB3aWR0aDogMTNweDtcbiAgaGVpZ2h0OiAxM3B4O1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tY29tcGFjdC5oYXMtaWNvbi1hY3Rpdml0eSAucWRuYXByby1hbnN3ZXItYnV0dG9uX19pY29uIHtcbiAgd2lkdGg6IDI2cHg7XG4gIGhlaWdodDogMjZweDtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLWNvbXBhY3QuaGFzLWljb24tbWRpIC5xZG5hcHJvLWFuc3dlci1idXR0b25fX2ljb24ge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4vLyBEYXJrIG1vZGUg4oCUIHNhbWUgc29mdC10aW50IGxvZ2ljIGJ1dCBtaXhlZCBpbnRvIGEgZGFyayBiYXNlIGluc3RlYWQgb2Ygd2hpdGUuXG4vLyBPUkRFUiArIFNQRUNJRklDSVRZIENPTlRSQUNUOiB0aGlzIGJsb2NrIHNpdHMgQkVGT1JFIHRoZSAtLWdyZWVuLy0tcmVkIGNvbG91clxuLy8gdmFyaWFudHMgYW5kIHdyYXBzIHRoZSB0aGVtZSBhdHRyaWJ1dGUgaW4gOndoZXJlKCkgKHNwZWNpZmljaXR5IDApLCBzbyBhblxuLy8gZXhwbGljaXRseSBjaG9zZW4gYW5zd2VyIGNvbG91ciBhbHdheXMgd2lucyBvdmVyIHRoZSBmbG93IHRoZW1lIOKAlCBhbHNvIGluIGRhcmtcbi8vIG1vZGUuIEtlZXAgaXQgdGhhdCB3YXk6IG1vdmluZyB0aGlzIGJsb2NrIGJlbG93IHRoZSBjb2xvdXIgdmFyaWFudHMsIG9yIGRyb3BwaW5nXG4vLyB0aGUgOndoZXJlKCksIHNpbGVudGx5IHJldmVydHMgZ3JlZW4vcmVkIGJhY2sgdG8gdGhlIHRoZW1lIGNvbG91ciBpbiBkYXJrIG1vZGUuXG46d2hlcmUoW2RhdGEtdGhlbWU9XCJkYXJrXCJdLCBbZGF0YS10aGVtZS1kYXJrPVwidHJ1ZVwiXSkgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpIDIwJSwgdmFyKC0tYy1ncmV5LTkwMCwgIzE4MTgxYykpO1xuICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRoZW1lLWJ0bi1jb2xvciwgIzQwNDk5YSkgNzAlLCAjZmZmKTtcbn1cbjp3aGVyZShbZGF0YS10aGVtZT1cImRhcmtcIl0sIFtkYXRhLXRoZW1lLWRhcms9XCJ0cnVlXCJdKSAucWRuYXByby1hbnN3ZXItYnV0dG9uOmhvdmVyOm5vdCguaXMtZGlzYWJsZWQpOm5vdCguaXMtYWN0aXZlKSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpIDMwJSwgdmFyKC0tYy1ncmV5LTkwMCwgIzE4MTgxYykpO1xufVxuOndoZXJlKFtkYXRhLXRoZW1lPVwiZGFya1wiXSwgW2RhdGEtdGhlbWUtZGFyaz1cInRydWVcIl0pIC5xZG5hcHJvLWFuc3dlci1idXR0b24uaXMtcHJlc3NlZDpub3QoLmlzLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpIDQwJSwgdmFyKC0tYy1ncmV5LTkwMCwgIzE4MTgxYykpO1xufVxuOndoZXJlKFtkYXRhLXRoZW1lPVwiZGFya1wiXSwgW2RhdGEtdGhlbWUtZGFyaz1cInRydWVcIl0pIC5xZG5hcHJvLWFuc3dlci1idXR0b24uaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYnRuLXNlbGVjdGVkLWNvbG9yLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSAzNSUsIHZhcigtLWMtZ3JleS05MDAsICMxODE4MWMpKSk7XG4gIGNvbG9yOiB2YXIoLS10aGVtZS1idG4tc2VsZWN0ZWQtdGV4dC1jb2xvciwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRoZW1lLWJ0bi1jb2xvciwgIzQwNDk5YSkgNzAlLCAjZmZmKSk7XG59XG46d2hlcmUoW2RhdGEtdGhlbWU9XCJkYXJrXCJdLCBbZGF0YS10aGVtZS1kYXJrPVwidHJ1ZVwiXSkgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi5pcy1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS05MDAsICMxODE4MWMpO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG59XG5cbi8vIENvbG9yIHZhcmlhbnRzOiBncmVlbiAoSmEpIC8gcmVkIChOZWUpIOKAlCB1c2UgUUROQSBzaWduYWwgcGFsZXR0ZS5cbi8vIE92ZXJyaWRlcyB0aGUgcHVycGxlLWRlZmF1bHRzIGZvciBzdXJmYWNlLCB0ZXh0LCBhbmQgdGljayBmaWxsLlxuLy8gVGhlc2Ugc3RheSBMQVNUIHNvIGFuIGV4cGxpY2l0IGNvbG91ciBjaG9pY2UgYmVhdHMgZXZlcnkgdGhlbWUgcnVsZSwgaW5jbC4gZGFyayBtb2RlLlxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tZ3JlZW4ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi1iZywgI2M1ZjVlMik7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLWdyZWVuOmhvdmVyOm5vdCguaXMtZGlzYWJsZWQpOm5vdCguaXMtYWN0aXZlKSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jLXNpZ25hbC1ncmVlbi1iZywgI2M1ZjVlMikgODUlLCAjMDAwKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLWdyZWVuLmlzLXByZXNzZWQ6bm90KC5pcy1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcsICNjNWY1ZTIpIDc1JSwgIzAwMCk7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1ncmVlbi5pcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcsICNjNWY1ZTIpIDgwJSwgIzAwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLWdyZWVuLmlzLWFjdGl2ZSAucWRuYXByby1hbnN3ZXItYnV0dG9uX190aWNrIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdWNjZXNzLWJyaWdodCwgIzFkOWU3NSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zdWNjZXNzLWJyaWdodCwgIzFkOWU3NSk7XG59XG5cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLXJlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXJlZC1iZywgI2ZlZTNlMyk7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1yZWQ6aG92ZXI6bm90KC5pcy1kaXNhYmxlZCk6bm90KC5pcy1hY3RpdmUpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtc2lnbmFsLXJlZC1iZywgI2ZlZTNlMykgODUlLCAjMDAwKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLXJlZC5pcy1wcmVzc2VkOm5vdCguaXMtZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtc2lnbmFsLXJlZC1iZywgI2ZlZTNlMykgNzUlLCAjMDAwKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLXJlZC5pcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy1zaWduYWwtcmVkLWJnLCAjZmVlM2UzKSA4MCUsICMwMDApO1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tcmVkLmlzLWFjdGl2ZSAucWRuYXByby1hbnN3ZXItYnV0dG9uX190aWNrIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy13YXJuLXJlZC01MDAsICNkYzI2MjYpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtd2Fybi1yZWQtNTAwLCAjZGMyNjI2KTtcbn1cblxuLy8gU2VtYW50aWMgb3B0aW9uIGNvbG91cnMgKE1lZXJrZXV6ZSBmYXNlIDUsIGJlc2x1aXQgMTIpOiBwb3NpdGl2ZSAvIHdhcm5pbmcgL1xuLy8gbmVnYXRpdmUgLyBuZXV0cmFsX2FsdC4gVGhlIGZsb3cgcGx1Z2lucyBwdXQgb3B0aW9uX2NvbG9yIGZyb20gdGhlIGxpbmsgcm93XG4vLyBvbiB0aGUgY29sb3IgYXR0cmlidXRlOyB0aGUgY29tcG9uZW50IG1hcHMgaXQgdG8gdGhlc2UgY2xhc3Nlcy4gRXhhY3Qgc2FtZVxuLy8gcmVjaXBlIGFzIGdyZWVuL3JlZCBhYm92ZSAoc29mdCBzaWduYWwtYmcgc3VyZmFjZSwgZGFya2VyIG9uIGhvdmVyL2FjdGl2ZSxcbi8vIGNvbG91cmVkIHRpY2sgZmlsbCkgYW5kIHRoZSBzYW1lIGNsb3NlZCBwYWxldHRlICsgdG9rZW5zIGFzIHRoZVxuLy8gcWRuYXByby1hbnN3ZXItb3B0aW9uIGVkaXRvciByb3csIHNvIHRoZSBjb2xvdXIgcmVhZHMgY29uc2lzdGVudGx5XG4vLyBlbmQtdG8tZW5kLiBOZXZlciBjb2xvdXItb25seTogdGhlIHRpY2sgc2hhcGUgc3RheXMgdGhlIHNlbGVjdGlvbiBjdWUuXG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1wb3NpdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLWdyZWVuLWJnLCAjYzVmNWUyKTtcbiAgY29sb3I6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQsICM0MjhiNmUpO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tcG9zaXRpdmU6aG92ZXI6bm90KC5pcy1kaXNhYmxlZCk6bm90KC5pcy1hY3RpdmUpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtc2lnbmFsLWdyZWVuLWJnLCAjYzVmNWUyKSA4NSUsICMwMDApO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tcG9zaXRpdmUuaXMtcHJlc3NlZDpub3QoLmlzLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jLXNpZ25hbC1ncmVlbi1iZywgI2M1ZjVlMikgNzUlLCAjMDAwKTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLXBvc2l0aXZlLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jLXNpZ25hbC1ncmVlbi1iZywgI2M1ZjVlMikgODAlLCAjMDAwKTtcbiAgY29sb3I6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQsICM0MjhiNmUpO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tcG9zaXRpdmUuaXMtYWN0aXZlIC5xZG5hcHJvLWFuc3dlci1idXR0b25fX3RpY2sge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1Y2Nlc3MtYnJpZ2h0LCAjMWQ5ZTc1KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXN1Y2Nlc3MtYnJpZ2h0LCAjMWQ5ZTc1KTtcbn1cblxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0td2FybmluZyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXllbGxvdy1iZywgI2ZlZWRiOCk7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctdGV4dCwgI2JmNzIwMik7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS13YXJuaW5nOmhvdmVyOm5vdCguaXMtZGlzYWJsZWQpOm5vdCguaXMtYWN0aXZlKSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctYmcsICNmZWVkYjgpIDg1JSwgIzAwMCk7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS13YXJuaW5nLmlzLXByZXNzZWQ6bm90KC5pcy1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy1zaWduYWwteWVsbG93LWJnLCAjZmVlZGI4KSA3NSUsICMwMDApO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0td2FybmluZy5pcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy1zaWduYWwteWVsbG93LWJnLCAjZmVlZGI4KSA4MCUsICMwMDApO1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwteWVsbG93LXRleHQsICNiZjcyMDIpO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0td2FybmluZy5pcy1hY3RpdmUgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbl9fdGljayB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtd2Fybi1hbWJlci01MDAsICNkOTc3MDYpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtd2Fybi1hbWJlci01MDAsICNkOTc3MDYpO1xufVxuXG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1uZWdhdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXJlZC1iZywgI2ZlZTNlMyk7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1uZWdhdGl2ZTpob3Zlcjpub3QoLmlzLWRpc2FibGVkKTpub3QoLmlzLWFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy1zaWduYWwtcmVkLWJnLCAjZmVlM2UzKSA4NSUsICMwMDApO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tbmVnYXRpdmUuaXMtcHJlc3NlZDpub3QoLmlzLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZWUzZTMpIDc1JSwgIzAwMCk7XG59XG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1uZWdhdGl2ZS5pcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy1zaWduYWwtcmVkLWJnLCAjZmVlM2UzKSA4MCUsICMwMDApO1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tbmVnYXRpdmUuaXMtYWN0aXZlIC5xZG5hcHJvLWFuc3dlci1idXR0b25fX3RpY2sge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm4tcmVkLTUwMCwgI2RjMjYyNik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy13YXJuLXJlZC01MDAsICNkYzI2MjYpO1xufVxuXG4ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1uZXV0cmFsX2FsdCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLWJsdWUtYmcsICNlNmVmZjkpO1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtYmx1ZS10ZXh0LCAjNmE4YWI0KTtcbn1cbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLW5ldXRyYWxfYWx0OmhvdmVyOm5vdCguaXMtZGlzYWJsZWQpOm5vdCguaXMtYWN0aXZlKSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnLCAjZTZlZmY5KSA4NSUsICMwMDApO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tbmV1dHJhbF9hbHQuaXMtcHJlc3NlZDpub3QoLmlzLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnLCAjZTZlZmY5KSA3NSUsICMwMDApO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tbmV1dHJhbF9hbHQuaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtc2lnbmFsLWJsdWUtYmcsICNlNmVmZjkpIDgwJSwgIzAwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1ibHVlLXRleHQsICM2YThhYjQpO1xufVxuLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tbmV1dHJhbF9hbHQuaXMtYWN0aXZlIC5xZG5hcHJvLWFuc3dlci1idXR0b25fX3RpY2sge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ibHVlLXRleHQsICM2YThhYjQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtc2lnbmFsLWJsdWUtdGV4dCwgIzZhOGFiNCk7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9hdmF0YXIvX2F2YXRhci1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby1hdmF0YXIge1xuICAtLWF2LWJnOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi1iZyk7XG4gIC0tYXYtYm9yZGVyOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0KTtcbiAgLS1hdi1zaXplOiA0OHB4O1xuICAtLWF2LXBhZGRpbmc6IDhweDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogdmFyKC0tYXYtc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tYXYtc2l6ZSk7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBwYWRkaW5nOiB2YXIoLS1hdi1wYWRkaW5nKTtcbiAgYm9yZGVyOiAwLjVweCBzb2xpZCB2YXIoLS1hdi1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWF2LWJnKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1hdmF0YXIgLmF2YXRhci1hbmltYWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItc2l6ZS03MiB7XG4gIC0tYXYtc2l6ZTogNzJweDtcbiAgLS1hdi1wYWRkaW5nOiAxMnB4O1xufVxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1zaXplLTQ4IHtcbiAgLS1hdi1zaXplOiA0OHB4O1xuICAtLWF2LXBhZGRpbmc6IDhweDtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItc2l6ZS0zNCB7XG4gIC0tYXYtc2l6ZTogMzRweDtcbiAgLS1hdi1wYWRkaW5nOiA2cHg7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLXNpemUtMjgge1xuICAvLyBJbnRlcnBvbGF0ZWQgYmV0d2VlbiBzaXplLTIwICg0cHgpIGFuZCBzaXplLTM0ICg2cHgpOiA0ICsgKDI4LTIwKS8oMzQtMjApICogKDYtNCkgPSA1LjE0cHgsIHJvdW5kZWQgdG8gNXB4LlxuICAtLWF2LXNpemU6IDI4cHg7XG4gIC0tYXYtcGFkZGluZzogNXB4O1xufVxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1zaXplLTIwIHtcbiAgLS1hdi1zaXplOiAyMHB4O1xuICAtLWF2LXBhZGRpbmc6IDRweDtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItY29sb3ItZ3JlZW4ge1xuICAtLWF2LWJnOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi1iZyk7XG4gIC0tYXYtYm9yZGVyOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0KTtcbiAgLS1hdi1pY29uOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0KTtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItY29sb3IteWVsbG93IHtcbiAgLS1hdi1iZzogdmFyKC0tYy1zaWduYWwteWVsbG93LWJnKTtcbiAgLS1hdi1ib3JkZXI6IHZhcigtLWMtc2lnbmFsLXllbGxvdy10ZXh0KTtcbiAgLS1hdi1pY29uOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLWNvbG9yLWJsdWUge1xuICAtLWF2LWJnOiB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnKTtcbiAgLS1hdi1ib3JkZXI6IHZhcigtLWMtc2lnbmFsLWJsdWUtdGV4dCk7XG4gIC0tYXYtaWNvbjogdmFyKC0tYy1wdXJwbGUtNDAwKTtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItY29sb3ItcmVkIHtcbiAgLS1hdi1iZzogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTtcbiAgLS1hdi1ib3JkZXI6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTtcbiAgLS1hdi1pY29uOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG59XG4vLyBGaWZ0aCBjb2xvdXIsIGRlbGliZXJhdGVseSBvdXRzaWRlIHRoZSBmb3VyIHBhc3RlbHMuIFRob3NlIGZvdXIgcmVhZCBhc1xuLy8gXCJhIHBlcnNvblwiOyB0aGlzIGdyZXkgb25lIGlzIGZvciBjaXJjbGVzIHdoZXJlIG5vIHBlcnNvbiBpcyBpbnZvbHZlZCwgZS5nLlxuLy8gYSBzeXN0ZW0gbWVzc2FnZSB3aXRoIG1hcms9XCJxZG5hXCIuIFZhbHVlcyBhcmUgdGhlIGNlbnRyYWwgZ3JleSB0b2tlbnMgZnJvbVxuLy8gZGVzaWduLXRva2Vucy9fZGVzaWduLXRva2Vucy5zY3NzLCBub3QgbmV3IGNvbG91cnM6IGdyZXktMTAwIHN1cmZhY2UsXG4vLyBncmV5LTUwMCBoYWlybGluZSwgZ3JleS02MDAgZm9yIHRoZSBtYXJrL2ljb24uXG4vLyBNZWFzdXJlZCBjb250cmFzdDogbWFyayBncmV5LTYwMCAjNTY1YjY2IG9uIHN1cmZhY2UgZ3JleS0xMDAgI2U3ZTllYyA9XG4vLyA1LjYwOjEsIHdlbGwgcGFzdCB0aGUgMzoxIFdDQUcgMS40LjExIGZsb29yIGZvciBub24tdGV4dCBlbGVtZW50cy4gVGhlIGZvdXJcbi8vIHBhc3RlbHMgc2l0IGF0IDIuMTE6MSAoeWVsbG93KSB0byA0Ljk0OjEgKGJsdWUpIGZvciB0aGUgc2FtZSBwYWlyLCBzbyB0aGlzXG4vLyBpcyB0aGUgc3Ryb25nZXN0IG9mIHRoZSBmaXZlLCBub3QgdGhlIHdlYWtlc3QuXG4vLyBIYWlybGluZSBjaG9pY2U6IHRoZSBmb3VyIHBhc3RlbHMnIGJvcmRlcnMgbGFuZCBiZXR3ZWVuIDMuMDY6MSBhbmQgMy40NToxXG4vLyBhZ2FpbnN0IHRoZWlyIG93biBzdXJmYWNlLiBObyBncmV5IHRva2VuIGhpdHMgdGhhdCBiYW5kIGV4YWN0bHksIHNvIGdyZXktNTAwXG4vLyAoMy45NzoxKSB3YXMgcGlja2VkIG92ZXIgZ3JleS00MDAgKDEuOTE6MSk6IHNsaWdodGx5IGZpcm1lciB0aGFuIGl0c1xuLy8gc2libGluZ3MsIHJhdGhlciB0aGFuIGEgY2lyY2xlIHRoYXQgbG9va3MgbGlrZSBpdCBsb3N0IGl0cyByaW0uXG4vLyBbS2ltIDI5LjA3LjIwMjZdXG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLWNvbG9yLW5ldXRyYWwge1xuICAtLWF2LWJnOiB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTtcbiAgLS1hdi1ib3JkZXI6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xuICAtLWF2LWljb246IHZhcigtLWMtZ3JleS02MDAsICM1NjViNjYpO1xufVxuLy8gWmVzZGUga2xldXIsIFwicHVycGxlXCIgKEtpbSAyOS4wNy4yMDI2LCBuYSBkZSB0b2VzdGVsdGVzdDogaGV0IGdyaWp6ZSByb25kamUgdmFuXG4vLyBoZXQgc3lzdGVlbWJlcmljaHQgd2FzIGhhYXIgdGUgZ3JpanM7IHplIHdpbCBsaWNodHBhYXJzIG1ldCBlZW4gZG9ua2VyZGVyIHBhYXJzXG4vLyB0ZWtlbikuIEJlZG9lbGQgdm9vciBoZXQgUUROQS1tZXJrdGVrZW4sIGR1cyB2b29yIFwiZGl0IGtvbXQgdmFuIGhldCBwbGF0Zm9ybVwiLlxuLy8gTmV0IGFscyBuZXV0cmFsIGhvb3J0IGRlemUgTklFVCBiaWogZGUgdmllciBwYXN0ZWwtbWVuc2Vua2xldXJlbi5cbi8vIFRva2VucywgZ2VlbiBsb3NzZSBoZXg6IHB1cnBsZS01MCBpcyBoZXQgbGljaHRzdGUgdmxhaywgcHVycGxlLTUwMCBkZSBodWlzc3RpamwtXG4vLyBwYWFycyB2b29yIGhldCB0ZWtlbiwgcHVycGxlLTIwMCBhbHMgcmFuZCBkaWUgemljaHRiYWFyIGlzIHpvbmRlciB0ZSBzY2hyZWV1d2VuLlxuLy8gQ29udHJhc3QgdGVrZW4gb3AgdmxhazogIzQwNDk5YSBvcCAjZTZlOWZmIGlzIDcsMzoxLCBydWltIGJvdmVuIGRlIDM6MSBkaWUgV0NBR1xuLy8gMS40LjExIHZvb3IgbmlldC10ZWtzdHVlbGUgZWxlbWVudGVuIHZyYWFndCAobmFnZXJla2VuZCwgbmlldCBnZXNjaGF0KS5cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItY29sb3ItcHVycGxlIHtcbiAgLS1hdi1iZzogdmFyKC0tYy1wdXJwbGUtNTAsICNlNmU5ZmYpO1xuICAtLWF2LWJvcmRlcjogdmFyKC0tYy1wdXJwbGUtMjAwLCAjYTVhY2ZmKTtcbiAgLS1hdi1pY29uOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xufVxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1tb2RlLXBob3RvIHtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xufVxuLnFkbmFwcm8tYXZhdGFyIC5hdmF0YXItcGhvdG8ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tYXZhdGFyIC5hdmF0YXItaW5pdGlhbHMge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMC4wNWVtKTtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItbW9kZS1pbml0aWFscy5hdmF0YXItc2l6ZS03MiAuYXZhdGFyLWluaXRpYWxzIHtcbiAgZm9udC1zaXplOiAyOHB4O1xufVxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1tb2RlLWluaXRpYWxzLmF2YXRhci1zaXplLTQ4IC5hdmF0YXItaW5pdGlhbHMge1xuICBmb250LXNpemU6IDE4cHg7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLW1vZGUtaW5pdGlhbHMuYXZhdGFyLXNpemUtMzQgLmF2YXRhci1pbml0aWFscyB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItbW9kZS1pbml0aWFscy5hdmF0YXItc2l6ZS0yOCAuYXZhdGFyLWluaXRpYWxzIHtcbiAgLy8gSW50ZXJwb2xhdGVkIGJldHdlZW4gc2l6ZS0yMCAoOXB4KSBhbmQgc2l6ZS0zNCAoMTNweCk6IDkgKyAoMjgtMjApLygzNC0yMCkgKiAoMTMtOSkgPSAxMS4yOXB4LCByb3VuZGVkIHRvIDExcHguXG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItbW9kZS1pbml0aWFscy5hdmF0YXItc2l6ZS0yMCAuYXZhdGFyLWluaXRpYWxzIHtcbiAgZm9udC1zaXplOiA5cHg7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLW1vZGUtaWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1hdi1pY29uKTtcbn1cbi5xZG5hcHJvLWF2YXRhciAuYXZhdGFyLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tYXZhdGFyIC5hdmF0YXItaWNvbiBzdmcge1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLW1vZGUtaWNvbi5hdmF0YXItc2l6ZS03MiAuYXZhdGFyLWljb24ge1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xufVxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1tb2RlLWljb24uYXZhdGFyLXNpemUtNDggLmF2YXRhci1pY29uIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItbW9kZS1pY29uLmF2YXRhci1zaXplLTM0IC5hdmF0YXItaWNvbiB7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLW1vZGUtaWNvbi5hdmF0YXItc2l6ZS0yOCAuYXZhdGFyLWljb24ge1xuICAvLyBJbnRlcnBvbGF0ZWQgYmV0d2VlbiBzaXplLTIwICgxMnB4KSBhbmQgc2l6ZS0zNCAoMThweCk6IDEyICsgKDI4LTIwKS8oMzQtMjApICogKDE4LTEyKSA9IDE1LjQzcHgsIHJvdW5kZWQgdG8gMTVweC5cbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItbW9kZS1pY29uLmF2YXRhci1zaXplLTIwIC5hdmF0YXItaWNvbiB7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG59XG4vLyBNYXJrIG1vZGUg4oCUIHRoZSBRRE5BIGJyYW5kIG1hcmssIGlubGluZWQgaW4gdGhlIGNvbXBvbmVudCBKUyB3aXRoXG4vLyBmaWxsPVwiY3VycmVudENvbG9yXCIuIENvbG91ciByaWRlcyB0aGUgc2FtZSAtLWF2LWljb24gY2hhbm5lbCBhcyBpY29uIG1vZGUsXG4vLyBzbyB0aGUgbWFyayB0aGVtZXMgcGVyIGBjb2xvcmAuXG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLW1vZGUtbWFyayB7XG4gIGNvbG9yOiB2YXIoLS1hdi1pY29uKTtcbn1cbi5xZG5hcHJvLWF2YXRhciAuYXZhdGFyLW1hcmsge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tYXZhdGFyIC5hdmF0YXItbWFyayBzdmcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLy8gQm94IHBlciBzaXplID0gcm91bmQoMC41OCB4IGF2YXRhciBzaXplKSwgdGhlbiBjaGVja2VkIHNvIHRoZSBtYXJnaW4gbGVmdFxuLy8gb3ZlciBpcyBuZXZlciBzbWFsbGVyIHRoYW4gdGhlIGNpcmNsZSdzIG93biBwYWRkaW5nLiBUaGF0IGtlZXBzIHRoZSBtYXJrIG9mZlxuLy8gdGhlIHJpbSBhdCBldmVyeSBzaXplIGFuZCBnaXZlcyBpdCB0aGUgc2FtZSBvcHRpY2FsIHJlc3QgdGhlIGFuaW1hbHMgaGF2ZS5cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItbW9kZS1tYXJrLmF2YXRhci1zaXplLTcyIC5hdmF0YXItbWFyayB7XG4gIHdpZHRoOiA0MnB4O1xuICBoZWlnaHQ6IDQycHg7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLW1vZGUtbWFyay5hdmF0YXItc2l6ZS00OCAuYXZhdGFyLW1hcmsge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xufVxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1tb2RlLW1hcmsuYXZhdGFyLXNpemUtMzQgLmF2YXRhci1tYXJrIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cbi5xZG5hcHJvLWF2YXRhci5hdmF0YXItbW9kZS1tYXJrLmF2YXRhci1zaXplLTI4IC5hdmF0YXItbWFyayB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLW1vZGUtbWFyay5hdmF0YXItc2l6ZS0yMCAuYXZhdGFyLW1hcmsge1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xufVxuXG4ucWRuYXByby1hdmF0YXIuYXZhdGFyLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xufVxuLnFkbmFwcm8tYXZhdGFyLmF2YXRhci1taXNzaW5nOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiP1wiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMC41ZW07XG4gIGNvbG9yOiB2YXIoLS1hdi1ib3JkZXIpO1xufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvYXZhdGFyLXN0YWNrL19hdmF0YXItc3RhY2stY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnFkbmFwcm8tYXZhdGFyLXN0YWNrIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4ucWRuYXByby1hdmF0YXItc3RhY2sgW2RhdGEtcm9sZT1zdGFjay1pdGVtXSB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucWRuYXByby1hdmF0YXItc3RhY2sgW2RhdGEtc3RhY2staGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucWRuYXByby1hdmF0YXItc3RhY2sgW2RhdGEtcm9sZT1vdmVyZmxvd10ge1xuICBtYXJnaW4tbGVmdDogNHB4O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnFkbmFwcm8tYXZhdGFyLXN0YWNrW2RhdGEtc2l6ZT1cIjIwXCJdIFtkYXRhLXJvbGU9c3RhY2staXRlbV0ge1xuICBtYXJnaW4tcmlnaHQ6IC02cHg7XG59XG5cbi5xZG5hcHJvLWF2YXRhci1zdGFja1tkYXRhLXNpemU9XCIzNFwiXSBbZGF0YS1yb2xlPXN0YWNrLWl0ZW1dIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbn1cblxuLnFkbmFwcm8tYXZhdGFyLXN0YWNrW2RhdGEtc2l6ZT1cIjQ4XCJdIFtkYXRhLXJvbGU9c3RhY2staXRlbV0ge1xuICBtYXJnaW4tcmlnaHQ6IC0xNHB4O1xufVxuXG4ucWRuYXByby1hdmF0YXItc3RhY2tbZGF0YS1zaXplPVwiNzJcIl0gW2RhdGEtcm9sZT1zdGFjay1pdGVtXSB7XG4gIG1hcmdpbi1yaWdodDogLTIycHg7XG59XG5cbi5xZG5hcHJvLWF2YXRhci1zdGFjayBbZGF0YS1yb2xlPXN0YWNrLWl0ZW1dW2RhdGEtc3RhY2stbGFzdF0ge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi8qIHZhcmlhbnQ9XCJidXR0b25cIjogdGhlIHdob2xlIHN0YWNrIGFjdHMgbGlrZSBhIHN1YnRsZS1wdXJwbGUgYnV0dG9uXG4gICAoaG92ZXIgLyBhY3RpdmUgLyBmb2N1cyksIGZvciB1c2Ugb24gYSBsaWdodC1wdXJwbGUgc3VyZmFjZS4gW0tpbSAyMDI2LTA2LTE3XSAqL1xuLnFkbmFwcm8tYXZhdGFyLXN0YWNrW3ZhcmlhbnQ9XCJidXR0b25cIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZSwgYm94LXNoYWRvdyAxMjBtcyBlYXNlO1xufVxuLnFkbmFwcm8tYXZhdGFyLXN0YWNrW3ZhcmlhbnQ9XCJidXR0b25cIl06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG59XG4ucWRuYXByby1hdmF0YXItc3RhY2tbdmFyaWFudD1cImJ1dHRvblwiXTphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZGViYXItaWNvbik7XG59XG4ucWRuYXByby1hdmF0YXItc3RhY2tbdmFyaWFudD1cImJ1dHRvblwiXTpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoNjQsIDczLCAxNTQsIDAuNDUpO1xufVxuIiwiLy8gX2JhY2tncm91bmQtcGlja2VyLnNjc3Ncbi8vXG4vLyBxZG5hcHJvLWJhY2tncm91bmQtcGlja2VyIC0gRmFjZWJvb2stc3R5bGUgXCJ0ZXh0IG9uIGJhY2tncm91bmRcIiBwaWNrZXJcbi8vIGZvciBQdWxzZS4gQSBjb21wYWN0IFNUUklQIG9mIHRpbGVzIHRoYXQgZXhwYW5kcyBpbnRvIGEgZnVsbCBncmlkIHZpYSBhXG4vLyBgYmFyZWAgcWRuYXByby1wb3BvdmVyLiBTZWUgcWRuYS1iYWNrZ3JvdW5kLXBpY2tlci5qcyBmb3IgdGhlIGZ1bGxcbi8vIGRvY2Jsb2NrIChkYXRhIHNvdXJjZSwgdHdvLWxheWVyIGNvbG91citwYXR0ZXJuIG1vZGVsLCBldmVudHMpLlxuLy9cbi8vIFRJTEUgQU5BVE9NWS4gRXZlcnkgdGlsZSBpcyBhIHBsYWluIDQweDQwIGJ1dHRvbjpcbi8vICAgLSBhIGZsYXQgY29sb3VyOiBiYWNrZ3JvdW5kIGlzIHRoZSBjb2xvdXIgaXRzZWxmIChgLS1xYnAtc3dhdGNoYCkuXG4vLyAgIC0gYSBwYXR0ZXJuOiB0aGUgU0FNRSBjb2xvdXIgYmFja2dyb3VuZCwgcGx1cyBhIHNlY29uZCBhYnNvbHV0ZWx5XG4vLyAgICAgcG9zaXRpb25lZCBsYXllciAoZG91YmxlZCB2aWEgYDo6YWZ0ZXJgLCBzZWUgYmVsb3cpIG1hc2tlZCB3aXRoIHRoZVxuLy8gICAgIHBhdHRlcm4gU1ZHIGFuZCB0aW50ZWQgdmlhIGAtLXFicC1wYXR0ZXJuLXRpbnRgIChgbWFzay1pbWFnZWAsIG5vdFxuLy8gICAgIGBiYWNrZ3JvdW5kLWltYWdlYCAtIHRoZSBwYXR0ZXJuIFNWR3MgYXJlIGBmaWxsPVwiY3VycmVudENvbG9yXCJgLCBidXRcbi8vICAgICBhbiBFWFRFUk5BTCBzdmcgbG9hZGVkIGFzIGEgbWFzay9iYWNrZ3JvdW5kIGltYWdlIG5ldmVyIGluaGVyaXRzXG4vLyAgICAgcGFnZSBDU1MsIHNvIG1hc2tpbmcgYSBwbGFpbiB0aW50ZWQgbGF5ZXIgaXMgdGhlIG9ubHkgd2F5IHRvXG4vLyAgICAgcmVjb2xvdXIgdGhlbSBwZXIgY29sb3VyIGNob2ljZSkuIFRoZSBtYXNrIGlzIHNpemVkL3Bvc2l0aW9uZWQgUEVSXG4vLyAgICAgUEFUVEVSTiB2aWEgYC0tcWJwLXBhdHRlcm4tbWFzay1zaXplYC9gLS1xYnAtcGF0dGVybi1tYXNrLXBvcy14YC9cbi8vICAgICBgLS1xYnAtcGF0dGVybi1tYXNrLXBvcy15YCAoc2V0XG4vLyAgICAgaW5saW5lIGJ5IHFkbmEtYmFja2dyb3VuZC1waWNrZXIuanMncyBgX3BhdHRlcm5NYXNrR2VvbWV0cnkoKWAsIHNlZVxuLy8gICAgIHRoZSBjb21tZW50IG9uIGAucWJwLXRpbGUtcGF0dGVybi1sYXllcmAgYmVsb3cpIC0gbm90IG9uZSBmbGF0XG4vLyAgICAgNDB4NDAsIGJlY2F1c2UgdGhlIHNpeCBwYXR0ZXJuIFNWR3MgYXJlIG5vdCB0aGUgc2FtZSBuYXRpdmUgc2l6ZS5cbi8vICAgLSBcIm5vIGJhY2tncm91bmRcIiAvIFwib3duIHBpY3R1cmVcIiAvIFwibm8gcGF0dGVyblwiIC8gXCJvcGVuIGZ1bGwgZ3JpZFwiOlxuLy8gICAgIGEgbmV1dHJhbCBncmV5IHRpbGUgd2l0aCBhbiBNREkgaWNvbiAocWRuYXByby1pY29uLCBjb2xvdXIgdmlhXG4vLyAgICAgY3VycmVudENvbG9yKS5cbi8vICAgLSB0aGUgQ09MT1VSIFdIRUVMIChrYWFydCA2LCBCT0FSRC1wdWxzZS1rYWFydC1wcm9wb3J0aW9uZWVsKTogYSByb3VuZFxuLy8gICAgIGNvbmljLWdyYWRpZW50IGZhY2Ugb24gdGhlIG5ldXRyYWwgdGlsZSAtIHRoZSB0aWxlIHRoYXQgb3BlbnMgdGhlXG4vLyAgICAgXCJvd24gYmFja2dyb3VuZCBjb2xvdXJcIiBwYW5lbC4gVGhlIHdoZWVsIGlzIGJ1aWx0IGZyb20gdGhlIGRlc2lnblxuLy8gICAgIHRva2VucyAocmVkL29yYW5nZS95ZWxsb3cvZ3JlZW4vYmx1ZS9wdXJwbGUpLCBzbyBpdCBuZWVkcyBubyBjb2xvdXJcbi8vICAgICBkYXRhIGZyb20gdGhlIEpTIGFuZCBubyBoZXggb2YgaXRzIG93bi5cbi8vICAgLSB0aGUgVEVYVCBDT0xPVVIgdGlsZSAoa2FhcnQgNik6IGEgbWFya2VyIGdseXBoIHBsdXMgYSBiYXIgaW4gdGhlXG4vLyAgICAgQUNUSVZFIHRleHQgY29sb3VyIChgLS1xYnAtdGV4dC1zd2F0Y2hgLCBzZXQgaW5saW5lIGJ5IHRoZSBKUyAtIGFcbi8vICAgICBydW50aW1lIGNvbG91ciwgb25lIG9mIHRoZSBkb2N1bWVudGVkIGlubGluZSBleGNlcHRpb25zKS4gSXQgbmV2ZXJcbi8vICAgICBzaG93cyB0aGUgc2VsZWN0ZWQgcmluZzogdGhlIHN0cmlwIGlzIGEgcmFkaW9ncm91cCBhYm91dCB0aGVcbi8vICAgICBCQUNLR1JPVU5ELCBhbmQgYSByaW5nIGhlcmUgd291bGQgcmVhZCBhcyBcInRoaXMgYmFja2dyb3VuZCBpcyBvblwiLlxuLy8gU2VsZWN0aW9uIGlzIGEgc21hbGwgd2hpdGUgY2hlY2sgYmFkZ2UgYm90dG9tLXJpZ2h0IChgLnFicC10aWxlLWNoZWNrYCkgLVxuLy8gTk9UIGEgZnVsbC10aWxlIG92ZXJsYXkgLSBzbyBpdCBuZXZlciBmaWdodHMgZm9yIGNvbnRyYXN0IHdpdGggYW5cbi8vIGFyYml0cmFyeSBzd2F0Y2gvcGF0dGVybiBjb2xvdXIgdW5kZXJuZWF0aCBpdC5cblxuLnFkbmFwcm8tYmFja2dyb3VuZC1waWNrZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ucWRuYXByby1iYWNrZ3JvdW5kLXBpY2tlciAqLFxuLnFkbmFwcm8tYmFja2dyb3VuZC1waWNrZXIgKjo6YmVmb3JlLFxuLnFkbmFwcm8tYmFja2dyb3VuZC1waWNrZXIgKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5xYnAtc3RyaXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xufVxuXG4vLyAtLS0gU2hhcmVkIHRpbGUgY2hyb21lIC0tLVxuLnFicC10aWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xYnAtc3dhdGNoLCB2YXIoLS1jLWdyZXktNTAsICNmMmYzZjUpKTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEyMG1zIGVhc2UsIGJveC1zaGFkb3cgMTIwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2U7XG59XG5cbi5xYnAtdGlsZTpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4ucWJwLXRpbGU6YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMC45Nik7XG59XG5cbi5xYnAtdGlsZTpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nKSwgMCAwIDAgNXB4IHZhcigtLWZvY3VzLWdsb3cpO1xufVxuXG4ucWJwLXRpbGUucWJwLXRpbGUtc2VsZWN0ZWQge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZm9jdXMtcmluZyk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLXJpbmcpLCAwIDAgMCA1cHggdmFyKC0tZm9jdXMtZ2xvdyk7XG59XG5cbi8vIE5ldXRyYWwgaWNvbiB0aWxlczogbm9uZSAvIHVwbG9hZCAobm8gaW1hZ2UgeWV0KSAvIG9wZW4tZ3JpZCAvIG5vLXBhdHRlcm4uXG4ucWJwLXRpbGUtbm9uZSxcbi5xYnAtdGlsZS11cGxvYWQ6bm90KC5xYnAtdGlsZS1oYXMtaW1hZ2UpLFxuLnFicC10aWxlLWdyaWQsXG4ucWJwLXRpbGUtcGF0dGVybi1ub25lIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmMmYzZjUpO1xufVxuXG4vLyBGbGF0IGNvbG91ciBzd2F0Y2ggLSB0aGUgdGlsZSdzIG93biBiYWNrZ3JvdW5kIElTIHRoZSBjb2xvdXIuXG4ucWJwLXRpbGUtY29sb3Ige1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXFicC1zd2F0Y2gpO1xufVxuXG4vLyBQYXR0ZXJuIHN3YXRjaDogc2FtZSBmbGF0IGNvbG91ciB1bmRlcm5lYXRoLCBtYXNrZWQgcGF0dGVybiBsYXllciBvbiB0b3AuXG4ucWJwLXRpbGUtcGF0dGVybiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWJwLXN3YXRjaCk7XG59XG5cbi8vIEdFQlJFSyAxIC0gdHdlZWRlIGhlcnN0ZWxyb25kZSAoa2FhcnQgNGMpOiBgLS1xYnAtcGF0dGVybi1tYXNrLXNpemVgIC9cbi8vIGAtLXFicC1wYXR0ZXJuLW1hc2stcG9zLXhgIC8gYC0tcWJwLXBhdHRlcm4tbWFzay1wb3MteWAgY29tZSBmcm9tXG4vLyBgX3BhdHRlcm5NYXNrR2VvbWV0cnkoKWAgaW4gcWRuYS1iYWNrZ3JvdW5kLXBpY2tlci5qcyAtIHBlciBQQVRURVJOLCBub3Rcbi8vIG9uZSBmbGF0IG51bWJlciwgYmVjYXVzZSB0aGUgc2l4IHBhdHRlcm4gU1ZHcyBhcmUgbm90IHRoZSBzYW1lIG5hdGl2ZVxuLy8gc2l6ZSAoMTAwLTE0MHB4KSBBTkQgZWFjaCBwYXR0ZXJuJ3MgY2hvc2VuIG1vdGlmIHNpdHMgYXQgYSBkaWZmZXJlbnRcbi8vIChjeCwgY3kpIGluc2lkZSB0aGF0IG5hdGl2ZSBzaXplIChzZWUgUEFUVEVSTl9NT1RJRiksIHNvIHggYW5kIHkgbmVlZFxuLy8gdGhlaXIgT1dOIG9mZnNldCwgbm90IG9uZSBzaGFyZWQgdmFsdWUuIFRoZSBtYXNrIGlzIHpvb21lZCBpbiAoYVxuLy8gbWFzay1zaXplIHdlbGwgQUJPVkUgdGhlIFNWRydzIG93biBuYXRpdmUgc2l6ZSkgc28gdGhhdCBvbmUgc3BlY2lmaWNcbi8vIG1vdGlmIC0gbm90IFwidGhlIHdob2xlIHBhdHRlcm5cIiBhbmQgbm90IHRoZSBzZWFtIHdoZXJlIHNldmVyYWxcbi8vIG5laWdoYm91cmluZyBtb3RpZnMgbWVldCAtIGZpbGxzIH42NSUgb2YgdGhlIDQwcHggdGlsZSBhbmQgcmVhZHMgYXMgYW5cbi8vIGFjdHVhbCBoZWFydC9mbG93ZXIvc3Rhci9ldGMuIEZhbGxzIGJhY2sgdG8gYSBmbGF0IDQwcHgvMC8wIG1hc2sgaWYgdGhlXG4vLyBjdXN0b20gcHJvcGVydGllcyBhcmUgZXZlciBtaXNzaW5nIChlLmcuIGEgZnV0dXJlIHBhdHRlcm4gdGhpc1xuLy8gY29tcG9uZW50IGRvZXNuJ3Qga25vdyB0aGUgZ2VvbWV0cnkgb2YpLlxuLy9cbi8vIFRoZSBgOjphZnRlcmAgZHVwbGljYXRlIHN0YWNrcyB0aGUgU0FNRSBtYXNrZWQsIHRpbnRlZCBsYXllciBvbiB0b3Agb2Zcbi8vIGl0c2VsZi4gVGhpcyBpcyBhIFRJTEUtT05MWSBjb250cmFzdCBib29zdDogdGhlIFNWR3MnIG93biBwZXItbW90aWZcbi8vIGBmaWxsLW9wYWNpdHlgICgwLjEyLTAuMywgZGVsaWJlcmF0ZWx5IHN1YnRsZSBzbyB0aGUgcmVhbCwgbXVjaCBsYXJnZXJcbi8vIFB1bHNlIGNhcmQgc3RheXMgcmVhZGFibGUgYmVoaW5kIGl0KSBpcyBzaGFyZWQsIG91dC1vZi1zY29wZSBkYXRhIHVzZWRcbi8vIGVsc2V3aGVyZSB0b28gLSBpdCBpcyBub3Qgc29tZXRoaW5nIHRoaXMgY29tcG9uZW50IG1heSBjaGFuZ2UuIFR3b1xuLy8gaWRlbnRpY2FsIHNlbWktdHJhbnNwYXJlbnQgbGF5ZXJzIG9uIHRvcCBvZiBlYWNoIG90aGVyIGNvbXBvdW5kIHRoZWlyXG4vLyBhbHBoYSAoZS5nLiB0d28gMC4zLW9wYXF1ZSBsYXllcnMgcmVhZCBhcyB+MC41MSksIHdoaWNoIGlzIGV4YWN0bHkgdGhlXG4vLyBcInRlZ2VsIG1hZyBiZXN0IG5hZHJ1a2tlbGlqaywgZGUga2FhcnQgemVsZiBuaWV0XCIgY29udHJhc3QgS2ltIGFza2VkXG4vLyBmb3IsIHdpdGhvdXQgdG91Y2hpbmcgdGhhdCBzaGFyZWQgdGludC9vcGFjaXR5IGRhdGEgYXQgYWxsLlxuLnFicC10aWxlLXBhdHRlcm4tbGF5ZXIsXG4ucWJwLXRpbGUtcGF0dGVybi1sYXllcjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1xYnAtcGF0dGVybi10aW50KTtcbiAgICBtYXNrLWltYWdlOiB2YXIoLS1xYnAtcGF0dGVybi11cmwpO1xuICAgIG1hc2stc2l6ZTogdmFyKC0tcWJwLXBhdHRlcm4tbWFzay1zaXplLCA0MHB4KSB2YXIoLS1xYnAtcGF0dGVybi1tYXNrLXNpemUsIDQwcHgpO1xuICAgIG1hc2stcG9zaXRpb246IHZhcigtLXFicC1wYXR0ZXJuLW1hc2stcG9zLXgsIDApIHZhcigtLXFicC1wYXR0ZXJuLW1hc2stcG9zLXksIDApO1xuICAgIG1hc2stcmVwZWF0OiByZXBlYXQ7XG4gICAgLXdlYmtpdC1tYXNrLWltYWdlOiB2YXIoLS1xYnAtcGF0dGVybi11cmwpO1xuICAgIC13ZWJraXQtbWFzay1zaXplOiB2YXIoLS1xYnAtcGF0dGVybi1tYXNrLXNpemUsIDQwcHgpIHZhcigtLXFicC1wYXR0ZXJuLW1hc2stc2l6ZSwgNDBweCk7XG4gICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOiB2YXIoLS1xYnAtcGF0dGVybi1tYXNrLXBvcy14LCAwKSB2YXIoLS1xYnAtcGF0dGVybi1tYXNrLXBvcy15LCAwKTtcbiAgICAtd2Via2l0LW1hc2stcmVwZWF0OiByZXBlYXQ7XG59XG5cbi5xYnAtdGlsZS1wYXR0ZXJuLWxheWVyOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbn1cblxuLy8gUmVhZHktbWFkZSBzY2VuZSB0aWxlIChrYWFydCAxNikgLSB0aGUgU1ZHIHNjZW5lIGl0c2VsZiBJUyB0aGUgdGh1bWJuYWlsLFxuLy8gc2hvd24gY292ZXItZml0OyB1bmxpa2UgYSBwYXR0ZXJuIHRoZXJlIGlzIG5vIG1hc2svdGludCBtYXRoLCBhIHNjZW5lIGlzXG4vLyBvbmUgZnVsbCBpbGx1c3RyYXRpb24gcmF0aGVyIHRoYW4gYSByZXBlYXRpbmcgbW90aWYuXG4ucWJwLXRpbGUtc2NlbmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLXFicC1zY2VuZS11cmwpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xufVxuXG4vLyAtLS0gS2FhcnQgNjogY29sb3VyIHdoZWVsICsgdGV4dCBjb2xvdXIgdGlsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFRoZSB3aGVlbCB0aWxlIGtlZXBzIHRoZSBuZXV0cmFsIHRpbGUgYmFja2dyb3VuZDsgdGhlIHdoZWVsIGl0c2VsZiBpcyBhXG4vLyByb3VuZCBmYWNlIGluc2lkZSBpdC4gU2FtZSBcImFueSBjb2xvdXIgeW91IGxpa2VcIiBsYW5ndWFnZSBhc1xuLy8gcWRuYXByby1jb2xvci1wYW5lbCdzIG93biAucWNwMi1tb3JlLXN3YXRjaCAod2hpY2ggaXMgZXhhY3RseSB3aGVyZSB0aGlzXG4vLyB0aWxlIGxlYWRzKSwgYnV0IGJ1aWx0IGZyb20gVE9LRU5TIGluc3RlYWQgb2YgYSBsaXRlcmFsIHJhaW5ib3cgc28gdGhlcmVcbi8vIGlzIG5vIG5ldyBjb2xvdXIgZGF0YSBpbiB0aGlzIGZpbGUuXG4ucWJwLXRpbGUtd2hlZWwge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YyZjNmNSk7XG59XG5cbi5xYnAtdGlsZS13aGVlbC1mYWNlIHtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsIHJnYmEoMCwgMCwgMCwgMC4wNykpO1xuICAgIGJhY2tncm91bmQ6IGNvbmljLWdyYWRpZW50KFxuICAgICAgICBmcm9tIDBkZWcsXG4gICAgICAgIHZhcigtLWMtd2Fybi1yZWQtNTAwLCAjZGMyNjI2KSxcbiAgICAgICAgdmFyKC0tYy13YXJuLW9yYW5nZS01MDAsICNlYTU4MGMpLFxuICAgICAgICB2YXIoLS1jLXdhcm4teWVsbG93LTUwMCwgI2ZiYmYyNCksXG4gICAgICAgIHZhcigtLWMtc3VjY2Vzcy01MDAsICMxMjgwNWUpLFxuICAgICAgICB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpLFxuICAgICAgICB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpLFxuICAgICAgICB2YXIoLS1jLXdhcm4tcmVkLTUwMCwgI2RjMjYyNilcbiAgICApO1xufVxuXG4vLyBUaGUgdGV4dC1jb2xvdXIgdGlsZTogZ2x5cGggb24gdG9wLCBhIGNvbG91ciBiYXIgdW5kZXIgaXQuIGBmbGV4LWRpcmVjdGlvbjpcbi8vIGNvbHVtbmAgb3ZlcnJpZGVzIHRoZSBzaGFyZWQgdGlsZSBjZW50cmluZyBmb3IgdGhpcyBvbmUgdGlsZSBvbmx5LCBzbyB0aGVcbi8vIGJhciBzaXRzIHVuZGVyIHRoZSBnbHlwaCBpbnN0ZWFkIG9mIG5leHQgdG8gaXQuXG4ucWJwLXRpbGUtdGV4dC1jb2xvciB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmMmYzZjUpO1xufVxuXG4ucWJwLXRpbGUtdGV4dC1iYXIge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAvLyBObyBjb2xvdXIgY2hvc2VuIChvciBcIkF1dG9tYXRpc2NoXCIpOiBhIG5ldXRyYWwgYmFyLCBzbyB0aGUgdGlsZSBzdGlsbFxuICAgIC8vIHJlYWRzIGFzIFwidGV4dCBjb2xvdXJcIiB3aXRob3V0IGNsYWltaW5nIGEgY29sb3VyIGl0IGRvZXMgbm90IGhhdmUuXG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWJwLXRleHQtc3dhdGNoLCB2YXIoLS1jLWdyZXktMzAwLCAjYzRjN2NjKSk7XG59XG5cbi8vIEEgY2hvc2VuIFdISVRFIHRleHQgY29sb3VyIHdvdWxkIGJlIGFuIGludmlzaWJsZSBiYXIgb24gdGhlIGxpZ2h0IHRpbGUgLVxuLy8gdGhlIGhhaXJsaW5lIGtlZXBzIGl0cyBlZGdlIHJlYWRhYmxlLiBBcHBsaWVkIHRvIGV2ZXJ5IGV4cGxpY2l0IGNob2ljZSwgbm90XG4vLyBqdXN0IHdoaXRlOiBvbmUgcnVsZSBpbnN0ZWFkIG9mIGEgcGVyLWNvbG91ciBjb250cmFzdCBkZWNpc2lvbiwgc2FtZVxuLy8gcmVhc29uaW5nIGFzIHRoZSAucWJwLXRpbGUtY2hlY2sgYmFkZ2UgYWJvdmUuXG4ucWJwLXRpbGUtdGV4dC1jb2xvci1zZXQgLnFicC10aWxlLXRleHQtYmFyIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tYy1ib3JkZXItc29mdCwgcmdiYSgwLCAwLCAwLCAwLjA3KSk7XG59XG5cbi8vIE93biB1cGxvYWRlZCBwaWN0dXJlIC0gZmlsbHMgdGhlIHRpbGUgb25jZSB0aGUgaG9zdCBzZXRzIGBpbWFnZWAuXG4ucWJwLXRpbGUtaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIFNlbGVjdGlvbiBiYWRnZSAtIGEgc21hbGwgd2hpdGUgY2lyY2xlIHNvIHRoZSBjaGVja21hcmsgcmVhZHMgb24gQU5ZXG4vLyBzd2F0Y2gvcGF0dGVybiBjb2xvdXIgdW5kZXJuZWF0aCBpdCwgaW5zdGVhZCBvZiBhIGZ1bGwtdGlsZSBvdmVybGF5IHRoYXRcbi8vIHdvdWxkIG5lZWQgYSBwZXItY29sb3VyIGNvbnRyYXN0IGRlY2lzaW9uLlxuLnFicC10aWxlLWNoZWNrIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC0ycHg7XG4gICAgYm90dG9tOiAtMnB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEyMG1zIGVhc2UsIHRyYW5zZm9ybSAxMjBtcyBlYXNlO1xufVxuXG4ucWJwLXRpbGUtc2VsZWN0ZWQgLnFicC10aWxlLWNoZWNrIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG5cbi5xYnAtdGlsZS1jaGVjazo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDRweDtcbiAgICB0b3A6IDVweDtcbiAgICB3aWR0aDogNnB4O1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tZm9jdXMtcmluZyk7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLWZvY3VzLXJpbmcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG5cbi8vIC0tLSBGdWxsIGdyaWQgKGhvc3RlZCBpbnNpZGUgYSBgYmFyZWAgcWRuYXByby1wb3BvdmVyLCBzbyBUSElTIHBhbmVsXG4vLyBzdXBwbGllcyBhbGwgaXRzIG93biBjaHJvbWUgLSBiYWNrZ3JvdW5kL2JvcmRlci9yYWRpdXMvc2hhZG93IC0gc2FtZVxuLy8gXCJiYXJlIGhvc3RzIGEgc2VsZi1jaHJvbWVkIGNoaWxkXCIgaWRpb20gcWRuYXByby1wb3BvdmVyJ3Mgb3duIGRvY2Jsb2NrXG4vLyBkZXNjcmliZXMgZm9yIGEgaG9zdGVkIHFkbmFwcm8tbWVudSkgLS0tXG4ucWJwLWdyaWQtcGFuZWwge1xuICAgIHdpZHRoOiAyOTJweDtcbiAgICBtYXgtaGVpZ2h0OiAzNjBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMTJweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4xNik7XG59XG5cbi5xYnAtZ3JpZC1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xufVxuXG4ucWJwLWdyaWQtc2VjdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbn1cblxuLy8gSGVhZGluZyBhYm92ZSB0aGUgc2NlbmVzIHNlY3Rpb24gKGthYXJ0IDE2KSAtIHRoZSBjb2xvdXJzL3BhdHRlcm5zXG4vLyBzZWN0aW9ucyBhYm92ZSBoYXZlIG5vbmUsIGJ1dCBcImEgcmVhZHktbWFkZSBzY2VuZVwiIGlzIGEgbGVzc1xuLy8gc2VsZi1ldmlkZW50IGtpbmQgYXQgYSBnbGFuY2UgdGhhbiBhIGZsYXQgY29sb3VyIG9yIGEgc21hbGwgdGlsZWFibGVcbi8vIHBhdHRlcm4sIHNvIHRoaXMgb25lIHNlY3Rpb24gZ2V0cyBhIGxhYmVsLlxuLnFicC1ncmlkLWhlYWRpbmcge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjRweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbn1cblxuLy8gLS0tIEthYXJ0IDY6IHRoZSBjb2xvdXItcGFuZWwgZmx5b3V0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlIGNhcmQgUkVVU0VTIC5xYnAtZ3JpZC1wYW5lbCBhYm92ZSAoYmFja2dyb3VuZC9ib3JkZXIvcmFkaXVzL3NoYWRvdykgc29cbi8vIHRoZSB0d28gZmx5b3V0cyBvZiB0aGlzIGNvbXBvbmVudCBhcmUgdmlzaWJseSB0aGUgc2FtZSBvYmplY3Q7IG9ubHkgdGhlXG4vLyBzaXplIGRpZmZlcnMuIGBtYXgtaGVpZ2h0OiBub25lYCBiZWNhdXNlIGEgY29sb3VyIHBhbmVsIG5ldmVyIG5lZWRzIHRvXG4vLyBzY3JvbGwgLSBpdCBpcyBhdCBtb3N0IHNpeCBzd2F0Y2hlcywgYW4gQXV0b21hdGlzY2ggYnV0dG9uIGFuZCBvbmUgcm93LlxuLnFicC1jb2xvci1wYW5lbC1jYXJkIHtcbiAgICB3aWR0aDogMjQ4cHg7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLnFicC1ncmlkLXBhdHRlcm4tcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG59XG4iLCIvLyBxZG5hcHJvLWJhdHRsZS1iYXIgLSBQdWxzZSB0ZWFtYmF0dGxlIHN0YW5kLCBmb3VyIHZhcmlhbnRzICh0dWcgLyByYW5rIC9cbi8vIGNoaXAgLyBoZXJvKS4gU2VlIHRoZSBjb21wb25lbnQncyBvd24gZG9jYmxvY2sgZm9yIHRoZSBmdWxsIGNvbnRyYWN0LiBORVNURURcbi8vIFNDU1MgKHJlYWwgYCZgLW5lc3RpbmcgYmVsb3cgZm9yIGhvdmVyL2ZvY3VzLXZpc2libGUvZGFyay1tb2RlKSwgc28gdGhlXG4vLyBQV0Egc3luYyBlbnRyeSBuZWVkcyBjb21waWxlU2NzczogdHJ1ZSAtIGEgZmxhdCBcIi8vXCItc3RyaXAgY29weSB3b3VsZCBzaGlwXG4vLyB0aGUgbGl0ZXJhbCBgJmAgc2VsZWN0b3JzLiBFZGl0IEhFUkUsIHRoZW4gYGd1bHAgc2Fzc2AgKyBgZ3VscCBzYXNzLXYxYC5cblxuLnFkbmFwcm8tYmF0dGxlLWJhciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG59XG5cbi8vIC0tLS0gSW50ZXJhY3RpdmUgYWZmb3JkYW5jZSAodHVnL3JhbmsvaGVybyB3aXRoIHRoZSBgaW50ZXJhY3RpdmVgIGF0dHJpYnV0ZSkgLS0tLVxuLy8gU2FtZSBvdXRsaW5lOm5vbmUgKyBmb2N1cy12aXNpYmxlIGJveC1zaGFkb3cgcmluZyBwYXR0ZXJuIGFzIGV2ZXJ5IG90aGVyXG4vLyB2MiBjb21wb25lbnQgLSBORVZFUiB0aGUgYm9vdHN0cmFwIGJsdWUgb3V0bGluZS5cbi5xZG5hcHJvLWJhdHRsZS1iYXIuaXMtaW50ZXJhY3RpdmUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIsIDhweCk7XG59XG4ucWRuYXByby1iYXR0bGUtYmFyLmlzLWludGVyYWN0aXZlOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuLy8gLmZvcmNlLWZvY3VzIGxldHMgdGhlIHNoYXJlZCBsaWJyYXJ5IHByZXZpZXcncyBcImZvY3VzXCIgdG9vbGJhciB0b2dnbGVcbi8vIGRlbW9uc3RyYXRlIHRoaXMgcmluZyBvbiBkZW1hbmQgKHNhbWUgY29udmVudGlvbiBhcyBxZG5hcHJvLWJ1dHRvbi9cbi8vIHFkbmFwcm8tY2hlY2tib3gvcWRuYXByby1ldmVudC1jYXJkIC0gc2VlIHRoZWlyIG93biA6Zm9jdXMtdmlzaWJsZSBydWxlcykuXG4ucWRuYXByby1iYXR0bGUtYmFyLmlzLWludGVyYWN0aXZlOmZvY3VzLXZpc2libGUsXG4ucWRuYXByby1iYXR0bGUtYmFyLmlzLWludGVyYWN0aXZlLmZvcmNlLWZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nKSwgMCAwIDAgNXB4IHZhcigtLWZvY3VzLWdsb3cpO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVmFyaWFudCAxIC0gVHJla2JhbGsgKGV4YWN0bHkgMiB0ZWFtcylcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ucWRuYXByby1iYXR0bGUtYmFyLS10dWcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbn1cbi5iYi10dWctbmFtZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZvbnQ6IDYwMCAxMnB4LzEuMiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbn1cbi5iYi10dWctbmFtZSB7XG4gICAgLy8gY29sb3VyIGlzIHNldCBpbmxpbmUgcGVyIHRlYW0gKGNvbG9ySW5kZXgpLCBzZWUgcWRuYS1iYXR0bGUtYmFyLmpzXG4gICAgbWF4LXdpZHRoOiA0OCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmJiLXR1Zy1uYW1lLS1iIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5iYi10dWctYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGhlaWdodDogMTJweDtcbiAgICAvLyA2cHggcGVyIHRoZSBkZXNpZ24gKERFU0lHTi1wdWxzZS1iYXR0bGUtcGxlay5odG1sIC50dWdiYXIpIC0gbm90IHRoZVxuICAgIC8vIHNhbWUgYXMgYW55IC0tci0qIHN0ZXAgKC0tci0yIGlzIDhweCksIHNvIGEgcGxhaW4gdmFsdWUsIG5vdCBhIHRva2VuXG4gICAgLy8gZmFsbGJhY2sgdGhhdCB3b3VsZCBzaWxlbnRseSBuZXZlciBhcHBseS5cbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5iYi10dWctZmlsbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIC8vIGJhY2tncm91bmQgY29sb3VyIHNldCBpbmxpbmUgcGVyIHRlYW0gKGNvbG9ySW5kZXgpXG4gICAgdHJhbnNpdGlvbjogd2lkdGggMjAwbXMgZWFzZS1vdXQ7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5iYi10dWctZmlsbCB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxufVxuLmJiLXR1Zy1zdWIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICAgIGZvbnQ6IDQwMCAxMXB4LzEuMyB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cbi5iYi10dWctc3ViIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYmItdHVnLXN1YiBzcGFuOmxhc3QtY2hpbGQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmJiLXR1Zy1zdWIgc3BhbjpudGgtY2hpbGQoMikge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZhcmlhbnQgMiAtIFBvc2l0aWUtcmVnZWwgKDMrIHRlYW1zKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5xZG5hcHJvLWJhdHRsZS1iYXItLXJhbmsge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMywgMTBweCk7XG59XG4uYmItcmFuay1iYXJzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBnYXA6IDNweDtcbiAgICBoZWlnaHQ6IDI2cHg7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG4uYmItcmFuay1taW5pIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAvLyBiYWNrZ3JvdW5kIGNvbG91ciBzZXQgaW5saW5lIChtdXRlZCBsaW5lIGNvbG91ciwgb3IgdGhlIHRlYW0gY29sb3VyXG4gICAgLy8gd2hlbiB0aGlzIGJhciBiZWxvbmdzIHRvIHlvdXIgb3duIHRlYW0pXG59XG4vLyBCZXNsdWl0IEtpbSAxNC4wOS4yMDI2OiB3aXRoIG1vcmUgdGhhbiAxMCB0ZWFtcyB0aGUgYmFyLWNoYXJ0IGNhcHMgdG8gdG9wXG4vLyAzICsgeW91ciBvd24gdGVhbTsgdGhpcyBtYXJrcyB0aGUgZ2FwIGluIGJldHdlZW4uIEFsaWduZWQgdG8gdGhlIGJvdHRvbSBvZlxuLy8gLmJiLXJhbmstYmFycyAoZmxleC1lbmQpIHZpYSB0aGUgY29udGFpbmVyJ3Mgb3duIGFsaWduLWl0ZW1zLCBzYW1lIGFzIHRoZVxuLy8gbWluaSBiYXJzIHRoZW1zZWx2ZXMuXG4uYmItcmFuay1nYXAge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQ6IDcwMCAxMnB4LzEgdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gICAgcGFkZGluZy1ib3R0b206IDJweDtcbn1cbi5iYi1yYW5rLWluZm8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbn1cbi5iYi1yYW5rLWxpbmUxIHtcbiAgICBmb250OiA2MDAgMTNweC8xLjMgdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uYmItcmFuay12YWx1ZSB7XG4gICAgLy8gY29sb3VyIHNldCBpbmxpbmUgKHlvdXIgdGVhbSdzIGNvbG9ySW5kZXgpXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5iYi1yYW5rLWxpbmUyIHtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgZm9udDogNDAwIDExcHgvMS4zIHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5iYi1yYW5rLWNoZXZyb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZhcmlhbnQgMyAtIFN0YW5kLWNoaXAgKGNhcmQgY29ybmVyIHBpbGwpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnFkbmFwcm8tYmF0dGxlLWJhci0tY2hpcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYmItY2hpcC1hY2NlbnQsIHZhcigtLWMtYnJhbmQtcHVycGxlKSkgMTQlLCB2YXIoLS1jLWNoaXAtcHVycGxlLWJnKSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsLCA5OTlweCk7XG4gICAgcGFkZGluZzogM3B4IDEwcHg7XG59XG4uYmItY2hpcC1sYWJlbCB7XG4gICAgZm9udDogNjAwIDEycHgvMS4yIHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICAgIC8vIC0tYmItY2hpcC10ZXh0IGlzIHRoZSByZWFkYWJsZSBjb2xvdXItbWl4IChzZWUgYmJUZWFtVGV4dFZhciBpblxuICAgIC8vIHFkbmEtYmF0dGxlLWJhci5qcyksIE5PVCAtLWJiLWNoaXAtYWNjZW50IC0gdGhlIHJhdyB0ZWFtIGNvbG91ciByZWFkc1xuICAgIC8vIGZpbmUgYXMgYSAxNCUgYmFja2dyb3VuZCB0aW50IGJ1dCBmYWlscyBjb250cmFzdCBhcyBzbWFsbCBib2xkIHRleHRcbiAgICAvLyBmb3Igc2V2ZXJhbCB0ZWFtcyAobWVhc3VyZWQ6IGFzIGxvdyBhcyAxLjU6MSkuXG4gICAgY29sb3I6IHZhcigtLWJiLWNoaXAtdGV4dCwgdmFyKC0tYy1jaGlwLXB1cnBsZS10ZXh0KSk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZhcmlhbnQgNCAtIENhbXBhZ25lLWtvcCAoaGVybywgZXhhY3RseSAyIHRlYW1zLCBQdWxzZSBjYW1wYWlnbiB0aWxlKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5xZG5hcHJvLWJhdHRsZS1iYXItLWhlcm8ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5iYi1oZXJvLWNoaXBzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLXMtMiwgOHB4KTtcbn1cbi5iYi1oZXJvLWNoaXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiA0OCU7XG4gICAgLy8gYmFja2dyb3VuZC9jb2xvdXIgc2V0IGlubGluZSBwZXIgdGVhbSAoY29sb3JJbmRleCksIHNlZVxuICAgIC8vIHFkbmEtYmF0dGxlLWJhci5qcyAtIGJhY2tncm91bmQgaXMgYSBjb2xvci1taXgoKSBzb2Z0IHRpbnQgb2YgdGhlXG4gICAgLy8gdGVhbSBmaWxsIHRva2VuLCB0ZXh0IGlzIHRoZSBzaGFyZWQgYmJUZWFtVGV4dFZhcigpIHJlYWRhYmxlIG1peC5cbiAgICBwYWRkaW5nOiA2cHggMTNweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwsIDk5OXB4KTtcbiAgICBmb250OiA3MDAgMTNweC8xLjIgdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmJiLWhlcm8tYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgLy8gS2ltcyBGaWdtYS1tYXRlbiAoMTQuMDkuMjAyNik6IGVlbiBkaWtrZSBQSUxMLCBuaWV0IGRlIDEycHgtcmFkaXVzIHZhblxuICAgIC8vIGRlIGVlcnN0ZSB2ZXJzaWUgLSBkZSBiYWxrIGlzIGhldCBnZXppY2h0IHZhbiBkZSB0ZWdlbC5cbiAgICBoZWlnaHQ6IDUycHg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsLCA5OTlweCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5iYi1oZXJvLWZpbGwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAvLyBiYWNrZ3JvdW5kIEFORCBpbmsgc2V0IGlubGluZSBwZXIgdGVhbSAoY29sb3JJbmRleCkgLSBsaWdodCBmaWxscyBnZXQgYVxuICAgIC8vIGZpeGVkIGRhcmsgaW5rIHRva2VuIChiYlRlYW1JbmtWYXIpLCB0aGUgcmVzdCB0aGlzIHdoaXRlIGZhbGxiYWNrLlxuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgICBmb250OiA4MDAgMjFweC8xIHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgLy8gRWRnZSBjYXNlIChwZXIgdGhlIGNhcmQpOiBhIHRlYW0gb24gMCBwb2ludHMgbXVzdCBub3Qgc2hyaW5rIGl0cyBoYWxmXG4gICAgLy8gdG8gdGhlIHBvaW50IHRoZSBudW1iZXIgYmVjb21lcyB1bnJlYWRhYmxlLCBzbyBlYWNoIGhhbGYga2VlcHMgYVxuICAgIC8vIGZsb29yIHdpZGUgZW5vdWdoIGZvciB0aGUgbnVtYmVyICsgaXRzIHBhZGRpbmcsIHNhbWUgaWRlYSBhcyB0dWcnc1xuICAgIC8vIHdpZHRoIHNwbGl0IGp1c3Qgd2l0aCBhIGhhcmQgbWluaW11bSBhZGRlZC5cbiAgICBtaW4td2lkdGg6IDc2cHg7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMjAwbXMgZWFzZS1vdXQ7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5iYi1oZXJvLWZpbGwge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbn1cbi5iYi1oZXJvLWZpbGwtLWEge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG59XG4uYmItaGVyby1maWxsLS1iIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHBhZGRpbmctcmlnaHQ6IDE4cHg7XG59XG5cbi8vIC0tLS0gRGFyayBtb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gT25seSAtLWMtYmF0dGxlLXRlYW0tNCBoYXMgaXRzIG93biBkYXJrLW1vZGUgdmFsdWUgKHNlZSBkZXNpZ24tdG9rZW5zLnNjc3MpO1xuLy8gdGhlIHJlc3QgYXJlIGZpeGVkIHByaW1pdGl2ZXMgYWNyb3NzIHRoZW1lcywgc2FtZSBhcyByZXZlYWwtc3RhZ2UncyB0ZWFtXG4vLyBjb2xvdXJzLiBOb3RoaW5nIHRvIHJlLW1hcCBoZXJlIC0gdGhlIHNlbWFudGljIHRva2VucyAoLS1jLXRleHQtbXV0ZWQsXG4vLyAtLWMtdGV4dC1oZWFkaW5nLCAtLWMtYm9yZGVyLWNhcmQsIC0tYy1jaGlwLXB1cnBsZS1iZy8tdGV4dCwgLS1jLWJnLWNhcmQsXG4vLyAtLWMtdGV4dC1vbi1hY3Rpb24sIC0tZm9jdXMtcmluZykgYWxyZWFkeSBmbGlwIHZpYSB0aGUgZGVzaWduLXRva2VucyBkYXJrXG4vLyBvdmVycmlkZSBibG9jay5cbiIsIi8vIHFkbmFwcm8tYm90dG9tLXNoZWV0IOKAlCBzY3JpbSArIHNsaWRlLXVwIHBhbmVsLCBhdXRvLWhlaWdodCwgc3dpcGUtdG8tZGlzbWlzcy5cbi8vIEZMQVQgQ1NTOyBjb2xvdXJzL3JhZGlpIGZyb20gdGhlIGRlc2lnbi10b2tlbiA6cm9vdCAodmFyKC0tYy0qKSAvIC0tci0qKS5cbi8vIEVkaXQgSEVSRSwgdGhlbiBgZ3VscCBzYXNzLXYxYCArIHRoZSBzeW5jLlxuXG4vKiBEZSBzaGVldCB3b3JkdCBiaWogb3BlbmVuIG5hYXIgPGJvZHk+IGdlcG9ydGFsZCAoemllIF9zaG93KS4gQ29udGFpbmVyIGlzXG4gICBwb3NpdGlvbjpmaXhlZCAoTklFVCB0cmFuc2Zvcm0g4oCUIGRhdCB6b3UgZGUgZml4ZWQga2luZGVyZW4gdmFuZ2VuKSB6b2RhdCB6LWluZGV4XG4gICBnZWxkdCBlbiBoaWogZWVuIHN0YWNraW5nLWNvbnRleHQgb3AgMTAwMCBtYWFrdDsgZGUgZml4ZWQgc2NyaW0vcGFuZWVsIGJsaWp2ZW5cbiAgIHZpZXdwb3J0LXJlbGF0aWVmLiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmlzLXZpc2libGUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogw4nDiU4gc2NyaW0tb2JqZWN0IGRla3QgaGV0IEhFTEUgc2NoZXJtIOKAlCBpbmNsdXNpZWYgZGUgaU9TIHNhZmUtYXJlYXMgKGJvdmVuICtcbiAgIG9uZGVyKSwgd2FudCBwb3NpdGlvbjpmaXhlZCArIGluc2V0OjAgaXMgdmlld3BvcnQtcmVsYXRpZWYgbWV0IHZpZXdwb3J0LWZpdD1cbiAgIGNvdmVyLiBIZXQgcGFuZWVsIGxpZ3QgZXJib3Zlbm9wIChsYXRlciBpbiBkZSBET00pIGVuIHdvcmR0IGR1cyBuaWV0IGdlZGltZC5cbiAgIEXDqW4gb2JqZWN0ID0gw6nDqW4gdW5pZm9ybWUgZGltLCBnZWVuIHNhZmUtYXJlYS10cnVjcywgZ2VlbiB0aW1pbmctcmFjZS4gW0phbiAzMC4wNi4yMDI2XSAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1zY3JpbSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmxhY2stNDUpO1xuICAvKiBJTlNUQU5UIGRpbSDigJQgZ2VlbiBvcGFjaXR5LXRyYW5zaXRpZS4gRGUgc2NyaW0gaXMgZXIgem9kcmEgZGUgc2hlZXQgemljaHRiYWFyXG4gICAgIGlzIChkaXNwbGF5OmJsb2NrIHZpYSAuaXMtdmlzaWJsZSkgZW4gdmVyZHdpam50IGluZWVucyBiaWogc2x1aXRlbi4gQmV3dXN0IGdlZW5cbiAgICAgYW5pbWF0aWU6IGVlbiBnZWFuaW1lZXJkZSBvcGFjaXR5IG9wIGVlbiBzYWZlLWFyZWEta3J1aXNlbmQgZml4ZWQgZWxlbWVudCB3b3JkdFxuICAgICBkb29yIGlPUyBXS1dlYlZpZXcgaW4gZGUgc2FmZS1hcmVhIG1ldCBhbmRlcmUgdGltaW5nIGdlY29tcG9zaXQgKGxhZykuIEhldFxuICAgICBwYW5lZWwgc2xpZGV0IHdlbC4gW0phbiAzMC4wNi4yMDI2XSAqL1xufVxuXG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLXBhbmVsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB6LWluZGV4OiAxOyAvKiBib3ZlbiBkZSBzY3JpbSAoemVsZmRlIHN0YWNraW5nLWNvbnRleHQpICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1heC1oZWlnaHQ6IDg2JTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyLXJhZGl1czogMzJweCAzMnB4IDAgMDtcbiAgLyogSW5saW5lIHBhZGRpbmcgYXMgYSBjdXN0b20gcHJvcGVydHkgc28gYW55dGhpbmcgdGhhdCBoYXMgdG8gQ0FOQ0VMIGl0ICh0aGVcbiAgICAgZnVsbC1ibGVlZCAuYnMtZGlhbG9nLWltYWdlKSBzdGF5cyBpbiBzdGVwIHdpdGggdmFyaWFudHMgdGhhdCBjaGFuZ2UgaXQg4oCUIHRoZVxuICAgICByZWFkaW5nIHZhcmlhbnQgcmFpc2VzIGl0IHRvIDE2cHguIEEgaGFyZGNvZGVkIG5lZ2F0aXZlIG1hcmdpbiB3b3VsZCBzaWxlbnRseVxuICAgICBiZSB3cm9uZyBvbiB0aG9zZSB2YXJpYW50cy4gW0tpbSAzMS4wNy4yMDI2XSAqL1xuICAtLWJzLXBhZC14OiA4cHg7XG4gIHBhZGRpbmc6IDRweCB2YXIoLS1icy1wYWQteCkgMDtcbiAgYm94LXNoYWRvdzogMCAtMTBweCAzNHB4IHJnYmEoMCwgMCwgMCwgMC4xNik7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgLyogU2FtZSB0aW1pbmcgYXMgdGhlIHNjcmltIChubyBkZWxheSkg4oCUIHRoZXkgc3RhcnQgdG9nZXRoZXIgc28gdGhlIHBhbmVsIHNsaWRpbmdcbiAgICAgdXAgYW5kIHRoZSBzY3JlZW4gZGFya2VuaW5nIHJlYWQgYXMgb25lIG1vdGlvbi4gd2lsbC1jaGFuZ2Uga2VlcHMgdGhlIHNsaWRlIG9uXG4gICAgIGl0cyBvd24gR1BVIGxheWVyIChzbW9vdGggb24gaU9TLCBubyBqYW5rKS4gKi9cbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMzJzIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5pcy1vcGVuIC5icy1wYW5lbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cblxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1oYW5kbGUtem9uZSB7XG4gIHBhZGRpbmc6IDEwcHggMCAyNHB4O1xuICBtYXJnaW46IDAgLTE2cHg7IC8qIGZ1bGwtd2lkdGggZ3JhYiB0YXJnZXQgKi9cbiAgY3Vyc29yOiBncmFiO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7IC8qIGxldCB0aGUgcG9pbnRlci1kcmFnIG93biB0aGUgZ2VzdHVyZSAqL1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZ3JhYiB7XG4gIHdpZHRoOiAzOHB4O1xuICBoZWlnaHQ6IDVweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTMwMCk7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6IDRweCAwIDEycHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1oZWFkZXItdGV4dCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbn1cbi8vIERFRkFVTFQgc2luZHMgMTkuMDguMjAyNiAoYmVzbHVpdCBLaW0pOiBnZWNlbnRyZWVyZCBlbiB6d2Fhciwgem9hbHMgZGVcbi8vIFB1bHNlLXJlYWN0aWVzLXNoZWV0IGRhdCBhbHMgZWVyc3RlIGhhZC4gRGF0IHdhcyB0b3QgdmFuZGFhZyBqdWlzdCBlZW5cbi8vIFNDT1BFRCB1aXR6b25kZXJpbmcgKFwiZWxrZSBhbmRlcmUgc2hlZXQgbGlqbnQgbGlua3MgdWl0XCIsIDE2LjA4LjIwMjYpIC1cbi8vIEtpbSBkcmFhaWRlIGRhdCBvbSB0b2VuIGRlIFVwZGF0ZXMtc2hlZXQgZXJuYWFzdCBlZW4gYW5kZXIga29wdHlwZSBibGVla1xuLy8gdGUgaGViYmVuOiBlZW4gdGl0ZWwgaG9vcnQgZXIgb3ZlcmFsIHVpdCB0ZSB6aWVuIGFscyBcIlJlYWN0aWVzXCIuXG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4zO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZyk7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLXN1YnRpdGxlIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IC8vIHZvbGd0IGRlIHRpdGVsLCBhbmRlcnMgb29ndCBkZSBrb3AgaGFsZiB2ZXJzY2hvdmVuXG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG4vLyBNZXQgZWVuIHNsdWl0a3J1aXNqZSAoY2xvc2FibGUpIHpvdSBkZSB0aXRlbCBiaW5uZW4gemlqbiBmbGV4dmFrIGNlbnRyZXJlblxuLy8gZW4gZHVzIG9wdGlzY2ggTElOS1MgdmFuIGhldCBzaGVldG1pZGRlbiBoYW5nZW46IGhldCBrcnVpc2plIGlzIDMwcHggcGx1c1xuLy8gZGUgMTJweCBoZWFkZXItZ2FwLiBEZXplIGNvbXBlbnNhdGllIGhvdWR0IGRlIHRla3N0IG9wIGhldCBlY2h0ZSBtaWRkZW4uXG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWhlYWRlcjpoYXMoLmJzLWNsb3NlKSAuYnMtaGVhZGVyLXRleHQge1xuICBwYWRkaW5nLWxlZnQ6IDQycHg7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWNsb3NlIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ibGFjay0wNik7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtY2xvc2U6YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ibGFjay0xMik7XG59XG5cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtYm9keSB7XG4gIGZsZXg6IDE7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG4gIC8qIFJFVkVSVEVEIDEzLjA3LjIwMjYgKEtpbSk6IHRoZSBnbG9iYWwgcGFkZGluZy1ib3R0b20gMCBtYWRlIHRoZSBidXR0b25cbiAgICAgc2hlZXRzIChlZGl0LWV4aXQgY29uZmlybSkgc2l0IGNyYW1wZWQgYWdhaW5zdCB0aGUgYm90dG9tIGVkZ2UsIHNvIHRoZVxuICAgICBiYXNlIGtlZXBzIGl0cyBicmVhdGhpbmcgcm9vbSArIGlPUyBzYWZlLWFyZWEgYWdhaW4uIE9OTFkgdGhlIHJlYWRpbmdcbiAgICAgdmFyaWFudCAoZnVydGhlciBkb3duKSBrZWVwcyB0aGUgZGVsaWJlcmF0ZSBvdmVyZmxvdyBmZWVsIGF0IDAuXG4gICAgIDI0cHggZml4ZWQgYnJlYXRoaW5nIHJvb20gKyBzYWZlLWFyZWEgZm9yIHRoZSBob21lIGluZGljYXRvci4gW0tpbSAxNS4wNy4yMDI2XSAqL1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYygyNHB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCkpO1xuICAvKiBBIGJvdHRvbSBzaGVldCBtdXN0IE5FVkVSIHNob3cgYSB2aXNpYmxlIHNjcm9sbGJhciDigJQgY29udGVudCBzdGlsbCBzY3JvbGxzLlxuICAgICBGbGF0IHNjcm9sbGJhci1oaWRlICh0aGUgcWRuYS1zY3JvbGxiYXItaGlkZGVuIG1peGluIGNhbid0IGJlIHVzZWQgaGVyZTogdGhpc1xuICAgICBwYXJ0aWFsIGlzIGNvcGllZCB2ZXJiYXRpbSB0byB0aGUgUFdBKS4gKi9cbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyAvKiBGaXJlZm94ICovXG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgLyogb2xkIEVkZ2UvSUUgKi9cbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBub25lOyAvKiBDaHJvbWUgLyBTYWZhcmkgKi9cbn1cblxuLyogU2VnbWVudCBjb250cm9scyBpbnNpZGUgdGhlIGJvZHkgc2hvdWxkIHNpemUgdG8gY29udGVudCBhbmQgY2VudGVyIOKAlCBub3Qgc3RyZXRjaCBmdWxsLXdpZHRoLiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1ib2R5ID4gcWRuYXByby1zZWdtZW50IHsgYWxpZ24tc2VsZjogY2VudGVyOyB9XG5cbi8qIEF1dG8tY2FyZDogYnV0dG9ucyBwbGFjZWQgZGlyZWN0bHkgaW4gdGhlIHNoZWV0IGJvZHkgKG5vdCBpbnNpZGUgYSBncm91cCkgYWx3YXlzIGdldFxuICAgYSBjYXJkIGZyYW1lIOKAlCBmaXJzdCBidXR0b24gZ2V0cyB0b3AgY29ybmVycywgbGFzdCBnZXRzIGJvdHRvbSBjb3JuZXJzLiBUaGlzIGVuZm9yY2VzXG4gICB0aGUgZGVzaWduIHJ1bGUgdGhhdCBidXR0b25zIGFyZSBORVZFUiBzaG93biBuYWtlZCBvbiB0aGUgc2hlZXQgc3VyZmFjZS4gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtYm9keSA+IHFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbiB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LXB1cnBsZSAuYnMtYm9keSA+IHFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbiB7IGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtMTQpOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWJvZHkgPiBxZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b246Zmlyc3Qtb2YtdHlwZSB7IGJvcmRlci1yYWRpdXM6IDI0cHggMjRweCAwIDA7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtYm9keSA+IHFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbjpsYXN0LW9mLXR5cGUgIHsgYm9yZGVyLXJhZGl1czogMCAwIDI0cHggMjRweDsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1ib2R5ID4gcWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uOm9ubHktb2YtdHlwZSAgeyBib3JkZXItcmFkaXVzOiAyNHB4OyB9XG5cbi8qIFB1cnBsZSB2YXJpYW50IOKAlCBmb3IgYWN0aW9uIG1lbnVzICh0aGUgUFdBJ3MgcHVycGxlIGJvdHRvbSBzaGVldHMpLiBVc2VzIHRoZSBmaXhlZFxuICAgcHJpbWl0aXZlIC0tYy1wdXJwbGUtNTAwIChOT1QgLS1jLWJyYW5kLXB1cnBsZSwgd2hpY2ggbGlmdHMgdG8gbGlnaHQgcHVycGxlIGluIGRhcmtcbiAgIG1vZGUg4oCUIHRoZSBzaGVldCBtdXN0IHN0YXkgcHVycGxlKS4gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LXB1cnBsZSAuYnMtcGFuZWwgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MDApOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdmFyaWFudC1wdXJwbGUgLmJzLWdyYWIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlLTQ1KTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXZhcmlhbnQtcHVycGxlIC5icy10aXRsZSB7IGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXZhcmlhbnQtcHVycGxlIC5icy1zdWJ0aXRsZSB7IGNvbG9yOiB2YXIoLS1jLXdoaXRlLTQ1KTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXZhcmlhbnQtcHVycGxlIC5icy1jbG9zZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtMTQpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG5cbi8qIEdsYXNzIHZhcmlhbnQg4oCUIGEgZGFyaywgdHJhbnNsdWNlbnQsIGJsdXJyZWQgcGFuZWwgKGlPUy9XaGF0c0FwcCBlbW9qaS1waWNrZXJcbiAgIGxvb2spLiBUaGUgc2NyaW0gc3RheXMgdGhlIG5vcm1hbCBkaW07IHRoZSBwYW5lbCBpdHNlbGYgaXMgdGhlIGZyb3N0ZWQgbGF5ZXIuXG4gICBDb250ZW50IG9uIHRvcCBpcyB3aGl0ZS4gQ29uc3VtZXJzIHRoYXQgd2FudCBhIGdsYXNzIHN1cmZhY2UgKGUuZy5cbiAgIHFkbmFwcm8tZW1vamktc2hlZXQpIG9wdCBpbiB3aXRoIHZhcmlhbnQ9XCJnbGFzc1wiLiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXZhcmlhbnQtZ2xhc3MgLmJzLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogcmdiYSgzOCwgMzgsIDQ0LCAwLjcyKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDMwcHgpIHNhdHVyYXRlKDE2MCUpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigzMHB4KSBzYXR1cmF0ZSgxNjAlKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBib3gtc2hhZG93OiAwIC0xMHB4IDM0cHggcmdiYSgwLCAwLCAwLCAwLjI4KTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LWdsYXNzIC5icy1ncmFiIHsgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZS00NSk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LWdsYXNzIC5icy10aXRsZSB7IGNvbG9yOiAjZmZmOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdmFyaWFudC1nbGFzcyAuYnMtc3VidGl0bGUgeyBjb2xvcjogdmFyKC0tYy13aGl0ZS00NSk7IH1cbi8qIFNvbGlkIGZhbGxiYWNrIHdoZXJlIGJhY2tkcm9wLWZpbHRlciBpcyB1bnN1cHBvcnRlZCAob2xkIFdlYlZpZXdzKS4gKi9cbkBzdXBwb3J0cyBub3QgKChiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMXB4KSkgb3IgKC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDFweCkpKSB7XG4gIC5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LWdsYXNzIC5icy1wYW5lbCB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS04MDApOyB9XG59XG5cbi8qIFJlYWRpbmcgdmFyaWFudCDigJQgZm9yIHRleHQtaGVhdnkgY29udGVudCAobmV3cyBpdGVtcywgYnJpZWZpbmdzLCBxdWVzdGlvbm5haXJlXG4gICBwcmV2aWV3cykuIE9ydGhvZ29uYWwgdG8gcHVycGxlL2dsYXNzOiBvbmx5IHRoZSBwYW5lbCBicmVhdGhpbmctcm9vbSArIGxvb3NlLXRleHRcbiAgIHNpemUgY2hhbmdlLCB0aGUgc3VyZmFjZSBjb2xvdXJzIHN0YXkgdGhlIGJhc2Ugd2hpdGUgY2FyZC4gW0tpbSAxMy4wNy4yMDI2XVxuICAgUm9vbWllciBob3Jpem9udGFsIHBhbmVsIHBhZGRpbmcgKDE2cHggdnMgdGhlIGJhc2UgOHB4LCB3aGljaCBpcyB0dW5lZCBmb3JcbiAgIGJ1dHRvbi1yb3cgc2hlZXRzIGFuZCBzdGF5cyB1bmNoYW5nZWQpLiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXZhcmlhbnQtcmVhZGluZyAuYnMtcGFuZWwge1xuICAtLWJzLXBhZC14OiAxNnB4O1xuICBwYWRkaW5nOiA0cHggdmFyKC0tYnMtcGFkLXgpIDA7XG59XG4vKiBCb2R5IHN0YXlzIGVkZ2UtdG8tZWRnZSBpbnNpZGUgdGhhdCByb29taWVyIHBhbmVsIChubyBob3Jpem9udGFsIHBhZGRpbmcpIGFuZFxuICAgcnVucyB0byB0aGUgYm90dG9tIGVkZ2UgKG1hdGNoZXMgdGhlIGdsb2JhbCBiYXNlLCBrZXB0IGV4cGxpY2l0IGZvciBjbGFyaXR5KS4gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LXJlYWRpbmcgLmJzLWJvZHkge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuLyogMTZweCBpcyB0aGUgbG9vc2UtdGV4dCByZWFkaW5nIHNpemUsIGFwcGxpZWQgT05MWSB0byB0ZXh0IHRoYXQgb3B0cyBpbiB3aXRoIHRoZVxuICAgLmJzLXRleHQgd3JhcHBlciDigJQgZGVsaWJlcmF0ZWx5IE5PVCB0byBldmVyeSAuYnMtYm9keSBjaGlsZC4gV1lTSVdZRyBicmllZmluZyBIVE1MXG4gICBicmluZ3MgaXRzIG93biBzaXplcyBmcm9tIHRoZSBlZGl0b3IgYW5kIG11c3QgbmV2ZXIgYmUgZm9yY2VkIHRvIDE2cHgsIHNvIGl0IGlzXG4gICBsZWZ0IHVudG91Y2hlZCAoaXQgY2FycmllcyBubyAuYnMtdGV4dCkuIFtLaW0gMTMuMDcuMjAyNl0gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LXJlYWRpbmcgLmJzLWJvZHkgLmJzLXRleHQge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi8qIOKUgOKUgCBTbGlkZXIgKGBzbGlkZXJgKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIFRoZSBib2R5IGJlY29tZXMgYSBob3Jpem9udGFsIHBhZ2VyOiBgc2xvdD1cInBhZ2VcImAgY2hpbGRyZW4gbW92ZSBpbnRvIGEgdHJhY2sgYW5kIGFcbiAgIGRvdHMgc3RyaXAgbGFuZHMgdW5kZXIgdGhlbS4gVGhlIGxvb2tzICsgYmVoYXZpb3VyIGFyZSBTSEFSRUQgd2l0aCBxZG5hcHJvLXBvcG92ZXJcbiAgICgucWRuYS1wYWdlci0qIGluIF9kZXNpZ24tdG9rZW5zLnNjc3MgKyB3aW5kb3cuUWRuYVBhZ2VyKSwgYmVjYXVzZSB0aGUgYXBwIHN3YXBzXG4gICBiZXR3ZWVuIHRob3NlIHR3byBzaGVsbHMgcGVyIHBsYXRmb3JtIOKAlCBwaG9uZSBnZXRzIHRoZSBzaGVldCwgPj0xMDI0cHggdGhlIHBvcG92ZXIg4oCUXG4gICBhbmQgYSBwYWdlciB0aGF0IG9ubHkgd29ya2VkIGluIG9uZSBvZiB0aGVtIHdvdWxkIGJlIGNvcGllZCBpbnRvIHRoZSBvdGhlciB3aXRoaW4gYVxuICAgZGF5LiBPbmx5IHRoZSB0d28gcnVsZXMgYmVsb3cgYXJlIHNoZWV0LXNwZWNpZmljLiBbS2ltIDA0LjA5LjIwMjZdICovXG5cbi8qIFRoZSByZWFkaW5nIHZhcmlhbnQgZGVsaWJlcmF0ZWx5IHJ1bnMgaXRzIGJvZHkgdG8gdGhlIGJvdHRvbSBlZGdlIChwYWRkaW5nLWJvdHRvbTowKSxcbiAgIHNvIGEgZG90cyBzdHJpcCB3b3VsZCBzaXQgb24gdGhlIHBhbmVsIGVkZ2UgLyB1bmRlciB0aGUgaU9TIGhvbWUgaW5kaWNhdG9yLiBHaXZlIHRoZVxuICAgYnJlYXRoaW5nIHJvb20gYmFjayBIRVJFIHJhdGhlciB0aGFuIGluIGV2ZXJ5IGNvbnN1bWVyIHRoYXQgY29tYmluZXMgdGhlIHR3by4gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LXJlYWRpbmcgLnFkbmEtcGFnZXItZG90cyB7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDE0cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgMHB4KSk7XG59XG5cbi8qIERpYWxvZyB2YXJpYW50IOKAlCBBTFdBWVMgcHVycGxlOiBhIHB1cnBsZSBpbGx1c3RyYXRlZCBkaWFsb2cgKGlsbHVzdHJhdGlvbiArIGJvbGRcbiAgIHdoaXRlIHRpdGxlICsgd2hpdGUgYm9keSB0ZXh0ICsgb3B0aW9uYWwgY29uc3VtZXIgYm9keSBjb250ZW50ICsgYSBmbGV4aWJsZSBmb290ZXIpLlxuICAgU2VydmVzIGJvdGggdGhlIGRlc3RydWN0aXZlIGNvbmZpcm0gKHJlc2V0LXVuaXRzKSBBTkQgYSBibG9ja2luZyBub3RpY2UgKGZpbmlzaFxuICAgYXVkaXQgd2l0aCBtYW5kYXRvcnkgdW5pdHMgc3RpbGwgb3BlbikuIGB2YXJpYW50PVwiY29uZmlybVwiYCBpcyBhbiBhbGlhcyDihpIgc2FtZVxuICAgLmJzLXZhcmlhbnQtZGlhbG9nIGNsYXNzLiBDb21wb3NlZCBmcm9tIHFkbmFwcm8taWxsdXN0cmF0aW9uICsgcWRuYXByby1idXR0b24gdXNpbmdcbiAgIGl0cyBvd24gb24tcHVycGxlIC8gb24tcHVycGxlLXNvbGlkIFRZUEVTIChzZWUgX2J1dHRvbi5zY3NzKSDigJQgbGF5b3V0IG9ubHksIG5vXG4gICBiZXNwb2tlIGNvbG91ciBvdmVycmlkZXMuIFtLaW0gMTUuMDcuMjAyNl0gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LWRpYWxvZyAuYnMtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXZhcmlhbnQtZGlhbG9nIC5icy1ncmFiIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZS00NSk7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWJvZHkuYnMtZGlhbG9nIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBnYXA6IDA7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG59XG4vKiBHYXAgaWxsdXN0cmF0aW9uIOKGkiB0aXRsZS4gVGFyZ2V0IHRoZSBUQUcsIG5vdCAuYnMtZGlhbG9nLWlsbHVzdHJhdGlvbjpcbiAgIHFkbmFwcm8taWxsdXN0cmF0aW9uIHdpcGVzIGl0cyBvd24gY2xhc3NOYW1lIG9uIHJlbmRlciAodGhpcy5jbGFzc05hbWUgPSDigKYpLCBzbyBhXG4gICBjbGFzcyBob29rIGlzIGRlYWQgYnkgdGhlIHRpbWUgaXQgcGFpbnRzIGFuZCB0aGUgZ2FwIGNvbGxhcHNlZCB0byAwIChcImNyYW1wZWRcIikuXG4gICBbS2ltIDE1LjA3LjIwMjZdICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWJvZHkuYnMtZGlhbG9nID4gcWRuYXByby1pbGx1c3RyYXRpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG8gMjBweDtcbn1cbi8qIEZ1bGwtYmxlZWQgaGVybyBpbWFnZSAoYGltYWdlYCBhdHRyKSwgdGhlIGFsdGVybmF0aXZlIHRvIHRoZSBjZW50ZXJlZCBpbGx1c3RyYXRpb24uXG4gICBJdCBNVVNUIHJlYWNoIHRoZSBwYW5lbCBlZGdlczogdGhlIGNlbGVicmF0aW9uIGlsbHVzdHJhdGlvbnMgaGF2ZSB0aGVpciBvd24gcHVycGxlXG4gICBiYWNrZ3JvdW5kIGJha2VkIGluLCBtYXRjaGluZyB0aGUgZGlhbG9nIHN1cmZhY2UsIHNvIHRoZSBhcnR3b3JrIGZsb3dzIGludG8gdGhlIHBhbmVsXG4gICBhbmQgdGhlIGVkZ2Ugb2YgaXRzIHNoYXBlIGlzIGludmlzaWJsZS4gQW55IHBhZGRpbmcgdHVybnMgdGhhdCBlZGdlIGludG8gYSBzZWFtLlxuICAgVGhlIGlubGluZSBtYXJnaW5zIGNhbmNlbCB0aGUgcGFuZWwncyBvd24gLS1icy1wYWQteCAobmV2ZXIgYSBoYXJkY29kZWQgbnVtYmVyOlxuICAgdGhlIHJlYWRpbmcgdmFyaWFudCByYWlzZXMgdGhhdCBwYWRkaW5nIHRvIDE2cHgsIGFuZCBhIGZpeGVkIC04cHggd291bGQgdGhlbiBsZWF2ZVxuICAgdGhlIGltYWdlIDhweCBzaG9ydCBvbiBlYWNoIHNpZGUpLiBUaGUgbmVnYXRpdmUgdG9wIG1hcmdpbiBlYXRzIG1vc3Qgb2YgdGhlXG4gICBoYW5kbGUtem9uZSdzIDI0cHggYnJlYXRoaW5nIHJvb20gc28gdGhlIGltYWdlIHNpdHMganVzdCB1bmRlciB0aGUgZ3JhYiBoYW5kbGUuXG4gICBUaGUgcGFuZWwncyAzMnB4IHRvcCByb3VuZGluZyBpcyBub3QgY2xpcHBlZCBhd2F5OiB0aGUgYXJ0d29yaydzIG93biBjb3JuZXJzIGFyZVxuICAgdHJhbnNwYXJlbnQsIHNvIG5vdGhpbmcgcG9rZXMgb3V0LiBBbiBvcGFxdWUgaW1hZ2UgV09VTEQgbmVlZCBjbGlwcGluZyBoZXJlLlxuICAgW0tpbSAzMS4wNy4yMDI2XSAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1ib2R5LmJzLWRpYWxvZyA+IC5icy1kaWFsb2ctaW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDIgKiB2YXIoLS1icy1wYWQteCkpO1xuICBtYXJnaW46IC0yNHB4IGNhbGMoLTEgKiB2YXIoLS1icy1wYWQteCkpIDRweDtcbn1cbi8qIGBjZW50ZXJlZGAg4oCUIHdpZGUtc2NyZWVuIG1vZGlmaWVyOiBwaG9uZSBrZWVwcyB0aGUgYm90dG9tIHNoZWV0LCB0YWJsZXQgZ2V0cyBhXG4gICBjZW50ZXJlZCBkaWFsb2csIGZyb20gdGhlIHNhbWUgZWxlbWVudC4gQmVsb3cgNzY4cHggdGhpcyBibG9jayBkb2VzIG5vdCBleGlzdCwgc28gYVxuICAgcGhvbmUgaXMgdW50b3VjaGVkLiA3NjhweCBpcyB0aGUgYnJlYWtwb2ludCB0aGUgUFdBIGRvY3VtZW50cyBtb2R1bGUgYWxyZWFkeSB1c2VzIGZvclxuICAgaXRzIHRhYmxldCBsYXlvdXQsIG5vdCBhIG5ldyBudW1iZXIuIFtLaW0gMzEuMDcuMjAyNl1cblxuICAgQ2VudGVyaW5nIGlzIGRvbmUgd2l0aCBhdXRvIGlubGluZSBtYXJnaW5zIGFuZCBhIGBib3R0b21gIG9mZnNldCwgZGVsaWJlcmF0ZWx5IE5PVFxuICAgd2l0aCB0cmFuc2Zvcm06IHRoZSBzd2lwZS10by1kaXNtaXNzIGhhbmRsZXIgd3JpdGVzIGBwYW5lbC5zdHlsZS50cmFuc2Zvcm0gPVxuICAgdHJhbnNsYXRlWSguLi4pYCBkdXJpbmcgYSBkcmFnIGFuZCBjbGVhcnMgaXQgb24gcmVsZWFzZSwgc28gYW55dGhpbmcgcGFya2VkIGluXG4gICB0cmFuc2Zvcm0gd291bGQgYmUgd2lwZWQgbWlkLWdlc3R1cmUuIFRoaXMgd2F5IHRoZSBvcGVuL2Nsb3NlIHNsaWRlIGFuZCB0aGUgZHJhZyBrZWVwXG4gICB3b3JraW5nIGV4YWN0bHkgYXMgdGhleSBkbyBvbiBhIHBob25lIOKAlCBkcmFnZ2luZyB0aGUgZGlhbG9nIGRvd24gc3RpbGwgY2xvc2VzIGl0LiAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy1jZW50ZXJlZCAuYnMtcGFuZWwge1xuICAgIG1heC13aWR0aDogNDIwcHg7XG4gICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICBib3R0b206IDd2aDtcbiAgICBib3JkZXItcmFkaXVzOiAzMnB4O1xuICAgIC8qIFNoYWRvdyBwb2ludHMgb3V0d2FyZCBvbiBhbGwgc2lkZXMgbm93IHRoYXQgaXQgZmxvYXRzLCBpbnN0ZWFkIG9mIHRoZVxuICAgICAgIHVwd2FyZC1vbmx5IHNoYWRvdyBvZiBhIHBhbmVsIGdsdWVkIHRvIHRoZSBib3R0b20gZWRnZS4gKi9cbiAgICBib3gtc2hhZG93OiAwIDE4cHggNTBweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xuICAgIG1heC1oZWlnaHQ6IDgwJTtcbiAgfVxufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctdGl0bGUge1xuICBmb250LXNpemU6IDIycHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZGlhbG9nLXRleHQge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTcwKTtcbiAgbWFyZ2luLXRvcDogMTJweDtcbiAgbWF4LXdpZHRoOiAzMjBweDtcbn1cbi8qIFRPTkVEIERJQUxPR1MgKHRvbmU9XCJkYW5nZXJcIiAvIHRvbmU9XCJzdWNjZXNzXCIpIOKAlCB0aGUgc2FtZSBkaWFsb2cgaW4gYSBkaWZmZXJlbnRcbiAgIG1lYW5pbmcuIEEgdG9uZSBpcyBhIE1FQU5JTkcsIG5vdCBhIGNvbG91ciBwaWNrZXI6IFwidGhpcyBjb3N0cyB5b3Ugc29tZXRoaW5nIHlvdSBjYW5ub3RcbiAgIGdldCBiYWNrXCIsIG9yIFwidGhpcyB3ZW50IHdlbGxcIi4gQW55dGhpbmcgZWxzZSBzdGF5cyB0aGUgcHVycGxlIGRpYWxvZy5cblxuICAgRXZlcnl0aGluZyBiZWxvdyB0aGlzIGNvbW1lbnQgZXhjZXB0IHRoZSB0d28gY29sb3VyIGJsb2NrcyBpcyBTSEFSRUQgYnkgYm90aCB0b25lcywgc29cbiAgIHRoZXkgY2Fubm90IGRyaWZ0IGFwYXJ0OiBmdWxsLXdoaXRlIHRleHQsIGEgMjhweCB0aXRsZSwgc3RhY2tlZCBidXR0b25zLlxuXG4gICBDT0xPVVJTICgwMy4wOS4yMDI2KTogS2ltJ3MgZXhhY3Qgc2V0IGZvciB0aGUgUHVsc2UgdmVyZGljdCBzaGVldHMsIGFzIGRlc2lnbiB0b2tlbnNcbiAgIC0tYy1kaWFsb2ctPHRvbmU+LXN1cmZhY2UgLyAtY2FyZCAvIC1idXR0b24gLyAtZ3JhYiwgc2hhcmVkIHdpdGggdGhlIHBvcG92ZXIgZGlhbG9nIGFuZFxuICAgdGhlIG9uLTx0b25lPi1zb2xpZCBidXR0b24gdHlwZXMgc28gZXZlcnkgdG9uZWQgZGlhbG9nIGlzIG9uZSBmYW1pbHkuIEEgdGhpcmQgdG9uZSxcbiAgIFwid2FybmluZ1wiIChvcmFuZ2UpLCB3YXMgYWRkZWQgZm9yIHRoZSBoYWxmLXJpZ2h0IHZlcmRpY3QuIFRleHQgc3RheXMgRlVMTCB3aGl0ZS4gS2ltXG4gICBtZWFzdXJlZCBhbmQgYWNjZXB0ZWQgdGhlIGNvbnRyYXN0IGFzLWlzIChncmVlbiBzdXJmYWNlIDIuNDoxIHVuZGVyIHRoZSAyOHB4IHRpdGxlLFxuICAgZ3JlZW4gY2FyZCA0LjE6MSB1bmRlciBib2R5IHRleHQpOyBkbyBub3QgXCJpbXByb3ZlXCIgdGhlc2Ugd2l0aG91dCBoZXIuIFRoZSBncmFiIGhhbmRsZVxuICAgaXMgbm93IGEgc29saWQgY29sb3VyIGZyb20gdGhlIHNldCwgbm8gbG9uZ2VyIGEgNDUlIHNoYWRlLiBbS2ltIDE4LjA4LjIwMjYgLyAwMy4wOS4yMDI2XSAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXZhcmlhbnQtZGlhbG9nLmJzLXRvbmUtZGFuZ2VyIC5icy1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLWRhbmdlci1zdXJmYWNlKTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LWRpYWxvZy5icy10b25lLWRhbmdlciAuYnMtZ3JhYiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLWRhbmdlci1ncmFiKTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LWRpYWxvZy5icy10b25lLXN1Y2Nlc3MgLmJzLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctc3VjY2Vzcy1zdXJmYWNlKTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy12YXJpYW50LWRpYWxvZy5icy10b25lLXN1Y2Nlc3MgLmJzLWdyYWIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy1zdWNjZXNzLWdyYWIpO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXZhcmlhbnQtZGlhbG9nLmJzLXRvbmUtd2FybmluZyAuYnMtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy13YXJuaW5nLXN1cmZhY2UpO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXZhcmlhbnQtZGlhbG9nLmJzLXRvbmUtd2FybmluZyAuYnMtZ3JhYiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLXdhcm5pbmctZ3JhYik7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS1kYW5nZXIgLmJzLWRpYWxvZy10aXRsZSxcbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy10b25lLWRhbmdlciAuYnMtZGlhbG9nLXRleHQsXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS1zdWNjZXNzIC5icy1kaWFsb2ctdGl0bGUsXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS1zdWNjZXNzIC5icy1kaWFsb2ctdGV4dCxcbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy10b25lLXdhcm5pbmcgLmJzLWRpYWxvZy10aXRsZSxcbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy10b25lLXdhcm5pbmcgLmJzLWRpYWxvZy10ZXh0IHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuLyogQmlnZ2VyIHRoYW4gdGhlIHB1cnBsZSBkaWFsb2cncyAyMnB4OiBhIHRvbmVkIGRpYWxvZyBoYXMgbm8gaWxsdXN0cmF0aW9uIGNvbXBldGluZyBmb3JcbiAgIGF0dGVudGlvbiwgc28gdGhlIHRpdGxlIGNhcnJpZXMgdGhlIHdlaWdodC4gMjhweCB1bnRpbCAwMy4wOS4yMDI2OyBLaW0ncyB2ZXJkaWN0LXNoZWV0XG4gICBkZXNpZ24gaGFzIGl0IGF0IDI0cHggbmV4dCB0byBhIDQwcHggaWNvbiwgYW5kIHNoZSBhc2tlZCBmb3IgZXhhY3RseSB0aGF0LiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtZGFuZ2VyIC5icy1kaWFsb2ctdGl0bGUsXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS1zdWNjZXNzIC5icy1kaWFsb2ctdGl0bGUsXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS13YXJuaW5nIC5icy1kaWFsb2ctdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG59XG4vKiBCdXR0b25zIFNUQUNLRUQsIGNhbmNlbCBvbiB0b3AsIGNvbmZpcm0gZnVsbCB3aWR0aCBiZWxvdy4gU2lkZSBieSBzaWRlIGdpdmVzIHRoZSB0d29cbiAgIGFuc3dlcnMgZXF1YWwgdmlzdWFsIHdlaWdodDsgc3RhY2tlZCBwdXRzIHRoZSBjb25zZXF1ZW5jZSB1bmRlciB5b3VyIHRodW1iIGFuZCBtYWtlcyBpdFxuICAgYSBkZWxpYmVyYXRlIHByZXNzLiBUaGUgcHVycGxlIGRpYWxvZyBrZWVwcyBpdHMgcm93LiBDYW5jZWwgY29tZXMgZmlyc3QgaW4gdGhlIERPTSwgc29cbiAgIHBsYWluIGBjb2x1bW5gIGFscmVhZHkgcHV0cyBpdCBvbiB0b3AuICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS1kYW5nZXIgLmJzLWRpYWxvZy1mb290ZXIsXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS1zdWNjZXNzIC5icy1kaWFsb2ctZm9vdGVyLFxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtd2FybmluZyAuYnMtZGlhbG9nLWZvb3RlciB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xufVxuXG4vKiBCYWRnZSDigJQgdGhlIGFsdGVybmF0aXZlIHRvIHRoZSBpbGx1c3RyYXRpb24sIGZvciBhIGRpYWxvZyB0aGF0IGhhcyB0byByZWFkIGFzIGEgc2lnbmFsXG4gICByYXRoZXIgdGhhbiBhIHNjZW5lLiBGcmVlLXN0YW5kaW5nIGJ5IGRlZmF1bHQgYW5kIGxhcmdlOyBgYmFkZ2UtY2lyY2xlYCBwdXRzIGl0IGluIGFcbiAgIGZpbGxlZCBkaXNjIGluc3RlYWQuIFRoZSBjaXJjbGUga2VlcHMgaXRzIG93biBzaXppbmcgc28gdGhlIGFydCBhbHdheXMgbGFuZHMgYXQgNTUlLiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1ib2R5LmJzLWRpYWxvZyA+IC5icy1kaWFsb2ctYmFkZ2Uge1xuICBmbGV4OiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiA0cHggYXV0byAxNnB4O1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1ib2R5LmJzLWRpYWxvZyA+IC5icy1kaWFsb2ctYmFkZ2UtY2lyY2xlIHtcbiAgLS1icy1iYWRnZS1zaXplOiA5NnB4O1xuICB3aWR0aDogdmFyKC0tYnMtYmFkZ2Utc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tYnMtYmFkZ2Utc2l6ZSk7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNDAwKTtcbn1cbi8qIFNhbWUgc2VsZWN0b3IgU0hBUEUgYXMgdGhlIGRlZmF1bHQgYWJvdmUsIG5vdCBhIHNob3J0ZXIgb25lOiB0aGUgZGVmYXVsdCBpcyBmb3VyXG4gICBjbGFzc2VzIGRlZXAgYW5kIGEgcGxhaW4gYC5icy10b25lLWRhbmdlciAuYnMtZGlhbG9nLWJhZGdlLWNpcmNsZWAgbG9zZXMgdGhlXG4gICBzcGVjaWZpY2l0eSByYWNlLCB3aGljaCBsZWZ0IHRoZSBiYWRnZSBwdXJwbGUgb24gYSByZWQgc2hlZXQgdGhlIGZpcnN0IHRpbWUuICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS1kYW5nZXIgLmJzLWJvZHkuYnMtZGlhbG9nID4gLmJzLWRpYWxvZy1iYWRnZS1jaXJjbGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy1kYW5nZXItY2FyZCk7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS1zdWNjZXNzIC5icy1ib2R5LmJzLWRpYWxvZyA+IC5icy1kaWFsb2ctYmFkZ2UtY2lyY2xlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctc3VjY2Vzcy1jYXJkKTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy10b25lLXdhcm5pbmcgLmJzLWJvZHkuYnMtZGlhbG9nID4gLmJzLWRpYWxvZy1iYWRnZS1jaXJjbGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy13YXJuaW5nLWNhcmQpO1xufVxuLyogRnJlZS1zdGFuZGluZyBhcnQgaXMgcm91Z2hseSB0d2ljZSB0aGUgc2l6ZSBpdCBpcyBpbnNpZGUgYSBjaXJjbGUuIEJvdGggdGhlIGxvdHRpZVxuICAgZWxlbWVudCBhbmQgdGhlIGljb24gbGFuZCBvbiB0aGlzIGNsYXNzOyBxZG5hcHJvLWxvdHRpZSBzaXplcyBmcm9tIC0tcWwtc2l6ZSwgYW5kIHRoZVxuICAgaWNvbiBpcyBjYXBwZWQgaGVyZSB0b28gc28gYSB3cm9uZyBzaXplIGF0dHJpYnV0ZSBjYW5ub3QgYmxvdyB0aGUgbGF5b3V0IG9wZW4uICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWRpYWxvZy1iYWRnZS1hcnQge1xuICAtLXFsLXNpemU6IDg4cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogODhweDtcbiAgaGVpZ2h0OiA4OHB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWRpYWxvZy1iYWRnZS1jaXJjbGUgLmJzLWRpYWxvZy1iYWRnZS1hcnQge1xuICAtLXFsLXNpemU6IGNhbGModmFyKC0tYnMtYmFkZ2Utc2l6ZSkgKiAwLjU1KTtcbiAgd2lkdGg6IGNhbGModmFyKC0tYnMtYmFkZ2Utc2l6ZSkgKiAwLjU1KTtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLWJzLWJhZGdlLXNpemUpICogMC41NSk7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS1kYW5nZXIgLmJzLWRpYWxvZy1iYWRnZS1jaXJjbGUgLmJzLWRpYWxvZy1iYWRnZS1hcnQsXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS1zdWNjZXNzIC5icy1kaWFsb2ctYmFkZ2UtY2lyY2xlIC5icy1kaWFsb2ctYmFkZ2UtYXJ0LFxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtd2FybmluZyAuYnMtZGlhbG9nLWJhZGdlLWNpcmNsZSAuYnMtZGlhbG9nLWJhZGdlLWFydCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cblxuLyogQ29uc3VtZXIgYm9keSBjb250ZW50IChzdGF0IHJvd3MsIGEgbm90aWNlIGxpbmUsIGV0Yy4pIHNpdHMgYmVsb3cgdGhlIGlsbHVzdHJhdGlvbi9cbiAgIHRpdGxlL3RleHQuIFRoZSBkaWFsb2cgYm9keSBjZW50ZXJzIGl0cyBidWlsdC1pbnM7IHRoaXMgd3JhcHBlciBzdHJldGNoZXMgZnVsbC13aWR0aFxuICAgYW5kIGxlZnQtYWxpZ25zIHNvIGN1c3RvbSByb3dzIGFyZW4ndCBzaHJpbmstd3JhcHBlZCBvciBjZW50ZXJlZC4gW0tpbSAxNS4wNy4yMDI2XSAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1ib2R5LmJzLWRpYWxvZyA+IC5icy1kaWFsb2ctY29udGVudCB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMnB4O1xuICBmbGV4LXNocmluazogMDtcbiAgLyogVGhlIGZvb3RlciBzaXRzIE9VVFNJREUgLmJzLWJvZHksIHNvIGl0IGRvZXNuJ3QgaW5oZXJpdCB0aGUgYm9keSdzIGJvdHRvbVxuICAgICBicmVhdGhpbmcgcm9vbSDigJQgZ2l2ZSBpdCB0aGUgc2FtZSAyNHB4ICsgc2FmZS1hcmVhIHNvIHRoZSBidXR0b25zIGRvbid0IGdsdWVcbiAgICAgdG8gdGhlIHBhbmVsIGVkZ2UuIFtLaW0gMTUuMDcuMjAyNl1cblxuICAgICBUaGUgaG9yaXpvbnRhbCAxNnB4IHdhcyBhZGRlZCAxOC4wOC4yMDI2LiBUaGUgcGFuZWwncyBvd24gLS1icy1wYWQteCBpcyA4cHgsXG4gICAgIHR1bmVkIGZvciBidXR0b24tUk9XIHNoZWV0cyB3aGVyZSBhbiBvcHRpb24gcm93IGlzIHN1cHBvc2VkIHRvIHJ1biBuZWFybHkgZWRnZVxuICAgICB0byBlZGdlLiBBIGRpYWxvZydzIGZvb3RlciBpcyBub3QgYSByb3cgb2Ygb3B0aW9ucywgaXQgaXMgdHdvIGJ1dHRvbnMsIGFuZCBvbmVcbiAgICAgb2YgdGhlbSBpcyBhIHNvbGlkIGZpbGw6IGF0IDhweCBpdCByZWFkcyBhcyBnbHVlZCB0byB0aGUgcGFuZWwgZWRnZS4gTWVhc3VyZWRcbiAgICAgaWRlbnRpY2FsbHkgb24gdGhlIHB1cnBsZSBkaWFsb2csIHNvIHRoaXMgaXMgbm90IGEgZGFuZ2VyLXRvbmUgcHJvYmxlbSBhbmQgdGhlXG4gICAgIGZpeCBiZWxvbmdzIG9uIGJvdGguIDggKyAxNiA9IDI0cHgsIG1hdGNoaW5nIHRoZSBmb290ZXIncyBvd24gdmVydGljYWwgcmh5dGhtLiAqL1xuICBwYWRkaW5nOiAyMHB4IDE2cHggY2FsYygyNHB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCkpO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctZm9vdGVyIHFkbmFwcm8tYnV0dG9uIHtcbiAgZmxleDogMTtcbn1cbi8qIFRoZSBkaWFsb2cgdmFyaWFudCBpcyBhbHdheXMtcHVycGxlOyBldmVyeSBPVEhFUiB2YXJpYW50IGtlZXBzIHRoZSBiYXNlIHdoaXRlIGNhcmQuXG4gICBDb21iaW5pbmcgZGlhbG9nIHdpdGggcHVycGxlL2dsYXNzL3JlYWRpbmcgaXMgbm90IHN1cHBvcnRlZCDigJQgdmFyaWFudCBpcyBhIHNpbmdsZVxuICAgdmFsdWUgKHNhbWUgbGltaXRhdGlvbiB0aGUgcmVhZGluZyB2YXJpYW50IGFscmVhZHkgaGFzKS4gKi9cblxuLyog4pSA4pSAIFRvcCBwbGFjZW1lbnQgKHBsYWNlbWVudD1cInRvcFwiKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIFRoZSBTQU1FIHNoZWV0LCBoaW5nZWQgb24gdGhlIFRPUCBlZGdlOiBhIHF1aWNrLCBsb3ctY29tbWl0bWVudCBvcHRpb25zIG1lbnUgdGhhdFxuICAgZHJvcHMgZG93biBmcm9tIHVuZGVyIHRoZSBoZWFkZXIgaXRzIHRyaWdnZXIgc2l0cyBpbiAoT3V0bG9vaydzIGNhbGVuZGFyIHZpZXctXG4gICBzd2l0Y2hlciBpcyB0aGUgcmVmZXJlbmNlKS4gQSBib3R0b20gc2hlZXQgaXMgdGhlIGludHJ1c2l2ZSBvbmUgdGhhdCB0YWtlcyBvdmVyIHRoZVxuICAgc2NyZWVuOyB0aGlzIGlzIHRoZSBsaWdodCBvbmUgZm9yIGEgaGFuZGZ1bCBvZiBvcHRpb25zLiBbS2ltIDI5LjA3LjIwMjZdXG5cbiAgIE9OTFkgZ2VvbWV0cnkgKyBkaXJlY3Rpb24gZmxpcCBoZXJlIOKAlCB0aGUgc3VyZmFjZSB2YXJpYW50cyAocHVycGxlIC8gZ2xhc3MgL1xuICAgcmVhZGluZykgYXJlIHVudG91Y2hlZCBhbmQgY29tYmluZSBmcmVlbHkuIEhvcml6b250YWwgcGFkZGluZyBpcyBkZWxpYmVyYXRlbHkgbGVmdFxuICAgdG8gdGhlIGJhc2UgKDhweCkgb3IgdGhlIHJlYWRpbmcgdmFyaWFudCAoMTZweCk7IG9ubHkgdGhlIHZlcnRpY2FsIHBhZGRpbmcgY2hhbmdlcyxcbiAgIGJlY2F1c2UgdGhlIGdyYWItaGFuZGxlIG1vdmVkIG91dCBvZiB0aGUgdG9wLlxuXG4gICAtLWJzLXRvcCBpcyBzZXQgaW5saW5lIGJ5IF9hcHBseVRvcE9mZnNldCgpOiB0aGUgYGFuY2hvcmAgZWxlbWVudCdzIGJvdHRvbSBlZGdlLCBvclxuICAgdGhlIGxpdGVyYWwgYG9mZnNldC10b3BgLiBBYnNlbnQg4oaSIGhhbmcganVzdCBiZWxvdyB0aGUgbm90Y2guICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtcGxhY2VtZW50LXRvcCAuYnMtcGFuZWwge1xuICB0b3A6IHZhcigtLWJzLXRvcCwgZW52KHNhZmUtYXJlYS1pbnNldC10b3AsIDBweCkpO1xuICBib3R0b206IGF1dG87XG4gIC8qIEhlaWdodCBmb2xsb3dzIHRoZSBjb250ZW50OyB0aGlzIGNhcCBvbmx5IGJpdGVzIG9uIGEgbG9uZyBsaXN0IChhbmQgZ2l2ZXMgYmFja1xuICAgICB3aGF0ZXZlciB0aGUgaGVhZGVyIGFib3ZlIGFscmVhZHkgdG9vaykuICovXG4gIG1heC1oZWlnaHQ6IGNhbGMoODYlIC0gdmFyKC0tYnMtdG9wLCAwcHgpKTtcbiAgLyogU3F1YXJlLCBOT1Qgcm91bmRlZCDigJQgdGhlIE91dGxvb2sgcmVmZXJlbmNlOiB0aGUgdG9wIHNoZWV0IHJ1bnMgdGhlIHBhbmVsXG4gICAgIHN0cmFpZ2h0IGludG8gdGhlIGhlYWRlciBpdCBoYW5ncyBmcm9tLCBubyBjb3JuZXIgcmFkaXVzIGF0IGFsbC4gVGhpcyBpcyB0aGVcbiAgICAgREVGQVVMVCBmb3IgdGhlIHRvcCBzaGVldCAobm90IGFuIGF0dHJpYnV0ZSk6IGl0IGhhcyBubyBvdGhlciBjb25zdW1lcnMgeWV0XG4gICAgIHRoYW4gdGhlIHR3byBhZ2VuZGEgbWVudXMsIGFuZCBmbHVzaCBjb3JuZXJzIGFyZSB0aGUgaW50ZW5kZWQgbG9vay4gVGhlXG4gICAgIGJvdHRvbSBzaGVldCdzIG93biByb3VuZGluZyAoMzJweCAzMnB4IDAgMCwgYWJvdmUpIGlzIHVudG91Y2hlZC4gW0tpbSAyOS4wNy4yMDI2XSAqL1xuICBib3JkZXItcmFkaXVzOiAwO1xuICAvKiBTaGFkb3cgZmFsbHMgRE9XTldBUkQsIGF3YXkgZnJvbSB0aGUgZWRnZSBpdCBoYW5ncyBvbi4gKi9cbiAgYm94LXNoYWRvdzogMCAxMHB4IDM0cHggcmdiYSgwLCAwLCAwLCAwLjE2KTtcbiAgLyogUGFya2VkIGJlaGluZCBpdHMgb3duIGVkZ2Ugd2hpbGUgY2xvc2VkIChiYXNlIHNoZWV0IHVzZXMgKzEwMCUpLiAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICBwYWRkaW5nLXRvcDogMTZweDtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy1wbGFjZW1lbnQtdG9wLmlzLW9wZW4gLmJzLXBhbmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuLyogVGhlIHNjcmltIG11c3Qgc3RhcnQgd2hlcmUgdGhlIHBhbmVsIHN0YXJ0cywgTk9UIGNvdmVyIHRoZSB3aG9sZSBzY3JlZW4gKHRoZSBiYXNlXG4gICAuYnMtc2NyaW0gYWJvdmUgaXMgaW5zZXQ6MCBmb3IgdGhlIGJvdHRvbSBzaGVldCwgd2hpY2ggcGlucyB0aGUgc2NyaW0gdW5kZXIgdGhlXG4gICBmdWxsIHZpZXdwb3J0IGluY2x1ZGluZyBhbnkgaGVhZGVyIHRoZSBzaGVldCBoYW5ncyBmcm9tKS4gRml4IGxpdmVzIEhFUkUsIGF0IHRoZVxuICAgc291cmNlLCByYXRoZXIgdGhhbiB0aGUgY29uc3VtZXIgcmVhY2hpbmcgZm9yIGEgei1pbmRleCB3YXIgaXQgY2FuJ3Qgd2luOiBhIGhlYWRlclxuICAgbGl2aW5nIGluc2lkZSBpdHMgb3duIHN0YWNraW5nLWNvbnRleHQgYW5jZXN0b3IgY2FuIG5ldmVyIG91dC1zdGFjayBhIHNjcmltXG4gICBwb3J0YWxsZWQgc3RyYWlnaHQgb250byA8Ym9keT4sIG5vIG1hdHRlciB3aGF0IHotaW5kZXggaXQncyBnaXZlbi4gU3RhcnRpbmcgdGhlXG4gICBzY3JpbSBpdHNlbGYgYXQgLS1icy10b3AgbWVhbnMgdGhlIGhlYWRlciBzaW1wbHkgZmFsbHMgT1VUU0lERSB0aGUgZGltbWVkIGFyZWEg4oCUXG4gICBubyB6LWluZGV4IG5lZWRlZCBhbnl3aGVyZS4gU2FtZSBmYWxsYmFjayBjaGFpbiBhcyB0aGUgcGFuZWwncyBvd24gYHRvcGAgYWJvdmUuXG4gICBDb25zZXF1ZW5jZTogYSB0YXAgb24gdGhlIGhlYWRlciBubyBsb25nZXIgY2xvc2VzIHRoZSBzaGVldCAoaXQncyBvdXRzaWRlIHRoZVxuICAgc2NyaW0pIOKAlCBpbnRlbmRlZCBmb3IgdGhpcyBwYXR0ZXJuLCB0aGUgaGVhZGVyIHN0YXlzIHVzYWJsZTsgc2NyaW0tdGFwLCBFc2MgYW5kXG4gICB0aGUgaGFuZGxlIHJlbWFpbiB0aGUgd2F5cyB0byBkaXNtaXNzLiBbS2ltIDI5LjA3LjIwMjZdICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtcGxhY2VtZW50LXRvcCAuYnMtc2NyaW0ge1xuICB0b3A6IHZhcigtLWJzLXRvcCwgZW52KHNhZmUtYXJlYS1pbnNldC10b3AsIDBweCkpO1xufVxuLyogQ29tZSBvdXQgZnJvbSBVTkRFUiB0aGUgaGVhZGVyLCBuZXZlciBPVkVSIGl0IChLaW0gMjkuMDcuMjAyNjogXCJ2b2VsdCB2ZWVsXG4gICBuYXR1dXJsaWprZXJcIikuIFRoZSBwYW5lbCBvcGVucyBieSBzbGlkaW5nIGRvd24gZnJvbSB0cmFuc2xhdGVZKC0xMDAlKSwgd2hpY2hcbiAgIHBhcmtzIGl0IG9uZSBwYW5lbC1oZWlnaHQgQUJPVkUgaXRzIG93biB0b3AgZWRnZSDigJQgc3RyYWlnaHQgb24gdG9wIG9mIHRoZSBoZWFkZXJcbiAgIGl0IGlzIHN1cHBvc2VkIHRvIGhhbmcgdW5kZXIsIGFuZCBpdCBwYWludHMgdGhlcmUgYmVjYXVzZSB0aGUgc2hlZXQgc2l0cyBvblxuICAgPGJvZHk+LiBDbGlwcGluZyB0aGUgSE9TVCBhdCAtLWJzLXRvcCBraWxscyB0aGF0IG92ZXJsYXAgZm9yIGdvb2Q6IHRoZSBob3N0IGlzXG4gICBhbHJlYWR5IGBwb3NpdGlvbjogZml4ZWQ7IGluc2V0OiAwYCwgc28gaXRzIGJveCBJUyB0aGUgdmlld3BvcnQgYW5kIHRoaXMgY2xpcCBpc1xuICAgaW4gdmlld3BvcnQgY29vcmRpbmF0ZXMsIHdoaWNoIG1lYW5zIE5PVEhJTkcgYWJvdXQgdGhlIHBhbmVsJ3Mgb3Igc2NyaW0ncyBvd25cbiAgIGdlb21ldHJ5IGhhcyB0byBjaGFuZ2UuIEl0IGFsc28gZml4ZXMgdGhlIHNhbWUgb3ZlcmxhcCB3aGlsZSBEUkFHR0lORyB0aGUgc2hlZXRcbiAgIGNsb3NlZCBieSBoYW5kLCB3aGljaCBhIHJldmVhbC1hbmltYXRpb24gb24gdGhlIHBhbmVsIGFsb25lIHdvdWxkIG5vdC5cbiAgIFRoZSBzY3JpbSBydWxlIGFib3ZlIHN0YXlzIGFzIGEgYmVsdC1hbmQtYnJhY2VzOiBpZiBjbGlwLXBhdGggZXZlciBmYWlscywgdGhlXG4gICBoZWFkZXIgc3RpbGwgaXMgbm90IGRpbW1lZC4gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy1wbGFjZW1lbnQtdG9wIHtcbiAgY2xpcC1wYXRoOiBpbnNldCh2YXIoLS1icy10b3AsIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wLCAwcHgpKSAwIDAgMCk7XG59XG4vKiBEcm9wIHRoZSBwYW5lbCdzIG93biBjb21wb3NpdGluZyBoaW50IGZvciB0b3AgcGxhY2VtZW50LiBgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybWBcbiAgIHByb21vdGVzIGl0IHRvIGl0cyBvd24gR1BVIGxheWVyLCBhbmQgYSBjb21wb3NpdGVkIGxheWVyIGlzIGV4YWN0bHkgdGhlIGNhc2Ugd2hlcmVcbiAgIGlPUyBXS1dlYlZpZXcgaGFzIGhpc3RvcmljYWxseSBlc2NhcGVkIGFuIGFuY2VzdG9yJ3MgY2xpcC1wYXRoIOKAlCB3aGljaCB3b3VsZCBicmluZ1xuICAgdGhlIG92ZXJsYXAgcmlnaHQgYmFjayBvbiB0aGUgb25lIHBsYXRmb3JtIHRoYXQgbWF0dGVycyBtb3N0IGhlcmUuIFRoZSBzbGlkZSBpcyBhXG4gICBzaW5nbGUgc2hvcnQgdHJhbnNmb3JtIG9uIGEgc21hbGwgcGFuZWwsIHNvIGl0IGRvZXMgbm90IG5lZWQgdGhlIGhpbnQuICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtcGxhY2VtZW50LXRvcCAuYnMtcGFuZWwge1xuICB3aWxsLWNoYW5nZTogYXV0bztcbn1cbi8qIEdyYWItaGFuZGxlIHRvIHRoZSBCT1RUT00gb2YgdGhlIHBhbmVsIHZpYSBmbGV4IG9yZGVyIE9OTFkg4oCUIHRoZSBET00gc3RheXMgYXNcbiAgIHJlbmRlcmVkLCBzbyByZW5kZXIoKSBhbmQgdGhlIHBvaW50ZXItZHJhZyBiaW5kaW5nIHJlbWFpbiBzaGFyZWQgd2l0aCB0aGUgYm90dG9tXG4gICBzaGVldC4gRXZlcnkgb3RoZXIgcGFuZWwgY2hpbGQga2VlcHMgb3JkZXI6MCwgaGVuY2UgaXRzIERPTSBvcmRlciAoaGVhZGVyLCBib2R5LFxuICAgYW5kIHRoZSBkaWFsb2cgZm9vdGVyIGlmIHRoZXJlIGlzIG9uZSkuICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtcGxhY2VtZW50LXRvcCAuYnMtaGFuZGxlLXpvbmUge1xuICBvcmRlcjogOTtcbiAgcGFkZGluZzogMTZweCAwIDEycHg7XG59XG4vKiBObyBob21lLWluZGljYXRvciB0byBjbGVhciB1cCBoZXJlIOKAlCB0aGUgaGFuZGxlLXpvbmUgdW5kZXJuZWF0aCBpcyB0aGUgYnJlYXRoaW5nXG4gICByb29tLCBzbyBkcm9wIHRoZSBiYXNlJ3MgMjRweCArIHNhZmUtYXJlYS1pbnNldC1ib3R0b20uICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtcGxhY2VtZW50LXRvcCAuYnMtYm9keSB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4vKiDilIDilIAgbm8taGFuZGxlIChib29sZWFuIGF0dHIpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgSGlkZXMgdGhlIGdyYWIgaGFuZGxlIGVudGlyZWx5IOKAlCBPdXRsb29rIGhhcyBub25lIG9uIGl0cyBjYWxlbmRhciBxdWljayBtZW51cyxcbiAgIGZpcnN0IHJlcXVlc3RlZCBmb3IgdGhlIGFnZW5kYSB0b3Agc2hlZXRzLiBLZXB0IGFzIGEgQ0xBU1Mgb24gdGhlIGhvc3QgKHNhbWVcbiAgIHBhdHRlcm4gYXMgYnMtcGxhY2VtZW50LXRvcCAvIGJzLXZhcmlhbnQtcHVycGxlKSwgYW5kIHRoZSBoYW5kbGUtem9uZSBlbGVtZW50XG4gICBzdGF5cyBpbiB0aGUgRE9NIChkaXNwbGF5Om5vbmUgb25seSk6IHRoZSBwb2ludGVyLWRyYWcgbGlzdGVuZXIgYmluZHMgdG9cbiAgIC5icy1oYW5kbGUtem9uZSBpbiB0aGUgSlMgYW5kIHdvdWxkIHRocm93IG9uIG51bGwgaWYgaXQgd2VyZSByZW1vdmVkLiBbS2ltIDI5LjA3LjIwMjZdICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtbm8taGFuZGxlIC5icy1oYW5kbGUtem9uZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBUaGUgaGFuZGxlLXpvbmUgZG91YmxlZCBhcyB0aGlzIGVkZ2UncyBicmVhdGhpbmcgcm9vbSDigJQgaGlkaW5nIGl0IHdvdWxkIG90aGVyd2lzZVxuICAgZ2x1ZSB0aGUgYWRqYWNlbnQgY29udGVudCBzdHJhaWdodCB0byB0aGUgcGFuZWwgZWRnZSwgc28gZ2l2ZSB0aGUgc3BhY2UgYmFjazpcbiAgIC0gYm90dG9tIHBsYWNlbWVudDogdGhlIHpvbmUgc2l0cyBBQk9WRSB0aGUgaGVhZGVyL2JvZHkgKHBhbmVsJ3MgdG9wIGVkZ2UpIOKGkiBwYWRcbiAgICAgdGhlIHBhbmVsJ3MgdG9wLlxuICAgLSB0b3AgcGxhY2VtZW50OiB0aGUgem9uZSBzaXRzIEJFTE9XIHRoZSBib2R5IChmbGV4IG9yZGVyOjkgYWJvdmUsIHBhbmVsJ3MgYm90dG9tXG4gICAgIGVkZ2UpIOKGkiBwYWQgdGhlIGJvZHkncyBib3R0b20sIHNvIHRoZSBsYXN0IG9wdGlvbiByb3cga2VlcHMgaXRzIGJyZWF0aGluZyByb29tLiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLW5vLWhhbmRsZTpub3QoLmJzLXBsYWNlbWVudC10b3ApIC5icy1wYW5lbCB7XG4gIHBhZGRpbmctdG9wOiAxNnB4O1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXBsYWNlbWVudC10b3AuYnMtbm8taGFuZGxlIC5icy1ib2R5IHtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XG59XG5cbi8qIEV4cGxhaW5lciBcImJ1bGxldFwiIHJvdzogW2ljb24vYmFkZ2VdICsgd2hpdGUgdGV4dCwgdXNlZCBpbnNpZGUgLmJzLWRpYWxvZy1jb250ZW50XG4gICBmb3IgdGhpbmdzIGxpa2UgXCJ3aGF0IGRvZXMgdGhpcyBiYWRnZSBtZWFuXCIgKFBXQSBkb2N1bWVudHMgYmFkZ2UtaW5mbyBkaWFsb2csXG4gICAyOC4wNy4yMDI2KS4gTk9UIGEgbmV3IGNvbXBvbmVudCDigJQganVzdCBhIGNvbnN1bWVyLXNpZGUgcm93IHdyYXBwaW5nIHdoYXRldmVyIGljb25cbiAgIHRoZSBjb25zdW1lciBwYXNzZXMgKGUuZy4gPHFkbmFwcm8tc3RhdHVzLWJhZGdlIGZhdm9yaXRlIHNpemU9XCJzbWFsbFwiPikgcGx1cyBhIHRleHRcbiAgIG5vZGUuIFNBTUUgY2xhc3MgbmFtZSArIHJ1bGUgYXMgdGhlIHBvcG92ZXIncyBkaWFsb2ctYXJyb3cgY291bnRlcnBhcnQgKHNlZVxuICAgX3BvcG92ZXIuc2Nzcykgc28gYSBzaGVldCBvbiBwaG9uZSBhbmQgYSBwb3BvdmVyIG9uIHRhYmxldCByZW5kZXIgYnl0ZS1pZGVudGljYWxcbiAgIGNvbnRlbnQuIFRoZSBpY29uIGFsaWducyB0byB0aGUgVE9QIG9mIHRoZSB0ZXh0IGJsb2NrIChmbGV4LXN0YXJ0KSByYXRoZXIgdGhhbiBhXG4gICBzdHJpY3QgdHlwb2dyYXBoaWMgYmFzZWxpbmUg4oCUIHRoZSBpY29uIGhlcmUgaXMgYSBzdGF0dXMtYmFkZ2UgcGlsbCwgbm90IGEgZ2x5cGgsIHNvXG4gICB0aGVyZSBpcyBubyBzaW5nbGUgYmFzZWxpbmUgdG8gaG9vayBpbnRvOyB0b3AtYWxpZ25pbmcgaXMgdGhlIGNsb3Nlc3QgbWF0Y2ggdG9cbiAgIFwiaWNvbiBuZXh0IHRvIHRoZSBmaXJzdCB0ZXh0IGxpbmVcIiB3aGVuIHRoZSB0ZXh0IGNhbiB3cmFwIHRvIDIgbGluZXMuICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctYnVsbGV0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMTJweDtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUtOTAsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1idWxsZXQgKyAuYnMtZGlhbG9nLWJ1bGxldCB7XG4gIG1hcmdpbi10b3A6IDE0cHg7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctYnVsbGV0ID4gcWRuYXByby1zdGF0dXMtYmFkZ2Uge1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLyog4pSA4pSAIFRpdGxlIGFydCAodGl0bGUtbG90dGllIC8gdGl0bGUtbG90dGllLW5hbWUgLyB0aXRsZS1pY29uKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIEEgU01BTEwgYW5pbWF0ZWQgZ2x5cGggcmlnaHQgbmV4dCB0byB0aGUgaGVhZGluZywgYXMgb24gdGhlIFB1bHNlIHZlcmRpY3Qgc2hlZXRzXG4gICAoXCJDb3JyZWN0IVwiICsgYSBjaGVjaykuIFRoZSB0aXRsZSByb3cgY2VudHJlcyB0ZXh0ICsgYXJ0IHRvZ2V0aGVyOyB0aGUgYXJ0IGlzIDQwcHhcbiAgIChLaW0ncyBkZXNpZ246IDI0cHggdGl0bGUsIDQweDQwIGljb24pLiBUaGUgTG90dGllIGxvb3BzIHdoaWxlIHRoZSBzaGVldCBpcyBvcGVuIC0gYVxuICAgc2luZ2xlIHBsYXkgZmluaXNoZWQgZHVyaW5nIHRoZSBzbGlkZS1pbiBhbmQgS2ltIHNhdyBhIHN0aWxsIGljb24uIFtLaW0gMDMuMDkuMjAyNl0gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZGlhbG9nLXRpdGxlLXdpdGgtYXJ0IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDEycHg7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWRpYWxvZy10aXRsZS1hcnQge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctdGl0bGUtbG90dGllIHtcbiAgLS1xbC1zaXplOiA0MHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZGlhbG9nLXRpdGxlLWljb24ge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG5cbi8qIOKUgOKUgCBGbG9hdCBzbG90IChzbG90PVwiZmxvYXRcIikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICBDaGlsZHJlbiBtYXJrZWQgc2xvdD1cImZsb2F0XCIgYXJlIHBhcmtlZCBoZXJlLCBBQk9WRSB0aGUgcGFuZWwncyB0b3AgZWRnZSwgcmlnaHQtYWxpZ25lZFxuICAgYW5kIDE0cHggY2xlYXIgb2YgaXQgKEtpbSdzIGRlc2lnbjogdGhlIHBvaW50cyBwaWxsIHNpdHMgaW4gdGhlIGdhcCBiZXR3ZWVuIHRoZSBjYXJkXG4gICBwaG90byBhbmQgdGhlIHNoZWV0KS4gQWJzb2x1dGUgaW5zaWRlIHRoZSBmaXhlZCBwYW5lbCwgc28gaXQgdHJhdmVscyB3aXRoIHRoZSBzbGlkZS1pblxuICAgYW5kIHdpdGggYSBzd2lwZS1kb3duLiBwb2ludGVyLWV2ZW50cyBvZmY6IGl0IGlzIGEgbGFiZWwsIG5vdCBhIGNvbnRyb2wsIGFuZCBtdXN0IG5vdFxuICAgYmxvY2sgdGhlIHNjcmltIGJlaGluZCBpdC4gVGhlIHBhbmVsIGhhcyBubyBvdmVyZmxvdyBjbGlwcGluZyAob25seSAuYnMtYm9keSBzY3JvbGxzKSxcbiAgIHNvIG5vdGhpbmcgaGVyZSBpcyBjdXQgb2ZmLiBbS2ltIDAzLjA5LjIwMjZdICovXG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWZsb2F0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTBweDtcbiAgYm90dG9tOiBjYWxjKDEwMCUgKyAxNHB4KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLyogVGhlIHBpbGw6IHRoZSB0b25lJ3MgU1VSRkFDRSBjb2xvdXIsIHNvIGl0IHJlYWRzIGFzIGEgcGllY2Ugb2YgdGhlIHNoZWV0IGZsb2F0aW5nIGZyZWUuXG4gICA0OXB4IHRhbGwgbGlrZSB0aGUgZGVzaWduLCBmdWxsIHJhZGl1cywgd2hpdGUgYm9sZCAyMHB4LiBUaGUgcHVycGxlIGRpYWxvZyBnZXRzIHRoZVxuICAgcHVycGxlIHN1cmZhY2UgZm9yIHRoZSBzYW1lIHJlYXNvbi4gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtcGlsbCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgaGVpZ2h0OiA0OXB4O1xuICBwYWRkaW5nOiAwIDE4cHggMCAxNHB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwsIDk5OXB4KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtZGFuZ2VyIC5icy1waWxsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctZGFuZ2VyLXN1cmZhY2UpO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtc3VjY2VzcyAuYnMtcGlsbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLXN1Y2Nlc3Mtc3VyZmFjZSk7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS13YXJuaW5nIC5icy1waWxsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctd2FybmluZy1zdXJmYWNlKTtcbn1cblxuLyog4pSA4pSAIFZlcmRpY3QgY2FyZHMgKC5icy1kaWFsb2ctY2FyZCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICBPbmUgcm91bmRlZCBibG9jayBwZXIgYW5zd2VyIG9wdGlvbiBvbiBhIHRvbmVkIGRpYWxvZzogYSBib2xkIGhlYWQgKHZlcmRpY3QgaWNvbiArXG4gICBvcHRpb24gdGV4dCkgYW5kIHRoZSBleHBsYW5hdGlvbiB1bmRlciBpdCwgd2hpdGUgb24gdGhlIHRvbmUncyBDQVJEIGNvbG91ciAodGhlIGRhcmtlclxuICAgZmlsbCBmcm9tIEtpbSdzIHNldCkuIGRhdGEtdmVyZGljdD1cInJpZ2h0fHdyb25nXCIgcGlja3MgdGhlIGljb24gLSBLaW0ncyBvd24gY2hlY2sgYW5kXG4gICBjcm9zcyBTVkdzLCBpbmxpbmVkIHNvIHRoZXkgYXJlIHRoZXJlIG9mZmxpbmUgLSBhbmQsIG9uIHRoZSB3YXJuaW5nIHRvbmUgb25seSwgYVxuICAgc2xpZ2h0bHkgcmVkZGVyIGZpbGwgZm9yIGEgd3Jvbmcgb3B0aW9uIChkZXNpZ24gY2hvaWNlLCBzZWUgdGhlIHRva2VucykuIExpdmVzIGluc2lkZVxuICAgLmJzLWRpYWxvZy1jb250ZW50IGxpa2UgdGhlIGJ1bGxldCByb3dzOyA4cHggYmV0d2VlbiBjYXJkcyBhcyBpbiB0aGUgZGVzaWduLiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWNhcmQge1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiAxNHB4IDEycHggMTZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjc1O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWNhcmQgKyAuYnMtZGlhbG9nLWNhcmQge1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZC1oZWFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZC1pY29uIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiAyMXB4O1xuICBoZWlnaHQ6IDIxcHg7XG4gIGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXIgLyBjb250YWluO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWNhcmRbZGF0YS12ZXJkaWN0PVwicmlnaHRcIl0gLmJzLWRpYWxvZy1jYXJkLWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScyMScgaGVpZ2h0PScyMScgdmlld0JveD0nMCAwIDIxIDIxJyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMTAuNDQxMyAyMC4wOTg2QzE1Ljc3NDcgMjAuMDk4NiAyMC4wOTg0IDE1Ljc3NSAyMC4wOTg0IDEwLjQ0MTVDMjAuMDk4NCA1LjEwODA1IDE1Ljc3NDcgMC43ODQ0MjQgMTAuNDQxMyAwLjc4NDQyNEM1LjEwNzgxIDAuNzg0NDI0IDAuNzg0MTggNS4xMDgwNSAwLjc4NDE4IDEwLjQ0MTVDMC43ODQxOCAxNS43NzUgNS4xMDc4MSAyMC4wOTg2IDEwLjQ0MTMgMjAuMDk4NlonIGZpbGw9JyUyMzU4Qjk5MicvJTNFJTNDcGF0aCBkPSdNMTAuNDQxNCAyMC44ODI4QzQuNjg0IDIwLjg4MjggMCAxNi4xOTg4IDAgMTAuNDQxNEMwIDQuNjg0IDQuNjg0IDAgMTAuNDQxNCAwQzE2LjE5ODggMCAyMC44ODI4IDQuNjg0IDIwLjg4MjggMTAuNDQxNEMyMC44ODI4IDE2LjE5ODggMTYuMTk4OCAyMC44ODI4IDEwLjQ0MTQgMjAuODgyOFpNMTAuNDQxNCAxLjU2ODYzQzUuNTQ4OTQgMS41Njg2MyAxLjU2ODYzIDUuNTQ4OTQgMS41Njg2MyAxMC40NDE0QzEuNTY4NjMgMTUuMzMzOSA1LjU0ODk0IDE5LjMxNDIgMTAuNDQxNCAxOS4zMTQyQzE1LjMzMzkgMTkuMzE0MiAxOS4zMTQyIDE1LjMzMzkgMTkuMzE0MiAxMC40NDE0QzE5LjMxNDIgNS41NDg5NCAxNS4zMzM5IDEuNTY4NjMgMTAuNDQxNCAxLjU2ODYzWicgZmlsbD0nJTIzMkY1RDRBJy8lM0UlM0NwYXRoIGQ9J005LjI2NzM5IDE0LjIxOTdDOC45MzQ5MiAxNC4yMTk3IDguNjIyMzcgMTQuMDkwMiA4LjM4NzMyIDEzLjg1NTFMNS44MzkwOCAxMS4zMDY5QzUuNTMyODEgMTEuMDAwNiA1LjUzMjgxIDEwLjUwNCA1LjgzOTA4IDEwLjE5NzZDNi4xNDUzNiA5Ljg5MTM2IDYuNjQxOTggOS44OTEzNiA2Ljk0ODI2IDEwLjE5NzZMOS4yNjczMiAxMi41MTY3TDEzLjkzNDIgNy44NDk3OUMxNC4yNDA1IDcuNTQzNiAxNC43MzcgNy41NDM1MiAxNS4wNDM0IDcuODQ5NzlDMTUuMzQ5NyA4LjE1NjA3IDE1LjM0OTcgOC42NTI3IDE1LjA0MzQgOC45NTkwNUwxMC4xNDczIDEzLjg1NUM5LjkxMjQxIDE0LjA5MDIgOS41OTk4NiAxNC4yMTk3IDkuMjY3MzkgMTQuMjE5N1onIGZpbGw9J3doaXRlJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWNhcmRbZGF0YS12ZXJkaWN0PVwid3JvbmdcIl0gLmJzLWRpYWxvZy1jYXJkLWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScyMScgaGVpZ2h0PScyMScgdmlld0JveD0nMCAwIDIxIDIxJyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMTAuMTkwMiAxOS42MTQ2QzE1LjM5NTMgMTkuNjE0NiAxOS42MTQ5IDE1LjM5NTEgMTkuNjE0OSAxMC4xOUMxOS42MTQ5IDQuOTg0OTIgMTUuMzk1MyAwLjc2NTM4MSAxMC4xOTAyIDAuNzY1MzgxQzQuOTg1MTcgMC43NjUzODEgMC43NjU2MjUgNC45ODQ5MiAwLjc2NTYyNSAxMC4xOUMwLjc2NTYyNSAxNS4zOTUxIDQuOTg1MTcgMTkuNjE0NiAxMC4xOTAyIDE5LjYxNDZaJyBmaWxsPSclMjNGRjNBMzAnLyUzRSUzQ3BhdGggZD0nTTEwLjE5IDIwLjM4MDFDNC41NzEyNCAyMC4zODAxIDAgMTUuODA4OSAwIDEwLjE5QzAgNC41NzEyNCA0LjU3MTI0IDAgMTAuMTkgMEMxNS44MDg5IDAgMjAuMzgwMSA0LjU3MTI0IDIwLjM4MDEgMTAuMTlDMjAuMzgwMSAxNS44MDg5IDE1LjgwODkgMjAuMzgwMSAxMC4xOSAyMC4zODAxWk0xMC4xOSAxLjUzMDc5QzUuNDE1MzYgMS41MzA3OSAxLjUzMDg2IDUuNDE1MjggMS41MzA4NiAxMC4xOUMxLjUzMDg2IDE0Ljk2NDcgNS40MTUzNiAxOC44NDkyIDEwLjE5IDE4Ljg0OTJDMTQuOTY0NyAxOC44NDkyIDE4Ljg0OTIgMTQuOTY0NyAxOC44NDkyIDEwLjE5QzE4Ljg0OTIgNS40MTUyOCAxNC45NjQ4IDEuNTMwNzkgMTAuMTkgMS41MzA3OVonIGZpbGw9JyUyMzdDMTkxNCcvJTNFJTNDcGF0aCBkPSdNMTEuMjcyNiAxMC4xOUwxMy45NjYyIDcuNDk2NDFDMTQuMjY1MSA3LjE5NzUxIDE0LjI2NTEgNi43MTI4NCAxMy45NjYyIDYuNDEzOTRDMTMuNjY3MiA2LjExNDk2IDEzLjE4MjYgNi4xMTUxMiAxMi44ODM3IDYuNDEzODZMMTAuMTkgOS4xMDc1TDcuNDk2NDEgNi40MTM4NkM3LjE5NzUxIDYuMTE0OTYgNi43MTI4NCA2LjExNDk2IDYuNDEzODYgNi40MTM5NEM2LjExNDk2IDYuNzEyODQgNi4xMTQ5NiA3LjE5NzUxIDYuNDEzOTQgNy40OTY0MUw5LjEwNzU3IDEwLjE5TDYuNDEzOTQgMTIuODgzNUM2LjExNTA0IDEzLjE4MjQgNi4xMTQ5NiAxMy42NjcxIDYuNDEzODYgMTMuOTY2QzYuNTYzMzUgMTQuMTE1NSA2Ljc1OTIzIDE0LjE5MDIgNi45NTUxIDE0LjE5MDJDNy4xNTA5NyAxNC4xOTAyIDcuMzQ2OTMgMTQuMTE1NCA3LjQ5NjM0IDEzLjk2NkwxMC4xOSAxMS4yNzI0TDEyLjg4MzYgMTMuOTY2QzEzLjAzMyAxNC4xMTU1IDEzLjIyOSAxNC4xOTAyIDEzLjQyNDggMTQuMTkwMkMxMy42MjA3IDE0LjE5MDIgMTMuODE2NyAxNC4xMTU0IDEzLjk2NjEgMTMuOTY2QzE0LjI2NSAxMy42NjcxIDE0LjI2NSAxMy4xODI0IDEzLjk2NjEgMTIuODgzNUwxMS4yNzI2IDEwLjE5WicgZmlsbD0nd2hpdGUnLyUzRSUzQy9zdmclM0VcIik7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZC10ZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS1kYW5nZXIgLmJzLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLWRhbmdlci1jYXJkKTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5icy10b25lLXN1Y2Nlc3MgLmJzLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLXN1Y2Nlc3MtY2FyZCk7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQuYnMtdG9uZS13YXJuaW5nIC5icy1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWNhcmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy13YXJuaW5nLWNhcmQpO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmJzLXRvbmUtd2FybmluZyAuYnMtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkW2RhdGEtdmVyZGljdD1cIndyb25nXCJdIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctd2FybmluZy1jYXJkLXdyb25nKTtcbn1cblxuLyogZGF0YS12ZXJkaWN0PVwibWlzc2VkXCI6IHJpZ2h0LCBidXQgdGhlIHJlYWRlciBkaWQgTk9UIHBpY2sgaXQuIEtpbSAwNC4wOS4yMDI2IC0gYSBzaGVldFxuICAgdGhhdCBvbmx5IGxpc3RzIHlvdXIgb3duIHBpY2tzIGNhbm5vdCBleHBsYWluIFwicGFydGx5IHJpZ2h0XCIgd2hlbiBldmVyeSBjYXJkIG9uIHNjcmVlblxuICAgaXMgZ3JlZW4uIFNhbWUgbGFuZ3VhZ2UgdGhlIGFuc3dlciByb3dzIG9uIHRoZSBjYXJkIGFscmVhZHkgdXNlIGZvciB0aGF0IHN0YXRlXG4gICAoZGF0YS1wdWxzZS1zdGFuZD1cImdvZWQtZ2VtaXN0XCIpOiBOTyBmaWxsZWQgYmxvY2ssIGEgZGFzaGVkIG91dGxpbmUgYW5kIGEgZGFzaGVkIHRpY2suXG4gICBUaGUgZmlsbCBzdGF5cyB0aGUgdG9uZSdzIG93biBjYXJkIGNvbG91ciBzbyB0aGUgYmxvY2sgc3RpbGwgYmVsb25ncyB0byB0aGUgc2hlZXQsIGFuZFxuICAgdGhlIGRhc2hlZCBib3JkZXIgaXMgd2hhdCBzZXBhcmF0ZXMgXCJ0aGUgdHJ1dGhcIiBmcm9tIFwid2hhdCB5b3UgY2hvc2VcIi4gKi9cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkW2RhdGEtdmVyZGljdD1cIm1pc3NlZFwiXSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDJweCBkYXNoZWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICBwYWRkaW5nOiAxMnB4IDEwcHggMTRweDtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkW2RhdGEtdmVyZGljdD1cIm1pc3NlZFwiXSAuYnMtZGlhbG9nLWNhcmQtaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzIxJyBoZWlnaHQ9JzIxJyB2aWV3Qm94PScwIDAgMjEgMjEnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NjaXJjbGUgY3g9JzEwLjUnIGN5PScxMC41JyByPSc5LjMnIHN0cm9rZT0nd2hpdGUnIHN0cm9rZS13aWR0aD0nMS43JyBzdHJva2UtZGFzaGFycmF5PSczLjIgMi44Jy8lM0UlM0NwYXRoIGQ9J005LjI2NzM5IDE0LjIxOTdDOC45MzQ5MiAxNC4yMTk3IDguNjIyMzcgMTQuMDkwMiA4LjM4NzMyIDEzLjg1NTFMNS44MzkwOCAxMS4zMDY5QzUuNTMyODEgMTEuMDAwNiA1LjUzMjgxIDEwLjUwNCA1LjgzOTA4IDEwLjE5NzZDNi4xNDUzNiA5Ljg5MTM2IDYuNjQxOTggOS44OTEzNiA2Ljk0ODI2IDEwLjE5NzZMOS4yNjczMiAxMi41MTY3TDEzLjkzNDIgNy44NDk3OUMxNC4yNDA1IDcuNTQzNiAxNC43MzcgNy41NDM1MiAxNS4wNDM0IDcuODQ5NzlDMTUuMzQ5NyA4LjE1NjA3IDE1LjM0OTcgOC42NTI3IDE1LjA0MzQgOC45NTkwNUwxMC4xNDczIDEzLjg1NUM5LjkxMjQxIDE0LjA5MDIgOS41OTk4NiAxNC4yMTk3IDkuMjY3MzkgMTQuMjE5N1onIGZpbGw9J3doaXRlJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuLyogVGhlIGxpbmUgYWJvdmUgdGhhdCBncm91cCBvZiBjYXJkcyAoXCJEZXplIGhhZCBqZSBub2cgbW9ldGVuIGtpZXplblwiKS4gTm90IGEgaGVhZGluZ1xuICAgZWxlbWVudDogdGhlIGRpYWxvZyBhbHJlYWR5IG93bnMgdGhlIG9ubHkgaC1sZXZlbCBpbiB0aGlzIHBhbmVsLiAqL1xuLnFkbmFwcm8tYm90dG9tLXNoZWV0IC5icy1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWxhYmVsIHtcbiAgbWFyZ2luOiAxNnB4IDAgOHB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldCAuYnMtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1sYWJlbDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4iLCIvLyBxZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24gKCsgLWdyb3VwKSDigJQgYWN0aW9uL29wdGlvbiByb3dzIGZvciBhIGJvdHRvbSBzaGVldC5cbi8vIEZMQVQgQ1NTOyBjb2xvdXJzL3JhZGlpIGZyb20gdGhlIGRlc2lnbi10b2tlbiA6cm9vdC5cbi8vIExheW91dDogbGVhZGluZyBpY29uIHwgbGFiZWwgfCB0cmFpbGluZyBjaGVjayAoYWN0aXZlIG9ubHksIGxpa2UgSW5zdGFncmFtKS5cbi8vIG9uLXdoaXRlIC8gb24tcHVycGxlID0gZmxhdCByb3dzIChubyBpbmRpdmlkdWFsIGZpbGwgYXQgaWRsZSksIGRpdmlkZWQgYnkgYSBoYWlybGluZS5cbi8vIEludGVudCB2YXJpYW50cyAod2FybmluZy9kZXN0cnVjdGl2ZS9zdWNjZXNzKSBrZWVwIHRoZWlyIG93biB0aW50ZWQgY2FyZC5cblxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMyk7XG4gIHBhZGRpbmc6IDEzcHggMTZweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE0cyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyBlYXNlO1xufVxuXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uIC5ic2ItaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNHB4O1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbiAuYnNiLWxhYmVsIHsgZmxleDogMTsgbWluLXdpZHRoOiAwOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uIC5ic2ItY2hlY2sge1xuICBkaXNwbGF5OiBub25lO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1hY3RpdmUgLmJzYi1jaGVjayB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyB9XG5cbi8vIHZhbHVlLWxhYmVsIOKAlCB0cmFpbGluZyBtdXRlZCB0ZXh0IG9uIHRoZSByaWdodCAodGhlIGN1cnJlbnQgY2hvaWNlLCBlLmcuIFwiTm9uZVwiXG4vLyBvciBhIHRhc2tsaXN0IG5hbWUpOyBlbGxpcHNpemVkIHNvIGEgbG9uZyBuYW1lIG5ldmVyIHB1c2hlcyB0aGUgcm93IHdpZGVyLlxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbiAuYnNiLXZhbHVlIHtcbiAgZmxleC1zaHJpbms6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgbWF4LXdpZHRoOiA1NSU7XG4gIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLW9uLXB1cnBsZSAuYnNiLXZhbHVlIHsgY29sb3I6IHZhcigtLWMtd2hpdGUtNzApOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1kaXNhYmxlZCAuYnNiLXZhbHVlIHsgY29sb3I6IGluaGVyaXQ7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLXRpbGUgLmJzYi12YWx1ZSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gc3VidGl0bGUg4oCUIGEgc2Vjb25kLCBzbWFsbGVyIGxpbmUgdW5kZXIgdGhlIGxhYmVsLCBmb3IgYW4gb3B0aW9uIHRoYXQgbmVlZHMgYSBiaXQgb2Zcbi8vIGV4cGxhbmF0aW9uLiBSdWxlcyBmcm9tIEtpbSAwMy4wOC4yMDI2OlxuLy8gICAqIE9ORSBsaW5lLCBlbGxpcHNpemVkLiBBIHNoZWV0IHJvdyBuZXZlciBncm93cyB0byB0aHJlZSBsaW5lcywgc28gdGhlIHJvdyBoZWlnaHRcbi8vICAgICBzdGF5cyBwcmVkaWN0YWJsZSBhbmQgdGhlIHNoZWV0IG91dGxpbmUgbmV2ZXIgbW92ZXMuIEtlZXAgdGhlIGNvcHkgc2hvcnQuXG4vLyAgICogMTNweCAobm90IHRoZSAxMnB4IHVzZWQgaW4gbGlzdC1yb3cvZXZlbnQtY2FyZCk6IHRoZSBsYWJlbCBoZXJlIGlzIDE2cHgsIHNvIDEycHhcbi8vICAgICBkcm9wcyB0b28gZmFyIGF3YXkgZnJvbSBpdC5cbi8vICAgKiBUaGUgaWNvbiBhbGlnbnMgd2l0aCB0aGUgRklSU1QgbGluZSwgbm90IHdpdGggdGhlIG1pZGRsZSBvZiB0aGUgdHdvLWxpbmUgYmxvY2sg4oCUXG4vLyAgICAgdGhlIGljb24gYmVsb25ncyB0byB0aGUgbGFiZWwuXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uIC5ic2ItdGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMnB4O1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uIC5ic2ItdGV4dCAuYnNiLWxhYmVsIHsgZmxleDogbm9uZTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbiAuYnNiLXN1YiB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLy8gZmxleC1zdGFydCBwdXNoZXMgaWNvbi92YWx1ZS9jaGVjayB0byB0aGUgdG9wOyB0aGUgbmVnYXRpdmUgb2Zmc2V0IHRoZW4gY2VudHJlcyB0aGVcbi8vIDI0cHggZ2x5cGggT04gdGhlIDE2cHgvMS4yIGxhYmVsIGxpbmUgaW5zdGVhZCBvZiBvbiBpdHMgdG9wIGVkZ2UuXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1oYXMtc3ViOm5vdCguYnNiLXRpbGUpIHsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLWhhcy1zdWI6bm90KC5ic2ItdGlsZSkgLmJzYi1pY29uIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuXG4vLyBvbi13aGl0ZSDigJQgZmxhdCBpZGxlIChubyByYWRpdXMsIG5vIGZpbGwpOyByYWRpdXMgKyBmaWxsIG9ubHkgb24gaW50ZXJhY3Rpb25cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLW9uLXdoaXRlIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDApOyBib3JkZXItcmFkaXVzOiAwOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1vbi13aGl0ZTpob3Zlcjpub3QoLmJzYi1kaXNhYmxlZCk6bm90KC5ic2ItYWN0aXZlKSB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItMyk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLW9uLXdoaXRlLmlzLXByZXNzZWQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tci0zKTsgdHJhbnNmb3JtOiBzY2FsZSgwLjk4NSk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLW9uLXdoaXRlLmJzYi1hY3RpdmUgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHZhcigtLWMtcHVycGxlLTcwMCk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLW9uLXdoaXRlLmJzYi1kaXNhYmxlZCB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogdmFyKC0tYy1ncmV5LTMwMCk7IGN1cnNvcjogZGVmYXVsdDsgfVxuXG4vLyBvbi1wdXJwbGUg4oCUIGZsYXQgcm93cyBvbiBhIHB1cnBsZSBzaGVldCwgd2hpdGUgdGV4dFxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itb24tcHVycGxlIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTsgYm9yZGVyLXJhZGl1czogMDsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itb24tcHVycGxlOmhvdmVyOm5vdCguYnNiLWRpc2FibGVkKTpub3QoLmJzYi1hY3RpdmUpIHsgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZS0xNCk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItMyk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLW9uLXB1cnBsZS5pcy1wcmVzc2VkIHsgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZS0yMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItMyk7IHRyYW5zZm9ybTogc2NhbGUoMC45ODUpOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1vbi1wdXJwbGUuYnNiLWFjdGl2ZSB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLW9uLXB1cnBsZS5ic2ItZGlzYWJsZWQgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHZhcigtLWMtd2hpdGUtNDUpOyBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLy8gdGlsZSDigJQgaWNvbiBhYm92ZSBsYWJlbCwgc3F1YXJlIGFzcGVjdCwgZm9yIGhvcml6b250YWwgcm93cyAoYWx3YXlzIGluc2lkZSBhIGdyb3VwKVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2ItdGlsZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogMTRweCA4cHg7XG4gIGZsZXg6IDE7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMyk7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi10aWxlIC5ic2ItaWNvbiB7IG1hcmdpbi1yaWdodDogMDsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2ItdGlsZSAuYnNiLWxhYmVsIHsgZmxleDogbm9uZTsgZm9udC1zaXplOiAxMnB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbi8vIHRpbGUgKyBzdWJ0aXRsZSAoS2ltIDAzLjA4LjIwMjY6IHllcywgdGlsZXMgZ2V0IGl0IHRvbykg4oCUIGNlbnRyZWQgYW5kIGEgc3RlcCBzbWFsbGVyXG4vLyB0aGFuIHRoZSAxMnB4IHRpbGUgbGFiZWwsIHN0aWxsIG9uZSBlbGxpcHNpemVkIGxpbmUuIEEgdGlsZSBpcyBuYXJyb3csIHNvIHRoZSBjb3B5IGhhc1xuLy8gdG8gYmUgb25lIG9yIHR3byB3b3Jkcy5cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLXRpbGUgLmJzYi10ZXh0IHsgZmxleDogbm9uZTsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxcHg7IG1heC13aWR0aDogMTAwJTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2ItdGlsZSAuYnNiLXN1YiB7IGZvbnQtc2l6ZTogMTFweDsgbGluZS1oZWlnaHQ6IDEuMjU7IG1heC13aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi10aWxlIC5ic2ItY2hlY2ssXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi10aWxlLmJzYi1hY3RpdmUgLmJzYi1jaGVjayB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gdGlsZSBncm91cCDigJQgaG9yaXpvbnRhbCByb3cgbGF5b3V0XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwLmJzYmctdGlsZXMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogcm93OyBnYXA6IDZweDsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cC5ic2JnLXRpbGVzIC5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24geyBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMpOyBwYWRkaW5nOiAxNHB4IDhweDsgfVxuXG4vLyB0aWxlIG9uIHdoaXRlIOKAlCBlYWNoIHRpbGUgaXMgYSBtaW5pIHJhaXNlZCBjYXJkXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwLmJzYmctdGlsZXMuYnNiZy1vbi13aGl0ZSAuYnNiLXRpbGUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpOyBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNzAwKTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cC5ic2JnLXRpbGVzLmJzYmctb24td2hpdGUgLmJzYi10aWxlOmhvdmVyOm5vdCguYnNiLWRpc2FibGVkKSB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDApOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwLmJzYmctdGlsZXMuYnNiZy1vbi13aGl0ZSAuYnNiLXRpbGUuaXMtcHJlc3NlZCB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDApOyB0cmFuc2Zvcm06IHNjYWxlKDAuOTcpOyB9XG5cbi8vIHRpbGUgb24gcHVycGxlIOKAlCBzbGlnaHRseSBsaWdodGVyIHRoYW4gZ3JvdXAgYmcgc28gdGlsZXMgdmlzdWFsbHkgc2VwYXJhdGVcbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24tZ3JvdXAuYnNiZy10aWxlcy5ic2JnLW9uLXB1cnBsZSAuYnNiLXRpbGUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlLTIyKTsgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwLmJzYmctdGlsZXMuYnNiZy1vbi1wdXJwbGUgLmJzYi10aWxlOmhvdmVyOm5vdCguYnNiLWRpc2FibGVkKSB7IGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtMjgpOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwLmJzYmctdGlsZXMuYnNiZy1vbi1wdXJwbGUgLmJzYi10aWxlLmlzLXByZXNzZWQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlLTI4KTsgdHJhbnNmb3JtOiBzY2FsZSgwLjk3KTsgfVxuXG4vLyBJbnRlbnQgdmFyaWFudHMg4oCUIGtlZXAgdGhlaXIgdGludGVkIGNhcmQgKHNlbWFudGljIG1lYW5pbmcgbmVlZHMgdGhlIGZpbGwpXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1kZXN0cnVjdGl2ZSB7IGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXJlZC1zb2Z0KTsgY29sb3I6IHZhcigtLWMtdGFnLWNyaXRpY2FsLXRleHQpOyBtYXJnaW4tdG9wOiA4cHg7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLWRlc3RydWN0aXZlOmhvdmVyOm5vdCguYnNiLWRpc2FibGVkKSB7IGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLWRlc3RydWN0aXZlLmlzLXByZXNzZWQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpOyB0cmFuc2Zvcm06IHNjYWxlKDAuOTg1KTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2ItZGVzdHJ1Y3RpdmUuYnNiLWRpc2FibGVkIHsgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTsgY29sb3I6IHZhcigtLWMtZ3JleS00MDApOyBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itd2FybmluZyB7IGJhY2tncm91bmQ6IHZhcigtLWMtd2FybmluZy1icmlnaHQtYmcpOyBjb2xvcjogdmFyKC0tYy13YXJuaW5nLWJyaWdodC10ZXh0KTsgbWFyZ2luLXRvcDogOHB4OyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi13YXJuaW5nOmhvdmVyOm5vdCguYnNiLWRpc2FibGVkKSB7IGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXllbGxvdy1iZyk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLXdhcm5pbmcuaXMtcHJlc3NlZCB7IGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXllbGxvdy1iZyk7IHRyYW5zZm9ybTogc2NhbGUoMC45ODUpOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi13YXJuaW5nLmJzYi1kaXNhYmxlZCB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7IGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwKTsgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLXN1Y2Nlc3MgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi0xMDApOyBjb2xvcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7IG1hcmdpbi10b3A6IDhweDsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itc3VjY2Vzczpob3Zlcjpub3QoLmJzYi1kaXNhYmxlZCkgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi1iZyk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLXN1Y2Nlc3MuaXMtcHJlc3NlZCB7IGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLWdyZWVuLWJnKTsgdHJhbnNmb3JtOiBzY2FsZSgwLjk4NSk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLXN1Y2Nlc3MuYnNiLWRpc2FibGVkIHsgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTsgY29sb3I6IHZhcigtLWMtZ3JleS00MDApOyBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLy8gZ3JvdXAgKHJhZGlvIGZhbWlseSkg4oCUIG9uZSByb3VuZGVkIGNhcmQgY29udGFpbmVyOyBpZGxlIGl0ZW1zIHRyYW5zcGFyZW50IHNvIHRoZXlcbi8vIG1lcmdlIGludG8gdGhlIGNhcmQgc3VyZmFjZTsgb25seSBhY3RpdmUvaG92ZXIvcHJlc3NlZCBzdGFuZCBvdXQuXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwIHsgZGlzcGxheTogYmxvY2s7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItMyk7IHBhZGRpbmc6IDZweDsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cC5ic2JnLW9uLXdoaXRlICB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24tZ3JvdXAuYnNiZy1vbi1wdXJwbGUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlLTE0KTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cCAucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uIHsgYm9yZGVyLXJhZGl1czogdmFyKC0tci1yb3cpOyBwYWRkaW5nOiAxMXB4IDE2cHg7IGJvcmRlci10b3A6IG5vbmU7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24tZ3JvdXAgLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbiArIC5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24geyBtYXJnaW4tdG9wOiAycHg7IGJvcmRlci10b3A6IG5vbmU7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24tZ3JvdXAgLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itb24td2hpdGUgKyAucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1vbi13aGl0ZSxcbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24tZ3JvdXAgLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itb24tcHVycGxlICsgLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itb24tcHVycGxlIHsgYm9yZGVyLXRvcDogbm9uZTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cCAucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uOm5vdCguaXMtcHJlc3NlZCk6bm90KDpob3ZlcikgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuLy8gSW5zaWRlIGEgYnNiZy1vbi13aGl0ZSBncm91cCB0aGUgc3VyZmFjZSBpcyAtLWMtZ3JleS01MCwgc28gdGhlIGRlZmF1bHQgb24td2hpdGUgaG92ZXIgKGFsc28gZ3JleS01MCkgaXMgaW52aXNpYmxlLlxuLy8gT3ZlcnJpZGUgdG8gZ3JleS0xMDAgc28gaG92ZXIgaXMgYWN0dWFsbHkgdmlzaWJsZS5cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24tZ3JvdXAuYnNiZy1vbi13aGl0ZSAucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1vbi13aGl0ZTpob3Zlcjpub3QoLmJzYi1kaXNhYmxlZCk6bm90KC5ic2ItYWN0aXZlKSB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDApOyB9XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwLmJzYmctb24td2hpdGUgLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itb24td2hpdGUuaXMtcHJlc3NlZCB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0yMDApOyB9XG4vLyBJbnNpZGUgYSBncm91cCBvbiBwdXJwbGU6IGlkbGUgPSB3aGl0ZSB0ZXh0OyBhY3RpdmUgPSB0cmFuc3BhcmVudCArIHNhbWUgd2hpdGUgdGV4dCAob25seSB0aGUgY2hlY2sgY2hhbmdlcylcbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24tZ3JvdXAuYnNiZy1vbi1wdXJwbGUgLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbiB7IGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cC5ic2JnLW9uLXB1cnBsZSAucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1hY3RpdmUgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pOyB9XG4vLyBESVNBQkxFRCBtdXN0IHN1cnZpdmUgdGhlIGdyb3VwIHJ1bGUgcmlnaHQgYWJvdmUgKEtpbSAwMy4wOC4yMDI2KS4gQm90aFxuLy8gYC5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLW9uLXB1cnBsZS5ic2ItZGlzYWJsZWRgIChmdXJ0aGVyIHVwLCB0aGUgZGltbWVkXG4vLyBjb2xvdXIpIGFuZCB0aGUgZ3JvdXAgcnVsZSB3ZWlnaCBleGFjdGx5IHRoZSBzYW1lIOKAlCB0aHJlZSBjbGFzc2VzIGVhY2gg4oCUIHNvIHRoZVxuLy8gZ3JvdXAgcnVsZSB3b24gb24gc291cmNlIG9yZGVyIGFsb25lIGFuZCBhIGRpc2FibGVkIGJ1dHRvbiBpbnNpZGUgYSBwdXJwbGUgZ3JvdXBcbi8vIHJlbmRlcmVkIGluIEZVTEwgd2hpdGU6IHZpc3VhbGx5IGlkZW50aWNhbCB0byBhIHdvcmtpbmcgYnV0dG9uLCBzaWxlbnRseSBzd2FsbG93aW5nXG4vLyBldmVyeSB0YXAuIEZvdW5kIHZpYSB0aGUgYWdlbmRhJ3MgXCJTdGFydCB0YWFrXCIgYnV0dG9uIG9uIGEgZnV0dXJlIHRhc2suIEZvdXIgY2xhc3Nlc1xuLy8gaGVyZSwgc28gdGhpcyB3aW5zIG91dHJpZ2h0LCBhbmQgaXQgaXMgdmFyaWFudC1hZ25vc3RpYyBvbiBwdXJwb3NlOiBhbnkgYnV0dG9uIGluIGFcbi8vIHB1cnBsZSBncm91cCBkaW1zIHRoZSBzYW1lIHdheSwgYWxzbyBvbmUgdGhhdCBjYXJyaWVzIHRoZSBvbi13aGl0ZSB2YXJpYW50LlxuLy8gVGhlIG9uLXdoaXRlIGdyb3VwIG5lZWRzIG5vIGVxdWl2YWxlbnQg4oCUIGl0IGhhcyBubyBwbGFpbiBjb2xvdXIgb3ZlcnJpZGUgdG8gYmVhdC5cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24tZ3JvdXAuYnNiZy1vbi1wdXJwbGUgLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2ItZGlzYWJsZWQgeyBjb2xvcjogdmFyKC0tYy13aGl0ZS00NSk7IGN1cnNvcjogZGVmYXVsdDsgfVxuXG4vLyBTdWJ0aXRsZSBjb2xvdXJzIHBlciBzdXJmYWNlLiBEZWxpYmVyYXRlbHkgYXQgdGhlIEVORCBvZiB0aGUgZmlsZTogc2V2ZXJhbCBvZiB0aGVzZVxuLy8gc2VsZWN0b3JzIHdlaWdoIHRoZSBzYW1lIGFzIHRoZSBncm91cCBydWxlcyBhYm92ZSwgc28gc291cmNlIG9yZGVyIGRlY2lkZXMg4oCUIGFuZCB0aGVcbi8vIGRpc2FibGVkIG9uZXMgaGF2ZSB0byB3aW4sIGZvciB0aGUgc2FtZSByZWFzb24gdGhlIGRpc2FibGVkIGNvbG91ciBhYm92ZSBoYWQgdG9cbi8vIChhIGZ1bGwtc3RyZW5ndGggcm93IHRoYXQgc2lsZW50bHkgc3dhbGxvd3MgZXZlcnkgdGFwLCBLaW0gMDMuMDguMjAyNikuXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1vbi1wdXJwbGUgLmJzYi1zdWIsXG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwLmJzYmctb24tcHVycGxlIC5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24gLmJzYi1zdWIgeyBjb2xvcjogdmFyKC0tYy13aGl0ZS03MCk7IH1cbi8vIEludGVudCB2YXJpYW50cyBrZWVwIHRoZWlyIG93biBzZW1hbnRpYyBjb2xvdXIg4oCUIGEgZ3JleSBzdWJ0aXRsZSBvbiBhIHJlZC95ZWxsb3cvZ3JlZW5cbi8vIGNhcmQgcmVhZHMgYXMgYSBmb3JlaWduIGVsZW1lbnQg4oCUIHNvIGRpbSB0aGUgcm93IGNvbG91ciBpbnN0ZWFkIG9mIHJlY29sb3VyaW5nIGl0LlxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itd2FybmluZyAuYnNiLXN1Yixcbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLWRlc3RydWN0aXZlIC5ic2Itc3ViLFxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itc3VjY2VzcyAuYnNiLXN1YiB7IGNvbG9yOiBjdXJyZW50Q29sb3I7IG9wYWNpdHk6IDAuNzg7IH1cbi8vIERpc2FibGVkOiB0aGUgd2hvbGUgcm93IGlzIGFscmVhZHkgZGltbWVkLCBzbyB0aGUgc3VidGl0bGUgZm9sbG93cyB0aGUgcm93IGNvbG91ci5cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLWRpc2FibGVkIC5ic2Itc3ViIHsgY29sb3I6IGluaGVyaXQ7IG9wYWNpdHk6IDE7IH1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24uYnNiLW9uLXdoaXRlLmJzYi1kaXNhYmxlZCAuYnNiLXN1YiB7IGNvbG9yOiB2YXIoLS1jLWdyZXktMzAwKTsgfVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2Itb24tcHVycGxlLmJzYi1kaXNhYmxlZCAuYnNiLXN1Yixcbi5xZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24tZ3JvdXAuYnNiZy1vbi1wdXJwbGUgLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2ItZGlzYWJsZWQgLmJzYi1zdWIgeyBjb2xvcjogdmFyKC0tYy13aGl0ZS00NSk7IH1cblxuLy8gQ2hlY2ttYXJrIGFwcGVhciBhbmltYXRpb246IGRyYXctaW4gKHN0cm9rZSkgKyBjb250YWluZXIgcG9wL3dvYmJsZSDigJQgbWlycm9ycyBxZG5hcHJvLXVuaXQtY2FyZFxuQGtleWZyYW1lcyBic2ItY2hlY2stcG9wIHtcbiAgMCUgICB7IHRyYW5zZm9ybTogc2NhbGUoMC42KSAgcm90YXRlKDBkZWcpOyAgfVxuICAyMCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjIwKSByb3RhdGUoLTVkZWcpOyB9XG4gIDQ0JSAgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTIpIHJvdGF0ZSgzZGVnKTsgIH1cbiAgNjQlICB7IHRyYW5zZm9ybTogc2NhbGUoMS4wNikgcm90YXRlKC0xZGVnKTsgfVxuICA4MCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk3KSByb3RhdGUoMGRlZyk7ICB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpICAgIHJvdGF0ZSgwZGVnKTsgIH1cbn1cbkBrZXlmcmFtZXMgYnNiLWNoZWNrLWRyYXcge1xuICAwJSAgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDIyOyAgfVxuICA2MiUgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xOyAgfVxuICA4MCUgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDAuNzsgfVxuICAxMDAlIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7ICAgfVxufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbiAuYnNiLWNoZWNrLXBhdGgge1xuICBzdHJva2UtZGFzaGFycmF5OiAyMjtcbiAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDIyO1xufVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi5ic2ItYWN0aXZlIC5ic2ItY2hlY2sge1xuICBhbmltYXRpb246IGJzYi1jaGVjay1wb3AgMC41MnMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNSwgMSkgZm9yd2FyZHM7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLmJzYi1hY3RpdmUgLmJzYi1jaGVjay1wYXRoIHtcbiAgYW5pbWF0aW9uOiBic2ItY2hlY2stZHJhdyAwLjM4cyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSkgMC4wNHMgZm9yd2FyZHM7XG59XG4iLCIvLyBxZG5hcHJvLXBvcG92ZXIg4oCUIGZsb2F0aW5nIGFjdGlvbiBjYXJkIGFuY2hvcmVkIHRvIGEgdHJpZ2dlciBlbGVtZW50LlxuLy8gRkxBVCBDU1M7IGNvbG91cnMvcmFkaWkgZnJvbSB0aGUgZGVzaWduLXRva2VuIDpyb290ICh2YXIoLS1jLSopIC8gLS1yLSopLlxuLy8gVGFibGV0LWZpcnN0IGFsdGVybmF0aXZlIHRvIHRoZSBib3R0b20gc2hlZXQgKHVzZSBvbiB3aW5kb3cuaW5uZXJXaWR0aCA+PSA3NjgpLlxuLy8gRWRpdCBIRVJFLCB0aGVuIGBndWxwIHNhc3MtdjFgICsgdGhlIHN5bmMuXG5cbi5xZG5hcHJvLXBvcG92ZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDE7XG4gIHdpZHRoOiAyODBweDtcbiAgcGFkZGluZzogNnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWNhcmQpO1xuICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4yMik7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlLCB2aXNpYmlsaXR5IDAuMTVzIGVhc2U7XG59XG4ucWRuYXByby1wb3BvdmVyLmlzLW9wZW4ge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLy8gLS0tIEdyb3ctaW4gLyBzaHJpbmstb3V0IChLaW0gMDQuMDguMjAyNikgLS0tXG4vLyBEZSBwb3BvdmVyIGdyb2VpdCB1aXQgaGV0IGFhbmdldGlrdGUgZ2ViaWVkIG5hYXIgdm9sbGUgZ3Jvb3R0ZSBpbiBwbGFhdHMgdmFuXG4vLyBhbGxlZW4gaW4gdGUgZmFkZW4sIGVuIGtyaW1wdCBiaWogc2x1aXRlbiB0ZXJ1ZyBuYWFyIGRhdCBwdW50LlxuLy9cbi8vIEhldCBHUk9FSVBVTlQgaXMgZGUgcGlqbDogLS1wb3AtYXJyb3cteCBzdGFhdCBhbCBvcCBoZXQgbWlkZGVuIHZhbiBkZSB0cmlnZ2VyXG4vLyAoZ2V6ZXQgZG9vciBfcG9zaXRpb24oKSBpbiBkZSBKUykgZW4gdmVydGljYWFsIGlzIGRhdCBkZSByYW5kIGRpZSBuYWFyIGRlXG4vLyB0cmlnZ2VyIHdpanN0LiBEYWFyZG9vciBrb210IGhldCBwYW5lZWwgYWx0aWpkIHVpdCBkZSBrbm9wIGRpZSBqZSBhYW50aWt0ZSxcbi8vIG9vayBiaWogZWVuIHZpcnR1ZWVsIGFua2VyIChlZW4gdGlrIGluIGVlbiBrYWxlbmRlcmtvbG9tKSBlbiBvb2sgYmlqIGBiYXJlYFxuLy8gcG9wb3ZlcnMsIHdhYXIgZGUgcGlqbCBvbnppY2h0YmFhciBpcyBtYWFyIGRlIHZhcmlhYmVsZSB3ZWwgZ2V6ZXQgd29yZHQuXG4vL1xuLy8gQmV3dXN0IGVlbiBAa2V5ZnJhbWVzIGVuIEdFRU4gdHJhbnNpdGlvbiBtZXQgZWVuIHJ1c3QtdHJhbnNmb3JtOiBlZW4gdHJhbnNmb3JtXG4vLyBkaWUgbmEgZGUgYW5pbWF0aWUgYmxpamZ0IHN0YWFuIG1hYWt0IHZhbiBkZSBwb3BvdmVyIGVlbiBjb250YWluaW5nIGJsb2NrLCBlblxuLy8gZGFuIGdhYXQgZWVuIHBvc2l0aW9uOmZpeGVkIGtpbmQgYmlubmVuIGRlIHBvcG92ZXIgKGVlbiBnZW5lc3QgbWVudSwgem9hbHMgaW5cbi8vIGRlIHRha2VubGlqc3Qta2llemVyKSBtZXQgZGUgcG9wb3ZlciBtZWUgaW4gcGxhYXRzIHZhbiBtZXQgaGV0IHZlbnN0ZXIuIEVlblxuLy8gYW5pbWF0aWUgem9uZGVyIGZpbGwtbW9kZSBsYWF0IGRlIHRyYW5zZm9ybSBuYSBhZmxvb3Agd2VlciBsb3MuXG4vL1xuLy8gRGUgZ3JvdGUgZ2VjZW50cmVlcmRlIHZhcmlhbnQgKFwiZGlhbG9nXCIpIGRvZXQgaGllciBOSUVUIGFhbiBtZWU6IGRpZSBoYW5ndFxuLy8gbmlldCBhYW4gZWVuIHRyaWdnZXIsIHN0YWF0IG1pZGRlbiBpbiBoZXQgYmVlbGQgYWNodGVyIGVlbiBzbHVpZXIgZW4gaGVlZnRcbi8vIHppam4gZWlnZW4gc2NhbGUgb3AgLnBvcC1wYW5lbCAoemllIG9uZGVyKS5cbi5xZG5hcHJvLXBvcG92ZXIucG9wLWJlbG93IHsgdHJhbnNmb3JtLW9yaWdpbjogdmFyKC0tcG9wLWFycm93LXgsIDUwJSkgMDsgfVxuLy8gWklKV0FBUlRTRSBTVEFORCAocHJlZmVyLXNpZGUsIDA3LjA4LjIwMjYpLiBHZWVuIHBpamw6IGRpZSB3aWpzdCBvbWhvb2cgb2Ygb21sYWFnXG4vLyBlbiB6b3UgbmFhc3QgZGUga2FhcnQgbG9zIGluIGRlIGx1Y2h0IGhhbmdlbi4gSGV0IGdyb2VpcHVudCBzY2h1aWZ0IG1lZSBuYWFyIGRlXG4vLyByYW5kIGRpZSBuYWFyIGhldCBrbGlrcHVudCB3aWpzdCwgem9kYXQgZGUgb3BlbmFuaW1hdGllIG5vZyBzdGVlZHMgdWl0IGRpZSBrYW50XG4vLyBrb210IGVuIG5pZXQgdWl0IGhldCBtaWRkZW4uXG4ucWRuYXByby1wb3BvdmVyLnBvcC1zaWRlOjpiZWZvcmUgeyBkaXNwbGF5OiBub25lOyB9XG4ucWRuYXByby1wb3BvdmVyLnBvcC1zaWRlIHsgdHJhbnNmb3JtLW9yaWdpbjogMCAyMCU7IH1cblxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtYWJvdmUgeyB0cmFuc2Zvcm0tb3JpZ2luOiB2YXIoLS1wb3AtYXJyb3cteCwgNTAlKSAxMDAlOyB9XG5cbi8vIERlIG92ZXJzaG9vdCAoS2ltIDA0LjA4LjIwMjY6IFwid2hhdHNhcHAgaGVlZnQgZWVuIGtsZWluZSBvdmVyc2hvb3RcIikgeml0IGluIGRlXG4vLyBUSU1JTkcgZW4gbmlldCBpbiBlZW4gZXh0cmEga2V5ZnJhbWU6IGRlemUgZWFzZS1vdXQtYmFjayBzY2hpZXQgdm9vcmJpaiAxIGVuIHZlZXJ0XG4vLyB0ZXJ1Zy4gVmFuIDAuNzIgbmFhciAxIGlzIGRlIHBpZWsgc2NhbGUgMS4wMjcgKDIsNyUgZG9vcikgcm9uZCAxMTVtcywgZGFhcm5hIGtvbXRcbi8vIGhpaiBvcCAyMDBtcyB0b3QgcnVzdC4gV2lsIGplIGRlIHN0dWl0ZXIgZ3JvdGVyIG9mIGtsZWluZXIsIHZlcmFuZGVyIGRhbiBoZXQgVFdFRURFXG4vLyBnZXRhbCBpbiBkZSBiZXppZXIgKDEuNTYpOiBob2dlciA9IG1lZXIgb3ZlcnNob290LiBEb2UgaGV0IG5pZXQgbWV0IGVlbiBleHRyYVxuLy8ga2V5ZnJhbWUgb3AgZWVuIHZhc3RlIHNjYWxlLCB3YW50IGRhbiBzY2hpZXQgZWxrZSBwb3BvdmVyIGhldHplbGZkZSBBQU5UQUwgUElYRUxTXG4vLyBkb29yIGVuIGxlZXN0IGRhdCBvcCBlZW4ga2xlaW4gbWVudSBhbHMgZWVuIHN0dWl0ZXIgZW4gb3AgZWVuIGdyb3RlIGthYXJ0IGFscyBuaWV0cy5cbi5xZG5hcHJvLXBvcG92ZXIuaXMtb3Blbjpub3QoLnBvcC12YXJpYW50LWRpYWxvZykge1xuICBhbmltYXRpb246IHFkbmFwcm8tcG9wLWdyb3cgMC4ycyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG59XG5Aa2V5ZnJhbWVzIHFkbmFwcm8tcG9wLWdyb3cge1xuICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiBzY2FsZSgwLjcyKTsgfVxuICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxufVxuXG4vLyBTbHVpdGVuOiBkZSBKUyB6ZXQgYHBvcC1jbG9zaW5nYCBvcCBoZXQgbW9tZW50IGRhdCBgaXMtb3BlbmAgZXJhZiBnYWF0IGVuXG4vLyBoYWFsdCBoZW0gZXIgbmEgZGUgYW5pbWF0aWUgd2VlciBhZiAoemllIGNsb3NlKCkgaW4gcWRuYS1wb3BvdmVyLmpzKS4gWm9uZGVyXG4vLyBkaWUgY2xhc3MgdmFsdCBkZSBwb3BvdmVyIG1ldGVlbiB0ZXJ1ZyBvcCBkZSBiYXNpc3JlZ2VsIGhpZXJib3ZlbiBlbiBmYWRlIGhpalxuLy8gZ2V3b29uIHdlZywgZHVzIGVlbiBnZW1pc3RlIGNsYXNzIGthbiBub29pdCBlZW4gcG9wb3ZlciBsYXRlbiBoYW5nZW4uXG4ucWRuYXByby1wb3BvdmVyLnBvcC1jbG9zaW5nOm5vdCgucG9wLXZhcmlhbnQtZGlhbG9nKSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIGFuaW1hdGlvbjogcWRuYXByby1wb3Atc2hyaW5rIDAuMTJzIGVhc2UtaW47XG59XG5Aa2V5ZnJhbWVzIHFkbmFwcm8tcG9wLXNocmluayB7XG4gIGZyb20geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIHRvICAgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHNjYWxlKDAuODUpOyB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLXBvcG92ZXIuaXMtb3Blbjpub3QoLnBvcC12YXJpYW50LWRpYWxvZyksXG4gIC5xZG5hcHJvLXBvcG92ZXIucG9wLWNsb3Npbmc6bm90KC5wb3AtdmFyaWFudC1kaWFsb2cpIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbiAgLnFkbmFwcm8tcG9wb3Zlci5wb3AtY2xvc2luZzpub3QoLnBvcC12YXJpYW50LWRpYWxvZykge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuXG4vLyBEZWZlbnNpdmUgZ3VhcmQgKDIxLjA3LjIwMjYsIEtpbSdzIHRvZXN0ZWwtdGVzdCAtIFBXQSB0YWJsZXQgcG9wb3ZlciBidWcpOlxuLy8gdGhlIG9wYWNpdHkvdmlzaWJpbGl0eSBydWxlIGFib3ZlIG9ubHkgYXBwbGllcyBvbmNlIHRoZSBjb21wb25lbnQncyBvd25cbi8vIHJlbmRlcigpIGhhcyBzZXQgdGhlIC5xZG5hcHJvLXBvcG92ZXIgY2xhc3MgLSB3aGljaCBoYXBwZW5zIEFGVEVSIHRoZVxuLy8gY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCBhbmQgdXBncmFkZWQuIEJlZm9yZSB0aGF0IG1vbWVudCB0aGUgdGFnIHNpdHMgaW5cbi8vIHRoZSBwYWdlIHdpdGggTk8gY2xhc3MgYXQgYWxsIChibzIgd3JpdGVzIDxxZG5hcHJvLXBvcG92ZXI+IGRpcmVjdGx5IGluXG4vLyBtYXJrdXAgb24gcGxhbm5lci9kb2N1bWVudHMgcGFnZXMsIHdoaWxlIGNvbXBvbmVudHMuanMgaXMgYSBkZWZlcnJlZFxuLy8gbW9kdWxlKSwgc28gaXRzIGxpZ2h0LURPTSBjaGlsZHJlbiAoZS5nLiBhbiBlbWJlZGRlZCBxZG5hcHJvLW1lbnUpIHdvdWxkXG4vLyByZW5kZXIgYmFyZS9leHBvc2VkLiBUQUcgc2VsZWN0b3Igb24gcHVycG9zZTogYSBjbGFzcy1iYXNlZFxuLy8gLnFkbmFwcm8tcG9wb3Zlcjpub3QoOmRlZmluZWQpIGNhbiBuZXZlciBtYXRjaCwgYmVjYXVzZSB0aGUgY2xhc3MgYW5kXG4vLyA6ZGVmaW5lZCBhbHdheXMgZmxpcCB0b2dldGhlci4gU2FtZSBndWFyZCBhcyBxZG5hcHJvLXNlYXJjaC1vdmVybGF5LlxucWRuYXByby1wb3BvdmVyOm5vdCg6ZGVmaW5lZCkgeyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIEFycm93IOKAlCBwb2ludHMgdG93YXJkIHRoZSB0cmlnZ2VyIGVsZW1lbnQuXG4vLyAtLXBvcC1hcnJvdy14IGlzIHNldCBpbmxpbmUgYnkgdGhlIEpTIHBvc2l0aW9uaW5nIGxvZ2ljLlxuLnFkbmFwcm8tcG9wb3Zlcjo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiA5cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGxlZnQ6IHZhcigtLXBvcC1hcnJvdy14LCA1MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC1iZWxvdzo6YmVmb3JlIHtcbiAgdG9wOiAtMThweDtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLWFib3ZlOjpiZWZvcmUge1xuICBib3R0b206IC0xOHB4O1xufVxuXG4vLyAtLS0gV2hpdGUgdmFyaWFudCAoZGVmYXVsdCkgLS0tXG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LXdoaXRlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtd2hpdGU6OmJlZm9yZSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWMtYmctY2FyZCk7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LXdoaXRlLnBvcC1hYm92ZTo6YmVmb3JlIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8vIC0tLSBQdXJwbGUgdmFyaWFudCAtLS1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtcHVycGxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtcHVycGxlOjpiZWZvcmUge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdmFyaWFudC1wdXJwbGUucG9wLWFib3ZlOjpiZWZvcmUge1xuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLy8gLS0tIEJhcmUgdmFyaWFudDogY2hyb21lLWxlc3MgcG9zaXRpb25pbmcgbGF5ZXIgLS0tXG4vLyBGb3IgaG9zdGluZyBjb250ZW50IHRoYXQgYWxyZWFkeSBjYXJyaWVzIGl0cyBvd24gZGVzaWduZWQgY2hyb21lIChlLmcuXG4vLyBxZG5hcHJvLW1lbnUsIHdoaWNoIGhhcyBpdHMgb3duIGJvcmRlci9yYWRpdXMvc2hhZG93L3BhZGRpbmcpLiBUaGUgcG9wb3ZlclxuLy8ga2VlcHMgaXRzIHBvc2l0aW9uOmZpeGVkIC8gb3Blbi1jbG9zZSAvIG91dHNpZGUtY2xpY2sgLyBFc2NhcGUgYmVoYXZpb3VyLFxuLy8gaXQganVzdCBubyBsb25nZXIgcGFpbnRzIGl0cyBvd24gcGFuZWwgYXJvdW5kIHRoZSBjb250ZW50LiBQbGFjZWQgYWZ0ZXJcbi8vIHRoZSB2YXJpYW50IGJsb2NrcyBzbyBpdCB3aW5zIGF0IGVxdWFsIHNwZWNpZmljaXR5IChLaW0gMTYuMDcuMjAyNjogXCJpa1xuLy8gd2lsIGRhdCBkaWUgbWVudSdzIG9vayBkYWFkd2Vya2VsaWprIGhldCBxZG5hcHJvLW1lbnUgemlqblwiIOKAlCB0aGUgbWVudSdzXG4vLyBvd24gbG9vayBtdXN0IGJlIHdoYXQgc2hvd3MsIG5vdCBhIHNlY29uZCBwYW5lbCB3cmFwcGVkIGFyb3VuZCBpdCkuXG4ucWRuYXByby1wb3BvdmVyLnBvcC1iYXJlIHtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC1iYXJlOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBCb2R5OiBmbGV4IGNvbHVtbiB3aXRoIGdhcHMgYmV0d2VlbiBidXR0b24gZ3JvdXBzXG4ucWRuYXByby1wb3BvdmVyIC5wb3AtYm9keSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNnB4O1xufVxuXG4vLyAtLS0gRGlhbG9nIHZhcmlhbnRzOiBiaWcgY2VudGVyZWQgXCJkaWFsb2dcIiArIHNtYWxsIGFuY2hvcmVkIFwiZGlhbG9nLWFycm93XCIgLS0tXG4vLyBJbGx1c3RyYXRlZCBkaWFsb2cgcG9wb3ZlcnMsIGNvbXBvc2VkIHRoZSBzYW1lIHdheSBhcyBxZG5hcHJvLWJvdHRvbS1zaGVldCdzXG4vLyBkaWFsb2cvY29uZmlybSB2YXJpYW50IChpbGx1c3RyYXRpb24gKyBib2xkIHdoaXRlIHRpdGxlICsgd2hpdGUgYm9keSB0ZXh0ICtcbi8vIG9wdGlvbmFsIGNvbnN1bWVyIGNvbnRlbnQgKyBhIGZsZXhpYmxlIENhbmNlbC9Db25maXJtIGZvb3RlcikuIFNhbWUgbWFhdHZvZXJpbmcvXG4vLyBrbGV1cmVuIGFzIC5icy12YXJpYW50LWRpYWxvZyBpbiBfYm90dG9tLXNoZWV0LnNjc3MsIHJldXNlZCBoZXJlLiBbS2ltIDIyLjA3LjIwMjZdXG5cbi8vIFNoYXJlZCBjb250ZW50IGJsb2NrOiBpbGx1c3RyYXRpb24sIHRpdGxlLCBib2R5IHRleHQsIGNvbnN1bWVyIHNsb3QgY29udGVudC5cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1kaWFsb2ctYm9keSB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZ2FwOiAwO1xufVxuLy8gcWRuYXByby1pbGx1c3RyYXRpb24gd2lwZXMgaXRzIG93biBjbGFzc05hbWUgb24gcmVuZGVyICh0aGlzLmNsYXNzTmFtZSA9IOKApiksIHNvIGFcbi8vIGNsYXNzIGhvb2sgaXMgZGVhZCBieSB0aGUgdGltZSBpdCBwYWludHMg4oCUIHRhcmdldCB0aGUgVEFHLCBzYW1lIHRyaWNrIGFzIHRoZVxuLy8gYm90dG9tLXNoZWV0IGRpYWxvZy5cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1kaWFsb2ctYm9keSA+IHFkbmFwcm8taWxsdXN0cmF0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvIDE2cHg7XG4gIC8vIE5ldmVyIG92ZXJmbG93IGEgcGFuZWwgdGhhdCBoYXMgc2hydW5rIChuYXJyb3cgdmlld3BvcnQpOiB0aGUgY29tcG9uZW50IHNldHMgYW5cbiAgLy8gZXhwbGljaXQgcGl4ZWwgd2lkdGggaW5saW5lLCB0aGlzIGNhcHMgaXQgdG8gdGhlIGF2YWlsYWJsZSBzcGFjZSwga2VlcGluZyByYXRpby5cbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy10ZXh0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS42O1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZS03MCk7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG4vLyBDb25zdW1lciBjb250ZW50IChlLmcuIGJ1bGxldCByb3dzKSBzaXRzIGJlbG93IHRoZSBpbGx1c3RyYXRpb24vdGl0bGUvdGV4dDsgdGhlXG4vLyBkaWFsb2cgYm9keSBjZW50ZXJzIGl0cyBidWlsdC1pbnMsIHRoaXMgd3JhcHBlciBzdHJldGNoZXMgZnVsbC13aWR0aCBhbmRcbi8vIGxlZnQtYWxpZ25zIHNvIGN1c3RvbSByb3dzIGFyZW4ndCBzaHJpbmstd3JhcHBlZCBvciBjZW50ZXJlZC5cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1kaWFsb2ctYm9keSA+IC5wb3AtZGlhbG9nLWNvbnRlbnQge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLXRvcDogMTZweDtcbn1cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1kaWFsb2ctZm9vdGVyIHFkbmFwcm8tYnV0dG9uIHtcbiAgZmxleDogMTtcbn1cblxuLy8gRXhwbGFpbmVyIFwiYnVsbGV0XCIgcm93OiBbaWNvbi9iYWRnZV0gKyB3aGl0ZSB0ZXh0LCBlLmcuIFwid2hhdCBkb2VzIHRoaXMgYmFkZ2Vcbi8vIG1lYW5cIiAoUFdBIGRvY3VtZW50cyBiYWRnZS1pbmZvIGRpYWxvZywgMjguMDcuMjAyNikuIFNBTUUgY2xhc3MgbmFtZSArIHJ1bGUgYXNcbi8vIHFkbmFwcm8tYm90dG9tLXNoZWV0J3MgZGlhbG9nIGNvdW50ZXJwYXJ0IChzZWUgLmJzLWRpYWxvZy1idWxsZXQgaW5cbi8vIF9ib3R0b20tc2hlZXQuc2Nzcykgc28gYSBwb3BvdmVyIG9uIHRhYmxldCBhbmQgYSBzaGVldCBvbiBwaG9uZSByZW5kZXIgdGhlIGV4YWN0XG4vLyBzYW1lIGNvbnN1bWVyLWJ1aWx0IHJvdyAodGhlIFBXQSBidWlsZHMgT05FIHJvdyBzaGFwZSBhbmQgYXBwZW5kcyBpdCB0byB3aGljaGV2ZXJcbi8vIHN1cmZhY2UgaXQgb3BlbnMpLiBJY29uIHRvcC1hbGlnbmVkIHdpdGggdGhlIHRleHQgYmxvY2sg4oCUIHNlZSB0aGUgYm90dG9tLXNoZWV0XG4vLyBwYXJ0aWFsJ3MgY29tbWVudCBmb3Igd2h5IChubyBzaW5nbGUgZ2x5cGggYmFzZWxpbmUgdG8gaG9vayBhIGJhZGdlIHBpbGwgdG8pLlxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctYnVsbGV0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMTJweDtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUtOTAsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWJ1bGxldCArIC5icy1kaWFsb2ctYnVsbGV0IHtcbiAgbWFyZ2luLXRvcDogMTRweDtcbn1cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWJ1bGxldCA+IHFkbmFwcm8tc3RhdHVzLWJhZGdlIHtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8vIC0tLSB2YXJpYW50PVwiZGlhbG9nXCI6IEJJRyBwb3BvdmVyLCBjZW50ZXJlZCBiZWhpbmQgYSBmdWxsLXZpZXdwb3J0IHNjcmltIC0tLVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdmFyaWFudC1kaWFsb2cge1xuICAvLyBGdWxsLXZpZXdwb3J0IGZpeGVkIG92ZXJsYXkuIFVzZSB0aGUgbG9uZy1oYW5kIGVkZ2VzIChOT1QgYGluc2V0OjBgIGZvbGxvd2VkIGJ5XG4gIC8vIGBsZWZ0L3RvcDphdXRvYCwgd2hpY2ggY2FuY2VscyB0d28gb2YgdGhlIGZvdXIgZWRnZXMgYW5kIHNocmluay13cmFwcyB0aGUgaG9zdFxuICAvLyBpbnRvIHRoZSBib3R0b20tcmlnaHQgY29ybmVyIOKAlCB0aGF0IHJlYWQgYXMgXCJ0aGUgZGlhbG9nIGRvZXNuJ3Qgb3BlblwiKS4gWzIyLjA3LjIwMjZdXG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLy8gTm8gYW5jaG9yIGFycm93IG9uIHRoZSBjZW50ZXJlZCBkaWFsb2cuXG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LWRpYWxvZzo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtZGlhbG9nIC5wb3Atc2NyaW0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIHotaW5kZXg6IDA7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LWRpYWxvZyAucG9wLXBhbmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvLyBNYXRjaGVzIHRoZSBkZXNpZ24gY2FudmFzIChwb3BvdmVyX2JpZy5zdmcgaXMgNzAyIHdpZGUpOyBob2xkcyB0aGUgNTQwLXdpZGVcbiAgLy8gaWxsdXN0cmF0aW9uIHdpdGggcm9vbSB0byBicmVhdGhlLiBGYWxscyBiYWNrIHRvIDk0dncgb24gbmFycm93IHNjcmVlbnMuXG4gIHdpZHRoOiBtaW4oOTR2dywgNzAycHgpO1xuICBtYXgtaGVpZ2h0OiA4NnZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAyOHB4IDI0cHggMjRweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1jYXJkKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMjIpO1xuICAvLyBTdWJ0bGUgc2NhbGUtaW4gb24gdG9wIG9mIHRoZSBob3N0J3MgZXhpc3Rpbmcgb3BhY2l0eSB0cmFuc2l0aW9uIChiYXNlIHJ1bGUpLlxuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTYpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xOHMgZWFzZTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtZGlhbG9nLmlzLW9wZW4gLnBvcC1wYW5lbCB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG4vLyBSb3VuZCBuYXZ5IGNsb3NlIChYKSwgdG9wLXJpZ2h0IOKAlCBzYW1lIG5hdnkgYXMgYnV0dG9uLW9uLXB1cnBsZS1zb2xpZFxuLy8gKC0tYy1wdXJwbGUtNzAwLCAjMmEzMjY4KSBzbyB0aGUgY2xvc2UgY2lyY2xlIGFuZCB0aGUgcHJpbWFyeSBmb290ZXIgYnV0dG9uXG4vLyByZWFkIGFzIG9uZSBjb25zaXN0ZW50IHN5c3RlbS5cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtZGlhbG9nIC5wb3AtY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTZweDtcbiAgcmlnaHQ6IDE2cHg7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4vLyBUT05FRCBESUFMT0dTIChkYW5nZXIgLyBzdWNjZXNzKSDigJQgbWlycm9yIG9mIC5icy10b25lLSogb24gdGhlIGJvdHRvbSBzaGVldDogc2FtZVxuLy8gcmVkLTUwMCBwYW5lbCwgc2FtZSB3aGl0ZSB0ZXh0LCBzYW1lIGZyZWUtc3RhbmRpbmcgYmFkZ2UuIFRoZSB0YWJsZXQgc2lkZSBvZiBhIGNvbmZpcm1cbi8vIHRoYXQgaXMgYSBib3R0b20gc2hlZXQgb24gdGhlIHBob25lLCBzbyB0aGUgdHdvIG11c3Qgbm90IGRyaWZ0LlxuLy8gU3VyZmFjZSBpcyByZWQtNTAwIGFuZCB0ZXh0IGlzIEZVTEwgd2hpdGUgZm9yIHRoZSBjb250cmFzdCByZWFzb24gZG9jdW1lbnRlZCBvbiB0aGVcbi8vIHNoZWV0IGFuZCBvbiB0aGUgcmFtcCBpbiBfZGVzaWduLXRva2Vucy5zY3NzLlxuLy9cbi8vIFRoZSBmb290ZXIgc3RheXMgU0lERSBCWSBTSURFIGhlcmUgd2hpbGUgdGhlIHNoZWV0IHN0YWNrczogc3RhY2tpbmcgaXMgd2hhdCBtYWtlcyBhXG4vLyBwaG9uZSdzIGNvbmZpcm0gYSBkZWxpYmVyYXRlIHRodW1iIHByZXNzLCBhbmQgb24gYSA1MjBweCBkaWFsb2cgaXQganVzdCBsZWF2ZXMgYSB3aWRlXG4vLyBidXR0b24gZmxvYXRpbmcgaW4gc3BhY2UuIFtLaW0gMTguMDguMjAyNl1cbi8qIFN1cmZhY2UgY29sb3VycyBjb21lIGZyb20gdGhlIHNoYXJlZCBkaWFsb2ctdG9uZSB0b2tlbnMgKEtpbSdzIGV4YWN0IHNldCBmb3IgdGhlXG4gICBQdWxzZSB2ZXJkaWN0IHNoZWV0cywgMDMuMDkuMjAyNikgc28gYSBjb25maXJtIHJvdXRlZCB0byB0aGlzIHBvcG92ZXIgb24gYSB3aWRlXG4gICBzY3JlZW4gaXMgdGhlIHNhbWUgY29sb3VyIGFzIHRoZSBib3R0b20gc2hlZXQgaXQgcmVwbGFjZXMgb24gYSBwaG9uZS4gKi9cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtZGFuZ2VyIC5wb3AtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy1kYW5nZXItc3VyZmFjZSk7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC10b25lLWRhbmdlciAucG9wLWNsb3NlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctZGFuZ2VyLWdyYWIpO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS1zdWNjZXNzIC5wb3AtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy1zdWNjZXNzLXN1cmZhY2UpO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS1zdWNjZXNzIC5wb3AtY2xvc2Uge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy1zdWNjZXNzLWdyYWIpO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS13YXJuaW5nIC5wb3AtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy13YXJuaW5nLXN1cmZhY2UpO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS13YXJuaW5nIC5wb3AtY2xvc2Uge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy13YXJuaW5nLWdyYWIpO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS1kYW5nZXIgLnBvcC1kaWFsb2ctdGl0bGUsXG4ucWRuYXByby1wb3BvdmVyLnBvcC10b25lLWRhbmdlciAucG9wLWRpYWxvZy10ZXh0LFxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS1zdWNjZXNzIC5wb3AtZGlhbG9nLXRpdGxlLFxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS1zdWNjZXNzIC5wb3AtZGlhbG9nLXRleHQsXG4ucWRuYXByby1wb3BvdmVyLnBvcC10b25lLXdhcm5pbmcgLnBvcC1kaWFsb2ctdGl0bGUsXG4ucWRuYXByby1wb3BvdmVyLnBvcC10b25lLXdhcm5pbmcgLnBvcC1kaWFsb2ctdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cbi8vIEJpZ2dlciB0aGFuIHRoZSBwdXJwbGUgZGlhbG9nJ3MgMjBweCwgbWF0Y2hpbmcgdGhlIGJvdHRvbSBzaGVldCdzIHRvbmVkIHRpdGxlXG4vLyAoMjRweCBuZXh0IHRvIGEgNDBweCBpY29uLCBLaW0ncyB2ZXJkaWN0LXNoZWV0IGRlc2lnbiwgMDMuMDkuMjAyNiAvIG1pcnJvcmVkIGhlcmVcbi8vIDA0LjA5LjIwMjYpOiBhIHRvbmVkIGRpYWxvZyBoYXMgbm8gaWxsdXN0cmF0aW9uIGNvbXBldGluZyBmb3IgYXR0ZW50aW9uLCBzbyB0aGVcbi8vIHRpdGxlIGNhcnJpZXMgdGhlIHdlaWdodC5cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtZGFuZ2VyIC5wb3AtZGlhbG9nLXRpdGxlLFxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS1zdWNjZXNzIC5wb3AtZGlhbG9nLXRpdGxlLFxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS13YXJuaW5nIC5wb3AtZGlhbG9nLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy1iYWRnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDAgYXV0byAxNnB4O1xufVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy1iYWRnZS1jaXJjbGUge1xuICAtLXBvcC1iYWRnZS1zaXplOiA5NnB4O1xuICB3aWR0aDogdmFyKC0tcG9wLWJhZGdlLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXBvcC1iYWRnZS1zaXplKTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS00MDApO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS1kYW5nZXIgLnBvcC1kaWFsb2ctYmFkZ2UtY2lyY2xlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy13YXJuLXJlZC0zMDApO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS1zdWNjZXNzIC5wb3AtZGlhbG9nLWJhZGdlLWNpcmNsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VjY2Vzcy0zMDApO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS13YXJuaW5nIC5wb3AtZGlhbG9nLWJhZGdlLWNpcmNsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLXdhcm5pbmctY2FyZCk7XG59XG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWJhZGdlLWFydCB7XG4gIC0tcWwtc2l6ZTogODhweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA4OHB4O1xuICBoZWlnaHQ6IDg4cHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1kaWFsb2ctYmFkZ2UtY2lyY2xlIC5wb3AtZGlhbG9nLWJhZGdlLWFydCB7XG4gIC0tcWwtc2l6ZTogY2FsYyh2YXIoLS1wb3AtYmFkZ2Utc2l6ZSkgKiAwLjU1KTtcbiAgd2lkdGg6IGNhbGModmFyKC0tcG9wLWJhZGdlLXNpemUpICogMC41NSk7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1wb3AtYmFkZ2Utc2l6ZSkgKiAwLjU1KTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtZGFuZ2VyIC5wb3AtZGlhbG9nLWJhZGdlLWNpcmNsZSAucG9wLWRpYWxvZy1iYWRnZS1hcnQge1xuICBjb2xvcjogdmFyKC0tYy13YXJuLXJlZC05MDApO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS1zdWNjZXNzIC5wb3AtZGlhbG9nLWJhZGdlLWNpcmNsZSAucG9wLWRpYWxvZy1iYWRnZS1hcnQge1xuICBjb2xvcjogdmFyKC0tYy1zdWNjZXNzLTkwMCk7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LWRpYWxvZyAucG9wLWRpYWxvZy1ib2R5IHtcbiAgcGFkZGluZy10b3A6IDRweDtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtZGlhbG9nIC5wb3AtZGlhbG9nLWlsbHVzdHJhdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4vLyBGb290ZXI6IGJ1dHRvbnMgTkVYVCBUTyBlYWNoIG90aGVyIChyb3cpLCBwcmltYXJ5IG9uIHRoZSByaWdodC5cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtZGlhbG9nIC5wb3AtZGlhbG9nLWZvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTJweDtcbiAgbWFyZ2luLXRvcDogMjRweDtcbn1cblxuLy8gLS0tIGxpZ2h0OiBkZXplbGZkZSBkaWFsb2cgb3AgV0lUIChLaW0gMDMuMDguMjAyNikgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFwiS3VuIGplIGRpdCBnZXdvb24gZWVuIHdpdHRlIGRpYWxvZyB2ZXJzaWUgZG9lbiwgcGFhcnMgdmluZCBpayBlZW4gYmVldGplIHRlIHZlZWwuXCJcbi8vIEJld3VzdCBBTExFRU4gZWVuIGtsZXVyLW1vZGlmaWVyOiBtYWF0dm9lcmluZywgc2x1aXQtWC1wb3NpdGllLCBzY3JpbS1nZWRyYWcsIHN0aWNreVxuLy8gaGVhZGVyIGVuIHZvZXR0ZWtzdCBibGlqdmVuIHZhbiAucG9wLXZhcmlhbnQtZGlhbG9nLiBWaWVyIHBsZWtrZW4gemV0dGVuIGRlIHBhYXJzZVxuLy8ga2xldXIgZW4gZGllIHZpZXIgd29yZGVuIGhpZXIgb21nZXpldCwgbmlldHMgbWVlci4gQmVkb2VsZCB2b29yIGVlbiBkaWFsb2cgZGllIHZvb3JhbFxuLy8gSU5IT1VEIGlzIChlZW4gbGlqc3QpOyBlZW4gdnJhYWcgbcOpdCBpbGx1c3RyYXRpZSBibGlqZnQgcGFhcnMuXG4vLyBEZSBTQ1JJTSBibGlqZnQgYmV3dXN0IGhldHplbGZkZSBkb25rZXI6IGVlbiB3aXR0ZSBrYWFydCBoZWVmdCBqdWlzdCBkYXQgY29udHJhc3Rcbi8vIG5vZGlnIG9tIGFscyBrYWFydCB0ZSBsZXplbi5cbi8vIExFVCBPUDogZGUgdm9ldHRla3N0a25vcHBlbiB6aWpuIHFkbmFwcm8tYnV0dG9uIHR5cGU9XCJvbi1wdXJwbGUoLXNvbGlkKVwiLiBEaWUgemlqblxuLy8gb25sZWVzYmFhciBvcCB3aXQsIGR1cyBlZW4gbGljaHRlIGRpYWxvZyBNRVQgZm9vdGVyIG1vZXQgemlqbiBlaWdlbiBrbm9wdHlwZXMgemV0dGVuLlxuLy8gRGV6ZSBlZXJzdGUgYWZuZW1lciAoZGUgZG9jdW1lbnRlbmxpanN0IHZhbiBlZW4gdGFrZW5saWpzdCkgaGVlZnQgZ2VlbiBmb290ZXIuXG4ucWRuYXByby1wb3BvdmVyLnBvcC1kaWFsb2ctbGlnaHQgLnBvcC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC1kaWFsb2ctbGlnaHQgLnBvcC1kaWFsb2ctdGl0bGUge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtZGlhbG9nLWxpZ2h0IC5wb3AtZGlhbG9nLXRleHQge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLWRpYWxvZy1saWdodCAucG9wLWNsb3NlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmNWY2ZjgpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xufVxuXG4vLyAtLS0gU3RpY2t5IGhlYWRlciByb3cgKHZhcmlhbnQ9XCJkaWFsb2dcIiB3aXRoIGEgW2RhdGEtcG9wLWhlYWRlcl0gY2hpbGQpIC0tLVxuLy8gT3B0LWluLCBmb3IgYSBkaWFsb2cgd2hvc2UgY29udGVudCBpcyBhIHNlYXJjaGFibGUvc2Nyb2xsYWJsZSBMSVNUIGluc3RlYWQgb2YgYSBzaG9ydFxuLy8gaWxsdXN0cmF0ZWQgbWVzc2FnZSAoUFdBIHRhc2tsaXN0IGNob29zZXIpLiBUd28gdGhpbmdzIGNoYW5nZSwgYW5kIG9ubHkgd2hlbiBhIGhlYWRlclxuLy8gaXMgYWN0dWFsbHkgcHJlc2VudCwgc28gZXZlcnkgZXhpc3RpbmcgZGlhbG9nIGtlZXBzIGl0cyBhYnNvbHV0ZSBYICsgc2Nyb2xsaW5nIGNhcmQ6XG4vLyAgIDEuIHRoZSByb3VuZCBYIGJlY29tZXMgYSBmbGV4IGl0ZW0gaW4gdGhpcyByb3csIHNvIGhlYWRlciBjb250ZW50IGFuZCBYIGxpbmUgdXAgYnlcbi8vICAgICAgY29uc3RydWN0aW9uIGluc3RlYWQgb2YgYnkgbWF0Y2hpbmcgdHdvIGluZGVwZW5kZW50IG9mZnNldHM7XG4vLyAgIDIuIHRoZSBDQVJEIHN0b3BzIHNjcm9sbGluZyBhbmQgdGhlIEJPRFkgc2Nyb2xscywgd2hpY2ggaXMgd2hhdCBrZWVwcyB0aGlzIHJvdyAoYW5kXG4vLyAgICAgIHRoZSBmb290ZXIpIGluIHBsYWNlIHdoaWxlIHRoZSBsaXN0IG1vdmVzIHVuZGVybmVhdGguXG4vLyBbS2ltIDI5LjA3LjIwMjZdXG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LWRpYWxvZyAucG9wLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG4vLyBUaGUgZmlyc3QgaGVhZGVyIGNoaWxkIHRha2VzIHRoZSBmcmVlIHdpZHRoIChhIHNlYXJjaCBmaWVsZCwgYSB0aXRsZSk7IHRoZSBYIGtlZXBzIGl0c1xuLy8gb3duIHNpemUuIERlbGliZXJhdGVseSBwb3NpdGlvbmFsIGFuZCBub3QgYSBuYW1lZCBjbGFzczogdGhlIHJvdyBpcyBhIGNvbnN1bWVyIHNsb3QuXG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LWRpYWxvZyAucG9wLWhlYWRlciA+ICo6Zmlyc3QtY2hpbGQge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xufVxuLy8gT3V0IG9mIHRoZSBjb3JuZXIsIGludG8gdGhlIHJvdy4gdG9wL3JpZ2h0IGFyZSByZXNldCBleHBsaWNpdGx5IGJlY2F1c2UgdGhlIGJhc2UgcnVsZVxuLy8gc3RpbGwgc2V0cyB0aGVtIGFuZCBhIHN0YXRpYyBib3ggd291bGQgb3RoZXJ3aXNlIGtlZXAgdGhlbSBhcyBkZWFkIGRlY2xhcmF0aW9ucy5cbi8vIFRoZSA0NHB4IGJveCAoaW5zdGVhZCBvZiB0aGUgY29ybmVyIFgncyAzMikgaXMgcWRuYXByby1pY29uLWJ0biBzaXplPVwidG91Y2hcIjogaW4gYSByb3dcbi8vIHRoZSBYIGlzIG9uZSBidXR0b24gYW1vbmcgc2V2ZXJhbCwgc28gaXQgaGFzIHRvIGNhcnJ5IGEgc2l6ZSBmcm9tIHRoZSBCVVRUT04gc2NhbGUsIG5vdFxuLy8gaXRzIG93bi4gVGhlIGdseXBoIHN0ZXBzIHRvIDI0cHggaW4gSlMgdG8gbWF0Y2guIENvbnN1bWVycyBwdXQgdGhlaXIgb3duIHJvdW5kIGJ1dHRvbnNcbi8vIGhlcmUgKHRoZSBQV0EgdGFza2xpc3QgY2hvb3NlciBoYXMgYSB2aWV3LW9wdGlvbnMgaWNvbi1idG4gbmV4dCB0byBpdCkgYW5kIHRocmVlXG4vLyBkaWZmZXJlbnQgZGlhbWV0ZXJzIGluIG9uZSByb3cgaXMgZXhhY3RseSB3aGF0IEtpbSBmbGFnZ2VkLiA0NCBhbmQgbm90IDI4OiBLaW0gYXNrZWQgZm9yXG4vLyB0aGVzZSBjaXJjbGVzIHRvIHNpbXBseSBiZSBCSUcgbmV4dCB0byB0aGUgc2VhcmNoIGZpZWxkLCBhbmQgdG91Y2ggaXMgYm90aCB0aGUgbGFyZ2VzdFxuLy8gZXhpc3Rpbmcgc2l6ZSBhbmQgdGhlIG1pbmltdW0gdGFwIHRhcmdldCAtIHNvIG5vIGZvdXJ0aCBkaWFtZXRlciBlbnRlcnMgdGhlIHN5c3RlbS5cbi8vIFtLaW0gMzAuMDcuMjAyNl1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtZGlhbG9nLnBvcC1oYXMtaGVhZGVyIC5wb3AtY2xvc2Uge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbn1cbi8vIFBhbmVsID0gZml4ZWQgZnJhbWUgKGhlYWRlciAvIHNjcm9sbGluZyBib2R5IC8gZm9vdGVyKSwgbm8gbG9uZ2VyIHRoZSBzY3JvbGwgY29udGFpbmVyLlxuLy8gcGFkZGluZy10b3AgbWF0Y2hlcyB0aGUgMTZweCB0aGUgYWJzb2x1dGUgWCB1c2VkIHRvIHNpdCBhdCwgc28gdGhlIGhlYWRlciByb3cgbGFuZHNcbi8vIHdoZXJlIHRoZSBYIGFscmVhZHkgd2FzIGFuZCB0aGUgY2FyZCdzIHRvcCBlZGdlIGRvZXMgbm90IHNoaWZ0LlxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdmFyaWFudC1kaWFsb2cucG9wLWhhcy1oZWFkZXIgLnBvcC1wYW5lbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctdG9wOiAxNnB4O1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdmFyaWFudC1kaWFsb2cucG9wLWhhcy1oZWFkZXIgLnBvcC1ib2R5IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7IC8vIHdpdGhvdXQgdGhpcyBhIGZsZXggY2hpbGQgcmVmdXNlcyB0byBzaHJpbmsgYmVsb3cgaXRzIGNvbnRlbnRcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4vLyBNZWRpdW0gc2l6ZSBvZiB0aGUgYmlnIGRpYWxvZzogbmFycm93ZXIgY2FyZCAoaWxsdXN0cmF0aW9uIHNjYWxlcyB0byA0MDAgaW4gSlMpLlxuLy8gSGlnaGVyIHNwZWNpZmljaXR5IHRoYW4gdGhlIGJhc2UgLnBvcC12YXJpYW50LWRpYWxvZyAucG9wLXBhbmVsIHNvIGl0IHdpbnMgdGhlIHdpZHRoLlxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdmFyaWFudC1kaWFsb2cucG9wLXNpemUtbWVkaXVtIC5wb3AtcGFuZWwge1xuICB3aWR0aDogbWluKDkydncsIDUyMHB4KTtcbn1cblxuLy8gLS0tIHZhcmlhbnQ9XCJkaWFsb2ctYXJyb3dcIjogU01BTEwgcG9wb3ZlciwgYW5jaG9yZWQgKyBhcnJvd2VkIHRvIGEgdHJpZ2dlciAtLS1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtZGlhbG9nLWFycm93IHtcbiAgLy8gMzQwIG1hdGNoZXMgdGhlIGRlc2lnbiBjYW52YXMgKHBvcG92ZXJfc21hbGwuc3ZnIGlzIDMzOSB3aWRlKSBhbmQgZ2l2ZXMgdGhlXG4gIC8vIDIyMC13aWRlIGlsbHVzdHJhdGlvbiBjb21mb3J0YWJsZSBtYXJnaW5zLlxuICB3aWR0aDogMzQwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIC8vIFRoZSBiYXNlIHJ1bGUncyA2cHggcGFkZGluZyBzdWl0cyBhbiBhY3Rpb24tbGlzdCAoYnV0dG9uLWdyb3VwcyBjYXJyeSB0aGVpciBvd25cbiAgLy8gaW5zZXRzKTsgYSBmdWxsIGlsbHVzdHJhdGVkIGRpYWxvZyBuZWVkcyByZWFsIGJyZWF0aGluZyByb29tLCBzbyBnaXZlIHRoZSBzbWFsbFxuICAvLyBkaWFsb2cgaXRzIG93biBwYWRkaW5nIChtYXRjaGVzIHRoZSBjb21wYWN0IHNwYWNpbmcgaW4gS2ltJ3Mgc2NyZWVuc2hvdCkuXG4gIHBhZGRpbmc6IDIwcHggMjBweCAxOHB4O1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdmFyaWFudC1kaWFsb2ctYXJyb3c6OmJlZm9yZSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LWRpYWxvZy1hcnJvdy5wb3AtYWJvdmU6OmJlZm9yZSB7XG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLy8gLnBvcC1wYW5lbCBpcyBhIHBsYWluIHVuc3R5bGVkIHdyYXBwZXIgaGVyZSDigJQgdGhlIGhvc3QgaXRzZWxmIChiYXNlIHJ1bGUpIGFscmVhZHlcbi8vIGNhcnJpZXMgdGhlIHBhZGRpbmcvYmFja2dyb3VuZC9yYWRpdXMvc2hhZG93LCBzYW1lIGFzIHdoaXRlL3B1cnBsZS4gVGhpcyBrZWVwc1xuLy8gdGhlIHNtYWxsIHBvcG92ZXIncyBzcGFjaW5nIGlkZW50aWNhbCB0byB0aGUgZXhpc3RpbmcgKG5vbi1kaWFsb2cpIHZhcmlhbnRzLlxuLy8gRm9vdGVyOiBidXR0b25zIFNUQUNLRUQgKGNvbHVtbiksIGZ1bGwtd2lkdGguXG4ucWRuYXByby1wb3BvdmVyLnBvcC12YXJpYW50LWRpYWxvZy1hcnJvdyAucG9wLWRpYWxvZy1mb290ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDhweDtcbiAgbWFyZ2luLXRvcDogMTZweDtcbn1cblxuLy8g4pSA4pSAIFRpdGxlIGFydCAodGl0bGUtbG90dGllIC8gdGl0bGUtbG90dGllLW5hbWUgLyB0aXRsZS1pY29uKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEEgU01BTEwgYW5pbWF0ZWQgZ2x5cGggcmlnaHQgbmV4dCB0byB0aGUgaGVhZGluZywgbWlycm9yIG9mIC5icy1kaWFsb2ctdGl0bGUtYXJ0IG9uXG4vLyBxZG5hcHJvLWJvdHRvbS1zaGVldCAoc2VlIHRoYXQgZmlsZSdzIGRvY2Jsb2NrIGFuZCBfYm90dG9tLXNoZWV0LnNjc3MpIOKAlCB0aGUgUHVsc2Vcbi8vIHZlcmRpY3QgZGlhbG9nIChcIkNvcnJlY3QhXCIgKyBhIGNoZWNrKSBoYXMgdG8gbG9vayBieXRlLWlkZW50aWNhbCB3aGV0aGVyIGl0IG9wZW5zIGFzIGFcbi8vIHNoZWV0IG9uIHRoZSBwaG9uZSBvciB0aGlzIHBvcG92ZXIgb24gYSB3aWRlIHNjcmVlbi4gNDB4NDAsIGxvb3BzIHdoaWxlIHRoZSBwb3BvdmVyIGlzXG4vLyBvcGVuIChzZWUgdGhlIEpTIGZvciB3aHkpLiBbS2ltIDA0LjA5LjIwMjZdXG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLXRpdGxlLXdpdGgtYXJ0IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDEycHg7XG59XG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLXRpdGxlLWFydCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG59XG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLXRpdGxlLWxvdHRpZSB7XG4gIC0tcWwtc2l6ZTogNDBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG59XG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLXRpdGxlLWljb24ge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG5cbi8vIOKUgOKUgCBGbG9hdCBzbG90IChzbG90PVwiZmxvYXRcIikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBDaGlsZHJlbiBtYXJrZWQgc2xvdD1cImZsb2F0XCIgYXJlIHBhcmtlZCBoZXJlLCBBQk9WRSB0aGUgcGFuZWwncyB0b3AgZWRnZSwgcmlnaHQtYWxpZ25lZFxuLy8gYW5kIDE0cHggY2xlYXIgb2YgaXQg4oCUIG1pcnJvciBvZiBxZG5hcHJvLWJvdHRvbS1zaGVldCdzIGAuYnMtZmxvYXRgIChLaW0ncyBkZXNpZ246IHRoZVxuLy8gcG9pbnRzIHBpbGwgc2l0cyBpbiB0aGUgZ2FwIGJldHdlZW4gdGhlIGNhcmQgcGhvdG8gYW5kIHRoZSBzaGVldC9wb3BvdmVyKS4gQWJzb2x1dGVcbi8vIGluc2lkZSBgLnBvcC1wYW5lbGAsIHdoaWNoIGlzIGBwb3NpdGlvbjogcmVsYXRpdmVgIG9uIHRoZSBiaWcgY2VudGVyZWQgZGlhbG9nIGFuZCBsYW5kc1xuLy8gb24gdGhlIGhvc3QncyBvd24gYHBvc2l0aW9uOiBmaXhlZGAgYm94IG9uIHRoZSBzbWFsbCBhbmNob3JlZCBkaWFsb2ctYXJyb3cg4oCUIGVpdGhlciB3YXlcbi8vIHRoZSBmbG9hdCBzdHJpcCBzaXRzIHJpZ2h0IGFib3ZlIHRoZSB2aXNpYmxlIHBhbmVsLiBwb2ludGVyLWV2ZW50cyBvZmY6IGl0IGlzIGEgbGFiZWwsXG4vLyBub3QgYSBjb250cm9sLCBhbmQgbXVzdCBub3QgYmxvY2sgYSBjbGljayBtZWFudCBmb3IgdGhlIHNjcmltL291dHNpZGUtY2xpY2sgZGlzbWlzc2FsXG4vLyBiZWhpbmQgaXQuIFtLaW0gMDQuMDkuMjAyNl1cbi8qIEVlbiBkaWFsb29nIE1FVCBlZW4gZmxvYXQta2luZCBtYWcgbmlldCBrbGlwcGVuOiBkZSBwaWwgaGFuZ3QgYm92ZW4gZGUgYm92ZW5yYW5kXG4gICB2YW4gaGV0IHBhbmVlbCBlbiBgb3ZlcmZsb3cteTogYXV0b2Agb3AgZGF0IHBhbmVlbCBzbmVlZCBoZW0gY29tcGxlZXQgd2VnIChnZW1ldGVuXG4gICBvcCBlZW4gcmVuZGVyLCAwNC4wOS4yMDI2KS4gSGV0IHNjaHVpdmVuIHZlcmh1aXN0IGRhYXJvbSBuYWFyIGRlIGRpYWxvb2ctYm9keSwgZW5cbiAgIGFsbGVlbiB2b29yIGVlbiBkaWFsb29nIGRpZSBlY2h0IGVlbiBmbG9hdCBkcmFhZ3QgLSBlZW4gZGlhbG9vZyB6b25kZXIgZmxvYXQgaG91ZHRcbiAgIGV4YWN0IGhldCBnZWRyYWcgZGF0IGhpaiBoYWQuIERlIGhvb2d0ZS1jYXAgeml0IGRhbiBvcCBkZSBib2R5OiBrb3AsIHNsdWl0LVggZW5cbiAgIHZvZXRrbm9wIGJsaWp2ZW4gc3RhYW4gZW4gYWxsZWVuIGRlIGluaG91ZCBzY2h1aWZ0LCB3YXQgdm9vciBlZW4gZGlhbG9vZyBtZXQgZWVuXG4gICByaWogYW50d29vcmRrYWFydGVuIG9vayBoZXQgYmV0ZXJlIGdlZHJhZyBpcy4gKi9cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXZhcmlhbnQtZGlhbG9nLnBvcC1oYXMtZmxvYXQgLnBvcC1wYW5lbCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdmFyaWFudC1kaWFsb2cucG9wLWhhcy1mbG9hdCAucG9wLWRpYWxvZy1ib2R5IHtcbiAgbWF4LWhlaWdodDogNjJ2aDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWZsb2F0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTBweDtcbiAgYm90dG9tOiBjYWxjKDEwMCUgKyAxNHB4KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLy8gVGhlIHBpbGwga2VlcHMgdGhlIEJPVFRPTSBTSEVFVCdzIG93biBjbGFzcyAoYGJzLXBpbGxgLCBub3QgYSBwb3BvdmVyLXNwZWNpZmljIG9uZSk6XG4vLyB0aGUgY29uc3VtZXIgaGFuZHMgdGhlIGV4YWN0IHNhbWUgbWFya3VwIHRvIHRoZSBzaGVldCBhbmQgdG8gdGhpcyBwb3BvdmVyLCBzbyB0aGUgcGlsbFxuLy8gbXVzdCBiZSBzdHlsZWQgaGVyZSB0b28gKHNhbWUgYWZzcHJhYWsgYXMgYC5icy1kaWFsb2ctYnVsbGV0YCBhYm92ZSkuIFNhbWUgc2l6aW5nL3RvbmVcbi8vIHJ1bGVzIGFzIGAucWRuYXByby1ib3R0b20tc2hlZXQgLmJzLXBpbGxgIGluIF9ib3R0b20tc2hlZXQuc2NzcyDigJQgdGhlIHRvbmUncyBTVVJGQUNFXG4vLyBjb2xvdXIsIHNvIGl0IHJlYWRzIGFzIGEgcGllY2Ugb2YgdGhlIGRpYWxvZyBmbG9hdGluZyBmcmVlOyB0aGUgcHVycGxlIGRpYWxvZyBnZXRzIHRoZVxuLy8gcHVycGxlIHN1cmZhY2UgZm9yIHRoZSBzYW1lIHJlYXNvbi5cbi5xZG5hcHJvLXBvcG92ZXIgLmJzLXBpbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGhlaWdodDogNDlweDtcbiAgcGFkZGluZzogMCAxOHB4IDAgMTRweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsLCA5OTlweCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogODAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtZGFuZ2VyIC5icy1waWxsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctZGFuZ2VyLXN1cmZhY2UpO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS1zdWNjZXNzIC5icy1waWxsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctc3VjY2Vzcy1zdXJmYWNlKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtd2FybmluZyAuYnMtcGlsbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLXdhcm5pbmctc3VyZmFjZSk7XG59XG5cbi8vIOKUgOKUgCBWZXJkaWN0IGNhcmRzICguYnMtZGlhbG9nLWNhcmQpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gT25lIHJvdW5kZWQgYmxvY2sgcGVyIGFuc3dlciBvcHRpb24gb24gYSB0b25lZCBkaWFsb2c6IGEgYm9sZCBoZWFkICh2ZXJkaWN0IGljb24gK1xuLy8gb3B0aW9uIHRleHQpIGFuZCB0aGUgZXhwbGFuYXRpb24gdW5kZXIgaXQsIHdoaXRlIG9uIHRoZSB0b25lJ3MgQ0FSRCBjb2xvdXIg4oCUIG1pcnJvciBvZlxuLy8gYC5icy1kaWFsb2ctY2FyZGAgb24gcWRuYXByby1ib3R0b20tc2hlZXQgKHNlZSBfYm90dG9tLXNoZWV0LnNjc3MgZm9yIHRoZSBmdWxsIGNvbW1lbnQpLlxuLy8gU0FNRSBjbGFzcyBuYW1lcyBhcyB0aGUgc2hlZXQgKGAuYnMtZGlhbG9nLWNhcmRgLCBub3QgYSBwb3BvdmVyLXNwZWNpZmljIG9uZSksIGZvciB0aGVcbi8vIHNhbWUgcmVhc29uIHRoZSBwaWxsIGtlZXBzIGBicy1waWxsYDogdGhlIGNvbnN1bWVyIGJ1aWxkcyB0aGlzIG1hcmt1cCBPTkNFIGFuZCBoYW5kcyBpdFxuLy8gdG8gd2hpY2hldmVyIHN1cmZhY2UgaXMgc2hvd2luZy4gVGhlIHR3byBpbmxpbmUgZGF0YS1VUkkgU1ZHcyAoS2ltJ3MgY2hlY2sgYW5kIGNyb3NzKVxuLy8gYXJlIGNvcGllZCB2ZXJiYXRpbSBmcm9tIF9ib3R0b20tc2hlZXQuc2Nzcywgbm90IHJlZHJhd24uIExpdmVzIGluc2lkZVxuLy8gLnBvcC1kaWFsb2ctY29udGVudCBsaWtlIHRoZSBidWxsZXQgcm93cy4gW0tpbSAwNC4wOS4yMDI2XVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZCB7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDE0cHggMTJweCAxNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDEuNzU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkICsgLmJzLWRpYWxvZy1jYXJkIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xufVxuLnFkbmFwcm8tcG9wb3ZlciAucG9wLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZC1oZWFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkLWljb24ge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IDIxcHg7XG4gIGhlaWdodDogMjFweDtcbiAgYmFja2dyb3VuZDogbm8tcmVwZWF0IGNlbnRlciAvIGNvbnRhaW47XG59XG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkW2RhdGEtdmVyZGljdD1cInJpZ2h0XCJdIC5icy1kaWFsb2ctY2FyZC1pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMjEnIGhlaWdodD0nMjEnIHZpZXdCb3g9JzAgMCAyMSAyMScgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTEwLjQ0MTMgMjAuMDk4NkMxNS43NzQ3IDIwLjA5ODYgMjAuMDk4NCAxNS43NzUgMjAuMDk4NCAxMC40NDE1QzIwLjA5ODQgNS4xMDgwNSAxNS43NzQ3IDAuNzg0NDI0IDEwLjQ0MTMgMC43ODQ0MjRDNS4xMDc4MSAwLjc4NDQyNCAwLjc4NDE4IDUuMTA4MDUgMC43ODQxOCAxMC40NDE1QzAuNzg0MTggMTUuNzc1IDUuMTA3ODEgMjAuMDk4NiAxMC40NDEzIDIwLjA5ODZaJyBmaWxsPSclMjM1OEI5OTInLyUzRSUzQ3BhdGggZD0nTTEwLjQ0MTQgMjAuODgyOEM0LjY4NCAyMC44ODI4IDAgMTYuMTk4OCAwIDEwLjQ0MTRDMCA0LjY4NCA0LjY4NCAwIDEwLjQ0MTQgMEMxNi4xOTg4IDAgMjAuODgyOCA0LjY4NCAyMC44ODI4IDEwLjQ0MTRDMjAuODgyOCAxNi4xOTg4IDE2LjE5ODggMjAuODgyOCAxMC40NDE0IDIwLjg4MjhaTTEwLjQ0MTQgMS41Njg2M0M1LjU0ODk0IDEuNTY4NjMgMS41Njg2MyA1LjU0ODk0IDEuNTY4NjMgMTAuNDQxNEMxLjU2ODYzIDE1LjMzMzkgNS41NDg5NCAxOS4zMTQyIDEwLjQ0MTQgMTkuMzE0MkMxNS4zMzM5IDE5LjMxNDIgMTkuMzE0MiAxNS4zMzM5IDE5LjMxNDIgMTAuNDQxNEMxOS4zMTQyIDUuNTQ4OTQgMTUuMzMzOSAxLjU2ODYzIDEwLjQ0MTQgMS41Njg2M1onIGZpbGw9JyUyMzJGNUQ0QScvJTNFJTNDcGF0aCBkPSdNOS4yNjczOSAxNC4yMTk3QzguOTM0OTIgMTQuMjE5NyA4LjYyMjM3IDE0LjA5MDIgOC4zODczMiAxMy44NTUxTDUuODM5MDggMTEuMzA2OUM1LjUzMjgxIDExLjAwMDYgNS41MzI4MSAxMC41MDQgNS44MzkwOCAxMC4xOTc2QzYuMTQ1MzYgOS44OTEzNiA2LjY0MTk4IDkuODkxMzYgNi45NDgyNiAxMC4xOTc2TDkuMjY3MzIgMTIuNTE2N0wxMy45MzQyIDcuODQ5NzlDMTQuMjQwNSA3LjU0MzYgMTQuNzM3IDcuNTQzNTIgMTUuMDQzNCA3Ljg0OTc5QzE1LjM0OTcgOC4xNTYwNyAxNS4zNDk3IDguNjUyNyAxNS4wNDM0IDguOTU5MDVMMTAuMTQ3MyAxMy44NTVDOS45MTI0MSAxNC4wOTAyIDkuNTk5ODYgMTQuMjE5NyA5LjI2NzM5IDE0LjIxOTdaJyBmaWxsPSd3aGl0ZScvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWNhcmRbZGF0YS12ZXJkaWN0PVwid3JvbmdcIl0gLmJzLWRpYWxvZy1jYXJkLWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScyMScgaGVpZ2h0PScyMScgdmlld0JveD0nMCAwIDIxIDIxJyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMTAuMTkwMiAxOS42MTQ2QzE1LjM5NTMgMTkuNjE0NiAxOS42MTQ5IDE1LjM5NTEgMTkuNjE0OSAxMC4xOUMxOS42MTQ5IDQuOTg0OTIgMTUuMzk1MyAwLjc2NTM4MSAxMC4xOTAyIDAuNzY1MzgxQzQuOTg1MTcgMC43NjUzODEgMC43NjU2MjUgNC45ODQ5MiAwLjc2NTYyNSAxMC4xOUMwLjc2NTYyNSAxNS4zOTUxIDQuOTg1MTcgMTkuNjE0NiAxMC4xOTAyIDE5LjYxNDZaJyBmaWxsPSclMjNGRjNBMzAnLyUzRSUzQ3BhdGggZD0nTTEwLjE5IDIwLjM4MDFDNC41NzEyNCAyMC4zODAxIDAgMTUuODA4OSAwIDEwLjE5QzAgNC41NzEyNCA0LjU3MTI0IDAgMTAuMTkgMEMxNS44MDg5IDAgMjAuMzgwMSA0LjU3MTI0IDIwLjM4MDEgMTAuMTlDMjAuMzgwMSAxNS44MDg5IDE1LjgwODkgMjAuMzgwMSAxMC4xOSAyMC4zODAxWk0xMC4xOSAxLjUzMDc5QzUuNDE1MzYgMS41MzA3OSAxLjUzMDg2IDUuNDE1MjggMS41MzA4NiAxMC4xOUMxLjUzMDg2IDE0Ljk2NDcgNS40MTUzNiAxOC44NDkyIDEwLjE5IDE4Ljg0OTJDMTQuOTY0NyAxOC44NDkyIDE4Ljg0OTIgMTQuOTY0NyAxOC44NDkyIDEwLjE5QzE4Ljg0OTIgNS40MTUyOCAxNC45NjQ4IDEuNTMwNzkgMTAuMTkgMS41MzA3OVonIGZpbGw9JyUyMzdDMTkxNCcvJTNFJTNDcGF0aCBkPSdNMTEuMjcyNiAxMC4xOUwxMy45NjYyIDcuNDk2NDFDMTQuMjY1MSA3LjE5NzUxIDE0LjI2NTEgNi43MTI4NCAxMy45NjYyIDYuNDEzOTRDMTMuNjY3MiA2LjExNDk2IDEzLjE4MjYgNi4xMTUxMiAxMi44ODM3IDYuNDEzODZMMTAuMTkgOS4xMDc1TDcuNDk2NDEgNi40MTM4NkM3LjE5NzUxIDYuMTE0OTYgNi43MTI4NCA2LjExNDk2IDYuNDEzODYgNi40MTM5NEM2LjExNDk2IDYuNzEyODQgNi4xMTQ5NiA3LjE5NzUxIDYuNDEzOTQgNy40OTY0MUw5LjEwNzU3IDEwLjE5TDYuNDEzOTQgMTIuODgzNUM2LjExNTA0IDEzLjE4MjQgNi4xMTQ5NiAxMy42NjcxIDYuNDEzODYgMTMuOTY2QzYuNTYzMzUgMTQuMTE1NSA2Ljc1OTIzIDE0LjE5MDIgNi45NTUxIDE0LjE5MDJDNy4xNTA5NyAxNC4xOTAyIDcuMzQ2OTMgMTQuMTE1NCA3LjQ5NjM0IDEzLjk2NkwxMC4xOSAxMS4yNzI0TDEyLjg4MzYgMTMuOTY2QzEzLjAzMyAxNC4xMTU1IDEzLjIyOSAxNC4xOTAyIDEzLjQyNDggMTQuMTkwMkMxMy42MjA3IDE0LjE5MDIgMTMuODE2NyAxNC4xMTU0IDEzLjk2NjEgMTMuOTY2QzE0LjI2NSAxMy42NjcxIDE0LjI2NSAxMy4xODI0IDEzLjk2NjEgMTIuODgzNUwxMS4yNzI2IDEwLjE5WicgZmlsbD0nd2hpdGUnLyUzRSUzQy9zdmclM0VcIik7XG59XG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkLXRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtZGFuZ2VyIC5wb3AtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctZGFuZ2VyLWNhcmQpO1xufVxuLnFkbmFwcm8tcG9wb3Zlci5wb3AtdG9uZS1zdWNjZXNzIC5wb3AtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctc3VjY2Vzcy1jYXJkKTtcbn1cbi5xZG5hcHJvLXBvcG92ZXIucG9wLXRvbmUtd2FybmluZyAucG9wLWRpYWxvZy1jb250ZW50IC5icy1kaWFsb2ctY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLXdhcm5pbmctY2FyZCk7XG59XG4ucWRuYXByby1wb3BvdmVyLnBvcC10b25lLXdhcm5pbmcgLnBvcC1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWNhcmRbZGF0YS12ZXJkaWN0PVwid3JvbmdcIl0ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy13YXJuaW5nLWNhcmQtd3JvbmcpO1xufVxuLy8gZGF0YS12ZXJkaWN0PVwibWlzc2VkXCIgZW4gLmJzLWRpYWxvZy1sYWJlbDogZGUganVpc3RlIGFudHdvb3JkZW4gZGllIGplIE5JRVQgYWFudmlua3RlLFxuLy8gbWV0IGhldCBrb3BqZSBlcmJvdmVuLiBaZWxmZGUgcmVnZWxzIGFscyBpbiBfYm90dG9tLXNoZWV0LnNjc3MgKGRhc2hlZCBvbWxpam5pbmcsXG4vLyBnZXN0aXBwZWxkIHZpbmtqZSkgLSBkZSB0d2VlIHNjaGlsbGVuIGRlbGVuIGRpdCBkaWFsb29nLWNvbnRyYWN0LiBbS2ltIDA0LjA5LjIwMjZdXG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1jYXJkW2RhdGEtdmVyZGljdD1cIm1pc3NlZFwiXSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDJweCBkYXNoZWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICBwYWRkaW5nOiAxMnB4IDEwcHggMTRweDtcbn1cbi5xZG5hcHJvLXBvcG92ZXIgLnBvcC1kaWFsb2ctY29udGVudCAuYnMtZGlhbG9nLWNhcmRbZGF0YS12ZXJkaWN0PVwibWlzc2VkXCJdIC5icy1kaWFsb2ctY2FyZC1pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMjEnIGhlaWdodD0nMjEnIHZpZXdCb3g9JzAgMCAyMSAyMScgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ2NpcmNsZSBjeD0nMTAuNScgY3k9JzEwLjUnIHI9JzkuMycgc3Ryb2tlPSd3aGl0ZScgc3Ryb2tlLXdpZHRoPScxLjcnIHN0cm9rZS1kYXNoYXJyYXk9JzMuMiAyLjgnLyUzRSUzQ3BhdGggZD0nTTkuMjY3MzkgMTQuMjE5N0M4LjkzNDkyIDE0LjIxOTcgOC42MjIzNyAxNC4wOTAyIDguMzg3MzIgMTMuODU1MUw1LjgzOTA4IDExLjMwNjlDNS41MzI4MSAxMS4wMDA2IDUuNTMyODEgMTAuNTA0IDUuODM5MDggMTAuMTk3NkM2LjE0NTM2IDkuODkxMzYgNi42NDE5OCA5Ljg5MTM2IDYuOTQ4MjYgMTAuMTk3Nkw5LjI2NzMyIDEyLjUxNjdMMTMuOTM0MiA3Ljg0OTc5QzE0LjI0MDUgNy41NDM2IDE0LjczNyA3LjU0MzUyIDE1LjA0MzQgNy44NDk3OUMxNS4zNDk3IDguMTU2MDcgMTUuMzQ5NyA4LjY1MjcgMTUuMDQzNCA4Ljk1OTA1TDEwLjE0NzMgMTMuODU1QzkuOTEyNDEgMTQuMDkwMiA5LjU5OTg2IDE0LjIxOTcgOS4yNjczOSAxNC4yMTk3WicgZmlsbD0nd2hpdGUnLyUzRSUzQy9zdmclM0VcIik7XG59XG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1sYWJlbCB7XG4gIG1hcmdpbjogMTZweCAwIDhweDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ucWRuYXByby1wb3BvdmVyIC5wb3AtZGlhbG9nLWNvbnRlbnQgLmJzLWRpYWxvZy1sYWJlbDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9icmVhZGNydW1iL19icmVhZGNydW1iLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLWJyZWFkY3J1bWIge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG5cbi5xZG5hcHJvLWJyZWFkY3J1bWIgPiAqIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ucWRuYXByby1icmVhZGNydW1iID4gYTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnFkbmFwcm8tYnJlYWRjcnVtYiAuYnJlYWRjcnVtYi1jdXJyZW50IHtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5xZG5hcHJvLWJyZWFkY3J1bWIgLmJyZWFkY3J1bWItc2VwIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5xZG5hcHJvLWJyZWFkY3J1bWIgLmJyZWFkY3J1bWItc2VwIHN2ZyB7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIHN0cm9rZTogY3VycmVudENvbG9yO1xuICBmaWxsOiBub25lO1xuICBzdHJva2Utd2lkdGg6IDIuNTtcbiAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xuICBzdHJva2UtbGluZWpvaW46IHJvdW5kO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1icmVhZGNydW1iLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnJlYWRjcnVtYiA+ICoge1xuICBjb2xvcjogI2E2YWFiMztcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnJlYWRjcnVtYiA+IGE6aG92ZXIge1xuICBjb2xvcjogI2MwYzVmZjtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnJlYWRjcnVtYiAuYnJlYWRjcnVtYi1jdXJyZW50IHtcbiAgY29sb3I6ICNjMGM1ZmY7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWJyZWFkY3J1bWIgLmJyZWFkY3J1bWItc2VwIHtcbiAgY29sb3I6ICNhNmFhYjM7XG59IiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvYnV0dG9uL19idXR0b24tY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnFkbmFwcm8tYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIC0tYnRuLWZvY3VzLXJpbmc6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIC0tYnRuLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xuICBmb250LWZhbWlseTogaW50ZXIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dCwgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2Utb3V0LCBjb2xvciAxMjBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLWJ1dHRvbiA+IHFkbmFwcm8tbnVtYmVyLWluZGljYXRvci1iYWRnZVtkYXRhLWJ1dHRvbi1iYWRnZV0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zaXplLWJpZyB7XG4gIG1pbi1oZWlnaHQ6IDU2cHg7XG4gIHBhZGRpbmc6IDEycHggMTZweDtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2l6ZS1iaWcuYnV0dG9uLWljb24tb25seSB7XG4gIHdpZHRoOiA1NnB4O1xuICBtaW4td2lkdGg6IDU2cHg7XG4gIHBhZGRpbmc6IDA7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNpemUtc21hbGwge1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBwYWRkaW5nOiA4cHggMTJweDtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2l6ZS1zbWFsbC5idXR0b24taWNvbi1vbmx5IHtcbiAgd2lkdGg6IDQwcHg7XG4gIG1pbi13aWR0aDogNDBweDtcbiAgcGFkZGluZzogMDtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2l6ZS1zbnVnIHtcbiAgbWluLWhlaWdodDogMzJweDtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG4vKiBBbiBpY29uIGluIGEgYnV0dG9uIG90aGVyd2lzZSBpbmhlcml0cyBpdHMgc2l6ZSBmcm9tIHRoZSBmb250ICgucWRuYXByby1pY29uIGlzXG4gICAxZW0gd2lkZSksIHNvIGEgc251ZyBidXR0b24gZHJldyBhIDEzcHggZ2x5cGggd2hpbGUgdGhlIHNlZ21lbnQgYmVzaWRlIGl0IGluIHRoZVxuICAgc2FtZSB0b29sYmFyIGRyYXdzIDE2cHgg4oCUIHZpc2libHkgc21hbGxlciBmb3Igbm8gcmVhc29uLiBBIHNpemUgc2hvdWxkIGRlY2lkZSBpdHNcbiAgIG93biBnbHlwaCwgc28gYHNudWdgIHNheXMgMTYgb3V0IGxvdWQuIFNjb3BlZCB0byB0aGlzIHNpemU6IG5vdGhpbmcgZWxzZSBtb3Zlcy5cbiAgIFtLaW0gMTAuMDguMjAyNl0gKi9cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2l6ZS1zbnVnID4gcWRuYXByby1pY29uIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cblxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zaXplLXNudWcuYnV0dG9uLWljb24tb25seSB7XG4gIHdpZHRoOiAzMnB4O1xuICBtaW4td2lkdGg6IDMycHg7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2l6ZS1jb21wYWN0IHtcbiAgbWluLWhlaWdodDogMjhweDtcbiAgcGFkZGluZzogNHB4IDEwcHg7XG4gIGdhcDogNnB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNpemUtY29tcGFjdC5idXR0b24taWNvbi1vbmx5IHtcbiAgd2lkdGg6IDI4cHg7XG4gIG1pbi13aWR0aDogMjhweDtcbiAgcGFkZGluZzogMDtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2l6ZS1taWNybyB7XG4gIG1pbi1oZWlnaHQ6IDI0cHg7XG4gIHBhZGRpbmc6IDNweCAxMHB4O1xuICBnYXA6IDRweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zaXplLW1pY3JvLmJ1dHRvbi1pY29uLW9ubHkge1xuICB3aWR0aDogMjRweDtcbiAgbWluLXdpZHRoOiAyNHB4O1xuICBwYWRkaW5nOiAwO1xufVxuLy8gUFdBLW9ubHkgdG91Y2ggc2l6ZXMg4oCUIHNlZSBkb2NibG9jayBpbiBxZG5hLWJ1dHRvbi5qcy4gTm90IHVzZWQgaW4gdGhlXG4vLyBiYWNrb2ZmaWNlLiBbMjAyNi0wNy0wMV1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2l6ZS10b3VjaCB7XG4gIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gIHBhZGRpbmc6IDEwcHggMTRweDtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2l6ZS10b3VjaC5idXR0b24taWNvbi1vbmx5IHtcbiAgd2lkdGg6IDQ0cHg7XG4gIG1pbi13aWR0aDogNDRweDtcbiAgcGFkZGluZzogMDtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2l6ZS10b3VjaC1sZyB7XG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gIC8vIHZlcnRpY2FsIHBhZGRpbmcga2VwdCBiZWxvdyBiaWcncyAoMTJweCkg4oCUIGF0IDEycHggdGhlIDI0cHggbGluZS1oZWlnaHQgK1xuICAvLyAxcHggYm9yZGVyIHRvcC9ib3R0b20gYWxyZWFkeSBuZWVkcyA1MHB4LCBzbyBtaW4taGVpZ2h0OjQ4IHdvdWxkIG5ldmVyXG4gIC8vIGFjdHVhbGx5IGFwcGx5LiAxMHB4IGtlZXBzIHRoZSBjb250ZW50LWRyaXZlbiBoZWlnaHQgdW5kZXIgNDguIFsyMDI2LTA3LTAxXVxuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNpemUtdG91Y2gtbGcuYnV0dG9uLWljb24tb25seSB7XG4gIHdpZHRoOiA0OHB4O1xuICBtaW4td2lkdGg6IDQ4cHg7XG4gIHBhZGRpbmc6IDA7XG59XG4ucWRuYXByby1idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLnFkbmFwcm8tYnV0dG9uOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLWJ1dHRvbi5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1idG4tZm9jdXMtcmluZyk7XG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1idG4tZm9jdXMtb2Zmc2V0LCAtMnB4KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHZhcigtLWJ0bi1mb2N1cy1nbG93KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tZGlzYWJsZWQ6Zm9jdXMtdmlzaWJsZSwgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1kaXNhYmxlZC5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXByaW1hcnktcHVycGxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAtLWJ0bi1mb2N1cy1yaW5nOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICAtLWJ0bi1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjQwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tcHJpbWFyeS1wdXJwbGU6Zm9jdXMtdmlzaWJsZSwgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1wcmltYXJ5LXB1cnBsZS5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1idG4tZm9jdXMtcmluZyksIDAgMCAwIDZweCB2YXIoLS1idG4tZm9jdXMtZ2xvdyk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXByaW1hcnktcHVycGxlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTYwMCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXByaW1hcnktcHVycGxlOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS03MDApO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1wcmltYXJ5LW9yYW5nZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAtLWJ0bi1mb2N1cy1yaW5nOiB2YXIoLS1jLXRhZy13YXJuaW5nLXRleHQpO1xuICAtLWJ0bi1mb2N1cy1nbG93OiByZ2JhKDIzOSwgMTQyLCAyLCAwLjQ1KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tcHJpbWFyeS1vcmFuZ2U6Zm9jdXMtdmlzaWJsZSwgLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1wcmltYXJ5LW9yYW5nZS5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1idG4tZm9jdXMtcmluZyksIDAgMCAwIDZweCB2YXIoLS1idG4tZm9jdXMtZ2xvdyk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXByaW1hcnktb3JhbmdlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXllbGxvdy10ZXh0KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tcHJpbWFyeS1vcmFuZ2U6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtdGFnLXdhcm5pbmctdGV4dCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXN1YnRsZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXN1YnRsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGU6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xufVxuLy8gc3VidGxlLW11dGVkIOKAlCB0aGUgZGUtZW1waGFzaXNlZCB0d2luIG9mIGBzdWJ0bGVgOiBzYW1lIHRyYW5zcGFyZW50IHN1cmZhY2UgYW5kXG4vLyBzYW1lIGhvdmVyLCBidXQgbXV0ZWQgZ3JleSB0ZXh0LiBGb3IgYSBwYWlyIG9mIGZsYXQgdGV4dCBhY3Rpb25zIHdoZXJlIG9uZSBpc1xuLy8gY2xlYXJseSBzZWNvbmRhcnkgYW5kIGEgc2Vjb25kIGRhcmsgbGFiZWwgd291bGQgcmVhZCBhcyB0d28gZXF1YWwgY2hvaWNlc1xuLy8gKHRoZSBub3RpZmljYXRpb24gYWN0aW9uIGZvb3RlcjogXCJNYXJrZWVyIGFscyBnZWxlemVuXCIgbmV4dCB0byBcIkJla2lqayByYXBwb3J0XCIpLlxuLy8gQWRkZWQgMDQuMDguMjAyNiByYXRoZXIgdGhhbiB0aW50aW5nIGEgYHN1YnRsZWAgYnV0dG9uIGZyb20gdGhlIGNvbnN1bWVyJ3MgU0NTUy5cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc3VidGxlLW11dGVkIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YTZlOWEpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUtbXV0ZWQ6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUtbXV0ZWQ6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXN1YnRsZS1wdXJwbGUtYmcge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXN1YnRsZS1wdXJwbGUtYmc6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUtcHVycGxlLWJnOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZGViYXItaWNvbik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5OmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0zMDApO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS00MDApO1xufVxuLy8gUGVyc2lzdGVudCBwcmVzc2VkL3NlbGVjdGVkIHN0YXRlICh0aGUgYGFjdGl2ZWAgYXR0cmlidXRlKSDigJQgZm9yIGFcbi8vIHNlZ21lbnRlZCB0b2dnbGUgb3ZlciBgc2Vjb25kYXJ5YCwgZS5nLiB0aGUgTGFiZWwtdGFiIGFsaWduIGJ1dHRvbnMuXG4vLyBSZXVzZXMgdGhlIHNlY29uZGFyeS1wdXJwbGUgdG9rZW5zIHNvIHRoZSBcInNlbGVjdGVkXCIgbG9vayBzdGF5cyBvbi1icmFuZFxuLy8gaW5zdGVhZCBvZiBpbnZlbnRpbmcgYSBuZXcgY29sb3VyLiBbMjAyNi0wNy0xNl1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LmJ1dHRvbi1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjZTZlOWZmO1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LmJ1dHRvbi1hY3RpdmU6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnkuYnV0dG9uLWFjdGl2ZTphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktb3V0bGluZSB7XG4gIGJhY2tncm91bmQ6ICNlNmU5ZmY7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1vdXRsaW5lOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LW91dGxpbmU6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lkZWJhci1pY29uKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZSB7XG4gIGJhY2tncm91bmQ6ICNlNmU5ZmY7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktcHVycGxlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZTphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktd2hpdGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXdoaXRlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXdoaXRlOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZGViYXItaWNvbik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXdhcm5pbmctcmVkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbiAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24td2FybmluZy1yZWQ6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTMwMCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXdhcm5pbmctcmVkOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNDAwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24td2FybmluZy1yZWQtd2hpdGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi13YXJuaW5nLXJlZC13aGl0ZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtc29mdCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXdhcm5pbmctcmVkLXdoaXRlOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi13YXJuaW5nLXJlZC10aW50IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTtcbiAgY29sb3I6IHZhcigtLWMtdGFnLWNyaXRpY2FsLXRleHQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtY2hpcC1yZWQtMi1iZyk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXdhcm5pbmctcmVkLXRpbnQ6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXJlZC1ob3Zlcik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy10YWctY3JpdGljYWwtdGV4dCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXdhcm5pbmctcmVkLXRpbnQ6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1yZWQtaG92ZXIpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi13YXJuaW5nLXllbGxvdy10aW50IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy13YXJuaW5nLWJyaWdodC1iZyk7XG4gIGNvbG9yOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LXRleHQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtd2FybmluZy1icmlnaHQtYm9yZGVyKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24td2FybmluZy15ZWxsb3ctdGludDpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAteWVsbG93LTItYmcpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtd2Fybi15ZWxsb3ctNTAwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24td2FybmluZy15ZWxsb3ctdGludDphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXllbGxvdy0yLWJnKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24td2FybmluZy1yZWQtc3VidGxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24td2FybmluZy1yZWQtc3VidGxlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1yZWQtaG92ZXIpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi13YXJuaW5nLXJlZC1zdWJ0bGU6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1yZWQtaG92ZXIpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi13YXJuaW5nLXllbGxvdy1zdWJ0bGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi13YXJuaW5nLXllbGxvdy1zdWJ0bGU6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXllbGxvdy0yLWJnKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24td2FybmluZy15ZWxsb3ctc3VidGxlOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAteWVsbG93LTItYmcpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1nbGFzcyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzApO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1nbGFzczpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzApO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40MCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLWdsYXNzOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzgpO1xufVxuLyogb24tcHVycGxlIC8gb24tcHVycGxlLXNvbGlkIOKAlCBmb3IgYSBwdXJwbGUvZGFyayBzdXJmYWNlIChlLmcuIHFkbmFwcm8tYm90dG9tLXNoZWV0J3NcbiAgIGNvbmZpcm0gdmFyaWFudCksIHdoZXJlIHRoZSBwbGFpbiBidXR0b24tc3VidGxlJ3MgaGFyZGNvZGVkIGRhcmsgdGV4dCB3b3VsZCBiZVxuICAgaW52aXNpYmxlIGFuZCBwcmltYXJ5LXB1cnBsZSBpdHNlbGYgd291bGQgYmxlbmQgaW50byBhIHB1cnBsZSBiYWNrZ3JvdW5kLlxuICAgW0tpbSAxNC4wNy4yMDI2XSAqL1xuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1wdXJwbGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1wdXJwbGU6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24tcHVycGxlOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpO1xufVxuLyogb24tcHVycGxlLW91dGxpbmUg4oCUIG9uLXB1cnBsZSBtZXQgZWVuIHdpdHRlIG9tbGlqbmluZzogZGUgemljaHRiYXJlXG4gICBzZWN1bmRhaXJlIGFjdGllIG9wIGVlbiBwYWFycyB2bGFrIChQdWxzZS1laW5kc2NoZXJtIFwiTWVlciBmZWVzdCFcIixcbiAgIEtpbXMgZGVzaWduIDE2LjA5LjIwMjYpLiBaZWxmZGUgaG92ZXIvYWN0aXZlLXRpbnQgYWxzIG9uLXB1cnBsZS4gKi9cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24tcHVycGxlLW91dGxpbmUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxLjVweCB2YXIoLS1jLXdoaXRlLTcwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24tcHVycGxlLW91dGxpbmU6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpLFxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1wdXJwbGUtb3V0bGluZTphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24tcHVycGxlLXNvbGlkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1wdXJwbGUtc29saWQ6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNjAwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24tcHVycGxlLXNvbGlkOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS03MDApO1xufVxuLyogb24tZGFuZ2VyIC8gb24tZGFuZ2VyLXNvbGlkIOKAlCB0aGUgcGFpciBmb3IgdGhlIFJFRCBkaWFsb2cgc3VyZmFjZVxuICAgKHFkbmFwcm8tYm90dG9tLXNoZWV0IC8gLXBvcG92ZXIgd2l0aCB0b25lPVwiZGFuZ2VyXCIpLiBJdHMgb3duIHR5cGUgcmF0aGVyIHRoYW4gdGhlXG4gICBzaGVldCBvdmVycmlkaW5nIG9uLXB1cnBsZSdzIGNvbG91cnM6IHRoZSBidXR0b24ga2VlcHMgb3duaW5nIGl0cyBwYWxldHRlLCB3aGljaCBpc1xuICAgdGhlIHJ1bGUgdGhlIGRpYWxvZyB2YXJpYW50cyB3ZXJlIGJ1aWx0IG9uLlxuXG4gICBUaGUgc3VyZmFjZSBjYXJyaWVzIHdoaXRlIHRleHQsIHNvIHRoZSBTRUNPTkRBUlkgYnV0dG9uIGlzIHdoaXRlIG9uIHRyYW5zcGFyZW50LFxuICAgc2FtZSBhcyBvbi1wdXJwbGUuIFRoZSBTT0xJRCBvbmUgdGFrZXMgdGhlIGRpYWxvZydzIG93biBidXR0b24gY29sb3VyIGZyb20gdGhlXG4gICBkZXNpZ24gdG9rZW5zICgtLWMtZGlhbG9nLTx0b25lPi1idXR0b24pOiBLaW0ncyBleGFjdCBjb2xvdXIgc2V0IGZvciB0aGUgUHVsc2VcbiAgIHZlcmRpY3Qgc2hlZXRzLCAwMy4wOS4yMDI2LCBzaGFyZWQgYnkgZXZlcnkgdG9uZWQgZGlhbG9nIHNvIHRoZXkgcmVhZCBhcyBvbmUgZmFtaWx5LlxuICAgSG92ZXIvcHJlc3NlZCBkYXJrZW4gdGhhdCBPTkUgY29sb3VyIHdpdGggYSBmaWx0ZXIgaW5zdGVhZCBvZiBzdGVwcGluZyB0aHJvdWdoIGFcbiAgIHJhbXAgLSB0aGUgc2V0IGhhcyBleGFjdGx5IG9uZSBidXR0b24gY29sb3VyIHBlciB0b25lIGFuZCB3ZSBkbyBub3QgaW52ZW50IGFcbiAgIHNlY29uZC4gW0tpbSAxOC4wOC4yMDI2LCByZWNvbG91cmVkIDAzLjA5LjIwMjZdICovXG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLWRhbmdlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLWRhbmdlcjpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1kYW5nZXI6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLWRhbmdlci1zb2xpZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLWRhbmdlci1idXR0b24pO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLWRhbmdlci1zb2xpZDpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy1kYW5nZXItYnV0dG9uKTtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOTIpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1kYW5nZXItc29saWQ6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLWRhbmdlci1idXR0b24pO1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMC44NCk7XG59XG4vKiBvbi1zdWNjZXNzIC8gb24tc3VjY2Vzcy1zb2xpZCDigJQgdGhlIHNhbWUgcGFpciBmb3IgdGhlIEdSRUVOIGRpYWxvZyBzdXJmYWNlXG4gICAodG9uZT1cInN1Y2Nlc3NcIikuIFN0cnVjdHVyYWxseSBpZGVudGljYWwgdG8gdGhlIGRhbmdlciBwYWlyLCBhbmQgZGVsaWJlcmF0ZWx5IHNvOiB0aGVcbiAgIHR3byBkaWFsb2dzIGRpZmZlciBpbiBodWUgYW5kIGluIG5vdGhpbmcgZWxzZS4gW0tpbSAxOC4wOC4yMDI2XSAqL1xuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24tc3VjY2Vzczpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1zdWNjZXNzOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi1zdWNjZXNzLXNvbGlkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctc3VjY2Vzcy1idXR0b24pO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLXN1Y2Nlc3Mtc29saWQ6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctc3VjY2Vzcy1idXR0b24pO1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMC45Mik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLXN1Y2Nlc3Mtc29saWQ6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZGlhbG9nLXN1Y2Nlc3MtYnV0dG9uKTtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDAuODQpO1xufVxuLyogb24td2FybmluZyAvIG9uLXdhcm5pbmctc29saWQg4oCUIHRoZSB0aGlyZCBwYWlyLCBmb3IgdGhlIE9SQU5HRSBkaWFsb2cgc3VyZmFjZVxuICAgKHRvbmU9XCJ3YXJuaW5nXCI6IHRoZSBQdWxzZSBcIkJlZXRqZSBnb2VkLCBiZWV0amUgZm91dFwiIHZlcmRpY3QpLiBTYW1lIHN0cnVjdHVyZSBhcyB0aGVcbiAgIG90aGVyIHR3byBvbiBwdXJwb3NlLiBbS2ltIDAzLjA5LjIwMjZdICovXG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1vbi13YXJuaW5nOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLXdhcm5pbmc6YWN0aXZlOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLW9uLXdhcm5pbmctc29saWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy13YXJuaW5nLWJ1dHRvbik7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24td2FybmluZy1zb2xpZDpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWRpYWxvZy13YXJuaW5nLWJ1dHRvbik7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygwLjkyKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tb24td2FybmluZy1zb2xpZDphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1kaWFsb2ctd2FybmluZy1idXR0b24pO1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMC44NCk7XG59XG4vLyB0aGVtZSAvIHRoZW1lLXNlY29uZGFyeSAvIHRoZW1lLXN1YnRsZSDigJQgUFdBLU9OTFksIGZvciB0aGUgZmxvdyBuYXZpZ2F0aW9uIG9uIGFcbi8vIHRoZW1lZCBxdWVzdGlvbiBzY3JlZW4gKFZvbGdlbmRlLCBWb3JpZ2UsIHRoZSBiYWNrIGFycm93KS4gUm91dGUgdGhlaXIgc3VyZmFjZVxuLy8gdGhyb3VnaCB0aGUgdGFza2xpc3QtdGhlbWUgZWRpdG9yIHZhcnMgc28gYSB0aGVtZSBjYW4gcmVjb2xvdXIgdGhlbTsgdGhlIFFETkFcbi8vIHB1cnBsZSB2YWx1ZXMgYXJlIHRoZSBmYWxsYmFja3MsIHNvIGFuIHVudGhlbWVkIHNjcmVlbiBsb29rcyB1bmNoYW5nZWQuXG4vL1xuLy8gQURESVRJVkUgT04gUFVSUE9TRTogYHNlY29uZGFyeWAgYW5kIGBzdWJ0bGVgIGtlZXAgdGhlaXIgZml4ZWQgZ3JleXMsIGJlY2F1c2UgdGhlXG4vLyB3aG9sZSBiYWNrb2ZmaWNlIHVzZXMgdGhlbSBhbmQgbmV2ZXIgaGFzIGEgdGhlbWUuIERvIG5vdCBmb2xkIHRoZXNlIGludG8gdGhvc2UuXG4vL1xuLy8gVGhlIHRpbnQgbGFkZGVyICgxMiUgaWRsZSAvIDIwJSBob3ZlciAvIDI4JSBwcmVzc2VkIG9mIHRoZSB0aGVtZSBjb2xvdXIgbWl4ZWQgaW50b1xuLy8gd2hpdGUpIGlzIHRoZSBTQU1FIGxhZGRlciBhcyBxZG5hcHJvLWFuc3dlci1idXR0b24sIHNvIHRoZSBuYXZpZ2F0aW9uIGFuZCB0aGUgYW5zd2VyXG4vLyBvcHRpb25zIHJlYWQgYXMgb25lIHNldCBpbnN0ZWFkIG9mIHR3byB1bnJlbGF0ZWQgYnV0dG9uIGZhbWlsaWVzLlxuLy9cbi8vIC0tdGhlbWUtbmF2LWNvbG9yIC8gLS10aGVtZS1uYXYtdGV4dC1jb2xvciBhcmUgdGhlIGRlZGljYXRlZCBuYXZpZ2F0aW9uIHNsb3RzLlxuLy8gVW5zZXQgPSBkZXJpdmVkIGZyb20gLS10aGVtZS1idG4tY29sb3IsIHNvIGEgdGhlbWUgdGhhdCBuZXZlciBzZXRzIHRoZW0ga2VlcHNcbi8vIHdvcmtpbmcgZXhhY3RseSBhcyBiZWZvcmUuIFRoZSBob3Zlci9wcmVzc2VkIHN0ZXBzIGRhcmtlbiB3aGF0ZXZlciB0aGUgcmVzb2x2ZWRcbi8vIHN1cmZhY2UgaXMgKHZpYSAtLWJ0bi10aGVtZS1zdXJmYWNlKSwgc28gdGhleSBzdGF5IGNvcnJlY3Qgd2hldGhlciB0aGUgc3VyZmFjZSBjYW1lXG4vLyBmcm9tIHRoZSBuYXYgc2xvdCBvciBmcm9tIHRoZSBkZXJpdmVkIHRpbnQuXG4vL1xuLy8gTkI6IGRlbGliZXJhdGVseSBkb2VzIE5PVCByZWFkIC0tdGhlbWUtYnRuLWhvdmVyLWNvbG9yLiBUaGF0IHZhciBpcyBmaWxsZWQgd2l0aCBhXG4vLyBoYXJkY29kZWQgIzNhNDI5MCBieSB0aGUgdGhlbWUgY29udHJvbGxlciB3aGVuIG5vIGhvdmVyIGlzIGNob3Nlbiwgd2hpY2ggZHJhZ3MgYVxuLy8gbm9uLXB1cnBsZSB0aGVtZSdzIGJ1dHRvbiBiYWNrIHRvIFFETkEgcHVycGxlIG9uIHRhcC4gRGVyaXZpbmcgdGhlIGhvdmVyIGZyb20gdGhlXG4vLyBidXR0b24ncyBvd24gY29sb3VyIGF2b2lkcyB0aGF0LiBbMDUuMDguMjAyNl1cbi8vXG4vLyBObyBbZGF0YS10aGVtZT1kYXJrXSBibG9jayBoZXJlOiB0aGUgUFdBIG5ldmVyIHNldHMgZGF0YS10aGVtZSAvIGRhdGEtdGhlbWUtZGFya1xuLy8gKGNoZWNrZWQgMDUuMDguMjAyNiwgbm8gSlMgb3IgdGVtcGxhdGUgd3JpdGVzIGVpdGhlciBhdHRyaWJ1dGUpLCBzbyBhIGRhcmsgYmxvY2tcbi8vIHdvdWxkIGJlIGRlYWQgY29kZSBBTkQgd291bGQgZmlnaHQgdGhlIHRoZW1lJ3Mgb3duIGJhY2tncm91bmQgY2hvaWNlLlxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi10aGVtZSB7XG4gIC8vIEhvdmVyIGlzIGl0cyBvd24gc2xvdCBhZ2FpbiBzaW5jZSAwNi4wOC4yMDI2OiBhIHN1cnZleSBjYW4gYmUgc2VudCBhcyBhIGJyb3dzZXIgTElOSywgYW5kXG4gIC8vIHRoZXJlIGEgbW91c2UgZXhpc3RzLCBzbyBcImhvdmVyIGlzIGlycmVsZXZhbnQgb24gdG91Y2hcIiBvbmx5IGNvdmVyZWQgaGFsZiB0aGUgcHJvZHVjdC5cbiAgLy8gVW5zZXQgPSB0aGUgZGVyaXZlZCAxMyUtZGFya2VyIHN0ZXAsIGkuZS4gdW5jaGFuZ2VkIGZvciBldmVyeSBleGlzdGluZyB0aGVtZS5cbiAgLy9cbiAgLy8gUFJFU1NFRCBkZXJpdmVzIGZyb20gdGhlIFJFU09MVkVEIGhvdmVyLCBub3QgZnJvbSB0aGUgaWRsZSBjb2xvdXIsIHNvIGlkbGUgLT4gaG92ZXIgLT5cbiAgLy8gcHJlc3NlZCBzdGF5cyBvcmRlcmVkIHdoaWNoZXZlciBvZiB0aGUgdHdvIHRoZSBhZG1pbiBzZXQuIFdpdGggbm90aGluZyBzZXQgdGhlIHJlc3VsdCBpc1xuICAvLyB0aGUgc2FtZSBhcyBiZWZvcmUgKDkwJSBvZiA4NyUgPSA3OCUsIHRoZSBvbGQgcHJlc3NlZCB2YWx1ZSkuXG4gIC0tYnRuLXRoZW1lLWhvdmVyOiB2YXIoLS10aGVtZS1idG4taG92ZXItY29sb3IsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpIDg3JSwgIzAwMCkpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpO1xuICBjb2xvcjogdmFyKC0tdGhlbWUtYnRuLXRleHQtY29sb3IsICNmZmZmZmYpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi10aGVtZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tdGhlbWUtaG92ZXIpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi10aGVtZTphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJ0bi10aGVtZS1ob3ZlcikgOTAlLCAjMDAwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tdGhlbWUtc2Vjb25kYXJ5IHtcbiAgLS1idG4tdGhlbWUtc3VyZmFjZTogdmFyKC0tdGhlbWUtbmF2LWNvbG9yLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSAxMiUsICNmZmYpKTtcbiAgLy8gU2FtZSBjb250cmFjdCBhcyBhYm92ZTogZXhwbGljaXQgaG92ZXIgd2lucywgZWxzZSBkYXJrZW4gdGhlIHJlc29sdmVkIHN1cmZhY2UuIFVuc2V0XG4gIC8vIHJlcHJvZHVjZXMgdGhlIG9sZCBwYWlyIGV4YWN0bHkgKDkyJSwgdGhlbiA5MiUgb2YgdGhhdCA9IDg1JSkuXG4gIC0tYnRuLXRoZW1lLXNlYy1ob3ZlcjogdmFyKC0tdGhlbWUtbmF2LWhvdmVyLWNvbG9yLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnRuLXRoZW1lLXN1cmZhY2UpIDkyJSwgIzAwMCkpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tdGhlbWUtc3VyZmFjZSk7XG4gIGNvbG9yOiB2YXIoLS10aGVtZS1uYXYtdGV4dC1jb2xvciwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXRoZW1lLXNlY29uZGFyeTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tdGhlbWUtc2VjLWhvdmVyKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tdGhlbWUtc2Vjb25kYXJ5OmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnRuLXRoZW1lLXNlYy1ob3ZlcikgOTIlLCAjMDAwKTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tdGhlbWUtc3VidGxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIC8vIC0tdGhlbWUtbmF2LWFycm93LWNvbG9yLCBOT1QgLS10aGVtZS1uYXYtdGV4dC1jb2xvcjogdGhlIGFycm93IGlzIHRyYW5zcGFyZW50IHNvIGl0IGlzXG4gIC8vIGp1ZGdlZCBhZ2FpbnN0IHRoZSBzY3JlZW4gYmFja2dyb3VuZCwgd2hpbGUgdGhlIFZvcmlnZSBsYWJlbCBpcyBqdWRnZWQgYWdhaW5zdCBpdHMgb3duXG4gIC8vIHBpbGwuIE9uZSBlZGl0b3IgZmllbGQgc3RpbGwgZHJpdmVzIGJvdGg7IG9ubHkgdGhlIGRlcml2ZWQgdmFsdWUgZGlmZmVycy4gWzA1LjA4LjIwMjZdXG4gIGNvbG9yOiB2YXIoLS10aGVtZS1uYXYtYXJyb3ctY29sb3IsIHZhcigtLXRoZW1lLW5hdi10ZXh0LWNvbG9yLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpKSk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXRoZW1lLXN1YnRsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtbmF2LWNvbG9yLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpKSAxNCUsIHRyYW5zcGFyZW50KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tdGhlbWUtc3VidGxlOmFjdGl2ZTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtbmF2LWNvbG9yLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpKSAyMiUsIHRyYW5zcGFyZW50KTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tdGhlbWUtc3VidGxlLmJ1dHRvbi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbi8vIEZvcmNlLXN0YXRlIGhvb2sg4oCUIGxldHMgYSBwcmV2aWV3IFNIT1cgaG92ZXIvcHJlc3NlZCB3aXRob3V0IGEgbW91c2UsIGFuZCBvbiB0b3VjaCB3aGVyZVxuLy8gaG92ZXIgY2Fubm90IGhhcHBlbiBhdCBhbGwuIFVzZWQgYnkgdGhlIHRhc2tsaXN0LXRoZW1lIGVkaXRvcidzIHBob25lIHByZXZpZXcgc28gYW4gYWRtaW5cbi8vIGNhbiBqdWRnZSB0aGUgaG92ZXIgY29sb3VycyB0aGV5IGp1c3QgcGlja2VkLlxuLy9cbi8vIEEgREFUQS1BVFRSSUJVVEUsIG5vdCBhIGNsYXNzLCBhbmQgdGhhdCBpcyBub3QgYSBzdHlsZSBwcmVmZXJlbmNlOiBxZG5hLWJ1dHRvbi5qcyBydW5zXG4vLyBgdGhpcy5jbGFzc05hbWUgPSBcIlwiYCBvbiBldmVyeSByZW5kZXIgYW5kIG9ubHkgcmVzdG9yZXMgdGhlIGNsYXNzZXMgdGhhdCB3ZXJlIHByZXNlbnQgYXRcbi8vIEZJUlNUIHJlbmRlciwgc28gYW55IGNsYXNzIHRvZ2dsZWQgbGF0ZXIgaXMgc2lsZW50bHkgd2lwZWQgb24gdGhlIG5leHQgYXR0cmlidXRlIGNoYW5nZS5cbi8vIFNhbWUgdHJhcCBhcyB0aGUgYGRhdGEtYmVhbWAgaG9vayBpbiB0aGUgUFdBJ3MgMDMtc3R5bGUuY3NzLlxuLy9cbi8vIFBsYWNlZCBhZnRlciB0aGUgcmVhbCA6aG92ZXIvOmFjdGl2ZSBydWxlcyBhbmQgY2FycnlpbmcgdGhlIHNhbWUgOm5vdCguYnV0dG9uLWRpc2FibGVkKSxcbi8vIHNvIGl0IG1hdGNoZXMgdGhlaXIgc3BlY2lmaWNpdHkgYW5kIHdpbnMgb24gb3JkZXIuXG4ucWRuYXByby1idXR0b24uYnV0dG9uLXRoZW1lW2RhdGEtZm9yY2Utc3RhdGU9XCJob3ZlclwiXTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idG4tdGhlbWUtaG92ZXIpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi10aGVtZVtkYXRhLWZvcmNlLXN0YXRlPVwicHJlc3NlZFwiXTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnRuLXRoZW1lLWhvdmVyKSA5MCUsICMwMDApO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi10aGVtZS1zZWNvbmRhcnlbZGF0YS1mb3JjZS1zdGF0ZT1cImhvdmVyXCJdOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ0bi10aGVtZS1zZWMtaG92ZXIpO1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi10aGVtZS1zZWNvbmRhcnlbZGF0YS1mb3JjZS1zdGF0ZT1cInByZXNzZWRcIl06bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJ0bi10aGVtZS1zZWMtaG92ZXIpIDkyJSwgIzAwMCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXRoZW1lLXN1YnRsZVtkYXRhLWZvcmNlLXN0YXRlPVwiaG92ZXJcIl06bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRoZW1lLW5hdi1jb2xvciwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSkgMTQlLCB0cmFuc3BhcmVudCk7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXRoZW1lLXN1YnRsZVtkYXRhLWZvcmNlLXN0YXRlPVwicHJlc3NlZFwiXTpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtbmF2LWNvbG9yLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpKSAyMiUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCkgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc3VidGxlLmJ1dHRvbi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXN1YnRsZS1wdXJwbGUtYmcuYnV0dG9uLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZC1wcCkgIWltcG9ydGFudDtcbn1cblxuW2RhdGEtYmctY29udGV4dD1wdXJwbGVdIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCkgIWltcG9ydGFudDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1wcmltYXJ5LXB1cnBsZSB7XG4gIGJhY2tncm91bmQ6ICMzODQyYzI7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1wcmltYXJ5LXB1cnBsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiAjMmEzMTkyO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1wcmltYXJ5LW9yYW5nZSB7XG4gIGJhY2tncm91bmQ6ICNlZjhlMDI7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1wcmltYXJ5LW9yYW5nZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiAjZjJhNTM1O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNlMWUzZTY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXN1YnRsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiAjNTY1YjY2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUtcHVycGxlLWJnIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZjBmMWYyO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUtcHVycGxlLWJnOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6ICMyZTMwMzY7XG4gIGNvbG9yOiAjZTFlM2U2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnk6aG92ZXI6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogIzQwNDQ0ZDtcbn1cbi8vIFNhbWUgdGludCBwYWlyIGFzIHNlY29uZGFyeS1wdXJwbGUgYmVsb3cg4oCUIHRoZSBhY3RpdmUgc3RhdGUgcmV1c2VzIHRob3NlXG4vLyB0b2tlbnMgKHNlZSB0aGUgbGlnaHQgcnVsZXMpLCBzbyBrZWVwIHRoZSB0d28gaW4gc3luYy4gWzIxLjA3LjIwMjZdXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS5idXR0b24tYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogIzNhMzU1NTtcbiAgY29sb3I6ICNhNWFjZmY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS5idXR0b24tYWN0aXZlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6ICM0YzQ3Njc7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1vdXRsaW5lIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZjBmMWYyO1xuICBib3JkZXItY29sb3I6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1vdXRsaW5lOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6ICM0MDQ0NGQ7XG4gIGJvcmRlci1jb2xvcjogIzY2NmRhZTtcbn1cbi8vIEtlZXBzIGl0cyBwdXJwbGUgaWRlbnRpdHkgb24gZGFyayDigJQgc2FtZSB0aW50IHBhaXIgYXMgdGhlIHB1cnBsZSB0aWxlXG4vLyB0aW50cyBpbiBncmlkLXRpbGUvbGlzdC1yb3cgKCMzYTM1NTUgYmcgLyAjYTVhY2ZmIGZnKS4gWzIxLjA3LjIwMjZdXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXNlY29uZGFyeS1wdXJwbGUge1xuICBiYWNrZ3JvdW5kOiAjM2EzNTU1O1xuICBjb2xvcjogI2E1YWNmZjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiAjNGM0NzY3O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnktd2hpdGUge1xuICBiYWNrZ3JvdW5kOiAjMmUzMDM2O1xuICBjb2xvcjogI2UxZTNlNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5LXdoaXRlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6ICM0MDQ0NGQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXdhcm5pbmctcmVkLXdoaXRlIHtcbiAgYmFja2dyb3VuZDogIzJlMzAzNjtcbiAgY29sb3I6ICNlYzg1ODU7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXdhcm5pbmctcmVkLXdoaXRlOmhvdmVyOm5vdCguYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6ICM0MDQ0NGQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogIzQwNDQ0ZCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzZiNzI4MCAhaW1wb3J0YW50O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUuYnV0dG9uLWRpc2FibGVkLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uYnV0dG9uLXN1YnRsZS1wdXJwbGUtYmcuYnV0dG9uLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2YjcyODAgIWltcG9ydGFudDtcbn1cbi8vIFBXQS1vbmx5OiBwaWxsIHNoYXBlIG1vZGlmaWVyLlxuLy8gVXNlZCBmb3IgbmF2aWdhdGlvbiBhY3Rpb25zIGluIHRoZSBmaWVsZC13b3JrZXIgYXBwIChlLmcuIFwiVm9sZ2VuZGUgLyBOZXh0XCIpLlxuLy8gTm90IHVzZWQgYW55d2hlcmUgaW4gdGhlIGJhY2tvZmZpY2UuXG4ucWRuYXByby1idXR0b24uYnV0dG9uLXBpbGwge1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xufVxuLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1waWxsLmJ1dHRvbi1pY29uLW9ubHkge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXBpbGwuYnV0dG9uLXNpemUtc21hbGwge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG59XG4ucWRuYXByby1idXR0b24uYnV0dG9uLXBpbGwuYnV0dG9uLXNpemUtdG91Y2gge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWJ1dHRvbjpmb2N1cy12aXNpYmxlLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1idXR0b24uZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lLWNvbG9yOiAjYTVhY2ZmO1xuICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSg3MCwgODIsIDI0MywgMC40KTtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUuIENvbXBpbGVkIGludG8gc3R5bGUtdjEuY3NzIHZpYVxuLy8gYGd1bHAgc2Fzcy12MWAgKGJhY2tvZmZpY2UyL3Njc3MvY29tcG9uZW50cy9jb21wb25lbnRzLnNjc3MgQHVzZSdzIHRoaXNcbi8vIGZpbGUpLiBFZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2sg4oCUIG5ldmVyIGhhbmQtZWRpdCB0aGUgY29tcGlsZWRcbi8vIENTUy4gRkxBVCBzZWxlY3RvcnMgb24gcHVycG9zZSAobm8gU0NTUyBuZXN0aW5nKSwgbWF0Y2hpbmcgdGhlIHNpYmxpbmdcbi8vIHYyIGNvbXBvbmVudCBmaWxlcyAoX3BpY2tlci1yb3cuc2NzcywgX3Rhc2tsaXN0LWNhcmQuc2NzcykuXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1jYWxlbmRhci1zZXJ2aWNlLWJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgRnVsbC13aWR0aCB0aWxlLXN0eWxlIHJvdyBidXR0b24gZm9yIHRoZSBcIktpZXMgamUgYWdlbmRhXCIgY2FsZW5kYXJcbi8vICBzdWJzY3JpcHRpb24gcGlja2VyIChNaWpuIHBsYW5uaW5nID4gQWdlbmRhIGtvcHBlbGVuIG1vZGFsKS4gSG91c2Vcbi8vICBzdHlsZSArIG5ldXRyYWwgaWNvbiBvbmx5IOKAlCBubyBvZmZpY2lhbCBHb29nbGUvT3V0bG9vay9BcHBsZSBsb2dvc1xuLy8gIChLaW0sIDIwLjA3LjIwMjYpLiBUaGUgb25seSBwZXItc2VydmljZSBkaWZmZXJlbmNlIGlzIHRoZSBpY29uLXRpbGUnc1xuLy8gIGFjY2VudCBjb2xvdXI7IHRoZSBnbHlwaCBpdHNlbGYgKGNhbGVuZGFyLXBsdXMtb3V0bGluZSkgaXMgaWRlbnRpY2FsXG4vLyAgZm9yIGFsbCB0aHJlZSwgc28gbm90aGluZyBoZXJlIHJlYWRzIGFzIGEgYnJhbmQgbWFyay5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5xZG5hcHJvLWNhbGVuZGFyLXNlcnZpY2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5xZG5hcHJvLWNhbGVuZGFyLXNlcnZpY2UtYnV0dG9uICosXG5xZG5hcHJvLWNhbGVuZGFyLXNlcnZpY2UtYnV0dG9uICo6OmJlZm9yZSxcbnFkbmFwcm8tY2FsZW5kYXItc2VydmljZS1idXR0b24gKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8vIC0tLS0gVGhlIHJlYWwgPGJ1dHRvbj4g4oCUIG5hdGl2ZSBjbGljay9rZXlib2FyZCBzZW1hbnRpY3MgLS0tLVxuXG4ucWRuYXByby1jYWxlbmRhci1zZXJ2aWNlLWJ1dHRvbiAuY3NiLWlubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMTAwKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zIGVhc2UsIGJvcmRlci1jb2xvciAxNTBtcyBlYXNlO1xufVxuXG4ucWRuYXByby1jYWxlbmRhci1zZXJ2aWNlLWJ1dHRvbiAuY3NiLWljb24tdGlsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTEpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNzYi10aW50LCB2YXIoLS1jLWdyZXktNTApKTtcbiAgICBjb2xvcjogdmFyKC0tY3NiLWFjY2VudCwgdmFyKC0tYy1ncmV5LTYwMCkpO1xufVxuXG4ucWRuYXByby1jYWxlbmRhci1zZXJ2aWNlLWJ1dHRvbiAuY3NiLWljb24tdGlsZSBxZG5hcHJvLWljb24ge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLnFkbmFwcm8tY2FsZW5kYXItc2VydmljZS1idXR0b24gLmNzYi1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMy41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCwgIzBiMGIwZCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4vLyAtLS0tIEhvdmVyIC8gcHJlc3NlZCAoaG91c2UgZ3JleS9wdXJwbGUgdGludCwgcGVyIHFkbmEtcHJvLWNvbnZlbnRpb25zKSAtLS0tXG5cbi5xZG5hcHJvLWNhbGVuZGFyLXNlcnZpY2UtYnV0dG9uIC5jc2ItaW5uZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLWhvdmVyLCAjZjBmMWYyKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtZ3JleS0yMDAsICNkMWQ1ZGIpO1xufVxuXG4ucWRuYXByby1jYWxlbmRhci1zZXJ2aWNlLWJ1dHRvbiAuY3NiLWlubmVyOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24tMDgsIHJnYmEoNzAsIDgyLCAyNDMsIDAuMDgpKTtcbn1cblxuLy8gLS0tLSBGb2N1cy12aXNpYmxlIChwdXJwbGUgcmluZywgaG91c2Ugc3RhbmRhcmQpIC0tLS1cblxuLnFkbmFwcm8tY2FsZW5kYXItc2VydmljZS1idXR0b24gLmNzYi1pbm5lcjpmb2N1cy12aXNpYmxlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKSwgMCAwIDAgNHB4IHZhcigtLWMtYWN0aW9uLTI1LCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KSk7XG59XG5cbi8vIC0tLS0gUGVyLXNlcnZpY2UgYWNjZW50IChwbGFpbiBjb2xvdXIgYWNjZW50IOKAlCBub3QgYSBsb2dvKSAtLS0tXG5cbi5xZG5hcHJvLWNhbGVuZGFyLXNlcnZpY2UtYnV0dG9uLS1nb29nbGUgLmNzYi1pY29uLXRpbGUge1xuICAgIC0tY3NiLWFjY2VudDogIzQyODVmNDtcbiAgICAtLWNzYi10aW50OiByZ2JhKDY2LCAxMzMsIDI0NCwgMC4xMik7XG59XG5cbi5xZG5hcHJvLWNhbGVuZGFyLXNlcnZpY2UtYnV0dG9uLS1vdXRsb29rIC5jc2ItaWNvbi10aWxlIHtcbiAgICAtLWNzYi1hY2NlbnQ6ICMwMDcyYzY7XG4gICAgLS1jc2ItdGludDogcmdiYSgwLCAxMTQsIDE5OCwgMC4xMik7XG59XG5cbi5xZG5hcHJvLWNhbGVuZGFyLXNlcnZpY2UtYnV0dG9uLS1hcHBsZSAuY3NiLWljb24tdGlsZSB7XG4gICAgLS1jc2ItYWNjZW50OiAjMWMxYjI5O1xuICAgIC0tY3NiLXRpbnQ6IHJnYmEoMjgsIDI3LCA0MSwgMC4wOCk7XG59XG5cbi8vIC0tLS0gRGFyayBtb2RlIC0tLS1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLWNhbGVuZGFyLXNlcnZpY2UtYnV0dG9uIC5jc2ItaW5uZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS04MDAsICMyZTMwMzYpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1ncmV5LTcwMCwgIzQwNDQ0ZCk7XG59XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1jYWxlbmRhci1zZXJ2aWNlLWJ1dHRvbiAuY3NiLWxhYmVsIHtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG59XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1jYWxlbmRhci1zZXJ2aWNlLWJ1dHRvbiAuY3NiLWlubmVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNzAwLCAjNDA0NDRkKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtZ3JleS02MDAsICM1NjViNjYpO1xufVxuIiwiLy8gcWRuYXByby1jZWxlYnJhdGlvbiDigJQgY2FudmFzIG92ZXJsYXkgZm9yIGNlbGVicmF0aW9uIGVmZmVjdHMgKGNvbmZldHRpLCBiYWxsb29ucywgZXRjKS5cbi8vIEZMQVQgQ1NTLiBUaGUgaG9zdCBpcyBhbiBvdmVybGF5OiBpdCBmaWxscyBpdHMgcG9zaXRpb25lZCBwYXJlbnQgYW5kIG5ldmVyIGJsb2Nrc1xuLy8gY2xpY2tzLiBFZGl0IEhFUkUsIHRoZW4gYGd1bHAgc2Fzcy12MWAuXG4ucWRuYXByby1jZWxlYnJhdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLWNlbGVicmF0aW9uIC5xZG5hcHJvLWNlbGVicmF0aW9uLWNhbnZhcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiLy8gcWRuYXByby1wYXJ0eS1zY2VuZSDigJQgYnVpbGQteW91ci1wYXJ0eTogbGF5ZXJlZCBmaWd1cmUgU1ZHcyByZXZlYWxlZCBwZXIgY2xpY2ssXG4vLyB3aXRoIGFuIGVzY2FsYXRpbmcgZmlsbC9kcmFpbiBidXR0b24gYW5kIGEgY2VsZWJyYXRpb24gYnVyc3QgZnJvbSBiZWhpbmQuXG4vLyBGTEFUIENTUy4gRWRpdCBIRVJFLCB0aGVuIGBndWxwIHNhc3MtdjFgLlxuLnFkbmFwcm8tcGFydHktc2NlbmUgeyBkaXNwbGF5OiBibG9jazsgfVxuXG4ucWRuYXByby1wYXJ0eS1zY2VuZSAucHMtc2NlbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAyMnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoNzAlIDgwJSBhdCA1MCUgNjIlLCB2YXIoLS1jLXB1cnBsZS01MDApIDAlLCB2YXIoLS1jLXNpZGViYXItYmcpIDU1JSwgdmFyKC0tYy1wdXJwbGUtNjAwKSAxMDAlKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG59XG4ucWRuYXByby1wYXJ0eS1zY2VuZSAucHMtbGF5ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xufVxuLnFkbmFwcm8tcGFydHktc2NlbmUgLnBzLWd1ZXN0IHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIuMiUpIHNjYWxlKDAuOTc1KTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDkwJTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UsIHRyYW5zZm9ybSAwLjU1cyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG59XG4ucWRuYXByby1wYXJ0eS1zY2VuZSAucHMtZ3Vlc3QuaXMtaGVyZSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxuXG4ucWRuYXByby1wYXJ0eS1zY2VuZSAucHMtY29udHJvbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEycHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi10b3A6IDE0cHg7XG59XG4ucWRuYXByby1wYXJ0eS1zY2VuZSAucHMtYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIHBhZGRpbmc6IDE2cHggMzJweDtcbiAgbWluLXdpZHRoOiAyNDBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gIGJveC1zaGFkb3c6IDAgMTBweCAyNnB4IC0xMHB4IHJnYmEoMCwgMCwgMCwgMC41KSwgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMgZWFzZTtcbn1cbi5xZG5hcHJvLXBhcnR5LXNjZW5lIC5wcy1idG46YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk3KTsgfVxuLnFkbmFwcm8tcGFydHktc2NlbmUgLnBzLWZpbGwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7IHRvcDogMDsgYm90dG9tOiAwO1xuICB3aWR0aDogMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tYy1wdXJwbGUtNTAwKSAwJSwgdmFyKC0tYy1wdXJwbGUtNDAwKSA1NSUsIHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKSAxMDAlKTtcbiAgei1pbmRleDogMDtcbn1cbi5xZG5hcHJvLXBhcnR5LXNjZW5lIC5wcy1sYmwgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuLnFkbmFwcm8tcGFydHktc2NlbmUgLnBzLXJlc2V0IHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgcGFkZGluZzogMTRweCAyMHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCBib3JkZXItY29sb3IgMC4xNnM7XG59XG4ucWRuYXByby1wYXJ0eS1zY2VuZSAucHMtcmVzZXQuaXMtc2hvd24geyBvcGFjaXR5OiAxOyBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuLnFkbmFwcm8tcGFydHktc2NlbmUgLnBzLXJlc2V0OmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm4tcmVkLTQwMCk7IGNvbG9yOiB2YXIoLS1jLXdhcm4tcmVkLTMwMCk7IH1cbi5xZG5hcHJvLXBhcnR5LXNjZW5lIC5wcy1jb3VudCB7IHdpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZC1wcCk7IGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IH1cbi5xZG5hcHJvLXBhcnR5LXNjZW5lIC5wcy1jb3VudCBiIHsgY29sb3I6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7IGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiIsIi8vIHFkbmFwcm8tc2NvcmUtY291bnQg4oCUIGFuaW1hdGVkIGNvdW50LXVwIHNjb3JlIGZvciB0aGUgZWluZHNjaGVybS5cbi8vIEZMQVQgQ1NTLiBFZGl0IEhFUkUsIHRoZW4gYGd1bHAgc2Fzcy12MWAuXG4ucWRuYXByby1zY29yZS1jb3VudCB7IGRpc3BsYXk6IGJsb2NrOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnFkbmFwcm8tc2NvcmUtY291bnQgLnNjLW51bSB7XG4gIGZvbnQtc2l6ZTogNTZweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5xZG5hcHJvLXNjb3JlLWNvdW50IC5zYy1udW0uaXMtcG9wIHsgYW5pbWF0aW9uOiBxZG5hcHJvLXNjb3JlLXBvcCAwLjQycyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7IH1cbi5xZG5hcHJvLXNjb3JlLWNvdW50IC5zYy1sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43Mik7XG59XG5cbkBrZXlmcmFtZXMgcWRuYXByby1zY29yZS1wb3Age1xuICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgNDUlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjE2KTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby1zY29yZS1jb3VudCAuc2MtbnVtLmlzLXBvcCB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvY2hlY2tib3gvX2NoZWNrYm94LWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLWNoZWNrYm94IHtcbiAgLS1jYi1zaXplOiAxNnB4O1xuICAtLWNiLWJvcmRlcjogdmFyKC0tYy1ncmV5LTMwMCk7XG4gIC0tY2ItYmc6ICNmZmZmZmY7XG4gIC0tY2ItYmctaG92ZXI6IHZhcigtLWMtZ3JleS01MCk7XG4gIC0tY2ItZmlsbGVkLWJnOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAtLWNiLWZpbGxlZC1ib3JkZXI6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gIC0tY2ItbWFyazogI2ZmZmZmZjtcbiAgLS1jYi1mb2N1cy1yaW5nOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLWNiLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiB2YXIoLS1jYi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1jYi1zaXplKTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNiLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2ItYmcpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2Utb3V0LCBib3JkZXItY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1jaGVja2JveCAuY2hlY2tib3gtbWFyayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xuICBjb2xvcjogdmFyKC0tY2ItbWFyayk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjIwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuMzUsIDAuNjQsIDEpLCBvcGFjaXR5IDE0MG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tY2hlY2tib3ggLmNoZWNrYm94LW1hcmsgc3ZnIHtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnFkbmFwcm8tY2hlY2tib3ggLmNoZWNrYm94LW1hcmstZGFzaCB7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYi1tYXJrKTtcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xufVxuLnFkbmFwcm8tY2hlY2tib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucWRuYXByby1jaGVja2JveC5jaGVja2JveC1jaGVja2VkIC5jaGVja2JveC1tYXJrLWNoZWNrIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTtcbn1cbi5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLmNoZWNrYm94LW1hcmstZGFzaCB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7XG59XG4ucWRuYXByby1jaGVja2JveC5jaGVja2JveC1zaGFwZS1zcXVhcmUge1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ucWRuYXByby1jaGVja2JveC5jaGVja2JveC1zaGFwZS1yb3VuZCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLy8gc2l6ZT1cInRvdWNoXCIg4oCUIDQ0cHgsIFBXQS1PTkxZIG1pbmltdW0gdGFwIHRhcmdldCAobWF0Y2hlcyBxZG5hcHJvLWljb24tYnRuJ3Mgb3duXG4vLyBzaXplPVwidG91Y2hcIikuIE5vdCB1c2VkIGluIHRoZSBiYWNrb2ZmaWNlLiBNYXJrL2Rhc2gvYm9yZGVyIHNjYWxlIHVwIHdpdGggdGhlIGJveFxuLy8gc28gdGhlIHNhbWUgcHJvcG9ydGlvbnMgaG9sZCBhdCBib3RoIHNpemVzLiBbMjAyNi0wNy0wMV1cbi5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LXNpemUtdG91Y2gge1xuICAtLWNiLXNpemU6IDQ0cHg7XG4gIGJvcmRlci13aWR0aDogMnB4O1xufVxuLnFkbmFwcm8tY2hlY2tib3guY2hlY2tib3gtc2l6ZS10b3VjaC5jaGVja2JveC1zaGFwZS1zcXVhcmUge1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG4ucWRuYXByby1jaGVja2JveC5jaGVja2JveC1zaXplLXRvdWNoIC5jaGVja2JveC1tYXJrIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbn1cbi5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LXNpemUtdG91Y2ggLmNoZWNrYm94LW1hcmstZGFzaCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDVweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4vLyBzaXplPVwidG91Y2gtc21cIiDigJQgMjhweCwgUFdBLU9OTFkuIEZvciBhIGNoZWNrYm94IGluc2lkZSBhIGRlbnNlIGxpc3Qgcm93IChlLmcuIHRoZVxuLy8gXCJTZWxlY3RlZCB1bml0c1wiIG92ZXJsYXkncyB+NTBweCByb3dzKSwgd2hlcmUgdGhlIGZ1bGwgNDRweCBcInRvdWNoXCIgYm94IHRvb2sgdXAgODclXG4vLyBvZiB0aGUgcm93IGhlaWdodCBhbmQgZG9taW5hdGVkIGV2ZXJ5dGhpbmcgZWxzZSBpbiBpdC4gU3RpbGwgY2xlYXJseSBiaWdnZXIvZWFzaWVyXG4vLyB0byBoaXQgdGhhbiB0aGUgMTZweCBkZWZhdWx0LiBOb3QgdXNlZCBpbiB0aGUgYmFja29mZmljZS4gW0tpbSwgMjAyNi0wNy0wMV1cbi5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LXNpemUtdG91Y2gtc20ge1xuICAtLWNiLXNpemU6IDI4cHg7XG59XG4ucWRuYXByby1jaGVja2JveC5jaGVja2JveC1zaXplLXRvdWNoLXNtLmNoZWNrYm94LXNoYXBlLXNxdWFyZSB7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LXNpemUtdG91Y2gtc20gLmNoZWNrYm94LW1hcmsge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuLnFkbmFwcm8tY2hlY2tib3guY2hlY2tib3gtc2l6ZS10b3VjaC1zbSAuY2hlY2tib3gtbWFyay1kYXNoIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogM3B4O1xuICBib3JkZXItcmFkaXVzOiAxLjVweDtcbn1cbi5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LWNoZWNrZWQsIC5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYi1maWxsZWQtYmcpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNiLWZpbGxlZC1ib3JkZXIpO1xufVxuLnFkbmFwcm8tY2hlY2tib3g6aG92ZXI6bm90KC5jaGVja2JveC1kaXNhYmxlZCk6bm90KC5jaGVja2JveC1jaGVja2VkKTpub3QoLmNoZWNrYm94LWluZGV0ZXJtaW5hdGUpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2ItYmctaG92ZXIpO1xufVxuLnFkbmFwcm8tY2hlY2tib3g6YWN0aXZlOm5vdCguY2hlY2tib3gtZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMC4xNSksIHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xufVxuLnFkbmFwcm8tY2hlY2tib3g6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLnFkbmFwcm8tY2hlY2tib3g6Zm9jdXMtdmlzaWJsZSwgLnFkbmFwcm8tY2hlY2tib3guZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tY2ItZm9jdXMtcmluZyksIDAgMCAwIDZweCB2YXIoLS1jYi1mb2N1cy1nbG93KTtcbn1cbi5xZG5hcHJvLWNoZWNrYm94LmZvcmNlLWhvdmVyOm5vdCguY2hlY2tib3gtZGlzYWJsZWQpOm5vdCguY2hlY2tib3gtY2hlY2tlZCk6bm90KC5jaGVja2JveC1pbmRldGVybWluYXRlKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNiLWJnLWhvdmVyKTtcbn1cbi5xZG5hcHJvLWNoZWNrYm94LmZvcmNlLXByZXNzZWQ6bm90KC5jaGVja2JveC1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjE1KSwgcmdiYSgwLCAwLCAwLCAwLjE1KSk7XG59XG4ucWRuYXByby1jaGVja2JveC5jaGVja2JveC1zdGF0ZS1lcnJvciB7XG4gIC0tY2ItYm9yZGVyOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG4gIC0tY2ItZmlsbGVkLWJnOiB2YXIoLS1jLXdhcm4tcmVkLTQwMCk7XG4gIC0tY2ItZmlsbGVkLWJvcmRlcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xuICAtLWNiLWZvY3VzLXJpbmc6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTtcbiAgLS1jYi1mb2N1cy1nbG93OiByZ2JhKDE5OCwgOTAsIDkwLCAwLjI1KTtcbn1cbi5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LXN0YXRlLXN1Y2Nlc3Mge1xuICAtLWNiLWJvcmRlcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG4gIC0tY2ItZmlsbGVkLWJnOiB2YXIoLS1jLWNoaXAtZ3JlZW4tMi1ob3Zlcik7XG4gIC0tY2ItZmlsbGVkLWJvcmRlcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG4gIC0tY2ItZm9jdXMtcmluZzogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG4gIC0tY2ItZm9jdXMtZ2xvdzogcmdiYSg2NiwgMTM5LCAxMTAsIDAuMjUpO1xufVxuLnFkbmFwcm8tY2hlY2tib3guY2hlY2tib3gtZGlzYWJsZWQge1xuICAtLWNiLWJvcmRlcjogdmFyKC0tYy1ncmV5LTMwMCk7XG4gIC0tY2ItYmc6IHZhcigtLWMtZ3JleS01MCk7XG4gIC0tY2ItZmlsbGVkLWJnOiB2YXIoLS1jLWdyZXktNTApO1xuICAtLWNiLWZpbGxlZC1ib3JkZXI6IHZhcigtLWMtZ3JleS0zMDApO1xuICAtLWNiLW1hcms6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG4gIG9wYWNpdHk6IDAuNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWNoZWNrYm94IHtcbiAgLS1jYi1ib3JkZXI6ICM1NjViNjY7XG4gIC0tY2ItYmc6ICMyZTMwMzY7XG4gIC0tY2ItYmctaG92ZXI6ICM0MDQ0NGQ7XG4gIC0tY2ItZmlsbGVkLWJnOiAjNDY1MmYzO1xuICAtLWNiLWZpbGxlZC1ib3JkZXI6ICM0NjUyZjM7XG4gIC0tY2ItbWFyazogI2ZmZmZmZjtcbiAgLS1jYi1mb2N1cy1yaW5nOiAjYTVhY2ZmO1xuICAtLWNiLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1jaGVja2JveC5jaGVja2JveC1zdGF0ZS1lcnJvciB7XG4gIC0tY2ItYm9yZGVyOiAjYzY1YTVhO1xuICAtLWNiLWZpbGxlZC1iZzogI2M2NWE1YTtcbiAgLS1jYi1maWxsZWQtYm9yZGVyOiAjYzY1YTVhO1xuICAtLWNiLWZvY3VzLXJpbmc6ICNlODkwOTA7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1jaGVja2JveC5jaGVja2JveC1zdGF0ZS1zdWNjZXNzIHtcbiAgLS1jYi1ib3JkZXI6ICM0MjhiNmU7XG4gIC0tY2ItZmlsbGVkLWJnOiAjNDI4YjZlO1xuICAtLWNiLWZpbGxlZC1ib3JkZXI6ICM0MjhiNmU7XG4gIC0tY2ItZm9jdXMtcmluZzogIzdjY2ZhODtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWNoZWNrYm94LmNoZWNrYm94LWRpc2FibGVkIHtcbiAgLS1jYi1ib3JkZXI6ICM1NjViNjY7XG4gIC0tY2ItYmc6ICM0MDQ0NGQ7XG4gIC0tY2ItZmlsbGVkLWJnOiAjNDA0NDRkO1xuICAtLWNiLWZpbGxlZC1ib3JkZXI6ICM1NjViNjY7XG4gIC0tY2ItbWFyazogIzZiNzI4MDtcbn1cblxuLyogPT09IHRoZW1lOiBnbGFzcyDigJQgYWRkZWQgMjAyNi0wNi0wOCA9PT1cbiAgIFRyYW5zbHVjZW50IGNoZWNrYm94IGZvciBhIGRhcmsgLyBjb2xvdXJlZCBzdXJmYWNlIChsb2dpbikuIEFjdGl2YXRlIHZpYVxuICAgZGF0YS10aGVtZT1cImdsYXNzXCIgb24gYW4gYW5jZXN0b3I7IGxpbGEgZm9jdXMgcmluZyB0byBtYXRjaCB0aGUgaW5wdXRzLiAqL1xuW2RhdGEtdGhlbWU9Z2xhc3NdIC5xZG5hcHJvLWNoZWNrYm94IHtcbiAgLS1jYi1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSk7XG4gIC0tY2ItYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gIC0tY2ItYmctaG92ZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gIC8qIENoZWNrZWQgPSBzb2xpZCB3aGl0ZSBib3ggd2l0aCBhIGRhcmsgY2hlY2ssIHNvIGl0IHN0YW5kcyBvdXQgb24gdGhlXG4gICAgIGRhcmsgc3VyZmFjZSAoYSB0aW50ZWQgZmlsbCBibGVuZHMgaW50byB0aGUgaW5kaWdvIC0gdG9vIGxvdyBjb250cmFzdCkuICovXG4gIC0tY2ItZmlsbGVkLWJnOiAjZmZmZmZmO1xuICAtLWNiLWZpbGxlZC1ib3JkZXI6ICNmZmZmZmY7XG4gIC0tY2ItbWFyazogIzI2MjE1YztcbiAgLS1jYi1mb2N1cy1yaW5nOiAjOWE4ZmZmO1xuICAtLWNiLWZvY3VzLWdsb3c6IHJnYmEoMTU0LCAxNDMsIDI1NSwgMC4zNSk7XG59XG5bZGF0YS10aGVtZT1nbGFzc10gLnFkbmFwcm8tY2hlY2tib3guY2hlY2tib3gtZGlzYWJsZWQge1xuICAtLWNiLWJvcmRlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgLS1jYi1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgLS1jYi1maWxsZWQtYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIC0tY2ItZmlsbGVkLWJvcmRlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgLS1jYi1tYXJrOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9jb2xvci1waWNrZXIvX2NvbG9yLXBpY2tlci1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIHFkbmFwcm8tY29sb3ItcGlja2VyXG4gKiBQYXN0ZWwgc3dhdGNoIHBpY2tlci4gUGFsZXR0ZSBtYXRjaGVzIHRoZSB0YXNrbGlzdC1jYXJkXG4gKiAudGxjLWNvbG9yLSogdGludHMgZXhhY3RseSBzbyB0aGUgc3dhdGNoID09IHRoZSBjYXJkIHRpbnQuXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ucWRuYXByby1jb2xvci1waWNrZXIgKixcbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAqOjpiZWZvcmUsXG4ucWRuYXByby1jb2xvci1waWNrZXIgKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1ncmlkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDEwcHg7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjEpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1xY3AtYmcsICNlZWYwZjIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMjBtcyBlYXNlLCBib3gtc2hhZG93IDEyMG1zIGVhc2UsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlO1xufVxuXG4ucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2g6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaDphY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaDpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSg3MCwgODIsIDI0MywgMC4yKTtcbn1cblxuLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLnFjcC1zd2F0Y2gtc2VsZWN0ZWQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jLXB1cnBsZS01MDApLCAwIDAgMCA1cHggcmdiYSg3MCwgODIsIDI0MywgMC4xOCk7XG59XG5cbi8qIFZhcmlhbnQgXCJzb2Z0XCI6IExJR0hULXB1cnBsZSBzZWxlY3Rpb24gcmluZyAoc2FtZSBodWUgYXMgdGhlIGZvY3VzIGdsb3cpXG4gICBpbnN0ZWFkIG9mIHRoZSBoZWF2eSBkYXJrIHZhcigtLWMtcHVycGxlLTUwMCkgcmluZy4gVGhlIGNoZWNrbWFyayBzdGlsbCBtYXJrcyB0aGUgcGljay5cbiAgIExvb2tzIG11Y2ggYmV0dGVyIG9uIGRhcmsgLyBzYXR1cmF0ZWQgc3dhdGNoZXMuIFtLaW0gMjAyNi0wNi0yMl0gKi9cbi5xZG5hcHJvLWNvbG9yLXBpY2tlci5xY3AtdmFyaWFudC1zb2Z0IC5xY3Atc3dhdGNoLnFjcC1zd2F0Y2gtc2VsZWN0ZWQge1xuICBib3JkZXItY29sb3I6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNDUpO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg3MCwgODIsIDI0MywgMC4yMik7XG59XG5cbi8qIENoZWNrIG1hcmsgLSB2aXNpYmxlIG9ubHkgb24gdGhlIHNlbGVjdGVkIHN3YXRjaC4gKi9cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLWNoZWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC1zZWxlY3RlZCAucWNwLWNoZWNrIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3AtY2hlY2s6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogNnB4O1xuICAvKiAtLXFjcC1jaGVjayBpcyBzZXQgcGVyIHN3YXRjaCBieSB0aGUgSlMgY29udHJhc3QgZGV0ZWN0b3I6XG4gICAgIHdoaXRlIG9uIGRhcmsgc3dhdGNoZXMsIGJyYW5kIGluZGlnbyBvbiBsaWdodCBvbmVzLiAqL1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLXFjcC1jaGVjaywgIzQwNDk5YSk7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1xY3AtY2hlY2ssICM0MDQ5OWEpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi8qIFBhbGV0dGUgLSBtYXRjaGVzIHRoZSAudGxjLWNvbG9yLSogdGFza2xpc3QtY2FyZCB0aW50cyBleGFjdGx5LiAqL1xuLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1ncmV5IHtcbiAgLS1xY3AtYmc6IHZhcigtLWMtZ3JleS01MCk7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tcmVkIHtcbiAgLS1xY3AtYmc6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0teWVsbG93IHtcbiAgLS1xY3AtYmc6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpO1xufVxuXG4ucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLWdyZWVuIHtcbiAgLS1xY3AtYmc6IHZhcigtLWMtY2hpcC1ncmVlbi1iZyk7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tYmx1ZSB7XG4gIC0tcWNwLWJnOiB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnKTtcbn1cblxuLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1icmlnaHQtYmx1ZSB7XG4gIC0tcWNwLWJnOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1iZyk7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tcGluayB7XG4gIC0tcWNwLWJnOiB2YXIoLS1jLXNpZ25hbC1waW5rLWJnKTtcbn1cblxuLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1wdXJwbGUge1xuICAtLXFjcC1iZzogdmFyKC0tYy1jaGlwLXB1cnBsZS1iZyk7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlci5xY3AtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU1O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogU2VtYW50aWMgcGFsZXR0ZSAoZmxvd2VkaXRvciBwZXItb3B0aW9uIGFwcGVhcmFuY2UgbW9kYWwsIDEyLjA3LjIwMjYpOlxuICAgc3RhbmRhYXJkIC8gcG9zaXRpdmUgLyB3YXJuaW5nIC8gbmVnYXRpdmUgLyBuZXV0cmFsX2FsdCDigJQgdGhlIGNsb3NlZFxuICAgNS12YWx1ZSBzZXQgdGhlIE9wdGlvbkFwcGVhcmFuY2VPdmVybGF5LnZ1ZSBkYXRhbW9kZWwgdXNlcy4gVGludHMgY29tZVxuICAgZnJvbSB0aGUgc2hhcmVkIHNpZ25hbCBkZXNpZ24gdG9rZW5zIChzYW1lIHRva2VucyBxZG5hcHJvLWFuc3dlci1idXR0b24nc1xuICAgLS1wb3NpdGl2ZS8tLXdhcm5pbmcvLS1uZWdhdGl2ZS8tLW5ldXRyYWxfYWx0IHZhcmlhbnRzIGFscmVhZHkgdXNlKSBzbyBhXG4gICBwaWNrZWQgY29sb3VyIHJlYWRzIGlkZW50aWNhbGx5IGluIHRoZSBwaWNrZXIgYW5kIGluIHRoZSBsaXZlIHByZXZpZXcuXG4gICBcInN0YW5kYWFyZFwiIGhhcyBubyBzaWduYWwgdG9rZW4gKGl0IG1hcHMgdG8gJycgaW4gdGhlIGRhdGFtb2RlbCkg4oCUIGFcbiAgIGxpZ2h0IGJyYW5kLXB1cnBsZSBuZXV0cmFsICgtLWMtcHVycGxlLTUwKSBmaXRzIHRoZSBcIm5ldXRyYWFsXG4gICBwdXJwZXIvZ3JpanNcIiBhc2sgYmV0dGVyIHRoYW4gcGxhaW4gZ3JleSBpbiB0aGlzIHB1cnBsZS1icmFuZGVkIHByb2R1Y3QuICovXG4ucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXN0YW5kYWFyZCB7XG4gIC0tcWNwLWJnOiB2YXIoLS1jLXB1cnBsZS01MCwgI2U2ZTlmZik7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBpY2tlciAucWNwLXN3YXRjaC0tcG9zaXRpdmUge1xuICAtLXFjcC1iZzogdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcsICNjNWY1ZTIpO1xufVxuXG4ucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLXdhcm5pbmcge1xuICAtLXFjcC1iZzogdmFyKC0tYy1zaWduYWwteWVsbG93LWJnLCAjZmVlZGI4KTtcbn1cblxuLnFkbmFwcm8tY29sb3ItcGlja2VyIC5xY3Atc3dhdGNoLS1uZWdhdGl2ZSB7XG4gIC0tcWNwLWJnOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZWUzZTMpO1xufVxuXG4ucWRuYXByby1jb2xvci1waWNrZXIgLnFjcC1zd2F0Y2gtLW5ldXRyYWxfYWx0IHtcbiAgLS1xY3AtYmc6IHZhcigtLWMtc2lnbmFsLWJsdWUtYmcsICNlNmVmZjkpO1xufSIsIi8vIF9jb2xvci1wYW5lbC5zY3NzXG4vL1xuLy8gcWRuYXByby1jb2xvci1wYW5lbCAtIFdvcmQtc3R5bGUgc3RhY2tlZCBjb2xvdXIgcGFuZWwgZm9yIHRoZSBQdWxzZSBzdGVwXG4vLyB3aXphcmQgKGJhY2tncm91bmQgY29sb3VyIEFORCB0ZXh0IGNvbG91cikuIFNlZSBxZG5hLWNvbG9yLXBhbmVsLmpzIGZvclxuLy8gdGhlIGZ1bGwgZG9jYmxvY2sgKHdoeSB0aGlzIGV4aXN0cyBuZXh0IHRvIHFkbmFwcm8tY29sb3ItcGlja2VyLCB2YWx1ZVxuLy8gY29udHJhY3QsIGV2ZW50cykuXG4vL1xuLy8gVGhyZWUgc3RhY2tlZCBwaWVjZXMsIHRvcCB0byBib3R0b206XG4vLyAgIC5xY3AyLWF1dG8gIC0gZnVsbC13aWR0aCBcIkF1dG9tYXRpc2NoXCIgYnV0dG9uIChoaWRlYWJsZSB2aWEgYG5vLWF1dG9gKS5cbi8vICAgLnFjcDItZ3JpZCAgLSBhIGdyaWQgb2Ygc3dhdGNoIGJ1dHRvbnMgKDUgcGVyIHJvdyksIHNlbGVjdGlvbiBzaG93biB3aXRoXG4vLyAgICAgICAgICAgICAgICAgYSByaW5nICsgYSBjZW50cmVkIGNoZWNrbWFyayAoc2FtZSB2aXN1YWwgbGFuZ3VhZ2UgYXNcbi8vICAgICAgICAgICAgICAgICBxZG5hcHJvLWNvbG9yLXBpY2tlcidzIC5xY3AtY2hlY2spLlxuLy8gICAucWNwMi1tb3JlICAtIFwiTWVlciBrbGV1cmVuXCIgcm93IHRoYXQgb3BlbnMgYSBxZG5hcHJvLXBvcG92ZXIgaG9zdGluZyBhXG4vLyAgICAgICAgICAgICAgICAgbmF0aXZlIDxpbnB1dCB0eXBlPVwiY29sb3JcIj4gKC5xY3AyLXdoZWVsLXBhbmVsIGJlbG93KS5cblxuLnFkbmFwcm8tY29sb3ItcGFuZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi5xZG5hcHJvLWNvbG9yLXBhbmVsICosXG4ucWRuYXByby1jb2xvci1wYW5lbCAqOjpiZWZvcmUsXG4ucWRuYXByby1jb2xvci1wYW5lbCAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLy8gLS0tIDEuIEF1dG9tYXRpc2NoIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5xY3AyLWF1dG8ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLCBiYWNrZ3JvdW5kIDEyMG1zIGVhc2UsIGJveC1zaGFkb3cgMTIwbXMgZWFzZTtcbn1cblxuLnFjcDItYXV0bzpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyLCAjZjdmOGZhKTtcbn1cblxuLnFjcDItYXV0bzpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nKSwgMCAwIDAgNXB4IHZhcigtLWZvY3VzLWdsb3cpO1xufVxuXG4ucWNwMi1hdXRvLnFjcDItYXV0by1zZWxlY3RlZCB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwLCAjZTZlOWZmKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgICAvLyAtLWMtcHVycGxlLTUwIGhhcyBOTyBkYXJrLW1vZGUgdmFsdWU6IGl0IHN0YXlzIGxpZ2h0IGluIGJvdGggdGhlbWVzLlxuICAgIC8vIFRoZSBpbmhlcml0ZWQgLS1jLXRleHQtaGVhZGluZyBET0VTIGZsaXAgKHRvIGdyZXktNTApLCBzbyB3aXRob3V0IHRoaXNcbiAgICAvLyBsaW5lIHRoZSBzZWxlY3RlZCBsYWJlbCB3YXMgbmVhci1pbnZpc2libGUgbGlnaHQtb24tbGlnaHQgaW4gZGFyayBtb2RlXG4gICAgLy8gKG1lYXN1cmVkIGluIGEgaGVhZGxlc3MgcmVuZGVyLCAyOC4wOC4yMDI2KS4gUGluIHRoZSB0ZXh0IHRvIHRoZSBkYXJrXG4gICAgLy8gcHVycGxlIHNvIGl0IHBhaXJzIHdpdGggdGhlIGJhY2tncm91bmQgdGhhdCBkb2VzIG5vdCBtb3ZlLlxuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDAsICMyYTMyNjgpO1xufVxuXG4vLyAtLS0gMi4gU3dhdGNoIGdyaWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucWNwMi1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIDFmcik7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5xY3AyLXN3YXRjaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgcmdiYSgwLCAwLCAwLCAwLjA3KSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWNwMi1iZywgI2VlZjBmMik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMjBtcyBlYXNlLCBib3gtc2hhZG93IDEyMG1zIGVhc2UsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlO1xufVxuXG4ucWNwMi1zd2F0Y2g6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLnFjcDItc3dhdGNoOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4ucWNwMi1zd2F0Y2g6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtcmluZyksIDAgMCAwIDVweCB2YXIoLS1mb2N1cy1nbG93KTtcbn1cblxuLnFjcDItc3dhdGNoLnFjcDItc3dhdGNoLXNlbGVjdGVkIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG59XG5cbi5xY3AyLWNoZWNrIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG9wYWNpdHk6IDA7XG59XG5cbi5xY3AyLXN3YXRjaC1zZWxlY3RlZCAucWNwMi1jaGVjayB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLnFjcDItY2hlY2s6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHdpZHRoOiA5cHg7XG4gICAgaGVpZ2h0OiA1cHg7XG4gICAgLy8gLS1xY3AyLWNoZWNrIGlzIHNldCBwZXIgc3dhdGNoIGJ5IHRoZSBKUyBjb250cmFzdCBjaGVjazogXCIjZmZmZmZmXCIgb25cbiAgICAvLyBkYXJrIHN3YXRjaGVzLCB1bnNldCAoZmFsbHMgdGhyb3VnaCB0byAtLWMtcHVycGxlLTUwMCkgb24gbGlnaHQgb25lcy5cbiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLXFjcDItY2hlY2ssIHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSkpO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1xY3AyLWNoZWNrLCB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi8vIC0tLSAzLiBcIk1lZXIga2xldXJlblwiIHJvdyArIGNvbG91ci13aGVlbCBwb3BvdmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnFjcDItbW9yZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMGIwYjBkKTtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2U7XG59XG5cbi5xY3AyLW1vcmU6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLWhvdmVyLCB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpKTtcbn1cblxuLnFjcDItbW9yZTpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nKSwgMCAwIDAgNXB4IHZhcigtLWZvY3VzLWdsb3cpO1xufVxuXG4ucWNwMi1tb3JlLnFjcDItbW9yZS1zZWxlY3RlZCB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xufVxuXG4ucWNwMi1tb3JlLXN3YXRjaCB7XG4gICAgZmxleDogbm9uZTtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsIHJnYmEoMCwgMCwgMCwgMC4wNykpO1xuICAgIC8vIGNvbmljLWdyYWRpZW50IHN0YW5kLWluIGZvciBcIm5vIGN1c3RvbSBjb2xvdXIgY2hvc2VuIHlldFwiIC0gdGhlIHNhbWVcbiAgICAvLyBpZGVhIGFzIFdvcmQncyBlbXB0eSBjdXN0b20tY29sb3VyIHN3YXRjaC4gLS1xY3AyLW1vcmUtYmcgaXMgc2V0IHRvXG4gICAgLy8gYW4gYWN0dWFsIGhleCBieSB0aGUgSlMgb25jZSBhIGN1c3RvbSBjb2xvdXIgSVMgYWN0aXZlLlxuICAgIGJhY2tncm91bmQ6IHZhcigtLXFjcDItbW9yZS1iZywgdHJhbnNwYXJlbnQpO1xufVxuXG4ucWNwMi1tb3JlOm5vdCgucWNwMi1tb3JlLXNlbGVjdGVkKSAucWNwMi1tb3JlLXN3YXRjaCB7XG4gICAgYmFja2dyb3VuZDpcbiAgICAgICAgY29uaWMtZ3JhZGllbnQoXG4gICAgICAgICAgICBmcm9tIDBkZWcsXG4gICAgICAgICAgICAvLyBEZWxpYmVyYXRlbHkgYSBORVVUUkFMIHJhaW5ib3csIG5vdCB0aGUgdGVuIFB1bHNlIGNvbG91cnM6IHRoaXNcbiAgICAgICAgICAgIC8vIHdoZWVsIG1lYW5zIFwiYW55IGNvbG91ciB5b3UgbGlrZVwiLCBhbmQgcmVwZWF0aW5nIHRoZSBwYWxldHRlXG4gICAgICAgICAgICAvLyBoZXJlIHdvdWxkIGJvdGggZHVwbGljYXRlIHBhdHRlcm5zLmpzb24gKG9uZSBzb3VyY2Ugb2YgdHJ1dGgpXG4gICAgICAgICAgICAvLyBhbmQgaW1wbHkgdGhlIHdoZWVsIG9ubHkgb2ZmZXJzIHRob3NlIHRlbi4gU2FtZSBzaXggdG9rZW5zLCBpblxuICAgICAgICAgICAgLy8gdGhlIHNhbWUgb3JkZXIsIGFzIHFkbmFwcm8tYmFja2dyb3VuZC1waWNrZXIncyBvd24gd2hlZWwgdGlsZVxuICAgICAgICAgICAgLy8gKF9iYWNrZ3JvdW5kLXBpY2tlci5zY3NzKTogb25lIHdoZWVsLCBvbmUgcmVjaXBlLlxuICAgICAgICAgICAgdmFyKC0tYy13YXJuLXJlZC01MDAsICNkYzI2MjYpLFxuICAgICAgICAgICAgdmFyKC0tYy13YXJuLW9yYW5nZS01MDAsICNlYTU4MGMpLFxuICAgICAgICAgICAgdmFyKC0tYy13YXJuLXllbGxvdy01MDAsICNmYmJmMjQpLFxuICAgICAgICAgICAgdmFyKC0tYy1zdWNjZXNzLTUwMCwgIzEyODA1ZSksXG4gICAgICAgICAgICB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpLFxuICAgICAgICAgICAgdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKSxcbiAgICAgICAgICAgIHZhcigtLWMtd2Fybi1yZWQtNTAwLCAjZGMyNjI2KVxuICAgICAgICApO1xufVxuXG4ucWNwMi1tb3JlLWxhYmVsIHtcbiAgICBmbGV4OiBhdXRvO1xufVxuXG4vLyAtLS0gQ29sb3VyLXdoZWVsIHBvcG92ZXIgY29udGVudCAtLS1cblxuLnFjcDItd2hlZWwtcGFuZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbn1cblxuLnFjcDItd2hlZWwtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWY0ZCk7XG59XG5cbi5xY3AyLXdoZWVsLWlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5xY3AyLXdoZWVsLWlucHV0OmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLXJpbmcpLCAwIDAgMCA1cHggdmFyKC0tZm9jdXMtZ2xvdyk7XG59XG5cbi8vIFN0cmlwIHRoZSBuYXRpdmUgc3dhdGNoJ3Mgb3duIGluc2V0IGJvcmRlciBzbyBvdXJzIChhYm92ZSkgaXMgdGhlIG9ubHkgb25lLlxuLnFjcDItd2hlZWwtaW5wdXQ6Oi13ZWJraXQtY29sb3Itc3dhdGNoLXdyYXBwZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xufVxuXG4ucWNwMi13aGVlbC1pbnB1dDo6LXdlYmtpdC1jb2xvci1zd2F0Y2gge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG59XG5cbi5xY3AyLXdoZWVsLWlucHV0OjotbW96LWNvbG9yLXN3YXRjaCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbn1cblxuLy8gLS0tIERpc2FibGVkIC0tLVxuXG4ucWRuYXByby1jb2xvci1wYW5lbC5xY3AyLWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjU1O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1kYXRlLXBpY2tlciDigJQgY29tcGFjdCBtb250aC9kYXRlIHBpY2tlciAoRmlnbWEgMTYuMDcuMjAyNilcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFFETkEgdG9rZW5zIHVzZWQgKGRheSBidXR0b25zLCBwZXIgS2ltJ3MgRmlnbWEpOlxuLy8gICAgLS1jLWdyZXktNTAgICAgICAgICAgI2YwZjFmMiAgICAgICAgICAgICAgICAgICAgaG92ZXIgYmFja2dyb3VuZFxuLy8gICAgLS1jLWdyZXktMTAwICAgICAgICAgI2U3ZTllYyAgICAgICAgICAgICAgICAgICAgcHJlc3NlZCBiYWNrZ3JvdW5kXG4vLyAgICAtLWMtcHVycGxlLWhpZ2hsaWdodCB2YXIoLS1jLWFjdGlvbi01MDApICM0NjUyZjMgc2VsZWN0ZWQgZmlsbFxuLy8gICAgLS1jLWFjdGlvbi02MDAgICAgICAgIzM1NDBkNiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQgKyBob3ZlclxuLy8gICAgLS1jLWFjdGlvbi03MDAgICAgICAgIzJhMzZiOCAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQgKyBwcmVzc2VkXG4vLyAgICAtLWZvY3VzLXJpbmcgICAgICAgICB2YXIoLS1jLWJyYW5kLXB1cnBsZSkgIzQwNDk5YSAgZm9jdXMgb3V0bGluZVxuLy8gICAgLS1mb2N1cy1nbG93ICAgICAgICAgdmFyKC0tYy1hY3Rpb24tMjUpICAgICAgICAgZm9jdXMgZ2xvdyByaW5nXG4vLyAgICAtLWMtYnJhbmQtcHVycGxlICAgICB2YXIoLS1jLXB1cnBsZS01MDApICM0MDQ5OWEgdG9kYXkgbnVtYmVyXG4vLyAgICAtLWMtdGV4dC1kaXNhYmxlZCAgICAjODk4ZTk5ICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZCBkYXkgbnVtYmVyXG4vLyAgICAtLWMtZ3JleS00MDAgICAgICAgICAjYTZhYWIzICAgICAgICAgICAgICAgICAgICBtdXRlZCBhZGphY2VudC1tb250aCBkYXlzXG4vLyAgICAtLWMtZ3JleS01MDAgICAgICAgICAjNmI3MjgwICAgICAgICAgICAgICAgICAgICB3ZWVrZGF5IGhlYWRlclxuLy8gICAgLS1jLXRleHQtaGVhZGluZyAgICAgIzFhMWY0ZCAgICAgICAgICAgICAgICAgICAgbW9udGggbGFiZWxcbi8vICBTdHJ1Y3R1cmUgcmVmZXJlbmNlOiAucGxhbm5lci1jYWwgKHBsYW5uZXIvaW5kZXguaHRtbCkg4oCUIHRoaXMgY29tcG9uZW50XG4vLyAgcmVwbGFjZXMgdGhhdCBoYW5kLXJvbGxlZCBwYXR0ZXJuIHBsYXRmb3JtLXdpZGUuXG4vLyAgRkxBVCBDU1MgKG5vIG5lc3RpbmcpLCBwZXIgdGhlIHYyIGNvbXBvbmVudCBjb252ZW50aW9uLlxuXG4ucWRuYXByby1kYXRlLXBpY2tlciB7XG4gIC8vIE1hYXQgdmFuIMOpw6luIGRhZ2tub3Ag4oCUIGRlIGVuaWdlIGtub3Agd2FhciBkZSByZXN0IHppY2ggbmFhciB2b2VndCAoZGVcbiAgLy8gYmFuZC1ob29ndGUgZW4gZGUgcGlsLXJhZGl1cyBoaWVyb25kZXIgcmVrZW5lbiBlcnVpdCkuIEJlc3RvbmQgZWVyc3QgYWxzXG4gIC8vIGVlbiAzMiBkaWUgb3AgdmlqZiBwbGVra2VuIGxvcyBpbiBoZXQgYmVzdGFuZCBzdG9uZDsgYWxzIHZhcmlhYmVsZSBrYW5cbiAgLy8gYHRvdWNoYCBoZW0gaW4gw6nDqW4gcmVnZWwgb216ZXR0ZW4gem9uZGVyIGRpZSB2aWpmIHRlIGhlcmhhbGVuLiBbMDcuMDguMjAyNl1cbiAgLS1kYXRlLXBpY2tlci1kYXk6IDMycHg7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi13aWR0aDogMjMycHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vLyBwYW5lbCDigJQgdGhlIHFkbmFwcm8tbWVudSBjaHJvbWUsIHZlcmJhdGltIHRva2VucyBmcm9tIF9tZW51LnNjc3Mnc1xuLy8gLm1lbnUtY29sb3ItbmV1dHJhbCBibG9jayAoYm9yZGVyICNjNGM3Y2MsIHJhZGl1cyA4LCB0aGUgbWVudSBzaGFkb3cpLFxuLy8gc28gYSBwaWNrZXIgaG9zdGVkIGluIGEgYmFyZSBwb3BvdmVyIHJlYWRzIGlkZW50aWNhbCB0byB0aGUgb3RoZXJcbi8vIGRyb3Bkb3duIHBhbmVscyAoS2ltLCAxNi4wNy4yMDI2KS4gUGFkZGluZyAxMHB4IDEycHg6IHRoZSBtZW51J3MgOHB4XG4vLyBmZWVscyBjcmFtcGVkIGFyb3VuZCBhIDctY29sdW1uIGdyaWQuXG4ucWRuYXByby1kYXRlLXBpY2tlci5xZG5hcHJvLWRhdGUtcGlja2VyLS1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgOHB4IDEycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG59XG5cbi8vIEhlYWRlciDigJQgbW9udGggbGFiZWwgTEVGVCwgcGFpcmVkIGNoZXZyb25zIFJJR0hUIChLaW0ncyBGaWdtYSwgMTYuMDcuMjAyNilcbi5xZG5hcHJvLWRhdGUtcGlja2VyX19oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogNHB4O1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG59XG4ucWRuYXByby1kYXRlLXBpY2tlcl9fbmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAycHg7XG4gIGZsZXg6IG5vbmU7XG59XG4ucWRuYXByby1kYXRlLXBpY2tlcl9fbGFiZWwge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xufVxuXG4vLyBXZWVrZGF5IHJvdyArIGRheSBncmlkIHNoYXJlIHRoZSA3LWNvbHVtbiByYXN0ZXJcbi5xZG5hcHJvLWRhdGUtcGlja2VyX193ZWVrZGF5cyxcbi5xZG5hcHJvLWRhdGUtcGlja2VyX19ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICBnYXA6IDJweDtcbn1cbi5xZG5hcHJvLWRhdGUtcGlja2VyX193ZWVrZGF5cyBzcGFuIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG4gIHBhZGRpbmc6IDJweCAwIDRweDtcbn1cblxuLy8gRGF5IGJ1dHRvbiDigJQgcm91bmQgfjMycHggaGl0IHRhcmdldC4gVGhlIC5mb3JjZS0qIGNsYXNzZXMgbWlycm9yIHRoZVxuLy8gcHNldWRvLWNsYXNzIHN0YXRlcyBmb3IgdGhlIGxpYnJhcnkgcHJldmlldyAodHJhbnNpZW50IHN0YXRlcyBtdXN0IGJlXG4vLyBzY3JlZW5zaG90LWFibGUsIHBlciB0aGUgcHJldmlld3MgY29udmVudGlvbikuXG4ucWRuYXByby1kYXRlLXBpY2tlcl9fZGF5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IHZhcigtLWRhdGUtcGlja2VyLWRheSk7XG4gIGhlaWdodDogdmFyKC0tZGF0ZS1waWNrZXItZGF5KTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICMwYjBiMGQpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlO1xufVxuXG4vLyBIb3ZlciAvIHByZXNzZWQgKG5ldmVyIG9uIGRpc2FibGVkIGRheXMpXG4ucWRuYXByby1kYXRlLXBpY2tlcl9fZGF5Om5vdCguaXMtZGlzYWJsZWQpOm5vdCguaXMtc2VsZWN0ZWQpOmhvdmVyLFxuLnFkbmFwcm8tZGF0ZS1waWNrZXJfX2RheS5mb3JjZS1ob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG59XG4ucWRuYXByby1kYXRlLXBpY2tlcl9fZGF5Om5vdCguaXMtZGlzYWJsZWQpOm5vdCguaXMtc2VsZWN0ZWQpOmFjdGl2ZSxcbi5xZG5hcHJvLWRhdGUtcGlja2VyX19kYXkuZm9yY2UtcHJlc3NlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xufVxuXG4vLyBUb2RheSDigJQgcHVycGxlIGJvbGQgbnVtYmVyOyBOT1QgdGhlIHNlbGVjdGVkIHN0eWxlIChib3RoIGNhbiBjb2V4aXN0IG9uXG4vLyBkaWZmZXJlbnQgZGF5czsgdG9kYXkrc2VsZWN0ZWQgc2hvd3MgdGhlIHNlbGVjdGVkIHN0eWxlIGJlbG93KS5cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19kYXkuaXMtdG9kYXkge1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xufVxuXG4vLyBTZWxlY3RlZCDigJQgZmlsbGVkIGhpZ2hsaWdodCBjaXJjbGUsIHdoaXRlIG51bWJlciAod2lucyBvdmVyIHRvZGF5KVxuLnFkbmFwcm8tZGF0ZS1waWNrZXJfX2RheS5pcy1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLWhpZ2hsaWdodCwgIzQ2NTJmMyk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uLCAjZmZmZmZmKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19kYXkuaXMtc2VsZWN0ZWQ6bm90KC5pcy1kaXNhYmxlZCk6aG92ZXIsXG4ucWRuYXByby1kYXRlLXBpY2tlcl9fZGF5LmlzLXNlbGVjdGVkLmZvcmNlLWhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24tNjAwLCAjMzU0MGQ2KTtcbn1cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19kYXkuaXMtc2VsZWN0ZWQ6bm90KC5pcy1kaXNhYmxlZCk6YWN0aXZlLFxuLnFkbmFwcm8tZGF0ZS1waWNrZXJfX2RheS5pcy1zZWxlY3RlZC5mb3JjZS1wcmVzc2VkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24tNzAwLCAjMmEzNmI4KTtcbn1cblxuLy8gQWRqYWNlbnQtbW9udGggZGF5c1xuLnFkbmFwcm8tZGF0ZS1waWNrZXJfX2RheS5pcy1tdXRlZCB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbn1cblxuLy8gRGlzYWJsZWQgKG91dHNpZGUgbWluL21heCkg4oCUIG11dGVkIHRleHQsIG5vIGhvdmVyLCBjdXJzb3IgZGVmYXVsdFxuLnFkbmFwcm8tZGF0ZS1waWNrZXJfX2RheS5pcy1kaXNhYmxlZCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQsICM4OThlOTkpO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8vIEZvY3VzIOKAlCBvdXRsaW5lZCBjaXJjbGUgbWlycm9yaW5nIHRoZSBxZG5hcHJvLWJ1dHRvbiBmb2N1cy12aXNpYmxlXG4vLyB0cmVhdG1lbnQgKHJpbmcgKyBzb2Z0IGdsb3cpOyBvdXRsaW5lIGZvbGxvd3MgdGhlIGJvcmRlci1yYWRpdXMuXG4ucWRuYXByby1kYXRlLXBpY2tlcl9fZGF5OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19kYXk6Zm9jdXMtdmlzaWJsZSxcbi5xZG5hcHJvLWRhdGUtcGlja2VyX19kYXkuZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZm9jdXMtcmluZywgIzQwNDk5YSk7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDVweCB2YXIoLS1mb2N1cy1nbG93LCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3BhbiAvIHJhbmdlIHNlbGVjdGlvbiBiYW5kIChLaW0sIDE2LjA3LjIwMjYg4oCUIHZpZXctc3BhbiArIHNuYXAtbW9uZGF5LFxuLy8gbW9kZT1cInJhbmdlXCIpLiBPbmx5IHJlbmRlcmVkIHdoZW4gdmlldy1zcGFuID4gMSBvciBtb2RlPVwicmFuZ2VcIiDigJQgdGhlXG4vLyBwbGFpbiBzaW5nbGUtZGF5IHBpY2tlciAodmlldy1zcGFuIDEsIG5vIHJhbmdlIG1vZGUpIG5ldmVyIGdldHMgYVxuLy8gLnFkbmFwcm8tZGF0ZS1waWNrZXJfX2NlbGwgd3JhcHBlciwgc28gaXQgc3RheXMgcGl4ZWwtaWRlbnRpY2FsLlxuLy9cbi8vIEVhY2ggZGF5IGlzIHdyYXBwZWQgaW4gYSBjZWxsOyB0aGUgYmFuZCBpcyBhIDo6YmVmb3JlIHVuZGVybGF5IHRoYXRcbi8vIGZpbGxzIHRoZSBjZWxsIGFuZCBibGVlZHMgMXB4IGludG8gdGhlIDJweCBncmlkIGdhcCBvbiBzaWRlcyB0b3VjaGluZ1xuLy8gYW5vdGhlciBiYW5kIGRheSwgc28gYSBtdWx0aS1kYXkgYmFuZCByZWFkcyBhcyBvbmUgY29udGludW91cyBwaWxsLlxuLy8gUm91bmRlZCBvbmx5IGF0IHRoZSBiYW5kJ3MgVFJVRSBzdGFydC9lbmQ7IGEgYmFuZCB0aGF0IHdyYXBzIG9udG8gdGhlXG4vLyBuZXh0IGdyaWQgcm93IGlzIGxlZnQgZmx1c2ggKG5vIHJvdW5kaW5nLCBubyBibGVlZCkgYXQgdGhlIHJvdyBlZGdlIOKAlFxuLy8gaXQgcmVhZHMgYXMgXCJjb250aW51ZXMgYmVsb3dcIiBpbnN0ZWFkIG9mIHR3byBzZXBhcmF0ZSBwaWxscy5cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19jZWxsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAganVzdGlmeS1zZWxmOiBzdHJldGNoO1xuICBoZWlnaHQ6IHZhcigtLWRhdGUtcGlja2VyLWRheSk7XG59XG4ucWRuYXByby1kYXRlLXBpY2tlcl9fY2VsbC5pcy1iYW5kOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4vLyBHaG9zdCDigJQgcHJvc3BlY3RpdmUgc3BhbiBwcmV2aWV3IG9uIGhvdmVyIG9ubHkgKGNhcGFiaWxpdHkgMSk6IHN1YnRsZVxuLy8gZ3JleSBwaWxsLCBubyBmaWxsZWQgY2lyY2xlcy5cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19jZWxsLmlzLWJhbmQtZ2hvc3Q6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG59XG4vLyBGaWxsIOKAlCB0aGUgY29tbWl0dGVkIHNwYW4vcmFuZ2UsIGFuZCBpdHMgaW4tcHJvZ3Jlc3MgaG92ZXIgcHJldmlldyBpblxuLy8gbW9kZT1cInJhbmdlXCI6IGxpZ2h0IHB1cnBsZSB0aW50OyB0aGUgdHdvIHRydWUgZW5kcyBhZGRpdGlvbmFsbHkgY2Fycnlcbi8vIC5pcy1zZWxlY3RlZCBvbiB0aGUgZGF5IGJ1dHRvbiAocmV1c2VkIGFzLWlzIOKAlCBmaWxsZWQgY2lyY2xlLCB3aGl0ZSB0ZXh0KS5cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19jZWxsLmlzLWJhbmQtZmlsbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24tMTIsIHJnYmEoNzAsIDgyLCAyNDMsIDAuMTIpKTtcbn1cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19jZWxsLmlzLWJhbmQtcm91bmQtc3RhcnQ6OmJlZm9yZSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGNhbGModmFyKC0tZGF0ZS1waWNrZXItZGF5KSAvIDIpO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBjYWxjKHZhcigtLWRhdGUtcGlja2VyLWRheSkgLyAyKTtcbn1cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19jZWxsLmlzLWJhbmQtcm91bmQtZW5kOjpiZWZvcmUge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogY2FsYyh2YXIoLS1kYXRlLXBpY2tlci1kYXkpIC8gMik7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBjYWxjKHZhcigtLWRhdGUtcGlja2VyLWRheSkgLyAyKTtcbn1cbi5xZG5hcHJvLWRhdGUtcGlja2VyX19jZWxsLmlzLWJhbmQtYmxlZWQtc3RhcnQ6OmJlZm9yZSB7XG4gIGxlZnQ6IC0xcHg7XG59XG4ucWRuYXByby1kYXRlLXBpY2tlcl9fY2VsbC5pcy1iYW5kLWJsZWVkLWVuZDo6YmVmb3JlIHtcbiAgcmlnaHQ6IC0xcHg7XG59XG4vLyBCYW5kIG1pZGRsZS1kYXkgbnVtYmVycyByZWFkIGFzIHBhcnQgb2YgdGhlIHNlbGVjdGlvbiAocHVycGxlLCBtZWRpdW1cbi8vIHdlaWdodCkgd2l0aG91dCB0aGUgZmlsbGVkLWNpcmNsZSB0cmVhdG1lbnQgcmVzZXJ2ZWQgZm9yIHRoZSB0cnVlIGVuZHMuXG4ucWRuYXByby1kYXRlLXBpY2tlcl9fY2VsbC5pcy1iYW5kLWZpbGwgLnFkbmFwcm8tZGF0ZS1waWNrZXJfX2RheTpub3QoLmlzLXNlbGVjdGVkKTpub3QoLmlzLWRpc2FibGVkKSB7XG4gIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLWRhdGUtcGlja2VyX19kYXkge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgVE9VQ0ggKDA3LjA4LjIwMjYpIOKAlCBkZXplbGZkZSBwaWNrZXIsIG1ldCBlZW4gdmluZ2VyIGJlZGllbmJhYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIERlIG1hdGVuIGhpZXJib3ZlbiBrb21lbiB1aXQgS2ltcyBGaWdtYSB2b29yIGRlIEJBQ0tPRkZJQ0UsIHdhYXIgZWVuXG4vLyAgbXVpcyBkZSBhYW53aWp6ZXIgaXM6IGVlbiBkYWdrbm9wIHZhbiAzMnB4IGlzIGRhYXIgcHJpbWEuIEluIGRlIFBXQSBpc1xuLy8gIGhpaiBkYXQgbmlldCDigJQgNDRweCBpcyBkZSBvbmRlcmdyZW5zIGRpZSBkZSByZXN0IHZhbiBkZXplIGxpYnJhcnlcbi8vICBhYW5ob3VkdCAocWRuYXByby1idXR0b24gc2l6ZT1cInRvdWNoXCIsIHFkbmFwcm8taWNvbi1idG4gc2l6ZT1cInRvdWNoXCIsXG4vLyAgZGUgbWFhbmRuYXZpZ2F0aWUgdmFuIHFkbmFwcm8tbW9udGgtZ3JpZCkuIFZhbmRhYXIgZGV6ZSB2YXJpYW50IGVuIG5pZXRcbi8vICBlZW4gc2V0amUgb3ZlcnJpZGVzIGJpaiBkZSBjb25zdW1lcjogZWVuIHR3ZWVkZSBwbGVrIG1ldCBlaWdlbiBtYXRlblxuLy8gIGdhYXQgZWVuIGtlZXIgdWl0IGRlIHBhcyBsb3BlbiBtZXQgZGUgZWVyc3RlLlxuLy9cbi8vICBHZXZvbGcgdm9vciB3aWUgaGVtIGluYm91d3Q6IDcgKiA0NCArIDYgKiAycHggdHVzc2VucnVpbXRlID0gMzIwcHgsIHBsdXNcbi8vICBkZSBwYWRkaW5nIHZhbiBkZSBvbWdldmluZy4gRWVuIHBhbmVlbCBvZiBrYWFydCBlcm9taGVlbiBtb2V0IGR1cyBvcCB6aWpuXG4vLyAgbWluc3QgfjMzNnB4IGJyZWVkIHppam4uIERhdCBpcyBnZWVuIGRldGFpbCBvbSB3ZWcgdGUgYmV6dWluaWdlbiDigJQga25panAgamVcbi8vICBkZSBicmVlZHRlIGFmLCBkYW4ga3JpbXBlbiBkZSBkYWdrbm9wcGVuIG1lZSBlbiBiZW4gamUgdGVydWcgYmlqIGhldFxuLy8gIHByb2JsZWVtIGRhdCBkZXplIHZhcmlhbnQgb3Bsb3N0LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ucWRuYXByby1kYXRlLXBpY2tlclt0b3VjaF0ge1xuICAtLWRhdGUtcGlja2VyLWRheTogNDRweDtcbn1cbi8vIERlIHdlZWtkYWdrb3AgZW4gaGV0IG1hYW5kbGFiZWwgZ3JvZWllbiBtZWUsIGFuZGVycyBsZWVzdCBkZSBrb3AgYWxzIGVlblxuLy8gYmlqc2NocmlmdCBiaWogZWVuIGdyaWQgZGF0IHR3ZWUga2VlciB6byBncm9vdCBpcy5cbi5xZG5hcHJvLWRhdGUtcGlja2VyW3RvdWNoXSAucWRuYXByby1kYXRlLXBpY2tlcl9fd2Vla2RheXMgc3BhbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5xZG5hcHJvLWRhdGUtcGlja2VyW3RvdWNoXSAucWRuYXByby1kYXRlLXBpY2tlcl9fZGF5IHtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvZGl2aWRlci9fZGl2aWRlci1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4vKiBjb21waWxlZCBmcm9tIF9kaXZpZGVyLnNjc3MgKi9cbi5xZG5hcHJvLWRpdmlkZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLXRyZWUpO1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbn1cbi5xZG5hcHJvLWRpdmlkZXIuZGl2aWRlci1ob3Jpem9udGFsIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMXB4OyB9XG4ucWRuYXByby1kaXZpZGVyLmRpdmlkZXItdmVydGljYWwgICB7IHdpZHRoOiAxcHg7IGhlaWdodDogMTAwJTsgYWxpZ24tc2VsZjogc3RyZXRjaDsgfVxuLnFkbmFwcm8tZGl2aWRlci5kaXZpZGVyLXZlcnRpY2FsLmRpdmlkZXItZml4ZWQtbGVuZ3RoIHsgYWxpZ24tc2VsZjogY2VudGVyOyB9XG4ucWRuYXByby1kaXZpZGVyLmRpdmlkZXItY29sb3ItbmV1dHJhbCB7IGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLXRyZWUpOyB9XG4ucWRuYXByby1kaXZpZGVyLmRpdmlkZXItY29sb3Itc3VidGxlICB7IGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xMCk7IH1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLWRpdmlkZXIuZGl2aWRlci1jb2xvci1uZXV0cmFsLFxuW2RhdGEtdGhlbWUtZGFya10gIC5xZG5hcHJvLWRpdmlkZXIuZGl2aWRlci1jb2xvci1uZXV0cmFsIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLWRpdmlkZXIuZGl2aWRlci1jb2xvci1zdWJ0bGUsXG5bZGF0YS10aGVtZS1kYXJrXSAgLnFkbmFwcm8tZGl2aWRlci5kaXZpZGVyLWNvbG9yLXN1YnRsZSAgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpOyB9XG4iLCIvLyBfZG9jdW1lbnQtdmlld2VyLnNjc3Ncbi8vXG4vLyBxZG5hcHJvLWRvY3VtZW50LXZpZXdlciDigJQgZnVsbHNjcmVlbiBQV0EgZG9jdW1lbnQgdmlld2VyIChmYXNlIDUsIHN0YXAgMSkuXG4vLyBEYXJrIGxpZ2h0Ym94IHRoYXQgbWlycm9ycyB0aGUgYmFja29mZmljZSBETVMgdmlld2VyIHBhbGV0dGUgKCMxNjE4MmIgZmllbGQsXG4vLyAjMWQyMDM4IHRvcGJhcikgc28gdGhlIGFwcCBhbmQgYmFja29mZmljZSByZWFkIGFzIG9uZSBmYW1pbHkuIFN0ZXAgMSBzdHlsZXNcbi8vIHRoZSBzaGVsbCArIGltYWdlIHJlbmRlcmVyICsgYWxsIHN0YXRlczsgUERGL3ZpZGVvIHJlbmRlcmVycyBsYW5kIGxhdGVyIGJ1dFxuLy8gcmV1c2UgdGhpcyBzYW1lIHN0YWdlL2NhcmQvY2hyb21lIHZvY2FidWxhcnkuXG4vL1xuLy8gU1lOQ0VEIFRPIFRIRSBQV0Egd2l0aCBjb21waWxlU2NzczogdHJ1ZSAodGhpcyBmaWxlIHVzZXMgYCZgLW5lc3RpbmcpLCBzYW1lIGFzXG4vLyBsaXN0LXJvdy9hcHAtaGVhZGVyIOKAlCBhIGZsYXQgY3NzOnRydWUgc3luYyB3b3VsZCBsZWF2ZSBgJjouLi5gIGxpdGVyYWwgYW5kIHRoZVxuLy8gY2hyb21lL2FuaW1hdGlvbiB3b3VsZCBub3Qgd29yayBpbiB0aGUgYXBwIChncmlkLXRpbGUgbGVzc29uLCAyMi4wNy4yMDI2KS5cblxuLnFkbmFwcm8tZG9jdW1lbnQtdmlld2VyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogOTUwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTkwMCk7XG4gICAgY29sb3I6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7XG4gICAgLy8gc2l0IGFib3ZlIHRoZSBzYWZlIGFyZWFzOyB0aGUgdG9wYmFyIHBhZHMgZm9yIHRoZSBub3RjaCBpdHNlbGZcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mZiwgXCJJbnRlclwiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWYpO1xuICAgIC8vIHRyYW5zZm9ybS9vcGFjaXR5IGFyZSBkcml2ZW4gaW5saW5lIGJ5IHRoZSBzd2lwZS10by1kaXNtaXNzIGdlc3R1cmU7XG4gICAgLy8gZ2l2ZSB0aGUgc25hcC1iYWNrIGEgdHJhbnNpdGlvbiAoY2xlYXJlZCB3aGlsZSBkcmFnZ2luZyB2aWEgaW5saW5lIHN0eWxlKS5cbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTgwbXMgZWFzZSwgb3BhY2l0eSAxODBtcyBlYXNlO1xuXG4gICAgJltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgLy8gLS0tLSB0b3BiYXIgKGNocm9tZSkgLS0tLVxuICAgIC5xZHYtdG9wYmFyIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgbWluLWhlaWdodDogNTZweDtcbiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiBjYWxjKDhweCArIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wLCAwcHgpKTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKDEwcHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQsIDBweCkpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDEwcHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0LCAwcHgpKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCB0cmFuc2Zvcm0gMjAwbXMgZWFzZTtcbiAgICB9XG5cbiAgICAucWR2LWZuYW1lIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG4gICAgLnFkdi1mbmFtZSBxZG5hcHJvLWZpbGUtaWNvbiB7IGZsZXg6IDAgMCBhdXRvOyB9XG4gICAgLnFkdi1mbmFtZS10ZXh0IHtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICAucWR2LXRvb2xzIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMnB4O1xuICAgIH1cbiAgICAucWR2LXRvb2xzIHFkbmFwcm8taWNvbi1idG4geyBjb2xvcjogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpOyB9XG4gICAgLnFkdi10b29scyBxZG5hcHJvLWljb24tYnRuW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4gICAgLnFkdi1jbG9zZSB7IGNvbG9yOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7IH1cblxuICAgIC8vIC0tLS0gaG92ZXIgLyBwcmVzcyBvbiB0aGUgZGFyayBjaHJvbWUgLS0tLVxuICAgIC8vIFRoZSBjaHJvbWUgdXNlcyBxZG5hcHJvLWljb24tYnRuIHR5cGU9XCJzdWJ0bGVcIiwgd2hvc2UgaG92ZXIgKC0tYy1ncmV5LTUwLFxuICAgIC8vIG5lYXItd2hpdGUpIGlzIHR1bmVkIGZvciBsaWdodCBzdXJmYWNlcyBhbmQgcmVhZHMgYXMgYSBoYXJkIHdoaXRlIGJsb2NrIG9uXG4gICAgLy8gdGhpcyBkYXJrIGJhci4gU2FtZSBnZXN0dXJlLCBleHByZXNzZWQgYXMgd2hpdGUtb24tZGFyayBpbnN0ZWFkLiBUaGUgY2xhc3NcbiAgICAvLyBzZWxlY3RvciBpcyBvbiBwdXJwb3NlOiBpdCBoYXMgdG8gb3V0cmFuayAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGVcbiAgICAvLyBmcm9tIF9pY29uLWJ0bi5zY3NzLCB3aGljaCB0aGUgUFdBIG1heSBsb2FkIEFGVEVSIHRoaXMgZmlsZS5cbiAgICAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGU6aG92ZXI6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICAgIH1cbiAgICAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGU6YWN0aXZlOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gdGhlIGJhc2UgcHJlc3Mgb3ZlcmxheSBpcyBibGFjazogaW52aXNpYmxlIGhlcmVcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIGNvbnRlbnQgc3RhZ2UgLS0tLVxuICAgIC5xZHYtc3RhZ2Uge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLy8gdG91Y2gtYWN0aW9uIGlzIHNldCBQRVIgcmVuZGVyZXI6IHRoZSBpbWFnZSB3cmFwIG93bnMgaXRzIHBpbmNoL3Bhbi9cbiAgICAgICAgLy8gc3dpcGUgKHRvdWNoLWFjdGlvbjpub25lKSwgdGhlIFBERiBzY3JvbGxlciB1c2VzIG5hdGl2ZSBwYW4teSAtIHNvIHRoZVxuICAgICAgICAvLyBzdGFnZSBpdHNlbGYgc3RheXMgbmV1dHJhbCwgb3RoZXJ3aXNlIGEgYG5vbmVgIGhlcmUgd291bGQga2lsbCBQREYgc2Nyb2xsLlxuICAgIH1cblxuICAgIC8vIC0tLS0gaW1hZ2UgcmVuZGVyZXIgLS0tLVxuICAgIC5xZHYtaW1nd3JhcCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE4MG1zIGVhc2U7XG4gICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTsgLy8gaW1hZ2Ugb3ducyBwaW5jaC9wYW4vc3dpcGVcbiAgICB9XG4gICAgLnFkdi1pbWd3cmFwLmlzLWxvYWRlZCB7IG9wYWNpdHk6IDE7IH1cbiAgICAucWR2LWltZyB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgICAgICAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBpbnRlcmFjdGl2ZSBkb2N1bWVudHMgKC5xaWQpIOKAlCBQV0EgZmFzZSAxLCAwNS4wOC4yMDI2IC0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBUaGUgcmVhZGluZyBzdXJmYWNlIHNob3dJbnRlcmFjdGl2ZSgpIGhhbmRzIHRvIHRoZSBTSEFSRUQgYmxvY2sgcmVuZGVyZXJcbiAgICAvLyAod2luZG93LkRtc0lkb2NSZW5kZXIpLiBPbmx5IHRoZSBzY3JvbGwgd3JhcHBlciBsaXZlcyBoZXJlOyBldmVyeSAuZG1zLWlkb2MtKlxuICAgIC8vIHJ1bGUgaW5zaWRlIGl0IGNvbWVzIGZyb20gdGhlIHNoYXJlZCBzdHlsZXNoZWV0IChzY3NzL3BhcnRpYWxzL3YxL1xuICAgIC8vIF9kbXMtaWRvYy5zY3NzLCBzeW5jZWQgaW50byB0aGUgUFdBIGFzIHFkbmEtaWRvYy5jc3MpLCBzbyB0aGUgYXBwIGFuZCB0aGVcbiAgICAvLyBiYWNrb2ZmaWNlIGRyZXNzIHRoZSBibG9ja3MgZnJvbSBvbmUgc291cmNlLlxuICAgIC8vXG4gICAgLy8gTWlycm9ycyB3aGF0IHRoZSBiYWNrb2ZmaWNlIHZpZXdlcidzIG93biAjZG1zLXZpZXdlciAuZG1zLWlkb2Mtc2Nyb2xsIHdyYXBwZXJcbiAgICAvLyBkb2VzIOKAlCBzYW1lIGpvYiwgc2FtZSBkYXJrIGNocm9tZSBhcm91bmQgYSBsaWdodCBwYWdlLlxuICAgIC5xZHYtaWRvYyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIC8vIE5FVkVSIG92ZXJmbG93LXg6IGF1dG8gaGVyZS4gQSB3aWRlIHByb3RvY29sIHRhYmxlIHNjcm9sbHMgaW5zaWRlIGl0cyBPV05cbiAgICAgICAgLy8gd3JhcHBlciAoLmRtcy1pZG9jLXRhYmxlLXdyYXApOyBpZiB0aGlzIHN1cmZhY2UgY291bGQgc2Nyb2xsIHNpZGV3YXlzIHRvbyxcbiAgICAgICAgLy8gdGhlIHdob2xlIHBhZ2Ugd291bGQgZHJpZnQgb2ZmLWNlbnRyZSB0aGUgZmlyc3QgdGltZSBzb21lb25lIGRyYWdnZWQgYVxuICAgICAgICAvLyB0YWJsZS4gVGhpcyBpcyB0aGUgb25lIHJ1bGUgdGhhdCBrZWVwcyBiZXNsdWl0IDIgd29ya2luZy5cbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgICAgIC8vIFJvb20gZm9yIHRoZSB0b3BiYXIgYWJvdmUgYW5kIHRoZSBob21lIGluZGljYXRvciBiZWxvdywgc28gdGhlIGZpcnN0XG4gICAgICAgIC8vIGhlYWRpbmcgaXMgbm90IHR1Y2tlZCB1bmRlciB0aGUgY2hyb21lIGFuZCB0aGUgbGFzdCBibG9jayBpcyByZWFjaGFibGUuXG4gICAgICAgIHBhZGRpbmc6IDEycHggMCBjYWxjKDI0cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgMHB4KSk7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIC8vIFNsaW0gc2Nyb2xsYmFyIG9uIGEgVFJBTlNQQVJFTlQgdHJhY2sg4oCUIGhvdXNlIGNvbnZlbnRpb24sIG5ldmVyIHRoZSB3aWRlXG4gICAgICAgIC8vIGRlZmF1bHQgYnJvd3NlciBiYXIgb3ZlciBkYXJrIGNocm9tZS5cbiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICAgICAgICBzY3JvbGxiYXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yOCkgdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogOHB4OyBoZWlnaHQ6IDhweDsgfVxuICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMik7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBPbiBhIHBob25lIHRoZSBwYWdlIGZpbGxzIHRoZSB3aWR0aCBlZGdlIHRvIGVkZ2UgKHRoZSBzaGFyZWQgc3R5bGVzaGVldCBkcm9wc1xuICAgIC8vIGl0cyBvd24gcmFkaXVzIGJlbG93IDY0MHB4KTsgdGhlIGRhcmsgZ3V0dGVyIHRoYXQgbG9va3MgcmlnaHQgb24gYSB0YWJsZXQganVzdFxuICAgIC8vIGVhdHMgcmVhZGluZyB3aWR0aCBoZXJlLlxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgICAucWR2LWlkb2MgeyBwYWRkaW5nLXRvcDogMDsgfVxuICAgIH1cblxuICAgIC8vIC0tLS0gUERGIHJlbmRlcmVyIChjb250aW51b3VzIHZlcnRpY2FsIHNjcm9sbCBvZiByZW5kZXJlZCBwYWdlcykgLS0tLVxuICAgIC5xZHYtcGRmIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teTsgICAgICAgIC8vIG5hdGl2ZSB2ZXJ0aWNhbCBzY3JvbGw7IEpTIG93bnMgcGluY2ggKDItZmluZ2VyKVxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLy8gVGhlIHJlbmRlcmVyIHN3YXBzIHBhZ2UgY2FudmFzZXMgaW4gYW5kIG91dCBjb25zdGFudGx5IChsYXp5IHJlbmRlci9yZWxlYXNlKS5cbiAgICAgICAgLy8gVGhlIGJyb3dzZXIncyBvd24gc2Nyb2xsIGFuY2hvcmluZyByZWFjdHMgdG8gdGhhdCBieSBtb3ZpbmcgdGhlIHNjcm9sbCBvZmZzZXQsXG4gICAgICAgIC8vIHdoaWNoIGZpZ2h0cyB0aGUgcmVhZGluZyBwb3NpdGlvbiB0aGUgcmVuZGVyZXIgcmVzdG9yZXMgaXRzZWxmIGFmdGVyIGEgd2lkdGhcbiAgICAgICAgLy8gY2hhbmdlIC0gbWVhc3VyZWQgMDMuMDguMjAyNjogaXQgdGhyZXcgdGhlIHZpZXcgYmFjayB0byBwYWdlIDEuXG4gICAgICAgIG92ZXJmbG93LWFuY2hvcjogbm9uZTtcbiAgICB9XG4gICAgLnFkdi1wZGYuaXMtem9vbWVkIHsgdG91Y2gtYWN0aW9uOiBwYW4teCBwYW4teTsgfVxuICAgIC5xZHYtcGRmLXBhZ2VzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDAgY2FsYygxMnB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCkpO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyOyAgIC8vIGxpdmUgcGluY2ggZmVlZGJhY2sgc2NhbGVzIGZyb20gdGhlIHRvcFxuICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAgIH1cbiAgICAucWR2LXBhZ2Uge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbiAgICAgICAgLy8gd2lkdGgvaGVpZ2h0IHNldCBpbmxpbmUgcGVyIHBhZ2UgKGZpdC13aWR0aCk7IGEgcGxhaW4gYm94IHVudGlsIHJlbmRlcmVkXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgLy8gTkVWRVIgbGV0IHRoZSBjb2x1bW4gZmxleCBzaHJpbmsgYSBwYWdlLiBUaGUgcGFnZXMgd3JhcHBlciBpcyBzdHJldGNoZWQgdG8gdGhlXG4gICAgICAgIC8vIHN0YWdlIGhlaWdodCwgc28gYXMgc29vbiBhcyB0aGUgZG9jdW1lbnQgaXMgdGFsbGVyIHRoYW4gdGhlIHN0YWdlIHRoZSBwYWdlcyBhcmVcbiAgICAgICAgLy8gXCJvdmVyZmxvd2luZyBmbGV4IGl0ZW1zXCIgYW5kIHRoZSBkZWZhdWx0IGZsZXgtc2hyaW5rOjEgc3F1YXNoZXMgdGhlbS4gQSBwYWdlXG4gICAgICAgIC8vIGhvbGRpbmcgYSBjYW52YXMgcmVzaXN0cyAodGhlIGNhbnZhcyBnaXZlcyBpdCBhIG1pbmltdW0gc2l6ZSksIGJ1dCBhbiBFTVBUWSBvbmVcbiAgICAgICAgLy8gLSBub3QgeWV0IHJlbmRlcmVkLCBvciByZWxlYXNlZCB0byBzYXZlIG1lbW9yeSAtIGNvbGxhcHNlcyB0byAwcHgsIHdoaWNoIHRocm93c1xuICAgICAgICAvLyBvZmYgdGhlIHNjcm9sbCBoZWlnaHQgYW5kIHRoZSByZWFkaW5nIHBvc2l0aW9uLiBNZWFzdXJlZCAwMy4wOC4yMDI2LlxuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgLnFkdi1wYWdlIGNhbnZhcyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgICAvLyBwYWdlIHBsYWNlaG9sZGVyIHNoaW1tZXIgdW50aWwgaXRzIGNhbnZhcyBpcyByZW5kZXJlZFxuICAgIC5xZHYtcGFnZTpub3QoLmlzLXJlbmRlcmVkKTo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTAwZGVnLCB2YXIoLS1jLWJnLWNhcmQtaG92ZXIpIDMwJSwgdmFyKC0tYy1ib3JkZXItc29mdC0yKSA1MCUsIHZhcigtLWMtYmctY2FyZC1ob3ZlcikgNzAlKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XG4gICAgICAgIGFuaW1hdGlvbjogcWR2LXNoaW1tZXIgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIHBhZ2UgcGlsbCAoXCIzIC8gMTJcIikgLS0tLVxuICAgIC5xZHYtcGFnZXBpbGwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgYm90dG9tOiBjYWxjKDE2cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgMHB4KSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMCwgMjIsIDQwLCAwLjgyKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBwYWRkaW5nOiA1cHggMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIyMG1zIGVhc2U7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgfVxuICAgIC5xZHYtcGFnZXBpbGwuaXMtdmlzaWJsZSB7IG9wYWNpdHk6IDE7IH1cbiAgICAmLnFkdi1jaHJvbWUtaGlkZGVuIC5xZHYtcGFnZXBpbGwgeyBib3R0b206IDE2cHg7IH1cblxuICAgIC8vIC0tLS0gUERGIHRleHQgbGF5ZXIgKHNlbGVjdGFibGUgdGV4dCArIHNlYXJjaCBoaWdobGlnaHQgb3ZlciBlYWNoIGNhbnZhcykgLS0tLVxuICAgIC5xZHYtdGV4dGxheWVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRleHQtYWxpZ246IGluaXRpYWw7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7XG4gICAgfVxuICAgIC5xZHYtdGV4dGxheWVyIHNwYW4sXG4gICAgLnFkdi10ZXh0bGF5ZXIgYnIge1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZTtcbiAgICAgICAgY3Vyc29yOiB0ZXh0O1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgfVxuICAgIC5xZHYtdGV4dGxheWVyIDo6c2VsZWN0aW9uIHsgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4zNSk7IH1cbiAgICAucWR2LXRleHRsYXllciAucWR2LWhsIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDIxMywgMCwgMC40NSk7IGJvcmRlci1yYWRpdXM6IDJweDsgfVxuICAgIC5xZHYtdGV4dGxheWVyIC5xZHYtaGwtY3VycmVudCB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxNDUsIDAsIDAuNyk7IH1cblxuICAgIC8vIC0tLS0gaW4tZG9jdW1lbnQgc2VhcmNoIGJhciAoUERGIG9ubHkpIC0tLS1cbiAgICAvLyBUaGUgYmFyIGl0c2VsZiBjYXJyaWVzIG5vIHN1cmZhY2UgYW55IG1vcmU6IHRoZSBxZG5hcHJvLWlucHV0IGlzIHRoZSBwaWxsLFxuICAgIC8vIGFuZCB0aGUgY291bnRlciArIGJ1dHRvbnMgZWFjaCBicmluZyB0aGVpciBvd24gKHNlZSBiZWxvdykuIE9uZSBwaWxsIGluc2lkZVxuICAgIC8vIGFub3RoZXIgcGlsbCBpcyB3aGF0IG1hZGUgdGhpcyBiYXIgcmVhZCBhcyBidXN5LiBbS2ltIDE0LjA5LjIwMjZdXG4gICAgLnFkdi1zZWFyY2hiYXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICB0b3A6IGNhbGMoOHB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC10b3AsIDBweCkpO1xuICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgd2lkdGg6IG1pbig1NjBweCwgY2FsYygxMDAlIC0gMjRweCkpO1xuICAgIH1cbiAgICAmLnFkdi1zZWFyY2hpbmcgLnFkdi1zZWFyY2hiYXIgeyBkaXNwbGF5OiBmbGV4OyB9XG4gICAgJi5xZHYtc2VhcmNoaW5nIC5xZHYtdG9wYmFyIHsgb3BhY2l0eTogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH0gLy8gc2VhcmNoIHRha2VzIG92ZXIgdGhlIGJhclxuICAgIC8vIG1pbi13aWR0aDowIG9yIHRoZSBmaWVsZCByZWZ1c2VzIHRvIHNocmluayBiZWxvdyBpdHMgY29udGVudCB3aWR0aCBpbnNpZGVcbiAgICAvLyB0aGUgZmxleCByb3cgKHNhbWUgb3ZlcnJpZGUgdGhlIGxpc3RfcGFnZSBoZWFkZXIgbmVlZHMpLlxuICAgIC5xZHYtc2VhcmNoLWlucHV0IHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG4gICAgLnFkdi1zZWFyY2gtY291bnQge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgICAgICAgbWluLXdpZHRoOiA0NnB4O1xuICAgICAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtdGV4dCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgIH1cbiAgICAucWR2LXNlYXJjaC1jb3VudDplbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAvLyBObyBjb2xvdXIgb3ZlcnJpZGUgaGVyZTogdGhlc2UgYXJlIGZpbGxlZC1kYXJrLXB1cnBsZSBidXR0b25zIG5vdywgd2hpY2hcbiAgICAvLyBicmluZyB0aGVpciBvd24gc3VyZmFjZSBBTkQgdGhlaXIgb3duIGljb24gY29sb3VyLlxuICAgIC5xZHYtc2VhcmNoYmFyIHFkbmFwcm8taWNvbi1idG4geyBmbGV4OiAwIDAgYXV0bzsgfVxuXG4gICAgLy8gLS0tLSB2aWRlbyAvIGF1ZGlvIHJlbmRlcmVyIC0tLS1cbiAgICAucWR2LW1lZGlhIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICAgIC5xZHYtdmlkZW8ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS05NTApO1xuICAgIH1cbiAgICAucWR2LWF1ZGlvIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMzIwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICB9XG5cbiAgICAvLyAtLS0tIGxvYWRpbmcgKHNwaW5uZXIgKyBvcHRpb25hbCBibHVyLXVwIHRodW1ibmFpbCkgLS0tLVxuICAgIC5xZHYtbG9hZGluZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgICAucWR2LXRodW1iIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICAgICAgbWF4LWhlaWdodDogOTAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBmaWx0ZXI6IGJsdXIoMTRweCk7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsgLy8gaGlkZSB0aGUgYmx1cnJlZCBlZGdlXG4gICAgfVxuICAgIC5xZHYtc3Bpbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDM4cHg7XG4gICAgICAgIGhlaWdodDogMzhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjIpO1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgICAgICBhbmltYXRpb246IHFkdi1zcGluIDAuOHMgbGluZWFyIGluZmluaXRlO1xuICAgIH1cblxuICAgIC8vIC0tLS0gc3RhdGUgLyBzdHViIC8gZmFsbGJhY2sgY2FyZCAtLS0tXG4gICAgLnFkdi1jYXJkIHtcbiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgIH1cbiAgICAucWR2LWNhcmQtaWNvbiB7XG4gICAgICAgIC0tcWRuYXByby1pY29uLXNpemU6IDQ0cHg7XG4gICAgICAgIHdpZHRoOiA0NHB4O1xuICAgICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQtcHApO1xuICAgIH1cbiAgICAucWR2LWNhcmQtZmlsZWljb24geyBtYXJnaW4tYm90dG9tOiA0cHg7IH1cbiAgICAucWR2LWNhcmQtdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgIH1cbiAgICAucWR2LWNhcmQtdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXNpZGViYXItaWNvbik7XG4gICAgfVxuICAgIC5xZHYtY2FyZCBxZG5hcHJvLWJ1dHRvbiB7IG1hcmdpbi10b3A6IDZweDsgfVxuXG4gICAgLy8gLS0tLSByYXRpbmcgcGlsbCAoXCJ3YXMgdGhpcyBkb2N1bWVudCBoZWxwZnVsP1wiKSAtLS0tXG4gICAgLy8gQm90dG9tLUxFRlQ6IHRoZSBOb3ZhIGxhdW5jaGVyIG93bnMgYm90dG9tLXJpZ2h0IGFjcm9zcyB0aGlzIHByb2R1Y3QsIHNvIGFcbiAgICAvLyByYXRpbmcgY29udHJvbCBtdXN0IG5ldmVyIGJlIHBsYWNlZCB0aGVyZS4gUGFydCBvZiB0aGUgY2hyb21lLCBzbyBpdCBmYWRlc1xuICAgIC8vIG91dCB0b2dldGhlciB3aXRoIHRoZSB0b3BiYXIgb24gYSB0YXAgKHJ1bGUgYmVsb3cpIOKAlCBhIHJlYWRlciB3aG8gd2FudHMgdG9cbiAgICAvLyBsb29rIGF0IHRoZSBkb2N1bWVudCB1bmRpc3R1cmJlZCBsb3NlcyBpdCBpbiB0aGUgc2FtZSBnZXN0dXJlLlxuICAgIC5xZHYtZmIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IGNhbGMoMTZweCArIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCwgMHB4KSk7XG4gICAgICAgIGJvdHRvbTogY2FsYygxNnB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCkpO1xuICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgICAgcGFkZGluZzogNHB4IDZweCA0cHggMTRweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyOSwgMzIsIDU2LCAwLjk0KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjM4KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCB0cmFuc2Zvcm0gMjAwbXMgZWFzZTtcblxuICAgICAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4gICAgfVxuICAgIC5xZHYtZmItbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcblxuICAgICAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4gICAgfVxuICAgIC5xZHYtZmIgcWRuYXByby1pY29uLWJ0biB7IGNvbG9yOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7IGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAgIC8vIENob3NlbiB0aHVtYjogZmlsbGVkIGljb24gKyBhIGxpZ2h0IHBpbGwgYmVoaW5kIGl0LiBEZWxpYmVyYXRlbHkgbm8gZ3JlZW4gb3JcbiAgICAvLyByZWQg4oCUIGFuIG9waW5pb24gYWJvdXQgYSBkb2N1bWVudCBpcyBub3QgYSBzdGF0dXMsIGFuZCBjb2xvdXIgd291bGQgcmVhZCBhc1xuICAgIC8vIGFwcHJvdmFsIG9yIHJlamVjdGlvbi5cbiAgICAucWR2LWZiIHFkbmFwcm8taWNvbi1idG4uaXMtYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAgIH1cblxuICAgIC8vIC0tLS0gXCJ3aHkgbm90IGhlbHBmdWw/XCIgcG9wdXAgKGdyb3dzIG91dCBvZiB0aGUgcmF0aW5nIHBpbGwpIC0tLS1cbiAgICAvLyBEZWxpYmVyYXRlbHkgTk9UIGEgYm90dG9tLXNoZWV0OiBhIHNoZWV0IHRha2VzIG92ZXIgdGhlIHdob2xlIHNjcmVlbiBhbmRcbiAgICAvLyByZWFkcyBhcyBcInlvdSBtdXN0IGFuc3dlciB0aGlzXCIsIHdoaWxlIHRoZSBub3RlIGlzIHZvbHVudGFyeSDigJQgdGhlIHZvdGUgaXNcbiAgICAvLyBhbHJlYWR5IHNhdmVkIGJ5IHRoZSB0aW1lIHRoaXMgYXBwZWFycy5cbiAgICAucWR2LWZiLW5vdGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IGNhbGMoMTZweCArIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCwgMHB4KSk7XG4gICAgICAgIGJvdHRvbTogY2FsYyg3MnB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCkpO1xuICAgICAgICByaWdodDogY2FsYygxNnB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCwgMHB4KSk7XG4gICAgICAgIG1heC13aWR0aDogMzgwcHg7XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgcGFkZGluZzogMTRweCAxNHB4IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjQ1KTtcblxuICAgICAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4gICAgfVxuICAgIC5xZHYtZmItbm90ZS1oZWFkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBmb250LXNpemU6IDAuODZyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcblxuICAgICAgICBxZG5hcHJvLWljb24geyBmbGV4OiAwIDAgYXV0bzsgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZC1wcCk7IG1hcmdpbi10b3A6IDFweDsgfVxuICAgIH1cbiAgICAucWR2LWZiLW5vdGUtc3ViIHtcbiAgICAgICAgbWFyZ2luOiAtNHB4IDAgMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICB9XG4gICAgLy8gTmF0aXZlIHRleHRhcmVhIChzYW1lIHNlbGYtY29udGFpbmVkIGNob2ljZSBhcyAucWR2LXNlYXJjaC1pbnB1dCBhYm92ZSk6XG4gICAgLy8gdGhlIHZpZXdlciBtdXN0IGxvb2sgdGhlIHNhbWUgd2hlcmV2ZXIgaXQgaXMgbW91bnRlZCwgc28gaXQgbmV2ZXIgbGVhbnMgb25cbiAgICAvLyBhbm90aGVyIGNvbXBvbmVudCBiZWluZyBsb2FkZWQuXG4gICAgLnFkdi1mYi1ub3RlLWlucHV0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLXRleHQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHsgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZC1wcCk7IH1cbiAgICAgICAgJjpmb2N1cyB7IGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMyKTsgfVxuICAgIH1cbiAgICAucWR2LWZiLW5vdGUtYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cbiAgICAvLyBBIHN1YnRsZSBidXR0b24gaXMgbmVhci1ibGFjayBieSBkZWZhdWx0IOKAlCB1bnJlYWRhYmxlIG9uIHRoaXMgZGFyayBjYXJkLlxuICAgIC5xZHYtZmItbm90ZS1hY3Rpb25zIHFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1zdWJ0bGUgeyBjb2xvcjogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpOyB9XG5cbiAgICAvLyAtLS0tIGNocm9tZSBoaWRkZW4gKHRhcC10by10b2dnbGUpIC0tLS1cbiAgICAmLnFkdi1jaHJvbWUtaGlkZGVuIC5xZHYtdG9wYmFyIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICAgICYucWR2LWNocm9tZS1oaWRkZW4gLnFkdi1mYiB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gICAgLy8gVGhlIG5vdGUgcG9wdXAgZG9lcyBOT1QgaGlkZSB3aXRoIHRoZSBjaHJvbWU6IHNvbWVvbmUgdHlwaW5nIGEgc2VudGVuY2UgdGFwc1xuICAgIC8vIHRoZSBzY3JlZW4gYW5kIHdvdWxkIG90aGVyd2lzZSBsb3NlIGJvdGggdGhlIHBvcHVwIGFuZCB0aGVpciB0ZXh0LlxuXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgLnFkdi10b3BiYXIsIC5xZHYtZmIgeyB0cmFuc2l0aW9uOiBub25lOyB9XG4gICAgICAgIC5xZHYtc3Bpbm5lciB7IGFuaW1hdGlvbi1kdXJhdGlvbjogMS42czsgfVxuICAgIH1cbn1cblxuQGtleWZyYW1lcyBxZHYtc3BpbiB7XG4gICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG59XG5cbkBrZXlmcmFtZXMgcWR2LXNoaW1tZXIge1xuICAgIGZyb20geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMDAlIDA7IH1cbiAgICB0byB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDAlIDA7IH1cbn1cblxuLy8gTG9jayB0aGUgdW5kZXJseWluZyBwYWdlIHdoaWxlIHRoZSB2aWV3ZXIgaXMgb3BlbiAocG9ydGFsbGVkIHRvIDxib2R5PikuXG46cm9vdC5xZHYtb3Blbixcbjpyb290LnFkdi1vcGVuIGJvZHkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vIFRoZSBzaGFyZWQgZGFyayB0aGVtZSByZXBhaW50cyBzdWJ0bGUgaG92ZXIvcHJlc3MgZ3JleSAoIzU2NWI2NiAvICM2YjcyODApIGFuZFxuLy8gb3V0cmFua3MgdGhlIHJ1bGUgYWJvdmUuIFRoaXMgdmlld2VyIGlzIGEgZGFyayBsaWdodGJveCBpbiBCT1RIIHRoZW1lcywgc28gaXRcbi8vIGtlZXBzIHRoZSBzYW1lIHdoaXRlIHdhc2ggaW4gZGFyayBtb2RlIGluc3RlYWQgb2YgYSBncmV5IGJsb2NrLlxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLWRvY3VtZW50LXZpZXdlciB7XG4gICAgLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICB9XG4gICAgLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlOmFjdGl2ZTpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7XG4gICAgfVxufVxuXG4vLyBBbnl0aGluZyB0aGUgdmlld2VyIG9wZW5zIGZyb20gaXRzIG93biBjaHJvbWUg4oCUIHRoZSBmaWxlLWluZm8gcG9wb3ZlciBvblxuLy8gPj03NjhweCwgdGhlIGluZm8gc2hlZXQgb24gYSBwaG9uZSDigJQgcG9ydGFscyBzdHJhaWdodCBvbnRvIDxib2R5PiBhdCB6LWluZGV4XG4vLyAxMDAxIC8gMTAwMCwgd2hpY2ggaXMgQkVMT1cgdGhpcyBmdWxsc2NyZWVuIHZpZXdlciAoOTUwMCk6IGl0IHdvdWxkIG9wZW5cbi8vIGludmlzaWJseSBiZWhpbmQgdGhlIGRvY3VtZW50IGFuZCBvbmx5IHNob3cgdXAgb25jZSB0aGUgdmlld2VyIGlzIGNsb3NlZC5cbi8vIExpZnQgYm90aCBmb3IgYXMgbG9uZyBhcyB0aGUgdmlld2VyIGhvbGRzIC5xZHYtb3BlbiBvbiA8aHRtbD4uIFsxNC4wOS4yMDI2XVxuOnJvb3QucWR2LW9wZW4gLnFkbmFwcm8tcG9wb3Zlcixcbjpyb290LnFkdi1vcGVuIC5xZG5hcHJvLWJvdHRvbS1zaGVldCB7XG4gICAgei1pbmRleDogOTYwMDtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL2Ryb3Atem9uZS9fZHJvcC16b25lLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi50ZXh0LWgxIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogNjBweDtcbiAgbGluZS1oZWlnaHQ6IDcycHg7XG59XG5cbi50ZXh0LWgyIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgbGluZS1oZWlnaHQ6IDU2cHg7XG59XG5cbi50ZXh0LWgzIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XG59XG5cbi50ZXh0LWg0IHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgbGluZS1oZWlnaHQ6IDQ0cHg7XG59XG5cbi50ZXh0LWg1IHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XG59XG5cbi50ZXh0LWg2IHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG5cbi50ZXh0LWJvZHkteHMge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cblxuLnRleHQtYm9keS1zbSB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4udGV4dC1ib2R5LW1kIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG5cbi50ZXh0LWJvZHktbGcge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbn1cblxuLnRleHQtYm9keS14bCB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xufVxuXG4ucWRuYXByby1kcm9wLXpvbmUge1xuICAtLWR6LWMtYm9yZGVyOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLWR6LWMtYm9yZGVyLWhpZ2hsaWdodDogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgLS1kei1jLWJnLXRpbnQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMDgpO1xuICAtLWR6LWMtYmctdGludC1mdWxsOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjE0KTtcbiAgLS1kei1jLW92ZXJsYXktdGV4dDogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgLS1kei1jLW92ZXJsYXktdGV4dC1oaWdobGlnaHQ6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gIC0tZHotYy1yZWplY3QtYm9yZGVyOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG4gIC0tZHotYy1yZWplY3QtYmc6IHJnYmEoMTk4LCA5MCwgOTAsIDAuMTApO1xuICAtLWR6LWMtcmVqZWN0LWJnLWZ1bGw6IHJnYmEoMTk4LCA5MCwgOTAsIDAuMTYpO1xuICAtLWR6LWMtcmVqZWN0LXRleHQ6IHZhcigtLWMtY2hpcC1yZWQtdGV4dCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTgwbXMgZWFzZSwgYmFja2dyb3VuZCAxODBtcyBlYXNlO1xufVxuLnFkbmFwcm8tZHJvcC16b25lIC5kcm9wLXpvbmUtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxODBtcyBlYXNlO1xuICB6LWluZGV4OiAyO1xufVxuLnFkbmFwcm8tZHJvcC16b25lIC5kcm9wLXpvbmUtbWFyY2gtc3ZnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLWRyb3Atem9uZSAuZHJvcC16b25lLW1hcmNoLXJlY3Qge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMnB4KTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAycHgpO1xuICBhbmltYXRpb246IGRyb3Atem9uZS1tYXJjaCAxLjZzIGxpbmVhciBpbmZpbml0ZTtcbn1cbi5xZG5hcHJvLWRyb3Atem9uZS5kcm9wLXpvbmUtYWN0aXZlIC5kcm9wLXpvbmUtbWFyY2gtc3ZnLCAucWRuYXByby1kcm9wLXpvbmUuZm9yY2UtYWN0aXZlIC5kcm9wLXpvbmUtbWFyY2gtc3ZnIHtcbiAgY29sb3I6IHZhcigtLWR6LW1hcmNoLWNvbG9yKTtcbn1cbi5xZG5hcHJvLWRyb3Atem9uZSAuZHJvcC16b25lLW92ZXJsYXktaW5uZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogMTZweCAyNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ucWRuYXByby1kcm9wLXpvbmUgLmRyb3Atem9uZS1vdmVybGF5LWljb24ge1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBjb2xvcjogdmFyKC0tZHotYy1vdmVybGF5LXRleHQpO1xufVxuLnFkbmFwcm8tZHJvcC16b25lLmRyb3Atem9uZS1hY3RpdmUgLmRyb3Atem9uZS1vdmVybGF5LWljb24sIC5xZG5hcHJvLWRyb3Atem9uZS5mb3JjZS1hY3RpdmUgLmRyb3Atem9uZS1vdmVybGF5LWljb24ge1xuICBhbmltYXRpb246IGRyb3Atem9uZS1pY29uLWZpZ3VyZTggNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG4ucWRuYXByby1kcm9wLXpvbmUgLmRyb3Atem9uZS1vdmVybGF5LWljb24gc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ucWRuYXByby1kcm9wLXpvbmUgLmRyb3Atem9uZS1vdmVybGF5LXRleHQge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1kei1jLW92ZXJsYXktdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4ucWRuYXByby1kcm9wLXpvbmUgLmRyb3Atem9uZS1vdmVybGF5LWhpbnQge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiB2YXIoLS1kei1jLW92ZXJsYXktdGV4dCk7XG4gIG9wYWNpdHk6IDAuNztcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbi5xZG5hcHJvLWRyb3Atem9uZSA+IDpub3QoLmRyb3Atem9uZS1vdmVybGF5KTpub3QoLmRyb3Atem9uZS1pbnB1dCkge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE4MG1zIGVhc2UsIGZpbHRlciAxODBtcyBlYXNlLCB3aWR0aCAzMjBtcyBlYXNlLWluLW91dDtcbn1cbi5xZG5hcHJvLWRyb3Atem9uZS5kcm9wLXpvbmUtYWN0aXZlID4gOm5vdCguZHJvcC16b25lLW92ZXJsYXkpOm5vdCguZHJvcC16b25lLWlucHV0KSB7XG4gIG9wYWNpdHk6IDAuNDU7XG4gIGZpbHRlcjogYmx1cig2cHgpO1xufVxuLnFkbmFwcm8tZHJvcC16b25lLmRyb3Atem9uZS1zdHlsZS1kYXNoZWQuZHJvcC16b25lLWFjdGl2ZTpub3QoLmRyb3Atem9uZS1yZWplY3QpIHtcbiAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IHRvcCBsZWZ0LCB2YXIoLS1kei1jLWJnLXRpbnQpLCB0cmFuc3BhcmVudCA1NSUpLCByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBib3R0b20gcmlnaHQsIHZhcigtLWR6LWMtYmctdGludCksIHRyYW5zcGFyZW50IDU1JSk7XG4gIC0tZHotbWFyY2gtY29sb3I6IHZhcigtLWR6LWMtYm9yZGVyKTtcbn1cbi5xZG5hcHJvLWRyb3Atem9uZS5kcm9wLXpvbmUtc3R5bGUtc29saWQuZHJvcC16b25lLWFjdGl2ZTpub3QoLmRyb3Atem9uZS1yZWplY3QpIHtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tZHotYy1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCB0b3AgbGVmdCwgdmFyKC0tZHotYy1iZy10aW50KSwgdHJhbnNwYXJlbnQgNTUlKSwgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgYm90dG9tIHJpZ2h0LCB2YXIoLS1kei1jLWJnLXRpbnQpLCB0cmFuc3BhcmVudCA1NSUpO1xufVxuLnFkbmFwcm8tZHJvcC16b25lLmRyb3Atem9uZS1zdHlsZS1oaWdobGlnaHQuZHJvcC16b25lLWFjdGl2ZTpub3QoLmRyb3Atem9uZS1yZWplY3QpIHtcbiAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLWR6LWMtYmctdGludC1mdWxsKTtcbiAgLS1kei1jLW92ZXJsYXktdGV4dDogdmFyKC0tZHotYy1vdmVybGF5LXRleHQtaGlnaGxpZ2h0KTtcbiAgLS1kei1tYXJjaC1jb2xvcjogdmFyKC0tZHotYy1ib3JkZXItaGlnaGxpZ2h0KTtcbn1cbi5xZG5hcHJvLWRyb3Atem9uZS5kcm9wLXpvbmUtc3R5bGUtZGFzaGVkLmRyb3Atem9uZS1hY3RpdmUuZHJvcC16b25lLXJlamVjdCB7XG4gIGJvcmRlcjogMnB4IGRhc2hlZCB2YXIoLS1kei1jLXJlamVjdC1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCB0b3AgbGVmdCwgdmFyKC0tZHotYy1yZWplY3QtYmcpLCB0cmFuc3BhcmVudCA1NSUpLCByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBib3R0b20gcmlnaHQsIHZhcigtLWR6LWMtcmVqZWN0LWJnKSwgdHJhbnNwYXJlbnQgNTUlKTtcbiAgLS1kei1jLW92ZXJsYXktdGV4dDogdmFyKC0tZHotYy1yZWplY3QtdGV4dCk7XG59XG4ucWRuYXByby1kcm9wLXpvbmUuZHJvcC16b25lLXN0eWxlLXNvbGlkLmRyb3Atem9uZS1hY3RpdmUuZHJvcC16b25lLXJlamVjdCB7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWR6LWMtcmVqZWN0LWJvcmRlcik7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IHRvcCBsZWZ0LCB2YXIoLS1kei1jLXJlamVjdC1iZyksIHRyYW5zcGFyZW50IDU1JSksIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGJvdHRvbSByaWdodCwgdmFyKC0tZHotYy1yZWplY3QtYmcpLCB0cmFuc3BhcmVudCA1NSUpO1xuICAtLWR6LWMtb3ZlcmxheS10ZXh0OiB2YXIoLS1kei1jLXJlamVjdC10ZXh0KTtcbn1cbi5xZG5hcHJvLWRyb3Atem9uZS5kcm9wLXpvbmUtc3R5bGUtaGlnaGxpZ2h0LmRyb3Atem9uZS1hY3RpdmUuZHJvcC16b25lLXJlamVjdCB7XG4gIGJvcmRlcjogMnB4IGRhc2hlZCB2YXIoLS1kei1jLXJlamVjdC1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1kei1jLXJlamVjdC1iZy1mdWxsKTtcbiAgLS1kei1jLW92ZXJsYXktdGV4dDogdmFyKC0tZHotYy1yZWplY3QtdGV4dCk7XG59XG4ucWRuYXByby1kcm9wLXpvbmUuZHJvcC16b25lLWFjdGl2ZSAuZHJvcC16b25lLW92ZXJsYXkge1xuICBvcGFjaXR5OiAxO1xufVxuLnFkbmFwcm8tZHJvcC16b25lLmRyb3Atem9uZS1jbGlja2FibGUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucWRuYXByby1kcm9wLXpvbmUuZHJvcC16b25lLWNsaWNrYWJsZTpub3QoLmRyb3Atem9uZS1hY3RpdmUpOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kei1jLWJvcmRlcik7XG4gIG9wYWNpdHk6IDE7XG59XG4ucWRuYXByby1kcm9wLXpvbmUuZHJvcC16b25lLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tZHJvcC16b25lIHtcbiAgLS1kei1jLWJvcmRlcjogI2E1YWNmZjtcbiAgLS1kei1jLWJvcmRlci1oaWdobGlnaHQ6ICNjNGNhZmY7XG4gIC0tZHotYy1iZy10aW50OiByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuMTApO1xuICAtLWR6LWMtYmctdGludC1mdWxsOiByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuMTgpO1xuICAtLWR6LWMtb3ZlcmxheS10ZXh0OiAjYzRjYWZmO1xuICAtLWR6LWMtb3ZlcmxheS10ZXh0LWhpZ2hsaWdodDogI2Q2ZGFmZjtcbiAgLS1kei1jLXJlamVjdC1ib3JkZXI6ICNmYmFhYWE7XG4gIC0tZHotYy1yZWplY3QtYmc6IHJnYmEoMjUxLCAxNzAsIDE3MCwgMC4xMCk7XG4gIC0tZHotYy1yZWplY3QtYmctZnVsbDogcmdiYSgyNTEsIDE3MCwgMTcwLCAwLjE4KTtcbiAgLS1kei1jLXJlamVjdC10ZXh0OiAjZmVlM2UzO1xufVxuXG5Aa2V5ZnJhbWVzIGRyb3Atem9uZS1tYXJjaCB7XG4gIHRvIHtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogLTEyO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGRyb3Atem9uZS1pY29uLWZpZ3VyZTgge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbiAgMTIuNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDRweCwgM3B4KTtcbiAgfVxuICAyNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDVweCwgMCk7XG4gIH1cbiAgMzcuNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDRweCwgLTNweCk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxuICA2Mi41JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTRweCwgM3B4KTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDApO1xuICB9XG4gIDg3LjUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNHB4LCAtM3B4KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tZHJvcC16b25lIC5kcm9wLXpvbmUtb3ZlcmxheS1pY29uIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbiAgLnFkbmFwcm8tZHJvcC16b25lOjpiZWZvcmUge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxufVxuIiwiLy8gcWRuYXByby1lZGl0LWZyYW1lIOKAlCBzaGFyZWQgZG90dGVkLWdyaWQgXCJ3b3Jrc3BhY2VcIiBjYW52YXMuXG4vL1xuLy8gUHJvbW90ZWQgb3V0IG9mIGJhY2tvZmZpY2UyL3Njc3MvdjEvdGFza2xpc3QtYWN0aXZpdGllcy5zY3NzICh+bGluZXNcbi8vIDczNC03NjYsIGNsYXNzIGAuZWRpdC1mcmFtZWApLCBwZXIgdGhlIFRPRE8gS2ltIGxlZnQgZGlyZWN0bHkgYWJvdmUgdGhhdFxuLy8gcnVsZTpcbi8vICAgXCJUT0RPIFtLaW1dOiB0aGlzIGRvdHRlZC1ncmlkIGZyYW1lIGlzIGhhbmRyb2xsZWQgLSBzaG91bGQgbW92ZSB0byBhXG4vLyAgICBkZXNpZ24tc3lzdGVtIGNvbXBvbmVudCAoZS5nLiBxZG5hcHJvLWVkaXQtZnJhbWUpIHNvIGl0cyB0b2tlbnMgYXJlXG4vLyAgICBzaGFyZWQgYW5kIGRhcmsgbW9kZSBsaXZlcyBpbiBvbmUgcGxhY2UuXCJcbi8vIFRoaXMgZmlsZSBpcyB0aGF0IGNvbXBvbmVudC4gdGFza2xpc3QtYWN0aXZpdGllcy5zY3NzIGl0c2VsZiBpcyBsZWZ0XG4vLyB1bnRvdWNoZWQg4oCUIG1pZ3JhdGluZyB0aGUgdGFrZW5saWpzdCBwYWdlIG9udG8gdGhpcyBjbGFzcyBpcyBhIHNlcGFyYXRlLFxuLy8gbGF0ZXIgdGFzay5cbi8vXG4vLyBDb2xvdXJzOiBiYWNrZ3JvdW5kICsgZGFyayBiYWNrZ3JvdW5kIG1hdGNoIGV4aXN0aW5nIHByaW1pdGl2ZXMgZXhhY3RseVxuLy8gKC0tYy1wdXJwbGUtNTAgLyAtLWMtZ3JleS05MDApLCBzbyB0aG9zZSBhcmUgdG9rZW5pemVkLiBUaGUgZG90dGVkLWdyaWRcbi8vIGNvbG91ciAoIzlkOTRlOCkgYW5kIHRoZSBib3JkZXIvc2hhZG93IHJnYmEgdGludHMgaGF2ZSBubyBtYXRjaGluZyB0b2tlblxuLy8gaW4gZGVzaWduLXRva2VucyAodGhleSBzaXQgYmV0d2VlbiBleGlzdGluZyBwdXJwbGUgc3RlcHMpIOKAlCBwb3J0ZWRcbi8vIGxpdGVyYWxseSBmcm9tIHRoZSBzb3VyY2UgcmF0aGVyIHRoYW4gaW52ZW50aW5nIGEgbmV3IHRva2VuLCBtYXRjaGluZyBob3dcbi8vIGJvcmRlci9zaGFkb3cgdGludHMgYXJlIGhhbmRsZWQgZWxzZXdoZXJlIGluIHRoaXMgbWFwIChlLmcuIHN0YXQtY2FyZCdzXG4vLyBib3gtc2hhZG93IHJnYmEgdmFsdWVzIGFyZSBhbHNvIGxpdGVyYWwsIG5vdCB0b2tlbml6ZWQpLlxuLy9cbi8vIERlbGliZXJhdGVseSBOTyBtaW4taGVpZ2h0L2hlaWdodCBoZXJlOiB0aGUgc291cmNlJ3MgbWluLWhlaWdodCB3YXMgYVxuLy8gcGFnZS1zcGVjaWZpYyBjYWxjKCkgYWdhaW5zdCB0aGF0IHBhZ2UncyBvd24gdG9wYmFyICsgc3ViLWhlYWRlciBoZWlnaHRzLlxuLy8gQ29uc3VtZXJzIG9mIHRoaXMgY2xhc3Mgc2V0IHRoZWlyIG93biBoZWlnaHQvbWluLWhlaWdodC5cblxuLnFkbmFwcm8tZWRpdC1mcmFtZSB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItY2FyZCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHVycGxlLTUwKTsgLy8gZXhhY3QgbWF0Y2ggZm9yIHRoZSBzb3VyY2UncyAjZTZlOWZmXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsICM5ZDk0ZTggMXB4LCB0cmFuc3BhcmVudCAxcHgpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwcHggMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg3MCwgODIsIDI0MywgMC4xNSk7IC8vIHJnYiBvZiAtLWMtYWN0aW9uLTUwMCAoIzQ2NTJmMyksIHRpbnQtb25seSwgbm8gdG9rZW4gZm9yIHRoaXMgb3BhY2l0eVxuICBib3gtc2hhZG93OiBpbnNldCAwIDRweCAzMnB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMDYpLCBpbnNldCAwIDFweCA4cHggcmdiYSg3MCwgODIsIDI0MywgMC4wNCk7XG59XG5cbi8vIERhcmsgbW9kZTogVFdPIHNlbGVjdG9yIGZvcm1zIG9uIHB1cnBvc2UsIG5vdCBhIGR1cGxpY2F0ZS5cbi8vIFtkYXRhLXRoZW1lPVwiZGFya1wiXSBpcyB0aGUgZm9ybSB0aGUgc2Fzcy12MSBidW5kbGUgKHN0eWxlLXYxLnNjc3MsIGUuZy5cbi8vIF9wdWxzZS5zY3NzKSB0aGVtZXMgd2l0aDsgW2RhdGEtdGhlbWUtZGFya10gaXMgdGhlIGJvb2xlYW4gYXR0cmlidXRlIHRoZVxuLy8gc3RhbmRhbG9uZSB0YXNrbGlzdC1hY3Rpdml0aWVzLnNjc3MvY3NzIGJ1aWxkIHRoZW1lcyB3aXRoIChzZWUgdGhlXG4vLyBjb21tZW50IGJsb2NrIGluIGRlc2lnbi10b2tlbnMvX2Rlc2lnbi10b2tlbnMuc2NzcyBsaW5lcyB+MzQxLTM0NCkuIFRoaXNcbi8vIHBhcnRpYWwgY29tcGlsZXMgaW50byBzdHlsZS12MS5jc3MgYnV0IGlzIG1lYW50IHRvIGFsc28gd29yayBvbmNlIHRoZVxuLy8gdGFrZW5saWpzdCBtaWdyYXRlcyBvbnRvIGl0IGxhdGVyLCBzbyBib3RoIGZvcm1zIGFyZSBjb3ZlcmVkIGhlcmUgZnJvbVxuLy8gZGF5IG9uZS5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1lZGl0LWZyYW1lLFxuW2RhdGEtdGhlbWUtZGFya10gLnFkbmFwcm8tZWRpdC1mcmFtZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZ3JleS05MDApOyAvLyBleGFjdCBtYXRjaCBmb3IgdGhlIHNvdXJjZSdzICMxODE4MWNcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSgxNjUsIDE3MiwgMjU1LCAwLjIyKSAxcHgsIHRyYW5zcGFyZW50IDFweCk7IC8vIHJnYiBvZiAtLWMtcHVycGxlLTIwMCAoI2E1YWNmZiksIG5vIHRva2VuIGZvciB0aGlzIG9wYWNpdHlcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdoaXRlLTA2KTsgLy8gZXhhY3QgbWF0Y2ggZm9yIHRoZSBzb3VyY2UncyByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpXG4gIGJveC1zaGFkb3c6XG4gICAgaW5zZXQgMCA0cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuNDUpLFxuICAgIGluc2V0IDAgMXB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMzApO1xufVxuIiwiLy8gcWRuYXByby1lbW9qaS1zaGVldCDigJQgV2hhdHNBcHAvaU9TLXN0eWxlIGVtb2ppIHBpY2tlciBpbiBhIGdsYXNzIGJvdHRvbSBzaGVldC5cbi8vIEZMQVQgQ1NTOyB0aGUgZ2xhc3Mgc3VyZmFjZSBpdHNlbGYgbGl2ZXMgb24gcWRuYXByby1ib3R0b20tc2hlZXQgKHZhcmlhbnQ9XCJnbGFzc1wiKS5cbi8vIEVkaXQgSEVSRSwgdGhlbiBgZ3VscCBzYXNzLXYxYC5cbi8vXG4vLyBJTVBPUlRBTlQ6IHRoZSBpbm5lciBib3R0b20tc2hlZXQgUE9SVEFMUyBpdHNlbGYgdG8gPGJvZHk+IG9uIG9wZW4sIHNvIGl0cyBjb250ZW50XG4vLyBubyBsb25nZXIgc2l0cyB1bmRlciB0aGUgPHFkbmFwcm8tZW1vamktc2hlZXQ+IGhvc3QuIEFsbCBzdHlsaW5nIGlzIHRoZXJlZm9yZSBzY29wZWRcbi8vIHRvIC5lcy1zaGVldCAodGhlIGNsYXNzIG9uIHRoYXQgaW5uZXIgYm90dG9tLXNoZWV0LCB3aGljaCB0cmF2ZWxzIHdpdGggdGhlIHBvcnRhbClcbi8vIGFuZCAuZXMtcm9vdCAodGhlIGNvbnRlbnQgcm9vdCBpbnNpZGUgaXQpIOKAlCBORVZFUiB1bmRlciAucWRuYXByby1lbW9qaS1zaGVldC5cblxuLnFkbmFwcm8tZW1vamktc2hlZXQge1xuICBkaXNwbGF5OiBjb250ZW50czsgLy8gdGhlIGhvc3QgaXMganVzdCBhIHdyYXBwZXI7IHRoZSByZWFsIFVJIGxpdmVzIG9uIC5lcy1zaGVldFxufVxuXG4vLyBUaGUgYm90dG9tLXNoZWV0IHJvb3QgZGVmYXVsdHMgdG8gei1pbmRleDoxMDAwLCBidXQgY29uc3VtZXJzIG1heSBsaXZlIHVuZGVyIGFcbi8vIGhpZ2hlciBvdmVybGF5IOKAlCB0aGUgUFdBIHBob3RvLWFubm90YXRvciBlZGl0b3Igc2l0cyBhdCB6LWluZGV4OjIwMDAwLiBMaWZ0IFRISVNcbi8vIHNoZWV0IGFib3ZlIGl0IChzY29wZWQgdG8gLmVzLXNoZWV0LCBzbyBvdGhlciBzaGVldHMgYXJlIHVudG91Y2hlZCkuIFswNC4wNy4yMDI2XVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0LmVzLXNoZWV0IHtcbiAgei1pbmRleDogMjEwMDA7XG59XG5cbi8vIC0tLS0gUGFuZWw6IG9uZSBGSVhFRCB0YWxsIGhlaWdodCBmb3IgdGhlIHdob2xlIGxpZmV0aW1lIChubyBKUyBtZWFzdXJpbmcpIC0tLS1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5lcy1zaGVldCAuYnMtcGFuZWwge1xuICBoZWlnaHQ6IDgyJTtcbiAgbWF4LWhlaWdodDogODIlO1xuICBwYWRkaW5nOiA0cHggNnB4IDA7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXQuZXMtc2hlZXQgLmJzLWhhbmRsZS16b25lIHtcbiAgcGFkZGluZzogOHB4IDAgNHB4O1xufVxuLy8gVGhlIGJvZHkganVzdCBmcmFtZXMgdGhlIGVtb2ppIFVJOyBzY3JvbGxpbmcgaGFwcGVucyBpbnNpZGUgLmVzLXNjcm9sbC5cbi5xZG5hcHJvLWJvdHRvbS1zaGVldC5lcy1zaGVldCAuYnMtYm9keSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGdhcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5lcy1yb290IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBjb250YWluaW5nIGJsb2NrIGZvciB0aGUgYWJzb2x1dGVseS1wb3NpdGlvbmVkIHRvbmUgcG9wb3ZlclxuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG59XG5cbi8vIENvbG91ciBlbW9qaSBldmVyeXdoZXJlIGdseXBocyByZW5kZXIuIFNoYXJlZCB3aXRoIC5lc3Atcm9vdCAodmFyaWFudD1cInBvcG92ZXJcIixcbi8vIHNlZSB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZSk6IHRoZSBnbHlwaCBmb250IHN0YWNrIGlzIGlkZW50aWNhbCBvbiBib3RoIHN1cmZhY2VzLlxuLmVzLXJvb3QgLmVzLWVtb2ppLFxuLmVzLXJvb3QgLmVzLXRvbmUsXG4uZXNwLXJvb3QgLmVzLWVtb2ppLFxuLmVzcC1yb290IC5lcy10b25lIHtcbiAgZm9udC1mYW1pbHk6IFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIiwgc2Fucy1zZXJpZjtcbn1cblxuLy8gLS0tLSBJY29ucyAoaW5saW5lIGxpbmUgU1ZHcykgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmVzLXJvb3QgLmVzLWljb24geyB3aWR0aDogMjRweDsgaGVpZ2h0OiAyNHB4OyBkaXNwbGF5OiBibG9jazsgZmxleC1zaHJpbms6IDA7IH1cbi5lcy1yb290IC5lcy10YWIgLmVzLWljb24geyB3aWR0aDogMjJweDsgaGVpZ2h0OiAyMnB4OyB9XG5cbi8vIC0tLS0gU2VhcmNoIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5lcy1yb290IC5lcy1zZWFyY2gge1xuICBmbGV4LXNocmluazogMDtcbiAgcGFkZGluZzogNnB4IDZweCAxMHB4O1xufVxuLmVzLXJvb3QgLmVzLXNlYXJjaC10cmlnZ2VyLFxuLmVzLXJvb3QgLmVzLXNlYXJjaC1maWVsZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAwIDEycHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZS0wOCk7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTU1KTtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuLmVzLXJvb3QgLmVzLXNlYXJjaC10cmlnZ2VyIHsgY3Vyc29yOiB0ZXh0OyB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4uZXMtcm9vdCAuZXMtc2VhcmNoLXBsYWNlaG9sZGVyIHsgY29sb3I6IHZhcigtLWMtd2hpdGUtNDUpOyB9XG5cbi8vIENvbGxhcHNlZCBieSBkZWZhdWx0OyAuZXMtc2VhcmNoaW5nIChvbiAuZXMtcm9vdCkgc3dhcHMgdHJpZ2dlciA8LT4gZmllbGQuXG4uZXMtcm9vdCAuZXMtc2VhcmNoLWZpZWxkIHsgZGlzcGxheTogbm9uZTsgfVxuLmVzLXJvb3QuZXMtc2VhcmNoaW5nIC5lcy1zZWFyY2gtdHJpZ2dlciB7IGRpc3BsYXk6IG5vbmU7IH1cbi5lcy1yb290LmVzLXNlYXJjaGluZyAuZXMtc2VhcmNoLWZpZWxkIHsgZGlzcGxheTogZmxleDsgfVxuXG4uZXMtcm9vdCAuZXMtc2VhcmNoLWZpZWxkLWljb24geyBjb2xvcjogdmFyKC0tYy13aGl0ZS00NSk7IH1cbi5lcy1yb290IC5lcy1zZWFyY2gtaW5wdXQge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuLmVzLXJvb3QgLmVzLXNlYXJjaC1pbnB1dDo6cGxhY2Vob2xkZXIgeyBjb2xvcjogdmFyKC0tYy13aGl0ZS00NSk7IH1cbi5lcy1yb290IC5lcy1zZWFyY2gtY2FuY2VsIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDAgMnB4O1xufVxuXG4vLyAtLS0tIFNjcm9sbGVyICsgc2VjdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uZXMtcm9vdCAuZXMtc2Nyb2xsIHtcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbn1cbi5lcy1yb290IC5lcy1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDA7IGhlaWdodDogMDsgZGlzcGxheTogbm9uZTsgfVxuXG4uZXMtcm9vdCAuZXMtc2VjdGlvbi10aXRsZSB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcbiAgei1pbmRleDogMjtcbiAgcGFkZGluZzogOHB4IDhweCA0cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUtNDUpO1xuICAvLyBPcGFxdWUtZW5vdWdoIGJhY2tpbmcgc28gc2Nyb2xsaW5nIGVtb2ppIGRvbid0IGJsZWVkIHRocm91Z2ggdGhlIHN0aWNreSB0aXRsZS5cbiAgYmFja2dyb3VuZDogcmdiYSgzOCwgMzgsIDQ0LCAwLjg2KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTtcbn1cblxuLmVzLXJvb3QgLmVzLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg4LCAxZnIpO1xuICBwYWRkaW5nOiAycHggNHB4IDZweDtcbn1cbi5lcy1yb290IC5lcy1lbW9qaSB7XG4gIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtc2l6ZTogMjdweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4uZXMtcm9vdCAuZXMtZW1vamk6YWN0aXZlIHsgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZS0xNCk7IH1cblxuLy8gU2VhcmNoIHJlc3VsdHMgcmVwbGFjZSB0aGUgY2F0ZWdvcmlzZWQgc2VjdGlvbnMgd2hpbGUgYSBxdWVyeSBpcyBhY3RpdmUuXG4uZXMtcm9vdC5lcy1oYXMtcXVlcnkgLmVzLXNlY3Rpb24geyBkaXNwbGF5OiBub25lOyB9XG4uZXMtcm9vdCAuZXMtcmVzdWx0cyB7IHBhZGRpbmctdG9wOiA4cHg7IH1cblxuLmVzLXJvb3QgLmVzLWVtcHR5IHtcbiAgcGFkZGluZzogNDRweCAxNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUtNDUpO1xufVxuXG4vLyAtLS0tIENhdGVnb3J5IG5hdiAoYm90dG9tKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uZXMtcm9vdCAuZXMtY2F0bmF2IHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xuICBwYWRkaW5nOiA2cHggNnB4IGNhbGMoNnB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCkpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy13aGl0ZS0wOCk7XG59XG4uZXMtcm9vdCAuZXMtdGFiIHtcbiAgZmxleDogMTtcbiAgaGVpZ2h0OiA0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZS00NSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5lcy1yb290IC5lcy10YWI6YWN0aXZlIHsgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZS0wOCk7IH1cbi5lcy1yb290IC5lcy10YWIuaXMtYWN0aXZlIHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtMTIpOyB9XG5cbi8vIC0tLS0gU2tpbi10b25lIHBvcG92ZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNoYXJlZCB3aXRoIC5lc3Atcm9vdCAodmFyaWFudD1cInBvcG92ZXJcIik6IHRoZSBTQU1FIC5lcy10b25lLXBvcG92ZXIvLmVzLXRvbmVcbi8vIG1hcmt1cCBpcyByZXVzZWQgdGhlcmUgdG9vIChzZWUgX29wZW5Ub25lUG9wb3ZlciBpbiBxZG5hLWVtb2ppLXNoZWV0LmpzKSwgc28gdGhlXG4vLyBjYXJkIGl0c2VsZiBuZWVkcyBubyBzZXBhcmF0ZSBsaWdodC9kYXJrIHN0eWxpbmcg4oCUIGl0IGFscmVhZHkgcmVhZHMgZmluZSBvbiBhXG4vLyB3aGl0ZSBwb3BvdmVyIHN1cmZhY2UgYXMtaXMuXG4uZXMtcm9vdCAuZXMtdG9uZS1wb3BvdmVyLFxuLmVzcC1yb290IC5lcy10b25lLXBvcG92ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMnB4O1xuICBwYWRkaW5nOiA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjI4KTtcbn1cbi5lcy1yb290IC5lcy10b25lLXBvcG92ZXJbaGlkZGVuXSxcbi5lc3Atcm9vdCAuZXMtdG9uZS1wb3BvdmVyW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4vLyBEb3dud2FyZCB0YWlsIHBvaW50aW5nIGF0IHRoZSBwcmVzc2VkIGVtb2ppLlxuLmVzLXJvb3QgLmVzLXRvbmUtcG9wb3Zlcjo6YWZ0ZXIsXG4uZXNwLXJvb3QgLmVzLXRvbmUtcG9wb3Zlcjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTlweDtcbiAgbGVmdDogdmFyKC0tZXMtdGFpbC14LCA1MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGJvcmRlcjogOXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wLWNvbG9yOiAjZmZmO1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuLmVzLXJvb3QgLmVzLXRvbmUsXG4uZXNwLXJvb3QgLmVzLXRvbmUge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDI2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZXMtcm9vdCAuZXMtdG9uZTphY3RpdmUsXG4uZXNwLXJvb3QgLmVzLXRvbmU6YWN0aXZlIHsgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA2KTsgfVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyB2YXJpYW50PVwicG9wb3ZlclwiIChhZGRlZCAwMS4wOS4yMDI2KSDigJQgYSBTRVBBUkFURSwgd2hpdGUvbGlnaHQgaW5uZXIgc3VyZmFjZS5cbi8vIE1vZGVsZWQgb24gcWRuYXByby1zdGlja2VyLXNoZWV0J3MgcG9wb3ZlciAoc2FtZSB3aWR0aC9oZWlnaHQgZmVlbCwgc2FtZVxuLy8gc2VhcmNoICsgY2F0ZWdvcnktY2hpcHMgKyBjb3VudCArIGdyaWQgc3RydWN0dXJlIOKAlCBzZWUgLnNzLSogaW5cbi8vIHNjc3MvY29tcG9uZW50cy92Mi9zdGlja2VyLXNoZWV0L19zdGlja2VyLXNoZWV0LnNjc3MpLCBOT1Qgb24gdGhlIGRhcmsgZ2xhc3Ncbi8vIC5lcy1yb290IGFib3ZlOiB0aGUgc2hlZXQncyBjb2xsYXBzaW5nIHNlYXJjaC10cmlnZ2VyICsgc3RpY2t5IHNlY3Rpb24gaGVhZGVyc1xuLy8gKyBib3R0b20gY2F0ZWdvcnktbmF2IGlzIGEgcGhvbmUvZ2xhc3MgcGFyYWRpZ20gdGhhdCBkb2VzIG5vdCBtYXRjaCB0aGVcbi8vIHJlcXVlc3RlZCB3aGl0ZSBwb3BvdmVyIGxvb2sgKEtpbSdzIHNjcmVlbnNob3QsIDAxLjA5LjIwMjYpLiBTZWUgdGhlIGRvY2Jsb2NrXG4vLyBvZiBxZG5hLWVtb2ppLXNoZWV0LmpzICsgX3JlbmRlclBvcG92ZXJTaGVsbCgpIGZvciB3aHkgdGhpcyBjb3VsZCBub3QgYmUgdGhlXG4vLyBzYW1lIHNpbmdsZSBET00gdHJlZSBhcyAuZXMtcm9vdC5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8g4pqg77iPIFRoZSBIT1NUIHNldHMgdGhlIHdpZHRoOiBxZG5hcHJvLXBvcG92ZXIgZGVmYXVsdHMgdG8gMjgwcHggKGEgTUVOVSBzaXplKSwgYW5cbi8vIDgtY29sdW1uIGVtb2ppIGdyaWQgbmVlZHMgbW9yZSByb29tIOKAlCBzYW1lIHJlYXNvbmluZyArIHNhbWUgMzgwcHggYXMgdGhlXG4vLyBzdGlja2VyIHBvcG92ZXIuXG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1lbW9qaS1zaGVldF0ge1xuICB3aWR0aDogbWluKDkydncsIDM4MHB4KTtcbiAgcGFkZGluZzogOHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLy8gQSBGSVhFRCBoZWlnaHQsIHNhbWUgcmVhc29uaW5nIGFzIHRoZSBzdGlja2VyIHBvcG92ZXIncyA0NjBweDogdGhlIGNvbnRlbnRcbi8vIGNoYW5nZXMgKGNoaXBzLCBzZWFyY2ggcmVzdWx0cywgZW1wdHkgc3RhdGUpIGFuZCBhIGNhcmQgdGhhdCBncm93cyB3aXRoIGl0c1xuLy8gY29udGVudCBqdW1wcyBvbiBldmVyeSBrZXlzdHJva2UuIC5lc3Atc2Nyb2xsIHNjcm9sbHMgd2l0aGluIHRoaXMgaGVpZ2h0LlxucWRuYXByby1wb3BvdmVyW2RhdGEtZW1vamktc2hlZXRdIC5lc3Atcm9vdCB7XG4gIGZsZXg6IG5vbmU7IC8vIC5lc3Atcm9vdCBhbHNvIGNhcnJpZXMgZmxleDoxIGZvciBwb3RlbnRpYWwgcmUtdXNlOyBhIHBvcG92ZXIgc2l6ZXMgYnkgaGVpZ2h0LCBub3QgZmxleC1ncm93XG4gIGhlaWdodDogNDYwcHg7XG59XG5cbi5lc3Atcm9vdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gY29udGFpbmluZyBibG9jayBmb3IgdGhlIGFic29sdXRlbHktcG9zaXRpb25lZCB0b25lIHBvcG92ZXJcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xufVxuXG4vLyAtLS0tIFNlYXJjaCAoYWx3YXlzIHZpc2libGUsIHVubGlrZSB0aGUgc2hlZXQncyBjb2xsYXBzaW5nIHRyaWdnZXIpIC0tLS0tLS0tXG4uZXNwLXJvb3QgLmVzcC1zZWFyY2gge1xuICBmbGV4LXNocmluazogMDtcbiAgcGFkZGluZzogNHB4IDAgOHB4O1xufVxuXG4vLyAtLS0tIENhdGVnb3J5IGNoaXBzIChob3Jpem9udGFsIHNjcm9sbCksIHNhbWUgbW9kZWwgYXMgLnNzLWNhdHMgLS0tLS0tLS0tLS1cbi5lc3Atcm9vdCAuZXNwLWNhdHMge1xuICBmbGV4LXNocmluazogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDAgMCAxMHB4O1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbn1cbi5lc3Atcm9vdCAuZXNwLWNhdHM6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDA7IGhlaWdodDogMDsgZGlzcGxheTogbm9uZTsgfVxuLy8gQ2hpcHMgYXJlIHBsYWluIHFkbmFwcm8tdGFncyAodmFyaWFudD1cIm91dGxpbmVcIiB1bmNob3NlbiwgY29sb3I9XCJhY3Rpb25cIiBjaG9zZW4pLFxuLy8gc2FtZSByZWFsIGNvbXBvbmVudCBzdGF0ZXMgYXMgLnNzLWNhdCDigJQgbm8gY29sb3VyIHJ1bGVzIG5lZWRlZCBoZXJlIGVpdGhlci5cblxuLy8gLS0tLSBTY3JvbGxpbmcgcGFydDogY291bnQgKyBncmlkICsgZW1wdHkgc3RhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmVzcC1yb290IC5lc3Atc2Nyb2xsIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG59XG4uZXNwLXJvb3QgLmVzcC1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDA7IGhlaWdodDogMDsgZGlzcGxheTogbm9uZTsgfVxuXG4uZXNwLXJvb3QgLmVzcC1jb3VudCB7XG4gIHBhZGRpbmc6IDAgMCA2cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG5cbi8vIDggY29sdW1ucyAoc2FtZSBhcyB0aGUgZGFyayBzaGVldCdzIGdyaWQpIOKAlCBlbW9qaSBnbHlwaHMgYXJlIHNtYWxsIHNpbmdsZVxuLy8gY2hhcmFjdGVycywgdW5saWtlIHRoZSBzdGlja2VyIGdyaWQncyAxOjEgaW1hZ2VzLCBzbyBtb3JlIGNvbHVtbnMgZml0IGNsZWFubHkuXG4uZXNwLXJvb3QgLmVzcC1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoOCwgMWZyKTtcbiAgcGFkZGluZzogMCAwIDhweDtcbn1cbi8vIFNhbWUgW2hpZGRlbl0gdHJhcCBhcyB0aGUgc2hlZXQncyAuZXMtZ3JpZCAvIHRoZSBzdGlja2VyJ3MgLnNzLWdyaWQ6IGBkaXNwbGF5OlxuLy8gZ3JpZGAgYWJvdmUgd2lucyBvdmVyIHRoZSBicm93c2VyJ3Mgb3duIFtoaWRkZW5dIHJ1bGUgd2l0aG91dCB0aGlzLlxuLmVzcC1yb290IC5lc3AtZ3JpZFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4uZXNwLXJvb3QgLmVzLWVtb2ppIHtcbiAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5lc3Atcm9vdCAuZXMtZW1vamk6YWN0aXZlIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTsgfVxuXG4vLyAtLS0tIEVtcHR5IHNlYXJjaCBzdGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5lc3Atcm9vdCAuZXNwLWVtcHR5IHtcbiAgcGFkZGluZzogNDRweCAyNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG4uZXNwLXJvb3QgLmVzcC1lbXB0eVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvZW1wdHktc3RhdGUvX2VtcHR5LXN0YXRlLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLWVtcHR5LXN0YXRlW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ucWRuYXByby1lbXB0eS1zdGF0ZSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDYyMHB4O1xuICBtYXJnaW46IDMycHggYXV0byAwO1xuICBwYWRkaW5nOiA0NHB4IDQ4cHggNDhweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTUpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTUpO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgyMCwgMjUsIDgwLCAwLjA0KSwgMCA4cHggMjRweCByZ2JhKDIwLCAyNSwgODAsIDAuMDYpO1xufVxuXG4ucWRuYXByby1lbXB0eS1zdGF0ZSAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLyogU29saWQgdmFyaWFudCAoc3VyZmFjZT1cInNvbGlkXCIpOiBhIGxpZ2h0LXB1cnBsZSBjYXJkIGluc3RlYWQgb2YgdGhlXG4gICBmcm9zdGVkLWdsYXNzIHBhbmVsLCBzbyB0aGUgZW1wdHkgc3RhdGUgcmVhZHMgd2VsbCBvbiBhIHBsYWluIHdoaXRlXG4gICBiYWNrZ3JvdW5kICh0aGUgZGVmYXVsdCBnbGFzcyBvbmx5IHdvcmtzIG92ZXIgYSB0aW50ZWQvcHVycGxlIGJhY2tkcm9wKS4gKi9cbi5xZG5hcHJvLWVtcHR5LXN0YXRlLmVtcHR5LXN0YXRlLXNvbGlkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gIGJhY2tkcm9wLWZpbHRlcjogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1wdXJwbGUtNTApO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ucWRuYXByby1lbXB0eS1zdGF0ZS5lbXB0eS1zdGF0ZS1zb2xpZCAuZW1wdHktc3RhdGUtdGl0bGUge1xuICBjb2xvcjogdmFyKC0tYy1zaWRlYmFyLWJnKTtcbn1cblxuLyogT24gdGhlIGxpZ2h0LXB1cnBsZSBzb2xpZCBzdXJmYWNlIGEgcGxhaW4gYHN1YnRsZWAgYnV0dG9uJ3MgbmV1dHJhbCBncmV5XG4gICBob3ZlciAodmFyKC0tYy1ncmV5LTUwKSkgYWxsIGJ1dCBkaXNhcHBlYXJzIGFnYWluc3QgdGhlIGNhcmQgKHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSkpLiBSZS10aW50IGFueVxuICAgc3VidGxlIGFjdGlvbiB0byB0aGUgc3VidGxlLW9uLXB1cnBsZSB0cmVhdG1lbnQgc28gYSBkZWZhdWx0IGBzdWJ0bGVgIENUQVxuICAgcmVhZHMgY29ycmVjdGx5IGhlcmUgd2l0aG91dCB0aGUgY29uc3VtZXIgaGF2aW5nIHRvIHJlYWNoIGZvciBhIHN1cmZhY2UtXG4gICBzcGVjaWZpYyBidXR0b24gdHlwZS4gVGhlIHNvbGlkIGNhcmQgaXMgbGlnaHQtcHVycGxlIGluIGJvdGggdGhlbWVzLCBzb1xuICAgdGhlc2UgdmFsdWVzIGFwcGx5IGluIGxpZ2h0IGFuZCBkYXJrIGFsaWtlLiBWYWx1ZXMgbWlycm9yXG4gICAucWRuYXByby1idXR0b24uYnV0dG9uLXN1YnRsZS1wdXJwbGUtYmcuIFtLaW0gMjAyNi0wNy0wOV0gKi9cbi5xZG5hcHJvLWVtcHR5LXN0YXRlLmVtcHR5LXN0YXRlLXNvbGlkIC5lbXB0eS1zdGF0ZS1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbi5idXR0b24tc3VidGxlIHtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1lbXB0eS1zdGF0ZS5lbXB0eS1zdGF0ZS1zb2xpZCAuZW1wdHktc3RhdGUtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXN1YnRsZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG59XG4ucWRuYXByby1lbXB0eS1zdGF0ZS5lbXB0eS1zdGF0ZS1zb2xpZCAuZW1wdHktc3RhdGUtYWN0aW9ucyAucWRuYXByby1idXR0b24uYnV0dG9uLXN1YnRsZTphY3RpdmU6bm90KC5idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xufVxuXG4vKiBQYWdlIHZhcmlhbnQgKHN1cmZhY2U9XCJwYWdlXCIpOiBLaW0ncyBQV0EgZW1wdHktc3RhdGUgZGVzaWduLCAyMS4wNy4yMDI2LlxuICAgTmV1dHJhbCBiYWNrZ3JvdW5kLCBubyBjYXJkL3N1cmZhY2Uvc2hhZG93IC0tIHNpdHMgZGlyZWN0bHkgb24gdGhlXG4gICBwYWdlL2FwcCBiYWNrZ3JvdW5kLiBBbHdheXMgYSBzaW5nbGUgdmVydGljYWwgY29sdW1uICh0aXRsZSwgc3VidGV4dCxcbiAgIGFjdGlvbnMsIGlsbHVzdHJhdGlvbik6IHRoZSBcImV4dGVuZGVkXCIgdHdvLWNvbHVtbiBncmlkIG5ldmVyIGFwcGxpZXNcbiAgIGhlcmUsIGJlY2F1c2UgdGhlIEpTIGtlZXBzIGBlbXB0eS1zdGF0ZS1leHRlbmRlZGAgb2ZmIHdoZW5ldmVyXG4gICBgZW1wdHktc3RhdGUtcGFnZWAgaXMgb24gKHNlZSBxZG5hLWVtcHR5LXN0YXRlLmpzIF9yZW5kZXIoKSkuIFdpdGhcbiAgIGBlbXB0eS1zdGF0ZS1leHRlbmRlZGAgYWJzZW50LCB0aGUgaG9zdCBzdGF5cyBwbGFpbiBgZGlzcGxheTogYmxvY2tgXG4gICAodGhlIGJhc2UgLnFkbmFwcm8tZW1wdHktc3RhdGUgcnVsZSBhYm92ZSksIHNvIHRoZSBjb3B5IGNvbHVtbiBhbmQgdGhlXG4gICBpbGx1c3RyYXRpb24gY29sdW1uIC0tIGJvdGggYWxyZWFkeSBzaWJsaW5ncyBhcHBlbmRlZCBpbiB0aGF0IG9yZGVyIC0tXG4gICBzaW1wbHkgc3RhY2sgdG9wIHRvIGJvdHRvbSB3aXRoIG5vIGV4dHJhIGxheW91dCBydWxlIG5lZWRlZCBmb3IgdGhhdC5cblxuICAgVGl0bGUgYW5kIHN1YnRleHQgdXNlIHRoZSBzZW1hbnRpYyAtLWMtYnJhbmQtcHVycGxlIC8gLS1jLXRleHQtaGVhZGluZ1xuICAgY3VzdG9tIHByb3BlcnRpZXMgKGRlc2lnbi10b2tlbnMvX2Rlc2lnbi10b2tlbnMuc2NzcykgaW5zdGVhZCBvZlxuICAgaGFyZGNvZGVkIGhleCwgc28gYm90aCBhdXRvbWF0aWNhbGx5IHJlYWQgY29ycmVjdGx5IGluXG4gICBbZGF0YS10aGVtZT1kYXJrXSB3aXRoIG5vIHNlcGFyYXRlIGRhcmstbW9kZSBvdmVycmlkZSByZXF1aXJlZCBoZXJlLiAqL1xuLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtcGFnZSB7XG4gIG1heC13aWR0aDogNDgwcHg7XG4gIHBhZGRpbmc6IDhweCAyNHB4IDMycHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBub25lO1xuICBiYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG59XG5cbi5xZG5hcHJvLWVtcHR5LXN0YXRlLmVtcHR5LXN0YXRlLXBhZ2UgLmVtcHR5LXN0YXRlLXRpdGxlIHtcbiAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtcGFnZSAuZW1wdHktc3RhdGUtd2luayB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWY0ZCk7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLyogT24tcHVycGxlIHZhcmlhbnQgKHN1cmZhY2U9XCJvbi1wdXJwbGVcIik6IHRoZSBwYWdlIHZhcmlhbnQncyBsYXlvdXQsIHJlY29sb3VyZWQgZm9yXG4gICBhIHB1cnBsZSBzdXJmYWNlLiBUaGUgSlMgZ2l2ZXMgdGhpcyB2YXJpYW50IEJPVEggZW1wdHktc3RhdGUtcGFnZSBhbmRcbiAgIGVtcHR5LXN0YXRlLW9uLXB1cnBsZSwgc28gZXZlcnl0aGluZyBhYm92ZSBzdGlsbCBhcHBsaWVzIGFuZCBvbmx5IHRoZSBjb3B5IGNvbG91cnNcbiAgIGNoYW5nZSBoZXJlIC0tIG9uZSBsYXlvdXQsIHR3byBjb2xvdXIgc2V0cywgc28gYSBzcGFjaW5nIGZpeCBjYW4gbmV2ZXIgbGFuZCBvbiBvbmVcbiAgIGFuZCBtaXNzIHRoZSBvdGhlci4gVXNlZCBieSB0aGUgUFdBIHRhc2tsaXN0IGNob29zZXIsIHdoaWNoIHBhaW50cyBpdHMgb3duXG4gICAtLWMtcHVycGxlLTUwMCBiYWNrZ3JvdW5kOyB3aXRob3V0IHRoaXMgdGhlIHBhZ2UgdmFyaWFudCdzIGJyYW5kLXB1cnBsZSB0aXRsZSBhbmRcbiAgIGRhcmstZ3JleSBzdWJ0ZXh0IHNpdCB1bnJlYWRhYmxlIG9uIHRoYXQgcHVycGxlLiBbS2ltIDMwLjA3LjIwMjZdICovXG4ucWRuYXByby1lbXB0eS1zdGF0ZS5lbXB0eS1zdGF0ZS1wYWdlLmVtcHR5LXN0YXRlLW9uLXB1cnBsZSAuZW1wdHktc3RhdGUtdGl0bGUge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbiwgI2ZmZmZmZik7XG59XG4ucWRuYXByby1lbXB0eS1zdGF0ZS5lbXB0eS1zdGF0ZS1wYWdlLmVtcHR5LXN0YXRlLW9uLXB1cnBsZSAuZW1wdHktc3RhdGUtd2luayB7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTcwLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykpO1xufVxuXG4vKiBBY3Rpb25zIHJvdzogMCwgMSBvciAyIHFkbmFwcm8tYnV0dG9uIGNoaWxkcmVuIChzZWUgdGhlIGFjdGlvbnMtc2xvdFxuICAgY29udHJhY3QgaW4gcWRuYS1lbXB0eS1zdGF0ZS5qcykuIEV2ZXJ5IGJ1dHRvbiBnZXRzIGZsZXg6IDEgMSAwLCBzbyBhXG4gICBzaW5nbGUgYnV0dG9uIGZpbGxzIHRoZSB3aG9sZSByb3cgKHNvZnQgZnVsbC13aWR0aCBDVEEpIGFuZCB0d29cbiAgIGJ1dHRvbnMgc3BsaXQgaXQgZXZlbmx5IHdpdGggZXF1YWwgaGVpZ2h0IChhbGlnbi1pdGVtczogc3RyZXRjaCkgLS1cbiAgIG5vIDpvbmx5LWNoaWxkIC8gOmhhcygpIHNlbGVjdG9yIG5lZWRlZCBmb3IgdGhhdC4gUmFkaXVzIGlzIGJ1bXBlZCB0b1xuICAgdGhlIC0tci0zICgxMnB4KSB0b2tlbiwgc2NvcGVkIHRvIHRoaXMgdmFyaWFudCdzIGFjdGlvbnMgcm93IG9ubHksIHNvXG4gICBxZG5hcHJvLWJ1dHRvbidzIG5vcm1hbCA4cHggcmFkaXVzIGV2ZXJ5d2hlcmUgZWxzZSBpcyB1bnRvdWNoZWQuICovXG4ucWRuYXByby1lbXB0eS1zdGF0ZS5lbXB0eS1zdGF0ZS1wYWdlIC5lbXB0eS1zdGF0ZS1hY3Rpb25zIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNDIwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGdhcDogMTJweDtcbn1cblxuLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtcGFnZSAuZW1wdHktc3RhdGUtYWN0aW9ucyAucWRuYXByby1idXR0b24ge1xuICBmbGV4OiAxIDEgMDtcbiAgbWluLXdpZHRoOiAwO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMsIDEycHgpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtcGFnZSAuZW1wdHktc3RhdGUtYWN0aW9ucyB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5xZG5hcHJvLWVtcHR5LXN0YXRlLmVtcHR5LXN0YXRlLXBhZ2UgLmVtcHR5LXN0YXRlLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uIHtcbiAgICBmbGV4OiAxIDEgMTAwJTtcbiAgfVxufVxuXG4vKiBJbGx1c3RyYXRpb246IGxhcmdlLCBhbmQgYWx3YXlzIGZhZGVkIHRvIDYwJSBvcGFjaXR5IC0tIHRoaXMgaXMgYVxuICAgZGVjb3JhdGl2ZSBjaG9pY2UsIG5vdCBhIFwiZGlzYWJsZWRcIiBzdGF0ZSwgc28gaXQgaXMgZG9uZSBoZXJlIHJhdGhlclxuICAgdGhhbiB2aWEgcWRuYXByby1pbGx1c3RyYXRpb24ncyBvd24gYGRpc2FibGVkYCBhdHRyaWJ1dGUgKHdoaWNoXG4gICBjYXJyaWVzIGRpZmZlcmVudCBzZW1hbnRpY3Mvc3R5bGluZykuIFRoZSBnZW5lcmljIDI2MHB4IGNhcCBiZWxvdyBpc1xuICAgcmVtb3ZlZCBzbyB0aGUgaWxsdXN0cmF0aW9uJ3Mgb3duIGBzaXplYCBhdHRyaWJ1dGUgZnVsbHkgY29udHJvbHMgaXRzXG4gICB3aWR0aCwgc2FtZSBhcyBhbnkgb3RoZXIgcWRuYXByby1pbGx1c3RyYXRpb24gdXNhZ2UuICovXG4ucWRuYXByby1lbXB0eS1zdGF0ZS5lbXB0eS1zdGF0ZS1wYWdlIC5lbXB0eS1zdGF0ZS1pbGx1c3RyYXRpb24ge1xuICBtYXJnaW4tdG9wOiAzMnB4O1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5xZG5hcHJvLWVtcHR5LXN0YXRlLmVtcHR5LXN0YXRlLXBhZ2UgLmVtcHR5LXN0YXRlLWlsbHVzdHJhdGlvbiBpbWcsXG4ucWRuYXByby1lbXB0eS1zdGF0ZS5lbXB0eS1zdGF0ZS1wYWdlIC5lbXB0eS1zdGF0ZS1pbGx1c3RyYXRpb24gc3ZnIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG4vKiBFeHRlbmRlZCBsYXlvdXQ6IHR3by1jb2x1bW4gZ3JpZCB3aGVuIHByZXZpZXcgb3IgaWxsdXN0cmF0aW9uIGlzIHByZXNlbnQuICovXG4ucWRuYXByby1lbXB0eS1zdGF0ZS5lbXB0eS1zdGF0ZS1leHRlbmRlZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWlubWF4KDAsIGF1dG8pO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXgtd2lkdGg6IDEwMjBweDtcbiAgcGFkZGluZzogMzZweCA0MHB4IDQwcHg7XG4gIGdhcDogMjhweDtcbn1cblxuLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtZXh0ZW5kZWQgLmVtcHR5LXN0YXRlLWNvcHkge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtZXh0ZW5kZWQgLmVtcHR5LXN0YXRlLWFjdGlvbnMge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5xZG5hcHJvLWVtcHR5LXN0YXRlIC5lbXB0eS1zdGF0ZS1jb3B5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnFkbmFwcm8tZW1wdHktc3RhdGUgLmVtcHR5LXN0YXRlLWV5ZWJyb3cge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDRweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogI2U2ZTlmZjtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuXG4ucWRuYXByby1lbXB0eS1zdGF0ZSAuZW1wdHktc3RhdGUtdGl0bGUge1xuICBmb250LXNpemU6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG5cbi5xZG5hcHJvLWVtcHR5LXN0YXRlIC5lbXB0eS1zdGF0ZS13aW5rIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS03MDApO1xuICBtYXJnaW46IDAgMCAyNHB4O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5xZG5hcHJvLWVtcHR5LXN0YXRlIC5lbXB0eS1zdGF0ZS1ib2R5IHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIG1hcmdpbjogMCAwIDI4cHg7XG4gIG1heC13aWR0aDogNDgwcHg7XG59XG5cbi5xZG5hcHJvLWVtcHR5LXN0YXRlIC5lbXB0eS1zdGF0ZS1ib2R5IHAge1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ucWRuYXByby1lbXB0eS1zdGF0ZSAuZW1wdHktc3RhdGUtYm9keSBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ucWRuYXByby1lbXB0eS1zdGF0ZSAuZW1wdHktc3RhdGUtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnFkbmFwcm8tZW1wdHktc3RhdGUgLmVtcHR5LXN0YXRlLXByZXZpZXcsXG4ucWRuYXByby1lbXB0eS1zdGF0ZSAuZW1wdHktc3RhdGUtaWxsdXN0cmF0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5xZG5hcHJvLWVtcHR5LXN0YXRlIC5lbXB0eS1zdGF0ZS1wcmV2aWV3IGltZyxcbi5xZG5hcHJvLWVtcHR5LXN0YXRlIC5lbXB0eS1zdGF0ZS1pbGx1c3RyYXRpb24gaW1nLFxuLnFkbmFwcm8tZW1wdHktc3RhdGUgLmVtcHR5LXN0YXRlLXByZXZpZXcgc3ZnLFxuLnFkbmFwcm8tZW1wdHktc3RhdGUgLmVtcHR5LXN0YXRlLWlsbHVzdHJhdGlvbiBzdmcge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAyNjBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnFkbmFwcm8tZW1wdHktc3RhdGUgLmVtcHR5LXN0YXRlLXByZXZpZXcgaW1nIHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMjAsIDI1LCA4MCwgMC4wNSksIDAgOHB4IDIycHggcmdiYSgyMCwgMjUsIDgwLCAwLjEpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnFkbmFwcm8tZW1wdHktc3RhdGUuZW1wdHktc3RhdGUtZXh0ZW5kZWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG4gIC5xZG5hcHJvLWVtcHR5LXN0YXRlLmVtcHR5LXN0YXRlLWV4dGVuZGVkIC5lbXB0eS1zdGF0ZS1pbGx1c3RyYXRpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWVtcHR5LXN0YXRlIHtcbiAgYmFja2dyb3VuZDogcmdiYSg0NiwgNDgsIDU0LCAwLjU1KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1lbXB0eS1zdGF0ZSAuZW1wdHktc3RhdGUtZXllYnJvdyB7XG4gIGJhY2tncm91bmQ6ICMzYTM1NTU7XG4gIGNvbG9yOiAjYzBjNWZmO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1lbXB0eS1zdGF0ZSAuZW1wdHktc3RhdGUtdGl0bGUge1xuICBjb2xvcjogI2UxZTNlNjtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tZW1wdHktc3RhdGUgLmVtcHR5LXN0YXRlLXdpbmsge1xuICBjb2xvcjogI2E2YWFiMztcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tZW1wdHktc3RhdGUgLmVtcHR5LXN0YXRlLWJvZHkge1xuICBjb2xvcjogIzg5OGU5OTtcbn0iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLWV2ZW50LWNhcmQg4oCUIGNhbGVuZGFyIGV2ZW50IGNhcmQgKFBXQSBjYWxlbmRhciBNMSlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFFETkEgdG9rZW5zIHVzZWQ6XG4vLyAgICAtLWMtcHVycGxlLTUwICAgICAgICAjZTZlOWZmICAgcGxhbm5lZCBiZyAgICAgIChGaWdtYSBjYWwtaXRlbS1iZy1ibHVlIOKGkiBxZG5hIHB1cnBsZSlcbi8vICAgIC0tYy1wdXJwbGUtNTAwICAgICAgICM0MDQ5OWEgICBwbGFubmVkIHRleHQgICAgKEZpZ21hIGNhbC1pdGVtLXRleHQtYmx1ZSDihpIgcWRuYSBwdXJwbGUpXG4vLyAgICAtLWMtc2lnbmFsLWdyZWVuLTEwMCAjZDhmNGUzICAgY29tcGxldGUgYmcgICAgIChGaWdtYSAjZDdmM2U1KVxuLy8gICAgLS1jLXNpZ25hbC1ncmVlbi10ZXh0ICM0MjhiNmUgIGNvbXBsZXRlIHRleHQgICAoRmlnbWEgIzJjOWI2NSlcbi8vICAgIC0tYy1zaWduYWwtcmVkLWJnICAgICNmZWUzZTMgICBvdmVyZHVlIGJnICAgICAgKEZpZ21hICNmZWQ4ZGYpXG4vLyAgICAtLWMtc2lnbmFsLXJlZC10ZXh0ICAjYzY1YTVhICAgb3ZlcmR1ZSB0ZXh0ICAgIChGaWdtYSAjYzczMTRlKVxuLy8gICAgLS1jLWdyZXktNTAgICAgICAgICAgI2YwZjFmMiAgIGJsb2NrZWQgYmcgICAgICAoRmlnbWEgI2VkZWVmMSlcbi8vICAgIC0tYy1ncmV5LTYwMCAgICAgICAgICM1NjViNjYgICBibG9ja2VkIHRleHQgICAgKEZpZ21hICM1YjYxNmUpXG4vLyAgICAtLXItMiAgICAgICAgICAgICAgICA4cHggICAgICAgY2FyZCByYWRpdXMgICAgIChGaWdtYSByYWRpdXMtc21hbGwpXG4vLyAgTGF5b3V0IGZyb20gRmlnbWEgXCJQbGFuIGl0ZW1cIiAoMzYwNDoyOTk3NCk6IHBhZGRpbmcgNHB4LCBnYXAgNHB4LFxuLy8gIHRpdGxlIDE0cHgvMjBweCBzZW1pYm9sZCwgbWV0YSAxMnB4ICsgMTZweCBpY29uLCBnYXAgNHB4LlxuLy8gIEV2ZXJ5IHN0YXR1cyA9IDIgdmFyaWFibGUgb3ZlcnJpZGVzOyBhIHdyYXBwZXIgKGFnZW5kYSBsYXllciwgdGhlbWUpXG4vLyAgY2FuIHJlY29sb3VyIGNhcmRzIGJ5IHNldHRpbmcgLS1ldmVudC1jYXJkLWJnIC8gLS1ldmVudC1jYXJkLXRleHQuXG4vLyAgRkxBVCBDU1M7IHN5bmNlZCB0byB0aGUgUFdBIHZpYSBzeW5jLXYyLWNvbXBvbmVudHMuanMuXG5cbi5xZG5hcHJvLWV2ZW50LWNhcmQge1xuICAvLyBTdGF0dXMgdmFyaWFibGVzIOKAlCBwbGFubmVkIChwdXJwbGUpIGlzIHRoZSBkZWZhdWx0XG4gIC0tZXZlbnQtY2FyZC1iZzogICB2YXIoLS1jLXB1cnBsZS01MCwgI2U2ZTlmZik7XG4gIC0tZXZlbnQtY2FyZC10ZXh0OiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gcG9zaXRpb25pbmcgY29udGV4dCBmb3IgdGhlIGNvbmZsaWN0IGRvdCwgYmVsb3dcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgcGFkZGluZzogNHB4IDZweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0yLCA4cHgpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ldmVudC1jYXJkLWJnKTtcbiAgY29sb3I6IHZhcigtLWV2ZW50LWNhcmQtdGV4dCk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogZmlsdGVyIDAuMTZzIGVhc2UsIHRyYW5zZm9ybSAwLjFzIGVhc2UsIGJveC1zaGFkb3cgMC4xNnMgZWFzZTtcbn1cblxuLnFkbmFwcm8tZXZlbnQtY2FyZC0tY29tcGxldGUge1xuICAtLWV2ZW50LWNhcmQtYmc6ICAgdmFyKC0tYy1zaWduYWwtZ3JlZW4tMTAwLCAjZDhmNGUzKTtcbiAgLS1ldmVudC1jYXJkLXRleHQ6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQsICM0MjhiNmUpO1xufVxuLnFkbmFwcm8tZXZlbnQtY2FyZC0tb3ZlcmR1ZSB7XG4gIC0tZXZlbnQtY2FyZC1iZzogICB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZWUzZTMpO1xuICAtLWV2ZW50LWNhcmQtdGV4dDogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xufVxuLnFkbmFwcm8tZXZlbnQtY2FyZC0tYmxvY2tlZCB7XG4gIC0tZXZlbnQtY2FyZC1iZzogICB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpO1xuICAtLWV2ZW50LWNhcmQtdGV4dDogdmFyKC0tYy1ncmV5LTYwMCwgIzU2NWI2Nik7XG59XG4vLyBTdGFydGVkIGJ1dCBub3QgZmluaXNoZWQgKHNjb3BlIHYxLjMsIDAyLjA3LjIwMjYpIOKAlCBvcmFuZ2UsIGJldHdlZW4gcGxhbm5lZCBhbmQgY29tcGxldGVcbi5xZG5hcHJvLWV2ZW50LWNhcmQtLWlucHJvZ3Jlc3Mge1xuICAtLWV2ZW50LWNhcmQtYmc6ICAgdmFyKC0tYy1zaWduYWwtb3JhbmdlLWJnLCAjZmRlYWRjKTtcbiAgLS1ldmVudC1jYXJkLXRleHQ6IHZhcigtLWMtc2lnbmFsLW9yYW5nZS10ZXh0LCAjYmM2YTFmKTtcbn1cbi8vIFBlcnNvbmFsIGV2ZW50IChcIlBsYW4gZXZlbnRcIiwgc2NvcGUgdjEuMykg4oCUIE9ORSBjbGVhciBjb2xvdXIgZm9yIGFsbCBwZXJzb25hbCBpdGVtcztcbi8vIHRoZSBvcHRpb25hbCBjYXRlZ29yeSBpcyBhIGxhYmVsLCBpdCBkb2VzIG5vdCBkcml2ZSB0aGUgY29sb3VyXG4ucWRuYXByby1ldmVudC1jYXJkLS1wZXJzb25hbCB7XG4gIC0tZXZlbnQtY2FyZC1iZzogICB2YXIoLS1jLXNpZ25hbC1waW5rLWJnLCAjZjZlMWU4KTtcbiAgLS1ldmVudC1jYXJkLXRleHQ6IHZhcigtLWMtc2lnbmFsLXBpbmstdGV4dCwgI2IyNTc3Nyk7XG59XG5cbi8vIGRyYWZ0PVwiXCIgKFFETkEgUGxhbm5lciBmYXNlIEEsIDE4LjA3LjIwMjYpIOKAlCBhIG5vdC15ZXQtY29uZmlybWVkIHBsYW5uaW5nXG4vLyBpdGVtLiBNQVRDSEVTIHRoZSByZXNvdXJjZS10aW1lbGluZSBib2FyZCdzIGV4aXN0aW5nXG4vLyAucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2hpcC0tZHJhZnQgdHJlYXRtZW50IGV4YWN0bHkgKHNhbWUgZGFzaGVkXG4vLyBib3JkZXIgd2lkdGgsIHNhbWUgY29sb3ItbWl4IHJlY2lwZSk6IGRhc2hlZCBib3JkZXIgaW4gdGhlIGNhcmQncyBPV05cbi8vIHN0YXR1cyBjb2xvciAoLS1ldmVudC1jYXJkLXRleHQpIGFuZCBhIHJlZHVjZWQtb3BhY2l0eSB2ZXJzaW9uIG9mIGl0cyBPV05cbi8vIHN0YXR1cyBiYWNrZ3JvdW5kICgtLWV2ZW50LWNhcmQtYmcgdmlhIGNvbG9yLW1peCksIHNvIGl0IGRyb3BzIG9udG8gQU5ZXG4vLyBzdGF0dXMgKHBsYW5uZWQvY29tcGxldGUvb3ZlcmR1ZS9ibG9ja2VkL2lucHJvZ3Jlc3MvcGVyc29uYWwpIHdpdGhvdXQgYVxuLy8gbmV3IHZhcmlhbnQgcGVyIHN0YXR1cy4gTm8gZmFsbGJhY2sgbmVlZGVkIG9uIHRoZSB2YXJzIGhlcmUgKHVubGlrZSB0aGVcbi8vIHJlc291cmNlLXRpbWVsaW5lIGNvcHkpIOKAlCB0aGlzIHJ1bGUgbGl2ZXMgaW5zaWRlIHRoZSBjb21wb25lbnQgdGhhdCBzZXRzXG4vLyBib3RoIGN1c3RvbSBwcm9wZXJ0aWVzIG9uIGl0c2VsZiwgc28gdGhleSBhcmUgYWx3YXlzIGRlZmluZWQgYnkgdGhlIHRpbWVcbi8vIHRoaXMgYXBwbGllcy4gUHVyZWx5IHZpc3VhbDsgZG9lcyBub3QgYWZmZWN0IHByZXNzL2tleWJvYXJkIGJlaGF2aW91ci5cbi5xZG5hcHJvLWV2ZW50LWNhcmQuaXMtZHJhZnQge1xuICBib3JkZXI6IDEuNXB4IGRhc2hlZCB2YXIoLS1ldmVudC1jYXJkLXRleHQpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZXZlbnQtY2FyZC1iZykgNTUlLCB0cmFuc3BhcmVudCk7XG59XG5cbi8vIHNpemU9XCJzbWFsbFwiIOKAlCBjb21wYWN0IGJvYXJkLWNoaXAgc2NhbGUgKEtpbSwgMTYuMDcuMjAyNiDigJQgXCJuaWV0IGluXG4vLyB2ZXJob3VkaW5nLCBmb250IHZlZWwgdGUgZ3Jvb3RcIjogdGhlIGNhcmQgd2FzIGRlc2lnbmVkIGF0IFBXQSBzY2FsZVxuLy8gKDE0cHggc2VtaWJvbGQgdGl0bGUpLCB3aGljaCByZWFkcyBvdmVyc2l6ZWQgYWdhaW5zdCAxM3B4IGJvYXJkXG4vLyB0eXBvZ3JhcGh5KS4gQWJzZW50IChkZWZhdWx0KSA9IHVudG91Y2hlZCBQV0Egc2NhbGUuIENsYXNzLWJhc2VkLCBzYW1lXG4vLyBpZGlvbSBhcyB0aGUgc3RhdHVzIG1vZGlmaWVycyBhYm92ZS4gVXNlZCBieSBxZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lJ3Ncbi8vIF9idWlsZENoaXAgKHNpemU9XCJzbWFsbFwiIG9uIGV2ZXJ5IGNoaXApIOKAlCB0dW5lZCBzbyBhIH4yMnB4LXRhbGwgY2hpcFxuLy8gbG9va3MgYmFsYW5jZWQgbmV4dCB0byB0aGUgYm9hcmQncyAxM3B4IGxhYmVscy5cbi5xZG5hcHJvLWV2ZW50LWNhcmQtLXNpemUtc21hbGwge1xuICBwYWRkaW5nOiAycHggNXB4O1xuICBnYXA6IDFweDtcbn1cbi5xZG5hcHJvLWV2ZW50LWNhcmQtLXNpemUtc21hbGwgLnFkbmFwcm8tZXZlbnQtY2FyZF9fdGl0bGUge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLnFkbmFwcm8tZXZlbnQtY2FyZC0tc2l6ZS1zbWFsbCAucWRuYXByby1ldmVudC1jYXJkX19tZXRhLXRleHQge1xuICBmb250LXNpemU6IDExcHg7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xufVxuLnFkbmFwcm8tZXZlbnQtY2FyZC0tc2l6ZS1zbWFsbCAucWRuYXByby1ldmVudC1jYXJkX19tZXRhIC5xZG5hcHJvLWljb24sXG4ucWRuYXByby1ldmVudC1jYXJkLS1zaXplLXNtYWxsIC5xZG5hcHJvLWV2ZW50LWNhcmRfX21ldGEgcWRuYXByby1pY29uIHtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbn1cblxuLy8gUHJlc3NlZCDigJQgc3lzdGVtaWMgZGFya2VuOyBob3ZlciBpcyBpbnRlbnRpb25hbGx5IGFic2VudCAodG91Y2gtZmlyc3QsXG4vLyB0aGUgZ3JpZCBjZWxsIHByb3ZpZGVzIG5vIGhvdmVyIGFmZm9yZGFuY2UgZWl0aGVyKVxuLnFkbmFwcm8tZXZlbnQtY2FyZC5pcy1wcmVzc2VkIHtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOTQpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpO1xufVxuXG4vLyBGb2N1cyDigJQgdW5pZmllZCBzdGFja2VkIGJveC1zaGFkb3cgcmVjaXBlIChyaW5nIG9uIGVkZ2UgKyBzb2Z0IGdsb3cpXG4ucWRuYXByby1ldmVudC1jYXJkOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLWV2ZW50LWNhcmQ6Zm9jdXMtdmlzaWJsZSxcbi5xZG5hcHJvLWV2ZW50LWNhcmQuZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OlxuICAgIDAgMCAwIDJweCB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpLFxuICAgIDAgMCAwIDZweCB2YXIoLS1jLXB1cnBsZS1zb2Z0LTE4LCByZ2JhKDY0LCA3MywgMTU0LCAwLjE4KSk7XG59XG5cbi8vIFRpdGxlIOKAlCBvbmUgbGluZSBwZXIgRmlnbWEgYXQgcmVzdDsgaGVpZ2h0LWF3YXJlIG11bHRpLWxpbmUgY2xhbXAgKEtpbSxcbi8vIDE2LjA3LjIwMjYg4oCUIFwiZWVuIGhvZ2Uga2FhcnQgdG9vbnQgbm9nIHN0ZWVkcyAxIHJlZ2VsLCB6b25kZVwiKS4gVGhlIGNhcmQnc1xuLy8gb3duIEpTIChfbWVhc3VyZVRpdGxlQ2xhbXApIHNldHMgLXdlYmtpdC1saW5lLWNsYW1wIHRvIHRoZSBudW1iZXIgb2Ygd2hvbGVcbi8vIGxpbmVzIHRoYXQgZml0IHRoZSBjYXJkJ3MgYWN0dWFsIGF2YWlsYWJsZSB0aXRsZSBoZWlnaHQsIHNvIHRoaXMgc3RhcnRzIGF0XG4vLyAxIChpZGVudGljYWwgbG9vayB0byB0aGUgb2xkIG5vd3JhcC9lbGxpcHNpcyBydWxlKSBhbmQgb25seSBncm93cyB3aGVuIHRoZVxuLy8gY2FyZCBpcyB0YWxsIGVub3VnaC4gZmxleDpub25lIGlzIGtlcHQg4oCUIHRoZSBib3ggc2l6ZXMgdG8gaXRzIE9XTiBjbGFtcGVkXG4vLyBjb250ZW50ICgxLi5OIGxpbmVzKSwgaXQgbmV2ZXIgc3RyZXRjaGVzIHRvIGZpbGwgbGVmdG92ZXIgY29sdW1uIHNwYWNlLlxuLnFkbmFwcm8tZXZlbnQtY2FyZF9fdGl0bGUge1xuICBmbGV4OiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4vLyBMZWFkaW5nLWF2YXRhciByb3cg4oCUIG9wdGlvbmFsLCBhZGRpdGl2ZSAoYXZhdGFyLXNyYyAvIGF2YXRhci1pbml0aWFscykuXG4vLyBPbmx5IHByZXNlbnQgd2hlbiB0aGUgY2FyZCB3YXMgYnVpbHQgd2l0aCBhbiBhdmF0YXI7IHRoZSB0aXRsZSBrZWVwc1xuLy8gZWxsaXBzaXppbmcgYWdhaW5zdCB0aGUgZml4ZWQtd2lkdGggYXZhdGFyIHNpYmxpbmcuXG4ucWRuYXByby1ldmVudC1jYXJkX19yb3cge1xuICBmbGV4OiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnFkbmFwcm8tZXZlbnQtY2FyZF9fcm93IC5xZG5hcHJvLWV2ZW50LWNhcmRfX3RpdGxlIHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnFkbmFwcm8tZXZlbnQtY2FyZF9fYXZhdGFyIHtcbiAgZmxleDogbm9uZTtcbn1cblxuLy8gTWV0YSByb3cg4oCUIDE2cHggaWNvbiArIDEycHggdGV4dDsgZGlzYXBwZWFycyBieSBjbGlwcGluZyBvbiBzaG9ydCBjYXJkc1xuLnFkbmFwcm8tZXZlbnQtY2FyZF9fbWV0YSB7XG4gIGZsZXg6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBtaW4td2lkdGg6IDA7XG59XG4ucWRuYXByby1ldmVudC1jYXJkX19tZXRhIC5xZG5hcHJvLWljb24sXG4ucWRuYXByby1ldmVudC1jYXJkX19tZXRhIHFkbmFwcm8taWNvbiB7XG4gIGZsZXg6IG5vbmU7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnFkbmFwcm8tZXZlbnQtY2FyZF9fbWV0YS10ZXh0IHtcbiAgbWluLXdpZHRoOiAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gQ29uZmxpY3QgZG90IChRRE5BIFBsYW5uZXIgYXZhaWxhYmlsaXR5IHJvdW5kLCBLaW0tYXBwcm92ZWQgMTcuMDcuMjAyNikg4oCUXG4vLyBwYXJ0IG9mIHRoZSBjb21wb25lbnQncyBvd24gcmVuZGVyKCksIHNlZSB0aGUgYGNvbmZsaWN0YCBhdHRyaWJ1dGUgaW4gdGhlXG4vLyBkb2NibG9jay4gRlVMTFkgSU5TSURFIHRoZSBjYXJkIChuZWdhdGl2ZSBvZmZzZXRzIGdldCBjbGlwcGVkIGJ5IGFcbi8vIGNvbnN1bWVyJ3Mgb3ZlcmZsb3c6aGlkZGVuKS4gcG9pbnRlci1ldmVudHM6IG5vbmUgc28gaXQgbmV2ZXIgaW50ZXJjZXB0c1xuLy8gcHJlc3MvZHJhZyBoYW5kbGluZy4gU2luY2UgdGhlIHVuaWZpY2F0aW9uIHJvdW5kIG9mIDE3LjA3LjIwMjYgdGhpcyBpc1xuLy8gVEhFIG9uZSBjb25mbGljdCBkb3Qg4oCUIHRoZSByZXNvdXJjZS10aW1lbGluZSdzIG9sZCBfX2NoaXAtY29uZmxpY3Rcbi8vIG92ZXJsYXkgc3BhbiB3YXMgcmVtb3ZlZDsgZXZlcnkgY29uc3VtZXIgc2V0cyB0aGUgYXR0cmlidXRlIGluc3RlYWQuXG4ucWRuYXByby1ldmVudC1jYXJkX19jb25mbGljdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAycHg7XG4gIHJpZ2h0OiAycHg7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogOHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDEuNXB4ICNmZmY7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tZXZlbnQtY2FyZF9fY29uZmxpY3QtLW92ZXJsYXAge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG59XG4ucWRuYXByby1ldmVudC1jYXJkX19jb25mbGljdC0tdW5hdmFpbGFibGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm4tcmVkLTUwMCk7XG59XG5cbi8vIGNvbmZsaWN0LWFjY2VwdGVkPVwiXCIgKFFETkEgUGxhbm5lciBcImJld3VzdCBnZXBsYW5kXCIgcm91bmQsIDE4LjA3LjIwMjYpIOKAlCB0aGVcbi8vIHBsYW5uZXIgQ09OU0NJT1VTTFkgYWNjZXB0ZWQgdGhpcyBleGFjdCBjb25mbGljdCAoZGV0YWlscyBvZiB3aGF0IGNvdW50cyBhc1xuLy8gXCJhY2NlcHRlZFwiIGxpdmUgc2VydmVyLXNpZGU7IHRoaXMgY29tcG9uZW50IG9ubHkgcmVuZGVycyB0aGUgZmluZ2VycHJpbnQpLlxuLy8gU2FtZSA4cHggZG90LCBzYW1lIHBvc2l0aW9uIOKAlCBIT0xMT1cgaW5zdGVhZCBvZiBmaWxsZWQ6IHRyYW5zcGFyZW50XG4vLyBiYWNrZ3JvdW5kICsgYSAxLjVweCByaW5nIElOU0VUIGluIHRoZSBjb25mbGljdCBjb2xvciwgb24gdG9wIG9mIHRoZVxuLy8gZXhpc3RpbmcgMS41cHggd2hpdGUgcmluZyBrZXB0IE9VVFNJREUgZm9yIGNvbnRyYXN0IGFnYWluc3QgYW55IGNhcmRcbi8vIGJhY2tncm91bmQgKHR3byBib3gtc2hhZG93cywgY29tbWEtc2VwYXJhdGVkIOKAlCBubyBleHRyYSBtYXJrdXAgbmVlZGVkKS5cbi8vIE9ubHkgbWVhbmluZ2Z1bCB0b2dldGhlciB3aXRoIC0tb3ZlcmxhcCBvciAtLXVuYXZhaWxhYmxlIGFib3ZlLlxuLnFkbmFwcm8tZXZlbnQtY2FyZF9fY29uZmxpY3QtLWFjY2VwdGVkIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby1ldmVudC1jYXJkX19jb25mbGljdC0tb3ZlcmxhcC5xZG5hcHJvLWV2ZW50LWNhcmRfX2NvbmZsaWN0LS1hY2NlcHRlZCB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDEuNXB4ICNmZmYsIGluc2V0IDAgMCAwIDEuNXB4IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKTtcbn1cbi5xZG5hcHJvLWV2ZW50LWNhcmRfX2NvbmZsaWN0LS11bmF2YWlsYWJsZS5xZG5hcHJvLWV2ZW50LWNhcmRfX2NvbmZsaWN0LS1hY2NlcHRlZCB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDEuNXB4ICNmZmYsIGluc2V0IDAgMCAwIDEuNXB4IHZhcigtLWMtd2Fybi1yZWQtNTAwKTtcbn1cbiIsIi8vIHFkbmFwcm8tZXhwb3J0LW1vZGFsXG4vLyBcIkN1c3RvbWl6ZSBUYWJsZSBDb2x1bW5zXCIgLyBleHBvcnQgbW9kYWw6IHR3by1wYW5lbCB0cmFuc2ZlciBsaXN0IHdpdGhcbi8vIHBlci1jb2x1bW4gbXVsdGktc29ydC4gTGlnaHQgRE9NLCBjbGFzc2VzIHByZWZpeGVkIC5xcGVtLS5cbi8vIENvbG91cnMgdXNlIHRoZSBzaGFyZWQgZGVzaWduIHRva2VucyAoc2Nzcy9jb21wb25lbnRzL3YyL2Rlc2lnbi10b2tlbnMpLlxuLy9cbi8vIERlIFNDSElMIChzY3JpbSwgZ3JpanMgZnJhbWUsIHdpdCB2ZW5zdGVyLCBrb3AsIGJvZHksIHZvZXQpIGtvbXQgdWl0XG4vLyBjb21wb25lbnRzL3YyL292ZXJsYXktc2hlbGw6IC5xb3MtKi4gSGllciBzdGFhdCBhbGxlZW4gZGUgSU5IT1VELiBUb3Rcbi8vIDE5LjA4LjIwMjYgc3RvbmQgZGUgc2NoaWwgaGllciBhbHMgZWlnZW4ga29waWUsIG1ldCB6LWluZGV4IDEwODAgKG9uZGVyIGFsbGVzXG4vLyB3YXQgb3AgOTAwMCsgeml0KSBlbiB6b25kZXIgZGFyayBtb2RlLlxuXG5xZG5hcHJvLWV4cG9ydC1tb2RhbCB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIC8vIERlIGhvc3QgaXMgZGUgdmFzdGUgbGFhZyBvdmVyIGRlIHBhZ2luYSAoemVsZmRlIGRyaWUgcmVnZWxzIGFscyAucW9zLXJvb3QpO1xuICAgIC8vIGRlIHNjcmltIGRhYXJiaW5uZW4gaXMgYWJzb2x1dGUuIFppZSBkZSB1aXRsZWcgaW4gX292ZXJsYXktc2hlbGwuc2NzczogZWVuXG4gICAgLy8gZml4ZWQgc2NyaW0gcmVrZW50IHppam4gaW5zZXQgYWYgdGVnZW4gZWVuIGNvbnRhaW5pbmcgYmxvY2sgZGF0IG5pZXQgYWx0aWpkXG4gICAgLy8gaGV0IHZlbnN0ZXIgaXMuXG4gICAgJltvcGVuXSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICB6LWluZGV4OiB2YXIoLS1vdmVybGF5LXopO1xuICAgIH1cblxuICAgIC8vIEJyZWVkdGUtcGxhZm9uZCB2YW4gaGV0IGZyYW1lLiA3NjBweCBpcyBkZSBtYWF0IGRpZSBkaXQgdmVuc3RlciBhbHRpamQgaGFkO1xuICAgIC8vIGRlIG1hYXRsYWRkZXIgdmFuIHFkbmFwcm8tbW9kYWwgKDQwMC81NjAvODAwLzEwMDAvMTEwMCkga2VudCBoZW0gbmlldCwgZHVzXG4gICAgLy8gZGl0IGlzIGJld3VzdCBlZW4gZWlnZW4gd2FhcmRlIGVuIGdlZW4gbGFkZGVyLW1hYXQuXG4gICAgLy8gVkFTVEUgaG9vZ3RlICgxOS4wOC4yMDI2KTogZWVyc3QgZ3JvZWlkZSBkZSBtb2RhbCBtZXQgZGUga29sb21tZW5saWpzdCBtZWVcbiAgICAvLyBlbiBzY3JvbGRlIGRlIGhlbGUgYm9keSwgd2FhcmRvb3IgZGUgcGlqbHRqZXMgZW4gZGUgdm9ldCBiaWogZWVuIGxhbmdlXG4gICAgLy8gbGlqc3QgdWl0IGJlZWxkIGxpZXBlbi4gTnUgc3RhYW4ga29wLCB2b29yaW5zdGVsbGluZy1yZWdlbCBlbiB2b2V0IHZhc3QgZW5cbiAgICAvLyBzY3JvbGxlbiBhbGxlZW4gZGUgdHdlZSBrb2xvbWxpanN0ZW4sIGVsayBpbiBodW4gZWlnZW4gcGFuZWVsLlxuICAgIC5xb3MtZGlhbG9nIHtcbiAgICAgICAgLS1xb3MtdzogNzYwcHg7XG4gICAgICAgIGhlaWdodDogbWluKDcyMHB4LCBjYWxjKDEwMHZoIC0gNDhweCkpO1xuICAgIH1cblxuICAgIC5xb3MtYm9keSB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgLy8gUGFnaW5hYnJlZGUgaDItcmVnZWxzIChtYXJnZXMsIGxldHRlcmFmc3RhbmQpIHRyZWtrZW4gZGUgdGl0ZWwgc2NoZWVmIGVuXG4gICAgLy8gdWl0IGhldCBtaWRkZW4gbmFhc3QgaGV0IGljb29uOyAhaW1wb3J0YW50IG9tIGRlemVsZmRlIHJlZGVuIGFscyBkZVxuICAgIC8vIEJvb3RzdHJhcC1hZndlZXIgaW4gX21vZGFsLnNjc3MuXG4gICAgaDIucW9zLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnFvcy1oZWFkIHsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4gICAgLy8gRGUgdWl0bGVnICh2b29yaGVlbiBlZW4gaW50cm8temluIHBsdXMgdHdlZSBidWxsZXRzIGRpZSB+MTAwcHgga29zdHRlbilcbiAgICAvLyB6aXQgYWxzIHRvb2x0aXAgYWNodGVyIGRpdCBpbmZvLWtub3BqZSBuYWFzdCBkZSB0aXRlbC5cbiAgICAucXBlbS1pbmZvIHsgZmxleC1zaHJpbms6IDA7IH1cblxuICAgIC8vIC0tLS0gdm9vcmluc3RlbGxpbmdlbiAocGVyc29vbmxpamtlIGtvbG9ta2V1emVzKSAtLS0tXG4gICAgLy8gQWxsZWVuIHppY2h0YmFhciBtZXQgaGV0IGF0dHJpYnV1dCBgcHJlc2V0cy1lbmFibGVkYCBvcCBkZSBob3N0OyB6b25kZXJcbiAgICAvLyBkYXQgYXR0cmlidXV0IHJlbmRlcnQgaGV0IGNvbXBvbmVudCBkZXplIGJhbGsgaGVsZW1hYWwgbmlldC5cbiAgICAvLyBDb21wYWN0ZSByZWdlbCwgZ2VlbiBncmlqemUgZG9vcyBtZWVyOiBkaWUga29zdHRlIGhvb2d0ZSBkaWUgZGVcbiAgICAvLyBrb2xvbW1lbmxpanN0ZW4gaGFyZGVyIG5vZGlnIGhlYmJlbi5cbiAgICAucXBlbS1wcmVzZXRzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG5cbiAgICAucXBlbS1wcmVzZXRzLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAvLyBEZSBrZXV6ZWxpanN0IG1hZyBkZSBiYWxrIHZ1bGxlbiwgbWFhciBuaWV0IGRlIHR3ZWUga25vcHBlbiB3ZWdkdXdlbi5cbiAgICAucXBlbS1wcmVzZXRzLWZpZWxkIHtcbiAgICAgICAgZmxleDogMCAxIDI4MHB4O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLy8gTm9nIG5pZXRzIGJld2FhcmQ6IGVlbiB6aW4gaW4gcGxhYXRzIHZhbiBlZW4gbGVnZSBrZXV6ZWxpanN0LlxuICAgIC5xcGVtLXByZXNldHMtZW1wdHkge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIH1cblxuICAgIC8vIEhldCB2YWsgbmFhc3QgZGUga2V1emVsaWpzdDogXCJOaWV0IG9wZ2VzbGFnZW5cIiArIGRlIG9wc2xhYW4tbGluayAoaWRlZSBCKS5cbiAgICAucXBlbS1wcmVzZXRzLW1ldGEge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZmxleDogMTtcbiAgICB9XG5cbiAgICAucXBlbS1wcmVzZXRzLWRpcnR5IHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuXG4gICAgLy8gYHFkbmFwcm8taWNvbi1idG5gIHpldCB6aWpuIGVpZ2VuIGBkaXNwbGF5OiBpbmxpbmUtZmxleGAgdmlhIGVlbiBrbGFzc2Ugb3BcbiAgICAvLyBkZSBob3N0LCBlbiBkaWUgd2ludCB2YW4gZGUgYnJvd3NlcnJlZ2VsIGFjaHRlciBoZXQgYGhpZGRlbmAtYXR0cmlidXV0LlxuICAgIC8vIFpvbmRlciBkZXplIHJlZ2VsIGJsaWpmdCBkZSBwcnVsbGVuYmFrIHppY2h0YmFhciB0ZXJ3aWpsIGVyIG5pZXRzIGdla296ZW5cbiAgICAvLyBpcyDigJQgaGV0emVsZmRlIHNvb3J0IHZhbHN0cmlrIGFscyBCb290c3RyYXBzIGBkLWZsZXhgIG9wIGVlbiB2aWV3LXJvb3QuXG4gICAgLnFwZW0tcHJlc2V0cyBxZG5hcHJvLWljb24tYnRuW2hpZGRlbl0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5xcGVtLXByZXNldC1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgbWFyZ2luOiAtOHB4IDAgMTZweDtcbiAgICAgICAgcGFkZGluZzogMCAxMnB4O1xuXG4gICAgICAgICZbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgICBxZG5hcHJvLWlucHV0IHsgZmxleDogMTsgbWluLXdpZHRoOiAwOyB9XG4gICAgfVxuXG4gICAgLnFwZW0tcHJlc2V0LWNvbmZpcm0ge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtZ3JleS02MDApO1xuICAgIH1cblxuICAgIC8vIC0tLS0gcGFuZWxzIC0tLS1cbiAgICAucXBlbS1wYW5lbHMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvIDFmcjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG5cbiAgICAucXBlbS1wYW5lbCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLy8gS29wIGVuIGFsbGVzLXNlbGVjdGVyZW4gb3AgRUVOIHJlZ2VsOyBrbGVpbiwgZGUgbGlqc3QgaXMgZGUgaG9vZmR6YWFrLlxuICAgIC8vIERlIGFsbGVzLXNlbGVjdGVyZW4tY2hlY2tib3ggc3RhYXQgTElOS1MsIHJlY2h0IGJvdmVuIGRlIGNoZWNrYm94ZXMgaW4gZGVcbiAgICAvLyByaWplbiAoMTNweCA9IGRlIGNoaXAtcmFuZCBwbHVzIHppam4gbGlua2VycGFkZGluZyksIHpvZGF0IGRlIGtvbG9tXG4gICAgLy8gY2hlY2tib3hlcyBlZW4gZ2VoZWVsIGlzLlxuICAgIC5xcGVtLXBhbmVsLWhlYWQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEzcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICAgIH1cblxuXG4gICAgLnFwZW0tZW1wdHkge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIH1cblxuICAgIC5xcGVtLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDVweDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLWhlaWdodDogODBweDtcbiAgICB9XG5cbiAgICAvLyAtLS0tIGNoaXBzIC0tLS1cbiAgICAucXBlbS1jaGlwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDVweCA4cHggNXB4IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTtcbiAgICAgICAgY3Vyc29yOiBncmFiO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmbGV4LXNocmluazogMDtcblxuICAgICAgICAvLyBTbGVlcC1hZmZvcmRhbmNlOiBoZXQgcGFhcnNlIGFjY2VudGJhbGtqZSBvcCBob3ZlciwgemVsZmRlIHRhYWwgYWxzXG4gICAgICAgIC8vIHFkbmFwcm8tYW5zd2VyLW9wdGlvbiAoNHB4LCBsaW5rcywgLS1jLWFjdGlvbi01MDApLiBIZXQgbG9zc2VcbiAgICAgICAgLy8gZ3JpcC1pY29vbiBkYXQgaGllciBzdG9uZCBpcyB3ZWcuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogNHB4O1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICB3aWR0aDogNHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGVhc2U7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXI6OmJlZm9yZSB7IG9wYWNpdHk6IDE7IH1cblxuICAgICAgICAvLyBUaWpkZW5zIGRlIHNsZWVwOiBoZXQgb3JpZ2luZWVsIHdvcmR0IFwib3BnZXRpbGRcIiAodmVyZHdpam50IHVpdCBkZVxuICAgICAgICAvLyBsaWpzdCk7IGhldCBzY2h1aXZlbmRlIGdhdCAoLnFwZW0tZ2FwKSB0b29udCB3YWFyIGhpaiBsYW5kdC5cbiAgICAgICAgJi0tbGlmdGVkIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgICAgIC8vIEFjdGllZiA9IHBhYXJzLCB2ZXJib3JnZW4gPSBncmlqczogZGUga2xldXIgSVMgZGUgc3RhdHVzLiBaZWxmZGVcbiAgICAgICAgLy8gbGF2ZW5kZWwgYWxzIGhldCBvb3JzcHJvbmtlbGlqa2Ugb250d2VycC5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc2Vjb25kYXJ5LXB1cnBsZSwgI2U2ZTlmZik7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoNjQsIDczLCAxNTQsIDAuMTgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUnVpbWVyIHJhYWt2bGFrIG9wIGRlIGNoZWNrYm94ZXM6IGhldCBrbGlrdmxhayBzdGVla3QgOHB4IGJ1aXRlbiBoZXRcbiAgICAvLyB6aWNodGJhcmUgdmFramUuIFpvbmRlciBkaXQgYmVnb24gZWVuIGtsaWsgbWV0IGVlbiBtaW5pYmV3ZWdpbmcgYWxzIGdyYWJcbiAgICAvLyBlbiBnaW5nIGhldCB2aW5ramUgdmVybG9yZW4gKHNhbWVuIG1ldCBkZSBkcmFnc3RhcnQtZ3VhcmQgaW4gZGUgSlMpLlxuICAgIC5xcGVtLWNoaXAgcWRuYXByby1jaGVja2JveCxcbiAgICAucXBlbS1wYW5lbC1oZWFkIHFkbmFwcm8tY2hlY2tib3gge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgaW5zZXQ6IC04cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucXBlbS1jaGlwLWxhYmVsIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICAvLyBTb3J0ZWVya25vcCBpcyBlZW4gZWNodGUgcWRuYXByby1pY29uLWJ0bi4gU3R5bGluZyB2aWEgW2RhdGEtc29ydF0gZW4gbmlldFxuICAgIC8vIHZpYSBlZW4ga2xhc3NlOiBkZSBpY29uLWJ0biB2ZWVndCBiaWogZWVuIHJlLXJlbmRlciB6aWpuIGtsYXNzZW4gc2Nob29uXG4gICAgLy8gKGNsYXNzbmFtZS13aXBlKSwgZWVuIGRhdGEtYXR0cmlidXV0IG92ZXJsZWVmdCBkYXQuIEdlZW4gc29ydGVyaW5nID0gZ2VkaW1kLlxuICAgIC5xcGVtLWNoaXAgcWRuYXByby1pY29uLWJ0bltkYXRhLXNvcnQ9XCJub25lXCJdIHsgY29sb3I6IHZhcigtLWMtZ3JleS00MDApOyB9XG5cbiAgICAvLyBCZXdhYXItcG9wb3ZlciBvbmRlcmluICgyODBweCBkZWZhdWx0IGlzIGVlbiBtZW51LW1hYXQ7IGRpdCBpcyBlZW5cbiAgICAvLyBtaW5pLWZvcm11bGllciwgZHVzIGRlIGhvc3QgemV0IGRlIGJyZWVkdGUg4oCUIHZhbGt1aWwgMSB1aXQgZGVcbiAgICAvLyBwb3BvdmVyLXNraWxsKS5cbiAgICBxZG5hcHJvLXBvcG92ZXJbZGF0YS1xcGVtLXNhdmVdIHtcbiAgICAgICAgd2lkdGg6IG1pbig5MnZ3LCAzMjBweCk7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTBweDtcbiAgICB9XG5cbiAgICAucXBlbS1wb3AtdGV4dCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xuICAgIH1cblxuICAgIC5xcGVtLXBvcC1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgIH1cblxuICAgIC8vIEhldCBnYXQgd2FhciBkZSBnZXNsZWVwdGUgcmlqIGdhYXQgbGFuZGVuLiBEZSBKUyB6ZXQgZGUgaG9vZ3RlICgwIC0+IGRlXG4gICAgLy8gaG9vZ3RlIHZhbiBkZSBnZXNsZWVwdGUgcmlqKTsgZGV6ZSB0cmFuc2l0aW9uIGxhYXQgZGUgYW5kZXJlIHJpamVuXG4gICAgLy8gemljaHRiYWFyIHJ1aW10ZSBtYWtlbiB0aWpkZW5zIGhldCBzbGVwZW4uXG4gICAgLnFwZW0tZ2FwIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJvcmRlcjogMS41cHggZGFzaGVkIHJnYmEoNzAsIDgyLCAyNDMsIDAuNDUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMDYpO1xuICAgICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMTMwbXMgZWFzZTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIG1vdmVycyAtLS0tXG4gICAgLnFwZW0tbW92ZXJzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICB9XG5cblxuICAgIC8vIG5hcnJvdyBzY3JlZW5zOiBzdGFjayBwYW5lbHMsIG1vdmVycyBiZWNvbWUgYSBob3Jpem9udGFsIHJvd1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgICAucXBlbS1wYW5lbHMge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIH1cbiAgICAgICAgLnFwZW0tbW92ZXJzIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tbW9udGgtZ3JpZCDigJQgQXBwbGUtc3R5bGUgbW9udGggdmlldyAoUFdBIGNhbGVuZGFyIE00KVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgUUROQSB0b2tlbnMgdXNlZCAoY2hpcCBwYWxldHRlID0gdGhlIGV2ZW50LWNhcmQgcGFsZXR0ZSwgMToxKTpcbi8vICAgIC0tYy1wdXJwbGUtNTAgLyAtLWMtcHVycGxlLTUwMCAgICAgICAgICBwbGFubmVkXG4vLyAgICAtLWMtc2lnbmFsLW9yYW5nZS1iZyAvIC10ZXh0ICAgICAgICAgICAgaW5wcm9ncmVzc1xuLy8gICAgLS1jLXNpZ25hbC1ncmVlbi0xMDAgLyAtLWMtc2lnbmFsLWdyZWVuLXRleHQgICBjb21wbGV0ZVxuLy8gICAgLS1jLXNpZ25hbC1yZWQtYmcgLyAtLWMtc2lnbmFsLXJlZC10ZXh0ICAgICAgICBvdmVyZHVlXG4vLyAgICAtLWMtZ3JleS01MCAvIC0tYy1ncmV5LTYwMCAgICAgICAgICAgICAgYmxvY2tlZFxuLy8gICAgLS1jLXNpZ25hbC1waW5rLWJnIC8gLS1jLXNpZ25hbC1waW5rLXRleHQgICAgICBwZXJzb25hbFxuLy8gICAgLS1jLWJvcmRlci1zb2Z0LTIgIHJhc3RlciBsaW5lcyAgIC0tYy1ncmV5LTUwMCAgd2Vla2RheSBoZWFkZXIvb3V0c2lkZSBkYXlzXG4vLyAgTGF5b3V0OiA3IGVxdWFsIGNvbHVtbnMsIHdlZWtzIGFzIHJvd3MsIGRheSBudW1iZXIgb24gdG9wLCB0aGVuIChpZiB0aGVcbi8vICB3ZWVrIHJvdyBoYXMgYW55IG11bHRpLWRheSBzcGFuKSBhbiBpbnZpc2libGUgbGFuZS1zcGFjZXIgc3RhY2sgdGhhdFxuLy8gIHJlc2VydmVzIHRoZSBiYXIncyB2ZXJ0aWNhbCBzcGFjZSwgdGhlbiB0aGUgc2luZ2xlLWRheSBjaGlwcywgdGhlbiBcIitOXCJcbi8vICBvdmVyZmxvdy4gVGhlIEJBUlMgdGhlbXNlbHZlcyBhcmUgYSByb3ctbGV2ZWwgYWJzb2x1dGUgb3ZlcmxheSBkcmF3blxuLy8gIE9WRVIgdGhlIGNlbGxzL2JvcmRlcnMgKG9uZSBjb250aW51b3VzIGVsZW1lbnQgcGVyIHNwYW4gc2VnbWVudCwgbm90XG4vLyAgc2xpY2VkIHBlciBkYXkg4oCUIHNlZSAucWRuYXByby1tb250aC1ncmlkX19iYXItb3ZlcmxheSkgc28gYSBtdWx0aS1kYXlcbi8vICBzcGFuIHJlYWRzIGFzIG9uZSBzaGFwZSwgR29vZ2xlLXN0eWxlLiBUb2RheSA9IEZVTEwgZmlsbGVkIGNpcmNsZSBvbiB0aGVcbi8vICBudW1iZXIgYW5kIGl0IGtlZXBzIHRoYXQgZmlsbCBldmVuIHdoZW4gaXQgaXMgdGhlIHNlbGVjdGVkIGRheTsgYSBzZWxlY3RlZFxuLy8gIGRheSBvdGhlciB0aGFuIHRvZGF5ID0gTElHSFRFUiBmaWxsIChLaW0gMjkuMDcuMjAyNiwgR29vZ2xlIENhbGVuZGFyIG1vZGVsXG4vLyAg4oCUIHNlZSB0aGUgcnVsZXMgZnVydGhlciBkb3duOyB0aGlzIHVzZWQgdG8gYmUgdGhlIG90aGVyIHdheSByb3VuZCkuXG4vLyAgQmFycy9jaGlwcyBzaGFyZSB0aGUgc2FtZSBjb2xvdXIgdm9jYWJ1bGFyeVxuLy8gICgtLW1vbnRoLWdyaWQtY2hpcC1iZy8tdGV4dCBjdXN0b20gcHJvcGVydGllcyArIHN0YXR1cyBtb2RpZmllciBzdWZmaXgpLlxuLy8gIEZMQVQgQ1NTOyBzeW5jZWQgdG8gdGhlIFBXQSB2aWEgc3luYy12Mi1jb21wb25lbnRzLmpzLlxuXG4vLyBTaGFyZWQgbGF5b3V0IGNvbnN0YW50cyBmb3IgdGhlIG11bHRpLWRheSBCQVIgT1ZFUkxBWSAoMjAuMDcuMjAyNiByZXdvcmspXG4vLyDigJQgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3IgYm90aCB0aGUgaW4tZmxvdyBzcGFjZXIgc3RhY2sgKGNlbGxcbi8vIHBhZGRpbmcvZGF5LW51bWJlci9sYW5lIHNpemluZyBiZWxvdykgYW5kIHRoZSByb3ctbGV2ZWwgb3ZlcmxheSdzIGB0b3BgXG4vLyBmb3JtdWxhLCBzbyB0aGUgb3ZlcmxheSBhbHdheXMgbGluZXMgdXAgd2l0aCBpdHMgbGFuZSdzIHNwYWNlciB3aXRob3V0XG4vLyBhbnkgSlMgbWVhc3VyZW1lbnQsIGhvd2V2ZXIgdGFsbCAtLW1vbnRoLWdyaWQtY2VsbCBtYWtlcyB0aGUgY2VsbCAoc2VlXG4vLyB0aGUgZG9jYmxvY2sgaW4gcWRuYS1tb250aC1ncmlkLmpzIGZvciB0aGUgZnVsbCByZWFzb25pbmcpLlxuJG1nLWNlbGwtcGFkLXRvcDogMnB4O1xuJG1nLWRheW51bS1zaXplOiAyNHB4O1xuJG1nLWRheW51bS1tYXJnaW4tYjogMnB4O1xuJG1nLWJhci1oZWlnaHQ6IDEzcHg7XG4kbWctYmFyLWdhcDogMXB4O1xuJG1nLWJhci1pbnNldDogMnB4OyAvLyBtYXRjaGVzIC0tYmFyLWluc2V0LWwvLXIgc2V0IGluIHFkbmEtbW9udGgtZ3JpZC5qc1xuLy8gVG9wIG9mZnNldCBvZiBsYW5lIDAncyBzcGFjZXIvb3ZlcmxheSwgbWVhc3VyZWQgZnJvbSB0aGUgcm93J3MgdG9wIGVkZ2VcbiRtZy1iYXItdG9wLWJhc2U6ICRtZy1jZWxsLXBhZC10b3AgKyAkbWctZGF5bnVtLXNpemUgKyAkbWctZGF5bnVtLW1hcmdpbi1iO1xuLy8gVmVydGljYWwgc3RlcCBiZXR3ZWVuIGNvbnNlY3V0aXZlIGxhbmVzXG4kbWctYmFyLWxhbmUtc3RlcDogJG1nLWJhci1oZWlnaHQgKyAkbWctYmFyLWdhcDtcblxuLnFkbmFwcm8tbW9udGgtZ3JpZCB7XG4gIC8vIERheS1jZWxsIG1pbi1oZWlnaHQg4oCUIHRoZSBkZW5zaXR5IGhvb2tcbiAgLS1tb250aC1ncmlkLWNlbGw6IDY0cHg7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vLyBDb21wYWN0IGhlYWRlciByb3cgKEQsIDI5LjA3LjIwMjYpIOKAlCBtb250aCBuYW1lL3llYXIgKyBwcmV2L25leHQgbW9udGhcbi8vIG5hdiwgcmVuZGVyZWQgb25seSB3aGVuIHRoZSBgaGVhZGVyYCBhdHRyaWJ1dGUgaXMgc2V0LiBSZXBsYWNlcyB0aGVcbi8vIHN0YW5kYWxvbmUgbW9udGgtc3RyaXAgbmF2aWdhdGlvbiB0aGlzIGdyaWQgdXNlZCB0byBzaXQgdW5kZXIuIENoZXZyb25zXG4vLyBhcmUgPHFkbmFwcm8taWNvbj4gKEYsIDI5LjA3LjIwMjYg4oCUIHRoaXMgY29tcG9uZW50J3MgZmlyc3QgY29tcG9uZW50XG4vLyBkZXBlbmRlbmN5LCBzZWUgdGhlIERFUEVOREVOQ1kgTk9URSBpbiBxZG5hLW1vbnRoLWdyaWQuanMncyBkb2NibG9jaykuXG4ucWRuYXByby1tb250aC1ncmlkX19oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDJweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMiwgI2U2ZTllZik7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19oZWFkZXItdGl0bGUge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS04MDAsICMxYzFiMjkpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi8vIDQ0eDQ0IENTUy1weCB0b3VjaCB0YXJnZXQgKGhhcmQgbWluaW11bSBmb3IgdGhpcyBjb21wb25lbnQncyBtYW5kYXRlKSDigJRcbi8vIHNpemVkIGRpcmVjdGx5IG9uIHRoZSBidXR0b24gaXRzZWxmIHJhdGhlciB0aGFuIHZpYSBhbiA6OmFmdGVyIGV4cGFuc2lvbixcbi8vIHNpbmNlIHRoZSBidXR0b24gaGFzIG5vIG90aGVyIHNpemUgY29uc3RyYWludCBoZXJlLlxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fbmF2LWJ0biB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS02MDAsICM1NjViNjYpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19uYXYtYnRuIHFkbmFwcm8taWNvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xufVxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fbmF2LWJ0bjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktODAwLCAjMWMxYjI5KTtcbn1cbi8vIHllYXItc3BhbiBmdW5jdGlvbmFsIGJvdW5kYXJ5IChLaW0gMjkuMDcuMjAyNik6IGEgcmVhbCBgZGlzYWJsZWRgIGF0dHJpYnV0ZVxuLy8gKHNldCBpbiBxZG5hLW1vbnRoLWdyaWQuanMncyByZW5kZXIoKSwgbmV2ZXIgQ1NTLW9ubHkpIHdoZW4gdGhlIG5leHQvcHJldlxuLy8gc3RlcCB3b3VsZCBsYW5kIG91dHNpZGUgdGhlIGFsbG93ZWQgc3BhbiDigJQgZGltbWVkIGFuZCBpbmVydCBpbnN0ZWFkIG9mIGFcbi8vIHRhcCB0aGF0IHF1aWV0bHkgZG9lcyBub3RoaW5nLiBgOm5vdCg6ZGlzYWJsZWQpYCBvbiB0aGUgaG92ZXIgcnVsZSBhYm92ZVxuLy8gd291bGQgYWxzbyB3b3JrOyBndWFyZGluZyBoZXJlIGtlZXBzIHRoYXQgcnVsZSdzIG93biBpbnRlbnQgdW5jaGFuZ2VkLlxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fbmF2LWJ0bjpkaXNhYmxlZCB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktMzAwLCAjY2RkMWQ2KTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19uYXYtYnRuOmRpc2FibGVkOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS0zMDAsICNjZGQxZDYpO1xufVxuXG4vLyBXZWVrZGF5IGhlYWRlciByb3cgKE1vbmRheSBmaXJzdCBieSBkZWZhdWx0OyB0aGUgSlMgcm90YXRlcyB0aGUgbGFiZWxcbi8vIG9yZGVyIGF0IHJlbmRlciB0aW1lIHBlciB0aGUgYGZpcnN0LXdlZWtkYXlgIGF0dHJpYnV0ZSwgMTcuMDcuMjAyNiDigJQgcHVyZVxuLy8gbGF5b3V0IGhlcmUsIHVuYWZmZWN0ZWQgYnkgd2hpY2ggd2Vla2RheSBpcyBmaXJzdClcbi5xZG5hcHJvLW1vbnRoLWdyaWRfX3dlZWtkYXlzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMiwgI2U2ZTllZik7XG59XG4ucWRuYXByby1tb250aC1ncmlkX193ZWVrZGF5IHtcbiAgcGFkZGluZzogNnB4IDAgNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI3MjgwKTtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbn1cblxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fd2Vla3Mge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fd2VlayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gcG9zaXRpb25pbmcgY29udGV4dCBmb3IgdGhlIHJvdy1sZXZlbCBiYXIgb3ZlcmxheXNcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMiwgI2U2ZTllZik7XG59XG5cbi8vIEZJTEwgbW9kZSAoQSwgS2ltIDI5LjA3LjIwMjYpOiB0aGUgaG9zdCBzdHJldGNoZXMgdG8gaXRzIGF2YWlsYWJsZSBoZWlnaHRcbi8vIGluc3RlYWQgb2YgZml4ZWQgLS1tb250aC1ncmlkLWNlbGwgcm93cyB3aXRoIGVtcHR5IHNwYWNlIGJlbG93LiBUaGUgd2Vla3Ncbi8vIGNvbHVtbiBhbmQgZWFjaCB3ZWVrIHJvdyBncm93IHZpYSBmbGV4Ym94OyByb3cgQ09OVEVOVCBzdGF5cyBUT1AtYW5jaG9yZWRcbi8vIChubyBhbGlnbi1pdGVtczogY2VudGVyIGFueXdoZXJlIGhlcmUpIGJlY2F1c2UgdGhlIGJhci1vdmVybGF5IGB0b3BgXG4vLyBmb3JtdWxhIGFib3ZlIGlzIGEgZml4ZWQgcGl4ZWwgb2Zmc2V0IGZyb20gdGhlIHJvdydzIHRvcCBlZGdlIOKAlCBjZW50ZXJpbmdcbi8vIHRoZSByb3cgd291bGQgYnJlYWsgdGhhdCBmb3JtdWxhLiBFeHRyYSBoZWlnaHQgYWx3YXlzIGZhbGxzIGFzIGVtcHR5XG4vLyBzcGFjZSBCRUxPVyB0aGUgY29udGVudCwgbmV2ZXIgcmVkaXN0cmlidXRlZCBhYm92ZSBpdC4gLS1tb250aC1ncmlkLWNlbGxcbi8vIHN0YXlzIGluIGZvcmNlIGFzIGEgbWluLWhlaWdodCBSRUFEQUJJTElUWSBGTE9PUiwgbm90IGEgZml4ZWQgc2l6ZS5cbi5xZG5hcHJvLW1vbnRoLWdyaWRbZmlsbF0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4ucWRuYXByby1tb250aC1ncmlkW2ZpbGxdIC5xZG5hcHJvLW1vbnRoLWdyaWRfX3dlZWtzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7IC8vIGxldHMgdGhlIGZsZXggY2hpbGQgc2hyaW5rIGJlbG93IGl0cyBjb250ZW50IHNpemVcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRbZmlsbF0gLnFkbmFwcm8tbW9udGgtZ3JpZF9fd2VlayB7XG4gIGZsZXg6IDEgMSAwO1xuICBtaW4taGVpZ2h0OiB2YXIoLS1tb250aC1ncmlkLWNlbGwpO1xufVxuXG4ucWRuYXByby1tb250aC1ncmlkX19jZWxsIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLWhlaWdodDogdmFyKC0tbW9udGgtZ3JpZC1jZWxsKTtcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nOiAjeyRtZy1jZWxsLXBhZC10b3B9IDJweCAzcHg7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMiwgI2U2ZTllZik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2NlbGw6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogMDtcbn1cblxuLy8gRGF5IG51bWJlciDigJQgY2VudHJlZCBzbWFsbCBjaXJjbGUgc28gc2VsZWN0ZWQvdG9kYXkgc3RhdGVzIGhhdmUgYSBzaGFwZVxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fZGF5bnVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAkbWctZGF5bnVtLXNpemU7XG4gIGhlaWdodDogJG1nLWRheW51bS1zaXplO1xuICBtYXJnaW46IDAgYXV0byAkbWctZGF5bnVtLW1hcmdpbi1iO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktODAwLCAjMWMxYjI5KTtcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2NlbGwtLW91dHNpZGUgLnFkbmFwcm8tbW9udGgtZ3JpZF9fZGF5bnVtIHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS00MDAsICM5Y2EzYWYpO1xufVxuLy8geWVhci1zcGFuIGZ1bmN0aW9uYWwgYm91bmRhcnkgKEtpbSAyOS4wNy4yMDI2KTogYW4gYWRqYWNlbnQtbW9udGggY2VsbFxuLy8gd2hvc2UgT1dOIG1vbnRoIGZhbGxzIG91dHNpZGUgdGhlIGFsbG93ZWQgc3BhbiAoc2VlIHFkbmEtbW9udGgtZ3JpZC5qcydzXG4vLyBgeWVhci1zcGFuYCBkb2NibG9jayBlbnRyeSkgaXMgZGltbWVkIGZ1cnRoZXIgYW5kIGl0cyB0YXAgaXMgcmVmdXNlZCBpblxuLy8gSlMgKF9vbkNsaWNrKSDigJQgdGhlIHZpc3VhbCBtaXJyb3JzIGhvdyBhIGRpc2FibGVkIGNlbGwgcmVhZHMgZWxzZXdoZXJlLFxuLy8gdGhpcyBjb21wb25lbnQganVzdCBoYWQgbm8gcHJpb3IgZGlzYWJsZWQtY2VsbCBjb25jZXB0IHRvIHJldXNlLlxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fY2VsbC0tYmxvY2tlZCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4vLyBUT0RBWSArIFNFTEVDVEVEIHVzZSB0aGUgYWN0aW9uIGNvbG9yIChLaW0sIDIwLjA3LjIwMjYpIHNvIHRoaXMgbWF0Y2hlc1xuLy8gdGhlIGRheS1oZWFkZXIgdG9kYXkgcGlsbCBpbiB0aGUgdGltZS1ncmlkIC8gcmVzb3VyY2UtdGltZWxpbmUgY2FsZW5kYXJcbi8vIHZpZXdzIOKAlCBvbmUgYmx1ZSBcInRvZGF5L3NlbGVjdGVkXCIgbGFuZ3VhZ2UgYWNyb3NzIGV2ZXJ5IGNhbGVuZGFyIG1vZGUuXG4vL1xuLy8gVE9EQVkgdnMgU0VMRUNURUQgcmV3b3JrZWQgMjkuMDcuMjAyNiAoS2ltLCBHb29nbGUgQ2FsZW5kYXIgbW9kZWwpLCBzYW1lXG4vLyBpbnZlcnNpb24gYXMgcWRuYXByby1tb250aC1zdHJpcDogdG9kYXkgb3ducyB0aGUgRlVMTCBmaWxsIGFuZCBrZWVwcyBpdCBldmVuXG4vLyB3aGVuIGl0IGlzIGFsc28gdGhlIHNlbGVjdGVkIGRheSwgd2hpbGUgdGhlIHNlbGVjdGlvbiBnZXRzIGEgTElHSFRFUiBmaWxsIHNvXG4vLyBpdCByZWFkcyBjbGVhcmx5IGFzIFwibm90IHRvZGF5XCIuIEJlZm9yZSB0aGlzLCB0b2RheSB3YXMgb25seSBhIGJvbGQgY29sb3VyZWRcbi8vIG51bWJlciBhbmQgdGhlIHNlbGVjdGlvbiBvd25lZCB0aGUgc29saWQgY2lyY2xlLCB3aGljaCBtYWRlIHRvZGF5IGVhc3kgdG8gbWlzc1xuLy8gb24gYW55IG90aGVyIGRheS4gYDpub3QoLmlzLXRvZGF5KWAgc3RhdGVzIHRoZSBwcmVjZWRlbmNlIGV4cGxpY2l0bHkgcmF0aGVyXG4vLyB0aGFuIGxlYW5pbmcgb24gc291cmNlIG9yZGVyLlxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fY2VsbC5pcy1zZWxlY3RlZDpub3QoLmlzLXRvZGF5KSAucWRuYXByby1tb250aC1ncmlkX19kYXludW0ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXNlY29uZGFyeS1wdXJwbGUsICNlNmU5ZmYpO1xuICBjb2xvcjogdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2NlbGwuaXMtdG9kYXkgLnFkbmFwcm8tbW9udGgtZ3JpZF9fZGF5bnVtIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcbiAgY29sb3I6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8vIE11bHRpLWRheSBTUEFOIGxhbmUgcmVzZXJ2YXRpb24g4oCUIGV2ZXJ5IGNlbGwgaW4gYSB3ZWVrIHJvdyB0aGF0IGhhcyBhbnlcbi8vIHNwYW4gZ2V0cyB0aGUgc2FtZSBudW1iZXIgb2YgaW52aXNpYmxlIHNwYWNlciBzbG90cyAob25lIHBlciBjb25jdXJyZW50XG4vLyBsYW5lIGluIHRoYXQgcm93KSwgcHVyZWx5IHRvIG1ha2UgdGhlIENTUyBHcmlkIHJvdyBhdXRvLWhlaWdodCBpdHNlbGZcbi8vIGFuZCB0byBrZWVwIHRoZSBjaGlwcyBiZWxvdyBhbGlnbmVkIGFjcm9zcyB0aGUgcm93LCB3aXRob3V0IHRvdWNoaW5nXG4vLyAtLW1vbnRoLWdyaWQtY2VsbCdzIG1pbi1oZWlnaHQgY29udHJhY3QuIFRoZSBWSVNJQkxFIGJhciBpdHNlbGYgaXMgbm9cbi8vIGxvbmdlciBoZXJlIOKAlCBzZWUgLnFkbmFwcm8tbW9udGgtZ3JpZF9fYmFyLW92ZXJsYXkgZnVydGhlciBkb3duLCB3aGljaFxuLy8gaXMgYSByb3ctbGV2ZWwgYWJzb2x1dGVseS1wb3NpdGlvbmVkIGVsZW1lbnQgcGVyIHNwYW4gc2VnbWVudCwgcGFpbnRlZFxuLy8gb3ZlciB0aGUgY2VsbHMgKEtpbSdzIDIwLjA3LjIwMjYgdmVyZGljdDogaXQgbXVzdCBsb29rIGxpa2UgT05FXG4vLyBjb250aW51b3VzIGJhciwgbm90IHNsaWNlZCBwZXIgY2VsbC9kYXkpLlxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fYmFycyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogI3skbWctYmFyLWdhcH07XG4gIG1pbi13aWR0aDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXB4O1xufVxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fYmFyLFxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fYmFyLXNwYWNlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6ICN7JG1nLWJhci1oZWlnaHR9O1xuICBtaW4td2lkdGg6IDA7XG59XG4vLyBTcGFjZXIg4oCUIHJlc2VydmVzIHRoZSBsYW5lJ3MgdmVydGljYWwgc3BhY2UgaW4gZXZlcnkgY2VsbCBvZiB0aGUgcm93XG4vLyAod2hldGhlciBvciBub3QgdGhpcyBwYXJ0aWN1bGFyIGRheSBpcyBjb3ZlcmVkIGJ5IGEgc3BhbiBpbiB0aGF0IGxhbmUpLFxuLy8gc28gY2hpcHMgc3RheSBhbGlnbmVkIGFjcm9zcyB0aGUgcm93OyBuZXZlciBwYWludGVkIG9yIHRhcHBhYmxlLlxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fYmFyLXNwYWNlciB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2JhciB7XG4gIC8vIFNhbWUgc3RhdHVzIHZhcmlhYmxlcyB0aGUgY2hpcHMgdXNlIOKAlCBpZGVudGljYWwgY29sb3VyIHZvY2FidWxhcnksXG4gIC8vIHJldXNlZCAxOjEgKHNlZSB0aGUgbW9kaWZpZXJzIGJlbG93IGFuZCB0aGUgY2hpcCBtb2RpZmllcnMgZnVydGhlciBkb3duKS5cbiAgLS1tb250aC1ncmlkLWNoaXAtYmc6ICAgdmFyKC0tYy1wdXJwbGUtNTAsICNlNmU5ZmYpO1xuICAtLW1vbnRoLWdyaWQtY2hpcC10ZXh0OiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuXG4gIHBhZGRpbmc6IDAgM3B4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1tb250aC1ncmlkLWNoaXAtYmcpO1xuICBjb2xvcjogdmFyKC0tbW9udGgtZ3JpZC1jaGlwLXRleHQpO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxM3B4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8vIHRoZSBjZWxsIGlzIHRoZSB0YXAgdGFyZ2V0LCBzYW1lIGFzIGNoaXBzXG4gIC8vIEZsYXQgYnkgZGVmYXVsdCDigJQgcm91bmRlZCBvbmx5IGF0IHRoZSBzcGFuJ3MgVFJVRSBzdGFydC9lbmQgKHNlZVxuICAvLyAtLXJvdW5kLXN0YXJ0Ly0tcm91bmQtZW5kIGJlbG93KTsgYSBzZWdtZW50IGNvbnRpbnVpbmcgaW50byB0aGVcbiAgLy8gbmV4dC9wcmV2aW91cyB3ZWVrIHJvdywgb3IgY2xhbXBlZCB0byB0aGUgZ3JpZCBlZGdlLCBzdGF5cyBmbGF0LlxuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLy8gUm93LWxldmVsIG92ZXJsYXkg4oCUIHRoZSBPTkUgY29udGludW91cyBlbGVtZW50IHBlciBzcGFuIHNlZ21lbnQsXG4vLyBwb3NpdGlvbmVkIG92ZXIgdGhlIGNlbGxzL2JvcmRlcnMgaW5zdGVhZCBvZiBsaXZpbmcgaW5zaWRlIGEgY2VsbC5cbi8vIGBsZWZ0YC9gd2lkdGhgIGFyZSBmcmFjdGlvbnMgb2YgdGhlIHJvdydzIDcgZXF1YWwgY29sdW1ucyAoZXhhY3QgYmVjYXVzZVxuLy8gLnFkbmFwcm8tbW9udGgtZ3JpZF9fd2VlayBoYXMgbm8gY29sdW1uIGdhcCBhbmQgY2VsbHMgYXJlIGJveC1zaXppbmc6XG4vLyBib3JkZXItYm94LCBzbyBhIGNlbGwncyBib3JkZXItcmlnaHQgbmV2ZXIgc2hpZnRzIGEgY29sdW1uIGVkZ2UpOyB0aGVcbi8vIHNtYWxsIC0tYmFyLWluc2V0LSogcHVsbHMgYSByb3VuZGVkIGVuZCBpbiBzbGlnaHRseSBzbyB0aGUgcGlsbCByZWFkcyBhc1xuLy8gYSBwaWxsIGluc3RlYWQgb2YgdG91Y2hpbmcgdGhlIGNlbGwgZWRnZSwgd2hpbGUgZmxhdCAocm93LXdyYXAvY2xhbXApXG4vLyBlbmRzIHN0YXkgZmx1c2guIGB0b3BgIHVzZXMgdGhlIFNBTUUgY29uc3RhbnRzIGFzIHRoZSBjZWxsIHBhZGRpbmcvXG4vLyBkYXktbnVtYmVyIHNpemluZyBhYm92ZSwgc28gaXQgYWx3YXlzIGxpbmVzIHVwIHdpdGggdGhpcyBzcGFuJ3MgbGFuZVxuLy8gc3BhY2VyIHJlZ2FyZGxlc3Mgb2YgaG93IHRhbGwgLS1tb250aC1ncmlkLWNlbGwgbWFrZXMgdGhlIGNlbGwgKGdyb3dpbmdcbi8vIHRoZSBjZWxsIG9ubHkgYWRkcyBlbXB0eSBzcGFjZSBiZWxvdyB0aGUgdG9wLWFuY2hvcmVkIGNvbnRlbnQpLlxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fYmFyLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIHRvcDogY2FsYygjeyRtZy1iYXItdG9wLWJhc2V9ICsgdmFyKC0tYmFyLWxhbmUsIDApICogI3skbWctYmFyLWxhbmUtc3RlcH0pO1xuICBsZWZ0OiBjYWxjKCgxMDAlIC8gNykgKiB2YXIoLS1iYXItc3RhcnQtY29sLCAwKSArIHZhcigtLWJhci1pbnNldC1sLCAwcHgpKTtcbiAgd2lkdGg6IGNhbGMoKDEwMCUgLyA3KSAqIHZhcigtLWJhci1zcGFuLWNvbHMsIDEpIC0gdmFyKC0tYmFyLWluc2V0LWwsIDBweCkgLSB2YXIoLS1iYXItaW5zZXQtciwgMHB4KSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLy8gRGltcyBhIHNlZ21lbnQgdGhhdCBpcyBFTlRJUkVMWSB3aXRoaW4gYWRqYWNlbnQtbW9udGggKG91dHNpZGUpIGRheXMg4oCUXG4vLyB0aGUgb3ZlcmxheSBpcyBhIHNpYmxpbmcgb2YgdGhlIGNlbGxzIG5vdywgbm90IGEgZGVzY2VuZGFudCwgc28gaXQgY2FuJ3Rcbi8vIHBpY2sgdXAgLnFkbmFwcm8tbW9udGgtZ3JpZF9fY2VsbC0tb3V0c2lkZSB2aWEgdGhlIGRlc2NlbmRhbnQgc2VsZWN0b3Jcbi8vIHRoZSBjaGlwcy9tb3JlIHN0aWxsIHVzZSBmdXJ0aGVyIGRvd24uXG4ucWRuYXByby1tb250aC1ncmlkX19iYXItLWRpbW1lZCB7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19iYXItLXJvdW5kLXN0YXJ0IHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19iYXItLXJvdW5kLWVuZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19iYXItbGFiZWwge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2Jhci0taW5wcm9ncmVzcyB7XG4gIC0tbW9udGgtZ3JpZC1jaGlwLWJnOiAgIHZhcigtLWMtc2lnbmFsLW9yYW5nZS1iZywgI2ZkZWFkYyk7XG4gIC0tbW9udGgtZ3JpZC1jaGlwLXRleHQ6IHZhcigtLWMtc2lnbmFsLW9yYW5nZS10ZXh0LCAjYmM2YTFmKTtcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2Jhci0tY29tcGxldGUge1xuICAtLW1vbnRoLWdyaWQtY2hpcC1iZzogICB2YXIoLS1jLXNpZ25hbC1ncmVlbi0xMDAsICNkOGY0ZTMpO1xuICAtLW1vbnRoLWdyaWQtY2hpcC10ZXh0OiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTtcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2Jhci0tb3ZlcmR1ZSB7XG4gIC0tbW9udGgtZ3JpZC1jaGlwLWJnOiAgIHZhcigtLWMtc2lnbmFsLXJlZC1iZywgI2ZlZTNlMyk7XG4gIC0tbW9udGgtZ3JpZC1jaGlwLXRleHQ6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2Jhci0tYmxvY2tlZCB7XG4gIC0tbW9udGgtZ3JpZC1jaGlwLWJnOiAgIHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG4gIC0tbW9udGgtZ3JpZC1jaGlwLXRleHQ6IHZhcigtLWMtZ3JleS02MDAsICM1NjViNjYpO1xufVxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fYmFyLS1wZXJzb25hbCB7XG4gIC0tbW9udGgtZ3JpZC1jaGlwLWJnOiAgIHZhcigtLWMtc2lnbmFsLXBpbmstYmcsICNmNmUxZTgpO1xuICAtLW1vbnRoLWdyaWQtY2hpcC10ZXh0OiB2YXIoLS1jLXNpZ25hbC1waW5rLXRleHQsICNiMjU3NzcpO1xufVxuXG4vLyBDaGlwcyDigJQgdGlueSBzdGF0dXMtY29sb3VyZWQgYmFycywgdGhlIGV2ZW50LWNhcmQgcGFsZXR0ZS4gRGVsaWJlcmF0ZWx5XG4vLyBOT1QgdG91Y2ggdGFyZ2V0cyAodG9vIHNtYWxsKTsgYSBjaGlwIHRhcCBzZWxlY3RzIGl0cyBkYXkgbGlrZSB0aGUgY2VsbC5cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2NoaXBzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxcHg7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2NoaXAge1xuICAvLyBTdGF0dXMgdmFyaWFibGVzIOKAlCBwbGFubmVkIChwdXJwbGUpIGlzIHRoZSBkZWZhdWx0LCBsaWtlIHRoZSBldmVudC1jYXJkXG4gIC0tbW9udGgtZ3JpZC1jaGlwLWJnOiAgIHZhcigtLWMtcHVycGxlLTUwLCAjZTZlOWZmKTtcbiAgLS1tb250aC1ncmlkLWNoaXAtdGV4dDogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nOiAxcHggM3B4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLW1vbnRoLWdyaWQtY2hpcC1iZyk7XG4gIGNvbG9yOiB2YXIoLS1tb250aC1ncmlkLWNoaXAtdGV4dCk7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEzcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgLy8gdGhlIGNlbGwgaXMgdGhlIHRhcCB0YXJnZXRcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2NoaXAtLWlucHJvZ3Jlc3Mge1xuICAtLW1vbnRoLWdyaWQtY2hpcC1iZzogICB2YXIoLS1jLXNpZ25hbC1vcmFuZ2UtYmcsICNmZGVhZGMpO1xuICAtLW1vbnRoLWdyaWQtY2hpcC10ZXh0OiB2YXIoLS1jLXNpZ25hbC1vcmFuZ2UtdGV4dCwgI2JjNmExZik7XG59XG4ucWRuYXByby1tb250aC1ncmlkX19jaGlwLS1jb21wbGV0ZSB7XG4gIC0tbW9udGgtZ3JpZC1jaGlwLWJnOiAgIHZhcigtLWMtc2lnbmFsLWdyZWVuLTEwMCwgI2Q4ZjRlMyk7XG4gIC0tbW9udGgtZ3JpZC1jaGlwLXRleHQ6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQsICM0MjhiNmUpO1xufVxuLnFkbmFwcm8tbW9udGgtZ3JpZF9fY2hpcC0tb3ZlcmR1ZSB7XG4gIC0tbW9udGgtZ3JpZC1jaGlwLWJnOiAgIHZhcigtLWMtc2lnbmFsLXJlZC1iZywgI2ZlZTNlMyk7XG4gIC0tbW9udGgtZ3JpZC1jaGlwLXRleHQ6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2NoaXAtLWJsb2NrZWQge1xuICAtLW1vbnRoLWdyaWQtY2hpcC1iZzogICB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpO1xuICAtLW1vbnRoLWdyaWQtY2hpcC10ZXh0OiB2YXIoLS1jLWdyZXktNjAwLCAjNTY1YjY2KTtcbn1cbi5xZG5hcHJvLW1vbnRoLWdyaWRfX2NoaXAtLXBlcnNvbmFsIHtcbiAgLS1tb250aC1ncmlkLWNoaXAtYmc6ICAgdmFyKC0tYy1zaWduYWwtcGluay1iZywgI2Y2ZTFlOCk7XG4gIC0tbW9udGgtZ3JpZC1jaGlwLXRleHQ6IHZhcigtLWMtc2lnbmFsLXBpbmstdGV4dCwgI2IyNTc3Nyk7XG59XG5cbi8vIFwiK05cIiBvdmVyZmxvdyBsaW5lIOKAlCBxdWlldCwgdGFrZXMgdGhlIGxhc3QgY2hpcCBzbG90XG4ucWRuYXByby1tb250aC1ncmlkX19tb3JlIHtcbiAgcGFkZGluZzogMXB4IDNweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTNweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLy8gRGltbWVkIGFkamFjZW50LW1vbnRoIGRheXMga2VlcCB0aGVpciBjaGlwcyByZWFkYWJsZSBidXQgbXV0ZWQuIEJhcnMgYXJlXG4vLyBkaW1tZWQgdmlhIC5xZG5hcHJvLW1vbnRoLWdyaWRfX2Jhci0tZGltbWVkIGFib3ZlICh0aGUgb3ZlcmxheSBpcyBub1xuLy8gbG9uZ2VyIGEgY2VsbCBkZXNjZW5kYW50LCBzZWUgdGhhdCBydWxlJ3MgY29tbWVudCkuXG4ucWRuYXByby1tb250aC1ncmlkX19jZWxsLS1vdXRzaWRlIC5xZG5hcHJvLW1vbnRoLWdyaWRfX2NoaXAsXG4ucWRuYXByby1tb250aC1ncmlkX19jZWxsLS1vdXRzaWRlIC5xZG5hcHJvLW1vbnRoLWdyaWRfX21vcmUge1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1tb250aC1zdHJpcCDigJQgZXhwYW5kYWJsZSBtb250aCBzdHJpcCAoUFdBIGNhbGVuZGFyIE0xKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgUUROQSB0b2tlbnMgdXNlZDpcbi8vICAgIC0tYy1wdXJwbGUtNTAwICAjNDA0OTlhICAgc2VsZWN0ZWQtZGF5IGNpcmNsZSwgdG9kYXkgbnVtYmVyLCBldmVudCBkb3RzXG4vLyAgICAtLWMtZ3JleS01MDAgICAgIzZiNzI4MCAgIHdlZWtkYXkgaGVhZGVyICsgbW9udGggbGFiZWxcbi8vICAgIC0tYy1ncmV5LTQwMCAgICAjYTZhYWIzICAgbXV0ZWQgKGFkamFjZW50LW1vbnRoKSArIGRpc2FibGVkIGRheSBudW1iZXJzXG4vLyAgICAtLWMtZ3JleS0zMDAgICAgI2M0YzdjYyAgIGdyYWJiZXIgcGlsbFxuLy8gICAgLS1jLWdyZXktOTUwICAgICMwYjBiMGQgICBkYXkgbnVtYmVyc1xuLy8gIExheW91dCBmcm9tIHRoZSBGaWdtYSBjYWxlbmRhciBmcmFtZXMgKHNlY3Rpb25zIDE6NTg0OSAvIDE6NTUzNCk6XG4vLyAgY2VudGVyZWQgbW9udGggbGFiZWwsIDctY29sdW1uIHdlZWtkYXkgcm93LCA0OHB4IGRheSByb3dzLCB+MjhweFxuLy8gIHNlbGVjdGlvbiBjaXJjbGUsIDRweCBldmVudCBkb3QsIHNoZWV0LXN0eWxlIGdyYWJiZXIgYXQgdGhlIGJvdHRvbS5cbi8vICBCbHVlIHNlbGVjdGlvbiBpbiBGaWdtYSA9IHFkYSBwdXJwbGUgaGVyZSAoY29sb3VyIHRydXRoID0gcWRuYSkuXG4vLyAgRkxBVCBDU1M7IHN5bmNlZCB0byB0aGUgUFdBIHZpYSBzeW5jLXYyLWNvbXBvbmVudHMuanMuXG5cbi5xZG5hcHJvLW1vbnRoLXN0cmlwIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAvLyBIYXJkIGJhY2tzdG9wOiBub3RoaW5nIChjaGlwcyByb3cgaW5jbHVkZWQpIG1heSBwYWludCBwYXN0IHRoZSBzdHJpcCdzXG4gIC8vIGhvcml6b250YWwgZnJhbWUuIGNsaXAgb24geCBrZWVwcyB5IHZpc2libGUsIHNvIHRoZSBncmFiYmVyIGRyYWctZm9sbG93XG4gIC8vIGFuZCBmb2N1cyByaW5ncyBhcmUgdW50b3VjaGVkLlxuICBvdmVyZmxvdy14OiBjbGlwO1xufVxuXG4ucWRuYXByby1tb250aC1zdHJpcF9fbW9udGgge1xuICBwYWRkaW5nOiAycHggMCAycHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xufVxuXG4ucWRuYXByby1tb250aC1zdHJpcF9fd2Vla2RheXMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpO1xuICBwYWRkaW5nOiAwIDRweCAycHg7XG59XG4ucWRuYXByby1tb250aC1zdHJpcF9fd2Vla2RheXMgc3BhbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xufVxuXG4vLyBEYXkgZ3JpZCDigJQgdGhlIGJvZHkgQ0xJUFMgKGV4cGxpY2l0IGhlaWdodCBmcm9tIHRoZSBKUywgcm93cyDDlyA0OHB4KSB3aGlsZVxuLy8gdGhlIGlubmVyIF9fcm93cyBsYXllciBUUkFOU0xBVEVTLiBUb2dldGhlciB0aGV5IGRyaXZlIGJvdGggdGhlIHRhcC10b2dnbGVcbi8vIGFuaW1hdGlvbiBhbmQgdGhlIGdyYWJiZXIgZHJhZy1mb2xsb3cgbW9ycGggKHNlbGVjdGVkIHdlZWsgc3RheXMgYW5jaG9yZWRcbi8vIHdoaWxlIHRoZSBvdGhlciBtb250aCByb3dzIHJldmVhbCB1bmRlciB0aGUgZmluZ2VyKS5cbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19ib2R5IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMjVzIGVhc2U7XG59XG4ucWRuYXByby1tb250aC1zdHJpcF9fcm93cyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIDFmcik7XG4gIGdyaWQtYXV0by1yb3dzOiA0OHB4O1xuICBwYWRkaW5nOiAwIDRweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2U7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG4vLyBXaGlsZSB0aGUgZmluZ2VyIGlzIGRvd24gdGhlIHN0cmlwIG11c3QgdHJhY2sgaXQgMToxIOKAlCBubyBlYXNpbmdcbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19ib2R5LmlzLWRyYWdnaW5nLFxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX2JvZHkuaXMtZHJhZ2dpbmcgLnFkbmFwcm8tbW9udGgtc3RyaXBfX3Jvd3Mge1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4vLyBEaXJlY3Rpb25hbCBzbGlkZS1pbiB3aGVuIHRoZSBzdHJpcCBwYWdlcyAobmF2aWdhdGUsIE00KS4gQW5pbWF0ZXMgdGhlXG4vLyBpbmRlcGVuZGVudCBgdHJhbnNsYXRlYCBwcm9wZXJ0eSBzbyBpdCBjb21wb3NlcyB3aXRoIHRoZSBncmFiYmVyIG1vcnBoJ3Ncbi8vIHRyYW5zZm9ybTogdHJhbnNsYXRlWSAod2hpY2ggb3ducyB0aGUgdmVydGljYWwgb2Zmc2V0KSDigJQgbmV2ZXIgY2xvYmJlcnMgaXQuXG4ucWRuYXByby1tb250aC1zdHJpcF9fcm93cy5pcy1lbnRlci1uZXh0IHsgYW5pbWF0aW9uOiBxbXMtc2xpZGUtbmV4dCAwLjI0cyBjdWJpYy1iZXppZXIoMC4yLCAwLjcsIDAuMywgMSk7IH1cbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19yb3dzLmlzLWVudGVyLXByZXYgeyBhbmltYXRpb246IHFtcy1zbGlkZS1wcmV2IDAuMjRzIGN1YmljLWJlemllcigwLjIsIDAuNywgMC4zLCAxKTsgfVxuQGtleWZyYW1lcyBxbXMtc2xpZGUtbmV4dCB7XG4gIGZyb20geyB0cmFuc2xhdGU6IDI4cHggMDsgb3BhY2l0eTogMC4zNTsgfVxuICB0byAgIHsgdHJhbnNsYXRlOiAwIDA7IG9wYWNpdHk6IDE7IH1cbn1cbkBrZXlmcmFtZXMgcW1zLXNsaWRlLXByZXYge1xuICBmcm9tIHsgdHJhbnNsYXRlOiAtMjhweCAwOyBvcGFjaXR5OiAwLjM1OyB9XG4gIHRvICAgeyB0cmFuc2xhdGU6IDAgMDsgb3BhY2l0eTogMTsgfVxufVxuXG4ucWRuYXByby1tb250aC1zdHJpcF9fZGF5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMnB4O1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250OiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19udW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCwgIzBiMGIwZCk7XG4gIC8vIE1lYW5pbmctY29sb3VyIHNsb3QgKGRheVN0YXRlcyBjb2xvcikgdGludHMgdGhlIGNpcmNsZVxuICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXktdGludCwgdHJhbnNwYXJlbnQpO1xuICAvLyBEZXNlbGVjdCBmYWRlcyBvdXQgdmlhIHRoaXMgdHJhbnNpdGlvbiAoc2VsZWN0aW9uIGlzIGFuIGluLXBsYWNlIGNsYXNzXG4gIC8vIHN3YXAgaW4gdGhlIEpTLCBzbyB0aGUgb2xkIGNpcmNsZSBzdGF5cyBhbGl2ZSBsb25nIGVub3VnaCB0byBhbmltYXRlKVxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMThzIGVhc2UsIGNvbG9yIDAuMThzIGVhc2U7XG59XG5cbi8vIFNlbGVjdGlvbiBwb3Ag4oCUIHNwcmluZ3kgb3ZlcnNob290IG9uIHRoZSBmcmVzaGx5IHNlbGVjdGVkIGNpcmNsZS5cbi8vIC5pcy1wb3AgaXMgYWRkZWQgYnkgdGhlIEpTIG9uIHRhcCBvbmx5LCBzbyByZS1yZW5kZXJzIChzd2lwZSwgZXhwYW5kKVxuLy8gZG8gbm90IHJlcGxheSBpdCBvbiBldmVyeSByZWJ1aWxkLlxuQGtleWZyYW1lcyBxZG5hcHJvLW1vbnRoLXN0cmlwLXBvcCB7XG4gIDAlICAgeyB0cmFuc2Zvcm06IHNjYWxlKDAuNTUpOyB9XG4gIDcwJSAgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMTIpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG59XG4ucWRuYXByby1tb250aC1zdHJpcF9fZGF5LmlzLXBvcCAucWRuYXByby1tb250aC1zdHJpcF9fbnVtIHtcbiAgYW5pbWF0aW9uOiBxZG5hcHJvLW1vbnRoLXN0cmlwLXBvcCAwLjI4cyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG59XG5cbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19kb3Qge1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xufVxuXG4vLyBUT0RBWSB2cyBTRUxFQ1RFRCAocmV3b3JrZWQgMjkuMDcuMjAyNiwgS2ltIOKAlCBHb29nbGUgQ2FsZW5kYXIgbW9kZWwpLlxuLy8gQmVmb3JlIHRoaXMsIHRvZGF5IHdhcyBvbmx5IGEgYm9sZCBjb2xvdXJlZCBOVU1CRVIgYW5kIHRoZSBTRUxFQ1RFRCBkYXkgb3duZWRcbi8vIHRoZSBmaWxsZWQgY2lyY2xlLCBzbyBvbiBhbnkgZGF5IG90aGVyIHRoYW4gdG9kYXkgdGhlIHN0cm9uZ2VzdCBzaGFwZSBvbiBzY3JlZW5cbi8vIHBvaW50ZWQgYXQgdGhlIHNlbGVjdGlvbiBhbmQgXCJ0b2RheVwiIHdhcyBlYXN5IHRvIG1pc3MuIEludmVydGVkIG5vdzpcbi8vICAgdG9kYXkgICAgPSB0aGUgZnVsbCBmaWxsLCBBTFdBWVMgKGl0IGFsc28gd2lucyB3aGVuIGl0IGlzIHRoZSBzZWxlY3RlZCBkYXkpXG4vLyAgIHNlbGVjdGVkID0gYSBMSUdIVEVSIGZpbGwgKC0tYy1iZy1zZWNvbmRhcnktcHVycGxlKSwgY2xlYXJseSBub3QtdG9kYXlcbi8vIGA6bm90KC5pcy10b2RheSlgIG9uIHRoZSBzZWxlY3RlZCBydWxlIG1ha2VzIHRoZSBwcmVjZWRlbmNlIGV4cGxpY2l0IGluc3RlYWQgb2Zcbi8vIHJlbHlpbmcgb24gc291cmNlIG9yZGVyLCBhbmQgYDpub3QoLmlzLWRpc2FibGVkKWAga2VlcHMgYSBkaXNhYmxlZCBkYXkgbXV0ZWRcbi8vIChpdHMgb3duIHJ1bGVzIGJlbG93IHdvdWxkIG90aGVyd2lzZSBiZSBvdXRyYW5rZWQgYnkgdGhlc2UpLlxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX2RheS5pcy1zZWxlY3RlZDpub3QoLmlzLXRvZGF5KTpub3QoLmlzLWRpc2FibGVkKSAucWRuYXByby1tb250aC1zdHJpcF9fbnVtIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zZWNvbmRhcnktcHVycGxlLCAjZTZlOWZmKTtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ucWRuYXByby1tb250aC1zdHJpcF9fZGF5LmlzLXRvZGF5Om5vdCguaXMtZGlzYWJsZWQpIC5xZG5hcHJvLW1vbnRoLXN0cmlwX19udW0ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi8vIEFkamFjZW50LW1vbnRoIGRheXMgaW4gdGhlIGV4cGFuZGVkIGdyaWRcbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19kYXkuaXMtbXV0ZWQgLnFkbmFwcm8tbW9udGgtc3RyaXBfX251bSB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbn1cbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19kYXkuaXMtbXV0ZWQgLnFkbmFwcm8tbW9udGgtc3RyaXBfX2RvdCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS00MDAsICNhNmFhYjMpO1xufVxuXG4vLyBEaXNhYmxlZCBjZWxsLXN0YXRlIOKAlCBtdXRlZCArIHRhcCByZWZ1c2VkIChKUyBpZ25vcmVzIHRoZSBjbGljaylcbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19kYXkuaXMtZGlzYWJsZWQge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4ucWRuYXByby1tb250aC1zdHJpcF9fZGF5LmlzLWRpc2FibGVkIC5xZG5hcHJvLW1vbnRoLXN0cmlwX19udW0ge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCwgI2E2YWFiMyk7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX2RheS5pcy1kaXNhYmxlZCAucWRuYXByby1tb250aC1zdHJpcF9fZG90IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTQwMCwgI2E2YWFiMyk7XG59XG5cbi8vIEZvY3VzIOKAlCB1bmlmaWVkIHN0YWNrZWQgcmluZywgb24gdGhlIG51bWJlciBjaXJjbGVcbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19kYXk6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4ucWRuYXByby1tb250aC1zdHJpcF9fZGF5OmZvY3VzLXZpc2libGUgLnFkbmFwcm8tbW9udGgtc3RyaXBfX251bSB7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAwIDAgMnB4IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSksXG4gICAgMCAwIDAgNnB4IHZhcigtLWMtcHVycGxlLXNvZnQtMTgsIHJnYmEoNjQsIDczLCAxNTQsIDAuMTgpKTtcbn1cblxuLy8gTW9udGggY2hpcHMgcm93IChHb29nbGUtY2FsZW5kYXIgc3R5bGUpIOKAlCBvbmx5IHZpc2libGUgaW4gdGhlIGV4cGFuZGVkIHN0YXRlLlxuLy8gUmV3b3JrZWQgMjkuMDcuMjAyNiAoS2ltKTogdGhlIHJvdyBpcyBub3cgYSBDT05USU5VT1VTIHRpbWVsaW5lIGFjcm9zcyB5ZWFyXG4vLyBib3VuZGFyaWVzIChidWlsdCArIGxhemlseSBleHRlbmRlZCBpbiBKUywgc2VlIF9yZW5kZXJNb250aHMgaW4gdGhlIC5qc1xuLy8gZmlsZSksIG5vdCBqdXN0IHRoZSAxMiBtb250aHMgb2Ygb25lIHllYXIuIENoaXBzIGFyZSAyOHB4IGNvbXBhY3Rcbi8vIDxxZG5hcHJvLWJ1dHRvbj5zOyBhIHZlcnRpY2FsIDo6YWZ0ZXIgZXh0ZW5zaW9uIGdpdmVzIGVhY2ggY2hpcCBhIH40NHB4XG4vLyB0b3VjaCBjb2x1bW4gd2l0aG91dCBjaGFuZ2luZyB0aGUgdmlzdWFsIHNpemUuIEEgcGxhaW4sIG5vbi10YXBwYWJsZVxuLy8gLnFkbmFwcm8tbW9udGgtc3RyaXBfX3llYXItbGFiZWwgc2l0cyBiZXR3ZWVuIERlY2VtYmVyIGFuZCBKYW51YXJ5LlxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX21vbnRocyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA4cHggMTJweCAycHg7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgLy8gS2lsbCB0aGUgaU9TIGVsYXN0aWMgYm91bmNlIHNvIHRoZSBjaGlwcyBjYW4ndCBiZSBkcmFnZ2VkIG91dCBvZiB0aGVcbiAgLy8gZnJhbWUgKFwic3dhYmJlcmVuXCIpOyB0aGUgaG9zdCBjbGlwcyBhcyBhIGhhcmQgYmFja3N0b3AgKHNlZSBiZWxvdykuXG4gIG92ZXJzY3JvbGwtYmVoYXZpb3IteDogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teDtcbn1cbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19tb250aHM6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5xZG5hcHJvLW1vbnRoLXN0cmlwW2V4cGFuZGVkXSAucWRuYXByby1tb250aC1zdHJpcF9fbW9udGhzIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19tb250aHMgLnFkbmFwcm8tYnV0dG9uIHtcbiAgZmxleDogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX21vbnRocyAucWRuYXByby1idXR0b246OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdG9wOiAtOHB4O1xuICBib3R0b206IC04cHg7XG59XG4vLyBBIHRvdWNoIGxhcmdlciB0aGFuIHRoZSBiYXNlIGNvbXBhY3QgYnV0dG9uIOKAlCBlYXNpZXIgdG8gcmVhZCBhbmQgdGFwLlxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX21vbnRocyAucWRuYXByby1idXR0b24uYnV0dG9uLXNpemUtY29tcGFjdCB7XG4gIG1pbi1oZWlnaHQ6IDM0cHg7XG4gIHBhZGRpbmc6IDZweCAxNHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4vLyBZZWFyLW51bWJlciBsYWJlbCBiZXR3ZWVuIERlY2VtYmVyIGFuZCBKYW51YXJ5IOKAlCBwbGFpbiB0ZXh0LCBORVZFUiBhXG4vLyBjaGlwOiBubyBjbGljayBoYW5kbGVyIGlzIHdpcmVkIHRvIGl0ICh0aGUgSlMgY2xpY2sgZGVsZWdhdGlvbiBrZXlzIG9mZlxuLy8gW2RhdGEtbWldLCB3aGljaCB0aGlzIGVsZW1lbnQgbmV2ZXIgY2FycmllcykuXG4ucWRuYXByby1tb250aC1zdHJpcF9feWVhci1sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIEdyYWJiZXIg4oCUIHNoZWV0LXN0eWxlIGhhbmRsZSB0aGF0IHRvZ2dsZXMgd2VlayDihpQgbW9udGhcbi5xZG5hcHJvLW1vbnRoLXN0cmlwX19ncmFiYmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIC8vIFRhbGxlciB0aGFuIHRoZSB2aXNpYmxlIHBpbGwgc28gdGhlIHdob2xlIGJvdHRvbSBiYW5kIGlzIGdyYWJiYWJsZSDigJRcbiAgLy8gZWFzaWVyIHRvIGNhdGNoIHRoZSBoYW5kbGUgYW5kIHB1bGwgdGhlIG1vbnRoIGdyaWQgZG93bi4gVHJpbW1lZCBmcm9tXG4gIC8vIDE2LzE4IHRvIHJlY2xhaW0gdmVydGljYWwgc3BhY2Ugd2hpbGUga2VlcGluZyBhIGNvbWZvcnRhYmxlIGdyYWIgem9uZS5cbiAgcGFkZGluZzogMTBweCAwIDEycHg7XG4gIGN1cnNvcjogZ3JhYjtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX2dyYWJiZXIgc3BhbiB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0zMDAsICNjNGM3Y2MpO1xufVxuLnFkbmFwcm8tbW9udGgtc3RyaXBfX2dyYWJiZXI6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4ucWRuYXByby1tb250aC1zdHJpcF9fZ3JhYmJlcjpmb2N1cy12aXNpYmxlIHNwYW4ge1xuICBib3gtc2hhZG93OlxuICAgIDAgMCAwIDJweCB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpLFxuICAgIDAgMCAwIDZweCB2YXIoLS1jLXB1cnBsZS1zb2Z0LTE4LCByZ2JhKDY0LCA3MywgMTU0LCAwLjE4KSk7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLW1vbnRoLXN0cmlwX19ib2R5IHsgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAucWRuYXByby1tb250aC1zdHJpcF9fcm93cyB7IHRyYW5zaXRpb246IG5vbmU7IH1cbiAgLnFkbmFwcm8tbW9udGgtc3RyaXBfX251bSB7IHRyYW5zaXRpb246IG5vbmU7IH1cbiAgLnFkbmFwcm8tbW9udGgtc3RyaXBfX2RheS5pcy1wb3AgLnFkbmFwcm8tbW9udGgtc3RyaXBfX251bSB7IGFuaW1hdGlvbjogbm9uZTsgfVxuICAucWRuYXByby1tb250aC1zdHJpcF9fcm93cy5pcy1lbnRlci1uZXh0LFxuICAucWRuYXByby1tb250aC1zdHJpcF9fcm93cy5pcy1lbnRlci1wcmV2IHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXRpbWUtZ3JpZCDigJQgaG91ci1yYXN0ZXIgY2Fyb3VzZWwgZm9yIHRoZSBQV0EgY2FsZW5kYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFFETkEgdG9rZW5zIHVzZWQ6XG4vLyAgICAtLWMtYm9yZGVyLXNvZnQtMiAgcmFzdGVyIGxpbmVzICsgY29sdW1uIHNlcGFyYXRvcnMgKHdhcyAtLWMtZ3JleS0xMDAsXG4vLyAgICAgICAgICAgICAgICAgICAgICAgYSBwcmltaXRpdmUgdGhhdCBzdGF5ZWQgbGlnaHQgaW4gZGFyayBtb2RlKVxuLy8gICAgLS1jLWdyZXktNTAwICAjNmI3MjgwICAgZ3V0dGVyIHRpbWUgbGFiZWxzXG4vLyAgICAtLWMtZ3JleS01MCAgICNmMGYxZjIgICBkaXNhYmxlZCBjZWxsLXN0YXRlIGZpbGxcbi8vICBTVFJJQ1QgYXhpcy1sb2NrIHZpYSBORVNURUQgc2luZ2xlLWF4aXMgc2Nyb2xsZXJzIChLaW0gMDMuMDcuMjAyNjogdGhlIG9sZFxuLy8gIHNpbmdsZSAyRCBzY3JvbGxlciBmZWx0IGZsaW1zeSDigJQgZGlhZ29uYWwgcGFubmluZykuIF9fc2Nyb2xsLXkgb3ducyB0aGVcbi8vICBWRVJUSUNBTCBob3VycyAodG91Y2gtYWN0aW9uIHBhbi15KTsgdGhlIGlubmVyIF9fc2Nyb2xsLXggb3ducyB0aGUgSE9SSVpPTlRBTFxuLy8gIGRheSBwYWdpbmcgd2l0aCBuYXRpdmUgc2Nyb2xsLXNuYXAgKHRvdWNoLWFjdGlvbiBwYW4teCkuIEVhY2ggc2Nyb2xsZXIgbW92ZXNcbi8vICBPTkUgYXhpcywgc28gdGhlIGJyb3dzZXIgbG9ja3MgYSBnZXN0dXJlIHRvIHdoaWNoZXZlciBheGlzIGl0IHN0YXJ0cyBvbi5cbi8vICBUaGUgdGltZXMgZ3V0dGVyIGlzIGEgcGxhaW4gZmxleCBjb2x1bW4gaW4gdGhlIHZlcnRpY2FsIHNjcm9sbGVyIChzY3JvbGxzXG4vLyAgdXAvZG93biB3aXRoIHRoZSBob3Vycywgc3RheXMgYXQgdGhlIGxlZnQpLiBUaGUgYWxsLWRheSBiYW5kIHN0aWNrcyB0byB0aGVcbi8vICB0b3AgYW5kIGl0cyB2aWV3cG9ydCBtaXJyb3JzIHRoZSBob3Jpem9udGFsIHNjcm9sbExlZnQgKHN5bmNlZCBpbiBKUykuXG4vLyAgRkxBVCBDU1M7IHN5bmNlZCB0byB0aGUgUFdBIHZpYSBzeW5jLXYyLWNvbXBvbmVudHMuanMgKG5vIG5lc3RpbmcgLyBTQ1NTIHZhcnMpLlxuXG4ucWRuYXByby10aW1lLWdyaWQge1xuICAvLyBIb3VyIHJvdyBoZWlnaHQg4oCUIHRoZSB6b29tIGhvb2s7IHRvdGFsIGhlaWdodCBkZXJpdmVzIGZyb20gaXRcbiAgLS10aW1lLWdyaWQtaG91cjogNTJweDtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xufVxuXG4vLyBPVVRFUiB2ZXJ0aWNhbCBzY3JvbGxlciDigJQgdGhlIGhvdXJzLiBPbmx5IHBhbnMgdXAvZG93bi5cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fc2Nyb2xsLXkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG59XG4ucWRuYXByby10aW1lLWdyaWRfX3Njcm9sbC15Ojotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gLS0tIERheS1oZWFkZXIgcm93IChLMSBnYXAgZml4LCAxNy4wNy4yMDI2KTogT1BUSU9OQUwgc3RpY2t5IGRhdGUtY29udGV4dFxuLy8gcm93IGFib3ZlIHRoZSBhbGwtZGF5IGxhbmUsIG9ubHkgcmVuZGVyZWQgd2hlbiB0aGUgYGRheS1oZWFkZXJgIGF0dHJpYnV0ZVxuLy8gaXMgc2V0IChhYnNlbnQgYnkgZGVmYXVsdCDigJQgemVybyBjaGFuZ2UgZm9yIHRoZSBQV0EpLiBTYW1lIG5vbi1zY3JvbGxpbmdcbi8vIHN0aWNreSByZWdpb24gb2YgX19zY3JvbGwteSBhcyB0aGUgYWxsLWRheSBsYW5lIGJlbG93IGl0OyB3aGVuIHByZXNlbnQsIHRoZVxuLy8gbW9kaWZpZXIgY2xhc3MgYmVsb3cgcHVzaGVzIHRoZSBhbGwtZGF5IGxhbmUncyBvd24gYHRvcGAgZG93biBieSB0aGlzIHJvdydzXG4vLyBoZWlnaHQgc28gdGhlIHR3byBzdGlja3kgcm93cyBzdGFjayBpbnN0ZWFkIG9mIG92ZXJsYXBwaW5nLlxuLnFkbmFwcm8tdGltZS1ncmlkX19kYXloZWFkZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDc7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBoZWlnaHQ6IHZhcigtLXRpbWUtZ3JpZC1kYXloZWFkZXItaCwgNDBweCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIsICNlNmU5ZWYpO1xufVxuLnFkbmFwcm8tdGltZS1ncmlkX19kYXloZWFkZXItY29ybmVyIHtcbiAgZmxleDogbm9uZTtcbiAgd2lkdGg6IDU2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG59XG4ucWRuYXByby10aW1lLWdyaWRfX2RheWhlYWRlci12cCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgLy8gY2xpcHBlZDsgc2Nyb2xsTGVmdCBpcyBkcml2ZW4gcHJvZ3JhbW1hdGljYWxseSAobm8gdXNlciBzY3JvbGwpXG59XG4ucWRuYXByby10aW1lLWdyaWRfX2RheWhlYWRlci1ncmlkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xufVxuLy8gUmVhbCA8YnV0dG9uPiBwZXIgZGF5LCBhdCBFWEFDVExZIHRoZSBkYXktY29sdW1uIHBpdGNoIOKAlCB3aWR0aCB2YXIoLS10aW1lLVxuLy8gZ3JpZC1jb2x3KSArIGJveC1zaXppbmcgYm9yZGVyLWJveCArIGJvcmRlci1yaWdodCAxcHggaXMgdGhlIFNBTUUgZm9ybXVsYVxuLy8gLnFkbmFwcm8tdGltZS1ncmlkX19kYXkgdXNlcyBiZWxvdyAoc2VlIHRoYXQgcnVsZSdzIGNvbW1lbnQgb24gd2h5XG4vLyBib3JkZXItYm94IGlzIGxvYWQtYmVhcmluZyB0aGVyZSk6IGFueSBkcmlmdCBoZXJlIHJlcHJvZHVjZXMgdGhlIHNhbWVcbi8vIGhhbGYtY29sdW1uLW9mZiBidWcgb24gdGhpcyBoZWFkZXIgaW5zdGVhZCBvZiB0aGUgYWxsLWRheSBsYW5lLiBBIGZsZXggcm93XG4vLyAobm90IENTUyBncmlkKSBzaWRlc3RlcHMgdGhlIGNvbHVtbi1nYXAgcGl0Y2ggdHJhcCBlbnRpcmVseSDigJQgbm8gZ2FwIGlzXG4vLyBkZWNsYXJlZCwgc28gdGhlcmUgaXMgbm90aGluZyB0byBkZXN5bmMuXG4ucWRuYXByby10aW1lLWdyaWRfX2RheWNlbGwge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBmb250OiBpbmhlcml0O1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZmxleDogbm9uZTtcbiAgd2lkdGg6IHZhcigtLXRpbWUtZ3JpZC1jb2x3LCAxMjBweCk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMiwgI2U2ZTllZik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDFweDtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnFkbmFwcm8tdGltZS1ncmlkX19kYXljZWxsOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwLCAjZjBmMWYyKTtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZGF5Y2VsbDpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG59XG4vLyBUT0RBWSAoS2ltLCAyMC4wNy4yMDI2KTogbm8gbW9yZSBmdWxsLWNlbGwgcHVycGxlIGZpbGwg4oCUIGl0IHJlYWQgYXNcbi8vIGNsdW5reSAoXCJsb21wXCIpLiBBIGNvbXBhY3QgR29vZ2xlLXN0eWxlIHBpbGwgc2l0cyBhcm91bmQgSlVTVCB0aGUgZGF5XG4vLyBudW1iZXIgKHNlZSAuaXMtdG9kYXkgLmRheW51bSBiZWxvdyksIHNvIHRoZSB0b2RheSBjZWxsIGtlZXBzIHRoZSBzYW1lXG4vLyBuZXV0cmFsIGJhY2tncm91bmQgKyBob3ZlciBhcyBldmVyeSBvdGhlciBoZWFkZXIgY2VsbC4gTWlycm9ycyB0aGVcbi8vIHFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmUgZGF5LWhlYWRlciAoXCJQZXIgdGFha2xpanN0XCIgdmlldykuXG4ucWRuYXByby10aW1lLWdyaWRfX2RheWNlbGwtd2Vla2RheSB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEzcHg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI3MjgwKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZGF5Y2VsbC1kYXludW0ge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTgwMCwgIzFjMWIyOSk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4vLyBXZWVrZGF5IGxhYmVsIHRpbnRzIHRvIHRoZSBhY3Rpb24gY29sb3Igb24gdG9kYXkgKG1hdGNoZXMgdGhlIHBpbGwpLlxuLnFkbmFwcm8tdGltZS1ncmlkX19kYXljZWxsLmlzLXRvZGF5IC5xZG5hcHJvLXRpbWUtZ3JpZF9fZGF5Y2VsbC13ZWVrZGF5IHtcbiAgY29sb3I6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG59XG4vLyBUaGUgcGlsbDogZmlsbGVkIC0tYy1hY3Rpb24tNTAwIGNoaXAgaHVnZ2luZyBqdXN0IHRoZSBkYXkgbnVtYmVyLCBrZXB0XG4vLyBkZWxpYmVyYXRlbHkgc21hbGwgKHRpZ2h0IHBhZGRpbmcsIG5vIGZpeGVkIHNpemUpIHNvIGl0IHN0YXlzIHN1YnRsZXJcbi8vIHRoYW4gR29vZ2xlJ3Mgb3ZlcnNpemVkIGNpcmNsZS5cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZGF5Y2VsbC5pcy10b2RheSAucWRuYXByby10aW1lLWdyaWRfX2RheWNlbGwtZGF5bnVtIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICBwYWRkaW5nOiAxcHggOHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbn1cbi8vIFB1c2ggdGhlIGFsbC1kYXkgbGFuZSdzIG93biBzdGlja3kgcG9pbnQgZG93biBieSB0aGUgZGF5LWhlYWRlcidzIGhlaWdodCBzb1xuLy8gdGhlIHR3byBzdGlja3kgcm93cyBzdGFjayAoYm90aCBhcmUgYHBvc2l0aW9uOiBzdGlja3k7IHRvcGAgaW5zaWRlIHRoZSBTQU1FXG4vLyBfX3Njcm9sbC15KSBpbnN0ZWFkIG9mIG92ZXJsYXBwaW5nIGF0IHRvcDowLlxuLnFkbmFwcm8tdGltZS1ncmlkLS1oYXMtZGF5LWhlYWRlciAucWRuYXByby10aW1lLWdyaWRfX2FsbGRheSB7XG4gIHRvcDogdmFyKC0tdGltZS1ncmlkLWRheWhlYWRlci1oLCA0MHB4KTtcbn1cblxuLy8gLS0tIEFsbC1kYXkgbGFuZTogc3RpY2tzIHRvIHRoZSB0b3Agb2YgdGhlIHZlcnRpY2FsIHNjcm9sbGVyLiBJdHMgdmlld3BvcnRcbi8vIGNsaXBzIGFuZCBKUyBtaXJyb3JzIHRoZSBob3Jpem9udGFsIHNjcm9sbExlZnQgc28gYmFycyB0cmFjayB0aGUgZGF5IGNvbHVtbnMuXG4ucWRuYXByby10aW1lLWdyaWRfX2FsbGRheSB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcbiAgei1pbmRleDogNjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIsICNlNmU5ZWYpO1xuICAvLyBWaWV3cG9ydC1hd2FyZSBoZWlnaHQ6IEpTIHNldHMgYW4gZXhwbGljaXQgcHggaGVpZ2h0IGZvciB0aGUgdmlzaWJsZSByb3dzIGFuZFxuICAvLyBhbmltYXRlcyBpdCAoMCB3aGVuIHRoZSB2aXNpYmxlIGRheXMgaGF2ZSBubyBhbGwtZGF5IGl0ZW1zIOKGkiBubyBmcmFtZSkuXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjJzIGVhc2U7XG59XG4ucWRuYXByby10aW1lLWdyaWRfX2FsbGRheS5pcy1lbXB0eSB7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG59XG4ucWRuYXByby10aW1lLWdyaWRfX2FsbGRheS1jb3JuZXIge1xuICBmbGV4OiBub25lO1xuICB3aWR0aDogNTZweDtcbiAgei1pbmRleDogMTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmKTtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fYWxsZGF5LXZwIHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyAvLyBjbGlwcGVkOyBzY3JvbGxMZWZ0IGlzIGRyaXZlbiBwcm9ncmFtbWF0aWNhbGx5IChubyB1c2VyIHNjcm9sbClcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fYWxsZGF5LWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICAvLyBST1cgZ2FwIG9ubHkg4oCUIHRoZSBzaG9ydGhhbmQgYGdhcDogMnB4YCBhbHNvIHNldCBhIDJweCBDT0xVTU4gZ2FwLFxuICAvLyBtYWtpbmcgdGhlIGxhbmUncyBjb2x1bW4gcGl0Y2ggMnB4IHdpZGVyIHRoYW4gdGhlIGRheSBjb2x1bW5zIGJlbG93XG4gIC8vICh3aGljaCBoYXZlIG5vIGdhcCkuIFRoYXQgZHJpZnRzIDJweCBwZXIgZGF5IGZyb20gdGhlIHdpbmRvdyBzdGFydDpcbiAgLy8gaW52aXNpYmxlIGluIHNtYWxsIGJhY2tvZmZpY2Ugd2luZG93cywgaGFsZiBhIGNvbHVtbiA0NSBkYXlzIGluIG9uIHRoZVxuICAvLyBQV0EgKEtpbSdzIFwiU2lja1wiIGJhciwgbWVhc3VyZWQgbGl2ZSAxNy4wNy4yMDI2OiA0NSB4IDJweCA9IH45MHB4IG9mZikuXG4gIHJvdy1nYXA6IDJweDtcbiAgY29sdW1uLWdhcDogMDtcbiAgZ3JpZC1hdXRvLXJvd3M6IDI2cHg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBwYWRkaW5nOiA0cHggMnB4IDRweCAwO1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG59XG4ucWRuYXByby10aW1lLWdyaWRfX2FsbGRheS1ncmlkLmlzLXNjcm9sbGFibGUge1xuICBtYXgtaGVpZ2h0OiBjYWxjKDQgKiAyOHB4KTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fYWxsZGF5LWdyaWQgLnFkbmFwcm8tZXZlbnQtY2FyZCB7XG4gIGhlaWdodDogMjZweDtcbiAgbWluLWhlaWdodDogMDtcbiAgcGFkZGluZzogM3B4IDhweDtcbiAgbWFyZ2luOiAwIDFweDtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fYWxsZGF5LXRvZ2dsZSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDNweCA4cHg7XG4gIG1hcmdpbjogMCAxcHg7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMiwgOHB4KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnFkbmFwcm8tdGltZS1ncmlkX19hbGxkYXktdG9nZ2xlOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OlxuICAgIDAgMCAwIDJweCB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpLFxuICAgIDAgMCAwIDZweCB2YXIoLS1jLXB1cnBsZS1zb2Z0LTE4LCByZ2JhKDY0LCA3MywgMTU0LCAwLjE4KSk7XG59XG5cbi8vIC0tLSBIb3VycyByb3c6IHRoZSBmaXhlZC1sZWZ0IGd1dHRlciArIHRoZSBob3Jpem9udGFsIGRheSBzY3JvbGxlciAtLS1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9faG91cnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cblxuLy8gR3V0dGVyIOKAlCBwbGFpbiBmbGV4IGNvbHVtbjogc2Nyb2xscyB2ZXJ0aWNhbGx5IHdpdGggdGhlIGhvdXJzIChpdCBpcyBpbnNpZGVcbi8vIHRoZSB2ZXJ0aWNhbCBzY3JvbGxlcikgYW5kIHN0YXlzIGF0IHRoZSBsZWZ0ICh0aGUgaG9yaXpvbnRhbCBzY3JvbGxlciBpcyBhXG4vLyBTSUJMSU5HLCBub3QgYSBwYXJlbnQsIHNvIGhvcml6b250YWwgcGFnaW5nIG5ldmVyIG1vdmVzIGl0KS5cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZ3V0dGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiBub25lO1xuICB3aWR0aDogNTZweDtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLXRpbWUtZ3JpZC1ob3VycywgMjQpICogdmFyKC0tdGltZS1ncmlkLWhvdXIpKTtcbiAgei1pbmRleDogNTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmKTtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fdGltZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDhweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vLyBJTk5FUiBob3Jpem9udGFsIHNjcm9sbGVyIOKAlCBkYXkgcGFnaW5nLiBPbmx5IHBhbnMgbGVmdC9yaWdodDsgc2Nyb2xsLXNuYXBcbi8vIGdpdmVzIHRoZSBwZXItZGF5IC8gcGVyLXdlZWsgcmVzdCBwb3NpdGlvbnMuXG4ucWRuYXByby10aW1lLWdyaWRfX3Njcm9sbC14IHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tdGltZS1ncmlkLWhvdXJzLCAyNCkgKiB2YXIoLS10aW1lLWdyaWQtaG91cikpO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIHNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5O1xuICAvLyBBbGxvdyBCT1RIIHBhbnMgbmF0aXZlbHk6IGhvcml6b250YWwgc2Nyb2xscyB0aGlzIHNjcm9sbGVyLCB2ZXJ0aWNhbCBjaGFpbnNcbiAgLy8gdG8gdGhlIG91dGVyIF9fc2Nyb2xsLXkgKHRoaXMgb25lIGlzIG92ZXJmbG93LXk6aGlkZGVuKS4gcGFuLXggQUxPTkUgYmxvY2tlZFxuICAvLyB0aGUgdmVydGljYWwgY2hhaW4gKHRoZSBcInZlcnRpY2FsIGRvZXMgbm90aGluZ1wiIGJ1Zyk7IGZyZWV6aW5nIGFuIGF4aXMgdmlhXG4gIC8vIG92ZXJmbG93IGluIEpTIG1pZC1nZXN0dXJlIGtpbGxlZCBCT1RIIChtdXRhdGluZyBhIHNjcm9sbGVyIGNhbmNlbHMgdGhlIGxpdmVcbiAgLy8gbmF0aXZlIHNjcm9sbCkuIFNvOiBib3RoIGF4ZXMgbmF0aXZlLCBhbmQgd2UgcmVseSBvbiB0aGUgYnJvd3NlciBsb2NraW5nIGFcbiAgLy8gdG91Y2ggZ2VzdHVyZSB0byBvbmUgc2Nyb2xsIGNvbnRhaW5lciAoaXRzIGRlZmF1bHQpLiBObyBKUyBheGlzLWxvY2suXG4gIHRvdWNoLWFjdGlvbjogcGFuLXggcGFuLXk7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvci14OiBjb250YWluO1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG59XG4ucWRuYXByby10aW1lLWdyaWRfX3Njcm9sbC14Ojotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IGRpc3BsYXk6IG5vbmU7IH1cblxuLnFkbmFwcm8tdGltZS1ncmlkX19zdHJpcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8vIERheSBjb2x1bW4g4oCUIG9uZSB2aWV3cG9ydCBzbG90IHdpZGU7IGhvdXIgcmFzdGVycyBhcmUgYSBjaGVhcCByZXBlYXRpbmdcbi8vIGdyYWRpZW50IChvbmUgcGFpbnQpIHNvIGEgd2lkZSBzdHJpcCBzdGF5cyBsaWdodC4gRWFjaCBjb2x1bW4gaXMgYSBzbmFwIHBvaW50LlxuLnFkbmFwcm8tdGltZS1ncmlkX19kYXkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IG5vbmU7XG4gIHdpZHRoOiB2YXIoLS10aW1lLWdyaWQtY29sdywgMTIwcHgpO1xuICAvLyBib3JkZXItYm94IGlzIExPQUQtQkVBUklORyBoZXJlLCBub3QgY29zbWV0aWM6IHdpdGhvdXQgaXQgdGhlIDFweFxuICAvLyBib3JkZXItcmlnaHQgbWFrZXMgZXZlcnkgZGF5IGNvbHVtbiBjb2x3KzFweCB3aWRlIHdoaWxlIHRoZSBhbGwtZGF5XG4gIC8vIGxhbmUgZ3JpZCB1c2VzIGV4YWN0bHkgY29sdyBwZXIgY29sdW1uIOKAlCBhIDFweC1wZXItZGF5IGRyaWZ0IHRoYXQgYWRkc1xuICAvLyB1cCB0byBoYWxmIGEgY29sdW1uIG9uY2UgeW91IGFyZSB3ZWVrcyBhd2F5IGZyb20gdGhlIHdpbmRvdyBzdGFydFxuICAvLyAoS2ltJ3MgUFdBIHNjcmVlbnNob3QsIDE3LjA3LjIwMjY6IFwiU2lja1wiIGJhciBmbG9hdGluZyBiZXR3ZWVuIGRheXMpLlxuICAvLyBUaGUgYmFja29mZmljZSBtYXNrcyB0aGlzIHZpYSBpdHMgZ2xvYmFsIGJvcmRlci1ib3ggcmVzZXQ7IHRoZSBQV0EgaGFzXG4gIC8vIG5vIHN1Y2ggcmVzZXQsIHNvIHRoZSBjb21wb25lbnQgbXVzdCBwaW4gaXQgaXRzZWxmLlxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMiwgI2U2ZTllZik7XG4gIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICB0byBib3R0b20sXG4gICAgdmFyKC0tYy1ib3JkZXItc29mdC0yLCAjZTZlOWVmKSAwLCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIsICNlNmU5ZWYpIDFweCxcbiAgICB0cmFuc3BhcmVudCAxcHgsIHRyYW5zcGFyZW50IHZhcigtLXRpbWUtZ3JpZC1ob3VyLCA1MnB4KVxuICApO1xufVxuLy8gV2VlayB2aWV3IHNuYXBzIHBlciBXRUVLOiBvbmx5IHRoZSBNb25kYXkgY29sdW1ucyBhcmUgc25hcCBwb2ludHNcbi5xZG5hcHJvLXRpbWUtZ3JpZC0td2VlayAucWRuYXByby10aW1lLWdyaWRfX2RheSB7IHNjcm9sbC1zbmFwLWFsaWduOiBub25lOyB9XG4ucWRuYXByby10aW1lLWdyaWQtLXdlZWsgLnFkbmFwcm8tdGltZS1ncmlkX19kYXkuaXMtd2Vla3N0YXJ0IHsgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0OyB9XG5cbi8vIENlbGwtc3RhdGUgc2VnbWVudHMg4oCUIGJhY2tncm91bmQgbGF5ZXIgdW5kZXIgdGhlIGV2ZW50c1xuLnFkbmFwcm8tdGltZS1ncmlkX19zdGF0ZXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fc3RhdGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xufVxuLnFkbmFwcm8tdGltZS1ncmlkX19zdGF0ZS0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpO1xufVxuXG4vLyBFdmVudHMgbGF5ZXIg4oCUIGNhcmRzIHBvc2l0aW9uZWQgYnkgdGhlIEpTICh0b3AvaGVpZ2h0L2xlZnQvd2lkdGgpXG4ucWRuYXByby10aW1lLWdyaWRfX2V2ZW50cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tdGltZS1ncmlkX19ldmVudHMgLnFkbmFwcm8tZXZlbnQtY2FyZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi8vIC0tLSBEcmFnICYgZHJvcCAtLS1cbi8vIERlc2t0b3AgbW91c2UgYWZmb3JkYW5jZSAoSy1kZWNpc2lvbiAxOC4wNy4yMDI2KTogYSBkcmFnZ2FibGUgY2FyZCBzaG93cyBhblxuLy8gb3BlbiBoYW5kLCBjbG9zZWQgd2hpbGUgYWN0dWFsbHkgYmVpbmcgZHJhZ2dlZC4gSGFybWxlc3Mgb24gdG91Y2gvcGVuIChub1xuLy8gY3Vyc29yIHJlbmRlcmVkIHRoZXJlKSDigJQgY2hlYXAsIG5vIGNvbmZsaWN0aW5nIGN1cnNvciBydWxlIG9uIHRoaXMgZWxlbWVudC5cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZXZlbnRzIC5xZG5hcHJvLWV2ZW50LWNhcmRbZGF0YS1xdGctZHJhZ2dhYmxlXSB7XG4gIGN1cnNvcjogZ3JhYjtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZXZlbnRzIC5xZG5hcHJvLWV2ZW50LWNhcmRbZGF0YS1xdGctZHJhZ2dhYmxlXTphY3RpdmUsXG4ucWRuYXByby10aW1lLWdyaWRfX2V2ZW50cyAucWRuYXByby1ldmVudC1jYXJkLmlzLWRyYWdnaW5nIHtcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZXZlbnRzIC5xZG5hcHJvLWV2ZW50LWNhcmQuaXMtZHJhZ2dpbmcge1xuICB0cmFuc2l0aW9uOiBub25lO1xuICB6LWluZGV4OiA1O1xuICBib3gtc2hhZG93OlxuICAgIDAgNnB4IDE4cHggcmdiYSgyOCwgMjcsIDQxLCAwLjIyKSxcbiAgICAwIDJweCA2cHggcmdiYSgyOCwgMjcsIDQxLCAwLjE0KTtcbiAgb3BhY2l0eTogMC45Mjtcbn1cbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZXZlbnRzIC5xZG5hcHJvLWV2ZW50LWNhcmQuaXMtZHJhZy1yZXR1cm4ge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMC4zNCwgMS4zLCAwLjY0LCAxKTtcbn1cblxuLy8gLS0tIFJlc2l6ZSAoSyAwMy4wOC4yMDI2LCBNT1VTRSBPTkxZKSAtLS1cbi8vIFRoZSBncmFiIHN0cmlwIGlzIGEgOjphZnRlciBwc2V1ZG8tZWxlbWVudCBhbmQgTk9UIGEgY2hpbGQgZWxlbWVudCBvbiBwdXJwb3NlOlxuLy8gcWRuYS1ldmVudC1jYXJkIHJlYnVpbGRzIGl0cyBvd24gaW5uZXJIVE1MIG9uIGV2ZXJ5IHJlbmRlcigpLCBzbyBhbiBpbmplY3RlZCBoYW5kbGVcbi8vIHdvdWxkIGJlIHdpcGVkIHdpdGhvdXQgYSB0cmFjZS4gSXRzIGhlaWdodCBtdXN0IHN0YXkgaW4gc3RlcCB3aXRoXG4vLyBRZG5hVGltZUdyaWQuUkVTSVpFX0hBTkRMRV9QWCwgd2hpY2ggZG9lcyB0aGUgYWN0dWFsIGhpdC10ZXN0aW5nIGluIEpTLlxuLy9cbi8vIFdyYXBwZWQgaW4gKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSBzbyB0aGUgYWZmb3JkYW5jZSBkb2VzIG5vdCBleGlzdCBhdCBhbGxcbi8vIG9uIGEgdG91Y2ggZGV2aWNlOiBhIDEwcHggc3RyaXAgaXMgbm90IGEgZmluZ2VyIHRhcmdldCwgYW5kIG9uIGEgcGhvbmUgZXZlcnkgZG93bndhcmRcbi8vIGRyYWcgdGhlcmUgaXMgYWxzbyBhIHNjcm9sbCBhdHRlbXB0LiBUaGUgSlMgZ2F0ZSBvbiBwb2ludGVyVHlwZSA9PT0gXCJtb3VzZVwiIGlzIHRoZVxuLy8gcmVhbCBndWFyZDsgdGhpcyBvbmUga2VlcHMgdGhlIGN1cnNvciBmcm9tIGx5aW5nIG9uIGEgdGFibGV0LlxuQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAucWRuYXByby10aW1lLWdyaWRfX2V2ZW50cyAucWRuYXByby1ldmVudC1jYXJkW2RhdGEtcXRnLXJlc2l6YWJsZV06OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgY3Vyc29yOiBucy1yZXNpemU7XG4gICAgLy8gU2l0cyBhYm92ZSB0aGUgY2FyZCdzIG93biB0ZXh0IHNvIHRoZSBjdXJzb3IgaXMgcmVsaWFibGUgbmVhciB0aGUgZWRnZSwgYnV0XG4gICAgLy8gcGFpbnRzIG5vdGhpbmc6IHRoZSBhZmZvcmRhbmNlIGlzIHRoZSBjdXJzb3IgcGx1cyB0aGUgaG92ZXIgYmFyIGJlbG93LlxuICAgIHotaW5kZXg6IDE7XG4gIH1cbiAgLy8gUXVpZXQgaGludCB0aGF0IHRoZSBlZGdlIGlzIGdyYWJiYWJsZSwgb25seSB3aGlsZSB0aGUgcG9pbnRlciBpcyBvbiB0aGUgY2FyZC5cbiAgLnFkbmFwcm8tdGltZS1ncmlkX19ldmVudHMgLnFkbmFwcm8tZXZlbnQtY2FyZFtkYXRhLXF0Zy1yZXNpemFibGVdOmhvdmVyOjphZnRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tci0yLCA4cHgpO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1yLTIsIDhweCk7XG4gICAgb3BhY2l0eTogMC41NTtcbiAgfVxufVxuLnFkbmFwcm8tdGltZS1ncmlkX19ldmVudHMgLnFkbmFwcm8tZXZlbnQtY2FyZC5pcy1yZXNpemluZyB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIHotaW5kZXg6IDU7XG4gIGN1cnNvcjogbnMtcmVzaXplO1xuICBib3gtc2hhZG93OlxuICAgIDAgNnB4IDE4cHggcmdiYSgyOCwgMjcsIDQxLCAwLjIyKSxcbiAgICAwIDJweCA2cHggcmdiYSgyOCwgMjcsIDQxLCAwLjE0KTtcbiAgb3BhY2l0eTogMC45Mjtcbn1cbi8vIEEgY2FuY2VsbGVkIHJlc2l6ZSBzcHJpbmdzIGJhY2sgb24gSEVJR0hUIChhIGNhbmNlbGxlZCBtb3ZlIHNwcmluZ3MgYmFjayBvblxuLy8gdHJhbnNmb3JtKSwgc28gaXQgbmVlZHMgaXRzIG93biB0cmFuc2l0aW9uIHByb3BlcnR5IG9uIHRoZSBzYW1lIGlzLWRyYWctcmV0dXJuIGNsYXNzLlxuLnFkbmFwcm8tdGltZS1ncmlkX19ldmVudHMgLnFkbmFwcm8tZXZlbnQtY2FyZC5pcy1kcmFnLXJldHVybi5pcy1yZXNpemluZyB7XG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjJzIGN1YmljLWJlemllcigwLjM0LCAxLjMsIDAuNjQsIDEpO1xufVxuLnFkbmFwcm8tdGltZS1ncmlkX19kcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAycHg7XG4gIHJpZ2h0OiAycHg7XG4gIGJvcmRlcjogMnB4IGRhc2hlZCB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIsIDhweCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLXNvZnQtMTIsIHJnYmEoNjQsIDczLCAxNTQsIDAuMTIpKTtcbiAgei1pbmRleDogMjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ucWRuYXByby10aW1lLWdyaWRfX2Ryb3AtbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMnB4O1xuICBsZWZ0OiA2cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnFkbmFwcm8tdGltZS1ncmlkX19kcm9wLmlzLXJlamVjdCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZWUzZTMpO1xufVxuLnFkbmFwcm8tdGltZS1ncmlkX19kcm9wLmlzLXJlamVjdCAucWRuYXByby10aW1lLWdyaWRfX2Ryb3AtbGFiZWwge1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xufVxuLy8gUmVzaXplIHRhcmdldDogdGhlIGxhYmVsIGhhbmdzIFVOREVSIHRoZSBvdXRsaW5lIGluc3RlYWQgb2YgaW5zaWRlIGl0cyB0b3AtbGVmdFxuLy8gY29ybmVyLiBBIHJlc2l6ZWQgY2FyZCBkb2VzIG5vdCBtb3ZlIG91dCBvZiB0aGUgd2F5IGxpa2UgYSBkcmFnZ2VkIG9uZSBkb2VzLCBzbyBhXG4vLyBsYWJlbCBhdCB0aGUgdG9wIHdvdWxkIGVuZCB1cCBiZWhpbmQgaXQuIFVuZGVyIHRoZSBkcmFnZ2VkIGVkZ2UgaXMgYWxzbyB3aGVyZSB0aGVcbi8vIGN1cnNvciBhbHJlYWR5IGlzLCBzbyB0aGUgcmVhZGluZyBleWUgZG9lcyBub3QgaGF2ZSB0byB0cmF2ZWwuXG4ucWRuYXByby10aW1lLWdyaWRfX2Ryb3AtLXJlc2l6ZSAucWRuYXByby10aW1lLWdyaWRfX2Ryb3AtbGFiZWwge1xuICB0b3A6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cbi8vIERldmlhdGluZyBmcm9tIHRoZSBlc3RpbWF0ZSBpcyBBTExPV0VEIChLIDAzLjA4LjIwMjYpIOKAlCBvcmFuZ2UsIG5ldmVyIHJlZCwgYW5kIG9ubHkgb25cbi8vIHRoZSBsYWJlbCBwbHVzIGEgc29mdCBib3JkZXIuIFJlZCBpcyByZXNlcnZlZCBmb3IgYSByZWZ1c2VkIGRyb3AuXG4ucWRuYXByby10aW1lLWdyaWRfX2Ryb3AuaXMtb3Zlci1lc3RpbWF0ZSxcbi5xZG5hcHJvLXRpbWUtZ3JpZF9fZHJvcC5pcy11bmRlci1lc3RpbWF0ZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zaWduYWwtb3JhbmdlLXRleHQsICNiYzZhMWYpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1vcmFuZ2UtYmcsICNmZGVhZGMpO1xufVxuLnFkbmFwcm8tdGltZS1ncmlkX19kcm9wLmlzLW92ZXItZXN0aW1hdGUgLnFkbmFwcm8tdGltZS1ncmlkX19kcm9wLWxhYmVsLFxuLnFkbmFwcm8tdGltZS1ncmlkX19kcm9wLmlzLXVuZGVyLWVzdGltYXRlIC5xZG5hcHJvLXRpbWUtZ3JpZF9fZHJvcC1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1vcmFuZ2UtdGV4dCwgI2JjNmExZik7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby10aW1lLWdyaWRfX2V2ZW50cyAucWRuYXByby1ldmVudC1jYXJkLmlzLWRyYWctcmV0dXJuIHsgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAucWRuYXByby10aW1lLWdyaWRfX2FsbGRheSB7IHRyYW5zaXRpb246IG5vbmU7IH1cbn1cblxuLy8gTm93LWluZGljYXRvciAoR29vZ2xlIENhbGVuZGFyIHN0eWxlKTogcmVkIGxpbmUgKyBkb3Qgb24gdGhlIGN1cnJlbnQgdGltZVxuLnFkbmFwcm8tdGltZS1ncmlkX19ub3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCB2YXIoLS1jLXRhZy1jcml0aWNhbC10ZXh0KTtcbiAgei1pbmRleDogMztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4vKiBUaGUgXCJub3dcIiBkb3Qgc2l0cyBmdWxseSBJTlNJREUgdG9kYXkncyBjb2x1bW4gKGZpeGVkIDI5LjA3LjIwMjYsIEtpbTogXCJ2YWx0XG4gICBhbHRpamQgd2VnIG9uZGVyIGhldCBsaW5rZXIgcGFuZWVsXCIpLiBJdCB1c2VkIHRvIGJlIGBsZWZ0OiAtNXB4YCwgc3RyYWRkbGluZyB0aGVcbiAgIGNvbHVtbidzIGxlZnQgZWRnZSwgc28gaGFsZiBvZiBpdCBsYW5kZWQgdW5kZXIgdGhlIHRpbWVzIGd1dHRlciDigJQgYW5kIHRoZSBndXR0ZXJcbiAgIGlzIG9wYXF1ZSB3aXRoIHotaW5kZXggNSBhZ2FpbnN0IHRoaXMgbGluZSdzIHotaW5kZXggMywgc28gdGhhdCBoYWxmIHdhcyBzaW1wbHlcbiAgIHBhaW50ZWQgb3Zlci4gSW4gdGhlIGRheSB2aWV3IHRvZGF5J3MgY29sdW1uIGlzIEFMV0FZUyB0aGUgbGVmdG1vc3Qgb25lLCB3aGljaCBpc1xuICAgd2h5IGl0IHdhcyBhbHdheXMgYnJva2VuIHRoZXJlIHJhdGhlciB0aGFuIG9ubHkgc29tZXRpbWVzLiBSYWlzaW5nIHRoZSBsaW5lIGFib3ZlXG4gICB0aGUgZ3V0dGVyIGluc3RlYWQgd291bGQgYmUgd3Jvbmc6IHRoZSBsaW5lIGlzIHN1cHBvc2VkIHRvIHNsaWRlIHVuZGVyIHRoZSBndXR0ZXJcbiAgIHdoZW4geW91IHNjcm9sbCBob3Jpem9udGFsbHksIHRoYXQgaXMgd2hhdCBtYWtlcyB0aGUgZ3V0dGVyIHJlYWQgYXMgYSBmaXhlZCBwYW5lbC5cbiAgIFNvIHRoZSBkb3QgbW92ZXMgaW4sIGFuZCB0aGUgZ3V0dGVyIGtlZXBzIHdpbm5pbmcuICovXG4ucWRuYXByby10aW1lLWdyaWRfX25vdzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IC01cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy10YWctY3JpdGljYWwtdGV4dCk7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXRpbWUtcGlja2VyIOKAlCBpT1Mtc3R5bGUgdGltZSB3aGVlbHMgKFBXQSBjYWxlbmRhciBNMilcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFFETkEgdG9rZW5zIHVzZWQ6XG4vLyAgICAtLWMtcHVycGxlLTUwMCAgICAgICM0MDQ5OWEgICAgICAgICAgICAgICAgc2VsZWN0ZWQgdmFsdWVcbi8vICAgIC0tYy1wdXJwbGUtc29mdC0wOCAgcmdiYSg2NCw3MywxNTQsMC4wOCkgICBjZW50cmUgaGlnaGxpZ2h0IGJhclxuLy8gICAgLS1jLWdyZXktNDAwICAgICAgICAjYTZhYWIzICAgICAgICAgICAgICAgIGlkbGUgd2hlZWwgdmFsdWVzXG4vLyAgICAtLWMtZ3JleS01MDAgICAgICAgICM2YjcyODAgICAgICAgICAgICAgICAgY29sb24gc2VwYXJhdG9yXG4vLyAgR2VvbWV0cnk6IDQwcHggaXRlbXMsIDUgdmlzaWJsZSByb3dzICgyMDBweCBjb2x1bW4pLiBUaGUgSlMgbWVhc3VyZXNcbi8vICB0aGUgcmVhbCBpdGVtIGhlaWdodCBhdCBydW50aW1lLCBzbyBjaGFuZ2luZyA0MHB4IGhlcmUgc3RheXMgaW4gc3luYy5cbi8vICBOYXRpdmUgc2Nyb2xsICsgc2Nyb2xsLXNuYXAgZG9lcyB0aGUgcGh5c2ljczsgdGhlIG1hc2sgZmFkZXMgdGhlXG4vLyAgd2hlZWwgZWRnZXMuIG92ZXJzY3JvbGwtYmVoYXZpb3Iga2VlcHMgdGhlIHNwaW4gZnJvbSBzY3JvbGwtY2hhaW5pbmdcbi8vICBpbnRvIHRoZSBib3R0b20gc2hlZXQgdGhhdCBob3N0cyB0aGUgcGlja2VyLlxuLy8gIEZMQVQgQ1NTOyBzeW5jZWQgdG8gdGhlIFBXQSB2aWEgc3luYy12Mi1jb21wb25lbnRzLmpzLlxuXG4ucWRuYXByby10aW1lLXBpY2tlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vLyBDZW50cmUgaGlnaGxpZ2h0IGJhciDigJQgc2l0cyBiZWhpbmQgdGhlIGNvbHVtbnMgKGZpcnN0IGNoaWxkLCBubyB6LWluZGV4KVxuLnFkbmFwcm8tdGltZS1waWNrZXJfX2hpZ2hsaWdodCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNHB4O1xuICByaWdodDogNHB4O1xuICB0b3A6IDUwJTtcbiAgaGVpZ2h0OiA0MHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLXNvZnQtMDgsIHJnYmEoNjQsIDczLCAxNTQsIDAuMDgpKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXRpbWUtcGlja2VyX19jb2wge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA3MnB4O1xuICBoZWlnaHQ6IDIwMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBzY3JvbGwtc25hcC10eXBlOiB5IG1hbmRhdG9yeTtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAtd2Via2l0LW1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50LCB2YXIoLS1jLWdyZXktOTUwKSAyOCUsIHZhcigtLWMtZ3JleS05NTApIDcyJSwgdHJhbnNwYXJlbnQpO1xuICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCwgdmFyKC0tYy1ncmV5LTk1MCkgMjglLCB2YXIoLS1jLWdyZXktOTUwKSA3MiUsIHRyYW5zcGFyZW50KTtcbn1cbi5xZG5hcHJvLXRpbWUtcGlja2VyX19jb2w6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gUGFkZGluZyBzbyB0aGUgZmlyc3QvbGFzdCBlbnRyeSBjYW4gcmVzdCB1bmRlciB0aGUgaGlnaGxpZ2h0XG4ucWRuYXByby10aW1lLXBpY2tlcl9fbGlzdCB7XG4gIHBhZGRpbmc6IDgwcHggMDtcbn1cblxuLnFkbmFwcm8tdGltZS1waWNrZXJfX2l0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNDBweDtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCwgI2E2YWFiMyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgc2Nyb2xsLXNuYXAtYWxpZ246IGNlbnRlcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xMnMgZWFzZSwgZm9udC13ZWlnaHQgMC4xMnMgZWFzZTtcbn1cbi5xZG5hcHJvLXRpbWUtcGlja2VyX19pdGVtLmlzLXNlbGVjdGVkIHtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5xZG5hcHJvLXRpbWUtcGlja2VyX19jb2xvbiB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI3MjgwKTtcbn1cblxuLy8gRm9jdXMg4oCUIHVuaWZpZWQgc3RhY2tlZCByaW5nIG9uIHRoZSBjb2x1bW5cbi5xZG5hcHJvLXRpbWUtcGlja2VyX19jb2w6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4ucWRuYXByby10aW1lLXBpY2tlcl9fY29sOmZvY3VzLXZpc2libGUge1xuICBib3gtc2hhZG93OlxuICAgIDAgMCAwIDJweCB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpLFxuICAgIDAgMCAwIDZweCB2YXIoLS1jLXB1cnBsZS1zb2Z0LTE4LCByZ2JhKDY0LCA3MywgMTU0LCAwLjE4KSk7XG59XG5cbi5xZG5hcHJvLXRpbWUtcGlja2VyW2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4ucWRuYXByby10aW1lLXBpY2tlcltkaXNhYmxlZF0gLnFkbmFwcm8tdGltZS1waWNrZXJfX2NvbCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby10aW1lLXBpY2tlcl9faXRlbSB7IHRyYW5zaXRpb246IG5vbmU7IH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tdGltZS1zZWxlY3Qg4oCUIEdvb2dsZS1DYWxlbmRhci1zdHlsZSAxNS1taW51dGUgdGltZSBkcm9wZG93blxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgUUROQSB0b2tlbnMgdXNlZDpcbi8vICAgIC0tYy1ncmV5LTk1MCAgICMwYjBiMGQgICBmaWVsZCB0ZXh0IC8gbGFiZWxcbi8vICAgIC0tYy1ncmV5LTQwMCAgICNhNmFhYjMgIHBsYWNlaG9sZGVyIC8gbGVhZGluZyBpY29uIC8gY2hldnJvblxuLy8gICAgLS1jLWdyZXktMzAwICAgI2M0YzdjYyAgZmllbGQgYm9yZGVyXG4vLyAgICAtLWMtZ3JleS01MCAgICAjZjBmMWYyICBvcHRpb24gaG92ZXIgYmFja2dyb3VuZFxuLy8gICAgLS1jLWdyZXktMTAwICAgI2U3ZTllYyAgb3B0aW9uIHByZXNzZWQgYmFja2dyb3VuZFxuLy8gICAgLS1jLXB1cnBsZS01MDAgIzQwNDk5YSAgc2VsZWN0ZWQgb3B0aW9uIHRleHQgKyBvZmYtZ3JpZCBkb3Rcbi8vICAgIC0tYy1hY3Rpb24tNTAwICM0NjUyZjMgIHNlbGVjdGVkIG9wdGlvbiBiYWNrZ3JvdW5kXG4vLyAgICAtLWMtYWN0aW9uLTQwICByZ2JhKDcwLDgyLDI0MywwLjQwKSAgZm9jdXMgcmluZyBnbG93XG4vLyAgICAtLWMtc2lnbmFsLXJlZC10ZXh0ICNjNjVhNWEgIHJlcXVpcmVkIHN0YXIgLyBlcnJvciBib3JkZXIgLyBtZXNzYWdlXG4vLyAgRmllbGQgbWV0cmljcyBtaXJyb3IgcWRuYXByby1pbnB1dCdzIC5pbnB1dC1maWVsZCAoc21hbGwvZGVmYXVsdCBzaXplLFxuLy8gIGJvcmRlciwgcmFkaXVzLCBmb2N1cyByaW5nKSBzbyB0aGUgdHJpZ2dlciByZWFkcyBhcyBwYXJ0IG9mIHRoZSBzYW1lXG4vLyAgaW5wdXQgZmFtaWx5IChLaW0ncyBzcGVjOiBcInNhbWUgdmlzdWFsIGZhbWlseSBhcyBxZG5hcHJvLWlucHV0XG4vLyAgdHlwZT10aW1lIHNpemU9c21hbGxcIikuIFRoZSBkcm9wZG93biBwYW5lbCBtaXJyb3JzIHRoZSBxZG5hcHJvLXNlbGVjdFxuLy8gIHBvcG92ZXIgY2hyb21lIChib3JkZXIvcmFkaXVzL3NoYWRvdykgZm9yIHBsYXRmb3JtIGNvbnNpc3RlbmN5LlxuLy8gIEZMQVQgQ1NTIChubyBuZXN0aW5nKSwgcGVyIHRoZSB2MiBjb21wb25lbnQgY29udmVudGlvbi5cblxuLnFkbmFwcm8tdGltZS1zZWxlY3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbn1cbi5xZG5hcHJvLXRpbWUtc2VsZWN0ICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ucWRuYXByby10aW1lLXNlbGVjdCAudHMtbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTAsICMwYjBiMGQpO1xufVxuLnFkbmFwcm8tdGltZS1zZWxlY3QgLnRzLWxhYmVsIC50cy1yZXF1aXJlZCB7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7XG4gIG1hcmdpbi1yaWdodDogMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ucWRuYXByby10aW1lLXNlbGVjdCAudHMtZmllbGQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTMwMCwgI2M0YzdjYyk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMCAxMnB4O1xuICBjdXJzb3I6IHRleHQ7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLW91dCwgYm94LXNoYWRvdyAxMjBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLXRpbWUtc2VsZWN0LnRzLXNpemUtZGVmYXVsdCAudHMtZmllbGQge1xuICBtaW4taGVpZ2h0OiA1MnB4O1xufVxuLnFkbmFwcm8tdGltZS1zZWxlY3QudHMtc2l6ZS1zbWFsbCAudHMtZmllbGQge1xuICBtaW4taGVpZ2h0OiA0MHB4O1xufVxuXG4ucWRuYXByby10aW1lLXNlbGVjdCAudHMtaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCwgI2E2YWFiMyk7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tdGltZS1zZWxlY3QgLnRzLWNoZXZyb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS00MDAsICNhNmFhYjMpO1xuICBmbGV4LXNocmluazogMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG59XG4ucWRuYXByby10aW1lLXNlbGVjdC50cy1vcGVuIC50cy1jaGV2cm9uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLnFkbmFwcm8tdGltZS1zZWxlY3QgLnRzLWlucHV0IHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udDogaW5oZXJpdDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTAsICMwYjBiMGQpO1xufVxuLnFkbmFwcm8tdGltZS1zZWxlY3QgLnRzLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5xZG5hcHJvLXRpbWUtc2VsZWN0IC50cy1pbnB1dDpkaXNhYmxlZCB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnFkbmFwcm8tdGltZS1zZWxlY3QgLnRzLWZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNDAwKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHZhcigtLWMtYWN0aW9uLTQwLCByZ2JhKDcwLCA4MiwgMjQzLCAwLjQwKSk7XG59XG5cbi5xZG5hcHJvLXRpbWUtc2VsZWN0LnRzLWVycm9yIC50cy1maWVsZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xufVxuLnFkbmFwcm8tdGltZS1zZWxlY3QudHMtZXJyb3IgLnRzLWZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgyNDgsIDExMywgMTEzLCAwLjQpO1xufVxuXG4ucWRuYXByby10aW1lLXNlbGVjdC50cy1kaXNhYmxlZCAudHMtZmllbGQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLnFkbmFwcm8tdGltZS1zZWxlY3QudHMtZGlzYWJsZWQgLnRzLWZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXRpbWUtc2VsZWN0IC50cy1tZXNzYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cbi5xZG5hcHJvLXRpbWUtc2VsZWN0IC50cy1tZXNzYWdlIHFkbmFwcm8taWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLXRpbWUtc2VsZWN0IC50cy1tZXNzYWdlLWVycm9yIHtcbiAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbn1cblxuLy8gLS0tLS0tLS0tLSBEcm9wZG93biBwYW5lbCAocG9ydGFsZWQgdG8gZG9jdW1lbnQuYm9keSkgLS0tLS0tLS0tLVxuLy8gU2FtZSBjaHJvbWUgZmFtaWx5IGFzIHRoZSBxZG5hcHJvLXNlbGVjdCBwb3BvdmVyOiB3aGl0ZSBjYXJkLCBncmV5LTMwMFxuLy8gYm9yZGVyLCByYWRpdXMgOCwgZWxldmF0ZWQgc2hhZG93LlxuLnFkbmFwcm8tdGltZS1zZWxlY3QtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMzAwLCAjYzRjN2NjKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiA0cHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgYm94LXNoYWRvdzogMCA0cHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCA4cHggMTJweCA2cHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbn1cbi8vIFRodW1iLW9ubHkgc2Nyb2xsYmFyIChLaW0ncyBzdGFuZGluZyBydWxlIOKAlCBldmVyeSBzY3JvbGwgY29udGFpbmVyIGdldHNcbi8vIHRoaXMsIG5vIGdyZXkgdHJhY2spLlxuLnFkbmFwcm8tdGltZS1zZWxlY3QtcGFuZWw6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG59XG4ucWRuYXByby10aW1lLXNlbGVjdC1wYW5lbDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5xZG5hcHJvLXRpbWUtc2VsZWN0LXBhbmVsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ucWRuYXByby10aW1lLXNlbGVjdC1wYW5lbDpob3Zlcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4ucWRuYXByby10aW1lLXNlbGVjdC1wYW5lbDpmb2N1cy13aXRoaW46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn1cbi5xZG5hcHJvLXRpbWUtc2VsZWN0LXBhbmVsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zNCk7XG59XG5cbi5xZG5hcHJvLXRpbWUtc2VsZWN0LXBhbmVsIC50cy1wYW5lbC1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxcHg7XG59XG5cbi5xZG5hcHJvLXRpbWUtc2VsZWN0LW9wdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCwgIzBiMGIwZCk7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5xZG5hcHJvLXRpbWUtc2VsZWN0LW9wdGlvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG59XG4ucWRuYXByby10aW1lLXNlbGVjdC1vcHRpb246YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG59XG4ucWRuYXByby10aW1lLXNlbGVjdC1vcHRpb24uaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwLCAjZjBmMWYyKTtcbn1cblxuLy8gU2VsZWN0ZWQg4oCUIGZpbGxlZCBwdXJwbGUgcGlsbCAobWlycm9ycyB0aGUgZGF0ZS1waWNrZXIncyBzZWxlY3RlZCBkYXkpLlxuLnFkbmFwcm8tdGltZS1zZWxlY3Qtb3B0aW9uLmlzLXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnFkbmFwcm8tdGltZS1zZWxlY3Qtb3B0aW9uLmlzLXNlbGVjdGVkOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24tNjAwLCAjMzU0MGQ2KTtcbn1cblxuLy8gT2ZmLWdyaWQg4oCUIHRoZSBjdXJyZW50bHktc2VsZWN0ZWQgdmFsdWUgZGlkIG5vdCBmYWxsIG9uIHRoZSAxNS1taW51dGVcbi8vIGdyaWQgKGUuZy4gdHlwZWQgbWFudWFsbHkpLiBTdGlsbCBzaG93biArIGhpZ2hsaWdodGVkLCB3aXRoIGEgc21hbGwgZG90XG4vLyBtYXJrZXIgc28gaXQgdmlzdWFsbHkgcmVhZHMgYXMgYW4gaW5zZXJ0ZWQsIG5vbi1ncmlkIGVudHJ5LlxuLnFkbmFwcm8tdGltZS1zZWxlY3Qtb3B0aW9uLmlzLW9mZi1ncmlkOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDZweDtcbiAgaGVpZ2h0OiA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cbi5xZG5hcHJvLXRpbWUtc2VsZWN0LW9wdGlvbi5pcy1vZmYtZ3JpZC5pcy1zZWxlY3RlZDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tdGltZS1zZWxlY3QgLnRzLWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tdGltZS1zZWxlY3QgLnRzLWZpZWxkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTkwMCwgIzE4MTgxYyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1ncmV5LTYwMCwgIzU2NWI2Nik7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tdGltZS1zZWxlY3QgLnRzLWlucHV0IHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tdGltZS1zZWxlY3QtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktOTAwLCAjMTgxODFjKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWdyZXktNjAwLCAjNTY1YjY2KTtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby10aW1lLXNlbGVjdC1vcHRpb24ge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwLCAjZjBmMWYyKTtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby10aW1lLXNlbGVjdC1vcHRpb246aG92ZXIsXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tdGltZS1zZWxlY3Qtb3B0aW9uLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS04MDAsICMyZTMwMzYpO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1xdWljay1ldmVudCDigJQgcGxhbi12b3JtIGRpZSBNRUVHUk9FSVQsIHZvb3IgaW4gZWVuIHBvcG92ZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFFETkEgdG9rZW5zOiAtLWMtZ3JleS0xMDAgKHNjaGVpZGluZ3NsaWpuZW4pLCAtLWMtdGV4dC1oZWFkaW5nIChzYW1lbnZhdHRpbmcpLFxuLy8gIC0tYy10ZXh0LW11dGVkIChoZXQgXCJUb3RcIi13b29yZGplKSwgLS1jLWdyZXktNTAgKGhvdmVyIG9wIGRlIHNhbWVudmF0dGluZykuXG4vLyAgQmV3dXN0IFdFSU5JRyBlaWdlbiBvcG1hYWs6IGRlIHZlbGRlbiBlbiBrbm9wcGVuIHppam4gaGVsZSBjb21wb25lbnRlbiBtZXQgaHVuXG4vLyAgZWlnZW4gdm9ybSwgZHVzIGhpZXIgc3RhYXQgYWxsZWVuIGRlIGluZGVsaW5nLiBFbGtlIHJlZ2VsIGRpZSBuaWV0IG92ZXIgcGxhYXRzaW5nXG4vLyAgZ2FhdCBob29ydCBpbiBoZXQgY29tcG9uZW50IHplbGYuXG4vLyAgRkxBVCBDU1MsIGdlZW4gbmVzdGluZywgcGVyIGRlIHYyLWNvbnZlbnRpZS5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucWRuYXByby1xdWljay1ldmVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvLyAzMjBweCBpcyBkZSBvbmRlcmdyZW5zIHdhYXJvcCBlZW4gZGF0dW1rbm9wIGVuIGVlbiB0aWpkdmVsZCBuYWFzdCBlbGthYXIgcGFzc2VuLlxuICAvLyBEZSBIT1NUIHpldCBkZSBlY2h0ZSBicmVlZHRlOiBxZG5hcHJvLXBvcG92ZXIgaXMgc3RhbmRhYXJkIDI4MHB4IGVuIGRhbiBzdGVla3RcbiAgLy8gZGV6ZSB2b3JtIGVydWl0LiBaaWUgZGUgcmVnZWwgdm9vciBbZGF0YS1zaGVldD1cInF1aWNrLWV2ZW50XCJdIGluIF9wd2EtY3VycmVudC5zY3NzLlxuICBtaW4td2lkdGg6IDMyMHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG59XG5cbi8vIEVsayB2ZWxkIG9wIGVlbiBlaWdlbiByZWdlbCBtZXQgd2F0IGx1Y2h0IGVydHVzc2VuLiBHZWVuIG1hcmdlIG9wIGhldCBsYWF0c3RlLFxuLy8gYW5kZXJzIHN0YXBlbHQgZGllIG9wIGRlIHBhZGRpbmcgdmFuIGRlIHZvZXRyZWdlbC5cbi5xZG5hcHJvLXF1aWNrLWV2ZW50X190b3AgPiAqLFxuLnFkbmFwcm8tcXVpY2stZXZlbnRfX3Jlc3QgPiAqIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi8vIC0tLS0gRGUgXCJ3YW5uZWVyXCItZ3JvZXA6IGRpY2h0Z2VrbGFwdCDDqcOpbiByZWdlbCwgdWl0Z2VrbGFwdCBkZSB2ZWxkZW4gLS0tLVxuLnFkbmFwcm8tcXVpY2stZXZlbnRfX3doZW4ge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4vLyBEZSBzYW1lbnZhdHRpbmdzcmVnZWwgWklFVCBFUlVJVCBhbHMgZWVuIGludm9lcnZlbGQgKEtpbSAwNy4wOC4yMDI2OiBcImRhbiBsaWprdCBoZXRcbi8vIGFsbGVtYWFsIGdlbGlqa1wiKS4gSGlqIHN0b25kIGVlcnN0IGFscyB2ZXRnZWRydWt0ZSBwYWFyc2UgdGVrc3QgdHVzc2VuIGRlIHZlbGRlbiBlblxuLy8gdHJvayBkYWFybWVlIGFsbGUgYWFuZGFjaHQgbmFhciBoZXQgZW5lIGRpbmcgZGF0IG1lZXN0YWwgYWwga2xvcHQuXG4vL1xuLy8gRGUgbWF0ZW4gemlqbiBvdmVyZ2Vub21lbiB2YW4gcWRuYXByby1pbnB1dCBzaXplPVwic21hbGxcIiAoNDBweCBob29nLCByYWRpdXMgOCwgZGV6ZWxmZGVcbi8vIHJhbmRrbGV1ciksIHpvZGF0IGhpaiBpbiBkZSByaWogcGFzdC4gRGF0IGlzIGJld3VzdCBlZW4gTkFCT09UU0lORyBlbiBnZWVuIGVjaHRlXG4vLyBxZG5hcHJvLWlucHV0OiBkaXQgZGluZyBpcyBlZW4gdWl0a2xhcHBlciwgZ2VlbiB2ZWxkIHdhYXIgamUgaW4gdHlwdCwgZW4gZXIgZWVuIGVjaHRcbi8vIGludm9lcnZlbGQgdmFuIG1ha2VuIHpvdSBlZW4gdG9ldHNlbmJvcmQgb3Byb2VwZW4gZW4gZWVuIHdhYXJkZSBiZWxvdmVuIGRpZSBlciBuaWV0IGlzLlxuLy8gQmxpamZ0IGRhYXJvbSBlZW4gPGJ1dHRvbj46IGJlcmVpa2JhYXIgbWV0IHRhYiBlbiBFbnRlci5cbi5xZG5hcHJvLXF1aWNrLWV2ZW50X19zdW1tYXJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDQwcHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0yMDAsICNkN2RhZTApO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWY0ZCk7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5xZG5hcHJvLXF1aWNrLWV2ZW50X19zdW1tYXJ5W2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnFkbmFwcm8tcXVpY2stZXZlbnRfX3N1bW1hcnk6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtZ3JleS0zMDAsICNjZGQxZDYpO1xufVxuLnFkbmFwcm8tcXVpY2stZXZlbnRfX3N1bW1hcnk6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xufVxuXG4ucWRuYXByby1xdWljay1ldmVudF9fZGV0YWlsIHtcbiAgcGFkZGluZzogNHB4IDAgMnB4O1xufVxuLnFkbmFwcm8tcXVpY2stZXZlbnRfX2RldGFpbFtoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gRGF0dW0gZW4gYmVpZGUgdGlqZGVuIG9wIMOJw4lOIHJlZ2VsIChLaW0gMDcuMDguMjAyNiwgbWV0IEdvb2dsZSBlcm5hYXN0KS4gRGUgZGF0dW1cbi8vIGtyaWpndCBkZSBkdWJiZWxlIGJyZWVkdGUgdmFuIGVlbiB0aWpkdmVsZCwgd2FudCBcIlphdGVyZGFnIDggYXVndXN0dXNcIiBpcyBudSBlZW5tYWFsXG4vLyBsYW5nZXIgZGFuIFwiMDk6MDBcIi4gQWxsZXMgbWFnIGtyaW1wZW4gKG1pbi13aWR0aDogMCksIHpvZGF0IGVlbiBsYW5nZSBkYWduYWFtIGRlXG4vLyB0aWpkdmVsZGVuIG5pZXQgZGUga2FhcnQgdWl0IGR1d3Qg4oCUIGRhdCB3YXMgZGUgdm9yaWdlIGZvdXQuXG4ucWRuYXByby1xdWljay1ldmVudF9fd2hlbi1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5xZG5hcHJvLXF1aWNrLWV2ZW50X19kYXRlZmllbGQge1xuICBmbGV4OiAyIDEgMDtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnFkbmFwcm8tcXVpY2stZXZlbnRfX3RpbWUge1xuICBmbGV4OiAxIDEgMDtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnFkbmFwcm8tcXVpY2stZXZlbnRfX2Rhc2gge1xuICBmbGV4OiBub25lO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbn1cblxuLy8gRGUga2FsZW5kZXIgaXMgZWVuIE9WRVJMQVkgKGVpZ2VuIHFkbmFwcm8tcG9wb3ZlciwgemllIF9vcGVuRGF0ZVBvcG92ZXIpLCBnZWVuXG4vLyBpbmxpbmUgdWl0a2xhcHBlcjogaW5saW5lIGJyYWNodCBkZSBrYWFydCBvcCAxMDA4cHggaG9vZy4gRGUgaGFhayB3YWFybWVlIGRlXG4vLyBvbWh1bGxlbmRlIHBvcG92ZXIgaGVtIGhlcmtlbnQgaXMgaGV0IEFUVFJJQlVVVCBbZGF0YS1xdWljay1ldmVudC1kYXRlcG9wXSBlbiBnZWVuXG4vLyBjbGFzcyDigJQgcWRuYXByby1wb3BvdmVyIG92ZXJzY2hyaWpmdCB6aWpuIGVpZ2VuIGNsYXNzTmFtZSBiaWogZWxrZSByZW5kZXIuIEVyIGlzXG4vLyBoaWVyIGdlZW4gb3BtYWFrIG5vZGlnOiBgcGFuZWxgIG9wIGRlIGRhdHVta2llemVyIGxldmVydCBkZSBvbWthZGVyaW5nIGFsLlxuXG4ucWRuYXByby1xdWljay1ldmVudF9fYWxsZGF5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLy8gSGV0IGxhYmVsIG5hYXN0IGRlIHNjaGFrZWxhYXIgaXMga2xpa2JhYXIgKHppZSBkZSBKUyksIGR1cyBoZXQga3Jpamd0IG9vayBkZVxuLy8gY3Vyc29yIGRpZSBkYXQgYmVsb29mdC5cbi5xZG5hcHJvLXF1aWNrLWV2ZW50X190b2dnbGUtbGFiZWwge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWY0ZCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXF1aWNrLWV2ZW50X19yZXBlYXQge1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG5cbi8vIC0tLS0gVm9ldHJlZ2VsIC0tLS1cbi8vIGZsZXgtd3JhcCBpcyBkZSBWQU5HUkFJTCBlbiBuaWV0IGRlIGJlZG9lbGluZzogbm9ybWFhbCBwYXNzZW4gZGUgZHJpZSBrbm9wcGVuIG9wXG4vLyDDqcOpbiByZWdlbCAoZ2VtZXRlbiAzNDVweCwgZW4gZGUgaG9zdCBnZWVmdCBkZSBwb3BvdmVyIDQwMHB4KS4gTWFhciBlZW4gbGFuZ2VyZVxuLy8gdmVydGFsaW5nIG9mIGVlbiBncm90ZXIgbGV0dGVydHlwZSBrYW4gZGFhcm92ZXJoZWVuIGdhYW4sIGVuIGRhbiBpcyBlZW4ga25vcCBkaWVcbi8vIG5ldGplcyBuYWFyIGRlIHZvbGdlbmRlIHJlZ2VsIHpha3Qgb25laW5kaWcgdmVlbCBiZXRlciBkYW4gZWVuIGtub3AgZGllIGRlIGthYXJ0XG4vLyB1aXRzdGVla3QuIERhdCBsYWF0c3RlIGlzIHByZWNpZXMgd2F0IGVyIDA3LjA4LjIwMjYgb3AgS2ltcyBzY2hlcm0gZ2ViZXVyZGUgdG9lblxuLy8gZGUgcG9wb3ZlciBub2cgb3AgemlqbiBzdGFuZGFhcmQgMjgwcHggc3RvbmQuXG4ucWRuYXByby1xdWljay1ldmVudF9fZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZy10b3A6IDEycHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTtcbn1cbi8vIER1d3QgQW5udWxlcmVuIGVuIEJldmVzdGlnZW4gbmFhciByZWNodHMgZW4gbGFhdCBcIk1lZXIgb3B0aWVzXCIgbGlua3Mgc3RhYW4uIERpZVxuLy8gc2NoZWlkaW5nIGlzIGRlIGJlZG9lbGluZzogbGlua3MgZ2EgamUgdmVyZGVyIGluIGVlbiBhbmRlcmUgdm9ybSwgcmVjaHRzIHJvbmQgamVcbi8vIGRlemUgYWYuXG4ucWRuYXByby1xdWljay1ldmVudF9fc3BhY2VyIHtcbiAgZmxleDogMSAxIGF1dG87XG59XG4iLCIvLyBxZG5hcHJvLWV2ZW50LXNoZWV0IOKAlCB0aGUgXCJOZXcgam9iXCIgZXZlbnQtY3JlYXRpb24gc2hlZXQgKFBXQSBjYWxlbmRhciBNMikuXG4vLyBGTEFUIENTUyAodGhlIFBXQSBjb21wb25lbnQgc3luYyBzdHJpcHMgY29tbWVudHMgb25seSwgbm8gbmVzdGluZy92YXJzKS5cbi8vIFRoZSBpbm5lciBxZG5hcHJvLWJvdHRvbS1zaGVldCBwb3J0YWxzIHRvIDxib2R5Piwgc28gZXZlcnkgaG9vayBsaXZlcyBvblxuLy8gW2RhdGEtZXMtc2hlZXRdICh0aGUgaW5uZXIgc2hlZXQgaG9zdCwgYSBkYXRhLWF0dHIgYmVjYXVzZSB0aGUgc2hlZXQgd2lwZXNcbi8vIGl0cyBvd24gY2xhc3NOYW1lKSBhbmQgLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAodGhlIGNvbnRlbnQgcm9vdCkuXG4vLyBGaWdtYSBsYXlvdXQgdHJ1dGg6IGdyZXkgc2hlZXQgc3VyZmFjZSB3aXRoIHdoaXRlIG9wdGlvbiBjYXJkcy4gVHlwZSBhbmRcbi8vIFJlcGVhdCB1c2UgdGhlIHN3aXRjaC1wYWdlIHBhdHRlcm4gKEtpbSAwMi4wNy4yMDI2KTogdGhlIHdob2xlIHNoZWV0IGZhY2Vcbi8vIHNsaWRlcyBsZWZ0IGFuZCBhIHN1YiBwYWdlIChCYWNrICsgc2VhcmNoICsgbGlzdCkgc2xpZGVzIGluIGZyb20gdGhlIHJpZ2h0LlxuXG4vLyBUaGUgaG9zdCBpcyBvbmx5IGEgaG9sZGVyOyB0aGUgaW5uZXIgc2hlZXQgaXMgZml4ZWQtcG9zaXRpb24gZWxzZXdoZXJlXG5xZG5hcHJvLWV2ZW50LXNoZWV0IHsgZGlzcGxheTogY29udGVudHM7IH1cblxuLy8gR3JleSBzaGVldCBzdXJmYWNlIGJlaGluZCB0aGUgd2hpdGUgY2FyZHMgKEZpZ21hICNlZGVlZjEg4oaSIGdyZXktNTAgdG9rZW4pLlxuLy8gRlVOREFNRU5UQUwgaGVpZ2h0IG1vZGVsIChLaW0gMDIuMDcuMjAyNik6IHRoZSBzaGVldCBoYXMgT05FIEZJWEVEIGhlaWdodCBmb3Jcbi8vIGl0cyB3aG9sZSBsaWZldGltZSDigJQgYWxsIDggRmlnbWEgc3RhdGVzIGFyZSBlcXVhbGx5IHRhbGwuIFBpY2tlcnMgZm9sZGluZyBvdXQsXG4vLyBkcmlsbC1pbiBwYWdlcyBhbmQgc2VhcmNoIGFsbCBsaXZlIElOU0lERSB0aGF0IGhlaWdodCB3aXRoIGludGVybmFsIHNjcm9sbGluZyxcbi8vIHNvIHRoZSBzaGVldCBvdXRsaW5lIG5ldmVyIG1vdmVzIGFuZCBub3RoaW5nIG5lZWRzIG1lYXN1cmluZyBpbiBKUy5cbi5xZG5hcHJvLWJvdHRvbS1zaGVldFtkYXRhLWVzLXNoZWV0XSAuYnMtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xuICBoZWlnaHQ6IDg2JTsgLy8gdGhlIHNoZWV0J3MgZXhpc3RpbmcgbWF4IGRldGVudCwgbm93IGZpeGVkXG59XG4vLyBUaGUgcGFnZXMgb3duIHRoZWlyIHNjcm9sbGluZzsgdGhlIGJvZHkgaXMganVzdCB0aGUgc3RyZXRjaCBmcmFtZVxuLnFkbmFwcm8tYm90dG9tLXNoZWV0W2RhdGEtZXMtc2hlZXRdIC5icy1ib2R5IHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4vLyAtLS0gUGFnZSBzbGlkZXIgKG1haW4gZmFjZSDihpQgc3ViIHBhZ2UpLCBib3RoIGV4YWN0bHkgdGhlIGZyYW1lJ3MgaGVpZ2h0IC0tLVxuLy8gVEhFIE1PVkVNRU5UIElTIE5PVCBIRVJFIEFOWSBNT1JFICgwMy4wOC4yMDI2KS4gVGhlIHRyYW5zZm9ybXMsIHRoZSBkdXJhdGlvbiwgdGhlIGN1cnZlXG4vLyBhbmQgdGhlIGZhZGUgYWxsIGNvbWUgZnJvbSB0aGUgc2hhcmVkIC5xZG5hcHJvLXNsaWRlLXBhZ2VzIHZvY2FidWxhcnkgaW4gZGVzaWduLXRva2Vucztcbi8vIHRoZSBtYXJrdXAgY2FycmllcyBgcWRuYXByby1zbGlkZS1wYWdlcy0tZnJhbWVgIHBsdXMgLS1maXJzdC8tLXNlY29uZCwgYW5kIHRoZSBKUyB0b2dnbGVzXG4vLyBpcy1zZWNvbmQvaXMtY3VycmVudC4gS2ltIGNhdWdodCB0aGUgUFdBIGdyb3dpbmcgYSBUSElSRCBoYW5kLXdyaXR0ZW4gY29weSBvZiB0aGVzZSBleGFjdFxuLy8gbnVtYmVycywgc28gdGhleSBub3cgbGl2ZSBpbiBvbmUgcGxhY2UuIFdoYXQgc3RheXMgYmVsb3cgaXMgb25seSB3aGF0IGlzIGdlbnVpbmVseVxuLy8gZXZlbnQtc2hlZXQ6IHRoZSBmbGV4IGZyYW1lLCB0aGUgZ2FwIGJldHdlZW4gcm93cyBhbmQgdGhlIG1haW4gZmFjZSdzIGludGVybmFsIHNjcm9sbGluZy5cbi8vIERvIE5PVCByZS1hZGQgYSB0cmFuc2Zvcm0gb3IgYSBkdXJhdGlvbiBoZXJlLlxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtcGFnZXMge1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xufVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtcGFnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTBweDtcbn1cbi8vIE1haW4gZmFjZSBzY3JvbGxzIGludGVybmFsbHkgd2hlbiBhbiBpbmxpbmUgcGlja2VyIGZvbGRzIG91dCAoaGlkZGVuIHNjcm9sbGJhcixcbi8vIHNhbWUgcnVsZSBhcyBicy1ib2R5OiBhIHNoZWV0IG5ldmVyIHNob3dzIG9uZSlcbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXBhZ2UtbWFpbiB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xufVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtcGFnZS1tYWluOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gU3ViIHBhZ2UgaGVhZGVyOiBCYWNrXG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1zdWItaGVhZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHBhZGRpbmc6IDJweCAwOyB9XG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1iYWNrIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXJvdyk7XG4gIHBhZGRpbmc6IDEwcHggMTRweCAxMHB4IDhweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNHMgZWFzZTtcbn1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLWJhY2s6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwKTsgfVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtYmFjazphY3RpdmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMjAwKTsgfVxuXG4vLyBUYXNrbGlzdCBsaXN0IChzdWIgcGFnZSk6IHdoaXRlIGNhcmQgb2Ygcm93cy4gVGhlIHN1YiBwYWdlIGhhcyBhIGZpeGVkIGhlaWdodFxuLy8gKHRoZSBkcmlsbCBoZWlnaHQpLCBzbyB0aGUgbGlzdCBmbGV4ZXMgaW50byB0aGUgcmVtYWluaW5nIHNwYWNlIGJlbG93IHRoZVxuLy8gQmFjayBoZWFkZXIgKyBzZWFyY2ggZmllbGQgYW5kIHNjcm9sbHMgaW50ZXJuYWxseS5cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXRsLWxpc3Qge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMpO1xuICBwYWRkaW5nOiA2cHg7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xufVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtdGwtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1yb3cpO1xuICBwYWRkaW5nOiA5cHggMTJweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNHMgZWFzZTtcbn1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXRsLXJvdzpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7IH1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXRsLXJvdzphY3RpdmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwKTsgfVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtdGwtcm93W2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4vLyBUaGUgdGFza2xpc3QncyBhY3Rpdml0eSBpY29uIG9uIGl0cyBhY3Rpdml0eSBjb2xvdXJcbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXRsLWljbyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiAzOHB4O1xuICBoZWlnaHQ6IDM4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG59XG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy10bC1pY28gLmVzLXRsLWltZyB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtdGwtbmFtZSB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy10bC1jaGVjayB7IGRpc3BsYXk6IG5vbmU7IGZsZXgtc2hyaW5rOiAwOyBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNzAwKTsgfVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtdGwtcm93LmlzLWFjdGl2ZSAuZXMtdGwtY2hlY2sgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxuXG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy10eXBlLWVtcHR5IHtcbiAgcGFkZGluZzogMTJweCAxNnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuXG4vLyBSZXBlYXQgc3ViIHBhZ2U6IHRoZSByYWRpbyBncm91cCBjYXJkIChjaGVjayBhbmltYXRpb24gY29tZXMgd2l0aCB0aGUgZ3JvdXApXG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1wYWdlLXN1YiAucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTsgfVxuXG4vLyAtLS0gTWFpbiBwYWdlIC0tLVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtdG9wYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAycHggMnB4IDRweDtcbn1cblxuLy8gV2hpdGUgb3B0aW9uIGNhcmRzIG9uIHRoZSBncmV5IHNoZWV0XG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1jYXJkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0zKTtcbiAgcGFkZGluZzogNnB4O1xufVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtY2FyZCA+IHFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbiB7IGJvcmRlci1yYWRpdXM6IHZhcigtLXItcm93KTsgfVxuXG4vLyBDb2xsYXBzaWJsZSBpbmxpbmUgcGFuZWxzIChkYXRlIC8gdGltZSBwaWNrZXJzKVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtcGFuZWwge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuMjhzIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKTtcbn1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXBhbmVsID4gLmVzLXBhbmVsLWlubmVyIHsgb3ZlcmZsb3c6IGhpZGRlbjsgbWluLWhlaWdodDogMDsgfVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtcGFuZWwuaXMtb3BlbiB7IGdyaWQtdGVtcGxhdGUtcm93czogMWZyOyB9XG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1wYW5lbC1pbm5lciA+IHFkbmFwcm8tbW9udGgtc3RyaXAsXG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1wYW5lbC1pbm5lciA+IHFkbmFwcm8tdGltZS1waWNrZXIgeyBtYXJnaW46IDRweCA2cHggOHB4OyB9XG4vLyBDZW50cmUgdGhlIHRpbWUgd2hlZWwgaW4gdGhlIGNhcmQgKEZpZ21hIFN0YXJ0L0VuZCB0aW1lIHN0YXRlcykuIFRoZSBwaWNrZXIgaXNcbi8vIGlubGluZS1mbGV4LCBzbyB0ZXh0LWFsaWduIGNlbnRyZXMgaXQgV0lUSE9VVCBicmVha2luZyB0aGUgMGZyLzFmciBmb2xkIHRyaWNrXG4vLyAoYSBmbGV4IC5lcy1wYW5lbC1pbm5lciBjb2xsYXBzZXMgdGhlIDFmciByb3cgdG8gMCBoZWlnaHQpLlxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSBbZGF0YS1lcy1wYW5lbD1cInN0YXJ0LXRpbWVcIl0gLmVzLXBhbmVsLWlubmVyLFxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSBbZGF0YS1lcy1wYW5lbD1cImVuZC10aW1lXCJdIC5lcy1wYW5lbC1pbm5lciB7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vLyBXaG9sZS1kYXkgcm93XG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1hbGxkYXktcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiA3cHggMTJweCA3cHggMTZweDtcbn1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLWFsbGRheS1sZWFkIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbn1cblxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtZGl2aWRlciB7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IDRweCA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDApO1xufVxuXG4vLyBTdGFydCAvIEVuZCByb3dzOiBkYXRlIGJ1dHRvbiBsZWZ0LCB0aW1lIGJ1dHRvbiByaWdodFxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtZHQtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogMnB4IDRweDtcbn1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLWR0LWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcm93KTtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTcwMCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE0cyBlYXNlLCBjb2xvciAwLjE0cyBlYXNlO1xufVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtZHQtYnRuOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTsgfVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtZHQtYnRuOmFjdGl2ZSB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDApOyB9XG4vLyBUaGUgYnV0dG9uIHdob3NlIHBpY2tlciBwYW5lbCBpcyBvcGVuXG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1kdC1idG4uaXMtYWN0aXZlIHsgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTsgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7IH1cblxuLy8gQWxsLWRheTogdGhlIHRpbWUgYnV0dG9ucyBkaXNhcHBlYXIgKEZpZ21hIEFsbCBEYXkgdmFyaWFudClcbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLWNhcmQtd2hlbi5lcy1hbGxkYXktb24gLmVzLWR0LXRpbWUgeyBkaXNwbGF5OiBub25lOyB9XG5cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLWNhcmQtZGVzYyB7IHBhZGRpbmc6IDEwcHggMTJweCAxMnB4OyB9XG5cbi8vIFBsYW4tZXZlbnQgbW9kZSAobW9kZT1cImV2ZW50XCIpOiBmcmVlIHRpdGxlIGZpZWxkICsgcmVkIGRlbGV0ZSAoZWRpdCBvbmx5KVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtY2FyZC10aXRsZSB7IHBhZGRpbmc6IDEwcHggMTJweCAxMnB4OyB9XG4ucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1jYXJkLWRlbGV0ZSB7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xufVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtY2FyZC1kZWxldGUgPiBxZG5hcHJvLWJ1dHRvbiB7IHdpZHRoOiAxMDAlOyB9XG5cbi8vIENvbmZpcm0gd2l0aG91dCBhIGNob3NlbiB0YXNrbGlzdDogc2hha2UgdGhlIFR5cGUgcm93XG5Aa2V5ZnJhbWVzIGVzLXdpZ2dsZSB7XG4gIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDIwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNnB4KTsgfVxuICA0MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KTsgfVxuICA2MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTNweCk7IH1cbiAgODAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7IH1cbn1cbi5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXdpZ2dsZSB7IGFuaW1hdGlvbjogZXMtd2lnZ2xlIDAuNHMgZWFzZTsgfVxuXG4vKiBSZWN1cnJpbmcgcGVyc29uYWwgZXZlbnRzIChQbGFubmVyIEY2IGZhc2UgMSwgMjAuMDcuMjAyNikg4oCUIHRoZVxuICogcmVwZWF0LWludGVydmFsL3VudGlsIGZpZWxkcyBpbnNpZGUgdGhlIHJlcGVhdCBzdWItcGFnZSwgYW5kIHRoZVxuICogZWRpdC9kZWxldGUgZWRpdC1zY29wZSBjaG9vc2VyIHN1Yi1wYWdlLiBCYWNrLXBvcnRlZCBoZXJlIChibzIgaXMgdGhlXG4gKiBjYW5vbmljYWwgZXZlbnQtc2hlZXQgc291cmNlOyB0aGUgUFdBIGNvcHkgaXMgZ2VuZXJhdGVkIGJ5XG4gKiBzeW5jLXYyLWNvbXBvbmVudHMpIHNvIGEgc3luYyBubyBsb25nZXIgd2lwZXMgdGhlIFBXQS1zaWRlIHJ1bGVzLiAqL1xuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtcmVwZWF0LWV4dHJhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMHB4O1xufVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtc2NvcGUtdGl0bGUge1xuICBwYWRkaW5nOiA0cHggMTJweCAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtc2NvcGUtY29uZmlybS1idG4ge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMjRweCk7XG4gIG1hcmdpbjogNHB4IDEycHggMDtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tZXZlbnQtc2hlZXQtYm9keSAuZXMtcGFuZWwgeyB0cmFuc2l0aW9uOiBub25lOyB9XG4gIC5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXBhZ2VzLFxuICAucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy1wYWdlLW1haW4sXG4gIC5xZG5hcHJvLWV2ZW50LXNoZWV0LWJvZHkgLmVzLXBhZ2Utc3ViIHsgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAucWRuYXByby1ldmVudC1zaGVldC1ib2R5IC5lcy13aWdnbGUgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL2Zhdm9yaXRlLWJ1dHRvbi9fZmF2b3JpdGUtYnV0dG9uLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbiB7XG4gIC0tYy1mb2N1cy1yaW5nOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLWMtZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgcGFkZGluZzogNHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2UsIGNvbG9yIDMwMG1zIGVhc2UtaW4tb3V0LCBib3gtc2hhZG93IDEyMG1zIGVhc2U7XG59XG4ucWRuYXByby1mYXZvcml0ZS1idXR0b246aG92ZXI6bm90KC5mYXZvcml0ZS1idXR0b24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ncmV5LTUwKTtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG4ucWRuYXByby1mYXZvcml0ZS1idXR0b246YWN0aXZlOm5vdCguZmF2b3JpdGUtYnV0dG9uLWRpc2FibGVkKSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDgwbXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZSwgY29sb3IgMzAwbXMgZWFzZS1pbi1vdXQ7XG59XG4ucWRuYXByby1mYXZvcml0ZS1idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jLWZvY3VzLXJpbmcpLCAwIDAgMCA2cHggdmFyKC0tYy1mb2N1cy1nbG93KTtcbn1cbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbiAuZmF2b3JpdGUtYnV0dG9uLWljb25zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uLmZhdm9yaXRlLWJ1dHRvbi1zaXplLWJpZyB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tc2l6ZS1iaWcgLmZhdm9yaXRlLWJ1dHRvbi1pY29ucyB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG4ucWRuYXByby1mYXZvcml0ZS1idXR0b24gLmZhdm9yaXRlLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIGVhc2UtaW4tb3V0O1xufVxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uIC5mYXZvcml0ZS1pY29uLW91dGxpbmUge1xuICBvcGFjaXR5OiAxO1xufVxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uIC5mYXZvcml0ZS1pY29uLWZpbGxlZCB7XG4gIG9wYWNpdHk6IDA7XG4gIGZpbGw6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1mYXZvcml0ZS1idXR0b24gLmZhdm9yaXRlLWljb24tcHVsc2Uge1xuICBvcGFjaXR5OiAwO1xuICBmaWxsOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uLmZhdm9yaXRlLWJ1dHRvbi1mYXZvcml0ZWQge1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tZmF2b3JpdGVkIC5mYXZvcml0ZS1pY29uLW91dGxpbmUge1xuICBvcGFjaXR5OiAwO1xufVxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uLmZhdm9yaXRlLWJ1dHRvbi1mYXZvcml0ZWQgLmZhdm9yaXRlLWljb24tZmlsbGVkIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tcHVsc2luZyAuZmF2b3JpdGUtaWNvbi1wdWxzZSB7XG4gIGFuaW1hdGlvbjogcWRuYXByby1mYXZvcml0ZS1wdWxzZSA2MDBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiBIZWFydCBtb2RlIChLaW0gMjAyNi0wNi0zMCk6IHJlZC9waW5rIGZpbGwsIG5vIHJpcHBsZSBwdWxzZSwgYW5kIGFcbiAgIHBvcCBhbmltYXRpb24gb24gdGhlIGZpbGxlZCBoZWFydCB3aGVuIGZhdm9yaXRlZC4gUGFydGljbGVzIGFyZSBzcGF3bmVkXG4gICBpbiBKUyBhbmQgYXBwZW5kZWQgdG8gPGJvZHk+LiAqL1xuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uLmZhdm9yaXRlLWJ1dHRvbi1tb2RlLWhlYXJ0LmZhdm9yaXRlLWJ1dHRvbi1mYXZvcml0ZWQge1xuICBjb2xvcjogdmFyKC0tYy1mYXZvcml0ZS1oZWFydCk7XG59XG4ucWRuYXByby1mYXZvcml0ZS1idXR0b24uZmF2b3JpdGUtYnV0dG9uLW1vZGUtaGVhcnQgLmZhdm9yaXRlLWljb24tZmlsbGVkIHtcbiAgZmlsbDogdmFyKC0tYy1mYXZvcml0ZS1oZWFydCk7XG59XG4ucWRuYXByby1mYXZvcml0ZS1idXR0b24uZmF2b3JpdGUtYnV0dG9uLW1vZGUtaGVhcnQgLmZhdm9yaXRlLWljb24tcHVsc2Uge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uLmZhdm9yaXRlLWJ1dHRvbi1tb2RlLWhlYXJ0LmZhdm9yaXRlLWJ1dHRvbi1wb3BwaW5nIC5mYXZvcml0ZS1pY29uLWZpbGxlZCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgYW5pbWF0aW9uOiBxZG5hcHJvLWhlYXJ0LXBvcCA1MjBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSk7XG59XG5cbkBrZXlmcmFtZXMgcWRuYXByby1oZWFydC1wb3Age1xuICAwJSAgIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAyMCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjgpOyB9XG4gIDUwJSAgeyB0cmFuc2Zvcm06IHNjYWxlKDEuNDUpOyB9XG4gIDcwJSAgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOyB9XG4gIDg1JSAgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbn1cblxuQGtleWZyYW1lcyBxZG5hcHJvLWZhdm9yaXRlLXB1bHNlIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgyKTtcbiAgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uLFxuICAucWRuYXByby1mYXZvcml0ZS1idXR0b24gLmZhdm9yaXRlLWljb24ge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTIwbXMgZWFzZSwgY29sb3IgMTIwbXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlO1xuICB9XG4gIC5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbjpob3Zlcjpub3QoLmZhdm9yaXRlLWJ1dHRvbi1kaXNhYmxlZCksXG4gIC5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbjphY3RpdmU6bm90KC5mYXZvcml0ZS1idXR0b24tZGlzYWJsZWQpIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbiAgLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uLmZhdm9yaXRlLWJ1dHRvbi1wdWxzaW5nIC5mYXZvcml0ZS1pY29uLXB1bHNlIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbiAgLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uLmZhdm9yaXRlLWJ1dHRvbi1wb3BwaW5nIC5mYXZvcml0ZS1pY29uLWZpbGxlZCB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1mYXZvcml0ZS1idXR0b24ge1xuICAtLWMtZm9jdXMtcmluZzogI2E1YWNmZjtcbiAgLS1jLWZvY3VzLWdsb3c6IHJnYmEoMTY1LCAxNzIsIDI1NSwgMC40MCk7XG4gIGNvbG9yOiAjODk4ZTk5O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uOmhvdmVyOm5vdCguZmF2b3JpdGUtYnV0dG9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiAjZjBmMWYyO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uLmZhdm9yaXRlLWJ1dHRvbi1mYXZvcml0ZWQge1xuICBjb2xvcjogI2E1YWNmZjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tZmF2b3JpdGVkIC5mYXZvcml0ZS1pY29uLWZpbGxlZCB7XG4gIGZpbGw6ICNhNWFjZmY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1mYXZvcml0ZS1idXR0b24uZmF2b3JpdGUtYnV0dG9uLWZhdm9yaXRlZCAuZmF2b3JpdGUtaWNvbi1wdWxzZSB7XG4gIGZpbGw6ICNhNWFjZmY7XG59XG5cbi8qIFdoaXRlIHZhcmlhbnQ6IHdoaXRlIHN0YXIgZm9yIHVzZSBvdmVyIHBob3RvcyAvIGltYWdlcnkuIFBsYWNlZFxuICAgbGFzdCBzbyBpdCB3aW5zIG92ZXIgdGhlIGZhdm9yaXRlZCArIGRhcmstdGhlbWUgY29sb3VyIHJ1bGVzLiAqL1xuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uLmZhdm9yaXRlLWJ1dHRvbi12YXJpYW50LXdoaXRlLFxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uLmZhdm9yaXRlLWJ1dHRvbi12YXJpYW50LXdoaXRlLmZhdm9yaXRlLWJ1dHRvbi1mYXZvcml0ZWQsXG4ucWRuYXByby1mYXZvcml0ZS1idXR0b24uZmF2b3JpdGUtYnV0dG9uLXZhcmlhbnQtd2hpdGU6aG92ZXI6bm90KC5mYXZvcml0ZS1idXR0b24tZGlzYWJsZWQpIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuLnFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uLmZhdm9yaXRlLWJ1dHRvbi12YXJpYW50LXdoaXRlIC5mYXZvcml0ZS1pY29uLWZpbGxlZCxcbi5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbi5mYXZvcml0ZS1idXR0b24tdmFyaWFudC13aGl0ZSAuZmF2b3JpdGUtaWNvbi1wdWxzZSB7XG4gIGZpbGw6ICNmZmZmZmY7XG59XG5cbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWZhdm9yaXRlLWJ1dHRvbi5jc3MubWFwICovXG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9maWxlLWljb24vX2ZpbGUtaWNvbi1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqICBxZG5hcHJvLWZpbGUtaWNvbiDigJQgY29tcGlsZWQgZnJvbSBfZmlsZS1pY29uLnNjc3NcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ucWRuYXByby1maWxlLWljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIC8qIEFuY2hvciBmb3IgdGhlIGFic29sdXRlbHktcG9zaXRpb25lZCBmYWxsYmFjayBiYWRnZS5cbiAgICAgICBXaXRob3V0IHRoaXMsIHRoZSBiYWRnZSBlc2NhcGVzIHRvIHRoZSBuZWFyZXN0IHBvc2l0aW9uZWRcbiAgICAgICBhbmNlc3RvciBhbmQgcmVuZGVycyBBQk9WRSB0aGUgaWNvbiBpbnN0ZWFkIG9mIG92ZXJsYXlpbmcgaXQuXG4gICAgICAgW0tpbSAyMDI2LTA1LTA2XSAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5xZG5hcHJvLWZpbGUtaWNvbi5maWxlLWljb24tMjQgeyB3aWR0aDogMjRweDsgaGVpZ2h0OiAzMHB4OyB9XG4ucWRuYXByby1maWxlLWljb24uZmlsZS1pY29uLTMyIHsgd2lkdGg6IDMycHg7IGhlaWdodDogNDBweDsgfVxuLnFkbmFwcm8tZmlsZS1pY29uLmZpbGUtaWNvbi00MCB7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDUwcHg7IH1cbi5xZG5hcHJvLWZpbGUtaWNvbi5maWxlLWljb24tNDggeyB3aWR0aDogNDhweDsgaGVpZ2h0OiA2MHB4OyB9XG5cbi8qIEV4dC10ZXh0IGZhbGxiYWNrIGJhZGdlIOKAlCBISURERU4gYnkgZGVmYXVsdC4gVGhlIGNvbXBvbmVudCdzIEpTXG4gICBhZGRzIGBxZG5hcHJvLWZpbGUtaWNvbi1uby1hc3NldGAgdG8gdGhlIGhvc3Qgb25seSB3aGVuIEJPVEggdGhlXG4gICBleHQtc3BlY2lmaWMgQU5EIHRoZSBnZW5lcmljIFNWRyBmYWlsIHRvIGxvYWQuIFRoZSBkaXNwbGF5Om5vbmVcbiAgIGtlZXBzIHRoZSBiYWRnZSBmcm9tIGJsZWVkaW5nIHRocm91Z2ggYW50aS1hbGlhc2VkIC8gdHJhbnNwYXJlbnRcbiAgIHBpeGVscyBvZiBhIHN1Y2Nlc3NmdWwgU1ZHIGxvYWQuICovXG4ucWRuYXByby1maWxlLWljb24gLnFkbmFwcm8tZmlsZS1pY29uLWJhZGdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLnFkbmFwcm8tZmlsZS1pY29uLnFkbmFwcm8tZmlsZS1pY29uLW5vLWFzc2V0IC5xZG5hcHJvLWZpbGUtaWNvbi1iYWRnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCk7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHotaW5kZXg6IDA7XG59XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1maWxlLWljb24ucWRuYXByby1maWxlLWljb24tbm8tYXNzZXQgLnFkbmFwcm8tZmlsZS1pY29uLWJhZGdlIHtcbiAgICBiYWNrZ3JvdW5kOiAjMmUzMDM2O1xuICAgIGJvcmRlci1jb2xvcjogIzU2NWI2NjtcbiAgICBjb2xvcjogI2E2YWFiMztcbn1cblxuLyogRGFyay1tb2RlIHBvbGlzaCDigJQgc3VidGxlIG91dGVyIGdsb3cgb24gdGhlIFNWRyBib2R5IHNvIHRoZVxuICAgd2hpdGUgcGFwZXItb24tc2NyZWVuIGljb24gc3RheXMgdmlzaWJsZSBhZ2FpbnN0IGRhcmsgY2FudmFzLiAqL1xuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLWZpbGUtaWNvbiBzdmcge1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTApKTtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12MVwiIGludG8gd2ViL2Nzcy92MS9zdHlsZS12MS5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqICBxZG5hcHJvLWZvbGRlci1pY29uIOKAlCBjb21waWxlZCBmcm9tIF9mb2xkZXItaWNvbi5zY3NzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnFkbmFwcm8tZm9sZGVyLWljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIC8qIEFuY2hvciBmb3IgdGhlIGFic29sdXRlbHktcG9zaXRpb25lZCBmYWxsYmFjayBiYWRnZS4gV2l0aG91dCB0aGlzLFxuICAgICAgIHRoZSBiYWRnZSBlc2NhcGVzIHRvIHRoZSBuZWFyZXN0IHBvc2l0aW9uZWQgYW5jZXN0b3IgaW5zdGVhZCBvZlxuICAgICAgIG92ZXJsYXlpbmcgdGhlIGljb24g4oCUIHNhbWUgcmVhc29uaW5nIGFzIHFkbmFwcm8tZmlsZS1pY29uLiAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogRXh0LXRleHQgZmFsbGJhY2sgYmFkZ2Ug4oCUIEhJRERFTiBieSBkZWZhdWx0LiBUaGUgY29tcG9uZW50J3MgSlMgYWRkc1xuICAgYHFkbmFwcm8tZm9sZGVyLWljb24tbm8tYXNzZXRgIHRvIHRoZSBob3N0IG9ubHkgd2hlbiBCT1RIIHRoZVxuICAgdmFyaWFudC1zcGVjaWZpYyBBTkQgdGhlIFwiY2xvc2VkXCIgZmFsbGJhY2sgU1ZHIGZhaWwgdG8gbG9hZC4gKi9cbi5xZG5hcHJvLWZvbGRlci1pY29uIC5xZG5hcHJvLWZvbGRlci1pY29uLWJhZGdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLnFkbmFwcm8tZm9sZGVyLWljb24ucWRuYXByby1mb2xkZXItaWNvbi1uby1hc3NldCAucWRuYXByby1mb2xkZXItaWNvbi1iYWRnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCk7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHotaW5kZXg6IDA7XG59XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1mb2xkZXItaWNvbi5xZG5hcHJvLWZvbGRlci1pY29uLW5vLWFzc2V0IC5xZG5hcHJvLWZvbGRlci1pY29uLWJhZGdlIHtcbiAgICBiYWNrZ3JvdW5kOiAjMmUzMDM2O1xuICAgIGJvcmRlci1jb2xvcjogIzU2NWI2NjtcbiAgICBjb2xvcjogI2E2YWFiMztcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tc3RhdHVzLWJhZGdlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBXaGl0ZSBwaWxsIHN1cmZhY2luZyBkb2N1bWVudC9mb2xkZXIgc3RhdHVzIGluIHRoZSBQV0E6XG4vLyAgaGVhcnQgKGZhdm9yaXRlKSwgY2hlY2stZGVjYWdyYW0gKGRvd25sb2FkZWQgb2ZmbGluZSkgYW5kL29yXG4vLyAgc3Rhci1mb3VyLXBvaW50cyAobmV3IC8gdW5yZWFkKS4gRWFjaCBpY29uIHNob3dzIGluZGVwZW5kZW50bHkuXG4vLyAgTmVzdGVkIHFkbmFwcm8taWNvbiBpbnN0YW5jZXMgY2FycnkgdGhlIGdseXBoczsgdGhpcyBmaWxlIG9ubHlcbi8vICBzaXplcyB0aGUgcGlsbCBhbmQgY29sb3VycyB0aGUgaWNvbnMuXG4vL1xuLy8gIEZMQVQgQ1NTIChmdWxseS1xdWFsaWZpZWQgc2VsZWN0b3JzLCBubyBuZXN0aW5nKSBzbyB0aGUgUFdBIHN5bmNcbi8vICAoLy8tc3RyaXAgY29weSBpbnRvIGNvbXBvbmVudHMtdjIvcWRuYS1zdGF0dXMtYmFkZ2UuY3NzKSBzdGF5cyB2YWxpZC5cbi8vXG4vLyAgUUROQSB0b2tlbnMgdXNlZDpcbi8vICAgIC0tYy1wdXJwbGUtNTAgICAgICAjZTZlOWZmICAgMXB4IGJvcmRlciAoc29mdGVuZWQgZnJvbSBwdXJwbGUtMTAwIOKAlCBLaW0gMjIuMDcuMjAyNilcbi8vICAgIC0tYy1hY3Rpb24tNTAwICAgICAjNDY1MmYzICAgb2ZmbGluZSAvIGNoZWNrLWRlY2FncmFtIGljb25cbi8vICAgIC0tYy1mYXZvcml0ZS1oZWFydCAjZmY0ZDZhICAgaGVhcnQgaWNvblxuLy8gICAgLS1jLXB1cnBsZS01MDAgICAgICM0MDQ5OWEgICB1bnJlYWQgLyBzcXVhcmUtcm91bmRlZC1iYWRnZS1vdXRsaW5lIGljb25cbi8vICAgIHdoaXRlICAgICAgICAgICAgICAjZmZmZmZmICAgZmlsbCAoRmlnbWEgRkZGRkZGKVxuLy9cbi8vICBTaXplcyAoRmlnbWEpOlxuLy8gICAgbGFyZ2UgKGRlZmF1bHQpICBpY29ucyAyNHB4IC0+IDMycHggdGFsbCwgNjRweCB3aWRlIHcvIHR3byBpY29uc1xuLy8gICAgc21hbGwgICAgICAgICAgICBpY29ucyAyMHB4IC0+IDI4cHggdGFsbCwgNTZweCB3aWRlIHcvIHR3byBpY29uc1xuLy8gICAgcGFkZGluZyA0cHgsIGdhcCA4cHgsIHJhZGl1cyAyNHB4IChmdWxseSByb3VuZGVkIHBpbGwpLCBjbGlwIGNvbnRlbnQuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnFkbmFwcm8tc3RhdHVzLWJhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7ICAgLyoga2VlcHMgdGhlIDFweCBib3JkZXIgXCJpbnNpZGVcIiAoRmlnbWEgc3Ryb2tlOiBJbnNpZGUpICovXG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtcHVycGxlLTUwLCAjZTZlOWZmKTtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgICAgICAgICAvKiBGaWdtYSBcIkNsaXAgY29udGVudFwiICovXG59XG5cbi8qIEhpZGRlbiB3aGVuIG5vIHN0YXR1cyBpcyBzZXQg4oCUIGNvbGxhcHNlIG91dCBvZiBmbG93LiAqL1xuLnFkbmFwcm8tc3RhdHVzLWJhZGdlW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIEljb24gY29sb3Vycy4gcWRuYXByby1pY29uIHJlbmRlcnMgTURJIFNWRyB3aXRoIGZpbGw6IGN1cnJlbnRDb2xvcixcbiAgIHNvIHNldHRpbmcgYGNvbG9yYCBvbiB0aGUgbmVzdGVkIGVsZW1lbnQgdGludHMgdGhlIGdseXBoLiAqL1xuLnFkbmFwcm8tc3RhdHVzLWJhZGdlIC5zdGF0dXMtYmFkZ2UtaGVhcnQge1xuICAgIGNvbG9yOiB2YXIoLS1jLWZhdm9yaXRlLWhlYXJ0LCAjZmY0ZDZhKTtcbn1cblxuLnFkbmFwcm8tc3RhdHVzLWJhZGdlIC5zdGF0dXMtYmFkZ2Utb2ZmbGluZSB7XG4gICAgY29sb3I6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG59XG5cbi5xZG5hcHJvLXN0YXR1cy1iYWRnZSAuc3RhdHVzLWJhZGdlLXVucmVhZCB7XG4gICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogaW50ZXJhY3RpdmUgdmFyaWFudCAoMjguMDcuMjAyNiwgUFdBIGRvY3VtZW50cyBiYWRnZS1pbmZvIGRpYWxvZykgICovXG4vKiBPcHQtaW46IHJvbGU9XCJidXR0b25cIiArIHRhYmluZGV4IGlzIHNldCBieSB0aGUgSlMuIFB1cmVseSB2aXN1YWwgICAqL1xuLyogYWRkaXRpb25zIGhlcmUg4oCUIGhvdmVyL2FjdGl2ZSBmZWVkYmFjayArIHRoZSBpbnZpc2libGUgaGl0LWFyZWEuICAgKi9cbi8qIFdJVEhPVVQgW2ludGVyYWN0aXZlXSBub25lIG9mIHRoaXMgYXBwbGllcywgc28gdGhlIGRlZmF1bHQgcGlsbCAgICAqL1xuLyogc3RheXMgcGl4ZWwtZm9yLXBpeGVsIHdoYXQgaXQgd2FzIGJlZm9yZSB0aGlzIHZhcmlhbnQgZXhpc3RlZC4gICAgICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5xZG5hcHJvLXN0YXR1cy1iYWRnZS5zdGF0dXMtYmFkZ2UtaW50ZXJhY3RpdmUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgICAvKiBjb250YWluaW5nIGJsb2NrIGZvciB0aGUgOjphZnRlciBoaXQtYXJlYSAqL1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2UsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLCB0cmFuc2Zvcm0gODBtcyBlYXNlLW91dDtcbn1cblxuLnFkbmFwcm8tc3RhdHVzLWJhZGdlLnN0YXR1cy1iYWRnZS1pbnRlcmFjdGl2ZTpob3ZlciB7XG4gICAgLyogU3VidGxlIOKAlCByZXVzZSB0aGUgc2FtZSBzb2Z0IHB1cnBsZSB3YXNoIHRoZSByZXN0IG9mIHRoZSBsaWJyYXJ5XG4gICAgICAgdXNlcyBmb3IgaG92ZXItb24td2hpdGUgKHFkbmFwcm8tZ3JpZC10aWxlJ3MgLS1xZ3QtYmctaG92ZXIgdG9rZW4pLiAqL1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3ZlciwgI2Y3ZjhmYSk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS0xMDAsICNjMGM1ZmYpO1xufVxuXG4ucWRuYXByby1zdGF0dXMtYmFkZ2Uuc3RhdHVzLWJhZGdlLWludGVyYWN0aXZlOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk0KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNzBtcyBlYXNlLW91dDtcbn1cblxuLnFkbmFwcm8tc3RhdHVzLWJhZGdlLnN0YXR1cy1iYWRnZS1pbnRlcmFjdGl2ZTpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuLnFkbmFwcm8tc3RhdHVzLWJhZGdlLnN0YXR1cy1iYWRnZS1pbnRlcmFjdGl2ZTpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nKSwgMCAwIDAgNnB4IHZhcigtLWZvY3VzLWdsb3cpO1xufVxuXG4vKiBJbnZpc2libGUgaGl0LWFyZWEsIE5PVCBhIGJpZ2dlciBwaWxsLiBUaGUgcGlsbCBpdHNlbGYga2VlcHMgdGhlIEZpZ21hXG4gICBzaXplICgyOHB4IHRhbGwgYXQgc2l6ZT1cInNtYWxsXCIpIGJlY2F1c2UgaXQgc2l0cyByaWdodCBuZXh0IHRvIG90aGVyXG4gICBjb250cm9scyDigJQgYSAzLWRvdCBtZW51IGJ1dHRvbiBpbiBhIGxpc3Qgcm93LCBvciB0aGUgY29ybmVyIG9mIGEgZ3JpZFxuICAgdGlsZSDigJQgYW5kIGEgbGFyZ2UgaGl0LWFyZWEgd291bGQgZWF0IGludG8gdGhvc2UgbmVpZ2hib3Vycy4gQSBmbGF0XG4gICA2cHgtcGVyLXNpZGUgaW5zZXQgbGFuZHMgc2l6ZT1cInNtYWxsXCIgKDI4cHggdGFsbCkgb24gYSB+NDBweCB0YXBwYWJsZVxuICAgc3F1YXJlICh0aGUgbWluaW11bSB0b3VjaCB0YXJnZXQpIHdpdGhvdXQgcmVhY2hpbmcgZmFyIGVub3VnaCB0b1xuICAgb3ZlcmxhcCBhbnl0aGluZyBiZXNpZGUgaXQ7IHNpemU9XCJsYXJnZVwiICgzMi8zNnB4IHRhbGwpIGNsZWFycyA0MHB4XG4gICB3aXRoIHRoZSBzYW1lIDZweCwga2VwdCBmb3Igb25lIGNvbnNpc3RlbnQgcnVsZS4gKi9cbi5xZG5hcHJvLXN0YXR1cy1iYWRnZS5zdGF0dXMtYmFkZ2UtaW50ZXJhY3RpdmU6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogLTZweDtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tc3RhdHVzLXRyYWNrXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBDb21wYWN0IHNlZ21lbnRlZCBzdGF0dXMgdHJhY2sgZm9yIGEgbGlzdCByb3cuIFppZSBkZSBkb2NibG9jayBpblxuLy8gIHdlYi9qcy9jb21wb25lbnRzL3YyL3N0YXR1cy10cmFjay9xZG5hLXN0YXR1cy10cmFjay5qcyB2b29yIHdhYXJvbSBkaXRcbi8vICBjb21wb25lbnQgYmVzdGFhdCBlbiB3YWFyb20gcWRuYXByby1wcm9ncmVzcyBuaWV0IHZvbGRlZWQuXG4vL1xuLy8gIEFsbGUga2xldXJlbiB2aWEgZGVzaWduLXRva2Vucy4gRGUgdmllciB0b25lbiBzdHVyZW4gdHdlZSBjdXN0b21cbi8vICBwcm9wZXJ0aWVzIGFhbiAoLS1zdC1maWxsIGVuIC0tc3QtdGV4dCk7IGRlIHJlc3QgdmFuIGhldCBiZXN0YW5kIHdlZXRcbi8vICBuaWV0cyB2YW4ga2xldXIgYWYuIERhYXJkb29yIGtsb3B0IGRlIGRvbmtlcmUgbW9kdXMgdmFuemVsZjogZGUgdG9rZW5zXG4vLyAgZHJhYWllbiBvbSwgZGl0IGJlc3RhbmQgbmlldC5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucWRuYXByby1zdGF0dXMtdHJhY2sge1xuICAgIC8vIFN0YW5kYWFyZHRvb24uIEVsa2UgW2RhdGEtdG9uZV0gaGllcm9uZGVyIHpldCBhbGxlZW4gZGV6ZSB0d2VlIG9tLlxuICAgIC0tc3QtZmlsbDogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM1YjRkZDEpO1xuICAgIC0tc3QtdGV4dDogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICAtLXN0LWVtcHR5OiB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZTNlMmYwKTtcblxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgLy8gTm9vaXQgbWVlZ3JvZWllbiBtZXQgZGUgcmlqOiBkaXQgaXMgZWVuIGluZGljYXRvciwgZ2VlbiBrb2xvbS5cbiAgICBmbGV4OiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAmX19iYXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAzcHg7XG4gICAgfVxuXG4gICAgJl9fc2VnIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zdC1lbXB0eSk7XG4gICAgICAgIC8vIERlIGR1dXIgaG9vcnQgYmlqIGhldCBtaWNyby1yZWdpc3RlciAoMTIwIHRvdCAyNTBtcyksIG5pZXQgYmlqIGRlXG4gICAgICAgIC8vIDUyMG1zIHZhbiBoZXQgaGFydGplOiBkZXplIHJpaiBzdGFhdCA2NiBrZWVyIG9wIGhldCBzY2hlcm0uXG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTgwbXMgZWFzZSwgb3BhY2l0eSAxODBtcyBlYXNlO1xuXG4gICAgICAgIC8vIFZlcmxvb3Agb3ZlciBoZXQgc3Bvb3IuIFpvbmRlciBkaXQgemlqbiB0d2VlIGdldnVsZGUgc2VnbWVudGVuXG4gICAgICAgIC8vIGFsbGVlbiB0YWxyaWprZXIgZGFuIMOpw6luLCBuaWV0IHppY2h0YmFhciB2ZXJkZXI6IFwidG9lZ2V3ZXplblwiIGVuXG4gICAgICAgIC8vIFwib3BlblwiIGtyZWdlbiBleGFjdCBkZXplbGZkZSBrbGV1ciAoS2ltIDA4LjA4LjIwMjYpLiAtLXN0LWkgaXMgZGVcbiAgICAgICAgLy8gcG9zaXRpZSAwLi4xIGRpZSBoZXQgY29tcG9uZW50IHBlciBzZWdtZW50IG1lZWdlZWZ0OyBoZXQgbGFhdHN0ZVxuICAgICAgICAvLyBnZXZ1bGRlIHNlZ21lbnQgaXMgYWx0aWpkIGhldCBzdGVya3N0LCBkdXMgamUgbGVlc3QgZGUgdm9vcnRnYW5nXG4gICAgICAgIC8vIG9vayB6b25kZXIgZGUgYmxva2plcyB0ZSB0ZWxsZW4uXG4gICAgICAgIC8vXG4gICAgICAgIC8vIERla2tpbmcgZW4gbmlldCBlZW4gdHdlZWRlIGtsZXVyLCB3YW50IGRhbiB3ZXJrdCBoZXQgdmVybG9vcCBpblxuICAgICAgICAvLyBiZWlkZSB0aGVtYSdzOiBvcCB3aXQgd29yZHQgaGV0IGxpY2h0ZXIsIG9wIGRvbmtlciBkb25rZXJkZXIuXG4gICAgICAgICYuaXMtZmlsbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXN0LWZpbGwpO1xuICAgICAgICAgICAgb3BhY2l0eTogY2FsYygwLjQyICsgMC41OCAqIHZhcigtLXN0LWksIDEpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICBjb2xvcjogdmFyKC0tc3QtdGV4dCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHRvbmVuXG4gICAgJltkYXRhLXRvbmU9XCJkb25lXCJdIHtcbiAgICAgICAgLS1zdC1maWxsOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjMmM3YTViKTtcbiAgICAgICAgLS1zdC10ZXh0OiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjMmM3YTViKTtcbiAgICB9XG5cbiAgICAvLyBcIlRlIGxhYXRcIiBpcyBpbiBoZXQgZGF0YW1vZGVsIGdlZW4gc3RhdHVzIG1hYXIgZWVuIGFmbGVpZGluZyBvcFxuICAgIC8vIGxlZXNtb21lbnQuIERhYXJvbSBrbGV1cnQgaGllciBoZXQgU1BPT1IsIGVuIHZlcnNjaHVpZnQgZGUgaGFsdGUgbmlldDpcbiAgICAvLyBqZSB6aWV0IG5vZyBzdGVlZHMgaG9lIHZlciBoZXQgaXMsIHBsdXMgZGF0IGhldCB0ZSBsYWF0IGlzLlxuICAgIC8vXG4gICAgLy8gVHdlZSB6d2FhcnRlcyB2YW4gaGV0emVsZmRlIGZlaXQuIFRlIGxhYXQgTUVUIGVlbiBkYXR1bSBlcm9wIGlzIG1pbmRlclxuICAgIC8vIGFsYXJtZXJlbmQgZGFuIHRlIGxhYXQgd2FhciBuaWVtYW5kIG5hYXIga2lqa3QsIGVuIGVlbiBtdXVyIHZhbiB1bmlmb3JtXG4gICAgLy8gcm9vZCB2ZXJiZXJndCBwcmVjaWVzIGRhdCB2ZXJzY2hpbCAoS2ltIDA4LjA4LjIwMjYpLlxuICAgIC8vIEhpZXIgbG9wZW4gdnVsbGluZyBlbiB0ZWtzdCBCRVdVU1QgdWl0ZWVuLCBlbiBkYXQgaXMgcHJlY2llcyB3YWFyb21cbiAgICAvLyAtLXN0LWZpbGwgZW4gLS1zdC10ZXh0IHR3ZWUgbG9zc2UgcHJvcGVydGllcyB6aWpuLlxuICAgIC8vXG4gICAgLy8gSGV0IHByb2JsZWVtOiAtLWMtc2lnbmFsLW9yYW5nZS10ZXh0ICgjYmM2YTFmKSBlbiAtLWMtc2lnbmFsLXJlZC10ZXh0XG4gICAgLy8gKCNjNjVhNWEpIGhlYmJlbiB2cmlqd2VsIGRlemVsZmRlIGhlbGRlcmhlaWQuIE9wIDRweCBob2dlIGJsb2tqZXMgZW5cbiAgICAvLyAxMnB4IHRla3N0IHdhcmVuIHplIG5pZXQgdWl0IGVsa2FhciB0ZSBob3VkZW4gKEtpbSAwOC4wOC4yMDI2KS5cbiAgICAvL1xuICAgIC8vIERlIG9wbG9zc2luZyBzcGxpdHN0IGRlIHJvbGxlbi4gRGUgU0VHTUVOVEVOIHppam4gYmxva2plcywgZ2VlbiB0ZWtzdCxcbiAgICAvLyBkdXMgZGFhciBtYWcgZWVuIGZlbCBhbWJlciBkYXQgb25taXNrZW5iYWFyIG5hYXN0IHJvb2Qgc3RhYXQuIEhldCBMQUJFTFxuICAgIC8vIGlzIHdlbCB0ZWtzdCBlbiBtb2V0IGxlZXNiYWFyIGJsaWp2ZW4gb3Agd2l0LCBkdXMgZGF0IGtyaWpndCBkZSBkb25rZXJlXG4gICAgLy8gdmFyaWFudC4gU2FtZW46IGdvZWQgdGUgb25kZXJzY2hlaWRlbiBlbiBnb2VkIHRlIGxlemVuLlxuICAgICZbZGF0YS10b25lPVwid2FyblwiXSB7XG4gICAgICAgIC0tc3QtZmlsbDogdmFyKC0tYy13YXJuLXllbGxvdy02MDAsICNmNTllMGIpO1xuICAgICAgICAtLXN0LXRleHQ6IHZhcigtLWMtd2Fybi1hbWJlci02MDAsICNiNDUzMDkpO1xuICAgIH1cblxuICAgICZbZGF0YS10b25lPVwibGF0ZVwiXSB7XG4gICAgICAgIC0tc3QtZmlsbDogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNiODM1M2EpO1xuICAgICAgICAtLXN0LXRleHQ6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYjgzNTNhKTtcbiAgICB9XG5cbiAgICAvLyBWZXJ2YWxsZW4gc3RhYXQgbmFhc3QgZGUgcmVpcy4gTnVsIGdldnVsZGUgc2VnbWVudGVuIGxlZXN0IGFsc1xuICAgIC8vIFwiaGV0IGlzIG5vb2l0IGJlZ29ubmVuXCIsIGVuIGRhdCBrbG9wdC5cbiAgICAmW2RhdGEtdG9uZT1cIm9mZlwiXSB7XG4gICAgICAgIC0tc3QtZmlsbDogdmFyKC0tYy10ZXh0LWRpc2FibGVkLCAjOWE5YWIwKTtcbiAgICAgICAgLS1zdC10ZXh0OiB2YXIoLS1jLXRleHQtZGlzYWJsZWQsICM5YTlhYjApO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gdG9lZ2Fua2VsaWpraGVpZFxuICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgICAgIC5xZG5hcHJvLXN0YXR1cy10cmFja19fc2VnIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXN0YXRpb24tdHJhY2sgICsgIHFkbmFwcm8tc3RhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgRWVuIGRyYWFkIHZhbiBzdGF0aW9ucyBtZXQgcGVyIHN0YXRpb24gZWVuIGVpZ2VuIHN0YW5kLiBaaWUgZGUgZG9jYmxvY2sgaW5cbi8vICB3ZWIvanMvY29tcG9uZW50cy92Mi9zdGF0aW9uLXRyYWNrL3FkbmEtc3RhdGlvbi10cmFjay5qcyB2b29yIHdhYXJvbSBkaXRcbi8vICBjb21wb25lbnQgYmVzdGFhdCBlbiB3YWFyb20gcWRuYXByby1zdGF0dXMtdHJhY2sgbmlldCB2b2xkZWVkLlxuLy9cbi8vICBBbGxlIGtsZXVyIHZpYSBkZXNpZ24tdG9rZW5zLCB2aWEgdmllciBsb2thbGUgcHJvcGVydGllcyBwZXIgc3RhbmQuIEhldFxuLy8gIGRvbmtlcmUgdGhlbWEgZHJhYWl0IGRlIHRva2VucyBvbSwgZGl0IGJlc3RhbmQgbmlldC5cbi8vXG4vLyAgRGUgdmllciBzdGFuZGVuOlxuLy8gICAgZG9uZSAgZ2V2dWxkIGdyb2VuICAgICAgICAgICAgKGtsYWFyKVxuLy8gICAgcnVuICAgZ2V2dWxkIGFtYmVyICAgICAgICAgICAgKGxvb3B0IG5vZylcbi8vICAgIHRvZG8gIG9wZW4gcmluZywgbWVya3BhYXJzICAgICh3YWNodCBvcCBpZW1hbmQ6IGRlIGVuaWdlIGRpZSBhYW5kYWNodCB2cmFhZ3QpXG4vLyAgICBub25lICBnZWRlbXB0IGdyaWpzICAgICAgICAgICAobm9nIG5pZXQgYWFuIHRvZSlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBHZWRlZWxkZSBrbGV1cmVuIHBlciBzdGFuZC4gLS1xc3QtZmlsbCBpcyBkZSB2dWxsaW5nLCAtLXFzdC1yaW5nIGRlIHJhbmQsIC0tcXN0LWlua1xuLy8gaGV0IGNpamZlciBvZiB2aW5ramUgZXJpbi5cbkBtaXhpbiBxc3Qtc3RhdGUtY29sb3JzIHtcbiAgICAtLXFzdC1maWxsOiB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZTNlMmYwKTtcbiAgICAtLXFzdC1yaW5nOiB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZTNlMmYwKTtcbiAgICAtLXFzdC1pbms6ICB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuXG4gICAgJltkYXRhLXN0YXRlPVwiZG9uZVwiXSB7XG4gICAgICAgIC0tcXN0LWZpbGw6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQsICM0MjhiNmUpO1xuICAgICAgICAtLXFzdC1yaW5nOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTtcbiAgICAgICAgLS1xc3QtaW5rOiAgI2ZmZjtcbiAgICB9XG4gICAgJltkYXRhLXN0YXRlPVwicnVuXCJdIHtcbiAgICAgICAgLS1xc3QtZmlsbDogdmFyKC0tYy13YXJuLXllbGxvdy02MDAsICNmNTllMGIpO1xuICAgICAgICAtLXFzdC1yaW5nOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCwgI2Y1OWUwYik7XG4gICAgICAgIC0tcXN0LWluazogICNmZmY7XG4gICAgfVxuICAgIC8vIFdhY2h0IG9wIGllbWFuZDogYmV3dXN0IEdFRU4gdnVsbGluZy4gRWVuIG9wZW4gcmluZyBsZWVzdCBhbHMgXCJoaWVyIG1vZXQgbm9nIGlldHNcbiAgICAvLyBpblwiLCBlbiBkZSBtZXJra2xldXIgbWFha3QgaGVtIGhldCBlbmlnZSBzdGF0aW9uIGRhdCBvbSBhYW5kYWNodCB2cmFhZ3QuXG4gICAgJltkYXRhLXN0YXRlPVwidG9kb1wiXSB7XG4gICAgICAgIC0tcXN0LWZpbGw6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gICAgICAgIC0tcXN0LXJpbmc6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNWI0ZGQxKTtcbiAgICAgICAgLS1xc3QtaW5rOiAgdmFyKC0tYy1icmFuZC1wdXJwbGUsICM1YjRkZDEpO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGRlIGRyYWFkIGluIGhldCBrbGVpblxuLnFkbmFwcm8tc3RhdGlvbi10cmFjayB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBmbGV4OiBub25lO1xuXG4gICAgJl9fZG90IHtcbiAgICAgICAgQGluY2x1ZGUgcXN0LXN0YXRlLWNvbG9ycztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcXN0LWZpbGwpO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1xc3QtcmluZyk7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gZWVuIHN0YXRpb24gaW4gaGV0IGdyb290XG4vLyBEZSByYWlsIHN0YWF0IGFic29sdXV0IGxpbmtzOiB6byBsb29wdCBkZSBsaWpuIG92ZXIgZGUgdm9sbGUgaG9vZ3RlIHZhbiBkZSBpbmhvdWQsXG4vLyBob2UgbGFuZyBkaWUgb29rIGlzLCB6b25kZXIgZGF0IGRlIGluaG91ZCB6ZWxmIGluIGVlbiByYXN0ZXIgZ2VwZXJzdCBob2VmdCB0ZSB3b3JkZW4uXG4ucWRuYXByby1zdGF0aW9uIHtcbiAgICBAaW5jbHVkZSBxc3Qtc3RhdGUtY29sb3JzO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwIDAgMjJweCA0NnB4O1xuICAgIG1pbi13aWR0aDogMDtcblxuICAgICZbZGF0YS1sYXN0XSB7IHBhZGRpbmctYm90dG9tOiAwOyB9XG5cbiAgICAmX19yYWlsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fZG90IHtcbiAgICAgICAgZmxleDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcXN0LWZpbGwpO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1xc3QtcmluZyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1xc3QtaW5rKTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgIH1cblxuICAgICZfX2xpbmUge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgd2lkdGg6IDJweDtcbiAgICAgICAgbWFyZ2luOiA0cHggMCAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLXNvZnQsICNlM2UyZjApO1xuICAgIH1cbiAgICAmW2RhdGEtbGFzdF0gJl9fbGluZSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICZfX2hlYWQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogNHB4IDEwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDc1MDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMmIzMzg0KTtcbiAgICB9XG5cbiAgICAmX19zdGF0ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgfVxuXG4gICAgLy8gV2llIGVyIGFhbiBkZSBiZXVydCBpczogcmVjaHRzIHVpdGdlbGlqbmQsIHpvZGF0IGplIGhldCBiaWogaGV0IHNjYW5uZW4gdmFuIGRlXG4gICAgLy8gc3RhdGlvbnMgb25kZXIgZWxrYWFyIGluIGVlbiBrb2xvbSBsZWVzdC5cbiAgICAmX193aG8ge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2NTA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtc2Vjb25kYXJ5LCAjNGI0YTc1KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtMTAwLCAjZWNlYWZmKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIHBhZGRpbmc6IDNweCAxMHB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgIC8vIEtsYW50ZW50ZWtzdCBpbiBlZW4gc3RhdGlvbiAoZWVuIHZvb3JzdGVsLCBlZW4gY2l0YWF0KSBtb2V0IGt1bm5lbiBhZmJyZWtlbiwgb29rXG4gICAgLy8gb3AgZWVuIHNjaHVpbmUgc3RyZWVwICh2YWxrdWlsIDZlKS5cbiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbn1cbiIsIi8vIHFkbmFwcm8tZmlsZS11cGxvYWQg4oCUIGEgc2VsZi1jb250YWluZWQgdXBsb2FkIGNhcmQgKGluZm8gbm90ZSArIGRhc2hlZCBkcm9wXG4vLyB6b25lICsgY2hvc2VuLWZpbGUgcm93ICsgaW5saW5lIGVycm9yKS4gUG9ydGVkIGZyb20gdGhlIGltcG9ydC1hY3Rpdml0eVxuLy8gbW9kYWwncyB1cGxvYWQgYmxvY2sgc28gYW55IG1vZGFsIGNhbiByZXVzZSB0aGUgc2FtZSBmcmllbmRseSBmaWxlIHBpY2tlci5cbi8vIFZhbHVlcyBtaXJyb3IgdGhhdCBhcHByb3ZlZCBkZXNpZ24gMToxOyB0aGUgcGljayBidXR0b24gbWF0Y2hlcyB0aGUgdjJcbi8vIHByaW1hcnktcHVycGxlIGJ1dHRvbi5cblxuLnFkbmFwcm8tZmlsZS11cGxvYWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyAtLS0gT3B0aW9uYWwgaW5mbyBub3RlIChwdXJwbGUpIC0tLVxuLnFkbmFwcm8tZmlsZS11cGxvYWRfX25vdGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA4cHg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXB1cnBsZS1zb2Z0LTEyKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuXG4gICAgJltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxufVxuLnFkbmFwcm8tZmlsZS11cGxvYWRfX25vdGUtaWNvbiB7IGZsZXgtc2hyaW5rOiAwOyBtYXJnaW4tdG9wOiAxcHg7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IH1cbi5xZG5hcHJvLWZpbGUtdXBsb2FkX19ub3RlLXRleHQgc3Ryb25nIHsgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTsgfVxuXG4vLyAtLS0gRHJvcCB6b25lIChkYXNoZWQpIC0tLVxuLy8gRHVyaW5nIGEgZHJhZyB0aGUgc3RhdGljIGRhc2hlZCBib3JkZXIgaXMgc3dhcHBlZCBmb3IgdGhlIFNBTUUgbWFyY2hpbmctYW50c1xuLy8gb3ZlcmxheSBhcyBxZG5hcHJvLWRyb3Atem9uZSAoZGFzaGVkIHZhcmlhbnQpOiBhbiBhbmltYXRlZCBTVkcgPHJlY3Q+IHJpZGVzXG4vLyB0aGUgZWRnZSArIHNvZnQgY29ybmVyIHJhZGlhbHMgdGludCB0aGUgc3VyZmFjZS4gUHVycGxlID0gdmFsaWQsIHJlZCA9IHJlamVjdC5cbi5xZG5hcHJvLWZpbGUtdXBsb2FkX196b25lIHtcbiAgICAvLyBDb2xvdXJzIChtaXJyb3IgcWRuYXByby1kcm9wLXpvbmUncyAtLWR6LSogc2V0KS5cbiAgICAtLWZ1LWMtYm9yZGVyOiAgICAgIHZhcigtLWMtcHVycGxlLTUwMCk7ICAgICAgICAgICAgICAgICAgLy8gdmFsaWQgbWFyY2hpbmctYW50cyArIHRpbnQgYmFzZVxuICAgIC0tZnUtYy1iZy10aW50OiAgICAgcmdiYSg3MCwgODIsIDI0MywgMC4wOCk7ICAvLyBjb3JuZXIgcmFkaWFscyAodmFsaWQpXG4gICAgLS1mdS1jLXJlamVjdDogICAgICB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7ICAgICAgICAgICAgICAgICAgLy8gcmVqZWN0IG1hcmNoaW5nLWFudHNcbiAgICAtLWZ1LWMtcmVqZWN0LXRpbnQ6IHJnYmEoMTk4LCA5MCwgOTAsIDAuMTApOyAgLy8gY29ybmVyIHJhZGlhbHMgKHJlamVjdClcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmNob3IgdGhlIGFic29sdXRlIGFudHMgb3ZlcmxheVxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDI4cHggMTZweDtcbiAgICBib3JkZXI6IDJweCBkYXNoZWQgdmFyKC0tYy1ib3JkZXItdHJlZSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQtaG92ZXIpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDE0MG1zIGVhc2UsIGJhY2tncm91bmQgMTQwbXMgZWFzZTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cy12aXNpYmxlIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS0zMDApOyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpOyBvdXRsaW5lOiBub25lOyB9XG5cbiAgICAvLyBBY3RpdmUgKHZhbGlkKTogaGlkZSB0aGUgc3RhdGljIGJvcmRlciwgdGludCB0aGUgY29ybmVycywgcGFpbnQgKyBydW4gdGhlIGFudHMuXG4gICAgJi5pcy1kcmFnb3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCB0b3AgbGVmdCwgdmFyKC0tZnUtYy1iZy10aW50KSwgdHJhbnNwYXJlbnQgNTUlKSxcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGJvdHRvbSByaWdodCwgdmFyKC0tZnUtYy1iZy10aW50KSwgdHJhbnNwYXJlbnQgNTUlKTtcbiAgICAgICAgLS1mdS1tYXJjaC1jb2xvcjogdmFyKC0tZnUtYy1ib3JkZXIpO1xuICAgIH1cbiAgICAvLyBSZWplY3QgKGEgTUlNRS10eXBlZCBkcmFnIHRoYXQgZG9lc24ndCBtYXRjaCBgYWNjZXB0YCk6IHJlZCBhbnRzICsgdGludC5cbiAgICAmLmlzLWRyYWdvdmVyLmlzLXJlamVjdCB7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCB0b3AgbGVmdCwgdmFyKC0tZnUtYy1yZWplY3QtdGludCksIHRyYW5zcGFyZW50IDU1JSksXG4gICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBib3R0b20gcmlnaHQsIHZhcigtLWZ1LWMtcmVqZWN0LXRpbnQpLCB0cmFuc3BhcmVudCA1NSUpO1xuICAgICAgICAtLWZ1LW1hcmNoLWNvbG9yOiB2YXIoLS1mdS1jLXJlamVjdCk7XG4gICAgfVxufVxuLnFkbmFwcm8tZmlsZS11cGxvYWRfX3pvbmUtaWNvbiB7IGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQtcHApOyBsaW5lLWhlaWdodDogMDsgfVxuXG4vLyAtLS0gTWFyY2hpbmctYW50cyBvdmVybGF5IChTVkcpIC0tLVxuLnFkbmFwcm8tZmlsZS11cGxvYWRfX2FudHMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLy8gRGVmYXVsdCBTVkcgb3ZlcmZsb3c6aGlkZGVuIGNsaXBzIHRoZSBvdXRlciBoYWxmIG9mIHN0cm9rZS13aWR0aD0yLCBsZWF2aW5nXG4gICAgLy8gYSBjbGVhbiByaW5nIG9uIHRoZSBpbnNpZGUgYWxpZ25lZCB3aXRoIHRoZSB6b25lJ3MgYm9yZGVyLXJhZGl1cy5cbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7ICAgICAgICAgICAgLy8gaW52aXNpYmxlIHVudGlsIC0tZnUtbWFyY2gtY29sb3IgaXMgc2V0IChhY3RpdmUpXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7ICAgICAgICAgIC8vIGNsaWNrcyBwYXNzIHRocm91Z2ggdG8gdGhlIHpvbmUgLyBwaWNrIGJ1dHRvblxufVxuLnFkbmFwcm8tZmlsZS11cGxvYWRfX2FudHMtcmVjdCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDJweCk7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAycHgpO1xuICAgIGFuaW1hdGlvbjogcWRuYS1mdS1tYXJjaCAxLjZzIGxpbmVhciBpbmZpbml0ZTtcbn1cbi5xZG5hcHJvLWZpbGUtdXBsb2FkX196b25lLmlzLWRyYWdvdmVyIC5xZG5hcHJvLWZpbGUtdXBsb2FkX19hbnRzIHtcbiAgICBjb2xvcjogdmFyKC0tZnUtbWFyY2gtY29sb3IpOyAgLy8gc3Ryb2tlPVwiY3VycmVudENvbG9yXCIg4oaSIHBhaW50cyB0aGUgYW50c1xufVxuXG5Aa2V5ZnJhbWVzIHFkbmEtZnUtbWFyY2gge1xuICAgIHRvIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMjsgfVxufVxuLnFkbmFwcm8tZmlsZS11cGxvYWRfX3RpdGxlIHsgbWFyZ2luOiA0cHggMCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1jLWNoaXAtcHVycGxlLXRleHQpOyB9XG4ucWRuYXByby1maWxlLXVwbG9hZF9fb3IgICAgeyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWMtZ3JleS00MDApOyB9XG4ucWRuYXByby1maWxlLXVwbG9hZF9faGludCAgeyBtYXJnaW46IDZweCAwIDA7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWMtZ3JleS00MDApOyB9XG5cbi8vIC0tLSBQaWNrIGJ1dHRvbiAtLS1cbi8vIFVzZXMgdGhlIHJlYWwgPHFkbmFwcm8tYnV0dG9uIHR5cGU9XCJwcmltYXJ5LXB1cnBsZVwiIHNpemU9XCJzbWFsbFwiPiBjb21wb25lbnQsXG4vLyB3aGljaCBicmluZ3MgaXRzIG93biBzdHlsaW5nIOKAlCBubyBidXR0b24gcnVsZXMgbmVlZGVkIGhlcmUuIFRoZSBtYXJrZXIgY2xhc3Ncbi8vIGlzIG9ubHkgZm9yIHRoZSBKUyByZWYgbG9va3VwLlxuLnFkbmFwcm8tZmlsZS11cGxvYWRfX3BpY2sgeyBmbGV4OiAwIDAgYXV0bzsgfVxuXG4vLyAtLS0gQ2hvc2VuLWZpbGUgcm93IC0tLVxuLnFkbmFwcm8tZmlsZS11cGxvYWRfX2Nob3NlbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuXG4gICAgJltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxufVxuLnFkbmFwcm8tZmlsZS11cGxvYWRfX2ZpbGUtaWNvbiB7IGZsZXgtc2hyaW5rOiAwOyBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpOyBsaW5lLWhlaWdodDogMDsgfVxuLnFkbmFwcm8tZmlsZS11cGxvYWRfX2ZpbGUtbmFtZSB7IGZsZXg6IDEgMSBhdXRvOyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2YXIoLS1jLWNoaXAtcHVycGxlLXRleHQpOyB3b3JkLWJyZWFrOiBicmVhay1hbGw7IH1cbi5xZG5hcHJvLWZpbGUtdXBsb2FkX19yZW1vdmUge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDI4cHg7IGhlaWdodDogMjhweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlLCBjb2xvciAxMjBtcyBlYXNlO1xuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7IGNvbG9yOiAjYzMzYTMwOyB9XG59XG5cbi8vIC0tLSBJbmxpbmUgZXJyb3IgLS0tXG4ucWRuYXByby1maWxlLXVwbG9hZF9fZXJyb3Ige1xuICAgIG1hcmdpbjogMTJweCAwIDA7XG4gICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLXNvZnQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtY2hpcC1yZWQtaG92ZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRhZy1jcml0aWNhbC10ZXh0KTtcblxuICAgICZbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLy8gLS0tIERpc2FibGVkIC0tLVxuLnFkbmFwcm8tZmlsZS11cGxvYWQuaXMtZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLy8gLS0tIERhcmsgdGhlbWUgKGxpZnRlZCBwdXJwbGUsIHNhbWUgYXMgcWRuYXByby1kcm9wLXpvbmUpIC0tLVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLWZpbGUtdXBsb2FkX196b25lIHtcbiAgICAtLWZ1LWMtYm9yZGVyOiAgICAgICNhNWFjZmY7XG4gICAgLS1mdS1jLWJnLXRpbnQ6ICAgICByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuMTApO1xuICAgIC0tZnUtYy1yZWplY3Q6ICAgICAgI2ZiYWFhYTtcbiAgICAtLWZ1LWMtcmVqZWN0LXRpbnQ6IHJnYmEoMjUxLCAxNzAsIDE3MCwgMC4xMCk7XG59XG5cbi8vIC0tLSBSZWR1Y2VkIG1vdGlvbjoga2VlcCB0aGUgZGFzaGVkIHJpbmcsIGRyb3AgdGhlIG1vdmVtZW50IC0tLVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucWRuYXByby1maWxlLXVwbG9hZF9fYW50cy1yZWN0IHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG4iLCIvLyBxZG5hcHJvLWZpbHRlci1zaGVldCDigJQgdGhyZWUtc2VjdGlvbiBmaWx0ZXIgYm9keSBmb3IgaW5zaWRlIGEgcWRuYXByby1ib3R0b20tc2hlZXRcbi8vIChTb3J0IC8gRmlsdGVyIC8gRGlzcGxheSkuIEZMQVQgQ1NTIG9uIHB1cnBvc2U7IGNvbG91cnMvcmFkaWkvc3BhY2luZyBhbGwgY29tZVxuLy8gZnJvbSB0aGUgZGVzaWduLXRva2VuIDpyb290ICh2YXIoLS1jLSopIC8gLS1yLSogLyAtLXMtKikg4oCUIG5vICQtdmFyaWFibGVzLCBub1xuLy8gbmVzdGVkICYg4oCUIHNvIHRoaXMgZmlsZSBjYW4gYmUgY29waWVkIHZlcmJhdGltIGludG8gdGhlIFBXQSB3aXRob3V0IG5lZWRpbmcgdGhlXG4vLyBjb21waWxlU2NzcyBmbGFnIG9uIHN5bmMuIEVkaXQgSEVSRSwgdGhlbiBgZ3VscCBzYXNzLXYxYC5cbi8vXG4vLyBMYXlvdXQgb25seS4gRXZlcnkgcm93IGluc2lkZSBhIHNlY3Rpb24gaXMgYSBxZG5hcHJvLWJvdHRvbS1zaGVldC1idXR0b24gKG9yIGFcbi8vIHFkbmFwcm8tYm90dG9tLXNoZWV0LWJ1dHRvbi1ncm91cCAvIHBsYWluLWRpdiBncm91cCBhcm91bmQgdGhlbSkg4oCUIHRoaXMgZmlsZVxuLy8gbmV2ZXIgcmVzdHlsZXMgdGhvc2UsIGl0IG9ubHkgbGF5cyBvdXQgdGhlIHNlY3Rpb24gd3JhcHBlciwgdGhlIGhlYWRpbmcgYW5kIHRoZVxuLy8gZm9vdGVyIGNsZWFyLWJ1dHRvbiByb3cuXG5cbi5xZG5hcHJvLWZpbHRlci1zaGVldC1ib2R5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zLTYpO1xufVxuXG4ucWRuYXByby1maWx0ZXItc2hlZXQtYm9keSAuZnMtc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tcy0yKTtcbn1cblxuLnFkbmFwcm8tZmlsdGVyLXNoZWV0LWJvZHkgLmZzLXNlY3Rpb24tdGl0bGUge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1tZWRpdW0pO1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgcGFkZGluZzogMCB2YXIoLS1zLTEpO1xufVxuXG4vLyBVaXRsZWcgb25kZXIgZGUgc2VjdGlla29wLiBLbGVpbmVyIGVuIGdyaWpzLCB6ZWxmZGUgdmVyaG91ZGluZyBhbHMgZGUgc3VidGl0ZWwgdmFuXG4vLyBkZSBib3R0b20tc2hlZXQgemVsZiwgem9kYXQgZGUgdHdlZSBuaWV0IG1ldCBlbGthYXIgdmVjaHRlbi5cbi5mcy1zZWN0aW9uLW5vdGUge1xuICAgIG1hcmdpbjogMnB4IDAgOHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xufVxuXG4vLyBGb290ZXIgY2xlYXItYWxsIGFjdGlvbi4gU2l0cyBpbnNpZGUgdGhlIHNoZWV0J3Mgb3duIHNjcm9sbGFibGUgYm9keSAodGhlIGJhc2Vcbi8vIHFkbmFwcm8tYm90dG9tLXNoZWV0IHZhcmlhbnQgaGFzIG5vIHNlcGFyYXRlIGZvb3RlciBzbG90LCBvbmx5IHRoZSBkaWFsb2cvY29uZmlybVxuLy8gdmFyaWFudCBkb2VzKSwgc28gYSBoYWlybGluZSArIGV4dHJhIHRvcCBhaXIgaXMgd2hhdCBzZXBhcmF0ZXMgaXQgZnJvbSB0aGUgbGFzdFxuLy8gc2VjdGlvbiBpbnN0ZWFkIG9mIGEgaGFyZC1maXhlZCBmb290ZXIgYmFyLlxuLy8gRGUgd2lzLWtub3AgUExBS1Qgb25kZXJhYW4gKEtpbSwgMzEuMDcuMjAyNjogXCJrYW4gamUgZGllIGFsbGVzIHdpc3NlbiBvbmRlcmluIHN0aWNreVxuLy8gemV0dGVuLCB6b2RhdCBqZSBkaWUgYWx0aWpkIHNuZWwga2FuIHNlbGVjdGVyZW4gZW4gbmlldCBoZWxlbWFhbCBuYWFyIGJlbmVkZW4gaG9lZnQgdGVcbi8vIHNjcm9sbGVuXCIpLiBHZWxkdCBpbiBiZWlkZSB2b3JtZW46IGluIGRlIHBvcG92ZXIgaXMgZGl0IGJsb2sgemVsZiBkZSBzY3JvbGxlciAoemllXG4vLyB2ZXJkZXJvcCksIGluIGRlIGJvdHRvbSBzaGVldCBpcyBkYXQgZGUgLmJzLWJvZHkgZXJib3ZlbiwgZW4gc3RpY2t5IHBha3QgaW4gYmVpZGVcbi8vIGdldmFsbGVuIGRlIGVlcnN0ZSBzY3JvbGxlbmRlIHZvb3JvdWRlci5cbi8vXG4vLyBUd2VlIGRpbmdlbiBkaWUgZXIgYmlqIGhvcmVuIGVuIGRpZSBqZSBuaWV0IG1hZyB3ZWdsYXRlbjpcbi8vIC0gZWVuIGVpZ2VuIEFDSFRFUkdST05ELCBhbmRlcnMgc2Nyb2xsZW4gZGUgb3B0aWVyaWplbiB6aWNodGJhYXIgb25kZXIgZGUga25vcCBkb29yO1xuLy8gLSBwYWRkaW5nIE9OREVSIGRlIGtub3AgZW4gbmlldCBhbGxlZW4gZXJib3Zlbiwgd2FudCBkZSBrbm9wIGlzIG51IGRlIG9uZGVya2FudCB2YW5cbi8vICAgaGV0IHppY2h0YmFyZSBnZWJpZWQgZW4gem91IGFuZGVycyB0ZWdlbiBkZSByYW5kIHBsYWtrZW4uXG4vL1xuLy8gR0VFTiBuZWdhdGlldmUgemlqbWFyZ2VzIG9tIGhldCB3aXR0ZSB2bGFrIGJyZWRlciB0ZSBtYWtlbiBkYW4gZGUgaW5ob3VkLCBlbiBkYXQgaXNcbi8vIGdlcHJvYmVlcmQgZW4gdGVydWdnZWRyYWFpZCAoMzEuMDcuMjAyNiwgaW4gZWVuIGhlYWRsZXNzIENocm9tZSBnZXppZW4pOiBoZXQgbGV2ZXJkZVxuLy8gZWVuIEhPUklaT05UQUxFIFNDUk9MTEJBTEsgb25kZXJhYW4gaGV0IHBhbmVlbCBvcC4gRGUgcmVkZW4gZGF0IHplIG9vayBuaWV0IG5vZGlnIHppam46XG4vLyBkZSBsdWNodCBsaW5rcyBlbiByZWNodHMgKDhweCBiaWogZGUgYm90dG9tIHNoZWV0LCA2cHggYmlqIGRlIHBvcG92ZXIpIGhhbmd0IGFhbiBoZXRcbi8vIFBBTkVFTCBlbiB2YWx0IGJ1aXRlbiBoZXQgZ2ViaWVkIGRhdCBzY3JvbGx0LiBEZSBrbm9wIGlzIGR1cyBwZXIgZGVmaW5pdGllIGFsIGV2ZW5cbi8vIGJyZWVkIGFscyBhbGxlcyB3YXQgZXIgb25kZXJkb29yIGthbiBzY2h1aXZlbi5cbi5xZG5hcHJvLWZpbHRlci1zaGVldC1ib2R5IC5mcy1mb290ZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDE7XG4gIHBhZGRpbmc6IHZhcigtLXMtNCkgMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMiwgI2U2ZTllZik7XG59XG5cbi5xZG5hcHJvLWZpbHRlci1zaGVldC1ib2R5IC5mcy1mb290ZXIgcWRuYXByby1idXR0b24ge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLy8g4pSA4pSAIFBPUE9WRVItU1RBTkQgKDMxLjA3LjIwMjYsIEtpbTogXCJvcCBpUGFkIG1vZXQgZGl0IGdlZW4gYm90dG9tIHNoZWV0IHppam4gbWFhciBlZW5cbi8vIHBvcG92ZXJcIikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBaZWxmZGUgaW5ob3VkLCBhbmRlciBvbWh1bHNlbDogcWRuYS1maWx0ZXItc2hlZXQuanMgYm91d3QgZWVuIHFkbmFwcm8tcG9wb3ZlciBpblxuLy8gcGxhYXRzIHZhbiBlZW4gcWRuYXByby1ib3R0b20tc2hlZXQgem9kcmEgb3BlbigpIGVlbiBhbmtlciBtZWVrcmlqZ3QsIGVuIHpldFxuLy8gZGF0YS1mcy1wb3Agb3AgZGF0IHBhbmVlbC4gQWxsZWVuIHR3ZWUgZGluZ2VuIGRpZSBkZSBzaGVldCBuaWV0IG5vZGlnIGhhZDpcbi8vXG4vLyAxLiBFZW4gQlJFRURURS4gRWVuIGJvdHRvbSBzaGVldCBpcyB6byBicmVlZCBhbHMgaGV0IHNjaGVybTsgZWVuIHBvcG92ZXIgc2NoYWFsdFxuLy8gICAgbmFhciB6aWpuIGluaG91ZCwgZW4gZGUgb3B0aWVyaWplbiBkYWFyaW4gemlqbiBsb3MgdmFuIGVsa2FhciB6byBicmVlZCBhbHMgaHVuXG4vLyAgICBlaWdlbiB0ZWtzdC4gWm9uZGVyIGRlemUgcmVnZWwgd29yZHQgaGV0IHBhbmVlbCBkdXMgem8gYnJlZWQgYWxzIGhldCBsYW5nc3RlXG4vLyAgICBsYWJlbCBlbiB2ZXJzcHJpbmd0IGhpaiBwZXIgdGFhbC5cbi8vIDIuIEVlbiBNQVhJTVVNIEhPT0dURSBtZXQgZWlnZW4gc2Nyb2xsLiBEZSB2aWVyIHNlY3RpZXMgc2FtZW4gemlqbiBob2dlciBkYW4gZWVuXG4vLyAgICBpUGFkLXZlbnN0ZXIgaW4gbGlnZ2VuZGUgc3RhbmQsIGVuIGVlbiBwb3BvdmVyIGhlZWZ0IGdlZW4gZWlnZW4gc2Nyb2xsOiBoaWpcbi8vICAgIHBvc2l0aW9uZWVydCB6aWNoIGJvdmVuIG9mIG9uZGVyIGhldCBhbmtlciBlbiBsb29wdCBhbmRlcnMgZ2V3b29uIHZhbiBoZXQgc2NoZXJtLlxuLy8gICAgRGUgNzJ2aCBsYWF0IGJvdmVuIGVuIG9uZGVyIHJ1aW10ZSB6b2RhdCBoZXQgcGFuZWVsIG5pZXQgdGVnZW4gZGUgcmFuZGVuIHBsYWt0LlxuLnFkbmFwcm8tcG9wb3ZlcltkYXRhLWZzLXBvcF0ge1xuICB3aWR0aDogMzQwcHg7XG4gIG1heC13aWR0aDogOTJ2dztcbn1cblxuLnFkbmFwcm8tcG9wb3ZlcltkYXRhLWZzLXBvcF0gLnFkbmFwcm8tZmlsdGVyLXNoZWV0LWJvZHkge1xuICBtYXgtaGVpZ2h0OiA3MnZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1jb21wb3NpdGlvbi1iYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFppZSBkZSBkb2NibG9jayBpbiB3ZWIvanMvY29tcG9uZW50cy92Mi9jb21wb3NpdGlvbi1iYXIvXG4vLyAgcWRuYS1jb21wb3NpdGlvbi1iYXIuanMgdm9vciB3YWFyb20gZGl0IG5hYXN0IHFkbmFwcm8tcHJvZ3Jlc3MgYmVzdGFhdC5cbi8vXG4vLyAgRGV6ZWxmZGUgdG9vbi1uYW1lbiBhbHMgcWRuYXByby1zdGF0dXMtdHJhY2ssIG1ldCBkZXplbGZkZSB0b2tlbnMgZXJhY2h0ZXIuXG4vLyAgRWVuIHBhZ2luYSBkaWUgYWxsZWJlaSBnZWJydWlrdCBtYWcgZGUgbGV6ZXIgZ2VlbiB0d2VlIGtsZXVyc3lzdGVtZW5cbi8vICBsZXJlbi4gQWxsZSBrbGV1cmVuIHZpYSBkZXNpZ24tdG9rZW5zLCBkdXMgZG9ua2VyZSBtb2R1cyB2b2xndCB2YW56ZWxmLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5xZG5hcHJvLWNvbXBvc2l0aW9uLWJhciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsZXg6IG5vbmU7XG4gICAgd2lkdGg6IHZhcigtLWNiLXcsIDEyMHB4KTtcbiAgICBsaW5lLWhlaWdodDogMDtcblxuICAgICZfX3RyYWNrIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogdmFyKC0tY2ItaCwgNnB4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIC8vIERlIGxlZ2Ugc3RhYXQgaXMgZGUgcmVzdCB2YW4gZGUgYmFsazogZ2VlbiBzdHVrIHZvb3IgXCJuaWV0c1wiLCBtYWFyXG4gICAgICAgIC8vIGVlbiBzcG9vciBkYXQgemljaHRiYWFyIG5vZyBuaWV0IGdldnVsZCBpcy5cbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItc29mdCwgI2UzZTJmMCk7XG4gICAgfVxuXG4gICAgJl9fcGFydCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1jYi1wYXJ0LCAwJSk7XG4gICAgICAgIC8vIEdyb2VpZW4gZW4ga3JpbXBlbiBtYWcgamUgemllbjogZGF0IGlzIHByZWNpZXMgZGUgYmV3ZWdpbmcgd2FhciBkZVxuICAgICAgICAvLyBiYWxrIHZvb3IgYmVkb2VsZCBpcy4gTWljcm8tcmVnaXN0ZXIsIG5pZXQgZGUgNTIwbXMgdmFuIGhldCBoYXJ0amUuXG4gICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDIyMG1zIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKTtcblxuICAgICAgICAmW2RhdGEtdG9uZT1cImRvbmVcIl0gICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTsgfVxuICAgICAgICAmW2RhdGEtdG9uZT1cIndhcm5cIl0gICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCwgI2Y1OWUwYik7IH1cbiAgICAgICAgJltkYXRhLXRvbmU9XCJsYXRlXCJdICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpOyB9XG4gICAgICAgICZbZGF0YS10b25lPVwiaW5mb1wiXSAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLWJsdWUtdGV4dCwgIzZhOGFiNCk7IH1cbiAgICAgICAgJltkYXRhLXRvbmU9XCJtdXRlZFwiXSAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTMwMCwgI2NmZDBkZCk7IH1cbiAgICAgICAgJltkYXRhLXRvbmU9XCJkZWZhdWx0XCJdIHsgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM1YjRkZDEpOyB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAgICAgLnFkbmFwcm8tY29tcG9zaXRpb24tYmFyX19wYXJ0IHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLWNvbnRleHQtbWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgUG9zaXRpb25pbmcgbGF5ZXIgb25seSDigJQgb3BlbnMgYSBxZG5hcHJvLW1lbnUgYXQgYW4gYXJiaXRyYXJ5XG4vLyAgdmlld3BvcnQgY29vcmRpbmF0ZSAoYSByaWdodC1jbGljayBwb2ludCkuIEV2ZXJ5IHBpeGVsIG9mIGhvdyB0aGVcbi8vICBwYW5lbCBhbmQgaXRzIHJvd3MgTE9PSyBjb21lcyBmcm9tIHFkbmFwcm8tbWVudSArIHFkbmFwcm8tbWVudS1pdGVtO1xuLy8gIHRoaXMgZmlsZSBkb2VzIG5vdCByZXBlYXQgYW55IG9mIHRoZWlyIGJhY2tncm91bmQvYm9yZGVyL3NoYWRvdy9cbi8vICBwYWRkaW5nL3R5cG9ncmFwaHkgcnVsZXMuXG4vL1xuLy8gIEZMQVQgb24gcHVycG9zZSAobm8gJCB2YXJpYWJsZXMsIG5vIG5lc3RlZCAmKSDigJQgc2FtZSByZWFzb25cbi8vICBfbWVudS5zY3NzIGlzIHdyaXR0ZW4gdGhpcyB3YXk6IGl0IGxldHMgdGhlIHN5bmMtdG8tYXBwIHBhdGggY29weVxuLy8gIHRoaXMgZmlsZSBhcyBwbGFpbiBDU1Mgd2l0aG91dCBuZWVkaW5nIHRoZSBjb21waWxlU2NzcyBmbGFnLlxuLy9cbi8vICBTQ09QRS1wd2EtaW5ib3gubWQgZGVjaXNpb24gMjQgKGxhcHRvcC1vbmx5IHJvdyByaWdodC1jbGljayBtZW51KS5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucWRuYXByby1jb250ZXh0LW1lbnUge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxMDAyO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnFkbmFwcm8tY29udGV4dC1tZW51LmlzLW9wZW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1mb3JtLWNhcmQgLSBtb2JpbGUtYXBwIGZyYW1lIGZvciBPTkUgZm9ybSBzY3JlZW5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFRpdGxlZCBjYXJkIGhvbGRpbmcgdGhlIGFwcCBydW50aW1lJ3MgcXVlc3Rpb24gY29udGVudCAoY2hpbGQgRE9NLFxuLy8gIG5ldmVyIHJlLXJlbmRlcmVkIGJ5IHRoaXMgY29tcG9uZW50KSwgd2l0aCBhbiBvcHRpb25hbCBoZWFkZXIgaW1hZ2UsXG4vLyAgYW4gb3B0aW9uYWwgXCJuL3RvdGFsXCIgcHJvZ3Jlc3MgcGlsbCArIGZpbGwgYmFyLCBhbmQgYSBwcmV2L25leHQgZm9vdGVyLlxuLy9cbi8vICBIZWFkZXIgZm9sbG93cyB0aGUgc3VydmV5J3MgUlVOVElNRSB0aGVtZSBjb2xvdXIgKC0tdGhlbWUtYnRuLWNvbG9yLCBzZXQgYnkgdGhlXG4vLyAgUFdBIHBlci1jaGVja2xpc3QgdGhlbWUgLSBzZWUgcGhvdG8uanMncyByZWFkIG9mIGl0IGFuZCAwLWNvcmUuanMncyBzZXRQcm9wZXJ0eSBvblxuLy8gIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCksIGZhbGxpbmcgYmFjayB0byB0aGUgZmxvdy1lZGl0b3IgLyBzaWRlYmFyIHB1cnBsZVxuLy8gICgtLWMtc2lkZWJhci1iZywgIzNhNDI5MCkgZm9yIGNvbnN1bWVycyB0aGF0IG5ldmVyIHNldCBhIHRoZW1lIChlZGl0b3IgcHJldmlldyxcbi8vICBibzIgbGlicmFyeSBwcmV2aWV3KS4gUm91bmRlZCBjYXJkLCBzb2Z0IHNoYWRvdywgd2hpdGUgYm9keS5cbi8vXG4vLyAgSGVhZGVyIHRleHQgc3RheXMgd2hpdGUvdHJhbnNsdWNlbnQtd2hpdGUgcmVnYXJkbGVzcyBvZiB0aGUgdGhlbWUgY29sb3VyIC0gZmluZVxuLy8gIGZvciB0aGUgZGFyay9taWQtc2F0dXJhdGlvbiBjb2xvdXJzIHRoZSB0aGVtZSBwaWNrZXIgb2ZmZXJzIHRvZGF5LiBGTEFHR0VELCBub3Rcbi8vICBzb2x2ZWQgaGVyZTogYSB2ZXJ5IExJR0hUIHRoZW1lIGNvbG91ciB3b3VsZCBmYWlsIGNvbnRyYXN0IGFnYWluc3Qgd2hpdGUgdGV4dCAtXG4vLyAgYSBwcmUtZXhpc3RpbmcgY29uY2VybiBzaGFyZWQgYnkgZXZlcnkgb3RoZXIgLS10aGVtZS1idG4tKiBjb25zdW1lciBpbiB0aGUgUFdBXG4vLyAgKGJ1dHRvbnMsIGFuc3dlciBjaGlwcyksIG5vdCBzb21ldGhpbmcgdGhpcyBjaGFuZ2UgYXR0ZW1wdHMgdG8gZml4LlxuLy9cbi8vICAtLWZvcm0tY2FyZC1tYXgtaGVpZ2h0IChkZWZhdWx0IG5vbmUpIGNhcHMgdGhlIGJvZHkgaGVpZ2h0IHNvIGl0XG4vLyAgc2Nyb2xscyBpbnRlcm5hbGx5IGluc3RlYWQgb2YgZ3Jvd2luZyB0aGUgY2FyZCBwYXN0IHRoYXQgaGVpZ2h0IC1cbi8vICBuZWVkZWQgb25jZSBxdWVzdGlvbiBjb250ZW50IGdldHMgdGFsbCAobWFueSBibG9ja3MgLyBsb25nIG9wdGlvbnMpLlxuLy9cbi8vICBGTEFUIENTUyAobm8gbmVzdGluZykgc28gaXQgY2FuIGJlIHN5bmNlZCB0byB0aGUgUFdBIHZlcmJhdGltLCBleGFjdGx5XG4vLyAgbGlrZSBxZG5hcHJvLWluZm8tY2FyZCAvIHFkbmFwcm8tZXZlbnQtY2FyZC5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucWRuYXByby1mb3JtLWNhcmQge1xuICAtLWZvcm0tY2FyZC1oZWFkZXItYmc6ICAgIHZhcigtLXRoZW1lLWJ0bi1jb2xvciwgdmFyKC0tYy1zaWRlYmFyLWJnLCAjM2E0MjkwKSk7XG4gIC0tZm9ybS1jYXJkLWhlYWRlci10ZXh0OiAgI2ZmZmZmZjtcbiAgLS1mb3JtLWNhcmQtc3VidGl0bGU6ICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpO1xuICAtLWZvcm0tY2FyZC1ib2R5LWJnOiAgICAgIHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gIC0tZm9ybS1jYXJkLWJvcmRlcjogICAgICAgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gIC0tZm9ybS1jYXJkLXJhZGl1czogICAgICAgdmFyKC0tci1jYXJkLCAxNnB4KTtcbiAgLS1mb3JtLWNhcmQtbWF4LWhlaWdodDogICBub25lO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDQyMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZm9ybS1jYXJkLXJhZGl1cyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWZvcm0tY2FyZC1ib2R5LWJnKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWNhcmQsIDAgMXB4IDJweCByZ2JhKDIwLCAyNSwgODAsIDAuMDQpLCAwIDRweCAxNnB4IHJnYmEoMjAsIDI1LCA4MCwgMC4wOCkpO1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG59XG5cbi8vIC0tLSBIZWFkZXIgLS0tXG4ucWRuYXByby1mb3JtLWNhcmRfX2hlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAyMHB4IDIwcHggMThweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tZm9ybS1jYXJkLWhlYWRlci1iZyk7XG4gIGNvbG9yOiB2YXIoLS1mb3JtLWNhcmQtaGVhZGVyLXRleHQpO1xufVxuXG4vLyBzdGFydC9maW5pc2g6IG1vcmUgZ2VuZXJvdXMgcGFkZGluZyArIGNlbnRlcmVkIHRpdGxlIC0gc3VidGxlLCB0b2tlbi1iYXNlZFxuLnFkbmFwcm8tZm9ybS1jYXJkLS1jZWxlYnJhdG9yeSAucWRuYXByby1mb3JtLWNhcmRfX2hlYWRlciB7XG4gIHBhZGRpbmc6IDMycHggMjRweCAyNnB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5xZG5hcHJvLWZvcm0tY2FyZF9faW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cbi5xZG5hcHJvLWZvcm0tY2FyZF9faW1hZ2VbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5xZG5hcHJvLWZvcm0tY2FyZF9faW1hZ2UtaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxNjBweDtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5xZG5hcHJvLWZvcm0tY2FyZF9fdGl0bGUge1xuICBmb250LXNpemU6IDE5cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIGNvbG9yOiB2YXIoLS1mb3JtLWNhcmQtaGVhZGVyLXRleHQpO1xuICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbn1cbi5xZG5hcHJvLWZvcm0tY2FyZC0tY2VsZWJyYXRvcnkgLnFkbmFwcm8tZm9ybS1jYXJkX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbn1cblxuLnFkbmFwcm8tZm9ybS1jYXJkX19zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6IHZhcigtLWZvcm0tY2FyZC1zdWJ0aXRsZSk7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuLnFkbmFwcm8tZm9ybS1jYXJkX19zdWJ0aXRsZVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vLyAtLS0gUHJvZ3Jlc3MgaW5kaWNhdG9yIChwaWxsICsgdGhpbiBmaWxsIGJhcikgLS0tXG4ucWRuYXByby1mb3JtLWNhcmRfX3Byb2dyZXNzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG4ucWRuYXByby1mb3JtLWNhcmRfX3Byb2dyZXNzW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi5xZG5hcHJvLWZvcm0tY2FyZF9fcHJvZ3Jlc3MtcGlsbCB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBwYWRkaW5nOiAycHggOXB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwsIDk5OXB4KTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xuICBjb2xvcjogdmFyKC0tZm9ybS1jYXJkLWhlYWRlci10ZXh0KTtcbn1cblxuLnFkbmFwcm8tZm9ybS1jYXJkX19wcm9ncmVzcy10cmFjayB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBoZWlnaHQ6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsLCA5OTlweCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucWRuYXByby1mb3JtLWNhcmRfX3Byb2dyZXNzLWZpbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMCU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCwgOTk5cHgpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAyMjBtcyBlYXNlO1xufVxuXG4vLyAtLS0gQm9keSAodGhlIGFwcCBydW50aW1lJ3MgcXVlc3Rpb24gY29udGVudCAtIG5ldmVyIHJlLXJlbmRlcmVkIGhlcmUpIC0tLVxuLnFkbmFwcm8tZm9ybS1jYXJkX19ib2R5IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxNnB4O1xuICBtYXgtaGVpZ2h0OiB2YXIoLS1mb3JtLWNhcmQtbWF4LWhlaWdodCk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi8vIC0tLSBGb290ZXIgLS0tXG4ucWRuYXByby1mb3JtLWNhcmRfX2Zvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAxNHB4IDIwcHggMThweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWZvcm0tY2FyZC1ib3JkZXIpO1xufVxuLnFkbmFwcm8tZm9ybS1jYXJkX19mb290ZXJbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gTm8gcHJldiBidXR0b24gKGZpcnN0IGNhcmQpOiBuZXh0IHRha2VzIHRoZSBmdWxsIHJvdywgcmlnaHQtYWxpZ25lZC5cbi5xZG5hcHJvLWZvcm0tY2FyZF9fZm9vdGVyIFtkYXRhLWZjPVwicHJldlwiXVtoaWRkZW5dIH4gW2RhdGEtZmM9XCJuZXh0XCJdIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5xZG5hcHJvLWZvcm0tY2FyZF9fZm9vdGVyIHFkbmFwcm8tYnV0dG9uIHtcbiAgZmxleDogMCAwIGF1dG87XG59XG4ucWRuYXByby1mb3JtLWNhcmRfX2Zvb3RlciBxZG5hcHJvLWJ1dHRvbltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuIiwiLy8gcWRuYXByby1mb3JtYXQtcnVsZXNcbi8vIFZvb3J3YWFyZGVsaWprZSBvcG1hYWs6IGVlbiBsaWpzdCB2b29yd2FhcmRlbiBvcCBlZW4gZ2V0YWwsIGVsayBtZXQgZWVuIGxldmVuZCB2b29yYmVlbGQgZW4gZWVuXG4vLyBjb250cmFzdHdhYXJzY2h1d2luZy4gTGlnaHQgRE9NLCBjbGFzc2VzIG1ldCBkZSBwcmVmaXggYC5xZnItYC4gS2xldXJlbiB1aXQgZGUgdG9rZW5zLlxuXG4vLyBEZSBTQ0hJTCBrb210IHVpdCBjb21wb25lbnRzL3YyL292ZXJsYXktc2hlbGwgKGAucW9zLSpgKTsgaGllciBzdGFhdCBhbGxlZW4gZGVcbi8vIElOSE9VRC4gVG90IDE5LjA4LjIwMjYgc3RvbmQgZGUgc2NoaWwgaGllciBhbHMgZWlnZW4ga29waWUuXG5cbnFkbmFwcm8tZm9ybWF0LXJ1bGVzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgLy8gVmFzdGUgbGFhZyBvdmVyIGRlIHBhZ2luYSAoemVsZmRlIGRyaWUgcmVnZWxzIGFscyBgLnFvcy1yb290YCkuIEdlbmVzdGVcbiAgICAvLyBsYWFnLCB3YW50IGRpdCB2ZW5zdGVyIHdvcmR0IGdlb3BlbmQgdmFudWl0IGVlbiBmb3JtdWxpZXIvbW9kYWwgZW4gbW9ldFxuICAgIC8vIGJvdmVuIGRlIDkzMDAtbGFhZyB2YW4gZGUgZmxvd2VkaXRvciB1aXRrb21lbiDigJQgZGUgcmVkZW4gdm9vciBkZSA5NDAwIGRpZVxuICAgIC8vIGhpZXIgc3RvbmQuXG4gICAgJltvcGVuXSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICB6LWluZGV4OiB2YXIoLS1vdmVybGF5LXotbmVzdGVkKTtcbiAgICB9XG5cbiAgICAucW9zLWRpYWxvZyB7IC0tcW9zLXc6IDgyMHB4OyB9XG5cbiAgICAvLyAtLS0tIGtvcCAtLS0tXG5cbiAgICAvLyBEZSByZWdlbCBkaWUgdWl0bGVndCBkYXQgZGUgRUVSU1RFIHZvb3J3YWFyZGUgZGllIHBhc3Qgd2ludC4gR2VlbiB3YWFyc2NodXdrbGV1cjogaGV0IGlzIGRlXG4gICAgLy8gd2Vya2luZyB2YW4gZGUgZnVuY3RpZSwgbmlldCBlZW4gcHJvYmxlZW0uXG4gICAgLnFmci1maXJzdG1hdGNoIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGdhcDogN3B4O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDlweCAxMXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSwgI2YzZjVmZik7XG4gICAgICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICMyNDI2MmMpO1xuXG4gICAgICAgIHFkbmFwcm8taWNvbiB7IGZsZXg6IDAgMCBhdXRvOyBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpOyBtYXJnaW4tdG9wOiAxcHg7IH1cbiAgICB9XG5cbiAgICAvLyAtLS0tIGRlIGxpanN0IC0tLS1cbiAgICAucWZyLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIC8vIFJ1aW10ZSB2b29yIGRlIGZvY3VzcmluZyB2YW4gaGV0IGVlcnN0ZSB2ZWxkOyB6b25kZXIgcGFkZGluZyB3b3JkdCBkaWUgZG9vciBkZSBzY3JvbGxib3hcbiAgICAgICAgLy8gYWZnZXNuZWRlbi5cbiAgICAgICAgcGFkZGluZzogMnB4O1xuICAgIH1cblxuICAgIC5xZnItZW1wdHkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDE0cHggMnB4O1xuICAgICAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgfVxuXG4gICAgLy8gRcOpbiB2b29yd2FhcmRlOiBlZW4gcGFuZWVsdGplIG1ldCBkZSBjb25kaXRpZSBvcCBkZSBlZXJzdGUgcmVnZWwgZW4gZGUgb3BtYWFrIG9wIGRlIHR3ZWVkZS5cbiAgICAvLyBaZWxmZGUgcGFhciAocGFhcnNlIHJhbmQgb3AgZWVuIGxpY2h0ZSBwYWFyc2UgdnVsbGluZykgYWxzIGVlbiBtZWV0d2FhcmRlLXBhbmVlbHRqZSBpbiBkZVxuICAgIC8vIHJhcHBvcnRlZGl0b3IsIHpvZGF0IGhldCDDqcOpbiB0YWFsIGJsaWpmdC5cbiAgICAucWZyLXJ1bGUge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXB1cnBsZS0zMDAsICM4YTkyZDApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSwgI2YzZjVmZik7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cblxuICAgIC8vIERlIHJpaiBkaWUgYmlqIGhldCBvcHNsYWFuIGluY29tcGxlZXQgYmxlZWsuIEFsbGVlbiBkZSByYW5kIOKAlCBlZW4gcm9kZSB2dWxsaW5nIHpvdSBkZVxuICAgIC8vIGtsZXVydm9vcmJlZWxkZW4gZXJpbiBvbmxlZXNiYWFyIG1ha2VuLlxuICAgIC5xZnItcnVsZS1mb3V0IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXRhZy1jcml0aWNhbC10ZXh0LCAjYzMzYTMwKTtcbiAgICB9XG5cbiAgICAucWZyLWNvbmQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgIC5xZnItbnIge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjUwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItdHJlZSwgI2Q0ZDhlYyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDFweCA3cHg7XG4gICAgfVxuXG4gICAgLy8gR0VNRVRFTjogb3AgMTMycHggd2VyZCBcImxvd2VyIHRoYW5cIiBhZmdla2FwdCB0b3QgXCJsb3dlciB0aOKAplwiIGVuIFwiYmV0d2VlblwiIHRvdCBcImJldHdlZeKAplwiIOKAlCBkZVxuICAgIC8vIEVuZ2Vsc2UgZW4gRHVpdHNlIGxhYmVscyB6aWpuIGxhbmdlciBkYW4gZGUgTmVkZXJsYW5kc2UuIDE2OHB4IHZhbmd0IGFsbGUgdmllciBkZSB0YWxlbi5cbiAgICAucWZyLW9wICAgeyBmbGV4OiAwIDAgMTY4cHg7IH1cbiAgICAucWZyLW51bSAgeyBmbGV4OiAwIDAgOTZweDsgfVxuICAgIC5xZnItYW5kICB7IGZvbnQtc2l6ZTogMTIuNXB4OyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTsgfVxuICAgIC8vIOKaoO+4jyBgbWFyZ2luLWxlZnQ6IGF1dG9gIG9wIGRlIEtOT1AgZW4gbmlldCBvcCBoZXQgbGFiZWw6IGhldCBsYWJlbCB2ZXJzY2hpam50IGxpbmtzIHZhbiBkZSBrbm9wXG4gICAgLy8gICAgb3AgaGV0IG1vbWVudCBkYXQgaGlqIHdhcGVudCwgZW4gbWV0IGRlIG1hcmdlIG9wIGhldCBsYWJlbCB6b3UgZGUga25vcCBuYWFyIHJlY2h0cyBvcHNjaHVpdmVuXG4gICAgLy8gICAgdHVzc2VuIGtsaWsgw6nDqW4gZW4gdHdlZS4gUHJlY2llcyBkZSB2YWwgZGllIGluIGRlIHJhcHBvcnRlZGl0b3IgZ2Vkb2N1bWVudGVlcmQgc3RhYXQuXG4gICAgLy8g4pOYIEhldCBcIlpla2VyP1wiLWxhYmVsIChgLnFmci1hcm1gKSBpcyBoaWVyIG5pZXQgZ2VzdHlsZWQgbWFhciBpbiBgcGFydGlhbHMvdjEvX2Jsb2NrLXN0cmlwLnNjc3NgLFxuICAgIC8vICAgaW4gw6nDqW4gZGVjbGFyYXRpZSBtZXQgYC5ic3RyaXAtYXJtLWxhYmVsYCwgYC5pZG9jLWFybS1sYWJlbGAgZW4gYC5ycGUtYXJtYCDigJQgdmllciBuYW1lbiwgw6nDqW5cbiAgICAvLyAgIHJlZ2VsLCBhbmRlcnMga3Jpamd0IGhldHplbGZkZSBnZWJhYXIgb3AgdmllciBwbGVra2VuIGVlbiBhbmRlcmUga2xldXIuIERlIFRFUk1JSk4ga29tdCB2YW4gZGVcbiAgICAvLyAgIGhvc3QgbWVlIChgYXJtLW1zYCwgdWl0IGBjbGllbnQvc2hhcmVkL2FybS1kZWxldGUuanNgKS5cbiAgICAucWZyLWRlbCAgeyBtYXJnaW4tbGVmdDogYXV0bzsgZmxleDogMCAwIGF1dG87IH1cblxuICAgIC5xZnItZm10IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgLnFmci1mbGFnIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBkZSB2cmlqZSBrbGV1cmtldXplIC0tLS1cbiAgICAvLyBTd2F0Y2ggdmFuIDMycHggbWV0IGRlIG5hdGl2ZSBgPGlucHV0IHR5cGU9XCJjb2xvclwiPmAgZXIgb256aWNodGJhYXIgYm92ZW5vcCwgcGx1cyBlZW4gd2lza25vcC5cbiAgICAvLyBaZWxmZGUgYW5hdG9taWUgYWxzIGAuZGN2LXNldC1zd2F0Y2hgIGluIGhldCBkYXNoYm9hcmQgZW4gYC50bHQtY29sb3Itc3dhdGNoYCBpbiBkZVxuICAgIC8vIHRha2VubGlqc3R0aGVtYSdzIOKAlCBkYXQgaXMgaGV0IHN0YWFuZGUgcGF0cm9vbiB2b29yIGVlbiB2cmlqZSBrbGV1ciBpbiBkZXplIGFwcC5cbiAgICAucWZyLWNvbG9yIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMnB4O1xuICAgIH1cblxuICAgIC5xZnItc3dhdGNoIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICBmbGV4OiAwIDAgMjhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCByZ2JhKDY0LCA3MywgMTU0LCAwLjE4KTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3V0bGluZS1jb2xvciAxNTBtcztcblxuICAgICAgICAmOmhvdmVyIHsgb3V0bGluZS1jb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpOyB9XG4gICAgfVxuXG4gICAgLy8gR2VlbiBrbGV1ciBnZWtvemVuOiBlZW4gc2NodWluZSBzdHJlZXAsIHpvZGF0IFwibGVlZ1wiIHRlIG9uZGVyc2NoZWlkZW4gaXMgdmFuIFwid2l0IGdla296ZW5cIi5cbiAgICAvLyDimqDvuI8gR1JJSlMgZW4gbmlldCByb29kOiBlZW4gcm9kZSBzdHJlZXAgbGVlc3QgYWxzIGVlbiBmb3V0bWVsZGluZyBvcCBlZW4gdmVsZCBkYXQgZ2V3b29uIG5vZyBsZWVnXG4gICAgLy8gICAgaXMuIEdlbWV0ZW4gaW4gZGUgcHJldmlldyDigJQgbWV0IHJvb2QgemFnIGRlIHJpaiBlcnVpdCBhbHNvZiBlciBpZXRzIG1pcyB3YXMuXG4gICAgLnFmci1zd2F0Y2gtbGVlZyB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AgcmlnaHQsXG4gICAgICAgICAgICB0cmFuc3BhcmVudCBjYWxjKDUwJSAtIDFweCksIHZhcigtLWMtZ3JleS0zMDAsICNjNGM3Y2MpIDUwJSxcbiAgICAgICAgICAgIHRyYW5zcGFyZW50IGNhbGMoNTAlICsgMXB4KSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gICAgfVxuXG4gICAgLnFmci1zd2F0Y2gtaW5wdXQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICAgICAgaW5zZXQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5xZnItY2xlYXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHBhZGRpbmc6IDJweCAzcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG5cbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLWhvdmVyLCAjZjBmMWYyKTsgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMjQyNjJjKTsgfVxuICAgICAgICAmOmZvY3VzLXZpc2libGUgeyBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZm9jdXMtcmluZywgIzQwNDk5YSk7IG91dGxpbmUtb2Zmc2V0OiAxcHg7IH1cbiAgICB9XG5cbiAgICAvLyBIZXQgbGV2ZW5kZSB2b29yYmVlbGQuIFN0YWF0IG9wIFdJVCAoem9hbHMgZWVuIHJhcHBvcnRjZWwpIHpvZGF0IGVlbiBnZWtvemVuIGFjaHRlcmdyb25ka2xldXJcbiAgICAvLyB0b29udCB3YXQgaGlqIGluIGhldCByYXBwb3J0IGRvZXQsIGVuIG5pZXQgb3Bsb3N0IGluIGRlIHBhYXJzZSBwYW5lZWx2dWxsaW5nLlxuICAgIC5xZnItcHJldmlldyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDg0cHg7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXRyZWUsICNkNGQ4ZWMpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBcIlNGIE1vbm9cIiwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMjQyNjJjKTtcbiAgICB9XG5cbiAgICAucWZyLWNvbnRyYXN0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRhZy13YXJuaW5nLXRleHQsICNhMDY0MDApO1xuXG4gICAgICAgICZbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICB9XG5cbiAgICAvLyAtLS0tIHRvZXZvZWdlbiArIHZvZXQgLS0tLVxuICAgIC5xZnItYWRkYmFyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgIH1cblxuICAgIC5xZnItbWF4IHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICB9XG5cbiAgICAucWZyLXN0YXR1cy1mb3V0IHsgY29sb3I6IHZhcigtLWMtdGFnLWNyaXRpY2FsLXRleHQsICNjMzNhMzApOyB9XG5cbiAgICAvLyBTY3JvbGxiYXI6IHNtYWwsIGJpbm5lbiBoZXQgY29tcG9uZW50LCB0cmFuc3BhcmFudGUgdHJhY2sg4oCUIGh1aXNyZWdlbC5cbiAgICAucWZyLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDZweDsgfVxuICAgIC5xZnItbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5xZnItbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgeyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIC4xOCk7IGJvcmRlci1yYWRpdXM6IDNweDsgfVxuICAgIC5xZnItbGlzdCB7IHNjcm9sbGJhci13aWR0aDogdGhpbjsgc2Nyb2xsYmFyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIC4xOCkgdHJhbnNwYXJlbnQ7IH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAgICAgICAucWZyLW9wLCAucWZyLW51bSB7IGZsZXg6IDEgMSAxMDBweDsgfVxuICAgICAgICAucWZyLXByZXZpZXcgeyBtYXJnaW4tbGVmdDogMDsgfVxuICAgIH1cbn1cbiIsIi8vIHFkbmFwcm8tZm9ybXVsYS1lZGl0b3Jcbi8vIEJvdXdlciB2b29yIGVlbiBmb3JtdWxldmVsZDogZHJpZSBrb2xvbW1lbiAod2Fhcm1lZSBqZSByZWtlbnQgwrcgb3BlcmF0b3JzIMK3IGluc3RydWN0aWVzKSBib3ZlbiBlZW5cbi8vIHRla3N0dmFrLiBMaWdodCBET00sIGNsYXNzZXMgbWV0IGRlIHByZWZpeCBgLnFmZS1gLiBLbGV1cmVuIHVpdCBkZSB0b2tlbnNcbi8vIChzY3NzL2NvbXBvbmVudHMvdjIvZGVzaWduLXRva2Vucykg4oCUIGhpZXIgc3RhYXQgZ2VlbiBsb3MgaGV4IGRhdCBlZW4gdG9rZW4gZHViYmVsdC5cblxuLy8gRGUgU0NISUwgKHNjcmltLCBncmlqcyBmcmFtZSwgd2l0IHZlbnN0ZXIsIGtvcCwgYm9keSwgdm9ldCkga29tdCB1aXRcbi8vIGNvbXBvbmVudHMvdjIvb3ZlcmxheS1zaGVsbDogYC5xb3MtKmAuIEhpZXIgc3RhYXQgYWxsZWVuIGRlIElOSE9VRC4gVG90XG4vLyAxOS4wOC4yMDI2IHN0b25kIGRlIHNjaGlsIGhpZXIgYWxzIGVpZ2VuIGtvcGllIHZhbiBxZG5hcHJvLW1vZGFsLlxuXG5xZG5hcHJvLWZvcm11bGEtZWRpdG9yIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgLy8gRGUgaG9zdCBpcyBkZSB2YXN0ZSBsYWFnIG92ZXIgZGUgcGFnaW5hICh6ZWxmZGUgZHJpZSByZWdlbHMgYWxzIGAucW9zLXJvb3RgKS5cbiAgICAvLyBgLS1xb3MtemAgb3AgZGUgZ2VuZXN0ZSBsYWFnOiBkaXQgdmVuc3RlciB3b3JkdCBnZW9wZW5kIFZBTlVJVCBlZW5cbiAgICAvLyBxZG5hcHJvLW1vZGFsICg5MDAwKSBlbiBtb2V0IGJvdmVuIGRlIFwiYWx0aWpkIGJvdmVub3BcIi1sYWFnIHZhbiBkZVxuICAgIC8vIGZsb3dlZGl0b3IgKDkzMDApIHVpdGtvbWVuLiBEYXQgd2FzIGRlIHJlZGVuIHZvb3IgZGUgOTQwMCBkaWUgaGllciBzdG9uZCxcbiAgICAvLyBlbiBkaWUgcmVkZW4gaXMgbmlldCB2ZXJhbmRlcmQg4oCUIGFsbGVlbiBkZSBwbGVrIHdhYXIgaGV0IGdldGFsIHdvb250LlxuICAgICZbb3Blbl0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgei1pbmRleDogdmFyKC0tb3ZlcmxheS16LW5lc3RlZCk7XG4gICAgfVxuXG4gICAgLy8gQnJlZWR0ZS1wbGFmb25kIHZhbiBoZXQgZnJhbWU7IGRlIG1hYXQgZGllIGRpdCB2ZW5zdGVyIGFsdGlqZCBoYWQuXG4gICAgLnFvcy1kaWFsb2cgeyAtLXFvcy13OiA4ODBweDsgfVxuXG4gICAgLy8gLS0tLSBrb3AgLS0tLVxuXG4gICAgLy8gLS0tLSBkZSBkcmllIGtvbG9tbWVuIC0tLS1cbiAgICAvLyBEZSBvcGVyYXRvcmtvbG9tIGlzIHNtYWwgZW4gdmFzdDsgZGUgdHdlZSBsaWpzdGVuIHZlcmRlbGVuIGRlIHJlc3QuIERlIHJlY2h0ZXJrb2xvbSBrcmlqZ3QgaWV0c1xuICAgIC8vIG1lZXIsIHdhbnQgZGFhciBzdGFhbiBoZWxlIHZvb3JiZWVsZGVuIGluIChgUk9VTkQgKCBnZXRhbCAsIGRlY2ltYWxlbiApYCkuXG4gICAgLnFmZS1jb2xzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSAxMDRweCBtaW5tYXgoMCwgMS4xZnIpO1xuICAgICAgICBnYXA6IDE0cHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG5cbiAgICAucWZlLWNvbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLnFmZS1jb2wtbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2NTA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDdlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgfVxuXG4gICAgLnFmZS1saXN0IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItdHJlZSwgI2Q0ZDhlYyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgbWF4LWhlaWdodDogMjMycHg7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLy8gS29wcmVnZWwgYmlubmVuIGVlbiBsaWpzdCAoXCJWb3JpZ2UgcGVyaW9kZVwiLCBcIlZlcmdlbGlqa2VuXCIpLlxuICAgIC5xZmUtZ3JvdXAge1xuICAgICAgICBwYWRkaW5nOiA4cHggMTBweCAzcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTAuNXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjUwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjA2ZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgIH1cblxuICAgIC8vIE1pc2x1a3RlIHdvb3JkZW5saWpzdDogZ2V3b25lIGxlZXN0ZWtzdCwgZ2VlbiBrYXBpdGFsZW4g4oCUIGhldCBpcyBlZW4gbWVsZGluZywgZ2VlbiBrb3AuXG4gICAgLnFmZS1ncm91cC1mYWlsIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICB9XG5cbiAgICAvLyDik5ggYC5tZW51LWl0ZW0tbGFiZWxgIGlzIGRlIGludGVybmUgY2xhc3MgdmFuIHFkbmFwcm8tbWVudS1pdGVtIChzdGFiaWVsIHNpbmRzIGRlIGJvdXcpLiBBbGxlZW5cbiAgICAvLyAgIGhldCBMRVRURVJUWVBFIHdvcmR0IGhpZXIgZ2V6ZXQ6IGVlbiBmb3JtdWxlIGlzIGNvZGUsIGVuIGVlbiBwcm9wb3J0aW9uZWVsIGxldHRlcnR5cGUgbWFha3RcbiAgICAvLyAgIGBST1VORCAoIE0xIC8gTTIgLCAxIClgIHNsZWNodCBsZWVzYmFhci4gRGUgcmVzdCB2YW4gZGUgcmlqIGJsaWpmdCBoZXQgY29tcG9uZW50IHplbGYuXG4gICAgLnFmZS1pdGVtIC5tZW51LWl0ZW0tbGFiZWwge1xuICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBcIlNGIE1vbm9cIiwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xuICAgIH1cblxuICAgIC8vIC0tLS0gb3BlcmF0b3Jrbm9wcGVuIC0tLS1cbiAgICAucWZlLW9wcyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgfVxuXG4gICAgLnFmZS1vcHMgcWRuYXByby1idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIGhldCBmb3JtdWxldmVsZCAtLS0tXG4gICAgLnFmZS1maWVsZHdyYXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDZweDtcbiAgICB9XG5cbiAgICAucWZlLWZpZWxkIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDg0cHg7XG4gICAgICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgXCJTRiBNb25vXCIsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzI0MjYyYyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gICAgICAgIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCB2YXIoLS1jLWJnLXNlY29uZGFyeS1wdXJwbGUsICNlNmU5ZmYpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGUgb3BlbiBwbGVrIGDigLnigKbigLpgIHdvcmR0IGdlc2VsZWN0ZWVyZCBuYSBoZXQgaW52b2VnZW47IGRpZSBzZWxlY3RpZSBtb2V0IE9QVkFMTEVOLCB3YW50XG4gICAgICAgIC8vIGhpaiBpcyBkZSBoZWxlIGFhbndpanppbmcgZGF0IGVyIG5vZyBpZXRzIGluZ2V2dWxkIG1vZXQgd29yZGVuLlxuICAgICAgICAmOjpzZWxlY3Rpb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnFmZS1oaW50IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgfVxuXG4gICAgLnFmZS1zdGF0dXMge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuMmVtO1xuICAgICAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICB9XG5cbiAgICAucWZlLXN0YXR1cy1nb2VkICAgICAgICAgICB7IGNvbG9yOiB2YXIoLS1jLXRhZy1uZXctdGV4dCwgIzFmN2E0OCk7IH1cbiAgICAucWZlLXN0YXR1cy1mb3V0ICAgICAgICAgICB7IGNvbG9yOiB2YXIoLS1jLXRhZy1jcml0aWNhbC10ZXh0LCAjYzMzYTMwKTsgfVxuICAgIC5xZmUtc3RhdHVzLXdhYXJzY2h1d2luZyAgIHsgY29sb3I6IHZhcigtLWMtdGFnLXdhcm5pbmctdGV4dCwgI2EwNjQwMCk7IH1cblxuICAgIC8vIC0tLS0gdm9ldCAtLS0tXG5cbiAgICAvLyBTY3JvbGxiYXI6IHNtYWwsIGJpbm5lbiBoZXQgY29tcG9uZW50LCB0cmFuc3BhcmFudGUgdHJhY2sg4oCUIGh1aXNyZWdlbC5cbiAgICAucWZlLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDZweDsgfVxuICAgIC5xZmUtbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5xZmUtbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIC4xOCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB9XG4gICAgLnFmZS1saXN0IHsgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOyBzY3JvbGxiYXItY29sb3I6IHJnYmEoMCwgMCwgMCwgLjE4KSB0cmFuc3BhcmVudDsgfVxuXG4gICAgLy8gU21hbCBzY2hlcm06IGRlIGRyaWUga29sb21tZW4gb25kZXIgZWxrYWFyLCBvcGVyYXRvcnMgYWxzIGVlbiByaWoga25vcHBlbi5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgICAgICAgLnFmZS1jb2xzIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbiAgICAgICAgLnFmZS1vcHMgIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTsgfVxuICAgICAgICAucWZlLWxpc3QgeyBtYXgtaGVpZ2h0OiAxNjhweDsgfVxuICAgIH1cbn1cbiIsIi8vIHFkbmFwcm8tZ2lmLXNoZWV0IOKAlCBQdWxzZSBHSUYgcGlja2VyIChLTElQWSksIFRXTyBzdXJmYWNlcyBqdXN0IGxpa2Vcbi8vIHFkbmFwcm8tc3RpY2tlci1zaGVldDogYSBib3R0b20gc2hlZXQgb24gcGhvbmUsIGEgcGlubmVkIHBvcG92ZXIgb25cbi8vIHRhYmxldC9kZXNrdG9wLiBGTEFUIENTUy4gRWRpdCBIRVJFLCB0aGVuIGBndWxwIHNhc3MtdjFgLlxuLy9cbi8vIFRoZSBpbm5lciBib3R0b20tc2hlZXQgLyBwb3BvdmVyIFBPUlRBTFMgaXRzZWxmIHRvIDxib2R5PiBvbiBvcGVuLCBzbyBpdHNcbi8vIGNvbnRlbnQgbm8gbG9uZ2VyIHNpdHMgdW5kZXIgdGhlIDxxZG5hcHJvLWdpZi1zaGVldD4gaG9zdC4gQWxsIHN0eWxpbmcgaXNcbi8vIHRoZXJlZm9yZSBzY29wZWQgdG8gW2RhdGEtZ2lmLXNoZWV0XSAoYSBEQVRBLUFUVFJJQlVURSBob29rIHRoYXQgdHJhdmVsc1xuLy8gd2l0aCB0aGUgcG9ydGFsKSBhbmQgLmdzLXJvb3Qg4oCUIE5FVkVSIHVuZGVyIC5xZG5hcHJvLWdpZi1zaGVldCBpdHNlbGYuXG4vLyBBIGRhdGEtYXR0cmlidXRlIGFuZCBub3QgYSBjbGFzczogYm90aCBzaGVsbHMgcmVidWlsZCB0aGVpciBvd24gY2xhc3NOYW1lXG4vLyBvbiBldmVyeSByZW5kZXIoKSBhbmQgd291bGQgc2lsZW50bHkgd2lwZSBhIGNsYXNzIGFkZGVkIGhlcmUg4oCUIHRoZSBzYW1lXG4vLyBsZXNzb24gYXMgcWRuYXByby1zdGlja2VyLXNoZWV0J3MgW2RhdGEtc3RpY2tlci1zaGVldF0uXG5cbi5xZG5hcHJvLWdpZi1zaGVldCB7XG4gIGRpc3BsYXk6IGNvbnRlbnRzOyAvLyB0aGUgaG9zdCBpcyBqdXN0IGEgd3JhcHBlcjsgdGhlIHJlYWwgVUkgbGl2ZXMgb24gdGhlIHBvcnRhbGVkIHNoZWxsXG59XG5cbi8vIC0tLS0gU3VyZmFjZSAxOiB0aGUgYm90dG9tIHNoZWV0IChwaG9uZSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZpeGVkIGhlaWdodCBmb3IgdGhlIHdob2xlIGxpZmV0aW1lLCBzYW1lIHJlYXNvbmluZyBhcyBldmVyeSBzaGVldCBpbiB0aGlzXG4vLyBmYW1pbHk6IHRoZSBjb250ZW50IHVuZGVybmVhdGggY2hhbmdlcyAoc2VhcmNoIHJlc3VsdHMsIGVtcHR5IHN0YXRlLFxuLy8gbG9hZGluZykgYW5kIGEgc2hlZXQgd2hvc2Ugb3V0bGluZSBtb3ZlcyBhbG9uZyB3aXRoIGl0IGlzIHRoZVxuLy8gZXZlbnQtc2hlZXQncyB3aGFjay1hLW1vbGUuIDgwJSBtaXJyb3JzIHFkbmFwcm8tc3RpY2tlci1zaGVldCdzIG93biBwYW5lbC5cbi5xZG5hcHJvLWJvdHRvbS1zaGVldFtkYXRhLWdpZi1zaGVldF0gLmJzLXBhbmVsIHtcbiAgaGVpZ2h0OiA4MCU7XG4gIG1heC1oZWlnaHQ6IDgwJTtcbn1cbi5xZG5hcHJvLWJvdHRvbS1zaGVldFtkYXRhLWdpZi1zaGVldF0gLmJzLWJvZHkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBnYXA6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vIC0tLS0gU3VyZmFjZSAyOiB0aGUgcG9wb3ZlciAodGFibGV0L2Rlc2t0b3ApIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZSBIT1NUIG11c3Qgc2V0IHRoZSB3aWR0aDogcWRuYXByby1wb3BvdmVyIGRlZmF1bHRzIHRvIDI4MHB4IChhIE1FTlVcbi8vIHNpemUpLCBhbmQgYSAyLWNvbHVtbiBHSUYgZ3JpZCBkb2VzIG5vdCBmaXQgaW4gdGhhdC4gMzgwcHggbWlycm9yc1xuLy8gcWRuYXByby1zdGlja2VyLXNoZWV0J3Mgb3duIHBvcG92ZXIgY2FyZC5cbnFkbmFwcm8tcG9wb3ZlcltkYXRhLWdpZi1zaGVldF0ge1xuICB3aWR0aDogbWluKDkydncsIDM4MHB4KTtcbiAgcGFkZGluZzogOHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxucWRuYXByby1wb3BvdmVyW2RhdGEtZ2lmLXNoZWV0XSAuZ3Mtcm9vdCB7XG4gIC8vIGBmbGV4OiBub25lYCBtYXR0ZXJzIGhlcmU6IC5ncy1yb290IGNhcnJpZXMgYGZsZXg6IDFgIGZvciB0aGUgYm90dG9tXG4gIC8vIHNoZWV0LCBhbmQgaW4gYSBmbGV4IGNvbHVtbiB0aGF0IGZsZXggZGlzdHJpYnV0aW9uIGNvbXB1dGVzIHRoZSBoZWlnaHRcbiAgLy8gYW5kIGlnbm9yZXMgYW4gZXhwbGljaXQgYGhlaWdodGAgZW50aXJlbHkuIFNhbWUgZml4IGFzIHN0aWNrZXItc2hlZXQuXG4gIGZsZXg6IG5vbmU7XG4gIGhlaWdodDogNDYwcHg7XG59XG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1naWYtc2hlZXRdIC5ncy1oZWFkZXIge1xuICBwYWRkaW5nOiAwIDAgOHB4O1xufVxucWRuYXByby1wb3BvdmVyW2RhdGEtZ2lmLXNoZWV0XSAuZ3Mtc2Nyb2xsIHtcbiAgcGFkZGluZzogMCAwIDhweDtcbn1cblxuLmdzLXJvb3Qge1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG59XG5cbi8vIC0tLS0gSGVhZGVyOiBzZWFyY2ggZmllbGQgKyBwZXJtYW5lbnQgS0xJUFkgYmFkZ2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5ncy1oZWFkZXIge1xuICBmbGV4LXNocmluazogMDtcbiAgcGFkZGluZzogNHB4IDEycHggOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDZweDtcbn1cblxuLy8gYC5ncy1zZWFyY2gtcm93YCBpcyB0aGUgZmxleCByb3cgdGhhdCBob2xkcyBCT1RIIHRoZSBzZWFyY2ggZmllbGQgYW5kIHRoZVxuLy8gS0xJUFkgYmFkZ2UsIHNpZGUgYnkgc2lkZSBvbiB0aGUgc2FtZSBsaW5lIChrYWFydCAyMiwgMTkuMDguMjAyNiDigJQgS2ltJ3Ncbi8vIGRlY2lzaW9uOiB0aGUgYmFkZ2UgbW92ZXMgb2ZmIGl0cyBvd24gcm93IGludG8gYSBjb21wYWN0IHJpZ2h0LWFsaWduZWRcbi8vIHNwb3QgbmV4dCB0byB0aGUgc2VhcmNoIGZpZWxkLCBtYXRjaGluZyBLTElQWSdzIG93biBleGFtcGxlKS4gVGhlIGZpZWxkXG4vLyBzaHJpbmtzIGZpcnN0IChgLmdzLXNlYXJjaC1maWVsZGAgYmVsb3cgY2FycmllcyBgZmxleDogMSAxIGF1dG9gICtcbi8vIGBtaW4td2lkdGg6IDBgKTsgdGhlIGJhZGdlIGtlZXBzIGEgZml4ZWQgd2lkdGggdmlhIGBmbGV4LXNocmluazogMGAgb25cbi8vIGAuZ3MtYmFkZ2Utd3JhcGAgc28gYSBuYXJyb3cgc2hlZXQgKH4zMjBweCkgbmV2ZXIgY3J1c2hlcyBpdC5cbi5ncy1zZWFyY2gtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG59XG5cbi8vIFRoZSBpbm5lciB3cmFwcGVyIGFyb3VuZCBqdXN0IHRoZSA8cWRuYXByby1pbnB1dD4g4oCUIGBwb3NpdGlvbjogcmVsYXRpdmVgXG4vLyBsaXZlcyBIRVJFIChub3Qgb24gYC5ncy1zZWFyY2gtcm93YCkgc28gYC5ncy1jb21wbGV0aW9uc2AgKGthYXJ0IDE4KSBzdGlsbFxuLy8gYW5jaG9ycyBkaXJlY3RseSB1bmRlciB0aGUgRklFTEQgYWxvbmUsIG5vdCB1bmRlciB0aGUgYmFkZ2UgdG9vLlxuLmdzLXNlYXJjaC1maWVsZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLy8gLS0tLSBDb21wbGV0aW9ucyBkcm9wZG93biAoc2V0Q29tcGxldGlvbnMsIGthYXJ0IDE4KSAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gXCJBdXRvY29tcGxldGUgdGlqZGVucyB0eXBlblwiOiBhIGNhcmQgb2Ygcm93cyBkaXJlY3RseSB1bmRlciB0aGUgc2VhcmNoXG4vLyBmaWVsZC4gVmlzdWFsIGxhbmd1YWdlIGNvcGllZCBmcm9tIHFkbmFwcm8taW5wdXQncyBvd24gdHlwZT1cImF1dG9jb21wbGV0ZVwiXG4vLyBkcm9wZG93biAoLmlucHV0LWFjLWRyb3Bkb3duIC8gLmlucHV0LWFjLWl0ZW0gaW4gc2Nzcy9jb21wb25lbnRzL3YyL2lucHV0L1xuLy8gX2lucHV0LnNjc3MpIHJhdGhlciB0aGFuIGludmVudGVkIOKAlCBzYW1lIGNhcmQgc2hhcGUsIHJvdyBoZWlnaHQsIGhvdmVyIOKAlFxuLy8gc28gYSBjb21wb25lbnQgdGhhdCBJU04nVCBhIHFkbmFwcm8taW5wdXQgc3RpbGwgcmVhZHMgYXMgXCJ0aGUgc2FtZSBraW5kXG4vLyBvZiBhdXRvY29tcGxldGVcIiB0byB0aGUgdXNlci4gUG9zaXRpb25lZCBhYnNvbHV0ZSBzbyBpdCBvdmVybGF5cyB0aGVcbi8vIGNhdGVnb3J5IHJvdyAvIGdyaWQgYmVsb3cgaW5zdGVhZCBvZiBwdXNoaW5nIHRoZW0gZG93bi5cbi5ncy1jb21wbGV0aW9ucyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyA0cHgpO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgbWF4LWhlaWdodDogMjYwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA4KSwgMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbiAgcGFkZGluZzogNnB4O1xuICB6LWluZGV4OiA1O1xufVxuLmdzLWNvbXBsZXRpb25zW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4uZ3MtY29tcGxldGlvbi1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzZweDtcbiAgcGFkZGluZzogMCAxMHB4O1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZ3MtY29tcGxldGlvbi1pdGVtICsgLmdzLWNvbXBsZXRpb24taXRlbSB7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cbi5ncy1jb21wbGV0aW9uLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xufVxuXG4vLyAtLS0tIENhdGVnb3J5IGNoaXAgcm93IChzZXRDYXRlZ29yaWVzLCBrYWFydCAyMCkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gSG9yaXpvbnRhbGx5IHNjcm9sbGFibGUgcm93IG9mIHFkbmFwcm8tdGFnIENISVBTIOKAlCByZXBsYWNlcyBrYWFydCAxOCdzXG4vLyBpbWFnZS10aWxlIHJvdyAoS2ltJ3MgZGVzaWduIGNvcnJlY3Rpb24sIDE5LjA4LjIwMjY6IFwiZXhhY3Qgem9hbHNcbi8vIHFkbmFwcm8tc3RpY2tlci1zaGVldCBkYXQgZG9ldCBlbiB6b2FscyBLTElQWSdzIGVpZ2VuIGRlbW9cIiwgc2VlIGthYXJ0XG4vLyAyMC9CT0FSRC1wdWxzZS1naWZzLm1kKS4gTGF5b3V0IGNvcGllZCAxOjEgZnJvbSBxZG5hcHJvLXN0aWNrZXItc2hlZXQnc1xuLy8gb3duIC5zcy1jYXRzIChzY3NzL2NvbXBvbmVudHMvdjIvc3RpY2tlci1zaGVldC9fc3RpY2tlci1zaGVldC5zY3NzKTpcbi8vIHNhbWUgZmxleCByb3csIHNhbWUgaGlkZGVuLXNjcm9sbGJhciByZWNpcGUuIEFsd2F5cyB2aXNpYmxlIHdoaWxlIHRoZVxuLy8gc2hlZXQgaXMgb3BlbiDigJQgbm8gaGlkZS1vbi1zZWFyY2ggaGVyZSAoc2VlIHRoZSBKUyBkb2NibG9jaykuXG4uZ3MtY2F0ZWdvcmllcyB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMCAxMnB4IDEwcHg7XG59XG4uZ3MtY2F0ZWdvcmllczo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogMDsgaGVpZ2h0OiAwOyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIFRoZSBjaGlwcyBhcmUgcGxhaW4gcWRuYXByby10YWdzOiB2YXJpYW50PVwib3V0bGluZVwiIHdoZW4gdW5jaG9zZW4sXG4vLyBjb2xvcj1cImFjdGlvblwiIHdoZW4gY2hvc2VuIOKAlCB0aGUgU0FNRSBjb21wb25lbnQvc3RhdGUgcGFpciBhc1xuLy8gcWRuYXByby1zdGlja2VyLXNoZWV0J3Mgb3duIC5zcy1jYXQgY2hpcHMuIE5vIGNvbG91ciBydWxlIGxpdmVzIGhlcmUgb25cbi8vIHB1cnBvc2U6IGV2ZXJ5IGNvbG91ci9zdXJmYWNlIHZhbHVlIGlzIG9uIHRoZSB0YWcgY29tcG9uZW50IGl0c2VsZi5cblxuLy8gLS0tLSBcIlRyeSBpbnN0ZWFkXCIgY2hpcHMgaW4gdGhlIGVtcHR5IHN0YXRlIChzZXRTdWdnZXN0aW9ucywga2FhcnQgMTgpIC0tXG4uZ3Mtc3VnZ2VzdGlvbnMge1xuICBtYXJnaW4tdG9wOiAxNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbn1cbi5ncy1zdWdnZXN0aW9ucy1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG4uZ3Mtc3VnZ2VzdGlvbnMtY2hpcHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDhweDtcbn1cblxuLy8gVGhlIGJhZGdlIGlzIGEgZml4ZWQtcmF0aW8gUE5HICg0ODY3eDgyOCBpbiB0aGUgc291cmNlLCB+NS45OjEpLiAxNnB4IHRhbGxcbi8vIGtlZXBzIGl0IGxlZ2libGUgd2l0aG91dCBjb21wZXRpbmcgd2l0aCB0aGUgc2VhcmNoIGZpZWxkIG5leHQgdG8gaXQuXG4vLyBgZmxleC1zaHJpbms6IDBgOiB0aGlzIHNpdHMgaW4gYC5ncy1zZWFyY2gtcm93YCBuZXh0IHRvIHRoZSBzZWFyY2ggZmllbGRcbi8vIChrYWFydCAyMikg4oCUIHRoZSBmaWVsZCBpcyB0aGUgb25lIHRoYXQgc2hyaW5rcyBvbiBhIG5hcnJvdyBzaGVldCwgdGhlXG4vLyBiYWRnZSBrZWVwcyBpdHMgb3duIHdpZHRoIHNvIGl0IG5ldmVyIGdldHMgY3J1c2hlZCBhdCB+MzIwcHguXG4uZ3MtYmFkZ2Utd3JhcCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmdzLWJhZGdlIHtcbiAgaGVpZ2h0OiAxNnB4O1xuICB3aWR0aDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vLyBEZWZhdWx0ID0gbGlnaHQgdGhlbWUgKGJsYWNrIHdvcmRtYXJrKS4gW2RhdGEtdGhlbWU9ZGFya10gc3dhcHMgdG8gdGhlXG4vLyB3aGl0ZSBQTkcg4oCUIHNhbWUgb3ZlcnJpZGUgbWVjaGFuaXNtIGFzIHFkbmFwcm8tYWN0aXZpdHktaWNvbidzIGRhcmstbW9kZVxuLy8gcnVsZSwgbmV2ZXIgYSBKUyBtZWRpYS1xdWVyeSBjaGVjay5cbi5ncy1iYWRnZS1kYXJrIHsgZGlzcGxheTogbm9uZTsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLmdzLWJhZGdlLWxpZ2h0IHsgZGlzcGxheTogbm9uZTsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLmdzLWJhZGdlLWRhcmsgeyBkaXNwbGF5OiBibG9jazsgfVxuXG4vLyAtLS0tIFNjcm9sbGluZyBhcmVhOiBncmlkICsgc2tlbGV0b24gKyBlbXB0eSBzdGF0ZSArIHNlbnRpbmVsIC0tLS0tLS0tLS0tXG4vLyBgY29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplYCB0dXJucyAuZ3Mtc2Nyb2xsIGludG8gYSBRVUVSWSBDT05UQUlORVIgZm9yXG4vLyB0aGUgY29sdW1uLWNvdW50IGJyZWFrcG9pbnRzIGJlbG93LiBUaGlzIG11c3Qga2V5IG9mZiB0aGUgcmFzdGVyJ3Mgb3duXG4vLyByZW5kZXJlZCB3aWR0aCwgbm90IHRoZSB2aWV3cG9ydDogdGhlIHBvcG92ZXIgc3VyZmFjZSBpcyBhIGZpeGVkIDM4MHB4XG4vLyBjYXJkIG9uIGEgZGVza3RvcCB2aWV3cG9ydCwgYW5kIGEgcGxhaW4gQG1lZGlhIHF1ZXJ5IHdvdWxkIG9ubHkgZXZlciBzZWVcbi8vIHRoZSAod2lkZSkgdmlld3BvcnQgYW5kIG5ldmVyIGRyb3AgYmVsb3cgaXRzIG5hcnJvd2VzdCBicmVha3BvaW50LiBTYW1lXG4vLyBuYW1lZC1jb250YWluZXIgcGF0dGVybiBhcyBxZG5hcHJvLWxpa2VydC1zY2FsZSdzIHJvdy9zY2FsZSBsYXlvdXQgc3dpdGNoXG4vLyAoY29udGFpbmVyOiBxZG5hcHJvLWxpa2VydC1zY2FsZSAvIGlubGluZS1zaXplKSDigJQgaW5saW5lLXNpemUgb25seSwgc28gaXRcbi8vIGRvZXMgbm90IGludGVyZmVyZSB3aXRoIC5ncy1zY3JvbGwncyBvd24gaGVpZ2h0L292ZXJmbG93IGJlaGF2aW91ci5cbi5ncy1zY3JvbGwge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbiAgY29udGFpbmVyOiBxZG5hcHJvLWdpZi1zaGVldCAvIGlubGluZS1zaXplO1xufVxuLmdzLXNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogMDsgaGVpZ2h0OiAwOyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIC0tLS0gR3JpZDogcmVzcG9uc2l2ZS1jb2x1bW4gbWFzb25yeSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEdJRnMgY29tZSBpbiBldmVyeSBhc3BlY3QgcmF0aW8gS0xJUFkgc2hpcHMsIHVubGlrZSB0aGUgc3RpY2tlci1zaGVldCdzXG4vLyB1bmlmb3JtIHNxdWFyZSBjYXRhbG9nIOKAlCBhIHJpZ2lkIENTUyBncmlkIHdvdWxkIGVpdGhlciBjcm9wIGV2ZXJ5IHRpbGUgdG9cbi8vIGEgc3F1YXJlIG9yIGxlYXZlIGJpZyBnYXBzLiBBIENTUyBtdWx0aS1jb2x1bW4gbGF5b3V0IGlzIHRoZSBwbGFpbi1DU1Ncbi8vIG1hc29ucnk6IGVhY2ggY2VsbCBrZWVwcyBpdHMgb3duIGFzcGVjdCByYXRpbyBhbmQgYGJyZWFrLWluc2lkZTogYXZvaWRgXG4vLyBzdG9wcyBhIHRpbGUgc3BsaXR0aW5nIGFjcm9zcyB0aGUgY29sdW1uIGJyZWFrLlxuLy9cbi8vIENvbHVtbiBDT1VOVCByZXNwb25kcyB0byB0aGUgY29udGFpbmVyJ3MgYXZhaWxhYmxlIHdpZHRoIChzZWUgLmdzLXNjcm9sbFxuLy8gYWJvdmUpLCBub3QgYSBmaXhlZCBudW1iZXI6IG9uIHRoZSAzODBweCBwb3BvdmVyIHN1cmZhY2UgMiBjb2x1bW5zIGtlZXBzXG4vLyBLTElQWSdzIHNtIHByZXZpZXcgKDE2NXB4LCBzZWUgTGl0dGxlLnBocCBwdWxzZUdpZlNoYXBlKCkpIGNsb3NlIHRvIGl0c1xuLy8gbmF0aXZlIHNpemUsIGJ1dCB0aGUgU0FNRSBncmlkIGFsc28gcmVuZGVycyBpbnNpZGUgYSBwaG9uZSBib3R0b20gc2hlZXRcbi8vIHRoYXQgY2FuIG9wZW4gfjEwMDBweCB3aWRlIG9uIHRhYmxldC9kZXNrdG9wIOKAlCBhIGZpeGVkIGNvbHVtbi1jb3VudDoyXG4vLyB0aGVyZSBzdHJldGNoZXMgZXZlcnkgdGlsZSB0byB+NDUwcHggYW5kIHZpc2libHkgYmxvd3MgdXAvYmx1cnMgdGhhdCBzYW1lXG4vLyAxNjVweCBwcmV2aWV3IChLaW0ncyB0ZXN0LCAxOS4wOC4yMDI2KS4gMy80IGNvbHVtbnMga2VlcCB0aWxlcyBpbiB0aGVcbi8vIH4xNjUtMjIwcHggcmFuZ2UgYXMgdGhlIHJhc3RlciBnZXRzIHdpZGVyLlxuLmdzLWdyaWQge1xuICBjb2x1bW4tY291bnQ6IDI7XG4gIGNvbHVtbi1nYXA6IDhweDtcbiAgcGFkZGluZzogMCAxMnB4IDEycHg7XG59XG4vLyBUaGUgSlMgaGlkZXMgdGhlIGdyaWQgd2l0aCB0aGUgYGhpZGRlbmAgQVRUUklCVVRFIHdoaWxlIGVtcHR5L2xvYWRpbmc7XG4vLyB3aXRob3V0IHRoaXMgcnVsZSBgY29sdW1uLWNvdW50YCBhYm92ZSB3aW5zIG92ZXIgdGhlIGJyb3dzZXIncyBvd25cbi8vIFtoaWRkZW5dIHsgZGlzcGxheTpub25lIH0g4oCUIHNhbWUgdHJhcCBhcyBxZG5hcHJvLXN0aWNrZXItc2hlZXQncyAuc3MtZ3JpZC5cbi5ncy1ncmlkW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbkBjb250YWluZXIgcWRuYXByby1naWYtc2hlZXQgKG1pbi13aWR0aDogNTYwcHgpIHtcbiAgLmdzLWdyaWQsIC5ncy1za2VsZXRvbiB7IGNvbHVtbi1jb3VudDogMzsgfVxufVxuQGNvbnRhaW5lciBxZG5hcHJvLWdpZi1zaGVldCAobWluLXdpZHRoOiA4MjBweCkge1xuICAuZ3MtZ3JpZCwgLmdzLXNrZWxldG9uIHsgY29sdW1uLWNvdW50OiA0OyB9XG59XG5cbi5ncy1jZWxsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgMCA4cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBicmVhay1pbnNpZGU6IGF2b2lkO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmdzLWNlbGw6YWN0aXZlIHsgb3BhY2l0eTogMC44NTsgfVxuLmdzLWltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTtcbn1cblxuLy8gLS0tLSBMb2FkaW5nIHNrZWxldG9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTYW1lIHJlc3BvbnNpdmUgY29sdW1uLWNvdW50IGFzIC5ncy1ncmlkIGFib3ZlIChzZWUgdGhlIEBjb250YWluZXIgcnVsZXNcbi8vIHRoZXJlKSDigJQgdGhlIHNrZWxldG9uIG1pcnJvcnMgdGhlIHJhc3RlcidzIHJlYWwgbGF5b3V0IHNvIGl0IGRvZXMgbm90XG4vLyBmbGFzaCBhIGRpZmZlcmVudCBjb2x1bW4gY291bnQgdGhhbiB0aGUgR0lGcyB0aGF0IHJlcGxhY2UgaXQuXG4uZ3Mtc2tlbGV0b24ge1xuICBjb2x1bW4tY291bnQ6IDI7XG4gIGNvbHVtbi1nYXA6IDhweDtcbiAgcGFkZGluZzogMCAxMnB4IDEycHg7XG59XG4uZ3Mtc2tlbGV0b25baGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5ncy1za2VsLWNlbGwge1xuICBtYXJnaW46IDAgMCA4cHg7XG4gIGJyZWFrLWluc2lkZTogYXZvaWQ7XG59XG4uZ3Mtc2tlbGV0b24gcWRuYXByby1za2VsZXRvbi1ib25lIHtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbn1cblxuLy8gLS0tLSBFbXB0eSBzZWFyY2ggc3RhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5ncy1lbXB0eVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLmdzLWVtcHR5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBwYWRkaW5nOiA1NnB4IDI0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG4uZ3MtZW1wdHktaWNvbiB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG59XG4uZ3MtZW1wdHktdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbWF4LXdpZHRoOiAyNjBweDtcbn1cblxuLy8gLS0tLSBQYWdpbmcgc2VudGluZWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFplcm8taGVpZ2h0IG1hcmtlciB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgd2F0Y2hlczsgaXQgY2FycmllcyBubyB2aXNpYmxlXG4vLyBVSSBvZiBpdHMgb3duIOKAlCB0aGUgc2tlbGV0b24gLyBhIGZ1dHVyZSBzcGlubmVyIGlzIHdoYXQgdGVsbHMgdGhlIHVzZXJcbi8vIG1vcmUgaXMgb24gaXRzIHdheS5cbi5ncy1zZW50aW5lbCB7XG4gIGhlaWdodDogMXB4O1xufVxuIiwiLy8gX2dyaWQtdGlsZS5zY3NzXG4vL1xuLy8gcWRuYXByby1ncmlkLXRpbGUgLSBnZW5lcmljIGFwcC13aWRlIGdyaWQgdGlsZSAodGludGVkIGFydHdvcmsgem9uZSArXG4vLyB0aXRsZSArIG9wdGlvbmFsIG1ldGEsIGNlbnRlcmVkLCBiZWxvdyBpdCkuIEdlbmVyYWxpc2VzIHRoZSBQV0Fcbi8vIGRvY3VtZW50cyBncmlkIGFuYXRvbXkgKGFwcF9hcGlfcWRuYXYyL3NyYy9SRVgvUmVzb3VyY2VzL1Njc3MvX2RvY3VtZW50cy5zY3NzXG4vLyAuZG9jdW1lbnRzX3Jvdy0tZ3JpZCwgTk9UIGVkaXRlZCBoZXJlKSBzbyBhbnkgZ3JpZCBvZiBmaWxlcy9mb2xkZXJzL3VuaXRzL1xuLy8gZXRjLiBjYW4gcmV1c2UgT05FIGNvbXBvbmVudCBpbnN0ZWFkIG9mIGZvcmtpbmcgdGlsZSBtYXJrdXAuXG4vL1xuLy8gU0laRSBUQUJMRSAoS2ltJ3MgYnJpZWY6IDMgZml4ZWQgc2l6ZXMsIGRvY3VtZW50ICsganVzdGlmeSB0aGUgbnVtYmVycyk6XG4vLyAgIHNpemU9XCJzXCIgICAgICAgICAgICB3aWR0aCA5NnB4ICAgYXJ0d29yayA2MHg2MCAgIGZhbGxiYWNrIGdseXBoIDMwcHggICB0aXRsZSAxMnB4LzUwMCAgIG1ldGEgMTBweC80MDBcbi8vICAgc2l6ZT1cIm1cIiAoZGVmYXVsdCkgICB3aWR0aCAxMjBweCAgYXJ0d29yayA3Nng3NiAgIGZhbGxiYWNrIGdseXBoIDM4cHggICB0aXRsZSAxM3B4LzUwMCAgIG1ldGEgMTFweC80MDBcbi8vICAgc2l6ZT1cImxcIiAgICAgICAgICAgICB3aWR0aCAxNDhweCAgYXJ0d29yayA5Mng5MiAgIGZhbGxiYWNrIGdseXBoIDQ2cHggICB0aXRsZSAxNHB4LzUwMCAgIG1ldGEgMTJweC80MDBcbi8vIERlbGliZXJhdGVseSBkaXNjcmV0ZSAobm90IGEgZnJlZSBwaXhlbCBhdHRyaWJ1dGUpIC0gc2FtZSByZWFzb25pbmcgYXNcbi8vIHFkbmFwcm8taWNvbi1idG4ncyAzIHNpemVzOiBhIGdyaWQgbWl4aW5nIHRpbGUgc2l6ZXMgbmVlZHMgdG8gbGluZSB1cFxuLy8gYWdhaW5zdCBhIHNtYWxsIGZpeGVkIHZvY2FidWxhcnksIG5vdCBhcmJpdHJhcnkgdmFsdWVzLiBcIm1cIiBtaXJyb3JzXG4vLyBxZG5hcHJvLWxpc3Qtcm93J3MgNDB4NDAgbGVhZGluZyB0aWxlIHNjYWxlZCB1cCBmb3IgYSBncmlkIGNvbnRleHQgKGFcbi8vIGdyaWQgdGlsZSBjYXJyaWVzIG1vcmUgdmlzdWFsIHdlaWdodCB0aGFuIGFuIGlubGluZSByb3cgaWNvbik7IHMvbCBzdGVwXG4vLyBieSByb3VnaGx5IHRoZSBzYW1lIDMtNHB4LXBlci10aWVyIHJhdGlvIHVzZWQgYWNyb3NzIHRoaXMgbGlicmFyeSdzIG90aGVyXG4vLyBzaXplZCBjb21wb25lbnRzIChpY29uLWJ0biAyNC8yOC80NCwgYXZhdGFyJ3Mgb3duIHNpemUgcmFtcCkuXG4vL1xuLy8gVElOVCBERUNJU0lPTiAoZ292ZXJucyB0aGUgQVJUV09SSyBaT05FLCBub3QgdGhlIHdob2xlIHRpbGUgY2FyZCk6XG4vLyBxZG5hcHJvLWxpc3Qtcm93J3MgYHRpbnRgIGNvbG91cnMgaXRzIGxlYWRpbmcgaWNvbi1USUxFIC0gdGhlIGFydHdvcmsgem9uZVxuLy8gaGVyZSBpcyB0aGUgZGlyZWN0IGVxdWl2YWxlbnQgb2YgdGhhdCB0aWxlLCBqdXN0IHNxdWFyZSBhbmQgYmlnZ2VyLiBUaGVcbi8vIGFsdGVybmF0aXZlICh0aW50aW5nIHRoZSBFTlRJUkUgY2FyZCkgd2FzIGNvbnNpZGVyZWQgYW5kIHJlamVjdGVkOiB0aGVcbi8vIGN1cnJlbnQgUFdBIGRvY3VtZW50cyBncmlkIGFscmVhZHkgZ2l2ZXMgZXZlcnkgdGlsZSBhIG5ldXRyYWwgd2hpdGUgY2FyZFxuLy8gd2l0aCBhIFwiZG9jdW1lbnRzX3NlY3Rpb25cIi1zdHlsZSBob3ZlciBsaWZ0IChzZWUgdGhlIGV4YWN0IGxpZnQgdmFsdWVzXG4vLyByZXVzZWQgYmVsb3cpOyB0aW50aW5nIHRoZSBmdWxsIGNhcmQgcGVyIGZpbGUvZm9sZGVyIGNvbG91ciB3b3VsZCB0dXJuIGFcbi8vIGdyaWQgb2YgbWFueSBmaWxlcyBpbnRvIGEgc29saWQgd2FsbCBvZiBjb2xvdXIgYW5kIGZpZ2h0IHRoYXQgZXN0YWJsaXNoZWRcbi8vIG5ldXRyYWwtY2FyZC1wbHVzLWxpZnQgbGFuZ3VhZ2UgZXZlcnkgb3RoZXIgY2FyZCBpbiB0aGlzIGdyaWQgYWxyZWFkeVxuLy8gdXNlcy4gQ29uZmluaW5nIGB0aW50YCB0byB0aGUgYXJ0d29yayB6b25lIGtlZXBzIHRoZSB0aWxlIGNhcmQgaXRzZWxmXG4vLyBjb25zaXN0ZW50IHdpdGggZXZlcnkgb3RoZXIgY2FyZCB3aGlsZSBzdGlsbCBnaXZpbmcgZm9sZGVycy9maWxlcyB0aGVcbi8vIHNhbWUgYXQtYS1nbGFuY2UgY29sb3VyIGNvZGluZyBxZG5hcHJvLWxpc3Qtcm93L3FkbmFwcm8tcGlja2VyLXJvdy9cbi8vIHFkbmFwcm8tdGFza2xpc3QtY2FyZCBhbHJlYWR5IHVzZSBlbHNld2hlcmUuIFNhbWUgOCBoZXggcGFpcnMgYXNcbi8vIHFkbmFwcm8tbGlzdC1yb3cncyAucWxyLXRpbGUtY29sb3ItKiAoY29waWVkIDE6MSwgc2FtZSBcIm5vIHNoYXJlZCBwYWxldHRlXG4vLyBtb2R1bGUgeWV0XCIgc2l0dWF0aW9uIGFzIHRoYXQgY29tcG9uZW50J3Mgb3duIGhlYWRlciBjb21tZW50IC0gZXZlcnkgdGlsZVxuLy8gY29tcG9uZW50IGluIHRoaXMgbGlicmFyeSBrZWVwcyBpdHMgb3duIGNvcHkgdG9kYXkpLlxuLy9cbi8vIEZPTlQtV0VJR0hUOiB0aXRsZSA1MDAgKG1lZGl1bSksIE5PVCA2MDAvNzAwIC0gc2FtZSBjb252ZW50aW9uXG4vLyBxZG5hcHJvLWxpc3Qtcm93J3MgdGl0bGUgbGFuZGVkIG9uIGFmdGVyIEtpbSdzIFwiZG9jdW1lbnRzX3JvdyBmZWx0IHRvb1xuLy8gaGVhdnkgYXQgNjAwXCIgZmVlZGJhY2sgKHNlZSBfbGlzdC1yb3cuc2NzcydzIG93biBjcm9zcy1jb21wb25lbnRcbi8vIGV2aWRlbmNlKS4gTWV0YSBmb2xsb3dzIHRoZSBzYW1lIG11dGVkLzQwMCBjb252ZW50aW9uIGFzIGxpc3Qtcm93J3Ncbi8vIHN1YnRpdGxlIC8gZXZlbnQtY2FyZCdzIG1ldGEgdGV4dC5cbi8vXG4vLyBQUkVTUy1PTkxZICgyMi4wNy4yMDI2KTogdGhlIHRpbGUgaGFzIE5PIG1lbnUgYnV0dG9uLCBsb25nLXByZXNzIG9yXG4vLyBjb250ZXh0bWVudSBnZXN0dXJlIC0gaXQgZmlyZXMgYSBzaW5nbGUgcWRuYXByby1ncmlkLXRpbGUtcHJlc3MgYW5kIGFcbi8vIGNvbnN1bWVyIG9wZW5zIGFueSBwZXItdGlsZSBhY3Rpb25zIGZyb20gdGhlcmUuIFNvIHRoZSBjYXJkIHBhZGRpbmcgaXMgYVxuLy8gcGxhaW4gc3ltbWV0cmljIDEwcHggKG5vIHRvcCBjbGVhcmFuY2UgdG8gcmVzZXJ2ZSkgYW5kIHRoZSB0b3AtcmlnaHQgY29ybmVyXG4vLyBpcyBmcmVlIGZvciB0aGUgYmFkZ2Ugc2xvdC5cbi8vXG4vLyBCQURHRSBTTE9UOiBhIHNpbmdsZSBvdmVybGF5ICh0eXBpY2FsbHkgcWRuYXByby1zdGF0dXMtYmFkZ2U6IGZhdm91cml0ZVxuLy8gaGVhcnQgLyBvZmZsaW5lIC8gbmV3KSBoYW5ncyBvbiB0aGUgY2FyZCdzIE9VVEVSIHRvcC1yaWdodCBjb3JuZXIgYW5kXG4vLyBvdmVyaGFuZ3MgdGhlIHRvcCBlZGdlIChhIGNoaWxkIG9mIHRoZSBob3N0LCBub3QgdGhlIGFydHdvcmsgLSB0aGUgYXJ0d29ya1xuLy8gY2xpcHM7IHRoZSBjYXJkIGRvZXMgbm90KS4gU2VlIGAucWd0LWJhZGdlYC5cbi8vXG4vLyBIT1ZFUiBMSUZUOiByZXVzZXMgdGhlIEVYQUNUIHRyYW5zbGF0ZVkgKyBib3gtc2hhZG93IHBhaXIgZnJvbSB0aGUgUFdBJ3Ncbi8vIG93biBcImRvY3VtZW50c19zZWN0aW9uXCIgY2FyZCBob3ZlciAoYXBwX2FwaV9xZG5hdjIncyBfZG9jdW1lbnRzLnNjc3MsXG4vLyByZWFkLW9ubHkgcmVmZXJlbmNlKSAtIEtpbSdzIGJyaWVmIGFza2VkIGZvciBcImxpZnQgem9hbHMgZGVcbi8vIGRvY3VtZW50ZW4ta2FhcnRlblwiLCBzbyB0aGlzIGlzIHRoYXQgc2FtZSByZWNpcGUsIG5vdCBhIG5ldyBvbmUuXG5cbi5xZG5hcHJvLWdyaWQtdGlsZSB7XG4gICAgLS1xZ3QtYmc6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgLS1xZ3QtYmctaG92ZXI6IHZhcigtLWMtYmctY2FyZC1ob3ZlciwgI2Y3ZjhmYSk7XG4gICAgLS1xZ3QtYmctcHJlc3NlZDogdmFyKC0tYy1wdXJwbGUtc29mdC0xMiwgcmdiYSg2NCwgNzMsIDE1NCwgMC4xMikpO1xuICAgIC0tcWd0LXRpdGxlLWNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWY0ZCk7XG4gICAgLS1xZ3QtbWV0YS1jb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICAtLXFndC1mb2N1cy1yaW5nOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG4gICAgLS1xZ3QtZm9jdXMtZ2xvdzogdmFyKC0tYy1wdXJwbGUtc29mdC0xOCwgcmdiYSg2NCwgNzMsIDE1NCwgMC4xOCkpO1xuICAgIC0tcWd0LXNlbGVjdGVkLXJpbmc6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbiAgICAtLXFndC1zZWxlY3RlZC1nbG93OiB2YXIoLS1jLWFjdGlvbi0xOCwgcmdiYSg3MCwgODIsIDI0MywgMC4xOCkpO1xuICAgIC8vIExFVCBPUCAxOC4wOC4yMDI2IChsYXRlciBkaWUgZGFnKTogYWxsZWVuIGRlIERPTS12b3JtIGlzIG5vZyBnZXNwaWVnZWxkXG4gICAgLy8gbWV0IHFkbmFwcm8tdG91Y2gtYnV0dG9uLiBEaWUgc3R5bGVlcnQgZGUgcGlsbGVuIHNpbmRzIEtpbXMgbW9ja3VwIGFsc1xuICAgIC8vIGdyb3RlIGluLWZsb3cgYmFsa2VuICgucXRiLWhhcy1waWxscywgemllIF90b3VjaC1idXR0b24uc2Nzcyk7IGRpdFxuICAgIC8vIGJlc3RhbmQgaG91ZHQgZGUga2xlaW5lIGhvZWstY2hpcHMgdG90IGVlbiBjb25zdW1lbnQgYW5kZXJzIHZyYWFndC5cbiAgICAvLyBQaWxscyAoMTguMDguMjAyNiwgc2VlIC5xZ3QtcGlsbHMgYmVsb3cpIC0gc3Ryb25nIHJldXNlcyB0aGUgU0FNRVxuICAgIC8vIHNvbGlkIHNpZ25hbC1yZWQgcWRuYXByby1udW1iZXItaW5kaWNhdG9yLWJhZGdlJ3MgYGFsZXJ0YCBjb2xvdXIgdXNlc1xuICAgIC8vICgtLWMtd2Fybi1yZWQtNTAwKSwgbm90IGEgbmV3IHJlZDsgc29mdCBpcyBhIGZsYXQgbGlnaHQtZ3JleSBjaGlwIHdpdGhcbiAgICAvLyBhbiBhY3Rpb24tYmx1ZSBpY29uIGFuZCBhIGRhcmsgY291bnQuXG4gICAgLS1xZ3QtcGlsbC1zdHJvbmctYmc6IHZhcigtLWMtd2Fybi1yZWQtNTAwLCAjZGMyNjI2KTtcbiAgICAtLXFndC1waWxsLXN0cm9uZy1mZzogI2ZmZmZmZjtcbiAgICAtLXFndC1waWxsLXNvZnQtYmc6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG4gICAgLS1xZ3QtcGlsbC1zb2Z0LWljb24tZmc6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gICAgLS1xZ3QtcGlsbC1zb2Z0LWNvdW50LWZnOiB2YXIoLS1xZ3QtdGl0bGUtY29sb3IpO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWd0LWJnKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMsIDEycHgpOyAvLyAxMnB4IGNhcmQgY29ybmVycyAoS2ltIDIyLjA3LjIwMjYsIHdhcyAtLXItY2FyZC8xNnB4KVxuICAgIHBhZGRpbmc6IDEwcHg7IC8vIHN5bW1ldHJpYyAtIG5vIG1lbnUgYnV0dG9uIHRvIHJlc2VydmUgdG9wIGNsZWFyYW5jZSBmb3IgKEtpbSAyMi4wNy4yMDI2KVxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mZiwgXCJJbnRlclwiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWYpO1xuICAgIGNvbG9yOiB2YXIoLS1xZ3QtdGl0bGUtY29sb3IpO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMTUwbXMgZWFzZSwgdHJhbnNmb3JtIDE1MG1zIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMTAwbXMgZWFzZS1vdXQ7XG5cbiAgICAmOmhvdmVyOm5vdCgucWd0LWRpc2FibGVkKTpub3QoLnFndC1zdGF0aWMpIHtcbiAgICAgICAgLy8gRXhhY3QgbGlmdCByZWNpcGUgYXMgUFdBIC5kb2N1bWVudHNfc2VjdGlvbjpob3ZlciAocmVhZC1vbmx5XG4gICAgICAgIC8vIHJlZmVyZW5jZSBpbiBhcHBfYXBpX3FkbmF2MidzIF9kb2N1bWVudHMuc2NzcykgLSBcImxpZnQgem9hbHMgZGVcbiAgICAgICAgLy8gZG9jdW1lbnRlbi1rYWFydGVuXCIgcGVyIEtpbSdzIGJyaWVmLlxuICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4wNyksIDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgfVxuXG4gICAgLy8gQSBzdGF0aWMgdGlsZSBpcyBkaXNwbGF5LCBub3QgYSBjb250cm9sIC0gc2VlIHRoZSBgc3RhdGljYCBhdHRyaWJ1dGUgaW5cbiAgICAvLyB0aGUgSlMgaGVhZGVyLiBObyBwb2ludGVyIGN1cnNvciBhbmQgbm8gbGlmdCwgc28gaXQgZG9lcyBub3QgYWR2ZXJ0aXNlIGFcbiAgICAvLyBjbGljayB0aGF0IGRvZXMgbm90IGV4aXN0LiBbMTAuMDguMjAyNl1cbiAgICAmLnFndC1zdGF0aWMge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgJi5pcy1wcmVzc2VkOm5vdCgucWd0LWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXFndC1iZy1wcmVzc2VkKTtcbiAgICAgICAgLy8gU3VidGxlIHNjYWxlLWRvd24gb24gdGFwL3ByZXNzIGZlZWRiYWNrIChzYW1lIHJlY2lwZSBhc1xuICAgICAgICAvLyBxZG5hcHJvLXVuaXQtY2FyZCdzIC5pcy1wcmVzc2luZykuXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Nik7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA3MG1zIGVhc2Utb3V0O1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSxcbiAgICAmLmZvcmNlLWZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgIGluc2V0IDAgMCAwIDJweCB2YXIoLS1xZ3QtZm9jdXMtcmluZyksXG4gICAgICAgICAgICBpbnNldCAwIDAgMCA1cHggdmFyKC0tcWd0LWZvY3VzLWdsb3cpO1xuICAgIH1cblxuICAgICYucWd0LXNlbGVjdGVkIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHZhcigtLXFndC1zZWxlY3RlZC1nbG93KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlLCAjZjNmNWZmKTtcblxuICAgICAgICAucWd0LXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1xZ3Qtc2VsZWN0ZWQtcmluZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnFndC1zZWxlY3RlZDpob3Zlcjpub3QoLnFndC1kaXNhYmxlZCkge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggdmFyKC0tcWd0LXNlbGVjdGVkLWdsb3cpLCAwIDRweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4wNyk7XG4gICAgfVxuXG4gICAgJi5xZ3QtZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgJjpob3Zlcjpub3QoLnFndC1kaXNhYmxlZCkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG4gICAgICAgICYuaXMtcHJlc3NlZDpub3QoLnFndC1kaXNhYmxlZCkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFByZXZpZXctb25seSBmb3JjZS1zdGF0ZSB1dGlsaXRpZXMgKG1pcnJvciBxZG5hcHJvLWxpc3Qtcm93KS5cbiAgICAmLmZvcmNlLWhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMDcpLCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgIH1cbiAgICAmLmZvcmNlLXByZXNzZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xZ3QtYmctcHJlc3NlZCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Nik7XG4gICAgfVxufVxuXG4vLyAtLS0tIFNpemUgdmFyaWFudHMgLS0tLVxuLy8gV2lkdGggaXMgc2V0IG9uIHRoZSBob3N0IGl0c2VsZiAodGhlIHRpbGUgaXMgYSBmaXhlZC1mb290cHJpbnQgZ3JpZCBjZWxsLFxuLy8gbm90IGEgZmx1aWQgYmxvY2spIC0gYSBjb25zdW1lcidzIENTUyBncmlkIGp1c3QgbmVlZHNcbi8vIGBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCg8c2l6ZSB3aWR0aD4sIDFmcikpYCB0b1xuLy8gbGluZSB0aWxlcyB1cCBjbGVhbmx5OyBzZWUgdGhlIHByZXZpZXcgZm9yIGEgd29ya2luZyBleGFtcGxlIHBlciBzaXplLlxuLnFkbmFwcm8tZ3JpZC10aWxlLnFndC1zaXplLXMge1xuICAgIHdpZHRoOiA5NnB4O1xuXG4gICAgLnFndC1hcnR3b3JrIHsgd2lkdGg6IDYwcHg7IGhlaWdodDogNjBweDsgfVxuICAgIC5xZ3QtYXJ0d29yay1pY29uIHsgd2lkdGg6IDMwcHg7IGhlaWdodDogMzBweDsgfVxuICAgIC5xZ3QtdGl0bGUgeyBmb250LXNpemU6IDEycHg7IH1cbiAgICAucWd0LW1ldGEgeyBmb250LXNpemU6IDEwcHg7IH1cbn1cblxuLnFkbmFwcm8tZ3JpZC10aWxlLnFndC1zaXplLW0ge1xuICAgIHdpZHRoOiAxMjBweDtcblxuICAgIC5xZ3QtYXJ0d29yayB7IHdpZHRoOiA3NnB4OyBoZWlnaHQ6IDc2cHg7IH1cbiAgICAucWd0LWFydHdvcmstaWNvbiB7IHdpZHRoOiAzOHB4OyBoZWlnaHQ6IDM4cHg7IH1cbiAgICAucWd0LXRpdGxlIHsgZm9udC1zaXplOiAxM3B4OyB9XG4gICAgLnFndC1tZXRhIHsgZm9udC1zaXplOiAxMXB4OyB9XG59XG5cbi5xZG5hcHJvLWdyaWQtdGlsZS5xZ3Qtc2l6ZS1sIHtcbiAgICB3aWR0aDogMTQ4cHg7XG5cbiAgICAucWd0LWFydHdvcmsgeyB3aWR0aDogOTJweDsgaGVpZ2h0OiA5MnB4OyB9XG4gICAgLnFndC1hcnR3b3JrLWljb24geyB3aWR0aDogNDZweDsgaGVpZ2h0OiA0NnB4OyB9XG4gICAgLnFndC10aXRsZSB7IGZvbnQtc2l6ZTogMTRweDsgfVxuICAgIC5xZ3QtbWV0YSB7IGZvbnQtc2l6ZTogMTJweDsgfVxufVxuXG4vLyAtLS0tIEFydHdvcmsgem9uZSAtLS0tXG4ucWd0LWFydHdvcmsge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMsIDEycHgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xZ3QtYXJ0d29yay1iZywgdmFyKC0tYy1wdXJwbGUtc29mdC0xMiwgcmdiYSg2NCwgNzMsIDE1NCwgMC4xMikpKTtcbiAgICBjb2xvcjogdmFyKC0tcWd0LWFydHdvcmstZmcsIHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKSk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgLy8ga2VlcCB0aGUgYWN0aXZpdHktaWNvbiB2YXJpYW50IGNsaXBwZWQgdG8gdGhlIHJvdW5kZWQgem9uZVxufVxuXG4vLyBBY3Rpdml0eS1pY29uIHZhcmlhbnQ6IHRoZSB0d28tdG9uZSBpbGx1c3RyYXRpdmUgaWNvbiBmaWxscyB0aGUgYXJ0d29yay1pY29uXG4vLyBib3ggKGl0cyBvd24gPGltZz4gc2NhbGVzIHRvIHRoZSBib3ggdGhlIHNpemUgcnVsZXMgc2V0KS4gU2FtZSBpZGVhIGFzIHRoZVxuLy8gbGlzdC1yb3cgYWN0aXZpdHktaWNvbiB2YXJpYW50LCBpbiB0aWxlIGZvcm0uIFsyMi4wNy4yMDI2XVxuLnFndC1hcnR3b3JrLWFjdGl2aXR5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ucWd0LWFydHdvcmstYWN0aXZpdHkgaW1nLFxuLnFndC1hcnR3b3JrLWFjdGl2aXR5IC5hY3Rpdml0eS1pY29uLWltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi8vIFRpbGUgY29sb3VyIHBhbGV0dGUgLSBTQU1FIDggaHVlcyArIGhleCBwYWlycyBhcyBxZG5hcHJvLWxpc3Qtcm93J3Ncbi8vIC5xbHItdGlsZS1jb2xvci0qIChjb3BpZWQgMToxIHNvIGEgcGFnZSBtaXhpbmcgZ3JpZCB0aWxlcyB3aXRoIGxpc3Qtcm93c1xuLy8gcmVhZHMgYXMgb25lIGNvbnNpc3RlbnQgdGludGVkLXRpbGUgZmFtaWx5OyBubyBzaGFyZWQgU0NTU1xuLy8gbWFwL21peGluIGV4aXN0cyBmb3IgdGhpcyBwYWxldHRlIGFueXdoZXJlIHlldCwgZWFjaCBjb21wb25lbnQgbWlycm9yc1xuLy8gaXRzIG93biBjb3B5IC0gZm9sbG93aW5nIHRoYXQgZXN0YWJsaXNoZWQgcGF0dGVybiByYXRoZXIgdGhhbiBpbnZlbnRpbmdcbi8vIGEgbmV3IG9uZSBoZXJlKS5cbi5xZ3QtdGludC1wdXJwbGUgICAgICB7IC0tcWd0LWFydHdvcmstYmc6IHZhcigtLWMtY2hpcC1wdXJwbGUtYmcpOyAtLXFndC1hcnR3b3JrLWZnOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7IH1cbi5xZ3QtdGludC1ncmV5ICAgICAgICB7IC0tcWd0LWFydHdvcmstYmc6IHZhcigtLWMtZ3JleS01MCk7IC0tcWd0LWFydHdvcmstZmc6IHZhcigtLWMtZ3JleS02MDAsICM1NjViNjYpOyB9XG4ucWd0LXRpbnQtcmVkICAgICAgICAgeyAtLXFndC1hcnR3b3JrLWJnOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpOyAtLXFndC1hcnR3b3JrLWZnOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7IH1cbi5xZ3QtdGludC15ZWxsb3cgICAgICB7IC0tcWd0LWFydHdvcmstYmc6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpOyAtLXFndC1hcnR3b3JrLWZnOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctdGV4dCwgI2JmNzIwMik7IH1cbi5xZ3QtdGludC1ncmVlbiAgICAgICB7IC0tcWd0LWFydHdvcmstYmc6IHZhcigtLWMtY2hpcC1ncmVlbi1iZyk7IC0tcWd0LWFydHdvcmstZmc6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQsICM0MjhiNmUpOyB9XG4ucWd0LXRpbnQtYmx1ZSAgICAgICAgeyAtLXFndC1hcnR3b3JrLWJnOiB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnKTsgLS1xZ3QtYXJ0d29yay1mZzogdmFyKC0tYy1zaWduYWwtYmx1ZS10ZXh0LCAjNmE4YWI0KTsgfVxuLnFndC10aW50LWJyaWdodC1ibHVlIHsgLS1xZ3QtYXJ0d29yay1iZzogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLTItYmcpOyAtLXFndC1hcnR3b3JrLWZnOiB2YXIoLS1jLXB1cnBsZS00MDApOyB9XG4ucWd0LXRpbnQtcGluayAgICAgICAgeyAtLXFndC1hcnR3b3JrLWJnOiB2YXIoLS1jLXNpZ25hbC1waW5rLWJnKTsgLS1xZ3QtYXJ0d29yay1mZzogdmFyKC0tYy1zaWduYWwtcGluay10ZXh0LCAjYjI1Nzc3KTsgfVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWd0LXRpbnQtcHVycGxlICAgICAgeyAtLXFndC1hcnR3b3JrLWJnOiAjM2EzNTU1OyAtLXFndC1hcnR3b3JrLWZnOiB2YXIoLS1jLXB1cnBsZS0yMDAsICNhNWFjZmYpOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucWd0LXRpbnQtZ3JleSAgICAgICAgeyAtLXFndC1hcnR3b3JrLWJnOiAjNDA0NDRkOyAtLXFndC1hcnR3b3JrLWZnOiB2YXIoLS1jLWdyZXktMzAwLCAjYzRjN2NjKTsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnFndC10aW50LXJlZCAgICAgICAgIHsgLS1xZ3QtYXJ0d29yay1iZzogIzVhMmIyYjsgLS1xZ3QtYXJ0d29yay1mZzogdmFyKC0tYy13YXJuLXJlZC00MDAsICNmODcxNzEpOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucWd0LXRpbnQteWVsbG93ICAgICAgeyAtLXFndC1hcnR3b3JrLWJnOiAjNWE0ZDFmOyAtLXFndC1hcnR3b3JrLWZnOiB2YXIoLS1jLXdhcm4teWVsbG93LTUwMCwgI2ZiYmYyNCk7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZ3QtdGludC1ncmVlbiAgICAgICB7IC0tcWd0LWFydHdvcmstYmc6ICMyYTU1NDQ7IC0tcWd0LWFydHdvcmstZmc6ICM3ZmUwYmM7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZ3QtdGludC1ibHVlICAgICAgICB7IC0tcWd0LWFydHdvcmstYmc6ICMyZTNlNTQ7IC0tcWd0LWFydHdvcmstZmc6ICM4ZmI0ZTA7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZ3QtdGludC1icmlnaHQtYmx1ZSB7IC0tcWd0LWFydHdvcmstYmc6ICMzYTRhOGE7IC0tcWd0LWFydHdvcmstZmc6ICNiOWM4ZjU7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZ3QtdGludC1waW5rICAgICAgICB7IC0tcWd0LWFydHdvcmstYmc6ICM0ZTJhMzY7IC0tcWd0LWFydHdvcmstZmc6ICNlNGEwYjg7IH1cblxuLy8gLS0tLSBTbG90LXdyYXAgdXRpbGl0eSAoc3RhYmxlIHdyYXBwZXIgZm9yIGNvbmRpdGlvbmFsIHRlbXBsYXRpbmctZW5naW5lXG4vLyBjb250ZW50IGluc2lkZSBhIHNsb3QsIGUuZy4gUmFjdGl2ZSB7eyNpZn19KSAtLS0tXG4vLyBTYW1lIGZpeCwgc2FtZSByZWFzb25pbmcsIGFzIHFkbmFwcm8tbGlzdC1yb3cncyAucWxyLXNsb3Qtd3JhcCAoc2VlXG4vLyBfbGlzdC1yb3cuc2NzcydzIG93biBjb21tZW50IGZvciB0aGUgZnVsbCBpbmNpZGVudCB3cml0ZXVwIC8gZXJyb3IgNTMzMSk6XG4vLyBhIHRlbXBsYXRpbmcgZW5naW5lJ3MgY29uZGl0aW9uYWwgYW5jaG9yIG11c3QgbmV2ZXIgc2l0IGRpcmVjdGx5IG9uIHRoZVxuLy8gc2xvdD1cIi4uLlwiIGVsZW1lbnQgaXRzZWxmLCBzaW5jZSB0aGlzIGNvbXBvbmVudCBtb3ZlcyB0aGF0IGVsZW1lbnQgaW50byBhblxuLy8gaW50ZXJuYWwgY29udGFpbmVyIG9uIGZpcnN0IHJlbmRlciAtIGFsd2F5cyB3cmFwIHRoZSBjb25kaXRpb25hbCBpbnNpZGUgYW5cbi8vIGFsd2F5cy1wcmVzZW50IDxzcGFuIHNsb3Q9XCIuLi5cIiBjbGFzcz1cInFndC1zbG90LXdyYXBcIj4uIFRoaXMgY2xhc3Mgd2FzXG4vLyBkb2N1bWVudGVkIGluIHFkbmEtZ3JpZC10aWxlLmpzJ3MgaGVhZGVyIGNvbW1lbnQgYmVmb3JlIGl0IGV4aXN0ZWQgaGVyZVxuLy8gKGEgUFdBLXNpZGUgZm9sbG93LXVwIChFLWRvY3VtZW50cy5odG1sKSBoYWQgdG8gZGVmaW5lIGl0cyBvd24gbG9jYWxcbi8vIC5kb2N1bWVudHNfZ3JpZF9iYWRnZV93cmFwIGluIHRoZSBtZWFudGltZSkgLSBkZWZpbmVkIGZvciByZWFsIG5vdyBzb1xuLy8gbm90aGluZyBuZWVkcyBhIGxvY2FsIHN0YW5kLWluIGFueW1vcmUuXG4ucWd0LXNsb3Qtd3JhcCB7XG4gICAgZGlzcGxheTogY29udGVudHM7XG59XG5cbi8vIC0tLS0gQmFkZ2Ugc2xvdDogc3RyYWRkbGluZyB0aGUgY2FyZCdzIE9VVEVSIHRvcC1yaWdodCBjb3JuZXIgLS0tLVxuLy8gVGhlIHN0YXR1cy1iYWRnZSAoZmF2b3VyaXRlIGhlYXJ0IC8gb2ZmbGluZSAvIG5ldykgaGFuZ3Mgb24gdGhlIGNhcmQnc1xuLy8gdG9wLXJpZ2h0IGNvcm5lciBhbmQgT1ZFUkhBTkdTIHRoZSB0b3AgZWRnZSAodHJhbnNsYXRlWSBwdWxscyBpdCB1cCBzbyBpdFxuLy8gc2l0cyBoYWxmIGFib3ZlIHRoZSBjYXJkKSwgcGVyIEtpbSdzIGRlc2lnbi4gSXQgaXMgYSBjaGlsZCBvZiB0aGUgaG9zdCwgbm90XG4vLyB0aGUgYXJ0d29yayAodGhlIGFydHdvcmsgY2xpcHMgd2l0aCBvdmVyZmxvdzpoaWRkZW4pLCBhbmQgdGhlIGNhcmQgaXRzZWxmXG4vLyBoYXMgbm8gb3ZlcmZsb3cgY2xpcCwgc28gdGhlIG92ZXJoYW5nIHNob3dzLiBbS2ltIDIyLjA3LjIwMjZdXG4ucWd0LWJhZGdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAtOHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzAlKTtcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgJjplbXB0eSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4vLyAtLS0tIFBpbGxzOiBhdHRyaWJ1dGUtZHJpdmVuIHNpZ25hbCBwYWlyLCBzdGFja2VkIHRvcC1yaWdodCAoYWRkZWRcbi8vIDE4LjA4LjIwMjYsIEtpbSdzIHNrZXRjaCwgYXBwcm92ZWQpIC0tLS1cbi8vIFR3byBpbmRlcGVuZGVudCwgY291bnQtZ2F0ZWQgcGlsbHMgaW4gdGhlIFNBTUUgY29ybmVyIHJlYWwtZXN0YXRlIGFzXG4vLyBgLnFndC1iYWRnZWAgYWJvdmUuIEEgdGlsZSB3aXRoIE5FSVRIRVIgYHBpbGwtc3Ryb25nYCBub3IgYHBpbGwtc29mdGAgc2V0XG4vLyAob3IgYm90aCBhdCBcIjBcIikgcmVuZGVycyBubyBgLnFndC1waWxsc2AgZWxlbWVudCBhdCBhbGwgKHFkbmEtZ3JpZC10aWxlLmpzXG4vLyBgX2J1aWxkUGlsbHNgIHJldHVybnMgbnVsbCkgLSBubyBlbXB0eSBzcGFjZSwgbm8gZmxhdC1jb2xvdXIgcGF0Y2g6IHRoZVxuLy8gZGV2aWF0aW9uIGZyb20gYSBwbGFpbiB0aWxlIElTIHRoZSBzaWduYWwgKEtpbSdzIGRlY2lzaW9uKS5cbi8vXG4vLyBISUVSQVJDSFkgaXMgdGhlIGFjdHVhbCBwb2ludCBvZiB0aGUgZGVzaWduOiBwaWxsLXN0cm9uZyBpcyBhIFNPTElELFxuLy8gc2F0dXJhdGVkIGZpbGwgdGhhdCBcInNob3V0c1wiIChQdWxzZTogcmVhZHktdG8tZG8gc3RlcHMgPSB3b3JrKTsgcGlsbC1zb2Z0XG4vLyBpcyBhIHF1aWV0IGZsYXQgdGludCB0aGF0IFwid2hpc3BlcnNcIiAoUHVsc2U6IHNvY2lhbCB1cGRhdGVzKS4gU3Ryb25nXG4vLyBzdGFja3MgQUJPVkUgc29mdCBzbyB0aGUgZXllIGxhbmRzIG9uIGl0IGZpcnN0LlxuLy9cbi8vIENPTExJU0lPTiBXSVRIIFRIRSBDT1JORVIgQkFER0U6IGJvdGggdGhpcyBhbmQgYC5xZ3QtYmFkZ2VgIG9jY3VweSB0aGVcbi8vIHRpbGUncyB0b3AtcmlnaHQgY29ybmVyLiBBIHRpbGUgdXNpbmcgT05MWSB0aGUgY29ybmVyIGJhZGdlIGlzIHVudG91Y2hlZFxuLy8gYnkgYW55IG9mIHRoaXMgKHVuY2hhbmdlZCBDU1MgYWJvdmUpLiBBIHRpbGUgY29tYmluaW5nIHRoZSBjb3JuZXIgYmFkZ2Vcbi8vIFdJVEggYSBwaWxsIGlzIGEgY29sbGlzaW9uIEtpbSdzIGJyaWVmIGV4cGxpY2l0bHkgYWNjZXB0cyByYXRoZXIgdGhhblxuLy8gYXNrcyBmb3IgYSBjb2xsaXNpb24tYXZvaWRpbmcgbGF5b3V0IC0gYC5xZ3QtcGlsbHNgIHNpdHMgYXQgYSBoaWdoZXJcbi8vIHotaW5kZXggYW5kIHdpbnMgdGhhdCBjb3JuZXIuXG4ucWd0LXBpbGxzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA4cHg7XG4gICAgcmlnaHQ6IDhweDtcbiAgICB6LWluZGV4OiAzOyAvLyBhYm92ZSAucWd0LWJhZGdlICh6LWluZGV4IDIpIC0gcGlsbHMgd2luIHRoZSBjb3JuZXIgd2hlbiBib3RoIGV4aXN0XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBnYXA6IDRweDtcbn1cblxuLnFndC1waWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogM3B4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBwYWRkaW5nOiAwIDVweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZmYsIFwiSW50ZXJcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucWd0LXBpbGwtaWNvbiB7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ucWd0LXBpbGwtY291bnQge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4vLyBwaWxsLXN0cm9uZzogc29saWQgZmlsbCwgd2hpdGUgaWNvbiArIHdoaXRlIGNvdW50LlxuLnFndC1waWxsLXN0cm9uZyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWd0LXBpbGwtc3Ryb25nLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tcWd0LXBpbGwtc3Ryb25nLWZnKTtcblxuICAgIC5xZ3QtcGlsbC1pY29uIHsgY29sb3I6IHZhcigtLXFndC1waWxsLXN0cm9uZy1mZyk7IH1cbn1cblxuLy8gQmVzbGlzdCAob3JrZXN0cmF0b3IsIDE4LjA4LjIwMjYsIHRlZ2VuIEtpbXMgc2NoZXRzIGdlbGVnZCk6IGRlXG4vLyBcImtsZWluZSBwdW50XCIgYmlqIGRlIHNvZnQtcGlsIHppdCBJTiBoZXQgaWNvb24gemVsZiAoZGUgY29uc3VtZW50XG4vLyBraWVzdCBidi4gbWVzc2FnZS1iYWRnZS1vdXRsaW5lLCBlZW4gdGVrc3RiYWxsb24gbWV0IHB1bnQpLiBFciBrb210XG4vLyBkdXMgR0VFTiBsb3MgcHVudC1lbGVtZW50IGJpajsgZGV6ZSBDU1MgaG9lZnQgbmlldHMgZXh0cmEncyB0ZSBkb2VuLlxuLnFndC1waWxsLXNvZnQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXFndC1waWxsLXNvZnQtYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1xZ3QtcGlsbC1zb2Z0LWNvdW50LWZnKTtcblxuICAgIC5xZ3QtcGlsbC1pY29uIHsgY29sb3I6IHZhcigtLXFndC1waWxsLXNvZnQtaWNvbi1mZyk7IH1cbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFndC1waWxsLXNvZnQge1xuICAgIC8vIFNhbWUgZGFyayBzdXJmYWNlIGFzIC5xZ3QtdGludC1ncmV5J3MgZGFyayBiZyBhYm92ZSAtIGEgbGlnaHQtZ3JleVxuICAgIC8vIGZsYXQgY2hpcCB3b3VsZCByZWFkIGFzIGEgcGFsZSwgb3V0LW9mLXBsYWNlIHBhdGNoIG9uIGEgZGFyayBjYXJkLlxuICAgIC0tcWd0LXBpbGwtc29mdC1iZzogIzQwNDQ0ZDtcbiAgICAtLXFndC1waWxsLXNvZnQtY291bnQtZmc6IHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xufVxuXG4vLyAtLS0tIEJvZHk6IHRpdGxlICsgb3B0aW9uYWwgbWV0YSwgY2VudGVyZWQgLS0tLVxuLnFndC1ib2R5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDJweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucWd0LXRpdGxlIHtcbiAgICBmb250LXdlaWdodDogNTAwOyAvLyBzZWUgZmlsZSBoZWFkZXIgLSBzYW1lIFwibm90IDYwMFwiIGRlY2lzaW9uIGFzIHFkbmFwcm8tbGlzdC1yb3dcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGNvbG9yOiB2YXIoLS1xZ3QtdGl0bGUtY29sb3IpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8vIEhhcmQgMi1saW5lIGNsYW1wIC0gdGhpcyBpcyB0aGUgYWN0dWFsIGJ1ZyBmaXg6IHRoZSBQV0EncyBjdXJyZW50XG4gICAgLy8gZ3JpZCB0aWxlIGxldHMgbG9uZyBmaWxlbmFtZXMgcnVuIG91dHNpZGUgdGhlIHRpbGUgZWRnZS4gVGhpc1xuICAgIC8vIGd1YXJhbnRlZXMgdGhleSBuZXZlciBjYW4sIHJlZ2FyZGxlc3Mgb2YgdGlsZSBzaXplLlxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuLnFndC1tZXRhIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6IHZhcigtLXFndC1tZXRhLWNvbG9yKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIFJpY2ggbWV0YSBsaW5lIChzbG90PVwibWV0YVwiLCBlLmcuIGEgcWRuYXByby10YWcgaW5zdGVhZCBvZiBwbGFpbiB0ZXh0KS4gVGhlXG4vLyB0ZXh0IHJ1bGVzIGFib3ZlIChub3dyYXAgKyBlbGxpcHNpcykgd291bGQgY2xpcCBhIHRhZydzIG93biBwYWRkaW5nLCBzbyB0aGVcbi8vIHNsb3R0ZWQgdmFyaWFudCBsYXlzIGl0cyBjb250ZW50IG91dCBpbnN0ZWFkIG9mIHRyZWF0aW5nIGl0IGFzIG9uZSBzdHJpbmcuXG4vLyBbMTAuMDguMjAyNl1cbi5xZ3QtbWV0YS1yaWNoIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG59XG5cbi5xZ3QtbGF5b3V0LXRpbGUgLnFndC1tZXRhLXJpY2gge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vLyAtLS0tIFBpY3R1cmUgaW4gdGhlIGFydHdvcmsgem9uZSAoYGltYWdlYCBhdHRyaWJ1dGUpIC0tLS1cbi8vIFRoZSB6b25lIHVzZWQgdG8gYmUgaWNvbi1vbmx5OyBhIGdyaWQgY291bGQgbmV2ZXIgc2hvdyBhIHByZXZpZXcgb2YgdGhlXG4vLyB0aGluZyBpdHNlbGYuIFRoZSBwaWN0dXJlIGZpbGxzIHRoZSB6b25lIGFuZCB0aGUgVElOVCBzdGF5cyB1bmRlcm5lYXRoIGl0LFxuLy8gc28gYSB0cmFuc3BhcmVudCBQTkcga2VlcHMgc2l0dGluZyBvbiBpdHMgb3duIGNvbG91ciBhbmQgYSByZWNvcmQgd2l0aG91dCBhXG4vLyBwaWN0dXJlIGZhbGxzIGJhY2sgdG8gdGhlIHRpbnRlZCBpY29uIGluc3RlYWQgb2YgYW4gZW1wdHkgZ3JleSBob2xlXG4vLyAoS2ltIDEwLjA4LjIwMjYpLiBbMTAuMDguMjAyNl1cbi5xZ3QtYXJ0d29yay1pbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICYucWd0LWZpdC1jb3ZlciAgIHsgb2JqZWN0LWZpdDogY292ZXI7IH1cbiAgICAmLnFndC1maXQtY29udGFpbiB7IG9iamVjdC1maXQ6IGNvbnRhaW47IH1cbiAgICAvLyBcInRvcFwiIGFuY2hvcnMgYSBjb3ZlciBjcm9wIHRvIHRoZSBUT1AtTEVGVCwgZm9yIGEgc2NyZWVuc2hvdCB3aG9zZVxuICAgIC8vIHJlY29nbmlzYWJsZSBwYXJ0ICh0aXRsZSArIGZpcnN0IGNoYXJ0cykgaXMgdXAgdGhlcmUgLSB0aGUgc2FtZSBydWxlIHRoZVxuICAgIC8vIHRhYmxlJ3Mgb3duIC5xZG5hcHJvLXRhYmxlLWNhcmRfX3RodW1iIHVzZWQgYmVmb3JlIHRoaXMgY29tcG9uZW50XG4gICAgLy8gcmVwbGFjZWQgaXQuXG4gICAgJi5xZ3QtcG9zLXRvcCAgICB7IG9iamVjdC1wb3NpdGlvbjogdG9wIGxlZnQ7IH1cbiAgICAmLnFndC1wb3MtY2VudGVyIHsgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXI7IH1cbn1cblxuLy8gLS0tLSBTdGF0cyByb3cgKHNsb3Q9XCJzdGF0c1wiKSAtLS0tXG4vLyBTbWFsbCBsYWJlbC92YWx1ZSBwYWlycyBhdCB0aGUgYm90dG9tIG9mIHRoZSB0ZXh0IGJsb2NrLCBmb3IgdGhlIFwiY2FyZFwiXG4vLyBsYXlvdXQgKGEgdGFibGUncyBncmlkIHZpZXcgc2hvd3MgZS5nLiBcIkFBTkdFTUFBS1QgMDUuMDcuMjAyNlwiKS4gU2FtZSB0eXBlXG4vLyBzY2FsZSB0aGUgdGFibGUncyBvd24gY2FyZCBzdGF0cyB1c2VkLCBzbyBzd2l0Y2hpbmcgcWRuYXByby10YWJsZSBvdmVyIHRvXG4vLyB0aGlzIGNvbXBvbmVudCBpcyBub3QgYWxzbyBhIHR5cG9ncmFwaHkgY2hhbmdlLiBbMTAuMDguMjAyNl1cbi5xZ3Qtc3RhdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNnB4IDE0cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogOXB4O1xuXG4gICAgJjplbXB0eSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ucWRuYXByby1ncmlkLXRpbGUtc3RhdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMXB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLnFndHMtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTAuNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS00MDApO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbn1cblxuLnFndHMtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6IHZhcigtLWMtY2hpcC1ibHVlLXRleHQpO1xufVxuXG4vLyAtLS0tIExheW91dDogXCJjYXJkXCIgKHdpZGUgdmFyaWFudCkgLS0tLVxuLy9cbi8vIEFkZGVkIDEwLjA4LjIwMjYgZm9yIHFkbmFwcm8tdGFibGUncyBncmlkIHZpZXcsIHdoaWNoIHVudGlsIHRoZW4gY2FycmllZCBpdHNcbi8vIG93biBoYW5kcm9sbGVkIGAucWRuYXByby10YWJsZS1jYXJkYCBtYXJrdXAgKyB+MTUwIGxpbmVzIG9mIENTUy4gU2FtZSB0aHJlZVxuLy8gem9uZXMgYXMgdGhlIHRpbGUsIHN0YWNrZWQgZGlmZmVyZW50bHk6IHRoZSBhcnR3b3JrIGJlY29tZXMgYSBmdWxsLXdpZHRoXG4vLyBCQU5ORVIsIHRoZSB0ZXh0IGJsb2NrIHNpdHMgbGVmdC1hbGlnbmVkIHVuZGVyIGl0LCBhbmQgYW4gb3B0aW9uYWwgc3RhdHMgcm93XG4vLyBjbG9zZXMgdGhlIGNhcmQuXG4vL1xuLy8gV0lEVEg6IHRoZSBob3N0IGZpbGxzIGl0cyBncmlkIGNvbHVtbiAodGhlIGNvbnN1bWVyJ3MgYG1pbm1heCgpYCBkZWNpZGVzIGhvd1xuLy8gd2lkZSB0aGF0IGlzLCBlLmcuIHRoZSB0YWJsZSdzIGBtaW5tYXgoMjIwcHgsIDFmcilgKSwgc28gYHNpemVgIGhlcmUgb25seVxuLy8gcGlja3MgdGhlIGJhbm5lciBoZWlnaHQgKyB0eXBlIHNjYWxlLiBUaGF0IGlzIHRoZSBvbmUgdGhpbmcgdGhhdCBnZW51aW5lbHlcbi8vIGRpZmZlcnMgZnJvbSB0aGUgdGlsZSBsYXlvdXQsIHdoZXJlIHRoZSB3aWR0aCBpcyBmaXhlZCBvbiBwdXJwb3NlLlxuLy9cbi8vIFRoZSBjYXJkIGtlZXBzIHRoZSBORVVUUkFMIHN1cmZhY2UgKyBob3ZlciBsaWZ0IG9mIHRoZSB0aWxlIGxheW91dCBhbmQgbGV0c1xuLy8gYHRpbnRgIGNvbG91ciB0aGUgYmFubmVyIG9ubHkgKEtpbSAxMC4wOC4yMDI2KSAtIHRoZSBzYW1lIGRlY2lzaW9uLCBhbmQgdGhlXG4vLyBzYW1lIHJlYXNvbmluZywgYXMgdGhlIGZpbGUtaGVhZGVyIGNvbW1lbnQgYWJvdmU6IGEgZ3JpZCBvZiBtYW55IHJvd3MgdGludGVkXG4vLyBlZGdlIHRvIGVkZ2UgYmVjb21lcyBhIHdhbGwgb2YgY29sb3VyIGFuZCBmaWdodHMgdGhlIGxpZnQuXG4vL1xuLy8gVFdPIEtOT1dOIERJRkZFUkVOQ0VTIGZyb20gdGhlIG1hcmt1cCB0aGlzIHJlcGxhY2VzLCBib3RoIGRlbGliZXJhdGU6XG4vLyAgIC0gdGhlIHRpdGxlIHN0YXlzIHdlaWdodCA1MDAgYW5kIGNsYW1wcyB0byBUV08gbGluZXMgKHRoZSBvbGQgdGFibGUgY2FyZFxuLy8gICAgIHdhcyA2MDAgYW5kIGN1dCBvZmYgYWZ0ZXIgb25lKS4gQm90aCBhcmUgdGhpcyBsaWJyYXJ5J3MgZG9jdW1lbnRlZFxuLy8gICAgIGNvbnZlbnRpb25zIGFuZCB0aGUgY2xhbXAgaXMgdGhlIGJ1ZyB0aGlzIGNvbXBvbmVudCBleGlzdHMgdG8gZml4LlxuLy8gICAtIGNvcm5lcnMgYXJlIDEycHgsIG5vdCB0aGUgdGFibGUgY2FyZCdzIDhweCwgc28gaXQgbWF0Y2hlcyBldmVyeSBvdGhlclxuLy8gICAgIHYyIGNhcmQgc3VyZmFjZS5cbi5xZG5hcHJvLWdyaWQtdGlsZS5xZ3QtbGF5b3V0LWNhcmQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTEwMCk7XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wNyk7XG4gICAgLy8gTk9UIG92ZXJmbG93OmhpZGRlbiAtIHRoZSBiYWRnZSBoYXMgdG8ga2VlcCBvdmVyaGFuZ2luZyB0aGUgdG9wIGVkZ2UuXG4gICAgLy8gVGhlIGJhbm5lciBjbGlwcyBpdHNlbGYgd2l0aCBpdHMgb3duIHJvdW5kZWQgdG9wIGNvcm5lcnMgaW5zdGVhZC5cbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgIC5xZ3QtYXJ0d29yayB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMsIDEycHgpIHZhcigtLXItMywgMTJweCkgMCAwO1xuICAgIH1cblxuICAgIC8vIEEgY2FyZCB3aXRoIG5vdGhpbmcgdG8gc2hvdyBpbiB0aGUgYmFubmVyIHNob3dzIG5vIGJhbm5lciAtIGEgMTM2cHhcbiAgICAvLyBlbXB0eSBjb2xvdXIgYmFuZCBhYm92ZSB0aGUgdGV4dCBpcyB3b3JzZSB0aGFuIG5vIGJhbmQgYXQgYWxsLiBUaGUgdGlsZVxuICAgIC8vIGxheW91dCBkZWxpYmVyYXRlbHkga2VlcHMgaXRzIGNvbnRlbnQtbGVzcyB6b25lIChzZWUgdGhlIGBpY29uYFxuICAgIC8vIGF0dHJpYnV0ZSdzIGRvY2Jsb2NrKTsgb25seSB0aGUgd2lkZSBjYXJkIGNvbGxhcHNlcyBpdCwgYmVjYXVzZSB0aGVyZVxuICAgIC8vIHRoZSBlbXB0eSB6b25lIGlzIHRoZSBzaXplIG9mIHRoZSBjYXJkIGl0c2VsZi5cbiAgICAucWd0LWFydHdvcms6ZW1wdHkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5xZ3QtYm9keSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDE1cHg7XG4gICAgICAgIGdhcDogM3B4O1xuICAgIH1cblxuICAgIC5xZ3QtdGl0bGUge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICB9XG5cbiAgICAvLyBBIHNsb3R0ZWQgYXZhdGFyIGdldHMgYSBTUVVBUkUgQk9YIGFuZCBub3RoaW5nIGVsc2UuIHFkbmFwcm8tYXZhdGFyIGRyYXdzXG4gICAgLy8gaXRzIG93biBjaXJjbGUgYW5kIGZpdHMgaXRzIG93biBhbmltYWwvcGhvdG8vaW5pdGlhbHMgaW5zaWRlIGl0LlxuICAgIC8vXG4gICAgLy8gVGhpcyB1c2VkIHRvIGFsc28gZm9yY2UgYm9yZGVyLXJhZGl1czo1MCUsIG92ZXJmbG93OmhpZGRlbiBhbmRcbiAgICAvLyBvYmplY3QtZml0OmNvdmVyIG9udG8gdGhlIGlubmVyIGltYWdlIOKAlCBpbmhlcml0ZWQgZnJvbSB0aGUgdGFibGUgY2FyZCdzXG4gICAgLy8gbWFya3VwIHRoaXMgcmVwbGFjZWQuIE9uIGEgcGhvdG8gdGhhdCBpcyBpbnZpc2libGUsIGJ1dCBhbiBBTklNQUwgdmlnbmV0dGVcbiAgICAvLyBpcyBkcmF3biB0byBzaXQgaW5zaWRlIGl0cyBjaXJjbGUgd2l0aCBpdHMgZWFycyBhbmQgY2hlZWtzIHJlYWNoaW5nIHRoZVxuICAgIC8vIGVkZ2UsIHNvIGEgc2Vjb25kLCB0aWdodGVyIGNpcmNsZSBjdXQgdGhlbSBvZmY6IHRoZSByYWJiaXQgbG9zdCBpdHMgZWFyc1xuICAgIC8vIGFuZCB0aGUgYmVhciBpdHMgY2hlZWtzLiBbS2ltIDEwLjA4LjIwMjZdIE9ubHkgdGhlIGJveCBzdGF5cywgYmVjYXVzZSB0aGVcbiAgICAvLyBib3ggaGFzIHRvIGJlIHNxdWFyZSBvciBhIDUwJSByYWRpdXMgdHVybnMgaW50byBhbiBlbGxpcHNlLlxuICAgIC5xZ3QtYXJ0d29yayBxZG5hcHJvLWF2YXRhciB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbn1cblxuLy8gQmFubmVyIGhlaWdodCwgZ2x5cGggc2l6ZSwgYXZhdGFyIHNpemUgYW5kIHR5cGUgc2NhbGUgcGVyIHNpemUuIFRoZSBcIm1cIiByb3dcbi8vIGlzIHRoZSB0YWJsZSBjYXJkJ3MgZXhpc3RpbmcgMTM2cHggYmFubmVyLCBzbyB0aGUgZGVmYXVsdCBjYXJkIGlzIHRoZSBzYW1lXG4vLyBoZWlnaHQgaXQgd2FzIGJlZm9yZSB0aGlzIGNvbXBvbmVudCB0b29rIHRoZSBqb2Igb3Zlci5cbi8vXG4vLyBBVkFUQVIgU0laRSAoS2ltIDEwLjA4LjIwMjYsIFwiZGUgYXZhdGFycyB6aWpuIHdlbCBoZWVlZWVsIGdyb290XCIpOiB0aGUgb2xkXG4vLyB0YWJsZSBjYXJkIGRyZXcgaXRzIGF2YXRhciBhdCAxMTJweCBpbnNpZGUgdGhhdCAxMzZweCBiYW5uZXIgLSBuZWFybHkgdGhlXG4vLyBmdWxsIGhlaWdodC4gTm9ib2R5IG5vdGljZWQgd2hpbGUgdGhlIG9ubHkgZ3JpZCB3aXRoIGF2YXRhcnMgaGFkIG5vIG90aGVyXG4vLyB2aXN1YWwgbmV4dCB0byBpdDsgaW4gb25lIGdyaWQgV0lUSCBpY29ucywgYSAxMTJweCBjaXJjbGUgYmVzaWRlIGEgNDRweCBpY29uXG4vLyByZWFkcyBhcyB0d28gZGlmZmVyZW50IHN5c3RlbXMuIFRoZSBjaXJjbGUgbm93IHNpdHMgYSBzdGVwIEFCT1ZFIHRoZSBpY29uXG4vLyAoNjQgdnMgNDQgYXQgXCJtXCIpIHJhdGhlciB0aGFuIHRocmVlIHRpbWVzIGl0cyBzaXplOiBhIHJvdW5kIHNoYXBlIGNhcnJpZXNcbi8vIGxlc3Mgd2VpZ2h0IHRoYW4gYSBzcXVhcmUgZ2x5cGggb2YgdGhlIHNhbWUgaGVpZ2h0LCBhbmQgaW5pdGlhbHMgaGF2ZSB0b1xuLy8gc3RheSByZWFkYWJsZSBpbnNpZGUgaXQuXG4ucWRuYXByby1ncmlkLXRpbGUucWd0LWxheW91dC1jYXJkLnFndC1zaXplLXMge1xuICAgIC5xZ3QtYXJ0d29yayB7IGhlaWdodDogOTZweDsgfVxuICAgIC5xZ3QtYXJ0d29yay1pY29uIHsgd2lkdGg6IDM0cHg7IGhlaWdodDogMzRweDsgfVxuICAgIC5xZ3QtYXJ0d29yayBxZG5hcHJvLWF2YXRhciB7IHdpZHRoOiA0OHB4OyBoZWlnaHQ6IDQ4cHg7IH1cbiAgICAucWd0LXRpdGxlIHsgZm9udC1zaXplOiAxM3B4OyB9XG4gICAgLnFndC1tZXRhIHsgZm9udC1zaXplOiAxMS41cHg7IH1cbn1cblxuLnFkbmFwcm8tZ3JpZC10aWxlLnFndC1sYXlvdXQtY2FyZC5xZ3Qtc2l6ZS1tIHtcbiAgICAucWd0LWFydHdvcmsgeyBoZWlnaHQ6IDEzNnB4OyB9XG4gICAgLnFndC1hcnR3b3JrLWljb24geyB3aWR0aDogNDRweDsgaGVpZ2h0OiA0NHB4OyB9XG4gICAgLnFndC1hcnR3b3JrIHFkbmFwcm8tYXZhdGFyIHsgd2lkdGg6IDY0cHg7IGhlaWdodDogNjRweDsgfVxuICAgIC5xZ3QtdGl0bGUgeyBmb250LXNpemU6IDE0cHg7IH1cbiAgICAucWd0LW1ldGEgeyBmb250LXNpemU6IDEyLjVweDsgfVxufVxuXG4ucWRuYXByby1ncmlkLXRpbGUucWd0LWxheW91dC1jYXJkLnFndC1zaXplLWwge1xuICAgIC5xZ3QtYXJ0d29yayB7IGhlaWdodDogMTY4cHg7IH1cbiAgICAucWd0LWFydHdvcmstaWNvbiB7IHdpZHRoOiA1NHB4OyBoZWlnaHQ6IDU0cHg7IH1cbiAgICAucWd0LWFydHdvcmsgcWRuYXByby1hdmF0YXIgeyB3aWR0aDogNzhweDsgaGVpZ2h0OiA3OHB4OyB9XG4gICAgLnFndC10aXRsZSB7IGZvbnQtc2l6ZTogMTVweDsgfVxuICAgIC5xZ3QtbWV0YSB7IGZvbnQtc2l6ZTogMTNweDsgfVxufVxuXG4iLCIvLyBfaHViLXRpbGUuc2Nzc1xuLy9cbi8vIHFkbmFwcm8taHViLXRpbGUgLSB0aGUgYmlnIG5hdmlnYXRpb24gdGlsZSBvbiBhIGh1YiBwYWdlIChJbnN0ZWxsaW5nZW4sXG4vLyBTdGFtZGF0YSk6IHRpbnRlZCBhcnR3b3JrIHNxdWFyZSwgdGl0bGUgdW5kZXIgaXQsIG9wdGlvbmFsIHN1YnRpdGxlIGFuZCBhIHJvd1xuLy8gb2YgY291bnRzLCBhbmQgdGhlIHdob2xlIGNhcmQgaXMgb25lIGxpbmsuXG4vL1xuLy8gV0hZIFRISVMgSVMgTk9UIHFkbmFwcm8tZ3JpZC10aWxlLlxuLy8gVGhlIHR3byBsb29rIHJlbGF0ZWQgYW5kIGFyZSBub3QgaW50ZXJjaGFuZ2VhYmxlLiBncmlkLXRpbGUgaXMgYSBkZW5zZSBjZWxsIGluXG4vLyBhIGdyaWQgb2YgTUFOWSB0aGluZ3MgKGZpbGVzLCBmb2xkZXJzKTogOTYtMTQ4cHggd2lkZSwgYSB0d28tbGluZSBjbGFtcGVkXG4vLyB0aXRsZSwgYSBob3Zlci1vbmx5IG1lbnUgYnV0dG9uLCBhIGJhZGdlIHNsb3QuIFRoaXMgb25lIGlzIGEgTkFWSUdBVElPTiB0aWxlOlxuLy8gYSBoYW5kZnVsIHBlciBwYWdlLCB3aWRlIGVub3VnaCB0byBjYXJyeSBhIGZ1bGwgc2VudGVuY2UgbGlrZSBcIkdlYnJ1aWtlcnNyb2xsZW5cbi8vIGVuIHJlY2h0ZW5cIiBvbiBvbmUgb3IgdHdvIGxpbmVzLCBubyBtZW51LCBubyBiYWRnZSwgYW5kIGl0IG1heSBjYXJyeSBjb3VudHMuXG4vLyBGb3JraW5nIGdyaWQtdGlsZSB0byBncm93IGEgc3RhdHMgcm93IGFuZCBkcm9wIGl0cyBtZW51IHdvdWxkIGhhdmUgbGVmdCBhXG4vLyBjb21wb25lbnQgdGhhdCBpcyB0d28gdGhpbmdzIGF0IG9uY2UuIFRoZSB0aW50ZWQtYXJ0d29yayBpZGlvbSBhbmQgdGhlIGhvdmVyXG4vLyBsaWZ0IEFSRSBzaGFyZWQsIGRlbGliZXJhdGVseSwgc28gdGhlIHR3byByZWFkIGFzIG9uZSBmYW1pbHkuXG4vL1xuLy8gU0laRSBUQUJMRTpcbi8vICAgc2l6ZT1cInNcIiAgICAgICAgICAgIG1pbi1oZWlnaHQgMTMycHggIGFydHdvcmsgNTZ4NTYgIHZpc3VhbCA1MHB4ICB0aXRsZSAxM3B4LzYwMFxuLy8gICBzaXplPVwibVwiIChkZWZhdWx0KSAgbWluLWhlaWdodCAxNzBweCAgYXJ0d29yayA3Mng3MiAgdmlzdWFsIDY0cHggIHRpdGxlIDE0cHgvNjAwXG4vLyAgIHNpemU9XCJsXCIgICAgICAgICAgICBtaW4taGVpZ2h0IDE5NnB4ICBhcnR3b3JrIDg4eDg4ICB2aXN1YWwgODBweCAgdGl0bGUgMTVweC82MDBcbi8vIFRocmVlIHNpemVzLCBub3QgYSBmcmVlIHBpeGVsIHZhbHVlIC0gc2FtZSByZWFzb25pbmcgYXMgZ3JpZC10aWxlJ3MgdGhyZWU6IGEgaHViXG4vLyBncmlkIGhhcyB0byBsaW5lIHVwLlxuLy9cbi8vIFdIWSBcInNcIiBFWElTVFMgKEtpbSAzMS4wOC4yMDI2LCBTdGFtZGF0YSkuXG4vLyBBIHRpbGUgd2l0aCBjb3VudHMgaXMgdGhlIHRhbGxlc3QgdGhpbmcgdGhpcyBjb21wb25lbnQgbWFrZXM6IGFydHdvcmssIHRpdGxlLFxuLy8gYSBzdWJ0aXRsZSB0aGF0IG9mdGVuIHdyYXBzIHRvIHR3byBsaW5lcywgYSBkaXZpZGVyLCBhbmQgdGhlbiBhIHJvdyBvZiBudW1iZXJzXG4vLyB3aXRoIHRoZWlyIG93biBsYWJlbHMuIEF0IFwibVwiIGEgcm93IG9mIHRob3NlIGNhbWUgb3V0IDI0MHB4IGhpZ2ggYW5kIEtpbSdzXG4vLyB2ZXJkaWN0IG9uIHRoZSBTdGFtZGF0YSBodWIgd2FzIFwiaGVlbCBlcmcgZ3Jvb3RcIiwgd2l0aCB0aGUgY291bnRzIG5hbWVkIGFzIHRoZVxuLy8gcmVhc29uLiBTbyBcInNcIiBkb2VzIG5vdCBqdXN0IHNjYWxlIHRoZSBhcnR3b3JrIGRvd246IGl0IGFsc28gdGlnaHRlbnMgdGhlXG4vLyBjb3VudHMgYmxvY2sgKHNtYWxsZXIgbnVtYmVycywgbGVzcyBhaXIgYWJvdmUgdGhlIGRpdmlkZXIpLCBiZWNhdXNlIHRoYXQgaXNcbi8vIHRoZSBwYXJ0IHRoYXQgd2FzIGFjdHVhbGx5IGNvc3RpbmcgdGhlIGhlaWdodC4gVGhlIG90aGVyIHR3byBzaXplcyBrZWVwIHRoZVxuLy8gcm9vbWllciBjb3VudHMgLSBJbnN0ZWxsaW5nZW4gdGlsZXMgY2Fycnkgbm9uZSwgc28gbm90aGluZyB0aGVyZSBjaGFuZ2VzLiBBdCBcIm1cIiB0aGUgYXJ0d29yayBzdGlsbCBmaXRzIGluc2lkZSB0aGUgMTcwcHggbWluaW11bSwgc29cbi8vIHRoZSBjYXJkIGtlZXBzIHRoZSBmb290cHJpbnQgb2YgdGhlIHRpbGUgaXQgcmVwbGFjZXMgKHRoZSBvbGQgbW9kdWxlLWJsb2NrXG4vLyByZXNlcnZlZCBtaW4taGVpZ2h0IDE2MHB4IHBsdXMgaXRzIG93biBwYWRkaW5nKSBhbmQgYSBwYWdlIG9mIHRpbGVzIGRvZXMgbm90XG4vLyByZWZsb3cuIEZyb20gcm91Z2hseSAxMDQgdXB3YXJkcyB0aGUgYXJ0d29yayBzdGFydHMgcHVzaGluZyB0aGUgY2FyZCB0YWxsZXIuXG4vL1xuLy8gSE9XIFRISVMgTlVNQkVSIFdBUyBQSUNLRUQsIGJlY2F1c2UgaXQgbW92ZWQgdGhyZWUgdGltZXMgb24gMDktMTAuMDguMjAyNiBhbmRcbi8vIHRoZSBtaWRkbGUgbW92ZSB3YXMgbm90IGEgZGVzaWduIGRlY2lzaW9uIGF0IGFsbDpcbi8vICAgNzIvNjQgIGZpcnN0IGJ1aWxkXG4vLyAgIDg4LzgwICBLaW06IGJpZ2dlci4gVGhpcyBvbmUgTE9PS0VEIGxpa2UgaXQgZGlkIGFsbW9zdCBub3RoaW5nLCBiZWNhdXNlIG9mIHRoZVxuLy8gICAgICAgICAgc3BlY2lmaWNpdHkgYnVnIGRlc2NyaWJlZCBhdCAucWh0LWFydCBiZWxvdzogdGhlIHRpbnRlZCBzcXVhcmUgZ3JldyBhbmRcbi8vICAgICAgICAgIHRoZSBkcmF3aW5nIGluc2lkZSBzdGF5ZWQgcGlubmVkIGF0IGxvdHRpZSdzIG93biA0OHB4LlxuLy8gICAxMjAvMTEyIEtpbTogc3RpbGwgdG9vIHNtYWxsLiBDaG9zZW4gZnJvbSBhIHNldCBvZiBzYW1wbGVzIHRoYXQgd2VyZSBzdGlsbFxuLy8gICAgICAgICAgcmVuZGVyZWQgd2l0aCB0aGUgYnVnLCBzbyB0aGV5IHdlcmUgbm90IHNob3dpbmcgd2hhdCB0aGV5IGNsYWltZWQuXG4vLyAgIDg4LzgwICBhZnRlciBmaXhpbmcgdGhlIGJ1ZyBLaW0gY29tcGFyZWQgdGVuIHNpemVzIGluIGEgcmVhbCBicm93c2VyXG4vLyAgICAgICAgICAoYmFja29mZmljZTIvd2ViL19faHViLXRpbGUtbWF0ZW4uaHRtbCwgc2luY2UgZGVsZXRlZCkgYW5kIGxhbmRlZCBiYWNrXG4vLyAgICAgICAgICBvbiA4OCAtIHdoaWNoIGF0IHRoYXQgcG9pbnQgZmluYWxseSBtZWFudCBhbiA4MHB4IGRyYXdpbmcgaW5zdGVhZCBvZiBhXG4vLyAgICAgICAgICA0OHB4IG9uZS4gU28gdGhpcyBpcyB0aGUgc2FtZSBudW1iZXIgYXMgdGhlIHNlY29uZCBzdGVwIGFuZCBhIGRpZmZlcmVudFxuLy8gICAgICAgICAgcmVzdWx0LiBEbyBub3QgXCJyZXN0b3JlXCIgMTIwIG9uIHRoZSBzdHJlbmd0aCBvZiB0aGF0IGhpc3RvcnkuXG4vLyAgIDgwLzcyICBvbmUgbm90Y2ggZG93biwgb24gdGhlIHNhbWUgcGFnZSwgbWludXRlcyBsYXRlci5cbi8vICAgNzIvNjQgIG9uZSBtb3JlIG5vdGNoIGRvd24uIEZJTkFMLlxuLy8gICAgICAgICAgU2FtZSBudW1iZXJzIGFzIHRoZSB2ZXJ5IGZpcnN0IGJ1aWxkLCBidXQgTk9UIHRoZSBzYW1lIHJlc3VsdDogYmFjayB0aGVuXG4vLyAgICAgICAgICB0aGUgZHJhd2luZyB3YXMgNjRweCBiZWNhdXNlIHRoZSBzcXVhcmUgd2FzIDcycHgsIGFuZCBpbiB0aGUgdHdvIHJvdW5kc1xuLy8gICAgICAgICAgaW4gYmV0d2VlbiBpdCB3YXMgc3R1Y2sgYXQgNDhweCB3aGF0ZXZlciB0aGUgc3F1YXJlIHNhaWQuIFNvIHRoZSB0aWxlIGhhc1xuLy8gICAgICAgICAgYmVlbiB0aHJvdWdoIHRocmVlIHN0YXRlcyB0aGF0IGFsbCByZWFkIGFzIFwiNzIvNjRcIiBpbiBhIGRpZmYgYW5kIGxvb2tlZFxuLy8gICAgICAgICAgZGlmZmVyZW50IG9uIHNjcmVlbi4gUmVhZCB0aGUgc3BlY2lmaWNpdHkgbm90ZSBhdCAucWh0LWFydCBiZWZvcmVcbi8vICAgICAgICAgIGNvbmNsdWRpbmcgdGhhdCBhbnkgb2YgdGhpcyB3YXMgZ29pbmcgaW4gY2lyY2xlcy5cbi8vXG4vLyBUSVRMRSBXRUlHSFQgNjAwLCBOT1QgNTAwLlxuLy8gZ3JpZC10aWxlIGFuZCBsaXN0LXJvdyBzZXR0bGVkIG9uIDUwMCBhZnRlciBLaW0gZm91bmQgNjAwIHRvbyBoZWF2eSAtIGJ1dCB0aG9zZVxuLy8gdGl0bGVzIHNpdCBpbiBhIGRlbnNlIGxpc3Qgd2hlcmUgdGhlIHdlaWdodCByZXBlYXRzIGV2ZXJ5IDQwcHguIEhlcmUgdGhlIHRpdGxlXG4vLyBpcyB0aGUgb25seSB0ZXh0IG9uIGEgbGFyZ2UgY2FyZCBhbmQgSVMgdGhlIG5hdmlnYXRpb24gbGFiZWw7IHRoZSB0aWxlIGl0XG4vLyByZXBsYWNlcyB1c2VkIDYwMCAobW9kdWxlLWJsb2NrIGhhcmQtY29kZWQgZm9udC13ZWlnaHQ6NjAwKSBhbmQgS2ltIGFwcHJvdmVkXG4vLyB0aGlzIGRlc2lnbiB3aXRoIHRoYXQgd2VpZ2h0LiBTYW1lIHdvcmQsIGRpZmZlcmVudCBqb2IuXG4vL1xuLy8gVEhFIENBUkQgU1RBWVMgTkVVVFJBTCwgVEhFIFNRVUFSRSBJUyBUSU5URUQuXG4vLyBTYW1lIGRlY2lzaW9uIGFuZCBzYW1lIDggaGV4IHBhaXJzIGFzIF9ncmlkLXRpbGUuc2NzcyAtIHNlZSB0aGF0IGZpbGUncyBoZWFkZXJcbi8vIGZvciB0aGUgZnVsbCBhcmd1bWVudC4gU2hvcnQgdmVyc2lvbjogYSBodWIgb2YgdHdlbHZlIGZ1bGx5LXRpbnRlZCBjYXJkcyBpcyBhXG4vLyB3YWxsIG9mIGNvbG91ciwgYW5kIGV2ZXJ5IG90aGVyIGNhcmQgc3VyZmFjZSBpbiB0aGUgYmFja29mZmljZSBpcyBuZXV0cmFsLlxuLy9cbi8vIEhPVkVSIExJRlQ6IHRoZSBzYW1lIHRyYW5zbGF0ZVkgKyBzaGFkb3cgcGFpciBncmlkLXRpbGUgYm9ycm93ZWQgZnJvbSB0aGUgUFdBJ3Ncbi8vIGRvY3VtZW50cy1jYXJkIGhvdmVyLCBzbyBhIHBhZ2UgdGhhdCBtaXhlcyB0aGUgdHdvIGxpZnRzIGlkZW50aWNhbGx5LlxuXG4ucWRuYXByby1odWItdGlsZSB7XG4gICAgLS1xaHQtYmc6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgLS1xaHQtYm9yZGVyOiB2YXIoLS1jLWdyZXktMTAwLCAjZTZlNmYyKTtcbiAgICAtLXFodC1ib3JkZXItaG92ZXI6IHZhcigtLWMtcHVycGxlLTEwMCwgI2M5YzRmNSk7XG4gICAgLS1xaHQtdGl0bGUtY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZjRkKTtcbiAgICAtLXFodC1zdWItY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgLS1xaHQtZGl2aWRlcjogdmFyKC0tYy1ncmV5LTUwLCAjZjBmMGY4KTtcbiAgICAtLXFodC1mb2N1cy1yaW5nOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG4gICAgLS1xaHQtZm9jdXMtZ2xvdzogdmFyKC0tYy1wdXJwbGUtc29mdC0xOCwgcmdiYSg2NCwgNzMsIDE1NCwgMC4xOCkpO1xuXG4gICAgLS1xaHQtYXJ0LXNpemU6IDcycHg7XG4gICAgLS1xaHQtdmlzdWFsLXNpemU6IDY0cHg7XG4gICAgLS1xaHQtbWluLWhlaWdodDogMTcwcHg7XG4gICAgLS1xaHQtdGl0bGUtc2l6ZTogMTRweDtcblxuICAgIC8vIFNwYWNpbmcgdG9rZW5zIC0gdGhlIHZhbHVlcyBcIm1cIiBhbmQgXCJsXCIgaGF2ZSBhbHdheXMgdXNlZCwgbm93IG5hbWVkIHNvIGFcbiAgICAvLyBzaXplIGJsb2NrIGNhbiBjaGFuZ2UgdGhlbS4gVG91Y2ggdGhlc2UgYW5kIHlvdSBjaGFuZ2UgZXZlcnkgc2l6ZS5cbiAgICAtLXFodC1wYWQteTogMjBweDtcbiAgICAtLXFodC1wYWQteDogMTZweDtcbiAgICAtLXFodC1nYXA6IDEwcHg7XG4gICAgLS1xaHQtc3RhdHMtZ2FwOiAxOHB4O1xuICAgIC0tcWh0LXN0YXRzLXNwYWNlOiAxMHB4O1xuICAgIC0tcWh0LXN0YXQtdmFsdWUtc2l6ZTogMTZweDtcbiAgICAtLXFodC1zdGF0LWxhYmVsLXNpemU6IDExcHg7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mZiwgXCJJbnRlclwiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWYpO1xuXG4gICAgLy8gRVFVQUwgSEVJR0hUIFBFUiBST1cgKEtpbSAzMS4wOC4yMDI2KS5cbiAgICAvLyBUaGUgaG9zdCBhbHJlYWR5IHN0cmV0Y2hlcyB0byB0aGUgcm93IGhlaWdodCBvbiBpdHMgb3duIC0gaXQgaXMgYSBncmlkIGl0ZW1cbiAgICAvLyBvbiBTdGFtZGF0YSBhbmQgYSBmbGV4IGl0ZW0gaW5zaWRlIGEgYm9vdHN0cmFwIGNvbHVtbiBvbiBJbnN0ZWxsaW5nZW4sIGFuZFxuICAgIC8vIGJvdGggc3RyZXRjaCBieSBkZWZhdWx0LiBXaGF0IGRpZCBOT1Qgc3RyZXRjaCB3YXMgdGhlIHdoaXRlIGNhcmQgaW5zaWRlIGl0OlxuICAgIC8vIC5xaHQtY2FyZCBvbmx5IGNhcnJpZWQgYSBtaW4taGVpZ2h0LCBzbyBhIHRpbGUgd2l0aCB0d28gY291bnRzIGRyZXcgYSB0YWxsZXJcbiAgICAvLyBjYXJkIHRoYW4gdGhlIHRpbGUgbmV4dCB0byBpdCBhbmQgdGhlIHJvdyBsb29rZWQgcmFnZ2VkLiBQYXNzaW5nIHRoZSByb3dcbiAgICAvLyBoZWlnaHQgZG93biBtYWtlcyB0aGUgdGFsbGVzdCBjYXJkIGluIGEgcm93IHNldCB0aGUgaGVpZ2h0IGZvciB0aGF0IHJvdyxcbiAgICAvLyB3aGljaCBpcyBleGFjdGx5IHRoZSBydWxlIEtpbSBhc2tlZCBmb3IgKFwicGVyIHJpaiwgZGUgZ3Jvb3RzdGUgaXMgbGVpZGVuZFwiKS5cbiAgICAvLyBIZWlnaHQgMTAwJSBvZiBhbiBhdXRvLWhlaWdodCBwYXJlbnQgcmVzb2x2ZXMgdG8gYXV0bywgc28gYSBodWItdGlsZSBpblxuICAgIC8vIG9yZGluYXJ5IGJsb2NrIGZsb3cgaXMgdW5hZmZlY3RlZC5cbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAmW2RhdGEtc2l6ZT1cInNcIl0ge1xuICAgICAgICAtLXFodC1hcnQtc2l6ZTogNTZweDtcbiAgICAgICAgLS1xaHQtdmlzdWFsLXNpemU6IDUwcHg7XG4gICAgICAgIC0tcWh0LW1pbi1oZWlnaHQ6IDEzMnB4O1xuICAgICAgICAtLXFodC10aXRsZS1zaXplOiAxM3B4O1xuICAgICAgICAvLyBUaGUgY291bnRzIGJsb2NrLCB0aWdodGVuZWQuIE5hbWVkIHRva2VucyByYXRoZXIgdGhhbiBhIHBpbGUgb2ZcbiAgICAgICAgLy8gW2RhdGEtc2l6ZT1cInNcIl0gZGVzY2VuZGFudCBydWxlcyBmdXJ0aGVyIGRvd24sIHNvIHRoZSB3aG9sZSBzaXplIGxpdmVzXG4gICAgICAgIC8vIGluIG9uZSBwbGFjZSBhbmQgYSBmb3VydGggc2l6ZSBpcyBmb3VyIG51bWJlcnMsIG5vdCBmb3VyIHNlbGVjdG9ycy5cbiAgICAgICAgLS1xaHQtcGFkLXk6IDE0cHg7XG4gICAgICAgIC0tcWh0LXBhZC14OiAxMnB4O1xuICAgICAgICAtLXFodC1nYXA6IDhweDtcbiAgICAgICAgLS1xaHQtc3RhdHMtZ2FwOiAxNHB4O1xuICAgICAgICAtLXFodC1zdGF0cy1zcGFjZTogOHB4O1xuICAgICAgICAtLXFodC1zdGF0LXZhbHVlLXNpemU6IDEzcHg7XG4gICAgICAgIC0tcWh0LXN0YXQtbGFiZWwtc2l6ZTogMTFweDtcbiAgICB9XG5cbiAgICAmW2RhdGEtc2l6ZT1cImxcIl0ge1xuICAgICAgICAtLXFodC1hcnQtc2l6ZTogODhweDtcbiAgICAgICAgLS1xaHQtdmlzdWFsLXNpemU6IDgwcHg7XG4gICAgICAgIC0tcWh0LW1pbi1oZWlnaHQ6IDE5NnB4O1xuICAgICAgICAtLXFodC10aXRsZS1zaXplOiAxNXB4O1xuICAgIH1cbn1cblxuLy8gLS0tLSBUaGUgY2FyZCBpdHNlbGY6IGFuIDxhPiB3aGVuIHRoZXJlIGlzIGFuIGhyZWYsIGEgPGJ1dHRvbj4gd2hlbiB0aGVyZSBpcyBub3QgLS0tLVxuLy8gQm90aCBhcmUgcmVzZXQgdG8gdGhlIHNhbWUgYm94IHNvIHRoZSB0aWxlIGxvb2tzIGlkZW50aWNhbCBlaXRoZXIgd2F5OyB0aGVcbi8vIGVsZW1lbnQgZGlmZmVycyBvbmx5IHNvIHRoYXQgYSBsaW5rIGJlaGF2ZXMgbGlrZSBhIGxpbmsgKG1pZGRsZS1jbGljaywgb3BlbiBpblxuLy8gbmV3IHRhYikgYW5kIGEgbm9uLWxpbmsgYmVoYXZlcyBsaWtlIGEgYnV0dG9uIGZvciBhc3Npc3RpdmUgdGVjaC5cbi5xaHQtY2FyZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1xaHQtZ2FwKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogdmFyKC0tcWh0LW1pbi1oZWlnaHQpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogdmFyKC0tcWh0LXBhZC15KSB2YXIoLS1xaHQtcGFkLXgpO1xuXG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWh0LWJnKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1xaHQtYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMsIDE0cHgpO1xuICAgIGNvbG9yOiB2YXIoLS1xaHQtdGl0bGUtY29sb3IpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAxODBtcyBlYXNlLCB0cmFuc2Zvcm0gMTgwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE4MG1zIGVhc2U7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgLy8gU2FtZSBsaWZ0IHJlY2lwZSBhcyBxZG5hcHJvLWdyaWQtdGlsZSAod2hpY2ggdG9vayBpdCBmcm9tIHRoZSBQV0Enc1xuICAgICAgICAvLyBkb2N1bWVudHMgY2FyZCksIHNvIGEgcGFnZSBtaXhpbmcgdGhlIHR3byBtb3ZlcyBhcyBvbmUuXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDI0cHggcmdiYSg2MCwgNTAsIDE0MCwgMC4xNCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcWh0LWJvcmRlci1ob3Zlcik7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY29sb3I6IHZhcigtLXFodC10aXRsZS1jb2xvcik7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcWh0LWZvY3VzLXJpbmcpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggdmFyKC0tcWh0LWZvY3VzLWdsb3cpO1xuICAgIH1cbn1cblxuLy8gQSB0aWxlIHRoYXQgY2FycmllcyBDT1VOVFMgbGF5cyBpdHNlbGYgb3V0IHRvcC1kb3duIGluc3RlYWQgb2YgY2VudHJlZC5cbi8vIChLaW0gMzEuMDguMjAyNiwgbWV0IGRlIHJvZGUgcGlqbGVuIG9wIGRlIFN0YW1kYXRhLWh1Yi4pXG4vL1xuLy8gV0hZLiBDZW50cmluZyBsb29rcyByaWdodCBvbiBhIHRpbGUgd2l0aCB0d28gbGluZXMgb2YgY29udGVudCBhbmQgd3Jvbmcgb24gYVxuLy8gcm93IG9mIHRpbGVzIHRoYXQgYXJlIGFsbCBhcyB0YWxsIGFzIHRoZSB0YWxsZXN0IG9uZTogdGhlIGxlZnRvdmVyIHNwYWNlIGlzXG4vLyBzcGxpdCBhYm92ZSBhbmQgYmVsb3csIHNvIGEgc2hvcnQgdGlsZSBnb3QgNDRweCBhYm92ZSBpdHMgYXJ0d29yayB3aGVyZSBpdHNcbi8vIG5laWdoYm91ciBnb3QgMjhweCwgYW5kIHRoZSBhcnR3b3JrIG9mIGEgcm93IHNhdCBhdCBmb3VyIGRpZmZlcmVudCBoZWlnaHRzLlxuLy8gVG9wLWFsaWduZWQsIHRoZSBwYWRkaW5nIGF0IHRoZSB0b3AgaXMgdGhlIHBhZGRpbmcgeW91IHdyb3RlIGRvd24sIG9uIGV2ZXJ5XG4vLyB0aWxlLiBUaGUgY291bnRzIHRoZW4gZ2V0IGBtYXJnaW4tdG9wOiBhdXRvYCwgd2hpY2ggcHVzaGVzIHRoZW0gdG8gdGhlIGJvdHRvbVxuLy8gZWRnZSDigJQgc28gdGhlIGRpdmlkZXJzIGxpbmUgdXAgYWNyb3NzIHRoZSByb3cgYXMgd2VsbCwgaW5zdGVhZCBvZiBmbG9hdGluZ1xuLy8gd2hlcmV2ZXIgdGhhdCB0aWxlJ3Mgc3VidGl0bGUgaGFwcGVuZWQgdG8gZW5kLlxuLy9cbi8vIEEgdGlsZSBXSVRIT1VUIGNvdW50cyBpcyB1bnRvdWNoZWQgYW5kIHN0YXlzIGNlbnRyZWQ6IHRoYXQgaXMgdGhlIEluc3RlbGxpbmdlblxuLy8gaHViLCB3aGVyZSBldmVyeSB0aWxlIGhvbGRzIHRoZSBzYW1lIHR3byBsaW5lcyBhbmQgY2VudHJpbmcgaXMgcmlnaHQuXG4ucWh0LWNhcmQtd2l0aC1zdGF0cyB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gICAgLnFodC1zdGF0cyB7XG4gICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgfVxufVxuXG4vLyAtLS0tIEFydHdvcmsgc3F1YXJlIC0tLS1cbi5xaHQtYXJ0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IHZhcigtLXFodC1hcnQtc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1xaHQtYXJ0LXNpemUpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMiwgMTZweCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWh0LWFydC1iZyk7XG4gICAgY29sb3I6IHZhcigtLXFodC1hcnQtZmcpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAvLyBFdmVyeSBraW5kIG9mIGFydHdvcmsgaXMgbm9ybWFsaXNlZCB0byBvbmUgYm94LCBzbyBhIHRpbGUgd2l0aCBhbiBNRElcbiAgICAvLyBnbHlwaCBsaW5lcyB1cCB3aXRoIGEgdGlsZSBjYXJyeWluZyBhIDUwMHg1MDAgYW5pbWF0aW9uLlxuICAgIC8vXG4gICAgLy8g4pqg77iPIFRXTyBjbGFzcyBuYW1lcyBkZWVwIG9uIHB1cnBvc2UuIGAucWh0LWFydCA+ICpgIGlzIG9uZSBjbGFzcyB3b3J0aCBvZlxuICAgIC8vIHNwZWNpZmljaXR5IGFuZCBMT1NFUyB0byBgLnFkbmFwcm8tbG90dGllIHsgd2lkdGg6IHZhcigtLXFsLXNpemUpIH1gIGluXG4gICAgLy8gX2xvdHRpZS5zY3NzLCBiZWNhdXNlIGNvbXBvbmVudHMuc2NzcyBAdXNlcyBsb3R0aWUgKGxpbmUgfjE4NykgYWZ0ZXJcbiAgICAvLyBodWItdGlsZSAobGluZSB+OTApIGFuZCBlcXVhbCBzcGVjaWZpY2l0eSBtZWFucyBsYXN0LW9uZS13aW5zLiBUaGUgc3ltcHRvbVxuICAgIC8vIHdhcyBzaWxlbnQgYW5kIGNvc3QgdHdvIHJvdW5kcyB3aXRoIEtpbTogdGhlIHRpbnRlZCBzcXVhcmUgZ3JldyB3aGVuIHRoZVxuICAgIC8vIHNpemUgd2FzIHJhaXNlZCwgYW5kIHRoZSBkcmF3aW5nIGluc2lkZSBzdGF5ZWQgcGlubmVkIGF0IGxvdHRpZSdzIG93biA0OHB4XG4gICAgLy8gZGVmYXVsdCwgc28gdGhlIHRpbGVzIGxvb2tlZCBlbXB0aWVyIHRoZSBiaWdnZXIgdGhleSBnb3QuIE1lYXN1cmVkXG4gICAgLy8gMTAuMDguMjAyNi4gRG8gbm90IHNpbXBsaWZ5IHRoaXMgYmFjayB0byBhIHNpbmdsZSBjbGFzcy5cbiAgICA+IC5xaHQtYXJ0LWFuaW0sXG4gICAgPiAucWh0LWFydC1hY3Rpdml0eSxcbiAgICA+IC5xaHQtYXJ0LWljb24sXG4gICAgPiAucWh0LWFydC1zbG90dGVkLFxuICAgID4gKiB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1xaHQtdmlzdWFsLXNpemUpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXFodC12aXN1YWwtc2l6ZSk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8vIEFuIDxpbWc+IGhhbmRlZCBpbiB0aHJvdWdoIHNsb3Q9XCJhcnR3b3JrXCIgbXVzdCBub3Qgc3RyZXRjaC5cbiAgICA+IGltZyxcbiAgICAucWh0LWFydC1zbG90dGVkIGltZyB7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgfVxufVxuXG4vLyBxZG5hcHJvLWxvdHRpZSBzaXplcyBpdHNlbGYgZnJvbSAtLXFsLXNpemUsIG5vdCBmcm9tIHdpZHRoL2hlaWdodC4gU2FtZVxuLy8gc3BlY2lmaWNpdHkgdHJhcCBhcyBhYm92ZTogX2xvdHRpZS5zY3NzIGRlY2xhcmVzIGAtLXFsLXNpemU6IDQ4cHhgIG9uXG4vLyBgLnFkbmFwcm8tbG90dGllYCBhbmQgaXMgbG9hZGVkIGxhdGVyLCBzbyBhIHNpbmdsZS1jbGFzcyBzZWxlY3RvciBoZXJlIGlzXG4vLyBzaW1wbHkgaWdub3JlZCBhbmQgZXZlcnkgYW5pbWF0aW9uIHN0YXlzIDQ4cHguXG4ucWh0LWFydCAucWh0LWFydC1hbmltIHtcbiAgICAtLXFsLXNpemU6IHZhcigtLXFodC12aXN1YWwtc2l6ZSk7XG59XG5cbi8vIHFkbmFwcm8taWNvbiBkcmF3cyBhIGdseXBoIHRoYXQgaGFzIG5vIGNvbG91ciBvZiBpdHMgb3duLCBzbyBpdCB0YWtlcyB0aGVcbi8vIHRpbnQncyBmb3JlZ3JvdW5kIC0gdGhlIHNhbWUgcGFpcmluZyBncmlkLXRpbGUgdXNlcyBmb3IgaXRzIGZhbGxiYWNrIGdseXBoLlxuLy8gVGhlIGFjdGl2aXR5IGljb25zIGFuZCB0aGUgYW5pbWF0aW9ucyBoYXZlIHRoZWlyIG93biBjb2xvdXJzIGJha2VkIGluIGFuZCBhcmVcbi8vIGRlbGliZXJhdGVseSBsZWZ0IGFsb25lLlxuLy9cbi8vIOKaoO+4jyBJdCBzaXplcyBpdHNlbGYgZnJvbSBGT05ULVNJWkUsIG5vdCBmcm9tIHdpZHRoL2hlaWdodCBhbmQgbm90IGZyb20gYSBjdXN0b21cbi8vIHByb3BlcnR5IChzZWUgcWRuYS1pY29uLmpzOiBcInNpemUgLi4uIGluaGVyaXRzIGZyb20gQ1NTIGZvbnQtc2l6ZVwiKS4gU2V0dGluZyBhXG4vLyAtLXFpLXNpemUgdG9rZW4gaGVyZSBsb29rZWQgcmlnaHQgYW5kIGRpZCBub3RoaW5nOiB0aGUgZ2x5cGggY2FtZSBvdXQgYXQgdGhlXG4vLyBpbmhlcml0ZWQgMTRweCBpbnNpZGUgYSA3MnB4IHNxdWFyZS4gTWVhc3VyZWQgMDkuMDguMjAyNi5cbi5xaHQtYXJ0LWljb24ge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tcWh0LXZpc3VhbC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogdmFyKC0tcWh0LWFydC1mZyk7XG59XG5cbi8vIC0tLS0gVGV4dCAtLS0tXG4ucWh0LXRpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLXFodC10aXRsZS1zaXplKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6IHZhcigtLXFodC10aXRsZS1jb2xvcik7XG59XG5cbi5xaHQtc3ViIHtcbiAgICAvLyBQdWxsZWQgdXAgYWdhaW5zdCB0aGUgdGl0bGU6IHRoZXkgYXJlIG9uZSBibG9jayBvZiB0ZXh0LCBhbmQgdGhlIGNhcmQnc1xuICAgIC8vIG93biAxMHB4IGdhcCBpcyBtZWFudCBmb3IgdGhlIHNwYWNlIGJldHdlZW4gYXJ0d29yayBhbmQgdGV4dC5cbiAgICBtYXJnaW4tdG9wOiAtNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgIGNvbG9yOiB2YXIoLS1xaHQtc3ViLWNvbG9yKTtcbn1cblxuLy8gLS0tLSBDb3VudHMgKHRoZSBTdGFtZGF0YSB2YXJpYW50KSAtLS0tXG4vLyBUSEUgRElWSURFUiBSVU5TIEVER0UgVE8gRURHRSwgVEhFIE5VTUJFUlMgU1RBWSBJTlNJREUgVEhFIFBBRERJTkcuXG4vLyBBIGxpbmUgdGhhdCBzdG9wcyB3aGVyZSB0aGUgY2FyZCdzIHBhZGRpbmcgc3RvcHMgcmVhZHMgYXMgYW4gdW5maW5pc2hlZFxuLy8gdW5kZXJsaW5lIG9mIHRoZSB0ZXh0IGFib3ZlIGl0OyBhIGxpbmUgdGhhdCB0b3VjaGVzIGJvdGggZWRnZXMgcmVhZHMgYXMgdGhlXG4vLyBjYXJkIGJlaW5nIHNwbGl0IGluIHR3bywgd2hpY2ggaXMgd2hhdCBpdCBpcy4gTmVnYXRpdmUgbWFyZ2lucyBwdWxsIHRoZSBibG9ja1xuLy8gb3V0IHRvIHRoZSBjYXJkJ3Mgb3duIGVkZ2VzIGFuZCB0aGUgc2FtZSBwYWRkaW5nIGlzIHB1dCBiYWNrIG9uIHRoZSBpbnNpZGUsIHNvXG4vLyBvbmx5IHRoZSBib3JkZXIgZ3Jvd3MuIFtLaW0gMzEuMDguMjAyNl1cbi8vXG4vLyBFUVVBTCBDT0xVTU5TLCBOT1QgVEVYVC1XSURUSCBDT0xVTU5TLlxuLy8gVGhpcyB3YXMgYSBmbGV4IHJvdyB3aXRoIGEgZ2FwLCBzbyBlYWNoIGNvdW50IHdhcyBhcyB3aWRlIGFzIGl0cyBvd24gd29yZHM6XG4vLyBcIkxvY2F0aWVsaWpzdGVuXCIgcHVzaGVkIGl0cyBuZWlnaGJvdXIgc2lkZXdheXMgYW5kIHRoZSBzcGxpdCBmZWxsIGluIGFcbi8vIGRpZmZlcmVudCBwbGFjZSBvbiBldmVyeSB0aWxlLiBgZ3JpZC1hdXRvLWNvbHVtbnM6IDFmcmAgZ2l2ZXMgZXZlcnkgY291bnQgdGhlXG4vLyBzYW1lIHNsaWNlIG9mIHRoZSBjYXJkLCBjZW50cmVkIGluIGl0cyBvd24gc2xpY2UsIHNvIHR3by1jb3VudCB0aWxlcyBhbGwgc3BsaXRcbi8vIGRvd24gdGhlIG1pZGRsZSBhbmQgbGluZSB1cCBhY3Jvc3MgYSByb3cuXG4ucWh0LXN0YXRzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgZ3JpZC1hdXRvLWNvbHVtbnM6IDFmcjtcbiAgICAvLyBUaGUgY2FyZCBjZW50cmVzIGl0cyBjaGlsZHJlbiwgc28gd2l0aG91dCB0aGlzIHRoZSBibG9jayBpcyBvbmx5IGFzIHdpZGVcbiAgICAvLyBhcyBpdHMgb3duIHRleHQ6IG1lYXN1cmVkIDEyN3B4IGluc2lkZSBhIDM0OXB4IGNhcmQsIHdoaWNoIHB1dCB0aGUgZGl2aWRlclxuICAgIC8vIG5vd2hlcmUgbmVhciB0aGUgZWRnZXMgYW5kIG1hZGUgXCIxZnIgcGVyIGNvdW50XCIgc3BsaXQgMTI3cHggaW5zdGVhZCBvZiB0aGVcbiAgICAvLyBjYXJkLiBTdHJldGNoIGZpcnN0LCB0aGVuIHRoZSBuZWdhdGl2ZSBtYXJnaW5zIHRha2UgaXQgb3V0IHRvIHRoZSBlZGdlcy5cbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tcWh0LXN0YXRzLXNwYWNlKSAtIDRweCk7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tcWh0LXBhZC14KSAqIC0xKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tcWh0LXBhZC14KSAqIC0xKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1xaHQtc3RhdHMtc3BhY2UpIHZhcigtLXFodC1wYWQteCkgMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tcWh0LWRpdmlkZXIpO1xufVxuXG4ucWh0LXN0YXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgZm9udC1zaXplOiB2YXIoLS1xaHQtc3RhdC1sYWJlbC1zaXplKTtcbiAgICBjb2xvcjogdmFyKC0tcWh0LXN1Yi1jb2xvcik7XG5cbiAgICBiIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1xaHQtc3RhdC12YWx1ZS1zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLXFodC10aXRsZS1jb2xvcik7XG4gICAgfVxufVxuXG4vLyBPTkUgTElORSBQRVIgQ09VTlQgQVQgc2l6ZT1cInNcIiAoS2ltIDMxLjA4LjIwMjY6IFwiZGUgc3ViaW5mb3JtYXRpZSBpcyB0ZVxuLy8gYmVsYW5ncmlqayBnZW1hYWt0XCIpLlxuLy8gVGhlIHN0YWNrZWQgc2hhcGUg4oCUIGEgYmlnIG51bWJlciB3aXRoIGl0cyBsYWJlbCB1bmRlcm5lYXRoIOKAlCBpcyB0aGUgc2hhcGUgb2YgYVxuLy8gS1BJLCBhbmQgaXQgbWFkZSB0aGUgY291bnRzIHJlYWQgYXMgdGhlIHBvaW50IG9mIHRoZSB0aWxlIGluc3RlYWQgb2YgYSBkZXRhaWxcbi8vIHVuZGVyIHRoZSBuYW1lLiBTaWRlIGJ5IHNpZGUgdGhleSBhcmUgYSBjYXB0aW9uOiBcIjIwMTUgR2VicnVpa2Vyc1wiLiBJdCBhbHNvXG4vLyB0YWtlcyBhIGxpbmUgb2YgaGVpZ2h0IG91dCBvZiBldmVyeSB0aWxlIHdpdGggY291bnRzLlxuLy9cbi8vIFRoZSBudW1iZXIga2VlcHMgaXRzIHdlaWdodCBidXQgbG9zZXMgaXRzIHNpemUgKDEzcHggYWdhaW5zdCBhIDEzcHggdGl0bGUpLCB0aGVcbi8vIGxhYmVsIGdvZXMgVVAgYSBwb2ludCBzbyB0aGUgcGFpciByZWFkcyBhcyBvbmUgc2VudGVuY2UgcmF0aGVyIHRoYW4gYXMgYVxuLy8gaGVhZGluZyB3aXRoIGZpbmUgcHJpbnQuIE5vIHdyYXBwaW5nOiBhIGNvdW50IHRoYXQgZm9sZHMgb250byB0d28gbGluZXMgaXMgYmFja1xuLy8gd2hlcmUgd2Ugc3RhcnRlZCwgc28gYSBsYWJlbCB0aGF0IHdpbGwgbm90IGZpdCBpcyBjbGlwcGVkIHdpdGggYW4gZWxsaXBzaXMuIFRoZVxuLy8gY29tcG9uZW50IHB1dHMgdGhlIGZ1bGwgdGV4dCBvbiB0aGUgbGFiZWwncyBvd24gdGl0bGUgYXR0cmlidXRlLCBzbyBob3ZlcmluZ1xuLy8gc3RpbGwgdGVsbHMgeW91IHdoYXQgdGhlIG51bWJlciBjb3VudHMgKG9ubHkgXCJPcmdhbmlzYXRpZS1lZW5oZWRlblwiIGFjdHVhbGx5XG4vLyBjbGlwcywgYW5kIG9ubHkgb24gdGhlIG5hcnJvd2VzdCBncmlkKS5cbi5xZG5hcHJvLWh1Yi10aWxlW2RhdGEtc2l6ZT1cInNcIl0ge1xuICAgIC5xaHQtc3RhdCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGdhcDogNXB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICAucWh0LXN0YXQgYiB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgIC5xaHQtc3RhdCBzcGFuIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxufVxuXG4vLyAtLS0tIERpc2FibGVkIC0tLS1cbi8vIE9wYWNpdHkgcGx1cyBwb2ludGVyLWV2ZW50cywgbWF0Y2hpbmcgdGhlIGNoZWNrYm94L3JhZGlvL2FjdGl2aXR5LWljb25cbi8vIGNvbnZlbnRpb24gcmF0aGVyIHRoYW4gaW52ZW50aW5nIGEgZ3JleWVkLW91dCBwYWxldHRlLlxuLnFkbmFwcm8taHViLXRpbGUucWh0LWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAucWh0LWNhcmQge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbn1cblxuLy8gLS0tLSBUaW50IHBhbGV0dGUgLS0tLVxuLy8gU0FNRSA4IGh1ZXMgYW5kIGhleCBwYWlycyBhcyBxZG5hcHJvLWdyaWQtdGlsZSdzIC5xZ3QtdGludC0qIGFuZFxuLy8gcWRuYXByby1saXN0LXJvdydzIC5xbHItdGlsZS1jb2xvci0qLCBjb3BpZWQgMToxIGZvciB0aGUgc2FtZSByZWFzb24gdGhvc2UgdHdvXG4vLyBjb3B5IGVhY2ggb3RoZXI6IHRoZXJlIGlzIHN0aWxsIG5vIHNoYXJlZCBwYWxldHRlIG1vZHVsZSwgYW5kIGEgcGFnZSBtaXhpbmdcbi8vIHRoZXNlIGNvbXBvbmVudHMgaGFzIHRvIHJlYWQgYXMgb25lIHRpbnRlZC10aWxlIGZhbWlseS4gSWYgYSBzaGFyZWQgbWFwIGV2ZXJcbi8vIGxhbmRzLCBhbGwgdGhyZWUgY2hhbmdlIHRvZ2V0aGVyLlxuLnFodC10aW50LXB1cnBsZSAgICAgIHsgLS1xaHQtYXJ0LWJnOiB2YXIoLS1jLWNoaXAtcHVycGxlLWJnKTsgLS1xaHQtYXJ0LWZnOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7IH1cbi5xaHQtdGludC1ncmV5ICAgICAgICB7IC0tcWh0LWFydC1iZzogdmFyKC0tYy1ncmV5LTUwKTsgLS1xaHQtYXJ0LWZnOiB2YXIoLS1jLWdyZXktNjAwLCAjNTY1YjY2KTsgfVxuLnFodC10aW50LXJlZCAgICAgICAgIHsgLS1xaHQtYXJ0LWJnOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpOyAtLXFodC1hcnQtZmc6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTsgfVxuLnFodC10aW50LXllbGxvdyAgICAgIHsgLS1xaHQtYXJ0LWJnOiB2YXIoLS1jLWNoaXAteWVsbG93LWJnKTsgLS1xaHQtYXJ0LWZnOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctdGV4dCwgI2JmNzIwMik7IH1cbi5xaHQtdGludC1ncmVlbiAgICAgICB7IC0tcWh0LWFydC1iZzogdmFyKC0tYy1jaGlwLWdyZWVuLWJnKTsgLS1xaHQtYXJ0LWZnOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0LCAjNDI4YjZlKTsgfVxuLnFodC10aW50LWJsdWUgICAgICAgIHsgLS1xaHQtYXJ0LWJnOiB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnKTsgLS1xaHQtYXJ0LWZnOiB2YXIoLS1jLXNpZ25hbC1ibHVlLXRleHQsICM2YThhYjQpOyB9XG4ucWh0LXRpbnQtYnJpZ2h0LWJsdWUgeyAtLXFodC1hcnQtYmc6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWJnKTsgLS1xaHQtYXJ0LWZnOiB2YXIoLS1jLXB1cnBsZS00MDApOyB9XG4ucWh0LXRpbnQtcGluayAgICAgICAgeyAtLXFodC1hcnQtYmc6IHZhcigtLWMtc2lnbmFsLXBpbmstYmcpOyAtLXFodC1hcnQtZmc6IHZhcigtLWMtc2lnbmFsLXBpbmstdGV4dCwgI2IyNTc3Nyk7IH1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFodC10aW50LXB1cnBsZSAgICAgIHsgLS1xaHQtYXJ0LWJnOiAjM2EzNTU1OyAtLXFodC1hcnQtZmc6IHZhcigtLWMtcHVycGxlLTIwMCwgI2E1YWNmZik7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5xaHQtdGludC1ncmV5ICAgICAgICB7IC0tcWh0LWFydC1iZzogIzQwNDQ0ZDsgLS1xaHQtYXJ0LWZnOiB2YXIoLS1jLWdyZXktMzAwLCAjYzRjN2NjKTsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnFodC10aW50LXJlZCAgICAgICAgIHsgLS1xaHQtYXJ0LWJnOiAjNWEyYjJiOyAtLXFodC1hcnQtZmc6IHZhcigtLWMtd2Fybi1yZWQtNDAwLCAjZjg3MTcxKTsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnFodC10aW50LXllbGxvdyAgICAgIHsgLS1xaHQtYXJ0LWJnOiAjNWE0ZDFmOyAtLXFodC1hcnQtZmc6IHZhcigtLWMtd2Fybi15ZWxsb3ctNTAwLCAjZmJiZjI0KTsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnFodC10aW50LWdyZWVuICAgICAgIHsgLS1xaHQtYXJ0LWJnOiAjMmE1NTQ0OyAtLXFodC1hcnQtZmc6ICM3ZmUwYmM7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5xaHQtdGludC1ibHVlICAgICAgICB7IC0tcWh0LWFydC1iZzogIzJlM2U1NDsgLS1xaHQtYXJ0LWZnOiAjOGZiNGUwOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucWh0LXRpbnQtYnJpZ2h0LWJsdWUgeyAtLXFodC1hcnQtYmc6ICMzYTRhOGE7IC0tcWh0LWFydC1mZzogI2I5YzhmNTsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnFodC10aW50LXBpbmsgICAgICAgIHsgLS1xaHQtYXJ0LWJnOiAjNGUyYTM2OyAtLXFodC1hcnQtZmc6ICNlNGEwYjg7IH1cblxuLy8gVGhlIGNhcmQgc3VyZmFjZSBpdHNlbGYgaW4gZGFyayBtb2RlLiBUaGUgdGlsZSBpdCByZXBsYWNlcyBoYWQgYSBoYXJkLWNvZGVkXG4vLyB3aGl0ZSBiYWNrZ3JvdW5kIGFuZCBjb3VsZCBub3QgZG8gdGhpcyBhdCBhbGwuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1odWItdGlsZSB7XG4gICAgLS1xaHQtYmc6IHZhcigtLWMtYmctY2FyZCwgIzJlMzAzNik7XG4gICAgLS1xaHQtYm9yZGVyOiB2YXIoLS1jLWdyZXktNzAwLCAjNDA0NDRkKTtcbiAgICAtLXFodC1ib3JkZXItaG92ZXI6IHZhcigtLWMtcHVycGxlLTQwMCwgIzdiODNlOCk7XG4gICAgLS1xaHQtdGl0bGUtY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjZTFlM2U2KTtcbiAgICAtLXFodC1zdWItY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzg5OGU5OSk7XG4gICAgLS1xaHQtZGl2aWRlcjogdmFyKC0tYy1ncmV5LTcwMCwgIzQwNDQ0ZCk7XG59XG5cbi8vIC0tLS0gU2xvdC13cmFwIHV0aWxpdHkgLS0tLVxuLy8gU2FtZSBjb250cmFjdCBhbmQgc2FtZSBpbmNpZGVudCBoaXN0b3J5IGFzIHFkbmFwcm8tZ3JpZC10aWxlJ3MgLnFndC1zbG90LXdyYXBcbi8vIGFuZCBxZG5hcHJvLWxpc3Qtcm93J3MgLnFsci1zbG90LXdyYXA6IHRoaXMgY29tcG9uZW50IE1PVkVTIHRoZSBzbG90PVwiYXJ0d29ya1wiXG4vLyBlbGVtZW50IGludG8gaXRzIG93biBjb250YWluZXIgb24gZmlyc3QgcmVuZGVyLCBzbyBhIHRlbXBsYXRpbmcgZW5naW5lJ3Ncbi8vIGNvbmRpdGlvbmFsIG11c3QgbmV2ZXIgc2l0IG9uIHRoYXQgZWxlbWVudCBpdHNlbGYuIFdyYXAgaXQuXG4ucWh0LXNsb3Qtd3JhcCB7XG4gICAgZGlzcGxheTogY29udGVudHM7XG59XG5cbi8vIC0tLS0gdmFyaWFudD1cImlsbHVzdHJhdGlvblwiIC0tLS1cbi8vIEZvciBhIGh1YiB3aG9zZSB0aWxlcyBjYXJyeSBhIGZ1bGwgbmFycmF0aXZlIGRyYXdpbmcgaW5zdGVhZCBvZiBhbiBpY29uLiBGaXJzdFxuLy8gdXNlcjogdGhlIEt3YWxpdGVpdHNsYW5kc2NoYXAgaHViICgzMC4wOS4yMDI2KSwgd2hlcmUgdGhpcyBsb29rIHdhcyBkZXNpZ25lZCBhc1xuLy8gdGhlIHBhZ2UncyBvd24gY2FyZCBhbmQgdGhlbiBmb2xkZWQgaW50byB0aGlzIGNvbXBvbmVudCwgc28gdGhlIGFwcCBrZWVwcyBPTkVcbi8vIGh1YiB0aWxlLiBUaGUgZGlmZmVyZW5jZXMgZnJvbSB0aGUgZGVmYXVsdCB0aWxlIGFyZSBhbGwgZGVsaWJlcmF0ZTpcbi8vICAgLSB0aGUgZHJhd2luZyBzdGFuZHMgb24gaXRzIG93bjogbm8gdGludGVkIHNxdWFyZSwgYSBmaXhlZCBIRUlHSFQgcGVyIHNpemVcbi8vICAgICAoNzIgLyA4OCAvIDExMCkgYW5kIGl0cyBvd24gd2lkdGgsIHNvIGRyYXdpbmdzIG9mIGRpZmZlcmVudCBwcm9wb3J0aW9uc1xuLy8gICAgIHN0aWxsIGxpbmUgdXAgb24gb25lIGJhc2VsaW5lO1xuLy8gICAtIHRoZSB0aXRsZSBpcyBib2xkIGFuZCBsYXJnZXI6IGl0IGlzIHRoZSBvbmx5IHdvcmQgb24gdGhlIGNhcmQgYW5kIGhhcyB0b1xuLy8gICAgIHJlYWQgZnJvbSBhY3Jvc3MgYSByb29tIGR1cmluZyBhIGRlbW87XG4vLyAgIC0gZXZlcnkgY291bnQgaXMgb25lIHBpbGwgaW4gdGhlIHRpbGUncyBhY2NlbnQgY29sb3VyIChcIjEyIHJpc2ljbydzXCIpOiBhXG4vLyAgICAgc2lnbiBvZiBsaWZlIG9uIGEgZG9vcndheSwgbm90IGEgS1BJO1xuLy8gICAtIGhvdmVyIGRyYXdzIGEgbW92aW5nIHJpbmcgYXJvdW5kIHRoZSBjYXJkIGluIHRoYXQgYWNjZW50IGNvbG91ci5cbi8vIFRoZSBhY2NlbnQgZmFsbHMgYmFjayB0byB0aGUgdGludCBwYWlyLCBzbyBgdGludGAga2VlcHMgd29ya2luZy4gQSBwYWdlIHRoYXRcbi8vIGdpdmVzIGV2ZXJ5IHRpbGUgaXRzIG93biBjb2xvdXIgc2V0cyAtLXFodC1hY2NlbnQgLyAtLXFodC1hY2NlbnQtc29mdCBvbiB0aGVcbi8vIEhPU1QuIFRoZXkgYXJlIHJlYWQgd2l0aCBhIGZhbGxiYWNrIGFuZCBuZXZlciBkZWNsYXJlZCBvbiB0aGUgY2FyZCBpdHNlbGYsIG9yXG4vLyB0aGUgY2FyZCdzIG93biBkZWNsYXJhdGlvbiB3b3VsZCBzaGFkb3cgdGhlIHZhbHVlIHRoZSBob3N0IHBhc3NlcyBkb3duLlxuQHByb3BlcnR5IC0tcWh0LXJpbmctYW5nbGUge1xuICAgIHN5bnRheDogXCI8YW5nbGU+XCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6IDBkZWc7XG59XG5cbkBrZXlmcmFtZXMgcWh0LXJpbmctc3BpbiB7XG4gICAgdG8geyAtLXFodC1yaW5nLWFuZ2xlOiAzNjBkZWc7IH1cbn1cblxuLnFkbmFwcm8taHViLXRpbGVbZGF0YS12YXJpYW50PVwiaWxsdXN0cmF0aW9uXCJdIHtcbiAgICAtLXFodC1pbGx1LWg6IDg4cHg7XG4gICAgLy8gVGhlIGhlYWRpbmcgY29sb3VyIG9mIHRoZSBLd2FsaXRlaXRzbGFuZHNjaGFwIGh1Yiwgd2hlcmUgdGhpcyB2YXJpYW50IHN0YXJ0ZWQuXG4gICAgLS1xaHQtaWxsdS10aXRsZS1jb2xvcjogIzM5NDI5MDtcbiAgICAtLXFodC1waWxsLXRleHQ6ICMyMjIwM2E7XG4gICAgLS1xaHQtaWxsdS1zaGFkb3c6IDAgMTBweCAyOHB4IC0xOHB4IHJnYmEoMzgsIDM0LCA4MCwgMC40KTtcbiAgICAtLXFodC1pbGx1LXNoYWRvdy1ob3ZlcjogMCAxNnB4IDM0cHggLTE4cHggcmdiYSgzOCwgMzQsIDgwLCAwLjQyKTtcblxuICAgICZbZGF0YS1zaXplPVwic1wiXSB7IC0tcWh0LWlsbHUtaDogNzJweDsgfVxuICAgICZbZGF0YS1zaXplPVwibFwiXSB7IC0tcWh0LWlsbHUtaDogMTEwcHg7IH1cbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taHViLXRpbGVbZGF0YS12YXJpYW50PVwiaWxsdXN0cmF0aW9uXCJdIHtcbiAgICAtLXFodC1pbGx1LXRpdGxlLWNvbG9yOiB2YXIoLS1xaHQtdGl0bGUtY29sb3IpO1xuICAgIC0tcWh0LXBpbGwtdGV4dDogdmFyKC0tcWh0LXRpdGxlLWNvbG9yKTtcbiAgICAtLXFodC1pbGx1LXNoYWRvdzogMCAxMHB4IDI4cHggLTE4cHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgIC0tcWh0LWlsbHUtc2hhZG93LWhvdmVyOiAwIDE2cHggMzRweCAtMThweCByZ2JhKDAsIDAsIDAsIDAuNyk7XG59XG5cbi5xaHQtY2FyZC5xaHQtY2FyZC1pbGx1IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLy8gSXRzIG93biBzdGFja2luZyBjb250ZXh0LCBzbyB0aGUgcmluZyBiZWxvdyAoei1pbmRleCAtMSkgcGFpbnRzIGJlaGluZCB0aGVcbiAgICAvLyBjYXJkJ3MgY29udGVudCBhbmQgY2Fubm90IGVuZCB1cCB1bmRlciB0aGUgaHViIHBhZ2UncyBiYWNrZ3JvdW5kLlxuICAgIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAxMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgcGFkZGluZzogMTZweCAxNHB4IDE0cHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tcWh0LWlsbHUtc2hhZG93KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjgwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC43LCAwLjMsIDEpLCBib3gtc2hhZG93IDI4MG1zIGVhc2U7XG5cbiAgICAvLyBUaGUgbW92aW5nIHJpbmc6IGEgM3B4IGJhbmQganVzdCBvdXRzaWRlIHRoZSBjYXJkLCBoaWRkZW4gdW50aWwgaG92ZXIuIFRoZVxuICAgIC8vIG1hc2sga2VlcHMgb25seSB0aGF0IGJhbmQsIHNvIHRoZSBncmFkaWVudCBuZXZlciBwYWludHMgb3ZlciB0aGUgY2FyZC5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAtM3B4O1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgcGFkZGluZzogM3B4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyM3B4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xaHQtYmcpIGNvbmljLWdyYWRpZW50KGZyb20gdmFyKC0tcWh0LXJpbmctYW5nbGUpLCB0cmFuc3BhcmVudCAwZGVnLCB2YXIoLS1xaHQtYWNjZW50LCB2YXIoLS1xaHQtYXJ0LWZnKSkgODBkZWcsIHRyYW5zcGFyZW50IDEzMGRlZyk7XG4gICAgICAgIC13ZWJraXQtbWFzazogbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKSBjb250ZW50LWJveCwgbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKTtcbiAgICAgICAgLXdlYmtpdC1tYXNrLWNvbXBvc2l0ZTogeG9yO1xuICAgICAgICBtYXNrOiBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApIGNvbnRlbnQtYm94LCBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApO1xuICAgICAgICBtYXNrLWNvbXBvc2l0ZTogZXhjbHVkZTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgZWFzZTtcbiAgICAgICAgYW5pbWF0aW9uOiBxaHQtcmluZy1zcGluIDNzIGxpbmVhciBpbmZpbml0ZTtcbiAgICB9XG5cbiAgICAucWh0LWFydCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXFodC1pbGx1LWgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvLyBIZWlnaHQgaXMgdGhlIGZpeGVkIG1lYXN1cmUsIHdpZHRoIGZvbGxvd3MgdGhlIGRyYXdpbmcuIEEgc2xvdHRlZFxuICAgIC8vIHFkbmFwcm8taWxsdXN0cmF0aW9uIHNldHMgaXRzIG93biB3aWR0aCBpbmxpbmUgKGl0cyBgc2l6ZWApLCBzbyBnaXZlIGl0IHRoZVxuICAgIC8vIHdpZHRoIHRoYXQgbWF0Y2hlcyB0aGlzIGhlaWdodC5cbiAgICAucWh0LWFydCA+ICosXG4gICAgLnFodC1hcnQgPiAucWh0LWFydC1zbG90dGVkIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5xaHQtdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTtcbiAgICAgICAgY29sb3I6IHZhcigtLXFodC1pbGx1LXRpdGxlLWNvbG9yKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMzAwbXMgZWFzZTtcbiAgICB9XG5cbiAgICAucWh0LXBpbGxzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgfVxuXG4gICAgLnFodC1waWxsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogN3B4O1xuICAgICAgICBwYWRkaW5nOiA3cHggMTNweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcWh0LWFjY2VudC1zb2Z0LCB2YXIoLS1xaHQtYXJ0LWJnKSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1xaHQtcGlsbC10ZXh0KTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDQwMG1zIGVhc2U7XG5cbiAgICAgICAgYiB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXFodC1hY2NlbnQsIHZhcigtLXFodC1hcnQtZmcpKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDQwMG1zIGVhc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucWh0LXBpbGwtaWNvbiB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBjb2xvcjogdmFyKC0tcWh0LWFjY2VudCwgdmFyKC0tcWh0LWFydC1mZykpO1xuICAgIH1cbn1cblxuLnFodC1jYXJkLnFodC1jYXJkLWlsbHU6aG92ZXIsXG4ucWh0LWNhcmQucWh0LWNhcmQtaWxsdTpmb2N1cy12aXNpYmxlLFxuLnFkbmFwcm8taHViLXRpbGVbaGlnaGxpZ2h0XSAucWh0LWNhcmQucWh0LWNhcmQtaWxsdSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXFodC1pbGx1LXNoYWRvdy1ob3Zlcik7XG5cbiAgICAmOjpiZWZvcmUgeyBvcGFjaXR5OiAxOyB9XG5cbiAgICAucWh0LXRpdGxlIHsgY29sb3I6IHZhcigtLXFodC1hY2NlbnQsIHZhcigtLXFodC1hcnQtZmcpKTsgfVxufVxuXG4ucWh0LWNhcmQucWh0LWNhcmQtaWxsdTpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAzcHggc29saWQgdmFyKC0tcWh0LWFjY2VudCwgdmFyKC0tcWh0LWFydC1mZykpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAzcHg7XG59XG5cbi8vIC0tLS0gUmVkdWNlZCBtb3Rpb24gLS0tLVxuLy8gVGhlIGxpZnQgaXMgZGVjb3JhdGlvbi4gU29tZW9uZSB3aG8gc3dpdGNoZWQgbW90aW9uIG9mZiBzdGlsbCBnZXRzIHRoZSBib3JkZXJcbi8vIGFuZCBzaGFkb3cgY2hhbmdlLCBqdXN0IHdpdGhvdXQgdGhlIG1vdmVtZW50LiBUaGUgaWxsdXN0cmF0aW9uIHZhcmlhbnQgc3dhcHNcbi8vIGl0cyBtb3ZpbmcgcmluZyBmb3IgYSBzdGlsbCBvbmUgaW4gdGhlIGFjY2VudCBjb2xvdXIuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xaHQtY2FyZCB7XG4gICAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMTgwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE4MG1zIGVhc2U7XG4gICAgfVxuXG4gICAgLnFodC1jYXJkOmhvdmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cblxuICAgIC5xaHQtY2FyZC5xaHQtY2FyZC1pbGx1OjpiZWZvcmUge1xuICAgICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLnFodC1jYXJkLnFodC1jYXJkLWlsbHU6aG92ZXIsXG4gICAgLnFodC1jYXJkLnFodC1jYXJkLWlsbHU6Zm9jdXMtdmlzaWJsZSxcbiAgICAucWRuYXByby1odWItdGlsZVtoaWdobGlnaHRdIC5xaHQtY2FyZC5xaHQtY2FyZC1pbGx1IHtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1xaHQtaWxsdS1zaGFkb3ctaG92ZXIpLCAwIDAgMCAycHggdmFyKC0tcWh0LWFjY2VudCwgdmFyKC0tcWh0LWFydC1mZykpO1xuXG4gICAgICAgICY6OmJlZm9yZSB7IG9wYWNpdHk6IDA7IH1cbiAgICB9XG59XG4iLCIvLyBxZG5hLWljb24tZmllbGQg4oCUIGZvcm0tZWxlbWVudCB3cmFwcGVyIGZvciB0aGUgYWN0aXZpdHktaWNvbiBwaWNrZXIuXG4vLyBBIHJvdW5kIHByZXZpZXcgdGlsZSArIGEgXCJDaG9vc2UgaWNvblwiIGJ1dHRvbiB0aGF0IG9wZW5zIHRoZSBzaGFyZWRcbi8vIHFkbmFwcm8tYWN0aXZpdHktaWNvbi1waWNrZXItb3ZlcmxheS4gVXNlZCBpbiB0aGUgdW5pdC10eXBlIGVkaXQgbW9kYWxcbi8vIChyZXBsYWNlcyB0aGUgZm9ybWVyIHByb2ZpbGUtcGljdHVyZSB1cGxvYWQsIHdoaWNoIGlzIGEgdXNlcnMtb25seSBjb25jZXB0KS5cblxuLnFkbmEtaWNvbi1maWVsZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMjRweDtcblxuICAgICZfX3ByZXZpZXctd3JhcCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEyMHB4O1xuICAgIH1cblxuICAgICZfX3ByZXZpZXcge1xuICAgICAgICB3aWR0aDogODBweDtcbiAgICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpO1xuICAgIH1cblxuICAgICZfX2JvZHkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgfVxuXG4gICAgJl9fc3ViIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xuICAgIH1cblxuICAgICZfX2J0biB7XG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgfVxufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvaGlzdG9yeS1pdGVtL19oaXN0b3J5LWl0ZW0tY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnFkbmFwcm8taGlzdG9yeS1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAycHg7XG4gIHBhZGRpbmc6IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBib3JkZXI6IDAuNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2U7XG59XG4ucWRuYXByby1oaXN0b3J5LWl0ZW06Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLWhpc3RvcnktaXRlbS5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtIC5oaXN0b3J5LWl0ZW0tcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5xZG5hcHJvLWhpc3RvcnktaXRlbSAuaGlzdG9yeS1pdGVtLXJvdy10b3Age1xuICBnYXA6IDRweDtcbn1cbi5xZG5hcHJvLWhpc3RvcnktaXRlbSAuaGlzdG9yeS1pdGVtLXJvdy1ib3R0b20ge1xuICBnYXA6IDhweDtcbn1cbi5xZG5hcHJvLWhpc3RvcnktaXRlbSAuaGlzdG9yeS1pdGVtLXN1YmplY3Qge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5xZG5hcHJvLWhpc3RvcnktaXRlbSAuaGlzdG9yeS1pdGVtLXByZXZpZXcge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5xZG5hcHJvLWhpc3RvcnktaXRlbSAuaGlzdG9yeS1pdGVtLXRpbWUge1xuICBmbGV4LXNocmluazogMDtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5xZG5hcHJvLWhpc3RvcnktaXRlbSAuaGlzdG9yeS1pdGVtLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtIC5oaXN0b3J5LWl0ZW0tYWN0aW9ucyA+IC5xZG5hcHJvLWljb24tYnRuIHtcbiAgd2lkdGg6IDA7XG4gIG1pbi13aWR0aDogMDtcbiAgbWF4LXdpZHRoOiAwO1xuICBvcGFjaXR5OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogbWF4LXdpZHRoIDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIHdpZHRoIDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIG1pbi13aWR0aCAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBtYXJnaW4tbGVmdCAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBvcGFjaXR5IDE1MG1zIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1oaXN0b3J5LWl0ZW0gLmhpc3RvcnktaXRlbS1hY3Rpb25zID4gLmhpc3RvcnktaXRlbS1tb3JlLWJ0biB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtOmhvdmVyIC5oaXN0b3J5LWl0ZW0tYWN0aW9ucyA+IC5xZG5hcHJvLWljb24tYnRuLCAucWRuYXByby1oaXN0b3J5LWl0ZW06Zm9jdXMtd2l0aGluIC5oaXN0b3J5LWl0ZW0tYWN0aW9ucyA+IC5xZG5hcHJvLWljb24tYnRuLCAucWRuYXByby1oaXN0b3J5LWl0ZW0uZm9yY2UtaG92ZXIgLmhpc3RvcnktaXRlbS1hY3Rpb25zID4gLnFkbmFwcm8taWNvbi1idG4ge1xuICB3aWR0aDogMjRweDtcbiAgbWluLXdpZHRoOiAyNHB4O1xuICBtYXgtd2lkdGg6IDI0cHg7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtOmhvdmVyIC5oaXN0b3J5LWl0ZW0tYWN0aW9ucyA+IC5oaXN0b3J5LWl0ZW0tbW9yZS1idG4sIC5xZG5hcHJvLWhpc3RvcnktaXRlbTpmb2N1cy13aXRoaW4gLmhpc3RvcnktaXRlbS1hY3Rpb25zID4gLmhpc3RvcnktaXRlbS1tb3JlLWJ0biwgLnFkbmFwcm8taGlzdG9yeS1pdGVtLmZvcmNlLWhvdmVyIC5oaXN0b3J5LWl0ZW0tYWN0aW9ucyA+IC5oaXN0b3J5LWl0ZW0tbW9yZS1idG4ge1xuICBtYXJnaW4tbGVmdDogNHB4O1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZTpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZ3JleS0zMDApO1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZTphY3RpdmU6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyZXktNDAwKTtcbn1cbi5xZG5hcHJvLWhpc3RvcnktaXRlbTpub3QoLmhpc3RvcnktaXRlbS1kaXNhYmxlZCk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtOm5vdCguaGlzdG9yeS1pdGVtLWRpc2FibGVkKTphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbn1cbi5xZG5hcHJvLWhpc3RvcnktaXRlbS5mb3JjZS1ob3Zlcjpub3QoLmhpc3RvcnktaXRlbS1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtLmZvcmNlLXByZXNzZWQ6bm90KC5oaXN0b3J5LWl0ZW0tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG59XG4ucWRuYXByby1oaXN0b3J5LWl0ZW0uaGlzdG9yeS1pdGVtLXBpbm5lZCAuaGlzdG9yeS1pdGVtLWFjdGlvbnMgPiAuaGlzdG9yeS1pdGVtLXBpbi1idG4ge1xuICB3aWR0aDogMjRweDtcbiAgbWluLXdpZHRoOiAyNHB4O1xuICBtYXgtd2lkdGg6IDI0cHg7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtLmhpc3RvcnktaXRlbS1kaXNhYmxlZCwgLnFkbmFwcm8taGlzdG9yeS1pdGVtLmhpc3RvcnktaXRlbS1kaXNhYmxlZDpob3ZlciwgLnFkbmFwcm8taGlzdG9yeS1pdGVtLmhpc3RvcnktaXRlbS1kaXNhYmxlZDphY3RpdmUge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8taGlzdG9yeS1pdGVtLmhpc3RvcnktaXRlbS1kaXNhYmxlZDpmb2N1cy12aXNpYmxlLCAucWRuYXByby1oaXN0b3J5LWl0ZW0uaGlzdG9yeS1pdGVtLWRpc2FibGVkLmZvcmNlLWZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taGlzdG9yeS1pdGVtIHtcbiAgYmFja2dyb3VuZDogIzFmMjAyNDtcbiAgY29sb3I6ICNmMGYxZjI7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1oaXN0b3J5LWl0ZW06bm90KC5oaXN0b3J5LWl0ZW0tZGlzYWJsZWQpOmhvdmVyLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1oaXN0b3J5LWl0ZW0uZm9yY2UtaG92ZXI6bm90KC5oaXN0b3J5LWl0ZW0tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogIzJhMmMzMztcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWhpc3RvcnktaXRlbTpub3QoLmhpc3RvcnktaXRlbS1kaXNhYmxlZCk6YWN0aXZlLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1oaXN0b3J5LWl0ZW0uZm9yY2UtcHJlc3NlZDpub3QoLmhpc3RvcnktaXRlbS1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiAjMzUzODQxO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taGlzdG9yeS1pdGVtIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZTpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1oaXN0b3J5LWl0ZW0gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlOmFjdGl2ZTpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2YjcyODA7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1oaXN0b3J5LWl0ZW0uaGlzdG9yeS1pdGVtLWRpc2FibGVkLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1oaXN0b3J5LWl0ZW0uaGlzdG9yeS1pdGVtLWRpc2FibGVkOmhvdmVyLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1oaXN0b3J5LWl0ZW0uaGlzdG9yeS1pdGVtLWRpc2FibGVkOmFjdGl2ZSB7XG4gIGNvbG9yOiAjNmI3MjgwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL2ljb24vX2ljb24tY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnFkbmFwcm8taWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbn1cbi5xZG5hcHJvLWljb24gPiBzdmcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmlsbDogY3VycmVudENvbG9yO1xufVxuLnFkbmFwcm8taWNvbi5pY29uLTE2IHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cbi5xZG5hcHJvLWljb24uaWNvbi0yMCB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG4ucWRuYXByby1pY29uLmljb24tMjQge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvaWNvbi1idG4vX2ljb24tYnRuLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi8qIHFkbmFwcm8taWNvbi1idG4gY29tcGlsZWQgQ1NTIC0tIGdlbmVyYXRlZCBmcm9tIF9pY29uLWJ0bi5zY3NzIDIwMjYtMDUtMTMtZGFuZ2VyICovXG5cbi5xZG5hcHJvLWljb24tYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBtaW4td2lkdGg6IDI0cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAtLWliLWZvY3VzLXJpbmc6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIC0taWItZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQsIGNvbG9yIDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8taWNvbi1idG4gcWRuYXByby1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zaXplLWJpZyB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIG1pbi13aWR0aDogMjhweDtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXNpemUtYmlnIHFkbmFwcm8taWNvbiB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG4ucWRuYXByby1pY29uLWJ0bjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucWRuYXByby1pY29uLWJ0bjpmb2N1cy12aXNpYmxlLCAucWRuYXByby1pY29uLWJ0bi5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1pYi1mb2N1cy1yaW5nKTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWliLWZvY3VzLW9mZnNldCwgLTJweCk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCB2YXIoLS1pYi1mb2N1cy1nbG93KTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRpc2FibGVkOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRpc2FibGVkLmZvcmNlLWZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5xZG5hcHJvLWljb24tYnRuOmFjdGl2ZTpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAsIDAsIDAsIDAuMTUpLCByZ2JhKDAsIDAsIDAsIDAuMTUpKTtcbn1cblxuLyogVFlQRTogcHJpbWFyeS1wdXJwbGUgKi9cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXByaW1hcnktcHVycGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAtLWliLWZvY3VzLXJpbmc6IHZhcigtLWMtcHVycGxlLTcwMCk7XG4gIC0taWItZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC40MCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1wcmltYXJ5LXB1cnBsZTpmb2N1cy12aXNpYmxlLCAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1wcmltYXJ5LXB1cnBsZS5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1pYi1mb2N1cy1yaW5nKSwgMCAwIDAgNnB4IHZhcigtLWliLWZvY3VzLWdsb3cpO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tcHJpbWFyeS1wdXJwbGU6aG92ZXI6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS02MDApO1xufVxuXG4vKiBUWVBFOiBzZWNvbmRhcnkgKi9cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZ3JleS01MCk7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXNlY29uZGFyeTpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZ3JleS0zMDApO1xufVxuXG4vKiBUWVBFOiBkcm9wZG93bi1zZWFyY2ggKi9cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRyb3Bkb3duLXNlYXJjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYm9yZGVyLXRyZWUpO1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRyb3Bkb3duLXNlYXJjaDpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtc2lkZWJhci1pY29uKTtcbn1cblxuLyogVFlQRTogZHJvcGRvd24taW5wdXQgKi9cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRyb3Bkb3duLWlucHV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRyb3Bkb3duLWlucHV0OmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ncmV5LTUwKTtcbn1cblxuLyogVFlQRTogYnVsay1zZWxlY3QgKi9cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWJ1bGstc2VsZWN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTlmZjtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1idWxrLXNlbGVjdDpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbn1cblxuLyogVFlQRTogaW5wdXQtaWNvbiAqL1xuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4taW5wdXQtaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1pbnB1dC1pY29uOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ncmV5LTUwKTtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4taW5wdXQtaWNvbjphY3RpdmU6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG59XG5cbi8qIFRZUEU6IHN1YnRsZSAqL1xuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZTpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZ3JleS01MCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGU6YWN0aXZlOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG59XG5cbi8qIFRZUEU6IHN1YnRsZS1wdXJwbGUgLS0gbWlycm9ycyB0aGUgYnV0dG9uIGNvbXBvbmVudCdzIHN1YnRsZS1wdXJwbGUtYmcgc3BlY3NcbiAgICh0cmFuc3BhcmVudCBiZywgcHVycGxlIGljb24sIGxpZ2h0LXB1cnBsZSBob3Zlci9hY3RpdmUpLiBbS2ltIDIwMjYtMDYtMTddICovXG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGUtcHVycGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlLXB1cnBsZTpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZS1wdXJwbGU6YWN0aXZlOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xufVxuXG4vKiBUWVBFOiBzdWJ0bGUtZXJyb3IgKi9cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZS1lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlLWVycm9yOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxOTgsIDkwLCA5MCwgMC4xMCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGUtZXJyb3I6YWN0aXZlOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxOTgsIDkwLCA5MCwgMC4xOCk7XG59XG5cbi8qID09PSB0eXBlOiBvdXRsaW5lLXB1cnBsZSAtLSBwdXJwbGUgYm9yZGVyICsgcHVycGxlIGljb24gWzIwMjYtMDgtMDVdID09PVxuICAgVGhlIHB1cnBsZSBjb3VudGVycGFydCBvZiBgZGFuZ2VyYCBiZWxvdzogc2FtZSBzaGFwZSwgYnJhbmQgY29sb3VyLiBCdWlsdCBmb3JcbiAgIHRoZSBwbHVzIGJ1dHRvbnMgb24gdGhlIHJ1bGUgZWRpdG9yJ3MgcmFpbCwgd2hlcmUgYSBmaWxsZWQgY2lyY2xlIHdhcyB0b28gaGVhdnlcbiAgIGFuZCBgc3VidGxlLXB1cnBsZWAgKG5vIGJvcmRlciBhdCBhbGwpIHRvbyBxdWlldC4gKi9cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLW91dGxpbmUtcHVycGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgLS1pYi1mb2N1cy1yaW5nOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLWliLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjApO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tb3V0bGluZS1wdXJwbGU6aG92ZXI6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTIwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS02MDApO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tb3V0bGluZS1wdXJwbGU6YWN0aXZlOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDApO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tb3V0bGluZS1wdXJwbGUuaWNvbi1idG4tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtZ3JleS0xMDApICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwKSAhaW1wb3J0YW50O1xufVxuXG4vKiBUWVBFOiBkYW5nZXIgLS0gcmVkIGJvcmRlciArIHJlZCBpY29uICsgbGlnaHQgcmVkIGhvdmVyIGJnICovXG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWNoaXAtcmVkLWhvdmVyKTtcbiAgY29sb3I6IHZhcigtLWMtd2Fybi1yZWQtNTAwKTtcbiAgLS1pYi1mb2N1cy1yaW5nOiB2YXIoLS1jLXdhcm4tcmVkLTUwMCk7XG4gIC0taWItZm9jdXMtZ2xvdzogcmdiYSgyMzksIDY4LCA2OCwgMC4yMCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1kYW5nZXI6aG92ZXI6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtc29mdCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy13YXJuLXJlZC00MDApO1xuICBjb2xvcjogdmFyKC0tYy13YXJuLXJlZC01MDApO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZGFuZ2VyOmFjdGl2ZTpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy13YXJuLXJlZC01MDApO1xuICBjb2xvcjogdmFyKC0tYy10YWctY3JpdGljYWwtdGV4dCk7XG59XG5cbi8qIFRZUEU6IHB1cnBsZS1hY3RpdmUgKi9cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXB1cnBsZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tcHVycGxlLWFjdGl2ZTpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtc2lkZWJhci1pY29uKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXB1cnBsZS1hY3RpdmU6YWN0aXZlOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xufVxuXG4vKiBTVEFURTogZGlzYWJsZWQgKi9cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ncmV5LTUwKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbltkYXRhLWJnLWNvbnRleHQ9cHVycGxlXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KSAhaW1wb3J0YW50O1xufVxuXG4vKiBEYXJrIG1vZGUgKi9cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXByaW1hcnktcHVycGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4NDJjMjtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1wcmltYXJ5LXB1cnBsZTpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYTMxOTI7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUzMDM2O1xuICBjb2xvcjogI2UxZTNlNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXNlY29uZGFyeTpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MDQ0NGQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1kcm9wZG93bi1zZWFyY2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDA0NDRkO1xuICBjb2xvcjogI2UxZTNlNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRyb3Bkb3duLXNlYXJjaDpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1kcm9wZG93bi1zZWFyY2guaWNvbi1idG4tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUzMDM2ICFpbXBvcnRhbnQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1kcm9wZG93bi1pbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2UxZTNlNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRyb3Bkb3duLWlucHV0OmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU2NWI2Njtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWJ1bGstc2VsZWN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBiMGIwZDtcbiAgY29sb3I6ICNmMGYxZjI7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1idWxrLXNlbGVjdDpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MDQ0NGQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1pbnB1dC1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjODk4ZTk5O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4taW5wdXQtaWNvbjpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NjViNjY7XG4gIGNvbG9yOiAjZTFlM2U2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4taW5wdXQtaWNvbjphY3RpdmU6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBjb2xvcjogI2UxZTNlNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2UxZTNlNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZTpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGU6YWN0aXZlOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZiNzI4MDtcbn1cbi8qIHN1YnRsZS1wdXJwbGUgZGFyazogLS1jLXB1cnBsZS01MDAgKCM0MDQ5OWEpIGFuZCAtLWMtc2lkZWJhci1pY29uIChsaWdodCBncmV5XG4gICBpbiBkYXJrKSBoYXZlIG5vIHVzYWJsZSBkYXJrIHZhbHVlcywgc28gbWlycm9yIHB1cnBsZS1hY3RpdmUncyBkYXJrIHBhbGV0dGVcbiAgIG9uZSBzdGVwIGxpZ2h0ZXI6IGhvdmVyID0gcHVycGxlLWFjdGl2ZSdzIHJlc3RpbmcgYmcsIGFjdGl2ZSA9IGl0cyBob3ZlciBiZy5cbiAgIEljb24gI2E1YWNmZiBtYXRjaGVzIHRoZSBkYXJrIGZvY3VzIHJpbmcgYW5kIHB1cnBsZS1hY3RpdmUncyBkYXJrIGljb24uIFsyMS4wOC4yMDI2XSAqL1xuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlLXB1cnBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2E1YWNmZjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZS1wdXJwbGU6aG92ZXI6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjIwKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZS1wdXJwbGU6YWN0aXZlOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3MCwgODIsIDI0MywgMC4zMCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGUtZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNmYmFhYWE7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGUtZXJyb3I6aG92ZXI6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1MSwgMTcwLCAxNzAsIDAuMTIpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc3VidGxlLWVycm9yOmFjdGl2ZTpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjUxLCAxNzAsIDE3MCwgMC4yMCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1MiwgMTY1LCAxNjUsIDAuNDUpO1xuICBjb2xvcjogI2ZjYTVhNTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRhbmdlcjpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTUpO1xuICBib3JkZXItY29sb3I6ICNmY2E1YTU7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZGFuZ2VyOmFjdGl2ZTpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMjUpO1xuICBib3JkZXItY29sb3I6ICNmODcxNzE7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tcHVycGxlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjApO1xuICBjb2xvcjogI2E1YWNmZjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXB1cnBsZS1hY3RpdmU6aG92ZXI6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjMwKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXB1cnBsZS1hY3RpdmU6YWN0aXZlOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3MCwgODIsIDI0MywgMC40Mik7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MDQ0NGQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2YjcyODAgIWltcG9ydGFudDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuOmZvY3VzLXZpc2libGUsIFtkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWljb24tYnRuLmZvcmNlLWZvY3VzIHtcbiAgb3V0bGluZS1jb2xvcjogI2E1YWNmZjtcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuNCk7XG59XG5cbi8qID09PSBzaXplOiB0b3VjaCDigJQgNDTDlzQ0IG1pbmltdW0gdGFwIHRhcmdldCBbMjAyNi0wNi0zMF0gPT09ICovXG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zaXplLXRvdWNoIHtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgbWluLXdpZHRoOiA0NHB4O1xufVxuXG4vKiA9PT0gdmFyaWFudDogcm91bmQg4oCUIGZ1bGwgY2lyY2xlIFsyMDI2LTA2LTMwXSA9PT0gKi9cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXJvdW5kIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4vKiA9PT0gdHlwZTogb24tZGFyay1wdXJwbGUg4oCUIGljb24gb24gdmFyKC0tYy1wdXJwbGUtNzAwKSBzdXJmYWNlIFsyMDI2LTA2LTMwXSA9PT0gKi9cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLW9uLWRhcmstcHVycGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1vbi1kYXJrLXB1cnBsZTpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1vbi1kYXJrLXB1cnBsZS5pY29uLWJ0bi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS0zMDApICFpbXBvcnRhbnQ7XG59XG5cbi8qID09PSB0eXBlOiBmaWxsZWQtZGFyay1wdXJwbGUg4oCUIG93biB2YXIoLS1jLXB1cnBsZS03MDApIHN1cmZhY2UgWzIwMjYtMDYtMzBdID09PSAqL1xuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZmlsbGVkLWRhcmstcHVycGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwKTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWZpbGxlZC1kYXJrLXB1cnBsZTpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHVycGxlLTYwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1maWxsZWQtZGFyay1wdXJwbGUuaWNvbi1idG4tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtMzAwKSAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT0gdHlwZTogZmlsbGVkLWVycm9yIOKAlCBzb2xpZCBlcnJvci1yZWQgc3VyZmFjZSwgd2hpdGUgaWNvbiBbMjAyNi0wOC0wNF0gPT09XG4gICBUaGUgZmlsbGVkIGNvdW50ZXJwYXJ0IHRvIHN1YnRsZS1lcnJvciAodHJhbnNwYXJlbnQpIGFuZCBkYW5nZXIgKGJvcmRlcmVkKS5cbiAgIFVzZXMgdGhlIHNhbWUgcmVkIGFzIHN1YnRsZS1lcnJvciAodmFyKC0tYy1zaWduYWwtcmVkLXRleHQpKSwgbm90IHRoZSBkYW5nZXIgcGFsZXR0ZSdzIHZhcigtLWMtd2Fybi1yZWQtNTAwKTpcbiAgIGFzIGEgZnVsbCBmaWxsIHRoYXQgYnJpZ2h0ZXIgcmVkIHNob3V0cywgYW5kIHRoZSBRRE5BIHJlZCBpcyB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCkuXG4gICBNYWRlIGZvciB0aGUgcmVtb3ZlLWNpcmNsZSBvbiB0aGUgcnVsZSBlZGl0b3IncyBJRi9USEVOIHJhaWwsIHdoaWNoIHVzZWQgdG8gYmVcbiAgIGEgaGFuZC1yb2xsZWQgZmlsbGVkIGNpcmNsZS4gQ29tYmluZSB3aXRoIGByb3VuZGAuICovXG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1maWxsZWQtZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgLS1pYi1mb2N1cy1yaW5nOiB2YXIoLS1jLWNoaXAtcmVkLXRleHQpO1xuICAtLWliLWZvY3VzLWdsb3c6IHJnYmEoMTk4LCA5MCwgOTAsIDAuNDApO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZmlsbGVkLWVycm9yOmhvdmVyOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1maWxsZWQtZXJyb3I6YWN0aXZlOm5vdCguaWNvbi1idG4tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1jaGlwLXJlZC10ZXh0KTtcbn1cbi5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWZpbGxlZC1lcnJvci5pY29uLWJ0bi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtY2hpcC1waW5rLWhvdmVyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbikgIWltcG9ydGFudDtcbn1cblxuLyogPT09IHR5cGU6IGZpbGxlZC1hY3Rpb24g4oCUIHNvbGlkIGFjdGlvbi1ibHVlIHN1cmZhY2UsIHdoaXRlIGljb24gWzE2LjA4LjIwMjZdID09PVxuICAgVGhlIHNlbmQgYnV0dG9uIGF0IHRoZSBlbmQgb2YgYSBjb21wb3NlIGJhci4gcHJpbWFyeS1wdXJwbGUgKC0tYy1wdXJwbGUtNTAwLFxuICAgIzQwNDk5YSkgd2FzIHRoZSBjbG9zZXN0IGV4aXN0aW5nIHR5cGUgYW5kIGl0IGlzIHZpc2libHkgZGFya2VyIGFuZCBoZWF2aWVyOlxuICAgbmV4dCB0byBhIHRleHQgZmllbGQgaXQgcmVhZHMgYXMgY2hyb21lLCB3aGlsZSB0aGlzIG9uZSByZWFkcyBhcyBcInByZXNzIG1lXCIuXG4gICBVc2VzIHRoZSBBQ1RJT04gc2NhbGUsIHRoZSBzYW1lIGNvbG91ciB0aGUgcHJpbWFyeSBidXR0b25zIHVzZS5cbiAgIEJ1aWx0IGZvciB0aGUgUHVsc2UgcmVhY3RpZS1zaGVldC4gQ29tYmluZSB3aXRoIGByb3VuZGAuICovXG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1maWxsZWQtYWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAtLWliLWZvY3VzLXJpbmc6IHZhcigtLWMtYWN0aW9uLTcwMCk7XG4gIC0taWItZm9jdXMtZ2xvdzogdmFyKC0tYy1hY3Rpb24tNDApO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZmlsbGVkLWFjdGlvbjpmb2N1cy12aXNpYmxlLFxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZmlsbGVkLWFjdGlvbi5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1pYi1mb2N1cy1yaW5nKSwgMCAwIDAgNnB4IHZhcigtLWliLWZvY3VzLWdsb3cpO1xufVxuLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tZmlsbGVkLWFjdGlvbjpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYWN0aW9uLTYwMCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1maWxsZWQtYWN0aW9uOmFjdGl2ZTpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYWN0aW9uLTcwMCk7XG59XG4ucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1maWxsZWQtYWN0aW9uLmljb24tYnRuLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1hY3Rpb24tMzApICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKSAhaW1wb3J0YW50O1xufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvaWxsdXN0cmF0aW9uL19pbGx1c3RyYXRpb24tY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiAgcWRuYXByby1pbGx1c3RyYXRpb24g4oCUIGNvbXBpbGVkIGZyb20gX2lsbHVzdHJhdGlvbi5zY3NzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnFkbmFwcm8taWxsdXN0cmF0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXMgZWFzZS1vdXQ7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuLnFkbmFwcm8taWxsdXN0cmF0aW9uIC5pbGx1c3RyYXRpb24taW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby1pbGx1c3RyYXRpb24uaWxsdXN0cmF0aW9uLWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjU7XG59XG5cbi8vIGVtcGhhc2lzOiBob2V2ZWVsIGRlIGlsbHVzdHJhdGllIG5hYXIgYWNodGVyZW4gc3RhcHQuIFR3ZWUgYmVub2VtZGUgc3RhcHBlbiBlblxuLy8gZ2VlbiB2cmlqIGdldGFsLCB6b2RhdCBoZXQgbmlldCBvdmVyYWwgbmV0IGlldHMgYW5kZXJzIHdvcmR0LiBgZGlzYWJsZWRgIGhpZXJib3ZlblxuLy8gemVndCBpZXRzIGFuZGVycyAobmlldCBiZXNjaGlrYmFhcikgZW4gaG91ZHQgemlqbiBlaWdlbiB3YWFyZGUuXG4ucWRuYXByby1pbGx1c3RyYXRpb24uaWxsdXN0cmF0aW9uLWVtcGhhc2lzLXNvZnQge1xuICAgIG9wYWNpdHk6IDAuNjtcbn1cbi5xZG5hcHJvLWlsbHVzdHJhdGlvbi5pbGx1c3RyYXRpb24tZW1waGFzaXMtZmFpbnQge1xuICAgIG9wYWNpdHk6IDAuMzU7XG59XG4ucWRuYXByby1pbGx1c3RyYXRpb24uaWxsdXN0cmF0aW9uLW1pc3Npbmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCAjYzRjN2NjO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYXNwZWN0LXJhdGlvOiA0IC8gMztcbiAgICBoZWlnaHQ6IGF1dG87XG59XG4ucWRuYXByby1pbGx1c3RyYXRpb24uaWxsdXN0cmF0aW9uLW1pc3Npbmc6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIj9cIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGNvbG9yOiAjODk4ZTk5O1xufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8taWxsdXN0cmF0aW9uLmlsbHVzdHJhdGlvbi1taXNzaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xuICAgIGJvcmRlci1jb2xvcjogIzU2NWI2Njtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1pbGx1c3RyYXRpb24uaWxsdXN0cmF0aW9uLW1pc3Npbmc6OmFmdGVyIHtcbiAgICBjb2xvcjogIzZiNzI4MDtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8taW5mby1jYXJkIOKAlCByZXVzYWJsZSBcImluZm9ybWF0aW9uIGZyYW1lXCJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIExlYWRpbmcgYWN0aXZpdHktaWNvbiBvbiBhIGNvbG91cmVkIHRpbGUgKyB3cmFwcGluZyB0aXRsZSArXG4vLyAgbWV0YSByb3dzICgxNnB4IE1ESSBpY29uICsgdGV4dCksIGluc2lkZSBhIGZyYW1lZCBjYXJkLlxuLy9cbi8vICBUd28gc3VyZmFjZXMgdmlhIGEgdmFyaWFudCBtb2RpZmllcjpcbi8vICAgIC0tb24td2hpdGUgIChkZWZhdWx0KSBkYXJrIHRleHQsIGhhaXJsaW5lIGZyYW1lICAobGlnaHQgcGFnZXMpXG4vLyAgICAtLW9uLXB1cnBsZSAgICAgICAgICAgd2hpdGUgdGV4dCwgdHJhbnNsdWNlbnQgICAgKHB1cnBsZSBzaGVldClcbi8vXG4vLyAgSWNvbi10aWxlIGNvbG91ciA9IHRoZSB0YXNrbGlzdCBhY3Rpdml0eS1pY29uIHBhbGV0dGUgKGdyZXkvcmVkL1xuLy8gIHllbGxvdy9ncmVlbi9ibHVlL2JyaWdodC1ibHVlL3BpbmsvcHVycGxlKSwgZHJpdmVuIGJ5IGEgY29sb3VyXG4vLyAgbW9kaWZpZXIgdGhhdCBzZXRzIC0taW5mby1jYXJkLWljb24tYmcuXG4vL1xuLy8gIEZMQVQgQ1NTIChubyBuZXN0aW5nKSBzbyBpdCBjYW4gYmUgc3luY2VkIHRvIHRoZSBQV0EgdmVyYmF0aW0gdmlhXG4vLyAgc3luYy12Mi1jb21wb25lbnRzLmpzLCBleGFjdGx5IGxpa2UgcWRuYXByby1ldmVudC1jYXJkLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5xZG5hcHJvLWluZm8tY2FyZCB7XG4gIC8vIFN1cmZhY2UgdmFyaWFibGVzIOKAlCBvbi13aGl0ZSBpcyB0aGUgZGVmYXVsdFxuICAtLWluZm8tY2FyZC10aXRsZTogICB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWQzYSk7XG4gIC0taW5mby1jYXJkLW1ldGE6ICAgIHZhcigtLWMtdGV4dC1tdXRlZCwgIzZhNmU5YSk7XG4gIC0taW5mby1jYXJkLWZyYW1lOiAgIHZhcigtLWMtYm9yZGVyLCAjZTdlOWVjKTtcbiAgLS1pbmZvLWNhcmQtZmlsbDogICAgdHJhbnNwYXJlbnQ7XG4gIC0taW5mby1jYXJkLWljb24tYmc6IHZhcigtLWMtZ3JleS01MCk7IC8vIGdyZXkgKGRlZmF1bHQgY29sb3VyKVxuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDE0cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWluZm8tY2FyZC1mcmFtZSk7XG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWluZm8tY2FyZC1maWxsKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4vLyAtLS0gU3VyZmFjZSB2YXJpYW50cyAtLS1cbi5xZG5hcHJvLWluZm8tY2FyZC0tb24tcHVycGxlIHtcbiAgLS1pbmZvLWNhcmQtdGl0bGU6ICNmZmZmZmY7XG4gIC0taW5mby1jYXJkLW1ldGE6ICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODIpO1xuICAtLWluZm8tY2FyZC1mcmFtZTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIwKTtcbiAgLS1pbmZvLWNhcmQtZmlsbDogIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOSk7XG59XG5cbi8vIC0tLSBJY29uLXRpbGUgY29sb3VycyAodGFza2xpc3QgYWN0aXZpdHktaWNvbiBwYWxldHRlKSAtLS1cbi5xZG5hcHJvLWluZm8tY2FyZC0tZ3JleSAgICAgICAgeyAtLWluZm8tY2FyZC1pY29uLWJnOiB2YXIoLS1jLWdyZXktNTApOyB9XG4ucWRuYXByby1pbmZvLWNhcmQtLXJlZCAgICAgICAgIHsgLS1pbmZvLWNhcmQtaWNvbi1iZzogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTsgfVxuLnFkbmFwcm8taW5mby1jYXJkLS15ZWxsb3cgICAgICB7IC0taW5mby1jYXJkLWljb24tYmc6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpOyB9XG4ucWRuYXByby1pbmZvLWNhcmQtLWdyZWVuICAgICAgIHsgLS1pbmZvLWNhcmQtaWNvbi1iZzogdmFyKC0tYy1jaGlwLWdyZWVuLWJnKTsgfVxuLnFkbmFwcm8taW5mby1jYXJkLS1ibHVlICAgICAgICB7IC0taW5mby1jYXJkLWljb24tYmc6IHZhcigtLWMtc2lnbmFsLWJsdWUtYmcpOyB9XG4ucWRuYXByby1pbmZvLWNhcmQtLWJyaWdodC1ibHVlIHsgLS1pbmZvLWNhcmQtaWNvbi1iZzogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLTItYmcpOyB9XG4ucWRuYXByby1pbmZvLWNhcmQtLXBpbmsgICAgICAgIHsgLS1pbmZvLWNhcmQtaWNvbi1iZzogdmFyKC0tYy1zaWduYWwtcGluay1iZyk7IH1cbi5xZG5hcHJvLWluZm8tY2FyZC0tcHVycGxlICAgICAgeyAtLWluZm8tY2FyZC1pY29uLWJnOiB2YXIoLS1jLWNoaXAtcHVycGxlLWJnKTsgfVxuXG4vLyAtLS0gSWNvbiB0aWxlIC0tLVxuLnFkbmFwcm8taW5mby1jYXJkX19pY29uIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbmZvLWNhcmQtaWNvbi1iZyk7XG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuLy8gUHJlLXJlc29sdmVkIGljb24gaW1hZ2UgKGljb24tc3JjKSDigJQgbWF0Y2hlcyB0aGUgNDBweCBhY3Rpdml0eS1pY29uIGl0IHJlcGxhY2VzLlxuLnFkbmFwcm8taW5mby1jYXJkX19pY29uLWltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4vLyAtLS0gQm9keSAtLS1cbi5xZG5hcHJvLWluZm8tY2FyZF9fYm9keSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5xZG5hcHJvLWluZm8tY2FyZF9fdGl0bGUge1xuICBjb2xvcjogdmFyKC0taW5mby1jYXJkLXRpdGxlKTtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMS4zO1xuICAvLyBGdWxsIG5hbWUg4oCUIHdyYXBzIHRvIGFzIG1hbnkgbGluZXMgYXMgbmVlZGVkLCBuZXZlciB0cnVuY2F0ZWQuXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuXG4vLyAtLS0gTWV0YSByb3dzIC0tLVxuLnFkbmFwcm8taW5mby1jYXJkX19yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgbWFyZ2luLXRvcDogN3B4O1xuICBjb2xvcjogdmFyKC0taW5mby1jYXJkLW1ldGEpO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG4ucWRuYXByby1pbmZvLWNhcmRfX3JvdyAucWRuYXByby1pY29uLFxuLnFkbmFwcm8taW5mby1jYXJkX19yb3cgcWRuYXByby1pY29uIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnFkbmFwcm8taW5mby1jYXJkX19yb3ctdGV4dCB7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLWltYWdlLWNyb3Bcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIENyb3BwZXIgVUkgdGhhdCBsaXZlcyBJTlNJREUgcWRuYXByby1tb2RhbCdzIC5tb2RhbC1ib2R5LiBCdWlsdFxuLy8gIG9uIENyb3BwZXIuanMgdjEgKHZlbmRvcmVkKS4gVGhpcyBmaWxlIHN0eWxlcyB0aHJlZSB0aGluZ3M6XG4vLyAgICAxLiB0aGUgY3JvcCBzdGFnZSArIHRvb2xiYXIgKyB0aGUgcmVicmFuZGVkIENyb3BwZXIgY2hyb21lXG4vLyAgICAyLiB0aGUgc2hhcGUgbWFza3MgKGNpcmNsZSAvIHJvdW5kZWQgLyByZWN0KSBzaG93biBsaXZlXG4vLyAgICAzLiB0aGUgc2lkZSBwcmV2aWV3IHBhbmVsIChzdXJmYWNlcyBvciBkZXZpY2UgZnJhbWVzKVxuLy9cbi8vICBMb2NhbCAtLWljLSogdmFycyBtYXAgdG8gdGhlIGNlbnRyYWwgZGVzaWduIHRva2VucyBidXQgY2Fycnlcbi8vICBsaXRlcmFsIGZhbGxiYWNrcyBzbyB0aGUgY29tcG9uZW50IGFsc28gcmVuZGVycyBjb3JyZWN0bHkgaW5cbi8vICBhIHN0YW5kYWxvbmUgZmlsZTovLyBwcmV2aWV3IChubyBnbG9iYWwgdG9rZW4gc2hlZXQgbG9hZGVkKS5cbi8vICBFbmdsaXNoIGNvbW1lbnRzIG9ubHkuIE5vIGVtLWRhc2ggaW4gc2hpcHBlZCBjb3B5LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5xZG5hcHJvLWljIHtcbiAgICAtLWljLXB1cnBsZTogICAgICAgIHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbiAgICAtLWljLXB1cnBsZS1zb2Z0OiAgIHZhcigtLWMtYmctc2Vjb25kYXJ5LXB1cnBsZSwgI2U2ZTlmZik7XG4gICAgLS1pYy10ZXh0OiAgICAgICAgICB2YXIoLS1jLXRleHQtYm9keSwgIzBiMGIwZCk7XG4gICAgLS1pYy1tdXRlZDogICAgICAgICB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgIC0taWMtaGVhZGluZzogICAgICAgdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xuICAgIC0taWMtYm9yZGVyOiAgICAgICAgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gICAgLS1pYy1jYXJkOiAgICAgICAgICB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICAgIC0taWMtc3RhZ2UtYmc6ICAgICAgdmFyKC0tYy1ncmV5LTkwMCk7ICAgICAgICAgICAgLy8gZGFyayBzdGFnZSBiYWNrZHJvcCwgcGhvdG8tbmV1dHJhbFxuICAgIC0taWMtZGltOiAgICAgICAgICAgcmdiYSgxNiwgMjAsIDQ1LCAwLjYyKTtcbiAgICAtLWljLXdhcm4tYmc6ICAgICAgIHZhcigtLWMtdGFnLXdhcm5pbmctYmcsICNmZmYyZDYpO1xuICAgIC0taWMtd2Fybi10ZXh0OiAgICAgdmFyKC0tYy10YWctd2FybmluZy10ZXh0LCAjYTA2NDAwKTtcbiAgICAtLWljLXJhZGl1czogICAgICAgIHZhcigtLXItY2FyZCwgMTRweCk7XG4gICAgLS1pYy1yYWRpdXMtc206ICAgICB2YXIoLS1yLWJ0biwgOHB4KTtcbiAgICAtLWljLWZmOiAgICAgICAgICAgIHZhcigtLWZmLCBcIkludGVyXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgXCJTZWdvZSBVSVwiLCBzYW5zLXNlcmlmKTtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1pYy1mZik7XG4gICAgY29sb3I6IHZhcigtLWljLXRleHQpO1xuXG4gICAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuICAgIC8vIC0tLSBNYWluOiBzdGFnZSAobGVmdCkgKyBwcmV2aWV3IHBhbmVsIChyaWdodCkgLS0tXG4gICAgLnFkbmFwcm8taWMtbWFpbiB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IHZhcigtLXMtNSwgMjBweCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgIC5xZG5hcHJvLWljLXN0YWdld3JhcCB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tcy0zLCAxMnB4KTtcbiAgICB9XG5cbiAgICAucWRuYXByby1pYy1zdGFnZSB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAyODBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1pYy1yYWRpdXMpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pYy1zdGFnZS1iZyk7XG4gICAgfVxuXG4gICAgLy8gQ3JvcHBlciByZXBsYWNlcyB0aGUgPGltZz4gd2l0aCAuY3JvcHBlci1jb250YWluZXI7IHRoZSBiYXJlIGltZ1xuICAgIC8vIGlzIG9ubHkgdmlzaWJsZSBmb3IgYSBibGluayBiZWZvcmUgaW5pdC5cbiAgICAucWRuYXByby1pYy1pbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIC0tLSBUb29sYmFyIC0tLVxuICAgIC5xZG5hcHJvLWljLXRvb2xiYXIge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLy8gLS0tIFNpZGUgcHJldmlldyBwYW5lbCAtLS1cbiAgICAucWRuYXByby1pYy1zaWRlIHtcbiAgICAgICAgZmxleDogMCAwIDIzMHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDIzMHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLXMtMywgMTJweCk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tcy01LCAyMHB4KTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1pYy1ib3JkZXIpO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1cblxuICAgIC5xZG5hcHJvLWljLXNpZGUtaGVhZGluZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWksIDYwMCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pYy1oZWFkaW5nKTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbiAgICB9XG5cbiAgICAucWRuYXByby1pYy1wcmV2aWV3cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tcy01LCAyMHB4KTtcbiAgICB9XG5cbiAgICAvLyBUaGUgZWxlbWVudCBDcm9wcGVyIHJlbmRlcnMgdGhlIGxpdmUgcHJldmlldyBpbnRvLiBBbHdheXMgY2xpcHMuXG4gICAgLnFkbmFwcm8taWMtcHJldmlldy10YXJnZXQge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pYy1wdXJwbGUtc29mdCk7XG4gICAgfVxuXG4gICAgLy8gLS0tIFN1cmZhY2VzIChhdmF0YXIgLyB1bml0IC8gbG9nbyk6IHJlYWwgcmVuZGVyIHNpemVzIC0tLVxuICAgIC5xZG5hcHJvLWljLXN1cmZhY2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXMtMywgMTJweCk7XG4gICAgfVxuICAgIC5xZG5hcHJvLWljLXN1cmZhY2UtdGFyZ2V0IHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1pYy1ib3JkZXIpO1xuICAgIH1cbiAgICAucWRuYXByby1pYy1zdXJmYWNlLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taWMtbXV0ZWQpO1xuICAgIH1cblxuICAgIC8vIC0tLSBEZXZpY2UgZnJhbWVzIChwcm9qZWN0IC8gZmxvdykgLS0tXG4gICAgLnFkbmFwcm8taWMtZGV2aWNlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgfVxuICAgIC5xZG5hcHJvLWljLWRldmljZS1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWljLW11dGVkKTtcbiAgICB9XG4gICAgLnFkbmFwcm8taWMtZGV2aWNlLWZyYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItdHJlZSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgIH1cbiAgICAucWRuYXByby1pYy1kZXZpY2UtdGFyZ2V0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMTYgLyA5OyAgICAgICAvLyBvdmVyd3JpdHRlbiBsaXZlIHRvIHRoZSBjcm9wIHJhdGlvXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICB9XG5cbiAgICAvLyBQaG9uZTogbmFycm93ZXIsIHRhbGwgcm91bmRlZCBib2R5IHdpdGggYSBub3RjaC5cbiAgICAucWRuYXByby1pYy1kZXZpY2UtcGhvbmUgLnFkbmFwcm8taWMtZGV2aWNlLWZyYW1lIHtcbiAgICAgICAgd2lkdGg6IDk2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggNnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICAgIC5xZG5hcHJvLWljLWRldmljZS1waG9uZSAucWRuYXByby1pYy1kZXZpY2UtZnJhbWU6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1cHg7IGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICB3aWR0aDogMjZweDsgaGVpZ2h0OiAzcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjE4KTtcbiAgICB9XG4gICAgLnFkbmFwcm8taWMtZGV2aWNlLXBob25lIC5xZG5hcHJvLWljLWRldmljZS10YXJnZXQgeyBib3JkZXItcmFkaXVzOiA2cHg7IH1cblxuICAgIC8vIFRhYmxldDogbWVkaXVtLlxuICAgIC5xZG5hcHJvLWljLWRldmljZS10YWJsZXQgLnFkbmFwcm8taWMtZGV2aWNlLWZyYW1lIHsgd2lkdGg6IDE1MHB4OyBib3JkZXItcmFkaXVzOiAxMnB4OyB9XG5cbiAgICAvLyBEZXNrdG9wOiBicm93c2VyIGNocm9tZSB3aXRoIHRocmVlIGRvdHMuXG4gICAgLnFkbmFwcm8taWMtZGV2aWNlLWRlc2t0b3AgLnFkbmFwcm8taWMtZGV2aWNlLWZyYW1lIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICAgIC5xZG5hcHJvLWljLWRldmljZS1kZXNrdG9wIC5xZG5hcHJvLWljLWRldmljZS1mcmFtZTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgMnB4IGF0IDlweCA4cHgsIHZhcigtLWMtZ3JleS0zMDApIDUwJSwgdHJhbnNwYXJlbnQgNTElKSxcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgMnB4IGF0IDE4cHggOHB4LCB2YXIoLS1jLWdyZXktMzAwKSA1MCUsIHRyYW5zcGFyZW50IDUxJSksXG4gICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIDJweCBhdCAyN3B4IDhweCwgdmFyKC0tYy1ncmV5LTMwMCkgNTAlLCB0cmFuc3BhcmVudCA1MSUpLFxuICAgICAgICAgICAgdmFyKC0tYy1ib3JkZXItc29mdC0yKTtcbiAgICB9XG4gICAgLnFkbmFwcm8taWMtZGV2aWNlLWRlc2t0b3AgLnFkbmFwcm8taWMtZGV2aWNlLXRhcmdldCB7IGJvcmRlci1yYWRpdXM6IDA7IH1cblxuICAgIC8vIC0tLSBGb290ZXI6IHdhcm5pbmcgKyBhY3Rpb25zIC0tLVxuICAgIC5xZG5hcHJvLWljLWZvb3RlciB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXMtNCwgMTZweCk7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXMtNCwgMTZweCk7XG4gICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1zLTQsIDE2cHgpO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0taWMtYm9yZGVyKTtcbiAgICB9XG4gICAgLnFkbmFwcm8taWMtd2FybmluZyB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pYy13YXJuLXRleHQpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pYy13YXJuLWJnKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0taWMtcmFkaXVzLXNtKTtcbiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgfVxuICAgIC5xZG5hcHJvLWljLXdhcm5pbmdbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAucWRuYXByby1pYy1hY3Rpb25zIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IHZhcigtLXMtMiwgOHB4KTtcbiAgICB9XG5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vICBTaGFwZSBtYXNrcyAtIGFwcGxpZWQgbGl2ZSB0byBDcm9wcGVyIGNocm9tZSArIHByZXZpZXdzXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAmLmlzLXNoYXBlLWNpcmNsZSB7XG4gICAgICAgIC5jcm9wcGVyLXZpZXctYm94LFxuICAgICAgICAuY3JvcHBlci1mYWNlIHsgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gICAgICAgIC5xZG5hcHJvLWljLXByZXZpZXctdGFyZ2V0IHsgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gICAgfVxuICAgICYuaXMtc2hhcGUtcm91bmRlZCB7XG4gICAgICAgIC5jcm9wcGVyLXZpZXctYm94LFxuICAgICAgICAuY3JvcHBlci1mYWNlIHsgYm9yZGVyLXJhZGl1czogMTJweDsgfVxuICAgICAgICAucWRuYXByby1pYy1zdXJmYWNlLXRhcmdldCB7IGJvcmRlci1yYWRpdXM6IDhweDsgfVxuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gIFJlYnJhbmQgQ3JvcHBlci5qcyBjaHJvbWUgZnJvbSBpdHMgZGVmYXVsdCBibHVlICgjMzlmKVxuICAgIC8vICB0byBRRE5BIHB1cnBsZSwgYW5kIHRoZSBkaW0gdG8gYnJhbmQgbmF2eS5cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC5jcm9wcGVyLXZpZXctYm94IHsgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWljLXB1cnBsZSk7IH1cbiAgICAuY3JvcHBlci1saW5lLFxuICAgIC5jcm9wcGVyLXBvaW50IHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWMtcHVycGxlKTsgfVxuICAgIC5jcm9wcGVyLXBvaW50LnBvaW50LXNlOjpiZWZvcmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pYy1wdXJwbGUpOyB9XG4gICAgLmNyb3BwZXItbW9kYWwgeyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pYy1kaW0pOyBvcGFjaXR5OiAxOyB9XG4gICAgLmNyb3BwZXItYmcgeyBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIFJlc3BvbnNpdmU6IHN0YWNrIHN0YWdlIGFib3ZlIHByZXZpZXcgcGFuZWwgb24gbmFycm93IG1vZGFsc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgICAucWRuYXByby1pYyAucWRuYXByby1pYy1tYWluIHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5xZG5hcHJvLWljIC5xZG5hcHJvLWljLXNpZGUge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0taWMtYm9yZGVyKTtcbiAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLXMtNCwgMTZweCk7XG4gICAgfVxuICAgIC5xZG5hcHJvLWljIC5xZG5hcHJvLWljLXByZXZpZXdzIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIFRoZSBkZWNsYXJhdGl2ZSB0cmlnZ2VyIGVsZW1lbnQgKHRodW1ibmFpbCArIGxhYmVsKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ucWRuYXByby1pbWFnZS1jcm9wLXRyaWdnZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mZiwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtLCA1MDApO1xuXG4gICAgLnFkbmFwcm8taW1hZ2UtY3JvcC10aHVtYiB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zZWNvbmRhcnktcHVycGxlLCAjZTZlOWZmKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gICAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBEYXJrIG1vZGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuW2RhdGEtdGhlbWUtZGFya10sXG5bZGF0YS10aGVtZT1cImRhcmtcIl0sXG5ib2R5W2RhdGEtdGhlbWU9XCJkYXJrXCJdIHtcbiAgICAucWRuYXByby1pYyB7XG4gICAgICAgIC0taWMtY2FyZDogICAgICB2YXIoLS1jLWdyZXktODAwLCAjMmUzMDM2KTtcbiAgICAgICAgLS1pYy1ib3JkZXI6ICAgIHZhcigtLWMtd2hpdGUtMTAsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCkpO1xuICAgICAgICAtLWljLXN0YWdlLWJnOiAgIzBjMGUxNjtcbiAgICAgICAgLS1pYy1wdXJwbGUtc29mdDogdmFyKC0tYy1ncmV5LTcwMCwgIzQwNDQ0ZCk7XG4gICAgfVxuICAgIC5xZG5hcHJvLWljIC5xZG5hcHJvLWljLWRldmljZS1mcmFtZSB7IGJhY2tncm91bmQ6ICMzYTNmNGQ7IH1cbiAgICAucWRuYXByby1pYyAucWRuYXByby1pYy1kZXZpY2UtZGVza3RvcCAucWRuYXByby1pYy1kZXZpY2UtZnJhbWU6OmJlZm9yZSB7IGJhY2tncm91bmQ6ICMyYjJmM2E7IH1cbn1cbiIsIi8vIF90eXBvZ3JhcGh5LnNjc3Ncbi8vXG4vLyBEZXNpZ24gc291cmNlIDogRmlnbWEgUUROQS1QUk8gKGZpbGVLZXkgTUUxSk15Mkw3MlBsRnIxbGVtZ29KWilcbi8vIENvbGxlY3Rpb25zICAgOiBQcmltaXRpdmVzIChmb250IHdlaWdodHMgLyBmYW1pbHkpICsgVHlwb2dyYXBoeSAoc2l6ZXMgLyBsaW5lLWhlaWdodHMpXG4vL1xuLy8gVGFyZ2V0ICAgICAgICA6IGJhY2tvZmZpY2UyL3Njc3MvdjEvbW9kdWxlcy9fdHlwb2dyYXBoeS5zY3NzXG4vLyAgICAgICAgICAgICAgICAgKGlmIGVlbiB0eXBvZ3JhcGh5IG1vZHVsZSBhbCBiZXN0YWF0OiBtZXJnZSBtZXQgZGV6ZSB3YWFyZGVzIOKAlFxuLy8gICAgICAgICAgICAgICAgICBkaXQgaXMgaGV0IHZvbGxlZGlnZSB0b2tlbi1vdmVyemljaHQgem9hbHMgaW4gRmlnbWEuKVxuLy9cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIExFR0VORFxuLy8gICBbRklHTUEgdmVyaWZpZWRdIOKAlCB3YWFyZGUgZGlyZWN0IHVpdCBlZW4gRmlnbWEgaW5zdGFuY2Ugb3BnZWhhYWxkLlxuLy8gICBBbGxlIHdhYXJkZXMgaW4gZGl0IGJlc3RhbmQgemlqbiB2ZXJpZmllZCAoSDEtSDYgdmlhIG5vZGUgMTAyNzoxMzQ0NykuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEZPTlQgRkFNSUxZXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRmb250LWZhbWlseS1wcmltYXJ5IDogXCJJbnRlclwiLCBzYW5zLXNlcmlmOyAgICAgICAgLy8gVHlwZS9Gb250IEZhbWlseS9wcmltYXJ5IFtGSUdNQSB2ZXJpZmllZF1cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBGT05UIFdFSUdIVFMgKGZyb20gUHJpbWl0aXZlcyBjb2xsZWN0aW9uKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kZm9udC13ZWlnaHQtcmVndWxhciAgIDogNDAwOyAgICAgICAgICAgICAgICAgICAgICAvLyBUeXBlL0ZvbnQgd2VpZ2h0L1JlZ3VsYXIgICAgW0ZJR01BIHZlcmlmaWVkXVxuJGZvbnQtd2VpZ2h0LW1lZGl1bSAgICA6IDUwMDsgICAgICAgICAgICAgICAgICAgICAgLy8gVHlwZS9Gb250IHdlaWdodC9NZWRpdW0gICAgIFtGSUdNQSB2ZXJpZmllZF1cbiRmb250LXdlaWdodC1zZW1pLWJvbGQgOiA2MDA7ICAgICAgICAgICAgICAgICAgICAgIC8vIFR5cGUvRm9udCB3ZWlnaHQvU2VtaSBib2xkICBbRklHTUEgdmVyaWZpZWRdXG4kZm9udC13ZWlnaHQtYm9sZCAgICAgIDogNzAwOyAgICAgICAgICAgICAgICAgICAgICAvLyBUeXBlL0ZvbnQgd2VpZ2h0L0JvbGQgICAgICAgW0ZJR01BIHZlcmlmaWVkXVxuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJPRFkgRk9OVCBTSVpFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kZm9udC1zaXplLWJvZHkteHMgIDogMTBweDsgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb250IHNpemUvQm9keS9leHRyYS1zbWFsbC0xMCAgIFtGSUdNQSB2ZXJpZmllZF1cbiRmb250LXNpemUtYm9keS1zbSAgOiAxMnB4OyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvbnQgc2l6ZS9Cb2R5L3NtYWxsLTEyICAgICAgICAgW0ZJR01BIHZlcmlmaWVkXVxuJGZvbnQtc2l6ZS1ib2R5LW1kICA6IDE0cHg7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9udCBzaXplL0JvZHkvSW50ZXItbWVkaXVtLTE0ICBbRklHTUEgdmVyaWZpZWRdXG4kZm9udC1zaXplLWJvZHktbGcgIDogMTZweDsgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb250IHNpemUvQm9keS9tZWRpdW0tMTYgICAgICAgIFtGSUdNQSB2ZXJpZmllZF1cbiRmb250LXNpemUtYm9keS14bCAgOiAyMHB4OyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvbnQgc2l6ZS9Cb2R5L2xhcmdlLTIwICAgICAgICAgW0ZJR01BIHZlcmlmaWVkXVxuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEhFQURJTkcgRk9OVCBTSVpFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4kZm9udC1zaXplLWhlYWRpbmctNiA6IDIwcHg7ICAgICAgICAgICAgICAgICAgICAgICAvLyBGb250IHNpemUvSGVhZGluZy9INiAgW0ZJR01BIHZlcmlmaWVkXVxuJGZvbnQtc2l6ZS1oZWFkaW5nLTUgOiAyNHB4OyAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9udCBzaXplL0hlYWRpbmcvSDUgIFtGSUdNQSB2ZXJpZmllZF1cbiRmb250LXNpemUtaGVhZGluZy00IDogMjhweDsgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvbnQgc2l6ZS9IZWFkaW5nL0g0ICBbRklHTUEgdmVyaWZpZWRdXG4kZm9udC1zaXplLWhlYWRpbmctMyA6IDMycHg7ICAgICAgICAgICAgICAgICAgICAgICAvLyBGb250IHNpemUvSGVhZGluZy9IMyAgW0ZJR01BIHZlcmlmaWVkXVxuJGZvbnQtc2l6ZS1oZWFkaW5nLTIgOiA0MHB4OyAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9udCBzaXplL0hlYWRpbmcvSDIgIFtGSUdNQSB2ZXJpZmllZF1cbiRmb250LXNpemUtaGVhZGluZy0xIDogNjBweDsgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvbnQgc2l6ZS9IZWFkaW5nL0gxICBbRklHTUEgdmVyaWZpZWRdXG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTElORSBIRUlHSFRTIOKAlCBCT0RZXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRsaW5lLWhlaWdodC1ib2R5LXNtYWxsICAgICAgICAgIDogMjBweDsgICAgICAgICAgIC8vIExpbmUgSGVpZ2h0L0JvZHkvQm9keSBTbWFsbCAgICAgICAgICAgIFtGSUdNQSB2ZXJpZmllZF1cbiRsaW5lLWhlaWdodC1ib2R5LW1lZGl1bSAgICAgICAgIDogMjRweDsgICAgICAgICAgIC8vIExpbmUgSGVpZ2h0L0JvZHkvQm9keSBNZWRpdW0gICAgICAgICAgIFtGSUdNQSB2ZXJpZmllZF1cbiRsaW5lLWhlaWdodC1ib2R5LW1lZGl1bS1jYXB0aW9uIDogMjRweDsgICAgICAgICAgIC8vIExpbmUgSGVpZ2h0L0JvZHkvQm9keSBNZWRpdW0tQ2FwdGlvbiAgIFtGSUdNQSB2ZXJpZmllZF1cbiRsaW5lLWhlaWdodC1ib2R5LWxhcmdlICAgICAgICAgIDogMzJweDsgICAgICAgICAgIC8vIExpbmUgSGVpZ2h0L0JvZHkvQm9keSBMYXJnZSAgICAgICAgICAgIFtGSUdNQSB2ZXJpZmllZF1cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMSU5FIEhFSUdIVFMg4oCUIEhFQURJTkdcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJGxpbmUtaGVpZ2h0LWhlYWRpbmctNiA6IDI0cHg7ICAgICAgICAgICAgICAgICAgICAgLy8gTGluZSBIZWlnaHQvSGVhZGluZy9oZWFkaW5nLTYgIFtGSUdNQSB2ZXJpZmllZF1cbiRsaW5lLWhlaWdodC1oZWFkaW5nLTUgOiAzNnB4OyAgICAgICAgICAgICAgICAgICAgIC8vIExpbmUgSGVpZ2h0L0hlYWRpbmcvaGVhZGluZy01ICBbRklHTUEgdmVyaWZpZWRdXG4kbGluZS1oZWlnaHQtaGVhZGluZy00IDogNDRweDsgICAgICAgICAgICAgICAgICAgICAvLyBMaW5lIEhlaWdodC9IZWFkaW5nL2hlYWRpbmctNCAgW0ZJR01BIHZlcmlmaWVkXVxuJGxpbmUtaGVpZ2h0LWhlYWRpbmctMyA6IDQ4cHg7ICAgICAgICAgICAgICAgICAgICAgLy8gTGluZSBIZWlnaHQvSGVhZGluZy9oZWFkaW5nLTMgIFtGSUdNQSB2ZXJpZmllZF1cbiRsaW5lLWhlaWdodC1oZWFkaW5nLTIgOiA1NnB4OyAgICAgICAgICAgICAgICAgICAgIC8vIExpbmUgSGVpZ2h0L0hlYWRpbmcvaGVhZGluZy0yICBbRklHTUEgdmVyaWZpZWRdXG4kbGluZS1oZWlnaHQtaGVhZGluZy0xIDogNzJweDsgICAgICAgICAgICAgICAgICAgICAvLyBMaW5lIEhlaWdodC9IZWFkaW5nL2hlYWRpbmctMSAgW0ZJR01BIHZlcmlmaWVkXVxuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFBBUkFHUkFQSCBTUEFDSU5HXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRwYXJhZ3JhcGgtc3BhY2luZy1ib2R5LW1lZGl1bSA6IDE2cHg7ICAgICAgICAgICAgIC8vIFBhcmFncmFwaCBTcGFjaW5nL0JvZHkvTWVkaXVtICAgW0ZJR01BIHZlcmlmaWVkXVxuJHBhcmFncmFwaC1zcGFjaW5nLWJvZHktbGFyZ2UgIDogMjBweDsgICAgICAgICAgICAgLy8gUGFyYWdyYXBoIFNwYWNpbmcvQm9keS9MYXJnZSAgICBbRklHTUEgdmVyaWZpZWRdXG4kcGFyYWdyYXBoLXNwYWNpbmctaGVhZGluZy0xICAgOiA0OHB4OyAgICAgICAgICAgICAvLyBQYXJhZ3JhcGggU3BhY2luZy9IZWFkaW5nL0gxICAgIFtGSUdNQSB2ZXJpZmllZF1cbiRwYXJhZ3JhcGgtc3BhY2luZy1oZWFkaW5nLTIgICA6IDQwcHg7ICAgICAgICAgICAgIC8vIFBhcmFncmFwaCBTcGFjaW5nL0hlYWRpbmcvSDIgICAgW0ZJR01BIHZlcmlmaWVkXVxuJHBhcmFncmFwaC1zcGFjaW5nLWhlYWRpbmctMyAgIDogMzZweDsgICAgICAgICAgICAgLy8gUGFyYWdyYXBoIFNwYWNpbmcvSGVhZGluZy9IMyAgICBbRklHTUEgdmVyaWZpZWRdXG4kcGFyYWdyYXBoLXNwYWNpbmctaGVhZGluZy00ICAgOiAzMnB4OyAgICAgICAgICAgICAvLyBQYXJhZ3JhcGggU3BhY2luZy9IZWFkaW5nL0g0ICAgIFtGSUdNQSB2ZXJpZmllZF1cbiRwYXJhZ3JhcGgtc3BhY2luZy1oZWFkaW5nLTUgICA6IDI4cHg7ICAgICAgICAgICAgIC8vIFBhcmFncmFwaCBTcGFjaW5nL0hlYWRpbmcvSDUgICAgW0ZJR01BIHZlcmlmaWVkXVxuJHBhcmFncmFwaC1zcGFjaW5nLWhlYWRpbmctNiAgIDogMjRweDsgICAgICAgICAgICAgLy8gUGFyYWdyYXBoIFNwYWNpbmcvSGVhZGluZy9INiAgICBbRklHTUEgdmVyaWZpZWRdXG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVEVYVCBTVFlMRSBNSVhJTlNcbi8vXG4vLyBEZXplIG1peGlucyByZWZsZWN0ZXJlbiAxLW9wLTEgZGUgRmlnbWEgdGV4dCBzdHlsZXMuIEdlYnJ1aWsgemUgaS5wLnYuXG4vLyBsb3NzZSBmb250LXNpemUgLyBsaW5lLWhlaWdodCBjYWxsczpcbi8vXG4vLyAgIC5teS1oZWFkaW5nIHsgQGluY2x1ZGUgdGV4dC1zdHlsZS1oZWFkZXItaDM7IH1cbi8vXG4vLyBEZSBuYW1lbiB2b2xnZW4gRmlnbWE6IEhlYWRlci9IMS4uSDYgZW4gQm9keS88d2VpZ2h0Pi88c2l6ZT4uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIC0tLS0gQmFzZSBib2R5IG1peGluIChzaGFyZWQpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gX2JvZHktYmFzZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1wcmltYXJ5O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xufVxuXG4vLyAtLS0tIEhlYWRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHRleHQtc3R5bGUtaGVhZGVyLWgxIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaS1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1oZWFkaW5nLTE7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1oZWFkaW5nLTE7XG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWhlYWRlci1oMiB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtaGVhZGluZy0yO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtaGVhZGluZy0yO1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1oZWFkZXItaDMge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pLWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWhlYWRpbmctMztcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWhlYWRpbmctMztcbn1cblxuQG1peGluIHRleHQtc3R5bGUtaGVhZGVyLWg0IHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaS1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1oZWFkaW5nLTQ7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1oZWFkaW5nLTQ7XG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWhlYWRlci1oNSB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtaGVhZGluZy01O1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtaGVhZGluZy01O1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1oZWFkZXItaDYge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pLWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWhlYWRpbmctNjtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWhlYWRpbmctNjtcbn1cblxuLy8gLS0tLSBCb2R5IC8gUmVndWxhciAod2VpZ2h0IDQwMCkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiB0ZXh0LXN0eWxlLWJvZHktcmVndWxhci14cyB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXJlZ3VsYXI7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHkteHM7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LXNtYWxsO1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1ib2R5LXJlZ3VsYXItc20ge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1yZWd1bGFyO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LXNtO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1zbWFsbDtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtYm9keS1yZWd1bGFyLW1kIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtcmVndWxhcjtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS1tZDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbWVkaXVtLWNhcHRpb247XG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWJvZHktcmVndWxhci1sZyB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXJlZ3VsYXI7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHktbGc7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LW1lZGl1bTtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtYm9keS1yZWd1bGFyLXhsIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtcmVndWxhcjtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS14bDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbGFyZ2U7XG59XG5cbi8vIC0tLS0gQm9keSAvIE1lZGl1bSAod2VpZ2h0IDUwMCkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gdGV4dC1zdHlsZS1ib2R5LW1lZGl1bS14cyB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW1lZGl1bTtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS14cztcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktc21hbGw7XG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWJvZHktbWVkaXVtLXNtIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbWVkaXVtO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LXNtO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1zbWFsbDtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtYm9keS1tZWRpdW0tbWQge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1tZWRpdW07XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHktbWQ7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LW1lZGl1bS1jYXB0aW9uO1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1ib2R5LW1lZGl1bS1sZyB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW1lZGl1bTtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS1sZztcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbWVkaXVtO1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1ib2R5LW1lZGl1bS14bCB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW1lZGl1bTtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS14bDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbGFyZ2U7XG59XG5cbi8vIC0tLS0gQm9keSAvIFNlbWktYm9sZCAod2VpZ2h0IDYwMCkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gdGV4dC1zdHlsZS1ib2R5LXNlbWlib2xkLXhzIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaS1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LXhzO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1zbWFsbDtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtYm9keS1zZW1pYm9sZC1zbSB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS1zbTtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktc21hbGw7XG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWJvZHktc2VtaWJvbGQtbWQge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pLWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHktbWQ7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LW1lZGl1bS1jYXB0aW9uO1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1ib2R5LXNlbWlib2xkLWxnIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaS1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LWxnO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1tZWRpdW07XG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWJvZHktc2VtaWJvbGQteGwge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pLWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHkteGw7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LWxhcmdlO1xufVxuXG4vLyAtLS0tIEJvZHkgLyBCb2xkICh3ZWlnaHQgNzAwKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHRleHQtc3R5bGUtYm9keS1ib2xkLXhzIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS14cztcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktc21hbGw7XG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWJvZHktYm9sZC1zbSB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHktc207XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LXNtYWxsO1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1ib2R5LWJvbGQtbWQge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LW1kO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1tZWRpdW0tY2FwdGlvbjtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtYm9keS1ib2xkLWxnIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS1sZztcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbWVkaXVtO1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1ib2R5LWJvbGQteGwge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LXhsO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1sYXJnZTtcbn1cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMSU5LIFRFWFQtU1RZTEVTXG4vL1xuLy8gQmVkb2VsZCB2b29yIGlubGluZSBsaW5rcyBkaWUgaW4gZWVuIGJvZHktcGFyYWdyYWFmIHZhbGxlbi4gTGluay1jb21wb25lbnRlblxuLy8gaGViYmVuIHBhZGRpbmc7IG9tIHRlIHZvb3Jrb21lbiBkYXQgem8nbiBjb21wb25lbnQgZGUgb21yaW5nZW5kZSBib2R5LXJlZ2VsXG4vLyBcIm9wIHonbiBnYXQgemV0XCIga3JpamdlbiBMaW5rLXN0eWxlcyBodW4gZWlnZW4gY2F0ZWdvcmllLlxuLy9cbi8vIFdhYXJkZXMgemlqbiBnZXNwaWVnZWxkIGFhbiBkZSBib2R5LXNjaGFhbCDigJQgYmVow6FsdmUgdHdlZSBwbGVra2VuIHdhYXIgZGVcbi8vIEZpZ21hLXRva2VuIGVlbiBhZndpamtlbmRlIGxpbmUtaGVpZ2h0IGhlZWZ0LiBEaWUgemlqbiBoaWVyIDEtb3AtMSBvdmVyZ2Vub21lblxuLy8gZW4gZ2VtYXJrZWVyZC4gWmllIGlubGluZSBub3Rlcy5cbi8vXG4vLyBOYWFtc2NoZW1hOiB0ZXh0LXN0eWxlLWxpbmstPHdlaWdodD4tPHNpemU+XG4vLyAgIHdlaWdodCA6IHJlZ3VsYXIgKDQwMCkgLyBzZW1pYm9sZCAoNjAwKSAvIGJvbGQgKDcwMClcbi8vICAgc2l6ZSAgIDogeHMgKDEwKSAvIHNtICgxMikgLyBtZCAoMTQpIC8gbGcgKDE2KSAvIHhsICgyMClcbi8vXG4vLyBOQjogRmlnbWEgaGVlZnQgdm9vciBkZXplIGdyb2VwIHJvbW1lbGlnZSB3ZXJrbmFtZW4gKG8uYS4gXCJMaW5rIEJvbGQodGhlXG4vLyByZWFsIGJvbGQpXCIgZW4gXCJNZWRpdW0tZXh0cmEgc21hbGwtbGlua1wiKSDigJQgS2ltIHJ1aW10IGRpZSBpbiBGaWdtYSBub2cgb3AuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIC0tLS0gTGluayAvIFJlZ3VsYXIgKHdlaWdodCA0MDApIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gdGV4dC1zdHlsZS1saW5rLXJlZ3VsYXIteHMge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1yZWd1bGFyO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LXhzO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1zbWFsbDsgICAgICAgICAgICAgIC8vIEZpZ21hOiBCb2R5L0xpbmsgcmVndWxhci9FeHRyYS1zbWFsbFxufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1saW5rLXJlZ3VsYXItc20ge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1yZWd1bGFyO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LXNtO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1zbWFsbDsgICAgICAgICAgICAgIC8vIEZpZ21hOiBCb2R5L0xpbmsgcmVndWxhci9TbWFsbC1saW5rXG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWxpbmstcmVndWxhci1tZCB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXJlZ3VsYXI7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHktbWQ7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LW1lZGl1bS1jYXB0aW9uOyAgICAgLy8gRmlnbWE6IEJvZHkvTGluayByZWd1bGFyL01lZGl1bS1jYXB0aW9uLWxpbmtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtbGluay1yZWd1bGFyLWxnIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtcmVndWxhcjtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS1sZztcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbWVkaXVtOyAgICAgICAgICAgICAvLyBGaWdtYTogQm9keS9MaW5rIHJlZ3VsYXIvbWVkaXVtLWxpbmtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtbGluay1yZWd1bGFyLXhsIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtcmVndWxhcjtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS14bDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbGFyZ2U7ICAgICAgICAgICAgICAvLyBGaWdtYTogQm9keS9MaW5rIHJlZ3VsYXIvbGFyZ2UtbGlua1xufVxuXG4vLyAtLS0tIExpbmsgLyBTZW1pLWJvbGQgKHdlaWdodCA2MDApIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHRleHQtc3R5bGUtbGluay1zZW1pYm9sZC14cyB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS14cztcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktc21hbGw7ICAgICAgICAgICAgICAvLyBGaWdtYTogQm9keS9MaW5rIFNlbWktYm9sZC9FeHRyYS1zbWFsbC1saW5rXG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWxpbmstc2VtaWJvbGQtc20ge1xuICAgIEBpbmNsdWRlIF9ib2R5LWJhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pLWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHktc207XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LXNtYWxsOyAgICAgICAgICAgICAgLy8gRmlnbWE6IEJvZHkvTGluayBTZW1pLWJvbGQvc21hbGwtbGlua1xufVxuXG4vLyBGaWdtYSBBRldJSktJTkc6IHRva2VuIGBCb2R5L0xpbmsgU2VtaS1ib2xkL0ludGVyLW1lZGl1bS1saW5rYCBpcyAxNCAvIDMyXG4vLyAoQm9keSBMYXJnZSkgaS5wLnYuIDE0IC8gMjQgKEJvZHkgTWVkaXVtLUNhcHRpb24pLiBLaW06IG1vZ2VsaWprIGludGVudGlvbmVlbFxuLy8gb20gaW5saW5lLWxpbmsgdmVpbGlnIHRlIGxhdGVuIHppdHRlbiBpbiBib2R5LCBtb2dlbGlqayByZXN0amUuIEhpZXIgMS1vcC0xXG4vLyBvdmVyZ2Vub21lbjsgcGFzIGFhbiBhbHMgS2ltL1NhbmRlciBhbmRlcnMgYmVzbHVpdGVuLlxuQG1peGluIHRleHQtc3R5bGUtbGluay1zZW1pYm9sZC1tZCB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS1tZDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbGFyZ2U7ICAgICAgICAgICAgICAvLyBbRklHTUEgdmVyaWZpZWQg4oCUIGFmd2lqa2VuZF1cbn1cblxuQG1peGluIHRleHQtc3R5bGUtbGluay1zZW1pYm9sZC1sZyB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS1sZztcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbWVkaXVtOyAgICAgICAgICAgICAvLyBGaWdtYTogQm9keS9MaW5rIFNlbWktYm9sZC9tZWRpdW0tbGlua1xufVxuXG5AbWl4aW4gdGV4dC1zdHlsZS1saW5rLXNlbWlib2xkLXhsIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaS1ib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1ib2R5LXhsO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYm9keS1sYXJnZTsgICAgICAgICAgICAgIC8vIEZpZ21hOiBCb2R5L0xpbmsgU2VtaS1ib2xkL2xhcmdlLWxpbmtcbn1cblxuLy8gLS0tLSBMaW5rIC8gQm9sZCAod2VpZ2h0IDcwMCkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZpZ21hIEFGV0lKS0lORzogYEJvZHkvTGluayBCb2xkL2V4dHJhLXNtYWxsYCBnZWJydWlrdCBsaW5lLWhlaWdodCAyNFxuLy8gKEJvZHkgTWVkaXVtLUNhcHRpb24pIGkucC52LiAyMCAoQm9keSBTbWFsbCkuIFplbGZkZSBjYXZlYXQgYWxzIGhpZXJib3Zlbi5cbkBtaXhpbiB0ZXh0LXN0eWxlLWxpbmstYm9sZC14cyB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHkteHM7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LW1lZGl1bS1jYXB0aW9uOyAgICAgLy8gW0ZJR01BIHZlcmlmaWVkIOKAlCBhZndpamtlbmRdXG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWxpbmstYm9sZC1zbSB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHktc207XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LXNtYWxsOyAgICAgICAgICAgICAgLy8gRmlnbWE6IEJvZHkvTGluayBCb2xkL1NtYWxsLWxpbmtcbn1cblxuQG1peGluIHRleHQtc3R5bGUtbGluay1ib2xkLW1kIHtcbiAgICBAaW5jbHVkZSBfYm9keS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYm9keS1tZDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJvZHktbWVkaXVtLWNhcHRpb247ICAgICAvLyBGaWdtYTogQm9keS9MaW5rIEJvbGQvSW50ZXItIE1lZGl1bS1saW5rXG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWxpbmstYm9sZC1sZyB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHktbGc7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LW1lZGl1bTsgICAgICAgICAgICAgLy8gRmlnbWE6IEJvZHkvTGluayBCb2xkL21lZGl1bS1saW5rXG59XG5cbkBtaXhpbiB0ZXh0LXN0eWxlLWxpbmstYm9sZC14bCB7XG4gICAgQGluY2x1ZGUgX2JvZHktYmFzZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJvZHkteGw7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1ib2R5LWxhcmdlOyAgICAgICAgICAgICAgLy8gRmlnbWE6IEJvZHkvTGluayBCb2xkL0xhcmdlLWxpbmtcbn1cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBVVElMSVRZIENMQVNTRVNcbi8vIE9wdGlvbmFsIOKAlCBvbmx5IGVtaXQgaWYganVsbGllIGRpdCBwYXRyb29uIGdlYnJ1aWtlbi4gQW5kZXJzOiBsYWF0IHdlZyBlblxuLy8gZ2VicnVpayBhbGxlZW4gZGUgbWl4aW5zIGhpZXJib3ZlbiBpbiBjb21wb25lbnQgU0NTUy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnRleHQtaDEgeyBAaW5jbHVkZSB0ZXh0LXN0eWxlLWhlYWRlci1oMTsgfVxuLnRleHQtaDIgeyBAaW5jbHVkZSB0ZXh0LXN0eWxlLWhlYWRlci1oMjsgfVxuLnRleHQtaDMgeyBAaW5jbHVkZSB0ZXh0LXN0eWxlLWhlYWRlci1oMzsgfVxuLnRleHQtaDQgeyBAaW5jbHVkZSB0ZXh0LXN0eWxlLWhlYWRlci1oNDsgfVxuLnRleHQtaDUgeyBAaW5jbHVkZSB0ZXh0LXN0eWxlLWhlYWRlci1oNTsgfVxuLnRleHQtaDYgeyBAaW5jbHVkZSB0ZXh0LXN0eWxlLWhlYWRlci1oNjsgfVxuXG4udGV4dC1ib2R5LXhzIHsgQGluY2x1ZGUgdGV4dC1zdHlsZS1ib2R5LXJlZ3VsYXIteHM7IH1cbi50ZXh0LWJvZHktc20geyBAaW5jbHVkZSB0ZXh0LXN0eWxlLWJvZHktcmVndWxhci1zbTsgfVxuLnRleHQtYm9keS1tZCB7IEBpbmNsdWRlIHRleHQtc3R5bGUtYm9keS1yZWd1bGFyLW1kOyB9XG4udGV4dC1ib2R5LWxnIHsgQGluY2x1ZGUgdGV4dC1zdHlsZS1ib2R5LXJlZ3VsYXItbGc7IH1cbi50ZXh0LWJvZHkteGwgeyBAaW5jbHVkZSB0ZXh0LXN0eWxlLWJvZHktcmVndWxhci14bDsgfVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1pbmJveC1tZXNzYWdlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBJbmJveCAvIG5vdGlmaWNhdGlvbiBsaXN0LXJvdy4gQ29tcG9zZXMgcWRuYXByby1hdmF0YXIgKyBxZG5hcHJvLXRhZ1xuLy8gICsgcWRuYXByby1pY29uLWJ0biArIHFkbmFwcm8taWNvbiDigJQgZG9lcyBOT1QgZHVwbGljYXRlIHRoZWlyIHN0eWxpbmcuXG4vL1xuLy8gIEZpZ21hIHNvdXJjZTogUUROQS1QUk8gbm9kZSA5NTY5OjI0MjI2NSAoXCJGcmFtZSAxMjVcIikuXG4vL1xuLy8gIFFETkEgdG9rZW5zIHVzZWQ6XG4vLyAgICBTdXJmYWNlL0J1dHRvbnMvU2Vjb25kYXJ5LXdoaXRlICAgICAgICAgICNmZmZmZmYgICBkZWZhdWx0IGJnXG4vLyAgICBTdXJmYWNlL0J1dHRvbnMvU3VidGxlLUhvdmVyICAgICAgICAgICAgICNmMGYxZjIgICBob3ZlciBiZyAobm90IHNlbGVjdGVkKVxuLy8gICAgU3VyZmFjZS9CdXR0b25zL1NlY29uZGFyeS1wdXJwbGUgICAgICAgICAjZTZlOWZmICAgc2VsZWN0ZWQgYmdcbi8vICAgIFN1cmZhY2UvQnV0dG9ucy9TZWNvbmRhcnktcHVycGxlLWhvdmVyICAgI2RhZGRmMiAgIHNlbGVjdGVkICsgaG92ZXJcbi8vICAgIFB1cnBsZS1IaWdobGlnaHQgICAgICAgICAgICAgICAgICAgICAgICAgIzQ2NTJmMyAgIHVucmVhZCBkb3QsIHVucmVhZCBzdWJqZWN0LCB1bnJlYWQgdGltZXN0YW1wXG4vLyAgICBCb3JkZXIvQWN0aW9uLVB1cnBsZS1PdXRsaW5lZCAgICAgICAgICAgICM0MDQ5OWEgICBmb2N1cyByaW5nICsgYm9va21hcmtlZCBpY29uXG4vLyAgICBQdXJwbGUtSGlnaGxpZ2h0IEAgMjUlICAgICAgICAgICAgICAgICAgIHJnYmEoNzAsODIsMjQzLDAuMjUpICBmb2N1cyBnbG93XG4vLyAgICBUZXh0L09uLUJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMwYjBiMGRcbi8vICAgIFRleHQvQm9keS1TZWNvbmRhcnkgICAgICAgICAgICAgICAgICAgICAgIzZiNzI4MCAgIHByZXZpZXcsIGR1ZS10aW1lLCBwYXBlcmNsaXBcbi8vICAgIFRleHQvT24tZGlzYWJsZWQgICAgICAgICAgICAgICAgICAgICAgICAgIzg5OGU5OVxuLy8gICAgU3BhY2luZy1YWFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0cHhcbi8vICAgIFNwYWNpbmctWFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOHB4XG4vLyAgICBSYWRpdXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhweFxuLy9cbi8vICBIb3Zlci1hY3Rpb25zIHZpc2liaWxpdHkgcmVjaXBlIChtYXRjaGVzIG5vdmEtaGlzdG9yeS1pdGVtKTpcbi8vICAgIC0gUGFwZXJjbGlwIGlzIGFsd2F5cyB2aXNpYmxlIE9GRi1ob3ZlciAod2hlbiBoYXMtYXR0YWNobWVudCArICFib29rbWFya2VkKVxuLy8gICAgLSBCb29rbWFyayArIGRlbGV0ZSBidXR0b25zIGZhZGUtaW4gb24gcm93IDpob3ZlciBvciA6Zm9jdXMtd2l0aGluXG4vLyAgICAtIFdoZW4gLmluYm94LW1lc3NhZ2UtYm9va21hcmtlZCBpcyBzZXQsIGJvb2ttYXJrIHN0YXlzIHZpc2libGUgQU5EXG4vLyAgICAgIHBhcGVyY2xpcCBpcyBoaWRkZW4gKGljb24tc2xvdCBpcyBcImNsYWltZWRcIiBieSB0aGUgcGVyc2lzdGVudCBib29rbWFyaylcbi8vXG4vLyAgTGF5b3V0OlxuLy8gICAgVGhlIGFjdGlvbnMgYXJlYSBoYXMgYSBmaXhlZCA0NHB4IHdpZHRoIHNvIHRoZSByb3cgbmV2ZXIgcmVmbG93c1xuLy8gICAgd2hlbiBpY29ucyBjcm9zcy1mYWRlLiBQYXBlcmNsaXAgKyBob3Zlci1idXR0b25zIGFyZSBhYnNvbHV0ZWx5XG4vLyAgICBwb3NpdGlvbmVkIG9uIHRvcCBvZiBlYWNoIG90aGVyIGluc2lkZSB0aGF0IDQ0cHggc2xvdC5cbi8vXG4vLyAgVXJnZW5jeSBtYXJrZXIgKGRlYWRsaW5lLXN0YXR1cyk6XG4vLyAgICBTYW1lIHR3byBjb2xvdXJzIHRoZSBiYWNrb2ZmaWNlIGluYm94IFBBR0UgYWxyZWFkeSBhcHBsaWVzIHZpYSBpdHNcbi8vICAgIG93biBgcWRuYXByby1pbmJveC1tZXNzYWdlW2RhdGEtZGVhZGxpbmUtc3RhdHVzPVwiLi4uXCJdYCBydWxlIHdpdGhcbi8vICAgICFpbXBvcnRhbnQgKGJhY2tvZmZpY2UyL3Njc3MvcGFydGlhbHMvX2luYm94LnNjc3MgfmxpbmUgNDQwLTQ0OSkuXG4vLyAgICBUaGF0IGR1cGxpY2F0aW9uIGlzIGRlbGliZXJhdGUgaGVyZSDigJQgZmxhZ2dlZCB0byB0aGUgbWFpbiBlbmdpbmVlclxuLy8gICAgdG8gZXZlbnR1YWxseSByZXRpcmUgdGhlIHBhZ2UgcnVsZSBpbiBmYXZvdXIgb2YgdGhpcyBjb21wb25lbnRcbi8vICAgIHZhcmlhbnQg4oCUIGFuZCBOT1QgcmVtb3ZlZCBieSB0aGlzIGZpbGUgKG91dCBvZiBzY29wZSwgcGFnZSBydWxlKS5cbi8vXG4vLyAgU2VsZWN0aW9uIGNoZWNrYm94IChzZWxlY3RhYmxlIC8gc2VsZWN0aW9uLW1vZGUpOlxuLy8gICAgQXZhdGFyICsgPHFkbmFwcm8tY2hlY2tib3g+IGJvdGggbGl2ZSBpbnNpZGUgb25lIGZpeGVkIDM0eDM0IHNsb3Rcbi8vICAgICguaW5ib3gtbWVzc2FnZS1hdmF0YXItc2xvdCksIGFic29sdXRlbHkgcG9zaXRpb25lZCBvbiB0b3Agb2YgZWFjaFxuLy8gICAgb3RoZXIuIENTUyBvbmx5IGV2ZXIgdG9nZ2xlcyBvcGFjaXR5IGJldHdlZW4gdGhlbSDigJQgdGhlIHNsb3QgYm94XG4vLyAgICBpdHNlbGYgbmV2ZXIgY2hhbmdlcyBzaXplLCBzbyBzd2FwcGluZyBjYW5ub3Qgc2hpZnQgdGhlIHJvdy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AdXNlIFwiLi4vdHlwb2dyYXBoeS90eXBvZ3JhcGh5XCIgYXMgKjtcblxuLy8gVXJnZW5jeS1tYXJrZXIgY29sb3VycyDigJQgbmFtZWQgdmFyaWFibGVzLCBub3QgbG9vc2UgaGV4LiBTZWUgbm90ZSBhYm92ZS5cbiRtc2ctZGVhZGxpbmUtb3ZlcmR1ZTogICNkOTMwMjU7ICAgLy8gcmVkXG4kbXNnLWRlYWRsaW5lLWR1ZS1zb29uOiAjZTg4MTBhOyAgIC8vIGFtYmVyXG5cbi5xZG5hcHJvLWluYm94LW1lc3NhZ2Uge1xuICAgIC0tbXNnLWJnOiAgICAgICAgICAjZmZmZmZmO1xuICAgIC0tbXNnLWJnLWhvdmVyOiAgICB2YXIoLS1jLWdyZXktNTApO1xuICAgIC0tbXNnLXRleHQ6ICAgICAgICB2YXIoLS1jLWdyZXktOTUwKTtcbiAgICAtLW1zZy10ZXh0LW11dGVkOiAgdmFyKC0tYy1ncmV5LTUwMCk7XG4gICAgLS1tc2ctYWNjZW50OiAgICAgIHZhcigtLWMtYWN0aW9uLTUwMCk7XG5cbiAgICAvLyBMb2NrIHRoZSBib3ggbW9kZWwgb24gdGhlIGhvc3QgQU5EIGV2ZXJ5IGRlc2NlbmRhbnQuIFdpdGhvdXQgdGhpc1xuICAgIC8vIHRoZSB3aWR0aC1jb2xsYXBzZSBhbmltYXRpb24gb24gdGhlIGFjdGlvbiBidXR0b25zIGNhbiBicmllZmx5XG4gICAgLy8gYnVtcCB0aGUgcm93IGhlaWdodCBkdXJpbmcgc3ViLXBpeGVsIGxheW91dCDigJQgc2FtZSBjb250ZW50LFxuICAgIC8vIHZpc3VhbGx5IDEtMnB4IHRhbGxlciBvbiBob3Zlci4gQm9yZGVyLWJveCBrZWVwcyBwYWRkaW5nL2JvcmRlclxuICAgIC8vIG91dCBvZiB0aGUgaGVpZ2h0IGNhbGMgc28gZGltZW5zaW9ucyBzdGF5IHN0YWJsZS5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICosICo6OmJlZm9yZSwgKjo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGdhcDogOHB4O1xuICAgIC8vIExpbmtzIDRweCBpbiBwbGFhdHMgdmFuIDhweDogZWVyc3RlIHNjaGFrZWwgdmFuIEtpbXMga2V0ZW5cbiAgICAvLyBcImZyYW1lLXJhbmQgLSA0cHggLSBib2xsZXRqZSAtIDRweCAtIGF2YXRhclwiICgyOS4wNy4yMDI2KS4gUmVjaHRzIGJsaWpmdCA4cHgsXG4gICAgLy8gd2FudCBkYWFyIHppdCBkZSB0aWpkIGVuIGRpZSBtb2V0IG5pZXQgdGVnZW4gZGUgcmFuZCBrcnVpcGVuLlxuICAgIHBhZGRpbmc6IDRweCA4cHggNHB4IDRweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbXNnLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tbXNnLXRleHQpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dDtcblxuICAgIC8vIDpub3QoLmluYm94LW1lc3NhZ2Utc3dpcGluZykg4oCUIHRoZSBzd2lwZSB3cmFwcGVyIGZvcmNlcyBpdHMgb3duXG4gICAgLy8gb3BhcXVlIGJhY2tncm91bmQgd2hpbGUgZHJhZ2dpbmcgKHNlZSB0aGUgc3dpcGUtc3RhdGUgYmxvY2sgYmVsb3cpO1xuICAgIC8vIGhvdmVyIG11c3Qgbm90IGZpZ2h0IGl0LlxuICAgICY6aG92ZXI6bm90KC5pbmJveC1tZXNzYWdlLXN3aXBpbmcpIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbXNnLWJnLWhvdmVyKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyAgU2VsZWN0ZWQg4oCUIGxpZ2h0LXB1cnBsZSBiZy4gSG92ZXIgZGFya2VucyB0byAtaG92ZXIgdG9rZW4uXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgJi5pbmJveC1tZXNzYWdlLXNlbGVjdGVkIHtcbiAgICAgICAgLS1tc2ctYmc6ICAgICAgICNlNmU5ZmY7XG4gICAgICAgIC0tbXNnLWJnLWhvdmVyOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gIEFjdGl2ZSDigJQgdGhlIHJvdyB3aG9zZSBtZXNzYWdlIGlzIE9QRU4gaW4gdGhlIGRldGFpbCBwYW5lLlxuICAgIC8vICBTYW1lIHB1cnBsZSBmaWxsIGFzIHNlbGVjdGVkLCBwbHVzIGEgYmFyIGRvd24gdGhlIGxlZnQgZWRnZVxuICAgIC8vICBzbyBpdCBzdGF5cyByZWFkYWJsZSBuZXh0IHRvIHRpY2tlZCByb3dzIGluIGEgdHdvLXBhbmVsXG4gICAgLy8gIGxheW91dDogcHVycGxlIGFsb25lIG1lYW5zIFwidGlja2VkXCIsIHB1cnBsZSArIGJhciBtZWFuc1xuICAgIC8vICBcInRoaXMgaXMgdGhlIG9uZSB5b3UgYXJlIHJlYWRpbmdcIi5cbiAgICAvL1xuICAgIC8vICBUaGUgYmFyIGlzIGFuIElOU0VUIGJveC1zaGFkb3cgYW5kIG5vdCBhIGJvcmRlciBvciBhXG4gICAgLy8gIDo6YmVmb3JlOiBhIGJvcmRlciB3b3VsZCBjaGFuZ2UgdGhlIGJveCBhbmQgc2hpZnQgdGhlXG4gICAgLy8gIGF2YXRhciAzcHgsIGFuZCA6OmJlZm9yZSBpcyBhbHJlYWR5IHNwb2tlbiBmb3IgZnVydGhlclxuICAgIC8vICBkb3duIHRoaXMgZmlsZS4gSW5zZXQgc2hhZG93IHBhaW50cyBpbnNpZGUgdGhlIGV4aXN0aW5nXG4gICAgLy8gIGJvcmRlci1yYWRpdXMgYW5kIGNvc3RzIG5vIGxheW91dC5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAmLmluYm94LW1lc3NhZ2UtYWN0aXZlIHtcbiAgICAgICAgLS1tc2ctYmc6ICAgICAgICNlNmU5ZmY7XG4gICAgICAgIC0tbXNnLWJnLWhvdmVyOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG5cbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgM3B4IDAgMCAwIHZhcigtLW1zZy1hY2NlbnQpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vICBGb2N1cyDigJQgY2Fub25pY2FsIFFETkEgUHJvIHJlY2lwZSAoc3RhY2tlZCBib3gtc2hhZG93KS5cbiAgICAvLyAgTm8gb3V0bGluZTsgcmluZyBhdCAwLTJweCwgZ2xvdyBhdCAyLTZweC5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAmOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuICAgICY6Zm9jdXMtdmlzaWJsZSxcbiAgICAmLmZvcmNlLWZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgIDAgMCAwIDJweCB2YXIoLS1jLXB1cnBsZS01MDApLCAgICAgICAgICAgICAgICAgIC8vIHJpbmdcbiAgICAgICAgICAgIDAgMCAwIDZweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTsgIC8vIGdsb3cgYmFuZFxuICAgIH1cblxuICAgIC8vIEZvY3VzIGFuZCBhY3RpdmUgYm90aCBwYWludCB3aXRoIGJveC1zaGFkb3csIGFuZCBvbmUgcHJvcGVydHkgY2FuIG9ubHlcbiAgICAvLyBob2xkIG9uZSB2YWx1ZSDigJQgc28gYW4gYWN0aXZlIHJvdyB0aGF0IHRha2VzIGZvY3VzIHdvdWxkIGxvc2UgaXRzIGxlZnRcbiAgICAvLyBiYXIuIFN0YWNrIHRoZSB0d28gaW5zdGVhZCBvZiBsZXR0aW5nIHRoZSBsYXRlciBydWxlIHdpbi5cbiAgICAmLmluYm94LW1lc3NhZ2UtYWN0aXZlOmZvY3VzLXZpc2libGUsXG4gICAgJi5pbmJveC1tZXNzYWdlLWFjdGl2ZS5mb3JjZS1mb2N1cyB7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICBpbnNldCAzcHggMCAwIDAgdmFyKC0tbXNnLWFjY2VudCksXG4gICAgICAgICAgICAwIDAgMCAycHggdmFyKC0tYy1wdXJwbGUtNTAwKSxcbiAgICAgICAgICAgIDAgMCAwIDZweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyAgTGVhZCBjb2x1bW4g4oCUIHVucmVhZCBkb3QgKyBhdmF0YXJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBLaW0gMjkuMDcuMjAyNiwgbmEgaGFhciB0b2VzdGVsdGVzdDogXCJlciBpcyB0ZSB2ZWVsIHJ1aW10ZSBnZXJlc2VydmVlcmQgdm9vclxuICAgIC8vIGhldCBibGF1d2UgdW5yZWFkIGJvbGxldGplLCBhbHMgaGlqIGVyIG5pZXQgaXMgZGFuIGlzIGVyIGVlbiB0ZSBncm90ZSBydWltdGUsXG4gICAgLy8gZGF0IGlzIHpvbmRlXCIuIEdldnJhYWdkZSBrZXRlbjogZnJhbWUtcmFuZCAtIDRweCAtIGJvbGxldGplIC0gNHB4IC0gYXZhdGFyLlxuICAgIC8vXG4gICAgLy8gV2F0IGVyIHN0b25kIGVuIHdhYXJvbSBoZXQgcnVpbXRlIGtvc3R0ZTogYHdpZHRoOiA1MHB4YCBtZXRcbiAgICAvLyBganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZGAuIEVlbiB2YXN0ZSBrb2xvbSBkdXMsIG1ldCBkZSBhdmF0YXIgcmVjaHRzXG4gICAgLy8gdWl0Z2VsaWpuZC4gTcOpdCBib2xsZXRqZSBpcyBkZSBpbmhvdWQgOCArIDQgKyAzNCA9IDQ2cHgsIG1hYXIgWk9OREVSIGJvbGxldGplXG4gICAgLy8gc3RhYXQgZXIgYWxsZWVuIGVlbiBhdmF0YXIgdmFuIDM0cHggaW4gZWVuIGtvbG9tIHZhbiA1MCwgZW4gZGllIDE2cHggbGlua3NcbiAgICAvLyBibGV2ZW4gZ2V3b29uIGxlZWcuIE9wZ2V0ZWxkIGJpaiBkZSA4cHggcmlqLXBhZGRpbmcgc3RvbmQgZGUgYXZhdGFyIDI0cHggdmFuXG4gICAgLy8gZGUgcmFuZC5cbiAgICAvL1xuICAgIC8vIE51OiBnZWVuIHZhc3RlIGJyZWVkdGUgbWVlciwgZHVzIGRlIGtvbG9tIGtyaW1wdCBtZWUgYWxzIGhldCBib2xsZXRqZSBlciBuaWV0XG4gICAgLy8gaXMuIGBmbGV4LXN0YXJ0YCBpbiBwbGFhdHMgdmFuIGBmbGV4LWVuZGAsIHdhbnQgdWl0bGlqbmVuIG9wIHJlY2h0cyBoZWVmdCBnZWVuXG4gICAgLy8gYmV0ZWtlbmlzIG1lZXIgem9kcmEgZGUgYnJlZWR0ZSBkZSBpbmhvdWQgdm9sZ3QuXG4gICAgLy9cbiAgICAvLyBWQVNURSBicmVlZHRlLCBlbiBkYXQgaXMgS2ltcyBiZXNsdWl0IHZhbiAyOS4wNy4yMDI2IG5hIGhldCB6aWVuIHZhbiBoZXRcbiAgICAvLyBhbHRlcm5hdGllZi4gRWVuIG1lZWJld2VnZW5kZSBrb2xvbSB3b24gZGllIHJ1aW10ZSB3ZWwgdGVydWcsIG1hYXIgZGFuIHN0YWF0IGRlXG4gICAgLy8gYXZhdGFyIHZhbiBlZW4gT05HRUxFWkVOIHJpaiAxMnB4IHZlcmRlciBuYWFyIHJlY2h0cyBkYW4gZGllIHZhbiBlZW4gZ2VsZXplblxuICAgIC8vIHJpaiwgZW4gZGFuIGlzIGRlIGxpbmtlcnJhbmQgdmFuIGRlIGxpanN0IG5pZXQgcmVjaHQgbWVlci4gSW4gZWVuIGJlcmljaHRlbmxpanN0XG4gICAgLy8gbGVlc3QgZGF0IGFscyBlZW4gZm91dC5cbiAgICAvL1xuICAgIC8vIDQ2cHggaXMgcHJlY2llcyBkZSBpbmhvdWQ6IDggKGJvbGxldGplKSArIDQgKGdhdCkgKyAzNCAoYXZhdGFyKS4gTWV0XG4gICAgLy8gYGZsZXgtZW5kYCBsZXZlcnQgZGF0IEtpbXMga2V0ZW4gRU4gdWl0bGlqbmluZyBvcCwgaW4gw6nDqW4gbWFhdDpcbiAgICAvLyAgIG9uZ2VsZXplbjogcmFuZCA0IC0+IGJvbGxldGplIG9wIDQgLT4gZ2F0IDQgLT4gYXZhdGFyIG9wIDE2XG4gICAgLy8gICBnZWxlemVuICA6IHJhbmQgNCAtPiBnZWVuIGJvbGxldGplIC0+IGF2YXRhciByZWNodHMgdWl0Z2VsaWpuZCwgb29rIG9wIDE2XG4gICAgLy8gRGUgb3VkZSB3YWFyZGUgd2FzIDUwcHgsIGVuIGRhdCBpcyB3YWFyIGRlIGtsYWNodCB2YW5kYWFuIGt3YW06IDRweCB0ZSBicmVlZCxcbiAgICAvLyBwbHVzIDhweCByaWotcGFkZGluZyBpbiBwbGFhdHMgdmFuIDQsIGR1cyBkZSBhdmF0YXIgc3RvbmQgMjRweCB2YW4gZGUgcmFuZC5cbiAgICAvLyBOZXR0byB3aW5zdCA4cHggb3AgZWxrZSByaWosIG1ldCBlZW4gcmVjaHRlIHJhbmQuXG4gICAgLmluYm94LW1lc3NhZ2UtbGVhZCB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gICAgICAgIHdpZHRoOiA0NnB4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cbiAgICAuaW5ib3gtbWVzc2FnZS11bnJlYWQtZG90IHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxM3B4OyAgICAgICAgICAgICAgICAgICAgICAgLy8gdmlzdWFsbHkgY2VudGVycyBhZ2FpbnN0IDM0cHggYXZhdGFyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbXNnLWFjY2VudCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gIEF2YXRhciBzdGF0dXMgaW5kaWNhdG9yIChsb3dlci1yaWdodCBjaXJjbGUgKyBpY29uKVxuICAgIC8vICBPbmx5IHJlbmRlcmVkIGZvciBjZXJ0YWluIHN0YXR1c2VzIChzZWUgQVZBVEFSX1NUQVRVUyBpbiBKUykuXG4gICAgLy8gIFRoZSB3cmFwcGVyIG9ubHkgZXhpc3RzIHdoZW4gYSBiYWRnZSBpcyBwcmVzZW50LCBzbyB1bmJhZGdlZFxuICAgIC8vICBhdmF0YXJzIGFyZSB1bmFmZmVjdGVkLlxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC5pbmJveC1tZXNzYWdlLWF2YXRhci13cmFwIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuICAgIC5pbmJveC1tZXNzYWdlLWF2YXRhci1zdGF0dXMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAtM3B4O1xuICAgICAgICBib3R0b206IC0zcHg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXG4gICAgICAgIC8vIEVhY2ggc3RhdHVzIGlzIG9uZSBvZiBLaW0ncyBzZWxmLWNvbnRhaW5lZCBTVkdzIOKAlCB0aGUgd2hpdGUgb3V0bGluZVxuICAgICAgICAvLyBpcyBiYWtlZCBpbnRvIHRoZSBhc3NldCwgc28gbm8gQ1NTIHJpbmcvZmlsdGVyIGhlcmUuIEJveCBzaXplcyBhcmVcbiAgICAgICAgLy8gdHVuZWQgcGVyIGljb24gYXNwZWN0IHNvIHRoZXkgcmVhZCBhdCBhIGNvbnNpc3RlbnQgfjIwcHguXG4gICAgICAgICYuaXMtaW4tcHJvZ3Jlc3MgeyB3aWR0aDogMTdweDsgaGVpZ2h0OiAyMXB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2ltZy9pbmJveC1zdGF0dXMvaG91cmdsYXNzLnN2Zyk7IH1cbiAgICAgICAgJi5pcy1jb21wbGV0ZWQgICB7IHdpZHRoOiAyMXB4OyBoZWlnaHQ6IDIwcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgvaW1nL2luYm94LXN0YXR1cy9jaGVjay5zdmcpOyB9XG4gICAgICAgICYuaXMtb3ZlcmR1ZSAgICAgeyB3aWR0aDogMjJweDsgaGVpZ2h0OiAxOXB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2ltZy9pbmJveC1zdGF0dXMvd2FybmluZy1yZWQuc3ZnKTsgfVxuICAgICAgICAvLyBFeHRyYSBpY29ucyBpbiB0aGUgc2V0IOKAlCBhdmFpbGFibGUsIG5vdCBhdXRvLXNldCBieSB0aGUgaW5ib3ggeWV0LlxuICAgICAgICAmLmlzLWR1ZS1zb29uICAgIHsgd2lkdGg6IDIycHg7IGhlaWdodDogMTlweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9pbWcvaW5ib3gtc3RhdHVzL3dhcm5pbmcteWVsbG93LnN2Zyk7IH1cbiAgICAgICAgJi5pcy1yZW1pbmRlciAgICB7IHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDIxcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgvaW1nL2luYm94LXN0YXR1cy9iZWxsLnN2Zyk7IH1cbiAgICAgICAgJi5pcy1zY2hlZHVsZWQgICB7IHdpZHRoOiAyMXB4OyBoZWlnaHQ6IDIwcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgvaW1nL2luYm94LXN0YXR1cy90aW1lci5zdmcpOyB9XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gIE1haW4gY29sdW1uIOKAlCB0aHJlZSByb3dzICsgb3B0aW9uYWwgdGFncyByb3dcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBDb21wYWN0IHJlY2lwZTogaW4gdGhpcyBjb21wb25lbnQgY29udGV4dCB0aGUgZ2xvYmFsIHR5cG9ncmFwaHlcbiAgICAvLyBsaW5lLWhlaWdodHMgKDE0LzI0LCAxMi8yMCkgcmVhZCB0b28gYWlyeS4gRmlnbWEgdXNlcyBnYXA6IC0yIHRvXG4gICAgLy8gcHVsbCB0aGUgcm93cyB0b2dldGhlci4gQ1NTIGdhcCBjYW4ndCBnbyBuZWdhdGl2ZSwgc28gd2Ugc2V0XG4gICAgLy8gZ2FwOiAwIGhlcmUgYW5kIGFwcGx5IG1hcmdpbi10b3A6IC0ycHggb24gcm93cyAyLzMg4oCUIHRoZVxuICAgIC8vIGxpbmUtaGVpZ2h0cyBoYXZlIH41cHggb2YgaGFsZi1sZWFkaW5nIHBlciByb3csIHNvIGEgLTJweCBudWRnZVxuICAgIC8vIHRpZ2h0ZW5zIHZpc3VhbCByaHl0aG0gd2l0aG91dCBiYXNlbGluZSBvdmVybGFwLlxuICAgIC5pbmJveC1tZXNzYWdlLW1haW4ge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDA7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwO1xuICAgIH1cblxuICAgIC8vIC0tLS0gUm93IDE6IHNlbmRlciArIGFjdGlvbnMgLS0tLVxuICAgIC5pbmJveC1tZXNzYWdlLXJvdy0xIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgfVxuICAgIC5pbmJveC1tZXNzYWdlLXNlbmRlciB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc3R5bGUtYm9keS1ib2xkLW1kOyAgICAgICAvLyBib2xkIGJ5IGRlZmF1bHQ7IG9wZW5lZCBvdmVycmlkZXNcbiAgICAgICAgY29sb3I6IHZhcigtLW1zZy10ZXh0KTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICAgIC8vIE9wZW5lZCAoPSByZWFkKSDihpIgbWVkaXVtIHdlaWdodCBpbnN0ZWFkIG9mIGJvbGRcbiAgICAmOm5vdCguaW5ib3gtbWVzc2FnZS11bnJlYWQpIC5pbmJveC1tZXNzYWdlLXNlbmRlciB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc3R5bGUtYm9keS1tZWRpdW0tbWQ7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBBY3Rpb25zIGNsdXN0ZXIgKHBhcGVyY2xpcCArIGJvb2ttYXJrICsgZGVsZXRlIGluIGZsZXgtcm93KSAtLS0tXG4gICAgLy8gV2lkdGgtY29sbGFwc2UgYW5pbWF0aW9uIOKAlCBjb3BpZWQgZnJvbSBxZG5hcHJvLWhpc3RvcnktaXRlbS4gRGVmYXVsdFxuICAgIC8vIHN0YXRlOiBwYXBlcmNsaXAgdmlzaWJsZSBhdCAyMHB4LCBib29rbWFyayArIGRlbGV0ZSBjb2xsYXBzZWQgdG9cbiAgICAvLyB3aWR0aCAwLiBPbiBob3Zlci9mb2N1cy13aXRoaW46IHBhcGVyY2xpcCBjb2xsYXBzZXMgdG8gd2lkdGggMCxcbiAgICAvLyBidXR0b25zIGV4cGFuZCB0byB3aWR0aCAyNHB4LiBUaGUgZGVsZXRlLWJ1dHRvbiBwaWNrcyB1cCBhIDRweFxuICAgIC8vIG1hcmdpbi1sZWZ0IG9ubHkgd2hlbiBleHBhbmRlZCBzbyB0aGUgY2x1c3RlciBzaXRzIGZsdXNoIGluIHRoZVxuICAgIC8vIGNvcm5lciB3aGVuIG9ubHkgdGhlIGJvb2ttYXJrIGlzIHZpc2libGUgKD0gYm9va21hcmtlZC1zdGF0ZSkuXG4gICAgLmluYm94LW1lc3NhZ2UtYWN0aW9ucyB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aWdodCBjbHVzdGVyIOKAlCBzZWUgbWFyZ2luLWxlZnQgcnVsZVxuICAgIH1cbiAgICAuaW5ib3gtbWVzc2FnZS1wYXBlcmNsaXAge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIG1heC13aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1tc2ctdGV4dC1tdXRlZCk7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBtYXgtd2lkdGggMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggICAgIDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgICAxNTBtcyBlYXNlO1xuICAgIH1cbiAgICAvLyBGb3J3YXJkZWQtaW5kaWNhdG9yOiB2ZXJwbGFhdHN0IHVpdCByb3ctMSBuYWFyIGhpZXIsIG5hYXN0IGRlIHZsYWcgKEtpbSAzMS4wNy4yMDI2KVxuICAgIC8vIC0gemllIGRlIHRvZWxpY2h0aW5nIGluIHFkbmEtaW5ib3gtbWVzc2FnZS5qcy4gWmVsZmRlIGtyaW1wLWlkaW9vbSBhbHMgZGUgcGFwZXJjbGlwXG4gICAgLy8gaGllcmJvdmVuLCBtZXQgw6nDqW4gdmVyc2NoaWw6IHBvaW50ZXItZXZlbnRzIEJMSUpGVCBhdXRvLCB3YW50IGFuZGVycyB3ZXJrdCBkZVxuICAgIC8vIGhvdmVyLXRvb2x0aXAgKFwiRG9vcmdlc3R1dXJkXCIpIG5pZXQuXG4gICAgLmluYm94LW1lc3NhZ2UtZm9yd2FyZGVkIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBjb2xvcjogdmFyKC0tbXNnLXRleHQtbXV0ZWQpO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgdHJhbnNpdGlvbjogbWF4LXdpZHRoIDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoICAgICAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5ICAgMTUwbXMgZWFzZTtcbiAgICB9XG4gICAgLmluYm94LW1lc3NhZ2UtYm9va21hcmssXG4gICAgLmluYm94LW1lc3NhZ2UtZGVsZXRlIHtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgbWF4LXdpZHRoOiAwO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogbWF4LXdpZHRoICAgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggICAgICAgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoICAgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eSAgICAgMTUwbXMgZWFzZSxcbiAgICAgICAgICAgICAgICAgICAgY29sb3IgICAgICAgMTIwbXMgZWFzZS1vdXQ7XG4gICAgfVxuICAgIC5pbmJveC1tZXNzYWdlLWRlbGV0ZSB7IG1hcmdpbi1sZWZ0OiAwOyB9XG5cbiAgICAvLyBPbiBob3Zlci9mb2N1cy13aXRoaW46IHBhcGVyY2xpcCB3aWR0aC1jb2xsYXBzZXMsIGJvdGggYnV0dG9uc1xuICAgIC8vIHdpZHRoLWV4cGFuZC4gRGVsZXRlIHBpY2tzIHVwIGl0cyA0cHggbWFyZ2luLWxlZnQgc28gaXQgc2l0c1xuICAgIC8vIDRweCBmcm9tIHRoZSBib29rbWFyayAobWF0Y2hlcyBxZG5hcHJvLWhpc3RvcnktaXRlbSByZWNpcGUpLlxuICAgIC8vIDpub3QoLmluYm94LW1lc3NhZ2Utc3dpcGluZykg4oCUIHN3aXBlIHN0YXRlIHN1cHByZXNzZXMgdGhlc2VcbiAgICAvLyBob3Zlci1vbmx5IHJldmVhbHMgZW50aXJlbHkgKHNlZSB0aGUgc3dpcGUtc3RhdGUgYmxvY2sgYmVsb3cpLlxuICAgIC8vIC5pbmJveC1tZXNzYWdlLWZvcndhcmRlZCBzdGFhdCBoaWVyIEJFV1VTVCBOSUVUIGJpaiAoS2ltIDMxLjA3LjIwMjY6IFwiYWxzIGlrIG92ZXJcbiAgICAvLyBkZSBtZXNzYWdlIGhvdmVyIGRhbiB2ZXJkd2lqbnQgZGUgaWNvblwiKS4gSGlqIGtyb21wIGVlcnN0IG1lZSBtZXQgZGUgcGFwZXJjbGlwIG9tXG4gICAgLy8gcGxhYXRzIHRlIG1ha2VuIHZvb3IgZGUga25vcHBlbiwgZW4gZGF0IGlzIHByZWNpZXMgdmVya2VlcmQgb206IGVlbiBwYXBlcmNsaXAgemVndFxuICAgIC8vIFwiZXIgaGFuZ3QgaWV0cyBhYW5cIiBlbiBkYXQga3VuIGplIGluIGRlIGdlb3BlbmRlIG1haWwgYWxzbm9nIHppZW4sIG1hYXIgb2YgamUgZWVuXG4gICAgLy8gYmVyaWNodCBoZWJ0IGRvb3JnZXN0dXVyZCBpcyBlZW4gU1RBTkQgZGllIG5lcmdlbnMgYW5kZXJzIGluIGRlIGxpanN0IHN0YWF0LiBFZW5cbiAgICAvLyBzdGFuZCBkaWUgdmVyZHdpam50IHpvZHJhIGplIGhlbSB3aWx0IGJla2lqa2VuIGlzIGdlZW4gc3RhbmQuIERlIGhvZWsgd29yZHQgZGFhcmRvb3JcbiAgICAvLyAyMHB4IGJyZWRlciB0aWpkZW5zIGhvdmVyOyBkYXQgZ2FhdCBhZiB2YW4gZGUgYWZ6ZW5kZXJuYWFtLCBkaWUgdG9jaCBhbCBhZmthcHQuXG4gICAgJjpob3Zlcjpub3QoLmluYm94LW1lc3NhZ2Utc3dpcGluZykgLmluYm94LW1lc3NhZ2UtcGFwZXJjbGlwLFxuICAgICY6Zm9jdXMtd2l0aGluOm5vdCguaW5ib3gtbWVzc2FnZS1zd2lwaW5nKSAuaW5ib3gtbWVzc2FnZS1wYXBlcmNsaXAge1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgbWF4LXdpZHRoOiAwO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICAmOmhvdmVyOm5vdCguaW5ib3gtbWVzc2FnZS1zd2lwaW5nKSAuaW5ib3gtbWVzc2FnZS1ib29rbWFyayxcbiAgICAmOmhvdmVyOm5vdCguaW5ib3gtbWVzc2FnZS1zd2lwaW5nKSAuaW5ib3gtbWVzc2FnZS1kZWxldGUsXG4gICAgJjpmb2N1cy13aXRoaW46bm90KC5pbmJveC1tZXNzYWdlLXN3aXBpbmcpIC5pbmJveC1tZXNzYWdlLWJvb2ttYXJrLFxuICAgICY6Zm9jdXMtd2l0aGluOm5vdCguaW5ib3gtbWVzc2FnZS1zd2lwaW5nKSAuaW5ib3gtbWVzc2FnZS1kZWxldGUge1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgbWluLXdpZHRoOiAyNHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDI0cHg7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIH1cbiAgICAmOmhvdmVyOm5vdCguaW5ib3gtbWVzc2FnZS1zd2lwaW5nKSAuaW5ib3gtbWVzc2FnZS1kZWxldGUsXG4gICAgJjpmb2N1cy13aXRoaW46bm90KC5pbmJveC1tZXNzYWdlLXN3aXBpbmcpIC5pbmJveC1tZXNzYWdlLWRlbGV0ZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gIEJvb2ttYXJrZWQg4oCUIHBlcnNpc3RlbnQgcHVycGxlIGJvb2ttYXJrIGljb24sIHBhcGVyY2xpcCBoaWRkZW4uXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQm9va21hcmtlZDogcGFwZXJjbGlwIGNvbGxhcHNlZCwgYm9va21hcmsgc3RheXMgZXhwYW5kZWQgKyBwdXJwbGUuXG4gICAgLy8gRGVsZXRlIHJlbWFpbnMgY29sbGFwc2VkIG9mZi1ob3ZlciAobWF0Y2hlcyBoaXN0b3J5LWl0ZW0tcGlubmVkKS5cbiAgICAvLyBMRVQgT1A6IC5pbmJveC1tZXNzYWdlLWZvcndhcmRlZCBob29ydCBoaWVyIGJld3VzdCBOSUVUIGJpai4gS2ltcyB2b29yYmVlbGQgaXMgZWVuXG4gICAgLy8gYmVyaWNodCBkYXQgYWxsZWJlaSBpczogZ2V2bGFnZCDDqW4gZG9vcmdlc3R1dXJkLCBlbiBkYW4gbW9ldGVuIGJlaWRlIHN0YXR1cy1nbHlwaHNcbiAgICAvLyBzYW1lbiB6aWNodGJhYXIgYmxpanZlbiDigJQgYWxsZWVuIGRlIHBhcGVyY2xpcCBrbGFwdCBoaWVyIHBlcm1hbmVudCB3ZWcsIGRlXG4gICAgLy8gZG9vcmdlc3R1dXJkLWdseXBoIG5pZXQuIFtLaW0sIDMxLjA3LjIwMjZdXG4gICAgJi5pbmJveC1tZXNzYWdlLWJvb2ttYXJrZWQge1xuICAgICAgICAuaW5ib3gtbWVzc2FnZS1wYXBlcmNsaXAge1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDA7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgICAgIC5pbmJveC1tZXNzYWdlLWJvb2ttYXJrIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLW1zZy1hY2NlbnQpOyAgICAgICAgICAgLy8gUHVycGxlLUhpZ2hsaWdodCAjNDY1MmYzIChsaWdodCkgLyAjYTVhY2ZmIChkYXJrKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gIE5hdmlnYXRlIHZhcmlhbnQg4oCUIHNpbmdsZSBjaGV2cm9uLXJpZ2h0IGJ1dHRvbiB2ZXJ0aWNhbGx5XG4gICAgLy8gIGNlbnRlcmVkIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSByb3cuIFRoZSBjaGV2cm9uIGlzXG4gICAgLy8gIHBvc2l0aW9uOmFic29sdXRlIChvdXQgb2YgdGhlIGZsZXggZmxvdykgc28gcmV2ZWFsaW5nIGl0XG4gICAgLy8gIGRvZXNuJ3QgY2hhbmdlIHRoZSBtYWluIGNvbHVtbidzIHdpZHRoLiBPbiBob3ZlciB0aGVcbiAgICAvLyAgcmlnaHQtYWxpZ25lZCBpbmZvIGluc2lkZSBtYWluICh0aW1lc3RhbXAgKyBkdWUtdGltZSkgb25seVxuICAgIC8vICBmYWRlcyDigJQgaXRzIGxheW91dCB3aWR0aCBpcyBwcmVzZXJ2ZWQgc28gc3ViamVjdCArIHByZXZpZXdcbiAgICAvLyAgZG9uJ3QgZ3JvdyBpbnRvIHRoZSBmcmVlZCBzcGFjZS4gVGhlIGNoZXZyb24gdGhlbiB2aXN1YWxseVxuICAgIC8vICB0YWtlcyB0aGVpciBzbG90LlxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICYuaW5ib3gtbWVzc2FnZS1uYXZpZ2F0ZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAuaW5ib3gtbWVzc2FnZS1uYXYge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogOHB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICAuaW5ib3gtbWVzc2FnZS10aW1lc3RhbXAsXG4gICAgICAgIC5pbmJveC1tZXNzYWdlLWR1ZSB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGVhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyOm5vdCguaW5ib3gtbWVzc2FnZS1zd2lwaW5nKSAuaW5ib3gtbWVzc2FnZS1uYXYsXG4gICAgICAgICY6Zm9jdXMtd2l0aGluOm5vdCguaW5ib3gtbWVzc2FnZS1zd2lwaW5nKSAuaW5ib3gtbWVzc2FnZS1uYXYge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3Zlcjpub3QoLmluYm94LW1lc3NhZ2Utc3dpcGluZykgLmluYm94LW1lc3NhZ2UtdGltZXN0YW1wLFxuICAgICAgICAmOmhvdmVyOm5vdCguaW5ib3gtbWVzc2FnZS1zd2lwaW5nKSAuaW5ib3gtbWVzc2FnZS1kdWUsXG4gICAgICAgICY6Zm9jdXMtd2l0aGluOm5vdCguaW5ib3gtbWVzc2FnZS1zd2lwaW5nKSAuaW5ib3gtbWVzc2FnZS10aW1lc3RhbXAsXG4gICAgICAgICY6Zm9jdXMtd2l0aGluOm5vdCguaW5ib3gtbWVzc2FnZS1zd2lwaW5nKSAuaW5ib3gtbWVzc2FnZS1kdWUge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhvbm9yIHVzZXIgbW90aW9uIHByZWZlcmVuY2UgKG1hdGNoZXMgTm92YSAvIGhpc3RvcnktaXRlbSkuXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAgICAgLmluYm94LW1lc3NhZ2UtcGFwZXJjbGlwLFxuICAgICAgICAuaW5ib3gtbWVzc2FnZS1ib29rbWFyayxcbiAgICAgICAgLmluYm94LW1lc3NhZ2UtZGVsZXRlLFxuICAgICAgICAuaW5ib3gtbWVzc2FnZS1uYXYsXG4gICAgICAgIC5pbmJveC1tZXNzYWdlLXRpbWVzdGFtcCxcbiAgICAgICAgLmluYm94LW1lc3NhZ2UtZHVlIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gV2hlbiBOT1QgYm9va21hcmtlZCBBTkQgbm90IGhvdmVyZWQsIHRoZSBkZWxldGUgYnV0dG9uIGlzIGhpZGRlblxuICAgIC8vIChhbHJlYWR5IGhhbmRsZWQgdmlhIC5pbmJveC1tZXNzYWdlLWhvdmVyLWJ1dHRvbnMgb3BhY2l0eSksIHNvXG4gICAgLy8gb25seSB0aGUgYm9va21hcmsgbmVlZHMgYSBzcGVjaWFsIFwic3RpbGwgaGlkZGVuIGlmIG5vdCBib29rbWFya2VkXG4gICAgLy8gYW5kIG5vdCBob3ZlcmVkXCIgcnVsZSDigJQgYWxyZWFkeSBjb3JyZWN0IHZpYSB0aGUgY2FzY2FkZSBhYm92ZS5cblxuICAgIC8vIFBlcnNpc3RlbnQgYm9va21hcmsgKyBkZWxldGUgbXVzdCByZW1haW4gaW4gdGhlaXIgb3duIHZpc3VhbCBvcmRlclxuICAgIC8vIHdoZW4gcmV2ZWFsZWQgZHVyaW5nIGhvdmVyLCBzbyBqdXN0IGtlZXBpbmcgdGhlbSBpbiB0aGUgc2FtZSBET01cbiAgICAvLyB3cmFwcGVyIGlzIGVub3VnaC5cblxuICAgIC8vIC0tLS0gUm93IDI6IHN1YmplY3QgKyB0aW1lc3RhbXAgLS0tLVxuICAgIC5pbmJveC1tZXNzYWdlLXJvdy0yIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0ycHg7ICAgICAgICAgICAgICAgICAgICAgICAvLyBjb21wYWN0IHJlY2lwZSDigJQgc2VlIC5pbmJveC1tZXNzYWdlLW1haW5cbiAgICB9XG4gICAgLmluYm94LW1lc3NhZ2Utc3ViamVjdCB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc3R5bGUtYm9keS1tZWRpdW0tbWQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1tc2ctdGV4dCk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgICAmLmluYm94LW1lc3NhZ2UtdW5yZWFkIC5pbmJveC1tZXNzYWdlLXN1YmplY3Qge1xuICAgICAgICBAaW5jbHVkZSB0ZXh0LXN0eWxlLWJvZHktYm9sZC1tZDtcbiAgICAgICAgY29sb3I6IHZhcigtLW1zZy1hY2NlbnQpO1xuICAgIH1cbiAgICAuaW5ib3gtbWVzc2FnZS10aW1lc3RhbXAge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgQGluY2x1ZGUgdGV4dC1zdHlsZS1ib2R5LW1lZGl1bS1zbTtcbiAgICAgICAgY29sb3I6IHZhcigtLW1zZy10ZXh0KTtcbiAgICB9XG4gICAgJi5pbmJveC1tZXNzYWdlLXVucmVhZCAuaW5ib3gtbWVzc2FnZS10aW1lc3RhbXAge1xuICAgICAgICBAaW5jbHVkZSB0ZXh0LXN0eWxlLWJvZHktYm9sZC1zbTtcbiAgICAgICAgY29sb3I6IHZhcigtLW1zZy1hY2NlbnQpO1xuICAgIH1cblxuICAgIC8vIC0tLS0gUm93IDM6IHByZXZpZXcgKyBkdWUtdGltZSAtLS0tXG4gICAgLmluYm94LW1lc3NhZ2Utcm93LTMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTJweDsgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbXBhY3QgcmVjaXBlIOKAlCBzZWUgLmluYm94LW1lc3NhZ2UtbWFpblxuICAgIH1cbiAgICAuaW5ib3gtbWVzc2FnZS1wcmV2aWV3IHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgQGluY2x1ZGUgdGV4dC1zdHlsZS1ib2R5LXJlZ3VsYXItc207XG4gICAgICAgIGNvbG9yOiB2YXIoLS1tc2ctdGV4dCk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgICAuaW5ib3gtbWVzc2FnZS1kdWUge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBAaW5jbHVkZSB0ZXh0LXN0eWxlLWJvZHktcmVndWxhci1zbTtcbiAgICAgICAgY29sb3I6IHZhcigtLW1zZy10ZXh0KTtcblxuICAgICAgICBxZG5hcHJvLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tbXNnLXRleHQtbXV0ZWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tLSBUYWdzIHJvdyAtLS0tXG4gICAgLmluYm94LW1lc3NhZ2UtdGFncyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyAgVXJnZW5jeSBtYXJrZXIg4oCUIGRlYWRsaW5lLXN0YXR1cz1cIm92ZXJkdWVcIiB8IFwiZHVlLXNvb25cIi5cbiAgICAvLyAgQ29sb3VycyB0aGUgZHVlLXRpbWUgdGV4dCArIGl0cyBjbG9jayBpY29uIG9ubHkuIFNlZSB0aGVcbiAgICAvLyAgZHVwbGljYXRpb24gbm90ZSBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZSBhYm91dCB0aGUgcGFnZSdzXG4gICAgLy8gIG93biBgZGF0YS1kZWFkbGluZS1zdGF0dXNgIHJ1bGUgaW4gX2luYm94LnNjc3MuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgJi5pbmJveC1tZXNzYWdlLWRlYWRsaW5lLW92ZXJkdWUgLmluYm94LW1lc3NhZ2UtZHVlLFxuICAgICYuaW5ib3gtbWVzc2FnZS1kZWFkbGluZS1vdmVyZHVlIC5pbmJveC1tZXNzYWdlLWR1ZSBxZG5hcHJvLWljb24ge1xuICAgICAgICBjb2xvcjogJG1zZy1kZWFkbGluZS1vdmVyZHVlO1xuICAgIH1cbiAgICAmLmluYm94LW1lc3NhZ2UtZGVhZGxpbmUtZHVlLXNvb24gLmluYm94LW1lc3NhZ2UtZHVlLFxuICAgICYuaW5ib3gtbWVzc2FnZS1kZWFkbGluZS1kdWUtc29vbiAuaW5ib3gtbWVzc2FnZS1kdWUgcWRuYXByby1pY29uIHtcbiAgICAgICAgY29sb3I6ICRtc2ctZGVhZGxpbmUtZHVlLXNvb247XG4gICAgfVxuICAgIC8vIFRhZ2xlc3MgcGhvbmUtcm93IGNhc2UgKHNlZSAuaW5ib3gtbWVzc2FnZS1kdWUtc3RhbmRhbG9uZSBjbGFzcyxcbiAgICAvLyBzZXQgaW4gSlMgb25seSB3aGVuIGRlYWRsaW5lLXN0YXR1cyBpcyBvbiBBTkQgdGhlcmUgYXJlIG5vIHRhZ3MpOlxuICAgIC8vIGdpdmUgdGhlIGR1ZS1jaGlwIGEgdGludGVkIHBpbGwgc28gaXQgcmVhZHMgYXMgYSBkZWxpYmVyYXRlXG4gICAgLy8gb25lLWxpbmUgc3VtbWFyeSByYXRoZXIgdGhhbiBhIGJhcmUgbGVmdG92ZXIuXG4gICAgJi5pbmJveC1tZXNzYWdlLWRlYWRsaW5lLW92ZXJkdWUgLmluYm94LW1lc3NhZ2UtZHVlLXN0YW5kYWxvbmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRtc2ctZGVhZGxpbmUtb3ZlcmR1ZSwgMC4xKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIHBhZGRpbmc6IDJweCA4cHggMnB4IDZweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIH1cbiAgICAmLmluYm94LW1lc3NhZ2UtZGVhZGxpbmUtZHVlLXNvb24gLmluYm94LW1lc3NhZ2UtZHVlLXN0YW5kYWxvbmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRtc2ctZGVhZGxpbmUtZHVlLXNvb24sIDAuMSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBwYWRkaW5nOiAycHggOHB4IDJweCA2cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyAgU2VsZWN0aW9uIGNoZWNrYm94IOKAlCBzZWxlY3RhYmxlIChob3Zlci1vbmx5LCBtb3VzZSkgL1xuICAgIC8vICBzZWxlY3Rpb24tbW9kZSAocGVybWFuZW50KS4gU2VlIHRoZSBhcmNoaXRlY3R1cmUgbm90ZSBhdCB0aGVcbiAgICAvLyAgdG9wIG9mIHRoaXMgZmlsZSDigJQgYm90aCBub2RlcyBhbHdheXMgcmVuZGVyIGluc2lkZSB0aGlzIGZpeGVkXG4gICAgLy8gIDM0eDM0IHNsb3QsIENTUyBvbmx5IGV2ZXIgdG9nZ2xlcyBvcGFjaXR5IGJldHdlZW4gdGhlbS5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAuaW5ib3gtbWVzc2FnZS1hdmF0YXItc2xvdCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICAgIGhlaWdodDogMzRweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuICAgIC5pbmJveC1tZXNzYWdlLWF2YXRhci1zbG90ID4gcWRuYXByby1hdmF0YXIsXG4gICAgLmluYm94LW1lc3NhZ2UtYXZhdGFyLXNsb3QgPiAuaW5ib3gtbWVzc2FnZS1hdmF0YXItd3JhcCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTIwbXMgZWFzZTtcbiAgICB9XG4gICAgLmluYm94LW1lc3NhZ2Utc2VsZWN0LWNoZWNrYm94IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAvLyBTdGFuZGluZyBRRE5BIHJ1bGU6IHNtYWxsL2RlZmF1bHQgY2hlY2tib3ggc2l6ZSAoMTZweCkg4oCUIG5ldmVyXG4gICAgICAgIC8vIHRoZSB0b3VjaC90b3VjaC1zbSBQV0Etb25seSB2YXJpYW50cyDigJQgaW4gdGhlIGJhY2tvZmZpY2UuXG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEyMG1zIGVhc2U7XG4gICAgfVxuXG4gICAgLy8gc2VsZWN0aW9uLW1vZGU6IHBlcm1hbmVudCBzd2FwLCBhbnkgcG9pbnRlciB0eXBlLlxuICAgICYuaW5ib3gtbWVzc2FnZS1zZWxlY3Rpb24tbW9kZSB7XG4gICAgICAgIC5pbmJveC1tZXNzYWdlLWF2YXRhci1zbG90ID4gcWRuYXByby1hdmF0YXIsXG4gICAgICAgIC5pbmJveC1tZXNzYWdlLWF2YXRhci1zbG90ID4gLmluYm94LW1lc3NhZ2UtYXZhdGFyLXdyYXAge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5pbmJveC1tZXNzYWdlLXNlbGVjdC1jaGVja2JveCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzZWxlY3RhYmxlOiBob3Zlci1vbmx5IHN3YXAsIE1PVVNFIE9OTFkuIGAoaG92ZXI6IGhvdmVyKWAgZXhjbHVkZXNcbiAgICAvLyB0b3VjaCBkZXZpY2VzIChubyB0cnVlIGhvdmVyIHRoZXJlKSwgc28gdGhlIGF2YXRhciBuZXZlciBkaXNhcHBlYXJzXG4gICAgLy8gb24gdGFwIOKAlCB0b3VjaCB1c2VycyBhbHdheXMgc2VlIHRoZSBhdmF0YXI7IHNlbGVjdGlvbiB0aGVyZSBuZWVkc1xuICAgIC8vIHNlbGVjdGlvbi1tb2RlIGluc3RlYWQuXG4gICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgJi5pbmJveC1tZXNzYWdlLXNlbGVjdGFibGU6bm90KC5pbmJveC1tZXNzYWdlLXNlbGVjdGlvbi1tb2RlKTpob3ZlciB7XG4gICAgICAgICAgICAuaW5ib3gtbWVzc2FnZS1hdmF0YXItc2xvdCA+IHFkbmFwcm8tYXZhdGFyLFxuICAgICAgICAgICAgLmluYm94LW1lc3NhZ2UtYXZhdGFyLXNsb3QgPiAuaW5ib3gtbWVzc2FnZS1hdmF0YXItd3JhcCB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5pbmJveC1tZXNzYWdlLXNlbGVjdC1jaGVja2JveCB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vICBTd2lwZSBzdGF0ZSDigJQgdGhlIHN3aXBlIHdyYXBwZXIgc2V0cyBgc3dpcGluZ2Agd2hpbGUgYSBkcmFnIGlzXG4gICAgLy8gIGluIHByb2dyZXNzLiBGb3JjZXMgYW4gb3BhcXVlIGJhY2tncm91bmQgKHRoZSBnbG9iYWwgY2FyZC1zdXJmYWNlXG4gICAgLy8gIHRva2VuIOKAlCBvcGFxdWUgaW4gYm90aCBsaWdodCBhbmQgZGFyaywgdW5saWtlIC0tbXNnLWJnIHdoaWNoIGlzXG4gICAgLy8gIGB0cmFuc3BhcmVudGAgaW4gZGFyayBtb2RlKSBzbyB0aGUgYWN0aW9uIHBhbmVsIHJldmVhbGVkIGJlaGluZFxuICAgIC8vICB0aGUgcm93IGNhbid0IHNob3cgdGhyb3VnaC4gT25seSBjb2xvdXIvb3BhY2l0eSBjaGFuZ2UgaGVyZSwgc29cbiAgICAvLyAgdGhlcmUgaXMgbm8gbGF5b3V0IHNoaWZ0IHdoZW4gaXQgdG9nZ2xlcy4gVGhlIGhvdmVyLW9ubHkgcmV2ZWFsc1xuICAgIC8vICB0aGVtc2VsdmVzIGFyZSBzdXBwcmVzc2VkIHZpYSB0aGUgYDpub3QoLmluYm94LW1lc3NhZ2Utc3dpcGluZylgXG4gICAgLy8gIGFkZGl0aW9ucyBmdXJ0aGVyIHVwIHRoaXMgZmlsZSAocGFwZXJjbGlwL2Jvb2ttYXJrL2RlbGV0ZS9uYXYpLlxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICYuaW5ib3gtbWVzc2FnZS1zd2lwaW5nIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyAgRGlzYWJsZWQg4oCUIHdpbnMgb3ZlciBob3Zlci9zZWxlY3RlZC9ib29rbWFya2VkLlxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICYuaW5ib3gtbWVzc2FnZS1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgIC8vIFN1cHByZXNzIGZvY3VzIHN0eWxpbmcgZXZlbiBpZiAuZm9yY2UtZm9jdXMgaXMgb24gKHByZXZpZXcgcGFyaXR5KVxuICAgICAgICAmOmZvY3VzLXZpc2libGUsXG4gICAgICAgICYuZm9yY2UtZm9jdXMge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgQmFja2dyb3VuZC1jb250ZXh0OiBwdXJwbGUgaG9zdCAgW0tpbSAyMDI2LTA0LTI5IHBhdHRlcm5dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBXaGVuIHRoZSBpbmJveC1tZXNzYWdlIHNpdHMgb24gYSBsaWdodC1wdXJwbGUgaG9zdCBiZyAoc2lkZWJhciAvXG4vLyAgcGFhcnNlIGNhcmQpLCB0aGUgZGVmYXVsdCB3aGl0ZSBiZyBsb29rcyBmaW5lIGJ1dCB0aGUgaG92ZXItZ3JleVxuLy8gIHJlYWRzIGFzIG9mZi4gT2ZmZXIgYSBwdXJwbGUtdGludGVkIGhvdmVyIHZpYSBvcHQtaW4gYXR0cmlidXRlLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5bZGF0YS1iZy1jb250ZXh0PVwicHVycGxlXCJdIC5xZG5hcHJvLWluYm94LW1lc3NhZ2Uge1xuICAgIC0tbXNnLWJnLWhvdmVyOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7ICAgLy8gbWF0Y2hlcyBzZWNvbmRhcnktcHVycGxlLWhvdmVyXG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIERhcmstbW9kZSBvdmVycmlkZXNcbi8vICBbSU5GRVJSRURdIOKAlCBGaWdtYSBzaG93ZWQgb25seSBsaWdodC4gTWlycm9yaW5nIHRoZSBzYW1lXG4vLyAgNC1zdGF0ZSBwYWxldHRlIGludG8gZGFyayBzdXJmYWNlIHRva2Vucy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLWluYm94LW1lc3NhZ2Uge1xuICAgIC0tbXNnLWJnOiAgICAgICAgICB0cmFuc3BhcmVudDtcbiAgICAtLW1zZy1iZy1ob3ZlcjogICAgIzU2NWI2NjsgICAgICAgLy8gU3VidGxlLUhvdmVyIChkYXJrKVxuICAgIC0tbXNnLXRleHQ6ICAgICAgICAjZTFlM2U2OyAgICAgICAvLyBUZXh0L09uLUJvZHkgKGRhcmspXG4gICAgLS1tc2ctdGV4dC1tdXRlZDogICNhNmFhYjM7ICAgICAgIC8vIEJvZHktU2Vjb25kYXJ5IChkYXJrKVxuICAgIC0tbXNnLWFjY2VudDogICAgICAjYTVhY2ZmOyAgICAgICAvLyBQdXJwbGUtSGlnaGxpZ2h0IGxpZ2h0IHZhcmlhbnQgZm9yIGRhcmtcblxuICAgICYuaW5ib3gtbWVzc2FnZS1zZWxlY3RlZCB7XG4gICAgICAgIC0tbXNnLWJnOiAgICAgICByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuMTgpO1xuICAgICAgICAtLW1zZy1iZy1ob3ZlcjogcmdiYSgxNjUsIDE3MiwgMjU1LCAwLjI4KTtcbiAgICB9XG5cbiAgICAmLmluYm94LW1lc3NhZ2UtYWN0aXZlIHtcbiAgICAgICAgLS1tc2ctYmc6ICAgICAgIHJnYmEoMTY1LCAxNzIsIDI1NSwgMC4xOCk7XG4gICAgICAgIC0tbXNnLWJnLWhvdmVyOiByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuMjgpO1xuXG4gICAgICAgIC8vIC0tbXNnLWFjY2VudCBpcyBhbHJlYWR5IHRoZSBsaWdodCBwdXJwbGUgaW4gZGFyayBtb2RlIChzZWUgYWJvdmUpLFxuICAgICAgICAvLyBzbyB0aGUgYmFyIGluaGVyaXRzIGl0IGFuZCBuZWVkcyBubyBjb2xvdXIgb2YgaXRzIG93biBoZXJlLlxuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAzcHggMCAwIDAgdmFyKC0tbXNnLWFjY2VudCk7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlLFxuICAgICYuZm9yY2UtZm9jdXMge1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgMCAwIDAgMnB4ICNhNWFjZmYsXG4gICAgICAgICAgICAwIDAgMCA2cHggcmdiYSg3MCwgODIsIDI0MywgMC40MCk7XG4gICAgfVxuXG4gICAgJi5pbmJveC1tZXNzYWdlLWFjdGl2ZTpmb2N1cy12aXNpYmxlLFxuICAgICYuaW5ib3gtbWVzc2FnZS1hY3RpdmUuZm9yY2UtZm9jdXMge1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgaW5zZXQgM3B4IDAgMCAwIHZhcigtLW1zZy1hY2NlbnQpLFxuICAgICAgICAgICAgMCAwIDAgMnB4ICNhNWFjZmYsXG4gICAgICAgICAgICAwIDAgMCA2cHggcmdiYSg3MCwgODIsIDI0MywgMC40MCk7XG4gICAgfVxuXG4gICAgLy8gQm9va21hcmsgY29sb3IgZm9sbG93cyAtLW1zZy1hY2NlbnQgd2hpY2ggaXMgYWxyZWFkeSBvdmVycmlkZGVuXG4gICAgLy8gZm9yIGRhcmsgYWJvdmUg4oCUIG5vIGV4dHJhIHJ1bGUgbmVlZGVkLlxufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvaW5wdXQvX2lucHV0LWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLWlucHV0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBpbnRlciwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbn1cbi8vIHNpemU9XCJ0b3VjaFwiIOKAlCAyMHB4IHRleHQsIH4zMHB4IGxpbmUtaGVpZ2h0IChzYW1lIH4xMHB4IHRvdGFsIGxlYWRpbmcgdGhlIDE0cHgvMjRweFxuLy8gZGVmYXVsdCBoYXMsIGp1c3Qgc2NhbGVkIHVwKS4gQWxzbyBidW1wcyAuaW5wdXQtZmllbGQgLyAuaW5wdXQtZXh0ZXJuYWwtYnRuIChiZWxvdykgYW5kXG4vLyBwcm9wYWdhdGVzIHNpemU9XCJ0b3VjaFwiIHRvIGV2ZXJ5IGludGVybmFsIHFkbmFwcm8taWNvbi1idG4gY2hpbGQgKHNlZSBxZG5hLWlucHV0LmpzXG4vLyBfc2l6ZUljb25CdG4pIHNvIGNsZWFyLXgvwrFzdGVwcGVycy9kcm9wZG93bi9leWUvY2hldnJvbiBiZWNvbWUgNDR4NDQgdGFwIHRhcmdldHMgdG9vLlxuLy8gUFdBLU9OTFkg4oCUIGRvIG5vdCB1c2UgaW4gYmFja29mZmljZTIgZGVza3RvcC90YWJsZXQgc2NyZWVuczsgdXNlIFwiYmlnXCIvXCJzbWFsbFwiIHRoZXJlLlxuLy8gWzIwMjYtMDctMDFdXG4ucWRuYXByby1pbnB1dC5pbnB1dC1zaXplLXRvdWNoIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMzBweDtcbn1cbi8vIHNpemU9XCJ0aW55XCIg4oCUIDMycHggZmllbGQgZm9yIGRlbnNlIGdyaWRzIG9mIHNtYWxsIGZpZWxkcyAodGhlbWUgZWRpdG9yIGNvbG91clxuLy8gY2FyZHMsIHVzZXIgcGFnZSkgd2hlcmUgXCJzbWFsbFwiICg0MHB4KSBzdGlsbCBlYXRzIHRvbyBtdWNoIHZlcnRpY2FsIHJvb20uIDEzcHhcbi8vIHRleHQsIHRpZ2h0ZXIgZmllbGQgcGFkZGluZyBhbmQgZ2FwIChiZWxvdykuIEludGVybmFsIGljb24tYnRucyBrZWVwIHRoZWlyIDI0cHhcbi8vIHNtYWxsIGRlZmF1bHQsIHdoaWNoIGZpdHMgaW5zaWRlIDMycHgsIHNvIG5vIF9zaXplSWNvbkJ0biBwcm9wYWdhdGlvbiBpcyBuZWVkZWQuXG4vLyBOT1QgYSB0YXAgdGFyZ2V0IOKAlCBkZXNrdG9wL3RhYmxldCBvbmx5LCB1c2UgXCJ0b3VjaFwiIGluIHRoZSBQV0EuIFtLaW0gMjAyNi0wOC0wN11cbi5xZG5hcHJvLWlucHV0LmlucHV0LXNpemUtdGlueSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWhlYWRlciAuaW5wdXQtbGFiZWwge1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtaGVhZGVyIC5pbnB1dC1sYWJlbCAuaW5wdXQtcmVxdWlyZWQge1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1oZWFkZXIgLmlucHV0LWxhYmVsIC5pbnB1dC1vcHRpb25hbCB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1oZWFkZXIgLmlucHV0LWluZm8tYnRuIHtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtaGludCB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtc2l6ZS1iaWcgLmlucHV0LWV4dGVybmFsLWJ0biB7XG4gIHdpZHRoOiA1MnB4O1xuICBtaW4td2lkdGg6IDUycHg7XG4gIG1pbi1oZWlnaHQ6IDUycHg7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1zaXplLXNtYWxsIC5pbnB1dC1leHRlcm5hbC1idG4ge1xuICB3aWR0aDogNDBweDtcbiAgbWluLXdpZHRoOiA0MHB4O1xuICBtaW4taGVpZ2h0OiA0MHB4O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtc2l6ZS10aW55IC5pbnB1dC1leHRlcm5hbC1idG4ge1xuICB3aWR0aDogMzJweDtcbiAgbWluLXdpZHRoOiAzMnB4O1xuICBtaW4taGVpZ2h0OiAzMnB4O1xufVxuLy8gc2l6ZT1cInRvdWNoXCIg4oCUIHJvb20gZm9yIHRoZSA0NHg0NCBpY29uLWJ0biAoc2l6ZT1cInRvdWNoXCIpIHRoaXMgc2l6ZSBwcm9wYWdhdGVzIHRvLlxuLy8gUFdBLU9OTFksIGRvIG5vdCB1c2UgaW4gYmFja29mZmljZTIgZGVza3RvcC90YWJsZXQgc2NyZWVucy4gWzIwMjYtMDctMDFdXG4ucWRuYXByby1pbnB1dC5pbnB1dC1zaXplLXRvdWNoIC5pbnB1dC1leHRlcm5hbC1idG4ge1xuICB3aWR0aDogNTZweDtcbiAgbWluLXdpZHRoOiA1NnB4O1xuICBtaW4taGVpZ2h0OiA1NnB4O1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZsZXg6IDE7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2Utb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2Utb3V0O1xufVxuLyogS2xldXIgdmFuIGhldCBMRUFESU5HLUlDT09OIGluIGRlIGJhc2lzIChiZXNsdWl0IDc4LCB2ZXJ2b2xnIDMxLjA3LjIwMjYpOiBzdG9uZFxuICAgb3AgdmFyKC0tYy1ncmV5LTQwMCkgZW4gaGFhbGRlIGRhYXJtZWUgZGV6ZWxmZGUgY29udHJhc3QtaW52ZXJzaWUgYWxzIGRlIHBsYWNlaG9sZGVyIGhhZCxcbiAgIG5hbWVsaWprIGVlbiBMQUdFUkUgdmVyaG91ZGluZyBkYW4gZGUgdWl0Z2VzY2hha2VsZGUgc3RhbmQgKHZhcigtLWMtdGV4dC1kaXNhYmxlZCkpLCB3YWFyZG9vclxuICAgZWVuIGdld29vbiB2ZWxkIGxlZXN0IGFscyBlZW4gdmVsZCBkYXQgamUgbmlldCBtYWcgZ2VicnVpa2VuLiBHZW1ldGVuIG1ldCBkZVxuICAgV0NBRy1mb3JtdWxlLCBuaWV0IG9wIGhldCBvb2c6XG4gICAgIG91ZCAgdmFyKC0tYy1ncmV5LTQwMCkgIG9wIHdpdCAjZmZmZmZmICAgICAgICAgICAgICAtPiAyLjMzOjFcbiAgICAgb3VkICB2YXIoLS1jLWdyZXktNDAwKSAgb3AgLS1jLWdyZXktMTAwIHZhcigtLWMtZ3JleS0xMDApICAgICAtPiAxLjkxOjFcbiAgICAgb3VkICB2YXIoLS1jLWdyZXktNDAwKSAgb3AgaGV0IHVpdGdlc2NoYWtlbGRlIHZsYWsgdmFyKC0tYy1ncmV5LTUwKSAtPiAyLjA2OjFcbiAgICAgZGlzYWJsZWQtaWNvb24gdmFyKC0tYy10ZXh0LWRpc2FibGVkKSBvcCB2YXIoLS1jLWdyZXktNTApICh6aWpuIGVpZ2VuIHZsYWspIC0+IDIuOTA6MVxuICAgICBuaWV1dyB2YXIoLS1jLXRleHQtbXV0ZWQpIHZhcigtLWMtdGV4dC1tdXRlZCkgb3Agd2l0ICAtPiA0Ljc5OjFcbiAgICAgbmlldXcgb3AgdmFyKC0tYy1ncmV5LTEwMCkgICAgICAgICAgICAgICAgICAgICAgICAgIC0+IDMuOTQ6MVxuICAgICBuaWV1dyBvcCB2YXIoLS1jLWdyZXktNTApICAgICAgICAgICAgICAgICAgICAgICAgICAtPiA0LjI0OjFcbiAgIERlIHJhbmdvcmRlIGlzIGRhYXJtZWUgd2VlciBnZXdvb24tZG9ua2VyZGVyLWRhbi1kaXNhYmxlZC4gSGV0IGRpc2FibGVkLWljb29uXG4gICB6ZWxmIGJsaWpmdCB2YXIoLS1jLXRleHQtZGlzYWJsZWQpOiBkYXQgemF0IG5pZXQgZm91dCwgaGV0IHdlcmQgaW5nZWhhYWxkIGRvb3IgZWVuIGJhc2lzIGRpZSB0ZVxuICAgbGljaHQgc3RvbmQuIERlIGdyaWp6ZSB2YXJpYW50IGhhZCBkaXQgaWNvb24gYWwgZWVyZGVyIG9wIC0tYy10ZXh0LW11dGVkIGdlemV0O1xuICAgZGllIHJlZ2VsIGJsaWpmdCBzdGFhbiBhbHMgemVsZnN0YW5kaWdlIGdhcmFudGllIHZvb3IgZGllIHZhcmlhbnQuXG4gICBNZXQgZmFsbGJhY2sgdmFyKC0tYy10ZXh0LW11dGVkKSBlcmluLCB3YW50IGBjb2xvcmAgem9uZGVyIGZhbGxiYWNrIHZhbHQgYmlqIGVlbiBuaWV0XG4gICByZXNvbHZlbmRlIHZhciB0ZXJ1ZyBvcCBlcnZlbiwgZW4gZGF0IGlzIGhpZXIgZGUgYmlqbmEtendhcnRlIHZlbGR0ZWtzdC5cbiAgIERhcmsgdGhlbWUsIGdsYXNzIGVuIGRhcmstcHVycGxlIHppam4gbmlldCBnZXJhYWt0OiBkaWUgaGViYmVuIGVsayBodW4gZWlnZW5cbiAgIHJlZ2VsIHZvb3IgZGl0IGljb29uLCB2ZXJkZXJvcCBpbiBkaXQgYmVzdGFuZC4gKi9cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtbGVhZGluZy1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICBmbGV4LXNocmluazogMDtcbn1cbi8qIExlYWRpbmcgYXZhdGFyIChkcm9wZG93biB0cmlnZ2VyIHNob3dpbmcgdGhlIHNlbGVjdGVkIHVzZXIncyBwaG90bykuIFNpdHMgaW5cbiAgIHRoZSBzYW1lIHNsb3QgYXMgdGhlIGxlYWRpbmcgaWNvbjsgc2xpZ2h0bHkgdGlnaHRlciByaWdodCBtYXJnaW4gc28gdGhlIHZhbHVlXG4gICB0ZXh0IGh1Z3MgaXQuIFtLaW0gMjAyNi0wNy0yMF0gKi9cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtbGVhZGluZy1hdmF0YXIge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1sZWZ0OiAtMnB4O1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1sZWFkaW5nLWJ0biB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXJnaW4tbGVmdDogLTRweDtcbn1cbi8vIGZpbHRlci1sYWJlbCBjaGlwIChzZWFyY2ggdHlwZSk6IGEgcGxhaW4gcWRuYXByby1idXR0b24gdHlwZT1cInNlY29uZGFyeS1wdXJwbGVcIlxuLy8gc2l6ZT1cInNtYWxsXCIsIHVzZWQgYXMtaXMgd2hlbiBgZmlsdGVyLWxhYmVsYCBpcyBzZXQsIGluc3RlYWQgb2YgdGhlIGljb24tb25seVxuLy8gcWRuYXByby1pY29uLWJ0biB0aGF0IHJlbmRlcnMgd2hlbiBpdCBpcyBhYnNlbnQgKHNlZSBxZG5hLWlucHV0LmpzKS5cbi8vIEl0IGNhcnJpZXMgTk8gc3R5bGluZyBvZiBpdHMgb3duIGhlcmUgb24gcHVycG9zZS4gVGhlcmUgdXNlZCB0byBiZSBhIHNpbmdsZVxuLy8gZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWkpIG51ZGdlIG9uIC5pbnB1dC1maWx0ZXItbGFiZWwtYnRuOyBLaW0gcmVqZWN0ZWQgaXRcbi8vIG9uIHNpZ2h0ICgzMC4wNy4yMDI2LCBcImhldCBmb250IGlzIHZlZWwgdGUgZGlrXCIpIGFuZCB0aGUgY2hpcCBub3cgc2ltcGx5IHRha2VzXG4vLyBxZG5hcHJvLWJ1dHRvbidzIG93biB3ZWlnaHQuIERvIG5vdCByZWludHJvZHVjZSBhIGxvY2FsIG92ZXJyaWRlOiBpZiB0aGUgY2hpcFxuLy8gZXZlciBuZWVkcyBhIGRpZmZlcmVudCB3ZWlnaHQsIHRoYXQgaXMgYSB2YXJpYW50IG9uIHFkbmFwcm8tYnV0dG9uIGl0c2VsZi5cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtcHJldGFiLFxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1wb3N0dGFiIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAwIDEycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmbGV4LXNocmluazogMDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtcHJldGFiIHFkbmFwcm8taWNvbixcbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtcG9zdHRhYiBxZG5hcHJvLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1wcmV0YWIgLmlucHV0LXByZXRhYi10ZXh0LFxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1wcmV0YWIgLmlucHV0LXBvc3R0YWItdGV4dCxcbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtcG9zdHRhYiAuaW5wdXQtcHJldGFiLXRleHQsXG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LXBvc3R0YWIgLmlucHV0LXBvc3R0YWItdGV4dCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LXByZXRhYiB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1wb3N0dGFiIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMzAwKTtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtZmllbGQtaW5uZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtZmllbGQtaW5uZXIgLmlucHV0LW5hdGl2ZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1uYXRpdmUge1xuICBmbGV4OiAxO1xuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250OiBpbmhlcml0O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gIHBhZGRpbmc6IDA7XG4gIG1pbi13aWR0aDogMDtcbn1cbi8qIFBsYWNlaG9sZGVyLWtsZXVyIHZhbiBkZSBCQVNJUyAoYmVzbHVpdCA3OCwga2x1cyA0YiwgS2ltIDMxLjA3LjIwMjYpOiBzdG9uZCBvcFxuICAgdmFyKC0tYy1ncmV5LTQwMCkgZW4gaGFhbGRlIGRhYXJtZWUgRUVOIExBR0VSRSBjb250cmFzdHZlcmhvdWRpbmcgZGFuIGRlIHVpdGdlc2NoYWtlbGRlXG4gICBzdGFuZCAodmFyKC0tYy10ZXh0LWRpc2FibGVkKSksIHdhYXJkb29yIGVlbiBsZWVnIHZlbGQgbGVlayBhbHNvZiBqZSBoZXQgbmlldCBtb2NodCBnZWJydWlrZW4uXG4gICBHZW1ldGVuIG1ldCBkZSBXQ0FHLWZvcm11bGU6XG4gICAgIG91ZGUgYmFzaXMtcGxhY2Vob2xkZXIgIHZhcigtLWMtZ3JleS00MDApIG9wIHdpdCAgICAgICAtPiAyLjMzOjFcbiAgICAgb3VkZSBiYXNpcy1wbGFjZWhvbGRlciAgdmFyKC0tYy1ncmV5LTQwMCkgb3AgdmFyKC0tYy1ncmV5LTEwMCkgICAtPiAxLjkxOjFcbiAgICAgZGlzYWJsZWQtcGxhY2Vob2xkZXIgICAgdmFyKC0tYy10ZXh0LWRpc2FibGVkKSBvcCB2YXIoLS1jLWdyZXktMTAwKSAgIC0+IDIuNzA6MVxuICAgdmFyKC0tYy10ZXh0LW11dGVkKSBpcyBkZXplbGZkZSB0b2tlbiBkaWUgZGUgZ3JpanplIHZhcmlhbnQgaGllcm9uZGVyIGFsXG4gICBnZWJydWlrdCAoemllIGRpZSB0b2VsaWNodGluZyBiaWogLmlucHV0LWdyZXkgdmVyZGVyb3AgaW4gZGl0IGJlc3RhbmQpOiBvcCB3aXRcbiAgIGdlZWZ0IGRhdCA0Ljc5OjEsIG9wIHZhcigtLWMtZ3JleS0xMDApIDMuOTQ6MS4gQmVpZGUgcnVpbSBib3ZlbiBkZSBkaXNhYmxlZC1zdGFuZCwgZHVzIGRlXG4gICByYW5nb3JkZSBpcyB3ZWVyIGdld29vbi1kb25rZXJkZXItZGFuLWRpc2FibGVkLiBEZSBkaXNhYmxlZC1wbGFjZWhvbGRlciB6ZWxmIGlzXG4gICBuaWV0IGFhbmdlcGFzdDogZGllIHphdCBuaWV0IGZvdXQsIGhpaiB3ZXJkIGFsbGVlbiBpbmdlaGFhbGQgZG9vciBlZW4gYmFzaXMgZGllXG4gICB0ZSBsaWNodCBzdG9uZC4gKi9cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtbmF0aXZlOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1uYXRpdmU6ZGlzYWJsZWQge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtdHJhaWxpbmcge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC10cmFpbGluZyAuaW5wdXQtc3VmZml4LXRleHQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nLXJpZ2h0OiAycHg7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nIC5pbnB1dC1zdGF0ZS1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nIC5pbnB1dC1zdGF0ZS1zdWNjZXNzIHtcbiAgY29sb3I6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQpO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC10cmFpbGluZyAuaW5wdXQtc3RhdGUtZXJyb3Ige1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC10cmFpbGluZyAuaW5wdXQtc3RhdGUtd2FybmluZyB7XG4gIGNvbG9yOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nIC5pbnB1dC10cmFpbGluZy1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwKTtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtdHJhaWxpbmcgLmlucHV0LWNoZXZyb24ge1xuICBtYXJnaW4tcmlnaHQ6IC00cHg7XG59XG4vLyBtaWMtYnRuIC8gbm92YS1idG46IHFkbmFwcm8tYnV0dG9uIHR5cGU9XCJzdWJ0bGVcIiBpY29uLW9ubHksIGFsd2F5cyBhdCB0aGVcbi8vIGVuZCBvZiAuaW5wdXQtdHJhaWxpbmcgKG1pYyBmaXJzdCwgbm92YSBhZnRlcikuIGZsZXgtc2hyaW5rIGd1YXJkcyB0aGVtIHRoZVxuLy8gc2FtZSB3YXkgdGhlIG90aGVyIHRyYWlsaW5nIGNvbnRyb2xzIGFyZSBndWFyZGVkIGFnYWluc3QgYSBuYXJyb3cgZmllbGQuXG4vLyBhY3Rpb24tYnRuIGlzIHRoZSBnZW5lcmljIG9uZSAoYW55IGljb24sIGFueSB0eXBlLCAxNi4wOC4yMDI2KSBhbmQgc2l0cyBhZnRlclxuLy8gbWljL25vdmEgZm9yIHRoZSBzYW1lIHJlYXNvbiB0aGV5IHNpdCBsYXN0OiB0aGUgZmllbGQncyBvd24gY29udHJvbHMgKGNsZWFyLXgsXG4vLyBzdGF0ZSBpY29uKSBrZWVwIHRoZWlyIHBsYWNlLCB0aGUgaG9zdCdzIGJ1dHRvbiBsYW5kcyBhdCB0aGUgZWRnZS5cbi8vIGFjdGlvbi1idG4tMiBpcyBhIFNFQ09ORCBnZW5lcmljIHNsb3QgKDE5LjA4LjIwMjYsIFB1bHNlIGNvbXBvc2UgYmFyIG5lZWRzXG4vLyBzdGlja2VyICsgR0lGIGF0IG9uY2UpIHJlbmRlcmVkIExFRlQgb2YgYWN0aW9uLWJ0biDigJQgc2FtZSBzaXplL3NoYXBlLCBzYW1lXG4vLyBmbGV4LXNocmluayBndWFyZC5cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtdHJhaWxpbmcgLmlucHV0LW1pYy1idG4sXG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nIC5pbnB1dC1ub3ZhLWJ0bixcbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCAuaW5wdXQtdHJhaWxpbmcgLmlucHV0LWFjdGlvbi1idG4sXG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nIC5pbnB1dC1hY3Rpb24tYnRuLTIge1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXNpemUtYmlnIC5pbnB1dC1maWVsZCB7XG4gIG1pbi1oZWlnaHQ6IDUycHg7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1zaXplLXNtYWxsIC5pbnB1dC1maWVsZCB7XG4gIG1pbi1oZWlnaHQ6IDQwcHg7XG59XG4vLyBUaWdodGVyIGhvcml6b250YWwgcGFkZGluZyArIGdhcCB0aGFuIHRoZSBvdGhlciBzaXplczogYXQgMzJweCB0aGUgZGVmYXVsdFxuLy8gMTIvOCBsZWF2ZXMgdG9vIGxpdHRsZSByb29tIGZvciB0aGUgdmFsdWUgYmV0d2VlbiBhIGxlYWRpbmcgaWNvbiBhbmQgYVxuLy8gY2xlYXIteC4gW0tpbSAyMDI2LTA4LTA3XVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtc2l6ZS10aW55IC5pbnB1dC1maWVsZCB7XG4gIG1pbi1oZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgZ2FwOiA2cHg7XG59XG4vLyBQV0EtT05MWSwgZG8gbm90IHVzZSBpbiBiYWNrb2ZmaWNlMiBkZXNrdG9wL3RhYmxldCBzY3JlZW5zLiBbMjAyNi0wNy0wMV1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXNpemUtdG91Y2ggLmlucHV0LWZpZWxkIHtcbiAgbWluLWhlaWdodDogNTZweDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtZGVmaW5lZC1maWVsZCAuaW5wdXQtZmllbGQge1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBnYXA6IDA7XG59XG4vKiBbS2ltIDIwMjYtMDUtMDFdIFRyYWlsaW5nIHBvc2l0aW9uZWQgYWJzb2x1dGUgc28gdGhlIHRleHRhcmVhIGZpbGxzIGZ1bGxcbiAgIHdpZHRoIOKAlCBuYXRpdmUgc2Nyb2xsYmFyIGxhbmRzIGZsdXNoIG9uIHRoZSByaWdodCBib3JkZXIuIENsZWFyLXggZmxvYXRzXG4gICBvdmVyIHRoZSB0b3AtcmlnaHQgY29ybmVyIGp1c3QgbGVmdCBvZiB0aGUgc2Nyb2xsYmFyLiAqL1xuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1leHBhbmRpbmcgLmlucHV0LWZpZWxkIHtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWV4cGFuZGluZyAuaW5wdXQtZmllbGQgLmlucHV0LWxlYWRpbmctaWNvbiB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbi10b3A6IDE2cHg7XG4gIG1hcmdpbi1sZWZ0OiAxMnB4O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1leHBhbmRpbmcgLmlucHV0LWZpZWxkIC5pbnB1dC10cmFpbGluZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA4cHg7XG4gIHJpZ2h0OiAyMHB4O1xuICBtYXJnaW46IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB6LWluZGV4OiAxO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1leHBhbmRpbmcgLmlucHV0LWZpZWxkIHRleHRhcmVhLmlucHV0LW5hdGl2ZSB7XG4gIHJlc2l6ZTogbm9uZTtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbWluLWhlaWdodDogNTJweDtcbiAgcGFkZGluZzogMTRweCA1MnB4IDE0cHggMTJweDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtZXhwYW5kaW5nLmlucHV0LXNpemUtc21hbGwgLmlucHV0LWZpZWxkIC5pbnB1dC1sZWFkaW5nLWljb24ge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1leHBhbmRpbmcuaW5wdXQtc2l6ZS1zbWFsbCAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nIHtcbiAgdG9wOiA0cHg7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWV4cGFuZGluZy5pbnB1dC1zaXplLXNtYWxsIC5pbnB1dC1maWVsZCB0ZXh0YXJlYS5pbnB1dC1uYXRpdmUge1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBwYWRkaW5nOiA4cHggNTJweCA4cHggMTJweDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtZXhwYW5kaW5nLmlucHV0LXNpemUtdGlueSAuaW5wdXQtZmllbGQgLmlucHV0LWxlYWRpbmctaWNvbiB7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWV4cGFuZGluZy5pbnB1dC1zaXplLXRpbnkgLmlucHV0LWZpZWxkIC5pbnB1dC10cmFpbGluZyB7XG4gIHRvcDogNHB4O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1leHBhbmRpbmcuaW5wdXQtc2l6ZS10aW55IC5pbnB1dC1maWVsZCB0ZXh0YXJlYS5pbnB1dC1uYXRpdmUge1xuICBtaW4taGVpZ2h0OiAzMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgcGFkZGluZzogNnB4IDQ0cHggNnB4IDEwcHg7XG59XG5cbi8qIERlIGFjdGlvbi1rbm9wIGluIGVlbiBFWFBBTkRJTkcgdmVsZCBob29ydCBPTkRFUkFBTiwgbmlldCBib3ZlbmFhbi5cbiAgIEVlbiBleHBhbmRpbmcgdmVsZCBwaW50IHppam4gdHJhaWxpbmctem9uZSBiZXd1c3QgdGVnZW4gZGUgcmVjaHRlckJPVkVOaG9lazpcbiAgIGJpaiBlZW4gdmVsZCB2YW4gdmllciByZWdlbHMgbW9ldCBoZXQgd2lzLWtydWlzamUgYm92ZW5pbiBibGlqdmVuIHN0YWFuLiBWb29yXG4gICBlZW4gYWN0aW9uLWtub3Aga2xvcHQgcHJlY2llcyBoZXQgb21nZWtlZXJkZSDigJQgZGF0IGlzIGRlIGtub3AgYmlqIGRlIHJlZ2VsXG4gICB3YWFyIGplIG9wIHR5cHQgKGVlbiBjaGF0LWludm9lcmJhbGssIHdhYXJ2b29yIGBhY3Rpb24tYnRuYCBnZW1hYWt0IGlzKS4gQmlqXG4gICDDqcOpbiByZWdlbCB2YWx0IFwib25kZXJhYW5cIiBzYW1lbiBtZXQgXCJnZWNlbnRyZWVyZFwiLCBlbiBncm9laXQgaGV0IHZlbGQgdWl0LFxuICAgZGFuIHpha3QgZGUga25vcCBtZWUuXG4gICBEZXplIHJlZ2VsIHN0YWF0IG1ldCBPUFpFVCBuYSBkZSBzaXplLXZhcmlhbnRlbiBoaWVyYm92ZW46IGhpaiBoZWVmdCBldmVudmVlbFxuICAga2xhc3NlbiBhbHMgZGllICh2aWpmKSwgZHVzIGFsbGVlbiBkZSB2b2xnb3JkZSBpbiBkaXQgYmVzdGFuZCBiZXNsaXN0LiBFZXJkZXJcbiAgIHN0b25kIGRpdCBhbHMgbG9zc2UgcmVnZWwgaW4gZGUgUFdBLUNTUyBlbiBkYW4gaXMgaGV0IGVlbiBzcGVjaWZpY2l0ZWl0c2dldmVjaHRcbiAgIG1ldCBlZW4gY29tcG9uZW50IGRhdCBqZSBuaWV0IHppZXQgYWFua29tZW4g4oCUIGhldCBnaW5nIGRhYXIgdHdlZSBrZWVyIG1pc1xuICAgdm9vcmRhdCBoZXQgaGllciB0ZXJlY2h0a3dhbS4gW0tpbSAxNi4wOC4yMDI2XSAqL1xuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1leHBhbmRpbmcuaW5wdXQtaGFzLWFjdGlvbiAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nIHtcbiAgLyogTUlEREVOLCBlbiB6b25kZXIgdGUgcmVrZW5lbi4gSGllciBzdG9uZCBlZXJzdCBgYm90dG9tOiA4cHhgLCBlbiBkYWFydm9vclxuICAgICBgYm90dG9tOiAxMHB4YCwgZW4gZGFhcnZvb3IgZWVuIHJlZ2VsIGluIGRlIGFwcC1DU1M6IGVsa2UgdmFyaWFudCBoaW5nIGFmXG4gICAgIHZhbiBkZSBob29ndGUgdmFuIGRlIGtub3AsIGRlIGhvb2d0ZSB2YW4gaGV0IHZlbGQgZW4gZGUgbGFhZHZvbGdvcmRlIHZhblxuICAgICB0d2VlIENTUy1iZXN0YW5kZW4sIGVuIGVsa2UgdmFyaWFudCB3YXMgZXJnZW5zIGFuZGVycyB3ZWVyIGVlbiBwYWFyIHBpeGVsc1xuICAgICBzY2hlZWYuIFZpZXIgcG9naW5nZW4sIHZpZXIga2VlciBiaWpuYSBnb2VkLiBEaXQgY2VudHJlZXJ0IGRlIHRyYWlsaW5nLXpvbmVcbiAgICAgb25nZWFjaHQgaG9lIGhvb2cgaGlqIGlzIGVuIG9uZ2VhY2h0IGRlIG1hYXQgdmFuIGhldCB2ZWxkLiAqL1xuICB0b3A6IDUwJTtcbiAgYm90dG9tOiBhdXRvO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIC8qIERpY2h0ZXIgbmFhciBkZSBob2VrIGRhbiBkZSBzdGFuZGFhcmQgMjBweCB2YW4gZWVuIGV4cGFuZGluZyB2ZWxkLiBEaWUgMjBweFxuICAgICBob3VkdCBkYWFyIHJ1aW10ZSB2cmlqIHZvb3IgZGUgc3lzdGVlbS1zY3JvbGxiYWxrIG5hYXN0IGhldCB3aXMta3J1aXNqZTsgZWVuXG4gICAgIHZlbGQgbWV0IGVlbiBhY3Rpb24ta25vcCBoZWVmdCBkaWUgcnVpbXRlIG5pZXQgbm9kaWcgKGBuby1jbGVhcmAgaG9vcnQgYmlqXG4gICAgIGRpdCBwYXRyb29uKSBlbiBkZSBrbm9wIGhvb3J0IGRhbiBnZXdvb24gaW4gZGUgaG9lay4gW0tpbSAxNi4wOC4yMDI2XSAqL1xuICByaWdodDogOHB4O1xufVxuLyogR2VlbiBhcGFydGUgbWFhdC1yZWdlbCBtZWVyIG5vZGlnOiBkZSBjZW50cmVyaW5nIGhpZXJib3ZlbiBrbG9wdCBiaWogZWxrZVxuICAgbWFhdC4gKi9cbi8qIG5vLWNsZWFyOiBubyB0cmFpbGluZyBjbGVhci14LCBzbyB0aGUgdGV4dGFyZWEgcmVjbGFpbXMgdGhlIHJlc2VydmVkIHJpZ2h0XG4gICBzcGFjZSBhbmQgdXNlcyB0aGUgZnVsbCB3aWR0aC4gW0tpbSAyMDI2LTA2LTE2XSAqL1xuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1leHBhbmRpbmdbbm8tY2xlYXJdIC5pbnB1dC1maWVsZCB0ZXh0YXJlYS5pbnB1dC1uYXRpdmUge1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xufVxuLnFkbmFwcm8taW5wdXQ6bm90KC5pbnB1dC1maWxsZWQpIFtkYXRhLXJvbGU9Y2xlYXJdIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtbnVtYmVyIC5pbnB1dC1udW1iZXItc3RlcHBlcnMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwO1xuICBtYXJnaW4tcmlnaHQ6IC00cHg7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLW51bWJlciAuaW5wdXQtbnVtYmVyLXN0ZXBwZXJzID4gcWRuYXByby1pY29uLWJ0biB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtbnVtYmVyIC5pbnB1dC1udW1iZXItc3RlcHBlcnMgPiBxZG5hcHJvLWljb24tYnRuIHFkbmFwcm8taWNvbiB7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWF1dG9jb21wbGV0ZSAuaW5wdXQtZmllbGQtcm93LCAucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLXBob25lIC5pbnB1dC1maWVsZC1yb3cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtYWMtZHJvcGRvd24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgNHB4KTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IDMyMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMzAwKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wOCksIDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCk7XG4gIHBhZGRpbmc6IDhweDtcbiAgei1pbmRleDogMTAwMDtcbn1cbi5pbnB1dC1leHRlcm5hbC1idG4gKyAucWRuYXByby1pbnB1dCAuaW5wdXQtYWMtZHJvcGRvd24ge1xuICByaWdodDogNjBweDtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwYWRkaW5nOiAwIDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZm9udC1mYW1pbHk6IGludGVyLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1pdGVtICsgLnFkbmFwcm8taW5wdXQgLmlucHV0LWFjLWl0ZW0ge1xuICBtYXJnaW4tdG9wOiA0cHg7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtYWMtaXRlbSBzdHJvbmcge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWFjLWl0ZW06aG92ZXIsIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1pdGVtLmlucHV0LWFjLWl0ZW0tYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1pdGVtLmlucHV0LWFjLWl0ZW0tZGlzYWJsZWQge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWFjLWVtcHR5IHtcbiAgcGFkZGluZzogMTJweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1sb2FkaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAxMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTYwMCk7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtYWMtc3Bpbm5lciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYy1ncmV5LTMwMCk7XG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYW5pbWF0aW9uOiBxZG5hcHJvLWFjLXNwaW4gMC43cyBsaW5lYXIgaW5maW5pdGU7XG59XG5Aa2V5ZnJhbWVzIHFkbmFwcm8tYWMtc3BpbiB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtYWMtZXJyb3Ige1xuICBwYWRkaW5nOiAxMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1hYy1vcGVuIC5pbnB1dC1maWVsZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNDAwKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoNzAsIDgyLCAyNDMsIDAuNCk7XG59XG4vKiBLbGV1ciB2YW4gZGUgQ1VSUkVOQ1ktUFJFRklYIChoZXQgZXVyb3Rla2VuKSBpbiBkZSBiYXNpcywgZHVzIGJpaiBlZW4gbGVlZyBvZiBub2dcbiAgIG9udmVyYW5kZXJkIHZlbGQgKGJlc2x1aXQgNzgsIHZlcnZvbGcgMzEuMDcuMjAyNikuIFplbGZkZSBjb250cmFzdC1pbnZlcnNpZSBhbHMgZGVcbiAgIHBsYWNlaG9sZGVyIGVuIGhldCBsZWFkaW5nLWljb29uOiBzdG9uZCBvcCB2YXIoLS1jLWdyZXktNDAwKSBlbiBkYXQgaXMgTElDSFRFUiBkYW4gZGVcbiAgIHVpdGdlc2NoYWtlbGRlIHN0YW5kIHZhcigtLWMtdGV4dC1kaXNhYmxlZCksIHdhYXJkb29yIGVlbiBnZXdvb24gYmVkcmFndmVsZCBsZWVzdCBhbHMgZWVuIHZlbGQgZGF0XG4gICBqZSBuaWV0IG1hZyBnZWJydWlrZW4uIEdlbWV0ZW4gbWV0IGRlIFdDQUctZm9ybXVsZTpcbiAgICAgb3VkICB2YXIoLS1jLWdyZXktNDAwKSAgb3Agd2l0ICNmZmZmZmYgICAgICAgICAgICAgIC0+IDIuMzM6MVxuICAgICBvdWQgIHZhcigtLWMtZ3JleS00MDApICBvcCAtLWMtZ3JleS0xMDAgdmFyKC0tYy1ncmV5LTEwMCkgICAgIC0+IDEuOTE6MVxuICAgICBvdWQgIHZhcigtLWMtZ3JleS00MDApICBvcCBoZXQgdWl0Z2VzY2hha2VsZGUgdmxhayB2YXIoLS1jLWdyZXktNTApIC0+IDIuMDY6MVxuICAgICBkaXNhYmxlZC1wcmVmaXggdmFyKC0tYy10ZXh0LWRpc2FibGVkKSBvcCB2YXIoLS1jLWdyZXktNTApICh6aWpuIGVpZ2VuIHZsYWspIC0+IDIuOTA6MVxuICAgICBuaWV1dyB2YXIoLS1jLXRleHQtbXV0ZWQpIHZhcigtLWMtdGV4dC1tdXRlZCkgb3Agd2l0ICAtPiA0Ljc5OjFcbiAgICAgbmlldXcgb3AgdmFyKC0tYy1ncmV5LTEwMCkgICAgICAgICAgICAgICAgICAgICAgICAgIC0+IDMuOTQ6MVxuICAgICBuaWV1dyBvcCB2YXIoLS1jLWdyZXktNTApICAgICAgICAgICAgICAgICAgICAgICAgICAtPiA0LjI0OjFcbiAgIERlIHByZWZpeCB2b2xnZGUgYmV3dXN0IGRlIHBsYWNlaG9sZGVyLWtsZXVyIChoZXQgaXMgZGV6ZWxmZGUgXCJub2cgbmlldHMgaW5nZXZ1bGRcIlxuICAgc3RhbmQpLCBkdXMgaGlqIG1vZXN0IG1lZSBtZXQgZGUgcGxhY2Vob2xkZXItZml4LiBEZSB0d2VlIHJlZ2VscyBoaWVyb25kZXIgYmxpanZlblxuICAgb25nZW1vZWlkOiBnZXZ1bGQgZ2FhdCBuYWFyIGJpam5hLXp3YXJ0LCB1aXRnZXNjaGFrZWxkIGJsaWpmdCB2YXIoLS1jLXRleHQtZGlzYWJsZWQpLlxuICAgRmFsbGJhY2sgdmFyKC0tYy10ZXh0LW11dGVkKSBvbSBkZXplbGZkZSByZWRlbiBhbHMgYmlqIGhldCBsZWFkaW5nLWljb29uIGhpZXJib3Zlbi4gKi9cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtY3VycmVuY3kgLmlucHV0LWN1cnJlbmN5LXByZWZpeCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmbGV4LXNocmluazogMDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWN1cnJlbmN5LmlucHV0LWZpbGxlZCAuaW5wdXQtY3VycmVuY3ktcHJlZml4IHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1jdXJyZW5jeS5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtY3VycmVuY3ktcHJlZml4IHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWN1cnJlbmN5IC5pbnB1dC1uYXRpdmUge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4vKiA9PT0gbnVtYmVyIC8gY3VycmVuY3kgKy8tIHNwaW5uZXIgaG9yaXpvbnRhbCBsYXlvdXQgPT09XG4gICBQb3J0ZWQgdG8gdGhlIGJ1aWxkIHNvdXJjZSAyMDI2LTA2LTE5ICh3YXMgb25seSBpbiBmb3Itc2FuZGVyL19pbnB1dC5zY3NzLFxuICAgc28gdGhlIGxpdmUgY291bnRlciBuZXZlciBnb3QgaXRzIGJ1dHRvbiBudWRnZXMpLiBMYXlvdXQ6IFsgLSBdIHZhbHVlIFsgKyBdLlxuICAgVGhlIG1pbnVzIGJ1dHRvbiBpcyB0aGUgZmlyc3QgY2hpbGQgb2YgLmlucHV0LWZpZWxkOyB0aGUgcGx1cyBsaXZlcyBpblxuICAgLmlucHV0LXRyYWlsaW5nLiAqL1xuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1udW1iZXIuaW5wdXQtbnVtYmVyLWhvcml6b250YWwgLmlucHV0LW5hdGl2ZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LW51bWJlci1ob3Jpem9udGFsIC5pbnB1dC1maWVsZCA+IHFkbmFwcm8taWNvbi1idG5bZGF0YS1yb2xlPVwic3RlcC1kb3duXCJdIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICBtYXJnaW4tcmlnaHQ6IDRweDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LW51bWJlci1ob3Jpem9udGFsIC5pbnB1dC10cmFpbGluZyA+IHFkbmFwcm8taWNvbi1idG5bZGF0YS1yb2xlPVwic3RlcC11cFwiXSB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXJnaW4tcmlnaHQ6IC00cHg7XG59XG4vKiBDdXJyZW5jeSArIGNvdW50ZXI6IHBsYWNlIHRoZSBtaW51cyBidXR0b24gYmVmb3JlIHRoZSBjdXJyZW5jeSBwcmVmaXggdmlhXG4gICBmbGV4IG9yZGVyLCBnaXZpbmcgWyAtIF0gWyDigqwgdmFsdWUgXSBbICsgXS4gVGhlIOKCrCBzdGF5cyBuZXh0IHRvIHRoZSBhbW91bnQuICovXG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWN1cnJlbmN5LmlucHV0LW51bWJlci1ob3Jpem9udGFsIC5pbnB1dC1maWVsZCA+IHFkbmFwcm8taWNvbi1idG5bZGF0YS1yb2xlPVwic3RlcC1kb3duXCJdIHtcbiAgb3JkZXI6IC0xO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1waG9uZSAuaW5wdXQtY291bnRyeS1waWNrZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIHBhZGRpbmc6IDRweCAxMnB4O1xuICBtYXJnaW46IDAgOXB4IDAgNHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udDogaW5oZXJpdDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05MDApO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtcGhvbmUgLmlucHV0LWNvdW50cnktcGlja2VyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IC05cHg7XG4gIHRvcDogOHB4O1xuICBib3R0b206IDhweDtcbiAgd2lkdGg6IDFweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLXBob25lIC5pbnB1dC1jb3VudHJ5LXBpY2tlcjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtcGhvbmUgLmlucHV0LWNvdW50cnktcGlja2VyW2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIG9wYWNpdHk6IDAuNjtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtcGhvbmUgLmlucHV0LWNvdW50cnktcGlja2VyLmlucHV0LWNvdW50cnktcGlja2VyLXN0YXRpYyB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtcGhvbmUgLmlucHV0LWNvdW50cnktcGlja2VyLmlucHV0LWNvdW50cnktcGlja2VyLXN0YXRpYzpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1waG9uZSAuaW5wdXQtY291bnRyeS1waWNrZXIgLmlucHV0LWNvdW50cnktZmxhZyB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1waG9uZSAuaW5wdXQtY291bnRyeS1waWNrZXIgLmlucHV0LWNvdW50cnktZGlhbCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNjAwKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtcGhvbmUgLmlucHV0LWNvdW50cnktcGlja2VyIC5pbnB1dC1jb3VudHJ5LWNoZXYge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1jb3VudHJ5LWRyb3Bkb3duIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArIDRweCk7XG4gIGxlZnQ6IDA7XG4gIG1pbi13aWR0aDogMjIwcHg7XG4gIG1heC1oZWlnaHQ6IDI4MHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMzAwKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wOCksIDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCk7XG4gIHBhZGRpbmc6IDhweDtcbiAgei1pbmRleDogMTAwMDtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1jb3VudHJ5LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQwcHg7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1jb3VudHJ5LWl0ZW0gKyAucWRuYXByby1pbnB1dCAuaW5wdXQtY291bnRyeS1pdGVtIHtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWNvdW50cnktaXRlbTpob3ZlciwgLnFkbmFwcm8taW5wdXQgLmlucHV0LWNvdW50cnktaXRlbS5pbnB1dC1jb3VudHJ5LWl0ZW0tYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1jb3VudHJ5LWl0ZW0gLmlucHV0LWNvdW50cnktZmxhZyB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWNvdW50cnktaXRlbSAuaW5wdXQtY291bnRyeS1uYW1lIHtcbiAgZmxleDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5xZG5hcHJvLWlucHV0IC5pbnB1dC1jb3VudHJ5LWl0ZW0gLmlucHV0LWNvdW50cnktZGlhbCB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNjAwKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLW51bWJlci5pbnB1dC1udW1iZXItcmlnaHQgLmlucHV0LW5hdGl2ZSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZmlsbGVkIC5pbnB1dC1maWVsZCAuaW5wdXQtbmF0aXZlIHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtc3VjY2VzcyAuaW5wdXQtZmllbGQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQpO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZXJyb3IgLmlucHV0LWZpZWxkIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC13YXJuaW5nIC5pbnB1dC1maWVsZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy13YXJuLXllbGxvdy02MDApO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNDAwKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoNzAsIDgyLCAyNDMsIDAuNCk7XG59XG4ucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIC5pbnB1dC1uYXRpdmU6OnBsYWNlaG9sZGVyIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXN1Y2Nlc3MgLmlucHV0LWZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDExMCwgMjMxLCAxODMsIDAuNCk7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1lcnJvciAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI0OCwgMTEzLCAxMTMsIDAuNCk7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC13YXJuaW5nIC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4ge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMjUxLCAxOTEsIDkyLCAwLjQpO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtc2VsZWN0IC5pbnB1dC1maWVsZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNDAwKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoNzAsIDgyLCAyNDMsIDAuNCk7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1zZWxlY3QuaW5wdXQtc3VjY2VzcyAuaW5wdXQtZmllbGQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQpO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgxMTAsIDIzMSwgMTgzLCAwLjQpO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtc2VsZWN0LmlucHV0LWVycm9yIC5pbnB1dC1maWVsZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgyNDgsIDExMywgMTEzLCAwLjQpO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtc2VsZWN0LmlucHV0LXdhcm5pbmcgLmlucHV0LWZpZWxkIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI1MSwgMTkxLCA5MiwgMC40KTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZCwgLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkOmhvdmVyLCAucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogW0tpbSAyMDI2LTA1LTAxXSBubyBvdXRlciBib3JkZXIgZm9yIHNvZnRlciBsb29rICovXG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQgLmlucHV0LW5hdGl2ZSwgLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkOmhvdmVyIC5pbnB1dC1uYXRpdmUsIC5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4gLmlucHV0LW5hdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkIC5pbnB1dC1uYXRpdmU6OnBsYWNlaG9sZGVyLCAucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQ6aG92ZXIgLmlucHV0LW5hdGl2ZTo6cGxhY2Vob2xkZXIsIC5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4gLmlucHV0LW5hdGl2ZTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZCAuaW5wdXQtbGVhZGluZy1pY29uLFxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkIC5pbnB1dC10cmFpbGluZy1pY29uLCAucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQ6aG92ZXIgLmlucHV0LWxlYWRpbmctaWNvbixcbi5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZDpob3ZlciAuaW5wdXQtdHJhaWxpbmctaWNvbiwgLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkOmZvY3VzLXdpdGhpbiAuaW5wdXQtbGVhZGluZy1pY29uLFxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkOmZvY3VzLXdpdGhpbiAuaW5wdXQtdHJhaWxpbmctaWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkIC5pbnB1dC1wcmV0YWIsXG4ucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQgLmlucHV0LXBvc3R0YWIsIC5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZDpob3ZlciAuaW5wdXQtcHJldGFiLFxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkOmhvdmVyIC5pbnB1dC1wb3N0dGFiLCAucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIC5pbnB1dC1wcmV0YWIsXG4ucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIC5pbnB1dC1wb3N0dGFiIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1ncmV5LTMwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkIC5pbnB1dC1wcmV0YWIgcWRuYXByby1pY29uLFxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkIC5pbnB1dC1wb3N0dGFiIHFkbmFwcm8taWNvbiwgLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkOmhvdmVyIC5pbnB1dC1wcmV0YWIgcWRuYXByby1pY29uLFxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkOmhvdmVyIC5pbnB1dC1wb3N0dGFiIHFkbmFwcm8taWNvbiwgLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWZpZWxkOmZvY3VzLXdpdGhpbiAuaW5wdXQtcHJldGFiIHFkbmFwcm8taWNvbixcbi5xZG5hcHJvLWlucHV0LmlucHV0LWRpc2FibGVkIC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4gLmlucHV0LXBvc3R0YWIgcWRuYXByby1pY29uIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQgLmlucHV0LWZpZWxkLWlubmVyLCAucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQ6aG92ZXIgLmlucHV0LWZpZWxkLWlubmVyLCAucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIC5pbnB1dC1maWVsZC1pbm5lciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtcmVhZG9ubHkgLmlucHV0LWZpZWxkLCAucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQ6aG92ZXIsIC5xZG5hcHJvLWlucHV0LmlucHV0LXJlYWRvbmx5IC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtcmVhZG9ubHkgLmlucHV0LWZpZWxkIC5pbnB1dC1uYXRpdmUsIC5xZG5hcHJvLWlucHV0LmlucHV0LXJlYWRvbmx5IC5pbnB1dC1maWVsZDpob3ZlciAuaW5wdXQtbmF0aXZlLCAucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIC5pbnB1dC1uYXRpdmUge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCk7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQgLmlucHV0LWZpZWxkLWlubmVyLCAucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQ6aG92ZXIgLmlucHV0LWZpZWxkLWlubmVyLCAucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIC5pbnB1dC1maWVsZC1pbm5lciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtcmVhZG9ubHkgLmlucHV0LWZpZWxkIC5pbnB1dC1wcmV0YWIsXG4ucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQgLmlucHV0LXBvc3R0YWIsIC5xZG5hcHJvLWlucHV0LmlucHV0LXJlYWRvbmx5IC5pbnB1dC1maWVsZDpob3ZlciAuaW5wdXQtcHJldGFiLFxuLnFkbmFwcm8taW5wdXQuaW5wdXQtcmVhZG9ubHkgLmlucHV0LWZpZWxkOmhvdmVyIC5pbnB1dC1wb3N0dGFiLCAucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIC5pbnB1dC1wcmV0YWIsXG4ucWRuYXByby1pbnB1dC5pbnB1dC1yZWFkb25seSAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIC5pbnB1dC1wb3N0dGFiIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtcmVhZG9ubHkgLmlucHV0LWZpZWxkIC5pbnB1dC1wcmV0YWIgcWRuYXByby1pY29uLFxuLnFkbmFwcm8taW5wdXQuaW5wdXQtcmVhZG9ubHkgLmlucHV0LWZpZWxkIC5pbnB1dC1wb3N0dGFiIHFkbmFwcm8taWNvbiwgLnFkbmFwcm8taW5wdXQuaW5wdXQtcmVhZG9ubHkgLmlucHV0LWZpZWxkOmhvdmVyIC5pbnB1dC1wcmV0YWIgcWRuYXByby1pY29uLFxuLnFkbmFwcm8taW5wdXQuaW5wdXQtcmVhZG9ubHkgLmlucHV0LWZpZWxkOmhvdmVyIC5pbnB1dC1wb3N0dGFiIHFkbmFwcm8taWNvbiwgLnFkbmFwcm8taW5wdXQuaW5wdXQtcmVhZG9ubHkgLmlucHV0LWZpZWxkOmZvY3VzLXdpdGhpbiAuaW5wdXQtcHJldGFiIHFkbmFwcm8taWNvbixcbi5xZG5hcHJvLWlucHV0LmlucHV0LXJlYWRvbmx5IC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4gLmlucHV0LXBvc3R0YWIgcWRuYXByby1pY29uIHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDApO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LW1lc3NhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LW1lc3NhZ2UgcWRuYXByby1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LW1lc3NhZ2UtZXJyb3Ige1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xufVxuLnFkbmFwcm8taW5wdXQgLmlucHV0LW1lc3NhZ2Utd2FybmluZyB7XG4gIGNvbG9yOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1sYWJlbCB7XG4gIGNvbG9yOiAjZjBmMWYyO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LW9wdGlvbmFsIHtcbiAgY29sb3I6ICNhNmFhYjM7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtaGludCB7XG4gIGNvbG9yOiAjYTZhYWIzO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LXJlcXVpcmVkIHtcbiAgY29sb3I6ICNmODcxNzE7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQge1xuICBiYWNrZ3JvdW5kOiAjMGIwYjBkO1xuICBib3JkZXItY29sb3I6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtbmF0aXZlIHtcbiAgY29sb3I6ICNmMGYxZjI7XG59XG4vLyBGaWxsZWQtc3RhdGUgb3ZlcnJpZGUgKGxpbmUgfjUyMCwgLmlucHV0LWZpbGxlZCAuaW5wdXQtZmllbGQgLmlucHV0LW5hdGl2ZSlcbi8vIGlzIDQgY2xhc3NlcyBkZWVwICgwLDQsMCkgYW5kIG90aGVyd2lzZSBiZWF0cyB0aGUgcGxhaW4gZGFyayBydWxlIGFib3ZlXG4vLyAoMCwzLDApIHJlZ2FyZGxlc3Mgb2Ygc291cmNlIG9yZGVyLCBmb3JjaW5nIG5lYXItYmxhY2sgdGV4dCBvbnRvIHRoZVxuLy8gbmVhci1ibGFjayBkYXJrIC5pbnB1dC1maWVsZCBiYWNrZ3JvdW5kIOKAlCBpbnZpc2libGUuIE1hdGNoIGl0cyBzcGVjaWZpY2l0eVxuLy8gaGVyZSBzbyBkYXJrIG1vZGUgd2lucyBvbmNlIGEgZmllbGQgYWN0dWFsbHkgaGFzIGEgdmFsdWUuIFswNy4wNy4yMDI2XVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQuaW5wdXQtZmlsbGVkIC5pbnB1dC1maWVsZCAuaW5wdXQtbmF0aXZlIHtcbiAgY29sb3I6ICNmMGYxZjI7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtbmF0aXZlOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjODk4ZTk5O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LWxlYWRpbmctaWNvbixcbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC10cmFpbGluZy1pY29uIHtcbiAgY29sb3I6ICM4OThlOTk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC1maWxsZWQgLmlucHV0LWxlYWRpbmctaWNvbiwgW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQuaW5wdXQtZmlsbGVkIC5pbnB1dC10cmFpbGluZy1pY29uIHtcbiAgY29sb3I6ICNlMWUzZTY7XG59XG4vKiBDdXJyZW5jeS1wcmVmaXggaW4gZGUgZG9ua2VyZSBzdGFuZDogRVhQTElDSUVUIG9wIGRlIGtsZXVyIGRpZSBoaWogaGllciB2YW5kYWFnIG9va1xuICAgYWwgaGVlZnQsIHpvZGF0IGRlIGJhc2lzLWZpeCBoaWVyYm92ZW4gKHZhcigtLWMtZ3JleS00MDApIC0+IHZhcigtLWMtdGV4dC1tdXRlZCkpIGhldCBkb25rZXJlXG4gICB0aGVtYSBuaWV0IG1lZXNsZWVwdC4gRGl0IGlzIGdlZW4gbmlldXdlIGtldXplOiBpbiBoZXQgZG9ua2VyZSB0aGVtYSByZXNvbHZlZXJ0XG4gICAtLWMtdGV4dC1tdXRlZCBuYWFyIC0tYy1ncmV5LTQwMCBlbiBkYXQgSVMgdmFyKC0tYy1ncmV5LTQwMCksIGR1cyBkZSBkb25rZXJlIHN0YW5kIHZlcmFuZGVydFxuICAgbmlldC4gRGUgcmVnZWwgc3RhYXQgZXIgb21kYXQgZGUgYmFzaXMgbnUgZWVuIHRva2VuIGdlYnJ1aWt0IGRhdCBwZXIgdGhlbWEgaWV0c1xuICAgYW5kZXJzIGJldGVrZW50LCBlbiBvbWRhdCBkZSBwcmV2aWV3IGRlIHRva2VucyB6ZWxmIG5pZXQgZGVmaW5pZWVydCAoZGFhciB6b3UgZGVcbiAgIGZhbGxiYWNrIHZhcigtLWMtdGV4dC1tdXRlZCkgYW5kZXJzIG9wIGRlIGJpam5hLXp3YXJ0ZSBkb25rZXJlIHZ1bGxpbmcgYmVsYW5kZW4pLlxuICAgQW5kZXJzIGRhbiBkZSBwbGFjZWhvbGRlciBlbiBoZXQgbGVhZGluZy1pY29vbiBoYWQgZGUgcHJlZml4IG5vZyBnZWVuIGVpZ2VuIGRvbmtlcmVcbiAgIHJlZ2VsIHZvb3IgZGUgbGVnZSBzdGFuZCwgYWxsZWVuIHZvb3IgZ2V2dWxkL3VpdGdlc2NoYWtlbGQvYWxsZWVuLWxlemVuLiAqL1xuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1jdXJyZW5jeSAuaW5wdXQtY3VycmVuY3ktcHJlZml4IHtcbiAgY29sb3I6ICNhNmFhYjM7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQ6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICM2NjZkYWU7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC1mb2N1cyAuaW5wdXQtZmllbGQsXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgYm9yZGVyLWNvbG9yOiAjNTM1YmE0O1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg3MCwgODIsIDI0MywgMC40KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0LmlucHV0LXNlbGVjdCAuaW5wdXQtZmllbGQge1xuICBib3JkZXItY29sb3I6ICM1MzViYTQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjQpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQuaW5wdXQtc3VjY2VzcyAuaW5wdXQtZmllbGQge1xuICBib3JkZXItY29sb3I6ICM1OGI5OTI7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDEzOSwgMjM2LCAxOTcsIDAuNCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtc3RhdGUtc3VjY2VzcyB7XG4gIGNvbG9yOiAjNThiOTkyO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQuaW5wdXQtZXJyb3IgLmlucHV0LWZpZWxkIHtcbiAgYm9yZGVyLWNvbG9yOiAjZjk4ZDhkO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgyNDksIDE0MSwgMTQxLCAwLjQpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LXN0YXRlLWVycm9yIHtcbiAgY29sb3I6ICNmODcxNzE7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtbWVzc2FnZS1lcnJvciB7XG4gIGNvbG9yOiAjZjg3MTcxO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQuaW5wdXQtd2FybmluZyAuaW5wdXQtZmllbGQge1xuICBib3JkZXItY29sb3I6ICNlZjhlMDI7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI1MSwgMTkxLCA5MiwgMC40KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1zdGF0ZS13YXJuaW5nIHtcbiAgY29sb3I6ICNlZjhlMDI7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtbWVzc2FnZS13YXJuaW5nIHtcbiAgY29sb3I6ICNlZjhlMDI7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC1kaXNhYmxlZCAuaW5wdXQtZmllbGQge1xuICBiYWNrZ3JvdW5kOiAjNDA0NDRkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LW5hdGl2ZSB7XG4gIGNvbG9yOiAjNmI3MjgwO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LWxlYWRpbmctaWNvbiwgW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQuaW5wdXQtZGlzYWJsZWQgLmlucHV0LXRyYWlsaW5nLWljb24ge1xuICBjb2xvcjogIzZiNzI4MDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0LmlucHV0LXJlYWRvbmx5IC5pbnB1dC1maWVsZCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtcHJldGFiLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LXBvc3R0YWIge1xuICBiYWNrZ3JvdW5kOiAjNDA0NDRkO1xuICBjb2xvcjogI2E2YWFiMztcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1wcmV0YWIgcWRuYXByby1pY29uLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LXBvc3R0YWIgcWRuYXByby1pY29uIHtcbiAgY29sb3I6ICNhNmFhYjM7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtcHJldGFiIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjNTY1YjY2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LXBvc3R0YWIge1xuICBib3JkZXItbGVmdC1jb2xvcjogIzU2NWI2Njtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZC1pbm5lciB7XG4gIGJhY2tncm91bmQ6ICMwYjBiMGQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLXNlYXJjaCAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1kcm9wZG93bi1zZWFyY2gsXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1kcm9wZG93bi1zZWFyY2gge1xuICBiYWNrZ3JvdW5kOiAjNDA0NDRkO1xuICBjb2xvcjogI2UxZTNlNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtc2VhcmNoIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRyb3Bkb3duLXNlYXJjaDpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSxcbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRyb3Bkb3duLXNlYXJjaDpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLXBob25lIC5pbnB1dC1jb3VudHJ5LXBpY2tlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjNTY1YjY2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LWFjLWRyb3Bkb3duIHtcbiAgYmFja2dyb3VuZDogIzFmMjAyODtcbiAgYm9yZGVyLWNvbG9yOiAjNTY1YjY2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQgLmlucHV0LWFjLWl0ZW0ge1xuICBjb2xvcjogI2UxZTNlNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1pdGVtOmhvdmVyLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtYWMtaXRlbS5pbnB1dC1hYy1pdGVtLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtYWMtaXRlbSBzdHJvbmcge1xuICBjb2xvcjogI2YwZjFmMjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1lbXB0eSxcbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1sb2FkaW5nIHtcbiAgY29sb3I6ICNhNmFhYjM7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dCAuaW5wdXQtYWMtZXJyb3Ige1xuICBjb2xvcjogI2Y4NzE3MTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1hYy1zcGlubmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjNTY1YjY2O1xuICBib3JkZXItdG9wLWNvbG9yOiAjNDY1MmYzO1xufVxuXG4vKiA9PT0gdGhlbWU6IGdsYXNzIOKAlCBhZGRlZCAyMDI2LTA2LTA4ID09PVxuICAgVHJhbnNsdWNlbnQgZmllbGRzIGZvciB1c2Ugb24gYSBkYXJrIC8gY29sb3VyZWQgc3VyZmFjZSAoZS5nLiB0aGUgbG9naW5cbiAgIHN0YWdlKS4gU2FtZSBzdHJ1Y3R1cmUgYW5kIGJlaGF2aW91ciBhcyB0aGUgZGVmYXVsdCBpbnB1dDsgb25seSB0aGUgY29sb3Vyc1xuICAgY2hhbmdlLiBBY3RpdmF0ZSBieSBzZXR0aW5nIGRhdGEtdGhlbWU9XCJnbGFzc1wiIG9uIGFuIGFuY2VzdG9yICh0aGUgbG9naW5cbiAgIGZvcm0gZG9lcyB0aGlzKS4gRm9jdXMgcmluZyB1c2VzIHRoZSBsb2dpbiBsaWxhIGFjY2VudC4gKi9cbltkYXRhLXRoZW1lPWdsYXNzXSAucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yOCk7XG59XG5bZGF0YS10aGVtZT1nbGFzc10gLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC1uYXRpdmUge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbltkYXRhLXRoZW1lPWdsYXNzXSAucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LW5hdGl2ZTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuW2RhdGEtdGhlbWU9Z2xhc3NdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1sZWFkaW5nLWljb24sXG5bZGF0YS10aGVtZT1nbGFzc10gLnFkbmFwcm8taW5wdXQgLmlucHV0LXRyYWlsaW5nLWljb24ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcbn1cbltkYXRhLXRoZW1lPWdsYXNzXSAucWRuYXByby1pbnB1dC5pbnB1dC1maWxsZWQgLmlucHV0LWxlYWRpbmctaWNvbixcbltkYXRhLXRoZW1lPWdsYXNzXSAucWRuYXByby1pbnB1dC5pbnB1dC1maWxsZWQgLmlucHV0LXRyYWlsaW5nLWljb24ge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qIEN1cnJlbmN5LXByZWZpeCBvcCBnbGFzOiBuZXQgYWxzIGJpaiBoZXQgZG9ua2VyZSB0aGVtYSBoaWVyYm92ZW4gZXhwbGljaWV0IG9wIGRlXG4gICBrbGV1ciBkaWUgaGlqIHZhbmRhYWcgb29rIGFsIGhlZWZ0LCB6b2RhdCBkZSBiYXNpcy1maXggZGUgZG9vcnNjaGlqbmVuZGUgdnVsbGluZyBvcFxuICAgZGUgZG9ua2VyZSBsb2dpbmFjaHRlcmdyb25kIG5pZXQgbWVlc2xlZXB0IChkYWFyIHpvdSB2YXIoLS1jLXRleHQtbXV0ZWQpIGp1aXN0IFNMRUNIVEVSIHdvcmRlbikuXG4gICBQdXVyIGJlaG91ZCwgZ2VlbiBuaWV1d2Uga2xldXJrZXV6ZS4gT3BlbnN0YWFuZCBwdW50amUgdm9vciBsYXRlcjogZ2xhcyB6ZXQgemlqblxuICAgcGxhY2Vob2xkZXIgb3AgcmdiYSgyNTUsMjU1LDI1NSwwLjcpIGVuIHppam4gaWNvbmVuIG9wIDAuNzUsIGR1cyBzdHJpa3QgZ2Vub21lblxuICAgaG9vcnQgZGUgcHJlZml4IGRhYXIgb29rIGluIGRpZSByZWVrcyBtZWUgZW4gbmlldCBvcCBlZW4gZ3JpanMgdWl0IGhldCBsaWNodGVcbiAgIHBhbGV0LiBEYXQgaXMgZWVuIGFwYXJ0ZSBkZXNpZ25rZXV6ZSBlbiBpcyBoaWVyIG5pZXQgZ2VtYWFrdC4gKi9cbltkYXRhLXRoZW1lPWdsYXNzXSAucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWN1cnJlbmN5IC5pbnB1dC1jdXJyZW5jeS1wcmVmaXgge1xuICBjb2xvcjogI2E2YWFiMztcbn1cbltkYXRhLXRoZW1lPWdsYXNzXSAucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQ6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSk7XG59XG5bZGF0YS10aGVtZT1nbGFzc10gLnFkbmFwcm8taW5wdXQuaW5wdXQtZm9jdXMgLmlucHV0LWZpZWxkLFxuW2RhdGEtdGhlbWU9Z2xhc3NdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4ge1xuICBib3JkZXItY29sb3I6ICM5YThmZmY7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMTU0LCAxNDMsIDI1NSwgMC4zNSk7XG59XG4vKiBUcmFpbGluZyBpY29uIGJ1dHRvbnMgKHBhc3N3b3JkIGV5ZS10b2dnbGUsIGNsZWFyLXgpIG9uIGdsYXNzLiAqL1xuW2RhdGEtdGhlbWU9Z2xhc3NdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC10cmFpbGluZyAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1pbnB1dC1pY29uIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG59XG5bZGF0YS10aGVtZT1nbGFzc10gLnFkbmFwcm8taW5wdXQgLmlucHV0LXRyYWlsaW5nIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWlucHV0LWljb246aG92ZXI6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qIFN0YXRlIGFjY2VudHMga2VwdCBsZWdpYmxlIG9uIHRoZSBkYXJrIHN1cmZhY2UuICovXG5bZGF0YS10aGVtZT1nbGFzc10gLnFkbmFwcm8taW5wdXQuaW5wdXQtZXJyb3IgLmlucHV0LWZpZWxkIHtcbiAgYm9yZGVyLWNvbG9yOiAjZjk4ZDhkO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgyNDksIDE0MSwgMTQxLCAwLjQpO1xufVxuW2RhdGEtdGhlbWU9Z2xhc3NdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1zdGF0ZS1lcnJvcixcbltkYXRhLXRoZW1lPWdsYXNzXSAucWRuYXByby1pbnB1dCAuaW5wdXQtbWVzc2FnZS1lcnJvciB7XG4gIGNvbG9yOiAjZjk4ZDhkO1xufVxuW2RhdGEtdGhlbWU9Z2xhc3NdIC5xZG5hcHJvLWlucHV0LmlucHV0LXN1Y2Nlc3MgLmlucHV0LWZpZWxkIHtcbiAgYm9yZGVyLWNvbG9yOiAjNThiOTkyO1xufVxuW2RhdGEtdGhlbWU9Z2xhc3NdIC5xZG5hcHJvLWlucHV0IC5pbnB1dC1zdGF0ZS1zdWNjZXNzIHtcbiAgY29sb3I6ICM4YmVjYzU7XG59XG5cbi8qID09PSB0eXBlOiBkYXRlIOKAlCBhZGRlZCAyMDI2LTA1LTExIChjb21waWxlZCBmcm9tIF9pbnB1dC5zY3NzKSA9PT0gKi9cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtZGF0ZSAuaW5wdXQtbmF0aXZlOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3Ige1xuICBkaXNwbGF5OiBub25lO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1kYXRlIC5pbnB1dC1uYXRpdmUge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtaW4td2lkdGg6IDA7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWRhdGUgLmlucHV0LW5hdGl2ZTo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogPT09IHR5cGU6IHRpbWUg4oCUIGFkZGVkIDIwMjYtMDYtMTkgKG5hdGl2ZSA8aW5wdXQgdHlwZT1cInRpbWVcIj4sIG1pcnJvcnMgZGF0ZSkgPT09ICovXG4ucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLXRpbWUgLmlucHV0LW5hdGl2ZTo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LXR5cGUtdGltZSAuaW5wdXQtbmF0aXZlIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWluLXdpZHRoOiAwO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS10aW1lIC5pbnB1dC1uYXRpdmU6Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qID09PSBkYXRlL3RpbWUgZW1wdHktc3RhdGUgcGxhY2Vob2xkZXIgKGFkZGVkIDIwMjYtMDYtMTkpID09PVxuICAgV2hlbiBub3RoaW5nIGlzIGVudGVyZWQsIHNob3cgdGhlIGRkL21tL3l5eXkgKGFuZCBISDptbSkgZm9ybWF0IHRleHQgaW4gdGhlIHNhbWVcbiAgIGxpZ2h0LWdyZXkgcGxhY2Vob2xkZXIgY29sb3VyIGFzIG90aGVyIGlucHV0cyAobGlrZSB0aGUgY3VycmVuY3kgXCIwLDAwXCIpOyB0aGVcbiAgIHZhbHVlIHR1cm5zIGRhcmsgb25jZSBmaWxsZWQgKC5pbnB1dC1maWxsZWQpLiBbS2ltXVxuICAgTWVlZ2V0cm9ra2VuIG1ldCBkZSBiYXNpcy1wbGFjZWhvbGRlci1maXggKGJlc2x1aXQgNzgsIGtsdXMgNGIsIDMxLjA3LjIwMjYpOiBkZXplXG4gICByZWdlbCBnZWJydWlrdGUgYmV3dXN0IGRlemVsZmRlIGtsZXVyIGFscyBkZSBiYXNpcy1wbGFjZWhvbGRlciAoXCJpbiB0aGUgc2FtZVxuICAgbGlnaHQtZ3JleSBwbGFjZWhvbGRlciBjb2xvdXIgYXMgb3RoZXIgaW5wdXRzXCIpLCBkdXMgem9uZGVyIGRlemUgbWVlIHRlIG5lbWVuXG4gICB6b3UgYWxsZWVuIGRpdCB0eXBlIGRlIG91ZGUsIHRlIGxpY2h0ZSAxLjkxOjEta2xldXIgaG91ZGVuLiAqL1xuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1kYXRlOm5vdCguaW5wdXQtZmlsbGVkKSAuaW5wdXQtbmF0aXZlLFxuLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS10aW1lOm5vdCguaW5wdXQtZmlsbGVkKSAuaW5wdXQtbmF0aXZlIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLWRhdGU6bm90KC5pbnB1dC1maWxsZWQpIC5pbnB1dC1uYXRpdmUsXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1pbnB1dC5pbnB1dC10eXBlLXRpbWU6bm90KC5pbnB1dC1maWxsZWQpIC5pbnB1dC1uYXRpdmUge1xuICBjb2xvcjogIzg5OGU5OTtcbn1cblxuLyogPT09IHZhcmlhbnQ6IHJvdW5kIChwaWxsLXNoYXBlKSDigJQgUFdBIG9ubHkgWzIwMjYtMDYtMzBdID09PVxuICAgQm9vbGVhbiBhdHRyaWJ1dGUgYHJvdW5kYC4gUm91bmRzIHRoZSBmaWVsZCB0byBhIHBpbGwgc2hhcGUgd2l0aFxuICAgc2xpZ2h0bHkgd2lkZXIgaG9yaXpvbnRhbCBwYWRkaW5nIHNvIHRoZSBjb250ZW50IGJyZWF0aGVzIGF0IHRoZVxuICAgY3VydmVkIGVkZ2VzLiBJbnRlcm5hbCBpY29uLWJ0bnMgYWxyZWFkeSB1c2UgYm9yZGVyLXJhZGl1czogNTAlXG4gICBzbyB0aGVpciBob3ZlciBjaXJjbGVzIHN0YXkgcm91bmQuIFRoZSByaWdodCB0cmFpbGluZyBlZGdlIGdldHNcbiAgIGEgc21hbGwgbmVnYXRpdmUgbWFyZ2luIHRvIGtlZXAgdGhlIGxhc3QgaWNvbiBvcHRpY2FsbHkgY2VudHJlZC4gKi9cbi5xZG5hcHJvLWlucHV0LmlucHV0LXJvdW5kIC5pbnB1dC1maWVsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtcm91bmQgLmlucHV0LWZpZWxkIC5pbnB1dC10cmFpbGluZyB7XG4gIG1hcmdpbi1yaWdodDogNHB4O1xufVxuXG4vKiA9PT0gdmFyaWFudDogZGFyay1wdXJwbGUgWzIwMjYtMDYtMzBdID09PVxuICAgQm9vbGVhbiBhdHRyaWJ1dGUgYGRhcmstcHVycGxlYC4gRGVlcC1wdXJwbGUgc3VyZmFjZSBmb3IgdXNlIG9uXG4gICBwdXJwbGUtYmFja2dyb3VuZCBwYWdlcyAoUFdBIGxpc3RfcGFnZSBzZWFyY2gsIGxvZ2luLCBldGMuKS5cbiAgIFRva2Vuczogc3VyZmFjZT0tLWMtcHVycGxlLTcwMCwgdGV4dD0tLWMtcHVycGxlLTUwLFxuICAgcGxhY2Vob2xkZXIvaWNvbnM9LS1jLXB1cnBsZS0zMDAsIGxhYmVsPS0tYy13aGl0ZS0wNCwgaGludD0tLWMtcHVycGxlLTMwMC5cbiAgIEZvY3VzIHJpbmcgdW5jaGFuZ2VkIChicmFuZCBwdXJwbGUgYm9yZGVyKS4gKi9cbi5xZG5hcHJvLWlucHV0LmlucHV0LWRhcmstcHVycGxlIC5pbnB1dC1maWVsZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTcwMCk7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LWRhcmstcHVycGxlIC5pbnB1dC1maWVsZDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTYwMCk7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1kYXJrLXB1cnBsZSAuaW5wdXQtZmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LWRhcmstcHVycGxlIC5pbnB1dC1maWVsZCAuaW5wdXQtbmF0aXZlIHtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwKTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LWRhcmstcHVycGxlIC5pbnB1dC1maWVsZCAuaW5wdXQtbmF0aXZlOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS0zMDApO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLnFkbmFwcm8taW5wdXQuaW5wdXQtZGFyay1wdXJwbGUgLmlucHV0LWZpZWxkIC5pbnB1dC1sZWFkaW5nLWljb24ge1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtMzAwKTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LWRhcmstcHVycGxlIC5pbnB1dC1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTA0KTtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LWRhcmstcHVycGxlIC5pbnB1dC1oaW50IHtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTMwMCk7XG59XG4vKiBDbGVhci14LCBzcGlubmVyIMKxLCBhbmQgZXllLXRvZ2dsZSBpY29uLWJ0bnMgaW5zaWRlIGRhcmstcHVycGxlICovXG4ucWRuYXByby1pbnB1dC5pbnB1dC1kYXJrLXB1cnBsZSAuaW5wdXQtdHJhaWxpbmcgLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4taW5wdXQtaWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MCk7XG59XG4ucWRuYXByby1pbnB1dC5pbnB1dC1kYXJrLXB1cnBsZSAuaW5wdXQtdHJhaWxpbmcgLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4taW5wdXQtaWNvbjpob3Zlcjpub3QoLmljb24tYnRuLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtcHVycGxlLTYwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MCk7XG59XG5cbi8qID09PSB2YXJpYW50OiBncmV5IFsyMDI2LTA3LTMxXSA9PT1cbiAgIEJvb2xlYW4gYXR0cmlidXRlIGBncmV5YC4gTGlnaHQtZ3JleSBzdXJmYWNlICgtLWMtZ3JleS0xMDApIHNvIHRoZSBmaWVsZFxuICAgc3RhbmRzIG91dCBhZ2FpbnN0IGEgd2hpdGUgYmFja2dyb3VuZCBpbnN0ZWFkIG9mIGJsZW5kaW5nIGludG8gaXQgLSBidWlsdFxuICAgZm9yIHRoZSBhcHAtaGVhZGVyIHNlYXJjaCBmaWVsZCAocWRuYXByby1hcHAtaGVhZGVyIHNsb3Q9XCJzZWFyY2hcIiksIGJ1dFxuICAgdXNhYmxlIGFueXdoZXJlIGEgZmllbGQgc2l0cyBkaXJlY3RseSBvbiB3aGl0ZS9uZWFyLXdoaXRlLlxuICAgTm8gYm9yZGVyIG9mIGl0cyBvd246IHRoZSBncmV5IGZpbGwgSVMgdGhlIHNoYXBlIChwZXIgS2ltKSwgc2FtZSBpZGVhIGFzXG4gICBkYXJrLXB1cnBsZSdzIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgb24gaXRzIG93biBzdXJmYWNlLlxuICAgUGxhY2Vob2xkZXIvaWNvbiBjb2xvdXJzIGFyZSBsZWZ0IGF0IHRoZWlyIG5vcm1hbCAobm9uLWdyZXkpIHZhbHVlcyBvblxuICAgcHVycG9zZTogZ3JleS0xMDAgKHZhcigtLWMtZ3JleS0xMDApKSBpcyBjbG9zZSBlbm91Z2ggdG8gd2hpdGUgaW4gbHVtaW5hbmNlIHRoYXRcbiAgIHRoZSBkZWZhdWx0IGdyZXktNDAwIHBsYWNlaG9sZGVyL2ljb24gY29sb3VyIHN0aWxsIHJlYWRzIGZpbmUgb24gaXQgLSBhXG4gICBkZWRpY2F0ZWQgZGFya2VyIHBsYWNlaG9sZGVyIHRva2VuIHdhcyBub3QgbmVlZGVkIHRoZSB3YXkgZGFyay1wdXJwbGVcbiAgIG5lZWRlZCBvbmUgZm9yIGl0cyBtdWNoLWxvd2VyLWNvbnRyYXN0IGRhcmsgc3VyZmFjZS5cbiAgIENvbWJpbmluZyB3aXRoIGRhcmstcHVycGxlIGlzIGEgbm8tb3A6IHNlZSBxZG5hLWlucHV0LmpzIHJlbmRlcigpLCBncmV5XG4gICBpcyBpZ25vcmVkIHdoZW5ldmVyIGRhcmstcHVycGxlIGlzIGFsc28gc2V0LiAqL1xuLnFkbmFwcm8taW5wdXQuaW5wdXQtZ3JleSAuaW5wdXQtZmllbGQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5xZG5hcHJvLWlucHV0LmlucHV0LWdyZXkgLmlucHV0LWZpZWxkOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyogUGxhY2Vob2xkZXIgRE9OS0VSREVSIG9wIGRlIGdyaWp6ZSB2dWxsaW5nIChLaW0sIDMxLjA3LjIwMjY6IFwibnUgbGlqa3QgaGV0IHZlbGRcbiAgIG9vayBkaXNhYmxlZCBvbWRhdCBkZSBwbGFjZWhvbGRlciB0ZWtzdCB0ZSBsaWNodCBpcywgZGllIG1vZXQgZWNodCBkb25rZXJkZXJcIikuXG4gICBHZW1ldGVuIG1ldCBkZSBXQ0FHLWZvcm11bGUsIG5pZXQgb3AgaGV0IG9vZzpcbiAgICAgZGUgc3RhbmRhYXJkLXBsYWNlaG9sZGVyIHZhcigtLWMtZ3JleS00MDApIG9wIHZhcigtLWMtZ3JleS0xMDApICAtPiAxLjkxOjFcbiAgICAgZGUgRElTQUJMRUQtcGxhY2Vob2xkZXIgIHZhcigtLWMtdGV4dC1kaXNhYmxlZCkgb3AgdmFyKC0tYy1ncmV5LTEwMCkgIC0+IDIuNzA6MVxuICAgRGUgZ2V3b25lIHBsYWNlaG9sZGVyIHdhcyBkdXMgTElDSFRFUiBkYW4gZGUgdWl0Z2VzY2hha2VsZGUgc3RhbmQsIGVuIGRhYXJvbSBsYXNcbiAgIGVlbiBsZWVnIHZlbGQgYWxzIGVlbiB2ZWxkIGRhdCBqZSBuaWV0IG1hZyBnZWJydWlrZW4uIERhdCB3YXMgZWVuIGZvdXQgaW4gZGUgQkFTSVNcbiAgIHZhbiBkaXQgY29tcG9uZW50IGVuIG5pZXQgYWxsZWVuIGluIGRlemUgdmFyaWFudDsgdG9lbiBkaXQgaGllciBnZWJvdXdkIHdlcmQsIHdhc1xuICAgZGUgZml4IG5vZyBnZXNjb3BlZCB0b3QgZGUgZ3JpanplIHZhcmlhbnQgZW4gZ2VmbGFnZCB2b29yIEtpbSAoZGUgYmFzaXMgcmFha3QgZWxrZVxuICAgaW5wdXQgaW4gZGUgYmFja29mZmljZSBlbiBkZSBhcHAsIGRhdCBuaWVtYW5kIGdldnJhYWdkIGhhZCkuIEJlc2x1aXQgNzggLyBrbHVzIDRiXG4gICAoMzEuMDcuMjAyNikgaGVlZnQgZGUgYmFzaXMgemVsZiBvb2sgb3AgdmFyKC0tYy10ZXh0LW11dGVkKSBnZXpldCAoemllIGRlXG4gICBiYXNpcy1yZWdlbCBib3ZlbmluIGRpdCBiZXN0YW5kKSwgZHVzIGRlemUgcmVnZWwgaGllciBpcyBudSBzdHJpa3QgZ2Vub21lblxuICAgb3ZlcmJvZGlnIGdld29yZGVuIChkZSBiYXNpcyBsZXZlcnQgYWwgZGV6ZWxmZGUga2xldXIpIG1hYXIgYmxpamZ0IHN0YWFuIGFsc1xuICAgZXhwbGljaWV0ZSwgemVsZnN0YW5kaWdlIGdhcmFudGllIHZvb3IgZGV6ZSB2YXJpYW50LlxuICAgdmFyKC0tYy10ZXh0LW11dGVkKSBnZWVmdCAzLjk0OjEsIHJ1aW0gYm92ZW4gZGUgZGlzYWJsZWQtc3RhbmQgZW4gYm92ZW4gZGUgMzoxIGRpZVxuICAgV0NBRyB2b29yIGdyb3RlL3NlY3VuZGFpcmUgdGVrc3QgYWFuaG91ZHQuICovXG4ucWRuYXByby1pbnB1dC5pbnB1dC1ncmV5IC5pbnB1dC1maWVsZCAuaW5wdXQtbmF0aXZlOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuXG4vKiBFbiBoZXQgbG9lcC1pY29vbnRqZSBlcnZvb3IgbWVlLCBhbmRlcnMgYmxpamZ0IGRhdCBhbHMgZW5pZ2UgbGljaHQgYWNodGVyIGVuIGxlZXN0XG4gICBkZSByaWogbm9nIHN0ZWVkcyBhbHMgdWl0Z2VzY2hha2VsZC4gKi9cbi5xZG5hcHJvLWlucHV0LmlucHV0LWdyZXkgLmlucHV0LWZpZWxkIC5pbnB1dC1sZWFkaW5nLWljb24ge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cbi8qIEZvY3VzIHJpbmc6IHJlc3RhdGVkIGhlcmUgKG5vdCBpbmhlcml0ZWQgZnJvbSB0aGUgYmFzZSA6Zm9jdXMtd2l0aGluXG4gICBydWxlKSBmb3IgdGhlIHNhbWUgcmVhc29uIGRhcmstcHVycGxlIHJlc3RhdGVzIGl0cyBvd24gLSB0aGUgcGxhaW5cbiAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgcnVsZSBhYm92ZSBoYXMgZXF1YWwgc2VsZWN0b3Igc3BlY2lmaWNpdHkgdG9cbiAgIHRoZSBiYXNlIFwiLnFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkOmZvY3VzLXdpdGhpblwiIHJ1bGUgYW5kIGNvbWVzIGxhdGVyXG4gICBpbiB0aGUgZmlsZSwgc28gd2l0aG91dCB0aGlzIG92ZXJyaWRlIGl0IHdvdWxkIHdpbiBvbiBmb2N1cyB0b28gYW5kIHRoZVxuICAgcmluZyB3b3VsZCBzaWxlbnRseSBkaXNhcHBlYXIuXG4gICBUb2tlbjogdmFyKC0tYy1icmFuZC1wdXJwbGUpIHJhdGhlciB0aGFuIGRhcmstcHVycGxlJ3MgdmFyKC0tYy1icmFuZCkgLVxuICAgdGhhdCB0b2tlbiBpcyBub3QgZGVmaW5lZCBhbnl3aGVyZSBpbiB0aGlzIGNvZGViYXNlIChjaGVja2VkOiBhYnNlbnQgZnJvbVxuICAgZGVzaWduLXRva2Vucy9fZGVzaWduLXRva2Vucy5zY3NzIGFuZCB0aGUgY29tcGlsZWQgc3R5bGUtdjEuY3NzKSwgc29cbiAgIGRhcmstcHVycGxlJ3MgZm9jdXMtd2l0aGluIGJvcmRlci1jb2xvciBpcyB2ZXJ5IGxpa2VseSBhIHByZS1leGlzdGluZyxcbiAgIHNpbGVudGx5LWJyb2tlbiBydWxlLiBOb3QgZml4ZWQgaGVyZSAob3V0IG9mIHNjb3BlIGZvciB0aGlzIHRhc2ssIGFuZFxuICAgX2lucHV0LnNjc3MgZm9yIGRhcmstcHVycGxlIGlzIGJlaW5nIHJlYWQsIG5vdCByZXdyaXR0ZW4pIC0gZmxhZ2dpbmcgaXRcbiAgIGluIHRoZSBoYW5kb2ZmIGluc3RlYWQgb2YgY29weWluZyB0aGUgc2FtZSB1bmRlZmluZWQgdG9rZW4gZm9yd2FyZC4gKi9cbi5xZG5hcHJvLWlucHV0LmlucHV0LWdyZXkgLmlucHV0LWZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTtcbn1cblxuLyogc2hvdy1jb3VudDogZGUgXCIxMi80MFwiLXRlbGxlciBvbmRlciBoZXQgdmVsZCAoS2ltIDE1LjA5LjIwMjYsIHppY2h0YmFyZVxuICAgdGVrZW5saW1pZXQgb3AgZGUgUHVsc2Ugc3RhcnRzY2hlcm0tdGVrc3RlbikuIEFtYmVyIHpvZHJhIGRlIGNhcCBnZXJhYWt0XG4gICBpcyAtIGRlIGhhcmRlIG1heGxlbmd0aCBibG9ra2VlcnQgdG9jaCBhbCwgZGl0IGlzIGFsbGVlbiBkZSB1aXRsZWcuICovXG4ucWRuYXByby1pbnB1dCAuaW5wdXQtY2hhcmNvdW50IHtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbn1cblxuLnFkbmFwcm8taW5wdXQgLmlucHV0LWNoYXJjb3VudC5pcy1tYXgge1xuICBjb2xvcjogdmFyKC0tYy13YXJuLWFtYmVyLTYwMCwgI2I0NTMwOSk7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9sYWJlbC1jaXJjbGUvX2xhYmVsLWNpcmNsZS1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby1sYWJlbC1jaXJjbGUge1xuICAtLWxjLXNpemU6IDQ0cHg7XG4gIC0tbGMtaWNvbi1zaXplOiAxNnB4O1xuICAtLWxjLWJnOiB2YXIoLS1jLWdyZXktNTApO1xuICAtLWxjLWljb246ICMxZTFmMjA7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IHZhcigtLWxjLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLWxjLXNpemUpO1xuICBmbGV4LXNocmluazogMDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1sYy1iZyk7XG4gIGNvbG9yOiB2YXIoLS1sYy1pY29uKTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUgLmxhYmVsLWNpcmNsZS1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHdpZHRoOiB2YXIoLS1sYy1pY29uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLWxjLWljb24tc2l6ZSk7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLWxhYmVsLWNpcmNsZSAubGFiZWwtY2lyY2xlLWljb24gc3ZnIHtcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1zaXplLWJpZyB7XG4gIC0tbGMtc2l6ZTogNDRweDtcbiAgLS1sYy1pY29uLXNpemU6IDE2cHg7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLXNpemUtc21hbGwge1xuICAtLWxjLXNpemU6IDIwcHg7XG4gIC0tbGMtaWNvbi1zaXplOiAxMnB4O1xuICBvdXRsaW5lOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIGN1cnJlbnRDb2xvciAyMiUsIHRyYW5zcGFyZW50KTtcbiAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWdyZXkge1xuICAtLWxjLWJnOiB2YXIoLS1jLWdyZXktNTApO1xuICAtLWxjLWljb246ICMxZTFmMjA7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWdyZXktMiB7XG4gIC0tbGMtYmc6IHZhcigtLWMtZ3JleS0zMDApO1xuICAtLWxjLWljb246ICMxZTFmMjA7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLXJlZCB7XG4gIC0tbGMtYmc6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7XG4gIC0tbGMtaWNvbjogIzYzMzAzMDtcbn1cbi5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3ItcmVkLTIge1xuICAtLWxjLWJnOiB2YXIoLS1jLWNoaXAtcmVkLTItYmcpO1xuICAtLWxjLWljb246ICM2MzMwMzA7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLXllbGxvdyB7XG4gIC0tbGMtYmc6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpO1xuICAtLWxjLWljb246ICM2NTU1MjI7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLXllbGxvdy0yIHtcbiAgLS1sYy1iZzogdmFyKC0tYy1jaGlwLXllbGxvdy0yLWJnKTtcbiAgLS1sYy1pY29uOiAjNjU1NTIyO1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1ncmVlbiB7XG4gIC0tbGMtYmc6IHZhcigtLWMtY2hpcC1ncmVlbi1iZyk7XG4gIC0tbGMtaWNvbjogIzJmNWQ0YTtcbn1cbi5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3ItZ3JlZW4tMiB7XG4gIC0tbGMtYmc6IHZhcigtLWMtY2hpcC1ncmVlbi0yLWJnKTtcbiAgLS1sYy1pY29uOiAjMmY1ZDRhO1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1ibHVlIHtcbiAgLS1sYy1iZzogdmFyKC0tYy1zaWduYWwtYmx1ZS1iZyk7XG4gIC0tbGMtaWNvbjogIzM3NDc1YTtcbn1cbi5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3ItYmx1ZS0yIHtcbiAgLS1sYy1iZzogdmFyKC0tYy1jaGlwLWJsdWUtMi1iZyk7XG4gIC0tbGMtaWNvbjogIzM3NDc1YTtcbn1cbi5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3ItYnJpZ2h0LWJsdWUge1xuICAtLWxjLWJnOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtYmcpO1xuICAtLWxjLWljb246ICMxOTJhNWE7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWJyaWdodC1ibHVlLTIge1xuICAtLWxjLWJnOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1iZyk7XG4gIC0tbGMtaWNvbjogIzE5MmE1YTtcbn1cbi5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3ItcGluayB7XG4gIC0tbGMtYmc6IHZhcigtLWMtc2lnbmFsLXBpbmstYmcpO1xuICAtLWxjLWljb246ICM1NjJkM2E7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWRhcmstcGluayB7XG4gIC0tbGMtYmc6IHZhcigtLWMtY2hpcC1kYXJrLXBpbmstYmcpO1xuICAtLWxjLWljb246ICM1NjJkM2E7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLXB1cnBsZSB7XG4gIC0tbGMtYmc6IHZhcigtLWMtY2hpcC1wdXJwbGUtYmcpO1xuICAtLWxjLWljb246ICM0MTNiNWU7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWRhcmstcHVycGxlIHtcbiAgLS1sYy1iZzogdmFyKC0tYy1jaGlwLWRhcmstcHVycGxlLWJnKTtcbiAgLS1sYy1pY29uOiAjNDEzYjVlO1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLyogQWRkaXRpdmUgc3RhdHVzLSogY29sb3JzICgxNi4wNy4yMDI2IOKAlCBwbGFubmVyIHN0YXR1cyBmaWx0ZXIpLiBTb2xpZCBkb3RzXG4gICAoYmcgPT0gaWNvbiBjb2xvciwgbm8gbGlnaHQtdGludCBwYWlyaW5nIGxpa2UgdGhlIDE2IGNvbG9ycyBhYm92ZSkgbWFwcGVkXG4gICAxOjEgdG8gcWRuYXByby1ldmVudC1jYXJkJ3Mgb3duIHN0YXR1cyB0b2tlbnMgKHNlZSBfZXZlbnQtY2FyZC5zY3NzOlxuICAgLS1jLXB1cnBsZS01MDAsIC0tYy1zaWduYWwtcmVkLy1vcmFuZ2UvLWdyZWVuLXRleHQpIOKAlCB0aGVzZSBhcmUgdXNlZFxuICAgaWNvbi1sZXNzIChhIHB1cmUgY29sb3IgaW5kaWNhdG9yLCBzZWUgcWRuYS1tZW51LWl0ZW0uanMpLCBzbyBvbmx5IC0tbGMtYmdcbiAgIGlzIGV2ZXIgdmlzaWJsZTsgLS1sYy1pY29uIGlzIHNldCB0byB0aGUgc2FtZSB2YWx1ZSBmb3IgY29uc2lzdGVuY3kgc2hvdWxkXG4gICBhbiBpY29uIGV2ZXIgYmUgYWRkZWQuIE5vIGRhcmstdGhlbWUgb3ZlcnJpZGU6IGV2ZW50LWNhcmQgaXRzZWxmIGhhcyBub25lXG4gICBmb3IgdGhlc2UgdG9rZW5zIGVpdGhlciAocmF3IHNpZ25hbCBwcmltaXRpdmVzLCBub3QgcmUtdGhlbWVkKS4gRmlyc3QtXG4gICBjbGFzcyBoZXJlIChub3QgYSBtZW51LWl0ZW0tc2NvcGVkIG92ZXJyaWRlKSBiZWNhdXNlIHRoaXMgY29tcG9uZW50J3Mgb3duXG4gICByZW5kZXIoKSB1bmNvbmRpdGlvbmFsbHkgcmV3cml0ZXMgY2xhc3NOYW1lIG9uIGV2ZXJ5IHJlLXJlbmRlciwgd2hpY2hcbiAgIHNpbGVudGx5IGRpc2NhcmRlZCBhbnkgZXh0ZXJuYWxseS1hZGRlZCBjbGFzcy1iYXNlZCBvdmVycmlkZSBiZWZvcmUgdGhpc1xuICAgZml4IChLaW0ncyBsaXZlIHRlc3QsIDE2LjA3LjIwMjYg4oCUIGZpbHRlciBkb3RzIHJlbmRlcmVkIGdyZXkvZW1wdHkpLiAqL1xuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1zdGF0dXMtcGxhbm5lZCB7XG4gIC0tbGMtYmc6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG4gIC0tbGMtaWNvbjogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbn1cbi5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3Itc3RhdHVzLW92ZXJkdWUge1xuICAtLWxjLWJnOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7XG4gIC0tbGMtaWNvbjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xufVxuLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1zdGF0dXMtaW5wcm9ncmVzcyB7XG4gIC0tbGMtYmc6IHZhcigtLWMtc2lnbmFsLW9yYW5nZS10ZXh0LCAjYmM2YTFmKTtcbiAgLS1sYy1pY29uOiB2YXIoLS1jLXNpZ25hbC1vcmFuZ2UtdGV4dCwgI2JjNmExZik7XG59XG4ucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLXN0YXR1cy1jb21wbGV0ZSB7XG4gIC0tbGMtYmc6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQsICM0MjhiNmUpO1xuICAtLWxjLWljb246IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQsICM0MjhiNmUpO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWdyZXkge1xuICAtLWxjLWJnOiAjNTY1YjY2O1xuICAtLWxjLWljb246ICNlMWUzZTY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWdyZXktMiB7XG4gIC0tbGMtYmc6ICM0MDQ0NGQ7XG4gIC0tbGMtaWNvbjogI2UxZTNlNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3ItcmVkIHtcbiAgLS1sYy1iZzogIzVhMmIyYjtcbiAgLS1sYy1pY29uOiAjZmJhYWFhO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1yZWQtMiB7XG4gIC0tbGMtYmc6ICM3YTM4Mzg7XG4gIC0tbGMtaWNvbjogI2ZlZTNlMztcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3IteWVsbG93IHtcbiAgLS1sYy1iZzogIzVhNGQxZjtcbiAgLS1sYy1pY29uOiAjZmRlNTk0O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci15ZWxsb3ctMiB7XG4gIC0tbGMtYmc6ICM3YTZiMmQ7XG4gIC0tbGMtaWNvbjogI2ZlZjZkYjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3ItZ3JlZW4ge1xuICAtLWxjLWJnOiAjMmE1NTQ0O1xuICAtLWxjLWljb246ICM4YmVjYzU7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWdyZWVuLTIge1xuICAtLWxjLWJnOiAjM2Q3YTYyO1xuICAtLWxjLWljb246ICNlMmZhZjE7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWJsdWUge1xuICAtLWxjLWJnOiAjMmUzZTU0O1xuICAtLWxjLWljb246ICNiNWNlZWQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWJsdWUtMiB7XG4gIC0tbGMtYmc6ICM0NDVhNzg7XG4gIC0tbGMtaWNvbjogI2U2ZWZmOTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3ItYnJpZ2h0LWJsdWUge1xuICAtLWxjLWJnOiAjM2E0YThhO1xuICAtLWxjLWljb246ICNkNmUwZjk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWJyaWdodC1ibHVlLTIge1xuICAtLWxjLWJnOiAjMmEzNTYwO1xuICAtLWxjLWljb246ICM4NWExZWM7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLXBpbmsge1xuICAtLWxjLWJnOiAjNGUyYTM2O1xuICAtLWxjLWljb246ICNlNWE2Yjk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1sYWJlbC1jaXJjbGUubGFiZWwtY2lyY2xlLWNvbG9yLWRhcmstcGluayB7XG4gIC0tbGMtYmc6ICM2ZTNkNTA7XG4gIC0tbGMtaWNvbjogI2Y2ZTFlODtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWxhYmVsLWNpcmNsZS5sYWJlbC1jaXJjbGUtY29sb3ItcHVycGxlIHtcbiAgLS1sYy1iZzogIzNhMzU1NTtcbiAgLS1sYy1pY29uOiAjYzRiY2YzO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbGFiZWwtY2lyY2xlLmxhYmVsLWNpcmNsZS1jb2xvci1kYXJrLXB1cnBsZSB7XG4gIC0tbGMtYmc6ICM1MjRhN2E7XG4gIC0tbGMtaWNvbjogI2ViZTlmYjtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL2xvZ28vX2xvZ28tY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLyogPT09IEJFR0lOIFFETkEtTE9HTyBDU1MgPT09ICovXG4ucWRuYXByby1sb2dvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1sb2dvIHN2ZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cbi8qID09PSBFTkQgUUROQS1MT0dPIENTUyA9PT0gKi9cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL21lbWJlcnMvX21lbWJlcnMtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnFkbmFwcm8tbWVtYmVycyB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogNHB4IDhweCA0cHggNHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNTBtcyBlYXNlO1xufVxuXG4ucWRuYXByby1tZW1iZXJzOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnFkbmFwcm8tbWVtYmVyczpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5xZG5hcHJvLW1lbWJlcnMubWVtYmVycy1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIFRyYWlsaW5nIFwiK1wiIGNpcmNsZS4gU2FtZSBoZWlnaHQgYXMgYSAzNHB4IGF2YXRhciBzbyBpdCB2aXN1YWxseVxuICAgbGluZXMgdXAuIFN0cm9rZS1vbmx5IFNWRyBzbyBpdCByZW5kZXJzIHdoaXRlIG92ZXIgcGhvdG9zIGFuZFxuICAgcHVycGxlIG9uIGxpZ2h0IHN1cmZhY2VzIHZpYSBjdXJyZW50Q29sb3IuICovXG4ucWRuYXByby1tZW1iZXJzIC5tZW1iZXJzLWFkZCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiAzNHB4O1xuICBoZWlnaHQ6IDM0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTUwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE1MG1zIGVhc2U7XG59XG5cbi5xZG5hcHJvLW1lbWJlcnMgLm1lbWJlcnMtYWRkIHN2ZyB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIHN0cm9rZTogY3VycmVudENvbG9yO1xuICBmaWxsOiBub25lO1xuICBzdHJva2Utd2lkdGg6IDI7XG4gIHN0cm9rZS1saW5lY2FwOiByb3VuZDtcbn1cblxuLyogLS0tIFRvbmU6IG9uLXBob3RvIChkZWZhdWx0KSAtIGdsYXNzIG92ZXIgaW1hZ2VyeS4gLS0tICovXG4ucWRuYXByby1tZW1iZXJzLm1lbWJlcnMtdG9uZS1vbi1waG90byB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cblxuLnFkbmFwcm8tbWVtYmVycy5tZW1iZXJzLXRvbmUtb24tcGhvdG86aG92ZXI6bm90KC5tZW1iZXJzLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG5cbi5xZG5hcHJvLW1lbWJlcnMubWVtYmVycy10b25lLW9uLXBob3RvIC5tZW1iZXJzLWFkZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG5cbi5xZG5hcHJvLW1lbWJlcnMubWVtYmVycy10b25lLW9uLXBob3RvOmhvdmVyOm5vdCgubWVtYmVycy1kaXNhYmxlZCkgLm1lbWJlcnMtYWRkIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40Mik7XG59XG5cbi8qIC0tLSBUb25lOiBsaWdodCAtIG9uIGEgbGlnaHQgc3VyZmFjZSAoY2FyZHMsIHBhbmVscykuIC0tLSAqL1xuLnFkbmFwcm8tbWVtYmVycy5tZW1iZXJzLXRvbmUtbGlnaHQge1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cblxuLnFkbmFwcm8tbWVtYmVycy5tZW1iZXJzLXRvbmUtbGlnaHQ6aG92ZXI6bm90KC5tZW1iZXJzLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMDYpO1xufVxuXG4ucWRuYXByby1tZW1iZXJzLm1lbWJlcnMtdG9uZS1saWdodCAubWVtYmVycy1hZGQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtZ3JleS0zMDApO1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cblxuLnFkbmFwcm8tbWVtYmVycy5tZW1iZXJzLXRvbmUtbGlnaHQ6aG92ZXI6bm90KC5tZW1iZXJzLWRpc2FibGVkKSAubWVtYmVycy1hZGQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW1lbWJlcnMubWVtYmVycy10b25lLWxpZ2h0IHtcbiAgY29sb3I6ICNhNWFjZmY7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW1lbWJlcnMubWVtYmVycy10b25lLWxpZ2h0OmhvdmVyOm5vdCgubWVtYmVycy1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuMSk7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW1lbWJlcnMubWVtYmVycy10b25lLWxpZ2h0IC5tZW1iZXJzLWFkZCB7XG4gIGJhY2tncm91bmQ6ICMyZTMwMzY7XG4gIGJvcmRlci1jb2xvcjogIzQwNDQ0ZDtcbiAgY29sb3I6ICNhNWFjZmY7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW1lbWJlcnMubWVtYmVycy10b25lLWxpZ2h0OmhvdmVyOm5vdCgubWVtYmVycy1kaXNhYmxlZCkgLm1lbWJlcnMtYWRkIHtcbiAgYmFja2dyb3VuZDogIzQwNDQ0ZDtcbn0iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9tZW51L19tZW51LWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLW1lbnUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLXdpZHRoOiAxNjBweDtcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGdhcDogNHB4O1xufVxuLnFkbmFwcm8tbWVudSA+IHFkbmFwcm8tbWVudS1pdGVtLFxuLnFkbmFwcm8tbWVudSA+IHFkbmFwcm8tbWVudS1zZXBhcmF0b3IsXG4ucWRuYXByby1tZW51ID4gcWRuYXByby1tZW51LXNlY3Rpb24taGVhZGluZyxcbi5xZG5hcHJvLW1lbnUgPiBxZG5hcHJvLW1lbnUtaGVhZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4ucWRuYXByby1tZW51Lm1lbnUtY29sb3ItbmV1dHJhbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICBib3gtc2hhZG93OiAwIDRweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpLCAwIDhweCAxMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbn1cbi5xZG5hcHJvLW1lbnUubWVudS1jb2xvci1hY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBib3JkZXI6IDAuNXB4IHNvbGlkIHZhcigtLWMtcHVycGxlLTYwMCk7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG5cbi8vIGVtYmVkZGVkOiBjaHJvbWUtbGVzcyB2YXJpYW50IGZvciBob3N0aW5nIGluc2lkZSBhbm90aGVyIHBhbmVsIGNvbXBvbmVudFxuLy8gKGUuZy4gcWRuYXByby1wb3BvdmVyIGNhcnJpZXMgaXRzIG93biBiZy9zaGFkb3cvcGFkZGluZyDigJQgd2l0aG91dCB0aGlzIHRoZVxuLy8gY29tcG9zaXRpb24gcmVuZGVycyBhIGRvdWJsZSBwYW5lbDsgS2ltIDE2LjA3LjIwMjYpLiBQbGFjZWQgYWZ0ZXIgdGhlIGNvbG9yXG4vLyBibG9ja3Mgc28gaXQgd2lucyBhdCBlcXVhbCBzcGVjaWZpY2l0eS5cbi5xZG5hcHJvLW1lbnUubWVudS1lbWJlZGRlZCB7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLnFkbmFwcm8tbWVudS1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDA7XG4gIHBhZGRpbmc6IDhweCAxNnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLnFkbmFwcm8tbWVudS1oZWFkZXIgLm1lbnUtaGVhZGVyLWhlYWRpbmcge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuLnFkbmFwcm8tbWVudS1oZWFkZXIgLm1lbnUtaGVhZGVyLXN1YmhlYWRpbmcge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuLnFkbmFwcm8tbWVudS1oZWFkZXIubWVudS1oZWFkZXItY29sb3ItbmV1dHJhbCAubWVudS1oZWFkZXItaGVhZGluZyB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbn1cbi5xZG5hcHJvLW1lbnUtaGVhZGVyLm1lbnUtaGVhZGVyLWNvbG9yLW5ldXRyYWwgLm1lbnUtaGVhZGVyLXN1YmhlYWRpbmcge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCk7XG59XG4ucWRuYXByby1tZW51LWhlYWRlci5tZW51LWhlYWRlci1jb2xvci1hY3Rpb24gLm1lbnUtaGVhZGVyLWhlYWRpbmcge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG4ucWRuYXByby1tZW51LWhlYWRlci5tZW51LWhlYWRlci1jb2xvci1hY3Rpb24gLm1lbnUtaGVhZGVyLXN1YmhlYWRpbmcge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuXG4ucWRuYXByby1tZW51LXNlcGFyYXRvciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiA4cHggMDtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogcWRuYXByby1tZW51IGlzIGEgZmxleCBjb2x1bW4sIHNvIHRoZSBzZXBhcmF0b3IgaXMgYSBmbGV4IElURU0g4oCUIGFuZCBhIGZsZXhcbiAgICAgaXRlbSBzaHJpbmtzIGJ5IGRlZmF1bHQuIFdpdGggbm8gY29udGVudCBpdHMgbWluLWNvbnRlbnQgaGVpZ2h0IGlzIDAsIHNvIHRoZVxuICAgICBtb21lbnQgdGhlIG1lbnUgaXMgaGVpZ2h0LWNvbnN0cmFpbmVkIGFuZCBoYXMgdG8gc2Nyb2xsLCB0aGlzIDFweCBsaW5lIGdldHNcbiAgICAgY29tcHJlc3NlZCB0byBleGFjdGx5IDBweCBhbmQgdGhlIGtleWxpbmUgc2lsZW50bHkgZGlzYXBwZWFycyB3aGlsZSBpdHNcbiAgICAgY2xhc3MgYW5kIGJhY2tncm91bmQgY29sb3VyIGFyZSBzdGlsbCBwZXJmZWN0bHkgY29ycmVjdC4gTWVhc3VyZWQgaW4gdGhlXG4gICAgIGNhcHBlZCBzZWxlY3QgcG9wb3ZlciwgMDUuMDguMjAyNjogb2Zmc2V0SGVpZ2h0IDAsIGFuZCAxIGFnYWluIHdpdGhcbiAgICAgZmxleC1zaHJpbms6IDAuIE1lbnUtaXRlbXMgc3Vydml2ZSBiZWNhdXNlIHRoZWlyIHRleHQgZ2l2ZXMgdGhlbSBhXG4gICAgIG1pbi1jb250ZW50IGhlaWdodC4gKi9cbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1tZW51LXNlcGFyYXRvci5tZW51LXNlcGFyYXRvci1jb2xvci1uZXV0cmFsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCk7XG59XG4ucWRuYXByby1tZW51LXNlcGFyYXRvci5tZW51LXNlcGFyYXRvci1jb2xvci1hY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xufVxuXG4ucWRuYXByby1tZW51LXNlY3Rpb24taGVhZGluZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwIDRweDtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ucWRuYXByby1tZW51LXNlY3Rpb24taGVhZGluZy5tZW51LXNlY3Rpb24taGVhZGluZy1jb2xvci1uZXV0cmFsIHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDApO1xufVxuLnFkbmFwcm8tbWVudS1zZWN0aW9uLWhlYWRpbmcubWVudS1zZWN0aW9uLWhlYWRpbmctY29sb3ItYWN0aW9uIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbWVudS5tZW51LWNvbG9yLW5ldXRyYWwge1xuICBiYWNrZ3JvdW5kOiAjMmUzMDM2O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBib3gtc2hhZG93OiAwIDRweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgOHB4IDEycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW1lbnUubWVudS1jb2xvci1hY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiAjMzMzYTdiO1xuICBib3JkZXI6IDAuNXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IDFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW1lbnUgLnFkbmFwcm8tbWVudS1oZWFkZXIubWVudS1oZWFkZXItY29sb3ItbmV1dHJhbCAubWVudS1oZWFkZXItaGVhZGluZyB7XG4gIGNvbG9yOiAjZTFlM2U2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbWVudSAucWRuYXByby1tZW51LWhlYWRlci5tZW51LWhlYWRlci1jb2xvci1uZXV0cmFsIC5tZW51LWhlYWRlci1zdWJoZWFkaW5nIHtcbiAgY29sb3I6IHJnYmEoMjI1LCAyMjcsIDIzMCwgMC42NSk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1tZW51IC5xZG5hcHJvLW1lbnUtc2VwYXJhdG9yLm1lbnUtc2VwYXJhdG9yLWNvbG9yLW5ldXRyYWwge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbWVudSAucWRuYXByby1tZW51LXNlcGFyYXRvci5tZW51LXNlcGFyYXRvci1jb2xvci1hY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1tZW51IC5xZG5hcHJvLW1lbnUtc2VjdGlvbi1oZWFkaW5nLm1lbnUtc2VjdGlvbi1oZWFkaW5nLWNvbG9yLW5ldXRyYWwge1xuICBjb2xvcjogcmdiYSgyMjUsIDIyNywgMjMwLCAwLjYpO1xufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvbWVudS1pdGVtL19tZW51LWl0ZW0tY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnFkbmFwcm8tbWVudS1pdGVtIHtcbiAgLS1taS10ZXh0OiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgLS1taS10ZXh0LW11dGVkOiByZ2JhKDExLCAxMSwgMTMsIDAuNTUpO1xuICAtLW1pLWljb246IHZhcigtLWMtZ3JleS05NTApO1xuICAtLW1pLWJnOiB0cmFuc3BhcmVudDtcbiAgLS1taS1iZy1ob3ZlcjogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTtcbiAgLS1taS1iZy1wcmVzc2VkOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgLS1taS1iZy1zZWxlY3RlZDogdmFyKC0tYy1ncmV5LTUwKTtcbiAgLS1taS1kaXNhYmxlZC10ZXh0OiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xuICAtLW1pLWRlc3RydWN0aXZlLXRleHQ6IHZhcigtLWMtdGFnLWNyaXRpY2FsLXRleHQpO1xuICAtLW1pLWRlc3RydWN0aXZlLWJnLWhvdmVyOiB2YXIoLS1jLXNpZ25hbC1yZWQtc29mdCk7XG4gIC0tbWktZm9jdXMtcmluZzogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgLS1taS1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLW1pLWJnKTtcbiAgY29sb3I6IHZhcigtLW1pLXRleHQpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgYm9yZGVyOiAwIHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEwMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtIC5tZW51LWl0ZW0taWNvbixcbi5xZG5hcHJvLW1lbnUtaXRlbSAubWVudS1pdGVtLWNoZXZyb24sXG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS1jaGVjayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LXNocmluazogMDtcbiAgY29sb3I6IHZhcigtLW1pLWljb24pO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbSAubWVudS1pdGVtLWljb24gc3ZnLFxuLnFkbmFwcm8tbWVudS1pdGVtIC5tZW51LWl0ZW0tY2hldnJvbiBzdmcsXG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS1jaGVjayBzdmcge1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS1jaGV2cm9uLFxuLnFkbmFwcm8tbWVudS1pdGVtIC5tZW51LWl0ZW0tY2hlY2sge1xuICBvcGFjaXR5OiAwLjg1O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtIC5tZW51LWl0ZW0tbGFiZWwge1xuICBmbGV4OiAxIDAgMDtcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbSAubWVudS1pdGVtLXNob3J0Y3V0IHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGNvbG9yOiB2YXIoLS1taS10ZXh0LW11dGVkKTtcbiAgZm9udC1mYW1pbHk6IFwiTWVubG9cIiwgXCJNb25hY29cIiwgbW9ub3NwYWNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4zcHg7XG59XG4vKiBUcmFpbGluZyBhcmVhIOKAlCBhIGNvdW50IHBpbGwgKGFsd2F5cyB2aXNpYmxlKSBhbmQvb3IgaG92ZXItcmV2ZWFsZWQgYWN0aW9uXG4gICBidXR0b25zIChvcGVuICsgcmVtb3ZlKSwgZ3JvdXBlZCBhdCB0aGUgZW5kIG9mIHRoZSByb3cuIFRoZSBwaWxsIHN0YXlzIHB1dDtcbiAgIHRoZSBhY3Rpb25zIGZhZGUgaW4gb24gaG92ZXIvZm9jdXMgc28gdGhlIHJvdyBpcyBjbGVhbiBhdCByZXN0LiBbS2ltIDIwMjYtMDYtMTVdICovXG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS10cmFpbGluZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luLWxlZnQ6IDZweDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbSAubWVudS1pdGVtLXBpbGwgeyBmbGV4LXNocmluazogMDsgfVxuLyogVGFnIOKAlCBhIHJlYWwgcWRuYXByby10YWcgb24gdGhlIHRyYWlsaW5nIGVkZ2UgKHN0YXR1cyBsYWJlbDpcbiAgIFwiTmlldXdcIiAvIFwiUHJvXCIgLyBcIkJldGFcIikuIFRoZSBsYWJlbCdzIGZsZXg6MSBwdXNoZXMgaXQgcmlnaHQ7IGl0IHNpdHNcbiAgIEJFRk9SRSB0aGUgdHJhaWxpbmcgc2xvdCBzbyBpdCBjb2V4aXN0cyB3aXRoIGEgY2hldnJvbi9jaGVjay9waWxsLlxuICAgZmxleC1zaHJpbms6MCBzbyBpdCBuZXZlciBzcXVhc2hlcyAodGhlIGxhYmVsIHRydW5jYXRlcyBmaXJzdCkuIERpc2FibGVkXG4gICByb3cgZmFkZXMgdGhlIHRhZyAob3BhY2l0eSAwLjQsIHNhbWUgdHJlYXRtZW50IGFzIHRoZSBhdmF0YXIpLiBbS2ltIDIwMjYtMDctMjBdICovXG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS10YWcgeyBmbGV4LXNocmluazogMDsgfVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1kaXNhYmxlZCAubWVudS1pdGVtLXRhZyB7IG9wYWNpdHk6IDAuNDsgfVxuLyogVGFnLWFzLWxhYmVsIG1vZGUg4oCUIHRoZSB0YWcgSVMgdGhlIHJvdyBjb250ZW50IChsZWZ0IGFmdGVyIHRoZSBsZWFkaW5nXG4gICBzbG90KSwgZm9yIGNoZWNrYm94ICsgY29sb3VyZWQtdGFnIGNhdGVnb3J5IHBpY2tlcnMuIFRoZSB3cmFwcGVyIHRha2VzIHRoZVxuICAgZmxleDoxIGxhYmVsIHNsb3Qgc28gdGhlIHRhZyBodWdzIGl0cyBjb250ZW50IG9uIHRoZSBsZWZ0IGFuZCB0aGUgcm93IGtlZXBzXG4gICBhIGNvbnNpc3RlbnQgaGVpZ2h0OyBsb25nIHRhZyB0ZXh0IGNsaXBzIGF0IHRoZSB3cmFwcGVyIGVkZ2UuIFtLaW0gMjAyNi0wNy0yMF0gKi9cbi5xZG5hcHJvLW1lbnUtaXRlbSAubWVudS1pdGVtLXRhZy1sYWJlbCB7XG4gIGZsZXg6IDEgMCAwO1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS10YWctbGFiZWwgLm1lbnUtaXRlbS10YWcgeyBtYXgtd2lkdGg6IDEwMCU7IH1cbi5xZG5hcHJvLW1lbnUtaXRlbSAubWVudS1pdGVtLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDJweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0td2l0aC1hY3Rpb25zOmhvdmVyIC5tZW51LWl0ZW0tYWN0aW9ucyxcbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0td2l0aC1hY3Rpb25zOmZvY3VzLXdpdGhpbiAubWVudS1pdGVtLWFjdGlvbnMgeyBvcGFjaXR5OiAxOyB9XG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS1iYWRnZSB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGNvbG9yOiB2YXIoLS1taS10ZXh0KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1zaXplLWRlZmF1bHQge1xuICBnYXA6IDEycHg7XG4gIG1pbi1oZWlnaHQ6IDQwcHg7XG4gIHBhZGRpbmc6IDhweCAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXNpemUtZGVmYXVsdCAubWVudS1pdGVtLWljb24ge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1zaXplLWRlZmF1bHQgLm1lbnUtaXRlbS1jaGV2cm9uIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tc2l6ZS1kZWZhdWx0IC5tZW51LWl0ZW0tY2hlY2sge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1zaXplLWRlZmF1bHQgLm1lbnUtaXRlbS1zaG9ydGN1dCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tc2l6ZS1kZWZhdWx0IC5tZW51LWl0ZW0tYmFkZ2Uge1xuICBtaW4td2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgcGFkZGluZzogMCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDlweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMThweDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tc2l6ZS1zbWFsbCB7XG4gIGdhcDogMTJweDtcbiAgbWluLWhlaWdodDogMjhweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1zaXplLXNtYWxsIC5tZW51LWl0ZW0taWNvbiB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXNpemUtc21hbGwgLm1lbnUtaXRlbS1jaGV2cm9uIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tc2l6ZS1zbWFsbCAubWVudS1pdGVtLWNoZWNrIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tc2l6ZS1zbWFsbCAubWVudS1pdGVtLXNob3J0Y3V0IHtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1zaXplLXNtYWxsIC5tZW51LWl0ZW0tYmFkZ2Uge1xuICBtaW4td2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgcGFkZGluZzogMCA1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbTpob3Zlcjpub3QoLm1lbnUtaXRlbS1kaXNhYmxlZCk6bm90KC5tZW51LWl0ZW0tYWN0aXZlKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW1pLWJnLWhvdmVyKTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbTphY3RpdmU6bm90KC5tZW51LWl0ZW0tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbWktYmctcHJlc3NlZCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4ucWRuYXByby1tZW51LWl0ZW06Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLW1lbnUtaXRlbS5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1taS1mb2N1cy1yaW5nKTtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCB2YXIoLS1taS1mb2N1cy1nbG93KTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbWktYmctc2VsZWN0ZWQpO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLmZvcmNlLWhvdmVyOm5vdCgubWVudS1pdGVtLWRpc2FibGVkKTpub3QoLm1lbnUtaXRlbS1hY3RpdmUpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbWktYmctaG92ZXIpO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLmZvcmNlLXByZXNzZWQ6bm90KC5tZW51LWl0ZW0tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbWktYmctcHJlc3NlZCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLWRpc2FibGVkIHtcbiAgY29sb3I6IHZhcigtLW1pLWRpc2FibGVkLXRleHQpICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1kaXNhYmxlZCAubWVudS1pdGVtLWljb24sXG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLWRpc2FibGVkIC5tZW51LWl0ZW0tY2hldnJvbixcbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tZGlzYWJsZWQgLm1lbnUtaXRlbS1jaGVjayB7XG4gIGNvbG9yOiB2YXIoLS1taS1kaXNhYmxlZC10ZXh0KTtcbn1cbi8qIEZhZGUgaWxsdXN0cmF0aXZlIGxlYWRpbmcgdmlzdWFscyAoY29sb3VyZWQgYWN0aXZpdHktaWNvbiwgYXZhdGFyLCBmaWxlLWljb24pXG4gICB3aGVuIHRoZSByb3cgaXMgZGlzYWJsZWQg4oCUIHRoZXkgZG9uJ3QgcGljayB1cCB0aGUgdGV4dCBjb2xvdXIsIHNvIHdpdGhvdXQgdGhpc1xuICAgdGhleSBzdGF5IHZpdmlkIGFuZCB0aGUgcm93IGRvZXNuJ3QgcmVhZCBhcyBkaXNhYmxlZC4gTkI6IHRhcmdldCB0aGUgZWxlbWVudFxuICAgVEFHUywgbm90IHRoZSBtZW51LWl0ZW0tKiBjbGFzc2VzIOKAlCBxZG5hcHJvLWFjdGl2aXR5LWljb24gLyBxZG5hcHJvLWZpbGUtaWNvblxuICAgb3ZlcndyaXRlIHRoZWlyIG93biBjbGFzc05hbWUgb24gcmVuZGVyLCBzbyB0aGUgY2xhc3Mgc2VsZWN0b3JzIG5ldmVyIG1hdGNoLlxuICAgW0tpbSAyMDI2LTA2LTE1XSAqL1xuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1kaXNhYmxlZCBxZG5hcHJvLWFjdGl2aXR5LWljb24sXG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLWRpc2FibGVkIC5tZW51LWl0ZW0tYXZhdGFyLXdyYXAsXG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLWRpc2FibGVkIHFkbmFwcm8tZmlsZS1pY29uIHtcbiAgb3BhY2l0eTogMC41O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS12YXJpYW50LWRlc3RydWN0aXZlOm5vdCgubWVudS1pdGVtLWRpc2FibGVkKSB7XG4gIC0tbWktYmctaG92ZXI6IHZhcigtLW1pLWRlc3RydWN0aXZlLWJnLWhvdmVyKTtcbiAgY29sb3I6IHZhcigtLW1pLWRlc3RydWN0aXZlLXRleHQpO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS12YXJpYW50LWRlc3RydWN0aXZlOm5vdCgubWVudS1pdGVtLWRpc2FibGVkKSAubWVudS1pdGVtLWljb24sXG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXZhcmlhbnQtZGVzdHJ1Y3RpdmU6bm90KC5tZW51LWl0ZW0tZGlzYWJsZWQpIC5tZW51LWl0ZW0tY2hldnJvbixcbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tdmFyaWFudC1kZXN0cnVjdGl2ZTpub3QoLm1lbnUtaXRlbS1kaXNhYmxlZCkgLm1lbnUtaXRlbS1jaGVjayB7XG4gIGNvbG9yOiB2YXIoLS1taS1kZXN0cnVjdGl2ZS10ZXh0KTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbSAubWVudS1pdGVtLWFjdGl2aXR5LWljb24ge1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luLXJpZ2h0OiAtOHB4O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1kaXNhYmxlZCAubWVudS1pdGVtLWFjdGl2aXR5LWljb24ge1xuICBvcGFjaXR5OiAwLjM7XG59XG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS1jaXJjbGUge1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luLXJpZ2h0OiAtNHB4O1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS13aXRoLWNpcmNsZSAubWVudS1pdGVtLWxhYmVsIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXdpdGgtY2hlY2tib3gubWVudS1pdGVtLXNpemUtZGVmYXVsdCB7XG4gIHBhZGRpbmc6IDhweCA0cHg7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXdpdGgtY2hlY2tib3gubWVudS1pdGVtLXNpemUtc21hbGwge1xuICBwYWRkaW5nOiA0cHg7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXdpdGgtY2hlY2tib3ggLm1lbnUtaXRlbS1jaGVja2JveC13cmFwIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgcGFkZGluZzogMCA0cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS13aXRoLWNoZWNrYm94IC5tZW51LWl0ZW0tY2hlY2tib3gge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0td2l0aC1hdmF0YXIubWVudS1pdGVtLXNpemUtZGVmYXVsdCB7XG4gIHBhZGRpbmc6IDhweCA0cHg7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXdpdGgtYXZhdGFyLm1lbnUtaXRlbS1zaXplLXNtYWxsIHtcbiAgcGFkZGluZzogNHB4O1xuICAvKiBTbWFsbCArIGF2YXRhciAoZS5nLiBhIHVzZXItcGlja2VyIHFkbmFwcm8tc2VsZWN0KTogdGhlIGRlZmF1bHQgMTJweCByb3dcbiAgICAgZ2FwIHBsdXMgdGhlIGF2YXRhci13cmFwIHNpZGUgcGFkZGluZyBsZWZ0IHRoZSByYWRpbywgYXZhdGFyIGFuZCBsYWJlbCB0b29cbiAgICAgZmFyIGFwYXJ0LiBUaWdodGVuIHNvIGF2YXRhciArIGxhYmVsIHJlYWQgYXMgb25lIHVuaXQuIFtLaW0gMjAyNi0wNy0yMF0gKi9cbiAgZ2FwOiA2cHg7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXdpdGgtYXZhdGFyLm1lbnUtaXRlbS1zaXplLXNtYWxsIC5tZW51LWl0ZW0tYXZhdGFyLXdyYXAge1xuICBwYWRkaW5nOiAwIDFweDtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0td2l0aC1hdmF0YXIgLm1lbnUtaXRlbS1hdmF0YXItd3JhcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHBhZGRpbmc6IDAgNHB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0td2l0aC1hdmF0YXIgLm1lbnUtaXRlbS1hdmF0YXIge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0td2l0aC1hdmF0YXIubWVudS1pdGVtLWRpc2FibGVkIC5tZW51LWl0ZW0tYXZhdGFyLXdyYXAge1xuICBvcGFjaXR5OiAwLjQ7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXdpdGgtcmFkaW8ubWVudS1pdGVtLXNpemUtZGVmYXVsdCB7XG4gIHBhZGRpbmc6IDhweCA0cHg7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXdpdGgtcmFkaW8ubWVudS1pdGVtLXNpemUtc21hbGwge1xuICBwYWRkaW5nOiA0cHg7XG59XG4ucWRuYXByby1tZW51LWl0ZW0ubWVudS1pdGVtLXdpdGgtcmFkaW8gLm1lbnUtaXRlbS1yYWRpby13cmFwIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgcGFkZGluZzogMCA0cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS13aXRoLXJhZGlvIC5tZW51LWl0ZW0tcmFkaW8ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tY29sb3ItYWN0aW9uIHtcbiAgLS1taS10ZXh0OiAjZmZmZmZmO1xuICAtLW1pLXRleHQtbXV0ZWQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgLS1taS1pY29uOiAjZmZmZmZmO1xuICAtLW1pLWJnLWhvdmVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICAtLW1pLWJnLXByZXNzZWQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMik7XG4gIC0tbWktYmctc2VsZWN0ZWQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG4gIC0tbWktZGlzYWJsZWQtdGV4dDogdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKTtcbiAgLS1taS1kZXN0cnVjdGl2ZS10ZXh0OiB2YXIoLS1jLXdhcm4tcmVkLTMwMCk7XG4gIC0tbWktZGVzdHJ1Y3RpdmUtYmctaG92ZXI6IHJnYmEoMjU1LCAxNTUsIDE1NSwgMC4xOCk7XG4gIC0tbWktZm9jdXMtcmluZzogI2ZmZmZmZjtcbiAgLS1taS1mb2N1cy1nbG93OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1jb2xvci1hY3Rpb24gLm1lbnUtaXRlbS1iYWRnZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMik7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbWVudS1pdGVtIHtcbiAgLS1taS10ZXh0OiAjZTFlM2U2O1xuICAtLW1pLXRleHQtbXV0ZWQ6IHJnYmEoMjI1LCAyMjcsIDIzMCwgMC42KTtcbiAgLS1taS1pY29uOiAjZTFlM2U2O1xuICAtLW1pLWJnLWhvdmVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpO1xuICAtLW1pLWJnLXByZXNzZWQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7XG4gIC0tbWktYmctc2VsZWN0ZWQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCk7XG4gIC0tbWktZGlzYWJsZWQtdGV4dDogIzZiNzI4MDtcbiAgLS1taS1kZXN0cnVjdGl2ZS10ZXh0OiAjZmY5YjliO1xuICAtLW1pLWRlc3RydWN0aXZlLWJnLWhvdmVyOiByZ2JhKDI1NSwgMTU1LCAxNTUsIDAuMTQpO1xuICAtLW1pLWZvY3VzLXJpbmc6ICNhNWFjZmY7XG4gIC0tbWktZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC40KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW1lbnUtaXRlbSAubWVudS1pdGVtLWJhZGdlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbiAgY29sb3I6IHZhcigtLW1pLXRleHQpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1jb2xvci1hY3Rpb24ge1xuICAtLW1pLWJnLWhvdmVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTApO1xuICAtLW1pLWJnLXByZXNzZWQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNCk7XG4gIC0tbWktYmctc2VsZWN0ZWQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG59XG5cbi8qID09PSBkZXNjcmlwdGlvbiB2YXJpYW50IOKAlCBsYWJlbCArIHN1Yi10ZXh0IChGaWdtYSA5Nzk0OjI0MzcxNSkgPT09ICovXG4ucWRuYXByby1tZW51LWl0ZW0geyAtLW1pLWRlc2NyaXB0aW9uLXRleHQ6IHZhcigtLWMtZ3JleS01MDApOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1tZW51LWl0ZW0geyAtLW1pLWRlc2NyaXB0aW9uLXRleHQ6ICM4OThlOTk7IH1cbi5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0tY29sb3ItYWN0aW9uIHsgLS1taS1kZXNjcmlwdGlvbi10ZXh0OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7IH1cbi5xZG5hcHJvLW1lbnUtaXRlbSAubWVudS1pdGVtLWxhYmVsLWdyb3VwIHtcbiAgZmxleDogMSAwIDA7XG4gIG1pbi13aWR0aDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtIC5tZW51LWl0ZW0tbGFiZWwtZ3JvdXAgLm1lbnUtaXRlbS1sYWJlbCB7XG4gIGZsZXg6IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtIC5tZW51LWl0ZW0tZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICBjb2xvcjogdmFyKC0tbWktZGVzY3JpcHRpb24tdGV4dCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1kaXNhYmxlZCAubWVudS1pdGVtLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IHZhcigtLW1pLWRpc2FibGVkLXRleHQpO1xufVxuLyogPT09IEVORCBkZXNjcmlwdGlvbiB2YXJpYW50IENTUyA9PT0gKi9cblxuLyogPT09IE1hbmRhdG9yeSBtYXJrZXIgKHJlZCBhc3RlcmlzayBiZWZvcmUgdGhlIGxhYmVsKSDigJQgbWF0Y2hlcyB0aGUgdW5pdC1jYXJkXG4gICBtYW5kYXRvcnkgY29udmVudGlvbiAodmFyKC0tYy1mYXZvcml0ZS1oZWFydCkpLiBQcmVmaXhlZCBpbnNpZGUgLm1lbnUtaXRlbS1sYWJlbCBzbyBpdCBzdGF5c1xuICAgZ2x1ZWQgdG8gdGhlIG5hbWUgYW5kIGNsaXBzIHRvZ2V0aGVyIHdpdGggaXQuIFtLaW0gMjAyNi0wNy0xNV0gPT09ICovXG4ucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS1sYWJlbCAubWVudS1pdGVtLW1hbmRhdG9yeS1tYXJrIHtcbiAgY29sb3I6IHZhcigtLWMtZmF2b3JpdGUtaGVhcnQpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbn1cblxuLyogU3RhdHVzIGNpcmNsZS1jb2xvciB2YWx1ZXMgKHBsYW5uZXIgc3RhdHVzIGZpbHRlciwgMTYuMDcuMjAyNikgdXNlZCB0byBiZVxuICAgcGFpbnRlZCBoZXJlIHZpYSBhIG1lbnUtaXRlbS1zY29wZWQgb3ZlcnJpZGUgY2xhc3MgKC5tZW51LWl0ZW0tY2lyY2xlLVxuICAgc3RhdHVzLSopIGluc3RlYWQgb2YgbGFiZWwtY2lyY2xlJ3Mgb3duIGBjb2xvcmAgYXR0cmlidXRlLCBiZWNhdXNlIHRob3NlXG4gICA0IG5hbWVzIGRpZG4ndCBleGlzdCBpbiBxZG5hcHJvLWxhYmVsLWNpcmNsZSdzIFZBTElEX0NPTE9SUy4gVGhhdCBvdmVycmlkZVxuICAgbmV2ZXIgYWN0dWFsbHkgd29ya2VkOiBsYWJlbC1jaXJjbGUncyBvd24gcmVuZGVyKCkgdW5jb25kaXRpb25hbGx5XG4gICByZXdyaXRlcyBpdHMgY2xhc3NOYW1lIG9uIGV2ZXJ5IHJlLXJlbmRlciAoc2VlIHFkbmEtbGFiZWwtY2lyY2xlLmpzKSwgc29cbiAgIHRoZSBvdmVycmlkZSBjbGFzcyB3YXMgd2lwZWQgdGhlIGluc3RhbnQgdGhlIGNpcmNsZSBjb25uZWN0ZWQgdG8gdGhlIERPTVxuICAg4oCUIGV2ZXJ5IHN0YXR1cyBkb3QgcmVuZGVyZWQgZ3JleS9lbXB0eSAoS2ltJ3MgbGl2ZSB0ZXN0LCAxNi4wNy4yMDI2KS5cbiAgIEZpeGVkIGF0IHRoZSByZWFsIGNhdXNlOiB0aGUgNCBzdGF0dXMtKiBuYW1lcyBhcmUgbm93IGZpcnN0LWNsYXNzIGNvbG9yc1xuICAgb24gcWRuYXByby1sYWJlbC1jaXJjbGUgaXRzZWxmIChzZWUgX2xhYmVsLWNpcmNsZS5zY3NzKSBhbmQgcGFzc2VkXG4gICB0aHJvdWdoIGFzIGEgbm9ybWFsIGBjb2xvcmAgYXR0cmlidXRlIGZyb20gcWRuYS1tZW51LWl0ZW0uanMg4oCUIG5vdGhpbmdcbiAgIG1lbnUtaXRlbS1zY29wZWQgbGVmdCB0byBvdmVycmlkZSBoZXJlLiAqL1xuIiwiLy8gRWVuIG5vZyBuaWV0IG9wZ2VzdGFydCA8cWRuYXByby1tb2RhbD4gbWFnIE5JRVRTIHRvbmVuOiBkZSBicm93c2VyIHJlbmRlcnRcbi8vIHonbiBsaWdodC1ET00ta2luZGVyZW4gYW5kZXJzIGFscyBnZXdvbmUgdGVrc3QsIGVuIGVlbiBtb2RhbCBob29ydCBkaWNodCB0ZVxuLy8gc3RhYW4uIFplbGZkZSBwYXRyb29uIGFscyBxZG5hcHJvLXNlYXJjaC1vdmVybGF5IGVuIHFkbmFwcm8tcG9wb3Zlci5cbi8vIOKaoO+4jyBEZXplIHJlZ2VsIGtvbXQgaW4gc3R5bGUtdjEuY3NzIHRlcmVjaHQuIFN0YWF0IGRpZSBzdHlsZXNoZWV0IG9wIGVlbiBwYWdpbmFcbi8vIExBQUcgZ2VsaW5rdCAoZGUgZmxvdyBlZGl0b3IgZG9ldCBkYXQpLCBkYW4ga29tdCBoaWogdGUgbGFhdCBvbSBkZSBmbGl0cyB0ZVxuLy8gdm9vcmtvbWVuIOKAlCBkYWFyIHN0YWF0IGRhYXJvbSDDs8OzayBlZW4gaW5saW5lIHJlZ2VsIGJvdmVuYWFuIGRlIHBhZ2luYS5cbnFkbmFwcm8tbW9kYWw6bm90KDpkZWZpbmVkKSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvbW9kYWwvX21vZGFsLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgcWRuYXByby1tb2RhbCBjb21waWxlZCBDU1NcbiAgIEV4dHJhY3RlZCBmcm9tIHFkbmEtbW9kYWwtcHJldmlldy5odG1sIHNvIHRoZSBidW5kbGUgY2FuIHNoaXBcbiAgIG1vZGFsIHN0eWxpbmcgdG8gYW55IHYxL3YyIHBhZ2UgKEtpbSAyMDI2LTA1LTI5KS5cbiAgIFR3by1sYXllciBjYXJkOiBvdXRlciBHUkVZIGZyYW1lIGFyb3VuZCBpbm5lciBXSElURSB3aW5kb3cuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5xZG5hcHJvLW1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogOTAwMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1tb2RhbC5tb2RhbC1vcGVuIHsgZGlzcGxheTogZmxleDsgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cblxuLyogQm9vdHN0cmFwIChnbG9iYWxseSBsb2FkZWQgaW4gdjEpIGRlZmluZXMgLm1vZGFsLWRpYWxvZyB3aXRoXG4gICBgcG9pbnRlci1ldmVudHM6IG5vbmVgIChhbmQgLm1vZGFsLWNvbnRlbnQgd2l0aCBgYXV0b2AgdG8gcmUtZW5hYmxlXG4gICBpbnNpZGUpLiBPdXIgdjIgbW9kYWwgcmV1c2VzIHRoZSAubW9kYWwtZGlhbG9nIC8gLm1vZGFsLXdpbmRvd1xuICAgY2xhc3MgbmFtZXMsIHNvIEJvb3RzdHJhcCdzIHJ1bGUgbWFrZXMgY2xpY2tzIGZhbGwgdGhyb3VnaCB0byB0aGVcbiAgIGJhY2tkcm9wID0gbW9kYWwgY2xvc2VzIG9uIGV2ZXJ5IGludGVyYWN0aW9uLlxuICAgUmUtZW5hYmxlIGludGVyYWN0aW9uIGV4cGxpY2l0bHkgd2hlbiB0aGUgdjIgbW9kYWwgaXMgb3Blbi4gKi9cbi5xZG5hcHJvLW1vZGFsLm1vZGFsLW9wZW4gLm1vZGFsLWRpYWxvZyxcbi5xZG5hcHJvLW1vZGFsLm1vZGFsLW9wZW4gLm1vZGFsLXdpbmRvdyB7IHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG5cbi8qIEJvb3RzdHJhcCBhbHNvIGFkZHMgdmlzdWFsIGJvcmRlcnMgb24gLm1vZGFsLWhlYWRlciAoYm9yZGVyLWJvdHRvbSlcbiAgIGFuZCAubW9kYWwtZm9vdGVyIChib3JkZXItdG9wKS4gT3VyIHYyIGRlc2lnbiB1c2VzIHBhZGRpbmctYmFzZWRcbiAgIHNlcGFyYXRpb24sIG5vdCBib3JkZXIta2V5bGluZXMuIFplcm8gdGhlbSBvdXQgc28gdGhlIGNhc2NhZGVcbiAgIGZyb20gQm9vdHN0cmFwIGNhbid0IGRyYXcgc3RyYXkgbGluZXMuICovXG4ucWRuYXByby1tb2RhbCAubW9kYWwtaGVhZGVyIHsgYm9yZGVyLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG4ucWRuYXByby1tb2RhbCAubW9kYWwtZm9vdGVyIHsgYm9yZGVyLXRvcDogMCAhaW1wb3J0YW50OyB9XG5cbi8qIEJvb3RzdHJhcCBhbHNvIGluamVjdHMgc2libGluZy1tYXJnaW5zIG9uIG1vZGFsLWZvb3RlciBjaGlsZHJlblxuICAgKC5tb2RhbC1mb290ZXIgPiA6bm90KDpmaXJzdC1jaGlsZCkgeyBtYXJnaW4tbGVmdDogMC4yNXJlbSB9LCBhbmRcbiAgIDpub3QoOmxhc3QtY2hpbGQpIHsgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtIH0pLiBPbiBhIDItYnV0dG9uIGZvb3RlclxuICAgdGhhdCBhZGRzIDhweCBleHRyYSB0byBvdXIgYGdhcDogMTZweGAg4oaSIHZpc3VhbCBnYXAgYmVjb21lcyAyNHB4XG4gICAoPSA0OCBkZXZpY2UtcHggb24gcmV0aW5hKS4gWmVybyB0aGUgc2libGluZy1tYXJnaW5zIHNvIHRoZVxuICAgZGVjbGFyZWQgZ2FwIGlzIHRoZSBhY3R1YWwgZ2FwLiAqL1xuLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWZvb3RlciA+ICoge1xuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLyog4pSA4pSAIEdFRU4gY291bnRlci16b29tIChtZWVyKSDigJQgdmVyd2lqZGVyZCAyMDI2LTA4LTAzLCBlbiBkaXQgaXMgZGUgdWl0bGVnIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgSGllciBzdG9uZCBgLnFkbmFwcm8tbW9kYWwsIC5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyIHsgem9vbTogMS4yNSB9YCwgb20gZGUgbGVnYWN5XG4gICBgYm9keSB7IHpvb206IDAuOCB9YCB2YW4gZGUgb3VkZSBiYWNrb2ZmaWNlIHRlIGNvbXBlbnNlcmVuOiAwLjggw5cgMS4yNSA9IDEuMCwgem9kYXQgZWVuXG4gICBwb3NpdGlvbi1maXhlZCBraW5kIChkZSBtb2RhbCBlbiBkZSBzZWxlY3QtcG9wb3ZlciBoYW5nZW4gYmVpZGUgYWFuIDxib2R5Pikgb3AgZGUganVpc3RlIHBsZWtcbiAgIGxhbmRkZSBpbiBwbGFhdHMgdmFuIG9wIDAuOCDDlyBkZSBwbGVrLlxuXG4gICBEaWUgMC44IGJlcmVpa3QgZWVuIHYxLXBhZ2luYSBuaWV0IG1lZXIuIEhpaiBzdGFhdCBhbGxlZW4gbm9nIGluIGB3ZWIvY3NzL3N0eWxlLmNzc2AgKGFsc1xuICAgYGJvZHkgeyB6b29tOiA3MiUgfWApLCBlbiBkaWUgc3R5bGVzaGVldCB3b3JkdCB1aXRzbHVpdGVuZCBnZWxhZGVuIGRvb3IgZGUgTEVHQUNZIGhlYWRlcnNcbiAgIChgVmlldy9jb21wb25lbnRzL2hlYWRlci5odG1sYCwgYFZpZXcvTmV3RGVzaWduL2NvbXBvbmVudHMvaGVhZGVyLmh0bWxgKSDigJQgZW4gZGllIGxhZGVuIGfDqcOpblxuICAgYHN0eWxlLXYxLmNzc2AgZW4gZ8Opw6luIGBjb21wb25lbnRzLmpzYCwgZHVzIGRhYXIgYmVzdGFhdCBnZWVuIHYyLW1vZGFsIG9tIHRlIHNjaGFsZW4uIEdlbWV0ZW5cbiAgIG9wIGVlbiB2MS1wYWdpbmE6IGBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLnpvb21gID0gMS5cblxuICAgSGV0IGdldm9sZyB3YXMgZWVuIGtub29wOiBkZSAxLjI1IGhhZCBuaWV0cyB0ZSBjb21wZW5zZXJlbiwgZHVzIMOpbGtlIG1vZGVybmUgcGFnaW5hIHpldHRlIGhlbVxuICAgd2VlciB1aXQg4oCUIGVuIMOpw6luIHZhbiBkaWUgbmV1dHJhbGlzYXRpZXMgKGluIGBwYXJ0aWFscy9faW5ib3guc2Nzc2ApIHdhcyBOSUVUIHBhZ2luYS1nZXNjb29wdFxuICAgZW4gZGVlZCBoZXQgZHVzIGFwcC1icmVlZC4gTmV0dG8gc3RvbmQgYWxsZXMgb3AgMSwgbWFhciB2aWEgdHdlZSByZWdlbHMgZGllIGVsa2FhciBvcGhlZmZlbi5cbiAgIOKaoO+4jyBaZXQgaGVtIG5pZXQgdGVydWcgXCJ2b29yIGRlIHpla2VyaGVpZFwiOiBkYW4gd29yZHQgw6lsayB2ZW5zdGVyIDI1JSB0ZSBncm9vdCBvcCBlbGtlIHBhZ2luYVxuICAgICAgZGllIGdlZW4gZWlnZW4gbmV1dHJhbGlzYXRpZSBoZWVmdC4gS29tdCBkZSBsZWdhY3kgYm9keS16b29tIG9vaXQgdGVydWcgb3AgZWVuIHBhZ2luYSBkaWVcbiAgICAgIHfDqWwgdjItY29tcG9uZW50ZW4gbGFhZHQsIGRhbiBob29ydCBkZSBjb3JyZWN0aWUgUEFHSU5BLWdlc2Nvb3B0IGJpaiBkaWUgcGFnaW5hIHRlIHN0YWFuLlxuICAg4pOYIEVyIHN0YWF0IG5vZyBlZW4gZG9kZSBgem9vbTogMWAgaW4gYHByb2plY3RzLXYyLmh0bWxgLCBgaG9tZS12Mi5odG1sYCBlbiBgZmxvd2VkaXRvci5odG1sYC5cbiAgICAgRGllIGRvZW4gbmlldHMgbWVlciAoMSBvcCBpZXRzIGRhdCBhbCAxIGlzKSBlbiBtb2dlbiB3ZWcgem9kcmEgaWVtYW5kIGRpZSBwYWdpbmEncyBhYW5yYWFrdC4gKi9cblxuLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlOyBpbnNldDogMDtcbiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDI0cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTEsIDExLCAxMywgMC40NSk7XG4gIGFuaW1hdGlvbjogcWRuYXByby1tb2RhbC1iYWNrZHJvcC1pbiAxNjBtcyBlYXNlLW91dDtcbn1cblxuLyogT1VURVIgR1JFWSBDQVJEICovXG4ucWRuYXByby1tb2RhbCAubW9kYWwtZGlhbG9nIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbiAgYm9yZGVyOiAwLjVweCBzb2xpZCAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIGJveC1zaGFkb3c6XG4gICAgMCA0cHggNHB4ICByZ2JhKDAsIDAsIDAsIDAuMzApLFxuICAgIDAgOHB4IDEycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlOyBtYXgtd2lkdGg6IDU2MHB4OyBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDhweCk7XG4gIGFuaW1hdGlvbjogcWRuYXByby1tb2RhbC1kaWFsb2ctaW4gMjAwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC44LCAwLjIsIDEpO1xufVxuLnFkbmFwcm8tbW9kYWwubW9kYWwtc2l6ZS1zbWFsbCAgIC5tb2RhbC1kaWFsb2cgeyBtYXgtd2lkdGg6IDQwMHB4OyAgfVxuLnFkbmFwcm8tbW9kYWwubW9kYWwtc2l6ZS1tZWRpdW0gIC5tb2RhbC1kaWFsb2cgeyBtYXgtd2lkdGg6IDU2MHB4OyAgfVxuLnFkbmFwcm8tbW9kYWwubW9kYWwtc2l6ZS1sYXJnZSAgIC5tb2RhbC1kaWFsb2cgeyBtYXgtd2lkdGg6IDgwMHB4OyAgfVxuLnFkbmFwcm8tbW9kYWwubW9kYWwtc2l6ZS14bGFyZ2UgIC5tb2RhbC1kaWFsb2cgeyBtYXgtd2lkdGg6IDEwMDBweDsgfVxuLnFkbmFwcm8tbW9kYWwubW9kYWwtc2l6ZS14eGxhcmdlIC5tb2RhbC1kaWFsb2cgeyBtYXgtd2lkdGg6IDExMDBweDsgfVxuXG4vKiBMYXlvdXQ6IHdpdGgtaW5mbyAtIGxlZnQgc2lkZSBpbmZvLXBhbmVsICovXG4ucWRuYXByby1tb2RhbC5tb2RhbC1sYXlvdXQtd2l0aC1pbmZvIC5tb2RhbC1kaWFsb2cgeyBnYXA6IDhweDsgfVxuLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWluZm8ge1xuICAvKiAyODBweCBibGlqZnQgZGUgZGVmYXVsdDsgYGluZm8td2lkdGg9XCJOXCJgIG9wIGRlIG1vZGFsIHpldCAtLW1vZGFsLWluZm8tdyBlblxuICAgICBtYWFrdCBoZXQgcGFuZWVsIHNtYWxsZXIgem9uZGVyIGRlemUgcmVnZWwgdGUgb3ZlcnNjaHJpanZlbi4gW0tpbSAwNS4wOC4yMDI2XSAqL1xuICBmbGV4OiAwIDAgdmFyKC0tbW9kYWwtaW5mby13LCAyODBweCk7IG1pbi13aWR0aDogMDsgcGFkZGluZzogMTZweDtcbiAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNnB4O1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAyMnB4OyBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHotaW5kZXg6IDA7XG59XG4ucWRuYXByby1tb2RhbCAubW9kYWwtaW5mbyBxZG5hcHJvLWljb24sXG4ucWRuYXByby1tb2RhbCAubW9kYWwtaW5mbyA+IC5tb2RhbC1pbmZvLWljb24ge1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDtcbn1cbi5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLWluZm8tdGl0bGUge1xuICBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDI0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtaW5mby1pbGx1c3RyYXRpb24ge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBtYXJnaW4tbGVmdDogLTE2cHg7XG4gIG1hcmdpbi1yaWdodDogLTE2cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBtaW4taGVpZ2h0OiAxNjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC1pbmZvLWlsbHVzdHJhdGlvbiBxZG5hcHJvLWlsbHVzdHJhdGlvbixcbi5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLWluZm8taWxsdXN0cmF0aW9uIGltZyxcbi5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLWluZm8taWxsdXN0cmF0aW9uIHN2ZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbi8qIFRoZSBpbGx1c3RyYXRpb24gbXVzdCBuZXZlciBkcmF3IE9WRVIgaXRzIG93biBpbmZvIHRleHQuIFtKYW4gMjcuMDcuMjAyNl1cbiAgIFdoeSBpdCBjb3VsZDogdGhlIGluZm8gY29sdW1uIGlzIGEgZml4ZWQtaGVpZ2h0IGZsZXggY29sdW1uLCBhbmQgdGhlIGFydHdvcmsgaXNcbiAgIHNpemVkIGJ5IGFzcGVjdC1yYXRpbyBmcm9tIGEgZml4ZWQgMjQwcHggV0lEVEgg4oCUIHNldmVyYWwgaWxsdXN0cmF0aW9ucyBhcmUgcG9ydHJhaXRcbiAgIChzaGFyZSA9IDg4NHB4IHRhbGwgYXQgd2lkdGggMjQwLCBpZGVhIDYxMCwgdG9vbCA1NTYsIGhhbmRzLWNoZWNrIDUwOSksIHNvIGFzIHNvb24gYXNcbiAgIHRoZSBpY29uK3RpdGxlK3RleHQgbm8gbG9uZ2VyIGxlZnQgdGhhdCBtdWNoIHJvb20gdGhlIGZsZXggYWxnb3JpdGhtIHNocmFuayB0aGlzIEJPWFxuICAgd2hpbGUgdGhlIGFydHdvcmsgaW5zaWRlIGtlcHQgaXRzIGhlaWdodCwgYW5kIGBhbGlnbi1pdGVtczogZmxleC1lbmRgIHRoZW4gcHVzaGVkIHRoZVxuICAgb3ZlcmZsb3cgVVBXQVJEUyBhY3Jvc3MgdGhlIHRleHQuIEl0IGlzIHZpZXdwb3J0LWhlaWdodCBkZXBlbmRlbnQgKHRoZSBkaWFsb2cgaXNcbiAgIGBtaW4oODAwcHgsIDEwMHZoIC0gNDhweClgKSwgc28gdGhlIHNhbWUgbW9kYWwgd2FzIGZpbmUgb24gYSBiaWcgc2NyZWVuIGFuZCB1bnJlYWRhYmxlXG4gICBvbiBhIGxhcHRvcCDigJQgbWVhc3VyZWQgb24gYSA3MjBweC10YWxsIHZpZXdwb3J0OiBoYW5kcy1jaGVjayBjb3ZlcmVkIDU1cHggb2YgdGV4dCBhdFxuICAgMjIxIGNoYXJhY3RlcnMsIHNoYXJlIGNvdmVyZWQgNDMwcHggKHRpdGxlIGluY2x1ZGVkKS5cbiAgIEZpeDogbGV0IHRoZSBhcnR3b3JrIHNjYWxlIGRvd24gaW50byB3aGF0ZXZlciBoZWlnaHQgdGhlIGJveCBnZXRzLCBzdGF5aW5nIGJvdHRvbS1sZWZ0XG4gICBhbmNob3JlZCwgYW5kIGNsaXAgYXMgYSBsYXN0IHJlc29ydC4gYG9iamVjdC1maXQ6IGNvbnRhaW5gIGtlZXBzIHRoZSBhc3BlY3QgcmF0aW8sIHNvXG4gICB3aGVuIHRoZXJlIElTIHJvb20gdGhlIHBhaW50ZWQgcGl4ZWxzIGFyZSBieXRlLWlkZW50aWNhbCB0byBiZWZvcmUgKHZlcmlmaWVkIGJ5XG4gICBwaXhlbC1kaWZmIG92ZXIgOSBmaXR0aW5nIGNhc2VzKS4gKi9cbi5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLWluZm8taWxsdXN0cmF0aW9uIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtaW5mby1pbGx1c3RyYXRpb24gcWRuYXByby1pbGx1c3RyYXRpb24ge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoOyAgIC8qIGhvc3QgaGVpZ2h0IDo9IHRoZSAocG9zc2libHkgc2hydW5rKSBib3ggaGVpZ2h0ICovXG4gIG1pbi1oZWlnaHQ6IDA7ICAgICAgICAgLyogLi4uYW5kIGxldCBpdCBzaHJpbmsgYXQgYWxsICovXG59XG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC1pbmZvLWlsbHVzdHJhdGlvbiBxZG5hcHJvLWlsbHVzdHJhdGlvbiBpbWcsXG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC1pbmZvLWlsbHVzdHJhdGlvbiBxZG5hcHJvLWlsbHVzdHJhdGlvbiBzdmcge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIG9iamVjdC1wb3NpdGlvbjogbGVmdCBib3R0b207XG59XG5cbi8qIEhvcml6b250YWFsIGdlY2VudHJlZXJkZSB0ZWtlbmluZyAoMDQuMDguMjAyNiwgS2ltIOKAlCBkZSBtb2RhbCBcIkdla29wcGVsZGVcbiAgIGRvY3VtZW50ZW5cIikuIExpbmtzb25kZXIgYmxpamZ0IGRlIHN0YW5kYWFyZDogZGUgbWVlc3RlIGlsbHVzdHJhdGllcyBoaWVyIHppam5cbiAgIGJyZWVkIGVuIGxvcGVuIGJld3VzdCBkZSBob2VrIGluLiBFZW4gS0xFSU5FUkUgdGVrZW5pbmcgKHNpemUgMTYwIGkucC52LiAyNDApXG4gICBzdGFhdCBkYWFyIGp1aXN0IHNjaGVlZiBpbiBoZXQgcGFuZWVsLCBlbiBkYW4gaXMgbWlkZGVuIGJldGVyLiBBcGFydGUgbW9kaWZpZXJcbiAgIGVuIGdlZW4gcGFnaW5hcmVnZWwsIHpvZGF0IGVsa2UgbW9kYWwgZGV6ZWxmZGUga2V1emUga2FuIG1ha2VuLlxuICAgVHdlZSBkaW5nZW4gbm9kaWc6IGRlIGZsZXhib3gtdWl0bGlqbmluZyB2YW4gZGUgZG9vcywgZW4gZGUgb2JqZWN0LXBvc2l0aW9uIHZhblxuICAgaGV0IHBsYWF0amUgemVsZiAoZGF0IHdvcmR0IGRvb3IgZGUgcmVnZWwgaGllcmJvdmVuIGxpbmtzb25kZXIgZ2V6ZXQsIGVuIGRpZVxuICAgaGVlZnQgZGV6ZWxmZGUgc3BlY2lmaWNpdGVpdCwgZHVzIGhpaiBtb2V0IGV4cGxpY2lldCBtZWUpLiBWZXJ0aWNhYWwgYmxpamZ0XG4gICBhbGxlcyBvbmRlcmFhbiBoYW5nZW4uICovXG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC1pbmZvLWlsbHVzdHJhdGlvbi0tY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC1pbmZvLWlsbHVzdHJhdGlvbi0tY2VudGVyIHFkbmFwcm8taWxsdXN0cmF0aW9uIGltZyxcbi5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLWluZm8taWxsdXN0cmF0aW9uLS1jZW50ZXIgcWRuYXByby1pbGx1c3RyYXRpb24gc3ZnIHtcbiAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tO1xufVxuXG4vKiBCb2R5IHV0aWxpdHkgY2xhc3NlcyAqL1xuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtc2VjdGlvbi10aXRsZSB7XG4gIG1hcmdpbjogMDsgZm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjRweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC1zZWN0aW9uLXN1YiB7XG4gIG1hcmdpbjogMCAwIDhweDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMjJweDsgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7IGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC1ncmlkLTIge1xuICBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogMTJweDtcbn1cbi5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLWVycm9yLWJhbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBwYWRkaW5nOiA4cHggMDtcbiAgZm9udC1zaXplOiAxM3B4OyBsaW5lLWhlaWdodDogMjBweDsgZm9udC13ZWlnaHQ6IDUwMDsgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTtcbn1cbi5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLWVycm9yLWJhbm5lciBxZG5hcHJvLWljb24geyBjb2xvcjogaW5oZXJpdDsgZmxleC1zaHJpbms6IDA7IH1cblxuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtaW5mby1oZWFkIHtcbiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7XG59XG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC1pbmZvLWhlYWQgLnFkbmFwcm8tbW9kYWwtaW5mby10aXRsZSB7IG1hcmdpbjogMDsgfVxuXG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC10b2dnbGUtcm93IHtcbiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxNnB4OyBwYWRkaW5nOiA0cHggMDtcbn1cbi5xZG5hcHJvLW1vZGFsIC5xZG5hcHJvLW1vZGFsLXRvZ2dsZS10ZXh0IHtcbiAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAycHg7XG59XG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC10b2dnbGUtbGFiZWwge1xuICBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAyMHB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG59XG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC10b2dnbGUtc3ViIHtcbiAgZm9udC1zaXplOiAxMnB4OyBsaW5lLWhlaWdodDogMTZweDsgY29sb3I6IHZhcigtLWMtZ3JleS01MDApOyBmb250LXdlaWdodDogNDAwO1xufVxuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtdG9nZ2xlLXdhcm4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTJweDsgbGluZS1oZWlnaHQ6IDE2cHg7IGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7IG1hcmdpbi10b3A6IDJweDtcbn1cblxuLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtZGl2aWRlciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICBtYXJnaW46IDE2cHggMCAxMnB4O1xufVxuXG4vKiBJTk5FUiBXSElURSBDQVJEICovXG4ucWRuYXByby1tb2RhbCAubW9kYWwtd2luZG93IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyOiAwLjVweCBzb2xpZCB2YXIoLS1jLWdyZXktMzAwKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgcGFkZGluZzogMTZweCAxNnB4IDEycHg7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTBweDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbn1cblxuLyogRml4ZWQgaGVpZ2h0ICsgaW50ZXJuYWwgc2Nyb2xsIGZvciBiaWcgbW9kYWxzICovXG4ucWRuYXByby1tb2RhbC5tb2RhbC1sYXlvdXQtd2l0aC1pbmZvIC5tb2RhbC1kaWFsb2csXG4ucWRuYXByby1tb2RhbC5tb2RhbC1zaXplLWxhcmdlICAgICAgIC5tb2RhbC1kaWFsb2csXG4ucWRuYXByby1tb2RhbC5tb2RhbC1zaXplLXhsYXJnZSAgICAgIC5tb2RhbC1kaWFsb2csXG4ucWRuYXByby1tb2RhbC5tb2RhbC1zaXplLXh4bGFyZ2UgICAgIC5tb2RhbC1kaWFsb2cge1xuICBoZWlnaHQ6IG1pbig4MDBweCwgY2FsYygxMDB2aCAtIDQ4cHgpKTtcbn1cbi5xZG5hcHJvLW1vZGFsLm1vZGFsLWxheW91dC13aXRoLWluZm8gLm1vZGFsLXdpbmRvdyxcbi5xZG5hcHJvLW1vZGFsLm1vZGFsLXNpemUtbGFyZ2UgICAgICAgLm1vZGFsLXdpbmRvdyxcbi5xZG5hcHJvLW1vZGFsLm1vZGFsLXNpemUteGxhcmdlICAgICAgLm1vZGFsLXdpbmRvdyxcbi5xZG5hcHJvLW1vZGFsLm1vZGFsLXNpemUteHhsYXJnZSAgICAgLm1vZGFsLXdpbmRvdyB7IGhlaWdodDogMTAwJTsgfVxuLnFkbmFwcm8tbW9kYWwubW9kYWwtbGF5b3V0LXdpdGgtaW5mbyAubW9kYWwtaGVhZGVyLFxuLnFkbmFwcm8tbW9kYWwubW9kYWwtbGF5b3V0LXdpdGgtaW5mbyAubW9kYWwtZm9vdGVyLFxuLnFkbmFwcm8tbW9kYWwubW9kYWwtc2l6ZS1sYXJnZSAgICAgICAubW9kYWwtaGVhZGVyLFxuLnFkbmFwcm8tbW9kYWwubW9kYWwtc2l6ZS1sYXJnZSAgICAgICAubW9kYWwtZm9vdGVyLFxuLnFkbmFwcm8tbW9kYWwubW9kYWwtc2l6ZS14bGFyZ2UgICAgICAubW9kYWwtaGVhZGVyLFxuLnFkbmFwcm8tbW9kYWwubW9kYWwtc2l6ZS14bGFyZ2UgICAgICAubW9kYWwtZm9vdGVyLFxuLnFkbmFwcm8tbW9kYWwubW9kYWwtc2l6ZS14eGxhcmdlICAgICAubW9kYWwtaGVhZGVyLFxuLnFkbmFwcm8tbW9kYWwubW9kYWwtc2l6ZS14eGxhcmdlICAgICAubW9kYWwtZm9vdGVyIHsgZmxleC1zaHJpbms6IDA7IH1cbi5xZG5hcHJvLW1vZGFsLm1vZGFsLWxheW91dC13aXRoLWluZm8gLm1vZGFsLWJvZHksXG4ucWRuYXByby1tb2RhbC5tb2RhbC1zaXplLWxhcmdlICAgICAgIC5tb2RhbC1ib2R5LFxuLnFkbmFwcm8tbW9kYWwubW9kYWwtc2l6ZS14bGFyZ2UgICAgICAubW9kYWwtYm9keSxcbi5xZG5hcHJvLW1vZGFsLm1vZGFsLXNpemUteHhsYXJnZSAgICAgLm1vZGFsLWJvZHkge1xuICBmbGV4OiAxIDEgYXV0bzsgbWluLWhlaWdodDogMDsgb3ZlcmZsb3cteTogYXV0bztcbiAgLyogVGhlIHNjcm9sbCBjb250YWluZXIgY2xpcHMgZm9jdXMgcmluZ3MgKG92ZXJmbG93LXk6YXV0byBjb2VyY2VzIG92ZXJmbG93LXggdG9cbiAgICAgY2xpcCksIHNvIGEgZmllbGQgZmx1c2ggYWdhaW5zdCB0aGUgdG9wIGVkZ2UgbG9zZXMgaXRzIHJpbmcgXCJ1bmRlciB0aGUgaGVhZGVyXCIuXG4gICAgIDRweCBicmVhdGhpbmcgcm9vbSBjbGVhcnMgdGhlIDNweCBmb2N1cyBib3gtc2hhZG93IG9uIGFsbCBzaWRlczsgc2Nyb2xsLXBhZGRpbmdcbiAgICAga2VlcHMgYSB0YWJiZWQtdG8gZmllbGQgZnJvbSB0dWNraW5nIHVuZGVyIHRoZSB0b3AgZWRnZS4gW0tpbSAyMi4wNi4yMDI2XSAqL1xuICBwYWRkaW5nOiA0cHg7XG4gIHNjcm9sbC1wYWRkaW5nLXRvcDogOHB4O1xufVxuXG4vKiBTY3JvbGxhYmxlIG1vZGlmaWVyIOKAlCBhbnkgc2l6ZSBtb2RhbCB3aXRoIHRhbGwgY29udGVudC5cbiAgIE5PVEU6IHRoZSBjbGFzcyBpcyBgcWRuYXByby1tb2RhbC1zY3JvbGxhYmxlYCwgTk9UIGBtb2RhbC1zY3JvbGxhYmxlYC5cbiAgIHFkbmEtbW9kYWwuanMgY29ubmVjdGVkQ2FsbGJhY2sgc3RyaXBzIGV2ZXJ5IGNsYXNzIHN0YXJ0aW5nIHdpdGhcbiAgIGBtb2RhbC1gIGZyb20gX29yaWdpbmFsQ2xhc3Nlcywgc28gYSBgbW9kYWwtKmAgbW9kaWZpZXIgd291bGQgbm90XG4gICBzdXJ2aXZlIF9yZW5kZXIoKS4gVGhlIGBxZG5hcHJvLWAgcHJlZml4IHBhc3NlcyB0aGF0IGZpbHRlci4gKi9cbi5xZG5hcHJvLW1vZGFsLnFkbmFwcm8tbW9kYWwtc2Nyb2xsYWJsZSAubW9kYWwtZGlhbG9nICB7IG92ZXJmbG93OiBoaWRkZW47IH1cbi5xZG5hcHJvLW1vZGFsLnFkbmFwcm8tbW9kYWwtc2Nyb2xsYWJsZSAubW9kYWwtd2luZG93ICB7IG92ZXJmbG93OiBoaWRkZW47IH1cbi5xZG5hcHJvLW1vZGFsLnFkbmFwcm8tbW9kYWwtc2Nyb2xsYWJsZSAubW9kYWwtaGVhZGVyLFxuLnFkbmFwcm8tbW9kYWwucWRuYXByby1tb2RhbC1zY3JvbGxhYmxlIC5tb2RhbC1mb290ZXIgIHsgZmxleC1zaHJpbms6IDA7IH1cbi5xZG5hcHJvLW1vZGFsLnFkbmFwcm8tbW9kYWwtc2Nyb2xsYWJsZSAubW9kYWwtYm9keSAgICB7IGZsZXg6IDEgMSBhdXRvOyBtaW4taGVpZ2h0OiAwOyBvdmVyZmxvdy15OiBhdXRvOyB9XG4vKiBJbXBvcnQtb3B0aW9ucyBtb2RhbDogZml0IGNvbnRlbnQgaW5zdGVhZCBvZiB0aGUgZml4ZWQgODAwcHggdGhlIGxhcmdlL3dpdGgtaW5mb1xuICAgZnJhbWUgZm9yY2VzIChpdCB3YXMgYWJzdXJkbHkgdGFsbCBmb3IgYSBzaG9ydCBwYXN0ZSBib3ggLyB1cGxvYWQgY2FyZCkuIENhcHMgK1xuICAgc2Nyb2xscyBvbmx5IGlmIGNvbnRlbnQgZXZlciBleGNlZWRzIGl0LiBbS2ltIDIyLjA2LjIwMjZdICovXG4ucWRuYXByby1tb2RhbC5mZS1pbXBvcnQtbW9kYWwubW9kYWwtc2l6ZS1sYXJnZSAubW9kYWwtZGlhbG9nLFxuLnFkbmFwcm8tbW9kYWwuZmUtaW1wb3J0LW1vZGFsLm1vZGFsLWxheW91dC13aXRoLWluZm8gLm1vZGFsLWRpYWxvZyB7XG4gIGhlaWdodDogYXV0bztcbiAgbWF4LWhlaWdodDogbWluKDgwMHB4LCBjYWxjKDEwMHZoIC0gNDhweCkpO1xufVxuLnFkbmFwcm8tbW9kYWwuZmUtaW1wb3J0LW1vZGFsLm1vZGFsLXNpemUtbGFyZ2UgLm1vZGFsLXdpbmRvdyxcbi5xZG5hcHJvLW1vZGFsLmZlLWltcG9ydC1tb2RhbC5tb2RhbC1sYXlvdXQtd2l0aC1pbmZvIC5tb2RhbC13aW5kb3cge1xuICBoZWlnaHQ6IGF1dG87XG59XG4vKiBDZW50ZXIgdGhlIChwb3J0cmFpdCkgaWxsdXN0cmF0aW9uIGluIHRoZSBpbmZvIHBhbmVsIGluc3RlYWQgb2YgdGhlIGRlZmF1bHRcbiAgIGJvdHRvbS1MRUZUIGNvcm5lci1hbmNob3IuIFNjb3BlZCBzbyBjb3JuZXItYW5jaG9yZWQgaWxsdXN0cmF0aW9ucyBpbiBvdGhlclxuICAgbW9kYWxzIGtlZXAgdGhlaXIgbGF5b3V0LiBbS2ltIDIyLjA2LjIwMjZdICovXG4ucWRuYXByby1tb2RhbC5mZS1pbXBvcnQtbW9kYWwgLnFkbmFwcm8tbW9kYWwtaW5mby1pbGx1c3RyYXRpb24ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLyogRmxvd2VkaXRvciBjb25maXJtIGRpYWxvZyAocGx1Z2lucy9jb25maXJtL0JveC52dWUsIFBMQU4tYWxlcnQtY29tcG9uZW50Lm1kXG4gICBUUkFDSyAyLCBLaW0gMDkuMDcuMjAyNik6IG5lZWRzIHRvIHN0YWNrIGFib3ZlIEJPVEggdGhlIGZsb3dlZGl0b3IncyBvd25cbiAgIE5vZGVPcHRpb25zIHdpemFyZCBtb2RhbCAofjkwMDAtOTEwMCkgYW5kIGl0cyBkcm9wZG93bi9wb3BvdmVyIGxheWVyXG4gICAoLmZlLWFkZC1kYXRhcG9pbnQtZHJvcGRvd24gZXRjLiwgOTIwMCkg4oCUIDkzMDAgaXMgdGhlIGZsb3dlZGl0b3Inc1xuICAgZXN0YWJsaXNoZWQgXCJhbHdheXMgb24gdG9wXCIgdGllciAoc2VlIC5mZS1jb25uLXRpcCkuIFNjb3BlZCB0byB0aGlzIGNsYXNzXG4gICBvbmx5IHNvIGV2ZXJ5IG90aGVyIHFkbmFwcm8tbW9kYWwga2VlcHMgdGhlIGRlZmF1bHQgOTAwMC4gKi9cbi5xZG5hcHJvLW1vZGFsLmZlLWNvbmZpcm0tbW9kYWwge1xuICB6LWluZGV4OiA5MzAwO1xufVxuXG4vKiBcIlZyYWFnIHRvZXZvZWdlblwiIHR5cGUtcGlja2VyIChGb3JtQ2FyZFF1ZXN0aW9ucy52dWUsIFBMQU4tZm9ybS1jYXJkLVxuICAgcmVkZXNpZ24ubWQgZmFzZSA0IGRlbGl2ZXJ5IDQpOiBvcGVuZWQgRlJPTSBXSVRISU4gdGhlIHNhbWUgTm9kZU9wdGlvbnNcbiAgIHdpemFyZCBtb2RhbCAofjkwMDAtOTEwMCkgdGhpcyB0YWIgbGl2ZXMgaW4sIHNvIGl0IG5lZWRzIHRoZSBleGFjdCBzYW1lXG4gICBcImFsd2F5cyBvbiB0b3BcIiB0aWVyIGFzIC5mZS1jb25maXJtLW1vZGFsIGFib3ZlLCBmb3IgdGhlIGV4YWN0IHNhbWVcbiAgIHJlYXNvbi4gU2NvcGVkIHRvIHRoaXMgY2xhc3Mgb25seS4gKi9cbi5xZG5hcHJvLW1vZGFsLmZlLXR5cGVwaWNrZXItbW9kYWwge1xuICB6LWluZGV4OiA5MzAwO1xufVxuXG4vKiBCcmllZmluZyBiaWogZWVuIHZyYWFnIChWaWV3L3YxL21vZGFscy9icmllZmluZy1lZGl0b3IuaHRtbCwgZ2VkZWVsZCBtZXQgZGVcbiAgIGFjdGl2aXRlaXRlbnBhZ2luYSkuIE9wIGRlIGZsb3cgZWRpdG9yIGdhYXQgaGlqIG9wZW4gdmFudWl0IGhldCBOb2RlT3B0aW9ucy1cbiAgIHdpemFyZG1vZGFsICh+OTAwMC05MTAwKSBlbiBzb21zIHZhbmFmIGhldCBjYW52YXMgZXJvbmRlciwgZHVzIGRlemVsZmRlXG4gICBcImFsdGlqZCBib3Zlbm9wXCItbGFhZyBhbHMgZGUgdHdlZSBoaWVyYm92ZW4uIEFsbGVlbiBvcCBkZXplIGtsYXNzZSwgZGllIGRlXG4gICBmbG93IGVkaXRvciB2aWEgZGUgaW5jbHVkZSBtZWVnZWVmdDogb3AgZGUgYWN0aXZpdGVpdGVucGFnaW5hIHN0YWF0IGVyIG5pa3NcbiAgIGJvdmVuIGVuIGhvdWR0IGhldCBtb2RhbCBkZSBzdGFuZGFhcmQgOTAwMC4gW0tpbSAwMy4wOC4yMDI2XSAqL1xuLnFkbmFwcm8tbW9kYWwuZmUtYnJpZWZpbmctbW9kYWwge1xuICB6LWluZGV4OiA5MzAwO1xufVxuXG4vLyBTY3JvbGxiYXI6IHNob3cgb25seSB0aGUgZHJhZyB0aHVtYiwgbmV2ZXIgdGhlIGdyZXkgdHJhY2suIFdlYmtpdC1vbmx5XG4vLyAoQ2hyb21lL1NhZmFyaS9FZGdlKSBzbyB3ZSBjYW4gcGluIHRoZSB3aWR0aCArIGhpZGUgdGhlIHRyYWNrOyB3ZSBkZWxpYmVyYXRlbHlcbi8vIHNraXAgc2Nyb2xsYmFyLXdpZHRoL3Njcm9sbGJhci1jb2xvciAoQ2hyb21lIHdvdWxkIGhvbm91ciB0aG9zZSBhbmQgdGhlbiBpZ25vcmVcbi8vIHRoZSA6Oi13ZWJraXQgcHNldWRvLCBmb3JjaW5nIGl0cyBkZWZhdWx0IHRoaW4gZ3JleSBiYXIpLiBUaHVtYiBpcyBpbnZpc2libGUgYXRcbi8vIHJlc3QgYW5kIGZhZGVzIGluIG9uIGhvdmVyL3Njcm9sbC5cbi8vXG4vLyBJTVBPUlRBTlQ6IHRoaXMgdGFyZ2V0cyB0aGUgV0hPTEUgbW9kYWwgc3VidHJlZSAoZGVzY2VuZGFudCBjb21iaW5hdG9yKSwgbm90XG4vLyBqdXN0IC5tb2RhbC1ib2R5LiBNb2RhbHMgZ2V0IHBvcHVsYXRlZCBhZnRlciB0aGUgc2hlbGwgcmVuZGVycyBhbmQgdGhlIG5ld1xuLy8gY29udGVudCBvZnRlbiBicmluZ3MgaXRzIG93biBzY3JvbGwgY29udGFpbmVyIOKAlCB3aXRob3V0IHRoaXMsIHRob3NlIG5lc3RlZFxuLy8gc2Nyb2xsZXJzIGZhbGwgYmFjayB0byB0aGUgZ3JleS10cmFjayBkZWZhdWx0IGFuZCB0aGUgbW9kYWwgbG9va3MgbWVzc3kuIFRoZVxuLy8gc3VidHJlZSBydWxlIG1lYW5zIGEgY2xlYW4gc2Nyb2xsYmFyIGNhbid0IHNuZWFrIGJhY2sgaW4uIFtLaW0gMjAyNi0wNi0xNV1cbi8vIFRoaW5uZXIgKyBicmFuZC10aW50ZWQgKDIwMjYtMDctMDEsIEphbik6IDhweCBmbGF0LWdyZXkgcmVhZCBhcyBhIHNvbGlkLCBpbnRydXNpdmUgYmFyIG9uY2Vcbi8vIHZpc2libGUgKGhvdmVyL2ZvY3VzLXdpdGhpbikg4oCUIDZweCArIHRoZSBicmFuZCBwdXJwbGUgKC0tYy1wdXJwbGUtNTAwIHJnYikgYXQgbG93IGFscGhhIGlzXG4vLyBsaWdodGVyIGJvdGggaW4gd2lkdGggYW5kIGluIHZpc3VhbCB3ZWlnaHQsIG1hdGNoaW5nIHRoZSBcInN1YnRsZSB0aHVtYiwgdHJhbnNwYXJlbnQgdHJhY2tcIlxuLy8gaG91c2UgY29udmVudGlvbiAoc2VlIHRoZSBsYW5ndWFnZS1lZGl0b3Igc2Nyb2xsYmFyLCBmaXJzdCBhcHBsaWVkIHRoZXJlKS5cbi5xZG5hcHJvLW1vZGFsIDo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogNnB4OyBoZWlnaHQ6IDZweDsgfVxuLnFkbmFwcm8tbW9kYWwgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4ucWRuYXByby1tb2RhbCA6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4ucWRuYXByby1tb2RhbCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNjBtcyBlYXNlO1xufVxuLnFkbmFwcm8tbW9kYWwgKjpob3Zlcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4ucWRuYXByby1tb2RhbCAqOmZvY3VzLXdpdGhpbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgeyBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjIyKTsgfVxuLnFkbmFwcm8tbW9kYWwgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMzgpOyB9XG4vLyBGaXJlZm94IOKAlCBzYW1lIHRodW1iIHRpbnQsIHRyYW5zcGFyZW50IHRyYWNrLlxuLnFkbmFwcm8tbW9kYWwgeyBzY3JvbGxiYXItd2lkdGg6IHRoaW47IH1cbi5xZG5hcHJvLW1vZGFsICo6aG92ZXIsIC5xZG5hcHJvLW1vZGFsICo6Zm9jdXMtd2l0aGluIHsgc2Nyb2xsYmFyLWNvbG9yOiByZ2JhKDY0LCA3MywgMTU0LCAwLjMwKSB0cmFuc3BhcmVudDsgfVxuXG4ucWRuYXByby1tb2RhbCAubW9kYWwtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDE2cHg7IHBhZGRpbmc6IDAgMCAxMnB4O1xufVxuLnFkbmFwcm8tbW9kYWwgLm1vZGFsLXRpdGxlIHtcbiAgbWFyZ2luOiAwOyBmbGV4OiAxIDEgYXV0bztcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjRweDsgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1tb2RhbCAubW9kYWwtY2xvc2UgeyBmbGV4LXNocmluazogMDsgfVxuXG4ucWRuYXByby1tb2RhbCAubW9kYWwtYm9keSB7XG4gIHBhZGRpbmc6IDAgNHB4IDhweCA0cHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG59XG4ucWRuYXByby1tb2RhbCAubW9kYWwtYm9keSA+ICogKyAqIHsgbWFyZ2luLXRvcDogOHB4OyB9XG4ucWRuYXByby1tb2RhbCAucWRuYXByby1tb2RhbC1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrOyBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAyNHB4OyBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG59XG5cbi5xZG5hcHJvLW1vZGFsIC5tb2RhbC1mb290ZXIge1xuICBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGdhcDogMTZweDsgcGFkZGluZzogMDtcbn1cblxuLyogc2Vjb25kYXJ5LWxhYmVsIChlLmcuIFwiRGVsZXRlXCIpIHBpbnMgYSBidXR0b24gdG8gdGhlIGZvb3RlcidzIExFRlRcbiAgIGVkZ2Ug4oCUIEtpbSAxNy4wNy4yMDI2OiBkZXN0cnVjdGl2ZSBhY3Rpb25zIGluIHBsYW5uZXIgZGlhbG9ncyBiZWxvbmdcbiAgIGluIHRoZSBmb290ZXIsIG5vdCBmbG9hdGluZyBpbiB0aGUgYm9keS4gc3BhY2UtYmV0d2VlbiBwdXNoZXMgaXQgYXdheVxuICAgZnJvbSB0aGUgY2FuY2VsL2NvbmZpcm0gY2x1c3RlcjsgdGhlIGNsdXN0ZXIgaXRzZWxmIGtlZXBzIGl0cyBvd25cbiAgIGBnYXA6IDE2cHhgIHZpYSAubW9kYWwtZm9vdGVyLXJpZ2h0IHNvIGNhbmNlbC9jb25maXJtIHN0YXkgdG9nZXRoZXJcbiAgIHJlZ2FyZGxlc3Mgb2YgaG93IG11Y2ggcm9vbSBzcGFjZS1iZXR3ZWVuIG9wZW5zIHVwIG9uIGEgd2lkZSBtb2RhbC4gKi9cbi5xZG5hcHJvLW1vZGFsIC5tb2RhbC1mb290ZXIubW9kYWwtZm9vdGVyLWhhcy1zZWNvbmRhcnkge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4ucWRuYXByby1tb2RhbCAubW9kYWwtZm9vdGVyLXJpZ2h0IHtcbiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyBnYXA6IDE2cHg7XG59XG5cbi8qIERhcmsgdGhlbWUgKi9cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1tb2RhbCAubW9kYWwtYmFja2Ryb3AgeyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNjUpOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWRpYWxvZyB7XG4gIGJhY2tncm91bmQ6ICMyZTMwMzY7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDRweCA0cHggcmdiYSgwLDAsMCwwLjUwKSxcbiAgICAwIDhweCAxMnB4IDZweCByZ2JhKDAsMCwwLDAuMzApO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW1vZGFsIC5tb2RhbC13aW5kb3cge1xuICBiYWNrZ3JvdW5kOiAjMzYzOTQwO1xuICBib3JkZXItY29sb3I6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbW9kYWwgLm1vZGFsLXRpdGxlICAgICAgICAgICAgICB7IGNvbG9yOiAjZjBmMWYyOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWJvZHkgICAgICAgICAgICAgICB7IGNvbG9yOiAjZjBmMWYyOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtbGFiZWwgICAgICB7IGNvbG9yOiAjZjBmMWYyOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWluZm8gICAgICAgICAgICAgICB7IGNvbG9yOiAjZjBmMWYyOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWluZm8gcWRuYXByby1pY29uLFxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW1vZGFsIC5tb2RhbC1pbmZvID4gLm1vZGFsLWluZm8taWNvbiB7IGNvbG9yOiAjYTVhY2ZmOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtaW5mby10aXRsZSAgICB7IGNvbG9yOiAjYTVhY2ZmOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtc2VjdGlvbi10aXRsZSB7IGNvbG9yOiAjYTVhY2ZmOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtc2VjdGlvbi1zdWIgICB7IGNvbG9yOiAjYTVhY2ZmOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtZXJyb3ItYmFubmVyICB7IGNvbG9yOiAjZWY2YjZiOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtdG9nZ2xlLWxhYmVsICB7IGNvbG9yOiAjZjBmMWYyOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtdG9nZ2xlLXN1YiAgICB7IGNvbG9yOiAjYjhiY2M0OyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtdG9nZ2xlLXdhcm4gICB7IGNvbG9yOiAjZWY2YjZiOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbW9kYWwgLnFkbmFwcm8tbW9kYWwtZGl2aWRlciAgICAgICB7IGJvcmRlci10b3AtY29sb3I6ICM0MDQ0NGQ7IH1cblxuQGtleWZyYW1lcyBxZG5hcHJvLW1vZGFsLWJhY2tkcm9wLWluIHsgZnJvbSB7IG9wYWNpdHk6IDA7IH0gdG8geyBvcGFjaXR5OiAxOyB9IH1cbkBrZXlmcmFtZXMgcWRuYXByby1tb2RhbC1kaWFsb2ctaW4ge1xuICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCkgc2NhbGUoMC45OCk7IH1cbiAgdG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTsgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tbW9kYWwgLm1vZGFsLWJhY2tkcm9wLCAucWRuYXByby1tb2RhbCAubW9kYWwtZGlhbG9nIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9uYXYtaXRlbS9fbmF2LWl0ZW0tY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLyogPT09IEJFR0lOIFFETkEtTkFWLUlURU0gQ1NTID09PSAqL1xuLnFkbmFwcm8tbmF2LWl0ZW0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICAvLyBMZWZ0IGluc2V0IHR1bmVkIHNvIHRoZSBpY29uIGNlbnRyZSBsYW5kcyBvbiB0aGUgc2FtZSB2ZXJ0aWNhbCBsaW5lIGFzXG4gICAgLy8gdGhlIFEgbWFyayBpbiB0aGUgaGVhZGVyICh0aGUgYW5jaG9yKSDigJQgaWRlbnRpY2FsIGluIGJvdGggbW9kZXMuIChKYW4pXG4gICAgcGFkZGluZzogOHB4IDEycHggOHB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHZhcigtLWMtbmF2LWljb24pO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2Utb3V0LFxuICAgICAgICBjb2xvciAxMjBtcyBlYXNlLW91dCxcbiAgICAgICAgdHJhbnNmb3JtIDgwbXMgZWFzZS1vdXQsXG4gICAgICAgIHdpZHRoIDQ1MG1zIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKSxcbiAgICAgICAgcGFkZGluZyA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSksXG4gICAgICAgIGdhcCA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSk7XG59XG4ucWRuYXByby1uYXYtaXRlbSAqLFxuLnFkbmFwcm8tbmF2LWl0ZW0gKjo6YmVmb3JlLFxuLnFkbmFwcm8tbmF2LWl0ZW0gKjo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5xZG5hcHJvLW5hdi1pdGVtIC5uYXYtaXRlbS1pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAvLyBPbiB0b3Agb2YgdGhlIGxhYmVsIHNvIHRoZSBsYWJlbCBzbGlkZXMgbGVmdCBCRUhJTkQgdGhlIGljb24gb24gY29sbGFwc2UuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG59XG4ucWRuYXByby1uYXYtaXRlbSAubmF2LWl0ZW0taWNvbiBzdmcge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBmaWxsOiBub25lO1xuICAgIHN0cm9rZTogY3VycmVudENvbG9yO1xuICAgIHN0cm9rZS13aWR0aDogMS43NTtcbiAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gICAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDtcbn1cbi5xZG5hcHJvLW5hdi1pdGVtIC5uYXYtaXRlbS1sYWJlbCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLW5hdi1sYWJlbCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgY29sb3IgMTIwbXMgZWFzZS1vdXQsXG4gICAgICAgIGZvbnQtd2VpZ2h0IDEyMG1zIGVhc2Utb3V0LFxuICAgICAgICBvcGFjaXR5IDI4MG1zIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKSxcbiAgICAgICAgbWF4LXdpZHRoIDQ1MG1zIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKSxcbiAgICAgICAgdHJhbnNmb3JtIDI4MG1zIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKTtcbn1cbi5xZG5hcHJvLW5hdi1pdGVtIC5uYXYtaXRlbS1iYWRnZSB7XG4gICAgLy8gQWJzb2x1dGVseSBwb3NpdGlvbmVkIGluIEJPVEggbW9kZXMgKHJlbGF0aXZlIHRvIHRoZSBpdGVtKSBzbyBpdCBjYW4gYmVcbiAgICAvLyBBTklNQVRFRCByYXRoZXIgdGhhbiByZS1sYWlkLW91dC4gRXhwYW5kZWQ6IHBpbm5lZCB0byB0aGUgcm93J3MgcmlnaHQsXG4gICAgLy8gdmVydGljYWxseSBjZW50cmVkLiBBcyB0aGUgcmFpbCBjb2xsYXBzZXMgKGl0ZW0gd2lkdGggMTg04oaSNDApIHJpZ2h0Ok5weFxuICAgIC8vIHRyYWNrcyB0aGUgc2hyaW5raW5nIHJpZ2h0IGVkZ2Ug4oaSIHRoZSBiYWRnZSByaWRlcyBsZWZ0IGFuZCBsYW5kcyBvbiB0aGVcbiAgICAvLyBpY29uJ3MgdG9wLXJpZ2h0IG92ZXJsYXkuIChKYW4pXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vIEFib3ZlIHRoZSBpY29uICh6LWluZGV4OjEpIHNvIGluIGNvbGxhcHNlZCBtb2RlIHRoZSBiYWRnZSBzaXRzIE9OIHRoZVxuICAgIC8vIGljb24ncyB0b3AtcmlnaHQgY29ybmVyLCBub3QgYmVoaW5kIGl0LlxuICAgIHotaW5kZXg6IDI7XG4gICAgcmlnaHQ6IDEycHg7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIG1pbi13aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOXB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtbmF2LWJhZGdlLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tYy1uYXYtYmFkZ2UtdGV4dCk7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgcmlnaHQgNDUwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpLFxuICAgICAgICB0b3AgNDUwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpLFxuICAgICAgICB0cmFuc2Zvcm0gNDUwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpO1xufVxuLnFkbmFwcm8tbmF2LWl0ZW0gLm5hdi1pdGVtLWJhZGdlLS1kb3Qge1xuICAgIG1pbi13aWR0aDogOHB4O1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi5xZG5hcHJvLW5hdi1pdGVtOmhvdmVyOm5vdCgubmF2LWl0ZW0tZGlzYWJsZWQpOm5vdCgubmF2LWl0ZW0tYWN0aXZlKSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1uYXYtaG92ZXItYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1jLW5hdi1pY29uLWhvdmVyKTtcbn1cbi5xZG5hcHJvLW5hdi1pdGVtOmhvdmVyOm5vdCgubmF2LWl0ZW0tZGlzYWJsZWQpOm5vdCgubmF2LWl0ZW0tYWN0aXZlKSAubmF2LWl0ZW0tbGFiZWwge1xuICAgIGNvbG9yOiB2YXIoLS1jLW5hdi1sYWJlbC1ob3Zlcik7XG59XG4ucWRuYXByby1uYXYtaXRlbS5uYXYtaXRlbS1hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtbmF2LWFjdGl2ZS1iZyk7XG4gICAgY29sb3I6IHZhcigtLWMtbmF2LWljb24tYWN0aXZlKTtcbn1cbi5xZG5hcHJvLW5hdi1pdGVtLm5hdi1pdGVtLWFjdGl2ZSAubmF2LWl0ZW0tbGFiZWwge1xuICAgIGNvbG9yOiB2YXIoLS1jLW5hdi1sYWJlbC1hY3RpdmUpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ucWRuYXByby1uYXYtaXRlbS5uYXYtaXRlbS1hY3RpdmU6aG92ZXI6bm90KC5uYXYtaXRlbS1kaXNhYmxlZCk6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNik7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1uYXYtaXRlbTphY3RpdmU6bm90KC5uYXYtaXRlbS1kaXNhYmxlZCkge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Nyk7XG59XG4ucWRuYXByby1uYXYtaXRlbTpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cbi5xZG5hcHJvLW5hdi1pdGVtOmZvY3VzLXZpc2libGUsXG4ucWRuYXByby1uYXYtaXRlbS5mb3JjZS1mb2N1cyB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4IHZhcigtLWZvY3VzLXJpbmcpO1xufVxuLnFkbmFwcm8tbmF2LWl0ZW0ubmF2LWl0ZW0tZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ucWRuYXByby1uYXYtaXRlbVtkYXRhLW5hdi1tb2RlPVwiY29sbGFwc2VkXCJdIHtcbiAgICBnYXA6IDA7XG4gICAgLy8gU0FNRSBsZWZ0IHBhZGRpbmcgKyBsZWZ0LWFsaWdubWVudCBhcyBleHBhbmRlZCBzbyB0aGUgaWNvbiBzaXRzIGF0IHRoZVxuICAgIC8vIGV4YWN0IHNhbWUgeCBpbiBib3RoIG1vZGVzIEFORCBzdGF5cyBwdXQgd2hpbGUgdGhlIHdpZHRoIGFuaW1hdGVzLiBVc2luZ1xuICAgIC8vIGp1c3RpZnktY29udGVudDpjZW50ZXIgaGVyZSAoY2VudHJpbmcgdGhlIGljb24gaW4gdGhlIDQwcHggYm94KSBtYWRlIHRoZVxuICAgIC8vIGljb24ganVtcC9kcmlmdCBkdXJpbmcgdGhlIHRyYW5zaXRpb24gYmVjYXVzZSBqdXN0aWZ5LWNvbnRlbnQgY2FuJ3RcbiAgICAvLyBhbmltYXRlIOKAlCBsZWZ0LWFuY2hvcmluZyBrZWVwcyBpdCBwZXJmZWN0bHkgc3RpbGwuIChKYW46IGljb25zIG11c3Qgbm90IG1vdmUuKVxuICAgIHBhZGRpbmc6IDhweDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cbi5xZG5hcHJvLW5hdi1pdGVtW2RhdGEtbmF2LW1vZGU9XCJjb2xsYXBzZWRcIl0gLm5hdi1pdGVtLWxhYmVsIHtcbiAgICAvLyBTbGlkZSBzdHJhaWdodCBMRUZUIOKAlCBiYWNrIGJlaGluZCB0aGUgaWNvbiDigJQgd2hpbGUgZmFkaW5nIG91dCAoTk9UXG4gICAgLy8gZG93bndhcmQpLiBtYXgtd2lkdGg6MCBjb2xsYXBzZXMgaXRzIGZsb3ctc3BhY2Ugc28gdGhlIHJvdyBzaHJpbmtzIHRvIGFcbiAgICAvLyA0MHB4IGljb24gYnV0dG9uLiBUaGUgaWNvbiBzaXRzIG9uIHRvcCAoei1pbmRleCBiZWxvdykgc28gdGhlIGxhYmVsXG4gICAgLy8gdHVja3MgYmVoaW5kIGl0LiBFeHBhbmQgcmV2ZXJzZXMgaXQuIChKYW4pXG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE2cHgpO1xuICAgIG1heC13aWR0aDogMDtcbn1cbi5xZG5hcHJvLW5hdi1pdGVtW2RhdGEtbmF2LW1vZGU9XCJjb2xsYXBzZWRcIl0gLm5hdi1pdGVtLWJhZGdlIHtcbiAgICAvLyBTYW1lIGVsZW1lbnQsIGFuaW1hdGVkIHRvIHRoZSBpY29uJ3MgdG9wLXJpZ2h0IGNvcm5lci4gU2xpZ2h0bHkgc2NhbGVkIGRvd24uXG4gICAgdG9wOiAzcHg7XG4gICAgcmlnaHQ6IDRweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMC44NSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIHJpZ2h0O1xufVxuLyogPT09IEVORCBRRE5BLU5BVi1JVEVNIENTUyA9PT0gKi9cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL25hdi1yYWlsL19uYXYtcmFpbC1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4vKiA9PT0gQkVHSU4gUUROQS1OQVYtUkFJTCBDU1MgPT09ICovXG4ucWRuYXByby1uYXYtcmFpbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1uYXYtYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1jLW5hdi1pY29uKTtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDQ1MG1zIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKTtcbn1cbi5xZG5hcHJvLW5hdi1yYWlsICosXG4ucWRuYXByby1uYXYtcmFpbCAqOjpiZWZvcmUsXG4ucWRuYXByby1uYXYtcmFpbCAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLy8gRXhwYW5kZWQgd2lkdGggdGlnaHRlbmVkIDI0MHB4IOKGkiAyMDhweCAoS2ltIDIwMjYtMDYtMDcpLiBJbmR1c3RyeSBzd2VldFxuLy8gc3BvdCBmb3IgY29tcGFjdCByYWlscyAoTGluZWFyIH4yMDAsIFNsYWNrIH4yMjApLiBMb25nIGxhYmVscyBsaWtlXG4vLyBcIk1hc3RlciBkYXRhXCIgc3RpbGwgZml0IGNvbWZvcnRhYmx5IHdpdGggcm9vbSBmb3IgdGhlIGFsZXJ0IGJhZGdlLlxuLy8gRXhwYW5kZWQgMjA4cHguIENvbGxhcHNlZCBpcyBhIHRvdWNoIHdpZGVyIHRoYW4gYSBiYXJlIGljb24gcmFpbCAod2FzIDY0cHgpXG4vLyBzbyB0aGUgY2hldnJvbiBoYXMgcm9vbSB0byBzaXQgQkVTSURFIHRoZSBRIGFmdGVyIGl0IGFuaW1hdGVzIGxlZnQuIChKYW4pXG4ucWRuYXByby1uYXYtcmFpbFtkYXRhLW1vZGU9XCJleHBhbmRlZFwiXSAgeyB3aWR0aDogMjA4cHg7IH1cbi5xZG5hcHJvLW5hdi1yYWlsW2RhdGEtbW9kZT1cImNvbGxhcHNlZFwiXSB7IHdpZHRoOiA4NHB4OyB9XG5cbi5xZG5hcHJvLW5hdi1yYWlsIC5uYXYtcmFpbC1oZWFkZXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGhlaWdodDogNTZweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgLy8gTGVmdCBwYWRkaW5nIGlzIElERU5USUNBTCBpbiBib3RoIG1vZGVzIHNvIHRoZSBRIG5ldmVyIHNoaWZ0cyBvbiB0aGVcbiAgICAvLyBob3Jpem9udGFsIGF4aXMg4oCUIGl0J3MgdGhlIGFuY2hvciB0aGF0IGFsbCBuYXYgaWNvbnMgbGluZSB1cCB1bmRlci5cbiAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnFkbmFwcm8tbmF2LXJhaWxbZGF0YS1tb2RlPVwiY29sbGFwc2VkXCJdIC5uYXYtcmFpbC1oZWFkZXIge1xuICAgIHBhZGRpbmc6IDAgNnB4IDAgMTZweDtcbn1cbi8qIFNwbGl0IGxvZ28gKEphbiAyMDI2LTA2LTE3KTogUSA9IGFuY2hvciAobmV2ZXIgbW92ZXMvcmUtcmVuZGVycyk7IEROQSA9IHRoZVxuICAgbGV0dGVycywgd2hpY2ggc2xpZGUgZG93biArIGZhZGUgb24gY29sbGFwc2UgYW5kIHJldmVyc2Ugb24gZXhwYW5kLlxuICAgQm90aCAubmF2LXJhaWwtbG9nby1xIGFuZCAubmF2LXJhaWwtbG9nby1kbmEgYXJlIGlubGluZSBTVkdzIHRoYXQgc2hhcmUgdGhlXG4gICBPUklHSU5BTCB3b3JkbWFyayB2aWV3Qm94ICgxODAgMTgwIDk4MCA0MjApIGFuZCBhcmUgb3ZlcmxhaWQgYXQgdGhlIHNhbWUgc2l6ZVxuICAgKDcww5czMCA9IDMwwrc5ODAvNDIwKSwgc28gdGhlIFEgYW5kIEROQSBzaXQgaW4gdGhlIGV4YWN0IHJlbGF0aXZlIHBvc2l0aW9uICtcbiAgIHNjYWxlIG9mIHRoZSByZWFsIGNvbWJpbmVkIGxvZ28g4oCUIG5vIGd1ZXNzZWQgb2Zmc2V0cy4gVGhlIGNvbnRhaW5lciBjbGlwcyB0b1xuICAgdGhlIFEncyB3aWR0aCB3aGVuIGNvbGxhcHNlZDsgdGhlIEROQSBncm91cCBhZGRpdGlvbmFsbHkgZmFkZXMgKyBkcm9wcy4gKi9cbi5xZG5hcHJvLW5hdi1yYWlsIC5uYXYtcmFpbC1sb2dvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgLy8gTWF0Y2ggdGhlIG5hdiBJQ09OIGNvbG91ciAobm90IHRoZSBhY3RpdmUvd2hpdGUpIOKAlCB0aGUgU1ZHcyB1c2VcbiAgICAvLyBmaWxsOiBjdXJyZW50Q29sb3IsIHNvIHRoZSBRICsgRE5BIGluaGVyaXQgdGhpcy4gKEphbjogbG9nbyBzaG91bGQgYmVcbiAgICAvLyB0aGUgc2FtZSBjb2xvdXIgYXMgdGhlIGljb25zLCBhcyBpdCBvcmlnaW5hbGx5IHdhcy4pXG4gICAgY29sb3I6IHZhcigtLWMtbmF2LWljb24pO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSk7XG59XG4ucWRuYXByby1uYXYtcmFpbCAubmF2LXJhaWwtbG9nby1xLFxuLnFkbmFwcm8tbmF2LXJhaWwgLm5hdi1yYWlsLWxvZ28tZG5hIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDcwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tbmF2LXJhaWwgLm5hdi1yYWlsLWxvZ28tcSBzdmcsXG4ucWRuYXByby1uYXYtcmFpbCAubmF2LXJhaWwtbG9nby1kbmEgc3ZnIHsgd2lkdGg6IDcwcHg7IGhlaWdodDogMzBweDsgZmlsbDogY3VycmVudENvbG9yOyBkaXNwbGF5OiBibG9jazsgfVxuLy8gUSBzaXRzIG9uIHRvcCBvZiB0aGUgRE5BIGxheWVyIHNvIHRoZSBETkEgc2xpZGVzIGxlZnQgQkVISU5EIHRoZSBRIG9uIGNvbGxhcHNlLlxuLnFkbmFwcm8tbmF2LXJhaWwgLm5hdi1yYWlsLWxvZ28tcSB7IHotaW5kZXg6IDE7IH1cblxuLnFkbmFwcm8tbmF2LXJhaWwgLm5hdi1yYWlsLWxvZ28tZG5hIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBvcGFjaXR5IDI4MG1zIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKSxcbiAgICAgICAgdHJhbnNmb3JtIDQ1MG1zIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKTtcbn1cbi5xZG5hcHJvLW5hdi1yYWlsW2RhdGEtbW9kZT1cImV4cGFuZGVkXCJdICAubmF2LXJhaWwtbG9nbyB7IHdpZHRoOiA3MHB4OyB9ICAgLy8gZnVsbCB3b3JkbWFyayAoUSArIEROQSlcbi5xZG5hcHJvLW5hdi1yYWlsW2RhdGEtbW9kZT1cImNvbGxhcHNlZFwiXSAubmF2LXJhaWwtbG9nbyB7IHdpZHRoOiAzNHB4OyB9ICAgLy8gY2xpcHBlZCB0byB0aGUgUVxuLnFkbmFwcm8tbmF2LXJhaWxbZGF0YS1tb2RlPVwiY29sbGFwc2VkXCJdIC5uYXYtcmFpbC1sb2dvLWRuYSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpOyAgIC8vIHNsaWRlIHN0cmFpZ2h0IExFRlQsIGJlaGluZCB0aGUgUSwgd2hpbGUgZmFkaW5nXG59XG5cbi5xZG5hcHJvLW5hdi1yYWlsIC5uYXYtcmFpbC10b2dnbGUge1xuICAgIC8vIG1hcmdpbi1sZWZ0OmF1dG8ga2VlcHMgdGhlIGNoZXZyb24gcGlubmVkIHRvIHRoZSBoZWFkZXIncyByaWdodCBlZGdlIGluXG4gICAgLy8gQk9USCBtb2Rlcy4gQXMgdGhlIHJhaWwgd2lkdGggdHJhbnNpdGlvbnMgMjA44oaSODAsIHRoYXQgcmlnaHQgZWRnZSBnbGlkZXNcbiAgICAvLyBsZWZ0IHVudGlsIHRoZSBjaGV2cm9uIHNpdHMgcmlnaHQgbmV4dCB0byB0aGUgUSDigJQgbm8gYWJzb2x1dGUganVtcC5cbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHZhcigtLWMtbmF2LWljb24pO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dCwgY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1uYXYtcmFpbCAubmF2LXJhaWwtdG9nZ2xlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLW5hdi1ob3Zlci1iZyk7XG4gICAgY29sb3I6IHZhcigtLWMtbmF2LWljb24taG92ZXIpO1xufVxuLnFkbmFwcm8tbmF2LXJhaWwgLm5hdi1yYWlsLXRvZ2dsZTpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cbi5xZG5hcHJvLW5hdi1yYWlsIC5uYXYtcmFpbC10b2dnbGU6Zm9jdXMtdmlzaWJsZSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLXJpbmcpLCAwIDAgMCA1cHggdmFyKC0tZm9jdXMtZ2xvdyk7XG59XG4ucWRuYXByby1uYXYtcmFpbCAubmF2LXJhaWwtdG9nZ2xlIHN2ZyB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGZpbGw6IG5vbmU7XG4gICAgc3Ryb2tlOiBjdXJyZW50Q29sb3I7XG4gICAgc3Ryb2tlLXdpZHRoOiAyO1xuICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDtcbiAgICBzdHJva2UtbGluZWpvaW46IHJvdW5kO1xuICAgIC8vIE9uZSBjaGV2cm9uIGdseXBoIHRoYXQgUk9UQVRFUyAobm8gcGF0aCBzd2FwKTogXCI8XCIgaW4gZXhwYW5kZWQsIFwiPlwiXG4gICAgLy8gd2hlbiBjb2xsYXBzZWQuIERlbGliZXJhdGVseSBhIHRvdWNoIExPTkdFUiB0aGFuIHRoZSAzMjBtcyB3aWR0aFxuICAgIC8vIGNvbGxhcHNlIHNvIHRoZSBoYWxmLXR1cm4gbGluZ2VycyArIGNsZWFybHkgc2V0dGxlcyBpbnRvIGl0cyBuZXdcbiAgICAvLyBvcmllbnRhdGlvbiDigJQgYXQgMzIwbXMgKGluIHN5bmMgd2l0aCBldmVyeXRoaW5nIGVsc2UpIHRoZSBxdWljayAxODDCsFxuICAgIC8vIHJlYWRzIGFzIGEgZmxpcC9zbmFwIHJhdGhlciB0aGFuIGEgdmlzaWJsZSByb3RhdGlvbi4gKEphbilcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNjIwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpO1xufVxuLnFkbmFwcm8tbmF2LXJhaWxbZGF0YS1tb2RlPVwiY29sbGFwc2VkXCJdIC5uYXYtcmFpbC10b2dnbGUgc3ZnIHsgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuLnFkbmFwcm8tbmF2LXJhaWwgLm5hdi1yYWlsLWhlYWRlci1kaXZpZGVyIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLW5hdi1kaXZpZGVyKTtcbiAgICBtYXJnaW46IDAgMTZweDtcbn1cbi5xZG5hcHJvLW5hdi1yYWlsW2RhdGEtbW9kZT1cImNvbGxhcHNlZFwiXSAubmF2LXJhaWwtaGVhZGVyLWRpdmlkZXIgeyBtYXJnaW46IDAgMTJweDsgfVxuXG4ucWRuYXByby1uYXYtcmFpbCAubmF2LXJhaWwtaXRlbXMge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgcGFkZGluZzogMTJweCAxMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbn1cbi5xZG5hcHJvLW5hdi1yYWlsW2RhdGEtbW9kZT1cImNvbGxhcHNlZFwiXSAubmF2LXJhaWwtaXRlbXMge1xuICAgIHBhZGRpbmc6IDEycHggMTJweDtcbiAgICAvLyBMZWZ0LWFuY2hvcmVkIChub3QgY2VudGVyZWQpIHNvIGVhY2ggaWNvbiBzdGF5cyBvbiB0aGUgc2FtZSB2ZXJ0aWNhbFxuICAgIC8vIGxpbmUgYXMgdGhlIFEg4oCUIHRoZSBpY29ucyBkb24ndCBzaGlmdCBzaWRld2F5cyB3aGVuIGNvbGxhcHNpbmcuIChKYW4pXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5xZG5hcHJvLW5hdi1yYWlsIC5uYXYtcmFpbC1ib3R0b20ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHBhZGRpbmc6IDhweCAxMnB4IDE2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLW5hdi1kaXZpZGVyKTtcbn1cbi5xZG5hcHJvLW5hdi1yYWlsW2RhdGEtbW9kZT1cImNvbGxhcHNlZFwiXSAubmF2LXJhaWwtYm90dG9tIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLyogVGhlIHZlcnNpb24gKyBidWlsZCBmb290ZXIgKC5uYXYtcmFpbC12ZXJzaW9uLCBhIHNsb3Q9XCJib3R0b21cIiBidXR0b24gdGhhdFxuICAgb3BlbmVkIHRoZSBBYm91dCBRRE5BIFBybyBzcGxhc2gpIGlzIFJFTU9WRUQgcGVyIDIwMjYtMDctMzE6IHRoYXQgZW50cnkgbm93XG4gICBsaXZlcyBpbiB0aGUgcHJvZmlsZSBkcm9wZG93biBhcyBcIk92ZXIgUUROQSBQcm9cIiAoVmlldy92MS9iYXNlLmh0bWwpLiBUaGVcbiAgIC5uYXYtcmFpbC1ib3R0b20gcnVsZXMgYWJvdmUgc3RheSDigJQgdGhleSBhcmUgZ2VuZXJpYyBmb3IgYW55IHNsb3Q9XCJib3R0b21cIlxuICAgY2hpbGQsIG5vdCB0aWVkIHRvIHRoZSB2ZXJzaW9uIGJsb2NrLiAqL1xuXG4vKiBEZWZhdWx0IHN1cmZhY2UgdG9rZW5zIChuYXZ5IHBhbGV0dGUpICovXG4ucWRuYXByby1uYXYtcmFpbCB7XG4gICAgLS1jLW5hdi1iZzogICAgICAgICAgIHZhcigtLWMtc2lkZWJhci1iZyk7XG4gICAgLS1jLW5hdi1kaXZpZGVyOiAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCk7XG4gICAgLS1jLW5hdi1ob3Zlci1iZzogICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gICAgLS1jLW5hdi1hY3RpdmUtYmc6ICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG4gICAgLS1jLW5hdi1pY29uOiAgICAgICAgIHZhcigtLWMtc2lkZWJhci1pY29uKTtcbiAgICAtLWMtbmF2LWljb24taG92ZXI6ICAgI2ZmZmZmZjtcbiAgICAtLWMtbmF2LWljb24tYWN0aXZlOiAgI2ZmZmZmZjtcbiAgICAtLWMtbmF2LWxhYmVsOiAgICAgICAgdmFyKC0tYy1zaWRlYmFyLWljb24pO1xuICAgIC0tYy1uYXYtbGFiZWwtaG92ZXI6ICAjZmZmZmZmO1xuICAgIC0tYy1uYXYtbGFiZWwtYWN0aXZlOiAjZmZmZmZmO1xuICAgIC0tYy1uYXYtYmFkZ2UtYmc6ICAgICB2YXIoLS1jLXdhcm4tcmVkLTUwMCk7XG4gICAgLS1jLW5hdi1iYWRnZS10ZXh0OiAgICNmZmZmZmY7XG59XG5cbi8qIFBhZ2UtbGV2ZWwgZGFyayBtb2RlOiByYWlsIGJlY29tZXMgR3JleS84MDAuXG4gICBBY3RpdmUgc3RhdGUgbWlycm9ycyBhY3Rpdml0eSByb3ctYnRuIGFjdGl2ZSAoc2F0dXJhdGVkIGJyYW5kLXB1cnBsZVxuICAgdGludCB3aXRoIGxpZ2h0LXB1cnBsZSBpY29uL2xhYmVsKSBmb3IgdmlzdWFsIGNvbnRpbnVpdHkuXG4gICBbS2ltIDIwMjYtMDUtMTldICovXG5bZGF0YS10aGVtZS1kYXJrXSAucWRuYXByby1uYXYtcmFpbCxcbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1uYXYtcmFpbCxcbmJvZHlbZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbmF2LXJhaWwge1xuICAgIC0tYy1uYXYtYmc6ICAgICAgICAgICB2YXIoLS1jLWdyZXktODAwKTtcbiAgICAtLWMtbmF2LWRpdmlkZXI6ICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICAtLWMtbmF2LWhvdmVyLWJnOiAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbiAgICAtLWMtbmF2LWFjdGl2ZS1iZzogICAgcmdiYSg3MCwgODIsIDI0MywgMC4yMCk7XG4gICAgLS1jLW5hdi1pY29uOiAgICAgICAgIHZhcigtLWMtZ3JleS0zMDApO1xuICAgIC0tYy1uYXYtaWNvbi1ob3ZlcjogICAjZmZmZmZmO1xuICAgIC0tYy1uYXYtaWNvbi1hY3RpdmU6ICAjYTVhY2ZmO1xuICAgIC0tYy1uYXYtbGFiZWw6ICAgICAgICB2YXIoLS1jLWdyZXktMzAwKTtcbiAgICAtLWMtbmF2LWxhYmVsLWhvdmVyOiAgI2ZmZmZmZjtcbiAgICAtLWMtbmF2LWxhYmVsLWFjdGl2ZTogI2E1YWNmZjtcbn1cblxuLyogRm9yY2VkIGxpZ2h0IHRoZW1lIHZpYSBhdHRyaWJ1dGUgb24gdGhlIHJhaWwgaXRzZWxmLiAqL1xuLnFkbmFwcm8tbmF2LXJhaWxbZGF0YS10aGVtZT1cImxpZ2h0XCJdIHtcbiAgICAtLWMtbmF2LWJnOiAgICAgICAgICAgI2ZmZmZmZjtcbiAgICAtLWMtbmF2LWRpdmlkZXI6ICAgICAgcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgICAtLWMtbmF2LWhvdmVyLWJnOiAgICAgdmFyKC0tYy1wdXJwbGUtNTApO1xuICAgIC0tYy1uYXYtYWN0aXZlLWJnOiAgICB2YXIoLS1jLWJnLXNlY29uZGFyeS1wdXJwbGUpO1xuICAgIC0tYy1uYXYtaWNvbjogICAgICAgICB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIC0tYy1uYXYtaWNvbi1ob3ZlcjogICB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgLS1jLW5hdi1pY29uLWFjdGl2ZTogIHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICAtLWMtbmF2LWxhYmVsOiAgICAgICAgdmFyKC0tYy10ZXh0LWJvZHkpO1xuICAgIC0tYy1uYXYtbGFiZWwtaG92ZXI6ICB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgLS1jLW5hdi1sYWJlbC1hY3RpdmU6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbn1cbi8qID09PSBFTkQgUUROQS1OQVYtUkFJTCBDU1MgPT09ICovXG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBxZG5hcHJvLW5vZGUtcGlja2VyXG4vLyAgRnVsbC1oZWlnaHQgZmxvdy1lZGl0b3Igbm9kZSBwaWNrZXI6IGEgcHVycGxlIChRRE5BIG5hdnkpIHJhaWxcbi8vICB3aXRoIGNhdGVnb3J5IGJ1dHRvbnMgKyBhIGxpZ2h0IHBhbmVsIHRoYXQgc2xpZGVzIG9wZW4gdG8gdGhlXG4vLyAgcmlnaHQgaG9sZGluZyB0aGUgZHJhZ2dhYmxlIG5vZGUgdHlwZXMgdW5kZXIgc3ViLWhlYWRlcnMuXG4vLyAgTGlnaHQgRE9NIFBhdHRlcm4gQiDigJQgdGhlIGhvc3QgaXRzZWxmIGlzIC5xZG5hcHJvLW5vZGUtcGlja2VyLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEJvcmRlci1iZWFtIGFuZ2xlIGN1c3RvbSBwcm9wZXJ0eSAobXVzdCBiZSBhIHRvcC1sZXZlbCBAcHJvcGVydHksIG5vdFxuLy8gbmVzdGFibGUgdW5kZXIgYSBzZWxlY3Rvcikg4oCUIHJlZ2lzdGVyaW5nIGl0IGFzIGFuIDxhbmdsZT4gaXMgd2hhdCBsZXRzIHRoZVxuLy8gYnJvd3NlciBpbnRlcnBvbGF0ZSBpdCBzbW9vdGhseSBmcmFtZS1ieS1mcmFtZSBpbnN0ZWFkIG9mIHNuYXBwaW5nLCB3aGljaFxuLy8gaXMgd2hhdCBtYWtlcyB0aGUgY29uaWMtZ3JhZGllbnQgYmVsb3cgYWN0dWFsbHkgcm90YXRlIGluc3RlYWQgb2YganVtcGluZy5cbi8vIFVzZWQgYnkgLnFkbmFwcm8tbm9kZS1waWNrZXJfX2Zvcm0tY2FyZDo6YWZ0ZXIgZnVydGhlciBkb3duLlxuQHByb3BlcnR5IC0tcW5wLWJlYW0tYW5nbGUge1xuICAgIHN5bnRheDogXCI8YW5nbGU+XCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6IDBkZWc7XG59XG5cbi5xZG5hcHJvLW5vZGUtcGlja2VyIHtcbiAgICAvLyBQYWxldHRlIG1pcnJvcnMgcWRuYXByby1uYXYtcmFpbCAoUUROQSBuYXZ5IHJhaWwpLlxuICAgIC0tbnAtcmFpbC1iZzogICAgICAgICAgdmFyKC0tYy1zaWRlYmFyLWJnKTtcbiAgICAtLW5wLXJhaWwtaWNvbjogICAgICAgIHZhcigtLWMtc2lkZWJhci1pY29uKTsgICAvLyBtdXRlZCBsaWxhY1xuICAgIC0tbnAtcmFpbC1pY29uLWhvdmVyOiAgI2ZmZmZmZjtcbiAgICAtLW5wLXJhaWwtYWN0aXZlLWJnOiAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG4gICAgLS1ucC1yYWlsLWhvdmVyLWJnOiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICAgIC0tbnAtcmFpbC1sYWJlbDogICAgICAgdmFyKC0tYy1zaWRlYmFyLWljb24pO1xuICAgIC0tbnAtcmFpbC1sYWJlbC1ob3ZlcjogI2ZmZmZmZjtcblxuICAgIC0tbnAtcGFuZWwtYmc6ICAgICAgI2ZmZmZmZjtcbiAgICAtLW5wLXBhbmVsLWJvcmRlcjogIHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG4gICAgLS1ucC1wYW5lbC1zaGFkb3c6ICAwIDE4cHggNDBweCByZ2JhKDM4LCA0MiwgOTIsIDAuMTYpO1xuICAgIC0tbnAtc3ViaGVhZDogICAgICAgdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKTtcbiAgICAtLW5wLW5vZGUtdGV4dDogICAgIHZhcigtLWMtc2lkZWJhci1iZyk7XG4gICAgLS1ucC1ub2RlLWhvdmVyLWJnOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgIC0tbnAtbm9kZS1pY29uOiAgICAgdmFyKC0tYy1wdXJwbGUtNDAwKTtcblxuICAgIC0tbnAtcmFpbC13OiAgNTZweDsgICAvLyByYWlsIGlzIGFsd2F5cyBzbWFsbCAoaWNvbi1vbmx5KTsgd2FzIDY4cHgsIEtpbSAxNi4wNy4yMDI2OiBcInNtYWxsZXJcIlxuICAgIC0tbnAtcGFuZWwtdzogMjA4cHg7ICAvLyBjb21wYWN0ICh3YXMgMjU2cHgsIEtpbSAxNi4wNy4yMDI2OiBcInZlZWwgdGUgZ3Jvb3RcIilcbiAgICAtLW5wLWNhdC1zaXplOiAzNnB4OyAgLy8gcmFpbCBidXR0b24gZGlhbWV0ZXI7IHdhcyA0NHB4LCBzaHJ1bmsgYWxvbmdzaWRlIHRoZSByYWlsXG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGZvbnQtZmFtaWx5OiBJbnRlciwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIHNhbnMtc2VyaWY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucWRuYXByby1ub2RlLXBpY2tlciAqLFxuLnFkbmFwcm8tbm9kZS1waWNrZXIgKjo6YmVmb3JlLFxuLnFkbmFwcm8tbm9kZS1waWNrZXIgKjo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8vIC0tLS0tLS0tLS0gcmFpbCAoYWx3YXlzIHNtYWxsIC8gaWNvbi1vbmx5KSAtLS0tLS0tLS0tXG4ucWRuYXByby1ub2RlLXBpY2tlcl9fcmFpbCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IHZhcigtLW5wLXJhaWwtdyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbnAtcmFpbC1iZyk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgcGFkZGluZzogOHB4IDAgMTBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHotaW5kZXg6IDI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAgIC8vIGFuY2hvcnMgdGhlIHNsaWRpbmcgcGlsbCBiZWxvd1xufVxuXG4vLyBTbGlkaW5nIFwic2VsZWN0ZWRcIiBwaWxsIChLaW0vSmFuIDE2LjA3LjIwMjYg4oCUIHNhbWUgZ2xpZGUgYXMgcWRuYXByby1ib3R0b20tbmF2J3Ncbi8vIHBpbGwsIHRyYW5zbGF0ZVkgaW5zdGVhZCBvZiB0cmFuc2xhdGVYIHNpbmNlIHRoZSByYWlsIHJ1bnMgdmVydGljYWxseSkuIEFcbi8vIHNlcGFyYXRlIGVsZW1lbnQsIE5PVCB0aGUgYnV0dG9uJ3Mgb3duIGJhY2tncm91bmQsIHNvIGl0IGNhbiBnbGlkZSBzbW9vdGhseVxuLy8gYmV0d2VlbiBidXR0b25zIGluc3RlYWQgb2YgdGhlIGhpZ2hsaWdodCBzbmFwcGluZyBpbnN0YW50bHkg4oCUIG1vdmVkL3Nob3duIGJ5XG4vLyBxZG5hLW5vZGUtcGlja2VyLmpzJ3MgX21vdmVQaWxsKCkuIFNpdHMgQkVISU5EIHRoZSBidXR0b25zICh6LWluZGV4IDAgdnMgdGhlXG4vLyBidXR0b25zJyB6LWluZGV4IDEpIHNvIHRoZSBpY29uIG9uIHRvcCBuZXZlciB3YXNoZXMgb3V0LlxuLnFkbmFwcm8tbm9kZS1waWNrZXJfX3JhaWwtcGlsbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IHZhcigtLW5wLWNhdC1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLW5wLWNhdC1zaXplKTtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1ucC1jYXQtc2l6ZSkgLyAtMik7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4OyAgIC8vIG1hdGNoIHRoZSBidXR0b24gcmFkaXVzIChyb3VuZGVkIHNxdWFyZSwgbm90IGEgZnVsbCBwaWxsKVxuICAgIGJhY2tncm91bmQ6IHZhcigtLW5wLXJhaWwtYWN0aXZlLWJnKTtcbiAgICBvcGFjaXR5OiAwOyAgIC8vIGhpZGRlbiB1bnRpbCBhIGNhdGVnb3J5IGlzIGFjdHVhbGx5IG9wZW5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDQyMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKSwgb3BhY2l0eSAxNjBtcyBlYXNlLW91dDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAwO1xufVxuXG4vLyBjYXRlZ29yeSBidXR0b25zIChpY29uLW9ubHk7IGxhYmVsIGxpdmVzIGluIHRoZSBob3ZlciB0b29sdGlwKVxuLnFkbmFwcm8tbm9kZS1waWNrZXJfX2NhdCB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHZhcigtLW5wLXJhaWwtaWNvbik7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiB2YXIoLS1ucC1jYXQtc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1ucC1jYXQtc2l6ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4OyAgIC8vIG1hdGNoIHFkbmFwcm8tbmF2LXJhaWwgbmF2LWl0ZW0gcmFkaXVzXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgICAvLyBzaXQgYWJvdmUgdGhlIHNsaWRpbmcgcGlsbFxuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dCwgY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tbnAtcmFpbC1ob3Zlci1iZyk7IGNvbG9yOiB2YXIoLS1ucC1yYWlsLWljb24taG92ZXIpOyB9XG4gICAgLy8gTm8gYmFja2dyb3VuZCBoZXJlIGFueW1vcmUg4oCUIHRoZSBzbGlkaW5nIHBpbGwgSVMgdGhlIGFjdGl2ZS1oaWdobGlnaHQgbm93LlxuICAgIC8vIE9ubHkgdGhlIGljb24gY29sb3VyIHN0aWxsIGZsaXBzIGluc3RhbnRseSBvbiBhY3RpdmF0aW9uLlxuICAgICYuaXMtYWN0aXZlIHsgY29sb3I6ICNmZmZmZmY7IH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1ucC1yYWlsLWJnKSwgMCAwIDAgNHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgICB9XG59XG5cbi5xZG5hcHJvLW5vZGUtcGlja2VyX19jYXQtaWNvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGkgeyBmb250LXNpemU6IDE4cHg7IGxpbmUtaGVpZ2h0OiAxOyB9XG59XG5cbi8vIENhcmQgY2F0ZWdvcnkgYnV0dG9uIChGT1JNIHZhcmlhbnQpOiBzdGF5cyBXSElURSB3aXRoIGEgcHVycGxlIGljb24gc28gaXRcbi8vIHJlYWRzIGFzIGRpc3RpbmN0IGZyb20gdGhlIHB1cnBsZSBjYXRlZ29yeSBpY29ucyAoS2ltIDE3LjA3LjIwMjYpLiBUaGUgaWNvblxuLy8gbXVzdCBOT1QgZmxpcCB0byB3aGl0ZSBvbiBob3Zlci9hY3RpdmUgKHdoaXRlLW9uLXdoaXRlKSDigJQgb3ZlcnJpZGUgYm90aC5cbi5xZG5hcHJvLW5vZGUtcGlja2VyX19jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGNvbG9yOiB2YXIoLS1ucC1ub2RlLWljb24pO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDM4LCA0MiwgOTIsIDAuMjApO1xuXG4gICAgJjpob3ZlciAgICAgICAgeyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAgICAgICAgIGNvbG9yOiB2YXIoLS1ucC1ub2RlLWljb24pOyB9XG4gICAgJi5pcy1hY3RpdmUgICAgeyBjb2xvcjogdmFyKC0tbnAtbm9kZS1pY29uKTsgfVxuICAgICY6aG92ZXIgLnFkbmFwcm8tbm9kZS1waWNrZXJfX2NhdC1pY29uLFxuICAgICYuaXMtYWN0aXZlIC5xZG5hcHJvLW5vZGUtcGlja2VyX19jYXQtaWNvbiB7IGNvbG9yOiB2YXIoLS1ucC1ub2RlLWljb24pOyB9XG59XG5cbi8vIEF0dGVudGlvbiBwdWxzZSBvbiB0aGUgY2FyZCBidXR0b24gd2hpbGUgdGhlIGZsb3cgaGFzIE5PIGZvcm0tY2FyZCB5ZXRcbi8vIChjb25zdW1lciBzZXRzIFtjYXJkLXB1bHNlXSBvbiB0aGUgaG9zdCDigJQgc2VlIE5vZGViYXIudnVlKS4gQW4gZXhwYW5kaW5nXG4vLyB3aGl0ZSByaW5nICsgYSBnZW50bGUgc2NhbGUsIHNvIGl0IGNsZWFybHkgc3RhbmRzIG91dCBvbiB0aGUgcHVycGxlIHJhaWwuXG5Aa2V5ZnJhbWVzIHFkbmFwcm8tbm9kZS1waWNrZXItY2FyZC1wdWxzZSB7XG4gICAgMCUgICB7IGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDM4LCA0MiwgOTIsIDAuMjApLCAwIDAgMCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgICA3MCUgIHsgYm94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMzgsIDQyLCA5MiwgMC4yMCksIDAgMCAwIDlweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApOyAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNik7IH1cbiAgICAxMDAlIHsgYm94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMzgsIDQyLCA5MiwgMC4yMCksIDAgMCAwIDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTsgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbn1cbi5xZG5hcHJvLW5vZGUtcGlja2VyW2NhcmQtcHVsc2VdIC5xZG5hcHJvLW5vZGUtcGlja2VyX19jYXJkIHtcbiAgICBhbmltYXRpb246IHFkbmFwcm8tbm9kZS1waWNrZXItY2FyZC1wdWxzZSAxLjhzIGVhc2Utb3V0IGluZmluaXRlO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucWRuYXByby1ub2RlLXBpY2tlcltjYXJkLXB1bHNlXSAucWRuYXByby1ub2RlLXBpY2tlcl9fY2FyZCB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuXG4vLyBQaGFzZS0yIHB1bHNlOiBkcmF3IGF0dGVudGlvbiB0byB0aGUgVnJhZ2VuIChxdWVzdGlvbnMpIGNhdGVnb3J5IGJ1dHRvblxuLy8gd2hpbGUgdGhlIGZvcm0gZmxvdyBoYXMgZXhhY3RseSBPTkUgZm9ybS1jYXJkIHBsYWNlZCBhbmQgdGhhdCBjYXJkIHN0aWxsXG4vLyBoYXMgTk8gcXVlc3Rpb25zIGRyb3BwZWQgb250byBpdCAoY29uc3VtZXIgc2V0cyBbbm9kZS1wdWxzZV0gb24gdGhlIGhvc3Rcbi8vIOKAlCBzZWUgTm9kZWJhci52dWUgbm9kZVB1bHNlL19zeW5jTm9kZVB1bHNlKS4gTWlycm9ycyBbY2FyZC1wdWxzZV0gYWJvdmUgMToxLFxuLy8gcmV1c2luZyB0aGUgc2FtZSByaW5nIGtleWZyYW1lOyB0aGUgdHdvIHN0YXRlcyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlXG4vLyAoMCBjYXJkcyB2cy4gMSBlbXB0eSBjYXJkKSBzbyB0aGV5IG5ldmVyIGFuaW1hdGUgYXQgdGhlIHNhbWUgdGltZS5cbi5xZG5hcHJvLW5vZGUtcGlja2VyW25vZGUtcHVsc2VdIC5xZG5hcHJvLW5vZGUtcGlja2VyX19jYXRbZGF0YS1jYXQ9XCJxdWVzdGlvbnNcIl0ge1xuICAgIGFuaW1hdGlvbjogcWRuYXByby1ub2RlLXBpY2tlci1jYXJkLXB1bHNlIDEuOHMgZWFzZS1vdXQgaW5maW5pdGU7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLW5vZGUtcGlja2VyW25vZGUtcHVsc2VdIC5xZG5hcHJvLW5vZGUtcGlja2VyX19jYXRbZGF0YS1jYXQ9XCJxdWVzdGlvbnNcIl0geyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLy8gLS0tLS0tLS0tLSBwYW5lbCAtLS0tLS0tLS0tXG4ucWRuYXByby1ub2RlLXBpY2tlcl9fcGFuZWwge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLy8gSWxsdXN0cmF0aW9uIHJlc2VydmVkIGF0IHRoZSBib3R0b20gKEtpbSAxNi4wNy4yMDI2KTogYSBiYWNrZ3JvdW5kXG4gICAgLy8gaW1hZ2UsIE5PVCBhIERPTSBlbGVtZW50LCBzbyBpdCBuZXZlciBhZmZlY3RzIHRoZSBwYW5lbCdzIFdJRFRIIOKAlCBpdFxuICAgIC8vIG9ubHkgZXZlciByZW5kZXJzIHdpdGhpbiB3aGF0ZXZlciB3aWR0aCB0aGUgcGFuZWwgYWxyZWFkeSBoYXMuXG4gICAgLy8gYmFja2dyb3VuZC1hdHRhY2htZW50IHN0YXlzIGF0IGl0cyBpbml0aWFsIFwic2Nyb2xsXCIgKGkuZS4gZml4ZWRcbiAgICAvLyByZWxhdGl2ZSB0byB0aGUgcGFuZWwncyBvd24gYm94LCBub3QgdGhlIHBhZ2UpLCB3aGljaCBpcyBleGFjdGx5IHdoYXRcbiAgICAvLyBrZWVwcyBpdCBhbmNob3JlZCB0byB0aGUgdmlzaWJsZSBib3R0b20gZWRnZSBldmVuIHdoaWxlIHRoZSBub2RlIGxpc3RcbiAgICAvLyBzY3JvbGxzIGludGVybmFsbHkuIFRoZSBhc3NldCBpdHNlbGYgaXMgcHJlLWJha2VkIHRvIG9wYWNpdHkgMC40ICg9XG4gICAgLy8gXCI2MCUgdHJhbnNwYXJlbnRcIikg4oCUIHNlZSB3ZWIvYXNzZXRzL2lsbHVzdHJhdGlvbnMvbm9kZS1waWNrZXItZmxvdy5zdmcg4oCUXG4gICAgLy8gcmF0aGVyIHRoYW4gYSBDU1Mgb3BhY2l0eSBoZXJlLCB3aGljaCB3b3VsZCBhbHNvIGZhZGUgdGhlIG5vZGUgbGlzdC5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ucC1wYW5lbC1iZyk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2Fzc2V0cy9pbGx1c3RyYXRpb25zL25vZGUtcGlja2VyLWZsb3cuc3ZnXCIpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tbnAtcGFuZWwtYm9yZGVyKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1ucC1wYW5lbC1zaGFkb3cpO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMTBweCAxMHB4IDA7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgei1pbmRleDogMTtcbiAgICAvLyBGdWxsIGhlaWdodCBhZ2FpbiAoS2ltIDE2LjA3LjIwMjY6IHJlc2VydmVkIGZvciB0aGUgaWxsdXN0cmF0aW9uLFxuICAgIC8vIG5vdCB3YXN0ZWQgc3BhY2Ug4oCUIHJldmVydHMgdGhlIGVhcmxpZXIgXCJodWcgY29udGVudFwiIGV4cGVyaW1lbnQpLlxufVxuLnFkbmFwcm8tbm9kZS1waWNrZXJbZGF0YS1vcGVuXSAucWRuYXByby1ub2RlLXBpY2tlcl9fcGFuZWwge1xuICAgIHdpZHRoOiB2YXIoLS1ucC1wYW5lbC13KTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDhweCA4cHggMTBweDtcbn1cblxuLnFkbmFwcm8tbm9kZS1waWNrZXJfX3BhbmVsLWhlYWQge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiB2YXIoLS1ucC1ub2RlLXRleHQpO1xuICAgIHBhZGRpbmc6IDAgNHB4IDhweDtcbiAgICAvLyB3cmFwIChub3Qgbm93cmFwKTogdGhlIGNhcmQgcGFuZWwncyB0aXRsZSBpcyBhIGZ1bGwgc2VudGVuY2UuXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4vLyBDYXJkIHBhbmVsIHN1YnRleHQgKHVuZGVyIHRoZSB0aXRsZSkuXG4ucWRuYXByby1ub2RlLXBpY2tlcl9fcGFuZWwtc3ViIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBjb2xvcjogdmFyKC0tbnAtc3ViaGVhZCk7XG4gICAgcGFkZGluZzogMCA0cHggMTJweDtcbn1cblxuLy8gVGhlIGRyYXduIGRyYWdnYWJsZSBmb3JtLWNhcmQgKGEgbWluaSBmb3JtLXBhZ2UpLiBSZWFkcyBhcyBhIFwiY2FyZFwiLFxuLy8gZGlzdGluY3QgZnJvbSB0aGUgbm9kZSByb3dzIGRyb3BwZWQgb250byBpdC4gUHVycGxlIGhvdmVyIGRyYWctaGFuZGxlLFxuLy8gc2FtZSBhZmZvcmRhbmNlL3ZhbHVlcyBhcyB0aGUgbm9kZSBpdGVtcyArIGFuc3dlci1vcHRpb24uXG4ucWRuYXByby1ub2RlLXBpY2tlcl9fZm9ybS1jYXJkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAycHggMnB4IDRweCAxNHB4OyAgIC8vIGxlZnQgcm9vbSBmb3IgdGhlIGRyYWcgaGFuZGxlXG4gICAgcGFkZGluZzogMTBweCAxMHB4IDEycHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLW5wLXBhbmVsLWJvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgzOCwgNDIsIDkyLCAwLjEwKTtcbiAgICBjdXJzb3I6IGdyYWI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2UsIGJveC1zaGFkb3cgMTIwbXMgZWFzZTtcblxuICAgICY6OmJlZm9yZSB7ICAgLy8gcHVycGxlIGRyYWcgaGFuZGxlLCByZXZlYWxlZCBvbiBob3ZlclxuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB3aWR0aDogNHB4O1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtMTAwKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDM4LCA0MiwgOTIsIDAuMTYpO1xuICAgICAgICAmOjpiZWZvcmUgeyBvcGFjaXR5OiAxOyB9XG4gICAgfVxuICAgICY6YWN0aXZlIHsgY3Vyc29yOiBncmFiYmluZzsgfVxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAjZmZmZmZmLCAwIDAgMCA0cHggcmdiYSg4MSwgODksIDE2NCwgMC40NSk7XG4gICAgfVxuXG4gICAgLy8gQm9yZGVyIGJlYW0gKE1hZ2ljLVVJIHN0eWxlKTogYSBsaWdodCBjb250aW51b3VzbHkgdHJhdmVscyBhcm91bmQgdGhlXG4gICAgLy8gY2FyZCdzIGJvcmRlciwgc28gdGhlIGRyYWdnYWJsZSBmb3JtLWNhcmQgcHJldmlldyByZWFkcyBhcyBcImFsaXZlXCIgL1xuICAgIC8vIGRyYXctYXR0ZW50aW9uIHJhdGhlciB0aGFuIGEgc3RhdGljIHJlY3RhbmdsZS4gUHVyZSBDU1Mg4oCUIGEgcm90YXRpbmdcbiAgICAvLyBjb25pYy1ncmFkaWVudCBjbGlwcGVkIGRvd24gdG8ganVzdCB0aGUgYm9yZGVyIHJpbmcgdmlhXG4gICAgLy8gbWFzay1jb21wb3NpdGU6IGV4Y2x1ZGUgKGNvbnRlbnQtYm94IHZzLiBib3JkZXItYm94KSwgc28gaXQgbmV2ZXJcbiAgICAvLyBjb3ZlcnMgdGhlIGhlYWRlci9maWVsZCBwbGFjZWhvbGRlcnMgaW5zaWRlLiBib3JkZXItcmFkaXVzOiBpbmhlcml0XG4gICAgLy8ga2VlcHMgdGhlIGJlYW0gZm9sbG93aW5nIHRoZSBjYXJkJ3Mgb3duIHJvdW5kZWQgY29ybmVycy5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgICAgLy8gQ29sb3VycyBwdWxsZWQgZnJvbSB0aGlzIGNvbXBvbmVudCdzIG93biBwdXJwbGUgcGFsZXR0ZTogdGhlXG4gICAgICAgIC8vIGRyYWctaGFuZGxlIGJsdWUtcHVycGxlICgjNDY1MmYzLCBzZWUgJjo6YmVmb3JlIGFib3ZlKSBhcyB0aGUgaG90XG4gICAgICAgIC8vIGNvcmUgb2YgdGhlIGJlYW0sIGZhZGluZyB0aHJvdWdoIHRoZSBob3ZlciBib3JkZXIgdGludCAoI2I5YzBmNylcbiAgICAgICAgLy8gaW50byB0cmFuc3BhcmVuY3kgZm9yIHRoZSByZXN0IG9mIHRoZSByaW5nLlxuICAgICAgICBiYWNrZ3JvdW5kOiBjb25pYy1ncmFkaWVudChcbiAgICAgICAgICAgIGZyb20gdmFyKC0tcW5wLWJlYW0tYW5nbGUpLFxuICAgICAgICAgICAgdHJhbnNwYXJlbnQgMGRlZyxcbiAgICAgICAgICAgIHRyYW5zcGFyZW50IDI1MGRlZyxcbiAgICAgICAgICAgIHJnYmEoNzAsIDgyLCAyNDMsIDAuOSkgMzAwZGVnLFxuICAgICAgICAgICAgdmFyKC0tYy1wdXJwbGUtMTAwKSAzMzBkZWcsXG4gICAgICAgICAgICB0cmFuc3BhcmVudCAzNjBkZWdcbiAgICAgICAgKTtcbiAgICAgICAgLXdlYmtpdC1tYXNrOiBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApIGNvbnRlbnQtYm94LCBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApO1xuICAgICAgICAtd2Via2l0LW1hc2stY29tcG9zaXRlOiB4b3I7XG4gICAgICAgIG1hc2s6IGxpbmVhci1ncmFkaWVudCgjZmZmIDAgMCkgY29udGVudC1ib3gsIGxpbmVhci1ncmFkaWVudCgjZmZmIDAgMCk7XG4gICAgICAgIG1hc2stY29tcG9zaXRlOiBleGNsdWRlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgYW5pbWF0aW9uOiBxZG5hcHJvLW5vZGUtcGlja2VyLWJlYW0gM3MgbGluZWFyIGluZmluaXRlO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBxZG5hcHJvLW5vZGUtcGlja2VyLWJlYW0ge1xuICAgIHRvIHsgLS1xbnAtYmVhbS1hbmdsZTogMzYwZGVnOyB9XG59XG5cbi5xZG5hcHJvLW5vZGUtcGlja2VyX19mb3JtLWNhcmQtaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgIGNvbG9yOiB2YXIoLS1ucC1ub2RlLXRleHQpO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4ucWRuYXByby1ub2RlLXBpY2tlcl9fZm9ybS1jYXJkLWZpZWxkIHtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1ucC1wYW5lbC1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQtaG92ZXIpO1xuICAgICYgKyAmIHsgbWFyZ2luLXRvcDogOHB4OyB9XG59XG5cbi5xZG5hcHJvLW5vZGUtcGlja2VyX19zdWJoZWFkIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6IHZhcigtLW5wLXN1YmhlYWQpO1xuICAgIHBhZGRpbmc6IDhweCA0cHggM3B4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgJjpmaXJzdC1vZi10eXBlIHsgcGFkZGluZy10b3A6IDA7IH1cbn1cblxuLnFkbmFwcm8tbm9kZS1waWNrZXJfX2VtcHR5IHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6IHZhcigtLW5wLXN1YmhlYWQpO1xuICAgIHBhZGRpbmc6IDhweDtcbn1cblxuLy8gbm9kZSBpdGVtIChkcmFnZ2FibGUpXG4ucWRuYXByby1ub2RlLXBpY2tlcl9fbm9kZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAgIC8vIGFuY2hvciBmb3IgdGhlIGhvdmVyIGRyYWctaGFuZGxlIGJhclxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDlweDtcbiAgICAvLyBMZWZ0IHBhZGRpbmcgcmVzZXJ2ZXMgcm9vbSBmb3IgdGhlIGRyYWcgaGFuZGxlIChiYXIgYXQgbGVmdDo0cHgsIDRweFxuICAgIC8vIHdpZGUpIFBMVVMgYnJlYXRoaW5nIHNwYWNlIG9uIGJvdGggc2lkZXMgb2YgaXQsIHNvIGl0IG5ldmVyIG92ZXJsYXBzXG4gICAgLy8gdGhlIGljb24vdGV4dCBvbiBob3ZlciAoS2ltIDE2LjA3LjIwMjYpLlxuICAgIHBhZGRpbmc6IDZweCA4cHggNnB4IDE4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDsgICAvLyBnYXAgYmV0d2VlbiBub2RlcyAoS2ltIDE2LjA3LjIwMjYsIGV4cGxpY2l0IHZhbHVlKVxuICAgIGJvcmRlci1yYWRpdXM6IDhweDsgICAvLyBtYXRjaCBxZG5hcHJvLW5hdi1yYWlsIG5hdi1pdGVtIHJhZGl1c1xuICAgIGN1cnNvcjogZ3JhYjtcbiAgICBjb2xvcjogdmFyKC0tbnAtbm9kZS10ZXh0KTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTEwbXMgZWFzZS1vdXQ7XG5cbiAgICAvLyBQdXJwbGUgZHJhZy1oYW5kbGUgYmFyLCByZXZlYWxlZCBvbiBob3Zlci4gU2FtZSBhZmZvcmRhbmNlICsgdmFsdWVzIGFzXG4gICAgLy8gcWRuYXByby1hbnN3ZXItb3B0aW9uIF9fZHJhZyAvIGFjdGl2aXR5LXJvdyAvIHNlY3Rpb24taGVhZGVyICgjNDY1MmYzLFxuICAgIC8vIDRweCB3aWRlLCAyMnB4IHRhbGwsIGxlZnQ6NHB4LCBvcGFjaXR5IDAgLT4gMSkuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiA0cHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGVhc2U7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbnAtbm9kZS1ob3Zlci1iZyk7XG4gICAgICAgICY6OmJlZm9yZSB7IG9wYWNpdHk6IDE7IH1cbiAgICB9XG4gICAgJjphY3RpdmUgeyBjdXJzb3I6IGdyYWJiaW5nOyB9XG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICNmZmZmZmYsIDAgMCAwIDRweCByZ2JhKDgxLCA4OSwgMTY0LCAwLjQ1KTtcbiAgICB9XG59XG5cbi5xZG5hcHJvLW5vZGUtcGlja2VyX19ub2RlLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogdmFyKC0tbnAtbm9kZS1pY29uKTtcbiAgICBpIHsgZm9udC1zaXplOiAxOXB4OyBsaW5lLWhlaWdodDogMTsgfVxufVxuLnFkbmFwcm8tbm9kZS1waWNrZXJfX25vZGUtbGFiZWwge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gLS0tLS0tLS0tLSByZWR1Y2VkIG1vdGlvbiAtLS0tLS0tLS0tXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLW5vZGUtcGlja2VyX19wYW5lbCB7IHRyYW5zaXRpb246IG5vbmU7IH1cbiAgICAucWRuYXByby1ub2RlLXBpY2tlcl9fZm9ybS1jYXJkOjphZnRlciB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvbm92YS9fbm92YS1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby1ub3ZhIHtcbiAgLS1ub3ZhLXByaW1hcnk6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIC0tbm92YS1wcmltYXJ5LWhvdmVyOiB2YXIoLS1jLXB1cnBsZS02MDApO1xuICAtLW5vdmEtcHJpbWFyeS1wcmVzc2VkOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICAtLW5vdmEtcHJpbWFyeS1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjQwKTtcbiAgLS1ub3ZhLXBhbmVsLWJnOiAjZmZmZmZmO1xuICAtLW5vdmEtdXNlci1idWJibGU6IHZhcigtLWMtZ3JleS01MCk7XG4gIC0tbm92YS10ZXh0OiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgLS1ub3ZhLXRleHQtc2Vjb25kYXJ5OiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgLS1ub3ZhLWxpbms6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gIC0tbm92YS1ib3JkZXI6IHZhcigtLWMtZ3JleS0zMDApO1xuICAtLW5vdmEtaW5wdXQtYmc6ICNmZmZmZmY7XG4gIC0tbm92YS1wbGFjZWhvbGRlcjogdmFyKC0tYy1ncmV5LTQwMCk7XG4gIC0tbm92YS1kaXZpZGVyOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgLS1ub3ZhLXF1aWNrLWhvdmVyOiAjZTZlOWZmO1xuICAtLW5vdmEtcGlubmVkLWJnOiAjZTZlOWZmO1xuICAtLW5vdmEtbWVudS1ob3ZlcjogdmFyKC0tYy1ncmV5LTUwKTtcbiAgLS1ub3ZhLWVycm9yLWJnOiB2YXIoLS1jLXNpZ25hbC1yZWQtc29mdCk7XG4gIC0tbm92YS1lcnJvci10ZXh0OiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG4gIC0tbm92YS1zdWNjZXNzOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0KTtcbiAgLS1ub3ZhLXNwYXJrbGUtZ3JhZC1zdGFydDogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgLS1ub3ZhLXNwYXJrbGUtZ3JhZC1lbmQ6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMDtcbiAgbWluLXdpZHRoOiAwO1xuICBmbGV4LXNocmluazogMDtcbiAgei1pbmRleDogMTA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtcGFuZWwtYmcpO1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQpO1xuICBib3gtc2hhZG93OiAtNHB4IDAgMjBweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAzMjBtcyBlYXNlLWluLW91dDtcbn1cbi5xZG5hcHJvLW5vdmEubm92YS1vcGVuIHtcbiAgd2lkdGg6IDM5MHB4O1xufVxuLnFkbmFwcm8tbm92YS5ub3ZhLW9wZW4ubm92YS1leHBhbmRlZCB7XG4gIHdpZHRoOiBtaW4oNzIwcHgsIDEwMHZ3KTtcbn1cbi5xZG5hcHJvLW5vdmEgPiAqIHtcbiAgbWluLXdpZHRoOiAzOTBweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5xZG5hcHJvLW5vdmEubm92YS1leHBhbmRlZCA+ICoge1xuICBtaW4td2lkdGg6IG1pbig3MjBweCwgMTAwdncpO1xufVxuLnFkbmFwcm8tbm92YVtmbG9hdGluZ10ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMTAwdmg7XG4gIGhlaWdodDogMTAwZHZoO1xuICBtYXgtaGVpZ2h0OiAxMDB2aDtcbiAgbWF4LWhlaWdodDogMTAwZHZoO1xuICB3aWR0aDogMDtcbiAgei1pbmRleDogMTA0MDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMzIwbXMgZWFzZS1pbi1vdXQ7XG59XG4ucWRuYXByby1ub3ZhW2Zsb2F0aW5nXS5ub3ZhLW9wZW4ge1xuICB3aWR0aDogMzkwcHg7XG59XG4ucWRuYXByby1ub3ZhW2Zsb2F0aW5nXS5ub3ZhLW9wZW4ubm92YS1leHBhbmRlZCB7XG4gIHdpZHRoOiBtaW4oNzIwcHgsIDEwMHZ3KTtcbn1cbi5xZG5hcHJvLW5vdmEubm92YS10aGVtZS1vcmFuZ2Uge1xuICAtLW5vdmEtcHJpbWFyeTogdmFyKC0tYy13YXJuLXllbGxvdy02MDApO1xuICAtLW5vdmEtcHJpbWFyeS1ob3ZlcjogdmFyKC0tYy13YXJuLWFtYmVyLTUwMCk7XG4gIC0tbm92YS1wcmltYXJ5LXByZXNzZWQ6IHZhcigtLWMtdGFnLXdhcm5pbmctdGV4dCk7XG4gIC0tbm92YS1wcmltYXJ5LWdsb3c6IHJnYmEoMjM5LCAxNDIsIDIsIDAuNDUpO1xuICAtLW5vdmEtcXVpY2staG92ZXI6IHZhcigtLWMtdGFnLXdhcm5pbmctYmcpO1xuICAtLW5vdmEtcGlubmVkLWJnOiB2YXIoLS1jLXRhZy13YXJuaW5nLWJnKTtcbiAgLS1ub3ZhLXNwYXJrbGUtZ3JhZC1zdGFydDogdmFyKC0tYy13YXJuLXllbGxvdy02MDApO1xuICAtLW5vdmEtc3BhcmtsZS1ncmFkLWVuZDogdmFyKC0tYy13YXJuLXllbGxvdy01MDApO1xufVxuLy8gSW56ZXQgdm9vciBkZSBzdGF0dXNiYWxrLCBBTExFRU4gaW4gZGUgYXBwLiBbMTAuMDguMjAyNiwgSmFuXVxuLy8gTm92YSBpcyBoZXQgZW5pZ2UgYXBwLXNjaGVybSB6b25kZXIgcWRuYXByby1hcHAtaGVhZGVyOiBoZXQgY29tcG9uZW50IHZ1bHQgaGV0IHNjaGVybVxuLy8gemVsZiwgZHVzIHppam4ga29wIGJlZ2ludCBvcCB5IDAgZW4gXCJOb3ZhXCIgdmllbCBvbmRlciBkZSBzeXN0ZWVta2xvay5cbi8vIERlIGVjaHRlIHdhYXJkZSBrb210IHZhbiBkZSBwbHVnaW4gYHFkbmEtaW5zZXRzYCAoQW5kcm9pZCk7IGlPUyB2YWx0IHRlcnVnIG9wIGVudigpLlxuLy8g4pqg77iPIEFsbGVlbiBhY2h0ZXIgYFtwd2FdYCAoZ2V6ZXQgaW4gMC1jb3JlLmpzKSwgd2FudCBoZXQgYmFja29mZmljZS16aWpwYW5lZWwgc3RhYXQgbmlldFxuLy8gdGVnZW4gZWVuIHNjaGVybXJhbmQuIERlIDhweCBpcyBkZSBiZXN0YWFuZGUgYm92ZW5tYXJnZSB2YW4gLm5vdmEtaGVhZGVyIGhpZXJvbmRlcjsgZGllXG4vLyBzdGFhdCBoaWVyIG9wbmlldXcgb21kYXQgZWVuIGBwYWRkaW5nLXRvcGAgaGVtIGFuZGVycyBvdmVyc2NocmlqZnQuXG4vLyDimqDvuI8gRElUIElTIERFIEJST04uIGFwcF9hcGlfcWRuYXYyLy4uLi9xZG5hLW5vdmEuY3NzIGlzIEJPVVdTRUwgdmFuXG4vLyBzeW5jLXYyLWNvbXBvbmVudHMuanMg4oCUIGVlbiB3aWp6aWdpbmcgZGFhciB3b3JkdCBiaWogZGUgdm9sZ2VuZGUgc3luYyBvdmVyc2NocmV2ZW4uXG4vLyBEYXQgaXMgb3AgMDkuMDguMjAyNiBwcmVjaWVzIMOpw6luIGtlZXIgZ2ViZXVyZCwgZW4gZGFhcm9tIHN0b25kIFwiTm92YVwiIHdlZXIgb25kZXIgZGUga2xvay5cbi5xZG5hcHJvLW5vdmFbcHdhXSAubm92YS1oZWFkZXIge1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKDhweCArIHZhcigtLXFkbmEtaW5zZXQtdG9wLCBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCwgMHB4KSkpO1xufVxuXG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDhweCAxNnB4IDRweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXByaW1hcnkpO1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS10aXRsZS1iYWNrIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbm92YS1wcmltYXJ5KTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS10aXRsZS1iYWNrOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1xdWljay1ob3Zlcik7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhlYWRlci1hY3Rpb25zIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaGVhZGVyLWRpdmlkZXIge1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtZGl2aWRlcik7XG4gIG1hcmdpbjogMCA0cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1oZWFkZXItYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0KTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhlYWRlci1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLXF1aWNrLWhvdmVyKTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaGVhZGVyLWJ0biBzdmcge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1jb250ZXh0LXBpbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIG1hcmdpbjogMCAxMnB4IDhweDtcbiAgcGFkZGluZzogNHB4IDhweCA0cHggMTBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1waW5uZWQtYmcpO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tbm92YS1wcmltYXJ5KTtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyNHB4KTtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1jb250ZXh0LXBpbGwgc3ZnIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWNvbnRleHQtcGlsbC1sYWJlbCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1jb250ZXh0LXBpbGwtY2xlYXIge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXByaW1hcnkpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtY29udGV4dC1waWxsLWNsZWFyOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA4KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtcXVpY2stYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiAwIDhweCA4cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ub3ZhLWRpdmlkZXIpO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtcXVpY2stYWN0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBwYWRkaW5nOiA2cHggOHB4O1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dCk7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1xdWljay1hY3Rpb246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLXF1aWNrLWhvdmVyKTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtcXVpY2stYWN0aW9uIHN2ZyB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjb2xvcjogdmFyKC0tbm92YS1wcmltYXJ5KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbWVzc2FnZXMge1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIC8vIEtlZXAgd2hlZWwvdG91Y2ggc2Nyb2xsaW5nIGluc2lkZSB0aGUgcGFuZWwg4oCUIGRvbid0IGNoYWluIHRvIHRoZSBwYWdlXG4gIC8vIGJlaGluZCBpdCB3aGVuIHJlYWNoaW5nIHRoZSB0b3AvYm90dG9tIG9mIE5vdmEncyBtZXNzYWdlIGxpc3QuXG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTJweDtcbiAgcGFkZGluZzogMTZweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnFkbmFwcm8tbm92YS5ub3ZhLWV4cGFuZGVkIC5ub3ZhLW1lc3NhZ2VzIHtcbiAgcGFkZGluZzogMTZweCAyNHB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tZXNzYWdlcyB7XG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgc2Nyb2xsYmFyLWNvbG9yOiB2YXIoLS1ub3ZhLWJvcmRlcikgdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1lc3NhZ2VzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA2cHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1lc3NhZ2VzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tc2ctdXNlci13cmFwIHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIG1heC13aWR0aDogODUlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGdhcDogMnB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tc2ctdXNlciB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtdXNlci1idWJibGUpO1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0KTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1zZy11c2VyLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTIwbXMgZWFzZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1zZy11c2VyLXdyYXA6aG92ZXIgLm5vdmEtbXNnLXVzZXItYWN0aW9ucyxcbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLXVzZXItd3JhcDpmb2N1cy13aXRoaW4gLm5vdmEtbXNnLXVzZXItYWN0aW9ucyB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tc2ctYWkge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogOHB4IDA7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTJweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWFpLWhlYWRpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogNHB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWFpLWhlYWRpbmctZW1vamkge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWFpLWJvZHkge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0KTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tc2ctYWktYm9keSBwIHtcbiAgbWFyZ2luOiAwIDAgOHB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tc2ctYWktYm9keSBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tc2ctYWktYm9keSBzdHJvbmcge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tc2ctYWktYm9keSBhIHtcbiAgY29sb3I6IHZhcigtLW5vdmEtbGluayk7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tc2ctYWktYm9keSB1bCwgLnFkbmFwcm8tbm92YSAubm92YS1tc2ctYWktYm9keSBvbCB7XG4gIG1hcmdpbjogMCAwIDhweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tc2ctYWktYm9keSBsaSArIGxpIHtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tc2ctYWktYm9keSBjb2RlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS11c2VyLWJ1YmJsZSk7XG4gIHBhZGRpbmc6IDFweCA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDEycHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1zZy1haS1yZWYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDRweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWFpLXJlZi1sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tc2ctYWktcmVmLXZhbHVlIGEge1xuICBjb2xvcjogdmFyKC0tbm92YS1saW5rKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXN0cmVhbWluZy1jdXJzb3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogMTZweDtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gIGFuaW1hdGlvbjogbm92YS1jdXJzb3ItcHVsc2UgMXMgc3RlcHMoMiwgZW5kKSBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgbm92YS1jdXJzb3ItcHVsc2Uge1xuICAwJSwgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDUxJSwgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLnFkbmFwcm8tbm92YSAubm92YS10aGlua2luZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBwYWRkaW5nOiAwIDEycHg7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQtc2Vjb25kYXJ5KTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtdGhpbmtpbmctaWNvbiB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtdGhpbmtpbmctc3BhcmtsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgbWFyZ2luOiAtN3B4IDAgMCAtN3B4O1xuICBjb2xvcjogdmFyKC0tbm92YS1wcmltYXJ5KTtcbiAgYW5pbWF0aW9uOiBub3ZhLXNwYXJrbGUtb3JiaXQgMi43cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eSwgZmlsdGVyO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS10aGlua2luZy1zcGFya2xlOm50aC1jaGlsZCgyKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuOXM7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXRoaW5raW5nLXNwYXJrbGU6bnRoLWNoaWxkKDMpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMS44cztcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtdGhpbmtpbmctc3BhcmtsZSBzdmcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBrZXlmcmFtZXMgbm92YS1zcGFya2xlLW9yYml0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xM3B4KSBzY2FsZSgwLjI1KTtcbiAgICBvcGFjaXR5OiAwLjE4O1xuICAgIGZpbHRlcjogYmx1cigwLjZweCk7XG4gIH1cbiAgMjUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxM3B4LCAwKSBzY2FsZSgwLjc1KTtcbiAgICBvcGFjaXR5OiAwLjc7XG4gICAgZmlsdGVyOiBibHVyKDApO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTNweCkgc2NhbGUoMS41KTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGZpbHRlcjogYmx1cigwKTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xM3B4LCAwKSBzY2FsZSgwLjc1KTtcbiAgICBvcGFjaXR5OiAwLjc7XG4gICAgZmlsdGVyOiBibHVyKDApO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xM3B4KSBzY2FsZSgwLjI1KTtcbiAgICBvcGFjaXR5OiAwLjE4O1xuICAgIGZpbHRlcjogYmx1cigwLjZweCk7XG4gIH1cbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLW5vdmEgLm5vdmEtdGhpbmtpbmctc3BhcmtsZSB7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwcztcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgLnFkbmFwcm8tbm92YSAubm92YS1lbXB0eS1oZXJvIHN2ZyBwYXRoIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbn1cbkBrZXlmcmFtZXMgbm92YS1zcGFya2xlLWJpZyB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTtcbiAgfVxufVxuQGtleWZyYW1lcyBub3ZhLXNwYXJrbGUtc21hbGwge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjI1KTtcbiAgfVxufVxuQGtleWZyYW1lcyBub3ZhLXBvcC1pbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44NSk7XG4gIH1cbiAgNTUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWVtcHR5LWhlcm8ge1xuICBhbmltYXRpb246IG5vdmEtcG9wLWluIDI0MG1zIGVhc2Utb3V0IGJvdGg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXF1aWNrLWFjdGlvbiB7XG4gIGFuaW1hdGlvbjogbm92YS1wb3AtaW4gMjQwbXMgZWFzZS1vdXQgYm90aDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtcXVpY2stYWN0aW9uOm50aC1jaGlsZCgxKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogODBtcztcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtcXVpY2stYWN0aW9uOm50aC1jaGlsZCgyKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMTQwbXM7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXF1aWNrLWFjdGlvbjpudGgtY2hpbGQoMykge1xuICBhbmltYXRpb24tZGVsYXk6IDIwMG1zO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1xdWljay1hY3Rpb246bnRoLWNoaWxkKDQpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAyNjBtcztcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtcXVpY2stYWN0aW9uOm50aC1jaGlsZCg1KSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMzIwbXM7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LXdyYXBwZXIubm92YS1lbXB0eS1tb2RlIHtcbiAgYW5pbWF0aW9uOiBub3ZhLXBvcC1pbiAyNDBtcyBlYXNlLW91dCAyODBtcyBib3RoO1xufVxuQGtleWZyYW1lcyBub3ZhLWhpc3RvcnktZW50ZXIge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTJweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaGlzdG9yeSB7XG4gIGFuaW1hdGlvbjogbm92YS1oaXN0b3J5LWVudGVyIDIyMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgYm90aDtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLW5vdmEgLm5vdmEtZW1wdHktaGVybyxcbiAgLnFkbmFwcm8tbm92YSAubm92YS1xdWljay1hY3Rpb24sXG4gIC5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtd3JhcHBlci5ub3ZhLWVtcHR5LW1vZGUsXG4gIC5xZG5hcHJvLW5vdmEgLm5vdmEtaGlzdG9yeSB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1zZy1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICBwYWRkaW5nOiAwO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWFjdGlvbi1idG4ge1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0LXNlY29uZGFyeSk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWFjdGlvbi1idG46aG92ZXIge1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtYWN0aW9uLWJ0bi5ub3ZhLWFjdGlvbi10aHVtYiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWFjdGlvbi1idG4ubm92YS1hY3Rpb24tYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLW5vdmEtcHJpbWFyeSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtcGlubmVkLWJnKTtcbn1cbi8qIEJyb25uZW4tY2hpcHMgb25kZXIgZWVuIGFudHdvb3JkIChlY2h0ZSBxZG5hcHJvLXNvdXJjZS1waWxsJ3MpICsgaGV0XG4gICBicm9ubmVucGFuZWVsIGRhdCB2YW4gcmVjaHRzIG92ZXIgZGUgY2hhdCBzY2h1aWZ0LiBEZSBvdWRlIC5ub3ZhLXNvdXJjZS1waWxsL1xuICAgLm5vdmEtc291cmNlLXN0YWNrIHBsYWNlaG9sZGVyLXN0aWpsZW4gemlqbiBoaWVyIHZlcnZhbmdlbiDigJQgZGUgcGxhY2Vob2xkZXItZGl2XG4gICBpbiBkZSBKUyBiZXN0YWF0IG5pZXQgbWVlci4gW0phbiAyMDI2LTA4LTA1LCBhZmdlc3RlbWQgbWV0IEtpbV0gKi9cbi5xZG5hcHJvLW5vdmEgLm5vdmEtc291cmNlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA2cHg7XG4gIHBhZGRpbmc6IDJweCAwIDRweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtc291cmNlcyBxZG5hcHJvLXNvdXJjZS1waWxsIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1zb3VyY2UtcGFuZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAzMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1wYW5lbC1iZyk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2U7XG4gIGJveC1zaGFkb3c6IC04cHggMCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4vLyBJbnpldCB2b29yIGRlIHN0YXR1c2JhbGssIEFMTEVFTiBpbiBkZSBhcHAuIFsxMC4wOC4yMDI2LCBKYW46IFwiZGUga25vcCBvbSBoZXRcbi8vIHZvbGxlZGlnZSBkb2N1bWVudCB0ZSBvcGVuZW4gc3RhYXQgdGUgaG9vZywgZGUgQW5kcm9pZC10aWpkIHN0YWF0IGVyb3ZlcmhlZW5cIl1cbi8vIEhldCBwYW5lZWwgc2NodWlmdCBtZXQgYGluc2V0OiAwYCBvdmVyIGhldCBIRUxFIGNvbXBvbmVudCDigJQgZHVzIMOzw7NrIG92ZXIgZGUga29wLFxuLy8gZGllIHppam4gZWlnZW4gW3B3YV0taW56ZXQgYWwgaGVlZnQgKHppZSAubm92YS1oZWFkZXIgYm92ZW5pbiBkaXQgYmVzdGFuZCkuIEhldFxuLy8gcGFuZWVsIHplbGYgYmVnb24gZGFhcmRvb3Igb3AgeSAwLCBtZXQgZGUga25vcCBcIlZvbGxlZGlnIGRvY3VtZW50IG9wZW5lblwiIG9uZGVyXG4vLyBkZSBzeXN0ZWVta2xvay4gWmVsZmRlIHZhcmlhYmVsZSArIHRlcnVndmFsIGFscyBiaWogZGUga29wOyBhbGxlZW4gYWNodGVyIFtwd2FdLFxuLy8gd2FudCBoZXQgYmFja29mZmljZS16aWpwYW5lZWwgc3RhYXQgbmlldCB0ZWdlbiBlZW4gc2NoZXJtcmFuZC5cbi5xZG5hcHJvLW5vdmFbcHdhXSAubm92YS1zb3VyY2UtcGFuZWwge1xuICBwYWRkaW5nLXRvcDogdmFyKC0tcWRuYS1pbnNldC10b3AsIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wLCAwcHgpKTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtc291cmNlLXBhbmVsLm5vdmEtc291cmNlLXBhbmVsLWluIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1zb3VyY2UtcGFuZWwtaGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAxMnB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbm92YS1kaXZpZGVyKTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtc291cmNlLXBhbmVsLW9wZW4tYnRuIHtcbiAgZmxleDogMSAxIGF1dG87XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXNvdXJjZS1wYW5lbC1vcGVuLWJ0biBidXR0b24ge1xuICB3aWR0aDogMTAwJTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtc291cmNlLXBhbmVsLWtpY2tlciB7XG4gIHBhZGRpbmc6IDEycHggMTJweCAwO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQtc2Vjb25kYXJ5KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtc291cmNlLXBhbmVsLXRpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDRweCAxMnB4IDhweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtc291cmNlLXBhbmVsLXRpdGxlIHN2ZyB7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0LXNlY29uZGFyeSk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXNvdXJjZS1wYW5lbC1ib2R5IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7IC8qIGZsZXgta2luZCBtYWcga3JpbXBlbiwgYW5kZXJzIGtsaXB0IGRlIHBhc3NhZ2UtbGlqc3Qgc3RpbCAqL1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6IDRweCAxMnB4IDE2cHg7XG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgc2Nyb2xsYmFyLWNvbG9yOiB2YXIoLS1ub3ZhLWJvcmRlcikgdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXNvdXJjZS1wYW5lbC1ib2R5Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA2cHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXNvdXJjZS1wYW5lbC1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1zb3VyY2UtcGFzc2FnZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtdXNlci1idWJibGUpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtc291cmNlLXBhc3NhZ2Utd2hlcmUge1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dC1zZWNvbmRhcnkpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1zb3VyY2UtcGFzc2FnZS10ZXh0IHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dCk7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtc291cmNlLXBhc3NhZ2Utbm9uZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dC1zZWNvbmRhcnkpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1mb2xsb3d1cHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiAwIDEycHggNHB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1mb2xsb3d1cC1jaGlwIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW5vdmEtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0KTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dCwgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1mb2xsb3d1cC1jaGlwOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1xdWljay1ob3Zlcik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLTItaG92ZXIpO1xuICBjb2xvcjogdmFyKC0tbm92YS1wcmltYXJ5KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtZm9sbG93dXAtY2hpcDphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZGViYXItaWNvbik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbm92YS1wcmltYXJ5KTtcbiAgY29sb3I6IHZhcigtLW5vdmEtcHJpbWFyeSk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWZvbGxvd3VwLWNoaXAgc3ZnIHtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWVycm9yIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgcGFkZGluZzogMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1lcnJvci1iZyk7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLWVycm9yLXRleHQpO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDhweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbXNnLWVycm9yLXJldHJ5IHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgcGFkZGluZzogNHB4IDEwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtZXJyb3ItdGV4dCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tc2ctZXJyb3ItcmV0cnk6aG92ZXIge1xuICBvcGFjaXR5OiAwLjk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW9mZmxpbmUtYmFubmVyIHtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtZXJyb3ItYmcpO1xuICBjb2xvcjogdmFyKC0tbm92YS1lcnJvci10ZXh0KTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtc2Nyb2xsLWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMnB4O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLXBhbmVsLWJnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbm92YS1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQtc2Vjb25kYXJ5KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMjBtcyBlYXNlLW91dCwgdHJhbnNmb3JtIDIwMG1zIGVhc2Utb3V0O1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5xZG5hcHJvLW5vdmEubm92YS1zaG93LXNjcm9sbC1ib3R0b20gLm5vdmEtc2Nyb2xsLWJvdHRvbSB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1zY3JvbGwtYm90dG9tOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLW5vdmEtcHJpbWFyeSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbm92YS1wcmltYXJ5KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtc2Nyb2xsLWJvdHRvbSBzdmcge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1lbXB0eS1oZXJvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAyNHB4IDE2cHg7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQtc2Vjb25kYXJ5KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmbGV4OiAxO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1lbXB0eS1oZXJvIHN2ZyB7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXByaW1hcnkpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1lbXB0eS1oZXJvIHN2ZyBwYXRoIHtcbiAgdHJhbnNmb3JtLWJveDogZmlsbC1ib3g7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtZW1wdHktaGVybyAuc3BhcmtsZS1iaWcge1xuICBhbmltYXRpb246IG5vdmEtc3BhcmtsZS1iaWcgMi4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtZW1wdHktaGVybyAuc3BhcmtsZS1zbWFsbCB7XG4gIGFuaW1hdGlvbjogbm92YS1zcGFya2xlLXNtYWxsIDEuNXMgZWFzZS1pbi1vdXQgLTAuNHMgaW5maW5pdGU7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWVtcHR5LWhlcm8tdGl0bGUge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1lbXB0eS1oZXJvLXN1YiB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE2cHg7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGZsZXg6IDE7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI2U2ZTlmZjtcbiAgYm9yZGVyOiAwLjVweCBzb2xpZCByZ2JhKDY0LCA3MywgMTU0LCAwLjEyKTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgcGFkZGluZzogMjRweCAyMHB4IDIwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGFuaW1hdGlvbjogbm92YS1wb3AtaW4gMjQwbXMgZWFzZS1vdXQgYm90aDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtd2VsY29tZS1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA4cHg7XG4gIHJpZ2h0OiA4cHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtaGVybyB7XG4gIHdpZHRoOiA1NnB4O1xuICBoZWlnaHQ6IDU2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtaGVybyBzdmcge1xuICB3aWR0aDogNTZweDtcbiAgaGVpZ2h0OiA1NnB4O1xuICBjb2xvcjogdmFyKC0tbm92YS1wcmltYXJ5KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtd2VsY29tZS1oZXJvIHN2ZyBwYXRoIHtcbiAgdHJhbnNmb3JtLWJveDogZmlsbC1ib3g7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtd2VsY29tZS1oZXJvIC5zcGFya2xlLWJpZyB7XG4gIGFuaW1hdGlvbjogbm92YS1zcGFya2xlLWJpZyAyLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLWhlcm8gLnNwYXJrbGUtc21hbGwge1xuICBhbmltYXRpb246IG5vdmEtc3BhcmtsZS1zbWFsbCAxLjVzIGVhc2UtaW4tb3V0IC0wLjRzIGluZmluaXRlO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtc3ViIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dCk7XG4gIG1heC13aWR0aDogMzIwcHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtcHJpdmFjeSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLXByaXZhY3ktaWNvbiB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtd2VsY29tZS1wcm9tcHRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDhweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtcHJvbXB0cyBxZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcCB7XG4gIGFuaW1hdGlvbjogbm92YS1wb3AtaW4gMjQwbXMgZWFzZS1vdXQgYm90aDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtd2VsY29tZS1wcm9tcHRzIHFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwOm50aC1jaGlsZCgxKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMTIwbXM7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtcHJvbXB0cyBxZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcDpudGgtY2hpbGQoMikge1xuICBhbmltYXRpb24tZGVsYXk6IDE4MG1zO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLXByb21wdHMgcWRuYXByby1zdWdnZXN0aW9uLWNoaXA6bnRoLWNoaWxkKDMpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAyNDBtcztcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtd2VsY29tZS1wcm9tcHRzIHFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwOm50aC1jaGlsZCg0KSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMzAwbXM7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtY2FyZCxcbiAgLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLXByb21wdHMgcWRuYXByby1zdWdnZXN0aW9uLWNoaXAge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxufVxuLnFkbmFwcm8tbm92YS5ub3ZhLXRoZW1lLW9yYW5nZSAubm92YS13ZWxjb21lLWNhcmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXRhZy13YXJuaW5nLWJnKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI0NSwgMTQzLCA2LCAwLjE4KTtcbn1cbi5xZG5hcHJvLW5vdmEubm92YS10aGVtZS1vcmFuZ2UgLm5vdmEtd2VsY29tZS10aXRsZSwgLnFkbmFwcm8tbm92YS5ub3ZhLXRoZW1lLW9yYW5nZSAubm92YS13ZWxjb21lLXByaXZhY3ksIC5xZG5hcHJvLW5vdmEubm92YS10aGVtZS1vcmFuZ2UgLm5vdmEtd2VsY29tZS1wcml2YWN5LWljb24ge1xuICBjb2xvcjogdmFyKC0tYy13YXJuLWFtYmVyLTYwMCk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LXdyYXBwZXIge1xuICBwYWRkaW5nOiAxMnB4IDE2cHggMTZweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LWZpZWxkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA0cHg7XG4gIHBhZGRpbmc6IDEycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtaW5wdXQtYmcpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ub3ZhLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgbWluLWhlaWdodDogODBweDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2Utb3V0LCBib3gtc2hhZG93IDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4ge1xuICBib3JkZXItY29sb3I6IHZhcigtLW5vdmEtcHJpbWFyeSk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjIpO1xufVxuLnFkbmFwcm8tbm92YS5ub3ZhLXRoZW1lLW9yYW5nZSAubm92YS1pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4ge1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgyNDUsIDE0MywgNiwgMC4yNSk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LWF0dGFjaG1lbnRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDZweDtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1hdHRhY2htZW50LXBpbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIHBhZGRpbmc6IDRweCA0cHggNHB4IDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1wYW5lbC1iZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW5vdmEtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIG1heC13aWR0aDogMjIwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dCk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LWF0dGFjaG1lbnQtcGlsbCBxZG5hcHJvLWZpbGUtaWNvbiB7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1hdHRhY2htZW50LW5hbWUge1xuICBtYXgtd2lkdGg6IDE0MHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtYXR0YWNobWVudC1yZW1vdmUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXBsYWNlaG9sZGVyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBhZGRpbmc6IDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1hdHRhY2htZW50LXJlbW92ZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNik7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC10b3Age1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIGZsZXg6IDE7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LXRvcC1pY29uIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICBjb2xvcjogdmFyKC0tbm92YS1wbGFjZWhvbGRlcik7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC10ZXh0YXJlYSB7XG4gIGZsZXg6IDE7XG4gIGJvcmRlcjogMDtcbiAgb3V0bGluZTogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHJlc2l6ZTogbm9uZTtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQpO1xuICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgbWluLWhlaWdodDogMjRweDtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LXRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXBsYWNlaG9sZGVyKTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtYm90dG9tIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tdG9wOiA0cHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgbWluLXdpZHRoOiA0MHB4O1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0KTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDhweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dCwgY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LWJ0biBzdmcge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLXVzZXItYnViYmxlKTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtYnRuW2Rpc2FibGVkXSB7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXBsYWNlaG9sZGVyKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtYnRuW2Rpc2FibGVkXTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1hY3Rpb24ge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBjb2xvciAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1hY3Rpb24ubm92YS1hY3Rpb24tc2VuZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtcHJpbWFyeSk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaW5wdXQtYWN0aW9uLm5vdmEtYWN0aW9uLXNlbmQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLXByaW1hcnktaG92ZXIpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1hY3Rpb24ubm92YS1hY3Rpb24tc2VuZDphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLXByaW1hcnktcHJlc3NlZCk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LWFjdGlvbi5ub3ZhLWFjdGlvbi1zdG9wIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLWVycm9yLXRleHQpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1hY3Rpb24ubm92YS1hY3Rpb24tc3RvcDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTk4LCA5MCwgOTAsIDAuMSk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWlucHV0LWFjdGlvbi5ub3ZhLWFjdGlvbi1zdG9wOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTk4LCA5MCwgOTAsIDAuMTgpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1hY3Rpb24ubm92YS1hY3Rpb24tbWljIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1hY3Rpb24ubm92YS1hY3Rpb24tbWljOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA2KTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtYWN0aW9uLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI0MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIG9wYWNpdHkgMTQwbXMgZWFzZTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtYWN0aW9uLWljb24gc3ZnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby1ub3ZhIC5ub3ZhLWFjdGlvbi1pY29uIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDgwbXMgZWFzZTtcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnFkbmFwcm8tbm92YSAubm92YS1pbnB1dC1oaW50IHtcbiAgcGFkZGluZzogNHB4IDEycHggMDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgY29sb3I6IHZhcigtLW5vdmEtcGxhY2Vob2xkZXIpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhpc3Rvcnkge1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogOHB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1oaXN0b3J5LXNlY3Rpb24tbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogOHB4IDhweCA0cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXRleHQtc2Vjb25kYXJ5KTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaGlzdG9yeS1zZWN0aW9uLWxhYmVsIHN2ZyB7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhpc3RvcnktaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1oaXN0b3J5LWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLW1lbnUtaG92ZXIpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1oaXN0b3J5LWl0ZW0ubm92YS1oaXN0b3J5LWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdmEtcGlubmVkLWJnKTtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaGlzdG9yeS1pdGVtLWJvZHkge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMnB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1oaXN0b3J5LWl0ZW0tdGl0bGUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0KTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhpc3RvcnktaXRlbS1zbmlwcGV0IHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dC1zZWNvbmRhcnkpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaGlzdG9yeS1pdGVtLW1ldGEge1xuICBmb250LXNpemU6IDExcHg7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0LXNlY29uZGFyeSk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhpc3RvcnktaXRlbS1waW4ge1xuICBjb2xvcjogdmFyKC0tbm92YS1wcmltYXJ5KTtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaGlzdG9yeS1pdGVtLW1lbnUtYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0LXNlY29uZGFyeSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMjBtcyBlYXNlLW91dCwgYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtaGlzdG9yeS1pdGVtOmhvdmVyIC5ub3ZhLWhpc3RvcnktaXRlbS1tZW51LWJ0bixcbi5xZG5hcHJvLW5vdmEgLm5vdmEtaGlzdG9yeS1pdGVtLW1lbnUtYnRuOmZvY3VzLXZpc2libGUsXG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhpc3RvcnktaXRlbS5ub3ZhLW1lbnUtb3BlbiAubm92YS1oaXN0b3J5LWl0ZW0tbWVudS1idG4ge1xuICBvcGFjaXR5OiAxO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1oaXN0b3J5LWl0ZW0tbWVudS1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1oaXN0b3J5LWl0ZW0tbWVudS1idG4gc3ZnIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzNnB4O1xuICByaWdodDogOHB4O1xuICB6LWluZGV4OiAxMDtcbiAgbWluLXdpZHRoOiAxNDBweDtcbiAgcGFkZGluZzogNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLXBhbmVsLWJnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbm92YS1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAycHg7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1lbnUtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA2cHggOHB4O1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbm92YS10ZXh0KTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tZW51LWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3ZhLW1lbnUtaG92ZXIpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tZW51LWl0ZW0gc3ZnIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dC1zZWNvbmRhcnkpO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbWVudS1pdGVtLm5vdmEtbWVudS1pdGVtLWRhbmdlciB7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLWVycm9yLXRleHQpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tZW51LWl0ZW0ubm92YS1tZW51LWl0ZW0tZGFuZ2VyIHN2ZyB7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLWVycm9yLXRleHQpO1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1tZW51LWl0ZW0ubm92YS1tZW51LWl0ZW0tZGFuZ2VyOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1lcnJvci1iZyk7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLWhpc3RvcnktZW1wdHkge1xuICBwYWRkaW5nOiAzMnB4IDE2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLW5vdmEtdGV4dC1zZWNvbmRhcnkpO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4vLyBNaWMgcmVjb3JkaW5nIHN0YXRlIOKAlCBwdWxzaW5nIHJlZCBib3JkZXIgb24gdGhlIGlucHV0IGZpZWxkLlxuLy8gU2hvd24gcmVnYXJkbGVzcyBvZiB3aGljaCBidXR0b24gc3RhdGUgdGhlIGNvbXBvc2VyIGlzIGluLCBzbyB0aGUgdXNlclxuLy8gYWx3YXlzIHNlZXMgXCJyZWNvcmRpbmdcIiBmZWVkYmFjayBldmVuIGFmdGVyIGludGVyaW0gdGV4dCBoYXMgYXBwZWFyZWQuXG4ucWRuYXByby1ub3ZhLm5vdmEtbWljLXJlY29yZGluZyAubm92YS1pbnB1dC1maWVsZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgxOTgsIDkwLCA5MCwgMC4yKTtcbiAgYW5pbWF0aW9uOiBub3ZhLW1pYy1ib3JkZXItcHVsc2UgMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgbm92YS1taWMtYm9yZGVyLXB1bHNlIHtcbiAgMCUsIDEwMCUgeyBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgxOTgsIDkwLCA5MCwgMC4yKTsgfVxuICA1MCUgICAgICAgeyBib3gtc2hhZG93OiAwIDAgMCA1cHggcmdiYSgxOTgsIDkwLCA5MCwgMC4wOCk7IH1cbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLW5vdmEubm92YS1taWMtcmVjb3JkaW5nIC5ub3ZhLWlucHV0LWZpZWxkIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMTk4LCA5MCwgOTAsIDAuMik7XG4gIH1cbn1cblxuLy8gVm9pY2UgYXV0by1zZW5kIGNvdW50ZG93biDigJQgc2hvd24gYWZ0ZXIgc3BlZWNoIGVuZHM7IHNlbmRzIHdoZW4gdGhlIGJhclxuLy8gZGVwbGV0ZXMgdW5sZXNzIHRoZSB1c2VyIGNsaWNrcyBDYW5jZWwgLyBlZGl0cyB0aGUgdGV4dC5cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbWljLWF1dG9zZW5kIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBtYXJnaW46IDhweCA0cHggMDtcbiAgcGFkZGluZzogN3B4IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1xdWljay1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1ub3ZhLXByaW1hcnkpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLnFkbmFwcm8tbm92YSAubm92YS1taWMtYXV0b3NlbmQtbGFiZWwge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbWljLWF1dG9zZW5kLWJhciB7XG4gIGZsZXg6IDE7XG4gIGhlaWdodDogM3B4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuMTgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1pYy1hdXRvc2VuZC1iYXI6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm92YS1wcmltYXJ5KTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gIGFuaW1hdGlvbjogbm92YS1hdXRvc2VuZC1jb3VudGRvd24gbGluZWFyIGZvcndhcmRzO1xufVxuQGtleWZyYW1lcyBub3ZhLWF1dG9zZW5kLWNvdW50ZG93biB7XG4gIGZyb20geyB0cmFuc2Zvcm06IHNjYWxlWCgxKTsgfVxuICB0byAgIHsgdHJhbnNmb3JtOiBzY2FsZVgoMCk7IH1cbn1cbi5xZG5hcHJvLW5vdmEgLm5vdmEtbWljLWF1dG9zZW5kLWNhbmNlbCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbm92YS1wcmltYXJ5KTtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4ucWRuYXByby1ub3ZhIC5ub3ZhLW1pYy1hdXRvc2VuZC1jYW5jZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjEpO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tbm92YSAubm92YS1taWMtYXV0b3NlbmQtYmFyOjphZnRlciB7IGFuaW1hdGlvbjogbm9uZTsgdHJhbnNmb3JtOiBzY2FsZVgoMC41KTsgfVxufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1ub3ZhIHtcbiAgLS1ub3ZhLXBhbmVsLWJnOiAjMWYyMDI4O1xuICAtLW5vdmEtdXNlci1idWJibGU6ICMyZTMwMzY7XG4gIC0tbm92YS10ZXh0OiAjZjBmMWYyO1xuICAtLW5vdmEtdGV4dC1zZWNvbmRhcnk6ICNhNmFhYjM7XG4gIC0tbm92YS1saW5rOiAjOGI5M2ZmO1xuICAtLW5vdmEtYm9yZGVyOiAjNTY1YjY2O1xuICAtLW5vdmEtaW5wdXQtYmc6ICMwYjBiMGQ7XG4gIC0tbm92YS1wbGFjZWhvbGRlcjogIzg5OGU5OTtcbiAgLS1ub3ZhLWRpdmlkZXI6ICMzYTNiNDI7XG4gIC0tbm92YS1xdWljay1ob3ZlcjogcmdiYSg3MCwgODIsIDI0MywgMC4yMCk7XG4gIC0tbm92YS1waW5uZWQtYmc6ICMyYTJkNTI7XG4gIC0tbm92YS1tZW51LWhvdmVyOiAjMmUzMDM2O1xuICAtLW5vdmEtZXJyb3ItYmc6ICMzYTFlMWU7XG4gIC0tbm92YS1lcnJvci10ZXh0OiAjZjg3MTcxO1xuICBib3gtc2hhZG93OiAtNHB4IDAgMjBweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbm92YS5ub3ZhLXRoZW1lLW9yYW5nZSB7XG4gIC0tbm92YS1waW5uZWQtYmc6ICMzYTJhMTI7XG4gIC0tbm92YS1xdWljay1ob3ZlcjogIzJlMzAzNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW5vdmEge1xuICAtLW5vdmEtcHJpbWFyeTogIzhiOTNmZjtcbiAgLS1ub3ZhLXByaW1hcnktaG92ZXI6ICM2ZTc4ZmY7XG4gIC0tbm92YS1wcmltYXJ5LXByZXNzZWQ6ICM1NTYwZTg7XG4gIC0tbm92YS1wcmltYXJ5LWdsb3c6IHJnYmEoMTM5LCAxNDcsIDI1NSwgMC40NSk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1ub3ZhLm5vdmEtdGhlbWUtb3JhbmdlIHtcbiAgLS1ub3ZhLXByaW1hcnk6ICNGNThGMDY7XG4gIC0tbm92YS1wcmltYXJ5LWhvdmVyOiAjZjJhNTM1O1xuICAtLW5vdmEtcHJpbWFyeS1wcmVzc2VkOiAjZDk3YzAwO1xuICAtLW5vdmEtcHJpbWFyeS1nbG93OiByZ2JhKDI0NSwgMTQzLCA2LCAwLjQ1KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW5vdmEgLm5vdmEtd2VsY29tZS1jYXJkIHtcbiAgYmFja2dyb3VuZDogIzJhMmM0ZDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuMTgpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLXRpdGxlLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbm92YSAubm92YS13ZWxjb21lLXByaXZhY3ksXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtcHJpdmFjeS1pY29uIHtcbiAgY29sb3I6ICNhNWFjZmY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1ub3ZhIC5ub3ZhLXdlbGNvbWUtcHJpdmFjeSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1ub3ZhLm5vdmEtdGhlbWUtb3JhbmdlIC5ub3ZhLXdlbGNvbWUtY2FyZCB7XG4gIGJhY2tncm91bmQ6ICMzZDJlMWE7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTEsIDE5MSwgOTIsIDAuMjIpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbm92YS5ub3ZhLXRoZW1lLW9yYW5nZSAubm92YS13ZWxjb21lLXRpdGxlLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1ub3ZhLm5vdmEtdGhlbWUtb3JhbmdlIC5ub3ZhLXdlbGNvbWUtcHJpdmFjeSwgW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbm92YS5ub3ZhLXRoZW1lLW9yYW5nZSAubm92YS13ZWxjb21lLXByaXZhY3ktaWNvbiB7XG4gIGNvbG9yOiAjZmJiZjI0O1xufVxuXG4vKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgIFBXQS1WQVJJQU5UOiBnZXNwcmVra2VubGlqc3QgTkFBU1QgZGUgY2hhdCAgW0phbiAwNC4wOC4yMDI2XVxuXG4gICBBbGxlZW4gYWN0aWVmIG1ldCBoZXQgYHB3YWAtYXR0cmlidXV0LCBkdXMgaGV0IGJhY2tvZmZpY2UtemlqcGFuZWVsIG1lcmt0XG4gICBoaWVyIG5pZXRzIHZhbjogZGFhciBrb210IGRlIGdlc2NoaWVkZW5pcyBub2cgc3RlZWRzIElOIFBMQUFUUyBWQU4gZGUgY2hhdC5cblxuICAgT25kZXIgNzY4cHggKHRlbGVmb29uKSBpcyBlciDDqcOpbiBrb2xvbSBlbiBnZWRyYWFndCBkZSB2YXJpYW50IHppY2ggZXhhY3QgYWxzXG4gICB2b29yaGVlbjogZGUgcmVjaHRlcmtvbG9tIHN0YWF0IGVyIGluIGRlIERPTSBtYWFyIHdvcmR0IG5pZXQgZ2V0b29uZCwgZW4gZGVcbiAgIGdlc2NoaWVkZW5pcy1rbm9wIGluIGRlIGtvcCBicmVuZ3QgamUgbmFhciBkZSB2b2xsZWRpZ2UgbGlqc3QuXG4gICBWYW5hZiA3NjhweCDigJQgZGV6ZWxmZGUgdGFibGV0Z3JlbnMgZGllIGRlIGFwcCBpbiBkb2N1bWVudGVuLCBwb3N0dmFrIGVuXG4gICBzdGFydHNjaGVybSBnZWJydWlrdCDigJQgc3RhYXQgZGUgbGlqc3QgcmVjaHRzIGVuIGlzIGRpZSBrbm9wIG92ZXJib2RpZy5cbiAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuLnFkbmFwcm8tbm92YVtwd2FdIC5ub3ZhLXNwbGl0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucWRuYXByby1ub3ZhW3B3YV0gLm5vdmEtc3BsaXQtY2hhdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDEgMSBhdXRvO1xuICAvKiDimqDvuI8gbWluLXdpZHRoIDAgaXMgaGllciBnZWVuIG9wc211azogem9uZGVyIGRlemUgcmVnZWwgd2VpZ2VydCBlZW4gZmxleC1raW5kXG4gICAgIHRlIGtyaW1wZW4gb25kZXIgemlqbiBpbmhvdWQgZW4gZHV3dCBlZW4gbGFuZ2UgcmVnZWwgaW4gZWVuIGNoYXRiZWwgZGVcbiAgICAgcmVjaHRlcmtvbG9tIHZhbiBoZXQgc2NoZXJtIGFmLiAqL1xuICBtaW4td2lkdGg6IDA7XG59XG4vKiBUZWxlZm9vbjogZGUgbGlqc3Qgc3RhYXQgaW4gZGUgRE9NIG1hYXIgaG9vcnQgbmlldCBpbiBiZWVsZC4gKi9cbi5xZG5hcHJvLW5vdmFbcHdhXSAubm92YS1zcGxpdC1oaXN0b3J5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5xZG5hcHJvLW5vdmFbcHdhXSAubm92YS1zcGxpdC1oaXN0b3J5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLyogMzIwcHg6IGJyZWVkIGdlbm9lZyB2b29yIGVlbiBnZXNwcmVrc3RpdGVsIG9wIHR3ZWUgcmVnZWxzLCBzbWFsIGdlbm9lZyBvbVxuICAgICAgIGRlIGNoYXQgZGUgaG9vZmRyb2wgdGUgbGF0ZW4uIEtyaW1wdCBuaWV0IG1lZSAoZmxleCAwIDAgYXV0byksIHdhbnQgZWVuXG4gICAgICAgZ2VzcHJla2xpanN0IHZhbiAxMjBweCBpcyBvbmxlZXNiYWFyLiAqL1xuICAgIGZsZXg6IDAgMCAzMjBweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLW5vdmEtZGl2aWRlcik7XG4gIH1cbiAgLyogRGUgZ2VzY2hpZWRlbmlzLWtub3AgaW4gZGUga29wIHdpanN0IG5hYXIgZWVuIGxpanN0IGRpZSBhbCB6aWNodGJhYXIgaXMuICovXG4gIC5xZG5hcHJvLW5vdmFbcHdhXSAubm92YS1oZWFkZXItYWN0aW9ucyAubm92YS1oZWFkZXItYnRuW2RhdGEtcm9sZT1cImhpc3RvcnktYnRuXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9ub3ZhLWxhdW5jaGVyL19ub3ZhLWxhdW5jaGVyLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogIHFkbmFwcm8tbm92YS1sYXVuY2hlciDigJQgY29tcGlsZWQgZnJvbSBfbm92YS1sYXVuY2hlci5zY3NzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnFkbmFwcm8tbm92YS1sYXVuY2hlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDkwMDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jLWFjdGlvbi01MDApIDAlLCB2YXIoLS1jLXB1cnBsZS01MDApIDUwJSwgdmFyKC0tYy1hY3Rpb24tNTAwKSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMjAwJTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAwJTtcbiAgICBhbmltYXRpb246IG5vdmEtbGF1bmNoZXItZ2xpZGUgOHMgZWFzZS1pbi1vdXQgaW5maW5pdGUgYWx0ZXJuYXRlO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDRweCAgOHB4ICAwIHJnYmEoNjQsIDczLCAxNTQsIDAuMjUpLFxuICAgICAgICAwIDhweCAxNnB4ICA0cHggcmdiYSgwLCAwLCAwLCAwLjE2KSxcbiAgICAgICAgMCAycHggIDRweCAgMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIHRyYW5zZm9ybSAyMDBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjgsIDAuMiwgMSksXG4gICAgICAgIGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQsXG4gICAgICAgIGJhY2tncm91bmQgMTYwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1ub3ZhLWxhdW5jaGVyIC5sYXVuY2hlci1zcGFya2xlIHtcbiAgICB3aWR0aDogNTYlO1xuICAgIGhlaWdodDogNTYlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xOCkpO1xufVxuLnFkbmFwcm8tbm92YS1sYXVuY2hlciAubGF1bmNoZXItc3BhcmtsZSBwYXRoIHtcbiAgICB0cmFuc2Zvcm0tYm94OiBmaWxsLWJveDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG59XG4ucWRuYXByby1ub3ZhLWxhdW5jaGVyIC5sYXVuY2hlci1zcGFya2xlIC5zcGFya2xlLWJpZyAgIHsgYW5pbWF0aW9uOiBub3ZhLWxhdW5jaGVyLXNwYXJrbGUtYmlnICAgMi4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTsgfVxuLnFkbmFwcm8tbm92YS1sYXVuY2hlciAubGF1bmNoZXItc3BhcmtsZSAuc3BhcmtsZS1zbWFsbCB7IGFuaW1hdGlvbjogbm92YS1sYXVuY2hlci1zcGFya2xlLXNtYWxsIDEuNXMgZWFzZS1pbi1vdXQgLTAuNHMgaW5maW5pdGU7IH1cblxuLnFkbmFwcm8tbm92YS1sYXVuY2hlcjpob3Zlcixcbi5xZG5hcHJvLW5vdmEtbGF1bmNoZXIuZm9yY2UtaG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KSBzY2FsZSgxLjA0KTtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDZweCAxMnB4IDAgcmdiYSg2NCwgNzMsIDE1NCwgMC4zMiksXG4gICAgICAgIDAgMTJweCAyMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTgpLFxuICAgICAgICAwIDRweCAgNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbn1cbi5xZG5hcHJvLW5vdmEtbGF1bmNoZXI6aG92ZXI6OmJlZm9yZSxcbi5xZG5hcHJvLW5vdmEtbGF1bmNoZXIuZm9yY2UtaG92ZXI6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNTUpO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGFuaW1hdGlvbjogbm92YS1sYXVuY2hlci1wdWxzZSAxLjhzIGVhc2Utb3V0IGluZmluaXRlO1xufVxuLnFkbmFwcm8tbm92YS1sYXVuY2hlcjphY3RpdmUsXG4ucWRuYXByby1ub3ZhLWxhdW5jaGVyLmZvcmNlLXByZXNzZWQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgwLjk3KTtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDJweCA0cHggMCByZ2JhKDY0LCA3MywgMTU0LCAwLjIyKSxcbiAgICAgICAgMCA0cHggOHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTgpLFxuICAgICAgICAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDkwbXM7XG59XG4ucWRuYXByby1ub3ZhLWxhdW5jaGVyOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuLnFkbmFwcm8tbm92YS1sYXVuY2hlcjpmb2N1cy12aXNpYmxlLFxuLnFkbmFwcm8tbm92YS1sYXVuY2hlci5mb3JjZS1mb2N1cyB7XG4gICAgb3V0bGluZTogM3B4IHNvbGlkICNmZmZmZmY7XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0zcHg7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAwIDAgM3B4IHZhcigtLWMtYWN0aW9uLTUwMCksXG4gICAgICAgIDAgMCAwIDdweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjMwKSxcbiAgICAgICAgMCA4cHggMTZweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE4KSxcbiAgICAgICAgMCAycHggIDRweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5xZG5hcHJvLW5vdmEtbGF1bmNoZXIubGF1bmNoZXItdGhlbWUtb3JhbmdlIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jLXdhcm4teWVsbG93LTUwMCkgMCUsIHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKSA1MCUsIHZhcigtLWMtd2Fybi15ZWxsb3ctNTAwKSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMjAwJTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAwJTtcbiAgICBhbmltYXRpb246IG5vdmEtbGF1bmNoZXItZ2xpZGUgOHMgZWFzZS1pbi1vdXQgaW5maW5pdGUgYWx0ZXJuYXRlO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDRweCAgOHB4IDAgcmdiYSgyNDUsIDE0MywgNiwgMC4zMCksXG4gICAgICAgIDAgOHB4IDE2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNiksXG4gICAgICAgIDAgMnB4ICA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnFkbmFwcm8tbm92YS1sYXVuY2hlci5sYXVuY2hlci10aGVtZS1vcmFuZ2U6aG92ZXIsXG4ucWRuYXByby1ub3ZhLWxhdW5jaGVyLmxhdW5jaGVyLXRoZW1lLW9yYW5nZS5mb3JjZS1ob3ZlciB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCA2cHggMTJweCAwIHJnYmEoMjQ1LCAxNDMsIDYsIDAuMzgpLFxuICAgICAgICAwIDEycHggMjJweCA2cHggcmdiYSgwLCAwLCAwLCAwLjE4KSxcbiAgICAgICAgMCA0cHggIDZweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCk7XG59XG4ucWRuYXByby1ub3ZhLWxhdW5jaGVyLmxhdW5jaGVyLXRoZW1lLW9yYW5nZTpob3Zlcjo6YmVmb3JlLFxuLnFkbmFwcm8tbm92YS1sYXVuY2hlci5sYXVuY2hlci10aGVtZS1vcmFuZ2UuZm9yY2UtaG92ZXI6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE0MywgNiwgMC41NSk7XG59XG4ucWRuYXByby1ub3ZhLWxhdW5jaGVyLmxhdW5jaGVyLXRoZW1lLW9yYW5nZTphY3RpdmUsXG4ucWRuYXByby1ub3ZhLWxhdW5jaGVyLmxhdW5jaGVyLXRoZW1lLW9yYW5nZS5mb3JjZS1wcmVzc2VkIHtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDJweCA0cHggMCByZ2JhKDI0NSwgMTQzLCA2LCAwLjI4KSxcbiAgICAgICAgMCA0cHggOHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTgpLFxuICAgICAgICAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpO1xufVxuLnFkbmFwcm8tbm92YS1sYXVuY2hlci5sYXVuY2hlci10aGVtZS1vcmFuZ2U6Zm9jdXMtdmlzaWJsZSxcbi5xZG5hcHJvLW5vdmEtbGF1bmNoZXIubGF1bmNoZXItdGhlbWUtb3JhbmdlLmZvcmNlLWZvY3VzIHtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDAgMCAzcHggdmFyKC0tYy13YXJuLXllbGxvdy02MDApLFxuICAgICAgICAwIDAgMCA3cHggcmdiYSgyNDUsIDE0MywgNiwgMC4zMiksXG4gICAgICAgIDAgOHB4IDE2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xOCksXG4gICAgICAgIDAgMnB4ICA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbm92YS1sYXVuY2hlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzU1NjBlOCAwJSwgIzM4NDJjMiA1MCUsICM1NTYwZTggMTAwJSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDIwMCU7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCA0cHggIDhweCAwIHJnYmEoNzAsIDgyLCAyNDMsIDAuMzApLFxuICAgICAgICAwIDhweCAxNnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMzApLFxuICAgICAgICAwIDJweCAgNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIwKTtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1ub3ZhLWxhdW5jaGVyOmhvdmVyLFxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW5vdmEtbGF1bmNoZXIuZm9yY2UtaG92ZXIge1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgNnB4IDEycHggMCByZ2JhKDcwLCA4MiwgMjQzLCAwLjQwKSxcbiAgICAgICAgMCAxMnB4IDIycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4zMiksXG4gICAgICAgIDAgNHB4ICA2cHggMCByZ2JhKDAsIDAsIDAsIDAuMjIpO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLW5vdmEtbGF1bmNoZXIubGF1bmNoZXItdGhlbWUtb3JhbmdlIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjRkJCRjI0IDAlLCAjZDk3YzAwIDUwJSwgI0ZCQkYyNCAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMjAwJTtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDRweCAgOHB4IDAgcmdiYSgyNTEsIDE5MSwgMzYsIDAuMzApLFxuICAgICAgICAwIDhweCAxNnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMzApLFxuICAgICAgICAwIDJweCAgNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIwKTtcbn1cblxuQGtleWZyYW1lcyBub3ZhLWxhdW5jaGVyLXNwYXJrbGUtYmlnIHtcbiAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgICA1MCUgICAgICB7IHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7IH1cbn1cbkBrZXlmcmFtZXMgbm92YS1sYXVuY2hlci1zcGFya2xlLXNtYWxsIHtcbiAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMC43KTsgfVxuICAgIDUwJSAgICAgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjI1KTsgfVxufVxuQGtleWZyYW1lcyBub3ZhLWxhdW5jaGVyLXB1bHNlIHtcbiAgICAwJSAgIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgICBvcGFjaXR5OiAwLjU1OyB9XG4gICAgNzAlICB7IHRyYW5zZm9ybTogc2NhbGUoMS41KTsgb3BhY2l0eTogMDsgfVxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7IG9wYWNpdHk6IDA7IH1cbn1cbkBrZXlmcmFtZXMgbm92YS1sYXVuY2hlci1nbGlkZSB7XG4gICAgMCUgICB7IGJhY2tncm91bmQtcG9zaXRpb246ICAgMCUgICAwJTsgfVxuICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDEwMCU7IH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucWRuYXByby1ub3ZhLWxhdW5jaGVyLFxuICAgIC5xZG5hcHJvLW5vdmEtbGF1bmNoZXIgLmxhdW5jaGVyLXNwYXJrbGUgLnNwYXJrbGUtYmlnLFxuICAgIC5xZG5hcHJvLW5vdmEtbGF1bmNoZXIgLmxhdW5jaGVyLXNwYXJrbGUgLnNwYXJrbGUtc21hbGwsXG4gICAgLnFkbmFwcm8tbm92YS1sYXVuY2hlcjpob3Zlcjo6YmVmb3JlIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9ub3ZhLW1lc3NhZ2UvX25vdmEtbWVzc2FnZS1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uge1xuICAtLW1zZy10ZXh0OiB2YXIoLS1ub3ZhLXRleHQsICMxYTFjMjApO1xuICAtLW1zZy10ZXh0LXNlY29uZGFyeTogdmFyKC0tbm92YS10ZXh0LXNlY29uZGFyeSwgIzZiNzI4MCk7XG4gIC0tbXNnLXVzZXItYnViYmxlOiB2YXIoLS1ub3ZhLXVzZXItYnViYmxlLCAjZjBmMWYyKTtcbiAgLS1tc2ctcHJpbWFyeTogdmFyKC0tbm92YS1wcmltYXJ5LCAjNDA0OTlhKTtcbiAgLS1tc2ctZXJyb3ItYmc6IHZhcigtLW5vdmEtZXJyb3ItYmcsICNmZWUzZTMpO1xuICAtLW1zZy1lcnJvci10ZXh0OiB2YXIoLS1ub3ZhLWVycm9yLXRleHQsICNjNjVhNWEpO1xuICAtLW1zZy1waW5uZWQtYmc6IHZhcigtLW5vdmEtcGlubmVkLWJnLCAjZTZlOWZmKTtcbiAgLS1tc2ctYm9yZGVyOiB2YXIoLS1ub3ZhLWJvcmRlciwgI2M0YzdjYyk7XG4gIC0tbXNnLWxpbms6IHZhcigtLW5vdmEtbGluaywgIzQwNDk5YSk7XG4gIC0tbXNnLXF1aWNrLWhvdmVyOiB2YXIoLS1ub3ZhLXF1aWNrLWhvdmVyLCAjZjBmMWYyKTtcbiAgLS1tc2ctZGl2aWRlcjogdmFyKC0tbm92YS1kaXZpZGVyLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctdXNlciB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICBtYXgtd2lkdGg6IDg1JTtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLW1zZy11c2VyLWJ1YmJsZSk7XG4gIGNvbG9yOiB2YXIoLS1tc2ctdGV4dCk7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xufVxuXG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGdhcDogMTJweDtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1tc2ctYWktYm9keSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGNvbG9yOiB2YXIoLS1tc2ctdGV4dCk7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1tc2ctYWktYm9keSBwIHtcbiAgbWFyZ2luOiAwIDAgOHB4O1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLW1zZy1haS1ib2R5IHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtbXNnLWFpLWJvZHkgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1tc2ctYWktYm9keSBhIHtcbiAgY29sb3I6IHZhcigtLW1zZy1saW5rKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtbXNnLWFpLWJvZHkgdWwsIC5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1tc2ctYWktYm9keSBvbCB7XG4gIG1hcmdpbjogMCAwIDhweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLW1zZy1haS1ib2R5IGxpICsgbGkge1xuICBtYXJnaW4tdG9wOiA0cHg7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtbXNnLWFpLWJvZHkgY29kZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW1zZy11c2VyLWJ1YmJsZSk7XG4gIHBhZGRpbmc6IDFweCA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDEycHg7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtc291cmNlLXBpbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDRweCA4cHggNHB4IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbXNnLXVzZXItYnViYmxlKTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1tc2ctdGV4dC1zZWNvbmRhcnkpO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1zb3VyY2UtcGlsbDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW1zZy1xdWljay1ob3Zlcik7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtc291cmNlLXBpbGwgcWRuYXByby1pY29uLFxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLXNvdXJjZS1waWxsIC5ub3ZhLXNvdXJjZS1pY29uIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtc291cmNlLXN0YWNrIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctcmlnaHQ6IDZweDtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1zb3VyY2Utc3RhY2staXRlbSB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tbXNnLXVzZXItYnViYmxlKTtcbiAgYm9yZGVyOiAwLjVweCBzb2xpZCB2YXIoLS1tc2ctZGl2aWRlcik7XG4gIG1hcmdpbi1yaWdodDogLTZweDtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1mb2xsb3d1cHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiAwIDAgNHB4O1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLWZvbGxvd3VwLWNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgY29sb3I6IHZhcigtLW1zZy10ZXh0KTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dCwgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLWZvbGxvd3VwLWNoaXA6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1tc2ctcXVpY2staG92ZXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLW1zZy1wcmltYXJ5KTtcbiAgY29sb3I6IHZhcigtLW1zZy1wcmltYXJ5KTtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1tc2ctYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtYWN0aW9uLWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW1zZy10ZXh0LXNlY29uZGFyeSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA0cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQsIGNvbG9yIDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLWFjdGlvbi1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1tc2ctdXNlci1idWJibGUpO1xuICBjb2xvcjogdmFyKC0tbXNnLXRleHQpO1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLWFjdGlvbi1idG4gcWRuYXByby1pY29uIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1hY3Rpb24tYnRuLm5vdmEtYWN0aW9uLWFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctcHJpbWFyeSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLW1zZy1waW5uZWQtYmcpO1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLWFjdGlvbi1idG46Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLWFjdGlvbi1idG46Zm9jdXMtdmlzaWJsZSxcbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1hY3Rpb24tYnRuLmZvcmNlLWZvY3VzLFxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLWZvbGxvd3VwLWNoaXA6Zm9jdXMtdmlzaWJsZSxcbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1haSAubm92YS1mb2xsb3d1cC1jaGlwLmZvcmNlLWZvY3VzLFxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWFpIC5ub3ZhLXNvdXJjZS1waWxsOmZvY3VzLXZpc2libGUsXG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctYWkgLm5vdmEtc291cmNlLXBpbGwuZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tbXNnLXByaW1hcnkpO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xufVxuXG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZXJyb3Ige1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBwYWRkaW5nOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1tc2ctZXJyb3ItYmcpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBjb2xvcjogdmFyKC0tbXNnLWVycm9yLXRleHQpO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBnYXA6IDhweDtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1lcnJvciAubm92YS1tc2ctZXJyb3ItcmV0cnkge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBwYWRkaW5nOiA0cHggMTBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbXNnLWVycm9yLXRleHQpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1lcnJvciAubm92YS1tc2ctZXJyb3ItcmV0cnk6aG92ZXIge1xuICBvcGFjaXR5OiAwLjk7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZXJyb3IgLm5vdmEtbXNnLWVycm9yLXJldHJ5OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1lcnJvciAubm92YS1tc2ctZXJyb3ItcmV0cnk6Zm9jdXMtdmlzaWJsZSxcbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1lcnJvciAubm92YS1tc2ctZXJyb3ItcmV0cnkuZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tbXNnLXByaW1hcnkpO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xufVxuXG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctdGhpbmtpbmcge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIGhlaWdodDogMzZweDtcbiAgcGFkZGluZzogMDtcbiAgY29sb3I6IHZhcigtLW1zZy10ZXh0LXNlY29uZGFyeSk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctdGhpbmtpbmcgLm5vdmEtdGhpbmtpbmctaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctdGhpbmtpbmcgLm5vdmEtdGhpbmtpbmctc3BhcmtsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgbWFyZ2luOiAtN3B4IDAgMCAtN3B4O1xuICBjb2xvcjogdmFyKC0tbXNnLXByaW1hcnkpO1xuICBhbmltYXRpb246IG5vdmEtbXNnLXNwYXJrbGUtb3JiaXQgMi43cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy10aGlua2luZyAubm92YS10aGlua2luZy1zcGFya2xlOm50aC1jaGlsZCgyKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuOXM7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctdGhpbmtpbmcgLm5vdmEtdGhpbmtpbmctc3BhcmtsZTpudGgtY2hpbGQoMykge1xuICBhbmltYXRpb24tZGVsYXk6IC0xLjhzO1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLXRoaW5raW5nIC5ub3ZhLXRoaW5raW5nLXNwYXJrbGUgc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy10aGlua2luZyAubm92YS10aGlua2luZy1zcGFya2xlIHtcbiAgY29sb3I6ICNmMGYxZmY7XG59XG5cbkBrZXlmcmFtZXMgbm92YS1tc2ctc3BhcmtsZS1vcmJpdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTFweCkgc2NhbGUoMC40NSk7XG4gICAgb3BhY2l0eTogMC4zNTtcbiAgfVxuICAyNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDExcHgsIDApIHNjYWxlKDAuODUpO1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMXB4KSBzY2FsZSgxLjIpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTFweCwgMCkgc2NhbGUoMC44NSk7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTFweCkgc2NhbGUoMC40NSk7XG4gICAgb3BhY2l0eTogMC4zNTtcbiAgfVxufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWZpbGUge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDE2cHg7XG4gIHBhZGRpbmc6IDEycHggMTZweDtcbiAgYmFja2dyb3VuZDogI2U2ZTlmZjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZmlsZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1maWxlOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lkZWJhci1pY29uKTtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1maWxlOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1maWxlOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1maWxlLmZvcmNlLWZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLW1zZy1wcmltYXJ5KTtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1maWxlIC5ub3ZhLW1zZy1maWxlLWljb24td3JhcCB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZmlsZSAubm92YS1tc2ctZmlsZS1tZXRhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAwO1xuICBmbGV4OiAxO1xuICBnYXA6IDJweDtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1maWxlIC5ub3ZhLW1zZy1maWxlLW5hbWUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tbXNnLXRleHQpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1maWxlIC5ub3ZhLW1zZy1maWxlLWluZm8ge1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogdmFyKC0tbXNnLXRleHQtc2Vjb25kYXJ5KTtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1maWxlIC5ub3ZhLW1zZy1maWxlLW9wZW4ge1xuICBmbGV4LXNocmluazogMDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWZpbGUgLm5vdmEtbXNnLWZpbGUtb3BlbiBxZG5hcHJvLWljb24ge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1maWxlIC5ub3ZhLW1zZy1maWxlLWRvd25sb2FkIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWZpbGUgLm5vdmEtbXNnLWZpbGUtZG93bmxvYWQgcWRuYXByby1pY29uIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4ucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZmlsZSAubm92YS1tc2ctZmlsZS1kb3dubG9hZCBxZG5hcHJvLWljb24gc3ZnIHtcbiAgZmlsbDogdmFyKC0tYy1wdXJwbGUtNTAwKSAhaW1wb3J0YW50O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZmlsZSB7XG4gIGJhY2tncm91bmQ6ICMyYTJjNWE7XG4gIGJvcmRlci1jb2xvcjogIzZiNzVkNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1maWxlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzMzM2E3Yjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLW5vdmEtbWVzc2FnZS5ub3ZhLW1zZy1maWxlOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICMyNTJiNWU7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1ub3ZhLW1lc3NhZ2Uubm92YS1tc2ctZmlsZSAubm92YS1tc2ctZmlsZS1vcGVuLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tbm92YS1tZXNzYWdlLm5vdmEtbXNnLWZpbGUgLm5vdmEtbXNnLWZpbGUtb3BlbiBxZG5hcHJvLWljb24ge1xuICBjb2xvcjogI2IzYmJmMjtcbiAgYm9yZGVyLWNvbG9yOiAjNmI3NWQ2O1xufVxuIiwiLy8gYmFja29mZmljZTIvc2Nzcy92MS9jb21wb25lbnRzL19udW1iZXItaW5kaWNhdG9yLWJhZGdlLnNjc3Ncbi8vXG4vLyBxZG5hcHJvLW51bWJlci1pbmRpY2F0b3ItYmFkZ2Ug4oCUIGRpc3BsYXkgY29tcG9uZW50IGZvciBjb3VudGVycy9pbmRpY2F0b3JzLlxuLy8gRmlnbWEgc291cmNlOiBRRE5BLVBSTywgY29tcG9uZW50IHNldCBcIk51bWJlciBpbmRpY2F0b3JcIiAobm9kZUlkIDEzOTg6MzIxMTYpLlxuLy9cbi8vIEhleCB2YWx1ZXMgYXJlIGlubGluZSB3aXRoIHRoZSB0b2tlbiBuYW1lIGFzIGEgY29tbWVudC4gU2FuZGVyIGNhbiBsYXRlclxuLy8gZG8gYSBzZWFyY2gtYW5kLXJlcGxhY2UgdG8gdmFyaWFibGVzIG9uY2UgdGhlIGZpZ21hLXRvLXFkbmEtdG9rZW5zIG1vZHVsZXNcbi8vIGFyZSBnZW5lcmF0ZWQgKFRleHQvSGVhZGVyLCBTdXJmYWNlL0JhdGNoL0JhdGNoLVByaW1hcnktcHVycGxlLCBldGMuKS5cblxuLnFkbmFwcm8tbnVtYmVyLWluZGljYXRvci1iYWRnZSB7XG4gICAgLy8gLS0tIEJhc2UgKHNoYXJlZCBieSBhbGwgdmFyaWFudHMpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC8vIFBpbGwgc2hhcGU6IGFzIHJvdW5kIGFzIHBvc3NpYmxlIHVudGlsIHRoZSB0ZXh0IHB1c2hlcyBpdCB3aWRlci5cbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuXG4gICAgLy8gQWx3YXlzIHJlc2VydmUgdGhlIGJvcmRlciBzbyB2YXJpYW50cyBXSVRIIGEgYm9yZGVyIChvdXRsaW5lZCkgZG9uJ3RcbiAgICAvLyBjYXVzZSBhIGxheW91dCBzaGlmdCB3aGVuIHlvdSBzd2l0Y2ggY29sb3VycyBkeW5hbWljYWxseS5cbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgIC8vIEhvcml6b250YWwgcGFkZGluZyBlcXVhbCBldmVyeXdoZXJlLiBzZHMtc2l6ZS1zcGFjZS0xMDAgPSA0cHguXG4gICAgcGFkZGluZzogMCA0cHg7XG5cbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmOyAgLy8gVHlwZS9Gb250IEZhbWlseS9wcmltYXJ5XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbGluZS1oZWlnaHQ6IDE7ICAvLyBzaXplcyBvdmVycmlkZTsgYmFzZSBwcmV2ZW50cyBhIHJlbmRlcmluZyBnbGl0Y2guXG5cbiAgICAvLyAtLS0gRm9jdXMgKG9ubHkgdmlzaWJsZSB3aGVuIHRoZSBjb25zdW1lciBzZXRzIHRhYmluZGV4KSAtLS0tLS0tLS0tLS0tLVxuICAgIC8vIFN5c3RlbS13aWRlIHBhdHRlcm4gW0ZJR01BIHZlcmlmaWVkXSBub2RlIDg3NzI6MTg4NzYwLlxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jLXB1cnBsZS01MDApOyAgLy8gJGJvcmRlci1hY3Rpb24tcHVycGxlLW91dGxpbmVkXG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gICAgfVxuXG4gICAgLy8gLS0tIFNpemVzIChoZWlnaHQgKyBmb250LXNpemUgKyBsaW5lLWhlaWdodCkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBGaWdtYSByZXBvcnRzIGhlaWdodHMgMjBweCAoeHMpIGFuZCAyNHB4IChzbS9tZC9sZykuIFdlIHVzZVxuICAgIC8vIG1pbi13aWR0aCBlcXVhbCB0byBoZWlnaHQgc28gc2luZ2xlLWRpZ2l0IGNvbnRlbnQgKGUuZy4gXCIxXCIpXG4gICAgLy8gc3RheXMgY2lyY3VsYXIgYW5kIG11bHRpLWRpZ2l0IGNvbnRlbnQgKFwiOTlcIiwgXCI5OTlcIikgc3RyZXRjaGVzIHRoZSBwaWxsLlxuXG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLXNpemUteHMge1xuICAgICAgICBtaW4td2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4OyAgICAgLy8gRm9udCBzaXplL0JvZHkvZXh0cmEtc21hbGwtMTBcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7ICAgLy8gTGluZSBIZWlnaHQvQm9keS9Cb2R5IFNtYWxsIOKAlCBmb3JjZXMgY29udGVudCB3aXRoaW4gMjBweFxuICAgICAgICAvLyBFeHRyYSBzbWFsbCBoYXMgb3BhY2l0eS05MCBvbiB0aGUgdGV4dCBpbiBGaWdtYS4gU21hbGwgdmlzdWFsIG51YW5jZS5cbiAgICAgICAgb3BhY2l0eTogMC45O1xuICAgIH1cblxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1zaXplLXNtIHtcbiAgICAgICAgbWluLXdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDsgICAgIC8vIEZvbnQgc2l6ZS9Cb2R5L3NtYWxsLTEyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OyAgIC8vIExpbmUgSGVpZ2h0L0JvZHkvQm9keSBTbWFsbFxuICAgIH1cblxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1zaXplLW1kIHtcbiAgICAgICAgbWluLXdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDsgICAgIC8vIEZvbnQgc2l6ZS9Cb2R5L0ludGVyLW1lZGl1bS0xNFxuICAgICAgICBsaW5lLWhlaWdodDogMjRweDsgICAvLyBMaW5lIEhlaWdodC9Cb2R5L0JvZHkgTWVkaXVtLUNhcHRpb25cbiAgICB9XG5cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2Utc2l6ZS1sZyB7XG4gICAgICAgIG1pbi13aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7ICAgICAvLyBGb250IHNpemUvQm9keS9tZWRpdW0tMTZcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7ICAgLy8gTGluZSBIZWlnaHQvQm9keS9Cb2R5IE1lZGl1bVxuICAgIH1cblxuICAgIC8vIC0tLSBXZWlnaHRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2Utd2VpZ2h0LXJlZ3VsYXIgeyBmb250LXdlaWdodDogNDAwOyB9XG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLXdlaWdodC1tZWRpdW0gIHsgZm9udC13ZWlnaHQ6IDUwMDsgfSAgLy8gRmlnbWEgZGVmYXVsdFxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS13ZWlnaHQtYm9sZCAgICB7IGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuICAgIC8vIC0tLSBDb2xvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICAvLyBQcmltYXJ5IFB1cnBsZSDigJQgZGFyayBwdXJwbGUgYmcsIHdoaXRlIHRleHQuXG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLXByaW1hcnkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApOyAgLy8gU3VyZmFjZS9CYXRjaC9CYXRjaC1QcmltYXJ5LXB1cnBsZVxuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7ICAgICAgICAgICAgIC8vIFRleHQvT24tYWN0aW9uXG4gICAgfVxuXG4gICAgLy8gT3V0bGluZSDigJQgbGlnaHQgcHVycGxlIGJnICsgcHVycGxlIGJvcmRlciArIHB1cnBsZSB0ZXh0LlxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1vdXRsaW5lZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU5ZmY7ICAvLyBTdXJmYWNlL0J1dHRvbnMvU2Vjb25kYXJ5LXB1cnBsZVxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7ICAgICAgLy8gQm9yZGVyL0FjdGlvbi1QdXJwbGUtT3V0bGluZWRcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7ICAgICAgICAgICAgIC8vIFRleHQvSGVhZGVyXG4gICAgfVxuXG4gICAgLy8gUHVycGxlIG5vIG91dGxpbmUg4oCUIGxpZ2h0IHB1cnBsZSBiZywgcHVycGxlIHRleHQgKG5vIGJvcmRlcikuXG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLXN1YnRsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU5ZmY7ICAvLyBTdXJmYWNlL0J1dHRvbnMvU2Vjb25kYXJ5LXB1cnBsZVxuICAgICAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTsgICAgICAgICAgICAgLy8gVGV4dC9IZWFkZXJcbiAgICB9XG5cbiAgICAvLyBUcmFuc3BhcmVudCBncmV5IOKAlCBzZW1pLXRyYW5zcGFyZW50IGdyZXkgYmcsIGdyZXkgdGV4dC5cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2UtbXV0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmI3MjgwNGQ7ICAvLyBUcmFuc3BhcmVudC9UcmFucy01MDAtR3JleS0zMCUgKDMwJSBhbHBoYSlcbiAgICAgICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDApOyAgICAgICAgICAgICAgIC8vIFRleHQvQm9keSBTZWNvbmRhcnlcbiAgICB9XG5cbiAgICAvLyBObyBCRyBHcmV5IOKAlCBubyBiYWNrZ3JvdW5kLCBncmV5IHRleHQgKG1pbmltYWwpLlxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1naG9zdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCk7ICAvLyBUZXh0L0JvZHkgU2Vjb25kYXJ5XG4gICAgfVxuXG4gICAgLy8gTm8gQkcgUHVycGxlIOKAlCBubyBiYWNrZ3JvdW5kLCBwdXJwbGUgdGV4dC5cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2UtZ2hvc3QtcHVycGxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApOyAgLy8gVGV4dC9IZWFkZXJcbiAgICB9XG5cbiAgICAvLyBBbGVydCDigJQgc29saWQgcmVkIHN1cmZhY2UsIHdoaXRlIHRleHQuIFVzZWQgZm9yIG5vdGlmaWNhdGlvbiBjb3VudHNcbiAgICAvLyBhbmQgZXJyb3IgaW5kaWNhdG9ycyAocmVwbGFjZXMgdGhlIGlubGluZSBgLm5hdi1pdGVtLWJhZGdlYCByZWQgdXNlZFxuICAgIC8vIGluIHRoZSBuYXYtcmFpbCkuIFBhaXJzIG5hdHVyYWxseSB3aXRoIHRoZSBgZG90YCBtb2RlIGJlbG93LlxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1hbGVydCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtd2Fybi1yZWQtNTAwKTsgIC8vIFRhaWx3aW5kIHJlZC02MDAg4oCUIG1hdGNoZXMgdGhlIG5hdi1yYWlsIGJhZGdlXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgICB9XG5cbiAgICAvLyBPbi1wcmltYXJ5IOKAlCBzaXRzIG9uIGEgcHJpbWFyeS1wdXJwbGUgYnV0dG9uIHN1cmZhY2UuXG4gICAgLy8gRGVlcCBwcmVzc2VkLXB1cnBsZSBiZywgbm8gYm9yZGVyLlxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1vbi1wcmltYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNzAwKTsgIC8vIFN1cmZhY2UvQnV0dG9ucy9BY3Rpb24tUHJlc3NlZCAoZGFya2VzdCBicmFuZClcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pOyAgICAgICAgICAgICAvLyBUZXh0L09uLWFjdGlvblxuICAgIH1cblxuICAgIC8vIC0tLSBTZW1hbnRpYyBzdGF0dXMgY29sb3JzIChtaXJyb3IgdGhlIHYxIHRhZyBza2lucykgLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gTGlnaHQgdGludCBiZyArIGRhcmsgcmVhZGFibGUgdGV4dCArIG1hdGNoaW5nIGJvcmRlciwgc28gYSBudW1lcmljXG4gICAgLy8gY291bnRlciBjYW4gY2FycnkgYSBncmVlbi95ZWxsb3cvcmVkIHN0YXR1cyB0aGUgc2FtZSB3YXkgYSB0YWcgZG9lcy5cbiAgICAvLyBWYWx1ZXMgY29waWVkIHZlcmJhdGltIGZyb20gJHRhZ3Mtc2tpbnMgaW4gY29tcG9uZW50cy92MS90YWdzLnNjc3MuXG4gICAgLy8gU29mdCBib3JkZXJzOiB0aGUgbGlnaHRlciB0YWcgXCJmaWxsZWQtYmFzZVwiIHRpbnQgaW5zdGVhZCBvZiB0aGUgaGFyZFxuICAgIC8vIFwiYm9yZGVyXCIgdG9uZSwgc28gdGhlIGNvbG91ciB2ZXJzaW9ucyByZWFkIGdlbnRsZXIgKEtpbSwgMjAuMDcuMjAyNikuXG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLWdyZWVuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1jaGlwLWdyZWVuLWJnKTsgIC8vIHRhZyBncmVlbiAvIGJhc2VcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWNoaXAtZ3JlZW4tMi1iZyk7ICAgICAgLy8gdGFnIGdyZWVuIC8gZmlsbGVkLWJhc2UgKHNvZnQpXG4gICAgICAgIGNvbG9yOiAjMmY1ZDRhOyAgICAgICAgICAgICAvLyB0YWcgZ3JlZW4gLyB0ZXh0XG4gICAgfVxuXG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLXllbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpOyAgLy8gdGFnIHllbGxvdyAvIGJhc2VcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWNoaXAteWVsbG93LTItYmcpOyAgICAgIC8vIHRhZyB5ZWxsb3cgLyBmaWxsZWQtYmFzZSAoc29mdClcbiAgICAgICAgY29sb3I6ICM2NTU1MjI7ICAgICAgICAgICAgIC8vIHRhZyB5ZWxsb3cgLyB0ZXh0XG4gICAgfVxuXG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLXJlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7ICAvLyB0YWcgcmVkIC8gYmFzZVxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtY2hpcC1yZWQtMi1iZyk7ICAgICAgLy8gdGFnIHJlZCAvIGZpbGxlZC1iYXNlIChzb2Z0KVxuICAgICAgICBjb2xvcjogIzYzMzAzMDsgICAgICAgICAgICAgLy8gdGFnIHJlZCAvIHRleHRcbiAgICB9XG5cbiAgICAvLyBCb3JkZXJsZXNzIG1vZGlmaWVyIOKAlCBkcm9wcyB0aGUgYm9yZGVyIG9uIGFueSBjb2xvdXIgKGtlcHQgdHJhbnNwYXJlbnQgc29cbiAgICAvLyB0aGUgcmVzZXJ2ZWQgMXB4IG5ldmVyIHNoaWZ0cyBsYXlvdXQpLiBQbGFjZWQgbGFzdCBzbyBpdCB3aW5zIG92ZXIgdGhlXG4gICAgLy8gY29sb3VyIHZhcmlhbnRzIGF0IGVxdWFsIHNwZWNpZmljaXR5LlxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1ib3JkZXJsZXNzIHsgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBEb3QgbW9kZSDigJQgc21hbGwgcm91bmQgbm90aWZpY2F0aW9uIGRvdCwgbm8gY29udGVudCBzaG93bi5cbi8vICBTaXplLWF3YXJlOiB4cz02cHgsIHNtPThweCAoZGVmYXVsdCksIG1kPTEwcHgsIGxnPTEycHguXG4vLyAgT3ZlcnJpZGVzIHRoZSBwaWxsIG1pbi13aWR0aCArIHBhZGRpbmcgc28gdGhlIGJhZGdlIGNvbGxhcHNlc1xuLy8gIHRvIGEgcGVyZmVjdCBjaXJjbGUuIGBmb250LXNpemU6IDBgIGhpZGVzIGFueSBhY2NpZGVudGFsIGNvbnRlbnQuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5xZG5hcHJvLW51bWJlci1pbmRpY2F0b3ItYmFkZ2UubnVtYmVyLWluZGljYXRvci1iYWRnZS1kb3Qge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGJvcmRlci13aWR0aDogMDtcblxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1zaXplLXhzIHsgd2lkdGg6IDZweDsgIGhlaWdodDogNnB4OyAgbWluLXdpZHRoOiA2cHg7ICB9XG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLXNpemUtc20geyB3aWR0aDogOHB4OyAgaGVpZ2h0OiA4cHg7ICBtaW4td2lkdGg6IDhweDsgIH1cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2Utc2l6ZS1tZCB7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7IG1pbi13aWR0aDogMTBweDsgfVxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1zaXplLWxnIHsgd2lkdGg6IDEycHg7IGhlaWdodDogMTJweDsgbWluLXdpZHRoOiAxMnB4OyB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIERhcmstbW9kZSBvdmVycmlkZXNcbi8vICBbSU5GRVJSRURdIOKAlCBmdWxsIGRhcmstdG9rZW4gc2V0IGZvciBOdW1iZXIgaW5kaWNhdG9yIGlzIG5vdCB5ZXRcbi8vICBwdWJsaXNoZWQgaW4gRmlnbWEuIE1hcHBpbmdzIGJlbG93IGZvbGxvdyB0aGUgc2FtZSBwYXR0ZXJuIHRoZVxuLy8gIFtGSUdNQSB2ZXJpZmllZCDigJQgZGFyayB0b2tlbnMgcmUtZmV0Y2hlZCBmcm9tIG5vZGUgMTM5ODozMjExNiBhZnRlclxuLy8gIEtpbSBmbGFnZ2VkIHRoZSBpbml0aWFsIHBhc3Mgd2FzIHdyb25nLiBUaGUgc3VycHJpc2U6IEJhdGNoLVByaW1hcnlcbi8vICBpbiBkYXJrIG1vZGUgaXMgI2M0YzdjYyAobGlnaHQgZ3JleSksIE5PVCBhIGRlZXBlciBwdXJwbGUuXVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbnVtYmVyLWluZGljYXRvci1iYWRnZSB7XG4gICAgLy8gUHJpbWFyeSDigJQgbGlnaHQtZ3JleSBuZXV0cmFsIHdpdGggd2hpdGUgdGV4dCAoRmlnbWEgY2hvaWNlOlxuICAgIC8vIHRoZSBcInByaW1hcnlcIiBpbmRpY2F0b3IgaW52ZXJ0cyB0byBhIHBhbGUgY2hpcCBvbiBkYXJrIGJnXG4gICAgLy8gaW5zdGVhZCBvZiBnb2luZyBkZWVwZXIgcHVycGxlKVxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1wcmltYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2M0YzdjYzsgICAvLyBTdXJmYWNlL0JhdGNoL0JhdGNoLVByaW1hcnktcHVycGxlIChkYXJrKVxuICAgICAgICBjb2xvcjogI2ZmZmZmZjsgICAgICAgICAgICAgIC8vIFRleHQvT24tYWN0aW9uXG4gICAgfVxuXG4gICAgLy8gT3V0bGluZWQg4oCUIG5lYXItYmxhY2sgc3VyZmFjZSArIG1pZC1ncmV5IGJvcmRlciArIGxpZ2h0IHRleHRcbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2Utb3V0bGluZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGIwYjBkOyAgIC8vIFN1cmZhY2UvQnV0dG9ucy9TZWNvbmRhcnktcHVycGxlIChkYXJrKVxuICAgICAgICBib3JkZXItY29sb3I6ICM1NjViNjY7ICAgICAgIC8vIEJvcmRlci9BY3Rpb24tUHVycGxlLU91dGxpbmVkIChkYXJrKVxuICAgICAgICBjb2xvcjogI2YwZjFmMjsgICAgICAgICAgICAgIC8vIFRleHQvSGVhZGVyIChkYXJrKVxuICAgIH1cblxuICAgIC8vIFN1YnRsZSDigJQgc2FtZSBkYXJrIHN1cmZhY2UsIGxpZ2h0IHRleHQsIG5vIGJvcmRlclxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1zdWJ0bGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGIwYjBkOyAgIC8vIFN1cmZhY2UvQnV0dG9ucy9TZWNvbmRhcnktcHVycGxlIChkYXJrKVxuICAgICAgICBjb2xvcjogI2YwZjFmMjsgICAgICAgICAgICAgIC8vIFRleHQvSGVhZGVyIChkYXJrKVxuICAgIH1cblxuICAgIC8vIE11dGVkIOKAlCB0cmFuc3BhcmVudCBncmV5IHRpbnQgKHRva2VuIGlzIG1vZGUtYWdub3N0aWMpXG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLW11dGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzZiNzI4MDMzOyAvLyBUcmFuc3BhcmVudC9UcmFucy01MDAtR3JleS0yMCVcbiAgICAgICAgY29sb3I6ICNhNmFhYjM7ICAgICAgICAgICAgICAvLyBUZXh0L0JvZHkgU2Vjb25kYXJ5IChkYXJrKVxuICAgIH1cblxuICAgIC8vIEdob3N0IOKAlCBubyBmaWxsLCBkaW1tZXIgYm9keS1zZWNvbmRhcnkgdG9uZVxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1naG9zdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogI2E2YWFiMzsgICAgICAgICAgICAgIC8vIFRleHQvQm9keSBTZWNvbmRhcnkgKGRhcmspXG4gICAgfVxuXG4gICAgLy8gR2hvc3QtcHVycGxlIOKAlCBubyBmaWxsLCBoZWFkZXIgdG9uZSAoZmxpcHBlZCB0byBsaWdodCBpbiBkYXJrKVxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS1naG9zdC1wdXJwbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICNmMGYxZjI7ICAgICAgICAgICAgICAvLyBUZXh0L0hlYWRlciAoZGFyaylcbiAgICB9XG5cbiAgICAvLyBBbGVydCDigJQgc2xpZ2h0bHkgbGlnaHRlciByZWQgb24gZGFyayBiYWNrZ3JvdW5kIGZvciB2aXN1YWwgbGlmdC5cbiAgICAvLyBbSU5GRVJSRURdIHVudGlsIEZpZ21hIHNoaXBzIHRoZSBkYXJrIHRva2VuIHNldC5cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2UtYWxlcnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWY0NDQ0OyAgLy8gVGFpbHdpbmQgcmVkLTUwMCDigJQgc29mdGVyIG9uIGRhcmsgc3VyZmFjZXNcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgLy8gU2VtYW50aWMgc3RhdHVzIGNvbG9ycyDigJQgW0lORkVSUkVEXSBkYXJrIHRyZWF0bWVudDogdHJhbnNsdWNlbnQgdGludCBvZlxuICAgIC8vIHRoZSBodWUgKyBsaWdodCByZWFkYWJsZSB0ZXh0ICsgc2F0dXJhdGVkIGJvcmRlci4gS2VwdCBsZWdpYmxlIG9uIHRoZVxuICAgIC8vIGRhcmsgc3VyZmFjZSB1bnRpbCBGaWdtYSBzaGlwcyBkYXJrIHRva2VucyBmb3IgdGhlc2Ugc2tpbnMuXG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLWdyZWVuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQyOGI2ZTMzO1xuICAgICAgICBib3JkZXItY29sb3I6ICM4YmVjYzU2NjsgICAvLyBzb2Z0LCBsb3ctY29udHJhc3QgYm9yZGVyXG4gICAgICAgIGNvbG9yOiAjYTdlOGNkO1xuICAgIH1cblxuICAgICYubnVtYmVyLWluZGljYXRvci1iYWRnZS15ZWxsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3ZjJlMzM7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ZkZTU5NDY2OyAgIC8vIHNvZnQsIGxvdy1jb250cmFzdCBib3JkZXJcbiAgICAgICAgY29sb3I6ICNmMGRjOTU7XG4gICAgfVxuXG4gICAgJi5udW1iZXItaW5kaWNhdG9yLWJhZGdlLXJlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjNjVhNWEzMztcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZmJhYWFhNjY7ICAgLy8gc29mdCwgbG93LWNvbnRyYXN0IGJvcmRlclxuICAgICAgICBjb2xvcjogI2Y2YzBjMDtcbiAgICB9XG5cbiAgICAmLm51bWJlci1pbmRpY2F0b3ItYmFkZ2UtYm9yZGVybGVzcyB7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tcGhvdG8tZ2FsbGVyeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgRmFzZSAxYSDigJQgbmV3LCBDTEVBTiBwaG90byBnYWxsZXJ5IGdyaWQgKyBsaWdodGJveC5cbi8vICBTZWUgZG9jcy9HQUxMRVJZLUJVSUxELVBMQU4ubWQuIE5ldmVyIHRvdWNoZXMvZXh0ZW5kcyB0aGUgbGVnYWN5XG4vLyAgcWRuYS13aWRnZXQtcGhvdG8tZ2FsbGVyeSAoaG9tZXBhZ2UpIG9yIGl0cyBTQ1NTIOKAlCBvbmx5IHRoZSBsaWdodGJveFxuLy8gIFNUUlVDVFVSRSB3YXMgbW9kZWxlZCBvbiB0aGF0IHdpZGdldCAoSmFuJ3MgcmV1c2UtZGlzY2lwbGluZSBydWxlKS5cbi8vXG4vLyAgUmVzcG9uc2l2ZSB0aHVtYm5haWwgZ3JpZCArIHFkbmFwcm8tbW9kYWwtYmFzZWQgbGlnaHRib3ggd2l0aFxuLy8gIHByZXYvbmV4dCwgc2xpZGVzaG93LCBkb3dubG9hZCwgYW5kIG9wdGlvbmFsIGJ1bGstc2VsZWN0IGNoZWNrYm94ZXMuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxucWRuYXByby1waG90by1nYWxsZXJ5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vIEZpeGVkIHRpbGUgc2l6ZSDigJQgb3ZlcnJpZGUgcGVyIGhvc3QgaWYgYSBkaWZmZXJlbnQgc2NhbGUgaXMgd2FudGVkLlxuICAgIC0tcGctY2VsbC1zaXplOiAxNzBweDtcblxuICAgICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbiAgICAucGctZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIC8qIGF1dG8tRklMTCArIG1pbm1heCg8c2l6ZT4sIDFmcik6IHRoZSBLRVkgaXMgYXV0by1GSUxMIChub3QgYXV0by1maXQpLlxuICAgICAgICAgICBhdXRvLWZpbGwgS0VFUFMgdGhlIGVtcHR5IHBoYW50b20gdHJhY2tzLCBzbyBhIHNtYWxsIHJlc3VsdCBzZXQgZG9lc1xuICAgICAgICAgICBOT1Qgb3Zlci1zdHJldGNoIChlYWNoIGl0ZW0gc3RheXMgb25lIHRyYWNrIOKJiCA8c2l6ZT4pIOKAlCB0aGF0IHdhcyB0aGVcbiAgICAgICAgICAgb3JpZ2luYWwgYnVnIHdpdGggYXV0by1maXQsIHdoaWNoIGNvbGxhcHNlcyBlbXB0eSB0cmFja3MgYW5kIGJsb3dzIHRoZVxuICAgICAgICAgICBmZXcgaXRlbXMgdXAuIFRoZSAxZnIgbGV0cyB0aGUgcmVhbCBjb2x1bW5zIGFic29yYiB0aGUgbGVmdG92ZXIgd2lkdGhcbiAgICAgICAgICAgc28gdGhlIGdyaWQgZmlsbHMgdGhlIGNhcmQgZWRnZS10by1lZGdlIChubyBlbXB0eSBjb2x1bW4gcG9vbGluZyBvbiB0aGVcbiAgICAgICAgICAgcmlnaHQpLiBOZXQ6IHRpbGUgc2l6ZSBkZXBlbmRzIG9ubHkgb24gQ09OVEFJTkVSIFdJRFRIIChyZXNwb25zaXZlKSxcbiAgICAgICAgICAgbmV2ZXIgb24gZmlsdGVycyBvciBwaG90byBjb3VudC4gW0phbiAyMDI2LTA3LTA2XSAqL1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCh2YXIoLS1wZy1jZWxsLXNpemUsIDE3MHB4KSwgMWZyKSk7XG4gICAgICAgIGdhcDogdmFyKC0tcy0zLCAxMnB4KTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgICB9XG5cbiAgICAucGctY2VsbCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0zLCAxMnB4KTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmMGYxZjIpO1xuICAgIH1cblxuICAgIC5wZy1jZWxsLXRodW1iLWJ0biB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAucGctY2VsbC10aHVtYiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIyMG1zIGN1YmljLWJlemllcigwLjIsIDAuNiwgMC4yLCAxKTtcbiAgICB9XG4gICAgLnBnLWNlbGwtdGh1bWItYnRuOmhvdmVyIC5wZy1jZWxsLXRodW1iIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsgfVxuICAgIC5wZy1jZWxsLXRodW1iLWJ0bjpmb2N1cy12aXNpYmxlIHsgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTsgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IH1cblxuICAgIC8vIFNlbGVjdGVkIHRpbGUg4oCUIGEgYnJhbmQtcHVycGxlIHJpbmcgKGJveC1zaGFkb3c6IG5vIGxheW91dCBzaGlmdCwgYW5kIE5PVFxuICAgIC8vIGNsaXBwZWQgYnkgdGhlIGNlbGwncyBvdmVyZmxvdzpoaWRkZW4sIHVubGlrZSBhIHJlYWwgYm9yZGVyKS4gW0phbiAyMDI2LTA3LTA2XVxuICAgIC5wZy1jZWxsLnBnLWNlbGwtc2VsZWN0ZWQge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xuICAgIH1cbiAgICAvLyBJbiBzZWxlY3QgbW9kZSAo4omlMSBzZWxlY3RlZCkgdGhlIFdIT0xFIHRpbGUgaXMgdGhlIHNlbGVjdCB0YXJnZXQg4oCUIHNob3cgYVxuICAgIC8vIHBvaW50ZXIgY3Vyc29yIGFuZCBzdXBwcmVzcyB0aGUgaG92ZXItem9vbSBzbyBpdCByZWFkcyBhcyBcImNsaWNrID0gc2VsZWN0XCIuXG4gICAgLnBnLWdyaWQucGctc2VsZWN0aW5nIC5wZy1jZWxsLXRodW1iLWJ0biB7IGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIC5wZy1ncmlkLnBnLXNlbGVjdGluZyAucGctY2VsbC10aHVtYi1idG46aG92ZXIgLnBnLWNlbGwtdGh1bWIgeyB0cmFuc2Zvcm06IG5vbmU7IH1cblxuICAgIC8vIFZlcmJlcmdlbiAoMjAyNi0wOC0xNSkg4oCUIGVlbiB2ZXJib3JnZW4gZm90byBpcyBhbGxlZW4gemljaHRiYWFyIGluIGRlXG4gICAgLy8gXCJ0b29uIHZlcmJvcmdlblwiLXN0YW5kLCBlbiBkYW4gZHVpZGVsaWprIGdlbWVya3Q6IGdlZGVtcHQgYmVlbGQgcGx1cyBlZW5cbiAgICAvLyBiYWRnZS4gWm9uZGVyIGRhdCB2ZXJzY2hpbCBpcyBuaWV0IHRlIHppZW4gb2YgamUgbmFhciBkZSBnZXdvbmUgZ2FsZXJpalxuICAgIC8vIGtpamt0IG9mIG5hYXIgZGUgdGVydWd6ZXQtd2Vya2xpanN0LlxuICAgIC5wZy1jZWxsLnBnLWNlbGwtaGlkZGVuIC5wZy1jZWxsLXRodW1iIHtcbiAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMC43KTtcbiAgICAgICAgb3BhY2l0eTogMC41NTtcbiAgICB9XG4gICAgLnBnLWNlbGwucGctY2VsbC1oaWRkZW4gLnBnLWNlbGwtdGh1bWItYnRuOmhvdmVyIC5wZy1jZWxsLXRodW1iIHsgb3BhY2l0eTogMC44OyB9XG5cbiAgICAucGctY2VsbC1oaWRkZW4tYmFkZ2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogdmFyKC0tcy0yLCA4cHgpO1xuICAgICAgICByaWdodDogdmFyKC0tcy0yLCA4cHgpO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAzcHg7XG4gICAgICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMSwgNHB4KTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYyKTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLnBnLWNlbGwtY2hlY2sge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogdmFyKC0tcy0yLCA4cHgpO1xuICAgICAgICBsZWZ0OiB2YXIoLS1zLTIsIDhweCk7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIC8vIEEgc21hbGwgZnJvc3RlZCBiYWNrZHJvcCBzbyB0aGUgY2hlY2tib3ggc3RheXMgbGVnaWJsZSBvbiBhbnkgcGhvdG8uXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMSwgNHB4KTtcbiAgICAgICAgcGFkZGluZzogMnB4O1xuICAgIH1cblxuICAgIC5wZy1jZWxsLWZsYWcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogdmFyKC0tcy0yLCA4cHgpO1xuICAgICAgICByaWdodDogdmFyKC0tcy0yLCA4cHgpO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNiMzI2MWUpO1xuICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMzUpKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICAgIC8vIFRoZSAjaWQgbGFiZWwgYWxzbyBsaXZlcyB0b3AtcmlnaHQ7IGtlZXAgdGhlIChGYXNlLTIpIGZsYWcgY2xlYXIgb2YgaXQuXG4gICAgLnBnLWNlbGw6aGFzKC5wZy1jZWxsLWlkKSAucGctY2VsbC1mbGFnIHsgdG9wOiAyMnB4OyB9XG5cbiAgICAvLyBUaW55IHJlc3BvbnNlLWlkIG92ZXJsYXksIHRvcC1yaWdodC4gQSBET00gbGFiZWwgKG5ldmVyIGJha2VkIGludG8gdGhlXG4gICAgLy8gcGhvdG8pIHB1cmVseSBmb3Igc3VwcG9ydCBjcm9zcy1jaGVja3MuIFRleHQgY29sb3VyIGZsaXBzIGJsYWNrL3doaXRlXG4gICAgLy8gcGVyLXRodW1iIGZyb20gdGhlIGltYWdlJ3MgdG9wLXJpZ2h0IFdDQUcgbHVtaW5hbmNlICgucGctaWQtZGFyayBhZGRlZFxuICAgIC8vIGJ5IF9hcHBseVRodW1iSWRDb250cmFzdCk7IGEgZmFpbnQgb3Bwb3NpdGUgc2hhZG93IGlzIGEgbGVnaWJpbGl0eVxuICAgIC8vIHNhZmV0eSBuZXQgZm9yIGJ1c3kgbWlkLXRvbmUgcGhvdG9zLlxuICAgIC5wZy1jZWxsLWlkIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDRweDtcbiAgICAgICAgcmlnaHQ6IDZweDtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgZm9udC1zaXplOiA5cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4ycHg7XG4gICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAgICAgICAgICAgICAgLy8gbmV2ZXIgYmxvY2tzIG9wZW5pbmcgdGhlIHRodW1iXG4gICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTIpOyAgLy8gZGVmYXVsdCAoZGFyayBiZykg4oaSIGxpZ2h0IHRleHRcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDEuNXB4IHJnYmEoMCwgMCwgMCwgMC41NSk7XG4gICAgfVxuICAgIC5wZy1jZWxsLWlkLnBnLWlkLWRhcmsge1xuICAgICAgICBjb2xvcjogcmdiYSgxNywgMTcsIDE3LCAwLjkpOyAgICAgIC8vIGxpZ2h0IGJnIOKGkiBkYXJrIHRleHQgKFdDQUcgbHVtaW5hbmNlKVxuICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggMS41cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xuICAgIH1cblxuICAgIC8vIEZhc2UgMmIg4oCUIHNoYXJlZCBjbGFzc2lmaWNhdGlvbiwgcmVhZC1vbmx5IGRvdC4gVG9wLWNlbnRlcjogdGhlIG9uZVxuICAgIC8vIGNvcm5lci1mcmVlIGVkZ2UgbGVmdCBvbmNlIGNoZWNrYm94IChUTCkgLyBmbGFnK2lkIChUUikgLyBmYXZvcml0ZSAoQkwpXG4gICAgLy8gLyBjb21tZW50cyAoQlIpIGFyZSBhY2NvdW50ZWQgZm9yLlxuICAgIC8vIENsYXNzaWZpY2F0aW9uIGRvdHMgb24gZ3JpZCB0aHVtYm5haWxzIHdlcmUgcmVtb3ZlZCAoSmFuIDIwMjYtMDctMDYpIOKAlCBhXG4gICAgLy8gYmV0dGVyIGF0LWEtZ2xhbmNlIHRyZWF0bWVudCBjb21lcyBsYXRlci4gQ2xhc3NpZmljYXRpb25zIGxpdmUgaW4gdGhlIGxpZ2h0Ym94LlxuXG4gICAgLnBnLWNlbGwtZmF2IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IHZhcigtLXMtMiwgOHB4KTtcbiAgICAgICAgbGVmdDogdmFyKC0tcy0yLCA4cHgpO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy13YXJuaW5nLWJyaWdodC1ib3JkZXIpO1xuICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNDUpKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLnBnLWNlbGwtY29tbWVudHMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogdmFyKC0tcy0yLCA4cHgpO1xuICAgICAgICByaWdodDogdmFyKC0tcy0yLCA4cHgpO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIHBhZGRpbmc6IDNweCA3cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCwgOTk5cHgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNTUpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC8vIC0tLS0gTG9hZGluZyAvIGVtcHR5IHN0YXRlcyAtLS0tXG4gICAgLnBnLXN0YXRlW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAucGctc2tlbC1ncmlkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgLy8gTWF0Y2ggdGhlIHJlYWwgZ3JpZDogYXV0by1maWxsICsgbWlubWF4IHNvIGl0IGZpbGxzIGVkZ2UtdG8tZWRnZSAoc2VlIC5wZy1ncmlkIGFib3ZlKS5cbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgodmFyKC0tcGctY2VsbC1zaXplLCAxNzBweCksIDFmcikpO1xuICAgICAgICBnYXA6IHZhcigtLXMtMywgMTJweCk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgfVxuICAgIC5wZy1za2VsLWNlbGwge1xuICAgICAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMsIDEycHgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTAwZGVnLCB2YXIoLS1jLWdyZXktMTAwLCAjZjBmMWYyKSAzMCUsIHZhcigtLWMtZ3JleS01MCwgI2Y3ZjhmOSkgNTAlLCB2YXIoLS1jLWdyZXktMTAwLCAjZjBmMWYyKSA3MCUpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgICAgICAgYW5pbWF0aW9uOiBwZy1za2VsLXNoaW1tZXIgMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB9XG4gICAgQGtleWZyYW1lcyBwZy1za2VsLXNoaW1tZXIge1xuICAgICAgICAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDsgfVxuICAgICAgICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDsgfVxuICAgIH1cblxuICAgIC5wZy1lbXB0eSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXMtMiwgOHB4KTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcy04LCA0MHB4KSB2YXIoLS1zLTQsIDE2cHgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIGg0IHsgbWFyZ2luOiAwOyBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpOyB9XG4gICAgICAgIHAgeyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTNweDsgfVxuICAgIH1cblxuICAgIC5wZy1zZW50aW5lbCB7IGhlaWdodDogMXB4OyB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIExpZ2h0Ym94IChxZG5hcHJvLW1vZGFsLCBhcHBlbmRlZCB0byBkb2N1bWVudC5ib2R5IOKAlCBzY29wZWQgYnkgY2xhc3MpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbnFkbmFwcm8tbW9kYWwucGctbGlnaHRib3gge1xuICAgIC8vIC0tLS0gRklYRUQgRlJBTUUgLS0tLVxuICAgIC8vIE92ZXJyaWRlIHRoZSB4eGxhcmdlIGRpYWxvZyB0byBhIGJpZywgRklYRUQgc2l6ZSB0aGF0IG5ldmVyIGRlcGVuZHMgb24gdGhlXG4gICAgLy8gcGhvdG8g4oCUIHRoaXMgaXMgdGhlIGNvcmUgZml4IGZvciBcInRoZSBtb2RhbCBqdW1wcyBhcm91bmQgb24gcHJldi9uZXh0XCIuXG4gICAgLy8gKHZoL3Z3IGhlcmUgYmVoYXZlIGxpa2UgdGhlIG1vZGFsJ3Mgb3duIGV4aXN0aW5nIGNhbGMoMTAwdmgtNDhweCkgcnVsZXMuKVxuICAgICYubW9kYWwtc2l6ZS14eGxhcmdlIC5tb2RhbC1kaWFsb2cge1xuICAgICAgICBtYXgtd2lkdGg6IG1pbigxNDAwcHgsIDk1dncpO1xuICAgICAgICB3aWR0aDogOTV2dztcbiAgICAgICAgaGVpZ2h0OiBtaW4oOTAwcHgsIGNhbGMoMTAwdmggLSA0OHB4KSk7XG4gICAgfVxuICAgIC8vIFRoZSB3aW5kb3cgaXMgYSBmbGV4IGNvbHVtbjsgdGhlIGJvZHkgbXVzdCBOT1Qgc2Nyb2xsICh0aGUgaGVybyBmaWxscywgb25seVxuICAgIC8vIHRoZSBjb21tZW50IGxpc3Qgc2Nyb2xscyBpbnRlcm5hbGx5KSDigJQgb3ZlcnJpZGUgdGhlIHh4bGFyZ2UgYm9keSBkZWZhdWx0LlxuICAgIC5tb2RhbC1ib2R5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgZ2FwOiAwO1xuICAgIH1cblxuICAgIC5wZy1sYi1zdGFnZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7ICAgICAgICAgIC8vIGhlcm8gZmlsbHMgdGhlIGZ1bGwgc3RhZ2UgaGVpZ2h0XG4gICAgICAgIGdhcDogdmFyKC0tcy0zLCAxMnB4KTtcbiAgICAgICAgZmxleDogMSAxIGF1dG87ICAgICAgICAgICAgICAgIC8vIHRha2UgYWxsIHJlbWFpbmluZyBjb2x1bW4gaGVpZ2h0XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLy8gSGVybyA9IHRoZSBGSVhFRC1zaXplIHBob3RvIGFyZWEuIFRoZSB2aWV3cG9ydCBjbGlwczsgdGhlIGltYWdlIGlzXG4gICAgLy8gb2JqZWN0LWZpdDpjb250YWluIHNvIGFueSBhc3BlY3QgcmF0aW8gZmlsbHMgdGhlIHNwYWNlIChzbWFsbCBTMyBwaG90b3NcbiAgICAvLyBub3cgcmVuZGVyIGxhcmdlIGluc3RlYWQgb2YgdGh1bWJuYWlsLXNpemVkKS5cbiAgICAucGctbGItaGVybyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG4gICAgLnBnLWxiLXZpZXdwb3J0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMywgMTJweCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLWhvdmVyLCAjZjRmNWZiKTtcbiAgICB9XG4gICAgLnBnLWxiLXZpZXdwb3J0LnBnLXpvb21lZCB7IGN1cnNvcjogZ3JhYjsgfVxuICAgIC5wZy1sYi12aWV3cG9ydC5wZy1wYW5uaW5nIHsgY3Vyc29yOiBncmFiYmluZzsgfVxuICAgIC5wZy1sYi1pbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMjBtcyBlYXNlLW91dDtcbiAgICAgICAgLy8gTm8gdHJhbnNpdGlvbiB3aGlsZSBhY3RpdmVseSBwYW5uaW5nICh3b3VsZCBsYWcgYmVoaW5kIHRoZSBjdXJzb3IpLlxuICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7XG4gICAgfVxuICAgIC5wZy1sYi12aWV3cG9ydC5wZy1wYW5uaW5nIC5wZy1sYi1pbWcgeyB0cmFuc2l0aW9uOiBub25lOyB9XG5cbiAgICAvLyBDcm9zcy1kaXNzb2x2ZSBvdmVybGF5OiBhIHNlY29uZCBpbWFnZSBsYXllciBzdGFja2VkIG9uIHRvcCBvZiB0aGUgYmFzZSxcbiAgICAvLyBjZW50cmVkIGlkZW50aWNhbGx5IChhYnNvbHV0ZSArIGluc2V0OjAgKyBtYXJnaW46YXV0byBhZ2FpbnN0IHRoZSBmaXhlZFxuICAgIC8vIHZpZXdwb3J0IOKGkiBzYW1lIGZpdHRlZCBib3ggYXMgdGhlIGZsZXgtY2VudHJlZCBiYXNlLCBzbyBpdCBvdmVybGFwcyBleGFjdGx5KS5cbiAgICAvLyBUcmFuc3BhcmVudCBieSBkZWZhdWx0OyBmYWRlcyBpbiB3aGVuIC5wZy1vdmVybGF5LXNob3cgaXMgYWRkZWQsIHRoZW4gdGhlXG4gICAgLy8gSlMgY29waWVzIGl0IGRvd24gb250byB0aGUgYmFzZS4gTmV2ZXIgem9vbWVkL3Bhbm5lZCDigJQgcHVyZWx5IGEgdHJhbnNpdGlvblxuICAgIC8vIGxheWVyLiBbMjAyNi0wNy0yMF1cbiAgICAucGctbGItb3ZlcmxheSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyNjBtcyBlYXNlO1xuICAgICAgICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xuICAgIH1cbiAgICAucGctbGItb3ZlcmxheS5wZy1vdmVybGF5LXNob3cgeyBvcGFjaXR5OiAxOyB9XG4gICAgLy8gUmVzcGVjdCByZWR1Y2VkLW1vdGlvbjogbm8gZmFkZSAodGhlIEpTIGFsc28gaGFyZC1zZXRzIGluIHRoYXQgY2FzZSwgdGhpcyBpc1xuICAgIC8vIHRoZSBiZWx0LWFuZC1zdXNwZW5kZXJzIENTUyBzaWRlKS5cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgICAucGctbGItb3ZlcmxheSB7IHRyYW5zaXRpb246IG5vbmU7IH1cbiAgICB9XG5cbiAgICAvLyBGbG9hdGluZyB6b29tL2Z1bGxzY3JlZW4gdG9vbGJhciDigJQgRklYRUQgdG9wLXJpZ2h0IG9mIHRoZSBoZXJvLlxuICAgIC5wZy1sYi1oZXJvLXRvb2xzIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IHZhcigtLXMtMiwgOHB4KTtcbiAgICAgICAgcmlnaHQ6IHZhcigtLXMtMiwgOHB4KTtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgICBwYWRkaW5nOiAzcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCwgOTk5cHgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDExLCAxMSwgMTMsIDAuNTUpO1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTtcbiAgICB9XG4gICAgLnBnLWxiLWhlcm8tdG9vbHMgcWRuYXByby1pY29uLWJ0biB7IGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLnBnLWxiLWhlcm8tdG9vbHMgcWRuYXByby1pY29uLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7IH1cbiAgICAucGctbGItaGVyby10b29scyAucGctYnRuLWRpbSB7IG9wYWNpdHk6IDAuNDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICAucGctbGItem9vbS1sZXZlbCB7XG4gICAgICAgIG1pbi13aWR0aDogNDRweDtcbiAgICAgICAgcGFkZGluZzogNHB4IDZweDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0yLCA4cHgpO1xuICAgIH1cbiAgICAucGctbGItem9vbS1sZXZlbDpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7IH1cblxuICAgIC5wZy1sYi1hcnJvdyB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUsIHJnYmEoNjQsIDczLCAxNTQsIDAuMTApKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjsgICAgICAgICAgICAvLyB2ZXJ0aWNhbGx5IGNlbnRlcmVkIGFnYWluc3QgdGhlIHRhbGwgaGVyb1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE4MG1zIGVhc2UsIHRyYW5zZm9ybSAxODBtcyBlYXNlO1xuICAgIH1cbiAgICAucGctbGItYXJyb3c6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS0xMDAsIHJnYmEoNjQsIDczLCAxNTQsIDAuMjApKTsgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsgfVxuXG4gICAgLnBnLWxiLW1ldGEge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgICAgICAgICAgICAgLy8gRklYRUQgcG9zaXRpb25zIOKAlCBuZXZlciByZS13cmFwIHBlciBwaG90b1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXMtMywgMTJweCk7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXMtMywgMTJweCk7XG4gICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1zLTMsIDEycHgpO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2U2ZTllZik7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbiAgICAvLyBUaGUgdGV4dCBtZXRhIGdyb3VwIHNocmlua3MvZWxsaXBzaXNlczsgdGhlIGZsYWcgY29udHJvbHMgc3RheSBwaW5uZWQgcmlnaHQuXG4gICAgLnBnLWxiLW1ldGEtdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTMsIDEycHgpO1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cbiAgICAucGctbGItcG9zaXRpb24geyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgLnBnLWxiLXVzZXI6ZW1wdHksIC5wZy1sYi1kYXRlOmVtcHR5LCAucGctbGItbm9kZTplbXB0eSwgLnBnLWxiLWxvY2F0aW9uOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgLy8gVmVyYmVyZ2VuICgyMDI2LTA4LTE1KSDigJQgaGVya29tc3RyZWdlbCBiaWogZWVuIHZlcmJvcmdlbiBmb3RvOiB3aWUsIHdhbm5lZXJcbiAgICAvLyBlbiB3YWFyb20uIFN0YWF0IGJld3VzdCBpbiBkZXplbGZkZSBtZXRhcmVnZWwgKGdlZW4gZWlnZW4gYmFsayk6IGhldCBpc1xuICAgIC8vIGNvbnRleHQgYmlqIGRlIGZvdG8sIGdlZW4gd2FhcnNjaHV3aW5nLlxuICAgIC5wZy1sYi1oaWRkZW4taW5mbyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMSwgNHB4KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmMGYxZjIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LXN1YnRsZSwgIzViNjA3MCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICAgIC5wZy1sYi1oaWRkZW4taW5mbzplbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgIC8vIEZhc2UgMmEg4oCUIHBlcnNvbmFsIGZsYWdzIChmYXZvcml0ZSAvIHN0YXItcmF0aW5nIC8gZmxhZyB0b2dnbGUpLiBQaW5uZWQgdG9cbiAgICAvLyB0aGUgZmFyIHJpZ2h0IHNvIGNvdW50ZXIvQ29sbGVjdG9yL1ZyYWFnL0Zhdi9zdGVyIGtlZXAgYSBGSVhFRCBwb3NpdGlvbi5cbiAgICAucGctbGItZmFzZTItc2xvdCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXMtMiwgOHB4KTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zLTMsIDEycHgpO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2U2ZTllZik7XG4gICAgfVxuICAgIC5wZy1sYi1yYXRpbmcge1xuICAgICAgICBtYXJnaW46IDAgMnB4O1xuICAgIH1cblxuICAgIC8vIEZhc2UgMmIgKG11bHRpKSDigJQgY2xhc3NpZmljYXRpb24gcm93OiBhIFRhZyBidXR0b24gKERNUyBsYXZlbmRlciBzdHlsZSkgK1xuICAgIC8vIHRoZSBjaG9zZW4gY2xhc3NpZmljYXRpb25zIGFzIHNtYWxsIHBpbGxzLCBvbiBpdHMgT1dOIGxpbmUgYWJvdmUgdGhlIGFjdGlvbnMuXG4gICAgLnBnLWxiLWNsYXNzaWZ5LXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXMtMywgMTJweCk7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbiAgICAucGctbGItY2xhc3NpZnktYnRuLnFkbmFwcm8taWNvbi1idG4geyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpOyBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTsgZmxleDogMCAwIGF1dG87IH1cbiAgICAucGctbGItY2xhc3NpZnktYnRuLnFkbmFwcm8taWNvbi1idG46aG92ZXI6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MCk7IH1cbiAgICAucGctbGItY2xhc3NpZnktcGlsbHMgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogNHB4OyB9XG4gICAgLnBnLWxiLWNsYXNzaWZ5LW5vbmUgeyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjODg5MGI4KTsgZm9udC1zaXplOiAxMi41cHg7IH1cblxuICAgIC5wZy1sYi1hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tcy0zLCAxMnB4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbiAgICAucGctbGItZG93bmxvYWQgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxuXG4gICAgLy8gRmFzZSAyYyDigJQgc21hbGwgY291bnQgYmFkZ2Ugb24gdGhlIGNvbW1lbnRzLXRvZ2dsZSBhY3Rpb24gYnV0dG9uLFxuICAgIC8vIG1pcnJvcmluZyB0aGUgZ3JpZCdzIC5wZy1jZWxsLWNvbW1lbnRzIGNoaXAgdmlzdWFsbHkgKGRhcmsgcGlsbCwgd2hpdGVcbiAgICAvLyB0ZXh0KSBidXQgcG9zaXRpb25lZCBhcyBhIGNvcm5lciBiYWRnZSBzaW5jZSB0aGlzIHNpdHMgaW4gYSBob3Jpem9udGFsXG4gICAgLy8gYWN0aW9uIHJvdywgbm90IGEgcGhvdG8gY29ybmVyLlxuICAgIC5wZy1sYi1jb21tZW50cy10b2dnbGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICZbZGF0YS1jb3VudF06bm90KFtkYXRhLWNvdW50PVwiXCJdKTo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWNvdW50KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogLTRweDtcbiAgICAgICAgICAgIHJpZ2h0OiAtNHB4O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxNXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgcGFkZGluZzogMCAzcHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwsIDk5OXB4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmFzZSAyYyDigJQgU0hBUkVEL3RlYW0gY29tbWVudHMgcGFuZWwuIEZsYXQgbGlzdCAobm8gdGhyZWFkaW5nIGluIHYxO1xuICAgIC8vIHBhcmVudF9pZCBzdGF5cyB1bnVzZWQpLiBDb2xsYXBzZWQgYnkgZGVmYXVsdCB1bmRlciB0aGUgbWV0YSByb3cuXG4gICAgLnBnLWxiLWNvbW1lbnRzLXBhbmVsIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tcy0zLCAxMnB4KTtcbiAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLXMtMywgMTJweCk7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZTZlOWVmKTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgJltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuICAgIH1cblxuICAgIC5wZy1sYi1jb21tZW50cy1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTMsIDEycHgpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAyMjBweDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy0zLCAxMnB4KTtcbiAgICB9XG5cbiAgICAucGctY29tbWVudHMtZW1wdHksIC5wZy1jb21tZW50cy1sb2FkaW5nIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgIH1cblxuICAgIC5wZy1jb21tZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICAgIH1cbiAgICAucGctY29tbWVudC1hdmF0YXIgeyBmbGV4LXNocmluazogMDsgbWFyZ2luLXRvcDogMnB4OyB9XG4gICAgLnBnLWNvbW1lbnQtYm9keSB7IGZsZXg6IDEgMSBhdXRvOyBtaW4td2lkdGg6IDA7IH1cbiAgICAucGctY29tbWVudC1oZWFkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgICAgICBnYXA6IHZhcigtLXMtMiwgOHB4KTtcbiAgICB9XG4gICAgLnBnLWNvbW1lbnQtYXV0aG9yIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xuICAgIH1cbiAgICAucGctY29tbWVudC1kYXRlIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgICB9XG4gICAgLy8gVGhlIGRlbGV0ZSBidXR0b24gcmlkZXMgYXQgdGhlIGVuZCBvZiB0aGUgaGVhZCByb3cgdmlhIG1hcmdpbi1sZWZ0OmF1dG9cbiAgICAvLyByYXRoZXIgdGhhbiBhIHNlcGFyYXRlIGFic29sdXRlIHBvc2l0aW9uIOKAlCB0aGUgcm93IGFscmVhZHkgaGFzIHJvb20uXG4gICAgLnBnLWxiLWNvbW1lbnQtZGVsZXRlIHsgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAucGctY29tbWVudC1tZXNzYWdlIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICMzMzNhNGQpO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgfVxuXG4gICAgLnBnLWxiLWNvbW1lbnRzLWNvbXBvc2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICAgIH1cbiAgICAucGctbGItY29tbWVudC1pbnB1dCB7IGZsZXg6IDEgMSBhdXRvOyBtaW4td2lkdGg6IDA7IH1cblxuICAgIC8vIC0tLS0gRlVMTFNDUkVFTiBtb2RlIC0tLS1cbiAgICAvLyBCbG93cyB0aGUgZnJhbWUgdG8gZmlsbCB0aGUgd2hvbGUgbW9kYWwgKGJhY2tkcm9wID0gZnVsbCB2aWV3cG9ydCksIGRhcmtcbiAgICAvLyBpbW1lcnNpdmUgY2hyb21lLiBVc2VzIHdpZHRoL2hlaWdodDoxMDAlIGFnYWluc3QgdGhlIGJhY2tkcm9wIChOT1QgMTAwdncvdmgpXG4gICAgLy8gc28gdGhlIG1vZGFsJ3Mgem9vbToxLjI1IGNhbid0IG92ZXJmbG93IGl0LiBQcmV2L25leHQvc2xpZGVzaG93L3pvb20gYWxsIGtlZXBcbiAgICAvLyB3b3JraW5nOyBFc2NhcGUgc3RpbGwgY2xvc2VzLiBbSmFuIDIwMjYtMDctMTFdXG4gICAgJi5wZy1sYi1mdWxsc2NyZWVuLW9uIC5tb2RhbC1iYWNrZHJvcCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS05NTApO1xuICAgIH1cbiAgICAmLnBnLWxiLWZ1bGxzY3JlZW4tb24gLm1vZGFsLWRpYWxvZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG4gICAgJi5wZy1sYi1mdWxsc2NyZWVuLW9uIC5tb2RhbC13aW5kb3cge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS05NTApO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbiAgICAvLyBEYXJrIHZpZXdwb3J0ICsgbGlnaHQgbWV0YSB0ZXh0IHNvIHBob3RvcyBwb3AgYWdhaW5zdCBibGFjay5cbiAgICAmLnBnLWxiLWZ1bGxzY3JlZW4tb24gLnBnLWxiLXZpZXdwb3J0IHsgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTk1MCk7IH1cbiAgICAmLnBnLWxiLWZ1bGxzY3JlZW4tb24gLm1vZGFsLXRpdGxlIHsgY29sb3I6IHZhcigtLWMtZ3JleS01MCk7IH1cbiAgICAmLnBnLWxiLWZ1bGxzY3JlZW4tb24gLnBnLWxiLW1ldGEsXG4gICAgJi5wZy1sYi1mdWxsc2NyZWVuLW9uIC5wZy1sYi1wb3NpdGlvbiB7IGNvbG9yOiB2YXIoLS1jLWdyZXktNTApOyB9XG4gICAgJi5wZy1sYi1mdWxsc2NyZWVuLW9uIC5wZy1sYi1tZXRhLFxuICAgICYucGctbGItZnVsbHNjcmVlbi1vbiAucGctbGItY2xhc3NpZnktcm93LFxuICAgICYucGctbGItZnVsbHNjcmVlbi1vbiAucGctbGItY29tbWVudHMtcGFuZWwgeyBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpOyB9XG4gICAgJi5wZy1sYi1mdWxsc2NyZWVuLW9uIC5wZy1sYi1mYXNlMi1zbG90IHsgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7IH1cbiAgICAvLyBUaGUgYm90dG9tIGFjdGlvbiB0b29sYmFyIChjb21tZW50cyAvIHNsaWRlc2hvdyAvIHNoYXJlIC8gYW5ub3RhdGUgLyBkb3dubG9hZClcbiAgICAvLyB1c2VzIHR5cGU9XCJzdWJ0bGVcIiBpY29uLWJ0bnMgd2hvc2UgaWNvbiBjb2xvdXIgaXMgbmVhci1ibGFjayDigJQgaW52aXNpYmxlIG9uXG4gICAgLy8gdGhlIGJsYWNrIGZ1bGxzY3JlZW4gY2hyb21lLiBNYWtlIHRoZW0gd2hpdGUgaW4gZnVsbHNjcmVlbiAoc2FtZSB0cmVhdG1lbnRcbiAgICAvLyBhcyB0aGUgZmxvYXRpbmcgaGVybyB0b29sYmFyIGFib3ZlKS4gSWNvbnMgdXNlIGN1cnJlbnRDb2xvciwgc28gY29sb3VyaW5nXG4gICAgLy8gdGhlIGhvc3QgY2FzY2FkZXMgaW4uIFsyMDI2LTA3LTIwXVxuICAgICYucGctbGItZnVsbHNjcmVlbi1vbiAucGctbGItYWN0aW9ucyBxZG5hcHJvLWljb24tYnRuIHsgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAmLnBnLWxiLWZ1bGxzY3JlZW4tb24gLnBnLWxiLWFjdGlvbnMgcWRuYXByby1pY29uLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7IH1cbn1cblxuLy8gRmFzZSAyYiAobXVsdGkpIOKAlCB0aGUgY2xhc3NpZmljYXRpb24gcGlja2VyIE1PREFMIChyZXVzZXMgdGhlIERNUyBcIlRhZ3MgdmFuIGRpdFxuLy8gZG9jdW1lbnRcIiBjaGVja2xpc3QgcGF0dGVybjogYSBjaGVja2JveCArIGNvbG91cmVkIHBpbGwgcGVyIGdyb3VwKS4gQm9keS1hcHBlbmRlZFxuLy8gcWRuYXByby1tb2RhbCwgc2NvcGVkIGJ5IGNsYXNzLlxucWRuYXByby1tb2RhbC5wZy1jbGFzc2lmeS1waWNrZXIge1xuICAgIC5wZy1jbGFzc2lmeS1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWF4LWhlaWdodDogNDR2aDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG4gICAgLnBnLWNsYXNzaWZ5LWNoZWNrLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgcGFkZGluZzogN3B4IDRweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gICAgLnBnLWNsYXNzaWZ5LWNoZWNrLXJvdzpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuICAgIC5wZy1jbGFzc2lmeS1jaGVjay1yb3cgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHsgd2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsgY3Vyc29yOiBwb2ludGVyOyBhY2NlbnQtY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTsgfVxuICAgIC5wZy1jbGFzc2lmeS1lbXB0eSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9waG90by10aWxlL19waG90by10aWxlLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgcWRuYXByby1waG90by10aWxlIGNvbXBpbGVkIENTU1xuICAgRXh0cmFjdGVkIGZyb20gcWRuYS1tb2RhbC1wcmV2aWV3Lmh0bWwgKEtpbSAyMDI2LTA1LTI5KSBzbyB0aGVcbiAgIGJ1bmRsZSBzaGlwcyBwaG90by10aWxlIHN0eWxpbmcuIEtlZXAgaW4gbG9ja3N0ZXAgd2l0aCB0aGVcbiAgIGlubGluZSBjb3B5IGluIHFkbmEtcGhvdG8tdGlsZS1wcmV2aWV3Lmh0bWwgLyBxZG5hLW1vZGFsLXByZXZpZXcuaHRtbC5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnFkbmFwcm8tcGhvdG8tdGlsZSB7XG4gIC0tYy10aWxlLXJhZGl1czogOHB4O1xuICAtLWMtdGlsZS1yaW5nLXJhZGl1czogMTJweDtcbiAgLS1jLXRpbGUtcmluZzogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgLS1jLXRpbGUtb3ZlcmxheTogcmdiYSgxMDcsIDExNCwgMTI4LCAwLjMwKTtcbiAgLS1jLWZvY3VzLXJpbmc6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIC0tYy1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYy10aWxlLXJhZGl1cyk7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTIwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cbi5xZG5hcHJvLXBob3RvLXRpbGUgLnBob3RvLXRpbGUtaW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWMtdGlsZS1yYWRpdXMpO1xuICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC8qIFNhbWUgZGVzYXR1cmF0ZSB0cmVhdG1lbnQgYXMgLnByb2plY3QtY2FyZC1waG90byBzbyB0aWxlc1xuICAgICBtYXRjaCB0aGUgcmVzdCBvZiB0aGUgVUkncyBwaG90byBhZXN0aGV0aWMgKEtpbSAyMDI2LTA1LTI5KS4gKi9cbiAgZmlsdGVyOiBzYXR1cmF0ZSgwLjQ1KSBicmlnaHRuZXNzKDAuOSk7XG59XG4vKiBEYXJrIGdyYWRpZW50IG92ZXJsYXkgYWxvbmcgdGhlIGJvdHRvbSBvZiB0aGUgdGlsZSDigJQgbWF0Y2hlcyB0aGVcbiAgIGAucHJvamVjdC1jYXJkLXBob3RvOjphZnRlcmAgcnVsZSBzbyB0aWxlICsgY2FyZCBzaGFyZSBvbmUgdmlzdWFsXG4gICBsYW5ndWFnZS4gUGFpbnRlZCBhcyBhbiBlbXB0eSA8c3Bhbj4gc2libGluZyBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0XG4gICB3aXRoIHRoZSB0aWxlJ3Mgb3duIDo6YmVmb3JlIChob3ZlciBvdmVybGF5KSBhbmQgOjphZnRlciAocmluZykuXG4gICAoS2ltIDIwMjYtMDUtMjkpICovXG4ucWRuYXByby1waG90by10aWxlIC5waG90by10aWxlLWdyYWRpZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYy10aWxlLXJhZGl1cyk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICB0byBib3R0b20sXG4gICAgcmdiYSgyMiwgMjUsIDc1LCAwKSAwJSxcbiAgICByZ2JhKDIyLCAyNSwgNzUsIDAuMjUpIDUwJSxcbiAgICByZ2JhKDIyLCAyNSwgNzUsIDAuNzgpIDEwMCVcbiAgKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1waG90by10aWxlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jLXRpbGUtcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy10aWxlLW92ZXJsYXkpO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcyBlYXNlO1xufVxuLnFkbmFwcm8tcGhvdG8tdGlsZTpob3Zlcjpub3QoLnBob3RvLXRpbGUtZGlzYWJsZWQpOjpiZWZvcmUgeyBvcGFjaXR5OiAxOyB9XG4ucWRuYXByby1waG90by10aWxlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IC0zcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jLXRpbGUtcmluZy1yYWRpdXMpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDE2MG1zIGVhc2U7XG59XG4ucWRuYXByby1waG90by10aWxlLnBob3RvLXRpbGUtc2VsZWN0ZWQ6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXRpbGUtcmluZyk7XG59XG4vKiBTZWxlY3RlZCB0aWxlcyBhbHNvIGdldCB0aGUgZm9jdXMtZ2xvdyBib3gtc2hhZG93IHNvIHRoZSBzZWxlY3Rpb25cbiAgIGlzIHZpc3VhbGx5IHVubWlzdGFrYWJsZSDigJQgd2l0aG91dCB0aGUgZ2xvdyB0aGUgMXB4IHJpbmcgaXMgZWFzeVxuICAgdG8gbWlzcyBhZ2FpbnN0IGJ1c3kgcGhvdG9zLiAoS2ltIDIwMjYtMDUtMjkpICovXG4ucWRuYXByby1waG90by10aWxlLnBob3RvLXRpbGUtc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OlxuICAgIDAgMCAwIDJweCB2YXIoLS1jLWZvY3VzLXJpbmcpLFxuICAgIDAgMCAwIDZweCB2YXIoLS1jLWZvY3VzLWdsb3cpO1xufVxuLnFkbmFwcm8tcGhvdG8tdGlsZTphY3RpdmU6bm90KC5waG90by10aWxlLWRpc2FibGVkKSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45Nyk7XG59XG4ucWRuYXByby1waG90by10aWxlOmFjdGl2ZTpub3QoLnBob3RvLXRpbGUtZGlzYWJsZWQpOjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudChyZ2JhKDAsIDAsIDAsIDAuMTUpLCByZ2JhKDAsIDAsIDAsIDAuMTUpKSxcbiAgICB2YXIoLS1jLXRpbGUtb3ZlcmxheSk7XG59XG4ucWRuYXByby1waG90by10aWxlOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuLnFkbmFwcm8tcGhvdG8tdGlsZTpmb2N1cy12aXNpYmxlLFxuLnFkbmFwcm8tcGhvdG8tdGlsZS5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAwIDAgMnB4IHZhcigtLWMtZm9jdXMtcmluZyksXG4gICAgMCAwIDAgNnB4IHZhcigtLWMtZm9jdXMtZ2xvdyk7XG59XG4ucWRuYXByby1waG90by10aWxlLnBob3RvLXRpbGUtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tcGhvdG8tdGlsZS5waG90by10aWxlLXNtYWxsIHtcbiAgd2lkdGg6IDg3cHg7XG4gIGhlaWdodDogNjVweDtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1waG90by10aWxlIHtcbiAgLS1jLXRpbGUtcmluZzogI2E1YWNmZjtcbiAgLS1jLXRpbGUtb3ZlcmxheTogcmdiYSgwLCAwLCAwLCAwLjQwKTtcbiAgLS1jLWZvY3VzLXJpbmc6ICNhNWFjZmY7XG4gIC0tYy1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjQwKTtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL3BpY2tlci10aWxlL19waWNrZXItdGlsZS1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby1waWNrZXItdGlsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLCBib3gtc2hhZG93IDIwMG1zIGVhc2UsIHRyYW5zZm9ybSAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2U7XG59XG4ucWRuYXByby1waWNrZXItdGlsZTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMjAsIDI1LCA4MCwgMC4wNCksIDAgOHB4IDE4cHggcmdiYSgyMCwgMjUsIDgwLCAwLjA4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xufVxuLnFkbmFwcm8tcGlja2VyLXRpbGU6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLnFkbmFwcm8tcGlja2VyLXRpbGU6Zm9jdXMtdmlzaWJsZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xufVxuLnFkbmFwcm8tcGlja2VyLXRpbGUucGlja2VyLXRpbGUtc2VsZWN0ZWQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjE4KSwgMCA0cHggMTRweCByZ2JhKDIwLCAyNSwgODAsIDAuMSk7XG59XG4ucWRuYXByby1waWNrZXItdGlsZS5waWNrZXItdGlsZS1zZWxlY3RlZCAucGlja2VyLXRpbGUtdGl0bGUge1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLXBpY2tlci10aWxlLnBpY2tlci10aWxlLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5xZG5hcHJvLXBpY2tlci10aWxlIC5waWNrZXItdGlsZS10aHVtYiB7XG4gIGhlaWdodDogMTEwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWMtYmctY2FyZC1ob3ZlcikgMCUsIHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSkgMTAwJSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG4gIHBhZGRpbmc6IDEycHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5xZG5hcHJvLXBpY2tlci10aWxlIC5waWNrZXItdGlsZS1ib2R5IHtcbiAgcGFkZGluZzogMTJweCAxNHB4IDE0cHg7XG59XG4ucWRuYXByby1waWNrZXItdGlsZSAucGlja2VyLXRpbGUtdGl0bGUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuICBtYXJnaW46IDAgMCAycHg7XG59XG4ucWRuYXByby1waWNrZXItdGlsZSAucGlja2VyLXRpbGUtZGVzYyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgbWFyZ2luOiAwO1xufVxuXG4ucWRuYXByby1waWNrZXItZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgZ2FwOiAxMnB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC5xZG5hcHJvLXBpY2tlci1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAucWRuYXByby1waWNrZXItZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tcGlja2VyLXRpbGUge1xuICBiYWNrZ3JvdW5kOiAjMmEyZDM2O1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiAjZTFlM2U2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tcGlja2VyLXRpbGU6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNhNWFjZmY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1waWNrZXItdGlsZS5waWNrZXItdGlsZS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTY1LCAxNzIsIDI1NSwgMC4xKTtcbiAgYm9yZGVyLWNvbG9yOiAjYTVhY2ZmO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tcGlja2VyLXRpbGUucGlja2VyLXRpbGUtc2VsZWN0ZWQgLnBpY2tlci10aWxlLXRpdGxlIHtcbiAgY29sb3I6ICNhNWFjZmY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1waWNrZXItdGlsZSAucGlja2VyLXRpbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMmUzMjNkIDAlLCAjMmEyZDM2IDEwMCUpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tcGlja2VyLXRpbGUgLnBpY2tlci10aWxlLXRpdGxlIHtcbiAgY29sb3I6ICNmMGYxZjI7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1waWNrZXItdGlsZSAucGlja2VyLXRpbGUtZGVzYyB7XG4gIGNvbG9yOiAjYTZhYWIzO1xufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZS4gQ29tcGlsZWQgaW50byBzdHlsZS12MS5jc3MgdmlhXG4vLyBgZ3VscCBzYXNzLXYxYCAoYmFja29mZmljZTIvc2Nzcy9jb21wb25lbnRzL2NvbXBvbmVudHMuc2NzcyBAdXNlJ3MgdGhpc1xuLy8gZmlsZSkuIEVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzayDigJQgbmV2ZXIgaGFuZC1lZGl0IHRoZSBjb21waWxlZFxuLy8gQ1NTLiBGTEFUIHNlbGVjdG9ycyBvbiBwdXJwb3NlIChubyBTQ1NTIG5lc3RpbmcpLCBtYXRjaGluZyB0aGUgc2libGluZ1xuLy8gdjIgY29tcG9uZW50IGZpbGVzIChfdGFza2xpc3QtY2FyZC5zY3NzLCBfYWN0aXZpdHktcm93LnNjc3MpLlxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tcGlja2VyLXJvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgVW5pdmVyc2FsIHBhbmVsL3BpY2tlciByb3cgKHVzZXJzLCBsb2NhdGlvbnMsIHRhc2tsaXN0cyDigJQgS2ltLFxuLy8gIDE2LjA3LjIwMjYpLiBSZXBsYWNlcyB0aGUgcm9sZSBvZiB0aGUgaGFuZC1yb2xsZWQgYC5wcGFuZWwtcm93YCBpbiB0aGVcbi8vICBQbGFubmVyIHBhZ2UgKGJhY2tvZmZpY2UyL3NyYy9SRVgvQmFja29mZmljZS9WaWV3L3YxL3BsYW5uZXIvaW5kZXguaHRtbClcbi8vICB3aXRoIG9uZSByZWFsIGNvbXBvbmVudC5cbi8vXG4vLyAgUm93IGhlaWdodCBpcyBhIEZJWEVEIHZhbHVlIHBlciB2YXJpYW50IChub3QgZW1lcmdlbnQgZnJvbSB0ZXh0XG4vLyAgbWV0cmljcyksIHNvIHBhbmVscyBuZXZlciBqaXR0ZXI6IH40MHB4IHdpdGggbm8gbWV0YSwgfjQ4cHggd2l0aCBtZXRhLlxuLy9cbi8vICBMZWZ0IGFjY2VudCBiYXI6IGlkZW50aWNhbCByZWNpcGUgdG8gcWRuYXByby1hY3Rpdml0eS1yb3cnc1xuLy8gIC5yb3ctYWNjZW50LWJhciAvIHFkbmFwcm8tYW5zd2VyLW9wdGlvbidzIGRyYWcgaGFuZGxlIOKAlCBhYnNvbHV0ZSxcbi8vICAjNDY1MmYzLCBvcGFjaXR5IDAgLT4gMSwgMTUwbXMgZWFzZS4gUGFkZGluZy1sZWZ0IG9uIHRoZSByb3cgcmVzZXJ2ZXNcbi8vICB0aGUgYmFyJ3MgY2xlYXJhbmNlIHNvIHRoZXJlIGlzIHplcm8gbGF5b3V0IHNoaWZ0IG9uIGhvdmVyLlxuLy9cbi8vICBIb3ZlciBiYWNrZ3JvdW5kOiBhIEZMQVQgdGludCAoI2Y1ZjZmOCBsaWdodCAvIHJnYmEoMjU1LDI1NSwyNTUsMC4wNilcbi8vICBkYXJrKSwgTk9UIHRoZSBhY3Rpdml0eS1yb3cgZ2xhc3MtY2FyZCBzd2FwLiBUaGlzIHJvdyBsaXZlcyBvbiBhIHNvbGlkXG4vLyAgd2hpdGUgcGFuZWwgYmFja2dyb3VuZCAoLnBsYW5uZXItcGFuZWwpLCBzbyBpdCBib3Jyb3dzIHRoZSBcImhvdXNlXG4vLyAgbGlzdC1yb3cgY29udmVudGlvblwiIGluc3RlYWQg4oCUIHRoZSBzYW1lIGZsYXQgaG92ZXIgcWRuYXByby1tZW51LWl0ZW1cbi8vICAoLS1taS1iZy1ob3ZlcikgYW5kIHFkbmFwcm8tdGFza2xpc3QtY2FyZCdzIGBsaXN0YCB2YXJpYW50IGFscmVhZHkgdXNlXG4vLyAgZm9yIHJvd3Mgb24gYSB3aGl0ZSBzdXJmYWNlLiBPbmx5IHRoZSBBQ0NFTlQgQkFSIG1lY2hhbmljcyBhcmUgY29waWVkXG4vLyAgZnJvbSBhY3Rpdml0eS1yb3csIG5vdCBpdHMgZ2xhc3MgYmFja2dyb3VuZCAodGhhdCB0cmVhdG1lbnQgaXMgZm9yIGFcbi8vICB0cmFuc2x1Y2VudCBjYXJkIGZsb2F0aW5nIG92ZXIgYSBjb2xvcmVkIGNhbnZhcywgd2hpY2ggdGhpcyBpcyBub3QpLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnFkbmFwcm8tcGlja2VyLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogNnB4IDhweCA2cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zIGVhc2UsIGJvcmRlci1jb2xvciAxNTBtcyBlYXNlO1xuXG4gICAgLy8gRm9jdXMgcmluZyB0b2tlbnMg4oCUIG92ZXJyaWRkZW4gaW4gZGFyayBtb2RlIGJlbG93LlxuICAgIC0tcHItZm9jdXMtcmluZzogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICAtLXByLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xufVxuXG5xZG5hcHJvLXBpY2tlci1yb3cgKiAsXG5xZG5hcHJvLXBpY2tlci1yb3cgKjo6YmVmb3JlLFxucWRuYXByby1waWNrZXItcm93ICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vLyBNZXRhIGxpbmUgcHJlc2VudCDigJQgdGhlIHJvdyBncm93cyB0byBhIGZpeGVkIDQ4cHggKHNlZSBkb2NibG9jayBhYm92ZSkuXG5xZG5hcHJvLXBpY2tlci1yb3cucHItaGFzLW1ldGEge1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG59XG5cbnFkbmFwcm8tcGlja2VyLXJvdzpob3ZlcixcbnFkbmFwcm8tcGlja2VyLXJvdy5mb3JjZS1ob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTtcbn1cblxucWRuYXByby1waWNrZXItcm93OmZvY3VzLXdpdGhpbiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTtcbn1cblxucWRuYXByby1waWNrZXItcm93OmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLXByLWZvY3VzLXJpbmcpLCAwIDAgMCA1cHggdmFyKC0tcHItZm9jdXMtZ2xvdyk7XG59XG5cbi8vIC0tLS0gRHJhZyBTT1VSQ0UgKFFETkEgUGxhbm5lciBmYXNlIEEg4oCUIGRyYWdnYWJsZS1yb3cgYXR0cmlidXRlKSAtLS0tXG4vLyBOYXRpdmUgSFRNTDUgRG5ELCBzb3VyY2Ugc2lkZSBvbmx5IChzZWUgcWRuYS1waWNrZXItcm93LmpzIGRvY2Jsb2NrKS5cbi8vIFtkcmFnZ2FibGU9XCJ0cnVlXCJdIG1pcnJvcnMgdGhlIGRyYWdnYWJsZS1yb3cgYXR0cmlidXRlIDE6MSAoa2VwdCBpbiBzeW5jXG4vLyBieSB0aGUgY29tcG9uZW50J3MgX3N5bmNEcmFnZ2FibGUoKSksIHNvIHRoaXMgc3R5bGVzIHB1cmVseSBvZmYgdGhlXG4vLyBuYXRpdmUgYXR0cmlidXRlLCBubyBleHRyYSBjbGFzcyBuZWVkZWQgYXQgcmVzdC5cbnFkbmFwcm8tcGlja2VyLXJvd1tkcmFnZ2FibGU9XCJ0cnVlXCJdIHtcbiAgICBjdXJzb3I6IGdyYWI7XG59XG5cbnFkbmFwcm8tcGlja2VyLXJvdy5pcy1kcmFnZ2luZyB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIGN1cnNvcjogZ3JhYmJpbmc7XG59XG5cbi8vIC0tLS0gTGVmdCBhY2NlbnQgYmFyIC0tLS1cbi8vIFJlYWwgRE9NIGVsZW1lbnQgKG5vdCA6OmJlZm9yZSkg4oCUIHNlZSBkb2NibG9jay4gb3ZlcmZsb3c6aGlkZGVuIG9uIHRoZVxuLy8gaG9zdCBjbGlwcyBpdCB0byB0aGUgcm93J3MgYm9yZGVyLXJhZGl1cy5cblxuLnByLWFjY2VudC1iYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA0cHg7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHdpZHRoOiA0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDE7XG59XG5cbnFkbmFwcm8tcGlja2VyLXJvdzpob3ZlciAucHItYWNjZW50LWJhcixcbnFkbmFwcm8tcGlja2VyLXJvdzpmb2N1cy13aXRoaW4gLnByLWFjY2VudC1iYXIsXG5xZG5hcHJvLXBpY2tlci1yb3cuZm9yY2UtaG92ZXIgLnByLWFjY2VudC1iYXIge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi8vIC0tLS0gTGVhZGluZyBzbG90OiBhdmF0YXIvdGlsZSA8LT4gb3B0aW9ucyBidXR0b24gbW9ycGggLS0tLVxuLy8gRml4ZWQgMjh4MjggYm94LiBCb3RoIGNoaWxkcmVuIGFyZSBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQgSU5TSURFIGl0IGFuZFxuLy8gY3Jvc3NmYWRlIHZpYSBvcGFjaXR5IOKAlCBzYW1lIGZvb3RwcmludCwgc28gbm90aGluZyBlbHNlIGluIHRoZSByb3dcbi8vIHJlZmxvd3Mgd2hlbiB0aGUgbW9ycGggaGFwcGVucy5cblxuLnByLWxlYWRpbmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgZmxleDogbm9uZTtcbn1cblxuLnByLXZpc3VhbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgZWFzZTtcbn1cblxuLnByLXZpc3VhbCBxZG5hcHJvLWF2YXRhciB7XG4gICAgZmxleDogbm9uZTtcbn1cblxuLy8gcWRuYXByby1idXR0b24gc2l6ZT1cImNvbXBhY3RcIiBpY29uLW9ubHkgSVMgMjh4MjggKHNlZVxuLy8gX2J1dHRvbi5zY3NzIC5idXR0b24tc2l6ZS1jb21wYWN0LmJ1dHRvbi1pY29uLW9ubHkpIOKAlCBubyBleHRyYSBzaXppbmdcbi8vIG92ZXJyaWRlcyBuZWVkZWQsIGl0IGRyb3BzIHN0cmFpZ2h0IGludG8gdGhlIDI4eDI4IHNsb3QuXG4ucHItb3B0aW9ucy1idG4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgZWFzZTtcbn1cblxucWRuYXByby1waWNrZXItcm93OmhvdmVyIC5wci12aXN1YWwsXG5xZG5hcHJvLXBpY2tlci1yb3c6Zm9jdXMtd2l0aGluIC5wci12aXN1YWwsXG5xZG5hcHJvLXBpY2tlci1yb3cuZm9yY2UtaG92ZXIgLnByLXZpc3VhbCB7XG4gICAgb3BhY2l0eTogMDtcbn1cblxucWRuYXByby1waWNrZXItcm93OmhvdmVyIC5wci1vcHRpb25zLWJ0bixcbnFkbmFwcm8tcGlja2VyLXJvdzpmb2N1cy13aXRoaW4gLnByLW9wdGlvbnMtYnRuLFxucWRuYXByby1waWNrZXItcm93LmZvcmNlLWhvdmVyIC5wci1vcHRpb25zLWJ0biB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLy8gLS0tLSBUYXNrbGlzdCB0aWxlIC0tLS1cbi8vIDI4eDI4LCA2cHggcmFkaXVzIOKAlCBpZGVudGljYWwgZm9vdHByaW50IHRvIHFkbmFwcm8tdGFza2xpc3QtY2FyZCdzXG4vLyBgbGlzdGAgdmFyaWFudCAudGxjLXRpbGUgKDI4eDI4IC8gNnB4KS4gSWNvbiBpbnNpZGUgaXNcbi8vIHFkbmFwcm8tYWN0aXZpdHktaWNvbiBzaXplIDIwLCBzYW1lIGFzIHRsYy1saXN0J3MgaWNvbiBzaXppbmcuXG5cbi5wci10aWxlIHtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wci10aWxlLWJnLCAjZWVmMGYyKTtcbn1cblxuLy8gQ29sb3IgcGFsZXR0ZSBtaXJyb3JzIHFkbmFwcm8tdGFza2xpc3QtY2FyZCdzIHRsYy1jb2xvci0qIHRva2VucyAxOjFcbi8vIChzb3VyY2Ugb2YgdHJ1dGg6IHNjc3MvY29tcG9uZW50cy92Mi90YXNrbGlzdC1jYXJkL190YXNrbGlzdC1jYXJkLnNjc3MsXG4vLyB0aGUgcWRuYXByby10YWcgbGlnaHQtcGFzdGVsIHBhbGV0dGUpIHNvIGEgdGFza2xpc3QgcmVhZHMgd2l0aCB0aGUgRVhBQ1Rcbi8vIHNhbWUgdGlsZSBjb2xvciB3aGV0aGVyIGl0J3MgdGhlIGZ1bGwgY2FyZCBvciB0aGlzIHBpY2tlciByb3cuIE5vIHNoYXJlZFxuLy8gU0NTUyBtYXAvbWl4aW4gZXhpc3RzIGZvciB0aGlzIHBhbGV0dGUgYW55d2hlcmUgaW4gdGhlIGNvZGViYXNlIHlldFxuLy8gKHRhZywgbGFiZWwtY2lyY2xlLCBhY3Rpdml0eS1jYXJkLCBpbmZvLWNhcmQgYW5kIHRhc2tsaXN0LWNhcmQgZWFjaFxuLy8gbWlycm9yIHRoZWlyIG93biBjb3B5IHRoZSBzYW1lIHdheSkg4oCUIGZvbGxvd2luZyB0aGF0IGVzdGFibGlzaGVkXG4vLyBwYXR0ZXJuIHJhdGhlciB0aGFuIGludmVudGluZyBhIG5ldyBzaGFyZWQgbW9kdWxlIGZvciBvbmUgY29tcG9uZW50LlxuLnByLXRpbGUtY29sb3ItZ3JleSAgICAgICAgeyAtLXByLXRpbGUtYmc6IHZhcigtLWMtZ3JleS01MCk7IH1cbi5wci10aWxlLWNvbG9yLXJlZCAgICAgICAgIHsgLS1wci10aWxlLWJnOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpOyB9XG4ucHItdGlsZS1jb2xvci15ZWxsb3cgICAgICB7IC0tcHItdGlsZS1iZzogdmFyKC0tYy1jaGlwLXllbGxvdy1iZyk7IH1cbi5wci10aWxlLWNvbG9yLWdyZWVuICAgICAgIHsgLS1wci10aWxlLWJnOiB2YXIoLS1jLWNoaXAtZ3JlZW4tYmcpOyB9XG4ucHItdGlsZS1jb2xvci1ibHVlICAgICAgICB7IC0tcHItdGlsZS1iZzogdmFyKC0tYy1zaWduYWwtYmx1ZS1iZyk7IH1cbi5wci10aWxlLWNvbG9yLWJyaWdodC1ibHVlIHsgLS1wci10aWxlLWJnOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1iZyk7IH1cbi5wci10aWxlLWNvbG9yLXBpbmsgICAgICAgIHsgLS1wci10aWxlLWJnOiB2YXIoLS1jLXNpZ25hbC1waW5rLWJnKTsgfVxuLnByLXRpbGUtY29sb3ItcHVycGxlICAgICAgeyAtLXByLXRpbGUtYmc6IHZhcigtLWMtY2hpcC1wdXJwbGUtYmcpOyB9XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5wci10aWxlLWNvbG9yLWdyZXkgICAgICAgIHsgLS1wci10aWxlLWJnOiAjNDA0NDRkOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucHItdGlsZS1jb2xvci1yZWQgICAgICAgICB7IC0tcHItdGlsZS1iZzogIzVhMmIyYjsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnByLXRpbGUtY29sb3IteWVsbG93ICAgICAgeyAtLXByLXRpbGUtYmc6ICM1YTRkMWY7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5wci10aWxlLWNvbG9yLWdyZWVuICAgICAgIHsgLS1wci10aWxlLWJnOiAjMmE1NTQ0OyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucHItdGlsZS1jb2xvci1ibHVlICAgICAgICB7IC0tcHItdGlsZS1iZzogIzJlM2U1NDsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnByLXRpbGUtY29sb3ItYnJpZ2h0LWJsdWUgeyAtLXByLXRpbGUtYmc6ICMzYTRhOGE7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5wci10aWxlLWNvbG9yLXBpbmsgICAgICAgIHsgLS1wci10aWxlLWJnOiAjNGUyYTM2OyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucHItdGlsZS1jb2xvci1wdXJwbGUgICAgICB7IC0tcHItdGlsZS1iZzogIzNhMzU1NTsgfVxuXG4vLyAtLS0tIEJvZHk6IGxhYmVsICgrIG9wdGlvbmFsIG1ldGEpIC0tLS1cblxuLnByLWJvZHkge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDFweDtcbn1cblxuLnByLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDEzLjVweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZyk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi5wci1tZXRhIHtcbiAgICBmb250LXNpemU6IDExLjVweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbn1cblxuLy8gLS0tLSBSZWR1Y2VkIG1vdGlvbjogY3Jvc3NmYWRlIGJlY29tZXMgYW4gaW5zdGFudCBzd2FwIC0tLS1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucHItYWNjZW50LWJhcixcbiAgICAucHItdmlzdWFsLFxuICAgIC5wci1vcHRpb25zLWJ0bixcbiAgICBxZG5hcHJvLXBpY2tlci1yb3cge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBEYXJrIG1vZGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5bZGF0YS10aGVtZT1kYXJrXSBxZG5hcHJvLXBpY2tlci1yb3cge1xuICAgIC0tcHItZm9jdXMtcmluZzogI2E1YWNmZjtcbiAgICAtLXByLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNDApO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSBxZG5hcHJvLXBpY2tlci1yb3c6aG92ZXIsXG5bZGF0YS10aGVtZT1kYXJrXSBxZG5hcHJvLXBpY2tlci1yb3c6Zm9jdXMtd2l0aGluLFxuW2RhdGEtdGhlbWU9ZGFya10gcWRuYXByby1waWNrZXItcm93LmZvcmNlLWhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucHItbGFiZWwgeyBjb2xvcjogI2YwZjFmMjsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnByLW1ldGEgIHsgY29sb3I6ICNhMGE0Yjg7IH1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL3BsYWNlaG9sZGVyLWltYWdlL19wbGFjZWhvbGRlci1pbWFnZS1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4vKiBxZG5hcHJvLXBsYWNlaG9sZGVyLWltYWdlIOKAlCBob3N0ICsgaW1nIHN0eWxpbmcuXG4gICBNaXJyb3JzIHRoZSBxZG5hcHJvLWlsbHVzdHJhdGlvbiBhcHByb2FjaDogd2lkdGgtZHJpdmVuIHdpdGggYXV0byBoZWlnaHQsXG4gICBwbHVzIGFuIG9wdGlvbmFsIGNvdmVyIG1vZGUgYW5kIGEgc29mdCBtaXNzaW5nLWFzc2V0IGZhbGxiYWNrLiAqL1xuXG4ucWRuYXByby1wbGFjZWhvbGRlci1pbWFnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xufVxuXG4ucWRuYXByby1wbGFjZWhvbGRlci1pbWFnZSAucGxhY2Vob2xkZXItaW1hZ2UtaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qIENvdmVyIG1vZGU6IGNvbnN1bWVyIHNldHMgd2lkdGggKyBoZWlnaHQgb24gdGhlIGhvc3QsIGltYWdlIGZpbGxzIGl0LiAqL1xuLnFkbmFwcm8tcGxhY2Vob2xkZXItaW1hZ2UucGxhY2Vob2xkZXItaW1hZ2UtY292ZXIge1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xufVxuLnFkbmFwcm8tcGxhY2Vob2xkZXItaW1hZ2UucGxhY2Vob2xkZXItaW1hZ2UtY292ZXIgLnBsYWNlaG9sZGVyLWltYWdlLWltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4vKiBNaXNzaW5nIGFzc2V0OiBzb2Z0IGRhc2hlZCBwbGFjZWhvbGRlciBpbnN0ZWFkIG9mIGEgYnJva2VuLWltYWdlIGljb24uICovXG4ucWRuYXByby1wbGFjZWhvbGRlci1pbWFnZS5wbGFjZWhvbGRlci1pbWFnZS1taXNzaW5nIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogODBweDtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tYy1ncmV5LTMwMCk7XG4gICAgYmFja2dyb3VuZDogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg0NWRlZywgdmFyKC0tYy1iZy1jYXJkLWhvdmVyKSwgdmFyKC0tYy1iZy1jYXJkLWhvdmVyKSA4cHgsIHZhcigtLWMtYm9yZGVyLXNvZnQtMikgOHB4LCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpIDE2cHgpO1xufVxuIiwiLy8gcWRuYXByby1wcm9ncmVzcyDigJQgdGhpbiBsYWJlbGxlZCBwcm9ncmVzcyBiYXIuXG4vLyBGTEFUIENTUzsgY29sb3Vycy9yYWRpaSBmcm9tIHRoZSBkZXNpZ24tdG9rZW4gOnJvb3QgKHZhcigtLWMtKikgLyAtLXItKikuXG4vLyBFZGl0IEhFUkUsIHRoZW4gcnVuIGBndWxwIHNhc3MtdjFgIChsaWJyYXJ5KSArIHRoZSBzeW5jIChQV0EpLlxuXG4ucWRuYXByby1wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICAtLXBnLWZpbGw6IHZhcigtLWMtc3VjY2Vzcy1icmlnaHQpO1xuICAtLXBnLXRyYWNrOiB2YXIoLS1jLWJsYWNrLTEyKTtcbn1cblxuLnFkbmFwcm8tcHJvZ3Jlc3MucHJvZ3Jlc3MtdG9uZS1wdXJwbGUgICAgeyAtLXBnLWZpbGw6IHZhcigtLWMtYnJhbmQtcHVycGxlKTsgfVxuLnFkbmFwcm8tcHJvZ3Jlc3MucHJvZ3Jlc3MtdG9uZS1uZXV0cmFsICAgeyAtLXBnLWZpbGw6IHZhcigtLWMtZ3JleS01MDApOyB9XG4ucWRuYXByby1wcm9ncmVzcy5wcm9ncmVzcy10b25lLWhpZ2hsaWdodCB7IC0tcGctZmlsbDogdmFyKC0tYy1wdXJwbGUtaGlnaGxpZ2h0KTsgfVxuXG4vLyBQdWxzZSBcIk1pam4gUHVsc2VcIiB0cmFjayBjb2xvdXJzIChLaW0gMjQuMDkuMjAyNik6IG5vIG1hdGNoaW5nIGRlc2lnbiB0b2tlblxuLy8gZXhpc3RzIHlldCBmb3IgdGhlc2UgZm91ciwgc28gdGhleSBhcmUgZGVmaW5lZCBoZXJlIGFzIGNvbXBvbmVudC1sZXZlbCBjdXN0b21cbi8vIHByb3BlcnRpZXMsIG9uZSBoZXggZWFjaCwgaW5zdGVhZCBvZiBzY2F0dGVyaW5nIHRoZSBoZXggdGhyb3VnaCBydWxlcy4gVGhlXG4vLyB2YWx1ZXMgYXJlIHRoZSBkZWVwL2RhcmsgZmlsbCBzdG9wIG9mIHRoZSBzYW1lLW5hbWVkIHFkbmFwcm8tYmFkZ2UgdG9uZSAoYmFkZ2Vcbi8vIHByb29mKSwgc28gYSBQdWxzZSB0cmFjayBhbmQgaXRzIGJhZGdlIHJlYWQgYXMgb25lIGNvbG91ciBmYW1pbHkuXG4ucWRuYXByby1wcm9ncmVzcy5wcm9ncmVzcy10b25lLW1pbnQgICB7IC0tcGctZmlsbDogIzZiYmRiODsgfSAvLyBLZW5uaXNcbi5xZG5hcHJvLXByb2dyZXNzLnByb2dyZXNzLXRvbmUtcm9zZSAgIHsgLS1wZy1maWxsOiAjZTA1NzgwOyB9IC8vIERlZWxuYW1lXG4ucWRuYXByby1wcm9ncmVzcy5wcm9ncmVzcy10b25lLWdvbGQgICB7IC0tcGctZmlsbDogI2UzYTExYzsgfSAvLyBSZWVrc1xuLnFkbmFwcm8tcHJvZ3Jlc3MucHJvZ3Jlc3MtdG9uZS1vcmFuZ2UgeyAtLXBnLWZpbGw6ICNmMjdiMWQ7IH0gLy8gQWZyb25kZXJcblxuLnFkbmFwcm8tcHJvZ3Jlc3MgLnByb2dyZXNzLWhlYWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuXG4ucWRuYXByby1wcm9ncmVzcyAucHJvZ3Jlc3MtbGFiZWwge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuXG4ucWRuYXByby1wcm9ncmVzcyAucHJvZ3Jlc3MtcGN0IHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHkpO1xufVxuXG4ucWRuYXByby1wcm9ncmVzcyAucHJvZ3Jlc3MtdHJhY2sge1xuICBoZWlnaHQ6IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tcGctdHJhY2spO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucWRuYXByby1wcm9ncmVzcyAucHJvZ3Jlc3MtZmlsbCB7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcGctZmlsbCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcGlsbCk7XG4gIC8vIFNwcmluZyBlYXNpbmc6IGZpbGwgb3ZlcnNob290cyBzbGlnaHRseSBiZWZvcmUgc2V0dGxpbmcg4oCUIGdpdmVzIGEgcHJlbWl1bSwgYWxpdmUgZmVlbC5cbiAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zOCkgNTAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICBhbmltYXRpb246IHByb2dyZXNzLXNoaW1tZXIgMi40cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHByb2dyZXNzLXNoaW1tZXIge1xuICAwJSAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9XG59XG5cbi8vIFJlc3BlY3QgdGhlIE9TLWxldmVsIHJlZHVjZWQtbW90aW9uIHByZWZlcmVuY2U6IGtpbGwgYm90aCB0aGUgc3ByaW5nXG4vLyB0cmFuc2l0aW9uIG9uIHRoZSBmaWxsIGFuZCB0aGUgc2hpbW1lciBzd2VlcCwgc28gYSB2YWx1ZSBjaGFuZ2UgKGUuZy4gdGhlXG4vLyBQV0EgZm9ybS1jYXJkJ3Mgc3RpY2t5IHByb2dyZXNzIGJhciBhZHZhbmNpbmcgYmV0d2VlbiBjYXJkcykgc25hcHNcbi8vIGluc3RhbnRseSBpbnN0ZWFkIG9mIGFuaW1hdGluZy4gQWRkaXRpdmUg4oCUIGV2ZXJ5IGNvbnN1bWVyIGJlbmVmaXRzLCBub1xuLy8gYXR0cmlidXRlIG5lZWRlZC4gWzEwLjA3LjIwMjYsIGZvcm0tY2FyZCByZXdvcmtdXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby1wcm9ncmVzcyAucHJvZ3Jlc3MtZmlsbCB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuICAucWRuYXByby1wcm9ncmVzcyAucHJvZ3Jlc3MtZmlsbDo6YWZ0ZXIge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxufVxuXG4vLyBJbmRldGVybWluYXRlIOKAlCBcImJ1c3ksIGFtb3VudCB1bmtub3duXCIgKGUuZy4gYSB2aWRlbyBidWZmZXJpbmcgYmVmb3JlIGl0c1xuLy8gZHVyYXRpb24vdG90YWwgaXMga25vd24pLiBBIHBhcnRpYWwgZmlsbCBzbGlkZXMgYWNyb3NzIHRoZSB0cmFjayBvbiByZXBlYXQ7XG4vLyB2YWx1ZS9tYXggYXJlIGlnbm9yZWQgKEpTIGRyb3BzIHRoZSBpbmxpbmUgd2lkdGggc28gdGhpcyBvd25zIGl0KS4gQWRkaXRpdmUg4oCUXG4vLyBvbmx5IGFwcGxpZXMgd2hlbiB0aGUgYGluZGV0ZXJtaW5hdGVgIGF0dHJpYnV0ZSBpcyBzZXQuIFsxMS4wNy4yMDI2LCBETVMgdmlld2VyIGJ1ZmZlciBiYXJdXG4ucWRuYXByby1wcm9ncmVzcy5wcm9ncmVzcy1pbmRldGVybWluYXRlIC5wcm9ncmVzcy1maWxsIHtcbiAgd2lkdGg6IDQwJSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBub25lO1xuICBhbmltYXRpb246IHByb2dyZXNzLWluZGV0ZXJtaW5hdGUtc2xpZGUgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZS1zbGlkZSB7XG4gIDAlICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEyMCUpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzIwJSk7IH1cbn1cbi8vIFJlZHVjZWQgbW90aW9uOiBubyBzd2VlcCDigJQgc2hvdyBhIHN0YXRpYyBoYWxmLWZpbGxlZCwgZGltbWVkIGJhciBzbyBpdCBzdGlsbFxuLy8gcmVhZHMgYXMgXCJpbiBwcm9ncmVzcywgdW5rbm93biBhbW91bnRcIiB3aXRob3V0IGFuaW1hdGlvbi5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLXByb2dyZXNzLnByb2dyZXNzLWluZGV0ZXJtaW5hdGUgLnByb2dyZXNzLWZpbGwge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IC41O1xuICB9XG4gIC5xZG5hcHJvLXByb2dyZXNzLnByb2dyZXNzLWluZGV0ZXJtaW5hdGUgLnByb2dyZXNzLWZpbGw6OmFmdGVyIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG5cbi8vIEhpZ2hsaWdodCB2YXJpYW50IOKAlCB0aW50ZWQgcGFuZWwgbWF0Y2hpbmcgdGhlIHRvbmUsIHRhbGxlciBiYXIsIGJvbGRlciBsYWJlbC5cbi8vIERyYXdzIHRoZSBleWUgKGUuZy4gYSBwaW5uZWQgcHJvZ3Jlc3MgaGVhZGVyIG9uIHRoZSBwZXItdW5pdCBzY3JlZW4pLlxuLnFkbmFwcm8tcHJvZ3Jlc3MucHJvZ3Jlc3MtdmFyaWFudC1oaWdobGlnaHQge1xuICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItY2FyZCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmxhY2stMDYpO1xufVxuLnFkbmFwcm8tcHJvZ3Jlc3MucHJvZ3Jlc3MtdmFyaWFudC1oaWdobGlnaHQucHJvZ3Jlc3MtdG9uZS1zdWNjZXNzICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi1iZyk7IH1cbi5xZG5hcHJvLXByb2dyZXNzLnByb2dyZXNzLXZhcmlhbnQtaGlnaGxpZ2h0LnByb2dyZXNzLXRvbmUtcHVycGxlICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zZWNvbmRhcnktcHVycGxlKTsgfVxuLnFkbmFwcm8tcHJvZ3Jlc3MucHJvZ3Jlc3MtdmFyaWFudC1oaWdobGlnaHQucHJvZ3Jlc3MtdG9uZS1uZXV0cmFsICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJsYWNrLTA2KTsgfVxuLnFkbmFwcm8tcHJvZ3Jlc3MucHJvZ3Jlc3MtdmFyaWFudC1oaWdobGlnaHQucHJvZ3Jlc3MtdG9uZS1oaWdobGlnaHQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWFjdGlvbi0wOCk7IH1cbi5xZG5hcHJvLXByb2dyZXNzLnByb2dyZXNzLXZhcmlhbnQtaGlnaGxpZ2h0IC5wcm9ncmVzcy10cmFjayB7IGhlaWdodDogOHB4OyB9XG4ucWRuYXByby1wcm9ncmVzcy5wcm9ncmVzcy12YXJpYW50LWhpZ2hsaWdodCAucHJvZ3Jlc3MtbGFiZWwge1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHkpO1xufVxuLnFkbmFwcm8tcHJvZ3Jlc3MucHJvZ3Jlc3MtdmFyaWFudC1oaWdobGlnaHQgLnByb2dyZXNzLXBjdCB7IGZvbnQtc2l6ZTogMTVweDsgfVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvcHJvamVjdC1jYXJkL19wcm9qZWN0LWNhcmQtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuQGNoYXJzZXQgXCJVVEYtOFwiO1xuLnFkbmFwcm8tcHJvamVjdC1jYXJkIHtcbiAgLyogSGVpZ2h0IG9mIHRoZSBwaG90bywgYXMgT05FIHZhbHVlIHRoZSBwaG90byBiYWRnZSBjYW4gYWxzbyByZWFkLiBEZWNsYXJlZFxuICAgICBvbiB0aGUgSE9TVCBhbmQgbm90IG9uIC5wcm9qZWN0LWNhcmQtZnJhbWU6IHRoZSBvdmVybGF5IHZhcmlhbnQgb3ZlcnJpZGVzXG4gICAgIGl0IG9uIHRoZSBob3N0IHRvbywgYW5kIGEgdmFsdWUgc2V0IG9uIHRoZSBjaGlsZCB3b3VsZCBhbHdheXMgYmVhdCBhblxuICAgICBpbmhlcml0ZWQgb25lIC0gdGhlIGJhZGdlIHdvdWxkIHRoZW4gc2l0IDI3cHggYWJvdmUgdGhlIG92ZXJsYXkgcGhvdG8nc1xuICAgICByZWFsIGVkZ2UgKG1lYXN1cmVkIDE1LjA5LjIwMjYpLiAqL1xuICAtLXBjLXBob3RvLWg6IGNhbGMoMTI0cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICAtLWMtY2FyZC1iZzogI2ZmZmZmZjtcbiAgLS1jLWNhcmQtYm9yZGVyOiB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xuICAtLWMtY2FyZC1kaXZpZGVyOiB2YXIoLS1jLWdyZXktMzAwKTtcbiAgLS1jLXRleHQtYm9keTogdmFyKC0tYy1ncmV5LTk1MCk7XG4gIC0tYy10ZXh0LXNlY29uZGFyeTogdmFyKC0tYy1ncmV5LTUwMCk7XG4gIC0tYy1waG90by1mYWxsYmFjazogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpIDAlLCB2YXIoLS1jLWNoaXAtcHVycGxlLWJnKSAxMDAlKTtcbiAgLyogRGVuc2l0eSBzY2FsZSBrbm9iOiAxID0gZGVmYXVsdDsgW2RlbnNpdHk9Y29tcGFjdF0gc2V0cyAwLjggc28gdGhlXG4gICAgIHdob2xlIGFic29sdXRlLXBvc2l0aW9uZWQgbGF5b3V0IChzaXplcywgcG9zaXRpb25zLCBmb250cykgc2NhbGVzXG4gICAgIHVuaWZvcm1seSB0byB0aGUgODAlIGxvb2sgV0lUSE9VVCB0aGUgem9vbSBwcm9wZXJ0eS4gW0tpbSAyMDI2LTA2LTAzXSAqL1xuICAtLXBjLXNjYWxlOiAxO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtY2FyZC1iZyk7XG4gIGJvcmRlcjogY2FsYygxcHggKiB2YXIoLS1wYy1zY2FsZSkpIHNvbGlkIHZhcigtLWMtY2FyZC1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiBjYWxjKDEycHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2hhZG93OiAwIGNhbGMoMXB4ICogdmFyKC0tcGMtc2NhbGUpKSBjYWxjKDJweCAqIHZhcigtLXBjLXNjYWxlKSkgcmdiYSgyMCwgMjUsIDgwLCAwLjA0KSwgMCBjYWxjKDZweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYygxNnB4ICogdmFyKC0tcGMtc2NhbGUpKSByZ2JhKDIwLCAyNSwgODAsIDAuMDUpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHkpO1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzeXN0ZW0tdWksIHNhbnMtc2VyaWY7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBib3gtc2hhZG93IDE0MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45OSk7XG4gIGJveC1zaGFkb3c6IDAgY2FsYygxcHggKiB2YXIoLS1wYy1zY2FsZSkpIGNhbGMoMXB4ICogdmFyKC0tcGMtc2NhbGUpKSByZ2JhKDIwLCAyNSwgODAsIDAuMDQpLCAwIGNhbGMoMnB4ICogdmFyKC0tcGMtc2NhbGUpKSBjYWxjKDZweCAqIHZhcigtLXBjLXNjYWxlKSkgcmdiYSgyMCwgMjUsIDgwLCAwLjA0KTtcbn1cblxuLyog4pqg77iPIGAucHJvamVjdC1jYXJkLW1lbnVbb3Blbl1gIE1PRVQgaW4gZGV6ZSB1aXR6b25kZXJpbmcgc3RhYW4uXG4gICBFZW4gb3BlbiBrYWFydG1lbnUgd29yZHQgdWl0IGRlIGthYXJ0IGdldGlsZCBtZXQgYHBvc2l0aW9uOiBmaXhlZGAgKGRlIGthYXJ0XG4gICBrbmlwdCB6aWNoemVsZiBhZiBtZXQgYG92ZXJmbG93OiBoaWRkZW5gIGhpZXJib3ZlbikuIEVlbiBgdHJhbnNmb3JtYCBvcCBlZW5cbiAgIHZvb3JvdWRlciBtYWFrdCBkaWUgdm9vcm91ZGVyIGVjaHRlciBoZXQgcmVmZXJlbnRpZWthZGVyIHZvb3IgZWVuIGBmaXhlZGBcbiAgIGtpbmQg4oCUIGR1cyB6b2RyYSBkZSBrYWFydCBiaWogaGV0IElORFJVS0tFTiB2YW4gZGUgbXVpc2tub3AgYHNjYWxlKDAuOTkpYFxuICAga3JlZWcsIHNwcm9uZyBoZXQgb3BlbiBtZW51IHdlZyB2YW4gb25kZXIgZGUgY3Vyc29yIChnZW1ldGVuIDEwLjA4LjIwMjY6XG4gICA5MTlweCBuYWFyIGxpbmtzLCBidWl0ZW4gaGV0IHZlbnN0ZXIpIGVuIHdlcmQgaGV0IG9vayBub2cgZ2VrbmlwdC4gRGVcbiAgIGBtb3VzZXVwYCBsYW5kZGUgZGFhcmRvb3Igb3AgZGUga2FhcnRmb3RvIGluIHBsYWF0cyB2YW4gb3AgaGV0IG1lbnUtaXRlbSwgZGVcbiAgIGJyb3dzZXIgdnV1cmRlIGRlIGtsaWsgb3AgZGUgS0FBUlQsIGVuIHBhZ2luYSdzIGRpZSBkZSBoZWxlIGthYXJ0IGtsaWtiYWFyXG4gICBtYWtlbiAoUHVsc2UpIG5hdmlnZWVyZGVuIHdlZyBpbiBwbGFhdHMgdmFuIGhldCBtZW51LWl0ZW0gdWl0IHRlIHZvZXJlbi5cbiAgIEVmZmVjdDogZWxrIG1lbnUtaXRlbSB3YXMgbWV0IGVlbiBlY2h0ZSBtdWlzIG9uYnJ1aWtiYWFyLCB0ZXJ3aWpsIGVlblxuICAgZ2VhdXRvbWF0aXNlZXJkZSBrbGlrIChpbmRydWtrZW4rbG9zbGF0ZW4gaW4gw6nDqW4gZnJhbWUpIHfDqWwgd2Vya3RlLlxuICAgRGUgZHJpZSBgOmFjdGl2ZWAtdWl0em9uZGVyaW5nZW4gaGllcm9uZGVyIGJlc3RvbmRlbiBhbCBvbSBkZXplbGZkZSByZWRlbjtcbiAgIGhldCBvcGVuIG1lbnUgd2FzIHNpbXBlbHdlZyB2ZXJnZXRlbi4gKi9cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdOmFjdGl2ZTpoYXMoLnByb2plY3QtY2FyZC1mYXZvcml0ZTphY3RpdmUsXG4ucHJvamVjdC1jYXJkLW1lbnUtdHJpZ2dlcjphY3RpdmUsXG4ucHJvamVjdC1jYXJkLWFjdGlvbjphY3RpdmUsXG4ucHJvamVjdC1jYXJkLW1lbnVbb3Blbl0pIHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBib3gtc2hhZG93OiAwIGNhbGMoMXB4ICogdmFyKC0tcGMtc2NhbGUpKSBjYWxjKDJweCAqIHZhcigtLXBjLXNjYWxlKSkgcmdiYSgyMCwgMjUsIDgwLCAwLjA0KSwgMCBjYWxjKDZweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYygxNnB4ICogdmFyKC0tcGMtc2NhbGUpKSByZ2JhKDIwLCAyNSwgODAsIDAuMDUpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXTpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMCBjYWxjKDFweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYygycHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoMjAsIDI1LCA4MCwgMC4wNCksIDAgY2FsYyg2cHggKiB2YXIoLS1wYy1zY2FsZSkpIGNhbGMoMTZweCAqIHZhcigtLXBjLXNjYWxlKSkgcmdiYSgyMCwgMjUsIDgwLCAwLjA1KSwgMCAwIDAgY2FsYyg0cHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1mcmFtZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogY2FsYygyMDhweCAqIHZhcigtLXBjLXNjYWxlKSk7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLXVwcGVyLWNsaXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogY2FsYyg1MHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtcGhvdG8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogY2FsYygxMjRweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpO1xuICB6LWluZGV4OiAyO1xuICBmaWx0ZXI6IHNhdHVyYXRlKDAuNDUpIGJyaWdodG5lc3MoMC45KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDYwMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjA1LCAwLjUsIDEpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1waG90bzo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDIyLCAyNSwgNzUsIDApIDAlLCByZ2JhKDIyLCAyNSwgNzUsIDAuMjUpIDUwJSwgcmdiYSgyMiwgMjUsIDc1LCAwLjc4KSAxMDAlKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLXBob3RvLXBsYWNlaG9sZGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tYy1waG90by1mYWxsYmFjayk7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLWhlYWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiBjYWxjKDQ0cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBwYWRkaW5nOiBjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYyg0NHB4ICogdmFyKC0tcGMtc2NhbGUpKSAwIGNhbGMoOHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgei1pbmRleDogMTtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtbG9nbyB7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoNHB4ICogdmFyKC0tcGMtc2NhbGUpKSAhaW1wb3J0YW50O1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1oZWFkZXItYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IGNhbGMoNHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtbmFtZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEzMnB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGNhbGMoNTZweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCBjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGZvbnQtc2l6ZTogY2FsYygxNnB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgbGluZS1oZWlnaHQ6IGNhbGMoMjRweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB6LWluZGV4OiAzO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNjAwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuMDUsIDAuNSwgMSksIHJpZ2h0IDYwMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjA1LCAwLjUsIDEpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1vcmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxNjBweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBmb250LXNpemU6IGNhbGMoMTJweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKDIwcHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LXNlY29uZGFyeSk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB6LWluZGV4OiAxO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNjAwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuMDUsIDAuNSwgMSk7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLWluZm8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxODRweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IGNhbGMoMjhweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIHBhZGRpbmc6IDAgY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHotaW5kZXg6IDE7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA2MDBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS4wNSwgMC41LCAxKTtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtdGVhbSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1kYXRlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogY2FsYyg0cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LXNlY29uZGFyeSk7XG4gIGZvbnQtc2l6ZTogY2FsYygxMHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgbGluZS1oZWlnaHQ6IGNhbGMoMjBweCAqIHZhcigtLXBjLXNjYWxlKSk7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLWRhdGUgcWRuYXByby1pY29uIHtcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtdG9wLWFjdGlvbnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICByaWdodDogY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICB6LWluZGV4OiA0O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtZmF2b3JpdGUge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgLy8gQ29uc3RyYWluIHRvIHRoZSBzYW1lIDMycHggYmFzZSBhcyB0aGUgbWVudS10cmlnZ2VyIHNvIHRoZSBwaW4gc2NhbGVzXG4gIC8vIHdpdGggLS1wYy1zY2FsZSB0b2dldGhlciB3aXRoIHRoZSByZXN0IG9mIHRoZSBjYXJkLiBXaXRob3V0IHRoaXMgdGhlXG4gIC8vIHFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uIGNvbXBvbmVudCdzIG93biBDU1Mga2VlcHMgaXQgYXQgaXRzIG5hdGl2ZSAzMnB4XG4gIC8vIHdoaWxlIHRoZSByZXN0IG9mIHRoZSBjYXJkIHNocmlua3Mg4oCUIG1ha2luZyB0aGUgcGluIGxvb2sgb3ZlcnNpemVkXG4gIC8vIGF0IGRlbnNpdHk9XCJjb21wYWN0XCIuIFtLaW0gMjAyNi0wNi0wM11cbiAgd2lkdGg6IGNhbGMoMzJweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGhlaWdodDogY2FsYygzMnB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU1KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKGNhbGMoOHB4ICogdmFyKC0tcGMtc2NhbGUpKSkgc2F0dXJhdGUoMS41KTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpKSBzYXR1cmF0ZSgxLjUpO1xuICBib3gtc2hhZG93OiAwIGNhbGMoMXB4ICogdmFyKC0tcGMtc2NhbGUpKSBjYWxjKDNweCAqIHZhcigtLXBjLXNjYWxlKSkgcmdiYSgwLCAwLCAwLCAwLjA4KSwgMCAwIDAgY2FsYygxcHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoMCwgMCwgMCwgMC4wNCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAxNjBtcyBlYXNlO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1mYXZvcml0ZTpub3QoLmZhdm9yaXRlLWJ1dHRvbi1mYXZvcml0ZWQpIHtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZDpob3ZlciAucHJvamVjdC1jYXJkLWZhdm9yaXRlOm5vdCguZmF2b3JpdGUtYnV0dG9uLWZhdm9yaXRlZCksIC5xZG5hcHJvLXByb2plY3QtY2FyZDpmb2N1cy13aXRoaW4gLnByb2plY3QtY2FyZC1mYXZvcml0ZTpub3QoLmZhdm9yaXRlLWJ1dHRvbi1mYXZvcml0ZWQpIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLWZhdm9yaXRlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtbWVudS10cmlnZ2VyIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDA7XG4gIGhlaWdodDogY2FsYygzMnB4ICogdmFyKC0tcGMtc2NhbGUpKSAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiBjYWxjKDMycHggKiB2YXIoLS1wYy1zY2FsZSkpICFpbXBvcnRhbnQ7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMzJweCAqIHZhcigtLXBjLXNjYWxlKSkgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IG1heC13aWR0aCAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCB3aWR0aCAyMDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBtaW4td2lkdGggMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgbWFyZ2luLWxlZnQgMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgb3BhY2l0eSAxNTBtcyBlYXNlLCBiYWNrZ3JvdW5kIDEyMG1zIGVhc2U7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZDpob3ZlciAucHJvamVjdC1jYXJkLW1lbnUtdHJpZ2dlciwgLnFkbmFwcm8tcHJvamVjdC1jYXJkOmZvY3VzLXdpdGhpbiAucHJvamVjdC1jYXJkLW1lbnUtdHJpZ2dlciB7XG4gIHdpZHRoOiBjYWxjKDMycHggKiB2YXIoLS1wYy1zY2FsZSkpICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogY2FsYygzMnB4ICogdmFyKC0tcGMtc2NhbGUpKSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IGNhbGMoMzJweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICBtYXJnaW4tbGVmdDogY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTUpICFpbXBvcnRhbnQ7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cihjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSkpIHNhdHVyYXRlKDEuNSk7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKGNhbGMoOHB4ICogdmFyKC0tcGMtc2NhbGUpKSkgc2F0dXJhdGUoMS41KTtcbiAgYm94LXNoYWRvdzogMCBjYWxjKDFweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYygzcHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoMCwgMCwgMCwgMC4wOCksIDAgMCAwIGNhbGMoMXB4ICogdmFyKC0tcGMtc2NhbGUpKSByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQ6aG92ZXIgLnByb2plY3QtY2FyZC1tZW51LXRyaWdnZXI6aG92ZXIsIC5xZG5hcHJvLXByb2plY3QtY2FyZDpmb2N1cy13aXRoaW4gLnByb2plY3QtY2FyZC1tZW51LXRyaWdnZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpICFpbXBvcnRhbnQ7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLWRpdmlkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogY2FsYyg1MHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogY2FsYygxcHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNhcmQtZGl2aWRlcik7XG4gIHotaW5kZXg6IDQ7XG59XG5cbi8qIENoZWNrbGlzdCBhY3Rpb24g4oCUIGhpZGRlbiB1bnRpbCB0aGUgYmFja2VuZCBmZWF0dXJlIGxhbmRzLlxuICAgKEtpbSAyMDI2LTA1LTMwIOKAlCBwbGFjZWhvbGRlciwgcmUtZW5hYmxlIHdoZW4gdGhlIHBhZ2UgZXhpc3RzLikgKi9cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLWFjdGlvbi1saXN0IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEFyY2hpdmVkIHZhcmlhbnQg4oCUIHNldCB2aWEgW2FyY2hpdmVkXSBhdHRyaWJ1dGUgb24gdGhlIGhvc3QuXG4gICBQaG90byBpcyBoZWF2aWx5IGRlc2F0dXJhdGVkLCBwaW4tYnV0dG9uIGlzIGhpZGRlbiwgYVxuICAgXCJHZWFyY2hpdmVlcmRcIiBjaGlwIHNpdHMgdG9wLWxlZnQsIGFuZCBhIGRpYWdvbmFsIEdFQVJDSElWRUVSRFxuICAgd2F0ZXJtYXJrIGNyb3NzZXMgdGhlIHBob3RvLiAoS2ltIDIwMjYtMDUtMjkpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5xZG5hcHJvLXByb2plY3QtY2FyZFthcmNoaXZlZF0ge1xuICBvcGFjaXR5OiAwLjg1O1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbYXJjaGl2ZWRdIC5wcm9qZWN0LWNhcmQtcGhvdG8ge1xuICBmaWx0ZXI6IHNhdHVyYXRlKDAuMTUpIGJyaWdodG5lc3MoMC44NSk7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZFthcmNoaXZlZF0gLnByb2plY3QtY2FyZC1mYXZvcml0ZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogU3RhdHVzIHBpbGwgKHNsb3Q9XCJzdGF0dXNcIikg4oCUIHRvcC1sZWZ0IG9uIHRoZSBwaG90bywgYWJvdmUgdGhlIHBob3RvICh6PTIpXG4gICBhbmQgb3V0IG9mIHRoZSB3YXkgb2YgdGhlIHBpbiArIGhvdmVyIG1lbnUsIHdoaWNoIG93biB0aGUgdG9wLVJJR0hUIGNvcm5lci5cbiAgIFRoZSBwaWxsIGl0c2VsZiBpcyBhIHFkbmFwcm8tdGFnIHZhcmlhbnQ9XCJnbGFzc1wiIGhhbmRlZCBpbiBieSB0aGUgY29uc3VtZXI7XG4gICB0aGlzIHJ1bGUgb25seSBwbGFjZXMgaXQuIE5CIHRoYXQgdmFyaWFudCBpcyBXSElURSBnbGFzcywgd2hpbGUgdGhlIGFyY2hpdmVkXG4gICBjaGlwIGJlbG93IGlzIGRhcms6IHRoZXkgc3RhcnRlZCBhcyB0aGUgc2FtZSByZWNpcGUgYW5kIHdlcmUgc3BsaXQgb25cbiAgIDE5LjA4LjIwMjYgYmVjYXVzZSBkYXJrIHJlYWQgdG9vIGhlYXZ5IG9uIGEgUHVsc2UgdGlsZS4gU2NhbGUtYXdhcmUgbGlrZSBldmVyeXRoaW5nIGVsc2UgaW4gdGhlIGNhcmQsIHNvIGl0XG4gICBzaHJpbmtzIGFsb25nIGF0IGRlbnNpdHk9XCJjb21wYWN0XCIuIFsxOS4wOC4yMDI2XVxuICAgTm90ZSBpdCBzaXRzIElOU0lERSB0aGUgdXBwZXIgY2xpcCwgc28gaW4gdGhlIGBjb21wYWN0YCBhbmltYXRpb24gKHdoZXJlIHRoZVxuICAgcGhvdG8gc2xpZGVzIHVwIG91dCBvZiB2aWV3IG9uIGhvdmVyKSB0aGUgcGlsbCBzdGF5cyBwdXQgYW5kIGVuZHMgdXAgb3ZlciB0aGVcbiAgIHJldmVhbGVkIGJhY2sgbGF5ZXIg4oCUIHNhbWUgYmVoYXZpb3VyIGFzIHRoZSBhcmNoaXZlZCBjaGlwIGJlbG93LiBJbiBgb3ZlcmxheWBcbiAgICh3aGF0IFB1bHNlIHVzZXMpIHRoZSBwaG90byBkb2VzIG5vdCBtb3ZlLCBzbyBpdCBzdGF5cyBvbiB0aGUgcGhvdG8uICovXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1zdGF0dXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBsZWZ0OiBjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIHotaW5kZXg6IDQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiBOQU1FOiBgcHJvamVjdC1jYXJkLXBob3RvLWJhZGdlYCwgbm90IGBwcm9qZWN0LWNhcmQtYmFkZ2VgIC0gdGhhdCBvbmUgaXNcbiAgIHRha2VuIGJ5IHRoZSBzbWFsbCByZWQgbm90aWZpY2F0aW9uIGRvdCBvbiB0aGUgYmVsbCBidXR0b24gZnVydGhlciBkb3duLlxuICAgUmV1c2luZyBpdCBtYWRlIHRoaXMgYmFkZ2UgaW5oZXJpdCBhbiA4cHggcmVkIGRvdCAobWVhc3VyZWQgMTUuMDkuMjAyNikuXG5cbiAgIFJvdW5kIGJhZGdlIHN0cmFkZGxpbmcgdGhlIHBob3RvJ3MgYm90dG9tIGVkZ2UsIGJvdHRvbS1sZWZ0IC0gdGhlIHNoYXBlIHRoZVxuICAgUHVsc2UgY2FtcGFpZ24gdGlsZSB1c2VzIGluIHRoZSBQV0EgKEtpbSwgMTUuMDkuMjAyNikuIFdoaXRlIGRpc2Mgd2l0aCBhIHJpbmdcbiAgIGluIHRoZSBjYXJkJ3Mgb3duIGJhY2tncm91bmQgY29sb3VyLCBzbyBpdCByZWFkcyBhcyBhIGN1dC1vdXQgb2YgdGhlIHBob3RvXG4gICByYXRoZXIgdGhhbiBhIHN0aWNrZXIgb24gdG9wIG9mIGl0LiB6LWluZGV4IDQgcHV0cyBpdCBhYm92ZSB0aGUgcGhvdG8gKDIpIGFuZFxuICAgdGhlIGFyY2hpdmVkIGxheWVycyAoMyksIGxldmVsIHdpdGggdGhlIHN0YXR1cyBwaWxsIGl0IG5ldmVyIG92ZXJsYXBzICh0aGF0XG4gICBvbmUgc2l0cyB0b3AtbGVmdCkuICovXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1waG90by1iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IGNhbGMoMTJweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIHRvcDogdmFyKC0tcGMtcGhvdG8taCwgY2FsYygxMjRweCAqIHZhcigtLXBjLXNjYWxlKSkpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIC8qIDUsIG5pZXQgNDogZGUgdm9ldHJpaiBlbiBkZSBzY2hlaWRpbmdzbGlqbiBzdGFhbiBPT0sgb3AgNCBlbiBrb21lbiBsYXRlclxuICAgICBpbiBkZSBET00sIGR1cyBiaWogZ2VsaWprZSB6LWluZGV4IHdvbm5lbiB6aWogZW4gd2VyZCBkZSBvbmRlcnN0ZSBoZWxmdFxuICAgICB2YW4gZGUgYmFkZ2UgYWZnZWRla3QgKEtpbSwgMTYuMDkuMjAyNjogXCJoaWogdmFsdCBhY2h0ZXIgZGUgd2l0dGUgZm9vdGVyXCIpLlxuICAgICA2IGlzIGJlemV0IGRvb3IgaGV0IG9wZW5rbGFwLW1lbnUsIGRhdCBib3ZlbiBhbGxlcyBob29ydCB0ZSBibGlqdmVuLiAqL1xuICB6LWluZGV4OiA1O1xuICB3aWR0aDogY2FsYyg0NnB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgaGVpZ2h0OiBjYWxjKDQ2cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICBib3JkZXI6IGNhbGMoM3B4ICogdmFyKC0tcGMtc2NhbGUpKSBzb2xpZCB2YXIoLS1jLWJnLWNhcmQpO1xuICBib3gtc2hhZG93OiAwIGNhbGMoMnB4ICogdmFyKC0tcGMtc2NhbGUpKSBjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSkgcmdiYSgyMCwgMjUsIDgwLCAwLjE4KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qIERlIHRpdGVsIGhvdWR0IGFmc3RhbmQgem9sYW5nIGVyIGVlbiBmb3RvYmFkZ2UgaXM6IGRlIGJhZGdlIHN0YWF0IHJlY2h0c1xuICAgKEtpbSwgMTYuMDkuMjAyNikgZW4gbG9vcHQgdG90IDU4cHggdmFuYWYgZGUgcmVjaHRlcnJhbmQsIHRlcndpamwgZGUgdGl0ZWxcbiAgIHN0YW5kYWFyZCB0b3QgNTZweCBkb29ybG9vcHQgLSB6b25kZXIgZGl0IHNjaHVpZnQgZGUgZWxsaXBzaXMgb25kZXIgZGVcbiAgIGJhZGdlLiBBbGxlZW4gYWxzIGRlIGthYXJ0IGRlIGJhZGdlIGVjaHQgZHJhYWd0LCBkdXMgZWVuIGthYXJ0IHpvbmRlclxuICAgYGJhZGdlLXNyY2AgdmVyc2NodWlmdCBuZXJnZW5zLiAqL1xuLnFkbmFwcm8tcHJvamVjdC1jYXJkOmhhcygucHJvamVjdC1jYXJkLXBob3RvLWJhZGdlKSAucHJvamVjdC1jYXJkLW5hbWUge1xuICByaWdodDogY2FsYyg2NnB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbn1cblxuLyogQmlqIGNvbXBhY3QgdmVydHJla3QgZGUgYmFkZ2UgbWV0IGRlIGZvdG8gb3AgaG92ZXI7IGRhbiBtYWcgZGUgdGl0ZWwgemlqblxuICAgdm9sbGUgYnJlZWR0ZSB3ZWVyIGdlYnJ1aWtlbi4gKi9cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdOmhvdmVyOmhhcygucHJvamVjdC1jYXJkLXBob3RvLWJhZGdlKSAucHJvamVjdC1jYXJkLW5hbWUsXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XTpmb2N1cy13aXRoaW46aGFzKC5wcm9qZWN0LWNhcmQtcGhvdG8tYmFkZ2UpIC5wcm9qZWN0LWNhcmQtbmFtZSB7XG4gIHJpZ2h0OiBjYWxjKDU2cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1waG90by1iYWRnZSBpbWcge1xuICB3aWR0aDogY2FsYygzMHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgaGVpZ2h0OiBjYWxjKDMwcHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogVGhlIGNvbXBhY3QgdmFyaWFudCBzbGlkZXMgaXRzIHBob3RvIG91dCBvZiB0aGUgY2xpcCBvbiBob3ZlcjsgYSBiYWRnZSB0aGF0XG4gICBzdGF5ZWQgcHV0IHdvdWxkIGVuZCB1cCBmbG9hdGluZyBvdmVyIHRoZSBiYWNrLXNpZGUgdGV4dC4gSXQgbGVhdmVzIHdpdGggdGhlXG4gICBwaG90by4gVGhlIG92ZXJsYXkgdmFyaWFudCBvbmx5IHpvb21zIGl0cyBwaG90bywgc28gdGhlcmUgdGhlIGJhZGdlIHNpbXBseVxuICAgc3RheXMgd2hlcmUgaXQgaXMuICovXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XTpob3ZlciAucHJvamVjdC1jYXJkLXBob3RvLWJhZGdlLFxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF06Zm9jdXMtd2l0aGluIC5wcm9qZWN0LWNhcmQtcGhvdG8tYmFkZ2Uge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtNTAlIC0gNzhweCAqIHZhcigtLXBjLXNjYWxlKSkpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XSAucHJvamVjdC1jYXJkLXBob3RvLWJhZGdlIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDYwMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjA1LCAwLjUsIDEpLCBvcGFjaXR5IDI0MG1zIGVhc2Utb3V0O1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XSAucHJvamVjdC1jYXJkLXBob3RvLWJhZGdlIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLWFyY2hpdmVkLWNoaXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBsZWZ0OiBjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIHotaW5kZXg6IDQ7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IGNhbGMoNHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgcGFkZGluZzogY2FsYyg0cHggKiB2YXIoLS1wYy1zY2FsZSkpIGNhbGMoOXB4ICogdmFyKC0tcGMtc2NhbGUpKSBjYWxjKDRweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYyg3cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDQwLCA0MiwgNTIsIDAuNzIpO1xuICBib3JkZXI6IGNhbGMoMXB4ICogdmFyKC0tcGMtc2NhbGUpKSBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoOTk5cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpKSBzYXR1cmF0ZSgxLjIpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cihjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSkpIHNhdHVyYXRlKDEuMik7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZm9udC1zaXplOiBjYWxjKDExcHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogY2FsYygxNHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgbGV0dGVyLXNwYWNpbmc6IGNhbGMoMC4ycHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtYXJjaGl2ZWQtY2hpcCBxZG5hcHJvLWljb24ge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC13YXRlcm1hcmsge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHotaW5kZXg6IDM7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgtMThkZWcpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1zaXplOiBjYWxjKDIycHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBmb250LXdlaWdodDogODAwO1xuICBsZXR0ZXItc3BhY2luZzogY2FsYyg0cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU1KTtcbiAgdGV4dC1zaGFkb3c6IDAgY2FsYygycHggKiB2YXIoLS1wYy1zY2FsZSkpIGNhbGMoNnB4ICogdmFyKC0tcGMtc2NhbGUpKSByZ2JhKDAsIDAsIDAsIDAuNDUpLCAwIDAgY2FsYygxcHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLyogU2xvdD1cIm1lbnVcIiBxZG5hcHJvLW1lbnUg4oCUIHNpdHMgYXMgYSBmbG9hdGluZyBwb3BvdmVyIGFuY2hvcmVkXG4gICB0byB0aGUgMy1kb3RzIHRyaWdnZXIuIEhpZGRlbiBieSBkZWZhdWx0OyB0aGUgbWVudSdzIGBvcGVuYFxuICAgYXR0cmlidXRlICh0b2dnbGVkIGJ5IHFkbmFwcm8tcHJvamVjdC1jYXJkLl90b2dnbGVNZW51KSByZXZlYWxzXG4gICBpdC4gKEtpbSAyMDI2LTA1LTI5KSAqL1xuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDQ4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICByaWdodDogY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICB6LWluZGV4OiA2O1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1tZW51W29wZW5dIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLWFjdGlvbnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogY2FsYyg1MHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgcGFkZGluZzogY2FsYyg0cHggKiB2YXIoLS1wYy1zY2FsZSkpIGNhbGMoOHB4ICogdmFyKC0tcGMtc2NhbGUpKSBjYWxjKDhweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgei1pbmRleDogNDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jYXJkLWJnKTtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtYWN0aW9ucy1sZWZ0IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1hY3Rpb24tZGF0ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IGNhbGMoNHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1zZWNvbmRhcnkpO1xuICBmb250LXNpemU6IGNhbGMoMTJweCAqIHZhcigtLXBjLXNjYWxlKSk7XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKDIwcHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1hY3Rpb24tZGF0ZSBxZG5hcHJvLWljb24ge1xuICBjb2xvcjogY3VycmVudENvbG9yO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1hY3Rpb24tY29tbWVudHMsXG4ucWRuYXByby1wcm9qZWN0LWNhcmQgLnByb2plY3QtY2FyZC1hY3Rpb24tYmVsbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogTm9uLWludGVyYWN0aXZlIGFjdGlvbiBpbmRpY2F0b3JzIChLaW0gMjAyNi0wNi0wMik6IHRoZSBsaWdodGJ1bGIgKHRhc2tcbiAgIGNvdW50KSArIGJlbGwgaGF2ZSBubyBiZWhhdmlvdXIgeWV0LCBzbyB0aGV5IHJlYWQgYXMgc3RhdGljIGluZm8g4oCUIG5vXG4gICBob3ZlciBoaWdobGlnaHQsIG5vIGhhbmQtY3Vyc29yIOKAlCB1bnRpbCBpbnRlcmFjdGlvbiBpcyBidWlsdC4gUGFpcmVkIHdpdGhcbiAgIHRhYmluZGV4IC0xICsgYSBjbGljayBndWFyZCBpbiBKUyBzbyB0aGV5IGFyZSBuZWl0aGVyIGZvY3VzYWJsZSBub3JcbiAgIGNsaWNrYWJsZS4gIWltcG9ydGFudCBiZWF0cyB0aGUgcWRuYXByby1idXR0b24gOmhvdmVyL2N1cnNvciBydWxlcy4gKi9cbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLWFjdGlvbi1zdGF0aWMge1xuICBjdXJzb3I6IGRlZmF1bHQgIWltcG9ydGFudDtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtYWN0aW9uLXN0YXRpYzpob3Zlcixcbi5xZG5hcHJvLXByb2plY3QtY2FyZCAucHJvamVjdC1jYXJkLWFjdGlvbi1zdGF0aWM6YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkIC5wcm9qZWN0LWNhcmQtYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICByaWdodDogY2FsYyg2cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICB3aWR0aDogY2FsYyg4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xuICBoZWlnaHQ6IGNhbGMoOHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm4tcmVkLTUwMCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF0gLnByb2plY3QtY2FyZC1oZWFkZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XSAucHJvamVjdC1jYXJkLXBob3RvIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNjAwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuMDUsIDAuNSwgMSkgMzAwbXM7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdIC5wcm9qZWN0LWNhcmQtbmFtZSB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA0MjBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSksIHJpZ2h0IDQyMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjA1LCAwLjUsIDEpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAxMjBtcztcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF0gLnByb2plY3QtY2FyZC1vcmcge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNDIwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiA2MG1zO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XSAucHJvamVjdC1jYXJkLWluZm8ge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNDIwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwbXM7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdOmhvdmVyIC5wcm9qZWN0LWNhcmQtcGhvdG8sIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdOmZvY3VzLXdpdGhpbiAucHJvamVjdC1jYXJkLXBob3RvIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGMoLTc4cHggKiB2YXIoLS1wYy1zY2FsZSkpKSBzY2FsZSgxLjE1KTtcbiAgdHJhbnNpdGlvbi1kZWxheTogMjAwbXM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XTpob3ZlciAucHJvamVjdC1jYXJkLW5hbWUsIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdOmZvY3VzLXdpdGhpbiAucHJvamVjdC1jYXJkLW5hbWUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtNjJweCAqIHZhcigtLXBjLXNjYWxlKSkpO1xuICByaWdodDogMDtcbiAgdHJhbnNpdGlvbi1kZWxheTogNDAwbXM7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdOmhvdmVyIC5wcm9qZWN0LWNhcmQtb3JnLCAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XTpmb2N1cy13aXRoaW4gLnByb2plY3QtY2FyZC1vcmcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtNjJweCAqIHZhcigtLXBjLXNjYWxlKSkpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiA0NjBtcztcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF06aG92ZXIgLnByb2plY3QtY2FyZC1pbmZvLCAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XTpmb2N1cy13aXRoaW4gLnByb2plY3QtY2FyZC1pbmZvIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGMoLTYycHggKiB2YXIoLS1wYy1zY2FsZSkpKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogNTIwbXM7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9c3RhdGljLWZyb250XSAucHJvamVjdC1jYXJkLW5hbWUge1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPXN0YXRpYy1iYWNrXSAucHJvamVjdC1jYXJkLW5hbWUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtODhweCAqIHZhcigtLXBjLXNjYWxlKSkpO1xuICB0cmFuc2l0aW9uOiBub25lO1xuICByaWdodDogMDtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1zdGF0aWMtYmFja10gLnByb2plY3QtY2FyZC1vcmcsXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPXN0YXRpYy1iYWNrXSAucHJvamVjdC1jYXJkLWluZm8ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtODhweCAqIHZhcigtLXBjLXNjYWxlKSkpO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEFOSU1BVElPTiBWQVJJQU5UOiBvdmVybGF5IChleHBlcmltZW50LCBLaW0gMjAyNi0wNS0yOSlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUnVzdCBzdGF0ZTogcGhvdG8gZXh0ZW5kcyBkb3duIHRvIHRoZSBkaXZpZGVyIHBvc2l0aW9uIChjYWxjKDE1OHB4ICogdmFyKC0tcGMtc2NhbGUpKVxuICAgaW5zdGVhZCBvZiAxMjQpLiBUaXRsZSBzaXRzIGluIGl0cyBpZGxlIHBvc2l0aW9uIGJ1dCB3aGl0ZSBvblxuICAgdGhlIGdyYWRpZW50LiBLZXlsaW5lIGhpZGRlbi5cbiAgIEhvdmVyOiBwaG90byBzdWJ0bGUgem9vbSAxLjA2IChubyB0cmFuc2xhdGUpLiBUaXRsZSwgb3JnIGFuZFxuICAgZGF0ZSBzdGFnZ2VyZWQgdHJhbnNsYXRlIHVwIG9udG8gdGhlIHBob3RvLiBBbGwgdGhyZWUgZ2V0IGFcbiAgIGdsYXNzLXBpbGwgYmFja2dyb3VuZC4gQXZhdGFycyBzdGF5IGZyZWUgKG5vIGdsYXNzKS4gKi9cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPW92ZXJsYXldIC5wcm9qZWN0LWNhcmQtaGVhZGVyLFxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV0gLnByb2plY3QtY2FyZC1kaXZpZGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogUGhvdG86IHRhbGxlciAoZG93biB0byBrZXlsaW5lKSArIHN1YnRsZSB6b29tIG9uIGhvdmVyLiAqL1xuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV0ge1xuICAtLXBjLXBob3RvLWg6IGNhbGMoMTU4cHggKiB2YXIoLS1wYy1zY2FsZSkpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XSAucHJvamVjdC1jYXJkLXBob3RvIHtcbiAgaGVpZ2h0OiBjYWxjKDE1OHB4ICogdmFyKC0tcGMtc2NhbGUpKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDYwMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjA1LCAwLjUsIDEpO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XTpob3ZlciAucHJvamVjdC1jYXJkLXBob3RvLFxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV06Zm9jdXMtd2l0aGluIC5wcm9qZWN0LWNhcmQtcGhvdG8ge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDYpO1xufVxuXG4vKiBUaXRsZTogd2hpdGUgaW4gaWRsZSAoYWxyZWFkeSBvbiBwaG90byBncmFkaWVudCkuIE9uIGhvdmVyIGl0XG4gICBhbHNvIGJlY29tZXMgYSBnbGFzcy1waWxsLiAqL1xuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV0gLnByb2plY3QtY2FyZC1uYW1lIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICB0ZXh0LXNoYWRvdzogMCBjYWxjKDFweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYygzcHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgei1pbmRleDogMztcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDQyMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKSwgcmlnaHQgNDIwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuMDUsIDAuNSwgMSk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDEyMG1zO1xufVxuXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XSAucHJvamVjdC1jYXJkLW9yZyB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgdGV4dC1zaGFkb3c6IDAgY2FsYygxcHggKiB2YXIoLS1wYy1zY2FsZSkpIGNhbGMoM3B4ICogdmFyKC0tcGMtc2NhbGUpKSByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHotaW5kZXg6IDM7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA0MjBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDYwbXM7XG59XG5cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPW92ZXJsYXldIC5wcm9qZWN0LWNhcmQtaW5mbyB7XG4gIHotaW5kZXg6IDM7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA0MjBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDBtcztcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV0gLnByb2plY3QtY2FyZC1kYXRlIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICB0ZXh0LXNoYWRvdzogMCBjYWxjKDFweCAqIHZhcigtLXBjLXNjYWxlKSkgY2FsYygzcHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV0gLnByb2plY3QtY2FyZC1kYXRlIHFkbmFwcm8taWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cblxuLyogSE9WRVI6IHN0YWdnZXIgdXAgKyBnbGFzcy1waWxsIGJhY2tncm91bmRzIGFwcGVhci4gKi9cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPW92ZXJsYXldOmhvdmVyIC5wcm9qZWN0LWNhcmQtbmFtZSxcbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPW92ZXJsYXldOmZvY3VzLXdpdGhpbiAucHJvamVjdC1jYXJkLW5hbWUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtNjJweCAqIHZhcigtLXBjLXNjYWxlKSkpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiA0MDBtcztcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV06aG92ZXIgLnByb2plY3QtY2FyZC1vcmcsXG4ucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XTpmb2N1cy13aXRoaW4gLnByb2plY3QtY2FyZC1vcmcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtNjJweCAqIHZhcigtLXBjLXNjYWxlKSkpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiA0NjBtcztcbn1cblxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV06aG92ZXIgLnByb2plY3QtY2FyZC1pbmZvLFxuLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV06Zm9jdXMtd2l0aGluIC5wcm9qZWN0LWNhcmQtaW5mbyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC02MnB4ICogdmFyKC0tcGMtc2NhbGUpKSk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDUyMG1zO1xufVxuXG5Aa2V5ZnJhbWVzIHBjLWNvbXBhY3QtcGhvdG8taW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuICB9XG4gIDI1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEuMTUpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNzhweCkgc2NhbGUoMS4xNSk7XG4gIH1cbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdIC5wcm9qZWN0LWNhcmQtcGhvdG8sXG4gIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdIC5wcm9qZWN0LWNhcmQtbmFtZSxcbiAgLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF0gLnByb2plY3QtY2FyZC1vcmcsXG4gIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdIC5wcm9qZWN0LWNhcmQtaW5mbyB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbiAgLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF06aG92ZXIgLnByb2plY3QtY2FyZC1waG90bywgLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF06Zm9jdXMtd2l0aGluIC5wcm9qZWN0LWNhcmQtcGhvdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC0xMjRweCAqIHZhcigtLXBjLXNjYWxlKSkpO1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxuICAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XTpob3ZlciAucHJvamVjdC1jYXJkLW5hbWUsIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdOmZvY3VzLXdpdGhpbiAucHJvamVjdC1jYXJkLW5hbWUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC04OHB4ICogdmFyKC0tcGMtc2NhbGUpKSk7XG4gIH1cbiAgLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF06aG92ZXIgLnByb2plY3QtY2FyZC1vcmcsIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPWNvbXBhY3RdOmZvY3VzLXdpdGhpbiAucHJvamVjdC1jYXJkLW9yZywgLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249Y29tcGFjdF06aG92ZXIgLnByb2plY3QtY2FyZC1pbmZvLCAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1jb21wYWN0XTpmb2N1cy13aXRoaW4gLnByb2plY3QtY2FyZC1pbmZvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtODhweCAqIHZhcigtLXBjLXNjYWxlKSkpO1xuICB9XG4gIC8qIE92ZXJsYXkgdmFyaWFudDogZHJvcCB0aGUgc3RhZ2dlcmVkIGVhc2luZywgc25hcCBpbnRvIHBsYWNlLiAqL1xuICAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XSAucHJvamVjdC1jYXJkLXBob3RvLFxuICAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XSAucHJvamVjdC1jYXJkLW5hbWUsXG4gIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPW92ZXJsYXldIC5wcm9qZWN0LWNhcmQtb3JnLFxuICAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XSAucHJvamVjdC1jYXJkLWluZm8sXG4gIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPW92ZXJsYXldIC5wcm9qZWN0LWNhcmQtZGF0ZSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbiAgLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV06aG92ZXIgLnByb2plY3QtY2FyZC1uYW1lLFxuICAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XTpmb2N1cy13aXRoaW4gLnByb2plY3QtY2FyZC1uYW1lLFxuICAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XTpob3ZlciAucHJvamVjdC1jYXJkLW9yZyxcbiAgLnFkbmFwcm8tcHJvamVjdC1jYXJkW2RhdGEtbW9kZT1hbmltYXRlZF1bZGF0YS1hbmltYXRpb249b3ZlcmxheV06Zm9jdXMtd2l0aGluIC5wcm9qZWN0LWNhcmQtb3JnLFxuICAucWRuYXByby1wcm9qZWN0LWNhcmRbZGF0YS1tb2RlPWFuaW1hdGVkXVtkYXRhLWFuaW1hdGlvbj1vdmVybGF5XTpob3ZlciAucHJvamVjdC1jYXJkLWluZm8sXG4gIC5xZG5hcHJvLXByb2plY3QtY2FyZFtkYXRhLW1vZGU9YW5pbWF0ZWRdW2RhdGEtYW5pbWF0aW9uPW92ZXJsYXldOmZvY3VzLXdpdGhpbiAucHJvamVjdC1jYXJkLWluZm8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC02MnB4ICogdmFyKC0tcGMtc2NhbGUpKSk7XG4gIH1cbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXByb2plY3QtY2FyZCB7XG4gIC0tYy1jYXJkLWJnOiAjMmEyZDM2O1xuICAtLWMtY2FyZC1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIC0tYy1jYXJkLWRpdmlkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIC0tYy10ZXh0LWJvZHk6ICNmMGYxZjI7XG4gIC0tYy10ZXh0LXNlY29uZGFyeTogI2E2YWFiMztcbiAgLS1jLXBob3RvLWZhbGxiYWNrOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMmUzMjNkIDAlLCAjMmEyZDM2IDEwMCUpO1xuICBib3gtc2hhZG93OiAwIGNhbGMoMXB4ICogdmFyKC0tcGMtc2NhbGUpKSBjYWxjKDJweCAqIHZhcigtLXBjLXNjYWxlKSkgcmdiYSgwLCAwLCAwLCAwLjMpLCAwIGNhbGMoNnB4ICogdmFyKC0tcGMtc2NhbGUpKSBjYWxjKDE2cHggKiB2YXIoLS1wYy1zY2FsZSkpIHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIERlbnNpdHk6IGNvbXBhY3Qg4oCUIHVuaWZvcm0gMC44IHNjYWxlIG9mIHRoZSB3aG9sZSBjYXJkIHNvIGl0XG4gICBtYXRjaGVzIHRoZSBsZWdhY3kgODAlLXpvb20gbG9vayB3aGlsZSB0aGUgcGFnZSByZW5kZXJzIGF0IDEwMCUuXG4gICBOb24tYnJlYWtpbmc6IGNhcmRzIHdpdGhvdXQgW2RlbnNpdHldIGtlZXAgLS1wYy1zY2FsZToxLiBbS2ltIDIwMjYtMDYtMDNdXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5xZG5hcHJvLXByb2plY3QtY2FyZFtkZW5zaXR5PVwiY29tcGFjdFwiXSB7XG4gIC0tcGMtc2NhbGU6IDAuODtcbn1cbiIsIi8vIHFkbmFwcm8tcHVsc2UtY2FyZCArIHRoZSBzaXggc3RlcCBibG9ja3Mg4oCUIFB1bHNlIHRpbWVsaW5lIGNhcmQuXG4vL1xuLy8gRkxBVCBDU1M7IGNvbG91cnMvcmFkaWkgZnJvbSB0aGUgZGVzaWduLXRva2VuIDpyb290ICh2YXIoLS1jLSopIC8gLS1yLSopLFxuLy8gZWFjaCB3aXRoIGEgbGl0ZXJhbCBoZXggZmFsbGJhY2ssIGV4YWN0bHkgYXMgdGhlIFBXQSBzb3VyY2UgZG9lcyDigJQgaWYgdGhlXG4vLyB0b2tlbiBsYXllciBldmVyIGZhaWxzIHRvIGxvYWQsIHRoZSBjYXJkIHN0aWxsIHJlYWRzLlxuLy9cbi8vIFBvcnRlZCBmcm9tIHR3byBwbGFjZXMgaW4gdGhlIFBXQSwgd2hpY2ggaXMgd2hlcmUgdGhlIGNhcmQgbGl2ZXMgdG9kYXk6XG4vLyAgIC0gdGhlIDxzdHlsZT4gYmxvY2sgdGhhdCAxNi1wdWxzZS5qcyBpbmplY3RzIGl0c2VsZiAoX2luamVjdFN0eWxlKTpcbi8vICAgICAucHVsc2UtY2FyZF9fKiwgLnB1bHNlLWRvYywgLnB1bHNlLXZpZGVvLCAucHVsc2UtYWN0aW9uXG4vLyAgIC0gUmVzb3VyY2VzL1Njc3MvX3B3YS1jdXJyZW50LnNjc3M6IC5wdC1rb3AqLCAucHQtZm9vdGVyKixcbi8vICAgICAucHQtcmVhY3RpZS1zYW1lbnZhdHRpbmcqLCAucHVsc2UtcG9sbCosIC5wdWxzZS1jYXJkX19jdGFcbi8vXG4vLyBUaGUgUFdBIHNjb3BlcyBldmVyeSBydWxlIG9uIGAucHVsc2Vfdmlld2AgKHRoZSBzY3JlZW4pLiBBIGNvbXBvbmVudFxuLy8gY2Fubm90IGxlYW4gb24gYSBwYWdlIGNsYXNzLCBzbyBlYWNoIHJ1bGUgaXMgYW5jaG9yZWQgb24gdGhlIGNvbXBvbmVudFxuLy8gY2xhc3MgaW5zdGVhZC4gTm90aGluZyBlbHNlIGFib3V0IHRoZSBydWxlcyBjaGFuZ2VkLlxuXG4vLyDilIDilIAgVGhlIGNhcmQgc2hlbGwg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucWRuYXByby1wdWxzZS1jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAxNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWNhcmQsIDAgMXB4IDJweCByZ2JhKDIwLCAyNSwgODAsIC4wNCksIDAgNHB4IDE2cHggcmdiYSgyMCwgMjUsIDgwLCAuMDQpKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xufVxuXG4vLyBUaGUgc3RlcCBibG9ja3MgYXJlIHB1cmUgZ3JvdXBpbmc6IGRpc3BsYXk6Y29udGVudHMgbGV0cyB0aGVpciBjaGlsZHJlblxuLy8gc2l0IGluIHRoZSBjYXJkJ3Mgb3duIGZsZXggY29sdW1uLCBzbyB0aGUgc3BhY2luZyBiZXR3ZWVuIHRoZSBib2R5LCB0aGVcbi8vIGJsb2NrIGFuZCB0aGUgZm9vdGVyIGlzIHRoZSBvbmUgY2FyZCBnYXAg4oCUIHRoZSBzYW1lIGZsYXQgb3JkZXIgdGhlIFBXQVxuLy8gYnVpbGRzIGluIF9ib3V3S2FhcnQuXG4ucWRuYXByby1wdWxzZS1mbGFzaCxcbi5xZG5hcHJvLXB1bHNlLWRvY3VtZW50LFxuLnFkbmFwcm8tcHVsc2UtYWN0aW9uLFxuLnFkbmFwcm8tcHVsc2UtdmlkZW8sXG4ucWRuYXByby1wdWxzZS1wb2xsLFxuLnFkbmFwcm8tcHVsc2UtcXVlc3Rpb24ge1xuICBkaXNwbGF5OiBjb250ZW50cztcbn1cblxuLy8gQSBjb21wbGV0ZWQgY2FyZCBjb2xsYXBzZXMgdG8gaGVhZGVyICsgb3V0Y29tZTogcXVpZXRlciB0aHJvdWdoIGEgc21hbGxlclxuLy8gdGl0bGUgYW5kIGxlc3MgZ2FwLCBuZXZlciB0aHJvdWdoIGFub3RoZXIgYmFja2dyb3VuZCDigJQgS2ltJ3MgcnVsZSBpcyB0aGF0XG4vLyBBTEwgcG9zdCBjYXJkcyBzdGF5IHdoaXRlLCBjb21wbGV0ZWQgb25lcyBpbmNsdWRlZC5cbi5xZG5hcHJvLXB1bHNlLWNhcmRbZGF0YS1wdWxzZS1kb25lPVwiMVwiXSB7XG4gIGdhcDogNnB4O1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZFtkYXRhLXB1bHNlLWRvbmU9XCIxXCJdIC5wdWxzZS1jYXJkX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLy8g4pSA4pSAIEhlYWRlcjogdGhlIGNhbXBhaWduIGlzIHRoZSBzZW5kZXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1rb3Age1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHQta29wX190ZWtzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi13aWR0aDogMDtcbiAgZmxleDogMSAxIGF1dG87XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1rb3BfX2NhbXBhZ25lIHtcbiAgLy8gcWRuYXByby10ZXh0LWxpbmsgaXMgZGlzcGxheTpmbGV4IHdpdGgganVzdGlmeS1jb250ZW50OmNlbnRlciAoaXRzIG93blxuICAvLyBDU1MsIGZvciB0aGUgYnV0dG9uLWxpa2UgdXNlKS4gQXMgYSBzZW5kZXIgbmFtZSBpbiBhIGxlZnQtYWxpZ25lZFxuICAvLyBoZWFkZXIgcm93IHRoYXQgY2VudHJlcyB0aGUgbmFtZSBvdmVyIHRoZSB3aG9sZSByb3csIHNvIHB1bGwgaXQgYmFjay5cbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB0LWtvcF9fdGlqZCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG59XG5cbi8vIEJvdGggdGFncyBvbiBPTkUgcm93IGluIGEgc2hyaW5rYWJsZSB3cmFwcGVyOiBvbiBhIG5hcnJvdyBwaG9uZSB0aGUgVFlQRVxuLy8gbGFiZWwgdHJ1bmNhdGVzIHdpdGggYW4gZWxsaXBzaXMgaW5zdGVhZCBvZiB0aGUgaGVhZGVyIGp1bXBpbmcgdG8gYVxuLy8gc2Vjb25kIGxpbmUuIFRoZSBkYXkgYmFkZ2UgYWx3YXlzIHN0YXlzIHdob2xlIOKAlCBpdCBpcyB0aGUgc2hvcnRlc3QgYW5kXG4vLyBtb3N0IGNvbnRpbnVvdXMgaW5mb3JtYXRpb24sIGFuZCB0aHVzIHRoZSBsYXN0IHRoYXQgbWF5IHNocmluay5cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB0LWtvcF9fdGFncyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBtaW4td2lkdGg6IDA7XG4gIGZsZXgtc2hyaW5rOiAxO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHQta29wX190YWdzIHFkbmFwcm8tdGFnW2RhdGEtcHVsc2UtdHlwZS10YWddIHtcbiAgbWluLXdpZHRoOiAwO1xuICBmbGV4LXNocmluazogMTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB0LWtvcF9fdGFncyBxZG5hcHJvLXRhZ1tkYXRhLXB1bHNlLXR5cGUtdGFnXSAudGFnLWxhYmVsIHtcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8g4pSA4pSAIFRpdGxlLCBib2R5LCBpbWFnZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLWNhcmRfX3RpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDE3cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQsICMwYjBiMGQpO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtY2FyZF9fYm9keSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dCwgIzBiMGIwZCk7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdWxzZS1jYXJkX19ib2R5IHAgeyBtYXJnaW46IDAgMCA4cHg7IH1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLWNhcmRfX2JvZHkgcDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vLyBLaW0ncyBhbm5vdGF0aW9uIG9mIDEzLjA4LjIwMjY6IGRvIE5PVCBjcm9wIGJ1dCBsZXR0ZXJib3guIG9iamVjdC1maXQ6XG4vLyBjb250YWluIHNjYWxlcyBhbiBpbWFnZSB3aXRoIGEgZGlmZmVyZW50IHJhdGlvIGJhY2sgaW5zaWRlIHRoZSBzYW1lXG4vLyBtYXgtaGVpZ2h0IGFuZCBsZWF2ZXMgdGhlIHJlc3QgZW1wdHk7IHRoZSBleHBsaWNpdCBiYWNrZ3JvdW5kIG1ha2VzIHRob3NlXG4vLyBsZXR0ZXJib3ggYmFycyBzaG93IHRoZSBjYXJkIGNvbG91ciB3aGF0ZXZlciBzaXRzIGJlaGluZCB0aGVtLlxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtY2FyZF9faW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMzIwcHg7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLWNhcmRfX25vdGUge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xufVxuXG4vLyDilIDilIAgVGhlIHJlYWRpbmctc3RlcCBidXR0b24gKGZsYXNoIC8gZG9jdW1lbnQgLyBhY3Rpb24gLyB2aWRlbykg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBOb3QgZnVsbCBwYW5lbCB3aWR0aDogaW5saW5lLWZsZXggc2hyaW5rcyB0aGUgd3JhcHBlciBhcm91bmQgdGhlIGJ1dHRvbixcbi8vIG1pbi13aWR0aCBrZWVwcyBpdCBnZW5lcm91cyBlbm91Z2ggdG8gcmVhZCBhcyBhbiBpbnZpdGF0aW9uLCBtYXgtd2lkdGhcbi8vIHN0b3BzIGEgbG9uZyB0cmFuc2xhdGlvbiBmcm9tIHRha2luZyB0aGUgd2hvbGUgY2FyZC4gVGhlIHNoaW1tZXIgaXMgYVxuLy8gbGF5ZXIgb24gdGhlIFdSQVBQRVIgKDo6YWZ0ZXIpLCBuZXZlciBvbiB0aGUgYnV0dG9uOiBxZG5hcHJvLWJ1dHRvbiB3aXBlc1xuLy8gaXRzIG93biBjbGFzc05hbWUgb24gcmVuZGVyLlxuLnFkbmFwcm8tcHVsc2UtY3RhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbWluLXdpZHRoOiAyMjBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDRweCAwIDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBpc29sYXRpb246IGlzb2xhdGU7XG59XG4ucWRuYXByby1wdWxzZS1jdGEgcWRuYXByby1idXR0b24sXG4ucWRuYXByby1wdWxzZS1jdGEgLnB1bHNlLWNhcmRfX2N0YS1idG4ge1xuICBmbGV4OiAxIDEgYXV0bztcbn1cbi5xZG5hcHJvLXB1bHNlLWN0YTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAtNjAlO1xuICB3aWR0aDogNTUlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEwMGRlZyxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDAlLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSkgNTAlLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7XG4gIHRyYW5zZm9ybTogc2tld1goLTE4ZGVnKTtcbiAgLy8gU2xvdyBpbnRlcnZhbCB3aXRoIGEgc2hvcnQgc3dlZXA6IHRoaXMgc2hvdWxkIGludml0ZSwgbm90IGJsaW5rLlxuICBhbmltYXRpb246IHB1bHNlLWN0YS1zaGltbWVyIDMuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG4ucWRuYXByby1wdWxzZS1jdGEucHVsc2UtY2FyZF9fY3RhLS1uby1zaGltbWVyOjphZnRlciB7IGFuaW1hdGlvbjogbm9uZTsgb3BhY2l0eTogMDsgfVxuQGtleWZyYW1lcyBwdWxzZS1jdGEtc2hpbW1lciB7XG4gIDAlICAgeyBsZWZ0OiAtNjAlOyB9XG4gIDQ1JSAgeyBsZWZ0OiAxMTUlOyB9XG4gIDEwMCUgeyBsZWZ0OiAxMTUlOyB9XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby1wdWxzZS1jdGE6OmFmdGVyIHsgYW5pbWF0aW9uOiBub25lOyBvcGFjaXR5OiAwOyB9XG59XG5cbi8vIOKUgOKUgCBEb2N1bWVudCBibG9jayDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEEgZG9jdW1lbnQgY2FyZCBjYXJyaWVzIHRoZSBGSUxFIE5BTUUgYXMgaXRzIHN1YmplY3Q7IGl0IHNpdHMgb24gaXRzIG93blxuLy8gcm93IHdpdGggdGhlIGljb24gaW4gZnJvbnQsIGJlY2F1c2UgYSBmaWxlIG5hbWUgaXMgbG9uZyBhbmQgbWF5IG5vdCBwdXNoXG4vLyB0aGUgY2FyZCBvcGVuIChhbnl3aGVyZSBicmVha3MgaXQpLlxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtZG9jIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2Y3ZjdmOSk7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdWxzZS1kb2MgcWRuYXByby1pY29uIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtZG9jX19uYW1lIHtcbiAgbWluLXdpZHRoOiAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQsICMwYjBiMGQpO1xuICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbn1cbi8vIE5vdCBhdmFpbGFibGU6IHRoZSBjYXJkIGRpbXMgYnV0IHN0YXlzIHJlYWRhYmxlLiBOZXZlciBpbnZpc2libGUg4oCUIHRoZVxuLy8gcGFydGljaXBhbnQgaGFzIHRvIGJlIGFibGUgdG8gY2xlYXIgaXQuXG4ucWRuYXByby1wdWxzZS1jYXJkLnB1bHNlLWNhcmQtLWJsb2NrZWQgLnB1bHNlLWRvYyB7IG9wYWNpdHk6IC41NTsgfVxuXG4vLyDilIDilIAgQWN0aW9uIGJsb2NrIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtYWN0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLy8g4pSA4pSAIFZpZGVvIGJsb2NrIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gMTY6OSB0aHJvdWdoIGFzcGVjdC1yYXRpbyB3aXRoIGEgcGFkZGluZyBmYWxsYmFjazogYW4gaWZyYW1lIHdpdGhvdXQgYVxuLy8gaGVpZ2h0IGlzIDE1MHB4IHRhbGwgYW5kIHRoZW4gdGhlIHBsYXllciBzaXRzIG9uIHRoZSBjYXJkIGFzIGEgc3RyaXBlLlxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtdmlkZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBhc3BlY3QtcmF0aW86IDE2IC8gOTtcbiAgbWFyZ2luOiA0cHggMCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAxNiAvIDkpIHtcbiAgLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtdmlkZW8geyBoZWlnaHQ6IDA7IHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7IH1cbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLXZpZGVvX19mcmFtZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlcjogMDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIOKUgOKUgCBRdWVzdGlvbiBibG9jayDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLWNhcmRfX29wdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDhweDtcbn1cblxuLy8gQ2FyZCAxNGcuIEV2ZXJ5IG9wdGlvbiBnZXRzIGBkaXNhYmxlZGAgYWZ0ZXIgYW5zd2VyaW5nLCBhbmQgdGhlXG4vLyBjb21wb25lbnQncyBvd24gYC5pcy1kaXNhYmxlZGAgcnVsZSAodHdvIGNsYXNzZXMpIGJlYXRzIHRoZSBsb29zZSBjb2xvdXJcbi8vIHJ1bGUgKG9uZSBjbGFzcykg4oCUIHNvIHRoZSBjb3JyZWN0IG9wdGlvbiB5b3UgZGlkIE5PVCB0YXAgbG9zdCB0byB0aGUgZ3JleVxuLy8gZGlzYWJsZWQgc3R5bGUgYW5kIHdhcyBpbmRpc3Rpbmd1aXNoYWJsZS4gVGhlc2UgZm91ci1jbGFzcyBzZWxlY3RvcnNcbi8vIGFsd2F5cyB3aW4sIGFjdGl2ZSBvciBub3QuIFRoZSBjb2xvdXJzIHRoZW1zZWx2ZXMgY29tZSBmcm9tIHRoZSBjaGlwXG4vLyBwYWxldHRlIChzb2Z0IHRpbnQsIGRhcmsgcmVhZGFibGUgdGV4dCkgaW5zdGVhZCBvZiB0aGUgY29tcG9uZW50J3MgZmxhdFxuLy8gODAlIGJsYWNrIG1peCwgd2hpY2ggcmVhZCBhcyBhIHZlcnkgZGFyayBicm93bi1yZWQgYmxvY2sgaW4gS2ltJ3Ncbi8vIHNjcmVlbnNob3QuIERlbGliZXJhdGVseSBzY29wZWQgdG8gdGhpcyBibG9jazogcWRuYXByby1hbnN3ZXItYnV0dG9uJ3Mgb3duXG4vLyBDU1MgaXMgdW50b3VjaGVkLCBzbyB5ZXNfbm8sIG11bHRpX29wdGlvbl9zZWxlY3Rpb24gYW5kIGRhdGFwb2ludHMga2VlcFxuLy8gdGhlaXIgY3VycmVudCBjb2xvdXJzLlxuLnFkbmFwcm8tcHVsc2UtcXVlc3Rpb24gLnB1bHNlLWNhcmRfX29wdGlvbnMgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLWdyZWVuIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLWdyZWVuLWJnLCAjZTJmYWYxKTtcbiAgY29sb3I6IHZhcigtLWMtY2hpcC1ncmVlbi10ZXh0LCAjMmY1ZDRhKTtcbn1cbi5xZG5hcHJvLXB1bHNlLXF1ZXN0aW9uIC5wdWxzZS1jYXJkX19vcHRpb25zIC5xZG5hcHJvLWFuc3dlci1idXR0b24ucWRuYXByby1hbnN3ZXItYnV0dG9uLS1ncmVlbiAucWRuYXByby1hbnN3ZXItYnV0dG9uX190aWNrIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdWNjZXNzLWJyaWdodCwgIzFkOWU3NSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1zdWNjZXNzLWJyaWdodCwgIzFkOWU3NSk7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnFkbmFwcm8tcHVsc2UtcXVlc3Rpb24gLnB1bHNlLWNhcmRfX29wdGlvbnMgLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi5xZG5hcHJvLWFuc3dlci1idXR0b24tLWdyZWVuIC5xZG5hcHJvLWFuc3dlci1idXR0b25fX2NoZWNrIHtcbiAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG59XG4ucWRuYXByby1wdWxzZS1xdWVzdGlvbiAucHVsc2UtY2FyZF9fb3B0aW9ucyAucWRuYXByby1hbnN3ZXItYnV0dG9uLnFkbmFwcm8tYW5zd2VyLWJ1dHRvbi0tcmVkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXJlZC1iZywgI2ZlZTNlMyk7XG4gIGNvbG9yOiB2YXIoLS1jLWNoaXAtcmVkLXRleHQsICM2MzMwMzApO1xufVxuXG4vLyBGZWVkYmFjayBhZnRlciBhbiBhbnN3ZXIuIENvbG91ciBpcyBORVZFUiB0aGUgb25seSBzaWduYWw6IHRoZXJlIGlzXG4vLyBhbHdheXMgYSB3b3JkIG5leHQgdG8gaXQgKEdvZWQgLyBOZXQgbmlldCksIGZvciB3aG9ldmVyIGNhbm5vdCB0ZWxsXG4vLyBjb2xvdXJzIGFwYXJ0LlxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtY2FyZF9fdmVyZGljdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdWxzZS1jYXJkX192ZXJkaWN0W2RhdGEtdmVyZGljdD1cImNvcnJlY3RcIl0geyBjb2xvcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCwgIzQyOGI2ZSk7IH1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLWNhcmRfX3ZlcmRpY3RbZGF0YS12ZXJkaWN0PVwiaW5jb3JyZWN0XCJdIHsgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTsgfVxuXG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdWxzZS1jYXJkX19mZWVkYmFjayB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdWxzZS1jYXJkX19kaXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cblxuLy8gQW4gYW5zd2VyIHN0aWxsIGluIHRoZSBxdWV1ZS4gRGVsaWJlcmF0ZWx5IE5PIHJlZCBvciBvcmFuZ2U6IG5vdGhpbmcgd2VudFxuLy8gd3JvbmcsIGl0IGp1c3QgaGFzIG5vdCBiZWVuIHNlbnQgeWV0LlxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtY2FyZF9fcXVldWVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogOHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogIzQwNDk5YTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLWNhcmRfX3F1ZXVlZCBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgfVxuXG4vLyDilIDilIAgUG9sbCBibG9jayAoV2hhdHNBcHAgbW9kZWwpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gWW91ciBPV04gY2hvaWNlIGdldHMgdGhlIHB1cnBsZSBib3JkZXIsIHRpY2sgYW5kIGNvdW50OyB0aGUgYmFyIHVuZGVyIHRoZVxuLy8gcm93IGlzIGEgcWRuYXByby1wcm9ncmVzcyB3aXRoIHRvbmU9XCJoaWdobGlnaHRcIiAoeW91cnMpIG9yIFwibmV1dHJhbFwiICh0aGVcbi8vIHJlc3QpIOKAlCBleGlzdGluZyB0b25lcyBvZiB0aGUgc2hhcmVkIGNvbXBvbmVudCwgbm8gbmV3IGNvbG91ciBpbnZlbnRlZC5cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLXBvbGwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDhweDtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLXBvbGxfX29wdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1yb3csIDEycHgpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtZ3JleS1iZywgI2YwZjFmMik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2UsIHRyYW5zZm9ybSAxMjBtcyBlYXNlO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtcG9sbF9fb3B0aW9uOm5vdChbYXJpYS1kaXNhYmxlZD1cInRydWVcIl0pOmhvdmVyLFxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtcG9sbF9fb3B0aW9uOm5vdChbYXJpYS1kaXNhYmxlZD1cInRydWVcIl0pOmZvY3VzLXZpc2libGUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLXBvbGxfX29wdGlvbjpub3QoW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdKTphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTkpO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtcG9sbF9fb3B0aW9uW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLXBvbGxfX29wdGlvbi0tbWluZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtcG9sbF9fcm93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLXBvbGxfX3RpY2sge1xuICBmbGV4LXNocmluazogMDtcbiAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB1bHNlLXBvbGxfX2xhYmVsIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LCAjMGIwYjBkKTtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdWxzZS1wb2xsX19vcHRpb24tLW1pbmUgLnB1bHNlLXBvbGxfX2xhYmVsIHsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuLy8gVGhlIGZpZ3VyZSwgV2hhdHNBcHAgc3R5bGU6IHJpZ2h0IGFsaWduZWQsIG9ubHkgdGhlIG51bWJlciwgbm8gd29yZCBhZnRlclxuLy8gaXQgKHRoZSBhcmlhLWxhYmVsIGNhcnJpZXMgdGhlIGZ1bGwgc2VudGVuY2UpLlxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHVsc2UtcG9sbF9fY291bnQge1xuICBmbGV4LXNocmluazogMDtcbiAgbWluLXdpZHRoOiAxLjVlbTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdWxzZS1wb2xsX19vcHRpb24tLW1pbmUgLnB1bHNlLXBvbGxfX2NvdW50IHtcbiAgY29sb3I6IHZhcigtLWMtY2hpcC1wdXJwbGUtdGV4dCwgIzQxM2I1ZSk7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdWxzZS1wb2xsX19vcHRpb24gcWRuYXByby1wcm9ncmVzcyB7IG1hcmdpbi10b3A6IDhweDsgfVxuXG4vLyDilIDilIAgRm9vdGVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gT25lIHJvdzogcmVhY3Rpb24gYnV0dG9uIGFuZCBjb21tZW50IGJ1dHRvbiBvbiB0aGUgbGVmdCwgc3RhdHVzIGFuZFxuLy8gcmVhY3Rpb24gc3VtbWFyeSBwdXNoZWQgcmlnaHQuXG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1mb290ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDE2cHg7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1mb290ZXJfX2FjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHQtZm9vdGVyX19hY3RpZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogMCAxMnB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLy8gS2ltJ3MgcG9saXNoOiBubyBwYWRkaW5nIGxlZnQgb2YgdGhlIGxpa2UgYnV0dG9uIOKAlCB0aGUgdGFwIGFyZWEgc3RhcnRzIGF0XG4vLyB0aGUgY2FyZCBlZGdlOyB0aGUgaWNvbiBpdHNlbGYga2VlcHMgYSAxNnB4IGluc2V0IHNvIGl0IGxpbmVzIHVwIHdpdGggdGhlXG4vLyBjYXJkIHRleHQuXG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1mb290ZXJfX2FjdGllOmZpcnN0LWNoaWxkIHsgcGFkZGluZy1sZWZ0OiAxNnB4OyB9XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1mb290ZXJfX2FjdGllW2FyaWEtcHJlc3NlZD1cInRydWVcIl0gcWRuYXByby1pY29uIHtcbiAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbn1cbi8vIE9mZmxpbmU6IHRoZSByZWFjdGlvbiBidXR0b24gaXMgdGhlIG9ubHkgU0VORCBhY3Rpb24gaW4gdGhpcyByb3cgKHRoZVxuLy8gY29tbWVudCBpY29uIG9ubHkgb3BlbnMgdG8gUkVBRCwgc28gaXQgc3RheXMgb24pLiBWaXNpYmx5IG9mZiwgbm90XG4vLyBoaWRkZW4uXG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1mb290ZXJfX2FjdGllW2RhdGEtcHVsc2UtaGVhcnRdW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCwgIzg5OGU5OSk7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHQtZm9vdGVyX190ZWxsZXIge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1mb290ZXJfX3JlY2h0cyB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgbWluLXdpZHRoOiAwO1xufVxuLy8gV2hhdHNBcHAtc3R5bGUgZG91YmxlIHRpY2tzIGluIHRoZSBicmFuZCBjb2xvdXIuXG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1mb290ZXJfX3N0YXR1cyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB0LWZvb3Rlcl9fc3RhdHVzLWNoZWNrIHsgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlBKTsgfVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHQtZm9vdGVyX19zdGF0dXMtYnRuIHsgZmxleC1zaHJpbms6IDA7IH1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB0LWZvb3Rlcl9fcmVjaHRzID4gKiArIC5wdC1yZWFjdGllLXNhbWVudmF0dGluZyB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cblxuLy8gRmFjZWJvb2stc3R5bGUgcmVhY3Rpb24gc3VtbWFyeTogdGhlIGZsYXZvdXJzIHByZXNlbnQgYXMgc3RhY2tlZCBtaW5pXG4vLyBiYWRnZXMgKG1heCAzKSBwbHVzIHRoZSB0b3RhbC5cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB0LXJlYWN0aWUtc2FtZW52YXR0aW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIHBhZGRpbmc6IDRweCA4cHggNHB4IDRweDtcbiAgbWFyZ2luOiAtNHB4IC04cHggLTRweCAtNHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHQtcmVhY3RpZS1zYW1lbnZhdHRpbmc6aG92ZXIsXG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1yZWFjdGllLXNhbWVudmF0dGluZzpmb2N1cy12aXNpYmxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmMGYxZjIpO1xuICBvdXRsaW5lOiBub25lO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHQtcmVhY3RpZS1zYW1lbnZhdHRpbmc6YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmMGYxZjIpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTcpO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FyZCAucHQtcmVhY3RpZS1zYW1lbnZhdHRpbmdfX3N0YXBlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4vLyAyMHB4LCBvdmVybGFwcGluZyAoLTZweCk6IHNtYWxsZXIgdGhhbiB0aGUgNDRweCBmbGF2b3VyIHBpY2tlciDigJQgdGhpcyBpc1xuLy8gYSBTVU1NQVJZLCBub3QgYSBjaG9vc2VyLCBhbmQgaGFzIHRvIGZpdCBuZXh0IHRvIHRoZSBzdGF0dXMgdGV4dC5cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB0LXJlYWN0aWUtc2FtZW52YXR0aW5nX19iYWRnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBmbGV4LXNocmluazogMDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1yZWFjdGllLXNhbWVudmF0dGluZ19fYmFkZ2UgKyAucHQtcmVhY3RpZS1zYW1lbnZhdHRpbmdfX2JhZGdlIHtcbiAgbWFyZ2luLWxlZnQ6IC02cHg7XG59XG4ucWRuYXByby1wdWxzZS1jYXJkIC5wdC1yZWFjdGllLXNhbWVudmF0dGluZ19fYmFkZ2Ugc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhcmQgLnB0LXJlYWN0aWUtc2FtZW52YXR0aW5nX190b3RhYWwgeyBtYXJnaW4tbGVmdDogMnB4OyB9XG4iLCIvLyBxZG5hcHJvLXB1bHNlLWNhbnZhcyDigJQgdGhlIFwiVGVrc3Qgb3AgYWNodGVyZ3JvbmRcIiBQdWxzZSBjYXJkIGZhY2UuXG4vL1xuLy8gRkxBVCBDU1M7IGNvbG91cnMvc2hhZG93IGNvbWUgZnJvbSB0aGUgZGVzaWduLXRva2VuIDpyb290ICh2YXIoLS1jLSopIC9cbi8vIC0tc2hhZG93LSopLCBlYWNoIHdpdGggYSBsaXRlcmFsIGhleCBmYWxsYmFjaywgc2FtZSBjb252ZW50aW9uIGFzXG4vLyBfcHVsc2UtY2FyZC5zY3NzLiBUaGUgY2FyZCdzIE9XTiBjb2xvdXIgKHRoZSBgY29sb3JgIGF0dHJpYnV0ZSkgaXNcbi8vIGRlbGliZXJhdGVseSBub3QgYSB0b2tlbiDigJQgdGhhdCBpcyB0aGUgb25lIHRoaW5nIHRoZSBlZGl0b3IgcGlja3MgZnJlZWx5XG4vLyBwZXIgc3RlcC4gVGhlIGB0ZXh0LWNvbG9yYCBhdHRyaWJ1dGUgaXMgdGhlIHNhbWUga2luZCBvZiBmcmVlIHZhbHVlIGFuZFxuLy8gaXMgdGhlcmVmb3JlIHNldCBpbmxpbmUgYnkgdGhlIEpTLCBub3QgaGVyZS5cbi8vXG4vLyBObyBleHBsaWNpdCBbZGF0YS10aGVtZT1cImRhcmtcIl0gYmxvY2sgaGVyZTogc2hhZG93IGFuZCB0aGUgY291bnRlciBjaGlwXG4vLyByZWFkIHRoZSBzaGFyZWQgdG9rZW5zLCB3aGljaCBhbHJlYWR5IGZsaXAgdG8gdGhlaXIgZGFyayB2YWx1ZXMgYXQgdGhlXG4vLyA6cm9vdCBsZXZlbCAoc2VlIF9kZXNpZ24tdG9rZW5zLnNjc3MpLiBPbmx5IHRoZSBjYXJkJ3MgY2hvc2VuIGJhY2tncm91bmRcbi8vIGNvbG91ciBhbmQgdGhlIHRleHQgdGludCBzdGF5IGxpdGVyYWwsIGJ5IGRlc2lnbiAoYmVzbHVpdCA3KS4gVGhlIHRleHRcbi8vIG91dGxpbmUgdXNlcyB0aGUgdGhlbWUtaW5kZXBlbmRlbnQgYmxhY2stYWxwaGEgdG9rZW5zIG9uIHB1cnBvc2U6IGl0IHNpdHNcbi8vIG9uIGEgcGljdHVyZSwgbm90IG9uIHRoZSBwYWdlIGJhY2tncm91bmQsIHNvIGl0IG11c3Qgc3RheSBkYXJrIGluIGRhcmtcbi8vIG1vZGUgdG9vLlxuLy9cbi8vIOKUgOKUgCBUaGUgY2FyZCBpcyBpdHMgb3duIG1lYXN1cmluZyBmcmFtZSAoa2FhcnQgMiwgYmVzbHVpdCAxKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIGBjb250YWluZXItdHlwZTogaW5saW5lLXNpemVgIHR1cm5zIHRoZSBjYXJkIGludG8gYSBjb250YWluZXItcXVlcnlcbi8vIGNvbnRhaW5lciwgc28gZXZlcnkgc2l6ZSBiZWxvdyBjYW4gYmUgd3JpdHRlbiBpbiBjcXcgPSBwZXJjZW50IG9mIHRoZVxuLy8gQ0FSRCdzIG93biB3aWR0aC4gUmVhc29uLCBtZWFzdXJlZDogdGhlIHRleHQgc3RlcHMgdXNlZCB0byBiZSBmaXhlZCBweFxuLy8gKDI4LzI0LzIwLzE4LzE2KSwgd2hpbGUgdGhlIGNhcmQgcmVuZGVycyBhdCAzMDBweCBpbiB0aGUgd2l6YXJkLCBhdFxuLy8gY29udGFpbmVyIHdpZHRoIGluIHRoZSBhcHAgYW5kIGF0IHJvdWdobHkgMTkwMHB4IGluIHRoZSBtYXJrdXAgZWRpdG9yLlxuLy8gVGhlIHNhbWUgMjhweCB0aXRsZSBpcyB+OSUgb2YgYSAzMDBweCBjYXJkIGFuZCBvbmx5IH4xLDUlIG9mIGEgMTkwMHB4XG4vLyBvbmUsIHNvIHRoZSBpZGVudGljYWwgY2FyZCByZWFkIGFzIGEgaGVhZGxpbmUgaW4gb25lIHBsYWNlIGFuZCBhcyBhIHRpbnlcbi8vIGNhcHRpb24gaW4gdGhlIG90aGVyLiBFdmVyeSBjcXcgdmFsdWUgYmVsb3cgaXMgY2FsaWJyYXRlZCAxOjEgb24gdGhlIG9sZFxuLy8gMzAwcHggY2FyZCAoOS4zM2NxdyA9IDI4cHgsIDhjcXcgPSAyNHB4LCA2LjY3Y3F3ID0gMjBweCwgNmNxdyA9IDE4cHgsXG4vLyA1LjMzY3F3ID0gMTZweCwgcGFkZGluZyA4Y3F3ID0gMjRweCksIHNvIGEgMzAwcHggY2FyZCBsb29rcyBleGFjdGx5IGxpa2Vcbi8vIGJlZm9yZSBhbmQgZXZlcnkgb3RoZXIgd2lkdGggbm93IGtlZXBzIHRoZSBzYW1lIHByb3BvcnRpb24uXG4vLyBFYWNoIGNxdyBkZWNsYXJhdGlvbiBpcyBwcmVjZWRlZCBieSBpdHMgb2xkIHB4IHZhbHVlIGFzIGEgZmFsbGJhY2sgZm9yXG4vLyBicm93c2VycyB3aXRob3V0IGNvbnRhaW5lci1xdWVyeSB1bml0cyDigJQgdGhlIGZhbGxiYWNrIGxvc2VzIHRvIHRoZSBjcXdcbi8vIGxpbmUgd2hlcmV2ZXIgY3F3IGlzIHN1cHBvcnRlZC5cblxuLnFkbmFwcm8tcHVsc2UtY2FudmFzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGFzcGVjdC1yYXRpbzogMTYgLyAxMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLy8gU3F1YXJlIG9uIGFsbCBmb3VyIGNvcm5lcnMgYW5kIG5vIGJvcmRlciBvZiBpdHMgb3duIChrYWFydCAyLFxuICAvLyBiZXNsdWl0IDgpOiB0aGUgY2FyZCBzaXRzIGVkZ2UtdG8tZWRnZSBpbnNpZGUgdGhlIFB1bHNlIGNhcmQsIHdoaWNoXG4gIC8vIG93bnMgdGhlIG91dGxpbmUgYW5kIHRoZSByb3VuZGluZyBhcm91bmQgaXQuXG4gIC8vIE5vIGJveC1zaGFkb3cgZWl0aGVyIChrYWFydCAyLCBiZXNsdWl0IDgpOiB0aGUgY2FudmFzIHNpdHMgZWRnZS10by1lZGdlXG4gIC8vIElOU0lERSBhIFB1bHNlIGNhcmQgdGhhdCBhbHJlYWR5IGNhcnJpZXMgaXRzIG93biBzaGFkb3csIHNvIGEgc2Vjb25kXG4gIC8vIHNoYWRvdyB3b3VsZCByZWFkIGFzIGEgc2VhbSBhY3Jvc3MgdGhlIG1pZGRsZSBvZiB0aGF0IGNhcmQuXG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7IC8vIHNob3dzIHRocm91Z2ggd2hlbiB1bmNvbmZpZ3VyZWQgKG5vIGNvbG91ciwgbm8gaW1hZ2UgeWV0KVxuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gIC8vIEtlZXBzIHRoZSBwYXR0ZXJuIGxheWVyJ3MgQ1NTIG1hc2sgY29tcG9zaXRpbmcgbG9jYWwgdG8gdGhpcyBlbGVtZW50LFxuICAvLyBzbyBpdCBjYW4gbmV2ZXIgYmxlZWQgaW50byBhbnl0aGluZyBwYWludGVkIGJlaGluZCB0aGUgY2FyZC5cbiAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICAvLyBUaGUgbWVhc3VyaW5nIGZyYW1lIGZvciBldmVyeSBjcXcgYmVsb3cgKHNlZSB0aGUgaGVhZGVyIG5vdGUpLlxuICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG4gIGNvbnRhaW5lci1uYW1lOiBxcGMtY2FyZDtcbn1cbkBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMTYgLyAxMCkge1xuICAucWRuYXByby1wdWxzZS1jYW52YXMgeyBoZWlnaHQ6IDA7IHBhZGRpbmctYm90dG9tOiA2Mi41JTsgfVxufVxuXG4vLyDilIDilIAgTGF5ZXIgMTogZmxhdCBjb2xvdXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucWRuYXByby1wdWxzZS1jYW52YXMgLnFwYy1jb2xvciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG59XG5cbi8vIOKUgOKUgCBMYXllciAyOiB0aWxlZCBTVkcgcGF0dGVybiwgcmVjb2xvdXJlZCB2aWEgQ1NTIG1hc2sg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBUaGUgbWFzayBvbmx5IHJlYWRzIHRoZSBTVkcncyBhbHBoYSAoaXRzIGZpbGwtb3BhY2l0eSBzaGFwZXMpOyB0aGVcbi8vIHZpc2libGUgY29sb3VyIGlzIGJhY2tncm91bmQtY29sb3IsIHNldCBmcm9tIHBhdHRlcm5zLmpzb24nc1xuLy8gcGF0dGVybl90aW50IChKUykuIEFsbCBzaXggc2hpcHBlZCBwYXR0ZXJuIHRpbGVzIGFyZSBzcXVhcmUsIHNvIG9uZVxuLy8gZml4ZWQgbWFzay1zaXplIHRpbGVzIGV2ZXJ5IG9uZSBvZiB0aGVtIHdpdGhvdXQgZGlzdG9ydGlvbi5cbi5xZG5hcHJvLXB1bHNlLWNhbnZhcyAucXBjLXBhdHRlcm4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBtYXNrLXJlcGVhdDogcmVwZWF0O1xuICAtd2Via2l0LW1hc2stcmVwZWF0OiByZXBlYXQ7XG4gIG1hc2stcG9zaXRpb246IGNlbnRlcjtcbiAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOiBjZW50ZXI7XG4gIG1hc2stc2l6ZTogOTZweCA5NnB4O1xuICAtd2Via2l0LW1hc2stc2l6ZTogOTZweCA5NnB4O1xufVxuXG4vLyDilIDilIAgTGF5ZXIgMyAocGhvdG8gT1Igc2NlbmUgdmFyaWFudCk6IHJlcGxhY2VzIGNvbG91ciArIHBhdHRlcm4gZW50aXJlbHkg4pSAXG4vLyBUaGUgU0FNRSBlbGVtZW50IHJlbmRlcnMgYSBgaW1hZ2VgIHBob3RvIGFuZCBhIGBzY2VuZWAgaWxsdXN0cmF0aW9uXG4vLyAoa2FhcnQgMTYpIOKAlCBib3RoIGFyZSBvbmUgZnVsbC1ibGVlZCBjb3Zlci1maXQgcGljdHVyZSwgYW5kIGBpbWFnZWBcbi8vIGFsd2F5cyB3aW5zIHBlciB0aGUgcHJlY2VkZW5jZSBub3RlIGluIHFkbmEtcHVsc2UtY2FudmFzLmpzLCBzbyB0aGV5XG4vLyBuZXZlciBmaWdodCBvdmVyIGl0IGluIHByYWN0aWNlLlxuLnFkbmFwcm8tcHVsc2UtY2FudmFzIC5xcGMtaW1hZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4ucWRuYXByby1wdWxzZS1jYW52YXMucXBjLS1waG90byAucXBjLWltYWdlLFxuLnFkbmFwcm8tcHVsc2UtY2FudmFzLnFwYy0tc2NlbmUgLnFwYy1pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBUaGVyZSBpcyBOTyBzY3JpbSBsYXllciBhbnkgbW9yZSAoa2FhcnQgMiwgYmVzbHVpdCAxMiDigJQgYSBkZWxpYmVyYXRlXG4vLyByZXZpc2lvbiBvZiBrYWFydCAxNmIpOiB0aGUgcmFkaWFsIGhhemUgYmVoaW5kIHRoZSB0ZXh0IGdyZXllZCBvdXQgdGhlXG4vLyBtaWRkbGUgb2YgZXZlcnkgcGhvdG8gYW5kIGV2ZXJ5IGJ1c3kgc2NlbmUuIExheWVyIGFuZCBDU1MgYXJlIGJvdGggZ29uZTtcbi8vIGB0ZXh0LWNvbG9yYCBhbmQgYHRleHQtb3V0bGluZWAgYmVsb3cgYXJlIHdoYXQgZml4IGFuIHVucmVhZGFibGVcbi8vIGNvbWJpbmF0aW9uIG5vdywgd2l0aG91dCB0b3VjaGluZyB0aGUgcGljdHVyZS5cblxuLy8g4pSA4pSAIExheWVyIDQ6IGNhcmQgdGV4dCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xZG5hcHJvLXB1bHNlLWNhbnZhcyAucXBjLXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAyNHB4OyAgLy8gZmFsbGJhY2s6IGJyb3dzZXJzIHdpdGhvdXQgY29udGFpbmVyLXF1ZXJ5IHVuaXRzXG4gIHBhZGRpbmc6IDhjcXc7ICAvLyA9IDI0cHggb24gdGhlIGNhbGlicmF0ZWQgMzAwcHggY2FyZFxuICBmb250LXNpemU6IDIwcHg7IC8vIGZhbGxiYWNrOyB0aGUgW2RhdGEtc2NhbGVdIHJ1bGVzIGJlbG93IG93biB0aGUgcmVhbCBzaXplXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dCwgIzBiMGIwZCk7XG59XG5cbi8vIFRoZSBzY2FsZSB0cmFwIChiZXNsdWl0IDE0KSBpbiBjb250YWluZXItd2lkdGggdW5pdHMgKGthYXJ0IDIsXG4vLyBiZXNsdWl0IDEpLiBUaGUgSlMgb25seSBwdWJsaXNoZXMgV0hJQ0ggc3RlcCBhcHBsaWVzLCBhcyBgZGF0YS1zY2FsZWAgb25cbi8vIHRoZSBob3N0IOKAlCB0aGUgc3RlcCBuYW1lcyBhcmUgdGhlIGNoYXJhY3RlciBicmVha3BvaW50cyBmcm9tXG4vLyBTQ0FMRV9TVEVQUywgc28gYSByZW5kZXJlZCBjYXJkIHRyYWNlcyBzdHJhaWdodCBiYWNrIHRvIHRoYXQgdGFibGUuXG4vL1xuLy8gbWF4KCkgYW5kIG5vdCBjbGFtcCgpOiBhIGxvd2VyIGJvdW5kIG9mIDEzcHgga2VlcHMgdGhlIHRpdGxlIGxlZ2libGUgb25cbi8vIGEgdmVyeSBuYXJyb3cgY2FyZCAoYSByb3cgdGh1bWJuYWlsKSwgYW5kIGJlc2x1aXQgMiBleHBsaWNpdGx5IGZvcmJpZHMgYW5cbi8vIHVwcGVyIGJvdW5kIOKAlCB0aGUgY2FyZCBpcyBhbGxvd2VkIHRvIGtlZXAgZ3Jvd2luZyB3aXRoIGl0cyBjb250YWluZXIuXG4vLyBjbGFtcCgpIHdvdWxkIGZvcmNlIGEgdGhpcmQsIGNhcHBpbmcgYXJndW1lbnQsIHNvIG1heCgpIGlzIGV4YWN0bHkgdGhlXG4vLyBcImZsb29yIG9ubHksIG5vIGNlaWxpbmdcIiB0aGlzIG5lZWRzLlxuLnFkbmFwcm8tcHVsc2UtY2FudmFzW2RhdGEtc2NhbGU9XCIyMFwiXSAucXBjLXRleHQgIHsgZm9udC1zaXplOiBtYXgoMTNweCwgOS4zM2Nxdyk7IH0gLy8gd2FzIDI4cHggQDMwMFxuLnFkbmFwcm8tcHVsc2UtY2FudmFzW2RhdGEtc2NhbGU9XCI0MFwiXSAucXBjLXRleHQgIHsgZm9udC1zaXplOiBtYXgoMTNweCwgOGNxdyk7IH0gICAgLy8gd2FzIDI0cHggQDMwMFxuLnFkbmFwcm8tcHVsc2UtY2FudmFzW2RhdGEtc2NhbGU9XCI3MFwiXSAucXBjLXRleHQgIHsgZm9udC1zaXplOiBtYXgoMTNweCwgNi42N2Nxdyk7IH0gLy8gd2FzIDIwcHggQDMwMFxuLnFkbmFwcm8tcHVsc2UtY2FudmFzW2RhdGEtc2NhbGU9XCIxMTBcIl0gLnFwYy10ZXh0IHsgZm9udC1zaXplOiBtYXgoMTNweCwgNmNxdyk7IH0gICAgLy8gd2FzIDE4cHggQDMwMFxuLnFkbmFwcm8tcHVsc2UtY2FudmFzW2RhdGEtc2NhbGU9XCJtYXhcIl0gLnFwYy10ZXh0IHsgZm9udC1zaXplOiBtYXgoMTNweCwgNS4zM2Nxdyk7IH0gLy8gd2FzIDE2cHggQDMwMFxuXG4vLyBBdXRvbWF0aWMgZGFyay9saWdodCB0ZXh0IHRpbnQgKGJlc2x1aXQgNykg4oCUIHNldCBvbiB0aGUgaG9zdCBhc1xuLy8gZGF0YS10aW50IGJ5IHRoZSBjb21wb25lbnQsIGJhc2VkIG9uIHRoZSBjb2xvdXIncyBwZXJjZXB0dWFsXG4vLyBicmlnaHRuZXNzLCBvciBmb3JjZWQgXCJsaWdodFwiIGZvciBhIHBob3RvLiBBIGB0ZXh0LWNvbG9yYCBhdHRyaWJ1dGVcbi8vIGJlYXRzIGJvdGggcnVsZXM6IHRoZSBKUyB3cml0ZXMgdGhhdCBjb2xvdXIgaW5saW5lIG9uIC5xcGMtdGV4dCwgYW5kIGFuXG4vLyBpbmxpbmUgc3R5bGUgb3V0cnVucyBhbnkgc2VsZWN0b3IgaGVyZSAoYmVzbHVpdCAxMikuIFRoZSBob3N0IGFsc28gZ2V0cyBhXG4vLyBgcXBjLS10ZXh0LWNvbG9yYCBjbGFzcyBpbiB0aGF0IGNhc2Ug4oCUIG5vIHN0eWxpbmcgaGFuZ3Mgb2ZmIGl0IGhlcmUsIGl0IGlzXG4vLyBhIHN0YXRlIGhvb2sgc28gYSBob3N0IChvciB0aGUgbGlicmFyeSBwcmV2aWV3KSBjYW4gdGVsbCBhbiBvdmVycmlkZGVuXG4vLyBjb2xvdXIgZnJvbSBhbiBhdXRvbWF0aWMgb25lIHdpdGhvdXQgcmUtcGFyc2luZyB0aGUgYXR0cmlidXRlLlxuLnFkbmFwcm8tcHVsc2UtY2FudmFzW2RhdGEtdGludD1cImxpZ2h0XCJdIC5xcGMtdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uLCAjZmZmZmZmKTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhbnZhc1tkYXRhLXRpbnQ9XCJkYXJrXCJdIC5xcGMtdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQsICMwYjBiMGQpO1xufVxuXG4vLyBUaGluIGRhcmsgY29udG91ciBhcm91bmQgdGhlIHRleHQgKGthYXJ0IDIsIGJlc2x1aXQgMTIpLCBmb3IgYSBwaWN0dXJlXG4vLyB0aGF0IGlzIGJ1c3kgb3IgbWlkLWdyZXksIHdoZXJlIG5laXRoZXIgYmxhY2sgbm9yIHdoaXRlIHRleHQgY2Fycmllcy5cbi8vIFN0YWNrZWQgdGV4dC1zaGFkb3dzIGFuZCBOT1QgLXdlYmtpdC10ZXh0LXN0cm9rZTogYSByZWFsIHN0cm9rZSBpcyBkcmF3blxuLy8gb24gdGhlIGdseXBoJ3Mgb3duIG91dGxpbmUgYW5kIGVhdHMgdGhpbiBsZXR0ZXJzIGZyb20gdGhlIGluc2lkZSwgd2hpY2hcbi8vIGlzIGV4YWN0bHkgd2hhdCB0aGlzIHR5cGVmYWNlIGRvZXMgYmFkbHkgYXQgNjAwIHdlaWdodC4gRWlnaHQgb2Zmc2V0c1xuLy8gZHJhdyB0aGUgcmluZywgdGhlIG5pbnRoIHNvZnRlbnMgaXQuIFRoZSB3aWR0aCBpcyBpbiBlbSwgc28gdGhlIGNvbnRvdXJcbi8vIHN0YXlzIGEgaGFpcmxpbmUgb24gYSBiaWcgY2FyZCBpbnN0ZWFkIG9mIGdyb3dpbmcgaW50byBhIGZhdCByaW0uXG4vLyBBIGNvbnRvdXIgQUxXQVlTIGdvZXMgd2l0aCBhIHdoaXRlIHRpdGxlLCBuZXZlciB3aXRoIGEgZGFyayBvbmUuIEtpbSdzIG93blxuLy8gd29yZGluZyBmb3IgdGhlIGRvdWJ0ZnVsIGNhc2UgKDI4LjA4LjIwMjYpOiBcImJpaiB0d2lqZmVsIGFsdGlqZCB3aXR0ZSB0ZWtzdFxuLy8gbWV0IGVlbiBkdW4gZG9ua2VyIHJhbmRqZSBlcm9taGVlblwiLiBUaGUgbWVhc3VyZW1lbnQgcmVwb3J0cyBicmlnaHRuZXNzIGFuZFxuLy8gc3ByZWFkIGluZGVwZW5kZW50bHksIHNvIGEgYnVzeS1idXQtbGlnaHRpc2ggbWlkZGxlIHdvdWxkIG90aGVyd2lzZSBjb21lIG91dFxuLy8gYXMgZGFyayB0ZXh0IHdpdGggYSBkYXJrIGhhbG8sIHdoaWNoIHJlYWRzIGFzIGEgc211ZGdlIHJhdGhlciB0aGFuIGFcbi8vIGNvbnRvdXIuIEFuIGV4cGxpY2l0IGB0ZXh0LWNvbG9yYCBzdGlsbCB3aW5zOiB0aGUgY29tcG9uZW50IHdyaXRlcyB0aGF0IG9uZVxuLy8gaW5saW5lLCBhbmQgaW5saW5lIGJlYXRzIGFueSBzZWxlY3RvciBoZXJlLlxuLnFkbmFwcm8tcHVsc2UtY2FudmFzLnFwYy0tdGV4dC1vdXRsaW5lIC5xcGMtdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uLCAjZmZmZmZmKTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhbnZhcy5xcGMtLXRleHQtb3V0bGluZSAucXBjLXRleHQge1xuICAtLXFwYy1vdXRsaW5lLXc6IDAuMDRlbTtcbiAgLS1xcGMtb3V0bGluZS1jOiB2YXIoLS1jLWJsYWNrLTQ1LCByZ2JhKDAsIDAsIDAsIC40NSkpO1xuICB0ZXh0LXNoYWRvdzpcbiAgICB2YXIoLS1xcGMtb3V0bGluZS13KSAwIDAgdmFyKC0tcXBjLW91dGxpbmUtYyksXG4gICAgY2FsYyh2YXIoLS1xcGMtb3V0bGluZS13KSAqIC0xKSAwIDAgdmFyKC0tcXBjLW91dGxpbmUtYyksXG4gICAgMCB2YXIoLS1xcGMtb3V0bGluZS13KSAwIHZhcigtLXFwYy1vdXRsaW5lLWMpLFxuICAgIDAgY2FsYyh2YXIoLS1xcGMtb3V0bGluZS13KSAqIC0xKSAwIHZhcigtLXFwYy1vdXRsaW5lLWMpLFxuICAgIHZhcigtLXFwYy1vdXRsaW5lLXcpIHZhcigtLXFwYy1vdXRsaW5lLXcpIDAgdmFyKC0tcXBjLW91dGxpbmUtYyksXG4gICAgY2FsYyh2YXIoLS1xcGMtb3V0bGluZS13KSAqIC0xKSB2YXIoLS1xcGMtb3V0bGluZS13KSAwIHZhcigtLXFwYy1vdXRsaW5lLWMpLFxuICAgIHZhcigtLXFwYy1vdXRsaW5lLXcpIGNhbGModmFyKC0tcXBjLW91dGxpbmUtdykgKiAtMSkgMCB2YXIoLS1xcGMtb3V0bGluZS1jKSxcbiAgICBjYWxjKHZhcigtLXFwYy1vdXRsaW5lLXcpICogLTEpIGNhbGModmFyKC0tcXBjLW91dGxpbmUtdykgKiAtMSkgMCB2YXIoLS1xcGMtb3V0bGluZS1jKSxcbiAgICAwIDAgY2FsYyh2YXIoLS1xcGMtb3V0bGluZS13KSAqIDMpIHZhcigtLXFwYy1vdXRsaW5lLWMpO1xufVxuXG4ucWRuYXByby1wdWxzZS1jYW52YXMucXBjLS1lZGl0YWJsZSAucXBjLXRleHQge1xuICBjdXJzb3I6IHRleHQ7XG59XG4vLyBBIHZpc2libGUgcmluZyB3aGlsZSB0eXBpbmcgaXMgdGhlIG9ubHkgc2lnbiB0aGlzIGlzIGEgcmVhbCBmaWVsZCDigJRcbi8vIHRoZXJlIGlzIG5vIHBsYWNlaG9sZGVyIGNocm9tZSBhcm91bmQgaXQsIGl0IElTIHRoZSBjYXJkLiBVc2VzIHRoZSBzYW1lXG4vLyAtLWZvY3VzLXJpbmcgdG9rZW4gYXMgdGhlIHJlc3Qgb2YgdGhlIGxpYnJhcnksIGJ1dCBJTlNFVCBvbmx5OiB0aGUgY2FyZFxuLy8gaXRzZWxmIGNsaXBzIG92ZXJmbG93LCBhbmQgLnFwYy10ZXh0IGZpbGxzIHRoZSBjYXJkIGV4YWN0bHksIHNvIGFuXG4vLyBvdXR3YXJkIHJpbmcgKyBnbG93ICh0aGUgbGlicmFyeSdzIHVzdWFsIGRvdWJsZSBib3gtc2hhZG93KSB3b3VsZCBiZVxuLy8gY2xpcHBlZCBhd2F5IGVudGlyZWx5IGFuZCBuZXZlciBzaG93LiBgYm9yZGVyLXJhZGl1czogaW5oZXJpdGAgZm9sbG93c1xuLy8gdGhlIGNhcmQsIHdoaWNoIGlzIHNxdWFyZSBzaW5jZSBiZXNsdWl0IDguXG4ucWRuYXByby1wdWxzZS1jYW52YXMucXBjLS1lZGl0YWJsZSAucXBjLXRleHQ6Zm9jdXMtdmlzaWJsZSB7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nLCAjNDA0OTlhKTtcbn1cblxuLy8g4pSA4pSAIExheWVyIDU6IG1hcmt1cCAoZHJhd2luZykgbGF5ZXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBLYWFydCAyLCBiZXNsdWl0IDM6IE9ORSBmbGF0IHRyYW5zcGFyZW50IHBpY3R1cmUgKGBtYXJrdXAtaW1hZ2VgKSBvdmVyXG4vLyB0aGUgd2hvbGUgY2FyZCwgY292ZXItZml0IGxpa2UgdGhlIHBob3RvIGxheWVyLiBJdCBjYXJyaWVzIHRoZSBiYWtlZFxuLy8gb3V0cHV0IG9mIHRoZSBtYXJrdXAgZWRpdG9yIOKAlCB0ZXh0IGxhYmVscywgcGVuIHN0cm9rZXMsIHNoYXBlcywgZW1vamkg4oCUXG4vLyBzbyB0aGlzIGNvbXBvbmVudCBuZXZlciBoYXMgdG8ga25vdyBhYm91dCB0aGUgaW5kaXZpZHVhbCBvYmplY3RzLiBBYm92ZVxuLy8gdGhlIHRleHQgKG1hcmt1cCBpcyBkcmF3biBvbiB0b3Agb2YgdGhlIGNhcmQpLCBiZWxvdyAucXBjLW92ZXJsYXkgKHdoaWNoXG4vLyBzdGF5cyB0aGUgbGl2aW5nIGxheWVyKS4gTmV2ZXIgY2xpY2thYmxlOiB0aGUgY2FyZCB1bmRlcm5lYXRoIG11c3Qga2VlcFxuLy8gaXRzIGNsaWNrL3R5cGluZyBiZWhhdmlvdXIuXG4ucWRuYXByby1wdWxzZS1jYW52YXMgLnFwYy1tYXJrdXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tcHVsc2UtY2FudmFzLnFwYy0tbWFya3VwIC5xcGMtbWFya3VwIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIOKUgOKUgCBMYXllciA2OiBvdmVybGF5IHNsb3QgKHN0aWNrZXJzL0xvdHRpZSdzKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIERlbGliZXJhdGVseSBlbXB0eSBoZXJlIOKAlCB0aGUgaG9zdCByZW5kZXJzIHN0aWNrZXJzIGFuZCBhbmltYXRlZCBpY29uc1xuLy8gaW50byBpdCAoc2VlIF9wdWxzZS5zY3NzLCBgLnFwYy1vdmVybGF5IC5wdWxzZS1vdi1pdGVtYCkuIFN0YXlzIHRoZVxuLy8gdG9wbW9zdCB2aXN1YWwgbGF5ZXI6IGEgYmFrZWQgbWFya3VwIFBORyBjYW5ub3QgYW5pbWF0ZSwgYW55dGhpbmcgdGhhdFxuLy8gbXVzdCBtb3ZlIGJlbG9uZ3MgaGVyZS5cbi5xZG5hcHJvLXB1bHNlLWNhbnZhcyAucXBjLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLy8g4pSA4pSAIExheWVyIDc6IGNoYXJhY3RlciBjb3VudGVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gRml4ZWQgZGFyayBjaGlwIHJlZ2FyZGxlc3Mgb2YgY2FyZCB0aW50OiBpdCBzaXRzIG9uIHRvcCBvZiB3aGF0ZXZlclxuLy8gYmFja2dyb3VuZCBpcyBjaG9zZW4gYW5kIGhhcyB0byBzdGF5IGxlZ2libGUgZWl0aGVyIHdheS4gRWRpdG9yIGNocm9tZSxcbi8vIG5vdCBjYXJkIGNvbnRlbnQsIHNvIGl0IGtlZXBzIGl0cyBmaXhlZCBweCBzaXplIGFuZCBkb2VzIE5PVCBzY2FsZSB3aXRoXG4vLyB0aGUgY2FyZC5cbi5xZG5hcHJvLXB1bHNlLWNhbnZhcyAucXBjLWNvdW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA4cHg7XG4gIGJvdHRvbTogOHB4O1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAycHggOHB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwsIDk5OXB4KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ibGFjay00NSwgcmdiYSgwLCAwLCAwLCAuNDUpKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24sICNmZmZmZmYpO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLXB1bHNlLWNhbnZhcyAucXBjLWNvdW50ZXIucXBjLWNvdW50ZXItLXZpc2libGUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb24g4oCUIE9TLXN0eWxlIG5vdGlmaWNhdGlvbiBjYXJkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBSZXByb2R1Y2VzIHRoZSBsb2NrLXNjcmVlbiBub3RpZmljYXRpb24gc2hhcGUgaW5zaWRlIG91ciBvd25cbi8vICBzdXJmYWNlczogYXBwIHRpbGUgKyB0aXRsZS90aW1lIGhlYWRsaW5lICsgYm9keSwgb24gYSBGUk9TVEVEXG4vLyAgR0xBU1MgcGxhdGUgKGl0IGZsb2F0cyBvdmVyIGNvbnRlbnQsIHNvIGl0IHBpY2tzIHRoYXQgY29udGVudFxuLy8gIHVwIHJhdGhlciB0aGFuIGNvdmVyaW5nIGl0IHdpdGggYSBmbGF0IHdoaXRlIHNsYWIpLiBUaHJlZVxuLy8gIHJlbmRlcmluZ3MgZHJpdmVuIGJ5IFNUQVRFIGFuZCBDT05URU5ULCBub3QgYnkgYSBzaXplIHdvcmRcbi8vICAoYHNpemVgIGFscmVhZHkgbWVhbnMgdGhyZWUgZGlmZmVyZW50IHNjYWxlcyBlbHNld2hlcmUpOlxuLy8gICAgLS1jb2xsYXBzZWQgIChkZWZhdWx0KSBib2R5IGNsYW1wZWQgdG8gMiBsaW5lc1xuLy8gICAgLS1leHBhbmRlZCAgICAgICAgICAgICAgbWV0YSBsaW5lICsgZnVsbCBib2R5ICsgYWN0aW9uc1xuLy8gICAgKyBpbWFnZSAgICAgICAgICAgICAgICAgbWVkaWEgYmxvY2tcbi8vXG4vLyAgVHlwZSBtb2RpZmllcnMgY29sb3VyIHRoZSBhcHAgdGlsZSBvbmx5LCBpbiB0aGUgc2FtZSBzaWduYWxcbi8vICBmYW1pbGllcyBhcyBxZG5hcHJvLWFsZXJ0IC8gcWRuYXByby10b2FzdDpcbi8vICAgIG5ldXRyYWwgIHB1cnBsZSBicmFuZCB0aWxlICh0aGUgUUROQSBkZWZhdWx0KVxuLy8gICAgaW5mbyAgICAgdmFyKC0tYy1zaWduYWwtYmx1ZS10ZXh0KSAgICAgIzZhOGFiNFxuLy8gICAgc3VjY2VzcyAgdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCkgICAgIzQyOGI2ZVxuLy8gICAgd2FybmluZyAgdmFyKC0tYy13YXJuaW5nLWJyaWdodC10ZXh0KSAgIzlhNmExMFxuLy8gICAgZXJyb3IgICAgdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpICAgICAgI2M2NWE1YVxuLy9cbi8vICBGTEFUIENTUyAobm8gbmVzdGluZykgc28gaXQgY2FuIGJlIHN5bmNlZCB0byB0aGUgUFdBIHZlcmJhdGltLFxuLy8gIGV4YWN0bHkgbGlrZSBxZG5hcHJvLWluZm8tY2FyZCAvIHFkbmFwcm8tZXZlbnQtY2FyZC5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbiB7XG4gIC8vIFN1cmZhY2UgKyB0eXBlIHZhcmlhYmxlcyAobmV1dHJhbCA9IGJyYW5kIHB1cnBsZSB0aWxlKVxuICAtLXBuLXN1cmZhY2U6ICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjgpO1xuICAtLXBuLXRpdGxlOiAgICAgICB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWQzYSk7XG4gIC0tcG4tYm9keTogICAgICAgIHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZDNhKTtcbiAgLS1wbi1tZXRhOiAgICAgICAgdmFyKC0tYy10ZXh0LW11dGVkLCAjNmE2ZTlhKTtcbiAgLS1wbi10aWxlLWJnOiAgICAgdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgLS1wbi10aWxlLWdseXBoOiAgI2ZmZmZmZjtcbiAgLS1wbi1kaXZpZGVyOiAgICAgcmdiYSg0MCwgNDYsIDEwMCwgMC4xMCk7XG4gIC0tcG4tZWRnZTogICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42MCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEzcHggMTRweDtcbiAgLy8gU2hhcnBlciB0aGFuIHRoZSBPUyBwbGF0ZSBvbiBwdXJwb3NlIChLaW0gMDMuMDguMjAyNik6IHRoZSBkZXNpZ24tdG9rZW5cbiAgLy8gMTJweCBpbnN0ZWFkIG9mIGEgc29mdCAxOHB4LCBzbyB0aGUgY2FyZCBzaXRzIGluIHRoZSBzYW1lIHJhZGl1cyBmYW1pbHkgYXNcbiAgLy8gdGhlIHJlc3Qgb2YgdGhlIHBsYXRmb3JtLlxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTMsIDEycHgpO1xuICAvLyBGUk9TVEVEIEdMQVNTIChLaW0gMDQuMDguMjAyNiAtIHRoZSBmbGF0IHdoaXRlIGNhcmQgaGFkIHRvbyBsaXR0bGUgY29udHJhc3RcbiAgLy8gYWdhaW5zdCB0aGUgYXBwJ3MgbmVhci13aGl0ZSBwYWdlcykuIFRoZSBibHVyIHdhcyBhbHdheXMgaGVyZTsgYXQgOTIlIHdoaXRlXG4gIC8vIG5vdGhpbmcgY2FtZSB0aHJvdWdoIGl0LCBzbyBpdCByZWFkIGFzIGEgcGxhaW4gY2FyZC4gNjglIGlzIHRoZSBjb21wcm9taXNlOlxuICAvLyBsb3cgZW5vdWdoIHRoYXQgdGhlIGNvbnRlbnQgYmVoaW5kIGFjdHVhbGx5IHNob3dzIGFuZCB0aGUgYmx1ciByZWdpc3RlcnMsXG4gIC8vIGhpZ2ggZW5vdWdoIHRoYXQgZGFyayBib2R5IHRleHQgc3RheXMgY29tZm9ydGFibHkgbGVnaWJsZSBvdmVyIGEgY29sb3VyZWRcbiAgLy8gc3VyZmFjZSAoNjglIHdoaXRlIG92ZXIgYnJhbmQgcHVycGxlIGNvbXBvc2l0ZXMgdG8gYSBsaWdodCBsYXZlbmRlciwgd2hpY2hcbiAgLy8ga2VlcHMgdGhlIHRleHQgd2VsbCBhYm92ZSB0aGUgQUEgY29udHJhc3QgZmxvb3IpLiBibHVyK3NhdHVyYXRlIHZhbHVlcyBhcmVcbiAgLy8gcWRuYXByby10cmFuc2xhdGlvbi1wYW5lbCdzLCBzbyB0aGlzIGlzIHRoZSBwbGF0Zm9ybSdzIE9ORSBnbGFzcyByZWNpcGUuXG4gIGJhY2tncm91bmQ6IHZhcigtLXBuLXN1cmZhY2UpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigyNHB4KSBzYXR1cmF0ZSgxNjAlKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDI0cHgpIHNhdHVyYXRlKDE2MCUpO1xuICAvLyBHbGFzcyBuZWVkcyBhbiBFREdFOiBhIGJsdXIgYWxvbmUgZG9lcyBub3QgdGVsbCB5b3Ugd2hlcmUgdGhlIHBhbmVsIHN0b3BzLlxuICAvLyBUd28gaGFpcmxpbmVzIGRvIHRoZSB3b3JrIG9uIGJvdGgga2luZHMgb2YgYmFja2Ryb3AgLSBhbiBpbm5lciB3aGl0ZSBjYXRjaFxuICAvLyAocmVhZHMgb24gZGFya2VyIGNvbnRlbnQpIGFuZCwgaW4gdGhlIHNoYWRvdywgYW4gb3V0ZXIgZGFyayBoYWlybGluZSAocmVhZHNcbiAgLy8gb24gdGhlIG5lYXItd2hpdGUgcGFnZXMsIHdoaWNoIGlzIGV4YWN0bHkgd2hlcmUgdGhlIGZsYXQgY2FyZCBkaXNhcHBlYXJlZCkuXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXBuLWVkZ2UpO1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSg0MCwgNDYsIDEwMCwgMC4wNiksIDAgMTBweCAzMHB4IHJnYmEoNDAsIDQ2LCAxMDAsIDAuMTgpO1xuICBmb250LWZhbWlseTogdmFyKC0tZmYsIFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZik7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi8vIC0tLSBTd2lwZSB0byBkaXNtaXNzIChvcHQtaW4sIHNlZSB0aGUgY29tcG9uZW50J3Mgc3dpcGUtZGlzbWlzcyBhdHRyaWJ1dGUpIC0tLVxuLy8gdG91Y2gtYWN0aW9uOiBub25lIGJlY2F1c2UgdGhlIGdlc3R1cmUgbmVlZHMgdGhlIHZlcnRpY2FsIGF4aXM7IHdpdGhvdXQgaXQgdGhlXG4vLyBicm93c2VyIGNsYWltcyB0aGUgZHJhZyBmb3IgcGFnZSBzY3JvbGxpbmcgYW5kIHRoZSBjYXJkIG5ldmVyIG1vdmVzLiBPbmx5IG9uIHRoZVxuLy8gc3dpcGVhYmxlIHZhcmlhbnQsIHNvIGEgY2FyZCB0aGF0IGlzIG5vdCBzd2lwZWFibGUgbmV2ZXIgYmxvY2tzIHNjcm9sbGluZy5cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uLS1zd2lwZWFibGUge1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gIC8vIFNwcmluZyBiYWNrIGFmdGVyIGEgZHJhZyB0aGF0IGRpZCBub3QgY29tbWl0LiBSZW1vdmVkIHdoaWxlIGRyYWdnaW5nIHNvIHRoZVxuICAvLyBjYXJkIHRyYWNrcyB0aGUgZmluZ2VyIDE6MSBpbnN0ZWFkIG9mIGVhc2luZyBiZWhpbmQgaXQuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI0cyBjdWJpYy1iZXppZXIoMC4yMSwgMS4yNCwgMC40MiwgMSk7XG59XG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbi0tZHJhZ2dpbmcge1xuICB0cmFuc2l0aW9uOiBub25lO1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuLy8gQ29tbWl0dGVkIHN3aXBlOiBmbHkgb3V0IHVwd2FyZC4gVGhlIGhvc3Qgc3RpbGwgb3ducyByZW1vdmFsOyB0aGlzIGlzIG9ubHkgdGhlXG4vLyBnZXN0dXJlIGZpbmlzaGluZyBpdHMgbW90aW9uLlxuLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb24tLXN3aXBlLW91dCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTQwJSk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UtaW4sIG9wYWNpdHkgMC4ycyBlYXNlLWluO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLy8gLS0tIFR5cGUgbW9kaWZpZXJzIChhcHAgdGlsZSBvbmx5KSAtLS1cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uLS1pbmZvICAgIHsgLS1wbi10aWxlLWJnOiB2YXIoLS1jLXNpZ25hbC1ibHVlLXRleHQsICM2YThhYjQpOyB9XG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbi0tc3VjY2VzcyB7IC0tcG4tdGlsZS1iZzogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCwgIzQyOGI2ZSk7IH1cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uLS13YXJuaW5nIHsgLS1wbi10aWxlLWJnOiB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LXRleHQsICM5YTZhMTApOyB9XG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbi0tZXJyb3IgICB7IC0tcG4tdGlsZS1iZzogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpOyB9XG5cbi8vIC0tLSBSb3cgKHRpbGUgfCBtYWluIHwgY29udHJvbHMpIC0tLVxuLy8gSXRzIG93biBlbGVtZW50IHJhdGhlciB0aGFuIHRoZSBob3N0IGl0c2VsZiwgYmVjYXVzZSB0aGUgYWN0aW9uIGZvb3RlciBtdXN0IHNpdFxuLy8gQkVMT1cgaXQgYW5kIHNwYW4gdGhlIGZ1bGwgY2FyZCB3aWR0aCwgdGhlIHdheSB0aGUgT1MgZHJhd3MgaXQuXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9fcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMTFweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8vIC0tLSBBcHAgdGlsZSAtLS1cbi8vIFJvdW5kZWQgU1FVQVJFLCBub3QgYSBjaXJjbGU6IHRoYXQgaXMgd2hhdCB0aGUgcGxhdGZvcm1zIGRyYXcgZm9yIHRoZSBhcHBcbi8vIGljb24sIGFuZCBpdCBrZWVwcyBpdCBkaXN0aW5jdCBmcm9tIHFkbmFwcm8tYXZhdGFyIChhIHBlcnNvbikgYW5kIGZyb20gdGhlXG4vLyBiZWxsIGxpc3QncyByb3VuZCBpY29uIGNpcmNsZSAoYSBtZXNzYWdlIHR5cGUpLlxuLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX3RpbGUge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICAvLyA4cHggKC0tci0yKSwgb25lIHN0ZXAgdW5kZXIgdGhlIGNhcmQncyAxMnB4ICgtLXItMyk6IGF0IDlweCB0aGUgdGlsZSByZWFkIGFzXG4gIC8vIGFsbW9zdCBhcyByb3VuZCBhcyB0aGUgc2hhcnBlbmVkIGNhcmQgaXRzZWxmIChLaW0gMDMuMDguMjAyNikuXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMiwgOHB4KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcG4tdGlsZS1iZyk7XG4gIGNvbG9yOiB2YXIoLS1wbi10aWxlLWdseXBoKTtcbiAgbGluZS1oZWlnaHQ6IDA7XG59XG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9fdGlsZSBxZG5hcHJvLWljb24sXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9fdGlsZSAucWRuYXByby1pY29uIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4vLyBJbWFnZSB0aWxlOiB0aGUgcGljdHVyZSBicmluZ3MgaXRzIG93biBjb2xvdXJzLCBzbyB0aGUgdHlwZSBmaWxsIGdvZXMgbmV1dHJhbCAtXG4vLyBvdGhlcndpc2UgYSB0cmFuc3BhcmVudCBhY3Rpdml0eSBpY29uIHNpdHMgb24gYnJhbmQgcHVycGxlIGFuZCByZWFkcyBhcyBhIGJ1Zy5cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX190aWxlLS1pbWFnZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG4gIHBhZGRpbmc6IDNweDtcbn1cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX190aWxlLWltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTEsIDRweCk7XG4gIC8vIGNvbnRhaW4sIE5PVCBjb3ZlcjogY3JvcHBpbmcgYSAyNHB4IGlsbHVzdHJhdGlvbiB0byBmaWxsIGEgc3F1YXJlIGxvc2VzIHRoZVxuICAvLyB2ZXJ5IHRoaW5nIHRoYXQgbWFrZXMgdGhlIHRhc2tsaXN0IHJlY29nbmlzYWJsZS4gQSBzcXVhcmUgbG9nbyBmaWxscyBpdCBhbnl3YXkuXG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi8vIC0tLSBNYWluIGNvbHVtbiAtLS1cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX19tYWluIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLy8gSGVhZGxpbmU6IHRpdGxlIGFuZCB0aW1lIG9uIE9ORSBsaW5lLCB0aW1lIHRyYWlsaW5nIHRoZSB0aXRsZSAoaW5saW5lKSwgdGhlXG4vLyB3YXkgdGhlIE9TIHJlbmRlcnMgaXQuXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9faGVhZGxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogNnB4O1xufVxuXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9fdGl0bGUge1xuICBtaW4td2lkdGg6IDA7XG4gIGNvbG9yOiB2YXIoLS1wbi10aXRsZSk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG5cbi8vIENvbGxhcHNlZDogdGhlIHRpdGxlIHRha2VzIG9uZSBsaW5lIGFuZCBlbGxpcHNpc2VzLCBzbyB0aGUgdGltZSBzdGF5cyBiZXNpZGVcbi8vIGl0IGluc3RlYWQgb2YgYmVpbmcgb3JwaGFuZWQgb24gYSBsaW5lIG9mIGl0cyBvd24uIFRoaXMgaXMgd2hhdCB0aGUgT1MgZG9lcyAtXG4vLyBvbiB0aGUgbG9jayBzY3JlZW4gYSBsb25nIHRpdGxlIHRydW5jYXRlcyBhbmQgdGhlIHRpbWVzdGFtcCBob2xkcyBpdHMgcGxhY2UuXG4vLyBFeHBhbmRlZCAoc3RlcCAyKSBsZXRzIHRoZSB0aXRsZSB3cmFwIHRvIGl0cyBmdWxsIGxlbmd0aC5cbi8vIGZsZXg6IDAgMSBhdXRvLCBkZWxpYmVyYXRlbHkgTk9UIDEgMSBhdXRvOiB0aGUgdGl0bGUgbXVzdCBTSFJJTksgd2hlbiB0aGVyZSBpc1xuLy8gbm8gcm9vbSBidXQgbmV2ZXIgR1JPVywgb3RoZXJ3aXNlIGEgc2hvcnQgdGl0bGUgc3RyZXRjaGVzIHRoZSBib3ggYW5kIHB1c2hlcyB0aGVcbi8vIHRpbWUgb3V0IHRvIHRoZSByaWdodCBlZGdlLiBJbiB0aGUgcmVmZXJlbmNlIHRoZSB0aW1lIHNpdHMgZGlyZWN0bHkgYmVoaW5kIHRoZVxuLy8gdGl0bGUsIGFuZCBvbmx5IGEgbG9uZyB0aXRsZSBwdXNoZXMgaXQgYWxvbmcgdG8gdGhlIGVkZ2UuXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbi0tY29sbGFwc2VkIC5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX190aXRsZSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX3RpbWUge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgY29sb3I6IHZhcigtLXBuLW1ldGEpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX19ib2R5IHtcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBjb2xvcjogdmFyKC0tcG4tYm9keSk7XG4gIGZvbnQtc2l6ZTogMTMuNXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS40MjtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG5cbi8vIENvbGxhcHNlZCA9IHRoZSBib2R5IGlzIGNsYW1wZWQgdG8gMiBsaW5lcyB3aXRoIGFuIGVsbGlwc2lzLiAtd2Via2l0LWxpbmUtY2xhbXBcbi8vIGlzIHRoZSBvbmx5IGNyb3NzLWJyb3dzZXIgd2F5IHRvIGNsYW1wIGF0IGEgTElORSBjb3VudDsgaXQgaXMgc3VwcG9ydGVkIGluXG4vLyBldmVyeSBlbmdpbmUgd2Ugc2hpcCBvbiAoQ2hyb21lL1NhZmFyaS9XS1dlYlZpZXcvRmlyZWZveCkuXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbi0tY29sbGFwc2VkIC5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX19ib2R5IHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gLS0tIENoZXZyb24gKyBkaXNtaXNzIC0tLVxuLy8gVG9wLWFsaWduZWQgYWdhaW5zdCB0aGUgaGVhZGxpbmUsIGFuZCBwdWxsZWQgb3V0IG9mIHRoZSBwYWRkaW5nIGEgdG91Y2ggc29cbi8vIHRoZWlyIDI0cHggaGl0IGFyZWFzIGRvIG5vdCBwdXNoIHRoZSB0ZXh0IGNvbHVtbiBuYXJyb3dlciB0aGFuIGl0IGxvb2tzLlxuLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX2NoZXZyb24sXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9fZGlzbWlzcyB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtYXJnaW46IC0xcHggLTRweCAwIDA7XG59XG5cbi8vIC0tLSBFeHBhbmRlZCAtLS1cbi8vIE1ldGEgbGluZTogYXBwL3NlbmRlciBuYW1lICsgdGltZSBBQk9WRSB0aGUgdGl0bGUuIFRoZSBuYW1lIGNhcnJpZXMgdGhlIGJyYW5kXG4vLyBjb2xvdXIgKGl0IGlzIHRoZSBcIndob1wiLCBzYW1lIGlkZWEgYXMgdGhlIHNlbmRlciBsaW5lIGluIHRoZSBiZWxsIGxpc3QpOyB0aGVcbi8vIHRpbWUgc3RheXMgbXV0ZWQuXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9fbWV0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgZ2FwOiA2cHg7XG4gIG1hcmdpbi1ib3R0b206IDFweDtcbn1cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX19hcHAge1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICBmb250LXNpemU6IDEyLjVweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4vLyBFeHBhbmRlZCwgdGhlIHRpdGxlIGlzIGEgYmxvY2sgb24gaXRzIG93biBsaW5lIGFuZCB3cmFwcyB0byBpdHMgZnVsbCBsZW5ndGguXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbi0tZXhwYW5kZWQgLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX3RpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIC0tLSBNZWRpYSBibG9jayAodGhlIExBUkdFIHJlbmRlcmluZykgLS0tXG4vLyBCZXR3ZWVuIHRoZSBib2R5IGFuZCB0aGUgYWN0aW9uIGZvb3RlciwgSU5ERU5URUQgdG8gdGhlIHRleHQgY29sdW1uIHJhdGhlciB0aGFuXG4vLyBmdWxsLWJsZWVkOiBpbiB0aGUgcmVmZXJlbmNlIGl0IGxpbmVzIHVwIHdpdGggdGhlIHRpdGxlIGFuZCBib2R5LCBub3Qgd2l0aCB0aGVcbi8vIGNhcmQgZWRnZXMgKHRoZSBmb290ZXIgaXMgdGhlIG9ubHkgZnVsbC1ibGVlZCBwYXJ0KS4gQSBmaXhlZCAxNi85IGJveCB3aXRoXG4vLyBvYmplY3QtZml0OiBjb3Zlciwgc28gYSBwb3J0cmFpdCBvciBhbiBvZGQtc2l6ZWQgaW1hZ2UgY2Fubm90IHN0cmV0Y2ggdGhlIGNhcmRcbi8vIHRvIGFuIHVucHJlZGljdGFibGUgaGVpZ2h0IGluIGEgbm90aWZpY2F0aW9uIHN0YWNrLlxuLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX21lZGlhIHtcbiAgbWFyZ2luLXRvcDogOXB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIsIDhweCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX21lZGlhLWltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICAvLyBQbGFjZWhvbGRlciB0aW50IHdoaWxlIGl0IGxvYWRzLCBzbyB0aGUgYmxvY2sgZG9lcyBub3QgZmxhc2ggYXMgYSB3aGl0ZSBob2xlXG4gIC8vIG9uIHRoZSBjYXJkLiBBIGZhaWxlZCBsb2FkIHJlbW92ZXMgdGhlIGJsb2NrIGVudGlyZWx5IChzZWUgdGhlIGNvbXBvbmVudCdzXG4gIC8vIGltYWdlLWVycm9yIGhhbmRsaW5nKSwgc28gdGhpcyB0aW50IGlzIG5ldmVyIGEgcGVybWFuZW50IGVtcHR5IHN0YXRlLlxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpO1xufVxuXG4vLyAtLS0gQWN0aW9uIGZvb3RlciAtLS1cbi8vIE9uZSByb3csIG9uZSBjb2x1bW4gcGVyIGFjdGlvbiwgc3BsaXQgYnkgYSBoYWlybGluZS4gRnVsbC1ibGVlZDogaXQgc3RyZXRjaGVzXG4vLyBwYXN0IHRoZSBjYXJkJ3Mgb3duIHBhZGRpbmcgdG8gdGhlIGNhcmQgZWRnZXMsIHNvIHRoZSBkaXZpZGVyIHJlYWNoZXMgYm90aFxuLy8gc2lkZXMgbGlrZSB0aGUgT1MgZG9lcy4gQSBzaW5nbGUgYWN0aW9uIHNpbXBseSBmaWxscyB0aGUgcm93LlxuLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX2Zvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBtYXJnaW46IDExcHggLTE0cHggLTEzcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1wbi1kaXZpZGVyKTtcbn1cbi8vIFRoZSBhY3Rpb24gSVMgYSA8cWRuYXByby1idXR0b24+OiBpdCBrZWVwcyBpdHMgb3duIHR5cGUgc3R5bGluZyAoc3VidGxlIC9cbi8vIHN1YnRsZS1tdXRlZCkgYW5kIG9ubHkgaXRzIEdFT01FVFJZIGlzIHRoZSBmb290ZXIncyBidXNpbmVzcy4gRWFjaCBidXR0b25cbi8vIHJvdW5kcyBPTkxZIHRoZSBjYXJkIGNvcm5lciBpdCBhY3R1YWxseSB0b3VjaGVzLCBzbyBpdHMgaG92ZXIgZmlsbCBuZXZlclxuLy8gb3ZlcmhhbmdzIHRoZSAxMnB4IHJhZGl1cyBhbmQgbmV2ZXIgcm91bmRzIHRoZSBzaGFyZWQgbWlkZGxlIGVkZ2UuXG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9fZm9vdGVyIC5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX19hY3Rpb24ge1xuICBmbGV4OiAxIDEgMDtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX19mb290ZXIgLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX2FjdGlvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLXItMywgMTJweCk7XG59XG4ucWRuYXByby1wdXNoLW5vdGlmaWNhdGlvbl9fZm9vdGVyIC5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX19hY3Rpb246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1yLTMsIDEycHgpO1xufVxuLy8gVGhlIGhhaXJsaW5lIEJFVFdFRU4gdHdvIGFjdGlvbnMuIE9ubHkgZHJhd24gb24gYSBzZWNvbmQgYWN0aW9uLCBzbyBhIHNpbmdsZVxuLy8gYWN0aW9uIGhhcyBubyBzdHJheSBkaXZpZGVyLlxuLnFkbmFwcm8tcHVzaC1ub3RpZmljYXRpb25fX2FjdGlvbiArIC5xZG5hcHJvLXB1c2gtbm90aWZpY2F0aW9uX19hY3Rpb24ge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLXBuLWRpdmlkZXIpO1xufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvcmFkaW8vX3JhZGlvLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLXJhZGlvIHtcbiAgLS1yYi1zaXplOiAxNnB4O1xuICAtLXJiLWJvcmRlcjogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gIC0tcmItYmc6IHZhcigtLWMtZ3JleS01MCk7XG4gIC0tcmItYmctaG92ZXI6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAtLXJiLXNlbGVjdGVkLWJnOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAtLXJiLXNlbGVjdGVkLWJnLWhvdmVyOiB2YXIoLS1jLWFjdGlvbi02MDApO1xuICAtLXJiLXNlbGVjdGVkLWRvdDogI2ZmZmZmZjtcbiAgLS1yYi1mb2N1cy1yaW5nOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLXJiLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiB2YXIoLS1yYi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1yYi1zaXplKTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXJiLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcmItYmcpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zIGVhc2Utb3V0LCBib3JkZXItY29sb3IgMTQwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1yYWRpbyAucmFkaW8tZG90IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1yYi1zZWxlY3RlZC1kb3QpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIyMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjM1LCAwLjY0LCAxKSwgb3BhY2l0eSAxNDBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLXJhZGlvLnJhZGlvLXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tcmItc2VsZWN0ZWQtYmcpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXJiLXNlbGVjdGVkLWJnKTtcbn1cbi5xZG5hcHJvLXJhZGlvLnJhZGlvLXNlbGVjdGVkIC5yYWRpby1kb3Qge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxO1xufVxuLnFkbmFwcm8tcmFkaW86aG92ZXI6bm90KC5yYWRpby1kaXNhYmxlZCk6bm90KC5yYWRpby1zZWxlY3RlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1yYi1iZy1ob3Zlcik7XG59XG4ucWRuYXByby1yYWRpbzpob3Zlcjpub3QoLnJhZGlvLWRpc2FibGVkKS5yYWRpby1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXJiLXNlbGVjdGVkLWJnLWhvdmVyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1yYi1zZWxlY3RlZC1iZy1ob3Zlcik7XG59XG4ucWRuYXByby1yYWRpbzphY3RpdmU6bm90KC5yYWRpby1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjE1KSwgcmdiYSgwLCAwLCAwLCAwLjE1KSk7XG59XG4ucWRuYXByby1yYWRpbzpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucWRuYXByby1yYWRpbzpmb2N1cy12aXNpYmxlLCAucWRuYXByby1yYWRpby5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1yYi1mb2N1cy1yaW5nKSwgMCAwIDAgNnB4IHZhcigtLXJiLWZvY3VzLWdsb3cpO1xufVxuLnFkbmFwcm8tcmFkaW8uZm9yY2UtaG92ZXI6bm90KC5yYWRpby1kaXNhYmxlZCk6bm90KC5yYWRpby1zZWxlY3RlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1yYi1iZy1ob3Zlcik7XG59XG4ucWRuYXByby1yYWRpby5mb3JjZS1ob3Zlcjpub3QoLnJhZGlvLWRpc2FibGVkKS5yYWRpby1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXJiLXNlbGVjdGVkLWJnLWhvdmVyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1yYi1zZWxlY3RlZC1iZy1ob3Zlcik7XG59XG4ucWRuYXByby1yYWRpby5mb3JjZS1wcmVzc2VkOm5vdCgucmFkaW8tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMC4xNSksIHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xufVxuLnFkbmFwcm8tcmFkaW8ucmFkaW8tc3RhdGUtZXJyb3Ige1xuICAtLXJiLWJvcmRlcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xuICAtLXJiLWJnLWhvdmVyOiB2YXIoLS1jLXRhZy1jcml0aWNhbC1iZyk7XG4gIC0tcmItc2VsZWN0ZWQtYmc6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTtcbiAgLS1yYi1zZWxlY3RlZC1iZy1ob3ZlcjogdmFyKC0tYy10YWctY3JpdGljYWwtdGV4dCk7XG4gIC0tcmItc2VsZWN0ZWQtZG90OiAjZmZmZmZmO1xuICAtLXJiLWZvY3VzLXJpbmc6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTtcbiAgLS1yYi1mb2N1cy1nbG93OiByZ2JhKDE5OCwgOTAsIDkwLCAwLjI1KTtcbn1cbi5xZG5hcHJvLXJhZGlvLnJhZGlvLXN0YXRlLXN1Y2Nlc3Mge1xuICAtLXJiLWJvcmRlcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG4gIC0tcmItYmctaG92ZXI6IHZhcigtLWMtc2lnbmFsLWdyZWVuLWJnKTtcbiAgLS1yYi1zZWxlY3RlZC1iZzogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCk7XG4gIC0tcmItc2VsZWN0ZWQtYmctaG92ZXI6ICMyZjVkNGE7XG4gIC0tcmItc2VsZWN0ZWQtZG90OiAjZmZmZmZmO1xuICAtLXJiLWZvY3VzLXJpbmc6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQpO1xuICAtLXJiLWZvY3VzLWdsb3c6IHJnYmEoNjYsIDEzOSwgMTEwLCAwLjI1KTtcbn1cbi5xZG5hcHJvLXJhZGlvLnJhZGlvLWRpc2FibGVkIHtcbiAgLS1yYi1ib3JkZXI6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAtLXJiLWJnOiB2YXIoLS1jLWdyZXktNTApO1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tcmFkaW8ucmFkaW8tZGlzYWJsZWQucmFkaW8tc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xufVxuLnFkbmFwcm8tcmFkaW8ucmFkaW8tZGlzYWJsZWQucmFkaW8tc2VsZWN0ZWQgLnJhZGlvLWRvdCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXJhZGlvIHtcbiAgLS1yYi1ib3JkZXI6ICM1NjViNjY7XG4gIC0tcmItYmc6ICMyZTMwMzY7XG4gIC0tcmItYmctaG92ZXI6ICM0MDQ0NGQ7XG4gIC0tcmItc2VsZWN0ZWQtYmc6ICM0NjUyZjM7XG4gIC0tcmItc2VsZWN0ZWQtYmctaG92ZXI6ICM1YTY2ZmY7XG4gIC0tcmItc2VsZWN0ZWQtZG90OiAjZmZmZmZmO1xuICAtLXJiLWZvY3VzLXJpbmc6ICNhNWFjZmY7XG4gIC0tcmItZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC40KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXJhZGlvLnJhZGlvLXN0YXRlLWVycm9yIHtcbiAgLS1yYi1ib3JkZXI6ICNjNjVhNWE7XG4gIC0tcmItYmctaG92ZXI6ICM1YTJiMmI7XG4gIC0tcmItc2VsZWN0ZWQtYmc6ICNjNjVhNWE7XG4gIC0tcmItc2VsZWN0ZWQtYmctaG92ZXI6ICNhMDQ0NDQ7XG4gIC0tcmItZm9jdXMtcmluZzogI2U4OTA5MDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXJhZGlvLnJhZGlvLXN0YXRlLXN1Y2Nlc3Mge1xuICAtLXJiLWJvcmRlcjogIzQyOGI2ZTtcbiAgLS1yYi1iZy1ob3ZlcjogIzJhNTU0NDtcbiAgLS1yYi1zZWxlY3RlZC1iZzogIzQyOGI2ZTtcbiAgLS1yYi1zZWxlY3RlZC1iZy1ob3ZlcjogIzJmNWQ0YTtcbiAgLS1yYi1mb2N1cy1yaW5nOiAjN2NjZmE4O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tcmFkaW8ucmFkaW8tZGlzYWJsZWQge1xuICAtLXJiLWJvcmRlcjogIzU2NWI2NjtcbiAgLS1yYi1iZzogIzQwNDQ0ZDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXJhZGlvLnJhZGlvLWRpc2FibGVkLnJhZGlvLXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZDogIzQwNDQ0ZDtcbiAgYm9yZGVyLWNvbG9yOiAjNTY1YjY2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tcmFkaW8ucmFkaW8tZGlzYWJsZWQucmFkaW8tc2VsZWN0ZWQgLnJhZGlvLWRvdCB7XG4gIGJhY2tncm91bmQ6ICM2YjcyODA7XG59XG4iLCIvLyBfcmFkaW8tdGlsZS5zY3NzXG4vLyBDYW5vbmljYWwgc3R5bGVzIGZvciBxZG5hcHJvLXJhZGlvLXRpbGVzIGFuZCBxZG5hcHJvLXJhZGlvLXRpbGUuXG4vLyBBIFwicGljayBvbmUgb2YgTlwiIHJvdyBvZiBjYXJkczogaGVhZGluZyBvbiB0b3AsIGFuaW1hdGVkIHBpY3R1cmUgaW4gdGhlXG4vLyBtaWRkbGUsIGEgcmVhbCBxZG5hcHJvLXJhZGlvIGRvdCBhdCB0aGUgYm90dG9tLCBhbmQgYW4gaW5mbyBidXR0b24gdGhhdCBvbmx5XG4vLyBhcHBlYXJzIG9uIGhvdmVyLiBCdWlsdCAzMS4wOC4yMDI2IGZyb20gS2ltJ3MgTW9kdXMgc2NyZWVuc2hvdC5cbi8vXG4vLyBTdGF0ZSBwYWxldHRlLCBhZ3JlZWQgd2l0aCBLaW06XG4vLyAgIGhvdmVyICAgICAtLWMtZ3JleS01MCBzdXJmYWNlXG4vLyAgIHByZXNzZWQgICB0aGUgc2FtZSBzdXJmYWNlIG9uZSBzdGVwIGRhcmtlciArIGEgaGFpciBvZiBzY2FsZVxuLy8gICBmb2N1cyAgICAgdGhlIGhvdXNlIHR3by1yaW5nIGZvY3VzIHRyZWF0bWVudCAoMnB4IHNvbGlkICsgNnB4IGdsb3cpXG4vLyAgIHNlbGVjdGVkICBhY3Rpb24tYmx1ZSBib3JkZXIgKyBzb2Z0IG91dGVyIHJpbmcsIGRvdCBmaWxsZWRcbi8vID09PSBTVEFSVCBRRE5BUFJPLVJBRElPLVRJTEUgQ1NTID09PVxuXG4vLyBUaGUgcnVubmluZyBib3JkZXIgbGlnaHQgKG1vZGU9XCJ0b2dnbGVcIiwgc3dpdGNoZWQgb24pIHR1cm5zIGEgcmVnaXN0ZXJlZFxuLy8gY3VzdG9tIHByb3BlcnR5LCBiZWNhdXNlIGEgY29uaWMtZ3JhZGllbnQgYW5nbGUgY2Fubm90IGJlIGFuaW1hdGVkIGFueSBvdGhlclxuLy8gd2F5LiBXaGVyZSBAcHJvcGVydHkgaXMgbWlzc2luZyB0aGUgYW5nbGUgc2ltcGx5IHN0YXlzIGF0IDBkZWcgYW5kIHRoZSB0aWxlXG4vLyBrZWVwcyBhIHN0aWxsIGdvbGRlbiBhcmMgaW5zdGVhZCBvZiBhIG1vdmluZyBvbmUgLSBzdGlsbCBhIGNsZWFyIFwidGhpcyBpcyBvblwiXG4vLyBtYXJrZXIsIHNvIG5vIGZhbGxiYWNrIHJ1bGUgaXMgbmVlZGVkLlxuQHByb3BlcnR5IC0tcXJ0LWJlYW0tYW5nbGUge1xuICAgIHN5bnRheDogXCI8YW5nbGU+XCI7XG4gICAgaW5pdGlhbC12YWx1ZTogMGRlZztcbiAgICBpbmhlcml0czogZmFsc2U7XG59XG5cblxuLnFkbmFwcm8tcmFkaW8tdGlsZXMge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuXG4gICAgLnJhZGlvLXRpbGVzLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5KTtcbiAgICB9XG5cbiAgICAucmFkaW8tdGlsZXMtdHJhY2sge1xuICAgICAgICAtLXJhZGlvLXRpbGVzLWNvbHVtbnM6IDM7XG4gICAgICAgIC0tcmFkaW8tdGlsZS1tYXg6IDIwMHB4O1xuICAgICAgICAtLXJhZGlvLXRpbGVzLWdhcDogMTBweDtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tcmFkaW8tdGlsZXMtY29sdW1ucyksIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgZ2FwOiB2YXIoLS1yYWRpby10aWxlcy1nYXApO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgLy8gQSB0aWxlIGlzIGEgc21hbGwgY2FyZCwgbm90IGEgYmFubmVyLiBJbiBhIG1vZGFsIHRoZSBjb2x1bW4gaXMgbmFycm93ZXJcbiAgICAgICAgLy8gdGhhbiB0aGlzIGFuZCB0aGUgdGlsZXMgc2ltcGx5IGZpbGwgaXQ7IG9uIGEgZnVsbC13aWR0aCBwYWdlIHRoZSByb3dcbiAgICAgICAgLy8gc3RvcHMgaGVyZSBpbnN0ZWFkIG9mIHN0cmV0Y2hpbmcgZWFjaCB0aWxlIGludG8gYSBsZXR0ZXJib3ggYXJvdW5kIGFuXG4gICAgICAgIC8vIDg4cHggcGljdHVyZS5cbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKFxuICAgICAgICAgICAgdmFyKC0tcmFkaW8tdGlsZXMtY29sdW1ucykgKiB2YXIoLS1yYWRpby10aWxlLW1heClcbiAgICAgICAgICAgICsgKHZhcigtLXJhZGlvLXRpbGVzLWNvbHVtbnMpIC0gMSkgKiB2YXIoLS1yYWRpby10aWxlcy1nYXApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJi5yYWRpby10aWxlcy1kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxufVxuXG4vLyBCZWxvdyB0aGUgdGFibGV0IGJyZWFrIHRoZSBwaWN0dXJlcyBnZXQgdG9vIHNtYWxsIHRvIHJlYWQgYXQgdGhyZWUgYWNyb3NzLlxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gICAgLnFkbmFwcm8tcmFkaW8tdGlsZXMgLnJhZGlvLXRpbGVzLXRyYWNrIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLnFkbmFwcm8tcmFkaW8tdGlsZXMgLnJhZGlvLXRpbGVzLXRyYWNrIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBUaGUgdGlsZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5xZG5hcHJvLXJhZGlvLXRpbGUge1xuICAgIC8vIFNpemVkIGZvciBhIG1vZGFsIGNvbHVtbiBvZiByb3VnaGx5IDUwMHB4LCB3aGljaCBpcyB3aGVyZSB0aGlzIGxpdmVzOlxuICAgIC8vIHRocmVlIHRpbGVzIG9mIH4xNDB4MTc1LiBBdCAxMjBweCBvZiBhcnR3b3JrICh0aGUgZmlyc3QgY3V0LCAzMS4wOC4yMDI2KVxuICAgIC8vIHRoZSByb3cgc3dhbGxvd2VkIHRoZSBtb2RhbC4gT3ZlcnJpZGUgLS1yYWRpby10aWxlLW1lZGlhIG9uIHRoZSBncm91cCB3aGVuXG4gICAgLy8gYSB0aWxlIGdlbnVpbmVseSBoYXMgYSBwYWdlIHRvIGl0c2VsZi5cbiAgICAtLXJhZGlvLXRpbGUtbWVkaWE6IDg4cHg7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAxNHB4IDEycHggMTJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgMTQwbXMgZWFzZSxcbiAgICAgICAgYm9yZGVyLWNvbG9yIDE0MG1zIGVhc2UsXG4gICAgICAgIGJveC1zaGFkb3cgMjAwbXMgZWFzZSxcbiAgICAgICAgdHJhbnNmb3JtIDE0MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG5cbiAgICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG5cbiAgICAucmFkaW8tdGlsZS10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAvLyBUd28gbGluZXMgaXMgcGxlbnR5IGZvciBhbiBvcHRpb24gaGVhZGluZzsgYW55dGhpbmcgbG9uZ2VyIGJlbG9uZ3MgaW4gZGVzYy5cbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgfVxuXG4gICAgLy8gVGhlIHBpY3R1cmUuIFBvc3RlciBhbmQgYW5pbWF0aW9uIGFyZSBzdGFja2VkIG9uIHRoZSBzYW1lIHNxdWFyZSBzbyB0aGVcbiAgICAvLyBzd2FwIGJldHdlZW4gdGhlbSBuZXZlciBtb3ZlcyB0aGUgbGF5b3V0LlxuICAgIC5yYWRpby10aWxlLW1lZGlhIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IHZhcigtLXJhZGlvLXRpbGUtbWVkaWEpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXJhZGlvLXRpbGUtbWVkaWEpO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG5cbiAgICAucmFkaW8tdGlsZS1wb3N0ZXIsXG4gICAgLnJhZGlvLXRpbGUtYW5pbSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTQwbXMgZWFzZTtcbiAgICB9XG5cbiAgICAucmFkaW8tdGlsZS1wb3N0ZXIge1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIC8vIFRoZSBtb3VudGVkIExvdHRpZSBpcyBpbnZpc2libGUgdW50aWwgdGhlIHRpbGUgaXMgYWN0dWFsbHkgYW5pbWF0aW5nLFxuICAgIC8vIHNvIGEgcGxheWVyIHRoYXQgaXMgc3RpbGwgbG9hZGluZyBuZXZlciBmbGFzaGVzIGFuIGVtcHR5IHNxdWFyZS5cbiAgICAucmFkaW8tdGlsZS1hbmltIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnJhZGlvLXRpbGUtYW5pbWF0aW5nIHtcbiAgICAgICAgLnJhZGlvLXRpbGUtcG9zdGVyIHsgb3BhY2l0eTogMDsgfVxuICAgICAgICAucmFkaW8tdGlsZS1hbmltICAgeyBvcGFjaXR5OiAxOyB9XG4gICAgfVxuXG4gICAgLnJhZGlvLXRpbGUtZGVzYyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICB9XG5cbiAgICAvLyBUaGUgZG90IHNpdHMgb24gaXRzIG93biBsaW5lIGF0IHRoZSBib3R0b20sIHB1c2hlZCBkb3duIHNvIHRpbGVzIHdpdGggYW5kXG4gICAgLy8gd2l0aG91dCBhIGRlc2NyaXB0aW9uIHN0aWxsIGxpbmUgdGhlaXIgZG90cyB1cC5cbiAgICAucmFkaW8tdGlsZS1tYXJrIHtcbiAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgcGFkZGluZy10b3A6IDJweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLy8gUHVyZWx5IHRoZSB2aXN1YWwuIEFsbCBpbnRlcmFjdGlvbiBsaXZlcyBvbiB0aGUgdGlsZS5cbiAgICAgICAgcWRuYXByby1yYWRpbyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0gSW5mbyBidXR0b24sIHRvcC1yaWdodCwgcmV2ZWFsZWQgb24gaG92ZXIgLS0tLVxuICAgIC8vIEtlcHQgaW4gdGhlIGxheW91dCBhdCBhbGwgdGltZXMgKG9wYWNpdHksIG5vdCBkaXNwbGF5KSBzbyBhcHBlYXJpbmcgY29zdHNcbiAgICAvLyBubyByZWZsb3cgYW5kIHRoZSBidXR0b24gc3RheXMgcmVhY2hhYmxlIGJ5IGtleWJvYXJkLlxuICAgIC5yYWRpby10aWxlLWluZm8ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNnB4O1xuICAgICAgICByaWdodDogNnB4O1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE0MG1zIGVhc2UsIHRyYW5zZm9ybSAxNDBtcyBlYXNlO1xuICAgIH1cblxuICAgICY6aG92ZXIgLnJhZGlvLXRpbGUtaW5mbyxcbiAgICAmLmZvcmNlLWhvdmVyIC5yYWRpby10aWxlLWluZm8sXG4gICAgLnJhZGlvLXRpbGUtaW5mbzpmb2N1cy12aXNpYmxlLFxuICAgIC5yYWRpby10aWxlLWluZm86Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBIb3ZlciAtLS0tXG4gICAgJjpob3Zlcjpub3QoLnJhZGlvLXRpbGUtZGlzYWJsZWQpLFxuICAgICYuZm9yY2UtaG92ZXI6bm90KC5yYWRpby10aWxlLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBQcmVzc2VkIC0tLS1cbiAgICAmOmFjdGl2ZTpub3QoLnJhZGlvLXRpbGUtZGlzYWJsZWQpLFxuICAgICYuZm9yY2UtcHJlc3NlZDpub3QoLnJhZGlvLXRpbGUtZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45ODUpO1xuICAgIH1cblxuICAgIC8vIC0tLS0gRm9jdXMgKHRoZSBob3VzZSB0d28tcmluZyB0cmVhdG1lbnQsIHNhbWUgYXMgcWRuYXByby1yYWRpbykgLS0tLVxuICAgICY6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUsXG4gICAgJi5mb3JjZS1mb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWMtYWN0aW9uLTUwMCksIDAgMCAwIDZweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIFNlbGVjdGVkIC0tLS1cbiAgICAmLnJhZGlvLXRpbGUtc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjE4KTtcblxuICAgICAgICAmOmhvdmVyOm5vdCgucmFkaW8tdGlsZS1kaXNhYmxlZCksXG4gICAgICAgICYuZm9yY2UtaG92ZXI6bm90KC5yYWRpby10aWxlLWRpc2FibGVkKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9jdXMgb24gdGhlIHNlbGVjdGVkIHRpbGUga2VlcHMgdGhlIGZvY3VzIHJpbmcsIG5vdCB0aGUgc29mdGVyIG9uZS5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlLFxuICAgICAgICAmLmZvcmNlLWZvY3VzIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jLWFjdGlvbi01MDApLCAwIDAgMCA2cHggcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAtLS0tIERpc2FibGVkIC0tLS1cbiAgICAmLnJhZGlvLXRpbGUtZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICBvcGFjaXR5OiAwLjQ1O1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAgICAgLnJhZGlvLXRpbGUtaW5mbyB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICB9XG59XG5cbi8vIE9uIGEgdG91Y2ggc2NyZWVuIHRoZXJlIGlzIG5vIGhvdmVyLCBzbyB0aGUgaW5mbyBidXR0b24gd291bGQgYmUgdW5yZWFjaGFibGUuXG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgLnFkbmFwcm8tcmFkaW8tdGlsZSAucmFkaW8tdGlsZS1pbmZvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxufVxuXG4vLyBUaGUgYW5pbWF0aW9uIG5ldmVyIHN0YXJ0cyB1bmRlciByZWR1Y2VkIG1vdGlvbiwgc28gdGhlIGNyb3NzZmFkZSBpcyBkZWFkXG4vLyB3ZWlnaHQgdGhlcmU7IHRoZSBwb3N0ZXIgc2ltcGx5IHN0YXlzIHB1dC4gVGhlIGJlYW0gYW5kIHRoZSBjZWxlYnJhdGlvbiBzdG9wXG4vLyB0b28gLSB0aGUgSlMgbmV2ZXIgYnVpbGRzIHRoZSBzcGFya2xlcywgYW5kIHRoaXMgc3dpdGNoZXMgdGhlIGJlYW0gb2ZmIGZvclxuLy8gZ29vZCBtZWFzdXJlIHNvIGEgY2xhc3MgbGVmdCBiZWhpbmQgY2FuIG5ldmVyIHN0YXJ0IHNwaW5uaW5nLlxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucWRuYXByby1yYWRpby10aWxlLFxuICAgIC5xZG5hcHJvLXJhZGlvLXRpbGUgLnJhZGlvLXRpbGUtcG9zdGVyLFxuICAgIC5xZG5hcHJvLXJhZGlvLXRpbGUgLnJhZGlvLXRpbGUtYW5pbSxcbiAgICAucWRuYXByby1yYWRpby10aWxlIC5yYWRpby10aWxlLWluZm8ge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5xZG5hcHJvLXJhZGlvLXRpbGUucmFkaW8tdGlsZS1iZWFtOjphZnRlcixcbiAgICAucWRuYXByby1yYWRpby10aWxlLnJhZGlvLXRpbGUtcG9wIHtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgbW9kZT1cInRvZ2dsZVwiIC0gb25lIHRpbGUgdGhhdCBpcyBhIHN3aXRjaCAoMDIuMDkuMjAyNiwgS2ltKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBIHNpbmdsZSBzZXR0aW5nIGluc3RlYWQgb2Ygb25lIG9wdGlvbiBvdXQgb2Ygc2V2ZXJhbDogdGhlIHJhZGlvIGRvdCBiZWNvbWVzXG4vLyBhIHJlYWwgcWRuYXByby10b2dnbGUsIHRoZSB3aG9sZSBjYXJkIGZsaXBzIGl0LCBhbmQgb25jZSBpdCBpcyBPTiB0aGUgY2FyZFxuLy8ga2VlcHMgYW5ub3VuY2luZyBpdHNlbGYgLSB0aGUgcGljdHVyZSBnb2VzIG9uIGFuaW1hdGluZyAoaGFuZGxlZCBpbiBKUykgYW5kIGFcbi8vIGxpZ2h0IHJ1bnMgYXJvdW5kIHRoZSBib3JkZXIuIFN3aXRjaGluZyBpdCBvbiBmaXJlcyBhIGJ1cnN0IG9mIHNwYXJrbGVzLlxuXG4ucWRuYXByby1yYWRpby10aWxlLnJhZGlvLXRpbGUtdG9nZ2xlIHtcbiAgICAvLyBBIGxvbmUgdGlsZSBpcyBub3QgY29tcGV0aW5nIHdpdGggbmVpZ2hib3VycyBmb3Igd2lkdGgsIHNvIGl0IG1heSBiZSBhXG4gICAgLy8gdG91Y2ggcm9vbWllciB0aGFuIG9uZSBvZiB0aHJlZS5cbiAgICAtLXJhZGlvLXRpbGUtbWVkaWE6IDk2cHg7XG4gICAgbWF4LXdpZHRoOiAyNDBweDtcblxuICAgIC5yYWRpby10aWxlLW1hcmsge1xuICAgICAgICAvLyBTYW1lIHJ1bGUgYXMgdGhlIHJhZGlvIGRvdDogdGhlIHN3aXRjaCBpcyB0aGUgcGljdHVyZSBvZiB0aGUgc3RhdGUsXG4gICAgICAgIC8vIHRoZSB0aWxlIG93bnMgdGhlIGNsaWNrLiBXaXRob3V0IHRoaXMgYSBjbGljayBvbiB0aGUgc3dpdGNoIGl0c2VsZlxuICAgICAgICAvLyB3b3VsZCBiZSBjb3VudGVkIHR3aWNlIGFuZCBmbGlwIHN0cmFpZ2h0IGJhY2suXG4gICAgICAgIHFkbmFwcm8tdG9nZ2xlIHsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICB9XG5cbiAgICAvLyAtLS0tIE9OIC0tLS1cbiAgICAvLyBUaGUgc29mdCBibHVlIHJpbmcgb2YgdGhlIHJhZGlvLXNlbGVjdGVkIHN0YXRlIHdvdWxkIGZpZ2h0IHRoZSBiZWFtLCBzb1xuICAgIC8vIHRoZSBib3JkZXIgYWxvbmUgY2FycmllcyBpdCBoZXJlLlxuICAgICYucmFkaW8tdGlsZS1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7XG5cbiAgICAgICAgJjpob3Zlcjpub3QoLnJhZGlvLXRpbGUtZGlzYWJsZWQpLFxuICAgICAgICAmLmZvcmNlLWhvdmVyOm5vdCgucmFkaW8tdGlsZS1kaXNhYmxlZCkge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZvY3VzIHN0aWxsIHdpbnMgb3ZlciB0aGUgYmVhbSAtIHlvdSBtdXN0IGJlIGFibGUgdG8gc2VlIHdoZXJlIHlvdSBhcmUuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSxcbiAgICAgICAgJi5mb3JjZS1mb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYy1hY3Rpb24tNTAwKSwgMCAwIDAgNnB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyAtLS0tIFRoZSBib3JkZXIgYmVhbSAtLS0tXG4vLyBBIGNvbmljIGdyYWRpZW50IGJlaGluZCB0aGUgY2FyZCwgbWFza2VkIGRvd24gdG8gYSAycHggZnJhbWUuIGBwYWRkaW5nYCArXG4vLyB0aGUgeG9yIG1hc2sgaXMgdGhlIHN0YW5kYXJkIHRyaWNrOiBpdCBwYWludHMgdGhlIHJpbmcgb25seSwgbm90IHRoZSBtaWRkbGUsXG4vLyBzbyB0aGUgY2FyZCBjb250ZW50IHN0YXlzIHVudG91Y2hlZCBhbmQgbm8gZXh0cmEgZWxlbWVudCBpcyBuZWVkZWQuXG4ucWRuYXByby1yYWRpby10aWxlLnJhZGlvLXRpbGUtYmVhbTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAtMXB4O1xuICAgIHotaW5kZXg6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgYmFja2dyb3VuZDogY29uaWMtZ3JhZGllbnQoXG4gICAgICAgIGZyb20gdmFyKC0tcXJ0LWJlYW0tYW5nbGUpLFxuICAgICAgICByZ2JhKDcwLCA4MiwgMjQzLCAwLjE2KSAwZGVnLFxuICAgICAgICByZ2JhKDcwLCA4MiwgMjQzLCAwLjE2KSAyMDBkZWcsXG4gICAgICAgIHZhcigtLWMtY2hpcC15ZWxsb3ctZmcsICNiMDdkMTApIDI2OGRlZyxcbiAgICAgICAgI2ZmZDY2YiAzMDBkZWcsXG4gICAgICAgIHZhcigtLWMtYWN0aW9uLTUwMCkgMzM2ZGVnLFxuICAgICAgICByZ2JhKDcwLCA4MiwgMjQzLCAwLjE2KSAzNjBkZWdcbiAgICApO1xuICAgIC13ZWJraXQtbWFzazpcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKSBjb250ZW50LWJveCxcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKTtcbiAgICAtd2Via2l0LW1hc2stY29tcG9zaXRlOiB4b3I7XG4gICAgbWFzazpcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKSBjb250ZW50LWJveCxcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKTtcbiAgICBtYXNrLWNvbXBvc2l0ZTogZXhjbHVkZTtcbiAgICBhbmltYXRpb246IHFydC1iZWFtLXNwaW4gMy4ycyBsaW5lYXIgaW5maW5pdGU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBrZXlmcmFtZXMgcXJ0LWJlYW0tc3BpbiB7XG4gICAgdG8geyAtLXFydC1iZWFtLWFuZ2xlOiAzNjBkZWc7IH1cbn1cblxuLy8gVGhlIGNhcmQgY29udGVudCBoYXMgdG8gc2l0IEFCT1ZFIHRoZSBiZWFtIHJpbmcuXG4ucWRuYXByby1yYWRpby10aWxlLnJhZGlvLXRpbGUtYmVhbSA+ICoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4vLyAtLS0tIFRoZSBjbGljayBjZWxlYnJhdGlvbiAtLS0tXG4vLyBPbmUgYm91bmNlIG9mIHRoZSB3aG9sZSBjYXJkLi4uXG4ucWRuYXByby1yYWRpby10aWxlLnJhZGlvLXRpbGUtcG9wIHtcbiAgICBhbmltYXRpb246IHFydC1wb3AgNDIwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xufVxuXG5Aa2V5ZnJhbWVzIHFydC1wb3Age1xuICAgIDAlICAgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gICAgMzIlICB7IHRyYW5zZm9ybTogc2NhbGUoMS4wNDUpOyB9XG4gICAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbn1cblxuLy8gLi4uYW5kIGEgYnVyc3Qgb2YgbGl0dGxlIGZvdXItcG9pbnQgc3BhcmtsZXMgb3V0IG9mIHRoZSBwaWN0dXJlLiBUaGUgbGF5ZXIgaXNcbi8vIGNyZWF0ZWQgYW5kIHJlbW92ZWQgYnkgdGhlIEpTLCBzbyBub3RoaW5nIG9mIHRoaXMgZXhpc3RzIGF0IHJlc3QuXG4ucWRuYXByby1yYWRpby10aWxlIC5yYWRpby10aWxlLXNwYXJrcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vIFJ1aW1lciBkYW4gaGV0IHBsYWF0amVzdmllcmthbnQ6IGRlIHN0ZXJyZXRqZXMgdmxpZWdlbiBzaW5kcyAwMi4wOS4yMDI2XG4gICAgLy8gdG90IDkycHggdmVyIGVuIG1vZ2VuIG5pZXQgb3AgZGUgcmFuZCB2YW4gaHVuIGxhYWcgc3R1a2xvcGVuLlxuICAgIGluc2V0OiAtNjBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAzO1xufVxuXG4ucWRuYXByby1yYWRpby10aWxlIC5yYWRpby10aWxlLXNwYXJrIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiB2YXIoLS1xcnQtc3Bhcmstc2l6ZSwgMTRweCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1xcnQtc3Bhcmstc2l6ZSwgMTRweCk7XG4gICAgbWFyZ2luOiBjYWxjKHZhcigtLXFydC1zcGFyay1zaXplLCAxNHB4KSAvIC0yKSAwIDAgY2FsYyh2YXIoLS1xcnQtc3Bhcmstc2l6ZSwgMTRweCkgLyAtMik7XG4gICAgYmFja2dyb3VuZDogI2ZmYzkzZjtcbiAgICAvLyBBIGZvdXItcG9pbnQgc3BhcmtsZTogbG9uZyBwb2ludHMsIHBpbmNoZWQgd2Fpc3QuXG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKFxuICAgICAgICA1MCUgMCUsIDU5JSA0MSUsIDEwMCUgNTAlLCA1OSUgNTklLFxuICAgICAgICA1MCUgMTAwJSwgNDElIDU5JSwgMCUgNTAlLCA0MSUgNDElXG4gICAgKTtcbiAgICAvLyBLaW0gMDIuMDkuMjAyNjogXCJvcHZhbGxlbmRlclwiLiBFZW4gZ2xvZWQgaW4gZGUgZWlnZW4ga2xldXIgdGlsdCBkZVxuICAgIC8vIHN0ZXJyZXRqZXMgdmFuIGRlIGthYXJ0IGFmIHpvbmRlciBkYXQgZGUgdm9ybSBoYXJkZXIgd29yZHQ7IGRhdCBsZWVzdFxuICAgIC8vIGFscyBsaWNodCBpbiBwbGFhdHMgdmFuIGFscyBlZW4gZ3JvdGVyIHBsYXQgdmxhay5cbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCA1cHggcmdiYSgyNTUsIDIwMSwgNjMsIDAuODUpKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGFuaW1hdGlvbjogcXJ0LXNwYXJrIDg1MG1zIGN1YmljLWJlemllcigwLjE2LCAwLjg0LCAwLjQ0LCAxKSB2YXIoLS1xcnQtc3BhcmstZGVsYXksIDBtcykgYm90aDtcbn1cblxuLy8gVGhyZWUgY29sb3VycywgZGVhbHQgb3V0IHJvdW5kLXJvYmluLCBzbyB0aGUgYnVyc3QgaXMgbm90IG9uZSBmbGF0IHllbGxvdy5cbi5xZG5hcHJvLXJhZGlvLXRpbGUgLnJhZGlvLXRpbGUtc3Bhcms6bnRoLWNoaWxkKDNuICsgMikge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgNXB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuNzUpKTtcbn1cbi5xZG5hcHJvLXJhZGlvLXRpbGUgLnJhZGlvLXRpbGUtc3Bhcms6bnRoLWNoaWxkKDNuICsgMykge1xuICAgIGJhY2tncm91bmQ6ICNmZjZmYjg7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgNXB4IHJnYmEoMjU1LCAxMTEsIDE4NCwgMC43NSkpO1xufVxuXG5Aa2V5ZnJhbWVzIHFydC1zcGFyayB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKSBzY2FsZSgwLjIpIHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMjAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgICAgdHJhbnNsYXRlKGNhbGModmFyKC0tcXJ0LXNwYXJrLXgsIDBweCkgKiAwLjQwKSwgY2FsYyh2YXIoLS1xcnQtc3BhcmsteSwgMHB4KSAqIDAuNDApKVxuICAgICAgICAgICAgc2NhbGUoMS4xNSkgcm90YXRlKGNhbGModmFyKC0tcXJ0LXNwYXJrLXR1cm4sIDBkZWcpICogMC4zNSkpO1xuICAgIH1cbiAgICA1NSUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06XG4gICAgICAgICAgICB0cmFuc2xhdGUoY2FsYyh2YXIoLS1xcnQtc3BhcmsteCwgMHB4KSAqIDAuNzgpLCBjYWxjKHZhcigtLXFydC1zcGFyay15LCAwcHgpICogMC43OCkpXG4gICAgICAgICAgICBzY2FsZSgwLjkpIHJvdGF0ZShjYWxjKHZhcigtLXFydC1zcGFyay10dXJuLCAwZGVnKSAqIDAuNykpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgICAgdHJhbnNsYXRlKHZhcigtLXFydC1zcGFyay14LCAwcHgpLCB2YXIoLS1xcnQtc3BhcmsteSwgMHB4KSlcbiAgICAgICAgICAgIHNjYWxlKDAuMzUpIHJvdGF0ZSh2YXIoLS1xcnQtc3BhcmstdHVybiwgMGRlZykpO1xuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgRGFyayBtb2RlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdLFxuLnRoZW1lLWRhcmsge1xuICAgIC5xZG5hcHJvLXJhZGlvLXRpbGVzIC5yYWRpby10aWxlcy1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuNzUpO1xuICAgIH1cblxuICAgIC5xZG5hcHJvLXJhZGlvLXRpbGUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG5cbiAgICAgICAgLnJhZGlvLXRpbGUtdGl0bGUgeyBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpOyB9XG4gICAgICAgIC5yYWRpby10aWxlLWRlc2MgIHsgY29sb3I6IHJnYmEoMjQwLCAyNDEsIDI0MiwgMC42NSk7IH1cblxuICAgICAgICAmOmhvdmVyOm5vdCgucmFkaW8tdGlsZS1kaXNhYmxlZCksXG4gICAgICAgICYuZm9yY2UtaG92ZXI6bm90KC5yYWRpby10aWxlLWRpc2FibGVkKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQtaG92ZXIpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlOm5vdCgucmFkaW8tdGlsZS1kaXNhYmxlZCksXG4gICAgICAgICYuZm9yY2UtcHJlc3NlZDpub3QoLnJhZGlvLXRpbGUtZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG4gICAgICAgIH1cblxuICAgICAgICAmLnJhZGlvLXRpbGUtc2VsZWN0ZWQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4xMCk7XG5cbiAgICAgICAgICAgICY6aG92ZXI6bm90KC5yYWRpby10aWxlLWRpc2FibGVkKSxcbiAgICAgICAgICAgICYuZm9yY2UtaG92ZXI6bm90KC5yYWRpby10aWxlLWRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4xNik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgYmVhbSBkcmF3cyB0aGUgZnJhbWUgaW4gZGFyayBtb2RlIHRvbywgc28gdGhlIGJvcmRlciB1bmRlcm5lYXRoXG4gICAgICAgIC8vIGl0IHN0ZXBzIGFzaWRlIGV4YWN0bHkgYXMgaXQgZG9lcyBpbiBsaWdodCBtb2RlLlxuICAgICAgICAmLnJhZGlvLXRpbGUtdG9nZ2xlLnJhZGlvLXRpbGUtc2VsZWN0ZWQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMTQpO1xuXG4gICAgICAgICAgICAmOmhvdmVyOm5vdCgucmFkaW8tdGlsZS1kaXNhYmxlZCksXG4gICAgICAgICAgICAmLmZvcmNlLWhvdmVyOm5vdCgucmFkaW8tdGlsZS1kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyA9PT0gRU5EIFFETkFQUk8tUkFESU8tVElMRSBDU1MgKGRvIG5vdCByZW1vdmUgdGhpcyBtYXJrZXIpID09PVxuIiwiLy8gcWRuYXByby1yYW5nZS1zbGlkZXIg4oCUIGR1YWwtaGFuZGxlIHJhbmdlIHNsaWRlciBvdmVyIGxhYmVsbGVkIHN0b3BzLlxuLy8gRWRpdCBIRVJFLCB0aGVuIHJ1biBgZ3VscCBzYXNzLXYxYCAoY29tcGlsZXMgaW50byB3ZWIvY3NzL3YxL3N0eWxlLXYxLmNzcykuXG4vLyBMb2NhbCAtLXJzLSogY3VzdG9tIHByb3BzICsgYnJhbmQgcGFsZXR0ZSwgc2FtZSBjb252ZW50aW9uIGFzIHRoZSBvdGhlciB2MiBjb21wb25lbnRzLlxuXG4ucWRuYXByby1yYW5nZS1zbGlkZXIge1xuICAgIC0tcnMtdHJhY2s6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAgIC0tcnMtZmlsbDogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgICAtLXJzLWRvdDogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xuICAgIC0tcnMtaGFuZGxlOiAjZmZmZmZmO1xuICAgIC0tcnMtaGFuZGxlLWJvcmRlcjogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgICAtLXJzLWhhbmRsZS1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbiAgICAtLXJzLWxhYmVsOiB2YXIoLS1jLXB1cnBsZS00MDApO1xuICAgIC0tcnMtbGFiZWwtYWN0aXZlOiB2YXIoLS1jLXRleHQtaGVhZGluZyk7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiA2cHggMTJweCA0cHg7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB0b3VjaC1hY3Rpb246IG5vbmU7XG59XG5cbi5xZG5hcHJvLXJhbmdlLXNsaWRlciAucnMtdHJhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDZweDtcbiAgICBtYXJnaW46IDE0cHggMCA2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcnMtdHJhY2spO1xufVxuXG4ucWRuYXByby1yYW5nZS1zbGlkZXIgLnJzLWZpbGwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXJzLWZpbGwpO1xufVxuXG4ucWRuYXByby1yYW5nZS1zbGlkZXIgLnJzLWRvdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHdpZHRoOiA0cHg7XG4gICAgaGVpZ2h0OiA0cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcnMtZG90KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnFkbmFwcm8tcmFuZ2Utc2xpZGVyIC5ycy1oYW5kbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC05cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXJzLWhhbmRsZSk7XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tcnMtaGFuZGxlLWJvcmRlcik7XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gICAgY3Vyc29yOiBncmFiO1xuICAgIHotaW5kZXg6IDI7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAxNDBtcyBlYXNlLW91dCwgdHJhbnNmb3JtIDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tcmFuZ2Utc2xpZGVyIC5ycy1oYW5kbGU6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDZweCB2YXIoLS1ycy1oYW5kbGUtZ2xvdyksIDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xufVxuLnFkbmFwcm8tcmFuZ2Utc2xpZGVyIC5ycy1oYW5kbGU6YWN0aXZlIHtcbiAgICBjdXJzb3I6IGdyYWJiaW5nO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxLjA4KTtcbn1cbi5xZG5hcHJvLXJhbmdlLXNsaWRlciAucnMtaGFuZGxlOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuLnFkbmFwcm8tcmFuZ2Utc2xpZGVyIC5ycy1oYW5kbGU6Zm9jdXMtdmlzaWJsZSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHZhcigtLXJzLWhhbmRsZS1nbG93KSwgMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG59XG5cbi5xZG5hcHJvLXJhbmdlLXNsaWRlciAucnMtbGFiZWxzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbi10b3A6IDJweDtcbn1cbi5xZG5hcHJvLXJhbmdlLXNsaWRlciAucnMtbGFiZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1ycy1sYWJlbCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAxMjBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLXJhbmdlLXNsaWRlciAucnMtbGFiZWwuaXMtYWN0aXZlIHsgY29sb3I6IHZhcigtLXJzLWxhYmVsLWFjdGl2ZSk7IH1cblxuLnFkbmFwcm8tcmFuZ2Utc2xpZGVyLmlzLWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXJlY2lwaWVudC1waWNrZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIExheW91dCArIGNvbG91ciBPTkxZLiBFdmVyeSByZWFsIGNvbnRyb2wgKHNlYXJjaCBmaWVsZCwgY2hlY2tib3gsXG4vLyAgYXZhdGFyLCBidXR0b25zKSBpcyBhIGNvbXBvc2VkIGNvbXBvbmVudCB3aXRoIGl0cyBvd24gU0NTUy4gVGhpc1xuLy8gIGZpbGUgbmV2ZXIgcmVwZWF0cyB0aGVpciBiYWNrZ3JvdW5kL2JvcmRlci9wYWRkaW5nL3R5cG9ncmFwaHkgcnVsZXMsXG4vLyAgaXQgb25seSBhcnJhbmdlcyB0aGUgc2VjdGlvbnMgYW5kIHRoZSByb3cgZ3JpZC4gQ29uc3VtZXMgZGVzaWduXG4vLyAgdG9rZW5zIGZyb20gZGVzaWduLXRva2Vucy9fZGVzaWduLXRva2Vucy5zY3NzLlxuLy9cbi8vICBGbGF0IC5ycC0qIHNlbGVjdG9ycyBmb3IgdGhlIGludGVybmFsIGxheW91dCBwaWVjZXMgKHNhbWUgaWRpb20gYXNcbi8vICBxZG5hcHJvLWZpbHRlci1zaGVldCdzIC5mcy0qIGNsYXNzZXMpLCB0aGUgaG9zdCBpdHNlbGYgaXMgdGhlIG9ubHkgcmVhbFxuLy8gIEJFTSBibG9jayAoLnFkbmFwcm8tcmVjaXBpZW50LXBpY2tlcikuIFVzZXMgdGhlIHNoYXJlZCBxZG5hLXNjcm9sbGJhclxuLy8gIG1peGluIChtb2R1bGVzL19taXhpbnMuc2NzcykgZm9yIHRoZSBmaXhlZC1oZWlnaHQgbGlzdCBhcmVhLlxuLy9cbi8vICBDVVNUT00gUFJPUEVSVFkgLS1ycC1saXN0LWhlaWdodCAoS2ltJ3MgZGVjaXNpb24sIDMwLjA3LjIwMjYpOiB0aGUgd2hvbGVcbi8vICBhcmVhIGJlbG93IHRoZSBzZWFyY2ggZmllbGQgKC5ycC1ib2R5IC0gaGludCAvIGVtcHR5IC8gYnVzeSAvIHJlc3VsdHMsXG4vLyAgYWxsIG9mIGl0KSBpcyBhIEZJWEVELWhlaWdodCBib3ggd2l0aCBpdHMgb3duIHNjcm9sbCwgc2V0IGJ5IHRoaXMgY3VzdG9tXG4vLyAgcHJvcGVydHkgKGRlZmF1bHQgMzIwcHggYmVsb3cpLiBCZWZvcmUgdGhpcywgdGhlIHBhbmVsIGdyZXcgYW5kIHNocmFua1xuLy8gIHdoaWxlIHR5cGluZyAtIGhpbnQsIHRoZW4gcmVzdWx0cywgdGhlbiBtYXliZSBlbXB0eSAtIHdoaWNoIG1hZGUgYVxuLy8gIHBob25lJ3MgYm90dG9tIHNoZWV0IGp1bXAgYXJvdW5kIGFzIHlvdSB0eXBlZC4gTm93IHRoZSBjb21wb25lbnQncyBvd25cbi8vICBvdXRlciBzaXplIG5ldmVyIGNoYW5nZXMgbm8gbWF0dGVyIHdoaWNoIG9mIHRob3NlIHN0YXRlcyAucnAtYm9keSBpc1xuLy8gIHNob3dpbmcuIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgaW5zaWRlIFRXTyBkaWZmZXJlbnQgd3JhcHBlcnMgKGEgYm90dG9tXG4vLyAgc2hlZXQgb24gcGhvbmUsIGEgY2VudGVyZWQgZGlhbG9nIG9uIHRhYmxldC9kZXNrdG9wKSwgc28gaXQgbWFrZXMgbm9cbi8vICBhc3N1bXB0aW9uIGFib3V0IGl0cyBvd24gb3V0ZXIgc2l6ZSBiZXlvbmQgdGhpcyBvbmUgZml4ZWQgaW5uZXIgaGVpZ2h0IC1cbi8vICBhIGhvc3Qgb24gYSBiaWdnZXIgc2NyZWVuIGNhbiBzZXQgYSByb29taWVyIHZhbHVlLCBlLmcuOlxuLy8gICAgLm15LWRpYWxvZyBxZG5hcHJvLXJlY2lwaWVudC1waWNrZXIgeyAtLXJwLWxpc3QtaGVpZ2h0OiA0MjBweDsgfVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkB1c2UgJy4uLy4uLy4uL21vZHVsZXMvbWl4aW5zJyBhcyAqO1xuXG4vLyBgaGlkZGVuYCBNT0VUIGhldCB3aW5uZW4gdmFuIG9uemUgZWlnZW4gZGlzcGxheS1yZWdlbHMsIGVuIGRhdCBkb2V0IGhldCBuaWV0IHZhbnplbGYuXG4vLyBIZXQgY29tcG9uZW50IHNjaGFrZWx0IHZpamYgYmxva2tlbiBhYW4gZW4gdWl0IG1ldCBoZXQgYGhpZGRlbmAtYXR0cmlidXV0IChkZVxuLy8gcmVzdWx0YXRlbi1zZWN0aWVrb3AsIGRlIGhpbnQsIGRlIGxlZ2UgdWl0c2xhZywgZGUgYmV6aWctc3RhbmQgZW4gZGUgcmVzdWx0YXRlbmxpanN0KS5cbi8vIGBoaWRkZW5gIGtyaWpndCB6aWpuIGBkaXNwbGF5OiBub25lYCBhbGxlZW4gdWl0IGRlIHN0eWxlc2hlZXQgdmFuIGRlIEJST1dTRVIsIGVuIGVsa2Vcbi8vIGVpZ2VuIGBkaXNwbGF5YC1yZWdlbCB2ZXJzbGFhdCBkaWUuIFR3ZWUgdmFuIGRpZSB2aWpmIGJsb2trZW4gemV0dGVuIGBkaXNwbGF5OiBmbGV4YCBlblxuLy8gc3RvbmRlbiBkYWFyZG9vciBhbHRpamQgaW4gYmVlbGQ6IGRlIGxlZ2UgcmVzdWx0YXRlbmxpanN0LCBlbiBoZXQgZHJhYWllbmRlIHNwaW5uZXJ0amVcbi8vIG9vayBhbHMgZXIgbmlldHMgYWFuIGhldCBsYWRlbiB3YXMuIERhdCBsYWF0c3RlIGlzIGluIGVlbiBicm93c2VyIGdlemllbiwgb3AgMzAuMDcuMjAyNixcbi8vIG1ldCBgYnVzeWAgTklFVCBnZXpldC5cbi8vXG4vLyBFw6luIHJlZ2VsIG9wIGRlIGhvc3QgaW4gcGxhYXRzIHZhbiBgJltoaWRkZW5dYCBiaWogZWxrIGJsb2s6IGRhbiBrYW4gZWVuIHZvbGdlbmQgYmxvayBtZXRcbi8vIGVlbiBlaWdlbiBkaXNwbGF5LXJlZ2VsIGRlemUgdmFsIG5pZXQgb3BuaWV1dyBpbnRyb2R1Y2VyZW4uIFNwZWNpZmljaXRlaXQgbmFnZXJla2VuZDpcbi8vICgwLDIsMCkgdGVnZW4gZGUgKDAsMSwwKSB2YW4gZWVuIGxvc3NlIGAucnAtKmAta2xhc3NlLCBkdXMgZGV6ZSB3aW50LCBlbiBlciBpcyBnZWVuXG4vLyBgIWltcG9ydGFudGAgdm9vciBub2RpZy5cbi5xZG5hcHJvLXJlY2lwaWVudC1waWNrZXIgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXJlY2lwaWVudC1waWNrZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IHZhcigtLXMtNCk7XG59XG5cbi8vIEZsYXQgLnJwLSogZWxlbWVudCBjbGFzc2VzIHRocm91Z2hvdXQgKG5vdCBCRU0gJl9fIG5lc3RpbmcgdW5kZXIgdGhlIGhvc3Rcbi8vIGNsYXNzKSAtIG1hdGNoZXMgcWRuYXByby1maWx0ZXItc2hlZXQncyBvd24gLmZzLSogY29udmVudGlvbiBmb3IgdGhlIHNhbWVcbi8vIGtpbmQgb2YgaW50ZXJuYWwgbGF5b3V0IHBpZWNlLlxuLnJwLXNlY3Rpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICBwYWRkaW5nOiAwIHZhcigtLXMtMSk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy0yKTtcbn1cblxuLy8gLS0tLS0tLS0tLSBzZWFyY2ggLS0tLS0tLS0tLVxuLy9cbi8vIEhvcml6b250YWwgaW5zZXQgb2YgdmFyKC0tcy0xKSwgbWF0Y2hpbmcgdGhlIHJvd3MgYmVsb3cgKC5ycC1yb3cgYWxyZWFkeVxuLy8gaW5zZXRzIGJ5IHZhcigtLXMtMSkgdmlhIGl0cyBvd24gcGFkZGluZykgLSBOT1QganVzdCBjb3NtZXRpYyBhbGlnbm1lbnQuXG4vLyBxZG5hcHJvLWlucHV0IGRyYXdzIGl0cyBmb2N1cyByaW5nIGFzIGEgYGJveC1zaGFkb3c6IDAgMCAwIDNweGAgb25cbi8vIC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4gKF9pbnB1dC5zY3NzKSwgd2hpY2ggc2l0cyBPVVRTSURFIHRoZSBpbnB1dCdzXG4vLyBvd24gYm9yZGVyLWJveCBhbmQgbmVlZHMgcm9vbSB0aGVyZS4gVGhpcyBjb21wb25lbnQgY2FuIGJlIGVtYmVkZGVkIGluIGFcbi8vIHFkbmFwcm8tYm90dG9tLXNoZWV0LCB3aG9zZSAuYnMtYm9keSBzZXRzIGBvdmVyZmxvdy15OiBhdXRvYCAtIHBlciB0aGUgQ1NTXG4vLyBzcGVjIHRoYXQgYWxzbyBmb3JjZXMgb3ZlcmZsb3cteCB0byBiZWhhdmUgYXMgYGF1dG9gIChhIGxvbmUgYXhpcyBjYW5ub3Rcbi8vIHN0YXkgYHZpc2libGVgIG9uY2UgdGhlIG90aGVyIG9uZSBpc24ndCksIHNvIHRoYXQgYW5jZXN0b3IgY2xpcHNcbi8vIGhvcml6b250YWxseSB0b28gZXZlbiB0aG91Z2ggaXQgb25seSBtZWFudCB0byBzY3JvbGwgdmVydGljYWxseS4gV2l0aG91dFxuLy8gdGhpcyBpbnNldCB0aGUgZm9jdXMgcmluZyBoYWQgbm93aGVyZSB0byBnbyBhbmQgZ290IGNsaXBwZWQgbGVmdCArIHJpZ2h0XG4vLyAoc2VlbiBieSBLaW0gb24gaGVyIGlQYWQsIDMwLjA3LjIwMjYpLiBGaXhlZCBoZXJlLCBpbiBPVVIgT1dOIGNvbXBvbmVudCxcbi8vIHJhdGhlciB0aGFuIHRvdWNoaW5nIHFkbmFwcm8tYm90dG9tLXNoZWV0IGl0c2VsZiAtIHRoYXQgY29tcG9uZW50IGlzXG4vLyBzaGFyZWQgYnkgbWFueSBvdGhlciBzY3JlZW5zIGFuZCBpcyBub3QgdGhpcyBjaGFuZ2UncyB0byBhbHRlci5cbi5ycC1zZWFyY2gge1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tcy0xKTtcblxuICAgIHFkbmFwcm8taW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0gYm9keSAoaGludCAvIGJ1c3kgLyByZXN1bHRzIC8gZW1wdHkpIC0tLS0tLS0tLS1cbi8vXG4vLyBGaXhlZCBoZWlnaHQgKyBpdHMgb3duIHNjcm9sbCAoc2VlIC0tcnAtbGlzdC1oZWlnaHQgaW4gdGhlIGZpbGUgaGVhZGVyXG4vLyBhYm92ZSkgLSBoaW50LCBlbXB0eSwgYnVzeSBhbmQgdGhlIHJlc3VsdHMgbGlzdCBhbGwgbGl2ZSBpbiBoZXJlLCBzbyB0aGVcbi8vIGNvbXBvbmVudCdzIG91dGVyIHNpemUgc3RheXMgY29uc3RhbnQgbm8gbWF0dGVyIHdoaWNoIG9mIHRob3NlIGlzXG4vLyBzaG93aW5nLlxuLnJwLWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBoZWlnaHQ6IHZhcigtLXJwLWxpc3QtaGVpZ2h0LCAzMjBweCk7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBAaW5jbHVkZSBxZG5hLXNjcm9sbGJhcjtcbn1cblxuLnJwLWhpbnQsXG4ucnAtZW1wdHkge1xuICAgIHBhZGRpbmc6IHZhcigtLXMtNCkgdmFyKC0tcy0xKTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5ycC1idXN5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogdmFyKC0tcy02KSAwO1xufVxuXG4ucnAtc3Bpbm5lciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIsICNlNmU5ZWYpO1xuICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICBhbmltYXRpb246IHJwLXNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgcnAtc3BpbiB7XG4gICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnJwLXNwaW5uZXIge1xuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDEuNnM7XG4gICAgfVxufVxuXG4ucnAtcmVzdWx0cy1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1zLTEpO1xufVxuXG4vLyAtLS0tLS0tLS0tIHJvdyAocmVzdWx0cyBvbmx5IC0gbm8gbW9yZSBzZXBhcmF0ZSBhc3NpZ25lZCByb3dzKSAtLS0tLS0tLS0tXG5cbi5ycC1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMyk7XG4gICAgcGFkZGluZzogdmFyKC0tcy0yKSB2YXIoLS1zLTEpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLWhvdmVyKTtcbiAgICB9XG5cbiAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucnAtcm93LW1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZmxleDogMTtcbn1cblxuLnJwLXJvdy1uYW1lIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5KTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5ycC1yb3ctcm9sZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4vLyBBY2Nlc3MtbGFiZWwgLSB0aGUgcmVhc29uIGFuIGFscmVhZHlfYXNzaWduZWQgcm93IGlzIGRpc2FibGVkLiBTaXRzIHRvIHRoZVxuLy8gcmlnaHQgb2YgdGhlIHJvdyAocnAtcm93LW1ldGEgYWJvdmUgdXNlcyBmbGV4OjEsIHNvIHRoaXMgdHJhaWxpbmcgZWxlbWVudFxuLy8gbmV2ZXIgaGFzIHRvIGZpZ2h0IGl0IGZvciBzcGFjZSk7IGNhbG0gKyBtdXRlZCwgc2FtZSB0b2tlbiBhcyB0aGUgcm9sZVxuLy8gdGV4dCwgbmFtZSBhbmQgcm9sZSBzdGF5IHB1dCBvbiB0aGUgbGVmdC5cbi5ycC1yb3ctYWNjZXNzIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4vLyAtLS0tLS0tLS0tIGZvb3RlciAtLS0tLS0tLS0tXG5cbi5ycC1mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IHZhcigtLXMtMik7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLXMtMik7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMiwgI2U2ZTllZik7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBTaGFyZWQgbWl4aW5zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgU2Nyb2xsYmFyc1xuLy8gIFVzZSB0aGVzZSBpbnN0ZWFkIG9mIGNvcHktcGFzdGluZyA6Oi13ZWJraXQtc2Nyb2xsYmFyIHJ1bGVzXG4vLyAgcGVyIHBhZ2UuIFR3byBmbGF2b3Vyczpcbi8vXG4vLyAgICBxZG5hLXNjcm9sbGJhciAgICAgICAgIG1pbmltYWwsIGhvdmVyLXJldmVhbCAobWFjT1Mgb3ZlcmxheVxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSk6IGludmlzaWJsZSBhdCByZXN0LCBhIHRoaW4gc29mdFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICB0aHVtYiBmYWRlcyBpbiBvbiBob3Zlci9zY3JvbGwuIE5vIHRyYWNrLlxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBVc2Ugb24gbG9uZyBwcmltYXJ5IGNvbnRlbnQgKGxpc3RzLFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWwgcGFuZXMpIHdoZXJlIHNjcm9sbCBhZmZvcmRhbmNlXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdHRlcnMuXG4vL1xuLy8gICAgcWRuYS1zY3JvbGxiYXItaGlkZGVuICBmdWxseSBoaWRkZW4gYmFyLCBjb250ZW50IHN0YXlzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGFibGUgKHdoZWVsL3RyYWNrcGFkKS4gVXNlIG9uXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0IGxpc3RzLCBob3Jpem9udGFsIHN0cmlwcyBhbmRcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5IG92ZXJmbG93IGFyZWFzLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBxZG5hLXNjcm9sbGJhciB7XG4gICAgLy8gV2Via2l0LW9ubHkgKENocm9tZS9TYWZhcmkvRWRnZSkuIFdlIGludGVudGlvbmFsbHkgZG8gTk9UIHNldCB0aGVcbiAgICAvLyBzdGFuZGFyZCBgc2Nyb2xsYmFyLXdpZHRoYC9gc2Nyb2xsYmFyLWNvbG9yYCBoZXJlOiBtb2Rlcm4gQ2hyb21lIGhvbm91cnNcbiAgICAvLyB0aG9zZSBrZXl3b3JkcyBhbmQgdGhlbiBJR05PUkVTIHRoZSA6Oi13ZWJraXQtc2Nyb2xsYmFyIHBzZXVkbywgZm9yY2luZ1xuICAgIC8vIGEgfjExcHggXCJ0aGluXCIgYmFyLiBXZWJraXQgcHNldWRvIGxldHMgdXMgcGluIGl0IHRvIGV4YWN0bHkgOHB4ICsgZG8gdGhlXG4gICAgLy8gaG92ZXItcmV2ZWFsLiBGaXJlZm94IGZhbGxzIGJhY2sgdG8gaXRzIGRlZmF1bHQgc2Nyb2xsYmFyLlxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDhweDsgaGVpZ2h0OiA4cHg7IH1cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgICAgICAgICAgICAgICAgICAgICAvLyBoaWRkZW4gYXQgcmVzdFxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTYwbXMgZWFzZTtcbiAgICB9XG4gICAgJjpob3Zlcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgJjpmb2N1cy13aXRoaW46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIyKTsgfVxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjM0KTsgfVxufVxuXG5AbWl4aW4gcWRuYS1zY3JvbGxiYXItaGlkZGVuIHtcbiAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmlyZWZveFxuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbGQgRWRnZS9JRVxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDA7IGhlaWdodDogMDsgZGlzcGxheTogbm9uZTsgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1yZXNvdXJjZS10aW1lbGluZSDigJQgUGxhbm5lciBib2FyZCBjb3JlIChGMSwgcmVhZC1vbmx5KVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgUUROQSB0b2tlbnMgdXNlZDpcbi8vICAgIC0tYy1ncmV5LTEwMCAgI2U3ZTllYyAgIHJhc3RlciBsaW5lcyAvIGNlbGwgKyBsYWJlbCBib3JkZXJzXG4vLyAgICAtLWMtZ3JleS0yMDAgICNkOGRhZGUgICBzY3JvbGxiYXIgdGh1bWJcbi8vICAgIC0tYy1ncmV5LTUwMCAgIzZiNzI4MCAgIG1ldGEgdGV4dCwgd2Vla2RheSBsYWJlbHMsIFwiK05cIiBvdmVyZmxvd1xuLy8gICAgLS1jLWdyZXktNTAgICAjZjBmMWYyICAgZGlzYWJsZWQgY2VsbCBmaWxsXG4vLyAgICAtLWMtYWN0aW9uLTUwMCAjNDY1MmYzICB0b2RheSBwaWxsIGZpbGwgKGhlYWRlciBkYXkgbnVtYmVyKSArIHRvZGF5XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWVrZGF5IHRpbnQgKEtpbSwgMjAuMDcuMjAyNiDigJQgcmVwbGFjZWQgdGhlXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGQgZnVsbC1jZWxsIC0tYy1wdXJwbGUtNTAgdG9kYXkgaGlnaGxpZ2h0KVxuLy8gICAgLS1jLXB1cnBsZS01MDAgIzQwNDk5YSAgIGZvY3VzIHJpbmdcbi8vICAgIC0tYy1iZy1jYXJkICAgI2ZmZiAgICAgIG9wYXF1ZSBiYWNrZ3JvdW5kcyBmb3IgdGhlIHN0aWNreSBsYXllcnNcbi8vICBSb3dzID0gcGVvcGxlL2xvY2F0aW9ucyAoU1RJQ0tZIExFRlQgbGFiZWwgY29sdW1uKSwgY29sdW1ucyA9IGRheXNcbi8vICAoU1RJQ0tZIFRPUCBoZWFkZXIpLiBCb3RoIGxpdmUgaW4gT05FIHNjcm9sbGluZyBDU1MgR1JJRCDigJQgdGhlIGNvbHVtblxuLy8gIHRyYWNrIGxpc3QgaXMgW2xhYmVsLWNvbCwgZGF5IHggTl0gYW5kIGV2ZXJ5IHN1YnNlcXVlbnQgRE9NIGNoaWxkXG4vLyAgYXV0by1mbG93cyBpbnRvIHRoZSBuZXh0IGNlbGwsIHNvIGEgZGF0YSByb3cgaXMganVzdCBcImxhYmVsLCB0aGVuIE5cbi8vICBkYXkgY2VsbHNcIiB3aXRoIE5PIHBlci1yb3cgd3JhcHBlciBkaXYuIFZpcnR1YWxpemF0aW9uIChKUyBzaWRlKSBvbmx5XG4vLyAgZXZlciBpbnNlcnRzL3JlbW92ZXMgdGhhdCBmbGF0IHJ1biBvZiBjaGlsZHJlbiBiZXR3ZWVuIHR3byBzcGFjZXIgcm93c1xuLy8gIHRoYXQgc3BhbiBldmVyeSBjb2x1bW4gKGdyaWQtY29sdW1uOiAxIC8gLTEpIGFuZCBjYXJyeSBhbiBpbmxpbmUgaGVpZ2h0XG4vLyAgc3RhbmRpbmcgaW4gZm9yIHRoZSByb3dzIHRoYXQgYXJlIG5vdCBjdXJyZW50bHkgcmVuZGVyZWQuXG4vLyAgRkxBVCBDU1MgKG5vIFNDU1MgbmVzdGluZyksIG1hdGNoaW5nIHRoZSB0aW1lLWdyaWQgLyBtb250aC1ncmlkIHNpYmxpbmdzLlxuXG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZSB7XG4gIC8vIFB1YmxpYyBDU1MgaG9va3MgKGRlbnNpdHkvbGF5b3V0KS4gLS1yZXNvdXJjZS10aW1lbGluZS1yb3cgaXMgbm93XG4gIC8vIE9QVElPTkFMIChLaW0sIDE2LjA3LjIwMjYg4oCUIHBlci1yb3cgYXV0byBoZWlnaHQgbW9kZWwsIHNlZSB0aGVcbiAgLy8gY29tcG9uZW50IEpTIGhlYWRlciBjb21tZW50KTogdW5zZXQgYnkgZGVmYXVsdCwgc28gZWFjaCByb3cgYXV0by1zaXplc1xuICAvLyBmcm9tIGl0cyBvd24gY29udGVudCAoY29tcGFjdCB3aGVuIGVtcHR5LCBncm93biB0byBmaXQgaXRzIGJ1c2llc3RcbiAgLy8gY2VsbCdzIGNoaXBzKS4gU2V0dGluZyAtLXJlc291cmNlLXRpbWVsaW5lLXJvdyByZWluc3RhdGVzIHRoZSBPTERcbiAgLy8gZml4ZWQtaGVpZ2h0IGJlaGF2aW91ciBhcyBhIHBlci1yb3cgTUlOSU1VTSAoYmFja3dhcmQgY29tcGF0IG9ubHkpLlxuICAtLXJlc291cmNlLXRpbWVsaW5lLWxhYmVsLWNvbDogMjIwcHg7XG4gIC0tcmVzb3VyY2UtdGltZWxpbmUtcm93LWNvbXBhY3Q6IDQ0cHg7XG4gIC8vIEhlYWRlciByb3cgaGVpZ2h0IOKAlCBpbnRlcm5hbCwgYnV0IHN0eWxlYWJsZSBsaWtlIHRoZSB0d28gYWJvdmVcbiAgLS1yZXNvdXJjZS10aW1lbGluZS1oZWFkZXI6IDQ0cHg7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbn1cblxuLy8gVGhlIG9uZSBzY3JvbGwgc3VyZmFjZTogYSBDU1MgZ3JpZCwgW2xhYmVsLWNvbCwgZGF5IHggTl0gdHJhY2tzLlxuLy8gTk9URTogcmVwZWF0KCkgY2Fubm90IHRha2UgYSB2YXIoKSBhcyBpdHMgY291bnQgKGludmFsaWQgQ1NTIOKAlCB0aGUgd2hvbGVcbi8vIGRlY2xhcmF0aW9uIHdvdWxkIGJlIGRyb3BwZWQgYW5kIHRoZSBncmlkIGNvbGxhcHNlcyB0byBvbmUgY29sdW1uKSwgc29cbi8vIHRoaXMgaXMgb25seSB0aGUgNy1kYXkgREVGQVVMVDsgcmVuZGVyKCkgc2V0cyB0aGUgcmVhbCB0cmFjayBsaXN0IGlubGluZVxuLy8gcGVyIHRoZSBhY3R1YWwgYGRheXNgIGF0dHJpYnV0ZS5cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19zY3JvbGwge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLXJlc291cmNlLXRpbWVsaW5lLWxhYmVsLWNvbCkgcmVwZWF0KDcsIDFmcik7XG4gIGFsaWduLWNvbnRlbnQ6IHN0YXJ0O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogYXV0bztcbiAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICAvLyBPcGFxdWUgc3VyZmFjZTogYWxzbyBjb3ZlcnMgdGhlIHZpcnR1YWxpemF0aW9uIHNwYWNlcnMsIHNvIGZhc3RcbiAgLy8gc2Nyb2xsaW5nIG5ldmVyIGZsYXNoZXMgdGhlICh0aW50ZWQpIHBhZ2UgYmFja2dyb3VuZCB0aHJvdWdoLlxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xufVxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX3Njcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbn1cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTIwMCwgI2Q4ZGFkZSk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi8vIC0tLSBTdGlja3kgY29ybmVyICsgaGVhZGVyIGRheSBjZWxscyAocGlubmVkIHRvIHRoZSB0b3ApIC0tLVxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX2Nvcm5lciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogNDtcbiAgaGVpZ2h0OiB2YXIoLS1yZXNvdXJjZS10aW1lbGluZS1oZWFkZXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vLyBzZWFyY2hhYmxlIGNvcm5lcjogaG91c2VzIHRoZSBsaWJyYXJ5IDxxZG5hcHJvLWlucHV0IHR5cGU9XCJzZWFyY2hcIj4gKHNlZVxuLy8gcWRuYS1yZXNvdXJjZS10aW1lbGluZS5qcyBfYnVpbGRDb3JuZXIpIOKAlCBzYW1lIGZvb3RwcmludCBhcyB0aGUgcGxhaW5cbi8vIGNvcm5lciBjZWxsIGFib3ZlLCBvbmx5IHByZXNlbnQgd2hlbiB0aGUgYHNlYXJjaGFibGVgIGF0dHJpYnV0ZSBpcyBzZXQuXG4vLyBUaGUgaW5wdXQgYnJpbmdzIGl0cyBvd24gaWNvbi9jbGVhci14L2ZvY3VzIHN0eWxpbmcsIHNvIHRoaXMgaXMgbGF5b3V0XG4vLyBvbmx5OiBmaWxsIHRoZSBjb3JuZXIgYW5kIGxldCBxZG5hcHJvLWlucHV0J3Mgb3duIHNpemU9XCJzbWFsbFwiICg0MHB4KVxuLy8gY2VudHJlIGluc2lkZSB0aGUgNDRweCAtLXJlc291cmNlLXRpbWVsaW5lLWhlYWRlci5cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19jb3JuZXItLXNlYXJjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgMTBweDtcbn1cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19jb3JuZXItLXNlYXJjaCAucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fc2VhcmNoaW5wdXQge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG4vLyBSZWFsIDxidXR0b24gdHlwZT1cImJ1dHRvblwiPiBub3cgKEtpbSwgMTYuMDcuMjAyNiDigJQgXCJhbHMgaWsgb3AgZGUgZGF0dW1cbi8vIGtsaWsgd2lsIGlrIGRlIGRhZ3ZpZXcgemllblwiKSwgc28gdGhpcyByZXNldHMgdGhlIGJyb3dzZXIncyBkZWZhdWx0IGJ1dHRvblxuLy8gY2hyb21lIChib3JkZXIvYmFja2dyb3VuZC9mb250L2FwcGVhcmFuY2UpIHRvIGtlZXAgdGhlIHN0aWNreSBoZWFkZXIgY2VsbFxuLy8gbG9va2luZyBpZGVudGljYWwgdG8gdGhlIG9sZCBkaXYsIHRoZW4gYWRkcyBwb2ludGVyL2hvdmVyL2ZvY3VzIGFmZm9yZGFuY2VzLlxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX2RheWNlbGwge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBmb250OiBpbmhlcml0O1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAzO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAxcHg7XG4gIGhlaWdodDogdmFyKC0tcmVzb3VyY2UtdGltZWxpbmUtaGVhZGVyKTtcbiAgbWluLXdpZHRoOiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fZGF5Y2VsbDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YwZjFmMik7XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fZGF5Y2VsbDpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG59XG4vLyBUT0RBWSAoS2ltLCAyMC4wNy4yMDI2KTogbm8gbW9yZSBmdWxsLWNlbGwgcHVycGxlIGZpbGwg4oCUIGl0IHJlYWQgYXNcbi8vIGNsdW5reSAoXCJsb21wXCIpLiBJbnN0ZWFkIGEgY29tcGFjdCBHb29nbGUtc3R5bGUgcGlsbCBzaXRzIGFyb3VuZCBKVVNUIHRoZVxuLy8gZGF5IG51bWJlciAoc2VlIC5pcy10b2RheSAuZGF5bnVtIGJlbG93KSwgc28gdGhlIHRvZGF5IGNlbGwga2VlcHMgdGhlXG4vLyBzYW1lIG5ldXRyYWwgYmFja2dyb3VuZCArIGhvdmVyIGFzIGV2ZXJ5IG90aGVyIGhlYWRlciBjZWxsLlxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX3dlZWtkYXkge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxM3B4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAzZW07XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fZGF5bnVtIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS04MDAsICMxYzFiMjkpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLy8gV2Vla2RheSBsYWJlbCB0aW50cyB0byB0aGUgYWN0aW9uIGNvbG9yIG9uIHRvZGF5IChtYXRjaGVzIHRoZSBwaWxsKS5cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19kYXljZWxsLmlzLXRvZGF5IC5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX193ZWVrZGF5IHtcbiAgY29sb3I6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG59XG4vLyBUaGUgcGlsbDogZmlsbGVkIC0tYy1hY3Rpb24tNTAwIGNoaXAgaHVnZ2luZyBqdXN0IHRoZSBkYXkgbnVtYmVyLCBrZXB0XG4vLyBkZWxpYmVyYXRlbHkgc21hbGwgKHRpZ2h0IHBhZGRpbmcsIG5vIGZpeGVkIHNpemUpIHNvIGl0IHN0YXlzIHN1YnRsZXJcbi8vIHRoYW4gR29vZ2xlJ3Mgb3ZlcnNpemVkIGNpcmNsZS5cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19kYXljZWxsLmlzLXRvZGF5IC5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19kYXludW0ge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gIHBhZGRpbmc6IDFweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xufVxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX3RvZGF5dGFnIHtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxMXB4O1xuICBjb2xvcjogdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbn1cbi8vIFRoZSBwaWxsIG5vdyBjYXJyaWVzIHRoZSBcInRvZGF5XCIgc2lnbmFsLCBzbyB0aGUgcmVkdW5kYW50IFZBTkRBQUcgdGFnIGlzXG4vLyBoaWRkZW4gKGFsc28ga2VlcHMgd2Vla2RheSArIHBpbGwgd2l0aGluIHRoZSA0NHB4IGhlYWRlciBoZWlnaHQpLiBUaGUgSlNcbi8vIHN0aWxsIGVtaXRzIGl0OyBmbGlwIHRoaXMgdG8gYGlubGluZWAgdG8gYnJpbmcgaXQgYmFjay5cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19kYXljZWxsLmlzLXRvZGF5IC5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX190b2RheXRhZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIC0tLSBWaXJ0dWFsaXphdGlvbiBzcGFjZXJzOiBvbmUgZ3JpZCByb3cgZWFjaCwgc3Bhbm5pbmcgZXZlcnkgY29sdW1uIC0tLVxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX3RvcHNwYWNlLFxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX2JvdHNwYWNlIHtcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vLyAtLS0gU3RpY2t5IGxhYmVsIGNvbHVtbiAocGlubmVkIHRvIHRoZSBsZWZ0KSAtLS1cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19sYWJlbCB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgLy8gRmFsbGJhY2sgb25seSDigJQgdGhlIGNvbXBvbmVudCBzZXRzIHRoZSBSRUFMIHBlci1yb3cgaGVpZ2h0IGlubGluZSBpblxuICAvLyBfcmVuZGVyV2luZG93KCkgKGVhY2ggcm93IGF1dG8tc2l6ZXMgZnJvbSBpdHMgb3duIGNvbnRlbnQsIHNlZSB0aGUgSlNcbiAgLy8gaGVhZGVyIGNvbW1lbnQncyBQRVItUk9XIEFVVE8gSEVJR0hUIHNlY3Rpb24pLiBUaGlzIGp1c3QgYXZvaWRzIGFcbiAgLy8gaGVpZ2h0OmF1dG8gZmxhc2ggYmVmb3JlIEpTIGZpcnN0IHJ1bnMuXG4gIGhlaWdodDogdmFyKC0tcmVzb3VyY2UtdGltZWxpbmUtcm93LWNvbXBhY3QsIDQ0cHgpO1xuICBtaW4td2lkdGg6IDA7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19sYWJlbHRleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDFweDtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX2xhYmVsbmFtZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktODAwLCAjMWMxYjI5KTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fbGFiZWxtZXRhIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTRweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gLS0tIERheSBjZWxscyAoZ3JpZCBib2R5KSAtLS1cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19jZWxsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbiAgbWluLXdpZHRoOiAwO1xuICAvLyBGYWxsYmFjayBvbmx5IOKAlCB0aGUgY29tcG9uZW50IHNldHMgdGhlIFJFQUwgcGVyLXJvdyBoZWlnaHQgaW5saW5lIGluXG4gIC8vIF9yZW5kZXJXaW5kb3coKSAoZWFjaCByb3cgYXV0by1zaXplcyBmcm9tIGl0cyBvd24gY29udGVudDogY29tcGFjdCB3aGVuXG4gIC8vIHRoZSByb3cgaGFzIG5vIGl0ZW1zIGluIHRoZSB2aXNpYmxlIHJhbmdlLCBlbHNlIGdyb3duIHRvIGZpdCBpdHNcbiAgLy8gYnVzaWVzdCBjZWxsJ3MgY2hpcHMg4oCUIHNlZSB0aGUgSlMgaGVhZGVyIGNvbW1lbnQncyBQRVItUk9XIEFVVE8gSEVJR0hUXG4gIC8vIHNlY3Rpb24pLiBUaGlzIGp1c3QgYXZvaWRzIGEgaGVpZ2h0OmF1dG8gZmxhc2ggYmVmb3JlIEpTIGZpcnN0IHJ1bnMuXG4gIGhlaWdodDogdmFyKC0tcmVzb3VyY2UtdGltZWxpbmUtcm93LWNvbXBhY3QsIDQ0cHgpO1xuICBwYWRkaW5nOiAzcHggNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvLyBPcGFxdWUgY2VsbHM6IHRoZSBib2FyZCBpcyBhIGNhbGVuZGFyIFNVUkZBQ0UuIFRyYW5zcGFyZW50IGNlbGxzIG1hZGVcbiAgLy8gdGhlIHJhc3RlciBpbnZpc2libGUgb24gdGludGVkIHBhZ2UgYmFja2dyb3VuZHMgKEtpbSwgMTYuMDcuMjAyNiDigJRcbiAgLy8gXCJnZWVuIGNhbGVuZGVyIGNlbGxlbiB0ZSB6aWVuXCIgb24gdGhlIGxhdmVuZGVyIGJhY2tvZmZpY2UgYmcpLlxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2VsbC5pcy10b2RheSB7XG4gIC8vIEhhcmQsIHZlcnkgbGlnaHQgdGludCDigJQgTk9UIHRoZSAtLWMtcHVycGxlLXNvZnQtMTIgdG9rZW4sIHdoaWNoXG4gIC8vIGFwcGFyZW50bHkgcmVzb2x2ZXMgZGFya2VyIHRoYW4gaXRzIGRvY3VtZW50ZWQgZmFsbGJhY2sgaW4gcHJhY3RpY2VcbiAgLy8gKEtpbSwgMTYuMDcuMjAyNjogXCJ2ZWVsIHRlIGRvbmtlcjsgZ3JpanMtNTAgb2YgcGFhcnMtNTAgbGljaHQgaXNcbiAgLy8gdm9sZG9lbmRlXCIg4oCUIHRvZGF5LWtvbG9tIG1vZXQgc3VidGllbCB6aWpuLCB1bmxpa2UgdGhlIGhlYWRlciBkYXljZWxsXG4gIC8vIGFib3ZlIHdoaWNoIE1BWSBwb3Agd2l0aCBwdXJwbGUtNTApLlxuICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjA0KTtcbn1cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19jZWxsLmlzLWVtcHR5IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLy8gRGlhZ29uYWwgaGF0Y2gg4oCUIFNIQVJFRCBiZXR3ZWVuIC5pcy1kaXNhYmxlZCBhbmQgLmlzLXVuYXZhaWxhYmxlIChRRE5BXG4vLyBQbGFubmVyIGF2YWlsYWJpbGl0eSByb3VuZCAyLCAxNy4wNy4yMDI2OiBub24tYmxvY2tpbmcgcGxhbm5pbmdcbi8vIHBoaWxvc29waHkpLiBCb3RoIHJlYWQgYXMgXCJibG9ja2VkIGNhbGVuZGFyIHRpbWVcIiBhdCBhIGdsYW5jZSB2aWEgdGhlIHNhbWVcbi8vIHBhdHRlcm4gKGEgZmxhdCB0aW50IHdvdWxkIGJlIGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gYm90aCB0aGUgcGFydGlhbC1kYXlcbi8vIGNvbG9yIHRpbnQgYW5kIHRoZSB0b2RheS1jb2x1bW4gdGludCksIG9ubHkgdGhlIGN1cnNvciArIGludGVyYWN0aXZpdHlcbi8vIGRpZmZlciDigJQgdGhlIGdyYWRpZW50IGxpdGVyYWwgbGl2ZXMgaGVyZSBPTkNFLCBub3QgZHVwbGljYXRlZCBwZXIgY2xhc3M6XG4vLyAgIC5pcy1kaXNhYmxlZCAgICDigJQgSEFSRCBibG9jazogbm9uLWludGVyYWN0aXZlIChubyBwcmVzcyBldmVudHM7IGRyYWctXG4vLyAgICAgICAgICAgICAgICAgICAgIG92ZXIvZHJvcCByZWplY3RlZCBpbiB0aGUgSlMg4oCUIHNlZSBfb25DZWxsRHJhZ092ZXIvXG4vLyAgICAgICAgICAgICAgICAgICAgIF9vbkNlbGxEcm9wJ3MgaXMtZGlzYWJsZWQgY2hlY2tzKS5cbi8vICAgLmlzLXVuYXZhaWxhYmxlIOKAlCBTT0ZUIGJsb2NrOiBzdGF5cyBmdWxseSBpbnRlcmFjdGl2ZSAocHJlc3MgZXZlbnRzXG4vLyAgICAgICAgICAgICAgICAgICAgIHN0aWxsIGZpcmUsIGRyYWctb3Zlci9kcm9wIHN0aWxsIGFsbG93ZWQg4oCUIHRoZVxuLy8gICAgICAgICAgICAgICAgICAgICBjb25zdW1lciBpcyBleHBlY3RlZCB0byBjb25maXJtIGJlZm9yZSBwbGFubmluZ1xuLy8gICAgICAgICAgICAgICAgICAgICB0aGVyZSkuIE5ldmVyIGFkZGVkIHRvIHRoZSBKUydzIGlzLWRpc2FibGVkIHJlamVjdGlvblxuLy8gICAgICAgICAgICAgICAgICAgICBjaGVja3MuXG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2VsbC5pcy1kaXNhYmxlZCxcbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19jZWxsLmlzLXVuYXZhaWxhYmxlIHtcbiAgYmFja2dyb3VuZDogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAxMzVkZWcsXG4gICAgdmFyKC0tYy1ncmV5LTUwLCAjZjBmMWYyKSAwIDZweCxcbiAgICByZ2JhKDEwNywgMTE0LCAxMjgsIDAuMTQpIDZweCAxMnB4XG4gICk7XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2VsbC5pcy1kaXNhYmxlZCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2VsbC5pcy11bmF2YWlsYWJsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8gLS0tIERyb3AgVEFSR0VUIChRRE5BIFBsYW5uZXIgZmFzZSBBLCBgZHJvcHBhYmxlYCBhdHRyaWJ1dGUpIC0tLVxuLy8gQWRkZWQgYnkgcWRuYS1yZXNvdXJjZS10aW1lbGluZS5qcyBfb25DZWxsRHJhZ092ZXIgd2hpbGUgYSB2YWxpZFxuLy8gYXBwbGljYXRpb24veC1xZG5hLXBpY2tlciAobmV3IGl0ZW0gZnJvbSBhIHBpY2tlciByb3cpIG9yXG4vLyBhcHBsaWNhdGlvbi94LXFkbmEtaXRlbSAoZXhpc3RpbmcgY2hpcCBiZWluZyBtb3ZlZCkgZHJhZyBob3ZlcnMgYVxuLy8gbm9uLWRpc2FibGVkIGNlbGwuIERpc2FibGVkIGNlbGxzIG5ldmVyIGdldCB0aGlzIGNsYXNzIChkcmFnb3ZlciBuZXZlclxuLy8gcHJldmVudERlZmF1bHQoKXMgdGhlcmUg4oCUIHNlZSB0aGUgSlMpIHNvIHRoZXkga2VlcCB0aGUgbmF0aXZlIG5vLWRyb3Bcbi8vIGN1cnNvciBpbnN0ZWFkLlxuLy9cbi8vIE1hcmNoaW5nLWFudHMgaWRpb20gYm9ycm93ZWQgMToxIGZyb20gdGhlIGhvdXNlIGRyb3B6b25lIGNvbXBvbmVudHMg4oCUXG4vLyBxZG5hcHJvLWRyb3AtZ3JpZCAoX2Ryb3AtZ3JpZC5zY3NzLCAuZHJvcC1ncmlkLWNlbGwtaG92ZXIpIGFuZFxuLy8gcWRuYXByby1maWxlLXVwbG9hZCAoX2ZpbGUtdXBsb2FkLnNjc3MsIC5xZG5hcHJvLWZpbGUtdXBsb2FkX196b25lLmlzLWRyYWdvdmVyKTpcbi8vIHB1cnBsZSBzdHJva2UsIDZweCBkYXNoIC8gNnB4IGdhcCwgMS42cyBsaW5lYXIgaW5maW5pdGUgY3Jhd2wsIHNvZnQgcHVycGxlXG4vLyB0aW50LiBUaG9zZSBjb21wb25lbnRzIHBhaW50IHRoZSBhbnRzIHdpdGggYW4gYWJzb2x1dGVseSBwb3NpdGlvbmVkIFNWR1xuLy8gPHJlY3Qgc3Ryb2tlLWRhc2hhcnJheT1cIjYgNlwiPiBjaGlsZCAoc2VlIHFkbmEtZmlsZS11cGxvYWQuanMgTUFSQ0hfU1ZHLFxuLy8geD1cIjFcIiB5PVwiMVwiLCBzdHJva2Utd2lkdGg9XCIyXCIpOyB0aGlzIGNlbGwgaXMgYSBwbGFpbiBmbGF0LUNTUyBncmlkIGNlbGxcbi8vIHdpdGggbm8gcm9vbSB0byBpbmplY3QgYSBjaGlsZCBlbGVtZW50IHdpdGhvdXQgdG91Y2hpbmcgdGhlIGNvbXBvbmVudCBKU1xuLy8gKG91dCBvZiBzY29wZSBoZXJlKSwgc28gdGhlIGV4YWN0IHNhbWUgdmlzdWFsIGlzIHJlcHJvZHVjZWQgQ1NTLW9ubHk6IDRcbi8vIGFuaW1hdGVkIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQgYmFja2dyb3VuZCBsYXllcnMgKG9uZSBwZXIgZWRnZSkgd2Fsa2VkXG4vLyBjbG9ja3dpc2UgdmlhIGBiYWNrZ3JvdW5kLXBvc2l0aW9uYCwgaW5zZXQgMXB4IHRvIG1hdGNoIHRoZSBTVkcgcmVjdCdzXG4vLyB4L3k9XCIxXCIgKyBzdHJva2Utd2lkdGg9XCIyXCIgc28gdGhlIGFudHMgc2l0IGZsdXNoIHdpdGggdGhlIGNlbGwncyBvd25cbi8vIGJvcmRlci1ib3R0b20vYm9yZGVyLXJpZ2h0IChubyBsYXlvdXQgc2hpZnQg4oCUIHRoaXMgaXMgYSA6OmJlZm9yZSBvdmVybGF5LFxuLy8gbm90IGEgYm9yZGVyL291dGxpbmUpLlxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX2NlbGwuaXMtZHJvcC10YXJnZXQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS1zb2Z0LTEyLCByZ2JhKDY0LCA3MywgMTU0LCAwLjEyKSk7XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2VsbC5pcy1kcm9wLXRhcmdldDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMXB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpIDAgNnB4LCB0cmFuc3BhcmVudCAwIDEycHgpLFxuICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSkgMCA2cHgsIHRyYW5zcGFyZW50IDAgMTJweCksXG4gICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSkgMCA2cHgsIHRyYW5zcGFyZW50IDAgMTJweCksXG4gICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSkgMCA2cHgsIHRyYW5zcGFyZW50IDAgMTJweCk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteCwgcmVwZWF0LXgsIHJlcGVhdC15LCByZXBlYXQteTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMnB4IDJweCwgMTJweCAycHgsIDJweCAxMnB4LCAycHggMTJweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwLCAwIDEwMCUsIDAgMCwgMTAwJSAwO1xuICBhbmltYXRpb246IHFkbmEtcmVzb3VyY2UtdGltZWxpbmUtbWFyY2ggMS42cyBsaW5lYXIgaW5maW5pdGU7XG59XG5Aa2V5ZnJhbWVzIHFkbmEtcmVzb3VyY2UtdGltZWxpbmUtbWFyY2gge1xuICB0byB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTJweCAwLCAtMTJweCAxMDAlLCAwIC0xMnB4LCAxMDAlIDEycHg7XG4gIH1cbn1cbi8vIFJlZHVjZWQgbW90aW9uOiBrZWVwIHRoZSBzdGF0aWMgZGFzaGVkIHJpbmcgKGJhY2tncm91bmQtcG9zaXRpb24gc2ltcGx5XG4vLyBuZXZlciBhZHZhbmNlcyksIGRyb3AgdGhlIGNyYXdsIOKAlCBzYW1lIGZhbGxiYWNrIGFzIGRyb3AtZ3JpZC9maWxlLXVwbG9hZC5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19jZWxsLmlzLWRyb3AtdGFyZ2V0OjpiZWZvcmUge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxufVxuXG4vLyBDaGlwcyDigJQgY29tcGFjdCBxZG5hcHJvLWV2ZW50LWNhcmQgKHNpemU9XCJzbWFsbFwiLCBzZWUgdGhlIEpTIF9idWlsZENoaXAg4oCUXG4vLyB0aGUgY2FyZCdzIG93biB2YXJpYW50IG5vdyBvd25zIHRoZSB0eXBvZ3JhcGh5LCB0aGlzIGlzIExBWU9VVCBvbmx5KS5cbi8vIEZJTEwgbGVmdG92ZXIgY2VsbCBzcGFjZSAoS2ltLCAxNi4wNy4yMDI2IOKAlCBcImVlbiBob2dlIGthYXJ0IHRvb250IG5vZ1xuLy8gc3RlZWRzIDEgcmVnZWwsIHpvbmRlXCIpOiBmbGV4LWdyb3cgd2l0aGluIHRoZSBjZWxsJ3MgY29sdW1uIGluc3RlYWQgb2YgYVxuLy8gZml4ZWQgMjJweCwgc28gYSBjZWxsIHRoYXQgZ290IHRoZSByb3cncyBmdWxsICh0YWxsZXIpIGhlaWdodCBiZWNhdXNlIGFcbi8vIFNJQkxJTkcgY2VsbCBpbiB0aGUgc2FtZSByb3cgaXMgYnVzaWVyIOKAlCBidXQgaXRzZWxmIGhvbGRzIGZld2VyL3Nob3J0ZXJcbi8vIGl0ZW1zIOKAlCBsZXRzIGl0cyBjaGlwKHMpIGdyb3cgaW50byB0aGF0IGxlZnRvdmVyIHNwYWNlLCB3aGVyZSB0aGUgY2FyZCdzXG4vLyBvd24gaGVpZ2h0LWF3YXJlIHRpdGxlIGNsYW1wIChxZG5hLWV2ZW50LWNhcmQuanMgX21lYXN1cmVUaXRsZUNsYW1wKSB0aGVuXG4vLyBzaG93cyBtb3JlIHRoYW4gb25lIGxpbmUuIG1pbi1oZWlnaHQgMjJweCBpcyB0aGUgZmxvb3IgKGEgZnVsbHktcGFja2VkXG4vLyBjZWxsJ3MgY2hpcHMgc3RpbGwgbGFuZCBhdCB+MjJweCBlYWNoLCBzYW1lIGFzIGJlZm9yZSDigJQgdGhlIHJvdyBoZWlnaHRcbi8vIE1BVEggaW4gX2NvbXB1dGVIZWlnaHRzL0NISVBfSCBpcyB1bmNoYW5nZWQsIHRoaXMgb25seSBjaGFuZ2VzIGhvdyB0aGVcbi8vIEFMUkVBRFktY29tcHV0ZWQgY2VsbCBzcGFjZSBpcyBzaGFyZWQgYW1vbmcgaXRzIHJlbmRlcmVkIGNoaXBzKS5cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19jaGlwIHtcbiAgZmxleDogMSAxIDIycHg7XG4gIG1pbi1oZWlnaHQ6IDIycHg7XG4gIHBhZGRpbmc6IDJweCA2cHg7XG59XG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2hpcCAucWRuYXByby1ldmVudC1jYXJkX19tZXRhIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8vIGNoaXBPcHRpb25zLmF2YXRhcjogZXZlbnQtY2FyZCdzIG93biBzbWFsbGVzdCBhdmF0YXIgdmFyaWFudCAoc2l6ZT0yMCkgaXNcbi8vIHN0aWxsIHRvbyB0YWxsIGZvciB0aGlzIDIycHggY2hpcCdzIH4xOHB4IGNvbnRlbnQgYm94LCBzbyBpdCdzIGRvd25zaXplZFxuLy8gZnVydGhlciBoZXJlIHZpYSB0aGUgYXZhdGFyJ3Mgb3duIENTUyBjdXN0b20gcHJvcGVydGllcyAoaXRzIGRvY3VtZW50ZWRcbi8vIHRoZW1pbmcgaG9vaykg4oCUIG5vdCBhIGZvcmssIGp1c3QgYSBjb250ZXh0LWxvY2FsIHNpemUgb3ZlcnJpZGUuXG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2hpcCAucWRuYXByby1ldmVudC1jYXJkX19hdmF0YXIge1xuICAtLWF2LXNpemU6IDE2cHg7XG4gIC0tYXYtcGFkZGluZzogM3B4O1xufVxuXG4vLyBDb25mbGljdCBkb3QgKFFETkEgUGxhbm5lciBhdmFpbGFiaWxpdHkgcm91bmQgMiwgMTcuMDcuMjAyNikg4oCUIFJFTU9WRURcbi8vIDE3LjA3LjIwMjY6IHVuaWZpZWQgd2l0aCBxZG5hcHJvLWV2ZW50LWNhcmQncyBvd24gbmF0aXZlIGBjb25mbGljdGBcbi8vIGF0dHJpYnV0ZSAocWRuYS1yZXNvdXJjZS10aW1lbGluZS5qcyBfYnVpbGRDaGlwIG5vdyBqdXN0IHNldHMgdGhlXG4vLyBhdHRyaWJ1dGUgb24gdGhlIGNoaXAgZWxlbWVudDsgdGhlIGNhcmQncyBvd24gcmVuZGVyKCkvU0NTUyBkcmF3cyB0aGVcbi8vIGRvdCDigJQgc2VlIF9ldmVudC1jYXJkLnNjc3MncyAucWRuYXByby1ldmVudC1jYXJkX19jb25mbGljdCkuIFRoaXMgYm9hcmRcbi8vIG5vIGxvbmdlciBwYWludHMgaXRzIG93biBvdmVybGF5LlxuXG4vLyBDaGlwIERSQUcgKFFETkEgUGxhbm5lciBmYXNlIEEsIGBkcm9wcGFibGVgIGF0dHJpYnV0ZSkg4oCUIGV4aXN0aW5nIGNoaXBzXG4vLyBiZWNvbWUgZHJhZyBzb3VyY2VzIGF0IGJ1aWxkIHRpbWUgd2hlbiBkcm9wcGFibGUgaXMgc2V0IChzZWUgX2J1aWxkQ2hpcCkuXG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2hpcFtkcmFnZ2FibGU9XCJ0cnVlXCJdIHtcbiAgY3Vyc29yOiBncmFiO1xufVxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX2NoaXAuaXMtZHJhZ2dpbmcge1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG5cbi8vIERSQUZUIGl0ZW1zIChpdGVtLmRyYWZ0ID09PSB0cnVlLCBRRE5BIFBsYW5uZXIgZmFzZSBBKSDigJQgYVxuLy8gbm90LXlldC1jb25maXJtZWQgcGxhbm5pbmcgaXRlbS4gRGFzaGVkIGJvcmRlciBpbiB0aGUgY2hpcCdzIE9XTiBzdGF0dXNcbi8vIGNvbG9yOiBxZG5hcHJvLWV2ZW50LWNhcmQgc2V0cyBib3RoIC0tZXZlbnQtY2FyZC10ZXh0IGFuZCBpdHMgb3duXG4vLyBgY29sb3I6IHZhcigtLWV2ZW50LWNhcmQtdGV4dClgIG9uIGl0c2VsZiBwZXIgc3RhdHVzIChzZWVcbi8vIF9ldmVudC1jYXJkLnNjc3MpLCBzbyBgY3VycmVudENvbG9yYCBhbmQgdGhlIHZhciByZXNvbHZlIGlkZW50aWNhbGx5IGhlcmVcbi8vIOKAlCB0aGUgZmFsbGJhY2sganVzdCBtYWtlcyB0aGF0IGV4cGxpY2l0IHJhdGhlciB0aGFuIHJlbHlpbmcgb24gaW5oZXJpdGFuY2Vcbi8vIG9yZGVyLiBCYWNrZ3JvdW5kIG9wYWNpdHkgaXMgcmVkdWNlZCB2aWEgY29sb3ItbWl4IG9uIHRoZSBjYXJkJ3Mgb3duXG4vLyAtLWV2ZW50LWNhcmQtYmcgKHNhbWUgdG9rZW4sIG5vdCBhIG5ldyBjb2xvciksIG1hdGNoaW5nIHRoZVxuLy8gLS10aGVtZS1idG4tY29sb3IgY29sb3ItbWl4IGlkaW9tIGFscmVhZHkgdXNlZCBlbHNld2hlcmUgaW4gdGhpcyBidW5kbGVcbi8vIChfYW5zd2VyLWJ1dHRvbi5zY3NzLCBfdW5pdC1pbnB1dC1yb3cuc2NzcykuXG4ucWRuYXByby1yZXNvdXJjZS10aW1lbGluZV9fY2hpcC0tZHJhZnQge1xuICBib3JkZXI6IDEuNXB4IGRhc2hlZCB2YXIoLS1ldmVudC1jYXJkLXRleHQsIGN1cnJlbnRDb2xvcik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1ldmVudC1jYXJkLWJnLCB0cmFuc3BhcmVudCkgNTUlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19tb3JlIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMXB4IDZweDtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTRweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTEsIDRweCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi8vIEhvdmVyL2ZvY3VzIGFmZm9yZGFuY2VzIChLaW0ncyBkYXktZGV0YWlsIGRlY2lzaW9uLCAxNi4wNy4yMDI2IOKAlCB0aGUgXCIrTlwiXG4vLyBsaW5lIGJlY29tZXMgYSByZWFsIHByZXNzIHRhcmdldCwgc2FtZSBpZGlvbSBhcyAucWRuYXByby1yZXNvdXJjZS10aW1lbGluZVxuLy8gX19kYXljZWxsIGFib3ZlIGl0OiB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kIGF0IHJlc3QsIGEgc3VidGxlIGdyZXkgdGludCBvblxuLy8gaG92ZXIsIHB1cnBsZSBmb2N1cyByaW5nIGZvciBrZXlib2FyZCBuYXYpLlxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX21vcmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpO1xufVxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX21vcmU6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAwIDAgMnB4IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSksXG4gICAgMCAwIDAgNnB4IHZhcigtLWMtcHVycGxlLXNvZnQtMTgsIHJnYmEoNjQsIDczLCAxNTQsIDAuMTgpKTtcbn1cblxuLy8gV2lkZSBtb2RlIChkYXlzID4gNyk6IGRheSBjb2x1bW5zIGdldCBhIGZsb29yIHdpZHRoIHNvIHRoZXkgc3RheSBsZWdpYmxlO1xuLy8gdGhlIHNoYXJlZCBncmlkIHRoZW4gb3ZlcmZsb3dzIGFuZCB0aGUgT05FIHNjcm9sbGVyIGdhaW5zIGhvcml6b250YWwgc2Nyb2xsLlxuLy8gQXQgZGF5cyA8PSA3IHRoZXJlIGlzIG5vIG1pbi13aWR0aCwgc28gY29sdW1ucyBhbHdheXMgc2hhcmUgMTAwJSAobm8gc2Nyb2xsKS5cbi5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lLS13aWRlIC5xZG5hcHJvLXJlc291cmNlLXRpbWVsaW5lX19kYXljZWxsLFxuLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmUtLXdpZGUgLnFkbmFwcm8tcmVzb3VyY2UtdGltZWxpbmVfX2NlbGwge1xuICBtaW4td2lkdGg6IDg4cHg7XG59XG4iLCIvLyBxZG5hcHJvLXJldmVhbC1zdGFnZSDigJQgZnVsbHNjcmVlbiBcImZlZXN0emFhbFwiIHN0YWdlIGZvciBQdWxzZSByZXZlYWwtbW9tZW50ZW4uXG4vLyBORVNURUQgKHJlYWwgYCZgLW5lc3RpbmcgdGhyb3VnaG91dCksIHNvIHRoaXMgbmVlZHMgY29tcGlsZVNjc3M6IHRydWUgd2hlcmV2ZXJcbi8vIGl0IGlzIHZlbmRvcmVkIChzZWUgYXBwX2FwaV9xZG5hdjIvc3luYy12Mi1jb21wb25lbnRzLmpzJ3MgY29tcGlsZVNjc3Mgbm90ZXMpLlxuLy9cbi8vIFRoZSBzdGFnZSBpcyBhIGRlbGliZXJhdGVseSBGSVhFRCBsaWdodC1vbi1wdXJwbGUgc3VyZmFjZTogaXQgZG9lcyBOT1QgZmxpcFxuLy8gd2l0aCBkYXJrIG1vZGUuIC0tYy1wdXJwbGUtNTAwLzcwMC8xMDAgYXJlIHVzZWQgZXhwbGljaXRseSwgbmV2ZXJcbi8vIC0tYy1icmFuZC1wdXJwbGUgKHdoaWNoIHJlc29sdmVzIHRvIC0tYy1wdXJwbGUtMjAwIGluIGRhcmsgbW9kZSBhbmQgd291bGRcbi8vIGludmVydCB0aGUgd2hvbGUgXCJmZWVzdHphYWxcIiBsb29rKS5cbi8vXG4vLyBFZGl0IEhFUkUsIHRoZW4gcnVuIGBndWxwIHNhc3MtdjFgIChsaWJyYXJ5KSArIHRoZSBQV0Egc3luYy5cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogNDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAvLyBWTEFLIHBhYXJzLTUwMCwgZ2VlbiB2ZXJsb29wIChLaW0gMTcuMDkuMjAyNjogXCJiaWogcHVsc2UgaGViIGplIGluZWVucyBlZW5cbiAgLy8gZ3JhZGllbnQgQkcgaW4gcGxhYXRzIHZhbiBnZXdvb24gZGUgcHVycGxlLTUwMCB0b2tlbiBkaWUgd2UgYmlqIGFsbGVcbiAgLy8gYW5kZXJlIGdlYnJ1aWtlblwiKS4gRGUgdW5ib3gtYWZ0cmFwIHpldHRlIGRpdCBhbCBsb2thYWwgcmVjaHQgbWV0IHppam5cbiAgLy8gOTUlLXNjcmltOyBudSBrbG9wdCBkZSBiYXNpcyB6ZWxmIGVuIHppam4gYWxsZSBzaG93cyBkZXplbGZkZSBwYWFyc2Ugdmxhay5cbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuXG4gICYucnMtY2xvc2VkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJi5ycy1zaGFraW5nIHtcbiAgICBhbmltYXRpb246IHJzLXNoYWtlIDAuNHMgbGluZWFyO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcnMtc2hha2Uge1xuICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogbm9uZTsgfVxuICAyMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAzcHgpIHJvdGF0ZSgtMC42ZGVnKTsgfVxuICA0MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIC0zcHgpIHJvdGF0ZSgwLjZkZWcpOyB9XG4gIDYwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC00cHgsIC0ycHgpOyB9XG4gIDgwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDNweCwgMnB4KTsgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENsb3NlIGJ1dHRvbiArIGZ4IGxheWVyICsgZmxhc2hcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMnB4O1xuICByaWdodDogMTJweDtcbiAgei1pbmRleDogMjA7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZngge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiA1O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1mbGFzaCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDY7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAmLmlzLWZsYXNoaW5nIHtcbiAgICBhbmltYXRpb246IHJzLWZsYXNoIDAuNXMgZWFzZS1vdXQ7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBycy1mbGFzaCB7XG4gIDAlIHsgb3BhY2l0eTogMC45NTsgfVxuICAxMDAlIHsgb3BhY2l0eTogMDsgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAvLyBTYWZldHkgbmV0OiBldmVuIGlmIGEgY2hvcmVvZ3JhcGh5IHBhdGggZm9yZ290IHRvIGdhdGUgYSBmbGFzaCwgcmVkdWNlZFxuICAvLyBtb3Rpb24gbmV2ZXIgc2hvd3MgaXQuXG4gIC5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZmxhc2gge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBJZGxlIHN0YXRlIOKAlCB0aGUgY2xvc2VkIFwiZGljaHRlIGthYXJ0XCJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1jYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICB3aWR0aDogbWluKDI2MHB4LCA4NCUpO1xuICBwYWRkaW5nOiAyNHB4IDIycHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAxLjVweCBkYXNoZWQgdmFyKC0tYy13aGl0ZS04NSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItNSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTEwMCk7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDI2cHggcmdiYSgwLCAwLCAwLCAwLjE2KTtcbiAgYW5pbWF0aW9uOiBycy1icmVhdGhlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuXG4gICZbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJzLWJyZWF0aGUge1xuICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA0KTsgfVxufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWNhcmQtaWNvbiB7XG4gIHdpZHRoOiA1NnB4O1xuICBoZWlnaHQ6IDU2cHg7XG4gIG1hcmdpbjogMCBhdXRvIDEwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBhbmltYXRpb246IHJzLXdpZ2dsZSAxLjZzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHJzLXdpZ2dsZSB7XG4gIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoLTZkZWcpOyB9XG4gIDUwJSB7IHRyYW5zZm9ybTogcm90YXRlKDZkZWcpIHNjYWxlKDEuMDgpOyB9XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtY2FyZC1oZWFkaW5nIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDApO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWNhcmQtc3ViIHtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS02MDApO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWNhcmQsXG4gIC5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtY2FyZC1pY29uIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTY2VuZSDigJQgc2hhcmVkIHNoZWxsIGZvciBldmVyeSBzaG93LXR5cGUncyBjb250ZW50XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtc2NlbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDI0cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZmFkZS1pbiB7XG4gIGFuaW1hdGlvbjogcnMtZmFkZS1pbiAwLjM1cyBlYXNlLW91dCBib3RoO1xufVxuXG5Aa2V5ZnJhbWVzIHJzLWZhZGUtaW4ge1xuICAwJSB7IG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7IG9wYWNpdHk6IDE7IH1cbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1jdGEge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXN0YXRyb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAxNnB4O1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXN0YXQge1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0zKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtMTAwKTtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTcwMCk7XG5cbiAgLnJzLXN0YXQtdiB7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIH1cblxuICAucnMtc3RhdC1rIHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTYwMCk7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTSE9XIDIg4oCUIEJhdHRsZS1FSU5EU0NIRVJNIChmaW5hbGUpLCBLaW1zIGhlcm9udHdlcnAgMTYuMDkuMjAyNlxuLy8gKEJFU0xVSVRFTi1wdWxzZS1laW5kc2NoZXJtLm1kKS4gVmVydmFuZ3QgZGUgb3VkZSBzY29yZS1yYWNlXG4vLyAoMi10ZWFtcy1oYXJkY29kZWQpIOKAlCBkaWUgc2VjdGllIGlzIGhpZXIgd2VnZ2VoYWFsZCAoYmVzbHVpdCAyMSkuXG4vLyBaZWxmZGUgc2NyaW0gKyBsYWdlbi1vcGJvdXcgYWxzIGRlIHVuYm94OiBkZSB0ZWFzZSAobXV6aWVrZG9vcykgbGlndFxuLy8gYWxzIC5ycy1jYXJkLS11bmJveC5ycy1jYXJkLS1maW5hbGUgYm92ZW5vcCwgZGUgc2NlbmUgZXJvbmRlci5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBaZWxmZGUgOTUlLXNjcmltIGFscyBkZSB1bmJveDogZGUgZ2VkaW1kZSBmZWVkIHNjaGVtZXJ0IGVyZG9vcmhlZW4uXG4ucWRuYXByby1yZXZlYWwtc3RhZ2Vbc2hvdy10eXBlPVwiZmluYWxlXCJdIHtcbiAgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC45NSk7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jLXB1cnBsZS01MDApIDk1JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4vLyBUZWFzZSBlbiBzY2VuZSB6aWpuIExBR0VOICh6ZWxmZGUgdmFsa3VpbC1sZXMgYWxzIGRlIHVuYm94OiBmbGV4LWJ1cmVuXG4vLyBsYXRlbiBoZXQgbW9sZW50amUgc3ByaW5nZW4gem9kcmEgZGUgc2NlbmUgdnVsdCkuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2Vbc2hvdy10eXBlPVwiZmluYWxlXCJdIC5ycy1zY2VuZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG59XG5cbi8vIERlIG11emlla2Rvb3MgaXMga2xlaW5lciBkYW4gaGV0IHBha2tldGplIChkZXNpZ252ZXJob3VkaW5nIHN0YXAgMSkgZW5cbi8vIGRlIGtvcCBtYWcgdHdlZSByZWdlbHMgbmVtZW4uXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWNhcmQucnMtY2FyZC0tZmluYWxlIHtcbiAgLnJzLWNhcmQtaWNvbiB7XG4gICAgd2lkdGg6IG1pbigxOTBweCwgNTAlKTtcbiAgICBtYXJnaW4tdG9wOiA4NHB4O1xuICB9XG5cbiAgLnJzLWNhcmQtaGludCB7XG4gICAgbWFyZ2luLXRvcDogNTZweDtcbiAgfVxufVxuXG4vLyBEZSBwb3Agb3AgZGUgdGlrOiB0ZWtzdCBkb29mdCBkaXJlY3QsIGhldCBtb2xlbnRqZSBqYWFndCB6aWpuIHNuZWxsZVxuLy8gcm9uZGUgKGhvbGRTZWdtZW50KSBlbiB2ZWVydCBkYW4gd2VnIOKAlCBrb3J0ZXIgZGFuIGRlIHBha2tldGplLWZhZGUsXG4vLyBlciBpcyBnZWVuIGRla3NlbC1tb21lbnQgb20gb3AgdGUgd2FjaHRlbi5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZS5ycy1maW5hbGUtb3BlbmluZyAucnMtY2FyZC0tZmluYWxlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgLnJzLWNhcmQtaGVhZGluZyxcbiAgLnJzLWNhcmQtc3ViLFxuICAucnMtY2FyZC1oaW50IHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgLnJzLWNhcmQtaWNvbiB7XG4gICAgYW5pbWF0aW9uOiBycy1maW4tYm94cG9wIDAuNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSAwLjEycyBmb3J3YXJkcztcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJzLWZpbi1ib3hwb3Age1xuICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IG9wYWNpdHk6IDE7IH1cbiAgMzUlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjEyKTsgb3BhY2l0eTogMTsgfVxuICA2MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuODYpOyBvcGFjaXR5OiAxOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuNCk7IG9wYWNpdHk6IDA7IH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEZSBzY2VuZToga29wem9uZSAoQmVyZWtlbmVuIC0+IHdpbm5hYXItYmxvayksIGhldCBib3JkLCBkZSBrbm9wcGVuLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZpbmFsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiBtaW4oMzIwcHgsIDEwMCUpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcblxuICAmLnJzLWZpbi1nbyxcbiAgJi5ycy1maW4tZG9uZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIC8vIEtvcC1pbnpldCwga3JpbXBiYWFyICh6ZWxmZGUgc3BhY2VyLXBhdHJvb24gYWxzIGRlIHVuYm94LXNjZW5lKS5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGZsZXg6IDAgMSA0MHB4O1xuICB9XG59XG5cbi8vIEdyaWQtc3RhcGVsaW5nIGluIHBsYWF0cyB2YW4gYWJzb2x1dGUgbGFnZW46IGRlIGtvcHpvbmUgd29yZHQgem8gaG9vZyBhbHNcbi8vIGhldCBHUk9PVFNURSB2YW4gZGUgdHdlZSAoQmVyZWtlbmVuLWtvcCBvZiB3aW5uYWFyLWJsb2spIOKAlCBlZW4gZ2VsaWprc3BlbFxuLy8gbWV0IHR3ZWUgZ3JvdGUgdGVhbW5hbWVuIGRydWt0IGRhbiBuaWV0cyB1aXQgYmVlbGQuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZpbi1oZWFkem9uZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDExMnB4O1xuICBkaXNwbGF5OiBncmlkO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuXG4gID4gKiB7XG4gICAgZ3JpZC1hcmVhOiAxIC8gMTtcbiAgfVxufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZpbi1jYWxjdGl0bGUge1xuICBmb250LXNpemU6IDM0cHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgYW5pbWF0aW9uOiBycy1maW4tY2FsY3B1bHNlIDEuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgcnMtZmluLWNhbGNwdWxzZSB7XG4gIDAlLCAxMDAlIHsgb3BhY2l0eTogMTsgfVxuICA1MCUgeyBvcGFjaXR5OiAwLjU1OyB9XG59XG5cbi8vIEhldCB3aW5uYWFyLWJsb2sga25hbHQgaW4gZGUga29wem9uZSBiaW5uZW4gKEJBTS1mYW1pbGllIHZhbiBkZSB1bmJveCkuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZpbi1yZXN1bHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjIpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1maW4tcmVzdWx0c3RhdGUge1xuICAucnMtZmluLWNhbGN0aXRsZSB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE4cyBlYXNlO1xuICB9XG5cbiAgLnJzLWZpbi1yZXN1bHQge1xuICAgIGFuaW1hdGlvbjogcnMtdW5ib3gtYmFtIDAuNXMgY3ViaWMtYmV6aWVyKDAuMiwgMS42LCAwLjM1LCAxKSBmb3J3YXJkcztcbiAgfVxufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZpbi1yZXNoZWFkaW5nIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogODAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG5cbi8vIERlIFwiJlwiIHR1c3NlbiB0d2VlIHdpbm5hYXItcGlsbHM6IGVpZ2VuIHJlZ2VsLCBrbGVpbmVyIGVuIGdlZGltZCAtIGRlXG4vLyBuYW1lbiBob3VkZW4gZGUgaG9vZmRyb2wgKEtpbXMgc2NoZXRzIDE2LjA5LjIwMjYpLlxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1maW4tYW1wIHtcbiAgbWFyZ2luOiAycHggMDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZS03MCk7XG59XG5cbi8vIERlIHVpdHNsYWcga29tdCBBTFRJSkQgaW4gb21saWpuZGUgcGlsbHMsIGdlY2VudHJlZXJkIGVuIG92ZXIgZGUgdm9sbGVcbi8vIGJyZWVkdGUgKEtpbXMgRmlnbWEtZnJhbWUgaVBob25lIDI3ICsgaGVyemllbmluZyAxNi4wOS4yMDI2KSAtIG9vayBiaWpcbi8vIGVlbiBvZiB0d2VlIHdpbm5hYXJzLiBcIldpbm5hYXIocykhXCIgaXMgZGUgZ3JvdGUga29wIGVyYm92ZW47IHBlciBwaWxsXG4vLyBtYXhpbWFhbCB0d2VlIHJlZ2VscyBtZXQgZGUgZWxsaXBzaXMgYWxzIHZhbmduZXQuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZpbi1yZXN1bHQtLXBpbGxzIC5ycy1maW4tcmVzaGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMzZweDtcbiAgbWFyZ2luLWJvdHRvbTogMTRweDtcbn1cblxuLy8gQWxsZWVuIGJpaiAzKyB3aW5uYWFycyB2ZXJ2YWx0IGRlIHN1YnJlZ2VsOiBoZXQgZGVzaWduIHRvb250IGhlbSBkYWFyXG4vLyBuaWV0IGVuIGRyaWUgcGlsbHMgKyBcIkdlZmVsaWNpdGVlcmQhXCIgd2VyZCB0ZSB2b2wuIEJpaiAxLTIgd2lubmFhcnNcbi8vIGJsaWpmdCBoaWogKFwiR2VmZWxpY2l0ZWVyZCFcIiAvIFwiVm9sZ2VuZGUga2VlciBiZXRlciFcIikuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZpbi1yZXN1bHQtLW5vc3ViIC5ycy1maW4tcmVzc3ViIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gQmlqIDEtMiB3aW5uYWFycyBpcyBkZSBwaWxsIGVlbiBtYWF0IGdyb3RlciAoZGUgbmFhbSBpcyBkYWFyIGRlIGhlbGQpLlxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1maW4td2lucGlsbHMtLWdyb290IC5ycy1maW4td2lucGlsbCB7XG4gIGZvbnQtc2l6ZTogMjZweDtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1maW4td2lucGlsbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE0cHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZpbi13aW5waWxsIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEycHggMjBweDtcbiAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1jLXdoaXRlLTg1KTtcbiAgYm9yZGVyLXJhZGl1czogMjhweDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBmb250LXdlaWdodDogODAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLy8gRGUgMi1yZWdlbHMtYWZrYXAgb3AgZGUgYmlubmVuLXNwYW46IGRpcmVjdCBvcCBkZSBwaWxsIGxpZXQgZGUgY2xhbXAgaW5cbi8vIGRlIHBhZGRpbmctem9uZSBlZW4gaGFsdmUgZGVyZGUgcmVnZWwgZG9vcnNjaGVtZXJlbi5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZmluLXdpbnBpbGx0ZXh0IHtcbiAgdGV4dC13cmFwOiBiYWxhbmNlO1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZpbi1yZXNzdWIge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUtODUpO1xufVxuXG4vLyBIZXQgYm9yZDogcmlqZW4gc3RhYW4gYWJzb2x1dXQgZW4gdmVyaHVpemVuIHZpYSBgdG9wYCAoZGUgcmFjZSB3aXNzZWx0XG4vLyBsaXZlIHZhbiBwbGVrIOKAlCBlZW4gZ2xhZGRlIGdsaWotdmVyaHVpemluZywgZ2VlbiBmbGV4LXNwcm9uZykuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZpbi1ib2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgJi5ycy1maW4tYm9hcmQtLWZ1bGwge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDQ2dmg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZpbi1yb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB0cmFuc2l0aW9uOiB0b3AgMC4zOHMgY3ViaWMtYmV6aWVyKDAuMywgMC45LCAwLjMsIDEpO1xuXG4gIC8vIEluIGRlIHVpdGdla2xhcHRlIHZvbGxlZGlnZSBzdGFuZCBzdGFhbiBkZSByaWplbiBnZXdvb24gZ2VzdGFwZWxkLlxuICAmLnJzLWZpbi1yb3ctLXN0YXRpYyB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1maW4taGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuXG4vLyBMYW5nZSB0ZWFtbmFtZW4gaW4gaGV0IGtsYXNzZW1lbnQgKDE2LjA5LjIwMjYpOiDDqcOpbiByZWdlbCBtZXQgZWxsaXBzaXMgLVxuLy8gZGUgcmlqZW4gc3RhYW4gb3AgdmFzdGUgaG9vZ3RlcywgZWVuIGdld3JhcHRlIG5hYW0gem91IG92ZXIgZGUgYmFsa1xuLy8gZXJvbmRlciBzY2h1aXZlbi4gRGUgc2NvcmUgYmxpamZ0IGFsdGlqZCB2b2xsZWRpZyBzdGFhbi5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZmluLW5hbWUge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4vLyBEZSBzY29yZS1ncm9lcCByZWNodHM6IGJld2VnZW5kZSBnb3VkZW4gc3RlciArIHdhYXJkZSAoS2ltIDE2LjA5LjIwMjYgLVxuLy8gcHVudGVuIGRyYWdlbiBvdmVyYWwgaW4gZGUgYXBwIGRpZSBzdGVyKS5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZmluLXNjb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNXB4O1xuICBmbGV4OiAwIDAgYXV0bztcblxuICBxZG5hcHJvLWxvdHRpZSB7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIC0tcWwtc2l6ZTogMThweDsgLy8gaGV0IGNvbXBvbmVudCBtZWV0IHppY2h6ZWxmIGFuZGVycyA0OHB4XG4gIH1cbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1maW4tdmFsIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogODAwO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuXG4vLyBEZSB3aW5uYWFyLWJhbGsgcHVsc2VlcnQgem9kYXQgZHVpZGVsaWprIGlzIHdpZSB3b24gKEtpbXMgYW5ub3RhdGllKS5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZmluLXJvdy0td2lubmVyIHtcbiAgLnJzLWZpbi1uYW1lIHtcbiAgICBmb250LXdlaWdodDogODAwO1xuICB9XG5cbiAgLnJzLWZpbi10cmFjayB7XG4gICAgYW5pbWF0aW9uOiBycy1maW4td2lubmVycHVsc2UgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcnMtZmluLXdpbm5lcnB1bHNlIHtcbiAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlWSgxKTsgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApOyB9XG4gIDUwJSB7IHRyYW5zZm9ybTogc2NhbGVZKDEuMjUpOyBib3gtc2hhZG93OiAwIDAgMTRweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KTsgfVxufVxuXG4vLyBcIitOIHRlYW1zXCIg4oCUIG5hIGRlIHVpdHNsYWcgdGlrYmFhciB2b29yIGRlIHZvbGxlZGlnZSBzdGFuZC5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZmluLW1vcmUge1xuICBtYXJnaW4tdG9wOiA2cHg7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMyk7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZS03MCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICAmOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgfVxufVxuXG4vLyBEZSBrbm9wcGVucmlqIG9uZGVyYWFuIChkZXNpZ246IE1lZXIgZmVlc3QhIGxpbmtzLCBBZnJvbmRlbiByZWNodHMpLlxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1maW4tYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTJweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjRweCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLCB0cmFuc2Zvcm0gMC40cyBjdWJpYy1iZXppZXIoMC4yLCAwLjksIDAuMywgMS4xKTtcblxuICAucnMtY3RhIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZmluLWFjdGlvbnMtaW4gLnJzLWZpbi1hY3Rpb25zIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZpbi1wYXJ0eSBxZG5hcHJvLWljb24sXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZpbi1hY3Rpb25zIC5ycy1jdGEgcWRuYXByby1pY29uIHtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cblxuLy8gRGUgc2xpbmdlcnM6IHN0YXRpc2NoIGJvdmVuaW4gem9sYW5nIGhldCBmZWVzdCBkdXVydCAoYmVzbHVpdCAxNyksIG1ldFxuLy8gZWVuIGhlZWwgbGljaHRlIHdpZWcg4oCUIHJlZHVjZWQgbW90aW9uIHpldCBkaWUgc3RpbC5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZmluLWdhcmxhbmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogLTQlO1xuICB3aWR0aDogMTA4JTtcbiAgaGVpZ2h0OiA3MnB4O1xuICB6LWluZGV4OiA0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzIGVhc2U7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAwO1xuICBhbmltYXRpb246IHJzLWZpbi1nYXJsYW5kc3dheSA1cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcblxuICBzdmcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gICYucnMtZmluLWdhcmxhbmQtaW4ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBycy1maW4tZ2FybGFuZHN3YXkge1xuICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKC0wLjZkZWcpOyB9XG4gIDUwJSB7IHRyYW5zZm9ybTogcm90YXRlKDAuNmRlZyk7IH1cbn1cblxuLy8gUmVkdWNlZCBtb3Rpb246IGVpbmRzdGFuZCBkaXJlY3QsIG5pZXRzIGJld2VlZ3QgKGJlc2x1aXQgNDcvNTcpLlxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1maW4tY2FsY3RpdGxlLFxuICAucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZpbi1nYXJsYW5kLFxuICAucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZpbi1yb3ctLXdpbm5lciAucnMtZmluLXRyYWNrLFxuICAucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZzb2xvLWNhbGNiYXJzIC5ycy1wb2RpdW0tYmFyIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1maW4tZG9uZSB7XG4gIC5ycy1maW4tcmVzdWx0IHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAucnMtZmluLWNhbGN0aXRsZSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFBPRElVTSDigJQgZ2VkZWVsZCBvbmRlcmRlZWwgdmFuIGhldCBzb2xvLWVpbmRzY2hlcm1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1wb2RpdW0td3JhcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgd2lkdGg6IG1pbigyODBweCwgOTAlKTtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1wb2RpdW0tc3BvdCB7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTRlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1wb2RpdW0tYmFycyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgaGVpZ2h0OiAxOTBweDtcbiAgbWFyZ2luLXRvcDogOHB4O1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXBvZGl1bS1zbG90IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgd2lkdGg6IDc0cHg7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1wb2RpdW0td2hvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuXG4vLyBHZWRlZWxkZSBwbGVrOiBhdmF0YXJzIE9OREVSIGVsa2FhciAoS2ltIDE2LjA5KSAtIGRlIHp1aWwgaXMgNzRweCBicmVlZCwgZW5cbi8vIHR3ZWUgbmFtZW4gbmFhc3QgZWxrYWFyIGJvdHN0ZW4gdGVnZW4gZGUgYnV1cnp1aWwuIERlIHN0YXBlbCBncm9laXQgb21ob29nLFxuLy8gd2FudCBkZSBzbG90IGxpam50IG9wIGZsZXgtZW5kIHVpdC5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtcG9kaXVtLXdoby0tc3RhcGVsIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXBvZGl1bS1wZXJzb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xufVxuXG4vLyBJbiBkZSBzdGFwZWwgbWFnIGVlbiBuYWFtIGRlIHp1aWxicmVlZHRlIG92ZXJzY2hyaWpkZW4gem9uZGVyIHRlIGJvdHNlbjpcbi8vIGhpaiBrcmlqZ3QgZWVuIGVpZ2VuLCBpZXRzIHJ1aW1lcmUgcmVnZWwgZW4ga2FwdCBuZXRqZXMgYWYuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXBvZGl1bS13aG8tLXN0YXBlbCAucnMtcG9kaXVtLW5hbWUge1xuICBtYXgtd2lkdGg6IDg4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vLyBUaGUgXCJsYW5kXCIgY2xhc3MgZ29lcyBvbiB0aGUgV0hPIHdyYXBwZXIgKC5ycy1wb2RpdW0td2hvLWxhbmQpLCBub3Qgb24gZWFjaFxuLy8gcGVyc29uIOKAlCBKUyB0b2dnbGVzIGl0IG9uY2UgcGVyIHNsb3QsIHNvIGV2ZXJ5IGF2YXRhciBzaGFyaW5nIGEgcGxhY2UgbGFuZHNcbi8vIHRvZ2V0aGVyLlxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1wb2RpdW0td2hvLWxhbmQgLnJzLXBvZGl1bS1wZXJzb24ge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yLCAxLjgsIDAuNCwgMSk7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtcG9kaXVtLW5hbWUge1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1wb2RpdW0tYmFyIHtcbiAgd2lkdGg6IDY0cHg7XG4gIGhlaWdodDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nLXRvcDogNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMikgdmFyKC0tci0yKSAwIDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLXJzLWJhci1jb2xvciwgdmFyKC0tYy1wdXJwbGUtMzAwKSk7XG4gIGNvbG9yOiB2YXIoLS1ycy1iYXItaW5rLCB2YXIoLS1jLXRleHQtb24tYWN0aW9uKSk7XG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjVzIGN1YmljLWJlemllcigwLjIsIDEuMywgMC40LCAxKTtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1wb2RpdW0tZmxvb3Ige1xuICBoZWlnaHQ6IDRweDtcbiAgbWFyZ2luLXRvcDogLTJweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU0hPVyAzIOKAlCBTb2xvLUVJTkRTQ0hFUk0gKGZpbmFsZS1zb2xvKSwgS2ltcyBmYXNlIDIgMTYuMDkuMjAyNi5cbi8vIFZlcnZhbmd0IGRlIG91ZGUgXCJwb2RpdW1cIi0gZW4gXCJzb2xvXCItc2hvd3M7IGhlcmdlYnJ1aWt0IGRlXG4vLyBycy1wb2RpdW0tKi16dWlsZW4gaGllcmJvdmVuIGVuIGRlIHJzLWZpbi0qLXRhYWwgdmFuIGRlIGJhdHRsZS1maW5hbGVcbi8vIChrb3B6b25lLCBwaWxscywga25vcHBlbnJpaiwgZmVlc3QpLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFplbGZkZSA5NSUtc2NyaW0gZW4gbGFnZW4tb3Bib3V3IGFscyBkZSBhbmRlcmUgdGVhc2Utc2hvd3MuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2Vbc2hvdy10eXBlPVwiZmluYWxlLXNvbG9cIl0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjk1KTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtcHVycGxlLTUwMCkgOTUlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZVtzaG93LXR5cGU9XCJmaW5hbGUtc29sb1wiXSAucnMtc2NlbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xufVxuXG4vLyBEZSB0ZWxsZW5kZSBlaWdlbiBzY29yZSBvbmRlciBcIkJlcmVrZW5lbi4uLlwiIC0gaGV0IHNvbG8tZXF1aXZhbGVudCB2YW5cbi8vIGhldCBiYWxrZW4tYm9yZC5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZnNvbG8tY291bnQge1xuICBtYXJnaW4tdG9wOiAyNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgcWRuYXByby1zY29yZS1jb3VudCB7XG4gICAgZm9udC1zaXplOiA2NHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gIH1cbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1mc29sby1jb3VudGxhYmVsIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTg1KTtcbn1cblxuLy8gTmEgZGUgYm9vbSBtYWFrdCBkZSB0ZWxsZXIgcGxhYXRzIHZvb3IgZGUgdWl0c2xhZyAoZGUgc2NvcmUgc3RhYXQgZGFuXG4vLyBpbiBkZSBwaWxsKS5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZnNvbG8tcmVzdWx0c3RhdGUgLnJzLWZzb2xvLWNvdW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gRGUgcG9kaXVtLWxvYWRlciB0aWpkZW5zIFwiQmVyZWtlbmVuLi4uXCIgKEtpbXMgaWRlZSAxNi4wOSk6IGRlIGRyaWUgenVpbGVuXG4vLyBkYW5zZW4gb3AgZW4gbmVlciB0ZXJ3aWpsIGRlIG5hbWVuIHZvb3JiaWpmbGl0c2VuIGluIGRlIHNwb3QtcmVnZWwuIERlXG4vLyBhbmltYXRpZSBvdmVyc3RlbXQgdGlqZGVsaWprIGRlIGhlaWdodC10cmFuc2l0aW9uOyB2YWx0IGRlIGtsYXNzZSB3ZWcsXG4vLyBkYW4gemFra2VuIGRlIHp1aWxlbiB2aWEgZGllIHRyYW5zaXRpb24gdGVydWcgbmFhciBudWwgdm9vciBkZSBlY2h0ZVxuLy8gbGFuZGluZy5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZnNvbG8tY2FsY2JhcnMgLnJzLXBvZGl1bS1iYXIge1xuICBhbmltYXRpb246IHJzLWZzb2xvLWJhcmxvYWQgMC45cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1mc29sby1jYWxjYmFycyAucnMtcG9kaXVtLWJhci0tMiB7XG4gIGFuaW1hdGlvbi1kZWxheTogMC4xNXM7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZnNvbG8tY2FsY2JhcnMgLnJzLXBvZGl1bS1iYXItLTMge1xuICBhbmltYXRpb24tZGVsYXk6IDAuM3M7XG59XG5cbkBrZXlmcmFtZXMgcnMtZnNvbG8tYmFybG9hZCB7XG4gIDAlLCAxMDAlIHsgaGVpZ2h0OiAxNnB4OyB9XG4gIDUwJSB7IGhlaWdodDogNThweDsgfVxufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZzb2xvLWJvZHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDE0cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiA2cHg7XG59XG5cbi8vIERlIHNjb3JlLXBpbGwgKGVuIGRlIHN0YXRzLCBlbiBkZSB3aW5uYWFyc2xpanN0KSBzY2h1aXZlbiBpbiB6b2RyYSBkZVxuLy8gdWl0c2xhZyBzdGFhdC5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZnNvbG8gLnJzLWZzb2xvLXBpbGwsXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZzb2xvIC5ycy1mc29sby13aW5uZXJzLFxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1mc29sbyAucnMtc3RhdHJvdyB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNHB4KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2UsIHRyYW5zZm9ybSAwLjRzIGN1YmljLWJlemllcigwLjIsIDAuOSwgMC4zLCAxLjEpO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZzb2xvLXBpbGwtaW4ge1xuICAucnMtZnNvbG8tcGlsbCxcbiAgLnJzLWZzb2xvLXdpbm5lcnMsXG4gIC5ycy1zdGF0cm93IHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4vLyDilIDilIAgRGUgd2lubmFhcnNsaWpzdCBvbmRlciBoZXQgcG9kaXVtIChLaW0gMTYuMDkuMjAyNikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBLbGVpbmUgcGlsbGVuOiB2b2xsZWRpZ2UgbmFhbSBsaW5rcyAoZGllIGthbiBsYW5nIHppam4sIGR1cyBoaWoga3Jpamd0IGRlXG4vLyByZWspLCBwdW50ZW4gcmVjaHRzLiBCZXd1c3QgbGljaHRlciBkYW4gZGUgZWlnZW4gc2NvcmUtcGlsbCBlcm9uZGVyIC0gZGF0XG4vLyB2ZXJzY2hpbCBJUyBkZSBib29kc2NoYXAgKFwiem9kYXQgaGV0IGR1aWRlbGlqayBpc1wiKS5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZnNvbG8td2lubmVycyB7XG4gIGdhcDogOHB4O1xuICBtYXJnaW4tdG9wOiAxNnB4O1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZpbi13aW5waWxsLS1rbGVpbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA3cHggMTRweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy13aGl0ZS03MCk7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcblxuICBxZG5hcHJvLWxvdHRpZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIC0tcWwtc2l6ZTogMTZweDtcbiAgfVxufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZzb2xvLXdpbm5hbWUge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLy8gRGUgc3RlciBzdGFhdCBOQUFTVCBkZSBwdW50ZW4gKEtpbSAxNi4wOSksIG5pZXQgbGlua3Mgdm9vcmFhbi5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZnNvbG8td2lucHRzIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTg1KTtcbn1cblxuLy8gRGUgZWlnZW4gc2NvcmUgc3RhYXQgbG9zIHZhbiBkZSB3aW5uYWFyczogZWVuIHN0cmVlcCBlcnR1c3Nlbiwgem9hbHMgaW5cbi8vIEtpbXMgc2NoZXRzLCBlbiBoaWogaG91ZHQgemlqbiBncm90ZSBtYWF0LlxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1mc29sby13aW5uZXJzICsgLnJzLWZzb2xvLXBpbGwge1xuICBtYXJnaW4tdG9wOiAxNHB4O1xuICBwYWRkaW5nLXRvcDogMTRweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtd2hpdGUtNzApO1xufVxuXG4vLyBEZSBzY29yZS1waWxsOiBzdGVyICsgd2FhcmRlIGluIGRlIHdpbm5hYXItcGlsbC10YWFsLlxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1maW4td2lucGlsbC0tc2NvcmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG5cbiAgcWRuYXByby1sb3R0aWUge1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICAtLXFsLXNpemU6IDIycHg7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTSE9XIDEg4oCUIFBha2tldGplLWFmdHJhcCAodW5ib3gpIOKAlCBLaW1zIGhlcm9udHdlcnAgMTUuMDkuMjAyNlxuLy8gKEJFU0xVSVRFTi1wdWxzZS1zdGFydHNjaGVybS1vbnRodWxsaW5nLm1kKS4gTWF0ZW4gZW4gZm9udGdyb290dGVzXG4vLyBrb21lbiAxOjEgdWl0IEtpbXMgZGVzaWducyArIGhldCBnb2VkZ2VrZXVyZGUgYXJ0aWZhY3QgKHY0KS5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBCZXNsdWl0IDI6IGdlZW4gZGljaHQgcGFhcnMgc2NoZXJtIG1hYXIgZWVuIFNDUklNIHZhbiA5NSUgb3AgcGFhcnMtNTAwIOKAlFxuLy8gZGUgZ2VkaW1kZSBmZWVkIHNjaGVtZXJ0IGVyZG9vcmhlZW4uIERlIGthbGUgcmdiYSBpcyBoZXQgdmFuZ25ldCB2b29yXG4vLyBlbmdpbmVzIHpvbmRlciBjb2xvci1taXg7IGRlIGhleCBpcyBleGFjdCAtLWMtcHVycGxlLTUwMCAoIzQwNDk5YSkuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2Vbc2hvdy10eXBlPVwidW5ib3hcIl0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjk1KTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtcHVycGxlLTUwMCkgOTUlLCB0cmFuc3BhcmVudCk7XG59XG5cbi8vIFRlYXNlIGVuIHNjZW5lIHppam4gYmlqIGRlIHVuYm94IExBR0VOIG92ZXIgZWxrYWFyLCBnZWVuIGZsZXgtYnVyZW46IG9wIGRlXG4vLyB0aWsgd29yZHQgZGUgc2NlbmUgYWx2YXN0IGdldnVsZCB0ZXJ3aWpsIGRlIHRlYXNlIG5vZyA1MDBtcyB6aWNodGJhYXIgaXMsIGVuXG4vLyBhbHMgemUgZGUga29sb20gem91ZGVuIGRlbGVuIGR1d3QgZGllIHZlcnNlIGluaG91ZCBoZXQgcGFra2V0amUgb21ob29nXG4vLyAoS2ltcyBiZXZpbmRpbmcgMTUuMDk6IFwiaGlqIHNwcmluZ3QgaW5lZW5zIG5hYXIgYm92ZW5cIikuIERlIHRlYXNlIGxpZ3Rcbi8vIGJvdmVub3AgKHozKSBlbiBkb29mdCB1aXQgb3ZlciBkZSBhbCBvcGJvdXdlbmRlIHNjZW5lICh6MikgaGVlbi5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZVtzaG93LXR5cGU9XCJ1bmJveFwiXSAucnMtc2NlbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWNhcmQucnMtY2FyZC0tdW5ib3gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAzO1xufVxuXG4vLyBEZWJyaXMtbGFhZyBBQ0hURVIgZGUgc2NlbmUtaW5ob3VkIChzY2VuZSA9IHotaW5kZXggMiwgZngtdm9vciA9IDUpOlxuLy8gZGUgYnJva3N0dWtrZW4gdmFuIGRlIGhhbmRzY2hvZW4tbGFuZGluZyBzcGF0dGVuIGFjaHRlciBoZXQgaWNvb24gd2VnLFxuLy8gbm9vaXQgZXJvdmVyaGVlbiAoS2ltcyBjb3JyZWN0aWUgMTUuMDkuMjAyNikuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWZ4LWJhY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAxO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEZSB0ZWFzZSAoaWRsZSk6IGdlZW4gZGljaHRlIGthYXJ0IG1hYXIgZWVuIGJlZWxkdnVsbGVuZCBzY2hlcm0g4oCUXG4vLyB2b29ybmFhbSwgd2llYmVsZW5kIHBha2tldGplLCBcIlRpayBvbSB0ZSBvbnRodWxsZW5cIi5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1jYXJkLWhpbnQge1xuICBkaXNwbGF5OiBub25lOyAvLyBhbGxlZW4gZGUgdW5ib3gtdGVhc2UgdG9vbnQgZGV6ZSByZWdlbFxufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLWNhcmQucnMtY2FyZC0tdW5ib3gge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwIDI0cHggMjRweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYW5pbWF0aW9uOiBub25lOyAvLyBnZWVuIGFkZW1sb29wOyBoZXQgcGFra2V0amUgd2llYmVsdCB6ZWxmIGFsXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgLy8gYGRpc3BsYXk6ZmxleGAgaGllcmJvdmVuIHdpbnQgcXVhIGNhc2NhZGUtdm9sZ29yZGUgdmFuIGRlIGdlbmVyaWVrZVxuICAvLyBgLnJzLWNhcmRbaGlkZGVuXSB7IGRpc3BsYXk6bm9uZSB9YCBib3ZlbmluIGRpdCBiZXN0YW5kIChnZWxpamtlXG4gIC8vIHNwZWNpZmljaXRlaXQsIGRpdCBibG9rIHN0YWF0IGxhdGVyKSAtIHpvbmRlciBkZXplIHJlZ2VsIGJsaWpmdCBkZVxuICAvLyB2ZXJib3JnZW4gdGVhc2UgZHVzIHJ1aW10ZSBpbm5lbWVuIGVuIGR1d3QgaGlqIGRlIHNjZW5lIG9tbGFhZy4gRGVcbiAgLy8gYmVrZW5kZSBoaWRkZW4tZG9ldC1uaWV0cy12YWxrdWlsLCBleHBsaWNpZXQgZGljaHRnZXpldC5cbiAgJltoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gRGUgbWF0ZW4gdWl0IEtpbXMgZGVzaWduIGdlbGRlbiBvcCBlZW4gdm9sbGVkaWcgdGVsZWZvb25zY2hlcm0gKH44MDBweFxuICAvLyBob29nOiAxNTBweCBrb3AtaW56ZXQsIGRvb3MgMjMwcHgsIGhpbnQgb3AgNDRweCkuIEZsZXgtc3BhY2VycyBtZXQgZWVuXG4gIC8vICUtYmFzaXMgaG91ZGVuIGRlemVsZmRlIFZFUkhPVURJTkdFTiBvdmVyZWluZCBpbiBkZSBsaWJyYXJ5LXByZXZpZXcgZW4gZGVcbiAgLy8gYnJlZGUtc2NoZXJtLWRpYWxvb2csIHdhYXIgZGUgY29udGFpbmVyIGxhZ2VyIGlzOyBkZSBjbGFtcHMgemlqbiBkZVxuICAvLyBkZXNpZ24tbWF0ZW4gYWxzIHBsYWZvbmQuXG4gIC8vIOKaoO+4jyBEZSBleHBsaWNpZXRlIGBvcmRlcmAtd2FhcmRlbiB6aWpuIGdlZW4gc2llcjogZGUga2luZGVyZW4gaGllcm9uZGVyXG4gIC8vIGtyaWpnZW4gb3JkZXIgMS00LCBlbiBwc2V1ZG8tZWxlbWVudGVuIHN0YWFuIHN0YW5kYWFyZCBvcCBvcmRlciAwLiBab25kZXJcbiAgLy8gb3JkZXIgb3AgOjphZnRlciBzb3J0ZWVydCBkaWUgKERPTS10aWUgbWV0IDo6YmVmb3JlKSBWT09SIGRlIGluaG91ZCwgcGFrdFxuICAvLyBkYWFyIHppam4gZmxleC1ncm9laSwgZW4gZHV3dCBuYWFtL2Rvb3MvaGludCBuYWFyIGRlIG9uZGVya2FudCAtIHByZWNpZXNcbiAgLy8gS2ltcyBidWcgXCJwYWtrZXRqZSBpcyBudSBoZWxlbWFhbCBvbmRlcmFhblwiICgxNS4wOS4yMDI2KS5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIG9yZGVyOiAwO1xuICAgIGZsZXg6IDAgMSAxNTBweDsgLy8ga29wLWluemV0OiBrcmltcHQgbWVlLCBub29pdCBncm90ZXIgZGFuIGhldCBkZXNpZ25cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIG9yZGVyOiA1O1xuICAgIGZsZXg6IDEgMSAwOyAvLyB2dWx0IGRlIHJlc3Qgb25kZXIgZGUgaGludFxuICB9XG5cbiAgLy8gRE9NLXZvbGdvcmRlIGlzIGljb29uID4ga29wID4gc3ViID4gaGludCAoZGUgZGljaHRlIGthYXJ0KTsgaGV0IGRlc2lnblxuICAvLyBsZWVzdCBuYWFtID4gc3ViID4gZG9vcyA+IGhpbnQuXG4gIC5ycy1jYXJkLWhlYWRpbmcgeyBvcmRlcjogMTsgfVxuICAucnMtY2FyZC1zdWIgeyBvcmRlcjogMjsgfVxuICAucnMtY2FyZC1pY29uIHsgb3JkZXI6IDM7IH1cbiAgLnJzLWNhcmQtaGludCB7IG9yZGVyOiA0OyB9XG5cbiAgLnJzLWNhcmQtaGVhZGluZyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBmb250LXNpemU6IDQwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4ycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gICAgdGV4dC13cmFwOiBiYWxhbmNlO1xuICB9XG5cbiAgLnJzLWNhcmQtc3ViIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTg1KTtcbiAgfVxuXG4gIC5ycy1jYXJkLWljb24ge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBtaW4oMjMwcHgsIDU5JSk7XG4gICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXJnaW46IDY0cHggYXV0byAwOyAvLyBkZXNpZ25tYWF0OyBkZSA6OmJlZm9yZS1zcGFjZXIgdmFuZ3QgbGFhZ3Rlbm9vZCBvcFxuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgYW5pbWF0aW9uOiBub25lOyAvLyBkZSB3aWdnbGUgeml0IGluIHNoaXBwaW5nLmpzb24gemVsZlxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjEycyBlYXNlO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG5cbiAgICBxZG5hcHJvLWxvdHRpZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAucnMtY2FyZC1oaW50IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiA0NHB4OyAvLyBkZXNpZ25tYWF0XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICB9XG59XG5cbi8vIEluZHJ1ay12ZWVyIG9wIGhldCBwYWtrZXRqZSAocG9pbnRlcmRvd24sIHVuYm94LW9ubHkpLlxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1jYXJkLnJzLXVuYm94LXByZXNzIC5ycy1jYXJkLWljb24ge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOSwgMC44KSB0cmFuc2xhdGVZKDEycHgpO1xufVxuXG4vLyBEZSBvcGVua25hbDogdGVrc3Qgd2VnLCBwYWtrZXRqZSBkb29mdCBuw6l0IGxhdGVyIHVpdCAoZGUgZGVrc2VsIGlzIGRhblxuLy8gYWwgZ2VrbmFsZCBlbiBkZSBjb25mZXR0aSBvbmRlcndlZykuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UucnMtdW5ib3gtb3BlbmluZyAucnMtY2FyZC0tdW5ib3gge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAucnMtY2FyZC1oZWFkaW5nLFxuICAucnMtY2FyZC1zdWIsXG4gIC5ycy1jYXJkLWhpbnQge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAucnMtY2FyZC1pY29uIHtcbiAgICAvLyBEZSBkb29zIGJsaWpmdCBzdGFhbiB0b3QgZGUgZGVrc2VsIHppY2h0YmFhciBvcGVuIGlzIGdld2Vlc3QgKGRla3NlbC1wb3BcbiAgICAvLyBkdXVydCBudSB+MjIwbXMpIGVuIGRvb2Z0IGRhbiBwYXMgdWl0IC0gS2ltcyBjb3JyZWN0aWUgMTUuMDk6IFwibnUga29tdFxuICAgIC8vIGVyIGFsbGVlbiBjb25mZXR0aSwgbGFhdCBkZSBkZWtzZWwgZWNodCBvcGVuZ2FhblwiLlxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zNXMgZWFzZSAwLjQ1cztcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRGUgb250aHVsbGluZyAoc2NlbmUpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtdW5ib3gge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gIC8vIEtvcC1pbnpldCBhbHMga3JpbXBiYXJlIHNwYWNlciAoZGVzaWdubWFhdCA3MnB4ICsgZGUgMjRweCBzY2VuZS1wYWRkaW5nID1cbiAgLy8gZGUgOTZweCB1aXQgaGV0IGRlc2lnbiBvcCBlZW4gdm9sbGVkaWcgdGVsZWZvb25zY2hlcm07IGluIGRlIGxhZ2VyZVxuICAvLyBsaWJyYXJ5LXByZXZpZXcgZW4gZGUgYnJlZGUtc2NoZXJtLWRpYWxvb2cga3JpbXB0IGhpaiBtZWUgaW4gcGxhYXRzIHZhbiBkZVxuICAvLyBDVEEgaGV0IGZyYW1lIHVpdCB0ZSBkdXdlbikuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBmbGV4OiAwIDEgNzJweDtcbiAgfVxufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXVuYm94LXlvdSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtdW5ib3gteW91bmFtZSB7XG4gIGZvbnQtc2l6ZTogMzhweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgdGV4dC13cmFwOiBiYWxhbmNlO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXVuYm94LXlvdWxhYmVsIHtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTg1KTtcbn1cblxuLy8gSm91dyB0ZWFtbmFhbSBzY2hpZXQgdWl0IGRlIGRvb3Mgb21ob29nIChiZXNsdWl0IDEyLCBcIm9wZW5rbmFsXCIpLlxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy11bmJveC1nbyAucnMtdW5ib3gteW91IHtcbiAgYW5pbWF0aW9uOiBycy11bmJveC1sYXVuY2ggMC42MnMgY3ViaWMtYmV6aWVyKDAuMTgsIDEuMzUsIDAuNCwgMSkgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgcnMtdW5ib3gtbGF1bmNoIHtcbiAgMCUgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAwcHgpIHNjYWxlKDAuMzUpOyB9XG4gIDYwJSB7IG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXVuYm94LWdsb3ZlcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMCAxIDE4MHB4OyAvLyBkZXNpZ25tYWF0IGFscyBiYXNpczsga3JpbXB0IGluIGVlbiBsYWFnIGZyYW1lXG4gIHdpZHRoOiBhdXRvO1xuICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICBtaW4taGVpZ2h0OiA5NnB4O1xuICBtYXJnaW46IDI2cHggMCAxMHB4O1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuMik7XG5cbiAgcWRuYXByby1sb3R0aWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICAtLXFsLXNpemU6IDEwMCU7IC8vIGhldCBjb21wb25lbnQgbWVldCB6aWNoemVsZiA0OHB4IHpvbmRlciBkZXplIG92ZXJyaWRlXG4gIH1cbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy11bmJveC0tbXVsdGkgLnJzLXVuYm94LWdsb3ZlcyB7XG4gIGZsZXgtYmFzaXM6IDE1MHB4O1xuICBtYXJnaW46IDE4cHggMCA0cHg7XG59XG5cbi8vIEJBTS1sYW5kaW5nIChLaW1zIGFubm90YXRpZTogZGV6ZWxmZGUga25hbCBhbHMgZGUgb3VkZSBWUy1oZXhhZ29uKS5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtdW5ib3gtZ2xvdmVzLnJzLXVuYm94LWJhbSB7XG4gIGFuaW1hdGlvbjogcnMtdW5ib3gtYmFtIDAuNXMgY3ViaWMtYmV6aWVyKDAuMiwgMS42LCAwLjM1LCAxKSBmb3J3YXJkcztcbn1cblxuQGtleWZyYW1lcyBycy11bmJveC1iYW0ge1xuICAwJSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoMC4yKSByb3RhdGUoLTE0ZGVnKTsgfVxuICA1NSUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEuMTYpIHJvdGF0ZSgzZGVnKTsgfVxuICAxMDAlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBub25lOyB9XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtdW5ib3gtc2hvY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAtMzAlO1xuICBib3JkZXI6IDVweCBzb2xpZCB2YXIoLS1jLXdoaXRlLTg1KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuMyk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXVuYm94LWJhbSAucnMtdW5ib3gtc2hvY2sge1xuICBhbmltYXRpb246IHJzLXVuYm94LXNob2NrIDAuNTVzIGVhc2Utb3V0IDAuMXMgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgcnMtdW5ib3gtc2hvY2sge1xuICAwJSB7IG9wYWNpdHk6IDAuOTsgdHJhbnNmb3JtOiBzY2FsZSgwLjM1KTsgYm9yZGVyLXdpZHRoOiA2cHg7IH1cbiAgMTAwJSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoMS4yNSk7IGJvcmRlci13aWR0aDogMXB4OyB9XG59XG5cbi8vIERlIHRlZ2Vuc3RhbmRlciAoMiB0ZWFtcyk6IHNjaHVpZnQgaW4gdmFuIHJlY2h0cy5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtdW5ib3gtb3BwIHtcbiAgbWFyZ2luLXRvcDogMjZweDtcbiAgZm9udC1zaXplOiAzOHB4O1xuICBmb250LXdlaWdodDogODAwO1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtdW5ib3gtb3BwLWdvIC5ycy11bmJveC1vcHAge1xuICBhbmltYXRpb246IHJzLXVuYm94LWZyb20tcmlnaHQgMC41cyBjdWJpYy1iZXppZXIoMC4yLCAwLjksIDAuMywgMS4xKSBmb3J3YXJkcztcbn1cblxuQGtleWZyYW1lcyBycy11bmJveC1mcm9tLXJpZ2h0IHtcbiAgMCUgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoOTBweCk7IH1cbiAgMTAwJSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxufVxuXG4vLyBEZSB0ZWdlbnN0YW5kZXJzICgzKyB0ZWFtcyk6IHN0YWdnZXJlZCBsaWpzdCArIFwiK04gdGVhbXNcIi5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtdW5ib3gtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTBweDtcbiAgbWFyZ2luLXRvcDogMThweDtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy11bmJveC1vcHBpdGVtIHtcbiAgZm9udC1zaXplOiAyM3B4O1xuICBmb250LXdlaWdodDogODAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNHB4KTtcblxuICAmLnJzLXVuYm94LW9wcGl0ZW0taW4ge1xuICAgIGFuaW1hdGlvbjogcnMtdW5ib3gtb3BwaXRlbS1pbiAwLjM4cyBjdWJpYy1iZXppZXIoMC4yLCAwLjksIDAuMywgMS4xNSkgZm9yd2FyZHM7XG4gIH1cblxuICAmLnJzLXVuYm94LW1vcmUge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJzLXVuYm94LW9wcGl0ZW0taW4ge1xuICAxMDAlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBub25lOyB9XG59XG5cbi8vIERlIGRlZWxuZW1lci10ZWxsZXI6IG9uZGVyaW4sIGJld3VzdCBkZWxheWVkIChiZXNsdWl0ICsgS2ltcyBleHRyYSB0aWtqZSkuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXVuYm94LWNvdW50IHtcbiAgbWFyZ2luLXRvcDogYXV0bztcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2U7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtdW5ib3gtY291bnQtaW4gLnJzLXVuYm94LWNvdW50IHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy11bmJveC1jb3VudG51bSB7XG4gIGZvbnQtc2l6ZTogNDhweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy11bmJveC1jb3VudGxhYmVsIHtcbiAgbWFyZ2luLXRvcDogNnB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTg1KTtcbn1cblxuLy8gRGUgQ1RBIHNjaHVpZnQgYWxzIGxhYXRzdGUgaW4uXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXVuYm94IC5ycy1jdGEge1xuICBtYXJnaW4tdG9wOiAyOHB4O1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjRweCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLCB0cmFuc2Zvcm0gMC40cyBjdWJpYy1iZXppZXIoMC4yLCAwLjksIDAuMywgMS4xKTtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy11bmJveC1jdGEtaW4gLnJzLWN0YSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8gUmVkdWNlZC1tb3Rpb24gZWluZHN0YW5kOiBhbGxlcyBzdGFhdCBlciwgbmlldHMgdmxpZWd0IChiZXNsdWl0IDQ3LzU3O1xuLy8gYWxsZWVuIGRlIHRlbGxlbmRlIHRlbGxlciBiZXdlZWd0IG5vZywgZGF0IHJlZ2VsdCBkZSBKUykuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXVuYm94LWRvbmUge1xuICAucnMtdW5ib3gteW91LFxuICAucnMtdW5ib3gtZ2xvdmVzLFxuICAucnMtdW5ib3gtb3BwLFxuICAucnMtdW5ib3gtb3BwaXRlbSxcbiAgLnJzLXVuYm94LWNvdW50LFxuICAucnMtY3RhIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERlIFNJTVBFTEUgb250aHVsdm9ybSAoU29sbyAvIFpvbmRlciBzY29yZSwgS2ltcyBmYXNlIDIgMTUuMDkuMjAyNik6XG4vLyBrb3AgKyDDqcOpbiBpY29vbiArIHN1YnJlZ2VsICgrIG9wdGlvbmVsZSB0ZWxsZXIpLiBFcmZ0IGFsbGUgdW5ib3gtXG4vLyBjaG9yZW9ncmFmaWU7IGFsbGVlbiBkZSBtYXRlbiBlbiBkZSBzdWJyZWdlbCB6aWpuIGVpZ2VuLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXVuYm94LS1zaW1wbGUgLnJzLXVuYm94LXlvdW5hbWUge1xuICBtYXgtd2lkdGg6IDMwMHB4O1xuICBmb250LXNpemU6IDM0cHg7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtdW5ib3gtLXNpbXBsZSAucnMtdW5ib3gtZ2xvdmVzIHtcbiAgZmxleC1iYXNpczogMTMwcHg7XG4gIG1pbi1oZWlnaHQ6IDgwcHg7XG4gIG1hcmdpbjogMzRweCAwIDZweDtcbn1cblxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy11bmJveC1yZXZlYWxzdWIge1xuICBtYXgtd2lkdGg6IDI4MHB4O1xuICBtYXJnaW4tdG9wOiAyMnB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTg1KTtcbiAgdGV4dC13cmFwOiBiYWxhbmNlO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTJweCk7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtdW5ib3gtc3ViLWluIC5ycy11bmJveC1yZXZlYWxzdWIge1xuICBhbmltYXRpb246IHJzLXVuYm94LW9wcGl0ZW0taW4gMC4zOHMgY3ViaWMtYmV6aWVyKDAuMiwgMC45LCAwLjMsIDEuMTUpIGZvcndhcmRzO1xufVxuXG4ucWRuYXByby1yZXZlYWwtc3RhZ2UgLnJzLXVuYm94LWRvbmUgLnJzLXVuYm94LXJldmVhbHN1YiB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8gS25vcC1pY29vbiAoc3RlciAvIGhhcnRzbGFnamUpIG5hYXN0IGRlIENUQS10ZWtzdC5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtY3RhIHFkbmFwcm8taWNvbiB7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG5cbi8vIFpvbmRlciB0ZWxsZXIgKFpvbmRlciBzY29yZSkgemFrdCBkZSBDVEEgemVsZiBuYWFyIGRlIG9uZGVya2FudCAtIG5vcm1hYWxcbi8vIGRvZXQgZGUgdGVsbGVyLW1hcmdlIGRhdCAoS2ltcyBtZWxkaW5nIDE1LjA5OiBcIlN0YXJ0IENhbXBhZ25lIHN0YWF0IGhlZWxcbi8vIGhvb2dcIikuIFNvbG8gKG3DqXQgdGVsbGVyKSBibGlqZnQgb25nZW1vZWlkLlxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy11bmJveC0tbm9jb3VudCAucnMtY3RhIHtcbiAgbWFyZ2luLXRvcDogYXV0bztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTSE9XIDQg4oCUIEVpbmRzY2hlcm0gWk9OREVSIFNDT1JFIChmaW5hbGUtbm9uZSkgKEtpbSAxNi4wOS4yMDI2KToga2xvcHBlbmQgaGFydCBpbiBkZVxuLy8gdGVhc2UsIGhhcnRqZXMta2Fub25uZW4gb3AgZGUgdGlrLCBvcHRlbGxlbmRlIHRlbGxlcnMsIGhhcnRqZXNyZWdlbi5cbi8vIEVyZnQgZGUgZmluYWxlLXNjaGlsIChycy1maW5hbGUvcnMtZnNvbG8pOyBhbGxlZW4gaGV0IGhhcnQgZW4gZGVcbi8vIHRlbGxlcnMgemlqbiBlaWdlbi5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBIZXQgaGFydCBpbiBkZSB0ZWFzZSBLTE9QVCAoZGUgYW5kZXJlIHRlYXNlcyBoZWJiZW4gZWVuIGxvdHRpZSBkaWUgemVsZlxuLy8gYmV3ZWVndDsgZGl0IGljb29uIHN0YWF0IHN0aWwsIGR1cyBkZSBoYXJ0c2xhZyB6aXQgaGllciBpbiBkZSBDU1MpLlxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlW3Nob3ctdHlwZT1cImZpbmFsZS1ub25lXCJdIC5ycy1jYXJkLS1maW5hbGUgLnJzLWNhcmQtaWNvbiB7XG4gIGFuaW1hdGlvbjogcnMtZm5vbmUtYmVhdCAxLjE1cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBycy1mbm9uZS1iZWF0IHtcbiAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDE0JSB7IHRyYW5zZm9ybTogc2NhbGUoMS4xMyk7IH1cbiAgMjglIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICA0MiUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMDgpOyB9XG4gIDU2JSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tcmV2ZWFsLXN0YWdlW3Nob3ctdHlwZT1cImZpbmFsZS1ub25lXCJdIC5ycy1jYXJkLS1maW5hbGUgLnJzLWNhcmQtaWNvbiB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG59XG5cbi8vIEluZHJ1ay12ZWVyIG9wIGhldCBIQVJUIChLaW0gMTcuMDk6IFwiZHJ1ayBoZXQgaGFydGplIG9vayBlY2h0IGluLCB6b2Fsc1xuLy8gZGUgZG9vcyBlbiBkZSBkcmFhaW1vbGVuXCIpLiBEZSBpbmRydWstZGVjbGFyYXRpZSBoaWVyYm92ZW4gZ2VsZHQgdm9vciBlbGtlXG4vLyB0ZWFzZSwgbWFhciBvcCBkaXQgaWNvb24gd29uIGhldCBrbG9wcGVuIGVydmFuOiBlZW4gTE9QRU5ERSBhbmltYXRpZVxuLy8gb3ZlcnNjaHJpamZ0IGVlbiBnZXdvbmUgdHJhbnNmb3JtLWRlY2xhcmF0aWUuIE9uZGVyIGplIGR1aW0gc3RhYXQgZGVcbi8vIGhhcnRzbGFnIGRhYXJvbSBldmVuIHN0aWw7IGJpaiBsb3NsYXRlbiBwYWt0IGhpaiB6aWpuIHJpdG1lIHdlZXIgb3AgdmFuYWZcbi8vIHNjYWxlKDEpIC0gcHJlY2llcyB3YWFyIGRlIGluZHJ1ay10cmFuc2l0aWUgaGVtIGFjaHRlcmxhYXQsIGR1cyBqZSB6aWV0XG4vLyBnZWVuIHNwcm9uZy5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZVtzaG93LXR5cGU9XCJmaW5hbGUtbm9uZVwiXSAucnMtY2FyZC0tZmluYWxlLnJzLXVuYm94LXByZXNzIC5ycy1jYXJkLWljb24ge1xuICBhbmltYXRpb246IG5vbmU7XG59XG5cbi8vIEdlZW4gXCJCZXJla2VuZW4uLi5cIi1mYXNlIG9wIGRpdCBzY2hlcm06IGRlIGtvcCBzdGFhdCBtZXRlZW4ga2xhYXIgZW5cbi8vIGtuYWx0IGFsbGVlbiBiaW5uZW4sIGR1cyBkZSBrb3B6b25lIGhvZWZ0IGdlZW4gd2lzc2VsaG9vZ3RlIHRlIGhvdWRlbi5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZm5vbmUgLnJzLWZpbi1oZWFkem9uZSB7XG4gIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5xZG5hcHJvLXJldmVhbC1zdGFnZSAucnMtZm5vbmUgLnJzLWZzb2xvLWJvZHkge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLy8gRGUgb3B0ZWxsZW5kZSB0ZWxsZXJzOiB6ZWxmZGUgdGVnZWwtdGFhbCBhbHMgcnMtc3RhdCwgbWFhciBtZXQgcnVpbXRlXG4vLyB2b29yIGVlbiBlY2h0IGdldGFsIChxZG5hcHJvLXNjb3JlLWNvdW50KSBpbiBwbGFhdHMgdmFuIGVlbiBrb3J0IGxhYmVsLlxuLnFkbmFwcm8tcmV2ZWFsLXN0YWdlIC5ycy1zdGF0cm93LS10ZWxsZXJzIHtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDEycHg7XG5cbiAgLnJzLXN0YXQge1xuICAgIG1pbi13aWR0aDogOTJweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gIH1cblxuICAvLyBxZG5hcHJvLXNjb3JlLWNvdW50IGtsZXVydCBlbiBtZWV0IHppam4gZWlnZW4gQklOTkVOLWVsZW1lbnQgKC5zYy1udW06XG4gIC8vIDU2cHgsIHdpdCB2b29yIGRlIGRvbmtlcmUgZmVlc3R6YWFsKS4gT3AgZGV6ZSBsaWNodGUgdGVnZWwgbW9ldCBkYXRcbiAgLy8gdGVydWcgbmFhciBkb25rZXJlIGlua3QgZW4gdGVnZWx0amVzZm9ybWFhdCAtIHZhbmRhYXIgZGUgcmVnZWwgb3BcbiAgLy8gLnNjLW51bSBlbiBuaWV0IG9wIGRlIGdhc3RoZWVyLCBhbmRlcnMgd2ludCBoZXQgY29tcG9uZW50LlxuICAucnMtc3RhdC12IC5zYy1udW0ge1xuICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICB9XG5cbiAgLnJzLXN0YXQtayB7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1yb3ctYnRuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBJY29uLW9ubHkgdG9nZ2xlIGJ1dHRvbiBmb3IgYWN0aXZpdHktcm93IGNvbHVtbnMuXG4vLyAgTk9UIHRoZSB0b29sYmFyIGJ1dHRvbiAodGhhdCBpcyBxZG5hcHJvLWFjdGlvbi1idG4gaW4gdG9vbGJhci1hY3Rpb24tYnRuLykuXG4vLyAgVGhpcyBvbmUgbGl2ZXMgb24gZ2xhc3MgY2FyZHM6IHRyYW5zbHVjZW50IGJhY2tncm91bmRzLCBtdXRlZCBpZGxlIGljb24uXG4vL1xuLy8gIFRva2VucyB1c2VkOlxuLy8gICAgcmdiYSgwLCAwLCAwLCAwLjA0KSAgICAgICAgICBpZGxlIGJnIChnbGFzcyBjYXJkIHN1cmZhY2UgdGludClcbi8vICAgIHJnYmEoMCwgMCwgMCwgMC4wOCkgICAgICAgICAgaG92ZXIgYmdcbi8vICAgIHJnYmEoMCwgMCwgMCwgMC4xMikgICAgICAgICAgcHJlc3NlZCBiZ1xuLy8gICAgIzZiNzI4MCAgICAgICAgICAgICAgICAgICAgICBpZGxlIGljb24gY29sb3IgKG11dGVkIGdyZXkpXG4vLyAgICAjMGIwYjBkICAgIFRleHQvT24tQm9keSAgICAgIGhvdmVyIGljb24gY29sb3Jcbi8vICAgIHJnYmEoNzAsIDgyLCAyNDMsIDAuMTIpICAgICAgYWN0aXZlIGJnICAgKFFETkEgSGlnaGxpZ2h0IEAgMTIlKVxuLy8gICAgcmdiYSg3MCwgODIsIDI0MywgMC4xOCkgICAgICBhY3RpdmUgaG92ZXIgYmdcbi8vICAgICM0MDQ5OWEgICAgSWNvbi9QcmltYXJ5LXB1cnBsZSAgYWN0aXZlIGljb24gY29sb3Jcbi8vICAgICMzMzNhN2IgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlIGhvdmVyIGljb24gY29sb3Jcbi8vICAgIC0tYy1mb2N1cy1yaW5nIC8gLS1jLWZvY3VzLWdsb3cgIGluaGVyaXRlZCBmcm9tIGFjdGl2aXR5LXJvdyBob3N0XG4vL1xuLy8gIFNpemVzOlxuLy8gICAgc2l6ZT1cIjM2XCIgIDM2eDM2cHgsIGljb24gMjBweCAgKGFjdGl2aXR5LXJvdyBkZWZhdWx0KVxuLy8gICAgc2l6ZT1cIjI4XCIgIDI4eDI4cHgsIGljb24gMTZweCAgKGNvbXBhY3QgLyBtb2RhbCB0b29sYmFyKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5xZG5hcHJvLXJvdy1idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCk7ICAgICAgICAgICAgICAgICAgICAgICAvLyBtdXRlZCBncmV5IOKAlCBpZGxlIGljb25cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zIGVhc2UsIGNvbG9yIDEyMG1zIGVhc2U7XG5cbiAgICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4gICAgLy8gSWNvbiBjaGlsZCAoaW5saW5lIFNWRyBvciBxZG5hcHJvLWljb24pIOKAlCBpbmhlcml0cyBjb2xvciBmcm9tIGhvc3RcbiAgICBzdmcsXG4gICAgcWRuYXByby1pY29uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICAgIHN2ZyB7IGZpbGw6IGN1cnJlbnRDb2xvcjsgfVxuXG4gICAgLy8gLS0tLSBTaXplOiAzNngzNiAoZGVmYXVsdCkgLS0tLVxuICAgICYucm93LWJ0bi1zaXplLTM2IHtcbiAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgc3ZnLFxuICAgICAgICBxZG5hcHJvLWljb24geyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyB9XG4gICAgfVxuXG4gICAgLy8gLS0tLSBTaXplOiA0MHg0MCAtLS0tXG4gICAgLy8gVm9vciBlZW4gd2Vya2JhbGsgd2FhcmluIG9vayBxZG5hcHJvLWJ1dHRvbiBzaXplPVwic21hbGxcIiBzdGFhdDogZGllIGlzIDQweDQwXG4gICAgLy8gKGJ1dHRvbi1zaXplLXNtYWxsLmJ1dHRvbi1pY29uLW9ubHkpLCBkdXMgMzYgc3RvbmQgZXIgbmV0IHRlIGtsZWluIG5hYXN0LiBIZXRcbiAgICAvLyBpY29vbiBibGlqZnQgMjBweCwgem9hbHMgYmlqIDM2LCB6b2RhdCBoZXQgZGV6ZWxmZGUga25vcCBibGlqZnQgYWxzIG9wIGRlXG4gICAgLy8gdGFrZW5saWpzdHJpai4gW0tpbSAwMy4wOC4yMDI2LCBicmllZmluZy1rbm9wIGluIGhldCB2cmFhZy1tb2RhbF1cbiAgICAmLnJvdy1idG4tc2l6ZS00MCB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIHN2ZyxcbiAgICAgICAgcWRuYXByby1pY29uIHsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgfVxuICAgIH1cblxuICAgIC8vIC0tLS0gU2l6ZTogMjh4MjggLS0tLVxuICAgICYucm93LWJ0bi1zaXplLTI4IHtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBzdmcsXG4gICAgICAgIHFkbmFwcm8taWNvbiB7IHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7IH1cbiAgICB9XG5cbiAgICAvLyAtLS0tIEhvdmVyIC0tLS1cbiAgICAmOmhvdmVyOm5vdCgucm93LWJ0bi1kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLSBQcmVzc2VkIC0tLS1cbiAgICAmOmFjdGl2ZTpub3QoLnJvdy1idG4tZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIEZvY3VzIC0tLS1cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYy1mb2N1cy1yaW5nLCAjNDA0OTlhKSxcbiAgICAgICAgICAgICAgICAgICAgMCAwIDAgNXB4IHZhcigtLWMtZm9jdXMtZ2xvdywgcmdiYSg3MCwgODIsIDI0MywgMC4yMCkpO1xuICAgIH1cblxuICAgIC8vIC0tLS0gQWN0aXZlIChvbi1zdGF0ZSwgZS5nLiB1bml0IGxpc3QgbGlua2VkKSAtLS0tXG4gICAgJi5yb3ctYnRuLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMTIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICB9XG4gICAgJi5yb3ctYnRuLWFjdGl2ZTpob3Zlcjpub3QoLnJvdy1idG4tZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4xOCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS02MDApO1xuICAgIH1cblxuICAgIC8vIC0tLS0gQWN0aXZlIHZhcmlhbnQ6IGNvbmNlcHQgKHVucHVibGlzaGVkIGRyYWZ0KSDigJQgYW1iZXIvb3JhbmdlIC0tLS1cbiAgICAmLnJvdy1idG4tYWN0aXZlLnJvdy1idG4tdmFyaWFudC1jb25jZXB0IHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE1OCwgMTEsIDAuMTYpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy13YXJuLWFtYmVyLTYwMCk7XG4gICAgfVxuICAgICYucm93LWJ0bi1hY3RpdmUucm93LWJ0bi12YXJpYW50LWNvbmNlcHQ6aG92ZXI6bm90KC5yb3ctYnRuLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ1LCAxNTgsIDExLCAwLjI0KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtd2Fybi1hbWJlci02MDApO1xuICAgIH1cblxuICAgIC8vIC0tLS0gRGlzYWJsZWQgLS0tLVxuICAgICYucm93LWJ0bi1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNDA7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgRGFyayBtb2RlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1yb3ctYnRuIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xuICAgIGNvbG9yOiAjOWNhM2FmO1xuXG4gICAgJjpob3Zlcjpub3QoLnJvdy1idG4tZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEwKTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgJjphY3RpdmU6bm90KC5yb3ctYnRuLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCk7XG4gICAgfVxuXG4gICAgJi5yb3ctYnRuLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjApO1xuICAgICAgICBjb2xvcjogI2E1YWNmZjtcbiAgICB9XG4gICAgJi5yb3ctYnRuLWFjdGl2ZTpob3Zlcjpub3QoLnJvdy1idG4tZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3MCwgODIsIDI0MywgMC4zMCk7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIH1cblxuICAgICYucm93LWJ0bi1hY3RpdmUucm93LWJ0bi12YXJpYW50LWNvbmNlcHQge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMTU4LCAxMSwgMC4yMik7XG4gICAgICAgIGNvbG9yOiAjZmJiZjI0O1xuICAgIH1cbiAgICAmLnJvdy1idG4tYWN0aXZlLnJvdy1idG4tdmFyaWFudC1jb25jZXB0OmhvdmVyOm5vdCgucm93LWJ0bi1kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMTU4LCAxMSwgMC4zMik7XG4gICAgICAgIGNvbG9yOiAjZmNkMzRkO1xuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tc2VnbWVudCAgKyAgcWRuYXByby1zZWdtZW50LWl0ZW1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFFETkEgdG9rZW5zIHVzZWQ6XG4vLyAgICBTdXJmYWNlL0RlZmF1bHQgICAgICAgICAgICAgICNmZmZmZmYgICBzbGlkaW5nIHBpbGwgYmFja2dyb3VuZFxuLy8gICAgU3VyZmFjZS9TZWNvbmRhcnkgICAgICAgICAgICAjZjBmMWYyICAgdHJhY2sgYmFja2dyb3VuZFxuLy8gICAgVGV4dC9Pbi1Cb2R5ICAgICAgICAgICAgICAgICAjMGIwYjBkICAgYWN0aXZlIGl0ZW0gbGFiZWxcbi8vICAgIFRleHQvU2Vjb25kYXJ5ICAgICAgICAgICAgICAgcmdiYSgxMSwxMSwxMywwLjU1KSAgaW5hY3RpdmUgbGFiZWxcbi8vICAgIFRleHQvRGlzYWJsZWQgICAgICAgICAgICAgICAgIzg5OGU5OSAgIGRpc2FibGVkIGxhYmVsXG4vLyAgICBCb3JkZXIvQWN0aW9uLVB1cnBsZS1PdXRsaW5lZCAjNDA0OTlhICBmb2N1cyByaW5nIGlubmVyXG4vLyAgICBQdXJwbGUtSGlnaGxpZ2h0IEAgMjUlICAgICAgIHJnYmEoNzAsODIsMjQzLDAuMjUpICBmb2N1cyBnbG93XG4vLyAgICBTaGFkb3cvRWxldmF0aW9uLTEgICAgICAgICAgIDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMTIpLCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjA4KVxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlsbCBzaGFkb3dcbi8vXG4vLyAgRGFyayBtb2RlOlxuLy8gICAgU3VyZmFjZS9EYXJrL1NlY29uZGFyeSAgICAgICAjMmEyZDM1ICAgdHJhY2sgYmFja2dyb3VuZFxuLy8gICAgU3VyZmFjZS9EYXJrL1BpbGwgICAgICAgICAgICAjMWUyMDI4ICAgYWN0aXZlIHBpbGxcbi8vICAgIFRleHQvRGFyay9QcmltYXJ5ICAgICAgICAgICAgI2YwZjFmMiAgIGFjdGl2ZSBsYWJlbFxuLy8gICAgVGV4dC9EYXJrL1NlY29uZGFyeSAgICAgICAgICByZ2JhKDI0MCwyNDEsMjQyLDAuNTApICBpbmFjdGl2ZSBsYWJlbFxuLy8gICAgVGV4dC9EYXJrL0Rpc2FibGVkICAgICAgICAgICAjNTU1ODVmICAgZGlzYWJsZWQgbGFiZWxcbi8vXG4vLyAgQW5pbWF0aW9uOlxuLy8gICAgQSBzaW5nbGUgYWJzb2x1dGVseS1wb3NpdGlvbmVkIC5zZWdtZW50LXRyYWNrLXBpbGwgc2xpZGVzIGJldHdlZW5cbi8vICAgIGl0ZW1zIHVzaW5nIENTUyB0cmFuc2Zvcm0gKyB3aWR0aCB0cmFuc2l0aW9ucyBvbiB0aGUgR1BVIGNvbXBvc2l0b3Jcbi8vICAgIGxheWVyLiBJdGVtcyB0aGVtc2VsdmVzIGhhdmUgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMg4oCUIHRoZSBwaWxsXG4vLyAgICBwcm92aWRlcyB0aGUgYWN0aXZlIHZpc3VhbCBzdGF0ZS5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyAtLS0tIHNpemluZyB0b2tlbnMgLS0tLVxuJHNlZ21lbnQtdHJhY2stcmFkaXVzLWRlZmF1bHQgOiAxMHB4O1xuJHNlZ21lbnQtdHJhY2stcmFkaXVzLXNtYWxsICAgOiA4cHg7XG4kc2VnbWVudC1waWxsLXJhZGl1cy1kZWZhdWx0ICA6IDhweDtcbiRzZWdtZW50LXBpbGwtcmFkaXVzLXNtYWxsICAgIDogNnB4O1xuJHNlZ21lbnQtdHJhY2stcGFkZGluZyAgICAgICAgOiAzcHg7XG4kc2VnbWVudC1pdGVtLWhlaWdodC1kZWZhdWx0ICA6IDM2cHg7XG4kc2VnbWVudC1pdGVtLWhlaWdodC1zbWFsbCAgICA6IDI4cHg7XG4kc2VnbWVudC1pdGVtLW1pbi13aWR0aCAgICAgICA6IDY0cHg7XG4kc2VnbWVudC1pdGVtLXB4LWRlZmF1bHQgICAgICA6IDE0cHg7XG4kc2VnbWVudC1pdGVtLXB4LXNtYWxsICAgICAgICA6IDEwcHg7XG4kc2VnbWVudC1nYXAgICAgICAgICAgICAgICAgICA6IDhweDtcblxuLy8gLS0tLSBhbmltYXRpb24gdG9rZW5zIC0tLS1cbiRzZWdtZW50LWVhc2UgICAgICAgICAgICAgICAgIDogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiRzZWdtZW50LWR1cmF0aW9uICAgICAgICAgICAgIDogMjgwbXM7XG5cbi8vIC0tLS0gY29sb3IgdG9rZW5zIC0tLS1cbiRzZWdtZW50LXRyYWNrLWJnICAgICAgICAgICAgIDogI2YwZjFmMjtcbiRzZWdtZW50LXRyYWNrLWJnLWRhcmsgICAgICAgIDogIzJhMmQzNTtcbiRzZWdtZW50LXBpbGwtYmcgICAgICAgICAgICAgIDogI2ZmZmZmZjtcbiRzZWdtZW50LXBpbGwtYmctZGFyayAgICAgICAgIDogIzFlMjAyODtcbiRzZWdtZW50LXBpbGwtc2hhZG93ICAgICAgICAgIDogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuJHNlZ21lbnQtbGFiZWwtYWN0aXZlICAgICAgICAgOiAjMGIwYjBkO1xuJHNlZ21lbnQtbGFiZWwtYWN0aXZlLWRhcmsgICAgOiAjZjBmMWYyO1xuJHNlZ21lbnQtbGFiZWwtaW5hY3RpdmUgICAgICAgOiByZ2JhKDExLCAxMSwgMTMsIDAuNTUpO1xuJHNlZ21lbnQtbGFiZWwtaW5hY3RpdmUtZGFyayAgOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuNTApO1xuJHNlZ21lbnQtbGFiZWwtZGlzYWJsZWQgICAgICAgOiAjODk4ZTk5O1xuJHNlZ21lbnQtbGFiZWwtZGlzYWJsZWQtZGFyayAgOiAjNTU1ODVmO1xuJHNlZ21lbnQtaG92ZXItYmcgICAgICAgICAgICAgOiByZ2JhKDExLCAxMSwgMTMsIDAuMDYpO1xuJHNlZ21lbnQtaG92ZXItYmctZGFyayAgICAgICAgOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuMDgpO1xuJHNlZ21lbnQtcHJlc3NlZC1iZyAgICAgICAgICAgOiByZ2JhKDExLCAxMSwgMTMsIDAuMTApO1xuJHNlZ21lbnQtcHJlc3NlZC1iZy1kYXJrICAgICAgOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuMTIpO1xuJHNlZ21lbnQtZm9jdXMtcmluZyAgICAgICAgICAgOiAjNDA0OTlhO1xuJHNlZ21lbnQtZm9jdXMtZ2xvdyAgICAgICAgICAgOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgVHJhY2sgIChxZG5hcHJvLXNlZ21lbnQgaG9zdClcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucWRuYXByby1zZWdtZW50IHtcbiAgICBkaXNwbGF5ICAgICAgIDogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXMgICA6IGNlbnRlcjtcbiAgICBnYXAgICAgICAgICAgIDogJHNlZ21lbnQtZ2FwO1xuICAgIHBhZGRpbmcgICAgICAgOiAkc2VnbWVudC10cmFjay1wYWRkaW5nO1xuICAgIGJhY2tncm91bmQgICAgOiAkc2VnbWVudC10cmFjay1iZztcbiAgICBib3JkZXItcmFkaXVzIDogJHNlZ21lbnQtdHJhY2stcmFkaXVzLWRlZmF1bHQ7XG4gICAgYm94LXNpemluZyAgICA6IGJvcmRlci1ib3g7XG4gICAgLy8gUmVxdWlyZWQgZm9yIHRoZSBhYnNvbHV0ZWx5LXBvc2l0aW9uZWQgc2xpZGluZyBwaWxsLlxuICAgIHBvc2l0aW9uICAgICAgOiByZWxhdGl2ZTtcblxuICAgICYuc2VnbWVudC1zaXplLXNtYWxsIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNlZ21lbnQtdHJhY2stcmFkaXVzLXNtYWxsO1xuICAgIH1cblxuICAgICYuc2VnbWVudC1kaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQgICAgOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuNzApO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICBbZGF0YS10aGVtZT1cImRhcmtcIl0gJixcbiAgICAudGhlbWUtZGFyayAmIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHNlZ21lbnQtdHJhY2stYmctZGFyaztcblxuICAgICAgICAmLnNlZ21lbnQtZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg0MiwgNDUsIDUzLCAwLjYwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgU2xpZGluZyBwaWxsICAoLnNlZ21lbnQtdHJhY2stcGlsbClcbi8vICBDcmVhdGVkIGJ5IEpTLCBwb3NpdGlvbmVkIHZpYSB0cmFuc2Zvcm0gKyB3aWR0aC5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uc2VnbWVudC10cmFjay1waWxsIHtcbiAgICBwb3NpdGlvbiAgICAgIDogYWJzb2x1dGU7XG4gICAgdG9wICAgICAgICAgICA6ICRzZWdtZW50LXRyYWNrLXBhZGRpbmc7XG4gICAgbGVmdCAgICAgICAgICA6IDA7XG4gICAgaGVpZ2h0ICAgICAgICA6IGNhbGMoMTAwJSAtICN7JHNlZ21lbnQtdHJhY2stcGFkZGluZyAqIDJ9KTtcbiAgICB3aWR0aCAgICAgICAgIDogMDsgICAgICAgICAgIC8vIHNldCBieSBKUyBvbiBpbml0XG4gICAgdHJhbnNmb3JtICAgICA6IHRyYW5zbGF0ZVgoMCk7IC8vIHNldCBieSBKU1xuICAgIGJvcmRlci1yYWRpdXMgOiAkc2VnbWVudC1waWxsLXJhZGl1cy1kZWZhdWx0O1xuICAgIGJhY2tncm91bmQgICAgOiAkc2VnbWVudC1waWxsLWJnO1xuICAgIGJveC1zaGFkb3cgICAgOiAkc2VnbWVudC1waWxsLXNoYWRvdztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4ICAgICAgIDogMDtcbiAgICAvLyBTbW9vdGggc2xpZGUgYmV0d2VlbiB0YWJzXG4gICAgdHJhbnNpdGlvbiAgICA6XG4gICAgICAgIHRyYW5zZm9ybSAgJHNlZ21lbnQtZHVyYXRpb24gJHNlZ21lbnQtZWFzZSxcbiAgICAgICAgd2lkdGggICAgICAkc2VnbWVudC1kdXJhdGlvbiAkc2VnbWVudC1lYXNlO1xuXG4gICAgLnNlZ21lbnQtc2l6ZS1zbWFsbCAmIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNlZ21lbnQtcGlsbC1yYWRpdXMtc21hbGw7XG4gICAgfVxuXG4gICAgW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXNlZ21lbnQgJixcbiAgICAudGhlbWUtZGFyayAucWRuYXByby1zZWdtZW50ICYge1xuICAgICAgICBiYWNrZ3JvdW5kIDogJHNlZ21lbnQtcGlsbC1iZy1kYXJrO1xuICAgICAgICBib3gtc2hhZG93IDpcbiAgICAgICAgICAgIDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMzApLFxuICAgICAgICAgICAgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yMCk7XG4gICAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBJdGVtICAocWRuYXByby1zZWdtZW50LWl0ZW0pXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnFkbmFwcm8tc2VnbWVudC1pdGVtIHtcbiAgICAvLyBMYXlvdXRcbiAgICBkaXNwbGF5ICAgICAgICA6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zICAgIDogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcCAgICAgICAgICAgIDogNnB4O1xuICAgIG1pbi13aWR0aCAgICAgIDogJHNlZ21lbnQtaXRlbS1taW4td2lkdGg7XG4gICAgaGVpZ2h0ICAgICAgICAgOiAkc2VnbWVudC1pdGVtLWhlaWdodC1kZWZhdWx0O1xuICAgIHBhZGRpbmcgICAgICAgIDogMCAkc2VnbWVudC1pdGVtLXB4LWRlZmF1bHQ7XG4gICAgYm94LXNpemluZyAgICAgOiBib3JkZXItYm94O1xuXG4gICAgLy8gU3RhY2sgYWJvdmUgdGhlIHNsaWRpbmcgcGlsbFxuICAgIHBvc2l0aW9uICAgICAgIDogcmVsYXRpdmU7XG4gICAgei1pbmRleCAgICAgICAgOiAxO1xuXG4gICAgLy8gU2hhcGUg4oCUIGRlZmF1bHQgc2l6ZVxuICAgIGJvcmRlci1yYWRpdXMgIDogJHNlZ21lbnQtcGlsbC1yYWRpdXMtZGVmYXVsdDtcblxuICAgIC8vIFR5cG9ncmFwaHlcbiAgICBmb250LWZhbWlseSAgICA6IGluaGVyaXQ7XG4gICAgZm9udC1zaXplICAgICAgOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0ICAgIDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0ICAgIDogMTtcbiAgICB3aGl0ZS1zcGFjZSAgICA6IG5vd3JhcDtcbiAgICBjb2xvciAgICAgICAgICA6ICRzZWdtZW50LWxhYmVsLWluYWN0aXZlO1xuXG4gICAgLy8gSW50ZXJhY3Rpb25cbiAgICBjdXJzb3IgICAgICAgICA6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3QgICAgOiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgb3V0bGluZSAgICAgICAgOiBub25lO1xuICAgIGJvcmRlciAgICAgICAgIDogbm9uZTtcbiAgICBiYWNrZ3JvdW5kICAgICA6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb24gICAgIDpcbiAgICAgICAgY29sb3IgICAgICAyMDBtcyBlYXNlLFxuICAgICAgICBiYWNrZ3JvdW5kIDE1MG1zIGVhc2UsXG4gICAgICAgIGJveC1zaGFkb3cgMTUwbXMgZWFzZTtcblxuICAgIC8vIEljb24gaW5zaWRlIGl0ZW1cbiAgICAuc2VnbWVudC1pdGVtLWljb24ge1xuICAgICAgICBkaXNwbGF5ICAgIDogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIHdpZHRoICAgICAgOiAxNnB4O1xuICAgICAgICBoZWlnaHQgICAgIDogMTZweDtcbiAgICAgICAgY29sb3IgICAgICA6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgLy8gQm9sZC1yZXNlcnZlOiBpbnZpc2libGUgOjphZnRlciB3aXRoIHRoZSBzYW1lIHRleHQgYXQgYm9sZCB3ZWlnaHRcbiAgICAvLyBwcmV2ZW50cyB0aGUgcGlsbCBmcm9tIHJlc2l6aW5nIHdoZW4gdGhlIGFjdGl2ZSB0YWIncyBmb250LXdlaWdodFxuICAgIC8vIGp1bXBzIGZyb20gNTAwIHRvIDYwMC5cbiAgICAuc2VnbWVudC1pdGVtLWxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQgICAgICAgOiBhdHRyKGRhdGEtdGV4dCk7XG4gICAgICAgICAgICBkaXNwbGF5ICAgICAgIDogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQgICAgICAgIDogMDtcbiAgICAgICAgICAgIG92ZXJmbG93ICAgICAgOiBoaWRkZW47XG4gICAgICAgICAgICB2aXNpYmlsaXR5ICAgIDogaGlkZGVuO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQgICA6IDYwMDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tLSBIb3ZlciAoaW5hY3RpdmUgb25seSkgLS0tLVxuICAgICY6bm90KC5zZWdtZW50LWl0ZW0tYWN0aXZlKTpub3QoLnNlZ21lbnQtaXRlbS1kaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICBjb2xvciAgICAgOiByZ2JhKDExLCAxMSwgMTMsIDAuNzUpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2VnbWVudC1ob3Zlci1iZztcbiAgICB9XG5cbiAgICAvLyAtLS0tIFByZXNzZWQgLS0tLVxuICAgICY6bm90KC5zZWdtZW50LWl0ZW0tYWN0aXZlKTpub3QoLnNlZ21lbnQtaXRlbS1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHNlZ21lbnQtcHJlc3NlZC1iZztcbiAgICAgICAgY29sb3IgICAgIDogcmdiYSgxMSwgMTEsIDEzLCAwLjg1KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIEZvY3VzLXZpc2libGUgLS0tLVxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICAwIDAgMCAycHggJHNlZ21lbnQtZm9jdXMtcmluZyxcbiAgICAgICAgICAgIDAgMCAwIDRweCAkc2VnbWVudC1mb2N1cy1nbG93O1xuICAgIH1cblxuICAgIC8vIC0tLS0gQWN0aXZlIChzZWxlY3RlZCkgLS0tLVxuICAgIC8vIEJhY2tncm91bmQgYW5kIHNoYWRvdyBjb21lIGZyb20gLnNlZ21lbnQtdHJhY2stcGlsbCDigJQgbm90IGhlcmUuXG4gICAgLy8gT25seSB0ZXh0IGNvbG9yIGFuZCB3ZWlnaHQgY2hhbmdlIG9uIHRoZSBpdGVtIGl0c2VsZi5cbiAgICAmLnNlZ21lbnQtaXRlbS1hY3RpdmUge1xuICAgICAgICBjb2xvciAgICAgIDogJHNlZ21lbnQtbGFiZWwtYWN0aXZlO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjdXJzb3IgICAgIDogZGVmYXVsdDtcblxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgICAgICAwIDAgMCAycHggJHNlZ21lbnQtZm9jdXMtcmluZyxcbiAgICAgICAgICAgICAgICAwIDAgMCA0cHggJHNlZ21lbnQtZm9jdXMtZ2xvdztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0gRGlzYWJsZWQgLS0tLVxuICAgICYuc2VnbWVudC1pdGVtLWRpc2FibGVkIHtcbiAgICAgICAgY29sb3IgICAgICAgICA6ICRzZWdtZW50LWxhYmVsLWRpc2FibGVkO1xuICAgICAgICBjdXJzb3IgICAgICAgIDogbm90LWFsbG93ZWQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBvcGFjaXR5ICAgICAgIDogMC43O1xuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vICBJY29uLW9ubHkgIChhbiBpdGVtIHdpdGggYW4gaWNvbiBhbmQgbm8gd29yZClcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyAgVGhlIGNsYXNzIGlzIHNldCBieSBxZG5hLXNlZ21lbnQuanMgd2hlbiByZW5kZXIoKSBmaW5kcyBhbiBpY29uIGFuZCBhblxuICAgIC8vICBlbXB0eSBsYWJlbC4gU3F1YXJlIGluc3RlYWQgb2YgNjRweCB3aWRlLCBzbyB0d28gb2YgdGhlbSByZWFkIGFzIG9uZVxuICAgIC8vICBjb21wYWN0IGNvbnRyb2wuIFRoZSBlbXB0eSBsYWJlbCBzcGFuIGtlZXBzIGl0cyBwbGFjZSBpbiB0aGUgZmxleCByb3dcbiAgICAvLyAgYnV0IG11c3Qgbm90IGFkZCB3aWR0aC4gW0tpbSAwOC4wOC4yMDI2IOKAlCBsaXN0L2dyaWQgc3dpdGNoIGluIHRoZSB0YWJsZV1cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAgICYuc2VnbWVudC1pdGVtLWljb24tb25seSB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgd2lkdGggICAgOiAkc2VnbWVudC1pdGVtLWhlaWdodC1kZWZhdWx0O1xuICAgICAgICBwYWRkaW5nICA6IDA7XG4gICAgICAgIGdhcCAgICAgIDogMDtcblxuICAgICAgICAuc2VnbWVudC1pdGVtLWxhYmVsIHsgZGlzcGxheTogbm9uZTsgfVxuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vICBTaXplOiBzbnVnIOKAlCAzMnB4XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gIFNhbWUgbnVtYmVyIGFzIHFkbmFwcm8tYnV0dG9uJ3MgYHNudWdgLCBzbyBhIHN3aXRjaCBhbmQgdGhlIGJ1dHRvbnMgYmVzaWRlXG4gICAgLy8gIGl0IGluIG9uZSB0b29sYmFyIGxpbmUgdXAuIEFkZGVkIDA5LjA4LjIwMjYgZm9yIHRoZSB0YWJsZSBzdHJpcDsgYWRkaXRpdmUsXG4gICAgLy8gIG5vdGhpbmcgdGhhdCBkb2VzIG5vdCBhc2sgZm9yIGl0IGNoYW5nZXMuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICAuc2VnbWVudC1zaXplLXNudWcgJiB7XG4gICAgICAgIGhlaWdodCAgICAgICA6IDMycHg7XG4gICAgICAgIHBhZGRpbmcgICAgICA6IDAgMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBmb250LXNpemUgICAgOiAxMnB4O1xuICAgICAgICBnYXAgICAgICAgICAgOiA0cHg7XG5cbiAgICAgICAgLnNlZ21lbnQtaXRlbS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoIDogMTZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuc2VnbWVudC1pdGVtLWljb24tb25seSB7XG4gICAgICAgICAgICB3aWR0aCAgOiAzMnB4O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vICBTaXplOiBzbWFsbFxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gICAgLnNlZ21lbnQtc2l6ZS1zbWFsbCAmIHtcbiAgICAgICAgaGVpZ2h0ICAgICAgIDogJHNlZ21lbnQtaXRlbS1oZWlnaHQtc21hbGw7XG4gICAgICAgIHBhZGRpbmcgICAgICA6IDAgJHNlZ21lbnQtaXRlbS1weC1zbWFsbDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNlZ21lbnQtcGlsbC1yYWRpdXMtc21hbGw7XG4gICAgICAgIGZvbnQtc2l6ZSAgICA6IDEycHg7XG4gICAgICAgIGdhcCAgICAgICAgICA6IDRweDtcblxuICAgICAgICAuc2VnbWVudC1pdGVtLWljb24ge1xuICAgICAgICAgICAgd2lkdGggOiAxNHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5zZWdtZW50LWl0ZW0taWNvbi1vbmx5IHtcbiAgICAgICAgICAgIHdpZHRoICA6ICRzZWdtZW50LWl0ZW0taGVpZ2h0LXNtYWxsO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vICBEYXJrIG1vZGVcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAgIFtkYXRhLXRoZW1lPVwiZGFya1wiXSAmLFxuICAgIC50aGVtZS1kYXJrICYge1xuICAgICAgICBjb2xvcjogJHNlZ21lbnQtbGFiZWwtaW5hY3RpdmUtZGFyaztcblxuICAgICAgICAmOm5vdCguc2VnbWVudC1pdGVtLWFjdGl2ZSk6bm90KC5zZWdtZW50LWl0ZW0tZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yICAgICA6IHJnYmEoMjQwLCAyNDEsIDI0MiwgMC43NSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2VnbWVudC1ob3Zlci1iZy1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLnNlZ21lbnQtaXRlbS1hY3RpdmUpOm5vdCguc2VnbWVudC1pdGVtLWRpc2FibGVkKTphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNlZ21lbnQtcHJlc3NlZC1iZy1kYXJrO1xuICAgICAgICAgICAgY29sb3IgICAgIDogcmdiYSgyNDAsIDI0MSwgMjQyLCAwLjkwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuc2VnbWVudC1pdGVtLWFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNlZ21lbnQtbGFiZWwtYWN0aXZlLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLnNlZ21lbnQtaXRlbS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvciAgOiAkc2VnbWVudC1sYWJlbC1kaXNhYmxlZC1kYXJrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBWYXJpYW50OiBzbGlkaW5nLXBpbGxzICAodmFyaWFudD1cInNsaWRpbmctcGlsbHNcIilcbi8vICBMaWdodGVyIGxvb2sg4oCUIHRyYW5zcGFyZW50IHRyYWNrLCBhIHRpbnRlZCAobGF2ZW5kZXIpIHNsaWRpbmcgcGlsbCB3aXRoXG4vLyAgZnVsbHktcm91bmRlZCBpdGVtcyBhbmQgYSBwdXJwbGUgYWN0aXZlIGxhYmVsLiBUaGUgZGVmYXVsdCBzZWdtZW50IGlzIGFcbi8vICB3aGl0ZSBwaWxsIG9uIGEgZ3JleSB0cmFjazsgdGhpcyBpcyB0aGUgc29mdGVyIFwicGlsbFwiIGxvb2sgdXNlZCBlLmcuIGJ5IHRoZVxuLy8gIHRyYW5zbGF0aW9uIHBhbmVsIGxhbmd1YWdlIHBpY2tlci4gW0tpbSAyMDI2LTA2LTE2XVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ucWRuYXByby1zZWdtZW50LnNlZ21lbnQtdmFyaWFudC1zbGlkaW5nLXBpbGxzIHtcbiAgICBiYWNrZ3JvdW5kICAgIDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZyAgICAgICA6IDA7XG4gICAgZ2FwICAgICAgICAgICA6IDRweDtcbiAgICBib3JkZXItcmFkaXVzIDogMDtcblxuICAgIC8vIFBpbGwgY292ZXJzIHRoZSBmdWxsIGl0ZW0gaGVpZ2h0IChubyAzcHggaW5zZXQpLCBsaWdodCBsYXZlbmRlciBmaWxsLlxuICAgIC5zZWdtZW50LXRyYWNrLXBpbGwge1xuICAgICAgICB0b3AgICAgICAgICAgOiAwO1xuICAgICAgICBoZWlnaHQgICAgICAgOiAxMDAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kICAgOiB2YXIoLS1jLXB1cnBsZS01MCk7XG4gICAgICAgIGJveC1zaGFkb3cgICA6IG5vbmU7XG4gICAgfVxuXG4gICAgLnFkbmFwcm8tc2VnbWVudC1pdGVtIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcblxuICAgICAgICAvLyBSZXN0aW5nIGluYWN0aXZlIHN0YXRlIOKAlCByZWFkYWJsZSBwdXJwbGUsIHNhbWUgdG9uZSBhcyB0aGVcbiAgICAgICAgLy8gaG92ZXIvcHJlc3NlZCBzdGF0ZXMgYmVsb3cuIFdhcyBgdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKWAgZm9yXG4gICAgICAgIC8vIGV2ZXJ5IGl0ZW0gaGVyZSwgd2hpY2ggbWFkZSBcIm5vdCBhY3RpdmVcIiByZWFkIGFzIFwiZGlzYWJsZWRcIi5cbiAgICAgICAgLy8gW0tpbSAyNS4wOC4yMDI2LCBrYWFydCAxNiBCT0FSRC1wdWxzZS1hbnR3b29yZG9wdGllcy1yaWNodGluZy1jXVxuICAgICAgICAmOm5vdCguc2VnbWVudC1pdGVtLWFjdGl2ZSk6bm90KC5zZWdtZW50LWl0ZW0tZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRXhwbGljaXQgbm93LCB3YXMgcHJldmlvdXNseSB0aGUgc2FtZSB2YWx1ZSBvbmx5IGJ5IGFjY2lkZW50IG9mXG4gICAgICAgIC8vIHRoZSBibGFua2V0IHJ1bGUgYWJvdmUgd2lubmluZyBvbiBzcGVjaWZpY2l0eSBvdmVyIHRoZSBiYXNlXG4gICAgICAgIC8vIGNvbXBvbmVudCdzIGAuc2VnbWVudC1pdGVtLWRpc2FibGVkYCBjb2xvdXIuIEtlcHQgdW5jaGFuZ2VkLlxuICAgICAgICAmLnNlZ21lbnQtaXRlbS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBhY3RpdmUgbGFiZWwgaXMgUFVSUExFIGluIHRoaXMgdmFyaWFudCwgYXMgdGhlIGRvY2Jsb2NrIGFib3ZlXG4gICAgICAgIC8vIGFsd2F5cyBjbGFpbWVkLiBCZWZvcmUga2FhcnQgMTYgdGhlIGJsYW5rZXQgcnVsZSBwYWludGVkIGl0IHRoZVxuICAgICAgICAvLyBkaXNhYmxlZCBncmV5OyBhZnRlciByZW1vdmluZyB0aGF0IGJsYW5rZXQgaXQgZmVsbCBiYWNrIHRvIHRoZSBiYXNlXG4gICAgICAgIC8vIHZhcmlhbnQncyBuZWFyLWJsYWNrLiBCb3RoIHdlcmUgd3JvbmcgaGVyZS4gW2thYXJ0IDE2YiwgMjUuMDguMjAyNl1cbiAgICAgICAgJi5zZWdtZW50LWl0ZW0tYWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLnNlZ21lbnQtaXRlbS1hY3RpdmUpOm5vdCguc2VnbWVudC1pdGVtLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICBjb2xvciAgICAgOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4wNik7XG4gICAgICAgIH1cbiAgICAgICAgJjpub3QoLnNlZ21lbnQtaXRlbS1hY3RpdmUpOm5vdCguc2VnbWVudC1pdGVtLWRpc2FibGVkKTphY3RpdmUge1xuICAgICAgICAgICAgY29sb3IgICAgIDogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuMTApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBWYXJpYW50OiB0aWxlcyAgKHZhcmlhbnQ9XCJ0aWxlc1wiKVxuLy8gIFR3byBjaHVua3kgc3F1YXJlIGJ1dHRvbnMgb24gYSB0cmFuc3BhcmVudCB0cmFjaywgdGhlIGFjdGl2ZSBvbmUgb24gYSBzb2Z0XG4vLyAgcHVycGxlIGZpbGwuIEZyb20gS2ltJ3MgZGVzaWduIGZvciB0aGUgdGFibGUgc3RyaXAgKDA5LjA4LjIwMjYpLCBidXQgd2l0aCB0aGVcbi8vICBibG9jayB0aGF0IHNsaWRlcywgc28gaXQgaXMgYSBza2luIG9uIHRoZSBzYW1lIGVuZ2luZSDigJQgdGhlIHNsaWRpbmcgZWxlbWVudCxcbi8vICB0aGUga2V5Ym9hcmQgaGFuZGxpbmcgYW5kIHRoZSBBUklBIGFsbCBzdGF5IHdoZXJlIHRoZXkgYXJlLlxuLy9cbi8vICBOTyBCQVIgQUxPTkcgVEhFIEJPVFRPTSBFREdFLiBUaGVyZSB1c2VkIHRvIGJlIG9uZSBoZXJlIChhbiBpbnNldCBib3gtc2hhZG93XG4vLyAgaW4gcHVycGxlLTUwMCkgYW5kIHRoZSBjb21tZW50IGNsYWltZWQgaXQgY2FtZSBmcm9tIGhlciBkZXNpZ24uIEtpbSBsb29rZWQgYXRcbi8vICBpdCBvbiAwOS4wOC4yMDI2IGFuZCBzYWlkIGl0IHdhcyBub3QgaGVycyBhbmQgaGFkIHRvIGdvOiB0aGUgZmlsbCBhbHJlYWR5IHNheXNcbi8vICB3aGljaCB0aWxlIGlzIGFjdGl2ZSwgYW5kIGEgc2Vjb25kIG1hcmtlciB1bmRlcm5lYXRoIHJlYWRzIGFzIGFuIHVuZGVybGluZVxuLy8gIHRoYXQgYmVsb25ncyB0byBzb21ldGhpbmcgZWxzZS4gRG8gbm90IHB1dCBpdCBiYWNrLlxuLy8gIE1lYW50IGZvciBhbiBpY29uLW9ubHkgc3dpdGNoIG9mIHR3byBvciB0aHJlZTsgYSBsb25nIHdvcmQgZG9lcyBub3QgYmVsb25nXG4vLyAgb24gYSBzcXVhcmUgdGlsZS5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnFkbmFwcm8tc2VnbWVudC5zZWdtZW50LXZhcmlhbnQtdGlsZXMge1xuICAgIGJhY2tncm91bmQgICAgOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nICAgICAgIDogMDtcbiAgICBnYXAgICAgICAgICAgIDogNHB4O1xuICAgIGJvcmRlci1yYWRpdXMgOiAwO1xuXG4gICAgLnNlZ21lbnQtdHJhY2stcGlsbCB7XG4gICAgICAgIHRvcCAgICAgICAgICA6IDA7XG4gICAgICAgIGhlaWdodCAgICAgICA6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZCAgIDogdmFyKC0tYy1wdXJwbGUtNTAsICNlNmU5ZmYpO1xuICAgICAgICAvLyBObyBkcm9wIHNoYWRvdyBvbiB0aGlzIHNraW4uIFRoZSBkZWZhdWx0IHBpbGwgbGlmdHMgb2ZmIGEgZ3JleSB0cmFjaywgc28gYVxuICAgICAgICAvLyBzaGFkb3cgcmVhZHMgYXMgXCJ0aGlzIG9uZSBpcyBvbiB0b3BcIi4gVGhlc2UgdGlsZXMgc2l0IG9uIGEgdHJhbnNwYXJlbnQgdHJhY2tcbiAgICAgICAgLy8gaW4gYSB0b29sYmFyLCB3aGVyZSB0aGUgc2FtZSBzaGFkb3cganVzdCBsb29rcyBncnViYnkuIFtLaW0gMDkuMDguMjAyNl1cbiAgICAgICAgYm94LXNoYWRvdyAgIDogbm9uZTtcbiAgICB9XG5cbiAgICAucWRuYXByby1zZWdtZW50LWl0ZW0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGNvbG9yICAgICAgICA6IHZhcigtLWMtZ3JleS01MDApO1xuXG4gICAgICAgICYuc2VnbWVudC1pdGVtLWFjdGl2ZSB7IGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApOyB9XG5cbiAgICAgICAgJjpub3QoLnNlZ21lbnQtaXRlbS1hY3RpdmUpOm5vdCguc2VnbWVudC1pdGVtLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xuICAgICAgICAgICAgY29sb3IgICAgIDogdmFyKC0tYy1ncmV5LTk1MCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBbZGF0YS10aGVtZT1cImRhcmtcIl0gJixcbiAgICAudGhlbWUtZGFyayAmIHtcbiAgICAgICAgLnNlZ21lbnQtdHJhY2stcGlsbCB7XG4gICAgICAgICAgICAvLyBObyBiYXIgaGVyZSBlaXRoZXIg4oCUIGRhcmsgbW9kZSBoYWQgaXRzIG93biBjb3B5IG9mIHRoZSB1bmRlcmxpbmUgdGhhdFxuICAgICAgICAgICAgLy8gd2FzIHJlbW92ZWQgaW4gdGhlIGxpZ2h0IHRoZW1lLiBUd28gY29waWVzIG9mIG9uZSBkZWNpc2lvbiBpcyBleGFjdGx5XG4gICAgICAgICAgICAvLyBob3cgYSByZWplY3RlZCBkZXRhaWwgY3JlZXBzIGJhY2sgaW4uXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXNlY29uZGFyeS1wdXJwbGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnFkbmFwcm8tc2VnbWVudC1pdGVtLnNlZ21lbnQtaXRlbS1hY3RpdmUgeyBjb2xvcjogdmFyKC0tYy1wdXJwbGUtMTAwLCAjYzBjNWZmKTsgfVxuICAgIH1cbn1cblxuLy8g4pSA4pSAIFNpZ25hYWxzdGlwamUgb3AgZWVuIGl0ZW0g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBgZG90YCBvcCBxZG5hcHJvLXNlZ21lbnQtaXRlbTogZXIgc3RhYXQgaWV0cyBvcCBkaXQgdGFiYmxhZCBkYXQgYWFuZGFjaHQgdnJhYWd0LlxuLy8gR2VlbiBnZXRhbCwgYWxsZWVuIFwiZXIgaXMgaWV0c1wiIOKAlCB6ZWxmZGUga2V1emUgYWxzIG9wIGRlIGFjdGllYmFsay4gSGV0IGl0ZW0gaXNcbi8vIGFsIHBvc2l0aW9uOnJlbGF0aXZlLCBkdXMgaGV0IHN0aXBqZSBoYW5ndCBhYW4gZGUgcmVjaHRlcmJvdmVuaG9layB6b25kZXIgZGVcbi8vIGJyZWVkdGUgdmFuIGRlIHRla3N0IHRlIGJlw69udmxvZWRlbiAoZW4gZHVzIHpvbmRlciBkZSBzY2h1aXZlbmRlIHBpbCB0ZSBsYXRlblxuLy8gdmVyc3ByaW5nZW4pLiBbS2ltIDA2LjA4LjIwMjZdXG4ucWRuYXByby1zZWdtZW50LWl0ZW0gLnNlZ21lbnQtaXRlbS1kb3Qge1xuICAgIHBvc2l0aW9uICAgICA6IGFic29sdXRlO1xuICAgIHRvcCAgICAgICAgICA6IDRweDtcbiAgICByaWdodCAgICAgICAgOiA2cHg7XG4gICAgd2lkdGggICAgICAgIDogNnB4O1xuICAgIGhlaWdodCAgICAgICA6IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8vIEFtYmVyID0gZGV6ZWxmZGUga2xldXIgYWxzIGRlIHdhYXJzY2h1d2luZ3NzdGFuZCB2YW4gcWRuYXByby1saXN0LXJvdywgd2FudCBoZXRcbi8vIHdpanN0IG5hYXIgcHJlY2llcyBkYXQgcHJvYmxlZW0uIFJvb2QgaXMgdm9vciBpZXRzIGRhdCDDqWNodCBzdHVrIGlzLlxuLnFkbmFwcm8tc2VnbWVudC1pdGVtIC5zZWdtZW50LWl0ZW0tZG90LXdhcm5pbmcgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7IH1cbi5xZG5hcHJvLXNlZ21lbnQtaXRlbSAuc2VnbWVudC1pdGVtLWRvdC1hbGVydCAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1mYXZvcml0ZS1oZWFydCk7IH1cbiIsIi8vIF9zZWdtZW50LXRpbGVzLnNjc3Ncbi8vIENhbm9uaWNhbCBzdHlsZXMgZm9yIHFkbmFwcm8tc2VnbWVudC10aWxlcyBhbmQgcWRuYXByby1zZWdtZW50LXRpbGUuXG4vLyBDb21wYWN0IHBpbGwgdHJhY2sgb2YgaWNvbiArIGxhYmVsIHRpbGVzOyB0aGUgZGVzY3JpcHRpb24gc2hvd3MgYXMgYSBmbG9hdGluZ1xuLy8gb3ZlcmxheSBhYm92ZSB0aGUgdHJhY2sgKGZsaXBzIGJlbG93KSBvbiBzZWxlY3Rpb24sIHNvIGl0IHJlc2VydmVzIG5vIHNwYWNlLlxuLy8gU2VwYXJhdGUgZnJvbSB0aGUgdGFiLWJhciBxZG5hcHJvLXNlZ21lbnQsIGJ1dCBzaGFyZXMgaXRzIG5ldXRyYWwgcGFsZXR0ZVxuLy8gKGdyZXkgdHJhY2ssIHdoaXRlIHBpbGwgd2l0aCBlbGV2YXRpb24gc2hhZG93KS4gQWN0aXZlIGFjY2VudCA9IGRhcmsgcHVycGxlLlxuLy8gPT09IFNUQVJUIFFETkFQUk8tU0VHTUVOVC1USUxFUyBDU1MgPT09XG5cbi8vIC0tLS0gc2hhcmVkIG5ldXRyYWwgdG9rZW5zIChtYXRjaGVkIHRvIF9zZWdtZW50LnNjc3MpIC0tLS1cbi8vIHRyYWNrIGJnICAgICAgICAgICNmMGYxZjJcbi8vIHBpbGwgYmcgICAgICAgICAgICNmZmZmZmYgICBzaGFkb3cgMCAxcHggM3B4IHJnYmEoMCwwLDAsLjEyKSwgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjA4KVxuLy8gYWN0aXZlIGFjY2VudCAgICAgIzNjMzQ4OSAgIChkYXJrIFFETkEgcHVycGxlLCBpY29uICsgbGFiZWwpXG4vLyBsYWJlbCBpbmFjdGl2ZSAgICByZ2JhKDExLDExLDEzLDAuNTUpXG4vLyBob3ZlciBsYWJlbCAgICAgICByZ2JhKDExLDExLDEzLDAuNzUpXG4vLyBmb2N1cyByaW5nICAgICAgICAjNDA0OTlhXG5cbi5xZG5hcHJvLXNlZ21lbnQtdGlsZXMge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxufVxuXG4vLyBPcHRpb25hbCBsYWJlbCBhYm92ZSB0aGUgdHJhY2tcbi5xZG5hcHJvLXNlZ21lbnQtdGlsZXMgLnNlZ21lbnQtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiByZ2JhKDExLCAxMSwgMTMsIDAuNTUpO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLy8gUG9zaXRpb25pbmcgY29udGV4dCBmb3IgdGhlIGZsb2F0aW5nIG92ZXJsYXkgKHdyYXBzIHRoZSB0cmFjayBvbmx5KVxuLnFkbmFwcm8tc2VnbWVudC10aWxlcyAuc2VnbWVudC1zaGVsbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLyBUaGUgcGlsbCB0cmFjayBjb250YWluZXJcbi5xZG5hcHJvLXNlZ21lbnQtdGlsZXMgLnNlZ21lbnQtdHJhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgZ2FwOiAwO1xufVxuXG4vLyBTbGlkaW5nIHBpbGwgKHBvc2l0aW9uZWQgYWJzb2x1dGVseSBieSBKUylcbi5xZG5hcHJvLXNlZ21lbnQtdGlsZXMgLnNlZ21lbnQtcGlsbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogM3B4O1xuICAgIGJvdHRvbTogM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGxlZnQgMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSxcbiAgICAgICAgd2lkdGggMjgwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cblxuLy8gSW5kaXZpZHVhbCB0aWxlIGJ1dHRvblxuLnFkbmFwcm8tc2VnbWVudC10aWxlcyAuc2VnbWVudC10aWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIHBhZGRpbmc6IDEwcHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAxODBtcyBlYXNlO1xuXG4gICAgLy8gTWF0ZXJpYWwgRGVzaWduIGljb24gKHFkbmFwcm8taWNvbiwgc2l6ZWQgdmlhIGZvbnQtc2l6ZSBzaW5jZSBpdCBpcyAxZW0pXG4gICAgPiBxZG5hcHJvLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGNvbG9yOiByZ2JhKDExLCAxMSwgMTMsIDAuNTUpO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAxODBtcyBlYXNlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBMYWJlbCB0ZXh0XG4gICAgPiBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBjb2xvcjogcmdiYSgxMSwgMTEsIDEzLCAwLjU1KTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAxODBtcyBlYXNlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBLZXlib2FyZCBmb2N1cyByaW5nXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLXJpbmcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIChzZWxlY3RlZCkgc3RhdGU6IGRhcmsgUUROQSBwdXJwbGUgYWNjZW50IG9uIHRoZSB3aGl0ZSBwaWxsLlxuICAgICYuYWN0aXZlIHtcbiAgICAgICAgPiBxZG5hcHJvLWljb24geyBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNjAwKTsgfVxuICAgICAgICA+IHNwYW4gICAgICAgICB7IGNvbG9yOiB2YXIoLS1jLXB1cnBsZS02MDApOyBmb250LXdlaWdodDogNjAwOyB9XG4gICAgfVxuXG4gICAgLy8gSG92ZXI6IG9ubHkgb24gbm9uLWFjdGl2ZSwgbm9uLWRpc2FibGVkIHRpbGVzIHRvIGF2b2lkIGZpZ2h0aW5nIHdpdGggdGhlIHBpbGxcbiAgICAmOm5vdCguYWN0aXZlKTpub3QoLnNlZ21lbnQtdGlsZS0tZGlzYWJsZWQpOmhvdmVyIHtcbiAgICAgICAgPiBxZG5hcHJvLWljb24geyBjb2xvcjogcmdiYSgxMSwgMTEsIDEzLCAwLjc1KTsgfVxuICAgICAgICA+IHNwYW4gICAgICAgICB7IGNvbG9yOiByZ2JhKDExLCAxMSwgMTMsIDAuNzUpOyB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQ6IGdyZXllZCBvdXQgYW5kIG5vdCBzZWxlY3RhYmxlLiBDbGlja2luZyBzdGlsbCBvcGVucyBhIHdhcm5pbmdcbiAgICAvLyBvdmVybGF5ICh0aGUgSlMgaGFuZGxlcyB0aGF0KSwgc28ga2VlcCBpdCBpbnRlcmFjdGl2ZSBidXQgdmlzdWFsbHkgbXV0ZWQuXG4gICAgJi0tZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICBvcGFjaXR5OiAwLjQ1O1xuXG4gICAgICAgID4gcWRuYXByby1pY29uIHsgY29sb3I6IHJnYmEoMTEsIDExLCAxMywgMC40NSk7IH1cbiAgICAgICAgPiBzcGFuICAgICAgICAgeyBjb2xvcjogcmdiYSgxMSwgMTEsIDEzLCAwLjQ1KTsgfVxuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgU21pbGV5IHZhcmlhbnQgKHZhcmlhbnQ9XCJzbWlsZXlcIilcbi8vICBFYWNoIHRpbGUgcHJldmlld3MgYSByb3cgb2YgcWRuYXByby1zbWlsZXkgZW1vdGljb25zIGluc3RlYWQgb2Ygb25lIE1ESSBpY29uLFxuLy8gIHNvIHRoZSBlbW9qaSBmZWVkYmFjayBub2RlJ3Mgc2NhbGUgLyBjb2xvdXIgLyBvcmRlciBzZXR0aW5ncyBzaG93IHRoZSBhY3R1YWxcbi8vICBlbW90aWNvbnMuIFRpbGUgd2lkdGggc3RpbGwgY29tZXMgZnJvbSBmbGV4OjE7IHRoZSBzbWlsZXkgcm93IGNlbnRlcnMgaW5zaWRlLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ucWRuYXByby1zZWdtZW50LXRpbGVzLS1zbWlsZXkge1xuICAgIC5zZWdtZW50LXRpbGUge1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAxMHB4O1xuICAgIH1cblxuICAgIC5zZWdtZW50LXRpbGUtc21pbGV5cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgIHFkbmFwcm8tc21pbGV5IHsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIEZsb2F0aW5nIGRlc2NyaXB0aW9uIG92ZXJsYXkgKG9wZW5lZCBvbiBzZWxlY3Rpb24gYnkgSlMpXG4vLyAgQWJzb2x1dGVseSBwb3NpdGlvbmVkIHdpdGhpbiAuc2VnbWVudC1zaGVsbCBzbyBpdCByZXNlcnZlcyBubyBzcGFjZS5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnFkbmFwcm8tc2VnbWVudC10aWxlcyAuc2VnbWVudC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IGNhbGMoMTAwJSArIDhweCk7ICAgICAvLyBkZWZhdWx0OiBhYm92ZSB0aGUgdHJhY2tcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAxMnB4IDM4cHggMTJweCAxNHB4OyAvLyBleHRyYSByaWdodCBwYWRkaW5nIGNsZWFycyB0aGUgY2xvc2UgYnV0dG9uXG4gICAgbWluLWhlaWdodDogNTJweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm9yZGVyOiAwLjVweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0KTtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgIHotaW5kZXg6IDIwO1xuXG4gICAgLy8gSGlkZGVuIC8gY2xvc2VkIHN0YXRlIChrZXB0IGluIHRoZSBET00gZm9yIHRoZSB0cmFuc2l0aW9uKVxuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpOyAgIC8vIGVtZXJnZXMgdXB3YXJkIGZyb20gdGhlIHRyYWNrXG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgb3BhY2l0eSAxODBtcyBlYXNlLFxuICAgICAgICB0cmFuc2Zvcm0gMTgwbXMgZWFzZSxcbiAgICAgICAgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMTgwbXM7XG5cbiAgICAvLyBGbGlwcGVkIGJlbG93IHRoZSB0cmFjayB3aGVuIHRoZXJlIGlzIG5vIHJvb20gYWJvdmVcbiAgICAmLmlzLWJlbG93IHtcbiAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDhweCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KTsgLy8gZW1lcmdlcyBkb3dud2FyZFxuICAgIH1cblxuICAgIC8vIE9wZW4gc3RhdGVcbiAgICAmLmlzLW9wZW4ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgb3BhY2l0eSAxODBtcyBlYXNlLFxuICAgICAgICAgICAgdHJhbnNmb3JtIDE4MG1zIGVhc2U7XG4gICAgfVxuXG4gICAgLy8gQ2xvc2UgYnV0dG9uICh0b3AtcmlnaHQgWClcbiAgICAuc2VnbWVudC1vdmVybGF5LWNsb3NlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDhweDtcbiAgICAgICAgcmlnaHQ6IDhweDtcbiAgICAgICAgd2lkdGg6IDIycHg7XG4gICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiByZ2JhKDExLCAxMSwgMTMsIDAuNDUpO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNDBtcyBlYXNlLCBjb2xvciAxNDBtcyBlYXNlO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1ibGFjay0wNik7XG4gICAgICAgICAgICBjb2xvcjogcmdiYSgxMSwgMTEsIDEzLCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLXJpbmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWNvbiBib3ggaW5zaWRlIHRoZSBvdmVybGF5XG4gICAgLnNlZ21lbnQtZGVzYy1pY29uIHtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQtaG92ZXIpO1xuICAgICAgICBib3JkZXI6IDAuNXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgcWRuYXByby1pY29uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS02MDApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2FybmluZyB2YXJpYW50OiBzaG93biBmb3IgYSBkaXNhYmxlZCB0aWxlJ3MgaGludCBvdmVybGF5LlxuICAgICAgICAmLS13YXJuaW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLW9yYW5nZS1iZyk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjE0LCAxMjIsIDQ3LCAwLjI1KTtcblxuICAgICAgICAgICAgcWRuYXByby1pY29uIHsgY29sb3I6IHZhcigtLWMtd2Fybi1hbWJlci01MDApOyB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUZXh0IGNvbnRlbnQgaW5zaWRlIHRoZSBvdmVybGF5XG4gICAgLnNlZ21lbnQtZGVzYy10ZXh0IHtcbiAgICAgICAgZmxleDogMTtcblxuICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTYwMCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBjb2xvcjogcmdiYSgxMSwgMTEsIDEzLCAwLjY1KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEhpZGUgdGhlIGRhdGEtc291cmNlIHRpbGUgbm9kZXMgKHJlbmRlcmVkIGFzIGRpc3BsYXk6bm9uZSBieSBKUylcbnFkbmFwcm8tc2VnbWVudC10aWxlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIERhcmsgbW9kZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSxcbi50aGVtZS1kYXJrIHtcbiAgICAucWRuYXByby1zZWdtZW50LXRpbGVzIC5zZWdtZW50LXRyYWNrIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzJhMmQzNTtcbiAgICB9XG5cbiAgICAucWRuYXByby1zZWdtZW50LXRpbGVzIC5zZWdtZW50LXRpbGUge1xuICAgICAgICA+IHFkbmFwcm8taWNvbiB7IGNvbG9yOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuNTApOyB9XG4gICAgICAgID4gc3BhbiAgICAgICAgIHsgY29sb3I6IHJnYmEoMjQwLCAyNDEsIDI0MiwgMC41MCk7IH1cblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICA+IHFkbmFwcm8taWNvbiB7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IH1cbiAgICAgICAgICAgID4gc3BhbiAgICAgICAgIHsgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLmFjdGl2ZSk6bm90KC5zZWdtZW50LXRpbGUtLWRpc2FibGVkKTpob3ZlciB7XG4gICAgICAgICAgICA+IHFkbmFwcm8taWNvbiB7IGNvbG9yOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuNzUpOyB9XG4gICAgICAgICAgICA+IHNwYW4gICAgICAgICB7IGNvbG9yOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuNzUpOyB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICA+IHFkbmFwcm8taWNvbiB7IGNvbG9yOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuMzApOyB9XG4gICAgICAgICAgICA+IHNwYW4gICAgICAgICB7IGNvbG9yOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuMzApOyB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucWRuYXByby1zZWdtZW50LXRpbGVzIC5zZWdtZW50LW92ZXJsYXkge1xuICAgICAgICAuc2VnbWVudC1vdmVybGF5LWNsb3NlIHtcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuNDUpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuMDgpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0MCwgMjQxLCAyNDIsIDAuNzUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnNlZ21lbnQtZGVzYy1pY29uIHtcbiAgICAgICAgICAgIHFkbmFwcm8taWNvbiB7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IH1cblxuICAgICAgICAgICAgJi0td2FybmluZyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMTQsIDEyMiwgNDcsIDAuMTUpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMTQsIDEyMiwgNDcsIDAuMzApO1xuXG4gICAgICAgICAgICAgICAgcWRuYXByby1pY29uIHsgY29sb3I6ICNlODk5NGE7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWdtZW50LWRlc2MtdGV4dCB7XG4gICAgICAgICAgICBzdHJvbmcgeyBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpOyB9XG4gICAgICAgICAgICBwICAgICAgeyBjb2xvcjogcmdiYSgyNDAsIDI0MSwgMjQyLCAwLjY1KTsgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyA9PT0gRU5EIFFETkFQUk8tU0VHTUVOVC1USUxFUyBDU1MgKGRvIG5vdCByZW1vdmUgdGhpcyBtYXJrZXIpID09PVxuIiwiLy8gcWRuYXByby1zY29yZS1zY2FsZSAtIHNoYXJlZCBhbnN3ZXIgY29udHJvbCBmb3IgdGhlIFNjb3JlIGFuZCBOUFMgcXVlc3Rpb25cbi8vIG5vZGVzLiBBIHNlZ21lbnRlZCBiYXIgdGhhdCByZWFkcyBhcyBPTkUgb2JqZWN0OiBzZWdtZW50cyBmbHVzaCBhZ2FpbnN0XG4vLyBlYWNoIG90aGVyIChubyBnYXBzKS4gT3V0ZXItY29ybmVyIHJvdW5kaW5nIGlzIGFwcGxpZWQgZGlyZWN0bHkgdG8gdGhlXG4vLyBmaXJzdC9sYXN0IHNlZ21lbnQgKE5PVCB2aWEgb3ZlcmZsb3c6aGlkZGVuIG9uIHRoZSBiYXIpIHNvIHRoZSBzZWxlY3RlZFxuLy8gc2VnbWVudCBjYW4gZ3JvdyB0YWxsZXIgdGhhbiB0aGUgYmFyIHdpdGhvdXQgYmVpbmcgY2xpcHBlZCAtIHNlZSB0aGVcbi8vIFwiU2VsZWN0ZWQgc3RhdGVcIiBibG9jayBiZWxvdy4gRkxBVCBDU1M7IGNvbG91cnMgY29tZSBmcm9tIHRoZSBkZXNpZ24tdG9rZW5cbi8vIDpyb290ICh2YXIoLS1jLSopKS4gRWRpdCBIRVJFLCB0aGVuIGBndWxwIHNhc3NgICsgYGd1bHAgc2Fzcy12MWAuXG5cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIHtcbiAgLy8gTmV1dHJhbCAoZGVmYXVsdCwgbm8gZ3JhZGllbnQpIGNvbG91ciBmYW1pbHkgLSBzYW1lIHRoZW1lLWNvbG91ciB0b2tlblxuICAvLyBmYW1pbHkgYXMgcWRuYXByby1hbnN3ZXItYnV0dG9uLlxuICAtLXFzcy1uZXV0cmFsLWlkbGUtYmc6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpIDEwJSwgI2ZmZik7XG4gIC0tcXNzLW5ldXRyYWwtaWRsZS10ZXh0OiB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpO1xuICAvLyBTZWxlY3RlZCBmaWxsOiBzYW1lIC0tdGhlbWUtYnRuLXNlbGVjdGVkLWNvbG9yIGhvb2sgcWRuYXByby1hbnN3ZXItYnV0dG9uXG4gIC8vIHVzZXMgKGZhbGxzIGJhY2sgdG8gdGhlIGJhc2UgdGhlbWUgY29sb3VyIHdoZW4gYSB0aGVtZSBoYXMgbm8gZXhwbGljaXRcbiAgLy8gc2VsZWN0ZWQgdmFyaWFudCBjb25maWd1cmVkKS4gW3JlZGVzaWduIDExLjA3LjIwMjZdXG4gIC0tcXNzLW5ldXRyYWwtc2VsZWN0ZWQtYmc6IHZhcigtLXRoZW1lLWJ0bi1zZWxlY3RlZC1jb2xvciwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSk7XG4gIC0tcXNzLW5ldXRyYWwtc2VsZWN0ZWQtdGV4dDogdmFyKC0tdGhlbWUtYnRuLXNlbGVjdGVkLXRleHQtY29sb3IsICNmZmYpO1xuICAtLXFzcy1zZXBhcmF0b3I6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG5cbiAgLy8gRWxldmF0aW9uIHNoYWRvdyBmb3IgdGhlIHNlbGVjdGVkIHNlZ21lbnQgcG9wcGluZyBvdXQgb2YgdGhlIGJhci5cbiAgLS1xc3Mtc2VsZWN0ZWQtc2hhZG93OiAwIDhweCAyMHB4IHJnYmEoMjAsIDI1LCA4MCwgMC4xNiksIDAgMnB4IDZweCByZ2JhKDIwLCAyNSwgODAsIDAuMTApO1xuICAvLyBIb3cgZmFyIHRoZSBzZWxlY3RlZCBzZWdtZW50IGdyb3dzIGFib3ZlL2JlbG93IHRoZSByZXN0aW5nIGJhciBoZWlnaHQuXG4gIC0tcXNzLWdyb3c6IDdweDtcblxuICAvLyBHcmFkaWVudCBzdG9wcyAtIHNhbWUgY29sb3Vycy9vcmRlciBhcyBxZG5hcHJvLXNsaWRlcidzIFwic2VudGltZW50XCJcbiAgLy8gdmFyaWFudCwgZm9yIHZpc3VhbCBjb25zaXN0ZW5jeSBhY3Jvc3MgdGhlIHR3byByYXRpbmcgY29udHJvbHMuXG4gIC0tcXNzLWdyYWQtMTogdmFyKC0tYy13YXJuLXJlZC01MDAsICNkYzI2MjYpO1xuICAtLXFzcy1ncmFkLTI6IHZhcigtLWMtd2Fybi15ZWxsb3ctNTAwLCAjZmJiZjI0KTtcbiAgLS1xc3MtZ3JhZC0zOiB2YXIoLS1jLXN1Y2Nlc3MtYnJpZ2h0LCAjMWQ5ZTc1KTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNjQwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtZm9udC1mYW1pbHksIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG59XG5cbi8vIC0tLS0gQmFyICh0aGUgXCJvbmUgb2JqZWN0XCIpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnFkbmFwcm8tc2NvcmUtc2NhbGUgLnFzcy1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyAvLyBOT1Qgc3RyZXRjaDogbGV0cyB0aGUgc2VsZWN0ZWQgc2VnbWVudCBiZSBhIGRpZmZlcmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gKHRhbGxlcikgaGVpZ2h0IHRoYW4gaXRzIHNpYmxpbmdzIHdpdGhvdXQgdGhlIHJvdydzXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvd24gaGVpZ2h0IGdyb3dpbmcgdG8gbWF0Y2ggaXQgKGVhY2ggY2hpbGQncyBoZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlzIGV4cGxpY2l0LCBzZWUgLnFzcy1zZWdtZW50IGJlbG93KS5cbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNTZweDsgLy8gZml4ZWQgYmFzZWxpbmUgcm93IGhlaWdodCAtIHRoZSBzZWxlY3RlZCBzZWdtZW50IG92ZXJmbG93c1xuICAgICAgICAgICAgICAgIC8vIHRoaXMgYm94IG9uIHB1cnBvc2UgKHNlZSBpcy1zZWxlY3RlZCBiZWxvdyk7IHRoZSByb3cgaXRzZWxmXG4gICAgICAgICAgICAgICAgLy8gbmV2ZXIgZ3Jvd3MsIHNvIHN1cnJvdW5kaW5nIGxheW91dCBuZXZlciBzaGlmdHMgb24gc2VsZWN0LlxuICBvdmVyZmxvdzogdmlzaWJsZTsgLy8gd2FzIGhpZGRlbiAtIGEgZ3Jvd2luZyBzZWdtZW50IG11c3QgTk9UIGJlIGNsaXBwZWQuXG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1jYXJkLCAwIDFweCAycHggcmdiYSgyMCwgMjUsIDgwLCAwLjA0KSk7XG4gIC8vIERyYWctc2VsZWN0ICgxMS4wNy4yMDI2KTogYWxsb3cgdGhlIGJyb3dzZXIncyBuYXRpdmUgdmVydGljYWwgcGFuL3Njcm9sbFxuICAvLyB0byBrZWVwIHdvcmtpbmcgdW50b3VjaGVkOyBob3Jpem9udGFsIGRyYWcgaXMgb3duZWQgYnkgSlMgKHBvaW50ZXJcbiAgLy8gaGFuZGxlcnMgcHJldmVudERlZmF1bHQgb25seSBvbmNlIHRoZSBheGlzLWxvY2sgY29uZmlybXMgaG9yaXpvbnRhbFxuICAvLyBpbnRlbnQpIC0gc2FtZSBjb250cmFjdCBhcyBxZG5hcHJvLWRhdGUtY2Fyb3VzZWwncyBzdHJpcC13cmFwLlxuICB0b3VjaC1hY3Rpb246IHBhbi15O1xufVxuXG4vLyBXaGlsZSBhIGRyYWcgaXMgYWN0aXZlbHkgbW92aW5nIHRoZSBzZWxlY3Rpb24sIGRyb3AgdGhlIHNlZ21lbnQncyBvd25cbi8vIHRyYW5zaXRpb24gc28gdGhlIGdyb3ctb3V0IGN1ZSBmb2xsb3dzIHRoZSBwb2ludGVyIElOU1RBTlRMWSAobm8gMTUwbXMgbGFnXG4vLyBwZXIgc2VnbWVudCBjcm9zc2VkKSAtIHJlLWVuYWJsZWQgYWdhaW4gdGhlIG1vbWVudCB0aGUgZHJhZyBlbmRzL2NvbW1pdHMuXG4ucWRuYXByby1zY29yZS1zY2FsZS5pcy1kcmFnZ2luZyAucXNzLXNlZ21lbnQge1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4vLyAtLS0tIFNlZ21lbnQgKGEgcmVhbCA8YnV0dG9uPikgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucWRuYXByby1zY29yZS1zY2FsZSAucXNzLXNlZ21lbnQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4OiAxIDEgMDtcbiAgbWluLXdpZHRoOiAwO1xuICBoZWlnaHQ6IDU2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLXFzcy1zZXBhcmF0b3IpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1xc3MtbmV1dHJhbC1pZGxlLWJnKTtcbiAgY29sb3I6IHZhcigtLXFzcy1uZXV0cmFsLWlkbGUtdGV4dCk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAwO1xuICB0cmFuc2l0aW9uOlxuICAgIGhlaWdodCAxNTBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSksXG4gICAgYm9yZGVyLXJhZGl1cyAxNTBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSksXG4gICAgYm94LXNoYWRvdyAxNTBtcyBlYXNlLW91dCxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yIDE1MG1zIGVhc2Utb3V0LFxuICAgIGNvbG9yIDE1MG1zIGVhc2Utb3V0LFxuICAgIGZpbHRlciAxNTBtcyBlYXNlLW91dCxcbiAgICBvcGFjaXR5IDE1MG1zIGVhc2Utb3V0O1xufVxuLy8gT3V0ZXItY29ybmVyIHJvdW5kaW5nIGxpdmVzIG9uIHRoZSBlbmQgc2VnbWVudHMgdGhlbXNlbHZlcyBub3cgKHRoZSBiYXIgbm9cbi8vIGxvbmdlciBjbGlwcyB2aWEgb3ZlcmZsb3c6aGlkZGVuKSwgc28gdGhlIHJlc3RpbmcgYmFyIHN0aWxsIHJlYWRzIGFzIE9ORVxuLy8gcm91bmRlZCBvYmplY3QgZXZlbiB0aG91Z2ggYSBzZWxlY3RlZCBzZWdtZW50IGNhbiBncm93IHBhc3QgaXRzIGJvdW5kcy5cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3Mtc2VnbWVudDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLXItMywgMTJweCk7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLXItMywgMTJweCk7XG59XG4ucWRuYXByby1zY29yZS1zY2FsZSAucXNzLXNlZ21lbnQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLXItMywgMTJweCk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1yLTMsIDEycHgpO1xufVxuLy8gSGlkZSB0aGUgaGFpcmxpbmUgc2VwYXJhdG9yIHRoYXQgd291bGQgb3RoZXJ3aXNlIHNpdCBmbHVzaCBhZ2FpbnN0IHRoZVxuLy8gcmFpc2VkIGxlZnQgZWRnZSBvZiBhIHBvcHBlZC1vdXQgc2VsZWN0ZWQgc2VnbWVudC5cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3Mtc2VnbWVudDpoYXMoKyAucXNzLXNlZ21lbnQuaXMtc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3Mtc2VnbWVudDpob3Zlcjpub3QoOmRpc2FibGVkKTpub3QoLmlzLXNlbGVjdGVkKSB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygwLjk3KTtcbn1cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3Mtc2VnbWVudDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucWRuYXByby1zY29yZS1zY2FsZSAucXNzLXNlZ21lbnQ6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICB6LWluZGV4OiAzO1xufVxuXG4ucWRuYXByby1zY29yZS1zY2FsZSAucXNzLW51bSB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLy8gLS0tLSBTZWxlY3RlZCBzdGF0ZTogc2hhcGUgY3VlLCBuZXZlciBjb2xvdXItb25seSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlIHNlbGVjdGVkIHNlZ21lbnQgcGh5c2ljYWxseSBHUk9XUyBPVVQgb2YgdGhlIGJhciAtIHRhbGxlciB0aGFuIGl0c1xuLy8gbmVpZ2hib3VycyBieSAtLXFzcy1ncm93IG9uIHRvcCBhbmQgYm90dG9tLCB3aXRoIGl0cyBvd24gZnVsbHkgcm91bmRlZFxuLy8gY29ybmVycyAoaXQncyBhIHNtYWxsIHJhaXNlZCB0aWxlIG5vdywgbm90IGEgZmx1c2ggcGllY2Ugb2YgdGhlIGJhcikgYW5kIGFcbi8vIHNvZnQgZWxldmF0aW9uIHNoYWRvdywgcGx1cyBhIGJvbGRlci9sYXJnZXIgbnVtYmVyLiBUaGlzIGlzIGEgcHVyZSBTSEFQRVxuLy8gY3VlOiBpdCByZWFkcyBpZGVudGljYWxseSBpbiBncmFkaWVudCBtb2RlICh3aGVyZSBjb2xvdXIgYWxvbmUgaXMgbm90IGFcbi8vIHVzYWJsZSBzaWduYWwpIGFuZCBmb3IgY29sb3VyYmxpbmQgdXNlcnMuIE5vIHdoaXRlIHJpbmcgLSBzZWUgMTEuMDcuMjAyNlxuLy8gcmVkZXNpZ24gKEtpbTogdGhlIG9sZCBpbnNldCB3aGl0ZSByaW5nIHJlYWQgYXMgXCJ1Z2x5XCIpLlxuLnFkbmFwcm8tc2NvcmUtc2NhbGUgLnFzcy1zZWdtZW50LmlzLXNlbGVjdGVkIHtcbiAgaGVpZ2h0OiBjYWxjKDU2cHggKyAodmFyKC0tcXNzLWdyb3cpICogMikpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIsIDhweCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLXFzcy1uZXV0cmFsLXNlbGVjdGVkLWJnKTtcbiAgY29sb3I6IHZhcigtLXFzcy1uZXV0cmFsLXNlbGVjdGVkLXRleHQpO1xuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiB2YXIoLS1xc3Mtc2VsZWN0ZWQtc2hhZG93KTtcbiAgei1pbmRleDogMjtcbn1cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3Mtc2VnbWVudC5pcy1zZWxlY3RlZCAucXNzLW51bSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMTdweDtcbn1cblxuLy8gLS0tLSBHcmFkaWVudCBtb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFYWNoIHNlZ21lbnQncyBiYWNrZ3JvdW5kLWltYWdlLy1zaXplLy1wb3NpdGlvbiBpcyBzZXQgaW5saW5lIChKUykgc28gdGhlXG4vLyBmdWxsIHJlZCAtPiB5ZWxsb3cgLT4gZ3JlZW4gZ3JhZGllbnQgcnVucyBjb250aW51b3VzbHkgYWNyb3NzIHRoZSB3aG9sZSBiYXIsXG4vLyBlYWNoIHNlZ21lbnQgc2hvd2luZyBvbmx5IGl0cyBvd24gc2xpY2UuXG4ucWRuYXByby1zY29yZS1zY2FsZS5pcy1ncmFkaWVudCAucXNzLXNlZ21lbnQge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjM1KTsgLy8ga2VlcHMgdGhlIG51bWJlciBsZWdpYmxlIG92ZXIgeWVsbG93IHRvb1xuICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSk7XG59XG4vLyBVbnNlbGVjdGVkIHNlZ21lbnRzIHJlbmRlciB0aGVpciBncmFkaWVudCBzbGljZSBkZXNhdHVyYXRlZC9kaW1tZWQgc28gdGhlXG4vLyBzZWxlY3RlZCBvbmUgdmlzaWJseSBwb3BzIC0gYSBTSEFQRSBjdWUgZG9lcyB0aGUgYWN0dWFsIHNlbGVjdGlvbiBzaWduYWxsaW5nXG4vLyAoYWJvdmUpLCB0aGlzIGlzIGp1c3QgZXh0cmEgdmlzdWFsIGVtcGhhc2lzLCBub3QgdGhlIG1lY2hhbmlzbSBpdHNlbGYuXG4ucWRuYXByby1zY29yZS1zY2FsZS5pcy1ncmFkaWVudCAucXNzLXNlZ21lbnQ6bm90KC5pcy1zZWxlY3RlZCkge1xuICBmaWx0ZXI6IHNhdHVyYXRlKDAuNDUpIGJyaWdodG5lc3MoMS4wNSk7XG4gIG9wYWNpdHk6IDAuODI7XG59XG4ucWRuYXByby1zY29yZS1zY2FsZS5pcy1ncmFkaWVudCAucXNzLXNlZ21lbnQuaXMtc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLy8gbGV0IHRoZSBpbmxpbmUgZ3JhZGllbnQgc2xpY2Ugc2hvdyB0aHJvdWdoXG4gIGZpbHRlcjogbm9uZTtcbiAgb3BhY2l0eTogMTtcbiAgLy8gTm8gcmluZyBoZXJlIGVpdGhlciAtIHRoZSBncm93LW91dCBzaGFwZSBjdWUgKGhlaWdodC9yYWRpdXMvc2hhZG93IGFib3ZlKVxuICAvLyBpcyBzaGFyZWQgd2l0aCBuZXV0cmFsIG1vZGUgYW5kIGRvZXMgdGhlIHNpZ25hbGxpbmcgb24gaXRzIG93bi5cbn1cblxuLy8gLS0tLSBGb290ZXI6IGVuZHBvaW50IGxhYmVscyArIGJhbmRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3MtZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tcy0yLCA4cHgpO1xufVxuLnFkbmFwcm8tc2NvcmUtc2NhbGUgLnFzcy1lbmRwb2ludHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xufVxuLy8gRGUgdHdlZSB1aXRlaW5kZS10ZWtzdGVuIHppam4ga2xhbnRlbnRla3N0OyB6b25kZXIgYWZicmVla3JlZ2VsIGR1d2RlIMOpw6luIGxhbmcgd29vcmRcbi8vIGRlIHJlY2h0ZXJrYW50IHZvb3JiaWogZGUgc2NoYWFsLiBbMTguMDkuMjAyNl1cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3MtbGFiZWwtbWluLFxuLnFkbmFwcm8tc2NvcmUtc2NhbGUgLnFzcy1sYWJlbC1tYXgge1xuICBtYXgtd2lkdGg6IDQ4JTtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG4ucWRuYXByby1zY29yZS1zY2FsZSAucXNzLWxhYmVsLW1heCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ucWRuYXByby1zY29yZS1zY2FsZSAucXNzLWJhbmRzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDE4cHg7XG4gIG1hcmdpbi10b3A6IHZhcigtLXMtMSwgNHB4KTtcbn1cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3MtYmFuZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zLTEsIDRweCk7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIsICNlNmU5ZWYpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLy8gLS0tLSBPZmYtc2NhbGUgXCJuLnYudC5cIiBvcHRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gT25seSByZW5kZXJlZCB3aGVuIHRoZSBgbnZ0YCBhdHRyaWJ1dGUgaXMgc2V0LiBJdCBzaXRzIFVOREVSIHRoZSBiYXIgKGFuZFxuLy8gdW5kZXIgdGhlIGJhcidzIG93biBmb290ZXIpLCBiZWhpbmQgYSBkaXZpZGVyLCBuZXZlciBpbnNpZGUgdGhlIHNlZ21lbnRlZFxuLy8gYmFyIGl0c2VsZi5cbi8vXG4vLyBXaHkgdW5kZXIgdGhlIGJhciBhbmQgbm90IGJlc2lkZSBpdCwgdGhlIHdheSBxZG5hcHJvLWxpa2VydC1zY2FsZSBwbGFjZXNcbi8vIGl0cyBuLnYudC4gY2lyY2xlOiB0aGlzIGJhciBjYW4gY2FycnkgMTEgc2VnbWVudHMgKDAtMTApLiBPbiBhIHBob25lIHRob3NlXG4vLyBhcmUgYWxyZWFkeSBvbmx5IH4zNHB4IHdpZGUsIGFuZCBzdGVhbGluZyBhIHR3ZWxmdGggc2xvdCBmcm9tIHRoYXQgc2FtZSByb3dcbi8vIHB1c2hlcyB0aGVtIGJlbG93IGEgdXNhYmxlIHRhcCB0YXJnZXQuIExpa2VydCBoYXMgNS03IGNpcmNsZXMgYW5kIGNhblxuLy8gYWZmb3JkIHRoZSBob3Jpem9udGFsIHNwbGl0LlxuLy9cbi8vIEFsd2F5cyBORVVUUkFMIGdyZXksIG5ldmVyIHRoZSB0aGVtZSBhY2NlbnQgYW5kIG5ldmVyIHRoZSByZWQtdG8tZ3JlZW5cbi8vIGdyYWRpZW50OiB0aGlzIG9wdGlvbiBpcyBub3QgYSBzY29yZSwgc28gaXQgbXVzdCBub3QgcmVhZCBhcyBhIGdvb2Qgb3IgYVxuLy8gYmFkIG9uZS5cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3MtbnZ0LWRpdmlkZXIge1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiB2YXIoLS1zLTMsIDEycHgpIDAgdmFyKC0tcy0yLCA4cHgpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbn1cblxuLnFkbmFwcm8tc2NvcmUtc2NhbGUgLnFzcy1udnQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IC8vIHNldCBhcGFydCBhdCB0aGUgdHJhaWxpbmcgZWRnZSwgYXdheSBmcm9tIHRoZSBzY2FsZVxuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBwYWRkaW5nOiAwIHZhcigtLXMtNCwgMTZweCk7XG4gIC8vIEVlbiB6aWNodGJhcmUgcmFuZCBlbiBlZW4gZWlnZW4gdmxhazogem9uZGVyIGRpZSB0d2VlIGxlZXN0IGRlemUga25vcCBhbHMgZWVuXG4gIC8vIG9uZGVyc2NocmlmdCBlbiBuaWV0IGFscyBlZW4gYW50d29vcmQgZGF0IGplIGt1bnQga2llemVuIChnZW1ldGVuIGluIGRlXG4gIC8vIGNvbXBvbmVudHBhZ2luYSwgMjUuMDguMjAyNiAtIGRlIGVlcnN0ZSB2ZXJzaWUgbWV0IGVlbiBoYWFzdCBvbnppY2h0YmFyZSByYW5kIHdhc1xuICAvLyBtZXQgaGV0IG9vZyBuaWV0IHZhbiBnZXdvbmUgdGVrc3QgdGUgb25kZXJzY2hlaWRlbikuXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQsICNlMWUzZTYpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwsIDk5OXB4KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjpcbiAgICBiYWNrZ3JvdW5kLWNvbG9yIDE1MG1zIGVhc2Utb3V0LFxuICAgIGJvcmRlci1jb2xvciAxNTBtcyBlYXNlLW91dCxcbiAgICBjb2xvciAxNTBtcyBlYXNlLW91dDtcbn1cbi5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3MtbnZ0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpOm5vdCguaXMtc2VsZWN0ZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmNGY1ZjgpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyLXRyZWUsICNkNGQ4ZWMpO1xufVxuLnFkbmFwcm8tc2NvcmUtc2NhbGUgLnFzcy1udnQ6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4ucWRuYXByby1zY29yZS1zY2FsZSAucXNzLW52dDpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG59XG4vLyBTZWxlY3RlZDogYSBTSEFQRSBjdWUgYXMgd2VsbCBhcyBhIGNvbG91ciBvbmUgKGhlYXZpZXIgYm9yZGVyLCBib2xkIHRleHQpLFxuLy8gc28gaXQgbmV2ZXIgZGVwZW5kcyBvbiBjb2xvdXIgYWxvbmUgLSBzYW1lIGRpc2NpcGxpbmUgYXMgdGhlIGJhcidzXG4vLyBncm93LW91dCBjdWUuXG4ucWRuYXByby1zY29yZS1zY2FsZSAucXNzLW52dC5pcy1zZWxlY3RlZCB7XG4gIGJvcmRlci13aWR0aDogMnB4O1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMTQxNTFhKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmNGY1ZjgpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICMxNDE1MWEpO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLnFkbmFwcm8tc2NvcmUtc2NhbGUuaXMtZGlzYWJsZWQgLnFzcy1udnQge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc2NvcmUtc2NhbGUgLnFzcy1udnQtZGl2aWRlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLWNhcmQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCkpO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3MtbnZ0IHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJvcmRlci1jYXJkLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTApKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjMjYyNjJiKTtcbn1cblxuLy8gT24gYSBuYXJyb3cgc2NyZWVuIHRoZSBwaWxsIGdvZXMgZnVsbCB3aWR0aDogaXQgaXMgdGhlIG9uZSBvcHRpb24gdGhhdCBpc1xuLy8gcHVyZSB0ZXh0LCBzbyBpdCBpcyBhbHNvIHRoZSBvbmUgdGhhdCByZWFkcyBhcyBcInVucmVhY2hhYmxlXCIgd2hlbiBpdCBlbmRzXG4vLyB1cCBhcyBhIHNtYWxsIHRhcmdldCBpbiB0aGUgY29ybmVyLlxuQG1lZGlhIChtYXgtd2lkdGg6IDQyMHB4KSB7XG4gIC5xZG5hcHJvLXNjb3JlLXNjYWxlIC5xc3MtbnZ0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLy8gLS0tLSBEaXNhYmxlZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucWRuYXByby1zY29yZS1zY2FsZS5pcy1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTU7XG59XG4ucWRuYXByby1zY29yZS1zY2FsZS5pcy1kaXNhYmxlZCAucXNzLXNlZ21lbnQge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4vLyAtLS0tIERhcmsgbW9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSYXcgcGFsZXR0ZSB0b2tlbnMgKC0tYy13YXJuLSosIC0tYy1zdWNjZXNzLWJyaWdodCkgZG8gTk9UIGF1dG8tZmxpcCB1bmRlclxuLy8gW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC0gb25seSBzZW1hbnRpYyB0b2tlbnMgZG8gKHNlZSBfZGVzaWduLXRva2Vucy5zY3NzJ3Ncbi8vIGRhcmsgb3ZlcnJpZGUgYmxvY2spLiBUaGlzIGNvbXBvbmVudCdzIGxvY2FsIC0tcXNzLSogY3VzdG9tIHByb3BzIGFyZVxuLy8gcmVkZWZpbmVkIGhlcmUsIHNhbWUgcGF0dGVybiBhcyBxZG5hcHJvLXNsaWRlci9xZG5hcHJvLXRvZ2dsZS5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zY29yZS1zY2FsZSB7XG4gIC0tcXNzLW5ldXRyYWwtaWRsZS1iZzogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRoZW1lLWJ0bi1jb2xvciwgIzQwNDk5YSkgMjIlLCB2YXIoLS1jLWdyZXktOTAwLCAjMTgxODFjKSk7XG4gIC0tcXNzLW5ldXRyYWwtaWRsZS10ZXh0OiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSA3MCUsICNmZmYpO1xuICAtLXFzcy1uZXV0cmFsLXNlbGVjdGVkLWJnOiB2YXIoLS10aGVtZS1idG4tc2VsZWN0ZWQtY29sb3IsIHZhcigtLXRoZW1lLWJ0bi1jb2xvciwgIzQwNDk5YSkpO1xuICAtLXFzcy1uZXV0cmFsLXNlbGVjdGVkLXRleHQ6IHZhcigtLXRoZW1lLWJ0bi1zZWxlY3RlZC10ZXh0LWNvbG9yLCAjZmZmKTtcbiAgLS1xc3Mtc2VwYXJhdG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIC0tcXNzLXNlbGVjdGVkLXNoYWRvdzogMCA4cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuNDUpLCAwIDJweCA2cHggcmdiYSgwLCAwLCAwLCAwLjMwKTtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zY29yZS1zY2FsZSAucXNzLWJhbmQge1xuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jLWJvcmRlci1zb2Z0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpKTtcbn1cblxuLy8gLS0tLSBOYXJyb3cgdmlld3BvcnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gMTEgc2VnbWVudHMgKDAtMTApIGdldCB+MzRweCB3aWRlIG9uIGEgbmFycm93IHBob25lIHNjcmVlbiAtIGFjY2VwdGFibGVcbi8vIGJlY2F1c2Ugb2YgdGhlIDU2cHggaGVpZ2h0LiBEbyBOT1Qgd3JhcCB0byB0d28gcm93czsgc2hyaW5rIHRoZSBudW1iZXJcbi8vIGluc3RlYWQgc28gdHdvLWRpZ2l0IHZhbHVlcyAoXCIxMFwiKSBzdGlsbCBmaXQgY29tZm9ydGFibHkuXG5AbWVkaWEgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgLnFkbmFwcm8tc2NvcmUtc2NhbGUgLnFzcy1zZWdtZW50IHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gIH1cbn1cblxuLy8gLS0tLSBSZWR1Y2VkIG1vdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZSBncm93LW91dCBwb3Agb24gc2VsZWN0aW9uIGlzIHB1cmVseSBkZWNvcmF0aXZlIG1vdGlvbiAtIHRoZSBzaGFwZS9zaXplXG4vLyBjaGFuZ2UgaXRzZWxmIHN0aWxsIGhhcHBlbnMgaW5zdGFudGx5LCBvbmx5IHRoZSBhbmltYXRlZCB0cmFuc2l0aW9uIGlzXG4vLyByZW1vdmVkLCBzYW1lIHBhdHRlcm4gYXMgcWRuYXByby1wcm9ncmVzcy4gW3JlZGVzaWduIDExLjA3LjIwMjZdXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby1zY29yZS1zY2FsZSAucXNzLXNlZ21lbnQge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cbiIsIi8vIHFkbmFwcm8tbGlrZXJ0LXNjYWxlIC0gaG9yaXpvbnRhbCByb3cgb2YgTiAoNSBvciA3KSBldmVubHkgc3BhY2VkIGNpcmNsZXMsXG4vLyBlYWNoIHdpdGggaXRzIG93biBib2xkIGFuY2hvciBsYWJlbCBBQk9WRSBpdCAod3JhcHMgdG8gMiBsaW5lcywgY2VudGVyZWQpLlxuLy8gVGhlIGNpcmNsZSBpcyBhIHJpbmcgYnkgZGVmYXVsdDsgdGhlIFNFTEVDVEVEIGNpcmNsZSBmaWxscyB3aXRoIHRoZSBhY2NlbnRcbi8vIGNvbG91ci4gRkxBVCBDU1M7IGNvbG91cnMgY29tZSBmcm9tIHRoZSBkZXNpZ24tdG9rZW4gOnJvb3QgKHZhcigtLWMtKikpLlxuLy8gRWRpdCBIRVJFLCB0aGVuIGBndWxwIHNhc3MtdjFgLlxuLy9cbi8vIFNoYXJlZCBhbnN3ZXIgY29udHJvbCBpbiB0aGUgc2FtZSBmYW1pbHkgYXMgcWRuYXByby1zY29yZS1zY2FsZSBhbmRcbi8vIHFkbmFwcm8tYW5zd2VyLWJ1dHRvbiAtIHNhbWUgdGhlbWUtY29sb3VyIGhvb2sgZmFtaWx5LCBzYW1lIHRhcC10by1kZXNlbGVjdFxuLy8gY29udmVudGlvbi5cblxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlIHtcbiAgLy8gVGhlbWVhYmxlIGFjY2VudCAoZmlsbC9yaW5nKSBjb2xvdXIgLSBhIGNvbnN1bWVyIGNhbiBmb2xsb3cgYSBub2RlJ3NcbiAgLy8gY29uZmlndXJlZCBjb2xvdXIgdmlhIHN0eWxlPVwiLS1saWtlcnQtYWNjZW50OiAjeHh4eHh4XCIuIERlZmF1bHQgaXMgdGhlXG4gIC8vIHRoZW1lLWVkaXRvciBidXR0b24gY29sb3VyICgtLXRoZW1lLWJ0bi1jb2xvciksIHRoZSBTQU1FIGhvb2sgdGhlIHJlc3Qgb2ZcbiAgLy8gdGhlIGFuc3dlci1jb250cm9sIGZhbWlseSB1c2VzIChxZG5hcHJvLWFuc3dlci1idXR0b24sIHFkbmFwcm8tc2NvcmUtc2NhbGUpLFxuICAvLyBzbyBhIGN1c3RvbWVyIHRoZW1lIHJlY29sb3VycyB0aGlzIGNvbnRyb2wgdG9vLiBGYWxscyBiYWNrIHRvIHRoZSBicmFuZFxuICAvLyBwdXJwbGUgc2VtYW50aWMgdG9rZW4sIHRoZW4gdG8gdGhlIHJhdyBoZXgsIGZvciBwYWdlcyB0aGF0IHNldCBubyB0aGVtZS5cbiAgLS1saWtlcnQtYWNjZW50OiB2YXIoLS10aGVtZS1idG4tY29sb3IsIHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKSk7XG4gIC8vIENoZWNrLW1hcmsgc3Ryb2tlIG9uIGEgZmlsbGVkIGRvdDogZm9sbG93cyB0aGUgdGhlbWUncyBidXR0b24gdGV4dCBjb2xvdXJcbiAgLy8gc28gYSBsaWdodCB0aGVtZSBjb2xvdXIga2VlcHMgYSByZWFkYWJsZSB0aWNrLlxuICAtLXFscy1jaGVjay1jb2xvcjogdmFyKC0tdGhlbWUtYnRuLXRleHQtY29sb3IsICNmZmYpO1xuICAtLXFscy1udnQtY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xuICAtLXFscy1udnQtcmluZzogdmFyKC0tYy1ncmV5LTQwMCwgI2E2YWFiMyk7XG4gIC0tcWxzLWNpcmNsZS1zaXplOiAyOHB4O1xuICAtLXFscy1nYXA6IHZhcigtLXMtMiwgOHB4KTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbiAgLy8gTGV0cyB0aGUgcm93IHJlc3BvbmQgdG8gdGhlIHNwYWNlIElUIGFjdHVhbGx5IGhhcyAoYSBmbG93LWVkaXRvciBub2RlXG4gIC8vIHByZXZpZXcgY29sdW1uIGNhbiBiZSBtdWNoIG5hcnJvd2VyIHRoYW4gdGhlIHZpZXdwb3J0KSwgbm90IGp1c3QgdGhlXG4gIC8vIHZpZXdwb3J0IHdpZHRoLlxuICBjb250YWluZXI6IHFkbmFwcm8tbGlrZXJ0LXNjYWxlIC8gaW5saW5lLXNpemU7XG5cbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxufVxuXG4vLyAtLS0tIFJvdyAocmFkaW9ncm91cDogc2NhbGUgKyBvcHRpb25hbCBkaXZpZGVyICsgbi52LnQuKSAtLS0tLS0tLS0tLS0tLS0tLS1cbi5xZG5hcHJvLWxpa2VydC1zY2FsZV9fcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBnYXA6IHZhcigtLXMtNCwgMTZweCk7XG4gIC8vIFZlcnRpY2FsIGJyZWF0aGluZyByb29tIHNvIHRoZSBTRUxFQ1RFRCBjaXJjbGUgKHNjYWxlIDEuMDggKyBmb2N1cyByaW5nKVxuICAvLyBpcyBuZXZlciBjbGlwcGVkIGJ5IG92ZXJmbG93LXkgYmVsb3cuIFNtYWxsIGlubGluZSBwYWRkaW5nIGtlZXBzIHRoZSBmaXJzdFxuICAvLyBhbmQgbGFzdCBjaXJjbGUncyBmb2N1cyByaW5nIG9mZiB0aGUgc2Nyb2xsIGVkZ2UgdG9vLlxuICBwYWRkaW5nOiA2cHggNHB4IDlweDtcbiAgLy8gU2FmZXR5IG5ldCBPTkxZOiBhdCBleHRyZW1lIHdpZHRocyAobWFueSBwb2ludHMgaW4gYSB2ZXJ5IG5hcnJvd1xuICAvLyBjb250YWluZXIpIHRoZSByb3cgc2Nyb2xscyBob3Jpem9udGFsbHkgaW5zdGVhZCBvZiB3cmFwcGluZyB0byBhIHNlY29uZFxuICAvLyByb3cgb3IgY2xpcHBpbmcgY29udGVudC4gVGh1bWItb25seSBzY3JvbGxiYXIgcGVyIGhvdXNlIGNvbnZlbnRpb24uXG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cbi5xZG5hcHJvLWxpa2VydC1zY2FsZV9fcm93Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gIGhlaWdodDogNnB4O1xufVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19yb3c6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGVfX3Jvdzo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19yb3c6aG92ZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19yb3c6Zm9jdXMtd2l0aGluOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yMik7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGVfX3Jvdzo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzQpO1xufVxuXG4vLyAtLS0tIFNjYWxlICh0aGUgTiBldmVubHktc3BhY2VkIHBvaW50cykgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucWRuYXByby1saWtlcnQtc2NhbGVfX3NjYWxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMSAxIGF1dG87XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiB2YXIoLS1zLTEsIDRweCk7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLy8gLS0tLSBJdGVtICh3cmFwcyBPTkUgb3B0aW9uIGJ1dHRvbiwga2VlcHMgaXRzIHNoYXJlIG9mIHRoZSByb3cncyB3aWR0aCkgLS0tLVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMSAxIDA7XG4gIG1pbi13aWR0aDogMDtcbn1cbi8vIFRoZSBuLnYudC4gaXRlbSBzaXRzIE9VVFNJREUgdGhlIHNwYWNlLWJldHdlZW4gc2NhbGUsIHNvIGl0IG5ldmVyIHN0cmV0Y2hlc1xuLy8gLSBpdCBrZWVwcyBpdHMgbmF0dXJhbCAobGFiZWwtZHJpdmVuKSB3aWR0aC5cbi5xZG5hcHJvLWxpa2VydC1zY2FsZV9faXRlbS0tbnZ0IHtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbi8vIC0tLS0gT3B0aW9uICh0aGUgdGFwIHRhcmdldDogZG90ICsgbGFiZWwsIG9uZSA8YnV0dG9uIHJvbGU9XCJyYWRpb1wiPikgLS0tLS0tXG4vLyBUaGUgV0hPTEUgb3B0aW9uIC0gZG90ICsgbGFiZWwgLSBpcyBhIHNpbmdsZSBidXR0b24gc28gdGhlIGVudGlyZSByb3cgaXNcbi8vIGNsaWNrYWJsZS90YXBwYWJsZSwgbm90IGp1c3QgdGhlIDI4cHggZG90IChLaW0sIDIwLjA3LjIwMjY6IHVzZXJzIHdlcmVcbi8vIG1pc2NsaWNraW5nIGJlY2F1c2Ugb25seSB0aGUgZG90IHVzZWQgdG8gYmUgYSBoaXQgdGFyZ2V0KS4gTGF5b3V0LW9ubHlcbi8vIGhlcmU7IHRoZSBkb3QncyByaW5nL2ZpbGwvY2hlY2stbWFyayB2aXN1YWxzIGxpdmUgb24gdGhlIHNlcGFyYXRlIC5kb3Rcbi8vIGNoaWxkIGJlbG93IHNvIHRoZSBhY2NlbnQgZmlsbCBuZXZlciBibGVlZHMgYWNyb3NzIHRoZSBsYWJlbCB0ZXh0LlxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19vcHRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXFscy1nYXApO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogNHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTUwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGVfX29wdGlvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5xZG5hcHJvLWxpa2VydC1zY2FsZV9fbGFiZWwge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA5NnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8vIEFua2VydGVrc3QgaXMga2xhbnRlbnRla3N0OyDDqcOpbiBsYW5nIHdvb3JkIChvZiBlZW4gd29vcmQgbWV0IHNjaHVpbmUgc3RyZXBlbiwgd2F0XG4gIC8vIGdlZW4gYWZicmVla3B1bnQgaXMpIGxpZXAgYW5kZXJzIGJ1aXRlbiBkZSBrb2xvbS4gWzE4LjA5LjIwMjZdXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAvLyBBbHdheXMgd3JhcHMgdG8gKHVwIHRvKSAyIGxpbmVzIGFuZCByZXNlcnZlcyB0aGF0IGhlaWdodCwgc28gZXZlcnlcbiAgLy8gZG90IGluIHRoZSByb3cgc3RheXMgYWxpZ25lZCByZWdhcmRsZXNzIG9mIGluZGl2aWR1YWwgbGFiZWwgbGVuZ3RoLlxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtaW4taGVpZ2h0OiBjYWxjKDEuMjVlbSAqIDIpO1xufVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19pdGVtLS1udnQgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xufVxuXG4vLyAtLS0tIERpdmlkZXIgKHZpc3VhbCBcIm9mZiB0aGUgc2NhbGVcIiBzZXBhcmF0b3IgYmVmb3JlIG4udi50LikgLS0tLS0tLS0tLS0tLVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19kaXZpZGVyIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgd2lkdGg6IDFweDtcbiAgbWluLXdpZHRoOiAxcHg7XG4gIG1hcmdpbi10b3A6IGNhbGMoKDEuMjVlbSAqIDIpICsgdmFyKC0tcWxzLWdhcCkpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci1zb2Z0LTIsICNlNmU5ZWYpO1xufVxuXG4vLyAtLS0tIERvdCAoZGVjb3JhdGl2ZSB2aXN1YWwgcmluZyAtIGEgY2hpbGQgb2YgLm9wdGlvbiwgbm90IHRoZSBidXR0b25cbi8vIGl0c2VsZiwgc28gdGhlIGFjY2VudCBmaWxsL3NjYWxlIG9uIHNlbGVjdGlvbiBuZXZlciBibGVlZHMgYWNyb3NzIHRoZVxuLy8gbGFiZWwgdGV4dCkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucWRuYXByby1saWtlcnQtc2NhbGVfX2RvdCB7XG4gIHdpZHRoOiB2YXIoLS1xbHMtY2lyY2xlLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXFscy1jaXJjbGUtc2l6ZSk7XG4gIG1pbi13aWR0aDogdmFyKC0tcWxzLWNpcmNsZS1zaXplKTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tbGlrZXJ0LWFjY2VudCk7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAvLyBDZW50cmUgdGhlIGNoZWNrLW1hcmsgc3ZnIGluc2lkZSB0aGUgZG90LlxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRyYW5zaXRpb246XG4gICAgYmFja2dyb3VuZC1jb2xvciAxNTBtcyBlYXNlLW91dCxcbiAgICBib3JkZXItY29sb3IgMTUwbXMgZWFzZS1vdXQsXG4gICAgYm94LXNoYWRvdyAxNTBtcyBlYXNlLW91dCxcbiAgICB0cmFuc2Zvcm0gMTAwbXMgZWFzZS1vdXQ7XG59XG5cbi8vIEFuaW1hdGVkIGNoZWNrLW1hcms6IGhpZGRlbiByaW5nIGJ5IGRlZmF1bHQsIGRyYXdzIGluICsgcG9wcyB3aGVuIHNlbGVjdGVkLlxuLy8gU2FtZSBtb3Rpb24gYXMgcWRuYXByby1hbnN3ZXItYnV0dG9uIChxYWItZHJhdyAvIHFhYi10aWNrLXBvcCksIHJldXNlZCBoZXJlIHNvXG4vLyB0aGUgZmllbGQgYXBwIChQV0EpIGFuZCB0aGUgZWRpdG9yIHByZXZpZXcgc2hhcmUgb25lIGFuaW1hdGlvbi4gVGhlIHN0cm9rZVxuLy8gY29sb3VyIGNvbnRyYXN0cyBhZ2FpbnN0IHRoZSBmaWxsZWQgZG90IChhY2NlbnQgb3Igbi52LnQuIGdyZXkpLlxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19jaGVjayB7XG4gIHdpZHRoOiA1OCU7XG4gIGhlaWdodDogNTglO1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6IHZhcigtLXFscy1jaGVjay1jb2xvciwgI2ZmZik7XG4gIHN0cm9rZS13aWR0aDogMi41O1xuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gIHN0cm9rZS1saW5lam9pbjogcm91bmQ7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDI0O1xuICBzdHJva2UtZGFzaG9mZnNldDogMjQ7IC8vIGZ1bGx5IGhpZGRlbiB1bnRpbCBzZWxlY3RlZFxuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGVfX29wdGlvbi5pcy1zZWxlY3RlZCAucWRuYXByby1saWtlcnQtc2NhbGVfX2NoZWNrIHtcbiAgb3BhY2l0eTogMTtcbiAgYW5pbWF0aW9uOlxuICAgIHFscy1jaGVjay1wb3AgMC41MnMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNSwgMSksXG4gICAgcWxzLWNoZWNrLWRyYXcgMC4zOHMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpIDAuMDRzIGZvcndhcmRzO1xufVxuQGtleWZyYW1lcyBxbHMtY2hlY2stcG9wIHtcbiAgMCUgICB7IHRyYW5zZm9ybTogc2NhbGUoMC43KSAgcm90YXRlKDBkZWcpOyAgfVxuICAyMCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjIyKSByb3RhdGUoLTVkZWcpOyB9XG4gIDQ0JSAgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTApIHJvdGF0ZSgzZGVnKTsgIH1cbiAgNjQlICB7IHRyYW5zZm9ybTogc2NhbGUoMS4wOCkgcm90YXRlKC0xZGVnKTsgfVxuICA4MCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk3KSByb3RhdGUoMGRlZyk7ICB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpICAgIHJvdGF0ZSgwZGVnKTsgIH1cbn1cbkBrZXlmcmFtZXMgcWxzLWNoZWNrLWRyYXcge1xuICAwJSAgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDI0OyAgfVxuICA2MiUgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xOyAgfVxuICA4MCUgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDAuNzsgfVxuICAxMDAlIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7ICAgfVxufVxuLy8gUmVzcGVjdCByZWR1Y2VkLW1vdGlvbjogc2hvdyB0aGUgY2hlY2sgaW5zdGFudGx5LCBubyBkcmF3L3BvcC5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fb3B0aW9uLmlzLXNlbGVjdGVkIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fY2hlY2sge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgfVxufVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19vcHRpb246aG92ZXI6bm90KDpkaXNhYmxlZCk6bm90KC5pcy1zZWxlY3RlZCkgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19kb3Qge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbGlrZXJ0LWFjY2VudCkgMTIlLCB0cmFuc3BhcmVudCk7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGVfX29wdGlvbjpmb2N1cy12aXNpYmxlIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZG90IHtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1saWtlcnQtYWNjZW50KSAzMCUsIHRyYW5zcGFyZW50KTtcbn1cbi5xZG5hcHJvLWxpa2VydC1zY2FsZV9fb3B0aW9uLmlzLXNlbGVjdGVkIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZG90IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbGlrZXJ0LWFjY2VudCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbGlrZXJ0LWFjY2VudCk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wOCk7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGVfX29wdGlvbjphY3RpdmU6bm90KDpkaXNhYmxlZCkgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19kb3Qge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTQpO1xufVxuXG4vLyBuLnYudC4gZG90OiBhbHdheXMgbmV1dHJhbCBncmV5LCBORVZFUiB0aGUgYWNjZW50IGNvbG91ciAtIGl0IGlzXG4vLyB2aXN1YWxseSBcIm9mZiB0aGUgc2NhbGVcIi5cbi5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZG90LS1udnQge1xuICBib3JkZXItY29sb3I6IHZhcigtLXFscy1udnQtcmluZyk7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGVfX29wdGlvbi0tbnZ0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpOm5vdCguaXMtc2VsZWN0ZWQpIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZG90IHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXFscy1udnQtY29sb3IpIDEyJSwgdHJhbnNwYXJlbnQpO1xufVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19vcHRpb24tLW52dDpmb2N1cy12aXNpYmxlIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZG90IHtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1xbHMtbnZ0LWNvbG9yKSAzMCUsIHRyYW5zcGFyZW50KTtcbn1cbi5xZG5hcHJvLWxpa2VydC1zY2FsZV9fb3B0aW9uLS1udnQuaXMtc2VsZWN0ZWQgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19kb3Qge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1xbHMtbnZ0LWNvbG9yKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1xbHMtbnZ0LWNvbG9yKTtcbn1cblxuLy8gLS0tLSBSZWFkb25seSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTaG93cyB0aGUgY3VycmVudCBzZWxlY3Rpb24gYnV0IGlnbm9yZXMgaW50ZXJhY3Rpb24gLSBub3JtYWwgKG5vdCBkaW1tZWQpXG4vLyBsb29rLCBkaXN0aW5jdCBmcm9tIGRpc2FibGVkLlxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlLmlzLXJlYWRvbmx5IC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fb3B0aW9uIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlLmlzLXJlYWRvbmx5IC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fb3B0aW9uOmhvdmVyIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZG90IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGUuaXMtcmVhZG9ubHkgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19vcHRpb24tLW52dDpob3ZlciAucWRuYXByby1saWtlcnQtc2NhbGVfX2RvdCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8tbGlrZXJ0LXNjYWxlLmlzLXJlYWRvbmx5IC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fb3B0aW9uLmlzLXNlbGVjdGVkIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZG90IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tbGlrZXJ0LWFjY2VudCk7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGUuaXMtcmVhZG9ubHkgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19vcHRpb24tLW52dC5pcy1zZWxlY3RlZCAucWRuYXByby1saWtlcnQtc2NhbGVfX2RvdCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXFscy1udnQtY29sb3IpO1xufVxuXG4vLyAtLS0tIERpc2FibGVkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5xZG5hcHJvLWxpa2VydC1zY2FsZS5pcy1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTU7XG59XG4ucWRuYXByby1saWtlcnQtc2NhbGUuaXMtZGlzYWJsZWQgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19vcHRpb24ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4vLyAtLS0tIERhcmsgbW9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSYXcgcGFsZXR0ZSB0b2tlbnMgZG8gTk9UIGF1dG8tZmxpcCB1bmRlciBbZGF0YS10aGVtZT1cImRhcmtcIl0gLSBvbmx5XG4vLyBzZW1hbnRpYyB0b2tlbnMgZG8gKHNlZSBfZGVzaWduLXRva2Vucy5zY3NzJ3MgZGFyayBvdmVycmlkZSBibG9jaykuXG4vLyAtLWxpa2VydC1hY2NlbnQgZm9sbG93cyAtLXRoZW1lLWJ0bi1jb2xvciwgd2hpY2ggaXMgdGhlIGN1c3RvbWVyJ3MgdGhlbWVcbi8vIGNvbG91ciBhbmQgZGVsaWJlcmF0ZWx5IGRvZXMgTk9UIGZsaXAgaW4gZGFyayBtb2RlIChzYW1lIGFzXG4vLyBxZG5hcHJvLWFuc3dlci1idXR0b24gYW5kIHFkbmFwcm8tc2NvcmUtc2NhbGUpOyBvbmx5IHRoZSBsb2NhbCAtLXFscy0qIGdyZXlzXG4vLyBhbmQgdGhlIGRpdmlkZXIgY29sb3VyIG5lZWQgYSByZWRlY2xhcmUgaGVyZS5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1saWtlcnQtc2NhbGUge1xuICAtLXFscy1udnQtY29sb3I6IHZhcigtLWMtZ3JleS00MDAsICNhNmFhYjMpO1xuICAtLXFscy1udnQtcmluZzogdmFyKC0tYy1ncmV5LTYwMCwgIzU2NWI2Nik7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19kaXZpZGVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItc29mdCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSk7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgI2UxZTNlNik7XG59XG5cbi8vIC0tLS0gTmFycm93IGNvbnRhaW5lcnM6IFNUQUNLIHZlcnRpY2FsbHkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJlbG93IHRoaXMgd2lkdGggdGhlIGxhYmVscyBjYW4ndCBzaXQgc2lkZSBieSBzaWRlIChOIHBvaW50cywgc29tZSBsYWJlbHMgYXJlXG4vLyBsb25nLCBlLmcuIFwiTmlldCBvbnRldnJlZGVuLCBuaWV0IHRldnJlZGVuXCIpLCBzbyB0aGUgc2NhbGUgZmxvd3MgdG9wLXRvLWJvdHRvbTpcbi8vIGVhY2ggb3B0aW9uIGJlY29tZXMgYSBbZG90XSBbbGFiZWxdIHJvdy4gVGhpcyBpcyB0aGUgcGhvbmUgLyBQV0EgbGF5b3V0IEFORFxuLy8gdGhlIGZsb3ctZWRpdG9yIG5vZGUtcHJldmlldyBjb2x1bW4gbGF5b3V0IChib3RoIG5hcnJvd2VyIHRoYW4gdGhlIGJyZWFrcG9pbnQpLlxuLy8gQWJvdmUgaXQsIHRoZSBob3Jpem9udGFsIGxhYmVsLWFib3ZlLWRvdCBsYXlvdXQgaXMga2VwdCDigJQgdXNlZCBvbmx5IHdoZW5cbi8vIHRoZXJlIGlzIGdlbnVpbmVseSByb29tIGZvciBldmVyeSBsYWJlbC4gQ29udGFpbmVyIHF1ZXJ5ID0gcmVzcG9uZHMgdG8gdGhlXG4vLyBjb21wb25lbnQncyBPV04gd2lkdGgsIHNvIHByZXZpZXcgYW5kIGFwcCBiZWhhdmUgaWRlbnRpY2FsbHkuIFRoZSAub3B0aW9uXG4vLyBidXR0b24gaXRzZWxmIGNhcnJpZXMgdGhlIFtkb3RdW2xhYmVsXSByb3cgbGF5b3V0IGhlcmUgKG5vdCAuaXRlbSwgd2hpY2hcbi8vIG5vdyBvbmx5IHdyYXBzIHRoYXQgb25lIGJ1dHRvbikgLSBzZWUgdGhlIFwiT3B0aW9uXCIgYmxvY2sgYWJvdmUuXG5AY29udGFpbmVyIHFkbmFwcm8tbGlrZXJ0LXNjYWxlIChtYXgtd2lkdGg6IDY4MHB4KSB7XG4gIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlOyAvLyBubyBob3Jpem9udGFsIHNjcm9sbCB3aGVuIHN0YWNrZWRcbiAgfVxuICAucWRuYXByby1saWtlcnQtc2NhbGVfX3NjYWxlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICB9XG4gIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9faXRlbSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cbiAgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19vcHRpb24ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiB2YXIoLS1zLTMsIDEycHgpO1xuICAgIC8vIENvbWZvcnRhYmxlIGZ1bGwtcm93IHRhcCB0YXJnZXQgKHRoaXMgaXMgYWxzbyB0aGUgUFdBL3Bob25lIGxheW91dCk6XG4gICAgLy8gdGhlIFdIT0xFIHJvdyAtIGRvdCArIGxhYmVsIC0gaXMgdGhlIGhpdCBhcmVhIG5vdywgbm90IGp1c3QgdGhlIDI4cHhcbiAgICAvLyBkb3QsIHBlciB0aGUgfjQ0cHggdG91Y2gtdGFyZ2V0IGNvbnZlbnRpb24uXG4gICAgbWluLWhlaWdodDogNDRweDtcbiAgICBwYWRkaW5nOiA2cHggNHB4O1xuICB9XG4gIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZG90IHsgb3JkZXI6IDA7IH0gLy8gZG90IGZpcnN0IChsZWZ0KVxuICAucWRuYXByby1saWtlcnQtc2NhbGVfX2xhYmVsIHtcbiAgICBvcmRlcjogMTtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogaW5pdGlhbDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuICAvLyBUaGUgdmVydGljYWwgXCJvZmYgdGhlIHNjYWxlXCIgZGl2aWRlciBpcyBtZWFuaW5nbGVzcyB3aGVuIHN0YWNrZWQ7IHVzZSBhXG4gIC8vIHRvcCBib3JkZXIgKyBzcGFjaW5nIG9uIHRoZSBuLnYudC4gcm93IGluc3RlYWQuXG4gIC5xZG5hcHJvLWxpa2VydC1zY2FsZV9fZGl2aWRlciB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19pdGVtLS1udnQge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXMtMiwgOHB4KTtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tcy0zLCAxMnB4KTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yLCAjZTZlOWVmKTtcbiAgfVxufVxuXG4vLyAtLS0tIFJlZHVjZWQgbW90aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnFkbmFwcm8tbGlrZXJ0LXNjYWxlX19kb3Qge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cbiIsIi8vIHFkbmFwcm8tc21pbGV5IOKAlCBvbmUgZmVlZGJhY2sgZW1vdGljb24gcmVuZGVyZWQgZnJvbSB0aGUgc21pbGVfaWNvbnMgU1ZHIHNldC5cbi8vIFdyYXBzIGEgc2luZ2xlIDxpbWc+OyBzaXplIGlzIGRyaXZlbiBieSB0aGUgLS1zbWlsZXktc2l6ZSBjdXN0b20gcHJvcGVydHlcbi8vIChzZXQgdmlhIHRoZSBgc2l6ZWAgYXR0cmlidXRlIG9yIG92ZXJyaWRkZW4gYnkgYSBwYXJlbnQsIGUuZy4gdGhlIHNtaWxleVxuLy8gc2VnbWVudC10aWxlIHZhcmlhbnQpLlxuXG4ucWRuYXByby1zbWlsZXkge1xuICAgIC0tc21pbGV5LXNpemU6IDU2cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMDtcbn1cblxuLy8gLnFkbmFwcm8tc21pbGV5X192aXN1YWwgd3JhcHMgdGhlIDxpbWc+IHNvIGlkbGUvcmVhY3Rpb24gdHJhbnNmb3JtcyBiZWxvd1xuLy8gbmV2ZXIgZmlnaHQgdGhlIGhvc3QncyBvd24gbGF5b3V0IGJveC4gUHJlc2VudCByZWdhcmRsZXNzIG9mIGBpbnRlcmFjdGl2ZWBcbi8vIChubyBzaXplIG9mIGl0cyBvd24g4oCUIGhhcm1sZXNzIHdoZW4gc3RhdGljKS5cbi5xZG5hcHJvLXNtaWxleV9fdmlzdWFsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNzglO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi5xZG5hcHJvLXNtaWxleV9faW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogdmFyKC0tc21pbGV5LXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tc21pbGV5LXNpemUpO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8vIC0tLS0gaW50ZXJhY3RpdmU6IGlkbGUgd29iYmxlICsgdGFwLXJlYWN0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gT3B0LWluIHZpYSB0aGUgYGludGVyYWN0aXZlYCBhdHRyaWJ1dGUuIFNjb3BlZCBieSBgW2RhdGEtZmFjZV1gICh0aGVcbi8vIFJFU09MVkVEIGZhY2UsIHNldCBpbiBKUyksIG5ldmVyIGJ5IGNvbG91ci9lbW8tc3R5bGUg4oCUIHNvIHRoZSBzYW1lXG4vLyBjaG9yZW9ncmFwaHkgYXBwbGllcyBpZGVudGljYWxseSB3aGV0aGVyIHRoZSB1bmRlcmx5aW5nIGFzc2V0IGlzXG4vLyBuZXV0cmFsL2NvbG91cmVkLCBkZWZhdWx0L2V4cHJlc3NpdmUsIGFueSBzaXplLlxuLnFkbmFwcm8tc21pbGV5LS1pbnRlcmFjdGl2ZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby1zbWlsZXktLWludGVyYWN0aXZlOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4ucWRuYXByby1zbWlsZXktLWludGVyYWN0aXZlW2RhdGEtZmFjZT1cInNhZFwiXSAucWRuYXByby1zbWlsZXlfX3Zpc3VhbCB7IGFuaW1hdGlvbjogcXNtLWlkbGUtc2FkIDQuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH1cbi5xZG5hcHJvLXNtaWxleS0taW50ZXJhY3RpdmVbZGF0YS1mYWNlPVwibWVoXCJdIC5xZG5hcHJvLXNtaWxleV9fdmlzdWFsIHsgYW5pbWF0aW9uOiBxc20taWRsZS1tZWggNS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTsgfVxuLnFkbmFwcm8tc21pbGV5LS1pbnRlcmFjdGl2ZVtkYXRhLWZhY2U9XCJva1wiXSAucWRuYXByby1zbWlsZXlfX3Zpc3VhbCB7IGFuaW1hdGlvbjogcXNtLWlkbGUtb2sgMy42cyBlYXNlLWluLW91dCBpbmZpbml0ZTsgfVxuLnFkbmFwcm8tc21pbGV5LS1pbnRlcmFjdGl2ZVtkYXRhLWZhY2U9XCJzbWlsZVwiXSAucWRuYXByby1zbWlsZXlfX3Zpc3VhbCB7IGFuaW1hdGlvbjogcXNtLWlkbGUtc21pbGUgMi44cyBlYXNlLWluLW91dCBpbmZpbml0ZTsgfVxuLnFkbmFwcm8tc21pbGV5LS1pbnRlcmFjdGl2ZVtkYXRhLWZhY2U9XCJ5YXlcIl0gLnFkbmFwcm8tc21pbGV5X192aXN1YWwgeyBhbmltYXRpb246IHFzbS1pZGxlLXlheSAyLjFzIGVhc2UtaW4tb3V0IGluZmluaXRlOyB9XG5cbkBrZXlmcmFtZXMgcXNtLWlkbGUtc2FkIHtcbiAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSByb3RhdGUoMGRlZyk7IH1cbiAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMnB4KSByb3RhdGUoLTIuNWRlZyk7IH1cbn1cbkBrZXlmcmFtZXMgcXNtLWlkbGUtbWVoIHtcbiAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSByb3RhdGUoMGRlZyk7IH1cbiAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KSByb3RhdGUoMWRlZyk7IH1cbn1cbkBrZXlmcmFtZXMgcXNtLWlkbGUtb2sge1xuICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOyB9XG59XG5Aa2V5ZnJhbWVzIHFzbS1pZGxlLXNtaWxlIHtcbiAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSByb3RhdGUoMGRlZyk7IH1cbiAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCkgcm90YXRlKDIuNWRlZyk7IH1cbn1cbkBrZXlmcmFtZXMgcXNtLWlkbGUteWF5IHtcbiAgICAwJSwgMjAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHJvdGF0ZSgwZGVnKTsgfVxuICAgIDEwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KSByb3RhdGUoLTRkZWcpOyB9XG4gICAgMzAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpIHJvdGF0ZSg0ZGVnKTsgfVxufVxuXG4vLyBPbmUtc2hvdCByZWFjdGlvbiBvbiB0YXAg4oCUIHRvZ2dsZWQgYnkgSlMgKC5pcy1yZWFjdGluZyksIHJlbW92ZWQgb24gYW5pbWF0aW9uZW5kLlxuLy8gU3VzcGVuZHMgdGhlIGlkbGUgbG9vcCBmb3IgaXRzIGR1cmF0aW9uIChhbmltYXRpb24gc2hvcnRoYW5kIG92ZXJyaWRlcyBpdCkuXG4ucWRuYXByby1zbWlsZXktLWludGVyYWN0aXZlW2RhdGEtZmFjZT1cInNhZFwiXSAucWRuYXByby1zbWlsZXlfX3Zpc3VhbC5pcy1yZWFjdGluZyB7IGFuaW1hdGlvbjogcXNtLXJlYWN0LXNhZCAwLjcycyBjdWJpYy1iZXppZXIoMC4zNiwgMCwgMC42NiwgLTAuMDYpIDE7IH1cbi5xZG5hcHJvLXNtaWxleS0taW50ZXJhY3RpdmVbZGF0YS1mYWNlPVwibWVoXCJdIC5xZG5hcHJvLXNtaWxleV9fdmlzdWFsLmlzLXJlYWN0aW5nIHsgYW5pbWF0aW9uOiBxc20tcmVhY3QtbWVoIDAuNXMgZWFzZS1pbi1vdXQgMTsgfVxuLnFkbmFwcm8tc21pbGV5LS1pbnRlcmFjdGl2ZVtkYXRhLWZhY2U9XCJva1wiXSAucWRuYXByby1zbWlsZXlfX3Zpc3VhbC5pcy1yZWFjdGluZyB7IGFuaW1hdGlvbjogcXNtLXJlYWN0LW9rIDAuNXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuMiwgMC42NCwgMSkgMTsgfVxuLnFkbmFwcm8tc21pbGV5LS1pbnRlcmFjdGl2ZVtkYXRhLWZhY2U9XCJzbWlsZVwiXSAucWRuYXByby1zbWlsZXlfX3Zpc3VhbC5pcy1yZWFjdGluZyB7IGFuaW1hdGlvbjogcXNtLXJlYWN0LXNtaWxlIDAuNnMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpIDE7IH1cbi5xZG5hcHJvLXNtaWxleS0taW50ZXJhY3RpdmVbZGF0YS1mYWNlPVwieWF5XCJdIC5xZG5hcHJvLXNtaWxleV9fdmlzdWFsLmlzLXJlYWN0aW5nIHsgYW5pbWF0aW9uOiBxc20tcmVhY3QteWF5IDAuODVzIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKSAxOyB9XG5cbkBrZXlmcmFtZXMgcXNtLXJlYWN0LXNhZCB7XG4gICAgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgcm90YXRlKDBkZWcpIHNjYWxlKDEpOyB9XG4gICAgMjIlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCkgcm90YXRlKC05ZGVnKSBzY2FsZSgwLjk2KTsgfVxuICAgIDQ0JSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpIHJvdGF0ZSg3ZGVnKSBzY2FsZSgwLjk2KTsgfVxuICAgIDY2JSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpIHJvdGF0ZSgtNWRlZykgc2NhbGUoMC45Nyk7IH1cbiAgICA4NSUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMnB4KSByb3RhdGUoMWRlZykgc2NhbGUoMC45OSk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDJweCkgcm90YXRlKDBkZWcpIHNjYWxlKDEpOyB9XG59XG5Aa2V5ZnJhbWVzIHFzbS1yZWFjdC1tZWgge1xuICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgc2NhbGUoMSk7IH1cbiAgICAzMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgtNmRlZykgc2NhbGUoMS4wMik7IH1cbiAgICA2MCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSg0ZGVnKSBzY2FsZSgxLjAxKTsgfVxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTsgfVxufVxuQGtleWZyYW1lcyBxc20tcmVhY3Qtb2sge1xuICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOyB9XG4gICAgMzUlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCkgc2NhbGUoMC45NSk7IH1cbiAgICA2NSUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCkgc2NhbGUoMS4wMyk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOyB9XG59XG5Aa2V5ZnJhbWVzIHFzbS1yZWFjdC1zbWlsZSB7XG4gICAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IH1cbiAgICAzMiUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMikgdHJhbnNsYXRlWSgtOHB4KTsgfVxuICAgIDU4JSB7IHRyYW5zZm9ybTogc2NhbGUoMC45NSkgdHJhbnNsYXRlWSgycHgpOyB9XG4gICAgNzglIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA2KSB0cmFuc2xhdGVZKC0ycHgpOyB9XG4gICAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgfVxufVxuQGtleWZyYW1lcyBxc20tcmVhY3QteWF5IHtcbiAgICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKSByb3RhdGUoMGRlZyk7IH1cbiAgICAxNCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMjQpIHRyYW5zbGF0ZVkoLTEzcHgpIHJvdGF0ZSgtN2RlZyk7IH1cbiAgICAzMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTMpIHRyYW5zbGF0ZVkoMCkgcm90YXRlKDVkZWcpOyB9XG4gICAgNDYlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjE3KSB0cmFuc2xhdGVZKC0xMHB4KSByb3RhdGUoLTRkZWcpOyB9XG4gICAgNjIlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KSB0cmFuc2xhdGVZKDApIHJvdGF0ZSgyZGVnKTsgfVxuICAgIDgyJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wNCkgdHJhbnNsYXRlWSgtMnB4KSByb3RhdGUoMGRlZyk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApIHJvdGF0ZSgwZGVnKTsgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLXNtaWxleV9fdmlzdWFsIHsgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7IH1cbn1cbiIsIi8vIHFkbmFwcm8tc21pbGV5LXBpY2tlciDigJQgdGhlIFwiRmVlZGJhY2sgKGVtb2ppKVwiIGFuc3dlciByb3c6IE4gcWRuYXByby1zbWlsZXlcbi8vIGF0b21zIChpbnRlcmFjdGl2ZSkgd2l0aCBleGNsdXNpdmUgcmFkaW9ncm91cCBzZWxlY3Rpb24uIFRoaXMgY29tcG9uZW50IG93bnNcbi8vIE9OTFkgdGhlIHJvdyBsYXlvdXQsIHNwYWNpbmcgYW5kIHNlbGVjdGlvbiBjaHJvbWUg4oCUIGV2ZXJ5IGVtb3RpY29uIGFzc2V0XG4vLyAoY29sb3VyLCBhcnQgc3R5bGUsIHNpemUpIGNvbWVzIHN0cmFpZ2h0IGZyb20gcWRuYXByby1zbWlsZXksIHNvIGl0cyBvd25cbi8vIGNvbG91ciB0b2tlbnMvZGFyay1tb2RlIHJ1bGVzIGFscmVhZHkgYXBwbHkgdW5jaGFuZ2VkIGhlcmUuXG5cbi5xZG5hcHJvLXNtaWxleS1waWNrZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ucWRuYXByby1zbWlsZXktcGlja2VyIC5xc3AtdHJhY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogNHB4O1xufVxuXG4ucWRuYXByby1zbWlsZXktcGlja2VyIC5xc3Atb3B0aW9uIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggNHB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTZzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE2cyBlYXNlO1xufVxuLy8gSG92ZXIgZm9sbG93cyB0aGUgZmxvdyB0aGVtZSB0b28gKEtpbSwgMTIuMDcuMjAyNik6IGEgbGlnaHRlciB0aW50IG9mIHRoZVxuLy8gc2VsZWN0ZWQtc3RhdGUgY29sb3VyIGluc3RlYWQgb2YgYSBmaXhlZCBsYXZlbmRlciBzdXJmYWNlIHRoYXQgY2xhc2hlcyB3aXRoXG4vLyB0aGVtZWQgZmxvd3MuIEluIHRoZSBibzIgbGlicmFyeSAtLXRoZW1lLWJ0bi1jb2xvciBpcyBhYnNlbnQgYW5kIHRoZSBicmFuZFxuLy8gcHVycGxlIGZhbGxiYWNrIGFwcGxpZXMuXG4ucWRuYXByby1zbWlsZXktcGlja2VyIC5xc3Atb3B0aW9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSA4JSwgdHJhbnNwYXJlbnQpO1xufVxuLy8gU2VsZWN0ZWQgc3RhdGUgZm9sbG93cyB0aGUgZmxvdydzIHJ1bnRpbWUgdGhlbWUgY29sb3VyICgxMi4wNy4yMDI2IGZpeCxcbi8vIEtpbTogdGhpcyB1c2VkIHRvIGJlIGEgZml4ZWQgbGlnaHQtcHVycGxlIGJveCB0aGF0IGNsYXNoZWQgd2l0aCB0aGVtZWRcbi8vIGZsb3dzLCBlLmcuIGEgcGluayB0aGVtZSBzaG93aW5nIGEgc3RhcmssIG9mZi1icmFuZCBib3gpLiBgLS10aGVtZS1idG4tY29sb3JgXG4vLyBpcyBzZXQgYnkgdGhlIGZsb3cgcnVudGltZTsgZmFsbHMgYmFjayB0byB0aGUgYnJhbmQgcHVycGxlIGV2ZXJ5d2hlcmUgaXRcbi8vIGlzbid0IGRlZmluZWQgKGUuZy4gdGhlIGJvMiBjb21wb25lbnQgbGlicmFyeSwgd2hpY2ggaGFzIG5vIHRoZW1lIGNvbnRleHQpXG4vLyDigJQgc2FtZSBmYWxsYmFjayBjaGFpbiBhbHJlYWR5IHVzZWQgYnkgcWRuYXByby1hbnN3ZXItYnV0dG9uLy1zY29yZS1zY2FsZS5cbi5xZG5hcHJvLXNtaWxleS1waWNrZXIgLnFzcC1vcHRpb24uaXMtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGhlbWUtYnRuLWNvbG9yLCAjNDA0OTlhKSAxNSUsIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRoZW1lLWJ0bi1jb2xvciwgIzQwNDk5YSk7XG59XG4ucWRuYXByby1zbWlsZXktcGlja2VyIC5xc3Atb3B0aW9uOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5xZG5hcHJvLXNtaWxleS1waWNrZXIgLnFzcC1sYWJlbCB7XG4gICAgLy8gS2xhbnRlbnRla3N0IG9uZGVyIGRlIHNtaWxleTogYnJlZWsgZWVuIHRlIGxhbmcgd29vcmQgYWYgaS5wLnYuIGJ1aXRlbiBkZVxuICAgIC8vIGtvbG9tIHRlIGxvcGVuLiBbMTguMDkuMjAyNl1cbiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbi5xZG5hcHJvLXNtaWxleS1waWNrZXIgLnFzcC1vcHRpb24uaXMtYWN0aXZlIC5xc3AtbGFiZWwge1xuICAgIGNvbG9yOiB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpO1xufVxuXG4ucWRuYXByby1zbWlsZXktcGlja2VyLmlzLWRpc2FibGVkIC5xc3Atb3B0aW9uIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgICAucWRuYXByby1zbWlsZXktcGlja2VyIC5xc3AtdHJhY2sgeyBnYXA6IDA7IH1cbiAgICAucWRuYXByby1zbWlsZXktcGlja2VyIC5xc3AtbGFiZWwgeyBmb250LXNpemU6IDkuNXB4OyB9XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9zZWxlY3QvX3NlbGVjdC1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqICBxZG5hcHJvLXNlbGVjdCDigJQgY29tcGlsZWQgZnJvbSBfc2VsZWN0LnNjc3NcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ucWRuYXByby1zZWxlY3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi8qIERpcmVjdCBjaGlsZHJlbiBvZiB0aGUgc2VsZWN0IGFyZSB0aGUgU09VUkNFIGxpc3Qg4oCUIGhpZGRlbiB1bnRpbCB0aGUgcG9wb3ZlclxuICAgbW92ZXMgdGhlbSBpbi4gYHFkbmFwcm8tbWVudS1zZXBhcmF0b3JgIGlzIHRoZSBrZXlsaW5lIChxZG5hLW1lbnUuanMpOyB0aGVcbiAgIGBxZG5hcHJvLW1lbnUtZGl2aWRlcmAgdGhhdCB1c2VkIHRvIGJlIGxpc3RlZCBoZXJlIHdhcyBuZXZlciBhIHJlYWwgZWxlbWVudCxcbiAgIHNvIGl0IGhpZCBub3RoaW5nIGFuZCByZW5kZXJlZCBub3RoaW5nLiBbS2ltIDA1LjA4LjIwMjZdICovXG4ucWRuYXByby1zZWxlY3QgPiBxZG5hcHJvLW1lbnUtaXRlbSxcbi5xZG5hcHJvLXNlbGVjdCA+IHFkbmFwcm8tbWVudS1zZWN0aW9uLWhlYWRpbmcsXG4ucWRuYXByby1zZWxlY3QgPiBxZG5hcHJvLW1lbnUtc2VwYXJhdG9yIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5xZG5hcHJvLXNlbGVjdC10cmlnZ2VyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgbWF4LWhlaWdodDogMzIwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAxcHggM3B4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDgpLFxuICAgICAgICAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbiAgICAvKiBIaWRlIHRoZSBzY3JvbGxiYXIg4oCUIGNvbnRlbnQgc3RpbGwgc2Nyb2xscy4gRmxhdCBzY3JvbGxiYXItaGlkZSAodGhlXG4gICAgICAgcWRuYS1zY3JvbGxiYXItaGlkZGVuIG1peGluIGlzbid0IGluIHNjb3BlIGluIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSxcbiAgICAgICBzYW1lIHJlYXNvbiBhcyBfYm90dG9tLXNoZWV0LnNjc3MpLiBbS2ltIDIwMjYtMDctMjBdICovXG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyAvKiBGaXJlZm94ICovXG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lOyAvKiBvbGQgRWRnZS9JRSAqL1xufVxuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogbm9uZTsgLyogQ2hyb21lIC8gU2FmYXJpICovXG59XG4vKiBgZGVuc2VgIHBvcG92ZXIg4oCUIHRpZ2h0ZW4gdGhlIHJvdyBzcGFjaW5nIChyYWRpbyAvIGF2YXRhciAvIGxhYmVsIGNsb3NlcikgZm9yXG4gICBzZWxlY3RzIHRoYXQgb3B0IGluIHZpYSB0aGUgYGRlbnNlYCBhdHRyaWJ1dGUgKGUuZy4gdGhlIEF1ZGl0cml0bWUgdXNlclxuICAgcGlja2VycykuIFNjb3BlZCB0byB0aGlzIHBvcG92ZXIgbW9kaWZpZXIgc28gbm8gbWVudS1pdGVtIGVsc2V3aGVyZSBpc1xuICAgYWZmZWN0ZWQuIFtLaW0gMjAyNi0wNy0yMF0gKi9cbi5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyLS1kZW5zZSAucWRuYXByby1tZW51LWl0ZW0ge1xuICAgIGdhcDogNnB4O1xufVxuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXItLWRlbnNlIC5xZG5hcHJvLW1lbnUtaXRlbS5tZW51LWl0ZW0td2l0aC1hdmF0YXIgLm1lbnUtaXRlbS1hdmF0YXItd3JhcCB7XG4gICAgcGFkZGluZzogMCAxcHg7XG59XG4ucWRuYXByby1zZWxlY3QtcG9wb3ZlciAucWRuYXByby1zZWxlY3Qtc2VhcmNoIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgcGFkZGluZzogNHB4O1xuICAgIG1hcmdpbjogLTRweCAtNHB4IDAgLTRweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCk7XG59XG4ucWRuYXByby1zZWxlY3QtcG9wb3ZlciAucWRuYXByby1zZWxlY3QtbWVudSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLyogcG9wb3Zlci1tYXgtaGVpZ2h0PVwiTlwiIOKAlCB0aGUgcG9wb3ZlciBpcyBjYXBwZWQsIHNvIHRoZSBNRU5VIGJlY29tZXMgdGhlIHNjcm9sbGVyXG4gICBpbnN0ZWFkIG9mIHRoZSBwb3BvdmVyIHJvb3QuIFdpdGhvdXQgdGhpcyB0aGUgcm9vdCBzY3JvbGxzLCBhbmQgYSBgc2VhcmNoYWJsZWBcbiAgIHNlbGVjdCB0aGVuIHNjcm9sbHMgaXRzIG93biBzZWFyY2ggZmllbGQgb3V0IG9mIHZpZXcgdGhlIG1vbWVudCB5b3Ugc2Nyb2xsIHRoZVxuICAgbGlzdCDigJQgcHJlY2lzZWx5IHdoZW4geW91IG5lZWQgaXQuIHFkbmEtc2VsZWN0LmpzIHNldHMgb3ZlcmZsb3cteTogaGlkZGVuIGlubGluZVxuICAgb24gdGhlIHJvb3Qgd2hlbiBjYXBwZWQsIGFuZCBhZGRzIHRoaXMgbW9kaWZpZXIgY2xhc3MuIFtLaW0gMDUuMDguMjAyNl0gKi9cbi5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyLS1jYXBwZWQge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucWRuYXByby1zZWxlY3QtcG9wb3Zlci0tY2FwcGVkIC5xZG5hcHJvLXNlbGVjdC1zZWFyY2gge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xufVxuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXItLWNhcHBlZCAucWRuYXByby1zZWxlY3QtbWVudSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgLyogV2l0aG91dCBtaW4taGVpZ2h0OjAgYSBmbGV4IGl0ZW0gcmVmdXNlcyB0byBzaHJpbmsgYmVsb3cgaXRzIGNvbnRlbnQsIHNvIHRoZVxuICAgICAgIG1lbnUgd291bGQgcHVzaCBwYXN0IHRoZSBjYXAgaW5zdGVhZCBvZiBzY3JvbGxpbmcgaW5zaWRlIGl0LiAqL1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG4gICAgc2Nyb2xsYmFyLWNvbG9yOiByZ2JhKDY0LCA3MywgMTU0LCAuMzUpIHRyYW5zcGFyZW50O1xufVxuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXItLWNhcHBlZCAucWRuYXByby1zZWxlY3QtbWVudTo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiA3cHg7XG59XG4ucWRuYXByby1zZWxlY3QtcG9wb3Zlci0tY2FwcGVkIC5xZG5hcHJvLXNlbGVjdC1tZW51Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby1zZWxlY3QtcG9wb3Zlci0tY2FwcGVkIC5xZG5hcHJvLXNlbGVjdC1tZW51Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgLjM1KTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ucWRuYXByby1zZWxlY3QtcG9wb3Zlci0tY2FwcGVkIC5xZG5hcHJvLXNlbGVjdC1tZW51Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgLjU1KTtcbn1cblxuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXIgLnFkbmFwcm8tc2VsZWN0LWVtcHR5IHtcbiAgICBwYWRkaW5nOiAxNnB4IDEycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMxZjIwMjg7XG4gICAgYm9yZGVyLWNvbG9yOiAjNTY1YjY2O1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgMXB4IDNweCAxcHggcmdiYSgwLCAwLCAwLCAwLjMwKSxcbiAgICAgICAgMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjQwKTtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zZWxlY3QtcG9wb3ZlciAucWRuYXByby1zZWxlY3Qtc2VhcmNoIHtcbiAgICBiYWNrZ3JvdW5kOiAjMWYyMDI4O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICM0MDQ0NGQ7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXIgLnFkbmFwcm8tc2VsZWN0LWVtcHR5IHtcbiAgICBjb2xvcjogIzg5OGU5OTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiAgdG91Y2ggbW9kZSDigJQgb3B0LWluIHZpYSBhIGB0b3VjaGAgYXR0cmlidXRlIG9uIDxxZG5hcHJvLXNlbGVjdD5cbiAqICAoUFdBIGZsb3cgb25seTsgbmV2ZXIgc2V0IGluIHRoZSBiYWNrb2ZmaWNlLCBzbyBkZXNrdG9wIHNlbGVjdHMgYXJlXG4gKiAgYnl0ZS1mb3ItYnl0ZSB1bmFmZmVjdGVkKS4gcWRuYS1zZWxlY3QuanMgYWRkcyB0aGUgbW9kaWZpZXIgY2xhc3NcbiAqICBCRUxPVyB0byB0aGUgcG9wb3ZlciBST09UIGl0c2VsZiAobm90IHRoZSBob3N0KSBiZWNhdXNlIHRoZSBwb3BvdmVyXG4gKiAgaXMgcG9ydGFsZWQgdG8gZG9jdW1lbnQuYm9keSDigJQgYSBgLmZsb3cg4oCmYCBhbmNlc3RvciBzZWxlY3RvciB3b3VsZFxuICogIG5ldmVyIHJlYWNoIGl0IHRoZXJlLiBWZXJpZmllZCBjdXJyZW50IHZhbHVlcyBiZWZvcmUgb3ZlcnJpZGluZzpcbiAqICBvcHRpb24gcm93IHdhcyBtaW4taGVpZ2h0IDQwcHggLyBwYWRkaW5nIDhweCAxNnB4IC8gMTRweCBsYWJlbFxuICogIChfbWVudS1pdGVtLnNjc3MgbWVudS1pdGVtLXNpemUtZGVmYXVsdCk7IGNoZWNrYm94L3JhZGlvIGluZGljYXRvclxuICogIHdhcyAxNnB4IChfY2hlY2tib3guc2NzcyAvIF9yYWRpby5zY3NzIGRlZmF1bHQgLS1jYi1zaXplLy0tcmItc2l6ZSk7XG4gKiAgc2VhcmNoIGlucHV0IHRleHQgd2FzIDE0cHggKGluaGVyaXRlZCAucWRuYXByby1pbnB1dCBkZWZhdWx0KSwgTk9UXG4gKiAgMTNweCBhcyBmaXJzdCBhc3N1bWVkIOKAlCBzdGlsbCBidW1wZWQgdG8gMTZweCBzaW5jZSBhbnl0aGluZyB1bmRlclxuICogIDE2cHggdHJpZ2dlcnMgaU9TIFNhZmFyaSdzIGF1dG8tem9vbS1vbi1mb2N1cy4gWzIwMjYtMDctMTNdXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogT3B0aW9uIHJvd3Mg4oCUIE1hdGVyaWFsL0FwcGxlIHRvdWNoIGd1aWRhbmNlOiA+PTQ4cHggdGFwIHRhcmdldCwgMTZweFxuICAgbGFiZWwgKG5ldmVyIHNtYWxsZXIg4oCUIHJlYWRhYmlsaXR5IGF0IGFybSdzIGxlbmd0aCkuICovXG4ucWRuYXByby1zZWxlY3QtcG9wb3Zlci0tdG91Y2ggLnFkbmFwcm8tbWVudS1pdGVtLm1lbnUtaXRlbS1zaXplLWRlZmF1bHQge1xuICAgIC8qIG1pbi1oZWlnaHQgKG5vdCBmaXhlZCBoZWlnaHQpIGlzIGEgZmxvb3Ig4oCUIHRoZSByb3cgZ3Jvd3Mgd2hlbiBhIGxvbmdcbiAgICAgICBsYWJlbCB3cmFwcyB0byB0d28gbGluZXMuIGFsaWduLWl0ZW1zOiBjZW50ZXIgKGZyb20gX21lbnUtaXRlbS5zY3NzKVxuICAgICAgIGtlZXBzIHRoZSB0b2dnbGUgY2VudHJlZCBhZ2FpbnN0IHRoZSB0YWxsZXIgcm93LiAqL1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbn1cbi5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyLS10b3VjaCAucWRuYXByby1tZW51LWl0ZW0gLm1lbnUtaXRlbS1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIC8qIExldCBsb25nIG9wdGlvbiBsYWJlbHMgV1JBUCBpbnN0ZWFkIG9mIHRydW5jYXRpbmcgd2l0aCBhbiBlbGxpcHNpcyDigJRcbiAgICAgICB0aGUgd2lkZXIgYnJlYWstb3V0IHBvcG92ZXIgcGx1cyB3cmFwcGluZyBtZWFucyBhIGZ1bGwgXCJBbnR3b29yZG9wdGllXCJcbiAgICAgICBsYWJlbCBzaG93cy4gT3ZlcnJpZGVzIHRoZSBiYXNlIC5tZW51LWl0ZW0tbGFiZWwgbm93cmFwL2VsbGlwc2lzLiAqL1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgdGV4dC1vdmVyZmxvdzogY2xpcDtcbn1cblxuLyogQ2hlY2tib3gvcmFkaW8gaW5kaWNhdG9yIOKAlCBidW1wIGZyb20gdGhlIDE2cHggZGVmYXVsdCB0b3dhcmQgdGhlIDI4cHhcbiAgIGFscmVhZHkgZXN0YWJsaXNoZWQgYnkgcWRuYXByby1jaGVja2JveCdzIG93biBzaXplPVwidG91Y2gtc21cIiAoZGVuc2Utcm93XG4gICB0b3VjaCBjb252ZW50aW9uLCBzZWUgX2NoZWNrYm94LnNjc3MpLiBNYXJrL2RvdCBzY2FsZSB3aXRoIGl0LiAqL1xuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXItLXRvdWNoIC5xZG5hcHJvLW1lbnUtaXRlbSBxZG5hcHJvLWNoZWNrYm94IHtcbiAgICAtLWNiLXNpemU6IDI4cHg7XG59XG4ucWRuYXByby1zZWxlY3QtcG9wb3Zlci0tdG91Y2ggLnFkbmFwcm8tbWVudS1pdGVtIHFkbmFwcm8tY2hlY2tib3ggLmNoZWNrYm94LW1hcmsge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbn1cbi5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyLS10b3VjaCAucWRuYXByby1tZW51LWl0ZW0gcWRuYXByby1jaGVja2JveCAuY2hlY2tib3gtbWFyay1kYXNoIHtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDNweDtcbn1cbi5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyLS10b3VjaCAucWRuYXByby1tZW51LWl0ZW0gcWRuYXByby1yYWRpbyB7XG4gICAgLS1yYi1zaXplOiAyOHB4O1xufVxuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXItLXRvdWNoIC5xZG5hcHJvLW1lbnUtaXRlbSBxZG5hcHJvLXJhZGlvIC5yYWRpby1kb3Qge1xuICAgIHdpZHRoOiA3cHg7XG4gICAgaGVpZ2h0OiA3cHg7XG59XG5cbi8qIEEgbGl0dGxlIGV4dHJhIHJvb20gYmV0d2VlbiByb3dzIG9uY2UgdGhleSdyZSB0YWxsZXIuICovXG4ucWRuYXByby1zZWxlY3QtcG9wb3Zlci0tdG91Y2ggLnFkbmFwcm8tc2VsZWN0LW1lbnUge1xuICAgIGdhcDogNnB4O1xufVxuXG4vKiBTZWFyY2ggaW5wdXQg4oCUID49MTZweCBpcyBDUklUSUNBTCAoYW55dGhpbmcgc21hbGxlciBtYWtlcyBpT1MgU2FmYXJpXG4gICBhdXRvLXpvb20gb24gZm9jdXMpLiBFeHRyYSBoZWlnaHQvcGFkZGluZyArIGV4cGxpY2l0IHNwZWNpZmljaXR5ICh0d29cbiAgIGNsYXNzZXMgb24gdGhlIHNlYXJjaCBlbGVtZW50IGl0c2VsZikgc28gdGhpcyByZWxpYWJseSBiZWF0c1xuICAgX2lucHV0LnNjc3MncyBvd24gYC5xZG5hcHJvLWlucHV0LmlucHV0LXNpemUtc21hbGwgLmlucHV0LWZpZWxkYCBydWxlXG4gICByZWdhcmRsZXNzIG9mIHBhcnRpYWwgaW1wb3J0IG9yZGVyLiAqL1xuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXItLXRvdWNoIC5xZG5hcHJvLXNlbGVjdC1zZWFyY2guaW5wdXQtc2l6ZS1zbWFsbCAuaW5wdXQtZmllbGQge1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgcGFkZGluZzogMCAxNHB4O1xufVxuLnFkbmFwcm8tc2VsZWN0LXBvcG92ZXItLXRvdWNoIC5xZG5hcHJvLXNlbGVjdC1zZWFyY2ggLmlucHV0LW5hdGl2ZSB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xufVxuIiwiLy8gc2Nzcy9jb21wb25lbnRzL3YyL3NoYXJlL19zaGFyZS5zY3NzXG4vLyBTdHlsZXMgZm9yIHRoZSB1bml2ZXJzYWwgc2hhcmUgZmVhdHVyZTogdGhlIFFkbmFTaGFyZSBkaWFsb2cgYm9keVxuLy8gKHdlYi9qcy9xZG5hLXNoYXJlLmpzKSArIHRoZSBxZG5hcHJvLXNoYXJlLWJ0biBjb21wb25lbnRcbi8vICh3ZWIvanMvY29tcG9uZW50cy92Mi9zaGFyZS9xZG5hLXNoYXJlLWJ0bi5qcykuXG4vL1xuLy8gVXNlcyBkZXNpZ24tdG9rZW5zICh3aXRoIGJ1aWx0LWluIGRhcmstbW9kZSBvdmVycmlkZXMpIGZvciB0aGVtaW5nLlxuLy8gQ29tcGlsZWQgaW50byB3ZWIvY3NzL3YxL3N0eWxlLXYxLmNzcyBieSBgZ3VscCBzYXNzLXYxYC5cblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyAgU2hhcmUgZGlhbG9nIGJvZHkgKGluc2lkZSA8cWRuYXByby1tb2RhbCBjbGFzcz1cInFkbmFwcm8tc2hhcmUtbW9kYWxcIj4pXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xZG5hcHJvLXNoYXJlLWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIHNhbnMtc2VyaWY7XG59XG5cbi8vIENvbXBsaWFuY2Ugd2FybmluZyBzaG93biBmb3IgYHNlbnNpdGl2ZWAgY29udGVudC5cbi5xZG5hcHJvLXNoYXJlLXdhcm4ge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXRhZy13YXJuaW5nLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tYy10YWctd2FybmluZy10ZXh0KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXdhcm5pbmctYnJpZ2h0LWJvcmRlcik7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xufVxuXG4vLyBOb3RlIGV4cGxhaW5pbmcgZmlsZXMgb25seSByaWRlIG5hdGl2ZS9kb3dubG9hZC5cbi5xZG5hcHJvLXNoYXJlLW5vdGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG59XG5cbi5xZG5hcHJvLXNoYXJlLWNoYW5uZWxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG59XG5cbi5xZG5hcHJvLXNoYXJlLWNoYW5uZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTFweCAxMnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHkpO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZS1vdXQsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLW91dDtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTEwMCk7XG4gICAgfVxuXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzLXJpbmcpO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTApO1xuICAgIH1cbn1cblxuLnFkbmFwcm8tc2hhcmUtY2hhbm5lbC1pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cblxuLnFkbmFwcm8tc2hhcmUtY2hhbm5lbC1sYWJlbCB7XG4gICAgZmxleDogMSAxIGF1dG87XG59XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gIHFkbmFwcm8tc2hhcmUtYnRuICAodGhlIHJldXNhYmxlIHNoYXJlIGJ1dHRvbilcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnFkbmFwcm8tc2hhcmUtYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDhweCAxNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZS1vdXQsIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLW91dCwgY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG5cbiAgICAuc2hhcmUtYnRuLWljb24geyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgZmxleC1zaHJpbms6IDA7IH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1mb2N1cy1yaW5nKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICB9XG5cbiAgICAvLyBJY29uLW9ubHk6IHNxdWFyZSwgY2VudGVyZWQuXG4gICAgJi5zaGFyZS1idG4taWNvbi1vbmx5IHtcbiAgICAgICAgZ2FwOiAwO1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB9XG5cbiAgICAmLnNoYXJlLWJ0bi1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxufVxuXG4vLyBQcmltYXJ5IOKAlCBmaWxsZWQgcHVycGxlLlxuLnFkbmFwcm8tc2hhcmUtYnRuLnNoYXJlLWJ0bi1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAgICY6aG92ZXIgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC1wdXJwbGUtaG92ZXIpOyB9XG4gICAgJjphY3RpdmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLXB1cnBsZS1wcmVzcyk7IH1cbn1cblxuLy8gU3VidGxlIChkZWZhdWx0KSDigJQgdHJhbnNwYXJlbnQsIHB1cnBsZSBpY29uLCBsaWdodCBob3Zlci5cbi5xZG5hcHJvLXNoYXJlLWJ0bi5zaGFyZS1idG4tc3VidGxlIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICAuc2hhcmUtYnRuLWljb24geyBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTsgfVxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpOyB9XG59XG5cbi8vIFNlY29uZGFyeSDigJQgYm9yZGVyZWQuXG4ucWRuYXByby1zaGFyZS1idG4uc2hhcmUtYnRuLXNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHkpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgLnNoYXJlLWJ0bi1pY29uIHsgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7IH1cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTsgfVxufVxuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vICBTaGFyZSDihpIgaW5ib3ggcmVjaXBpZW50IHBpY2tlciAod2ViL2pzL3FkbmEtc2hhcmUtaW5ib3guanMpXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xZG5hcHJvLXNoYXJlLWluYm94LWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5xZG5hcHJvLXNoYXJlLWluYm94LWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtaGVpZ2h0OiA0NnZoO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbWFyZ2luOiAwIC00cHg7XG4gICAgcGFkZGluZzogMCA0cHg7XG59XG5cbi8qIFBpY2stbW9kZSBoZWFkZXIgc2xvdDogY3VzdG9tIGZpZWxkcyAoZnJlcXVlbnRpZSArIHNldCkgYm92ZW4gZGUgVGVhbXMvUGVyc29uZW4tXG4gICBzZWN0aWVzLiBPbmRlcnJhbmQgc2NoZWlkdCB6ZSB2YW4gZGUgem9lay9saWpzdC4gW0phbiAyMDI2LTA3LTExXSAqL1xuLnFkbmFwcm8tc2hhcmUtaW5ib3gtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXIsICNlNmU0ZjIpO1xufVxuLnFkbmFwcm8tc2hhcmUtaW5ib3gtaGVhZGVyIC5tZGFzaC1mbGQgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDNweDsgfVxuLnFkbmFwcm8tc2hhcmUtaW5ib3gtaGVhZGVyIGxhYmVsIHtcbiAgICBmb250LXNpemU6IDEwLjVweDsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNjg4NCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IC4wNGVtOyBwYWRkaW5nLWxlZnQ6IDJweDtcbn1cbi5xZG5hcHJvLXNoYXJlLWluYm94LWhlYWRlciBzZWxlY3Qge1xuICAgIGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItdHJlZSk7IGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDsgcGFkZGluZzogOHB4IDEycHg7IHdpZHRoOiAxMDAlOyBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucWRuYXByby1zaGFyZS1pbmJveC1oZWFkZXIgc2VsZWN0OmZvY3VzIHsgb3V0bGluZTogbm9uZTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXNpZGViYXItYmcpOyB9XG5cbi5xZG5hcHJvLXNoYXJlLWluYm94LXNlY3Rpb24ge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICBwYWRkaW5nOiAxMHB4IDRweCA0cHg7XG59XG5cbi5xZG5hcHJvLXNoYXJlLWluYm94LXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSk7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMTBtcyBlYXNlLW91dCwgYm9yZGVyLWNvbG9yIDExMG1zIGVhc2Utb3V0O1xuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSk7IH1cbiAgICAmLmlzLXNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS0xMDApO1xuICAgIH1cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZm9jdXMtcmluZyk7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gICAgfVxufVxuXG4ucWRuYXByby1zaGFyZS1pbmJveC1jaGVjayB7IGZsZXgtc2hyaW5rOiAwOyB9XG4ucWRuYXByby1zaGFyZS1pbmJveC1hdmF0YXIgeyBmbGV4LXNocmluazogMDsgfVxuXG4ucWRuYXByby1zaGFyZS1pbmJveC10ZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuLnFkbmFwcm8tc2hhcmUtaW5ib3gtbmFtZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLnFkbmFwcm8tc2hhcmUtaW5ib3gtc3ViIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4vLyBPcHRpb25hbCBjb21tZW50IGZpZWxkIGF0IHRoZSBib3R0b20gb2YgdGhlIHJlY2lwaWVudCBwaWNrZXIgKHRleHQgc2hhcmVzKS5cbi5xZG5hcHJvLXNoYXJlLWluYm94LWNvbW1lbnQtd3JhcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQpO1xufVxuLnFkbmFwcm8tc2hhcmUtaW5ib3gtY29tbWVudC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG4iLCIvLyBxZG5hcHJvLXNoYXJlLWxpbmsg4oCUIHJldXNhYmxlIHB1YmxpYyBzaGFyZS1saW5rIHN1cmZhY2UgKFVSTCBmcmFtZSwgb3B0aW9uYWxcbi8vIFFSIGNhcmQsIHN0YXR1cyBwaWxsLCBtZXRhLCBjb3B5L2RlYWN0aXZhdGUgYWN0aW9ucykuXG4vLyBRRE5BIHRva2VuczogZ3JleS01MCBVUkwgZnJhbWUsIGdyZXktMTAwIGJvcmRlcnMsIHB1cnBsZS01MDAgYWNjZW50cyxcbi8vIHNpZ25hbC1ncmVlbiBwaWxsLiBGTEFUIHNlbGVjdG9ycywgbm8gbmVzdGluZyDigJQgdGhlIFBXQSB2Mi1jb21wb25lbnQgcnVudGltZVxuLy8gZXhwZWN0cyBmbGF0IGNvbXBpbGVkIENTUyAoc2FtZSBydWxlIGFzIHFkbmFwcm8tYWxlcnQgLyBib3R0b20tc2hlZXQpLlxuXG4vLyBUaGUgd2hvbGUgY29tcG9uZW50IGlzIGEgYm9yZGVyZWQgY2FyZCAoYm90aCB2YXJpYW50cykuIFRoZSBuby1RUiB2YXJpYW50IGlzXG4vLyBsZWZ0LWFsaWduZWQgKGhlYWRpbmcgKyBoZWxwZXIgdGV4dCByZWFkIGFzIGEgcGFyYWdyYXBoKTsgdGhlIFFSIHZhcmlhbnRcbi8vIGNlbnRlcnMgaXRzIGNvbHVtbiAoYmFkZ2UvUVIvbWV0YS9idXR0b25zKSwgc2VlIC0tY2FyZCBiZWxvdy5cbi5xZG5hcHJvLXNoYXJlLWxpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0zLCAxMnB4KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgcGFkZGluZzogMTZweDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG59XG5cbi8vIC0tLSBDYXJkIHZhcmlhbnQgKHFyKTogS2ltJ3MgZGVzaWduIOKAlCBjZW50ZXJlZCBwaWxsLCBRUiwgbWV0YSwgZnJhbWUsIGJ1dHRvbnMgLS0tXG4ucWRuYXByby1zaGFyZS1saW5rLS1jYXJkIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLy8gTGVhZGluZyB0aXRsZSArIGhlbHBlciB0ZXh0IChwbGFubmVyIFwiSmUgZGVlbC1saW5rXCIgYmxvY2spLlxuLnFkbmFwcm8tc2hhcmUtbGlua19faGVhZGluZyB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcbn1cbi5xZG5hcHJvLXNoYXJlLWxpbmtfX2Rlc2Mge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBtYXJnaW4tdG9wOiAtNHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI3MjgwKTtcbn1cblxuLnFkbmFwcm8tc2hhcmUtbGlua19faGVhZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBtaW4taGVpZ2h0OiA0cHg7XG59XG5cbi8vIFN0YXR1cyBwaWxsIChhY3RpdmUgPSBncmVlbiwgaW5hY3RpdmUgPSBncmV5KS5cbi5xZG5hcHJvLXNoYXJlLWxpbmtfX2JhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNXB4O1xuICBwYWRkaW5nOiAzcHggMTBweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGZvbnQtc2l6ZTogLjhyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG4ucWRuYXByby1zaGFyZS1saW5rX19iYWRnZS0tYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtZ3JlZW4tYmcsICNjNWY1ZTIpO1xuICBjb2xvcjogdmFyKC0tYy1zaWduYWwtZ3JlZW4tdGV4dCwgIzQyOGI2ZSk7XG59XG4ucWRuYXByby1zaGFyZS1saW5rX19iYWRnZS0taW5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS02MDAsICM1NjViNjYpO1xufVxuXG4vLyBRUiBob3N0IOKAlCB0aGUgdmVuZG9yZWQgbGliIGluamVjdHMgYSA8Y2FudmFzPi88aW1nPi88dGFibGU+LlxuLnFkbmFwcm8tc2hhcmUtbGlua19fcXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogNHB4O1xufVxuLnFkbmFwcm8tc2hhcmUtbGlua19fcXIgY2FudmFzLFxuLnFkbmFwcm8tc2hhcmUtbGlua19fcXIgaW1nLFxuLnFkbmFwcm8tc2hhcmUtbGlua19fcXIgdGFibGUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnFkbmFwcm8tc2hhcmUtbGlua19fbWV0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogNHB4IDIwcHg7XG4gIGZvbnQtc2l6ZTogLjhyZW07XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI3MjgwKTtcbn1cblxuLy8gLS0tIEdyZXkgVVJMIGZyYW1lIChib3RoIHZhcmlhbnRzKSDigJQgbW9ub3NwYWNlLCBvbmUgc2Nyb2xsbGVzcyBsaW5lIC0tLVxuLnFkbmFwcm8tc2hhcmUtbGlua19fdXJsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0yLCA4cHgpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpO1xufVxuLnFkbmFwcm8tc2hhcmUtbGlua19fdXJsLXRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgLy8gTWF0Y2ggdGhlIHBsYW5uZXIgZmVlZC1saW5rIGJveDogTWVubG8vbW9ub3NwYWNlLCBub3QgSW50ZXIgKEtpbSAyMi4wNy4yMDI2KS5cbiAgZm9udC1mYW1pbHk6IE1lbmxvLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMTIuNXB4O1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xufVxuXG4vLyAtLS0gQWN0aW9uIGJ1dHRvbnMg4oCUIGZ1bGwgYnV0dG9ucyBiZWxvdyB0aGUgZnJhbWUsIGhvcml6b250YWxseSBjZW50ZXJlZCAtLS1cbi5xZG5hcHJvLXNoYXJlLWxpbmtfX2FjdGlvbnMge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogOHB4O1xufVxuLy8gSWNvbiBzaXRzIGxlZnQgb2YgdGhlIGxhYmVsIGluc2lkZSB0aGUgYWN0aW9uIGJ1dHRvbnMuXG4ucWRuYXByby1zaGFyZS1saW5rX19jb3B5IHFkbmFwcm8taWNvbixcbi5xZG5hcHJvLXNoYXJlLWxpbmtfX2RlYWN0aXZhdGUgcWRuYXByby1pY29uIHtcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXNpZGViYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIEZvbGRlciAvIG5hdmlnYXRpb24gc2lkZWJhci4gV3JhcHMgcWRuYXByby1pbnB1dCAoc2VhcmNoKSxcbi8vICBxZG5hcHJvLWljb24tYnRuIChoZWFkZXIgYWN0aW9ucykgYW5kIHFkbmFwcm8tdHJlZS1pdGVtIChtZW51IGl0ZW1zKS5cbi8vICBGaWdtYTogUUROQS1QUk8g4oCUIG5vZGUgODc2NzoxODc4OTRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFRva2VucyAoRmlnbWEgdmFyaWFibGVzKSBbRklHTUEgdmVyaWZpZWRdOlxuLy8gICAgJHNpZGViYXItYmcgICAgICAgICAgICAjZmZmZmZmICAgU3VyZmFjZS9Nb2RhbCBhbmQgcG9wLW92ZXIvcG9wcG92ZXItQkdcbi8vICAgICRzaWRlYmFyLWRpdmlkZXIgICAgICAgI2Q5ZGJlYiAgIEJvcmRlci9leGNlcHRpb25zL0lucHV0LVN0cm9rZS10cmFuc3BhcmVudC1iZ1xuLy8gICAgJHNpZGViYXItdGl0bGUtY29sb3IgICAjNDA0OTlhICAgVGV4dC9IZWFkZXJcbi8vICAgICRzaWRlYmFyLXJhZGl1cyAgICAgICAgOHB4ICAgICAgIHZhcigtLXNkcy1zaXplLXJhZGl1cy0yMDApXG4vLyAgICAkc2lkZWJhci1wYWRkaW5nICAgICAgIDhweCAgICAgICB2YXIoLS1zZHMtc2l6ZS1zcGFjZS0yMDApXG4vLyAgICAkc2lkZWJhci1pdGVtcy1nYXAgICAgIDhweCAgICAgICBTcGFjaW5nLVhTXG4vLyAgVHlwb2dyYXBoeTpcbi8vICAgIFRpdGxlIChINikgICAgICAgICAgICAgSW50ZXIgU2VtaUJvbGQgMjAgLyAyNCwgIzQwNDk5YVxuLy8gICAgSXRlbXMgICAgICAgICAgICAgICAgICBpbmhlcml0ZWQgZnJvbSBxZG5hcHJvLXRyZWUtaXRlbVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5xZG5hcHJvLXNpZGViYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogMjk3cHg7ICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXRjaGVzIEZpZ21hIGluc3RhbmNlIHdpZHRoXG4gICAgbWF4LWhlaWdodDogMTAwdmg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICAvLyBObyBib3JkZXIg4oCUIHNpZGViYXIgc2l0cyBvbiBhIGxpZ2h0LXB1cnBsZSBhcHAgYmFja2dyb3VuZCB3aGVyZSB0aGVcbiAgICAvLyB3aGl0ZSBzdXJmYWNlIHByb3ZpZGVzIGVub3VnaCBjb250cmFzdCBvbiBpdHMgb3duLlxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIGludGVyLCBzYW5zLXNlcmlmO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAxODBtcyBlYXNlLW91dDtcblxuICAgIC8vIENvbGxhcHNlZDogaGVhZGVyLW9ubHkgc3RyaXAuIFNlYXJjaCArIGl0ZW1zIHN0YXkgaW4gdGhlIERPTSBzbyB3ZVxuICAgIC8vIGNhbiBhbmltYXRlIHRoZWlyIGhlaWdodCArIG9wYWNpdHkuIFRyYW5zaXRpb24gdGltaW5nIGlzIHNob3J0XG4gICAgLy8gKDE4MG1zIGVhc2Utb3V0KSBzbyBpdCBmZWVscyByZXNwb25zaXZlIGJ1dCBub3Qgc25hcHB5LlxuICAgIC8vIE5PVEU6IGRvbid0IG92ZXJyaWRlIHRoZSBob3N0J3MgaGVpZ2h0IGhlcmUg4oCUIHRoZSBjaGlsZCBtYXgtaGVpZ2h0XG4gICAgLy8gdHJhbnNpdGlvbnMgbmF0dXJhbGx5IHB1bGwgdGhlIHNpZGViYXIgZG93biBhcyB0aGV5IHNocmluay5cbiAgICAmLnNpZGViYXItY29sbGFwc2VkIC5zaWRlYmFyLXNlYXJjaCxcbiAgICAmLnNpZGViYXItY29sbGFwc2VkIC5zaWRlYmFyLWl0ZW1zIHtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAvLyAtLS0gVG9wIHNlY3Rpb24gKGhlYWRlciArIHNlYXJjaCkgLS0tXG4gICAgLy8gUGFkZGluZyAxMnB4IChub3QgRmlnbWEncyA4cHgpIGJlY2F1c2Ugd2l0aCBhbiA4cHggc2lkZWJhciByYWRpdXMsXG4gICAgLy8gOHB4IHBhZGRpbmcgY2F1c2VzIHRoZSBzZWFyY2gncyBjb3JuZXIgdG8gdmlzdWFsbHkgYWxpZ24gd2l0aCB0aGVcbiAgICAvLyBzaWRlYmFyJ3Mgcm91bmRlZCBjb3JuZXIg4oCUIGl0IHJlYWRzIGFzIGlmIHRoZSBzZWFyY2ggaXMgcG9raW5nXG4gICAgLy8gb3V0c2lkZS4gMTJweCBnaXZlcyBhIGNsZWFuIHdoaXRlIHdlZGdlIGFyb3VuZCBpdC4gW0lORkVSUkVEIHR3ZWFrXVxuICAgIC5zaWRlYmFyLXRvcCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgLy8gQmVsdC1hbmQtYnJhY2VzOiBrZWVwIGV2ZXJ5dGhpbmcgaW5zaWRlIG5vIG1hdHRlciB3aGF0IGFuXG4gICAgICAgIC8vIG92ZXItZWFnZXIgY2hpbGQgKHNlYXJjaC1pbnB1dCBmaWVsZC1yb3csIGZsZXgtd2VpcmRuZXNzKSB0cmllcy5cbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgIC5zaWRlYmFyLWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMCA0cHggOHB4OyAgICAgICAgICAgIC8vIG1hdGNoZXMgRmlnbWE6IHBiLXh4cywgcGwteHNcbiAgICB9XG5cbiAgICAuc2lkZWJhci10aXRsZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgaW50ZXIsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApOyAgICAgICAgICAgICAgICAgIC8vIFRleHQvSGVhZGVyXG4gICAgfVxuXG4gICAgLnNpZGViYXItYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG5cbiAgICAvLyBTZWFyY2ggaW5wdXQg4oCUIGZ1bGwtd2lkdGgsIHNpemU9c21hbGwuIG1heC1oZWlnaHQgbGFyZ2UgZW5vdWdoIGZvclxuICAgIC8vIGFueSByZWFsaXN0aWMgc2VhcmNoLWlucHV0IGhlaWdodDsgYW5pbWF0aW9uIGNvbGxhcHNlcyBpdCBzbW9vdGhseS5cbiAgICAvL1xuICAgIC8vIFRoZSBvbGQgXCJCZWx0LWFuZC1icmFjZXNcIiBuZXN0ZWQgb3ZlcnJpZGUgb24gLmlucHV0LWZpZWxkLXJvdyAvXG4gICAgLy8gLmlucHV0LWZpZWxkICh3aWR0aDoxMDAlOyBtaW4td2lkdGg6MDsgYm94LXNpemluZykgbGl2ZWQgaGVyZSB0b1xuICAgIC8vIGZvcmNlIHRoZSBzZWFyY2ggdG8gc3RheSBpbnNpZGUgdGhlIDI5N3B4IHNpZGViYXIuIFRoYXQgZml4IGlzXG4gICAgLy8gbm8gbG9uZ2VyIG5lZWRlZCDigJQgdGhlIHJvb3QgY2F1c2UgKG1pc3NpbmcgbWluLXdpZHRoOjAgb24gdGhlXG4gICAgLy8gYmFzZSAuaW5wdXQtZmllbGQgLyAuaW5wdXQtZmllbGQtcm93KSBpcyBub3cgZml4ZWQgaW5cbiAgICAvLyBfaW5wdXQuc2NzcyBpdHNlbGYsIHNvIGV2ZXJ5IHFkbmFwcm8taW5wdXQgaW5zdGFuY2Ugc2hyaW5rc1xuICAgIC8vIHByb3Blcmx5IHJlZ2FyZGxlc3Mgb2YgaXRzIHBhcmVudC5cbiAgICAuc2lkZWJhci1zZWFyY2gge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiA4MHB4O1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgbWF4LWhlaWdodCAxODBtcyBlYXNlLW91dCxcbiAgICAgICAgICAgIG9wYWNpdHkgMTIwbXMgZWFzZS1vdXQsXG4gICAgICAgICAgICBwYWRkaW5nIDE4MG1zIGVhc2Utb3V0LFxuICAgICAgICAgICAgbWFyZ2luIDE4MG1zIGVhc2Utb3V0O1xuICAgIH1cblxuICAgIC8vIC0tLSBJdGVtcyBjb250YWluZXIgKHNjcm9sbGFibGUsIHJvdW5kZWQgYm90dG9tKSAtLS1cbiAgICAvLyBtYXgtaGVpZ2h0IGlzIFwibGFyZ2UgZW5vdWdoXCIgKDEyMDBweCkg4oCUIHdoZW4gcmVhbCBjb250ZW50IGlzIHNob3J0ZXJcbiAgICAvLyB0aGUgdHJhbnNpdGlvbiBlbmRzIGVhcmx5IHNvIHRoZSBhbmltYXRpb24gZmVlbHMgcXVpY2sgcmVnYXJkbGVzcy5cbiAgICAuc2lkZWJhci1pdGVtcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4OyAgICAgICAgICAgICAgLy8gbWF0Y2hlcyBzaWRlYmFyLXRvcCDigJQgYXZvaWRzIGNvcm5lciBjbGFzaFxuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIC8vIGZsZXggMSAxIGF1dG8gc28gbmF0dXJhbCBjb250ZW50LWhlaWdodCBkcml2ZXMgdGhlIGNvbnRhaW5lcixcbiAgICAgICAgLy8gYnV0IGl0IHN0aWxsIHNocmlua3MgaW5zaWRlIGEgbWF4LWhlaWdodCdkIGhvc3Qgd2hlbiBjb250ZW50IG92ZXJmbG93cy5cbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEyMDBweDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgIG1heC1oZWlnaHQgMjIwbXMgZWFzZS1vdXQsXG4gICAgICAgICAgICBvcGFjaXR5IDE0MG1zIGVhc2Utb3V0LFxuICAgICAgICAgICAgcGFkZGluZyAyMjBtcyBlYXNlLW91dCxcbiAgICAgICAgICAgIG1hcmdpbiAyMjBtcyBlYXNlLW91dDtcbiAgICB9XG5cbiAgICAvLyBEaXZpZGVyIGJldHdlZW4gZ3JvdXBzIChwbGFpbiA8aHI+KVxuICAgIC5zaWRlYmFyLWl0ZW1zID4gaHIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXRyZWUpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBUcmVlLWl0ZW1zIGluc2lkZTogdGhlIGNvbXBvbmVudCBoYW5kbGVzIGl0cyBvd24gc3R5bGluZy4gV2UganVzdFxuICAgIC8vIHJlc2V0IGFueSBkZWZhdWx0IG1hcmdpbnMgc28gdGhleSBzaXQgZmx1c2ggaW4gdGhlIGZsZXggY29sdW1uLlxuICAgIC5zaWRlYmFyLWl0ZW1zID4gcWRuYXByby10cmVlLWl0ZW0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgRGFyay1tb2RlIG92ZXJyaWRlc1xuLy8gIFtGSUdNQSB2ZXJpZmllZCDigJQgZGFyayB0b2tlbnMgbWlncmF0ZWQgaGVyZSBmcm9tIHRoZSBzaWRlYmFyXG4vLyAgcHJldmlldyBzbyB0aGV5IGFwcGx5IGV2ZXJ5d2hlcmUgdGhlIHNpZGViYXIgaXMgdXNlZCwgbm90IG9ubHlcbi8vICBpbnNpZGUgdGhlIHByZXZpZXcgaGFybmVzcy5dXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zaWRlYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMWYyMDI4OyAgICAgICAgICAgICAgICAgICAgLy8gU3VyZmFjZS9Nb2RhbCAoZGFyaywgaW5mZXJyZWQpXG5cbiAgICAuc2lkZWJhci10aXRsZSB7XG4gICAgICAgIGNvbG9yOiAjZjBmMWYyOyAgICAgICAgICAgICAgICAgICAgIC8vIFRleHQvSGVhZGVyIChkYXJrKVxuICAgIH1cblxuICAgIC5zaWRlYmFyLWl0ZW1zID4gaHIge1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAjM2EzYjQyOyAgICAgICAgICAvLyBEaXZpZGVyIChkYXJrKVxuICAgIH1cblxuICAgIC8vIFNlYXJjaCBpbnB1dCBpbiBkYXJrIOKAlCBpbnB1dCB0b2tlbnMgaW5zaWRlIHRoZSBzaWRlYmFyIHN1cmZhY2VcbiAgICBxZG5hcHJvLWlucHV0IC5pbnB1dC1maWVsZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMyYTJiMzQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzNhM2I0MjtcbiAgICB9XG4gICAgcWRuYXByby1pbnB1dCAuaW5wdXQtbmF0aXZlIHtcbiAgICAgICAgY29sb3I6ICNlMWUzZTY7XG4gICAgfVxuICAgIHFkbmFwcm8taW5wdXQgLmlucHV0LW5hdGl2ZTo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogI2E2YWFiMzsgICAgICAgICAgICAgICAgICAgICAvLyBUZXh0L0lucHV0LXBsYWNlaG9sZGVyLWxpa2VcbiAgICB9XG59XG4iLCIvLyBxZG5hcHJvLXNsaWRlciDigJQgZ2VuZXJhbC1wdXJwb3NlIHZhbHVlIHNsaWRlciAoY29udGludW91cyBvciBOLXN0ZXAgc25hcCxcbi8vIHNpbmdsZSBvciBkdWFsLWhhbmRsZSByYW5nZSwgaWNvbnMvaW5wdXQvdG9vbHRpcCwgMyBjb2xvdXIgdmFyaWFudHMpLlxuLy8gRkxBVCBDU1M7IGNvbG91cnMgY29tZSBmcm9tIHRoZSBkZXNpZ24tdG9rZW4gOnJvb3QgKHZhcigtLWMtKikpLlxuLy8gRWRpdCBIRVJFLCB0aGVuIGBndWxwIHNhc3MtdjFgICsgdGhlIHN5bmMuXG5cbi5xZG5hcHJvLXNsaWRlciB7XG4gIC0tcXMtdHJhY2s6IHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xuICAtLXFzLWZpbGw6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG4gIC0tcXMtZG90OiB2YXIoLS1jLWdyZXktMzAwLCAjYzRjN2NjKTtcbiAgLS1xcy1kb3QtYWN0aXZlOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICAtLXFzLWRlZmF1bHQtbWFya2VyOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbiAgLS1xcy1oYW5kbGU6ICNmZmY7XG4gIC0tcXMtaGFuZGxlLWJvcmRlcjogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgLS1xcy1oYW5kbGUtZ2xvdzogdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDZweCA0cHg7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbn1cblxuLy8gLS0tLSBDb2xvdXIgdmFyaWFudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnFkbmFwcm8tc2xpZGVyLnFkbmFwcm8tc2xpZGVyLS1uZXV0cmFsIHtcbiAgLS1xcy10cmFjazogdmFyKC0tYy1ncmV5LTUwLCAjZjBmMWYyKTtcbiAgLS1xcy1maWxsOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbiAgLS1xcy1kb3QtYWN0aXZlOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbiAgLS1xcy1oYW5kbGUtYm9yZGVyOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbiAgLS1xcy1oYW5kbGUtZ2xvdzogdmFyKC0tYy1ncmV5LTMwMCwgI2M0YzdjYyk7XG59XG4vLyBTZW50aW1lbnQ6IHRoZSBUUkFDSyBpdHNlbGYgaXMgYWx3YXlzIHRoZSBmdWxsIHJlZOKGknllbGxvd+KGkmdyZWVuIHNjYWxlIChhXG4vLyBzZW1hbnRpYyBncmFkaWVudCwgbm90IGEgcHJvZ3Jlc3MgZmlsbCkg4oCUIHRoZSBoYW5kbGUgbWFya3Mgd2hlcmUgeW91IGFyZVxuLy8gb24gaXQsIHNvIC5xcy1maWxsIGlzIG5vdCB1c2VkIHRvIHBhaW50IHByb2dyZXNzIGhlcmUgKGl0IHN0YXlzIHRyYW5zcGFyZW50KS5cbi5xZG5hcHJvLXNsaWRlci5xZG5hcHJvLXNsaWRlci0tc2VudGltZW50IC5xcy10cmFjayB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICA5MGRlZyxcbiAgICB2YXIoLS1jLXdhcm4tcmVkLTUwMCwgI2RjMjYyNiksXG4gICAgdmFyKC0tYy13YXJuLXllbGxvdy01MDAsICNmYmJmMjQpLFxuICAgIHZhcigtLWMtc3VjY2Vzcy1icmlnaHQsICMxZDllNzUpXG4gICk7XG59XG4ucWRuYXByby1zbGlkZXIucWRuYXByby1zbGlkZXItLXNlbnRpbWVudCAucXMtZmlsbCB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4ucWRuYXByby1zbGlkZXIucWRuYXByby1zbGlkZXItLXNlbnRpbWVudCB7XG4gIC0tcXMtaGFuZGxlLWJvcmRlcjogdmFyKC0tYy1ncmV5LTcwMCwgIzQwNDQ0ZCk7XG4gIC0tcXMtaGFuZGxlLWdsb3c6IHZhcigtLWMtZ3JleS00MDAsICNhNmFhYjMpO1xuICAtLXFzLWRvdDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xuICAtLXFzLWRvdC1hY3RpdmU6ICNmZmY7XG59XG4vLyBIaWdobGlnaHQ6IHNpbmdsZSBicmlnaHQgYWNjZW50IGNvbG91ciAoLS1jLXB1cnBsZS1oaWdobGlnaHQpLCBkaXN0aW5jdCBmcm9tXG4vLyB0aGUgYnJhbmQtcHVycGxlIHNjYWxlIHVzZWQgYnkgdGhlIGRlZmF1bHQgXCJwdXJwbGVcIiB2YXJpYW50LiBUaGlzIGlzIGFcbi8vIFNFTUFOVElDIHRva2VuIChzZWUgX2Rlc2lnbi10b2tlbnMuc2NzcykgYWxyZWFkeSByZWRlZmluZWQgdW5kZXJcbi8vIFtkYXRhLXRoZW1lPVwiZGFya1wiXSBpdHNlbGYsIHNvIOKAlCB1bmxpa2UgZXZlcnkgb3RoZXIgdmFyaWFudCBvbiB0aGlzXG4vLyBjb21wb25lbnQg4oCUIGl0IG5lZWRzIG5vIGxvY2FsIGRhcmstbW9kZSBvdmVycmlkZSBibG9jayBiZWxvdy5cbi5xZG5hcHJvLXNsaWRlci5xZG5hcHJvLXNsaWRlci0taGlnaGxpZ2h0IHtcbiAgLS1xcy10cmFjazogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlLCAjZjNmNWZmKTtcbiAgLS1xcy1maWxsOiB2YXIoLS1jLXB1cnBsZS1oaWdobGlnaHQsICM0NjUyZjMpO1xuICAtLXFzLWRvdC1hY3RpdmU6IHZhcigtLWMtcHVycGxlLWhpZ2hsaWdodCwgIzQ2NTJmMyk7XG4gIC0tcXMtaGFuZGxlLWJvcmRlcjogdmFyKC0tYy1wdXJwbGUtaGlnaGxpZ2h0LCAjNDY1MmYzKTtcbiAgLS1xcy1oYW5kbGUtZ2xvdzogdmFyKC0tYy1wdXJwbGUtaGlnaGxpZ2h0LCAjNDY1MmYzKTtcbn1cblxuLy8gLS0tLSBJY29ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5xZG5hcHJvLXNsaWRlciAucXMtaWNvbiB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG59XG4ucWRuYXByby1zbGlkZXIgLnFzLWljb24gc3ZnIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgZmlsbDogY3VycmVudENvbG9yOyB9XG5cbi8vIC0tLS0gVHJhY2sgKyBmaWxsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucWRuYXByby1zbGlkZXIgLnFzLXRyYWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGhlaWdodDogNnB4O1xuICBtYXJnaW46IDE0cHggMDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXFzLXRyYWNrKTtcbn1cbi5xZG5hcHJvLXNsaWRlciAucXMtZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1xcy1maWxsKTtcbn1cblxuLy8gLS0tLSBTdGVwIGRvdCBtYXJrZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5xZG5hcHJvLXNsaWRlciAucXMtZG90IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDVweDtcbiAgaGVpZ2h0OiA1cHg7XG4gIG1hcmdpbi1sZWZ0OiAtMi41cHg7XG4gIG1hcmdpbi10b3A6IC0yLjVweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1xcy1kb3QpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlLW91dCwgdHJhbnNmb3JtIDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tc2xpZGVyIC5xcy1kb3QuaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tcXMtZG90LWFjdGl2ZSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XG59XG5cbi8vIC0tLS0gRGVmYXVsdC12YWx1ZSBtYXJrZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBPcHRpb25hbCBkZWNvcmF0aXZlIHRpY2sgKGRlZmF1bHQtdmFsdWUgYXR0cmlidXRlKSBzaG93aW5nIGUuZy4gYSBzZXR0aW5nJ3Ncbi8vIGZhY3RvcnkgZGVmYXVsdCBhbG9uZ3NpZGUgdGhlIGN1cnJlbnQgdmFsdWUuIEEgdGhpbiB2ZXJ0aWNhbCB0aWNrIHN0cmFkZGxpbmdcbi8vIHRoZSB0cmFjaywgZGVsaWJlcmF0ZWx5IE5PVCByb3VuZCBsaWtlIHRoZSBoYW5kbGUgb3IgdGhlIHN0ZXAgZG90cywgc28gaXRcbi8vIHJlYWRzIGFzIGFuIHVub2J0cnVzaXZlIHJlZmVyZW5jZSBtYXJrIHJhdGhlciB0aGFuIGFub3RoZXIgaW50ZXJhY3RpdmUgcG9pbnQuXG4ucWRuYXByby1zbGlkZXIgLnFzLWRlZmF1bHQtbWFya2VyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDJweDtcbiAgaGVpZ2h0OiAxMnB4O1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1xcy1kZWZhdWx0LW1hcmtlcik7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAxO1xufVxuXG4vLyAtLS0tIEhhbmRsZShzKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnFkbmFwcm8tc2xpZGVyIC5xcy1oYW5kbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBtYXJnaW4tbGVmdDogLTlweDtcbiAgcGFkZGluZzogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXFzLWhhbmRsZSk7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXFzLWhhbmRsZS1ib3JkZXIpO1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbiAgY3Vyc29yOiBncmFiO1xuICB6LWluZGV4OiAyO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDE0MG1zIGVhc2Utb3V0LCB0cmFuc2Zvcm0gMTIwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby1zbGlkZXIgLnFzLWhhbmRsZTpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDZweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcXMtaGFuZGxlLWdsb3cpIDI1JSwgdHJhbnNwYXJlbnQpLCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbn1cbi5xZG5hcHJvLXNsaWRlciAucXMtaGFuZGxlOmFjdGl2ZSxcbi5xZG5hcHJvLXNsaWRlci5pcy1kcmFnZ2luZyAucXMtaGFuZGxlIHtcbiAgY3Vyc29yOiBncmFiYmluZztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEuMDgpO1xufVxuLnFkbmFwcm8tc2xpZGVyIC5xcy1oYW5kbGU6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4ucWRuYXByby1zbGlkZXIgLnFzLWhhbmRsZTpmb2N1cy12aXNpYmxlIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1xcy1oYW5kbGUtZ2xvdykgMjUlLCB0cmFuc3BhcmVudCksIDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xufVxuXG4vLyAtLS0tIFRvb2x0aXAgKHJlYWwgcWRuYXByby10b29sdGlwLCB2YWx1ZSBidWJibGUgd2hpbGUgZHJhZ2dpbmcvZm9jdXNlZCkgLS0tXG4vLyBUYXJnZXRzIHRoZSBxZG5hcHJvLXRvb2x0aXAgVEFHLCBub3QgYSBjdXN0b20gY2xhc3Mg4oCUIHRoZSBjb21wb25lbnQncyBvd25cbi8vIHJlbmRlcigpIHJlYnVpbGRzIGl0cyBjbGFzc05hbWUgZnJvbSBzY3JhdGNoIG9uIGV2ZXJ5IGF0dHJpYnV0ZSBjaGFuZ2UgYW5kXG4vLyBvbmx5IHByZXNlcnZlcyBcInRvb2x0aXAtbWFuYWdlZFwiL1widG9vbHRpcC12aXNpYmxlXCIsIHNvIGFueSBvdGhlciBjbGFzcyB3ZVxuLy8gYWRkIHRvIGl0IGdldHMgc2lsZW50bHkgd2lwZWQgdGhlIG1vbWVudCBpdCAocmUpcmVuZGVycy5cbi8vIGB0b29sdGlwLW1hbmFnZWRgIChzZXQgaW4gSlMpIG9wdHMgdGhlIHRvb2x0aXAgaW50byBpdHMgb3duIG9wYWNpdHk6MFxuLy8gZGVmYXVsdCBzdGF0ZTsgd2UgdGhlbiB0b2dnbGUgYHRvb2x0aXAtdmlzaWJsZWAgb3Vyc2VsdmVzIChpdHMgb3duIENTU1xuLy8gYWxyZWFkeSBoYW5kbGVzIHRoZSBvcGFjaXR5IGZhZGUg4oCUIHNlZSBfdG9vbHRpcC5zY3NzKS4gV2UgZnVsbHkgb3duIHRoZVxuLy8gYHRyYW5zZm9ybWAgaGVyZSAocG9zaXRpb24gb2Zmc2V0ICsgc2NhbGUpIHNvIHRoZSB0d28gZG9uJ3QgZmlnaHQgb3ZlciBvbmVcbi8vIENTUyBwcm9wZXJ0eTsgdGhlIHNjYWxlIHZhbHVlcyBtaXJyb3IgdGhlIHRvb2x0aXAncyBvd24gaG92ZXItbWFuYWdlZCBzdGF0ZXMuXG4ucWRuYXByby1zbGlkZXIgLnFzLWhhbmRsZSBxZG5hcHJvLXRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogY2FsYygxMDAlICsgOHB4KTtcbiAgbGVmdDogNTAlO1xuICB6LWluZGV4OiAzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHNjYWxlKDAuOTIpO1xufVxuLnFkbmFwcm8tc2xpZGVyIC5xcy1oYW5kbGUgcWRuYXByby10b29sdGlwLnRvb2x0aXAtdmlzaWJsZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZSgxKTtcbn1cblxuLy8gLS0tLSBQYWlyZWQgbnVtZXJpYyBpbnB1dCAocmVhbCBxZG5hcHJvLWlucHV0LCB0eXBlPW51bWJlciwgc2l6ZT1zbWFsbCkgLS0tXG4ucWRuYXByby1zbGlkZXIgLnFzLWlucHV0IHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiA2OHB4O1xufVxuXG4vLyAtLS0tIHNpemU9XCJ0b3VjaFwiIChQV0Etb25seSkg4oCUIGJpZ2dlciBoYW5kbGUgKyB0aGlja2VyIHRyYWNrICsgaGl0IGFyZWEgLS0tXG4vLyBNYXRjaGVzIHFkbmFwcm8tYnV0dG9uL2ljb24tYnRuJ3Mgc2l6ZT1cInRvdWNoXCIgNDRweCB0YXAtdGFyZ2V0IGNvbnZlbnRpb24uXG4vLyBEbyBub3QgdXNlIGluIHRoZSBiYWNrb2ZmaWNlLlxuLnFkbmFwcm8tc2xpZGVyLnFkbmFwcm8tc2xpZGVyLS10b3VjaCAucXMtdHJhY2sge1xuICBoZWlnaHQ6IDEwcHg7XG4gIG1hcmdpbjogMjJweCAwO1xufVxuLnFkbmFwcm8tc2xpZGVyLnFkbmFwcm8tc2xpZGVyLS10b3VjaCAucXMtaGFuZGxlIHtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgbWFyZ2luLWxlZnQ6IC0yMnB4O1xuICBib3JkZXItd2lkdGg6IDNweDtcbn1cbi5xZG5hcHJvLXNsaWRlci5xZG5hcHJvLXNsaWRlci0tdG91Y2ggLnFzLWRvdCB7XG4gIHdpZHRoOiA3cHg7XG4gIGhlaWdodDogN3B4O1xuICBtYXJnaW4tbGVmdDogLTMuNXB4O1xuICBtYXJnaW4tdG9wOiAtMy41cHg7XG59XG4ucWRuYXByby1zbGlkZXIucWRuYXByby1zbGlkZXItLXRvdWNoIC5xcy1pY29uIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbn1cbi5xZG5hcHJvLXNsaWRlci5xZG5hcHJvLXNsaWRlci0tdG91Y2ggLnFzLWRlZmF1bHQtbWFya2VyIHtcbiAgd2lkdGg6IDNweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBtYXJnaW4tbGVmdDogLTEuNXB4O1xuICBtYXJnaW4tdG9wOiAtOXB4O1xufVxuXG4ucWRuYXByby1zbGlkZXIuaXMtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vLyAtLS0tIERhcmsgbW9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlIHJhdyBwYWxldHRlIHRva2VucyB1c2VkIGFib3ZlICgtLWMtcHVycGxlLTUwMCwgLS1jLWdyZXktNTAsIC0tYy13YXJuLSosXG4vLyAtLWMtc3VjY2Vzcy1icmlnaHQpIGRvIE5PVCBmbGlwIGF1dG9tYXRpY2FsbHkgdW5kZXIgW2RhdGEtdGhlbWU9XCJkYXJrXCJdIOKAlFxuLy8gb25seSBzZW1hbnRpYyB0b2tlbnMgZG8gKHNlZSBfZGVzaWduLXRva2Vucy5zY3NzJ3MgZGFyayBvdmVycmlkZSBibG9jayxcbi8vIHdoaWNoIG9ubHkgcmUtcG9pbnRzIHRoaW5ncyBsaWtlIC0tYy10ZXh0LW11dGVkLCBub3QgdGhlIG51bWJlcmVkIHNjYWxlXG4vLyBpdHNlbGYpLiBTbyB0aGlzIGNvbXBvbmVudCBkZWZpbmVzIGl0cyBvd24gZGFyayBvdmVycmlkZSBmb3IgdGhlIGxvY2FsXG4vLyAtLXFzLSogY3VzdG9tIHByb3BzLCBzYW1lIHBhdHRlcm4gYXMgcWRuYXByby10b2dnbGUuIFswNy4wNy4yMDI2XVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXNsaWRlciB7XG4gIC0tcXMtdHJhY2s6IHZhcigtLWMtZ3JleS03MDAsICM0MDQ0NGQpO1xuICAtLXFzLWRvdDogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG4gIC0tcXMtZGVmYXVsdC1tYXJrZXI6IHZhcigtLWMtZ3JleS0zMDAsICNjNGM3Y2MpO1xuICAtLXFzLWhhbmRsZTogdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG4gIC0tcXMtaGFuZGxlLWJvcmRlcjogdmFyKC0tYy1wdXJwbGUtMzAwLCAjOGE5MmQwKTtcbiAgLS1xcy1oYW5kbGUtZ2xvdzogdmFyKC0tYy1wdXJwbGUtMjAwLCAjYTVhY2ZmKTtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zbGlkZXIucWRuYXByby1zbGlkZXItLW5ldXRyYWwge1xuICAtLXFzLXRyYWNrOiB2YXIoLS1jLWdyZXktNzAwLCAjNDA0NDRkKTtcbiAgLS1xcy1maWxsOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbiAgLS1xcy1kb3QtYWN0aXZlOiB2YXIoLS1jLWdyZXktMzAwLCAjYzRjN2NjKTtcbiAgLS1xcy1oYW5kbGUtYm9yZGVyOiB2YXIoLS1jLWdyZXktMzAwLCAjYzRjN2NjKTtcbiAgLS1xcy1oYW5kbGUtZ2xvdzogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc2xpZGVyLnFkbmFwcm8tc2xpZGVyLS1zZW50aW1lbnQge1xuICAtLXFzLWhhbmRsZS1ib3JkZXI6IHZhcigtLWMtZ3JleS0zMDAsICNjNGM3Y2MpO1xuICAtLXFzLWhhbmRsZS1nbG93OiB2YXIoLS1jLWdyZXktNTAwLCAjNmI3MjgwKTtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL3NrZWxldG9uL19za2VsZXRvbi1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG5AY2hhcnNldCBcIlVURi04XCI7XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFNrZWxldG9uIGxvYWRlciDigJQgY2VudHJhbCBDU1MgZm9yIGFsbCB2MSBwYWdlcyB0aGF0IHNob3cgYVxuICAgc2tlbGV0b24gd2hpbGUgZGF0YSBsb2Fkcy4gU2FtZSBzaGltbWVyIC8gLnNrLWJvbmUgdm9jYWJ1bGFyeVxuICAgYXMgdGhlIGhvbWVwYWdlLW1vY2t1cCBwcm90byBzbyBldmVyeSBwYWdlIGxvb2t0IGNvbnNpc3RlbnQuXG4gICAoS2ltIDIwMjYtMDUtMjkuKVxuXG4gICBVc2FnZTpcbiAgICAgPGJvZHkgY2xhc3M9XCJpcy1za2VsZXRvbi1sb2FkaW5nXCI+XG4gICAgICAgLi4uXG4gICAgICAgPGRpdiBjbGFzcz1cInNrZWxldG9uLWdyaWRcIj5cbiAgICAgICAgIDxkaXYgY2xhc3M9XCJzay1jYXJkXCI+XG4gICAgICAgICAgIDxkaXYgY2xhc3M9XCJzay1ib25lXCIgc3R5bGU9XCJoZWlnaHQ6NjBweDtcIj48L2Rpdj5cbiAgICAgICAgICAgPGRpdiBjbGFzcz1cInNrLWJvbmVcIiBzdHlsZT1cImhlaWdodDoxMnB4O3dpZHRoOjYwJTtcIj48L2Rpdj5cbiAgICAgICAgIDwvZGl2PlxuICAgICAgIDwvZGl2PlxuICAgICA8L2JvZHk+XG5cbiAgIFRvZ2dsZSB2aXNpYmlsaXR5IGJ5IGFkZGluZyAvIHJlbW92aW5nIGBpcy1za2VsZXRvbi1sb2FkaW5nYFxuICAgb24gdGhlIGJvZHkuIFRoZSBwYWdlLXNwZWNpZmljIGxheW91dCAoLnNrLWNhcmQgc2hhcGUsIGdyaWRcbiAgIGNvbHVtbnMsIGV0Yy4pIGxpdmVzIGluIHRoZSBwYWdlJ3Mgb3duIHN0eWxlc2hlZXQg4oCUIG9ubHlcbiAgIHRoZSBib25lIC8gc2hpbW1lciBwcmltaXRpdmVzIGxpdmUgaGVyZS5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQGtleWZyYW1lcyBzay1zaGltbWVyIHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC04MDBweCAwO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDgwMHB4IDA7XG4gIH1cbn1cbi8qIFBhZ2UtZGVmYXVsdCDigJQgbGlnaHQgdGhlbWUuIERhcmsgbW9kZSBvdmVycmlkZXMgYmVsb3cuICovXG5ib2R5IHtcbiAgLS1zay1iYXNlOiB2YXIoLS1jLXNpZGViYXItaWNvbik7XG4gIC0tc2stc2hpbmU6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbiAgLS1zay1jYXJkLWJnOiB2YXIoLS1jLXB1cnBsZS01MCk7XG59XG5cbmJvZHlbZGF0YS10aGVtZT1kYXJrXSB7XG4gIC0tc2stYmFzZTogIzFlMWYyZTtcbiAgLS1zay1zaGluZTogIzI2Mjg0MDtcbiAgLS1zay1jYXJkLWJnOiAjMTQxNTFmO1xufVxuXG4vKiBUaGUgYm9uZSDigJQgc2luZ2xlIHNoaW1tZXItcGFpbnRlZCByZWN0YW5nbGUuIENvbXBvc2UgaW50b1xuICAgcGFnZS1zcGVjaWZpYyBza2VsZXRvbiBzaGFwZXMgYnkgc3RhY2tpbmcgdGhlc2UgaW5zaWRlIC5zay1jYXJkXG4gICB3cmFwcGVycyAocGFnZS1zaWRlKS4gKi9cbi5zay1ib25lIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1zay1iYXNlKSAyNSUsIHZhcigtLXNrLXNoaW5lKSA1MCUsIHZhcigtLXNrLWJhc2UpIDc1JSk7XG4gIGJhY2tncm91bmQtc2l6ZTogODAwcHggMTAwJTtcbiAgYW5pbWF0aW9uOiBzay1zaGltbWVyIDEuNXMgaW5maW5pdGUgbGluZWFyO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi8qIEdlbmVyaWMgc2tlbGV0b24gY2FyZCBjaHJvbWUg4oCUIHBhZ2UgY2FuIG92ZXJyaWRlIGdyaWQgbGF5b3V0XG4gICBhbmQgaW5kaXZpZHVhbCBjYXJkIGRpbWVuc2lvbnMuIFBhZ2VzIHRoYXQgd2FudCBhIGRpZmZlcmVudFxuICAgbG9vayBjYW4gc2tpcCB0aGlzIGNsYXNzIGFuZCBzdHlsZSB0aGVpciBvd24gd3JhcHBlci4gKi9cbi5zay1jYXJkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2stY2FyZC1iZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNjQsIDczLCAxNTQsIDAuMTIpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuc2stYm9uZSB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG59IiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvc2tlbGV0b24tYm9uZS9fc2tlbGV0b24tYm9uZS1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG5AY2hhcnNldCBcIlVURi04XCI7XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIHFkbmFwcm8tc2tlbGV0b24tYm9uZSDigJQgYXRvbWljIHNoaW1tZXIgcGxhY2Vob2xkZXIuXG5cbiAgIFRoZSBzaGltbWVyIHBhaW50ICguc2stYm9uZSwgQGtleWZyYW1lcyBzay1zaGltbWVyKSBhbmQgdGhlXG4gICAtLXNrLSogY29sb3IgdmFycyBsaXZlIGluIHNrZWxldG9uL19za2VsZXRvbi1jb21waWxlZC5jc3MgYW5kXG4gICBhcmUgTk9UIGR1cGxpY2F0ZWQgaGVyZS4gVGhpcyBmaWxlIG9ubHkgbWFrZXMgdGhlIGN1c3RvbSBlbGVtZW50XG4gICBhIGJsb2NrIGJveCBhbmQgYWRkcyB0aGUgY2lyY2xlL3BpbGwgcmFkaXVzIG1vZGlmaWVycy4gVGhlIHNoYXBlXG4gICBvdmVycmlkZXMgYmVhdCAuc2stYm9uZSdzIDRweCBvbiBzcGVjaWZpY2l0eSAodHlwZSArIGNsYXNzKSwgc29cbiAgIGJ1bmRsZSBzb3VyY2Utb3JkZXIgZG9lcyBub3QgbWF0dGVyLiAoS2ltIDIwMjYtMDUtMzApXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbnFkbmFwcm8tc2tlbGV0b24tYm9uZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4LXNocmluazogMDtcbn1cblxucWRuYXByby1za2VsZXRvbi1ib25lLnNrZWxldG9uLWJvbmUtY2lyY2xlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG5xZG5hcHJvLXNrZWxldG9uLWJvbmUuc2tlbGV0b24tYm9uZS1waWxsIHtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG59IiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1za2VsZXRvbi1pbmJveC1yb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIE1vbGVjdWxlOiBjb21wb3NlcyBxZG5hcHJvLXNrZWxldG9uLWJvbmUgYXRvbXMgaW50byB0aGUgc2hhcGUgb2YgYVxuLy8gIHFkbmFwcm8taW5ib3gtbWVzc2FnZSByb3cuIExvYWRpbmcgc3RhdGUgZm9yIHRoZSBQV0EgaW5ib3ggbGlzdCBvblxuLy8gIGZpcnN0IG9wZW4gKFNDT1BFLXB3YS1pbmJveC5tZCBkZWNpc2lvbiAyNywgcGhhc2UgM2QpIOKAlCBidWlsdCBoZXJlXG4vLyAgaW4gdGhlIGJhY2tvZmZpY2UyIGxpYnJhcnkgYXMgdGhlIHNoYXJlZCBjb21wb25lbnQgc291cmNlOyB0aGUgYXBwXG4vLyAgc2lkZSB3aXJlcyBpdCBpbnRvIHRoZSBhY3R1YWwgc2NyZWVuIHNlcGFyYXRlbHkuXG4vL1xuLy8gIEdlb21ldHJ5IGlzIGEgZGVsaWJlcmF0ZSAxOjEgbWlycm9yIG9mIF9pbmJveC1tZXNzYWdlLnNjc3Mnc1xuLy8gIHBhZGRpbmcgLyBnYXAgLyBtYXJnaW4gdmFsdWVzIChOT1QgcmUtdXNlZCBjbGFzcyBuYW1lcyDigJQgc2VlIHRoZVxuLy8gIG5vdGUgaW4gdGhlIEpTIGZpbGUpIHNvIHRoZSBza2VsZXRvbiAtPiByZWFsLXJvdyBzd2FwIGhhcyB6ZXJvXG4vLyAgbGF5b3V0IHNoaWZ0OlxuLy8gICAgaG9zdCAgICAgICAgICBwYWRkaW5nIDRweCA4cHgsIGdhcCA4cHggICAgICAgICAgICAoc2FtZSBhcyAucWRuYXByby1pbmJveC1tZXNzYWdlKVxuLy8gICAgbGVhZCBjb2x1bW4gICB3aWR0aCA1MHB4LCBwYWRkaW5nLXRvcCA0cHgsIGZsZXgtZW5kIGp1c3RpZnkgICAoc2FtZSBhcyAuaW5ib3gtbWVzc2FnZS1sZWFkKVxuLy8gICAgbWFpbiBjb2x1bW4gICBwYWRkaW5nIDRweCAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2FtZSBhcyAuaW5ib3gtbWVzc2FnZS1tYWluKVxuLy8gICAgcm93IDEgICAgICAgICBoZWlnaHQgMjRweCAgIChtaXJyb3JzIHRoZSBzZW5kZXIgbGluZS1oZWlnaHQsIHRleHQtc3R5bGUtYm9keS0qLW1kKVxuLy8gICAgcm93IDIgICAgICAgICBoZWlnaHQgMjBweCwgbWFyZ2luLXRvcCAtMnB4ICAobWlycm9ycyBzdWJqZWN0L3RpbWVzdGFtcCwgKi1zbSArIGNvbXBhY3QgcmVjaXBlKVxuLy8gICAgcm93IDMgICAgICAgICBoZWlnaHQgMjBweCwgbWFyZ2luLXRvcCAtMnB4ICAobWlycm9ycyBwcmV2aWV3L2R1ZS10aW1lLCAqLXNtICsgY29tcGFjdCByZWNpcGUpXG4vL1xuLy8gIFNoaW1tZXIgcGFpbnQgKC5zay1ib25lKSArIHByZWZlcnMtcmVkdWNlZC1tb3Rpb24gaGFuZGxpbmcgbGl2ZVxuLy8gIGNlbnRyYWxseSBpbiBza2VsZXRvbi9fc2tlbGV0b24tY29tcGlsZWQuY3NzIOKAlCBub3QgZHVwbGljYXRlZCBoZXJlLlxuLy8gIFRoaXMgZmlsZSBvbmx5IGFkZHMgdGhlIHJvdyBjaHJvbWUgKyB0aGUgc3RhZ2dlci1pbiBlbnRyYW5jZS5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5xZG5hcHJvLXNrZWxldG9uLWluYm94LXJvdyB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgLy8gU3RhZ2dlci1pbiBvbiBtb3VudCDigJQgc2FtZSByZWNpcGUgYXMgdGhlIHJlYWwtY29udGVudCBjYXJkLWVudGVyXG4gICAgLy8gYW5pbWF0aW9uIGRvY3VtZW50ZWQgaW4gdGhlIHNrZWxldG9uLWxvYWRlcnMgc2tpbGwgKDI0MG1zLFxuICAgIC8vIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKSwgMjVtcyBzdGFnZ2VyIHN0ZXAsIGNhcHBlZCBhdFxuICAgIC8vIDEyIHJvd3Mgc28gYSBsb25nIGxpc3QgZG9lc24ndCB0YWtlIGZvcmV2ZXIgdG8gZmluaXNoIHJldmVhbGluZykuXG4gICAgb3BhY2l0eTogMDtcbiAgICBhbmltYXRpb246IHNraS1yb3ctZW50ZXIgMjQwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpIGJvdGg7XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDEyIHtcbiAgICAgICAgJjpudGgtb2YtdHlwZSgjeyRpfSkge1xuICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAjeygkaSAtIDEpICogMjV9bXM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gMTN0aCByb3cgYW5kIGJleW9uZDogbm8gZGVsYXksIGFwcGVhciBpbW1lZGlhdGVseSAobWF0Y2hlcyB0aGVcbiAgICAvLyBcInN0YWdnZXIgY2FwXCIgcnVsZSDigJQgYSB2ZXJ5IGxvbmcgbGlzdCBzaG91bGQgbm90IHRha2UgZm9yZXZlcikuXG4gICAgJjpudGgtb2YtdHlwZShuICsgMTMpIHtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwbXM7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNraS1yb3ctZW50ZXIge1xuICAgIDAlICAgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTsgfVxuICAgIDEwMCUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICBxZG5hcHJvLXNrZWxldG9uLWluYm94LXJvdyB7XG4gICAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbnFkbmFwcm8tc2tlbGV0b24taW5ib3gtcm93IC5za2ktbGVhZCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHdpZHRoOiA1MHB4O1xuICAgIHBhZGRpbmctdG9wOiA0cHg7XG59XG5cbnFkbmFwcm8tc2tlbGV0b24taW5ib3gtcm93IC5za2ktbWFpbiB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDA7XG4gICAgcGFkZGluZzogNHB4IDA7XG59XG5cbnFkbmFwcm8tc2tlbGV0b24taW5ib3gtcm93IC5za2ktcm93LTEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDI0cHg7XG59XG5cbi8vIFJvdyAyIGlzIHRoZSBzdWJqZWN0ICsgdGltZXN0YW1wIGxpbmUgYW5kIHJvdyAzIHRoZSBwcmV2aWV3ICsgZHVlLXRpbWUgbGluZS5cbi8vIFRoZXkgYXJlIE5PVCB0aGUgc2FtZSBoZWlnaHQgaW4gdGhlIHJlYWwgcm93OiBtZWFzdXJlZCBpbiB0aGUgYnJvd3NlciBvblxuLy8gMjkuMDcuMjAyNiwgLmluYm94LW1lc3NhZ2Utcm93LTIgaXMgMjRweCAobGFyZ2VyIHN1YmplY3QgdHlwZSkgYW5kXG4vLyAuaW5ib3gtbWVzc2FnZS1yb3ctMyBpcyAyMHB4LiBTaGFyaW5nIG9uZSBoZWlnaHQgaGVyZSBtYWRlIHRoZSB3aG9sZSBza2VsZXRvblxuLy8gNzZweCBhZ2FpbnN0IHRoZSByZWFsIHJvdydzIDgwcHgg4oCUIGEgNHB4IGp1bXAgcGVyIHJvdywgc28gfjI0cHggb2Ygc2hpZnQgb24gYVxuLy8gc2NyZWVuZnVsLCB3aGljaCBpcyBleGFjdGx5IHdoYXQgYSBza2VsZXRvbiBleGlzdHMgdG8gcHJldmVudC4gS2VlcCB0aGVzZSB0d29cbi8vIHNlcGFyYXRlLCBhbmQgcmUtbWVhc3VyZSBpZiB0aGUgcmVhbCByb3cncyB0eXBlIHNpemVzIGV2ZXIgY2hhbmdlLlxucWRuYXByby1za2VsZXRvbi1pbmJveC1yb3cgLnNraS1yb3ctMiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDhweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbn1cblxucWRuYXByby1za2VsZXRvbi1pbmJveC1yb3cgLnNraS1yb3ctMyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDhweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL3NrZWxldG9uLXByb2plY3QtY2FyZC9fc2tlbGV0b24tcHJvamVjdC1jYXJkLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgcWRuYXByby1za2VsZXRvbi1wcm9qZWN0LWNhcmQg4oCUIGNvbXBvc2VzIHNrZWxldG9uLWJvbmUgYXRvbXMgaW50b1xuICAgYSBwcm9qZWN0LWNhcmQtc2hhcGVkIGxvYWRpbmcgcGxhY2Vob2xkZXIuIE1pcnJvcnMgdGhlIG9yaWdpbmFsXG4gICAucHYyLXNrZWxldG9uLWNhcmQgY2hyb21lIHNvIHRoZSBza2VsZXRvbiAtPiByZWFsIGNhcmQgc3dhcCBoYXNcbiAgIHplcm8gbGF5b3V0IHNoaWZ0IChzYW1lIDEycHggcmFkaXVzLCAxcHggYm9yZGVyLCAyMDhweCBtaW4taGVpZ2h0LFxuICAgMTU4cHggcGhvdG8gYmxvY2spLiBDYXJkIHN1cmZhY2UgY29sb3IgY29tZXMgZnJvbSAtLXNrLWNhcmQtYmcgaW5cbiAgIHNrZWxldG9uL19za2VsZXRvbi1jb21waWxlZC5jc3MuIChLaW0gMjAyNi0wNS0zMClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xucWRuYXByby1za2VsZXRvbi1wcm9qZWN0LWNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtaW4taGVpZ2h0OiAyMDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2stY2FyZC1iZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNjQsIDczLCAxNTQsIDAuMTIpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xufVxuXG4vKiBQaG90byBibG9jayBmaWxscyB0aGUgdG9wIGVkZ2UtdG8tZWRnZTsgdGhlIGNhcmQncyBvd24gcmFkaXVzICtcbiAgIG92ZXJmbG93OmhpZGRlbiBjbGlwcyB0aGUgY29ybmVycywgc28gdGhlIGJvbmUgaXRzZWxmIGhhcyBubyByYWRpdXMuXG4gICBCZWF0cyAuc2stYm9uZSdzIDRweCBvbiBzcGVjaWZpY2l0eSAodHlwZSArIGNsYXNzICsgOmZpcnN0LWNoaWxkKS4gKi9cbnFkbmFwcm8tc2tlbGV0b24tcHJvamVjdC1jYXJkID4gLnNrLWJvbmU6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG5xZG5hcHJvLXNrZWxldG9uLXByb2plY3QtY2FyZCAuc3NwLWJvZHkge1xuICBmbGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIHBhZGRpbmc6IDEycHg7XG59XG5cbnFkbmFwcm8tc2tlbGV0b24tcHJvamVjdC1jYXJkIC5zc3Atc3BhY2VyIHtcbiAgZmxleDogMTtcbn0iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi9zb3VyY2UtcGlsbC9fc291cmNlLXBpbGwtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnRleHQtaDEge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiA2MHB4O1xuICBsaW5lLWhlaWdodDogNzJweDtcbn1cblxuLnRleHQtaDIge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiA0MHB4O1xuICBsaW5lLWhlaWdodDogNTZweDtcbn1cblxuLnRleHQtaDMge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBsaW5lLWhlaWdodDogNDhweDtcbn1cblxuLnRleHQtaDQge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBsaW5lLWhlaWdodDogNDRweDtcbn1cblxuLnRleHQtaDUge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogMzZweDtcbn1cblxuLnRleHQtaDYge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbn1cblxuLnRleHQtYm9keS14cyB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4udGV4dC1ib2R5LXNtIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG5cbi50ZXh0LWJvZHktbWQge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbn1cblxuLnRleHQtYm9keS1sZyB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4udGV4dC1ib2R5LXhsIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG59XG5cbi5xZG5hcHJvLXNvdXJjZS1waWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ucWRuYXByby1zb3VyY2UtcGlsbFtyb2xlPWJ1dHRvbl06aG92ZXIsIC5xZG5hcHJvLXNvdXJjZS1waWxsLmZvcmNlLWhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG59XG4ucWRuYXByby1zb3VyY2UtcGlsbFtyb2xlPWJ1dHRvbl06YWN0aXZlLCAucWRuYXByby1zb3VyY2UtcGlsbC5mb3JjZS1wcmVzc2VkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTMwMCk7XG59XG4ucWRuYXByby1zb3VyY2UtcGlsbC5zb3VyY2UtcGlsbC10eXBlLXRleHQge1xuICBnYXA6IDA7XG59XG4ucWRuYXByby1zb3VyY2UtcGlsbCAuc291cmNlLXBpbGwtbGVhZGluZyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLXNvdXJjZS1waWxsIHFkbmFwcm8tZmlsZS1pY29uLnNvdXJjZS1waWxsLWxlYWRpbmcge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xufVxuLnFkbmFwcm8tc291cmNlLXBpbGwgcWRuYXByby1maWxlLWljb24uc291cmNlLXBpbGwtbGVhZGluZyAucWRuYXByby1maWxlLWljb24tYmFkZ2Uge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnFkbmFwcm8tc291cmNlLXBpbGwgLnNvdXJjZS1waWxsLWZhdmljb24ge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxN3B4O1xuICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTMwMCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3Zlcik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5xZG5hcHJvLXNvdXJjZS1waWxsIC5zb3VyY2UtcGlsbC1mYXZpY29uIGltZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMjBtcyBlYXNlO1xufVxuLnFkbmFwcm8tc291cmNlLXBpbGwgLnNvdXJjZS1waWxsLWZhdmljb24tbGV0dGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB6LWluZGV4OiAwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5xZG5hcHJvLXNvdXJjZS1waWxsIC5zb3VyY2UtcGlsbC1mYXZpY29uLWZhbGxiYWNrIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTIwMCk7XG59XG4ucWRuYXByby1zb3VyY2UtcGlsbCAuc291cmNlLXBpbGwtZmF2aWNvbi1mYWxsYmFjayBpbWcge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnFkbmFwcm8tc291cmNlLXBpbGwgLnNvdXJjZS1waWxsLXN0YWNrIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctcmlnaHQ6IDZweDtcbn1cbi5xZG5hcHJvLXNvdXJjZS1waWxsIC5zb3VyY2UtcGlsbC1zdGFjay1pdGVtIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTdweDtcbiAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQtaG92ZXIpO1xuICBtYXJnaW4tcmlnaHQ6IC02cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLXNvdXJjZS1waWxsIC5zb3VyY2UtcGlsbC1zdGFjay1pdGVtIGltZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMjBtcyBlYXNlO1xufVxuLnFkbmFwcm8tc291cmNlLXBpbGwgLnNvdXJjZS1waWxsLXN0YWNrLWl0ZW0gLnNvdXJjZS1waWxsLWZhdmljb24tbGV0dGVyIHtcbiAgZm9udC1zaXplOiA4cHg7XG59XG4ucWRuYXByby1zb3VyY2UtcGlsbCAuc291cmNlLXBpbGwtc3RhY2stZmFsbGJhY2sge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMjAwKTtcbn1cbi5xZG5hcHJvLXNvdXJjZS1waWxsIC5zb3VyY2UtcGlsbC1zdGFjay1mYWxsYmFjayBpbWcge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnFkbmFwcm8tc291cmNlLXBpbGwgLnNvdXJjZS1waWxsLWxhYmVsIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG1heC13aWR0aDogMjQwcHg7XG59XG4ucWRuYXByby1zb3VyY2UtcGlsbFtyb2xlPWJ1dHRvbl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucWRuYXByby1zb3VyY2UtcGlsbDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucWRuYXByby1zb3VyY2UtcGlsbFtyb2xlPWJ1dHRvbl06Zm9jdXMtdmlzaWJsZSwgLnFkbmFwcm8tc291cmNlLXBpbGwuZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc291cmNlLXBpbGwge1xuICBjb2xvcjogI2E2YWFiMztcbiAgYmFja2dyb3VuZDogIzJlMzAzNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXNvdXJjZS1waWxsW3JvbGU9YnV0dG9uXTpob3ZlciwgW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc291cmNlLXBpbGwuZm9yY2UtaG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjNDA0NDRkO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc291cmNlLXBpbGxbcm9sZT1idXR0b25dOmFjdGl2ZSwgW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc291cmNlLXBpbGwuZm9yY2UtcHJlc3NlZCB7XG4gIGJhY2tncm91bmQ6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1zb3VyY2UtcGlsbCAuc291cmNlLXBpbGwtZmF2aWNvbixcbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXNvdXJjZS1waWxsIC5zb3VyY2UtcGlsbC1zdGFjay1pdGVtIHtcbiAgYmFja2dyb3VuZDogIzFmMjAyODtcbiAgYm9yZGVyLWNvbG9yOiAjNTY1YjY2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc291cmNlLXBpbGwgLnNvdXJjZS1waWxsLWZhdmljb24tZmFsbGJhY2ssXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1zb3VyY2UtcGlsbCAuc291cmNlLXBpbGwtc3RhY2stZmFsbGJhY2sge1xuICBiYWNrZ3JvdW5kOiAjNTY1YjY2O1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1zdGFyLXJhdGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgRmFzZSAyYSDigJQgcGVyc29uYWwgNS1zdGFyIHJhdGluZyBjb250cm9sLiBWaXN1YWwvaW50ZXJhY3Rpb25cbi8vICBtb2RlbCBib3Jyb3dlZCBmcm9tIHFkbmFwcm8tZmF2b3JpdGUtYnV0dG9uIChzaW5nbGUgZm9jdXNhYmxlXG4vLyAgaG9zdCwgaG92ZXItcHJldmlldywgY2xpY2stdG8tdG9nZ2xlLW9mZikuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxucWRuYXByby1zdGFyLXJhdGluZyB7XG4gICAgLS1jLWZvY3VzLXJpbmc6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gICAgLS1jLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAycHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAuc3Rhci1yYXRpbmctc3RhciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktMzAwKTtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMTIwbXMgZWFzZSwgdHJhbnNmb3JtIDEyMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKTtcbiAgICB9XG4gICAgLnN0YXItcmF0aW5nLXN0YXItZmlsbGVkIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtd2FybmluZy1icmlnaHQtYm9yZGVyKTtcbiAgICB9XG5cbiAgICAmOm5vdCguc3Rhci1yYXRpbmctcmVhZG9ubHkpIC5zdGFyLXJhdGluZy1zdGFyOmhvdmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYy1mb2N1cy1yaW5nKSwgMCAwIDAgNnB4IHZhcigtLWMtZm9jdXMtZ2xvdyk7XG4gICAgfVxuXG4gICAgLy8gXCJiaWdcIiAoMjBweCB2cyAxNnB4IGljb25zKSBpcyBhcHBsaWVkIHZpYSBhIHJlYWwgYHNpemVgIGF0dHJpYnV0ZSBvblxuICAgIC8vIGVhY2ggcWRuYXByby1pY29uIChyZWJ1aWx0IGluIEpTIG9uIGF0dHJpYnV0ZSBjaGFuZ2UpIOKAlCBubyBDU1NcbiAgICAvLyB0cmFuc2Zvcm06c2NhbGUgbmVlZGVkLCBzbyBubyBzdGFsZSBsYXlvdXQgZ2Fwcy5cblxuICAgICYuc3Rhci1yYXRpbmctcmVhZG9ubHkge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxufVxuXG5bZGF0YS10aGVtZT1kYXJrXSBxZG5hcHJvLXN0YXItcmF0aW5nIHtcbiAgICAtLWMtZm9jdXMtcmluZzogI2E1YWNmZjtcbiAgICAtLWMtZm9jdXMtZ2xvdzogcmdiYSgxNjUsIDE3MiwgMjU1LCAwLjQwKTtcblxuICAgIC5zdGFyLXJhdGluZy1zdGFyIHtcbiAgICAgICAgY29sb3I6ICM0YTRlNWM7XG4gICAgfVxuICAgIC5zdGFyLXJhdGluZy1zdGFyLWZpbGxlZCB7XG4gICAgICAgIGNvbG9yOiAjZmZkNTRhO1xuICAgIH1cbn1cbiIsIi8vIHFkbmFwcm8tc3RhdC1jYXJkIOKAlCBjb21wYWN0IHN0YXQgdGlsZSBmb3IgYSBwYWdlIGhlYWRlciByb3cuXG4vLyBTb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIHN0eWxlczsgZWRpdCBIRVJFLCB0aGVuIHJ1biBgZ3VscCBzYXNzLXYxYFxuLy8gKGNvbXBpbGVzIGludG8gd2ViL2Nzcy92MS9zdHlsZS12MS5jc3MpLiBQbGFpbiBDU1Mgb24gcHVycG9zZSB0byBtYXRjaCB0aGVcbi8vIG90aGVyIHYyIGNvbXBvbmVudCBzb3VyY2VzLlxuLy9cbi8vIExvb2tzIHZpYSB0aGUgdmFyaWFudCBjbGFzczpcbi8vICAgLnN0YXQtY2FyZC12YXJpYW50LWRlZmF1bHQg4oCUIG1pbmltYWwgd2hpdGUgY2FyZCAodGhlIG9yaWdpbmFsIGxvb2spXG4vLyAgIC5zdGF0LWNhcmQtdmFyaWFudC1hY2NlbnQgIOKAlCB0b25lLXRpbnRlZCBjYXJkIHdpdGggYSB3aGl0ZSBpY29uIGNoaXBcbi8vICAgLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5ICAgLSBkYXNoZWQsIG11dGVkLCBubyBudW1iZXIgKDAvbm90aGluZyBsaW5rZWQpXG4vLyAgIC5zdGF0LWNhcmQtdmFyaWFudC1zb2xpZCAgIC0gdGhlIHdob2xlIHRpbGUgZmlsbGVkIHdpdGggdGhlIHRvbmUsIHdoaXRlIHR5cGVcbi8vICAgLnN0YXQtY2FyZC12YXJpYW50LXN0YWNrZWQgLSBjZW50ZXJlZCBpY29uK3ZhbHVlIC8gbGFiZWwgdGlsZSBmb3IgdGhlXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVsc2UgcHJvZmlsZSBwYWdlICh0d28tdXAgZ3JpZCwgbm90IHRoZVxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlciByb3cpLiBJZ25vcmVzIGBzaXplYC4gW0tpbSAyNC4wOS4yMDI2XVxuLy8gVG9uZSAoLnN0YXQtY2FyZC10b25lLSopIHNldHMgdGhlIGFjY2VudCArIHNvZnQtdGludCArIHNvbGlkIGZpbGwgdmlhIENTU1xuLy8gdmFycywgc28gdGhlIHZhcmlhbnRzIHN0YXkgdG9uZS1hZ25vc3RpYy4gU3RhdGVzOiBob3ZlciAvIHByZXNzZWQgLyBmb2N1cyAvXG4vLyBkaXNhYmxlZC5cbi8vXG4vLyBUaHJlZSBoZWlnaHRzIHZpYSB0aGUgc2l6ZSBjbGFzcyAoLnN0YXQtY2FyZC1zaXplLWxhcmdlIGlzIHRoZSBkZWZhdWx0IGFuZFxuLy8gc3RheXMgZXhhY3RseSBhcyBpdCB3YXMsIHNvIGV2ZXJ5IGV4aXN0aW5nIHBhZ2UgaXMgdW50b3VjaGVkKTpcbi8vICAgbGFyZ2UgIOKAlCA4MHB4ICAoZGVmYXVsdClcbi8vICAgbWVkaXVtIOKAlCA2MHB4XG4vLyAgIHNtYWxsICDigJQgNDRweFxuLy8gVGhlIHNpemUgY2xhc3NlcyBjb21lIEFGVEVSIHRoZSB2YXJpYW50IHJ1bGVzIG9uIHB1cnBvc2U6IGF0IGVxdWFsXG4vLyBzcGVjaWZpY2l0eSB0aGUgbGF0ZXIgcnVsZSB3aW5zLCBzbyBhIHNpemUgb3ZlcnJpZGVzIHRoZSBhY2NlbnQgdmFyaWFudCdzXG4vLyBiaWdnZXIgaWNvbiBjaGlwIGFuZCB2YWx1ZSBmb3IgYm90aCB2YXJpYW50cyBhdCBvbmNlLiBbS2ltIDEwLjA4LjIwMjZdXG5cbi5xZG5hcHJvLXN0YXQtY2FyZCB7XG4gIC0tc2MtYWNjZW50OiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLXNjLXNvZnQ6ICAgdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTtcbiAgLS1zYy1ib3JkZXI6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbiAgLS1zYy1maWxsOiAgIHZhcigtLWMtcHVycGxlLTUwMCk7XG5cbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiA4MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIHBhZGRpbmc6IDEycHggMTRweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdC0yKTtcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMTYwbXMgZWFzZSwgdHJhbnNmb3JtIDE2MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJvcmRlci1jb2xvciAxNDBtcyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDE0MG1zIGVhc2U7XG59XG5cbi8vIC0tLSB0b25lcyAoYWNjZW50ICsgc29mdCB0aW50ICsgYm9yZGVyIHRpbnQgKyBzb2xpZCBmaWxsKSAtLS1cbi8vIC0tc2MtZmlsbCBpcyB0aGUgc3VyZmFjZSBvZiB0aGUgc29saWQgdmFyaWFudC4gRWFjaCBvbmUgd2FzIHBpY2tlZCBzbyB0aGF0XG4vLyBwbGFpbiBXSElURSBjbGVhcnMgNC41OjEgb24gaXQsIHRoZSBBQSBmbG9vciBmb3IgTk9STUFMIHRleHQsIHdoaWNoIGlzIHdoYXRcbi8vIHRoZSAxMXB4IGxhYmVsIGlzIChzbWFsbCBjYXBzIHRleHQgaXMgbm90IFwibGFyZ2UgdGV4dFwiLCBzbyB0aGUgMzoxIHNob3J0Y3V0XG4vLyBkb2VzIG5vdCBhcHBseSBoZXJlKS4gTWVhc3VyZWQsIHdoaXRlIG9uIGZpbGw6XG4vLyAgIHB1cnBsZSAjNDA0OTlhIDcuOTYgwrcgcmVkICM5OTFiMWIgOC4zMSDCtyBncmVlbiAjMTI4MDVlIDQuOTFcbi8vICAgYmx1ZSAgICMzNTQwZDYgNy4zNSDCtyBvcmFuZ2UgI2I0NTMwOSA1LjAyIMK3IGdyYXkgICM1NjViNjYgNi44MVxuLy8gQWxsIHNpeCBhcmUgTGF5ZXItQSBwcmltaXRpdmVzIHdpdGggbm8gZGFyay10aGVtZSBvdmVycmlkZSwgc28gYSBzb2xpZCB0aWxlXG4vLyBhbmQgaXRzIGNvbnRyYXN0IGFyZSBpZGVudGljYWwgaW4gbGlnaHQgYW5kIGRhcmsuXG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXRvbmUtcHVycGxlIHsgLS1zYy1hY2NlbnQ6IHZhcigtLWMtcHVycGxlLTUwMCk7IC0tc2Mtc29mdDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTsgLS1zYy1ib3JkZXI6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTsgLS1zYy1maWxsOiB2YXIoLS1jLXB1cnBsZS01MDApOyB9XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXRvbmUtcmVkICAgIHsgLS1zYy1hY2NlbnQ6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTsgLS1zYy1zb2Z0OiB2YXIoLS1jLXNpZ25hbC1yZWQtc29mdCk7IC0tc2MtYm9yZGVyOiB2YXIoLS1jLXRhZy1jcml0aWNhbC1iZyk7IC0tc2MtZmlsbDogdmFyKC0tYy13YXJuLXJlZC02MDApOyB9XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXRvbmUtZ3JlZW4gIHsgLS1zYy1hY2NlbnQ6IHZhcigtLWMtc3VjY2Vzcy1icmlnaHQpOyAtLXNjLXNvZnQ6IHZhcigtLWMtY2hpcC1ncmVlbi1iZyk7IC0tc2MtYm9yZGVyOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi0xMDApOyAtLXNjLWZpbGw6IHZhcigtLWMtc3VjY2Vzcy01MDApOyB9XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXRvbmUtYmx1ZSAgIHsgLS1zYy1hY2NlbnQ6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS1ob3Zlcik7IC0tc2Mtc29mdDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKTsgLS1zYy1ib3JkZXI6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWJnKTsgLS1zYy1maWxsOiB2YXIoLS1jLWFjdGlvbi02MDApOyB9XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXRvbmUtb3JhbmdlIHsgLS1zYy1hY2NlbnQ6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKTsgLS1zYy1zb2Z0OiB2YXIoLS1jLXNpZ25hbC1vcmFuZ2UtYmcpOyAtLXNjLWJvcmRlcjogdmFyKC0tYy1zaWduYWwteWVsbG93LWJnKTsgLS1zYy1maWxsOiB2YXIoLS1jLXdhcm4tYW1iZXItNjAwKTsgfVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC10b25lLWdyYXkgICB7IC0tc2MtYWNjZW50OiB2YXIoLS1jLWdyZXktNTAwKTsgLS1zYy1zb2Z0OiB2YXIoLS1jLWJnLWNhcmQtaG92ZXIpOyAtLXNjLWJvcmRlcjogdmFyKC0tYy1jaGlwLWdyZXktaG92ZXIpOyAtLXNjLWZpbGw6IHZhcigtLWMtZ3JleS02MDApOyB9XG5cbi8vIC0tLSBpbm5lciBwYXJ0cyAtLS1cbi5xZG5hcHJvLXN0YXQtY2FyZCAuc3RhdC1jYXJkLWljb24ge1xuICB3aWR0aDogMzRweDtcbiAgaGVpZ2h0OiAzNHB4O1xuICBmbGV4LXNocmluazogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDlweDtcbn1cbi5xZG5hcHJvLXN0YXQtY2FyZCAuc3RhdC1jYXJkLWJvZHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDFweDtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkIC5zdGF0LWNhcmQtdmFsdWUge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZyk7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucWRuYXByby1zdGF0LWNhcmQgLnN0YXQtY2FyZC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4vLyAtLS0gdmFyaWFudDogYWNjZW50ICh0b25lLXRpbnRlZCwgd2hpdGUgaWNvbiBjaGlwLCBib2xkZXIgdmFsdWUpIC0tLVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LWFjY2VudCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNjLXNvZnQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNjLWJvcmRlcik7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtYWNjZW50IC5zdGF0LWNhcmQtaWNvbiB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDIwLCAyNSwgODAsIDAuMTApO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LWFjY2VudCAuc3RhdC1jYXJkLXZhbHVlIHtcbiAgZm9udC1zaXplOiAyMnB4O1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LWFjY2VudCAuc3RhdC1jYXJkLWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLXNjLWFjY2VudCk7XG59XG5cbi8vIC0tLSB2YXJpYW50OiBzb2xpZCAodGhlIHRvbmUgZmlsbHMgdGhlIHdob2xlIHRpbGUsIHRoZSB0eXBlIGlzIHdoaXRlKSAtLS1cbi8vIEZvciBhIHNpZ25hbCByb3cgdGhhdCBoYXMgdG8ganVtcCBvZmYgdGhlIHBhZ2UgaW5zdGVhZCBvZiBzaXR0aW5nIHF1aWV0bHlcbi8vIGFtb25nIHRoZSBjYXJkcyBhcm91bmQgaXQgKG5vcm1lbmthZGVyczogd2hhdCBpcyBidXJuaW5nIHJpZ2h0IG5vdykuIFRoZVxuLy8gdGlsZSBpcyBvbmUgZmxhdCBjb2xvdXIgd2l0aCBubyBib3JkZXIgYW5kIG5vIGxlZnQgYWNjZW50IGJhcjogdGhlIGNvbG91clxuLy8gSVMgdGhlIHNpZ25hbCwgc28gbm90aGluZyBlbHNlIGhhcyB0byBjYXJyeSBpdC5cbi8vXG4vLyBSYW5rIGluc2lkZSB0aGUgdGlsZSBjb21lcyBmcm9tIHNpemUgYW5kIHdlaWdodCwgbmV2ZXIgZnJvbSBvcGFjaXR5OiBhXG4vLyB0cmFuc2x1Y2VudCB3aGl0ZSBsYWJlbCB3b3VsZCBkcm9wIHVuZGVyIHRoZSA0LjU6MSBmbG9vciBvbiB0aGUgbGlnaHRlclxuLy8gZmlsbHMgKGdyZWVuIGlzIHRoZSB0aWdodGVzdCBhdCA0LjkxIHdpdGggcHVyZSB3aGl0ZSwgc28gdGhlcmUgaXMgYWxtb3N0IG5vXG4vLyByb29tIHRvIGZhZGUpLiBCb3RoIGxpbmVzIHRoZXJlZm9yZSBzdGF5IHNvbGlkIHdoaXRlLiBbQ2xhdWRlIDE0LjA5LjIwMjZdXG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtc29saWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zYy1maWxsKTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMjAsIDI1LCA4MCwgMC4xNCk7XG59XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtc29saWQgLnN0YXQtY2FyZC12YWx1ZSxcbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1zb2xpZCAuc3RhdC1jYXJkLWxhYmVsLFxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LXNvbGlkIC5zdGF0LWNhcmQtc3ViIHtcbiAgY29sb3I6ICNmZmY7XG59XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtc29saWQgLnN0YXQtY2FyZC12YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi8vIEEgc2lnbmFsIHRpbGUncyBsYWJlbCBpcyBhIHNlbnRlbmNlIChcIk9wZW4gYWZ3aWpraW5nZW4gb3Agbm9ybWVuXCIpLCBub3QgdGhlXG4vLyBvbmUgb3IgdHdvIGhlYWRlciB3b3JkcyB0aGUgb3RoZXIgdmFyaWFudHMgY2FycnksIHNvIGl0IHdyYXBzIGluc3RlYWQgb2Zcbi8vIGJlaW5nIGN1dCBvZmYgd2l0aCBhbiBlbGxpcHNpcy4gVGhlIHNoYXJlZCBydWxlIGNsaXBzIGF0IGFib3V0IDgwMHB4IG9mIHJvd1xuLy8gd2lkdGgsIHdoaWNoIGlzIHdoZXJlIGEgMTNcIiBsYXB0b3AgbGFuZHMuIFR3byBsaW5lcyBzdGlsbCBmaXQgaW5zaWRlIHRoZVxuLy8gODBweCB0aGUgbGFyZ2Ugc2l6ZSBhbHJlYWR5IHJlc2VydmVzLiBbQ2xhdWRlIDE0LjA5LjIwMjZdXG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtc29saWQgLnN0YXQtY2FyZC1sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuLy8gVGhlIGljb24gY2hpcCBpcyBhIHRyYW5zbHVjZW50IHdoaXRlIHNxdWFyZSBoZXJlIGluc3RlYWQgb2YgdGhlIGFjY2VudFxuLy8gdmFyaWFudCdzIHdoaXRlIGNhcmQuIE5vdGUgdGhlIGljb24gaXRzZWxmIGtlZXBzIGl0cyBvd24gY29sb3Vycy5cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1zb2xpZCAuc3RhdC1jYXJkLWljb24ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlLTIyKTtcbiAgYm9yZGVyLXJhZGl1czogOXB4O1xufVxuLy8gTm8gaWNvbiBnaXZlbjogY29sbGFwc2UgdGhlIGNoaXAsIG9yIHRoZSB0aWxlIGNhcnJpZXMgYW4gZW1wdHkgd2hpdGUgc3F1YXJlLlxuLy8gKFRoZSB3cmFwcGVyIGlzIGFsd2F5cyByZW5kZXJlZDsgaXQgaXMgb25seSBjaGlsZGxlc3Mgd2hlbiBgaWNvbmAgaXMgdW5zZXQuKVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LXNvbGlkIC5zdGF0LWNhcmQtaWNvbjplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vLyBIb3Zlci9mb2N1czogdGhlIHNoYXJlZCBydWxlcyBwYWludCB0aGUgYm9yZGVyIHdpdGggLS1zYy1hY2NlbnQsIHdoaWNoIHdvdWxkXG4vLyBkcmF3IGEgc2Vjb25kLCBsaWdodGVyIG91dGxpbmUgb24gdG9wIG9mIHRoZSBmaWxsLiBUaGVzZSB3aW4gb24gc3BlY2lmaWNpdHlcbi8vICh0aHJlZSBjbGFzc2VzIHZzIG9uZSksIHNvIHRoZXkgaG9sZCB3aGVyZXZlciB0aGV5IHNpdCBpbiB0aGUgZmlsZS5cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1zb2xpZDpub3QoLnN0YXQtY2FyZC1kaXNhYmxlZCk6bm90KC5zdGF0LWNhcmQtc3RhdGljKTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDIwcHggcmdiYSgyMCwgMjUsIDgwLCAwLjI2KTtcbn1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1zb2xpZDpub3QoLnN0YXQtY2FyZC1kaXNhYmxlZCk6bm90KC5zdGF0LWNhcmQtc3RhdGljKTpmb2N1cy12aXNpYmxlIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHZhcigtLWZvY3VzLWdsb3cpO1xufVxuLy8gU2l6ZXM6IHRoZSB2YWx1ZSBrZWVwcyBhIHN0ZXAgb3ZlciB0aGUgc2hhcmVkIHNjYWxlLCBzYW1lIGFzIGFjY2VudCBkb2VzLlxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LXNvbGlkLnN0YXQtY2FyZC1zaXplLW1lZGl1bSAuc3RhdC1jYXJkLXZhbHVlIHsgZm9udC1zaXplOiAxOXB4OyB9XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtc29saWQuc3RhdC1jYXJkLXNpemUtc21hbGwgLnN0YXQtY2FyZC12YWx1ZSAgeyBmb250LXNpemU6IDE2cHg7IH1cblxuLy8gLS0tIHZhcmlhbnQ6IGVtcHR5IChkYXNoZWQsIG11dGVkIOKAlCB2YWx1ZSBpcyAwIC8gbm90aGluZyBsaW5rZWQgeWV0KSAtLS1cbi8vIERpc3Rpbmd1aXNoZXMgYW4gRU1QVFkgc3RhdCAoXCJHZWVuIGJlcmljaHRlblwiKSBmcm9tIGFuIGFjdGl2ZSBvbmU6IGRhc2hlZFxuLy8gYm9yZGVyLCBtdXRlZCB0b25lLXRpbnRlZCBpY29uIGNoaXAsIE5PIG51bWJlciDigJQgdGhlIGxhYmVsICsgLnN0YXQtY2FyZC1zdWJcbi8vIGhpbnQgY2FycnkgdGhlIG1lc3NhZ2UsIGFuZCBob3ZlciB0dXJucyBpbnZpdGluZyAocHVycGxlKS4gW0tpbSAyMDI2LTA2LTE0XVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm9yZGVyOiAxLjVweCBkYXNoZWQgdmFyKC0tYy1zaWRlYmFyLWljb24pO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5IC5zdGF0LWNhcmQtaWNvbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNjLXNvZnQpO1xuICBvcGFjaXR5OiAwLjU1O1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5IC5zdGF0LWNhcmQtdmFsdWUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5IC5zdGF0LWNhcmQtbGFiZWwge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQtcHApO1xuICB0cmFuc2l0aW9uOiBjb2xvciAxNDBtcyBlYXNlO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkIC5zdGF0LWNhcmQtc3ViIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgdHJhbnNpdGlvbjogY29sb3IgMTQwbXMgZWFzZTtcbn1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1lbXB0eTpub3QoLnN0YXQtY2FyZC1kaXNhYmxlZCk6bm90KC5zdGF0LWNhcmQtc3RhdGljKTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtMzAwKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5Om5vdCguc3RhdC1jYXJkLWRpc2FibGVkKTpub3QoLnN0YXQtY2FyZC1zdGF0aWMpOmhvdmVyIC5zdGF0LWNhcmQtbGFiZWwge1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1lbXB0eTpub3QoLnN0YXQtY2FyZC1kaXNhYmxlZCk6bm90KC5zdGF0LWNhcmQtc3RhdGljKTpob3ZlciAuc3RhdC1jYXJkLXN1YiB7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS0zMDApO1xufVxuXG4vLyAtLS0gd2FybmluZyBzdGF0ZTogYSByZXF1aXJlZCBzZXR0aW5nIGlzIG9uIGJ1dCBub3RoaW5nIGlzIGxpbmtlZCB5ZXQgLS0tXG4vLyBBbWJlciBhY2NlbnQ7IG9uIHRoZSBlbXB0eSB2YXJpYW50IHRoZSBkYXNoZWQgYm9yZGVyICsgbGFiZWwgKyBzdWIgdHVybiBhbWJlclxuLy8gc28gdGhlIGNhcmQgcmVhZHMgYXMgXCJhY3RpZSBub2RpZ1wiLCBtYXRjaGluZyB0aGUgYW1iZXIgcm93IHdhcm5pbmdzLiBbS2ltIDIwMjYtMDYtMTVdXG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXdhcm5pbmcge1xuICAtLXNjLWFjY2VudDogdmFyKC0tYy13YXJuLXllbGxvdy02MDApO1xuICAtLXNjLXNvZnQ6IHZhcigtLWMtc2lnbmFsLW9yYW5nZS1iZyk7XG4gIC0tc2MtYm9yZGVyOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctYmcpO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC13YXJuaW5nLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5IHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG59XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXdhcm5pbmcuc3RhdC1jYXJkLXZhcmlhbnQtZW1wdHkgLnN0YXQtY2FyZC1pY29uIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtd2FybmluZyAuc3RhdC1jYXJkLXN1YiB7XG4gIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctdGV4dCk7XG59XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXdhcm5pbmcuc3RhdC1jYXJkLXZhcmlhbnQtZW1wdHkgLnN0YXQtY2FyZC1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRhZy13YXJuaW5nLXRleHQpO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC13YXJuaW5nLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5Om5vdCguc3RhdC1jYXJkLWRpc2FibGVkKTpub3QoLnN0YXQtY2FyZC1zdGF0aWMpOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG59XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXdhcm5pbmcuc3RhdC1jYXJkLXZhcmlhbnQtZW1wdHk6bm90KC5zdGF0LWNhcmQtZGlzYWJsZWQpOm5vdCguc3RhdC1jYXJkLXN0YXRpYyk6aG92ZXIgLnN0YXQtY2FyZC1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRhZy13YXJuaW5nLXRleHQpO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC13YXJuaW5nLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5Om5vdCguc3RhdC1jYXJkLWRpc2FibGVkKTpub3QoLnN0YXQtY2FyZC1zdGF0aWMpOmhvdmVyIC5zdGF0LWNhcmQtc3ViIHtcbiAgY29sb3I6IHZhcigtLWMtdGFnLXdhcm5pbmctdGV4dCk7XG59XG5cbi8vIC0tLSBzaXplcyAtLS1cbi8vIFBsYWNlZCBhZnRlciB0aGUgdmFyaWFudHMgc28gYSBzaXplIHdpbnMgb24gYm90aCBkZWZhdWx0IGFuZCBhY2NlbnQuXG4vLyBsYXJnZSA9IHRoZSBvcmlnaW5hbCBudW1iZXJzOyB3cml0dGVuIG91dCBzbyB0aGUgY2xhc3MgaXMgcmVhbCBhbmQgY2FuIGJlXG4vLyBzZXQgZXhwbGljaXRseSB3aXRob3V0IGNoYW5naW5nIGFueXRoaW5nLlxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC1zaXplLWxhcmdlIHtcbiAgbWluLWhlaWdodDogODBweDtcbiAgcGFkZGluZzogMTJweCAxNHB4O1xuICBnYXA6IDEwcHg7XG59XG5cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtc2l6ZS1tZWRpdW0ge1xuICBtaW4taGVpZ2h0OiA2MHB4O1xuICBwYWRkaW5nOiA5cHggMTJweDtcbiAgZ2FwOiA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IDExcHg7XG59XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXNpemUtbWVkaXVtIC5zdGF0LWNhcmQtaWNvbiB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cbi8vIFRoZSBsYWJlbCBhbmQgdGhlIHN1YiBoYXZlIG5vIGxpbmUtaGVpZ2h0IG9mIHRoZWlyIG93biBvbiB0aGUgbGFyZ2UgY2FyZCDigJRcbi8vIHRoZXkgaW5oZXJpdCB0aGUgcGFnZSdzLiBBdCA4MHB4IHRoYXQgbmV2ZXIgc2hvd2VkLCBiZWNhdXNlIG1pbi1oZWlnaHQgd29uLlxuLy8gQXQgNjAvNDRweCBpdCBkb2VzOiBhbiBpbmhlcml0ZWQgMjRweCBsaW5lIHB1c2hlcyB0aGUgY2FyZCB0YWxsZXIgdGhhbiB0aGVcbi8vIHNpemUgaXQgcHJvbWlzZXMuIFNvIHRoZSBzbWFsbGVyIHNpemVzIHBpbiB0aGVpciBvd24gbGluZS1oZWlnaHQuIFsxMC4wOC4yMDI2XVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC1zaXplLW1lZGl1bSAuc3RhdC1jYXJkLXZhbHVlIHsgZm9udC1zaXplOiAxN3B4OyB9XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXNpemUtbWVkaXVtIC5zdGF0LWNhcmQtbGFiZWwgeyBmb250LXNpemU6IDExcHg7IGxpbmUtaGVpZ2h0OiAxLjM1OyB9XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXNpemUtbWVkaXVtIC5zdGF0LWNhcmQtc3ViICAgeyBmb250LXNpemU6IDExcHg7IGxpbmUtaGVpZ2h0OiAxLjM1OyB9XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXNpemUtbWVkaXVtLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5IC5zdGF0LWNhcmQtbGFiZWwgeyBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjM7IH1cblxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC1zaXplLXNtYWxsIHtcbiAgbWluLWhlaWdodDogNDRweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGdhcDogOHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC1zaXplLXNtYWxsIC5zdGF0LWNhcmQtaWNvbiB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbn1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtc2l6ZS1zbWFsbCAuc3RhdC1jYXJkLXZhbHVlIHsgZm9udC1zaXplOiAxNXB4OyB9XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXNpemUtc21hbGwgLnN0YXQtY2FyZC1sYWJlbCB7IGZvbnQtc2l6ZTogMTBweDsgbGluZS1oZWlnaHQ6IDEuMzU7IH1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtc2l6ZS1zbWFsbCAuc3RhdC1jYXJkLXN1YiAgIHsgZm9udC1zaXplOiAxMHB4OyBsaW5lLWhlaWdodDogMS4zNTsgfVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC1zaXplLXNtYWxsLnN0YXQtY2FyZC12YXJpYW50LWVtcHR5IC5zdGF0LWNhcmQtbGFiZWwgeyBmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAxLjM7IH1cblxuLy8gVGhlIGFjY2VudCB2YXJpYW50IGtlZXBzIGl0cyB3aGl0ZSBjaGlwIG9uIGV2ZXJ5IHNpemUsIGJ1dCBub3QgdGhlIGV4dHJhXG4vLyBjaGlwIHBhZGRpbmc6IGF0IDYwLzQ0cHggYSA0MHB4IGNoaXAgbm8gbG9uZ2VyIGZpdHMuXG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtYWNjZW50LnN0YXQtY2FyZC1zaXplLW1lZGl1bSAuc3RhdC1jYXJkLXZhbHVlIHsgZm9udC1zaXplOiAxOHB4OyB9XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtYWNjZW50LnN0YXQtY2FyZC1zaXplLXNtYWxsIC5zdGF0LWNhcmQtdmFsdWUgIHsgZm9udC1zaXplOiAxNXB4OyB9XG5cbi8vIC0tLSBzdGF0ZTogaG92ZXIgLS0tXG4ucWRuYXByby1zdGF0LWNhcmQ6bm90KC5zdGF0LWNhcmQtZGlzYWJsZWQpOm5vdCguc3RhdC1jYXJkLXN0YXRpYyk6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNjLWFjY2VudCk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE0cHggcmdiYSgyMCwgMjUsIDgwLCAwLjEwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LWFjY2VudDpub3QoLnN0YXQtY2FyZC1kaXNhYmxlZCk6bm90KC5zdGF0LWNhcmQtc3RhdGljKTpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDE4cHggcmdiYSgyMCwgMjUsIDgwLCAwLjEyKTtcbn1cblxuLy8gLS0tIHN0YXRlOiBwcmVzc2VkIC0tLVxuLnFkbmFwcm8tc3RhdC1jYXJkOm5vdCguc3RhdC1jYXJkLWRpc2FibGVkKTpub3QoLnN0YXQtY2FyZC1zdGF0aWMpOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgwLjk4NSk7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDIwLCAyNSwgODAsIDAuMTIpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA2MG1zO1xufVxuXG4vLyAtLS0gc3RhdGU6IGZvY3VzIChrZXlib2FyZCkgLS0tXG4ucWRuYXByby1zdGF0LWNhcmQ6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4ucWRuYXByby1zdGF0LWNhcmQ6bm90KC5zdGF0LWNhcmQtZGlzYWJsZWQpOm5vdCguc3RhdC1jYXJkLXN0YXRpYyk6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2MtYWNjZW50KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHZhcigtLWZvY3VzLWdsb3cpO1xufVxuXG4vLyAtLS0gc3RhdGU6IHN0YXRpYyAtLS1cbi8vIFB1cmVseSBpbmZvcm1hdGlvbmFsICh0aGUgYHN0YXRpY2AgYXR0cmlidXRlKTogbm8gcG9pbnRlciwgYW5kIGV2ZXJ5IGhvdmVyIC9cbi8vIHByZXNzZWQgLyBmb2N1cyBydWxlIGFib3ZlIGlzIGdhdGVkIG9uIDpub3QoLnN0YXQtY2FyZC1zdGF0aWMpLCBzbyB0aGUgY2FyZFxuLy8gbmV2ZXIgbGlmdHMsIG5ldmVyIGdldHMgYW4gYWNjZW50IGJvcmRlciBhbmQgbmV2ZXIgc2hvd3MgYSBmb2N1cyByaW5nLiBGdWxsXG4vLyBvcGFjaXR5LCB1bmxpa2UgZGlzYWJsZWQ6IGl0IGlzIG5vdCB1bmF2YWlsYWJsZSwgaXQgaXMgc2ltcGx5IG5vdCBhIGNvbnRyb2wuXG4vLyBbMjMuMDkuMjAyNl1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtc3RhdGljIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLyAtLS0gc3RhdGU6IGRpc2FibGVkIC0tLVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi8vIC0tLSB2YXJpYW50OiBzdGFja2VkIChQdWxzZSBwcm9maWxlIFwiTWlqbiBQdWxzZVwiIHRpbGVzLCBhcHByb3ZlZCAyNC4wOS4yMDI2KSAtLS1cbi8vIENlbnRlcmVkIHRpbGU6IGljb24gKyB2YWx1ZSBzaWRlIGJ5IHNpZGUgb24gdG9wLCBsYWJlbCBjZW50ZXJlZCB1bmRlcm5lYXRoLlxuLy8gTWVhbnQgdG8gc2l0IHR3by11cCBpbiBhIGdyaWQgKC5xZG5hcHJvLXN0YXQtY2FyZC1ncmlkIGJlbG93KSByYXRoZXIgdGhhbiBpblxuLy8gdGhlIGhlYWRlciByb3cgdGhlIG90aGVyIHZhcmlhbnRzIHVzZSwgc28gaXQgaWdub3JlcyBgc2l6ZWAgZW50aXJlbHkgYW5kXG4vLyBjYXJyaWVzIGl0cyBvd24gZml4ZWQgbWVhc3VyZW1lbnRzIHN0cmFpZ2h0IGZyb20gS2ltJ3MgZGVzaWduLlxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LXN0YWNrZWQge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogMDtcbiAgZ2FwOiAwO1xuICBwYWRkaW5nOiAxMnB4IDhweCAxNHB4O1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICBib3gtc2hhZG93OiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtc3RhY2tlZCAuc3RhdC1jYXJkLXN0YWNrZWQtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBtaW4td2lkdGg6IDA7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1zdGFja2VkIC5zdGF0LWNhcmQtaWNvbiB7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LXN0YWNrZWQgLnN0YXQtY2FyZC1pY29uIHFkbmFwcm8tbG90dGllIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbn1cbi5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1zdGFja2VkIC5zdGF0LWNhcmQtdmFsdWUge1xuICBmb250LXNpemU6IDM2cHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LXN0YWNrZWQgLnN0YXQtY2FyZC1sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgLy8gS2ltJ3MgZGVzaWduIHNob3dzIHRoZSBjYXB0aW9uIGluIGhlYWRpbmcgaW5rLCBub3QgbXV0ZWQgZ3JleS5cbiAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcbiAgLy8gVW5saWtlIHRoZSBvdGhlciB2YXJpYW50cycgbGFiZWwsIHRoaXMgb25lIG1heSB3cmFwOiB0aGUgY2FyZCBzaHJpbmtzXG4gIC8vIGdyYWNlZnVsbHkgaW4gYSAyLWNvbHVtbiBncmlkIGluc3RlYWQgb2YgZWxsaXBzaW5nIGEgc2hvcnQgY2FwdGlvbi5cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHRleHQtb3ZlcmZsb3c6IGNsaXA7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLy8gQ29udmVuaWVuY2UgMi1jb2x1bW4gZ3JpZCBmb3IgdGhlIHN0YWNrZWQgdGlsZXMgKFB1bHNlIHByb2ZpbGUgcGFnZSkuIE1pcnJvcnNcbi8vIC5xZG5hcHJvLXN0YXQtY2FyZC1yb3cgYmVsb3csIGp1c3QgYXMgYSBncmlkIGluc3RlYWQgb2YgYSBmbGV4IHJvdy5cbi5xZG5hcHJvLXN0YXQtY2FyZC1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICBnYXA6IDEycHg7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLy8gQ29udmVuaWVuY2Ugcm93IHdyYXBwZXIgKGNvbnN1bWVycyBtYXkgdXNlIHRoZWlyIG93biBsYXlvdXQgaW5zdGVhZCkuXG4ucWRuYXByby1zdGF0LWNhcmQtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMHB4O1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi8vIC0tLSBkYXJrIHRoZW1lIC0tLVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXN0YXQtY2FyZCxcbltkYXRhLXRoZW1lLWRhcmtdIC5xZG5hcHJvLXN0YXQtY2FyZCB7XG4gIGJhY2tncm91bmQ6ICMyYTJkMzY7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy13aGl0ZS0wOCk7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc3RhdC1jYXJkIC5zdGF0LWNhcmQtdmFsdWUsXG5bZGF0YS10aGVtZS1kYXJrXSAucWRuYXByby1zdGF0LWNhcmQgLnN0YXQtY2FyZC12YWx1ZSB7XG4gIGNvbG9yOiAjZjBmMWZhO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXN0YXQtY2FyZCAuc3RhdC1jYXJkLWxhYmVsLFxuW2RhdGEtdGhlbWUtZGFya10gLnFkbmFwcm8tc3RhdC1jYXJkIC5zdGF0LWNhcmQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ1KTtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtYWNjZW50LFxuW2RhdGEtdGhlbWUtZGFya10gLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LWFjY2VudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEwKTtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtYWNjZW50IC5zdGF0LWNhcmQtaWNvbixcbltkYXRhLXRoZW1lLWRhcmtdIC5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1hY2NlbnQgLnN0YXQtY2FyZC1pY29uIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEwKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLy8gVGhlIHNvbGlkIHZhcmlhbnQgb3B0cyBPVVQgb2YgdGhlIGRhcmsgZmxhdHRlbmluZyBhYm92ZS4gSXRzIHdob2xlIHBvaW50IGlzXG4vLyB0aGF0IHRoZSB0b25lIGNhcnJpZXMgdGhlIHNpZ25hbCwgYW5kIHRoZSBzaXggZmlsbHMgYXJlIExheWVyLUEgcHJpbWl0aXZlc1xuLy8gd2l0aCBubyBkYXJrIG92ZXJyaWRlLCBzbyB0aGUgdGlsZSBhbmQgaXRzIGNvbnRyYXN0IGFyZSBpZGVudGljYWwgaW4gYm90aFxuLy8gdGhlbWVzLiBXaXRob3V0IHRoaXMgYmxvY2sgdGhlIGdlbmVyaWMgZGFyayBydWxlIHdpbnMgb24gT1JERVIgKGl0IHNpdHNcbi8vIGxhdGVyIGF0IGVxdWFsIHNwZWNpZmljaXR5KSBhbmQgYSBzb2xpZCB0aWxlIHNpbGVudGx5IGdvZXMgZmxhdCBncmV5LCB3aGljaFxuLy8gYWxzbyBtZWFucyB0aGUgbWVhc3VyZWQgbGlnaHQtbW9kZSBjb250cmFzdCB3b3VsZCBiZSBudW1iZXJzIGFib3V0IGEgc3VyZmFjZVxuLy8gZGFyayBtb2RlIG5vIGxvbmdlciBwYWludHMuIFRoZSB3aGl0ZSB0eXBlIGhhcyB0byBiZSByZXN0b3JlZCBoZXJlIHRvbzogdGhlXG4vLyBkYXJrIGxhYmVsIGNvbG91ciBpcyByZ2JhKDI1NSwyNTUsMjU1LC40NSksIG5vd2hlcmUgbmVhciA0LjU6MSBvbiBhIGZpbGwuXG4vLyBbQ2xhdWRlIDE0LjA5LjIwMjZdXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LXNvbGlkLFxuW2RhdGEtdGhlbWUtZGFya10gLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LXNvbGlkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2MtZmlsbCk7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc3RhdC1jYXJkLnN0YXQtY2FyZC12YXJpYW50LXNvbGlkIC5zdGF0LWNhcmQtdmFsdWUsXG5bZGF0YS10aGVtZS1kYXJrXSAucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtc29saWQgLnN0YXQtY2FyZC12YWx1ZSxcbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtc29saWQgLnN0YXQtY2FyZC1sYWJlbCxcbltkYXRhLXRoZW1lLWRhcmtdIC5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1zb2xpZCAuc3RhdC1jYXJkLWxhYmVsLFxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1zb2xpZCAuc3RhdC1jYXJkLXN1YixcbltkYXRhLXRoZW1lLWRhcmtdIC5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1zb2xpZCAuc3RhdC1jYXJkLXN1YiB7XG4gIGNvbG9yOiAjZmZmO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXN0YXQtY2FyZC5zdGF0LWNhcmQtdmFyaWFudC1zb2xpZCAuc3RhdC1jYXJkLWljb24sXG5bZGF0YS10aGVtZS1kYXJrXSAucWRuYXByby1zdGF0LWNhcmQuc3RhdC1jYXJkLXZhcmlhbnQtc29saWQgLnN0YXQtY2FyZC1pY29uIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZS0yMik7XG59XG4iLCIvLyBxZG5hcHJvLXN0YXR1cy1ib2FyZDogc3RhdHVza29sb21tZW4td2VlcmdhdmUgKEQ3LCBkb2NzL0FGV0lKS0lOR0VOLUJVSUxELVBMQU4ubWQpLlxuLy8gR2VkZWVsZCBkb29yIEFmd2lqa2luZ2VuIGVuIGRlIFdlcmt2b29ycmFhZC4gS29sb21tZW4gc2Nyb2xsZW4gQklOTkVOIGhldFxuLy8gY29tcG9uZW50IChzbWFsbGUsIHRyYW5zcGFyYW50ZSBzY3JvbGxiYXJzOiBkZSBodWlzcmVnZWwpOyBkZSBwYWdpbmEgc2Nyb2x0XG4vLyBub29pdCBob3Jpem9udGFhbCBkb29yZGF0IGhldCBib3JkIHppam4gZWlnZW4gb3ZlcmZsb3cteCBkcmFhZ3QuXG5cbi5xZG5hcHJvLXN0YXR1cy1ib2FyZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDE0cHg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIgeyBoZWlnaHQ6IDhweDsgfVxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7IGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIC4yNSk7IGJvcmRlci1yYWRpdXM6IDRweDsgfVxufVxuXG4ucXNiLWNvbCB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgbWluLXdpZHRoOiAyMzBweDtcbiAgICBtYXgtd2lkdGg6IDM0MHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjU1KTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMTVzIGVhc2UsIGJveC1zaGFkb3cgLjE1cyBlYXNlO1xufVxuXG4ucXNiLWNvbC1vdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWVmMGZiO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCByZ2JhKDY0LCA3MywgMTU0LCAuNDUpO1xufVxuXG4ucXNiLWNvbC1oZWFkIHtcbiAgICAtLXFzYi1hY2NlbnQ6ICNiOWJkZDk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDJweCA0cHggOXB4O1xuICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB2YXIoLS1xc2ItYWNjZW50KTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ucXNiLWNvbC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLjA1ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzNhMzg2MDtcbn1cblxuLnFzYi1jb2wtY291bnQge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTEuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICM2YTY4OTA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgcGFkZGluZzogMXB4IDhweDtcbn1cblxuLnFzYi1jb2wtY2FyZHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXgtaGVpZ2h0OiA2MnZoO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiA2cHg7IH1cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgeyBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAuMjUpOyBib3JkZXItcmFkaXVzOiAzcHg7IH1cbn1cblxuLnFzYi1jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMTFweCAxM3B4O1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDE4cHggLTE0cHggcmdiYSgzOCwgMzQsIDgwLCAuNSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuXG4gICAgJltkcmFnZ2FibGU9XCJ0cnVlXCJdIHsgY3Vyc29yOiBncmFiOyB9XG4gICAgJjpob3ZlciB7IGJveC1zaGFkb3c6IDAgMTBweCAyMnB4IC0xNHB4IHJnYmEoMzgsIDM0LCA4MCwgLjU1KTsgfVxufVxuXG4ucXNiLWRyYWdnaW5nIHsgb3BhY2l0eTogLjQ1OyB9XG4iLCIvLyBxZG5hcHJvLXN0aWNrZXItc2hlZXQg4oCUIFB1bHNlIHN0aWNrZXIgcGlja2VyIGluIGEgV0hJVEUgKHN0YW5kYXJkKSBib3R0b20gc2hlZXQuXG4vLyBGTEFUIENTUzsgdGhlIHNoZWV0IHN1cmZhY2UgaXRzZWxmIGxpdmVzIG9uIHFkbmFwcm8tYm90dG9tLXNoZWV0IChubyB2YXJpYW50KS5cbi8vIEVkaXQgSEVSRSwgdGhlbiBgZ3VscCBzYXNzLXYxYC5cbi8vXG4vLyBJTVBPUlRBTlQ6IHRoZSBpbm5lciBib3R0b20tc2hlZXQgUE9SVEFMUyBpdHNlbGYgdG8gPGJvZHk+IG9uIG9wZW4sIHNvIGl0cyBjb250ZW50XG4vLyBubyBsb25nZXIgc2l0cyB1bmRlciB0aGUgPHFkbmFwcm8tc3RpY2tlci1zaGVldD4gaG9zdC4gQWxsIHN0eWxpbmcgaXMgdGhlcmVmb3JlXG4vLyBzY29wZWQgdG8gW2RhdGEtc3RpY2tlci1zaGVldF0gKGEgREFUQS1BVFRSSUJVVEUgaG9vayBvbiB0aGF0IGlubmVyIGJvdHRvbS1zaGVldCxcbi8vIHdoaWNoIHRyYXZlbHMgd2l0aCB0aGUgcG9ydGFsKSBhbmQgLnNzLXJvb3QgKHRoZSBjb250ZW50IHJvb3QgaW5zaWRlIGl0KSDigJQgTkVWRVJcbi8vIHVuZGVyIC5xZG5hcHJvLXN0aWNrZXItc2hlZXQuIEEgZGF0YS1hdHRyaWJ1dGUgaXMgdXNlZCBpbnN0ZWFkIG9mIGEgY2xhc3MgYmVjYXVzZVxuLy8gcWRuYXByby1ib3R0b20tc2hlZXQgcmVidWlsZHMgaXRzIG93biBjbGFzc05hbWUgb24gZXZlcnkgcmVuZGVyKCkg4oCUIGEgY2xhc3MgYWRkZWRcbi8vIGhlcmUgd291bGQgYmUgc2lsZW50bHkgd2lwZWQsIHNhbWUgbGVzc29uIGFzIHFkbmFwcm8tZW1vamktc2hlZXQncyAuZXMtc2hlZXQuXG5cbi5xZG5hcHJvLXN0aWNrZXItc2hlZXQge1xuICBkaXNwbGF5OiBjb250ZW50czsgLy8gdGhlIGhvc3QgaXMganVzdCBhIHdyYXBwZXI7IHRoZSByZWFsIFVJIGxpdmVzIG9uIHRoZSBwb3J0YWxlZCBzaGVldFxufVxuXG4vLyAtLS0tIFBhbmVsOiBvbmUgRklYRUQgaGVpZ2h0IGZvciB0aGUgd2hvbGUgbGlmZXRpbWUgLS0tLVxuLy8gODAlLCByYWlzZWQgZnJvbSB0aGUgNjIlIGluIHRoZSBkZXNpZ24gKEtpbSAxNi4wOC4yMDI2OiBcImRlIGJvdHRvbSBzaGVldCBtYWdcbi8vIGhvZ2VyIHpvZGF0IGplIHdhdCBtZWVyIGthbiB6aWVuXCIpLiBNZWFzdXJlZCBvbiBhIDM5MHg4NDQgcGhvbmU6IDYyJSBzaG93ZWRcbi8vIDMuOSByb3dzLCA4MCUgc2hvd3MgNS42IOKAlCBoYWxmIGEgc2NyZWVuIG1vcmUgc3RpY2tlcnMgZm9yIGZyZWUsIHdpdGhvdXRcbi8vIG1ha2luZyBhIHNpbmdsZSBvbmUgc21hbGxlci4gQSBGSVhFRCBoZWlnaHQgYW5kIG5ldmVyIGEgbWVhc3VyZWQgb25lOiB0aGVcbi8vIGNvbnRlbnQgaW5zaWRlIGNoYW5nZXMgKGNoaXBzLCBzZWFyY2ggcmVzdWx0cywgZW1wdHkgc3RhdGUpIGFuZCBhIHNoZWV0IHdob3NlXG4vLyBvdXRsaW5lIG1vdmVzIGFsb25nIHdpdGggaXQgaXMgdGhlIHdoYWNrLWEtbW9sZSBmcm9tIHRoZSBldmVudC1zaGVldC5cbi5xZG5hcHJvLWJvdHRvbS1zaGVldFtkYXRhLXN0aWNrZXItc2hlZXRdIC5icy1wYW5lbCB7XG4gIGhlaWdodDogODAlO1xuICBtYXgtaGVpZ2h0OiA4MCU7XG59XG4ucWRuYXByby1ib3R0b20tc2hlZXRbZGF0YS1zdGlja2VyLXNoZWV0XSAuYnMtYm9keSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGdhcDogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLy8gLS0tLSBPcHBlcnZsYWsgMjogZGUgcG9wb3ZlciAodGFibGV0L2Rlc2t0b3ApIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyDimqDvuI8gRGUgSE9TVCBtb2V0IGRlIGJyZWVkdGUgemV0dGVuLiBxZG5hcHJvLXBvcG92ZXIgaXMgc3RhbmRhYXJkIDI4MHB4LCB3YW50IGRhdFxuLy8gaXMgZWVuIE1FTlUtbWFhdDsgZWVuIGdyaWQgdmFuIHZpamYgc3RpY2tlcnMgcGFzdCBkYWFyIG5pZXQgaW4gZW4gc3RlZWt0IGVyXG4vLyB6aWNodGJhYXIgdWl0LiAzODBweCBnZWVmdCB2aWpmIGtvbG9tbWVuIHZhbiB+NjRweCBwbHVzIGRlIHBhZGRpbmcuXG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1zdGlja2VyLXNoZWV0XSB7XG4gIHdpZHRoOiBtaW4oOTJ2dywgMzgwcHgpO1xuICBwYWRkaW5nOiA4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4vLyBFZW4gVkFTVEUgaG9vZ3RlLCBuZXQgYWxzIGRlIDgwJSB2YW4gZGUgc2hlZXQ6IGRlIGluaG91ZCB3aXNzZWx0IChjaGlwcyxcbi8vIHpvZWtyZXN1bHRhYXQsIGxlZ2Ugc3RhYXQpIGVuIGVlbiBrYWFydCBkaWUgbWV0IHppam4gaW5ob3VkIG1lZWdyb2VpdCBzcHJpbmd0XG4vLyBiaWogZWxrZSB0b2V0c2FhbnNsYWcuIEJpbm5lbiBkaWUgaG9vZ3RlIHNjcm9sdCAuc3Mtc2Nyb2xsLlxucWRuYXByby1wb3BvdmVyW2RhdGEtc3RpY2tlci1zaGVldF0gLnNzLXJvb3Qge1xuICAvLyDimqDvuI8gYGZsZXg6IG5vbmVgIGhvb3J0IEhJRVIgYmlqOiAuc3Mtcm9vdCBkcmFhZ3QgYGZsZXg6IDFgIHZvb3IgZGUgYm90dG9tXG4gIC8vIHNoZWV0LCBlbiBpbiBlZW4gZmxleC1rb2xvbSByZWtlbnQgZGUgZmxleC12ZXJkZWxpbmcgZGUgaG9vZ3RlIHVpdCBlblxuICAvLyBuZWdlZXJ0IGBoZWlnaHRgIHZvbHN0cmVrdC4gWm9uZGVyIGRlemUgcmVnZWwgZ3JvZWlkZSBkZSBrYWFydCBkb29yIHRvdCBkZVxuICAvLyB2b2xsZSBpbmhvdWQgKDMzNjRweCBnZW1ldGVuKSBpbiBwbGFhdHMgdmFuIHRlIHNjcm9sbGVuLlxuICBmbGV4OiBub25lO1xuICBoZWlnaHQ6IDQ2MHB4O1xufVxuLy8gRGUgem9la2JhbGsgc3RhYXQgaW4gZWVuIHBvcG92ZXIgYWwgYmlubmVuIGRlIHBhZGRpbmcgdmFuIGRlIGthYXJ0IHplbGYuXG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1zdGlja2VyLXNoZWV0XSAuc3Mtc2VhcmNoIHtcbiAgcGFkZGluZzogMCAwIDhweDtcbn1cbnFkbmFwcm8tcG9wb3ZlcltkYXRhLXN0aWNrZXItc2hlZXRdIC5zcy1jYXRzIHtcbiAgcGFkZGluZzogMCAwIDEwcHg7XG59XG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1zdGlja2VyLXNoZWV0XSAuc3MtY291bnQge1xuICBwYWRkaW5nOiAwIDAgNnB4O1xufVxucWRuYXByby1wb3BvdmVyW2RhdGEtc3RpY2tlci1zaGVldF0gLnNzLWdyaWQge1xuICBwYWRkaW5nOiAwIDAgOHB4O1xufVxuXG4uc3Mtcm9vdCB7XG4gIGZsZXg6IDE7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1mb250LWZhbWlseSwgXCJJbnRlclwiLCBzYW5zLXNlcmlmKTtcbn1cblxuLy8gLS0tLSBTZWFyY2ggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uc3Mtc2VhcmNoIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHBhZGRpbmc6IDRweCAxMnB4IDhweDtcbn1cblxuLy8gLS0tLSBDYXRlZ29yeSBjaGlwcyAoaG9yaXpvbnRhbCBzY3JvbGwpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnNzLWNhdHMge1xuICBmbGV4LXNocmluazogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDAgMTJweCAxMHB4O1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbn1cbi5zcy1jYXRzOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gVGhlIGNoaXBzIGFyZSBwbGFpbiBxZG5hcHJvLXRhZ3M6IHZhcmlhbnQ9XCJvdXRsaW5lXCIgd2hlbiB1bmNob3Nlbixcbi8vIGNvbG9yPVwiYWN0aW9uXCIgd2hlbiBjaG9zZW4uIEJvdGggYmVjYW1lIHJlYWwgY29tcG9uZW50IHN0YXRlcyBvbiAxNi4wOC4yMDI2XG4vLyAoS2ltOiBcImRlemUgdGFncywgZGF0IHppam4gZ2VlbiBjb21wb25lbnRzIGRlbmsgaWtcIiDigJQgemUgd2FyZW4gaGV0IHdlbCwgbWFhclxuLy8gaHVuIHdpdHRlLW1ldC1yYW5kIHN0YW5kIGJlc3RvbmQgbm9nIG5pZXQgaW4gaGV0IGNvbXBvbmVudCwgZW4gZGllIGhvb3J0IGRhYXJcbi8vIHRodWlzIGVuIG5pZXQgaGllcikuIEVyIHN0YWF0IGR1cyBnZWVuIGVua2VsZSBrbGV1cnJlZ2VsIG1lZXIgaW4gZGl0IGJlc3RhbmQuXG5cbi8vIEhFVCBTQ1JPTExFTkRFIERFRUwgdmFuIGRlIHNoZWV0OiB0ZWxsZXIgKyBncmlkICsgbGVnZSBzdGFhdCArIG9mZmxpbmUtbWVsZGluZy5cbi8vIERpdCBzdG9uZCBuZXJnZW5zIGluIGRlIENTUywgZHVzIGRlemUgZG9vcyBncm9laWRlIGdld29vbiBkb29yIHRvdCB+NDkwMHB4IGluXG4vLyBlZW4gcGFuZWVsIHZhbiA2NzUgZW4gYC5icy1ib2R5IHsgb3ZlcmZsb3c6IGhpZGRlbiB9YCBrbmlwdGUgZGUgcmVzdCBlcmFmIOKAlFxuLy8gZXIgd2FzIGdlZW4gZW5rZWxlIG1hbmllciBvbSBiaWogc3RpY2tlciAyMCB0ZSBrb21lbiAobWVsZGluZyBLaW0gMTYuMDguMjAyNjpcbi8vIFwiaWsga2FuIG9vayBuaWV0IGluIGRlIHN0aWNrZXJzIHNjcm9sbGVuXCIpLiBgbWluLWhlaWdodDogMGAgaG9vcnQgZXIgdmVycGxpY2h0XG4vLyBiaWo6IHpvbmRlciBkaWUgcmVnZWwgd2VpZ2VydCBlZW4gZmxleC1raW5kIGtsZWluZXIgdGUgd29yZGVuIGRhbiB6aWpuIGluaG91ZFxuLy8gZW4gc2Nyb2xsdCBlciBhbHNub2cgbmlldHMuIFpvZWtiYWxrIGVuIGNoaXBzIGJsaWp2ZW4gc3RhYW4gKGZsZXgtc2hyaW5rOiAwKS5cbi5zcy1zY3JvbGwge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAvLyBHZWVuIHppY2h0YmFyZSBzY3JvbGxiYWxrLCB6ZWxmZGUgYWZzcHJhYWsgYWxzIGRlIGJvdHRvbSBzaGVldCB6ZWxmLlxuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbn1cbi5zcy1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDA7IGhlaWdodDogMDsgZGlzcGxheTogbm9uZTsgfVxuXG4uc3MtY291bnQge1xuICBwYWRkaW5nOiAwIDEycHggNnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuXG4vLyA1IGtvbG9tbWVuIGkucC52LiA0IChLaW0gMTYuMDguMjAyNjogXCJpayB3aWwgZXIgbWVlciB0ZWdlbGlqayB6aWVuXCIsIHplXG4vLyBhY2NlcHRlZXJ0IGRhdCBkZSB0ZWdlbHMga2xlaW5lciB3b3JkZW4pLiBSZWtlbnNvbSBvcCBlZW4gdGVsZWZvb24gdmFuXG4vLyAzOTBwdCBicmVlZCwgbWV0IGRlIDEycHggemlqcGFkZGluZyBlbiA2cHggZ2FwIGhpZXJvbmRlcjogKDM5MCAtIDIqMTIgLVxuLy8gNCo2KSAvIDUgPSAoMzkwIC0gMjQgLSAyNCkgLyA1ID0gMzQyIC8gNSA9IDY4LDRweCBwZXIgdGVnZWwgKHdhcyA4N3B4IGJpalxuLy8gNCBrb2xvbW1lbikuIENlbHBhZGRpbmcgKC5zcy1jZWxsLCA2cHgpIGlzIGRhYXJtZWUgNi82OCw0IOKJiCA4LDglIHZhbiBkZVxuLy8gdGVnZWwg4oCUIG9uZGVyIGRlIGdyZW5zIHZhbiBlZW4gdGllbmRlLCBkdXMgZGllIGJsaWpmdCBvcCA2cHggc3RhYW4uXG4uc3MtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIDFmcik7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiAwIDEycHggMTJweDtcbn1cbi8vIFRoZSBKUyBoaWRlcyB0aGUgZ3JpZCB3aXRoIHRoZSBgaGlkZGVuYCBBVFRSSUJVVEUgd2hlbiBhIHNlYXJjaCBoYXMgbm8gaGl0cy5cbi8vIFdpdGhvdXQgdGhpcyBydWxlIHRoYXQgZG9lcyBub3RoaW5nOiBgZGlzcGxheTogZ3JpZGAgYWJvdmUgd2lucyBmcm9tIHRoZVxuLy8gYnJvd3NlcidzIG93biBbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmUgfSwgc28gdGhlIHByZXZpb3VzIHJlc3VsdHMga2VwdCBzaXR0aW5nXG4vLyB1bmRlciB0aGUgXCJub3RoaW5nIGZvdW5kXCIgbGluZS4gTWVhc3VyZWQgb24gMTYuMDguMjAyNiDigJQgc2FtZSBmYW1pbHkgYXMgdGhlXG4vLyBkaXNhYmxlZCBib3R0b20tc2hlZXQgYnV0dG9uIHRoYXQgc3RheWVkIHZpc2libGUgZm9yIHRoZSBzYW1lIHJlYXNvbi5cbi5zcy1ncmlkW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4uc3MtY2VsbCB7XG4gIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnNzLWNlbGw6YWN0aXZlIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTsgfVxuLy8gSGV0IHJhc3RlciB0b29udCBzaW5kcyAxOC4wOC4yMDI2IGVlbiBTVElMU1RBQU5EIGJlZWxkIGVuIGdlZW4gbG9wZW5kZVxuLy8gYW5pbWF0aWUgbWVlcjogMzE2IExvdHRpZSdzIG9wIDYwIGZwcyBtYWFrdGVuIGRlIHNoZWV0IG9wIGVlbiBpUGFkIG9uYnJ1aWtiYWFyXG4vLyAoemllIGRlIG5vdGl0aWUgYmlqIF9yZW5kZXJHcmlkKCkgaW4gcWRuYS1zdGlja2VyLXNoZWV0LmpzKS4gRGUgc2VsZWN0b3Igdm9vclxuLy8gcWRuYXByby1sb3R0aWUgYmxpamZ0IHN0YWFuIHZvb3IgaGV0IGdldmFsIGVlbiBjb25zdW1lbnQgZXIgemVsZiBub2cgw6nDqW4gaW5cbi8vIGVlbiBjZWwgemV0OyBkZSA8aW1nPiBpcyBkZSBub3JtYWxlIHdlZy5cbi5zcy1jZWxsIC5zcy1pbWcsXG4uc3MtY2VsbCBxZG5hcHJvLWxvdHRpZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLy8gb2JqZWN0LWZpdCBob29ydCBlciBleHBsaWNpZXQgYmlqOiBkZSBwb3N0ZXJzIHppam4gdmllcmthbnQsIG1hYXIgem9uZGVyIGRlemVcbi8vIHJlZ2VsIHJla3QgZWVuIDxpbWc+IG1lZSBtZXQgZWVuIGNlbCBkaWUgZG9vciBhZnJvbmRpbmcgbmV0IG5pZXQgdmllcmthbnQgaXMuXG4uc3MtY2VsbCAuc3MtaW1nIHtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLy8gLS0tLSBFbXB0eSBzZWFyY2ggc3RhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5zcy1lbXB0eSB7XG4gIHBhZGRpbmc6IDQ0cHggMjRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuXG4vLyAtLS0tIE9mZmxpbmUgbm90aWNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTYW1lIHRyYXAgYXMgLnNzLWdyaWQgYWJvdmUsIGFuZCBtZWFzdXJlZCB3aXRoIHRoZSBzYW1lIHJlc3VsdDogdGhlIEpTIGhpZGVzXG4vLyB0aGlzIG5vdGljZSB3aXRoIHRoZSBgaGlkZGVuYCBhdHRyaWJ1dGUgd2hpbGUgb25saW5lLCBidXQgYGRpc3BsYXk6IGZsZXhgIHdpbnMsXG4vLyBzbyBpdCBrZXB0IG9jY3VweWluZyAxNTZweCB1bmRlciB0aGUgZ3JpZC4gT3V0IG9mIHNpZ2h0IGJlbG93IDIyMCBzdGlja2VycywgYnV0XG4vLyB0aGVyZSDigJQgYW5kIG9uIGEgc2hvcnQgc2VhcmNoIHJlc3VsdCBpdCB3b3VsZCBoYXZlIGJlZW4gaW4gcGxhaW4gdmlldy5cbi5zcy1vZmZsaW5lW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4uc3Mtb2ZmbGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgcGFkZGluZzogNTZweCAyNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuLnNzLW9mZmxpbmUgLnNzLWljb24ge1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xufVxuLnNzLW9mZmxpbmUtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbWF4LXdpZHRoOiAyNjBweDtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL3N1Z2dlc3Rpb24tY2hpcC9fc3VnZ2VzdGlvbi1jaGlwLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcCB7XG4gIC0tYy1mb2N1cy1yaW5nOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLWMtZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogNnB4IDEwcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMzAwKTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05NTApO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2Utb3V0LCBib3JkZXItY29sb3IgMTIwbXMgZWFzZS1vdXQsIGNvbG9yIDEyMG1zIGVhc2Utb3V0LCBib3gtc2hhZG93IDEyMG1zIGVhc2Utb3V0O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwIC5zdWdnZXN0aW9uLWNoaXAtaWNvbiB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwIC5zdWdnZXN0aW9uLWNoaXAtbGFiZWwge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgbWF4LXdpZHRoOiAyNDBweDtcbn1cbi5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucWRuYXByby1zdWdnZXN0aW9uLWNoaXA6Zm9jdXMtdmlzaWJsZSwgLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLmZvcmNlLWZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWMtZm9jdXMtcmluZyksIDAgMCAwIDZweCB2YXIoLS1jLWZvY3VzLWdsb3cpO1xufVxuLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC10aGVtZS1wdXJwbGU6aG92ZXI6bm90KC5zdWdnZXN0aW9uLWNoaXAtZGlzYWJsZWQpLCAucWRuYXByby1zdWdnZXN0aW9uLWNoaXAuc3VnZ2VzdGlvbi1jaGlwLXRoZW1lLXB1cnBsZS5mb3JjZS1ob3Zlcjpub3QoLnN1Z2dlc3Rpb24tY2hpcC1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiAjZTZlOWZmO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWhvdmVyKTtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG59XG4ucWRuYXByby1zdWdnZXN0aW9uLWNoaXAuc3VnZ2VzdGlvbi1jaGlwLXRoZW1lLXB1cnBsZTphY3RpdmU6bm90KC5zdWdnZXN0aW9uLWNoaXAtZGlzYWJsZWQpLCAucWRuYXByby1zdWdnZXN0aW9uLWNoaXAuc3VnZ2VzdGlvbi1jaGlwLXRoZW1lLXB1cnBsZS5mb3JjZS1wcmVzc2VkOm5vdCguc3VnZ2VzdGlvbi1jaGlwLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lkZWJhci1pY29uKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcC5zdWdnZXN0aW9uLWNoaXAtdGhlbWUtb3JhbmdlOmhvdmVyOm5vdCguc3VnZ2VzdGlvbi1jaGlwLWRpc2FibGVkKSwgLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC10aGVtZS1vcmFuZ2UuZm9yY2UtaG92ZXI6bm90KC5zdWdnZXN0aW9uLWNoaXAtZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy10YWctd2FybmluZy1iZyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy13YXJuLXllbGxvdy02MDApO1xuICBjb2xvcjogdmFyKC0tYy10YWctd2FybmluZy10ZXh0KTtcbn1cbi5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcC5zdWdnZXN0aW9uLWNoaXAtdGhlbWUtb3JhbmdlOmFjdGl2ZTpub3QoLnN1Z2dlc3Rpb24tY2hpcC1kaXNhYmxlZCksIC5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcC5zdWdnZXN0aW9uLWNoaXAtdGhlbWUtb3JhbmdlLmZvcmNlLXByZXNzZWQ6bm90KC5zdWdnZXN0aW9uLWNoaXAtZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwteWVsbG93LWJnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRhZy13YXJuaW5nLXRleHQpO1xufVxuLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC1kaXNhYmxlZCwgLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC1kaXNhYmxlZDpob3ZlciwgLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC1kaXNhYmxlZDphY3RpdmUge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1zdWdnZXN0aW9uLWNoaXAge1xuICBib3JkZXItY29sb3I6ICM1NjViNjY7XG4gIGNvbG9yOiAjZjBmMWYyO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC10aGVtZS1wdXJwbGU6aG92ZXI6bm90KC5zdWdnZXN0aW9uLWNoaXAtZGlzYWJsZWQpLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1zdWdnZXN0aW9uLWNoaXAuc3VnZ2VzdGlvbi1jaGlwLXRoZW1lLXB1cnBsZS5mb3JjZS1ob3Zlcjpub3QoLnN1Z2dlc3Rpb24tY2hpcC1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjMpO1xuICBib3JkZXItY29sb3I6ICM3Yzg0YzU7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC10aGVtZS1wdXJwbGU6YWN0aXZlOm5vdCguc3VnZ2VzdGlvbi1jaGlwLWRpc2FibGVkKSwgW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC10aGVtZS1wdXJwbGUuZm9yY2UtcHJlc3NlZDpub3QoLnN1Z2dlc3Rpb24tY2hpcC1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjQ1KTtcbiAgYm9yZGVyLWNvbG9yOiAjYTVhY2ZmO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXN1Z2dlc3Rpb24tY2hpcC5zdWdnZXN0aW9uLWNoaXAtdGhlbWUtb3JhbmdlOmhvdmVyOm5vdCguc3VnZ2VzdGlvbi1jaGlwLWRpc2FibGVkKSwgW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tc3VnZ2VzdGlvbi1jaGlwLnN1Z2dlc3Rpb24tY2hpcC10aGVtZS1vcmFuZ2UuZm9yY2UtaG92ZXI6bm90KC5zdWdnZXN0aW9uLWNoaXAtZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE0MywgNiwgMC4yNSk7XG4gIGJvcmRlci1jb2xvcjogI2M5N2UyMjtcbiAgY29sb3I6ICNmZmU0YmE7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1zdWdnZXN0aW9uLWNoaXAuc3VnZ2VzdGlvbi1jaGlwLXRoZW1lLW9yYW5nZTphY3RpdmU6bm90KC5zdWdnZXN0aW9uLWNoaXAtZGlzYWJsZWQpLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1zdWdnZXN0aW9uLWNoaXAuc3VnZ2VzdGlvbi1jaGlwLXRoZW1lLW9yYW5nZS5mb3JjZS1wcmVzc2VkOm5vdCguc3VnZ2VzdGlvbi1jaGlwLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQ1LCAxNDMsIDYsIDAuNCk7XG4gIGJvcmRlci1jb2xvcjogI2Y1Yjc3MDtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1zdWdnZXN0aW9uLWNoaXAuc3VnZ2VzdGlvbi1jaGlwLWRpc2FibGVkLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1zdWdnZXN0aW9uLWNoaXAuc3VnZ2VzdGlvbi1jaGlwLWRpc2FibGVkOmhvdmVyLCBbZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1zdWdnZXN0aW9uLWNoaXAuc3VnZ2VzdGlvbi1jaGlwLWRpc2FibGVkOmFjdGl2ZSB7XG4gIGNvbG9yOiAjNmI3MjgwO1xuICBib3JkZXItY29sb3I6ICMzYTNiNDI7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXRhYmxlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBMaXN0IHZpZXcgKG5hdGl2ZSA8dGFibGU+KSArIEdyaWQgdmlldyAoY2FyZCBncmlkKVxuLy8gIExhenktbG9hZCwgc29ydCwgc2ltcGxlICsgYWR2YW5jZWQgc2VhcmNoLCBidWxrIHNlbGVjdFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIOKUgOKUgCBXaWR0aCBvZiB0aGUgY2hlY2tib3ggY29sdW1uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy9cbi8vIFRoZSB3aG9sZSBjZWxsIGlzIHRoZSB0YXAgdGFyZ2V0IChzZWUgX21ha2VDaGVja2JveENlbGwgaW4gcWRuYS10YWJsZS5qcyksIHNvXG4vLyBpdHMgd2lkdGggSVMgdGhlIHRhcmdldCB3aWR0aC4gVHdvIG51bWJlcnMsIGJlY2F1c2UgdGhlIHJpZ2h0IGFuc3dlciBkaWZmZXJzXG4vLyBwZXIgaW5wdXQgZGV2aWNlIFtLaW0gMDkuMDguMjAyNl06XG4vL1xuLy8gICBtb3VzZSAgMzZweCDigJQgMTAgKyBhIDE2cHggYm94ICsgMTAuIFdlbGwgYWJvdmUgdGhlIDI0cHggV0NBRyAyLjUuOCBtaW5pbXVtLFxuLy8gICAgICAgICAgICAgICAgIGFuZCBpdCBnaXZlcyA4cHggYmFjayB0byB0aGUgY29sdW1ucywgd2hpY2ggaXMgd2hhdCB0aGUgdGFibGVcbi8vICAgICAgICAgICAgICAgICBpcyBhY3R1YWxseSBmb3IuXG4vLyAgIHRvdWNoICA0NHB4IOKAlCBBcHBsZSdzIG1pbmltdW0gZm9yIGEgZmluZ2VyLiBBIHRhYmxldCBrZWVwcyBleGFjdGx5IHdoYXQgaXRcbi8vICAgICAgICAgICAgICAgICBoYWQ7IG5vdGhpbmcgYWJvdXQgdGhlIGVhcmxpZXIgbWlzY2xpY2sgZml4IGlzIGdpdmVuIHVwIHRoZXJlLlxuLy9cbi8vIGBwb2ludGVyOiBjb2Fyc2VgIGFza3MgYWJvdXQgdGhlIFBSSU1BUlkgaW5wdXQgZGV2aWNlLCBzbyBhIGxhcHRvcCB3aXRoIGFcbi8vIHRvdWNoc2NyZWVuIGJ1dCBhIHRyYWNrcGFkIGluIHVzZSBzdGF5cyBvbiAzNi5cblxuJHRhYmxlLWNoZWNrYm94LXdpZHRoICAgICAgOiAzNnB4O1xuJHRhYmxlLWNoZWNrYm94LXBhZGRpbmcteCAgOiAxMHB4O1xuJHRhYmxlLWNoZWNrYm94LXdpZHRoLXRvdWNoOiA0NHB4O1xuJHRhYmxlLWNoZWNrYm94LXBhZGRpbmctdG91Y2g6IDEycHg7XG5cbkBtZWRpYSAocG9pbnRlcjogY29hcnNlKSB7XG4gICAgLnFkbmFwcm8tdGFibGUtbGlzdCB7XG4gICAgICAgIHRoZWFkIHRoLmNvbC1jaGVja2JveCxcbiAgICAgICAgdGJvZHkgdGQuY29sLWNoZWNrYm94IHtcbiAgICAgICAgICAgIHdpZHRoOiAkdGFibGUtY2hlY2tib3gtd2lkdGgtdG91Y2g7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICR0YWJsZS1jaGVja2JveC1wYWRkaW5nLXRvdWNoO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHRhYmxlLWNoZWNrYm94LXBhZGRpbmctdG91Y2g7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbnFkbmFwcm8tdGFibGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4taGVpZ2h0OiAwO1xufVxuXG4vLyDilIDilIAgV3JhcHBlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5xZG5hcHJvLXRhYmxlLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgLy8gSG9yaXpvbnRhbCBzY3JvbGw6IHdoZW4gYSBzaWRlIHBhbmVsIG5hcnJvd3MgdGhlIGNlbnRlciBhcmVhLCB0aGUgdGFibGVcbiAgICAvLyBrZWVwcyBpdHMgbmF0dXJhbCAobWluLWNvbnRlbnQpIHdpZHRoIGFuZCB3b3VsZCBvdGhlcndpc2UgYmUgY2xpcHBlZCDigJRcbiAgICAvLyBgYXV0b2AgbGV0cyBpdCBzY3JvbGwgaW5zdGVhZCBvZiBoaWRpbmcgY29sdW1ucy4gYGF1dG9gIHN0aWxsIGNsaXBzIHRvXG4gICAgLy8gYm9yZGVyLXJhZGl1cywgYW5kIHRoaXMgc3RheXMgdGhlIHNjcm9sbCBjb250YWluZXIgc28gdGhlIHN0aWNreSA8dGhlYWQ+XG4gICAgLy8gKHdoaWNoIHJlc29sdmVzIGFnYWluc3QgVEhJUyBlbGVtZW50KSBrZWVwcyB3b3JraW5nLlxuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuXG4vLyDilIDilIAgU3Bpbm5lciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIOKUgOKUgCBMb2FkaW5nIGluZGljYXRvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyBBIDJweCBiYXIgYWxvbmcgdGhlIHRvcCBlZGdlIG9mIHRoZSB0YWJsZSwgd2l0aCBhIHNlZ21lbnQgc2xpZGluZyB0aHJvdWdoIGl0LlxuLy8gS2ltIDA5LjA4LjIwMjY6IHRoaXMgd2FzIGEgd2hpdGUgdmVpbCBvdmVyIHRoZSBXSE9MRSB0YWJsZSB3aXRoIGEgc3Bpbm5lciBpblxuLy8gdGhlIG1pZGRsZSwgc28gYSBzbG93IHJlcXVlc3QgaGlkIHRoZSB2ZXJ5IHJvd3MgeW91IHdlcmUgcmVhZGluZyBhbmQgYSBmYXN0XG4vLyBvbmUgZmxhc2hlZC4gTm93IHRoZSByb3dzIHN0YXkgcmVhZGFibGUgYW5kIHRoZSBtb3ZlbWVudCBpcyBhdCB0aGUgZWRnZSwgb3V0XG4vLyBvZiB0aGUgd2F5IG9mIHRoZSB0ZXh0IOKAlCB0aGUgc2FtZSBjaG9pY2UgWW91VHViZSBhbmQgR2l0SHViIG1ha2UuXG4vL1xuLy8gSXQgb25seSBhcHBlYXJzIGF0IGFsbCBvbmNlIGEgZmV0Y2ggb3V0bGFzdHMgc3Bpbm5lckRlbGF5TXM7IHNlZVxuLy8gX3Nob3dTcGlubmVyRGVsYXllZCgpIGluIHFkbmEtdGFibGUuanMuIFRoZSBlbGVtZW50IGtlZXBzIGl0cyBvbGQgY2xhc3MgbmFtZVxuLy8gc28gbm8gY29uc3VtZXIgdGhhdCBoaWRlcyBvciBxdWVyaWVzIGl0IGJyZWFrcy5cblxuLnFkbmFwcm8tdGFibGUtc3Bpbm5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogMnB4O1xuICAgIHotaW5kZXg6IDEwO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICY6bm90KFtoaWRkZW5dKSB7IGRpc3BsYXk6IGJsb2NrOyB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAzNSU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgYW5pbWF0aW9uOiBxZG5hcHJvLXRhYmxlLXByb2dyZXNzIDEuMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHFkbmFwcm8tdGFibGUtcHJvZ3Jlc3Mge1xuICAgIC8vIC0xMDAlIHRvIDQwMCUgb2YgaXRzIE9XTiB3aWR0aCwgc28gdGhlIGJhciB0cmF2ZWxzIHRoZSBmdWxsIHRyYWNrIGFuZFxuICAgIC8vIGxlYXZlcyBpdCBjbGVhbmx5IGF0IGJvdGggZW5kcyBpbnN0ZWFkIG9mIHN0aWNraW5nIHRvIGEgY29ybmVyLlxuICAgIGZyb20geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG4gICAgdG8gICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MDAlKTsgfVxufVxuXG4vLyBBIG1vdmluZyBiYXIgaXMgZXhhY3RseSB0aGUga2luZCBvZiB0aGluZyBcInJlZHVjZSBtb3Rpb25cIiBpcyBhYm91dC4gVGhlIGJhclxuLy8gc3RheXMgdmlzaWJsZSBzbyBhIHNsb3cgcmVxdWVzdCBzdGlsbCBzYXlzIHNvbWV0aGluZywgaXQganVzdCBob2xkcyBzdGlsbC5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnFkbmFwcm8tdGFibGUtc3Bpbm5lcjo6YWZ0ZXIge1xuICAgICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBvcGFjaXR5OiAwLjQ1O1xuICAgIH1cbn1cblxuLy8g4pSA4pSAIFNlbnRpbmVsIChsYXp5LWxvYWQgdHJpZ2dlciwgemVybyBoZWlnaHQpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucWRuYXByby10YWJsZS1zZW50aW5lbCB7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8vIOKUgOKUgCBMaXN0IHZpZXcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnFkbmFwcm8tdGFibGUtbGlzdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAvLyBOT1RFOiBubyBgb3ZlcmZsb3c6IGhpZGRlbmAgaGVyZS4gQW4gaW50ZXJtZWRpYXRlIGFuY2VzdG9yIHdpdGggYVxuICAgIC8vIG5vbi12aXNpYmxlIG92ZXJmbG93IGJlY29tZXMgdGhlIHN0aWNreSBjb250YWluaW5nIGJsb2NrLCB3aGljaCB3b3VsZFxuICAgIC8vIHBpbiA8dGhlYWQ+IHRvIHRoZSB0YWJsZSBib3ggKGl0IHNjcm9sbHMgYXdheSkgaW5zdGVhZCBvZiB0aGUgd3JhcHBlci5cbiAgICAvLyBUaGUgcm91bmRlZC1jb3JuZXIgY2xpcHBpbmcgKyBjYXJkIHNoYWRvdyBub3cgbGl2ZSBvblxuICAgIC8vIC5xZG5hcHJvLXRhYmxlLXdyYXBwZXIgKHRoZSBzY3JvbGwgY29udGFpbmVyKSBzbyB0aGUgc3RpY2t5IGhlYWRlciB3b3Jrcy5cblxuICAgIHRoZWFkIHtcbiAgICAgICAgdGgge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQtaG92ZXIpO1xuICAgICAgICAgICAgLy8gS2ltIDA5LjA4LjIwMjY6IHdhcyAxMXB4IHVwcGVyY2FzZSBpbiAtLWMtZ3JleS01MDAuIFRoZSBjYXBpdGFscyBhbmRcbiAgICAgICAgICAgIC8vIHRoZSBsZXR0ZXItc3BhY2luZyB0aGF0IG1hZGUgdGhlbSByZWFkYWJsZSBhcmUgYm90aCBnb25lIOKAlCBhIGxhYmVsXG4gICAgICAgICAgICAvLyBub3cgcmVhZHMgYXMgdGhlIHdvcmQgdGhlIGNvbHVtbiBpcyBjYWxsZWQuIDEycHggYmVjYXVzZSAxMXB4XG4gICAgICAgICAgICAvLyBsb3dlcmNhc2UgaW4gYSBuZWFyLWJsYWNrIGlzIG5vdGljZWFibHkgc21hbGxlciB0aGFuIHRoZSBzYW1lIHNpemVcbiAgICAgICAgICAgIC8vIGluIGNhcGl0YWxzOyB0aGUgY2FwaXRhbHMgd2VyZSBkb2luZyB0aGUgd2VpZ2h0LWxpZnRpbmcuXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTEwMCk7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAgICAgJi5jb2wtY2hlY2tib3gge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkdGFibGUtY2hlY2tib3gtd2lkdGg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTBweCAkdGFibGUtY2hlY2tib3gtcGFkZGluZy14O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyDilIDilIAgU29ydGluZyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBLaW0gMDkuMDguMjAyNiwgYWZ0ZXIgdGhlIEdvb2dsZSBEcml2ZSBwYXR0ZXJuOiB0aGUgTEFCRUwgbmV2ZXJcbiAgICAgICAgICAgIC8vIGNoYW5nZXMgY29sb3VyLiBUaGUgb25seSB0aGluZyB0aGF0IHNheXMgXCJzb3J0ZWQgb24gdGhpcyBjb2x1bW4sXG4gICAgICAgICAgICAvLyB0aGlzIHdheVwiIGlzIG9uZSBhcnJvdy4gQmVmb3JlIHRoaXMgdGhlIHdob2xlIHdvcmQgcGx1cyBpdHMgaWNvblxuICAgICAgICAgICAgLy8gdHVybmVkIHB1cnBsZSwgd2hpY2ggcmVhZCBhcyBhIHNlbGVjdGVkIGNvbHVtbiByYXRoZXIgdGhhbiBhcyBhXG4gICAgICAgICAgICAvLyBkaXJlY3Rpb24sIGFuZCBsZWZ0IHlvdSBsb29raW5nIGZvciB0aGUgYXJyb3cgYW55d2F5LlxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIEF0IHJlc3QgYW4gdW5zb3J0ZWQgY29sdW1uIHNob3dzIG5vdGhpbmcgYXQgYWxsIOKAlCBhIHJvdyBvZiBncmV5XG4gICAgICAgICAgICAvLyBkb3VibGUtY2hldnJvbnMgb24gZXZlcnkgc29ydGFibGUgaGVhZGVyIGlzIG5vaXNlIHlvdSBoYXZlIHRvXG4gICAgICAgICAgICAvLyBsZWFybiB0byBpZ25vcmUuIFRoZSBhcnJvdyBhcHBlYXJzIG9uIGhvdmVyIChhbmQgb24ga2V5Ym9hcmRcbiAgICAgICAgICAgIC8vIGZvY3VzKSB0byBzYXkgXCJ5b3UgY2FuIHNvcnQgaGVyZVwiLCBhbmQgc3RheXMgcHV0IG9uY2UgeW91IGRvLlxuXG4gICAgICAgICAgICAmLmlzLXNvcnRhYmxlIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcblxuICAgICAgICAgICAgICAgICAgICAuY29sLXNvcnQtaWNvbiB7IG9wYWNpdHk6IDAuNDU7IH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmZvY3VzLXZpc2libGUgLmNvbC1zb3J0LWljb24geyBvcGFjaXR5OiAwLjQ1OyB9XG5cbiAgICAgICAgICAgICAgICAmLmlzLXNvcnRlZCAuY29sLXNvcnQtaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwLCAjZTZlOWZmKTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyDilIDilIAgRHJhZy10by1yZW9yZGVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgICAgICAgICAgLy8gR3JhYiBhZmZvcmRhbmNlIG9uIG9yZGVyYWJsZSBoZWFkZXJzLCBhIGRpbSBvbiB0aGUgb25lIGJlaW5nIGRyYWdnZWQsXG4gICAgICAgICAgICAvLyBhbmQgYSB2ZXJ0aWNhbCBpbnNlcnRpb24gbGluZSBvbiB0aGUgZWRnZSB0aGUgY29sdW1uIHdpbGwgZHJvcCBhZ2FpbnN0LlxuICAgICAgICAgICAgJi5pcy1vcmRlcmFibGUge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogZ3JhYjtcblxuICAgICAgICAgICAgICAgICY6YWN0aXZlIHsgY3Vyc29yOiBncmFiYmluZzsgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmlzLWRyYWdnaW5nIHsgb3BhY2l0eTogMC40OyB9XG5cbiAgICAgICAgICAgICYuZHJvcC1iZWZvcmUgeyBib3gtc2hhZG93OiBpbnNldCAycHggMCAwIDAgdmFyKC0tYy1hY3Rpb24tNTAwKTsgfVxuICAgICAgICAgICAgJi5kcm9wLWFmdGVyICB7IGJveC1zaGFkb3c6IGluc2V0IC0ycHggMCAwIDAgdmFyKC0tYy1hY3Rpb24tNTAwKTsgfVxuXG4gICAgICAgICAgICAvLyBGbGV4IHdyYXBwZXIga2VlcHMgbGFiZWwgKyBzb3J0IGljb24gb24gb25lIGJhc2VsaW5lXG4gICAgICAgICAgICAuY29sLWhlYWRlci1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGdhcDogNHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUaGUgcm91bmQgYmFkZ2UgdGhlIGFycm93IHNpdHMgaW4uIFRoZSBzdmcga2VlcHMgaXRzIG93biAxNHB4LCBzb1xuICAgICAgICAgICAgLy8gdGhlIDIwcHggaG9zdCBpcyBwdXJlbHkgdGhlIGRpc2MgYXJvdW5kIGl0LlxuICAgICAgICAgICAgLmNvbC1zb3J0LWljb24ge1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMsIGJhY2tncm91bmQgMC4xNXMsIGNvbG9yIDAuMTVzO1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogY3VycmVudENvbG9yICFpbXBvcnRhbnQ7IC8vIG92ZXJyaWRlIGdsb2JhbCBxZG5hcHJvLWljb24gc3ZnIGZpbGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyDilIDilIAgU3RpY2t5IChwaW5uZWQtbGVmdCkgY29sdW1ucyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgICAvLyBBIGNvbHVtbiBtYXJrZWQgc3RpY2t5IHN0YXlzIHZpc2libGUgZHVyaW5nIGhvcml6b250YWwgc2Nyb2xsOiBpdCBwaW5zIHRvXG4gICAgLy8gdGhlIGxlZnQgZWRnZSBvZiB0aGUgc2Nyb2xsIGNvbnRhaW5lciAoLnFkbmFwcm8tdGFibGUtd3JhcHBlcikuIFRoZSBjZWxsXG4gICAgLy8gbmVlZHMgYW4gT1BBUVVFIGJhY2tncm91bmQgc28gc2Nyb2xsaW5nIGNvbHVtbnMgcGFzcyAqYmVoaW5kKiBpdCwgcGx1cyBhXG4gICAgLy8gei1pbmRleCBhYm92ZSBub3JtYWwgY2VsbHMuIEEgcmlnaHQgaW5zZXQgZGl2aWRlciBtYXJrcyB0aGUgZnJvemVuIGVkZ2UuXG4gICAgdGguY29sLXN0aWNreSxcbiAgICB0ZC5jb2wtc3RpY2t5IHtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgLTFweCAwIDAgdmFyKC0tYy1ncmV5LTEwMCk7XG4gICAgfVxuXG4gICAgdGQuY29sLXN0aWNreSB7IGJhY2tncm91bmQ6ICNmZmZmZmY7IH1cblxuICAgIC8vIEhlYWRlciBvZiBhIHN0aWNreSBjb2x1bW4gaXMgc3RpY2t5IG9uIEJPVEggYXhlcyAodG9wIGZyb20gdGhlIHRoZWFkIHJ1bGUgK1xuICAgIC8vIGxlZnQgaGVyZSk7IGxpZnQgaXQgYWJvdmUgdGhlIG90aGVyIHN0aWNreS10b3AgaGVhZGVycyBhbmQgdGhlIGJvZHkgY2VsbC5cbiAgICB0aGVhZCB0aC5jb2wtc3RpY2t5IHsgei1pbmRleDogMzsgfVxuXG4gICAgLy8gS2VlcCB0aGUgZnJvemVuIGNlbGwncyBiYWNrZ3JvdW5kIGluIHN0ZXAgd2l0aCByb3cgaG92ZXIgLyBzZWxlY3Rpb24gc28gdGhlXG4gICAgLy8gY29sdW1ucyBzY3JvbGxpbmcgYmVoaW5kIGl0IG5ldmVyIHNob3cgdGhyb3VnaC5cbiAgICB0Ym9keSB0cjpob3ZlciB0ZC5jb2wtc3RpY2t5ICAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTsgfVxuICAgIHRib2R5IHRyLmlzLXNlbGVjdGVkIHRkLmNvbC1zdGlja3kgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnKTsgfVxuICAgIC8vIEEgc3RpY2t5IGNvbHVtbiBwYWludHMgaXRzIG93biBiYWNrZ3JvdW5kLCBzbyB0aGUgYWN0aXZlIHJvdyBuZWVkcyBpdCB0b28gb3JcbiAgICAvLyB0aGUgc3RpY2t5IGNlbGwgc3RheXMgd2hpdGUgd2hpbGUgdGhlIHJlc3Qgb2YgdGhlIHJvdyBpcyBoaWdobGlnaHRlZC5cbiAgICB0Ym9keSB0ci5pcy1hY3RpdmUgICB0ZC5jb2wtc3RpY2t5IHsgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAsICNlZWYwZmYpOyB9XG5cbiAgICAvLyBzdHlsZS12MSBoYXMgYW4gdW5zY29wZWQgZGFyay1tb2RlIHFkbmFwcm8tY2hlY2tib3ggdmFyIGJsb2NrIHRoYXQgYmxlZWRzXG4gICAgLy8gaW50byBhbGwgcGFnZXMg4oCUIHJlc2V0IHRvIGxpZ2h0LW1vZGUgdmFsdWVzIGluc2lkZSB0aGUgdGFibGUgc28gY2hlY2tib3hlc1xuICAgIC8vIGxvb2sgY29ycmVjdCByZWdhcmRsZXNzIG9mIHRoYXQgZ2xvYmFsIG92ZXJyaWRlLlxuICAgIHFkbmFwcm8tY2hlY2tib3gge1xuICAgICAgICAtLWNiLWJnOiAgICAgICAgICAjZmZmZmZmO1xuICAgICAgICAtLWNiLWJnLWhvdmVyOiAgICB2YXIoLS1jLWdyZXktNTApO1xuICAgICAgICAtLWNiLWJvcmRlcjogICAgICB2YXIoLS1jLWdyZXktMzAwKTtcbiAgICAgICAgLS1jYi1maWxsZWQtYmc6ICAgdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgICAgICAgLS1jYi1maWxsZWQtYm9yZGVyOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAgICAgICAtLWNiLW1hcms6ICAgICAgICAjZmZmZmZmO1xuICAgIH1cblxuICAgIHRib2R5IHtcbiAgICAgICAgdHIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYmctY2FyZC1ob3Zlcik7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXM7XG5cbiAgICAgICAgICAgIC8vIFRoZSBsYXN0IHJvdyBrZWVwcyBpdHMgbGluZS4gRHJvcHBpbmcgaXQgaXMgdGhlIHVzdWFsIHJlZmxleCwgYnV0IHRoZVxuICAgICAgICAgICAgLy8gdGFibGUgZG9lcyBub3QgZW5kIHdoZXJlIHRoZSByb3dzIGVuZDogdGhlIGNhcmQgcnVucyBvbiBiZWxvdyBpdCwgc28gYVxuICAgICAgICAgICAgLy8gYm9yZGVybGVzcyBsYXN0IHJvdyByZWFkcyBhcyBhbiB1bmZpbmlzaGVkIGxpc3QgaW5zdGVhZCBvZiBhIGNsb3NlZCBvbmUuXG4gICAgICAgICAgICAvLyBbS2ltIDA5LjA4LjIwMjYsIGxvb2tpbmcgYXQgYSB0YWJsZSB3aXRoIDExIHJvd3MgaW4gYSB0YWxsIHBhbmVsXVxuXG4gICAgICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTsgfVxuXG4gICAgICAgICAgICAmLmlzLXNlbGVjdGVkIHsgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtYmx1ZS1iZyk7IH1cblxuICAgICAgICAgICAgLy8gVGhlIHJvdyB5b3UgYXJlIExPT0tJTkcgQVQsIGFzIG9wcG9zZWQgdG8gdGhlIHJvd3MgeW91IGhhdmUgdGlja2VkLlxuICAgICAgICAgICAgLy8gU3BsaXQgc2NyZWVuIG5lZWRzIHRoaXM6IHRoZSByb3cgd2hvc2UgY29udGVudHMgZmlsbCB0aGUgcmlnaHQtaGFuZFxuICAgICAgICAgICAgLy8gcGFuZWwgaGFzIHRvIHN0YW5kIG91dCB3aXRob3V0IHRvdWNoaW5nIHRoZSBjaGVja2JveCBzZWxlY3Rpb24uXG4gICAgICAgICAgICAvLyBTYW1lIGFjdGl2ZS12ZXJzdXMtc2VsZWN0ZWQgc3BsaXQgdGhlIGluYm94IG1lc3NhZ2UgbGlzdCB1c2VzLlxuICAgICAgICAgICAgLy8gW0tpbSAxMC4wOC4yMDI2XVxuICAgICAgICAgICAgJi5pcy1hY3RpdmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MCwgI2VlZjBmZik7IH1cblxuICAgICAgICAgICAgJi5pcy1jbGlja2FibGUgeyBjdXJzb3I6IHBvaW50ZXI7IH1cblxuICAgICAgICAgICAgJi5xZG5hcHJvLXRhYmxlLWVtcHR5LXJvdyB7XG4gICAgICAgICAgICAgICAgdGQuY29sLWVtcHR5IHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA1MnB4IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwKTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDExcHggMTZweDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTkwMCk7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG5cbiAgICAgICAgICAgIC8vIFRoZSB3aG9sZSBjZWxsIGlzIHRoZSB0YXAgdGFyZ2V0IGZvciB0aGUgcm93J3MgY2hlY2tib3ggKHNlZVxuICAgICAgICAgICAgLy8gX21ha2VDaGVja2JveENlbGwpLiBUaGUgcGFkZGluZyBpcyB3aGF0IG1ha2VzIGl0IGJpZzogMTJweCBlaXRoZXJcbiAgICAgICAgICAgIC8vIHNpZGUgb2YgYW4gMThweCBib3ggZ2l2ZXMgYSA0NHB4LXdpZGUgdGFyZ2V0IG92ZXIgdGhlIGZ1bGwgcm93XG4gICAgICAgICAgICAvLyBoZWlnaHQsIHdoaWNoIGNsZWFycyB0aGUgNDRweCBtaW5pbXVtLiBUaGUgY3Vyc29yIHNheXMgc28uXG4gICAgICAgICAgICAvLyBbS2ltIDA5LjA4LjIwMjYg4oCUIGNsaWNraW5nIGp1c3QgYmVzaWRlIHRoZSBib3ggdXNlZCB0byBvcGVuIHRoZSByb3ddXG4gICAgICAgICAgICAmLmNvbC1jaGVja2JveCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICR0YWJsZS1jaGVja2JveC13aWR0aDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMXB4ICR0YWJsZS1jaGVja2JveC1wYWRkaW5nLXg7XG5cbiAgICAgICAgICAgICAgICAmLmlzLWhpdC1hcmVhIHsgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb2wtbnVtYmVyIHsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgfVxuXG4gICAgICAgICAgICAvLyBPcHQtaW4gb25lLWxpbmUgKyBlbGxpcHNpcyB0cnVuY2F0aW9uIGZvciBhIHBsYWluIHRleHQgY2VsbCAodGhlXG4gICAgICAgICAgICAvLyBgdHJ1bmNhdGVgIGF0dHJpYnV0ZSBvbiBxZG5hcHJvLXRhYmxlLWNvbHVtbikuIGBkaXNwbGF5OiBpbmxpbmUtYmxvY2tgXG4gICAgICAgICAgICAvLyBpcyByZXF1aXJlZDogdGhlIGNlbGwncyBkZWZhdWx0IHRleHQgaXMgYSBwbGFpbiA8c3Bhbj4sIGFuZCBgbWF4LXdpZHRoYFxuICAgICAgICAgICAgLy8gaGFzIG5vIGVmZmVjdCBvbiBhbiBpbmxpbmUgZWxlbWVudC4gVGhlIGFjdHVhbCBwaXhlbCBib3VuZCBpcyBzZXQgYXNcbiAgICAgICAgICAgIC8vIGFuIGlubGluZSBzdHlsZSBieSBfdHJ1bmNhdGVNYXhXaWR0aCgpIGluIHFkbmEtdGFibGUuanMgKGZyb20gdGhlXG4gICAgICAgICAgICAvLyBjb2x1bW4ncyBgd2lkdGhgIGF0dHJpYnV0ZSwgb3IgYSAyNDBweCBkZWZhdWx0KSDigJQgc2VlIHRoZSBgdHJ1bmNhdGVgXG4gICAgICAgICAgICAvLyBkb2NibG9jayB0aGVyZSBmb3Igd2h5IGEgYm91bmQgaXMgdW5hdm9pZGFibGU6IHRoaXMgdGFibGUgc2V0cyBub1xuICAgICAgICAgICAgLy8gYHRhYmxlLWxheW91dGAsIHNvIGl0IHVzZXMgdGhlIGJyb3dzZXIncyBhdXRvbWF0aWMgbGF5b3V0LCB3aGVyZVxuICAgICAgICAgICAgLy8gYHdoaXRlLXNwYWNlOiBub3dyYXBgIGFsb25lIHdpZGVucyB0aGUgY29sdW1uIGluc3RlYWQgb2YgdHJ1bmNhdGluZyBpdC5cbiAgICAgICAgICAgIC5jb2wtdHJ1bmNhdGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8g4pSA4pSAIENlbGwgdHlwZSB3cmFwcGVycyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAgICAgICAgICAgLmNvbC10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAvLyBTYW1lIHN0b3J5IGFzIC5jb2wtdGh1bWJuYWlsLXRleHQgYmVsb3c6IDI4cHggaXMgdGhlIFwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgLy8gZGVuc2l0eSBib3ggYW5kIHRoZSBkZW5zaXR5IGJsb2NrcyBtb3ZlIGl0LiBBIGZpeGVkIDM2cHggbWFkZVxuICAgICAgICAgICAgICAgIC8vIHRoZSB0ZW1wbGF0ZSBsaWJyYXJ5J3Mgcm93cyA1OHB4IHRhbGwgaW4gdGhlIENPTVBBQ1QgZGVuc2l0eSxcbiAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIHRoZSBwaWN0dXJlLCBub3QgdGhlIHRleHQsIHNldCB0aGUgaGVpZ2h0LiBbS2ltIDEwLjA4LjIwMjZdXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29sLXRodW1ibmFpbC10ZXh0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGdhcDogMTBweDtcblxuICAgICAgICAgICAgICAgIC8vIDI4cHggPSB0aGUgXCJkZWZhdWx0XCIgZGVuc2l0eSB0aWxlLCB0aGUgc2FtZSBib3ggYVxuICAgICAgICAgICAgICAgIC8vIFwidmlzdWFsLXRleHRcIiBjZWxsIHVzZXMsIHNvIGEgdXNlcnMgcm93IGFuZCBhIHBob25lLW51bWJlcnNcbiAgICAgICAgICAgICAgICAvLyByb3cgYXJlIHRoZSBzYW1lIGhlaWdodC4gVGhlIGRlbnNpdHkgYmxvY2tzIGZ1cnRoZXIgZG93blxuICAgICAgICAgICAgICAgIC8vIG92ZXJyaWRlIGl0IChjb21wYWN0IDIwLCBjb21mb3J0YWJsZSAzNCkg4oCUIGl0IHdhcyBhIEZJWEVEIDM2cHhcbiAgICAgICAgICAgICAgICAvLyB1bnRpbCAxMC4wOC4yMDI2LCB3aGljaCBpcyB3aHkgYSBjb21wYWN0IHVzZXJzIHJvdyB3YXMgNTNweFxuICAgICAgICAgICAgICAgIC8vIHRhbGwgd2hlcmUgYSBjb21wYWN0IHBob25lLW51bWJlcnMgcm93IHdhcyA0MC4gW0tpbSAxMC4wOC4yMDI2XVxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQtaG92ZXIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIEFuIEFWQVRBUiBvbmx5IGdldHMgaXRzIGJveCBoZXJlIOKAlCBuZXZlciBhIHNoYXBlIG9yIGFcbiAgICAgICAgICAgICAgICAvLyBiYWNrZ3JvdW5kLiBxZG5hcHJvLWF2YXRhciBkcmF3cyBpdHMgb3duIGNpcmNsZSwgaXRzIG93biB0aW50XG4gICAgICAgICAgICAgICAgLy8gYW5kIGl0cyBvd24gYW5pbWFsL2luaXRpYWxzIGluc2lkZSBpdCwgZXhhY3RseSBsaWtlIHRoZVxuICAgICAgICAgICAgICAgIC8vIFwidmlzdWFsLXRleHRcIiBjZWxsIGJlbG93IGFscmVhZHkgcmVzcGVjdHMuIFRoaXMgY2VsbCB1c2VkIHRvXG4gICAgICAgICAgICAgICAgLy8gaGFuZCBpdCBib3JkZXItcmFkaXVzOjRweCArIGEgZ3JleSBiYWNrZHJvcCArIG9iamVjdC1maXQsXG4gICAgICAgICAgICAgICAgLy8gd2hpY2ggc3F1YXJlZCBvZmYgYSByb3VuZCBhdmF0YXIgYW5kIHB1dCBhIGdyZXkgYmxvY2sgYmVoaW5kXG4gICAgICAgICAgICAgICAgLy8gaXQg4oCUIHRoYXQgaXMgd2h5IHRoZSB1c2VyIHBob3RvcyBsb29rZWQgd3JvbmcgaW5zdGVhZCBvZiBqdXN0XG4gICAgICAgICAgICAgICAgLy8gbG9va2luZyBsaWtlIHRoZSBhdmF0YXJzIHRoZXkgYXJlLiBbS2ltIDEwLjA4LjIwMjZdXG4gICAgICAgICAgICAgICAgcWRuYXByby1hdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyDilIDilIAgUm91bmRlZCBzaGFwZSAoaW1hZ2Utc2hhcGU9XCJyb3VuZGVkXCIpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgICAgLy8gQSBUSElORywgbm90IGEgcGVyc29uOiBhIHJvdW5kZWQgcmVjdGFuZ2xlIGluc3RlYWQgb2YgdGhlIGF2YXRhclxuICAgICAgICAgICAgICAgIC8vIGNpcmNsZSBhYm92ZS4gNnB4LCB0aGUgc2FtZSBjb3JuZXIgdGhlIFwidmlzdWFsLXRleHRcIiB0aWxlIHVzZXMsIHNvXG4gICAgICAgICAgICAgICAgLy8gdGhlIHR3byBjb21wb3NpdGUgY2VsbCB0eXBlcyByZWFkIGFzIG9uZSBmYW1pbHkuXG4gICAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgICAvLyAuY3R0LW1lZGlhIGlzIHRoZSBzaGFyZWQgQk9YIChwaG90byBhbmQgc3RhbmQtaW4gdGlsZSBhbGlrZSksIHNvIGFcbiAgICAgICAgICAgICAgICAvLyBjb2x1bW4gd2l0aCBzb21lIHBob3RvZ3JhcGhlZCByZWNvcmRzIGFuZCBzb21lIG5vdCBrZWVwcyBvbmUgbGVmdFxuICAgICAgICAgICAgICAgIC8vIGVkZ2UgYW5kIG9uZSByb3cgaGVpZ2h0LiBTaXplcyBsaXZlIGluIHRoZSBkZW5zaXR5IGJsb2NrcyBhdCB0aGVcbiAgICAgICAgICAgICAgICAvLyBib3R0b20gb2YgdGhpcyBmaWxlLCBuZXh0IHRvIHRoZSBhdmF0YXIncy5cbiAgICAgICAgICAgICAgICAuY3R0LW1lZGlhIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNhbWUgMjhweCBib3ggYXMgdGhlIGF2YXRhciBhYm92ZSwgc28gYSByb3VuZGVkIGNvbHVtbiBhbmQgYVxuICAgICAgICAgICAgICAgICAgICAvLyBjaXJjdWxhciBvbmUgbGluZSB1cCByb3cgZm9yIHJvdy4gVGhlIGRlbnNpdHkgYmxvY2tzIGF0IHRoZVxuICAgICAgICAgICAgICAgICAgICAvLyBib3R0b20gb2YgdGhpcyBmaWxlIG92ZXJyaWRlIGl0ICgyMCAvIDM0KSwgZXhhY3RseSBhcyB0aGV5IGRvXG4gICAgICAgICAgICAgICAgICAgIC8vIGZvciB0aGUgYXZhdGFyLlxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGltZy5jdHQtcGhvdG8ge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBTdGFuZC1pbiBmb3IgYSByZWNvcmQgd2l0aCBubyBwaG90bzogdGhlIHVuaXQgdHlwZSdzIGljb24sIG9yIHRoZVxuICAgICAgICAgICAgICAgIC8vIGluaXRpYWxzLiBBIGZsYXQgbmV1dHJhbCB0aWxlLCBkZWxpYmVyYXRlbHkgTk9UIG9uZSBvZiB0aGUgZWlnaHRcbiAgICAgICAgICAgICAgICAvLyBob3VzZSBjb2xvdXJzIOKAlCB0aGUgY29sb3VyIHdvdWxkIGhhdmUgdG8gbWVhbiBzb21ldGhpbmcsIGFuZCBoZXJlXG4gICAgICAgICAgICAgICAgLy8gaXQgd291bGQgb25seSBiZSBcInRoaXMgcmVjb3JkIGhhcyBubyBwaWN0dXJlXCIuXG4gICAgICAgICAgICAgICAgLmN0dC10aWxlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmN0dC10aWxlLS1pbml0aWFscyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyB+NzAlIGZpbGwsIHRoZSBzYW1lIHByb3BvcnRpb24gdGhlIFwidmlzdWFsLXRleHRcIiB0aWxlIGdpdmVzIGl0cyBvd25cbiAgICAgICAgICAgICAgICAvLyBpY29uIGFuZCBxZG5hcHJvLXRhc2tsaXN0LWNhcmQgZ2l2ZXMgaXRzIFwibGlzdFwiIHZhcmlhbnQuXG4gICAgICAgICAgICAgICAgLmN0dC10aWxlLWljb24ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDcwJTtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIOKApmJ1dCB0aGUgdGlsZSBpcyBhIDxzcGFuPiB0b28gYW5kIG11c3Qga2VlcCBpdHMgYm94OiB0aGUgZWxsaXBzaXNcbiAgICAgICAgICAgICAgICAvLyBydWxlIGFib3ZlIGlzIGZvciB0aGUgTEFCRUwuIFdpdGhvdXQgdGhpcyB0aGUgdGlsZSBjb2xsYXBzZXMgYW5kXG4gICAgICAgICAgICAgICAgLy8gdGhlIGluaXRpYWxzIHNwaWxsIG9udG8gdGhlIG5hbWUuXG4gICAgICAgICAgICAgICAgc3Bhbi5jdHQtbWVkaWEge1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb2wtaWNvbi10ZXh0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGdhcDogN3B4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBcInZpc3VhbC10ZXh0XCIg4oCUIGEgcmVjb3JkJ3Mgb3duIHJlc29sdmVkIHZpc3VhbCAocGhvdG8sIGFuaW1hbCxcbiAgICAgICAgICAgIC8vIGluaXRpYWxzIG9yIGEgdGludGVkIGFjdGl2aXR5LWljb24gdGlsZSkgaW4gZnJvbnQgb2YgaXRzIHRleHQsIG9uZVxuICAgICAgICAgICAgLy8gc2hhcmVkIHNoYXBlIGZvciBhbGwgZm91ciBraW5kcyBzbyBhIG1peGVkLWNvbnRlbnQgY29sdW1uIChlLmcuIHNvbWVcbiAgICAgICAgICAgIC8vIHJvd3MgbGlua2VkIHRvIGEgdXNlciwgc29tZSBub3QpIHN0aWxsIGxpbmVzIHVwLiBTaXppbmcgaXRzZWxmIGlzXG4gICAgICAgICAgICAvLyBOT1QgaGVyZSDigJQgcWRuYXByby1hdmF0YXIgYW5kIHFkbmFwcm8tYWN0aXZpdHktaWNvbiBhcmUgYm90aCBzaXplZFxuICAgICAgICAgICAgLy8gdmlhIHRoZWlyIG93biBgc2l6ZWAgYXR0cmlidXRlIGluIEpTIChxZG5hLXRhYmxlLmpzXG4gICAgICAgICAgICAvLyBRRE5BX1RBQkxFX1ZJU1VBTF9URVhUX1NJWkVTIC8gX3N5bmNWaXN1YWxUZXh0U2l6ZXMoKSksIGJlY2F1c2UgYSByb3dcbiAgICAgICAgICAgIC8vIGRlbnNpdHkgY2hhbmdlIGlzIGEgY2xhc3Mgc3dhcCB3aXRoIG5vIHJlLXJlbmRlciBhbmQgdGhlc2UgdHdvXG4gICAgICAgICAgICAvLyBjb21wb25lbnRzIGtleSBvZmYgYSBkaXNjcmV0ZSBhdHRyaWJ1dGUsIG5vdCBhIENTUyBjdXN0b20gcHJvcGVydHkuXG4gICAgICAgICAgICAuY29sLXZpc3VhbC10ZXh0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAvLyBUaGUgXCJpbWFnZVwiL1wicGhvdG9cIiBraW5kcyByZW5kZXIgYSBwbGFpbiA8aW1nPiDigJQgc2NvcGVkIHRvIHRoZVxuICAgICAgICAgICAgICAgIC8vIGVsZW1lbnQgaXRzZWxmIChub3QgdGhlIHNoYXJlZCAuY3Z0LW1lZGlhIGNsYXNzKSBzbyB0aGlzIG5ldmVyXG4gICAgICAgICAgICAgICAgLy8gY29tcGV0ZXMgd2l0aCBxZG5hcHJvLWF2YXRhcidzIE9XTiBjaXJjbGUvYmFja2dyb3VuZCBydWxlIGJlbG93OlxuICAgICAgICAgICAgICAgIC8vIHRoYXQgY29tcG9uZW50IHNldHMgLS1hdi1iZy9ib3JkZXItcmFkaXVzOjUwJSBvbiBpdHNlbGYgYXQgYVxuICAgICAgICAgICAgICAgIC8vIHNpbmdsZS1jbGFzcyBzcGVjaWZpY2l0eSwgYW5kIGEgc2FtZS1zcGVjaWZpY2l0eSBgLmN2dC1tZWRpYWBcbiAgICAgICAgICAgICAgICAvLyBydWxlIHdvdWxkIGJlIGEgY29pbi1mbGlwIG9uIGRlY2xhcmF0aW9uIG9yZGVyIGluc3RlYWQgb2YgYVxuICAgICAgICAgICAgICAgIC8vIGRlbGliZXJhdGUgY2hvaWNlLlxuICAgICAgICAgICAgICAgIGltZy5jdnQtbWVkaWEge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gcWRuYXByby1hdmF0YXIgZHJhd3MgaXRzIG93biBjaXJjbGUvdGludCBlbnRpcmVseSBieSBpdHNlbGYg4oCUXG4gICAgICAgICAgICAgICAgLy8gb25seSB0aGUgbGF5b3V0IGNvbmNlcm4gKG5ldmVyIHNocmlua2luZyBpbiBhIG5hcnJvdyBjb2x1bW4pXG4gICAgICAgICAgICAgICAgLy8gYmVsb25ncyBoZXJlLlxuICAgICAgICAgICAgICAgIHFkbmFwcm8tYXZhdGFyLmN2dC1tZWRpYSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIEljb24ta2luZCB0aWxlOiBxZG5hcHJvLWFjdGl2aXR5LWljb24gaXMgbm90IGl0c2VsZiB0aW50YWJsZVxuICAgICAgICAgICAgICAgIC8vIChmaXhlZCB0d28tdG9uZSBhcnR3b3JrLCBzZWUgaXRzIG93biBkb2NibG9jayksIHNvIHRoZSBjb2xvdXJcbiAgICAgICAgICAgICAgICAvLyBjdWUgbGl2ZXMgb24gdGhpcyB0aWxlIGJhY2tncm91bmQgaW5zdGVhZCDigJQgc2FtZSBpZGVhIGFzXG4gICAgICAgICAgICAgICAgLy8gcWRuYXByby10YXNrbGlzdC1jYXJkJ3MgLnRsYy10aWxlLlxuICAgICAgICAgICAgICAgIC5jdnQtdGlsZSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY3Z0LXRpbGUtLWdyZXkgICAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTsgfVxuICAgICAgICAgICAgICAgIC5jdnQtdGlsZS0tcmVkICAgICAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpOyB9XG4gICAgICAgICAgICAgICAgLmN2dC10aWxlLS15ZWxsb3cgICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpOyB9XG4gICAgICAgICAgICAgICAgLmN2dC10aWxlLS1ncmVlbiAgICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1ncmVlbi1iZyk7IH1cbiAgICAgICAgICAgICAgICAuY3Z0LXRpbGUtLWJsdWUgICAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtYmx1ZS1iZyk7IH1cbiAgICAgICAgICAgICAgICAuY3Z0LXRpbGUtLWJyaWdodC1ibHVlIHsgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLTItYmcpOyB9XG4gICAgICAgICAgICAgICAgLmN2dC10aWxlLS1waW5rICAgICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXBpbmstYmcpOyB9XG4gICAgICAgICAgICAgICAgLmN2dC10aWxlLS1wdXJwbGUgICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1wdXJwbGUtYmcpOyB9XG5cbiAgICAgICAgICAgICAgICAuY3Z0LWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBcInRleHQtc3ViXCIg4oCUIHR3byBzdGFja2VkIGxpbmVzIGluIG9uZSBjZWxsOiB0aGUgcmVjb3JkJ3Mgb3duIHZhbHVlIG9uXG4gICAgICAgICAgICAvLyB0b3AsIGEgc3VwcG9ydGluZyBsaW5lIHVuZGVyIGl0IChzZWUgVGV4dFN1YkNvbHVtbikuIEl0IGV4aXN0cyBzbyBhblxuICAgICAgICAgICAgLy8gb3ZlcnZpZXcgY2FuIGZvbGQgY29sdW1ucyB0aGF0IG9ubHkgZXZlciBxdWFsaWZ5IHRoZSBtYWluIG9uZSAoY2l0eSxcbiAgICAgICAgICAgIC8vIGNvdW50cnkpIGludG8gdGhlIGNvbHVtbiB0aGV5IHF1YWxpZnksIGluc3RlYWQgb2Ygc3BlbmRpbmcgYSB3aG9sZVxuICAgICAgICAgICAgLy8gdGFibGUgY29sdW1uIGVhY2guXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gVGhlIG1hcmsgaW4gZnJvbnQgaXMgdGhlIENPTFVNTidzLCBpZGVudGljYWwgb24gZXZlcnkgcm93IOKAlCB0aGUgc2FtZVxuICAgICAgICAgICAgLy8gMjhweCBib3ggXCJ0aHVtYm5haWwtdGV4dFwiIHVzZXMsIHNvIGEgdGFibGUgd2l0aCBib3RoIHR5cGVzIGtlZXBzIG9uZVxuICAgICAgICAgICAgLy8gbGVmdCBlZGdlLiBJdCBpcyBOT1QgZ2l2ZW4gYSBiYWNrZ3JvdW5kIG9yIGEgcmFkaXVzOiB0aGVzZSBhcmUgdGhlXG4gICAgICAgICAgICAvLyBmdWxsLWNvbG91ciBTVkcgcG9zdGVycyBvZiB0aGUgYW5pbWF0ZWQgaWNvbiBzZXQsIGRyYXdpbmdzIHdpdGggdGhlaXJcbiAgICAgICAgICAgIC8vIG93biBzaWxob3VldHRlLCBhbmQgYSBncmV5IHRpbGUgYmVoaW5kIG9uZSByZWFkcyBhcyBhIGZhaWxlZCBwaG90by5cbiAgICAgICAgICAgIC5jb2wtdGV4dC1zdWIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgIGltZy5jdHMtbWFyayB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY3RzLWxpbmVzIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgLy8gMS4zLCBub3QgdGhlIHRhYmxlJ3Mgb3duIGxpbmUtaGVpZ2h0OiB0d28gbGluZXMgYXQgdGhlIHJvdydzXG4gICAgICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgbGVhZGluZyBtYWtlIHRoZSBjZWxsIHRhbGxlciB0aGFuIHRoZSBtYXJrIGJlc2lkZSBpdFxuICAgICAgICAgICAgICAgICAgICAvLyBhbmQgcHVsbCBldmVyeSBvdGhlciByb3cgYWxvbmcgd2l0aCBpdC5cbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIEJvdGggbGluZXMgc3RheSBvbiBPTkUgbGluZSBlYWNoIGFuZCBjbGlwLiBXaXRob3V0IHRoaXMgdGhlXG4gICAgICAgICAgICAgICAgLy8gc2Vjb25kIGxpbmUgd3JhcHMgaW4gYSBuYXJyb3cgY29sdW1uIGFuZCB0aGUgcm93IHNpbGVudGx5XG4gICAgICAgICAgICAgICAgLy8gZG91YmxlcyBpbiBoZWlnaHQg4oCUIHRoZSBleGFjdCB0cmFwIHRoZSBgdHJ1bmNhdGVgIG9wdGlvbiBleGlzdHNcbiAgICAgICAgICAgICAgICAvLyBmb3Igb24gcGxhaW4gdGV4dCBjb2x1bW5zLlxuICAgICAgICAgICAgICAgIC5jdHMtbWFpbixcbiAgICAgICAgICAgICAgICAuY3RzLXN1YiB7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jdHMtc3ViIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDApO1xuICAgICAgICAgICAgICAgICAgICAvLyBGaXhlZCAxMnB4IHJhdGhlciB0aGFuIGEgcmVsYXRpdmUgc3RlcDogdGhlIGRlbnNpdHkgcnVsZXMgYXRcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGJvdHRvbSBvZiB0aGlzIGZpbGUgcmUtc2V0IHRoZSBtYWluIGxpbmUgcGVyIGRlbnNpdHksIGFuZFxuICAgICAgICAgICAgICAgICAgICAvLyBhbiBlbS1iYXNlZCBzdWItbGluZSB3b3VsZCBkcmlmdCBhbG9uZyB3aXRoIGl0IGludG8gMTBweCBvblxuICAgICAgICAgICAgICAgICAgICAvLyBjb21wYWN0LlxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29sLWF2YXRhciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwKTtcblxuICAgICAgICAgICAgICAgICAgICAmLmlzLWVtcHR5IHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTsgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vLyDilIDilIAgR3JpZCB2aWV3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5xZG5hcHJvLXRhYmxlLWdyaWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDE2cHg7XG5cbiAgICAmOm5vdChbaGlkZGVuXSkge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAvLyAxODAsIG5vdCAyMjAgKEtpbSAxMC4wOC4yMDI2OiBcImt1bm5lbiB6ZSBlZW4gdGlra2llIGtsZWluZXIgZGF0IGVyIDFcbiAgICAgICAgLy8gZXh0cmEgdGlsZSBvcCAxIHJpaiBrYW4gc3RhYW5cIikuIE9uIGhlciAxNDgzcHggd2luZG93IHRoZSBjZW50ZXIgYXJlYVxuICAgICAgICAvLyBnaXZlcyB0aGUgZ3JpZCAxMjEycHggb2YgdXNhYmxlIHdpZHRoOiBhdCAyMjAgdGhhdCBpcyBmaXZlIGNvbHVtbnMgb2ZcbiAgICAgICAgLy8gMjMwLCBhdCAxODAgaXQgaXMgc2l4IG9mIDE4OS4gQW55IG5hcnJvd2VyIGFuZCBhIHR3by1saW5lIHRpdGxlIHBsdXMgYVxuICAgICAgICAvLyB0YWcgcGx1cyBhIHN0YXQgc3RhcnQgZmlnaHRpbmcgZm9yIHRoZSBzYW1lIGxpbmUuXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE4MHB4LCAxZnIpKTtcbiAgICB9XG59XG5cbi5xZG5hcHJvLXRhYmxlLWdyaWQtZW1wdHkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA1MnB4IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS00MDApO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLy8gVGhlIGdyaWQgdmlldydzIENBUkQgaXMgcWRuYXByby1ncmlkLXRpbGUgaW4gaXRzIGxheW91dD1cImNhcmRcIiBtb2RlIGFzIG9mXG4vLyAxMC4wOC4yMDI2IC0gdGhpcyBmaWxlIHVzZWQgdG8gY2FycnkgfjEyMCBsaW5lcyBvZiBgLnFkbmFwcm8tdGFibGUtY2FyZGBcbi8vIG1hcmt1cCBDU1MgKGJhbm5lciwgYXZhdGFyIGNpcmNsZSwgdGl0bGUsIHN1YnRpdGxlLCBzdGF0cykgdGhhdCB3ZXJlIGFcbi8vIHNlY29uZCBjb3B5IG9mIGFuIGFuYXRvbXkgdGhlIGNvbXBvbmVudCBhbHJlYWR5IG93bmVkLiBFdmVyeXRoaW5nIGFib3V0IGFcbi8vIGNhcmQgbm93IGxpdmVzIGluIF9ncmlkLXRpbGUuc2Nzczsgb25seSB0aGUgR1JJRCBhcm91bmQgdGhlIGNhcmRzXG4vLyAoLnFkbmFwcm8tdGFibGUtZ3JpZCBhYm92ZSkgYW5kIHRoZSBlbnRyYW5jZSBhbmltYXRpb24gYmVsb3cgYXJlIHRoZVxuLy8gdGFibGUncyBvd24gYnVzaW5lc3MuXG5cbi8vIOKUgOKUgCBFbnRyYW5jZSBhbmltYXRpb24g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vL1xuLy8gUm93cyBhbmQgY2FyZHMgY29tZSBpbiBvbmUgYnkgb25lLCBzbyBzd2l0Y2hpbmcgYmV0d2VlbiBsaXN0IGFuZCBncmlkIHJlYWRzIGFzXG4vLyBhIGNoYW5nZSBpbnN0ZWFkIG9mIGEganVtcCBjdXQuIHFkbmEtdGFibGUuanMgaGFuZ3MgYGlzLWVudGVyaW5nYCBvbiBhIHJvdyBvclxuLy8gY2FyZCBhbmQgd3JpdGVzIGl0cyAoY2FwcGVkKSBwb3NpdGlvbiBpbnRvIC0tcWRuYXByby10YWJsZS1lbnRlci1pOyB0aGUgZGVsYXlcbi8vIGlzIHRoYXQgbnVtYmVyIHRpbWVzIHRoZSBzdGVwLiBbS2ltIDA4LjA4LjIwMjZdXG4vL1xuLy8gSXQgZmlyZXMgT05MWSBvbiBhIHZpZXcgc3dpdGNoIGFuZCBvbiB0aGUgZmlyc3QgcGFpbnQgYWZ0ZXIgbG9hZGluZyDigJQgbmV2ZXIgb25cbi8vIHNvcnQsIHNlYXJjaCwgcGluIG9yIGNvbHVtbiBkcmFnLCBldmVuIHRob3VnaCB0aG9zZSBhbHNvIHJlLXJlbmRlciB0aGUgYm9keS5cbi8vIFJlLWFuaW1hdGluZyB0aGUgd2hvbGUgbGlzdCBvbiBldmVyeSBrZXlzdHJva2UgaXMgbW9yZSByZXN0bGVzcyB0aGFuIG5vdGhpbmcuXG4vL1xuLy8gaXMtZW50ZXJpbmctZmxhdCBpcyB0aGUgc2FtZSBhcnJpdmFsIFdJVEhPVVQgdGhlIHVwd2FyZCBzaGlmdCwgZm9yIGEgdGFibGUgd2l0aFxuLy8gYSBwaW5uZWQgY29sdW1uOiBhIHRyYW5zZm9ybSBvbiB0aGUgcm93IG1ha2VzIHRoYXQgcm93IHRoZSBjb250YWluaW5nIGJsb2NrLCBzb1xuLy8gdGhlIHN0aWNreSBjZWxsIHdvdWxkIHN0b3Agc3RpY2tpbmcgZm9yIGFzIGxvbmcgYXMgdGhlIGFuaW1hdGlvbiBydW5zLlxuXG4kdGFibGUtZW50ZXItZHVyYXRpb24gOiAxODBtcztcbiR0YWJsZS1lbnRlci1zdGVwICAgICA6IDI1bXM7XG4kdGFibGUtZW50ZXItc2hpZnQgICAgOiA2cHg7XG4kdGFibGUtZW50ZXItZWFzZSAgICAgOiBjdWJpYy1iZXppZXIoMC4yMiwgMC42MSwgMC4zNiwgMSk7IC8vIGVhc2Utb3V0OiBxdWljayBvZmYgdGhlIG1hcmssIHNvZnQgbGFuZGluZ1xuXG5Aa2V5ZnJhbWVzIHFkbmFwcm8tdGFibGUtZW50ZXIge1xuICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHRhYmxlLWVudGVyLXNoaWZ0KTsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IG5vbmU7IH1cbn1cblxuQGtleWZyYW1lcyBxZG5hcHJvLXRhYmxlLWVudGVyLWZsYXQge1xuICAgIGZyb20geyBvcGFjaXR5OiAwOyB9XG4gICAgdG8gICB7IG9wYWNpdHk6IDE7IH1cbn1cblxuLnFkbmFwcm8tdGFibGUtbGlzdCB0Ym9keSB0ci5pcy1lbnRlcmluZyxcbi5xZG5hcHJvLXRhYmxlLWdyaWQgLnFkbmFwcm8tZ3JpZC10aWxlLmlzLWVudGVyaW5nIHtcbiAgICBhbmltYXRpb246IHFkbmFwcm8tdGFibGUtZW50ZXIgJHRhYmxlLWVudGVyLWR1cmF0aW9uICR0YWJsZS1lbnRlci1lYXNlIGJvdGg7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiBjYWxjKHZhcigtLXFkbmFwcm8tdGFibGUtZW50ZXItaSwgMCkgKiAjeyR0YWJsZS1lbnRlci1zdGVwfSk7XG59XG5cbi5xZG5hcHJvLXRhYmxlLWxpc3QgdGJvZHkgdHIuaXMtZW50ZXJpbmctZmxhdCB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHFkbmFwcm8tdGFibGUtZW50ZXItZmxhdDtcbn1cblxuLy8gU29tZW9uZSB3aG8gYXNrZWQgdGhlIHN5c3RlbSBmb3IgbGVzcyBtb3ZlbWVudCBnZXRzIHRoZSBlbmQgc3RhdGUgcmlnaHQgYXdheSxcbi8vIG5vdCBhIGZhc3RlciB2ZXJzaW9uIG9mIHRoZSBzYW1lIHRoaW5nLlxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucWRuYXByby10YWJsZS1saXN0IHRib2R5IHRyLmlzLWVudGVyaW5nLFxuICAgIC5xZG5hcHJvLXRhYmxlLWdyaWQgLnFkbmFwcm8tZ3JpZC10aWxlLmlzLWVudGVyaW5nIHtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgIH1cbn1cblxuLy8g4pSA4pSAIFJvdyBkZW5zaXR5IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy9cbi8vIFR3byBzdGVwcywgTElTVCBWSUVXIE9OTFkuIGBkZWZhdWx0YCBpcyB3aGF0IHRoZSB0YWJsZSBhbHdheXMgd2FzLCBzbyBub3RoaW5nXG4vLyBjaGFuZ2VzIGZvciBhIHRhYmxlIHRoYXQgbmV2ZXIgYXNrcyBmb3IgdGhpcy4gW0tpbSAwOS4wOC4yMDI2XVxuLy9cbi8vICAgZGVmYXVsdCAgICAgMTFweCBwYWRkaW5nIC8gMTRweCAg4oaSIH40MHB4IHJvd1xuLy8gICBjb21mb3J0YWJsZSAxNnB4IHBhZGRpbmcgLyAxNXB4ICDihpIgfjUxcHggcm93XG4vL1xuLy8gYGNvbWZvcnRhYmxlYCByYWlzZXMgdGhlIFRFWFQgYXMgd2VsbC4gQSB0YWxsZXIgcm93IG9uIGl0cyBvd24gZG9lcyBub3RoaW5nXG4vLyBmb3Igc29tZW9uZSB3aG8gY2Fubm90IHJlYWQgMTRweCwgYW5kIHRoYXQgaXMgd2hvIHRoZSBzZXR0aW5nIGlzIGZvci4gVGhlXG4vLyBoZWlnaHQgc3RpbGwgY29tZXMgZnJvbSBwYWRkaW5nICsgbGluZS1oZWlnaHQgYW5kIG5ldmVyIGZyb20gYSBmaXhlZCBoZWlnaHQsXG4vLyBzbyBhIGxvbmcgY2VsbCBrZWVwcyBncm93aW5nIGl0cyBvd24gcm93IGFuZCBicm93c2VyIHpvb20gKFdDQUcgMS40LjQgYXNrc1xuLy8gZm9yIDIwMCUgd2l0aG91dCBsb3NzKSB3b3JrcyBvbiB0b3Agb2YgdGhpcyBpbnN0ZWFkIG9mIGZpZ2h0aW5nIGl0LlxuLy9cbi8vIFRoZXJlIGlzIGRlbGliZXJhdGVseSBOTyBgY29tcGFjdGAgc3RlcDogYXQgMzJweCBhIHJvdyBmYWxscyB1bmRlciB0aGUgNDRweFxuLy8gdGFwIHRhcmdldCwgYW5kIGEgc3RlcCB0aGF0IG9ubHkgZXhpc3RzIHdpdGggYSBtb3VzZSBpcyBhIHN0ZXAgdGhhdCBoYXMgdG8gYmVcbi8vIGV4cGxhaW5lZC5cblxuJHRhYmxlLWNvbXBhY3QtcGFkZGluZy15ICAgICAgICAgIDogOHB4O1xuJHRhYmxlLWNvbXBhY3QtcGFkZGluZy14ICAgICAgICAgIDogMTJweDtcbiR0YWJsZS1jb21wYWN0LWZvbnQtc2l6ZSAgICAgICAgICA6IDEycHg7XG4kdGFibGUtY29tcGFjdC1oZWFkLXBhZGRpbmcteSAgICAgOiA3cHg7XG4kdGFibGUtY29tZm9ydGFibGUtcGFkZGluZy15ICAgICAgOiAxNnB4O1xuJHRhYmxlLWNvbWZvcnRhYmxlLWZvbnQtc2l6ZSAgICAgIDogMTVweDtcbiR0YWJsZS1jb21mb3J0YWJsZS1oZWFkLXBhZGRpbmcteSA6IDEycHg7XG4kdGFibGUtZGVuc2l0eS1kdXJhdGlvbiAgICAgICAgICAgOiAyMDBtcztcbiR0YWJsZS1kZW5zaXR5LWVhc2UgICAgICAgICAgICAgICA6IGN1YmljLWJlemllcigwLjIyLCAwLjYxLCAwLjM2LCAxKTsgLy8gc2FtZSBlYXNlLW91dCBhcyB0aGUgZW50cmFuY2VcblxuLy8gVGhlIHJvd3MgR1JPVyBhbmQgU0hSSU5LIGluc3RlYWQgb2Ygc25hcHBpbmcuIERlbGliZXJhdGVseSBhIHRyYW5zaXRpb24gYW5kXG4vLyBub3QgYW4gYW5pbWF0aW9uOiBhIHRyYW5zaXRpb24gb25seSBmaXJlcyBvbiBhIGNoYW5nZSwgc28gYSBmcmVzaGx5IHJlbmRlcmVkXG4vLyB0YWJsZSAoZXZlcnkgZmV0Y2gsIGV2ZXJ5IHNvcnQpIHBhaW50cyBhdCBpdHMgZmluYWwgc2l6ZSB3aXRob3V0IGEgd29iYmxlLCBhbmRcbi8vIHRoZSB0d28gZGlyZWN0aW9ucyBhcmUgZnJlZSDigJQgdGhlIHNhbWUgcnVsZSBjb3ZlcnMgcm9vbWllciBhbmQgdGlnaHRlci5cbi8vXG4vLyBQYWRkaW5nIGFuZCBmb250LXNpemUgYXJlIExBWU9VVCBwcm9wZXJ0aWVzLCBzbyB0aGlzIGlzIG5vdCBhIEdQVS1jb21wb3NpdGVkXG4vLyBhbmltYXRpb24gdGhlIHdheSB0aGUgZW50cmFuY2UgaXM7IHdpdGggdGhlIDI1IHJvd3Mgb2YgYSBkZWZhdWx0IHBhZ2UgdGhhdCBpc1xuLy8gdW5ub3RpY2VhYmxlLCBidXQgaXQgaXMgdGhlIHJlYXNvbiBub3QgdG8gcmVhY2ggZm9yIHRoaXMgb24gZXZlcnl0aGluZy5cbi8vXG4vLyBJdCBzaXRzIG9uIHRoZSBiYXNlIHNlbGVjdG9yLCBub3Qgb24gdGhlIGNvbWZvcnRhYmxlIG9uZSwgb3IgdGhlIHdheSBiYWNrXG4vLyAodGhlIGNsYXNzIGJlaW5nIHJlbW92ZWQpIHdvdWxkIGhhdmUgbm8gdHJhbnNpdGlvbiB0byBydW4gYW5kIG9ubHkgZ3Jvd2luZ1xuLy8gd291bGQgYW5pbWF0ZS5cblxuLnFkbmFwcm8tdGFibGUtbGlzdCB7XG4gICAgdGhlYWQgdGgsXG4gICAgdGJvZHkgdGQge1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgcGFkZGluZy10b3AgICAgJHRhYmxlLWRlbnNpdHktZHVyYXRpb24gJHRhYmxlLWRlbnNpdHktZWFzZSxcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tICR0YWJsZS1kZW5zaXR5LWR1cmF0aW9uICR0YWJsZS1kZW5zaXR5LWVhc2UsXG4gICAgICAgICAgICAvLyBjb21wYWN0IGlzIHRoZSBvbmx5IHN0ZXAgdGhhdCBhbHNvIHRpZ2h0ZW5zIGxlZnQvcmlnaHQsIGFuZCB3aXRob3V0XG4gICAgICAgICAgICAvLyB0aGVzZSB0d28gdGhlIHJvdyB3b3VsZCBncm93IHNtb290aGx5IHdoaWxlIHRoZSBjb2x1bW5zIHNuYXBwZWQuXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQgICAkdGFibGUtZGVuc2l0eS1kdXJhdGlvbiAkdGFibGUtZGVuc2l0eS1lYXNlLFxuICAgICAgICAgICAgcGFkZGluZy1yaWdodCAgJHRhYmxlLWRlbnNpdHktZHVyYXRpb24gJHRhYmxlLWRlbnNpdHktZWFzZSxcbiAgICAgICAgICAgIGZvbnQtc2l6ZSAgICAgICR0YWJsZS1kZW5zaXR5LWR1cmF0aW9uICR0YWJsZS1kZW5zaXR5LWVhc2U7XG4gICAgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLXRhYmxlLWxpc3Qge1xuICAgICAgICB0aGVhZCB0aCxcbiAgICAgICAgdGJvZHkgdGQgeyB0cmFuc2l0aW9uOiBub25lOyB9XG4gICAgfVxufVxuXG4ucWRuYXByby10YWJsZS1saXN0LmlzLWRlbnNpdHktY29tZm9ydGFibGUge1xuICAgIHRoZWFkIHRoIHtcbiAgICAgICAgcGFkZGluZy10b3AgICA6ICR0YWJsZS1jb21mb3J0YWJsZS1oZWFkLXBhZGRpbmcteTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICR0YWJsZS1jb21mb3J0YWJsZS1oZWFkLXBhZGRpbmcteTtcbiAgICB9XG5cbiAgICB0Ym9keSB0ZCB7XG4gICAgICAgIHBhZGRpbmctdG9wICAgOiAkdGFibGUtY29tZm9ydGFibGUtcGFkZGluZy15O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHRhYmxlLWNvbWZvcnRhYmxlLXBhZGRpbmcteTtcbiAgICAgICAgZm9udC1zaXplICAgICA6ICR0YWJsZS1jb21mb3J0YWJsZS1mb250LXNpemU7XG5cbiAgICAgICAgJi5jb2wtY2hlY2tib3gge1xuICAgICAgICAgICAgcGFkZGluZy10b3AgICA6ICR0YWJsZS1jb21mb3J0YWJsZS1wYWRkaW5nLXk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHRhYmxlLWNvbWZvcnRhYmxlLXBhZGRpbmcteTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZSBjb21wb3NpdGUgY2VsbCB0eXBlcyBjYXJyeSB0aGVpciBvd24gdHlwZSBzY2FsZTsgbGlmdCB0aG9zZSB3aXRoIHRoZVxuICAgIC8vIHJlc3Qgc28gYSByb29teSB0YWJsZSBkb2VzIG5vdCBlbmQgdXAgd2l0aCBvbmUgY29sdW1uIHN0aWxsIGF0IDE0cHguXG4gICAgLmNvbC10aHVtYm5haWwtdGV4dCBzcGFuLFxuICAgIC5jb2wtaWNvbi10ZXh0LFxuICAgIC5jb2wtdmlzdWFsLXRleHQgLmN2dC1sYWJlbCxcbiAgICAuY29sLXRleHQtc3ViIC5jdHMtbWFpbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRhYmxlLWNvbWZvcnRhYmxlLWZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICAvLyBUaGUgcGhvdG8gZ3Jvd3Mgd2l0aCB0aGUgcm93LCBzYW1lIDM0cHggdGlsZSBhIGNvbWZvcnRhYmxlXG4gICAgLy8gXCJ2aXN1YWwtdGV4dFwiIGNlbGwgdXNlcy5cbiAgICAuY29sLXRodW1ibmFpbC10ZXh0IGltZyxcbiAgICAuY29sLXRodW1ibmFpbC10ZXh0IHFkbmFwcm8tYXZhdGFyLFxuICAgIC5jb2wtdGh1bWJuYWlsLXRleHQgLmN0dC1tZWRpYSxcbiAgICAuY29sLXRodW1ibmFpbCBpbWcsXG4gICAgLmNvbC10ZXh0LXN1YiBpbWcuY3RzLW1hcmsge1xuICAgICAgICB3aWR0aDogMzRweDtcbiAgICAgICAgaGVpZ2h0OiAzNHB4O1xuICAgIH1cblxuICAgIC5jb2wtdGh1bWJuYWlsLXRleHQgLmN0dC10aWxlLS1pbml0aWFscyB7IGZvbnQtc2l6ZTogMTNweDsgfVxufVxuXG4vLyBDb21wYWN0IOKAlCBLaW0gMDkuMDguMjAyNiwgZnJvbSBoZXIgb3duIHJvb215L2NvbXBhY3QgZGVzaWduIHBhaXI6IDMycHggcm93cyxcbi8vIDEycHggdGV4dCwgMTJweCBsZWZ0IGFuZCByaWdodC4gVGhpcyBpcyB0aGUgb25lIHN0ZXAgdGhhdCBhbHNvIHRpZ2h0ZW5zIHRoZVxuLy8gSE9SSVpPTlRBTCBwYWRkaW5nLCBiZWNhdXNlIHRoYXQgaXMgd2hlcmUgYSB3aWRlIHRhYmxlIGFjdHVhbGx5IHdpbnMgcm9vbTogYXRcbi8vIHRlbiBjb2x1bW5zIHRoZSAxNnB4IGRlZmF1bHQgc3BlbmRzIDMyMHB4IG9uIGFpciBhbG9uZS5cbi8vXG4vLyBUaGUgZWFybGllciBub3RlIGFib3ZlIHNheXMgYSBjb21wYWN0IHN0ZXAgd2FzIHJlamVjdGVkIGJlY2F1c2UgYSAzMnB4IHJvdyBzaXRzXG4vLyB1bmRlciB0aGUgNDRweCB0YXAgdGFyZ2V0LiBUaGF0IG9iamVjdGlvbiBzdGFuZHMgZm9yIHRvdWNoIGFuZCBpcyB0aGUgcmVhc29uXG4vLyBjb21wYWN0IGlzIE5PVCB0aGUgZGVmYXVsdCBhbmQgbmV2ZXIgYmVjb21lcyBpdCBhdXRvbWF0aWNhbGx5OiBhIHBhZ2Ugb3B0cyBpbixcbi8vIG9yIGEgcGVyc29uIHBpY2tzIGl0LiBPbiB0aGUgYmFja29mZmljZSwgd2hpY2ggaXMgYSBtb3VzZS1hbmQta2V5Ym9hcmQgZGVza1xuLy8gdG9vbCwgYSBkZW5zZXIgdGFibGUgaXMgdGhlIHBvaW50LlxuLy9cbi8vIFRoZSBoZWlnaHQgc3RpbGwgY29tZXMgZnJvbSBwYWRkaW5nIHBsdXMgbGluZS1oZWlnaHQsIG5ldmVyIGZyb20gYSBmaXhlZFxuLy8gaGVpZ2h0LCBzbyBhIGxvbmcgY2VsbCBjYW4gc3RpbGwgZ3JvdyBpdHMgb3duIHJvdyBhbmQgYnJvd3NlciB6b29tIGtlZXBzXG4vLyB3b3JraW5nIChXQ0FHIDEuNC40KS5cbi5xZG5hcHJvLXRhYmxlLWxpc3QuaXMtZGVuc2l0eS1jb21wYWN0IHtcbiAgICB0aGVhZCB0aCB7XG4gICAgICAgIHBhZGRpbmctdG9wICAgOiAkdGFibGUtY29tcGFjdC1oZWFkLXBhZGRpbmcteTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICR0YWJsZS1jb21wYWN0LWhlYWQtcGFkZGluZy15O1xuICAgICAgICBwYWRkaW5nLWxlZnQgIDogJHRhYmxlLWNvbXBhY3QtcGFkZGluZy14O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0IDogJHRhYmxlLWNvbXBhY3QtcGFkZGluZy14O1xuICAgIH1cblxuICAgIHRib2R5IHRkIHtcbiAgICAgICAgcGFkZGluZy10b3AgICA6ICR0YWJsZS1jb21wYWN0LXBhZGRpbmcteTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICR0YWJsZS1jb21wYWN0LXBhZGRpbmcteTtcbiAgICAgICAgcGFkZGluZy1sZWZ0ICA6ICR0YWJsZS1jb21wYWN0LXBhZGRpbmcteDtcbiAgICAgICAgcGFkZGluZy1yaWdodCA6ICR0YWJsZS1jb21wYWN0LXBhZGRpbmcteDtcbiAgICAgICAgZm9udC1zaXplICAgICA6ICR0YWJsZS1jb21wYWN0LWZvbnQtc2l6ZTtcblxuICAgICAgICAmLmNvbC1jaGVja2JveCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcCAgIDogJHRhYmxlLWNvbXBhY3QtcGFkZGluZy15O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICR0YWJsZS1jb21wYWN0LXBhZGRpbmcteTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb2wtdGh1bWJuYWlsLXRleHQgc3BhbixcbiAgICAuY29sLWljb24tdGV4dCxcbiAgICAuY29sLXZpc3VhbC10ZXh0IC5jdnQtbGFiZWwsXG4gICAgLmNvbC10ZXh0LXN1YiAuY3RzLW1haW4ge1xuICAgICAgICBmb250LXNpemU6ICR0YWJsZS1jb21wYWN0LWZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICAvLyBUaGUgc3ViLWxpbmUgZHJvcHMgb25lIHN0ZXAgdG9vLCBzbyBhIGNvbXBhY3Qgcm93IHN0YXlzIGEgY29tcGFjdCByb3c6IGF0XG4gICAgLy8gMTJweCB1bmRlciBhIDEycHggbWFpbiBsaW5lIHRoZSB0d28gc3RvcCByZWFkaW5nIGFzIGEgaGllcmFyY2h5LlxuICAgIC5jb2wtdGV4dC1zdWIgLmN0cy1zdWIge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuXG4gICAgLy8gVGhlIHBob3RvIHNocmlua3Mgd2l0aCB0aGUgcm93LCBzYW1lIDIwcHggdGlsZSBhIGNvbXBhY3QgXCJ2aXN1YWwtdGV4dFwiXG4gICAgLy8gY2VsbCB1c2VzIOKAlCBvdGhlcndpc2UgdGhlIGltYWdlLCBub3QgdGhlIHRleHQsIHNldHMgdGhlIHJvdyBoZWlnaHQuXG4gICAgLmNvbC10aHVtYm5haWwtdGV4dCBpbWcsXG4gICAgLmNvbC10aHVtYm5haWwtdGV4dCBxZG5hcHJvLWF2YXRhcixcbiAgICAuY29sLXRodW1ibmFpbC10ZXh0IC5jdHQtbWVkaWEsXG4gICAgLmNvbC10aHVtYm5haWwgaW1nLFxuICAgIC5jb2wtdGV4dC1zdWIgaW1nLmN0cy1tYXJrIHtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICB9XG5cbiAgICAvLyA0cHggYXQgMjBweDogNiBvbiBhIGJveCB0aGlzIHNtYWxsIGVhdHMgdGhlIGNvcm5lciBpbnRvIGEgbG96ZW5nZS5cbiAgICAuY29sLXRodW1ibmFpbC10ZXh0IC5jdHQtbWVkaWEgICAgICAgICAgeyBib3JkZXItcmFkaXVzOiA0cHg7IH1cbiAgICAuY29sLXRodW1ibmFpbC10ZXh0IC5jdHQtdGlsZS0taW5pdGlhbHMgeyBmb250LXNpemU6IDlweDsgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby10YWJsZS13cmFwcGVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBUaGUgc2hlbGwgYXJvdW5kIGEgcWRuYXByby10YWJsZTogbGFiZWwgKyBjb3VudCArIGJ1dHRvbnMuXG4vL1xuLy8gIFBvcnRlZCAxOjEgZnJvbSB0aGUgaGFuZC1yb2xsZWQgLm92LXBhbmVsLWhlYWRlciBibG9jayBpblxuLy8gIHNjc3MvcGFnZXMvX292ZXJ2aWV3LnNjc3MgKHBhZGRpbmcsIGhhaXJsaW5lLCB0eXBlIHNpemVzIGFuZFxuLy8gIHRoZSBjb3VudCBwaWxsIGFyZSB0aGUgc2FtZSBudW1iZXJzKSwgd2l0aCBvbmUgZGlmZmVyZW5jZTpcbi8vICB0aGUgbG9vc2UgaGV4ZXMgdGhlcmUgd2VyZSBzd2FwcGVkIGZvciBkZXNpZ24gdG9rZW5zLCBzbyB0aGVcbi8vICBzdHJpcCBhbHNvIGhvbGRzIHVwIGluIGRhcmsgbW9kZS4gVGhlIGhleCBiZWhpbmQgZWFjaCB0b2tlblxuLy8gIGlzIHRoZSBMSUdIVCB2YWx1ZSBhbmQgc3RheXMgYXMgYSBzYWZldHkgbmV0IGZvciBhIHRva2VuIHRoYXRcbi8vICBkb2VzIG5vdCByZXNvbHZlLlxuLy9cbi8vICBDYXJlZnVsIHdoZW4gcmVhZGluZzogcWRuYS10YWJsZS5qcyB1c2VzIHRoZSBDTEFTU1xuLy8gIC5xZG5hcHJvLXRhYmxlLXdyYXBwZXIgZm9yIGl0cyBvd24gc2Nyb2xsIGNvbnRhaW5lci4gVGhhdCBpc1xuLy8gIGEgY2xhc3MsIHRoaXMgaXMgYW4gZWxlbWVudCDigJQgZGlmZmVyZW50IHNlbGVjdG9ycy4gRXZlcnkgcGFydFxuLy8gIGluIGhlcmUgY2FycmllcyBhIF9fIHN1ZmZpeCBzbyB0aGUgdHdvIHN0YXkgYXBhcnQuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxucWRuYXByby10YWJsZS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLy8gVGhlIHN0cmlwIGlzIGZpeGVkIGhlaWdodCBhbmQgdGhlIHRhYmxlIHRha2VzIHRoZSByZXN0LCBzbyBhIHRhYmxlXG4gICAgLy8gaW5zaWRlIGEgZml4ZWQtaGVpZ2h0IHBhZ2UgYXJlYSBzY3JvbGxzIGludGVybmFsbHkgaW5zdGVhZCBvZiBwdXNoaW5nXG4gICAgLy8gdGhlIHN0cmlwIG9mZiBzY3JlZW4uXG4gICAgbWluLWhlaWdodDogMDtcblxuICAgID4gcWRuYXByby10YWJsZSB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgIH1cbn1cblxuLy8g4pSA4pSAIFN0cmlwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyDilIDilIAgVGhlIHN0cmlwLCBhbmQgdGhlIHR3byBiYXJzIGluc2lkZSBpdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyBUaGUgbm9ybWFsIGJhciBhbmQgdGhlIHNlbGVjdGlvbiBiYXIgYXJlIEJPVEggcGxhY2VkIGluIHJvdyAxIC8gY29sdW1uIDEgb2Zcbi8vIHRoZSBzYW1lIGdyaWQuIFRoYXQgbWFrZXMgdGhlIHN0cmlwIGFzIHRhbGwgYXMgdGhlIHRhbGxlciBvZiB0aGUgdHdvIGF0IGFsbFxuLy8gdGltZXMsIHNvIHN3aXRjaGluZyBiZXR3ZWVuIHRoZW0gY2Fubm90IG1vdmUgdGhlIHRhYmxlIGJ5IGEgcGl4ZWwg4oCUIHdoaWNoIGlzXG4vLyB0aGUgZW50aXJlIHJlcXVpcmVtZW50OiBhIHRhYmxlIHRoYXQgc2hpZnRzIHRoZSBtb21lbnQgeW91IHRpY2sgYSByb3cgaGFuZHNcbi8vIHlvdSBhIG1pc2NsaWNrLiBbS2ltIDA5LjA4LjIwMjZdXG4vL1xuLy8gYGhpZGRlbmAgYWxvbmUgd291bGQgdGFrZSB0aGUgYmFyIG91dCBvZiB0aGUgZmxvdyBhbmQgdGhlIGdyaWQgd291bGQgc2hyaW5rXG4vLyBiYWNrLCBzbyB0aGUgaGlkZGVuIGJhciBrZWVwcyBpdHMgc3BhY2UgYW5kIGlzIG1hZGUgaW52aXNpYmxlIGluc3RlYWQuXG5cbi5xZG5hcHJvLXRhYmxlLXdyYXBwZXJfX2hlYWRlciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAvLyA2cHggaW5zdGVhZCBvZiA4cHgsIHRvZ2V0aGVyIHdpdGggdGhlIDI4cHggYnV0dG9ucy4gVGhlIHN0cmlwIGhhcyBubyBoZWlnaHQgb2ZcbiAgICAvLyBpdHMgb3duOiBpdCBpcyB3aGF0ZXZlciB0aGUgYnV0dG9ucyBwbHVzIHRoaXMgcGFkZGluZyBjb21lIHRvLCBzbyB0aGlzIGlzIHRoZVxuICAgIC8vIG90aGVyIGhhbGYgb2YgbWFraW5nIHRoZSBoZWFkZXIgc2hvcnRlci4gW0tpbSAwOS4wOC4yMDI2XVxuICAgIC8vIDRweCBpbnN0ZWFkIG9mIDY6IHRoZSB0d28gcGl4ZWxzIG1vdmVkIGludG8gdGhlIGJ1dHRvbnMsIHdoaWNoIHdlbnQgZnJvbSAyOFxuICAgIC8vIHRvIDMyLiBTYW1lIHN0cmlwIGhlaWdodCwgYmlnZ2VyIHRhcmdldC4gW0tpbSAwOS4wOC4yMDI2XVxuICAgIHBhZGRpbmc6IDRweCAxNnB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZjBmMWYyKTtcblxuICAgIC8vIFRIRSBIRUlHSFQgT0YgQSBCQVIgSVMgT05FIE5VTUJFUiwgYW5kIGJvdGggYmFycyBhcmUgaGVsZCB0byBpdC5cbiAgICAvL1xuICAgIC8vIFRoZSBncmlkIGFscmVhZHkgbWFrZXMgdGhlIHN0cmlwIGFzIHRhbGwgYXMgdGhlIHRhbGxlciBiYXIsIGJ1dCB0aGF0IGlzIGFcbiAgICAvLyBNT01FTlRBUlkgbWF4aW11bTogdGhlIHNlbGVjdGlvbiBiYXIncyBvd24gaGVpZ2h0IGRlcGVuZHMgb24gYnV0dG9ucyB0aGF0XG4gICAgLy8gb25seSBhcHBlYXIgb25jZSBzb21ldGhpbmcgaXMgc2VsZWN0ZWQsIHNvIGEgdGFsbGVyIGJ1dHRvbiBhcHBlYXJpbmcgbWFkZVxuICAgIC8vIHRoZSBzdHJpcCBncm93IGFueXdheSDigJQgdGhlIGp1bXAgd2FzIGJhY2suIFtLaW0gMDkuMDguMjAyNl1cbiAgICAvL1xuICAgIC8vIDMycHgsIGJlY2F1c2UgdGhhdCBpcyB3aGF0IGV2ZXJ5dGhpbmcgaW4gdGhlIHN0cmlwIGFjdHVhbGx5IGlzOiB0aGUgYnV0dG9uc1xuICAgIC8vIGFyZSBgc251Z2AgKDMyKSwgYW5kIHRoZSB2aWV3IHN3aXRjaCBpbiBpdHMgYHRpbGVzYCBza2luIGhhcyBubyB0cmFja1xuICAgIC8vIHBhZGRpbmcuIFRoaXMgZmxvb3Igc3Rvb2QgYXQgMzQgZm9yIGEgZGF5IG9uIHRoZSB3cm9uZ1xuICAgIC8vIGFzc3VtcHRpb24gdGhhdCB0aGUgc3dpdGNoIGNhcnJpZWQgMsOXM3B4IG9mIHRyYWNrIOKAlCBtZWFzdXJlZCAwOS4wOC4yMDI2LCBpdFxuICAgIC8vIGRvZXMgbm90LCBhbmQgdGhvc2UgNnB4IHdlcmUgYWlyIG5vdGhpbmcgdXNlZC4gQm90aCBiYXJzIGNhcnJ5IHRoZSBmbG9vciwgc29cbiAgICAvLyBuZWl0aGVyIGNhbiBiZSBzaG9ydGVyIHRoYW4gdGhlIG90aGVyIHdoYXRldmVyIGEgcGFnZSBoYW5ncyBpblxuICAgIC8vIHNsb3Q9XCJzZWxlY3Rpb25cIi4gQSBjb250cm9sIFRBTExFUiB0aGFuIHRoaXMgc3RpbGwgcHVzaGVzIHRoZSBzdHJpcCBvdXQ7IHRoZVxuICAgIC8vIGZsb29yIHByZXZlbnRzIHNocmlua2luZywgbm90IGdyb3dpbmcsIHdoaWNoIGlzIHdoeSB0aGUgYnVpbHQtaW4gYnV0dG9ucyBhbmRcbiAgICAvLyB0aGUgcGFnZSdzIGJ1bGsgYnV0dG9ucyBhcmUgYWxsIGhlbGQgdG8gdGhlIHNhbWUgc2l6ZS5cbiAgICAtLXF0dy1iYXItaGVpZ2h0OiAzMnB4O1xufVxuXG4ucWRuYXByby10YWJsZS13cmFwcGVyX19iYXIge1xuICAgIGdyaWQtYXJlYTogMSAvIDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1pbi1oZWlnaHQ6IHZhcigtLXF0dy1iYXItaGVpZ2h0KTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTJzIGVhc2U7XG5cbiAgICAmW2hpZGRlbl0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyAgICAgIC8vIGJlYXQgdGhlIGJyb3dzZXIgZGVmYXVsdCBzbyBpdCBrZWVwcyBpdHMgc3BhY2VcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG59XG5cbi8vIFRoZSBjaGVjay1hbGwgZ2x5cGggaW4gZnJvbnQgb2YgXCIzIGdlc2VsZWN0ZWVyZFwiLlxuLnFkbmFwcm8tdGFibGUtd3JhcHBlcl9fc2VsZWN0aW9uLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbn1cblxuW2RhdGEtcXR3LXNlbGVjdGlvbi1jb3VudF0ge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzM3NDE1MSk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLy8gU2l0cyBkaXJlY3RseSBhZnRlciBcIk4gZ2VzZWxlY3RlZXJkXCIgaW4gdGhlIGxlZnQgZ3JvdXAsIHdpdGggYSBnYXAgdGhhdCByZWFkcyBhc1xuLy8gXCJ0aGVzZSBiZWxvbmcgdG8gdGhhdCBzZW50ZW5jZVwiIHdpdGhvdXQgZ2x1aW5nIHRoZW0gdG9nZXRoZXIuIFtLaW0gMTAuMDguMjAyNl1cbi5xZG5hcHJvLXRhYmxlLXdyYXBwZXJfX3NlbGVjdGlvbi1hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cblxuLy8g4pSA4pSAIFRoZSBidWxrIGJ1dHRvbnMgYXJyaXZlIG9uZSBieSBvbmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gRmFzdGVyIGFuZCBzaG9ydGVyIHRoYW4gdGhlIHJvd3MgaW4gdGhlIHRhYmxlOiB0aGlzIGlzIGEgc3RyaXAgb2YgZm91ciBvciBmaXZlXG4vLyBidXR0b25zLCBub3QgYSBwYWdlIG9mIHJlY29yZHMsIGFuZCB5b3UgYXJlIGFscmVhZHkgbG9va2luZyBzdHJhaWdodCBhdCBpdC5cbi8vIDEyMG1zIGVhY2gsIDIwbXMgYXBhcnQsIGFuZCB0aGV5IGNvbWUgZnJvbSBzbGlnaHRseSBiZWxvdy1yaWdodCBzbyB0aGUgd2hvbGVcbi8vIGdyb3VwIHJlYWRzIGFzIG9uZSBtb3ZlbWVudCByYXRoZXIgdGhhbiBmaXZlIHNlcGFyYXRlIG9uZXMuXG4vL1xuLy8gSlMgcmUtdHJpZ2dlcnMgdGhpcyBvbiBldmVyeSBlbnRyeSAocmVtb3ZlIGNsYXNzIOKGkiByZWZsb3cg4oaSIGFkZCBjbGFzcyksXG4vLyBiZWNhdXNlIHRoZSBiYXIgaXMgbmV2ZXIgZGlzcGxheTpub25lIGFuZCB0aGUgYnJvd3NlciB3b3VsZCBvdGhlcndpc2UgcnVuIHRoZVxuLy8gYW5pbWF0aW9uIG9uY2UsIGF0IHBhZ2UgbG9hZC4gR29pbmcgZnJvbSAzIHNlbGVjdGVkIHRvIDIgZG9lcyBOT1QgcmVwbGF5IGl0LlxuXG4kdHctYnVsay1kdXJhdGlvbiA6IDEyMG1zO1xuJHR3LWJ1bGstc3RlcCAgICAgOiAyMG1zO1xuJHR3LWJ1bGstZWFzZSAgICAgOiBjdWJpYy1iZXppZXIoMC4yMiwgMC42MSwgMC4zNiwgMSk7XG5cbkBrZXlmcmFtZXMgcWRuYXByby10YWJsZS13cmFwcGVyLWJ1bGstaW4ge1xuICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg0cHgsIDJweCkgc2NhbGUoMC45NCk7IH1cbiAgICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBub25lOyB9XG59XG5cbltkYXRhLXF0dy1iYXI9XCJzZWxlY3Rpb25cIl0gLmlzLWVudGVyaW5nIHtcbiAgICBhbmltYXRpb246IHFkbmFwcm8tdGFibGUtd3JhcHBlci1idWxrLWluICR0dy1idWxrLWR1cmF0aW9uICR0dy1idWxrLWVhc2UgYm90aDtcbiAgICBhbmltYXRpb24tZGVsYXk6IGNhbGModmFyKC0tcXR3LWVudGVyLWksIDApICogI3skdHctYnVsay1zdGVwfSk7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgW2RhdGEtcXR3LWJhcj1cInNlbGVjdGlvblwiXSAuaXMtZW50ZXJpbmcgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLy8gTGFiZWwsIGNvdW50IGFuZCB0aGUgKyBhbGwgbGl2ZSBvbiB0aGUgbGVmdC4gVGhlICsgZ2V0cyBhIGxpdHRsZSBhaXIgc28gaXRcbi8vIHJlYWRzIGFzIGl0cyBvd24gYWN0aW9uIGFuZCBub3QgYXMgcGFydCBvZiB0aGUgY291bnQuIFtLaW0gMDkuMDguMjAyNl1cbi5xZG5hcHJvLXRhYmxlLXdyYXBwZXJfX2xlZnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICA+IC5xZG5hcHJvLWJ1dHRvbiB7IG1hcmdpbi1sZWZ0OiA2cHg7IH1cbn1cblxuLnFkbmFwcm8tdGFibGUtd3JhcHBlcl9fcmlnaHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLy8gSG9zdC1zdXBwbGllZCBidXR0b25zIChzbG90PVwiYWN0aW9uc1wiKSBzaXQgbGVmdCBvZiB0aGUgYnVpbHQtaW4gb25lcyBhbmQgYXJlXG4vLyBzZXBhcmF0ZWQgZnJvbSB0aGVtIGJ5IHRoZWlyIG93biBnYXAsIHNvIGFuIGV4cG9ydCBidXR0b24gbmV2ZXIgcmVhZHMgYXMgcGFydFxuLy8gb2YgdGhlIHZpZXcgdG9nZ2xlLlxuLnFkbmFwcm8tdGFibGUtd3JhcHBlcl9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuXG4gICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgIH1cbn1cblxuLnFkbmFwcm8tdGFibGUtd3JhcHBlcl9fbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzM3NDE1MSk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vLyBUaGUgY291bnQgaXMgcGxhaW4gbXV0ZWQgdGV4dCBuZXh0IHRvIHRoZSBsYWJlbCwgbm90IGEgcGlsbC4gS2ltIDA5LjA4LjIwMjY6XG4vLyB0aGUgZ3JleSBiYWRnZSByZWFkIGFzIGEgc3RhdHVzIG1hcmtlciwgYXMgaWYgdGhlIDExIG1lYW50IHNvbWV0aGluZyBoYWRcbi8vIGhhcHBlbmVkLiBJdCBpcyBqdXN0IGhvdyBtYW55IHJvd3MgdGhlcmUgYXJlLCBzbyBpdCBpcyBzZXQgbGlrZSBhIG51bWJlcjogc2FtZVxuLy8gc2l6ZSBhcyB0aGUgbGFiZWwsIGxpZ2h0ZXIgd2VpZ2h0LCBtdXRlZCBjb2xvdXIsIGFuZCBhIGxpdHRsZSBhaXIgaW4gZnJvbnQuXG4vLyBBIGJhZGdlIGVhcm5zIGl0cyBjb250YWluZXIgd2hlbiBpdCBjb21wZXRlcyBmb3IgYXR0ZW50aW9uIChhbiB1bnJlYWQgY291bnQpO1xuLy8gdGhpcyBvbmUgbmV2ZXIgZG9lcy5cbltkYXRhLXF0dy1jb3VudF0ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiAycHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDApO1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG5cbiAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi8vIFRoZSBoYWlybGluZXMgYmV0d2VlbiB0aGUgZ3JvdXBzIG9uIHRoZSByaWdodC4gVGhlIGhlaWdodCBjb21lcyBmcm9tIHRoZVxuLy8gZGl2aWRlcidzIG93biBgbGVuZ3RoYCBhdHRyaWJ1dGU7IG9ubHkgdGhlIGFpciBhcm91bmQgaXQgaXMgZGVjaWRlZCBoZXJlLlxuLnFkbmFwcm8tdGFibGUtd3JhcHBlcl9fZGl2aWRlciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWFyZ2luOiAwIDRweDtcbn1cblxuLy8g4pSA4pSAIFZpZXcgc3dpdGNoIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vIFRoZSBzd2l0Y2ggaXMgYSBxZG5hcHJvLXNlZ21lbnQgKHNpemU9c21hbGwsIGljb24tb25seSBpdGVtcykgYW5kIGJyaW5ncyBpdHNcbi8vIG93biBsb29rIGFuZCBpdHMgb3duIHNsaWRpbmcgYmxvY2suIE5vdGhpbmcgaXMgcmVzdHlsZWQgaGVyZSDigJQgdGhhdCB3b3VsZCBiZVxuLy8gcGFpbnRpbmcgb3ZlciBhbm90aGVyIGNvbXBvbmVudC4gVGhlIG9ubHkgdGhpbmcgdGhpcyBmaWxlIGRlY2lkZXMgaXMgdGhlIGFpclxuLy8gYXJvdW5kIGl0OiB0aGUgc2VnbWVudCBpcyAzNHB4IHRhbGwgKDI4cHggaXRlbSArIDLDlzNweCB0cmFjayBwYWRkaW5nKSBhZ2FpbnN0XG4vLyB0aGUgMjhweCBvZiB0aGUgKyBidXR0b24gbmV4dCB0byBpdCwgc28gaXQgZ2V0cyBhIGhhaXIgbW9yZSByb29tIG9uIHRoZSBsZWZ0LlxuXG4ucWRuYXByby10YWJsZS13cmFwcGVyX19yaWdodCA+IHFkbmFwcm8tc2VnbWVudCB7XG4gICAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cblxuLy8g4pSA4pSAIERlbnNpdHkgYnV0dG9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vIEl0IHN0YXlzIHByZXNzZWQgd2hpbGUgdGhlIHJvd3MgYXJlIHJvb215LiBxZG5hcHJvLWJ1dHRvbiBvbmx5IHBhaW50cyBpdHNcbi8vIGBhY3RpdmVgIHN0YXRlIGZvciB0eXBlPVwic2Vjb25kYXJ5XCIgKC5idXR0b24tc2Vjb25kYXJ5LmJ1dHRvbi1hY3RpdmUgaW5cbi8vIF9idXR0b24uc2NzcykgYW5kIHRoaXMgaXMgYSBzdWJ0bGUgaWNvbiBidXR0b24sIHNvIHRoZSBwcmVzc2VkIGxvb2sgaXMgZGVmaW5lZFxuLy8gaGVyZSDigJQgc2NvcGVkIHRvIHRoaXMgY29tcG9uZW50LCBhbmQgaHVuZyBvbiB0aGUgY29tcG9uZW50J3Mgb3duIGBhY3RpdmVgXG4vLyBhdHRyaWJ1dGUgcmF0aGVyIHRoYW4gYSBwYWdlIGNsYXNzLCBzbyB0aGUgc3RhdGUgc3RheXMgd2hlcmUgaXQgYmVsb25ncy5cbi8vIHFkbmEtYnV0dG9uLmpzIHJld3JpdGVzIGNsYXNzTmFtZSBvbiBldmVyeSByZW5kZXIsIGhlbmNlIHRoZSBjbGFzcyBzZWxlY3RvciBvblxuLy8gdGhlIGhvc3QgYW5kIG5vdCBvbiB0aGUgYXR0cmlidXRlLlxuXG4ucWRuYXByby10YWJsZS13cmFwcGVyX19oZWFkZXIge1xuICAgIFtkYXRhLXF0dy1hY3Rpb249XCJkZW5zaXR5XCJdLnFkbmFwcm8tYnV0dG9uLmJ1dHRvbi1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MCwgI2U2ZTlmZik7XG4gICAgICAgIGNvbG9yOiAgICAgIHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG4gICAgfVxuXG4gICAgLy8gV2l0aG91dCB0aGlzIHRoZSBydWxlIGFib3ZlIGFsc28gd2lucyBkdXJpbmcgaG92ZXIgKGl0IG91dHJhbmtzXG4gICAgLy8gLmJ1dHRvbi1zdWJ0bGU6aG92ZXIpIGFuZCB0aGUgcHJlc3NlZCBidXR0b24gd291bGQgZ28gZGVhZCB1bmRlciB0aGUgbW91c2UuXG4gICAgW2RhdGEtcXR3LWFjdGlvbj1cImRlbnNpdHlcIl0ucWRuYXByby1idXR0b24uYnV0dG9uLWFjdGl2ZTpob3Zlcjpub3QoLmJ1dHRvbi1kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS0xMDAsICNjMGM1ZmYpO1xuICAgIH1cbn1cblxuLy8g4pSA4pSAIENvbHVtbi1zZXR0aW5ncyBwYW5lbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vIE5vdGlvbidzIFwicHJvcGVydGllc1wiIHBhbmVsOiBvbmUgbGlzdCBvZiBldmVyeSBjb2x1bW4sIHNwbGl0IGJ5IGl0cyBPV05cbi8vIGN1cnJlbnQgdmlzaWJpbGl0eSBpbnRvIFwiWmljaHRiYWFyXCIgLyBcIlZlcmJvcmdlblwiLCBhIHNlYXJjaCBmaWVsZCBvbiB0b3AsXG4vLyBcIlN0YW5kYWFyZCBoZXJzdGVsbGVuXCIgYXQgdGhlIGJvdHRvbS4gU2VlIHFkbmEtdGFibGUtd3JhcHBlci5qcydzIGZpbGUtbGV2ZWxcbi8vIGRvY2Jsb2NrIGZvciB0aGUgZnVsbCBkZXNpZ24gYW5kIHRoZSByZXVzZSBkZWNpc2lvbnMuIFtLaW0ncyBkZXNpZ24sXG4vLyBhcHByb3ZlZCAwOS4wOC4yMDI2XVxuLy9cbi8vIFRoZSBwb3BvdmVyIGRlZmF1bHQgKDI4MHB4IHdpZGUsIDZweCBwYWRkaW5nIOKAlCBzaXplZCBmb3IgYSBwbGFpbiBtZW51LCBzZWVcbi8vIHRoZSBxZG5hLXBvcG92ZXJzIHNraWxsIHBvaW50IDEpIGRvZXMgbm90IGZpdCBhIHBhbmVsIHdpdGggaXRzIG93biBzZWFyY2hcbi8vIGZpZWxkIGFuZCBmb290ZXIsIHNvIHRoZSBjaHJvbWUgbW92ZXMgb250byB0aGUgaW5uZXIgc2VjdGlvbnMgaW5zdGVhZCDigJRcbi8vIHRoYXQgYWxzbyBsZXRzIHRoZSBmb290ZXIncyBib3JkZXIgcnVuIGVkZ2UtdG8tZWRnZS5cbnFkbmFwcm8tcG9wb3ZlcltkYXRhLXF0dy1jb2x1bW5zLXBhbmVsXSB7XG4gICAgLy8gMzYwIGluc3RlYWQgb2YgMzIwOiBhIGNvbHVtbiBuYW1lIGxpa2UgXCJUZWxlZm9vbm51bW1lclwiIHBsdXMgYSBncmlwIGFuZCBhblxuICAgIC8vIGV5ZSBsZWZ0IGFsbW9zdCBubyBhaXIuIFtLaW0gMDkuMDguMjAyNiwgXCJoZXQgaXMgZWVuIGJlZXRqZSBrcmFwXCJdXG4gICAgd2lkdGg6IG1pbig5MnZ3LCAzNjBweCk7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLnF0dy1jb2xwYW5lbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC8vIFRoZSA0MjBweCBjYXAgd2FzIHRoZSByZWFsIHJlYXNvbiBpdCBmZWx0IGNyYW1wZWQ6IG5pbmUgY29sdW1ucyBzY3JvbGxlZFxuICAgIC8vIGluc2lkZSBhIHNob3J0IGJveCB3aGlsZSB0aGUgc2NyZWVuIGhhZCByb29tIHRvIHNwYXJlLiBJdCBmb2xsb3dzIHRoZSB3aW5kb3dcbiAgICAvLyBub3cgYW5kIG9ubHkgc3RvcHMgYXQgNzIwIHNvIGl0IG5ldmVyIGJlY29tZXMgYSBmdWxsLWhlaWdodCB3YWxsIG9mIG5hbWVzLlxuICAgIG1heC1oZWlnaHQ6IG1pbig4MHZoLCA3MjBweCk7XG59XG5cbi5xdHctY29scGFuZWxfX3RpdGxlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBwYWRkaW5nOiAxMHB4IDEycHggNHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWY0ZCk7XG59XG5cbi5xdHctY29scGFuZWxfX3RpdGxlICsgcWRuYXByby1pbnB1dCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMCAxMnB4IDhweDtcbn1cblxuLnF0dy1jb2xwYW5lbF9fbGlzdCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDRweCA2cHg7XG59XG5cbi5xdHctY29scGFuZWxfX3NlY3Rpb24gKyAucXR3LWNvbHBhbmVsX19zZWN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiA2cHg7XG59XG5cbi5xdHctY29scGFuZWxfX3NlY3Rpb24tbGFiZWwge1xuICAgIHBhZGRpbmc6IDZweCA2cHggMnB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7XG5cbiAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi5xdHctY29scGFuZWxfX3JvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG5cbiAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwLCAjZjBmMWYyKTsgfVxuXG4gICAgLy8gU2FtZSB2aXN1YWwgbGFuZ3VhZ2UgYXMgcWRuYXByby10YWJsZSdzIG93biBoZWFkZXIgZHJhZyAodGFibGUuc2Nzcykg4oCUXG4gICAgLy8gYSB2ZXJ0aWNhbCBjb3VudGVycGFydCwgdG9wL2JvdHRvbSBpbnN0ZWFkIG9mIGxlZnQvcmlnaHQuXG4gICAgJi5pcy1kcmFnZ2luZyB7IG9wYWNpdHk6IDAuNDsgfVxuICAgICYuZHJvcC1iZWZvcmUgeyBib3gtc2hhZG93OiBpbnNldCAwIDJweCAwIDAgdmFyKC0tYy1hY3Rpb24tNTAwKTsgfVxuICAgICYuZHJvcC1hZnRlciAgeyBib3gtc2hhZG93OiBpbnNldCAwIC0ycHggMCAwIHZhcigtLWMtYWN0aW9uLTUwMCk7IH1cblxuICAgICYuaXMtZHJhZ2dhYmxlIHsgY3Vyc29yOiBncmFiOyB9XG4gICAgJi5pcy1kcmFnZ2FibGUuaXMtZHJhZ2dpbmcgeyBjdXJzb3I6IGdyYWJiaW5nOyB9XG59XG5cbi5xdHctY29scGFuZWxfX2hhbmRsZSxcbi5xdHctY29scGFuZWxfX2hhbmRsZS1zcGFjZXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbn1cblxuLnF0dy1jb2xwYW5lbF9faGFuZGxlIHtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCwgI2E2YWFiMyk7XG59XG5cbi5xdHctY29scGFuZWxfX2xhYmVsIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzM3NDE1MSk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucXR3LWNvbHBhbmVsX19leWUge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIHFkbmFwcm8taWNvbiB7IHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7IH1cblxuICAgICY6aG92ZXIgICAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7IGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzM3NDE1MSk7IH1cbiAgICAmOmZvY3VzLXZpc2libGUgeyBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYy1hY3Rpb24tNTAwKTsgb3V0bGluZS1vZmZzZXQ6IDFweDsgfVxufVxuXG4ucXR3LWNvbHBhbmVsX19sb2NrIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS00MDAsICNhNmFhYjMpO1xufVxuXG4ucXR3LWNvbHBhbmVsX19mb290ZXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZjBmMWYyKTtcbn1cblxuLnF0dy1jb2xwYW5lbF9fcmVzZXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogNHB4IDZweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuXG4gICAgcWRuYXByby1pY29uIHsgd2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsgfVxuXG4gICAgJjpob3ZlciAgICAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAsICNlNmU5ZmYpOyB9XG4gICAgJjpmb2N1cy12aXNpYmxlIHsgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtYWN0aW9uLTUwMCk7IG91dGxpbmUtb2Zmc2V0OiAxcHg7IH1cbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL3RhZy9fdGFnLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi50ZXh0LWgxIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogNjBweDtcbiAgbGluZS1oZWlnaHQ6IDcycHg7XG59XG5cbi50ZXh0LWgyIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgbGluZS1oZWlnaHQ6IDU2cHg7XG59XG5cbi50ZXh0LWgzIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XG59XG5cbi50ZXh0LWg0IHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgbGluZS1oZWlnaHQ6IDQ0cHg7XG59XG5cbi50ZXh0LWg1IHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XG59XG5cbi50ZXh0LWg2IHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG5cbi50ZXh0LWJvZHkteHMge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cblxuLnRleHQtYm9keS1zbSB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4udGV4dC1ib2R5LW1kIHtcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG5cbi50ZXh0LWJvZHktbGcge1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbn1cblxuLnRleHQtYm9keS14bCB7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xufVxuXG4ucWRuYXByby10YWcge1xuICAtLXRhZy1iZzogdmFyKC0tYy1ncmV5LTUwKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAtLXRhZy10ZXh0OiAjMWUxZjIwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBnYXA6IDRweDtcbiAgcGFkZGluZzogMCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRhZy1iZyk7XG4gIGNvbG9yOiB2YXIoLS10YWctdGV4dCk7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2U7XG59XG4ucWRuYXByby10YWcgLnRhZy1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby10YWcgLnRhZy1pY29uIHN2ZyB7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5xZG5hcHJvLXRhZyAudGFnLWxhYmVsIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4vKiBBbmltYXRlZCBsZWFkaW5nIGljb24gKGxvdHRpZS1uYW1lIC8gbG90dGllLXNyYykuIEEgaGFpciBsYXJnZXIgdGhhbiB0aGVcbiAgIHN0YXRpYyBpY29uOiBhIExvdHRpZSdzIGFydHdvcmsgcmFyZWx5IGZpbGxzIGl0cyBvd24gZnJhbWUgZWRnZSB0byBlZGdlLFxuICAgc28gYXQgaWNvbi1zaXplIGl0IHJlYWRzIHNtYWxsZXIgdGhhbiBpdHMgc3RhdGljIHNpYmxpbmcuICovXG4ucWRuYXByby10YWcgLnRhZy1sb3R0aWUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1zaXplLWJpZyB7XG4gIGhlaWdodDogMjhweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5xZG5hcHJvLXRhZy50YWctc2l6ZS1iaWcgLnRhZy1pY29uIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbn1cbi5xZG5hcHJvLXRhZy50YWctc2l6ZS1iaWcgLnRhZy1sb3R0aWUge1xuICAtLXFsLXNpemU6IDE4cHg7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG59XG4ucWRuYXByby10YWcudGFnLXNpemUtc21hbGwge1xuICBoZWlnaHQ6IDI0cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDAgOHB4O1xufVxuLnFkbmFwcm8tdGFnLnRhZy1zaXplLXNtYWxsIC50YWctaWNvbiB7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG59XG4ucWRuYXByby10YWcudGFnLXNpemUtc21hbGwgLnRhZy1sb3R0aWUge1xuICAtLXFsLXNpemU6IDE2cHg7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG4vKiBSZW1vdmFibGUg4pyVIChzZWxlY3Rpb24gdG9rZW5zIC8gcmVtb3ZhYmxlIHBpbGxzKS4gKi9cbi5xZG5hcHJvLXRhZy50YWctcmVtb3ZhYmxlIHtcbiAgcGFkZGluZy1yaWdodDogNHB4O1xufVxuLnFkbmFwcm8tdGFnIC50YWctcmVtb3ZlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG9wYWNpdHk6IDAuNjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLCBvcGFjaXR5IDEyMG1zIGVhc2U7XG59XG4ucWRuYXByby10YWcgLnRhZy1yZW1vdmU6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4ucWRuYXByby10YWcgLnRhZy1yZW1vdmU6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG59XG4ucWRuYXByby10YWcgLnRhZy1yZW1vdmUgcWRuYXByby1pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tdGFnIC50YWctcmVtb3ZlIHFkbmFwcm8taWNvbiBzdmcge1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4ucWRuYXByby10YWcudGFnLXNpemUtYmlnIC50YWctcmVtb3ZlIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbn1cbi5xZG5hcHJvLXRhZy50YWctc2l6ZS1iaWcgLnRhZy1yZW1vdmUgcWRuYXByby1pY29uIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbn1cbi5xZG5hcHJvLXRhZy50YWctc2l6ZS1zbWFsbCAudGFnLXJlbW92ZSB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG4ucWRuYXByby10YWcudGFnLXNpemUtc21hbGwgLnRhZy1yZW1vdmUgcWRuYXByby1pY29uIHtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbn1cbi5xZG5hcHJvLXRhZy50YWctZGlzYWJsZWQgLnRhZy1yZW1vdmUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLXRhZy50YWctY29sb3ItZ3JleSB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtZ3JleS1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAtZ3JleS1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1ncmV5LXRleHQpO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1ncmV5LTIge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLWdyZXktMi1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAtZ3JleS0yLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLWdyZXktMi10ZXh0KTtcbn1cbi5xZG5hcHJvLXRhZy50YWctY29sb3ItcmVkIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1yZWQtYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLXJlZC1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1yZWQtdGV4dCk7XG59XG4ucWRuYXByby10YWcudGFnLWNvbG9yLXJlZC0yIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1yZWQtMi1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAtcmVkLTItaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtcmVkLTItdGV4dCk7XG59XG4ucWRuYXByby10YWcudGFnLWNvbG9yLXllbGxvdyB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAteWVsbG93LWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC15ZWxsb3ctaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAteWVsbG93LXRleHQpO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1jb2xvci15ZWxsb3ctMiB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAteWVsbG93LTItYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLXllbGxvdy0yLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLXllbGxvdy0yLXRleHQpO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1ncmVlbiB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtZ3JlZW4tYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLWdyZWVuLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLWdyZWVuLXRleHQpO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1ncmVlbi0yIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1ncmVlbi0yLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1ncmVlbi0yLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLWdyZWVuLTItdGV4dCk7XG59XG4ucWRuYXByby10YWcudGFnLWNvbG9yLWJsdWUge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLWJsdWUtYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLWJsdWUtaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtYmx1ZS10ZXh0KTtcbn1cbi5xZG5hcHJvLXRhZy50YWctY29sb3ItYmx1ZS0yIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1ibHVlLTItYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLWJsdWUtMi1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1ibHVlLTItdGV4dCk7XG59XG4ucWRuYXByby10YWcudGFnLWNvbG9yLWJyaWdodC1ibHVlIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtdGV4dCk7XG59XG4ucWRuYXByby10YWcudGFnLWNvbG9yLWJyaWdodC1ibHVlLTIge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLTItYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLTItaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi10ZXh0KTtcbn1cbi5xZG5hcHJvLXRhZy50YWctY29sb3ItcGluayB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtcGluay1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAtcGluay1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1waW5rLXRleHQpO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1kYXJrLXBpbmsge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLWRhcmstcGluay1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAtZGFyay1waW5rLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLWRhcmstcGluay10ZXh0KTtcbn1cbi5xZG5hcHJvLXRhZy50YWctY29sb3ItcHVycGxlIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1wdXJwbGUtYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLXB1cnBsZS1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1wdXJwbGUtdGV4dCk7XG59XG4ucWRuYXByby10YWcudGFnLWNvbG9yLWRhcmstcHVycGxlIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1kYXJrLXB1cnBsZS1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAtZGFyay1wdXJwbGUtaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtZGFyay1wdXJwbGUtdGV4dCk7XG59XG4vKiBDT0xPUjogYWN0aW9uIOKAlCB0aGUgb2RkIG9uZSBvdXQgWzE2LjA4LjIwMjZdLiBUaGUgc2l4dGVlbiBjb2xvdXJzIGFib3ZlIGFyZVxuICAgcGFzdGVsIHN1cmZhY2VzIHdpdGggZGFyayB0ZXh0LCBtYWRlIGZvciBMQUJFTExJTkcgc29tZXRoaW5nLiBUaGlzIG9uZSBpcyB0aGVcbiAgIHNvbGlkIGJyYW5kIGJsdWUgd2l0aCB3aGl0ZSB0ZXh0OiB0aGUgQ0hPU0VOIHN0YXRlIG9mIGEgZmlsdGVyIGNoaXAsIHdoaWNoIHRoZVxuICAgcGFsZXR0ZSBzaW1wbHkgaGFkIG5vIGFuc3dlciBmb3IuIEJ1aWx0IHdpdGggdmFyaWFudD1vdXRsaW5lIGJlbG93LCBmb3IgdGhlXG4gICBjYXRlZ29yeSBjaGlwcyBpbiB0aGUgc3RpY2tlciBzaGVldC4gKi9cbi5xZG5hcHJvLXRhZy50YWctY29sb3ItYWN0aW9uIHtcbiAgLS10YWctYmc6IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWFjdGlvbi02MDApO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbn1cblxuLyogVkFSSUFOVDogb3V0bGluZSDigJQgd2hpdGUgc3VyZmFjZSB3aXRoIGEgYm9yZGVyIGluc3RlYWQgb2YgYSBmaWxsZWQgY2hpcFxuICAgWzE2LjA4LjIwMjZdLiBUaGUgVU5jaG9zZW4gc3RhdGUgb2YgYSBmaWx0ZXIgY2hpcC4gQSByb3cgb2YgZmlsbGVkIHBhc3RlbFxuICAgY2hpcHMgYWxsIHJlYWQgYXMgXCJzZWxlY3RlZFwiLCB3aGljaCBpcyBleGFjdGx5IHdoYXQgYSBmaWx0ZXIgcm93IG11c3Qgbm90IGRvLFxuICAgc28gdGhpcyB3YXMgdGhlIG1pc3NpbmcgaGFsZiBvZiB0aGUgcGFpci5cbiAgIFRoZSBib3JkZXIgc2l0cyBvbiAtLXRhZy1ib3JkZXIgc28gYSBjb2xvdXIgY2FuIG1vdmUgaXQgYWxvbmc7IGJ5IGRlZmF1bHQgaXRcbiAgIGZvbGxvd3MgdGhlIGNhcmQgYm9yZGVyLiBgYmFja2dyb3VuZGAgYW5kIGBjb2xvcmAga2VlcCBjb21pbmcgZnJvbSB0aGUgc2FtZVxuICAgLS10YWctYmcvLS10YWctdGV4dCBhcyBldmVyeXdoZXJlIGVsc2UsIHNvIGhvdmVyLCBmb2N1cywgZGlzYWJsZWQgYW5kIHRoZVxuICAgZGFyay1tb2RlIGJsb2NrIGJlbG93IG5lZWQgbm8gZXh0cmEgcnVsZXMuICovXG4ucWRuYXByby10YWcudGFnLXZhcmlhbnQtb3V0bGluZSB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1ncmV5LTUwKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy10ZXh0LWJvZHkpO1xuICAtLXRhZy1ib3JkZXI6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10YWctYm9yZGVyKTtcbn1cblxuLyogVkFSSUFOVDogZ2xhc3Mg4oCUIGRvb3JzY2hpam5lbmQgV0lUIHZsYWsgbWV0IGVlbiBibHVyIFsxOS4wOC4yMDI2XS4gVm9vciBlZW5cbiAgIHRhZyBkaWUgT1AgRUVOIEZPVE8gbGlndDogZGUgY2FtcGFnbmVzdGF0dXMgb3AgZWVuIFB1bHNlLWthYXJ0LiBEb25rZXIgZ2xhc1xuICAgd2FzIGRlIGVlcnN0ZSBwb2dpbmcgZW4gbGFzIHRlIHp3YWFyIG9wIGRlIHRlZ2VsIChLaW0sIDE5LjA4LjIwMjYpOyB3aXQgZ2xhc1xuICAgbGVndCBlZW4gbGljaHRlIHdhYXMgb3ZlciBkZSBmb3RvIGluIHBsYWF0cyB2YW4gZXIgZWVuIGJsb2sgb3AgdGUgemV0dGVuLlxuICAgRGUgdGVrc3QgaXMgYmV3dXN0IHZhcigtLWMtZ3JleS05MDApIGVuIE5JRVQgLS1jLXRleHQtYm9keTogZGllIGxhYXRzdGUga2xhcHRcbiAgIGluIGRvbmtlcmUgbW9kdXMgb20gbmFhciBsaWNodGdyaWpzLCBlbiBvcCBlZW4gd2l0IHZsYWsgaXMgZGF0IG9ubGVlc2JhYXIuIERlXG4gICBncmlqc3NjaGFhbCB3b3JkdCBpbiBoZXQgZG9ua2VyZSB0aGVtYSBuaWV0IGhlcnpldCwgZHVzIGRlemUgd2FhcmRlIHN0YWF0IHZhc3RcbiAgIGluIGJlaWRlIHRoZW1hJ3Mg4oCUIG5ldCBhbHMgZGUgcGlsIHplbGYsIHdhbnQgaGlqIGxpZ3Qgb3AgZWVuIGZvdG8gZW4gbmlldCBvcFxuICAgZGUgcGFnaW5ha2xldXIuXG4gICBHbGFzcyBuZWdlZXJ0IGBjb2xvcmAuIEXDqW4gbmV1dHJhbGUgbGFhZyB3ZXJrdCBvcCBlbGtlIGZvdG8sIGxpY2h0IG9mIGRvbmtlcjtcbiAgIGRlIHN0YXR1cyBsZWVzdCBqZSBhYW4gaGV0IExBQkVMLiBEZSBrbGV1cnJlZ2VscyBoaWVyYm92ZW4gaGViYmVuIGRlemVsZmRlXG4gICBzb29ydGVsaWpraGVpZCBlbiBrb21lbiBlZXJkZXIsIGR1cyBkaXQgYmxvayB3aW50OyBoZXQgZG9ua2VyZS1tb2R1cy1ibG9rXG4gICBvbmRlcmFhbiBkaXQgYmVzdGFuZCBoZWVmdCDDqcOpbiBzZWxlY3RvciBtZWVyLCBkdXMgZ2xhc3Mgc3RhYXQgZGFhciBvcG5pZXV3LiAqL1xuLnFkbmFwcm8tdGFnLnRhZy12YXJpYW50LWdsYXNzIHtcbiAgLS10YWctYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43Mik7XG4gIC0tdGFnLWJnLWhvdmVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWdyZXktOTAwKTtcbiAgLS10YWctYm9yZGVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTUpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10YWctYm9yZGVyKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCkgc2F0dXJhdGUoMS40KTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KSBzYXR1cmF0ZSgxLjQpO1xuICAvKiBFZW4gdGFnIG9wIGVlbiBmb3RvIGRyYWFndCB6aWpuIGVpZ2VuIHNjaGFkdXc6IGRlIGZvdG8gZXJvbmRlciBrYW4gZWxrZVxuICAgICBoZWxkZXJoZWlkIGhlYmJlbiBlbiB6b25kZXIgZGl0IGxvc3QgZGUgcmFuZCBvcCBpbiBlZW4gbGljaHRlIGZvdG8uICovXG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xufVxuXG4ucWRuYXByby10YWcudGFnLWludGVyYWN0aXZlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1pbnRlcmFjdGl2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRhZy1iZy1ob3Zlcik7XG59XG4ucWRuYXByby10YWcudGFnLWludGVyYWN0aXZlOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLXRhZy50YWctaW50ZXJhY3RpdmU6Zm9jdXMtdmlzaWJsZSwgLnFkbmFwcm8tdGFnLnRhZy1pbnRlcmFjdGl2ZS5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xufVxuLnFkbmFwcm8tdGFnLnRhZy1kaXNhYmxlZCwgLnFkbmFwcm8tdGFnLnRhZy1kaXNhYmxlZC50YWctaW50ZXJhY3RpdmUge1xuICAtLXRhZy1iZzogdmFyKC0tYy1ncmV5LTUwKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtZ3JleS01MCk7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ucWRuYXByby10YWcudGFnLWRpc2FibGVkOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLXRhZy50YWctZGlzYWJsZWQuZm9yY2UtZm9jdXMsIC5xZG5hcHJvLXRhZy50YWctZGlzYWJsZWQudGFnLWludGVyYWN0aXZlOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLXRhZy50YWctZGlzYWJsZWQudGFnLWludGVyYWN0aXZlLmZvcmNlLWZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YWcudGFnLWNvbG9yLWdyZXkge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLWdyZXktYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLWdyZXktaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtZ3JleS10ZXh0KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhZy50YWctY29sb3ItZ3JleS0yIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1ncmV5LTItYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLWdyZXktMi1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1ncmV5LTItdGV4dCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YWcudGFnLWNvbG9yLXJlZCB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtcmVkLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1yZWQtaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtcmVkLXRleHQpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1yZWQtMiB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtcmVkLTItYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLXJlZC0yLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLXJlZC0yLXRleHQpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFnLnRhZy1jb2xvci15ZWxsb3cge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLXllbGxvdy1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAteWVsbG93LWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLXllbGxvdy10ZXh0KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhZy50YWctY29sb3IteWVsbG93LTIge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLXllbGxvdy0yLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC15ZWxsb3ctMi1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC15ZWxsb3ctMi10ZXh0KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhZy50YWctY29sb3ItZ3JlZW4ge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLWdyZWVuLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1ncmVlbi1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1ncmVlbi10ZXh0KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhZy50YWctY29sb3ItZ3JlZW4tMiB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtZ3JlZW4tMi1iZyk7XG4gIC0tdGFnLWJnLWhvdmVyOiB2YXIoLS1jLWNoaXAtZ3JlZW4tMi1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1ncmVlbi0yLXRleHQpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1ibHVlIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1ibHVlLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1ibHVlLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLWJsdWUtdGV4dCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YWcudGFnLWNvbG9yLWJsdWUtMiB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtYmx1ZS0yLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1ibHVlLTItaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtYmx1ZS0yLXRleHQpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1icmlnaHQtYmx1ZSB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLXRleHQpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1icmlnaHQtYmx1ZS0yIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLTItdGV4dCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YWcudGFnLWNvbG9yLXBpbmsge1xuICAtLXRhZy1iZzogdmFyKC0tYy1jaGlwLXBpbmstYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLXBpbmstaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtcGluay10ZXh0KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhZy50YWctY29sb3ItZGFyay1waW5rIHtcbiAgLS10YWctYmc6IHZhcigtLWMtY2hpcC1kYXJrLXBpbmstYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLWRhcmstcGluay1ob3Zlcik7XG4gIC0tdGFnLXRleHQ6IHZhcigtLWMtY2hpcC1kYXJrLXBpbmstdGV4dCk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YWcudGFnLWNvbG9yLXB1cnBsZSB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtcHVycGxlLWJnKTtcbiAgLS10YWctYmctaG92ZXI6IHZhcigtLWMtY2hpcC1wdXJwbGUtaG92ZXIpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWNoaXAtcHVycGxlLXRleHQpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFnLnRhZy1jb2xvci1kYXJrLXB1cnBsZSB7XG4gIC0tdGFnLWJnOiB2YXIoLS1jLWNoaXAtZGFyay1wdXJwbGUtYmcpO1xuICAtLXRhZy1iZy1ob3ZlcjogdmFyKC0tYy1jaGlwLWRhcmstcHVycGxlLWhvdmVyKTtcbiAgLS10YWctdGV4dDogdmFyKC0tYy1jaGlwLWRhcmstcHVycGxlLXRleHQpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFnLnRhZy1kaXNhYmxlZCwgW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFnLnRhZy1kaXNhYmxlZC50YWctaW50ZXJhY3RpdmUge1xuICAtLXRhZy1iZzogIzJlMzAzNDtcbiAgLS10YWctYmctaG92ZXI6ICMyZTMwMzQ7XG4gIC0tdGFnLXRleHQ6ICM2YjcxODA7XG59XG5cbi8qIEdsYXNzIGJsaWpmdCBnbGFzcyBpbiBkb25rZXJlIG1vZHVzLiBEZSBbZGF0YS10aGVtZT1kYXJrXSBrbGV1cnJlZ2VscyBoaWVyYm92ZW5cbiAgIGhlYmJlbiDDqcOpbiBzZWxlY3RvciBtZWVyIGRhbiAucWRuYXByby10YWcudGFnLXZhcmlhbnQtZ2xhc3MsIGR1cyB6b25kZXIgZGl0XG4gICBibG9rIHpvdWRlbiB6aWogaGV0IHZsYWsgdGVydWdwYWtrZW4uIEhldHplbGZkZSB3aXR0ZSBnbGFzIGluIGJlaWRlIHRoZW1hJ3MgaXNcbiAgIG1ldCBvcHpldDogZGUgcGlsIGxpZ3Qgb3AgZWVuIGZvdG8sIG5pZXQgb3AgZGUgcGFnaW5ha2xldXIuIFsxOS4wOC4yMDI2XSAqL1xuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFnLnRhZy12YXJpYW50LWdsYXNzIHtcbiAgLS10YWctYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43Mik7XG4gIC0tdGFnLWJnLWhvdmVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpO1xuICAtLXRhZy10ZXh0OiB2YXIoLS1jLWdyZXktOTAwKTtcbiAgLS10YWctYm9yZGVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTUpO1xufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvdGFza2xpc3QtY2FyZC9fdGFza2xpc3QtY2FyZC1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWluLWhlaWdodDogODRweDtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAxNjBtcyBlYXNlLCBib3JkZXItY29sb3IgMTYwbXMgZWFzZSwgdHJhbnNmb3JtIDEyMG1zIGVhc2U7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICAvKiBOZXZlciBpbmhlcml0IHRoZSBhbmNob3IgdW5kZXJsaW5lIHdoZW4gdGhlIGNhcmQgaXMgd3JhcHBlZCBpbiBhXG4gICAgIGxpbmsgKGUuZy4gdGhlIHByb2plY3RzLXYyIHRhc2tsaXN0IGdyaWQpLiAqL1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQgKixcbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQgKjo6YmVmb3JlLFxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZCAqOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDNweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45ODUpO1xuICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDgwbXMgZWFzZSwgdHJhbnNmb3JtIDgwbXMgZWFzZTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZDpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi8qID09PSBEYXJrIG1vZGUgLSBiYXNlIGNhcmQgY2hyb21lID09PVxuICAgSW4gdGhlIGJ1bmRsZSB0aGVzZSByZWFkIGZyb20gdGhlIGdsb2JhbCAtLWMtKiB0b2tlbnMsIGJ1dCBpbiB0aGVcbiAgIHN0YW5kYWxvbmUgbGlicmFyeSBwcmV2aWV3IHRob3NlIHRva2VucyBhcmUgYWJzZW50LCBzbyB0aGUgbGlnaHRcbiAgIGZhbGxiYWNrcyB3b3VsZCB3aW4gYW5kIHRoZSBjYXJkIHdvdWxkIHN0YXkgbGlnaHQuIFRoZXNlIGV4cGxpY2l0XG4gICBkYXJrIG92ZXJyaWRlcyBtYWtlIHRoZSBiYXNlIGNocm9tZSBjb3JyZWN0IGluIGRhcmsgbW9kZSBldmVyeXdoZXJlLlxuICAgVmFsdWVzIG1hdGNoIHRoZSBkYXJrIHBhbGV0dGUgYWxyZWFkeSB1c2VkIGluIHRoaXMgZmlsZSAoc3VyZmFjZVxuICAgdmFyKC0tYy1ncmV5LTgwMCksIG5ldXRyYWwgdGlsZSB2YXIoLS1jLWdyZXktNzAwKSwgcHJpbWFyeSB0ZXh0IHZhcigtLWMtZ3JleS01MCksIG11dGVkIHZhcigtLWMtZ3JleS00MDApLFxuICAgc3VidGxlIGJvcmRlciByZ2JhKDI1NSwyNTUsMjU1LDAuMTApKS4gKi9cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LWNhcmQge1xuICBiYWNrZ3JvdW5kOiAjMmUzMDM2O1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZCAudGxjLXRpbGUge1xuICBiYWNrZ3JvdW5kOiAjNDA0NDRkO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkIC50bGMtbmFtZSB7XG4gIGNvbG9yOiAjZjBmMWYyO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkIC50bGMtc3ViIHtcbiAgY29sb3I6ICNhMGE0Yjg7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQgLnRsYy1pY29uIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAxMnB4IDAgMTJweCAxMnB4O1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkIC50bGMtdGlsZSB7XG4gIHdpZHRoOiA2MHB4O1xuICBoZWlnaHQ6IDYwcHg7XG4gIGZsZXg6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAxM3B4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwLCAjZjBmMWYyKTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC5oYXMtY29sb3IgLnRsYy10aWxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tdGxjLWJnLCB2YXIoLS1jLWdyZXktMTAwLCAjZjBmMWYyKSk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQgLnRsYy1ib2R5IHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nOiAxNnB4IDIwcHggMTZweCAxMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZCAudGxjLW5hbWUge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTAwLCAjMGIwYjBkKTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAvKiBXcmFwIHRvIGEgc2Vjb25kIGxpbmUsIHRoZW4gdHJ1bmNhdGUgd2l0aCBhbiBlbGxpcHNpcyAtIG5ldmVyIGFcbiAgICAgdGhpcmQgbGluZS4gYHdoaXRlLXNwYWNlOiBub3JtYWxgIGlzIGV4cGxpY2l0IHNvIGl0IGFsd2F5cyBiZWF0c1xuICAgICB0aGUgbGVnYWN5IHBhZ2UtbGV2ZWwgYC50bGMtbmFtZSB7IHdoaXRlLXNwYWNlOiBub3dyYXAgfWAuIFRoZSA2MHB4XG4gICAgIGljb24gdGlsZSBrZWVwcyB0aGUgY2FyZCA+PSA4NHB4IHRhbGwsIHdoaWNoIGZpdHMgdHdvIDE2cHgvMS4zXG4gICAgIGxpbmVzLCBzbyB0aGUgY2FyZCBoZWlnaHQgZG9lcyBub3QgZ3Jvdy4gKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgbGluZS1jbGFtcDogMjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZCAudGxjLXN1YiB7XG4gIGZvbnQtc2l6ZTogMTIuNXB4O1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzg5OGU5OSk7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cblxuLyogQ29tcGFjdCB2YXJpYW50OiBzbWFsbGVyIHRpbGUgKyBib2R5LCBmb3IgZGVuc2UgbGlzdCBjb250ZXh0cy4gKi9cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNvbXBhY3Qge1xuICBtaW4taGVpZ2h0OiA3MnB4O1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jb21wYWN0IC50bGMtaWNvbiB7XG4gIHBhZGRpbmc6IDlweCAwIDlweCA5cHg7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNvbXBhY3QgLnRsYy10aWxlIHtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbiAgYm9yZGVyLXJhZGl1czogMTFweDtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY29tcGFjdCAudGxjLWJvZHkge1xuICBwYWRkaW5nOiAxMnB4IDE0cHggMTJweCAxMHB4O1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jb21wYWN0IC50bGMtbmFtZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY29tcGFjdCAudGxjLXN1YiB7XG4gIGZvbnQtc2l6ZTogMTEuNXB4O1xufVxuXG4vKiA9PT0gTGlzdCB2YXJpYW50OiBvbmUtbGluZSBwaWNrZXIvcGFuZWwgcm93ID09PVxuICAgYGxpc3RgIHdpbnMgb3ZlciBgY29tcGFjdGAgKGVuZm9yY2VkIGluIEpTIHJlbmRlcigpOiBjb21wYWN0IGlzIG5ldmVyXG4gICBhcHBsaWVkIHRvZ2V0aGVyIHdpdGggdGxjLWxpc3QpLiBPbmUgcm93LCB+NDBweCB0b3RhbCAoNnB4IGljb24tYmxvY2tcbiAgIHBhZGRpbmcgdG9wL2JvdHRvbSArIDI4cHggdGlsZSA9IDQwcHgpLCBhIHNtYWxsIDI4cHggaWNvbiB0aWxlIChzYW1lXG4gICBjb2xvci9pY29uIHZvY2FidWxhcnkgYXMgZXZlcnkgb3RoZXIgbW9kZSksIHNpbmdsZS1saW5lIGVsbGlwc2l6ZWRcbiAgIG5hbWUsIH44cHggcmFkaXVzLiBObyBjb3VudC9tZXRhL2FyY2hpdmVkLWNoaXAvYWN0aW9ucy9mYXZvcml0ZSBldmVyXG4gICByZW5kZXIgaW4gdGhpcyBtb2RlIChndWFyZGVkIGluIEpTKSwgc28gdGhlcmUgaXMgbm90aGluZyB0byBzdHlsZSBmb3JcbiAgIHRoZW0gaGVyZS5cbiAgIEhvdmVyIHVzZXMgYSBGTEFUIGJhY2tncm91bmQgdGludCAtIHRoZSBob3VzZSBsaXN0LXJvdyBjb252ZW50aW9uXG4gICAobWF0Y2hlcyBxZG5hcHJvLW1lbnUtaXRlbSdzIC0tbWktYmctaG92ZXIgYW5kIHRoZSBldmVudC1zaGVldCByb3dcbiAgIGhvdmVyKSwgbm90IHRoZSBmcmVlLWZsb2F0aW5nIGNhcmQncyBzaGFkb3ctbGlmdCAtIGJlY2F1c2UgdGhpc1xuICAgdmFyaWFudCBzaXRzIGlubGluZSBpbiBhIGxpc3QsIG5vdCBhcyBpdHMgb3duIGNhcmQuICovXG4ucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1saXN0IHtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1saXN0OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwLCAjZjBmMWYyKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtbGlzdDphY3RpdmUge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWxpc3QgLnRsYy1pY29uIHtcbiAgcGFkZGluZzogNnB4IDAgNnB4IDZweDtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtbGlzdCAudGxjLXRpbGUge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWxpc3QgLnRsYy1ib2R5IHtcbiAgcGFkZGluZzogNnB4IDEycHggNnB4IDhweDtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtbGlzdCAudGxjLW5hbWUge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAvKiBPdmVycmlkZSB0aGUgYmFzZSBydWxlJ3MgMi1saW5lIGNsYW1wIGJveCAtIHNpbmdsZSBsaW5lIG9ubHkuICovXG4gIGRpc3BsYXk6IGJsb2NrO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IHVuc2V0O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1saXN0OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbn1cblxuLyogPT09IENlbnRlcmVkIHZhcmlhbnQ6IHZlcnRpY2FsIGdyaWQgdGlsZSA9PT1cbiAgIGBjZW50ZXJlZGAgd2lucyBvdmVyIGJvdGggYGxpc3RgIGFuZCBgY29tcGFjdGAgKGVuZm9yY2VkIGluIEpTIHJlbmRlcigpOlxuICAgbmVpdGhlciBpcyBhcHBsaWVkIHRvZ2V0aGVyIHdpdGggdGxjLWNlbnRlcmVkKS4gUmVjdGFuZ3VsYXIgdGlsZSBmb3IgYVxuICAgZ3JpZCBvZiB0aWxlcyAoZS5nLiA0IHBlciByb3cgb24gdGhlIG1hc3Rlci1kYXRhIGxhbmRpbmcgcGFnZSk6IHRoZVxuICAgaWNvbiB0aWxlIHNpdHMgY2VudGVyZWQgb24gdG9wLCB0aGUgbmFtZSBjZW50ZXJzIHVuZGVybmVhdGggaXQsIGFuZFxuICAgdGhlIGNvdW50IGNlbnRlcnMgYmVsb3cgdGhhdCAtIGEgdmVydGljYWwgc3RhY2sgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdFxuICAgaWNvbi1sZWZ0L2JvZHktcmlnaHQgcm93LiBXaWR0aCBpcyBkcml2ZW4gYnkgdGhlIHBhZ2UncyBncmlkLCBub3QgYnlcbiAgIHRoaXMgY29tcG9uZW50LiBObyBhY3Rpb25zL2Zhdm9yaXRlL2FyY2hpdmVkLWNoaXAgZXZlciByZW5kZXIgaGVyZVxuICAgKGd1YXJkZWQgaW4gSlMpOyB0aGUgYXJjaGl2ZWQgZGltL2Rlc2F0dXJhdGUgdHJlYXRtZW50IGJlbG93IHN0aWxsXG4gICBhcHBsaWVzIHVuY2hhbmdlZCBzaW5jZSBpdCB0YXJnZXRzIHRoZSBzaGFyZWQgLnRsYy10aWxlLy50bGMtbmFtZVxuICAgc2VsZWN0b3JzLiAqL1xuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY2VudGVyZWQge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAyMHB4IDE2cHggMThweDtcbiAgbWluLWhlaWdodDogMTMycHg7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNlbnRlcmVkIC50bGMtaWNvbiB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBwYWRkaW5nOiAwIDAgMTJweDtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY2VudGVyZWQgLnRsYy1ib2R5IHtcbiAgZmxleDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNlbnRlcmVkIC50bGMtbmFtZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY2VudGVyZWQgLnRsYy1zdWIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qID09PSBIb3ZlciBhY3Rpb24gYnV0dG9ucyAoZmF2b3JpdGUgKyAzLWRvdHMpID09PVxuICAgQmVoYXZpb3VyIG1pcnJvcnMgdGhlIHByb2plY3QtY2FyZCB0b3AtYWN0aW9ucyBFWEFDVExZIChLaW0gMjAyNi0wNi0wMSk6XG4gICAtIFJpZ2h0LWFuY2hvcmVkIGlubGluZS1mbGV4IGluIHRoZSB0b3AtcmlnaHQgY29ybmVyLlxuICAgLSBUaGUgZmF2b3JpdGUgKHN0YXIpIGlzIGhpZGRlbiBhdCByZXN0IGFuZCBmYWRlcyBpbiBvbiBob3Zlcjsgb25jZSBpdFxuICAgICBpcyBmYXZvcml0ZWQgKC5mYXZvcml0ZS1idXR0b24tZmF2b3JpdGVkKSBpdCBTVEFZUyB2aXNpYmxlIGluIHRoZVxuICAgICBjb3JuZXIsIHNvIHlvdSBzZWUgYXQgYSBnbGFuY2Ugd2hpY2ggbGlzdHMgYXJlIG1hcmtlZC5cbiAgIC0gVGhlIDMtZG90cyBTTElERVMgSU46IGNvbGxhcHNlZCB0byB3aWR0aCAwIGF0IHJlc3QgKHNvIHRoZXJlIGlzIG5vXG4gICAgIGVtcHR5IGJveCksIGV4cGFuZHMgdG8gMzJweCArIGFuIDhweCBsZWZ0IG1hcmdpbiBvbiBob3ZlciAtIHRoZSBzYW1lXG4gICAgIHdpZHRoL29wYWNpdHkgdHJhbnNpdGlvbiAucHJvamVjdC1jYXJkLW1lbnUtdHJpZ2dlciB1c2VzLlxuICAgVGhlIHByb2plY3QgY2FyZCB1c2VzIGEgZ2xhc3Mgc3VyZmFjZSAoaXQgc2l0cyBvbiBhIHBob3RvKTsgdGhlIHRhc2tsaXN0XG4gICBjYXJkIGlzIHdoaXRlLCBzbyB0aGUgYnV0dG9ucyBnZXQgYSBzb2xpZC13aGl0ZSBzdXJmYWNlICsgcmluZyBpbnN0ZWFkXG4gICAoZ2xhc3MgaXMgaW52aXNpYmxlIG9uIHdoaXRlKS4gKi9cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQgLnRsYy1hY3Rpb25zIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDhweDtcbiAgcmlnaHQ6IDhweDtcbiAgei1pbmRleDogMjtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8qIEZhdm9yaXRlIChzdGFyKTogaGlkZGVuIGF0IHJlc3QsIGZhZGVzIGluIG9uIGhvdmVyLCBwZXJzaXN0cyB3aGVuIG1hcmtlZC4gKi9cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQgLnRsYy1hY3Rpb25zIC5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbiB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICBib3gtc2hhZG93OiAwIDJweCA2cHggcmdiYSgyMCwgMjUsIDgwLCAwLjIyKSwgMCAwIDAgMXB4IHJnYmEoMjAsIDI1LCA4MCwgMC4xNCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAxNjBtcyBlYXNlO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkIC50bGMtYWN0aW9ucyAucWRuYXByby1mYXZvcml0ZS1idXR0b246bm90KC5mYXZvcml0ZS1idXR0b24tZmF2b3JpdGVkKSB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkOmhvdmVyIC50bGMtYWN0aW9ucyAucWRuYXByby1mYXZvcml0ZS1idXR0b246bm90KC5mYXZvcml0ZS1idXR0b24tZmF2b3JpdGVkKSxcbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQ6Zm9jdXMtd2l0aGluIC50bGMtYWN0aW9ucyAucWRuYXByby1mYXZvcml0ZS1idXR0b246bm90KC5mYXZvcml0ZS1idXR0b24tZmF2b3JpdGVkKSB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkIC50bGMtYWN0aW9ucyAucWRuYXByby1mYXZvcml0ZS1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xufVxuXG4vKiAzLWRvdHM6IHNsaWRlcyBpbiBmcm9tIHdpZHRoIDAgb24gaG92ZXIgKG1pcnJvcnMgLnByb2plY3QtY2FyZC1tZW51LXRyaWdnZXIpLiAqL1xuLnFkbmFwcm8tdGFza2xpc3QtY2FyZCAudGxjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDA7XG4gIGhlaWdodDogMzJweCAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIG1heC1oZWlnaHQ6IDMycHggIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBtYXgtd2lkdGggMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgd2lkdGggMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgbWluLXdpZHRoIDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIG1hcmdpbi1sZWZ0IDIwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIG9wYWNpdHkgMTUwbXMgZWFzZSwgYmFja2dyb3VuZCAxMjBtcyBlYXNlO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkOmhvdmVyIC50bGMtYWN0aW9ucyAucWRuYXByby1idXR0b24sXG4ucWRuYXByby10YXNrbGlzdC1jYXJkOmZvY3VzLXdpdGhpbiAudGxjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uIHtcbiAgd2lkdGg6IDMycHggIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAzMnB4ICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogMzJweDtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMjAsIDI1LCA4MCwgMC4yMiksIDAgMCAwIDFweCByZ2JhKDIwLCAyNSwgODAsIDAuMTQpICFpbXBvcnRhbnQ7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQ6aG92ZXIgLnRsYy1hY3Rpb25zIC5xZG5hcHJvLWJ1dHRvbjpob3Zlcixcbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQ6Zm9jdXMtd2l0aGluIC50bGMtYWN0aW9ucyAucWRuYXByby1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpICFpbXBvcnRhbnQ7XG59XG5cbi8qIERhcmstbW9kZSBzdXJmYWNlcy4gKi9cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LWNhcmQgLnRsYy1hY3Rpb25zIC5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6ICMyZTMwMzY7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuNCksIDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkIC50bGMtYWN0aW9ucyAucWRuYXByby1mYXZvcml0ZS1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjMzgzYjQyO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkOmhvdmVyIC50bGMtYWN0aW9ucyAucWRuYXByby1idXR0b24sXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkOmZvY3VzLXdpdGhpbiAudGxjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogIzJlMzAzNiAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjQpLCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KSAhaW1wb3J0YW50O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkOmhvdmVyIC50bGMtYWN0aW9ucyAucWRuYXByby1idXR0b246aG92ZXIsXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkOmZvY3VzLXdpdGhpbiAudGxjLWFjdGlvbnMgLnFkbmFwcm8tYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzM4M2I0MiAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT0gQXJjaGl2ZWQgc3RhdGUgKG1pcnJvcnMgdGhlIHByb2plY3QtY2FyZCBhcmNoaXZlZCB2YXJpYW50KSA9PT1cbiAgIFRoZSB0YXNrbGlzdCBjYXJkIGhhcyBubyBwaG90byB0byBkZXNhdHVyYXRlLCBzbyB0aGUgY29sb3VyIHRpbGUgSVNcbiAgIHRoZSBpbWFnZXJ5OiBpdCBpcyBmdWxseSBncmV5ZWQgb3V0IChncmF5c2NhbGUgMSkgc28gdGhlIHBhc3RlbFxuICAgaWRlbnRpdHkgZHJvcHMgYXdheSwgZXhhY3RseSBsaWtlIHRoZSBwcm9qZWN0IGNhcmQncyBkZXNhdHVyYXRlZFxuICAgcGhvdG8uIENhcmQgZGltcyB0byAwLjg1IChzYW1lIGFzIHRoZSBwcm9qZWN0IGNhcmQpIGFuZCB0aGUgbmFtZSBpc1xuICAgbXV0ZWQuICovXG4ucWRuYXByby10YXNrbGlzdC1jYXJkW2FyY2hpdmVkXSB7XG4gIG9wYWNpdHk6IDAuODU7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmRbYXJjaGl2ZWRdIC50bGMtdGlsZSB7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDEpIGJyaWdodG5lc3MoMC45OCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDAsICNlZWYwZjIpO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkW2FyY2hpdmVkXSAudGxjLW5hbWUge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTYwMCwgIzZiNzI4MCk7XG59XG5cbi8qIFRoZSBmYXZvcml0ZS9waW4gbWFrZXMgbm8gc2Vuc2Ugb24gYW4gYXJjaGl2ZWQgdGFza2xpc3Q7IGtlZXAgb25seSB0aGVcbiAgIDMtZG90cyAod2hpY2ggb2ZmZXJzIFwiQWN0aXZlcmVuXCIpLiAqL1xuLnFkbmFwcm8tdGFza2xpc3QtY2FyZFthcmNoaXZlZF0gLnRsYy1hY3Rpb25zIC5xZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQgLnRsYy1hcmNoaXZlZC1jaGlwIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBtYXJnaW4tdG9wOiA2cHg7XG4gIHBhZGRpbmc6IDJweCA5cHggMnB4IDdweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDAsICNlZWYwZjIpO1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTYwMCwgIzZiNzI4MCk7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjJweDtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZCAudGxjLWFyY2hpdmVkLWNoaXAgcWRuYXByby1pY29uIHtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LWNhcmQgLnRsYy1hcmNoaXZlZC1jaGlwIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgY29sb3I6ICNhMGE0Yjg7XG59XG5cbi8qIEFyY2hpdmVkIHZhcmlhbnQgaW4gZGFyayBtb2RlOiBhIGRhcmsgbmV1dHJhbCB0aWxlICh0aGUgYXJjaGl2ZWRcbiAgIGxpZ2h0IHJ1bGUgc2V0cyBpdHMgb3duIGJhY2tncm91bmQsIHNvIGl0IG11c3QgYmUgcmUtb3ZlcnJpZGRlbiBoZXJlKVxuICAgYW5kIGEgbGlnaHRlciBtdXRlZCBncmV5IG5hbWUsIHNvIHRoZSBkaW1tZWQvZGVzYXR1cmF0ZWQgdHJlYXRtZW50XG4gICByZWFkcyBjb3JyZWN0bHkgb24gdGhlIGRhcmsgY2FyZCBzdXJmYWNlLiAqL1xuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZFthcmNoaXZlZF0gLnRsYy10aWxlIHtcbiAgYmFja2dyb3VuZDogIzQwNDQ0ZDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZFthcmNoaXZlZF0gLnRsYy1uYW1lIHtcbiAgY29sb3I6ICNhMGE0Yjg7XG59XG5cbi8qID09PSBDb2xvdXIgcGFsZXR0ZSAocWRuYXByby10YWcgbGlnaHQgcGFzdGVscykgPT09ICovXG4ucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jb2xvci1ncmV5IHtcbiAgLS10bGMtYmc6IHZhcigtLWMtZ3JleS01MCk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNvbG9yLXJlZCB7XG4gIC0tdGxjLWJnOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jb2xvci15ZWxsb3cge1xuICAtLXRsYy1iZzogdmFyKC0tYy1jaGlwLXllbGxvdy1iZyk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNvbG9yLWdyZWVuIHtcbiAgLS10bGMtYmc6IHZhcigtLWMtY2hpcC1ncmVlbi1iZyk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNvbG9yLWJsdWUge1xuICAtLXRsYy1iZzogdmFyKC0tYy1zaWduYWwtYmx1ZS1iZyk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNvbG9yLWJyaWdodC1ibHVlIHtcbiAgLS10bGMtYmc6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWJnKTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY29sb3ItcGluayB7XG4gIC0tdGxjLWJnOiB2YXIoLS1jLXNpZ25hbC1waW5rLWJnKTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY29sb3ItcHVycGxlIHtcbiAgLS10bGMtYmc6IHZhcigtLWMtY2hpcC1wdXJwbGUtYmcpO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jb2xvci1ncmV5IHtcbiAgLS10bGMtYmc6ICM0MDQ0NGQ7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNvbG9yLXJlZCB7XG4gIC0tdGxjLWJnOiAjNWEyYjJiO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jb2xvci15ZWxsb3cge1xuICAtLXRsYy1iZzogIzVhNGQxZjtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY29sb3ItZ3JlZW4ge1xuICAtLXRsYy1iZzogIzJhNTU0NDtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY29sb3ItYmx1ZSB7XG4gIC0tdGxjLWJnOiAjMmUzZTU0O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jb2xvci1icmlnaHQtYmx1ZSB7XG4gIC0tdGxjLWJnOiAjM2E0YThhO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkLnRsYy1jb2xvci1waW5rIHtcbiAgLS10bGMtYmc6ICM0ZTJhMzY7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LWNhcmQudGxjLWNvbG9yLXB1cnBsZSB7XG4gIC0tdGxjLWJnOiAjM2EzNTU1O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMCAzcHggMTJweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbn0iLCIvLyBfdGV4dC1saW5rLnNjc3Ncbi8vXG4vLyBEZXNpZ24gc291cmNlIDogRmlnbWEgUUROQS1QUk8sIGNvbXBvbmVudCBzZXQgbm9kZSAzMTk0Ojc5MDk1XG4vLyBWZXJpZmllZCB2aWEgIDogaW5zdGFuY2VzXG4vLyAgIDg3NTk6MTg2NzM5ICAoSGlnaGxpZ2h0IC8gRGVmYXVsdCAgLyAxNCAvIEJvbGQgLyBMaW5rKVxuLy8gICA4NzYwOjE4Njc0MSAgKEVycm9yICAgICAvIEhvdmVyICAgIC8gMTQgLyBCb2xkIC8gQkcpXG4vLyAgIDg3NjA6MTg2NzQzICAoU3VjY2VzcyAgIC8gSG92ZXIgICAgLyAxNCAvIEJvbGQgLyBCRylcbi8vICAgODc2MDoxODY3NDUgIChIaWdobGlnaHQgLyBIb3ZlciAgICAvIDE0IC8gQm9sZCAvIEJHKVxuLy8gVmFyaWFudHMgICAgICA6IDQgY29sb3Igw5cgNSBzaXplIMOXIDQgd2VpZ2h0IMOXIDIgaG92ZXIgw5cgNSBzdGF0ZSA9IDcwMFxuLy9cbi8vIFRhcmdldCAgICAgICAgOiBiYWNrb2ZmaWNlMi9zY3NzL3YxL2NvbXBvbmVudHMvX3RleHQtbGluay5zY3NzXG4vLyBBZnRlciBhZGRpbmcgIDogYXBwZW5kICBAdXNlIFwiY29tcG9uZW50cy90ZXh0LWxpbmtcIjsgIHRvIHNjc3MvdjEvc3R5bGUuc2Nzc1xuLy9cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRPS0VOIE1BUFBJTkcgKEZpZ21hIHBhdGgg4oaSIFNDU1MgdmFyaWFibGUpXG4vLyBBbGwgdmFsdWVzIGJlbG93IGFyZSBbRklHTUEgdmVyaWZpZWRdIHVubGVzcyBtYXJrZWQgW0lORkVSUkVEXS5cbi8vXG4vLyAgIFRla3N0XG4vLyAgICAgJHRleHQtb24tYm9keSAgICAgICAgICAgICAgICAgIOKGkiB0b2tlbnMvdGV4dC9vbi1ib2R5ICAgICAgICAgICAgICAgICAgICBbSU5GRVJSRUQgaW4gbGlnaHRdXG4vLyAgICAgJHRleHQtZXJyb3IgICAgICAgICAgICAgICAgICAgIOKGkiB0b2tlbnMvdGV4dC9lcnJvciAgICAgICAgICAgICAgICAgICAgICAoZGVmYXVsdCBzdGF0ZSlcbi8vICAgICAkdGV4dC1vbi1lcnJvciAgICAgICAgICAgICAgICAg4oaSIHRva2Vucy90ZXh0L29uLWVycm9yICAgKCNjNjVhNWEpICAgICAgIChob3Zlci1iZyBlcnJvcilcbi8vICAgICAkdGV4dC1zdWNjZXNzLWRhcmsgICAgICAgICAgICAg4oaSIHRva2Vucy90ZXh0L3N1Y2Nlc3MtZGFyayAoIzQyOGI2ZSlcbi8vICAgICAkcHVycGxlLWhpZ2hsaWdodCAgICAgICAgICAgICAg4oaSIHRva2Vucy9wdXJwbGUtaGlnaGxpZ2h0ICgjNDY1MmYzKVxuLy9cbi8vICAgU3VyZmFjZVxuLy8gICAgICRzdXJmYWNlLWJ1dHRvbnMtc3VidGxlLWhvdmVyICDihpIgdG9rZW5zL3N1cmZhY2UvYnV0dG9ucy9zdWJ0bGUtaG92ZXIgKCNmMGYxZjIpXG4vLyAgICAgJHN1cmZhY2UtYnV0dG9ucy1zdWJ0bGUtcHJlc3NlZCDihpIgdG9rZW5zL3N1cmZhY2UvYnV0dG9ucy9zdWJ0bGUtcHJlc3NlZCAoI2U0ZTZlOCkgW3N5c3RlbWljXVxuLy8gICAgICRzdXJmYWNlLXNpZ25hbC1yZWQtNTAgICAgICAgICDihpIgdG9rZW5zL3N1cmZhY2Uvc2lnbmFsL3NpZ25hbC1yZWQtNTAgKCNmZWYxZjEpXG4vLyAgICAgJHN1cmZhY2Utc2lnbmFsLWdyZWVuLTUwICAgICAgIOKGkiB0b2tlbnMvc3VyZmFjZS9zaWduYWwvc2lnbmFsLWdyZWVuLTUwICgjZjBmZGY4KVxuLy9cbi8vICAgQm9yZGVyXG4vLyAgICAgJGJvcmRlci1lcnJvci1kYXJrICAgICAgICAgICAgIOKGkiB0b2tlbnMvYm9yZGVyL2Vycm9yLWRhcmsgICAoI2M2NWE1YSlcbi8vICAgICAkYm9yZGVyLXN1Y2Nlc3MtZGFyayAgICAgICAgICAg4oaSIHRva2Vucy9ib3JkZXIvc3VjY2Vzcy1kYXJrICgjNDI4YjZlKVxuLy9cbi8vICAgVHlwb2dyYXBoeSAvIHNwYWNpbmcgLyByYWRpdXNcbi8vICAgICAkZm9udC1mYW1pbHktcHJpbWFyeSwgJGZvbnQtd2VpZ2h0LXtyZWd1bGFyfG1lZGl1bXxzZW1pLWJvbGR8Ym9sZH1cbi8vICAgICAkc3BhY2luZy14eHMgKDRweCksICRyYWRpdXMtc21hbGwgKDhweClcbi8vXG4vLyBBIHRyYW5zcGFyZW50IDAuNXB4IGJvcmRlciBpcyBhcHBsaWVkIG9uIHRoZSBiYXNlIHNvIEVycm9yL1N1Y2Nlc3MgaG92ZXJcbi8vIHN0YXRlcyBjYW4gcmV2ZWFsIHRoZWlyIHJlYWwgYm9yZGVyIHdpdGhvdXQgY2F1c2luZyBhbnkgbGF5b3V0IHNoaWZ0LlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUFJFU1NFRCBTVEFURSBbS2ltIDIwMjYtMDQtMjhdXG4vLyBBbGlnbmVkIHdpdGggdGhlIHN5c3RlbWljIHByZXNzZWQgcGF0dGVybiB1c2VkIGFjcm9zcyBhbGwgaW50ZXJhY3RpdmVcbi8vIFFETkEgUHJvIGNvbXBvbmVudHMuIFR3byBzdHJhdGVnaWVzLCBvbmUgcGVyIGhvdmVyLXR5cGU6XG4vL1xuLy8gICBob3Zlci1saW5rICDigJQgdGV4dCBnZXRzIG9uZSB0aWVyIGRhcmtlciArIGJnIHBpY2tzIHVwIHN1YnRsZS1wcmVzc2VkLFxuLy8gICAgICAgICAgICAgICAgIHVuZGVybGluZSBwZXJzaXN0cyBmcm9tIGhvdmVyLiBHaXZlcyBoYXB0aWMgZmVlZGJhY2sgb24gYVxuLy8gICAgICAgICAgICAgICAgIGNvbXBvbmVudCB0aGF0IG90aGVyd2lzZSBoYXMgbm8gYmcgc3RhdGUuXG4vLyAgIGhvdmVyLWJnICAgIOKAlCBiZyBzdGVwcyBmcm9tIHN1YnRsZS1ob3ZlciAoI2YwZjFmMikgdG8gc3VidGxlLXByZXNzZWRcbi8vICAgICAgICAgICAgICAgICAoI2U0ZTZlOCk7IGVycm9yL3N1Y2Nlc3MgdXNlIHNpZ25hbC17cmVkLGdyZWVufS0xMDAgdGludHMuXG4vL1xuLy8gRHJpdmVuIGJ5IFRIUkVFIHNlbGVjdG9yIGZvcm1zIHNvIGl0IHdvcmtzIGluIGFsbCBjb250ZXh0czpcbi8vICAgOmFjdGl2ZSAgICAgICAgICAgICAgICAgICDigJQgcmVhbCBwb2ludGVyIGludGVyYWN0aW9uXG4vLyAgIC50ZXh0LWxpbmstcHJlc3NlZCAgICAgICAg4oCUIHBpbm5lZCB2aWEgYXR0cmlidXRlIChlLmcuIHN1Ym1pdHRpbmcgc3RhdGUpXG4vLyAgIC5mb3JjZS1wcmVzc2VkICAgICAgICAgICAg4oCUIHByZXZpZXcvZG9jcyBoZWxwZXIgY2xhc3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZPQ1VTIFNUQVRFXG4vLyBDYW5vbmljYWwgUUROQSBQcm8gZm9jdXMtcmVjaXBlIOKAlCAycHggb3V0bGluZSArIDRweCBvdXRlciBnbG93IEAgMjUlXG4vLyBhbHBoYS4gSW5zZXQgb2Zmc2V0ICgtMnB4KSBzbyB0aGUgcmluZyBzdGF5cyBpbnNpZGUgdGhlIHJvdW5kZWQgYm9yZGVyLlxuLy8gYC5mb3JjZS1mb2N1c2AgaXMgYSBwcmV2aWV3L3NjcmVlbnNob3QgaGVscGVyLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGSVggKDIxLjA3LjIwMjYsIFBXQSBEb2N1bWVudGVuLXByb2plY3QgLSBLaW0ncyB0b2VzdGVsLXRlc3QpOiB0aGlzIGZpbGVcbi8vIHVzZWQgdG8gQHVzZSBcIi4uL21vZHVsZXMve2NvbG9ycyx0eXBvZ3JhcGh5LHNwYWNpbmd9XCIgLSBwYXRocyB0aGF0IHJlc29sdmVcbi8vIHRvIGJhY2tvZmZpY2UyL3Njc3MvY29tcG9uZW50cy92Mi9tb2R1bGVzLyosIHdoaWNoIGRvZXMgTk9UIGV4aXN0ICh0aGUgcmVhbFxuLy8gbW9kdWxlcyBsaXZlIGF0IGJhY2tvZmZpY2UyL3Njc3MvbW9kdWxlcy8qLCAzIGxldmVscyB1cCwgbm90IDEpLiBTaW5jZSBhXG4vLyByZWxhdGl2ZSBAdXNlIGlzIEFMV0FZUyByZXNvbHZlZCBmcm9tIHRoZSBpbXBvcnRpbmcgZmlsZSdzIG93biBsb2NhdGlvblxuLy8gKG5ldmVyIGxvYWQtcGF0aC1zZWFyY2hlZCksIHRoaXMgbWFkZSB0aGUgZmlsZSBmYWlsIHRvIGNvbXBpbGUgLSBpdCB3YXNcbi8vIHRoZXJlZm9yZSBuZXZlciBAdXNlJ2QgZnJvbSBjb21wb25lbnRzLnNjc3MgKGdyZXBwZWQ6IHplcm8gXCIucWRuYXByby10ZXh0LWxpbmtcIlxuLy8gbWF0Y2hlcyBhbnl3aGVyZSBpbiB0aGUgY29tcGlsZWQgc3R5bGUtdjEuY3NzKSwgc28gcWRuYXByby10ZXh0LWxpbmsgaGFzXG4vLyBiZWVuIHJ1bm5pbmcgd2l0aCBOTyBDU1MgQVQgQUxMLCBhbnl3aGVyZSwgc2luY2UgaXQgd2FzIGZpcnN0IGJ1aWx0IC0gdGhlXG4vLyBjb21wb25lbnQncyBvbmx5IG90aGVyIGNvbnN1bWVyIChxZG5hcHJvLWF2YXRhci1zdGFjaydzIFwiK05cIiBvdmVyZmxvdyBjaGlwKVxuLy8gbmV2ZXIgaGl0IHRoaXMgYmVjYXVzZSBpdCBzdHlsZXMgdGhhdCBjaGlwIGVudGlyZWx5IHZpYSBJVFMgT1dOXG4vLyBbZGF0YS1yb2xlPW92ZXJmbG93XSBhdHRyaWJ1dGUgaG9vayAoX2F2YXRhci1zdGFjay5zY3NzKSwgYnlwYXNzaW5nXG4vLyAucWRuYXByby10ZXh0LWxpbmsncyBjbGFzcy1iYXNlZCBydWxlcyBjb21wbGV0ZWx5LiBUaGUgc2VhcmNoLW92ZXJsYXknc1xuLy8gY2FuY2VsL1wiV2lzc2VuXCIgbGlua3MgKHFkbmEtc2VhcmNoLW92ZXJsYXkuanMpIGFyZSB0aGUgZmlyc3QgR0VORVJJQyB1c2Ugb2Zcbi8vIHRoaXMgY29tcG9uZW50IGFueXdoZXJlIGluIHRoZSBhcHAsIHdoaWNoIGlzIHdoYXQgc3VyZmFjZWQgdGhlIGdhcC5cbi8vIFJld2lyZWQgYmVsb3cgb250byB0aGUgc2hhcmVkIGRlc2lnbi10b2tlbnMgOnJvb3QgY3VzdG9tIHByb3BlcnRpZXNcbi8vIChkZXNpZ24tdG9rZW5zL19kZXNpZ24tdG9rZW5zLnNjc3MsIGFscmVhZHkgbG9hZGVkIGZpcnN0IGJ5IGV2ZXJ5IHYyXG4vLyBjb21wb25lbnQpIGluc3RlYWQgb2YgdGhlIGJyb2tlbiAkdmFyaWFibGUgQHVzZSBpbXBvcnRzIC0gc2FtZSBjb252ZW50aW9uXG4vLyBldmVyeSBzaWJsaW5nIEZMQVQgdjIgY29tcG9uZW50IChwb3BvdmVyLCBzZWFyY2gtb3ZlcmxheSwgLi4uKSBhbHJlYWR5XG4vLyBmb2xsb3dzLiBIZXggdmFsdWVzIHRoYXQgaGF2ZSBubyBkaXJlY3QgZGVzaWduLXRva2VuIGVxdWl2YWxlbnQgYXJlIGlubGluZWRcbi8vIGxpdGVyYWxseSBmcm9tIHRoaXMgZmlsZSdzIG93biBcIlRPS0VOIE1BUFBJTkdcIiBjb21tZW50IGFib3ZlIChGaWdtYS12ZXJpZmllZFxuLy8gdmFsdWVzKSwgc2FtZSBhcyB0aGUgdG9rZW4tbWFwcGluZyBkb2MgYWxyZWFkeSBkb2N1bWVudGVkLiBUaGlzIGZpbGUgaXMgbm93XG4vLyByZWFsIChgJmAtbmVzdGVkKSBTQ1NTIC0gc3luY2VkIGludG8gdGhlIFBXQSB2aWEgc3luYy12Mi1jb21wb25lbnRzLmpzJ3Ncbi8vIGNvbXBpbGVTY3NzIHBhdGggKGxpa2UgbGlzdC1yb3cvc2VnbWVudC9ib3R0b20tbmF2L2FwcC1oZWFkZXIpLCBub3QgdGhlXG4vLyBmbGF0IFwiLy9cIi1zdHJpcCBjb3B5LlxuLnFkbmFwcm8tdGV4dC1saW5rIHtcbiAgICAtLXRsLWMtZm9jdXMtcmluZzogdmFyKC0tYy1wdXJwbGUtNTAwKTsgICAgICAgICAgICAgICAgICAvLyBCb3JkZXIvQWN0aW9uLVB1cnBsZS1PdXRsaW5lZFxuICAgIC0tdGwtYy1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTsgIC8vIFB1cnBsZS1IaWdobGlnaHQgQCAyNSVcbiAgICAtLXRsLWMtYmctaG92ZXI6ICAgIHZhcigtLWMtZ3JleS01MCk7ICAgICAgICAvLyAjZjBmMWYyLCA9ICRzdXJmYWNlLWJ1dHRvbnMtc3VidGxlLWhvdmVyXG4gICAgLS10bC1jLWJnLXByZXNzZWQ6ICB2YXIoLS1jLWJvcmRlci1jYXJkKTsgICAgICAgICAgICAgICAgIC8vIFtzeXN0ZW1pYyDigJQgMSBzdGVwIGRhcmtlciB0aGFuIHN1YnRsZS1ob3Zlcl1cbiAgICAtLXRsLWMtdGV4dDogICAgICAgIHZhcigtLWMtdGV4dC1ib2R5KTsgICAgICAvLyA9ICR0ZXh0LW9uLWJvZHlcbiAgICAtLXRsLWMtdGV4dC1ob3ZlcjogIHZhcigtLWMtdGV4dC1ib2R5KTtcbiAgICAtLXRsLWMtdGV4dC1wcmVzc2VkOiB2YXIoLS1jLWdyZXktODAwKTsgICAgICAgICAgICAgICAgLy8gW3N5c3RlbWljIOKAlCAxIHN0ZXAgZGFya2VyIHRoYW4gdGV4dC1vbi1ib2R5XVxuXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgLy8gYGRpc3BsYXlgIG9uIHRoZSBjbGFzcyBiZWF0cyB0aGUgYnJvd3NlcidzIG93biBgW2hpZGRlbl0geyBkaXNwbGF5OiBub25lIH1gLCBzb1xuICAgIC8vIHdpdGhvdXQgdGhpcyBhIGhvc3QgdGhhdCBoaWRlcyB0aGUgbGluayB3aXRoIHRoZSBoaWRkZW4gYXR0cmlidXRlICh0aGUgaG9uZXN0IHdheVxuICAgIC8vIHRvIGhpZGUgYW4gZWxlbWVudCkgZ290IGEgbGluayB0aGF0IHN0YXllZCB2aXNpYmxlLiBTYW1lIG9uZS1saW5lciB0aGUgb3RoZXJcbiAgICAvLyBjb21wb25lbnRzIHdpdGggYSBkaXNwbGF5IG9mIHRoZWlyIG93biBjYXJyeS4gW0tpbSAxOS4wOC4yMDI2XVxuICAgICZbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDJweCB2YXIoLS1zLTEpOyAgICAgICAgICAgICAgICAgIC8vID0gJHNwYWNpbmcteHhzICg0cHgpXG4gICAgYm9yZGVyOiAwLjVweCBzb2xpZCB0cmFuc3BhcmVudDsgICAgICAgICAgLy8gcmVzZXJ2ZXMgc3BhY2UgZm9yIGhvdmVyIGJvcmRlclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMik7ICAgICAgICAgICAgICAgIC8vID0gJHJhZGl1cy1zbWFsbCAoOHB4KVxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB2YXIoLS10bC1jLXRleHQpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mZik7ICAgICAgICAgICAgICAgICAgIC8vID0gJGZvbnQtZmFtaWx5LXByaW1hcnlcbiAgICBmb250LXdlaWdodDogNzAwOyAgICAgICAgICAgICAgICAgICAgICAgICAvLyA9ICRmb250LXdlaWdodC1ib2xkIChubyAtLWZ3LWJvbGQgdG9rZW4gZXhpc3RzIHlldClcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlLFxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLFxuICAgICAgICAgICAgICAgIGNvbG9yIDEyMG1zIGVhc2UsXG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uIDEyMG1zIGVhc2UsXG4gICAgICAgICAgICAgICAgb3BhY2l0eSAxMjBtcyBlYXNlO1xuXG4gICAgLy8gLS0tLSBGb2N1cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICY6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4gICAgJjpmb2N1cy12aXNpYmxlLFxuICAgICYuZm9yY2UtZm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tdGwtYy1mb2N1cy1yaW5nKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCB2YXIoLS10bC1jLWZvY3VzLWdsb3cpO1xuICAgIH1cblxuICAgIC8vIC0tLS0gRGlzYWJsZWQgKHdpbnMgb3ZlciBldmVyeXRoaW5nKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICZbZGlzYWJsZWRdLFxuICAgICYudGV4dC1saW5rLWRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAmOmZvY3VzLXZpc2libGUsXG4gICAgICAgICYuZm9yY2UtZm9jdXMgeyBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7IGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICB9XG5cbiAgICAvLyAtLS0gQ29sb3VyIHZhcmlhbnRzIChkZWZhdWx0IHN0YXRlKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgJi50ZXh0LWxpbmstbmV1dHJhbCAgIHtcbiAgICAgICAgLS10bC1jLXRleHQ6IHZhcigtLWMtdGV4dC1ib2R5KTtcbiAgICAgICAgLS10bC1jLXRleHQtcHJlc3NlZDogdmFyKC0tYy1ncmV5LTgwMCk7XG4gICAgfVxuICAgICYudGV4dC1saW5rLWVycm9yICAgICB7XG4gICAgICAgIC0tdGwtYy10ZXh0OiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCk7ICAgIC8vICNjNjVhNWEsID0gJHRleHQtZXJyb3IgLyAkdGV4dC1vbi1lcnJvclxuICAgICAgICAtLXRsLWMtdGV4dC1wcmVzc2VkOiB2YXIoLS1jLWNoaXAtcmVkLXRleHQpOyAgICAgICAgICAgICAgLy8gMSB0aWVyIGRhcmtlciB0aGFuICR0ZXh0LWVycm9yXG4gICAgfVxuICAgICYudGV4dC1saW5rLXN1Y2Nlc3MgICB7XG4gICAgICAgIC0tdGwtYy10ZXh0OiB2YXIoLS1jLXNpZ25hbC1ncmVlbi10ZXh0KTsgIC8vICM0MjhiNmUsID0gJHRleHQtc3VjY2Vzcy1kYXJrXG4gICAgICAgIC0tdGwtYy10ZXh0LXByZXNzZWQ6IHZhcigtLWMtY2hpcC1ncmVlbi10ZXh0KTsgICAgICAgICAgICAgICAvLyAxIHRpZXIgZGFya2VyIHRoYW4gJHRleHQtc3VjY2Vzcy1kYXJrXG4gICAgfVxuICAgICYudGV4dC1saW5rLWhpZ2hsaWdodCB7XG4gICAgICAgIC0tdGwtYy10ZXh0OiB2YXIoLS1jLXB1cnBsZS1oaWdobGlnaHQpOyAgIC8vICM0NjUyZjMsID0gJHB1cnBsZS1oaWdobGlnaHRcbiAgICAgICAgLS10bC1jLXRleHQtcHJlc3NlZDogdmFyKC0tYy1wdXJwbGUtNzAwKTsgICAgICAgICAgICAgIC8vIHByZXNzZWQtcHVycGxlID0gZGFya2VzdCBicmFuZFxuICAgIH1cblxuICAgIC8vIC0tLSBTaXplIHZhcmlhbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAmLnRleHQtbGluay0xMCB7IGZvbnQtc2l6ZTogMTBweDsgbGluZS1oZWlnaHQ6IDIwcHg7IH1cbiAgICAmLnRleHQtbGluay0xMiB7IGZvbnQtc2l6ZTogMTJweDsgbGluZS1oZWlnaHQ6IDIwcHg7IH1cbiAgICAmLnRleHQtbGluay0xNCB7IGZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDI0cHg7IH1cbiAgICAmLnRleHQtbGluay0xNiB7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDI0cHg7IH1cbiAgICAmLnRleHQtbGluay0yMCB7IGZvbnQtc2l6ZTogMjBweDsgbGluZS1oZWlnaHQ6IDMycHg7IH1cblxuICAgIC8vIC0tLSBXZWlnaHQgdmFyaWFudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAmLnRleHQtbGluay13ZWlnaHQtcmVndWxhciAgeyBmb250LXdlaWdodDogdmFyKC0tZnctcmVndWxhcik7IH1cbiAgICAmLnRleHQtbGluay13ZWlnaHQtbWVkaXVtICAgeyBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTsgfVxuICAgICYudGV4dC1saW5rLXdlaWdodC1zZW1pYm9sZCB7IGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pKTsgfVxuICAgICYudGV4dC1saW5rLXdlaWdodC1ib2xkICAgICB7IGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuICAgIC8vIC0tLSBIb3ZlciB0eXBlOiBsaW5rICh1bmRlcmxpbmUgb25seSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICYudGV4dC1saW5rLWhvdmVyLWxpbms6bm90KFtkaXNhYmxlZF0pOm5vdCgudGV4dC1saW5rLWRpc2FibGVkKTpob3ZlcixcbiAgICAmLnRleHQtbGluay1ob3Zlci1saW5rLnRleHQtbGluay1hY3RpdmUge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICAvLyAtLS0gSG92ZXIgdHlwZTogYmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gTmV1dHJhbCArIEhpZ2hsaWdodDogYmFja2dyb3VuZCB0aW50IHRvIHN1YnRsZS1ob3ZlciAoZ2VlbiBib3JkZXIpXG4gICAgLy8gRXJyb3IgKyBTdWNjZXNzICAgIDogc2lnbmFsLXRpbnQgKyAwLjVweCBzaWduYWwgYm9yZGVyICsgdGV4dCBzaGlmdFxuICAgICYudGV4dC1saW5rLWhvdmVyLWJnOm5vdChbZGlzYWJsZWRdKTpub3QoLnRleHQtbGluay1kaXNhYmxlZCk6aG92ZXIsXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRsLWMtYmctaG92ZXIpO1xuICAgIH1cblxuICAgICYudGV4dC1saW5rLWhvdmVyLWJnLnRleHQtbGluay1lcnJvcjpub3QoW2Rpc2FibGVkXSk6bm90KC50ZXh0LWxpbmstZGlzYWJsZWQpOmhvdmVyLFxuICAgICYudGV4dC1saW5rLWhvdmVyLWJnLnRleHQtbGluay1lcnJvci50ZXh0LWxpbmstYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLXNvZnQpOyAgICAgICAgICAgICAgICAgICAgICAvLyA9ICRzdXJmYWNlLXNpZ25hbC1yZWQtNTAgKG5vIGRpcmVjdCB0b2tlbjsgRmlnbWEtdmVyaWZpZWQgaGV4LCBzZWUgaGVhZGVyKVxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTsgICAvLyA9ICRib3JkZXItZXJyb3ItZGFya1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpOyAgICAgICAgICAvLyA9ICR0ZXh0LW9uLWVycm9yXG4gICAgfVxuXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLXN1Y2Nlc3M6bm90KFtkaXNhYmxlZF0pOm5vdCgudGV4dC1saW5rLWRpc2FibGVkKTpob3ZlcixcbiAgICAmLnRleHQtbGluay1ob3Zlci1iZy50ZXh0LWxpbmstc3VjY2Vzcy50ZXh0LWxpbmstYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLWdyZWVuLWJnKTsgICAgICAgICAgICAgICAgICAgICAgLy8gPSAkc3VyZmFjZS1zaWduYWwtZ3JlZW4tNTAgKG5vIGRpcmVjdCB0b2tlbjsgRmlnbWEtdmVyaWZpZWQgaGV4LCBzZWUgaGVhZGVyKVxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQpOyAvLyA9ICRib3JkZXItc3VjY2Vzcy1kYXJrXG4gICAgICAgIC8vIHRleHQgc3RheXMgJHRleHQtc3VjY2Vzcy1kYXJrIChzYW1lIGh1ZSBhcyBib3JkZXItc3VjY2Vzcy1kYXJrKVxuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gIFBSRVNTRUQg4oCUIDphY3RpdmUgKyAudGV4dC1saW5rLXByZXNzZWQgKyAuZm9yY2UtcHJlc3NlZFxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICAvLyAtLS0gaG92ZXItbGluayBwcmVzc2VkOiBzdWJ0bGUtcHJlc3NlZCBiZyArIGRhcmtlciB0ZXh0ICsgdW5kZXJsaW5lLlxuICAgICYudGV4dC1saW5rLWhvdmVyLWxpbms6bm90KFtkaXNhYmxlZF0pOm5vdCgudGV4dC1saW5rLWRpc2FibGVkKTphY3RpdmUsXG4gICAgJi50ZXh0LWxpbmstaG92ZXItbGluay50ZXh0LWxpbmstcHJlc3NlZCxcbiAgICAmLnRleHQtbGluay1ob3Zlci1saW5rLmZvcmNlLXByZXNzZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10bC1jLWJnLXByZXNzZWQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tdGwtYy10ZXh0LXByZXNzZWQpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICAvLyAtLS0gaG92ZXItYmcgcHJlc3NlZDogYmcgb25lIHRpZXIgZGVlcGVyIHRoYW4gaG92ZXItYmcuXG4gICAgLy8gTmV1dHJhbCArIEhpZ2hsaWdodDogc3VidGxlLXByZXNzZWRcbiAgICAmLnRleHQtbGluay1ob3Zlci1iZzpub3QoW2Rpc2FibGVkXSk6bm90KC50ZXh0LWxpbmstZGlzYWJsZWQpOmFjdGl2ZSxcbiAgICAmLnRleHQtbGluay1ob3Zlci1iZy50ZXh0LWxpbmstcHJlc3NlZCxcbiAgICAmLnRleHQtbGluay1ob3Zlci1iZy5mb3JjZS1wcmVzc2VkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGwtYy1iZy1wcmVzc2VkKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXRsLWMtdGV4dC1wcmVzc2VkKTtcbiAgICB9XG4gICAgLy8gRXJyb3IgcHJlc3NlZFxuICAgICYudGV4dC1saW5rLWhvdmVyLWJnLnRleHQtbGluay1lcnJvcjpub3QoW2Rpc2FibGVkXSk6bm90KC50ZXh0LWxpbmstZGlzYWJsZWQpOmFjdGl2ZSxcbiAgICAmLnRleHQtbGluay1ob3Zlci1iZy50ZXh0LWxpbmstZXJyb3IudGV4dC1saW5rLXByZXNzZWQsXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLWVycm9yLmZvcmNlLXByZXNzZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpOyAgICAgICAgICAgICAgICAgICAgIC8vIHNpZ25hbC1yZWQtMTAwICgxIHN0ZXAgZGVlcGVyIHRoYW4gLTUwKVxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtdGFnLWNyaXRpY2FsLXRleHQpOyAgICAgICAgICAgICAgICAgICAvLyAxIHRpZXIgZGFya2VyIHRoYW4gJGJvcmRlci1lcnJvci1kYXJrXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWNoaXAtcmVkLXRleHQpO1xuICAgIH1cbiAgICAvLyBTdWNjZXNzIHByZXNzZWRcbiAgICAmLnRleHQtbGluay1ob3Zlci1iZy50ZXh0LWxpbmstc3VjY2Vzczpub3QoW2Rpc2FibGVkXSk6bm90KC50ZXh0LWxpbmstZGlzYWJsZWQpOmFjdGl2ZSxcbiAgICAmLnRleHQtbGluay1ob3Zlci1iZy50ZXh0LWxpbmstc3VjY2Vzcy50ZXh0LWxpbmstcHJlc3NlZCxcbiAgICAmLnRleHQtbGluay1ob3Zlci1iZy50ZXh0LWxpbmstc3VjY2Vzcy5mb3JjZS1wcmVzc2VkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLWdyZWVuLWJnKTsgICAgICAgICAgICAgICAgICAgICAvLyBzaWduYWwtZ3JlZW4tMTAwICgxIHN0ZXAgZGVlcGVyIHRoYW4gLTUwKVxuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtY2hpcC1ncmVlbi10ZXh0KTsgICAgICAgICAgICAgICAgICAgLy8gMSB0aWVyIGRhcmtlciB0aGFuICRib3JkZXItc3VjY2Vzcy1kYXJrXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWNoaXAtZ3JlZW4tdGV4dCk7XG4gICAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBEYXJrLW1vZGUgb3ZlcnJpZGVzXG4vLyAgW0lORkVSUkVEXSDigJQgRmlnbWEgc2hvd2VkIG9ubHkgbGlnaHQgdG9rZW5zLiBQYXR0ZXJuIGFsaWduZWRcbi8vICB3aXRoIHFkbmFwcm8tYnV0dG9uICsgcWRuYXByby1pY29uLWJ0biBkYXJrLW1vZGUgdHJlYXRtZW50OiBpbnZlcnRcbi8vICB0aGUgc3VyZmFjZSB0aW50cyAobGlnaHQg4oaSIGRhcmsgZ3JleSkgYW5kIGxpZnQgdGV4dCB0byB0aGVcbi8vICBsaWdodGVyIHJhbXAgdmFsdWUgc28gY29udHJhc3Qgc3RheXMgQUEuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby10ZXh0LWxpbmsge1xuICAgIC0tdGwtYy1iZy1ob3ZlcjogICAgIzQwNDQ0ZDsgICAgICAgICAgICAgICAgIC8vIFN1cmZhY2UvQnV0dG9ucy9TdWJ0bGUtaG92ZXItZGFya1xuICAgIC0tdGwtYy1iZy1wcmVzc2VkOiAgIzU2NWI2NjsgICAgICAgICAgICAgICAgIC8vIDEgdGllciBkYXJrZXIgdGhhbiBiZy1ob3ZlclxuICAgIC0tdGwtYy10ZXh0OiAgICAgICAgI2UxZTNlNjtcbiAgICAtLXRsLWMtdGV4dC1ob3ZlcjogICNlMWUzZTY7XG4gICAgLS10bC1jLXRleHQtcHJlc3NlZDogI2YwZjFmMjtcblxuICAgICYudGV4dC1saW5rLW5ldXRyYWwgICB7XG4gICAgICAgIC0tdGwtYy10ZXh0OiAjZTFlM2U2O1xuICAgICAgICAtLXRsLWMtdGV4dC1wcmVzc2VkOiAjZjBmMWYyO1xuICAgIH1cbiAgICAmLnRleHQtbGluay1lcnJvciAgICAge1xuICAgICAgICAtLXRsLWMtdGV4dDogI2ZiYWFhYTtcbiAgICAgICAgLS10bC1jLXRleHQtcHJlc3NlZDogI2ZlZTNlMztcbiAgICB9XG4gICAgJi50ZXh0LWxpbmstc3VjY2VzcyAgIHtcbiAgICAgICAgLS10bC1jLXRleHQ6ICM4YmVjYzU7XG4gICAgICAgIC0tdGwtYy10ZXh0LXByZXNzZWQ6ICNlMmZhZjE7XG4gICAgfVxuICAgICYudGV4dC1saW5rLWhpZ2hsaWdodCB7XG4gICAgICAgIC0tdGwtYy10ZXh0OiAjYWFiMmZmOyAgICAgICAgICAgICAgICAgICAgLy8gbGlmdGVkIHB1cnBsZS1oaWdobGlnaHQgZm9yIGRhcmsgY29udHJhc3RcbiAgICAgICAgLS10bC1jLXRleHQtcHJlc3NlZDogI2Q2ZGFmZjtcbiAgICB9XG5cbiAgICAvLyBIb3Zlci1iZyBjb2xvci1zcGVjaWZpYyBkYXJrIGVxdWl2YWxlbnRzXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLWVycm9yOm5vdChbZGlzYWJsZWRdKTpub3QoLnRleHQtbGluay1kaXNhYmxlZCk6aG92ZXIsXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLWVycm9yLnRleHQtbGluay1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNWEyYjJiOyAgICAgICAgICAgICAgICAgICAgIC8vIGRhcmsgc2lnbmFsLXJlZCBiZ1xuICAgICAgICBib3JkZXItY29sb3I6ICNmYmFhYWE7ICAgICAgICAgICAgICAgICAgIC8vIGxpZ2h0IHJlZCBib3JkZXJcbiAgICAgICAgY29sb3I6ICNmZWUzZTM7XG4gICAgfVxuICAgICYudGV4dC1saW5rLWhvdmVyLWJnLnRleHQtbGluay1zdWNjZXNzOm5vdChbZGlzYWJsZWRdKTpub3QoLnRleHQtbGluay1kaXNhYmxlZCk6aG92ZXIsXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLXN1Y2Nlc3MudGV4dC1saW5rLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMyYTU1NDQ7ICAgICAgICAgICAgICAgICAgICAgLy8gZGFyayBzaWduYWwtZ3JlZW4gYmdcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjOGJlY2M1O1xuICAgICAgICBjb2xvcjogI2UyZmFmMTtcbiAgICB9XG5cbiAgICAvLyBQcmVzc2VkIGRhcmtcbiAgICAmLnRleHQtbGluay1ob3Zlci1iZy50ZXh0LWxpbmstZXJyb3I6bm90KFtkaXNhYmxlZF0pOm5vdCgudGV4dC1saW5rLWRpc2FibGVkKTphY3RpdmUsXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLWVycm9yLnRleHQtbGluay1wcmVzc2VkLFxuICAgICYudGV4dC1saW5rLWhvdmVyLWJnLnRleHQtbGluay1lcnJvci5mb3JjZS1wcmVzc2VkIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzdhMzgzODtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZmVlM2UzO1xuICAgICAgICBjb2xvcjogI2ZlZTNlMztcbiAgICB9XG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLXN1Y2Nlc3M6bm90KFtkaXNhYmxlZF0pOm5vdCgudGV4dC1saW5rLWRpc2FibGVkKTphY3RpdmUsXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLXN1Y2Nlc3MudGV4dC1saW5rLXByZXNzZWQsXG4gICAgJi50ZXh0LWxpbmstaG92ZXItYmcudGV4dC1saW5rLXN1Y2Nlc3MuZm9yY2UtcHJlc3NlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMzZDdhNjI7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2UyZmFmMTtcbiAgICAgICAgY29sb3I6ICNlMmZhZjE7XG4gICAgfVxufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvdGltZXN0YW1wL190aW1lc3RhbXAtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnFkbmFwcm8tdGltZXN0YW1wIHtcbiAgLS10cy1jb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbiAgZGlzcGxheTogaW5saW5lO1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgc2Fucy1zZXJpZjtcbiAgY29sb3I6IHZhcigtLXRzLWNvbG9yKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5xZG5hcHJvLXRpbWVzdGFtcC50aW1lc3RhbXAtY29sb3ItcHVycGxlIHtcbiAgLS10cy1jb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLXRpbWVzdGFtcC50aW1lc3RhbXAtY29sb3ItaGlnaGxpZ2h0IHtcbiAgLS10cy1jb2xvcjogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbn1cbi5xZG5hcHJvLXRpbWVzdGFtcC50aW1lc3RhbXAtd2VpZ2h0LXJlZ3VsYXIge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLnFkbmFwcm8tdGltZXN0YW1wLnRpbWVzdGFtcC13ZWlnaHQtYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4ucWRuYXByby10aW1lc3RhbXAudGltZXN0YW1wLXNpemUtMTAge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xufVxuLnFkbmFwcm8tdGltZXN0YW1wLnRpbWVzdGFtcC1zaXplLTExIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbn1cbi5xZG5hcHJvLXRpbWVzdGFtcC50aW1lc3RhbXAtc2l6ZS0xMiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG59XG4ucWRuYXByby10aW1lc3RhbXAudGltZXN0YW1wLXNpemUtMTMge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xufVxuLnFkbmFwcm8tdGltZXN0YW1wLnRpbWVzdGFtcC1zaXplLTE0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cbi5xZG5hcHJvLXRpbWVzdGFtcC50aW1lc3RhbXAtc2l6ZS0xNSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDIycHg7XG59XG4ucWRuYXByby10aW1lc3RhbXAudGltZXN0YW1wLXNpemUtMTYge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuLnFkbmFwcm8tdGltZXN0YW1wLnRpbWVzdGFtcC1pbmxpbmUge1xuICBhbGlnbi1zZWxmOiBiYXNlbGluZTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGltZXN0YW1wIHtcbiAgLS10cy1jb2xvcjogI2I4YmNjNDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRpbWVzdGFtcC50aW1lc3RhbXAtY29sb3ItcHVycGxlIHtcbiAgLS10cy1jb2xvcjogI2I4YmNjNDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRpbWVzdGFtcC50aW1lc3RhbXAtY29sb3ItaGlnaGxpZ2h0IHtcbiAgLS10cy1jb2xvcjogI2E1YWNmZjtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL3RvYXN0L190b2FzdC1jb21waWxlZC5jc3MuXG4vLyBLZXB0IGVxdWFsIHRvIHRoZSBsaXZlIGNvbXBpbGVkIENTUzsgZWRpdCBIRVJFLCB0aGVuIHJ1biB0aGUgZ3VscCB0YXNrLlxuXG4ucWRuYXByby10b2FzdCB7XG4gIC0tdG9hc3QtYmc6IHZhcigtLWMtZ3JleS05NTApO1xuICAtLXRvYXN0LXRleHQ6ICNmZmZmZmY7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTAwMDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDRweCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA4cHggMTRweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdmFyKC0tdG9hc3QtYmcpO1xuICBjb2xvcjogdmFyKC0tdG9hc3QtdGV4dCk7XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3gtc2hhZG93OiAwIDZweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4xOCksIDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE2MG1zIGVhc2Utb3V0LCB0cmFuc2Zvcm0gMjIwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC44LCAwLjIsIDEpO1xufVxuLnFkbmFwcm8tdG9hc3QudG9hc3QtcG9zaXRpb24tdG9wIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgY2FsYygtMTAwJSArIDRweCkpO1xufVxuLnFkbmFwcm8tdG9hc3QudG9hc3QtcG9zaXRpb24tYm90dG9tIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgNHB4KTtcbn1cbi5xZG5hcHJvLXRvYXN0IC50b2FzdC1pY29uIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5xZG5hcHJvLXRvYXN0IC50b2FzdC1sYWJlbCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xufVxuLy8gU25hY2tiYXIgYWN0aW9uIGJ1dHRvbiAoZS5nLiBcIlVuZG9cIikg4oCUIGluaGVyaXRzIHRoZSB0b2FzdCdzIHRleHQgY29sb3VyLFxuLy8gcGlsbCB0YXAgdGFyZ2V0LCBzaXRzIGFmdGVyIHRoZSBsYWJlbCB3aXRoIGEgbGl0dGxlIGJyZWF0aGluZyByb29tLlxuLnFkbmFwcm8tdG9hc3QgLnRvYXN0LWFjdGlvbiB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IC00cHggLTZweCAtNHB4IDRweDtcbiAgcGFkZGluZzogNHB4IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIG9wYWNpdHk6IDAuOTU7XG59XG4ucWRuYXByby10b2FzdCAudG9hc3QtYWN0aW9uOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTsgfVxuLnFkbmFwcm8tdG9hc3QgLnRvYXN0LWFjdGlvbjphY3RpdmUgeyBvcGFjaXR5OiAwLjc1OyB9XG4vLyBPbiB0aGUgbGlnaHQgKHllbGxvdy9yZWQpIHZhcmlhbnRzIHRoZSB3aGl0ZS1hbHBoYSBob3ZlciBpcyBpbnZpc2libGUg4oCUIHRpbnQgZGFya1xuLnFkbmFwcm8tdG9hc3QudG9hc3QtdmFyaWFudC15ZWxsb3cgLnRvYXN0LWFjdGlvbjpob3Zlcixcbi5xZG5hcHJvLXRvYXN0LnRvYXN0LXZhcmlhbnQtcmVkIC50b2FzdC1hY3Rpb246aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDgpOyB9XG4ucWRuYXByby10b2FzdC50b2FzdC12YXJpYW50LWRhcmsge1xuICAtLXRvYXN0LWJnOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgLS10b2FzdC10ZXh0OiAjZmZmZmZmO1xufVxuLnFkbmFwcm8tdG9hc3QudG9hc3QtdmFyaWFudC1wdXJwbGUge1xuICAtLXRvYXN0LWJnOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLXRvYXN0LXRleHQ6ICNmZmZmZmY7XG59XG4vLyBXYXJuaW5nIChhbWJlcikgKyBlcnJvciAocmVkKSDigJQgcmV1c2UgdGhlIGRlc2lnbi1zeXN0ZW0gd2FybmluZyBwYWxldHRlXG4vLyAoc2FtZSB2YWx1ZXMgYXMgdGhlIGFuc3dlci1vcHRpb24gd2FybmluZyBwaWxsICsgcWRuYXByby1idXR0b24gd2FybmluZyB0aW50cykuXG4vLyBBIDFweCBib3JkZXIgZGVmaW5lcyB0aGUgZWRnZSBzaW5jZSB0aGVzZSBzaXQgbGlnaHQtb24tbGlnaHQuXG4ucWRuYXByby10b2FzdC50b2FzdC12YXJpYW50LXllbGxvdyB7XG4gIC0tdG9hc3QtYmc6IHZhcigtLWMtd2FybmluZy1icmlnaHQtYmcpO1xuICAtLXRvYXN0LXRleHQ6IHZhcigtLWMtd2FybmluZy1icmlnaHQtdGV4dCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtd2FybmluZy1icmlnaHQtYm9yZGVyKTtcbn1cbi5xZG5hcHJvLXRvYXN0LnRvYXN0LXZhcmlhbnQtcmVkIHtcbiAgLS10b2FzdC1iZzogdmFyKC0tYy1zaWduYWwtcmVkLWJnKTtcbiAgLS10b2FzdC10ZXh0OiB2YXIoLS1jLXRhZy1jcml0aWNhbC10ZXh0KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1jaGlwLXJlZC0yLWJnKTtcbn1cbi5xZG5hcHJvLXRvYXN0LnRvYXN0LXZpc2libGUsIC5xZG5hcHJvLXRvYXN0W3Zpc2libGVdIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5xZG5hcHJvLXRvYXN0LnRvYXN0LXZpc2libGUudG9hc3QtcG9zaXRpb24tdG9wLCAucWRuYXByby10b2FzdFt2aXNpYmxlXS50b2FzdC1wb3NpdGlvbi10b3Age1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtMTAwJSk7XG59XG4ucWRuYXByby10b2FzdC50b2FzdC12aXNpYmxlLnRvYXN0LXBvc2l0aW9uLWJvdHRvbSwgLnFkbmFwcm8tdG9hc3RbdmlzaWJsZV0udG9hc3QtcG9zaXRpb24tYm90dG9tIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRvYXN0IHtcbiAgYm94LXNoYWRvdzogMCA2cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuNCksIDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdG9hc3QudG9hc3QtdmFyaWFudC1kYXJrIHtcbiAgLS10b2FzdC1iZzogI2YwZjFmMjtcbiAgLS10b2FzdC10ZXh0OiAjMGIwYjBkO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdG9hc3QudG9hc3QtdmFyaWFudC1wdXJwbGUge1xuICAtLXRvYXN0LWJnOiAjYTVhY2ZmO1xuICAtLXRvYXN0LXRleHQ6ICMwYjBiMGQ7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLXRvYXN0IHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEyMG1zIGxpbmVhcjtcbiAgfVxuICAucWRuYXByby10b2FzdC50b2FzdC1wb3NpdGlvbi10b3Age1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC0xMDAlKSAhaW1wb3J0YW50O1xuICB9XG4gIC5xZG5hcHJvLXRvYXN0LnRvYXN0LXBvc2l0aW9uLWJvdHRvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCkgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvdG9nZ2xlL190b2dnbGUtY29tcGlsZWQuY3NzLlxuLy8gS2VwdCBlcXVhbCB0byB0aGUgbGl2ZSBjb21waWxlZCBDU1M7IGVkaXQgSEVSRSwgdGhlbiBydW4gdGhlIGd1bHAgdGFzay5cblxuLnFkbmFwcm8tdG9nZ2xlIHtcbiAgLS10Zy1iZzogdmFyKC0tYy1ncmV5LTMwMCk7XG4gIC0tdGctYmctYWN0aXZlOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAtLXRnLWJnLWhvdmVyOiB2YXIoLS1jLWdyZXktNDAwKTtcbiAgLS10Zy1iZy1hY3RpdmUtaG92ZXI6IHZhcigtLWMtYWN0aW9uLTYwMCk7XG4gIC0tdGctdGh1bWI6ICNmZmZmZmY7XG4gIC0tdGctZm9jdXMtcmluZzogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgLS10Zy1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRnLWJnKTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE4MG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tdG9nZ2xlIC50b2dnbGUtdGh1bWIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10Zy10aHVtYik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm94LXNoYWRvdzogMCAwIDAgcmdiYSgwLCAwLCAwLCAwLjA0KSwgMCAzcHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgM3B4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGxlZnQgMzIwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuMzUsIDAuNjQsIDEpLCB0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuMzUsIDAuNjQsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDE4MG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tdG9nZ2xlLnRvZ2dsZS1hY3RpdmUgLnRvZ2dsZS10aHVtYiB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjtcbn1cbi5xZG5hcHJvLXRvZ2dsZS50b2dnbGUtc2l6ZS1hdmVyYWdlIHtcbiAgd2lkdGg6IDUxcHg7XG4gIGhlaWdodDogMzFweDtcbn1cbi5xZG5hcHJvLXRvZ2dsZS50b2dnbGUtc2l6ZS1hdmVyYWdlIC50b2dnbGUtdGh1bWIge1xuICB3aWR0aDogMjdweDtcbiAgaGVpZ2h0OiAyN3B4O1xuICBsZWZ0OiAycHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbi5xZG5hcHJvLXRvZ2dsZS50b2dnbGUtc2l6ZS1hdmVyYWdlLnRvZ2dsZS1hY3RpdmUgLnRvZ2dsZS10aHVtYiB7XG4gIGxlZnQ6IDIycHg7XG59XG4ucWRuYXByby10b2dnbGUudG9nZ2xlLXNpemUtc21hbGwge1xuICB3aWR0aDogMzdweDtcbiAgaGVpZ2h0OiAyMnB4O1xufVxuLnFkbmFwcm8tdG9nZ2xlLnRvZ2dsZS1zaXplLXNtYWxsIC50b2dnbGUtdGh1bWIge1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBsZWZ0OiAycHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbi5xZG5hcHJvLXRvZ2dsZS50b2dnbGUtc2l6ZS1zbWFsbC50b2dnbGUtYWN0aXZlIC50b2dnbGUtdGh1bWIge1xuICBsZWZ0OiAxN3B4O1xufVxuLnFkbmFwcm8tdG9nZ2xlLnRvZ2dsZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10Zy1iZy1hY3RpdmUpO1xufVxuLnFkbmFwcm8tdG9nZ2xlOmhvdmVyOm5vdCgudG9nZ2xlLWRpc2FibGVkKTpub3QoLnRvZ2dsZS1hY3RpdmUpLCAucWRuYXByby10b2dnbGUuZm9yY2UtaG92ZXI6bm90KC50b2dnbGUtZGlzYWJsZWQpOm5vdCgudG9nZ2xlLWFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10Zy1iZy1ob3Zlcik7XG59XG4ucWRuYXByby10b2dnbGU6aG92ZXI6bm90KC50b2dnbGUtZGlzYWJsZWQpLnRvZ2dsZS1hY3RpdmUsIC5xZG5hcHJvLXRvZ2dsZS5mb3JjZS1ob3Zlcjpub3QoLnRvZ2dsZS1kaXNhYmxlZCkudG9nZ2xlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRnLWJnLWFjdGl2ZS1ob3Zlcik7XG59XG4ucWRuYXByby10b2dnbGU6YWN0aXZlOm5vdCgudG9nZ2xlLWRpc2FibGVkKSAudG9nZ2xlLXRodW1iLCAucWRuYXByby10b2dnbGUuZm9yY2UtcHJlc3NlZDpub3QoLnRvZ2dsZS1kaXNhYmxlZCkgLnRvZ2dsZS10aHVtYiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZVgoMS4xNSk7XG59XG4ucWRuYXByby10b2dnbGU6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLnFkbmFwcm8tdG9nZ2xlOmZvY3VzLXZpc2libGUsIC5xZG5hcHJvLXRvZ2dsZS5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS10Zy1mb2N1cy1yaW5nKSwgMCAwIDAgNnB4IHZhcigtLXRnLWZvY3VzLWdsb3cpO1xufVxuLnFkbmFwcm8tdG9nZ2xlLnRvZ2dsZS1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby10b2dnbGUudG9nZ2xlLWRpc2FibGVkOm5vdCgudG9nZ2xlLWFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xufVxuLnFkbmFwcm8tdG9nZ2xlLnRvZ2dsZS1kaXNhYmxlZC50b2dnbGUtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwKTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdG9nZ2xlIHtcbiAgLS10Zy1iZzogIzU2NWI2NjtcbiAgLS10Zy1iZy1hY3RpdmU6ICM0NjUyZjM7XG4gIC0tdGctYmctaG92ZXI6ICM2YjcyODA7XG4gIC0tdGctYmctYWN0aXZlLWhvdmVyOiAjNWE2NmZmO1xuICAtLXRnLXRodW1iOiAjZTFlM2U2O1xuICAtLXRnLWZvY3VzLXJpbmc6ICNhNWFjZmY7XG4gIC0tdGctZm9jdXMtZ2xvdzogcmdiYSg3MCwgODIsIDI0MywgMC40KTtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRvZ2dsZS50b2dnbGUtZGlzYWJsZWQ6bm90KC50b2dnbGUtYWN0aXZlKSB7XG4gIGJhY2tncm91bmQ6ICM0MDQ0NGQ7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10b2dnbGUudG9nZ2xlLWRpc2FibGVkLnRvZ2dsZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjNDA0NDRkO1xufVxuIiwiLy8gU0NTUyBzb3VyY2UgZm9yIHRoZSBjb21wb25lbnRzLXYyIGJ1bmRsZSAoS2plbGQgMjAyNi0wNi0wMikuXG4vLyBDb21waWxlZCBieSBndWxwIFwic2Fzcy12Mi1jb21wb25lbnRzXCIgdG8gd2ViL2NvbXBvbmVudHMtdjIvdG9vbGJhci1hY3Rpb24tYnRuL19hY3Rpb24tYnRuLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLWFjdGlvbi1idG4ge1xuICAtLWFiLWJnOiB0cmFuc3BhcmVudDtcbiAgLS1hYi1iZy1ob3ZlcjogdmFyKC0tYy1ncmV5LTUwKTtcbiAgLS1hYi1iZy1hY3RpdmU6ICNlNmU5ZmY7XG4gIC0tYWItYmctYWN0aXZlLWhvdmVyOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCk7XG4gIC0tYWItaWNvbjogdmFyKC0tYy1ncmV5LTk1MCk7XG4gIC0tYWItaWNvbi1hY3RpdmU6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIC0tYWItdW5kZXJsaW5lOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLWFiLWZvY3VzLXJpbmc6IHZhcigtLWMtZ3JleS05NTApO1xuICAtLWFiLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xuICAtLWFiLWRpc2FibGVkLWJnOiB2YXIoLS1jLWdyZXktNTApO1xuICAtLWFiLWRpc2FibGVkLWljb246IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG4gIC0tYWItYWN0aXZlLWxpbmUtd2lkdGg6IDE2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWItYmcpO1xuICBjb2xvcjogdmFyKC0tYWItaWNvbik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2Utb3V0LCBjb2xvciAxMjBtcyBlYXNlLW91dDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuIHFkbmFwcm8taWNvbixcbi5xZG5hcHJvLWFjdGlvbi1idG4gLmFjdGlvbi1idG4taWNvbixcbi5xZG5hcHJvLWFjdGlvbi1idG4gLmFjdGlvbi1idG4tY2hldnJvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LXNocmluazogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0biBzdmcge1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuIC5hY3Rpb24tYnRuLWljb24td3JhcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4gLmFjdGlvbi1idG4tZG90IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0ycHg7XG4gIHJpZ2h0OiAtMnB4O1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm4tcmVkLTUwMCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAgMCAxLjVweCB2YXIoLS1hYi1kb3QtcmluZywgI2ZmZmZmZik7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiB2YXIoLS1hYi1hY3RpdmUtbGluZS13aWR0aCk7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hYi11bmRlcmxpbmUpO1xuICBib3JkZXItcmFkaXVzOiAxcHggMXB4IDAgMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHNjYWxlWCgwKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjYwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuMzUsIDAuNjQsIDEpLCBvcGFjaXR5IDE4MG1zIGVhc2Utb3V0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1hY3RpdmU6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHNjYWxlWCgxKTtcbiAgb3BhY2l0eTogMTtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG5bZGlzYWJsZWRdLmFjdGlvbi1idG4tYWN0aXZlOjphZnRlciwgLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLWRpc2FibGVkLmFjdGlvbi1idG4tYWN0aXZlOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFiLWRpc2FibGVkLWljb24pO1xuICBvcGFjaXR5OiAwLjY7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuLmFjdGlvbi1idG4tc2hhcGUtc3F1YXJlLmFjdGlvbi1idG4tc2l6ZS1kZWZhdWx0IHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgbWluLXdpZHRoOiA0MHB4O1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLXNoYXBlLXNxdWFyZS5hY3Rpb24tYnRuLXNpemUtZGVmYXVsdCBxZG5hcHJvLWljb24sXG4ucWRuYXByby1hY3Rpb24tYnRuLmFjdGlvbi1idG4tc2hhcGUtc3F1YXJlLmFjdGlvbi1idG4tc2l6ZS1kZWZhdWx0IC5hY3Rpb24tYnRuLWljb24ge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLXNoYXBlLXNxdWFyZS5hY3Rpb24tYnRuLXNpemUtc21hbGwge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBtaW4td2lkdGg6IDI4cHg7XG4gIC0tYWItYWN0aXZlLWxpbmUtd2lkdGg6IDEycHg7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuLmFjdGlvbi1idG4tc2hhcGUtc3F1YXJlLmFjdGlvbi1idG4tc2l6ZS1zbWFsbCBxZG5hcHJvLWljb24sXG4ucWRuYXByby1hY3Rpb24tYnRuLmFjdGlvbi1idG4tc2hhcGUtc3F1YXJlLmFjdGlvbi1idG4tc2l6ZS1zbWFsbCAuYWN0aW9uLWJ0bi1pY29uIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1zaGFwZS1zcXVhcmUuYWN0aW9uLWJ0bi1zaXplLXNtYWxsOjphZnRlciB7XG4gIGJvdHRvbTogMDtcbiAgaGVpZ2h0OiAxLjVweDtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1zaGFwZS10aGluLmFjdGlvbi1idG4tc2l6ZS1kZWZhdWx0IHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgbWluLXdpZHRoOiAyMHB4O1xuICAtLWFiLWFjdGl2ZS1saW5lLXdpZHRoOiAxMnB4O1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLXNoYXBlLXRoaW4uYWN0aW9uLWJ0bi1zaXplLWRlZmF1bHQgcWRuYXByby1pY29uLFxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLXNoYXBlLXRoaW4uYWN0aW9uLWJ0bi1zaXplLWRlZmF1bHQgLmFjdGlvbi1idG4taWNvbiB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuLmFjdGlvbi1idG4tc2hhcGUtdGhpbi5hY3Rpb24tYnRuLXNpemUtc21hbGwge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBtaW4td2lkdGg6IDIwcHg7XG4gIC0tYWItYWN0aXZlLWxpbmUtd2lkdGg6IDEwcHg7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuLmFjdGlvbi1idG4tc2hhcGUtdGhpbi5hY3Rpb24tYnRuLXNpemUtc21hbGwgcWRuYXByby1pY29uLFxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLXNoYXBlLXRoaW4uYWN0aW9uLWJ0bi1zaXplLXNtYWxsIC5hY3Rpb24tYnRuLWljb24ge1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLXNoYXBlLXRoaW4uYWN0aW9uLWJ0bi1zaXplLXNtYWxsOjphZnRlciB7XG4gIGJvdHRvbTogMDtcbiAgaGVpZ2h0OiAxLjVweDtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1oYXMtY2hldnJvbi5hY3Rpb24tYnRuLXNoYXBlLXNxdWFyZS5hY3Rpb24tYnRuLXNpemUtZGVmYXVsdCB7XG4gIHdpZHRoOiA2MHB4O1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLWhhcy1jaGV2cm9uLmFjdGlvbi1idG4tc2hhcGUtc3F1YXJlLmFjdGlvbi1idG4tc2l6ZS1zbWFsbCB7XG4gIHdpZHRoOiBhdXRvO1xuICBtaW4td2lkdGg6IDQ0cHg7XG4gIHBhZGRpbmc6IDAgNHB4O1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0biAuYWN0aW9uLWJ0bi1jaGV2cm9uIHtcbiAgb3BhY2l0eTogMC43O1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLWhhcy1jaGV2cm9uIC5hY3Rpb24tYnRuLWNoZXZyb24ge1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLXR5cGUtdGFibGUge1xuICAtLWFiLWJnLWhvdmVyOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1jb2xvci1oaWdobGlnaHQge1xuICAtLWFiLWljb246IHZhcigtLWMtYWN0aW9uLTUwMCk7XG4gIC0tYWItYmctYWN0aXZlOiAjZTZlOWZmO1xuICAtLWFiLWJnLWFjdGl2ZS1ob3ZlcjogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpO1xuICAtLWFiLWljb24tYWN0aXZlOiB2YXIoLS1jLWFjdGlvbi01MDApO1xuICAtLWFiLXVuZGVybGluZTogdmFyKC0tYy1hY3Rpb24tNTAwKTtcbiAgLS1hYi1mb2N1cy1yaW5nOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFiLWJnLWFjdGl2ZSk7XG4gIGNvbG9yOiB2YXIoLS1hYi1pY29uLWFjdGl2ZSk7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuOmhvdmVyOm5vdChbZGlzYWJsZWRdKTpub3QoLmFjdGlvbi1idG4tYWN0aXZlKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFiLWJnLWhvdmVyKTtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG46aG92ZXI6bm90KFtkaXNhYmxlZF0pLmFjdGlvbi1idG4tYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWItYmctYWN0aXZlLWhvdmVyKTtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG46YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAsIDAsIDAsIDAuMTUpLCByZ2JhKDAsIDAsIDAsIDAuMTUpKTtcbn1cbi5xZG5hcHJvLWFjdGlvbi1idG46Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bjpmb2N1cy12aXNpYmxlLCAucWRuYXByby1hY3Rpb24tYnRuLmZvcmNlLWZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWFiLWZvY3VzLXJpbmcpO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHZhcigtLWFiLWZvY3VzLWdsb3cpO1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bi5mb3JjZS1ob3Zlcjpub3QoW2Rpc2FibGVkXSk6bm90KC5hY3Rpb24tYnRuLWFjdGl2ZSkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hYi1iZy1ob3Zlcik7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuLmZvcmNlLWhvdmVyOm5vdChbZGlzYWJsZWRdKS5hY3Rpb24tYnRuLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFiLWJnLWFjdGl2ZS1ob3Zlcik7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuLmZvcmNlLXByZXNzZWQ6bm90KFtkaXNhYmxlZF0pIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMC4xNSksIHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xufVxuLnFkbmFwcm8tYWN0aW9uLWJ0bltkaXNhYmxlZF0sIC5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFiLWRpc2FibGVkLWJnKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYWItZGlzYWJsZWQtaWNvbikgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1hY3Rpb24tYnRuW2Rpc2FibGVkXS5hY3Rpb24tYnRuLWFjdGl2ZSwgLnFkbmFwcm8tYWN0aW9uLWJ0bi5hY3Rpb24tYnRuLWRpc2FibGVkLmFjdGlvbi1idG4tYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWItYmctYWN0aXZlKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYWItZGlzYWJsZWQtaWNvbikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC42O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1hY3Rpb24tYnRuIHtcbiAgLS1hYi1iZzogdHJhbnNwYXJlbnQ7XG4gIC0tYWItYmctaG92ZXI6ICM1NjViNjY7XG4gIC0tYWItYmctYWN0aXZlOiAjMmEyZDUyO1xuICAtLWFiLWJnLWFjdGl2ZS1ob3ZlcjogIzNhM2Y2YjtcbiAgLS1hYi1pY29uOiAjZTFlM2U2O1xuICAtLWFiLWljb24tYWN0aXZlOiAjYTVhY2ZmO1xuICAtLWFiLXVuZGVybGluZTogI2E1YWNmZjtcbiAgLS1hYi1mb2N1cy1yaW5nOiAjZTFlM2U2O1xuICAtLWFiLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNCk7XG4gIC0tYWItZGlzYWJsZWQtYmc6ICM0MDQ0NGQ7XG4gIC0tYWItZGlzYWJsZWQtaWNvbjogIzZiNzI4MDtcbiAgLS1hYi1kb3QtcmluZzogIzJlMzAzNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi10eXBlLXRhYmxlIHtcbiAgLS1hYi1iZy1ob3ZlcjogIzQwNDQ0ZDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLWFjdGlvbi1idG4uYWN0aW9uLWJ0bi1jb2xvci1oaWdobGlnaHQge1xuICAtLWFiLWljb246ICNhNWFjZmY7XG4gIC0tYWItYmctaG92ZXI6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMTgpO1xuICAtLWFiLWJnLWFjdGl2ZTogIzQ2NTJmMztcbiAgLS1hYi1iZy1hY3RpdmUtaG92ZXI6ICM1YTY2ZmY7XG4gIC0tYWItaWNvbi1hY3RpdmU6ICNmZmZmZmY7XG4gIC0tYWItdW5kZXJsaW5lOiAjZmZmZmZmO1xuICAtLWFiLWZvY3VzLXJpbmc6ICNhNWFjZmY7XG59XG4iLCIvLyBTQ1NTIHNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlIChLamVsZCAyMDI2LTA2LTAyKS5cbi8vIENvbXBpbGVkIGJ5IGd1bHAgXCJzYXNzLXYyLWNvbXBvbmVudHNcIiB0byB3ZWIvY29tcG9uZW50cy12Mi90b29sdGlwL190b29sdGlwLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLXRvb2x0aXAge1xuICAtLXR0LWJnOiB2YXIoLS1jLWdyZXktMzAwKTtcbiAgLS10dC1ib3JkZXI6IHZhcigtLWMtZ3JleS0zMDApO1xuICAtLXR0LXRleHQ6IHZhcigtLWMtZ3JleS05NTApO1xuICAtLXR0LXRpdGxlOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgLS10dC1wb2ludGVyLXNpemU6IDhweDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDA7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10dC1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXR0LWJnKTtcbiAgY29sb3I6IHZhcigtLXR0LXRleHQpO1xuICBmb250LWZhbWlseTogXCJJbnRlclwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMTIsIDEyLCAxMywgMC4wNSk7XG4gIG1heC13aWR0aDogMzIwcHg7XG59XG4ucWRuYXByby10b29sdGlwW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiB3cmFwICgwNS4wOC4yMDI2KSDigJQgZWVuIGxhbmdlcmUgdGVrc3Qgb3ZlciBtZWVyZGVyZSByZWdlbHMuXG4gICBXQUFST00gZGl0IG5vZGlnIHdhczogaGllcmJvdmVuIHN0YWFuIGB3aGl0ZS1zcGFjZTogbm93cmFwYCBlbiBgbWF4LXdpZHRoOiAzMjBweGBcbiAgIHNhbWVuLCBlbiBkYW4gd2ludCBub3dyYXA6IGRlIHRla3N0IGJyZWVrdCBuaWV0IGFmIG1hYXIgbG9vcHQgZ2V3b29uIGJ1aXRlbiBkaWVcbiAgIDMyMHB4IGRvb3IsIHRvdCBidWl0ZW4gaGV0IHZlbnN0ZXIuIEdlbWV0ZW4gbWV0IGVlbiB3YWFyc2NodXdpbmdzdGVrc3QgdmFuIDc5IHRla2Vuc1xuICAgaW4gaGV0IGRvY3VtZW50ZW52ZW5zdGVyIHZhbiBlZW4gdGFrZW5saWpzdDogZGUgdG9vbHRpcCB3YXMgNDc0cHggYnJlZWQgZW4gbGllcCBhYW5cbiAgIGRlIHJlY2h0ZXJrYW50IHZhbiBoZXQgc2NoZXJtIGFmLlxuICAgU3RhbmRhYXJkIGJsaWpmdCBub3dyYXAsIGR1cyBnZWVuIGVua2VsZSBiZXN0YWFuZGUgdG9vbHRpcCB2ZXJhbmRlcnQgdmFuIHZvcm07IGRlemVcbiAgIGtsYXNzZSBpcyBlciB2b29yIHRvb2x0aXBzIGRpZSBlZW4gaGVsZSB6aW4gemlqbiBpbiBwbGFhdHMgdmFuIGVlbiBsYWJlbC5cbiAgIGB0ZXh0LWFsaWduOiBsZWZ0YCB3YW50IGdlY2VudHJlZXJkZSBsb29wZW5kZSB0ZWtzdCBsZWVzdCBzbGVjaHQsIGVuIGRlIGJhc2lzcmVnZWxcbiAgIGNlbnRyZWVydCAoYWxpZ24taXRlbXM6IGNlbnRlciBvcCBkZSBmbGV4a29sb20pLiAqL1xuLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLXdyYXAge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG59XG4ucWRuYXByby10b29sdGlwLnRvb2x0aXAtd3JhcC50b29sdGlwLXNtYWxsIHtcbiAgcGFkZGluZzogNHB4IDhweDtcbn1cbi5xZG5hcHJvLXRvb2x0aXAudG9vbHRpcC1iaWcge1xuICBwYWRkaW5nOiA0cHggOHB4O1xufVxuLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLXNtYWxsIHtcbiAgcGFkZGluZzogMCA4cHg7XG59XG4ucWRuYXByby10b29sdGlwIC50b29sdGlwLXRpdGxlIHtcbiAgY29sb3I6IHZhcigtLXR0LXRpdGxlKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnFkbmFwcm8tdG9vbHRpcCAudG9vbHRpcC1ib2R5IHtcbiAgY29sb3I6IHZhcigtLXR0LXRleHQpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ucWRuYXByby10b29sdGlwLnRvb2x0aXAtYmlnIC50b29sdGlwLWJvZHkge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLXNtYWxsIC50b29sdGlwLWJvZHkge1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLWZsb2F0aW5nLnRvb2x0aXAtYmlnIC50b29sdGlwLWJvZHkge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLXB1cnBsZSB7XG4gIC0tdHQtYmc6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIC0tdHQtYm9yZGVyOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLXR0LXRleHQ6ICNmZmZmZmY7XG4gIC0tdHQtdGl0bGU6ICNmZmZmZmY7XG59XG4ucWRuYXByby10b29sdGlwLnRvb2x0aXAtcHVycGxlLWRhcmsge1xuICAvLyBQdXJwbGUtNjAwIOKAlCB1c2VkIGZvciB0aGUgY29sbGFwc2VkLXJhaWwgZmx5b3V0IGxhYmVscy4gUmVhZHMgc3Ryb25nZXJcbiAgLy8gdGhhbiB0b29sdGlwLXB1cnBsZSAoUHVycGxlLTUwMCksIHNvIHRoZSBmbG9hdGluZyBsYWJlbCBrZWVwcyBjb250cmFzdFxuICAvLyBhZ2FpbnN0IGJvdGggbGlnaHQgYW5kIGRhcmsgc3VyZmFjZXMuXG4gIC0tdHQtYmc6IHZhcigtLWMtcHVycGxlLTcwMCk7XG4gIC0tdHQtYm9yZGVyOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICAtLXR0LXRleHQ6ICNmZmZmZmY7XG4gIC0tdHQtdGl0bGU6ICNmZmZmZmY7XG59XG4ucWRuYXByby10b29sdGlwLnRvb2x0aXAtbGlnaHQtcHVycGxlIHtcbiAgLS10dC1iZzogI2U2ZTlmZjtcbiAgLS10dC1ib3JkZXI6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbiAgLS10dC10ZXh0OiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAtLXR0LXRpdGxlOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLW5ldXRyYWwtZGFyayB7XG4gIC0tdHQtYmc6IHZhcigtLWMtZ3JleS0zMDApO1xuICAtLXR0LWJvcmRlcjogdmFyKC0tYy1ncmV5LTMwMCk7XG4gIC0tdHQtdGV4dDogdmFyKC0tYy1ncmV5LTk1MCk7XG4gIC0tdHQtdGl0bGU6IHZhcigtLWMtZ3JleS05NTApO1xufVxuLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLW5ldXRyYWwtbGlnaHQge1xuICAtLXR0LWJnOiB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgLS10dC1ib3JkZXI6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAtLXR0LXRleHQ6IHZhcigtLWMtZ3JleS01MDApO1xuICAtLXR0LXRpdGxlOiB2YXIoLS1jLWdyZXktNTAwKTtcbn1cbi5xZG5hcHJvLXRvb2x0aXAudG9vbHRpcC1wb2ludGVyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiB2YXIoLS10dC1wb2ludGVyLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXR0LXBvaW50ZXItc2l6ZSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLXR0LWJnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdHQtYm9yZGVyKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby10b29sdGlwLnRvb2x0aXAtcG9pbnRlci50b29sdGlwLXBvc2l0aW9uLXRvcDo6YmVmb3JlIHtcbiAgYm90dG9tOiBjYWxjKHZhcigtLXR0LXBvaW50ZXItc2l6ZSkgKiAtMC41IC0gMXB4KTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5xZG5hcHJvLXRvb2x0aXAudG9vbHRpcC1wb2ludGVyLnRvb2x0aXAtcG9zaXRpb24tYm90dG9tOjpiZWZvcmUge1xuICB0b3A6IGNhbGModmFyKC0tdHQtcG9pbnRlci1zaXplKSAqIC0wLjUgLSAxcHgpO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5xZG5hcHJvLXRvb2x0aXAudG9vbHRpcC1wb2ludGVyLnRvb2x0aXAtcG9zaXRpb24tbGVmdDo6YmVmb3JlIHtcbiAgcmlnaHQ6IGNhbGModmFyKC0tdHQtcG9pbnRlci1zaXplKSAqIC0wLjUgLSAxcHgpO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ucWRuYXByby10b29sdGlwLnRvb2x0aXAtcG9pbnRlci50b29sdGlwLXBvc2l0aW9uLXJpZ2h0OjpiZWZvcmUge1xuICBsZWZ0OiBjYWxjKHZhcigtLXR0LXBvaW50ZXItc2l6ZSkgKiAtMC41IC0gMXB4KTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5xZG5hcHJvLXRvb2x0aXAge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTIpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEyMG1zIGVhc2Utb3V0LCB0cmFuc2Zvcm0gMTIwbXMgZWFzZS1vdXQ7XG59XG4ucWRuYXByby10b29sdGlwLnRvb2x0aXAtdmlzaWJsZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG4ucWRuYXByby10b29sdGlwOm5vdCgudG9vbHRpcC1tYW5hZ2VkKSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdG9vbHRpcCB7XG4gIC0tdHQtYmc6ICM0MDQ0NGQ7XG4gIC0tdHQtYm9yZGVyOiAjNDA0NDRkO1xuICAtLXR0LXRleHQ6ICNlMWUzZTY7XG4gIC0tdHQtdGl0bGU6ICNlMWUzZTY7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10b29sdGlwLnRvb2x0aXAtcHVycGxlIHtcbiAgLS10dC1iZzogIzM4NDJjMjtcbiAgLS10dC1ib3JkZXI6ICMzODQyYzI7XG4gIC0tdHQtdGV4dDogI2ZmZmZmZjtcbiAgLS10dC10aXRsZTogI2ZmZmZmZjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRvb2x0aXAudG9vbHRpcC1saWdodC1wdXJwbGUge1xuICAtLXR0LWJnOiAjMmEyZDUyO1xuICAtLXR0LWJvcmRlcjogIzNhM2Y2YjtcbiAgLS10dC10ZXh0OiAjOGI5M2ZmO1xuICAtLXR0LXRpdGxlOiAjOGI5M2ZmO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdG9vbHRpcC50b29sdGlwLW5ldXRyYWwtZGFyayB7XG4gIC0tdHQtYmc6ICM0MDQ0NGQ7XG4gIC0tdHQtYm9yZGVyOiAjNDA0NDRkO1xuICAtLXR0LXRleHQ6ICNlMWUzZTY7XG4gIC0tdHQtdGl0bGU6ICNlMWUzZTY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10b29sdGlwLnRvb2x0aXAtbmV1dHJhbC1saWdodCB7XG4gIC0tdHQtYmc6ICMyZTMwMzY7XG4gIC0tdHQtYm9yZGVyOiAjMmUzMDM2O1xuICAtLXR0LXRleHQ6ICNhNmFhYjM7XG4gIC0tdHQtdGl0bGU6ICNhNmFhYjM7XG59XG4iLCIvLyBfdG91Y2gtYnV0dG9uLnNjc3Ncbi8vXG4vLyBxZG5hcHJvLXRvdWNoLWJ1dHRvbiAtIGJpZywgZmluZ2VyLWZyaWVuZGx5IGFjdGlvbiBidXR0b24gZm9yIHRoZSBQV0EuXG4vLyBUd28gdmFyaWFudHMgb2YgdGhlIHNhbWUgYW5hdG9teSAoaWNvbiArIGxhYmVsICsgb3B0aW9uYWwgY291bnQgYmFkZ2UpOlxuLy9cbi8vICAgdmFyaWFudD1cImdyaWRcIiAoZGVmYXVsdCkgIHNxdWFyZS1pc2ggdGlsZSwgMiBwZXIgcm93IG9uIGEgcGhvbmVcbi8vICAgdmFyaWFudD1cInJvd1wiICAgICAgICAgICAgIGhvcml6b250YWwgc3RyaXAsIGZ1bGwgd2lkdGggKHRoZSBcIkluc3RlbGxpbmdlblwiIHJvdylcbi8vXG4vLyBOYW1lZCB0b3VjaC1idXR0b24gcmF0aGVyIHRoYW4gaG9tZS1idXR0b24gb24gcHVycG9zZSAoS2ltIDI3LjA3LjIwMjYpOlxuLy8gdGhlIFBXQSBob21lIHNjcmVlbiBpcyB0aGUgZmlyc3QgY29uc3VtZXIsIGJ1dCBub3RoaW5nIGluIGhlcmUgaXNcbi8vIGhvbWUtc3BlY2lmaWMgLSBhbnkgUFdBIHNjcmVlbiB0aGF0IG5lZWRzIGEgbGFyZ2UgdGFwIHRhcmdldCB3aXRoIGFuXG4vLyBhY3Rpdml0eSBpY29uIGNhbiB1c2UgaXQuXG4vL1xuLy8gR0VPTUVUUlkgKEtpbSdzIGJyaWVmIDI3LjA3LjIwMjYsIG1lYXN1cmVkIGluIEZpZ21hIFdJVEhPVVQgdGhlIGJvcmRlcik6XG4vLyAgIGdyaWQgICBpY29uIDQ4eDQ4ICAgbWluLWhlaWdodCAxMDRweCAgIHBhZGRpbmcgMTJweCAgIGdhcCA4cHggICAgbGFiZWwgMTZweC81MDBcbi8vICAgcm93ICAgIGljb24gNDJ4NDIgICBtaW4taGVpZ2h0ICA1OHB4ICAgcGFkZGluZyAgOHB4ICAgZ2FwIDI0cHggICBsYWJlbCAxNnB4LzUwMFxuLy9cbi8vIFRoZSBicmllZmVkIGhlaWdodHMgYXJlIGNvbnRlbnQtYm94IG51bWJlcnM7IHRoaXMgY29tcG9uZW50IGlzIGJvcmRlci1ib3hcbi8vIChob3VzZSBiYXNlbGluZSkgYW5kIGNhcnJpZXMgYSAxcHggYm9yZGVyLCBzbyB0aGUgcmVhbCByZW5kZXJlZCBoZWlnaHRzIGxhbmRcbi8vIG9uIDEwNnB4IGFuZCA2MHB4LiBLaW06IFwiMnB4IGhvb2d0ZSB2ZXJzY2hpbCBtYWFrdCBtZSBuaWV0IHpvIHZlZWwgdWl0XCJcbi8vICgyNy4wNy4yMDI2KSwgc28gcGFkZGluZywgaWNvbiBzaXplIGFuZCBnYXAgYXJlIGtlcHQgRVhBQ1RMWSBhcyBicmllZmVkIGFuZFxuLy8gdGhlIGhlaWdodCBpcyB0aGUgdmFsdWUgdGhhdCBnaXZlcy4gbWluLWhlaWdodCAobm90IGhlaWdodCkgc28gYSBsYWJlbCB0aGF0XG4vLyB3cmFwcyBpbiBhIGxvbmcgdHJhbnNsYXRpb24gZ3Jvd3MgdGhlIGJ1dHRvbiBpbnN0ZWFkIG9mIG92ZXJmbG93aW5nIGl0LlxuLy9cbi8vIExhYmVsIGxpbmUtaGVpZ2h0IGlzIDI0cHggLSB0aGUgc2FtZSAxNnB4LzI0cHggcGFpciB0aGUgYnV0dG9uIGNvbXBvbmVudFxuLy8gdXNlcyBmb3IgaXRzIDE2cHggdHlwZSwgcmF0aGVyIHRoYW4gc3F1ZWV6aW5nIHRvIDIwcHgganVzdCB0byBrZWVwIHRoZVxuLy8gaGVpZ2h0IGF0IDEwNC5cbi8vXG4vLyBTVEFURSBDT0xPVVJTIGZvbGxvdyB0aGUgYnV0dG9uIGNvbXBvbmVudCdzIHJ1bGU6IGVhY2ggc3RhdGUgaXMgb25lIHN0ZXBcbi8vIGRhcmtlciBvbiB0aGUgZ3JleSByYW1wIHRoYW4gdGhlIHByZXZpb3VzIG9uZSAoc2VlIF9idXR0b24uc2Nzc1xuLy8gLmJ1dHRvbi1zdWJ0bGU6ICNmMGYxZjIgaG92ZXIgLT4gI2U0ZTZlOCBhY3RpdmUpLiBIZXJlLCBwZXIgS2ltLCB0aGUgQk9SREVSXG4vLyBkYXJrZW5zIGFsb25nIHdpdGggdGhlIHN1cmZhY2Ugc28gdGhlIG91dGxpbmUgbmV2ZXIgZGlzYXBwZWFycyBpbnRvIHRoZVxuLy8gaG92ZXIgZmlsbDpcbi8vICAgaWRsZSAgICAgYmcgd2hpdGUgICAgICAgICBib3JkZXIgZ3JleS0xMDAgKCNlN2U5ZWMpXG4vLyAgIGhvdmVyICAgIGJnIGdyZXktMTAwICAgICAgYm9yZGVyIGdyZXktMjAwICgjZDFkNWRiKVxuLy8gICBwcmVzc2VkICBiZyBncmV5LTIwMCAgICAgIGJvcmRlciBncmV5LTMwMCAoI2M0YzdjYylcbi8vIE5vIHNjYWxlL3RyYW5zZm9ybSBvbiBwcmVzcyAtIHRoZSBidXR0b24gY29tcG9uZW50IHByZXNzZXMgYnkgY29sb3VyIG9ubHkuXG4vL1xuLy8gRk9DVVMgaXMgdGhlIGJ1dHRvbiBjb21wb25lbnQncyByaW5nIHZlcmJhdGltOiAycHggLS1idG4tZm9jdXMtcmluZyBhdFxuLy8gLTJweCBvZmZzZXQgcGx1cyBhIDRweCAtLWJ0bi1mb2N1cy1nbG93IGhhbG8uXG4vL1xuLy8gRElTQUJMRUQgaXMgdGhlIGJ1dHRvbiBjb21wb25lbnQncyBkaXNhYmxlZCBwYWxldHRlIHZlcmJhdGltIChiYWNrZ3JvdW5kXG4vLyAjZjBmMWYyLCBjb2xvdXIgIzg5OGU5OSwgdHJhbnNwYXJlbnQgYm9yZGVyLCBub3QtYWxsb3dlZCwgcG9pbnRlci1ldmVudHNcbi8vIG5vbmUpLCBwbHVzIEtpbSdzIGFkZGl0aW9uOiB0aGUgaWNvbiBkcm9wcyB0byAzMCUgb3BhY2l0eS5cbi8vXG4vLyBTaXRzIG9uIGEgbGlnaHQgZ3JleSBwYWdlICgtLWMtYmctcGFnZSksIHdoaWNoIGlzIHdoeSBpZGxlIGlzIHB1cmUgd2hpdGVcbi8vIHdpdGggYSBoYWlybGluZSBib3JkZXIgcmF0aGVyIHRoYW4gYSBzaGFkb3cuXG5cbi5xZG5hcHJvLXRvdWNoLWJ1dHRvbiB7XG4gICAgLS1xdGItYmc6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgLS1xdGItYmctaG92ZXI6IHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xuICAgIC0tcXRiLWJnLXByZXNzZWQ6IHZhcigtLWMtZ3JleS0yMDAsICNkMWQ1ZGIpO1xuICAgIC0tcXRiLWJvcmRlcjogdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG4gICAgLS1xdGItYm9yZGVyLWhvdmVyOiB2YXIoLS1jLWdyZXktMjAwLCAjZDFkNWRiKTtcbiAgICAtLXF0Yi1ib3JkZXItcHJlc3NlZDogdmFyKC0tYy1ncmV5LTMwMCwgI2M0YzdjYyk7XG4gICAgLS1xdGItbGFiZWwtY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMGIwYjBkKTtcbiAgICAtLXF0Yi1kaXNhYmxlZC1iZzogdmFyKC0tYy1ncmV5LTUwKTtcbiAgICAtLXF0Yi1kaXNhYmxlZC1jb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbiAgICAtLWJ0bi1mb2N1cy1yaW5nOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgIC0tYnRuLWZvY3VzLWdsb3c6IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xuICAgIC8vIFBpbGxzICgxOC4wOC4yMDI2LCByZXBhaXIgY2FyZCAxMCwgc2VlIC5xdGItcGlsbHMgYmVsb3cpIC0gTUlSUk9SIG9mXG4gICAgLy8gcWRuYXByby1ncmlkLXRpbGUncyAtLXFndC1waWxsLSogdG9rZW5zIChzYW1lIHZhbHVlcywgYHF0Yi1gIHByZWZpeCk6XG4gICAgLy8gc3Ryb25nIHJldXNlcyB0aGUgU0FNRSBzb2xpZCBzaWduYWwtcmVkIHFkbmFwcm8tbnVtYmVyLWluZGljYXRvci1iYWRnZVxuICAgIC8vIGBhbGVydGAgY29sb3VyIHVzZXMgKC0tYy13YXJuLXJlZC01MDApLCBub3QgYSBuZXcgcmVkOyBzb2Z0IGlzIGEgZmxhdFxuICAgIC8vIGxpZ2h0LWdyZXkgY2hpcCB3aXRoIGFuIGFjdGlvbi1ibHVlIGljb24gYW5kIGEgZGFyayBjb3VudC5cbiAgICAvLyBLb3JhYWwsIG5pZXQgaGV0IHdhYXJzY2h1d2luZ3Nyb29kOiBLaW1zIG1vY2t1cCAoMTguMDguMjAyNikga2xldXJ0IGRlXG4gICAgLy8gc3RlcmtlIHBpbCBpbiBkZXplbGZkZSB0b29uIGFscyBoZXQgUHVsc2UtaGFydC1hcnR3b3JrLiBFciBiZXN0YWF0IGdlZW5cbiAgICAvLyBrb3JhYWwtdG9rZW47IGRpdCBpcyBkZSBnZXNhbXBsZWRlIHdhYXJkZSB1aXQgZGUgbW9ja3VwLlxuICAgIC0tcXRiLXBpbGwtc3Ryb25nLWJnOiAjZTg3MDVmO1xuICAgIC0tcXRiLXBpbGwtc3Ryb25nLWZnOiAjZmZmZmZmO1xuICAgIC8vIFNpbmRzIGRlIGRlcmRlIGl0ZXJhdGllIHppam4gZGl0IFNUSVBLTEVVUkVOLCBnZWVuIHZsYWtrZW4gbWVlci5cbiAgICAtLXF0Yi1waWxsLXNvZnQtZG90LWJnOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xdGItYmcpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXF0Yi1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMywgMTJweCk7XG4gICAgY29sb3I6IHZhcigtLXF0Yi1sYWJlbC1jb2xvcik7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZmLCBcIkludGVyXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dCwgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2Utb3V0LCBjb2xvciAxMjBtcyBlYXNlLW91dDtcbn1cblxuLy8gLS0tIExhYmVsICsgaWNvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucWRuYXByby10b3VjaC1idXR0b24gLnF0Yi1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgLy8gQSBsYWJlbCBsb25nZXIgdGhhbiB0aGUgYnV0dG9uIGNsYW1wcyBpbnN0ZWFkIG9mIHB1c2hpbmcgdGhlIGJhZGdlIG91dC5cbiAgICAvLyBHcmlkIGNsYW1wcyB0byAyIGxpbmVzICh0aGUgdGlsZSBncm93cyksIHJvdyBjbGFtcHMgdG8gMSAtIGEgcm93IGlzIGFcbiAgICAvLyBmaXhlZC1oZWlnaHQgc3RyaXAgbmV4dCB0byBhIHRyYWlsaW5nIGJhZGdlLlxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG5cbi8vIEZsZXgsIG5vdCBibG9jazogdGhlIGljb24gY2hpbGQgaXMgaW5saW5lLWJsb2NrLCBzbyBhIGJsb2NrIHdyYXBwZXIgd291bGRcbi8vIGFkZCB0aGUgbGluZS1ib3ggc3RydXQgb24gdG9wIG9mIHRoZSA0OC80MnB4IGljb24gYW5kIHF1aWV0bHkgbWFrZSB0aGVcbi8vIGJ1dHRvbiBhIGZldyBwaXhlbHMgdGFsbGVyIHRoYW4gdGhlIGdlb21ldHJ5IHRhYmxlIHNheXMuXG4ucWRuYXByby10b3VjaC1idXR0b24gLnF0Yi1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMjBtcyBlYXNlLW91dDtcbn1cblxuLy8gU2FtZSBzdHJ1dCByZWFzb25pbmcgYXMgLnF0Yi1pY29uIC0gdGhlIGJhZGdlIGlzIGlubGluZS1ibG9jay5cbi5xZG5hcHJvLXRvdWNoLWJ1dHRvbiAucXRiLWJhZGdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG59XG5cbi8vIC0tLSBWYXJpYW50OiBncmlkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnFkbmFwcm8tdG91Y2gtYnV0dG9uLnF0Yi12YXJpYW50LWdyaWQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtaW4taGVpZ2h0OiAxMDRweDtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnFkbmFwcm8tdG91Y2gtYnV0dG9uLnF0Yi12YXJpYW50LWdyaWQgLnF0Yi1sYWJlbCB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgbGluZS1jbGFtcDogMjtcbn1cblxuLy8gVG9wLXJpZ2h0IGNvcm5lciBvZiB0aGUgdGlsZSwgaW5zaWRlIHRoZSBwYWRkaW5nIGJveCAoS2ltIDI3LjA3LjIwMjY6XG4vLyBcInJlY2h0ZXJib3ZlbmhvZWtcIikuIE5vdCBvdmVyaGFuZ2luZyAtIHRoZSBiYWRnZSBiZWxvbmdzIHRvIHRoZSB0aWxlIGhlcmUsXG4vLyB1bmxpa2UgcWRuYXByby1ncmlkLXRpbGUgd2hlcmUgaXQgc3RyYWRkbGVzIHRoZSBvdXRlciBjb3JuZXIuXG4ucWRuYXByby10b3VjaC1idXR0b24ucXRiLXZhcmlhbnQtZ3JpZCAucXRiLWJhZGdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA4cHg7XG4gICAgcmlnaHQ6IDhweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAvLyB6LWluZGV4IGFkZGVkIDE4LjA4LjIwMjYgYWxvbmdzaWRlIC5xdGItcGlsbHMgYmVsb3csIHB1cmVseSBzbyB0aGVcbiAgICAvLyBzdGFja2luZyBvcmRlciBhZ2FpbnN0IHRoZSBwaWxscyBpcyBkZXRlcm1pbmlzdGljIChzZWUgLnF0Yi1waWxscydcbiAgICAvLyBjb21tZW50IGZvciB0aGUgXCJjb2xsaXNpb25cIiBydWxlKSAtIGhhcyBubyB2aXN1YWwgZWZmZWN0IG9uIGEgdGlsZVxuICAgIC8vIHVzaW5nIG9ubHkgdGhlIGJhZGdlLCBzbyB0aGUgcGlsbC1mcmVlIHRpbGUgc3RheXMgcGl4ZWwtaWRlbnRpY2FsLlxuICAgIHotaW5kZXg6IDE7XG59XG5cbi8vIC0tLS0gUGlsbHM6IGF0dHJpYnV0ZS1kcml2ZW4gc2lnbmFsIHBhaXIsIHN0YWNrZWQgdG9wLXJpZ2h0IChhZGRlZFxuLy8gMTguMDguMjAyNiwgcmVwYWlyIGNhcmQgMTAgLSBNSVJST1Igb2YgcWRuYXByby1ncmlkLXRpbGUncyBgLnFndC1waWxsc2AsXG4vLyBzZWUgX2dyaWQtdGlsZS5zY3NzIGZvciB0aGUgdHdpbiBibG9jazogdGhlIERPTSBzaGFwZSBpcyBtaXJyb3JlZCwgYnV0IHRoZVxuLy8gU1RZTElORyBiZWxvdyBkZWxpYmVyYXRlbHkgZGl2ZXJnZXMgc2luY2UgMTguMDguMjAyNiAtIGdyaWQtdGlsZSBzdGlsbCBoYXNcbi8vIHRoZSBzbWFsbCBjb3JuZXIgY2hpcHMsIHRvdWNoLWJ1dHRvbiBmb2xsb3dzIEtpbSdzIGhvbWUtdGlsZSBtb2NrdXApIC0tLS1cbi8vXG4vLyBLaW1zIG1vY2t1cCAoMTguMDguMjAyNiwgdHdlZWRlIGl0ZXJhdGllIG5hIGhhYXIgc2NoZXJtdmVyZ2VsaWpraW5nKTogZGVcbi8vIHBpbGxlbiB6aWpuIEdFRU4gaG9la3N0aWNrZXJ0amVzIG1hYXIgZWVuIGVpZ2VuIGtvbG9tIGRpZSBkZSByZWNodGVyaGVsZnRcbi8vIHZhbiBkZSB0ZWdlbCB2dWx0LiBJY29vbiArIGxhYmVsIHNjaHVpdmVuIG5hYXIgbGlua3MsIGVsa2UgcGlsIGlzIGVlblxuLy8gZ3JvdGUgYWZnZXJvbmRlIGJhbGsgbWV0IGhldCBpY29vbiBsaW5rcyBlbiBoZXQgY2lqZmVyIHJlY2h0cy4gRGUgZWVyc3RlXG4vLyB1aXR2b2VyaW5nIChtaW5pLWJhZGdlcyByZWNodHNib3ZlbikgaXMgcHJlY2llcyB3YXQgemUgYWZrZXVyZGUuXG4vL1xuLy8gSElFUkFSQ0hZIGJsaWpmdCBoZXQgcHVudDogc3Ryb25nID0gZ2V2dWxkZSBrb3JhYWwtYmFsayBkaWUgc2NocmVldXd0XG4vLyAoUHVsc2U6IGtsYWFyc3RhYW5kZSBzdGFwcGVuKSwgc29mdCA9IHN0aWwgZ3JpanMgdmxhayBkYXQgZmx1aXN0ZXJ0XG4vLyAoc29jaWFsZSB1cGRhdGVzKSwgc3Ryb25nIGJvdmVuIHNvZnQuXG4vL1xuLy8gRGUgdGVnZWwtbGF5b3V0IGJsaWpmdCBPTkdFTU9FSUQ6IGRpdCBpcyBlZW4gb3ZlcmxheSBpbiBkZSBob2VrLCBnZWVuXG4vLyBoZXJzY2hpa2tpbmcuIChEZSB2b3JpZ2UgaXRlcmF0aWUgaGFkIGRhYXIgZWVuIGhvc3Qta2xhc3NlIHZvb3Igbm9kaWc7XG4vLyBkaWUgaXMgbWV0IGRlIGJhbGtlbiBtZWVnZWdhYW4uKVxuLy8g4pqg77iPIERFUkRFIGl0ZXJhdGllIChLaW0gMTguMDguMjAyNikuIEVlcnN0IG1pbmktY2hpcHMgaW4gZGUgaG9layAoYWZnZWtldXJkOlxuLy8gdGUga2xlaW4pLCB0b2VuIGdyb3RlIGJhbGtlbiBtZXQgY2lqZmVycyBuYWFzdCBoZXQgaWNvb24gKGFmZ2VrZXVyZDogdGUgdmVlbFxuLy8gZ2V3aWNodCB2b29yIGVlbiBob21lLXRlZ2VsKS4gRWluZHZvcm0gdm9sZ2VucyBoYWFyIG1vY2t1cDogaGV0IGljb29uIHplbGZcbi8vIG1ldCBlZW4gZ2VrbGV1cmRlIFNUSVAgZXJvcCwgZ2VzdGFwZWxkIGluIGRlIHJlY2h0ZXJib3ZlbmhvZWssIGVuIGRlIHRlZ2VsXG4vLyB2ZXJkZXIgb25nZW1vZWlkIC0gaGFydCBlbiBsYWJlbCBibGlqdmVuIGdld29vbiBnZWNlbnRyZWVyZC4gRXIgc3RhYXQgZ2VlblxuLy8gY2lqZmVyIG1lZXI6IG9wIGRlIGhvbWUgaXMgZGUgdnJhYWcgXCJpcyBlciBpZXRzP1wiLCBuaWV0IFwiaG9ldmVlbCBwcmVjaWVzXCIgLVxuLy8gZGF0IGdldGFsIHN0YWF0IG9wIGhldCBzY2hlcm0gd2FhciBqZSBoZWVuIGdhYXQuIERlIGNvdW50IGJsaWpmdCB3ZWwgaW4gZGVcbi8vIERPTSB2b29yIHNjaGVybWxlemVycyAoLnF0Yi1waWxsLWNvdW50IGhpZXJvbmRlcikuXG4vL1xuLy8gSElFUkFSQ0hJRSB6aXQgbnUgaW4gZGUgc3RpcGtsZXVyOiBrb3JhYWwgPSB3ZXJrIChrbGFhcnN0YWFuZGUgc3RhcHBlbixcbi8vIHNjaHJlZXV3dCksIGJsYXV3ID0gc29jaWFhbCAodXBkYXRlcywgZmx1aXN0ZXJ0KS4gSGV0IGljb29uIHplbGYgaXMgaW5cbi8vIGJlaWRlIGdldmFsbGVuIGdld29vbiBkZSBsYWJlbGtsZXVyLlxuLy9cbi8vIEdSSUQgT05MWSwgemVsZmRlIHJlZGVuIGFscyB2b29yaGVlbjogdmFyaWFudD1cInJvd1wiIGhvdWR0IHppam4gYmFkZ2UgaW4gZGVcbi8vIGZsb3cgem9kYXQgZWVuIGxhbmcgbGFiZWwgZXJuYWFzdCBlbGxpcHNpc3QgaW4gcGxhYXRzIHZhbiBlcm9uZGVyZG9vciB0ZVxuLy8gbG9wZW47IGVlbiBhYnNvbHV0ZSBob2Vrb3ZlcmxheSB6b3UgZGF0IHRlcnVnYnJlbmdlbi5cbi5xZG5hcHJvLXRvdWNoLWJ1dHRvbi5xdGItdmFyaWFudC1ncmlkIC5xdGItcGlsbHMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwcHg7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgei1pbmRleDogMjsgLy8gYm92ZW4gLnF0Yi1iYWRnZSAoei1pbmRleCAxKVxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLy8gZGUgaGVsZSB0ZWdlbCBpcyBkZSBrbm9wOyBkaXQgaXMgd2VlcmdhdmVcbn1cblxuLnF0Yi1waWxsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG59XG5cbi5xdGItcGlsbC1pY29uIHtcbiAgICB3aWR0aDogMjZweDtcbiAgICBoZWlnaHQ6IDI2cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6IHZhcigtLXF0Yi1sYWJlbC1jb2xvcik7XG59XG5cbi8vIERlIHN0aXAgb3ZlcmxhcHQgZGUgcmVjaHRlcmJvdmVuaG9layB2YW4gaGV0IGljb29uLCBtZXQgZWVuIHJpbmcgaW4gZGVcbi8vIHRlZ2Vsa2xldXIgem9kYXQgaGlqIGxvcyB2YW4gZGUgaWNvb25saWpuZW4gbGVlc3QgKHplbGZkZSB0cnVjIGFscyBkZVxuLy8gYXZhdGFyLW92ZXJsYXkgaW4gcWRuYXByby11cGRhdGUtcm93KS5cbi5xdGItcGlsbC1kb3Qge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0zcHg7XG4gICAgcmlnaHQ6IC0zcHg7XG4gICAgd2lkdGg6IDEzcHg7XG4gICAgaGVpZ2h0OiAxM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1xdGItYmcsICNmZmZmZmYpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5xdGItcGlsbC1zdHJvbmcgLnF0Yi1waWxsLWRvdCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcXRiLXBpbGwtc3Ryb25nLWJnKTtcbiAgICAtLXF0Yi1kb3QtcmFkYXI6IDIzMiwgMTEyLCA5NTsgLy8gcmdiIHZhbiBoZXQga29yYWFsLCB2b29yIGRlIHJpbmcgaGllcm9uZGVyXG59XG4ucXRiLXBpbGwtc29mdCAucXRiLXBpbGwtZG90IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xdGItcGlsbC1zb2Z0LWRvdC1iZyk7XG4gICAgLS1xdGItZG90LXJhZGFyOiA3MCwgODIsIDI0Mztcbn1cblxuLy8gUmFkYXItcHVscyAod2VucyBLaW0gMTguMDguMjAyNik6IFwiZWVuIG1vb2llIHB1bHNlLCBuaWV0IHRlIGludHJ1c2l2ZSwgbmlldFxuLy8gdGUgdmFhaywgYWxzIGVlbiByYWRhclwiLiBFw6luIHphY2h0ZSByaW5nIGRpZSBpbiB+MSw4cyB1aXRkaWp0IGVuIHZlcnZhYWd0LFxuLy8gZGFhcm5hIHJ1aW0gdmllciBzZWNvbmRlbiBzdGlsdGUgLSBkZSBjeWNsdXMgaXMgNnMsIGR1cyBoZXQgc2lnbmFhbCBhZGVtdCBpblxuLy8gcGxhYXRzIHZhbiBkYXQgaGV0IGtuaXBwZXJ0LiBBbGxlZW4gZWVuIGJveC1zaGFkb3cgYmV3ZWVndCAoY29tcG9zaXRlZCksXG4vLyBkZSBzdGlwIHplbGYgc3RhYXQgc3RpbC4gVmVyZ2VsaWprIGRlIHBhYXJzZSBsb29wIGluIGRlIHFkbmFwcm8tbG90dGllLVxuLy8gcHJldmlldywgbWFhciBkYW4gZWVuIGZhY3RvciBydXN0aWdlci5cbkBrZXlmcmFtZXMgcXRiLWRvdC1yYWRhciB7XG4gICAgMCUgICB7IGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSh2YXIoLS1xdGItZG90LXJhZGFyLCA3MCwgODIsIDI0MyksIDAuNDApOyB9XG4gICAgMzAlICB7IGJveC1zaGFkb3c6IDAgMCAwIDlweCByZ2JhKHZhcigtLXF0Yi1kb3QtcmFkYXIsIDcwLCA4MiwgMjQzKSwgMCk7IH1cbiAgICAxMDAlIHsgYm94LXNoYWRvdzogMCAwIDAgOXB4IHJnYmEodmFyKC0tcXRiLWRvdC1yYWRhciwgNzAsIDgyLCAyNDMpLCAwKTsgfVxufVxuLnF0Yi1waWxsLWRvdCB7XG4gICAgYW5pbWF0aW9uOiBxdGItZG90LXJhZGFyIDZzIGVhc2Utb3V0IGluZmluaXRlO1xufVxuLy8gV2llIGhldCBzeXN0ZWVtIG9tIHJ1c3QgdnJhYWd0LCBrcmlqZ3QgcnVzdDogZGUgc3RpcCBhbGxlZW4uXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xdGItcGlsbC1kb3QgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLy8gQWxsZWVuIHZvb3Igc2NoZXJtbGV6ZXJzOiBkZSBzdGlwIHplZ3QgREFUIGVyIGlldHMgaXMsIGRpdCB6ZWd0IGhvZXZlZWwuXG4ucXRiLXBpbGwtY291bnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLy8gLS0tIFZhcmlhbnQ6IHJvdyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucWRuYXByby10b3VjaC1idXR0b24ucXRiLXZhcmlhbnQtcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAyNHB4O1xuICAgIG1pbi1oZWlnaHQ6IDU4cHg7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5xZG5hcHJvLXRvdWNoLWJ1dHRvbi5xdGItdmFyaWFudC1yb3cgLnF0Yi1sYWJlbCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8vIEVuZCBvZiB0aGUgcm93LCB2ZXJ0aWNhbGx5IGNlbnRyZWQgKEtpbSAyNy4wNy4yMDI2OiBcImxpZ2dlbmRlIHZhcmlhbnQgYWFuXG4vLyBoZXQgZWluZGVcIikuIEluIGZsb3cgcmF0aGVyIHRoYW4gYWJzb2x1dGUsIHNvIGEgbG9uZyBsYWJlbCBlbGxpcHNpemVzXG4vLyBhZ2FpbnN0IGl0IGluc3RlYWQgb2YgcnVubmluZyB1bmRlcm5lYXRoIGl0LlxuLnFkbmFwcm8tdG91Y2gtYnV0dG9uLnF0Yi12YXJpYW50LXJvdyAucXRiLWJhZGdlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAvLyBUaGUgMjRweCBpY29uLXRvLWxhYmVsIGdhcCB3b3VsZCByZWFkIGFzIGEgaHVnZSBob2xlIGluIGZyb250IG9mIHRoZVxuICAgIC8vIGJhZGdlOyB0aGUgYmFkZ2Uga2VlcHMgdGhlIHJvdydzIG93biA4cHggcGFkZGluZyByaHl0aG0gaW5zdGVhZC5cbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLy8gLS0tIFN0YXRlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucWRuYXByby10b3VjaC1idXR0b246aG92ZXI6bm90KC5xdGItZGlzYWJsZWQpLFxuLnFkbmFwcm8tdG91Y2gtYnV0dG9uLmZvcmNlLWhvdmVyOm5vdCgucXRiLWRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcXRiLWJnLWhvdmVyKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXF0Yi1ib3JkZXItaG92ZXIpO1xufVxuXG4ucWRuYXByby10b3VjaC1idXR0b24uaXMtcHJlc3NlZDpub3QoLnF0Yi1kaXNhYmxlZCksXG4ucWRuYXByby10b3VjaC1idXR0b24uZm9yY2UtcHJlc3NlZDpub3QoLnF0Yi1kaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXF0Yi1iZy1wcmVzc2VkKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXF0Yi1ib3JkZXItcHJlc3NlZCk7XG59XG5cbi5xZG5hcHJvLXRvdWNoLWJ1dHRvbjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuLnFkbmFwcm8tdG91Y2gtYnV0dG9uOmZvY3VzLXZpc2libGUsXG4ucWRuYXByby10b3VjaC1idXR0b24uZm9yY2UtZm9jdXMge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1idG4tZm9jdXMtcmluZyk7XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHZhcigtLWJ0bi1mb2N1cy1nbG93KTtcbn1cblxuLnFkbmFwcm8tdG91Y2gtYnV0dG9uLnF0Yi1kaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcXRiLWRpc2FibGVkLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tcXRiLWRpc2FibGVkLWNvbG9yKTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5xZG5hcHJvLXRvdWNoLWJ1dHRvbi5xdGItZGlzYWJsZWQ6Zm9jdXMtdmlzaWJsZSxcbi5xZG5hcHJvLXRvdWNoLWJ1dHRvbi5xdGItZGlzYWJsZWQuZm9yY2UtZm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLy8gS2ltJ3Mgb25lIGFkZGl0aW9uIG9uIHRvcCBvZiB0aGUgYnV0dG9uIGNvbXBvbmVudCdzIGRpc2FibGVkIHBhbGV0dGUuXG4ucWRuYXByby10b3VjaC1idXR0b24ucXRiLWRpc2FibGVkIC5xdGItaWNvbiB7XG4gICAgb3BhY2l0eTogMC4zO1xufVxuXG4vLyAtLS0gRGFyayB0aGVtZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2FtZSByYW1wLCBvbmUgc3RlcCBwZXIgc3RhdGUsIG9uIHRoZSBkYXJrIGdyZXlzIHRoZSBvdGhlciB2MiBjb21wb25lbnRzIHVzZS5cblxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXRvdWNoLWJ1dHRvbiB7XG4gICAgLS1xdGItYmc6IHZhcigtLWMtYmctY2FyZCwgIzJhMmQzNCk7XG4gICAgLS1xdGItYmctaG92ZXI6ICMzNDM4NDE7XG4gICAgLS1xdGItYmctcHJlc3NlZDogIzNlNDM0ZDtcbiAgICAtLXF0Yi1ib3JkZXI6ICM0MDQ0NGQ7XG4gICAgLS1xdGItYm9yZGVyLWhvdmVyOiAjNGI1MDVhO1xuICAgIC0tcXRiLWJvcmRlci1wcmVzc2VkOiAjNTc1ZDY4O1xuICAgIC0tcXRiLWxhYmVsLWNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgI2YwZjFmMik7XG4gICAgLS1xdGItZGlzYWJsZWQtYmc6ICM0MDQ0NGQ7XG4gICAgLS1xdGItZGlzYWJsZWQtY29sb3I6ICM2YjcyODA7XG59XG5cbi8vIC0tLSBSZWR1Y2VkIG1vdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnFkbmFwcm8tdG91Y2gtYnV0dG9uIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXRyYW5zbGF0aW9uLXBhbmVsXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBBIHJldXNhYmxlLCBkYXRhLXNvdXJjZS1hZ25vc3RpYyBzbGlkZS1pbiB0cmFuc2xhdGlvbiBlZGl0b3IuXG4vLyAgVmlzdWFsbHkgbWlycm9ycyB0aGUgZmxvdyBlZGl0b3IncyB0cmFuc2xhdGlvbiBwYW5lbCBidXQgaXNcbi8vICBmdWxseSBpbmRlcGVuZGVudCBvZiBpdDogaXRzIG93biBgcXRwLWAgY2xhc3MgbmFtZXNwYWNlLCBub1xuLy8gIGNvdXBsaW5nIHRvIF9mbG93ZWRpdG9yLnNjc3MuIEJvdGggdGhlIHRhc2tsaXN0IHBhZ2UgYW5kIChsYXRlcilcbi8vICB0aGUgZmxvdyBlZGl0b3IgY2FuIHJ1biBvbiB0aGlzIHNhbWUgY29tcG9uZW50LiBbS2ltIDIwMjYtMDYtMTZdXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxucWRuYXByby10cmFuc2xhdGlvbi1wYW5lbCB7XG4gICAgZGlzcGxheTogY29udGVudHM7IC8vIGhvc3QgYWRkcyBubyBsYXlvdXQgYm94OyB0aGUgLnF0cCBwYW5lbCBpcyBmaXhlZC1wb3NpdGlvbmVkXG59XG5cbi8vIFdoaWxlIHRoZSBwYW5lbCBpcyBvcGVuIHRoZSBwYWdlIGlzIGluIFwidHJhbnNsYXRlIG1vZGVcIjogdGhlIHRhc2tsaXN0IGNocm9tZVxuLy8gYmVoaW5kIGl0IGlzIG5vbi1pbnRlcmFjdGl2ZSAobm8gc3RhdC1jYXJkIHBpY2tlcnMsIG5vIGluc2VydCBcIitcIiBtZW51LCBub1xuLy8gbWFuYWdlcnMgcGlja2VyKS4gQWN0aXZpdHkgcm93cywgdGhlIGNoZWNrLWluIGFuZCB0aXRsZXMgc3RheSBjbGlja2FibGUg4oCUXG4vLyB0aGV5IGZvY3VzIHRoZSBtYXRjaGluZyB0cmFuc2xhdGlvbiBjYXJkIGluc3RlYWQuIFtLaW0gMjAyNi0wNi0xNl1cbmJvZHkucXRwLW9wZW4ge1xuICAgIC5zdGF0cy1iYXIsXG4gICAgLm1nci1zdGFjay10cmlnZ2VyLFxuICAgIC5pbnNlcnQtem9uZSB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbn1cblxuLnF0cCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDQyMHB4O1xuICAgIG1heC13aWR0aDogOTJ2dztcbiAgICAvLyBGcm9zdGVkIHdoaXRlIHN1cmZhY2UgKHdhcyBhIGxhdmVuZGVyIHRpbnQpLiBUaGUgcHVycGxlIGhlYWRlciBiYXIga2VlcHNcbiAgICAvLyBpdHMgYnJhbmQgY29sb3VyIG9uIHRvcCBvZiB0aGlzLiBbS2ltIDIwMjYtMDYtMTZdXG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU1KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjRweCkgc2F0dXJhdGUoMTYwJSk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjRweCkgc2F0dXJhdGUoMTYwJSk7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTUpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB6LWluZGV4OiAxMDUwO1xuICAgIGJveC1zaGFkb3c6IC04cHggMCAzMnB4IHJnYmEoNDAsIDQ2LCAxMDAsIDAuMTgpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBcIlNlZ29lIFVJXCIsIHNhbnMtc2VyaWY7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC8vIFNsaWRlLWluOiBzdGFydHMgb2ZmLXNjcmVlbiwgSlMgYWRkcyAucXRwLS12aXNpYmxlIG9uIHRoZSBuZXh0IGZyYW1lLlxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjQwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcblxuICAgICYtLXZpc2libGUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgfVxuXG4gICAgKiB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbn1cblxuLy8g4pSA4pSAIEhlYWRlciDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xdHAtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTFweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuNTUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBnYXA6IDlweDtcbn1cbi8vIFB1c2hlcyB0aGUgYXV0by10cmFuc2xhdGUgYnV0dG9uICsgY2xvc2UgdG8gdGhlIHJpZ2h0ICh0aGUgXCJWZXJ0YWxpbmdlblwiXG4vLyB0aXRsZSB3YXMgcmVtb3ZlZCkuXG4ucXRwLWhlYWRlci1zcGFjZXIge1xuICAgIGZsZXg6IDE7XG59XG4vLyBDbG9zZSA9IHFkbmFwcm8tYnV0dG9uIChnbGFzcywgaWNvbi1vbmx5KTsgbm8gY3VzdG9tIHN0eWxpbmcgbmVlZGVkLlxuXG4vLyDilIDilIAgQXV0by10cmFuc2xhdGUgYnV0dG9uIHNoaW1tZXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBBIHN1YnRsZSBsaWdodCBzdHJlYWsgc3dlZXBzIGFjcm9zcyB0aGUgYnV0dG9uIHBlcmlvZGljYWxseSB0byBkcmF3IHRoZSBleWVcbi8vIHRvIHRoZSBcIm1hZ2ljXCIgYWN0aW9uLCB0aGVuIHJlc3RzLiBbS2ltIDIwMjYtMDYtMTZdXG4ucXRwLWF0LWJ0biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogNTUlO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTIwZGVnLFxuICAgICAgICAgICAgdHJhbnNwYXJlbnQgMCUsXG4gICAgICAgICAgICByZ2JhKDY1LCA3MywgMTU0LCAwLjEzKSA1MCUsXG4gICAgICAgICAgICB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAlKTtcbiAgICAgICAgYW5pbWF0aW9uOiBxdHAtc2hpbW1lciAzLjRzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG59XG5Aa2V5ZnJhbWVzIHF0cC1zaGltbWVyIHtcbiAgICAwJSAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAlKTsgfVxuICAgIDMwJSAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjIwJSk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIyMCUpOyB9XG59XG5cbi8vIOKUgOKUgCBBdXRvLXRyYW5zbGF0ZSBidXR0b24gKGluIGhlYWRlcikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBJdCBpcyBhIDxxZG5hcHJvLWJ1dHRvbiB0eXBlPVwic2Vjb25kYXJ5LXdoaXRlXCI+OyB0aGUgY29tcG9uZW50IG93bnMgaXRzIGxvb2suXG4vLyBXZSBvbmx5IGtlZXAgdGhlIGljb24gKyBsYWJlbCBnYXAgYW5kIHRoZSBzcGluIGN1ZSBvbiB0aGUgaW5uZXIgaWNvbi5cbi5xdHAtYXQtaWNvbiB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSAvLyBzcGFjaW5nIGNvbWVzIGZyb20gcWRuYXByby1idXR0b24ncyBvd24gZ2FwXG4ucXRwLWF0LWljb24tLXNwaW4geyBhbmltYXRpb246IHF0cC1yb3RhdGUgMC44cyBsaW5lYXIgaW5maW5pdGU7IH1cblxuQGtleWZyYW1lcyBxdHAtcm90YXRlIHtcbiAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgICB0byAgIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuXG4vLyDilIDilIAgQXV0by10cmFuc2xhdGUgYmFyIChjb25maXJtIC8gcmVzdWx0IHN0cmlwKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xdHAtYXQtYmFyIHtcbiAgICBwYWRkaW5nOiA5cHggMTRweDtcbiAgICAvLyBTYW1lIGZyb3N0ZWQgc3VyZmFjZSBhcyB0aGUgcGFuZWwgKG5vIHB1cnBsZSB0aW50KTsganVzdCBhIGRpdmlkZXIgbGluZS5cbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyMTYsIDIxOSwgMjM3LCAwLjYwKTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAmLS1kb25lIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTQwLCA5MCwgMC4xMCk7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMzQsIDE0MCwgOTAsIDAuMTgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10YWctbmV3LXRleHQpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICB9XG4gICAgJi0tZXJyb3Ige1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE5NiwgNTQsIDQyLCAwLjEwKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgxOTYsIDU0LCA0MiwgMC4xOCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRhZy1jcml0aWNhbC10ZXh0KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgfVxufVxuLnF0cC1hdC1iYXItcXVlc3Rpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDdweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuLy8gRGlyZWN0aW9uIHJvdzogXCJOTCDihpIgRU5cIiBwbHVzIHRoZSBzd2FwIGJ1dHRvbi4gUmVhZHMgbGVmdCB0byByaWdodCBhcyB3aGF0XG4vLyB0aGUgcnVuIHdpbGwgZG8g4oCUIGxlZnQgaXMgcmVhZCwgcmlnaHQgaXMgd3JpdHRlbi5cbi5xdHAtYXQtZGlyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogN3B4O1xufVxuLnF0cC1hdC1kaXItbGFuZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDMycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDY1LCA3MywgMTU0LCAwLjEwKTtcbiAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5xdHAtYXQtZGlyLWFycm93IHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBjb2xvcjogcmdiYSg2MywgNzMsIDE1NCwgMC41NSk7XG59XG4ucXRwLWF0LWJhci1idG5zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogNnB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLy8gVGhlIGNvbmZpcm0gYnV0dG9ucyBhcmUgcWRuYXByby1idXR0b24gY29tcG9uZW50cyAocHJpbWFyeS1wdXJwbGUgL1xuLy8gc2Vjb25kYXJ5LXB1cnBsZSAvIHN1YnRsZSkg4oCUIHRoZXkgYnJpbmcgdGhlaXIgb3duIHN0eWxpbmcuXG5cbi8vIOKUgOKUgCBMYW5ndWFnZSBwaWNrZXIgKHFkbmFwcm8tc2VnbWVudCwgc2xpZGluZyBwaWxsKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xdHAtbGFuZy1iYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogOHB4IDE0cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUwKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyMTYsIDIxOSwgMjM3LCAwLjcwKTtcbiAgICBmbGV4LXNocmluazogMDtcbn1cbi8vIEFtYmVyIFwiaGFzIG1pc3NpbmcgdHJhbnNsYXRpb25zXCIgZG90IG9uIGEgbGFuZ3VhZ2UgcGlsbCAobGlrZSBhIGRvdCBiYWRnZSkuXG4vLyBMZXRzIHlvdSBzcG90IHdoaWNoIG9mIG1hbnkgbGFuZ3VhZ2VzIHN0aWxsIG5lZWQgd29yayB3aXRob3V0IHN3aXRjaGluZy5cbi5xdHAtbGFuZy1zZWcgLnFkbmFwcm8tc2VnbWVudC1pdGVtW2RhdGEtbWlzc2luZ10ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAzcHg7XG4gICAgICAgIHJpZ2h0OiA2cHg7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICNmZmY7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbn1cblxuLy8g4pSA4pSAIENvbHVtbiBoZWFkZXJzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnF0cC1jb2wtaGVhZGVycyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUwKTtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgcmdiYSgyMTYsIDIxOSwgMjM3LCAwLjcwKTtcbn1cbi5xdHAtY29sLWgge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDdlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXRyZWUpO1xuICAgIH1cbn1cbi5xdHAtbWlzc2luZy1waWxsIHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy10YWctd2FybmluZy1iZyk7XG4gICAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXllbGxvdy10ZXh0KTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMnB4IDZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuLy8g4pSA4pSAIENhcmQgbGlzdCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xdHAtYm9keSB7XG4gICAgZmxleDogMTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDdweDtcbiAgICAvLyBTY3JvbGwsIGJ1dCBoaWRlIHRoZSBiYXIgKGNvbnRlbnQgc3RheXMgc2Nyb2xsYWJsZSB2aWEgd2hlZWwvdHJhY2twYWQpLlxuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsgICAgICAgICAgICAvLyBGaXJlZm94XG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogMDsgaGVpZ2h0OiAwOyB9XG59XG4ucXRwLWVtcHR5IHtcbiAgICBwYWRkaW5nOiAyOHB4IDE2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQtcHApO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLnF0cC1jYXJkIHtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgICAvLyBUaGUgY2FyZCdzIGNvbG91ciBzaWduYWwgbGl2ZXMgaW4gdGhlIGJhZGdlIG5vdywgbm90IGEgbGVmdCBhY2NlbnQgc3RyaXBlLlxuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMTIwbXM7XG4gICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDY1LCA3MywgMTU0LCAwLjE0KTtcbiAgICB9XG4gICAgLy8gU2VsZWN0ZWQgPSB0aGUgU0FNRSBmb2N1cyByaW5nIGFzIHRoZSBhY3Rpdml0eSByb3cgKHF0cC1yb3ctZm9jdXNlZCkuXG4gICAgLy8gTGlzdGVkIHdpdGggOmhvdmVyIHRvbyBzbyBob3ZlcmluZyBhIHNlbGVjdGVkIGNhcmQgbmV2ZXIgZHJvcHMgdGhlIHJpbmcuXG4gICAgJi0tc2VsZWN0ZWQsXG4gICAgJi0tc2VsZWN0ZWQ6aG92ZXIge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLWhvdmVyKSwgMCA0cHggMTRweCByZ2JhKDY1LCA3MywgMTU0LCAwLjE4KTtcbiAgICB9XG4gICAgLy8gT25lLXNob3QgaGlnaGxpZ2h0IHdoZW4gYSBjYXJkIGlzIHNwb3RsaWdodGVkIChmbG93IGVkaXRvciBjYW52YXMgc3luYykuXG4gICAgJi0tc3BvdGxpZ2h0IHtcbiAgICAgICAgYW5pbWF0aW9uOiBxdHAtc3BvdGxpZ2h0IDkwMG1zIGVhc2Utb3V0IGZvcndhcmRzO1xuICAgIH1cbiAgICAvLyBBcmNoaXZlZCBhY3Rpdml0eTogbXV0ZWQgZ3JleSBjYXJkIHNvIGl0IHJlYWRzIGFzIFwicGFya2VkXCIuXG4gICAgJi0tYXJjaGl2ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyLXRyZWUpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQtaG92ZXIpO1xuICAgICAgICAucXRwLW1ldGEgeyBiYWNrZ3JvdW5kOiByZ2JhKDEyMCwgMTI0LCAxNTAsIDAuMDgpOyBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpOyB9XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHF0cC1zcG90bGlnaHQge1xuICAgIDAlICAgeyBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg2NSwgNzMsIDE1NCwgMC41NSk7IH1cbiAgICA2MCUgIHsgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoNjUsIDczLCAxNTQsIDAuMjUpOyB9XG4gICAgMTAwJSB7IGJveC1zaGFkb3c6IG5vbmU7IH1cbn1cblxuLy8g4pSA4pSAIEJhZGdlIChmbG93IGVkaXRvcikgdmFyaWFudCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFRoZSBub2RlLXR5cGUgYmFkZ2UgKHZyYWFnc29vcnQpIGNhcnJpZXMgdGhlIG5vZGUgY29sb3VyOyB0aGUgYmFkZ2UgaXMgYVxuLy8gcm91bmRlZCBwaWxsIHdpdGggYSBsaXR0bGUgYnJlYXRoaW5nIHJvb20gZnJvbSB0aGUgY2FyZCBlZGdlLiAoTm8gbGVmdCBjb2xvdXJcbi8vIHN0cmlwIOKAlCByZW1vdmVkIGF0IEtpbSdzIHJlcXVlc3QgMTguMDYuMjAyNi4pIFRoZSBpY29uICh0YXNrbGlzdCkgdmFyaWFudCBpc1xuLy8gdW5hZmZlY3RlZC5cbi5xdHAtY2FyZC0tYmFkZ2Uge1xuICAgIC5xdHAtbWV0YSAgeyBwYWRkaW5nLWxlZnQ6IDEycHg7IH1cbiAgICAucXRwLWJhZGdlIHsgYm9yZGVyLXJhZGl1czogNnB4OyB9XG59XG5cbi8vIOKUgOKUgCBBcmNoaXZlZCBzZWN0aW9uIGRpdmlkZXIgKGtleWxpbmUgKyBsYWJlbCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucXRwLXNlY3Rpb24tZGl2aWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbjogMTZweCAycHggOHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgIH1cbn1cbi5xdHAtc2VjdGlvbi1sYWJlbCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gICAgcGFkZGluZzogM3B4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG4ucXRwLXNlY3Rpb24taWNvbiB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vLyBDYXJkIGhlYWRlcjogdHlwZSBiYWRnZSArIGlkICsgc2F2ZSBkb3Rcbi5xdHAtbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogN3B4O1xuICAgIC8vIE5vIGxlZnQgcGFkZGluZzogdGhlIGJhZGdlIHNpdHMgZmx1c2ggYWdhaW5zdCB0aGUgY2FyZCdzIGxlZnQgZWRnZSBzbyBpdHNcbiAgICAvLyByb3VuZGVkLWxlZnQgLyBzdHJhaWdodC1yaWdodCByZWFkcyBhcyBhIGNvcm5lciB0YWIuXG4gICAgcGFkZGluZzogNnB4IDEwcHggNnB4IDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4wNik7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtY2hpcC1wdXJwbGUtYmcpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5xdHAtYmFkZ2Uge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xuICAgIC8vIExlZnQgcm91bmRlZCwgcmlnaHQgc3RyYWlnaHQuXG4gICAgYm9yZGVyLXJhZGl1czogNnB4IDAgMCA2cHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5xdHAtbm9kZS1pZCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQtcHApO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8vIOKUgOKUgCBJY29uIHZhcmlhbnQgaGVhZGVyICh0YXNrbGlzdCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBBY3Rpdml0eSBpY29uICsgbmFtZSB0aXRsZSBpbnN0ZWFkIG9mIHRoZSBjb2xvdXJlZCBiYWRnZS5cbi5xdHAtbWV0YS0taWNvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4OyAvLyB0aGUgYmFkZ2UtZmx1c2ggMCBwYWRkaW5nIGRvZXNuJ3QgYXBwbHkgaGVyZVxuICAgIGdhcDogOHB4O1xufVxuLnF0cC1hY3Rpdml0eS1pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cbi5xdHAtaWNvbi1wbGFjZWhvbGRlciB7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtcHVycGxlLWJnKTtcbiAgICBmbGV4LXNocmluazogMDtcbn1cbi5xdHAtdGl0bGUge1xuICAgIGZsZXg6IDAgMSBhdXRvOyAgIC8vIHRha2UgY29udGVudCB3aWR0aCwgc2hyaW5rK2VsbGlwc2l6ZSBpZiBsb25nIChiYWRnZSBzaXRzIHJpZ2h0IGFmdGVyKVxuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNzAwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4vLyBTbWFsbCBzdGF0dXMgdGFncyBhZnRlciB0aGUgbmFtZTogc3ViZmxvdyAvIHRpdGxlIC8gYXJjaGl2ZWQuXG4ucXRwLXRhZyB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgcGFkZGluZzogMnB4IDdweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvLyBzdWJmbG93ICsgdGl0bGUgdXNlIGEgc29mdCBwdXJwbGU7IGFyY2hpdmVkIGlzIGdyZXkuXG4gICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4xMik7XG5cbiAgICAmLS1hcmNoaXZlZCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItc29mdC0yKTtcbiAgICB9XG59XG4ucXRwLXNhdmUge1xuICAgIHdpZHRoOiA3cHg7XG4gICAgaGVpZ2h0OiA3cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICYtLXNhdmluZyB7IGJhY2tncm91bmQ6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKTsgfVxuICAgICYtLXNhdmVkICB7IGJhY2tncm91bmQ6IHZhcigtLWMtc3VjY2Vzcy1icmlnaHQpOyB9XG4gICAgJi0tZXJyb3IgIHsgYmFja2dyb3VuZDogdmFyKC0tYy10YWctY3JpdGljYWwtdGV4dCk7IH1cbn1cblxuLy8g4pSA4pSAIFR3by1jb2x1bW4gbGF5b3V0IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnF0cC1jb2xzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbn1cbi5xdHAtY29sIHtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG4gICAgbWluLWhlaWdodDogNTBweDtcbiAgICAvLyBUaWdodGVuIHRoZSBpbm5lciBlZGdlICh0b3dhcmQgdGhlIGNlbnRyZSBkaXZpZGVyKSB0byA0cHggb24gZWFjaCBzaWRlO1xuICAgIC8vIHRoZSBvdXRlciBlZGdlcyBrZWVwIDEwcHguXG4gICAgJi0tcHJpbWFyeSB7IHBhZGRpbmctcmlnaHQ6IDRweDsgfVxuICAgICYtLXRhcmdldCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWMtY2hpcC1wdXJwbGUtYmcpO1xuICAgIH1cbn1cblxuLy8g4pSA4pSAIElucHV0cyAoc2hhcmVkIHFkbmFwcm8taW5wdXQsIHR5cGU9XCJleHBhbmRpbmdcIikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBGaWVsZHMgYXJlIHRoZSByZWFsIGlucHV0IGNvbXBvbmVudCBzbyB0aGV5IG1hdGNoIHRoZSByZXN0IG9mIHRoZSBhcHAuXG4vLyBXZSBvbmx5IGRvIGxheW91dCArIHRoZSBtaXNzaW5nLXRyYW5zbGF0aW9uIGFjY2VudCBoZXJlOyB0aGUgZmllbGQncyBvd25cbi8vIGxvb2sgKGJvcmRlciwgZm9jdXMgcmluZywgcGFkZGluZywgYXV0by1ncm93KSBjb21lcyBmcm9tIF9pbnB1dC5zY3NzLlxuLnF0cC1maWVsZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi8vIOKUgOKUgCBQZXItcm93IGZpZWxkIGNhcHRpb24g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBTbWFsbCwgbXV0ZWQsIHVub2J0cnVzaXZlIGxhYmVsIGFib3ZlIGEgZmllbGQgKG9yIGEgZmllbGQgcGFpcikgc28gYmFyZVxuLy8gdGV4dCBsaWtlIFwiVmVyeSBwb29yXCIgLyBcIldoeSBkaWQgeW91IGdpdmUgdGhpcyBzY29yZT9cIiBpcyBpZGVudGlmaWFibGUgYXRcbi8vIGEgZ2xhbmNlLiBPcHRpb25hbCBhbmQgZ2VuZXJpYzogYW55IGZpZWxkIGtpbmQgY2FuIGNhcnJ5IG9uZS4gW0tpbSAyMDI2LTA3LTExXVxuLnF0cC1maWVsZC1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLnF0cC1maWVsZC1jYXB0aW9uIHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0NWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuXG4gICAgLy8gQWJvdmUgdGhlIHdob2xlIGFuc3dlci1vcHRpb25zIGJsb2NrIChvbmNlLCBub3QgcGVyIG9wdGlvbiksIGEgYml0XG4gICAgLy8gc3Ryb25nZXIgc28gaXQgcmVhZHMgYXMgYSBzZWN0aW9uIGxhYmVsLCBtYXRjaGluZyB0aGUgZGl2aWRlciBhYm92ZSBpdC5cbiAgICAmLS1zZWN0aW9uIHtcbiAgICAgICAgbWFyZ2luOiAycHggMCA0cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQtcHApO1xuICAgIH1cbn1cbi5xdHAtYW5zLXJvdyAucXRwLWZpZWxkIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMDtcbn1cbi8vIE1pc3NpbmcgdHJhbnNsYXRpb24gKGVtcHR5IHRhcmdldCBmaWVsZCwgbm9uLXN1Yik6IGFtYmVyIGFjY2VudCwgbWlycm9ycyB0aGVcbi8vIGZsb3cgZWRpdG9yLiBUYXJnZXRzIHRoZSBpbnB1dCBjb21wb25lbnQncyBpbm5lciBmaWVsZCB3cmFwcGVyLlxuLnF0cC1maWVsZC0tbWlzc2luZyAuaW5wdXQtZmllbGQge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy13YXJuLXllbGxvdy02MDApICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKSAhaW1wb3J0YW50O1xufVxuXG4vLyDilIDilIAgQWN0aXZpdHkgcm93IGZvY3VzIHN0YXRlICh3aGlsZSB0aGUgcGFuZWwgaXMgb3Blbikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBXaGVuIHRoZSB0cmFuc2xhdGlvbiBwYW5lbCBpcyBvcGVuLCBjbGlja2luZyBhbiBhY3Rpdml0eSByb3cgZm9jdXNlcyBpdFxuLy8gKGhlcmUgKyBpbiB0aGUgcGFuZWwpIGluc3RlYWQgb2Ygb3BlbmluZyB0aGUgZmxvdyBlZGl0b3IuIFRoZSByaW5nIGZvbGxvd3Ncbi8vIHRoZSByb3cncyBvd24gYm9yZGVyLXJhZGl1cyB2aWEgYm94LXNoYWRvdy4gW0tpbSAyMDI2LTA2LTE2XVxucWRuYXByby1hY3Rpdml0eS1yb3cucXRwLXJvdy1mb2N1c2VkIC5hY3Rpdml0eS1yb3ctaW5uZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtaG92ZXIpLCAwIDRweCAxNHB4IHJnYmEoNjUsIDczLCAxNTQsIDAuMTgpO1xufVxuLy8gU2FtZSBmb2N1cyByaW5nIGZvciBhIHNlY3Rpb24taGVhZGVyIHRpdGxlIChpdCBoYXMgbm8gZm9jdXMgc3RhdGUgb2YgaXRzIG93bikuXG5xZG5hcHJvLXNlY3Rpb24taGVhZGVyLnF0cC1yb3ctZm9jdXNlZCAuc2gtcGlsbCB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS1ob3ZlciksIDAgNHB4IDE0cHggcmdiYSg2NSwgNzMsIDE1NCwgMC4xOCk7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4vLyDilIDilIAgQW5zd2VyIG9wdGlvbnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucXRwLWFucy1kaXZpZGVyIHtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtcHVycGxlLWJnKTtcbiAgICBtYXJnaW46IDJweCAwO1xufVxuLnF0cC1hbnMtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogNnB4O1xufVxuLnF0cC1hbnMtZG90IHtcbiAgICB3aWR0aDogNnB4O1xuICAgIGhlaWdodDogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tdG9wOiAxMXB4O1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby10cmFuc2xhdGlvbi1tb2RhbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgQSByZXVzYWJsZSwgZGF0YS1zb3VyY2UtYWdub3N0aWMgbW9kYWwgZm9yIHRyYW5zbGF0aW5nIE9ORVxuLy8gIGZpZWxkIGludG8gYWxsIGVuYWJsZWQgYmFja2VuZCBsYW5ndWFnZXMuIFRoZSBsaWdodHdlaWdodFxuLy8gIGNvdW50ZXJwYXJ0IHRvIHFkbmFwcm8tdHJhbnNsYXRpb24tcGFuZWw6IGl0IGNvbXBvc2VzIHRoZVxuLy8gIHNoYXJlZCBxZG5hcHJvLW1vZGFsIGFuZCBvbmx5IHN0eWxlcyBpdHMgYm9keSAodGhlIGBxdG0tYFxuLy8gIG5hbWVzcGFjZSkuIFNoYXJlcyB0aGUgcGFuZWwncyB2aXN1YWwgbGFuZ3VhZ2UgKGZyb3N0ZWQgYXV0b1xuLy8gIGJ1dHRvbiBzaGltbWVyLCBhbWJlciBcIm1pc3NpbmdcIiBhY2NlbnQsIHJlc3VsdCBiYXIpLiBbS2ltIDIwMjYtMDYtMTddXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxucWRuYXByby10cmFuc2xhdGlvbi1tb2RhbCB7XG4gICAgZGlzcGxheTogY29udGVudHM7IC8vIGhvc3QgYWRkcyBubyBsYXlvdXQgYm94OyB0aGUgcWRuYXByby1tb2RhbCBpdCBidWlsZHMgb3ducyBsYXlvdXRcbn1cblxuLnF0bSB7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBcIlNlZ29lIFVJXCIsIHNhbnMtc2VyaWY7XG4gICAgKiB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbn1cblxuLy8g4pSA4pSAIFRvcCByb3c6IHNvdXJjZSByZWZlcmVuY2UgKyBhdXRvLXRyYW5zbGF0ZSBidXR0b24g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucXRtLXRvcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG59XG4ucXRtLXNvdXJjZSB7XG4gICAgbWluLXdpZHRoOiAwOyAvLyBhbGxvdyB0aGUgc291cmNlIHRleHQgdG8gZWxsaXBzaXplIGluc3RlYWQgb2YgcHVzaGluZyB0aGUgYnV0dG9uIG9mZlxuICAgIGZsZXg6IDE7XG59XG4ucXRtLWZpZWxkLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA3ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuLnF0bS1zb3VyY2Utcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuLnF0bS1zb3VyY2UtdGV4dCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDApO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5xdG0tc291cmNlLWVtcHR5IHsgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZC1wcCk7IGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuLy8g4pSA4pSAIExhbmd1YWdlIHBpbGwgKHNoYXJlZCBieSBzb3VyY2UgKyBlYWNoIGZpZWxkKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xdG0tcGlsbCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gICAgcGFkZGluZzogM3B4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2NSwgNzMsIDE1NCwgMC4xMik7XG4gICAgLy8gVGhlIHNvdXJjZSBwaWxsIGlzIGZpbGxlZCAoaXQgaXMgdGhlIFwiZnJvbVwiIGxhbmd1YWdlKS5cbiAgICAmLS1zb3VyY2Uge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gICAgfVxufVxuXG4vLyDilIDilIAgQXV0by10cmFuc2xhdGUgYnV0dG9uIHNoaW1tZXIgKG1pcnJvcnMgdGhlIHBhbmVsKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xdG0tYXQtYnRuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiA1NSU7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMjBkZWcsXG4gICAgICAgICAgICB0cmFuc3BhcmVudCAwJSxcbiAgICAgICAgICAgIHJnYmEoNjUsIDczLCAxNTQsIDAuMTMpIDUwJSxcbiAgICAgICAgICAgIHRyYW5zcGFyZW50IDEwMCUpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpO1xuICAgICAgICBhbmltYXRpb246IHF0bS1zaGltbWVyIDMuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgICAvLyBObyBzaGltbWVyIHdoaWxlIGRpc2FibGVkIChubyBzb3VyY2UgdmFsdWUgeWV0KS5cbiAgICAmW2Rpc2FibGVkXTo6YWZ0ZXIgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cbkBrZXlmcmFtZXMgcXRtLXNoaW1tZXIge1xuICAgIDAlICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpOyB9XG4gICAgMzAlICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMjAlKTsgfVxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjIwJSk7IH1cbn1cbi5xdG0tYXQtaWNvbiB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuLnF0bS1hdC1pY29uLS1zcGluIHsgYW5pbWF0aW9uOiBxdG0tcm90YXRlIDAuOHMgbGluZWFyIGluZmluaXRlOyB9XG5Aa2V5ZnJhbWVzIHF0bS1yb3RhdGUge1xuICAgIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAgIHRvICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG59XG5cbi8vIOKUgOKUgCBBdXRvLXRyYW5zbGF0ZSBiYXIgKGNvbmZpcm0gLyByZXN1bHQgc3RyaXApIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnF0bS1hdC1iYXItaG9zdDpub3QoOmVtcHR5KSB7IG1hcmdpbi1ib3R0b206IDEycHg7IH1cbi5xdG0tYXQtYmFyIHtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTYsIDIxOSwgMjM3LCAwLjgwKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjUsIDczLCAxNTQsIDAuMDQpO1xuXG4gICAgJi0tZG9uZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsIDE0MCwgOTAsIDAuMTApO1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDE0MCwgOTAsIDAuMjApO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10YWctbmV3LXRleHQpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICB9XG4gICAgJi0tZXJyb3Ige1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE5NiwgNTQsIDQyLCAwLjEwKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE5NiwgNTQsIDQyLCAwLjIwKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGFnLWNyaXRpY2FsLXRleHQpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICB9XG59XG4ucXRtLWF0LWJhci1xdWVzdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4ucXRtLWF0LWJhci1idG5zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogNnB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4vLyDilIDilIAgRmllbGRzOiBvbmUgcGVyIHNlY29uZGFyeSBsYW5ndWFnZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5xdG0tZmllbGRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xufVxuLnF0bS1lbXB0eSB7XG4gICAgcGFkZGluZzogMjJweCAxNnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkLXBwKTtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG4vLyBMYW5ndWFnZSBwaWxsIHNpdHMgQkVGT1JFIHRoZSBpbnB1dCAoaW5saW5lLCBub3Qgc3RhY2tlZCBhYm92ZSkg4oCUIGNhbG1lciBhbmRcbi8vIHNhdmVzIHZlcnRpY2FsIHNwYWNlLiBBbGwgcGlsbHMgc2hhcmUgYSBtaW4td2lkdGggc28gdGhlIGlucHV0cyBsaW5lIHVwLiBbS2ltIDIwMjYtMDYtMTddXG4ucXRtLWZpZWxkLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIC5xdG0tcGlsbCB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBtaW4td2lkdGg6IDM4cHg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbn1cbi5xdG0tZmllbGQge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuLy8gTWlzc2luZyB0cmFuc2xhdGlvbiAoZW1wdHkgZmllbGQpOiBhbWJlciBhY2NlbnQsIG1pcnJvcnMgdGhlIHBhbmVsLiBUYXJnZXRzXG4vLyB0aGUgaW5wdXQgY29tcG9uZW50J3MgaW5uZXIgZmllbGQgd3JhcHBlci5cbi5xdG0tZmllbGQtLW1pc3NpbmcgLmlucHV0LWZpZWxkIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCkgIWltcG9ydGFudDtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUgKEtqZWxkIDIwMjYtMDYtMDIpLlxuLy8gQ29tcGlsZWQgYnkgZ3VscCBcInNhc3MtdjItY29tcG9uZW50c1wiIHRvIHdlYi9jb21wb25lbnRzLXYyL3RyZWUtaXRlbS9fdHJlZS1pdGVtLWNvbXBpbGVkLmNzcy5cbi8vIEtlcHQgZXF1YWwgdG8gdGhlIGxpdmUgY29tcGlsZWQgQ1NTOyBlZGl0IEhFUkUsIHRoZW4gcnVuIHRoZSBndWxwIHRhc2suXG5cbi5xZG5hcHJvLXRyZWUtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktOTUwKTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMC41cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMsIGNvbG9yIDEyMG1zO1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbTpmb2N1cy12aXNpYmxlLCAucWRuYXByby10cmVlLWl0ZW0uZm9yY2UtZm9jdXMge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbSA+IC50cmVlLWl0ZW0tY2hldnJvbi1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbSA+IC50cmVlLWl0ZW0tY2hldnJvbi1idG4gPiAudHJlZS1pdGVtLWNoZXZyb24taWNvbiB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNjBtcyBlYXNlO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtID4gLnRyZWUtaXRlbS1jaGV2cm9uLWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4ucWRuYXByby10cmVlLWl0ZW0gPiAudHJlZS1pdGVtLWNoZXZyb24tYnRuOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG59XG4ucWRuYXByby10cmVlLWl0ZW0gPiAudHJlZS1pdGVtLWNoZXZyb24tYnRuOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbSA+IC50cmVlLWl0ZW0tY2hldnJvbi1idG46Zm9jdXMtdmlzaWJsZSwgLnFkbmFwcm8tdHJlZS1pdGVtID4gLnRyZWUtaXRlbS1jaGV2cm9uLWJ0bi5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoNzAsIDgyLCAyNDMsIDAuMjUpO1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtID4gLnRyZWUtaXRlbS1pY29uIHtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby10cmVlLWl0ZW0gPiAudHJlZS1pdGVtLWxhYmVsIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucWRuYXByby10cmVlLWl0ZW0gPiAudHJlZS1pdGVtLWJhZGdlIHtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLWV4cGFuZGVkID4gLnRyZWUtaXRlbS1jaGV2cm9uLWJ0biA+IC50cmVlLWl0ZW0tY2hldnJvbi1pY29uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG59XG4ucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLWxhcmdlIHtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4ucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLWxhcmdlID4gLnRyZWUtaXRlbS1jaGV2cm9uLWJ0biB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG59XG4ucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLWxhcmdlLnRyZWUtaXRlbS10eXBlLXN1YmZvbGRlciB7XG4gIHBhZGRpbmctbGVmdDogMjRweDtcbiAgcGFkZGluZy1yaWdodDogOHB4O1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1sYXJnZS50cmVlLWl0ZW0tdHlwZS1zdWJmb2xkZXIudHJlZS1pdGVtLWFjdGl2ZSB7XG4gIHBhZGRpbmctbGVmdDogNDhweDtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tc21hbGwge1xuICBtaW4taGVpZ2h0OiAzMnB4O1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBnYXA6IDhweDtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tc21hbGwgPiAudHJlZS1pdGVtLWNoZXZyb24tYnRuIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tc21hbGwudHJlZS1pdGVtLXR5cGUtc3ViZm9sZGVyIHtcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG59XG4ucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLXNtYWxsLnRyZWUtaXRlbS10eXBlLXN1YmZvbGRlci50cmVlLWl0ZW0tYWN0aXZlIHtcbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS10eXBlLXN1YmZvbGRlcjpub3QoLnRyZWUtaXRlbS1hY3RpdmUpOm5vdCgudHJlZS1pdGVtLWRpc2FibGVkKSB7XG4gIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwKTtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tdHlwZS1jaGV2cm9uOm5vdCgudHJlZS1pdGVtLWFjdGl2ZSk6bm90KC50cmVlLWl0ZW0tZGlzYWJsZWQpID4gLnRyZWUtaXRlbS1sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4ucWRuYXByby10cmVlLWl0ZW06bm90KC50cmVlLWl0ZW0tYWN0aXZlKTpub3QoLnRyZWUtaXRlbS1kaXNhYmxlZCk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApO1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtOm5vdCgudHJlZS1pdGVtLWFjdGl2ZSk6bm90KC50cmVlLWl0ZW0tZGlzYWJsZWQpOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xufVxuLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjZTZlOWZmO1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tYWN0aXZlID4gLnRyZWUtaXRlbS1sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4ucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLWFjdGl2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0KTtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tYWN0aXZlOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc2lkZWJhci1pY29uKTtcbn1cbi5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tZGlzYWJsZWQsIC5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tZGlzYWJsZWQ6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkKTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10cmVlLWl0ZW0ge1xuICBjb2xvcjogI2UxZTNlNjtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRyZWUtaXRlbSA+IC50cmVlLWl0ZW0taWNvbixcbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRyZWUtaXRlbSA+IC50cmVlLWl0ZW0tY2hldnJvbi1idG4gPiAudHJlZS1pdGVtLWNoZXZyb24taWNvbiB7XG4gIGNvbG9yOiAjZTFlM2U2O1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdHJlZS1pdGVtID4gLnRyZWUtaXRlbS1iYWRnZSB7XG4gIGNvbG9yOiAjYTZhYWIzO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRyZWUtaXRlbTpub3QoLnRyZWUtaXRlbS1hY3RpdmUpOm5vdCgudHJlZS1pdGVtLWRpc2FibGVkKTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICM1NjViNjY7XG59XG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICM0NjUyZjM7XG4gIGNvbG9yOiAjZjBmMWYyO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1hY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjMzg0MmMyO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1hY3RpdmUgPiAudHJlZS1pdGVtLWljb24sXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLWFjdGl2ZSA+IC50cmVlLWl0ZW0tYmFkZ2UsXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10cmVlLWl0ZW0udHJlZS1pdGVtLWFjdGl2ZSA+IC50cmVlLWl0ZW0tY2hldnJvbi1idG4gPiAudHJlZS1pdGVtLWNoZXZyb24taWNvbiB7XG4gIGNvbG9yOiAjZjBmMWYyO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1kaXNhYmxlZCwgW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1kaXNhYmxlZDpob3ZlciB7XG4gIGNvbG9yOiAjNmI3MjgwO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1kaXNhYmxlZCA+IC50cmVlLWl0ZW0taWNvbixcbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tZGlzYWJsZWQgPiAudHJlZS1pdGVtLWJhZGdlLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1kaXNhYmxlZCA+IC50cmVlLWl0ZW0tY2hldnJvbi1idG4gPiAudHJlZS1pdGVtLWNoZXZyb24taWNvbiwgW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1kaXNhYmxlZDpob3ZlciA+IC50cmVlLWl0ZW0taWNvbixcbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRyZWUtaXRlbS50cmVlLWl0ZW0tZGlzYWJsZWQ6aG92ZXIgPiAudHJlZS1pdGVtLWJhZGdlLFxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdHJlZS1pdGVtLnRyZWUtaXRlbS1kaXNhYmxlZDpob3ZlciA+IC50cmVlLWl0ZW0tY2hldnJvbi1idG4gPiAudHJlZS1pdGVtLWNoZXZyb24taWNvbiB7XG4gIGNvbG9yOiAjNmI3MjgwO1xufVxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdHJlZS1pdGVtOmZvY3VzLXZpc2libGUsIFtkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRyZWUtaXRlbS5mb3JjZS1mb2N1cyB7XG4gIG91dGxpbmUtY29sb3I6ICNhNWFjZmY7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjQpO1xufVxuIiwiLy8gcWRuYXByby11bml0LWlucHV0LXJvdyDigJQgb25lIHJvdyBvZiB0aGUgUFdBIHBlci11bml0IG9wZW4taW52b2VyIHNjcmVlbi5cbi8vIEZMQVQgQ1NTIChjb3BpZWQgdmVyYmF0aW0gaW50byB0aGUgUFdBIGJ5IHN5bmMtdjItY29tcG9uZW50cy5qcykuIENvbG91cnMvcmFkaWkgY29tZVxuLy8gZnJvbSB0aGUgZGVzaWduLXRva2VuIDpyb290ICh2YXIoLS1jLSopIC8gLS1yLSopOyAtLXRoZW1lLSogc3RheXMgZm9yIGZsb3cgdGhlbWluZy5cbi8vIEVkaXQgSEVSRSwgdGhlbiBgZ3VscCBzYXNzLXYxYCAobGlicmFyeSkgKyB0aGUgc3luYyAoUFdBKS4gQG1lZGlhIGlzIGZpbmUuXG5cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBib3JkZXI6IDEuNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcm93KTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWZvbnQtZmFtaWx5LCBcIkludGVyXCIsIHNhbnMtc2VyaWYpO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycywgYmFja2dyb3VuZCAwLjJzO1xufVxuXG4ucWRuYXByby11bml0LWlucHV0LXJvdy51aXItYm9yZGVybGVzcyB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi8qIEVycm9yID0gc29mdCByZWQgYmFja2dyb3VuZDsgbm8gY29sb3VyZWQgYm9yZGVyLiAqL1xuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cudWlyLWVycm9yIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLXNvZnQpO1xufVxuXG4ucWRuYXByby11bml0LWlucHV0LXJvdyAudWlyLWVycm9yLW1zZyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHZhcigtLWMtdGFnLWNyaXRpY2FsLXRleHQpO1xuICBtYXJnaW4tdG9wOiAzcHg7XG59XG5cbi8vIFRoZSB3aG9sZSBsZWZ0IHpvbmUgKGltYWdlICsgbmFtZSArIEVBTikgaXMgdGhlIHRhcCAvIGxvbmctcHJlc3MgdGFyZ2V0IGFuZCBjYXJyaWVzXG4vLyB0aGUgcHJlc3NlZCBzdGF0ZSDigJQgbm90IGp1c3QgdGhlIG5hbWUuIHBhZGRpbmcgKyBtYXRjaGluZyBuZWdhdGl2ZSBtYXJnaW4gZ2l2ZSB0aGVcbi8vIHByZXNzZWQgaGlnaGxpZ2h0IGJyZWF0aGluZyByb29tIHdpdGhvdXQgc2hpZnRpbmcgdGhlIGxheW91dC4gKDEycHgg4oaSIC0tci1jYXJkIDE0cHguKVxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1tYWluIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0zKTsgLyogMTJweCDigJQgdGhlIHByZXNzZWQtem9uZSByYWRpdXMgS2ltIHBpY2tlZCAqL1xuICBwYWRkaW5nOiA0cHg7XG4gIG1hcmdpbjogLTRweDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgZWFzZTtcbn1cbi8qIFByZXNzZWQgc3RhdGUgKGFkZGVkIHZpYSBKUyBwb2ludGVyZG93biDigJQgcmVsaWFibGUgb24gdG91Y2gpOiBwdXJwbGUtdGludGVkXG4gICBoaWdobGlnaHQgb3ZlciBpbWFnZSArIG5hbWUgKyBFQU4sIHBsdXMgYSBzbWFsbCBzcXVhc2guICovXG4ucWRuYXByby11bml0LWlucHV0LXJvdyAudWlyLW1haW4uaXMtcHJlc3NlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLXNvZnQtMTIpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpO1xufVxuXG4vLyBJbWFnZSB3cmFwcGVyIGlzIGFsd2F5cyByZW5kZXJlZCDigJQgZXZlbiB3aXRob3V0IHNob3ctaW1hZ2Ug4oCUIHNvIHRoZSBzdGF0dXMgY2lyY2xlXG4vLyBoYXMgYSByZWxpYWJsZSBhbmNob3IuIFdpdGhvdXQgYW4gaW1hZ2UgdGhlIHdyYXBwZXIgY29sbGFwc2VzIHRvIDAgd2lkdGggKG92ZXJmbG93XG4vLyB2aXNpYmxlKSBhbmQgdGhlIGNpcmNsZSBzdGlsbCBzaG93cyBhdCB0aGUgbGVmdCBlZGdlLlxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby11bml0LWlucHV0LXJvdy51aXItbm8taW1hZ2UgLnVpci1pbWFnZSB7XG4gIHdpZHRoOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93IC51aXItaW1hZ2UgaW1nIHtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItYnRuKTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ucWRuYXByby11bml0LWlucHV0LXJvdyAudWlyLWltYWdlLWVtcHR5IHtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1idG4pO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJsYWNrLTA2KTtcbn1cblxuLy8gU3RhdHVzIGNpcmNsZSDigJQgYW5jaG9yZWQgdG8gdGhlIGJvdHRvbS1sZWZ0IG9mIHRoZSBpbWFnZSwgbWF0Y2hpbmcgdGhlIHVuaXQtY2FyZFxuLy8gY2hlY2stYmFkZ2UgcGF0dGVybi4gSGlkZGVuIGJ5IGRlZmF1bHQ7IGFuaW1hdGVkIGluIHdoZW4gZmlsbGVkIG9yIGVycm9yLlxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1zdGF0dXMtY2lyY2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC02cHg7XG4gIGxlZnQ6IC02cHg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNCk7XG4gIHotaW5kZXg6IDI7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG59XG4ucWRuYXByby11bml0LWlucHV0LXJvdy51aXItZmlsbGVkIC51aXItc3RhdHVzLWNpcmNsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VjY2Vzcy1icmlnaHQsICMxZGI4N2EpO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBhbmltYXRpb246IHVpci1iYWRnZS1wb3AgMC41MnMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNSwgMSk7XG59XG4ucWRuYXByby11bml0LWlucHV0LXJvdy51aXItZXJyb3IgLnVpci1zdGF0dXMtY2lyY2xlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy10YWctY3JpdGljYWwtdGV4dCwgI2MwMzkyYik7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIGFuaW1hdGlvbjogdWlyLWJhZGdlLXBvcCAwLjUycyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC41LCAxKTtcbn1cblxuLy8gRHJhdy1pbiBjaGVja21hcmsgKGZpbGxlZCBzdGF0ZSBvbmx5KS5cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93IC51aXItY2hlY2stcGF0aCB7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDIzO1xuICBzdHJva2UtZGFzaG9mZnNldDogMjM7XG59XG4ucWRuYXByby11bml0LWlucHV0LXJvdy51aXItZmlsbGVkIC51aXItY2hlY2stcGF0aCB7XG4gIGFuaW1hdGlvbjogdWlyLWRyYXcgMC4zOHMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpIDAuMDRzIGZvcndhcmRzO1xufVxuXG5Aa2V5ZnJhbWVzIHVpci1iYWRnZS1wb3Age1xuICAwJSAgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjcpICByb3RhdGUoMGRlZyk7ICB9XG4gIDIwJSAgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMjIpIHJvdGF0ZSgtNWRlZyk7IH1cbiAgNDQlICB7IHRyYW5zZm9ybTogc2NhbGUoMC45MCkgcm90YXRlKDNkZWcpOyAgfVxuICA2NCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA4KSByb3RhdGUoLTFkZWcpOyB9XG4gIDgwJSAgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTcpIHJvdGF0ZSgwZGVnKTsgIH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSkgICAgcm90YXRlKDBkZWcpOyAgfVxufVxuQGtleWZyYW1lcyB1aXItZHJhdyB7XG4gIDAlICAgeyBzdHJva2UtZGFzaG9mZnNldDogMjM7ICB9XG4gIDYyJSAgeyBzdHJva2UtZGFzaG9mZnNldDogLTE7ICB9XG4gIDgwJSAgeyBzdHJva2UtZGFzaG9mZnNldDogMC43OyB9XG4gIDEwMCUgeyBzdHJva2UtZGFzaG9mZnNldDogMDsgICB9XG59XG5cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93IC51aXItdGV4dCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbn1cbi8vIFRoZSBuYW1lIHdyYXBzIGJ5IGRlZmF1bHQgKHNvIG1heC1oZWlnaHQgYW5pbWF0ZXMgYWdhaW5zdCB0aGUgcmVhbCBjb250ZW50IGhlaWdodFxuLy8gaW4gQk9USCBkaXJlY3Rpb25zIOKAlCBzZWUgX2V4cGFuZE5hbWUvX2NvbGxhcHNlTmFtZSBpbiB0aGUgSlMpLiBgLmlzLWNsYW1wZWRgIGlzIHRoZVxuLy8gcmVzdGluZyBvbmUtbGluZSBlbGxpcHNpcyBzdGF0ZSwgcmUtYXBwbGllZCBvbmx5IGFmdGVyIGEgY29sbGFwc2UgZmluaXNoZXMuXG4vLyBlYXNlT3V0UXVpbnQgQCAwLjI2cyA9IGZhc3QgYnV0IHNtb290aC4gKFByZXNzL3RhcCBsaXZlIG9uIC51aXItbWFpbiBub3cuKVxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1uYW1lIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogdmFyKC0tdGhlbWUtZmllbGQtdGV4dC1jb2xvciwgIzFkMWQxYik7XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgbWF4LWhlaWdodDogMS41ZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4yNnMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpO1xufVxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1uYW1lLmlzLWNsYW1wZWQge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gTm8gbWV0YTogc2hvdyAyIGxpbmVzIG9mIHRoZSBuYW1lIGluc3RlYWQgb2YgMS4gVGhlIGlzLWNsYW1wZWQgc3RhdGUgc3dpdGNoZXNcbi8vIHRvIG5vcm1hbCB3cmFwcGluZyAobm8gdHJ1bmNhdGlvbiBhdCBsaW5lIDEpLiBUYXAtdG8tZXhwYW5kIHN0aWxsIHdvcmtzIGZvclxuLy8gbmFtZXMgbG9uZ2VyIHRoYW4gMiBsaW5lcyB2aWEgdGhlIEpTIF9jb2xsYXBzZWRIZWlnaHQoKSBoZWxwZXIuXG4ucWRuYXByby11bml0LWlucHV0LXJvdy51aXItbm8tbWV0YSAudWlyLW5hbWUge1xuICBtYXgtaGVpZ2h0OiAzZW07XG59XG4vLyBUcnVlIG11bHRpLWxpbmUgZWxsaXBzaXM6IGNsYW1wIHRoZSByZXN0aW5nIDItbGluZSBzdGF0ZSB3aXRoIC13ZWJraXQtbGluZS1jbGFtcCBzbyBhbiBcIuKAplwiXG4vLyBhcHBlYXJzIGF0IHRoZSBlbmQgd2hlbiB0aGUgbmFtZSBpcyBjdXQgb2ZmIChlLmcuIFwiT21lcHJhem9sIFZpYXRyaXMgMjBtZyBDYXBzIDEwMFwiIOKGkiBcIuKApjIwbWfigKZcIikuXG4vLyBQbGFpbiBvdmVyZmxvdzpoaWRkZW4gd291bGQgc2lsZW50bHkgZHJvcCB0aGUgdGhpcmQgbGluZSB3aXRoIG5vIGN1ZS4gVGhlIGNsYW1wIGxpdmVzIG9ubHkgb25cbi8vIC5pcy1jbGFtcGVkICh0aGUgcmVzdGluZyBzdGF0ZSk7IHRhcC10by1leHBhbmQgcmVtb3ZlcyB0aGUgY2xhc3MsIHNvIHRoZSBmdWxsIG5hbWUgc3RpbGwgdW5mb2xkcy5cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93LnVpci1uby1tZXRhIC51aXItbmFtZS5pcy1jbGFtcGVkIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIC8vIFRoZSBiYXNlIC5pcy1jbGFtcGVkIHJ1bGUgKGFib3ZlKSBzZXRzIHdoaXRlLXNwYWNlOm5vd3JhcCBmb3IgaXRzIG93biAxLWxpbmVcbiAgLy8gZWxsaXBzaXMuIC13ZWJraXQtbGluZS1jbGFtcCBuZWVkcyB0aGUgdGV4dCB0byBhY3R1YWxseSBXUkFQIGJlZm9yZSBpdCBjYW5cbiAgLy8gY2xhbXAgYXQgMiBsaW5lcywgc28gbm93cmFwIG11c3QgYmUgb3ZlcnJpZGRlbiBoZXJlIOKAlCB3aXRob3V0IHRoaXMsIHRoZSBuYW1lXG4gIC8vIG5ldmVyIHJlYWNoZXMgYSAybmQgbGluZSByZWdhcmRsZXNzIG9mIG1heC1oZWlnaHQvLXdlYmtpdC1saW5lLWNsYW1wLCBhbmQgeW91XG4gIC8vIGp1c3QgZ2V0IDEtbGluZSB0cnVuY2F0aW9uIGFnYWluLiBbS2ltIGNhdWdodCB0aGlzIDIwMjYtMDctMDFdXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG4ucWRuYXByby11bml0LWlucHV0LXJvdy51aXItZmlsbGVkIC51aXItbmFtZSB7XG4gIGNvbG9yOiB2YXIoLS10aGVtZS1kZXNjcmlwdGlvbi1jb2xvciwgIzZiNmI2Yik7XG59XG4ucWRuYXByby11bml0LWlucHV0LXJvdyAudWlyLW1ldGEge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS10aGVtZS1kZXNjcmlwdGlvbi1jb2xvciwgIzhhOGE4YSk7XG4gIG1hcmdpbi10b3A6IDJweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4ucWRuYXByby11bml0LWlucHV0LXJvdyAudWlyLW1ldGFbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIGZsZXgtZ3JvdzogMSAod2FzIDAsIHRoZSBmbGV4L2ZsZXgtYmFzaXMgZGVmYXVsdCkgbGV0cyB0aGlzIHpvbmUgY2xhaW0gaXRzIHNoYXJlIG9mIHRoZVxuLy8gcm93J3MgZnJlZSBzcGFjZSBpbnN0ZWFkIG9mIGhhbmRpbmcgQUxMIG9mIGl0IHRvIC51aXItbWFpbi4gV2l0aG91dCBpdCwgLnVpci1pbnB1dCdzIG93blxuLy8gYm94IGlzIHNpemVkIHB1cmVseSBmcm9tIGl0cyBjb250ZW50IChhIGZpeGVkLXdpZHRoIHFkbmFwcm8taW5wdXQsIG9yIGEgMTAwJS13aWR0aCBjaGlsZFxuLy8gbGlrZSAueW4tdW5pdC1idXR0b25zIHRoYXQgaGFzIG5vdGhpbmcgZGVmaW5pdGUgdG8gZmlsbCBhZ2FpbnN0KSwgc28gdGhlIHJvdydzIHJpZ2h0LWhhbmRcbi8vIHNwYWNlIHNpbGVudGx5IHdlbnQgdG8gdGhlIG5hbWUgY29sdW1uIGFuZCB0aGUgaG9zdGVkIGZpZWxkL2J1dHRvbnMgc3RvcHBlZCBzaG9ydCBvZiB0aGVcbi8vIHJvdydzIHRydWUgcmlnaHQgZWRnZSAtLSB2aXNpYmxlIGFzIGEgcmlnaHQtc2lkZSBnYXAgdnMuIHRoZSBleWUtdG9nZ2xlIGJ1dHRvbiBhYm92ZSB0aGVcbi8vIGxpc3QsIHdoaWNoIERPRVMgcmVhY2ggdGhhdCBlZGdlLiBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kIHRoZW4gaHVncyBhIHN0aWxsLW5hcnJvd2VyXG4vLyBjaGlsZCAoZS5nLiBhIGNvbXBhY3QgbnVtYmVyL2RhdGUgcWRuYXByby1pbnB1dCkgYWdhaW5zdCB0aGF0IGVkZ2UgaW5zdGVhZCBvZiBsZWF2aW5nIGl0XG4vLyBzdHJhbmRlZCBvbiB0aGUgbGVmdCBvZiBhIG5vdy13aWRlciBib3guIGlucHV0LXR5cGU9XCJ0ZXh0XCIvXCJleHBhbmRpbmdcIiBrZWVwIHRoZWlyIG93biBtb3JlXG4vLyBzcGVjaWZpYyBmbGV4OiA2IDEgMCBvdmVycmlkZSBiZWxvdyAoaGlnaGVyIHNwZWNpZmljaXR5LCB1bmFmZmVjdGVkKTsgdGhlaXIgcWRuYXByby1pbnB1dFxuLy8gYWxyZWFkeSBmbGV4OjEtZmlsbHMgdGhpcyB6b25lLCBzbyBqdXN0aWZ5LWNvbnRlbnQgaXMgYSBuby1vcCB0aGVyZS4gU3RhY2tlZCBsYXlvdXQgZm9yY2VzXG4vLyB3aWR0aDogMTAwJSBvbiB0aGlzIHpvbmUgcmVnYXJkbGVzcywgc28gdGhpcyBpcyBhIG5vLW9wIHRoZXJlIHRvby4gWzIwMjYtMDctMTJdXG4ucWRuYXByby11bml0LWlucHV0LXJvdyAudWlyLWlucHV0IHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZ2FwOiA4cHg7XG59XG4ucWRuYXByby11bml0LWlucHV0LXJvdyAudWlyLWlucHV0IHFkbmFwcm8taW5wdXQge1xuICB3aWR0aDogOTZweDtcbn1cbi8qIFdpdGggwrEgY291bnRlciBidXR0b25zIChzcGlubmVyKSB0aGUgZmllbGQgbmVlZHMgcm9vbSBmb3Ig4oiSIGZpZWxkICsgLiBUaGUgwrEgdG91Y2hcbiAgIGJ1dHRvbnMgKH40NHB4IGVhY2gpICsgYSBkZWNpbWFsIHZhbHVlIGNsaXBwZWQgYXQgMTM4cHg7IHdpZGVuZWQgc28gXCIwLDAwXCIgLyBjb3VudHNcbiAgIHN0YXkgdmlzaWJsZS4gTm90IHZpZXdwb3J0LWdhdGVkOiB0aGUgY2xpcCBpcyBmaWVsZC12cy1jb250ZW50LCBwcmVzZW50IGV2ZXJ5d2hlcmUuICovXG4ucWRuYXByby11bml0LWlucHV0LXJvdyAudWlyLWlucHV0IHFkbmFwcm8taW5wdXRbc3Bpbm5lcl0ge1xuICB3aWR0aDogMTgwcHg7XG59XG5cbi8qIERyb3AgdGhlIGluLWZpZWxkIHN0YXRlIGljb24gKHRoZSByZWQgXCIhXCIgYWxlcnQtY2lyY2xlKSBpbnNpZGUgdGhlIHBlci11bml0IHJvdy4gVGhlIGVycm9yIGlzXG4gICBhbHJlYWR5IHNpZ25hbGxlZCBieSB0aGUgcmVkIHJvdyBib3JkZXIsIHRoZSByZWQg4pyXIG9uIHRoZSBpbWFnZSwgYW5kIHRoZSBcIlN0aWxsIHRvIGZpbGxcIiBsaW5lIOKAlFxuICAgdGhlIGV4dHJhIFwiIVwiIG9ubHkgZWF0cyB3aWR0aCwgd2hpY2ggaHVydHMgbW9zdCBvbiB0aGUgbmFycm93IG51bWJlci9kYXRlL2RlY2ltYWwgZmllbGRzLlxuICAgU2NvcGVkIHRvIHRoaXMgcm93IG9ubHkgKG5vdCBxZG5hcHJvLWlucHV0IGVsc2V3aGVyZSkuIDUgY2xhc3NlcyArIGVsZW1lbnQgKDUxKSBiZWF0cyB0aGVcbiAgIGNvbXBvbmVudCdzIG93biAuaW5wdXQtc3RhdGUtaWNvbiBkaXNwbGF5IHJ1bGUgKDQwKSB3aXRob3V0ICFpbXBvcnRhbnQuICovXG4ucWRuYXByby11bml0LWlucHV0LXJvdyAudWlyLWlucHV0IHFkbmFwcm8taW5wdXQgLmlucHV0LWZpZWxkIC5pbnB1dC10cmFpbGluZyAuaW5wdXQtc3RhdGUtaWNvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIE5hcnJvdyBzY3JlZW5zIChwaG9uZSkgKyBwZXItdW5pdCBPTkxZOiBkcm9wIHRoZSBpbi1maWVsZCBjbGVhciAow5cpIGJ1dHRvbi4gSW4gdGhlXG4gICBjb21wYWN0IFwiaW5wdXQgZm9yIGV2ZXJ5IHVuaXRcIiByb3dzIHRoZSDDlyBlYXRzIHRoZSB3aWR0aCB0aGUgdmFsdWUgbmVlZHMg4oCUIGl0IGNsaXBzXG4gICBcIuKCrCAyLDAwXCIgLyBcIjAsMDAwXCIgb24gZGVjaW1hbCArIGN1cnJlbmN5LiBPbiBwaG9uZSB0aGF0IHNwYWNlIGlzIHRvbyBwcmVjaW91czsgb25cbiAgIHRhYmxldC9kZXNrdG9wIHRoZXJlJ3Mgcm9vbSwgc28gdGhlIMOXIHN0YXlzIHRoZXJlLiBTZWxlY3QtYWxsICsgcmV0eXBlIHN0aWxsIGNsZWFycy5cbiAgIFNjb3BlZCB0byAucWRuYXByby11bml0LWlucHV0LXJvdyBzbyBzaW5nbGUgZnVsbC13aWR0aCBmaWVsZHMga2VlcCB0aGVpciDDly4gW0tpbSAyMDI2LTA3LTAxXSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5xZG5hcHJvLXVuaXQtaW5wdXQtcm93IC51aXItaW5wdXQgcWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nIHFkbmFwcm8taWNvbi1idG5baWNvbj1cImNsb3NlXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC8qIEN1cnJlbmN5IHN0aWxsIG5lZWRzIGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIOKCrCBwcmVmaXggKyB2YWx1ZSAoZXZlbiB3aXRob3V0IHRoZSDDlykuICovXG4gIC5xZG5hcHJvLXVuaXQtaW5wdXQtcm93W2lucHV0LXR5cGU9XCJjdXJyZW5jeVwiXSAudWlyLWlucHV0IHFkbmFwcm8taW5wdXQge1xuICAgIHdpZHRoOiAxMzBweDtcbiAgfVxuICAvKiBEYXRlOiB0aGUgbmF0aXZlIHBpY2tlciAoZGQvbW0veXl5eSArIGNhbGVuZGFyIGljb24pIGhhcyBhIHdpZGUgaW50cmluc2ljIG1pblxuICAgICAofjIwMHB4KS4gQXQgdGhlIDk2cHggZGVmYXVsdCBpdCBvdmVyZmxvd2VkIG9mZi1zY3JlZW4uIFdpZGVuIHNvIGl0IGZpdHM7IHRoZSBuYW1lXG4gICAgIGNvbHVtbiB5aWVsZHMgKEtpbSdzIHBpY2sg4oCUIG9wdGlvbiAxKS4gVGltZSBpcyBuYXJyb3dlciBidXQgYWxzbyBjbGlwcGVkIGF0IDk2cHguICovXG4gIC5xZG5hcHJvLXVuaXQtaW5wdXQtcm93W2lucHV0LXR5cGU9XCJkYXRlXCJdIC51aXItaW5wdXQgcWRuYXByby1pbnB1dCB7XG4gICAgd2lkdGg6IDIwMHB4O1xuICB9XG4gIC5xZG5hcHJvLXVuaXQtaW5wdXQtcm93W2lucHV0LXR5cGU9XCJ0aW1lXCJdIC51aXItaW5wdXQgcWRuYXByby1pbnB1dCB7XG4gICAgd2lkdGg6IDEyMHB4O1xuICB9XG59XG5cbi8qIFBlci11bml0IG1lc3NhZ2UgY2hhbm5lbDogdGhlIGZpZWxkJ3MgT1dOIHZhbGlkYXRpb24gbWVzc2FnZSBzdGF5cyBoaWRkZW4g4oCUIHRoZSBwZXItdW5pdCBlcnJvclxuICAgaXMgY2FycmllZCBieSB0aGUgcm93IGluc3RlYWQgKFwiU3RpbGwgdG8gZmlsbFwiIHVuZGVyIHRoZSBuYW1lLCBzZXQgYnkgYWR2YW5jZWRfaW5wdXQuanMpLiBUaGVcbiAgIGxvbmcgcmVxdWlyZWQgbWVzc2FnZSAoXCJZb3UgaGF2ZSB0byBmaWxsIG91dCBhbGwgcmVxdWlyZWQgZm9ybSBmaWVsZHMuXCIpIHdvdWxkIG90aGVyd2lzZSBydW4gb2ZmXG4gICBhIG5hcnJvdyBwaG9uZSBmaWVsZC4gQXV0by1zY29wZWQgdG8gcGVyLXVuaXQgYmVjYXVzZSBvbmx5IHRoZSBwZXItdW5pdCBzY3JlZW4gd3JhcHMgdGhlIGlucHV0IGluXG4gICAucWRuYXByby11bml0LWlucHV0LXJvdzsgdGhlIHNpbmdsZSBmdWxsLXdpZHRoIGZpZWxkIChub3QtcGVyLXVuaXQpIGlzIHVud3JhcHBlZCBhbmQga2VlcHMgdGhlXG4gICBmdWxsZXIgbWVzc2FnZS4gQ292ZXJzIGJvdGggYmx1ciBhbmQgc3VibWl0IHBhdGhzIGluIG9uZSBydWxlLiBUaGUgY29uc3RyYWludHMgaGludCAoYSBzZXBhcmF0ZVxuICAgbGluZSBiZWxvdyB0aGUgZmllbGQpIGlzIE5PVCAuaW5wdXQtbWVzc2FnZSwgc28gbWluL21heC9yYW5nZSBoaW50cyBzdGlsbCBzaG93LiAqL1xuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgLnVpci1pbnB1dCBxZG5hcHJvLWlucHV0IC5pbnB1dC1tZXNzYWdlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gU2l6aW5nL3NoYXBlICg0NHg0NCkgbm93IGNvbWVzIGZyb20gcWRuYXByby1idXR0b24ncyBvd24gc2l6ZT1cInRvdWNoXCIgK1xuLy8gaWNvbi1vbmx5IENTUyDigJQgb25seSB0aGUgb3JnLXRoZW1lYWJsZSBjb2xvdXIgc3RheXMgYSBsb2NhbCBvdmVycmlkZSwgc2luY2Vcbi8vIHFkbmFwcm8tYnV0dG9uJ3Mgb3duIHNlY29uZGFyeS1wdXJwbGUgdHlwZSBpcyBhIGZpeGVkIGNvbG91ciB3aXRoIG5vXG4vLyB2YXIoLS10aGVtZS1idG4tY29sb3IpIGhvb2suIGNvbG9yLW1peCBtaXJyb3JzIHNlY29uZGFyeS1wdXJwbGUncyBvd24gbGlnaHQtXG4vLyB0aW50LWJnL3NvbGlkLXRleHQgbG9vayAoI2U2ZTlmZiAvICM0MDQ5OWEpIGJ1dCBkZXJpdmVzIGJvdGggZnJvbSB0aGUgb3JnJ3Ncbi8vIHRoZW1lIGNvbG91ciBpbnN0ZWFkIG9mIHRoZSBoYXJkY29kZWQgZGVmYXVsdC4gWzIwMjYtMDctMDFdXG4ucWRuYXByby11bml0LWlucHV0LXJvdyAudWlyLXNjYW4ge1xuICBmbGV4LXNocmluazogMDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRoZW1lLWJ0bi1jb2xvciwgIzQwNDk5YSkgMTIlLCAjZmZmKTtcbiAgY29sb3I6IHZhcigtLXRoZW1lLWJ0bi1jb2xvciwgIzQwNDk5YSk7XG59XG4ucWRuYXByby11bml0LWlucHV0LXJvdyAudWlyLXNjYW4gcWRuYXByby1pY29uIHtcbiAgY29sb3I6IHZhcigtLXRoZW1lLWJ0bi1jb2xvciwgIzQwNDk5YSk7XG59XG5cbi8vIFN0YWNrZWQ6IGlucHV0IGRyb3BzIGZ1bGwtd2lkdGggYmVsb3cgdGhlIGltYWdlICsgbmFtZS5cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93LnVpci1sYXlvdXQtc3RhY2tlZCB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93LnVpci1sYXlvdXQtc3RhY2tlZCAudWlyLW1haW4ge1xuICB3aWR0aDogMTAwJTtcbn1cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93LnVpci1sYXlvdXQtc3RhY2tlZCAudWlyLWlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDZweDtcbn1cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93LnVpci1sYXlvdXQtc3RhY2tlZCAudWlyLWlucHV0IHFkbmFwcm8taW5wdXQge1xuICBmbGV4OiAxO1xuICB3aWR0aDogYXV0bztcbn1cblxuLy8g4pSA4pSAIFRleHQgLyBleHBhbmRpbmc6IGZsdWlkIGZpZWxkLCB3aWR0aC1pbmRlcGVuZGVudCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFRleHQgKGFuZCBpdHMgZXhwYW5kYWJsZSB2YXJpYW50KSBleHBlY3RzIGEgbG9uZ2VyIGFuc3dlciB0aGFuIGEgbnVtYmVyL2RhdGUvdGltZS4gVGhlIGZpZWxkXG4vLyBpcyBGTFVJRCBhdCBldmVyeSB2aWV3cG9ydDogaXQgc2hhcmVzIHRoZSByb3cgd2l0aCB0aGUgdW5pdCBuYW1lIHZpYSBmbGV4IGFuZCBncm93cyBzbW9vdGhseVxuLy8gYXMgdGhlIHZpZXdwb3J0IHdpZGVucyDigJQgbm8gYnJlYWtwb2ludCBzdGVwLiBUaGUgbmFtZSB3cmFwcyB0byAyIGxpbmVzICh2aWEgbm8tbWV0YSkgYW5kIGdpdmVzXG4vLyB1cCBzcGFjZTsgb24gcGhvbmUgdGhlIHNwbGl0IGxhbmRzIH40MC82MCAoZmllbGQgZG9taW5hbnQg4oCUIEtpbSdzIHBpY2sgZm9yIGxvbmcgaW5wdXQvYmFyY29kZXMpLlxuLy8gVGhlIGlucHV0IHpvbmUgaXMgY2FwcGVkIGF0IDU2NHB4ICjiiYg1MjBweCBmaWVsZCArIDM2cHggc2NhbiBidXR0b24gKyA4cHggZ2FwKSBzbyB0aGUgZmllbGRcbi8vIHN0b3BzIGdyb3dpbmcgYXQgfjUyMHB4IG9uIHdpZGUgdGFibGV0L2Rlc2t0b3AgYW5kIHRoZSBzdXJwbHVzIGdvZXMgYmFjayB0byB0aGUgbmFtZS5cbi8vIG51bWJlciAvIGN1cnJlbmN5IC8gZGF0ZSAvIHRpbWUgYXJlIE5PVCBmbHVpZCDigJQgdGhleSBrZWVwIGZpeGVkIGNvbXBhY3Qgd2lkdGhzIChzZWUgdGFibGV0IGJsb2NrKS5cbi8vXG4vLyBTcGxpdCBpcyBzZXQgYnkgZXhwbGljaXQgZmxleC1ncm93IG9uIGEgMCBiYXNpcyAoNCA6IDYg4omIIDQwLzYwKSwgTk9UIGJ5IGNvbnRlbnQuIEEgY29udGVudFxuLy8gYmFzaXMgKGZsZXgtYmFzaXM6YXV0bykgd291bGQgbWFrZSBhIEZJTExFRCByb3cgd2lkZXIgdGhhbiBlbXB0eSBvbmVzIOKAlCB0aGUgY2xlYXIgKMOXKSBidXR0b25cbi8vIGFkZHMgd2lkdGgg4oCUIHNvIHJvd3Mgd291bGQgbWlzYWxpZ24uIEJhc2lzIDAga2VlcHMgZXZlcnkgcm93J3MgZmllbGQgZXhhY3RseSB0aGUgc2FtZSB3aWR0aC5cbi8vIDpub3QoLnVpci1sYXlvdXQtc3RhY2tlZCkg4oCUIHRoZSBmbHVpZCBpbmxpbmUgc3BsaXQgbXVzdCBOT1QgYXBwbHkgd2hlbiB0aGUgcm93IGlzIHN0YWNrZWRcbi8vIChcIklucHV0IGJlbG93IG5hbWVcIiksIG9yIGl0IG92ZXJyaWRlcyB0aGUgc3RhY2tlZCB3aWR0aDoxMDAlIChlcXVhbCBzcGVjaWZpY2l0eSwgZGVmaW5lZCBsYXRlcilcbi8vIGFuZCB0aGUgZmllbGQgbmV2ZXIgZHJvcHMgYmVsb3cgdGhlIG5hbWUuIFN0YWNrZWQga2VlcHMgaXRzIG93biBmdWxsLXdpZHRoIHJ1bGVzIGJlbG93LlxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3dbaW5wdXQtdHlwZT1cInRleHRcIl06bm90KC51aXItbGF5b3V0LXN0YWNrZWQpIC51aXItbWFpbixcbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93W2lucHV0LXR5cGU9XCJleHBhbmRpbmdcIl06bm90KC51aXItbGF5b3V0LXN0YWNrZWQpIC51aXItbWFpbiB7IGZsZXg6IDQgMSAwOyB9XG5cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93W2lucHV0LXR5cGU9XCJ0ZXh0XCJdOm5vdCgudWlyLWxheW91dC1zdGFja2VkKSAudWlyLWlucHV0LFxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3dbaW5wdXQtdHlwZT1cImV4cGFuZGluZ1wiXTpub3QoLnVpci1sYXlvdXQtc3RhY2tlZCkgLnVpci1pbnB1dCB7IGZsZXg6IDYgMSAwOyBtaW4td2lkdGg6IDA7IG1heC13aWR0aDogNTY0cHg7IH1cblxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3dbaW5wdXQtdHlwZT1cInRleHRcIl06bm90KC51aXItbGF5b3V0LXN0YWNrZWQpIC51aXItaW5wdXQgcWRuYXByby1pbnB1dCxcbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93W2lucHV0LXR5cGU9XCJleHBhbmRpbmdcIl06bm90KC51aXItbGF5b3V0LXN0YWNrZWQpIC51aXItaW5wdXQgcWRuYXByby1pbnB1dCB7IGZsZXg6IDE7IHdpZHRoOiBhdXRvOyBtaW4td2lkdGg6IDA7IH1cblxuLy8g4pSA4pSAIFRhYmxldCBpbnB1dC10eXBlIHJlc3BvbnNpdmVuZXNzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gVGhlIGhvc3QgZ2V0cyBpbnB1dC10eXBlPVwibnVtYmVyfGN1cnJlbmN5fGRhdGV8dGltZVwiIGZyb20gdGhlIGNhbGxlci4gdGV4dC9leHBhbmRpbmcgYXJlIGZsdWlkXG4vLyAoc2VlIGFib3ZlKSBhbmQgbm90IGhhbmRsZWQgaGVyZS4gVGhlc2UgZm91ciBzdGF5IGNvbXBhY3QgYW5kIG9ubHkgZ2V0IGEgZml4ZWQgd2lkdGggb24gdGFibGV0LlxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC8vIE51bWVyaWMg4oCUIGFsbG93IHNsaWdodCBncm93dGggYnV0IGNhcCBzbyBhIHNpbmdsZSBkaWdpdCBkb2Vzbid0IGZsb2F0IGluIGEgZ2lhbnQgYm94LlxuICAucWRuYXByby11bml0LWlucHV0LXJvd1tpbnB1dC10eXBlPVwibnVtYmVyXCJdLFxuICAucWRuYXByby11bml0LWlucHV0LXJvd1tpbnB1dC10eXBlPVwiY3VycmVuY3lcIl0ge1xuICAgIC51aXItaW5wdXQgcWRuYXByby1pbnB1dCB7IHdpZHRoOiAxNjBweDsgfVxuICB9XG5cbiAgLy8gRGF0ZSAvIHRpbWUg4oCUIGp1c3QgZW5vdWdoIHJvb20gZm9yIHRoZSBuYXRpdmUgcGlja2VyIGFmZm9yZGFuY2UuXG4gIC5xZG5hcHJvLXVuaXQtaW5wdXQtcm93W2lucHV0LXR5cGU9XCJkYXRlXCJdIC51aXItaW5wdXQgcWRuYXByby1pbnB1dCAgeyB3aWR0aDogMTcwcHg7IH1cbiAgLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3dbaW5wdXQtdHlwZT1cInRpbWVcIl0gLnVpci1pbnB1dCBxZG5hcHJvLWlucHV0ICB7IHdpZHRoOiAxMzBweDsgfVxufVxuXG4vLyBDb21wYWN0IGlucHV0LXR5cGVzOiBsZXQgdGhlIHVuaXQgTkFNRSBhYnNvcmIgdGhlIHJvdydzIGZyZWUgc3BhY2UgKGxhYmVsLWxlZnQgLyB2YWx1ZS1yaWdodClcbi8vIGluc3RlYWQgb2YgdGhlIGlucHV0IHpvbmUgY2xhaW1pbmcgZmxleC1ncm93OjEgYW5kIHN0cmFuZGluZyBhIGRlYWQgZ2FwIGJldHdlZW4gdGhlIG5hbWUgYW5kIGFcbi8vIHJpZ2h0LWh1Z2dlZCwgZml4ZWQtd2lkdGggZmllbGQuIFRoZXNlIHR5cGVzIGhhdmUgYSBjb250ZW50LXNpemVkIGNvbnRyb2wgKG51bWJlci9jdXJyZW5jeS9kYXRlL1xuLy8gdGltZSA9IGEgZml4ZWQtd2lkdGggcWRuYXByby1pbnB1dDsgcGhvdG8gPSBhIGNvbXBhY3QgY2FwdHVyZSBidXR0b24pLCBzbyBmbGV4LWdyb3c6MCBzaHJpbmtzIHRoZVxuLy8gem9uZSB0byB0aGF0IGNvbnRyb2wgYW5kIC51aXItbWFpbiAoZmxleDoxKSBncm93cyB0byBwdXNoIGl0IHRvIHRoZSByb3cncyByaWdodCBlZGdlIOKAlCBubyBnYXAuXG4vLyBOT1QgYXBwbGllZCB0byB0ZXh0L2V4cGFuZGluZyAoZmx1aWQsIGZpZWxkIGZpbGxzIGl0cyBmbGV4OjYgem9uZSkgb3IgeWVzL25vIChpbnB1dC10eXBlPVwidGV4dFwiLFxuLy8gZnVsbC13aWR0aCBidXR0b25zKSDigJQgdGhvc2Ugc3RheSBleGFjdGx5IGFzIHRoZXkgd2VyZS4gQWxsIHZpZXdwb3J0czogdGhlIGdhcCBpcyBub3QgdGFibGV0LW9ubHkuXG4vLyBbS2ltIDEzLjA3LjIwMjYg4oCUIHJlZ3Jlc3Npb24gZnJvbSB0aGUgMTIuMDcgcmlnaHQtZWRnZS1hbGlnbm1lbnQgY2hhbmdlIG9uIGNvbXBhY3QgcGVyLXVuaXQgcm93c11cbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93W2lucHV0LXR5cGU9XCJudW1iZXJcIl06bm90KC51aXItbGF5b3V0LXN0YWNrZWQpIC51aXItaW5wdXQsXG4ucWRuYXByby11bml0LWlucHV0LXJvd1tpbnB1dC10eXBlPVwiY3VycmVuY3lcIl06bm90KC51aXItbGF5b3V0LXN0YWNrZWQpIC51aXItaW5wdXQsXG4ucWRuYXByby11bml0LWlucHV0LXJvd1tpbnB1dC10eXBlPVwiZGF0ZVwiXTpub3QoLnVpci1sYXlvdXQtc3RhY2tlZCkgLnVpci1pbnB1dCxcbi5xZG5hcHJvLXVuaXQtaW5wdXQtcm93W2lucHV0LXR5cGU9XCJ0aW1lXCJdOm5vdCgudWlyLWxheW91dC1zdGFja2VkKSAudWlyLWlucHV0LFxuLnFkbmFwcm8tdW5pdC1pbnB1dC1yb3dbaW5wdXQtdHlwZT1cInBob3RvXCJdOm5vdCgudWlyLWxheW91dC1zdGFja2VkKSAudWlyLWlucHV0IHtcbiAgZmxleC1ncm93OiAwO1xufVxuXG4vLyBDYXJkIGJvcmRlcnM6IHRhYmxldCB5ZXMsIG1vYmlsZSBubyAoZGVuc2VyIG9uIHBob25lKSDigJQgUUROQSByZXNwb25zaXZlIHByaW5jaXBsZS5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucWRuYXByby11bml0LWlucHV0LXJvdyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1yb3cpO1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgfVxuXG4gIC8vIEJvcmRlcmxlc3MgdmFyaWFudCDigJQgc3VwcHJlc3NlcyB0aGUgdGFibGV0IGNhcmQgYm9yZGVyLiBObyBvdXRsaW5lLCBubyBtYXJnaW4gYmV0d2VlbiByb3dzLlxuICAvLyBVc2FnZTogPHFkbmFwcm8tdW5pdC1pbnB1dC1yb3cgYm9yZGVybGVzcyAuLi4+XG4gIC5xZG5hcHJvLXVuaXQtaW5wdXQtcm93LnVpci1ib3JkZXJsZXNzIHtcbiAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1yb3cpO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbiIsIi8vIF91cGRhdGUtcm93LnNjc3Ncbi8vXG4vLyBxZG5hcHJvLXVwZGF0ZS1yb3cg4oCUIE9ORSByb3cgaW4gYW4gdXBkYXRlcy9ub3RpZmljYXRpb25zIGxpc3QsIEZhY2Vib29rXG4vLyBtb2RlbCAoS2ltJ3MgZGVjaXNpb24gMTguMDguMjAyNik6IGEgNDRweCBhdmF0YXIgd2l0aCBhIHNtYWxsIG92ZXJsYXlcbi8vIGJhZGdlIGJvdHRvbS1yaWdodCB0aGF0IHNpZ25hbHMgV0hBVCBLSU5EIG9mIHVwZGF0ZSB0aGlzIGlzLCBwbHVzIGFcbi8vIHRocmVlLWxpbmUgdGV4dCBibG9jayAodGl0bGUvcHJldmlldy9tZXRhKSBhbmQgYSByaWdodC1hbGlnbmVkIHVucmVhZCBkb3QuXG4vLyBTZWUgcWRuYS11cGRhdGUtcm93LmpzJ3MgZG9jLWNvbW1lbnQgZm9yIHRoZSBmdWxsIGF0dHJpYnV0ZSBjb250cmFjdCBhbmRcbi8vIHRoZSBcIndoeSBhIG5ldyBjb21wb25lbnRcIiByZWFzb25pbmcuXG5cbi5xZG5hcHJvLXVwZGF0ZS1yb3cge1xuICAgIC0tdWlyLWJnLWhvdmVyOiB2YXIoLS1jLWJnLXN1YnRsZS1ob3ZlciwgI2YwZjFmMik7XG4gICAgLy8gVHJhbnNsdWNlbnQgcHVycGxlIG92ZXJsYXksIHJldXNlZCB2ZXJiYXRpbSBmcm9tIHFkbmFwcm8tbGlzdC1yb3cncyBvd25cbiAgICAvLyBwcmVzc2VkL3NlbGVjdGVkIGZpbGwgKC0tcWxyLWJnLXByZXNzZWQgLyAtLXFsci1iZy1zZWxlY3RlZCkgcmF0aGVyIHRoYW5cbiAgICAvLyBhIG5ldyBoYW5kLXBpY2tlZCB2YWx1ZSDigJQgc2FtZSByZWFzb25pbmcgYXMgdGhhdCBjb21wb25lbnQ6IGl0IGlzIGFuXG4gICAgLy8gcmdiYSgpIE9WRVIgdGhlIHN1cmZhY2UgY29sb3VyLCBzbyBpdCByZWFkcyBjb3JyZWN0bHkgaW4gYm90aCB0aGVtZXNcbiAgICAvLyB3aXRob3V0IGEgc2VwYXJhdGUgW2RhdGEtdGhlbWU9ZGFya10gcnVsZS5cbiAgICAtLXVpci1iZy1wcmVzc2VkOiB2YXIoLS1jLXB1cnBsZS1zb2Z0LTEyLCByZ2JhKDY0LCA3MywgMTU0LCAwLjEyKSk7XG4gICAgLS11aXItdGl0bGUtY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZjRkKTtcbiAgICAtLXVpci1tdXRlZC1jb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICAtLXVpci1kb3QtY29sb3I6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gICAgLS11aXItZm9jdXMtcmluZzogdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcbiAgICAtLXVpci1mb2N1cy1nbG93OiByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbiAgICAvLyBDb3JhbCAoMTguMDguMjAyNikuIE5vIGNvcmFsIGRlc2lnbiBUT0tFTiBleGlzdHMgaW4gdGhpcyBsaWJyYXJ5IOKAlCB0aGlzXG4gICAgLy8gaXMgdGhlIGV4YWN0IHNhbWUgaGFuZC1zYW1wbGVkIHZhbHVlIHFkbmFwcm8tdG91Y2gtYnV0dG9uJ3Mgc3Ryb25nIHBpbGxcbiAgICAvLyB1c2VzIGZvciB0aGUgaWRlbnRpY2FsIFB1bHNlLWhlYXJ0IGFydHdvcmsgdG9uZSAoc2VlIHRoYXQgZmlsZSdzXG4gICAgLy8gLS1xdGItcGlsbC1zdHJvbmctYmcgY29tbWVudCkuIEtlcHQgTE9DQUwgdG8gdGhpcyBjb21wb25lbnQgcmF0aGVyIHRoYW5cbiAgICAvLyBwcm9tb3RlZCB0byBhIHNoYXJlZCB0b2tlbiwgc2FtZSBjaG9pY2UgbWFkZSB0aGVyZS5cbiAgICAtLXVpci1iYWRnZS13YXJtLWJnOiAjZTg3MDVmO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgY29sb3I6IHZhcigtLXVpci10aXRsZS1jb2xvcik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDEwMG1zIGVhc2Utb3V0O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXVpci1iZy1ob3Zlcik7XG4gICAgfVxuXG4gICAgJi5pcy1wcmVzc2VkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdWlyLWJnLXByZXNzZWQpO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICBpbnNldCAwIDAgMCAycHggdmFyKC0tdWlyLWZvY3VzLXJpbmcpLFxuICAgICAgICAgICAgaW5zZXQgMCAwIDAgNXB4IHZhcigtLXVpci1mb2N1cy1nbG93KTtcbiAgICB9XG59XG5cbi8vIC0tLS0gQXZhdGFyIGNsdXN0ZXIgKDQ0cHggY2lyY2xlICsgb3B0aW9uYWwgb3ZlcmxheSBiYWRnZSkgLS0tLVxuXG4udWlyLWF2YXRhciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNDRweDtcbn1cblxuLy8gVGhlIGBpbWFnZWAgbW9kZSAoZS5nLiBhIGNhbXBhaWduIGNvdmVyIGZvciBhIFwibGlrZXNcIiByb3cpIOKAlCBhIGJhcmUgcm91bmRcbi8vIGltYWdlLCBOT1Qgcm91dGVkIHRocm91Z2ggcWRuYXByby1hdmF0YXIgKHNlZSBxZG5hLXVwZGF0ZS1yb3cuanMgZG9jLVxuLy8gY29tbWVudDogYSBjYW1wYWlnbiBjb3ZlciBpcyBub3QgYSBwZXJzb24pLlxuLnVpci1hdmF0YXItaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vLyBxZG5hcHJvLWF2YXRhciBpdHNlbGYgaXMgc2l6ZWQgdmlhIGl0cyBvd24gLS1hdi1zaXplIG92ZXJyaWRlIChzZWUgdGhlXG4vLyBjb21wb25lbnQgSlMpIOKAlCBubyBleHRyYSBzaXppbmcgbmVlZGVkIGhlcmUgYmV5b25kIGZsZXgtc2hyaW5rIHNhZmV0eS5cbi51aXItYXZhdGFyLWVsIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLy8gVGhlIG92ZXJsYXkgYmFkZ2Ug4oCUIDIwcHgsIHNpdHMgb24gdGhlIGF2YXRhcidzIGJvdHRvbS1yaWdodCBjb3JuZXIsIHdpdGggYVxuLy8gMnB4IGJvcmRlciBpbiB0aGUgc3VyZmFjZSBjb2xvdXIgc28gaXQgdmlzdWFsbHkgXCJsaWVzIG9uIHRvcCBvZlwiIHRoZVxuLy8gYXZhdGFyIHJhdGhlciB0aGFuIGp1c3QgdG91Y2hpbmcgaXRzIGVkZ2UgKHNhbWUgaWRlYSBhcyBhbiBvbmxpbmUtc3RhdHVzXG4vLyBkb3QsIGJpZ2dlciwgd2l0aCBhIGdseXBoKS4gQm9yZGVyIGNvbG91ciBmb2xsb3dzIC0tYy1iZy1jYXJkIHNvIGl0IGJsZW5kc1xuLy8gd2l0aCB3aGF0ZXZlciBjYXJkIHN1cmZhY2UgdGhpcyByb3cgc2l0cyBvbiwgaW4gYm90aCB0aGVtZXMuXG4udWlyLWJhZGdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC0ycHg7XG4gICAgYm90dG9tOiAtMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnVpci1iYWRnZS1hY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG59XG5cbi51aXItYmFkZ2Utd2FybSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdWlyLWJhZGdlLXdhcm0tYmcsICNlODcwNWYpO1xufVxuXG4udWlyLWJhZGdlLWljb24ge1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGhlaWdodDogMTJweDtcbn1cblxuLy8gLS0tLSBCb2R5ICh0aXRsZSArIG9wdGlvbmFsIHByZXZpZXcgKyBvcHRpb25hbCBtZXRhKSAtLS0tXG5cbi51aXItYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBnYXA6IDJweDtcbn1cblxuLnVpci10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogdmFyKC0tdWlyLXRpdGxlLWNvbG9yKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIFVucmVhZDogYSBiaXQgaGVhdmllciwgbmV2ZXIgYSBjb2xvdXIgY2hhbmdlIOKAlCB0aGUgcm93IHN0YXlzIGZ1bGx5XG4vLyBsZWdpYmxlIGVpdGhlciB3YXkgKHNhbWUgXCJuZXZlciBhbiBvcGFjaXR5L25ldmVyIGEgY29sb3VyLW9ubHkgY3VlXCJcbi8vIHN0YW5jZSBxZG5hcHJvLWxpc3Qtcm93J3MgYHRvbmU9XCJtdXRlZFwiYCB0YWtlcyBmb3IgaXRzIG93biBlbXBoYXNpcykuXG4vLyBPbmdlbGV6ZW4ga3Jpamd0IG5hYXN0IGRlIHN0aXAgb29rIGVlbiBISUdITElHSFQgb3AgZGUgaGVsZSByaWogKEtpbXNcbi8vIGFhbnZ1bGxpbmcgMTguMDguMjAyNiwgbmFhciBGYWNlYm9va3MgXCJOaWV1d1wiLXNlY3RpZSk6IGVlbiB6YWNodGVcbi8vIGFjdGllLXRpbnQgb3ZlciBkZSByaWp2bGFrdGUuIFRva2VuIGhlZWZ0IGVlbiBkYXJrLW92ZXJyaWRlIG5vZGlnIC0gZGVcbi8vIHJnYmEtdGludCB3ZXJrdCBvcCBsaWNodCBlbiBkb25rZXIgYWxsZWJlaSBvbWRhdCBoaWogdHJhbnNwYXJhbnQgaXMuXG4ucWRuYXByby11cGRhdGUtcm93LnVpci11bnJlYWQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTA4LCByZ2JhKDcwLCA4MiwgMjQzLCAwLjA4KSk7XG59XG4ucWRuYXByby11cGRhdGUtcm93LnVpci11bnJlYWQgLnVpci10aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnVpci1wcmV2aWV3IHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICBjb2xvcjogdmFyKC0tdWlyLW11dGVkLWNvbG9yKTtcbiAgICAvLyBUd28tbGluZSBjbGFtcCwgbm90IGEgb25lLWxpbmUgZWxsaXBzaXMg4oCUIGFuIHVwZGF0ZSBwcmV2aWV3IGlzIGFcbiAgICAvLyBzZW50ZW5jZSwgbm90IGEgZmlsZW5hbWUgKHNlZSBxZG5hLXVwZGF0ZS1yb3cuanMgZG9jLWNvbW1lbnQpLlxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi51aXItbWV0YSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogdmFyKC0tdWlyLW11dGVkLWNvbG9yKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIC0tLS0gVW5yZWFkIGRvdCAoRmFjZWJvb2sgcG9zaXRpb246IHJpZ2h0IGVkZ2UsIHZlcnRpY2FsbHkgY2VudGVyZWQgYnlcbi8vIHRoZSByb3cncyBvd24gZmxleCBhbGlnbi1pdGVtcyDigJQgbm8gZXh0cmEgdmVydGljYWwtY2VudGVyaW5nIHJ1bGUgbmVlZGVkKSAtLS0tXG5cbi51aXItZG90IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS11aXItZG90LWNvbG9yKTtcbn1cbiIsIi8vIHFkbmFwcm8td2l6YXJkLW1vZGFsIOKAlCBtdWx0aS1zdGVwIG1vZGFsIHdpdGggcGVyLXN0ZXAgd2lkdGggKyBzbGlkZS5cbi8vIFNvdXJjZSBmb3IgdGhlIGNvbXBvbmVudHMtdjIgYnVuZGxlOyBlZGl0IGhlcmUsIHRoZW4gcnVuIGBndWxwIHNhc3MtdjFgXG4vLyAoY29tcGlsZXMgaW50byB3ZWIvY3NzL3YxL3N0eWxlLXYxLmNzcykuIFBsYWluIENTUyB0byBtYXRjaCB0aGUgb3RoZXIgdjJcbi8vIHNvdXJjZXMuXG4vL1xuLy8gSGV0IGZyYW1lIGtvbXQgdWl0IGRlIEdFREVFTERFIHNjaGlsOiBkZSBzY3JpbSBlbiBoZXQgZ3JpanplIGZyYW1lIHppam5cbi8vIC5xb3Mtc2NyaW0gLyAucW9zLWRpYWxvZyB1aXQgY29tcG9uZW50cy92Mi9vdmVybGF5LXNoZWxsLiBIaWVyIHN0YWF0IGFsbGVlblxuLy8gbm9nIHdhdCBlZW4gd2l6YXJkIGVpZ2VuIGlzOiBkZSBicmVlZHRlIGRpZSBwZXIgc3RhcCBhbmltZWVydCwgZGUgc3RhcC1zbGlkZSxcbi8vIGVuIGhldCBpbmZvLXBhbmVlbC4gVG90IDE5LjA4LjIwMjYgc3RvbmQgZGUgaGVsZSBzY2hpbCBoaWVyIGFscyBLT1BJRSB2YW5cbi8vIHFkbmFwcm8tbW9kYWwsIG1ldCBlaWdlbiBkYXJrLXRpbnRlbiBkaWUgdmFuIGRlIG1vZGFsIGFmd2VrZW4uXG4vLyBFbGtlIHN0YXAgSVMgemlqbiBlaWdlbiB3aXR0ZSB2ZW5zdGVyIChrbGV1ci9yYW5kL3JhZGl1cyB1aXQgZGVcbi8vIG92ZXJsYXktdG9rZW5zLCBtYWFyIHpvbmRlciAucW9zLXdpbmRvdzogY29uc3VtZXJzIHpldHRlbiBodW4gZWlnZW4gcGFkZGluZ1xuLy8gaW4gZWVuIHN0YXAsIGR1cyBkZSBwYWRkaW5nIHZhbiBkZSBzY2hpbCB6b3UgaHVuIGxheW91dCBicmVrZW4pLlxuLy8gW0tpbSAyMDI2LTA2LTE1LCBzY2hpbCBsb3NnZXRyb2trZW4gMTkuMDguMjAyNl1cblxuLnFkbmFwcm8td2l6YXJkLW1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogdmFyKC0tb3ZlcmxheS16KTtcbiAgLyogR2VlbiBpbmdlYmFra2VuIHpvb20sIGVuIGRhdCBpcyBzaW5kcyAyMDI2LTA4LTAzIGRlIHJlZ2VsIHZvb3IgRUxLIHZlbnN0ZXI6IGBxZG5hcHJvLW1vZGFsYCBoYWRcbiAgICAgZXIgZWVuIHZhbiAxLjI1IHZvb3IgZGUgbGVnYWN5IGBib2R5IHsgem9vbTogMC44IH1gLCBlbiBkaWUgaXMgd2VnZ2VoYWFsZCBvbWRhdCBkaWUgYm9keS16b29tIGVlblxuICAgICB2MS1wYWdpbmEgbmlldCBtZWVyIGJlcmVpa3QgKHppZSBkZSB1aXRsZWcgaW4gYGNvbXBvbmVudHMvdjIvbW9kYWwvX21vZGFsLnNjc3NgKS4gWmV0IGhpZXIgZHVzIG9va1xuICAgICBnZWVuIGNvdW50ZXItem9vbSB0ZXJ1Zzsga29tdCB6byduIHBhZ2luYSBlciBvb2l0IHdlZXIsIGRhbiBob29ydCBkZSBjb3JyZWN0aWUgYmlqIGRpZSBQQUdJTkEuICovXG59XG4ucWRuYXByby13aXphcmQtbW9kYWwud20tb3BlbiB7IGRpc3BsYXk6IGZsZXg7IH1cblxuXG4vKiBIZXQgZ3JpanplIGZyYW1lIHplbGYgaXMgLnFvcy1kaWFsb2c7IGhpZXIgYWxsZWVuIGRlIGJyZWVkdGUgZGllIHBlciBzdGFwXG4gICBhbmltZWVydC4gRGF0IGlzIGhldCBlbmlnZSB3YXQgZWVuIHdpemFyZCBhbmRlcnMgZG9ldCBkYW4gZWVuIG1vZGFsLiAqL1xuLndtLWRpYWxvZyB7XG4gIHdpZHRoOiA0ODBweDtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gNDhweCk7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMzhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5cbi8qIFN0ZXAgdmlld3BvcnQgKGluc2lkZSB0aGUgOHB4IGdyZXkgcGFkZGluZykuIFN0ZXBzIHN0YWNrICsgc2xpZGUgaGVyZS4gKi9cbi53bS1zdGVwcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLyogLnFvcy1kaWFsb2cgaXMgZWVuIGZsZXhjb250YWluZXIgKG5ldCBhbHMgYmlqIHFkbmFwcm8tbW9kYWwsIHdhYXJcbiAgICAgLm1vZGFsLXdpbmRvdyBkZSBmbGV4Y2hpbGQgaXMpLCBkdXMgZGl0IG1vZXQgZXhwbGljaWV0IGRlIHJ1aW10ZSBwYWtrZW4uXG4gICAgIFpvbmRlciBkZXplIHR3ZWUgcmVnZWxzIGtsYXB0IGhldCBzdGFwdmVuc3RlciBpbiB0b3QgMXB4IGJyZWVkOiBkZSBzdGFwcGVuXG4gICAgIHplbGYgc3RhYW4gYWJzb2x1dXQsIGR1cyBlciBpcyBnZWVuIGluaG91ZCBkaWUgYnJlZWR0ZSBnZWVmdC4gSGV0IG91ZGVcbiAgICAgLndtLWRpYWxvZyB3YXMgZWVuIGJsb2ssIHdhYXJkb29yIGRpdCBncmF0aXMgZ29lZCBnaW5nLiAqL1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICBoZWlnaHQ6IHZhcigtLXdtLWhlaWdodCwgNTQwcHgpO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNjRweCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEFVVE8tSEVJR0hUIGhvc3RzIChvcHQtaW4gYXR0cmlidXRlLCAyMC4wNy4yMDI2KTogdGhlIGNvbXBvbmVudCB3cml0ZXMgdGhlXG4gICBhY3RpdmUgc3RlcCdzIG1lYXN1cmVkIG5hdHVyYWwgaGVpZ2h0IGFzIGFuIGlubGluZSBzdHlsZTsgdGhpcyB0cmFuc2l0aW9uXG4gICBtYWtlcyBzdGVwIGNoYW5nZXMgZ2xpZGUgb24gdGhlIFNBTUUgY3VydmUgYXMgdGhlIHdpZHRoLiBHYXRlZCBvbiB0aGVcbiAgIGF0dHJpYnV0ZSBzbyBmaXhlZC1oZWlnaHQgaG9zdHMgKE1hc3RlciBQaWNrZXIpIG5ldmVyIGFuaW1hdGUgaGVpZ2h0LiAqL1xuLnFkbmFwcm8td2l6YXJkLW1vZGFsW2F1dG8taGVpZ2h0XSAud20tc3RlcHMge1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4zOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbn1cblxuLyogRWxrZSBzdGFwIElTIGhldCB3aXR0ZSB2ZW5zdGVyOiB6ZWxmZGUga2xldXIvcmFuZC9yYWRpdXMgYWxzIC5xb3Mtd2luZG93IGVuXG4gICBhbHMgcWRuYXByby1tb2RhbCwgdWl0IGRlIG92ZXJsYXktdG9rZW5zLiAqL1xuLnFkbmFwcm8td2l6YXJkLXN0ZXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1vdmVybGF5LXdpbmRvdy1iZyk7XG4gIGJvcmRlcjogMC41cHggc29saWQgdmFyKC0tb3ZlcmxheS13aW5kb3ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tb3ZlcmxheS13aW5kb3ctcmFkaXVzKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMzZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIG9wYWNpdHkgMC4yOHMgZWFzZTtcbn1cbi5xZG5hcHJvLXdpemFyZC1zdGVwLndtLWFjdGl2ZSAgICB7IHRyYW5zZm9ybTogbm9uZTsgb3BhY2l0eTogMTsgfVxuLnFkbmFwcm8td2l6YXJkLXN0ZXAud20tb2ZmLWxlZnQgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03MHB4KTsgb3BhY2l0eTogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbi5xZG5hcHJvLXdpemFyZC1zdGVwLndtLW9mZi1yaWdodCB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3MHB4KTsgIG9wYWNpdHk6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi8qIE9wdGlvbmFsIGNlbnRlcmVkIHNlZ21lbnQgLyB0YWIgYmFyIHVuZGVyIHRoZSBoZWFkZXIgKGxpa2UgcWRuYXByby1tb2RhbCdzXG4gICB0YWJzIHJvdywgZS5nLiBcIlZyYWdlbiB8IFRpamRzaW5zdGVsbGluZ2VuXCIpLiBEcm9wIGEgcWRuYXByby1zZWdtZW50IGluIGFcbiAgIC53bS10YWJiYXI7IG9taXQgdGhlIGVsZW1lbnQgd2hlbiBpdCdzIG5vdCBuZWVkZWQgKD0gaGlkZGVuKS4gW0tpbSAyMDI2LTA2LTE1XSAqL1xuLndtLXRhYmJhciB7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBwYWRkaW5nOiA2cHggMTZweCA4cHg7IGZsZXgtc2hyaW5rOiAwOyB9XG5cbi8qIHdpdGgtaW5mbyBzdGVwOiB0cmFuc3BhcmVudCBzbyB0aGUgZ3JleSBkaWFsb2cgZnJhbWUgc2hvd3Mgb24gdGhlIGxlZnQ7IGFcbiAgIGdyZXkgaW5mbyBwYW5lbCArIDhweCBnYXAgKyB0aGUgd2hpdGUgYm9yZGVyZWQgbWFpbi4gTWlycm9ycyBxZG5hcHJvLW1vZGFsLiAqL1xuLnFkbmFwcm8td2l6YXJkLXN0ZXAud20td2l0aC1pbmZvIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZ2FwOiA4cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLndtLWluZm8ge1xuICBmbGV4OiAwIDAgMjYwcHg7XG4gIG1pbi13aWR0aDogMDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgcGFkZGluZzogMTZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxNHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLndtLWluZm8taGVhZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyB9XG4ud20taW5mby1oZWFkIHFkbmFwcm8taWNvbiB7IGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApOyB9XG4ud20taW5mby10aXRsZSB7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDI0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApOyB9XG4ud20taW5mby10ZXh0IHsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMjJweDsgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTsgfVxuLndtLWluZm8taWxsdXN0cmF0aW9uIHtcbiAgbWFyZ2luLXRvcDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IC0xNnB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xNnB4O1xuICBtYXJnaW4tYm90dG9tOiAtMTZweDtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAvKiBEZWNvcmF0aXZlIGlsbHVzdHJhdGlvbiBhbHdheXMgYXQgNjAlIG9wYWNpdHkgc28gaXQgc3RheXMgc3VidGxlIGJlaGluZFxuICAgICB0aGUgY29udGVudCwgY29uc2lzdGVudCBhY3Jvc3MgZXZlcnkgbW9kYWwuIFtLaW0gMjAyNi0wNi0xNV0gKi9cbiAgb3BhY2l0eTogMC42O1xufVxuLndtLWluZm8taWxsdXN0cmF0aW9uIHFkbmFwcm8taWxsdXN0cmF0aW9uLFxuLndtLWluZm8taWxsdXN0cmF0aW9uIGltZyxcbi53bS1pbmZvLWlsbHVzdHJhdGlvbiBzdmcgeyBkaXNwbGF5OiBibG9jazsgbWF4LXdpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87IH1cbi8qIFRoZSBETVMgZm9sZGVyLWFjY2VzcyByb2xlIGFydCBpcyB0YWxsIHBvcnRyYWl0OyB3aXRob3V0IGEgaGVpZ2h0IGNhcCBpdFxuICAgZmlsbHMgdGhlIHdob2xlIGluZm8gY29sdW1uLiBDYXAgaXQgc28gaXQgc2l0cyBhcyBhIHN1YnRsZSBib3R0b21cbiAgIGlsbHVzdHJhdGlvbiBsaWtlIHRoZSBsYW5kc2NhcGUgb25lcy4gU2NvcGVkIHRvIHRoZSByb2xlLSogYXNzZXRzIHNvIHRoZVxuICAgb3RoZXIgcGlja2VyIGNvbnN1bWVycyAodGVhbXMvbG9jYXRpb25zL0tQSXMpIGFyZSB1bnRvdWNoZWQuIFtLaW0gMjAyNi0wNy0yMV0gKi9cbi53bS1pbmZvLWlsbHVzdHJhdGlvbiBpbWdbc3JjKj1cInJvbGUtXCJdIHsgd2lkdGg6IGF1dG87IG1heC1oZWlnaHQ6IDMwMHB4OyBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4ud20tbWFpbiB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IHZhcigtLW92ZXJsYXktd2luZG93LWJnKTtcbiAgYm9yZGVyOiAwLjVweCBzb2xpZCB2YXIoLS1vdmVybGF5LXdpbmRvdy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1vdmVybGF5LXdpbmRvdy1yYWRpdXMpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLyBBbGxlZW4tZHVpbSBzY3JvbGxiYXJzIGtvbWVuIHVpdCBkZSBnZWRlZWxkZSBzY2hpbCAoLnFvcy1zY3JpbSA6Oi13ZWJraXQtKiksXG4vLyBkaWUgZGV6ZWxmZGUgc3VidHJlZSBkZWt0LiBTdG9uZCBoaWVyIGFscyBrb3BpZSB2YW4gX21vZGFsLnNjc3MuXG5cbi8vIERlIGVudHJlZS1hbmltYXRpZXMgKHNjcmltIGZhZGUgKyBkaWFsb2cgbGlmdCkga29tZW4gdWl0IGRlIGdlZGVlbGRlIHNjaGlsOlxuLy8gQGtleWZyYW1lcyBxb3Mtc2NyaW0taW4gLyBxb3MtZGlhbG9nLWluLiBEZSBlaWdlbiBxZG5hcHJvLXdtLSoga29waWVlbiB6aWpuXG4vLyB3ZWcuXG4vL1xuLy8gR0VFTiBkYXJrLWJsb2sgbWVlciBub2RpZzogZnJhbWUsIHZlbnN0ZXIgZW4gc2NyaW0gbGV6ZW4gZGUgb3ZlcmxheS10b2tlbnMgZW5cbi8vIHdpc3NlbGVuIGRhYXJkb29yIGF1dG9tYXRpc2NoIG1lZS4gSGllciBzdG9uZGVuIGVpZ2VuIHRpbnRlbiAoIzFmMjIyOSAvXG4vLyAjMmEyZDM2KSBkaWUgQUZXRUtFTiB2YW4gcWRuYXByby1tb2RhbDsgZGF0IHZlcnNjaGlsIGlzIG9wZ2VoZXZlbiwgZHVzIGVlblxuLy8gd2l6YXJkIHppZXQgZXIgaW4gaGV0IGRvbmtlciBudSB1aXQgYWxzIGVlbiBtb2RhbC5cbiIsIi8vIHNjc3MvY29tcG9uZW50cy92Mi91bml0LXR5cGUvX3VuaXQtdHlwZS5zY3NzXG4vLyBEaXJlY3QgdjIgcG9ydCBvZiBxZG5hLWNhcmQtdW5pdC10eXBlIOKGkiBxZG5hcHJvLXVuaXQtdHlwZS5cbi8vIFZpc3VhbGx5IGlkZW50aWNhbCB0byB2MSAodW5pdFR5cGUuc2NzcykuIE9ubHkgdGhlIGNsYXNzIG5hbWVzIGNoYW5nZWQuXG5cbnFkbmFwcm8tdW5pdC10eXBlIHtcbiAgICBkaXNwbGF5OiBjb250ZW50cztcbn1cblxuLnFkbmFwcm8tdW5pdC10eXBlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWluLWhlaWdodDogMTIwcHg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTtcbiAgICB9XG59XG5cbi5xZG5hcHJvLXVuaXQtdHlwZSAqLFxuLnFkbmFwcm8tdW5pdC10eXBlICo6OmJlZm9yZSxcbi5xZG5hcHJvLXVuaXQtdHlwZSAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnV0Yy10b3Age1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMS4yNXJlbSAxLjVyZW0gMC41cmVtO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi51dGMtaWNvbiB7XG4gICAgZmxleDogMCAwIDQ4cHg7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDQ0cHg7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuXG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cbi51dGMtY29udGVudCB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4udXRjLWhlYWRpbmcge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1UeXBlLUZvbnQtRmFtaWx5LXByaW1hcnksIEludGVyKTtcbiAgICBmb250LXNpemU6IHZhcigtLUZvbnQtc2l6ZS1Cb2R5LUludGVyLW1lZGl1bS0xNCwgMTRweCk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tTGluZS1IZWlnaHQtQm9keS1Cb2R5LU1lZGl1bS1DYXB0aW9uLCAyNHB4KTtcbiAgICBjb2xvcjogdmFyKC0tVGV4dC1Cb2R5LCAjMGIwYjBkKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4udXRjLXN1YmhlYWRpbmcge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1UeXBlLUZvbnQtRmFtaWx5LXByaW1hcnksIEludGVyKTtcbiAgICBmb250LXNpemU6IHZhcigtLUZvbnQtc2l6ZS1Cb2R5LXNtYWxsLTEyLCAxMnB4KTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1MaW5lLUhlaWdodC1Cb2R5LUJvZHktU21hbGwsIDIwcHgpO1xuICAgIGNvbG9yOiB2YXIoLS1UZXh0LUJvZHktU2Vjb25kYXJ5LCAjNmI3MjgwKTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4udXRjLWZvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMS41cmVtIDAuNzVyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICZbaGlkZGVuXSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4udXRjLXBhaXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA0cHg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG59XG5cbi51dGMtbGFiZWwsXG4udXRjLXZhbHVlIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tVHlwZS1Gb250LUZhbWlseS1wcmltYXJ5LCBJbnRlcik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1Gb250LXNpemUtQm9keS1zbWFsbC0xMiwgMTJweCk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tTGluZS1IZWlnaHQtQm9keS1Cb2R5LVNtYWxsLCAyMHB4KTtcbiAgICBjb2xvcjogdmFyKC0tU3VyZmFjZS1TaWduYWwtU2lnbmFsLWdyZXktRGV0YWlsLCAjNmI3MjgwKTtcbn1cbiIsIi8vIHFkbmFwcm8tZGF0ZS1jYXJvdXNlbCDigJQgZmxhdCBDU1MgKGdlbmVyYXRlZCBmcm9tIGNvbXBpbGVkIG91dHB1dCwgMjguMDYuMjAyNilcbi8vIEZMQVQgQ1NTIFJFUVVJUkVEOiB2MiBjb21wb25lbnQgU0NTUyBtdXN0IGJlIGZsYXQgZm9yIFBXQSBzeW5jIChubyAmIG5lc3RpbmcpLlxuLy8gVG8gdXBkYXRlOiBlZGl0IHRoZSBTQ1NTIHdpdGggZmxhdCBzZWxlY3RvcnMsIHJ1biBndWxwIHNhc3MtdjEsIHRoZW4gbm9kZSBhcHBfYXBpX3FkbmF2Mi9zeW5jLXYyLWNvbXBvbmVudHMuanNcblxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbCB7XG4gIC0tZGMtYWN0aXZlOiB2YXIoLS1jLXNpZGViYXItYmcpO1xuICAtLWRjLWNhcmQtYmc6ICNmZmZmZmY7XG4gIC0tZGMtYm9yZGVyOiByZ2JhKDU4LCA2NiwgMTQ0LCAwLjEzKTtcbiAgLS1kYy1ib3JkZXItcGFzdDogcmdiYSg1OCwgNjYsIDE0NCwgMC4wNyk7XG4gIC0tZGMtbmFtZS1pZGxlOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQtcHApO1xuICAtLWRjLWRheS1pZGxlOiB2YXIoLS1jLXB1cnBsZS00MDApO1xuICAtLWRjLW5hbWUtcGFzdDogdmFyKC0tYy1zaWRlYmFyLWljb24pO1xuICAtLWRjLWRheS1wYXN0OiB2YXIoLS1jLXB1cnBsZS00MDApO1xuICAtLWRjLWRvdC1pZGxlOiByZ2JhKDU4LCA2NiwgMTQ0LCAwLjIyKTtcbiAgLS1kYy10aXRsZS1jb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuICAtLWRjLW1vbnRoLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS00MDApO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY3Vyc29yOiBncmFiO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMC41cHggc29saWQgdmFyKC0tZGMtYm9yZGVyKTtcbiAgLy8gRGUgYnJlZGUgc3RyaXAgd29yZHQgdmlzdWVlbCBnZWNsaXB0IHZpYSBjbGlwLXBhdGggb3AgX19zdHJpcC13cmFwLCBtYWFyXG4gIC8vIGNsaXAtcGF0aCBjb250YWludCBkZSBMQVlPVVQtb3ZlcmZsb3cgbmlldCDihpIgZGUgc3RyaXBicmVlZHRlIGxla3RlIG5hYXJcbiAgLy8gLnFkbmEtY29udGVudC0tcGFnZSAob3ZlcmZsb3cteDphdXRvIGRvb3Igb3ZlcmZsb3cteTpvdmVybGF5KSDihpIgaG9yaXpvbnRhbGVcbiAgLy8gcGFnZS1zY3JvbGwgb3AgaG9tZS4gb3ZlcmZsb3cteDpjbGlwIGNvbnRhaW50ICd0IHfDqWw7IGRlIHZlcnRpY2FsZSBhcyBibGlqZnRcbiAgLy8gdnJpaiAoY2xpcCBmb3JjZWVydCBkaWUgbmlldCwgYW5kZXJzIGRhbiBoaWRkZW4pIHpvZGF0IGRlIGdyb3cta2FhcnQga2FuXG4gIC8vIHVpdGtsYXBwZW4uIFsyOS4wNi4yMDI2XVxuICBvdmVyZmxvdy14OiBjbGlwO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbC5pcy1kcmFnZ2luZyB7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsX19oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIDhweDtcbiAgbWluLWhlaWdodDogNTJweDtcbiAgbWF4LWhlaWdodDogNTJweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjI4cyBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLCAxKSwgbWluLWhlaWdodCAwLjI4cyBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLCAxKSwgb3BhY2l0eSAwLjE4cyBlYXNlLCB0cmFuc2Zvcm0gMC4yOHMgY3ViaWMtYmV6aWVyKDAuMiwgMCwgMCwgMSk7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsX19oZWFkZXItaW5mbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMnB4O1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9faGVhZGVyLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tZGMtdGl0bGUtY29sb3IpO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9faGVhZGVyLW1vbnRoIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tZGMtbW9udGgtY29sb3IpO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fdmFuZGFhZy1idG4ge1xuICBmbGV4LXNocmluazogMDtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fdmFuZGFhZy1idG4uaXMtcG9wcGluZy1pbiB7XG4gIGFuaW1hdGlvbjogcWRuYXByby1kYy1idG4taW4gMC4zOHMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpIGZvcndhcmRzO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fdmFuZGFhZy1idG4uaXMtcG9wcGluZy1vdXQge1xuICBhbmltYXRpb246IHFkbmFwcm8tZGMtYnRuLW91dCAwLjJzIGVhc2UtaW4gZm9yd2FyZHM7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsX19zdHJpcC13cmFwIHtcbiAgLy8gY2xpcC1wYXRoIGNsaXBzIGhvcml6b250YWxseSBvbmx5IChjYXJkcyBzY3JvbGwgb2ZmIHRoZSBzaWRlcykgYW5kIGxlYXZlc1xuICAvLyB0b3AvYm90dG9tIGZyZWUgc28gdGhlIGFjdGl2ZSBjYXJkIGNhbiBzY2FsZSB1cC4gb3ZlcmZsb3c6aGlkZGVuIGNhbid0IGRvXG4gIC8vIHNpbmdsZS1heGlzLiBUaGUgZWRnZS1mYWRlIG1hc2ssIGhvd2V2ZXIsIG9ubHkgY292ZXJzIGl0cyBvd24gYm9yZGVyLWJveCxcbiAgLy8gc28gYSBjYXJkIGdyb3dpbmcgYWJvdmUgdGhlIGJveCB3b3VsZCBiZSBtYXNrZWQgYXdheSDigJQgdGhlIHRvcCBwYWRkaW5nIGdpdmVzXG4gIC8vIHRoZSBtYXNrIHZlcnRpY2FsIHJvb20sIGFuZCB0aGUgbWF0Y2hpbmcgbmVnYXRpdmUgbWFyZ2luIGtlZXBzIHRoZSBjYXJkIHJvd1xuICAvLyBpbiB0aGUgc2FtZSB2aXN1YWwgcG9zaXRpb24gKG5vIGxheW91dCBzaGlmdCkuXG4gIGNsaXAtcGF0aDogaW5zZXQoLTIwMHB4IDBweCAtMjAwcHggMHB4KTtcbiAgcGFkZGluZzogMTBweCAwIDhweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIC13ZWJraXQtbWFzazogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCAwJSwgYmxhY2sgMTElLCBibGFjayA4OSUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICBtYXNrOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50IDAlLCBibGFjayAxMSUsIGJsYWNrIDg5JSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsX19zdHJpcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogOHB4O1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZCB7XG4gIHdpZHRoOiA1NnB4O1xuICBoZWlnaHQ6IDcycHg7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4xMnMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMTJzIGVhc2UsIG9wYWNpdHkgMC4xMnMgZWFzZSwgd2lkdGggMC4yOHMgY3ViaWMtYmV6aWVyKDAuMiwgMCwgMCwgMSksIGhlaWdodCAwLjI4cyBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLCAxKSwgYm9yZGVyLXJhZGl1cyAwLjI4cyBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLCAxKTtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtLWlkbGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1kYy1jYXJkLWJnKTtcbiAgYm9yZGVyOiAwLjVweCBzb2xpZCB2YXIoLS1kYy1ib3JkZXIpO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC0taWRsZSAucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLW5hbWUge1xuICBjb2xvcjogdmFyKC0tZGMtbmFtZS1pZGxlKTtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtLWlkbGUgLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC1kYXkge1xuICBjb2xvcjogdmFyKC0tZGMtZGF5LWlkbGUpO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC0taWRsZSAucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLWRvdCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWRjLWRvdC1pZGxlKTtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtLXBhc3Qge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1kYy1jYXJkLWJnKTtcbiAgYm9yZGVyOiAwLjVweCBzb2xpZCB2YXIoLS1kYy1ib3JkZXItcGFzdCk7XG4gIG9wYWNpdHk6IDAuNDg7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLS1wYXN0IC5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtbmFtZSB7XG4gIGNvbG9yOiB2YXIoLS1kYy1uYW1lLXBhc3QpO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC0tcGFzdCAucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLWRheSB7XG4gIGNvbG9yOiB2YXIoLS1kYy1kYXktcGFzdCk7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLS1wYXN0IC5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtZG90IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tZGMtZG90LWlkbGUpO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC0tYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tZGMtYWN0aXZlKTtcbiAgYm9yZGVyOiBub25lO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC0tYWN0aXZlIC5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtbmFtZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLS1hY3RpdmUgLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC1kYXkge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLS1hY3RpdmUgLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC1kb3Qge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLW5hbWUge1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMTJzIGVhc2UsIGZvbnQtc2l6ZSAwLjI4cyBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLCAxKSwgbWFyZ2luLWJvdHRvbSAwLjI4cyBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLCAxKTtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtZGF5IHtcbiAgZm9udC1zaXplOiAyM3B4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xMnMgZWFzZSwgZm9udC1zaXplIDAuMjhzIGN1YmljLWJlemllcigwLjIsIDAsIDAsIDEpO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC1kb3Qge1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsIC5kcmFnLW1vZGUgLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC0tYWN0aXZlOm5vdCguaXMtZ3Jvd2luZykge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE4cyBlYXNlO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC5pcy1wcmVzc2luZyB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC44Nik7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjA5cyBlYXNlLWluO1xufVxuXG4vLyAtLS0tIENvbXBhY3QgKGNvbGxhcHNlZCkgc3RhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVG9nZ2xlZCB2aWEgdGhlIGBjb21wYWN0YCBhdHRyaWJ1dGUgKHRoZSBob3N0IHBhZ2Ugc2V0cyBpdCBvbiBzY3JvbGwpLlxuLy8gSGVhZGVyIGNvbGxhcHNlcyBhd2F5LCBjYXJkcyBzaHJpbms7IHRoZSBzdHJpcCBzdGF5cyBzY3JvbGxhYmxlIGFuZCB0aGVcbi8vIGFjdGl2ZSBkYXkgcmUtY2VudHJlcyAodGhlIEpTIGNlbnRyaW5nIG1hdGggcmVhZHMgQ0FSRF9XX0NPTVBBQ1QgdG8gbWF0Y2gpLlxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbFtjb21wYWN0XSAucWRuYXByby1kYXRlLWNhcm91c2VsX19oZWFkZXIge1xuICBtYXgtaGVpZ2h0OiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbFtjb21wYWN0XSAucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkIHtcbiAgd2lkdGg6IDM4cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxbY29tcGFjdF0gLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC1uYW1lIHtcbiAgZm9udC1zaXplOiA5cHg7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxbY29tcGFjdF0gLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC1kYXkge1xuICBmb250LXNpemU6IDE1cHg7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsW2NvbXBhY3RdIC5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxfX2NhcmQtZG90IHtcbiAgd2lkdGg6IDNweDtcbiAgaGVpZ2h0OiAzcHg7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cbi5xZG5hcHJvLWRhdGUtY2Fyb3VzZWxbY29tcGFjdF0gLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fc3RyaXAtd3JhcCB7XG4gIHBhZGRpbmc6IDZweCAwO1xuICBtYXJnaW4tdG9wOiAtNnB4O1xufVxuXG5Aa2V5ZnJhbWVzIHFkbmFwcm8tZGMtZ3JvdyB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDU1JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE4KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgcWRuYXByby1kYy1wb3Age1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjg2KTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xMik7XG4gIH1cbiAgNzIlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTYpO1xuICB9XG4gIDg3JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAzKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHFkbmFwcm8tZGMtY29uZmlybSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIH1cbiAgNDUlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xuICB9XG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk3KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHFkbmFwcm8tZGMtd2lnZ2xlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgcm90YXRlKDBkZWcpO1xuICB9XG4gIDI1JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkzKSByb3RhdGUoLTNkZWcpO1xuICB9XG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA0KSByb3RhdGUoMi41ZGVnKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCkgcm90YXRlKC0xZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHJvdGF0ZSgwZGVnKTtcbiAgfVxufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC5pcy1ncm93aW5nIHtcbiAgYW5pbWF0aW9uOiBxZG5hcHJvLWRjLWdyb3cgMC4zMnMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpIGZvcndhcmRzO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuLnFkbmFwcm8tZGF0ZS1jYXJvdXNlbF9fY2FyZC5pcy1wb3BwaW5nIHtcbiAgYW5pbWF0aW9uOiBxZG5hcHJvLWRjLXBvcCAwLjQ4cyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSkgZm9yd2FyZHM7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLmlzLWNvbmZpcm1pbmcge1xuICBhbmltYXRpb246IHFkbmFwcm8tZGMtY29uZmlybSAwLjQycyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSkgZm9yd2FyZHM7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG4ucWRuYXByby1kYXRlLWNhcm91c2VsX19jYXJkLmlzLXdpZ2dsZSB7XG4gIGFuaW1hdGlvbjogcWRuYXByby1kYy13aWdnbGUgMC4zNnMgZWFzZSBmb3J3YXJkcztcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuQGtleWZyYW1lcyBxZG5hcHJvLWRjLWJ0bi1pbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICA2NSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBxZG5hcHJvLWRjLWJ0bi1vdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDM1JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA4KTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC40KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4iLCIvLyBxZG5hcHJvLXVuaXQtY2FyZCDigJQgUFdBIHVuaXQtc2VsZWN0IHRpbGUuIEZvdXIgdmlldyBtb2Rlcy5cbi8vIEZMQVQgQ1NTOyBjb2xvdXJzL3JhZGlpIGZyb20gdGhlIGRlc2lnbi10b2tlbiA6cm9vdCAodmFyKC0tYy0qKSAvIC0tci0qKS5cbi8vIEVkaXQgSEVSRSwgdGhlbiBydW4gYGd1bHAgc2Fzcy12MWAgKGxpYnJhcnkpICsgdGhlIHN5bmMgKFBXQSkuXG4vL1xuLy8gVmlldyBtb2RlcyAoSlMgYWRkcyB0aGUgY2xhc3MgZnJvbSB0aGUgYHZpZXdgIGF0dHJpYnV0ZSk6XG4vLyAgIC52aWV3LWdyaWQtY29tcGFjdCAgIG5hcnJvdyAzLWNvbCBjYXJkIChkZWZhdWx0KVxuLy8gICAudmlldy1ncmlkLXN0YW5kYXJkICB3aWRlciAyLWNvbCBjYXJkXG4vLyAgIC52aWV3LWxpc3QtY29tcGFjdCAgIGRlbnNlIDEtY29sIGhvcml6b250YWwgcm93XG4vLyAgIC52aWV3LWxpc3QtbGFyZ2UgICAgIHJvb215IDEtY29sIGhvcml6b250YWwgcm93XG4vLyBTdGF0ZXM6XG4vLyAgIC5pcy1zZWxlY3RlZCAgIHB1cnBsZSBnbG93ICsgY2hlY2ttYXJrIGJhZGdlIHZpc2libGVcbi8vICAgLnN0YXR1cy1wcm9ibGVtICByZWQgbGVmdC1ib3JkZXIgYWNjZW50IChsaXN0IG1vZGVzIG9ubHkpXG4vLyBEeW5hbWljIENTUyB2YXJzIChzZXQgaW5saW5lIGJ5IEpTIHZpYSBzdHlsZS5zZXRQcm9wZXJ0eSk6XG4vLyAgIC0tdWMtZmItYmcgICBmYWxsYmFjayBiYWNrZ3JvdW5kIGNvbG91ciAgKGhhc2gtZGVyaXZlZClcbi8vICAgLS11Yy1mYi1mZyAgIGZhbGxiYWNrIHRleHQgY29sb3VyICAgICAgICAgKGhhc2gtZGVyaXZlZClcblxuLy8gSG9zdDogTk8gY2xpcHBpbmcsIE5PIGNocm9tZS4gSnVzdCB0aGUgZmxleCBib3ggKyBwb3NpdGlvbiBjb250ZXh0ICsgcHJlc3MvZ2xvd1xuLy8gdHJhbnNpdGlvbnMuIFRoZSBtYW5kYXRvcnkgYmFkZ2UgaXMgYSBkaXJlY3QgaG9zdCBjaGlsZCAoc2libGluZyBvZiBfX2ZyYW1lKSBhbmRcbi8vIG5lZWRzIHRoZSBob3N0J3Mgb3ZlcmZsb3c6dmlzaWJsZSB0byBvdmVyaGFuZyB0aGUgY2FyZCdzIGNvcm5lci4gQm9yZGVyL3JhZGl1cy9cbi8vIGJhY2tncm91bmQvb3ZlcmZsb3c6aGlkZGVuIG5vdyBsaXZlIG9uIC5xZG5hcHJvLXVuaXQtY2FyZF9fZnJhbWUgYmVsb3csIHdoaWNoIGlzXG4vLyB0aGUgaG9zdCdzIHNpbmdsZSBmbGV4IGNoaWxkIGFuZCBmaWxscyBpdCBpbiBib3RoIGRpbWVuc2lvbnMuIFtLaW0gMjAyNi0wNy0xNV1cbi5xZG5hcHJvLXVuaXQtY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC8vIERlY2xhcmUgdGhlIGZvbnQgc28gdGhlIHRpbGUgcmVuZGVycyBpbiBJbnRlciBldmVyeXdoZXJlLCBpbnN0ZWFkIG9mIGluaGVyaXRpbmcgdGhlXG4gIC8vIGhvc3QgcGFnZSBmb250IChlLmcuIHRoZSBQV0EncyBNb250c2VycmF0IHRoZW1lIGZvbnQpLiB2MiBjb21wb25lbnRzIGFyZSBkZXNpZ25lZCBpbiBJbnRlci5cbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmO1xuICAvLyBSZWxlYXNlID0gYSBzcHJpbmd5IFwicG9wXCIgYmFjayAob3ZlcnNob290IGVhc2luZykg4oCUIHRoZSBzYXRpc2Z5aW5nIHBhcnQuIFByZXNzLWRvd25cbiAgLy8gb3ZlcnJpZGVzIHRoaXMgd2l0aCBhIGZhc3RlciBzbmFwIChzZWUgLmlzLXByZXNzaW5nKS4gT25seSB0aGUgcHJvcHMgdGhhdCBzdGlsbCBsaXZlXG4gIC8vIG9uIHRoZSBob3N0OiBwcmVzcy1zY2FsZSArIHRoZSBzZWxlY3RlZCBnbG93IChib3gtc2hhZG93KS4gYm9yZGVyLWNvbG9yL2JhY2tncm91bmRcbiAgLy8gdHJhbnNpdGlvbnMgbW92ZWQgdG8gdGhlIGZyYW1lIHdpdGggdGhlaXIgcnVsZXMuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNzBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSksIGJveC1zaGFkb3cgMTIwbXMgZWFzZTtcbn1cbi8vIEZyYW1lOiB0aGUgYWN0dWFsIGNhcmQgY2hyb21lICsgY2xpcC4gU2luZ2xlIGZsZXggY2hpbGQgb2YgdGhlIGhvc3QsIHN0cmV0Y2hlcyB0b1xuLy8gZmlsbCBpdCAoZmxleCBkZWZhdWx0IGFsaWduLWl0ZW1zOiBzdHJldGNoKSwgaG9sZHMgZXZlcnl0aGluZyBleGNlcHQgdGhlXG4vLyBtYW5kYXRvcnkgYmFkZ2Ugc28gdGhlIGJhZGdlIGNhbiBvdmVyaGFuZyB0aGlzIGZyYW1lJ3Mgcm91bmRlZCBjb3JuZXIuXG4ucWRuYXByby11bml0LWNhcmRfX2ZyYW1lIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8vIGJveC1zaGFkb3cgZXJiaWogc2luZHMgZGUgc2VsZWN0aWUtZ2xvZWQgdmFuIGRlIGhvc3QgbmFhciBoZXQgZnJhbWUgdmVyaHVpc2RlXG4gIC8vICgyNC4wOC4yMDI2KTogem9uZGVyIGRpdCBzcHJvbmcgZGUgZ2xvZWQgZXIgaGFyZCBpbiBlbiB1aXQsIHdhbnQgZGUgaG9zdC10cmFuc2l0aWVcbiAgLy8gaGllcm9uZGVyIGdlbGR0IG5pZXQgbWVlciB2b29yIGVlbiBzY2hhZHV3IGRpZSBoaWVyIGdldGVrZW5kIHdvcmR0LlxuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTIwbXMgZWFzZSwgYmFja2dyb3VuZCAxMjBtcyBlYXNlLCBib3gtc2hhZG93IDEyMG1zIGVhc2U7XG59XG4vLyBUYWN0aWxlIHByZXNzOiBxdWljayBkaXAgaW4sIHNpemVkIHNvIGl0J3MgZmVsdCBidXQgbmV2ZXIgc2x1Z2dpc2guXG4ucWRuYXByby11bml0LWNhcmQuaXMtcHJlc3Npbmcge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNzBtcyBlYXNlLW91dDtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5xZG5hcHJvLXVuaXQtY2FyZCxcbiAgLnFkbmFwcm8tdW5pdC1jYXJkLmlzLXByZXNzaW5nIHsgdHJhbnNpdGlvbjogbm9uZTsgdHJhbnNmb3JtOiBub25lOyB9XG59XG5cbi8vIEdSSUQgTU9ERVMg4oCUIGNvbHVtbiBsYXlvdXQsIG5hbWUgYWJvdmUgaW1hZ2Vcbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWdyaWQtY29tcGFjdCAucWRuYXByby11bml0LWNhcmRfX2ZyYW1lLFxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctZ3JpZC1zdGFuZGFyZCAucWRuYXByby11bml0LWNhcmRfX2ZyYW1lIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWdyaWQtY29tcGFjdCAucWRuYXByby11bml0LWNhcmRfX25hbWUsXG4ucWRuYXByby11bml0LWNhcmQudmlldy1ncmlkLXN0YW5kYXJkIC5xZG5hcHJvLXVuaXQtY2FyZF9fbmFtZSB7XG4gIC8vIGZsZXgtZ3JvdzogbmFtZSBhcmVhIGFic29yYnMgdGhlIGNhcmQncyBleHRyYSBoZWlnaHQgc28gaXQgZXF1YWxpc2VzIHRvIHRoZSB0YWxsZXN0XG4gIC8vIG5hbWUgaW4gdGhlIHJvdyAoaW1hZ2UgKyBzdGF0dXMgYmFubmVyIHRoZW4gYWxpZ24gYWNyb3NzIGNhcmRzKTsgaW1hZ2Ugc3RheXMgc3F1YXJlLlxuICBmbGV4OiAxIDAgYXV0bztcbiAgcGFkZGluZzogOHB4IDZweCA2cHg7XG4gIGZvbnQtc2l6ZTogMTRweDsgLy8gbWluIDE0cHgsIGFsc28gaW4gdGhlIGNvbXBhY3QgdmlldyAoS2ltIDI0LjA2LjIwMjYpXG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZyk7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7IC8vIHdyYXAgdXAgdG8gMyBsaW5lcywgdGhlbiBlbGxpcHNpcyAo4oCmKVxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAgIC8vIGRlZmVuc2l2ZTogbmV2ZXIgbGV0IGEgZ2xvYmFsIG5vd3JhcCBjb2xsYXBzZSB0aGUgbmFtZVxuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctZ3JpZC1jb21wYWN0IC5xZG5hcHJvLXVuaXQtY2FyZF9faW1hZ2Utd3JhcCxcbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWdyaWQtc3RhbmRhcmQgLnFkbmFwcm8tdW5pdC1jYXJkX19pbWFnZS13cmFwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGFzcGVjdC1yYXRpbzogMSAvIDE7IC8vIHVuaXQgcGhvdG9zIGFyZSBzdG9yZWQgYXMgYSBzcXVhcmUgY3JvcCAoMzAweDMwMCkg4oaSIHVuaWZvcm0gY2FyZHNcbiAgZmxleC1zaHJpbms6IDA7ICAgICAgLy8gaW1hZ2Uga2VlcHMgaXRzIHNpemU7IGV4dHJhIHJvdyBoZWlnaHQgZ29lcyB0byB0aGUgbmFtZSBhcmVhLCBub3QgdGhlIHBob3RvXG59XG4ucWRuYXByby11bml0LWNhcmQudmlldy1ncmlkLWNvbXBhY3QgLnFkbmFwcm8tdW5pdC1jYXJkX19jaGVjay1iYWRnZSxcbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWdyaWQtc3RhbmRhcmQgLnFkbmFwcm8tdW5pdC1jYXJkX19jaGVjay1iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiA2cHg7XG4gIHJpZ2h0OiA2cHg7XG59XG4ucWRuYXByby11bml0LWNhcmQudmlldy1ncmlkLXN0YW5kYXJkIC5xZG5hcHJvLXVuaXQtY2FyZF9fbmFtZSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgcGFkZGluZzogOXB4IDExcHggN3B4O1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctZ3JpZC1zdGFuZGFyZCAucWRuYXByby11bml0LWNhcmRfX2ZhbGxiYWNrLWFiYnIge1xuICBmb250LXNpemU6IDI0cHg7XG59XG4ucWRuYXByby11bml0LWNhcmQudmlldy1ncmlkLXN0YW5kYXJkIC5xZG5hcHJvLXVuaXQtY2FyZF9fY2hlY2stYmFkZ2Uge1xuICBib3R0b206IDhweDtcbiAgcmlnaHQ6IDhweDtcbiAgd2lkdGg6IDI2cHg7XG4gIGhlaWdodDogMjZweDtcbn1cblxuLy8gTElTVCBNT0RFUyDigJQgcm93IGxheW91dCwgaW1hZ2UgbGVmdFxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctbGlzdC1jb21wYWN0IC5xZG5hcHJvLXVuaXQtY2FyZF9fZnJhbWUsXG4ucWRuYXByby11bml0LWNhcmQudmlldy1saXN0LWxhcmdlIC5xZG5hcHJvLXVuaXQtY2FyZF9fZnJhbWUge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctbGlzdC1jb21wYWN0IC5xZG5hcHJvLXVuaXQtY2FyZF9faW1hZ2Utd3JhcCxcbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWxpc3QtbGFyZ2UgLnFkbmFwcm8tdW5pdC1jYXJkX19pbWFnZS13cmFwIHtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG9yZGVyOiAtMTsgLy8gRE9NIG9yZGVyIGlzIG5hbWUtZmlyc3QgKGZvciBncmlkKTsgcHVsbCB0aGUgaW1hZ2UgYmFjayB0byB0aGUgbGVmdCBpbiBhIHJvd1xufVxuLy8gVGhlIGF1ZGl0LW91dGNvbWUgYmFubmVyIGlzIGEgZ3JpZCBmZWF0dXJlOyBhIGxpc3Qgcm93IHN0YXlzIHNpbmdsZS1saW5lLlxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctbGlzdC1jb21wYWN0IC5xZG5hcHJvLXVuaXQtY2FyZF9fc3RhdHVzLWJhcixcbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWxpc3QtbGFyZ2UgLnFkbmFwcm8tdW5pdC1jYXJkX19zdGF0dXMtYmFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWxpc3QtY29tcGFjdCAucWRuYXByby11bml0LWNhcmRfX25hbWUsXG4ucWRuYXByby11bml0LWNhcmQudmlldy1saXN0LWxhcmdlIC5xZG5hcHJvLXVuaXQtY2FyZF9fbmFtZSB7XG4gIGZsZXg6IDE7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgZm9udC1zaXplOiAxNHB4OyAvLyBtaW4gMTRweFxuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctbGlzdC1jb21wYWN0IC5xZG5hcHJvLXVuaXQtY2FyZF9fY2hlY2stYmFkZ2UsXG4ucWRuYXByby11bml0LWNhcmQudmlldy1saXN0LWxhcmdlIC5xZG5hcHJvLXVuaXQtY2FyZF9fY2hlY2stYmFkZ2Uge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctbGlzdC1sYXJnZSAucWRuYXByby11bml0LWNhcmRfX2ltYWdlLXdyYXAge1xuICB3aWR0aDogNjRweDtcbiAgaGVpZ2h0OiA2NHB4O1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctbGlzdC1sYXJnZSAucWRuYXByby11bml0LWNhcmRfX25hbWUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4ucWRuYXByby11bml0LWNhcmQudmlldy1saXN0LWxhcmdlIC5xZG5hcHJvLXVuaXQtY2FyZF9fY2hlY2stYmFkZ2Uge1xuICBtYXJnaW4tcmlnaHQ6IDE0cHg7XG4gIHdpZHRoOiAyNnB4O1xuICBoZWlnaHQ6IDI2cHg7XG59XG5cbi8vIGZsYXQg4oCUIGxpc3QgbW9kZXMgb25seS4gTm8gY2FyZCBib3JkZXIvcmFkaXVzLCBqdXN0IGEgYm90dG9tIGtleWxpbmUsIHNvIGEgc3RhY2tcbi8vIG9mIGNhcmRzIHJlYWRzIGFzIHRhYmxlIHJvd3MgaW5zdGVhZCBvZiBzZXBhcmF0ZSB0aWxlcy4gTWlycm9ycyB0aGUgXCJib3JkZXI6XG4vLyB0cmFuc3BhcmVudCArIGJvcmRlci1ib3R0b206IHJlYWxcIiBpZGlvbSBhbHJlYWR5IHVzZWQgYnkgcWRuYXByby11bml0LWlucHV0LXJvdydzXG4vLyBkZWZhdWx0IChub24tYm9yZGVybGVzcykgbG9vayDigJQgc2FtZSBpZGVhLCBwb3J0ZWQgaGVyZS4gWzIwMjYtMDctMDFdXG4ucWRuYXByby11bml0LWNhcmQuZmxhdC52aWV3LWxpc3QtY29tcGFjdCAucWRuYXByby11bml0LWNhcmRfX2ZyYW1lLFxuLnFkbmFwcm8tdW5pdC1jYXJkLmZsYXQudmlldy1saXN0LWxhcmdlIC5xZG5hcHJvLXVuaXQtY2FyZF9fZnJhbWUge1xuICBib3JkZXI6IDEuNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi8vIGNsZWFyYWJsZSBjaGVja2JveCDigJQgbGlzdCBtb2RlcyBvbmx5IChzYW1lIHNjb3BpbmcgYXMgdGhlIHN0YXR1cy1iYXIgYmVpbmdcbi8vIGdyaWQtb25seSBhYm92ZSkuIFRyYWlsaW5nIGZsZXggY2hpbGQsIHNpdHMgYWZ0ZXIgdGhlIGNoZWNrLWJhZGdlLiBTaGFwZS9zaXplL1xuLy8gY29sb3VyL2hvdmVyL2ZvY3VzIGFsbCBjb21lIGZyb20gcWRuYXByby1jaGVja2JveCdzIG93biBjb21wb25lbnQgQ1NTIChpdCdzXG4vLyByZW5kZXJlZCBzaXplPVwidG91Y2hcIikg4oCUIHRoaXMgb25seSBoYW5kbGVzIGl0cyBwb3NpdGlvbiBpbiB0aGUgcm93LiBbMjAyNi0wNy0wMV1cbi5xZG5hcHJvLXVuaXQtY2FyZF9fY2xlYXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctbGlzdC1jb21wYWN0IC5xZG5hcHJvLXVuaXQtY2FyZF9fY2xlYXIsXG4ucWRuYXByby11bml0LWNhcmQudmlldy1saXN0LWxhcmdlIC5xZG5hcHJvLXVuaXQtY2FyZF9fY2xlYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luLWxlZnQ6IDRweDtcbn1cblxuLy8gSU5URVJOQUxTXG4ucWRuYXByby11bml0LWNhcmRfX2ltYWdlLXdyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZF9faW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluOyAvLyBwaG90b3MgYXJlIHNxdWFyZSBjcm9wczsgY29udGFpbiBzaG93cyB0aGUgd2hvbGUgcGFjaywgbm8gY3JvcHBpbmdcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ucWRuYXByby11bml0LWNhcmRfX2ZhbGxiYWNrIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogNjhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IHZhcigtLXVjLWZiLWJnLCAjZWVmMGZiKTtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZF9fZmFsbGJhY2stYWJiciB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogdmFyKC0tdWMtZmItZmcsICM0YTUyYTApO1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkX19jaGVjay1iYWRnZSB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBmbGV4LXNocmluazogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC40KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlLCB0cmFuc2Zvcm0gMjIwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkX19jaGVjay1iYWRnZSBzdmcge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZF9fbHAtcmluZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvcmRlcjogMi41cHggc29saWQgdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbn1cblxuLy8gQXVkaXQtb3V0Y29tZSBiYW5uZXIgKGdyaWQgYm90dG9tKS4gQ29sb3VyIHBlciByZXN1bHQtKiBjbGFzczsgbGFiZWwgdGV4dCBpcyBwYXNzZWQgaW4uXG4vLyB6LWluZGV4IDIga2VlcHMgaXQgYWJvdmUgdGhlIHNlbGVjdGVkIHNjcmltICg6OmFmdGVyLCB6LWluZGV4IDEpLCBsaWtlIHRoZSBjaGVjayBiYWRnZS5cbi5xZG5hcHJvLXVuaXQtY2FyZF9fc3RhdHVzLWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiA3cHggMTBweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgZmxleC1zaHJpbms6IDA7IC8vIGZpeGVkLWhlaWdodCBiYW5uZXI7IG5ldmVyIGNvbXByZXNzZXMgd2hlbiB0aGUgbmFtZSBhcmVhIGdyb3dzXG59XG4ucWRuYXByby11bml0LWNhcmRfX3N0YXR1cy1pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ucWRuYXByby11bml0LWNhcmRfX3N0YXR1cy1pY29uIHN2ZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLy8gTGFiZWwgc3RheXMgb24gT05FIGxpbmU7IGlmIGl0IGRvZXNuJ3QgZml0IGl0IHRydW5jYXRlcyB3aXRoIOKApiBpbnN0ZWFkIG9mIHdyYXBwaW5nXG4vLyAod2hpY2ggd291bGQgZ3JvdyB0aGUgYmFubmVyIGFuZCBicmVhayB0aGUgY2FyZCBsYXlvdXQpLiBtaW4td2lkdGg6MCBsZXRzIHRoZSBmbGV4XG4vLyBpdGVtIHNocmluayBzbyB0ZXh0LW92ZXJmbG93IGNhbiBraWNrIGluLlxuLnFkbmFwcm8tdW5pdC1jYXJkX19zdGF0dXMtbGFiZWwge1xuICBtaW4td2lkdGg6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkLnJlc3VsdC1vayAgICAgICAgIC5xZG5hcHJvLXVuaXQtY2FyZF9fc3RhdHVzLWJhciB7IGJhY2tncm91bmQ6ICM2YmI2YWI7IH1cbi5xZG5hcHJvLXVuaXQtY2FyZC5yZXN1bHQtbm90LW9rICAgICAucWRuYXByby11bml0LWNhcmRfX3N0YXR1cy1iYXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWZhdm9yaXRlLWhlYXJ0KTsgfVxuLnFkbmFwcm8tdW5pdC1jYXJkLnJlc3VsdC1mdXR1cmUtZml4IC5xZG5hcHJvLXVuaXQtY2FyZF9fc3RhdHVzLWJhciB7IGJhY2tncm91bmQ6IHZhcigtLWMtd2Fybi15ZWxsb3ctNjAwKTsgfVxuLnFkbmFwcm8tdW5pdC1jYXJkLnJlc3VsdC1pc3N1ZSAgICAgIC5xZG5hcHJvLXVuaXQtY2FyZF9fc3RhdHVzLWJhciB7IGJhY2tncm91bmQ6IHZhcigtLWMtdGFnLWhhbmRvdmVyLXRleHQpOyB9IC8vIHBsYWNlaG9sZGVyIOKAlCBjb25maXJtIHdpdGggS2ltXG5cbi8vIFdoZW4gYSBiYW5uZXIgaXMgcHJlc2VudCAoZ3JpZCksIGxpZnQgdGhlIGNoZWNrIGJhZGdlIGFib3ZlIGl0IHNvIGl0IHN0YXlzIG9uIHRoZSBwaG90by5cbi5xZG5hcHJvLXVuaXQtY2FyZC5oYXMtcmVzdWx0LnZpZXctZ3JpZC1jb21wYWN0IC5xZG5hcHJvLXVuaXQtY2FyZF9fY2hlY2stYmFkZ2UsXG4ucWRuYXByby11bml0LWNhcmQuaGFzLXJlc3VsdC52aWV3LWdyaWQtc3RhbmRhcmQgLnFkbmFwcm8tdW5pdC1jYXJkX19jaGVjay1iYWRnZSB7XG4gIGJvdHRvbTogMzZweDtcbn1cblxuLy8gU1RBVEVTXG4vLyBHTE9FRCBWRVJIVUlTRCBOQUFSIEhFVCBGUkFNRSwgMjQuMDguMjAyNiAoS2ltOiBcIndhYXJvbSBpcyBkZSBzZWxlY3Qgc3RhdGUgdmFuXG4vLyBlZW4gdW5pdCB2aWVya2FudCB0ZXJ3aWpsIGhldCBmcmFtZSByb3VuZGVkIGNvcm5lcnMgaGVlZnQ/XCIpLiBIaWogc3RvbmQgb3AgZGVcbi8vIEhPU1QsIGVuIGRlIGhvc3QgaGVlZnQgYmV3dXN0IGdlZW4gYm9yZGVyLXJhZGl1cyAtIGRpZSB6aXQgb3AgaGV0IGZyYW1lLiBFZW5cbi8vIGJveC1zaGFkb3cgdm9sZ3QgZGUgcmFkaXVzIHZhbiBoZXQgZWxlbWVudCB3YWFyIGhpaiBvcCBzdGFhdCwgZHVzIGVlbiB2aWVya2FudGVcbi8vIGdsb2VkIG9tIGVlbiByb25kZSBrYWFydC5cbi8vIERlIG91ZGUgY29tbWVudCBoaWVyIHplaSBkYXQgZGUgZ2xvZWQgb3AgZGUgaG9zdCBtb2VzdCBibGlqdmVuIG9tZGF0IGhpaiBCVUlURU5cbi8vIGRlIGJveCB0ZWtlbnQgZW4gZHVzIGRlIGhvc3QncyBvdmVyZmxvdzp2aXNpYmxlIG5vZGlnIGhlZWZ0LiBEYXQga2xvcHQgbmlldDpcbi8vIGBvdmVyZmxvdzogaGlkZGVuYCBvcCBoZXQgZnJhbWUga25pcHQgYWxsZWVuIGRlIElOSE9VRCB2YW4gaGV0IGZyYW1lLCBuaWV0IHppam5cbi8vIGVpZ2VuIGJ1aXRlbndhYXJ0c2Ugc2NoYWR1dywgZW4gZGUgaG9zdCBzdGFhdCBub2cgc3RlZWRzIG9wIHZpc2libGUgem9kYXQgZGllXG4vLyBzY2hhZHV3IHJ1aW10ZSBoZWVmdC4gT3AgaGV0IGZyYW1lIHZvbGd0IGRlIGdsb2VkIG51IGF1dG9tYXRpc2NoIGRlIGp1aXN0ZSB2b3JtLFxuLy8gaW5jbHVzaWVmIGRlIGZsYXQvdmlldy1saXN0LXZhcmlhbnRlbiB3YWFyIGRlIGZyYW1lLXJhZGl1cyAwIGlzLlxuLnFkbmFwcm8tdW5pdC1jYXJkLmlzLXNlbGVjdGVkIC5xZG5hcHJvLXVuaXQtY2FyZF9fZnJhbWUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggdmFyKC0tZm9jdXMtZ2xvdyk7XG59XG4vLyBTZW1pLXRyYW5zcGFyZW50IGRhcmsgc2NyaW0gb3ZlciB0aGUgd2hvbGUgdGlsZSB3aGVuIHNlbGVjdGVkIChpbWFnZSArIG5hbWUpLiBMaXZlc1xuLy8gb24gdGhlIGZyYW1lIChwb3NpdGlvbjpyZWxhdGl2ZSwgb3ZlcmZsb3c6aGlkZGVuKSBzbyBpdCBjbGlwcyB0byB0aGUgZnJhbWUncyByb3VuZGVkXG4vLyBjb3JuZXJzIGFuZCDigJQgY3JpdGljYWxseSDigJQgZG9lcyBOT1QgY292ZXIgdGhlIG92ZXJoYW5naW5nIG1hbmRhdG9yeSBiYWRnZSwgd2hpY2ggaXNcbi8vIG91dHNpZGUgdGhlIGZyYW1lLiBUaGUgY2hlY2sgYmFkZ2Ugc2l0cyBhYm92ZSBpdCAoei1pbmRleCkuIENvbG91ci9vcGFjaXR5IGlzIGFcbi8vIHBsYWNlaG9sZGVyIHBlbmRpbmcgdGhlIGV4YWN0IEZpZ21hIHZhbHVlICg2LjEgVW5pdCBBdWRpdCBTdGFydC5fdW5pdCBzZWxlY3QpLlxuLnFkbmFwcm8tdW5pdC1jYXJkLmlzLXNlbGVjdGVkIC5xZG5hcHJvLXVuaXQtY2FyZF9fZnJhbWU6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNiwgMzEsIDc3LCAwLjMyKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDE7XG59XG4ucWRuYXByby11bml0LWNhcmQuaXMtc2VsZWN0ZWQgLnFkbmFwcm8tdW5pdC1jYXJkX19jaGVjay1iYWRnZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHotaW5kZXg6IDI7XG4gIGFuaW1hdGlvbjogdWMtYmFkZ2UtcG9wIDAuNTJzIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjUsIDEpO1xufVxuXG4vLyBEcmF3LWluIGNoZWNrbWFyayBwYXRoXG4ucWRuYXByby11bml0LWNhcmRfX2NoZWNrLXBhdGgge1xuICBzdHJva2UtZGFzaGFycmF5OiAyMztcbiAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDIzO1xuICB0cmFuc2l0aW9uOiBzdHJva2UtZGFzaG9mZnNldCAwLjE1cyBlYXNlO1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkLmlzLXNlbGVjdGVkIC5xZG5hcHJvLXVuaXQtY2FyZF9fY2hlY2stcGF0aCB7XG4gIGFuaW1hdGlvbjogdWMtZHJhdyAwLjM4cyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSkgMC4wNHMgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgdWMtYmFkZ2UtcG9wIHtcbiAgMCUgICB7IHRyYW5zZm9ybTogc2NhbGUoMC43KSAgICByb3RhdGUoMGRlZyk7ICB9XG4gIDIwJSAgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMjIpICAgcm90YXRlKC01ZGVnKTsgfVxuICA0NCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjkwKSAgIHJvdGF0ZSgzZGVnKTsgIH1cbiAgNjQlICB7IHRyYW5zZm9ybTogc2NhbGUoMS4wOCkgICByb3RhdGUoLTFkZWcpOyB9XG4gIDgwJSAgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTcpICAgcm90YXRlKDBkZWcpOyAgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKSAgICAgIHJvdGF0ZSgwZGVnKTsgIH1cbn1cblxuQGtleWZyYW1lcyB1Yy1kcmF3IHtcbiAgMCUgICB7IHN0cm9rZS1kYXNob2Zmc2V0OiAyMzsgIH1cbiAgNjIlICB7IHN0cm9rZS1kYXNob2Zmc2V0OiAtMTsgIH1cbiAgODAlICB7IHN0cm9rZS1kYXNob2Zmc2V0OiAwLjc7IH1cbiAgMTAwJSB7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyAgIH1cbn1cbi5xZG5hcHJvLXVuaXQtY2FyZC5zdGF0dXMtcHJvYmxlbS52aWV3LWxpc3QtY29tcGFjdCAucWRuYXByby11bml0LWNhcmRfX2ZyYW1lLFxuLnFkbmFwcm8tdW5pdC1jYXJkLnN0YXR1cy1wcm9ibGVtLnZpZXctbGlzdC1sYXJnZSAucWRuYXByby11bml0LWNhcmRfX2ZyYW1lIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWMtZmF2b3JpdGUtaGVhcnQpO1xuICBib3JkZXItbGVmdC13aWR0aDogM3B4O1xufVxuXG4vLyBNYW5kYXRvcnkgbWFya2VyIChib29sZWFuIGBtYW5kYXRvcnlgIGF0dHIpIOKAlCByZWQgcm91bmQgYXN0ZXJpc2sgYmFkZ2UgdGhhdFxuLy8gT1ZFUkhBTkdTIHRoZSBjYXJkJ3MgdG9wLXJpZ2h0IGNvcm5lciwgaGFsZiBvdXRzaWRlIHRoZSB0aWxlLCBsaWtlIGEgbm90aWZpY2F0aW9uXG4vLyBiYWRnZS4gUG9zc2libGUgbm93IGJlY2F1c2UgdGhlIGJhZGdlIGlzIGEgZGlyZWN0IEhPU1QgY2hpbGQgKHNpYmxpbmcgb2Zcbi8vIF9fZnJhbWUsIGFwcGVuZGVkIGFmdGVyIGl0KSBhbmQgdGhlIGhvc3QgaGFzIG92ZXJmbG93OnZpc2libGUg4oCUIG9ubHkgdGhlIGZyYW1lXG4vLyBjbGlwcy4gTmVnYXRpdmUgdG9wL3JpZ2h0IHB1bGwgaXQgb3V0c2lkZSB0aGUgZnJhbWUncyByb3VuZGVkIGNvcm5lcjsgdGhlIHdoaXRlXG4vLyByaW5nIChib3JkZXIsIGNvbG91ci1tYXRjaGVkIHRvIHRoZSBjYXJkIGJhY2tncm91bmQpIG1ha2VzIGl0IHJlYWQgYXMgYSBiYWRnZVxuLy8gcG9wcGluZyBvZmYgdGhlIHN1cmZhY2UgcmF0aGVyIHRoYW4gYSBzaGFwZSBmbG9hdGluZyBpbiBzcGFjZS4gW0tpbSAyMDI2LTA3LTE1XVxuLnFkbmFwcm8tdW5pdC1jYXJkIC5xZG5hcHJvLXVuaXQtY2FyZF9faW1hZ2Utd3JhcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZCAucWRuYXByby11bml0LWNhcmRfX21hbmRhdG9yeS1iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtN3B4O1xuICByaWdodDogLTdweDtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWZhdm9yaXRlLWhlYXJ0KTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiA0O1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkIC5xZG5hcHJvLXVuaXQtY2FyZF9fbWFuZGF0b3J5LWJhZGdlIHN2ZyB7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLy8gVGhlIGJhZGdlIG5vdyBzaXRzIG91dHNpZGUgdGhlIGZyYW1lLCBzbyBhIGxvbmcgdGl0bGUgbm8gbG9uZ2VyIHJ1bnMgdW5kZXIgaXQg4oCUXG4vLyBvbmx5IGEgc21hbGwgbnVkZ2UgaXMga2VwdCBmb3IgdGhlIH43cHggaW53YXJkIG92ZXJsYXAgYXQgdGhlIHZlcnkgdG9wLXJpZ2h0LlxuLnFkbmFwcm8tdW5pdC1jYXJkLmlzLW1hbmRhdG9yeS52aWV3LWdyaWQtY29tcGFjdCAucWRuYXByby11bml0LWNhcmRfX25hbWUsXG4ucWRuYXByby11bml0LWNhcmQuaXMtbWFuZGF0b3J5LnZpZXctZ3JpZC1zdGFuZGFyZCAucWRuYXByby11bml0LWNhcmRfX25hbWUge1xuICBwYWRkaW5nLXJpZ2h0OiAxNHB4O1xufVxuLnFkbmFwcm8tdW5pdC1jYXJkLnZpZXctbGlzdC1jb21wYWN0IC5xZG5hcHJvLXVuaXQtY2FyZF9fbWFuZGF0b3J5LWJhZGdlIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgdG9wOiAtNnB4O1xuICByaWdodDogLTZweDtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYy1iZy1jYXJkKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5xZG5hcHJvLXVuaXQtY2FyZC52aWV3LWxpc3QtY29tcGFjdCAucWRuYXByby11bml0LWNhcmRfX21hbmRhdG9yeS1iYWRnZSBzdmcge1xuICB3aWR0aDogOXB4O1xuICBoZWlnaHQ6IDlweDtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tdW5pdC1jb250ZXh0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBTbGltIFwid2hpY2ggdW5pdHMgYW0gSSBhbnN3ZXJpbmcgZm9yXCIgY29udGV4dCBiYXIgKyBhXG4vLyAgZnVsbHNjcmVlbiBmbG9hdC1pbiBvdmVybGF5IGxpc3RpbmcgdGhlIHNlbGVjdGVkIHVuaXRzLlxuLy9cbi8vICBDb25zdW1lcyBkZXNpZ24gdG9rZW5zIGZyb20gZGVzaWduLXRva2Vucy9fZGVzaWduLXRva2Vucy5zY3NzLlxuLy8gIENvbXBvc2VzIHFkbmEtdW5pdC1jYXJkIChyb3dzKSwgcWRuYS1pbnB1dCAoc2VhcmNoKSxcbi8vICBxZG5hLWJ1dHRvbiAoY2xvc2UpLiBMaWdodCBET00sIFBhdHRlcm4gQi5cbi8vXG4vLyAgTk9URTogdGhpcyBmaWxlIGlzIGFsc28gc3luY2VkIHRvIHRoZSBQV0EgdmlhIHN5bmMtdjItY29tcG9uZW50cy5qc1xuLy8gICh3aGljaCBvbmx5IHN0cmlwcyAvLyBjb21tZW50cyDigJQgaXQgZG9lcyBOT1QgY29tcGlsZSBTQ1NTIG5lc3RpbmcpLlxuLy8gIEtlZXAgQUxMIHNlbGVjdG9ycyBGTEFUIChubyAmIG5lc3RpbmcpIHNvIHRoZSBmaWxlIHdvcmtzIGFzIHBsYWluIENTU1xuLy8gIGluIHRoZSBQV0Egd2l0aG91dCBjb21waWxhdGlvbi5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyAtLS0tLS0tLS0tIGhvc3QgLS0tLS0tLS0tLVxuLnFkbmFwcm8tdW5pdC1jb250ZXh0IHsgZGlzcGxheTogYmxvY2s7IH1cbi5xZG5hcHJvLXVuaXQtY29udGV4dC5pcy1lbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gLS0tLS0tLS0tLSB0cmlnZ2VyIGJ1dHRvbiAtLS0tLS0tLS0tXG4ucWRuYXByby11bml0LWNvbnRleHRfX2JhciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zIGVhc2Utb3V0O1xufVxuLnFkbmFwcm8tdW5pdC1jb250ZXh0X19iYXI6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwKTsgfVxuLnFkbmFwcm8tdW5pdC1jb250ZXh0X19iYXI6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggdmFyKC0tZm9jdXMtZ2xvdyk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mb2N1cy1yaW5nKTtcbn1cblxuLnFkbmFwcm8tdW5pdC1jb250ZXh0X19uYW1lIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1tZWRpdW0pO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZyk7XG59XG5cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fY2hldnJvbiB7XG4gICAgZmxleDogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuLnFkbmFwcm8tdW5pdC1jb250ZXh0X19jaGV2cm9uIHN2ZyB7IGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8vIC0tLS0tLS0tLS0gZnVsbHNjcmVlbiBvdmVybGF5IC0tLS0tLS0tLS1cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGluc2V0OiAwO1xuICAgIHotaW5kZXg6IDIxNDc0ODMwMDA7IC8vIHBvcnRhbGxlZCB0byA8Ym9keT46IHNpdCBhYm92ZSBldmVyeXRoaW5nXG4gICAgZGlzcGxheTogZmxleDtcbn1cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fb3ZlcmxheVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4ucWRuYXByby11bml0LWNvbnRleHRfX2JhY2tkcm9wIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ibGFjay0zMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI0MG1zIGVhc2U7XG59XG5cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fcGFuZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIC8vIFF1aWNrIGZsb29kZmlsbDogYSBjaXJjbGUgd2lwZXMgb3BlbiBmcm9tIHRoZSB0b3AtcmlnaHQgKHdoZXJlIHRoZSBiYXInc1xuICAgIC8vIFwidmlldyBhbGxcIiBhZmZvcmRhbmNlIHNpdHMpIGFuZCBmaWxscyB0aGUgc2NyZWVuLlxuICAgIGNsaXAtcGF0aDogY2lyY2xlKDAlIGF0IDEwMCUgMCUpO1xuICAgIHRyYW5zaXRpb246IGNsaXAtcGF0aCAzNDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgIHdpbGwtY2hhbmdlOiBjbGlwLXBhdGg7XG59XG5cbi8vIE92ZXJsYXkgb3BlbiBzdGF0ZXMg4oCUIHRoZXNlIG11c3Qgd29yayBldmVuIHdoZW4gdGhlIG92ZXJsYXkgaXMgcG9ydGFsbGVkIHRvIDxib2R5PlxuLy8gKGkuZS4gbm8gbG9uZ2VyIGEgY2hpbGQgb2YgLnFkbmFwcm8tdW5pdC1jb250ZXh0KSwgc28gdXNlIGRpcmVjdCBkZXNjZW5kYW50IHNlbGVjdG9yc1xuLy8gcm9vdGVkIG9uIHRoZSBvdmVybGF5IGVsZW1lbnQgaXRzZWxmLlxuLnFkbmFwcm8tdW5pdC1jb250ZXh0X19vdmVybGF5LmlzLW9wZW4gLnFkbmFwcm8tdW5pdC1jb250ZXh0X19iYWNrZHJvcCB7IG9wYWNpdHk6IDE7IH1cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fb3ZlcmxheS5pcy1vcGVuIC5xZG5hcHJvLXVuaXQtY29udGV4dF9fcGFuZWwge1xuICAgIGNsaXAtcGF0aDogY2lyY2xlKDE1MCUgYXQgMTAwJSAwJSk7XG59XG5cbi8vIC0tLS0tLS0tLS0gcGFuZWwgaGVhZGVyIC0tLS0tLS0tLS1cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLXMtMyk7XG4gICAgcGFkZGluZzogMThweCB2YXIoLS1zLTQpIHZhcigtLXMtMyk7XG59XG5cbi8vIFRpdGxlICsgY291bnQtcGlsbCBzaXQgc2lkZSBieSBzaWRlIG9uIG9uZSByb3cgbm93LCBub3Qgc3RhY2tlZC4gWzIwMjYtMDctMDJdXG4ucWRuYXByby11bml0LWNvbnRleHRfX2hlYWRpbmctd3JhcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcy0yKTtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi8vIFNpemVzIGJ1bXBlZCBmb3IgUFdBIGxlZ2liaWxpdHkgKEtpbSwgMjAyNi0wNy0wMSk6IDE34oaSMjjihpIyNHB4LCBtZWRpdW3ihpJzZW1pIOKAlCBLaW0nc1xuLy8gZmluYWwgY2FsbCBhZnRlciBzZWVpbmcgMjhweC9tZWRpdW0gaW4gY29udGV4dCAodG9vIGJpZywgd2FudGVkIG1vcmUgd2VpZ2h0IGluc3RlYWQpLlxuLnFkbmFwcm8tdW5pdC1jb250ZXh0X190aXRsZSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pKTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4vLyBJbnRlcmFjdGl2ZSBwaWxsIChub3QgcGxhaW4gdGV4dCkgc28gdGhlIGNvdW50IHJlYWRzIGFzIGEgbGl2ZSBjb3VudGVyIOKAlCBwdWxzZXMgdmlhXG4vLyAuaXMtcHVsc2luZyAoYWRkZWQvcmVtb3ZlZCBieSBxZG5hLXVuaXQtY29udGV4dC5qcykgd2hlbmV2ZXIgYSB1bml0IGlzIHVuY2hlY2tlZCwgZm9yXG4vLyB2aXN1YWwgZmVlZGJhY2sgdGhhdCB0aGUgY291bnQgYWN0dWFsbHkgY2hhbmdlZC4gW0tpbSwgMjAyNi0wNy0wMV0gU2l0cyBuZXh0IHRvIHRoZVxuLy8gdGl0bGUgKHNlZSBfX2hlYWRpbmctd3JhcCkgYW5kIHJldXNlcyB0aGUgaGludCBwaWxsJ3MgbGlnaHQtcHVycGxlL3B1cnBsZS10ZXh0XG4vLyB0b2tlbnMsIG5vdCB0aGUgbmV1dHJhbCBncmV5IGl0IHN0YXJ0ZWQgd2l0aC4gW0tpbSwgMjAyNi0wNy0wMl1cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fc3VidGl0bGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMnB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXNlY29uZGFyeS1wdXJwbGUpO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xufVxuLnFkbmFwcm8tdW5pdC1jb250ZXh0X19zdWJ0aXRsZS5pcy1wdWxzaW5nIHtcbiAgICBhbmltYXRpb246IHFkbmFwcm8tdW5pdC1jb250ZXh0LWNvdW50LXBvcCA0MjBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG59XG5Aa2V5ZnJhbWVzIHFkbmFwcm8tdW5pdC1jb250ZXh0LWNvdW50LXBvcCB7XG4gICAgMCUgICB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgICAzMCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjE4KTsgfVxuICAgIDU1JSAgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTQpOyB9XG4gICAgNzUlICB7IHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxufVxuXG4vLyBDbG9zZSBidXR0b24gaXMgYSBxZG5hcHJvLWljb24tYnRuICh0eXBlPVwic3VidGxlXCIgcm91bmQgc2l6ZT1cInRvdWNoXCIpLiB0eXBlPVwic3VidGxlXCJcbi8vIG9uIGl0cyBvd24gcmVuZGVycyBhIG5lYXItYmxhY2sgaWNvbiAoIzBiMGIwZCwgc2VlIF9pY29uLWJ0bi5zY3NzKSDigJQgS2ltIHdhbnRzIGFuXG4vLyBhY3R1YWwgZ3JleSBoZXJlLCBzbyB0aGlzIHNjb3BlZCBvdmVycmlkZSAoMiBjbGFzc2VzLCB0aWVzIGljb24tYnRuJ3Mgb3duXG4vLyBzcGVjaWZpY2l0eTsgd2lucyBieSBzb3VyY2Ugb3JkZXIgc2luY2UgdW5pdC1jb250ZXh0IGNvbXBpbGVzIGFmdGVyIGljb24tYnRuKVxuLy8gcmVjb2xvdXJzIGp1c3QgdGhpcyBpbnN0YW5jZSBpbnN0ZWFkIG9mIGNoYW5naW5nIHRoZSBzaGFyZWQgc3VidGxlIHR5cGUgZXZlcnl3aGVyZVxuLy8gaXQncyB1c2VkLiBbMjAyNi0wNy0wMV1cbi5xZG5hcHJvLWljb24tYnRuLnFkbmFwcm8tdW5pdC1jb250ZXh0X19jbG9zZSB7XG4gICAgZmxleDogbm9uZTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cblxuLy8gU2hvcnQgZXhwbGFpbmVyIGFib3ZlIHRoZSBzZWFyY2ggZmllbGQ6IHdoYXQgdW5jaGVja2luZyBhIHJvdyBkb2VzLiBLaW0gd2FudHMgdGhpc1xuLy8gYXR0ZW50aW9uLWdyYWJiaW5nIHJhdGhlciB0aGFuIHBsYWluIHRleHQg4oCUIHNhbWUgbGlnaHQtcHVycGxlIHBpbGwgKyBpbmZvLWljb24gc2hhcGVcbi8vIGFzIHRoZSBleGlzdGluZyBcIk1pbi9tYXggY2hhcnNcIiBoaW50IGluIGFkdmFuY2VkX2lucHV0IChfcHdhLWN1cnJlbnQuc2Nzc1xuLy8gLmZsb3ctcXVlc3Rpb24taGludC0tYmxvY2spLCByZWNvbG91cmVkIHZpYSB0b2tlbnMgaW5zdGVhZCBvZiB0aGF0IHBpbGwncyBncmV5OlxuLy8gLS1jLWJnLXNlY29uZGFyeS1wdXJwbGUgKCNlNmU5ZmYpIC8gLS1jLWJyYW5kLXB1cnBsZSAoIzQwNDk5YSkuIFsyMDI2LTA3LTAxXVxuLnFkbmFwcm8tdW5pdC1jb250ZXh0X19oaW50IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAvLyBUaGUgcGFuZWwgKHRoaXMgZGl2J3MgZmxleCBwYXJlbnQpIGlzIGBmbGV4LWRpcmVjdGlvbjogY29sdW1uYCB3aXRoIHRoZSBkZWZhdWx0XG4gICAgLy8gYGFsaWduLWl0ZW1zOiBzdHJldGNoYCwgd2hpY2ggYmxvY2tpZmllcyB0aGlzIGNoaWxkJ3Mgb3V0ZXIgZGlzcGxheSB0byBgZmxleGBcbiAgICAvLyBhbmQgc3RyZXRjaGVzIGl0IHRvIHRoZSBwYW5lbCdzIGZ1bGwgd2lkdGgg4oCUIHdpdGhvdXQgdGhpcyBpdCByZW5kZXJzIGFzIGFcbiAgICAvLyBmdWxsLXdpZHRoIGJhciwgbm90IGEgc2hyaW5rLXdyYXBwZWQgcGlsbC4gYGNlbnRlcmAgKHJhdGhlciB0aGFuIGBmbGV4LXN0YXJ0YClcbiAgICAvLyBjZW50ZXJzIHRoZSBzaHJpbmstd3JhcHBlZCBwaWxsIGhvcml6b250YWxseSwgcGVyIEtpbS4gWzIwMjYtMDctMDFdXG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWFyZ2luOiAwIHZhcigtLXMtNCkgdmFyKC0tcy0yKTtcbiAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zZWNvbmRhcnktcHVycGxlKTtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xufVxuLnFkbmFwcm8tdW5pdC1jb250ZXh0X19oaW50OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICAtd2Via2l0LW1hc2s6IG5vLXJlcGVhdCBjZW50ZXIgLyBjb250YWluIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMjQgMjQnJTNFJTNDcGF0aCBmaWxsPSclMjMwMDAnIGQ9J00xMSA5aDJWN2gtMm0xIDEzYy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOG0wLTE4QTEwIDEwIDAgMCAwIDIgMTJhMTAgMTAgMCAwIDAgMTAgMTAgMTAgMTAgMCAwIDAgMTAtMTBBMTAgMTAgMCAwIDAgMTIgMm0tMSAxNWgydi02aC0yeicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICBtYXNrOiBuby1yZXBlYXQgY2VudGVyIC8gY29udGFpbiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDI0IDI0JyUzRSUzQ3BhdGggZmlsbD0nJTIzMDAwJyBkPSdNMTEgOWgyVjdoLTJtMSAxM2MtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDhtMC0xOEExMCAxMCAwIDAgMCAyIDEyYTEwIDEwIDAgMCAwIDEwIDEwIDEwIDEwIDAgMCAwIDEwLTEwQTEwIDEwIDAgMCAwIDEyIDJtLTEgMTVoMnYtNmgtMnonLyUzRSUzQy9zdmclM0VcIik7XG59XG5cbi8vIC0tLS0tLS0tLS0gc2VhcmNoIC0tLS0tLS0tLS1cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fc2VhcmNoIHsgcGFkZGluZzogMCB2YXIoLS1zLTQpIHZhcigtLXMtMyk7IH1cblxuLy8gLS0tLS0tLS0tLSBsaXN0IC0tLS0tLS0tLS1cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fbGlzdCB7XG4gICAgZmxleDogMTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICBwYWRkaW5nOiAycHggdmFyKC0tcy0zKSB2YXIoLS1zLTQpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbn1cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fbGlzdFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4ucWRuYXByby11bml0LWNvbnRleHRfX2VtcHR5IHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogNDBweCB2YXIoLS1zLTQpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5xZG5hcHJvLXVuaXQtY29udGV4dF9fZW1wdHlbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gV2lkZXIgY2FudmFzZXMgKHRhYmxldC9kZXNrdG9wKTogY2VudHJlIHRoZSBwYW5lbCBhcyBhIGZsb2F0aW5nIHNoZWV0XG4vLyBpbnN0ZWFkIG9mIGVkZ2UtdG8tZWRnZSBmdWxsc2NyZWVuLlxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgLnFkbmFwcm8tdW5pdC1jb250ZXh0X19vdmVybGF5IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXMtNik7XG4gICAgfVxuICAgIC5xZG5hcHJvLXVuaXQtY29udGV4dF9fcGFuZWwge1xuICAgICAgICBmbGV4OiBub25lO1xuICAgICAgICB3aWR0aDogNDgwcHg7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogODB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1jYXJkKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWNhcmQpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbn1cbiIsIi5xZG5hcHJvLXN1bW1hcnktYmFkZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1zLTEpO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpIDEwJSwgd2hpdGUpO1xuICAgIGNvbG9yOiB2YXIoLS10aGVtZS1idG4tY29sb3IsICM0MDQ5OWEpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItYnRuKTtcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCIvLyBxZG5hcHJvLXB3YS1tYWluLW1lbnUtaXRlbVxuLy8gUFdBIGhvbWUtbWVudSB0aWxlOiA2MHg2MCB0cmFuc2x1Y2VudCBjaXJjbGUgKyBhY3Rpdml0eSBpY29uIDM2cHggKyBJbnRlciA1MDAgbGFiZWwuXG5cbnFkbmFwcm8tcHdhLW1haW4tbWVudS1pdGVtLFxuLnFkbmFwcm8tcHdhLW1haW4tbWVudS1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgIC5wbWktY2lyY2xlIHtcbiAgICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICAgIGhlaWdodDogNjBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlLW91dDtcblxuICAgICAgICBxZG5hcHJvLWFjdGl2aXR5LWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIgLnBtaS1jaXJjbGUsXG4gICAgLnBtaS1jaXJjbGUuZm9yY2UtaG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICAgIH1cblxuICAgIC5wbWktY2lyY2xlLmlzLXByZXNzZWQsXG4gICAgLnBtaS1jaXJjbGUuZm9yY2UtcHJlc3NlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSk7XG4gICAgfVxuXG4gICAgLnBtaS1sYWJlbCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgICAgbWF4LXdpZHRoOiA3MnB4O1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tYm90dG9tLW5hdiArIHFkbmFwcm8tYm90dG9tLW5hdi1idG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIEluZHVzdHJ5LXN0YW5kYXJkIGJvdHRvbSBuYXZpZ2F0aW9uIGJhciBmb3IgUUROQSBQcm8gUFdBLlxuLy9cbi8vICBTdGFuZGFyZCBoZWlnaHQgIDogNjBweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSBmb3Igbm90Y2hlZCBwaG9uZXMuXG4vLyAgSWNvbiBzaXplICAgICAgICA6IDI0cHggTHVjaWRlLCBzdHJva2Utd2lkdGggMS43NSwgZmlsbCBub25lLlxuLy8gIFRhcCB0YXJnZXQgICAgICAgOiA0NHB4IG1pbmltdW0gcGVyIEFwcGxlIEhJRyAoYmFyIGlzIDYwcHgsIHNvIGFsd2F5cyBtZXQpLlxuLy9cbi8vICBUb2tlbnMgY29uc3VtZWQgKGZyb20gZGVzaWduLXRva2Vucy9fZGVzaWduLXRva2Vucy5zY3NzKTpcbi8vICAgIC0tYy1iZy1jYXJkICAgICAgICAgICAgICBuYXYgYmFja2dyb3VuZCAoYXV0by1mbGlwcyBpbiBkYXJrIG1vZGUpXG4vLyAgICAtLWMtYm9yZGVyLXNvZnQgICAgICAgICAgdG9wIGRpdmlkZXIgbGluZVxuLy8gICAgLS1jLXRleHQtbXV0ZWQgICAgICAgICAgIGlkbGUgaWNvbiBjb2xvdXJcbi8vICAgIC0tYy1icmFuZC1wdXJwbGUgICAgICAgICBhY3RpdmUgaWNvbiArIGFjdGl2ZSBkb3QgKyBGQUIgYmFja2dyb3VuZFxuLy8gICAgLS1jLWJyYW5kLXB1cnBsZS1ob3ZlciAgIEZBQiBob3ZlciBiYWNrZ3JvdW5kXG4vLyAgICAtLWMtYnJhbmQtcHVycGxlLXByZXNzICAgRkFCIHByZXNzZWQgYmFja2dyb3VuZFxuLy8gICAgLS1jLWJnLXN1YnRsZS1ob3ZlciAgICAgIGhvdmVyIGJhY2tncm91bmQgb24gZGVmYXVsdCBpdGVtc1xuLy8gICAgLS1jLWJnLXNlY29uZGFyeS1wdXJwbGUgIHByZXNzZWQgKyBhY3RpdmUtaXRlbSBiYWNrZ3JvdW5kIHBpbGxcbi8vICAgIC0tYy10ZXh0LWRpc2FibGVkICAgICAgICBkaXNhYmxlZCBpY29uIGNvbG91clxuLy8gICAgLS1mb2N1cy1yaW5nICAgICAgICAgICAgIGtleWJvYXJkIGZvY3VzIG91dGxpbmVcbi8vXG4vLyAgUGFnZSB0cmFuc2l0aW9uIGNvbXBhbmlvbiBjbGFzc2VzIChib3R0b20gb2YgZmlsZSk6XG4vLyAgICAucWRuYXByby1wYWdlLXN0YWNrICAgICAgICAgb3ZlcmZsb3c6aGlkZGVuIHdyYXBwZXIgZm9yIHlvdXIgcGFnZSB2aWV3c1xuLy8gICAgLnFkbmFwcm8tcGFnZSAgICAgICAgICAgICAgIGJhc2UgZm9yIGFuIGluZGl2aWR1YWwgcGFnZSBwYW5lbFxuLy8gICAgLnFkbmFwcm8tcGFnZS0tZW50ZXItZndkICAgIGVudGVyaW5nIGZyb20gcmlnaHQgIChkaXJlY3Rpb249Zm9yd2FyZClcbi8vICAgIC5xZG5hcHJvLXBhZ2UtLWxlYXZlLWZ3ZCAgICBsZWF2aW5nIHRvIGxlZnRcbi8vICAgIC5xZG5hcHJvLXBhZ2UtLWVudGVyLWJ3ZCAgICBlbnRlcmluZyBmcm9tIGxlZnQgICAoZGlyZWN0aW9uPWJhY2t3YXJkKVxuLy8gICAgLnFkbmFwcm8tcGFnZS0tbGVhdmUtYndkICAgIGxlYXZpbmcgdG8gcmlnaHRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi5xZG5hcHJvLWJvdHRvbS1uYXYge1xuICAgIC0tYm4taGVpZ2h0OiA2MHB4O1xuXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDEwMDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgLy8g4pqg77iPIGB2YXIoLS1xZG5hLWluc2V0LWJvdHRvbSwgZW52KC4uLikpYCBlbiBuaWV0IGRlIGthbGUgZW52KCk6IG9wIEFuZHJvaWQgaXNcbiAgICAvLyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkgYWx0aWpkIDAgKHppZSBkZSBmbG9hdGluZy12YXJpYW50IG9uZGVyYWFuIGRpdFxuICAgIC8vIGJlc3RhbmQpLCBkdXMgZGUgdmFzdGdlcGxha3RlIGJhbGsgbGllcCBkYWFyIG5ldCB6byBvbmRlciBkZSBuYXZpZ2F0aWViYWxrLlxuICAgIC8vIERlIHZhcmlhYmVsZSBrb210IHZhbiBkZSBwbHVnaW4gYHFkbmEtaW5zZXRzYCBlbiBiZXN0YWF0IGFsbGVlbiBvcCBBbmRyb2lkO1xuICAgIC8vIGlPUyB2YWx0IHRlcnVnIG9wIGVudigpIGVuIGdlZHJhYWd0IHppY2ggZHVzIGV4YWN0IGFscyB2b29yaGVlbi4gWzEwLjA4LjIwMjZdXG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLWJuLWhlaWdodCkgKyB2YXIoLS1xZG5hLWluc2V0LWJvdHRvbSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCkpKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tcWRuYS1pbnNldC1ib3R0b20sIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpKTtcblxuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgLTJweCAxNnB4IHJnYmEoMjAsIDI1LCA4MCwgMC4xOCk7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICosICo6OmJlZm9yZSwgKjo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLCAxKSwgb3BhY2l0eSAwLjIycyBlYXNlO1xufVxuXG4vLyBIaWRkZW4gc3RhdGUg4oCUIHNsaWRlcyB0aGUgYmFyIG9mZi1zY3JlZW4gKHVzZWQgb24gdGhlICsgbWVudSBhbmQgdGhlXG4vLyB0YXNrbGlzdC9xdWVzdGlvbm5haXJlIGZsb3csIHRvZ2dsZWQgZnJvbSBzd2l0Y2hWaWV3IGluIDAtY29yZS5qcykuXG4ucWRuYXByby1ib3R0b20tbmF2Lm5hdi1oaWRkZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKDEwMCUgKyAyNHB4KSk7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuXG4ucWRuYXByby1ib3R0b20tbmF2LWJ0biB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgcGFkZGluZzogOHB4IDRweDtcblxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuXG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUtNjUpO1xuICAgIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgdHJhbnNpdGlvbjogY29sb3IgMTIwbXMgZWFzZS1vdXQ7XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2Utb3V0LFxuICAgICAgICAgICAgdHJhbnNmb3JtIDEwMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgICAgICBzdHJva2U6IG5vbmU7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N2Zy1maWxsZWQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgc3Ryb2tlOiBub25lO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgY2xpcC1wYXRoOiBpbnNldCgwIDEwMCUgMCAwKTtcbiAgICB9XG5cbiAgICAmX19kb3Qge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogNXB4O1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgd2lkdGg6IDRweDtcbiAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbik7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgZWFzZS1vdXQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgLy8gc2hvd24gb25seSBpbiBmbG9hdGluZy1nbGFzcyB2YXJpYW50IHZpYSBpdHMgb3duIGJsb2NrXG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBUaGUgYmFkZ2UgaXRzZWxmIGlzIGEgcmVhbCA8cWRuYXByby1udW1iZXItaW5kaWNhdG9yLWJhZGdlIGNvbG9yPVwiYWxlcnRcIlxuICAgIC8vIHNpemU9XCJ4c1wiPiDigJQgc2l6ZSwgY29sb3VyIGFuZCB0eXBlIGNvbWUgZnJvbSB0aGF0IGNvbXBvbmVudC4gT25seSBpdHNcbiAgICAvLyBQTEFDRU1FTlQgb24gdGhlIGljb24gbGl2ZXMgaGVyZS4gTm8gc2VwYXJhdGlvbiByaW5nOiB0aGUgcmVkIHJlYWRzIGNsZWFybHlcbiAgICAvLyBlbm91Z2ggYWdhaW5zdCBib3RoIGJhciBjb2xvdXJzIG9uIGl0cyBvd24gKEtpbSwgMDMuMDguMjAyNikuXG4gICAgLy9cbiAgICAvLyBIT09LIE9OIFRIRSBEQVRBLUFUVFJJQlVURSwgTk9UIEEgQ0xBU1M6IHFkbmEtbnVtYmVyLWluZGljYXRvci1iYWRnZS5qcyBkb2VzXG4gICAgLy8gYHRoaXMuY2xhc3NOYW1lID0gXCJcImAgaW4gaW5pdGlhbGl6ZUNsYXNzZXMoKSwgYW5kIG9uIHVwZ3JhZGUgdGhhdCBydW5zIGZyb21cbiAgICAvLyBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sgQkVGT1JFIGNvbm5lY3RlZENhbGxiYWNrIHNuYXBzaG90cyBfb3JpZ2luYWxDbGFzc2VzLFxuICAgIC8vIHNvIGEgY2xhc3Mgd2Ugc2V0IGhlcmUgaXMgd2lwZWQgYmVmb3JlIGl0IGlzIGV2ZXIgcmVtZW1iZXJlZC4gV2l0aCB0aGUgY2xhc3NcbiAgICAvLyBnb25lIHRoZSBiYWRnZSBsb3N0IGBwb3NpdGlvbjogYWJzb2x1dGVgIGFuZCBmZWxsIGJhY2sgaW50byB0aGUgYnV0dG9uJ3NcbiAgICAvLyBmbGV4IGNvbHVtbiwgaS5lLiBjZW50cmVkIFVOREVSIHRoZSBpY29uIChLaW0ncyBzY3JlZW5zaG90IDAzLjA4LjIwMjYpLiBBXG4gICAgLy8gZGF0YS1hdHRyaWJ1dGUgaXMgbmV2ZXIgdG91Y2hlZCBieSB0aGF0IHJlc2V0LlxuICAgIC8vIFZlcnRpY2FsOiAyMHB4IHRhbGwgZnJvbSA0cHgga2VlcHMgdGhlIGJhZGdlIGNsZWFyIG9mIHRoZSBiYXIncyB0b3AgZWRnZVxuICAgIC8vIHdoaWxlIHN0aWxsIHNpdHRpbmcgb24gdGhlIGljb24ncyB1cHBlciBjb3JuZXIuIEhvcml6b250YWw6XG4gICAgLy8gYGNhbGMoNTAlIC0gMjZweClgIHB1dHMgdGhlIHJpZ2h0IGVkZ2UgMjZweCByaWdodCBvZiB0aGUgYnV0dG9uIGNlbnRyZSBub1xuICAgIC8vIG1hdHRlciBob3cgd2lkZSB0aGUgYnV0dG9uIGlzLCBzbyBpdCBzdGF5cyA0cHggcGFzdCB0aGUgNDRweCBpY29uIG9uIGJvdGhcbiAgICAvLyBwaG9uZSBhbmQgdGFibGV0IHdpZHRocy4gWzAzLjA4LjIwMjZdXG4gICAgW2RhdGEtcm9sZT1cIm5hdi1iYWRnZVwiXSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA0cHg7XG4gICAgICAgIHJpZ2h0OiBjYWxjKDUwJSAtIDI2cHgpO1xuICAgICAgICB6LWluZGV4OiAyOyAvLyBhYm92ZSB0aGUgc2xpZGluZyBwaWxsICh6LWluZGV4IDEpOyBzZWUgLmhhcy1iYWRnZSBiZWxvd1xuICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBTaWduYWwgZG90IChcInNvbWV0aGluZyBuZXcgaGVyZVwiLCBubyBudW1iZXIpLiBTYW1lIGNvbXBvbmVudCBpbiBpdHMgb3duXG4gICAgLy8gZG90IG1vZGUsIHNvIHRoZSByZWQgaXMgbGl0ZXJhbGx5IHRoZSBzYW1lIGRlY2xhcmF0aW9uIGFzIHRoZSBjb3VudCdzIGFuZFxuICAgIC8vIHRoZSB0d28gY2FuIG5ldmVyIGRyaWZ0IGFwYXJ0LiBTYW1lIGRhdGEtYXR0cmlidXRlIGhvb2sgYW5kIHRoZSBzYW1lXG4gICAgLy8gcmVhc29uIGZvciBpdCBhcyB0aGUgYmFkZ2UgYWJvdmU6IHRoYXQgY29tcG9uZW50IHdpcGVzIGNsYXNzTmFtZS5cbiAgICAvL1xuICAgIC8vIFNoYXJlcyB0aGUgYmFkZ2UncyByaWdodCBlZGdlIHNvIGEgZG90IHRhYiBhbmQgYSBjb3VudCB0YWIgbGluZSB1cFxuICAgIC8vIGhvcml6b250YWxseS4gVmVydGljYWxseSBpdCBpcyBDRU5UUkVEIE9OIFdIRVJFIFRIRSBDT1VOVCBXT1VMRCBCRTogdGhlXG4gICAgLy8gMjBweCBiYWRnZSBzdGFydHMgYXQgNHB4LCBzbyBpdHMgbWlkZGxlIHNpdHMgYXQgMTRweCwgYW5kIGFuIDhweCBkb3QgaGFzXG4gICAgLy8gdG8gc3RhcnQgYXQgMTBweCB0byBsYW5kIG9uIHRoYXQgc2FtZSBtaWRkbGUuIFN3YXBwaW5nIGEgY291bnQgZm9yIGEgZG90XG4gICAgLy8gdGhlcmVmb3JlIG1vdmVzIG5vdGhpbmcgc2lkZXdheXMgb3IgdXAuIFswNy4wOC4yMDI2LCBLaW1dXG4gICAgW2RhdGEtcm9sZT1cIm5hdi1kb3RcIl0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgcmlnaHQ6IGNhbGMoNTAlIC0gMjZweCk7XG4gICAgICAgIHotaW5kZXg6IDI7IC8vIGFib3ZlIHRoZSBzbGlkaW5nIHBpbGwgKHotaW5kZXggMSk7IHNlZSAuaGFzLWJhZGdlIGJlbG93XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC8vIEEgYmFkZ2UgbXVzdCBuZXZlciBkaXNhcHBlYXIgdW5kZXIgdGhlIHNsaWRpbmcgcGlsbCwgbm90IGV2ZW4gb24gdGhlXG4gICAgLy8gc2VsZWN0ZWQgdGFiLiBUaGUgYnV0dG9uIGlzIGl0cyBvd24gc3RhY2tpbmcgY29udGV4dCBpbiB0aGUgcGlsbCB2YXJpYW50c1xuICAgIC8vICh6LWluZGV4IDApLCBzbyB0aGUgYmFkZ2UncyBvd24gei1pbmRleCBjYW5ub3QgcmVhY2ggcGFzdCB0aGUgcGlsbCDigJQgdGhlXG4gICAgLy8gd2hvbGUgYnV0dG9uIGhhcyB0byBjb21lIHVwLiBPbmx5IGJ1dHRvbnMgdGhhdCBhY3R1YWxseSBjYXJyeSBhIGJhZGdlIG1vdmUsXG4gICAgLy8gc28gdGhlIHBpbGwga2VlcHMgc2l0dGluZyBvdmVyIGV2ZXJ5IG90aGVyIGljb24gZXhhY3RseSBhcyBiZWZvcmUuXG4gICAgLy8gQ2xhc3Mgc2V0IGJ5IHFkbmEtYm90dG9tLW5hdi5qcy4gVGhlIHBpbGwgdmFyaWFudHMgcmVwZWF0IHRoaXMgcnVsZSBhdCB0aGVpclxuICAgIC8vIG93biBzcGVjaWZpY2l0eSwgYmVjYXVzZSB0aGVpciBgei1pbmRleDogMGAgb24gdGhlIGJ1dHRvbiB3b3VsZCB3aW4gaGVyZS5cbiAgICAvLyBbMDMuMDguMjAyNiwgS2ltXVxuICAgICYuaGFzLWJhZGdlIHtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICB9XG5cbiAgICAvLyBIb3ZlciAocG9pbnRlciBkZXZpY2VzIG9ubHkpXG4gICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgJjpob3Zlcjpub3QoLmlzLWRpc2FibGVkKTpub3QoLmlzLWZhYikge1xuICAgICAgICAgICAgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2ljb24ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtMTIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUHJlc3NlZFxuICAgICY6YWN0aXZlOm5vdCguaXMtZGlzYWJsZWQpOm5vdCguaXMtZmFiKSxcbiAgICAmLmlzLXByZXNzaW5nOm5vdCguaXMtZGlzYWJsZWQpOm5vdCguaXMtZmFiKSB7XG4gICAgICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19pY29uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtMjIpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjg4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFjdGl2ZSAoc2VsZWN0ZWQgdGFiKVxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuXG4gICAgICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19pY29uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtMjIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2RvdCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlICsgaG92ZXJcbiAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgICAmLmlzLWFjdGl2ZTpob3Zlcjpub3QoLmlzLWRpc2FibGVkKSB7XG4gICAgICAgICAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0bl9faWNvbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZS0yOCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgKyBwcmVzc2VkXG4gICAgJi5pcy1hY3RpdmU6YWN0aXZlOm5vdCguaXMtZGlzYWJsZWQpLFxuICAgICYuaXMtYWN0aXZlLmlzLXByZXNzaW5nOm5vdCguaXMtZGlzYWJsZWQpIHtcbiAgICAgICAgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2ljb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZS0yMik7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuODgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWRcbiAgICAmLmlzLWRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUtMjgpO1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMC40NTtcbiAgICB9XG5cbiAgICAvLyBGb2N1c1xuICAgICY6Zm9jdXMgICAgICAgICAgeyBvdXRsaW5lOiBub25lOyB9XG4gICAgJjpmb2N1cy12aXNpYmxlICB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1mb2N1cy1yaW5nKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICB9XG5cbiAgICAvLyBGQUIgdmFyaWFudFxuICAgICYuaXMtZmFiIHtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgICAgICAgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2ljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDUycHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDUycHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICAgICAgMCAycHggOHB4ICByZ2JhKDIwLCAyNSwgODAsIDAuMjApLFxuICAgICAgICAgICAgICAgIDAgNnB4IDIwcHggcmdiYSgyMCwgMjUsIDgwLCAwLjE0KTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dCxcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93ICAgICAgIDEyMG1zIGVhc2Utb3V0LFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAgICAgICAgMTUwbXMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xuXG4gICAgICAgICAgICBzdmcgeyBzdHJva2Utd2lkdGg6IDI7IH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAgICAgICAmOmhvdmVyOm5vdCguaXMtZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0bl9faWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtOTApO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEycHgpO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgICAgICAgICAgICAgMCA0cHggMTRweCByZ2JhKDIwLCAyNSwgODAsIDAuMjgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgMCA4cHggMjhweCByZ2JhKDIwLCAyNSwgODAsIDAuMTgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlOm5vdCguaXMtZGlzYWJsZWQpLFxuICAgICAgICAmLmlzLXByZXNzaW5nOm5vdCguaXMtZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19pY29uIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlLTg1KTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCkgc2NhbGUoMC45Myk7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgICAgICAgICAgMCAxcHggNHB4IHJnYmEoMjAsIDI1LCA4MCwgMC4xNCksXG4gICAgICAgICAgICAgICAgICAgIDAgMnB4IDhweCByZ2JhKDIwLCAyNSwgODAsIDAuMTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWMtd2hpdGUtNjUpO1xuXG4gICAgICAgICAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0bl9faWNvbiB7IGJhY2tncm91bmQ6ICNmZmZmZmY7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IH1cbiAgICAgICAgICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19kb3QgIHsgZGlzcGxheTogbm9uZTsgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiA0cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgU2xpZGluZyBwaWxsIHZhcmlhbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucWRuYXByby1ib3R0b20tbmF2W3ZhcmlhbnQ9XCJzbGlkaW5nLXBpbGxcIl0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBjdXJzb3I6IGdyYWI7XG4gICAgJjphY3RpdmUgeyBjdXJzb3I6IGdyYWJiaW5nOyB9XG5cbiAgICAvLyBTdXBwcmVzcyBwZXItYnV0dG9uIHN0YXRlcyDigJQgZ2xhc3MgcGlsbCBoYW5kbGVzIGFsbCB2aXN1YWwgZmVlZGJhY2tcbiAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0biAucWRuYXByby1ib3R0b20tbmF2LWJ0bl9faWNvbiB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IH1cbiAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0bl9fZG90ICAgICAgICAgICAgICAgICAgICAgICAgICB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgIC8vIC4uLmV4Y2VwdCBhIGJhZGdlOiB0aGF0IG9uZSBzdGF5cyBvbiB0b3Agb2YgdGhlIHBpbGwgKHNlZSBiYXNlIC5oYXMtYmFkZ2UpLlxuICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuLmhhcy1iYWRnZSB7IHotaW5kZXg6IDI7IH1cblxuICAgIC8vIEJ1dHRvbnMgYmVoaW5kIHRoZSBnbGFzcyBwaWxsIHNvIGJhY2tkcm9wLWZpbHRlciBjYXRjaGVzIHRoZWlyIHBpeGVsc1xuICAgIHFkbmFwcm8tYm90dG9tLW5hdi1idG4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIGN1cnNvcjogaW5oZXJpdDtcbiAgICAgICAgLy8gVW5pZm9ybSBkaW0gY29sb3VyIOKAlCBwaWxsIGJyaWdodGVucyBpY29ucyB0aHJvdWdoIGJhY2tkcm9wLWZpbHRlciwgbm90IHZpYSBjb2xvciBmbGlwXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTU1KSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8vIEdsYXNzIHBpbGwg4oCUIGJyaWdodGVucyB3aGF0ZXZlciBpdCBjb3ZlcnMgKGJnICsgaWNvbiBzdHJva2VzKSB2aWEgYmFja2Ryb3AtZmlsdGVyXG4gICAgLnFkbmFwcm8tYm90dG9tLW5hdl9fcGlsbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiBjYWxjKCh2YXIoLS1ibi1oZWlnaHQpIC0gNDBweCkgLyAyKTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIC8vIEdsYXNzIHN1cmZhY2VcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBicmlnaHRuZXNzKDEuNSk7XG4gICAgICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBicmlnaHRuZXNzKDEuNSk7XG4gICAgICAgIGJvcmRlcjogMC41cHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQwKSxcbiAgICAgICAgICAgIDAgMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA0MjBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgIH1cbn1cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBGbG9hdGluZyB2YXJpYW50cyAoZ2xhc3MgKyBzb2xpZCBzaGFyZSBzaGFwZS9zaXplL2RyYWcvcGlsbClcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucWRuYXByby1ib3R0b20tbmF2W3ZhcmlhbnQ9XCJmbG9hdGluZy1nbGFzc1wiXSxcbi5xZG5hcHJvLWJvdHRvbS1uYXZbdmFyaWFudD1cImZsb2F0aW5nLXNvbGlkXCJdIHtcbiAgICBsZWZ0OiAxNnB4O1xuICAgIHJpZ2h0OiAxNnB4O1xuICAgIC8vIDIwcHggaW5zZXQgdG90IHZpZXdwb3J0IChLaW0gMjkuMDYuMjAyNik7IHNhZmUtYXJlYS1pbnNldCBiZXd1c3Qgd2VnLlxuICAgIC8vIOKaoO+4jyBBTkRST0lEIEVSQklKIFsxMC4wOC4yMDI2LCBKYW5dOiBvcCBlZW4gZHJpZS1rbm9wcGVuLXRvZXN0ZWwgc3RvbmQgZGV6ZSBiYWxrXG4gICAgLy8gT05ERVIgZGUgQW5kcm9pZC1rbm9wcGVuIChvdmVyemljaHQvaG9tZS90ZXJ1ZykuIFNpbmRzIGBBbmRyb2lkRWRnZVRvRWRnZWAgbG9vcHRcbiAgICAvLyBkZSBwYWdpbmEgdG90IGRlIHNjaGVybXJhbmQsIGVuIGBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSlgIGlzIG9wIEFuZHJvaWRcbiAgICAvLyBBTFRJSkQgMCDigJQgZ2VtZXRlbiBvcCBlZW4gU2Ftc3VuZyBBMzY6IG5hdmlnYXRpZWJhbGsgMTM1IGZ5c2lla2UgcHggPSA0OCBwdW50ZW4sXG4gICAgLy8gdGVyd2lqbCBlbnYoKSBudWwgemVndC4gRGUgZWNodGUgd2FhcmRlIGtvbXQgbnUgdmFuIGRlIHBsdWdpbiBgcWRuYS1pbnNldHNgXG4gICAgLy8gKHFkbmF2Ml9hcHAvbG9jYWwtcGx1Z2lucy9xZG5hLWluc2V0cyksIGRpZSBoZW0gYWxzIENTUy12YXJpYWJlbGUgb3AgPGh0bWw+IHpldC5cbiAgICAvLyDimqDvuI8gRGUgdGVydWd2YWwgaXMgQkVXVVNUIDAgZW4gbmlldCBlbnYoKTogZGllIHZhcmlhYmVsZSBiZXN0YWF0IGFsbGVlbiBvcCBBbmRyb2lkLFxuICAgIC8vIGR1cyBvcCBpT1MgYmxpamZ0IGRpdCBsZXR0ZXJsaWprIDIwcHgg4oCUIEtpbXMga2V1emUgaGllcmJvdmVuLCBlbiBKYW5zIGVpcyBkYXQgZGVcbiAgICAvLyBpT1MtYXBwIG5pZXQgbWVlIG1hZyB2ZXJzY2h1aXZlbi4gR2VtZXRlbiB1aXRrb21zdDogMjAgb3AgaU9TLCA2OCBiaWogZHJpZVxuICAgIC8vIGtub3BwZW4sIDQ0IGJpaiB2ZWVnbmF2aWdhdGllLlxuICAgIC8vIOKaoO+4jyBFbiBkZSB0b2V0c2VuYm9yZGhvb2d0ZSBlciB3ZWVyIEFGIFsxMC4wOC4yMDI2LCBKYW46IFwiZGllIGZsb2F0aW5nIHRvb2xiYXIgbW9ldFxuICAgIC8vIG5vb2l0IHZlcnBsYWF0c2VuXCJdLiBjb3Jkb3ZhLWFuZHJvaWQga3JpbXB0IG1ldCBBbmRyb2lkRWRnZVRvRWRnZSBkZSB3ZWJ3ZWVyZ2F2ZSBtZXRcbiAgICAvLyBkZSBob29ndGUgdmFuIGhldCB0b2V0c2VuYm9yZCAoZ2VtZXRlbjogOTE1IOKGkiA1NzggcHVudGVuKSwgZW4gZWVuIGBwb3NpdGlvbjogZml4ZWRgXG4gICAgLy8gZWxlbWVudCB2b2xndCBkaWUgbmlldXdlIG9uZGVycmFuZCDigJQgZHVzIHNjaG9vZiBkZXplIGJhbGsgbWVlIG9taG9vZyBlbiBhdCBoaWogdmFuXG4gICAgLy8gZGUgd2VpbmlnZSBydWltdGUgZGllIG5hYXN0IGhldCB0b2V0c2VuYm9yZCBvdmVyYmxlZWYuIFppY2h0YmFhciBpbiBOb3ZhLCBtYWFyIGhldFxuICAgIC8vIGlzIGhldCBnZWRyYWcgdmFuIGRlIHdlYndlZXJnYXZlLCBkdXMgb3ZlcmFsIHdhYXIgZWVuIHRvZXRzZW5ib3JkIG9wa29tdC5cbiAgICAvLyBEb29yIGRlIGtyaW1wIGVyYWYgdGUgdHJla2tlbiBibGlqZnQgZGUgYmFsayBvcCB6aWpuIHBsZWsgb3AgaGV0IFNDSEVSTSBzdGFhbiBlblxuICAgIC8vIHZlcmR3aWpudCBoaWogbmV0amVzIGFjaHRlciBoZXQgdG9ldHNlbmJvcmQuXG4gICAgLy8g4pqg77iPIE9wIGlPUyBiZXN0YWF0IGRlemUgdmFyaWFiZWxlIG5pZXQgKHRlcnVndmFsIDApIGVuIGtyaW1wdCBkZSB3ZWVyZ2F2ZSBvb2sgbmlldCBvcFxuICAgIC8vIGRlemUgbWFuaWVyIOKAlCBkYWFyIHZlcmFuZGVydCBkdXMgbmlldHMuXG4gICAgYm90dG9tOiBjYWxjKDIwcHggKyB2YXIoLS1xZG5hLWluc2V0LWJvdHRvbSwgMHB4KSAtIHZhcigtLXFkbmEtaW5zZXQtaW1lLCAwcHgpKTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcblxuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuXG4gICAgLy8gRnJvc3RlZCBnbGFzcyDigJQgbGlnaHQgY29udGVudCBzaG93cyB0aHJvdWdoXG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjRweCkgc2F0dXJhdGUoMS41KTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigyNHB4KSBzYXR1cmF0ZSgxLjUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCA4cHggMzJweCByZ2JhKDIwLCAyNSwgODAsIDAuMTYpLFxuICAgICAgICAwIDJweCA4cHggIHJnYmEoMjAsIDI1LCA4MCwgMC4wOCksXG4gICAgICAgIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcblxuICAgIC8vIERyYWcgYWZmb3JkYW5jZVxuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGN1cnNvcjogZ3JhYjtcbiAgICAvLyB0b3VjaC1hY3Rpb246bm9uZSDihpIgZGUgYnJvd3NlciBrYWFwdCBoZXQgaG9yaXpvbnRhbGUgc2xlZXBnZWJhYXIgbmlldCB2b29yXG4gICAgLy8gc2Nyb2xsOyBwb2ludGVybW92ZS91cCBibGlqdmVuIGJldHJvdXdiYWFyIGtvbWVuIChjcnVjaWFhbCB2b29yIGRlIHNuYXAgb3AgdG91Y2gpLlxuICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgICAmOmFjdGl2ZSB7IGN1cnNvcjogZ3JhYmJpbmc7IH1cblxuICAgIC8vIEdyb3RlcmUgZ3JpanB6b25lOiBvbnppY2h0YmFyZSBzdHJpcCBpbiBkZSBsZWdlIHJ1aW10ZSBPTkRFUiBkZSBiYWxrXG4gICAgLy8gKHR1c3NlbiBiYWxrIGVuIHNjaGVybXJhbmQpIHpvZGF0IGRlIHBpbGwgbWFra2VsaWprZXIgdGUgcGFra2VuL3NsZXBlbiBpcy5cbiAgICAvLyBQc2V1ZG8ncyB6aWpuIGdlZW4gZWlnZW4gZXZlbnQtdGFyZ2V0IOKGkiBlZW4gcG9pbnRlcmRvd24gaGllciB0ZWx0IGFscyBkZSBob3N0LlxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgfVxuXG4gICAgLnFkbmFwcm8tYm90dG9tLW5hdi1idG4ge1xuICAgICAgICBwYWRkaW5nOiAxMXB4IDRweDtcbiAgICAgICAgY29sb3I6IHJnYmEoNTAsIDU1LCAxMDAsIDAuNDUpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIGN1cnNvcjogaW5oZXJpdDtcblxuICAgICAgICAvLyBCYWRnZSBzdGF5cyBvbiB0b3Agb2YgdGhlIHNsaWRpbmcgcGlsbCAoc2VlIGJhc2UgLmhhcy1iYWRnZSkuXG4gICAgICAgICYuaGFzLWJhZGdlIHsgei1pbmRleDogMjsgfVxuXG4gICAgICAgIC8vIEZvcnNlcmUgbWFhdCB2b29yIHRlbGVmb29uOiBiYWxrIDY0cHggPSBpY29uLXdyYXBwZXIgNDAgKyAyeDExIHBhZGRpbmcgKDYyKVxuICAgICAgICAvLyArIDFweCByYW5kIGJvdmVuL29uZGVyLiBHbHlwaCAyOHB4LCBwaWxsIDYweDQ4LiBbMjkuMDYuMjAyNl1cbiAgICAgICAgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2ljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDQ0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICBzdmcgeyB3aWR0aDogMjhweDsgaGVpZ2h0OiAyOHB4OyB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTaG93IGJvbGQgXCJmaWxsZWRcIiBpY29uIGxheWVyIOKAlCBKUyBjbGlwcyBpdCB0byBwaWxsIG92ZXJsYXAgYXJlYVxuICAgICAgICAucWRuYXByby1ib3R0b20tbmF2LWJ0bl9fc3ZnLWZpbGxlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vIGxhYmVscyDigJQgcGlsbCBpcyB0aGUgb25seSBzZWxlY3Rpb24gaW5kaWNhdG9yXG4gICAgICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19sYWJlbCB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICAgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2RvdCAgIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgICAgIC8vIFN1cHByZXNzIGFsbCBpY29uIGJhY2tncm91bmRzIOKAlCBwaWxsIGhhbmRsZXMgZmVlZGJhY2tcbiAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICY6aG92ZXI6bm90KC5pcy1kaXNhYmxlZCkgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2ljb24geyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9XG4gICAgICAgIH1cbiAgICAgICAgJjphY3RpdmU6bm90KC5pcy1kaXNhYmxlZCkgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2ljb24sXG4gICAgICAgICYuaXMtcHJlc3Npbmc6bm90KC5pcy1kaXNhYmxlZCkgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2ljb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Mik7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgICAgICAgICAgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2ljb24geyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBcIk5ld1wiIGFjdGlvbiB3aGVuIFNFTEVDVEVEOiB0aGUgZmlsbGVkIChzb2xpZCkgcGx1cy1jaXJjbGUgc2hvd3MsIGJ1dCBpdHNcbiAgICAgICAgLy8gcGx1cyBpcyBhIGN1dC1vdXQgZ2FwLiBTaXQgYSB3aGl0ZSBjaXJjbGUgQkVISU5EIGl0IHNvIHRoZSBnYXAgcmVhZHMgd2hpdGVcbiAgICAgICAgLy8g4oaSIHNvbGlkIHB1cnBsZSBkaXNjIHdpdGggYSB3aGl0ZSArLiBJZGxlIChvdXRsaW5lIOKKlSkgaXMgdW50b3VjaGVkLCBzbyB0aGVcbiAgICAgICAgLy8gd2hpdGUgY2lyY2xlIGNhbid0IHNoaW5lIHRocm91Z2ggdGhlIGhvbGxvdyBvdXRsaW5lLlxuICAgICAgICAmW2ljb249XCJwbHVzLWNpcmNsZVwiXS5pcy1hY3RpdmUge1xuICAgICAgICAgICAgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2ljb24geyBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgICAgICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19pY29uOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuX19zdmctZmlsbGVkIHsgei1pbmRleDogMTsgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2xpZGluZyBwaWxsIOKAlCBzb2Z0IGJyYW5kIHRpbnQgdGhhdCBnbGlkZXMgdW5kZXIgdGhlIGFjdGl2ZSB0YWJcbiAgICAucWRuYXByby1ib3R0b20tbmF2X19waWxsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IGNhbGMoNTAlIC0gMjZweCk7IC8vIHZlcnRpY2FhbCBjZW50cmVyZW4gKDI2ID0gaGFsdmUgcGlsbC1ob29ndGUgNTIpXG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiA2OHB4O1xuICAgICAgICBoZWlnaHQ6IDUycHg7IC8vIEtpbSAyOS4wNi4yMDI2OiBwaWxsIDY4eDUyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAwLjEwKTtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBub25lO1xuICAgICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA0MjBtcyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgIH1cbn1cblxuLy8g4pSA4pSAIFNvbGlkIHB1cnBsZSBza2luICh2YXJpYW50PVwiZmxvYXRpbmctc29saWRcIikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBTYW1lIGZsb2F0aW5nIHNoYXBlICsgcGlsbCBNRUNIQU5JRUsgYWxzIGdsYXNzLCBtYWFyIGVlbiBvcGFxdWUgYnJhbmQtcHVycGxlXG4vLyBiYWxrLiBEZSBwaWxsIGlzIE5JRVQgc29saWQgd2l0IChkYXQgZGVrdCBoZXQgaWNvb24gYWYpIG1hYXIgRE9PUlNDSElKTkVORCwgbmV0XG4vLyBhbHMgZ2xhc3M6IGhldCBpY29vbiBlcm9uZGVyIGJsaWpmdCB6aWNodGJhYXIgZW4gdmVyYW5kZXJ0IHZhbiBrbGV1ciBkb29yZGF0IGRlXG4vLyBmaWxsZWQtc3ZnIG9wIGRlIHBpbGwgd29yZHQgZ2VjbGlwdCAoX3VwZGF0ZUljb25DbGlwcykuIE9wIGRlIHBhYXJzZSBiYWxrIHppam5cbi8vIGRlIGljb25lbiB3aXQgKGlkbGUgNjUlKSBlbiBsaWNodCBoZXQgYWN0aWV2ZSBpY29vbiBvbmRlciBkZSBwaWxsIG9wIG5hYXIgdm9sXG4vLyB3aXQuIFsyOS4wNi4yMDI2XSAjNDA0OTlhIGJhbGssIGtsZXVyZW4gdWl0IGRlIGRlZmF1bHQvc29saWQtZGVtby5cbi5xZG5hcHJvLWJvdHRvbS1uYXZbdmFyaWFudD1cImZsb2F0aW5nLXNvbGlkXCJdIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBub25lO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDhweCAyOHB4IHJnYmEoMjAsIDI1LCA4MCwgMC4yOCksXG4gICAgICAgIDAgMnB4IDhweCAgcmdiYSgyMCwgMjUsIDgwLCAwLjE2KTtcblxuICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuICAgICAgICB7IGNvbG9yOiB2YXIoLS1jLXdoaXRlLTY1KTsgfVxuICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuLmlzLWFjdGl2ZSB7IGNvbG9yOiAjZmZmZmZmOyB9XG5cbiAgICAvLyBkb29yc2NoaWpuZW5kZSBcInNwb3RsaWdodFwiLXBpbGwgKGdlZW4gc29saWQgYmxvaykg4oCUIGljb29uIGJsaWpmdCB6aWNodGJhYXJcbiAgICAucWRuYXByby1ib3R0b20tbmF2X19waWxsIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTsgfVxuXG4gICAgLy8gR0VFTiBmaWxsZWQtY2xpcCBvcCBzb2xpZDogZGUgd2lwZSAocGFhcnMtb3AtbGljaHQgYmlqIGdsYXNzKSBnYWYgb3AgZGVcbiAgICAvLyBwYWFyc2UgYmFsayB3aXR0ZSBmcmFnbWVudGVuL2dsaXRjaCB0aWpkZW5zIGhldCBzY2h1aXZlbi4gSGV0IGFjdGlldmUgaWNvb25cbiAgICAvLyB2ZXJhbmRlcnQgaGllciBnZXdvb24gdmFuIGtsZXVyIHZpYSAuaXMtYWN0aXZlICh3aXQtNjUg4oaSIHZvbCB3aXQpLiBbMjkuMDYuMjAyNl1cbiAgICAvLyBOQjogc2VsZWN0b3IgdmlhIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuIG9tIGRlIGdlZGVlbGRlIGBkaXNwbGF5OmJsb2NrYFxuICAgIC8vICh6ZWxmZGUgc3BlY2lmaWNpdGVpdCwgZWVyZGVyIGluIGRlIGJyb24pIHRlIG92ZXJzY2hyaWp2ZW4uXG4gICAgLnFkbmFwcm8tYm90dG9tLW5hdi1idG4gLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX3N2Zy1maWxsZWQgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgLy8gcGx1cy1jaXJjbGUgd2l0dGUtY2lya2VsLXRydWMgKHZvb3IgZ2xhc3MpIGhpZXIgbmlldCBub2RpZyDihpIgdWl0LCBhbmRlcnNcbiAgICAvLyB3aXQtb3Atd2l0IGJsb2IgYWxzIGRlICsgYWN0aWVmIGlzLlxuICAgIC5xZG5hcHJvLWJvdHRvbS1uYXYtYnRuW2ljb249XCJwbHVzLWNpcmNsZVwiXS5pcy1hY3RpdmUgLnFkbmFwcm8tYm90dG9tLW5hdi1idG5fX2ljb246OmJlZm9yZSB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBQYWdlIHRyYW5zaXRpb24ga2V5ZnJhbWVzICsgY2xhc3Nlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBrZXlmcmFtZXMgcWRuYXByby1zbGlkZS1pbi1yaWdodCB7XG4gICAgZnJvbSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgb3BhY2l0eTogMDsgfVxuICAgIHRvICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7ICAgIG9wYWNpdHk6IDE7IH1cbn1cblxuQGtleWZyYW1lcyBxZG5hcHJvLXNsaWRlLWluLWxlZnQge1xuICAgIGZyb20geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyBvcGFjaXR5OiAwOyB9XG4gICAgdG8gICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgICAgIG9wYWNpdHk6IDE7IH1cbn1cblxuQGtleWZyYW1lcyBxZG5hcHJvLXNsaWRlLW91dC1sZWZ0IHtcbiAgICBmcm9tIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyAgICBvcGFjaXR5OiAxOyB9XG4gICAgdG8gICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzAlKTsgb3BhY2l0eTogMDsgfVxufVxuXG5Aa2V5ZnJhbWVzIHFkbmFwcm8tc2xpZGUtb3V0LXJpZ2h0IHtcbiAgICBmcm9tIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyAgIG9wYWNpdHk6IDE7IH1cbiAgICB0byAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMwJSk7IG9wYWNpdHk6IDA7IH1cbn1cblxuLnFkbmFwcm8tcGFnZS1zdGFjayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5xZG5hcHJvLXBhZ2Uge1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG59XG5cbi5xZG5hcHJvLXBhZ2UtLWVudGVyLWZ3ZCB7XG4gICAgYW5pbWF0aW9uOiBxZG5hcHJvLXNsaWRlLWluLXJpZ2h0IDI4MG1zIGN1YmljLWJlemllcigwLjIyLCAxLCAwLjM2LCAxKSBib3RoO1xufVxuXG4ucWRuYXByby1wYWdlLS1sZWF2ZS1md2Qge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIGluc2V0OiAwO1xuICAgIGFuaW1hdGlvbjogcWRuYXByby1zbGlkZS1vdXQtbGVmdCAyNDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjgsIDAuNikgYm90aDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnFkbmFwcm8tcGFnZS0tZW50ZXItYndkIHtcbiAgICBhbmltYXRpb246IHFkbmFwcm8tc2xpZGUtaW4tbGVmdCAyODBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSkgYm90aDtcbn1cblxuLnFkbmFwcm8tcGFnZS0tbGVhdmUtYndkIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICBpbnNldDogMDtcbiAgICBhbmltYXRpb246IHFkbmFwcm8tc2xpZGUtb3V0LXJpZ2h0IDI0MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuOCwgMC42KSBib3RoO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiLy8gU0NTUy1icm9uIHZvb3IgZGUgY29tcG9uZW50cy12Mi1idW5kZWwuXG4vLyBCZXdlcmsgSElFUiwgZHJhYWkgZGFhcm5hIGBndWxwIHNhc3MtdjFgIGVuICh2b29yIGRlIGFwcCkgc3luYy12Mi1jb21wb25lbnRzLmpzLlxuLy9cbi8vIHFkbmFwcm8tcHVsbC1yZWZyZXNoIOKAlCBcInRyZWsgb21sYWFnIG9tIHRlIHZlcnZlcnNlblwiLlxuLy9cbi8vIFZPT1IgREUgVk9STUdFVkVSIChLaW0pOiBhbGxlcyB3YXQgamUgbm9kaWcgaGVidCB6aXQgaW4gZGl0IGJlc3RhbmQuIERlIEpTIHpldFxuLy8gYWxsZWVuIGtsYXNzZW4gZW4gdHdlZSB2YXJpYWJlbGVuOyBoaWogYmVwYWFsdCBuaWV0cyBvdmVyIGhvZSBoZXQgZXJ1aXR6aWV0LlxuLy9cbi8vICAgVG9lc3RhbmRlbiAoa2xhc3NlIG9wIGRlIGhvc3QpOlxuLy8gICAgIC5wci1pZGxlICAgICAgbmlldHMgYWFuIGRlIGhhbmQsIHpvbmUgaXMgZGljaHRcbi8vICAgICAucHItcHVsbGluZyAgIGdlYnJ1aWtlciB0cmVrdCwgbWFhciBub2cgbmlldCB2ZXIgZ2Vub2VnXG4vLyAgICAgLnByLXJlYWR5ICAgICB2ZXIgZ2Vub2VnIOKAlCBsb3NsYXRlbiBzdGFydCBoZXQgdmVydmVyc2VuXG4vLyAgICAgLnByLWJ1c3kgICAgICBiZXppZyBtZXQgdmVydmVyc2VuXG4vL1xuLy8gICBWYXJpYWJlbGVuIGRpZSBKSUogbWFnIHpldHRlbjpcbi8vICAgICAtLXByLW1heC1wdWxsICAgICAgIGhvZSBob29nIGRlIHpvbmUgbWF4aW1hYWwgd29yZHRcbi8vICAgICAtLXByLWJnICAgICAgICAgICAgIGFjaHRlcmdyb25kIHZhbiBkZSB6b25lXG4vLyAgICAgLS1wci1jb2xvciAgICAgICAgICBrbGV1ciB2YW4gaGV0IGRyYWFpZW5kZSByb25kamVcbi8vICAgICAtLXByLWxhYmVsLWNvbG9yICAgIGtsZXVyIHZhbiBkZSB0ZWtzdFxuLy8gICAgIC0tcHItbGFiZWwtc2l6ZSAgICAgdGVrc3Rncm9vdHRlXG4vLyAgICAgLS1wci1zcGlubmVyLXNpemUgICBkaWFtZXRlciB2YW4gaGV0IHJvbmRqZVxuLy8gICAgIC0tcHItc3Bpbm5lci13aWR0aCAgZGlrdGUgdmFuIGRlIHJhbmQgdmFuIGhldCByb25kamVcbi8vXG4vLyAgIFZhcmlhYmVsZW4gZGllIGRlIEpTIHpldCAoYWxsZWVuIGxlemVuKTpcbi8vICAgICAtLXByLWRpc3RhbmNlICAgaG9ldmVlbCBwaXhlbHMgZGUgem9uZSBudSBvcGVuIHN0YWF0XG4vLyAgICAgLS1wci1wcm9ncmVzcyAgIDAg4oaSIDEgdGVyd2lqbCBqZSB0cmVrdDsgcmVrZW4gaGllciBnZXJ1c3QgbWVlLCBiaWp2b29yYmVlbGRcbi8vICAgICAgICAgICAgICAgICAgICAgYG9wYWNpdHk6IHZhcigtLXByLXByb2dyZXNzKWAgb2YgYHNjYWxlKHZhcigtLXByLXByb2dyZXNzKSlgXG4vL1xuLy8g4pqg77iPIGBvdmVyZmxvdzogaGlkZGVuYCBvcCBkZSBob3N0IGlzIGZ1bmN0aW9uZWVsLCBuaWV0IGNvc21ldGlzY2g6IGRlIHpvbmUgaXMgaW5cbi8vIHJ1c3QgMCBweCBob29nIGVuIGRlIGluZGljYXRvciB6aXQgZXIgYWwgaW4uIFpvbmRlciBkaXQgc3RlZWt0IGhpaiBib3ZlbiBkZSByYW5kXG4vLyB2YW4gaGV0IHNjaGVybSB1aXQuIFppZSBvb2sgZGUga2xpcC12YWxrdWlsIGluIENMQVVERS5tZC5cblxuLyogY29tcGlsZWQgZnJvbSBfcHVsbC1yZWZyZXNoLnNjc3MgKi9cbi5xZG5hcHJvLXB1bGwtcmVmcmVzaCB7XG4gICAgLS1wci1tYXgtcHVsbDogOTZweDtcbiAgICAtLXByLWJnOiB0cmFuc3BhcmVudDtcbiAgICAtLXByLWNvbG9yOiAjNDA0OTlhO1xuICAgIC0tcHItbGFiZWwtY29sb3I6ICM2ZTcyODA7XG4gICAgLS1wci1sYWJlbC1zaXplOiAxM3B4O1xuICAgIC0tcHItc3Bpbm5lci1zaXplOiAyMnB4O1xuICAgIC0tcHItc3Bpbm5lci13aWR0aDogMnB4O1xuICAgIC0tcHItZGlzdGFuY2U6IDBweDtcbiAgICAtLXByLXByb2dyZXNzOiAwO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLyog4pqg77iPIEZ1bmN0aW9uZWVsLCBuZXQgYWxzIGRlIG92ZXJmbG93IGhpZXJib3Zlbi4gRGUgem9uZSBpcyBiaWpuYSBhbHRpamQgZWVuXG4gICAgICAga2luZCB2YW4gZGUgc2Nyb2xsZW5kZSBiYWssIGVuIGRpZSBpcyBvcCBkZSBtZWVzdGUgc2NoZXJtZW4gZWVuIEZMRVgtS09MT01cbiAgICAgICAoLnFkbmEtY29udGVudC0tcGFnZSkuIEVlbiBmbGV4LWl0ZW0gbWFnIHN0YW5kYWFyZCBrcmltcGVuLCBkdXMgZGUgaW5ob3VkXG4gICAgICAgZXJvbmRlciBkcnVrdCBkZSB6b25lIHRlcnVnIG5hYXIgMCBweDogaGV0IGdlYmFhciB3ZXJrdCBkYW4gd8OpbCDigJQgZGUga2xhc3NlblxuICAgICAgIGxvcGVuIG5ldGplcyBkb29yIHByLXB1bGxpbmcvcHItcmVhZHkvcHItYnVzeSDigJQgbWFhciBqZSB6aWV0IGVuIHZvZWx0IG5pZXRzLlxuICAgICAgIEdlbWV0ZW4gb3AgUHVsc2UgMjAuMDguMjAyNjogLS1wci1kaXN0YW5jZSBzdG9uZCBvcCA4MHB4LCBkZSBjb21wdXRlZCBoZWlnaHRcbiAgICAgICBvcCAwcHguIE9wIGhldCBzdGFydHNjaGVybSB2aWVsIGRpdCBub29pdCBvcCwgd2FudCAuaG9tZV92aWV3X19wYW5lbCBpcyBlZW5cbiAgICAgICBnZXdvbmUgYmxvay1jb250YWluZXIuICovXG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IHZhcigtLXByLWRpc3RhbmNlKTtcbiAgICBtYXgtaGVpZ2h0OiB2YXIoLS1wci1tYXgtcHVsbCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcHItYmcpO1xuICAgIC8qIFRlcnVndmVyZW4gYWxzIGRlIHZpbmdlciBsb3MgaXMuIFRpamRlbnMgaGV0IHRyZWtrZW4gc3RhYXQgZGUgb3ZlcmdhbmcgdWl0LFxuICAgICAgIGFuZGVycyBsb29wdCBkZSB6b25lIGFjaHRlciBkZSB2aW5nZXIgYWFuLiAqL1xuICAgIHRyYW5zaXRpb246IGhlaWdodCAyMjBtcyBlYXNlO1xufVxuXG4ucWRuYXByby1wdWxsLXJlZnJlc2gucHItcHVsbGluZyxcbi5xZG5hcHJvLXB1bGwtcmVmcmVzaC5wci1yZWFkeSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuLnFkbmFwcm8tcHVsbC1yZWZyZXNoIC5wci1pbmRpY2F0b3Ige1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogdmFyKC0tcHItc3Bpbm5lci1zaXplKTtcbiAgICBvcGFjaXR5OiB2YXIoLS1wci1wcm9ncmVzcyk7XG59XG5cbi5xZG5hcHJvLXB1bGwtcmVmcmVzaCAucHItc3Bpbm5lciB7XG4gICAgd2lkdGg6IHZhcigtLXByLXNwaW5uZXItc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1wci1zcGlubmVyLXNpemUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IHZhcigtLXByLXNwaW5uZXItd2lkdGgpIHNvbGlkIHZhcigtLXByLWNvbG9yKTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAvKiBNZWVkcmFhaWVuIG1ldCBkZSB2aW5nZXI6IMOpw6luIGhlbGUgc2xhZyBvdmVyIGRlIHZvbGxlZGlnZSB0cmVrYWZzdGFuZC4gKi9cbiAgICB0cmFuc2Zvcm06IHJvdGF0ZShjYWxjKHZhcigtLXByLXByb2dyZXNzKSAqIDM2MGRlZykpO1xufVxuXG4ucWRuYXByby1wdWxsLXJlZnJlc2gucHItcmVhZHkgLnByLXNwaW5uZXIge1xuICAgIC8qIFZlciBnZW5vZWc6IGhldCByb25kamUgc3RhYXQgc3RpbCBlbiB2b2wsIGFscyBiZXZlc3RpZ2luZyBkYXQgbG9zbGF0ZW4gd2Vya3QuICovXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tcHItY29sb3IpO1xufVxuXG4ucWRuYXByby1wdWxsLXJlZnJlc2gucHItYnVzeSAucHItaW5kaWNhdG9yIHtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4ucWRuYXByby1wdWxsLXJlZnJlc2gucHItYnVzeSAucHItc3Bpbm5lciB7XG4gICAgYW5pbWF0aW9uOiBxZG5hcHJvLXB1bGwtcmVmcmVzaC1zcGluIDkwMG1zIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLnFkbmFwcm8tcHVsbC1yZWZyZXNoIC5wci1sYWJlbCB7XG4gICAgY29sb3I6IHZhcigtLXByLWxhYmVsLWNvbG9yKTtcbiAgICBmb250LXNpemU6IHZhcigtLXByLWxhYmVsLXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbkBrZXlmcmFtZXMgcWRuYXByby1wdWxsLXJlZnJlc2gtc3BpbiB7XG4gICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG59XG5cbi8vIEJld2VnaW5nc3Zvb3JrZXVyIHZhbiBoZXQgdG9lc3RlbCByZXNwZWN0ZXJlbjogZ2VlbiBlaW5kZWxvb3MgZHJhYWllbmQgcm9uZGplXG4vLyB2b29yIHdpZSBkYXQgaGVlZnQgdWl0Z2V6ZXQuIERlIHRla3N0IGJsaWpmdCBkZSB0b2VzdGFuZCB2ZXJ0ZWxsZW4uXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLXB1bGwtcmVmcmVzaCB7IHRyYW5zaXRpb246IG5vbmU7IH1cbiAgICAucWRuYXByby1wdWxsLXJlZnJlc2ggLnByLXNwaW5uZXIgeyBhbmltYXRpb246IG5vbmU7IHRyYW5zZm9ybTogbm9uZTsgfVxufVxuIiwiLy8gcWRuYXByby10YWItYmFyICgrIHFkbmFwcm8tdGFiLWJhci1pdGVtKSDigJQgZnVsbC13aWR0aCB0b3AgdGFiIGJhcixcbi8vIHNsaWRpbmcgcGlsbCAvIHNlZ21lbnRlZCBjb250cm9sLiBGTEFUIENTUzsgY29sb3Vycy9yYWRpaS9zcGFjaW5nIGFsbCBmcm9tXG4vLyB0aGUgZGVzaWduLXRva2VuIDpyb290ICh2YXIoLS1jLSopIC8gLS1yLSogLyAtLXMtKikgc28gbGlnaHQvZGFyayB0aGVtaW5nXG4vLyAoc2VlIGRlc2lnbi10b2tlbnMuc2NzcyBbZGF0YS10aGVtZT1cImRhcmtcIl0gYmxvY2spIGFwcGxpZXMgYXV0b21hdGljYWxseS5cbi8vIFRoZSB0d28gU1VSRkFDRSBmaWxscyBhcmUgdGhlIG9uZSBleGNlcHRpb24g4oCUIHNlZSAtLXRiLXRyYWNrLWJnIC9cbi8vIC0tdGItcGlsbC1iZyBiZWxvdyBhbmQgdGhlIGRhcmsgYmxvY2sgYXQgdGhlIGJvdHRvbSBvZiB0aGlzIGZpbGUuXG4vL1xuLy8gTGF5b3V0OiBlcXVhbC13aWR0aCBmbGV4IHNlZ21lbnRzICgucWRuYXByby10YWItYmFyLWl0ZW0geyBmbGV4OiAxIH0pIOKAlFxuLy8gdGhlIHNsaWRpbmcgcGlsbCdzIHdpZHRoIG9ubHkgZXZlciBkZXBlbmRzIG9uIHRoZSBCQVIncyBvd24gd2lkdGgsIG5ldmVyIG9uXG4vLyBhIHRhYidzIGxhYmVsL2NvdW50IGNvbnRlbnQsIHNvIGEgbGl2ZSBjb3VudCBjaGFuZ2UgY2FuIG5ldmVyIGRlc3luYyBpdC5cbi8vXG4vLyBQaWxsIGFuaW1hdGlvbjogSlMgc2V0cyB0cmFuc2Zvcm0vd2lkdGggaW5saW5lOyB0aGUgdHJhbnNpdGlvbiBpdHNlbGYgbGl2ZXNcbi8vIGhlcmUgdmlhIC0tdGItcGlsbC1kdXJhdGlvbiBzbyBwcmVmZXJzLXJlZHVjZWQtbW90aW9uIGNhbiBjb2xsYXBzZSBpdCB0byAwXG4vLyB3aXRob3V0IGFueSBKUyBicmFuY2hpbmcuXG5cbi5xZG5hcHJvLXRhYi1iYXIge1xuICAtLXRiLXBpbGwtZHVyYXRpb246IDIyMG1zO1xuXG4gIC8vIFN1cmZhY2UgZmlsbHMsIGFsaWduZWQgMToxIHdpdGggcWRuYXByby1zZWdtZW50IFtLaW0gMzAuMDcuMjAyNl0uIFRoZSB0cmFja1xuICAvLyBpcyB0aGUgbmV1dHJhbCBncmV5IFN1cmZhY2UvU2Vjb25kYXJ5ICgjZjBmMWYyKSDigJQgaXQgdXNlZCB0byBiZSB0aGUgbGF2ZW5kZXJcbiAgLy8gLS1jLWJnLXN1YnRsZS1wdXJwbGUsIHdoaWNoIG1hZGUgdGhlIHNhbWUgY29udHJvbCByZWFkIGRpZmZlcmVudGx5IHBlciBwYWdlLlxuICAvLyBCb3RoIGdvIHRocm91Z2ggYSBsb2NhbCBjdXN0b20gcHJvcGVydHkgc28gdGhlIGRhcmsgYmxvY2sgYXQgdGhlIGJvdHRvbSBvbmx5XG4gIC8vIGhhcyB0byByZS1wb2ludCB0d28gdmFsdWVzIGluc3RlYWQgb2YgcmVwZWF0aW5nIHRoZSBydWxlcy5cbiAgLS10Yi10cmFjay1iZzogdmFyKC0tYy1ncmV5LTUwKTtcbiAgLS10Yi1waWxsLWJnOiB2YXIoLS1jLWJnLWNhcmQpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gYW5jaG9ycyB0aGUgYWJzb2x1dGVseS1wb3NpdGlvbmVkIHBpbGxcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IHZhcigtLXMtMSk7IC8vIH40cHggaW5uZXIgcGFkZGluZ1xuICBnYXA6IDJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tdGItdHJhY2stYmcpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTQpO1xuICBmb250LWZhbWlseTogdmFyKC0tZmYpO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucWRuYXByby10YWItYmFyIHsgLS10Yi1waWxsLWR1cmF0aW9uOiAwbXM7IH1cbn1cblxuLy8gU2xpZGluZyBwaWxsIOKAlCBjcmVhdGVkICsgcG9zaXRpb25lZCBieSBKUyAodHJhbnNmb3JtICsgd2lkdGgpLiBTaXRzIGJlaGluZFxuLy8gdGhlIGl0ZW1zICh6LWluZGV4IDApOyBpdGVtcyB0aGVtc2VsdmVzIGFyZSB0cmFuc3BhcmVudCBzbyB0aGUgcGlsbCBzaG93c1xuLy8gdGhyb3VnaCBhcyB0aGUgYWN0aXZlLXRhYiBiYWNrZ3JvdW5kLlxuLnFkbmFwcm8tdGFiLWJhcl9fcGlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiB2YXIoLS1zLTEpO1xuICBsZWZ0OiAwO1xuICBib3R0b206IHZhcigtLXMtMSk7XG4gIHdpZHRoOiAwOyAgICAgICAgICAvLyBzZXQgYnkgSlNcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyAvLyBzZXQgYnkgSlNcbiAgYmFja2dyb3VuZDogdmFyKC0tdGItcGlsbC1iZyk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMyk7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1jYXJkKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDA7XG4gIG9wYWNpdHk6IDA7IC8vIEpTIGZsaXBzIHRvIDEgb25jZSBhbiBhY3RpdmUgdGFiIGlzIG1lYXN1cmVkIChubyBmbGFzaCBhdCAwLDApXG4gIHRyYW5zaXRpb246XG4gICAgdHJhbnNmb3JtIHZhcigtLXRiLXBpbGwtZHVyYXRpb24pIGN1YmljLWJlemllcigwLjA1LCAwLjcsIDAuMSwgMS4wKSxcbiAgICB3aWR0aCAgICAgdmFyKC0tdGItcGlsbC1kdXJhdGlvbikgY3ViaWMtYmV6aWVyKDAuMDUsIDAuNywgMC4xLCAxLjApLFxuICAgIG9wYWNpdHkgMTIwbXMgZWFzZTtcbn1cblxuLnFkbmFwcm8tdGFiLWJhci1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBzdGFja3MgYWJvdmUgdGhlIHBpbGxcbiAgei1pbmRleDogMTtcbiAgZmxleDogMSAxIDA7IC8vIGVxdWFsLXdpZHRoIHNlZ21lbnRzXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgbWluLWhlaWdodDogNDRweDsgLy8gdG91Y2ggdGFyZ2V0XG4gIHBhZGRpbmc6IDAgdmFyKC0tcy0yKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tci0zKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGNvbG9yIDE1MG1zIGVhc2U7XG59XG5cbi5xZG5hcHJvLXRhYi1iYXItaXRlbV9fbGFiZWwge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1tZWRpdW0pO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHRyYW5zaXRpb246IGNvbG9yIDE1MG1zIGVhc2UsIGZvbnQtd2VpZ2h0IDE1MG1zIGVhc2U7XG59XG5cbi8vIEFjdGl2ZSB0YWIg4oCUIGRlZXAgcHVycGxlLCBzZW1pYm9sZCBsYWJlbC4gVGhlIHBpbGwgYmVoaW5kIGl0IHN1cHBsaWVzIHRoZVxuLy8gd2hpdGUgZmlsbCArIHNoYWRvdzsgdGhpcyBvbmx5IHRvdWNoZXMgdGhlIGxhYmVsIGNvbG91ci93ZWlnaHQuXG4ucWRuYXByby10YWItYmFyLWl0ZW0uaXMtYWN0aXZlIC5xZG5hcHJvLXRhYi1iYXItaXRlbV9fbGFiZWwge1xuICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaSk7XG59XG5cbi8vIEluYWN0aXZlIGhvdmVyIOKAlCBhIGZhaW50IGxpZnQgc28gdGhlIGJhciByZWFkcyBhcyBpbnRlcmFjdGl2ZS5cbi5xZG5hcHJvLXRhYi1iYXItaXRlbTpub3QoLmlzLWFjdGl2ZSk6aG92ZXIgLnFkbmFwcm8tdGFiLWJhci1pdGVtX19sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSk7XG59XG5cbi5xZG5hcHJvLXRhYi1iYXItaXRlbTpmb2N1cy12aXNpYmxlIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLXJpbmcpLCAwIDAgMCA0cHggdmFyKC0tZm9jdXMtZ2xvdyk7XG59XG5cbi5xZG5hcHJvLXRhYi1iYXItaXRlbV9fYmFkZ2Uge1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLy8gRGFyayBtb2RlIOKAlCB0aGUgT05MWSBleHBsaWNpdCBvdmVycmlkZSB0aGlzIGNvbXBvbmVudCBuZWVkcy4gRXZlcnkgb3RoZXJcbi8vIHZhbHVlIGlzIGEgc2VtYW50aWMgdG9rZW4gdGhhdCBmbGlwcyBpdHNlbGYsIGJ1dCB0aGUgdHdvIHN1cmZhY2VzIGNhbm5vdCBiZTpcbi8vIHFkbmFwcm8tc2VnbWVudCBwdXRzIGEgREFSS0VSIHBpbGwgb24gYSBMSUdIVEVSIHRyYWNrIGluIGRhcmsgbW9kZSAoIzFlMjAyOFxuLy8gb24gIzJhMmQzNSksIHRoZSByZXZlcnNlIG9mIHRoZSBsaWdodCB0aGVtZS4gTGVhdmluZyB0aGUgcGlsbCBvblxuLy8gLS1jLWJnLWNhcmQgd291bGQgcmVzb2x2ZSBpdCB0byB0aGUgc2FtZSBncmV5IGFzIHRoZSB0cmFjayBhbmQgdGhlIHBpbGxcbi8vIHdvdWxkIGRpc2FwcGVhci4gTmVhcmVzdCB0b2tlbnMgdG8gc2VnbWVudCdzIGhhcmRjb2RlZCBoZXhlczogZ3JleS04MDBcbi8vICgjMmUzMDM2KSBmb3IgdGhlIHRyYWNrLCBncmV5LTkwMCAoIzE4MTgxYykgZm9yIHRoZSBwaWxsLlxuLy8gU2FtZSB0aHJlZSBzZWxlY3RvcnMgYXMgdGhlIGRlc2lnbi10b2tlbnMgZGFyayBibG9jaywgc28gaXQgdHJpZ2dlcnMgb25cbi8vIFtkYXRhLXRoZW1lLWRhcmtdICh0YXNrbGlzdCksIFtkYXRhLXRoZW1lPVwiZGFya1wiXSBhbmQgYm9keVtkYXRhLXRoZW1lPVwiZGFya1wiXS5cbltkYXRhLXRoZW1lLWRhcmtdIC5xZG5hcHJvLXRhYi1iYXIsXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tdGFiLWJhcixcbmJvZHlbZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tdGFiLWJhciB7XG4gIC0tdGItdHJhY2stYmc6IHZhcigtLWMtZ3JleS04MDApO1xuICAtLXRiLXBpbGwtYmc6IHZhcigtLWMtZ3JleS05MDApO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1hcHAtaGVhZGVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBHZW5lcmljIGFwcCBoZWFkZXIgc2hlbGwgZm9yIHRoZSBRRE5BIFBXQSAocmVwbGFjZXMgcGVyLXNjcmVlbiBhZC1ob2Ncbi8vICBoZWFkZXJzLCBlLmcuIHRoZSBhZ2VuZGEgaGVhZGVyIGluIEQtYWdlbmRhLmh0bWwg4oCUIHRoYXQgdmlldyBpcyB0aGVcbi8vICBkZXNpZ24gcmVmZXJlbmNlLCBub3QgYSBkZXBlbmRlbmN5KS5cbi8vXG4vLyAgVGFwIHRhcmdldCA6IDQ0cHggbWluaW11bSAocWRuYXByby1pY29uLWJ0biBzaXplPVwidG91Y2hcIiksIEFwcGxlIEhJRy5cbi8vICBTYWZlIGFyZWEgIDogcGFkZGluZy10b3A6IHZhcigtLXFkbmEtaW5zZXQtdG9wLCBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCkpIOKAlCBhbHdheXNcbi8vICAgICAgICAgICAgICAgb24sIHNvIGEgc3RpY2t5IGhlYWRlciBhdCB0b3A6MCByZXNwZWN0cyB0aGUgbm90Y2ggYXV0b21hdGljYWxseS5cbi8vICAgICAgICAgICAgICAgQW5kcm9pZCBsZXZlcnQgZGUgZWNodGUgd2FhcmRlIHZpYSBkZSBwbHVnaW4gcWRuYS1pbnNldHM7IGlPUyBnZWJydWlrdFxuLy8gICAgICAgICAgICAgICB6aWpuIGVpZ2VuIGVudigpLiBaaWUgZGUgcmVnZWwgemVsZiB2b29yIGhldCB3YWFyb20uXG4vL1xuLy8gIFRva2VucyBjb25zdW1lZCAoZnJvbSBkZXNpZ24tdG9rZW5zL19kZXNpZ24tdG9rZW5zLnNjc3MpLCB2aWEgdGhlXG4vLyAgY29tcG9uZW50J3Mgb3duIC0tcWFoLSogY3VzdG9tIHByb3BlcnRpZXMgc28gYSBxdWVzdGlvbm5haXJlIHRoZW1lIGNhblxuLy8gIHJlY29sb3VyIHRoZSBoZWFkZXIgd2l0aG91dCBmb3JraW5nIGl0OlxuLy8gICAgLS1jLWJnLWNhcmQgICAgICAgLS1xYWgtYmcgZGVmYXVsdFxuLy8gICAgLS1jLXRleHQtaGVhZGluZyAgLS1xYWgtZmcgZGVmYXVsdCAodGl0bGUgKyBiYWNrIGljb24pXG4vLyAgICAtLWMtdGV4dC1tdXRlZCAgICAtLXFhaC1zdWJ0aXRsZS1jb2xvciBkZWZhdWx0XG4vLyAgICAtLWMtYm9yZGVyLXNvZnQgICAtLXFhaC1ib3JkZXItY29sb3IgZGVmYXVsdFxuLy9cbi8vICBtb2RlPVwic2VsZWN0aW9uXCIga2VlcHMgYSBXSElURSBzdXJmYWNlIGFuZCBjYXJyaWVzIHRoZSBwdXJwbGUgb25seSBpbiB0aGVcbi8vICBib3JkZXIsIHRoZSBjb3VudCBhbmQgdGhlIGFjdGlvbnMuIEl0IHVzZWQgdG8gZmlsbCB0aGUgd2hvbGUgYmFyIHdpdGggdGhlXG4vLyAgbGlicmFyeSdzIFwic2VsZWN0ZWRcIiBwdXJwbGUgKCNlNmU5ZmYsIHRoZSBzYW1lIHBhaXIgYXNcbi8vICBxZG5hcHJvLWluYm94LW1lc3NhZ2UncyAuaW5ib3gtbWVzc2FnZS1zZWxlY3RlZCksIGJ1dCB0aGF0IG1hZGUgdGhlIGhlYWRlclxuLy8gIGZpZ2h0IHRoZSBzZWxlY3RlZCBST1dTIHJpZ2h0IHVuZGVyIGl0OiB5b3UgY291bGQgbm8gbG9uZ2VyIHNlZSB3aGVyZSB0aGVcbi8vICBoZWFkZXIgZW5kZWQgYW5kIHRoZSBzZWxlY3Rpb24gYmVnYW4uIFtLaW0gMjkuMDcuMjAyNiwgbmEgZWVuIHRvZXN0ZWx0ZXN0XVxuLy8gICAgLS1jLWJnLWNhcmQgICAgICAgLS1xYWgtYmcgaW4gc2VsZWN0aW9uIG1vZGUgKHdhcyAtLWMtcHVycGxlLTUwKVxuLy8gICAgLS1jLWJyYW5kLXB1cnBsZSAgLS1xYWgtc2VsZWN0aW9uLWZnIG92ZXJyaWRlIChjb3VudCArIGFjdGlvbnMgb25seTtcbi8vICAgICAgICAgICAgICAgICAgICAgIHRoZSBib3JkZXIgdXNlcyB0aGUgc3RhbmRhcmQgLS1jLWJvcmRlci1zb2Z0IGFnYWluXG4vLyAgICAgICAgICAgICAgICAgICAgICBzaW5jZSAzMS4wNy4yMDI2LCBLaW06IGdyaWpzIGluIHBsYWF0cyB2YW4gcGFhcnMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnFkbmFwcm8tYXBwLWhlYWRlciB7XG4gICAgLS1xYWgtYmc6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgLS1xYWgtZmc6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZjRkKTtcbiAgICAtLXFhaC1zdWJ0aXRsZS1jb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICAtLXFhaC1ib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyLXNvZnQsIHJnYmEoMCwgMCwgMCwgMC4wNykpO1xuICAgIC0tcWFoLWhlaWdodDogNTZweDtcbiAgICAtLXFhaC1zZWxlY3Rpb24tZmc6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWFoLWJnKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tcWFoLWJvcmRlci1jb2xvcik7XG4gICAgLy8gSW56ZXQgdm9vciBkZSBzdGF0dXNiYWxrLiBbMTAuMDguMjAyNiwgSmFuXVxuICAgIC8vIOKaoO+4jyBHRUVOIGthbGUgZW52KCkgZW4gR0VFTiB2YXN0ZSBrYXAg4oCUIGJlaWRlIHppam4gaGllciBmb3V0IGdlYmxla2VuOlxuICAgIC8vICAgwrcgS2FsZSBgZW52KHNhZmUtYXJlYS1pbnNldC10b3ApYCBvcCBBbmRyb2lkIGdhZiA1MSBwdW50ZW4gdGVyd2lqbCBkZSBzdGF0dXNiYWxrXG4gICAgLy8gICAgIDI4IGxlZWs6IDYwIGZ5c2lla2UgcGl4ZWxzIGxlZ2UgcnVpbXRlIGJvdmVuIGVsa2UgdGl0ZWwuXG4gICAgLy8gICDCtyBEZSBrYXAgYG1pbihlbnYoLi4uKSwgMjhweClgIGRpZSBkYWFyb3Agdm9sZ2RlIGxvc3RlIGRhdCBvcCB2b29yIEFuZHJvaWQgbWFhclxuICAgIC8vICAgICB3YXMgRk9VVCBWT09SIGlPUzogZGFhciBpcyBkaWUgaW56ZXQgNDcrIHB1bnRlbiwgZHVzIGthcHRlIGhpaiBpbmhvdWQgb25kZXIgZGVcbiAgICAvLyAgICAgaW5rZXBpbmcuIEXDqW4gZGFnIGluIGRlIGNvZGViYXNlIGdld2Vlc3QuXG4gICAgLy8gTnUgZGUgRUNIVEUgd2FhcmRlLCBwZXIgdG9lc3RlbCwgdWl0IGRlIEFuZHJvaWQtbGFhZzogZGUgcGx1Z2luIGBxZG5hLWluc2V0c2BcbiAgICAvLyAocWRuYXYyX2FwcC9sb2NhbC1wbHVnaW5zL3FkbmEtaW5zZXRzKSB6ZXQgaGVtIGFscyBDU1MtdmFyaWFiZWxlIG9wIDxodG1sPi5cbiAgICAvLyBHZW1ldGVuOiBTYW1zdW5nIEEzNiAzMyBwdW50ZW4sIGVtdWxhdG9yIDUwIChkaWUgbWVsZHQgc3RhdHVzYmFsayA9IHVpdHNwYXJpbmcpLlxuICAgIC8vIOKaoO+4jyBEZSB2YXJpYWJlbGUgYmVzdGFhdCBBTExFRU4gb3AgQW5kcm9pZCwgZHVzIGlPUyB2YWx0IHRlcnVnIG9wIHppam4gZWlnZW4gZW52KClcbiAgICAvLyDigJQgb25nZWthcHQsIGR1cyBkYWFyIGlzIGRlIGlua2VwaW5nIHdlZXIgY29ycmVjdCBnZXJlc3BlY3RlZXJkLlxuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1xZG5hLWluc2V0LXRvcCwgZW52KHNhZmUtYXJlYS1pbnNldC10b3AsIDBweCkpO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxufVxuXG4vLyBUcmFuc3BhcmVudCB2YXJpYW50IOKAlCBzZWFtbGVzcywgZm9yIGEgc2NyZWVuIHRoYXQgcGFpbnRzIGl0cyBvd25cbi8vIGJhY2tncm91bmQgYmVoaW5kIHRoZSBoZWFkZXIgKGUuZy4gYSBjb2xvdXJlZCBxdWVzdGlvbm5haXJlIGNhbnZhcykuXG4ucWRuYXByby1hcHAtaGVhZGVyLnFhaC12YXJpYW50LXRyYW5zcGFyZW50IHtcbiAgICAtLXFhaC1iZzogdHJhbnNwYXJlbnQ7XG4gICAgLS1xYWgtYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnFhaC1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4taGVpZ2h0OiB2YXIoLS1xYWgtaGVpZ2h0KTtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA0cHggMTJweDtcbn1cblxuLnFhaC1iYWNrIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcblxuICAgICZbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLy8gV3JhcHMgLnFhaC10aXRsZXMgKyB0aGUgb3B0aW9uYWwgYXZhdGFyIHNsb3QgYXMgT05FIGJsb2NrLCBzbyB0aGUgdHdvIGNhblxuLy8gYmUgY2VudGVyZWQgdG9nZXRoZXIgdW5kZXIgYWxpZ249XCJjZW50ZXJcIi4gSW4gYWxpZ249XCJzdGFydFwiIChkZWZhdWx0KVxuLy8gdGhpcyB3cmFwcGVyIGlzIGluZXJ0OiBpdCBqdXN0IGZvcndhcmRzIHRoZSByb3cncyBmbGV4aWJsZSBzcGFjZSB0b1xuLy8gLnFhaC10aXRsZXMgZXhhY3RseSBsaWtlIC5xYWgtdGl0bGVzIHVzZWQgdG8gY2xhaW0gZGlyZWN0bHksIHNvIHdyYXBwaW5nXG4vLyBpdCBoZXJlIGRvZXMgbm90IGNoYW5nZSB0aGUgZGVmYXVsdCBsYXlvdXQgYXQgYWxsLlxuLnFhaC10aXRsZS1jbHVzdGVyIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5xYWgtdGl0bGVzIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8vIEF2YXRhciBzbG90IOKAlCBzYW1lIGVtcHR5LWNvbGxhcHNlIGNvbnRyYWN0IGFzIC5xYWgtYWN0aW9ucyAvIC5xYWgtbm92YS5cbi5xYWgtYXZhdGFyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICY6ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi8vIEZvbnQtd2VpZ2h0IDUwMCAobWVkaXVtKSwgbm90IDYwMCDigJQgS2ltOiB0aGUgdGl0bGUgZmVsdCB0b28gaGVhdnkgbmV4dCB0b1xuLy8gdGhlIHJlc3Qgb2YgdGhlIGxpYnJhcnkuIENyb3NzLWNoZWNrZWQgYWdhaW5zdCBldmVyeSBwbGFpbi1yb3cvbGFiZWxcbi8vIGNvbXBvbmVudCAocWRuYXByby11bml0LWNhcmQgbGlzdC1jb21wYWN0IDE0LzUwMCwgcWRuYXByby1ib3R0b20tbmF2IGxhYmVsXG4vLyAxMC81MDAsIHFkbmFwcm8tZXZlbnQtY2FyZCBzaXplPVwic21hbGxcIiB0aXRsZSAxMi81MDAg4oCUIGRpYWxsZWQgYmFjayBmcm9tXG4vLyA2MDAgb24gMTYuMDcuMjAyNiBmb3IgdGhlIGV4YWN0IHNhbWUgXCJ0b28gaGVhdnlcIiBjb21wbGFpbnQpIOKAlCA2MDAvNzAwIG9ubHlcbi8vIHNob3dzIHVwIG9uIGNhcmQtZW1waGFzaXMgY29udGV4dHMgKGV2ZW50LWNhcmQgZGVmYXVsdCwgdW5pdC1jYXJkXG4vLyBsaXN0LWxhcmdlKSBvciB0aGUgdHlwb2dyYXBoeSBtb2R1bGUncyBIZWFkaW5nIG1peGlucywgbm90IG9uIGEgcGFnZVxuLy8gaGVhZGVyIHRpdGxlIHNpdHRpbmcgZGlyZWN0bHkgYWJvdmUgbGlzdCByb3dzLiBTZWUgX2xpc3Qtcm93LnNjc3MgaGVhZGVyXG4vLyBjb21tZW50IGZvciB0aGUgZnVsbCBjcm9zcy1jb21wb25lbnQgZXZpZGVuY2UuIFtLaW0gMjAyNi0wNy0yMV1cbi5xYWgtdGl0bGUge1xuICAgIGNvbG9yOiB2YXIoLS1xYWgtZmcpO1xuICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAmOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG4ucWFoLXN1YnRpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tcWFoLXN1YnRpdGxlLWNvbG9yKTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgJjplbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLy8gTGVhZGluZy1zbG90OiBrbm9wcGVuIGhlbGVtYWFsIGxpbmtzLCBuYSBkZSB0ZXJ1Zy9hbm51bGVlci1rbm9wIGVuIHZvb3IgZGUgdGl0ZWwuXG4vLyBFcmJpaiBvcCAzMS4wNy4yMDI2IHZvb3IgaGV0IFBXQS1wb3N0dmFrOiB2YWx0IGRlIG1hcHBlbi16aWpiYWxrIHdlZyBvbWRhdCBoZXQgc2NoZXJtIHRlXG4vLyBzbWFsIGlzLCBkYW4gaG9vcnQgZGFhciBlZW4ga25vcCBkaWUgZGllIG1hcHBlbiBhbHMgcGFuZWVsIG9wZW50LCBlbiBkYXQgaXMgb29rIGRlIHBsZWtcbi8vIHdhYXIgZGUgYmFja29mZmljZS1pbmJveCBoZW0gaGVlZnQuXG4vLyBMZWVnID0gZ2VlbiBydWltdGUsIG5ldCBhbHMgZWxrZSBhbmRlcmUgc2xvdCwgZHVzIGdlZW4gZW5rZWwgYmVzdGFhbmQgc2NoZXJtIG1lcmt0IGhpZXJcbi8vIGlldHMgdmFuLlxuLy8gYGhpZGRlbmAgTU9FVCBoZXQgd2lubmVuIHZhbiBkZSBlaWdlbiBkaXNwbGF5LXJlZ2VsIHZhbiBlZW4gZ2VzbG90dGUga25vcCwgZW4gZGF0IGRvZXRcbi8vIGhldCBuaWV0IHZhbnplbGY6IGBoaWRkZW5gIGtyaWpndCB6aWpuIGBkaXNwbGF5OiBub25lYCBhbGxlZW4gdWl0IGRlIHN0eWxlc2hlZXQgdmFuIGRlXG4vLyBCUk9XU0VSLCBlbiBlbGtlIGVpZ2VuIGRpc3BsYXktcmVnZWwgdmVyc2xhYXQgZGllLiBFZW4gcWRuYXByby1pY29uLWJ0biBzdGFhdCBvcFxuLy8gYGRpc3BsYXk6IGlubGluZS1mbGV4YCBlbiBlZW4gcWRuYXByby1pbnB1dCBvcCBgZGlzcGxheTogYmxvY2tgLCBkdXMgem9uZGVyIGRlemUgcmVnZWxcbi8vIGJsaWpmdCBlZW4gdmVyYm9yZ2VuIGtub3AgZ2V3b29uIHN0YWFuLlxuLy9cbi8vIERpdCBpcyBuaWV1dyBzaW5kcyAzMS4wNy4yMDI2IGVuIGhldCBpcyBub2RpZyBnZXdvcmRlbiBkb29yIGVlbiBlY2h0ZSBmb3V0OiBoZXQgUFdBLXBvc3R2YWtcbi8vIGhhYWxkZSB6aWpuIGtub3BwZW4gbWV0IGVlbiB7eyNpZn19LWJsb2sgaW4gZW4gdWl0IGRlIERPTSwgZW4gb21kYXQgZGV6ZSBrb3Agc2xvdC1raW5kZXJlblxuLy8gVkVSUExBQVRTVCBsaWVwIFJhY3RpdmUgZGFhcm9wIHN0dWsgbWV0IFwiaW5zZXJ0QmVmb3JlIG9wIG51bGxcIiAoZm91dGNvZGUgNTMzMSwgZ2V2b25kZW4gZG9vclxuLy8gS2ltKS4gRGUgcmVwYXJhdGllIGlzIGRhdCBlZW4gZ2VicnVpa2VyIHppam4ga25vcHBlbiBsYWF0IHN0YWFuIGVuIGFsbGVlbiBgaGlkZGVuYCB6ZXQsIGVuXG4vLyBkYW4gbW9ldCBkYXQgYXR0cmlidXV0IGhpZXIgb29rIGVjaHQgd2Vya2VuLlxuLy9cbi8vIFNwZWNpZmljaXRlaXQ6ICgwLDIsMCkgdGVnZW4gZGUgKDAsMSwwKSB2YW4gLnFkbmFwcm8taWNvbi1idG4sIGR1cyBkZXplIHdpbnQgem9uZGVyXG4vLyAhaW1wb3J0YW50LiBOYWdlcmVrZW5kLCBuaWV0IGFhbmdlbm9tZW4uXG4ucWFoLWxlYWRpbmcgW2hpZGRlbl0sXG4ucWFoLXNlYXJjaCBbaGlkZGVuXSxcbi5xYWgtYWN0aW9ucyBbaGlkZGVuXSxcbi5xYWgtbm92YSBbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnFhaC1sZWFkaW5nIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG5cbiAgICAmOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG4vLyBTZWFyY2ggc2xvdDogc2l0cyBiZXR3ZWVuIHRoZSB0aXRsZSBjbHVzdGVyIGFuZCAucWFoLWFjdGlvbnMsIGhvcml6b250YWxseVxuLy8gY2VudGVyZWQgbGlrZSBhIEdtYWlsL01hZ25pZmljIHNlYXJjaCBiYXIuIEdyb3dzIHdpdGggdGhlIHJvdydzIGxlZnRvdmVyXG4vLyBzcGFjZSAoZmxleDogMSAxIGF1dG8pIGJ1dCBzdG9wcyBhdCBtYXgtd2lkdGggc28gaXQgbmV2ZXIgc3ByYXdscyBlZGdlLXRvLVxuLy8gZWRnZSBvbiBhIHdpZGUgdGFibGV0L2Rlc2t0b3AgaGVhZGVyIChLaW06IFwiaGlqIHN0b3B0IG9wIGVlbiBnZWdldmVuXG4vLyBtb21lbnQgbWV0IGdyb2VpZW5cIikuIFNhbWUgZW1wdHktY29sbGFwc2UgY29udHJhY3QgYXMgLnFhaC1hY3Rpb25zLy5xYWgtXG4vLyBub3ZhLy5xYWgtYXZhdGFyIGJlbG93OiBhbiB1bnVzZWQgc2xvdCBsZWF2ZXMgbm8gZ2FwLCBzbyBldmVyeSBleGlzdGluZ1xuLy8gUFdBIHNjcmVlbiB0aGF0IGRvZXNuJ3QgdXNlIHRoaXMgc2xvdCBpcyB1bmFmZmVjdGVkLiBNZWFudCBmb3IgdGFibGV0IGFuZFxuLy8gd2lkZXIgKHNlZSB0aGUgY29tcG9uZW50IGRvY2Jsb2NrKTogdGhlIFBXQSBkb2VzIG5vdCBzbG90IGFueXRoaW5nIGluXG4vLyBoZXJlIG9uIHBob25lIHdpZHRocywgc28gdGhlcmUgaXMgbm8gZGVkaWNhdGVkIG1vYmlsZSBoaWRlLXJ1bGU7IHRoYXRcbi8vIGNob2ljZSBsaXZlcyBvbiB0aGUgY2FsbGluZyBzY3JlZW4sIG5vdCBoZXJlLiBbS2ltIDMxLjA3LjIwMjZdXG4ucWFoLXNlYXJjaCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1heC13aWR0aDogNTIwcHg7XG5cbiAgICAvLyBab2RyYSBkZSByaWogQlJFREVSIGlzIGRhbiBkZSB0aXRlbCBwbHVzIDUyMHB4IHBsdXMgZGUga25vcHBlbiwgaXMgZXIgcnVpbXRlIG92ZXIsXG4gICAgLy8gZW4gZGllIGhvb3J0IGFhbiBCRUlERSBrYW50ZW4gdGUgdmFsbGVuLiBab25kZXIgZGV6ZSB0d2VlIGF1dG8tbWFyZ2VzIHZhbHQgaGlqXG4gICAgLy8gaGVsZW1hYWwgcmVjaHRzIHZhbiBkZSBiYWxrIGVuIHN0YWF0IGRlIGJhbGsgZHVzIGxpbmtzIHZhbiBoZXQgbWlkZGVuLiBLaW0gdnJvZWcgb21cbiAgICAvLyBlZW4gZ2VjZW50cmVlcmRlIGJhbGsgKDMxLjA3LjIwMjYpLlxuICAgIC8vXG4gICAgLy8gV2F0IGRpdCBCRVdVU1QgbmlldCBkb2V0OiBkZSBiYWxrIGV4YWN0IGluIGhldCBtaWRkZW4gdmFuIGhldCBWRU5TVEVSIHpldHRlbi4gRGF0XG4gICAgLy8gem91IGJldGVrZW5lbiBkYXQgaGlqIHVpdCBkZSBmbG93IG1vZXQgKHpvYWxzIGRlIHRpdGVsIG9uZGVyIGFsaWduPVwiY2VudGVyXCIgZG9ldCBtZXRcbiAgICAvLyBwb3NpdGlvbjogYWJzb2x1dGUpLCBlbiBkYW4ga2FuIGhpaiBvcCBlZW4gc21hbGxlIHRhYmxldCBvdmVyIGRlIHRpdGVsIG9mIG92ZXIgZGVcbiAgICAvLyBrbm9wcGVuIGhlZW4gdmFsbGVuLiBEaXQgY2VudHJlZXJ0IGhlbSBpbiBkZSBydWltdGUgdHVzc2VuIGRlIHRpdGVsIGVuIGRlIGtub3BwZW4sIGVuXG4gICAgLy8gZGllIGthbiBwZXIgZGVmaW5pdGllIG5pZXQgb3ZlcmxhcHBlbi5cbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAmOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgLy8gV2hhdGV2ZXIgZ2V0cyBzbG90dGVkIGluIChhIHFkbmFwcm8taW5wdXQpIGZpbGxzIHRoZSBzbG90J3Mgb3duIGdyb3duXG4gICAgLy8gd2lkdGggaW5zdGVhZCBvZiBzaXR0aW5nIGF0IGl0cyBvd24gaW50cmluc2ljIHNpemUgaW5zaWRlIGEgY2VudGVyZWRcbiAgICAvLyBib3ggLSBvdGhlcndpc2UgXCJmbGV4OiAxIDEgYXV0b1wiIG9uIC5xYWgtc2VhcmNoIHdvdWxkIGdyb3cgdGhlIGVtcHR5XG4gICAgLy8gc3BhY2UgYXJvdW5kIGEgc21hbGwgaW5wdXQgcmF0aGVyIHRoYW4gdGhlIGlucHV0IGl0c2VsZi5cbiAgICA+ICoge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi8vIGFsaWduPVwic3RhcnRcIjogLnFhaC1zZWFyY2ggaXMgYSBub3JtYWwgZmxleCBzaWJsaW5nIG9mIC5xYWgtdGl0bGUtY2x1c3Rlcixcbi8vIHNvIHdpdGhvdXQgdGhpcyBydWxlIGJvdGggd291bGQgYmUgZmxleDogMSAxIGF1dG8gYW5kIHNwbGl0IHRoZSByb3cnc1xuLy8gZ3Jvd3RoIDEtZm9yLTEgdGhlIG1vbWVudCBhIHNjcmVlbiBzbG90cyBzb21ldGhpbmcgaW50byAucWFoLXNlYXJjaCAtIHRoZVxuLy8gdGl0bGUgd291bGQgc2lsZW50bHkgbG9zZSBoYWxmIGl0cyB3aWR0aC4gVGhlIHRpdGxlJ3MgUE9TSVRJT04gbmV2ZXJcbi8vIGNoYW5nZXMgZWl0aGVyIHdheSAoaXQgc3RpbGwgc2l0cyBkaXJlY3RseSBhZnRlciB0aGUgYmFjayBidXR0b24sIHRoaXMgaXNcbi8vIGEgd2lkdGggZmxleGJveCBzcGxpdCwgbm90IGEgcmVmbG93IHRoYXQgbW92ZXMgaXQpIC0gYnV0IEtpbSdzIGFzayB3YXNcbi8vIHRoYXQgdGhlIHRpdGxlIGRvZXMgbm90IHJlYWN0IGF0IGFsbCB0byBhIHNlYXJjaCBiYXIgYXBwZWFyaW5nLCBzbyBnaXZlXG4vLyBhbGwgb2YgdGhlIHJvdydzIGdyb3d0aCB0byBzZWFyY2ggaW5zdGVhZCBvbmNlIGl0IGlzIGFjdHVhbGx5IHBvcHVsYXRlZC5cbi8vIGFsaWduPVwiY2VudGVyXCIgaXMgdW50b3VjaGVkIGJ5IHRoaXM6IC5xYWgtdGl0bGUtY2x1c3RlciBpcyB0YWtlbiBvdXQgb2Zcbi8vIGZsb3cgZW50aXJlbHkgdmlhIHBvc2l0aW9uOmFic29sdXRlIChzZWUgdGhlIGFsaWduPVwiY2VudGVyXCIgc2VjdGlvblxuLy8gYmVsb3cpLCBzbyBmbGV4LWdyb3cgd2FzIG5ldmVyIGRvaW5nIGFueXRoaW5nIGZvciBpdCB0aGVyZSB0byBiZWdpbiB3aXRoLlxuLnFhaC1yb3c6aGFzKC5xYWgtc2VhcmNoOm5vdCg6ZW1wdHkpKSAucWFoLXRpdGxlLWNsdXN0ZXIge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xufVxuXG4vLyDilIDilIAgWm9la2JhbGsgZWNodCBnZWNlbnRyZWVyZCBvcCBkZSBrb3AsIHZhbmFmIDEwMjRweCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEtsdXMgNGEgKGJlc2x1aXQgNzYsIFNDT1BFLXB3YS1pbmJveC5tZCk6IGhpZXJib3ZlbiBzdGFhdCAucWFoLXNlYXJjaCBub2cgaW5cbi8vIGRlIGZsb3csIG1ldCBhdXRvLW1hcmdlcy4gRGF0IGNlbnRyZWVydCBkZSBiYWxrIGluIGRlIFJVSU1URSB0dXNzZW4gZGVcbi8vIHRpdGVsLWNsdXN0ZXIgZW4gZGUgYWN0aWVzLCBuaWV0IG9wIGRlIGtvcCB6ZWxmOiB6b2RyYSBkaWUgdHdlZSBrYW50ZW5cbi8vIG9uZ2VsaWprIHdlZ2VuIChiaWp2b29yYmVlbGQgZWVuIGxlYWRpbmcta25vcCBsaW5rcywgZ2VlbiBOb3ZhIHJlY2h0cylcbi8vIHN0YWF0IGRlIGJhbGsgbWVldGJhYXIgbmFhc3QgaGV0IGVjaHRlIG1pZGRlbi4gRGF0IGthbiBhbGxlZW4ga2xvcHBlbiBkb29yXG4vLyBkZSBiYWxrIHVpdCBkZSBmbG93IHRlIGhhbGVuIGVuIHBvc2l0aWUgdGUgZ2V2ZW4gbG9zIHZhbiB6aWpuIGJ1cmVuLCBlbiBkYXRcbi8vIG1hZyBwYXMgdmFuYWYgdGFibGV0LWJyZWVkLWVuLWdyb3RlciAoMTAyNHB4KSwgZGV6ZWxmZGUgb25kZXJncmVucyBhbHMgZGVcbi8vIHJlc3QgdmFuIGRpdCBzbG90IGFsIGdlYnJ1aWt0ICh6aWUgZGUgc2xvdC1jb21tZW50IGluIGRlIEpTKS5cbi8vXG4vLyBUZWNobmllazogLnFhaC1zZWFyY2gga3Jpamd0IGVlbiBzeW1tZXRyaXNjaGUgbGlua3MvcmVjaHRzLWluemV0XG4vLyAoLS1xYWgtc2VhcmNoLWd1dHRlcikgcm9uZCBoZXQgbWlkZGVuIHZhbiBkZSBSSUogKG5pZXQgdmFuIGRlIHJlc3RlcmVuZGVcbi8vIGZsZXgtcnVpbXRlKSwgZW4gYmVob3VkdCB6aWpuIGJlc3RhYW5kZSBtYXgtd2lkdGggKyBtYXJnaW46YXV0byB2YW5cbi8vIGhpZXJib3Zlbi4gQmlqIGVlbiBhdXRvLWJyZWVkdGUgYm94IG1ldCB6b3dlbCBsZWZ0IGFscyByaWdodCBnZXpldCwga3JpbXB0XG4vLyBkZSBicm93c2VyIGRlIGJveCB0b3QgbWF4LXdpZHRoIGVuIHZlcmRlZWx0IGRlIHR3ZWUgYXV0by1tYXJnZXMgZGUgcmVzdFxuLy8gZ2VsaWprIC0gZGV6ZWxmZGUgY2VudHJlZXJ0cnVjLCBudSB0b2VnZXBhc3Qgb3AgZWVuIGFic29sdXV0IGVsZW1lbnQgaW5cbi8vIHBsYWF0cyB2YW4gZWVuIGZsZXgtaXRlbS4gSGV0IGtpbmQgZXJpbiAoYD4gKmAgaGllcmJvdmVuKSBibGlqZnQgd2lkdGg6MTAwJVxuLy8gdmFuIERJRSBnZWtyb21wZW4gYm94LCBkdXMgZGUgYmFsayB6ZWxmIGlzIG5vb2l0IGJyZWRlciBkYW4gbWF4LXdpZHRoIGVuXG4vLyB6aWpuIGtsaWtiYXJlIHZsYWsgaXMgZXhhY3QgemlqbiB6aWNodGJhcmUgdmxhayAtIGdlZW4gb256aWNodGJhcmVcbi8vIGhpdC1ib3ggZGllIGVybmFhc3QgbGlndCB0ZSB3YWNodGVuLlxuLy9cbi8vIFRpdGVsLWNsdXN0ZXIga3Jpamd0IGhpZXIgZWVuIG1heC13aWR0aDogem9kcmEgZGUgYmFsayBuaWV0IG1lZXIgbWVlYnVpZ3Rcbi8vIG1ldCBkZSByZXN0IHZhbiBkZSByaWosIGdyb2VpdCBkZSB0aXRlbC1jbHVzdGVyIChmbGV4OiAwIDEgYXV0byBoaWVyYm92ZW4pXG4vLyBvbmdlcmVtZCBkb29yIHRvdCB6aWpuIGVpZ2VuIHRla3N0YnJlZWR0ZSAtIGRhdCBrb24gZWVyc3QgbmlldCBvdmVyIGRlIGJhbGtcbi8vIGhlZW4gbG9wZW4gb21kYXQgZGUgYmFsayBsZXR0ZXJsaWprIGRlIHJ1aW10ZSBlcm5hYXN0IG9wZWlzdGUuIFpvbmRlciBlZW5cbi8vIGVpZ2VuIHBsYWZvbmQga2FuIGVlbiBsYW5nZSB0aXRlbCBudSB3w6lsIG9uZGVyIGRlIGdlY2VudHJlZXJkZSBiYWxrXG4vLyBkb29ybG9wZW4uIERlIHdhYXJkZW4gemlqbiBlZW4gdHVuYWJsZSB2ZWlsaWdoZWlkc21hcmdlLCBuZXQgYWxzXG4vLyAtLXFhaC1jZW50ZXItZ3V0dGVyIGJpaiBhbGlnbj1cImNlbnRlclwiIGhpZXJib3ZlbiAtIGdlZW4gbWV0aW5nIHZhbiBkZVxuLy8gd2Vya2VsaWprZSBpbmhvdWQgKGxlYWRpbmcta25vcCBPRiB0ZXJ1Zy1rbm9wIGxpbmtzLCBhY3RpZXMgKyBldmVudHVlZWxcbi8vIE5vdmEgcmVjaHRzKSwgbWFhciBydWltIGdlbm9lZyBvbSBkYXQgbm9vaXQgdGUgcmFrZW47IGVlbiBsYW5nZSB0aXRlbFxuLy8gZGVncmFkZWVydCBkYWFybmEgZ2V3b29uIHZpYSB6aWpuIGJlc3RhYW5kZSBlbGxpcHNpcy5cbi8vXG4vLyBBY3RpZXMvTm92YSBrcmVnZW4gaHVuIHJlY2h0ZXItcGxlayB2b29yaGVlbiBncmF0aXMgbWVlOiAucWFoLXNlYXJjaFxuLy8gKGZsZXg6IDEgMSBhdXRvKSBjb25zdW1lZXJkZSBhbGxlIHJlc3RlcmVuZGUgcnVpbXRlLCBkdXMgYWxsZXMgd2F0IGVybmFcbi8vIGt3YW0gc3RvbmQgdmFuemVsZiB0ZWdlbiBkZSByYW5kLiBab2RyYSBkZSBiYWxrIHVpdCBkZSBmbG93IHZlcmR3aWpudCBpcyBlclxuLy8gZ2VlbiBlbmtlbCBmbGV4LWl0ZW0gbWVlciBkYXQgZ3JvZWl0LCBkdXMgem9uZGVyIGRlemUgcmVnZWwgem91IGVyIGVlblxuLy8ga2FsZSBsZWVndGUgb250c3RhYW4gdHVzc2VuIHRpdGVsLWNsdXN0ZXIgZW4gYWN0aWVzIC0gbWFyZ2luLWxlZnQ6YXV0byBvcFxuLy8gZGUgZWVyc3RlIG5pZXQtbGVnZSB2YW4gZGUgdHdlZSAoOmVtcHR5IHZhbmd0IGRlIGFuZGVyZSBhbCBhZiwgemllIGRlXG4vLyBiZXN0YWFuZGUgcmVnZWwgaGllcmJvdmVuIGJpaiAucWFoLWFjdGlvbnMvLnFhaC1ub3ZhKSB6ZXQgemUgd2VlciB0ZXJ1Z1xuLy8gdGVnZW4gZGUgcmFuZC5cbi8vXG4vLyBBbGxlZW4gYWxpZ249XCJzdGFydFwiIChkZWZhdWx0KTogYWxpZ249XCJjZW50ZXJcIiBoYWFsdCBkZSB0aXRlbC1jbHVzdGVyIGFsXG4vLyBvcCB6aWpuIGVpZ2VuIG1hbmllciB1aXQgZGUgZmxvdyAoemllIGRpZSBzZWN0aWUgdmVyZGVyb3ApIGVuIGRlIGNvbWJpbmF0aWVcbi8vIHRpdGVsICsgYmFsayBvbmRlciBhbGlnbj1cImNlbnRlclwiIGlzIGV4cGxpY2lldCBuaWV0IGdlYnJ1aWt0L2dldGVzdCAoemllIGRlXG4vLyBzbG90LWNvbW1lbnQgaW4gZGUgSlMpIC0gZHVzIGRlemUgcmVnZWxzIHJha2VuIGRhdCBwYWQgYmV3dXN0IG5pZXQgYWFuLlxuLy8gW0tpbSAzMS4wNy4yMDI2XVxuLnFkbmFwcm8tYXBwLWhlYWRlci5xYWgtYWxpZ24tc3RhcnQge1xuICAgIC0tcWFoLXNlYXJjaC1ndXR0ZXI6IDMycHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAucWRuYXByby1hcHAtaGVhZGVyLnFhaC1hbGlnbi1zdGFydCAucWFoLXJvdzpoYXMoLnFhaC1zZWFyY2g6bm90KDplbXB0eSkpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC5xYWgtc2VhcmNoIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogdmFyKC0tcWFoLXNlYXJjaC1ndXR0ZXIpO1xuICAgICAgICAgICAgcmlnaHQ6IHZhcigtLXFhaC1zZWFyY2gtZ3V0dGVyKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5xYWgtdGl0bGUtY2x1c3RlciB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDE0MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnFhaC1hY3Rpb25zLFxuICAgICAgICAucWFoLW5vdmEge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpIHtcbiAgICAucWRuYXByby1hcHAtaGVhZGVyLnFhaC1hbGlnbi1zdGFydCAucWFoLXJvdzpoYXMoLnFhaC1zZWFyY2g6bm90KDplbXB0eSkpIC5xYWgtdGl0bGUtY2x1c3RlciB7XG4gICAgICAgIG1heC13aWR0aDogMjYwcHg7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTQ0MHB4KSB7XG4gICAgLnFkbmFwcm8tYXBwLWhlYWRlci5xYWgtYWxpZ24tc3RhcnQgLnFhaC1yb3c6aGFzKC5xYWgtc2VhcmNoOm5vdCg6ZW1wdHkpKSAucWFoLXRpdGxlLWNsdXN0ZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDM0MHB4O1xuICAgIH1cbn1cblxuLy8gQWN0aW9ucyArIE5vdmEgc2xvdCBjb250YWluZXJzIOKAlCBjb2xsYXBzZSB0byBub3RoaW5nIHdoZW4gdGhlIGNvbnN1bWVyXG4vLyBsZWF2ZXMgdGhlbSBlbXB0eSAobm8gc2xvdHRlZCBjaGlsZHJlbiBtb3ZlZCBpbiksIHNvIGFuIHVudXNlZCBzbG90IG5ldmVyXG4vLyBsZWF2ZXMgYSBnYXAuXG4ucWFoLWFjdGlvbnMsXG4ucWFoLW5vdmEge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuXG4gICAgJjplbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLy8gQ29udGV4dCBzdHJpcCDigJQgZnVsbCB3aWR0aCwgdW5kZXIgdGhlIG1haW4gcm93IChkYXktY2Fyb3VzZWwsIHByb2dyZXNzKS5cbi8vIENvbGxhcHNlcyB0byB6ZXJvIGhlaWdodCB3aGVuIGVtcHR5LlxuLnFhaC1jb250ZXh0IHtcbiAgICAmOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG4vLyDilIDilIAgbW9kZT1cInNlbGVjdGlvblwiIGVsZW1lbnRzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQ2FuY2VsLCBjb3VudCBhbmQgc2VsZWN0LWFsbDogaGlkZGVuIGJ5IGRlZmF1bHQgKG1vZGU9XCJkZWZhdWx0XCIpLCBzaG93blxuLy8gb25seSB1bmRlciAucWFoLW1vZGUtc2VsZWN0aW9uIGJlbG93LiBBbHdheXMgcHJlc2VudCBpbiB0aGUgRE9NIOKAlCBuZXZlclxuLy8gY3JlYXRlZC9kZXN0cm95ZWQgb24gbW9kZSBzd2l0Y2gg4oCUIHNhbWUgbm9uLWRlc3RydWN0aXZlIGNvbnRyYWN0IGFzIHRoZVxuLy8gYmFjay90aXRsZS9hY3Rpb25zL25vdmEgZWxlbWVudHMgdGhleSByZXBsYWNlLlxuLnFhaC1jYW5jZWwge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5xYWgtc2VsZWN0aW9uLWNvdW50IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIGNvbG9yOiB2YXIoLS1xYWgtc2VsZWN0aW9uLWZnKTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vLyBTZWxlY3QtYWxsIHNpdHMgd2hlcmUgLnFhaC1hY3Rpb25zLy5xYWgtbm92YSBub3JtYWxseSB3b3VsZCAocmlnaHQgZWRnZSkuXG4vLyBBIFRFWFQgYnV0dG9uIChxZG5hcHJvLWJ1dHRvbiksIG5vdCBhbiBpY29uLWJ1dHRvbiDigJQgc2VlIHRoZSBmaWxlLWhlYWRlclxuLy8ganVzdGlmaWNhdGlvbjogbm8gaWNvbiByZWFkcyB1bmFtYmlndW91c2x5IGFzIFwic2VsZWN0IGFsbFwiIHRoZSB3YXkgYW5cbi8vIGFycm93LWxlZnQvY2xvc2UgaWNvbiBkb2VzIGZvciBiYWNrL2NhbmNlbC5cbi5xYWgtc2VsZWN0aW9uLWFjdGlvbnMge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLy8g4pSA4pSAIGFsaWduPVwiY2VudGVyXCIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBDZW50ZXJzIHRoZSB0aXRsZSBjbHVzdGVyICh0aXRsZS9zdWJ0aXRsZSArIG9wdGlvbmFsIHNsb3Q9XCJhdmF0YXJcIikgYXMgb25lXG4vLyBibG9jaywgb3B0aWNhbGx5IGNlbnRlcmVkIG9uIHRoZSBGVUxMIGJhciB3aWR0aCAtIG5vdCBvbiB3aGF0ZXZlciBzcGFjZVxuLy8gaGFwcGVucyB0byBiZSBsZWZ0IG92ZXIgYmV0d2VlbiB0aGUgYmFjayBidXR0b24gYW5kIHRoZSBhY3Rpb25zL25vdmFcbi8vIGdyb3VwLiBUaGF0IGRpc3RpbmN0aW9uIG1hdHRlcnM6IHRoZSBcIm9idmlvdXNcIiBmaXggKGdpdmUgLnFhaC10aXRsZS1cbi8vIGNsdXN0ZXIgZmxleDogMSBsaWtlIGl0IGFscmVhZHkgaGFzLCBwbHVzIHRleHQtYWxpZ246IGNlbnRlcikgb25seVxuLy8gY2VudGVycyB0aGUgdGl0bGUgV0lUSElOIHRoZSBsZWZ0b3ZlciBzcGFjZSBiZXR3ZWVuIHRoZSB0d28gZWRnZXMsIHdoaWNoXG4vLyB2aXNpYmx5IGRyaWZ0cyBvZmYgdGhlIGJhcidzIHRydWUgY2VudHJlIHRoZSBtb21lbnQgdGhvc2UgdHdvIGVkZ2VzIGFyZVxuLy8gZGlmZmVyZW50IHdpZHRocyAoZS5nLiBhIGJhY2sgYnV0dG9uIG9uIHRoZSBsZWZ0IHdpdGggbm90aGluZyBvbiB0aGVcbi8vIHJpZ2h0IC0gZXhhY3RseSB0aGUgUFdBIGhvbWUtaGVhZGVyIGNhc2UpLiBBYnNvbHV0ZSBwb3NpdGlvbmluZyBhbmNob3JlZFxuLy8gd2l0aCBhIHN5bW1ldHJpYyBsZWZ0L3JpZ2h0IGd1dHRlciBpcyBpbW11bmUgdG8gdGhhdCBhc3ltbWV0cnk6IHRoZSBib3hcbi8vIHNwYW5zIChndXR0ZXIpIHRvICgxMDAlIC0gZ3V0dGVyKSwgd2hpY2ggaXMgY2VudGVyZWQgb24gdGhlIHJvd1xuLy8gcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSBiYWNrIGJ1dHRvbiBvciBhY3Rpb25zL25vdmEgaGFwcGVuIHRvIHdlaWdoLlxuLy9cbi8vIFRoZSBndXR0ZXIgaXMgYSB0dW5hYmxlIFNBRkVUWSBNQVJHSU4sIG5vdCBhIG1lYXN1cmVtZW50IG9mIHRoZSBhY3R1YWxcbi8vIGJhY2svYWN0aW9ucyBjb250ZW50IC0gYSBzY3JlZW4gd2l0aCBtb3JlIHRoYW4gb25lIGFjdGlvbiBpY29uIG9uIGFuIGVkZ2Vcbi8vIG1heSBuZWVkIGEgbGFyZ2VyIC0tcWFoLWNlbnRlci1ndXR0ZXIgKG92ZXJyaWRlIG9uIHRoZSBob3N0KTsgdGhlIHRpdGxlXG4vLyBzdGlsbCBkZWdyYWRlcyBncmFjZWZ1bGx5IHZpYSBpdHMgZXhpc3RpbmcgZWxsaXBzaXMgaWYgaXQgZG9lc24ndC5cbi5xZG5hcHJvLWFwcC1oZWFkZXIucWFoLWFsaWduLWNlbnRlciB7XG4gICAgLS1xYWgtY2VudGVyLWd1dHRlcjogNjBweDtcblxuICAgIC5xYWgtcm93IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC8vIFRha2VuIG91dCBvZiB0aGUgcm93J3MgZmxleC1maWxsICh0aGUgdGl0bGUgY2x1c3RlciBpcyBhYnNvbHV0ZWx5XG4gICAgLy8gcG9zaXRpb25lZCBpbnN0ZWFkKSwgc28gbWFyZ2luLWxlZnQ6IGF1dG8gaXMgd2hhdCBub3cgcGlucyB0aGVcbiAgICAvLyBhY3Rpb25zL25vdmEgZ3JvdXAgdG8gdGhlIHJpZ2h0IGVkZ2UgLSB0aGUgc2FtZSBqb2IgLnFhaC10aXRsZS1cbiAgICAvLyBjbHVzdGVyJ3MgZmxleDogMSB1c2VkIHRvIGRvIGluIGFsaWduPVwic3RhcnRcIi4gOmVtcHR5IGFscmVhZHlcbiAgICAvLyBjb2xsYXBzZXMgZWl0aGVyIG9uZSB0byBkaXNwbGF5OiBub25lIChzZWUgYWJvdmUpLCBzbyB3aGljaGV2ZXIgb2ZcbiAgICAvLyB0aGUgdHdvIGlzIGZpcnN0LWFuZC12aXNpYmxlIGlzIHRoZSBvbmUgdGhhdCBhY3R1YWxseSBhYnNvcmJzIHRoZVxuICAgIC8vIHNwYWNlOyB0aGUgb3RoZXIncyBtYXJnaW4tbGVmdDogYXV0byBpcyB0aGVuIGEgbm8tb3AuXG4gICAgLnFhaC1hY3Rpb25zLFxuICAgIC5xYWgtbm92YSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgIC5xYWgtdGl0bGUtY2x1c3RlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IHZhcigtLXFhaC1jZW50ZXItZ3V0dGVyKTtcbiAgICAgICAgcmlnaHQ6IHZhcigtLXFhaC1jZW50ZXItZ3V0dGVyKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAvLyBPdmVycmlkZXMgdGhlIGRlZmF1bHQgZmxleDogMSAxIGF1dG8gKHdoaWNoIGZpbGxzIHRoZSByb3cncyBsZWZ0b3ZlclxuICAgIC8vIHNwYWNlIGluIGFsaWduPVwic3RhcnRcIikgd2l0aCBmbGV4OiAwIDEgYXV0byDigJQgY2FuIHN0aWxsIFNIUklOSyAoc28gYVxuICAgIC8vIGxvbmcgdGl0bGUgc3RpbGwgZWxsaXBzaXplcyBhZ2FpbnN0IHRoZSBndXR0ZXItYm91bmQgYm94KSwgYnV0IG5vXG4gICAgLy8gbG9uZ2VyIEdST1dTLiBXaXRob3V0IHRoaXMsIHRoZSB0aXRsZSB3b3VsZCBmaWxsIHRoZSB3aG9sZSBjbHVzdGVyXG4gICAgLy8gYm94IGFuZCB0ZXh0LWFsaWduOiBjZW50ZXIgd291bGQgY2VudGVyIGl0IGluc2lkZSB0aGF0IG92ZXJzaXplZCBib3hcbiAgICAvLyBpbnN0ZWFkIG9mIHNudWcgYWdhaW5zdCB0aGUgYXZhdGFyIOKAlCB0aGUgcGFpciBuZWVkcyB0byBzaHJpbmstd3JhcCBzb1xuICAgIC8vIC5xYWgtdGl0bGUtY2x1c3RlcidzIGp1c3RpZnktY29udGVudDogY2VudGVyIGNlbnRlcnMgdGl0bGUgKyBhdmF0YXJcbiAgICAvLyB0b2dldGhlciBhcyBvbmUgdGlnaHQgdW5pdCwgbm90IHRoZSB0aXRsZSBhbG9uZSBmbG9hdGluZyBtaWQtYm94LlxuICAgIC5xYWgtdGl0bGVzIHtcbiAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAvLyBUaGUgYWJzb2x1dGVseSBwb3NpdGlvbmVkIGNsdXN0ZXIgaXMgYSBXSURFIG92ZXJsYXkgKGd1dHRlciB0byBndXR0ZXIpLFxuICAgIC8vIHNvIGl0IHBhaW50cyBvbiB0b3Agb2YgdGhlIGluLWZsb3cgYmFjay9hY3Rpb25zIHNpYmxpbmdzLiBJdHMgZW1wdHlcbiAgICAvLyBzdHJldGNoZXMgd291bGQgdGhlbiBzaWxlbnRseSBzd2FsbG93IHRhcHMgb24gYW55IGFjdGlvbiBidXR0b24gdGhhdFxuICAgIC8vIHJlYWNoZXMgcGFzdCAtLXFhaC1jZW50ZXItZ3V0dGVyICh0d28gaWNvbiBidXR0b25zIG9uIG9uZSBlZGdlIGFscmVhZHlcbiAgICAvLyBkbykuIEEgZGVhZCBvdmVybGF5IGVhdGluZyBjbGlja3MgaXMgYSBuYXN0aWVyIGZhaWx1cmUgdGhhbiBhIHRpdGxlXG4gICAgLy8gZHJpZnRpbmcgYSBmZXcgcGl4ZWxzLCBzbyB0aGUgY2x1c3RlciBpdHNlbGYgaXMgdHJhbnNwYXJlbnQgdG8gcG9pbnRlcnNcbiAgICAvLyBhbmQgb25seSB0aGUgcmVhbCBjb250ZW50IGluc2lkZSBpdCB0YWtlcyB0aGVtIGJhY2suXG4gICAgLnFhaC10aXRsZS1jbHVzdGVyIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLnFhaC10aXRsZXMsXG4gICAgLnFhaC1hdmF0YXIge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkge1xuICAgIC5xZG5hcHJvLWFwcC1oZWFkZXIucWFoLWFsaWduLWNlbnRlciB7XG4gICAgICAgIC0tcWFoLWNlbnRlci1ndXR0ZXI6IDc2cHg7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLnFkbmFwcm8tYXBwLWhlYWRlci5xYWgtYWxpZ24tY2VudGVyIHtcbiAgICAgICAgLS1xYWgtY2VudGVyLWd1dHRlcjogOTJweDtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBtb2RlPVwic2VsZWN0aW9uXCIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBSZXBsYWNlcyB0aGUgbm9ybWFsIHJvdyBjb250ZW50IHdpdGggY291bnQgKyBjYW5jZWwgKyBzZWxlY3QtYWxsLiBUaGVcbi8vIHN3YXAgaXMgQ1NTLW9ubHkgKGRpc3BsYXk6bm9uZSwgbm90aGluZyByZW1vdmVkIGZyb20gdGhlIERPTSksIHdoaWNoIGlzXG4vLyB3aGF0IG1ha2VzIGxlYXZpbmcgc2VsZWN0aW9uIG1vZGUgbm9uLWRlc3RydWN0aXZlIGZvciBzbG90dGVkIGNvbnRlbnQ6XG4vLyAucWFoLWFjdGlvbnMvLnFhaC1ub3ZhLy5xYWgtYXZhdGFyIChpbnNpZGUgLnFhaC10aXRsZS1jbHVzdGVyKSBzdGlsbFxuLy8gaG9sZCB3aGF0ZXZlciB0aGUgaG9zdCBzbG90dGVkIGluLCBqdXN0IGhpZGRlbiDigJQgdGhleSByZWFwcGVhciBleGFjdGx5XG4vLyBhcyB0aGV5IHdlcmUgdGhlIG1vbWVudCBtb2RlIGdvZXMgYmFjayB0byBcImRlZmF1bHRcIi4gVGhlIGNvbnRleHQgc2xvdFxuLy8gKC5xYWgtY29udGV4dCkgaXMgTk9UIHRvdWNoZWQgaGVyZSDigJQgaXQgc3RheXMgdmlzaWJsZSBpbiBzZWxlY3Rpb24gbW9kZVxuLy8gb25seSBpZiBpdCBhbHJlYWR5IHdhcyAoaXRzIG93biA6ZW1wdHkgcnVsZSBhYm92ZSBpcyB1bmFmZmVjdGVkKS5cbi8vXG4vLyBQbGFjZWQgYWZ0ZXIgLnFhaC12YXJpYW50LXRyYW5zcGFyZW50IGFuZCAucWFoLWFsaWduLWNlbnRlciBvbiBwdXJwb3NlOlxuLy8gc2FtZSBzZWxlY3RvciBzcGVjaWZpY2l0eSAodHdvIGhvc3QgY2xhc3NlcyksIHNvIHRoaXMgYmxvY2sgd2lucyB0aGVcbi8vIGNhc2NhZGUgd2hlbiBtb2RlPVwic2VsZWN0aW9uXCIgaXMgY29tYmluZWQgd2l0aCBlaXRoZXIgb2YgdGhvc2UsIHdoaWNoXG4vLyBtYXRjaGVzIHRoZSBpbnRlbnQgdGhhdCBcInlvdSBhcmUgc2VsZWN0aW5nXCIgaXMgdGhlIGhlYWRlcidzIGRvbWluYW50XG4vLyB2aXN1YWwgc3RhdGUuXG4ucWRuYXByby1hcHAtaGVhZGVyLnFhaC1tb2RlLXNlbGVjdGlvbiB7XG4gICAgLy8gV0lULCBuaWV0IGxpY2h0cGFhcnMgKEtpbSAyOS4wNy4yMDI2LCBuYSBoYWFyIHRvZXN0ZWx0ZXN0IHZhbiBkZSBQV0EtaW5ib3g6XG4gICAgLy8gXCJoZWFkZXIgbmlldCBsaWNodHBhYXJzIG1hYXIgd2l0IGxhdGVuIHppZW5cIikuIEhldCB2bGFrIHdhcyAtLWMtcHVycGxlLTUwIGVuXG4gICAgLy8gZGF0IHZvY2h0IG1ldCBkZSBsaWNodHBhYXJzZSBnZXNlbGVjdGVlcmRlIHJpamVuIGVyb25kZXI6IGRhbiBpcyBuaWV0IG1lZXIgdGVcbiAgICAvLyB6aWVuIHdhYXIgZGUga29wIG9waG91ZHQgZW4gZGUgc2VsZWN0aWUgYmVnaW50LlxuICAgIC8vIERlIE9OREVSUkFORCBpcyBuaWV0IGxhbmdlciBwYWFycyAoS2ltIDMxLjA3LjIwMjY6IFwiZGllIGxlbGlqa2UgZG9ua2VyIHBhYXJzZVxuICAgIC8vIGJvcmRlciB3ZWdoYWxlbiwgZ2V3b29uIGVlbiBtb29pIGdyaWpzIHRpbnRqZVwiKS4gRGUgcmFuZCB2YWx0IHRlcnVnIG9wIGRlXG4gICAgLy8gc3RhbmRhYXJkd2FhcmRlIHZhbiBoZXQgY29tcG9uZW50IChyZWdlbCAzNCBoaWVyYm92ZW4pLCBkZXplbGZkZVxuICAgIC8vIC0tYy1ib3JkZXItc29mdCBkaWUgLmluYm94X3ZpZXdfX3NlbHRvb2xiYXIgZWVuIHJpaiBsYWdlciBvb2sgYWwgZ2VicnVpa3QsXG4gICAgLy8gZHVzIGRlIHR3ZWUgaGFhcmxpam5lbiBtYXRjaGVuIG51LiBIZXQgcGFhcnNlIEFBTlRBTCBlbiBkZSBwYWFyc2UgQUNUSUVTXG4gICAgLy8gYmxpanZlbiB3ZWwgc3RhYW4gKC0tcWFoLXNlbGVjdGlvbi1mZywgdmVyZGVyb3Agb25nZW1vZWlkKSBlbiBkYXQgaXMgbm9nXG4gICAgLy8gc3RlZWRzIGdlbm9lZyBzaWduYWFsIGRhdCBqZSBpbiBlZW4gYW5kZXJlIHN0YW5kIHppdCwgem9uZGVyIGhldCBoZWxlIHZsYWtcbiAgICAvLyBvZiBkZSByYW5kIHRlIGtsZXVyZW4uXG4gICAgLy8gRGl0IGlzIGhldCBjb21wb25lbnQtZ2VkcmFnLCBnZWVuIHVpdHpvbmRlcmluZyB2b29yIGRlIGluYm94OiBkaWUgaXMgdmFuZGFhZ1xuICAgIC8vIGRlIGVuaWdlIGdlYnJ1aWtlciB2YW4gbW9kZT1cInNlbGVjdGlvblwiIChuYWdla2VrZW4pLCBkdXMgZGl0IElTIGRlIGtldXplLlxuICAgIC0tcWFoLWJnOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICAgIC0tcWFoLWJvcmRlci1jb2xvcjogdmFyKC0tYy1ib3JkZXItc29mdCwgcmdiYSgwLCAwLCAwLCAwLjA3KSk7XG5cbiAgICAvLyAucWFoLXNlYXJjaCBoaWRlcyBoZXJlIGZvciB0aGUgc2FtZSByZWFzb24gLnFhaC1hY3Rpb25zLy5xYWgtbm92YSBkbzpcbiAgICAvLyBzZWxlY3Rpb24gbW9kZSByZXBsYWNlcyB0aGUgd2hvbGUgcm93J3MgY29udGVudCB3aXRoIGNhbmNlbC9jb3VudC9cbiAgICAvLyBzZWxlY3QtYWxsLCBzbyBhIHNlYXJjaCBmaWVsZCBoYXMgbm8gbW9yZSBidXNpbmVzcyBzaG93aW5nIHRoYW4gdGhlXG4gICAgLy8gdGl0bGUgb3IgdGhlIGFjdGlvbiBidXR0b25zIGRvLiBOb24tZGVzdHJ1Y3RpdmUgbGlrZSB0aGUgcmVzdDogdGhlXG4gICAgLy8gc2xvdHRlZCBjb250ZW50IGlzIGp1c3QgZGlzcGxheTpub25lJ2QsIG5vdCByZW1vdmVkLCBzbyBpdCByZWFwcGVhcnNcbiAgICAvLyBleGFjdGx5IGFzLWlzIG9uY2Ugc2VsZWN0aW9uIG1vZGUgZW5kcy4gW0tpbSAzMS4wNy4yMDI2XVxuICAgIC5xYWgtYmFjayxcbiAgICAucWFoLXRpdGxlLWNsdXN0ZXIsXG4gICAgLnFhaC1sZWFkaW5nLFxuICAgIC5xYWgtc2VhcmNoLFxuICAgIC5xYWgtYWN0aW9ucyxcbiAgICAucWFoLW5vdmEge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5xYWgtY2FuY2VsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAucWFoLXNlbGVjdGlvbi1jb3VudCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5xYWgtc2VsZWN0aW9uLWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbn1cblxuLy8g4pSA4pSAIFJlc3BvbnNpdmUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBQaG9uZS1maXJzdDsgYSBsaXR0bGUgbW9yZSBicmVhdGhpbmcgcm9vbSBvbiB0YWJsZXQvZGVza3RvcCB3aWR0aHMgc28gdGhlXG4vLyBoZWFkZXIgZG9lc24ndCBsb29rIGNyYW1wZWQgb24gd2lkZXIgc2NyZWVucyB0aGUgUFdBIGFsc28gaGFzIHRvIHN1cHBvcnQuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICAucWFoLXJvdyB7XG4gICAgICAgIHBhZGRpbmc6IDZweCAyMHB4O1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgfVxuXG4gICAgLnFhaC10aXRsZSB7IGZvbnQtc2l6ZTogMTlweDsgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLnFhaC1yb3cge1xuICAgICAgICBwYWRkaW5nOiA4cHggMzJweDtcbiAgICB9XG59XG4iLCIvLyBxZG5hcHJvLXN3aXBlLXJvdyDigJQgcm93LWFnbm9zdGljIHN3aXBlIHdyYXBwZXI6IGNvbnRlbnQgbGF5ZXIgb24gdG9wLCB0d29cbi8vIGVkZ2UtYW5jaG9yZWQgYWN0aW9uLWJ1dHRvbiByb3dzIHVuZGVybmVhdGggKG9ubHkgdGhlIGN1cnJlbnRseSBhY3RpdmVcbi8vIHNpZGUgaXMgZXZlciBleHBvc2VkLCBieSBuYXR1cmUgb2YgdGhlIGNvbnRlbnQgc2xpZGluZyBvdmVyIGl0IOKAlCBzZWUgdGhlXG4vLyBKUyBoZWFkZXIgY29tbWVudCBmb3IgdGhlIGZ1bGwgbW9kZWwpLiBGTEFUIENTUzsgY29sb3Vycy9yYWRpaSBmcm9tIHRoZVxuLy8gZGVzaWduLXRva2VuIDpyb290ICh2YXIoLS1jLSopKS4gRWRpdCBIRVJFLCB0aGVuIGBndWxwIHNhc3MtdjFgICsgdGhlXG4vLyByZXNvdXJjZV90cmlnZ2VyIGJ1bXAgKHNlZSBxZG5hLWNvbXBvbmVudC1wcmV2aWV3cyBza2lsbCAvIHRhc2sgaGFuZC1vZmYpLlxuLy9cbi8vIERJUkVDVElPTiBSRU1JTkRFUiAoc2VlIHFkbmEtc3dpcGUtcm93LmpzIGhlYWRlciBmb3IgdGhlIGZ1bGwgY29udHJhY3QpOlxuLy8gYC5xc3ItcGFuZWwtbGVmdGAgaXMgcmV2ZWFsZWQgYnkgYSBMRUZUIHN3aXBlIG9mIHRoZSBDT05URU5ULCBzbyBpdCBpc1xuLy8gYW5jaG9yZWQgdG8gdGhlIFJJR0hUIGVkZ2Ugb2YgdGhlIHJvdy4gYC5xc3ItcGFuZWwtcmlnaHRgIGlzIHRoZSBtaXJyb3Ig4oCUXG4vLyByZXZlYWxlZCBieSBhIFJJR0hUIHN3aXBlLCBhbmNob3JlZCB0byB0aGUgTEVGVCBlZGdlLlxuLy9cbi8vIFdIQVRTQVBQL09VVExPT0sgUkVERVNJR04gKDI5LjA3LjIwMjYpOiB0aGUgT0xEIHZlcnNpb24gY2VudGVyZWQgYSBzaW5nbGVcbi8vIGljb24rbGFiZWwgaW5zaWRlIGEgZnVsbC1yb3cgcGFuZWwsIHNvIGEgc2hvcnQgc3dpcGUgcmV2ZWFsZWQgbm90aGluZyDigJRcbi8vIHRoZSB1c2VyIG9ubHkgc2F3IHdoYXQgdGhlIGFjdGlvbiB3YXMgb25jZSB0aGV5J2QgZHJhZ2dlZCBoYWxmd2F5IGFjcm9zc1xuLy8gdGhlIHJvdy4gRWFjaCBhY3Rpb24gbm93IGdldHMgaXRzIE9XTiBmaXhlZC13aWR0aCBidXR0b24sIGFuY2hvcmVkIHRvIHRoZVxuLy8gZWRnZSB0aGUgY29udGVudCByZWNlZGVzIGZyb20sIHNvIHRoZSB2ZXJ5IGZpcnN0IHBpeGVscyBvZiBhIGRyYWcgYWxyZWFkeVxuLy8gc2hvdyBhIGdseXBoLiAkcXNyLWJ1dHRvbi13aWR0aCBiZWxvdyBNVVNUIHN0YXkgaW4gc3luYyB3aXRoXG4vLyBRRE5BX1NXSVBFX1JPV19CVVRUT05fV0lEVEggaW4gcWRuYS1zd2lwZS1yb3cuanMuXG4kcXNyLWJ1dHRvbi13aWR0aDogODBweDtcblxuLnFkbmFwcm8tc3dpcGUtcm93IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvKiBMZXQgdGhlIGJyb3dzZXIga2VlcCBvd25pbmcgdmVydGljYWwgc2Nyb2xsaW5nIGF0IGFsbCB0aW1lcyDigJQgdGhlXG4gICAgICAgY29tcG9uZW50J3Mgb3duIGF4aXMtbG9jayBkZWNpZGVzIHdoZXRoZXIgYSBnaXZlbiBnZXN0dXJlIGlzIGhvcml6b250YWxcbiAgICAgICBiZWZvcmUgaXQgZXZlciBjYWxscyBwcmV2ZW50RGVmYXVsdC4gKi9cbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIGlzb2xhdGlvbjogaXNvbGF0ZTsgLyoga2VlcCB0aGUgcGFuZWwvY29udGVudCBzdGFja2luZyBsb2NhbCB0byB0aGlzIHJvdyAqL1xufVxuXG4vKiBDb250ZW50IGxheWVyIOKAlCB3aGF0ZXZlciB0aGUgaG9zdCBzbG90dGVkIGluLCB1bm1vZGlmaWVkLiBBbHdheXMgcGFpbnRlZFxuICAgd2l0aCBpdHMgb3duIG9wYXF1ZSBiYWNrZ3JvdW5kIChkZWZhdWx0IHZhcigtLWMtYmctY2FyZCkpIHNvIGFcbiAgIHRyYW5zcGFyZW50IGNoaWxkIG5ldmVyIGxldHMgYSBidXR0b24ncyBiYWNrZ3JvdW5kIHNob3cgdGhyb3VnaCwgZXZlbiBhdFxuICAgcmVzdCAobm90IGp1c3Qgd2hpbGUgLnN3aXBpbmcgaXMgcHJlc2VudCkuIEEgY29uc3VtZXIgY2FuIHJldGludCB0aGlzIHBlclxuICAgaW5zdGFuY2UgdmlhIHN0eWxlPVwiLS1xc3ItY29udGVudC1iZzogLi4uXCIuICovXG4ucWRuYXByby1zd2lwZS1yb3cgLnFzci1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xc3ItY29udGVudC1iZywgdmFyKC0tYy1iZy1jYXJkKSk7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbn1cblxuLyogQWN0aW9uIHBhbmVscyDigJQgYW5jaG9yZWQgdG8gdGhlIGVkZ2UgdGhlIGNvbnRlbnQgcmVjZWRlcyBGUk9NLCBzaXplZCB0b1xuICAgZXhhY3RseSB0aGUgY3VycmVudGx5IHJldmVhbGVkIHdpZHRoIChzZXQgaW5saW5lIGJ5IHRoZSBKUzogcmVzdGluZyB3aWR0aFxuICAgPSBzdW0gb2YgdGhhdCBzaWRlJ3MgYnV0dG9uIHdpZHRoczsgZ3Jvd3MgdG8gbWF0Y2ggdGhlIGxpdmUgZHJhZyBkaXN0YW5jZVxuICAgb25jZSBpdCBleGNlZWRzIHRoYXQpLiBCZWNhdXNlIHRoZSBwYW5lbCBpcyBuZXZlciB3aWRlciB0aGFuIHdoYXQnc1xuICAgYWN0dWFsbHkgZXhwb3NlZCwgdGhlIE9VVEVSTU9TVCBidXR0b24gKGZsdXNoIGFnYWluc3QgdGhlIHRydWUgZWRnZSkgaXNcbiAgIHRoZSB2ZXJ5IGZpcnN0IHRoaW5nIGEgZHJhZyByZXZlYWxzIOKAlCBubyBkZWFkIGZ1bGwtcm93IHNwYWNlIHRvIGNyb3NzXG4gICBiZWZvcmUgYW55dGhpbmcgYmVjb21lcyB2aXNpYmxlLiAqL1xuLnFkbmFwcm8tc3dpcGUtcm93IC5xc3ItcGFuZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnFkbmFwcm8tc3dpcGUtcm93IC5xc3ItcGFuZWwtbGVmdCB7XG4gICAgcmlnaHQ6IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgLyogZ3JvdXAgZmx1c2ggYWdhaW5zdCB0aGUgdHJ1ZSByaWdodCBlZGdlICovXG59XG4ucWRuYXByby1zd2lwZS1yb3cgLnFzci1wYW5lbC1yaWdodCB7XG4gICAgbGVmdDogMDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IC8qIGdyb3VwIGZsdXNoIGFnYWluc3QgdGhlIHRydWUgbGVmdCBlZGdlICovXG59XG4ucWRuYXByby1zd2lwZS1yb3cgLnFzci1wYW5lbC1lbXB0eSB7XG4gICAgd2lkdGg6IDAgIWltcG9ydGFudDtcbn1cblxuLyogRWFjaCBidXR0b24gaXMgYSBSRUFMIDxidXR0b24+LCBvd25pbmcgaXRzIG93biBmaXhlZC13aWR0aCBib3gg4oCUIGljb24gYW5kXG4gICBsYWJlbCBzaXQgSU5TSURFIHRoYXQgYm94LCBuZXZlciBjZW50ZXJlZCBvbiB0aGUgcm93LiBUaGlzIGlzIHRoZSB3aG9sZVxuICAgcG9pbnQgb2YgdGhlIHJlZGVzaWduLiBTdHJldGNoZXMgdG8gdGhlIHJvdydzIGZ1bGwgaGVpZ2h0IChjb21mb3J0YWJseVxuICAgb3ZlciB0aGUgNDRweCBtaW5pbXVtIHRhcHBhYmxlIHRhcmdldCBvbiBhbnkgcmVhbCByb3cpLiBCdXR0b25zIGFyZSBvbmx5XG4gICBpbiB0aGUgdGFiIG9yZGVyIC8gcmVhY2hhYmxlIGJ5IEFUIHdoaWxlIHRoZWlyIHNpZGUgaXMgb3BlbiDigJQgc2VlIHRoZVxuICAgdGFiaW5kZXgvYXJpYS1oaWRkZW4gaGFuZGxpbmcgaW4gdGhlIEpTLiAqL1xuLnFkbmFwcm8tc3dpcGUtcm93IC5xc3ItcGFuZWwtYnRuIHtcbiAgICBmbGV4OiAwIDAgJHFzci1idXR0b24td2lkdGg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAycHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTsgLyogY29sb3VyIGNvbWVzIGZyb20gdGhlIC5xc3ItY29sb3ItKiBtb2RpZmllciBiZWxvdyAqL1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZmYsIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogZmxleC1iYXNpcyAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksXG4gICAgICAgICAgICAgICAgZmxleC1ncm93IDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSxcbiAgICAgICAgICAgICAgICBvcGFjaXR5IDAuMTVzIGVhc2U7XG59XG4ucWRuYXByby1zd2lwZS1yb3cgLnFzci1wYW5lbC1idG46Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtM3B4O1xufVxuXG4ucWRuYXByby1zd2lwZS1yb3cgLnFzci1wYW5lbC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vKiBJY29uIGdyb3dzIHNsaWdodGx5IG9uY2UgdGhlIGRyYWcgY3Jvc3NlcyB0aGUgY29tbWl0IHRocmVzaG9sZCwgc28gdGhlXG4gICB1c2VyIGNhbiBmZWVsIHRoZSBjb21taXQgcG9pbnQgYmVmb3JlIHJlbGVhc2luZy4gKi9cbi5xZG5hcHJvLXN3aXBlLXJvdyAucXNyLXBhbmVsLWljb24ge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xufVxuLnFkbmFwcm8tc3dpcGUtcm93LnFzci1jb21taXR0aW5nIC5xc3ItcGFuZWwtaWNvbiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE2KTtcbn1cblxuLyogU3RhZ2UgMiDigJQgY29tbWl0OiBwYXN0IHRoZSBgdGhyZXNob2xkYCBkcmFnIGRpc3RhbmNlLCB0aGUgc2Vjb25kYXJ5XG4gICBidXR0b24ocykgb24gdGhlIEFDVElWRSBzaWRlIGNvbGxhcHNlIGF3YXkgYW5kIHRoZSBNQUlOIGJ1dHRvbiAodGhlXG4gICBvdXRlcm1vc3QgLyBsYXN0LWNvbmZpZ3VyZWQgZW50cnkpIGV4cGFuZHMgdG8gZmlsbCB0aGUgd2hvbGUgcmV2ZWFsZWRcbiAgIHdpZHRoLCBzbyByZWxlYXNpbmcgaGVyZSBmaXJlcyBpdCBpbW1lZGlhdGVseSB3aXRob3V0IGEgdGFwLiBTY29wZWQgdG9cbiAgIHRoZSBjdXJyZW50bHkgZHJhZ2dpbmcgZGlyZWN0aW9uIHNvIHRoZSBpZGxlIHNpZGUgaXMgbmV2ZXIgYWZmZWN0ZWQuICovXG4ucWRuYXByby1zd2lwZS1yb3cucXNyLWNvbW1pdHRpbmcucXNyLWRpci1sZWZ0IC5xc3ItcGFuZWwtbGVmdCAucXNyLXBhbmVsLWJ0bjpub3QoLnFzci1idG4tbWFpbikge1xuICAgIGZsZXg6IDAgMCAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1zd2lwZS1yb3cucXNyLWNvbW1pdHRpbmcucXNyLWRpci1yaWdodCAucXNyLXBhbmVsLXJpZ2h0IC5xc3ItcGFuZWwtYnRuOm5vdCgucXNyLWJ0bi1tYWluKSB7XG4gICAgZmxleDogMCAwIDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5xZG5hcHJvLXN3aXBlLXJvdy5xc3ItY29tbWl0dGluZy5xc3ItZGlyLWxlZnQgLnFzci1wYW5lbC1sZWZ0IC5xc3ItYnRuLW1haW4sXG4ucWRuYXByby1zd2lwZS1yb3cucXNyLWNvbW1pdHRpbmcucXNyLWRpci1yaWdodCAucXNyLXBhbmVsLXJpZ2h0IC5xc3ItYnRuLW1haW4ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xufVxuXG4vKiBDb2xvdXIgdm9jYWJ1bGFyeSDigJQgYSBzbWFsbCBuYW1lZCBzZXQsIG1hcHBlZCB0byBGSVhFRCBwcmltaXRpdmVzIChub3QgdGhlXG4gICBsaWZ0ZWQgLS1jLWJyYW5kLXB1cnBsZSkgc28gYSBidXR0b24gcmVhZHMgdGhlIGV4YWN0IHNhbWUgYWNjZW50IGluIGxpZ2h0XG4gICBhbmQgZGFyayBtb2RlLCBzYW1lIGNvbnZlbnRpb24gYXMgcWRuYXByby1ib3R0b20tc2hlZXQncyBwdXJwbGUgdmFyaWFudFxuICAgKC0tYy1wdXJwbGUtNTAwLCBkZWxpYmVyYXRlbHkgbm90IC0tYy1icmFuZC1wdXJwbGUpLiBcInllbGxvd1wiIGlzIG5ld1xuICAgKDI5LjA3LjIwMjYsIGZsYWdnaW5nKSBhbmQgbWFwcyB0byB0aGUgZXhpc3Rpbmcgd2Fybi9mbGFnIHJhbXAgdG9rZW5cbiAgIC0tYy13YXJuLXllbGxvdy01MDAg4oCUIHBhaXJlZCB3aXRoIC0tYy1zaWduYWwteWVsbG93LXRleHQgZm9yIHRoZSBsYWJlbCxcbiAgIHNpbmNlIHdoaXRlIHRleHQgb24gdGhhdCBwYXJ0aWN1bGFyIHllbGxvdyBmYWlscyBjb250cmFzdCAoc2FtZSBwYWlyaW5nXG4gICBxZG5hcHJvLWFuc3dlci1idXR0b24gYW5kIHFkbmFwcm8tc2NvcmUtc2NhbGUgYWxyZWFkeSB1c2UgZm9yIHdhcm5pbmdcbiAgIHllbGxvdykuIE5ldmVyIGEgcmF3IGhleC4gKi9cbi5xZG5hcHJvLXN3aXBlLXJvdyAucXNyLWNvbG9yLXB1cnBsZSB7IGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwMCk7IH1cbi5xZG5hcHJvLXN3aXBlLXJvdyAucXNyLWNvbG9yLWdyZXkgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MDApOyB9XG4ucWRuYXByby1zd2lwZS1yb3cgLnFzci1jb2xvci1yZWQgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdhcm4tcmVkLTUwMCk7IH1cbi5xZG5hcHJvLXN3aXBlLXJvdyAucXNyLWNvbG9yLWdyZWVuICB7IGJhY2tncm91bmQ6IHZhcigtLWMtc3VjY2Vzcy1icmlnaHQpOyB9XG4ucWRuYXByby1zd2lwZS1yb3cgLnFzci1jb2xvci15ZWxsb3cge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtd2Fybi15ZWxsb3ctNTAwKTtcbiAgICBjb2xvcjogdmFyKC0tYy1zaWduYWwteWVsbG93LXRleHQsICNiZjcyMDIpO1xufVxuXG4vKiBwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBubyBib3VuY2Uvc2NhbGUvY29sbGFwc2UtYW5pbWF0aW9uIOKAlCB0aGUgSlMgaXRzZWxmXG4gICBzd2l0Y2hlcyBldmVyeSBzZXR0bGUvZGlzbWlzcyB0cmFuc2l0aW9uIHRvIGluc3RhbnQgKHRyYW5zaXRpb246IG5vbmUpXG4gICBpbmxpbmU7IHRoZXNlIHJ1bGVzIGFyZSB0aGUgQ1NTLWRyaXZlbiBiYWNrc3RvcCBmb3IgdGhlIHRyYW5zaXRpb25zIHRoYXRcbiAgIGFyZW4ndCBpbmxpbmUgKHRoZSBpY29uJ3MgY29tbWl0LXNjYWxlLCBhbmQgdGhlIGJ1dHRvbiBjb2xsYXBzZS9leHBhbmRcbiAgIGFib3ZlKSwgc28gdGhleSBqdW1wIGluc3RlYWQgb2YgZWFzaW5nLiAqL1xuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucWRuYXByby1zd2lwZS1yb3cgLnFzci1wYW5lbC1pY29uLFxuICAgIC5xZG5hcHJvLXN3aXBlLXJvdyAucXNyLXBhbmVsLWJ0biB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxufVxuIiwiLy8gX2xpc3Qtcm93LnNjc3Ncbi8vXG4vLyBxZG5hcHJvLWxpc3Qtcm93IOKAlCBnZW5lcmljIGFwcC13aWRlIGxpc3Qgcm93IChsZWFkaW5nIGljb24tdGlsZSArIHRpdGxlICtcbi8vIG9wdGlvbmFsIHN1YnRpdGxlICsgdHJhaWxpbmcgc2xvdCkuIEdlbmVyYWxpc2VzIHRoZSBQV0EgZG9jdW1lbnRzX3Jvd1xuLy8gYW5hdG9teSAoYXBwX2FwaV9xZG5hdjIvc3JjL1JFWC9SZXNvdXJjZXMvU2Nzcy9fZG9jdW1lbnRzLnNjc3MsIE5PVCBlZGl0ZWRcbi8vIGhlcmUpIHNvIGFueSBzY3JlZW4gY2FuIHJldXNlIE9ORSBjb21wb25lbnQgaW5zdGVhZCBvZiBmb3JraW5nIHJvdyBtYXJrdXAuXG4vL1xuLy8gRk9OVC1XRUlHSFQgREVDSVNJT04gKEtpbTogZG9jdW1lbnRzX3JvdyBmZWx0IFwidG9vIGhlYXZ5XCIgYXQgNjAwKTpcbi8vIGNyb3NzLWNoZWNrZWQgZXZlcnkgZXhpc3Rpbmcgcm93L2xhYmVsIGNvbXBvbmVudCBpbiB0aGlzIGxpYnJhcnkg4oCUXG4vLyAgIHFkbmFwcm8tdW5pdC1jYXJkICAudmlldy1saXN0LWNvbXBhY3RfX25hbWUgICAxNHB4IC8gNTAwICAocm93IHRpdGxlKVxuLy8gICBxZG5hcHJvLXVuaXQtY2FyZCAgLnZpZXctbGlzdC1sYXJnZV9fbmFtZSAgICAgIDE0cHggLyA2MDAgIChCSUdHRVIgdG91Y2ggcm93LCBkZWxpYmVyYXRlIGVtcGhhc2lzKVxuLy8gICBxZG5hcHJvLWJvdHRvbS1uYXYgLl9fbGFiZWwgICAgICAgICAgICAgICAgICAgIDEwcHggLyA1MDAgIChyb3cvbmF2IGxhYmVsKVxuLy8gICBxZG5hcHJvLWV2ZW50LWNhcmQgLl9fdGl0bGUgKHNpemU9XCJzbWFsbFwiKSAgICAgMTJweCAvIDUwMCAgKEtpbSwgMTYuMDcuMjAyNjogZGlhbGxlZCBiYWNrIGZyb20gdGhlXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0IDYwMCBmb3IgZXhhY3RseSB0aGlzIFwidG9vIGhlYXZ5IGZvciBhIHNtYWxsXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dcIiBjb21wbGFpbnQg4oCUIGRpcmVjdCBwcmVjZWRlbnQgZm9yIHRoaXMgZGVjaXNpb24pXG4vLyAgIHFkbmFwcm8tbWVudS1pdGVtICAubWVudS1pdGVtLWxhYmVsICAgICAgICAgICAgMTRweCwgTk8gd2VpZ2h0IG92ZXJyaWRlIChpbmhlcml0cyByZWd1bGFyLzQwMClcbi8vIE5vbmUgb2YgdGhlIHBsYWluIFwib25lIHJvdyBpbiBhIGxpc3RcIiBjb250ZXh0cyB1c2UgNjAwIOKAlCBvbmx5IHFkbmFwcm8tZXZlbnQtY2FyZCdzIG93biBkZWZhdWx0XG4vLyAoYSBjb2xvdXJlZCBjYWxlbmRhciBDQVJEL2NoaXAsIG5vdCBhIHBsYWluIHJvdykgYW5kIHVuaXQtY2FyZCdzIGJpZ2dlciBcImxpc3QtbGFyZ2VcIiByb3cgZG8uIFNvXG4vLyBxbHItdGl0bGUgZm9sbG93cyB0aGUgcm93IGNvbnZlbnRpb246IDE0cHggLyA1MDAgKG1lZGl1bSkuIFN1YnRpdGxlIGZvbGxvd3MgdGhlIG11dGVkLW1ldGFcbi8vIGNvbnZlbnRpb24gdXNlZCBldmVyeXdoZXJlIChldmVudC1jYXJkIG1ldGEtdGV4dCwgZG9jdW1lbnRzX3Jvd19fbWV0YSwgcWFoLXN1YnRpdGxlKTogMTJweCAvIDQwMC5cblxuLnFkbmFwcm8tbGlzdC1yb3cge1xuICAgIC0tcWxyLWJnLWhvdmVyOiB2YXIoLS1jLWJnLXN1YnRsZS1ob3ZlciwgI2Y1ZjZmOCk7XG4gICAgLS1xbHItYmctcHJlc3NlZDogdmFyKC0tYy1wdXJwbGUtc29mdC0xMiwgcmdiYSg2NCwgNzMsIDE1NCwgMC4xMikpO1xuICAgIC0tcWxyLWJvcmRlcjogdmFyKC0tYy1ib3JkZXItc29mdCwgcmdiYSgwLCAwLCAwLCAwLjA3KSk7XG4gICAgLS1xbHItdGl0bGUtY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZjRkKTtcbiAgICAtLXFsci1zdWJ0aXRsZS1jb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICAtLXFsci1jaGV2cm9uLWNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgIC0tcWxyLWZvY3VzLXJpbmc6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbiAgICAtLXFsci1mb2N1cy1nbG93OiB2YXIoLS1jLXB1cnBsZS1zb2Z0LTE4LCByZ2JhKDY0LCA3MywgMTU0LCAwLjE4KSk7XG4gICAgLy8gU2V0dGluZ3MtcGFnZSBhdHRyaWJ1dGVzICgyOC4wNy4yMDI2KSDigJQgZGVmYXVsdCBjb2xvdXIgZm9yIHRoZSBiYXJlXG4gICAgLy8gZ2x5cGggc2hvd24gYnkgdGlsZT1cIm5vbmVcIiAoYnJhbmQgcHVycGxlLCBwZXIgS2ltJ3Mgc3BlYyksIG92ZXJyaWRkZW5cbiAgICAvLyBieSB0aGUgYHRvbmVgIG1vZGlmaWVycyBiZWxvdy4gS2VwdCBhcyBpdHMgb3duIGN1c3RvbSBwcm9wZXJ0eSAobm90XG4gICAgLy8gcmV1c2luZyAtLXFsci10aWxlLWZnLCB3aGljaCBzdGF5cyBvd25lZCBieSB0aGUgYHRpbnRgIHBhbGV0dGUpIHNvXG4gICAgLy8gdGlsZT1cIm5vbmVcIiBuZXZlciBhY2NpZGVudGFsbHkgaW5oZXJpdHMgYSB0aW50IGNvbG91ci5cbiAgICAtLXFsci1iYXJlLWljb24tY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbiAgICAvLyBXYWFyc2NodXdpbmdza25vcCAoMDUuMDguMjAyNikuIFplbGZkZSBhbWJlci1wYWFyIGFscyBkZSBcInVucHVibGlzaGVkXCJcbiAgICAvLyB3YWFyc2NodXdpbmcgdmFuIHFkbmFwcm8tYWN0aXZpdHktcm93ICgtLWMtd2Fybi1hbWJlci01MDAvNjAwKSwgem9kYXQgZWVuXG4gICAgLy8gcGFnaW5hIG1ldCBiZWlkZSBzb29ydGVuIHJpamVuIMOpw6luIHdhYXJzY2h1d2luZ3NrbGV1ciBoZWVmdCBlbiBuaWV0IHR3ZWVcbiAgICAvLyBuZXQtbmlldC1nZWxpamtlIG9yYW5qZXMuIERlIGhvdmVyLXZ1bGxpbmcgaXMgZGUgYmVzdGFhbmRlIHphY2h0ZVxuICAgIC8vIHNpZ25hYWwtb3JhbmplIHVpdCBkZSB0b2tlbnMsIGdlZW4gbmlldXcgaGFuZGdlcHJpa3QgaGV4amUuXG4gICAgLS1xbHItd2FybmluZy1jb2xvcjogdmFyKC0tYy13YXJuLWFtYmVyLTUwMCwgI2Q5NzcwNik7XG4gICAgLS1xbHItd2FybmluZy1jb2xvci1ob3ZlcjogdmFyKC0tYy13YXJuLWFtYmVyLTYwMCwgI2I0NTMwOSk7XG4gICAgLS1xbHItd2FybmluZy1iZy1ob3ZlcjogdmFyKC0tYy1zaWduYWwtb3JhbmdlLWJnLCAjZmRlYWRjKTtcbiAgICAvLyBTZWFyY2gtaGlnaGxpZ2h0IDxtYXJrPiAoMzAuMDcuMjAyNiwgUFdBIGluYm94IHNlYXJjaCByZXN1bHRzKS4gQVxuICAgIC8vIFNFTEYtQ09OVEFJTkVEIHBhaXIg4oCUIGRlbGliZXJhdGVseSBOT1QgdmFyKC0tYy10ZXh0LWhlYWRpbmcpIGZvciB0aGVcbiAgICAvLyB0ZXh0IGNvbG91ciwgZXZlbiB0aG91Z2ggaXRzIGxpZ2h0LW1vZGUgdmFsdWUgaXMgdXNlZCBiZWxvdywgYmVjYXVzZVxuICAgIC8vIC0tYy10ZXh0LWhlYWRpbmcgRkxJUFMgdG8gYSBsaWdodCBncmV5IGluIFtkYXRhLXRoZW1lPWRhcmtdIHdoaWxlXG4gICAgLy8gLS1jLXNpZ25hbC15ZWxsb3ctYmcgaGFzIG5vIGRhcmstbW9kZSBvdmVycmlkZSBhdCBhbGwgKHNhbWUgYXMgZXZlcnlcbiAgICAvLyAtLWMtdGFnLSotYmcvLXRleHQgcGlsbCBwYWlyIGluIF9kZXNpZ24tdG9rZW5zLnNjc3MpIOKAlCByZWFkaW5nIHRoZVxuICAgIC8vIHJlYWN0aXZlIHRva2VuIGhlcmUgd291bGQgc2lsZW50bHkgcHJvZHVjZSBuZWFyLWludmlzaWJsZSBsaWdodC1vbi1cbiAgICAvLyBsaWdodCB0ZXh0IGluIGRhcmsgbW9kZS4gU28gdGhpcyBtaXJyb3JzIHRoZSAtLWMtdGFnLSogY29udmVudGlvblxuICAgIC8vIGluc3RlYWQ6IG9uZSBoYW5kLXBpY2tlZCwgdGhlbWUtSU5ERVBFTkRFTlQgcGFpciB0aGF0IHJlYWRzIHRoZSBzYW1lXG4gICAgLy8gaW4gYm90aCB0aGVtZXMsIGV4YWN0bHkgbGlrZSBhIHRhZy9waWxsLiBNZWFzdXJlZCBjb250cmFzdCAoV0NBR1xuICAgIC8vIHJlbGF0aXZlLWx1bWluYW5jZSBmb3JtdWxhLCBjb21wdXRlZCB3aXRoIHB5dGhvbjMsIG5vdCBleWViYWxsZWQpOlxuICAgIC8vICNmZWVkYjggYmcgdnMgIzFhMWY0ZCB0ZXh0ID0gMTMuMzg6MSDigJQgY2xlYXJzIHRoZSBXQ0FHIDEuNC4zIEFBXG4gICAgLy8gbWluaW11bSAoNC41OjEpIGZvciBib3RoIHRoZSAxNHB4LzUwMCB0aXRsZSBhbmQgdGhlIDEycHgvNDAwIHN1YnRpdGxlXG4gICAgLy8gd2l0aCB3aWRlIG1hcmdpbiAoYWxzbyBjbGVhcnMgQUFBJ3MgNzoxKS4gLS1jLXNpZ25hbC15ZWxsb3ctdGV4dFxuICAgIC8vICh0aGUgdGlsZSBwYWxldHRlJ3Mgb3duIHllbGxvdyBmb3JlZ3JvdW5kKSB3YXMgbWVhc3VyZWQgdG9vIGFuZFxuICAgIC8vIFJFSkVDVEVEIOKAlCBvbmx5IDMuMjA6MSBhZ2FpbnN0IHRoaXMgc2FtZSBiZywgYmVsb3cgQUEuXG4gICAgLS1xbHItbWFyay1iZzogdmFyKC0tYy1zaWduYWwteWVsbG93LWJnLCAjZmVlZGI4KTtcbiAgICAtLXFsci1tYXJrLWNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZyk7XG4gICAgLy8gVHJlZSBzdXBwb3J0ICgyMS4wNy4yMDI2KSDigJQgc2VsZWN0ZWQgcmV1c2VzIHRoZSBTQU1FIHRva2Vuc1xuICAgIC8vIC5pcy1wcmVzc2VkIGFscmVhZHkgdXNlcyAobm8gbGlnaHRlciBwdXJwbGUtc29mdCB0b2tlbiBleGlzdHMgeWV0O1xuICAgIC8vIHJldXNpbmcgcmF0aGVyIHRoYW4gaGFuZC1waWNraW5nIGEgbmV3IGhleCwgY29uc2lzdGVudCB3aXRoIHJ1bGUgMS4yKS5cbiAgICAtLXFsci1iZy1zZWxlY3RlZDogdmFyKC0tYy1wdXJwbGUtc29mdC0xMiwgcmdiYSg2NCwgNzMsIDE1NCwgMC4xMikpO1xuICAgIC0tcWxyLWJnLXNlbGVjdGVkLWhvdmVyOiB2YXIoLS1jLXB1cnBsZS1zb2Z0LTE4LCByZ2JhKDY0LCA3MywgMTU0LCAwLjE4KSk7XG4gICAgLy8gRGVwdGggaW5kZW50IHN0ZXAg4oCUIHR1bmFibGUgcGVyIGNvbnN1bWVyIChpbmxpbmUgc3R5bGUgb3IgYSBzY29wZWRcbiAgICAvLyBydWxlKSwgaW5kZXBlbmRlbnQgb2Ygd2hldGhlciB0aGUgYGRlcHRoYCBhdHRyaWJ1dGUgaXMgdXNlZCBhdCBhbGwuXG4gICAgLy8gLS1xbHItZGVwdGggaXRzZWxmIGRlZmF1bHRzIHRvIDAgaGVyZSBzbyB0aGUgY2FsYygpIGJlbG93IGlzIGFsd2F5c1xuICAgIC8vIHZhbGlkIGV2ZW4gd2hlbiBxZG5hLWxpc3Qtcm93LmpzIG5ldmVyIHNldHMgdGhlIGlubGluZSBjdXN0b21cbiAgICAvLyBwcm9wZXJ0eSAoc2VlIHRoZSBKUyBkb2MtY29tbWVudCdzIFwiRE9NIHN0cnVjdHVyZSBub3RlXCIpLlxuICAgIC0tcWxyLWRlcHRoOiAwO1xuICAgIC0tcWxyLWRlcHRoLXN0ZXA6IDIwcHg7XG4gICAgLy8gRXhwYW5kLWNoZXZyb24gcm90YXRpb24gZHVyYXRpb24g4oCUIHplcm9lZCB1bmRlciByZWR1Y2VkIG1vdGlvbiBiZWxvdyxcbiAgICAvLyBzYW1lIGlkaW9tIGFzIHFkbmFwcm8tdGFiLWJhcidzIHNsaWRpbmcgcGlsbCAoLS10Yi1waWxsLWR1cmF0aW9uKS5cbiAgICAtLXFsci10b2dnbGUtZHVyYXRpb246IDE4MG1zO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDQ0cHg7IC8vIFdDQUcvQXBwbGUgSElHIG1pbmltdW0gdG91Y2ggdGFyZ2V0XG5cbiAgICAvLyBgZGlzcGxheTogZmxleGAgb24gdGhlIGNsYXNzIHNlbGVjdG9yIG91dHJhbmtzIHRoZSBVQSBydWxlXG4gICAgLy8gYFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZSB9YCwgc28gYSByb3cgaGlkZGVuIHZpYSB0aGUgSFRNTCBgaGlkZGVuYFxuICAgIC8vIGF0dHJpYnV0ZS9wcm9wZXJ0eSBzdGF5ZWQgdmlzaWJsZSAoZm91bmQgMjUuMDguMjAyNjogdGhlIFB1bHNlXG4gICAgLy8gXCJtZWVyZGVyZSBhbnR3b29yZGVuIGp1aXN0XCIgdG9nZ2xlLXJvdyBrZXB0IHNob3dpbmcgb24gYSBwb2xsKS5cbiAgICAvLyBSZXN0b3JlIHRoZSBwbGF0Zm9ybSBjb250cmFjdCBleHBsaWNpdGx5LlxuICAgICZbaGlkZGVuXSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIC8vIERlcHRoIGluZGVudCDigJQgYWRkaXRpdmUgb24gdG9wIG9mIHRoZSBiYXNlIDE2cHggbGVmdCBwYWRkaW5nLiBEZWZhdWx0XG4gICAgLy8gLS1xbHItZGVwdGg6IDAgbWFrZXMgdGhpcyByZXNvbHZlIHRvIGV4YWN0bHkgMTZweCwgYnl0ZS1mb3ItYnl0ZSB0aGVcbiAgICAvLyBzYW1lIGFzIHRoZSBwbGFpbiBgcGFkZGluZ2Agc2hvcnRoYW5kIGFib3ZlLCBzbyBub24tdHJlZSBjb25zdW1lcnMgc2VlXG4gICAgLy8gbm8gY2hhbmdlIGF0IGFsbC5cbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoMTZweCArICh2YXIoLS1xbHItZGVwdGgpICogdmFyKC0tcWxyLWRlcHRoLXN0ZXApKSk7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHZhcigtLXFsci10aXRsZS1jb2xvcik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgYm9yZGVyOiAwIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTAwbXMgZWFzZS1vdXQ7XG5cbiAgICAmOmhvdmVyOm5vdCgucWxyLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXFsci1iZy1ob3Zlcik7XG4gICAgfVxuXG4gICAgJi5pcy1wcmVzc2VkOm5vdCgucWxyLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXFsci1iZy1wcmVzc2VkKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUsXG4gICAgJi5mb3JjZS1mb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICBpbnNldCAwIDAgMCAycHggdmFyKC0tcWxyLWZvY3VzLXJpbmcpLFxuICAgICAgICAgICAgaW5zZXQgMCAwIDAgNXB4IHZhcigtLXFsci1mb2N1cy1nbG93KTtcbiAgICB9XG5cbiAgICAmLnFsci1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIHN0YXRpYyAoMjguMDcuMjAyNikgLS0tLVxuICAgIC8vIFB1cmVseSBpbmZvcm1hdGlvbmFsLCBub24taW50ZXJhY3RpdmUgcm93IChlLmcuIFwiVXNlciBJRDogIzEyM1wiKS5cbiAgICAvLyBVbmxpa2UgLnFsci1kaXNhYmxlZCBhYm92ZSwgdGhpcyBkb2VzIE5PVCBkaW0gdGhlIHJvdyDigJQgZnVsbFxuICAgIC8vIGxlZ2liaWxpdHkgaXMgdGhlIHdob2xlIHBvaW50IChzZWUgcWRuYS1saXN0LXJvdy5qcydzIGBzdGF0aWNgIGRvY1xuICAgIC8vIG5vdGUgZm9yIHRoZSBmdWxsIGNvbnRyYXN0IHdpdGggYGRpc2FibGVkYCkuIE9ubHkgc3RyaXBzIHRoZVxuICAgIC8vIGludGVyYWN0aW9uIGFmZm9yZGFuY2VzOiBubyBob3Zlci9wcmVzc2VkIGJhY2tncm91bmQsIG5vIGZvY3VzIHJpbmcsXG4gICAgLy8gZGVmYXVsdCBjdXJzb3IuIFRoZSBjb21wb25lbnQgaXRzZWxmIGFsc28gcmVtb3ZlcyB0YWJpbmRleC9yb2xlLCBzb1xuICAgIC8vIDpmb2N1cy12aXNpYmxlIGJlbG93IGlzIG1vc3RseSBhIGJlbHQtYW5kLWJyYWNlcyByZXNldCBpbiBjYXNlIGEgaG9zdFxuICAgIC8vIGZvY3VzZXMgdGhlIHJvdyBwcm9ncmFtbWF0aWNhbGx5LlxuICAgICYucWxyLXN0YXRpYyB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgICAgICYuaXMtcHJlc3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQcmV2aWV3LW9ubHkgZm9yY2Utc3RhdGUgdXRpbGl0eSAobWlycm9ycyBxZG5hcHJvLW1lbnUtaXRlbSAvIHFkbmFwcm8tZXZlbnQtY2FyZCkuXG4gICAgJi5mb3JjZS1ob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXFsci1iZy1ob3Zlcik7XG4gICAgfVxuICAgICYuZm9yY2UtcHJlc3NlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXFsci1iZy1wcmVzc2VkKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIFNlbGVjdGVkICh0cmVlIHN1cHBvcnQsIDIxLjA3LjIwMjYpIC0tLS1cbiAgICAvLyBQZXJzaXN0ZW50IFwiYWN0aXZlIHJvd1wiIHN0YXRlLCBkaXN0aW5jdCBmcm9tIHRoZSB0cmFuc2llbnRcbiAgICAvLyBob3Zlci9wcmVzc2VkIHN0YXRlcyBhYm92ZS4gVGl0bGUvc3VidGl0bGUgY29sb3VycyBhcmUgdW5jaGFuZ2VkIOKAlFxuICAgIC8vIC0tcWxyLXRpdGxlLWNvbG9yIC8gLS1xbHItc3VidGl0bGUtY29sb3IgYWxyZWFkeSByZWFkIGxlZ2libHkgYWdhaW5zdFxuICAgIC8vIHRoaXMgdGludCBpbiBib3RoIHRoZW1lcyAoc2FtZSB0b2tlbnMgLmlzLXByZXNzZWQgYWxyZWFkeSByZWxpZXMgb24sXG4gICAgLy8gbm8gbmV3IGRhcmstbW9kZSBydWxlIG5lZWRlZCBoZXJlKS5cbiAgICAmLnFsci1zZWxlY3RlZDpub3QoLnFsci1kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xbHItYmctc2VsZWN0ZWQpO1xuICAgIH1cbiAgICAmLnFsci1zZWxlY3RlZDpob3Zlcjpub3QoLnFsci1kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xbHItYmctc2VsZWN0ZWQtaG92ZXIpO1xuICAgIH1cblxuICAgIC8vIC0tLS0gVG9uZSAoMjguMDcuMjAyNikgLS0tLVxuICAgIC8vIFJlY29sb3VycyB0aXRsZS9zdWJ0aXRsZS90aGUgYmFyZSBnbHlwaCAodGlsZT1cIm5vbmVcIikvdGhlIGJ1aWx0LWluXG4gICAgLy8gdHJhaWxpbmcgY2hldnJvbiBieSBvdmVycmlkaW5nIHRoZSBTQU1FIGN1c3RvbSBwcm9wZXJ0aWVzIHRob3NlXG4gICAgLy8gZWxlbWVudHMgYWxyZWFkeSByZWFkICgtLXFsci10aXRsZS1jb2xvciAvIC0tcWxyLXN1YnRpdGxlLWNvbG9yIC9cbiAgICAvLyAtLXFsci1jaGV2cm9uLWNvbG9yIC8gLS1xbHItYmFyZS1pY29uLWNvbG9yKSDigJQgbm8gcGVyLWVsZW1lbnQgcnVsZVxuICAgIC8vIG5lZWRlZCwgdGhlIGNhc2NhZGUgZG9lcyB0aGUgd29yay4gRGVsaWJlcmF0ZWx5IGRvZXMgTk9UIHRvdWNoXG4gICAgLy8gLS1xbHItdGlsZS1iZy8tLXFsci10aWxlLWZnIOKAlCB0aGUgdGludGVkIHRpbGUgYmFja2dyb3VuZCBzdGF5cyBvd25lZFxuICAgIC8vIGJ5IGB0aW50YCAoc2VlIHFkbmEtbGlzdC1yb3cuanMncyBgdG9uZWAgZG9jIG5vdGUpLlxuICAgICYucWxyLXRvbmUtZGFuZ2VyIHtcbiAgICAgICAgLy8gUmV1c2VzIC0tYy1zaWduYWwtcmVkLXRleHQsIHRoZSBTQU1FIHRva2VuIC5xbHItdGlsZS1jb2xvci1yZWQnc1xuICAgICAgICAvLyBmb3JlZ3JvdW5kIGFscmVhZHkgdXNlcyBiZWxvdywgcmF0aGVyIHRoYW4gYSBuZXcgaGFuZC1waWNrZWQgaGV4LlxuICAgICAgICAtLXFsci10aXRsZS1jb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xuICAgICAgICAtLXFsci1zdWJ0aXRsZS1jb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xuICAgICAgICAtLXFsci1jaGV2cm9uLWNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7XG4gICAgICAgIC0tcWxyLWJhcmUtaWNvbi1jb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xuICAgIH1cblxuICAgICYucWxyLXRvbmUtbXV0ZWQge1xuICAgICAgICAvLyBSZXVzZXMgLS1jLXRleHQtbXV0ZWQsIHRoZSBTQU1FIHRva2VuIC0tcWxyLXN1YnRpdGxlLWNvbG9yIGFscmVhZHlcbiAgICAgICAgLy8gZGVmYXVsdHMgdG8g4oCUIGl0IGhhcyBhIEdMT0JBTCBkYXJrLW1vZGUgb3ZlcnJpZGUgaW5cbiAgICAgICAgLy8gX2Rlc2lnbi10b2tlbnMuc2Nzcywgc28gbm8gZXh0cmEgW2RhdGEtdGhlbWU9ZGFya10gcnVsZSBpcyBuZWVkZWRcbiAgICAgICAgLy8gZm9yIHRoaXMgdG9uZSAoY29udHJhc3Qgd2l0aCB0b25lPVwiZGFuZ2VyXCIgYmVsb3cpLiBOT1QgYW5cbiAgICAgICAgLy8gb3BhY2l0eSByZWR1Y3Rpb24g4oCUIHN0YXlzIGZ1bGx5IGxlZ2libGUsIHBlciBLaW0ncyByZXF1aXJlbWVudC5cbiAgICAgICAgLS1xbHItdGl0bGUtY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgICAgIC0tcWxyLXN1YnRpdGxlLWNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgICAgICAtLXFsci1jaGV2cm9uLWNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgICAgICAtLXFsci1iYXJlLWljb24tY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgfVxufVxuXG4vLyAtLS0tIFN1cmZhY2U6IG9uLXB1cnBsZSAoMDMuMDguMjAyNiwgS2ltKSAtLS0tXG4vLyBcIklrIHZpbmQgZGV6ZSBrbm9wcGVuIGVlbiBiZWV0amUgdGUgdmVlbCBjb250cmFzdCBoZWJiZW4uIEt1bm5lbiB3ZSB6b3JnZW5cbi8vIGRhdCBkZSBzdXJmYWNlIGtsZXVyICh3aXQpIGRlemVsZmRlIGtsZXVyIGtyaWpndCBhbHMgZGUga25vcHBlbiBpbiBkZSBib3R0b21cbi8vIHNoZWV0LlwiIOKAlCB0aGUgUFdBIGxvY2F0aW9uL2RlcGFydG1lbnQgY2hvb3NlciBwYWludHMgaXRzIG93biAtLWMtcHVycGxlLTUwMFxuLy8gc2NyZWVuIChwaG9uZSB0YWtlb3Zlcikgb3IgZGlhbG9nIHBhbmVsLCBhbmQgYSB3aGl0ZSByb3dzLWNhcmQgb24gdG9wIG9mIHRoYXRcbi8vIHNob3V0cy4gVGhpcyByZWNvbG91cnMgdGhlIHJvdyBmb3IgYSBwdXJwbGUgc3VyZmFjZSwgdXNpbmcgdGhlIFNBTUUgdG9rZW5cbi8vIHZvY2FidWxhcnkgdGhlIHB1cnBsZSBib3R0b20gc2hlZXQgYWxyZWFkeSBlc3RhYmxpc2hlZDpcbi8vICAgc3VyZmFjZSAgICAgIC0tYy13aGl0ZS0xNCAgPSAucWRuYXByby1ib3R0b20tc2hlZXQtYnV0dG9uLWdyb3VwLmJzYmctb24tcHVycGxlXG4vLyAgIHRpdGxlICAgICAgICAtLWMtdGV4dC1vbi1hY3Rpb24sIHNlY29uZGFyeSAtLWMtd2hpdGUtNzBcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAucWRuYXByby1lbXB0eS1zdGF0ZS5lbXB0eS1zdGF0ZS1vbi1wdXJwbGVcbi8vIE5hbWluZyBmb2xsb3dzIHFkbmFwcm8tZW1wdHktc3RhdGUncyBgc3VyZmFjZT1cIm9uLXB1cnBsZVwiYCBhdHRyaWJ1dGUsIHdoaWNoXG4vLyB0aGUgdmVyeSBzYW1lIGNob29zZXIgdGVtcGxhdGUgYWxyZWFkeSB1c2VzIGZvciBpdHMgZW1wdHkgc3RhdGUuXG4vL1xuLy8gVFdPIGVudHJ5IHBvaW50cywgT05FIHRva2VuIHNldCAoaGVuY2UgdGhlIHNoYXJlZCBzZWxlY3RvciBsaXN0IHJhdGhlciB0aGFuIGFcbi8vIG1peGluIOKAlCB0aGlzIGZpbGUgaXMgY29tcGlsZWQgc3RhbmRhbG9uZSBmb3IgdGhlIFBXQSBieVxuLy8gYXBwX2FwaV9xZG5hdjIvc3luYy12Mi1jb21wb25lbnRzLmpzKTpcbi8vICAgLSBgLnFkbmFwcm8tbGlzdC1yb3ctZ3JvdXAtLW9uLXB1cnBsZWAgb24gdGhlIGNhcmQgd3JhcHBlciwgd2hpY2ggaXMgd2hhdCBhXG4vLyAgICAgZ3JvdXBlZCBsaXN0IG5lZWRzOiBpdCBwYWludHMgdGhlIHN1cmZhY2UgQU5EIHJlY29sb3VycyB0aGUgcm93cyBpbnNpZGUsXG4vLyAgICAgc28gdGhlIGNvbnN1bWVyIHNldHMgZXhhY3RseSBvbmUgY2xhc3MgKHRoZSBncm91cCBpcyBhIHBsYWluIHV0aWxpdHlcbi8vICAgICBjbGFzcywgbm90IGEgY3VzdG9tIGVsZW1lbnQsIHNvIGl0IGNhbm5vdCBjYXJyeSBhbiBhdHRyaWJ1dGUpLlxuLy8gICAtIGBzdXJmYWNlPVwib24tcHVycGxlXCJgIG9uIGEgc2luZ2xlIHJvdyB0aGF0IHNpdHMgb24gYSBwdXJwbGUgc3VyZmFjZVxuLy8gICAgIHdpdGhvdXQgYSBncm91cCBjYXJkIGFyb3VuZCBpdC5cbi8vXG4vLyBLTk9XTiBMSU1JVCwgZGVsaWJlcmF0ZWx5IG5vdCBzb2x2ZWQ6IHRoaXMgYmxvY2sgbGFuZHMgQUZURVIgdGhlIGB0b25lYFxuLy8gbW9kaWZpZXJzIHdpdGggdGhlIHNhbWUgc3BlY2lmaWNpdHksIHNvIGNvbWJpbmluZyB0b25lPVwiZGFuZ2VyXCIgd2l0aCBhblxuLy8gb24tcHVycGxlIHN1cmZhY2UgbWFrZXMgdGhlIHN1cmZhY2Ugd2luIGFuZCB0aGUgcmVkIHNpZ25hbCBkaXNhcHBlYXIgKGFuZCBpblxuLy8gW2RhdGEtdGhlbWU9ZGFya10gdGhlIHJldmVyc2UsIGJlY2F1c2UgdG9uZT1cImRhbmdlclwiIGhhcyBpdHMgb3duIDMtY2xhc3MgcnVsZVxuLy8gYmVsb3cpLiBObyBjb25zdW1lciBjb21iaW5lcyB0aGVtIHRvZGF5OyBhbiBvbi1wdXJwbGUgZGFuZ2VyIHRva2VuIHBhaXIgY2FuXG4vLyBiZSBhZGRlZCB3aGVuIG9uZSBkb2VzLlxuLnFkbmFwcm8tbGlzdC1yb3cucWxyLXN1cmZhY2Utb24tcHVycGxlLFxuLnFkbmFwcm8tbGlzdC1yb3ctZ3JvdXAtLW9uLXB1cnBsZSAucWRuYXByby1saXN0LXJvdyB7XG4gICAgLy8gSWRsZSBzdGF5cyB0cmFuc3BhcmVudCAodGhlIGdyb3VwIGNhcmQgaXMgdGhlIHN1cmZhY2UpLCBzbyBob3Zlci9wcmVzc2VkXG4gICAgLy8gU1RBQ0sgb24gdG9wIG9mIHRoZSBncm91cCdzIG93biAxNCUg4oCUIDEwJS8yMiUgaGVyZSByZWFkcyBhcyB+MjMlLzMzJVxuICAgIC8vIHRvdGFsLCBkZWxpYmVyYXRlbHkgY2xvc2UgdG8gYnNiLW9uLXB1cnBsZSdzIG93biAxNCUvMjIlIHN0ZXBzIGFnYWluc3RcbiAgICAvLyB0aGUgZmxhdCBwdXJwbGUgcGFuZWwgaXQgc2l0cyBvbi5cbiAgICAtLXFsci1iZy1ob3ZlcjogdmFyKC0tYy13aGl0ZS0xMCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEwKSk7XG4gICAgLS1xbHItYmctcHJlc3NlZDogdmFyKC0tYy13aGl0ZS0yMiwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKSk7XG4gICAgLS1xbHItYmctc2VsZWN0ZWQ6IHZhcigtLWMtd2hpdGUtMjIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMikpO1xuICAgIC0tcWxyLWJnLXNlbGVjdGVkLWhvdmVyOiB2YXIoLS1jLXdoaXRlLTI4LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjgpKTtcbiAgICAtLXFsci1ib3JkZXI6IHZhcigtLWMtd2hpdGUtMTQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCkpO1xuICAgIC0tcWxyLXRpdGxlLWNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uLCAjZmZmZmZmKTtcbiAgICAtLXFsci1zdWJ0aXRsZS1jb2xvcjogdmFyKC0tYy13aGl0ZS03MCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcwKSk7XG4gICAgLS1xbHItY2hldnJvbi1jb2xvcjogdmFyKC0tYy13aGl0ZS03MCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcwKSk7XG4gICAgLy8gdGlsZT1cIm5vbmVcIiBnbHlwaCAodGhlIGNob29zZXIncyBtYXAtbWFya2VyIC8gZG9tYWluIHBpbnMpOiBmdWxsIHdoaXRlLFxuICAgIC8vIHNhbWUgd2VpZ2h0IGFzIHRoZSB0aXRsZSBpdCBiZWxvbmdzIHRvLlxuICAgIC0tcWxyLWJhcmUtaWNvbi1jb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbiwgI2ZmZmZmZik7XG4gICAgLy8gVGhlIGRlZmF1bHQgZm9jdXMgcGFpciBpcyBicmFuZC1wdXJwbGUgb24gcHVycGxlID0gaW52aXNpYmxlLlxuICAgIC0tcWxyLWZvY3VzLXJpbmc6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24sICNmZmZmZmYpO1xuICAgIC8vIEFtYmVyIG9wIHBhYXJzIGxlZXN0IG5pZXQgYWxzIGVlbiB3YWFyc2NodXdpbmcgbWFhciBhbHMgdnVpbC4gT3AgZGl0IHZsYWtcbiAgICAvLyB3b3JkdCBkZSB3YWFyc2NodXdpbmcgZHVzIHdpdCBtZXQgZWVuIGRvb3JzY2hpam5lbmRlIHdpdHRlIHZ1bGxpbmcsIHplbGZkZVxuICAgIC8vIHZvY2FidWxhaXJlIGFscyBkZSByZXN0IHZhbiBkZXplIHZhcmlhbnQuXG4gICAgLS1xbHItd2FybmluZy1jb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbiwgI2ZmZmZmZik7XG4gICAgLS1xbHItd2FybmluZy1jb2xvci1ob3ZlcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbiwgI2ZmZmZmZik7XG4gICAgLS1xbHItd2FybmluZy1iZy1ob3ZlcjogdmFyKC0tYy13aGl0ZS0yMiwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKSk7XG4gICAgLS1xbHItZm9jdXMtZ2xvdzogdmFyKC0tYy13aGl0ZS0yMiwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKSk7XG4gICAgLy8gTk9UIHRvdWNoZWQ6IC0tcWxyLXRpbGUtYmcvLS1xbHItdGlsZS1mZyAodGhlIGB0aW50YCBwYWxldHRlJ3MgdGlsZXMgYXJlXG4gICAgLy8gbGlnaHQgcGFzdGVscyB0aGF0IGFscmVhZHkgcmVhZCBvbiBwdXJwbGUpIGFuZCAtLXFsci1tYXJrLWJnLy1jb2xvciAodGhlXG4gICAgLy8gc2VhcmNoLWhpZ2hsaWdodCBwaWxsIGlzIGEgdGhlbWUtaW5kZXBlbmRlbnQgeWVsbG93IGNoaXAgYnkgZGVzaWduKS5cbn1cblxuLy8gLS1jLXNpZ25hbC1yZWQtdGV4dCBoYXMgbm8gZ2xvYmFsIGRhcmstbW9kZSByZXBvaW50IChzYW1lIHNpdHVhdGlvblxuLy8gLnFsci10aWxlLWNvbG9yLXJlZCBiZWxvdyBpcyBhbHJlYWR5IGluKSDigJQgc28gdG9uZT1cImRhbmdlclwiIGdldHMgaXRzIG93blxuLy8gY29tcG9uZW50LWxvY2FsIFtkYXRhLXRoZW1lPWRhcmtdIG92ZXJyaWRlIGhlcmUsIG1pcnJvcmluZyB0aGUgZXhhY3Rcbi8vIGV4aXN0aW5nIGNvbnZlbnRpb24gdGhpcyBmaWxlIGFscmVhZHkgZXN0YWJsaXNoZWQgZm9yIHRoZSB0aWxlIHBhbGV0dGUuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby1saXN0LXJvdy5xbHItdG9uZS1kYW5nZXIge1xuICAgIC0tcWxyLXRpdGxlLWNvbG9yOiB2YXIoLS1jLXdhcm4tcmVkLTQwMCwgI2Y4NzE3MSk7XG4gICAgLS1xbHItc3VidGl0bGUtY29sb3I6IHZhcigtLWMtd2Fybi1yZWQtNDAwLCAjZjg3MTcxKTtcbiAgICAtLXFsci1jaGV2cm9uLWNvbG9yOiB2YXIoLS1jLXdhcm4tcmVkLTQwMCwgI2Y4NzE3MSk7XG4gICAgLS1xbHItYmFyZS1pY29uLWNvbG9yOiB2YXIoLS1jLXdhcm4tcmVkLTQwMCwgI2Y4NzE3MSk7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnFkbmFwcm8tbGlzdC1yb3cge1xuICAgICAgICAtLXFsci10b2dnbGUtZHVyYXRpb246IDBtcztcbiAgICB9XG59XG5cbi8vIC0tLS0gTGVhZGluZyBjbHVzdGVyOiBleHBhbmQtdG9nZ2xlICsgdGlsZSAodHJlZSBzdXBwb3J0LCAyMS4wNy4yMDI2KSAtLS0tXG4vLyBPbmx5IGV2ZXIgcmVuZGVyZWQgd2hlbiBgZXhwYW5kYWJsZWAgaXMgc2V0IChzZWUgcWRuYS1saXN0LXJvdy5qcydzIFwiRE9NXG4vLyBzdHJ1Y3R1cmUgbm90ZVwiKSDigJQgdGlnaHRlciBpbnRlcm5hbCBnYXAgdGhhbiB0aGUgcm93J3Mgb3duIDEycHggZ2FwIHNvXG4vLyB0aGUgdG9nZ2xlIHJlYWRzIGFzIGdsdWVkIHRvIHRoZSB0aWxlIGl0IHByZWNlZGVzLlxuLnFsci1sZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG5cbi8vIEl0cyBvd24gZm9jdXNhYmxlIGRpc2Nsb3N1cmUgY29udHJvbCAocm9sZT1idXR0b24sIG93biB0YWJpbmRleCkg4oCUIHNlZVxuLy8gdGhlIEpTIGRvYy1jb21tZW50J3MgXCJBUklBIHBhdHRlcm5cIiBub3RlIGZvciB3aHkgYXJpYS1leHBhbmRlZCBsaXZlcyBvblxuLy8gdGhlIFJPVyBpbnN0ZWFkIG9mIGhlcmUuIDQ0cHggaGl0IGFyZWEgKEFwcGxlIEhJRyAvIFdDQUcgdGFyZ2V0IHNpemUpLFxuLy8gdmlzdWFsbHkgc21hbGxlciAxOHB4IGljb24gdmlhIGNlbnRlcmluZyDigJQgc2hyaW5rcyB1bmRlciBzaXplPVwiY29tcGFjdFwiXG4vLyAoc2VlIHRoYXQgYmxvY2sgYmVsb3cpLlxuLnFsci1leHBhbmQtdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcm93LCAxMnB4KTtcbiAgICBjb2xvcjogdmFyKC0tcWxyLWNoZXZyb24tY29sb3IpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTAwbXMgZWFzZS1vdXQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcWxyLWJnLWhvdmVyKTtcbiAgICB9XG4gICAgJjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1xbHItYmctcHJlc3NlZCk7XG4gICAgfVxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgaW5zZXQgMCAwIDAgMnB4IHZhcigtLXFsci1mb2N1cy1yaW5nKSxcbiAgICAgICAgICAgIGluc2V0IDAgMCAwIDRweCB2YXIoLS1xbHItZm9jdXMtZ2xvdyk7XG4gICAgfVxufVxuXG4ucWxyLWV4cGFuZC1jaGV2cm9uIHtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgLy8gVHJhbnNmb3JtLW9ubHksIHBlciB0aGUgdHJlZS1zdXBwb3J0IGNvbnRyYWN0IChuZXZlciBhbmltYXRlIGxheW91dFxuICAgIC8vIHByb3BlcnRpZXMpLiBEdXJhdGlvbiBpcyB6ZXJvZWQgdW5kZXIgcHJlZmVycy1yZWR1Y2VkLW1vdGlvbiBhYm92ZS5cbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tcWxyLXRvZ2dsZS1kdXJhdGlvbikgZWFzZTtcbn1cblxuLy8gUm90YXRpb24gbGl2ZXMgb24gdGhlIFJPVydzIC5xbHItZXhwYW5kZWQgY2xhc3MgKHNldCBvbmx5IGFsb25nc2lkZVxuLy8gYGV4cGFuZGFibGVgLCBzZWUgcWRuYS1saXN0LXJvdy5qcykgcmF0aGVyIHRoYW4gb24gdGhlIHRvZ2dsZSBpdHNlbGYsIHNvXG4vLyBpdCBzdGF5cyBpbiBzeW5jIHdpdGggdGhlIGFyaWEtZXhwYW5kZWQgdmFsdWUgb24gdGhlIHNhbWUgZWxlbWVudC5cbi5xZG5hcHJvLWxpc3Qtcm93LnFsci1leHBhbmRlZCAucWxyLWV4cGFuZC1jaGV2cm9uIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG5cbi8vIC0tLS0gTGVhZGluZyBpY29uLXRpbGUgLS0tLVxuLy8gNDB4NDAsIC0tci1yb3cgcmFkaXVzIOKAlCBtYXRjaGVzIHRoZSBvcmlnaW5hbCBkb2N1bWVudHNfcm93X19pY29uLS1mb2xkZXJcbi8vIGZvb3RwcmludCAoNDBweCAvIH4xMHB4LCBoZXJlIHRoZSBzZW1hbnRpYyAtLXItcm93IHRva2VuIHdoaWNoIHJlc29sdmVzIHRvXG4vLyAxMnB4KS4gSWNvbiBnbHlwaCBzaXRzIGF0IDIycHggaW5zaWRlIGl0IChyb3VnaGx5IHRoZSBzYW1lIHJhdGlvIGFzIHRoZVxuLy8gc291cmNlJ3MgMjRweC1pbi00MHB4IGZvbGRlciBpY29uKS5cbi5xbHItdGlsZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcm93LCAxMnB4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWxyLXRpbGUtYmcsIHZhcigtLWMtcHVycGxlLXNvZnQtMTIsIHJnYmEoNjQsIDczLCAxNTQsIDAuMTIpKSk7XG4gICAgY29sb3I6IHZhcigtLXFsci10aWxlLWZnLCB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSkpO1xufVxuXG4ucWxyLXRpbGUtaWNvbiB7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xufVxuXG4vLyBBY3Rpdml0eS1pY29uIHZhcmlhbnQgKGFkZGVkIDIyLjA3LjIwMjYsIEtpbSdzIHJlcXVlc3QpOiB0aGUgdGlsZSBob3N0cyBhXG4vLyB0d28tdG9uZSBxZG5hcHJvLWFjdGl2aXR5LWljb24gaW5zdGVhZCBvZiB0aGUgc2luZ2xlLWNvbG91ciBxZG5hcHJvLWljb25cbi8vIGdseXBoIOKAlCB0aGUgU0FNRSB2aXN1YWwgdGhlIHRhc2tsaXN0LWNhcmQgdGlsZSB1c2VzLiBUaGUgdGludCBiYWNrZ3JvdW5kXG4vLyAoLS1xbHItdGlsZS1iZywgYWxsIDggaHVlcykgc3RpbGwgZ292ZXJucyB0aGUgc3VyZmFjZSBiZWhpbmQgaXQsIGV4YWN0bHlcbi8vIGxpa2UgdGFza2xpc3QtY2FyZCdzIGNvbG91cmVkIHRpbGUuIFRoZSBhY3Rpdml0eS1pY29uIHNpemVzIElUU0VMRiB2aWEgaXRzXG4vLyBvd24gYHNpemVgIGF0dHJpYnV0ZSAoMjhweCBkZWZhdWx0IHRpbGUsIDIwcHggY29tcGFjdCDigJQgc2V0IGluXG4vLyBxZG5hLWxpc3Qtcm93LmpzLCBtaXJyb3JpbmcgaG93IHRhc2tsaXN0LWNhcmQgc2V0cyBpdCksIHNvIHRoZXJlIGlzIG5vIHNpemVcbi8vIHJ1bGUgaGVyZTsgLS1xbHItdGlsZS1mZyBpcyBpcnJlbGV2YW50IHRvIGl0IChpdHMgY29sb3VycyBhcmUgYmFrZWQgaW50b1xuLy8gdGhlIFNWRywgbm90IHJlY29sb3JhYmxlKS4gT25seSB0aGUgZmxleC1zaHJpbmsgZ3VhcmQgYmVsb3cgaXMgbmVlZGVkIHNvXG4vLyB0aGUgaWNvbiBuZXZlciBzcXVhc2hlcyB3aGVuIHRoZSByb3cgaXMgdGlnaHQuXG4ucWxyLXRpbGUtYWN0aXZpdHkge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4vLyBUaWxlIGNvbG91ciBwYWxldHRlIOKAlCBTQU1FIDggaHVlcyBhcyBxZG5hcHJvLXBpY2tlci1yb3cncyAucHItdGlsZS1jb2xvci0qXG4vLyAvIHFkbmFwcm8tdGFza2xpc3QtY2FyZCdzIC50bGMtY29sb3ItKiAoYmcgdmFsdWVzIGNvcGllZCAxOjEgc28gYSBwYWdlXG4vLyBtaXhpbmcgbGlzdC1yb3dzIHdpdGggdGhvc2UgY29tcG9uZW50cyByZWFkcyBhcyBvbmUgY29uc2lzdGVudCB0aWxlXG4vLyBmYW1pbHk7IG5vIHNoYXJlZCBTQ1NTIG1hcC9taXhpbiBleGlzdHMgZm9yIHRoaXMgcGFsZXR0ZSBhbnl3aGVyZSBpbiB0aGVcbi8vIGNvZGViYXNlIHlldCwgZWFjaCBjb21wb25lbnQgbWlycm9ycyBpdHMgb3duIGNvcHkg4oCUIGZvbGxvd2luZyB0aGF0XG4vLyBlc3RhYmxpc2hlZCBwYXR0ZXJuIHJhdGhlciB0aGFuIGludmVudGluZyBhIG5ldyBvbmUgZm9yIHRoaXMgY29tcG9uZW50KS5cbi8vIEZvcmVncm91bmQgKC0tcWxyLXRpbGUtZmcpIGlzIGFuIEFERElUSU9OIGxpc3Qtcm93IG5lZWRzIHRoYXQgdGhlIG90aGVyc1xuLy8gZG9uJ3Q6IHRoZWlyIHRpbGUgaWNvbiBpcyBlaXRoZXIgYSB0d28tdG9uZSBxZG5hcHJvLWFjdGl2aXR5LWljb24gKGFscmVhZHlcbi8vIGNvbG91cmVkKSBvciB1bnNldDsgbGlzdC1yb3cncyB0aWxlIGhvc3RzIGEgcGxhaW4gc2luZ2xlLWNvbG91clxuLy8gcWRuYXByby1pY29uLCBzbyBpdCBuZWVkcyBhbiBleHBsaWNpdCBsZWdpYmxlIGZvcmVncm91bmQgcGVyIHRpbnQuIFdoZXJlIGFuXG4vLyBleGlzdGluZyBzaWduYWwtKi10ZXh0IHRva2VuIGxpbmVzIHVwIHdpdGggdGhlIGh1ZSBpdCBpcyByZXVzZWQgKHJlZC9cbi8vIHllbGxvdy9ncmVlbi9ibHVlL3BpbmspOyBncmV5L2JsdWUtYnJpZ2h0L3B1cnBsZSBoYXZlIG5vIG1hdGNoaW5nIHRva2VuIHNvXG4vLyBhcmUgaGFuZC1waWNrZWQsIHNhbWUgaG9uZXN0eSBhcyB0aGUgYmcgcGFsZXR0ZSBhYm92ZS5cbi5xbHItdGlsZS1jb2xvci1wdXJwbGUgICAgICB7IC0tcWxyLXRpbGUtYmc6IHZhcigtLWMtY2hpcC1wdXJwbGUtYmcpOyAtLXFsci10aWxlLWZnOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7IH1cbi5xbHItdGlsZS1jb2xvci1ncmV5ICAgICAgICB7IC0tcWxyLXRpbGUtYmc6IHZhcigtLWMtZ3JleS01MCk7IC0tcWxyLXRpbGUtZmc6IHZhcigtLWMtZ3JleS02MDAsICM1NjViNjYpOyB9XG4ucWxyLXRpbGUtY29sb3ItcmVkICAgICAgICAgeyAtLXFsci10aWxlLWJnOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcpOyAtLXFsci10aWxlLWZnOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7IH1cbi5xbHItdGlsZS1jb2xvci15ZWxsb3cgICAgICB7IC0tcWxyLXRpbGUtYmc6IHZhcigtLWMtY2hpcC15ZWxsb3ctYmcpOyAtLXFsci10aWxlLWZnOiB2YXIoLS1jLXNpZ25hbC15ZWxsb3ctdGV4dCwgI2JmNzIwMik7IH1cbi5xbHItdGlsZS1jb2xvci1ncmVlbiAgICAgICB7IC0tcWxyLXRpbGUtYmc6IHZhcigtLWMtY2hpcC1ncmVlbi1iZyk7IC0tcWxyLXRpbGUtZmc6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQsICM0MjhiNmUpOyB9XG4ucWxyLXRpbGUtY29sb3ItYmx1ZSAgICAgICAgeyAtLXFsci10aWxlLWJnOiB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnKTsgLS1xbHItdGlsZS1mZzogdmFyKC0tYy1zaWduYWwtYmx1ZS10ZXh0LCAjNmE4YWI0KTsgfVxuLnFsci10aWxlLWNvbG9yLWJyaWdodC1ibHVlIHsgLS1xbHItdGlsZS1iZzogdmFyKC0tYy1jaGlwLWJyaWdodC1ibHVlLTItYmcpOyAtLXFsci10aWxlLWZnOiB2YXIoLS1jLXB1cnBsZS00MDApOyB9XG4ucWxyLXRpbGUtY29sb3ItcGluayAgICAgICAgeyAtLXFsci10aWxlLWJnOiB2YXIoLS1jLXNpZ25hbC1waW5rLWJnKTsgLS1xbHItdGlsZS1mZzogdmFyKC0tYy1zaWduYWwtcGluay10ZXh0LCAjYjI1Nzc3KTsgfVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWxyLXRpbGUtY29sb3ItcHVycGxlICAgICAgeyAtLXFsci10aWxlLWJnOiAjM2EzNTU1OyAtLXFsci10aWxlLWZnOiB2YXIoLS1jLXB1cnBsZS0yMDAsICNhNWFjZmYpOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucWxyLXRpbGUtY29sb3ItZ3JleSAgICAgICAgeyAtLXFsci10aWxlLWJnOiAjNDA0NDRkOyAtLXFsci10aWxlLWZnOiB2YXIoLS1jLWdyZXktMzAwLCAjYzRjN2NjKTsgfVxuW2RhdGEtdGhlbWU9ZGFya10gLnFsci10aWxlLWNvbG9yLXJlZCAgICAgICAgIHsgLS1xbHItdGlsZS1iZzogIzVhMmIyYjsgLS1xbHItdGlsZS1mZzogdmFyKC0tYy13YXJuLXJlZC00MDAsICNmODcxNzEpOyB9XG5bZGF0YS10aGVtZT1kYXJrXSAucWxyLXRpbGUtY29sb3IteWVsbG93ICAgICAgeyAtLXFsci10aWxlLWJnOiAjNWE0ZDFmOyAtLXFsci10aWxlLWZnOiB2YXIoLS1jLXdhcm4teWVsbG93LTUwMCwgI2ZiYmYyNCk7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5xbHItdGlsZS1jb2xvci1ncmVlbiAgICAgICB7IC0tcWxyLXRpbGUtYmc6ICMyYTU1NDQ7IC0tcWxyLXRpbGUtZmc6ICM3ZmUwYmM7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5xbHItdGlsZS1jb2xvci1ibHVlICAgICAgICB7IC0tcWxyLXRpbGUtYmc6ICMyZTNlNTQ7IC0tcWxyLXRpbGUtZmc6ICM4ZmI0ZTA7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5xbHItdGlsZS1jb2xvci1icmlnaHQtYmx1ZSB7IC0tcWxyLXRpbGUtYmc6ICMzYTRhOGE7IC0tcWxyLXRpbGUtZmc6ICNiOWM4ZjU7IH1cbltkYXRhLXRoZW1lPWRhcmtdIC5xbHItdGlsZS1jb2xvci1waW5rICAgICAgICB7IC0tcWxyLXRpbGUtYmc6ICM0ZTJhMzY7IC0tcWxyLXRpbGUtZmc6ICNlNGEwYjg7IH1cblxuLy8gLS0tLSB0aWxlPVwibm9uZVwiICgyOC4wNy4yMDI2LCBLaW0ncyBQV0Egc2V0dGluZ3MtcGFnZSByZXF1ZXN0KSAtLS0tXG4vLyBObyB0aW50ZWQgc3F1YXJlIOKAlCB0aGUgYGljb25gIGdseXBoICh3aGVuIHByZXNlbnQpIHJlbmRlcnMgYmFyZSwgZGlyZWN0bHlcbi8vIGluIHRoZSByb3cuIFJldXNlcyB0aGUgRVhBQ1QgU0FNRSAucWxyLXRpbGUgd3JhcHBlciBlbGVtZW50IGFuZFxuLy8gX2Rpc3RyaWJ1dGVMZWFkaW5nU2xvdCBtZXRob2QgcWRuYS1saXN0LXJvdy5qcyBhbHJlYWR5IGJ1aWxkcyBmb3Jcbi8vIHRpbGU9XCJ0aW50ZWRcIiAoc2VlIHRoYXQgZmlsZSdzIGB0aWxlYCBkb2Mgbm90ZSkg4oCUIG9ubHkgdGhpcyBDU1MsIGtleWVkIG9mZlxuLy8gdGhlIFJPT1QgLnFsci10aWxlLW5vbmUgbW9kaWZpZXIgY2xhc3MgKHNhbWUgaWRpb20gYXMgLnFsci1zaXplLWNvbXBhY3QpLFxuLy8gZGlmZmVyczogaXQgc3RyaXBzIHRoZSB3cmFwcGVyJ3MgZml4ZWQgNDB4NDAgZm9vdHByaW50L2JhY2tncm91bmQvcmFkaXVzXG4vLyBhbmQgcmVwb2ludHMgaXRzIGluaGVyaXRlZCBgY29sb3JgICh0aGUgaWNvbiByZWFkcyBpdCB2aWEgY3VycmVudENvbG9yKVxuLy8gYXdheSBmcm9tIHRoZSB0aW50IHBhbGV0dGUgKC0tcWxyLXRpbGUtZmcpIHRvIC0tcWxyLWJhcmUtaWNvbi1jb2xvclxuLy8gaW5zdGVhZCAoYnJhbmQtcHVycGxlIGRlZmF1bHQsIG92ZXJyaWRhYmxlIGJ5IGB0b25lYCBhYm92ZSkuIGB0aW50YCBpc1xuLy8gdGhlcmVieSBnZW51aW5lbHkgaWdub3JlZCBpbiB0aGlzIG1vZGUg4oCUIHRoZXJlIGlzIG5vIGJhY2tncm91bmQgbGVmdCBmb3Jcbi8vIGl0IHRvIGNvbG91ci5cbi5xZG5hcHJvLWxpc3Qtcm93LnFsci10aWxlLW5vbmUge1xuICAgIC8vIFRoZSBjb21wb3VuZCBgJi5xbHItc2l6ZS1jb21wYWN0IC5xbHItdGlsZWAgc2VsZWN0b3IgYmVsb3cgaXMgTk9UXG4gICAgLy8gcmVkdW5kYW50OiB3aXRob3V0IGl0LCB0aGlzIHJ1bGUgYW5kIC5xbHItc2l6ZS1jb21wYWN0J3Mgb3duXG4gICAgLy8gYC5xbHItdGlsZSB7IHdpZHRoOiAyOHB4OyAuLi4gfWAgKGZ1cnRoZXIgZG93biB0aGlzIGZpbGUpIGhhdmUgdGhlXG4gICAgLy8gRVhBQ1QgU0FNRSBzcGVjaWZpY2l0eSAoMyBjbGFzc2VzIGVhY2gpIOKAlCB3aGljaGV2ZXIgcnVsZSBpcyBsYXRlciBpblxuICAgIC8vIHRoZSBjb21waWxlZCBDU1Mgd291bGQgc2lsZW50bHkgd2luIGEgY29tcGFjdCt0aWxlPVwibm9uZVwiIHJvdy4gTGlzdGluZ1xuICAgIC8vIHRoZSBjb21iaW5lZCBzZWxlY3RvciBleHBsaWNpdGx5ICg0IGNsYXNzZXMpIG1ha2VzIHRoaXMgb3ZlcnJpZGVcbiAgICAvLyBvcmRlci1pbmRlcGVuZGVudCBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gZmlsZSBwb3NpdGlvbi5cbiAgICAucWxyLXRpbGUsXG4gICAgJi5xbHItc2l6ZS1jb21wYWN0IC5xbHItdGlsZSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1xbHItYmFyZS1pY29uLWNvbG9yKTtcbiAgICB9XG5cbiAgICAucWxyLXRpbGUtaWNvbiB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgfVxuXG4gICAgLy8gSGlnaGVyIHNwZWNpZmljaXR5IHRoYW4gdGhlIGJhc2UgLnFsci1zaXplLWNvbXBhY3QgMThweCBydWxlIGJlbG93XG4gICAgLy8gKDQgY2xhc3NlcyB2cyAzKSwgc28gdGhpcyB3aW5zIHJlZ2FyZGxlc3Mgb2Ygc291cmNlIG9yZGVyLlxuICAgICYucWxyLXNpemUtY29tcGFjdCAucWxyLXRpbGUtaWNvbiB7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgfVxufVxuXG4vLyAtLS0tIEJvZHk6IHRpdGxlICsgb3B0aW9uYWwgc3VidGl0bGUgLS0tLVxuLnFsci1ib2R5IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMnB4O1xufVxuXG4ucWxyLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDsgLy8gc2VlIGZpbGUgaGVhZGVyIOKAlCBtYXRjaGVzIHRoZSByb3ctdGl0bGUgY29udmVudGlvbiwgbm90IHRoZSA2MDAgZG9jdW1lbnRzX3JvdyB1c2VkXG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogdmFyKC0tcWxyLXRpdGxlLWNvbG9yKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5xbHItc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6IHZhcigtLXFsci1zdWJ0aXRsZS1jb2xvcik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vLyAtLS0tIFNlYXJjaC1oaWdobGlnaHQgPG1hcms+ICgzMC4wNy4yMDI2KSAtLS0tXG4vLyBXcml0dGVuIEZMQVQgb24gcHVycG9zZSAobm8gJC12YXJpYWJsZXMsIG5vIG5lc3RlZCAmKSBzbyB0aGlzIHN5bmNzIHRvIHRoZVxuLy8gUFdBIHdpdGhvdXQgbmVlZGluZyB0aGUgY29tcGlsZVNjc3MgZmxhZyDigJQgc2VlIHFkbmEtbGlzdC1yb3cuanMnc1xuLy8gXCJTZWFyY2gtaGlnaGxpZ2h0IHByb3BlcnR5XCIgZG9jIG5vdGUgZm9yIHRoZSBmdWxsIEFQSS4gU2NvcGVkIHRvXG4vLyAucWxyLXRpdGxlLy5xbHItc3VidGl0bGUgcmF0aGVyIHRoYW4gYSBiYXJlIGBtYXJrYCBzZWxlY3RvciBzbyBpdCBuZXZlclxuLy8gbGVha3Mgb250byBhbiB1bnJlbGF0ZWQgPG1hcms+IGEgY29uc3VtZXIgbWlnaHQgc2xvdCBpbiBlbHNld2hlcmUuIGA8bWFyaz5gXG4vLyBpcyBpbmxpbmUgKG5ldmVyIGlubGluZS1ibG9jayksIHNvIHRoaXMgcGFkZGluZy9yYWRpdXMgZG9lcyBOT1QgYWRkIHRvXG4vLyB0aGUgbGluZSBib3ggaGVpZ2h0IChwYWRkaW5nIG9uIGFuIGlubGluZSBub24tcmVwbGFjZWQgZWxlbWVudCBuZXZlclxuLy8gY2hhbmdlcyBsaW5lLWhlaWdodCkgYW5kIGRvZXMgTk9UIGludGVyZmVyZSB3aXRoIHRoZSBwYXJlbnQnc1xuLy8gYG92ZXJmbG93OiBoaWRkZW5gICsgYHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzYCArIGB3aGl0ZS1zcGFjZTogbm93cmFwYFxuLy8gdHJ1bmNhdGlvbiBhYm92ZSDigJQgYSBtYXJrIGNsaXBwZWQgbWlkLWhpZ2hsaWdodCBqdXN0IGdldHMgY3V0IG9mZiBleGFjdGx5XG4vLyBsaWtlIHBsYWluIHRleHQgd291bGQuIGBmb250OiBpbmhlcml0YCBndWFyZHMgYWdhaW5zdCBhIGJyb3dzZXIgVUFcbi8vIHN0eWxlc2hlZXQgZ2l2aW5nIDxtYXJrPiBpdHMgb3duIGZvbnQgKG5vbmUgZG8gdG9kYXksIGRlZmVuc2l2ZSBvbmx5KS5cbi5xbHItdGl0bGUgbWFyayB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWxyLW1hcmstYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1xbHItbWFyay1jb2xvcik7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgcGFkZGluZzogMCAxcHg7XG59XG5cbi5xbHItc3VidGl0bGUgbWFyayB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWxyLW1hcmstYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1xbHItbWFyay1jb2xvcik7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgcGFkZGluZzogMCAxcHg7XG59XG5cbi8vIC0tLS0gd3JhcCAoMDQuMDguMjAyNikgLS0tLVxuLy8gTXVsdGktbGluZSBzdWJ0aXRsZSBtb2RlLCBidWlsdCBmb3IgdGhlIHRhc2tsaXN0IFNFVFRJTkdTIHBhZ2Ugd2hlcmUgZWFjaFxuLy8gcm93J3Mgc3VidGl0bGUgaXMgYSBzZW50ZW5jZSBleHBsYWluaW5nIHdoYXQgdGhlIHNldHRpbmcgZG9lcywgbm90IGFcbi8vIG9uZS1saW5lIG1ldGEgc3RyaW5nLiBTZWUgcWRuYS1saXN0LXJvdy5qcydzIGB3cmFwYCBkb2Mgbm90ZS5cbi8vXG4vLyBLZXllZCBvZmYgdGhlIFJPT1QgbW9kaWZpZXIgY2xhc3MsIHNhbWUgaWRpb20gYXMgLnFsci10aWxlLW5vbmUgL1xuLy8gLnFsci1zaXplLWNvbXBhY3QsIHdoaWNoIGFsc28gc2V0dGxlcyBzcGVjaWZpY2l0eSB3aXRob3V0IHJlbHlpbmcgb25cbi8vIHNvdXJjZSBvcmRlcjogYC5xZG5hcHJvLWxpc3Qtcm93LnFsci13cmFwIC5xbHItc3VidGl0bGVgIGlzIDMgY2xhc3Nlc1xuLy8gYWdhaW5zdCB0aGUgYmFzZSBgLnFsci1zdWJ0aXRsZWAncyAxLlxuLy9cbi8vIFRoZSBUSVRMRSBkZWxpYmVyYXRlbHkga2VlcHMgaXRzIHNpbmdsZS1saW5lIGVsbGlwc2lzIHRydW5jYXRpb24g4oCUIG9ubHkgdGhlXG4vLyBzdWJ0aXRsZSB3cmFwcy4gQSB3cmFwcGluZyB0aXRsZSB3b3VsZCBtYWtlIHJvdyBoZWlnaHRzIHVucHJlZGljdGFibGUgaW4gYVxuLy8gbG9uZyBsaXN0IGFuZCBubyBjb25zdW1lciBoYXMgYXNrZWQgZm9yIGl0LlxuLnFkbmFwcm8tbGlzdC1yb3cucWxyLXdyYXAge1xuICAgIC8vIE1lYXN1cmUgY2FwIGZvciB0aGUgdGV4dCBjb2x1bW4sIHNvIGEgd2lkZSBzZXR0aW5ncyBjYXJkIGRvZXMgbm90XG4gICAgLy8gcHJvZHVjZSBhIDEyMC1jaGFyYWN0ZXIgbGluZS4gT3ZlcnJpZGFibGUgcGVyIGNvbnN1bWVyIHdpdGhvdXQgYSBuZXdcbiAgICAvLyBhdHRyaWJ1dGUg4oCUIHNhbWUgZXNjYXBlIGhhdGNoIGFzIC0tcWxyLWRlcHRoLXN0ZXAuXG4gICAgLS1xbHItd3JhcC1tYXgtd2lkdGg6IDYwY2g7XG5cbiAgICAvLyBUb3AtYWxpZ24gdGhlIGNvbHVtbnM6IGEgdHdvLWxpbmUgdGV4dCBibG9jayBzaG91bGQgc2l0IGxldmVsIHdpdGggdGhlXG4gICAgLy8gbGVhZGluZyB0aWxlIGFuZCB0aGUgdHJhaWxpbmcgY29udHJvbCwgbm90IHB1c2ggdGhlbSB0byBpdHMgY2VudHJlLlxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgLnFsci1ib2R5IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBtYXgtd2lkdGg6IHZhcigtLXFsci13cmFwLW1heC13aWR0aCk7XG4gICAgfVxuXG4gICAgLnFsci1zdWJ0aXRsZSB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBjbGlwO1xuICAgICAgICAvLyAxLjMgKHRoZSBiYXNlIHZhbHVlKSBpcyBmaW5lIGZvciBvbmUgbGluZSwgdG9vIHRpZ2h0IGZvciBydW5uaW5nIHRleHQuXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgIH1cblxuICAgIC8vIFRyYWlsaW5nIGNvbnRlbnQgdG8gdGhlIEZBUiBSSUdIVCBvZiB0aGUgcm93ICgwNC4wOC4yMDI2LCBLaW06IFwiaGllciBpc1xuICAgIC8vIGFsbGVtYWFsIHJ1aW10ZSBub2csIGRhbiBob2VmIGplIG5pZXQgZGUgZHJvcGRvd25zIHpvIHRlIHByb3BwZW5cIikuXG4gICAgLy9cbiAgICAvLyBUaGlzIGJlbG9uZ3MgdG8gdGhlIHZhcmlhbnQsIG5vdCB0byBhIGNvbnN1bWVyJ3Mgb3duIHN0eWxlc2hlZXQsIGJlY2F1c2VcbiAgICAvLyBpdCBpcyBhIGRpcmVjdCBjb25zZXF1ZW5jZSBvZiBjYXBwaW5nIHRoZSBib2R5IGFib3ZlOiB3aXRoXG4gICAgLy8gYG1heC13aWR0aGAgb24gLnFsci1ib2R5IHRoZSBib2R5IHN0b3BzIGdyb3dpbmcgYXQgdGhlIGNhcCwgdGhlIGxlZnRvdmVyXG4gICAgLy8gZnJlZSBzcGFjZSBjb2xsZWN0cyBBRlRFUiB0aGUgdHJhaWxpbmcgc2xvdCwgYW5kIHRoZSBjb250cm9sIGVuZHMgdXBcbiAgICAvLyBmbG9hdGluZyBpbiB0aGUgbWlkZGxlIG9mIGEgd2lkZSByb3cgd2l0aCBkZWFkIHNwYWNlIHRvIGl0cyByaWdodC5cbiAgICAvLyBtYXJnaW4tbGVmdDogYXV0byBjbGFpbXMgdGhhdCBmcmVlIHNwYWNlIGJlZm9yZSB0aGUgdHJhaWxpbmcgc2xvdFxuICAgIC8vIGluc3RlYWQsIHNvIHRoZSBjb250cm9sIHNpdHMgYWdhaW5zdCB0aGUgcm93J3MgcmlnaHQgZWRnZSAtIHRoZSBsYXlvdXRcbiAgICAvLyBldmVyeSBzZXR0aW5ncy1zdHlsZSByb3cgd2FudHMsIGFuZCB0aGUgcmVhc29uIGEgY29uc3VtZXIgY2FuIHRoZW4gZ2l2ZVxuICAgIC8vIGl0cyBjb250cm9scyBhIGNvbWZvcnRhYmxlIHdpZHRoIHJhdGhlciB0aGFuIHNxdWVlemluZyB0aGVtLlxuICAgIC8vXG4gICAgLy8gSGFybWxlc3Mgd2hlbiB0aGVyZSBpcyBubyB0cmFpbGluZyBjb250ZW50OiAucWxyLXRyYWlsaW5nIGlzXG4gICAgLy8gYGRpc3BsYXk6IG5vbmVgIHdoZW4gZW1wdHkgKHNlZSB0aGUgYmFzZSBydWxlKSwgYW5kIGB0cmFpbGluZz1cIm5vbmVcImBcbiAgICAvLyByZW5kZXJzIG5vIGVsZW1lbnQgYXQgYWxsLlxuICAgIC5xbHItdHJhaWxpbmcge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAvLyBTdGFhdCBkZSB3YWFyc2NodXdpbmcgZXIgb29rLCBkYW4gbW9ldCBESUUgZGUgdnJpamUgcnVpbXRlIG9wZWlzZW46IGhpaiBrb210XG4gICAgLy8gdsOzw7NyIGRlIHRyYWlsaW5nLXBsZWssIGR1cyB6b25kZXIgZGV6ZSByZWdlbCBibGlqZnQgaGV0IGljb29udGplIGJpaiBoZXRcbiAgICAvLyBpbmdla29ydGUgdGVrc3RibG9rIGhhbmdlbiBlbiBzcHJpbmd0IGFsbGVlbiBkZSBrbm9wIG5hYXIgcmVjaHRzLlxuICAgIC5xbHItd2FybmluZyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgIC8vIC4uLmVuIGRhbiBtYWcgZGUgdHJhaWxpbmctcGxlayB6aWpuIGVpZ2VuIGF1dG8gTklFVCBtZWVyIG9wZWlzZW4sIGFuZGVyc1xuICAgIC8vIG9udHN0YWF0IGVyIGVlbiB0d2VlZGUgZ2F0IHR1c3NlbiBoZXQgaWNvb250amUgZW4gZGUga25vcC5cbiAgICAucWxyLXdhcm5pbmcgfiAucWxyLXRyYWlsaW5nIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxufVxuXG4vLyAtLS0tIFRyYWlsaW5nIHNsb3QgLS0tLVxuLnFsci10cmFpbGluZyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuXG4gICAgJjplbXB0eSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4vLyBTdGFibGUgd3JhcHBlciBmb3IgQ09ORElUSU9OQUwgc2xvdCBjb250ZW50IChlLmcuIGEgUmFjdGl2ZSB7eyNpZn19IGJsb2NrXG4vLyBhcm91bmQgYSBmYXZvdXJpdGUgc3RhcikuIEJ1ZyBmaXggKDIxLjA3LjIwMjYsIGVycm9yIDUzMzEg4oCUIFwiQ2Fubm90IHJlYWRcbi8vIHByb3BlcnRpZXMgb2YgbnVsbCAocmVhZGluZyAnaW5zZXJ0QmVmb3JlJylcIiBkZWVwIGluIGEgUmFjdGl2ZSBuLnVwZGF0ZS9cbi8vIFBwLnVwZGF0ZSBzdGFjaywgUFdBIGRvY3VtZW50cyB2aWV3KTogcWRuYS1saXN0LXJvdy5qcydzXG4vLyBfZGlzdHJpYnV0ZVRyYWlsaW5nU2xvdC9fZGlzdHJpYnV0ZUxlYWRpbmdTbG90IGNhcHR1cmUgdGhpcy5jaGlsZE5vZGVzXG4vLyBPTkNFIG9uIGZpcnN0IGNvbm5lY3QgYW5kIG1vdmUgdGhlIG1hdGNoaW5nIHNsb3Q9XCIuLi5cIiBFTEVNRU5UIGludG8gYW5cbi8vIGludGVybmFsIGNvbnRhaW5lciDigJQgYnV0IGlmIHRoZSBzbG90PVwiLi4uXCIgZWxlbWVudCBJUyBpdHNlbGYgdGhlIHJvb3Qgb2Zcbi8vIGEgUmFjdGl2ZSBjb25kaXRpb25hbCBzZWN0aW9uLCBSYWN0aXZlJ3Mgb3duIGFuY2hvciBjb21tZW50IGZvciB0aGF0XG4vLyBzZWN0aW9uIGlzIGxlZnQgYmVoaW5kIGFzIGEgY2hpbGQgb2YgdGhlIE9SSUdJTkFMIGhvc3QgKG5ldmVyIG1vdmVkLFxuLy8gc2luY2Ugb25seSBlbGVtZW50IG5vZGVzIGFyZSBtYXRjaGVkKSwgYW5kIHRoYXQgaG9zdCB3aXBlcyBpdHMgb3duXG4vLyBpbm5lckhUTUwgb24gZXZlcnkgX3JlbmRlcigpIOKAlCBwZXJtYW5lbnRseSBvcnBoYW5pbmcgdGhlIGFuY2hvclxuLy8gKHBhcmVudE5vZGUgYmVjb21lcyBudWxsKS4gVGhlIHNlY3Rpb24ncyBORVhUIHRvZ2dsZSB0aGVuIGhhcyBSYWN0aXZlIGNhbGxcbi8vIGluc2VydEJlZm9yZSByZWxhdGl2ZSB0byB0aGF0IG9ycGhhbmVkIGFuY2hvciAtPiBUeXBlRXJyb3IuIEZpeDogbmV2ZXIgcHV0XG4vLyBzbG90PVwiLi4uXCIgZGlyZWN0bHkgb24gdGhlIGNvbmRpdGlvbmFsIGVsZW1lbnQuIFB1dCBpdCBvbiBhbiBhbHdheXMtcHJlc2VudFxuLy8gd3JhcHBlciBpbnN0ZWFkIChgPHNwYW4gc2xvdD1cInRyYWlsaW5nXCIgY2xhc3M9XCJxbHItc2xvdC13cmFwXCI+e3sjaWZcbi8vIHh9fS4uLnt7L2lmfX08L3NwYW4+YCkg4oCUIHRoZSB3cmFwcGVyICh3aXRoIFJhY3RpdmUncyBhbmNob3Igc2FmZWx5IGluc2lkZVxuLy8gaXQpIGlzIHdoYXQgZ2V0cyBtb3ZlZCBhcyBhIHdob2xlLCBzbyB0aGUgYW5jaG9yJ3MgcGFyZW50Tm9kZSBpcyBhbHdheXMgdGhlXG4vLyAocmVsb2NhdGVkIGJ1dCBpbnRhY3QpIHdyYXBwZXIsIG5ldmVyIG9ycGhhbmVkLiBgZGlzcGxheTogY29udGVudHNgIGtlZXBzXG4vLyBhbiBlbXB0eSB3cmFwcGVyIChjb25kaXRpb24gZmFsc2UpIGZyb20gY291bnRpbmcgYXMgaXRzIG93biBmbGV4IGl0ZW0gaW5cbi8vIC5xbHItdHJhaWxpbmcvLnFsci10aWxlIGFib3ZlLCBzbyBpdCBuZXZlciBhZGRzIGEgc3RyYXkgZ2FwLlxuLnFsci1zbG90LXdyYXAge1xuICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xufVxuXG4ucWxyLWNoZXZyb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBjb2xvcjogdmFyKC0tcWxyLWNoZXZyb24tY29sb3IpO1xufVxuXG4vLyAtLS0tIFdhcm5pbmcgYnV0dG9uICgwNS4wOC4yMDI2KSAtLS0tXG4vLyBTdGFhdCBWT09SIC5xbHItdHJhaWxpbmcsIGR1cyBkZSBjaGV2cm9uIGhvdWR0IGRlIHJlY2h0ZXJyYW5kIGVuIGVlblxuLy8gZ2V3YWFyc2NodXdkZSByaWogYmxpamZ0IGxlZXNiYWFyIGFscyBhYW50aWtiYWFyLiBLbGVpbmVyIGVuIHBsYXR0ZXIgZGFuIGRlXG4vLyA0MHB4IGdsYXMta25vcCB2YW4gcWRuYXByby1hY3Rpdml0eS1yb3c6IGRpZSB6aXQgb3AgZ3JvdGUgcmlqZW4gb3AgZWVuXG4vLyBnZWtsZXVyZCBjYW52YXMsIGRlemUgb3AgZWVuIDQ0cHggd2l0dGUgbGlqc3RyaWouIFplbGZkZSBhbWJlciwgYW5kZXJlIG1hYXQuXG4ucWxyLXdhcm5pbmcge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tcWxyLXdhcm5pbmctY29sb3IpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zIGVhc2UsIGNvbG9yIDE1MG1zIGVhc2U7XG59XG5cbi5xbHItd2FybmluZzpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWxyLXdhcm5pbmctYmctaG92ZXIpO1xuICAgIGNvbG9yOiB2YXIoLS1xbHItd2FybmluZy1jb2xvci1ob3Zlcik7XG59XG5cbi8vIEVpZ2VuIGZvY3VzcmluZzogZGUga25vcCB6aXQgSU4gZWVuIHJpaiBkaWUgemVsZiBmb2N1cyBrYW4ga3JpamdlbiwgZHVzIHpvbmRlclxuLy8gZGV6ZSByaW5nIGlzIG1ldCBoZXQgdG9ldHNlbmJvcmQgbmlldCB0ZSB6aWVuIGRhdCBqZSBvcCBkZSBrbm9wIHN0YWF0IGVuIG5pZXRcbi8vIG9wIGRlIHJpai5cbi5xbHItd2FybmluZzpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tcWxyLWZvY3VzLXJpbmcpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5xbHItd2FybmluZy1pY29uIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi8vIC0tLS0gU2l6ZTogY29tcGFjdCAodHJlZSBzdXBwb3J0LCAyMS4wNy4yMDI2KSAtLS0tXG4vLyBGb3IgbmFycm93IGNvbnRleHRzIOKAlCB0aGUgfjI4MC0zMjBweCBQV0EgZG9jdW1lbnRzIHRhYmxldCBzaWRlIHBhbmVsIGlzXG4vLyB0aGUgbW90aXZhdGluZyBjYXNlIOKAlCB3aGVyZSB0aGUgZGVmYXVsdCA0NHB4IG1pbi1oZWlnaHQgLyA0MHB4IHRpbGUgL1xuLy8gOHB4LTE2cHggcGFkZGluZyBpcyB0b28gaGVhdnkgdG8gc2hvdyAzIGluZGVudGVkIHRyZWUgbGV2ZWxzIGF0IG9uY2UuXG4vLyBOdW1iZXJzIHBpY2tlZCBmcm9tIHRoZSBzYW1lIFwiZ3JpZCBvZiA0XCIgZmFtaWx5IGFscmVhZHkgdXNlZCBlbHNld2hlcmUgaW5cbi8vIHRoZSBsaWJyYXJ5IChxZG5hcHJvLXVsLWl0ZW0ncyBvd24gc2l6ZT1cImNvbXBhY3RcIjogMzZweCBoZWlnaHQsIDI0LTI4cHhcbi8vIGNvbnRyb2xzKSByYXRoZXIgdGhhbiBpbnZlbnRpbmcgYSBuZXcgc2NhbGUuXG4ucWRuYXByby1saXN0LXJvdy5xbHItc2l6ZS1jb21wYWN0IHtcbiAgICAtLXFsci1kZXB0aC1zdGVwOiAxNnB4O1xuXG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoMTJweCArICh2YXIoLS1xbHItZGVwdGgpICogdmFyKC0tcWxyLWRlcHRoLXN0ZXApKSk7XG4gICAgZ2FwOiA4cHg7XG5cbiAgICAucWxyLXRpbGUge1xuICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIsIDhweCk7XG4gICAgfVxuXG4gICAgLnFsci10aWxlLWljb24ge1xuICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgIH1cblxuICAgIC5xbHItdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgfVxuXG4gICAgLnFsci1zdWJ0aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICB9XG5cbiAgICAucWxyLWV4cGFuZC10b2dnbGUge1xuICAgICAgICB3aWR0aDogMzJweDtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgIH1cblxuICAgIC5xbHItZXhwYW5kLWNoZXZyb24ge1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgIH1cblxuICAgIC5xbHItY2hldnJvbiB7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgfVxuXG4gICAgLnFsci13YXJuaW5nIHtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICB9XG5cbiAgICAucWxyLXdhcm5pbmctaWNvbiB7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgfVxuXG4gICAgLnFsci1ncmlwIHtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICB9XG5cbiAgICAucWxyLWdyaXAtaWNvbiB7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgfVxufVxuXG4vLyAtLS0tIFJlb3JkZXI6IGdyZWVwICsgc2xlZXBzdGFuZGVuICgwNS4wOC4yMDI2KSAtLS0tXG4vLyBWb29yIGRlIHJlZ2VsbGlqc3QgdmFuIGRlIGxvZ2ljYS1ub2RlLCB3YWFyIGRlIE9SREUgZ2VkcmFnIGlzIChkZSBlZXJzdGUgcmVnZWxcbi8vIGRpZSBwYXN0IHdpbnQpIGVuIEtpbSBkYWFyb20gbWV0IHNsZXBlbiBvcmRlbnQuXG4vL1xuLy8gRGUgZ3JlZXAgaXMgQUxUSUpEIHppY2h0YmFhciwgbmlldCBwYXMgYmlqIGhvdmVyIHpvYWxzIGJpalxuLy8gcWRuYXByby1hbnN3ZXItb3B0aW9uLiBXYWFyIGRlIHZvbGdvcmRlIGFsbGVlbiBlZW4gdm9vcmtldXIgaXMgbWFnIGRlIGdyZWVwXG4vLyB6aWNoIHZlcnN0b3BwZW47IHdhYXIgaGlqIGhldCBnZWRyYWcgYmVwYWFsdCBtb2V0IGplIHpvbmRlciB0ZSB6b2VrZW4gemllbiBkYXRcbi8vIGVyIGlldHMgdGUgb3JkZW5lbiB2YWx0LiBHZWRlbXB0IGluIHJ1c3QsIGRvbmtlciBvcCByaWotaG92ZXIsIGR1cyBoaWogc2NocmVldXd0XG4vLyBvb2sgbmlldC5cbi5xbHItZ3JpcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICAvLyBHZWVuIGVpZ2VuIGFjaHRlcmdyb25kIG9mIHJhZGl1czogZGUgZ3JlZXAgaXMgZWVuIGhhbmR2YXQsIGdlZW4ga25vcC4gRWVuXG4gICAgLy8ga25vcHZsYWtqZSBlcm5hYXN0IHpvdSBuZXQgem8gendhYXIgd2VnZW4gYWxzIGRlIHRpbGUgZXJhY2h0ZXIuXG4gICAgY29sb3I6IHZhcigtLXFsci1jaGV2cm9uLWNvbG9yKTtcbiAgICBjdXJzb3I6IGdyYWI7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAxMDBtcyBlYXNlLW91dDtcbn1cblxuLnFkbmFwcm8tbGlzdC1yb3c6aG92ZXIgLnFsci1ncmlwIHtcbiAgICBjb2xvcjogdmFyKC0tcWxyLXRpdGxlLWNvbG9yKTtcbn1cblxuLnFsci1ncmlwLWljb24ge1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbn1cblxuLy8gU2xlZXBzdGFuZGVuIGhhbmdlbiBhYW4gaGV0IEFUVFJJQlVVVCBlbiBuaWV0IGFhbiBlZW4gY2xhc3M6IGhldCBjb21wb25lbnRcbi8vIGhlcnNjaHJpamZ0IHppam4gZWlnZW4gY2xhc3NOYW1lIGJpaiBlbGtlIHJlbmRlciwgZW4gZGV6ZSBkcmllIGF0dHJpYnV0ZW4gc3RhYW5cbi8vIGp1aXN0IGJld3VzdCBOSUVUIGluIG9ic2VydmVkQXR0cmlidXRlcyAoZWVuIHJlLXJlbmRlciBtaWRkZW4gaW4gZWVuIHNsZWVwIHpvdVxuLy8gZGUgRE9NIG9uZGVyIGhldCBnZWJhYXIgdWl0IHRyZWtrZW4pLiBaaWUgZGUgZG9jYmxvY2sgaW4gcWRuYS1saXN0LXJvdy5qcy5cbnFkbmFwcm8tbGlzdC1yb3dbZHJhZ2dpbmddIHtcbiAgICBvcGFjaXR5OiAwLjM1O1xuXG4gICAgLnFsci1ncmlwIHtcbiAgICAgICAgY3Vyc29yOiBncmFiYmluZztcbiAgICB9XG59XG5cbi8vIExhbmRpbmdzc3RyZWVwLiBJTlNFVCwgYW5kZXJzIGtuaXB0IGRlIGBvdmVyZmxvdzogaGlkZGVuYCB2YW5cbi8vIC5xZG5hcHJvLWxpc3Qtcm93LWdyb3VwIGhlbSBlciBwcmVjaWVzIGJvdmVuYWFuIGFmIOKAlCBoZXQgZW5pZ2UgcHVudCB3YWFyIGhpalxuLy8gbW9ldCBzdGFhbi4gS2xldXIgaXMgZGUgYmVzdGFhbmRlIGZvY3VzLXJpbmcgKGJyYW5kLXB1cnBsZSksIGdlZW4gbmlldXcgaGV4amUuXG5xZG5hcHJvLWxpc3Qtcm93W2Ryb3AtYWJvdmVdIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDNweCAwIDAgdmFyKC0tcWxyLWZvY3VzLXJpbmcpO1xufVxuXG5xZG5hcHJvLWxpc3Qtcm93W2Ryb3AtYmVsb3ddIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIC0zcHggMCAwIHZhcigtLXFsci1mb2N1cy1yaW5nKTtcbn1cblxuLy8gLS0tLSBDYXJkLWdyb3VwIHV0aWxpdHkgLS0tLVxuLy8gUGxhaW4gd3JhcHBlciAoTk9UIGEgcmVnaXN0ZXJlZCBjdXN0b20gZWxlbWVudCkgZm9yIGEgd2hpdGUgcm91bmRlZCBjYXJkXG4vLyBob2xkaW5nIHNldmVyYWwgcm93cywgZXhhY3RseSB0aGUgLmRvY3VtZW50c19saXN0IHBhdHRlcm4gdGhpcyBjb21wb25lbnRcbi8vIGdlbmVyYWxpc2VzIOKAlCBhIGRpdmlkZXIgYmV0d2VlbiByb3dzLCBub25lIGFmdGVyIHRoZSBsYXN0LiBSZXVzYWJsZVxuLy8gYW55d2hlcmUgYSBjb25zdW1lciB3YW50cyB0aGUgXCJncm91cGVkIGNhcmRcIiBsb29rIHdpdGhvdXQgcmUtZGVyaXZpbmcgaXQuXG4ucWRuYXByby1saXN0LXJvdy1ncm91cCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLWNhcmQsIDE2cHgpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAvLyBSZWFkcyB0aGUgUk9XJ3Mgb3duIC0tcWxyLWJvcmRlciB0b2tlbiAoMDMuMDguMjAyNikgaW5zdGVhZCBvZlxuICAgIC8vIC0tYy1ib3JkZXItc29mdCBkaXJlY3RseSwgc28gYSBzdXJmYWNlIHZhcmlhbnQgdGhhdCByZXBvaW50cyB0aGF0IHRva2VuXG4gICAgLy8gdGFrZXMgdGhlIGRpdmlkZXIgd2l0aCBpdC4gLS1xbHItYm9yZGVyIGRlZmF1bHRzIHRvIGV4YWN0bHkgdGhlIHNhbWVcbiAgICAvLyAtLWMtYm9yZGVyLXNvZnQsIHNvIGV2ZXJ5IGV4aXN0aW5nIGdyb3VwIGlzIGJ5dGUtZm9yLWJ5dGUgdW5jaGFuZ2VkLlxuICAgIC5xZG5hcHJvLWxpc3Qtcm93Om5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tcWxyLWJvcmRlciwgdmFyKC0tYy1ib3JkZXItc29mdCwgcmdiYSgwLCAwLCAwLCAwLjA3KSkpO1xuICAgIH1cbn1cblxuLy8gT24tcHVycGxlIGdyb3VwIGNhcmQgKDAzLjA4LjIwMjYsIEtpbSkg4oCUIHRoZSB0cmFuc2x1Y2VudC13aGl0ZSBzdXJmYWNlIHRoZVxuLy8gcHVycGxlIGJvdHRvbSBzaGVldCdzIGJ1dHRvbiBncm91cCB1c2VzLCBzbyBhIHJvd3MtY2FyZCBvbiBhIHB1cnBsZSBzY3JlZW5cbi8vIGNhcnJpZXMgdGhlIHNhbWUgd2VpZ2h0IGFzIHRoZSBzaGVldCBvcHRpb25zLiBUaGUgcm93cyBpbnNpZGUgYXJlIHJlY29sb3VyZWRcbi8vIGJ5IHRoZSBzaGFyZWQgdG9rZW4gYmxvY2sgYWJvdmU7IHRoaXMgb25seSBvd25zIHRoZSBjYXJkJ3Mgb3duIHN1cmZhY2UuXG4ucWRuYXByby1saXN0LXJvdy1ncm91cC0tb24tcHVycGxlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlLTE0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpKTtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tc2VjdGlvbi1jYXJkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBXaGl0ZSBcInNlY3Rpb24gY2FyZFwiIGZyYW1lOiB0aXRsZSArIG9wdGlvbmFsIGFjY2VudCBpY29uICh0b3AtcmlnaHQpXG4vLyAgaG9zdGluZyBhIFNUQUNLIE9GIFJPV1MgKHR5cGljYWxseSBxZG5hcHJvLWxpc3Qtcm93KSBhcyBpdHMgb3duIGRpcmVjdFxuLy8gIGNoaWxkcmVuIC0gc2VlIHFkbmEtc2VjdGlvbi1jYXJkLmpzJ3MgaGVhZGVyIGRvYy1jb21tZW50IGZvciB0aGUgZnVsbFxuLy8gIFwiY2hpbGRyZW4gYXJlIG5ldmVyIHJlcGFyZW50ZWRcIiBhcmNoaXRlY3R1cmUgY29udHJhY3QgKFJhY3RpdmUgb3ducyB0aGVcbi8vICByb3cgRE9NIGluIHRoZSBQV0EpLiBUaGlzIGZpbGUgb25seSBmcmFtZXMgdGhlIGNhcmQsIHRoZSBoZWFkZXIgcm93LCBhbmRcbi8vICB0aGUgZGl2aWRlciBsaW5lcyBiZXR3ZWVuIHJvd3M7IHRoZSByb3dzIHRoZW1zZWx2ZXMgc3R5bGUgdGhlaXIgb3duXG4vLyAgY29udGVudCwgdGhpcyBjb21wb25lbnQgbmV2ZXIgdG91Y2hlcyB0aGVtLlxuLy9cbi8vICBVc2VzIHJlYWwgU0NTUyBgJmAtbmVzdGluZywgc28gdGhlIFBXQSBzeW5jIG11c3QgdXNlIGNvbXBpbGVTY3NzOiB0cnVlXG4vLyAgZm9yIHRoaXMgY29tcG9uZW50IChzYW1lIHBhdGggYXMgbGlzdC1yb3cvZ3JpZC10aWxlL2FwcC1oZWFkZXIgLSBzZWVcbi8vICBzeW5jLXYyLWNvbXBvbmVudHMuanMpIC0gYSBmbGF0IFwiLy9cIi1zdHJpcCBjb3B5IHdvdWxkIGxlYXZlIHRoZVxuLy8gIGA6bm90KC4uLilgIHNpYmxpbmcgc2VsZWN0b3IgYmVsb3cgYXMgbGl0ZXJhbCBicm9rZW4gQ1NTLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFN0eWxlZCBvbiB0aGUgVEFHLCBub3Qgb24gLnFkbmFwcm8tc2VjdGlvbi1jYXJkLCBvbiBwdXJwb3NlLiBBIFJhY3RpdmUgaG9zdFxuLy8gKHRoZSBQV0EgZG9jdW1lbnRzIHNjcmVlbikgbWFuYWdlcyBgY2xhc3M9YCBvbiB0aGlzIGVsZW1lbnQgZm9yIGl0cyBvd24gc3RhdGVcbi8vIGFuZCByZXdyaXRlcyB0aGUgd2hvbGUgYXR0cmlidXRlIHdoZW4gdGhhdCBzdGF0ZSBjaGFuZ2VzLCB3aGljaCB3b3VsZCB3aXBlXG4vLyB0aGUgY29tcG9uZW50J3Mgb3duIGNsYXNzIGFuZCBzdHJpcCBldmVyeSBydWxlIGJlbG93IHdpdGggaXQuIFRoZSB0YWcgbmFtZVxuLy8gY2FuIG5ldmVyIGJlIHdpcGVkLiBUaGUgSlMgc3RpbGwgYWRkcyB0aGUgY2xhc3MgZm9yIHF1ZXJ5aW5nL2NvbnNpc3RlbmN5LlxuLy8gUmVsYXRlZCBpbmNpZGVudCBmYW1pbHk6IHFkbmFwcm8tdG9vbHRpcCAvIHFkbmFwcm8taWxsdXN0cmF0aW9uIGNsYXNzbmFtZS13aXBlLlxucWRuYXByby1zZWN0aW9uLWNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAvLyBOTyBwYWRkaW5nIG9uIHRoZSBjYXJkIGl0c2VsZiAoS2ltIDI4LjA3LjIwMjYpOiB0aGUgcm93cyBtdXN0IHJ1biBhbGwgdGhlXG4gICAgLy8gd2F5IHRvIHRoZSBjYXJkJ3MgZWRnZXMgc28gbG9uZyBmaWxlbmFtZXMgZ2V0IHRoZSBtb3N0IHdpZHRoIHBvc3NpYmxlLlxuICAgIC8vIFRoZSBpbnNldCB0aGUgcm93cyBzdGlsbCBoYXZlIGlzIHFkbmFwcm8tbGlzdC1yb3cncyBPV04gOHB4IDE2cHggcGFkZGluZyxcbiAgICAvLyB3aGljaCBpcyB0aGF0IGNvbXBvbmVudCdzIGJ1c2luZXNzLCBub3QgdGhpcyBmcmFtZSdzLiBPbmx5IHRoZSBoZWFkZXJcbiAgICAvLyBjYXJyaWVzIHRoZSBjYXJkJ3Mgb3duIGluc2V0IChzZWUgLnFzYy1oZWFkIGJlbG93KS5cbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAvLyBOZWVkZWQgbm93IHRoYXQgcm93cyBhcmUgZnVsbC1ibGVlZDogYSByb3cncyBob3Zlci9wcmVzc2VkIGJhY2tncm91bmRcbiAgICAvLyAocWRuYXByby1saXN0LXJvdydzIC0tcWxyLWJnLWhvdmVyKSByZWFjaGVzIHRoZSBjYXJkJ3MgZWRnZSwgc28gd2l0aG91dFxuICAgIC8vIHRoaXMgaXQgd291bGQgc3F1YXJlIG9mZiB0aGUgcm91bmRlZCBjb3JuZXJzIG9uIHRoZSBmaXJzdC9sYXN0IHJvdy5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1jYXJkLCAwIDFweCAycHggcmdiYSgyMCwgMjUsIDgwLCAwLjA0KSwgMCA0cHggMTZweCByZ2JhKDIwLCAyNSwgODAsIDAuMDQpKTtcblxuICAgIC8vIEluamVjdGVkIERPTS1maXJzdCBieSB0aGUgSlMgKGluc2VydEJlZm9yZSk7IG9yZGVyOi0xIGlzIGEgdmFuZ25ldCBpblxuICAgIC8vIGNhc2UgYSBob3N0IHRlbXBsYXRlIGV2ZXIgaW5zZXJ0cyBhIHJvdyBiZWZvcmUgaXQuIENhcnJpZXMgdGhlIGNhcmQnc1xuICAgIC8vIGluc2V0IGl0c2VsZiBzaW5jZSB0aGUgY2FyZCBubyBsb25nZXIgaGFzIHBhZGRpbmcuXG4gICAgLnFzYy1oZWFkIHtcbiAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgcGFkZGluZzogMjBweCAyMHB4IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICAgIC8vIE9ubHkgZG9lcyBzb21ldGhpbmcgd2hlbiBhIGNvbnN1bWVyIGNhcHMgdGhlIGNhcmQncyBoZWlnaHQgYW5kIGxldHNcbiAgICAgICAgLy8gaXQgc2Nyb2xsICh0aGUgUFdBIGRvZXMgdGhhdCBmb3IgYW4gZXhwYW5kZWQgc2VjdGlvbik6IHRoZSB0aXRsZSB0aGVuXG4gICAgICAgIC8vIHN0YXlzIGluIHZpZXcgaW5zdGVhZCBvZiBzY3JvbGxpbmcgYXdheS4gT24gYSBjYXJkIHRoYXQgZG9lcyBub3RcbiAgICAgICAgLy8gc2Nyb2xsIHRoaXMgaXMgYSBuby1vcC4gTmVlZHMgYW4gb3BhcXVlIGJhY2tncm91bmQgc28gcm93cyBjYW5ub3RcbiAgICAgICAgLy8gc2hvdyB0aHJvdWdoIGl0IHdoaWxlIHNjcm9sbGluZy5cbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICAgIH1cblxuICAgIC5xc2MtdGl0bGUge1xuICAgICAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzFhMWY0ZCk7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG5cbiAgICAvLyBPcHRpb25hbCBzdWJ0aXRsZSB1bmRlciB0aGUgdGl0bGUgKDA0LjA4LjIwMjYpLiBJdHMgb3duIGRpcmVjdCBjaGlsZCBvZlxuICAgIC8vIHRoZSBjYXJkLCBzaXR0aW5nIGJldHdlZW4gLnFzYy1oZWFkIGFuZCB0aGUgZmlyc3Qgcm93IC0gc2VlXG4gICAgLy8gcWRuYS1zZWN0aW9uLWNhcmQuanMncyBgY2FyZC1zdWJ0aXRsZWAgbm90ZSBmb3Igd2h5IGl0IGlzIG5vdCBpbnNpZGUgdGhlXG4gICAgLy8gaGVhZC4gQ2FycmllcyB0aGUgY2FyZCdzIG93biBpbnNldCwgbGlrZSAucXNjLWVtcHR5IGRvZXMsIHNpbmNlIHRoZSBjYXJkXG4gICAgLy8gaXRzZWxmIGhhcyBubyBwYWRkaW5nLlxuICAgIC5xc2Mtc3VidGl0bGUge1xuICAgICAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgICAgICAvLyBLZWVwcyB0aGUgc2VudGVuY2UgcmVhZGFibGUgb24gYSB3aWRlIGNhcmQgaW5zdGVhZCBvZiBydW5uaW5nIHRoZVxuICAgICAgICAvLyBmdWxsIGNhcmQgd2lkdGguIE92ZXJyaWRhYmxlIHBlciBjb25zdW1lciB3aXRob3V0IGEgbmV3IGF0dHJpYnV0ZS5cbiAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1xc2Mtc3VidGl0bGUtbWF4LXdpZHRoLCA2MmNoKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tIHNpemU9XCJjb21wYWN0XCIgKDA0LjA4LjIwMjYpIC0tLS1cbiAgICAvLyBLaW06IGhldCAyNHB4LzcwMCBrYWFydGtvcGplIGlzIHRlIGx1aWQgb3AgZWVuIHBhZ2luYSBkaWUgdmllciBrYWFydGVuXG4gICAgLy8gc3RhcGVsdCAoZGUgdGFrZW5saWpzdC1pbnN0ZWxsaW5nZW4pLiBaaWUgcWRuYS1zZWN0aW9uLWNhcmQuanMncyBgc2l6ZWBcbiAgICAvLyBub3RlLiBEZSAxN3B4LzYwMCBpcyBHRUVOIG5pZXV3IGdla296ZW4gZ2V0YWw6IGRhdCBpcyBleGFjdCB3YXRcbiAgICAvLyAucWRuYXByby1pbmZvLWNhcmRfX3RpdGxlIGFsIGdlYnJ1aWt0IHZvb3IgZWVuIHRpdGVsIG9wIGVlbiB3aXR0ZSBrYWFydC5cbiAgICAvLyBJY29vbiBlbiBpbnNldCBnYWFuIG1lZSwgd2FudCBlZW4gMjhweCBhY2NlbnQtaWNvb24gbmFhc3QgZWVuIDE3cHggdGl0ZWxcbiAgICAvLyBvcCBlZW4gMjBweCBpbnNldCBsZWVzdCBhbHMgZWVuIGdld29uZSBrYWFydCBtZXQgZWVuIGdla3JvbXBlbiB0aXRlbCBpblxuICAgIC8vIHBsYWF0cyB2YW4gYWxzIGVlbiBrbGVpbmVyZSBrYWFydC5cbiAgICAmLnFzYy1zaXplLWNvbXBhY3Qge1xuICAgICAgICAucXNjLWhlYWQge1xuICAgICAgICAgICAgcGFkZGluZzogMTZweCAxNnB4IDA7XG4gICAgICAgIH1cblxuICAgICAgICAucXNjLXRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIH1cblxuICAgICAgICAucXNjLXN1YnRpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5xc2MtaWNvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZSBsZWdlLXN0YWF0IGhvdWR0IGRlemVsZmRlIGluc2V0IGFscyBkZSBvbmRlcnRpdGVsIGFhbi5cbiAgICAgICAgLnFzYy1lbXB0eSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDE2cHggMTZweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdpdGggYSBzdWJ0aXRsZSBwcmVzZW50LCB0aGUgaGVhZCdzIG93biAxMnB4IGJvdHRvbSBtYXJnaW4gd291bGQgc3RhY2tcbiAgICAvLyBvbiB0b3Agb2YgdGhlIHN1YnRpdGxlJ3MsIGxlYXZpbmcgYSAyNHB4IGhvbGUgYmV0d2VlbiB0aXRsZSBhbmRcbiAgICAvLyBzdWJ0aXRsZS4gVGhlIGhvc3QgY2xhc3MgY29tZXMgZnJvbSB0aGUgSlMgKGNsYXNzTGlzdC50b2dnbGUpLCB3aGljaFxuICAgIC8vIGF2b2lkcyBuZWVkaW5nIDpoYXMoKSBoZXJlIC0gdGhhdCB3b3VsZCBydWxlIG91dCBvbGRlciBXZWJLaXQuXG4gICAgJi5xc2MtaGFzLXN1YnRpdGxlIC5xc2MtaGVhZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICB9XG5cbiAgICAvLyBBY2NlbnQgaWNvbiwgdG9wLXJpZ2h0LiBmbGV4LXNocmluayBzbyBhIGxvbmcgdGl0bGUgbmV2ZXIgc3F1aXNoZXMgaXQuXG4gICAgLy8gMjhweCBwZXIgdGhlIGRlc2lnbi4gU2V0IGFzIGEgZm9udC1zaXplLCBOT1QgdmlhIHFkbmFwcm8taWNvbidzIGBzaXplYFxuICAgIC8vIGF0dHJpYnV0ZTogdGhhdCBjb21wb25lbnQgb25seSBoYXMgLmljb24tMTYvLmljb24tMjAvLmljb24tMjQgY2xhc3NlcyxcbiAgICAvLyBzbyBzaXplPVwiMjhcIiB3b3VsZCByZXNvbHZlIHRvIG5vdGhpbmcuIEl0cyBib3ggaXMgd2lkdGgvaGVpZ2h0OiAxZW0sIHNvXG4gICAgLy8gYSBmb250LXNpemUgaGVyZSBzaXplcyBpdCBleGFjdGx5LlxuICAgIC5xc2MtaWNvbiB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgfVxuXG4gICAgLnFzYy1pY29uLWNvbG9yLWhlYWRpbmcge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xuICAgIH1cblxuICAgIC5xc2MtaWNvbi1jb2xvci1oZWFydCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWZhdm9yaXRlLWhlYXJ0LCAjZmY0ZDZhKTtcbiAgICB9XG5cbiAgICAucXNjLWljb24tY29sb3ItcHVycGxlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG4gICAgfVxuXG4gICAgLnFzYy1pY29uLWNvbG9yLWdyZXkge1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICB9XG5cbiAgICAvLyBLZWVwcyB0aGUgY2FyZCdzIG93biBpbnNldCAodGhlIGNhcmQgaGFzIG5vbmUpOiBhbiBlbXB0eS1zdGF0ZSBTRU5URU5DRVxuICAgIC8vIGdsdWVkIHRvIHRoZSBjYXJkIGVkZ2Ugd291bGQgcmVhZCBhcyBicm9rZW4sIHVubGlrZSBhIHJvdyAod2hpY2ggYnJpbmdzXG4gICAgLy8gaXRzIG93biBwYWRkaW5nIGFuZCBpcyBtZWFudCB0byBiZSBmdWxsLWJsZWVkKS5cbiAgICAucXNjLWVtcHR5IHtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4IDIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgfVxuXG4gICAgLy8gRGl2aWRlciBsaW5lIGJldHdlZW4gdHdvIGNvbnNlY3V0aXZlIFJPV1Mgb25seSAtIG5ldmVyIGFib3ZlIHRoZVxuICAgIC8vIGZpcnN0IHJvdyAodGhlIGhlYWQgcHJlY2VkZXMgaXQgaW4gRE9NLCBleHBsaWNpdGx5IGV4Y2x1ZGVkIGhlcmUpXG4gICAgLy8gYW5kIG5ldmVyIGFyb3VuZCB0aGUgZW1wdHktc3RhdGUgbWVzc2FnZSBvciB0aGUgc3VidGl0bGUuXG4gICAgLy9cbiAgICAvLyAucXNjLXN1YnRpdGxlIG11c3QgYmUgZXhjbHVkZWQgb24gQk9USCBzaWRlcyAoMDQuMDguMjAyNik6IGFzIHRoZVxuICAgIC8vIHNlY29uZCBlbGVtZW50IGl0IGlzIGFscmVhZHkgc2FmZSAodGhlIC5xc2MtaGVhZCBiZWZvcmUgaXQgZmFpbHMgdGhlXG4gICAgLy8gZmlyc3QgOm5vdCksIGJ1dCBhcyB0aGUgRklSU1QgZWxlbWVudCBpdCB3b3VsZCBvdGhlcndpc2UgcHV0IGEgYm9yZGVyXG4gICAgLy8gb24gdG9wIG9mIHRoZSBmaXJzdCByb3cgLSB0aGUgZXhhY3QgbGluZSB0aGlzIHNlbGVjdG9yIGV4aXN0cyB0byBhdm9pZC5cbiAgICA+IDpub3QoLnFzYy1oZWFkKTpub3QoLnFzYy1lbXB0eSk6bm90KC5xc2Mtc3VidGl0bGUpXG4gICAgKyA6bm90KC5xc2MtaGVhZCk6bm90KC5xc2MtZW1wdHkpOm5vdCgucXNjLXN1YnRpdGxlKSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTtcbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXNlYXJjaC1vdmVybGF5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBJbnN0YWdyYW0tc3R5bGUgZnVsbHNjcmVlbiBzZWFyY2ggdGFrZW92ZXIuIFBvcnRhbGxlZCB0byA8Ym9keT4gb25cbi8vICBvcGVuKCkgKHNlZSBxZG5hLXNlYXJjaC1vdmVybGF5LmpzKSwgc2FtZSByZWFzb25pbmcgYXNcbi8vICBxZG5hcHJvLXVuaXQtY29udGV4dC4gQ29uc3VtZXMgZGVzaWduIHRva2VucyBmcm9tXG4vLyAgZGVzaWduLXRva2Vucy9fZGVzaWduLXRva2Vucy5zY3NzLiBDb21wb3NlcyBxZG5hcHJvLWlucHV0IChzZWFyY2hcbi8vICBmaWVsZCksIHFkbmFwcm8tbGlzdC1yb3cgKHJlY2VudCArIHJlc3VsdCByb3dzKSwgcWRuYXByby10ZXh0LWxpbmtcbi8vICAoXCJXaXNzZW5cIiBjbGVhci1hbGwgb25seSwgc2VlIEZJWCBiZWxvdyksIHFkbmFwcm8taWNvbi1idG4gKGNhbmNlbCArXG4vLyAgcGVyLXRlcm0gcmVtb3ZlKS5cbi8vXG4vLyAgRklYICgyMS4wNy4yMDI2LCBLaW0ncyB0b2VzdGVsLXRlc3QgLSBDUklUSUNBTCk6IHRoZSBjYW5jZWwgYnV0dG9uIHVzZWQgdG9cbi8vICBiZSBhIHFkbmFwcm8tdGV4dC1saW5rIHRvby4gVGhhdCBjb21wb25lbnQgc2hpcHBlZCB3aXRoIE5PIHdvcmtpbmcgQ1NTXG4vLyAgYW55d2hlcmUgKHNlZSBfdGV4dC1saW5rLnNjc3MncyBvd24gaGVhZGVyIGNvbW1lbnQpIHNvIHRoZSBjYW5jZWwgYnV0dG9uXG4vLyAgd2FzIGludmlzaWJsZSBvbiB0aGUgUFdBIC0gS2ltIGdvdCBzdHVjayBpbiB0aGUgZnVsbHNjcmVlbiB0YWtlb3ZlciB3aXRoIG5vXG4vLyAgd2F5IG91dC4gU3dhcHBlZCBmb3IgYSBxZG5hcHJvLWljb24tYnRuIChpY29uPVwiY2xvc2VcIiwgNDRweCB0YXJnZXQpIHBlclxuLy8gIEtpbSdzIGV4cGxpY2l0IGFwcHJvdmFsOyB0ZXh0LWxpbmsncyBDU1MgaXMgZml4ZWQgdG9vLCBzbyBcIldpc3NlblwiIHN0YXlzLlxuLy9cbi8vICBOT1RFOiB0aGlzIGZpbGUgaXMgYSBjYW5kaWRhdGUgZm9yIHRoZSBzYW1lIHN5bmMtdjItY29tcG9uZW50cy5qcyBQV0Fcbi8vICBzeW5jIHRoYXQgcWRuYXByby11bml0LWNvbnRleHQvcWRuYXByby1hcHAtaGVhZGVyIHVzZSAod2hpY2ggb25seVxuLy8gIHN0cmlwcyAvLyBjb21tZW50cyDigJQgaXQgZG9lcyBOT1QgY29tcGlsZSBTQ1NTIG5lc3RpbmcpLiBLZWVwIEFMTFxuLy8gIHNlbGVjdG9ycyBGTEFUIChubyAmIG5lc3RpbmcpIHNvIHRoZSBmaWxlIGFscmVhZHkgd29ya3MgYXMgcGxhaW4gQ1NTXG4vLyAgaWYvd2hlbiBpdCdzIHN5bmNlZCwgd2l0aG91dCBuZWVkaW5nIGEgcmV3cml0ZSBhdCB0aGF0IHBvaW50LlxuLy9cbi8vICBtb2RlPVwiZHJvcGRvd25cIiAoMzAuMDcuMjAyNiwgYmFja29mZmljZSBzZWFyY2gsIFNFQ09ORCBkZXNpZ24gY29ycmVjdGlvblxuLy8gIOKAlCBhbiBlYXJsaWVyIFwid2VsZCB0aGUgcGFuZWwgdW5kZXIgdGhlIGZpZWxkXCIgYXR0ZW1wdCB3YXMgd3JvbmcgYW5kIGhhc1xuLy8gIGJlZW4gZnVsbHkgcmVtb3ZlZCk6IHNlZSAucXNvLW1vZGUtZHJvcGRvd24gYmVsb3cgZm9yIHRoZSBPTkUgQ0FSRFxuLy8gIHZhcmlhbnQgdGhhdCBkcm9wcyBleGFjdGx5IG9uIHRvcCBvZiBhIHBhZ2Ugc2VhcmNoIGJhciAob3duIGZpZWxkIHJvdyxcbi8vICBkaXZpZGVyLCByZWNlbnRzL3Jlc3VsdHMgYmVsb3cpICsgcWRuYS1zZWFyY2gtb3ZlcmxheS5qcydzXG4vLyAgX3Bvc2l0aW9uRHJvcGRvd24oKSBmb3IgdGhlIEpTIGhhbGYuIFJldXNlcyB0aGUgcWRuYS1zY3JvbGxiYXIgbWl4aW5cbi8vICAobW9kdWxlcy9fbWl4aW5zLnNjc3MpIGZvciB0aGUgcGFuZWwncyBvd24gc2Nyb2xsIGFyZWEg4oCUIHNjb3BlZCB0b1xuLy8gIGRyb3Bkb3duIG1vZGUgb25seSwgc28gdGhlIHRha2VvdmVyIG1vZGUncyBuYXRpdmUgc2Nyb2xsYmFyIHN0YXlzXG4vLyAgYnl0ZS1pZGVudGljYWwgdG8gYmVmb3JlIGBtb2RlYCBleGlzdGVkLlxuLy9cbi8vICBzdXJmYWNlPVwiZ3JleVwiICgzMS4wNy4yMDI2LCBtb2RlPVwiZHJvcGRvd25cIiBvbmx5KTogc2VlIC5xc28tc3VyZmFjZS1ncmV5XG4vLyAgbmVhciB0aGUgZW5kIG9mIHRoaXMgZmlsZSAtIHJlY29sb3VycyB0aGUgY2FyZCB0byB2YXIoLS1jLWdyZXktMTAwKSBmb3Jcbi8vICBob3N0aW5nIHRoaXMgYmFyIGluc2lkZSBhIHdoaXRlIGFwcC1oZWFkZXIsIHBsdXMgdGhlIHR3byBleGlzdGluZy10b2tlblxuLy8gIGNvbnRyYXN0IGZpeGVzIHRoYXQgY29sb3VyIGNoYW5nZSBuZWVkZWQgKHRoZSBkaXZpZGVyLCB0aGUgcm93IGhvdmVyKS5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AdXNlICcuLi8uLi8uLi9tb2R1bGVzL21peGlucycgYXMgKjtcblxuLy8gLS0tLS0tLS0tLSBob3N0IC0tLS0tLS0tLS1cbi8vIFRoZSBob3N0IGl0c2VsZiByZW5kZXJzIG5vIGJveCDigJQgYWxsIHJlYWwgY29udGVudCBsaXZlcyBpbiAucXNvLW92ZXJsYXksXG4vLyB3aGljaCBpcyBwb3J0YWxsZWQgdG8gPGJvZHk+IG9uIG9wZW4oKSBhbmQgaGlkZGVuIChuYXRpdmUgW2hpZGRlbl0sXG4vLyBkaXNwbGF5Om5vbmUpIHdoaWxlIGNsb3NlZC4gU2FtZSBpZGlvbSBhcyBxZG5hcHJvLWV2ZW50LXNoZWV0IC9cbi8vIHFkbmFwcm8tdHJhbnNsYXRpb24tcGFuZWwgLyBxZG5hcHJvLXRyYW5zbGF0aW9uLW1vZGFsLlxuLnFkbmFwcm8tc2VhcmNoLW92ZXJsYXkgeyBkaXNwbGF5OiBjb250ZW50czsgfVxuXG4vLyBEZWZlbnNpdmUgZ3VhcmQgKDIxLjA3LjIwMjYsIEtpbSdzIHRvZXN0ZWwtdGVzdCk6IGlmIHRoaXMgdGFnIGlzIGV2ZXJcbi8vIHByZXNlbnQgaW4gdGhlIERPTSBiZWZvcmUgdGhlIGN1c3RvbSBlbGVtZW50IGRlZmluaXRpb24gaGFzIHJlZ2lzdGVyZWRcbi8vIChlLmcuIHdyaXR0ZW4gZGlyZWN0bHkgaW4gbWFya3VwIHJhdGhlciB0aGFuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQnZFxuLy8gQUZURVIgZW5zdXJlKCkrd2hlbkRlZmluZWQgcmVzb2x2ZWQsIGFzIHRoaXMgY29tcG9uZW50J3Mgb3duIGNvbnN1bWVycyBkb1xuLy8gdG9kYXkgLSBzZWUgcWRuYS1wb3BvdmVyLmpzJ3Mgc2libGluZyBndWFyZCBmb3IgdGhlIHNhbWUgcmVhc29uaW5nKSwgaXRcbi8vIG11c3QgbmV2ZXIgcmVuZGVyIGl0cyByYXcgbGlnaHQtRE9NIGNoaWxkcmVuIHVuc3R5bGVkL2V4cG9zZWQgLSBoaWRlIGl0XG4vLyBvdXRyaWdodCB1bnRpbCB1cGdyYWRlZC4gVEFHIHNlbGVjdG9yIG9uIHB1cnBvc2U6IHRoZSAucWRuYXByby1zZWFyY2gtb3ZlcmxheVxuLy8gY2xhc3MgaXMgb25seSBhZGRlZCBieSBjb25uZWN0ZWRDYWxsYmFjayBBRlRFUiB1cGdyYWRlLCBzbyBhIGNsYXNzLWJhc2VkXG4vLyA6bm90KDpkZWZpbmVkKSBydWxlIGNhbiBuZXZlciBtYXRjaCBhbnl0aGluZy5cbnFkbmFwcm8tc2VhcmNoLW92ZXJsYXk6bm90KDpkZWZpbmVkKSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gLS0tLS0tLS0tLSBvdmVybGF5IHNoZWxsIC0tLS0tLS0tLS1cbi5xc28tb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGluc2V0OiAwO1xuICAgIHotaW5kZXg6IDIxNDc0ODMwMDA7IC8vIHBvcnRhbGxlZCB0byA8Ym9keT46IHNpdCBhYm92ZSBldmVyeXRoaW5nLCBzYW1lIHZhbHVlIGFzIHFkbmFwcm8tdW5pdC1jb250ZXh0XG4gICAgZGlzcGxheTogZmxleDtcbn1cbi5xc28tb3ZlcmxheVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4ucXNvLWJhY2tkcm9wIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ibGFjay0zMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtLXFzby1kdXJhdGlvbjogMjAwbXM7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1xc28tZHVyYXRpb24pIGVhc2U7XG59XG5cbi5xc28tcGFuZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgLy8gbWluLXdpZHRoOiAwIGlzIGhpZXIgR0VFTiBuZXR0ZSB0b2V2b2VnaW5nIG1hYXIgZWVuIGJ1Z2ZpeCBbS2ltIDMwLjA3LjIwMjYsXG4gICAgLy8gb3AgaGFhciB0b2VzdGVsOiBkZSB6b2VrcmVzdWx0YXRlbiBsaWVwZW4gYnVpdGVuIGhldCBzY2hlcm1dLlxuICAgIC8vXG4gICAgLy8gV2Fhcm9tIGhldCBtaXNnaW5nOiBlZW4gZmxleC1pdGVtIGhlZWZ0IHN0YW5kYWFyZCBgbWluLXdpZHRoOiBhdXRvYCwgZHVzIGhldFxuICAgIC8vIGtyaW1wdCBub29pdCBvbmRlciBkZSBtaW4tY29udGVudCBicmVlZHRlIHZhbiB6aWpuIGluaG91ZC4gRGUgdGl0ZWwgZW4gZGVcbiAgICAvLyBvbmRlcnRpdGVsIHZhbiBlZW4gcmVzdWx0YWF0cmlqIHN0YWFuIG9wIGB3aGl0ZS1zcGFjZTogbm93cmFwYCwgZW4gZGFhcm1lZSBJU1xuICAgIC8vIGRlIG1pbi1jb250ZW50IGJyZWVkdGUgZGUgdm9sbGVkaWdlIHJlZ2VsLiBCaWogZWVuIGxhbmdlIHRpdGVsIHJla3RlIGRpdFxuICAgIC8vIHBhbmVlbCBkdXMgbWVlIHRvdCB2b29yYmlqIGRlIHNjaGVybXJhbmQgaW4gcGxhYXRzIHZhbiBkZSB0ZWtzdCBhZiB0ZSBrbmlwcGVuLlxuICAgIC8vIERlIGFma2FwLXJlZ2VscyBvcCBkZSByaWogemVsZiBrd2FtZW4gZGFhcmRvb3Igbm9vaXQgYWFuIGRlIGJldXJ0LlxuICAgIC8vXG4gICAgLy8gV2Fhcm9tIERvY3VtZW50ZW4gZXIgbm9vaXQgdGVnZW5hYW4gbGllcDogbWFwbmFtZW4gZW4gYmVzdGFuZHNuYW1lbiB6aWpuIGtvcnQuXG4gICAgLy8gSGV0IHBvc3R2YWsgaXMgZGUgZWVyc3RlIGdlYnJ1aWtlciBtZXQgdGl0ZWxzIHZhbiBlZW4gaGFsdmUgemluLCBkdXMgZGl0IGtvbXRcbiAgICAvLyBudSBwYXMgYm92ZW4gd2F0ZXIuIERlIGZpeCBob29ydCBpbiBoZXQgY29tcG9uZW50IGVuIG5pZXQgaW4gaGV0IHBvc3R2YWssIHdhbnRcbiAgICAvLyBlbGtlIHZvbGdlbmRlIGdlYnJ1aWtlciBtZXQgbGFuZ2UgdGVrc3QgaGFkIGhlbSBvcG5pZXV3IGdlcmFha3QuXG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIHBhZGRpbmctdG9wOiBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCwgMHB4KTtcbiAgICAvLyBUYWtlb3ZlciBhbmltYXRpb246IG9wYWNpdHkgKyB0cmFuc2Zvcm0gT05MWSAobm8gbGF5b3V0LWFmZmVjdGluZ1xuICAgIC8vIHByb3BlcnRpZXMsIHBlciB0aGUgXCJrb3J0IGVuIHN0cmFrXCIgcmVxdWlyZW1lbnQpIOKAlCBhIHNvZnRcbiAgICAvLyBmYWRlICsgc2xpZ2h0IGRvd253YXJkIHNldHRsZSwgbm90IGEgbGF5b3V0IHJlZmxvdy5cbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KSBzY2FsZSgwLjk4KTtcbiAgICAtLXFzby1kdXJhdGlvbjogMjAwbXM7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1xc28tZHVyYXRpb24pIGVhc2UsIHRyYW5zZm9ybSB2YXIoLS1xc28tZHVyYXRpb24pIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcbn1cblxuLnFzby1vdmVybGF5LmlzLW9wZW4gLnFzby1iYWNrZHJvcCB7IG9wYWNpdHk6IDE7IH1cbi5xc28tb3ZlcmxheS5pcy1vcGVuIC5xc28tcGFuZWwge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xc28tYmFja2Ryb3AsXG4gICAgLnFzby1wYW5lbCB7XG4gICAgICAgIC0tcXNvLWR1cmF0aW9uOiAwbXM7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tIGhlYWRlcjogc2VhcmNoIGZpZWxkICsgY2FuY2VsIC0tLS0tLS0tLS1cbi5xc28taGVhZGVyIHtcbiAgICBmbGV4OiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMyk7XG4gICAgcGFkZGluZzogdmFyKC0tcy00KSB2YXIoLS1zLTQpIHZhcigtLXMtMik7XG4gICAgLy8gYm9yZGVyLWJveCAoMzAuMDcuMjAyNiwgZHJvcGRvd24gbW9kZSdzIE9ORSBDQVJEIGNvbnRyYWN0KTogaW5cbiAgICAvLyBtb2RlPVwiZHJvcGRvd25cIiwgcWRuYS1zZWFyY2gtb3ZlcmxheS5qcyBzZXRzIGFuIGV4cGxpY2l0IGlubGluZVxuICAgIC8vIGBoZWlnaHRgIG9uIHRoaXMgcm93IHRvIG1hdGNoIHRoZSBhbmNob3IncyBvd24gaGVpZ2h0IGV4YWN0bHkgKHNlZVxuICAgIC8vIF9wb3NpdGlvbkRyb3Bkb3duKCkpIOKAlCB3aXRob3V0IGJvcmRlci1ib3ggdGhhdCBoZWlnaHQgd291bGQgYmUgQURERURcbiAgICAvLyB0byBieSB0aGUgcGFkZGluZyBhYm92ZSwgbWFraW5nIHRoZSByb3cgdGFsbGVyIHRoYW4gdGhlIGFuY2hvciBhbmRcbiAgICAvLyBicmVha2luZyB0aGUgXCJjb3ZlcnMgaXQgd2l0aCBubyB2aXN1YWwganVtcFwiIGNvbnRyYWN0LiBIYXJtbGVzcyBpblxuICAgIC8vIHRha2VvdmVyIG1vZGUsIHdoaWNoIG5ldmVyIHNldHMgdGhhdCBpbmxpbmUgaGVpZ2h0LlxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5xc28tZmllbGQge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4vLyBGSVggKDIxLjA3LjIwMjYsIEtpbSdzIHRvZXN0ZWwtdGVzdCk6IGNhbmNlbCBpcyBub3cgYSBxZG5hcHJvLWljb24tYnRuXG4vLyAoaWNvbj1cImNsb3NlXCIsIHNpemU9XCJ0b3VjaFwiIC0gYWxyZWFkeSBhIHJlYWwgNDR4NDQgdGFyZ2V0IG9uIGl0cyBvd24pLCBub3Rcbi8vIGEgcWRuYXByby10ZXh0LWxpbmsgLSBpdCBtYW5hZ2VzIGl0cyBvd24gZGlzcGxheS9zaXppbmcsIHNvIG9ubHkgYGZsZXg6XG4vLyBub25lYCBpcyBzdGlsbCBuZWVkZWQgaGVyZSAoa2VlcHMgaXQgZnJvbSBzdHJldGNoaW5nIGluIHRoZSAucXNvLWhlYWRlciByb3cpLlxuLnFzby1jYW5jZWwge1xuICAgIGZsZXg6IG5vbmU7XG59XG5cbi8vIC0tLS0tLS0tLS0gbm92YSBzbG90IC0tLS0tLS0tLS1cbi5xc28tbm92YSB7XG4gICAgZmxleDogbm9uZTtcbiAgICBwYWRkaW5nOiAwIHZhcigtLXMtNCkgdmFyKC0tcy0yKTtcbn1cbi5xc28tbm92YTplbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gLS0tLS0tLS0tLSBib2R5OiByZWNlbnRzIC8gcmVzdWx0cyAvIGVtcHR5IC0tLS0tLS0tLS1cbi5xc28tYm9keSB7XG4gICAgLy8gWmVsZmRlIHJlZGVuIGFscyBiaWogLnFzby1wYW5lbCBoaWVyYm92ZW46IHpvbmRlciBkaXQga2FuIGRlIGluaG91ZCBkZVxuICAgIC8vIGhvb2d0ZS1zY3JvbGxlciBhbHNub2cgaW4gZGUgYnJlZWR0ZSBvcHJla2tlbi5cbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZmxleDogMTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIC8vIEdFRU4gaG9yaXpvbnRhbGUgcGFkZGluZyAob250d2VycC1jb3JyZWN0aWVyb25kZSAzMC4wNy4yMDI2LCB3YXMgZWVyc3RcbiAgICAvLyBvcHQtaW4gdmlhIGhldCBgcmVzdWx0cy1ibGVlZGAtYXR0cmlidXV0IOKAlCBudSBkZSBzdGFuZGFhcmQgaW4gQkVJREVcbiAgICAvLyBtb2RlcywgZHVzIGRhdCBhdHRyaWJ1dXQgaXMgdmVydmFsbGVuLCB6aWUgZGUgb3BtZXJraW5nIGJpalxuICAgIC8vIC5xc28tc2VjdGlvbi1oZWFkaW5nIGhpZXJvbmRlcikuIERlIHJpamVuIGxvcGVuIHpvIHRvdCBkZSByYW5kIHZhbiBoZXRcbiAgICAvLyBwYW5lZWwgZG9vciwgem9kYXQgZGUgaG92ZXItYWNodGVyZ3JvbmQgZGUgdm9sbGUgYnJlZWR0ZSBwYWt0IOKAlCBwcmVjaWVzXG4gICAgLy8gem9hbHMgZGUgYmVyaWNodGVubGlqc3QgaW4gaGV0IHBvc3R2YWssIGRpZSBkZXplbGZkZSBvdmVybGF5IGdlYnJ1aWt0LlxuICAgIC8vIEVsa2UgcmlqIGhvdWR0IHppam4gRUlHRU4gYmlubmVucGFkZGluZyAocWRuYXByby1saXN0LXJvdydzIGVpZ2VuXG4gICAgLy8gMTZweCksIGR1cyBkZSB0ZWtzdCBibGlqZnQgbmV0amVzIHVpdGdlbGlqbmQ7IGFsbGVlbiBoZXQgYWFucmFha3ZsYWsgZW5cbiAgICAvLyBkZSBhY2h0ZXJncm9uZCB2YW4gZWVuIHJpaiBsb3BlbiBkb29yIHRvdCBkZSByYW5kLlxuICAgIHBhZGRpbmc6IDAgMCB2YXIoLS1zLTQpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IHZhcigtLXMtMik7XG59XG5cbi5xc28tcmVjZW50c1toaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4ucXNvLXJlY2VudHMtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogdmFyKC0tcy0yKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1zLTMpIHZhcigtLXMtMikgdmFyKC0tcy0xKTtcbn1cblxuLnFzby1yZWNlbnRzLWhlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgLy8gSG9yaXpvbnRhbGUgcGFkZGluZyBoaWVyIHBlcm1hbmVudCAod2FzIG9wdC1pbiB2aWEgaGV0IHZlcnZhbGxlblxuICAgIC8vIGByZXN1bHRzLWJsZWVkYC1hdHRyaWJ1dXQsIHppZSBkZSBvcG1lcmtpbmcgYmlqIC5xc28tc2VjdGlvbi1oZWFkaW5nXG4gICAgLy8gaGllcm9uZGVyKSDigJQgYW5kZXJzIHBsYWt0IGRlIHRla3N0IHRlZ2VuIGRlIHJhbmQgbnUgLnFzby1ib2R5IHplbGZcbiAgICAvLyBnZWVuIGhvcml6b250YWxlIHBhZGRpbmcgbWVlciBoZWVmdC5cbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXMtNCk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tcy00KTtcbn1cblxuLnFzby1yZWNlbnRzLWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbn1cblxuLnFzby1yZXN1bHRzLWxpc3RbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5xc28tcmVzdWx0cy1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG4gICAgLy8gRW4gaGllciBvb2ssIHpvZGF0IGRlIHJpamVuIHplbGYgZGUgYnJlZWR0ZSB2YW4gZGUgbGlqc3Qgdm9sZ2VuIGluIHBsYWF0cyB2YW5cbiAgICAvLyBkZSBsaWpzdCBkZSBicmVlZHRlIHZhbiBkZSBsYW5nc3RlIHJpai5cbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi8vIGZ1bGwtYmxlZWQgcmVzdWx0cyAob250d2VycC1jb3JyZWN0aWVyb25kZSAzMC4wNy4yMDI2KTogZGl0IHdhcyB0b3QgbnUgdG9lXG4vLyBvcHQtaW4gdmlhIGVlbiBgcmVzdWx0cy1ibGVlZGAtYXR0cmlidXV0IChgLnFzby1vdmVybGF5W2RhdGEtcmVzdWx0cy1ibGVlZF1gKVxuLy8gb21kYXQgYWxsZWVuIGhldCBwb3N0dmFrIGhldCB3aWxkZSBlbiBEb2N1bWVudGVuIHppam4gemlqbWFyZ2UgaGllbGQuIEhldFxuLy8gb250d2VycCB3aWwgZGUgdm9sbGUgYnJlZWR0ZSBudSBvdmVyYWwgKEJFSURFIG1vZGVzKSDigJQgemllIC5xc28tYm9keVxuLy8gaGllcmJvdmVuLCBkYXQgYXR0cmlidXV0IGlzIGR1cyB2ZXJ2YWxsZW4gZW4gZGUga29wcGVuL2xlZ2UtdGVrc3QgaGllcm9uZGVyXG4vLyAoZW4gLnFzby1yZWNlbnRzLWhlYWRpbmcgaGllcmJvdmVuKSBrcmlqZ2VuIGh1biBlaWdlbiBob3Jpem9udGFsZSBwYWRkaW5nXG4vLyBwZXJtYW5lbnQgaW4gcGxhYXRzIHZhbiBnYXRlZC4gRGUga29wcGVuL2xlZ2UtdGVrc3Qgc3RhYW4gbmlldCBpbiBlZW4gcmlqXG4vLyAoZGllIGhlZWZ0IGhhYXIgZWlnZW4gMTZweCBiaW5uZW5wYWRkaW5nLCB6aWUgcWRuYXByby1saXN0LXJvdykgZW4gem91ZGVuXG4vLyB6b25kZXIgZWlnZW4gcGFkZGluZyB0ZWdlbiBkZSByYW5kIHBsYWtrZW4g4oCUIHZhcigtLXMtNCkgPSAxNnB4LCB6b2RhdCBodW5cbi8vIHRla3N0IHVpdGxpam50IG1ldCBkZSByaWp0ZWtzdC5cbi5xc28tc2VjdGlvbi1oZWFkaW5nIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1zLTMpIHZhcigtLXMtNCkgdmFyKC0tcy0xKTtcbiAgICAvLyBHZXdvbmUgc2NocmlqZndpanplLCBnZWVuIGthcGl0YWxlbiAob250d2VycC1jb3JyZWN0aWVyb25kZSAzMC4wNy4yMDI2KTpcbiAgICAvLyBkZSB0ZWtzdCBrb210IHZhbiBkZSBob3N0IChgeyBoZWFkaW5nLCBjb3VudCB9YCwgemllIHFkbmEtc2VhcmNoLW92ZXJsYXkuanMpXG4gICAgLy8gZW4gbWFnIG5pZXQgZG9vciBDU1MgbmFhciBob29mZGxldHRlcnMgZ2Vkd29uZ2VuIHdvcmRlbiDigJQgdmVyZ2VsaWprIGRlXG4gICAgLy8gcmVmZXJlbnRpZSAoXCJSZWNlbnQgc2VhcmNoZXNcIiksIG5pZXQgXCJCRVJJQ0hURU4gKDIzKVwiLlxuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xufVxuXG4ucXNvLWVtcHR5W2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucXNvLWVtcHR5IHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogdmFyKC0tcy04KSB2YXIoLS1zLTQpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLy8gLS0tLS0tLS0tLSBcInZpZXcgYWxsXCIgcm93IChncm91cGluZyBjYXAsIDMwLjA3LjIwMjYpIC0tLS0tLS0tLS1cbi8vIEEgcGxhaW4gcWRuYXByby1saXN0LXJvdyAoc2VlIF9hcHBlbmRNb3JlUm93KCkgaW4gcWRuYS1zZWFyY2gtb3ZlcmxheS5qcykg4oCUXG4vLyByZWNvbG91cmVkIHZpYSBpdHMgb3duIC0tcWxyLXRpdGxlLWNvbG9yIC8gLS1xbHItY2hldnJvbi1jb2xvciBjdXN0b21cbi8vIHByb3BlcnRpZXMgKG5ldmVyIGEgZGVlcGVyIHNlbGVjdG9yIHBva2UgaW50byBpdHMgaW50ZXJuYWxzKSBzbyBpdCByZWFkc1xuLy8gYXMgYW4gYWN0aW9uIHJvdywgc2FtZSBicmFuZCBjb2xvdXIgYXMgdGhpcyBjb21wb25lbnQncyBvd24gXCJXaXNzZW5cIlxuLy8gcWRuYXByby10ZXh0LWxpbmsgKGNvbG9yPVwiaGlnaGxpZ2h0XCIpLlxuLnFzby1tb3JlLXJvdyB7XG4gICAgLS1xbHItdGl0bGUtY29sb3I6IHZhcigtLWMtcHVycGxlLWhpZ2hsaWdodCk7XG4gICAgLS1xbHItY2hldnJvbi1jb2xvcjogdmFyKC0tYy1wdXJwbGUtaGlnaGxpZ2h0KTtcbn1cblxuLy8gLS0tLS0tLS0tLSByZXNwb25zaXZlOiA+PTY0MHB4IGNlbnRyZWQgZmxvYXRpbmcgc2hlZXQgLS0tLS0tLS0tLVxuLy8gU2FtZSBicmVha3BvaW50ICsgY2VudHJpbmcgYXBwcm9hY2ggYXMgcWRuYXByby11bml0LWNvbnRleHQncyBvd25cbi8vIG92ZXJsYXkgLT4gc2hlZXQgdHJhbnNpdGlvbiwgfjUyMHB4IHdpZGUgKHZzIHVuaXQtY29udGV4dCdzIDQ4MHB4IOKAlFxuLy8gc2VhcmNoIG5lZWRzIGEgdG91Y2ggbW9yZSByb29tIGZvciBsb25nZXIgcmVzdWx0IHRpdGxlcy9zdWJ0aXRsZXMpLlxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgLnFzby1vdmVybGF5IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXMtNik7XG4gICAgfVxuICAgIC5xc28tcGFuZWwge1xuICAgICAgICBmbGV4OiBub25lO1xuICAgICAgICB3aWR0aDogNTIwcHg7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogODB2aDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7IC8vIG5vIHBoeXNpY2FsIG5vdGNoIHRvIGNsZWFyIG9uY2UgaXQncyBhIGZsb2F0aW5nIHNoZWV0XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItY2FyZCk7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1jYXJkKTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0gbW9kZT1cImRyb3Bkb3duXCI6IE9ORSBDQVJEIG9uIHRvcCBvZiB0aGUgYW5jaG9yIC0tLS0tLS0tLS1cbi8vIFNFQ09ORCBkZXNpZ24gY29ycmVjdGlvbiAoMzAuMDcuMjAyNikg4oCUIHRoZSBlYXJsaWVyIFwid2VsZCBhIGZsb2F0aW5nIHBhbmVsXG4vLyB1bmRlciB0aGUgZmllbGQsIHNxdWFyZSBpdHMgY29ybmVycyBvbiB0aGF0IHNpZGVcIiBhcHByb2FjaCB3YXMgd3JvbmcgYW5kXG4vLyBoYXMgYmVlbiBmdWxseSByZW1vdmVkIChubyBtb3JlIHdlbGRlZCBjb3JuZXJzLCBubyBtb3JlIG1hcmtlciBhdHRyaWJ1dGUsXG4vLyBzZWUgX2lucHV0LnNjc3Mg4oCUIHRoYXQgZmlsZSBoYXMgbm90aGluZyBkcm9wZG93bi1yZWxhdGVkIGxlZnQgYXQgYWxsKS5cbi8vXG4vLyBUaGUgSlMgaGFsZiBvZiB0aGlzIGNvbnRyYWN0IGxpdmVzIGluIHFkbmEtc2VhcmNoLW92ZXJsYXkuanMncyBvcGVuKCkgL1xuLy8gX3Bvc2l0aW9uRHJvcGRvd24oKTogaXQgcmVhZHMgT05MWSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBvZmYgdGhlIGFuY2hvclxuLy8gKFZJUlRVQUwgQU5DSE9SUyDigJQgc2FtZSBjb250cmFjdCBhcyBxZG5hcHJvLXBvcG92ZXIsIHNlZSBxZG5hLXBvcG92ZXIuanMpXG4vLyBhbmQgd3JpdGVzIGxlZnQvdG9wL3dpZHRoIGFzIGlubGluZSBzdHlsZXMgZGlyZWN0bHkgb24gVEhJUyBlbGVtZW50IOKAlFxuLy8gLnFzby1vdmVybGF5IElTIHRoZSBwb3NpdGlvbmVkIGJveCBpbiBkcm9wZG93biBtb2RlLCB0aGVyZSBpcyBubyBzZXBhcmF0ZVxuLy8gYmFja2Ryb3AgdG8gc2l6ZSAoZHJvcGRvd24gbW9kZSBuZXZlciByZW5kZXJzIG9uZSkuIFRoZSBjYXJkJ3Mgb3duIGZpZWxkXG4vLyByb3cgKC5xc28taGVhZGVyKSBnZXRzIGFuIGV4cGxpY2l0IGlubGluZSBgaGVpZ2h0YCB0b28sIG1hdGNoZWQgdG8gdGhlXG4vLyBhbmNob3IncyBvd24gaGVpZ2h0LCBzbyB0aGUgY2FyZCBjb3ZlcnMgdGhlIGFuY2hvciBleGFjdGx5LCBubyB2aXN1YWwganVtcC5cbi8vXG4vLyBgIWltcG9ydGFudGAtZnJlZSBvdmVycmlkZTogZXZlcnkgcHJvcGVydHkgdGhlID49NjQwcHggbWVkaWEgcXVlcnkgYWJvdmVcbi8vIHNldHMgb24gLnFzby1vdmVybGF5Ly5xc28tcGFuZWwgaXMgcmUtZGVjbGFyZWQgaGVyZSBhdCBoaWdoZXIgc2VsZWN0b3Jcbi8vIHNwZWNpZmljaXR5ICgyLTQgY2xhc3NlcyB2cy4gaXRzIDEpLCBzbyB0aGUgY2FzY2FkZSBhbHdheXMgcHJlZmVycyB0aGlzXG4vLyBibG9jayByZWdhcmRsZXNzIG9mIHZpZXdwb3J0IHdpZHRoIG9yIHNvdXJjZSBvcmRlci4gVGhlIG9uZSBwcm9wZXJ0eSBOT1Rcbi8vIG90aGVyd2lzZSByZS1kZWNsYXJlZCBiZWxvdyBpcyAucXNvLW92ZXJsYXkncyBvd24gYHBhZGRpbmdgIOKAlCByZXNldFxuLy8gZXhwbGljaXRseSwgb3IgdGhlID49NjQwcHggcnVsZSdzIHZhcigtLXMtNikgcGFkZGluZyB3b3VsZCBzdGlsbCBhcHBseS5cbi5xc28tb3ZlcmxheS5xc28tbW9kZS1kcm9wZG93biB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGluc2V0OiBhdXRvO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIGAucXNvLW92ZXJsYXlbaGlkZGVuXWAgKGRpc3BsYXk6bm9uZSwgZGVjbGFyZWQgbmVhciB0aGUgdG9wIG9mIHRoaXMgZmlsZSlcbi8vIGhhcyB0aGUgU0FNRSBzcGVjaWZpY2l0eSBhcyBgLnFzby1vdmVybGF5LnFzby1tb2RlLWRyb3Bkb3duYCAoY2xhc3MgK1xuLy8gYXR0cmlidXRlIHZzLiB0d28gY2xhc3Nlcykg4oCUIHdpdGhvdXQgdGhpcyBleHBsaWNpdCB0aWUtYnJlYWtlciBhdCBoaWdoZXJcbi8vIHNwZWNpZmljaXR5LCBzb3VyY2Ugb3JkZXIgYWxvbmUgd291bGQgZGVjaWRlLCBhbmQgdGhpcyBmaWxlJ3Mgb3duIGxhdGVyXG4vLyBkZWNsYXJhdGlvbiB3b3VsZCB3aW4sIGxlYXZpbmcgYSBDTE9TRUQgZHJvcGRvd24gcGFuZWwgdmlzaWJsZS5cbi5xc28tb3ZlcmxheS5xc28tbW9kZS1kcm9wZG93bltoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBPTkUgQ0FSRDogZnVsbCByYWRpdXMsIGZ1bGwgc2hhZG93LCBhbGwgdGhlIHdheSByb3VuZCDigJQgdGhpcyBjYXJkIHNpdHNcbi8vIGV4YWN0bHkgb24gdG9wIG9mIHRoZSBhbmNob3IncyBvd24gYmFyICh3aGljaCBpcyBsZWZ0IGZ1bGx5IGludmlzaWJsZVxuLy8gdW5kZXJuZWF0aCBpdCwgc2VlIHRoZSBKUyksIHNvIHRoZXJlIGlzIG5vdGhpbmcgdG8gd2VsZCBhbmQgbm90aGluZyB0b1xuLy8gc3F1YXJlIG9mZi5cbi8vXG4vLyBUaGUgY2FyZCBNSVJST1JTIHRoZSBpZGxlIHFkbmFwcm8taW5wdXQgaXQgY292ZXJzIChLaW0gMzAuMDcuMjAyNjogXCJnZWVmXG4vLyBoZXQgb3ZlcmxheSBwYW5lbCBkZXplbGZkZSBib3JkZXIgYWxzIGhldCBpbnB1dGZpZWxkIGFscyBoaWogaWRsZSBpc1wiICtcbi8vIFwiZGV6ZWxmZGUgY29ybmVyIHJhZGl1c1wiKS4gSGVuY2UgdGhlIHNhbWUgMXB4IGdyZXkgYm9yZGVyIGFuZCB0aGUgc2FtZVxuLy8gdmFyKC0tci0yKSA4cHggcmFkaXVzIGFzIGAucWRuYXByby1pbnB1dCAuaW5wdXQtZmllbGRgLCBOT1QgdGhlIDE2cHhcbi8vIHZhcigtLXItY2FyZCkgYSBmbG9hdGluZyBjYXJkIHdvdWxkIG5vcm1hbGx5IHRha2U6IG9wZW5pbmcgdGhlIHBhbmVsIG11c3Rcbi8vIGxvb2sgbGlrZSB0aGUgc2FtZSBjb250cm9sIGdyb3dpbmcgdGFsbGVyLCBub3QgbGlrZSBhIGRpZmZlcmVudCBzdXJmYWNlXG4vLyBhcHBlYXJpbmcuIF9pbnB1dC5zY3NzIHdyaXRlcyB0aGF0IGJvcmRlciBhcyB0aGUgbGl0ZXJhbCAjYzRjN2NjOyB0aGVcbi8vIHRva2VuIGJlaGluZCBpdCBpcyAtLWMtZ3JleS0zMDAsIHVzZWQgaGVyZSBzbyB0aGUgdHdvIGNhbm5vdCBkcmlmdCBhcGFydFxuLy8gc2lsZW50bHkuIEtlZXAgdGhlc2UgdGhyZWUgdmFsdWVzIGluIHN0ZXAgd2l0aCBgLmlucHV0LWZpZWxkYC5cbi5xc28tb3ZlcmxheS5xc28tbW9kZS1kcm9wZG93biAucXNvLXBhbmVsIHtcbiAgICBmbGV4OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDYwdmg7XG4gICAgcGFkZGluZy10b3A6IDA7IC8vIG5vIHBoeXNpY2FsIG5vdGNoIHRvIGNsZWFyIOKAlCB0aGlzIGlzIGEgcGxhaW4gZmxvYXRpbmcgY2FyZFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0zMDApO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWNhcmQpO1xuICAgIC8vIGJvcmRlci1ib3gsIG9yIHRoZSAxcHggYm9yZGVyIGFib3ZlIGlzIEFEREVEIHRvIHRoZSBhbmNob3Igd2lkdGggdGhlIEpTXG4gICAgLy8gd3JpdGVzIG9uIHRoZSBvdmVybGF5LCBtYWtpbmcgdGhlIGNhcmQgMnB4IHdpZGVyIHRoYW4gdGhlIGJhciBpdCBjb3ZlcnMuXG4gICAgLy8gTWVhc3VyZWQgYmVmb3JlL2FmdGVyIHdpdGggdGhlIHBpbGwsIG1hZ25pZmllciwgbWljIGFuZCBOb3ZhIGJ1dHRvblxuICAgIC8vIHBvc2l0aW9uczogd2l0aG91dCB0aGlzIHRoZSB0d28gcmlnaHQtaGFuZCBidXR0b25zIGxhbmRlZCAycHggZnVydGhlclxuICAgIC8vIHJpZ2h0IHRoZSBtb21lbnQgdGhlIHBhbmVsIG9wZW5lZC4gQ2xvc2VkIGFuZCBvcGVuIG5vdyBtYXRjaCBleGFjdGx5LlxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvLyBGYWRlICsgc2xpZ2h0IHZlcnRpY2FsIHNldHRsZSBvbmx5IChvcGFjaXR5L3RyYW5zZm9ybSwgbm8gbGF5b3V0XG4gICAgLy8gcHJvcGVydGllcykg4oCUIHJldXNlcyAtLXFzby1kdXJhdGlvbiwgc28gcHJlZmVycy1yZWR1Y2VkLW1vdGlvbiBhYm92ZVxuICAgIC8vIHplcm9lcyB0aGlzIHRvbywgbm8gc2VwYXJhdGUgbWVkaWEgcXVlcnkgbmVlZGVkIGhlcmUuXG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG59XG5cbi8vIE9wZW5zIEFCT1ZFIHRoZSBhbmNob3IgKG5vdCBlbm91Z2ggcm9vbSBiZWxvdywgc2VlIF9wb3NpdGlvbkRyb3Bkb3duKCknc1xuLy8gZmxpcCBsb2dpYyk6IHRoZSBjYXJkJ3MgZmllbGQgcm93IG11c3Qgc3RpbGwgbGFuZCBleGFjdGx5IG9uIHRoZSBhbmNob3Jcbi8vIChzYW1lIHJlY3QgaXQgYWx3YXlzIGNvdmVycyksIHNvIHRoZSBCT0RZIChyZWNlbnRzL3Jlc3VsdHMpIGhhcyB0byByZW5kZXJcbi8vIEFCT1ZFIHRoZSBmaWVsZCBpbnN0ZWFkIG9mIGJlbG93IGl0IOKAlCBjb2x1bW4tcmV2ZXJzZSBmbGlwcyB0aGUgdmlzdWFsXG4vLyBvcmRlciAoaGVhZGVyIGxhc3QgaW4gRE9NLCBoZWFkZXIgbGFzdCBpbiByZXZlcnNlLWZsZXggb3JkZXIgPSBoZWFkZXIgYXRcbi8vIHRoZSBCT1RUT00gb2YgdGhlIGJveCkgd2l0aG91dCB0b3VjaGluZyB0aGUgRE9NIGl0c2VsZi4gX3Bvc2l0aW9uRHJvcGRvd24oKVxuLy8gdGhlbiBwb3NpdGlvbnMgdGhlIGJveCBzbyBpdHMgQk9UVE9NIGVkZ2UgbGFuZHMgb24gdGhlIGFuY2hvcidzIGJvdHRvbSxcbi8vIHdoaWNoIGNvbWJpbmVkIHdpdGggdGhpcyByZXZlcnNlZCBvcmRlciBwdXRzIHRoZSBoZWFkZXIgZXhhY3RseSBvdmVyIHRoZVxuLy8gYW5jaG9yJ3Mgb3duIHJlY3QgZWl0aGVyIHdheS5cbi5xc28tb3ZlcmxheS5xc28tbW9kZS1kcm9wZG93bi5xc28tZHJvcGRvd24tYWJvdmUgLnFzby1wYW5lbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xufVxuXG4ucXNvLW92ZXJsYXkucXNvLW1vZGUtZHJvcGRvd24uaXMtb3BlbiAucXNvLXBhbmVsIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cblxuLy8gT3duIHNjcm9sbCBhcmVhIHdpdGggdGhlIHNoYXJlZCBtaW5pbWFsIGhvdmVyLXJldmVhbCBzY3JvbGxiYXIgKHNlZVxuLy8gbW9kdWxlcy9fbWl4aW5zLnNjc3MpIOKAlCBzY29wZWQgdG8gZHJvcGRvd24gbW9kZSBvbmx5LCBzbyB0aGUgdGFrZW92ZXJcbi8vIG1vZGUncyBuYXRpdmUgc2Nyb2xsYmFyIHN0YXlzIGJ5dGUtaWRlbnRpY2FsIHRvIGJlZm9yZSBgbW9kZWAgZXhpc3RlZC5cbi5xc28tb3ZlcmxheS5xc28tbW9kZS1kcm9wZG93biAucXNvLWJvZHkge1xuICAgIEBpbmNsdWRlIHFkbmEtc2Nyb2xsYmFyO1xufVxuXG4vLyAtLS0tLS0tLS0tIG1vZGU9XCJkcm9wZG93blwiOiBjaHJvbWVsZXNzIGZpZWxkIC0tLS0tLS0tLS1cbi8vIFRISVJEIGRlc2lnbiBjb3JyZWN0aW9uICgzMC4wNy4yMDI2KSwgR21haWwvRnJlZXBpayByZWZlcmVuY2U6IHRoZSBmaWVsZFxuLy8gcm93IGluc2lkZSB0aGUgY2FyZCBjYXJyaWVzIE5PIGNocm9tZSBvZiBpdHMgb3duIOKAlCBubyBib3JkZXIsIG5vIG93blxuLy8gYmFja2dyb3VuZCwgbm8gb3duIGJvcmRlci1yYWRpdXMsIG5vIGZvY3VzIHJpbmcuIEl0IGlzIGEgcGxhaW4gUk9XLCBub3QgYVxuLy8gbGl0dGxlIGJveDsgdGhlIENBUkQgKC5xc28tcGFuZWwgYWJvdmUpIGlzIHRoZSBvbmx5IGJvcmRlci9zaGFkb3cvcmFkaXVzLlxuLy8gVGhlIFwic2NoZWlkaW5nc2xpam5cIiB1bmRlciB0aGUgcm93IGlzIHRoZSBFWElTVElORyA8cWRuYXByby1kaXZpZGVyPlxuLy8gY29tcG9uZW50IChzZWUgdGhlIGBkaXZpZGVyYCBsb2NhbCB2YXIgaW4gcWRuYS1zZWFyY2gtb3ZlcmxheS5qcydzXG4vLyBfYnVpbGQoKSkg4oCUIG5vdCBhIGhhbmQtcm9sbGVkIGJvcmRlci1ib3R0b20gb24gLnFzby1oZWFkZXIuXG4vL1xuLy8gRkxBRyAobm90IGEgcmVhbCBxZG5hcHJvLWlucHV0IHZhcmlhbnQsIHNlZSB0aGUgYG1vZGVgIGF0dHJpYnV0ZSBkb2MncyBvd25cbi8vIENIUk9NRUxFU1MgRklFTEQgbm90ZSk6IHRoaXMgcmVhY2hlcyBpbnRvIHFkbmEtaW5wdXQuanMncyBpbnRlcm5hbFxuLy8gYC5pbnB1dC1maWVsZGAgLyBgLmlucHV0LWZpZWxkLWlubmVyYCBjbGFzcyBuYW1lcyBmcm9tIGEgRk9SRUlHTlxuLy8gc3R5bGVzaGVldCDigJQgYW4gb3ZlcnJpZGUgZnJvbSB0aGUgb3V0c2lkZS4gSXQgd29ya3MgYW5kIGlzIHNjb3BlZCB0aWdodGx5XG4vLyAoZHJvcGRvd24gbW9kZSBvbmx5LCB0YWtlb3ZlcidzIGZpZWxkIGtlZXBzIGl0cyBub3JtYWwgYm9yZGVyZWQgbG9va1xuLy8gdW50b3VjaGVkKSwgYnV0IGEgcHJvcGVyIGBjaHJvbWVsZXNzYC9gYmFyZWAgYXR0cmlidXRlIG9uIHFkbmFwcm8taW5wdXRcbi8vIGl0c2VsZiAoc2FtZSBpZGlvbSBhcyBxZG5hcHJvLXBvcG92ZXIncyBvd24gYGJhcmVgKSB3b3VsZCBiZSB0aGUgY29ycmVjdFxuLy8gbG9uZy10ZXJtIGZpeCDigJQgcmVwb3J0ZWQgaW4gdGhlIGhhbmQtb2ZmLCBub3Qgc2lsZW50bHkgbGVmdCBhcyB0aGVcbi8vIHBlcm1hbmVudCBzaGFwZSBvZiB0aGlzLlxuLy8gTk8gcGFkZGluZyBhbmQgTk8gZ2FwIG9mIGl0cyBvd24gaW4gZHJvcGRvd24gbW9kZS4gVGhlIHJvdyB1c2VkIHRvIGFkZFxuLy8gdmFyKC0tcy00KSAoMTZweCkgb24gdG9wIG9mIHRoZSBpbm5lciBmaWVsZCdzIG93biBgcGFkZGluZzogMCAxMnB4YCwgc29cbi8vIHRoZSBwaWxsLCB0aGUgc2VhcmNoIGljb24gYW5kIHRoZSBtaWMvTm92YSBidXR0b25zIGFsbCBzaGlmdGVkIHNpZGV3YXlzXG4vLyB0aGUgbW9tZW50IHRoZSBwYW5lbCBvcGVuZWQgKEtpbSAzMC4wNy4yMDI2OiBcImFscyBqZSBoZXQgb3ZlcmxheSBwYW5lbFxuLy8gb3BlbnQgZGFuIHZlcnNwcmluZ2VuIGRlIGtub3BwZW4gLi4uIGhldCBpbnB1dHZlbGQgaXMgZGUgYmFzaXNcIikuIFdpdGhcbi8vIGJvdGggemVyb2VkLCB0aGUgT05MWSBob3Jpem9udGFsIG1ldHJpY3MgaW4gcGxheSBhcmUgdGhlIG9uZXMgdGhlIGNvdmVyZWRcbi8vIHFkbmFwcm8taW5wdXQgYWxyZWFkeSB1c2VzLCBzbyBjbG9zZWQgYW5kIG9wZW4gbGluZSB1cCBwaXhlbCBmb3IgcGl4ZWwuXG4vLyBUaGUgaW5saW5lIGBoZWlnaHRgIHRoZSBKUyBzZXRzIChtYXRjaGluZyB0aGUgYW5jaG9yIHJlY3QpIGhhbmRsZXMgdGhlXG4vLyB2ZXJ0aWNhbCBzaWRlLiBEbyBub3QgcmVpbnRyb2R1Y2UgcGFkZGluZyBoZXJlLlxuLnFzby1vdmVybGF5LnFzby1tb2RlLWRyb3Bkb3duIC5xc28taGVhZGVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGdhcDogMDtcbn1cblxuLnFzby1vdmVybGF5LnFzby1tb2RlLWRyb3Bkb3duIC5xc28taGVhZGVyIC5pbnB1dC1maWVsZCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG59XG4ucXNvLW92ZXJsYXkucXNvLW1vZGUtZHJvcGRvd24gLnFzby1oZWFkZXIgLmlucHV0LWZpZWxkOmhvdmVyLFxuLnFzby1vdmVybGF5LnFzby1tb2RlLWRyb3Bkb3duIC5xc28taGVhZGVyIC5pbnB1dC1maWVsZDpmb2N1cy13aXRoaW4ge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuLnFzby1vdmVybGF5LnFzby1tb2RlLWRyb3Bkb3duIC5xc28taGVhZGVyIC5pbnB1dC1maWVsZCAuaW5wdXQtZmllbGQtaW5uZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4vLyAtLS0tLS0tLS0tIHN1cmZhY2U9XCJncmV5XCIgKDMxLjA3LjIwMjYpIC0tLS0tLS0tLS1cbi8vIENhcmQgYmFja2dyb3VuZCBjb2xvdXIgT05MWSwgbW9kZT1cImRyb3Bkb3duXCIgb25seSAtIHNlZSB0aGUgYHN1cmZhY2VgXG4vLyBhdHRyaWJ1dGUgZG9jIGluIHFkbmEtc2VhcmNoLW92ZXJsYXkuanMgZm9yIHRoZSB3aHkgKEtpbTogZHJvcHBpbmcgdGhpc1xuLy8gc2VhcmNoIGJhciBpbnRvIHRoZSBQV0EgaW5ib3gncyB3aGl0ZSBhcHAtaGVhZGVyKS4gT21pdHRpbmcgYHN1cmZhY2VgLCBvclxuLy8gYHN1cmZhY2U9XCJ3aGl0ZVwiYCwgYXBwbGllcyBub25lIG9mIHRoaXMgLSBieXRlLWlkZW50aWNhbCB0byBiZWZvcmVcbi8vIGBzdXJmYWNlYCBleGlzdGVkIChEb2N1bWVudGVuJ3MgZXhpc3RpbmcgdGFrZW92ZXIgY29uc3VtZXIgaXMgdW5hZmZlY3RlZFxuLy8gZWl0aGVyIHdheSwgc2luY2Ugbm9uZSBvZiB0aGlzIGlzIHNjb3BlZCB1bmRlciAucXNvLW1vZGUtZHJvcGRvd24pLlxuLy9cbi8vIFRoZSBjaHJvbWVsZXNzIGZpZWxkIHJvdyAoc2VlIHRoZSBcImNocm9tZWxlc3MgZmllbGRcIiBibG9jayBhYm92ZSkgYWxyZWFkeVxuLy8gc2V0cyBpdHMgb3duIGJhY2tncm91bmQgdG8gYHRyYW5zcGFyZW50YCwgbm90IHRvIHZhcigtLWMtYmctY2FyZCkgLSBzbyBpdFxuLy8gYXV0b21hdGljYWxseSBmb2xsb3dzIHRoaXMgY2FyZCBjb2xvdXIgdG9vLCBubyBleHRyYSBydWxlIG5lZWRlZCBoZXJlLlxuLy8gQ2hlY2tlZCBkaXJlY3RseSBpbiB0aGlzIGZpbGU6IGNvbmZpcm1lZCwgbm90aGluZyBlbHNlIHRvIGFkZC5cbi5xc28tb3ZlcmxheS5xc28tbW9kZS1kcm9wZG93bi5xc28tc3VyZmFjZS1ncmV5IC5xc28tcGFuZWwge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDApO1xufVxuXG4vLyBEaXZpZGVyIGNvbnRyYXN0ICgzMS4wNy4yMDI2KTogdGhlIGRpdmlkZXIncyBkZWZhdWx0IFwibmV1dHJhbFwiIGNvbG91clxuLy8gKCNkOWRiZWIsIHNlZSBfZGl2aWRlci5zY3NzKSBtZWFzdXJlcyB+MS4xMzoxIGNvbnRyYXN0IGFnYWluc3Rcbi8vIHZhcigtLWMtZ3JleS0xMDApICgjZTdlOWVjKSAtIGRvd24gZnJvbSB+MS4zNzoxIGFnYWluc3QgdGhlIHdoaXRlIGNhcmRcbi8vICh2YXIoLS1jLWJnLWNhcmQpKS4gTWVhc3VyZWQgd2l0aCB0aGUgV0NBRyByZWxhdGl2ZS1sdW1pbmFuY2UgZm9ybXVsYVxuLy8gKHB5dGhvbjMsIG5vdCBleWViYWxsZWQpIC0gdGhlIG5lYXItd2hpdGUgbGF2ZW5kZXIgZGl2aWRlciBhbmQgdGhlXG4vLyBuZWFyLXdoaXRlIGdyZXkgY2FyZCBzaXQgdG9vIGNsb3NlIGluIGxpZ2h0bmVzcyB0byByZWFkIGFzIGEgbGluZSBhdCBhbGwuXG4vLyBSZS1wb2ludGVkIHRvIHZhcigtLWMtZ3JleS0zMDApIC0gdGhlIFNBTUUgdG9rZW4gdGhpcyBmaWxlIGFscmVhZHkgdXNlcyBhXG4vLyBmZXcgbGluZXMgdXAgZm9yIHRoZSBjYXJkJ3Mgb3duIGlkbGUgYm9yZGVyLCBub3QgYSBuZXcgaGV4IC0gd2hpY2hcbi8vIG1lYXN1cmVzIH4xLjM5OjEgYWdhaW5zdCBncmV5LTEwMCwgYmFjayBpbiBsaW5lIHdpdGggKG1hcmdpbmFsbHkgYmV0dGVyXG4vLyB0aGFuKSB0aGUgb3JpZ2luYWwgd2hpdGUtY2FyZCBjb250cmFzdC5cbi5xc28tb3ZlcmxheS5xc28tbW9kZS1kcm9wZG93bi5xc28tc3VyZmFjZS1ncmV5IHFkbmFwcm8tZGl2aWRlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTMwMCk7XG59XG5cbi8vIFJlc3VsdC1yb3cgaG92ZXIgY29udHJhc3QgKDMxLjA3LjIwMjYpOiBxZG5hcHJvLWxpc3Qtcm93J3MgZGVmYXVsdCBob3ZlclxuLy8gYmFja2dyb3VuZCAoLS1xbHItYmctaG92ZXIsIC0tYy1iZy1zdWJ0bGUtaG92ZXIgLT4gLS1jLWdyZXktNTAsICNmMGYxZjIpXG4vLyBpcyBMSUdIVEVSIHRoYW4gdmFyKC0tYy1ncmV5LTEwMCkgKCNlN2U5ZWMpLCBzbyBvbiB0aGlzIHN1cmZhY2UgdGhlIGhvdmVyXG4vLyBzdG9wcyByZWFkaW5nIGFzIGEgZGFya2VuaW5nIGhpZ2hsaWdodCBhbmQgaW5zdGVhZCBiZWNvbWVzIGEgYmFyZWx5LXRoZXJlXG4vLyBsaWdodGVuaW5nIG9uZSAtIG1lYXN1cmVkIGF0IH4xLjA4OjEgY29udHJhc3QgYWdhaW5zdCB0aGUgZ3JleSBjYXJkXG4vLyAoV0NBRyByZWxhdGl2ZS1sdW1pbmFuY2UgZm9ybXVsYSwgcHl0aG9uMyksIG5vdGljZWFibHkgbG93ZXIgdGhhbiB0aGVcbi8vIH4xLjEzOjEgaXQgaGFzIGFnYWluc3QgdGhlIHdoaXRlIGNhcmQgdG9kYXksIGkuZS4gaXQgZ2V0cyBoYXJkZXIgdG8gc2VlLFxuLy8gbm90IGVhc2llciAtIGV4YWN0bHkgdGhlIFwia2FuIG9uemljaHRiYWFyIHdvcmRlblwiIHJpc2sgdGhpcyB2YXJpYW50IHdhc1xuLy8gY2hlY2tlZCBmb3IuIFJlLXBvaW50ZWQgdG8gdGhlIGV4aXN0aW5nIHZhcigtLWMtZ3JleS0yMDApIHRva2VuIChhbHJlYWR5XG4vLyB1c2VkIGVsc2V3aGVyZSBpbiB0aGlzIGxpYnJhcnkncyB0aWxlIHBhbGV0dGVzLCBubyBuZXcgaGV4KSBmb3IgfjEuMjE6MVxuLy8gYWdhaW5zdCBncmV5LTEwMCAtIGJldHRlciB0aGFuIGJvdGggdGhlIGJyb2tlbiBncmV5LW9uLWdyZXkgdmFsdWUgYWJvdmVcbi8vIEFORCB0aGUgb3JpZ2luYWwgd2hpdGUtY2FyZCBiYXNlbGluZS4gVGFyZ2V0cyBldmVyeSBxZG5hcHJvLWxpc3Qtcm93XG4vLyB1bmRlciB0aGlzIHN1cmZhY2UgKHJlc3VsdHMsIGFuZCB0aGUgXCJ2aWV3IGFsbFwiIHJvdykgLSBkcm9wZG93biBtb2RlXG4vLyBuZXZlciByZW5kZXJzIHJlY2VudCByb3dzIChzZWUgdGhlIGBtb2RlYCBkb2MpLCBzbyB0aGVyZSBpcyBub3RoaW5nIGVsc2Vcbi8vIHRvIGNvdmVyLlxuLnFzby1vdmVybGF5LnFzby1tb2RlLWRyb3Bkb3duLnFzby1zdXJmYWNlLWdyZXkgcWRuYXByby1saXN0LXJvdyB7XG4gICAgLS1xbHItYmctaG92ZXI6IHZhcigtLWMtZ3JleS0yMDApO1xufVxuXG4vLyDilIDilIAgUkVDRU5URS1SSUpFTjogcnVzdGlnZXIgKDMxLjA3LjIwMjYsIEtpbSkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBEcmllIGtsYWNodGVuLCBkcmllIHJlZ2Vscy4gSGFhciB3b29yZGVuOiBcImRlIGljb25zIHZhbiBnZXNjaGllZGVuaXMgemlqbiBncmlqcywgZW4gZGVcbi8vIGhvdmVyIG9vay4gRGllIGljb25zIGhvZXZlbiBnZWVuIGdyaWp6ZSBzdXJmYWNlIHZvb3IgZ2VzY2hpZWRlbmlzLCBhbGxlZW4gZWVuIGljb24gaXNcbi8vIHByaW1hLiBEaWUgeCBrbm9wcGVuIHppam4gb29rIHpvIGluIHlvdXIgZmFjZS5cIlxuLy9cbi8vIERlIGdyaWp6ZSBURUdFTCBvbmRlciBoZXQgaWNvb24gaXMgd2VnIGluIGRlIEpTICh0aWxlPVwibm9uZVwiKSwgZW4gZGF0IGxvc3QgdHdlZSBkaW5nZW5cbi8vIHRlZ2VsaWprIG9wOiBkZSB0ZWdlbCBib3RzdGUgbWV0IGRlIGdyaWp6ZSBob3ZlciwgZW4gaGlqIHdhcyA0MHB4LCB3YWFyZG9vciBkZSByaWogb3Bcbi8vIDYwcHggdWl0a3dhbS4gWm9uZGVyIHRlZ2VsIHZhbHQgZGUgcmlqIHRlcnVnIG9wIGRlIDQ0cHggdmFuIGhldCBjb21wb25lbnQuXG4vL1xuLy8gV2F0IGhpZXIgb3ZlcmJsaWpmdCBpcyBLTEVVUiBlbiBNQUFULCBlbiBkYXQga2FuIG5pZXQgaW4gZGUgSlM6XG4ucXNvLXJlY2VudHMtbGlzdCBxZG5hcHJvLWxpc3Qtcm93IHtcbiAgICAvLyBab25kZXIgdGVnZWwga2xldXJ0IHFkbmFwcm8tbGlzdC1yb3cgaGV0IGthbGUgaWNvb24gbWVyay1wYWFycy4gVm9vciBlZW5cbiAgICAvLyBnZXNjaGllZGVuaXMtbWFya2VyIGlzIGRhdCB0ZSB2ZWVsIG5hZHJ1azogaGV0IGlzIGVlbiBhYW5kdWlkaW5nLCBnZWVuIGFjdGllLCBlblxuICAgIC8vIG92ZXJhbCBlbGRlcnMgKENocm9tZSwgR21haWwpIGlzIGRhdCBpY29vbiBncmlqcy4gQWxsZWVuIGRlIGtsZXVyIHZhbiBoZXQgSUNPT05cbiAgICAvLyB3b3JkdCBoaWVyIGdlemV0LCB2aWEgZGUgY3VzdG9tIHByb3BlcnR5IGRpZSBoZXQgY29tcG9uZW50IGRhYXJ2b29yIGhlZWZ0LiBCZXd1c3RcbiAgICAvLyBOSUVUIHRvbmU9XCJtdXRlZFwiOiBkYXQgbWFha3Qgb29rIGRlIHRpdGVsIGdyaWpzLCBlbiBkZSBnZXpvY2h0ZSB0ZXJtIG1vZXQganVpc3RcbiAgICAvLyBnZXdvb24gbGVlc2JhYXIgYmxpanZlbi5cbiAgICAtLXFsci1iYXJlLWljb24tY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG5cbi8vIEhldCBrcnVpc2plIG9tIGVlbiB0ZXJtIHRlIHZlcmdldGVuOiBncmlqcyBpbiBwbGFhdHMgdmFuIGJpam5hIHp3YXJ0LiBEZSBNQUFUIHppdCBpbiBkZVxuLy8gSlMgKHNpemU9XCJzbWFsbFwiKSwgemllIGRlIHVpdGxlZyBkYWFyLlxuLy9cbi8vIFNwZWNpZmljaXRlaXQgbmFnZXJla2VuZCBlbiBuaWV0IGFhbmdlbm9tZW46IHFkbmFwcm8taWNvbi1idG4gemV0IHplbGZcbi8vIGAucWRuYXByby1pY29uLWJ0bi5pY29uLWJ0bi1zdWJ0bGUgeyBjb2xvcjogIzBiMGIwZCB9YCwgZW4gZGF0IGlzICgwLDIsMCkuIEVlbiBzZWxlY3RvclxuLy8gbWV0IGVlbiBrbGFzc2UgZW4gdHdlZSBlbGVtZW50bmFtZW4gaXMgKDAsMSwyKSBlbiB2ZXJsaWVzdCBkdXMsIG9vayBhbCBzdGFhdCBoaWogbGF0ZXIgaW5cbi8vIGhldCBiZXN0YW5kLiBWYW5kYWFyIGRlIGtsYXNzZSB2YW4gaGV0IGNvbXBvbmVudCBlcmJpajogKDAsMywxKSB3aW50IHdlbC4gRGl0IGlzIHByZWNpZXNcbi8vIGRlIHZhbCB3YWFyIGRlIGVlcnN0ZSBwb2dpbmcgaW4gbGllcCAoaGV0IGtydWlzamUgYmxlZWYgendhcnQsIGluIGVlbiBoZWFkbGVzcyBDaHJvbWVcbi8vIGdlbWV0ZW4gb3AgcmdiKDExLDExLDEzKSkuXG4ucXNvLXJlY2VudHMtbGlzdCAucWRuYXByby1saXN0LXJvdyBxZG5hcHJvLWljb24tYnRuLmljb24tYnRuLXN1YnRsZSB7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXNlYXJjaC1maWx0ZXItcGFuZWxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFRoZSBcIlpvZWtlbiAmIEZpbHRlclwiIHNsaWRlLWluIHBhbmVsLiBSZXBsYWNlcyB0aGUgfjI0MCBsaW5lcyBvZlxuLy8gIGlubGluZSBDU1MgaW4gVmlldy92MS9jb21wb25lbnRzL3RhYmxlcy9hZHZhbmNlX3NlYXJjaF90b29sYmFyLmh0bWwsXG4vLyAgd2hpY2ggZXhpc3RlZCBhbG1vc3QgZW50aXJlbHkgdG8gY29ycmVjdCBCb290c3RyYXAncyBtb2RhbCwgalF1ZXJ5XG4vLyAgbXVsdGlwbGVTZWxlY3QgYW5kIGRhdGVyYW5nZXBpY2tlci4gTm9uZSBvZiB0aG9zZSBhcmUgaW52b2x2ZWQgYW55XG4vLyAgbW9yZTogdGhlIGZpZWxkcyBhcmUgcWRuYXByby1pbnB1dCAvIHFkbmFwcm8tc2VsZWN0IGFuZCBicmluZyB0aGVpclxuLy8gIG93biBzdHlsaW5nLCBzbyB3aGF0IGlzIGxlZnQgaGVyZSBpcyB0aGUgcGFuZWwgc2hlbGwgaXRzZWxmLlxuLy9cbi8vICBGcm9zdGVkIGdsYXNzIHJlY2lwZSArIHNsaWRlLWluIHRpbWluZyBhcmUgZGVsaWJlcmF0ZWx5IHRoZSBTQU1FIGFzXG4vLyAgcWRuYXByby10cmFuc2xhdGlvbi1wYW5lbCDigJQgaXQgaXMgdGhlIHBsYXRmb3JtJ3Mgb3RoZXIgcmlnaHQtaGFuZFxuLy8gIHNsaWRlLWluIHBhbmVsIGFuZCB0aGUgdHdvIHNob3VsZCBub3QgZHJpZnQgYXBhcnQuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxucWRuYXByby1zZWFyY2gtZmlsdGVyLXBhbmVsIHtcbiAgICBkaXNwbGF5OiBjb250ZW50czsgLy8gdGhlIGhvc3QgYWRkcyBubyBsYXlvdXQgYm94OyAuc2ZwIGlzIGZpeGVkLXBvc2l0aW9uZWRcbn1cblxuLnNmcC1yb290W2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIOKUgOKUgCBCYWNrZHJvcCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEEgc2NyaW0sIG5vdCBhIHdhbGw6IDM4JSBvZiB0aGUgZGFya2VzdCBncmV5IHRva2VuLiBTYW1lIHZhbHVlIGluIGJvdGhcbi8vIHRoZW1lcyBvbiBwdXJwb3NlIOKAlCBhIHNjcmltJ3Mgam9iIGlzIHRvIHB1c2ggdGhlIHBhZ2UgYmFjaywgYW5kIHRoZSBwYWdlXG4vLyBiZWhpbmQgaXQgaXMgYWxyZWFkeSBkYXJrIGluIGRhcmsgbW9kZS5cbi5zZnAtYmFja2Ryb3Age1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBpbnNldDogMDtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy1ncmV5LTk1MCkgMzglLCB0cmFuc3BhcmVudCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI0MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgei1pbmRleDogMTA0OTtcblxuICAgICYtLXZpc2libGUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuLy8g4pSA4pSAIFBhbmVsIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnNmcCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDM4MHB4O1xuICAgIG1heC13aWR0aDogOTJ2dztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgei1pbmRleDogMTA1MDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAvLyBXSElURSBmcm9zdGVkIGdsYXNzIGluc3RlYWQgb2YgdGhlIGxhdmVuZGVyIHRpbnQgdGhlIFR3aWcgcGFydGlhbCBoYWRcbiAgICAvLyAoS2ltIDEwLjA4LjIwMjYpLiBCdWlsdCBvbiAtLWMtYmctY2FyZCBzbyBkYXJrIG1vZGUgZm9sbG93cyB3aXRob3V0IGFcbiAgICAvLyBzZWNvbmQgcnVsZTogdGhhdCB0b2tlbiBpcyAjZmZmIGluIGxpZ2h0IGFuZCAtLWMtZ3JleS04MDAgaW4gZGFyaywgYW5kXG4gICAgLy8gY29sb3ItbWl4IGtlZXBzIHRoZSB0cmFuc3BhcmVuY3kgdGhlIGJsdXIgbmVlZHMgdG8gcmVhZCBhcyBnbGFzcy5cbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy1iZy1jYXJkKSA3NCUsIHRyYW5zcGFyZW50KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCkgc2F0dXJhdGUoMTYwJSk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCkgc2F0dXJhdGUoMTYwJSk7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgICBib3gtc2hhZG93OiAtOHB4IDAgMzJweCB2YXIoLS1jLXB1cnBsZS1zb2Z0LTE4KTtcblxuICAgIC8vIFNsaWRlLWluOiBzdGFydHMgb2ZmLXNjcmVlbiwgSlMgYWRkcyAuc2ZwLS12aXNpYmxlIG9uIHRoZSBuZXh0IGZyYW1lLlxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjQwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcblxuICAgICYtLXZpc2libGUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgfVxuXG4gICAgKiB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbn1cblxuLy8g4pSA4pSAIEhlYWRlciDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5zZnAtaGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIC8vIFRoZSBoZWFkZXIga2VlcHMgaXRzIGJyYW5kIHB1cnBsZSBvbiB0b3Agb2YgdGhlIHdoaXRlIGJvZHkg4oCUIHdoaXRlIHRleHRcbiAgICAvLyBvbiBwdXJwbGUgY2FycmllcyBib3RoIHRoZW1lcywgc28gdGhpcyBuZWVkcyBubyBkYXJrIHZhcmlhbnQuXG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtcHVycGxlLTUwMCkgODglLCB0cmFuc3BhcmVudCk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE0cHgpO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE0cHgpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLXdoaXRlLTEyKTtcbn1cblxuLnNmcC1oZWFkLWljb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgLy8gQWx3YXlzIHdoaXRlLW9uLXB1cnBsZTogdGhpcyBjaGlwIHNpdHMgb24gdGhlIGJyYW5kIGhlYWRlciBpbiBib3RoIHRoZW1lcy5cbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTUpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItMik7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi5zZnAtaGVhZC10ZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZsZXg6IDE7XG59XG5cbi5zZnAtaGVhZC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi5zZnAtaGVhZC1kZXNjIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44MCk7XG5cbiAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi5zZnAtaGVhZC1jbG9zZSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi8vIOKUgOKUgCBBY3RpdmUgZmlsdGVyIGNoaXBzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnNmcC1jaGlwcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA1cHg7XG4gICAgcGFkZGluZzogMTBweCAxNnB4IDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAvLyBObyBjaGlwcyA9IG5vIHN0cmlwLiBXaXRob3V0IHRoaXMgdGhlIGVtcHR5IGJhciBzdGlsbCBlYXRzIHBhZGRpbmdcbiAgICAvLyBhbmQgdGhlIGZpcnN0IGZpZWxkIHNpdHMgdG9vIGxvdy5cbiAgICAmOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfVxuICAgICZbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLy8g4pSA4pSAIEJvZHkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4uc2ZwLWJvZHkge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNHB4O1xuXG4gICAgLy8gVGh1bWIgb2ZmIHRoZSBtdXRlZC10ZXh0IHRva2VuLCBzbyBpdCBzdGF5cyB2aXNpYmxlIG9uIGEgZGFyayBzdXJmYWNlXG4gICAgLy8gdG9vIChhIGZpeGVkIHB1cnBsZSB0aW50IGRpc2FwcGVhcnMgYWdhaW5zdCAtLWMtZ3JleS04MDApLlxuICAgIC0tc2ZwLXRodW1iOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy10ZXh0LW11dGVkKSA0NSUsIHRyYW5zcGFyZW50KTtcbiAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG4gICAgc2Nyb2xsYmFyLWNvbG9yOiB2YXIoLS1zZnAtdGh1bWIpIHRyYW5zcGFyZW50O1xuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogNXB4OyB9XG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2ZwLXRodW1iKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIH1cbn1cblxuLnNmcC1zZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNHB4O1xufVxuXG4uc2ZwLXNlY3Rpb24taGVhZCB7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCk7XG59XG5cbi5zZnAtc2VjdGlvbi10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIC8vIC0tYy1icmFuZC1wdXJwbGUsIG5vdCAtLWMtcHVycGxlLTUwMDogdGhlIGJyYW5kIHRva2VuIGlzIGxpZnRlZCB0b1xuICAgIC8vIHB1cnBsZS0yMDAgaW4gZGFyayBtb2RlLCB3aGVyZSB0aGUgNTAwIHdvdWxkIGJlIHVucmVhZGFibGUuXG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbn1cblxuLnNmcC1maWVsZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xufVxuXG4vLyBBIGZyb20vdG8gcGFpciBzaXRzIHNpZGUgYnkgc2lkZTsgYmVsb3cgfjQyMHB4IHRoZSBwYW5lbCBpcyB0b28gbmFycm93XG4vLyBmb3IgdHdvIGRhdGUgZmllbGRzIGFuZCB0aGV5IHN0YWNrLlxuLnNmcC1maWVsZC0tcmFuZ2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZ2FwOiA4cHg7XG5cbiAgICA+ICogeyBmbGV4OiAxIDEgMDsgbWluLXdpZHRoOiAwOyB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0MjBweCkge1xuICAgIC5zZnAtZmllbGQtLXJhbmdlIHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxufVxuXG4vLyDilIDilIAgRm9vdGVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnNmcC1mb290IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbn1cblxuLnNmcC1mb290LXNlYXJjaCB7XG4gICAgZmxleDogMTtcbn1cbiIsIi8vIFNDU1Mgc291cmNlIGZvciB0aGUgY29tcG9uZW50cy12MiBidW5kbGUuXG4vLyBQdWxsZWQgaW4gdmlhIHNjc3MvY29tcG9uZW50cy9jb21wb25lbnRzLnNjc3MgYW5kIGNvbXBpbGVkIGludG9cbi8vIHdlYi9jc3MvdjEvc3R5bGUtdjEuY3NzLCB3aGljaCBpcyBhbHNvIHRoZSBzdHlsZXNoZWV0IHRoZSBsaWJyYXJ5IHByZXZpZXdzXG4vLyBsb2FkLiBFZGl0IEhFUkUsIHRoZW4gcnVuIEJPVEggYG5weCBndWxwIHNhc3NgIGFuZCBgbnB4IGd1bHAgc2Fzcy12MWAuXG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdXRsaW5lOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMjBtcyBlYXNlLW91dCwgYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2Utb3V0O1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCAqLFxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgKjo6YmVmb3JlLFxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIC5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkOm5vdCgudHJjLWRpc2FibGVkKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG4gIH1cbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQuZm9yY2UtaG92ZXI6bm90KC50cmMtZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkOm5vdCgudHJjLWRpc2FibGVkKTphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMjAwLCAjZDFkNWRiKTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQ6bm90KC50cmMtZGlzYWJsZWQpLmlzLXByZXNzZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMjAwLCAjZDFkNWRiKTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQuZm9yY2UtcHJlc3NlZDpub3QoLnRyYy1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMjAwLCAjZDFkNWRiKTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQ6bm90KC50cmMtZGlzYWJsZWQpOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDcwLCA4MiwgMjQzLCAwLjI1KTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQuZm9yY2UtZm9jdXM6bm90KC50cmMtZGlzYWJsZWQpIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSg3MCwgODIsIDI0MywgMC4yNSk7XG59XG5cbi8qID09PSBNYWluIHJvdyAoZGltcyB0byBvcGFjaXR5IC41IHdoZW4gdGhlIHJ1biBpcyBjb21wbGV0ZWQpID09PSAqL1xuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1tYWluIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMTJweDtcbiAgcGFkZGluZzogOHB4IDEycHg7XG59XG5cbi8qIEFGR0VST05EIERJTVQgTklFVCBNRUVSIChLaW0gMDYuMDguMjAyNikuIEhpZXIgc3RvbmQgYG9wYWNpdHk6IDAuNWAgb3AgZGUgaG9vZmRyaWogdmFuXG4gICBlZW4gYWZnZXJvbmRlIGthYXJ0LiBEaWUgZGltbWluZyBoYWQgw6nDqW4gZG9lbDogaW4gZWVuIGxpanN0IHdhYXJpbiBhZmdlcm9uZGUgZW4gbm9nXG4gICBvcGVuc3RhYW5kZSB0YWtlbmxpanN0ZW4gRE9PUiBFTEtBQVIgc3RvbmRlbiBtb2VzdCBoZXQgYWZnZXJvbmRlIHdlcmsgbmFhciBhY2h0ZXJlblxuICAgemFra2VuLiBEaWUgbGlqc3QgYmVzdGFhdCBuaWV0IG1lZXIgLSBkZSBvdWRlIGRhZy1saWpzdCB2YW4gZGUgUFdBIGlzIG9wIDA2LjA4LjIwMjZcbiAgIHZlcndpamRlcmQsIGVuIGVsayBzY2hlcm0gZGF0IG51IGVlbiBhZmdlcm9uZGUga2FhcnQgdG9vbnQgYmV2YXQgYWxsZWVuIG5vZyBrYWFydGVuIHZhblxuICAgw6nDqW4gc29vcnQ6IGRlIFwiTmlldCB2ZXJzdHV1cmRcIi1idWNrZXQsIGhldCByZWNodGVycGFuZWVsIG9wIHRhYmxldCBlbiBkZSBuaWV1d2VcbiAgIGdlc2NoaWVkZW5pcy4gWm9uZGVyIGRpZSB2ZXJtZW5naW5nIGlzIGVlbiBoYWxmIGRvb3J6aWNodGlnZSBrYWFydCBnZWVuIHNpZ25hYWwgbWVlciBtYWFyXG4gICBnZXdvb24gc2xlY2h0ZXIgbGVlc2JhYXIuIERlIGNoZWNrLWJhZGdlLCBoZXQgd29vcmQgXCJBZmdlcm9uZFwiIGVuIGRlIGFmcm9uZHRpamQgemVnZ2VuIGFsXG4gICB3YXQgZXIgdGUgemVnZ2VuIHZhbHQuXG4gICBEZSAudHJjLWRpc2FibGVkLXN0YW5kIHZlcmRlcm9wIGJsaWpmdCB3w6lsIGRpbW1lbjogZGF0IGlzIGVlbiBlY2h0ZSBcImthbiBudSBuaWV0XCItc3RhbmQsXG4gICBlZW4gYW5kZXJlIGJvb2RzY2hhcCBkYW4gXCJkaXQgaXMga2xhYXJcIi5cbiAgIERlIGNsYXNzIGB0cmMtbWFpbi1jb21wbGV0ZWRgIGJsaWpmdCBkZSBjb21wb25lbnQgd8OpbCB6ZXR0ZW46IGJydWlrYmFhciBoYWFramUgdm9vciBlZW5cbiAgIGNvbnN1bWVyIGRpZSBkZSBhZmdlcm9uZC1zdGFuZCB0b2NoIGFuZGVycyB3aWwgdGVrZW5lbiwgYWxsZWVuIHpvbmRlciBlaWdlbiBvcG1hYWsgaGllci5cbiAgIENvbW1lbnRhYXIgbWV0IHNsYXNoZXMtc3RlcnJldGplIGVuIG5pZXQgbWV0IGR1YmJlbGUgc2xhc2hlczogZGl0IGJlc3RhbmQgd29yZHQgYWxzIFBMQVRURVxuICAgQ1NTIG5hYXIgZGUgUFdBIGdla29waWVlcmQgKHppZSBzeW5jLXYyLWNvbXBvbmVudHMuanMpLCBkdXMgU0NTUy1jb21tZW50YWFyIGhvb3J0IGhpZXJcbiAgIG5pZXQuICovXG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtaWNvbiB7XG4gIGZsZXg6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtdGlsZSB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGZsZXg6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS10cmMtYmcsICNlZWYwZjIpO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCAudHJjLWJvZHkge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtbmFtZSB7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtcHJvamVjdCB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS05MDAsICMwYjBiMGQpO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCAudHJjLW1ldGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiA0cHggMDtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1tZXRhID4gcWRuYXByby1pY29uIHtcbiAgZmxleDogbm9uZTtcbiAgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCk7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCAudHJjLXRpbWUge1xuICBjb2xvcjogdmFyKC0tYy1ncmV5LTMwMCk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtc3RhdHVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBtYXJnaW4tbGVmdDogMjRweDtcbiAgY29sb3I6IHZhcigtLWMtZmF2b3JpdGUtaGVhcnQpO1xufVxuXG4vKiA9PT0gRm9vdGVycyA9PT0gKi9cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS01MCk7XG59XG5cbi8qIFJvdW5kIHNsb3QgaW4gZnJvbnQgb2YgdGhlIGxvY2F0aW9uIGhvbGRzIHRoZSBPUkdBTklTQVRJT04gbG9nbyAoS2ltXG4gICAyOC4wNy4yMDI2KS4gSXQgaXMgb25seSBpbiB0aGUgRE9NIHdoZW4gdGhlcmUgSVMgYSBsb2dvIChLaW0gMjQuMDguMjAyNik6XG4gICB0aGUgZW1wdHkgcGxhY2Vob2xkZXIgY2lyY2xlIGNhcnJpZWQgbm8gaW5mb3JtYXRpb24uIFdoaXRlIGRpc2MsIGJlY2F1c2UgYW5cbiAgIG9yZ2FuaXNhdGlvbiBsb2dvIGlzIHVzdWFsbHkgZHJhd24gb24gd2hpdGUgYW5kIGEgZ3JleSBkaXNjIGJlaGluZCBpdCByZWFkc1xuICAgYXMgYSBkaXJ0eSBlZGdlLiAqL1xuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1vcmctbG9nbyB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGZsZXg6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIGNvbnRhaW4sIG5vdCBjb3ZlcjogYSBsb2dvIGlzIHJhcmVseSBzcXVhcmUsIGFuZCBjb3ZlciB3b3VsZCBjcm9wIHRoZVxuICAgc2lkZXMgb2ZmIGEgd2lkZSB3b3JkbWFyay4gTGV0dGVyYm94aW5nIGluc2lkZSB0aGUgY2lyY2xlIGtlZXBzIGl0IHdob2xlLiAqL1xuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1vcmctbG9nbyBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1sb2MtdGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1sb2MtbmFtZSB7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCAudHJjLWxvYy1hZGRyZXNzIHtcbiAgY29sb3I6IHZhcigtLWMtZ3JleS0zMDApO1xufVxuXG4vKiBBZmRlbGluZyB2YW4gZGUgY2hlY2staW46IGRlcmRlIHJlZ2VsIElOIGRlIHRla3N0a29sb20sIG1ldCBlZW4ga2xlaW5cbiAgIGdlYm91dy1pY29vbnRqZSBlcnZvb3IuIFplbGZkZSBvcGJvdXcgYWxzIC5hby1oZWFkZXItcGxhY2UtZGVwdCBpbiBkZVxuICAgdGFrZW5saWpzdC1oZWFkZXIgKF9wd2EtY3VycmVudC5zY3NzKSwgem9kYXQgZGUga2FhcnQgZW4gZGUgaGVhZGVyIGRlemVsZmRlXG4gICBwbGFhdHMgKyBhZmRlbGluZyBvcCBkZXplbGZkZSBtYW5pZXIgbGF0ZW4gemllbi4gS2xldXIgaXMgaGllciB3ZWwgaGV0IG5hdnlcbiAgIHZhbiBkZXplIGthYXJ0ICh2YXIoLS1jLXB1cnBsZS01MDApLCBnZWxpamsgYWFuIC50cmMtbG9jLW5hbWUpIGluIHBsYWF0cyB2YW4gaGV0XG4gICBoZWFkZXItbmF2eTogZGUgaGVhZGVyIHN0YWF0IG9wIGVlbiBwYXN0ZWwgdmxhaywgZGV6ZSBmb290ZXIgb3Agd2l0LiAqL1xuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1sb2MtZGVwdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBtaW4td2lkdGg6IDA7XG4gIG1hcmdpbi10b3A6IDNweDtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1sb2MtZGVwdCA+IHFkbmFwcm8taWNvbiB7XG4gIGZsZXg6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDY0LCA3MywgMTU0LCAwLjc1KTtcbn1cblxuLyogTmlldCB6d2FhcmRlciBkYW4gZGUgbG9jYXRpZW5hYW0gZXJib3ZlbjogZGUgYWZkZWxpbmcgaXMgZWVuIGRldGFpbCB2YW4gZGVcbiAgIGxvY2F0aWUsIGdlZW4gdHdlZWRlIHRpdGVsLiAqL1xuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1sb2MtZGVwdC1uYW1lIHtcbiAgbWluLXdpZHRoOiAwO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1jaGVjayB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGZsZXg6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1jb21wbGV0ZWQtbGFiZWwge1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtY29tcGxldGVkLXRpbWUge1xuICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtNTAwKTtcbiAgb3BhY2l0eTogMC41O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtaGlkZSB7XG4gIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCAudHJjLWZvb3Rlci11bnN5bmNlZCB7XG4gIGNvbG9yOiB2YXIoLS1jLXdhcm4teWVsbG93LTYwMCk7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cblxuLyogPT09IERpc2FibGVkIHN0YXRlID09PVxuICAgQmFja2dyb3VuZCBzdGF5cyB3aGl0ZSBhbmQgYm9yZGVyIHN0YXlzIGdyZXktMTAwIChib3RoIGRlbGliZXJhdGUsIEtpbVxuICAgMjguMDcuMjAyNiAtIGEgZ3JleSBmaWxsIHdvdWxkIHZhbmlzaCBhZ2FpbnN0IHRoZSBsaWdodCBncmV5IHBhZ2UpLiBUZXh0XG4gICBnb2VzIHRvIHRoZSBidXR0b24gY29tcG9uZW50J3MgZGlzYWJsZWQgdGV4dCBjb2xvdXIgYW5kIHRoZSBhY3Rpdml0eVxuICAgaWNvbiBmYWRlczsgaG92ZXIgLyBwcmVzc2VkIC8gZm9jdXMgYXJlIHN1cHByZXNzZWQgdmlhIHRoZSA6bm90KC50cmMtZGlzYWJsZWQpXG4gICBndWFyZHMgYWJvdmUuICovXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtZGlzYWJsZWQge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWRpc2FibGVkIC50cmMtdGlsZSBxZG5hcHJvLWFjdGl2aXR5LWljb24ge1xuICBvcGFjaXR5OiAwLjM7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1kaXNhYmxlZCAudHJjLW5hbWUsXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtZGlzYWJsZWQgLnRyYy1wcm9qZWN0LFxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWRpc2FibGVkIC50cmMtdGltZSxcbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1kaXNhYmxlZCAudHJjLXN0YXR1cyxcbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1kaXNhYmxlZCAudHJjLWxvYy1uYW1lLFxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWRpc2FibGVkIC50cmMtbG9jLWFkZHJlc3MsXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtZGlzYWJsZWQgLnRyYy1sb2MtZGVwdC1uYW1lLFxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWRpc2FibGVkIC50cmMtY29tcGxldGVkLWxhYmVsLFxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWRpc2FibGVkIC50cmMtY29tcGxldGVkLXRpbWUsXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtZGlzYWJsZWQgLnRyYy1oaWRlLFxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWRpc2FibGVkIC50cmMtZm9vdGVyLXVuc3luY2VkIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1kaXNhYmxlZCAudHJjLW1ldGEgPiBxZG5hcHJvLWljb24sXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtZGlzYWJsZWQgLnRyYy1sb2MtZGVwdCA+IHFkbmFwcm8taWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpO1xufVxuXG4vKiA9PT0gQ29sb3VyIHBhbGV0dGUgKHFkbmFwcm8tdGFnIGxpZ2h0IHBhc3RlbHMsIHNhbWUgdG9rZW5zIGFzIHFkbmFwcm8tdGFza2xpc3QtY2FyZCkgPT09ICovXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtY29sb3ItZ3JleSB7XG4gIC0tdHJjLWJnOiB2YXIoLS1jLWdyZXktNTApO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtY29sb3ItcmVkIHtcbiAgLS10cmMtYmc6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1jb2xvci15ZWxsb3cge1xuICAtLXRyYy1iZzogdmFyKC0tYy1jaGlwLXllbGxvdy1iZyk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1jb2xvci1ncmVlbiB7XG4gIC0tdHJjLWJnOiB2YXIoLS1jLWNoaXAtZ3JlZW4tYmcpO1xufVxuXG4ucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtY29sb3ItYmx1ZSB7XG4gIC0tdHJjLWJnOiB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnKTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWNvbG9yLWJyaWdodC1ibHVlIHtcbiAgLS10cmMtYmc6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWJnKTtcbn1cblxuLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWNvbG9yLXBpbmsge1xuICAtLXRyYy1iZzogdmFyKC0tYy1zaWduYWwtcGluay1iZyk7XG59XG5cbi5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1jb2xvci1wdXJwbGUge1xuICAtLXRyYy1iZzogdmFyKC0tYy1jaGlwLXB1cnBsZS1iZyk7XG59XG5cbi8qID09PSBEYXJrIG1vZGUgLSBiYXNlIGNhcmQgY2hyb21lID09PVxuICAgRXhwbGljaXQgZGFyayBvdmVycmlkZXMgKHN0YW5kYWxvbmUgbGlicmFyeSBwcmV2aWV3IGhhcyBubyAtLWMtKiB0b2tlbnNcbiAgIHNldCwgc28gbGlnaHQgZmFsbGJhY2tzIHdvdWxkIG90aGVyd2lzZSB3aW4pLiBWYWx1ZXMgZm9sbG93IHRoZSBzYW1lXG4gICBkYXJrIHBhbGV0dGUgdXNlZCBhY3Jvc3MgdGhlIG90aGVyIHYyIGNvbXBvbmVudHM6IHN1cmZhY2UgdmFyKC0tYy1ncmV5LTgwMCksXG4gICBob3ZlciB2YXIoLS1jLWdyZXktNzAwKSwgcHJlc3NlZCB2YXIoLS1jLWdyZXktNjAwKSwgcHJpbWFyeSB0ZXh0IHZhcigtLWMtZ3JleS01MCksIG11dGVkIHZhcigtLWMtZ3JleS00MDApLFxuICAgc3VidGxlIGJvcmRlciByZ2JhKDI1NSwyNTUsMjU1LDAuMTApLiAqL1xuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQge1xuICBiYWNrZ3JvdW5kOiAjMmUzMDM2O1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1uYW1lIHtcbiAgY29sb3I6ICNjN2NjZTg7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkIC50cmMtcHJvamVjdCB7XG4gIGNvbG9yOiAjZjBmMWYyO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZCAudHJjLXRpbWUge1xuICBjb2xvcjogI2EwYTRiODtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQgLnRyYy1mb290ZXIge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIFtkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkOm5vdCgudHJjLWRpc2FibGVkKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzQwNDQ0ZDtcbiAgfVxufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC5mb3JjZS1ob3ZlciB7XG4gIGJhY2tncm91bmQ6ICM0MDQ0NGQ7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkOm5vdCgudHJjLWRpc2FibGVkKTphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjNTY1YjY2O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZDpub3QoLnRyYy1kaXNhYmxlZCkuaXMtcHJlc3NlZCB7XG4gIGJhY2tncm91bmQ6ICM1NjViNjY7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLmZvcmNlLXByZXNzZWQge1xuICBiYWNrZ3JvdW5kOiAjNTY1YjY2O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtY29sb3ItZ3JleSB7XG4gIC0tdHJjLWJnOiAjNDA0NDRkO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtY29sb3ItcmVkIHtcbiAgLS10cmMtYmc6ICM1YTJiMmI7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1jb2xvci15ZWxsb3cge1xuICAtLXRyYy1iZzogIzVhNGQxZjtcbn1cblxuW2RhdGEtdGhlbWU9ZGFya10gLnFkbmFwcm8tdGFza2xpc3QtcnVuLWNhcmQudHJjLWNvbG9yLWdyZWVuIHtcbiAgLS10cmMtYmc6ICMyYTU1NDQ7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1jb2xvci1ibHVlIHtcbiAgLS10cmMtYmc6ICMyZTNlNTQ7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5xZG5hcHJvLXRhc2tsaXN0LXJ1bi1jYXJkLnRyYy1jb2xvci1icmlnaHQtYmx1ZSB7XG4gIC0tdHJjLWJnOiAjM2E0YThhO1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtY29sb3ItcGluayB7XG4gIC0tdHJjLWJnOiAjNGUyYTM2O1xufVxuXG5bZGF0YS10aGVtZT1kYXJrXSAucWRuYXByby10YXNrbGlzdC1ydW4tY2FyZC50cmMtY29sb3ItcHVycGxlIHtcbiAgLS10cmMtYmc6ICMzYTM1NTU7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXNlbGVjdGlvbi1iYXIgKyBxZG5hcHJvLXNlbGVjdGlvbi1iYXItYnRuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBGaXhlZCBiYXIgYXQgdGhlIGJvdHRvbSBvZiB0aGUgc2NyZWVuLCBzaG93biB3aGlsZSB0aGUgdXNlciBpcyBpblxuLy8gIHNlbGVjdGlvbiBtb2RlLiBPbmUgYnV0dG9uIHBlciBhY3Rpb246IE1ESSBnbHlwaCB3aXRoIGl0cyB3b3JkXG4vLyAgZGlyZWN0bHkgdW5kZXJuZWF0aC5cbi8vXG4vLyAgQm90dG9tLW9mLXNjcmVlbiBjb3VudGVycGFydCBvZiBxZG5hcHJvLWFwcC1oZWFkZXIgbW9kZT1cInNlbGVjdGlvblwiLlxuLy8gIFRoZSBjb3VudCAoXCIzIHNlbGVjdGVkXCIpIGxpdmVzIGluIHRoYXQgaGVhZGVyLCBuZXZlciBoZXJlLlxuLy9cbi8vICBERUxJQkVSQVRFTFkgUExBSU4gQ1NTLiBUaGlzIGZpbGUgY29udGFpbnMgTk8gU0NTUyB2YXJpYWJsZXMgKCRuYW1lOilcbi8vICBhbmQgTk8gbmVzdGVkICYgc2VsZWN0b3JzLCBvbiBwdXJwb3NlOiBhIGNvbXBvbmVudCB3aG9zZSBzdHlsZXNoZWV0XG4vLyAgbmVlZHMgcmVhbCBTQ1NTIGNvbXBpbGF0aW9uIG11c3QgYmUgZmxhZ2dlZCBhcyBjb21waWxlU2NzcyB3aGVuIGl0IGlzXG4vLyAgc3luY2VkIHRvIHRoZSBQV0EsIGFuZCBhIG1pc3NlZCBmbGFnIGxlYWtzIHRoZSB2YXJpYWJsZSBuYW1lIHN0cmFpZ2h0XG4vLyAgaW50byB0aGUgQ1NTLCB3aGljaCBpbnZhbGlkYXRlcyB0aGUgcnVsZSBBTkQgdGhyb3dzIGF3YXkgdGhlIHJ1bGVcbi8vICBhZnRlciBpdC4gRXZlcnl0aGluZyBoZXJlIGlzIHRoZXJlZm9yZSBjdXN0b20gcHJvcGVydGllcyArIGZsYXRcbi8vICBzZWxlY3RvcnMsIHdoaWNoIGlzIGJ5dGUtZm9yLWJ5dGUgdmFsaWQgQ1NTIGVpdGhlciB3YXkuXG4vL1xuLy8gIFRva2VucyBjb25zdW1lZCAoZnJvbSBkZXNpZ24tdG9rZW5zL19kZXNpZ24tdG9rZW5zLnNjc3MpOlxuLy8gICAgLS1jLWJnLWNhcmQgICAgICAgICAgICAgICBiYXIgYmFja2dyb3VuZCAoYXV0by1mbGlwcyBpbiBkYXJrIG1vZGUpXG4vLyAgICAtLWMtYm9yZGVyLXNvZnQtMiAgICAgICAgIGhhaXJsaW5lIG9uIHRvcCAvIGNhcmQgYm9yZGVyXG4vLyAgICAtLWMtdGV4dC1ib2R5ICAgICAgICAgICAgIGFjdGl2ZS9ob3ZlciBnbHlwaCArIGxhYmVsIGNvbG91clxuLy8gICAgLS1jLXRleHQtbXV0ZWQgICAgICAgICAgICBpZGxlIGdseXBoICsgbGFiZWwgY29sb3VyXG4vLyAgICAtLWMtdGV4dC1kaXNhYmxlZCAgICAgICAgIGRpc2FibGVkIGJ1dHRvblxuLy8gICAgLS1jLXNpZ25hbC1yZWQtdGV4dCAgICAgICBkYW5nZXIgdG9uZSAobGlnaHQpXG4vLyAgICAtLWMtd2Fybi1yZWQtNDAwICAgICAgICAgIGRhbmdlciB0b25lIChkYXJrKVxuLy8gICAgLS1jLWJnLXN1YnRsZS1ob3ZlciAgICAgICBob3ZlciBiYWNrZ3JvdW5kXG4vLyAgICAtLWMtYmctc3VidGxlLXByZXNzICAgICAgIHByZXNzZWQgYmFja2dyb3VuZCAod2FzIGxpY2h0cGFhcnMgdG90IDI5LjA3LjIwMjYpXG4vLyAgICAtLWZvY3VzLXJpbmcgICAgICAgICAgICAgIGtleWJvYXJkIGZvY3VzIG91dGxpbmVcbi8vICAgIC0tci0yIC8gLS1yLTQgICAgICAgICAgICAgcmFkaWlcbi8vICAgIC0tZmYgLyAtLWZ3LW1lZGl1bSAgICAgICAgdHlwb2dyYXBoeVxuLy8gICAgLS1mdy1zZW1pIC8gLS1mdy1yZWd1bGFyICBtb2RlPVwibWVzc2FnZVwiIHRpdGxlIGFuZCBzdWJ0aXRsZVxuLy9cbi8vICBUYXAgdGFyZ2V0IDogZXZlcnkgYnV0dG9uIGlzIG1pbi1oZWlnaHQgNDRweCAoQXBwbGUgSElHIG1pbmltdW0pLlxuLy8gIFNhZmUgYXJlYSAgOiBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkgaXMgcmVzZXJ2ZWQgSU5TSURFIHRoZSBiYXIsXG4vLyAgICAgICAgICAgICAgIGV4YWN0bHkgbGlrZSBxZG5hcHJvLWJvdHRvbS1uYXYgZG9lcyBpdCwgYnV0IHJlZHVjZWQgYnlcbi8vICAgICAgICAgICAgICAgd2hhdGV2ZXIgLS1xc2ItYm90dG9tLW9mZnNldCAoKyB0aGUgZmxvYXRpbmcgbGlmdClcbi8vICAgICAgICAgICAgICAgYWxyZWFkeSByYWlzZXMgdGhlIGJhci4gU2l0dGluZyBvbiB0b3Agb2YgdGhlIGJvdHRvbS1uYXZcbi8vICAgICAgICAgICAgICAgdGhlcmVmb3JlIGRvZXMgbm90IHJlc2VydmUgdGhlIGhvbWUtaW5kaWNhdG9yIHN0cmlwIHR3aWNlLlxuLy9cbi8vICBObyBtZWRpYSBxdWVyaWVzIG9uIHB1cnBvc2U6IHRoZSBiYXIgbXVzdCBzdXJ2aXZlIGEgMzYwcHggcGhvbmUsIGFuZFxuLy8gIGEgdmlld3BvcnQtYmFzZWQgYnJlYWtwb2ludCB3b3VsZCBzaWxlbnRseSBjaGFuZ2UgdGhlIHR5cGUgc2l6ZSBpbiBhXG4vLyAgbmFycm93IGNvbnRhaW5lciBpbnNpZGUgYSB3aWRlIHdpbmRvdyAod2hpY2ggaXMgZXhhY3RseSB0aGUgc2l0dWF0aW9uXG4vLyAgaW4gdGhlIGxpYnJhcnkgcHJldmlldykuIE9uZSBzaXplIGV2ZXJ5d2hlcmUsIGhvbmVzdCBldmVyeXdoZXJlLlxuLy8gIFdpZGUgc2NyZWVucyBhcmUgaGFuZGxlZCBieSBjYXBwaW5nIGVhY2ggYnV0dG9uIGF0IC0tcXNiLWJ0bi1tYXggYW5kXG4vLyAgY2VudHJpbmcgdGhlIHJvdywgc28gdGhlIGJ1dHRvbnMgbmV2ZXIgc3RyZXRjaCBhY3Jvc3MgYSBsYXB0b3AuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhciB7XG4gICAgLS1xc2ItYmc6ICAgICAgICAgICAgdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgICAtLXFzYi1ib3JkZXI6ICAgICAgICB2YXIoLS1jLWJvcmRlci1zb2Z0LTIsICNlNmU5ZWYpO1xuICAgIC0tcXNiLWZnOiAgICAgICAgICAgIHZhcigtLWMtdGV4dC1ib2R5LCAjMGIwYjBkKTtcbiAgICAtLXFzYi1mZy1pZGxlOiAgICAgICB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgIC0tcXNiLWZnLWRpc2FibGVkOiAgIHZhcigtLWMtdGV4dC1kaXNhYmxlZCwgIzg5OGU5OSk7XG4gICAgLS1xc2ItZmctZGFuZ2VyOiAgICAgdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xuICAgIC0tcXNiLWhvdmVyLWJnOiAgICAgIHZhcigtLWMtYmctc3VidGxlLWhvdmVyLCAjZjBmMWYyKTtcbiAgICAvLyBLaW0gMjkuMDcuMjAyNiwgbmEgZGUgZWVyc3RlIHRvZXN0ZWx0ZXN0OiBkZSBpbmdlZHJ1a3Qta2xldXIgd2FzXG4gICAgLy8gbGljaHRwYWFycyBlbiBkYXQgd2lsIHplIG5pZXQgb3AgZGV6ZSBiYWxrLiBOdSBlZW4gbmV1dHJhYWwgZ3JpanMsIGhldHplbGZkZVxuICAgIC8vIGdyaWpzIGFscyBkZSB6d2VlZi1zdGFhdCwgem9kYXQgZGUgYmFsayBpbiBlbGtlIHRvZXN0YW5kIHdpdCBtZXQgZ3JpanMgaXMgZW5cbiAgICAvLyBub29pdCBwYWFycyBvcGxpY2h0LiBEZSBnZXZhYXItdG9vbiBob3VkdCB6aWpuIGVpZ2VuIHJvZGUgaW5nZWRydWt0LWtsZXVyLlxuICAgIC0tcXNiLXByZXNzLWJnOiAgICAgIHZhcigtLWMtYmctc3VidGxlLXByZXNzLCAjZTdlOWVjKTtcblxuICAgIC8vIHB4IGRpc3RhbmNlIHRvIHRoZSBib3R0b20gZWRnZSBvZiB0aGUgdmlld3BvcnQuIFJhaXNlZCBieSB0aGUgaG9zdFxuICAgIC8vIHdoZW4gYSBwZXJtYW5lbnQgYm90dG9tIGJhciAocWRuYXByby1ib3R0b20tbmF2LCA2MHB4KSBzaXRzIGJlbG93LlxuICAgIC0tcXNiLWJvdHRvbS1vZmZzZXQ6IDBweDtcbiAgICAvLyBFeHRyYSBhaXIgdW5kZXIgdGhlIGJhci4gMCBmb3IgZmxhdCwgMTJweCBmb3IgdGhlIGZsb2F0aW5nIGNhcmQuXG4gICAgLS1xc2ItbGlmdDogICAgICAgICAgMHB4O1xuXG4gICAgLS1xc2ItcGFkLXk6ICAgICAgICAgNnB4O1xuICAgIC0tcXNiLXBhZC14OiAgICAgICAgIDRweDtcbiAgICAtLXFzYi1idG4tbWF4OiAgICAgICAxNDBweDtcbiAgICAtLXFzYi1sYWJlbC1zaXplOiAgICAxMXB4O1xuICAgIC0tcXNiLWdhcDogICAgICAgICAgIDJweDtcblxuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogY2FsYyh2YXIoLS1xc2ItYm90dG9tLW9mZnNldCkgKyB2YXIoLS1xc2ItbGlmdCkpO1xuICAgIC8vIE9uZSBiZWxvdyBxZG5hcHJvLWJvdHRvbS1uYXYgKDEwMCkgb24gcHVycG9zZTogaWYgdGhlIHR3byBldmVyIGRvXG4gICAgLy8gb3ZlcmxhcCwgdGhlIHBlcm1hbmVudCBuYXZpZ2F0aW9uIG11c3Qgc3RheSByZWFkYWJsZS5cbiAgICB6LWluZGV4OiA5OTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICBwYWRkaW5nOiB2YXIoLS1xc2ItcGFkLXkpIHZhcigtLXFzYi1wYWQteCk7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoXG4gICAgICAgIHZhcigtLXFzYi1wYWQteSkgK1xuICAgICAgICBtYXgoMHB4LCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgMHB4KSAtIHZhcigtLXFzYi1ib3R0b20tb2Zmc2V0KSAtIHZhcigtLXFzYi1saWZ0KSlcbiAgICApO1xuXG4gICAgYmFja2dyb3VuZDogdmFyKC0tcXNiLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tcXNiLWZnKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZmYsIFwiSW50ZXJcIiwgc2Fucy1zZXJpZik7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhciAqLFxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhciAqOjpiZWZvcmUsXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4vLyBUaGUgY29tcG9uZW50J3Mgb3duIGRpc3BsYXk6ZmxleCBpcyBtb3JlIHNwZWNpZmljIHRoYW4gdGhlIGJyb3dzZXInc1xuLy8gZGVmYXVsdCBbaGlkZGVuXSBydWxlLCBzbyB3aXRob3V0IHRoaXMgdGhlIGhvc3QncyBgaGlkZGVuYCB3b3VsZCBkb1xuLy8gbm90aGluZyBhdCBhbGwuIFRoaXMgaXMgaG93IGEgaG9zdCBzaG93cyBhbmQgaGlkZXMgdGhlIGJhci5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgdmFyaWFudD1cImZsYXRcIiAoREVGQVVMVCkgLSBmdWxsIHdpZHRoLCBhZ2FpbnN0IHRoZSBib3R0b20gZWRnZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtdmFyaWFudD1cImZsYXRcIl0ge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1xc2ItYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJveC1zaGFkb3c6IDAgLTJweCAxNnB4IHJnYmEoMjAsIDI1LCA4MCwgMC4xMCk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIHZhcmlhbnQ9XCJmbG9hdGluZ1wiIC0gY2FyZCB3aXRoIGFpciBhcm91bmQgaXRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLXZhcmlhbnQ9XCJmbG9hdGluZ1wiXSB7XG4gICAgLS1xc2ItbGlmdDogMTJweDtcbiAgICAtLXFzYi1wYWQteDogNnB4O1xuXG4gICAgbGVmdDogMTJweDtcbiAgICByaWdodDogMTJweDtcbiAgICBtYXgtd2lkdGg6IDU2MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXFzYi1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItNCwgMTZweCk7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDIwLCAyNSwgODAsIDAuMTgpO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBtb2RlPVwibWVzc2FnZVwiIC0gdGVrc3RibG9rIGxpbmtzLCBhY3RpZXMgcmVjaHRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBLaW0gMTQuMDguMjAyNi4gWmVsZmRlIGJhbGssIGFuZGVyZSBpbmRlbGluZzogaGlqIG1lbGR0IGVlbiBNT0RVU1xuLy8gIChcIkplIHBsYW50IG51OiBBbGxlIG5vZGVzXCIgLyBcIlRpayBvcCBqZSBhZ2VuZGEgb20gdGUgcGxhbm5lblwiKSBpblxuLy8gIHBsYWF0cyB2YW4gZWVuIHJpaiBnZWxpamtlIGFjdGlla25vcHBlbi5cbi8vXG4vLyAgVHdlZSBkaW5nZW4gZGllIGhpZXIgbW9ldGVuIHdvcmRlbiBURVJVR0dFRFJBQUlEIHRlbiBvcHppY2h0ZSB2YW4gZGVcbi8vICBzdGFuZGFhcmRiYWxrLCBlbiB6ZSBob3JlbiBiaWogZWxrYWFyOlxuLy8gICAgMS4ganVzdGlmeS1jb250ZW50OiBjZW50ZXIgLT4gc3BhY2UtYmV0d2Vlbiwgd2FudCBkZSB0ZWtzdCBob29ydFxuLy8gICAgICAgbGlua3MgZW4gZGUgYWN0aWVzIHJlY2h0cy5cbi8vICAgIDIuIGRlIGtub3BwZW4gdmVybGllemVuIGh1biBmbGV4OiAxIDEgMC4gSW4gZGUgc3RhbmRhYXJkYmFsayBkZWxlblxuLy8gICAgICAgemUgZGUgcmlqIGVlcmxpams7IGhpZXIgem91IGRlIHRla3N0IGRhbiB3ZWdnZWRydWt0IHdvcmRlbiBkb29yXG4vLyAgICAgICBlZW4ga25vcCBkaWUgZ3JvZWl0IHpvbmRlciBkYXQgaGlqIHJ1aW10ZSBub2RpZyBoZWVmdC5cbi8vXG4vLyAgR2VyZWtlbmQgb3AgZGUgc21hbHN0ZSB0ZWxlZm9vbiBkaWUgd2UgbW9ldGVuIGhhbGVuICgzNjBweCk6IDMyOHB4XG4vLyAgYmlubmVuIGRlIHBhZGRpbmcsIGVlbiBrbm9wIHZhbiA2NHB4IGVyYWYsIDEycHggZ2F0ID0gMjUycHggdm9vciBkZVxuLy8gIHRla3N0LiBcIkplIHBsYW50IG51OiBBbGxlIG5vZGVzXCIgaXMgYmlqIDE1cHggSW50ZXIgU2VtaWJvbGQgb25nZXZlZXJcbi8vICAxODVweCwgZHVzIGRhdCBwYXN0LiBEZSB0aXRlbCBtYWcgb3ZlciBNQVhJTUFBTCBUV0VFIHJlZ2VscyAoZ2VrbGVtZCxcbi8vICB6aWUgZGUgcmVnZWwgemVsZiB2b29yIGRlIG1ldGluZyk7IGRlIG9uZGVycmVnZWwga2FwdCBhZiBtZXQgZWVuXG4vLyAgcHVudC1wdW50LXB1bnQsIHdhbnQgZGllIGlzIHVpdGxlZyBlbiBnZWVuIGluZm9ybWF0aWUgZGllIGplIHBlciB3b29yZFxuLy8gIG5vZGlnIGhlYnQuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBPVkVSIERFIE9OREVSQkFMSyBFTiBET09SIFRPVCBERSBPTkRFUlJBTkQgKEtpbSAxNC4wOC4yMDI2OiBcImFsbGVlbiBkYW5cbi8vICBPVkVSIGRlIG5hdmlnYXRpZWJhbGsgZW4gaGVsZW1hYWwgZG9vcmxvcGVuZCB0b3Qgb25kZXJhYW4sIG5pZXQgem8gaGFsZlxuLy8gIHp3ZXZlbmRcIikuIERpdCBpcyBkZSBvbWdla2VlcmRlIGtldXplIHZhbiBkZSBhY3RpZS1iYWxrLCBlbiBkYXQgaXMgbWV0XG4vLyAgb3B6ZXQ6XG4vL1xuLy8gICAgLSBEZSBBQ1RJRS1iYWxrIHppdCBvcCB6LWluZGV4IDk5LCDDqcOpbiBPTkRFUiBxZG5hcHJvLWJvdHRvbS1uYXYgKDEwMCksXG4vLyAgICAgIG1ldCBkZSByZWdlbCBcImFscyBkaWUgdHdlZSBvb2l0IG92ZXJsYXBwZW4gbW9ldCBkZSB2YXN0ZSBuYXZpZ2F0aWVcbi8vICAgICAgbGVlc2JhYXIgYmxpanZlblwiLiBEYWFyIGtsb3B0IGRhdDogamUgYmVudCBpZXRzIGFhbiBoZXQgc2VsZWN0ZXJlbiBlblxuLy8gICAgICBtYWcgb25kZXJ0dXNzZW4gZ2V3b29uIHdlZ25hdmlnZXJlbi5cbi8vICAgIC0gRGUgTUVMRElORy1iYWxrIGlzIGVlbiBNT0RVUy4gWm9sYW5nIGplIGVlbiBwbGVrIGFhbndpanN0IGlzIGRlXG4vLyAgICAgIG5hdmlnYXRpZSBuaWV0IHdhdCBqZSBtb2V0IGFhbnRpa2tlbiwgZHVzIG1hZyBoaWogZXJvdmVyaGVlbiwgZW4gZGFuXG4vLyAgICAgIG1vZXQgaGlqIGhlbSBvb2sgaGVsZW1hYWwgYmVkZWtrZW4uIEhhbGYgb3ZlciBlZW4gendldmVuZGUgcGlsIGhlZW5cbi8vICAgICAgaXMgcHJlY2llcyBkZSB2b3JtIGRpZSBLaW0gYWZrZXVyZGUuXG4vL1xuLy8gIERlIGJvZGVtYWZzdGFuZCB3b3JkdCBoaWVyIHZpYSBkZSB0d2VlIFZBUklBQkVMRU4gb3AgbnVsIGdlemV0IGVuIG5pZXRcbi8vICBtZXQgZWVuIGVpZ2VuIGBib3R0b21gLiBEYXQgaXMgZ2VlbiBzdGlqbGt3ZXN0aWU6IGRlIHZlaWxpZ2Utem9uZS1yZWtlbmluZ1xuLy8gIGluIGRlIGJhc2lzcmVnZWwgdHJla3QgLS1xc2ItYm90dG9tLW9mZnNldCBlbiAtLXFzYi1saWZ0IHZhbiBkZVxuLy8gIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSBhZiwgZHVzIG1ldCBkZSB2YXJpYWJlbGVuIG9wIG51bCByZXNlcnZlZXJ0IGRlXG4vLyAgYmFsayBkZSBWT0xMRSB2ZWlsaWdlIHpvbmUgYmlubmVuIHppY2h6ZWxmIGVuIGxvb3B0IHppam4gdmxhayBkb29yIHRvdCBkZVxuLy8gIG9uZGVycmFuZCB2YW4gaGV0IHNjaGVybS4gTWV0IGVlbiBsb3NzZSBgYm90dG9tOiAwYCB6b3UgZGllIGFmdHJlayBibGlqdmVuXG4vLyAgc3RhYW4gZW4gaGllbGQgamUgZWVuIHN0cmVlcGplIG9uYmVzY2hpbGRlcmQuXG4vL1xuLy8gIGJvdHRvbS1vZmZzZXQgdmFuIGRlIGhvc3Qgd29yZHQgaW4gZGV6ZSBtb2R1cyBkdXMgR0VORUdFRVJELCBlbiBkZVxuLy8gIHp3ZXZlbmRlIHZhcmlhbnQgb29rICh6aWUgaGV0IGJsb2sgZXJvbmRlcikuIEJld3VzdCBkaWNodDogYW5kZXJzIGthbiBlZW5cbi8vICB2b2xnZW5kZSBnZWJydWlrZXIgZGUgYWZnZWtldXJkZSBoYWxmLXp3ZXZlbmRlIHZvcm0gdGVydWdib3V3ZW4uXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtbW9kZT1cIm1lc3NhZ2VcIl0ge1xuICAgIC0tcXNiLXBhZC14OiAxNnB4O1xuICAgIC0tcXNiLXBhZC15OiAxMHB4O1xuICAgIC0tcXNiLWJvdHRvbS1vZmZzZXQ6IDBweDtcbiAgICAtLXFzYi1saWZ0OiAwcHg7XG5cbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDEwMTtcblxuICAgIC8vIERlIGJhbGsgemVsZiBpcyBpbiBkZXplIG1vZHVzIGVlbiBLT0xPTSB2YW4gbWF4aW1hYWwgdHdlZSByaWplbi4gR2VlblxuICAgIC8vIGZsZXgtd3JhcCBvcCBkZSBiYWxrOiBkYXQgaXMgdWl0Z2Vwcm9iZWVyZCBlbiBhYW50b29uYmFhciBmb3V0LCB3YW50IGRhblxuICAgIC8vIGR1d3QgZGUgYnJvd3NlciBkZSBBQ1RJRVMgbmFhciBlZW4gdHdlZWRlIHJlZ2VsIGluIHBsYWF0cyB2YW4gaGV0XG4gICAgLy8gdGVrc3RibG9rIHRlIGxhdGVuIGtyaW1wZW4sIGVuIGJpaiBlZW4gbGFuZ2UgaXRlbW5hYW0gdmllbCBkZSBiYWxrXG4gICAgLy8gdWl0ZWVuIHRvdCAyMjVweCBob29nIG1ldCBoZXQgaWNvb24gYWxsZWVuIG9wIHJlZ2VsIMOpw6luLlxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogOHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi8vIERlIGVlcnN0ZSByaWo6IGljb29uLCB0ZWtzdGJsb2ssIGFjdGllcy4gTk9XUkFQLCB6b2RhdCBoZXQgdGVrc3RibG9rIGtyaW1wdFxuLy8gKGhldCBoZWVmdCBtaW4td2lkdGg6IDApIGluIHBsYWF0cyB2YW4gZGF0IGVyIGlldHMgbmFhciBiZW5lZGVuIHZhbHQuXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtbW9kZT1cIm1lc3NhZ2VcIl0gLnFzYi1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLy8gRGUgdHdlZWRlIHJlZ2VsOiB2b29yIGtldXplcyBkaWUgZXIgbmFhc3QgZGUgdGVrc3QgbmlldCBiaWogcGFzc2VuIChkZSB0d2VlXG4vLyB0aWpkLWNoaXBzIHZhbiBkZSBhZ2VuZGEpLiBXcmFwcyBpbnRlcm4gd8OpbCwgd2FudCB0d2VlIGxhbmdlIGNoaXBzIGhhbGVuIG9wXG4vLyAzNjBweCBzYW1lbiBkZSBicmVlZHRlIG5pZXQuXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtbW9kZT1cIm1lc3NhZ2VcIl0gLnFzYi1iZWxvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLy8gRGUgendldmVuZGUgdmFyaWFudCBoZWVmdCBpbiBkZXplIG1vZHVzIGdlZW4gYmV0ZWtlbmlzIG1lZXI6IGVlbiBrYWFydCBtZXRcbi8vIGx1Y2h0IGVyb21oZWVuIGthbiBwZXIgZGVmaW5pdGllIG5pZXQgZG9vcmxvcGVuIHRvdCBkZSBvbmRlcnJhbmQuIEhvZ2VyZVxuLy8gc3BlY2lmaWNpdGVpdCAoZHJpZSBzZWxlY3RvcmRlbGVuKSB6b2RhdCBkaXQgbm9vaXQgdmFuIGRlIHZvbGdvcmRlIGluIGRpdFxuLy8gYmVzdGFuZCBhZmhhbmd0LlxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLW1vZGU9XCJtZXNzYWdlXCJdW2RhdGEtdmFyaWFudD1cImZsb2F0aW5nXCJdIHtcbiAgICAtLXFzYi1wYWQteDogMTZweDtcblxuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tcXNiLWJvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3gtc2hhZG93OiAwIC0ycHggMTZweCByZ2JhKDIwLCAyNSwgODAsIDAuMTApO1xufVxuXG4vLyBIZXQgbGVhZGluZy12YWsuIDQwcHggb21kYXQgZGF0IGRlIG1hYXQgaXMgZGllIC5xZG5hLXRsLXRpbGUgaW4gZGUgUFdBIGFsXG4vLyBoZWVmdCBpbiBkZSBsaWpzdCB3YWFyIGhldCBpdGVtIHVpdCBrb210OiBoZXR6ZWxmZGUgaXRlbSB6aWV0IGVyIGluIGRlIGJhbGtcbi8vIGR1cyBuZXQgem8gdWl0IGFscyBpbiBkZSByaWogZGllIGplIGFhbnRpa3RlLiBLcmltcHQgbm9vaXQgbWVlIChmbGV4IDAgMFxuLy8gYXV0byksIHdhbnQgZWVuIGhhbGYgd2VnZ2VkcnVrdCBpY29vbiBpcyBlcmdlciBkYW4gZ2VlbiBpY29vbi5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS1tb2RlPVwibWVzc2FnZVwiXSAucXNiLWxlYWQge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8vIFdhdCBkZSBob3N0IGVyaW4gaGFuZ3Qgc2NoYWFsdCBuYWFyIGhldCB2YWsgaW4gcGxhYXRzIHZhbiBlcnVpdCB0ZSBsb3Blbi5cbi8vIFR3ZWUgZ2V2YWxsZW4gZGllIHdlIGVjaHQgZ2VicnVpa2VuOiBkZSB0YWtlbmxpanN0LXRlZ2VsIChlZW4gZGl2IG1ldCBlZW5cbi8vIGltZyBlcmluKSBlbiBlZW4gbG9zc2UgcWRuYXByby1pY29uIG1ldCBlZW4gYnJvbi1nbHlwaC5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS1tb2RlPVwibWVzc2FnZVwiXSAucXNiLWxlYWQgPiAqIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLW1vZGU9XCJtZXNzYWdlXCJdIC5xc2ItbGVhZCA+IHFkbmFwcm8taWNvbixcbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS1tb2RlPVwibWVzc2FnZVwiXSAucXNiLWxlYWQgPiBxZG5hcHJvLWljb24gc3ZnIHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xufVxuXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtbW9kZT1cIm1lc3NhZ2VcIl0gLnFzYi1tZXNzYWdlIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xufVxuXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtbW9kZT1cIm1lc3NhZ2VcIl0gLnFzYi1tZXNzYWdlX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pLCA2MDApO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIGNvbG9yOiB2YXIoLS1xc2ItZmcpO1xuXG4gICAgLy8gTWF4aW1hYWwgVFdFRSByZWdlbHMuIEdFTUVURU4gZW4gbmlldCBhYW5nZW5vbWVuOiB6b25kZXIgZGV6ZSBrbGVtXG4gICAgLy8gbGllcCBcIkplIHBsYW50IG51OiBEb3NzaWVyY29udHJvbGUgdmFzdGxlZ2dpbmcgdmVydGVnZW53b29yZGlnZXIgZW5cbiAgICAvLyBvcG5hbWVncm9uZFwiIG9wIDM2MHB4IHVpdCB0b3QgZHJpZSByZWdlbHMgKDU2cHggaG9nZSB0aXRlbCksIGVuIGRhblxuICAgIC8vIGVldCBkZSBiYWxrIGVlbiBkZXJkZSB2YW4gaGV0IHJvb3N0ZXIgb3AgZGF0IGplIGp1aXN0IG1vZXQga3VubmVuXG4gICAgLy8gYWFud2lqemVuLiBUd2VlIHJlZ2VscyBpcyBnZW5vZWcgb20gZGUgbmFhbSB0ZSBoZXJrZW5uZW47IHdhdCBlclxuICAgIC8vIGRhYXJuYSBub2cgYWNodGVyIGtvbXQgd2VldCBqZSBhbCwgd2FudCBqZSBoZWJ0IGhldCBpdGVtIG5ldCB6ZWxmXG4gICAgLy8gYWFuZ2V0aWt0LlxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS1tb2RlPVwibWVzc2FnZVwiXSAucXNiLW1lc3NhZ2VfX3N1YiB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1yZWd1bGFyLCA0MDApO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6IHZhcigtLXFzYi1mZy1pZGxlKTtcblxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gSGV0IGFjdGllLXZhayByZWNodHMuIEXDqW4gcmlqLCBlbiBkZSBhY3RpZXMgYmVwYWxlbiB6ZWxmIGh1biBtYWF0OiBoaWVyXG4vLyBob3JlbiBkZSBnZXdvbmUgcWRuYXByby1idXR0b24ncyB2YW4gaGV0IGh1aXMgKGVlbiB0ZWtzdC1hY3RpZSBwbHVzIGVlblxuLy8gcHJpbWFpcmUgcGlsKSwgbmlldCBhbGxlZW4gZGUgdG9vbGJhci1rbm9wcGVuIHZhbiBkZXplIGJhbGsuIEtyaW1wdCBub29pdFxuLy8gKGZsZXggMCAwIGF1dG8pLCB3YW50IGVlbiBoYWxmIGFmZ2VrYXB0ZSBrbm9wIGlzIGdlZW4ga25vcC5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS1tb2RlPVwibWVzc2FnZVwiXSAucXNiLWFjdGlvbnMge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbn1cblxuLy8gRGUgdG9vbGJhci1rbm9wcGVuIGJsaWp2ZW4gYnJ1aWtiYWFyIChoZXQgcG9zdHZhayBnZWJydWlrdCB6ZSksIG1hYXIgZGVsZW5cbi8vIGhpZXIgbmlldCBtZWVyIGRlIHJpajogemUgc3RhYW4gbmFhc3QgZWVuIHRla3N0YmxvayBkYXQgZGUgcnVpbXRlIG5vZGlnIGhlZWZ0LlxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLW1vZGU9XCJtZXNzYWdlXCJdIC5xZG5hcHJvLXNlbGVjdGlvbi1iYXItYnRuIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IDk2cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBCdXR0b25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhci1idG4ge1xuICAgIC8vIEVxdWFsIHNoYXJlIG9mIHRoZSByb3c6IDMgYnV0dG9ucyBmaWxsIHRoZSBiYXIganVzdCBhcyBldmVubHkgYXMgNCxcbiAgICAvLyBzbyBhIGhvc3QgdGhhdCBvbWl0cyBhIGJ1dHRvbiBsZWF2ZXMgbm8gZ2FwIGJlaGluZC5cbiAgICBmbGV4OiAxIDEgMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1xc2ItYnRuLW1heCk7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1xc2ItZ2FwKTtcblxuICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gICAgcGFkZGluZzogNHB4IDJweDtcblxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLTIsIDhweCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cbiAgICBjb2xvcjogdmFyKC0tcXNiLWZnLWlkbGUpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZS1vdXQsIGNvbG9yIDEyMG1zIGVhc2Utb3V0O1xufVxuXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyLWJ0biAucXNiLWJ0bl9faWNvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhci1idG4gLnFzYi1idG5fX2ljb24gcWRuYXByby1pY29uLFxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhci1idG4gLnFzYi1idG5fX2ljb24gc3ZnIHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyLWJ0biAucXNiLWJ0bl9fbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IHZhcigtLXFzYi1sYWJlbC1zaXplKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtLCA1MDApO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8vIEVsbGlwc2lzIGlzIHRoZSBsYXN0LXJlc29ydCBzYWZldHkgbmV0IG9ubHkuIFZlcmlmaWVkIHRvIGJlXG4gICAgLy8gdW5uZWNlc3NhcnkgYXQgdGhlIGNhc2Ugd2UgbXVzdCBzdXBwb3J0OiA0IGJ1dHRvbnMgb24gMzYwcHggZ2l2ZXNcbiAgICAvLyBlYWNoIGJ1dHRvbiA5MHB4LCBhbmQgdGhlIGxvbmdlc3QgRHV0Y2ggd29yZCBpbiB0aGUgaW5ib3ggc2V0XG4gICAgLy8gKFwiVmVyd2lqZGVyZW5cIikgaXMgYWJvdXQgNjZweCBhdCAxMXB4IEludGVyIE1lZGl1bS4gSXQgRE9FUyBraWNrIGluXG4gICAgLy8gYXQgNSBidXR0b25zIG9uIDM2MHB4LCB3aGVyZSBlYWNoIGJ1dHRvbiBvbmx5IGdldHMgNzJweC5cbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFN0YXRlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIC5xZG5hcHJvLXNlbGVjdGlvbi1iYXItYnRuOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcXNiLWhvdmVyLWJnKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXFzYi1mZyk7XG4gICAgfVxufVxuXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyLWJ0bltkYXRhLXByZXNzaW5nPVwidHJ1ZVwiXSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcXNiLXByZXNzLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tcXNiLWZnKTtcbn1cblxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhci1idG46Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzLXJpbmcsICM0MDQ5OWEpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuXG4vLyB0b25lPVwiZGFuZ2VyXCIgLSBkZXN0cnVjdGl2ZSBhY3Rpb24gKGRlbGV0ZSkuIFRva2VuIG9ubHksIG5ldmVyIGEgaGV4LlxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhci1idG5bZGF0YS10b25lPVwiZGFuZ2VyXCJdIHtcbiAgICBjb2xvcjogdmFyKC0tcXNiLWZnLWRhbmdlcik7XG59XG5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgLnFkbmFwcm8tc2VsZWN0aW9uLWJhci1idG5bZGF0YS10b25lPVwiZGFuZ2VyXCJdOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcmVkLXNvZnQsICNmZmYwZjApO1xuICAgICAgICBjb2xvcjogdmFyKC0tcXNiLWZnLWRhbmdlcik7XG4gICAgfVxufVxuXG4ucWRuYXByby1zZWxlY3Rpb24tYmFyLWJ0bltkYXRhLXRvbmU9XCJkYW5nZXJcIl1bZGF0YS1wcmVzc2luZz1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXJlZC1iZywgI2ZlZTNlMyk7XG4gICAgY29sb3I6IHZhcigtLXFzYi1mZy1kYW5nZXIpO1xufVxuXG4vLyBkaXNhYmxlZCAtIHZpc2libGUsIGRpbW1lZCwgbm90IHRhcHBhYmxlLiBBbm5vdW5jZWQgdmlhIGFyaWEtZGlzYWJsZWRcbi8vIGZyb20gdGhlIEpTOyBwb2ludGVyLWV2ZW50cyBrZWVwcyBhIHN0cmF5IHRhcCBmcm9tIHJlYWNoaW5nIGl0LlxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhci1idG5bZGF0YS1kaXNhYmxlZD1cInRydWVcIl0ge1xuICAgIGNvbG9yOiB2YXIoLS1xc2ItZmctZGlzYWJsZWQpO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhci1idG5bZGF0YS1kaXNhYmxlZD1cInRydWVcIl1bZGF0YS10b25lPVwiZGFuZ2VyXCJdIHtcbiAgICBjb2xvcjogdmFyKC0tcXNiLWZnLWRpc2FibGVkKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgRGFyayBtb2RlIC0gdGhlIC0tYy0qIHRva2VucyBmbGlwIHRoZW1zZWx2ZXM7IG9ubHkgdGhlIHR3b1xuLy8gIGhhbmQtcGlja2VkIHZhbHVlcyBuZWVkIGEgZGFyayBjb3VudGVycGFydC5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuW2RhdGEtdGhlbWUtZGFya10gLnFkbmFwcm8tc2VsZWN0aW9uLWJhcixcbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zZWxlY3Rpb24tYmFyLFxuYm9keVtkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zZWxlY3Rpb24tYmFyIHtcbiAgICAtLXFzYi1mZy1kYW5nZXI6IHZhcigtLWMtd2Fybi1yZWQtNDAwLCAjZjg3MTcxKTtcbn1cblxuW2RhdGEtdGhlbWUtZGFya10gLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLXZhcmlhbnQ9XCJmbGF0XCJdLFxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS12YXJpYW50PVwiZmxhdFwiXSxcbmJvZHlbZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLXZhcmlhbnQ9XCJmbGF0XCJdIHtcbiAgICBib3gtc2hhZG93OiAwIC0ycHggMTZweCByZ2JhKDAsIDAsIDAsIDAuNDUpO1xufVxuXG5bZGF0YS10aGVtZS1kYXJrXSAucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtdmFyaWFudD1cImZsb2F0aW5nXCJdLFxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS12YXJpYW50PVwiZmxvYXRpbmdcIl0sXG5ib2R5W2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS12YXJpYW50PVwiZmxvYXRpbmdcIl0ge1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjUwKTtcbn1cblxuW2RhdGEtdGhlbWUtZGFya10gLnFkbmFwcm8tc2VsZWN0aW9uLWJhci1idG5bZGF0YS10b25lPVwiZGFuZ2VyXCJdW2RhdGEtcHJlc3Npbmc9XCJ0cnVlXCJdLFxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5xZG5hcHJvLXNlbGVjdGlvbi1iYXItYnRuW2RhdGEtdG9uZT1cImRhbmdlclwiXVtkYXRhLXByZXNzaW5nPVwidHJ1ZVwiXSxcbmJvZHlbZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc2VsZWN0aW9uLWJhci1idG5bZGF0YS10b25lPVwiZGFuZ2VyXCJdW2RhdGEtcHJlc3Npbmc9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0OCwgMTEzLCAxMTMsIDAuMTYpO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5xZG5hcHJvLXNlbGVjdGlvbi1iYXItYnRuIHsgdHJhbnNpdGlvbjogbm9uZTsgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBTTElERSBJTiBGUk9NIEJFTE9XIFRIRSBTQ1JFRU5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIEtpbSAyOS4wNy4yMDI2OiBcImt1bm5lbiB3ZSBoZW0gdmFuIG9uZGVyaW4gbmFhciBib3ZlbiBsYXRlbiBpbnNsaWRlbiwgdmFub25kZXJcbi8vICBoZXQgc2NoZXJtLCB6b2RhdCBqZSBlY2h0IG1ldCBqZSBvb2cgemlldCBkYXQgaGlqIGluIGtvbXQgYW5pbWVyZW4gaW4gcGxhYXRzIHZhblxuLy8gIGRhdCBoaWogZXIgaW5lZW5zIHN0YWF0XCIuXG4vL1xuLy8gIFRoZSBKUyBwYXJrcyBhIGZyZXNobHkgY3JlYXRlZCBiYXIgd2l0aCBkYXRhLWVudGVyaW5nIGFuZCBkcm9wcyB0aGF0IGZsYWcgb24gdGhlXG4vLyAgbmV4dCBmcmFtZSAoc2VlIHFkbmEtc2VsZWN0aW9uLWJhci5qcyBmb3Igd2h5IG9uZSBmcmFtZSBpcyByZXF1aXJlZCkuIDEyMCUgcmF0aGVyXG4vLyAgdGhhbiAxMDAlIHNvIHRoZSBzaGFkb3cgY2xlYXJzIHRoZSBzY3JlZW4gZWRnZSB0b28gYW5kIHlvdSBuZXZlciBzZWUgYSBncmV5IGJhbmRcbi8vICBoYW5naW5nIGJlbG93IHRoZSBiYXIgYXQgdGhlIHN0YXJ0LlxuLy9cbi8vICBPbmx5IHRoZSB0cmFuc2Zvcm0gaXMgYW5pbWF0ZWQsIG5ldmVyIGBib3R0b21gIG9yIGBoZWlnaHRgOiB0cmFuc2Zvcm0gaXMgY29tcG9zaXRlZFxuLy8gIGFuZCBkb2VzIG5vdCBmb3JjZSBsYXlvdXQgb24gZXZlcnkgZnJhbWUsIHdoaWNoIG1hdHRlcnMgb24gdGhlIHBob25lIHRoaXMgYmFyIGlzXG4vLyAgZGVzaWduZWQgZm9yLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ucWRuYXByby1zZWxlY3Rpb24tYmFyIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjYwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDAuNjEsIDAuMzYsIDEpO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS1lbnRlcmluZz1cInRydWVcIl0ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMjAlKTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAvLyBObyBtb3ZlbWVudCBhdCBhbGwgZm9yIGFueW9uZSB3aG8gYXNrZWQgbm90IHRvIGhhdmUgaXQuIFRoZSBiYXIgc3RpbGxcbiAgICAvLyBhcHBlYXJzLCBpdCBqdXN0IGFwcGVhcnMgaW4gcGxhY2U7IHRoZSBKUyBwYXRoIGlzIGlkZW50aWNhbC5cbiAgICAucWRuYXByby1zZWxlY3Rpb24tYmFyIHsgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAgIC5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS1lbnRlcmluZz1cInRydWVcIl0geyB0cmFuc2Zvcm06IG5vbmU7IH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgY29sb3I9XCJwdXJwbGVcIiAtIGxpZ2h0LXB1cnBsZSBzdXJmYWNlIHdpdGggcHVycGxlIGdseXBoc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgS2ltJ3MgdG9rZW5zLCAyOS4wNy4yMDI2LCBsZXR0ZXJsaWprIHpvYWxzIG9wZ2VnZXZlbjpcbi8vICAgICBTdXJmYWNlOiB2YXIoLS1jLWJnLXNlY29uZGFyeS1wdXJwbGUpXG4vLyAgICAgQm9yZGVyIDogdmFyKC0tYy1zaWRlYmFyLWljb24pXG4vLyAgICAgaWNvbnMgIDogdmFyKC0tYy1wdXJwbGUtNTAwKVxuLy9cbi8vICBMaXZlcyBIRVJFIGFuZCBub3QgaW4gYSBjb25zdW1lcidzIHBhZ2UgQ1NTLCBiZWNhdXNlIEtpbSBhc2tlZCBmb3IgZXhhY3RseSB0aGF0OlxuLy8gIFwia3VubmVuIHdlIGRpdCBtZW51IGFscyBjb21wb25lbnQgb3BzbGFhbiwgZGFuIGt1bm5lbiB3ZSBkaWUgd2VsbGljaHQgb3AgYW5kZXJlXG4vLyAgcGxla2tlbiBvb2sgZ2VicnVpa2VuLCB6b2FscyBkb2N1bWVudCBtYW5hZ2VtZW50XCIuIEEgc2Vjb25kIGNvbnN1bWVyIG5vdyBnZXRzIHRoaXNcbi8vICBsb29rIHdpdGggY29sb3I9XCJwdXJwbGVcIiBpbnN0ZWFkIG9mIGNvcHlpbmcgY29sb3VyIHJ1bGVzIGludG8gaXRzIG93biBzY3JlZW4uXG4vL1xuLy8gIENvbnRyYXN0IGlzIE1FQVNVUkVELCBub3QgZ3Vlc3NlZCAoV0NBRyAxLjQuMyB3YW50cyA0LDU6MSBmb3Igbm9ybWFsIHRleHQgYW5kXG4vLyAgdGhlc2UgbGFiZWxzIGFyZSAxMXB4LCBzbyB0aGV5IGNvdW50IGFzIG5vcm1hbCk6XG4vLyAgICAgcHVycGxlLTUwMCAjNDA0OTlhIG9uIHRoZSBzdXJmYWNlICNlNmU5ZmYgID0gNiw2MjoxICBva1xuLy8gICAgIHB1cnBsZS02MDAgIzMzM2E3YiBvbiB0aGUgaG92ZXIgICAjYzBjNWZmICA9IDYsMjQ6MSAgb2tcbi8vICAgICBncmV5IHRleHQtbXV0ZWQgICAgb24gdGhlIHN1cmZhY2UgICAgICAgICAgPSAzLDk5OjEgIFRPTyBMT1csIHRoaXMgaXMgd2hhdCB0aGVcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXV0cmFsIGJhciB1c2VzIGFuZCB3aHkgdGhlXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVycGxlIHZhcmlhbnQgY2Fubm90IGluaGVyaXQgaXRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLWNvbG9yPVwicHVycGxlXCJdIHtcbiAgICAtLXFzYi1iZzogICAgICAgdmFyKC0tYy1iZy1zZWNvbmRhcnktcHVycGxlLCAjZTZlOWZmKTtcbiAgICAtLXFzYi1ib3JkZXI6ICAgdmFyKC0tYy1zaWRlYmFyLWljb24sICNjNWM5ZWIpO1xuICAgIC0tcXNiLWZnLWlkbGU6ICB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICAgIC0tcXNiLWZnOiAgICAgICB2YXIoLS1jLXB1cnBsZS02MDAsICMzMzNhN2IpO1xuXG4gICAgLy8gSG92ZXIgYW5kIHByZXNzIHN0YXkgSU4gdGhlIHB1cnBsZSBmYW1pbHkuIEtpbSAyOS4wNy4yMDI2OiBcImRlIGhvdmVycyBtb2V0ZW5cbiAgICAvLyBvb2sgYWFuZ2VwYXN0IHdvcmRlbiwgZ3JpanplIGhvdmVycyBpcyBuaWV0IHRvZlwiIC0gdGhlIG5ldXRyYWwgYmFyJ3MgZ3JleVxuICAgIC8vICgtLWMtYmctc3VidGxlLWhvdmVyKSByZWFkIGFzIGEgZGlydHkgc211ZGdlIG9uIGEgcHVycGxlIHBpbGwsIGFuZCB3aGl0ZSByZWFkXG4gICAgLy8gYXMgYSBob2xlIHB1bmNoZWQgdGhyb3VnaCBpdC4gQSB0aW50IGRlZXBlciB0aGFuIHRoZSBzdXJmYWNlIHJlYWRzIGFzIFwieW91IGFyZVxuICAgIC8vIHRvdWNoaW5nIHRoaXNcIiwgd2hpY2ggaXMgd2hhdCBhIHByZXNzIHNob3VsZCBzYXkuXG4gICAgLS1xc2ItaG92ZXItYmc6IHZhcigtLWMtcHVycGxlLTEwMCwgI2MwYzVmZik7XG4gICAgLS1xc2ItcHJlc3MtYmc6IHZhcigtLWMtcHVycGxlLTEwMCwgI2MwYzVmZik7XG5cbiAgICAvLyBUaGUgZGFya2VzdCByZWQgd2UgaGF2ZSBhcyBhIHRva2VuLiBPbiB0aGUgcHVycGxlIHN1cmZhY2UgaXQgb25seSByZWFjaGVzXG4gICAgLy8gNCwwMjoxLCBoZW5jZSB0aGUgd2hpdGUgcGxhdGUgdW5kZXIgdGhlIGRhbmdlciBidXR0b24gYmVsb3cuXG4gICAgLS1xc2ItZmctZGFuZ2VyOiB2YXIoLS1jLXdhcm4tcmVkLTUwMCwgI2RjMjYyNik7XG59XG5cbi8vIFRoZSBkZXN0cnVjdGl2ZSBhY3Rpb24gZ2V0cyBhIFdISVRFIHBsYXRlIGluc2lkZSB0aGUgcHVycGxlIHBpbGwuIE5vdCBkZWNvcmF0aW9uOlxuLy8gbm8gcmVkIHRva2VuIHJlYWNoZXMgNCw1OjEgb24gdGhlIHB1cnBsZSBzdXJmYWNlLCBhbmQgb24gd2hpdGUgdGhpcyBzYW1lIHJlZFxuLy8gcmVhY2hlcyA0LDgzOjEuIEJvbnVzIHRoYXQgZmVsbCBvdXQgb2YgaXQ6IHRoZSBvbmUgaXJyZXZlcnNpYmxlIGFjdGlvbiBpbiB0aGUgYmFyXG4vLyBpcyBub3cgYWxzbyB2aXN1YWxseSBzZXBhcmF0ZWQgZnJvbSB0aGUgb3RoZXIgdGhyZWUsIGFuZCBpdCBjYW4gbmV2ZXIgYmUgY29uZnVzZWRcbi8vIHdpdGggdGhlIHB1cnBsZSBob3ZlciBzdGF0ZS5cbi5xZG5hcHJvLXNlbGVjdGlvbi1iYXJbZGF0YS1jb2xvcj1cInB1cnBsZVwiXSAucWRuYXByby1zZWxlY3Rpb24tYmFyLWJ0bltkYXRhLXRvbmU9XCJkYW5nZXJcIl0ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG59XG5cbi8vIERhcmsgbW9kZS4gS2ltJ3Mgc3VyZmFjZS9ib3JkZXIgdG9rZW5zIGZsaXAgb24gdGhlaXIgb3duICgtLWMtYmctc2Vjb25kYXJ5LXB1cnBsZVxuLy8gYmVjb21lcyBncmV5LTk1MCwgLS1jLXNpZGViYXItaWNvbiBiZWNvbWVzIGdyZXktMzAwKSwgYnV0IC0tYy1wdXJwbGUtNTAwIGRvZXMgTk9ULFxuLy8gYW5kICM0MDQ5OWEgb24gIzBiMGIwZCBpcyAyLDQ3OjEgLSB1bnJlYWRhYmxlLiBTbyB0aGUgZ2x5cGggY29sb3VyIGZsaXBzIGhlcmUgdG9vOlxuLy8gcHVycGxlLTIwMCBvbiBncmV5LTk1MCBpcyA5LDMxOjEuIFdpdGhvdXQgdGhpcyBibG9jayB0aGUgcHVycGxlIHZhcmlhbnQgd291bGQgaGF2ZVxuLy8gc2hpcHBlZCBhbiB1bnVzYWJsZSBkYXJrIG1vZGUuXG5bZGF0YS10aGVtZS1kYXJrXSAucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtY29sb3I9XCJwdXJwbGVcIl0sXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tc2VsZWN0aW9uLWJhcltkYXRhLWNvbG9yPVwicHVycGxlXCJdLFxuYm9keVtkYXRhLXRoZW1lPVwiZGFya1wiXSAucWRuYXByby1zZWxlY3Rpb24tYmFyW2RhdGEtY29sb3I9XCJwdXJwbGVcIl0ge1xuICAgIC0tcXNiLWZnLWlkbGU6ICB2YXIoLS1jLXB1cnBsZS0yMDAsICNhNWFjZmYpO1xuICAgIC0tcXNiLWZnOiAgICAgICB2YXIoLS1jLXB1cnBsZS0xMDAsICNjMGM1ZmYpO1xuICAgIC0tcXNiLWhvdmVyLWJnOiByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuMTYpO1xuICAgIC0tcXNiLXByZXNzLWJnOiByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuMjQpO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1tZXNzYWdlLWhlYWRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgTGl0ZXJhbCByZWNyZWF0aW9uIG9mIHRoZSBiYWNrb2ZmaWNlIGluYm94IGRldGFpbCBoZWFkZXJcbi8vICAoYmFja29mZmljZTIvc3JjL1JFWC9CYWNrb2ZmaWNlL1ZpZXcvdjEvbm90aWZpY2F0aW9uY2VudGVyL2luYm94Lmh0bWwsXG4vLyAgbm90aWZpY2F0aW9uX2RldGFpbC10ZW1wbGF0ZSwgfmxpbmUgMzc1LTUxMykgYW5kIGl0cyBzdHlsaW5nXG4vLyAgKGJhY2tvZmZpY2UyL3Njc3MvcGFydGlhbHMvX2luYm94LnNjc3MsIH5saW5lIDQ3Mi02ODkpLiBTQ09QRS1wd2EtXG4vLyAgaW5ib3gubWQgYmVzbHVpdCA3MDogcHVsbGVkIG91dCBzbyB0aGUgYmFja29mZmljZSBpbmJveCBBTkQgdGhlIFBXQVxuLy8gIGluYm94IHNoYXJlIE9ORSBjb21wb25lbnQgaW5zdGVhZCBvZiB0d28gaGFuZC13cml0dGVuIGNvcGllcy5cbi8vXG4vLyAgQ29sb3VycyBhcmUgbWFwcGVkIGZyb20gdGhlIGxlZ2FjeSBfaW5ib3guc2NzcyB2YXJpYWJsZXMgb250byB0aGVcbi8vICBjdXJyZW50IGNlbnRyYWwgZGVzaWduIHRva2VucyAoZGVzaWduLXRva2Vucy9fZGVzaWduLXRva2Vucy5zY3NzKSxcbi8vICBzYW1lIGlkaW9tIGFzIHFkbmFwcm8tYXBwLWhlYWRlcidzIC0tcWFoLSogY3VzdG9tIHByb3BlcnRpZXM6XG4vLyAgICBfaW5ib3guc2NzcyAkY29sb3IgICAgICAgIzQwNDk5YSAgLT4gLS1jLXB1cnBsZS01MDAgKHRpdGxlICsgbGFiZWxzKVxuLy8gICAgX2luYm94LnNjc3MgJGNvbG9yXzYgICAgICMzMjMxMzAgIC0+IC0tYy10ZXh0LWJvZHkgICAoc2VuZGVyIG5hbWUpXG4vLyAgICBfaW5ib3guc2NzcyAkY29sb3JfMSAgICAgIzZjNzU3ZCAgLT4gLS1jLXRleHQtbXV0ZWQgIChlbWFpbC90by9jYy9kYXRlKVxuLy8gICAgX2luYm94LnNjc3MgJGJhY2tncm91bmRfY29sb3JfMTAgIC0+IC0tYy1iZy1jYXJkICAgICAoaG9zdCBiYWNrZ3JvdW5kKVxuLy9cbi8vICBGbGF0IC5taC0qIGVsZW1lbnQgY2xhc3NlcyAobm90IEJFTSAmX18gbmVzdGluZykgLSBzYW1lIGlkaW9tIGFzXG4vLyAgcWRuYXByby1yZWNpcGllbnQtcGlja2VyJ3MgLnJwLSogLyBxZG5hcHJvLWFwcC1oZWFkZXIncyAucWFoLSouXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gYGhpZGRlbmAgTU9FVCB3aW5uZW4gdmFuIG9uemUgZWlnZW4gZGlzcGxheS1yZWdlbHMgKHplbGZkZSB2YWwgYWxzXG4vLyBfcmVjaXBpZW50LXBpY2tlci5zY3NzIGFsIGJlc2NocmlqZnQpLiBEaXQgY29tcG9uZW50IHpldCBkcmllIGJsb2trZW4gYWFuXG4vLyBlbiB1aXQgbWV0IGhldCBgaGlkZGVuYC1hdHRyaWJ1dXQ6IGRlIENDLXJlZ2VsLCBkZSB0YWdzLXJpaiBlbiBkZSBsb3NzZVxuLy8gbmFhbS9lLW1haWwtc3BhbnMgdmFuIGRlIGFmemVuZGVyLiBFw6luIHJlZ2VsIG9wIGRlIGhvc3QgaW4gcGxhYXRzIHZhblxuLy8gYCZbaGlkZGVuXWAgYmlqIGVsayBibG9rIGFwYXJ0LlxuLnFkbmFwcm8tbWVzc2FnZS1oZWFkZXIgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5xZG5hcHJvLW1lc3NhZ2UtaGVhZGVyIHtcbiAgICAtLW1oLWhlYWRpbmc6IHZhcigtLWMtcHVycGxlLTUwMCwgIzQwNDk5YSk7XG4gICAgLS1taC1mZzogdmFyKC0tYy10ZXh0LWJvZHksICMwYjBiMGQpO1xuICAgIC0tbWgtbXV0ZWQ6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgLS1taC1ib3JkZXI6IHZhcigtLWMtYm9yZGVyLXNvZnQsIHJnYmEoMCwgMCwgMCwgMC4wNykpO1xuICAgIC0tbWgtYmc6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWgtYmcpO1xuXG4gICAgLy8gRW50cmFuY2Ugd2hlbiBhIG1lc3NhZ2Ugb3BlbnMgKFJhY3RpdmUgcmVjcmVhdGVzIHRoaXMgZWxlbWVudCBvbiBlYWNoXG4gICAgLy8gb3BlbikgLS0gc2FtZSBwYWdlLWdsb2JhbCBrZXlmcmFtZSB0aGUgb2xkIC5pbmJveC1ib2R5LWhlYWRlciB1c2VkXG4gICAgLy8gKGJhY2tvZmZpY2UyL3Njc3MvcGFydGlhbHMvX2luYm94LnNjc3MsIEBrZXlmcmFtZXMgaW5ib3gtZGV0YWlsLWluKSxcbiAgICAvLyByZWZlcmVuY2VkIGJ5IG5hbWUgcmF0aGVyIHRoYW4gcmVkZWZpbmVkIGhlcmU6IGl0IGlzIG5vdCB0aGlzXG4gICAgLy8gY29tcG9uZW50J3MgZmlsZSB0byBvd24sIGJ1dCBpdCBpcyBhbHJlYWR5IGxvYWRlZCBvbiBldmVyeSBwYWdlIHRoYXRcbiAgICAvLyB1c2VzIHRoaXMgY29tcG9uZW50J3Mgb3JpZ2luYWwgaG9zdCAodGhlIGJhY2tvZmZpY2UgaW5ib3gpLiBIYXJtbGVzc1xuICAgIC8vIG5vLW9wIHdoZXJldmVyIHRoYXQga2V5ZnJhbWUgZG9lc24ndCBleGlzdCAoZS5nLiBhIGZ1dHVyZSBQV0EgdXNlKSAtLVxuICAgIC8vIGFuIHVua25vd24gYW5pbWF0aW9uIG5hbWUgaXMgc2ltcGx5IGlnbm9yZWQsIG5vdCBhbiBlcnJvci5cbiAgICBhbmltYXRpb246IGluYm94LWRldGFpbC1pbiAyMDBtcyBlYXNlLW91dDtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbn1cblxuLy8gLS0tLSBUaXRsZSBiYXI6IHRpdGxlIGxlZnQsIHNsb3Q9XCJhY3Rpb25zXCIgaWNvbiByb3cgcmlnaHQgLS0tLVxuLm1oLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogOHB4O1xuICAgIGhlaWdodDogNTZweDtcbiAgICAvLyBSRUNIVFMgU01BTExFUiAoS2ltLCAzMS4wNy4yMDI2OiBcIm1pbmRlciBwYWRkaW5nXCIpLiBMaW5rcyBibGlqZnQgMjBweCwgd2FudCBkZVxuICAgIC8vIHRpdGVsIHN0YWF0IGRhYXJtZWUgcmVjaHQgYm92ZW4gZGUgYXZhdGFyIGVyb25kZXIuIFJlY2h0cyBzdG9uZCBvb2sgMjBweCwgZW5cbiAgICAvLyBvbWRhdCBkZSBpY29vbmtub3BwZW4gemVsZiBhbCA0NHB4IGJyZWVkIHppam4gbWV0IGh1biBlaWdlbiBsdWNodCBlcm9taGVlblxuICAgIC8vIGxldmVyZGUgZGF0IGVlbiBsZWVnIHZhayBvcCBuYWFzdCBkZSBsYWF0c3RlIGtub3AuXG4gICAgcGFkZGluZzogMCA4cHggMCAyMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1taC1ib3JkZXIpO1xufVxuXG4ubWgtdGl0bGUtbGFiZWwge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY29sb3I6IHZhcigtLW1oLWhlYWRpbmcpO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4vLyBDb2xsYXBzZXMgdG8gbm90aGluZyB3aGVuIHRoZSBob3N0IHNsb3RzIGluIG5vIGFjdGlvbnMgLSBzYW1lIGNvbnRyYWN0XG4vLyBhcyBxZG5hcHJvLWFwcC1oZWFkZXIncyAucWFoLWFjdGlvbnMuXG4ubWgtdGl0bGUtYWN0aW9ucyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuXG4gICAgJjplbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLy8gVmVydGljYWxlIHNjaGVpZGluZyBUVVNTRU4gdHdlZSBpY29vbmtub3BwZW4gKEtpbSwgMzEuMDcuMjAyNikuIEVlbiBlY2h0IGVsZW1lbnRcbi8vIGVuIG5pZXQgZWVuIGJvcmRlciBvcCBkZSBrbm9wIHplbGY6IGRpZSBrbm9wcGVuIHppam4gNDRweCB2aWVya2FudCBtZXQgZWVuIGVpZ2VuXG4vLyBhZmdlcm9uZGUgaG92ZXItdmxhaywgZW4gZWVuIGxpam4gb3AgZGllIHJhbmQgem91IG1lZWJld2VnZW4gbWV0IGRhdCB2bGFrLiBIZXRcbi8vIGNvbXBvbmVudCB6ZXQgemUgemVsZiB0dXNzZW4gZGUgZ2VzbG90ZW4gYWN0aWVzICh6aWUgX3JlbGF5b3V0QWN0aW9ucyksIGR1cyBkZVxuLy8gcGFnaW5hIGhvZWZ0IGVyIG5pZXRzIHZvb3IgdGUgZG9lbi5cbi5taC1hY3Rpb24tc2VwIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tbWgtYm9yZGVyKTtcbn1cblxuLy8gLS0tLSBTZW5kZXIgYmxvY2s6IGF2YXRhciArIChuYW1lL2VtYWlsL2RhdGUgcm93LCBUbyBsaW5lLCBDQyBsaW5lLCB0YWdzKSAtLS0tXG4ubWgtc2VuZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHggMTJweDtcbiAgICAvLyBLaW0sIDMxLjA3LjIwMjY6IFwib29rIG9uZGVyIGRlIGFmemVuZGVyIGVlbiBrZXlsaW5lIHRvZXZvZWdlbi5cIiBEZSB0aXRlbGJhbGsgaGFkXG4gICAgLy8gZXIgYWwgZWVuLCBlbiB6b25kZXIgZGV6ZSB0d2VlZGUgbGllcGVuIGRlIGFmemVuZGVyLCBkZSBvbnR2YW5nZXJzIGVuIGRlIHRhZ3NcbiAgICAvLyB6b25kZXIgc2NoZWlkaW5nIG92ZXIgaW4gZGUgaW5ob3VkIHZhbiBoZXQgYmVyaWNodC5cbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbWgtYm9yZGVyKTtcbn1cblxuLm1oLXNlbmRlci1hdmF0YXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4ubWgtc2VuZGVyLWJvZHkge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG59XG5cbi5taC1zZW5kZXItcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5taC1zZW5kZXItbmFtZSB7XG4gICAgY29sb3I6IHZhcigtLW1oLWZnKTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLm1oLXNlbmRlci1lbWFpbCB7XG4gICAgY29sb3I6IHZhcigtLW1oLW11dGVkKTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1oLXNlbmRlci1kYXRlIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBjb2xvcjogdmFyKC0tbWgtbXV0ZWQpO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIC0tLS0gVG8gLyBDQyBsaW5lcyAtLS0tXG4vLyBTYW1lIHNoYXBlIGZvciBib3RoIC0gYSBsZWFkaW5nIGZpZWxkIGxhYmVsLCB0aGVuIG9uZSB3cmFwcGVkIHNwYW4gcGVyXG4vLyBwZXJzb24gKGJvbGQgbmFtZSArIG11dGVkIFwiPGVtYWlsPjtcIikuIEhpZGRlbiBlbnRpcmVseSAodmlhIFtoaWRkZW5dLFxuLy8gc2VlIHRoZSBmaXggYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUpIHdoZW4gdGhlIHVuZGVybHlpbmcgbGlzdCBpcyBlbXB0eS5cbi5taC10byxcbi5taC1jYyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGdhcDogMCA0cHg7XG4gICAgY29sb3I6IHZhcigtLW1oLW11dGVkKTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1oLWZpZWxkLWxhYmVsIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLm1oLXBlcnNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGdhcDogMDtcbn1cblxuLm1oLXBlcnNvbi1uYW1lIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcbn1cblxuLy8gLS0tLSBUYWdzIHJvdyAtLS0tXG4ubWgtdGFncyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLWFuc3dlci1yb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIExpdGVyYWwgcmVjcmVhdGlvbiBvZiB0aGUgYmFja29mZmljZSBgLmluYm94LWJvZHktZ3JvdXBgIGJsb2NrXG4vLyAgKGJhY2tvZmZpY2UyL3NyYy9SRVgvQmFja29mZmljZS9WaWV3L3YxL25vdGlmaWNhdGlvbmNlbnRlci9wbHVnaW5zL1xuLy8gIGhhbmRvdmVyLmh0bWwsIH5saW5lIDI4NykgYW5kIGl0cyBzdHlsaW5nIChiYWNrb2ZmaWNlMi9zY3NzL3BhcnRpYWxzL1xuLy8gIF9pbmJveC5zY3NzLCB+bGluZSA2OTUtNzQyKS4gU0NPUEUtcHdhLWluYm94Lm1kIGJlc2x1aXQgNzA6IHB1bGxlZCBvdXRcbi8vICBzbyB0aGUgYmFja29mZmljZSBpbmJveCBBTkQgdGhlIFBXQSAod2hpY2ggaGFuZC1yb2xscyB0aGUgc2FtZSByb3cgYXNcbi8vICBgLmluYm94X3ZpZXdfX2Fuc3dlcmAgaW4gYXBwX2FwaV9xZG5hdjIvLi4uL0ctaW5ib3guaHRtbCkgc2hhcmUgT05FXG4vLyAgY29tcG9uZW50IGluc3RlYWQgb2YgdHdvLlxuLy9cbi8vICBDb2xvdXJzIG1hcHBlZCBmcm9tIF9pbmJveC5zY3NzIG9udG8gdGhlIGNlbnRyYWwgZGVzaWduIHRva2VucyAoc2FtZVxuLy8gIGlkaW9tIGFzIHFkbmFwcm8tbWVzc2FnZS1oZWFkZXIsIHNlZSB0aGF0IGZpbGUncyBoZWFkZXIgY29tbWVudCk6XG4vLyAgICAkY29sb3IgICAjNDA0OTlhIC0+IC0tYy1wdXJwbGUtNTAwIChxdWVzdGlvbiBsYWJlbClcbi8vICAgICRjb2xvcl80ICMyMDIxMjQgLT4gLS1jLXRleHQtYm9keSAgIChhbnN3ZXIgdGV4dClcbi8vICBUaGUgbm9kZS10eXBlIGljb24gY29sb3VyICgjYzJjMmMyKSBoYXMgbm8gbWF0Y2hpbmcgY2VudHJhbCB0b2tlbiAtIGl0XG4vLyAgaXMgYSBvbmUtb2ZmIG11dGVkIGdyZXkgbGlmdGVkIHN0cmFpZ2h0IGZyb20gdGhlIHNvdXJjZSwga2VwdCBsaXRlcmFsXG4vLyAgYW5kIG5hbWVkIGhlcmUgcmF0aGVyIHRoYW4gaW52ZW50ZWQuXG4vL1xuLy8gIFRoZSBkcmFmdC1waWxsICguYXItZHJhZnQpIGhhcyBubyBiYWNrb2ZmaWNlIGVxdWl2YWxlbnQgLSBpdCBpcyBhIFBXQS1cbi8vICBvbmx5IGFkZGl0aW9uIChhcHBfYXBpX3FkbmF2MiBgLmluYm94X3ZpZXdfX2Fuc3dlci1kcmFmdGAsIDAzLXN0eWxlLmNzcylcbi8vICByZWNyZWF0ZWQgaGVyZSBzbyBib3RoIHNjcmVlbnMgZ2V0IHRoZSBzYW1lIHBpbGwgb25jZSB0aGlzIGNvbXBvbmVudFxuLy8gIHJlcGxhY2VzIHRoZSBQV0EncyBoYW5kLXdyaXR0ZW4gbWFya3VwLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5xZG5hcHJvLWFuc3dlci1yb3cgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5xZG5hcHJvLWFuc3dlci1yb3cge1xuICAgIC0tYXItaGVhZGluZzogdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKTtcbiAgICAtLWFyLWZnOiB2YXIoLS1jLXRleHQtYm9keSwgIzBiMGIwZCk7XG4gICAgLS1hci1tdXRlZDogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICAtLWFyLWljb24tY29sb3I6IHZhcigtLWMtZ3JleS0zMDApOyAvLyBfaW5ib3guc2NzcyAuaW5ib3gtcS10eXBlLWljb24sIG5vIGNlbnRyYWwgdG9rZW4gbWF0Y2hcbiAgICAtLWFyLXBpbGwtYmc6IHZhcigtLWMtYmctY2FyZC1ob3ZlciwgI2Y3ZjhmYSk7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogNHB4IDhweDtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbn1cblxuLmFyLXF1ZXN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWluLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogdmFyKC0tYXItaGVhZGluZyk7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG5cbi5hci1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjb2xvcjogdmFyKC0tYXItaWNvbi1jb2xvcik7XG59XG5cbi5hci1xdWVzdGlvbi1sYWJlbCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4vLyBTbWFsbCByZWZlcmVuY2UgbnVtYmVyIGFmdGVyIHRoZSBxdWVzdGlvbiB0ZXh0IC0tIF9pbmJveC5zY3NzJ3Mgb3duXG4vLyAuaW5ib3gtcS1ub2RlLWlkICh+bGluZSA3MTgpOiBzbWFsbCwgbGlnaHQgZ3JleSwgbm9ybWFsIHdlaWdodCBhZ2FpbnN0IHRoZVxuLy8gYm9sZCBxdWVzdGlvbiBsYWJlbCwgdmVydGljYWxseSBjZW50ZXJlZCAodGhlIGxhYmVsIHJvdyBpcyBhbHJlYWR5XG4vLyBkaXNwbGF5OmZsZXgvYWxpZ24taXRlbXM6Y2VudGVyKS5cbi5hci1ub2RlLWlkIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiB2YXIoLS1hci1pY29uLWNvbG9yKTsgLy8gc2FtZSAjYzJjMmMyIGFzIHRoZSBub2RlLXR5cGUgaWNvbiwgbm8gc2VwYXJhdGUgdG9rZW5cbn1cblxuLy8gU21hbGwgcm91bmRlZCBwaWxsIC0gXCJDb25jZXB0XCIgLyBcIkRyYWZ0XCIgLyB3aGF0ZXZlciB0cmFuc2xhdGVkIGxhYmVsIHRoZVxuLy8gaG9zdCBwYXNzZXMuIFJlY2lwZSBsaWZ0ZWQgZnJvbSB0aGUgUFdBJ3Mgb3duIC5pbmJveF92aWV3X19hbnN3ZXItZHJhZnRcbi8vICgwMy1zdHlsZS5jc3MpLCB0aGUgb25seSBwcmlvciBhcnQgZm9yIHRoaXMgcGllY2UuXG4uYXItZHJhZnQge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHBhZGRpbmc6IDFweCA2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYXItcGlsbC1iZyk7XG4gICAgY29sb3I6IHZhcigtLWFyLW11dGVkKTtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLmFyLWFuc3dlciB7XG4gICAgLy8gQWxpZ25zIHVuZGVyIHRoZSBRVUVTVElPTiBURVhULCBub3QgdW5kZXIgdGhlIGljb24gKHNhbWUgcmVhc29uaW5nIGFzXG4gICAgLy8gdGhlIGJhY2tvZmZpY2Ugc291cmNlKTogdGhlIGljb24gaXMgMThweCB3aWRlICsgNnB4IGdhcCA9IDI0cHgsIHNvIGFcbiAgICAvLyByb3cgd2l0aG91dCBhbiBpY29uIHN0aWxsIGluZGVudHMgYnkgdGhlIHNhbWUgYW1vdW50IGFuZCB0aGUgd2hvbGVcbiAgICAvLyBsaXN0IGtlZXBzIG9uZSBzdHJhaWdodCBsZWZ0IGVkZ2UuXG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgIGNvbG9yOiB2YXIoLS1hci1mZyk7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgLy8gTG9uZywgdW5icm9rZW4gYW5zd2VycyBzdGlsbCB3cmFwIGluc2lkZSB0aGUgcm93IGluc3RlYWQgb2ZcbiAgICAvLyBvdmVyZmxvd2luZyBpdCAtIHRoaXMgaXMgdGhlIFBXQSdzIG93biBydWxlICgwMy1zdHlsZS5jc3NcbiAgICAvLyAuaW5ib3hfdmlld19fYW5zd2VyLWEpLCB0aGUgYmFja29mZmljZSBzb3VyY2UgbmV2ZXIgbmVlZGVkIGl0IGJlY2F1c2VcbiAgICAvLyBpdHMgYW5zd2VycyBhcmUgc2hvcnQgc2luZ2xlLWxpbmUgdmFsdWVzIGluIHByYWN0aWNlLlxuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyAgcWRuYXByby1tZXNzYWdlLWFjdGlvbmJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgTGl0ZXJhbCByZWNyZWF0aW9uIG9mIHRoZSBiYWNrb2ZmaWNlIGAuaW5wdXQtZm9vdGVyYCBibG9ja1xuLy8gIChiYWNrb2ZmaWNlMi9zcmMvUkVYL0JhY2tvZmZpY2UvVmlldy92MS9ub3RpZmljYXRpb25jZW50ZXIvcGx1Z2lucy9cbi8vICBoYW5kb3Zlci5odG1sLCB+bGluZSAzMzUpIGFuZCBpdHMgc3R5bGluZyAoYmFja29mZmljZTIvc2Nzcy9wYXJ0aWFscy9cbi8vICBfaW5ib3guc2NzcywgfmxpbmUgODEzLTg0OSkuIFNDT1BFLXB3YS1pbmJveC5tZCBiZXNsdWl0IDcwOiBwdWxsZWQgb3V0XG4vLyAgc28gdGhlIGJhY2tvZmZpY2UgaW5ib3ggQU5EIHRoZSBQV0Egc2hhcmUgT05FIGNvbXBvbmVudCBpbnN0ZWFkIG9mIHR3by5cbi8vXG4vLyAgQ29sb3VyIG1hcHBlZCBmcm9tIF9pbmJveC5zY3NzIG9udG8gdGhlIGNlbnRyYWwgZGVzaWduIHRva2Vuczpcbi8vICAgICRjb2xvciAgICAgICAgICAgICM0MDQ5OWEgLT4gLS1jLXB1cnBsZS01MDAgKG5vdGUgdGV4dCArIGluZm8gaWNvbiAtLVxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmlucHV0LWZvb3RlciBzZXRzIGBjb2xvcjogJGNvbG9yYCBvblxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHdob2xlIGJsb2NrLCBzbyBib3RoIGluaGVyaXQgaXQpXG4vLyAgICAkYmFja2dyb3VuZF9jb2xvcl8xICNlZWVmZmEgLT4ga2VwdCBsaXRlcmFsIGJlbG93LCBubyBjZW50cmFsIHRva2VuXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVzIHRoaXMgZXhhY3QgbGF2ZW5kZXIgZmlsbDsgaXQgaXNcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIFwic3VidGxlLXB1cnBsZS1iZ1wiIHN1cmZhY2UgdGhlXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZW5kIGJ1dHRvbnMgaW4gdGhpcyBiYXIgYWxyZWFkeSB1c2UuXG4vL1xuLy8gIHBsYWNlbWVudD1cImZsb3dcIiBpcyB0aGUgT05MWSBpbXBsZW1lbnRlZCB2YWx1ZSAoYmVzbHVpdCA2OCwgc2VlIHRoZVxuLy8gIGNvbXBvbmVudCdzIEpTIGRvYyk6IHRoaXMgYmFyIG5ldmVyIGJlY29tZXMgcG9zaXRpb246c3RpY2t5L2ZpeGVkLiBUaGVcbi8vICBiYWNrZW5kJ3Mgb3duIG1hcmdpbi10b3A6IDJyZW0gKGNsZWFyaW5nIGEgcHJlY2VkaW5nIHRpbWVsaW5lIHBpbGwpIGlzXG4vLyAgTk9UIGNvcGllZCBoZXJlIG9uIHB1cnBvc2UgLSB0aGF0IG51bWJlciBpcyB0aWVkIHRvIGEgc3BlY2lmaWMgc2libGluZ1xuLy8gIGVsZW1lbnQgaW4gdGhlIHBhZ2UncyB0aW1lbGluZSwgbm90IGEgcHJvcGVydHkgb2YgdGhpcyBjb21wb25lbnQ7IHRoZVxuLy8gIGhvc3QgYWRkcyB3aGF0ZXZlciBzcGFjaW5nIGl0cyBvd24gbGF5b3V0IG5lZWRzIGJlZm9yZSB0aGlzIGJhci5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucWRuYXByby1tZXNzYWdlLWFjdGlvbmJhciBbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnFkbmFwcm8tbWVzc2FnZS1hY3Rpb25iYXIge1xuICAgIC0tbWFiLWZnOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICAgIC0tbWFiLW11dGVkOiB2YXIoLS1jLXB1cnBsZS01MDAsICM0MDQ5OWEpO1xuICAgIC0tbWFiLWJnOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUpOyAvLyBfaW5ib3guc2NzcyAkYmFja2dyb3VuZC1jb2xvcl8xLCAuaW5wdXQtZm9vdGVyIGJnXG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tYWItYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1tYWItZmcpO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxufVxuXG4ubWFiLWluZm8ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi5tYWItaW5mby1pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBjb2xvcjogdmFyKC0tbWFiLWZnKTtcbn1cblxuLm1hYi1ub3RlIHtcbiAgICBjb2xvcjogdmFyKC0tbWFiLWZnKTtcbn1cblxuLy8gU2xvdCB0YXJnZXQgZm9yIHVwIHRvIHRocmVlIGJ1dHRvbnMuIENvbGxhcHNlcyB0byBub3RoaW5nIGlmIHRoZSBob3N0XG4vLyBzbG90cyBpbiBub25lIChkZWZlbnNpdmUgLSBpbiBwcmFjdGljZSB0aGlzIGJhciBpcyBvbmx5IGV2ZXIgcmVuZGVyZWRcbi8vIHdoZW4gYXQgbGVhc3Qgb25lIGFjdGlvbiBhcHBsaWVzKS5cbi5tYWItYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgICY6ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vICBxZG5hcHJvLXRpbWVsaW5lLW1hcmtlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgTGl0ZXJhbCByZWNyZWF0aW9uIG9mIHRoZSBiYWNrb2ZmaWNlIGAudGFzay1zdGF0dXNgIC9cbi8vICBgLnRhc2stc3RhdHVzLWJsb2NrYCBwaWxsIChiYWNrb2ZmaWNlMi9zcmMvUkVYL0JhY2tvZmZpY2UvVmlldy92MS9cbi8vICBub3RpZmljYXRpb25jZW50ZXIvcGx1Z2lucy9oYW5kb3Zlci5odG1sIH5saW5lIDI2OCBhbmQgfmxpbmUgMjk4KSBhbmQgaXRzXG4vLyAgc3R5bGluZyAoYmFja29mZmljZTIvc2Nzcy9wYXJ0aWFscy9faW5ib3guc2NzcyB+bGluZSA3ODMpLiBLaW0gMzEuMDcuMjAyNjpcbi8vICB0aGUgUFdBIGhhcyB0byBzaG93IHRoaXMgbW9tZW50IGluIHRoZSBzYW1lIHBsYWNlIGFuZCB0aGUgc2FtZSBzaGFwZSBhc1xuLy8gIHRoZSBiYWNrb2ZmaWNlLCBhbmQgdGhhdCBzaG91bGQgbm90IGJlY29tZSBhIGZvdXJ0aCBjb3B5IG9mIHRoaXMgQ1NTLlxuLy9cbi8vICBDb2xvdXJzIGxpZnRlZCBmcm9tIHRoZSBzb3VyY2UncyBvd24gbG9jYWwgdmFyaWFibGVzIGluIF9pbmJveC5zY3NzOlxuLy8gICAgJGNvbG9yXzkgICAgICAgICAgICAjOEM5MkMyIC0+IHRoZSBtdXRlZCBsYWJlbCArIHRpbWUgdGV4dFxuLy8gICAgJGJhY2tncm91bmQtY29sb3JfNSAjRDlEQkVCIC0+IHRoZSBib3JkZXJcbi8vICAgICRiYWNrZ3JvdW5kLWNvbG9yXzQgI2ZmZiAgICAtPiB0aGUgZmlsbFxuLy8gIE9ubHkgdGhlIGZpbGwgbWFwcyBjbGVhbmx5IG9udG8gYSBjZW50cmFsIHRva2VuICgtLWMtYmctY2FyZCkuIFRoZSBvdGhlclxuLy8gIHR3byBoYXZlIG5vIGV4YWN0IHRva2VuOiAjOGM5MmMyIGRvZXMgZXhpc3QgY2VudHJhbGx5LCBidXQgYXNcbi8vICAtLWMtdGV4dC1kaXNhYmxlZC1wcCwgYW5kIHRoaXMgdGV4dCBpcyBub3QgZGlzYWJsZWQgLS0gYm9ycm93aW5nIGEgdG9rZW5cbi8vICBmb3IgaXRzIHZhbHVlIGluc3RlYWQgb2YgaXRzIG1lYW5pbmcgaXMgaG93IGEgbGF0ZXIgdG9rZW4gY2hhbmdlIGJyZWFrcyBhblxuLy8gIHVucmVsYXRlZCBzY3JlZW4uIFNvIHRoZXkgc3RheSBsaXRlcmFsIGFuZCBuYW1lZCBoZXJlLCBzYW1lIGlkaW9tXG4vLyAgcWRuYXByby1hY3Rpb24tYmFyIGFscmVhZHkgdXNlcyBmb3IgdGhpcyBleGFjdCBib3JkZXIgY29sb3VyLCB3aXRoIGEgZGFya1xuLy8gIHRoZW1lIG92ZXJyaWRlIHRoYXQgRE9FUyBnbyB0aHJvdWdoIHRva2Vucy5cbi8vXG4vLyAgTk9UIGNvcGllZCBmcm9tIHRoZSBzb3VyY2U6IGBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDFgLiBJbiB0aGVcbi8vICBiYWNrb2ZmaWNlIHRoYXQgZXhpc3RzIG9ubHkgc28gdGhlIG9wYXF1ZSBmaWxsIGJyZWFrcyB0aGUgYDxocj5gIHRoYXRcbi8vICBmb2xsb3dzIGluIHRoZSBET00gYW5kIGlzIHB1bGxlZCB1cCBvdmVyIGl0ICguaW5ib3gtYm9keS1jb250ZW50IGhyIGhhc1xuLy8gIG1hcmdpbi10b3A6IC0ycmVtKS4gVGhhdCBpcyBhIGZhY3QgYWJvdXQgdGhlIGJhY2tvZmZpY2UncyBvd24gZGl2aWRlciwgbm90XG4vLyAgYWJvdXQgdGhpcyBwaWxsLCBzbyBpdCBiZWxvbmdzIGluIF9pbmJveC5zY3NzIHdoZW4gdGhhdCBwYWdlIGFkb3B0cyB0aGlzXG4vLyAgY29tcG9uZW50IC0tIG5vdCBpbiBldmVyeSBzY3JlZW4gdGhhdCB1c2VzIGl0LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5xZG5hcHJvLXRpbWVsaW5lLW1hcmtlciBbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnFkbmFwcm8tdGltZWxpbmUtbWFya2VyIHtcbiAgICAtLXRtLWZnOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQtcHApOyAgICAgIC8vIF9pbmJveC5zY3NzICRjb2xvcl85LCBzZWUgaGVhZGVyIG5vdGVcbiAgICAtLXRtLWJvcmRlcjogdmFyKC0tYy1ib3JkZXItdHJlZSk7ICAvLyBfaW5ib3guc2NzcyAkYmFja2dyb3VuZC1jb2xvcl81LCBzZWUgaGVhZGVyIG5vdGVcbiAgICAtLXRtLWJnOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA4cHggMDtcbiAgICBjb2xvcjogdmFyKC0tdG0tZmcpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnFkbmFwcm8tdGltZWxpbmUtbWFya2VyIHtcbiAgICAtLXRtLWZnOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgIC0tdG0tYm9yZGVyOiB2YXIoLS1jLWJvcmRlci1jYXJkLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkpO1xufVxuXG4udG0tYmxvY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICAvLyBXcmFwcyBpbnN0ZWFkIG9mIG92ZXJmbG93aW5nOiBvbiBhIHBob25lIHRoZSBsYWJlbCBpcyBhIGZ1bGwgc2VudGVuY2VcbiAgICAvLyB3aXRoIGEgbmFtZSBpbiBpdCwgYW5kIHRoZSBiYWNrb2ZmaWNlIG5ldmVyIGhhZCB0byBzdXJ2aXZlIGEgMzYwcHhcbiAgICAvLyBjb2x1bW4uIENlbnRlcmVkIHNvIGEgd3JhcHBlZCBzZWNvbmQgbGluZSBkb2VzIG5vdCByZWFkIGFzIGEgaGFuZ2luZ1xuICAgIC8vIGluZGVudCB1bmRlciB0aGUgaWNvbi5cbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDZweCAxNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRtLWJvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10bS1iZyk7XG59XG5cbi8vIEljb24gKyBsYWJlbCBhcyBPTkUgZmxleCBpdGVtLCBzbyB0aGV5IG5ldmVyIGVuZCB1cCBvbiBzZXBhcmF0ZSBsaW5lcy4gRmxleFxuLy8gYnJlYWtzIGxpbmVzIGJlZm9yZSBpdCBzaHJpbmtzIGFueXRoaW5nLCBzbyBhcyB0d28gaXRlbXMgYSBsb25nIG5hbWUgKHdoaWNoXG4vLyBkb2VzIG5vdCBmaXQgbmV4dCB0byB0aGUgaWNvbiBhdCBpdHMgbmF0dXJhbCB3aWR0aCkgcHVzaGVkIHRoZSBpY29uIG9udG8gYVxuLy8gbGluZSBvZiBpdHMgb3duIC0tIGxvb2tzIGxpa2UgYSBmYXVsdCwgY2hlY2tlZCBpbiBhIDMwMHB4IGNvbHVtbi4gR3JvdXBlZCB0aGV5XG4vLyBzaHJpbmsgdG9nZXRoZXIgYW5kIHRoZSBpY29uIHN0YXlzIHB1dC5cbi50bS1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4udG0taWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG5cbi50bS1sYWJlbCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi50bS1zZXAge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4vLyBUYXJnZXRlZCBvbiB0aGUgVEFHLCBub3Qgb24gYSBjbGFzczogcWRuYXByby1hdmF0YXIncyByZW5kZXIoKSBkb2VzXG4vLyBgdGhpcy5jbGFzc05hbWUgPSBjbHMuam9pbihcIiBcIilgIGFuZCB0aHJvd3MgYXdheSB3aGF0ZXZlciBjbGFzcyB0aGUgaG9zdCBwdXRcbi8vIG9uIGl0IChxZG5hcHJvLWljb24gc25hcHNob3RzIGhvc3QgY2xhc3NlcyBmaXJzdCwgYXZhdGFyIGRvZXMgbm90KSwgc28gYVxuLy8gYC50bS1hdmF0YXJgIGNsYXNzIHdvdWxkIGJlIGdvbmUgYmVmb3JlIHRoaXMgcnVsZSBjb3VsZCBldmVyIG1hdGNoLlxuLnRtLWJsb2NrID4gcWRuYXByby1hdmF0YXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIC8vIFRoZSBhdmF0YXIgaXMgYSBjaXJjbGUgd2l0aCBpdHMgb3duIGZpeGVkIHNpemU7IGtlZXAgaXQgb3V0IG9mIHRoZVxuICAgIC8vIDE0cHgvbm9ybWFsIHRleHQgZmxvdyBzbyBpdCBjYW5ub3QgcGljayB1cCBhIHN0cmF5IGxpbmUtaGVpZ2h0LlxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG4udG0tdGltZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIHFkbmFwcm8tbG90dGllXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBTcGVlbHQgZWVuIExvdHRpZS1hbmltYXRpZSAoSlNPTiB1aXQgQWZ0ZXIgRWZmZWN0cykgYWYgYWxzIGlubGluZSBTVkcuXG4vLyAgWmllIGRlIGRvY2Jsb2NrIGluIHdlYi9qcy9jb21wb25lbnRzL3YyL2xvdHRpZS9xZG5hLWxvdHRpZS5qcyB2b29yIHdhYXJvbVxuLy8gIGRpdCBjb21wb25lbnQgYmVzdGFhdCwgd2Fhcm9tIGRlIHNwZWxlciBwYXMgb3AgYWFudnJhYWcgZ2VsYWRlbiB3b3JkdCBlblxuLy8gIHdhYXJvbSB3ZSBkZSBsaWNodGUgYnVpbGQgZ2VicnVpa2VuLlxuLy9cbi8vICBEaXQgYmVzdGFuZCB3ZWV0IG5pZXRzIHZhbiBrbGV1ci4gRWVuIExvdHRpZS1hbmltYXRpZSBicmVuZ3QgemlqbiBlaWdlblxuLy8gIGtsZXVyZW4gbWVlIGluIGhldCBKU09OLWJlc3RhbmQsIGR1cyBlciB2YWx0IGhpZXIgbmlldHMgdGUgdG9rZW5pc2VyZW5cbi8vICBiZWhhbHZlIGRlIGZvY3VzcmluZy4gRGFhcmRvb3Iga2xvcHQgZGUgZG9ua2VyZSBtb2R1cyB2YW56ZWxmIHZvb3IgZGVcbi8vICBvbWxpanN0aW5nOyBvZiBkZSBhbmltYXRpZSB6ZWxmIGdvZWQgc3RhYXQgb3AgZWVuIGRvbmtlcmUgYWNodGVyZ3JvbmQgaXNcbi8vICBlZW4ga2V1emUgdmFuIGRlIGlsbHVzdHJhdGllLCBuaWV0IHZhbiBkaXQgY29tcG9uZW50LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5xZG5hcHJvLWxvdHRpZSB7XG4gICAgLy8gU3RhbmRhYXJkbWFhdCwgem9kYXQgZWVuIGFuaW1hdGllIHpvbmRlciBhZm1ldGluZ2VuIG5pZXQgYWxzIGVlblxuICAgIC8vIG9uemljaHRiYWFyIGJsb2tqZSB2YW4gMCBwaXhlbHMgaW4gZGUgcGFnaW5hIHN0YWF0LiBDb25zdW1lbnRlbiB6ZXR0ZW5cbiAgICAvLyBnZXdvb24gd2lkdGgvaGVpZ2h0IChvZiAtLXFsLXNpemUpIGVuIG92ZXJzY2hyaWp2ZW4gZGl0LlxuICAgIC0tcWwtc2l6ZTogNDhweDtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IHZhcigtLXFsLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tcWwtc2l6ZSk7XG4gICAgLy8gRWVuIGlubGluZS1ibG9jayBtZXQgYWxsZWVuIGVlbiBTVkcgZXJpbiBrcmlqZ3QgYW5kZXJzIHdpdHJ1aW10ZSBvbmRlclxuICAgIC8vIGRlIGJhc2VsaW5lIG1lZSwgd2FhcmRvb3IgaGV0IGljb29uIG5ldCBuaWV0IHVpdGxpam50IGluIGVlbiByaWouXG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLnFkbmFwcm8tbG90dGllX19zdGFnZSxcbi5xZG5hcHJvLWxvdHRpZV9fcG9zdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8vIERlIHNwZWxlciB6ZXQgemlqbiBlaWdlbiBTVkcgaW4gZGUgc3RhZ2UuIFpvbmRlciBkZXplIHJlZ2VsIGhvdWR0IGRpZSB6aWpuXG4vLyBlaWdlbiBicmVlZHRlIGFhbiB1aXQgaGV0IEpTT04tYmVzdGFuZCBlbiBuZWdlZXJ0IGhpaiBkZSBtYWF0IHZhbiBkZSBob3N0LlxuLnFkbmFwcm8tbG90dGllX19zdGFnZSBzdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi8vIERlIHBvc3RlciBsaWd0IE9OREVSIGRlIGFuaW1hdGllIGluIGRlemVsZmRlIHJ1aW10ZSwgbmlldCBlcm5hYXN0OiB6b1xuLy8gdmVyc3ByaW5ndCBkZSBsYXlvdXQgbmlldCBvcCBoZXQgbW9tZW50IGRhdCBkZSBlY2h0ZSBmcmFtZXMgdmVyc2NoaWpuZW4uXG4ucWRuYXByby1sb3R0aWVfX3Bvc3RlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi5xZG5hcHJvLWxvdHRpZV9fcG9zdGVyW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIEFsbGVlbiBkZSBrbGlrLXZhcmlhbnQgaXMgZWVuIGJlZGllbmluZ3NlbGVtZW50OyBkZSByZXN0IGlzIGRlY29yYXRpZSBlbiBtYWdcbi8vIGdlZW4gaGFuZGplIHRvbmVuIGRhdCBlZW4gaW50ZXJhY3RpZSBiZWxvb2Z0IGRpZSBlciBuaWV0IGlzLlxuLnFkbmFwcm8tbG90dGllW2RhdGEtdHJpZ2dlcj1cImNsaWNrXCJdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5xZG5hcHJvLWxvdHRpZTpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZm9jdXMtcmluZywgIzViNGRkMSk7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi8vIE1pc2x1a3RlIGFuaW1hdGllOiBkZSBwb3N0ZXIgYmxpamZ0IHN0YWFuLiBab25kZXIgcG9zdGVyIGxhdGVuIHdlIGJld3VzdCBlZW5cbi8vIGxlZWcgdmxhayB6aWVuIGluIHBsYWF0cyB2YW4gZWVuIGZvdXRtZWxkaW5nLCB3YW50IGVlbiBrYXBvdHRlIHZlcnNpZXJpbmdcbi8vIGhvb3J0IGdlZW4gYWFuZGFjaHQgdGUgdHJla2tlbi5cbi5xZG5hcHJvLWxvdHRpZVtkYXRhLXN0YXRlPVwiZXJyb3JcIl0gLnFkbmFwcm8tbG90dGllX19zdGFnZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiIsIkB1c2UgXCIuLi8uLi9tb2R1bGVzL3YxL2NvbG9yc1wiO1xuQHVzZSBcIi4uLy4uL21vZHVsZXMvdjEvdHlwb2dyYXBoeS5zY3NzXCI7XG5cbi8qIENyb3NzLWRvY3VtZW50IFZpZXcgVHJhbnNpdGlvbnMgKE9wdGllIEIsIEphbiAyMDI2LTA2LTE3KTogc21vb3RoIHRoZVxuICAgZnVsbC1wYWdlIG5hdmlnYXRpb25zIHNvIHRoZSBjb250ZW50IGNyb3NzLWZhZGVzIGluc3RlYWQgb2YgaGFyZC1jdXR0aW5nLFxuICAgd2hpbGUgdGhlIG5hdi1yYWlsIChpdHMgb3duIGB2aWV3LXRyYW5zaXRpb24tbmFtZWAgYmVsb3cpIHN0YXlzIHB1dCBhbmQgaXRzXG4gICBhY3RpdmUtaXRlbSBoaWdobGlnaHQgZ2xpZGVzIGFjcm9zcy4gQ2hyb21lIGhvbm91cnMgdGhpcyBmb3Igc2FtZS1vcmlnaW4gTVBBXG4gICBuYXZpZ2F0aW9uOyBicm93c2Vycy9wYWdlcyB0aGF0IGRvbid0IG9wdCBpbiBmYWxsIGJhY2sgdG8gYSBub3JtYWwgaW5zdGFudFxuICAgbmF2aWdhdGlvbiDigJQgbm8gYW5pbWF0aW9uLCBubyByZWdyZXNzaW9uLiAqL1xuQHZpZXctdHJhbnNpdGlvbiB7XG4gICAgbmF2aWdhdGlvbjogYXV0bztcbn1cblxuLyogTm8tZGlwIHRyYW5zaXRpb246IHRoZSBkZWZhdWx0IGNyb3NzLWZhZGUgZmFkZXMgdGhlIG9sZCBvdXQgKDHihpIwKSBBTkQgdGhlIG5ld1xuICAgaW4gKDDihpIxKSBzaW11bHRhbmVvdXNseSwgc28gYXQgdGhlIGNyb3Nzb3ZlciBib3RoIGxheWVycyBhcmUgdHJhbnNsdWNlbnQgYW5kXG4gICB0aGUgbGlnaHQgcGFnZSBiYWNrZ3JvdW5kIGJsZWVkcyB0aHJvdWdoIOKAlCB0aGUgXCJmbGFzaCB0byBsaWdodFwiLiBJbnN0ZWFkLCBrZWVwXG4gICB0aGUgT0xEIHBhZ2UgZnVsbHkgb3BhcXVlIHVuZGVybmVhdGggYW5kIGZhZGUgdGhlIE5FVyBpbiBvbiB0b3Agb2YgaXQsIHNvIHRoZXJlXG4gICBpcyBuZXZlciBhIHNlZS10aHJvdWdoIG1vbWVudC4gVGhlIG5hdi1yYWlsIChpZGVudGljYWwgYWNyb3NzIHBhZ2VzKSBob2xkc1xuICAgcGVyZmVjdGx5IHN0YXRpYyDigJQgbm8gZmFkZSwgbm8gZmxpY2tlci4gKi9cbjo6dmlldy10cmFuc2l0aW9uLW9sZChyb290KSB7IGFuaW1hdGlvbjogbm9uZTsgfVxuOjp2aWV3LXRyYW5zaXRpb24tbmV3KHJvb3QpIHsgYW5pbWF0aW9uOiBxZG5hLXZ0LWZhZGUtaW4gMjAwbXMgZWFzZSBib3RoOyB9XG5Aa2V5ZnJhbWVzIHFkbmEtdnQtZmFkZS1pbiB7IGZyb20geyBvcGFjaXR5OiAwOyB9IHRvIHsgb3BhY2l0eTogMTsgfSB9XG5cbjo6dmlldy10cmFuc2l0aW9uLW9sZChxZG5hLW5hdi1yYWlsKSxcbjo6dmlldy10cmFuc2l0aW9uLW5ldyhxZG5hLW5hdi1yYWlsKSB7IGFuaW1hdGlvbjogbm9uZTsgfVxuXG5odG1sLCBib2R5IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8qIOKUgOKUgCBpbmxpbmUgY29kZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIEJvb3RzdHJhcCBnZWVmdCDDiUxLIGA8Y29kZT5gIHppam4gZWlnZW4gcm96ZSAoYCNlODNlOGNgKSDigJQgZWVuIGtsZXVyIGRpZSB2ZXJkZXIgbmVyZ2VucyBpblxuICAgUUROQSBQcm8gdm9vcmtvbXQgZW4gZGllIG5pZXQgdWl0IGRlIHRva2VuYmlibGlvdGhlZWsga29tdC4gWmljaHRiYWFyIG9wIG9uZGVyIG1lZXIgZGVcbiAgIHBhcmFtZXRlci0gZW4gbWVldHdhYXJkZS1sYWJlbHMgaW4gZGUgcmFwcG9ydC1lZGl0b3IgZW4gb3AgZGUgdGVjaG5pc2NoZSB3YWFyZGVuIGluIGRlXG4gICBvbnR3aWtrZWxhYXJzcGFnaW5hJ3MgKEphbiwgMjAyNi0wOC0wMzogXCJyb3plIGlzIGVlbiBrbGV1ciBkaWUgdmVyZGVyIG5lcmdlbnMgdm9vcmtvbXRcIikuXG5cbiAgIFZlcnZhbmdlbiBkb29yIGAtLWMtYnJhbmQtcHVycGxlYDogaGV0emVsZmRlIG1lcmtwYWFycyB3YWFybWVlIGRlIGFwcCBhbCBoYWFyIGtsZWluZVxuICAgdGVjaG5pc2NoZSBjaGlwcyB6ZXQgKGhldCBjb25kaXRpZS1jaGlwamUgaW4gZGUgZG9jdW1lbnRlZGl0b3IsIGRlIHNlbGVjdGllLWNoaXAgaW4gZGVcbiAgIGJsb2trZW5saWpzdCksIGVuIOKAlCBhbmRlcnMgZGFuIGVlbiBrYWxlIGAtLWMtcHVycGxlLTUwMGAg4oCUIGVlbiBTRU1BTlRJU0NIRSB0b2tlbiBkaWUgaW4gaGV0XG4gICBkb25rZXJlIHRoZW1hIG1lZWthbnRlbHQgbmFhciBlZW4gbGljaHQgcGFhcnMuXG5cbiAgIOKaoO+4jyBEaXQgd2Vya3Qgb3AgZ2VsaWprZSBzcGVjaWZpY2l0ZWl0ICgwLDAsMSkgZW4gd2ludCBkdXMgcHV1ciBvcCBWT0xHT1JERTogYHN0eWxlLXYxLmNzc2BcbiAgICAgIHN0YWF0IG7DoSBgYm9vdHN0cmFwLm1pbi5jc3NgLiBWZXJodWlzdCBkZSBzdHlsZXNoZWV0LXZvbGdvcmRlIG9vaXQsIGRhbiBpcyBkaXQgZGUgZWVyc3RlXG4gICAgICByZWdlbCBkaWUgc3RpbCB0ZXJ1Z3ZhbHQgb3Agcm96ZS4gKi9cbmNvZGUge1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG59XG5cbi8vIExvY2sgdGhlIGJhY2tncm91bmQgKHdpbmRvdykgc2Nyb2xsIHdoaWxlIGEgZnVsbC1zY3JlZW4gZGV2aWNlIG92ZXJsYXkgaXMgb3BlblxuLy8gKGFwcC1sYXVuY2ggb3ZlcmxheSArIGZsb3ctZWRpdG9yIHByZXZpZXcpLiBXaXRob3V0IHRoaXMgdGhlIHNjcm9sbCB3aGVlbCBvdmVyXG4vLyB0aGUgb3ZlcmxheS9pZnJhbWUgY2hhaW5zIHRvIHRoZSBwYWdlIGJlaGluZCBpdC4gVG9nZ2xlZCBmcm9tIGFwcC1sYXVuY2guanMgYW5kXG4vLyBQcmV2aWV3TW9kYWwudnVlLiBUaGUgcGFnZSBzY3JvbGwgbGl2ZXMgb24gdGhlIHdpbmRvdyAoLnFkbmEtcGFnZS1jb250ZW50IGlzXG4vLyBvdmVyZmxvdy14OmNsaXAgb25seSksIHNvIGxvY2tpbmcgPGh0bWw+IGlzIGVub3VnaC5cbmh0bWwuYXBwLXNjcm9sbC1sb2NrZWQsIGh0bWwuYXBwLXNjcm9sbC1sb2NrZWQgYm9keSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4vKiBTYW1lIHBhaW50IHN1cmZhY2Ugb24gPGh0bWw+IGFzIG9uIDxib2R5Pi4gV2l0aG91dCB0aGlzLCBldmVyeVxuICAgbmF2aWdhdGlvbiBiZXR3ZWVuIHBhZ2VzIGJyaWVmbHkgcGFpbnRzIHRoZSBicm93c2VyJ3MgZGVmYXVsdCB3aGl0ZVxuICAgYmFja2dyb3VuZCBiZXR3ZWVuIHVubG9hZCBhbmQgdGhlIG5ldyBwYWdlJ3MgZmlyc3QgcGFpbnQg4oCUIHZpc2libGVcbiAgIGFzIGEgd2hpdGUgZmxhc2ggd2hlbiBjbGlja2luZyBhcm91bmQgdGhlIG5hdi1yYWlsLiAoS2ltIDIwMjYtMDYtMDcpICovXG4vKiBQYWdlIHN1cmZhY2UgY29tZXMgZnJvbSB0aGUgU0VNQU5USUMgdG9rZW4sIG5vdCBmcm9tIGEgU0NTUyB2YXJpYWJsZS5cbiAgIEEgU0NTUyB2YXJpYWJsZSBpcyByZXNvbHZlZCBhdCBjb21waWxlIHRpbWUgKGBjb2xvcnMuJGxpZ2h0LXB1cnBsZS0xMDBgXG4gICBzaGlwcGVkIGFzIGEgbGl0ZXJhbCBgI2U2ZTlmZmApLCBzbyB0aGVyZSB3YXMgbm90aGluZyBsZWZ0IGZvciBhIHRoZW1lIHRvXG4gICByZWRlZmluZSBhdCBydW50aW1lIOKAlCB0aGUgcGFnZSBiYWNrZ3JvdW5kIGNvdWxkIG5ldmVyIGZvbGxvdyBkYXJrIG1vZGUuXG4gICBgLS1jLWJnLXBhZ2VgIGlzIGRlY2xhcmVkIGZvciBib3RoIHRoZW1lcyBpblxuICAgY29tcG9uZW50cy92Mi9kZXNpZ24tdG9rZW5zL19kZXNpZ24tdG9rZW5zLnNjc3MsIHNvIHRoaXMgaXMgbm93IHRoZSBPTkVcbiAgIHBsYWNlIHRoZSBwYWdlIHN1cmZhY2UgaXMgc2V0IGFuZCBpdCBmbGlwcyBieSBpdHNlbGYuIFNhbWUgZm9yIHRoZSBib2R5XG4gICB0ZXh0IGNvbG91cjogYSBkYXJrIHN1cmZhY2Ugd2l0aCBgJHRleHQtYm9keS1jb2xvcmAgb24gaXQgaXMgdW5yZWFkYWJsZS5cbiAgIERvIE5PVCByZWludHJvZHVjZSBhIHBlci1wYWdlIGJvZHkgYmFja2dyb3VuZDsgcG9pbnQgaXQgaGVyZSBpbnN0ZWFkLlxuICAgW0tpbSAyMDI2LTA4LTA3XSAqL1xuaHRtbCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1wYWdlKTtcbn1cblxuYm9keSB7XG4gICAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LW9wdGljYWwtc2l6aW5nOiBhdXRvO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1wYWdlKTtcbn1cblxuLm1zLWRyb3Age1xuICAgIHotaW5kZXg6IDEwNTA7XG4gICAgd2lkdGg6IDQwJSAhaW1wb3J0YW50O1xuXG4gICAgdWw+bGkubXVsdGlwbGUge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLm1zLWNob2ljZT5kaXYge1xuICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICYub3BlbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5xZG5hLXBhZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAvLyBEb24ndCBzdHJldGNoIDxtYWluPiB0byB0aGUgZmxleCByb3cgaGVpZ2h0LiBXaXRoIHRoZSBkZWZhdWx0XG4gICAgLy8gYWxpZ24taXRlbXM6IHN0cmV0Y2gsIGEgdGFsbCBwYWdlIHByb2R1Y2VkIGEgfjU2cHggcGhhbnRvbSBvdmVyZmxvd1xuICAgIC8vIChib2R5IHNjcm9sbEhlaWdodCA+IC5xZG5hLXBhZ2UpLCB3aGljaCBwdXNoZWQgdGhlIHN0aWNreSBuYXYtcmFpbCB1cFxuICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhlIHNjcm9sbC4gZmxleC1zdGFydCBsZXRzIG1haW4gdGFrZSBpdHMgbmF0dXJhbCBoZWlnaHRcbiAgICAvLyBzbyB0aGUgcmFpbCdzIGBwb3NpdGlvbjogc3RpY2t5YCBzdGF5cyBwaW5uZWQgZm9yIHRoZSBmdWxsIHNjcm9sbC5cbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgIHFkbmFwcm8tbmF2LXJhaWwge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgICAgICAvLyBUcmVhdCB0aGUgcmFpbCBhcyB0aGUgU0FNRSBlbGVtZW50IGFjcm9zcyBuYXZpZ2F0aW9uczogaW5zdGVhZCBvZlxuICAgICAgICAvLyBjcm9zcy1mYWRpbmcgd2l0aCB0aGUgcmVzdCBvZiB0aGUgcGFnZSBpdCBzdGF5cyBwdXQgYW5kIGl0cyBhY3RpdmVcbiAgICAgICAgLy8gaGlnaGxpZ2h0IGdsaWRlcyB0byB0aGUgbmV3IGl0ZW0uIChPcHRpZSBCKVxuICAgICAgICB2aWV3LXRyYW5zaXRpb24tbmFtZTogcWRuYS1uYXYtcmFpbDtcbiAgICB9XG5cbiAgICAvKiBjb21wb25lbnRzLmpzIGlzIGEgZGVmZXJyZWQgbW9kdWxlLCBzbyBvbiBldmVyeSAoZnVsbC1wYWdlKSBuYXZpZ2F0aW9uIHRoZVxuICAgICAgIHJhdyA8cWRuYXByby1uYXYtcmFpbD4gZXhpc3RzIGZvciBhIGJlYXQgYmVmb3JlIGl0IHVwZ3JhZGVzIOKAlCB3aXRoIG5vIHdpZHRoXG4gICAgICAgb3IgYmFja2dyb3VuZCBpdCBjb2xsYXBzZXMgdGhlIG1lbnUgc3RyaXAgYW5kIHRoZSBsYXZlbmRlciBwYWdlIGJnIGZsYXNoZXNcbiAgICAgICB0aHJvdWdoLCB0aGVuIHRoZSByYWlsIHBvcHMgdG8gMjA4cHggZGFyayBwdXJwbGUgYW5kIHRoZSBjb250ZW50IHJlZmxvd3MuXG4gICAgICAgUmVzZXJ2ZSB0aGUgZXhwYW5kZWQgd2lkdGggKyBuYXYgc3VyZmFjZSB1cCBmcm9udCAocmVuZGVyLWJsb2NraW5nIENTUykgc29cbiAgICAgICB0aGUgcmFpbCBsb29rcyBpZGVudGljYWwgYmVmb3JlL2FmdGVyIHVwZ3JhZGUg4oaSIG5vIHJlZmxvdywgbm8gZmxhc2guXG4gICAgICAgMjA4cHggPSB0aGUgZXhwYW5kZWQgd2lkdGg7IHZhciBmYWxsYmFjayA9IHRoZSByZXNvbHZlZCAtLWMtbmF2LWJnLiAqL1xuICAgIHFkbmFwcm8tbmF2LXJhaWw6bm90KDpkZWZpbmVkKSB7XG4gICAgICAgIHdpZHRoOiAyMDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1uYXYtYmcsICMzYTQyOTApO1xuICAgIH1cblxuICAgIC5xZG5hLXBhZ2UtY29udGVudCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAvLyBvdmVyZmxvdy14OiBjbGlwIGtlZXBzIHdpZGUgdGFibGVzIC8gb3ZlcmZsb3dpbmcgY29udGVudCBjb250YWluZWRcbiAgICAgICAgLy8gb24gdGhlIGhvcml6b250YWwgYXhpcyBXSVRIT1VUIGVzdGFibGlzaGluZyBhIHNjcm9sbCBjb250ZXh0IG9uIHRoZVxuICAgICAgICAvLyB2ZXJ0aWNhbCBheGlzIOKAlCB0aGF0IGxldHMgYHBvc2l0aW9uOiBzdGlja3lgIG9uIC5xZG5hLW5hdmJhclxuICAgICAgICAvLyAoZGVjbGFyZWQgaW5zaWRlIHRoaXMgbWFpbikgYWN0dWFsbHkgc3RpY2sgdG8gdGhlIHZpZXdwb3J0IHRvcC5cbiAgICAgICAgLy8gb3ZlcmZsb3c6IGhpZGRlbiB3b3VsZCBjbGlwIGJvdGggYXhlcyBBTkQga2lsbCBzdGlja3kuXG4gICAgICAgIG92ZXJmbG93LXg6IGNsaXA7XG4gICAgfVxufVxuXG4vKiBGaXgtQSBjb21wYW5pb24gZm9yIGNvbGxhcHNlZC1yYWlsIHVzZXJzOiB3aGVuIDxodG1sPiBpcyBmbGFnZ2VkXG4gICBgcmFpbC1jb2xsYXBzZWRgIChzZXQgcHJlLXBhaW50IGJ5IHRoZSBpbmxpbmUgc2NyaXB0IGluIGhlYWRlci5odG1sLCByZWFkaW5nXG4gICB0aGUgc2F2ZWQgbG9jYWxTdG9yYWdlIHByZWZlcmVuY2UpLCByZXNlcnZlIHRoZSBDT0xMQVBTRUQgcmFpbCB3aWR0aCBmb3IgdGhlXG4gICBub3QteWV0LXVwZ3JhZGVkIHJhaWwgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCAyMDhweC4gV2l0aG91dCB0aGlzIGEgdXNlciB3aG9cbiAgIHByZWZlcnMgdGhlIHJhaWwgY29sbGFwc2VkIHdvdWxkIHNlZSBhIDIwOOKGkmNvbGxhcHNlZCByZWZsb3cgb24gZXZlcnlcbiAgIG5hdmlnYXRpb24gKGFuZCBhIHZpZXctdHJhbnNpdGlvbiBzaXplIG1pc21hdGNoKS4gODRweCBtdXN0IG1hdGNoIHRoZVxuICAgY29sbGFwc2VkIHdpZHRoIGluIF9uYXYtcmFpbC5zY3NzLiAqL1xuaHRtbC5yYWlsLWNvbGxhcHNlZCAucWRuYS1wYWdlIHFkbmFwcm8tbmF2LXJhaWw6bm90KDpkZWZpbmVkKSB7IHdpZHRoOiA4NHB4OyB9XG5cbi50cy1zZWN0aW9uLCAucWRuYS1zZWN0aW9uIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLy8gbWFyZ2luLXRvcDogMTAwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG59XG5cbi8vIE9ORSBzb3VyY2UgZm9yIHRoZSB0b3AgYmFyJ3MgaGVpZ2h0LiBJdCB3YXMgaGFyZGNvZGVkIGFzIDU2cHggaGVyZSBBTkQgaW4gZml2ZVxuLy8gYGNhbGMoMTAwdmggLSA1NnB4KWAgLyBgdG9wOiA1NnB4YCBydWxlcyBvbiBvdGhlciBwYWdlcywgc28gY2hhbmdpbmcgaXQgaW4gb25lXG4vLyBwbGFjZSB1c2VkIHRvIGxlYXZlIHRob3NlIHBhZ2VzIGEgZmV3IHBpeGVscyBvZmYuIEV2ZXJ5dGhpbmcgcmVhZHMgdGhpcyBub3cuXG4vLyBLaW0gMDkuMDguMjAyNjogNTYgLT4gNDQsIGJlY2F1c2UgdGhlIGJhciBjYXJyaWVzIGEgYnJlYWRjcnVtYiBhbmQgc29tZSBpY29uc1xuLy8gYW5kIG5vdGhpbmcgZWxzZTsgdGhlIHJvb20gYmVsb25ncyB0byB0aGUgcGFnZSB1bmRlcm5lYXRoLlxuOnJvb3Qge1xuICAgIC0tcWRuYS10b3BiYXItaDogNDRweDtcbn1cblxuLnFkbmEtbmF2YmFyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IHZhcigtLXFkbmEtdG9wYmFyLWgpO1xuICAgIC8vIFRoZSBTRU1BTlRJQyByb2xlLCBub3QgdGhlIHByaW1pdGl2ZS4gVGhpcyB3YXMgdmFyKC0tYy1wdXJwbGUtNTApLCB3aGljaFxuICAgIC8vIGxvb2tzIGxpa2UgYSB0b2tlbiBidXQgaXMgYSByYXcgRmlnbWEgdmFsdWU6IGl0IGlzICNlNmU5ZmYgaW4gQk9USCB0aGVtZXNcbiAgICAvLyBieSBkZWZpbml0aW9uLCBzbyB0aGUgaGVhZGVyIHN0YXllZCBsaWdodCB3aGlsZSB0aGUgcGFnZSB3ZW50IGRhcmsuIFRoZVxuICAgIC8vIGhlYWRlciBpcyBtZWFudCB0byByZWFkIGFzIG9uZSBzdXJmYWNlIHdpdGggdGhlIHBhZ2UsIHNvIGl0IHRha2VzIHRoZVxuICAgIC8vIHNhbWUgcm9sZSB0aGUgcGFnZSBkb2VzLiBbS2ltIDIwMjYtMDgtMDddXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1iZy1wYWdlKTtcbiAgICAvLyBTdGlja3kgb3ZlciBmaXhlZDogc3RheXMgaW4gZmxvdyBzbyB0aGUgY29udGVudCBiZWxvdyByZXNlcnZlcyBpdHNcbiAgICAvLyBvd24gc3BhY2UgKG5vIHBhZGRpbmctdG9wIGhhY2spLCBzdGlsbCBwaW5uZWQgdG8gdGhlIHRvcCB3aGlsZSB5b3VcbiAgICAvLyBzY3JvbGwuIHotaW5kZXggaGlnaCBlbm91Z2ggdG8gY2xlYXIgcGFnZSBjb250ZW50ICsgdG9vbHRpcHMsIGxvd1xuICAgIC8vIGVub3VnaCB0byBzdGF5IHVuZGVyIG1vZGFscyAod2hpY2ggdXNlIDkwMDArKS4gVXNlZCBpbiBCQVNFIHNvIGV2ZXJ5XG4gICAgLy8gcGFnZSBpbiB0aGUgYmFja2VuZCBpbmhlcml0cyB0aGUgc2FtZSBmaXhlZC1oZWFkZXIgYmVoYXZpb3VyLlxuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IDUwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgICAgICAgICAgLy8gdmVydGljYWxseSBjZW50ZXIgYnJlYWRjcnVtYiArIGF2YXRhclxuICAgIHBhZGRpbmc6IDAgMTZweDsgICAgICAgICAgICAgIC8vIHZlcnRpY2FsIHBhZGRpbmcgaGFuZGxlZCBieSBmaXhlZCBoZWlnaHRcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAucWRuYS1icmVhZGNydW1icyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIGEucWRuYS1icmVhZGNydW1iIHtcbiAgICAgICAgICAgIGNvbG9yOiB0eXBvZ3JhcGh5LiR0ZXh0LWJvZHktY29sb3I7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZzogMCA4cHg7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5uYXZiYXItaXRlbXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxufVxuXG4vLyBIZWFkZXIgbm90aWZpY2F0aW9uIGJlbGwgKyBOb3ZhIHN1cHBvcnQgdHJpZ2dlcjogYnJhbmQtcHVycGxlIGljb24gKyB0aGUgU0FNRVxuLy8gbGlnaHQtcHVycGxlIGhvdmVyIGFzIHRoZSBwcm9maWxlIGJ1dHRvbiBuZXh0IHRvIHRoZW0uIE92ZXJyaWRlcyB0aGUgbmV1dHJhbFxuLy8gYHN1YnRsZWAgaWNvbi1idG4gZGVmYXVsdHMgKG5lYXItYmxhY2sgaWNvbiArIGdyZXkgaG92ZXIpLiBUaGUgaWQgYmVhdHMgdGhlXG4vLyBjb21wb25lbnQncyBjbGFzcyBzZWxlY3RvcnMuXG4jbmF2YmFyLWJlbGwtYnRuLnFkbmFwcm8taWNvbi1idG4sXG4jbmF2YmFyLW5vdmEtYnRuLnFkbmFwcm8taWNvbi1idG4sXG4jbmF2YmFyLWFwcC1idG4ucWRuYXByby1pY29uLWJ0biB7XG4gICAgY29sb3I6IGNvbG9ycy4kcHVycGxlLTUwMDtcblxuICAgICY6aG92ZXI6bm90KC5pY29uLWJ0bi1kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcnMuJGxpZ2h0LXB1cnBsZS0xNTA7XG4gICAgfVxufVxuXG4vLyBcIk9wZW4gdGhlIGFwcFwiIGxhdW5jaGVyIOKAlCB0aGUgUFdBIGVtYmVkZGVkIGluIGEgZGV2aWNlIGZyYW1lIHdpdGggYSBkZXZpY2Vcbi8vIHN3aXRjaGVyIChwaG9uZSAvIHRhYmxldC1wb3J0cmFpdCAvIHRhYmxldC1sYW5kc2NhcGUpLiBUaGlzIHJlcHJvZHVjZXMgdGhlXG4vLyBmbG93LWVkaXRvciBwcmV2aWV3IGNocm9tZSAoLmZlLXBtLSogaW4gX2Zsb3dlZGl0b3Iuc2NzcykgYXMgYSBzZWxmLWNvbnRhaW5lZFxuLy8gb3ZlcmxheSBzbyBpdCBpcyBhdmFpbGFibGUgb24gZXZlcnkgYmFja29mZmljZSBwYWdlLiBCZWhhdmlvdXIgZGlmZmVycyBmcm9tXG4vLyB0aGUgcHJldmlldyBpbiBPTkUgd2F5OiBiYWNrZHJvcC1jbGljayAvIEVzY2FwZSBkbyBOT1QgY2xvc2UgKG9ubHkgdGhlIFgpIOKAlFxuLy8gYXBwLWxhdW5jaC5qcyBiaW5kcyBvbmx5IHRoZSBYLCBhbmQgdGhlcmUgaXMgbm8gYmFja2Ryb3AgY2xvc2UgaGFuZGxlci4gVGhlXG4vLyBkZXZpY2Ugc2l6ZXMgKyBmaXQtdG8tdmlld3BvcnQgem9vbSBtaXJyb3IgdGhlIHByZXZpZXcuIFsyMDI2LTA3LTE2XVxuLmFsLWJhY2tkcm9wIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogMTAxMDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMCwgMTIsIDQwLCAwLjcyKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAvLyBLZWVwIHRoZSBiYWNrZHJvcCdzIG93biBzY3JvbGwgZnJvbSBjaGFpbmluZyB0byB0aGUgcGFnZSBiZWhpbmQgaXQuXG4gICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcblxuICAgIC8vIFtoaWRkZW5dIG11c3QgYmVhdCB0aGUgZGlzcGxheTpmbGV4IGFib3ZlIChhdXRob3IgcnVsZSwgaGlnaGVyIHNwZWNpZmljaXR5KS5cbiAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi5hbC1zaGVsbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAzMnB4O1xufVxuXG4vLyBEZXZpY2Ugc3dpdGNoZXIgKyBjbG9zZSBiYXJcbi5hbC1jaHJvbWUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG59XG5cbi5hbC1kZXZpY2VzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEwKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiAzcHg7XG59XG5cbi5hbC1kZXZpY2UtYnRuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDM0cHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NSk7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE0MG1zLCBjb2xvciAxNDBtcztcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpOyBjb2xvcjogI2ZmZjsgfVxuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIwKTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIH1cbn1cblxuLmFsLWNsb3NlLWJ0biB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMzRweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNDBtcywgY29sb3IgMTQwbXM7XG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7IGNvbG9yOiAjZmZmOyB9XG59XG5cbi8vIERldmljZSBmcmFtZXMg4oCUIGZpeGVkIHB4IHNpemVzOyBhcHAtbGF1bmNoLmpzIGFwcGxpZXMgYSBmaXQtdG8tdmlld3BvcnQgYHpvb21gXG4vLyAobWlycm9ycyB0aGUgcHJldmlldydzIEZSQU1FX0hFSUdIVFMgKyBDSFJPTUVfT1ZFUkhFQUQgbWF0aCkuXG4uYWwtZnJhbWUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAjMWExYjJlO1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICMzYTNiNTU7XG4gICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSxcbiAgICAgICAgMCAyNHB4IDgwcHggcmdiYSgwLCAwLCAwLCAwLjcpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDI4MG1zIGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpLFxuICAgICAgICAgICAgICAgIGhlaWdodCAyODBtcyBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSxcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzIDI4MG1zO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLS1waG9uZSB7XG4gICAgICAgIHdpZHRoOiAzNzVweDtcbiAgICAgICAgaGVpZ2h0OiA4MTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNDRweDtcbiAgICB9XG5cbiAgICAmLS10YWJsZXQtcG9ydHJhaXQge1xuICAgICAgICB3aWR0aDogNzY4cHg7XG4gICAgICAgIGhlaWdodDogMTAyNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIH1cblxuICAgICYtLXRhYmxldC1sYW5kc2NhcGUge1xuICAgICAgICB3aWR0aDogMTAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDc2OHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIH1cblxuICAgICYtLXBob25lLWxhbmRzY2FwZSB7XG4gICAgICAgIHdpZHRoOiA4MTJweDtcbiAgICAgICAgaGVpZ2h0OiAzNzVweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzJweDtcbiAgICB9XG5cbiAgICAvLyBEZXNrdG9wIOKAlCBuZWFybHkgdmlld3BvcnQtZmlsbGluZyAobm8gZml4ZWQgYXNwZWN0LCBubyB6b29tOyBDU1Mgc2l6ZXMgaXQpLlxuICAgICYtLWRlc2t0b3Age1xuICAgICAgICB3aWR0aDogbWluKDE2ODBweCwgOTZ2dyk7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDE0MHB4KTtcbiAgICAgICAgbWF4LWhlaWdodDogMTEwMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIH1cbn1cblxuLmFsLW5vdGNoIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aWR0aDogMTIwcHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiAjMWExYjJlO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAxOHB4IDE4cHg7XG4gICAgei1pbmRleDogMjtcblxuICAgIC5hbC1mcmFtZS0tdGFibGV0LXBvcnRyYWl0ICYsXG4gICAgLmFsLWZyYW1lLS10YWJsZXQtbGFuZHNjYXBlICYsXG4gICAgLmFsLWZyYW1lLS1waG9uZS1sYW5kc2NhcGUgJixcbiAgICAuYWwtZnJhbWUtLWRlc2t0b3AgJiB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLmFsLXNjcmVlbiB7XG4gICAgZmxleDogMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vLyBUaGUgbm9uLXBob25lLXBvcnRyYWl0IGZyYW1lcyBoaWRlIHRoZSBub3RjaC9ob21lLWJhciwgc28gdGhlIFBXQSBzaXRzIGZsdXNoXG4vLyBhZ2FpbnN0IHRoZSBmcmFtZSBlZGdlIChhbmQgdGhlIHJvdW5kZWQgY29ybmVyIGNsaXBzIGNvbnRlbnQsIGUuZy4gXCJWYW5kYWFnXCJcbi8vIGluIGxhbmRzY2FwZSkuIEluc2V0IHRoZSAod2hpdGUpIHNjcmVlbiBhIGxpdHRsZSBmb3IgYnJlYXRoaW5nIHJvb20g4oCUIHRoZVxuLy8gcGhvbmUtcG9ydHJhaXQga2VlcHMgaXRzIG5vdGNoL2hvbWUtYmFyIGJlemVsIGluc3RlYWQuIGJveC1zaXppbmcgc28gdGhlXG4vLyBwYWRkaW5nIGRvZXNuJ3QgcHVzaCB0aGUgMTAwJS13aWRlIHNjcmVlbiBwYXN0IHRoZSBmcmFtZS5cbi5hbC1mcmFtZS0tdGFibGV0LXBvcnRyYWl0ID4gLmFsLXNjcmVlbixcbi5hbC1mcmFtZS0tdGFibGV0LWxhbmRzY2FwZSA+IC5hbC1zY3JlZW4sXG4uYWwtZnJhbWUtLWRlc2t0b3AgPiAuYWwtc2NyZWVuIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDIycHg7XG59XG4uYWwtZnJhbWUtLXBob25lLWxhbmRzY2FwZSA+IC5hbC1zY3JlZW4ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMTZweDtcbn1cblxuLmFsLWlmcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmFsLWhvbWUtYmFyIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aWR0aDogMTIwcHg7XG4gICAgaGVpZ2h0OiA1cHg7XG4gICAgbWFyZ2luOiA4cHggYXV0bztcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcblxuICAgIC5hbC1mcmFtZS0tdGFibGV0LXBvcnRyYWl0ICYsXG4gICAgLmFsLWZyYW1lLS10YWJsZXQtbGFuZHNjYXBlICYsXG4gICAgLmFsLWZyYW1lLS1waG9uZS1sYW5kc2NhcGUgJixcbiAgICAuYWwtZnJhbWUtLWRlc2t0b3AgJiB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLy8gTGl2ZS1tb2RlIHdhcm5pbmcg4oCUIGEgYmFja29mZmljZSBlbGVtZW50IHBvc2l0aW9uZWQgT1ZFUiB0aGUgZGV2aWNlIHNjcmVlblxuLy8gKG5vdCBpbnNpZGUgdGhlIFBXQSkuIFNvbGlkIG11dGVkIHJlZCwgd2FybmluZyBpY29uLCBPSyArIH40cyBhdXRvLWRpc21pc3MuXG4vLyBTaG93bi9oaWRkZW4gYnkgYXBwLWxhdW5jaC5qcyB2aWEgdGhlIC0tc2hvdyBjbGFzczsgc2l0cyBqdXN0IGJlbG93IHRoZSBub3RjaFxuLy8gYW5kIGNsaXBzIHRvIHRoZSBmcmFtZSdzIHJvdW5kZWQgY29ybmVycyAoLmFsLWZyYW1lIGlzIG92ZXJmbG93OmhpZGRlbikuXG4uYWwtbGl2ZS1ub3RpY2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDQ2cHg7XG4gICAgbGVmdDogMTJweDtcbiAgICByaWdodDogMTJweDtcbiAgICB6LWluZGV4OiAzO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxMHB4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNiMDRhNDI7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMjgpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIyMG1zIGVhc2UsIHRyYW5zZm9ybSAyMjBtcyBlYXNlO1xuXG4gICAgJi0tc2hvdyB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsgdHJhbnNpdGlvbjogbm9uZTsgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cblxuICAgICZfX2JvZHkgeyBmbGV4OiAxIDEgYXV0bzsgbWluLXdpZHRoOiAwOyB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDNweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICAgICAgY29sb3I6ICNmYmU2ZTQ7XG4gICAgfVxuXG4gICAgJl9fb2sge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxOHB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNDBtcyBlYXNlO1xuXG4gICAgICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjgpOyB9XG4gICAgICAgICY6YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsgfVxuICAgIH1cblxuICAgIC8vIFRhYmxldHM6IGtlZXAgdGhlIG5vdGljZSBhIGNvbWZvcnRhYmxlIHJlYWRpbmcgd2lkdGggaW5zdGVhZCBvZiBmdWxsLWJsZWVkLlxuICAgIC5hbC1mcmFtZS0tdGFibGV0LXBvcnRyYWl0ICYsXG4gICAgLmFsLWZyYW1lLS10YWJsZXQtbGFuZHNjYXBlICYge1xuICAgICAgICBsZWZ0OiAxNnB4O1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiA0MjBweDtcbiAgICAgICAgdG9wOiAxNnB4O1xuICAgIH1cbn1cblxuLy8gVGhlIE5vdmEgc3VwcG9ydCB0cmlnZ2VyIHB1bHNlcyBnZW50bHkgc28gaXQgcmVhZHMgYXMgXCJhc2sgbWVcIi4gUGF1c2VzIG9uXG4vLyBob3ZlciAoc28gdGhlIGhvdmVyIHN0YXRlIHRha2VzIG92ZXIgY2xlYW5seSkgYW5kIHJlc3BlY3RzIHJlZHVjZWQtbW90aW9uLlxuQGtleWZyYW1lcyBub3ZhLXNvZnQtcHVsc2Uge1xuICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAgIDUwJSAgICAgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjEyKTsgfVxufVxuXG4jbmF2YmFyLW5vdmEtYnRuLnFkbmFwcm8taWNvbi1idG4ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICBhbmltYXRpb246IG5vdmEtc29mdC1wdWxzZSAyLjZzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuXG4gICAgJjpob3ZlciB7IGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7IH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAjbmF2YmFyLW5vdmEtYnRuLnFkbmFwcm8taWNvbi1idG4geyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLy8gTm90aWZpY2F0aW9uIGRyb3Bkb3duOiBmcm9zdGVkIGdsYXNzIOKAlCBtb3JlIHRyYW5zbHVjZW50IChsZXNzIHNvbGlkKSArIHN0cm9uZ2VyXG4vLyBibHVyLCBubyB3aGl0ZSBib3JkZXIsIG5vIGluc2V0IHBhZGRpbmcgc28gdGhlIGhlYWRlciBmaWxscyB0byB0aGUgdG9wL3NpZGVzLlxuI25hdmJhci1ub3RpZmljYXRpb24tbWVudSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDcsIDI0OCwgMjUzLCAwLjUpICFpbXBvcnRhbnQ7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDI4cHgpIHNhdHVyYXRlKDEuNSk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjhweCkgc2F0dXJhdGUoMS41KTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBib3gtc2hhZG93OiAwIDEycHggNDBweCByZ2JhKDQwLCA0NiwgMTAwLCAwLjE4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsgICAvLyByZW1vdmUgdGhlIHFkbmFwcm8tbWVudSA4cHggaW5zZXQg4oaSIGhlYWRlciBmaWxscyBmbHVzaFxuXG4gICAgLy8gU3VidGxlIHNjcm9sbGJhciB3aXRoIGEgdHJhbnNwYXJlbnQgdHJhY2sgKG5vdCB0aGUgcHJvbWluZW50IGRlZmF1bHQpLlxuICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgICBzY3JvbGxiYXItY29sb3I6IHJnYmEoNDAsIDQ2LCAxMDAsIDAuMjUpIHRyYW5zcGFyZW50O1xuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDhweDsgfVxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7IGJhY2tncm91bmQ6IHJnYmEoNDAsIDQ2LCAxMDAsIDAuMjUpOyBib3JkZXItcmFkaXVzOiA0cHg7IH1cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoNDAsIDQ2LCAxMDAsIDAuNCk7IH1cbn1cblxuLnVzZXItcHJvZmlsZS1kcm9wZG93biB7XG4gICAgLnVzZXItcHJvZmlsZS1idG4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvcnMuJHB1cnBsZS01MDA7XG4gICAgICAgIGNvbG9yOiBjb2xvcnMuJHB1cnBsZS01MDA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgaW1nLnByb2ZpbGUtcGljdHVyZSB7XG4gICAgICAgICAgICB3aWR0aDogMjlweDtcbiAgICAgICAgICAgIGhlaWdodDogMjlweDtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMS8xO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogY2FsYyhpbmZpbml0eSAqIDFweCk7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9maWxlLWNvbnRlbnQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogY29sb3JzLiRsaWdodC1wdXJwbGUtMTUwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnVzZXItcHJvZmlsZS1kZXRhaWxzIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgIC51c2VyLWNhcmQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAzMDFweDtcblxuICAgICAgICAgICAgLnVzZXItaW1hZ2Uge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG5cbiAgICAgICAgICAgICAgICBpbWcuaW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTI0cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTI0cHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnNldHRpbmdzLWljb24ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjBGMUYyO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IC04cHg7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLThweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC51c2VyLWluZm8ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICAgICAgLmluZm8tbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMjAyMTI0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5pbmZvLWVtYWlsIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICM2QjcyODA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4udHMtbG9hZC1sYXJnZSwgLnRzLWxvYWQtc3RhdHVzYmFyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwcHg7XG4gICAgbGVmdDogMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiA5OTk5O1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLS1pbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNSk7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuLnRzLWxvYWRlciwgLnRzLWxvYWRlcjphZnRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHdpZHRoOiAxMGVtO1xuICAgIGhlaWdodDogMTBlbTtcbn1cbi50cy1sb2FkZXIge1xuICAgIC8vIG1hcmdpbjogNjBweCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1pbmRlbnQ6IC05OTk5ZW07XG4gICAgYm9yZGVyLXRvcDogMS4xZW0gc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgIGJvcmRlci1yaWdodDogMS4xZW0gc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgIGJvcmRlci1ib3R0b206IDEuMWVtIHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICBib3JkZXItbGVmdDogMS4xZW0gc29saWQgI2ZmZmZmZjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogbG9hZDggMS4xcyBpbmZpbml0ZSBsaW5lYXI7XG4gICAgYW5pbWF0aW9uOiBsb2FkOCAxLjFzIGluZmluaXRlIGxpbmVhcjtcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBsb2FkOCB7XG4gICAgMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG5Aa2V5ZnJhbWVzIGxvYWQ4IHtcbiAgICAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cblxuLmZsYXNoLW1lc3NhZ2Uge1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDogMjRweDtcblxuICAgIC5hbGVydCB7XG4gICAgICAgIHBhZGRpbmc6IDhweCAyNHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgfVxufVxuXG4vLyBLd2FsaXRlaXRzbGFuZHNjaGFwwq4tbmF2LWl0ZW06IGhldCBsYW5nZSB3b29yZCArIMKuIHBhc3QgbsOpdCBuaWV0IGJpbm5lbiBLaW1zXG4vLyAyMDhweC1yYWlsIG9wIGRlIHN0YW5kYWFyZCAxNHB4IChsYWJlbCBlbGxpcHN0IOKGkiBkZSDCriB2ZXJkd2VlbikuIEFsbMOpw6luIGRpdFxuLy8gaXRlbSBlZW4gZnJhY3RpZSBrbGVpbmVyICsgc3RyYWtrZXIgZ2VzcGF0aWVlcmQgem9kYXQgXCJLd2FsaXRlaXRzbGFuZHNjaGFwwq5cIlxuLy8gdm9sbGVkaWcgemljaHRiYWFyIGlzOyBET00tZ2VtZXRlbiBwYXNzZW5kIG9wIDEyLjVweC8tMC4wMTVlbS4gW0phbiAyMDI2LTA3LTE3XVxucWRuYXByby1uYXYtaXRlbVtocmVmPVwiL3YxL2t3YWxpdGVpdHNsYW5kc2NoYXBcIl0gLm5hdi1pdGVtLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDE1ZW07XG59XG5cbi8vIFRpbnlNQ0UgKHFkbmFwcm8td3lzaXd5ZykgcmVuZGVycyBpdHMgbWVudS9kcm9wZG93biBwb3B1cHMgaW50byBhbiBhdXggc2lua1xuLy8gYXBwZW5kZWQgdG8gPGJvZHk+IGF0IGEgbG93IGRlZmF1bHQgei1pbmRleCAofjEzMDApLiBXaGVuIHRoZSBlZGl0b3Igc2l0c1xuLy8gaW5zaWRlIGEgcWRuYXByby1tb2RhbCAoYmFja2Ryb3Agei1pbmRleCA5MDAwLCBpbm5lciB1cCB0byA5MzAwKSB0aG9zZSBtZW51c1xuLy8gKEZvcm1hdCDihpIgVGV4dCBjb2xvciwgVGFibGUsIGV0Yy4pIGZhbGwgQkVISU5EIHRoZSBtb2RhbC4gTGlmdCB0aGUgc2luayBhYm92ZVxuLy8gZXZlcnkgbW9kYWwuIEdsb2JhbCDigJQgYXBwbGllcyB0byBldmVyeSB3eXNpd3lnLWluLW1vZGFsIChicmllZmluZy9pbnN0cnVjdGllcykuXG4vLyBbSmFuIDIwMjYtMDctMTddXG4udG94LnRveC1zaWx2ZXItc2luayxcbi50b3gtdGlueW1jZS1hdXgge1xuICAgIHotaW5kZXg6IDEwMDAwMCAhaW1wb3J0YW50O1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaW55TUNFLWJsYXV3IGVydWl0LCBvdmVyYWwuIFtLaW0gMDMuMDkuMjAyNjogXCJpbiB0aW55bWNlIHppdCBvdmVyYWwgZGV6ZVxuLy8gbGVsaWprZSBibGF1d2Uga2xldXIsIGthbiBqZSBkaXQgb3ZlcmFsIGZpeGVuP1wiXVxuLy9cbi8vIERlIG94aWRlLXNraW4gaGVlZnQgw4nDiU4gYWNjZW50a2xldXIsICMwMDZjZTcsIGVuIGdlYnJ1aWt0IGRpZSBvcCA0NSBwbGVra2VuOlxuLy8gaGV0IGdlbWFya2VlcmRlIG1lbnUtaXRlbSAoS2ltcyBzY2hlcm1hZmRydWspLCBkZSByYW5kIG9tIGhldCBzY2hyaWpmdmxhayxcbi8vIGRpYWxvb2drbm9wcGVuLCB2aW5ramVzLCB2ZWxkZm9jdXMsIHNjaHVpZmplcywgZm9jdXNyaW5nZW4gb3AgZWxrZSBrbm9wLlxuLy8gR2VlbiBlbmtlbGUgZGFhcnZhbiBpcyBlZW4gUUROQS1rbGV1ci4gSGllcm9uZGVyIHN0YWF0IGVsayB2YW4gZGllIHBsZWtrZW4sXG4vLyBnZXRlbGQgdWl0IGBub2RlX21vZHVsZXMvdGlueW1jZS9za2lucy91aS9veGlkZS9za2luLm1pbi5jc3NgICg3LjkuMyksIGluIGRlXG4vLyBodWlza2xldXIuIEFsbGVlbiBkZSBLTEVVUiB3aWp6aWd0OyB2b3JtLCBtYWF0IGVuIGdlZHJhZyBibGlqdmVuIHZhbiBkZSBza2luLlxuLy9cbi8vIFR3ZWUgZGluZ2VuIGRpZSBqZSBtb2V0IHdldGVuIHZvb3IgamUgaGllcmFhbiB3ZXJrdDpcbi8vXG4vLyAxLiBFbGtlIHNlbGVjdG9yIHN0YWF0IG9uZGVyIGVlbiB3b3J0ZWwgKGAudG94LnRveC10aW55bWNlYCBpbiBkZSBwYWdpbmEsXG4vLyAgICBgLnRveC50b3gtc2lsdmVyLXNpbmtgIC8gYC50b3gudG94LXRpbnltY2UtYXV4YCB2b29yIG1lbnUncyBlbiBkaWFsb2dlbixcbi8vICAgIGRpZSBUaW55TUNFIGxvcyBhYW4gZGUgPGJvZHk+IGhhbmd0KS4gRGF0IGlzIGdlZW4gc2llciBtYWFyIG5vb2R6YWFrOiBkZVxuLy8gICAgc2tpbiBwcmlrdCB6aWpuIHN0eWxlc2hlZXQgcGFzIGJpaiBpbml0IGluIGRlIDxoZWFkPiwgZHVzIE5BIHN0eWxlLXYxLmNzcyxcbi8vICAgIGVuIHdpbnQgYmlqIGdlbGlqa2Ugc3BlY2lmaWNpdGVpdCBvcCB2b2xnb3JkZS4gTWV0IGRlIHdvcnRlbCBlcmJpaiBpcyBlbGtlXG4vLyAgICByZWdlbCBoaWVyIMOpw6luIGtsYXNzZSB6d2FhcmRlciBkYW4gemlqbiBvcmlnaW5lZWwuXG4vL1xuLy8gMi4gRGl0IGhvb3J0IGluIGBjb21wb25lbnRzL3YyL3d5c2l3eWcvX3d5c2l3eWcuc2Nzc2AsIG1hYXIgZGF0IGJlc3RhbmQgd29yZHRcbi8vICAgIGRvb3IgR0VFTiBFTktFTEUgYnVuZGVsIGdlw69tcG9ydGVlcmQgKGhldCBvbnRicmVla3QgaW5cbi8vICAgIGNvbXBvbmVudHMvY29tcG9uZW50cy5zY3NzIHNpbmRzIGRlIG1hcHBlbnZlcmh1aXppbmcsIGNvbW1pdCAwM2E3ZTU1YzI7XG4vLyAgICBnZW1ldGVuOiAwIHRyZWZmZXJzIG9wIGAudG94LXRidG4tLXNlbGVjdGAgaW4gc3R5bGUtdjEuY3NzKS4gWm9sYW5nIGRhdCB6b1xuLy8gICAgaXMgZHJhYWl0IGRlIGVkaXRvciBvdmVyYWwgb3AgZGUga2FsZSBza2luIGVuIGlzIERJVCBkZSBwbGVrIGRpZSBsYWFkdC5cbi8vICAgIExldCBvcDogb29rIG3DqXQgZGF0IGJlc3RhbmQgYWFuIHpvdSBoZXQgbWVudS1pdGVtIGJsYXV3IEJMSUpWRU4g4oCUIGhldFxuLy8gICAgY29tcG9uZW50IHNjaHJpamZ0IGAudG94IC50b3gtY29sbGVjdGlvbl9faXRlbS0tYWN0aXZlYCAoMC0yLTApIGVuIGRlIHNraW5cbi8vICAgIGAudG94IC50b3gtY29sbGVjdGlvbi0tbGlzdCAudG94LWNvbGxlY3Rpb25fX2l0ZW0tLWFjdGl2ZTpub3QoLi4uKWBcbi8vICAgICgwLTQtMCkuIERpdCBibG9rIGJsaWpmdCBkdXMgaG9lIGRhbiBvb2sgbm9kaWcuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi50b3gudG94LXRpbnltY2UsXG4udG94LnRveC1zaWx2ZXItc2luayxcbi50b3gudG94LXRpbnltY2UtYXV4IHtcblxuICAgIC8vIC0tLSBNZW51J3M6IGhldCBnZW1hcmtlZXJkZSBpdGVtIHdhcyBlZW4gdm9sIGJsYXV3IHZsYWsgbWV0IHdpdHRlIHRla3N0LlxuICAgIC8vIExhdmVuZGVsIG1ldCBwYWFyc2UgdGVrc3QsIHpvYWxzIGVsayBhbmRlciBRRE5BLW1lbnUuIEhldCB2aW5ramUgdm9sZ3RcbiAgICAvLyBjdXJyZW50Q29sb3IgZW4gd29yZHQgZHVzIHZhbnplbGYgcGFhcnMuXG4gICAgLnRveC1jb2xsZWN0aW9uLS1saXN0IC50b3gtY29sbGVjdGlvbl9faXRlbS0tYWN0aXZlOm5vdCgudG94LWNvbGxlY3Rpb25fX2l0ZW0tLXN0YXRlLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYmctc2Vjb25kYXJ5LXB1cnBsZSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgfVxuICAgIC50b3gtY29sbGVjdGlvbi0tZ3JpZCAudG94LWNvbGxlY3Rpb25fX2l0ZW0tLWFjdGl2ZTpub3QoLnRveC1jb2xsZWN0aW9uX19pdGVtLS1zdGF0ZS1kaXNhYmxlZCk6Zm9jdXM6OmFmdGVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWMtYnJhbmQtcHVycGxlKSBpbnNldDtcbiAgICB9XG4gICAgLnRveC1jb2xsZWN0aW9uLS10b29sYmFyIC50b3gtY29sbGVjdGlvbl9faXRlbS0tYWN0aXZlOm5vdCgudG94LWNvbGxlY3Rpb25fX2l0ZW0tLXN0YXRlLWRpc2FibGVkKTpmb2N1czo6YWZ0ZXIge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIH1cbiAgICAudG94LWltYWdlLXNlbGVjdG9yLW1lbnUgLnRveC1jb2xsZWN0aW9uX19pdGVtLWNoZWNrbWFyayBzdmcgcGF0aCB7XG4gICAgICAgIGZpbGw6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICAgICAgc3Ryb2tlOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgfVxuXG4gICAgLy8gLS0tIFJhbmQgb20gaGV0IHNjaHJpamZ2bGFrLiBCbGlqZnQgc3RhYW4gKGhldCBpcyBoZXQgZW5pZ2UgZm9jdXNzaWduYWFsXG4gICAgLy8gZGF0IGhldCBzY2hyaWpmdmxhayB6ZWxmIGhlZWZ0KSwgbWFhciBkdW5uZXIgZW4gaW4gZGUgaHVpc2tsZXVyLlxuICAgIC50b3gtZWRpdC1hcmVhOjpiZWZvcmUge1xuICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDNweCB2YXIoLS1jLWFjdGlvbi0yNSk7XG4gICAgfVxuXG4gICAgLy8gLS0tIEtub3BwZW4gaW4gZGlhbG9nZW4gKE9wc2xhYW4sIEludm9lZ2VuKS5cbiAgICAudG94LWJ1dHRvbixcbiAgICAudG94LWJ1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIH1cbiAgICAudG94LWJ1dHRvbjo6YmVmb3JlIHtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4ICNmZmYsIDAgMCAwIDJweCB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgfVxuICAgIC50b3gtbmFrZWQtYnRuIHsgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTsgfVxuXG4gICAgLy8gLS0tIEFhbmtydWlzdmFramVzLlxuICAgIC50b3gtY2hlY2tib3hfX2ljb25zIC50b3gtY2hlY2tib3gtaWNvbl9fY2hlY2tlZCBzdmcsXG4gICAgLnRveC1jaGVja2JveF9faWNvbnMgLnRveC1jaGVja2JveC1pY29uX19pbmRldGVybWluYXRlIHN2ZyB7XG4gICAgICAgIGZpbGw6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICB9XG4gICAgaW5wdXQudG94LWNoZWNrYm94X19pbnB1dDpmb2N1cyArIC50b3gtY2hlY2tib3hfX2ljb25zIHtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICB9XG5cbiAgICAvLyAtLS0gSW52b2VydmVsZGVuIGluIGRpYWxvZ2VuOiAxcHggYmxhdXdlIGdsb2VkIHdvcmR0IGRlIHFkbmFwcm8taW5wdXQtXG4gICAgLy8gZ2xvZWQgKHBhYXJzZSByYW5kICsgM3B4IGFjdGlvbi0yNSByaW5nKS5cbiAgICAudG94LWN1c3RvbS1lZGl0b3I6Zm9jdXMtd2l0aGluLFxuICAgIC50b3gtZm9jdXNhYmxlLXdyYXBwZXI6Zm9jdXMsXG4gICAgLnRveC1saXN0Ym94ZmllbGQgLnRveC1saXN0Ym94LS1zZWxlY3Q6Zm9jdXMsXG4gICAgLnRveC10ZXh0YXJlYS13cmFwOmZvY3VzLXdpdGhpbixcbiAgICAudG94LXRleHRhcmVhOmZvY3VzLFxuICAgIC50b3gtdGV4dGZpZWxkOmZvY3VzLFxuICAgIC50b3gtdG9vbGJhci10ZXh0ZmllbGQ6Zm9jdXMsXG4gICAgLnRveC1zZWxlY3RmaWVsZCBzZWxlY3Q6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHZhcigtLWMtYWN0aW9uLTI1KTtcbiAgICB9XG4gICAgLnRveC1jb2xvci1pbnB1dCBzcGFuOmZvY3VzOm5vdChbYXJpYS1kaXNhYmxlZD1cInRydWVcIl0pLFxuICAgIC50b3gtY29sb3ItaW5wdXQgc3Bhbjpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIH1cbiAgICAudG94LWRpYWxvZ19fYm9keS1uYXYtaXRlbTpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjQsIDczLCAxNTQsIDAuMDgpO1xuICAgIH1cblxuICAgIC8vIC0tLSBGb2N1c3JpbmdlbiBvcCBrbm9wcGVuLCBtZW51YmFsaywgc3RhdHVzYmFsayBlbiBnZXRhbHZlbGRlbi5cbiAgICAudG94LXRidG46Zm9jdXM6OmFmdGVyLFxuICAgIC50b3gtdGJ0bi0tZW5hYmxlZDpmb2N1czo6YWZ0ZXIsXG4gICAgLnRveC1tYnRuOmZvY3VzOm5vdCg6ZGlzYWJsZWQpOjphZnRlcixcbiAgICAudG94LXNwbGl0LWJ1dHRvbjpmb2N1czo6YWZ0ZXIsXG4gICAgLnRveC1udW1iZXItaW5wdXQ6Zm9jdXM6OmFmdGVyLFxuICAgIC50b3gtbnVtYmVyLWlucHV0IC50b3gtaW5wdXQtd3JhcHBlcjpmb2N1czo6YWZ0ZXIsXG4gICAgLnRveC1udW1iZXItaW5wdXQgLnRveC1pbnB1dC13cmFwcGVyOmhhcyhpbnB1dDpmb2N1cyk6OmFmdGVyLFxuICAgIC50b3gtbnVtYmVyLWlucHV0IGJ1dHRvbjpmb2N1czo6YWZ0ZXIsXG4gICAgLnRveC1zdGF0dXNiYXIgYTpmb2N1cy12aXNpYmxlOjphZnRlcixcbiAgICAudG94LXN0YXR1c2Jhcl9fcGF0aC1pdGVtOmZvY3VzLXZpc2libGU6OmFmdGVyLFxuICAgIC50b3gtc3RhdHVzYmFyX193b3JkY291bnQ6Zm9jdXMtdmlzaWJsZTo6YWZ0ZXIsXG4gICAgLnRveC1zdGF0dXNiYXJfX3Jlc2l6ZS1oYW5kbGU6Zm9jdXMtdmlzaWJsZTo6YWZ0ZXIge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIH1cbiAgICAudG94LW5hdm9iai1ib3JkZXJlZC1mb2N1cy50b3gtbmF2b2JqLWJvcmRlcmVkOjpiZWZvcmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICB9XG4gICAgLnRveC1ub3RpZmljYXRpb246Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICB9XG5cbiAgICAvLyAtLS0gVGFiZWxraWV6ZXIsIHNjaHVpZmplcyBlbiBkZSBsYWFkc3Bpbm5lci5cbiAgICAudG94LWluc2VydC10YWJsZS1waWNrZXIgLnRveC1pbnNlcnQtdGFibGUtcGlja2VyX19zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICB9XG4gICAgLnRveC1zbGlkZXJfX2hhbmRsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZS1wcmVzcyk7XG4gICAgfVxuICAgIC50b3gtdG9vbGJhci1zbGlkZXJfX2lucHV0Ojotd2Via2l0LXNsaWRlci10aHVtYiB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTsgfVxuICAgIC50b3gtdG9vbGJhci1zbGlkZXJfX2lucHV0OjotbW96LXJhbmdlLXRodW1iIHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpOyB9XG4gICAgLnRveC10b29sYmFyLXNsaWRlcl9faW5wdXQ6Zm9jdXM6Oi13ZWJraXQtc2xpZGVyLXRodW1iLFxuICAgIC50b3gtdG9vbGJhci1zbGlkZXJfX2lucHV0OmZvY3VzOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4ICNmZmYsIDAgMCAwIDJweCB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgfVxuICAgIC50b3gtaW1hZ2Utc2VsZWN0b3ItbG9hZGluZy1zcGlubmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbiAgICAvLyAtLS0gWmVsZGVuIGluIGJlZWxkLCBtYWFyIGRlemVsZmRlIGtsZXVyOiBoZXQgdG9lZ2Fua2VsaWpraGVpZHNwYW5lZWwsXG4gICAgLy8gb3BtZXJraW5nZW4gZW4gaGV0IHByb21vdGllYmxvayB2YW4gVGlueU1DRSB6ZWxmLlxuICAgIC50b3gtZGlhbG9nX19ib2R5LWNvbnRlbnQgLmFjY2Vzc2liaWxpdHktaXNzdWUtLWluZm8gLnRveC1mb3JtX19ncm91cCBoMiB7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7IH1cbiAgICAudG94LWRpYWxvZ19fYm9keS1jb250ZW50IC5hY2Nlc3NpYmlsaXR5LWlzc3VlLS1pbmZvIC50b3gtaWNvbi5hY2Nlc3NpYmlsaXR5LWlzc3VlX19pY29uIHN2ZyB7IGZpbGw6IHZhcigtLWMtYnJhbmQtcHVycGxlKTsgfVxuICAgIC50b3gtZGlhbG9nX19ib2R5LWNvbnRlbnQgLmFjY2Vzc2liaWxpdHktaXNzdWUtLWluZm8gYS50b3gtYnV0dG9uLS1uYWtlZC50b3gtYnV0dG9uLS1pY29uIHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpOyB9XG4gICAgLnRveC1jb21tZW50LnRveC1jb21tZW50LS1zZWxlY3RlZDpmb2N1cyB7IGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUpOyB9XG4gICAgLnRveC1jb21tZW50LnRveC1jb21tZW50LS1zZWxlY3RlZCAudG94LWNvbW1lbnRfX3NpbmdsZTpmb2N1czo6YWZ0ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTsgfVxuICAgIC50b3gtcHJvbW90aW9uLWRpYWxvZyAudG94LXByb21vdGlvbi1kaWFsb2ctcGx1Z2luLS1pY29uIHsgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTsgfVxuICAgIC50b3gtcHJvbW90aW9uLWRpYWxvZy0tZXhwbG9yZSBhIHsgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTsgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEFib3V0IFFETkEgUHJvIOKAlCBjb250ZW50IG9mICNhYm91dC1xZG5hLW1vZGFsIChiYXNlLmh0bWwpLCBvcGVuZWQgZnJvbSB0aGVcbi8vIHZlcnNpb24gYmxvY2sgYXQgdGhlIGJvdHRvbSBvZiB0aGUgbmF2IHJhaWwuIFtKYW4gMjAyNi0wNy0yNF1cbi8vXG4vLyBPbmx5IHRoZSBtb2RhbCdzIENPTlRFTlQgaXMgc3R5bGVkIGhlcmUg4oCUIHRoZSBzaGVsbCAoYmFja2Ryb3AsIGhlYWRlciB3aXRoXG4vLyB0aXRsZSArIGNsb3NlLVgsIHNpemluZywgZGlzbWlzcykgaXMgdGhlIHFkbmFwcm8tbW9kYWwgY29tcG9uZW50J3Mgb3duLlxuLy8gQ29sb3VycyBhcmUgdGhlIGhvdXNlIHRva2VucyB0aGUgcmVzdCBvZiB0aGUgYXBwIGFscmVhZHkgdXNlcyAoYnJhbmQgIzQwNDk5YSxcbi8vIGxhdmVuZGVyICNlZGVlZmIsIGhhaXJsaW5lICNlMmUyZjAsIGluayAjMjMyNTNhLCBtdXRlZCAjNmI2ODg0KS5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmFib3V0LXFkbmEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMThweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5hYm91dC1xZG5hX19jcm93biB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xufVxuLmFib3V0LXFkbmFfX2xvY2t1cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgZ2FwOiA5cHg7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG59XG4vLyBUaGUgY29tcG9uZW50IGxpYnJhcnkgaGFzIGEgUUROQSB3b3JkbWFyayBidXQgbm8gXCJRRE5BIFByb1wiIGxvY2t1cCwgc28gXCJQcm9cIlxuLy8gaXMgdHlwZXNldCBhbG9uZ3NpZGUgaXQuIFN3YXAgYm90aCBmb3IgdGhlIHJlYWwgbG9ja3VwIGlmIG9uZSBldmVyIHNoaXBzLlxuLmFib3V0LXFkbmFfX3BybyB7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG59XG4uYWJvdXQtcWRuYV9fdGFnbGluZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGNvbG9yOiAjNmI2ODg0O1xufVxuXG4vLyBWZXJzaW9uIGlzIHRoZSBoZXJvOiB0aGUgb25lIHRoaW5nIGFueW9uZSBhY3R1YWxseSBvcGVucyB0aGlzIGRpYWxvZyBmb3IuXG4uYWJvdXQtcWRuYV9fdmVyc2lvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgZ2FwOiAxMHB4O1xufVxuLmFib3V0LXFkbmFfX251bSB7XG4gICAgZm9udC1zaXplOiAzOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICMyMzI1M2E7XG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbn1cbi5hYm91dC1xZG5hX19jaGFubmVsIHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgMC4xMCk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgcGFkZGluZzogNHB4IDlweDtcbn1cblxuLmFib3V0LXFkbmFfX2dyaWQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgYmFja2dyb3VuZDogI2Y3ZjdmYjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlMmYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgID4gZGl2IHtcbiAgICAgICAgcGFkZGluZzogMTFweCA4cHggMTJweDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTJlMmYwO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICAgID4gZGl2OmZpcnN0LWNoaWxkIHsgYm9yZGVyLWxlZnQ6IDA7IH1cblxuICAgIGR0IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgNHB4O1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA3ZW07XG4gICAgICAgIGNvbG9yOiAjOGE4ZmI1O1xuICAgIH1cbiAgICBkZCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBjb2xvcjogIzIzMjUzYTtcbiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxufVxuXG4uYWJvdXQtcWRuYV9fYWN0aW9ucyBxZG5hcHJvLWljb24geyBtYXJnaW4tcmlnaHQ6IDZweDsgfVxuXG4uYWJvdXQtcWRuYV9fY29udGFjdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcblxuICAgIGEge1xuICAgICAgICBjb2xvcjogIzQwNDk5YTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgICAgICY6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgIH1cbn1cbi5hYm91dC1xZG5hX19kb3QgeyBjb2xvcjogI2MzYzNkNjsgfVxuXG4uYWJvdXQtcWRuYV9fZm9vdGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nLXRvcDogMTZweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2UyZTJmMDtcbn1cbi5hYm91dC1xZG5hX19ieSAgICB7IG1hcmdpbjogMDsgZm9udC1zaXplOiAxMi41cHg7IGNvbG9yOiAjNmI2ODg0OyB9XG4uYWJvdXQtcWRuYV9fY29weSAgeyBtYXJnaW46IDAgMCA2cHg7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6ICM4YThmYjU7IH1cbi5hYm91dC1xZG5hX19leWVicm93IHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA5ZW07XG4gICAgY29sb3I6ICM4YThmYjU7XG59XG5cbi8vIENlcnRpZmljYXRpb24gYXJ0d29yayBpcyB0cmFkZW1hcmstY29udHJvbGxlZCDigJQgbmV2ZXIgcmVjb2xvdXJlZCwgbmV2ZXJcbi8vIHRoZW1lZCDigJQgc28gaXQgYWx3YXlzIHNpdHMgb24gaXRzIG93biBsaWdodCBwbGF0ZS4gQWxsIGZvdXIgUE5HcyBhcmUgY3JvcHBlZFxuLy8gdG8gYW4gaWRlbnRpY2FsIGhlaWdodC9yYXRpbyAod2ViL2ltZy9jZXJ0aWZpY2F0aW9ucy8pLCBzbyBPTkUgY3NzIGhlaWdodFxuLy8gcmVuZGVycyBmb3VyIG9wdGljYWxseSBlcXVhbCBtYXJrcy5cbi5hYm91dC1xZG5hX19wbGF0ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMThweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNmU3ZjI7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE4cHg7XG5cbiAgICBpbWcgeyBoZWlnaHQ6IDU4cHg7IHdpZHRoOiBhdXRvOyBkaXNwbGF5OiBibG9jazsgfVxufVxuLmFib3V0LXFkbmFfX3N0YW5kYXJkcyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGNvbG9yOiAjOGE4ZmI1O1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1MjBweCkge1xuICAgIC5hYm91dC1xZG5hX19wbGF0ZSB7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4O1xuXG4gICAgICAgIGltZyB7IGhlaWdodDogNDRweDsgfVxuICAgIH1cbn1cbiIsIi5kZWZhdWx0LW92ZXJ2aWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgIC8vIFdhcyBgY2FsYygxMDB2aCArIDEwMHB4KWAg4oCUIGEgbGVnYWN5IGhhY2sgdGhhdCByZXNlcnZlZCAxMDBweCBBQk9WRVxuICAgIC8vIHZpZXdwb3J0LCB3aGljaCBjb21iaW5lZCB3aXRoIHRoZSA1NnB4IHN0aWNreSBuYXZiYXIgZ2F2ZSBldmVyeVxuICAgIC8vIC5kZWZhdWx0LW92ZXJ2aWV3IHBhZ2UgYSAxNTZweCBib2R5IG92ZXJzaG9vdCAodmlzaWJsZSBzY3JvbGwgYmFyLFxuICAgIC8vIG5hdmJhciB3b3VsZCBhcHBlYXIgdG8gc2Nyb2xsIG9mZi1zY3JlZW4gYXMgdGhlIHVzZXIgcmVhY2hlZCB0aGVcbiAgICAvLyBib3R0b20gb2YgYm9keSkuIENvbnN0cmFpbmVkIHRvIFwidmlld3BvcnQgbWludXMgbmF2YmFyXCIgc28gdGhlXG4gICAgLy8gb3ZlcnZpZXcgZml0cyBleGFjdGx5IG9uZSBzY3JlZW4gYW5kIHNjcm9sbHMgaW50ZXJuYWxseSB2aWFcbiAgICAvLyBvdmVyZmxvdy15OiBhdXRvLiAoS2ltIDIwMjYtMDYtMDcuKVxuICAgIGhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLXFkbmEtdG9wYmFyLWgpKTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG5cbiAgICAub3ZlcnZpZXctcGFuZWwtbGVmdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBtYXJnaW46IDBweCA4cHggMHB4IDBweDtcbiAgICB9XG5cbiAgICAub3ZlcnZpZXctcGFuZWwtY2VudGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAgICAgIGZsZXg6IDM7XG5cbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgfVxuXG4gICAgPiAub3ZlcnZpZXctaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiByb3c7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcblxuICAgICAgICAvLyBUaGUgdGlsZSBzZWFyY2ggb24gYSBjYXJkLW9ubHkgaHViIChTdGFtZGF0YSkuIEl0IGlzIHRoZSBvbmx5IHRoaW5nIGluXG4gICAgICAgIC8vIHRoaXMgaGVhZGVyIHRoZXJlLCBzbyBpdCBpcyBwdXNoZWQgdG8gdGhlIHJpZ2h0IGVkZ2Ugd2l0aCBhdXRvIG1hcmdpblxuICAgICAgICAvLyByYXRoZXIgdGhhbiBieSBhIGp1c3RpZnktY29udGVudCBvbiB0aGUgaGVhZGVyIGl0c2VsZiwgd2hpY2ggd291bGQgbW92ZVxuICAgICAgICAvLyB0aGUgbGVmdC9jZW50ZXIgcGFuZWxzIG9uIGV2ZXJ5IG90aGVyIG92ZXJ2aWV3LiBTYW1lIDM0MHB4IGFzIHRoZVxuICAgICAgICAvLyBJbnN0ZWxsaW5nZW4gaHViIGFuZCBQcm9qZWN0ZW46IGEgc2VhcmNoIHRoYXQgZ3Jvd3Mgd2l0aCB0aGUgdmlld3BvcnRcbiAgICAgICAgLy8gcmVhZHMgYXMgYSBmb3JtIGZpZWxkIGJ5IHRoZSB0aW1lIHlvdSBhcmUgb24gYSAyNyBpbmNoIHNjcmVlbi5cbiAgICAgICAgLy8gW0tpbSAzMS4wOC4yMDI2XVxuICAgICAgICA+ICNoZWFkZXItcGMtY2FyZC1zZWFyY2gge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcblxuICAgICAgICAgICAgPiAub3ZlcnZpZXctY2FyZC1zZWFyY2hfX2lucHV0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzQwcHg7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiAjaGVhZGVyLXBhbmVsLWxlZnQge1xuICAgICAgICAgICAgZ2FwOiAxNnB4O1xuXG4gICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOjRweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiAjaGVhZGVyLXBsLW9wdGlvbnMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1mbG93OiByb3c7XG5cbiAgICAgICAgICAgICAgICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+ICNoZWFkZXItcGFuZWwtbGVmdC5oaWRkZW4tY29udGVudCB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gI2hlYWRlci1wYW5lbC1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG5cbiAgICAgICAgICAgID4gI2hlYWRlci1wYy1mdW5jdGlvbnMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleDogMCAwO1xuICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogcm93O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8vIHZlcnRpY2FsbHkgY2VudGVyIHRoZSBvcHRpb24gYnV0dG9ucyB3aXRoIHRoZSBzZWFyY2ggYm94XG4gICAgICAgICAgICAgICAgZ2FwOiA0cHg7ICAgICAgICAgICAgIC8vIHNpdCBhIHRvdWNoIGNsb3NlciB0byB0aGUgc2VhcmNoIGJveFxuXG4gICAgICAgICAgICAgICAgPiAjaGVhZGVyLXBjLXNlYXJjaCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogcm93O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgID4gI2hlYWRlci1wYy1vcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1mbG93OiByb3c7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuXG4gICAgICAgICAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIEFkdmFuY2VkLXNlYXJjaCB0b2dnbGU6IHNsaWdodGx5IGxhcmdlciBpY29uIChKYW4pLlxuICAgICAgICAgICAgICAgICAgICA+ICNoZWFkZXItcGMtYnRuLWFkdmFuY2VkLXNlYXJjaCAuYnRuLWljb24tcHJlZml4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiAjaGVhZGVyLXBjLWZpbHRlcnMge1xuICAgICAgICAgICAgICAgIGdhcDogOHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiAub3ZlcnZpZXctYm9keSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogcm93O1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMDtcblxuICAgICAgICAvLyBMZWZ0XG4gICAgICAgID4gI2JvZHktcGFuZWwtbGVmdCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtOXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogOHB4O1xuXG4gICAgICAgICAgICA+ICNib2R5LXBsLXNlYXJjaCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWZsb3c6IHJvdztcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHg7XG5cbiAgICAgICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiAjYm9keS1wbC1ub25lIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDhweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBociB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC13aWR0aDogMnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICNEOURCRUI7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAycHggYXV0byAwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDk0JTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiAjYm9keS1wbC1kYXRhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgICAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgICAgIC5ib2R5LXBsLWRhdGEtcmVjb3JkIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1mbG93OiByb3c7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA2cHggMTJweCA2cHggMHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgICAgICAgICA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5ib2R5LXBsLWRhdGEtcmVjb3JkOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0YwRjFGMjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYm9keS1wbC1kYXRhLXJlY29yZC5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjBGMUYyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENlbnRlclxuICAgICAgICA+ICNib2R5LXBhbmVsLWNlbnRlciB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAgICAgICAgID4gI2JvZHktcGMtaGVhZGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgICAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweDtcblxuICAgICAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1mbG93OiByb3c7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA0cHg7XG5cbiAgICAgICAgICAgICAgICAgICAgLmJvZHktcGMtaGVhZGVyLW9wdGlvbi1ncm91cCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1mbG93OiByb3c7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcblxuICAgICAgICAgICAgICAgICAgICAgICAgPiAjYnRuLXBjLWhlYWRlci1vcHRpb25zLWFkZC1leGlzdGluZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAuYm9keS1wYy1oZWFkZXItY2hlY2tlZC1vcHRpb24tZ3JvdXAge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogcm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG5cbiAgICAgICAgICAgICAgICAgICAgICAgID4gcWRuYS1sYWJlbCNsYmwtY2hlY2tlZC1vcHRpb25zLWNvdW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAjYm9keS1wYy1oZWFkZXItb3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgID4gLmJvZHktcGMtaGVhZGVyLW9wdGlvbi1ncm91cDpub3QoOm9ubHktY2hpbGQpOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICNib2R5LXBjLWhlYWRlci1jaGVja2VkLW9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gI2JvZHktcGMtZGF0YSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAgICAgPiB0YWJsZSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1zcGFjaW5nOiAwIDFweDtcblxuICAgICAgICAgICAgICAgICAgICA+IHRoZWFkID4gdHIgPiB0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0RBREFEQTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDRweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1mbG93OiByb3c7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA+IHRib2R5ID4gdHIgPiB0ZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgID4gdGJvZHkgPiB0cjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjBGMUYyO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICA+IHRkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjBGMUYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPiAubG9hZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAxNnB4IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibGFjaztcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb246IHJvdGF0aW9uIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAa2V5ZnJhbWVzIHJvdGF0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgMCUgICB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gICAgICAgICAgICAgICAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUYWJsZSB2aWV3IOKAlCB3aGl0ZSBiYWNrZ3JvdW5kIG9uIGhlYWRlciBhbmQgZGF0YSBhcmVhXG4gICAgICAgICAgICAmLnRhYmxlLXZpZXcge1xuICAgICAgICAgICAgICAgID4gI2JvZHktcGMtaGVhZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweCA4cHggMCAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgID4gI2JvZHktcGMtZGF0YSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgOHB4IDhweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIENhcmQgdmlldyAodG9nZ2xlZCBvciBvbmx5KSDigJQgdHJhbnNwYXJlbnQsIGNhcmRzIGhhbmRsZSB0aGVpciBvd24gYmdcbiAgICAgICAgICAgICY6bm90KC50YWJsZS12aWV3KSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgICAgICA+ICNib2R5LXBjLWhlYWRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiAub3ZlcnZpZXctZm9vdGVyIHtcbiAgICAgICAgLy8gUG9zaXRpb24gb25seSDigJQgbGV0IHFkbmFwcm8tYWN0aW9uLWJhciBoYW5kbGUgaXRzIG93blxuICAgICAgICAvLyBiYWNrZ3JvdW5kLCBwYWRkaW5nLCBib3JkZXIsIGdhcCwgYW5kIHNoYWRvdy5cbiAgICAgICAgI2Zvb3Rlci1uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogNDhweDtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgIHotaW5kZXg6IDUwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udG90YWwtZGF0YSB7XG4gICAgcGFkZGluZy1ib3R0b206IDcwcHg7XG59XG5cbi5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxudGguY2hlY2tib3gge1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuXG4gICAgcWRuYS1pbnB1dCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5wYy1kYXRhLXRhYmxlLWNlbGwge1xuICAgICYuYmlnZ2VyIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwcHggMTZweCAwcHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBxZG5hLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgID4gZGl2IHtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxufVxuXG50YWJsZSNib2R5LXBjLWRhdGEtdGFibGUge1xuICAgIHRoZWFkIHRyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIHRib2R5IHRyW2RhdGEtaWRdIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbn1cblxuLmNyZWF0aW9uLXJvdyB7XG4gICAgcGFkZGluZzogOHB4O1xufVxuXG4uY3JlYXRpb24tcm93Omxhc3QtY2hpbGQge1xuICAgIHBhZGRpbmctYm90dG9tOiA0OHB4O1xufVxuXG4uaWQtY29sdW1uIHtcbiAgICB3aWR0aDogODJweDtcbn1cblxuLy8gQSB0aWxlIGZpbHRlcmVkIG91dCBieSB0aGUgc2VhcmNoLiBTcGVsbGVkIG91dCByYXRoZXIgdGhhbiBsZWFuaW5nIG9uIHRoZVxuLy8gdXNlci1hZ2VudCdzIG93biBbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmUgfTogdGhhdCBpcyBhIFVBIHJ1bGUgYW5kIGxvc2VzIHRvXG4vLyBxZG5hcHJvLWh1Yi10aWxlJ3Mgb3duIGBkaXNwbGF5OiBibG9ja2AsIHNvIHRoZSB0aWxlIHdvdWxkIHN0YXkgb24gc2NyZWVuIHdpdGhcbi8vIHRoZSBhdHRyaWJ1dGUgc2V0LiBTYW1lIGluc3VyYW5jZSB0aGUgSW5zdGVsbGluZ2VuIGh1YiB0YWtlcyBvbiBpdHMgY2VsbHMuXG4jYm9keS1wYy1kYXRhLWNhcmRzIHFkbmFwcm8taHViLXRpbGVbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gVGhlIFwibm90aGluZyBtYXRjaGVkXCIgbWVzc2FnZSB1bmRlciB0aGUgZ3JpZCwgc2FtZSB0d28gbGluZXMgYW5kIHRoZSBzYW1lIGxvb2tcbi8vIGFzIC5zZXR0aW5ncy1odWJfX2VtcHR5LlxuLm92ZXJ2aWV3LWNhcmQtc2VhcmNoLWVtcHR5IHtcbiAgICBwYWRkaW5nOiA0MHB4IDE2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm92ZXJ2aWV3LWNhcmQtc2VhcmNoLWVtcHR5W2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5vdmVydmlldy1jYXJkLXNlYXJjaC1lbXB0eV9fdGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xufVxuXG4jYm9keS1wYy1kYXRhLWNhcmRzLFxuI2RlZmF1bHQtb3ZlcnZpZXctb3B0aW9uc2JveCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyODBweCwgMWZyKSk7XG4gICAgZ2FwOiAxNnB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcbn1cblxuLy8gQSBodWIgb2YgQ09NUEFDVCB0aWxlcyAoY2FyZF9zaXplICdzJywgdG9kYXkgb25seSBTdGFtZGF0YSkgcGFja3MgdGlnaHRlci5cbi8vIEtpbSAzMS4wOC4yMDI2OiBcIm1pbnN0ZW5zIDQgcGVyIHJpalwiLiBUaGVyZSBpcyBubyB3YXkgdG8gcHJvbWlzZSBhIG51bWJlciB3aXRoXG4vLyBhdXRvLWZpbGwg4oCUIHRoZSBjb3VudCBmb2xsb3dzIHRoZSB3aWR0aCDigJQgc28gdGhlIHRyYWNrIG1pbmltdW0gaXMgdGhlIGtub2I6XG4vLyBhdCAyNDBweCBmb3VyIGNvbHVtbnMgbmVlZCAyNDAqNCArIDE2KjMgPSAxMDA4cHggb2YgZ3JpZCwgd2hpY2ggaXMgYWJvdXQgYVxuLy8gMTMwMHB4IHdpbmRvdyB3aXRoIHRoZSBzaWRlYmFyIG9wZW4sIGFuZCBmaXZlIGFwcGVhciBmcm9tIDEyNjRweC4gVGhlIG9sZFxuLy8gMjgwcHggYXNrZWQgZm9yIDExNjhweCBiZWZvcmUgaXQgZ2F2ZSBmb3VyLlxuLy9cbi8vIE5vdCBsb3dlciB0aGFuIHRoaXM6IGhhbGYgYSB0aWxlIGlzIG9uZSBjb3VudCwgYW5kIFwiNiBMb2NhdGllbGlqc3RlblwiIGF0IDExcHhcbi8vIG5lZWRzIHJvdWdobHkgOTVweC4gQmVsb3cgYSAyNDBweCB0cmFjayB0aGF0IHN0YXJ0cyBydW5uaW5nIGludG8gdGhlIGVsbGlwc2lzLlxuI2JvZHktcGMtZGF0YS1jYXJkcy5jYXJkcy1jb21wYWN0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyNDBweCwgMWZyKSk7XG59XG4vKiA9PT09PT09PT09ICBTaWRlLXBhbmVsIHNob3cvaGlkZSBhbmltYXRpb24gKEphbiAyMDI2LTA2LTE3KSAgPT09PT09PT09PVxuICAgVGhlIGxlZnQvcmlnaHQgb3ZlcnZpZXcgc2lkZSBwYW5lbHMgKFRlYW1zL0xvY2F0aWVzL1VuaXRzIGxpc3QpIGFyZSB0b2dnbGVkXG4gICB2aWEgdGhlIGAuaGlkZGVuYCBjbGFzcyAoZ2xvYmFsbHkgYGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50YCkuIFRvIG1ha2UgdGhlXG4gICBXSE9MRSByb3cgZmVlbCBmbHVpZCDigJQgcGFuZWwgQU5EIHRoZSBuZWlnaGJvdXJpbmcgbGlzdCBtb3ZpbmcgdG9nZXRoZXIg4oCUXG4gICB3ZSBkb24ndCBwb3AgdGhlIHBhbmVsIGluL291dCB3aXRoIGRpc3BsYXkuIEluc3RlYWQsIHVuZGVyIG5vLXByZWZlcmVuY2Ugd2VcbiAgIG92ZXJyaWRlIGAuaGlkZGVuYCB0byBrZWVwIHRoZSBwYW5lbCBpbiBmbG93IGF0IHplcm8gd2lkdGggYW5kIGFuaW1hdGUgaXRzXG4gICBgZmxleC1ncm93YCAoMOKGlDEpICsgb3BhY2l0eS4gQmVjYXVzZSB0aGUgcGFuZWwgYW5kIHRoZSBjZW50ZXIgbGlzdCBzaGFyZSBvbmVcbiAgIGZsZXggcm93LCB0aGUgYnJvd3NlciByZWRpc3RyaWJ1dGVzIHRoZSBmcmVlZC9jbGFpbWVkIHNwYWNlIGZyYW1lLWJ5LWZyYW1lLFxuICAgc28gdGhlIGxpc3QgZ2xpZGVzIHRvIGl0cyBuZXcgd2lkdGggaW5zdGVhZCBvZiBzbmFwcGluZy4gYG92ZXJmbG93OmhpZGRlbmBcbiAgIGNsaXBzIHRoZSBjb250ZW50IHdoaWxlIHRoZSBib3ggaXMgbmFycm93ZXIgdGhhbiBpdHMgY29udGVudDsgYG1pbi13aWR0aDowYFxuICAgKGFscmVhZHkgb24gdGhlIHBhbmVsKSBsZXRzIGl0IGNvbGxhcHNlIGZ1bGx5LiBUaGUgXCJoaWRkZW5cIiBwYW5lbCBzdGF5cyBhdFxuICAgMCB3aWR0aCAvIG9wYWNpdHkgMCAvIHBvaW50ZXItZXZlbnRzOm5vbmUg4oCUIHZpc3VhbGx5IGdvbmUsIG5vIGxheW91dCBjb3N0LlxuICAgVW5kZXIgYHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZWAgdGhpcyB3aG9sZSBibG9jayBpcyBza2lwcGVkLCBzbyB0aGVcbiAgIGdsb2JhbCBgLmhpZGRlbiB7IGRpc3BsYXk6bm9uZSB9YCBhcHBsaWVzIGFuZCB0aGUgdG9nZ2xlIGlzIGluc3RhbnQuICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcbiAgICAuZGVmYXVsdC1vdmVydmlldyB7XG4gICAgICAgIC5vdmVydmlldy1wYW5lbC1sZWZ0LFxuICAgICAgICAub3ZlcnZpZXctcGFuZWwtcmlnaHQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGZsZXgtZ3JvdyAyNjBtcyBlYXNlLCBvcGFjaXR5IDIwMG1zIGVhc2UsIG1hcmdpbiAyNjBtcyBlYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLm92ZXJ2aWV3LXBhbmVsLWxlZnQuaGlkZGVuLFxuICAgICAgICAub3ZlcnZpZXctcGFuZWwtcmlnaHQuaGlkZGVuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsgLyogYmVhdCBnbG9iYWwgLmhpZGRlbiB7IGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50IH0gKi9cbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQHVzZSAnLi4vLi4vbW9kdWxlcy9jb2xvcnMuc2Nzcyc7XG5AdXNlIFwic2Fzczpjb2xvclwiO1xuXG4kY29ybmZsb3dlckJsdWU6ICAgIzQwNDk5YTtcbiRtdXRlZC10ZXh0OiAgICAgICAjNzk3OTc5O1xuJHNpZGViYXItaGVhZGVyOiAgICRjb3JuZmxvd2VyQmx1ZTtcbiRjb2xvci1wcmltYXJ5OiAgICAkY29ybmZsb3dlckJsdWU7XG4kY29sb3ItZGFuZ2VyOiAgICAgJGNvcm5mbG93ZXJCbHVlO1xuJGJnLWRhc2hib2FyZEl0ZW06ICNlMWUxZTE7XG4kYmctaWNvbjogICAgICAgICAgIzQ2NDY0NjtcbiR0b29sYmFyLWJnOiAgICAgICAjNTU1O1xuJHRvb2xiYXItYm9yZGVyOiAgIGNvbG9yLmFkanVzdCgkdG9vbGJhci1iZywgJGxpZ2h0bmVzczogMjAlKTtcblxuJXNsaWNrLWFycm93IHtcbiAgICBmb250LXNpemU6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHotaW5kZXg6IDEwO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICAgICYuc2xpY2stZGlzYWJsZWQ6YmVmb3JlIHtcbiAgICAgICAgb3BhY2l0eTogLjI1O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCAyNHB4LzEgXCJNYXRlcmlhbCBEZXNpZ24gSWNvbnNcIjtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICB9XG59XG5cbiVoZWFkZXItZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZDogJGJnLWRhc2hib2FyZEl0ZW07XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHJnYmEoY29sb3JzLiRibGFjaywgLjIpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiV0c2EtZGFzaGJvYXJkLWl0ZW0ge1xuICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IC4yNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6ICRtdXRlZC10ZXh0O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IC41cztcbn1cblxuLnRzLWF1dG9tZXRyaWNzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDBweCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC50c2Etc2lkZWJhciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IC4yNXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgZmxleDogMCAwIDE1MHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDE1MHB4O1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCAyMDBweDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudHNhLW1haW4ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3JzLiR3aGl0ZTtcblxuICAgICAgICAudHNhLXRvb2xiYXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvb2xiYXItYmc7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgICAgICAgICBjb2xvcjogY29sb3JzLiR3aGl0ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgICAgICAgICAuc2xpY2stc2xpZGVyIHsgZGlzcGxheTogZmxleDsgfVxuXG4gICAgICAgICAgICAmLWdyb3VwIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC42MjVyZW07XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkgeyBib3JkZXItbGVmdDogMXB4IHNvbGlkICR0b29sYmFyLWJvcmRlcjsgfVxuXG4gICAgICAgICAgICAgICAgJi1pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogNnB4O1xuXG4gICAgICAgICAgICAgICAgICAgIC5jbGVhcmZpeCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLnNsaWNrLWZpeCB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogNHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi1pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpIHsgbWFyZ2luLWxlZnQ6IDhweDsgfVxuXG4gICAgICAgICAgICAmLWJ0biB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgY29sb3IuYWRqdXN0KCR0b29sYmFyLWJnLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci5hZGp1c3QoJHRvb2xiYXItYmcsICRsaWdodG5lc3M6IC02JSk7XG4gICAgICAgICAgICAgICAgY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogLjI1cmVtO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAuM3M7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogY29sb3IuYWRqdXN0KCR0b29sYmFyLWJnLCAkbGlnaHRuZXNzOiAtMTQlKTsgfVxuXG4gICAgICAgICAgICAgICAgJi1wcmltYXJ5IHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItcHJpbWFyeSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRob3Y6IGNvbG9yLmFkanVzdCgkY29sb3ItcHJpbWFyeSwgJGxpZ2h0bmVzczogLTQlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3YgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGhvdiAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1tb2RhbCB7XG5cdFx0Ji5tb2RhbCB7XG5cdFx0XHQubW9kYWwtY29udGVudCB7XG5cdFx0XHRcdHBhZGRpbmc6IDFyZW07XG5cdFx0XHR9XG5cdFx0XHQubW9kYWwtaGVhZGVyIHtcblx0XHRcdFx0Z2FwOiA4cHg7XG5cdFx0XHRcdHBhZGRpbmc6IDAgMCAwLjVyZW0gIWltcG9ydGFudDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0Lm1vZGFsLXRpdGxlIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDFyZW07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGltZy50cy1yb3VuZGVkIHsgXG5cdFx0XHRcdHdpZHRoOiAzNnB4O1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA4cHg7XG5cdFx0XHR9XG5cdFx0XHQubW9kYWwtYm9keSB7XG5cdFx0XHRcdC50YWJsZSB0ZCwgLnRhYmxlIHRoIHtcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0cGFkZGluZzogLjVyZW07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuZm9ybS1zZXR0aW5nLWZpZWxkIHtcblx0XHRcdFx0XHRwYWRkaW5nOiAwLjVyZW0gMHJlbTtcblx0XHRcdFx0XHRnYXA6IDAuNzVyZW07XG5cdFx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0XHRcdHdpZHRoOiA3NSU7XG5cdFx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdFx0XHRcdGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcblx0XHRcdFx0XHRcdHdpZHRoOiAxcmVtO1xuXHRcdFx0XHRcdFx0aGVpZ2h0OiAxcmVtO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Lm1vZGFsLWZvb3RlciB7XG5cdFx0XHRcdHBhZGRpbmc6IDAuNXJlbSAwIDAgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0XG5cdFx0XHQubW9kYWwtaWNvbiB7XG5cdFx0XHRcdHBhZGRpbmc6IDhweCAxNnB4O1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA4cHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi50c2EtdHlwZS1zZWxlY3RlZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGEgeyBtYXJnaW4tbGVmdDogOHB4OyB9XG5cbiAgICAmLWl0ZW0ge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB3aWR0aDogNzVweDtcbiAgICAgICAgaGVpZ2h0OiA3NXB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkIGNvbG9ycy4kYm9yZGVyLWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAgICAgaW1nICAgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7IH1cbiAgICAgICAgc3BhbiAgeyBmb250LXNpemU6IDExcHg7IH1cbiAgICB9XG59XG5cbi50c2EtdHlwZS1zZWxlY3RvciB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgY29sb3JzLiRib3JkZXItY29sb3I7XG4gICAgYmFja2dyb3VuZDogY29sb3IuYWRqdXN0KGNvbG9ycy4kd2hpdGUsICRsaWdodG5lc3M6IC00JSk7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBhZGRpbmc6IDEwcHg7XG5cbiAgICAmLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICYtY2F0IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGNvbG9ycy4kd2hpdGU7XG5cbiAgICAgICAgICAgICYtaGVhZGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2lkZWJhci1oZWFkZXI7XG4gICAgICAgICAgICAgICAgY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IC4yNXJlbTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtbGlzdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDAgMCAzMCU7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzAlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4zcztcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHggMTBweDtcblxuICAgICAgICAgICAgICAgICAgICAudHNhLWNoYXJ0dHlwZS1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAgICAgJi5hY3RpdmUgeyBiYWNrZ3JvdW5kOiBjb2xvci5hZGp1c3QoY29sb3JzLiR3aGl0ZSwgJGxpZ2h0bmVzczogLTQlKTsgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnRzYS1kYXNoYm9hcmQge1xuICAgIHBhZGRpbmc6IDE1cHggMTVweCAwO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4udHNhLWRhc2hib2FyZC10aGVtZXMge1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgd2lkdGg6IDUwJTtcblxuICAgICYtY29sb3Ige1xuICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAmOmZpcnN0LWNoaWxkIHsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogLjI1cmVtOyB9XG4gICAgICAgICY6bGFzdC1jaGlsZCAgeyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogLjI1cmVtOyB9XG4gICAgfVxuXG4gICAgLmNhcmQge1xuICAgICAgICBtYXgtd2lkdGg6IDIzLjY5OSU7XG4gICAgICAgIHdpZHRoOiAyMy42OTklO1xuICAgICAgICBtYXJnaW46IDVweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDFzO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCAgeyBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAgICAgJi5zZWxlY3RlZCAgICB7IGJveC1zaGFkb3c6IDAgMCAxMHB4IGNvbG9ycy4kbGlnaHQtZ3JleTsgfVxuICAgICAgICAmOmhvdmVyICAgICAgIHsgYm94LXNoYWRvdzogMCAwIDEwcHggY29sb3JzLiRzaGFkb3ctY29sb3I7IH1cbiAgICAgICAgJi1ib2R5ICAgICAgICB7IHBhZGRpbmc6IDA7IH1cbiAgICAgICAgJi1mb290ZXIge1xuICAgICAgICAgICAgcGFkZGluZzogMTBweCAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI2Rhc2hfY29sb3JzIHtcbiAgICAuY2hpbGRfY29sb3JzLFxuICAgIC51aS1zb3J0YWJsZS1wbGFjZWhvbGRlciB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB9XG4gICAgLnVpLXNvcnRhYmxlLXBsYWNlaG9sZGVyIHsgZmxvYXQ6IGxlZnQ7IH1cbiAgICAudWktc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYShjb2xvcnMuJHdoaXRlLCAuNSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoY29sb3JzLiR3aGl0ZSwgLjEpO1xuICAgIH1cbn1cblxuLnRzYS1kYXNoYm9hcmQtY29sb3Ige1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtc2l6ZTogMC42MjVyZW07XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgPiBhIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC0ycHg7XG4gICAgICAgIHJpZ2h0OiAtMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvcnMuJHdoaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMnB4O1xuICAgIH1cbn1cblxuLnRzYS1kYXNoYm9hcmQtdXNlciB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDE1MjBweCkge1xuICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgIH1cbn1cblxuLnRzYS1kYXNoYm9hcmQtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICBjb2xvcjogY29sb3JzLiR3aGl0ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgJi1sb2dvIHtcbiAgICAgICAgQGV4dGVuZCAlaGVhZGVyLWVsZW1lbnQ7XG4gICAgICAgIGhlaWdodDogNjBweDtcblx0XHRtaW4td2lkdGg6IDEwMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJjpob3ZlciAuYnRuLXRyLCAmOmhvdmVyIC5idG4tYnIgeyBvcGFjaXR5OiAxOyB9XG4gICAgfVxuXG4gICAgJi1jb2xvciB7XG4gICAgICAgIEBleHRlbmQgJWhlYWRlci1lbGVtZW50O1xuICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgfVxuXG4gICAgJi10aXRsZSB7XG4gICAgICAgIEBleHRlbmQgJWhlYWRlci1lbGVtZW50O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IC4yNXJlbTtcbiAgICAgICAgcGFkZGluZzogMzJweCAxNnB4O1xuXG4gICAgICAgICYtYm9sZCwgJi1pdGFsaWMge1xuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MDQ5OWE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDM1MHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgICAgICAgICAmOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1idG4ge1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBjb2xvcjogJG11dGVkLXRleHQ7XG4gICAgICAgIHRyYW5zaXRpb246IC4zcztcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuXG5cdFx0Ji5idG4tdHIsICYuYnRuLWJyIHtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0fVxuXHRcdFxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICRtdXRlZC10ZXh0O1xuXHRcdFx0YmFja2dyb3VuZDogY29sb3IuYWRqdXN0KCRiZy1kYXNoYm9hcmRJdGVtLCAkbGlnaHRuZXNzOiAtMTUlKTtcblx0XHR9XG4gICAgfVxufVxuXG4udHNhLWRhc2hib2FyZC10YWJzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3JzLiR3aGl0ZTtcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgIC50cy10YWJzIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIC5hY3RpdmUgYSB7IGJhY2tncm91bmQ6ICNmNWY1ZjU7IH1cbiAgICB9XG59XG5cbi50c2EtZGFzaGJvYXJkLWl0ZW0ge1xuICAgIEBleHRlbmQgJXRzYS1kYXNoYm9hcmQtaXRlbTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvcnMuJHdoaXRlO1xuICAgIHBhZGRpbmc6IDAgMTZweCAxNnB4O1xuXG4gICAgLnRzYS1ncm91cC1pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDhweDtcbiAgICAgICAgcmlnaHQ6IDhweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAmLXBsYWNlaG9sZGVyIHsgYm9yZGVyOiAycHggZGFzaGVkIGNvbG9ycy4kZ3JleTsgfVxuXG4gICAgJi1xdWVzdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG5cbiAgICAgICAgLnRzLWljb24geyBtYXJnaW4tcmlnaHQ6IDhweDsgfVxuXG4gICAgICAgIC50cy1yb3VuZGVkLWJvcmRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZWJlYmViO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZWJlYmViO1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yLmFkanVzdChjb2xvcnMuJGJsYWNrLCAkbGlnaHRuZXNzOiA0MCUpO1xuICAgICAgICAgICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi10eXBlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkIGNvbG9ycy4kYm9yZGVyLWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgcGFkZGluZzogNHB4IDE2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcblxuICAgICAgICAubWRpICB7IG1hcmdpbi1yaWdodDogMTZweDsgZm9udC1zaXplOiAyNHB4OyB9XG4gICAgICAgIHNwYW4gIHsgZmxleC1ncm93OiAxOyB9XG4gICAgfVxuXG4gICAgJi1lbXB0eSB7XG4gICAgICAgIEBleHRlbmQgJXRzYS1kYXNoYm9hcmQtaXRlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJGJnLWRhc2hib2FyZEl0ZW07XG4gICAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgID4gLm1kaSB7IGZvbnQtc2l6ZTogMzZweDsgfVxuXG4gICAgICAgIC50c2EtaXRlbS1pY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udHNhLWJ0biB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci5hZGp1c3QoJGJnLWljb24sICRsaWdodG5lc3M6IC0xMCUpO1xuICAgIGJhY2tncm91bmQ6ICRiZy1pY29uO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB0cmFuc2l0aW9uOiAuM3M7XG5cbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHsgbWFyZ2luLWxlZnQ6IDhweDsgfVxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogY29sb3JzLiR3aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3IuYWRqdXN0KCRiZy1pY29uLCAkbGlnaHRuZXNzOiAtNCUpO1xuICAgIH1cblxuICAgICYtZ3JwIHsgZGlzcGxheTogZmxleDsgfVxuXG4gICAgJi1wcmltYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItcHJpbWFyeSAhaW1wb3J0YW50O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICRob3Y6IGNvbG9yLmFkanVzdCgkY29sb3ItcHJpbWFyeSwgJGxpZ2h0bmVzczogLTQlKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3YgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGhvdiAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1kYW5nZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZGFuZ2VyICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLXByaW1hcnkgIWltcG9ydGFudDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAkaG92OiBjb2xvci5hZGp1c3QoJGNvbG9yLWRhbmdlciwgJGxpZ2h0bmVzczogLTQlKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3YgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGhvdiAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udHNhLWl0ZW0taWNvbiB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgdHJhbnNpdGlvbjogLjJzO1xuXG4gICAgJi1kYW5nZXIge1xuICAgICAgICBjb2xvcjogY29sb3JzLiRjb2xvci1kYW5nZXI7XG4gICAgICAgICY6aG92ZXIgeyBjb2xvcjogY29sb3IuYWRqdXN0KGNvbG9ycy4kY29sb3ItZGFuZ2VyLCAkbGlnaHRuZXNzOiAtNCUpICFpbXBvcnRhbnQ7IH1cbiAgICB9XG59XG5cbi50c2EtZHJhZy1oYW5kbGUsIC5lbGVtZW50LWRyYWctaGFuZGxlIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI2Rhc2hib2FyZC1jb2xvcnMsICNkYXNoYm9hcmQtdXNlcnMge1xuICAgIC5zbGljay1saXN0IHsgZmxleC1ncm93OiAxOyB9XG5cbiAgICAuc2xpY2stcHJldiB7XG4gICAgICAgIEBleHRlbmQgJXNsaWNrLWFycm93O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxGMTQxXCI7IH1cbiAgICB9XG4gICAgLnNsaWNrLW5leHQge1xuICAgICAgICBAZXh0ZW5kICVzbGljay1hcnJvdztcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICY6YmVmb3JlIHsgY29udGVudDogXCJcXEYxNDJcIjsgfVxuICAgIH1cbn1cblxuLnRzYS10b29sYmFyLWNvbG9ycyxcbi50c2EtdG9vbGJhci11c2VycyB7XG4gICAgLnNsaWNrLXByZXYge1xuICAgICAgICBAZXh0ZW5kICVzbGljay1hcnJvdztcbiAgICAgICAgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcRjE0MVwiOyB9XG4gICAgfVxuICAgIC5zbGljay1uZXh0IHtcbiAgICAgICAgQGV4dGVuZCAlc2xpY2stYXJyb3c7XG4gICAgICAgICY6YmVmb3JlIHsgY29udGVudDogXCJcXEYxNDJcIjsgfVxuICAgIH1cbn1cblxuLnRzYS1zbGlkZXItZ3JwIHsgZGlzcGxheTogZmxleDsgfVxuXG4udHNhLWNoYXJ0LWNvbG9ycywgLnRzYS1kYXNoYm9hcmQtdXNlcnMge1xuICAgIC50c2EtdG9vbGJhci1idG4tYWRkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCBjb2xvcnMuJHdoaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGNvbG9yOiBjb2xvcnMuJHdoaXRlO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4zcztcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuXG4gICAgICAgICY6aG92ZXIgIHsgYmFja2dyb3VuZDogcmdiYShjb2xvcnMuJHdoaXRlLCAuMSk7IH1cbiAgICAgICAgJjpmb2N1cyAgeyBvdXRsaW5lOiBub25lOyB9XG4gICAgfVxufVxuXG4udHNhLWRhc2hib2FyZC11c2VycyAudHNhLXRvb2xiYXItYnRuLWFkZCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDE1MjBweCkge1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgIH1cbn1cblxuLnRzYS1jaGFydHR5cGUtcHJldmlldyB7XG4gICAgcGFkZGluZzogMTJweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGltZyB7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdpbi1ib3R0b206IDRweDsgfVxuICAgIHAgICB7IG1hcmdpbi1ib3R0b206IDA7IGZvbnQtc2l6ZTogMTRweDsgfVxufVxuXG4uY2hhcnRfY29udGFpbmVyIHtcbiAgICAudWktc29ydGFibGUtcGxhY2Vob2xkZXIgeyBtaW4taGVpZ2h0OiAzMDBweDsgfVxuXG4gICAgLnVpLXN0YXRlLWhpZ2hsaWdodCB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCByZ2JhKDAsMCwwLDAuMik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC4xKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IC41cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnVpLXNvcnRhYmxlLWhlbHBlciAudHNhLWRhc2hib2FyZC1pdGVtIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDVweCByZ2JhKDAsMCwwLDAuMjUpO1xuICAgIH1cbn1cblxuI3RhYnMudWktd2lkZ2V0IHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAmLnVpLXdpZGdldC1jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59XG5cbi50c2EtdGFicyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnLWRhc2hib2FyZEl0ZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDRweCA4cHggMHB4IDhweDtcblxuICAgIC50YWItYWN0aW9ucyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA0cHg7XG4gICAgICAgIHJpZ2h0OiA0cHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgc3Bhbi5tZGkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvci1wcmltYXJ5O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5idG4tY2lyY2xlOmhvdmVyIHsgYmFja2dyb3VuZDogJGJnLWRhc2hib2FyZEl0ZW07IH1cblxuICAgIC51aS13aWRnZXQtaGVhZGVyIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgcGFkZGluZzogMHB4IDRweCAwcHggMHB4O1xuXG4gICAgICAgIC51aS1zdGF0ZS1kZWZhdWx0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuM3M7XG4gICAgICAgIH1cbiAgICAgICAgLnVpLXN0YXRlLWhvdmVyICB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsLjUpOyB9XG4gICAgICAgIC51aS10YWJzLWFuY2hvciAgeyBcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAyNHB4IDhweCAxNnB4OyBcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC51aS10YWJzLWFjdGl2ZSxcbiAgICAgICAgLnVpLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuICAgICAgICAgICAgPiBhIHsgY29sb3I6ICMzMzMgIWltcG9ydGFudDsgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnVpLXRhYnMtbmF2IHtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAmOmhvdmVyIC50YWItYWN0aW9ucyB7IG9wYWNpdHk6IDE7IHRyYW5zaXRpb246IG9wYWNpdHkgLjFzIC4yczsgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC51aS1jb3JuZXItdG9wLFxuICAgIC51aS1jb3JuZXItYWxsIHtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogLjVyZW07XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAuNXJlbTtcbiAgICB9XG5cbiAgICAuYnRuLWNpcmNsZSAgICAgICAgICB7IG1hcmdpbi10b3A6IC4zNzVyZW07IH1cbiAgICAudHNhLWRhc2hib2FyZC1oZWFkZXItYnRuIHsgY29sb3I6ICRtdXRlZC10ZXh0OyB9XG5cbiAgICAudWktc3RhdGUtaGlnaGxpZ2h0IHtcbiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkIHJnYmEoMCwwLDAsLjMpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwuNSk7XG4gICAgfVxufVxuXG4uZWxlbWVudC1saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IC4yNXJlbTtcblxuICAgICYtaGVhZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHNpZGViYXItaGVhZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY29sb3I6IGNvbG9ycy4kd2hpdGU7XG4gICAgICAgIHBhZGRpbmc6IDZweCAxNnB4O1xuICAgICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkgeyBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbiAgICAgICAgJi5ub3QtZHJhZ2dhYmxlIHtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICY6aG92ZXIgeyBjb2xvcjogY29sb3JzLiR3aGl0ZTsgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IC4yNXJlbTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDRweCAxMnB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4zcztcblxuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogY29sb3IuYWRqdXN0KGNvbG9ycy4kd2hpdGUsICRsaWdodG5lc3M6IC00JSk7IH1cblxuICAgICAgICAuY2hhcnR0eXBlLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi50c2EtbGlzdC1pdGVtIHsgcGFkZGluZy1ib3R0b206IDEycHg7IH1cblxuLnRzLWF1dG9tZXRyaWNzLXBvcG92ZXIge1xuXHQucG9wb3Zlci1ib2R5IHNlbGVjdCB7XG5cdFx0aGVpZ2h0OiBjYWxjKDEuNWVtICsgLjc1cmVtICsgMnB4KTtcblx0XHRwYWRkaW5nOiAuMzc1cmVtIC43NXJlbTtcblx0XHRmb250LXNpemU6IDFyZW07XG5cdH1cbn0iLCJAdXNlIFwic2Fzczpjb2xvclwiO1xuXG4vLyAkZ3JlZW46ICM2QkI2QUI7XG4vLyAkZGFyay1ncmVlbjogIzZBOTg5OTsgLy8gYXBwcm92ZWRcblxuLy8gJHJlZDogI0RFNTA2Njtcbi8vICR5ZWxsb3c6ICNGN0M5Mzk7XG5cbi8vICRvcmFuZ2U6ICNFRjhFMDE7IC8vIE1lZGl1bSB3YXJuaW5nXG4vLyAkZGFyay1vcmFuZ2U6ICNEOTc2MkM7XG5cbi8vICRsaWdodC1wdXJwbGU6ICNFRUVGRkE7XG4vLyAkcHVycGxlOiAjNDA0OTlBO1xuLy8gJGRhcmtfcHVycGxlOiAjMUUyMDVDO1xuXG4vLyAkd2hpdGU6ICNGMUYxRjE7XG4vLyAkbGlnaHQtZ3JleTogI0VFRURFRDtcbi8vICRncmV5OiAjQjVCNUI1O1xuLy8gJGRhcmstZ3JleTogIzZGNkY2RDtcblxuXG5cbi8vIERlc2NyaXB0aXZlIGNvbG9yIHZhcmlhYmxlcyBodHRwOi8vY2hpci5hZy9wcm9qZWN0cy9uYW1lLXRoYXQtY29sb3IvIHNcbiR3aGl0ZTogI2ZmZjtcbiRibGFjazogIzAwMDtcbiRncmV5OiAjODc4Nzg3O1xuJGRhcmstZ3JleTogIzU5NTk1OTtcbiRsaWdodC1ncmV5OiBjb2xvci5zY2FsZSgjODc4Nzg3LCAkbGlnaHRuZXNzOiAyMCUpO1xuJHVsdHJhLWxpZ2h0LWdyZXk6IGNvbG9yLnNjYWxlKCM4Nzg3ODcsICRsaWdodG5lc3M6IDM1JSk7XG4kbW9yZS11bHRyYS1saWdodC1ncmV5OiBjb2xvci5zY2FsZSgjODc4Nzg3LCAkbGlnaHRuZXNzOiA0NCUpO1xuJGVsZWN0cmljLXZpb2xldDogIzYyMDBlZTtcbiRwdXJwbGU6ICM0MDQ5OUE7XG4kcmVkOiAjZjg2MDU5OyBcbiRibHVlLW91dGxpbmU6ICMzZGEyZjk7IFxuXG4vLyBGdW5jdGlvbmFsIGNvbG9yIHZhcmlhYmxlc1xuJGJvZHktY29sb3I6ICM2NjY7IFxuJGhlYWRpbmctY29sb3I6IGNvbG9yLnNjYWxlKCRibGFjaywgJGxpZ2h0bmVzczogMTAlKTtcbiRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuJGJnLWNvbG9yOiAjZjBmMGYwO1xuXG4kYm9yZGVyLWNvbG9yOiBjb2xvci5zY2FsZSgkZ3JleSwgJGxpZ2h0bmVzczogMzAlKTtcbiRsaW5rLWNvbG9yOiBjb2xvci5hZGp1c3QoJGdyZXksICRsaWdodG5lc3M6IC0xNSUpO1xuXG4kc2hhZG93LWNvbG9yOiByZ2JhKCRibGFjaywgLjMpO1xuJGRhcmstc2hhZG93LWNvbG9yOiByZ2JhKCRibGFjaywgLjkpO1xuJGxpZ2h0LXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIC4xKTtcbiRmb250LWNvbG9yLWxpbms6ICM0ZDRkNGQ7XG5cbi8vIENvbG9ycyAoUGxhbm5pbmcpXG4kY29sb3IxOiAjZjkzZDYxOyAvLyByb29kXG4kY29sb3IyOiAjOWU1M2IyOyAvLyBwYWFyc1xuJGNvbG9yMzogIzQ1YjlhYjsgLy8gZ3JvZW5cbiRjb2xvcjQ6ICNmOGE3NGI7IC8vIG9yYW5qZVxuXG4kY29sb3ItZmluaXNoZWQ6ICMzZmMzNTM7XG4kY29sb3ItaW5wcm9ncmVzczogI2Y3Nzg0YjtcbiRjb2xvci1jYW5jZWxlZDogI0ZGNTk2NDtcblxuJGNvbG9yLWNvbXBsZXRlZDogIzQ5QjhBRDtcbiRjb2xvci1jdXJyZW50OiAjNUE3RkYxO1xuJGNvbG9yLW5leHQ6ICM3RDdEN0Q7XG4kY29sb3ItZmFkZWQtb3V0OiAjNDU0NTQ1O1xuXG4kdHMtY29sb3IxOiAjMjliYjljO1xuJHRzLWNvbG9yMjogIzIyOWY4NTtcbiR0cy1jb2xvcjM6ICMzOWNhNzU7XG4kdHMtY29sb3I0OiAjMzBhZDYzO1xuJHRzLWNvbG9yNTogIzNhOTlkODtcbiR0cy1jb2xvcjY6ICMyZTgxYjc7XG4kdHMtY29sb3I3OiAjMzU0OTVkO1xuJHRzLWNvbG9yODogIzJjM2U0ZjtcbiR0cy1jb2xvcjk6ICNlODRmODg7XG4kdHMtY29sb3IxMDogI2M4MzA2OTtcbiR0cy1jb2xvcjExOiAjOWE1Y2I0O1xuJHRzLWNvbG9yMTI6ICM4ZDQ4YWI7XG4kdHMtY29sb3IxMzogI2YwYzMzMDtcbiR0cy1jb2xvcjE0OiAjZjE5YjJjO1xuJHRzLWNvbG9yMTU6ICNlNDRkNDI7XG4kdHMtY29sb3IxNjogI2JlM2EzMDtcblxuJGNvbG9yLWRhbmdlcjogJHRzLWNvbG9yMTU7XG4kY29sb3Itd2FybmluZzogJHRzLWNvbG9yMTM7XG4kY29sb3ItaW5mbzogJHRzLWNvbG9yNTtcbiRjb2xvci1zdWNjZXNzOiAkdHMtY29sb3I0O1xuXG4vLyBBcHAgc3R5bGluZyBmb3IgcHJldmlldyBtb2RhbHNcbiRhcHAtYmctY29sb3I6ICNGN0Y4Rjk7XG4kYXBwLXByaW1hcnktY29sb3I6ICMwZWE1N2Y7XG4kYXBwLXdoaXRlLWNvbG9yOiAjZmZmO1xuXG4vLyBCdXR0b24gY29sb3JzXG4kYnRuLXByaW1hcnk6ICMwMDdiZmY7IC8vIG5vdCB1c2VkIHlldFxuJGJ0bi1kYXJrOiAjNTY1NjU2O1xuJGJ0bi1pbmZvMjogIzQ1NDc4NDsiLCIvLyBJbnRlcmFjdGl2ZSBkb2N1bWVudHMg4oCUIFNIQVJFRCBibG9jayByZW5kZXJpbmcgQ1NTIChmYXNlIDEsIDIwMjYtMDctMjE7XG4vLyBmYXNlIDIgXCJjb25kaXRpb25hbGl0eVwiIGFkZGVuZHVtLCBzYW1lIGRhdGUg4oCUIGNob2ljZSBibG9ja3MsIGhpZGRlbiBzdGF0ZSxcbi8vIHRoZSB0YWJsZS1vZi1jb250ZW50cyBwYW5lbCkuXG4vL1xuLy8gR2xvYmFsICh1bnNjb3BlZCDigJQgbm8gI2Rtcy12aWV3ZXIgcHJlZml4KSwgc28gQk9USCB0aGUgRE1TIGZ1bGxzY3JlZW4gdmlld2VyXG4vLyAoVmlldy92MS9kb2N1bWVudHMvdmlld2VyLmh0bWwpIGFuZCB0aGUgZmFzZS0xIFZ1ZSBlZGl0b3IncyBsaXZlIHByZXZpZXdcbi8vIHBhbmUgZ2V0IGlkZW50aWNhbCBzdHlsaW5nIGZyb20gT05FIGNvbXBpbGVkIHN0eWxlc2hlZXRcbi8vICh3ZWIvY3NzL3YxL3N0eWxlLXYxLmNzcykuIFBvcnRlZCB2ZXJiYXRpbSAodmFsdWVzIHVuY2hhbmdlZCwgYWxyZWFkeVxuLy8gbGl2ZS12ZXJpZmllZCBpbiB2aWV3ZXIuaHRtbCdzIGZhc2UtMCBzY29wZWQgY29weSkg4oCUIG9ubHkgdGhlICNkbXMtdmlld2VyXG4vLyBwcmVmaXggd2FzIGRyb3BwZWQuXG4vL1xuLy8gZG9jcy9JTlRFUkFDVElWRS1ET0NVTUVOVFMtQlVJTEQtUExBTi5tZCDCpzMgKGJsb2NrIEpTT04gdjEpIGRvY3VtZW50cyB0aGVcbi8vIGJsb2NrIHR5cGVzIHRoZXNlIHJ1bGVzIGRyZXNzOiB0ZXh0IC8gaW1hZ2UgLyB2aWRlbyAvIHRhYmxlIC8gY2hvaWNlICsgdGhlXG4vLyBlbXB0eSBzdGF0ZS4gU2FtZSBjb2xvdXIgZmFtaWx5IHRocm91Z2hvdXQ6IGJyYW5kIHB1cnBsZSAjNDA0OTlhLCBsaWdodFxuLy8gbGF2ZW5kZXIgI2VkZWVmYiAoYWxyZWFkeSB1c2VkIGZvciB0aGUgdmlkZW8tbGluayBob3ZlciksICNlMmUyZjAgYm9yZGVycyxcbi8vICMyMzI1M2EgZGFyayB0ZXh0IOKAlCBubyBuZXcgY29sb3VycyBpbnRyb2R1Y2VkIGZvciBmYXNlIDIuXG5cbi5kbXMtaWRvYy1wYWdlIHtcbiAgICAvLyBwb3NpdGlvbjogcmVsYXRpdmUgKDE0LjA4LjIwMjYpIGlzIHRoZSBvZmZzZXQgcGFyZW50IGZvciB0aGUgdHJhbnNpZW50XG4gICAgLy8gaW50ZXJuYWwtcmVmZXJlbmNlIG5vdGljZSAoLmRtcy1pZG9jLXJlZi1ub3RpY2UgYmVsb3cpLCB3aGljaCBpc1xuICAgIC8vIHBvc2l0aW9uZWQgYWdhaW5zdCBUSElTIGVsZW1lbnQgcmF0aGVyIHRoYW4gYWdhaW5zdCB0aGUgYXV0aG9yIGh0bWwgdGhlXG4gICAgLy8gY2xpY2tlZCBsaW5rIGhhcHBlbnMgdG8gc2l0IGluLiBUaGUgbm90aWNlIGlzIGFic29sdXRlbHkgcG9zaXRpb25lZCwgc29cbiAgICAvLyBpdCBzdGF5cyBvdXQgb2YgdGhpcyBmbGV4IGNvbHVtbidzIGZsb3cgYW5kIGNoYW5nZXMgbm8gZXhpc3RpbmcgbGF5b3V0LlxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6IDg4MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY29sb3I6ICMyMzI1M2E7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDI0cHggcmdiYSgwLCAwLCAwLCAuNCk7XG4gICAgcGFkZGluZzogNDBweCA0OHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMjRweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgLmRtcy1pZG9jLXBhZ2Uge1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDE4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGdhcDogMThweDtcbiAgICB9XG59XG5cbi5kbXMtaWRvYy1ibG9jayB7IG1pbi13aWR0aDogMDsgfVxuXG4uZG1zLWlkb2MtaGVhZGluZyB7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDAgMCA4cHg7XG4gICAgY29sb3I6ICMyMzI1M2E7XG59XG5cbi5kbXMtaWRvYy10ZXh0LWJvZHkge1xuICAgIGZvbnQtc2l6ZTogLjk1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgY29sb3I6ICMzMzM0NGE7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcblxuICAgIHAgeyBtYXJnaW46IDAgMCAuOGVtOyB9XG4gICAgcDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4gICAgdWwsXG4gICAgb2wge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNGVtO1xuICAgICAgICBtYXJnaW46IDAgMCAuOGVtO1xuICAgIH1cbn1cblxuLmRtcy1pZG9jLWJsb2NrLWltYWdlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi8vIGZhc2UgNDogdGhlIG9mZnNldCBwYXJlbnQgZm9yIGFic29sdXRlbHktcG9zaXRpb25lZCBob3RzcG90IG1hcmtlcnMvXG4vLyBwb3BvdmVycy4gSXRzIG93biByZW5kZXJlZCBib3ggaXMgbWFkZSB0byBtYXRjaCB0aGUgPGltZz4ncyByZW5kZXJlZCBib3hcbi8vIEVYQUNUTFkgKHNlZSB0aGUgdHdvIHJ1bGVzIGJlbG93KSDigJQgdGhhdCBlcXVhbGl0eSBpcyB3aGF0IGxldHMgYSBob3RzcG90J3Ncbi8vIHgveSBmcmFjdGlvbiAoMC4uMSkgbGFuZCBvbiB0aGUgcmlnaHQgcGl4ZWwgb2YgdGhlIGFjdHVhbCBpbWFnZSwgZm9yIGV2ZXJ5XG4vLyBzaXplIGNsYXNzLCBpbmNsdWRpbmcgYSBnZW51aW5lbHkgc21hbGwgc291cmNlIGltYWdlICh0aGUgZG9jdW1lbnRlZCBaZW55YVxuLy8gYnVnIHRoaXMgZGVsaWJlcmF0ZWx5IGF2b2lkczogbWFya2VycyBtaXNwb3NpdGlvbmluZyBiZWNhdXNlIHRoZWlyXG4vLyBwb3NpdGlvbmVkIGFuY2VzdG9yIGRpZG4ndCBtYXRjaCB0aGUgc2hydW5rIGltYWdlJ3MgcmVhbCBib3gpLlxuLmRtcy1pZG9jLWltZy13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIFRoZSAlIFNJWkUgbm93IGxpdmVzIG9uIHRoZSBXUkFQIChiZWxvdyksIG5vdCBvbiA8aW1nPiBpdHNlbGYg4oCUIDxpbWc+XG4vLyBhbHdheXMgZmlsbHMgaXRzIHdyYXAgYXQgd2lkdGg6MTAwJS4gVGhpcyBzaWRlc3RlcHMgdGhlIGNsYXNzaWNcbi8vIFwicGVyY2VudGFnZSB3aWR0aCBpbnNpZGUgYSBzaHJpbmstdG8tZml0IGJveFwiIGNpcmN1bGFyLXNpemluZyBwcm9ibGVtIGFcbi8vIHdyYXAtc2hyaW5rcy10by1pdHMtaW1hZ2UgZGVzaWduIHdvdWxkIGhpdCwgd2hpbGUgc3RpbGwgZ3VhcmFudGVlaW5nXG4vLyB3cmFwJ3MgYm94ID09IGltYWdlJ3MgcmVuZGVyZWQgYm94ICh3YXMgYG1heC13aWR0aDoxMDAlYCB3aXRoIG5vIHdpZHRoIOKAlFxuLy8gaGFybWxlc3MgYmVmb3JlIGhvdHNwb3RzIGV4aXN0ZWQsIGJ1dCBsZXQgYSBzbWFsbCBzb3VyY2UgaW1hZ2UgcmVuZGVyXG4vLyBzbWFsbGVyIHRoYW4gaXRzIHdvdWxkLWJlIHdyYXAsIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCBtdXN0IE5PVCBoYXBwZW4gbm93KS5cbi5kbXMtaWRvYy1pbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIFBXQSBmYXNlIDEgKDA1LjA4LjIwMjYpIOKAlCBhbiBpbWFnZSB3aG9zZSBieXRlcyBhcmUgbm90IHRoZXJlICh5ZXQpLlxuLy9cbi8vIFRoZSBhcHAgcmVzb2x2ZXMgZWFjaCBpbWFnZSBpdHNlbGYgKG9wdHMuYXNzZXRSZXNvbHZlcikgaW5zdGVhZCBvZiBsZXR0aW5nIHRoZVxuLy8gYnJvd3NlciBsb2FkIGEgVVJMLCBzbyBiZXR3ZWVuIHJlbmRlciBhbmQgcmVzb2x2ZSB0aGVyZSBpcyBub3RoaW5nIHRvIHNob3cuXG4vLyBXaXRob3V0IGEgcmVzZXJ2ZWQgYm94IHRoZSBlbGVtZW50IGlzIDBweCBoaWdoIGFuZCB0aGUgd2hvbGUgZG9jdW1lbnQganVtcHNcbi8vIGRvd24gdGhlIG1vbWVudCBlYWNoIGltYWdlIGxhbmRzIOKAlCB0aGUgd29yc3Qga2luZCBvZiByZWFkaW5nIGV4cGVyaWVuY2Ugb24gYVxuLy8gcGhvbmUsIHdoZXJlIHRoZSByZWFkZXIgaXMgdXN1YWxseSBtaWQtc2Nyb2xsLiBUaGlzIGRhc2hlZCBib3ggaG9sZHMgdGhlIHNwYWNlXG4vLyBhbmQgcmVhZHMgYXMgXCJzb21ldGhpbmcgYmVsb25ncyBoZXJlXCIuXG4vL1xuLy8gYC1hd2FpdGAgaXMgc2V0IGJ5IHRoZSByZW5kZXJlciBhbmQgY2xlYXJlZCBieSB0aGUgaG9zdCBvbmNlIHRoZSByZWFsIHNyYyBpcyBpbjtcbi8vIGAtZmFpbGVkYCBpcyB0aGUgZW5kIHN0YXRlLCBnZXpldCBkb29yIGRlIGhvc3QgT0YgZG9vciBkZSByZW5kZXJlciB6ZWxmIChkZVxuLy8gYGVycm9yYC1saXN0ZW5lciBpbiByZXNvbHZlSW1hZ2VTcmMpLiBPbmUgdW5yZWFjaGFibGUgaW1hZ2UgbXVzdCBuZXZlciB0YWtlIHRoZVxuLy8gcHJvdG9jb2wgZG93biB3aXRoIGl0LCBzbyB0aGUgYmxvY2sga2VlcHMgaXRzIGJveCBhbmQgaXRzIGNhcHRpb24uIFNpbmRzXG4vLyAwNi4wOC4yMDI2IGtyaWpnZW4gVVJMLWhvc3RzIChiYWNrb2ZmaWNlIHZpZXdlciwgZWRpdG9yIHByZXZpZXcsIGdlZGVlbGRlIHBhZ2luYSlcbi8vIGAtZmFpbGVkYCDDs8OzazogZWVuIDQwNCBvcCBkZSBVUkwgaXMgdm9vciBkZSBsZXplciBoZXR6ZWxmZGUgcHJvYmxlZW0gYWxzIGVlblxuLy8gbWlzbHVrdGUgZmV0Y2ggaW4gZGUgYXBwLCBlbiBoZXQgdWl0bGVnLXZhayBob29ydCBkYW4gbmV0IHpvIGdvZWQgdGUgdmVyc2NoaWpuZW4uXG4vLyBBIEZJWEVEIGhlaWdodCwgbm90IG1pbi1oZWlnaHQ6IHRoZSBwbGFjZWhvbGRlciBpcyBhIDF4MSBwaXhlbCwgc28gYGhlaWdodDphdXRvYFxuLy8gb24gYSAxMDAlLXdpZGUgPGltZz4gbWFrZXMgdGhlIGJveCBleGFjdGx5IGFzIHRhbGwgYXMgaXQgaXMgd2lkZSDigJQgYSAyMTJweCBlbXB0eVxuLy8gc3F1YXJlIG9uIGEgcGhvbmUgKG1lYXN1cmVkKS4gMTYwcHggaXMgYSBwcmVkaWN0YWJsZSwgcGhvdG8tc2hhcGVkIHJlc2VydmF0aW9uLlxuLy9cbi8vIFRoZSBqdW1wIHdoZW4gdGhlIHJlYWwgaW1hZ2UgbGFuZHMgaXMgbm90IGZ1bGx5IGF2b2lkYWJsZSB0b2RheTogdGhlIGJsb2NrcyBKU09OXG4vLyBjYXJyaWVzIG5vIHdpZHRoL2hlaWdodCBmb3IgYW4gYXNzZXQsIHNvIG5vdGhpbmcgY2FuIHJlc2VydmUgdGhlIFJJR0hUIGhlaWdodCBpblxuLy8gYWR2YW5jZS4gU3RvcmluZyB0aGUgZGltZW5zaW9ucyBhdCB1cGxvYWQgdGltZSB3b3VsZCBmaXggdGhhdCBwcm9wZXJseS5cbi8vIFdBQ0hURU4gRU4gU1RVSyBaQUdFTiBFUiBUT1QgMDYuMDguMjAyNiBIRVRaRUxGREUgVUlUOiBhbGxlYmVpIGRpdCBncmlqemUgdmFrXG4vLyBtZXQgc3RyZWVwamVzcmFuZCwgem9uZGVyIGljb29uIGVuIHpvbmRlciB0ZWtzdC4gRWVuIGxlemVyIGtvbiBkdXMgbmlldCB6aWVuIG9mXG4vLyBoaWogbW9lc3Qgd2FjaHRlbiBvZiBkYXQgZXIgaWV0cyBtaXMgd2FzLiBOdSBkcmFhZ3QgYC1hd2FpdGAgZWVuIHJ1c3RpZ2Vcbi8vIGdsYW5zLWFuaW1hdGllIChlciBrb210IG5vZyBpZXRzKSBlbiB2ZXJkd2lqbnQgYC1mYWlsZWRgIGhlbGVtYWFsIHRlbiBndW5zdGUgdmFuXG4vLyBoZXQgdWl0bGVnLXZhayBoaWVyb25kZXIuIFtLaW1zIGJlc2x1aXQgMDYuMDguMjAyNl1cbi5kbXMtaWRvYy1pbWctYXdhaXQge1xuICAgIGhlaWdodDogMTYwcHg7XG4gICAgYmFja2dyb3VuZDogI2Y0ZjRmYTtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgI2Q3ZDhlYztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC8vIERlIGdsYW5zIGxvb3B0IG92ZXIgaGV0IHZhayBoZWVuOiBkaXQgaXMgZGUgZW5pZ2UgYmV3ZWdpbmcgb3AgZGUgcGFnaW5hLCBkdXNcbiAgICAvLyBoaWogbGVlc3QgYWxzIFwiaGllciB3b3JkdCBhYW4gZ2V3ZXJrdFwiIHpvbmRlciBkZSBhYW5kYWNodCBvcCB0ZSBlaXNlbi5cbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMCUsIHJnYmEoMjU1LDI1NSwyNTUsLjg1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDQwJSAxMDAlO1xuICAgIGFuaW1hdGlvbjogZG1zLWlkb2MtaW1nLXNoaW1tZXIgMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBkbXMtaWRvYy1pbWctc2hpbW1lciB7XG4gICAgZnJvbSB7IGJhY2tncm91bmQtcG9zaXRpb246IC02MCUgMDsgfVxuICAgIHRvICAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxNjAlIDA7IH1cbn1cblxuLy8gV2llIGJld2VnaW5nIGxpZXZlciBuaWV0IHppZXQsIGtyaWpndCBoZW0gbmlldC4gSGV0IHZhayB6ZWxmIGJsaWpmdCBzdGFhbiwgZHVzIGRlXG4vLyBydWltdGUgd29yZHQgbm9nIHN0ZWVkcyBnZXJlc2VydmVlcmQgKFdDQUcgMi4zLjMgLyBwcmVmZXJzLXJlZHVjZWQtbW90aW9uKS5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLmRtcy1pZG9jLWltZy1hd2FpdCB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuXG4vLyBEZSA8aW1nPiB6ZWxmIGdhYXQgV0VHIGFscyBoaWogbWlzbHVrdCBpczogYW5kZXJzIHppZSBqZSBoZXQga2Fwb3R0ZS1wbGFhdGplLWljb29uXG4vLyB2YW4gZGUgYnJvd3NlciBwbHVzIGRlIGFsdC10ZWtzdCwgZW4gZGllIGFsdCBpcyBiaWogb25zIGhldCBiaWpzY2hyaWZ0IOKAlCBkYXQgc3RvbmRcbi8vIGVyIGRhbiB0d2VlIGtlZXIgKHByZWNpZXMgd2F0IGVyIG9wIDA2LjA4LjIwMjYgaW4gZGUgYXBwIHRlIHppZW4gd2FzKS5cbi5kbXMtaWRvYy1pbWctZmFpbGVkIHsgZGlzcGxheTogbm9uZTsgfVxuXG4uZG1zLWlkb2MtaW1nLWZhbGxiYWNrIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vLyBBbGxlZW4gemljaHRiYWFyIGRpcmVjdCBhY2h0ZXIgZWVuIG1pc2x1a3RlIGFmYmVlbGRpbmcuIFplbGZkZSBhZm1ldGluZyBhbHMgaGV0XG4vLyB3YWNodC12YWssIHpvZGF0IGRlIHBhZ2luYSBuaWV0IHZlcnNwcmluZ3QgdHVzc2VuIGRlIHR3ZWUgc3RhbmRlbi5cbi5kbXMtaWRvYy1pbWctZmFpbGVkICsgLmRtcy1pZG9jLWltZy1mYWxsYmFjayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgaGVpZ2h0OiAxNjBweDtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmNGY0ZmE7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkICNkN2Q4ZWM7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6ICM2YjY4ODQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZG1zLWlkb2MtaW1nLWZhbGxiYWNrLXRleHQge1xuICAgIGZvbnQtc2l6ZTogLjg1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgbWF4LXdpZHRoOiAyNGVtO1xufVxuXG4uZG1zLWlkb2MtaW1nLWZhbGxiYWNrLXJldHJ5IHtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAuODVyZW07XG4gICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDdkOGVjO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHBhZGRpbmc6IDZweCAxNHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZjBmMGY4OyB9XG4gICAgJjphY3RpdmUgeyB0cmFuc2Zvcm06IHNjYWxlKC45Nyk7IH1cbn1cblxuLy8gWm9sYW5nIGVyIGdlZW4gYWZiZWVsZGluZyBJUywgd2lqemVuIGRlIGJvbGxldGplcyBuZXJnZW5zIG5hYXI6IHplIHN0YWFuIGRhbiBvcFxuLy8gcGVyY2VudGFnZXMgdmFuIGVlbiBsZWVnIHZhayBlbiBrbGl0dGVuIHNhbWVuIGluIGVlbiBob2VrICh0ZSB6aWVuIG9wIEtpbXNcbi8vIHNjcmVlbnNob3QgdmFuIDA2LjA4LjIwMjYpLiBWZXJiZXJnZW4gdG90IGhldCBwbGFhdGplIGVyIGlzLiBXZXJrdCBtZXQgfiBvbWRhdCBkZVxuLy8gbWFya2VycyBuYSBkZSA8aW1nPiBpbiBkZXplbGZkZSB3cmFwIGhhbmdlbi5cbi5kbXMtaWRvYy1pbWctYXdhaXQgfiAuZG1zLWlkb2MtaG90c3BvdCxcbi5kbXMtaWRvYy1pbWctZmFpbGVkIH4gLmRtcy1pZG9jLWhvdHNwb3QsXG4uZG1zLWlkb2MtaW1nLWF3YWl0IH4gLmRtcy1pZG9jLWhvdHNwb3QtcG9wLFxuLmRtcy1pZG9jLWltZy1mYWlsZWQgfiAuZG1zLWlkb2MtaG90c3BvdC1wb3AgeyBkaXNwbGF5OiBub25lOyB9XG5cbi5kbXMtaWRvYy1pbWctbGFyZ2UgLmRtcy1pZG9jLWltZy13cmFwIHsgd2lkdGg6IDEwMCU7IH1cbi5kbXMtaWRvYy1pbWctbWVkaXVtIC5kbXMtaWRvYy1pbWctd3JhcCB7IHdpZHRoOiA2MCU7IH1cbi5kbXMtaWRvYy1pbWctc21hbGwgLmRtcy1pZG9jLWltZy13cmFwIHsgd2lkdGg6IDMzJTsgbWluLXdpZHRoOiAxNjBweDsgfVxuXG4uZG1zLWlkb2MtY2FwdGlvbiB7XG4gICAgZm9udC1zaXplOiAuODJyZW07XG4gICAgY29sb3I6ICM2YjY4ODQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZG1zLWlkb2MtYmxvY2stdmlkZW8geyBkaXNwbGF5OiBmbGV4OyB9XG5cbi8vIENTUCBmcmFtZS1zcmMgZG9lcyBub3QgYWxsb3cgeW91dHViZS5jb20sIHNvIGFuIDxpZnJhbWU+IGVtYmVkIGlzIGJsb2NrZWRcbi8vIG91dHJpZ2h0IOKAlCBhIGxpbmstb3V0IGNhcmQgaXMgcmVuZGVyZWQgaW5zdGVhZCAoc2VlIGRtcy1pZG9jLXJlbmRlci5qcydzXG4vLyAndmlkZW8nIGJyYW5jaCkuXG4uZG1zLWlkb2MtdmlkZW8tbGluayB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogMTJweCAxOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZjA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmN2Y3ZmI7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAuOXJlbTtcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZWRlZWZiOyB9XG5cbiAgICBxZG5hcHJvLWljb24geyBjb2xvcjogI2ZmMDAwMDsgZmxleDogMCAwIGF1dG87IH1cbn1cblxuLy8gVGhlIHRhYmxlIHNjcm9sbHMgSU5TSURFIHRoaXMgd3JhcHBlciDigJQgdGhlIHBhZ2UgYXJvdW5kIGl0IG5ldmVyIG1vdmVzXG4vLyBzaWRld2F5cy4gYHBvc2l0aW9uOiByZWxhdGl2ZWAgaXMgd2hhdCB0aGUgZmFzZS0xLVBXQSBlZGdlIGhpbnQgYmVsb3cgYW5jaG9yc1xuLy8gdG87IGAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZ2AgZ2l2ZXMgaU9TIGl0cyBtb21lbnR1bSBzY3JvbGwgKGEgcHJvdG9jb2xcbi8vIHRhYmxlIG9uIGEgcGhvbmUgaXMgZHJhZ2dlZCBhIGxvdCkuXG4uZG1zLWlkb2MtdGFibGUtd3JhcCB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4vLyBgYm9yZGVyLWNvbGxhcHNlOiBTRVBBUkFURWAgd2l0aCB6ZXJvIHNwYWNpbmcsIG5vdCBgY29sbGFwc2VgIOKAlCBhbmQgdGhpcyBpcyBhXG4vLyBjb3JyZWN0bmVzcyByZXF1aXJlbWVudCwgbm90IGEgc3R5bGUgcHJlZmVyZW5jZS5cbi8vXG4vLyBXaXRoIGBjb2xsYXBzZWAsIGEgdGFibGUncyBiYWNrZ3JvdW5kcyBhcmUgcGFpbnRlZCBpbiBvbmUgZml4ZWQgb3JkZXIgKHRhYmxlIOKGklxuLy8gY29sdW1uIOKGkiByb3ctZ3JvdXAg4oaSIHJvdyDihpIgY2VsbCkgYW5kIGEgY2VsbCdzIGB6LWluZGV4YCBkb2VzIE5PVCBsaWZ0IGl0IG91dCBvZlxuLy8gdGhhdCBvcmRlci4gU28gYSBgcG9zaXRpb246IHN0aWNreWAgZmlyc3QgY29sdW1uIHBhaW50cyBpdHMgYmFja2dyb3VuZCBhdCBjZWxsXG4vLyBsZXZlbCwgYW5kIHRoZW4gdGhlIFRFWFQgb2YgZXZlcnkgbGF0ZXIgY2VsbCBpbiB0aGUgc2FtZSByb3cgcGFpbnRzIG9uIHRvcCBvZlxuLy8gaXQuIE1lYXN1cmVkIG9uIGEgMzkwcHggcGhvbmUgKDA1LjA4LjIwMjYpOiBkcmFnZ2luZyB0aGUgdGFibGUgc2lkZXdheXMgc21lYXJlZFxuLy8gdGhlIHdhbmRlcmluZyBjb2x1bW5zJyBsZXR0ZXJzIHN0cmFpZ2h0IGFjcm9zcyB0aGUgcGlubmVkIGNvbHVtbiDigJQgdGhlIHBpbm5lZFxuLy8gY29sdW1uIGxvb2tlZCBjb3JydXB0ZWQsIGV4YWN0bHkgd2hlcmUgdGhlIHJlYWRlciBuZWVkcyBpdCB0byBiZSB0cnVzdHdvcnRoeS5cbi8vIGBzZXBhcmF0ZWAgcmVzdG9yZXMgbm9ybWFsIHN0YWNraW5nLCBzbyBgei1pbmRleDogMWAgb24gdGhlIHN0aWNreSBjZWxsIG1lYW5zXG4vLyB3aGF0IGl0IHNheXMuXG4vL1xuLy8gVGhlIGNvc3Qgb2YgYHNlcGFyYXRlYCBpcyB0aGUgY2xhc3NpYyBkb3VibGUgYm9yZGVyLCB3aGljaCBpcyB3aHkgdGhlIGdyaWQgaXNcbi8vIGJ1aWx0IGZyb20gT05FIGVkZ2UgcGVyIGNlbGwgKHJpZ2h0ICsgYm90dG9tKSBwbHVzIHRoZSB0YWJsZSdzIG93biBsZWZ0ICsgdG9wLlxuLy8gVGhhdCB5aWVsZHMgZXhhY3RseSAxcHggZXZlcnl3aGVyZSwgdmlzdWFsbHkgaWRlbnRpY2FsIHRvIHRoZSBvbGQgY29sbGFwc2VkXG4vLyBncmlkLCB3aXRoIG5vIGRvdWJsZWQgbGluZXMg4oCUIHZlcmlmaWVkIGluIHRoZSBicm93c2VyLCBub3QgYXNzdW1lZC5cbi5kbXMtaWRvYy10YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMmUyZjA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMmUyZjA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAuODhyZW07XG5cbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UyZTJmMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmUyZjA7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgIHRoIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y0ZjRmYTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6ICMyMzI1M2E7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBXQSBmYXNlIDEsIEtpbXMgYmVzbHVpdCAyIHZhbiAwNS4wOC4yMDI2IOKAlCBhIHRvby13aWRlIHRhYmxlIFNDUk9MTFMgd2l0aCBpdHNcbi8vIEZJUlNUIENPTFVNTiBQSU5ORUQsIGFuZCBpcyBuZXZlciByZWZsb3dlZCBpbnRvIGxhYmVsL3ZhbHVlIGNhcmRzLiBSZWFzb25cbi8vIChTQ09QRS1wd2EtaW50ZXJhY3RpZXZlLWRvY3VtZW50ZW4ubWQgwqc1LjMpOiBpbiBhIGNhcmUgcHJvdG9jb2wgdGhlIGNvbHVtblxuLy8gc3RydWN0dXJlIElTIHRoZSBtZWFuaW5nIChcImF0IHRoaXMgdmFsdWUsIGRvIHRoaXNcIiksIGFuZCBjYXJkcyBkZXN0cm95IHRoZVxuLy8gcmVsYXRpb25zaGlwIEJFVFdFRU4gcm93cyDigJQgeW91IGNhbiBubyBsb25nZXIgY29tcGFyZSB0d28gcm93cyBhdCBhIGdsYW5jZS5cbi8vIFBpbm5pbmcgdGhlIGZpcnN0IGNvbHVtbiBpcyB3aGF0IGtlZXBzIFwid2hpY2ggcm93IGFtIEkgcmVhZGluZ1wiIGFuc3dlcmFibGVcbi8vIHdoaWxlIHRoZSByZWFkZXIgZHJhZ3MgdGhlIHJlc3Qgb2YgdGhlIHRhYmxlIHBhc3QgaXQuXG4vL1xuLy8gRGVsaWJlcmF0ZWx5IEdMT0JBTCwgbm90IGFwcC1vbmx5OiB0aGlzIHNhbWUgc3R5bGVzaGVldCBkcmVzc2VzIHRoZSBiYWNrb2ZmaWNlXG4vLyB2aWV3ZXIgYW5kIHRoZSBlZGl0b3IncyBsaXZlIHByZXZpZXcsIHNvIGEgbmFycm93IHdpbmRvdyB0aGVyZSBub3cgYmVoYXZlc1xuLy8gZXhhY3RseSBsaWtlIGEgcGhvbmUuIFRoYXQgaXMgdGhlIHBvaW50IOKAlCB0aGUgYXV0aG9yIHNlZXMgd2hhdCB0aGUgcmVhZGVyIGdldHNcbi8vIChzYW1lIG9uZS1iZWhhdmlvdXItZXZlcnl3aGVyZSBsaW5lIEtpbXMgYmVzbHVpdCAxIGRyYXdzIGZvciB2aWRlbykuXG4vL1xuLy8gVGhlIHBpbm5lZCBjb2x1bW4ga2VlcHMgaXRzIG93biByZWFsIGBib3JkZXItcmlnaHRgIChzZWUgdGhlIGBzZXBhcmF0ZWAgbm90ZSBvblxuLy8gLmRtcy1pZG9jLXRhYmxlIGFib3ZlIOKAlCB0aGF0IGlzIHdoYXQgbWFrZXMgYm90aCB0aGUgYm9yZGVyIEFORCB0aGUgei1pbmRleFxuLy8gYmVoYXZlIGhlcmUpLCBzbyBubyBib3gtc2hhZG93IHN1YnN0aXR1dGUgaXMgbmVlZGVkLlxuLmRtcy1pZG9jLXRhYmxlLXdyYXAge1xuICAgIHRoOmZpcnN0LWNoaWxkLFxuICAgIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgLy8gTXVzdCBiZSBPUEFRVUUg4oCUIHRoZSBzY3JvbGxpbmcgY2VsbHMgcGFzcyB1bmRlcm5lYXRoIHRoaXMgb25lLlxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIH1cblxuICAgIC8vIEEgaGVhZGVyIGNlbGwga2VlcHMgaXRzIG93biBkYXJrZXIgZmlsbDsgaXQgd291bGQgb3RoZXJ3aXNlIGluaGVyaXQgdGhlXG4gICAgLy8gd2hpdGUgYWJvdmUgYW5kIHJlYWQgYXMgYSBib2R5IGNlbGwuXG4gICAgdGg6Zmlyc3QtY2hpbGQgeyBiYWNrZ3JvdW5kOiAjZjRmNGZhOyB9XG59XG5cbi8vIFwiVGhlcmUgaXMgbW9yZSB0byB0aGUgcmlnaHRcIiDigJQgdGhlIHRhYmxlJ3MgcmlnaHQgZWRnZSBmYWRlcyBvdXQgd2hpbGUgdGhlcmUgaXNcbi8vIHN0aWxsIHRhYmxlIHRvIGRyYWcgaW50byB2aWV3LiBTaG93biBPTkxZIHdoZW4gdGhlIHRhYmxlIHJlYWxseSBkb2VzIG92ZXJmbG93LFxuLy8gYW5kIG9ubHkgdW50aWwgdGhlIHJlYWRlciBoYXMgcmVhY2hlZCB0aGUgZW5kOyB0aGUgY2xhc3NlcyBjb21lIGZyb21cbi8vIGRtcy1pZG9jLXJlbmRlci5qcyAod2lyZVRhYmxlT3ZlcmZsb3dIaW50cyksIGJlY2F1c2UgQ1NTIGNhbm5vdCBrbm93IHdoZXRoZXIgYVxuLy8gZ2l2ZW4gdGFibGUgaXMgd2lkZXIgdGhhbiBpdHMgd3JhcHBlci5cbi8vXG4vLyBBIE1BU0ssIGRlbGliZXJhdGVseSwgYW5kIE5PVCBhbiBhYnNvbHV0ZWx5LXBvc2l0aW9uZWQgOjphZnRlciBvdmVybGF5LiBUaGF0IHdhc1xuLy8gdGhlIGZpcnN0IGF0dGVtcHQgYW5kIGl0IGlzIGEgdHJhcDogYW4gYWJzb2x1dGVseS1wb3NpdGlvbmVkIGNoaWxkIG9mIGEgU0NST0xMXG4vLyBDT05UQUlORVIgaXMgcG9zaXRpb25lZCBhZ2FpbnN0IHRoYXQgY29udGFpbmVyJ3MgcGFkZGluZyBib3gsIHdoaWNoIG1lYW5zIGl0XG4vLyBTQ1JPTExTIEFXQVkgV0lUSCBUSEUgQ09OVEVOVCDigJQgbWVhc3VyZWQgb24gYSAzOTBweCBwaG9uZSAoMDUuMDguMjAyNiksIHRoZSBmYWRlXG4vLyBzYXQgYXQgdGhlIGZhciBlbmQgb2YgdGhlIHRhYmxlIHdoZXJlIG5vYm9keSBjb3VsZCBzZWUgaXQsIHdoaWNoIGlzIHRoZSBleGFjdFxuLy8gb3Bwb3NpdGUgb2YgdGhlIGludGVudC4gQSBtYXNrIGlzIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnQgYXMgcGFpbnRlZCwgc28gaXQgc3RheXNcbi8vIHB1dCBhdCB0aGUgdmlzaWJsZSBlZGdlIG5vIG1hdHRlciBob3cgZmFyIHRoZSB0YWJsZSBpcyBkcmFnZ2VkLiBJdCBhbHNvIGNhbm5vdFxuLy8gc3dhbGxvdyBhIHRvdWNoIGRyYWcsIHdoaWNoIGFuIG92ZXJsYXkgd291bGQgbmVlZCBwb2ludGVyLWV2ZW50czpub25lIHRvIGF2b2lkLlxuLy9cbi8vIFRoZSBmYWRlIGdvZXMgdG8gVFJBTlNQQVJFTlQgcmF0aGVyIHRoYW4gd2hpdGUsIHNvIGl0IHdvcmtzIG9uIGFueSBwYWdlXG4vLyBiYWNrZ3JvdW5kIGluc3RlYWQgb2Ygb25seSB0aGUgd2hpdGUgZG9jdW1lbnQgcGFnZS5cbi5kbXMtaWRvYy10YWJsZS13cmFwLW92ZXJmbG93Om5vdCguZG1zLWlkb2MtdGFibGUtd3JhcC1hdGVuZCkge1xuICAgIC13ZWJraXQtbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDAwIGNhbGMoMTAwJSAtIDI4cHgpLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwMDAgY2FsYygxMDAlIC0gMjhweCksIHRyYW5zcGFyZW50IDEwMCUpO1xufVxuXG4uZG1zLWlkb2MtZW1wdHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBjb2xvcjogIzhhOGZiNTtcbiAgICBwYWRkaW5nOiA0MHB4IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZhc2UgMiDigJQgY29uZGl0aW9uYWxpdHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBBIGNvbmRpdGlvbmFsbHktaGlkZGVuIGJsb2NrLiBgIWltcG9ydGFudGAgbWF0Y2hlcyB0aGUgaG91c2UgY29udmVudGlvbiBmb3Jcbi8vIHRoaXMgZXhhY3Qga2luZCBvZiBKUy10b2dnbGVkIHZpc2liaWxpdHkgY2xhc3MgKHNlZSBlLmcuICNkbXMtdmlld2VyW2hpZGRlbl1cbi8vIGluIHZpZXdlci5odG1sKSDigJQgbm90aGluZyBlbHNlIHNob3VsZCBldmVyIG5lZWQgdG8gb3V0LXNwZWNpZmljaXR5IHRoaXMuXG4uZG1zLWlkb2MtaGlkZGVuIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5kbXMtaWRvYy1ibG9jay1jaG9pY2UgeyBtaW4td2lkdGg6IDA7IH1cblxuLmRtcy1pZG9jLWNob2ljZS10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgICBjb2xvcjogIzIzMjUzYTtcbn1cblxuLmRtcy1pZG9jLWNob2ljZS1vcHRpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgLy8gJ2F1dG8nIEFORCAnaG9yaXpvbnRhbCcgYm90aCB3cmFwIChuZXZlciBob3Jpem9udGFsLXNjcm9sbClcbiAgICBnYXA6IDEwcHg7XG59XG5cbi5kbXMtaWRvYy1jaG9pY2Utb3B0aW9ucy12ZXJ0aWNhbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLmRtcy1pZG9jLWNob2ljZS1idG4ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q3ZDhlYztcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogI2VkZWVmYjsgLy8gdW5zZWxlY3RlZCDigJQgbGlnaHQgbGF2ZW5kZXIsIGRhcmsgdGV4dFxuICAgIGNvbG9yOiAjMjMyNTNhO1xuICAgIGZvbnQtc2l6ZTogLjg4cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgcGFkZGluZzogMTBweCAxOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjE1cyBlYXNlLCBib3JkZXItY29sb3IgLjE1cyBlYXNlLCBjb2xvciAuMTVzIGVhc2U7XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogI2RmZTBmNzsgfVxuXG4gICAgJi5kbXMtaWRvYy1jaG9pY2UtYnRuLXNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzQwNDk5YTsgLy8gc2VsZWN0ZWQg4oCUIGZpbGxlZCBicmFuZCBwdXJwbGUsIHdoaXRlIHRleHRcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNDA0OTlhO1xuICAgICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogIzMzM2E4MDsgfVxuICAgIH1cbn1cblxuLy8gLS0tLSB0YWJsZSBvZiBjb250ZW50cyAob3B0cy50b2MpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQSAuZG1zLWlkb2Mtc2hlbGwgd3JhcHMgWy5kbXMtaWRvYy10b2MsIC5kbXMtaWRvYy1tYWluID4gLmRtcy1pZG9jLXBhZ2VdIHdoZW5cbi8vIHRoZSBob3N0IGFza3MgZm9yIGEgVE9DOyB3aXRob3V0IGl0LCAuZG1zLWlkb2MtcGFnZSBpcyBhcHBlbmRlZCBkaXJlY3RseVxuLy8gKGZhc2UgMC8xIGJlaGF2aW91ciwgdW50b3VjaGVkKSBhbmQgbm9uZSBvZiB0aGVzZSBydWxlcyBhcHBseS5cblxuLmRtcy1pZG9jLXNoZWxsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgICAgLy8gbGV0cyB0aGUgVE9DICsgcGFnZSB3cmFwIG9udG8gc2VwYXJhdGUgbGluZXMgKHN0YWNrKVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB0aGUgQ09OVEFJTkVSIGlzIG5hcnJvdyDigJQgc2VlIHRoZSBAY29udGFpbmVyIGJlbG93LlxuICAgIGdhcDogMjBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDExMjBweDsgLy8gODgwIChwYWdlKSArIHRoZSB0b2MgY29sdW1uICsgZ2FwIOKAlCBrZWVwcyB0aGUgcGFpclxuICAgIG1hcmdpbjogMCBhdXRvOyAgICAgLy8gY2VudGVyZWQgdGhlIHNhbWUgd2F5IHRoZSBsb25lIHBhZ2UgdXNlZCB0byBiZVxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLy8gUXVlcnkgVEhJUyBzaGVsbCdzIG93biB3aWR0aCAobm90IHRoZSB2aWV3cG9ydCk6IHRoZSBtb2JpbGUtcHJldmlldyBkZXZpY2VcbiAgICAvLyBmcmFtZSArIHRoZSBnZW51aW5lIG5hcnJvdyB2aWV3ZXIgYXJlIGJvdGggbmFycm93IENPTlRBSU5FUlMgaW5zaWRlIGEgd2lkZVxuICAgIC8vIHdpbmRvdywgc28gYSB2aWV3cG9ydCBAbWVkaWEgbmV2ZXIgZmlyZWQgZm9yIHRoZW0gKHRoZSBUT0Mgb3ZlcmxhcHBlZCB0aGVcbiAgICAvLyBwYWdlIG9uIG1vYmlsZSDigJQgSmFuIDIwMjYtMDctMjEpLiBjb250YWluZXItdHlwZSBtYWtlcyB0aGUgY2hpbGRyZW4gYmVsb3dcbiAgICAvLyByZWZsb3cgb24gdGhlIHNoZWxsJ3MgcmVhbCB3aWR0aCBpbnN0ZWFkLlxuICAgIGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTtcbiAgICAvLyBVbmNvbmRpdGlvbmFsIChOT1QgaW5zaWRlIHRoZSBAY29udGFpbmVyIGJsb2NrIGJlbG93KSDigJQgYSBjb250YWluZXJcbiAgICAvLyBxdWVyeSBydWxlIGNhbiBuZXZlciBzdHlsZSB0aGUgQ09OVEFJTkVSIGVsZW1lbnQgaXRzZWxmIGJhc2VkIG9uIGl0c1xuICAgIC8vIG93biBxdWVyeSAodGhhdCB3b3VsZCBiZSBjaXJjdWxhciksIHNvIGBwb3NpdGlvbmAgSEFTIHRvIGxpdmUgaGVyZSB0b1xuICAgIC8vIGFjdHVhbGx5IHRha2UgZWZmZWN0IGZvciB0aGUgbmFycm93LWRyYXdlciByZWRlc2lnbiAoZm91bmQgZW1waXJpY2FsbHlcbiAgICAvLyAyMDI2LTA3LTIyOiBwdXR0aW5nIGl0IGluc2lkZSBAY29udGFpbmVyIHNpbGVudGx5IG5vLW9wJ2Qgb25cbiAgICAvLyAuZG1zLWlkb2Mtc2hlbGwsIGV2ZW4gdGhvdWdoIHRoZSBTQU1FIGJsb2NrIGNvcnJlY3RseSBzdHlsZWRcbiAgICAvLyAuZG1zLWlkb2MtdG9jLCBhIGRlc2NlbmRhbnQpLlxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvLyDimqDvuI8gYG92ZXJmbG93OiBjbGlwYCBvbiBCT1RIIGF4ZXMsIE5PVCBgb3ZlcmZsb3cteDogaGlkZGVuYCBhbG9uZS5cbiAgICAvLyBTZXR0aW5nIG9ubHkgb3ZlcmZsb3cteCBmb3JjZXMgdGhlIE9USEVSIGF4aXMncyBjb21wdXRlZCB2YWx1ZSBmcm9tXG4gICAgLy8gYHZpc2libGVgIHRvIGBhdXRvYCAoYSByZWFsIENTUyBydWxlIOKAlCB2ZXJpZmllZCwgbm90IGFzc3VtZWQpIOKAlCB0aGF0XG4gICAgLy8gc2lsZW50bHkgdHVybmVkIC5kbXMtaWRvYy1zaGVsbCBpbnRvIGFuIChpbnZpc2libGUsIG5vdGhpbmctYWN0dWFsbHktXG4gICAgLy8gb3ZlcmZsb3dzKSBTQ1JPTEwgQ09OVEFJTkVSLCB3aGljaCBicm9rZSBgLmRtcy1pZG9jLXRvY2Anc1xuICAgIC8vIGBwb3NpdGlvbjpzdGlja3lgIGluIHdpZGUgbW9kZTogc3RpY2t5IHN0YXJ0ZWQgdHJhY2tpbmcgVEhJU1xuICAgIC8vIG5vbi1zY3JvbGxpbmcgc2hlbGwgYXMgaXRzIFwibmVhcmVzdCBzY3JvbGxpbmcgYW5jZXN0b3JcIiBpbnN0ZWFkIG9mIHRoZVxuICAgIC8vIHJlYWwgb25lIGZ1cnRoZXIgdXAgKHRoZSB2aWV3ZXIvcHJldmlldydzIG93biBzY3JvbGwgd3JhcHBlciwgb3IgdGhlXG4gICAgLy8gcGFnZSBpdHNlbGYpLCBzbyBpdCBuZXZlciBzdHVjayB3aGlsZSBhY3R1YWxseSBzY3JvbGxpbmcgKEphbixcbiAgICAvLyAyMDI2LTA3LTIyIOKAlCBcIlRPQyBzY3JvbGx0IHdlZXIgbWVlXCIsIGEgcmVhbCByZWdyZXNzaW9uIHRoaXMgY2F1c2VkKS5cbiAgICAvLyBgY2xpcGAgb24gYm90aCBheGVzIHN0aWxsIGNsaXBzIHRoZSBkcmF3ZXIncyBvZmYtc2NyZWVuIHRyYW5zbGF0ZVggaW5cbiAgICAvLyBuYXJyb3cgbW9kZSwgYnV0IOKAlCB1bmxpa2UgaGlkZGVuL2F1dG8vc2Nyb2xsIOKAlCBuZXZlciBlc3RhYmxpc2hlcyBhXG4gICAgLy8gc2Nyb2xsIGNvbnRhaW5lciwgc28gc3RpY2t5IGNvcnJlY3RseSBzZWVzIHN0cmFpZ2h0IHRocm91Z2ggc2hlbGwgdG9cbiAgICAvLyB0aGUgcmVhbCBzY3JvbGxpbmcgYW5jZXN0b3IuXG4gICAgb3ZlcmZsb3c6IGNsaXA7XG59XG5cbi5kbXMtaWRvYy1tYWluIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLy8gQ2VudGVyaW5nIG5vdyBjb21lcyBmcm9tIC5kbXMtaWRvYy1tYWluJ3MgZmxleGJveCwgbm90IHRoZSBwYWdlJ3Mgb3duXG4vLyBhdXRvLW1hcmdpbnMgKHdoaWNoIHN0YXkgaW4gZWZmZWN0IOKAlCBhbmQgY29ycmVjdCDigJQgZm9yIHRoZSBuby10b2MgY2FzZSkuXG4uZG1zLWlkb2MtbWFpbiAuZG1zLWlkb2MtcGFnZSB7IG1hcmdpbjogMDsgfVxuXG4uZG1zLWlkb2MtdG9jIHtcbiAgICBmbGV4OiAwIDAgMjIwcHg7XG4gICAgd2lkdGg6IDIyMHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAvLyBgdG9wYCBvbiBhIHN0aWNreSBlbGVtZW50IGlzIE5PVCBcIm9ubHkgYXBwbGllZCBvbmNlIHlvdSBzY3JvbGwgcGFzdFxuICAgIC8vIGl0XCIg4oCUIGl0J3MgQUxXQVlTIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnQncyBvd24gc3RhdGljIHBvc2l0aW9uIChzYW1lXG4gICAgLy8gYXMgcG9zaXRpb246cmVsYXRpdmUgd291bGQpLCBzbyBgdG9wOjE2cHhgIGhlcmUgbWFkZSB0aGUgVE9DIHJlbmRlclxuICAgIC8vIDE2cHggQkVMT1cgdGhlIGRvY3VtZW50IGNhcmQgbmV4dCB0byBpdCBldmVuIGF0IHJlc3QsIHVuc2Nyb2xsZWRcbiAgICAvLyAoSmFuLCAyMDI2LTA3LTIyIOKAlCBjb25maXJtZWQgYnkgbWVhc3VyaW5nLCBub3QgYXNzdW1lZDogNjRweCB2cyB0aGVcbiAgICAvLyBkb2N1bWVudCdzIDQ4cHgpLiBgdG9wOjBgIG1ha2VzIGl0IHJlbmRlciBmbHVzaCB3aXRoIGl0cyBuYXR1cmFsIGZsb3dcbiAgICAvLyBwb3NpdGlvbiDigJQgaS5lLiBsZXZlbCB3aXRoIC5kbXMtaWRvYy1tYWluIOKAlCBhbmQgaXQgc3RpbGwgc3RpY2tzIHRvIHRoZVxuICAgIC8vIHNjcm9sbGluZyBhbmNlc3RvcidzIHZlcnkgdG9wIGVkZ2Ugb25jZSBzY3JvbGxlZCB0aGF0IGZhci5cbiAgICB0b3A6IDA7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZjA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDMycHgpO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgYm94LXNoYWRvdzogMCA0cHggMjRweCByZ2JhKDAsIDAsIDAsIC4xOCk7XG59XG4uZG1zLWlkb2MtdG9jW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9IC8vIGZ1bGx5IGVtcHR5IFRPQyDigJQgbm8gcGFuZWwgYXQgYWxsXG5cbi5kbXMtaWRvYy10b2MtaGVhZGVyIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uZG1zLWlkb2MtdG9jLXRvZ2dsZSB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDRweCAycHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAuODJyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogLjAzZW07XG5cbiAgICBxZG5hcHJvLWljb24geyBmbGV4OiAwIDAgYXV0bzsgfVxufVxuXG4uZG1zLWlkb2MtdG9jLWxpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiA4cHggMCAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xufVxuXG4uZG1zLWlkb2MtdG9jLWl0ZW0ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogNnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgZm9udC1zaXplOiAuODVyZW07XG4gICAgY29sb3I6ICMzMzM0NGE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICNlZGVlZmI7IGNvbG9yOiAjNDA0OTlhOyB9XG59XG5cbi8vIE5hcnJvdy1kcmF3ZXItb25seSBjb250cm9scyAodGhlIGZsb2F0aW5nIG9wZW4gYnV0dG9uICsgdGhlIGRyYXdlcidzIG93blxuLy8gY2xvc2UvWCkg4oCUIGBkaXNwbGF5Om5vbmVgIGJ5IGRlZmF1bHQgc28gdGhleSBuZXZlciBzaG93IG9uIGEgd2lkZVxuLy8gY29udGFpbmVyOyB0aGUgQGNvbnRhaW5lciBibG9jayBiZWxvdyB0dXJucyB0aGVtIG9uLiBLZXB0IGFzIHRoZWlyIG93blxuLy8gcnVsZXMgKG5vdCBuZXN0ZWQgaW5zaWRlIHRoZSBAY29udGFpbmVyKSBvbmx5IHNvIHRoZSBcImhpZGRlbiBldmVyeXdoZXJlXG4vLyBlbHNlXCIgZGVmYXVsdCBpcyB2aXNpYmxlL29idmlvdXMgYXQgYSBnbGFuY2UuXG4uZG1zLWlkb2MtdG9jLWZhYiB7IGRpc3BsYXk6IG5vbmU7IH1cbi5kbXMtaWRvYy10b2MtY2xvc2UgeyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIE5hcnJvdyBDT05UQUlORVIgKHRoZSBzaGVsbCBpdHNlbGYg4omkIDc2MHB4IOKAlCBtb2JpbGUtcHJldmlldyBmcmFtZSBPUiBhIHJlYWxcbi8vIHBob25lLXdpZHRoIHZpZXdlcikuIFJFREVTSUdORUQgMjAyNi0wNy0yMiAoSmFuOiBcInVzZXIgY29uc3RhbnRseSBoYXMgdG9cbi8vIHNjcm9sbCBhbGwgdGhlIHdheSB1cCB0byByZWFjaCB0aGUgVE9DXCIpIOKAlCB0aGUgb2xkIGJlaGF2aW91ciBzdGFja2VkIGFcbi8vIGNvbGxhcHNpYmxlIGJhciBBQk9WRSB0aGUgcGFnZSwgd2hpY2ggc2Nyb2xsZWQgYXdheSB3aXRoIHRoZSByZXN0IG9mIHRoZVxuLy8gZG9jdW1lbnQuIE5vdyB0aGUgVE9DIGlzIGEgc2xpZGUtaW4gRFJBV0VSOiBhIHJvdW5kIGZsb2F0aW5nIGJ1dHRvblxuLy8gKHRvcC1sZWZ0LCBhIFwicHNldWRvIGhhbWJ1cmdlciBtZW51XCIpIG9wZW5zIGl0OyB0aGUgZHJhd2VyIHNsaWRlcyBpbiBmcm9tXG4vLyB0aGUgbGVmdCB3aGlsZSB0aGUgZG9jdW1lbnQgaXMgcHVzaGVkIHRvIHRoZSByaWdodCBieSB0aGUgc2FtZSBkaXN0YW5jZTtcbi8vIGFuIFggaW5zaWRlIHRoZSBkcmF3ZXIgY2xvc2VzIGl0LiBBIEBjb250YWluZXIgKG5vdCBAbWVkaWEpIHNvIGl0IGZpcmVzIG9uXG4vLyB0aGUgc2hlbGwncyByZWFsIHdpZHRoIHJlZ2FyZGxlc3Mgb2YgdGhlIHN1cnJvdW5kaW5nIHdpbmRvdyAodGhlXG4vLyBkZXZpY2UtZnJhbWUtaW4tYS13aWRlLXdpbmRvdyBjYXNlLCBlLmcuIHRoZSBlZGl0b3IncyBvd24gTW9iaWVsIHByZXZpZXcpLlxuQGNvbnRhaW5lciAobWF4LXdpZHRoOiA3NjBweCkge1xuICAgIC8vIC5kbXMtaWRvYy1zaGVsbCdzIG93biBwb3NpdGlvbjpyZWxhdGl2ZS9vdmVyZmxvdy14OmhpZGRlbiBub3cgbGl2ZSBvbiBpdHNcbiAgICAvLyBVTkNPTkRJVElPTkFMIGJhc2UgcnVsZSBhYm92ZSDigJQgc2VlIHRoYXQgcnVsZSdzIGNvbW1lbnQgZm9yIHdoeS5cblxuICAgIC8vIFRoZSBkcmF3ZXIuIGBwb3NpdGlvbjpmaXhlZGAsIE5PVCBhYnNvbHV0ZSDigJQgSmFuICgyMDI2LTA3LTIyLCBjb25maXJtZWRcbiAgICAvLyBieSBoaXMgb3duIHRlc3RpbmcpOiB3aXRoIGBhYnNvbHV0ZWAgKHJlbGF0aXZlIHRvIC5kbXMtaWRvYy1zaGVsbCxcbiAgICAvLyB3aGljaCBzaXRzIElOU0lERSB0aGUgc2FtZSBkaXYgdGhhdCBhY3R1YWxseSBzY3JvbGxzIGluIGV2ZXJ5IGhvc3Qg4oCUXG4gICAgLy8gdGhlIGVkaXRvcidzIGAuaWRvYy1wcmV2aWV3LXNjcm9sbGAsIHRoZSB2aWV3ZXIncyBgLmRtcy1pZG9jLXNjcm9sbGApLFxuICAgIC8vIHRoZSBvcGVuIGRyYXdlciB2aXNpYmx5IHNjcm9sbGVkIGF3YXkgdG9nZXRoZXIgd2l0aCB0aGUgZG9jdW1lbnQg4oCUXG4gICAgLy8gZXhhY3RseSB0aGUgXCJoYXZlIHRvIGNoYXNlIGl0XCIgcHJvYmxlbSB0aGlzIHdob2xlIHJlZGVzaWduIGV4aXN0cyB0b1xuICAgIC8vIGZpeCwganVzdCBtb3ZlZCBmcm9tIHRoZSBjbG9zZWQtRkFCIGNhc2UgdG8gdGhlIG9wZW4tZHJhd2VyIGNhc2UuXG4gICAgLy8gYHBvc2l0aW9uOmZpeGVkYCBoZXJlIHVzZXMgdGhlIFNBTUUgZXNjYXBlIG1lY2hhbmlzbSB0aGUgZmxvYXRpbmdcbiAgICAvLyBvcGVuLWJ1dHRvbiAoLmRtcy1pZG9jLXRvYy1mYWIpIGFscmVhZHkgcmVsaWVzIG9uOiBpbiB0aGUgZWRpdG9yJ3Mgb3duXG4gICAgLy8gTW9iaWVsIHByZXZpZXcgaXQgZ2V0cyB0cmFwcGVkIGJ5IGAuaWRvYy1wcmV2aWV3LWNvbnRhaW5lcmAnc1xuICAgIC8vIGB0cmFuc2Zvcm1gIChpbnRlcmFjdGl2ZS1lZGl0b3IuaHRtbCkgc28gaXQgc3RheXMgcGlubmVkIHRvIHRoYXRcbiAgICAvLyBkZXZpY2UtZnJhbWU7IGluIHRoZSByZWFsIERNUyB2aWV3ZXIvcHVibGljIHNoYXJlIHBhZ2UgdGhlcmUgaXMgbm8gc3VjaFxuICAgIC8vIHRyYXBwaW5nIGFuY2VzdG9yLCBzbyBpdCBhbmNob3JzIHN0cmFpZ2h0IHRvIHRoZSB0cnVlIGJyb3dzZXIgdmlld3BvcnRcbiAgICAvLyDigJQgaW1tdW5lIHRvIGAuZG1zLWlkb2Mtc2Nyb2xsYCdzIChvciB0aGUgcGFnZSdzIG93bikgc2Nyb2xsaW5nIGJ5XG4gICAgLy8gZGVmaW5pdGlvbiwgd2hpY2ggaXMgZXhhY3RseSBcInN0YXlzIHB1dFwiIGZvciB0aG9zZSB0d28gaG9zdHMuXG4gICAgLy8gV2lkdGggaXMgZHVwbGljYXRlZCAoaWRlbnRpY2FsIGV4cHJlc3Npb24pIG9uIC5kbXMtaWRvYy1tYWluJ3NcbiAgICAvLyBwdXNoLXRyYW5zZm9ybSBiZWxvdyDigJQga2VlcCB0aGUgdHdvIGV4cHJlc3Npb25zIGluIHN5bmMgaWYgdGhpcyBldmVyXG4gICAgLy8gY2hhbmdlcy5cbiAgICAuZG1zLWlkb2MtdG9jIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiBtaW4oMzAwcHgsIDgyJSk7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4yNXMgZWFzZTtcbiAgICAgICAgei1pbmRleDogNTsgLy8gYWJvdmUgdGhlIChwdXNoZWQpIGRvY3VtZW50XG4gICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDMwcHggcmdiYSgwLCAwLCAwLCAuMjUpOyAvLyBkcmF3ZXIgc2hhZG93IGluc3RlYWQgb2YgdGhlIG9sZCBmbG9hdGluZy1wYW5lbCBzaGFkb3dcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsgLy8gdGhlIGRyYXdlciBzY3JvbGxzIGl0cyBPV04gKHBvc3NpYmx5IGxvbmcpIGxpc3QgaW5kZXBlbmRlbnRseSBvZiB0aGUgZG9jdW1lbnRcbiAgICB9XG4gICAgLmRtcy1pZG9jLXRvYy5kbXMtaWRvYy10b2Mtb3BlbiB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4gICAgLmRtcy1pZG9jLXRvYy1oZWFkZXIge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IC8vIHRpdGxlL3RvZ2dsZSBvbiB0aGUgbGVmdCwgdGhlIFggb24gdGhlIHJpZ2h0XG4gICAgfVxuICAgIC8vIFNob3duIG9ubHkgd2hpbGUgdGhlIGRyYXdlciBpcyBhY3R1YWxseSBvcGVuIChhIHBsYWluIGRlc2NlbmRhbnQgc2VsZWN0b3Ig4oCUXG4gICAgLy8gLmRtcy1pZG9jLXRvYy1jbG9zZSBsaXZlcyBJTlNJREUgbmF2LCB1bmxpa2UgdGhlIEZBQiBiZWxvdykuXG4gICAgLmRtcy1pZG9jLXRvYy5kbXMtaWRvYy10b2Mtb3BlbiAuZG1zLWlkb2MtdG9jLWNsb3NlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiAjNmI2ODg0O1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcblxuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogI2VkZWVmYjsgY29sb3I6ICM0MDQ5OWE7IH1cbiAgICB9XG5cbiAgICAuZG1zLWlkb2MtbWFpbiB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjI1cyBlYXNlO1xuICAgIH1cbiAgICAvLyBQdXNoZXMgdGhlIGRvY3VtZW50IHJpZ2h0IGJ5IHRoZSBkcmF3ZXIncyBvd24gd2lkdGggV0hJTEUgaXQncyBvcGVuIOKAlCB0aGVcbiAgICAvLyBgfmAgZ2VuZXJhbC1zaWJsaW5nIGNvbWJpbmF0b3IgbWF0Y2hlcyAuZG1zLWlkb2MtbWFpbiBiZWNhdXNlIGl0IGNvbWVzXG4gICAgLy8gQUZURVIgLmRtcy1pZG9jLXRvYyBpbiBET00gb3JkZXIgKHNlZSBkbXMtaWRvYy1yZW5kZXIuanMncyByZW5kZXIoKSkuXG4gICAgLmRtcy1pZG9jLXRvYy5kbXMtaWRvYy10b2Mtb3BlbiB+IC5kbXMtaWRvYy1tYWluIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKG1pbigzMDBweCwgODIlKSk7XG4gICAgfVxuXG4gICAgLy8gVGhlIGZsb2F0aW5nIFwib3BlblwiIGJ1dHRvbiDigJQgYSBTSUJMSU5HIG9mIC5kbXMtaWRvYy10b2MgKG5vdCBhXG4gICAgLy8gZGVzY2VuZGFudCksIHNvIGl0IHN0YXlzIHZpc2libGUgd2hpbGUgdGhlIGRyYXdlciBpdHNlbGYgc2l0c1xuICAgIC8vIG9mZi1zY3JlZW4uIGBwb3NpdGlvbjpmaXhlZGAgaGVyZSBpcyByZWxhdGl2ZSB0byB0aGUgbmVhcmVzdCBhbmNlc3RvclxuICAgIC8vIHRoYXQgZXN0YWJsaXNoZXMgYSBjb250YWluaW5nIGJsb2NrIGZvciBmaXhlZC1wb3NpdGlvbiBlbGVtZW50cyAodGhlXG4gICAgLy8gcmVhbCBicm93c2VyIHZpZXdwb3J0IGZvciB0aGUgRE1TIHZpZXdlci9wdWJsaWMgc2hhcmUgcGFnZTsgdGhlXG4gICAgLy8gZWRpdG9yJ3Mgb3duIE1vYmllbC1wcmV2aWV3IGRldmljZS1mcmFtZSBnZXRzIGl0cyBvd24gY29udGFpbmluZy1ibG9ja1xuICAgIC8vIG92ZXJyaWRlIGluIGludGVyYWN0aXZlLWVkaXRvci5odG1sLCBzbyB0aGUgYnV0dG9uIHN0YXlzIHBpbm5lZCB0b1xuICAgIC8vIHRoYXQgZnJhbWUgaW5zdGVhZCBvZiBlc2NhcGluZyB0byB0aGUgcmVhbCBkZXNrdG9wIHdpbmRvdykuXG4gICAgLmRtcy1pZG9jLXRvYy1mYWIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDE2cHg7XG4gICAgICAgIGxlZnQ6IDE2cHg7XG4gICAgICAgIHotaW5kZXg6IDY7XG4gICAgICAgIHdpZHRoOiA0NHB4O1xuICAgICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNDA0OTlhO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMCwgMCwgLjI4KTtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMTJzIGVhc2U7XG5cbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICMzMzNhODA7IH1cbiAgICB9XG4gICAgLy8gSGlkZGVuIHdoaWxlIHRoZSBkcmF3ZXIgaXMgb3BlbiAodGhlIFggaW5zaWRlIHRoZSBkcmF3ZXIgaXMgdGhlIGNsb3NlXG4gICAgLy8gYWZmb3JkYW5jZSB0aGVuKSDigJQgc2FtZSBzaWJsaW5nLWNvbWJpbmF0b3IgcmVhc29uaW5nIGFzIC5kbXMtaWRvYy1tYWluLlxuICAgIC5kbXMtaWRvYy10b2MuZG1zLWlkb2MtdG9jLW9wZW4gfiAuZG1zLWlkb2MtdG9jLWZhYiB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGYXNlIDMg4oCUIHBhbmVscyAoYWNjb3JkaW9uICsgXCJtb3JlIGluZm9cIilcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTmVzdGVkIGJsb2NrcyByZXVzZSB0aGUgcGxhaW4gZmFzZS0wIGxlYWYgcnVsZXMgYWJvdmUgdmVyYmF0aW0gdmlhXG4vLyBkbXMtaWRvYy1yZW5kZXIuanMncyBvd24gYmxvY2tOb2RlKCkgcmVjdXJzaW9uIChhcHBlbmROZXN0ZWRCbG9ja3MpIOKAlCBubyBuZXdcbi8vIGxlYWYtbGV2ZWwgcnVsZXMgYXJlIG5lZWRlZCBoZXJlLCBvbmx5IHRoZSBwYW5lbCBjaHJvbWUgaXRzZWxmLlxuXG4uZG1zLWlkb2MtYmxvY2stcGFuZWwgeyBtaW4td2lkdGg6IDA7IH1cblxuLmRtcy1pZG9jLXBhbmVsZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi5kbXMtaWRvYy1wYW5lbCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZTJmMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLmRtcy1pZG9jLXBhbmVsLWhlYWQge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE0cHggMThweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjRmNGZhOyAvLyBzb2xpZCDigJQgbmVlZHMgdG8gc2l0IHZpc3VhbGx5IEFCT1ZFIHRoZSBib2R5IGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzY3JvbGxpbmcgYmVuZWF0aCBpdCBvbmNlIHN0aWNreSAoc2VlIGJlbG93KVxuICAgIGNvbG9yOiAjMjMyNTNhO1xuICAgIGZvbnQtc2l6ZTogLjk1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4OyAvLyBtYXRjaGVzIC5kbXMtaWRvYy1wYW5lbCdzIG93biByYWRpdXMgd2hpbGUgY2xvc2VkXG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogI2VkZWVmYjsgfVxufVxuXG4vLyBTdGlja3kgT05MWSB3aGlsZSBPUEVOIChaZW55YSBwYXJpdHksIHNlZSB0aGUgZmlsZS1oZWFkZXIgY29tbWVudCBpblxuLy8gZG1zLWlkb2MtcmVuZGVyLmpzKSDigJQgYSBjbG9zZWQgcGFuZWwgaGFzIG5vIGJvZHkgaGVpZ2h0IHRvIHNjcm9sbCBwYXN0LCBzb1xuLy8gaXRzIGhlYWRlciBqdXN0IHN0YXlzIGluIG5vcm1hbCBmbG93LiBHYXRpbmcgdGhpcyBvbiB0aGUgYC1vcGVuYCBhbmNlc3RvclxuLy8gY2xhc3MgYWxzbyBhdm9pZHMgc2V2ZXJhbCBzaW11bHRhbmVvdXNseS1zdGlja3kgQ0xPU0VEIGhlYWRlcnMgc3RhY2tpbmcgdXBcbi8vIGFzIHRoZSByZWFkZXIgc2Nyb2xscyBxdWlja2x5IHBhc3QgYSBydW4gb2YgY29sbGFwc2VkIHBhbmVscy5cbi5kbXMtaWRvYy1wYW5lbC1vcGVuID4gLmRtcy1pZG9jLXBhbmVsLWhlYWQge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IDI7IC8vIGFib3ZlIHRoZSBwYW5lbCBib2R5IGNvbnRlbnQgc2Nyb2xsaW5nIHVuZGVybmVhdGggaXRcbiAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDsgLy8gc3F1YXJlcyBvZmYgdGhlIGJvdHRvbSBjb3JuZXJzIHdoaWxlIG9wZW5cbn1cblxuLmRtcy1pZG9jLXBhbmVsLWNoZXZyb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMTVzIGVhc2U7XG59XG5cbi5kbXMtaWRvYy1wYW5lbC1vcGVuIC5kbXMtaWRvYy1wYW5lbC1jaGV2cm9uIHsgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5kbXMtaWRvYy1wYW5lbC1jaGV2cm9uIHsgdHJhbnNpdGlvbjogbm9uZTsgfVxufVxuXG4uZG1zLWlkb2MtcGFuZWwtYm9keSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDsgLy8gc2FtZSByaHl0aG0gYXMgLmRtcy1pZG9jLXBhZ2UncyBvd24gdG9wLWxldmVsIGJsb2NrIGdhcFxuICAgIHBhZGRpbmc6IDE2cHggMThweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2UyZTJmMDtcbn1cblxuLmRtcy1pZG9jLXBhbmVsLW9wZW4gPiAuZG1zLWlkb2MtcGFuZWwtYm9keSB7IGRpc3BsYXk6IGZsZXg7IH1cblxuLy8gLS0tLSBcIm1vcmUgaW5mb1wiIHRlYXNlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uZG1zLWlkb2MtbW9yZWluZm8ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZjA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmN2Y3ZmI7XG59XG5cbi5kbXMtaWRvYy1tb3JlaW5mby10b2dnbGUge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGZvbnQtc2l6ZTogLjg4cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICNlZGVlZmI7IH1cblxuICAgIHNwYW4geyBmbGV4OiAxIDEgYXV0bzsgfVxuXG4gICAgLmRtcy1pZG9jLXBhbmVsLWNoZXZyb24geyBjb2xvcjogIzQwNDk5YTsgfVxufVxuXG4uZG1zLWlkb2MtbW9yZWluZm8tb3BlbiAuZG1zLWlkb2MtbW9yZWluZm8tdG9nZ2xlIHsgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7IH1cblxuLmRtcy1pZG9jLW1vcmVpbmZvLWJvZHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMCAxNnB4IDE2cHg7XG59XG5cbi5kbXMtaWRvYy1tb3JlaW5mby1vcGVuIC5kbXMtaWRvYy1tb3JlaW5mby1ib2R5IHsgZGlzcGxheTogZmxleDsgfVxuXG4vLyAtLS0tIFRPQzogYWNjb3JkaW9uIHBhbmVsIHRpdGxlcyBnZXQgYSBuZXN0ZWQvaW5kZW50ZWQgZW50cnkgLS0tLS0tLS0tLS0tLS0tXG5cbi5kbXMtaWRvYy10b2MtaXRlbS1pbmRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICBmb250LXNpemU6IC44cmVtO1xuICAgIGNvbG9yOiAjNmI2ODg0O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZhc2UgNCDigJQgaW1hZ2UgaG90c3BvdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTWFya2Vycy9wb3BvdmVycyBhcmUgcG9zaXRpb25lZCBpbnNpZGUgLmRtcy1pZG9jLWltZy13cmFwIChzZWUgYWJvdmUg4oCUIGl0c1xuLy8gYm94ID09IHRoZSA8aW1nPidzIHJlbmRlcmVkIGJveCBmb3IgZXZlcnkgc2l6ZSBjbGFzcyksIHZpYSBpbmxpbmVcbi8vIGxlZnQvdG9wIHNldCBmcm9tIHRoZSBob3RzcG90J3MgeC95IGZyYWN0aW9uIChkbXMtaWRvYy1yZW5kZXIuanMpLiBDb2xvdXJcbi8vIGl0c2VsZiBpcyBBTFNPIGlubGluZSAob25lIG9mIHRoZSA4IGhvdXNlIGhleCB2YWx1ZXMpIOKAlCBuZXZlciBnZW5lcmF0ZWQgYXNcbi8vIDggQ1NTIGNsYXNzZXMuXG5cbi5kbXMtaWRvYy1ob3RzcG90IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IC8vIGNlbnRlcnMgdGhlIG1hcmtlciBPTiB0aGUgeC95IHBvaW50XG4gICAgei1pbmRleDogMTsgLy8gc2l0cyBhYm92ZSB0aGUgPGltZz4gaXRzZWxmIChzYW1lIHdyYXAsIGxhdGVyIGluIERPTSBvcmRlclxuICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgd291bGQ7IHotaW5kZXggbWFrZXMgaXQgZXhwbGljaXQvcm9idXN0KVxuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIC4zNSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogZGVmYXVsdDsgLy8gbm9uLWludGVyYWN0aXZlIChuZWl0aGVyIHRleHQgbm9yIGhyZWYpIOKAlCB0aGUgZGVmYXVsdCBzdGF0ZVxufVxuXG4vLyBJbnRlcmFjdGl2ZSBzaGFwZXMgb25seSAodGV4dCBhbmQvb3IgaHJlZiBwcmVzZW50KSDigJQgc2VlIGJ1aWxkSG90c3BvdE5vZGUuXG4uZG1zLWlkb2MtaG90c3BvdC1jbGlja2FibGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjEycyBlYXNlO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAvLyBrZWVwIEJPVEggdGhlIGNlbnRlcmluZyB0cmFuc2xhdGUgYW5kIHRoZSBob3ZlciBzY2FsZSDigJQgcmVwbGFjaW5nXG4gICAgICAgIC8vIHRyYW5zZm9ybSBvdXRyaWdodCBoZXJlIChkcm9wcGluZyB0aGUgdHJhbnNsYXRlKSB3b3VsZCB2aXNpYmx5XG4gICAgICAgIC8vIHNoaWZ0IHRoZSBtYXJrZXIgb2ZmIGl0cyBwb2ludC5cbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS4xNSk7XG4gICAgfVxufVxuXG4uZG1zLWlkb2MtaG90c3BvdDpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgIzQwNDk5YTtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5kbXMtaWRvYy1ob3RzcG90LWNsaWNrYWJsZSB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG4gICAgfVxufVxuXG4uZG1zLWlkb2MtaG90c3BvdC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAuNjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLy8gdGhlIG1hcmtlciBlbGVtZW50IGl0c2VsZiBpcyB0aGUgY2xpY2sgdGFyZ2V0XG59XG5cbi8vIEEgY3VycmVudGx5LW9wZW4gbWFya2VyIGdldHMgYSBzb2Z0IG91dGVyIHJpbmcgaW4gdGhlIGhvdXNlIGJyYW5kIGNvbG91ciDigJRcbi8vIHB1cmVseSBhIHZpc3VhbCBcInRoaXMgb25lIGlzIGV4cGFuZGVkXCIgY3VlIChtaXJyb3JzIHRoZSBhY2NvcmRpb24gcGFuZWwnc1xuLy8gb3duIG9wZW4tc3RhdGUgY2hldnJvbiByb3RhdGlvbiBlbHNld2hlcmUgaW4gdGhpcyBmaWxlKS5cbi5kbXMtaWRvYy1ob3RzcG90LW9wZW4ge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDY0LCA3MywgMTU0LCAuMzUpLCAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAuMzUpO1xufVxuXG4uZG1zLWlkb2MtaG90c3BvdC1wb3Age1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyBsZWZ0L3RvcCBzZXQgaW5saW5lIChzYW1lIHgveSBwb2ludCBhcyBpdHMgb3duIG1hcmtlcik7IHRoaXMgdHJhbnNmb3JtXG4gICAgLy8gY2VudGVycyBpdCBob3Jpem9udGFsbHkgdW5kZXIgdGhhdCBwb2ludCBhbmQgZHJvcHMgaXQgYmVsb3cgdGhlXG4gICAgLy8gbWFya2VyIOKAlCB2ZXJ0aWNhbCBvdmVyZmxvdyBpcyBkZWxpYmVyYXRlbHkgc2ltcGxlIChwZXIgc3BlYywgXCJtYXlcbiAgICAvLyBleHRlbmQgYmVsb3cgdGhlIG1hcmtlciBpcyBmaW5lIGZvciB2MVwiKSwgYnV0IGEgbWFya2VyIG5lYXIgdGhlIExFRlQvXG4gICAgLy8gUklHSFQgZWRnZSBvZiBhIG5hcnJvdyAobW9iaWxlKSB2aWV3cG9ydCB1c2VkIHRvIGNlbnRlciB0aGUgcG9wb3ZlclxuICAgIC8vIGhhbGYgb2ZmLXNjcmVlbiB3aXRoIG5vIHdheSB0byByZWFjaCB0aGUgY2xpcHBlZCBjb250ZW50LiBkbXMtaWRvYy1cbiAgICAvLyByZW5kZXIuanMncyBjbGFtcEhvdHNwb3RQb3BvdmVyVG9WaWV3cG9ydCgpIG5vdyBtZWFzdXJlcyB0aGUgb3BlbmVkXG4gICAgLy8gcG9wb3ZlciBhbmQgc2V0cyBgLS1kbXMtaWRvYy1ocy1zaGlmdGAgdG8ganVzdCBlbm91Z2ggaG9yaXpvbnRhbFxuICAgIC8vIGNvcnJlY3Rpb24gdG8ga2VlcCBpdCBmdWxseSBvbi1zY3JlZW47IGl0IGRlZmF1bHRzIHRvIDBweCAobm8gdmlzdWFsXG4gICAgLy8gY2hhbmdlIGF0IGFsbCkgd2hlbmV2ZXIgdGhlIHBvcG92ZXIgYWxyZWFkeSBmaXRzLlxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGMoLTUwJSArIHZhcigtLWRtcy1pZG9jLWhzLXNoaWZ0LCAwcHgpKSwgMTRweCk7XG4gICAgei1pbmRleDogMjsgLy8gYWJvdmUgZXZlcnkgbWFya2VyLCBpbmNsLiB0aGlzIHBvcG92ZXIncyBvd24gbWFya2VyXG4gICAgbWF4LXdpZHRoOiAyNjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY29sb3I6ICMyMzI1M2E7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZTJmMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIC4yMik7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogLjg1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuLmRtcy1pZG9jLWhvdHNwb3QtcG9wW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9IC8vIHNhbWUgYGhpZGRlbmAtcHJvcGVydHkgY29udmVudGlvbiBhcyAuZG1zLWlkb2MtdG9jW2hpZGRlbl0gYWJvdmVcblxuLmRtcy1pZG9jLWhvdHNwb3QtcG9wLXRleHQge1xuICAgIG1hcmdpbjogMCAwIDhweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IC8vIGEgc2hvcnQgcmVmZXJlbmNlIHN0cmluZyBtYXkgc3RpbGwgY2FycnkgbGluZSBicmVha3Ncbn1cbi5kbXMtaWRvYy1ob3RzcG90LXBvcC10ZXh0Omxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5kbXMtaWRvYy1ob3RzcG90LWxpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAuODJyZW07XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsOyAvLyBhIGxvbmcgaG9zdG5hbWUvbWFpbHRvIGFkZHJlc3MgbXVzdCBuZXZlciBvdmVyZmxvdyB0aGUgMjYwcHggcG9wb3ZlclxuXG4gICAgJjpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbiAgICBxZG5hcHJvLWljb24geyBmbGV4OiAwIDAgYXV0bzsgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZhc2UgNSDigJQgZGVlcC1saW5rL3JldmVhbCAoLmRtcy1pZG9jLWZsYXNoKSwgaW4tZG9jdW1lbnQgc2VhcmNoXG4vLyAoLmRtcy1pZG9jLXNlYXJjaCosIC5kbXMtaWRvYy1tYXJrKiksIGFuZCBwcmludCAoLmRtcy1pZG9jLXByaW50Kilcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyAtLS0tIHJldmVhbEJsb2NrJ3MgYnJpZWYgXCJsb29rIGhlcmVcIiBwdWxzZSAoZG1zLWlkb2MtcmVuZGVyLmpzJ3Ncbi8vIGZsYXNoQmxvY2sg4oCUIGFkZGVkL3JlbW92ZWQgdmlhIGEgfjEuNnMgc2V0VGltZW91dCwgbWF0Y2hlZCBoZXJlIHRvIHRoZVxuLy8gU0FNRSBkdXJhdGlvbiBzbyB0aGUgY2xhc3MgaXMgYWx3YXlzIGdvbmUgYnkgdGhlIHRpbWUgdGhlIEpTIHJlbW92ZXMgaXQpLlxuLy8gV29ya3Mgb24gYW55IGJsb2NrLXdyYXBwZXIgZWxlbWVudCByZWdhcmRsZXNzIG9mIGl0cyBvd24gYmFja2dyb3VuZCDigJRcbi8vIHRoZSBib3gtc2hhZG93IHJpbmcgbmV2ZXIgZGVwZW5kcyBvbiBvbmUsIGFuZCB0aGUgZmFkaW5nIGJhY2tncm91bmQtY29sb3Jcbi8vIHRpbnQgaXMgYWRkaXRpdmUgb24gdG9wIG9mIHdoYXRldmVyIHRoZSBlbGVtZW50IGFscmVhZHkgaGFzLlxuQGtleWZyYW1lcyBkbXMtaWRvYy1mbGFzaC1wdWxzZSB7XG4gICAgMCUge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSg2NCwgNzMsIDE1NCwgLjU1KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg2NCwgNzMsIDE1NCwgLjEpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoNjQsIDczLCAxNTQsIDApO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG4uZG1zLWlkb2MtZmxhc2gge1xuICAgIGFuaW1hdGlvbjogZG1zLWlkb2MtZmxhc2gtcHVsc2UgMS42cyBlYXNlLW91dDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5kbXMtaWRvYy1mbGFzaCB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuXG4vLyAtLS0tIGluLWRvY3VtZW50IHNlYXJjaCDigJQgZ2VuZXJpYyBiYXIvaW5wdXQgY2xhc3NlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE5PVEU6IHRoZSBETVMgdmlld2VyIChWaWV3L3YxL2RvY3VtZW50cy92aWV3ZXIuaHRtbCkgYnVpbHQgaXRzIE9XTlxuLy8gcGFnZS1zY29wZWQgc2VhcmNoIGJhciAoLmRtcy12LXNlYXJjaCosIHN0eWxlZCBpbmxpbmUgdGhlcmUgdG8gbWF0Y2ggaXRzXG4vLyBkYXJrIHZpZXdlciBjaHJvbWUpIHJhdGhlciB0aGFuIHVzaW5nIHRoZXNlIOKAlCB0aGVzZSBjbGFzc2VzIHN0YXkgaGVyZSwgaW5cbi8vIHRoZSBzaGFyZWQgc3R5bGVzaGVldCwgZm9yIGFueSBPVEhFUiBob3N0IHRoYXQgd2FudHMgYW4gaW4tZG9jdW1lbnQgc2VhcmNoXG4vLyBiYXIgaW4gdGhlIHNoYXJlZCByZW5kZXJlcidzIG93biB2aXN1YWwgbGFuZ3VhZ2UgKGUuZy4gdGhlIGZhc2UtMSBWdWVcbi8vIGVkaXRvcidzIHByZXZpZXcgcGFuZSkgd2l0aG91dCBoYW5kLXJvbGxpbmcgb25lIGZyb20gc2NyYXRjaC5cbi5kbXMtaWRvYy1zZWFyY2gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjdmN2ZiO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZjA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcblxuICAgIHFkbmFwcm8taWNvbiB7IGNvbG9yOiAjNmI2ODg0OyBmbGV4OiAwIDAgYXV0bzsgfVxufVxuXG4uZG1zLWlkb2Mtc2VhcmNoLWlucHV0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAjMjMyNTNhO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkN2Q4ZWM7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogLjg1cmVtO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAmOmZvY3VzIHsgYm9yZGVyLWNvbG9yOiAjNDA0OTlhOyB9XG4gICAgJjo6cGxhY2Vob2xkZXIgeyBjb2xvcjogIzhhOGZiNTsgfVxuICAgIC8vIEEgaG9zdCByZW5kZXJzIGl0cyBvd24gY2xlYXIgKOKclSkgYnV0dG9uIOKAlCBoaWRlIHRoZSBuYXRpdmUgV2ViS2l0IG9uZVxuICAgIC8vIHNvIHRoZXJlIGlzIG9ubHkgZXZlciBvbmUsIHNhbWUgY29udmVudGlvbiBhcyB2aWV3ZXIuaHRtbCdzIG93biBiYXIuXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxufVxuXG4uZG1zLWlkb2Mtc2VhcmNoLWNvdW50IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IC44cmVtO1xuICAgIGNvbG9yOiAjNmI2ODg0O1xuICAgIG1pbi13aWR0aDogNDRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZG1zLWlkb2Mtc2VhcmNoLWNvdW50W2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4uZG1zLWlkb2Mtc2VhcmNoLWNvdW50LW5vbWF0Y2ggeyBjb2xvcjogI2MwMzkyYjsgfVxuXG4uZG1zLWlkb2Mtc2VhcmNoLW5hdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMnB4O1xufVxuXG4vLyAtLS0tIHNlYXJjaCByZXN1bHQgaGlnaGxpZ2h0aW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gV3JhcHBlZCA8bWFyaz4gZWxlbWVudHMg4oCUIHNlZSBkbXMtaWRvYy1yZW5kZXIuanMncyBoaWdobGlnaHRUZXh0SW5FbGVtZW50L1xuLy8gd3JhcE1hdGNoZXNJblRleHROb2RlL3VubWFya0VsZW1lbnQuIGAuZG1zLWlkb2MtbWFyay1jdXJyZW50YCBpcyBhIHBsYWluXG4vLyBFWFRSQSBjbGFzcyBvbiB0aGUgc2FtZSA8bWFyaz4gZWxlbWVudCAobmV2ZXIgYSBzZWNvbmQgd3JhcHBlcikgbWFya2luZ1xuLy8gdGhlIGN1cnJlbnRseS1uYXZpZ2F0ZWQtdG8gaGl0J3Mgb2NjdXJyZW5jZXMgd2l0aGluIGl0cyBvd24gYmxvY2svcGFuZWxcbi8vIGVudHJ5IOKAlCBzZWUgc2V0Q3VycmVudE1hcmtTY29wZS5cbi5kbXMtaWRvYy1tYXJrIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZlMDhhO1xuICAgIGNvbG9yOiAjMjMyNTNhO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBwYWRkaW5nOiAwIDFweDtcbn1cbi5kbXMtaWRvYy1tYXJrLWN1cnJlbnQge1xuICAgIGJhY2tncm91bmQ6ICNlODkxMmQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMjMyLCAxNDUsIDQ1LCAuMzUpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZhc2UgNSDigJQgcHJpbnQgKHJlbmRlckZvclByaW50KVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZW5kZXJGb3JQcmludCgpIChkbXMtaWRvYy1yZW5kZXIuanMpIGJ1aWxkcyBhIGZ1bGx5LWV4cGFuZGVkLCBzdGF0aWMgRE9NXG4vLyB0cmVlIGludG8gYSBjYWxsZXItc3VwcGxpZWQgY29udGFpbmVyLiBUaGUgS05PV04gY2FsbGVyICh2aWV3ZXIuaHRtbCdzXG4vLyBkb1ByaW50KCkpIHdyYXBzIHRoYXQgY29udGFpbmVyJ3MgRU5USVJFIGlubmVySFRNTCBpbiBpdHMgT1dOXG4vLyBgPGRpdiBjbGFzcz1cImRtcy1pZG9jLXByaW50XCI+YCBiZWZvcmUgd3JpdGluZyBpdCBpbnRvIGEgZnJlc2ggcG9wdXAgcHJpbnRcbi8vIHdpbmRvdyB0aGF0IGFsc28gbG9hZHMgVEhJUyBTQU1FIHN0eWxlc2hlZXQg4oCUIGRtcy1pZG9jLXJlbmRlci5qcyBuZXZlclxuLy8gY3JlYXRlcyB0aGF0IGVsZW1lbnQgaXRzZWxmIChpdHMgb3duIHJvb3QgaXMgdGhlIG5lc3RlZFxuLy8gYC5kbXMtaWRvYy1wcmludC1kb2NgLCBwdXJlbHkgZm9yIGl0cyBvd24gZG9jdW1lbnQtbGV2ZWwgdHlwb2dyYXBoeS9cbi8vIG1heC13aWR0aCwgbmV2ZXIgcmVuZGVyL3ByaW50LWNocm9tZSkuIFNvIGAuZG1zLWlkb2MtcHJpbnRgIGlzIHRoZSBvbmVcbi8vIHdyYXBwZXIgY2xhc3MgZXZlcnkgcnVsZSBiZWxvdyBpcyB3cml0dGVuIHRvIHdvcmsgY29ycmVjdGx5IHVuZGVybmVhdGgsXG4vLyBldmVuIHRob3VnaCBpdCBuZXZlciBhcHBlYXJzIGluIHRoaXMgZmlsZSdzIG93biBjbGFzcyBsaXN0LlxuLmRtcy1pZG9jLXByaW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAjMjMyNTNhO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuXG4uZG1zLWlkb2MtcHJpbnQtZG9jIHtcbiAgICBtYXgtd2lkdGg6IDc2MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxOHB4O1xuICAgIGZvbnQtc2l6ZTogLjkycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU1O1xufVxuXG4uZG1zLWlkb2MtcHJpbnQtYmxvY2sge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IC8vIGxlZ2FjeSBhbGlhcywgc3RpbGwgbWVhbmluZ2Z1bCBpbiBzZXZlcmFsIHByaW50IGVuZ2luZXNcbiAgICBicmVhay1pbnNpZGU6IGF2b2lkO1xufVxuXG4vLyBBIGNvbmRpdGlvbmVkIGJsb2NrJ3MgaW5mb3JtYXRpb25hbCBcIsKrbGFiZWxzLnZpc2libGVXaGVuwrsg4oCmXCIgbGluZSAobm8gaTE4blxuLy8gYWNjZXNzIGluc2lkZSBkbXMtaWRvYy1yZW5kZXIuanMgaXRzZWxmIOKAlCB0aGUgcHJlZml4IHN0cmluZyBpc1xuLy8gaG9zdC1zdXBwbGllZCwgc2VlIHByaW50Q29uZGl0aW9uc0xpbmUncyBvd24gZG9jIGNvbW1lbnQpLiBQdXJlbHlcbi8vIGRlc2NyaXB0aXZlIOKAlCBwcmludCBuZXZlciBoaWRlcy9zaG93cyBhbnl0aGluZyBiYXNlZCBvbiBpdC5cbi5kbXMtaWRvYy1wcmludC1jb25kaXRpb24ge1xuICAgIGZvbnQtc2l6ZTogLjc4cmVtO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBjb2xvcjogIzZiNjg4NDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG5cbi5kbXMtaWRvYy1wcmludC1jaG9pY2UgeyBtaW4td2lkdGg6IDA7IH1cbi5kbXMtaWRvYy1wcmludC1jaG9pY2UtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4wMnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMCAwIDZweDtcbiAgICBjb2xvcjogIzIzMjUzYTtcbn1cbi5kbXMtaWRvYy1wcmludC1jaG9pY2Utb3B0aW9ucyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMS4zZW07XG59XG5cbi5kbXMtaWRvYy1wcmludC1pbWFnZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICBicmVhay1pbnNpZGU6IGF2b2lkO1xufVxuLmRtcy1pZG9jLXByaW50LWltZy13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIG9mZnNldCBwYXJlbnQgZm9yIHRoZSBudW1iZXJlZCBtYXJrZXIgc3BhbnMgYmVsb3dcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDQ4MHB4O1xufVxuLmRtcy1pZG9jLXByaW50LWltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5kbXMtaWRvYy1wcmludC1jYXB0aW9uIHtcbiAgICBmb250LXNpemU6IC44cmVtO1xuICAgIGNvbG9yOiAjNmI2ODg0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLy8gTnVtYmVyZWQgaG90c3BvdCBtYXJrZXJzIOKAlCBwbGFpbiBzbWFsbCBjaXJjbGVzIGNhcnJ5aW5nIHRoZWlyIG93biBudW1iZXJcbi8vIChubyBwb3BvdmVyLCBubyBpbnRlcmFjdGl2aXR5OiB0aGUgbnVtYmVyZWQgbGVnZW5kIGxpc3QgYmVsb3cgdGhlIGltYWdlXG4vLyBzcGVsbHMgb3V0IGxhYmVsL3RleHQvaHJlZiBhcyBwbGFpbiB0ZXh0IGluc3RlYWQg4oCUIHByaW50IGhhcyBub1xuLy8gaW50ZXJhY3RpdmUgcG9wb3ZlcnMsIHBlciBzcGVjKS5cbi5kbXMtaWRvYy1wcmludC1ob3RzcG90IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IC8vIHNhbWUgY2VudGVyaW5nLW9uLXRoZS1wb2ludCBjb252ZW50aW9uIGFzIC5kbXMtaWRvYy1ob3RzcG90XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogLjY1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvLyBwdXJlbHkgZGVjb3JhdGl2ZSwgZXZlbiBpbiBhbiBvbi1zY3JlZW4gcHJpbnQgcHJldmlld1xufVxuLmRtcy1pZG9jLXByaW50LWhvdHNwb3QtbGVnZW5kIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDQ4MHB4O1xuICAgIG1hcmdpbjogNHB4IDAgMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNGVtO1xuICAgIGZvbnQtc2l6ZTogLjhyZW07XG4gICAgY29sb3I6ICMzMzM0NGE7XG59XG5cbi5kbXMtaWRvYy1wcmludC1wYW5lbGdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xufVxuLmRtcy1pZG9jLXByaW50LXBhbmVsIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlMmYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIGJyZWFrLWluc2lkZTogYXZvaWQ7XG59XG4uZG1zLWlkb2MtcHJpbnQtcGFuZWwtdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMyMzI1M2E7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLmRtcy1pZG9jLXByaW50LXBhbmVsLWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG59XG5cbkBtZWRpYSBwcmludCB7XG4gICAgLmRtcy1pZG9jLXByaW50IHsgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgIC5kbXMtaWRvYy1wcmludC1kb2Mge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIC8vIEEgYmxvY2svcGFuZWwvaW1hZ2Ugc2hvdWxkIG5ldmVyIHN0cmFkZGxlIGEgcGFnZSBicmVhayBpZiBpdCBjYW4gaGVscFxuICAgIC8vIGl0IOKAlCBiZXN0LWVmZm9ydCBvbmx5IChhIHZlcnkgbG9uZyB0YWJsZS90YWxsIGltYWdlIGNhbiBzdGlsbCBzcGxpdDtcbiAgICAvLyBicm93c2VyIHByaW50IGVuZ2luZXMgdmFyeSBpbiBob3cgc3RyaWN0bHkgdGhleSBob25vdXIgdGhpcykuXG4gICAgLmRtcy1pZG9jLXByaW50LWJsb2NrLFxuICAgIC5kbXMtaWRvYy1wcmludC1wYW5lbCxcbiAgICAuZG1zLWlkb2MtcHJpbnQtaW1hZ2Uge1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuICAgIC8vIExpbmtzIHByaW50IGFzIHBsYWluIHVuZGVybGluZWQgdGV4dCAobm8gaG92ZXIvcG9pbnRlciBhZmZvcmRhbmNlXG4gICAgLy8gbmVlZGVkIG9uIHBhcGVyKSDigJQgbm90aGluZyBlbHNlIHRvIGhpZGU6IHJlbmRlckZvclByaW50KCkgbmV2ZXIgYnVpbGRzXG4gICAgLy8gYSBUT0Mvc2VhcmNoIGJhci9kYXJrIGNocm9tZSBpbiB0aGUgZmlyc3QgcGxhY2UsIHNvIHRoZXJlIGlzIG5vXG4gICAgLy8gcmVzaWR1YWwgb24tc2NyZWVuLW9ubHkgY2hyb21lIHRvIHN1cHByZXNzIGhlcmUuXG4gICAgLmRtcy1pZG9jLXByaW50IGEgeyBjb2xvcjogaW5oZXJpdDsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGYXNlIDdhIOKAlCBhY3Rpb24gYmxvY2sgKGEgYnV0dG9uIHRoYXQgc3RhcnRzIGEgZmxvdylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2FtZSBjb2xvdXIgZmFtaWx5IGFzIGV2ZXJ5IG90aGVyIGJsb2NrIGFib3ZlOiBicmFuZCBwdXJwbGUgIzQwNDk5YSwgbGlnaHRcbi8vIGxhdmVuZGVyICNlZGVlZmIsICNlMmUyZjAgYm9yZGVycywgIzIzMjUzYSBkYXJrIHRleHQsICM2YjY4ODQgbXV0ZWQgdGV4dCDigJRcbi8vIG5vIG5ldyBjb2xvdXJzIGludHJvZHVjZWQuIFNlZSBkbXMtaWRvYy1yZW5kZXIuanMncyBvd24gZmFzZS03YSBjb21tZW50XG4vLyAoYnVpbGRBY3Rpb25Ob2RlL2Rlcml2ZUFjdGlvblN0YXRlKSBmb3IgdGhlIGZ1bGwgbGl2ZS91bmF2YWlsYWJsZS9wcmV2aWV3XG4vLyBzdGF0ZSBjb250cmFjdCB0aGlzIGRyZXNzZXMuXG5cbi5kbXMtaWRvYy1ibG9jay1hY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgLy8gdGhlIGJ1dHRvbiBzaXplcyB0byBpdHMgb3duIGNvbnRlbnQsIG5ldmVyIHN0cmV0Y2hlcyBmdWxsLXdpZHRoXG4gICAgZ2FwOiA2cHg7XG59XG5cbi5kbXMtaWRvYy1hY3Rpb24ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAyMnB4O1xuICAgIGZvbnQtc2l6ZTogLjkycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xNXMgZWFzZSwgYm9yZGVyLWNvbG9yIC4xNXMgZWFzZSwgdHJhbnNmb3JtIC4xcyBlYXNlO1xuXG4gICAgcWRuYXByby1pY29uIHsgZmxleDogMCAwIGF1dG87IH1cblxuICAgICY6YWN0aXZlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7IH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAjNDA0OTlhO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xuICAgIH1cbn1cblxuLmRtcy1pZG9jLWFjdGlvbi1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjNDA0OTlhO1xuICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgcWRuYXByby1pY29uIHsgY29sb3I6ICNmZmY7IH1cblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjMzMzYTgwOyB9XG59XG5cbi5kbXMtaWRvYy1hY3Rpb24tc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjZWRlZWZiO1xuICAgIGNvbG9yOiAjMjMyNTNhO1xuICAgIGJvcmRlci1jb2xvcjogI2Q3ZDhlYztcblxuICAgIHFkbmFwcm8taWNvbiB7IGNvbG9yOiAjNDA0OTlhOyB9XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogI2RmZTBmNzsgfVxufVxuXG4vLyAndW5hdmFpbGFibGUnIChmYXNlIDdhIHN0YXRlIDIpOiBhIHJlYWwgc2VydmVyIHNpZ25hbCB0aGF0IHRoZSBsaW5rIGlzXG4vLyBkZWFkIOKAlCBkaW1tZWQsIG5vdCBjbGlja2FibGUtbG9va2luZywgbm8gaG92ZXIgZmVlZGJhY2sgYXQgYWxsICh0aGVyZSBpc1xuLy8gbm90aGluZyBiZWhpbmQgaXQgdG8gaG92ZXIgVE9XQVJEUykuXG4uZG1zLWlkb2MtYWN0aW9uLWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAuNTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogaW5oZXJpdDsgfSAvLyBjYW5jZWwgdGhlIGJhc2UgY2xhc3MncyBvd24gaG92ZXIgZmlsbFxuICAgICY6YWN0aXZlIHsgdHJhbnNmb3JtOiBub25lOyB9XG59XG4uZG1zLWlkb2MtYWN0aW9uLXByaW1hcnkuZG1zLWlkb2MtYWN0aW9uLWRpc2FibGVkOmhvdmVyIHsgYmFja2dyb3VuZDogIzQwNDk5YTsgfVxuLmRtcy1pZG9jLWFjdGlvbi1zZWNvbmRhcnkuZG1zLWlkb2MtYWN0aW9uLWRpc2FibGVkOmhvdmVyIHsgYmFja2dyb3VuZDogI2VkZWVmYjsgfVxuXG4vLyAncHJldmlldycgKGZhc2UgN2Egc3RhdGUgMyk6IHRoZSBlZGl0b3IncyBvd24gbGl2ZS1wcmV2aWV3IHJlbmRlciDigJQgc3R5bGVkXG4vLyBzbyB0aGUgYXV0aG9yIGNhbiBzZWUgcm91Z2hseSB3aGF0IGl0IHdpbGwgbG9vayBsaWtlLCBidXQgdmlzdWFsbHkgbWFya2VkXG4vLyBhcyBcIm5vdCByZWFsbHkgbGl2ZVwiIHZpYSBhIGRhc2hlZCBvdXRsaW5lIChuZXZlciB0aGUgc29saWQgZGlzYWJsZWQgbG9va1xuLy8gYWJvdmUg4oCUIG5vdGhpbmcgaXMgd3JvbmcgaGVyZSwgaXQganVzdCBpc24ndCB3aXJlZCB1cCB0byBhIHJlYWwgbGluayB5ZXQpLlxuLmRtcy1pZG9jLWFjdGlvbi1wcmV2aWV3IHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjYpO1xuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IGluaGVyaXQ7IH1cbiAgICAmOmFjdGl2ZSB7IHRyYW5zZm9ybTogbm9uZTsgfVxufVxuLmRtcy1pZG9jLWFjdGlvbi1wcmltYXJ5LmRtcy1pZG9jLWFjdGlvbi1wcmV2aWV3OmhvdmVyIHsgYmFja2dyb3VuZDogIzQwNDk5YTsgfVxuLmRtcy1pZG9jLWFjdGlvbi1zZWNvbmRhcnkuZG1zLWlkb2MtYWN0aW9uLXByZXZpZXc6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZWRlZWZiOyB9XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLmRtcy1pZG9jLWFjdGlvbiB7IHRyYW5zaXRpb246IG5vbmU7IH1cbn1cblxuLmRtcy1pZG9jLWFjdGlvbi1ub3RlIHtcbiAgICBmb250LXNpemU6IC43OHJlbTtcbiAgICBjb2xvcjogIzZiNjg4NDtcbn1cbi5kbXMtaWRvYy1hY3Rpb24tbm90ZS1wcmV2aWV3IHsgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8vIC0tLS0gcHJpbnQgKHJlbmRlckZvclByaW50L3ByaW50QWN0aW9uTm9kZSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEEgcHJpbnRlZCBwcm90b2NvbCBjYW4gbmV2ZXIgc3RhcnQgYSBmbG93IOKAlCB0aGUgbGFiZWwgYWxvbmUsIGluIGEgcGxhaW5cbi8vIGJvcmRlcmVkIGJveCB0aGF0IHJlYWRzIGFzIFwidGhpcyB3YXMgYSBidXR0b25cIiB3aXRob3V0IGxvb2tpbmcgY2xpY2thYmxlXG4vLyBvbiBwYXBlciAobm8gY29sb3VyIGZpbGwsIG1hdGNoaW5nIHRoZSByZXN0IG9mIHRoaXMgZmlsZSdzIHByaW50IHNlY3Rpb24nc1xuLy8gaW5rLWNvbnNjaW91cywgY29sb3VyLWZyZWUgc3R5bGluZykuXG4uZG1zLWlkb2MtcHJpbnQtYWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuLmRtcy1pZG9jLXByaW50LWFjdGlvbi1sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM2YjY4ODQ7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMyMzI1M2E7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gSW50ZXJuYWwgcmVmZXJlbmNlcyAoMTQuMDguMjAyNikg4oCUIHRoZSBcIm5vdCBhdmFpbGFibGUgaGVyZVwiIG5vdGljZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTaG93biB3aGVuIGFuIGludGVybmFsIHJlZmVyZW5jZSBjYW5ub3QgYmUgZm9sbG93ZWQgZnJvbSB3aGVyZSB0aGUgcmVhZGVyXG4vLyBpcyBzdGFuZGluZzogdGhlIHB1YmxpYyBzaGFyZWQgcGFnZSAoaXRzIHRva2VuIGF1dGhvcmlzZXMgb25lIGZpbGUsIHNvIGFcbi8vIHJlZmVyZW5jZSB0byBhIHNlY29uZCBkb2N1bWVudCBpcyB1bnJlc29sdmFibGUgdGhlcmUpLCB0aGUgZWRpdG9yIHByZXZpZXcsXG4vLyBvciBhIHJlZmVyZW5jZSB3aG9zZSB0YXJnZXQgYmxvY2sgbm8gbG9uZ2VyIGV4aXN0cyBpbiB0aGlzIHZlcnNpb24uIEFic29sdXRlXG4vLyBpbnNpZGUgLmRtcy1pZG9jLXBhZ2UgKGl0cyBvZmZzZXQgcGFyZW50LCBzZWUgdGhlIHBvc2l0aW9uOnJlbGF0aXZlIGFib3ZlKSxcbi8vIHNvIGl0IG5ldmVyIHJlZmxvd3MgdGhlIGRvY3VtZW50OyByZW1vdmVkIGFnYWluIGJ5IHRoZSByZW5kZXJlciBhZnRlciAyLjVzLlxuLmRtcy1pZG9jLXJlZi1ub3RpY2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgcGFkZGluZzogN3B4IDExcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICMyMzI1M2E7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTRweCByZ2JhKDAsIDAsIDAsIC4yOCk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8vIHB1cmVseSBpbmZvcm1hdGlvbmFsIOKAlCBuZXZlciBlYXRzIHRoZSBuZXh0IGNsaWNrXG4gICAgYW5pbWF0aW9uOiBkbXMtaWRvYy1yZWYtbm90aWNlLWluIC4xNHMgZWFzZS1vdXQ7XG59XG5cbkBrZXlmcmFtZXMgZG1zLWlkb2MtcmVmLW5vdGljZS1pbiB7XG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbn1cblxuLy8gUHJpbnQgKDE0LjA4LjIwMjYpOiBhbiBpbnRlcm5hbCByZWZlcmVuY2UgaXMgdW53cmFwcGVkIGZyb20gaXRzIGFuY2hvciBpbnRvXG4vLyB0aGlzIHNwYW4gYnkgbmV1dHJhbGlzZUludGVybmFsUmVmc0ZvclByaW50LCBzbyB0aGUgYXV0aG9yJ3Mgc2VudGVuY2Ugc3RpbGxcbi8vIHJlYWRzIG5vcm1hbGx5IG9uIHBhcGVyIHdpdGhvdXQgYSBkZWFkIGJsdWUgbGluayBpbiBpdC5cbi5kbXMtaWRvYy1wcmludC1yZWYge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbiIsIi8qID09PSBCcmllZmluZyBtb2RhbCAocWRuYXByby13eXNpd3lnKSA9PT1cbiAgIFZlcmh1aXNkIHVpdCBzY3NzL3YxL3Rhc2tsaXN0LWFjdGl2aXRpZXMuc2NzcyBvcCAwMy4wOC4yMDI2LiBIZXQgbW9kYWwgd29yZHQgbnVcbiAgIGRvb3IgVFdFRSBwYWdpbmEncyBnZWJydWlrdCAoZGUgYWN0aXZpdGVpdGVucGFnaW5hIGVuIGRlIGZsb3cgZWRpdG9yLCB2b29yIGVlblxuICAgYnJpZWZpbmcgb3AgZWVuIHZyYWFnKSwgZW4gdGFza2xpc3QtYWN0aXZpdGllcy5jc3Mgd29yZHQgYWxsZWVuIGRvb3IgZGVcbiAgIGFjdGl2aXRlaXRlbnBhZ2luYSBnZWxhZGVuLiBCZWlkZSBwYWdpbmEncyBsYWRlbiBzdHlsZS12MS5jc3MsIGR1cyBkYWFyIGhvb3J0IGRpdC4gKi9cblxuLyogVGhlIGJyaWVmaW5nIGVkaXRvciBpcyBhIGZ1bGwtZG9jdW1lbnQgd3JpdGluZyBzdXJmYWNlLCBzbyBnaXZlIHRoZSBtb2RhbFxuICAgbmVhcmx5IHRoZSB3aG9sZSB2aWV3cG9ydCBhbmQgbGV0IHRoZSBlZGl0b3IgRklMTCBpdCB2aWEgYSBmbGV4IGNoYWluXG4gICAobW9kYWwtYm9keSAtPiBicmllZmluZy1tb2RhbC1ib2R5IC0+IGVkaXRvci1jb2wgLT4gd3lzaXd5ZyAtPiAudG94LXRpbnltY2UpLFxuICAgZWFjaCBsaW5rIG1pbi1oZWlnaHQ6MCBzbyB0aGUgZWRpdCBhcmVhIGdldHMgYSBkZWZpbml0ZSBoZWlnaHQgYW5kIHNjcm9sbHNcbiAgIElOVEVSTkFMTFkuIElEIHNwZWNpZmljaXR5ICgwLDEsMSkgYmVhdHMgdGhlIGNvbXBvbmVudCdzIC5tb2RhbC1zaXplLWxhcmdlXG4gICAoMCwzLDApIG1heC1oZWlnaHQ6ODAwIGNhcC4gW0tpbSAyMDI2LTA2LTExXSAqL1xuI21vZGFsLWJyaWVmaW5nIC5tb2RhbC1kaWFsb2cge1xuICAgIGhlaWdodDogbWluKDk2MHB4LCBjYWxjKDEwMHZoIC0gMzJweCkpO1xuICAgIG1heC13aWR0aDogbWluKDE0MDBweCwgY2FsYygxMDB2dyAtIDU2cHgpKTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4jbW9kYWwtYnJpZWZpbmcgLm1vZGFsLWJvZHkgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBtaW4taGVpZ2h0OiAwOyB9XG4uYnJpZWZpbmctbW9kYWwtYm9keSB7IGRpc3BsYXk6IGZsZXg7IGZsZXg6IDEgMSBhdXRvOyBtaW4taGVpZ2h0OiAwOyB9XG4uYnJpZWZpbmctZWRpdG9yLWNvbCB7XG4gICAgZmxleDogMSAxIGF1dG87IG1pbi13aWR0aDogMDsgbWluLWhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuI21vZGFsLWJyaWVmaW5nIHFkbmFwcm8td3lzaXd5ZyxcbiNtb2RhbC1icmllZmluZyAucWRuYXByby13eXNpd3lnIHtcbiAgICBmbGV4OiAxIDEgYXV0bzsgbWluLWhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuI21vZGFsLWJyaWVmaW5nIC50b3gtdGlueW1jZSB7IGZsZXg6IDEgMSBhdXRvOyBtaW4taGVpZ2h0OiAwOyB9XG5cbi8qID09PSBMaXZlIGRldmljZS1wcmV2aWV3IChyaWdodCBjb2x1bW4gb2YgdGhlIGJyaWVmaW5nIHNwbGl0KSA9PT0gKi9cbi5icmllZmluZy1wcmV2aWV3LWNvbCB7XG4gICAgZmxleDogMCAwIGNsYW1wKDMyMHB4LCAzNiUsIDUyMHB4KTtcbiAgICBtaW4td2lkdGg6IDA7IG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlY2VlZjU7XG4gICAgYmFja2dyb3VuZDogI2Y2ZjdmYjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDhweCA4cHggMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmJyaWVmaW5nLXByZXZpZXctYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlY2VlZjU7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4uYnAtYmFyLXRpdGxlIHsgZm9udC1zaXplOiAxM3B4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogIzNiNDI1MjsgfVxuLmJwLWRldmljZS10b2dnbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7IGdhcDogMnB4OyBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBiYWNrZ3JvdW5kOiAjZWNlZWY1OyBib3JkZXItcmFkaXVzOiA4cHg7IHBhZGRpbmc6IDJweDtcbn1cbi5icC1kZXZpY2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzBweDsgaGVpZ2h0OiAyNnB4O1xuICAgIGJvcmRlcjogMDsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBjb2xvcjogIzZiNzI4MDsgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMsIGNvbG9yIDEyMG1zO1xufVxuLmJwLWRldmljZTpob3ZlciB7IGNvbG9yOiAjM2I0MjUyOyB9XG4uYnAtZGV2aWNlLmlzLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjsgY29sb3I6ICM0NjUyZjM7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMTcsIDIwLCA0NSwgMC4xMCk7XG59XG4uYnAtZGV2aWNlLWRpbXMge1xuICAgIGZvbnQtc2l6ZTogMTFweDsgY29sb3I6ICM5YWEwYWQ7XG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICBtaW4td2lkdGg6IDYycHg7IHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmJyaWVmaW5nLXByZXZpZXctc3RhZ2Uge1xuICAgIGZsZXg6IDEgMSBhdXRvOyBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAyNHB4O1xufVxuLmJwLXNpemVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyBmbGV4LXNocmluazogMDsgfVxuLmJyaWVmaW5nLXByZXZpZXctZnJhbWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTFlM2U2O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNoYWRvdzogMCA2cHggMjRweCByZ2JhKDE3LCAyMCwgNDUsIDAuMTYpO1xufVxuLmJyaWVmaW5nLXByZXZpZXctZnJhbWVbZGF0YS1kZXZpY2U9XCJwaG9uZVwiXSAgIHsgYm9yZGVyLXJhZGl1czogMjJweDsgfVxuLmJyaWVmaW5nLXByZXZpZXctZnJhbWVbZGF0YS1kZXZpY2U9XCJ0YWJsZXRcIl0gIHsgYm9yZGVyLXJhZGl1czogMTZweDsgfVxuLmJyaWVmaW5nLXByZXZpZXctZnJhbWVbZGF0YS1kZXZpY2U9XCJkZXNrdG9wXCJdIHsgYm9yZGVyLXJhZGl1czogOHB4OyB9XG4uYnJpZWZpbmctcHJldmlldy1pZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyOiAwOyBkaXNwbGF5OiBibG9jazsgYmFja2dyb3VuZDogI2ZmZjtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuYnJpZWZpbmctcHJldmlldy1jb2wgeyBiYWNrZ3JvdW5kOiAjMWIxZDI3OyBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5icmllZmluZy1wcmV2aWV3LWJhciB7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuYnAtYmFyLXRpdGxlIHsgY29sb3I6ICNkNGQ3ZTA7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuYnAtZGV2aWNlLXRvZ2dsZSB7IGJhY2tncm91bmQ6ICMyYTJkM2E7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuYnAtZGV2aWNlLmlzLWFjdGl2ZSB7IGJhY2tncm91bmQ6ICMzYTNmNTI7IGNvbG9yOiAjYWViNGZmOyB9XG5cbi5icmllZmluZy1tb2RhbC1mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nLXRvcDogMTZweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlY2VlZjU7XG59XG4vKiBcIkVsa2Uga2VlciBvcG5pZXV3IHRvbmVuXCIgdG9nZ2xlLiBTaXRzIGF0IHRoZSBmYXIgbGVmdCBvZiB0aGUgZm9vdGVyLCBiZWZvcmVcbiAgIHRoZSBzdGF0dXMgdGV4dCwgc28gaXQgcmVhZHMgYXMgYSBwcm9wZXJ0eSBvZiB0aGUgYnJpZWZpbmcgeW91IGFyZSBhYm91dCB0b1xuICAgc2F2ZSByYXRoZXIgdGhhbiBhcyBhbm90aGVyIGFjdGlvbiBidXR0b24uIFtLaW0gMDMuMDguMjAyNl1cbiAgIERlIHZyYWFnLWJyaWVmaW5nIGhhbmd0IFwia25vcCB0b25lbiBiaWogZGUgdnJhYWdcIiBvcCBleGFjdCBkZXplbGZkZSB2b3JtLCBkdXNcbiAgIGRlIGtsYXNzZSBpcyBnZW5lcmllazogw6nDqW4gdG9nZ2xlLWJsb2ssIHBlciBjb25zdW1lciBlZW4gYW5kZXJlIHRla3N0LiAqL1xuLmJyaWVmaW5nLXJlcGVhdC10b2dnbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xufVxuLmJyaWVmaW5nLXJlcGVhdC10ZXh0IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgbGluZS1oZWlnaHQ6IDEuMjU7IH1cbi5icmllZmluZy1yZXBlYXQtbGFiZWwgeyBmb250LXNpemU6IDEzcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiAjMWYyNDMwOyB9XG4uYnJpZWZpbmctcmVwZWF0LXN1YiAgIHsgZm9udC1zaXplOiAxMS41cHg7IGNvbG9yOiAjNmI3MjgwOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmJyaWVmaW5nLXJlcGVhdC1sYWJlbCB7IGNvbG9yOiAjZjNmNGY2OyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmJyaWVmaW5nLXJlcGVhdC1zdWIgICB7IGNvbG9yOiAjYTZhYWIzOyB9XG4vKiBFZW4gdG9nZ2xlLWJsb2sgZGF0IG5pZXQgYmlqIGRlemUgY29uc3VtZXIgaG9vcnQsIHN0YWF0IG9wIGhpZGRlbi4gWm9uZGVyIGRlemVcbiAgIHJlZ2VsIHpvdSBkaXNwbGF5OmZsZXggaGV0IGBoaWRkZW5gLWF0dHJpYnV1dCBvdmVycnVsZW4gZW4gc3RvbmQgaGlqIGVyIGFsc25vZy4gKi9cbi5icmllZmluZy1yZXBlYXQtdG9nZ2xlW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIFN0YXR1cyB0ZXh0IChlLmcuIFwiQ29uY2VwdCBvcGdlc2xhZ2VuXCIpIHNpdHMgZmFyLWxlZnQsIGJ1dHRvbnMgcmlnaHQuICovXG4uYnJpZWZpbmctc3RhdHVzIHsgbWFyZ2luLXJpZ2h0OiBhdXRvOyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiAjNmI3MjgwOyB9XG4uYnJpZWZpbmctc3RhdHVzW2RhdGEta2luZD1cImNvbmNlcHRcIl0geyBjb2xvcjogIzhhNmQxZjsgfVxuLmJyaWVmaW5nLXN0YXR1c1tkYXRhLWtpbmQ9XCJsaXZlXCJdICAgIHsgY29sb3I6ICMyZjhhNWI7IGZvbnQtd2VpZ2h0OiA2MDA7IH1cbi5icmllZmluZy1zdGF0dXNbZGF0YS1raW5kPVwiZXJyb3JcIl0gICB7IGNvbG9yOiAjYzMzYTMwOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmJyaWVmaW5nLW1vZGFsLWZvb3RlciB7IGJvcmRlci10b3AtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuYnJpZWZpbmctc3RhdHVzIHsgY29sb3I6ICNhNmFhYjM7IH1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJsb2NrU3RyaXAg4oCUIGRlIEdFREVFTERFIGJsb2trZW5saWpzdCAoY2xpZW50L3NoYXJlZC9CbG9ja1N0cmlwLnZ1ZSkuXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBHZWJydWlrdCBkb29yIGRlIGludGVyYWN0aWV2ZS1kb2N1bWVudGVkaXRvciDDqW4gZGUgcmFwcG9ydC1lZGl0b3IuIFN0b25kIGVlcmRlclxuICAgYWxzIGAuaWRvYy1mcy0qYCAvIGAuaWRvYy1hZGQtKmAgaW4gZGUgPHN0eWxlPiB2YW4gYGRvY3VtZW50cy9pbnRlcmFjdGl2ZS1lZGl0b3IuaHRtbGBcbiAgIGVuIGlzIGJpaiBoZXQgZ2VsaWprdHJla2tlbiB2YW4gZGUgdHdlZSBlZGl0b3JzIChKYW4sIDIwMjYtMDgtMDMpIGhpZXJoZWVuIHZlcmh1aXNkXG4gICBlbiBoZXJub2VtZCBuYWFyIGBic3RyaXAtKmAuXG5cbiAgIOKaoO+4jyBEZXplIHN0aWpsZW4geml0dGVuIGluIGBzdHlsZS12MS5jc3NgLCBkdXMgRUxLRSBwYWdpbmEgZGllIGRlIGJsb2trZW5saWpzdCBtb3VudFxuICAgICAgaGVlZnQgemUgYWwg4oCUIG5vb2l0IGVlbiBsb3MgQ1NTLWJlc3RhbmQgbmFhc3QgZGUgZWRpdG9yIGhhbmdlbiAoaHVpc3JlZ2VsKS5cbiAgIOKaoO+4jyBCZXdlcmsgamUgaGllciBpZXRzLCBkYW4gdmVyYW5kZXJ0IGhldCBpbiBCRUlERSBlZGl0b3JzLiBEYXQgaXMgZGUgYmVkb2VsaW5nOlxuICAgICAgcHJlY2llcyBkYWFyb20gc3RhYXQgaGV0IGhpZXIgZW4gbmlldCB0d2VlIGtlZXIuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIOKUgOKUgCBkZSBcIitcIi1iYWxrIHR1c3NlbiBlbiByb25kIGRlIGthYXJ0ZW4g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uYnN0cmlwLWFkZC1iYXIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBoZWlnaHQ6IDE0cHg7IH1cbi5ic3RyaXAtYWRkLWJhci1idG4ge1xuICAgIHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgI2QzZDNlNjsgYmFja2dyb3VuZDogI2ZmZjsgY29sb3I6ICM4YThmYjU7XG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyOyBvcGFjaXR5OiAwOyB0cmFuc2l0aW9uOiBvcGFjaXR5IC4xMnMsIGJvcmRlci1jb2xvciAuMTJzLCBjb2xvciAuMTJzO1xuICAgIHBhZGRpbmc6IDA7XG59XG4uYnN0cmlwLWFkZC1iYXI6aG92ZXIgLmJzdHJpcC1hZGQtYmFyLWJ0bixcbi5ic3RyaXAtYWRkLWJhci1vcGVuIC5ic3RyaXAtYWRkLWJhci1idG4geyBvcGFjaXR5OiAxOyBib3JkZXItY29sb3I6ICM0MDQ5OWE7IGNvbG9yOiAjNDA0OTlhOyB9XG5cbi8qIExlZ2UgbGlqc3Q6IHpvbmRlciBkaXQgc3RvbmQgZXIgbmlldHMgZGFuIMOpw6luIFwiK1wiIGRpZSBqZSBtb2VzdCByYWtlbiBvbSB0ZSB6aWVuIOKAlFxuICAgXCJlZW4gcmFhZHNlbHNwZWxcIiAoSmFuLCAyMDI2LTA3LTIyKS4gWm9sYW5nIGVyIGdlZW4gYmxva2tlbiB6aWpuIHN0YWF0IGRlIFwiK1wiIGVyXG4gICBibGlqdmVuZCwgbWV0IGVlbiBoaW50IGVyYm92ZW4uIEFsbGViZWkgd2VnIHpvZHJhIGhldCBlZXJzdGUgYmxvayBnZXBsYWF0c3QgaXMuICovXG4uYnN0cmlwLWVtcHR5LWhpbnQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICNiM2IzYzY7IGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIHBhZGRpbmc6IDI0cHggMTJweCA0cHg7XG59XG4uYnN0cmlwLWFkZC1iYXItZW1wdHkgeyBoZWlnaHQ6IGF1dG87IHBhZGRpbmc6IDRweCAwIDIwcHg7IH1cbi5ic3RyaXAtYWRkLWJhci1lbXB0eSAuYnN0cmlwLWFkZC1iYXItYnRuIHsgb3BhY2l0eTogMTsgfVxuXG4uYnN0cmlwLWFkZC1waWNrZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogMjA7IHRvcDogMjJweDsgbGVmdDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgYmFja2dyb3VuZDogI2ZmZjsgYm9yZGVyLXJhZGl1czogMTBweDsgYm94LXNoYWRvdzogMCA2cHggMjRweCByZ2JhKDM0LCAzMiwgNTgsIC4xOCk7XG4gICAgcGFkZGluZzogNnB4OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBtaW4td2lkdGg6IDE3MHB4O1xufVxuLmJzdHJpcC1hZGQtcGlja2VyLXVwIHsgdG9wOiBhdXRvOyBib3R0b206IDIycHg7IH1cbi5ic3RyaXAtYWRkLXBpY2tlci1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA3cHggMTBweDsgYm9yZGVyOiBub25lOyBiYWNrZ3JvdW5kOiBub25lOyBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogIzIzMjUzYTsgdGV4dC1hbGlnbjogbGVmdDsgY3Vyc29yOiBwb2ludGVyO1xufVxuLmJzdHJpcC1hZGQtcGlja2VyLWl0ZW06aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZjNmNWZmOyBjb2xvcjogIzQwNDk5YTsgfVxuXG4vKiDilIDilIAgZGUga2FhcnQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uYnN0cmlwLWNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBzdHJldGNoOyBnYXA6IDdweDtcbiAgICBwYWRkaW5nOiA5cHggOHB4OyBib3JkZXItcmFkaXVzOiA4cHg7IGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDZkOGRkOyBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLmJzdHJpcC1jYXJkLWhlYWQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsgbWluLXdpZHRoOiAwOyB9XG4uYnN0cmlwLWNhcmQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZjdmN2ZiOyB9XG4uYnN0cmlwLWNhcmQtc2VsZWN0ZWQgeyBiYWNrZ3JvdW5kOiAjZjNmNWZmOyBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTsgfVxuLmJzdHJpcC1jYXJkLWluY29tcGxldGUgLmJzdHJpcC1zbmlwcGV0IHsgb3BhY2l0eTogLjY1OyBmb250LXN0eWxlOiBpdGFsaWM7IH1cbi5ic3RyaXAtY2FyZC1jaGVja2VkIHsgYmFja2dyb3VuZDogI2YzZjVmZjsgfVxuLmJzdHJpcC1kcmFnLWhhbmRsZSB7IGNvbG9yOiAjYzNjM2Q2OyBjdXJzb3I6IGdyYWI7IGZsZXg6IDAgMCBhdXRvOyB9XG5cbi8qIOKUgOKUgCBzbGVwZW46IGRlIGxpanN0IGhlcnNjaGlrdCBMSVZFIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgVGlqZGVucyBoZXQgc2xlcGVuIHNjaHVpZnQgZWxrZSBrYWFydCBtZXQgZWVuIGB0cmFuc2Zvcm1gIG5hYXIgZGUgcGxlayBkaWUgaGlqIGJpalxuICAgbG9zc2VuIHpvdSBrcmlqZ2VuOyBkZSB2b2xnb3JkZSBpbiBkZSBkYXRhIHZlcmFuZGVydCBwYXMgYmlqIGhldCBsb3NzZW4uIFppZSBkZSBsYW5nZVxuICAgdG9lbGljaHRpbmcgYmlqIGBvbkRyYWdTdGFydGAgaW4gQmxvY2tTdHJpcC52dWUg4oCUIHZvb3JhbCB3w6HDoXJvbSBlciBoaWVyIGFsbGVlblxuICAgYHRyYW5zZm9ybWAgc3RhYXQgZW4gZGUga2FhcnRlbiBub29pdCBtZXQgZGUgaGFuZCB2ZXJwbGFhdHN0IG1vZ2VuIHdvcmRlbi5cblxuICAg4pqg77iPIERlIG92ZXJnYW5nIGhhbmd0IGFhbiBgLmJzdHJpcC1kcmFnZ2luZ2AgZW4gbmlldCBhYW4gYC5ic3RyaXAtY2FyZGAgemVsZi4gRGllIGtsYXNzZVxuICAgICAgdmVyZHdpam50IGluIGRlemVsZmRlIHJlbmRlciBhbHMgZGUgZWNodGUgaGVyb3JkZW5pbmcsIHpvZGF0IGVlbiBrYWFydCBkaWUgZG9vciBWdWVcbiAgICAgIG5hYXIgemlqbiBuaWV1d2UgcGxlayB3b3JkdCBnZXpldCBkYWFyIE5JRVQgbmFhcnRvZSBhbmltZWVydCAoaGlqIHN0YWF0IGVyIGFsKSDigJQgZW5cbiAgICAgIGVlbiBnZXdvbmUgaGVyLXJlbmRlciBidWl0ZW4gZWVuIHNsZWVwIG9tIG5vb2l0IGdhYXQgc2NodWl2ZW4uXG4gICDimqDvuI8gRHV1ciBiZXd1c3Qga29ydCAofjE2NW1zKTogZGl0IGxvb3B0IHRlcndpamwgamUgbm9nIHNsZWVwdCwgZHVzIGVlbiBrYWFydCBtb2V0IHppam5cbiAgICAgIGJld2VnaW5nIGFmIGhlYmJlbiB2w7PDs3IgamUgZGUgdm9sZ2VuZGUgZ3JlbnMgb3ZlcmdhYXQuIFRyYWdlciB2b2VsdCBzdHJvcGVyaWcgZW4gbGFhdFxuICAgICAgZGUgbGlqc3QgYWNodGVybG9wZW4gb3AgamUgY3Vyc29yLiAqL1xuLmJzdHJpcC1kcmFnZ2luZyAuYnN0cmlwLWNhcmQgeyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTY1bXMgY3ViaWMtYmV6aWVyKC4yLCAuOCwgLjIsIDEpOyB9XG4vKiBEZSBvcGdlcGFrdGUga2FhcnQgYmxpamZ0IHppY2h0YmFhciBvcCB6aWpuIGxhbmRpbmdzcGxlaywgbWFhciBnZWRpbWQ6IGhpaiBpcyBcImluXG4gICBiZXdlZ2luZ1wiLCBlbiBkZSB2b2xsZSBrYWFydCBoYW5ndCBvcCBkYXQgbW9tZW50IGFscyBzbGVlcC1zY2hhZHV3IG9uZGVyIGplIGN1cnNvci4gKi9cbi5ic3RyaXAtY2FyZC1kcmFnc291cmNlIHsgb3BhY2l0eTogLjU7IH1cbi5ic3RyaXAtdHlwZS1pY29uIHsgY29sb3I6ICM2YjY4ODQ7IGZsZXg6IDAgMCBhdXRvOyB9XG4uYnN0cmlwLXNuaXBwZXQge1xuICAgIGZsZXg6IDEgMSBhdXRvOyBtaW4td2lkdGg6IDA7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6ICMzMzM0NGE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4vKiBIZXQgXCJaZWtlcj9cIi1sYWJlbCB2YW4gaGV0IHR3ZWUtc3RhcHMgdmVyd2lqZGVyZW4uIFN0YWF0IGhpZXIg4oCUIGJpaiBkZSBibG9ra2VubGlqc3Qg4oCUIG9tZGF0IGRpdFxuICAgZ2ViYWFyIMOpw6luIHBsZWsgaG9vcnQgdGUgaGViYmVuOiBgc2hhcmVkL2FybS1kZWxldGUuanNgIGJld2Fha3QgZGUgVEVSTUlKTiwgZGV6ZSByZWdlbCBoZXQgQkVFTEQuXG4gICBgLmlkb2MtYXJtLWxhYmVsYCBpcyBkZXplbGZkZSBzdGFwIGluIGRlIGJsb2tGT1JNVUxJRVJFTiB2YW4gZGUgZG9jdW1lbnRlZGl0b3IgKG9wdGllcmVnZWxzLFxuICAgcGFuZWVscmVnZWxzLCBob3RzcG90LXJlZ2VscykuIFR3ZWUgbmFtZW4sIMOpw6luIHJlZ2VsIOKAlCBhbmRlcnMgbG9wZW4gemUgdWl0IGVsa2FhciBvcCBrbGV1ci5cbiAgIOKaoO+4jyBgd2hpdGUtc3BhY2U6IG5vd3JhcGAgaXMgZnVuY3Rpb25lZWw6IGVlbiBsYWJlbCBkYXQgYWZicmVla3QgbWFha3QgZGUgcmlqIGhvZ2VyIGVuIGRhblxuICAgdmVyc2NodWlmdCBkZSBwcnVsbGVuYmFrIGFsc25vZywgcHJlY2llcyB3YXQgZGUgdHdlZWRlIGtsaWsgbW9ldCBrdW5uZW4gdmVydHJvdXdlbi4gKi9cbi8qIGAucWZyLWFybWAgaXMgZGV6ZWxmZGUgc3RhcCBpbiBgcWRuYXByby1mb3JtYXQtcnVsZXNgIChkZSB2b29yd2FhcmRlbGlqa2Ugb3BtYWFrIHZhbiBlZW5cbiAgIHJhcHBvcnRrb2xvbSkuIERhdCBpcyBlZW4gQ09NUE9ORU5UIGVuIGdlZW4gcGFnaW5hLCBtYWFyIGRlIHJlZ2VsIHN0YWF0IGhpZXIgYmlqIGRlIGFuZGVyZSBkcmllXG4gICBvbWRhdCBkZSBjb21tZW50IGhpZXJib3ZlbiBwcmVjaWVzIGRhdCB2cmFhZ3Q6IHZpZXIgbmFtZW4sIMOpw6luIHJlZ2VsIOKAlCBhbmRlcnMgbG9wZW4gemUgdWl0IGVsa2FhclxuICAgb3Aga2xldXIsIGVuIGRhbiBoZWV0IGhldHplbGZkZSBnZWJhYXIgb3AgdmllciBwbGVra2VuIGlldHMgYW5kZXJzLiAqL1xuLmJzdHJpcC1hcm0tbGFiZWwsXG4uaWRvYy1hcm0tbGFiZWwsXG4ucWZyLWFybSxcbi5ycGUtYXJtIHsgZm9udC1zaXplOiAxMS41cHg7IGNvbG9yOiAjYzMzYTMwOyBmb250LXdlaWdodDogNjAwOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBmbGV4OiAwIDAgYXV0bzsgfVxuLyogRGUgYWN0aWVob2VrIHZhbiBlZW4ga2FhcnQuIEJlc3RhYXQgYWxzIGVpZ2VuIGVsZW1lbnQgb21kYXQgZGUgbmF0aWV2ZSBrbGlrIGhpZXIgbW9ldCBTVE9QUEVOIOKAlFxuICAgemllIGRlIOKaoO+4jyBpbiBCbG9ja1N0cmlwLnZ1ZTogem9uZGVyIGRpZSBzdG9wcGVyIHNlbGVjdGVlcnQgZWVuIGtsaWsgb3AgZGUgcHJ1bGxlbmJhayDDs8OzayBub2cgZGVcbiAgIGthYXJ0IGRpZSBkYWFybWVlIG5ldCB2ZXJkd2Vlbi4gKi9cbi5ic3RyaXAtY2FyZC1hY3RpZXMgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDJweDsgZmxleDogMCAwIGF1dG87IH1cblxuLyogTWluaWF0dXVyIHZhbiBoZXQgZWNodGUgYmxvaywgYm92ZW5hYW4gYWZnZXNuZWRlbi4gRGUgYmlubmVua2FudCB0ZWtlbnQgb3Agdm9sbGVcbiAgIGJyZWVkdGUgZW4gd29yZHQgZGFhcm5hIHZlcmtsZWluZDsgYHBvaW50ZXItZXZlbnRzOm5vbmVgIGhvdWR0IGhlbSBpbmVydCB6b2RhdCBlZW5cbiAgIGtsaWsgZG9vcnZhbHQgbmFhciBkZSBrYWFydCB6ZWxmLiAqL1xuLmJzdHJpcC1wcmV2aWV3IHtcbiAgICBoZWlnaHQ6IDg4cHg7IG92ZXJmbG93OiBoaWRkZW47IGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtYnJhbmQtcHVycGxlKSA0NSUsIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG4uYnN0cmlwLXByZXZpZXctaW5uZXIge1xuICAgIHdpZHRoOiA3NjBweDsgdHJhbnNmb3JtOiBzY2FsZSguMzMpOyB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgcGFkZGluZzogMTRweCAxNnB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAjMjMyNTNhO1xufVxuXG4vKiDilIDilIAgbWVlcnZvdWRpZ2Ugc2VsZWN0aWUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uYnN0cmlwLWNoZWNrYm94LXdyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvOyB3aWR0aDogMThweDsgb3BhY2l0eTogMDsgdHJhbnNpdGlvbjogb3BhY2l0eSAuMTJzO1xufVxuLmJzdHJpcC1jYXJkOmhvdmVyIC5ic3RyaXAtY2hlY2tib3gtd3JhcCxcbi5ic3RyaXAtbW9kZS1zZWxlY3QgLmJzdHJpcC1jaGVja2JveC13cmFwIHsgb3BhY2l0eTogMTsgfVxuXG4uYnN0cmlwLXNlbGVjdGJhciB7XG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzIsIDIzNSwgMjUyLCAuNTUpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDY0LCA3MywgMTU0LCAuMTApO1xufVxuLmJzdHJpcC1zZWxjaGlwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA2cHg7IGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiA1cHggMTBweDsgYm9yZGVyOiBub25lOyBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjZTJlNmZjOyBjb2xvcjogIzQwNDk5YTsgZm9udDogNjAwIDEycHggJ0ludGVyJywgc2Fucy1zZXJpZjtcbn1cbi5ic3RyaXAtc2VsY2hpcDpob3ZlciB7IGJhY2tncm91bmQ6ICNkNWRiZmE7IH1cbi5ic3RyaXAtc2VsZWN0YmFyLWFjdGlvbnMgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDJweDsgZmxleC13cmFwOiB3cmFwOyB9XG4vKiBFZW4gVUlUR0VaRVRURSBhY3RpZWtub3AgbW9ldCBhYW53aWpzYmFhciBibGlqdmVuLCBhbmRlcnMgaXMgemlqbiB0b29sdGlwIOKAlCBkaWVcbiAgIHVpdGxlZ3Qgd2FhcsOzbSBoaWogZ3JpanMgaXMg4oCUIG9uYmVyZWlrYmFhci4gRGUga25vcCB6ZWxmIGRvZXQgYmlqIGBkaXNhYmxlZGAgdG9jaFxuICAgYWwgbmlldHMsIGR1cyBwb2ludGVyLWV2ZW50cyB0ZXJ1Z3pldHRlbiBibGlqZnQga2xpay12ZWlsaWcuICovXG4uYnN0cmlwLXNlbGVjdGJhci1hY3Rpb25zIC5xZG5hcHJvLWljb24tYnRuLmljb24tYnRuLWRpc2FibGVkIHsgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIFRha2VubGlqc3QtaW5zdGVsbGluZ2VuICAoL3YxL3Byb2plY3RzLzpwcm9qZWN0Lzp0YXNrbGlzdC9lZGl0LXN1cnZleS1zZXR0aW5ncylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFBhZ2luYXN0eWxpbmcgdm9vciBWaWV3L3YxL3Byb2plY3QvZWRpdF9zdXJ2ZXlfc2V0dGluZ3MuaHRtbC5cbi8vXG4vLyAgRGl0IGJlc3RhbmQgYmVzdGFhdCBvbWRhdCBkZSBPVURFIHZlcnNpZSB2YW4gZGllIHBhZ2luYSB6ZXZlbnRpZyByZWdlbHNcbi8vICBlaWdlbiBDU1MgaW4gZWVuIDxzdHlsZT4tYmxvayBpbiBkZSB2aWV3IGhhZCBzdGFhbiwgaW5jbHVzaWVmIGVlbiBjb21wbGVldFxuLy8gIG5hZ2VtYWFrdGUgYWFuL3VpdC1zY2hha2VsYWFyICguc3dpdGNoLy5zbGlkZXIpLiBEaWUgc2NoYWtlbGFhciBpcyBudVxuLy8gIHFkbmFwcm8tdG9nZ2xlLCBkZSByaWplbiB6aWpuIHFkbmFwcm8tbGlzdC1yb3cgZW4gZGUga2FhcnRlbiB6aWpuXG4vLyAgcWRuYXByby1zZWN0aW9uLWNhcmQsIGR1cyBoaWVyIHN0YWF0IGFsbGVlbiBub2cgd2F0IGRpZSBjb21wb25lbnRlbiBOSUVUXG4vLyAgZG9lbjogZGUgcGFnaW5haW5kZWxpbmcsIGRlIGxpbmtlcmtvbG9tIGVuIGhldCB1aXRsZWdwYW5lZWwuXG4vL1xuLy8gIEJld3VzdCBHRUVOIGVpZ2VuIGtsZXVyZW46IGFsbGVzIGtvbXQgdWl0IGRlIGRlc2lnbi10b2tlbnMuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gS29wIGJvdmVuIGRlIGthYXJ0ZW4gKGJ1aXRlbiBkZSB3aXR0ZSBzY2hpbCwgb3AgZGUgcGFhcnNlIHBhZ2luYS1hY2h0ZXJncm9uZCkuXG4udGxzLWludHJvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG4gICAgcGFkZGluZzogNHB4IDhweCAyMHB4O1xuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZjRkKTtcbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbiAgICAgICAgLy8gTGVlc2JhcmUgcmVnZWxsZW5ndGU7IGRlIHBhZ2luYSB6ZWxmIGlzIGJyZWVkLlxuICAgICAgICBtYXgtd2lkdGg6IDYyY2g7XG4gICAgfVxufVxuXG4vLyBUd2VlIGtvbG9tbWVuOiBuYXZpZ2F0aWUgbGlua3MsIHBhbmVsZW4gcmVjaHRzLiBPbmRlciA5MDBweCBrbGFwdCBkZVxuLy8gbmF2aWdhdGllIGJvdmVuIGRlIHBhbmVsZW4gKGdyaWQtdGVtcGxhdGUtY29sdW1ucyBuYWFyIMOpw6luIGtvbG9tKSwgem9kYXQgZGVcbi8vIHBhZ2luYSBvcCBlZW4gdGFibGV0IGluIHBvcnRyZXQgbmlldCBpbiB0d2VlIHRlIHNtYWxsZSBrb2xvbW1lbiBicmVla3QuXG4udGxzLWxheW91dCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIzNnB4IG1pbm1heCgwLCAxZnIpO1xuICAgIGdhcDogMjBweDtcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG5cbiAgICAvLyBSdWltdGUgb25kZXJhYW4gdm9vciBkZSB6d2V2ZW5kZSBhY3RpZWJhbGsgKEtpbSAwNC4wOC4yMDI2OiBcImRlIHRhc2tiYXJcbiAgICAvLyBvbmRlcmluIHZhbHQgYWx0aWpkIG92ZXIgZGUgc2V0dGluZ3MgaGVlblwiKS4gRGllIGJhbGsgaXNcbiAgICAvLyBgcG9zaXRpb246IGZpeGVkYCwgZHVzIGhpaiBuZWVtdCBnZWVuIHJ1aW10ZSBpbiBkZSBwYWdpbmEgaW4gZW4gbGVndCB6aWNoXG4gICAgLy8gb3ZlciBkZSBsYWF0c3RlIHJpaiBoZWVuOyBqZSBrdW50IGVyIG9vayBuaWV0IHZvb3JiaWogc2Nyb2xsZW4gb21kYXQgZXJcbiAgICAvLyBuaWV0cyBtZWVyIG9uZGVyIHN0YWF0LlxuICAgIC8vXG4gICAgLy8gU1lOQy1QVU5ULCBtZXQgb3B6ZXQgZWVuIHZhc3QgZ2V0YWwuIElrIHdpbGRlIGRpdCB1aXQgZGUgYmFsayB6ZWxmIGxlemVuLFxuICAgIC8vIG1hYXIgZGF0IGthbiBuaWV0OiBfYWN0aW9uLWJhci5zY3NzIHpldCBgaGVpZ2h0OiA1NnB4YCBoYXJkIChlciBpcyBnZWVuXG4gICAgLy8gLS1hY3Rpb24tYmFyLWhlaWdodCkgZW4gLS1hY3Rpb24tYmFyLW9mZnNldCBzdGFhdCBvcCAucWRuYXByby1hY3Rpb24tYmFyXG4gICAgLy8gemVsZiwgZHVzIGRpZSBpcyBoaWVyIG5pZXQgZXJmYmFhciBlbiBlZW4gdmFyKCkgem91IHN0aWwgYWx0aWpkIG9wIGRlXG4gICAgLy8gZmFsbGJhY2sgbGFuZGVuLiBEYXQgbGVlc3QgYWxzIGFmZ2VsZWlkIHRlcndpamwgaGV0IGRhdCBuaWV0IGlzLlxuICAgIC8vXG4gICAgLy8gOTZweCA9IDU2IChob29ndGUgdmFuIGRlIGJhbGspICsgMTYgKC0tYWN0aW9uLWJhci1vZmZzZXQpICsgMjQgbHVjaHQuXG4gICAgLy8gV29yZHQgZGUgYmFsayBob2dlciBvZiBrb210IGhpaiB2ZXJkZXIgdmFuIGRlIHJhbmQsIGRhbiBtb2V0IGRpdCBtZWUuXG4gICAgcGFkZGluZy1ib3R0b206IDk2cHg7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICB9XG59XG5cbi8vIC0tLS0gTGlua2Vya29sb20gLS0tLVxuLy8gVm9ybSB2YW4gcWRuYXByby1zaWRlYmFyLCBtYWFyIHpvbmRlciBkYXQgY29tcG9uZW50OiBkaWUgYnJlbmd0IGVlbiBlaWdlblxuLy8ga29wIG1ldCB6b2VrdmVsZCBlbiBpbmtsYXBrbm9wIG1lZSBkaWUgZGV6ZSBwYWdpbmEgbmlldCBub2RpZyBoZWVmdC4gRGl0IGlzXG4vLyBhbGxlZW4gZGUgd2l0dGUgc2NoaWwgZXJvbWhlZW47IGRlIGl0ZW1zIHplbGYgWklKTiBxZG5hcHJvLXRyZWUtaXRlbS5cbi50bHMtbmF2IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMiwgI2U2ZTllZik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1jYXJkLCAxNnB4KTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctY2FyZCwgMCAxcHggMnB4IHJnYmEoMjAsIDI1LCA4MCwgMC4wNCksIDAgNHB4IDE2cHggcmdiYSgyMCwgMjUsIDgwLCAwLjA0KSk7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbiAgICAvLyBCbGlqZnQgbWVlbG9wZW4gYmlqIHNjcm9sbGVuIG9wIGVlbiBsYW5nIHBhbmVlbC4gcG9zaXRpb246IHN0aWNreSB3ZXJrdFxuICAgIC8vIGhpZXIgb21kYXQgLnRscy1sYXlvdXQgZWVuIGdyaWQgaXMgbWV0IGFsaWduLWl0ZW1zOiBzdGFydCAoaGV0IGl0ZW0gaXNcbiAgICAvLyBkdXMgbmlldCB1aXRnZXJla3QgdG90IHZvbGxlZGlnZSBob29ndGUpLlxuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAxNnB4O1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDEycHggOHB4O1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgIH1cbn1cblxuLy8gQWxsZXMgcmVjaHRzIHZhbiBkZSBuYXZpZ2F0aWUuIFpvbmRlciBkZXplIHdyYXBwZXIgem91ZGVuIGhldCB6b2VrdmVsZCwgZGVcbi8vIGxlZ2Ugc3RhYXQgZW4gZGUgZHJpZSBwYW5lbGVuIGVsayBlZW4gZWlnZW4gZ3JpZGNlbCBwYWtrZW4uXG4udGxzLW1haW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4vLyAtLS0tIFpvZWtlbiAtLS0tXG4udGxzLXNlYXJjaCB7XG4gICAgLy8gSGV0IHZlbGQgemVsZiBpcyB3aWR0aDogMTAwJSwgZHVzIGRlIGJyZWVkdGUgaG9vcnQgaGllci4gUnVpbSBnZW5vZWcgb21cbiAgICAvLyB0ZSB0eXBlbiwgbmlldCB6byBicmVlZCBkYXQgaGV0IGRlIGhlbGUga29sb20gb3BlaXN0LlxuICAgIG1heC13aWR0aDogNDIwcHg7XG59XG5cbi8vIFRpamRlbnMgaGV0IHpvZWtlbiBzdGFhbiBBTExFIHBhbmVsZW4gb3BlbjogZGUgdHJlZmZlcnMga3VubmVuIGluIGVsa1xuLy8gb25kZXJkZWVsIHppdHRlbiwgZW4gZGF0IGlzIGp1aXN0IHdhYXJvbSBqZSB6b2VrdC5cbi50bHMtbGF5b3V0LmlzLXNlYXJjaGluZyAudGxzLXBhbmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vLyBWQUxLVUlMOiBoZXQgYGhpZGRlbmAtYXR0cmlidXV0IHdlcmt0IG5pZXQgem9uZGVyIGRlemUgcmVnZWxzLiBEZXplXG4vLyBjb21wb25lbnRlbiB6ZXR0ZW4gemVsZiBgZGlzcGxheTogZmxleGAgKGxpc3Qtcm93LCBzZWN0aW9uLWNhcmQpIG9mXG4vLyBgZGlzcGxheTogYmxvY2tgIChlbXB0eS1zdGF0ZSkgb3AgZGUgaG9zdCwgZW4gem8nbiBhdXRob3ItcmVnZWwgd2ludCB2YW4gZGVcbi8vIGBbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmUgfWAgdWl0IGRlIGJyb3dzZXItc3R5bGVzaGVldC4gWm9uZGVyIGRpdCBibGlqdmVuXG4vLyB3ZWdnZWZpbHRlcmRlIHJpamVuIGR1cyBnZXdvb24gc3RhYW4uIE5hZ2VtZXRlbiBpbiBkZSBnZWNvbXBpbGVlcmRlXG4vLyBzdHlsZS12MS5jc3Mgb3AgMDQuMDguMjAyNjogZXIgaXMgbmVyZ2VucyBpbiBkZSBsaWJyYXJ5IGFsIGVlbiBbaGlkZGVuXS1yZWdlbFxuLy8gdm9vciBkZXplIHRhZ3MsIGR1cyBkaWUgbW9ldCBoaWVyLlxuLnRscy1sYXlvdXQgcWRuYXByby1saXN0LXJvd1toaWRkZW5dLFxuLnRscy1sYXlvdXQgcWRuYXByby1zZWN0aW9uLWNhcmRbaGlkZGVuXSxcbi50bHMtbWFpbiBxZG5hcHJvLWVtcHR5LXN0YXRlW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIC0tLS0gUGFuZWxlbiAtLS0tXG4udGxzLXBhbmVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIG1pbi13aWR0aDogMDtcblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG59XG5cbi8vIC0tLS0gRGUgYmVkaWVuaW5nIHJlY2h0cyBpbiBlZW4gaW5zdGVsbGluZ3NyaWogLS0tLVxuLy8gWml0IGluIHFkbmFwcm8tbGlzdC1yb3cncyBzbG90PVwidHJhaWxpbmdcIi4gRGUgcmlqIHN0YWF0IGluIHdyYXAtc3RhbmQgZW5cbi8vIGxpam50IGR1cyBhYW4gZGUgYm92ZW5rYW50IHVpdDsgZGV6ZSB3cmFwcGVyIGhvdWR0IGRlIHVpdGxlZ2tub3AgZW4gZGVcbi8vIGJlZGllbmluZyBiaWogZWxrYWFyLlxuLnRscy1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIC8vIE5pZXQgbWVla3JpbXBlbi4gWm9uZGVyIGRpdCBrbmlqcHQgZGUgZmxleGJveCBoZXQga2V1emV2ZWxkIHBsYXQ6IGRhblxuICAgIC8vIHN0b25kIGVyIFwiSWVcIiBpbiBwbGFhdHMgdmFuIFwiSWVkZXJlZW5cIiAoS2ltIDA0LjA4LjIwMjYpLlxuICAgIGZsZXg6IDAgMCBhdXRvO1xuXG4gICAgLy8gcWRuYXByby1zZWxlY3QgZW4gcWRuYXByby1pbnB1dCB6aWpuIHplbGYgd2lkdGg6IDEwMCUgZW4gaGViYmVuIGR1cyBnZWVuXG4gICAgLy8gZWlnZW4gYnJlZWR0ZTsgaW4gZWVuIGZsZXhyaWogem9uZGVyIHJ1aW10ZSB3b3JkZW4gemUgZGFhcm9tIG9ubGVlc2JhYXJcbiAgICAvLyBzbWFsLiBEZSBicmVlZHRlIGlzIGVlbiBrZXV6ZSB2YW4gREVaRSBwYWdpbmEsIG5pZXQgdmFuIGhldCBjb21wb25lbnQsXG4gICAgLy8gZHVzIGRpZSBzdGFhdCBoaWVyIGVuIG5pZXQgaW4gZGUgY29tcG9uZW50LVNDU1MuXG4gICAgLy9cbiAgICAvLyBSdWltIGdlbm9tZW4gKEtpbSAwNC4wOC4yMDI2LCB0d2VlIGtlZXI6IFwiZGFuIGhvZWYgamUgbmlldCBkZSBkcm9wZG93bnMgem9cbiAgICAvLyB0ZSBwcm9wcGVuXCIgZW4gXCJ3YWFyb20gbWFhayBqZSBkZSBpbnB1dGZpZWxkIG9vayBuaWV0IGdld29vbiBncm9vdFwiKS4gRGF0XG4gICAgLy8ga2FuIHNpbmRzIGRlIHdyYXAtdmFyaWFudCBkZSB0cmFpbGluZy1zbG90IHRlZ2VuIGRlIHJlY2h0ZXJyYW5kIHZhbiBkZSByaWpcbiAgICAvLyB6ZXQ6IGRlIHJ1aW10ZSBkaWUgZGFhcnZvb3IgcmVjaHRzIG9uZ2VicnVpa3QgYmxlZWYgaXMgbnUgYmVzY2hpa2JhYXIgdm9vclxuICAgIC8vIGRlIGJlZGllbmluZyB6ZWxmLlxuICAgIC8vXG4gICAgLy8gY2xhbXAgaW4gcGxhYXRzIHZhbiBlZW4gdmFzdGUgbWFhdCBvZiBtZWRpYSBxdWVyaWVzOiBoZXQgdmVsZCBncm9laXQgbWVlIG1ldFxuICAgIC8vIGhldCB2ZW5zdGVyIGVuIGhvdWR0IHppY2ggYWFuIGVlbiBib3Zlbi0gZW4gb25kZXJncmVucy4gQmlqIDE0NDBweCBrb210IGRpdFxuICAgIC8vIHVpdCBvcCBvbmdldmVlciAzNDVweCwgYmlqIDEwMjRweCBvcCBvbmdldmVlciAyNDVweCwgZW4gaGV0IHpha3Qgbm9vaXQgb25kZXJcbiAgICAvLyAyMjBweC4gWm9uZGVyIGRpZSBib3ZlbmdyZW5zIHpvdSBoZXQgdmVsZCBvcCBlZW4gYnJlZWQgc2NoZXJtIGRlIHVpdGxlZ1xuICAgIC8vIGVybmFhc3Qgd2VnZHJ1a2tlbjsgem9uZGVyIG9uZGVyZ3JlbnMgem91IGhldCBvcCBlZW4gdGFibGV0IHdlZXIgZ2FhblxuICAgIC8vIHByb3BwZW4uXG4gICAgLy9cbiAgICAvLyBXYWFyb20gZGl0IG9vayBoZXQgdWl0a2xhcHBhbmVlbCBuZXR0ZXIgbWFha3Q6IHFkbmFwcm8tbWVudSBzY2hhYWx0IHppY2ggb3BcbiAgICAvLyB6aWpuIExBTkdTVEUgb3B0aWUgZW4gbmlldCBvcCBkZSB0cmlnZ2VyIChzdGFhdCB6byBpbiBxZG5hLW1lbnUuanM6XG4gICAgLy8gXCJjb250ZW50LWZpdCB3aXRoIG1pbiAxNjBweFwiKS4gQmlqIGVlbiBzbWFsbGUgdHJpZ2dlciB3ZXJkIGhldCBwYW5lZWwgZHVzXG4gICAgLy8gYnJlZGVyIGRhbiBoZXQgdmVsZCBlcmJvdmVuLiBcIkFsbGVlbiBwcm9qZWN0bWFuYWdlcnNcIiBwYXN0IG51IGluIGhldCB2ZWxkXG4gICAgLy8gemVsZiwgZHVzIGRpZSB0d2VlIGxvcGVuIHdlZXIgZ2VsaWprLlxuICAgIHFkbmFwcm8tc2VsZWN0IHtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDIyMHB4LCAyNHZ3LCAzNjBweCk7XG4gICAgfVxuXG4gICAgLy8gVGVrc3R2ZWxkZW4gKG5hYW0sIGRvZWwpIGtyaWpnZW4gZGV6ZWxmZGUgbWFhdCBhbHMgZWVuIGtldXplbGlqc3QsIHpvZGF0IGRlXG4gICAgLy8gaGVsZSByZWNodGVya29sb20gw6nDqW4ga2FudGxpam4gaG91ZHQuXG4gICAgLy9cbiAgICAvLyBMRVQgT1A6IGRlemUgcmVnZWwgaXMgbWV0IG9wemV0IE5JRVQgYHFkbmFwcm8taW5wdXRgIGluIGhldCBhbGdlbWVlbi4gRGF0IHdhc1xuICAgIC8vIGhpaiBlZXJzdCwgdG9lbiBoZXQgZ2V0YWx2ZWxkIHZvb3IgZGUgZHV1ciBoZXQgZW5pZ2UgaW5wdXQtdmVsZCBvcCBkZXplXG4gICAgLy8gcGFnaW5hIHdhczsgc2luZHMgbmFhbSBlbiBkb2VsIGVyYmlqIHN0YWFuIHpvdSB6byduIGFsZ2VtZW5lIHJlZ2VsIGRpZSB0d2VlXG4gICAgLy8gb3AgMTI4cHggcGxhdGRydWtrZW4uXG4gICAgI3Rscy1uYW1lLFxuICAgICN0bHMtcHVycG9zZSB7XG4gICAgICAgIHdpZHRoOiBjbGFtcCgyMjBweCwgMjZ2dywgMzgwcHgpO1xuICAgIH1cblxuICAgIC8vIEdlc2NoYXR0ZSBkdXVyLiBTbWFsbGVyIGRhbiBkZSBhbmRlcmUga2V1emVsaWpzdGVuLCB3YW50IGRlIGxhbmdzdGUgb3B0aWVcbiAgICAvLyBpcyBcIjEgdXVyIDMwIG1pblwiIGVuIG5pZXQgZWVuIHppbi5cbiAgICAvL1xuICAgIC8vIE9wIGhldCBhdHRyaWJ1dXQgZW4gbmlldCBvcCBlZW4gaWQ6IGRlIG1hcmt1cCB6aXQgc2luZHMgMDQuMDguMjAyNiBpbiBkZVxuICAgIC8vIGdlZGVlbGRlIHBhcnRpYWwgdjEvcHJvamVjdC9fdGxzX3BsYW5uaW5nLmh0bWwgZW4gc3RhYXQgZHVzIG9wIHR3ZWVcbiAgICAvLyBzY2hlcm1lbiAoZGUgaW5zdGVsbGluZ2VucGFnaW5hIGVuIGhldCBwYW5lZWwgb3AgZGUgcGxhbm5lcikuIEVlbiBpZCBtYWdcbiAgICAvLyBtYWFyIMOpw6luIGtlZXIgcGVyIHBhZ2luYSBiZXN0YWFuIGVuIHpvdSBoaWVyIGJvdmVuZGllbiBtYWFyIG9wIMOpw6luIHZhbiBkZVxuICAgIC8vIHR3ZWUgc2NoZXJtZW4gcmFrZW4uXG4gICAgLy9cbiAgICAvLyBXaW50IHZhbiBkZSBhbGdlbWVuZSBxZG5hcHJvLXNlbGVjdC1yZWdlbCBoaWVyYm92ZW46IGVlbiBhdHRyaWJ1dXRzZWxlY3RvclxuICAgIC8vIHRlbHQgYWxzIGVlbiBjbGFzcyBlbiBpcyBkdXMgc3BlY2lmaWVrZXIgZGFuIGVlbiBlbGVtZW50bmFhbS5cbiAgICBbZGF0YS10bHMtZHVyYXRpb25dIHtcbiAgICAgICAgd2lkdGg6IDE4MHB4O1xuICAgIH1cbn1cblxuLy8gQmV2ZXN0aWdpbmcgbmEgaGV0IG9wc2xhYW4uIERpdCBpcyBtZXQgb3B6ZXQgR0VFTiBxZG5hcHJvLXRvYXN0OiBlZW4gdG9hc3Rcbi8vIGxhbmR0IGluIGVlbiBob2VrIHZhbiBoZXQgc2NoZXJtLCBlbiBiaWogdGllbiBzY2hha2VsYWFycyBvbmRlciBlbGthYXIgbW9ldFxuLy8gamUga3VubmVuIHppZW4gV0VMS0UgZXIgaXMgb3BnZXNsYWdlbi4gVmFuZGFhciBlZW4gcGlsbGV0amUgaW4gZGUgcmlqIHplbGYuXG4udGxzLXNhdmVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMjJweDtcbiAgICBwYWRkaW5nOiAwIDhweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yLXBpbGwsIDk5OXB4KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ncmVlbi1iZywgI2M1ZjVlMik7XG4gICAgY29sb3I6IHZhcigtLWMtc2lnbmFsLWdyZWVuLXRleHQsICM0MjhiNmUpO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCB0cmFuc2Zvcm0gMjAwbXMgZWFzZTtcbiAgICAvLyBOb29pdCBlZW4gdGlrZG9lbDogaGV0IGlzIGVlbiBtZWRlZGVsaW5nLlxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgJi5pcy1vbiB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG5cbiAgICAmLnRscy1zYXZlZC0tZXJyb3Ige1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZWUzZTMpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xuICAgIH1cblxuICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxufVxuXG4vLyBGb3V0cmVnZWwgb25kZXIgaGV0IGdldGFsdmVsZCAoZ2VzY2hhdHRlIGR1dXIpLiBEZSA1Li4xNDQwLWNvbnRyb2xlIHppdCBvcFxuLy8gZGUgc2VydmVyLCBkdXMgZGV6ZSByZWdlbCB3b3JkdCBnZXZ1bGQgbWV0IHdhdCBkZSBzZXJ2ZXIgdGVydWdzdHV1cnQuXG4udGxzLWZpZWxkLWVycm9yIHtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7XG5cbiAgICAmOmVtcHR5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8vIC0tLS0gR2VzY2hhdHRlIGR1dXIgLS0tLVxuLy8gSGllciBzdG9uZCBlZW4gZ2V0YWx2ZWxkIG1ldCBkZSBlZW5oZWlkIFwibWluXCIgZXJuYWFzdC4gU2luZHMgMDQuMDguMjAyNiBpcyBoZXRcbi8vIGVlbiBrZXV6ZWxpanN0IG1ldCB2YXN0ZSBzdGFwcGVuIGluIG1lbnNlbnRhYWwgKFwiNDUgbWluXCIsIFwiMSB1dXJcIiwgXCIxIHV1ciAzMFxuLy8gbWluXCIpLCBkdXMgZGUgbG9zc2UgZWVuaGVpZCBpcyB3ZWc6IGRpZSBzdGFhdCBudSBpbiBkZSBvcHRpZSB6ZWxmLiBEZSB3cmFwcGVyXG4vLyBibGlqZnQsIHdhbnQgZGUgcmlqIHZlcndhY2h0IMOpw6luIGVsZW1lbnQgaW4gZGUgYmVkaWVuaW5nLlxuLnRscy1kdXJhdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xufVxuXG4vLyAtLS0tIFVpdGxlZ3BhbmVlbCAtLS0tXG4vLyBJbmhvdWQgdmFuIGRlIGVuZSBxZG5hcHJvLXBvcG92ZXIgb3AgZGUgcGFnaW5hOyBkaWUgd29yZHQgcGVyIHVpdGxlZ2tub3Bcbi8vIG9wbmlldXcgZ2V2dWxkIGVuIG9wbmlldXcgZ2Vwb3NpdGlvbmVlcmQgKG9wZW4oKSBtYWcgaGVyZ2VicnVpa3Qgd29yZGVuIHZvb3Jcbi8vIG1lZXJkZXJlIHRyaWdnZXJzLCB6aWUgcWRuYS1wb3BvdmVyLmpzKS5cbi8vIEVyIHN0YWF0IGhpZXIgYmV3dXN0IGJpam5hIG5pZXRzIG1lZXIuIERlIGluaG91ZCB2YW4gaGV0IHBhbmVlbCBiZXN0YWF0IHVpdFxuLy8gY29tcG9uZW50ZW46IGVsa2UgdWl0bGVncmVnZWwgaXMgZWVuIHFkbmFwcm8tbGlzdC1yb3cgKGB3cmFwIHN0YXRpY2AsIGR1c1xuLy8gdGVybS1hbHMtdGl0ZWwgbWV0IGRvb3Jsb3BlbmRlIHVpdGxlZykgaW4gZWVuIC5xZG5hcHJvLWxpc3Qtcm93LWdyb3VwLCBlbiBoZXRcbi8vIFwibGV0IG9wXCItYmxvayBpcyBlZW4gcWRuYXByby1hbGVydCB0eXBlPVwid2FybmluZ1wiIGNvbXBhY3QuIFdhdCBvdmVyYmxpamZ0IGlzXG4vLyBkZSBicmVlZHRlIHZhbiBoZXQgcGFuZWVsIGVuIGRlIGtvcCBlcmJvdmVuLCBlbiBkYXQgaXMgcGFnaW5ha2V1emUuXG4vLyBIaWVydm9vciBzdG9uZCBoaWVyIGVlbiBlaWdlbiBkbCBtZXQgZWVuIHplbGZiZWRhY2h0ZSB0ZXJtL2RlZmluaXRpZS1zdGlqbDtcbi8vIGRpZSBpcyB2ZXJ3aWpkZXJkIChLaW0gMDQuMDguMjAyNjogXCJ3ZWVyIGVlbiBoYW5kcm9sbGVkIGRpbmdcIikuXG4udGxzLWluZm8ge1xuICAgIC8vIEdFRU4gZWlnZW4gYnJlZWR0ZS4gcWRuYXByby1wb3BvdmVyIHZhcmlhbnQ9XCJ3aGl0ZVwiIGlzIGhhcmQgMjgwcHggbWV0XG4gICAgLy8gYm94LXNpemluZzogYm9yZGVyLWJveCAoemllIF9wb3BvdmVyLnNjc3MsIGRlIGJhc2lzcmVnZWwpLiBIaWVyIHN0b25kXG4gICAgLy8gZWVyZGVyIG1pbigzODBweCwgLi4uKSwgZW4gZGF0IGxpZXAgZHVzIDEwMHB4IGJ1aXRlbiBoZXQgcGFuZWVsOiBwcmVjaWVzIGRlXG4gICAgLy8gdWl0YnJla2VuZGUgaW5ob3VkIGRpZSBLaW0gb3AgMDQuMDguMjAyNiB6YWcuIERlIG1hYXQgaXMgdmFuIGhldCBjb21wb25lbnQsXG4gICAgLy8gbmlldCB2YW4gZGV6ZSBwYWdpbmEuXG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBtYXJnaW46IDAgMCA4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZjRkKTtcbiAgICAgICAgLy8gUnVpbXRlIHZvb3IgZGUgc2x1aXRrbm9wIHZhbiBkZSBwb3BvdmVyLlxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgIH1cblxuICAgIC8vIERlIGFsZXJ0IGFsbGVlbiBsb3NtYWtlbiB2YW4gZGUgcmlqZW5zdGFwZWwgZXJib3Zlbi4gT3AgaGV0IGF0dHJpYnV1dCwgb21cbiAgICAvLyBkZXplbGZkZSByZWRlbiBhbHMgYmlqIFtkYXRhLXRscy1kdXJhdGlvbl0gaGllcmJvdmVuOiBoZXQgdWl0bGVncGFuZWVsXG4gICAgLy8gc3RhYXQgb29rIG9wIGRlIHBsYW5uZXJwYWdpbmEuXG4gICAgW2RhdGEtdGxzLWluZm8tbm90ZV06bm90KDplbXB0eSkge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gIERldGFpbHBhZ2luYSAoLnVkcC0qKSDigJQgR0VERUVMREUgT1BNQUFLXG4vL1xuLy8gIERlemUgcmVnZWxzIHN0b25kZW4gaW4gZWVuIDxzdHlsZT4tYmxvayBpbiBFTEYgdGVtcGxhdGVzIHRlZ2VsaWprXG4vLyAgKGdlYnJ1aWtlcnMsIGVlbmhlZGVuLCBlZW5oZWlkc3R5cGVuLCBjbGnDq250ZW4sIGtldGVucywgbG9jYXRpZXMsIG5pZXV3cyxcbi8vICBkYXRhcHVudGVuLCBkYXRhcHVudHR5cGVuLCBjYXRlZ29yaWXDq24sIEtQSSdzIGVuIGRlIGdlbmVyaWVrZSBkZXRhaWxwYWdpbmEpLlxuLy8gIEVsa2Ugb3BtYWFrd2lqemlnaW5nIHdhcyBkYWFyZG9vciBlbGYga2VlciB3ZXJrLiBaZSBzdGFhbiBudSDDqcOpbiBrZWVyIGhpZXIuXG4vL1xuLy8gIFdBVCBISUVSIE5JRVQgSU4gSE9PUlQ6XG4vLyAg4oCiIERlIHZpZXIgZG96ZW4gZGllIGRlIEhPT0dURSBiZXBhbGVuIOKAlCAudWRwLWJvZHksIC51ZHAtbWFpbiwgLnVkcC1hdWRpdCBlblxuLy8gICAgLnVkcC1hdWRpdC1ib2R5LiBEaWUgdmVyc2NoaWxsZW4gcGVyIHBhZ2luYSBpbiBtaW4taGVpZ2h0L2hlaWdodCwgZW4gZGF0IGlzXG4vLyAgICBnZWVuIHNsb3JkaWdoZWlkOiBlZW4gYm94IG1ldCBvdmVyZmxvdzpoaWRkZW4ga3Jpamd0IGVlbiBtaW5pbXVtaG9vZ3RlIHZhblxuLy8gICAgbnVsIGVuIHdvcmR0IGRhbiBTVElMIHBsYXRnZWRydWt0LiBEaWUgYmxpanZlbiBwZXIgcGFnaW5hIHN0YWFuLlxuLy8gIOKAoiBBbGxlcyB3YXQgbWFhciBvcCDDqcOpbiBwYWdpbmEgYmVzdGFhdCAoaGV0IGJlZWxkYmxvayBiaWogZWVuaGVkZW4sIGRlXG4vLyAgICB0YWFscmlqZW4gYmlqIGRhdGFwdW50ZW4sIGRlIHRhZ3MgYmlqIG5pZXV3cykuXG4vL1xuLy8gIFdpamt0IGVlbiBwYWdpbmEgYmV3dXN0IGFmLCBsYWF0IGRlIHJlZ2VsIGRhbiBpbiBkYXQgZW5lIHRlbXBsYXRlIHN0YWFuOiBoZXRcbi8vICBzdHlsZS1ibG9rIHZhbiBkZSBwYWdpbmEga29tdCBOQSBzdHlsZS12MS5jc3MgZW4gd2ludCBkdXMgdmFuemVsZi5cbi8vXG4vLyAgRGUgd2FhcmRlbiBoaWVyb25kZXIgemlqbiBvdmVyZ2Vub21lbiB6b2FscyB6ZSB3YXJlbiwgem9kYXQgaGV0IG92ZXJoZXZlbGVuXG4vLyAgemVsZiBuaWV0cyBhYW4gaGV0IHVpdGVybGlqayB2ZXJhbmRlcnQuIFtLaW0gMTEuMDguMjAyNl1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIOKUgOKUgCBQYW5lZWwg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4udWRwLXBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItY2FyZCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctY2FyZCk7XG59XG4udWRwLXBoIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmc6IDhweCAxNHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xufVxuLnVkcC1wdCB7XG4gICAgZm9udC1zaXplOiAxMC41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbn1cbi51ZHAtcGIge1xuICAgIHBhZGRpbmc6IDExcHggMTRweDtcbn1cblxuLy8g4pSA4pSAIEtvcCB2YW4gZGUgcGFnaW5hIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnVkcC1oZXJvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLnVkcC1oZXJvLWxlZnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtNCk7XG59XG4udWRwLW5hbWUge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cbi51ZHAtbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICBtYXJnaW4tdG9wOiAzcHg7XG59XG4udWRwLWRvdCB7XG4gICAgY29sb3I6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xufVxuLnVkcC1sb2NrIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG59XG4udWRwLWxvY2stbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cblxuLy8g4pSA4pSAIFZlbGRlbiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi51ZHAtZmcge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAxMHB4IDE2cHg7XG59XG4udWRwLWZnLTIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbn1cbi51ZHAtZmctMyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbn1cbi51ZHAtZmwge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG4udWRwLWZ2IHtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHkpO1xufVxuLnVkcC1mZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLy8g4pSA4pSAIEJld2Vya3Zvcm0g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4udWRwLWlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA1cHggOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItYnRuKTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXBhZ2UpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAyOHB4O1xufVxuLnVkcC1pbnB1dDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSg2NCw3MywxNTQsMC4xMik7XG59XG4udWRwLXRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IDcycHg7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xufVxuLnVkcC1lZi1mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOHB4IDE0cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXBhZ2UpO1xufVxuLnVkcC1zYXZlLWJ0biB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC1wdXJwbGUpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1idG4pO1xuICAgIHBhZGRpbmc6IDVweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cbi51ZHAtc2F2ZS1idG46aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuODg7XG59XG4udWRwLWNhbmNlbC1idG4ge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1idG4pO1xuICAgIHBhZGRpbmc6IDVweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG4udWRwLWNhbmNlbC1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG59XG4udWRwLWVkaXQtYnRuIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiAycHggOHB4O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTJzO1xufVxuLnVkcC1lZGl0LWJ0bjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1wYWdlKTtcbn1cbi51ZHAuZWRpdGluZyAudWRwLWVkaXQtYnRuIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4vLyDilIDilIAgQmFkZ2VzIGVuIGJlZWxkIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnVkcC1iYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDNweDtcbiAgICBwYWRkaW5nOiAycHggN3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4udWRwLWJhZGdlLWdyYXkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctcGFnZSk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG4udWRwLWJhZGdlLWdyZWVuIHtcbiAgICBiYWNrZ3JvdW5kOiAjRENGQ0U3O1xuICAgIGNvbG9yOiAjMTU4MDNEO1xufVxuLnVkcC1iYWRnZS1ibHVlIHtcbiAgICBiYWNrZ3JvdW5kOiAjREJFQUZFO1xuICAgIGNvbG9yOiAjMUQ0RUQ4O1xufVxuLnVkcC1iYWRnZS1wdXJwbGUge1xuICAgIGJhY2tncm91bmQ6ICNFREU5RkU7XG4gICAgY29sb3I6ICM2RDI4RDk7XG59XG4udWRwLWJhZGdlLXR5cGUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtbGlnaHQtcHVycGxlLTEwMCwgI0VFRjBGQik7XG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbn1cbi51ZHAtaW1nIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1jYXJkKTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXBhZ2UpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4udWRwLWltZy13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLy8gSGVybyB2aXN1YWwgZm9yIGEgcmVjb3JkLnZpc3VhbCBvZiBraW5kIFwiaWNvblwiIChzZWUgZGV0YWlsLmh0bWwudHdpZydzXG4vLyBkZXRhaWxfaGVyb19tZWRpYSBibG9jayk6IHFkbmFwcm8tYWN0aXZpdHktaWNvbiBjYXJyaWVzIGZpeGVkIHR3by10b25lXG4vLyBhcnR3b3JrIGFuZCBpcyBub3QgdGludGFibGUsIHNvIHRoZSByZWNvcmQncyBjb2xvdXIgbGl2ZXMgb24gdGhpcyB0aWxlIOKAlFxuLy8gdGhlIHNhbWUgaWRlYSBhbmQgdGhlIHNhbWUgZWlnaHQgaG91c2UgYmFja2dyb3VuZCB0b2tlbnMgYXMgcWRuYS10YWJsZSdzXG4vLyAuY3Z0LXRpbGUgKHRhYmxlLnNjc3MpIGFuZCBxZG5hcHJvLWdyaWQtdGlsZSdzIHRpbnRzLCBhdCB0aGUgaGVybydzIG93blxuLy8gNDBweCBmb290cHJpbnQgKG1hdGNoZXMgLnVkcC1pbWcpLlxuLnVkcC12aXN1YWwtdGlsZSB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItY2FyZCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS0xMDApO1xufVxuLnVkcC12aXN1YWwtdGlsZS0tZ3JleSAgICAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTApOyB9XG4udWRwLXZpc3VhbC10aWxlLS1yZWQgICAgICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtc2lnbmFsLXJlZC1iZyk7IH1cbi51ZHAtdmlzdWFsLXRpbGUtLXllbGxvdyAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXllbGxvdy1iZyk7IH1cbi51ZHAtdmlzdWFsLXRpbGUtLWdyZWVuICAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLWdyZWVuLWJnKTsgfVxuLnVkcC12aXN1YWwtdGlsZS0tYmx1ZSAgICAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnKTsgfVxuLnVkcC12aXN1YWwtdGlsZS0tYnJpZ2h0LWJsdWUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtYnJpZ2h0LWJsdWUtMi1iZyk7IH1cbi51ZHAtdmlzdWFsLXRpbGUtLXBpbmsgICAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1zaWduYWwtcGluay1iZyk7IH1cbi51ZHAtdmlzdWFsLXRpbGUtLXB1cnBsZSAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXB1cnBsZS1iZyk7IH1cbi51ZHAtdmlzdWFsLWF2YXRhciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4udWRwLWltZy1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1jYXJkKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNDIpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXM7XG59XG4udWRwLWltZy1vdmVybGF5LWljb24ge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLy8g4pSA4pSAIEF1ZGl0IHRyYWlsIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLnVkcC1hdWRpdC1ib2R5Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDRweDtcbn1cbi51ZHAtYXVkaXQtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLWNhcmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cbi51ZHAtYXVkaXQtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG4udWRwLWF1ZGl0LWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi51ZHAtYXVkaXQtZmVlZCAudWRwLXRhIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuLnVkcC1hdWRpdC1oZHIge1xuICAgIHBhZGRpbmc6IDhweCAxNHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4udWRwLWF1ZGl0LXBoIHtcbiAgICBmbGV4OiAxO1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBwYWRkaW5nOiAxMnB4IDhweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXItcm93KTtcbiAgICBib3JkZXI6IDEuNXB4IGRhc2hlZCB2YXIoLS1jLWJvcmRlci1jYXJkKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWluLWhlaWdodDogNjBweDtcbn1cbi51ZHAtYXVkaXQtcGgtc3ViIHtcbiAgICBmb250LXNpemU6IDEwLjVweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cbi51ZHAtYXVkaXQtcGgtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xufVxuLnVkcC1hdWRpdC12IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1yb3cpO1xuICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5KTtcbn1cbi51ZHAtbWdtdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQtMik7XG59XG4udWRwLW1nbXQtbGJsIHtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cbi51ZHAtbWdtdC1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuLnVkcC1tZ210LXJvdzpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLnVkcC1tZ210LXNlY3Rpb24tbGJsIHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuLnVkcC1tZ210LXZhbCB7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5KTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbn1cbi51ZHAtdGEge1xuICAgIGZvbnQtc2l6ZTogMTEuNXB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi51ZHAtdGQge1xuICAgIHdpZHRoOiA3cHg7XG4gICAgaGVpZ2h0OiA3cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG59XG4udWRwLXRkLmRpbSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG59XG4udWRwLXRlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDZweCAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LTIpO1xufVxuLnVkcC10ZTpsYXN0LW9mLXR5cGUge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4udWRwLXRsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4udWRwLXRtIHtcbiAgICBmb250LXNpemU6IDEwLjVweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICBtYXJnaW4tdG9wOiAxcHg7XG59XG5cbi8vIOKUgOKUgCBPdmVyaWcg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4udWRwLW1haW46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNHB4O1xufVxuLnVkcC1tYWluOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItY2FyZCk7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuLnVkcC1tYWluOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4udWRwLmVkaXRpbmcgLnVkcC1pbWctd3JhcCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnVkcC5lZGl0aW5nIC51ZHAtaW1nLXdyYXA6aG92ZXIgLnVkcC1pbWctb3ZlcmxheSB7XG4gICAgb3BhY2l0eTogMTtcbn1cbltpZF49XCJ1ZHAtZWYtXCJdLnVkcC1lZi1vcGVuIHtcbiAgICBtYXgtaGVpZ2h0OiAyMDAwcHg7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgYW5pbWF0aW9uOiB1ZHBSb2xsRG93biAwLjI2cyBjdWJpYy1iZXppZXIoMC40LDAsMC4yLDEpIGJvdGg7XG59XG5baWRePVwidWRwLXJvLVwiXS51ZHAtcm8taGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUHVsc2Ug4oCUIHBhZ2luYXN0aWpsZW4gKFc5LCBmYXNlIDQ6IDEwLjA4LjIwMjYpXG4vL1xuLy8gU3RvbmQgdG90IDEwLjA4LjIwMjYgYWxzIHR3ZWUgPHN0eWxlPi1ibG9ra2VuIElOIGRlIHZpZXdzOiA5MDggcmVnZWxzIGluXG4vLyBkZXRhaWwuaHRtbCBlbiA0OTIgaW4gaW5kZXguaHRtbCwgb3AgZWVuIGJlc3RhbmQgdmFuIDM4ODggcmVzcC4gMjQ3MiByZWdlbHMuXG4vLyBEYWFybWVlIHdhcyB0d2Vlw6tuaGFsZmR1aXplbmQgcmVnZWxzIG9wbWFhayBhbGxlZW4gdGUgdmluZGVuIGRvb3IgaW4gZWVuXG4vLyBUd2lnLXRlbXBsYXRlIHRlIHNjcm9sbGVuLCBlbiB3ZXJkIGVsa2Uga2xlaW5lIHdpanppZ2luZyBlZW4gem9la3RvY2h0LlxuLy9cbi8vIOKaoO+4jyBDQVNDQURFLU9SREUuIEluIGVlbiA8c3R5bGU+LWJsb2sgaW4gZGUgdmlldyBsYW5kZGUgZGV6ZSBvcG1hYWsgQUNIVEVSXG4vLyBzdHlsZS12MS5jc3MgZW4gd29uIGhpaiBkdXMgb3AgVk9MR09SREUsIG5pZXQgb3Agc3BlY2lmaWNpdGVpdC4gRGFhcm9tIGhvb3J0XG4vLyBkZSBAdXNlIHZhbiBkaXQgYmVzdGFuZCBpbiBzdHlsZS12MS5zY3NzIE7DgSBgY29tcG9uZW50cy9jb21wb25lbnRzYCB0ZSBzdGFhblxuLy8gKGRhdCBpcyB3YWFyIGRlIHFkbmFwcm8tKi1jb21wb25lbnRlbiB2YW5kYWFuIGtvbWVuKSBlbiB2w7PDs3IgaGV0IHZlbmRvci1ibG9rLlxuLy8gWmV0IGplIGhlbSBob2dlcm9wLCBkYW4ga2FuIGVlbiBjb21wb25lbnQgZGV6ZSBwYWdpbmEtb3ZlcnJpZGVzIGdhYW4gd2lubmVuIOKAlFxuLy8gZW4gZGF0IHZhbHQgcGFzIG9wIGFscyBpZXRzIGVyIHN1YnRpZWwgYW5kZXJzIHVpdHppZXQsIG5pZXQgYWxzIGVlbiBmb3V0LlxuLy9cbi8vIOKaoO+4jyBOaWV0cyB1aXQgZGV6ZSBiZXN0YW5kZW4gaXMgV0VHR0VMQVRFTiBvZiBcIm9wZ2VzY2hvb25kXCIgdGlqZGVucyBkZVxuLy8gdmVyaHVpemluZy4gV2F0IGVyIGRvb2QgdWl0emlldCBpcyBkYXQgdmFhayBuaWV0OiBlciB6aXR0ZW5cbi8vIGJld2Vya3N0YW5kLXBvb3J0ZW4gZW4gZGlzcGxheS1yZWdlbHMgdHVzc2VuIGRlIG9wc211ayAoemllIGRlIHByb2plY3Rlbi1cbi8vIHBhZ2luYSdzLCB3YWFyIHByZWNpZXMgZGF0IGVlbiBrZWVyIG1pc2dpbmcpLiBPcHJ1aW1lbiBpcyBlZW4gYXBhcnRlXG4vLyBiZXNsaXNzaW5nIG1ldCBlZW4gZWlnZW4gdmVyaWZpY2F0aWUuXG4vL1xuLy8gRGUgdHdlZSBwYWdpbmEncyBzdGFhbiBoaWVyb25kZXIgaW4gaHVuIGVpZ2VuIHNlY3RpZSwgaW4gZGUgb29yc3Byb25rZWxpamtlXG4vLyB2b2xnb3JkZSBlbiBtZXQgaHVuIGVpZ2VuIGNvbW1lbnRhYXIuIEdlZW4gZW5rZWxlIHJlZ2VsIGlzIGhlcnNjaHJldmVuLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIDEuIERFVEFJTFBBR0lOQSAodjEvcHVsc2UvZGV0YWlsLmh0bWwpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qIFB1bHNlLWNhbXBhZ25lcGFnaW5hIOKAlCBwYWdpbmEtZ2VzY29vcHQgKHB1bHNlLSopLlxuICAgTGV0IG9wOiBnZWVuIFR3aWctY29tbWVudGFhciBpbiBkaXQgYmxvayAoZGF0IGJyZWVrdCBkZSBoZWxlIHBhZ2luYSkuICovXG5cbi8qIC0tLSBLb3A6IMOpw6luIHdpdHRlIGxhYWcgZGllIGRvb3Jsb29wdCB2YW5hZiBkZSBicmVhZGNydW1iLWJhbGsgLS0tLS0tLS0tLSAqL1xuLyogWmVsZmRlIFwiZ2VvcGVuZGUga2FhcnRcIi1pZGlvb20gYWxzIGRlIHRha2VubGlqc3RwYWdpbmE6IGVlbiBkb29yc2NoaWpuZW5kZVxuICAgd2l0dGUgbGFhZyBtZXQgZWVuIHZlcmxvb3AtbWFza2VyLCB6b2RhdCBkZSBwYWFyc2UgcGFnaW5hIGVyb25kZXIgYmVnaW50LiAqL1xuLnB1bHNlLWRldGFpbC1oZWFkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHBhZGRpbmc6IDE4cHggMjhweCAyMnB4O1xufVxuLnB1bHNlLWRldGFpbC1oZWFkZXI6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KSBzYXR1cmF0ZSgxLjYpO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpIHNhdHVyYXRlKDEuNik7XG4gICAgLXdlYmtpdC1tYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDAwIDQwJSwgcmdiYSgwLCAwLCAwLCAwKSAxMDAlKTtcbiAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDAwIDQwJSwgcmdiYSgwLCAwLCAwLCAwKSAxMDAlKTtcbn1cbi8qIC0tLSBDYW1wYWduZWtvcDogaGVyby1rb3BpZSB2YW4gZGUgcHJvamVjdGVucGFnaW5hIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogMS1vcC0xIGdla29waWVlcmQgdmFuIC5wdjItaGVybyBjLnMuIGluIHByb2plY3RzLXYyLmh0bWwgKHJlZ2VscyAyMjktMzA3KTpcbiAgIGZvdG8gbWV0IHZlcmxvb3Atb3ZlcmxheSwgcm9uZGUgZ2xhemVuIHRlcnVna25vcCwgd2l0dGUgdGl0ZWwsIG9tc2NocmlqdmluZ1xuICAgZW4gbWV0YSwgYXZhdGFyLXN0YWNrIG1ldCBwbHVza25vcCwgZW4gaGV0IGFjdGllY2x1c3RlciAoZmF2b3JpZXQgK1xuICAgbWVlci1tZW51KSByZWNodHNib3Zlbi4gUHJlZml4IGlzIC5wdWxzZS1oZXJvIGkucC52LiAucHYyLWhlcm87IGRlIG5pZXV3ZVxuICAga29wLW1hcmt1cCBkaWUgZGV6ZSBrbGFzc2VuIGdlYnJ1aWt0IGtvbXQgaW4gZWVuIHZvbGdlbmRlIGthYXJ0LlxuXG4gICBBQU5OQU1FLCBub2cgdGUgY2hlY2tlbiBiaWogZGllIG1hcmt1cC1rYWFydDogLnB1bHNlLWhlcm8geml0IHJlY2h0c3RyZWVrc1xuICAgSU4gLnB1bHNlLWRldGFpbC1oZWFkZXIgKGhpZXJib3ZlbiksIHdhYXJ2YW4gZGUgcGFkZGluZyAoMThweCAyOHB4IDIycHgpXG4gICBoaWVyIG1ldCBuZWdhdGlldmUgbWFyZ2VzIHdvcmR0IG9wZ2VoZXZlbiB6b2RhdCBkZSBmb3RvIOKAlCBuZXQgYWxzXG4gICAucHYyLWhlcm8gb3AgZGUgcHJvamVjdGVucGFnaW5hIOKAlCB0b3QgZGUgcmFuZCB2YW4gZGUga29wIGxvb3B0LiBOZXN0IGRlXG4gICBtYXJrdXAgYW5kZXJzLCBkYW4gbW9ldCBkZXplIG5lZ2F0aWV2ZSBtYXJnZSBtZWUgdmVyaHVpemVuLiAqL1xuLnB1bHNlLWhlcm8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvKiBPbmUgc291cmNlIGZvciB0aGUgaGVybyBoZWlnaHQ7IHRoZSBicmVha3BvaW50cyBiZWxvdyBhbmQgdGhlXG4gICAgICAgZ2xhc3MtbmF2YmFyIHB1bGwtdXAgYm90aCByZWFkIHRoaXMgdG9rZW4gaW5zdGVhZCBvZiByZS1zdGF0aW5nIHB4LiAqL1xuICAgIC0tcHVsc2UtaGVyby1oOiAyODBweDtcbiAgICBoZWlnaHQ6IHZhcigtLXB1bHNlLWhlcm8taCk7XG4gICAgbWFyZ2luOiAtMThweCAtMjhweCAtMjJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBwYWRkaW5nOiAyNHB4IDI4cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS0yMDApO1xuICAgIC8qIE5hYW0gdm9vciBkZSBjcm9zcy1kb2N1bWVudCB2aWV3LXRyYW5zaXRpb24gaGllcm9uZGVyLiAqL1xuICAgIHZpZXctdHJhbnNpdGlvbi1uYW1lOiBwdWxzZS1oZXJvLXBob3RvO1xufVxuLnB1bHNlLWhlcm8tb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIC8qIFJlYWRhYmlsaXR5IHNjcmltICgxOS4wOC4yMDI2LCBLaW0pOiBQdWxzZSBjb3ZlcnMgYXJlIG9mdGVuIGxpZ2h0LFxuICAgICAgIHBhc3RlbCBpbGx1c3RyYXRpb25zIHdoZXJlIHRoZSBwdjIgZ3JhZGllbnQgaXMgdG9vIHRoaW4gYXJvdW5kIHRoZVxuICAgICAgIHRpdGxlIHpvbmUuIFR3byBzdGFja2VkIGdyYWRpZW50czogYSBzdHJvbmdlciBib3R0b20gc2NyaW0gdGhhdFxuICAgICAgIHN0YXJ0cyBoaWdoZXIsIHBsdXMgYSBsZWZ0LXNpZGUgc2NyaW0gb3ZlciB0aGUgdGV4dCBjb2x1bW4gc28gdGhlXG4gICAgICAgcmlnaHQgc2lkZSBvZiB0aGUgaWxsdXN0cmF0aW9uIHN0YXlzIHZpc2libGUuIFdvcmtzIHRvZ2V0aGVyIHdpdGhcbiAgICAgICB0aGUgdGV4dC1zaGFkb3cgb24gLnB1bHNlLWhlcm8taW5mbyBiZWxvdy4gKi9cbiAgICBiYWNrZ3JvdW5kOlxuICAgICAgICBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICB0byByaWdodCxcbiAgICAgICAgICAgIHJnYmEoMCwgMCwgMCwgMC4zOCkgMCUsXG4gICAgICAgICAgICByZ2JhKDAsIDAsIDAsIDApIDYwJVxuICAgICAgICApLFxuICAgICAgICBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICB0byB0b3AsXG4gICAgICAgICAgICByZ2JhKDAsIDAsIDAsIDAuNzgpIDAlLFxuICAgICAgICAgICAgcmdiYSgwLCAwLCAwLCAwLjM4KSA1MCUsXG4gICAgICAgICAgICByZ2JhKDAsIDAsIDAsIDApIDEwMCVcbiAgICAgICAgKTtcbn1cbi5wdWxzZS1oZXJvLWJhY2sge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDIwcHg7XG4gICAgbGVmdDogMjBweDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMwKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIwKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHotaW5kZXg6IDI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgZWFzZTtcbn1cbi5wdWxzZS1oZXJvLWJhY2s6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzQpOyB9XG4ucHVsc2UtaGVyby1iYWNrIHFkbmFwcm8taWNvbiB7IGNvbG9yOiAjZmZmOyB9XG5cbi5wdWxzZS1oZXJvLWluZm8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIC8qIEluaGVyaXRlZCBieSB0aXRsZSwgZGVzY3JpcHRpb24gYW5kIG1ldGE6IGNhcnJpZXMgdGhlIGxpZ2h0ZXN0IHNwb3RzXG4gICAgICAgb2YgYSBuZWFyLXdoaXRlIGlsbHVzdHJhdGlvbiB3aXRob3V0IHJlYWRpbmcgYXMgYSBkcm9wIHNoYWRvdy4gKi9cbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC40MCk7XG59XG5cbi8qIFRpdGVsICsgc3RhdHVzY2hpcCBvcCDDqcOpbiByaWouIC5wdjItaGVybyBoZWVmdCBnZWVuIGNoaXAgbmFhc3QgZGUgdGl0ZWwg4oCUXG4gICBkYXQgaXMgZWlnZW4gYWFuIGRlIGNhbXBhZ25la29wIOKAlCBkdXMgZGV6ZSByaWotd3JhcHBlciBpcyBuaWV1dy4gRGUgY2hpcCB6ZWxmXG4gICBpcyBlZW4gcWRuYXByby10YWcgaW4gZWVuIHBhc3RlbGtsZXVyIChfY2FtcGFpZ24taGVhZC5odG1sKSwgZW4gTklFVCBkZXplbGZkZVxuICAgdm9ybSBhbHMgZGUgcGlsIG9wIGRlIHRlZ2VsOiBkaWUgbGlndCBvcCBlZW4gb21zbGFnZm90byBlbiBnZWJydWlrdCBkYWFyb21cbiAgIHZhcmlhbnQ9XCJnbGFzc1wiLiBUd2VlIHBsZWtrZW4sIHR3ZWUgYWNodGVyZ3JvbmRlbiwgaGV0emVsZmRlIFdPT1JELiAqL1xuLnB1bHNlLWhlcm8tdGl0bGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLnB1bHNlLWhlcm8tbmFtZSB7XG4gICAgZm9udC1zaXplOiAyNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG4ucHVsc2UtaGVyby1zdGF0dXMge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgcGFkZGluZzogNHB4IDlweCA0cHggN3B4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNjQsIDczLCAxNTQsIDAuNzgpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMik7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCkgc2F0dXJhdGUoMS4yKTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpIHNhdHVyYXRlKDEuMik7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xufVxuLnB1bHNlLWhlcm8tc3RhdHVzIHFkbmFwcm8taWNvbiB7IGNvbG9yOiAjZmZmOyBmbGV4LXNocmluazogMDsgfVxuXG4vKiBPbXNjaHJpanZpbmc6IHdpdHRlIHRla3N0IG9wIGRlIGZvdG8sIDMgcmVnZWxzIGFmZ2VrYXB0LiBHZWVuIGVxdWl2YWxlbnQgaW5cbiAgIC5wdjItaGVybyAoZGllIHRvb250IGdlZW4gb21zY2hyaWp2aW5nKSDigJQgdm9ybSBlbiB0b29uIHZvbGdlbiB3ZWwgZGV6ZWxmZGVcbiAgIFwid2l0LW9wLWZvdG9cIi10YWFsIGFscyAucHYyLW9yZyAocmdiYSgyNTUsMjU1LDI1NSwwLjcyKSArIHRleHQtc2hhZG93KS4gKi9cbi5wdWxzZS1oZXJvLWRlc2NyIHtcbiAgICBtYXJnaW46IDZweCAwIDA7XG4gICAgbWF4LXdpZHRoOiA2NDBweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nik7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMztcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5wdWxzZS1oZXJvLW1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG4ucHVsc2UtaGVyby1tZXRhLWl0ZW0ge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYyKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA1cHg7XG59XG4ucHVsc2UtaGVyby1tZXRhLWl0ZW0gcWRuYXByby1pY29uIHsgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42Mik7IH1cblxuLyogQXZhdGFyLXN0YWNrICsgcGx1c2tub3A6IGtvcGllIHZhbiAucHYyLW1lbWJlcnMgLyAucHYyLW1lbWJlcnMtYWRkLiBEZVxuICAgb3ZlcmxhcHBlbmRlIHJvbmRlIGF2YXRhcnMgemVsZiBrb21lbiB1aXQgaGV0IGdlZGVlbGRlIHFkbmFwcm8tYXZhdGFyLXN0YWNrXG4gICBjb21wb25lbnQgKHNjc3MvY29tcG9uZW50cy92Mi9hdmF0YXItc3RhY2svX2F2YXRhci1zdGFjay5zY3NzKSDigJQgaGllclxuICAgYWxsZWVuIGRlIGtsaWtiYXJlIG9taHVsbGVuZGUgcGlsIGVuIGRlIHJvbmRlIGdsYXplbiBwbHVza25vcC4gKi9cbi5wdWxzZS1oZXJvLW1lbWJlcnMge1xuICAgIGFsbDogdW5zZXQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDRweCA4cHggNHB4IDRweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNTBtcyBlYXNlO1xufVxuLnB1bHNlLWhlcm8tbWVtYmVyczpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7IH1cbi5wdWxzZS1oZXJvLW1lbWJlcnMtYWRkIHtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMwKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogI2ZmZjtcbn1cbi5wdWxzZS1oZXJvLW1lbWJlcnMtYWRkIHFkbmFwcm8taWNvbiB7IGNvbG9yOiAjZmZmOyB9XG5cbi8qIEFjdGllY2x1c3RlciAoZmF2b3JpZXQgKyBtZWVyLW1lbnUpLCBrb3BpZSB2YW4gLnB2Mi1oZXJvLWFjdGlvbnMgaW5jbC4gZGVcbiAgIGZhdm9yaXRlLWJ1dHRvbiBob3Zlci1yZWdlbC4gKi9cbi5wdWxzZS1oZXJvLWFjdGlvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDI2cHg7XG4gICAgcmlnaHQ6IDI4cHg7XG4gICAgei1pbmRleDogMztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xufVxuLnB1bHNlLWhlcm8tYWN0aW9ucyBxZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzApO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbn1cbi5wdWxzZS1oZXJvLWFjdGlvbnMgcWRuYXByby1mYXZvcml0ZS1idXR0b246aG92ZXI6bm90KC5mYXZvcml0ZS1idXR0b24tZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzApO1xufVxuLnB1bHNlLWhlcm8tbW9yZSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuLnB1bHNlLWhlcm8tbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogY2FsYygxMDAlICsgOHB4KTtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAxMDtcbn1cbi5wdWxzZS1oZXJvLW1lbnVbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLyogLS0tIENyb3NzLWRvY3VtZW50IHZpZXctdHJhbnNpdGlvbiArIGZhbGxiYWNrIGVudHJhbmNlIC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyog4pqg77iPIEdFRU4gbmlldXcgYEB2aWV3LXRyYW5zaXRpb24geyBuYXZpZ2F0aW9uOiBhdXRvOyB9YC1ibG9rIGhpZXI6IGRhdCBzdGFhdFxuICAgYWwgZ2xvYmFhbCBpbiBiYXNlLnNjc3MgKHJlZ2VsIDEwKSwgZW4gZGF0IGJlc3RhbmQgY29tcGlsZWVydCBtZWUgaW5cbiAgIGRlemVsZmRlIHN0eWxlLXYxLmNzcy4gRWVuIHR3ZWVkZSBgQHZpZXctdHJhbnNpdGlvbmAtYXQtcnVsZSB6b3UgcHV1clxuICAgb3ZlcmJvZGlnIHppam4g4oCUIGRlIHNjb3BlIGhpZXJvbmRlciBwYWt0IGFsbGVlbiBoZXQgbW9ycGgtZ2VkcmFnIHZhbiBoZXRcbiAgIG1ldCBuYWFtIGdlbWVya3RlIGhlcm8tZWxlbWVudC4gKi9cbjo6dmlldy10cmFuc2l0aW9uLW9sZChwdWxzZS1oZXJvLXBob3RvKSxcbjo6dmlldy10cmFuc2l0aW9uLW5ldyhwdWxzZS1oZXJvLXBob3RvKSB7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgICAvKiBaZWxmZGUgYmV3b2dlbiBcImdyb2VpXCItZWFzaW5nIGFscyBkZSBrYWFydC1lbnRyZWUgb3AgZGUgcHJvamVjdGVuLSBlblxuICAgICAgIGNhbXBhZ25lZ3JpZCAocHYyLWNhcmQtZW50ZXIgLyBwdWxzZS1jYXJkLWVudGVyKTogZWVuIGxpY2h0ZSBvdmVyc2hvb3RcbiAgICAgICBwYXN0IGJpaiBoZXQgZ2V2b2VsIHZhbiBlZW4gdGVnZWwgZGllIHVpdGdyb2VpdCB0b3Qgdm9sbGVkaWcgc2NoZXJtLiAqL1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKTtcbn1cblxuLyogRmFsbGJhY2sgdm9vciBicm93c2VycyB6b25kZXIgY3Jvc3MtZG9jdW1lbnQgdmlldy10cmFuc2l0aW9uczogZGV6ZWxmZGVcbiAgIGdyb2VpLXZhbnVpdC1rbGVpbi1tZXQtYWZnZXJvbmRlLWhvZWtlbiBvcCBkZSBrb3AgemVsZiwgbWV0IGRlemVsZmRlXG4gICBlYXNpbmcgYWxzIGhpZXJib3Zlbi4gS2xhc3NlIHdvcmR0IGRvb3IgZGUgcGFnaW5hLUpTIGdlemV0L3ZlcndpamRlcmQgb3BcbiAgIGRlIGtvcCAoa2FhcnQgMyk7IHpvbmRlciBkaWUga2xhc3NlIHZlcmFuZGVydCBlciBuaWV0cy4gKi9cbkBrZXlmcmFtZXMgcHVsc2UtaGVyby1lbnRlciB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cbn1cbi5wdWxzZS1oZXJvLS1lbnRlciB7XG4gICAgYW5pbWF0aW9uOiBwdWxzZS1oZXJvLWVudGVyIDUwMG1zIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKSBib3RoO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucHVsc2UtaGVyby0tZW50ZXIgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cblxuLyogLS0tIFB1YmxpY2Vlci1rbm9wOiBib3JkZXItYmVhbSAoMTkuMDguMjAyNiwgS2ltKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIERlIHdpdHRlIFB1YmxpY2Vlci1rbm9wIChzZWNvbmRhcnktd2hpdGUsIHppZSBfY2FtcGFpZ24taGVhZC5odG1sKSBrcmlqZ3RcbiAgIGVlbiBsaWNodHN0cmVlcCBkaWUgbGFuZ3MgZGUgcmFuZCBsb29wdC4gVGVjaG5pZWs6IGVlbiA6OmFmdGVyLXJpbmcgbmV0XG4gICBidWl0ZW4gZGUga25vcCAoaW5zZXQgLTNweCwgMnB4IGRpaykgbWV0IGVlbiBjb25pYy1ncmFkaWVudCB3YWFydmFuIGRlXG4gICBzdGFydGhvZWsgZ2VhbmltZWVyZCB3b3JkdCB2aWEgZWVuIGdlcmVnaXN0cmVlcmRlIGN1c3RvbSBwcm9wZXJ0eTsgZGVcbiAgIGR1YmJlbGUgbWFzayBtZXQgZXhjbHVkZSBob3VkdCBhbGxlZW4gZGUgcmluZyBvdmVyLiBCcm93c2VycyB6b25kZXJcbiAgIEBwcm9wZXJ0eS1pbnRlcnBvbGF0aWUgdG9uZW4gZWVuIHN0aWxzdGFhbmRlLCBzdWJ0aWVsZSByaW5nOiBuZXR0ZVxuICAgdGVydWd2YWwsIGdlZW4ga2Fwb3R0ZSBhbmltYXRpZS4gQWxsZWVuIG9wIGRlemUgZW5lIGtub3AsIGR1c1xuICAgcGFnaW5hLWdlc2Nvb3B0IGVuIG5pZXQgaW4gZGUgYnV0dG9uLWNvbXBvbmVudC4gKi9cbkBwcm9wZXJ0eSAtLXB1bHNlLWJlYW0tYW5nbGUge1xuICAgIHN5bnRheDogXCI8YW5nbGU+XCI7XG4gICAgaW5oZXJpdHM6IGZhbHNlO1xuICAgIGluaXRpYWwtdmFsdWU6IDBkZWc7XG59XG4ucHVsc2UtaGVyby1hY3Rpb25zICNwdWxzZS1wdWJsaXNoLWJ0biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnB1bHNlLWhlcm8tYWN0aW9ucyAjcHVsc2UtcHVibGlzaC1idG46OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogLTNweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMXB4OyAvKiBrbm9wLXJhZGl1cyA4cHggKyAzcHggb2Zmc2V0ICovXG4gICAgcGFkZGluZzogMnB4OyAgICAgICAgLyogcmluZ2Rpa3RlICovXG4gICAgYmFja2dyb3VuZDogY29uaWMtZ3JhZGllbnQoXG4gICAgICAgIGZyb20gdmFyKC0tcHVsc2UtYmVhbS1hbmdsZSksXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNikgMHR1cm4gMC43MnR1cm4sXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45OCkgMC44NnR1cm4sXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNikgMXR1cm5cbiAgICApO1xuICAgIC13ZWJraXQtbWFzazogbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKSBjb250ZW50LWJveCwgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKTtcbiAgICAtd2Via2l0LW1hc2stY29tcG9zaXRlOiB4b3I7XG4gICAgbWFzazogbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKSBjb250ZW50LWJveCwgbGluZWFyLWdyYWRpZW50KCMwMDAgMCAwKTtcbiAgICBtYXNrLWNvbXBvc2l0ZTogZXhjbHVkZTtcbiAgICBhbmltYXRpb246IHB1bHNlLWJlYW0tc3BpbiAzLjJzIGxpbmVhciBpbmZpbml0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbkBrZXlmcmFtZXMgcHVsc2UtYmVhbS1zcGluIHtcbiAgICB0byB7IC0tcHVsc2UtYmVhbS1hbmdsZTogMXR1cm47IH1cbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnB1bHNlLWhlcm8tYWN0aW9ucyAjcHVsc2UtcHVibGlzaC1idG46OmFmdGVyIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG5cbi8qIC0tLSBHbGFzcyBuYXZiYXIgYm92ZW4gZGUgaGVybyAoMTkuMDguMjAyNiwgS2ltKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBaZWxmZGUgZ2VkcmFnIGFscyBkZSBwcm9qZWN0ZW5wYWdpbmEgKC5wdjItaGFzLW9wZW4tcHJvamVjdCBpblxuICAgcHJvamVjdHMtdjIuaHRtbCwgcmVnZWxzIDg3My04OTIpOiBvcCBkZSBkcmllIENBTVBBR05FcGFnaW5hJ3Mgd29yZHQgZGVcbiAgIG5hdmJhciBnbGFzIGVuIGxvb3B0IGRlIGhlcm9mb3RvIGVyb25kZXJkb29yLiBEZSB2aWV3cyB6ZXR0ZW4gZGFhcnZvb3JcbiAgIGJvZHlDbGFzcyBcInB1bHNlLWNhbXBhaWduLXBhZ2VcIjsgaGV0IFB1bHNlLW92ZXJ6aWNodCBob3VkdCBkZSBnZXdvbmVcbiAgIG5hdmJhciwgcHJlY2llcyB6b2FscyBoZXQgcHJvamVjdGVub3ZlcnppY2h0LiBEZSBuYXZiYXIgaXMgc3RpY2t5IGVuXG4gICByZXNlcnZlZXJ0IHppam4gZWlnZW4gaG9vZ3RlIGluIGRlIGZsb3csIGR1cyBhbGxlZW4gZGUgbmVnYXRpZXZlIG1hcmdlXG4gICB0cmVrdCBkZSBmb3RvIGVyb25kZXI7IGRlIGhlcm8gd29yZHQgZXZlbnZlZWwgaG9nZXIgem9kYXQgaGV0IHppY2h0YmFyZVxuICAgZGVlbCBvbmRlciBkZSBmcm9zdCBnZWxpamsgYmxpamZ0LiBEZSB0ZXJ1Z2tub3AgemFrdCBtZWUgb25kZXIgZGUgbmF2YmFyXG4gICB1aXQgKGVlbiAoMCwyLDEpLXNlbGVjdG9yLCB3aW50IGR1cyBvb2sgdmFuIGRlIDc2MHB4LXJlZ2VsIGhpZXJvbmRlcikuICovXG5ib2R5LnB1bHNlLWNhbXBhaWduLXBhZ2UgLnFkbmEtbmF2YmFyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpIHNhdHVyYXRlKDEuNik7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCkgc2F0dXJhdGUoMS42KTtcbn1cbmJvZHkucHVsc2UtY2FtcGFpZ24tcGFnZSAucHVsc2UtaGVybyB7XG4gICAgbWFyZ2luLXRvcDogY2FsYygtMThweCAtIHZhcigtLXFkbmEtdG9wYmFyLWgpKTtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tcHVsc2UtaGVyby1oKSArIHZhcigtLXFkbmEtdG9wYmFyLWgpKTtcbn1cbmJvZHkucHVsc2UtY2FtcGFpZ24tcGFnZSAucHVsc2UtaGVyby1iYWNrIHtcbiAgICB0b3A6IGNhbGModmFyKC0tcWRuYS10b3BiYXItaCkgKyAxNHB4KTtcbn1cblxuLyogLS0tIFJlc3BvbnNpdmU6IHRhYmxldCBlbiB0ZWxlZm9vbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC5wdjItaGVybyB6ZWxmIGhlZWZ0IGluIHByb2plY3RzLXYyLmh0bWwgR0VFTiBlaWdlbiBtZWRpYS1xdWVyaWVzIChoZXRcbiAgIGVuaWdlIEBtZWRpYS1ibG9rIGluIGRhdCBiZXN0YW5kLCByZWdlbCAxMDYsIGdhYXQgb3ZlciAucHYyLWJnLWlsbHVzdHJhdGlvblxuICAgZW4gaGVlZnQgbmlldHMgbWV0IGRlIGhlcm8gdGUgbWFrZW4pIOKAlCBlciB2YWx0IGR1cyBuaWV0cyAxLW9wLTEgdGVcbiAgIHNwaWVnZWxlbi4gT25kZXJzdGFhbmRlIHR3ZWUgYnJlYWtwb2ludHMgemlqbiBlaWdlbiwgYmVob3VkZW5kZSBrZXV6ZXMsXG4gICBvcCBkZXplbGZkZSBhZC1ob2MgbWFuaWVyIGFscyBkZSByZXN0IHZhbiBkaXQgYmVzdGFuZCBhbCBkb2V0XG4gICAoLnB1bHNlLWRldGFpbC1ib2R5IG9wIDExMDBweCwgLnB1bHNlLXVuaXRzLXJvdyBvcCA3NjBweCkuIE5vZyB0ZVxuICAgdmVyaWZpw6tyZW4gem9kcmEgZGUgZWNodGUgbWFya3VwIChrYWFydCAzKSBlciBpcy4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgICAucHVsc2UtaGVybyB7IC0tcHVsc2UtaGVyby1oOiAyNDBweDsgcGFkZGluZzogMjBweCAyNHB4OyB9XG4gICAgLnB1bHNlLWhlcm8tbmFtZSB7IGZvbnQtc2l6ZTogMjJweDsgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2MHB4KSB7XG4gICAgLnB1bHNlLWhlcm8geyAtLXB1bHNlLWhlcm8taDogMjAwcHg7IHBhZGRpbmc6IDE2cHggMThweDsgfVxuICAgIC5wdWxzZS1oZXJvLW5hbWUgeyBmb250LXNpemU6IDE5cHg7IH1cbiAgICAucHVsc2UtaGVyby1kZXNjciB7IGZvbnQtc2l6ZTogMTNweDsgLXdlYmtpdC1saW5lLWNsYW1wOiAyOyB9XG4gICAgLnB1bHNlLWhlcm8tYWN0aW9ucyB7IGJvdHRvbTogMTZweDsgcmlnaHQ6IDE2cHg7IGdhcDogOHB4OyB9XG4gICAgLnB1bHNlLWhlcm8tYmFjayB7IHRvcDogMTRweDsgbGVmdDogMTRweDsgd2lkdGg6IDM2cHg7IGhlaWdodDogMzZweDsgfVxufVxuXG4vKiBQdWJsaWNhdGllbWVsZGluZ2VuOiBkZSBzZXJ2ZXIgZ2VlZnQgYWxsZSBwcm9ibGVtZW4gdGVnZWxpamsgdGVydWcsIGR1cyB6ZVxuICAga29tZW4gYWxzIGxpanN0amUgb25kZXIgZGUga29wIHRlIHN0YWFuIGluIHBsYWF0cyB2YW4gw6nDqW4gcGVyIHBvZ2luZy5cblxuICAg4pqg77iPIG1hcmdpbi10b3AgMzZweCwgbmlldCAxNHB4ICgyOC4wOC4yMDI2LCBLaW0pOiAucHVsc2UtaGVybyBoZWVmdFxuICAgYG1hcmdpbjogLTE4cHggLTI4cHggLTIycHg7YCAocmVnZWwgNjkpIG9tIGRlIGhlYWRlci1wYWRkaW5nIHRlIG5lZ2VyZW5cbiAgIHpvZGF0IGRlIGZvdG8gdG90IGRlIHJhbmQgbG9vcHQuIERpZSBtYXJnaW4tYm90dG9tIHZhbiAtMjJweCBjb2xsYXB0IG1ldFxuICAgZGUgbWFyZ2luLXRvcCB2YW4gZGV6ZSBiYWxrIChibG9jay1zaWJsaW5ncywgZ2VlbiBCRkMgZXJ0dXNzZW4pLCBkdXMgaGV0XG4gICB3ZXJrZWxpamtlIGdhdCBpcyBtYXgoMCwgbWFyZ2luLXRvcCkgKyBtaW4oMCwgLTIycHgpLiBNZXQgMTRweCBnYWYgZGF0XG4gICAxNCAtIDIyID0gLThweDogZGUgYmFsayBzY2hvb2wgOHB4IE9OREVSIGRlIGhlcm8uIDM2cHggZ2VlZnRcbiAgIDM2IC0gMjIgPSAxNHB4LCBoZXQgb29yc3Byb25rZWxpamsgYmVkb2VsZGUgZ2F0LiBCZXZlc3RpZ2QgbWV0IGVlblxuICAgaGVhZGxlc3MtQ2hyb21lIG1ldGluZyAoZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSBvcCBlZW4gbG9zc2UgaGFybmVzcy4gKi9cbi5wdWxzZS1wcm9ibGVtcyB7XG4gICAgbWFyZ2luOiAzNnB4IDAgMDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjhlMTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjVkNjhhO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgY29sb3I6ICM1YzQxMDA7XG4gICAgZm9udC1zaXplOiAxMy41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDEwcHg7XG59XG4ucHVsc2UtcHJvYmxlbXNbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1wcm9ibGVtcyBxZG5hcHJvLWljb24geyBjb2xvcjogI2I3ODEwMDsgZmxleC1zaHJpbms6IDA7IG1hcmdpbi10b3A6IDFweDsgfVxuLnB1bHNlLXByb2JsZW1zIHVsIHsgbWFyZ2luOiA0cHggMCAwOyBwYWRkaW5nLWxlZnQ6IDE4cHg7IH1cbi5wdWxzZS1wcm9ibGVtcyBsaSB7IG1hcmdpbjogMnB4IDA7IH1cblxuLyogLS0tIERlIHZpZXIgY2lqZmVycyBib3ZlbmFhbiBkZSBjYW1wYWduZXBhZ2luYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBaZWxmZGUgdm9ybSBhbHMgZGUgc3RhdHNiYWxrIG9wIGRlIHRha2VubGlqc3QgKHYxL3Rhc2tsaXN0LWFjdGl2aXRpZXMuc2Nzcyk6XG4gICBlZW4gcmlqIGthYXJ0ZW4sIGdlZW4gZ3JpZC4gQmV3dXN0IEdFRU4gdmllciBnZWxpamtlIGtvbG9tbWVuIOKAlCBkYW4gem91IGVsa2VcbiAgIGthYXJ0IHVpdHJla2tlbiB0b3QgZGUgdm9sbGUgcGFnaW5hYnJlZWR0ZSBlbiB6b3VkZW4gdmllciBrb3J0ZSBnZXRhbGxlbiBpblxuICAgdmllciBoYWxmbGVnZSB2bGFra2VuIHN0YWFuLiBEZSBrYWFydGVuIGhvdWRlbiBodW4gZWlnZW4gYnJlZWR0ZSBlbiBkZSByaWpcbiAgIGxvb3B0IHZhbiBsaW5rcyBvcCwgcHJlY2llcyB6b2FscyBvcCBkZSB0YWtlbmxpanN0LlxuXG4gICBMaW5rcyB1aXRnZWxpam5kIG1ldCAucHVsc2UtZGV0YWlsLWJvZHkgZXJvbmRlciAoZGV6ZWxmZGUgMjhweCBtYXJnZSksIHpvZGF0XG4gICBkZSBiYWxrIGVuIGRlIHN0YXBwZW5rYWFydCBvcCDDqcOpbiBsaWpuIGJlZ2lubmVuLiBbS2ltIDEyLjA4LjIwMjZdICovXG4ucHVsc2Utc3RhdHMtYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWFyZ2luOiAyMHB4IDI4cHggMDtcbn1cbi8qIERlIGJhbGsgbmVlbXQgZGUgYm92ZW5tYXJnZSBvdmVyIHZhbiBkZSBpbmhvdWQgZXJvbmRlciwgYW5kZXJzIHN0YWF0IGVyIHR3ZWVcbiAgIGtlZXIgbHVjaHQgdHVzc2VuIGRlIGthYXJ0ZW4gZW4gZGUgc3RhcHBlbi4gKi9cbi5wdWxzZS1zdGF0cy1iYXIgKyAucHVsc2UtZGV0YWlsLWJvZHkge1xuICAgIG1hcmdpbi10b3A6IDE0cHg7XG59XG5cbi8qIC0tLSBQYWdpbmEtaW5ob3VkOiBzdGFwcGVuIGxpbmtzLCBkb2VsZ3JvZXAgcmVjaHRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnB1bHNlLWRldGFpbC1ib2R5IHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgLyogT25kZXJydWltdGUgNDhweCDihpIgOTZweCAoMTEuMDguMjAyNik6IHNpbmRzIGRlIHNwbGl0c2luZyBzdGFhdCBlciBlZW5cbiAgICAgICBaV0VWRU5ERSBhY3RpZWJhbGsgb25kZXJpbi4gRGllIGlzIGBwb3NpdGlvbjogZml4ZWRgLCBuZWVtdCBkdXMgZ2VlblxuICAgICAgIHJ1aW10ZSBpbiBkZSBwYWdpbmEgaW4gZW4gbGVndCB6aWNoIG92ZXIgZGUgbGFhdHN0ZSByaWogaGVlbjsgamUga3VudCBlclxuICAgICAgIG9vayBuaWV0IHZvb3JiaWogc2Nyb2xsZW4gb21kYXQgZXIgbmlldHMgbWVlciBvbmRlciBzdGFhdC5cblxuICAgICAgIFNZTkMtUFVOVCwgbWV0IG9wemV0IGVlbiB2YXN0IGdldGFsIOKAlCBoZXR6ZWxmZGUgYWxzIGluXG4gICAgICAgX3Rhc2tsaXN0LXNldHRpbmdzLnNjc3MsIG9tIGRlemVsZmRlIHJlZGVuOiBfYWN0aW9uLWJhci5zY3NzIHpldFxuICAgICAgIGBoZWlnaHQ6IDU2cHhgIGhhcmQgKGVyIGlzIGdlZW4gLS1hY3Rpb24tYmFyLWhlaWdodCkgZW5cbiAgICAgICAtLWFjdGlvbi1iYXItb2Zmc2V0IHN0YWF0IG9wIC5xZG5hcHJvLWFjdGlvbi1iYXIgemVsZiwgZHVzIGRpZSBpcyBoaWVyXG4gICAgICAgbmlldCBlcmZiYWFyIGVuIGVlbiB2YXIoKSB6b3Ugc3RpbCBhbHRpamQgb3AgZGUgZmFsbGJhY2sgbGFuZGVuLlxuICAgICAgIDk2cHggPSA1NiAoaG9vZ3RlKSArIDE2IChvZmZzZXQpICsgMjQgbHVjaHQuIFdvcmR0IGRlIGJhbGsgaG9nZXIgb2Yga29tdFxuICAgICAgIGhpaiB2ZXJkZXIgdmFuIGRlIHJhbmQsIGRhbiBtb2V0IGRpdCBtZWUuICovXG4gICAgbWFyZ2luOiAyMHB4IDI4cHggOTZweDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgMzQwcHg7XG4gICAgZ2FwOiAyMnB4O1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgICAucHVsc2UtZGV0YWlsLWJvZHkgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpOyB9XG59XG5cbi8qIERlIHR3ZWUgWlVTVEVSUEFHSU5BJ1MgKGdlc3ByZWtrZW4sIHN0YXRpc3RpZWtlbikgZHJhZ2VuIGVsayDDqcOpbiBwYW5lZWwsIGR1c1xuICAgZGFhciB2YWx0IG5pZXRzIHRlIHZlcmRlbGVuOiBkZSBzbWFsbGUgcmVjaHRlcmtvbG9tIHZhbiBkZSBjYW1wYWduZXBhZ2luYSB6b3VcbiAgIGVyIGFsbGVlbiBlZW4gbGVnZSBzdHJvb2sgdmFuIG1ha2VuLiBbS2ltIDExLjA4LjIwMjZdICovXG4ucHVsc2UtZGV0YWlsLWJvZHktLXNpbmdsZSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbn1cblxuLnB1bHNlLXBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMjAsIDI1LCA4MCwgMC4wOCksIDAgOHB4IDI0cHggcmdiYSgyMCwgMjUsIDgwLCAwLjA2KTtcbiAgICBwYWRkaW5nOiAyMHB4IDIycHggMjJweDtcbn1cbi5wdWxzZS1wYW5lbC1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG4ucHVsc2UtcGFuZWwtaGVhZCBoMiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICMzOTQyOTApO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xufVxuLnB1bHNlLXBhbmVsLXN1YiB7XG4gICAgbWFyZ2luOiAwIDAgMThweDtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG59XG5cbi8qIC0tLSBTdGFwcGVuLXdlcmtiYWxrIChXOUYxLCBrYWFydCA0KTogYWxsZWVuIGhldCB6b2VrdmVsZCAtLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC5wdWxzZS10b29sYmFyIGJlc3RhYXQgYWwgaGllcmJvdmVuIChPVkVSWklDSFRTUEFHSU5BIC8gYW5hbHl0aWNzLCByZWdlbFxuICAgfjE3MjkpIG1ldCBlZW4gZWlnZW4gaW5kZWxpbmcgdm9vciBkZSBjYW1wYWduZWxpanN0IChsaW5rcyBcIm1hYWtcIi1rbm9wcGVuLFxuICAgcmVjaHRzIHpvZWtlbitzb3J0ZXJlbikuIERlIHZpZXcgKGthYXJ0IDMpIGdlYnJ1aWt0IGRhYXJvbSBkZSBtb2RpZmllclxuICAgLnB1bHNlLXRvb2xiYXItLXN0ZXBzIG9wIGRlIGJhbGsgYm92ZW4gZGUgc3RhcHBlbmxpanN0LCBtZXQgaGV0IHpvZWt2ZWxkXG4gICBpbiBkZSBiZXN0YWFuZGUgLnB1bHNlLXRvb2xiYXItcmlnaHQg4oCUIGRpZSBoZWVmdCBhbCBtYXJnaW4tbGVmdDogYXV0byxcbiAgIGR1cyBkaWUgZHV3dCBoZXQgdmVsZCB2YW56ZWxmIG5hYXIgcmVjaHRzLiBIaWVyIGR1cyBhbGxlZW4gZGUgYnJlZWR0ZSB2YW5cbiAgIGhldCB2ZWxkIGVuIGVlbiBvcCBkZSBwYW5lZWxjb250ZXh0IGFmZ2VzdGVtZGUgbWFyZ2UuICovXG4vKiBUd2VlIGtsYXNzZW4sIG1ldCBvcHpldDogZGUgYmFzaXNyZWdlbCBgLnB1bHNlLXRvb2xiYXIgeyBtYXJnaW4tYm90dG9tOiAyMHB4IH1gXG4gICBzdGFhdCB2ZXJkZXJvcCBpbiBkaXQgYmVzdGFuZCBlbiB6b3UgZWVuIGVua2VsZS1rbGFzc2UtbW9kaWZpZXIgaW4gZGUgY2FzY2FkZVxuICAgc3RpbGxldGplcyBvdmVycnVsZW4gKGdlbGlqa2Ugc3BlY2lmaWNpdGVpdCwgbGF0ZXJlIHJlZ2VsIHdpbnQpLiAqL1xuLnB1bHNlLXRvb2xiYXIucHVsc2UtdG9vbGJhci0tc3RlcHMge1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG59XG4ucHVsc2UtdG9vbGJhci0tc3RlcHMgLnB1bHNlLXRvb2xiYXItcmlnaHQgcWRuYXByby1pbnB1dCB7XG4gICAgd2lkdGg6IDIyMHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiBEZSBrb3AgXCJTdGFwcGVuXCIgc3RhYXQgc2luZHMgMjAuMDguMjAyNiBJTiBkZSB3ZXJrYmFsayAoS2ltKTogaGV0IHdpdHRlXG4gICBwYW5lZWwgZXJvbWhlZW4gaXMgd2VnLCBkdXMgZGUga29wIHppdCBvcCBkZXplbGZkZSByZWdlbCBhbHMgaGV0IHpvZWt2ZWxkLlxuICAgWmVsZmRlIG1hYXQgZW4ga2xldXIgYWxzIGRlIG91ZGUgYC5wdWxzZS1wYW5lbC1oZWFkIGgyYCBoYWQsIHpvZGF0IGhldFxuICAgZGV6ZWxmZGUga29wIGJsaWpmdCBlbiBuaWV0IGluZWVucyBlZW4gYW5kZXJlIGhpw6tyYXJjaGllIGxlZXN0LiAqL1xuLnB1bHNlLXN0ZXBzLXRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzM5NDI5MCk7XG59XG5cbi8qIERlIHdlcmtiYWxrIHN0b25kIG1ldCBgYWxpZ24taXRlbXM6IGNlbnRlcmAsIG1hYXIgZGUga29wIGVuIGVlbiBrbGVpblxuICAgaW52b2VydmVsZCB6aWpuIG5pZXQgZXZlbiBob29nOyBjZW50ZXIgaXMgaGllciBwcmVjaWVzIGdvZWQgZW4gc3RhYXQgYWwgb3BcbiAgIGAucHVsc2UtdG9vbGJhcmAuIFdhdCBXRUwgbm9kaWcgaXM6IGRlIGtvcCBtYWcgbmlldCBtZWVrcmltcGVuIHdhbm5lZXIgZGVcbiAgIGJhbGsgb3AgZWVuIHNtYWwgc2NoZXJtIGdhYXQgd2lra2VsZW4uICovXG4ucHVsc2UtdG9vbGJhci0tc3RlcHMgLnB1bHNlLXRvb2xiYXItbGVmdCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZsZXg6IDAgMSBhdXRvO1xufVxuXG4vKiBIZXQgdWl0bGVncGFuZWVsIGFjaHRlciBoZXQgaS1rbm9wamUuIHFkbmFwcm8tcG9wb3ZlciBpcyBzdGFuZGFhcmQgMjgwcHhcbiAgIGJyZWVkIG1ldCA2cHggcGFkZGluZyDigJQgZGF0IGlzIGRlIE1FTlUtbWFhdCAoemllIGRlIHFkbmEtcG9wb3ZlcnMgc2tpbGwsXG4gICBwdW50IDEpOyBkcmllIHppbm5lbiBsb3BlbiBkYWFyIHppY2h0YmFhciB1aXQgaGV0IGthYXJ0amUuIERlIHBhZ2luYSB6ZXQgZGVcbiAgIG1hYXQgZHVzIHplbGYuIEhhYWsgb3AgaGV0IGRhdGEtYXR0cmlidXV0IGVuIG5pZXQgb3AgZWVuIGtsYXNzZTogaGV0XG4gICBjb21wb25lbnQgaGVyc2NocmlqZnQgemlqbiBjbGFzc05hbWUgYmlqIGVsa2UgcmVuZGVyLiAqL1xucWRuYXByby1wb3BvdmVyW2RhdGEtcHVsc2UtaW5mb10ge1xuICAgIHdpZHRoOiBtaW4oOTJ2dywgMzgwcHgpO1xuICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbn1cbi5wdWxzZS1pbmZvLXRleHQge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTYwMCwgIzRiNDg2OSk7XG59XG5cbi8qIC0tLSBEZSBzdGFwcGVuLXRpamRsaWpuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnB1bHNlLXN0ZXBzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKiBLYWFydCAxMiAoMjAuMDguMjAyNik6IGhldCBzdGlwcGVuLXZsYWsgKC5xZG5hcHJvLWVkaXQtZnJhbWUsIHppZVxuICAgc2Nzcy9jb21wb25lbnRzL3YyL2VkaXQtZnJhbWUvX2VkaXQtZnJhbWUuc2NzcykgbGV2ZXJ0IGJld3VzdCBHRUVOXG4gICBwYWRkaW5nIOKAlCBkaWUgaG9vcnQgYmlqIGRlIHBhZ2luYSBkaWUgaGV0IGludnVsdC4gYC5wdWxzZS1zdGVwcy1mcmFtZWBcbiAgIGlzIGRlIGhhYWsgaW4gZGUgdmlldyAodjEvcHVsc2UvZGV0YWlsLmh0bWwpIHdhYXJvcCBoaWogbGFuZHQ6IHdlcmtiYWxrLFxuICAgbGlqc3QgZW4gdG9ldm9lZy1yaWogc3RhYW4gZXIgc2FtZW4gaW4sIGR1cyBkZSBiaW5uZW5tYXJnZSBrb210IG9wIGRlXG4gICBmcmFtZSB6ZWxmIGkucC52LiBvcCBlbGsga2luZCBhcGFydC4gfjE2LTIwcHgsIHpvYWxzIGRlIHRha2VubGlqc3QgemlqblxuICAgLmVkaXQtZnJhbWUtaW5ob3VkICgudG9vbGJhci8uYWN0aXZpdHktbGlzdCkgdnVsdC4gKi9cbi5wdWxzZS1zdGVwcy1mcmFtZSB7XG4gICAgcGFkZGluZzogMThweDtcbn1cblxuLyogS2FhcnQgMTI6IGRlIHJpaiBpcyBzaW5kcyBrYWFydCAxMSBoZXQgZ2VkZWVsZGVcbiAgIHFkbmFwcm8tYWN0aXZpdHktcm93W3ZhcmlhbnQ9XCJwdWxzZVwiXSAoc3R5bGluZyBpblxuICAgc2Nzcy9jb21wb25lbnRzL3YyL2FjdGl2aXR5LXJvdy9fYWN0aXZpdHktcm93LnNjc3MpLiBEYXQgY29tcG9uZW50IHJlZ2VsdFxuICAgemVsZiBhbCBkZSBob3Zlci1vcG1hYWsgZW4gaGV0IGRpbW1lbiB0aWpkZW5zIGhldCBzbGVwZW4gKGhldFxuICAgW2RyYWdnaW5nXS1hdHRyaWJ1dXQpIOKAlCBkZSBvdWRlIGAucHVsc2Utc3RlcHMuaXMtbWFuYWdlIC5wdWxzZS1zdGVwLXJvd2BcbiAgIGhvdmVyL2N1cnNvci1yZWdlbCBlbiBgLnB1bHNlLXN0ZXAtcm93LmlzLWRyYWdnaW5nIHsgb3BhY2l0eSB9YCB6aWpuXG4gICBkYWFybWVlIG92ZXJib2RpZyBlbiB6aWpuIHdlZy4gKEtpamtlci1yaWplbiByZWdlbGVuIGh1biBjdXJzb3Igc2luZHNcbiAgIGthYXJ0IDEzLzE0IHZvbGxlZGlnIGluIGhldCBjb21wb25lbnQgemVsZiwgdmlhIGhldCByZWFkb25seS1hdHRyaWJ1dXQg4oCUXG4gICBkZSB0aWpkZWxpamtlIC5wdWxzZS1yb3ctcmVhZG9ubHktcmVnZWwgZGllIGhpZXIgc3RvbmQgaXMgZGFhcm1lZSBkb29kIGVuXG4gICB2ZXJ3aWpkZXJkLikgRcOpbiBkaW5nIHVpdCBkaWUgb3VkZSByZWdlbHMgYmxlZWYgd8OpbCB6aW52b2wsIGhlcnJpY2h0IG9wIGRlXG4gICBuaWV1d2UgcmlqOiB0aWpkZW5zIGhldCBzbGVwZW4gZ2VlZnQgZGUgMTUwbXMtdHJhbnNpdGllIG9wXG4gICBib3JkZXIvc2hhZG93L3RyYW5zZm9ybSB2YW4gZGUgYmFzaXNyaWogKF9hY3Rpdml0eS1yb3cuc2NzcykgbWVya2JhcmVcbiAgIHZlcnRyYWdpbmcgYWxzIG1lZXJkZXJlIHJpamVuIHNuZWwgdmFuIGhvdmVyLS9kcm9wLWluZGljYXRvciB3aXNzZWxlbiDigJRcbiAgIGhpZXIgdWl0Z2V6ZXQgem9sYW5nIC5wdWxzZS1zdGVwcy5pcy1kcmFnZ2luZyBhYW4gc3RhYXQsIGV4YWN0IHpvYWxzIGRlXG4gICBvdWRlIC5wdWxzZS1zdGVwcy5pcy1kcmFnZ2luZyAucHVsc2Utc3RlcC1yb3cgZGVlZC4gKi9cbi5wdWxzZS1zdGVwcy5pcy1kcmFnZ2luZyBxZG5hcHJvLWFjdGl2aXR5LXJvdyAuYWN0aXZpdHktcm93LWlubmVyIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4vKiBLYWFydCAxOCAoQk9BUkQtcHVsc2UtYW50d29vcmRvcHRpZXMtcmljaHRpbmctYy5tZCwgS2ltcyBkZXNpZ24tZmVlZGJhY2tcbiAgIDI1LjA4LjIwMjYpOiBkZSBkYWctcGlsbCBvcCBlbGtlIHN0YXBwZW5yaWogKFwiRGFnIE5cIiAvIGVlbiBkYXR1bSkgb3BlbnQgYWxcbiAgIGRlIGRhZy1wb3BvdmVyICh6aWUgc3RlcHNFbC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgLi4uKSBoaWVyb25kZXIgaW5cbiAgIGRlemUgdmlldyksIG1hYXIgb29nZGUgYWxzIGVlbiBkb29kIGxhYmVsLiBLbm9wLWFmZm9yZGFuY2UgZXJib3Zlbm9wLFxuICAgaGV0emVsZmRlIHJlY2VwdCBhbHMgLmJ1dHRvbi1zZWNvbmRhcnktcHVycGxlIChjb21wb25lbnRzL3YyL2J1dHRvbi9cbiAgIF9idXR0b24uc2Nzcykg4oCUIHByZWNpZXMgd2F0IC5wdWxzZS13aXotY2FyZC8ucHVsc2UtdHlwZS1jYXJkIGhpZXJib3ZlbiBpblxuICAgZGl0IGJlc3RhbmQgb29rIGFsIDEtb3AtMSBzcGllZ2VsZW46IGhvdmVyID0gbGljaHRlIGFjaHRlcmdyb25kdGludCxcbiAgIGFjdGl2ZSA9IGVlbiBpZXRzIGRpZXBlcmUgdGludCB2YW4gZGV6ZWxmZGUga2xldXJmYW1pbGllLCBnZWVuIHRyYW5zZm9ybS5cbiAgIEJhc2lzLWFjaHRlcmdyb25kIHZhbiBkZSBwaWxsICh2YXIoLS1jLXB1cnBsZS01MCkpIGlzIGRlemVsZmRlIHRva2VuIGFsc1xuICAgZGUgcnVzdGtsZXVyIHZhbiAuYnV0dG9uLXNlY29uZGFyeS1wdXJwbGUsIGR1cyBkZSBob3Zlci9hY3RpdmUtdGludGVuIHZhblxuICAgZGllIGtub3AgcGFzc2VuIGhpZXIgem9uZGVyIGlldHMgbmlldXdzIHRlIHZlcnppbm5lbi5cbiAgIEJlbGFuZ3Jpams6IC5yb3ctcHVsc2UtZGF5IHdvcmR0IGdlYm91d2QgaW4gcWRuYS1hY3Rpdml0eS1yb3cuanNcbiAgIChfcmVuZGVyUHVsc2UoKSwgYWxzIDxkaXYgY2xhc3M9XCJyb3ctcHVsc2UtZGF5XCI+KSDigJQgZGF0IGJlc3RhbmQgdmFsdFxuICAgYnVpdGVuIGRlIHNjb3BlIHZhbiBkZXplIGthYXJ0IChhbGxlZW4gZGV0YWlsLmh0bWwgZW4gX3B1bHNlLnNjc3MpLCBkdXNcbiAgIGRpdCBibG9rIHJhYWt0IGFsbGVlbiBoZXQgVUlURVJMSUpLIHZpYSBkZSBjbGFzcy1zZWxlY3Rvci4gRGUgcGlsbCBoZWVmdFxuICAgb3AgZGl0IG1vbWVudCBnZWVuIHRhYmluZGV4L3JvbGU9XCJidXR0b25cIjogZGUgOmZvY3VzLXZpc2libGUtcmluZ1xuICAgaGllcm9uZGVyIGxpZ3QgZGFhcmRvb3Iga2xhYXIgbWFhciBpcyBtZXQgaGV0IHRvZXRzZW5ib3JkIG5vZyBuaWV0IHRlXG4gICBiZXJlaWtlbiB0b3RkYXQgZGUgcGlsbCBpbiBoZXQgY29tcG9uZW50IHplbGYgZWVuIGVjaHQgPGJ1dHRvbj4gKG9mXG4gICByb2xlPVwiYnV0dG9uXCIrdGFiaW5kZXgsIHpvYWxzIC5wdWxzZS1hZGQtYmFyIGhpZXJib3ZlbiBhbCBkb2V0KSB3b3JkdC4gKi9cbi5wdWxzZS1zdGVwcyBxZG5hcHJvLWFjdGl2aXR5LXJvdyAucm93LXB1bHNlLWRheSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZTtcbn1cblxuLyogVUlUTElKTklORyBWQU4gREUgU1RBUFRZUEUtSUNPTkVOIChLaW0gMDIuMDkuMjAyNjogXCJpayB3aWwgZGF0IGRlIGljb25lbiB2YW5cbiAgIGFsbGUgc3RhcHBlbiBoZXR6ZWxmZGUgemlqbiB1aXRnZWxpam5kLiBEZSBmaW5pc2ggdmxhZyBicmVla3QgZGF0IG51LlwiKVxuXG4gICBHZW1ldGVuIG9wIC92MS9wdWxzZS80NyB2w7PDs3IgZGV6ZSByZWdlbHM6IGhldCBpY29vbiB2YW4gZWVuIGtlbm5pc3ZyYWFnIGJlZ29uXG4gICBvcCB4PTM1MCwgZGF0IHZhbiBoZXQgZWluZHNjaGVybSBvcCB4PTM5NyAtIDQ3cHggdmVyc2NoaWwsIHVpdCB0d2VlIGJyb25uZW46XG4gICAgIC0gMjhweCB2YW4gaGV0IGthbGVuZGVyc2xvdGplICgxOHB4IGtvbG9tICsgMTBweCB0dXNzZW5ydWltdGUpIGRhdCBhbGxlZW5cbiAgICAgICBkaWUgcmlqIGhhZC4gV2VnOiBkZXRhaWwuaHRtbCB6ZXQgbnUgYG5vLWhhbmRsZWAgb3AgRUxLRSByaWouXG4gICAgIC0gMTlweCB2YW4gZGUgZGFncGlsIHplbGY6IFwiRGFnIDBcIiBrb210IG9wIGRlIG9uZGVyZ3JlbnMgdmFuIDc2cHggdWl0LFxuICAgICAgIFwiMTUtMDktMjAyNlwiIG9wIDk1cHguXG5cbiAgIERpZSBsYWF0c3RlIDE5cHggbG9zdCBkZXplIHJlZ2VsIG9wLiBgd2lkdGhgIGluIHBsYWF0cyB2YW4gYG1pbi13aWR0aGAsIHpvZGF0XG4gICBlZW4gbGFuZ2VyZSB0ZWtzdCBkZSBwaWwgbm9vaXQgbWVlciBrYW4gb3ByZWtrZW4gLSBkZSB1aXRsaWpuaW5nIGlzIGRhbiBlZW5cbiAgIGdhcmFudGllIGVuIGdlZW4gdG9ldmFsbGlnaGVpZC4gRGUgZGF0dW0gd29yZHQga2xlaW5lciBnZXpldCBvbSBpbiBkaWV6ZWxmZGVcbiAgIDc2cHggdGUgcGFzc2VuIChLaW1zIGVpZ2VuIHZvb3JzdGVsKS4gR2VtZXRlbiBicmVlZHRlIHZhbiBcIjE1LTA5LTIwMjZcIiBpbiBkaXRcbiAgIGZvbnQ6IDEzcHggLT4gNzUuMiwgMTJweCAtPiA2OS40LCAxMXB4IC0+IDYzLjYuIE1ldCA1cHggbHVjaHQgbGlua3MgZW4gcmVjaHRzXG4gICBwYXN0IDExcHggbWV0IDIuNHB4IG92ZXI7IDEycHggem91IGVyIDMuNHB4IG92ZXJoZWVuIHN0ZWtlbi5cbiAgIERlIHN1YnJlZ2VsIChcInZhc3RlIGRhdHVtXCIpIGJsaWpmdCBvcCAxMC41cHg6IGhldCBsYWJlbCBpcyB2ZXQgZW4gZGUgc3VicmVnZWxcbiAgIG5pZXQsIGR1cyBkZSByYW5nb3JkZSBibGlqZnQgbGVlc2JhYXIgb29rIGFsIHNjaGVsZW4gemUgbm9nIG1hYXIgZWVuIGhhbHZlXG4gICBwdW50LiAqL1xuLnB1bHNlLXN0ZXBzIHFkbmFwcm8tYWN0aXZpdHktcm93IC5yb3ctcHVsc2UtZGF5IHtcbiAgICB3aWR0aDogNzZweDtcbiAgICBtaW4td2lkdGg6IDA7XG59XG4ucHVsc2Utc3RlcHMgcWRuYXByby1hY3Rpdml0eS1yb3cucHVsc2Utcm93LWZpeGVkLWRhdGUgLnJvdy1wdWxzZS1kYXkge1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbn1cbi5wdWxzZS1zdGVwcyBxZG5hcHJvLWFjdGl2aXR5LXJvdy5wdWxzZS1yb3ctZml4ZWQtZGF0ZSAucm93LXB1bHNlLWRheS1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xufVxuLnB1bHNlLXN0ZXBzIHFkbmFwcm8tYWN0aXZpdHktcm93IC5yb3ctcHVsc2UtZGF5OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJvcmRlci10cmVlLWJyaWdodCwgI2Q0ZDhlZSk7XG59XG4ucHVsc2Utc3RlcHMgcWRuYXByby1hY3Rpdml0eS1yb3cgLnJvdy1wdWxzZS1kYXk6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZGViYXItaWNvbiwgI2M1YzllYik7XG59XG4vKiBaZWxmZGUgYm9vdHN0cmFwLXZhbGt1aWwgYWxzIGJpaiAucHVsc2Utd2l6LWNhcmQvLnB1bHNlLXR5cGUtY2FyZFxuICAgaGllcmJvdmVuIGluIGRpdCBiZXN0YW5kOiBkZSB2MS1oZWFkZXIgbGFhZHQgYm9vdHN0cmFwLm1pbi5jc3MsIGVuIGRpZVxuICAgemV0IGBidXR0b246Zm9jdXMgeyBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3IgfWAgb3AgRUxLRVxuICAga25vcCAoZWVuIG11aXNrbGlrIGdlZWZ0IHdlbCA6Zm9jdXMgbWFhciBnZWVuIDpmb2N1cy12aXNpYmxlKS4gb3V0bGluZVxuICAgdWl0emV0dGVuLCBkZSB6aWNodGJhcmUgbWFya2VyaW5nIGlzIGVlbiBlaWdlbiBib3gtc2hhZG93LXJpbmcg4oCUIGdlZW5cbiAgIG91dGxpbmUsIHdhbnQgLmFjdGl2aXR5LXJvdy1pbm5lciBzdGFhdCBvcCBvdmVyZmxvdzpoaWRkZW4gKHppZSBkZVxuICAgb3BtZXJraW5nIGRhYXJvdmVyIGluIF9hY3Rpdml0eS1yb3cuc2NzcywgXCJib3gtc2hhZG93IChmb2N1cyByaW5nKSBpc1xuICAgdW5hZmZlY3RlZFwiKTogZWVuIG91dGxpbmUgem91IGFhbiBkZSByYW5kIHZhbiBkZSByaWogYWZnZWtuaXB0IHdvcmRlbi4gKi9cbi5wdWxzZS1zdGVwcyBxZG5hcHJvLWFjdGl2aXR5LXJvdyAucm93LXB1bHNlLWRheTpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cbi5wdWxzZS1zdGVwcyBxZG5hcHJvLWFjdGl2aXR5LXJvdyAucm93LXB1bHNlLWRheTpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nLCAjNTM0YWI3KTtcbn1cbi8qIERhcmsgbW9kZTogZGUgcGlsbCBoZWVmdCBoaWVyIGdlZW4gbG9zIHRva2VuICgjMmEyZDU1LCB6aWUgX2FjdGl2aXR5LXJvdy5cbiAgIHNjc3MpLCBkdXMgZ2VlbiBiZXN0YWFuZGUgaG92ZXIvYWN0aXZlLWtsZXVyIG9tIHRlIGhlcmdlYnJ1aWtlbi4gWmVsZmRlXG4gICB2ZXJob3VkaW5nIGFscyAucWRuYXByby1uYXYtcmFpbCBoYW50ZWVydCB2b29yIGhvdmVyL2FjdGl2ZSBvcCBlZW4gZG9ua2VyXG4gICB2bGFrIChyZ2JhKDI1NSwyNTUsMjU1LC4wOCkgLyAuMTYsIHppZSBfbmF2LXJhaWwuc2Nzcykg4oCUIGhpZXIgdmlhXG4gICBjb2xvci1taXgoKSBvbWRhdCBkZSBwaWxsIGFsIGVlbiBlaWdlbiBlZmZlbiBhY2h0ZXJncm9uZCBoZWVmdCBpbiBwbGFhdHNcbiAgIHZhbiB0cmFuc3BhcmFudCBvcCBkZSBwYWdpbmFrbGV1ci4gKi9cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucHVsc2Utc3RlcHMgcWRuYXByby1hY3Rpdml0eS1yb3cgLnJvdy1wdWxzZS1kYXk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCAjMmEyZDU1IDkyJSwgI2ZmZik7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnB1bHNlLXN0ZXBzIHFkbmFwcm8tYWN0aXZpdHktcm93IC5yb3ctcHVsc2UtZGF5OmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsICMyYTJkNTUgODQlLCAjZmZmKTtcbn1cblxuLnB1bHNlLXN0ZXAtdHlwZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgLyogMzQgLT4gNDBweCAoVzlGMSwga2FhcnQgNCk6IHRha2VubGlqc3QtbWFhdC4gR3JvZWl0IGFsbGVlbiBkaXQgdGVnZWx0amU7XG4gICAgICAgZGUga29sb21tZW4gZXJ2b29yIChncmVlcC9zbG90amUsIGRhZ3BpbCkgc3RhYW4gbGlua3MgZXJ2YW4gaW4gZGUgZmxleC1cbiAgICAgICB2b2xnb3JkZSBlbiB2ZXJzY2h1aXZlbiBuaWV0LCBkdXMgLnB1bHNlLXN0ZXAtcm93OjpiZWZvcmUgKGRlXG4gICAgICAgdmVyYmluZGluZ3NsaWpuIGhpZXJvbmRlciwgbGlua3M6IDI3cHgpIGhvZWZ0IG5pZXQgbWVlIOKAlCBkaWUgaGFuZ3QgYWxcbiAgICAgICBvcCBkZSBicmVlZHRlIHZhbiBkZSBrb2xvbW1lbiBWT09SIGhldCB0ZWdlbHRqZSwgbmlldCBlcm9wLiBSaWotcGFkZGluZ1xuICAgICAgICgxMnB4IDEycHggMTJweCAxMHB4KSBibGlqZnQgb29rIG9uZ2V3aWp6aWdkOiBtZXQgZGl0IHRlZ2VsdGplIGVyaW5cbiAgICAgICBrb210IGRlIHJpaiB2YW56ZWxmIG9wIDEyKzQwKzEyID0gNjRweCwgZGV6ZWxmZGUgaG9vZ3RlIGFscyBlZW5cbiAgICAgICB0YWtlbmxpanN0cmlqIChxZG5hcHJvLWFjdGl2aXR5LXJvdywgbWluLWhlaWdodDogNjRweCkuICovXG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi8qIFB1bHNlLWtsZXVyZW5wYWxldCBwZXIgc3RhcHR5cGU6IE9OR0VXSUpaSUdEIChrYWFydCA0LW9wZHJhY2h0LCBleHBsaWNpZXRcbiAgIGJldnJvcmVuKSDigJQgYWxsZWVuIGRlIHRlZ2VsbWFhdCBoaWVyYm92ZW4gaXMgYWFuZ2VwYXN0LiAqL1xuLyogS2ltIDI0LjA4OiBkZSB0ZWdlbHMgZ2VicnVpa2VuIG51IGRlIEtMRVVSRU4gVkFOIFRBS0VOTElKU1RFTiAoZGV6ZWxmZGVcbiAgIHRva2VucyBhbHMgLnFkbmFwcm8tdGFza2xpc3QtY2FyZC50bGMtY29sb3ItKiksIHpvZGF0IGRlIGtpZXplciBkZXplbGZkZVxuICAgdGFhbCBzcHJlZWt0IGFscyBkZSByZXN0LiBEaXQgdmVydmFuZ3QgYmV3dXN0IGhldCBlZXJkZXIgYmV2cm9yZW5cbiAgIFB1bHNlLWVpZ2VuIHBhbGV0OiBkZSBvcGRyYWNodCBvbSBkaWUga2xldXJlbiB0ZSBiZXZyaWV6ZW4gaXMgaGllcm1lZVxuICAgaW5nZWhhYWxkLiBQZXIgdHlwZSBkZXplbGZkZSBrbGV1cmZhbWlsaWUgYWxzIHZvb3JoZWVuLCBhbGxlZW4gbnUgdWl0IGhldFxuICAgZ2VkZWVsZGUgcGFsZXQ7IHZpZGVvIGVuIHZlcmJldGVyYWN0aWUga3JpamdlbiBlciBodW4gZWlnZW4ga2xldXIgYmlqLiAqL1xuLnB1bHNlLXN0ZXAtdHlwZS0tZmxhc2ggICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAteWVsbG93LWJnLCAjZmZmMmQ2KTsgfVxuLnB1bHNlLXN0ZXAtdHlwZS0tcXVlc3Rpb24geyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1ibHVlLWJnLCAjZTZlZmZmKTsgfVxuLnB1bHNlLXN0ZXAtdHlwZS0tcG9sbCAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtcHVycGxlLWJnLCAjZWFlNGZmKTsgfVxuLyogS2ltIDI1LjA4OiBkZSBsYWF0c3RlIGRyaWUgemlqbiBvbmRlcmxpbmcgR0VEUkFBSUQuIFZpZGVvIGtyZWVnIGhldCByb29kIHZhblxuICAgdmVyYmV0ZXJhY3RpZSAoaGFhciBrZXV6ZSwgb29rIG5hZGF0IGlrIGhhZCBnZW1lbGQgZGF0IGhldCByb3plIHZpZGVvc3BlbGVydGplXG4gICBkYWFyZG9vciB3ZWluaWcgY29udHJhc3QgbWV0IHppam4gZWlnZW4gdmxha2plIGhvdWR0KSwgdmVyYmV0ZXJhY3RpZSBoZXQgZ3JvZW5cbiAgIHZhbiBkb2N1bWVudCwgZW4gZG9jdW1lbnQgaGV0IGJyaWdodC1ibHVlIHZhbiB2aWRlby4gRGV6ZWxmZGUgcm90YXRpZSBzdGFhdCBpblxuICAgYHRpbGVDb2xvcmAgaW4gcHVsc2UvZGV0YWlsLmh0bWwgLSBkYXQgaXMgZGUgdGVnZWwgb3AgZGUgU1RBUFBFTlJJSiBlbiBkaXQgZGVcbiAgIHRlZ2VsIGluIGRlIFRZUEVLSUVaRVIsIGVuIGRpZSB0d2VlIGhvcmVuIGRlemVsZmRlIGtsZXVyIHRlIGRyYWdlbi4gVmVyYW5kZXIgZXJcbiAgIG5vb2l0IGVlbiB6b25kZXIgZGUgYW5kZXIuICovXG4ucHVsc2Utc3RlcC10eXBlLS1kb2N1bWVudCB7IGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1icmlnaHQtYmx1ZS0yLWJnLCAjZTNmMGZiKTsgfVxuLnB1bHNlLXN0ZXAtdHlwZS0tdmlkZW8gICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtYmcsICNmZGU4ZTgpOyB9XG4ucHVsc2Utc3RlcC10eXBlLS1hY3Rpb24gICB7IGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1ncmVlbi1iZywgI2UzZjNlZSk7IH1cbi8qIENhcmQgOCBmb2xsb3ctdXAgKEtpbSAwMS4wOSk6IHRoZSB0d28gZnJhbWUgdHlwZXMgd2VyZSBzaGlwcGVkIHdpdGhvdXQgYVxuICAgdGludGVkIHRpbGUuIFNhbWUgY29sb3VycyBhcyBgdGlsZUNvbG9yYCBpbiBwdWxzZS9kZXRhaWwuaHRtbCAocGluay9ncmV5KTtcbiAgIHRoZSBwYWlyaW5nIHJ1bGUgYWJvdmUgYXBwbGllcyBoZXJlIHRvbzogbmV2ZXIgY2hhbmdlIG9uZSB3aXRob3V0IHRoZVxuICAgb3RoZXIuICovXG4ucHVsc2Utc3RlcC10eXBlLS1zdGFydCAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1waW5rLWJnLCAjZmRlN2YxKTsgfVxuLnB1bHNlLXN0ZXAtdHlwZS0tZmluaXNoICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWNoaXAtZ3JleS1iZywgI2VkZWRmMik7IH1cbi8qIEhldCBnZWFuaW1lZXJkZSBpY29vbiB2dWx0IGRlIHRlZ2VsIG1ldCB3YXQgbHVjaHQgZXJvbWhlZW4uICovXG4ucHVsc2UtdHlwZS1hbmltIHsgd2lkdGg6IDMwcHg7IGhlaWdodDogMzBweDsgZGlzcGxheTogYmxvY2s7IH1cblxuLyogT1BUSVNDSEUgTUFBVENPUlJFQ1RJRSB2b29yIGBlZHVjYXRpb24tNWAgKFwiQnVsXCIsIGhldCBrZW5uaXN2cmFhZy1pY29vbikuXG4gICBLaW0gMDIuMDkuMjAyNjogXCJoZXQgaG9lZGplIGxpamt0IGtsZWluZXIgZGFuIGRlIGFuZGVyZSBpY29ucy5cIiBLbG9wdCwgZW4gaGV0XG4gICBpcyB0ZSBtZXRlbi4gRWxrIGljb29uIHVpdCBkZSBzZXQgc3RhYXQgb3AgaGV0emVsZmRlIGNhbnZhcyB2YW4gNTAweDUwMCwgbWFhclxuICAgdnVsdCBkYWFyIGVlbiBhbmRlciBkZWVsIHZhbi4gR2VyYXN0ZXJkIG9wIDIwMHB4IGVuIGRlIG5pZXQtdHJhbnNwYXJhbnRlXG4gICBwaXhlbHMgb3BnZW1ldGVuOlxuXG4gICAgIGVkdWNhdGlvbiAoaGV0IG91ZGUpICA4NSUgICAgdmlkZW8tY2FtZXJhICA3NSVcbiAgICAgdGh1bmRlciAgICAgICAgICAgICAgIDgwJSAgICB0ZXh0LWZpbGUgICAgIDc2JVxuICAgICByYXRlLTIgICAgICAgICAgICAgICAgNzklICAgIHByb2dyZXNzICAgICAgNzIlXG4gICAgIGVkdWNhdGlvbi01ICAgICAgICAgICA3MiUgIDwtIGRlIGJhcmV0XG5cbiAgIERlIGJhcmV0IGlzIGJvdmVuZGllbiBicmVlZCBlbiBsYWFnICgxNDR4MTIyIHZhbiBkZSAyMDApLCB3YWFyIGRlIGJ1cmVuIGp1aXN0XG4gICBob29nIHppam4sIGR1cyBoaWogb29ndCBub2cga2xlaW5lciBkYW4gZGllIDcyJSBhbCB6ZWd0LiAxLjEgdGlsdCBoZW0gbmFhclxuICAgfjc5JSwgcHJlY2llcyBpbiBkZSBiYW5kYnJlZWR0ZSB2YW4gdGh1bmRlciBlbiByYXRlLTIgLSBnZWxpamt0cmVra2VuIG1ldCBkZVxuICAgZ3JvZXAsIG5pZXQgbWV0IGhldCBvdWRlIGljb29uLlxuXG4gICBHZWtvemVuIG9wIGRlIGBzcmNgIGVuIG5pZXQgb3AgaGV0IFNUQVBUWVBFOiBkaXQgaXMgZWVuIGVpZ2Vuc2NoYXAgdmFuIGRpdFxuICAgQkVTVEFORCwgbmlldCB2YW4gZGUga2VubmlzdnJhYWcuIEtpZXN0IEtpbSBtb3JnZW4gZWVuIGFuZGVyIGljb29uLCBkYW4gdmFsdFxuICAgZGV6ZSByZWdlbCB2YW56ZWxmIHdlZyBpbiBwbGFhdHMgdmFuIHN0aWxsZXRqZXMgaGV0IHZlcmtlZXJkZSBwbGFhdGplIG9wIHRlXG4gICBibGF6ZW4uIEVuIGB0cmFuc2Zvcm1gIGluIHBsYWF0cyB2YW4gYnJlZWR0ZS9ob29ndGUsIG9tZGF0IGRlemVsZmRlIGFuaW1hdGllXG4gICBvcCBkcmllIHBsZWtrZW4gc3RhYXQgbWV0IGRyaWUgdmVyc2NoaWxsZW5kZSBtYXRlbiAodHlwZWtpZXplciAzMHB4LFxuICAgc3RhcHBlbnJpaiAyOHB4LCBnZXNwcmVra2VucGFnaW5hIHppam4gZWlnZW4gdGVnZWwpIC0gZWVuIHNjaGFhbCB3ZXJrdCBvcFxuICAgYWxsZSBkcmllLCBlZW4gdmFzdGUgbWFhdCB6b3UgZXIgdHdlZSBzdHVrbWFrZW4uIEFsbGUgZHJpZSBkZSBjb250YWluZXJzXG4gICBjZW50cmVyZW4gbWV0IGZsZXgsIGR1cyBoZXQgaWNvb24gYmxpamZ0IHN0YWFuIHdhYXIgaGV0IHN0b25kLiAqL1xucWRuYXByby1sb3R0aWVbc3JjKj1cIi9lZHVjYXRpb24tNS5qc29uXCJdIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi8qIERlIGtvcHBlbGluZ3NjaGlwIG9wIGVlbiBzdWl0ZS1zdGFwIChGMy1XMyk6IGRlemVsZmRlIGluZ2V0b2dlbiB2b3JtIGFscyBkZVxuICAgZGFnLWJhZGdlIGxpbmtzLCB6b2RhdCBkZSB0aWpkbGlqbiDDqcOpbiB0YWFsIGJsaWpmdCBzcHJla2VuLiBIaWogc3RhYXQgT05ERVJcbiAgIGRlIG1ldGEtcmVnZWwgb21kYXQgZWVuIGJlc3RhbmRzbmFhbSBsYW5nIGlzIGVuIGRlIG1ldGEtcmVnZWwgYWwgYWZrYXB0LiAqL1xuLnB1bHNlLXN0ZXAtcmVmIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNXB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgcGFkZGluZzogMnB4IDlweDtcbiAgICBib3JkZXItcmFkaXVzOiA5cHg7XG4gICAgYmFja2dyb3VuZDogI2VlZjBmYjtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICMzOTQyOTApO1xuICAgIGZvbnQtc2l6ZTogMTEuNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xufVxuLnB1bHNlLXN0ZXAtcmVmIHFkbmFwcm8taWNvbiB7IGZsZXgtc2hyaW5rOiAwOyB9XG4ucHVsc2Utc3RlcC1yZWYgc3BhbiB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5wdWxzZS1zdGVwLXJlZi5pcy1taXNzaW5nIHsgYmFja2dyb3VuZDogI2ZmZjJkNjsgY29sb3I6ICM3YTUzMDA7IH1cblxuXG4ucHVsc2Utc3RlcHMtZm9vdCB7IG1hcmdpbi10b3A6IDE0cHg7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDsgZmxleC13cmFwOiB3cmFwOyB9XG4ucHVsc2Utc3RlcHMtaGludCB7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpOyB9XG5cbi8qIGBlbC5oaWRkZW4gPSB0cnVlYCB3ZXJrdCBOSUVUIHZhbnplbGYgb3AgZGV6ZSBlbGVtZW50ZW46IGRlIFVBLXJlZ2VsXG4gICBbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmUgfSB2ZXJsaWVzdCB2YW4gZGUga2xhc3NlLXJlZ2VscyBkaWUgZGUgY29tcG9uZW50ZW5cbiAgIHplbGYgbWVlYnJlbmdlbiAoLnFkbmFwcm8tYnV0dG9uLy5xZG5hcHJvLWljb24tYnRuIHpldHRlbiBkaXNwbGF5OmlubGluZS1mbGV4KVxuICAgZW4gdmFuIGRlIGRpc3BsYXk6ZmxleCBoaWVyYm92ZW4uIFBhZ2luYS1nZXNjb29wdCB0ZXJ1Z3pldHRlbiwgem9kYXQgdmVyYmVyZ2VuXG4gICBpbiBKUyBnZXdvb24gZWVuIGt3ZXN0aWUgdmFuIC5oaWRkZW4gYmxpamZ0LiAqL1xuLnB1bHNlLXN0ZXBzLWZvb3RbaGlkZGVuXSxcbi5wdWxzZS1kZXRhaWwtYm9keSBxZG5hcHJvLWJ1dHRvbltoaWRkZW5dLFxuLnB1bHNlLWRldGFpbC1ib2R5IHFkbmFwcm8taWNvbi1idG5baGlkZGVuXSxcbiNwdWxzZS1zdGVwLW1vZGFsIHFkbmFwcm8tYnV0dG9uW2hpZGRlbl0sXG4jcHVsc2Utc3RlcC1tb2RhbCBxZG5hcHJvLWljb24tYnRuW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIERlIGxlZ2Ugc3RhYXQgaXMgc2luZHMgMTIuMDguMjAyNiBoZXQgZ2VkZWVsZGUgcWRuYXByby1lbXB0eS1zdGF0ZSBtZXRcbiAgIHN1cmZhY2U9XCJwYWdlXCIg4oCUIGVpZ2VuIG1hcmt1cCAoLnB1bHNlLXN0ZXBzLWVtcHR5KSBpcyBkYWFybWVlIHdlZy4gQWxsZWVuIHdhdFxuICAgbHVjaHQgZXJvbWhlZW4gYmxpamZ0IGhpZXIgc3RhYW47IGRlIHJlc3Qga29tdCB1aXQgaGV0IGNvbXBvbmVudC4gKi9cbi5wdWxzZS1zdGVwcyBxZG5hcHJvLWVtcHR5LXN0YXRlIHsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmc6IDE4cHggMCA2cHg7IH1cblxuLyogLS0tIFRvZXZvZWctcmlqOiBicmVkZSwgZ2VzdGlwcGVsZGUgQ1RBIGkucC52LiBkZSBrbm9wIGluIGRlIHZvZXQgLS0tLS0tLSAqL1xuLyogWmVsZmRlIHZvcm0gYWxzIGRlIHRha2VubGlqc3QgKC5hZGQtYmFyLy5hZGQtYmFyLWNpcmNsZS8uYWRkLWJhci1sYWJlbCxcbiAgIHRhc2tsaXN0LWFjdGl2aXRpZXMuc2NzcyA5MTPigJM5NjIpOiBnZXN0aXBwZWxkZSByYW5kLCBnZWNlbnRyZWVyZFxuICAgcGx1c2NpcmtlbHRqZSwgc3VidGllbGUgaG92ZXIsIFwiUHVsc2UtbWFhdFwiIOKAlCBkLncuei4gem9uZGVyIGRlXG4gICBtYXJnaW4tcmlnaHQ6IDQ2cHgtaGFjayB2YW4gZGUgdGFrZW5saWpzdCAoZGllIGNvbXBlbnNlZXJkZSBkYWFyIHZvb3IgZGVcbiAgIGxvc3NlIHdhcm5pbmctc2xvdCByZWNodHMgdmFuIGVsa2UgcmlqOyBkZSBQdWxzZS1zdGFwcGVucmlqIGhlZWZ0IGRpZVxuICAgbmlldCkuIGB3aWR0aDogMTAwJWAgc3RhYXQgZXIgZXhwbGljaWV0IGJpaiBpbiBwbGFhdHMgdmFuIHRlIHZlcnRyb3V3ZW4gb3BcbiAgIGZsZXgtc3RyZXRjaCB2YW4gZGUgb3VkZXI6IGRlIGV4YWN0ZSBwbGVrIGluIGRlIHZvZXQgKC5wdWxzZS1zdGVwcy1mb290KVxuICAgd29yZHQgcGFyYWxsZWwgZ2Vib3V3ZCAoa2FhcnQgMykgZW4gd2lkdGg6MTAwJSB3ZXJrdCBvbmdlYWNodCBvZiBkaWUgb3VkZXJcbiAgIGVlbiBmbGV4LXJpaiBvZiAta29sb20gaXMuICovXG4ucHVsc2UtYWRkLWJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBib3JkZXI6IDEuNXB4IGRhc2hlZCByZ2JhKDcwLCA4MiwgMjQzLCAwLjMwKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjgpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDZweCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE1MG1zIGVhc2U7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4ucHVsc2UtYWRkLWJhcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ1KTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNTApO1xufVxuLyogVG9ldHNlbmJvcmQtdG9lZ2Fua2VsaWpraGVpZDoga2FhcnQgMyBvcGVudCBkZSB0eXBla2llemVyIG9vayBvcCBFbnRlci9cbiAgIFNwYWNlLCBkdXMgZGV6ZSBDVEEgaXMgbWV0IGhldCB0b2V0c2VuYm9yZCB0ZSBiZXJlaWtlbiDigJQgZGFuIGhvb3J0IGVyIG9va1xuICAgZWVuIHppY2h0YmFyZSBmb2N1c3JpbmcgdGUgemlqbi4gWmVsZmRlIHBhdHJvb24gYWxzIGVsZGVycyBpbiBkaXQgYmVzdGFuZFxuICAgKGJ2LiAucHVsc2UtdHlwZS1jYXJkOmZvY3VzLXZpc2libGUpLiAqL1xuLnB1bHNlLWFkZC1iYXI6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cbi5wdWxzZS1hZGQtYmFyLWNpcmNsZSB7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDcwLCA4MiwgMjQzLCAwLjEyKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgY29sb3I6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNTBtcyBlYXNlLCBjb2xvciAxNTBtcyBlYXNlO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuLnB1bHNlLWFkZC1iYXI6aG92ZXIgLnB1bHNlLWFkZC1iYXItY2lyY2xlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuLnB1bHNlLWFkZC1iYXItbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xufVxuXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnB1bHNlLWFkZC1iYXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS0yMDAtMzAsIHJnYmEoMTY1LCAxNzIsIDI1NSwgMC4zMCkpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS0yMDAsICNhNWFjZmYpO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5wdWxzZS1hZGQtYmFyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtMjAwLTUwLCByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuNTApKTtcbn1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucHVsc2UtYWRkLWJhci1jaXJjbGUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTIwMC0zMCwgcmdiYSgxNjUsIDE3MiwgMjU1LCAwLjE0KSk7XG4gICAgY29sb3I6IHZhcigtLWMtcHVycGxlLTIwMCwgI2E1YWNmZik7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnB1bHNlLWFkZC1iYXI6aG92ZXIgLnB1bHNlLWFkZC1iYXItY2lyY2xlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5wdWxzZS1hZGQtYmFyLWxhYmVsIHtcbiAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtMjAwLCAjYTVhY2ZmKTtcbn1cblxuLyogLS0tIFNlY3RpZWtvcCAod2Vla2tvcGplcyk6IHN1YnNldCB2YW4gLmxpc3Qtc2VjdGlvbi1oZWFkZXIvLnNoLSogLS0tLS0tLSAqL1xuLyogPHFkbmFwcm8tc2VjdGlvbi1oZWFkZXI+IChob3N0LWtsYXNzZSAucHVsc2Utd2Vlay1oZWFkZXIgb3AgZGUgUHVsc2UtXG4gICBwYWdpbmEsIHBlciBhYW52dWxsaW5nIHZhbiBkZSB2aWV3LWthYXJ0KSBpcyBkZSBiZXN0YWFuZGUgY29tcG9uZW50IHVpdCBkZVxuICAgdGFrZW5saWpzdCAod2ViL2pzL2NvbXBvbmVudHMvdjIvc2VjdGlvbi1oZWFkZXIvcWRuYS1zZWN0aW9uLWhlYWRlci5qcyk7XG4gICBkaWUgcmVuZGVydCBhbHRpamQgemlqbiBjYW5vbmlla2UgLmxpc3Qtc2VjdGlvbi1oZWFkZXIvLnNoLSotbWFya3VwIGVuXG4gICBsZXVudCB2b29yIHN0eWxpbmcgb3AgdGFza2xpc3QtYWN0aXZpdGllcy5zY3NzICgyMjIw4oCTMjQ0NyBhbGRhYXIpLiBEYXRcbiAgIGJlc3RhbmQgd29yZHQgb3AgUHVsc2UgTklFVCBnZWxhZGVuIChtYWcgb29rIG5pZXQg4oCUIGJldmF0IHBhZ2luYS1icmVkZVxuICAgcmVnZWxzIGRpZSBoaWVyIG5pZXQgdGh1aXNob3JlbiksIGR1cyB6b25kZXIgZGV6ZSBzdWJzZXQgcmVuZGVydCBkZSBrb3BcbiAgIGthYWwuIEFsbGVlbiB3YXQgZGUga29wIGhpZXIgWkVMRiBub2cgbm9kaWcgaGVlZnQ6IGRlIHBpbCBtZXQgdGl0ZWwvXG4gICBzdWJ0aXRlbC4gR2VlbiBzbGVlcGdyZWVwLCBnZWVuIGJld2Vyay92ZXJ3aWpkZXIta25vcHBlbiDigJQgd2Vla2tvcGplcyB6aWpuXG4gICBjbGllbnQtc2lkZSBiZXJla2VuZCBlbiBzbGFhbiBuaWV0cyBvcCAoa29wamVzLXJlZ2VsLCBiZXNsdWl0IDgpLCBkdXMgZGllXG4gICB0d2VlIGFsdGlqZC1nZXJlbmRlcmRlIG9uZGVyZGVsZW4gd29yZGVuIGhpZXJvbmRlciBleHBsaWNpZXQgdmVyYm9yZ2VuIG9wXG4gICBkZXplIHBhZ2luYSBpLnAudi4gZ2VzdHlsZWQuIEtsZXVyZW4gemlqbiBvdmVyZ2V6ZXQgbmFhciBiZXN0YWFuZGUgdG9rZW5zXG4gICBpLnAudi4gZGUgbG9zc2UgaGV4IHVpdCB0YXNrbGlzdC1hY3Rpdml0aWVzLnNjc3MgKHppZSBrYWFydC00LXJhcHBvcnQgdm9vclxuICAgZGUgbWFwcGluZyB0dXNzZW4gb3VkZSBoZXggZW4gZ2VicnVpa3RlIHRva2VuKS4gKi9cbi5saXN0LXNlY3Rpb24taGVhZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNXB4O1xuICAgIG1hcmdpbjogOHB4IDAgNXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xufVxuLmxpc3Qtc2VjdGlvbi1oZWFkZXI6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAwOyB9XG5cbi5zaC1waWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM4KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7XG4gICAgY3Vyc29yOiBncmFiO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE1MG1zIGVhc2UsIGJveC1zaGFkb3cgMTUwbXMgZWFzZTtcbn1cbi5saXN0LXNlY3Rpb24taGVhZGVyOmhvdmVyIC5zaC1waWxsIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODApO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkwKTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA3KTtcbn1cblxuLnNoLXRleHQtYmxvY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbn1cbi5zaC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjcyODApO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAxNTBtcyBlYXNlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG4uc2gtc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMTUwbXMgZWFzZTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIG1pbi13aWR0aDogMnB4O1xufVxuLyogTGVnZSBzdWJ0aXRlbCAod2Vla2tvcGplcyBoZWJiZW4gZXIgZ2VlbikgY29sbGFwdCwgem9kYXQgZGUgdGl0ZWwgbmV0amVzXG4gICBpbiBkZSBwaWwgY2VudHJlZXJ0IGkucC52LiBydWltdGUgdGUgcmVzZXJ2ZXJlbiB2b29yIGVlbiBsZWdlIHJlZ2VsLiAqL1xuLnNoLXN1YnRpdGxlOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfVxuLmxpc3Qtc2VjdGlvbi1oZWFkZXI6aG92ZXIgLnNoLXRpdGxlIHsgY29sb3I6IHZhcigtLWMtZ3JleS05NTAsICMxYTFkMmUpOyB9XG4ubGlzdC1zZWN0aW9uLWhlYWRlcjpob3ZlciAuc2gtc3VidGl0bGUgeyBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNzI4MCk7IH1cblxuLyogQWFudnVsbGluZyBjb29yZGluYXRvciAyMC4wOC4yMDI2OiBzbGVlcGdyZWVwICsgYmV3ZXJrL3ZlcndpamRlci1rbm9wcGVuXG4gICB2ZXJiZXJnZW4gb3AgZGUgd2Vla2tvcGplcyDigJQgaGV0IGNvbXBvbmVudCByZW5kZXJ0IHplIGFsdGlqZCwgbWFhciBlciBpc1xuICAgaGllciBuaWV0cyBvbSB0ZSBzbGVwZW4gb2Ygb3AgdGUgc2xhYW4uICovXG4ucHVsc2Utd2Vlay1oZWFkZXIgLnNoLWRyYWcsXG4ucHVsc2Utd2Vlay1oZWFkZXIgLnNoLWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBEZSBwaWxsIHZhbiBoZXQgY29tcG9uZW50IGRyYWFndCBjdXJzb3I6Z3JhYiwgbWFhciBlZW4gYXV0b21hdGlzY2gga29wamVcbiAgIHZhbHQgbmlldCB0ZSB2ZXJzbGVwZW4g4oCUIGRlIGN1cnNvciBtYWcgZGF0IGRhbiBvb2sgbmlldCBiZWxvdmVuLiAqL1xuLnB1bHNlLXdlZWstaGVhZGVyIC5zaC1waWxsIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAuc2gtcGlsbCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmxpc3Qtc2VjdGlvbi1oZWFkZXI6aG92ZXIgLnNoLXBpbGwge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjApO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMzApO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5zaC10aXRsZSB7IGNvbG9yOiB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5zaC1zdWJ0aXRsZSB7IGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwLCAjYTZhYWIzKTsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5saXN0LXNlY3Rpb24taGVhZGVyOmhvdmVyIC5zaC10aXRsZSB7IGNvbG9yOiB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLmxpc3Qtc2VjdGlvbi1oZWFkZXI6aG92ZXIgLnNoLXN1YnRpdGxlIHsgY29sb3I6IHZhcigtLWMtZ3JleS0zMDAsICNjNGM3Y2MpOyB9XG5cbi8qIC0tLSBUeXBla2llemVyICh3ZWxrZSBzb29ydCBzdGFwIHdvcmR0IGhldD8pIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogRGUgdHlwZWtpZXplciBtb2V0IGt1bm5lbiBTQ1JPTExFTiAoMTIuMDguMjAyNikuIFNpbmRzIGVsa2Uga2FhcnQgdHdlZSByZWdlbHNcbiAgIHRla3N0IGRyYWFndCBpcyBkZSBsaWpzdCBob2dlciBkYW4gZWVuIGxhcHRvcHNjaGVybSwgZW4gdmllbGVuIGRlIG9uZGVyc3RlXG4gICB0ZWdlbHMgYnVpdGVuIGRlIG1vZGFsLlxuICpcbiAqIGBxZG5hcHJvLW1vZGFsLXNjcm9sbGFibGVgIChvcCBkZSBtb2RhbCBnZXpldCBpbiBkZSBKUykgbGFhdCBkZSBib2R5IHNjcm9sbGVuLFxuICogbWFhciBkYXQgaXMgbmlldCBnZW5vZWc6IGRlIGRpYWxvZyBoZWVmdCBhbGxlZW4gZWVuIGBtYXgtaGVpZ2h0YCwgZW4gZWVuXG4gKiBmbGV4LWl0ZW0ga3Jpamd0IHN0YW5kYWFyZCBgbWluLWhlaWdodDogYXV0b2AgPSB6aWpuIGVpZ2VuIGluaG91ZHNob29ndGUuIERpZVxuICogd2ludCBkYW4gdmFuIGRlIG1heC1oZWlnaHQgZW4gZGUgbW9kYWwgZ3JvZWl0IGFsc25vZyBkb29yIOKAlCBnZW1ldGVuOiA2NDNweFxuICogaG9vZyB3YWFyIDYyNSBtb2NodC5cbiAqXG4gKiBWYW5kYWFyIGBtaW4taGVpZ2h0OiAwYCBvcCBkZSBoZWxlIGtldGVuIGRpYWxvZyDihpIgd2luZG93LiBEZXplbGZkZSBpbmdyZWVwIGFsc1xuICogYmlqIGRlIHN0YXAtbW9kYWwgaGllcmJvdmVuOyB6aWUgb29rIGRlIHFkbmEtbW9kYWxzIHNraWxsIMKnMWQuICovXG4ucWRuYXByby1tb2RhbC5wdWxzZS10eXBlLW1vZGFsIC5tb2RhbC1kaWFsb2csXG4ucWRuYXByby1tb2RhbC5wdWxzZS10eXBlLW1vZGFsIC5tb2RhbC13aW5kb3cge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG59XG4vKiBFbiBlZW4gcnVpbWVyZSBtYXJnZSBkYW4gZGUgc3RhbmRhYXJkIGBjYWxjKDEwMHZoIC0gNDhweClgLiBEaWUgNDggaXMgcHJlY2llc1xuICAgZGUgcGFkZGluZyB2YW4gZGUgYmFja2Ryb3AsIG1hYXIgZGUgZGlhbG9nIE1FRVQgMThweCBtZWVyIGRhbiBoaWogcmVrZW50ICh6aWpuXG4gICByYW5kIGVuIHBhZGRpbmcgdmFsbGVuIGJ1aXRlbiBkaWUgbWF4LWhlaWdodCksIGR1cyBtZXQgZGUgc3RhbmRhYXJkd2FhcmRlXG4gICBzdGVla3QgaGlqIGVyIGFhbiBvbmRlci0gZW4gYm92ZW5rYW50IGVlbiBzdHVramUgdWl0LiBHZW1ldGVuIG9wIGVlbiB2ZW5zdGVyXG4gICB2YW4gNjczcHg6IGRpYWxvZyA2NDMgaG9vZyB3YWFyIGVyIDYyNSBiZXNjaGlrYmFhciB3YXMuXG4gICA4MHB4IGxhYXQgZGllIDE4IHJ1aW1zY2hvb3RzIHZyaWogZW4gZ2VlZnQgZGUgbW9kYWwgd2F0IGx1Y2h0LiAqL1xuLnFkbmFwcm8tbW9kYWwucHVsc2UtdHlwZS1tb2RhbCAubW9kYWwtZGlhbG9nIHtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gODBweCk7XG59XG5cbi8qIEVuIHNpbmRzIGhldCByYXN0ZXIgcGFzdCBkZSBpbmhvdWQgaW4gZWVuIHBhYXIgcmlqZW46IGRlIHZhc3RlIGhvb2d0ZSB2YW5cbiAgIHNpemU9XCJ4eGxhcmdlXCIgbGlldCBkYW4gdHdlZWRlcmRlIHZhbiBkZSBiYWsgbGVlZy4gSG9vZ3RlIG9wIGF1dG8gbGFhdCBkZVxuICAgbW9kYWwgb20gZGUgemVzIGthYXJ0ZW4gaGVlbiBrcmltcGVuOyBkZSBtYXgtaGVpZ2h0IGJsaWpmdCBkZSB2YW5ncmFpbC5cbiAgIFplbGZkZSBhYW5wYWsgYWxzIC5wdWxzZS10YXJnZXRzLW1vZGFsIGhpZXJib3Zlbi4gKi9cbi5xZG5hcHJvLW1vZGFsLnB1bHNlLXR5cGUtbW9kYWwgLm1vZGFsLWRpYWxvZyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IG1pbig4MDBweCwgY2FsYygxMDB2aCAtIDgwcHgpKTtcbn1cbi5xZG5hcHJvLW1vZGFsLnB1bHNlLXR5cGUtbW9kYWwgLm1vZGFsLXdpbmRvdyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKiBEZSBpbGx1c3RyYXRpZSBpbiBoZXQgaW5mb3BhbmVlbCBzdGFhdCBiZXd1c3QgaW5nZXRvZ2VuIChLaW06IDYwJSk6IGhldCBpc1xuICAgc2ZlZXIgbmFhc3QgZGUga2V1emUsIGdlZW4gZWxlbWVudCBkYXQgb20gYWFuZGFjaHQgdnJhYWd0LiBQYWdlLXNjb3BlZCwgZHVzXG4gICBkZSBhbmRlcmUgd2l0aC1pbmZvLW1vZGFscyBob3VkZW4gaHVuIGVpZ2VuIHdlZXJnYXZlLiAqL1xuLnFkbmFwcm8tbW9kYWwucHVsc2UtdHlwZS1tb2RhbCAucWRuYXByby1tb2RhbC1pbmZvLWlsbHVzdHJhdGlvbiB7XG4gICAgb3BhY2l0eTogLjY7XG59XG5cbi8qIERvZWxncm9lcC1tb2RhbCAoa2FhcnQgNiwgMjAuMDguMjAyNik6IHNpemU9XCJsYXJnZVwiIGZvcmNlZXJ0IGVlbiB2YXN0ZSBob29ndGVcbiAgIHZhbiBtaW4oODAwcHgsIDEwMHZoIC0gNDhweCkgb3AgZGUgZGlhbG9nLCB0ZXJ3aWpsIGRlIGRvZWxncm9lcGJvdXdlciBtYWFyXG4gICB+NTAwcHggdnVsdCDigJQgZGF0IGdhZiBlZW4gZ3JvdGVuZGVlbHMgbGVnZSBiYWsuIEhvb2d0ZSBvcCBhdXRvIGxhYXQgZGUgbW9kYWxcbiAgIG9tIGRlIGJvdXdlciBoZWVuIGtyaW1wZW47IGRlIG1heC1oZWlnaHQgYmxpamZ0IGRlIHZhbmdyYWlsIGJpaiB2ZWVsIGNvbnRlbnRcbiAgIChkYW4gc2Nyb2xsdCBkZSBib2R5KS4gWmVsZmRlIGFhbnBhayBhbHMgLmZlLWltcG9ydC1tb2RhbCBpbiBfbW9kYWwuc2Nzcy4gKi9cbi5xZG5hcHJvLW1vZGFsLnB1bHNlLXRhcmdldHMtbW9kYWwgLm1vZGFsLWRpYWxvZyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IG1pbig4MDBweCwgY2FsYygxMDB2aCAtIDQ4cHgpKTtcbn1cbi5xZG5hcHJvLW1vZGFsLnB1bHNlLXRhcmdldHMtbW9kYWwgLm1vZGFsLXdpbmRvdyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKiBLaW1zIHJldmlldyAyNC4wODogZGUgemVzIHR5cGVrYWFydGVuIHN0b25kZW4gYWxzIHZvbGxlLWJyZWVkdGUgcmlqZW4gb25kZXJcbiAgIGVsa2FhciBlbiBkcm9lZ2VuIGVlbiBhbmRlcmUgaG92ZXIvZm9jdXMtdGFhbCBkYW4gZGUgb3BtYWFra2FhcnRlbiB2YW5cbiAgIHdpemFyZC1zdGFwIDEsIHRlcndpamwgamUgemUgdmxhayBuYSBlbGthYXIgemlldCBpbiBkZXplbGZkZSBmbG93LiBOdSBlZW5cbiAgIHJhc3RlciAoZHJpZSBrb2xvbW1lbiBvcCBkZSB2ZXJicmVkZSBtb2RhbCkgbWV0IGV4YWN0IGRlemVsZmRlIHN0YW5kZW4gYWxzXG4gICAucHVsc2Utd2l6LWNhcmQuICovXG4ucHVsc2UtdHlwZS1jYXJkcyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICAvKiBUd2VlIGtvbG9tbWVuIHNpbmRzIGhldCBpbmZvcGFuZWVsIGVyYmlqIGt3YW0gKEtpbSAyNC4wOCk6IGRhdCBwYW5lZWxcbiAgICAgICBlZXQgbGlua3MgcnVpbXRlLCBkdXMgZHJpZSBrb2xvbW1lbiB3ZXJkZW4gdGUgc21hbCB2b29yIHR3ZWUgcmVnZWxzXG4gICAgICAgdGVrc3QgcGVyIGthYXJ0LiBaZXMga2FhcnRlbiB3b3JkZW4gem8gMyByaWplbiB2YW4gMi4gKi9cbiAgICAvKiBhdXRvLWZpdCBpLnAudi4gZWVuIHZhc3QgYWFudGFsOiBiaWogZWVuIHNtYWwgdmVuc3RlciAob2YgYnJvd3Nlcnpvb20pXG4gICAgICAgdmFsdCBoZXQgcmFzdGVyIHZhbnplbGYgdGVydWcgbmFhciBlZW4ga29sb20gaW4gcGxhYXRzIHZhbiB0ZSBrbmVsbGVuLlxuICAgICAgIERlIG1lZGlhLXF1ZXJ5IGhpZXJvbmRlciBrZWVrIG5hYXIgZGUgVklFV1BPUlQgZW4gbWlzdGUgZGF0IGdldmFsLiAqL1xuICAgIC8qIFR3ZWUga29sb21tZW4sIHZhc3QuIGF1dG8tZml0IGxlZWsgc2xpbW1lciBtYWFyIHJla2VuZGUgemljaHplbGYgbmFhclxuICAgICAgIGRyaWUga29sb21tZW4gb3AgZWVuIGJyZWVkIHNjaGVybSBlbiBuYWFyIGVlbiBvcCB+ODUwcHg6IHByZWNpZXMgZGUgdHdlZVxuICAgICAgIGRpbmdlbiBkaWUgS2ltIG5pZXQgd2lsZGUuIERlIHRlcnVndmFsIG5hYXIgZWVuIGtvbG9tIHN0YWF0IGRhYXJvbSBvcFxuICAgICAgIGVlbiBlY2h0ZSBrbGVpbmUtdmVuc3RlcmdyZW5zIGhpZXJvbmRlci4gKi9cbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgZ2FwOiAxMnB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDgyMHB4KSB7XG4gICAgLnB1bHNlLXR5cGUtY2FyZHMgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpOyB9XG59XG4vKiBEZSBrYWFydCBlbiB6aWpuIHRla3N0YmxvayBtb2dlbiBrcmltcGVuOyB6b25kZXIgbWluLXdpZHRoOjAgZHV3dCBkZSBsYW5nc3RlXG4gICByZWdlbCBkZSBrb2xvbSBicmVkZXIgZGFuIGRlIHJ1aW10ZSBlbiBrcmlqZyBqZSBlZW4gaG9yaXpvbnRhbGUgc2NodWlmYmFsa1xuICAgKHdhdCBLaW0gemFnKS4gKi9cbi5wdWxzZS10eXBlLWNhcmQgeyBtaW4td2lkdGg6IDA7IH1cbi5wdWxzZS10eXBlLWNhcmQgPiBkaXYgeyBtaW4td2lkdGg6IDA7IH1cbi5wdWxzZS10eXBlLWNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2U1ZTVlYSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC8qIGdlZW4gdHJhbnNmb3JtL2JveC1zaGFkb3cgaW4gZGUgdHJhbnNpdGllOiB6aWUgZGUgdWl0bGVnIGJpalxuICAgICAgIC5wdWxzZS13aXotY2FyZCAoZWVuIGdlYW5pbWVlcmRlIHJpbmcgc3RhYXQgb3AgdD0wIG5vZyBvcCB6aWpuXG4gICAgICAgc3RhcnR3YWFyZGUgZW4gS2ltIHdpbCBnZWVuIGhvdmVyLWxpZnQpLiAqL1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLCBiYWNrZ3JvdW5kIDEyMG1zIGVhc2U7XG59XG4ucHVsc2UtdHlwZS1jYXJkOmhvdmVyICB7IGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtMzAwLCAjYTlhZGRlKTsgfSAgLyogS2ltIDI0LjA4OiBob3ZlciB2ZXJmdCBOSUVULCBhbGxlZW4gZGUgcmFuZCBrbGV1cnQuICovXG4ucHVsc2UtdHlwZS1jYXJkOmFjdGl2ZSB7IGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtMzAwLCAjYTlhZGRlKTsgYmFja2dyb3VuZDogdmFyKC0tYy1ib3JkZXItdHJlZS1icmlnaHQsICNkNGQ4ZWUpOyB9XG4vKiBaZWxmZGUgcmVkZW4gYWxzIGJpaiAucHVsc2Utd2l6LWNhcmQ6IGRlIHYxLWhlYWRlciBsYWFkdCBib290c3RyYXAsIGVuIGRpZVxuICAgemV0IGVlbiBoYXJkZSBibGF1d2Ugc3lzdGVlbS1vdXRsaW5lIG9wIEVMS0Uga25vcCBiaWogOmZvY3VzIChlZW4gbXVpc2tsaWtcbiAgIGdlZWZ0IHdlbCA6Zm9jdXMgbWFhciBnZWVuIDpmb2N1cy12aXNpYmxlKS4gVWl0emV0dGVuLCBlbiBkZSB6aWNodGJhcmVcbiAgIG1hcmtlcmluZyBpcyBkZSB6YWNodGUgbGljaHRwYWFyc2UgZHViYmVsZSByaW5nIGhpZXJvbmRlci4gKi9cbi5wdWxzZS10eXBlLWNhcmQ6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4ucHVsc2UtdHlwZS1jYXJkOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWMtcHVycGxlLTIwMCwgI2E1YWNmZiksIDAgMCAwIDVweCB2YXIoLS1mb2N1cy1nbG93LCByZ2JhKDgzLCA3NCwgMTgzLCAuMTgpKTtcbn1cbi5wdWxzZS10eXBlLWNhcmQtdGl0bGUgeyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzM5NDI5MCk7IG1hcmdpbjogMCAwIDJweDsgfVxuLnB1bHNlLXR5cGUtY2FyZC1kZXNjICB7IGZvbnQtc2l6ZTogMTIuNXB4OyBsaW5lLWhlaWdodDogMThweDsgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpOyBtYXJnaW46IDA7IH1cbi8qIERlIHByYWt0aXNjaGUgcmVnZWwgcGVyIHN0YXB0eXBlICgxMi4wOC4yMDI2KTogd2F0IGVyIG7DoSBoZXQga2llemVuIGdlYmV1cnQsXG4gICBvZiB3YXQgZWVuIGRlZWxuZW1lciB3w6lsIGVuIG5pZXQgdGUgemllbiBrcmlqZ3QuIExpY2h0ZXIgZ2V6ZXQgZGFuIGRlXG4gICBvbXNjaHJpanZpbmcgZXJib3ZlbiDigJQgaGV0IGlzIGVlbiB2b2V0bm9vdCBiaWogZGUga2V1emUsIGdlZW4gdHdlZWRlIHRpdGVsLiAqL1xuLyogS2ltIDI0LjA4OiBoZXQgaS1wdW50amUgcmVjaHRzYm92ZW4gaW4gZGUga2FhcnQuIEhvdmVyIG9mIHRpayB0b29udCBkZVxuICAgdGVrc3QgZGllIGVlcnN0IGFscyBkZXJkZSByZWdlbCBpbiBkZSBrYWFydCBzdG9uZC4gSW5nZXRvZ2VuIGluIHJ1c3QsIHdhbnRcbiAgIGhldCBpcyBlZW4gaHVscG1pZGRlbCwgZ2VlbiB0d2VlZGUgYWN0aWUgbmFhc3QgZGUga2V1emUgemVsZi4gKi9cbi5wdWxzZS10eXBlLWNhcmQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbi8qIERlIGluZm8tcG9wb3ZlciBob29ydCBCT1ZFTiBkZSBtb2RhbCB0ZSBsaWdnZW4uIHFkbmFwcm8tcG9wb3ZlciBzdGFhdCBvcFxuICAgei1pbmRleCAxMDAxIGVuIHFkbmFwcm8tbW9kYWwgb3AgOTAwMCwgZHVzIGJpbm5lbiBlZW4gbW9kYWwgb3BlbmRlIGhpalxuICAgb256aWNodGJhYXIgZXJhY2h0ZXI6IGRhdCB3YXMgZGUgXCJob3ZlciBkb2V0IG5pa3NcIi1tZWxkaW5nIHZhbiBLaW0gKDI0LjA4KS5cbiAgIEdlbGR0IHZvb3IgYmVpZGUgZ2VicnVpa2VycyB2YW4gZGV6ZSBwb3BvdmVyOiBoZXQgaS1wdW50amUgb3AgZWVuIHR5cGVrYWFydFxuICAgZW4gaGV0IGkta25vcGplIGJpaiBTdWJ0ZWtzdCBpbiBkZSB3aXphcmQuICovXG4ucWRuYXByby1wb3BvdmVyW2RhdGEtcHVsc2UtaW5mb10geyB6LWluZGV4OiA5NDAwOyB9XG4vKiDimqDvuI8gWkVMRkRFIFZBTCwgVFdFRSBLRUVSIE9QTklFVVcgR0VWT05ERU4gKDI3LjA4LjIwMjYpLiBFbGtlIHBvcG92ZXIgZGllXG4gICB2YW51aXQgZGUgd2l6YXJkL21vZGFsIG9wZW50IGhlZWZ0IGRlemUgcmVnZWwgbm9kaWcsIGFuZGVycyBvcGVudCBoaWpcbiAgIG9uemljaHRiYWFyIEFDSFRFUiBkZSBvdmVybGF5LiBHZW1ldGVuIG1ldCBlbGVtZW50RnJvbVBvaW50IG9wIGhldCBtaWRkZW5cbiAgIHZhbiBoZXQgZ2VvcGVuZGUgcGFuZWVsOiB6b25kZXIgZGUgcmVnZWwga3dhbSBkZSB3aXphcmQtc3RhcCB0ZXJ1ZywgbmlldCBkZVxuICAgcG9wb3Zlci4gRGUgZW1vamktL2ljb29uLWtpZXplcnMgKGthYXJ0IE0xMSkgbWlzdGVuIGhlbSDigJQgZGllIHdhcmVuIGFsbGVlblxuICAgZnVuY3Rpb25lZWwgZ2V0ZXN0IChpbnZvZWdpbmcga2xvcHRlKSwgbmlldCB2aXN1ZWVsLCBkdXMgZGUgZm91dCBibGVlZlxuICAgb25vcGdlbWVya3QuIEhldCBvcG1hYWstbWVudSAoTTEzYykgaG9vcnQgaW4gZGV6ZWxmZGUgbGlqc3QuICovXG4vKiAwMi4wOS4yMDI2OiBkZSB0d2VlIGtpZXplcnMgemlqbiBudSBiaWJsaW90aGVla2NvbXBvbmVudGVuXG4gICAocWRuYXByby1lbW9qaS1zaGVldCAvIHFkbmFwcm8tc3RpY2tlci1zaGVldCBtZXQgdmFyaWFudD1cInBvcG92ZXJcIiksIGVuIGRpZVxuICAgYm91d2VuIGh1biBlaWdlbiBxZG5hcHJvLXBvcG92ZXItc2NoaWwgbWV0IGVlbiBFSUdFTiBkYXRhLWhhYWsuIERlemVsZmRlIHZhbFxuICAgZ2VsZHQgZHVzIG9udmVya29ydDogem9uZGVyIGRlemUgcmVnZWwgb3BlbmVuIHplIHZhbnVpdCBkZSBzdGFwLW1vZGFsXG4gICBvbnppY2h0YmFhciBhY2h0ZXIgZGUgb3ZlcmxheS4gSGV0IGlzIG5pZXQgYWFuIGRlIGNvbXBvbmVudGVuIG9tIGRpdCB0ZVxuICAgd2V0ZW4g4oCUIGRlIHotaW5kZXgtbGFhZyBpcyBlZW4gZWlnZW5zY2hhcCB2YW4gREVaRSBwYWdpbmEuICovXG4ucWRuYXByby1wb3BvdmVyW2RhdGEtZW1vamktc2hlZXRdLFxuLnFkbmFwcm8tcG9wb3ZlcltkYXRhLXN0aWNrZXItc2hlZXRdLFxuLnFkbmFwcm8tcG9wb3ZlcltkYXRhLXB1bHNlLWxheW91dC1tZW51XSB7IHotaW5kZXg6IDk0MDA7IH1cblxuLnB1bHNlLXR5cGUtY2FyZC1pbmZvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMHB4O1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNDAwLCAjOGI4OGEzKTtcbiAgICBjdXJzb3I6IGhlbHA7XG59XG4ucHVsc2UtdHlwZS1jYXJkLWluZm86aG92ZXIsXG4ucHVsc2UtdHlwZS1jYXJkLWluZm86Zm9jdXMtdmlzaWJsZSB7XG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjMzk0MjkwKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmM2YzZjcpO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4vKiBEZSBvbXNjaHJpanZpbmcgbWFnIG51IGRlIHZvbGxlIGJyZWVkdGUgcGFra2VuIG9wIMOpw6luIHBsZWsgbWluZGVyIHRla3N0LiAqL1xuLnB1bHNlLXR5cGUtY2FyZC1kZXNjIHsgcGFkZGluZy1yaWdodDogMjZweDsgfVxuXG4ucHVsc2UtdHlwZS1jYXJkLW5vdGUge1xuICAgIG1hcmdpbjogNXB4IDAgMDtcbiAgICBmb250LXNpemU6IDExLjVweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTQwMCwgIzhiODhhMyk7XG59XG5cbi8qIEthYXJ0IDggemV0dGUgYWwgYGRpc2FibGVkYCBvcCBkZSBrbm9wIHZhbiBlZW4gc3RhcnQtL2VpbmRzY2hlcm0gZGF0IGVyIGFsXG4gICBpcyAoZGUga2xpayB3YXMgZHVzIGFsIGdlYmxva2tlZXJkKSBlbiBzY2hyZWVmIGRlIHJlZGVuIGVyb25kZXIsIG1hYXIgZGVcbiAgIGthYXJ0IFpBRyBlciBub2cgdWl0IGFscyBlbGtlIGFuZGVyZTogd2l0dGUgYWNodGVyZ3JvbmQsIGhvdmVyLXJhbmQsIHZvbFxuICAgZ2VrbGV1cmQgaWNvb250amUuIEtpbSAwMi4wOS4yMDI2OiBcImRlemUga25vcCBtb2V0IGVlbiBkaXNhYmxlZCBzdGF0ZVxuICAga3JpamdlblwiLiBWYW5kYWFyIGhpZXJvbmRlci5cbiAgIERlIFVJVExFRyBibGlqZnQgb3Agdm9sbGUgc3Rlcmt0ZSBzdGFhbiAtIGp1aXN0IGRpZSBtb2V0IGplIGt1bm5lbiBsZXplbiAtXG4gICBkdXMgaGV0IGRvZmZlbiBnZWJldXJ0IHBlciBvbmRlcmRlZWwgZW4gbmlldCBtZXQgw6nDqW4gb3BhY2l0eSBvdmVyIGRlIGhlbGVcbiAgIGthYXJ0LiBIZXQgaWNvb250amUgZ2FhdCBuYWFyIGdyaWpzOiBlZW4gdnJvbGlqayBnZWtsZXVyZCB2bGFramUgYmxpamZ0XG4gICB1aXRub2RpZ2VuLCBvb2sgYWxzIGRlIHJlc3QgYWwgZ2Vkb29mZCBpcy4gQW5pbWVyZW4gZG9ldCBoaWogaGllciBiZXd1c3RcbiAgIG5pZXQgKG9wZW5UeXBlQ2hvb3NlciBzbGFhdCB1aXRnZXNjaGFrZWxkZSBrYWFydGVuIG92ZXIgYmlqIGhvdmVyKS4gKi9cbi5wdWxzZS10eXBlLWNhcmQ6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTUwLCAjZjNmM2Y3KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNWU1ZWEpO1xufVxuLnB1bHNlLXR5cGUtY2FyZDpkaXNhYmxlZDpob3Zlcixcbi5wdWxzZS10eXBlLWNhcmQ6ZGlzYWJsZWQ6YWN0aXZlIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNWU1ZWEpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JleS01MCwgI2YzZjNmNyk7XG59XG4ucHVsc2UtdHlwZS1jYXJkOmRpc2FibGVkIC5wdWxzZS10eXBlLWNhcmQtdGl0bGUsXG4ucHVsc2UtdHlwZS1jYXJkOmRpc2FibGVkIC5wdWxzZS10eXBlLWNhcmQtZGVzYyB7IG9wYWNpdHk6IC41OyB9XG4ucHVsc2UtdHlwZS1jYXJkOmRpc2FibGVkIC5wdWxzZS1zdGVwLXR5cGUge1xuICAgIG9wYWNpdHk6IC41O1xuICAgIGZpbHRlcjogZ3JheXNjYWxlKDEpO1xufVxuLyogSGV0IGktcHVudGplIGhvb3J0IGJpaiBlZW4ga2V1emUgZGllIGplIGt1bnQgbWFrZW4uICovXG4ucHVsc2UtdHlwZS1jYXJkOmRpc2FibGVkIC5wdWxzZS10eXBlLWNhcmQtaW5mbyB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLyogLS0tIFN0YXAtbW9kYWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBEZSBob29ndGUtY29ycmVjdGllIHZvb3IgYGxheW91dD1cIndpdGgtaW5mb1wiYCBkaWUgaGllciBzdG9uZCBpcyB3ZWcgcGVyXG4gICAxMi4wOC4yMDI2OiBkaWUgbGF5b3V0IGdlYnJ1aWt0IGRlemUgbW9kYWwgbmlldCBtZWVyICh6aWUgZGUgc3BsaXRzY3JlZW4tcmVnZWxzXG4gICB2ZXJkZXJvcCwgZGllIGh1biBlaWdlbiB2YXN0ZSBob29ndGUgemV0dGVuIHpvZGF0IGRlIGtvbG9tbWVuIGt1bm5lbiBzY3JvbGxlbikuICovXG4jcHVsc2Utc3RlcC1tb2RhbC5tb2RhbC1sYXlvdXQtd2l0aC1pbmZvIC5tb2RhbC13aW5kb3cge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbn1cblxuLyogLS0tIFNwbGl0c2NyZWVuIGluIGRlIHN0YXAtbW9kYWwgKDEyLjA4LjIwMjYsIEtpbSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTGlua3Mgd2F0IGplIElOU1RFTFQsIHJlY2h0cyB3YXQgZGUgZGVlbG5lbWVyIFpJRVQuXG4gKlxuICogSGV0IHVpdGxlZ3BhbmVlbCAoYGxheW91dD1cIndpdGgtaW5mb1wiYCkgaXMgaGllcnZvb3Igb3BnZWdldmVuOiBkYXQga29zdHRlIDI4MFxuICogdmFuIGRlIDgwMCBwaXhlbHMgYWFuIGVlbiBpbGx1c3RyYXRpZSwgd2FhcmRvb3Igw6lsayB2ZWxkIOKAlCBpbmNsdXNpZWYgZGVcbiAqIHRla3N0dmVyd2Vya2VyIOKAlCBpbiBkZSByZXN0ZXJlbmRlIH41MDBweCBtb2VzdCBwYXNzZW4uXG4gKlxuICog4pqg77iPIERFIEtPTE9NTUVOIFNDUk9MTEVOLCBOSUVUIERFIE1PREFMLUJPRFkuIERhdCBpcyBoZXQgaGVsZSBwdW50OiBwYXMgamVcbiAqIGxpbmtzIGlldHMgYWFuLCBkYW4gaG9vcnQgZGUgdGVrc3R2ZXJ3ZXJrZXIgcmVjaHRzIGluIGJlZWxkIHRlIGJsaWp2ZW4uIERhdFxuICogdnJhYWd0IGBtaW4taGVpZ2h0OiAwYCBvcCBkZSBIRUxFIGZsZXgta2V0ZW4gKGRpYWxvZyDihpIgd2luZG93IOKGkiBib2R5IOKGkiBzcGxpdCksXG4gKiB3YW50IGVlbiBmbGV4LWl0ZW0ga3Jpamd0IHN0YW5kYWFyZCBgbWluLWhlaWdodDogYXV0b2AgPSB6aWpuIGVpZ2VuIGluaG91ZCwgZW5cbiAqIGRhbiB3aW50IGRlIGluaG91ZHNob29ndGUgdmFuIGVsa2UgaG9vZ3RlIGRpZSBqZSBvcGxlZ3QgZW4gc2Nyb2xsdCBlciBuaWV0cy5cbiAqIFppZSBvb2sgZGUgcWRuYS1tb2RhbHMgc2tpbGwsIMKnMWQuICovXG4jcHVsc2Utc3RlcC1tb2RhbCAubW9kYWwtZGlhbG9nIHtcbiAgICBoZWlnaHQ6IG1pbig3NjBweCwgY2FsYygxMDB2aCAtIDY0cHgpKTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4jcHVsc2Utc3RlcC1tb2RhbCAubW9kYWwtd2luZG93IHsgbWluLWhlaWdodDogMDsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuI3B1bHNlLXN0ZXAtbW9kYWwgLm1vZGFsLWJvZHkge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC8qIERlIGJvZHkgc2Nyb2xsdCBOSUVUOyBkZSBrb2xvbW1lbiBlcmluIGRvZW4gZGF0LiAqL1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5wdWxzZS1zbS1zcGxpdCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIC8qIDQ1LzU1IGluIHBsYWF0cyB2YW4gZGUgZWVyc3RlIDM0MC82MjAgKEtpbSAxMi4wOC4yMDI2OiBcImVlbiBiZWV0amUgbWVlclxuICAgICAgIDUwLTUwXCIpLiBOaWV0IGV4YWN0IGhhbGYgb20gaGFsZjogZGUgcmVjaHRlcmtvbG9tIGRyYWFndCBkZVxuICAgICAgIHRla3N0dmVyd2Vya2VyIMOpbiBkZSBhbnR3b29yZG9wdGllcywgZHVzIGRpZSBtYWcgZGUgYnJlZGVyZSBibGlqdmVuLlxuICAgICAgIFBlcmNlbnRhZ2VzIGVuIGdlZW4gdmFzdGUgcGl4ZWxzLCB6b2RhdCBkZSB2ZXJob3VkaW5nIGtsb3B0IGJsaWpmdCBhbHMgZGVcbiAgICAgICBtb2RhbCBvb2l0IG5hYXIgeHhsYXJnZSBnYWF0LiAqL1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNDUlIG1pbm1heCgwLCAxZnIpO1xuICAgIGdhcDogMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgIC8qIFRlIHNtYWwgdm9vciB0d2VlIGtvbG9tbWVuOiBkYW4gb25kZXIgZWxrYWFyLCBlbiBzY3JvbGx0IGRlIGJvZHkgd2VlciBhbHNcbiAgICAgICBnZWhlZWwuIFpvbmRlciBkZXplIHRlcnVndmFsIHpvdSBkZSBsaW5rZXJrb2xvbSB2YW4gMzQwcHggZGUgcmVjaHRlclxuICAgICAgIHBsYXRkcnVra2VuLiAqL1xuICAgIC5wdWxzZS1zbS1zcGxpdCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7IH1cbiAgICAjcHVsc2Utc3RlcC1tb2RhbCAubW9kYWwtYm9keSB7IG92ZXJmbG93LXk6IGF1dG87IH1cbiAgICAucHVsc2Utc20tY29sIHsgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDsgfVxufVxuXG4ucHVsc2Utc20tY29sIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgLyogNHB4IGFkZW1ydWltdGUgKyBzY3JvbGwtcGFkZGluZzogem9uZGVyIGRpdCB3b3JkdCBkZSBmb2N1cy1yaW5nIHZhbiBoZXRcbiAgICAgICBib3ZlbnN0ZSB2ZWxkIChlZW4gYm94LXNoYWRvdyB2YW4gM3B4KSBkb29yIGRlIHNjcm9sbC1jb250YWluZXIgYWZnZWthcHQuXG4gICAgICAgRGV6ZWxmZGUgcmVnZWwgYWxzIG9wIC5tb2RhbC1ib2R5IGluIF9tb2RhbC5zY3NzIOKAlCBlZW4gbmlldXdlXG4gICAgICAgc2Nyb2xsLWNvbnRhaW5lciBoZWVmdCBoZW0gb3BuaWV1dyBub2RpZy4gKi9cbiAgICBwYWRkaW5nOiA0cHggMTZweCAxNnB4O1xuICAgIHNjcm9sbC1wYWRkaW5nLXRvcDogOHB4O1xufVxuLnB1bHNlLXNtLWNvbC0tc2V0IHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZTVlNWVhKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUsICNmYWY5ZmUpO1xufVxuLnB1bHNlLXNtLWNvbC0tY29udGVudCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLyogRGUgd3JhcC1yZWdlbHMgdm9vciBcImRhZyBuYWFzdCByaXRtZVwiIHppam4gd2VnIHBlciAxMi4wOC4yMDI2OiBkaWUgdHdlZSBzdGFhblxuICAgbmlldCBtZWVyIG5hYXN0IGVsa2FhciAoemllIC5wdWxzZS1wYWNlIGhpZXJib3ZlbiksIGR1cyBlciB2YWx0IG5pZXRzIG1lZXIgdGVcbiAgIGxhdGVuIHdyYXBwZW4uIC5wdWxzZS1zbS1yb3cgemVsZiBibGlqZnQgYmVzdGFhbiB2b29yIGFuZGVyIGdlYnJ1aWsuICovXG5cbi8qIERlIGFudHdvb3Jkb3B0aWVzIHN0YWFuIHNpbmRzIDEyLjA4LjIwMjYgTElOS1MsIG9uZGVyIGRlIHBsYW5uaW5nLiBFZW5cbiAgIGhhYXJsaWpuIGVyYm92ZW4gc2NoZWlkdCBcIndhbm5lZXIgZW4gaG9lXCIgdmFuIFwiZGUgdnJhYWcgemVsZlwiOyB6b25kZXIgZGllXG4gICBzY2hlaWRpbmcgbG9vcHQgZGUga29sb20gYWxzIMOpw6luIGxhbmdlIHNsaWVydCB2ZWxkZW4gZG9vci4gKi9cbi5wdWxzZS1zbS1jb2wtLXNldCAjcHVsc2Utc20tb3B0aW9ucy1maWVsZCB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBwYWRkaW5nLXRvcDogMThweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2U1ZTVlYSk7XG59XG5cbi8qIEJlZWxkIGJvdmVuIHRla3N0IGluIGRlIHJlY2h0ZXJrb2xvbTogZWVuIHN0cmVlcGplIGx1Y2h0IGVydHVzc2VuLCB6b2RhdCBkZVxuICAgdHdlZSBhbHMgYXBhcnRlIG9uZGVyZGVsZW4gdmFuIGRlemVsZmRlIGthYXJ0IGxlemVuLiAqL1xuLnB1bHNlLXNtLWNvbC0tY29udGVudCAucHVsc2Utc20taW1hZ2UgeyBtYXJnaW4tYm90dG9tOiA0cHg7IH1cblxuLyogRGUga29sb21rb3BwZW4gXCJJTlNURUxMSU5HRU5cIiBlbiBcIkRFIEtBQVJUXCIgemlqbiB3ZWcgcGVyIDEyLjA4LjIwMjYgKEtpbSk6XG4gICBkZSBzY2hlaWRpbmdzbGlqbiB0dXNzZW4gZGUga29sb21tZW4gemVndCBhbCBkYXQgaGV0IHR3ZWUgZ2ViaWVkZW4gemlqbiwgZW5cbiAgIHR3ZWUga29wamVzIGRpZSBuaWV0cyB0b2V2b2VnZW4ga29zdGVuIGFsbGVlbiBob29ndGUgYm92ZW5hYW4gaGV0IGZvcm11bGllci4gKi9cblxuLyogSGV0IHR5cGVrYWFydGplIGRhdCBoaWVyIHN0b25kICgucHVsc2Utc20tdHlwZWNhcmQpIGlzIHdlZyBwZXIgMTIuMDguMjAyNjpcbiAgIHVpdGxlZyBvdmVyIGhldCBTVEFQVFlQRSBob29ydCBpbiBkZSBraWV6ZXIgXCJXYXQgdm9vciBzdGFwIHdvcmR0IGhldD9cIiwgd2FhclxuICAgamUgZGllIGtldXplIG1hYWt0LiBaaWUgLnB1bHNlLXR5cGUtY2FyZC1ub3RlIGhpZXJvbmRlci4gKi9cblxuLyogRGUgdGVrc3R2ZXJ3ZXJrZXIga3Jpamd0IGVlbiBydWltZSBtaW5pbXVtaG9vZ3RlIOKAlCBkYXQgaXMgd2FhciBkZXplIGhlbGVcbiAgIHZlcmJvdXdpbmcgb20gYmVnb25uZW4gaXMuXG4gKlxuICog4pqg77iPIEdFRU4gYGZsZXhgICsgYG1pbi1oZWlnaHQ6IDBgIG9wIGhldCBWRUxEIGhpZXIuIERhdCBzdG9uZCBlciBlZXJzdCwgZW4gdG9lblxuICoga3JvbXAgaGV0IHZlbGQgdG90IDc0cHggdGVyd2lqbCBkZSBlZGl0b3IgZXJpbiAxODBweCBibGVlZjogaGV0IGtpbmQgc3RhayAxMzhweFxuICogYnVpdGVuIHppam4gb3VkZXIgdWl0IGVuIGxlZ2RlIHppY2ggb3ZlciBoZXQgbGFiZWwgXCJBbnR3b29yZG9wdGllc1wiIGVyb25kZXJcbiAqIGhlZW4uIEluIGVlbiBrb2xvbSBkaWUgemVsZiBzY3JvbGx0IGhvb3J0IGRlIGluaG91ZCBnZXdvb24gemlqbiBuYXR1dXJsaWprZVxuICogaG9vZ3RlIHRlIGtyaWpnZW47IG9wdnVsbGVuIGVuIHNjcm9sbGVuIGdhYW4gbmlldCBzYW1lbi5cbiAqXG4gKiBIZXQgdmVsZCBpcyBkdXMgZWVuIGdld29vbiBibG9rIGRhdCBvbSBkZSBlZGl0b3IgaGVlbiBncm9laXQ7IGFsbGVlbiBkZSBNT1VOVFxuICogZHJhYWd0IGRlIG1pbmltdW1ob29ndGUsIGVuIGhldCBjb21wb25lbnQgZXJpbiB2dWx0IGRpZSBvcC4gKi9cbi8qIDM0MCBlbiBuaWV0IDIyMCAoS2ltIDEyLjA4LjIwMjYpOiBoZXQgc2NocmlqZnZsYWsgaG9vcnQgZXIgcnVpbSB1aXQgdGUgemllblxuICAgT09LIGFscyBlciBub2cgbmlldHMgaW4gc3RhYXQuIEVlbiBrbGVpbiBsZWVnIHZhayBub2RpZ3QgdWl0IHRvdCBlZW4ga2xlaW5cbiAgIGJlcmljaHRqZSwgZW4gZGl0IGlzIGhldCB2ZWxkIHdhYXIgZGUgaGVsZSBrYWFydCBvbSBkcmFhaXQuICovXG4vKiBLYWFydCAxNiAoQk9BUkQtcHVsc2UtcHdhLWluaGFhbHNsYWcsIEtpbXMgc2NyZWVuc2hvdCAyOC4wOCk6IGNvbHVtbiwgd2FudFxuICAgem9uZGVyIHJpY2h0aW5nIGlzIGZsZXggUk9XIGVuIHN0b25kZW4gZGUgZW1vamkvc3RpY2tlci1rbm9wcGVuIE5BQVNUIGRlXG4gICBlZGl0b3IgaW4gcGxhYXRzIHZhbiBlcm9uZGVyIOKAlCB0ZXJ3aWpsIEtpbSBleHBsaWNpZXQgXCJvbmRlciBoZXQgdmVsZCwgem9hbHNcbiAgIGJpaiBTdWJ0ZWtzdFwiIGhhZCBnZXZyYWFnZC4gRGUga25vcHBlbnJpaiAoLnB1bHNlLWlubGluZS1waWNrZXItYnRucykgaXMgZWVuXG4gICBzaWJsaW5nIHZhbiA8cWRuYXByby13eXNpd3lnPiBpbiBkZXplbGZkZSBtb3VudCAobWFrZUVkaXRvckNvbnRyb2xsZXIpLCBkdXNcbiAgIG1ldCBjb2x1bW4gbGFuZHQgaGlqIHZhbnplbGYgb25kZXIgaGV0IHZlbGQ7IGRlIGZsZXgtZ3JvZWkgdmFuIGRlIGVkaXRvclxuICAgd2Vya3QgZ2V3b29uIGxhbmdzIGRlIHZlcnRpY2FsZSBhcyBkb29yLiBHZWxkdCBiZXd1c3Qgdm9vciBBTExFIGRyaWUgZGVcbiAgIG1vdW50cyBkaWUgZGV6ZSBrbGFzc2UgZGVsZW4gKG91ZGUgc3RhcC1tb2RhbCwgd2l6YXJkLU9wbWFhaywgVnJpalxuICAgdm9ybWdldmVuKSDigJQgemVsZmRlIG9vcnphYWssIHplbGZkZSB3ZW5zLiAqL1xuLnB1bHNlLXNtLWZpZWxkLS1ncm93IC5wdWxzZS1zbS1lZGl0b3ItbW91bnQgeyBtaW4taGVpZ2h0OiAzNDBweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuLnB1bHNlLXNtLWZpZWxkLS1ncm93IHFkbmFwcm8td3lzaXd5ZyB7IGZsZXg6IDEgMSBhdXRvOyBtaW4td2lkdGg6IDA7IH1cbi8qIEthYXJ0IDQgKEJPQVJELXB1bHNlLW9wbWFhay1oeWJyaWRlLCAyNS4wOC4yMDI2KTogZGUgcmlqa2UtbW91bnQga2FuIG51XG4gICBPT0sgaW5kaXZpZHVlZWwgdmVyYm9yZ2VuIHdvcmRlbiAoU3VidGVrc3QvT3BtYWFrLXBpbGwsIGxvcyB2YW4gb2YgemlqblxuICAgYC5wdWxzZS1zbS1maWVsZC0tZ3Jvd2Atb3VkZXIgemVsZiB6aWNodGJhYXIgaXMpLiBab25kZXIgZGV6ZSByZWdlbCB3aW50XG4gICBkZSBgZGlzcGxheTogZmxleGAgaGllcmJvdmVuIGFsdGlqZCB2YW4gaGV0IG5hdGl2ZSBgW2hpZGRlbl1gOiBhdXRldXItQ1NTXG4gICBnYWF0IHbDs8OzciBkZSB1c2VyLWFnZW50LXN0eWxlc2hlZXQsIG9uZ2VhY2h0IHNwZWNpZmljaXRlaXQtY2lqZmVycyDigJRcbiAgIGhlYWRsZXNzIGdldmVyaWZpZWVyZCAob2Zmc2V0UGFyZW50IGJsZWVmIHdhYXIgbWV0IGBoaWRkZW5gIGdlemV0LCB6aWVcbiAgIGhldCBrYWFydC00LXZlcnNsYWcpLiBaZWxmZGUgdmFsa3VpbCBhbHMgLnB1bHNlLW9wdC12aWV3LXNlZyBoaWVyYm92ZW5cbiAgIChrYWFydCA1LzIyKSwgbnUgb3AgZWVuIEFOREVSIGVsZW1lbnQgZ2V2b25kZW4uICovXG4ucHVsc2Utc20tZmllbGQtLWdyb3cgLnB1bHNlLXNtLWVkaXRvci1tb3VudFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLyogS2ltcyBhY2NlcHRhdGlldGVzdCAyNi4wODogaW4gZGUgV0laQVJEIGlzIGRlIHJpamtlIGVkaXRvciBkZSBTVUJURUtTVFxuICAgKFN1YnRla3N0L09wbWFhay1waWxsKSwgbmlldCBoZXQgaG9vZmR2ZWxkIOKAlCBkYWFyIGxpZXQgZGUgMzQwcHggaGllcmJvdmVuXG4gICBlZW4gZm9ycyBsZWVnIHN0dWsgaG9zdCBvbmRlciBoZXQgemljaHRiYXJlIGthZGVyIGFjaHRlciAoZGUgaWRvYy10ZXh0LVxuICAgcHJlc2V0IGhlZWZ0IGBhdXRvcmVzaXplYDogVGlueU1DRSBzY2hyaWpmdCB6aWpuIGVpZ2VuIGhvb2d0ZSwgfjE5N3B4XG4gICBsZWVnLCBlbiBncm9laXQgbWV0IGRlIGluaG91ZCBtZWU7IGdlbWV0ZW4gMTQzcHggb256aWNodGJhcmUgcmVzdCksIGVuXG4gICBiZWdvbm5lbiBkZSBhbnR3b29yZG9wdGllcyBkdXMgZWVuIGhlZWwgZWluZCB0ZSBsYWFnLiBIaWVyIGJlcGFhbHQgZGVcbiAgIGVkaXRvciB6ZWxmIHppam4gaG9vZ3RlLiBEZSBPVURFIHN0YXAtbW9kYWwgKHZpZGVvL2RvY3VtZW50L2FjdGllLCB3YWFyXG4gICBkZSBlZGl0b3Igd8OpbCBoZXQgaG9vZmR2ZWxkIGlzKSBiZWhvdWR0IGRlIDM0MHB4LiBJZC1zZWxlY3RvciB3aW50IG1ldFxuICAgb3B6ZXQgdmFuIGRlIGtsYXNzZS1yZWdlbCBoaWVyYm92ZW4uICovXG4vKiAwMS4wOS4yMDI2IChLaW06IFwiZGUgc21pbGV5L3N0aWNrZXIta25vcHBlbiB6aXR0ZW4gaGVlbCB2ZXIgb25kZXIgaGV0XG4gICBpbnB1dGZpZWxkXCIpOiBkZSBPVURFIHN0YXAtbW9kYWwgZG9ldCBudSBtZWUgbWV0IGRpZXplbGZkZSByZWdlbC4gRGUgMzQwcHhcbiAgIGhpZXJib3ZlbiByZWt0ZSBkZSBNT1VOVCBvcCwgZGUgcmVkYWN0ZXVyIGdyb2VpZGUgbWVlIHRvdCB6aWpuIG9uemljaHRiYXJlXG4gICByZXN0IGVuIGRlIGtub3BwZW5yaWogZXJvbmRlciBsYW5kZGUgaG9uZGVyZGVuIHBpeGVscyBsYWdlciBkYW4gaGV0XG4gICB6aWNodGJhcmUga2FkZXIuIEhldCByb3lhbGUgc2NocmlqZnZsYWsgaXMgbmlldCB3ZWcsIGhldCBpcyB2ZXJodWlzZCBuYWFyIGRlXG4gICByZWRhY3RldXIgemVsZjogbW91bnRFZGl0b3IoKSBnZWVmdCBgaGVpZ2h0PVwiMzAwXCJgIG1lZSAoVGlueU1DRSBtaW5faGVpZ2h0LFxuICAgZ3JvZWl0IGRhYXJuYSBtZWUgbWV0IGRlIGluaG91ZCkuICovXG4jcHVsc2Utd2l6LWNsYXNzaWMtZWRpdG9yLW1vdW50LCAjcHVsc2Utd2l6LWZyZWUtZWRpdG9yLW1vdW50LCAjcHVsc2Utc20tZWRpdG9yLW1vdW50IHsgbWluLWhlaWdodDogMDsgfVxuXG4vKiAtLS0gRGFnICsgcml0bWUgKDEyLjA4LjIwMjYsIEtpbSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFdhcyBlZW4gZ2V0YWx2ZWxkIG1ldCBlZW4gc2VnbWVudCBlcm5hYXN0LiBOdSBlZW4gc21hbCBnZXRhbHZlbGQgbWV0IGRhYXJvbmRlclxuICAgdHdlZSByYWRpb2tldXplcyBkaWUgZWxrIHplZ2dlbiB3YXQgemUgZG9lbiwgZW4gw6nDqW4gcmVnZWwgZGllIGRlIHVpdGtvbXN0IGluXG4gICBnZXdvbmUgdGFhbCBzYW1lbnZhdC4gRGllIGxhYXRzdGUgaXMgaGV0IHB1bnQgdmFuIGRlIGhlbGUgd2lqemlnaW5nLiAqL1xuLnB1bHNlLXNtLWRheSB7IGRpc3BsYXk6IGJsb2NrOyBtYXgtd2lkdGg6IDE1MHB4OyB9XG5cbi5wdWxzZS1wYWNlIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA4cHg7IG1hcmdpbi10b3A6IDEycHg7IH1cbi5wdWxzZS1wYWNlLWNob2ljZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4vKiBEZSBrbm9wIG1hZyBuaWV0IG1lZWtyaW1wZW4gbWV0IGVlbiBsYW5nZSB1aXRsZWdyZWdlbCBlcm5hYXN0LiAqL1xuLnB1bHNlLXBhY2UtY2hvaWNlIHFkbmFwcm8tcmFkaW8geyBmbGV4OiAwIDAgYXV0bzsgbWFyZ2luLXRvcDogMXB4OyB9XG4ucHVsc2UtcGFjZS10ZXh0IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxcHg7IG1pbi13aWR0aDogMDsgfVxuLnB1bHNlLXBhY2UtbmFtZSB7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMWMxZTJhKTsgfVxuLnB1bHNlLXBhY2UtdGV4dCBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xufVxuXG4vKiBEZSB1aXRrb21zdHJlZ2VsLiBOYWRydWtrZWxpamtlciBkYW4gZWVuIGdld29uZSBoaW50IChkb25rZXJkZXIgZW4gb3AgZGVcbiAgIG1lcmtrbGV1cik6IGhldCBpcyBnZWVuIHRlcnppamRlIG1hYXIgaGV0IGFudHdvb3JkIG9wIFwid2F0IGhlYiBpayBudVxuICAgaW5nZXN0ZWxkXCIuIEhpaiB2ZXJhbmRlcnQgbWVlIG1ldCBoZXQgZ2V0YWwgw6luIG1ldCBkZSBrZXV6ZS4gKi9cbi5wdWxzZS1wYWNlLXN1bW1hcnkge1xuICAgIG1hcmdpbjogMTJweCAwIDA7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTUwLCAjZjBlZWZjKTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjMzk0MjkwKTtcbn1cbi5wdWxzZS1wYWNlLXN1bW1hcnk6ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIEtpbSAwMi4wOS4yMDI2OiBkZSB1aXRrb21zdHJlZ2VsIHN0b25kIE9OREVSIGRlIGRyaWUgcml0bWVrZXV6ZXMgZW4ga29zdHRlXG4gICBkYWFyIGVlbiBoZWxlIHJlZ2VsIGluIGVlbiBrb2xvbSBkaWUgdG9jaCBhbCB2b2wgaXMuIEhpaiBzdGFhdCBudSBOQUFTVCBoZXRcbiAgIGRhZ3ZlbGQgKHppZSBwYWNpbmdGaWVsZHNIdG1sIGluIGRldGFpbC5odG1sKS5cbiAgIGBhbGlnbi1pdGVtczogZmxleC1lbmRgIGlzIGRlIGtlcm46IGhldCBkYWd2ZWxkIGRyYWFndCB6aWpuIGVpZ2VuIGxhYmVsXG4gICAoXCJEYWdcIikgQk9WRU4gaGV0IGludm9lcnZha2plLCBkdXMgYWxsZWVuIG9uZGVybGlqbmVuIGxhYXQgZGUgcmVnZWwgbmV0amVzXG4gICBvcCBkZXplbGZkZSBob29ndGUgYWxzIGhldCBzdGFwcGVudmFramUgdWl0a29tZW4uIERlIHJlZ2VsIGtyaWpndCBkYWFyb20gb29rXG4gICBkZXplbGZkZSBob29ndGUgYWxzIGVlbiBgc2l6ZT1cInNtYWxsXCJgIGludm9lcnZlbGQgZW4gY2VudHJlZXJ0IHppam4gdGVrc3RcbiAgIHZlcnRpY2FhbCAtIGFuZGVycyB6b3UgaGlqIGFscyBlZW4gbGFnZSBzdHJvb2sgb25kZXIgaGV0IHZha2plIGJ1bmdlbGVuLlxuICAgSGV0IGRhZ3ZlbGQgZW4gaGV0IHZhc3RlLWRhdHVtdmVsZCB6aWpuIGVsa2FhcnMgYWZ3aXNzZWxpbmcgKHppZVxuICAgdXBkYXRlUGFjaW5nU3VtbWFyeU9mKSwgZHVzIGVyIHN0YWF0IGVyIGFsdGlqZCBwcmVjaWVzIMOpw6luIG5hYXN0IGRlIHJlZ2VsLiAqL1xuLnB1bHNlLXBhY2Utd2hlbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgZ2FwOiAxMnB4O1xuICAgIC8qIFdyYXBwZW4gaS5wLnYuIHNhbWVua25panBlbjogaW4gZGUgYnJlZGUgc3RhcC1tb2RhbCBwYXN0IGFsbGVzIG9wIMOpw6luXG4gICAgICAgcmVnZWwsIGluIGRlIHNtYWxsZSBkYWctcG9wb3ZlciAoMjY4cHggaW5ob3VkKSB6YWt0IGRlIHVpdGtvbXN0cmVnZWxcbiAgICAgICBuYWFyIGRlIHZvbGdlbmRlIHJlZ2VsIGluIHBsYWF0cyB2YW4gdG90IGVlbiBob2dlLCBzbWFsbGUga29sb20gdGVcbiAgICAgICB3b3JkZW4gZ2VwZXJzdC4gWmllIGRlIG1pbi13aWR0aHMgaGllcm9uZGVyLCBkaWUgaGV0IG9tc2xhZ3B1bnQgemV0dGVuLiAqL1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cbi8qIERlIGdlbmVyaWVrZSB2ZWxkbWFyZ2UgKC5wdWxzZS1zbS1maWVsZCkgaG9vcnQgbmlldCBpbiBlZW4gcmlqLiAqL1xuLyogMDIuMDkuMjAyNjogaGV0IHZhc3RlLWRhdHVtdmVsZCBpcyBzaW5kcyBkZSBodWlza2FsZW5kZXIgZWVuIFRFS1NUdmVsZCBtZXRcbiAgIGVlbiBrYWxlbmRlcmljb29uIGxpbmtzIGVuIGVlbiBrcnVpc2plIHJlY2h0cy4gT3AgYGZsZXg6IDAgMCBhdXRvYCBrcm9tcCBoZXRcbiAgIHRvdCA5NnB4LCB3YWFydmFuIDE0cHggdm9vciBkZSB0ZWtzdCBvdmVyYmxlZWYgdGVyd2lqbCBcIjMxLjEyLjIwMjZcIiBlciA3MVxuICAgbm9kaWcgaGVlZnQg4oCUIGdlbWV0ZW47IGRlIGRhdHVtIHdhcyBhZmdla2FwdCB0b3QgXCIwMlwiLiAxNjhweCBnZWVmdCA4NnB4XG4gICB0ZWtzdHJ1aW10ZSwgZHVzIDE1cHggc3BlbGluZy4gKi9cbi5wdWxzZS1wYWNlLXdoZW4gPiAucHVsc2Utc20tZmllbGQgeyBtYXJnaW4tdG9wOiAwOyBmbGV4OiAwIDAgMTY4cHg7IH1cbi5wdWxzZS1wYWNlLXdoZW4gPiAucHVsc2Utc20tZGF5ICAgeyBmbGV4OiAwIDAgYXV0bzsgfVxuLnB1bHNlLXBhY2Utd2hlbiA+IC5wdWxzZS1wYWNlLXN1bW1hcnkge1xuICAgIC8qIERlIG1pbi13aWR0aCBpcyBoZXQgb21zbGFncHVudCB2YW4gZGUgd3JhcCBoaWVyYm92ZW46IG9uZGVyIDIwMHB4IGxlZXN0XG4gICAgICAgZGV6ZSB6aW4gYWxzIGVlbiBrb2xvbSB2YW4gbG9zc2Ugd29vcmRlbiwgZGFuIGhvb3J0IGhpaiBvcCBlZW4gZWlnZW5cbiAgICAgICByZWdlbC4gKi9cbiAgICBmbGV4OiAxIDEgMjAwcHg7XG4gICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW46IDA7XG4gICAgbWluLWhlaWdodDogMzhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8qIE9uZGVyIGRlIHRhYmxldGJyZWVkdGUgaXMgZXIgZ2VlbiBwbGVrIG1lZXIgdm9vciB0d2VlIGtvbG9tbWVuOyBkYW4gdmFsdCBkZVxuICAgcmVnZWwgZ2V3b29uIHdlZXIgb25kZXIgaGV0IHZlbGQsIHpvYWxzIGhpaiBhbHRpamQgc3RvbmQuICovXG5AbWVkaWEgKG1heC13aWR0aDogNjIwcHgpIHtcbiAgICAucHVsc2UtcGFjZS13aGVuIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuICAgIC5wdWxzZS1wYWNlLXdoZW4gPiAucHVsc2UtcGFjZS1zdW1tYXJ5IHsgbWluLWhlaWdodDogMDsgfVxufVxuXG4vKiBEZSB3YWFyc2NodXdpbmcgb25kZXIgaGV0IGdla29wcGVsZGUgZG9jdW1lbnQgaGVlZnQgZWVuIEtOT1AgaW4gemlqblxuICAgYWN0aWUtc2xvdCwgZW4gaW4gZGV6ZSBzbWFsbGUga29sb20gKDQyN3B4KSBwYXN0IGRpZSBrbm9wIG5pZXQgbmFhc3QgZGVcbiAgIHRla3N0OiBoaWogdmFsdCBlcm9uZGVyLiBEZSBtZWxkaW5nIGNlbnRyZWVydCB6aWpuIGljb29uIHZlcnRpY2FhbCwgZW4gZGFuXG4gICBzdGFhdCBoZXQgd2FhcnNjaHV3aW5nc2RyaWVob2VramUgaW5lZW5zIG5hYXN0IGRlIGtub3AgaW4gcGxhYXRzIHZhbiBiaWogZGVcbiAgIHJlZ2VsIHdhYXIgaGV0IG92ZXIgZ2FhdCAoZ2VtZXRlbiBpbiBLaW1zIGJyb3dzZXIsIDA0LjA5LjIwMjYpLiBEZXplIHR3ZWVcbiAgIHJlZ2VscyB6ZXR0ZW4gaGV0IGljb29uIGJvdmVuYWFuIHVpdGdlbGlqbmQsIGFsbGVlbiB2b29yIERFWkUgbWVsZGluZywgem9kYXRcbiAgIGhldCBjb21wb25lbnQgemVsZiBvbmdlbW9laWQgYmxpamZ0LiAqL1xuI3B1bHNlLXNtLWxpbmstZG9jLXdhcm5pbmcge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIC8qIEtpbSAwNC4wOS4yMDI2OiBkZSBtZWxkaW5nIHBsYWt0ZSB0ZWdlbiBoZXQgZG9jdW1lbnRrYWRlci4gKi9cbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuI3B1bHNlLXNtLWxpbmstZG9jLXdhcm5pbmcgLnFkbmFwcm8tYWxlcnRfX2ljb24ge1xuICAgIG1hcmdpbi10b3A6IDJweDtcbn1cbi8qIERlIG1lbGRpbmcgemV0IHppam4gdGVrc3RibG9rIG9wIGBmbGV4OiAxIDEgMjIwcHhgLCBlbiBtZXQgZWVuIGtub3AgZXJuYWFzdFxuICAgcGFzdCBkYXQgbmlldCBpbiBkZXplIGtvbG9tIHZhbiA0MjdweDogZGUga25vcCB2aWVsIGRhbiBvbmRlciBkZSB0ZWtzdC5cbiAgIEhpZXIgbWFnIGhldCB0ZWtzdGJsb2sgdmVyZGVyIGtyaW1wZW4sIHpvZGF0IHJlZ2VsIGVuIGtub3AgbmFhc3QgZWxrYWFyXG4gICBzdGFhbiAoS2ltIDA0LjA5LjIwMjY6IFwiaG9wZWxpamsgZGFuIHJlY2h0cyB2YW4gZGUgdGVrc3RcIikuIEFsbGVlbiB2b29yXG4gICBERVpFIG1lbGRpbmc7IGhldCBjb21wb25lbnQgYmxpamZ0IG9uZ2Vtb2VpZC4gKi9cbiNwdWxzZS1zbS1saW5rLWRvYy13YXJuaW5nIC5xZG5hcHJvLWFsZXJ0X19jb250ZW50IHtcbiAgICBmbGV4LWJhc2lzOiAxNTBweDtcbn1cblxuLyogSGV0IFZPT1JCRUVMRCB2YW4gaGV0IGdla29wcGVsZGUgZG9jdW1lbnQgKEtpbSAwNC4wOS4yMDI2OiBcImlrIHdpbCBoZXRcbiAgIGRvY3VtZW50IGt1bm5lbiBvcGVuZW4gZW4gZWVuIHByZXZpZXcgemllbiwgZGl0IGRvZW4gd2UgbWV0IFlvdVR1YmUtdmlkZW8nc1xuICAgb29rXCIpLiBEdXMgZ2VlbiA5NiBiaWogNjQgZHVpbW5hZ2VsIG1ldCBvYmplY3QtZml0OiBjb3Zlciwgd2FudCBkYW4gc25pamR0XG4gICBlZW4gc3RhYW5kZSBwYWdpbmEgd2VnOyBkaXQgaXMgZWVuIHZlbnN0ZXIgb3AgcGFnaW5hIDEgb3AgZGUgdm9sbGVcbiAgIGtvbG9tYnJlZWR0ZSwgbWV0IGRlIHBhZ2luYSB2b2xsZWRpZyBpbiBiZWVsZCAoY29udGFpbikgb3Agd2l0LiBEZVxuICAgbWF4aW11bWhvb2d0ZSBob3VkdCBkZSBtb2RhbCBiaWogZWxrYWFyOiBlZW4gQTQgb3AgNTMwcHggYnJlZWQgem91IGFuZGVyc1xuICAgNzUwcHggaG9vZyB3b3JkZW4uICovXG4ucHVsc2Utc20tZG9jLXByZXZpZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXgtaGVpZ2h0OiAyNjBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbn1cbi5wdWxzZS1zbS1kb2MtcHJldmlldyBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAyNjBweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLyogS2ltIDA0LjA5LjIwMjY6IGRlIE9wZW5lbi1rbm9wIHphdCB0ZWdlbiBoZXQgdm9vcmJlZWxka2FkZXIgYWFuZ2VwbGFrdC4gRGV6ZVxuICAgcmVnZWwgZ2VsZHQgYWxsZWVuIHZvb3IgZGUgYWN0aWVyaWogT05ERVIgZGF0IGthZGVyLCBkdXMgZGUga25vcHBlbnJpaiB2YW5cbiAgIGhldCBhZmJlZWxkaW5nLXZlbGQgZXJvbmRlciB2ZXJzY2h1aWZ0IG5pZXQgbWVlLiAqL1xuLnB1bHNlLXNtLWRvYy1wcmV2aWV3ICsgLnB1bHNlLXNtLWhpbnQsXG4ucHVsc2Utc20tZG9jLXByZXZpZXcgfiAucHVsc2Utc20taW1hZ2UtYWN0aW9ucyB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLyogSGV0IGdla29wcGVsZGUgZG9jdW1lbnQgaW4gZGUgc3RhcC1tb2RhbCBzdGFhdCBpbiBlZW4gRUlHRU4ga2FkZXIgb3Agd2l0XG4gICAoS2ltIDA0LjA5LjIwMjYpLiBEZSBsaW5rZXJrb2xvbSB2YW4gZGV6ZSBtb2RhbCBpcyBsaWNodHBhYXJzLCBlbiBlZW5cbiAgIGJlc3RhbmRzcmlqIGRpZSBkYWFyIGxvcyBvcCBsaWd0IGxlZXN0IGFscyB0ZWtzdCBpbiBwbGFhdHMgdmFuIGFscyBlZW5cbiAgIG9iamVjdCBkYXQgamUgaGVidCBnZWtvcHBlbGQuIEFsbGVlbiBlZW4gb3BwZXJ2bGFrOiBkZSByaWogYmlubmVuaW4gaXNcbiAgIHFkbmFwcm8tbGlzdC1yb3cgZW4gaG91ZHQgemlqbiBlaWdlbiBtYXRlbi4gKi9cbi5wdWxzZS1zbS1kb2MtZnJhbWUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiA0cHggMTJweCA0cHggNHB4O1xufVxuXG4ucHVsc2Utc20tcm93IHsgZGlzcGxheTogZmxleDsgZ2FwOiAxMnB4OyBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgbWFyZ2luLXRvcDogMTRweDsgfVxuLnB1bHNlLXNtLXJvdyA+ICogeyBmbGV4OiAxIDEgMDsgbWluLXdpZHRoOiAwOyB9XG4ucHVsc2Utc20tZmllbGQgeyBtYXJnaW4tdG9wOiAxNHB4OyB9XG4ucHVsc2Utc20tZmllbGRbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1zbS1sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIDAgNnB4O1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG59XG4vKiAwMS4wOS4yMDI2OiAjcHVsc2Utc20tYm9keS1sYWJlbCB3b3JkdCBiaWogdmlkZW8vZG9jdW1lbnQvYWN0aWUgdmVyYm9yZ2VuXG4gICAoZGUgU3VidGVrc3QvT3BtYWFrLXBpbGwgSVMgZGFhciBoZXQgbGFiZWwpLiBgZGlzcGxheTogYmxvY2tgIGhpZXJib3ZlbiBpc1xuICAgZWVuIGF1dGV1ci1yZWdlbCBlbiB3aW50IHZhbiBoZXQgbmF0aXZlIGBbaGlkZGVuXWAgdmFuIGRlIGJyb3dzZXIsIG9uZ2VhY2h0XG4gICBzcGVjaWZpY2l0ZWl0IOKAlCB6b25kZXIgZGV6ZSByZWdlbCBibGlqZnQgaGV0IGxhYmVsIGdld29vbiBzdGFhbi4gWmVsZmRlXG4gICB2YWxrdWlsIGFscyBiaWogLnB1bHNlLXNtLWVkaXRvci1tb3VudFtoaWRkZW5dIGhpZXJib3Zlbi4gKi9cbi5wdWxzZS1zbS1sYWJlbFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLXNtLWhpbnQgeyBtYXJnaW46IDZweCAwIDA7IGZvbnQtc2l6ZTogMTEuNXB4OyBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7IH1cbi5wdWxzZS1zbS1lcnJvciB7IG1hcmdpbjogOHB4IDAgMDsgZm9udC1zaXplOiAxMi41cHg7IGNvbG9yOiAjZDg0NDJlOyB9XG4ucHVsc2Utc20tZXJyb3JbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1zbS1zdGF0dXMgeyBtYXJnaW46IDhweCAwIDA7IGZvbnQtc2l6ZTogMTIuNXB4OyBjb2xvcjogIzFkOWU3NTsgfVxuLnB1bHNlLXNtLXN0YXR1c1toaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBLYWFydCAyMSAocnVzdGlnZXIgc3RhcCAyKTogLnB1bHNlLXNtLWxhYmVsLXJvdyAoa2FhcnQgMTksIHB1bnQgNCDigJQgZGVcbiAgIGxvc3NlIGxhYmVscmlqIG1ldCBpLWtub3BqZSB2b29yIFN1YnRla3N0KSBpcyBWRVJXSUpERVJELiBEZSByZWdlbCBiZXN0YWF0XG4gICBuaWV0IG1lZXIgaW4gZGUgbWFya3VwIChkZXRhaWwuaHRtbCBnZWJydWlrdCBudSBxZG5hcHJvLWlucHV0J3MgZWlnZW5cbiAgIGBsYWJlbGArYGluZm9gLWF0dHJpYnV0ZW4sIHplbGZkZSBwYXRyb29uIGFscyBcIlZyYWFnIG9mIHRpdGVsXCIpLCBlbiBlciBpc1xuICAgZ2VlbiBhbmRlcmUgZ2VicnVpa2VyIHZhbiBkZXplIGtsYXNzZSBnZXZvbmRlbiAocmVwby1icmVkZSBncmVwKSDigJQgZHVzXG4gICBkZXplIENTUyBpcyBkb2RlIGNvZGUgZW4gaXMgaGllciB3ZWdnZWhhYWxkLiAqL1xuXG4vKiBEZSByZWRhY3RldXIgd29yZHQgYmlqIGhldCBvcGVuZW4gaW4gZGUgTElWRSBtb2RhbC1ib2R5IGdlbW9udGVlcmQsIGR1cyBkaXRcbiAgIGlzIGFsbGVlbiBoZXQgbGVnZSBoYWFramUgd2FhciBoaWogaW4gbGFuZHQuICovXG4ucHVsc2Utc20tZWRpdG9yLW1vdW50IHsgbWFyZ2luLXRvcDogMnB4OyB9XG5cbi8qIEthYXJ0IDQgKEJPQVJELXB1bHNlLW9wbWFhay1oeWJyaWRlLCAyNS4wOC4yMDI2KTogZGUgU3VidGVrc3QvT3BtYWFrLXBpbGxcbiAgIGJvdmVuIGVlbiB0ZWtzdHZlbGQgKEtsYXNzaWVrL0FjaHRlcmdyb25kL3BlaWxpbmcgZW4gVnJpaiB2b3JtZ2V2ZW4sIHppZVxuICAgcHVsc2VCb2R5Rm9ybWF0UGlsbEh0bWwoKSBpbiBkZXRhaWwuaHRtbCkuXG4gICBLYWFydCAxMSAoMjUuMDguMjAyNiwgS2ltcyBoZXJ6aWVuaW5nKTogaGV0IGkta25vcGplIGRhdCB2cm9lZ2VyIElOIGhldFxuICAgcWRuYXByby1pbnB1dC12ZWxkIHphdCAoYGluZm9gLWF0dHJpYnV1dCkgdmVyaHVpc3QgYmlqIGhldCBnZWRlZWxkZVxuICAgS2xhc3NpZWsvQWNodGVyZ3JvbmQtZXhlbXBsYWFyIG5hYXIgZGV6ZSBiYWxrLCByZWNodHMgdWl0Z2VsaWpuZCDigJQgZHVzIG51XG4gICB3ZWwgYGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbmAgbm9kaWcsIHplbGZkZSBnZW9tZXRyaWUtZ2VkYWNodGUgYWxzXG4gICAucHVsc2Utb3B0LXZpZXctYmFyIGhpZXJib3ZlbiAoa2FhcnQgNS8yMikuIEhldCBWcmlqIHZvcm1nZXZlbi1leGVtcGxhYXJcbiAgIGhlZWZ0IGdlZW4gaS1rbm9wamUgKGBpbmZvQnRuSWRgIGJsaWpmdCBkYWFyIG9uZ2V6ZXQpIGVuIHRvb250IGRhbiBnZXdvb25cbiAgIGRlIHBpbGwgYWxsZWVuOyBmbGV4IG1ldCDDqcOpbiBraW5kIGdlZHJhYWd0IHppY2ggaGV0emVsZmRlIGFscyB2w7PDs3IgZGV6ZVxuICAga2FhcnQuIGBbaGlkZGVuXWAgdmVyYmVyZ3QgZGUgSEVMRSBiYWxrIChuaWV0IGFsbGVlbiBoZXQgc2VnbWVudCBlcmluKTpcbiAgIGJpaiBWcmlqIHZvcm1nZXZlbiBiZXN0YWF0IGhldCBHRURFRUxERSBleGVtcGxhYXIgbmlldCAoZGF0IGhlZWZ0IHppam5cbiAgIGVpZ2VuIGJhciksIGVuIGRhbiBtYWcgZXIgb29rIGdlZW4gbGVnZSByZWdlbCBydWltdGUgb3ZlcmJsaWp2ZW4uICovXG4ucHVsc2UtYm9keS1mb3JtYXQtYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4ucHVsc2UtYm9keS1mb3JtYXQtYmFyW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIC0tLSBLYWFydCBNMTEgKEJPQVJELXB1bHNlLW1hcmt1cC12Miwgcm9uZGUgMywgMjcuMDguMjAyNik6IGVtb2ppLS9cbiAgIGljb29uLWtub3BqZXMgb25kZXIgZWxrIHN1YnRla3N0LXZlbGQgKyBodW4ga2xlaW5lIGRvbmtlcmUga2llemVycGFuZWxlblxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogRGUga25vcGplcyB6ZWxmOiByZWNodHMgdWl0Z2VsaWpuZCwgZGlyZWN0IG9uZGVyIGhldCB2ZWxkIChwbGF0IG9mXG4gICBXWVNJV1lHKSB3YWFyIHplIGJpaiBob3JlbiDigJQgemllIGRldGFpbC5odG1sJ3MgcHVsc2VJbmxpbmVQaWNrZXJCdG5zSHRtbCgpXG4gICB2b29yIGRlIHZpZXIgcGxla2tlbi4gKi9cbi5wdWxzZS1pbmxpbmUtcGlja2VyLWJ0bnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDRweDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG59XG5cbi8qIEhldCBlaWdlbiBkb25rZXJlIGtpZXplcnBhbmVlbCAoYC5wdWxzZS1pbmxpbmUtcGlja2VyYCArIHppam4gcmFzdGVyLCBrb3AsXG4gICB6b2VrdmVsZCwgZW1vamkta25vcGplcyBlbiBpY29vbi10ZWdlbHMpIGlzIG9wIDAyLjA5LjIwMjYgVkVSVkFMTEVOOiBiZWlkZVxuICAga2llemVycyB6aWpuIG51IGRlIGVjaHRlIGJpYmxpb3RoZWVrY29tcG9uZW50ZW4gcWRuYXByby1lbW9qaS1zaGVldCBlblxuICAgcWRuYXByby1zdGlja2VyLXNoZWV0IG1ldCB2YXJpYW50PVwicG9wb3ZlclwiLCBkaWUgaHVuIGVpZ2VuIHdpdHRlIGthYXJ0XG4gICBtZWVicmVuZ2VuLiBaaWUgaGV0IFR3aWctY29tbWVudGFhciBib3ZlbmFhbiBkZXRhaWwuaHRtbC5cbiAgIFdhdCBoaWVyIG1vZXN0IGJsaWp2ZW4gaXMgZGUgei1pbmRleC1yZWdlbCBib3ZlbmFhbiBkaXQgYmVzdGFuZCAoZGUgdHdlZVxuICAgY29tcG9uZW50c2NoaWxsZW4gemlqbiBkYWFyIHRvZWdldm9lZ2QpIGVuIGRlIGtub3BwZW5yaWogaGllcmJvdmVuLiAqL1xuXG4vKiAtLS0gS29wcGVscGFuZWVsIChGMy1XMyk6IHpvZWsgZW4ga2llcyDDqcOpbiBkb2N1bWVudCBvZiB2ZXJiZXRlcmFjdGllIC0tLS0gKi9cbi8qIERlIGxpanN0IGhlZWZ0IGVlbiBFSUdFTiBtYXhpbXVtaG9vZ3RlIG1ldCBlZW4gc21hbGxlLCBkb29yemljaHRpZ2UgYmFsa1xuICAgYmlubmVuIGhldCBjb21wb25lbnQgKGh1aXNyZWdlbCkg4oCUIHR3aW50aWcgcmVzdWx0YXRlbiB6b3VkZW4gZGUgbW9kYWwgYW5kZXJzXG4gICB0d2VlIHNjaGVybWVuIGhvb2cgbWFrZW4uICovXG4ucHVsc2Utc20tcGljay1yZXN1bHRzIHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWF4LWhlaWdodDogMjA4cHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZTVlNWVhKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG59XG4ucHVsc2Utc20tcGljay1yZXN1bHRzW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2Utc20tcGljay1yZXN1bHRzOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiA2cHg7IH1cbi5wdWxzZS1zbS1waWNrLXJlc3VsdHM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbi5wdWxzZS1zbS1waWNrLXJlc3VsdHM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDU3LCA2NiwgMTQ0LCAwLjIyKTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbn1cbi5wdWxzZS1zbS1waWNrLXJlc3VsdHMgeyBzY3JvbGxiYXItd2lkdGg6IHRoaW47IHNjcm9sbGJhci1jb2xvcjogcmdiYSg1NywgNjYsIDE0NCwgMC4yMikgdHJhbnNwYXJlbnQ7IH1cblxuLnB1bHNlLXNtLXBpY2staXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA5cHggMTJweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNWU1ZWEpO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuLnB1bHNlLXNtLXBpY2staXRlbTpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogMDsgfVxuLnB1bHNlLXNtLXBpY2staXRlbTpob3ZlciB7IGJhY2tncm91bmQ6ICNmN2Y4ZmY7IH1cbi5wdWxzZS1zbS1waWNrLWl0ZW06Zm9jdXMtdmlzaWJsZSB7IG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1mb2N1cy1yaW5nLCAjNTM0YWI3KTsgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IH1cbi5wdWxzZS1zbS1waWNrLWl0ZW0gcWRuYXByby1pY29uIHsgZmxleC1zaHJpbms6IDA7IGNvbG9yOiAjNmI2ODg0OyB9XG4ucHVsc2Utc20tcGljay10ZXh0cyB7IG1pbi13aWR0aDogMDsgZmxleDogMSAxIGF1dG87IH1cbi5wdWxzZS1zbS1waWNrLW5hbWUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICMxYzFlMmEpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5wdWxzZS1zbS1waWNrLXN1YiB7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5wdWxzZS1zbS1waWNrLW5vdGUge1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG59XG5cbi8qIERlIGdla296ZW4ga29wcGVsaW5nLiBIaWogc3RhYXQgQk9WRU4gaGV0IHpvZWt2ZWxkOiBkYXQgaXMgd2F0IGVyIHN0cmFrcyBpblxuICAgZGUgYXBwIGtvbXQgdGUgc3RhYW4sIGVuIGR1cyBoZXQgYW50d29vcmQgb3AgZGUgdnJhYWcgZGllIGRpdCBwYW5lZWwgc3RlbHQuICovXG4ucHVsc2Utc20tbGlua2VkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNlZWYwZmI7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOXB4O1xufVxuLnB1bHNlLXNtLWxpbmtlZFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLXNtLWxpbmtlZCBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgfVxuLnB1bHNlLXNtLWxpbmtlZC1uYW1lIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIEFudHdvb3Jkb3B0aWVzOiDDqcOpbiByaWogcGVyIG9wdGllLiAqL1xuLyogLS0tIEFudHdvb3Jkb3B0aWVzOiBlZW4ga2FhcnRqZSBwZXIgb3B0aWUgKDEyLjA4LjIwMjYsIEtpbSkgLS0tLS0tLS0tLS0tICovXG4vKiBFbGtlIG9wdGllIGlzIMOpw6luIGJsb2tqZSBtZXQgZGUgZ2VkZWVsZGUgcmlqIChxZG5hcHJvLWFuc3dlci1vcHRpb24pIGVuIGRlXG4gICB1aXRsZWcgZXJvbmRlci4gRGF0IGJsb2tqZSBpcyBvb2sgaGV0IGRpbmcgZGF0IGplIHNsZWVwdCwgem9kYXQgYW50d29vcmQgZW5cbiAgIHVpdGxlZyBzYW1lbiB2ZXJodWl6ZW4uXG4gKlxuICogV2Fhcm9tIGVlbiBrYWFydGplOiBtZXQgZWVuIHVpdGxlZ3ZlbGQgb25kZXIgw6lsa2Ugb3B0aWUgc3RvbmRlbiBlciBiaWogZHJpZVxuICogYW50d29vcmRlbiBuZWdlbiBldmVuIHp3YXJlIHZlbGRlbiBvbmRlciBlbGthYXIsIHpvbmRlciBkYXQgamUgemFnIHdhdCBiaWpcbiAqIGVsa2FhciBob29yZGUuIE51IHppZSBqZSBkcmllIGdyb2VwZW4uICovXG4ucHVsc2Utb3B0LXJvd3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAvKiBLYWFydCAxNyAoQk9BUkQtcHVsc2UtYW50d29vcmRvcHRpZXMtcmljaHRpbmctYywgMjUuMDguMjAyNik6IGdlZW5cbiAgICAgICBgZ2FwYCBtZWVyIOKAlCBkZSByaWplbiBsaWdnZW4gbnUgdGVnZW4gZWxrYWFyIGFhbiBpbiBoZXQgZ2VkZWVsZGUgZnJhbWVcbiAgICAgICAoLnB1bHNlLW9wdC1mcmFtZSBoaWVyb25kZXIpIGkucC52LiBsdWNodCB0dXNzZW4gbG9zc2UgcGFhcnNlXG4gICAgICAga2FhcnRqZXMuIEthYXJ0IDIxLWFhbnZ1bGxpbmc6IGRlIGR1bm5lIHNjaGVpZGluZ3NsaWpuIHR1c3NlbiByaWplblxuICAgICAgIChrYWFydCAxNykgaXMgaW5taWRkZWxzIG9vayB3ZWcgKGVsa2UgcmlqIGhlZWZ0IGFsIHppam4gZWlnZW4gcmFuZCk7XG4gICAgICAgZGUgcnVpbXRlIHR1c3NlbiByaWplbiBrb210IG51IGFsbGVlbiBub2cgdWl0IGRlIGVpZ2VuIHBhZGRpbmcgdmFuXG4gICAgICAgYC5wdWxzZS1vcHQtY2FyZGAgaGllcm9uZGVyLiAqL1xuICAgIC8qIEFua2VyIHZvb3IgZGUgZHJvcGxpam4gaGllcm9uZGVyLCBkaWUgYWJzb2x1dXQgaW4gZGV6ZSBsaWpzdCBoYW5ndC4gKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vIEthYXJ0IDE3IChCT0FSRC1wdWxzZS1hbnR3b29yZG9wdGllcy1yaWNodGluZy1jLCAyNS4wOC4yMDI2KTogw4nDiU4gb21saWpzdFxuLy8gZnJhbWUgb20gZGUgaGVsZSBvcHRpZWxpanN0LCBpbiBwbGFhdHMgdmFuIGhldCBsb3NzZSBwYWFyc2Uga2FhcnRqZSBwZXJcbi8vIG9wdGllIGhpZXJvbmRlciAoS2ltcyBkZXNpZ24tZmVlZGJhY2sgMjUuMDg6IFwib29ndCBkcnVrXCIpLiBWb3JtdGFhbFxuLy8gb3Zlcmdlbm9tZW4gdmFuIGAucHVsc2Utd2l6LWNsYXNzaWMtcHJldmlld2AgKHZlcmRlcm9wIGluIGRpdCBiZXN0YW5kKSBlblxuLy8gdmFuIGAucWRuYXByby1saXN0LXJvdy1ncm91cGAgKGNvbXBvbmVudHMvdjIvbGlzdC1yb3cvX2xpc3Qtcm93LnNjc3MpOlxuLy8gcmFuZCArIHdpdHRlIGthYXJ0YWNodGVyZ3JvbmQgKyBvdmVyZmxvdzpoaWRkZW4sIHpvZGF0IGRlIHJpamVuIGVyaW5cbi8vIGF1dG9tYXRpc2NoIGFhbiBkZSBob2VrZW4gd29yZGVuIGFmZ2VrYXB0LiBOSUVUIGRpZSBrbGFzc2UgemVsZlxuLy8gaGVyZ2VicnVpa3Q6IHppam4gZGl2aWRlci1zZWxlY3RvciAoYC5xZG5hcHJvLWxpc3Qtcm93Om5vdCg6bGFzdC1jaGlsZClgKVxuLy8gaXMgY29tcG9uZW50LXNwZWNpZmllayBlbiBvbnplIHJpamVuIHppam4gYC5wdWxzZS1vcHQtY2FyZGAtZGl2cywgZ2VlblxuLy8gcWRuYXByby1saXN0LXJvdyDigJQgYWxsZWVuIGRlIHRva2Vucy92b3JtdGFhbCB6aWpuIG92ZXJnZW5vbWVuLlxuLy9cbi8vIEJldmF0ICNwdWxzZS0oc218d2l6KS1vcHQtcm93cyBFTiBkZSB0b2V2b2VncmlqICgucHVsc2Utb3B0LWFkZCkgYWxzXG4vLyBTSUJMSU5HUywgZ2VlbiBvdWRlci9raW5kOiB6aWUgZGUgdG9lbGljaHRpbmcgYmlqIGRlIG1hcmt1cCBpblxuLy8gZGV0YWlsLmh0bWwgKGZpbmlzaERyYWdPZigpL3VwZGF0ZURyb3BMaW5lT2YoKSBsZXplbiBwb3NpdGllcyB2aWFcbi8vIGAucHVsc2Utb3B0LWNhcmRgLWtpbmRlcmVuIHZhbiAjcHVsc2Utb3B0LXJvd3M7IGRlIHRvZXZvZWdyaWogbWFnIGRhYXJcbi8vIG5pZXQgaW4gc3RhYW4sIGFuZGVycyBiZWxhbmR0IGVlbiBkcm9wLW9uZGVyYWFuIGVybmEpLlxuLnB1bHNlLW9wdC1mcmFtZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2U1ZTVlYSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gICAgLy8gS2FhcnQgMjEtYWFudnVsbGluZyAoS2ltKTogdG9wL2JvdHRvbS1sdWNodCBvcCBoZXQgRlJBTUUgaS5wLnYuIGVlblxuICAgIC8vIHVpdHpvbmRlcmluZyBvcCBkZSBlZXJzdGUvbGFhdHN0ZSBgLnB1bHNlLW9wdC1jYXJkYCDigJQgZGF0IGJsaWpmdCBkdXNcbiAgICAvLyDDicOJTiByZWdlbCB2b29yIGFsbGUgcmlqZW4gKHppZSBoaWVyb25kZXIpLiBBbGxlZW4gdG9wL2JvdHRvbSwgZ2VlblxuICAgIC8vIGxlZnQvcmlnaHQ6IGRlIHRvZXZvZWdyaWogKC5wdWxzZS1vcHQtYWRkLCBzaWJsaW5nIHZhbiAjcHVsc2UtKi1vcHQtXG4gICAgLy8gcm93cyBiaW5uZW4gZGl0IGZyYW1lKSBpcyBtZXQgb3B6ZXQgRURHRS1UTy1FREdFIGJyZWVkIG1ldCBlZW5cbiAgICAvLyBkYXNoZWQgYm9yZGVyLXRvcCBkaWUgZGUgdm9sbGUgZnJhbWVicmVlZHRlIG1vZXQgcmFrZW4g4oCUIGxlZnQvcmlnaHQtXG4gICAgLy8gcGFkZGluZyBoaWVyIHpvdSBkaWUgcmFuZCBuYWFyIGJpbm5lbiB0cmVra2VuIGVuIGhldCBcInZlcnZvbGcgdmFuIGRlXG4gICAgLy8gbGlqc3RcIi1lZmZlY3QgYnJla2VuLlxuICAgIHBhZGRpbmc6IDZweCAwO1xufVxuXG4vKiBLYWFydCAxOSwgcHVudCAzIChLaW0pOiBmb3V0c3RhbmQgdmFuIGhldCBHRURFRUxERSBvcHRpZWJsb2sg4oCUIGdlZW5cbiAgIGNvbXBvbmVudC1zY2hpbCwgd2FudCBxZG5hcHJvLWFuc3dlci1vcHRpb24gaGVlZnQgZ2VlbiBlaWdlbiBgZXJyb3JgL1xuICAgYGNoZWNrVmFsaWRpdHkoKWAgKHppZSBzaG93T3B0aW9uc0Vycm9yKCkvY2xlYXJPcHRpb25zRXJyb3IoKSBpblxuICAgZGV0YWlsLmh0bWwpLiBgLnB1bHNlLW9wdC1jYXJkLS1lcnJvcmAgd2lqc3QgZWVuIHNwZWNpZmlla2UgbGVnZSByaWogYWFuXG4gICAodGUgd2VpbmlnIGluZ2V2dWxkZSBvcHRpZXMpOyBkZSBib29kc2NoYXAgZXJvbmRlciBnZWxkdCB2b29yIGhldCBoZWxlXG4gICBibG9rLCBvb2sgd2FubmVlciBlciBnZWVuIGFhbndpanNiYXJlIHJpaiBpcyAoYnYuIFwiZ2VlbiBqdWlzdCBhbnR3b29yZFwiKS5cbiAgIFplbGZkZSBvcG1hYWsgYWxzIHFkbmFwcm8taW5wdXQncyBlaWdlbiBmb3V0cmVnZWwgKGljb24gKyByb2RlIHRla3N0LCB6aWVcbiAgIC5pbnB1dC1tZXNzYWdlLWVycm9yIGluIGNvbXBvbmVudHMvdjIvaW5wdXQvX2lucHV0LnNjc3MpLiAqL1xuLnB1bHNlLW9wdC1jYXJkLS1lcnJvciBxZG5hcHJvLWFuc3dlci1vcHRpb24ge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDEuNXB4IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0KTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG4ucHVsc2Utb3B0LXJvd3MtZXJyb3ItbXNnIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWFyZ2luOiA4cHggMCAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQpO1xufVxuXG4vKiBEZSB6YWNodGUgYWxsZXMtanVpc3Qtd2FhcnNjaHV3aW5nIG9uZGVyIGhldCBvcHRpZWJsb2sgKEtpbSAwNC4wOS4yMDI2KTpcbiAgIHplbGZkZSB2b3JtIGFscyBkZSBmb3V0cmVnZWwgaGllcmJvdmVuLCBtYWFyIGFtYmVyIC0gaGV0IGlzIGVlbiBoZWFkcy11cFxuICAgb3ZlciBkZSBwdW50ZW50ZWxsaW5nLCBnZWVuIGZvdXQgZGllIGhldCBvcHNsYWFuIHRlZ2VuaG91ZHQuICovXG4ucHVsc2Utb3B0LWFsbGNvcnJlY3Qtd2FybiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIG1hcmdpbjogOHB4IDAgMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6IHZhcigtLWMtd2Fybi1hbWJlci02MDApO1xufVxuLnB1bHNlLW9wdC1hbGxjb3JyZWN0LXdhcm4gcWRuYXByby1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cbi5wdWxzZS1vcHQtYWxsY29ycmVjdC13YXJuW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ucHVsc2Utb3B0LXJvd3MtZXJyb3ItbXNnW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2Utb3B0LXJvd3MtZXJyb3ItbXNnIHFkbmFwcm8taWNvbiB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyBmbGV4LXNocmluazogMDsgfVxuXG4ucHVsc2Utb3B0LWNhcmQge1xuICAgIC8qIEthYXJ0IDE3IChCT0FSRC1wdWxzZS1hbnR3b29yZG9wdGllcy1yaWNodGluZy1jLCAyNS4wOC4yMDI2KTogR0VFTlxuICAgICAgIGVpZ2VuIGFjaHRlcmdyb25kL2Fmcm9uZGluZyBtZWVyIOKAlCBkYXQgd2FzIGhldCBwYWFyc2Uga2FhcnRqZS1wZXItcmlqXG4gICAgICAgZGF0IEtpbSB0ZSBkcnVrIHZvbmQuIERlIHJpaiBsZWVmdCBudSBpbiBoZXQgZ2VkZWVsZGUgLnB1bHNlLW9wdC1mcmFtZVxuICAgICAgIGhpZXJib3ZlbjsgcWRuYXByby1hbnN3ZXItb3B0aW9uIGhvdWR0IHppam4gZWlnZW4gcmFuZCwgZW4gZGF0IGJsaWpmdFxuICAgICAgIGhldCBcImhpZXIga3VuIGplIHR5cGVuXCItc2lnbmFhbCAob25nZXdpanppZ2QgdC5vLnYuIHbDs8OzciBkZXplIGthYXJ0KS4gKi9cbiAgICAvKiBSdWltdGUgbGlua3Mgdm9vciBkZSBzbGVlcGdyZWVwLCBlbiBgcmVsYXRpdmVgIGFscyBhbmtlciBkYWFydm9vci4gKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLy8gS2FhcnQgMjEtYWFudnVsbGluZyAoS2ltLCBnZW1ldGVuKTogd2FzIDEwcHggYm92ZW4vb25kZXIg4oCUIGRhdCB0ZWxkZVxuICAgIC8vIHR1c3NlbiB0d2VlIHJpamVuIGR1YmJlbCBvcCB0b3QgMjBweCwgcnVpbWVyIGRhbiBLaW0gd2lsZGUuIDZweCBtYWFrdFxuICAgIC8vIGRhdCAxMnB4IHR1c3NlbiByaWplbiAoNis2KSB6b25kZXIgZGF0IGRlIHJpamVuIHRlZ2VuIGVsa2FhciBwbGFra2VuOlxuICAgIC8vIHFkbmFwcm8tYW5zd2VyLW9wdGlvbiBob3VkdCB6aWpuIGVpZ2VuIHJhbmQgKyBpbnRlcm5lIHBhZGRpbmcsIGR1cyBlclxuICAgIC8vIGJsaWpmdCBhZGVtcnVpbXRlIHR1c3NlbiBkaWUgcmFuZCBlbiBkZSB2b2xnZW5kZSByaWouIFppZVxuICAgIC8vIC5wdWxzZS1vcHQtZnJhbWUgaGllcmJvdmVuIHZvb3IgZGUgbG9zc2UgdG9wL2JvdHRvbS1sdWNodCB2YW4gaGV0XG4gICAgLy8gZnJhbWUgemVsZiAoZWVyc3RlL2xhYXRzdGUgcmlqKS5cbiAgICBwYWRkaW5nOiA2cHggOHB4IDZweCAxNnB4O1xuICAgIC8qIEhldCBrYWFydGplIGlzIHNsZWVwYmFhcjsgem9uZGVyIGRpdCBwYWt0IGRlIGJyb3dzZXIgZGUgdGVrc3RzZWxlY3RpZSBvcFxuICAgICAgIGluIHBsYWF0cyB2YW4gaGV0IGJsb2suIEhldCBpbnZvZXJ2ZWxkIHpldCBoZXQgemVsZiB3ZWVyIGFhbiAoaGllcm9uZGVyKSxcbiAgICAgICBhbmRlcnMga3VuIGplIGplIGVpZ2VuIGFudHdvb3JkIG5pZXQgbWVlciBzZWxlY3RlcmVuLiAqL1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuLnB1bHNlLW9wdC1jYXJkIGlucHV0LFxuLnB1bHNlLW9wdC1jYXJkIHRleHRhcmVhIHsgdXNlci1zZWxlY3Q6IHRleHQ7IH1cblxuLy8gS2FhcnQgMjEtYWFudnVsbGluZyAoS2ltLCBCT0FSRC1wdWxzZS1hbnR3b29yZG9wdGllcy1yaWNodGluZy1jKTogZGVcbi8vIHNjaGVpZGluZ3NsaWpuIHR1c3NlbiByaWplbiAoa2FhcnQgMTc6IGJvcmRlci10b3Agb3AgLnB1bHNlLW9wdC1jYXJkICtcbi8vIC5wdWxzZS1vcHQtY2FyZCkgaXMgVkVSV0lKREVSRCDigJQgZWxrZSByaWogaGVlZnQgYWwgemlqbiBlaWdlbiByYW5kXG4vLyAocWRuYXByby1hbnN3ZXItb3B0aW9uKSwgZHVzIGRlIGxpam4gdm9lZ2RlIG5pZXRzIHRvZSBlbiBrb3N0dGUgYWxsZWVuXG4vLyBob29ndGUuIEhldCBmcmFtZSB6ZWxmICgucHVsc2Utb3B0LWZyYW1lIGhpZXJib3ZlbikgZW4gZGUgcmFuZCByb25kIGVsa2Vcbi8vIHJpaiBibGlqdmVuIHN0YWFuOyBhbGxlZW4gZGV6ZSBsb3NzZSBsaWpuIHR1c3NlbiByaWplbiBpcyB3ZWcuIERlXG4vLyBnZXN0aXBwZWxkZSBzY2hlaWRpbmcgYm92ZW4gXCJPcHRpZSB0b2V2b2VnZW5cIiAoLnB1bHNlLW9wdC1mcmFtZVxuLy8gLnB1bHNlLWFkZC1iYXIsIGluIF9wdWxzZS5zY3NzL2hhcm5lc3MpIGJsaWpmdCBPTkdFV0lKWklHRCDigJQgZGllIG1hcmtlZXJ0XG4vLyBpZXRzIGFuZGVycyAoZWluZGUgdmFuIGRlIGxpanN0LCBiZWdpbiB2YW4gZGUgdG9ldm9lZy1hY3RpZSkuXG5cbi8qIERlIHJpaiBob3VkdCB6aWpuIGVpZ2VuIHJhbmQgZW4gd2l0dGUgdmxhayDigJQgZGF0IGlzIGRlIGFmZm9yZGFuY2UgdmFuIGVlblxuICAgaW52b2VydmVsZCwgZW4gb29rIHByZWNpZXMgaG9lIGhpaiBlciBpbiBkZSBmbG93LWVkaXRvciB1aXR6aWV0LiAqL1xuLnB1bHNlLW9wdC1jYXJkIHFkbmFwcm8tYW5zd2VyLW9wdGlvbiB7IGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7IH1cblxuLyogR2VlbiBpbnNwcmluZ2luZyAoS2ltIDEyLjA4LjIwMjYpOiBoZXQgdWl0bGVndmVsZCBsaWpudCBsaW5rcyBwcmVjaWVzIHVpdCBtZXRcbiAgIGhldCBhbnR3b29yZHZlbGQgZXJib3Zlbi4gSW5nZXNwcm9uZ2VuIGxlZWsgaGV0IGVlbiBiaWpsYWdlIHZhbiBpZXRzIGFuZGVycztcbiAgIG9uZGVyIGVsa2FhciBsZXplbiB6ZSBhbHMgdHdlZSB2ZWxkZW4gdmFuIGRlemVsZmRlIG9wdGllLiAqL1xuLyogRGUgc2xlZXBncmVlcCB2YW4gaGV0IEtBQVJUSkUgKDEyLjA4LjIwMjYsIEtpbSkuIFphdCBlZXJzdCBpbiBkZSByaWogemVsZlxuICAgKGBkcmFnZ2FibGUtaGFuZGxlYCBvcCBxZG5hcHJvLWFuc3dlci1vcHRpb24pLCBtYWFyIGplIHZlcnNsZWVwdCBoZXQgaGVsZVxuICAga2FhcnRqZSBpbmNsdXNpZWYgZGUgdWl0bGVnIOKAlCBlZW4gZ3JlZXAgZGllIGFsbGVlbiBkZSBib3ZlbnN0ZSByaWogb21zcGFudFxuICAgYmVsb29mdCBkYW4gaGV0IHZlcmtlZXJkZS5cbiAgIFplbGZkZSB2b3JtIGVuIGdlZHJhZyBhbHMgZGUgZ3JlZXAgw61uIGhldCBjb21wb25lbnQgKHBhYXJzZSBiYWxrIGxpbmtzLFxuICAgemljaHRiYWFyIGJpaiBob3ZlciksIG1hYXIgb3ZlciBkZSBWT0xMRSBob29ndGUgdmFuIGhldCBrYWFydGplLCB6b2RhdCBqZSB6aWV0XG4gICBkYXQgZGUgaGVsZSBncm9lcCBtZWVnYWF0LiAqL1xuLnB1bHNlLW9wdC1ncmlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNXB4O1xuICAgIC8vIEthYXJ0IDIxLWFhbnZ1bGxpbmc6IHZvbGd0IGRlIHBhZGRpbmctdmVybGFnaW5nIHZhbiAucHVsc2Utb3B0LWNhcmRcbiAgICAvLyBoaWVyYm92ZW4gKDEwcHgg4oaSIDZweCksIHpvZGF0IGRlIGdyZWVwIHdlZXIgZXZlbiB2ZXIgdmFuIGRlIHJhbmRcbiAgICAvLyB2YW4gZGUgcmlqIGluc3ByaW5ndCBhbHMgZGUga2FhcnQtcGFkZGluZyB6ZWxmLlxuICAgIHRvcDogNnB4O1xuICAgIGJvdHRvbTogNnB4O1xuICAgIHdpZHRoOiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGVhc2U7XG4gICAgLyogV8OpbCBhYW53aWpzYmFhciAoZHVzIGdlZW4gcG9pbnRlci1ldmVudHM6IG5vbmUgem9hbHMgZGUgZ3JlZXAgw61uIGhldFxuICAgICAgIGNvbXBvbmVudCk6IGRlIGN1cnNvciBtb2V0IGhpZXIgZWVuIGdyaWpwaGFuZGplIHdvcmRlbi4gSWV0cyBicmVkZXJcbiAgICAgICBhYW5yYWFrZ2ViaWVkIGRhbiBkZSA0cHggZGllIGplIHppZXQsIHZpYSBlZW4gb256aWNodGJhcmUgcmFuZCBlcm9taGVlbi4gKi9cbiAgICBjdXJzb3I6IGdyYWI7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBjb250ZW50LWJveDtcbn1cbi5wdWxzZS1vcHQtY2FyZDpob3ZlciAucHVsc2Utb3B0LWdyaXAgeyBvcGFjaXR5OiAxOyB9XG4vKiBIZXQgaGVsZSBrYWFydGplIGlzIHNsZWVwYmFhciwgZHVzIG92ZXJhbCBoZXQgZ3JpanBoYW5kamUg4oCUIGFuZGVycyBiZWxvb2Z0XG4gICBhbGxlZW4gZGUgYmFsayBsaW5rcyBkYXQgamUga3VudCBzbGVwZW4gdGVyd2lqbCBoZXQgb3ZlcmFsIHdlcmt0LiAqL1xuLnB1bHNlLW9wdC1jYXJkIHsgY3Vyc29yOiBncmFiOyB9XG4vKiBNYWFyIG5pZXQgYm92ZW4gZGUgdmVsZGVuIHplbGY6IGRhYXIgd2lsIGplIGVlbiB0ZWtzdGN1cnNvci4gKi9cbi5wdWxzZS1vcHQtY2FyZCBxZG5hcHJvLWlucHV0LFxuLnB1bHNlLW9wdC1jYXJkIGlucHV0LFxuLnB1bHNlLW9wdC1jYXJkIHRleHRhcmVhIHsgY3Vyc29yOiBhdXRvOyB9XG4ucHVsc2Utb3B0LWNhcmQgcWRuYXByby1hbnN3ZXItb3B0aW9uIHsgY3Vyc29yOiBncmFiOyB9XG4ucHVsc2Utb3B0LWNhcmQgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fbGFiZWwgeyBjdXJzb3I6IGF1dG87IH1cbi8qIFRpamRlbnMgaGV0IHNsZXBlbjogZ2VzbG90ZW4gaGFuZC4gKi9cbi5wdWxzZS1vcHQtY2FyZFtkYXRhLXNsZXBlbmRdLFxuLnB1bHNlLW9wdC1jYXJkW2RhdGEtc2xlcGVuZF0gLnB1bHNlLW9wdC1ncmlwLFxuLnB1bHNlLW9wdC1jYXJkW2RhdGEtc2xlcGVuZF0gcWRuYXByby1hbnN3ZXItb3B0aW9uIHsgY3Vyc29yOiBncmFiYmluZzsgfVxuLyogVGlqZGVucyBoZXQgc2xlcGVuIGJsaWpmdCBoaWogc3RhYW4sIG9vayBhbHMgZGUgbXVpcyBoZXQga2FhcnRqZSB2ZXJsYWF0LiAqL1xuLnB1bHNlLW9wdC1jYXJkW2RhdGEtc2xlcGVuZF0gLnB1bHNlLW9wdC1ncmlwIHsgb3BhY2l0eTogMTsgfVxuXG4vLyBLYWFydCA4IChCT0FSRC1wdWxzZS1vcG1hYWstaHlicmlkZSwgMjUuMDguMjAyNik6IHJvbmRqZSArIHZlbGQgb3Agw6nDqW5cbi8vIHJpai4gYGRpc3BsYXk6ZmxleGAgZ2VsZHQgaW4gQkVJREUgc3RhbmRlbiAoQW50d29vcmRlbi1zdGFuZCB2ZXJiZXJndCBoZXRcbi8vIGhlbGUgYmxvayB2aWEgYGRpc3BsYXk6bm9uZWAgaGllcmJvdmVuLCBtZXQgaG9nZXJlIHNwZWNpZmljaXRlaXQg4oCUIHppZVxuLy8gYC5wdWxzZS1vcHQtcm93czpub3QoW2RhdGEtdmlldz1cImV4cGxhaW5cIl0pIC5wdWxzZS1vcHQtd2h5YCksIGR1cyBkaXQgaXNcbi8vIGdlZW4gZHViYmVsZSByZWdlbCBwZXIgc3RhbmQgem9hbHMgdsOzw7NyIGRlemUga2FhcnQuXG4vL1xuLy8gS2FhcnQgMTNjIChCT0FSRC1wdWxzZS1vcG1hYWstaHlicmlkZSwgMjYuMDguMjAyNiwgS2ltcyBhbm5vdGF0aWUpOiBoZXRcbi8vIHJvbmRqZSBzdG9uZCBoaWVyIE5BQVNUIGhldCB2ZWxkIOKAlCBLaW0gd2lsIGhlbSBFUklOLCBsaW5rcyB2YW4gZGUgdGVrc3QsXG4vLyB6b2FscyBpbiBkZSBhbnR3b29yZG9wdGllLXJpamVuLiBgcG9zaXRpb246IHJlbGF0aXZlYCBpcyBoZXQgYW5rZXIgdm9vclxuLy8gYC5wdWxzZS1vcHQtd2h5LW1hcmtgIGhpZXJvbmRlciwgZGF0IG51IGFic29sdXV0IHBvc2l0aW9uZWVydC4gRGUgbWFya3VwXG4vLyAoc3BhbiB2w7PDs3IgZGUgcWRuYXByby1pbnB1dCkgaXMgT05HRVdJSlpJR0Qg4oCUIGFsbGVlbiBkZSBwbGFhdHNpbmcgaXMgQ1NTLlxuLnB1bHNlLW9wdC13aHkge1xuICAgIG1hcmdpbjogNnB4IDAgMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLyBIZXQgVWl0bGVnLXJvbmRqZTogMS1vcC0xIGRlemVsZmRlIGtsYXNzZSBhbHMgZGUgY3Jvc3MtY2hlY2sta25vcCBvcFxuLy8gYHFkbmFwcm8tYW5zd2VyLW9wdGlvbmAgKGAucWRuYXByby1hbnN3ZXItb3B0aW9uX19tYXJrYCBpblxuLy8gX2Fuc3dlci1vcHRpb24uc2NzcywgbWV0IGRlemVsZmRlIGlzLW1hcmtlZC9pcy13cm9uZy1tb2RpZmllcnMpIOKAlCBiZXd1c3Rcbi8vIEdFRU4gbmlldXcgY29tcG9uZW50LCBhbGxlZW4gZGUga2xhc3NlIGhlcmdlYnJ1aWt0IG9wIGVlbiBrYWFsIGA8c3Bhbj5gLlxuLy8gVHdlZSBkaW5nZW4gcGFnZS1zY29wZWQgdGVydWdnZWRyYWFpZCB0Lm8udi4gZGUga25vcC12YXJpYW50OiBkaXQgaXMgZWVuXG4vLyBJTkRJQ0FUSUUgKGdlZW4gYmVkaWVuaW5nc2VsZW1lbnQsIHppZSBhZGRPcHRpb25Sb3dPZiBpbiBkZXRhaWwuaHRtbCksXG4vLyBkdXMgYGN1cnNvcjogcG9pbnRlcmAgZW4gZGUgYG1hcmdpbi1sZWZ0OiAxMHB4YCBkaWUgZGFhciBkZSBrbm9wIHZhbiBkZVxuLy8gcmlqIGVydm9vciBhZnN0YW5kIGdlZWZ0IChoaWVyIG92ZXJib2RpZywgYGdhcGAgb3AgYC5wdWxzZS1vcHQtd2h5YFxuLy8gcmVnZWx0IGRlIGFmc3RhbmQgdG90IGhldCB2ZWxkIGFsIOKAlCB2w7PDs3Iga2FhcnQgMTNjKS5cbi8vXG4vLyBLYWFydCAxM2M6IGBwb3NpdGlvbjogYWJzb2x1dGVgIChvdmVyc2NocmlqZnQgZGUgYHBvc2l0aW9uOiByZWxhdGl2ZWAgdmFuXG4vLyBkZSBiYXNpc2tsYXNzZSBgLnFkbmFwcm8tYW5zd2VyLW9wdGlvbl9fbWFya2AsIHplbGZkZSBjYXNjYWRlLXRydWMgYWxzIGRlXG4vLyBgbWFyZ2luLWxlZnRgLW92ZXJyaWRlIGhpZXJib3ZlbikgbGVndCBoZXQgcm9uZGplIElOIGhldCB2ZWxkLCB0ZWdlbiBkZVxuLy8gbGlua2VycmFuZC4gYHRvcDogNXB4YCBsaWpudCBoZW0gdWl0IG9wIGRlIEVFUlNURSB0ZWtzdHJlZ2VsICh0aW55L1xuLy8gZXhwYW5kaW5nOiBwYWRkaW5nLXRvcCA2cHggKyBsaW5lLWhlaWdodCAyMHB4KSwgbmlldCB2ZXJ0aWNhYWwgZ2VjZW50cmVlcmRcbi8vIG92ZXIgaGV0IGhlbGUgdmVsZCDigJQgYmV3dXN0IGRlemVsZmRlIGtldXplIGFscyBkZSBiZXN0YWFuZGVcbi8vIGAuaW5wdXQtbGVhZGluZy1pY29uYCB2YW4gZWVuIGV4cGFuZGluZy12ZWxkIChfaW5wdXQuc2NzczogYGFsaWduLXNlbGY6XG4vLyBmbGV4LXN0YXJ0OyBtYXJnaW4tdG9wOiA4cHhgLCBvb2sgdG9wLXVpdGdlbGlqbmQgaS5wLnYuIGdlY2VudHJlZXJkKSwgd2FudFxuLy8gZGl0IHZlbGQgZ3JvZWl0IChrYWFydCAxM2IpIGVuIGVlbiBnZWNlbnRyZWVyZCByb25kamUgem91IGJpaiBlZW4gbGFuZ2Vcbi8vIHVpdGxlZyBlcmdlbnMgbWlkZGVuIGluIGRlIHRla3N0IGtvbWVuIHRlIHp3ZXZlbi4gYGxlZnQ6IDhweGAgc2x1aXQgYWFuIGJpalxuLy8gZGUgMTBweC1pbnNwcmluZ2luZyB2YW4gaGV0emVsZmRlIHJvbmRqZSBpbiBkZSBhbnR3b29yZG9wdGllLXJpalxuLy8gKGAucWRuYXByby1hbnN3ZXItb3B0aW9uX19tYXJrIHsgbWFyZ2luLWxlZnQ6IDEwcHggfWAgaW5cbi8vIF9hbnN3ZXItb3B0aW9uLnNjc3MpOyAycHggbWluZGVyIG9tZGF0IGRlIHJvbmRqZS1yYW5kIGhpZXIgdmxhayB0ZWdlbiBkZVxuLy8gdmVsZHJhbmQgbGlndCBpbiBwbGFhdHMgdmFuIGVlbiBhcGFydGUgcmlqIGVydm9vci4gYC5wdWxzZS1vcHQtd2h5LXRleHRgXG4vLyBoaWVyb25kZXIga3Jpamd0IGBwYWRkaW5nLWxlZnQ6IDQwcHhgIG9wIHppam4gdGV4dGFyZWEgem9kYXQgZGUgdGVrc3QgbmlldFxuLy8gb25kZXIgaGV0IHJvbmRqZSBzY2h1aWZ0ICg4ICsgMjJweCByb25kamUgKyB+MTBweCBsdWNodHJ1aW10ZSkuXG4ucHVsc2Utb3B0LXdoeS1tYXJrIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDhweDtcbiAgICB0b3A6IDVweDtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4vLyBLYWFydCA1IChCT0FSRC1wdWxzZS1hbnR3b29yZG9wdGllcy1yaWNodGluZy1jLCAyNS4wOC4yMDI2KTogQ1NTIHZvb3IgZGVcbi8vIEFudHdvb3JkZW4vVWl0bGVnLXN0YW5kLiBWZXJodWlzZCBvcCAyNS4wOC4yMDI2IHVpdFxuLy8gZW5zdXJlUHVsc2VPcHRWaWV3U3R5bGVzKCkgaW4gZGV0YWlsLmh0bWwg4oCUIGRhdCB3YXMgdG90IG51IHRvZSBlZW5cbi8vIEpTLWdlw69uamVjdGVlcmQgPHN0eWxlPi1ibG9rIGluIDxoZWFkPiwgb21kYXQga2FhcnQgNSBkZXN0aWpkcyBBTExFRU5cbi8vIGRldGFpbC5odG1sLCBkZSBsb2NhbGUtYmVzdGFuZGVuIGVuIGRlIGhhcm5lc3MgbW9jaHQgcmFrZW4gKGdlZW4gd2lqemlnaW5nXG4vLyBhYW4gZGV6ZSBTQ1NTLXBhcnRpYWwsIGR1cyBnZWVuIGJ1aWxkIG5vZGlnKS4gRGV6ZSB2ZXJodWl6aW5nIHZlcmFuZGVydFxuLy8gZ2VlbiBzZWxlY3RvcnMgb2Ygd2FhcmRlbiwgYWxsZWVuIGRlIHBsZWsgd2FhciB6ZSB2YW5kYWFuIGtvbWVuLlxuLyogS2FhcnQgMjIgKEtpbSwgMjUuMDguMjAyNik6IMOpw6luIHJlZ2VsIGJvdmVuIGhldCBvcHRpZWZyYW1lIG1ldCBMSU5LUyBkZVxuICAgQW50d29vcmRlbi9VaXRsZWctc2NoYWtlbGFhciBlbiBSRUNIVFMgZGUgXCJtZWVyZGVyZSBhbnR3b29yZGVuIGp1aXN0XCItXG4gICB0b2dnbGUuIERpZSB0b2dnbGUgemF0IGVlcnN0IGluIGVlbiBlaWdlbiBxZG5hcHJvLWxpc3Qtcm93IG1ldCB0aXRlbCDDqW5cbiAgIHN1YnRpdGVsIGVyb25kZXI6IHR3ZWUgcmVnZWxzIHRla3N0IGRpZSB6ZWlkZW4gd2F0IGRlIHRvZ2dsZSB6ZWxmIGFsIHplZ3QuXG4gICBEZSBtYXJnZSB6aXQgbnUgb3AgZGV6ZSBiYWxrLCBuaWV0IG1lZXIgb3AgaGV0IHNlZ21lbnQgKGFuZGVycyB0ZWx0IGhpalxuICAgZHViYmVsIHpvZHJhIGRlIGJhbGsgemVsZiBydWltdGUgaG91ZHQpLiBgbWluLWhlaWdodGAgaG91ZHQgZGUgcmVnZWwgc3RhYmllbFxuICAgd2FubmVlciDDqcOpbiB2YW4gZGUgdHdlZSB2ZXJib3JnZW4gaXMgKHBlaWxpbmc6IGdlZW4gc2VnbWVudCwgZ2VlbiB0b2dnbGUpLiAqL1xuLnB1bHNlLW9wdC12aWV3LWJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgbWluLWhlaWdodDogMjhweDtcbn1cbi5wdWxzZS1vcHQtdmlldy1zZWdbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLyogSGV0IGxhYmVsIGhvb3J0IEJJSiBkZSB0b2dnbGUgKGhldCBpcyBlZW4gPGxhYmVsPiksIGR1cyBlZW4ga2xpayBvcCBkZSB0ZWtzdFxuICAgc2NoYWtlbHQgaGVtIG9vayDigJQgZGFhcm9tIGdlZW4gbG9zIDxzcGFuPiBlcm5hYXN0IG1hYXIgZGV6ZSB3cmFwcGVyLiAqL1xuLnB1bHNlLW9wdC1tdWx0aSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbjogMCAwIDAgYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ucHVsc2Utb3B0LW11bHRpW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2Utb3B0LW11bHRpLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbn1cblxuLnB1bHNlLW9wdC1yb3dzIHtcbiAgICAvLyBBbnR3b29yZGVuLXN0YW5kIChkZWZhdWx0KTogZGUgcmlqIGlzIHdlZXIgw6nDqW4gdmVsZCBicmVlZCDigJQgdWl0bGVnIGVuXG4gICAgLy8gdGl0ZWwtbWlycm9yIGJsaWp2ZW4gdmVyYm9yZ2VuLiAoS2FhcnQgODogZGUgbG9zc2UgSnVpc3QvRm91dC10YWcgZGllXG4gICAgLy8gaGllciBvb2sgc3RvbmQgaXMgdmVyd2lqZGVyZCwgemllIF9hbnN3ZXItb3B0aW9uLWFjaHRpZ2Ugcm9uZGplXG4gICAgLy8gaGllcm9uZGVyIOKAlCBkYXQgcm9uZGplIGxlZWZ0IElOIC5wdWxzZS1vcHQtd2h5IGVuIHZlcmJlcmd0IGR1cyBtZWUuKVxuICAgICY6bm90KFtkYXRhLXZpZXc9XCJleHBsYWluXCJdKSB7XG4gICAgICAgIC5wdWxzZS1vcHQtd2h5LFxuICAgICAgICAucHVsc2Utb3B0LWV4cGxhaW4tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVpdGxlZy1zdGFuZDogbGVnZSBvcHRpZXMgYmVzdGFhbiBoaWVyIG5pZXQsIGRlIGludGVyYWN0aWV2ZSByaWogZW5cbiAgICAvLyBkZSBzbGVlcGdyZWVwIHZlcmR3aWpuZW4gKG5pZXQgc2xlZXBiYWFyIGluIGRlemUgc3RhbmQpLCBkZSB1aXRsZWdcbiAgICAvLyB3b3JkdCB2b2xsZSBicmVlZHRlLlxuICAgICZbZGF0YS12aWV3PVwiZXhwbGFpblwiXSB7XG4gICAgICAgIC5wdWxzZS1vcHQtY2FyZC0tZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgIC5wdWxzZS1vcHQtY2FyZCB7IGN1cnNvcjogZGVmYXVsdDsgfVxuICAgICAgICAucHVsc2Utb3B0LWdyaXAsXG4gICAgICAgIC5wdWxzZS1vcHQtY2FyZCA+IHFkbmFwcm8tYW5zd2VyLW9wdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5wdWxzZS1vcHQtZXhwbGFpbi10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy1wdXJwbGUtOTAwLCAjMWMyMTQwKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDZweDtcbiAgICAgICAgfVxuICAgICAgICAucHVsc2Utb3B0LXdoeSB7IG1hcmdpbjogMDsgfVxuICAgIH1cbn1cblxuLy8gS2FhcnQgNSBvcHJ1aW1lbiAoMjUuMDguMjAyNik6IGAucHVsc2Utb3B0LXJvd3MtLXNwbGl0YCAoa2FhcnQgMTcsXG4vLyB6aWotYWFuLXppai11aXRsZWcgaW4gZGUgb3VkZSBzdGFwLW1vZGFsKSBpcyBkb2RlIENTUyBnZXdvcmRlbiDigJQgZGVcbi8vIG1hcmt1cC1rbGFzc2Ugd29yZHQgc2luZHMga2FhcnQgNSBuZXJnZW5zIG1lZXIgZ2V6ZXQgKGdldmVyaWZpZWVyZCBtZXRcbi8vIGVlbiByZXBvLWJyZWRlIGdyZXApLiBCZXd1c3QgdmVyd2lqZGVyZCBpLnAudi4gbGF0ZW4gc3RhYW4uXG5cbi8qIEhldCB1aXRsZWd2ZWxkIHZvbGd0IGRlIEFOVFdPT1JEUkVHRUwgZXJib3ZlbiwgbmlldCBkZSBzdGFuZGFhcmQtaW5wdXQuXG4gKlxuICogR2VtZXRlbiB2ZXJzY2hpbCB2w7PDs3IgZGV6ZSByZWdlbHM6IGFudHdvb3JkIDEycHgvZ2V3aWNodCA0MDAgaW4gZG9ua2VyYmxhdXcsXG4gKiB1aXRsZWcgMTNweC9nZXdpY2h0IDUwMCBpbiBiaWpuYS16d2FydC4gVm9vcmFsIGRhdCBnZXdpY2h0IGRlZWQgaGV0IHdlcmsg4oCUIGRlXG4gKiB1aXRsZWcgb29nZGUgendhYXJkZXIgZGFuIGhldCBhbnR3b29yZCB3YWFyIGhpaiBiaWogaG9vcnQsIHRlcndpamwgaGV0XG4gKiBhbmRlcnNvbSBob29ydCB0ZSB6aWpuLiBgc2l6ZT1cInRpbnlcImAgYnJhY2h0IGRlIGdyb290dGUgYWwgdmFuIDE0IG5hYXIgMTM7XG4gKiBrbGV1ciBlbiBnZXdpY2h0IHJlZ2VsZW4gd2UgaGllciwgd2FudCBkYWFyIGhlZWZ0IGhldCBjb21wb25lbnQgZ2VlbiB2YXJpYW50XG4gKiB2b29yLlxuICpcbiAqIEJld3VzdCBvcCBoZXQga2FhcnRqZSBnZXNjb29wdDogZWxkZXJzIGluIGRlIGFwcCBibGlqZnQgZWVuIHFkbmFwcm8taW5wdXRcbiAqIGdld29vbiB6aWpuIGVpZ2VuIGdld2ljaHQgaG91ZGVuLiAqL1xuLyogSGV0IHVpdGxlZ3ZlbGQgbGVlc3QgYWxzIGRlIGFudHdvb3JkcmVnZWwgZXJib3ZlbiwgbmlldCBhbHMgZWVuIGxvcyBmb3JtdWxpZXIuXG4gKlxuICog4pqg77iPIFNQRUNJRklDSVRFSVQuIHFkbmFwcm8taW5wdXQgemV0IGVlbiBJTkdFVlVMRCB2ZWxkIG9wIGdld2ljaHQgNTAwIHZpYVxuICogYC5xZG5hcHJvLWlucHV0LmlucHV0LWZpbGxlZCAuaW5wdXQtZmllbGQgLmlucHV0LW5hdGl2ZWAg4oCUIHZpZXIga2xhc3Nlbi4gRWVuXG4gKiBvdmVycmlkZSBtZXQgZHJpZSBrbGFzc2VuIHZlcmxpZXN0IGRhYXJ2YW4sIG9vayBhbCBzdGFhdCBoaWogbGF0ZXIgaW4gaGV0XG4gKiBiZXN0YW5kOyBkYXQga29zdHRlIGRyaWUgcG9naW5nZW4gdm9vcmRhdCBpayBkZSB3aW5uZW5kZSByZWdlbCBoYWQgb3BnZXpvY2h0XG4gKiBpbiBwbGFhdHMgdmFuIGdlcmFkZW4uIFZhbmRhYXIgZGF0IGAuaW5wdXQtZmlsbGVkYCBoaWVyIG1lZWRvZXQuXG4gKlxuICog4pqg77iPIERpdCBXSUpLVCBBRiB2YW4gZGUgcmVzdCB2YW4gZGUgYXBwOiBvdmVyYWwgZWxkZXJzIGlzIGluZ2V2dWxkZSBpbnZvZXJcbiAqIHp3YWFyZGVyIGRhbiBsZWdlLiBIaWVyIHZvbGd0IGhldCB1aXRsZWd2ZWxkIGJld3VzdCBkZSBhbnR3b29yZHJlZ2VsIGVyYm92ZW5cbiAqICgxMnB4L2dld2ljaHQgNDAwKSwgb21kYXQgZGUgdHdlZSBzYW1lbiDDqcOpbiBrYWFydGplIHZvcm1lbiBlbiBkZSB1aXRsZWdcbiAqIG9uZGVyZ2VzY2hpa3QgaG9vcnQgdGUgemlqbiBhYW4gaGV0IGFudHdvb3JkLiBXaWwgamUgdGVydWcgbmFhciBkZVxuICogYXBwLXN0YW5kYWFyZCwgZGFuIGlzIGRpdCBibG9rIGhldCBlbmlnZSBkYXQgd2VnIG1vZXQuIFtLaW0gMTIuMDguMjAyNl0gKi9cbi5wdWxzZS1vcHQtY2FyZCAucHVsc2Utb3B0LXdoeS10ZXh0LmlucHV0LWZpbGxlZCAuaW5wdXQtZmllbGQgLmlucHV0LW5hdGl2ZSxcbi5wdWxzZS1vcHQtY2FyZCAucHVsc2Utb3B0LXdoeS10ZXh0IC5pbnB1dC1maWVsZCAuaW5wdXQtbmF0aXZlIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXB1cnBsZS03MDAsICMyYTMyNjgpO1xufVxuLy8gYGZsZXhgIGluIHBsYWF0cyB2YW4gYHdpZHRoOiAxMDAlYCAodsOzw7NyIGthYXJ0IDgpOiBkZSByaWogYmV2YXQgc2luZHNcbi8vIGthYXJ0IDggb29rIGhldCBVaXRsZWctcm9uZGplIGhpZXJib3ZlbiwgYHdpZHRoOiAxMDAlYCB6b3UgaGV0IHZlbGQgZGFuXG4vLyBidWl0ZW4gYC5wdWxzZS1vcHQtd2h5YCBsYXRlbiB1aXRzdGVrZW4uIGBtaW4td2lkdGg6IDBgIGxhYXQgaGV0IHZlbGQgb29rXG4vLyBlY2h0IGtyaW1wZW4gaW4gcGxhYXRzIHZhbiB6aWpuIGludHJpbnNpZWtlIGJyZWVkdGUgYWYgdGUgZHdpbmdlbi5cbi5wdWxzZS1vcHQtd2h5LXRleHQge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLy8gS2FhcnQgOCAoQk9BUkQtcHVsc2Utb3BtYWFrLWh5YnJpZGUsIDI1LjA4LjIwMjYpOiBcIldhYXJvbSB6aXQgaGllciB6byB2ZWVsXG4vLyBydWltdGU/XCIgKEtpbXMgYW5ub3RhdGllLCByZWNodHMgdmFuIGhldCB3aXMta3J1aXNqZSBpbiBkaXQgdWl0bGVndmVsZCkuXG4vL1xuLy8gT09SWkFBSywgZ2VtZXRlbiBpbiBoZXQgaGFybmFzIChoZWFkbGVzcywgdGlueS9leHBhbmRpbmcsIGdldnVsZCB2ZWxkLFxuLy8gdmVsZGJyZWVkdGUgMzc5cHgpOiBgLnFkbmFwcm8taW5wdXQuaW5wdXQtdHlwZS1leHBhbmRpbmcgLmlucHV0LWZpZWxkXG4vLyAuaW5wdXQtdHJhaWxpbmdgIChfaW5wdXQuc2NzcykgemV0IGByaWdodDogMjBweGAg4oCUIHZhc3RlIHJ1aW10ZSBkaWUgaGV0XG4vLyBjb21wb25lbnQgYWx0aWpkIHZyaWpob3VkdCBuYWFzdCBoZXQgd2lzLWtydWlzamUgdm9vciBlZW4gZXZlbnR1ZWxlXG4vLyBOQVRJVkUgc2Nyb2xsYmFsayAoemllIGRlIGNvbW1lbnQgZGFhcjogXCIyMHB4IGhvdWR0IGRhYXIgcnVpbXRlIHZyaWogdm9vclxuLy8gZGUgc3lzdGVlbS1zY3JvbGxiYWxrIG5hYXN0IGhldCB3aXMta3J1aXNqZVwiKS4gRGl0IHZlbGQgKGByb3dzPVwiMlwiYCxcbi8vIGBvdmVyZmxvdy15OiBoaWRkZW5gLCBncm9laXQgaS5wLnYuIHNjcm9sbHQpIHRvb250IE5PT0lUIGVlbiBzY3JvbGxiYWxrLFxuLy8gZHVzIGRpZSAyMHB4IGlzIGhpZXIgcHVyZSBsZWdlIG1hcmdlOiBoZXQga3J1aXNqZSAoMjRweCBicmVlZCkgZWluZGlnZGVcbi8vIDIxcHggdsOzw7NyIGRlIHJlY2h0ZXJyYW5kIHZhbiBoZXQgdmVsZC4gYHRleHRhcmVhLmlucHV0LW5hdGl2ZWAnc1xuLy8gYHBhZGRpbmctcmlnaHQ6IDQ0cHhgIChzaXplPXRpbnkpIGlzIGRhYXIgMToxIG9wIGFmZ2VzdGVtZCAoMjAgKyAyNCkgZW5cbi8vIHNjaHVpZnQgZHVzIGF1dG9tYXRpc2NoIG1lZS5cbi8vXG4vLyBWT09SIChoZWFkbGVzcy1tZXRpbmcsIGhhcm5hcywgYmV3ZXJrLW1vZGFsIMOpbiB3aXphcmQsIGJlaWRlIDQ0cHgpOlxuLy8gICByaWdodCAoLmlucHV0LXRyYWlsaW5nKSAgICAgICAgIDogMjBweFxuLy8gICB0ZXh0YXJlYSBwYWRkaW5nLXJpZ2h0ICh0aW55KSAgIDogNDRweFxuLy8gICBydWltdGUga3J1aXNqZSDihpIgdmVsZHJhbmQgICAgICAgOiAyMXB4XG4vLyBOQSAoZGV6ZSB0d2VlIHJlZ2VscywgcGFnZS1zY29wZWQg4oCUIGhldCBjb21wb25lbnQgemVsZiBibGlqZnQgT05HRVdJSlpJR0Rcbi8vIHZvb3IgZWxrZSBhbmRlcmUgcGFnaW5hKTpcbi8vICAgcmlnaHQgKC5pbnB1dC10cmFpbGluZykgICAgICAgICA6IDEwcHggIChnZWxpamsgYWFuIGRlIGxpbmtlciBpbnNldCB2YW5cbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGl0IHZlbGQsIHNpemU9dGlueTogMTBweClcbi8vICAgdGV4dGFyZWEgcGFkZGluZy1yaWdodCAodGlueSkgICA6IDM0cHggICgxMCArIGtydWlzamUtYnJlZWR0ZSAyNHB4KVxuLy8gICBydWltdGUga3J1aXNqZSDihpIgdmVsZHJhbmQgICAgICAgOiAxMXB4ICAoMTBweCBpbnNldCwgMXB4IGFmcm9uZGluZylcbi8vXG4vLyBLYWFydCAxM2IgKEJPQVJELXB1bHNlLW9wbWFhay1oeWJyaWRlLCAyNi4wOC4yMDI2KTogZGUgYWFubmFtZSBoaWVyYm92ZW5cbi8vIChcInRvb250IE5PT0lUIGVlbiBzY3JvbGxiYWxrXCIpIGtsb3B0IG5pZXQgbWVlciDigJQgS2ltIGtvbiBlZW4gbGFuZ2UgdWl0bGVnXG4vLyBuaWV0IG1lZXIgc2Nyb2xsZW4gZW4gZHVzIG5pZXQgbWVlciB0ZXJ1Z2xlemVuLiBgbWF4LXJvd3NgIG9wIGhldCB2ZWxkXG4vLyAoemllIGRlIGBtYXgtcm93cz1cIjEyXCJgLXRvZXZvZWdpbmcgaW4gZGV0YWlsLmh0bWwvZGUgaGFybmFzKSBtYWFrdFxuLy8gb3ZlcmxvcGVuIHplbGR6YW1lciwgbWFhciBiaWogZWVuIGVjaHQgbGFuZ2UgdWl0bGVnIChoZWFkbGVzcy10ZXN0OiAyMFxuLy8gcmVnZWxzKSBzY2hha2VsdCBxZG5hLWlucHV0LmpzJ3MgZWlnZW4gYF9hdXRvUmVzaXplKClgIGFsc25vZyBuYWFyXG4vLyBgb3ZlcmZsb3cteTogYXV0b2Ag4oCUIGVuIGRhbiBib3RzdCBkZSBLUkFQUEUgMTBweC8zNHB4IGhpZXJib3ZlbiB3ZWVyIG1ldFxuLy8gZWVuIGVjaHRlIHNjcm9sbGJhbGsuIE9wbG9zc2luZzogZGUgMjBweC80NHB4LXJlc2VydmVyaW5nIGtvbXQgdGVydWcsXG4vLyBtYWFyIEFMTEVFTiBhbHMgaGV0IHZlbGQgb29rIGVjaHQgb3Zlcmxvb3B0IChgZGF0YS13aHktb3ZlcmZsb3dgLCBnZXpldFxuLy8gZG9vciBgc3luY1doeU92ZXJmbG93T2YoKWAgaW4gZGV0YWlsLmh0bWwvZGUgaGFybmFzIG9wIGVsa2UgdG9ldHNhYW5zbGFnXG4vLyDigJQgbmlldCBvcCBlZW4gY2xhc3MsIHdhbnQgcWRuYS1pbnB1dC5qcyB6ZXQgYHRoaXMuY2xhc3NOYW1lYCBiaWogZWxrZVxuLy8gaGVyLXJlbmRlciBoZWxlbWFhbCB0ZXJ1ZywgemllIGRlIGNsYXNzbmFtZS13aXBlLW5vdGl0aWUgZGFhcikuIFpvIGJsaWpmdFxuLy8gZGUga3JhcHBlIGthYXJ0LTgtb3BtYWFrIGdlbGRlbiB2b29yIGRlIHJpamVuIGRpZSBub29pdCBvdmVybG9wZW4gKGRlXG4vLyBtZWVyZGVyaGVpZCksIGVuIHZlcnNjaGlqbnQgZGUgcnVpbWVyZSBtYXJnZSBwcmVjaWVzIHdhbm5lZXIgZWVuXG4vLyBzY3JvbGxiYWxrIG9vayBlY2h0IGthbiB2ZXJzY2hpam5lbi5cbi5wdWxzZS1vcHQtY2FyZCAucWRuYXByby1pbnB1dC5wdWxzZS1vcHQtd2h5LXRleHQuaW5wdXQtdHlwZS1leHBhbmRpbmcgLmlucHV0LWZpZWxkIC5pbnB1dC10cmFpbGluZyB7XG4gICAgcmlnaHQ6IDEwcHg7XG59XG4ucHVsc2Utb3B0LWNhcmQgLnFkbmFwcm8taW5wdXQucHVsc2Utb3B0LXdoeS10ZXh0LmlucHV0LXR5cGUtZXhwYW5kaW5nLmlucHV0LXNpemUtdGlueSAuaW5wdXQtZmllbGQgdGV4dGFyZWEuaW5wdXQtbmF0aXZlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNHB4O1xuICAgIC8vIEthYXJ0IDEzYzogcnVpbXRlIHZvb3IgaGV0IFVpdGxlZy1yb25kamUgSU4gaGV0IHZlbGQgKHppZVxuICAgIC8vIC5wdWxzZS1vcHQtd2h5LW1hcmsgaGllcmJvdmVuKSDigJQgOHB4IGluc2V0ICsgMjJweCByb25kamUgKyB+MTBweFxuICAgIC8vIGx1Y2h0cnVpbXRlIHRvdCBkZSB0ZWtzdC5cbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG59XG4ucHVsc2Utb3B0LWNhcmQgLnFkbmFwcm8taW5wdXQucHVsc2Utb3B0LXdoeS10ZXh0LmlucHV0LXR5cGUtZXhwYW5kaW5nW2RhdGEtd2h5LW92ZXJmbG93XSAuaW5wdXQtZmllbGQgLmlucHV0LXRyYWlsaW5nIHtcbiAgICByaWdodDogMjBweDtcbn1cbi5wdWxzZS1vcHQtY2FyZCAucWRuYXByby1pbnB1dC5wdWxzZS1vcHQtd2h5LXRleHQuaW5wdXQtdHlwZS1leHBhbmRpbmcuaW5wdXQtc2l6ZS10aW55W2RhdGEtd2h5LW92ZXJmbG93XSAuaW5wdXQtZmllbGQgdGV4dGFyZWEuaW5wdXQtbmF0aXZlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0NHB4O1xufVxuXG4vKiBEZSBkcm9wbGlqbiB0aWpkZW5zIGhldCBzbGVwZW46IMOpw6luIHBhYXJzZSBsaWpuIG9wIGRlIGxhbmRpbmdzcGxlay4gWmVsZmRlXG4gICBpZGVlIGFscyAuZmUtZHJvcC1saW5lIGluIGRlIGZsb3ctZWRpdG9yLiAqL1xuLnB1bHNlLW9wdC1kcm9wbGluZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgbWFyZ2luLXRvcDogLTVweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzUzNGFiNyk7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDI7XG59XG4ucHVsc2Utb3B0LWRyb3BsaW5lW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi8vIEthYXJ0IDE3IChCT0FSRC1wdWxzZS1hbnR3b29yZG9wdGllcy1yaWNodGluZy1jLCAyNS4wOC4yMDI2KTogbmlldCBtZWVyIGVlblxuLy8gbG9zc2Uga25vcCBPTkRFUiBoZXQgZnJhbWUg4oCUIG51IGRlIG9uZGVyc3RlLCBnZXN0aXBwZWxkZSByaWogRVJJTi4gR2VlblxuLy8gbWFyZ2UgbWVlciBub2RpZyAoYC5wdWxzZS1vcHQtZnJhbWUgLnB1bHNlLWFkZC1iYXJgIGhpZXJvbmRlciByZWdlbHQgcmFuZC9cbi8vIGFmcm9uZGluZyk7IGAucHVsc2Utb3B0LWFkZGAgYmxpamZ0IGFscyBrbGFzc2Ugc3RhYW4gdm9vciBpZGVudGl0ZWl0L1xuLy8gc2VsZWN0b3JzLCBvb2sgYWwga29tdCBkZSB2b3JtZ2V2aW5nIG51IHZhbiBgLnB1bHNlLWFkZC1iYXJgLlxuLnB1bHNlLW9wdC1hZGQgeyBtYXJnaW4tdG9wOiAwOyB9XG5cbi8vIFplbGZkZSBnZXN0aXBwZWxkZS1yaWotdm9ybSBhbHMgZGUgYmVzdGFhbmRlIHN0YXBwZW4tdG9ldm9lZ3JpaiBoaWVyYm92ZW5cbi8vIGluIGRpdCBiZXN0YW5kICgucHVsc2UtYWRkLWJhci8tY2lyY2xlLy1sYWJlbCwgXCJUb2V2b2VnLXJpalwiLWJsb2spIOKAlFxuLy8gaGVyZ2VicnVpa3RlIGtsYXNzZW4sIGhpZXIgYWxsZWVuIFZPTExFLUJSRUVEVEUgUExBVCBpbiBoZXQgZnJhbWUgaS5wLnYuXG4vLyBsb3MgZXJib3ZlbiBtZXQgZWlnZW4gcmFuZC4gYC5wdWxzZS1vcHQtZnJhbWVgcyBvdmVyZmxvdzpoaWRkZW4ga2FwdCBkZVxuLy8gdmllcmthbnRlIG9uZGVyaG9layB2YW4gZGV6ZSByaWogYXV0b21hdGlzY2ggYWYgdG90IGRlIGZyYW1lLWFmcm9uZGluZyxcbi8vIGR1cyBib3JkZXItcmFkaXVzOiAwIGlzIGhpZXIgYmV3dXN0IGdlbm9lZy5cbi5wdWxzZS1vcHQtZnJhbWUgLnB1bHNlLWFkZC1iYXIge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItdG9wOiAxLjVweCBkYXNoZWQgcmdiYSg3MCwgODIsIDI0MywgMC4zMCk7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDRweDtcbn1cbi8vIEthYXJ0IDE3OiBkaXQgaXMgZWVuIEVDSFRFIDxidXR0b24+LCBnZWVuIGRpdltyb2xlPVwiYnV0dG9uXCJdIHpvYWxzIGRlXG4vLyBzdGFwcGVuLXRvZXZvZWdyaWog4oCUIGhpZXIgaXMgdmVyZGVyIGdlZW4gbG9zIGtleWRvd24tcmVjZXB0IG5vZGlnLCBkZVxuLy8gYnJvd3NlciByZWdlbHQgRW50ZXIvU3BhY2UgdmFuemVsZi4gWmVsZmRlIGJvb3RzdHJhcC12YWxrdWlsIGFscyBoaWVyYm92ZW5cbi8vIGJpaiAucHVsc2Utd2l6LWNhcmQ6Zm9jdXMgKEtpbXMgcmV2aWV3IDI0LjA4KTogZGUgdjEtaGVhZGVyIGxhYWR0XG4vLyBib290c3RyYXAubWluLmNzcywgZW4gZGllIHpldCBgYnV0dG9uOmZvY3VzIHsgb3V0bGluZTogNXB4IGF1dG8gLi4uIH1gIG9wXG4vLyBFTEtFIGtub3Ag4oCUIGVlbiBlY2h0ZSBtdWlza2xpayBnZWVmdCB3w6lsIDpmb2N1cyBtYWFyIGdlZW4gOmZvY3VzLXZpc2libGUsXG4vLyBkdXMgZGUgYmVzdGFhbmRlIGAucHVsc2UtYWRkLWJhcjpmb2N1cy12aXNpYmxlYC1yZWdlbCAoaGllcmJvdmVuLCBcIlRvZXZvZWctXG4vLyByaWpcIi1ibG9rKSBrYW4gZGllIGhhcmRlIGJsYXV3ZSByaW5nIG5pZXQgb3B2YW5nZW4uIFplbGZkZSBvcGxvc3Npbmc6XG4vLyBib290c3RyYXAtb3V0bGluZSB1aXR6ZXR0ZW4sIGRlIHphY2h0ZSA6Zm9jdXMtdmlzaWJsZS1yaW5nIGJsaWpmdCBzdGFhbi5cbi5wdWxzZS1vcHQtZnJhbWUgLnB1bHNlLWFkZC1iYXI6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4ucHVsc2Utb3B0LWZyYW1lIC5wdWxzZS1hZGQtYmFyOmhvdmVyIHtcbiAgICAvLyBaZWxmZGUgXCJ6YWNodGUgcGFhcnNlIG9uZGVyZ3JvbmRcIi10b2tlbiBhbHMgaGV0IG91ZGUgb3B0aWUta2FhcnRqZVxuICAgIC8vIGhpZXJib3ZlbiBkcm9lZyAodmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlKSkg4oCUIGdlZW4gbmlldXdlIGtsZXVyLCBhbGxlZW5cbiAgICAvLyBoZXJnZWJydWlrdCBhbHMgaG92ZXItZmVlZGJhY2sgaW4gcGxhYXRzIHZhbiBhbHMgcGVybWFuZW50ZSBhY2h0ZXJncm9uZC5cbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUsICNmNGYzZmIpO1xuICAgIGJvcmRlci10b3AtY29sb3I6IHJnYmEoNzAsIDgyLCAyNDMsIDAuNTApO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5wdWxzZS1vcHQtZnJhbWUgLnB1bHNlLWFkZC1iYXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWMtcHVycGxlLTIwMC0zMCwgcmdiYSgxNjUsIDE3MiwgMjU1LCAwLjMwKSk7XG59XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnB1bHNlLW9wdC1mcmFtZSAucHVsc2UtYWRkLWJhcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS0yMDAtNTAsIHJnYmEoMTY1LCAxNzIsIDI1NSwgMC41MCkpO1xufVxuXG4vKiBBZmJlZWxkaW5nIGJpaiBlZW4gc3RhcC4gKi9cbi5wdWxzZS1zbS1pbWFnZSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDsgfVxuLnB1bHNlLXNtLXRodW1iIHtcbiAgICB3aWR0aDogOTZweDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSwgI2YzZjRmYik7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGNvbG9yOiAjYjliY2Q2O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xufVxuLnB1bHNlLXNtLXRodW1iIGltZyB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6IGNvdmVyOyBkaXNwbGF5OiBibG9jazsgfVxuLnB1bHNlLXNtLWltYWdlLWFjdGlvbnMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgZmxleC13cmFwOiB3cmFwOyB9XG5cbi8qIFZpZGVvdm9vcmJlZWxkICgwMS4wOS4yMDI2LCBLaW0pIOKAlCBiaWogZWVuIHZpZGVvc3RhcCBzdGFhdCBvcCBkZSBwbGVrIHZhblxuICAgZGUgYWZiZWVsZGluZy1raWV6ZXIgaGV0IHZvb3JiZWVsZCB2YW4gZGUgdmlkZW8gemVsZi4gMTY6OSBlbiBuaWV0IGVlblxuICAgdmFzdGUgaG9vZ3RlOiBkYXQgaXMgZGUgdmVyaG91ZGluZyB3YWFyaW4gWW91VHViZSBsZXZlcnQsIGVuIGRlIGtvbG9tXG4gICBiZXBhYWx0IGRlIGJyZWVkdGUuIERlIHNwZWxlciBpcyBlZW4gZWNodGUsIGFmc3BlZWxiYXJlIGluc2x1aXRpbmcgKHplbGZkZVxuICAgeW91dHViZS1ub2Nvb2tpZS12b3JtIGFscyBkZSBhcHApLCB6b2RhdCBqZSBpbiBkZSBiYWNrb2ZmaWNlIGt1bnRcbiAgIGNvbnRyb2xlcmVuIG9mIGplIGRlIEpVSVNURSB2aWRlbyBnZXBsYWt0IGhlYnQuICovXG4ucHVsc2Utc20tdmlkZW8tcHJldmlldyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGFzcGVjdC1yYXRpbzogMTYgLyA5O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuLnB1bHNlLXNtLXZpZGVvLXByZXZpZXctZnJhbWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLyogRGUgbGVnZSBwbGFhdDogZ2VlbiB6d2FydCB2bGFrIHpvbmRlciB1aXRsZWcsIG1hYXIgZWVuIHJ1c3RpZ2Ugc3RpcHBlbGxpam5cbiAgIG1ldCDDqcOpbiByZWdlbCBkaWUgemVndCB3YXQgZXIgbW9ldCBnZWJldXJlbi4gQmV3dXN0IE5JRVQgMTY6OTogem9sYW5nIGVyXG4gICBnZWVuIHZpZGVvIGlzLCBpcyBlZW4gbGVlZyB2bGFrIHZhbiAzMDBweCBob29nIGFsbGVlbiBtYWFyIGdhdCBpbiBoZXRcbiAgIGZvcm11bGllci4gSGlqIGdyb2VpdCBwYXMgbmFhciBkZSBlY2h0ZSB2ZXJob3VkaW5nIHpvZHJhIGRlIHNwZWxlciBlclxuICAgc3RhYXQuICovXG4ucHVsc2Utc20tdmlkZW8tcHJldmlldy5pcy1lbXB0eSB7XG4gICAgYXNwZWN0LXJhdGlvOiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDExNnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSwgI2YzZjRmYik7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNWU1ZWEpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgY29sb3I6ICNiOWJjZDY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnB1bHNlLXNtLXZpZGVvLXByZXZpZXctdGV4dCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogMjYwcHg7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5wdWxzZS1zbS12aWRlby1wcmV2aWV3LmlzLWVtcHR5IHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbn1cblxuLyogRGUgdHdlZSBrYWxlIHRla3N0dmxha2tlbiBkaWUgaGllciBzdG9uZGVuICgucHVsc2Utc20tdGV4dGFyZWEpIHppam4gd2VnIHBlclxuICAgMTIuMDguMjAyNjogZGUgZmVlZGJhY2t2ZWxkZW4gemlqbiB2ZXJ2YW5nZW4gZG9vciBkZSB1aXRsZWcgcGVyIG9wdGllLCBlbiBkaWVcbiAgIGlzIGVlbiBxZG5hcHJvLWlucHV0IHR5cGU9XCJleHBhbmRpbmdcIi4gRWVuIGhhbmRnZW1hYWt0IHRla3N0dmxhayBtZXQgZWVuIGVpZ2VuXG4gICByYW5kamUgZW4gZWVuIGVpZ2VuIGZvY3VzLXJpbmcgbmFhc3QgZGUgZWNodGUgdmVsZGVuIGluIGRlemVsZmRlIG1vZGFsIGlzXG4gICBwcmVjaWVzIGhldCBzb29ydCBzY2hlZWZncm9laSBkYXQgamUgbGF0ZXIgbmlldCBtZWVyIHRlcnVndmluZHQuICovXG5cbi8qIC0tLSBPcG1hYWstd2l6YXJkIChrYWFydCA2LCBTQ09QRS1wdWxzZS1vcG1hYWstd2l6YXJkLm1kKSAtLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFNjaGlsOiBxZG5hcHJvLXdpemFyZC1tb2RhbCAoY29tcG9uZW50cy92Mi93aXphcmQtbW9kYWwpLiBFbGtlIHN0YXAgaXMgemlqblxuICAgRUlHRU4gdmVuc3RlciAoLnFkbmFwcm8td2l6YXJkLXN0ZXApLCBkdXMga29wL3Zvb3J0Z2FuZy92b2V0IHN0YWFuIGluIEVMS1xuICAgdmFuIGRlIGRyaWUgc3RhcHBlbiDigJQgZ2VlbiBnZWRlZWxkIGVsZW1lbnQgZGF0IGJ1aXRlbiBkZSBzdGFwcGVuIGxlZWZ0LiAqL1xuLyogS2FhcnQgMTcgKEtpbXMgRmlnbWEsIGxldHRlcmxpamspOiBkZSBrb3AgSVMgZGUgc3RhcHRpdGVsIChwYWFycyxcbiAgIGxpbmtzYm92ZW4pLCBrcnVpc2plIHJlY2h0c2JvdmVuLCBlZW4gZHVubmUgc2NoZWlkaW5nc2xpam4gb25kZXIgZGUga29wLlxuICAgR2VlbiBsb3MgXCJOaWV1d2Uga2VubmlzdnJhYWdcIi1rb3BqZSBlbiBnZWVuIGdyaWp6ZSBcIlNUQVAgMS8zXCItcmVnZWwgbWVlclxuICAgKC5wdWxzZS13aXotcHJvZ3Jlc3MgaXMgZGFhcm9tIHZlcndpamRlcmQpLiAqL1xuXG4vKiBLYWFydCAxOSwgcHVudCAyIChLaW0pOiBWQVNURSBob29ndGUsIGdlbGlqayBvcCBhbGxlIGRyaWUgZGUgc3RhcHBlbiDigJQgd2FzXG4gICBgYXV0by1oZWlnaHRgIChjb21wb25lbnQtYXR0cmlidXV0LCB6aWUgcWRuYS13aXphcmQtbW9kYWwuanMpLCB3YWFyYmlqIGVsa2VcbiAgIHN0YXAgemlqbiBFSUdFTiBuYXR1dXJsaWprZSBpbmhvdWRzaG9vZ3RlIGtyZWVnIGVuIGRlIG1vZGFsIGR1cyB2ZXJzcG9uZ1xuICAgdHVzc2VuIHN0YXAgMSAoZHJpZSBrYWFydGVuKSwgMiAoZm9ybXVsaWVyKSBlbiAzIChrb3J0IHBhY2luZy1ibG9rKS4gRGVcbiAgIGJyZWVkdGUgd2FzIHZpYSBgZGF0YS13aWR0aGAgb3AgZWxrZSBzdGFwIGFsIGdlbGlqayAoODgwLCBudSAxMjgwLCB6aWVcbiAgIFdJWl9TVEVQX1dJRFRIIGluIGRldGFpbC5odG1sKSDigJQgZGF0IHZlcnNwcmluZ3QgZHVzIGFsIG5pZXQuIGAtLXdtLWhlaWdodGBcbiAgIGlzIGRlIENTUy12YXIgZGllIGhldCBjb21wb25lbnQgemVsZiBsZWVzdCAoYC53bS1zdGVwcyB7IGhlaWdodDpcbiAgIHZhcigtLXdtLWhlaWdodCwgNTQwcHgpOyB9YCwgemllIF93aXphcmQtbW9kYWwuc2Nzcyk7IGRpdCBpcyBkZVxuICAgcGFnZS1zY29wZWQgb3ZlcnJpZGUgZGllIGRlIHNraWxsL2thYXJ0IGhpZXIgdnJhYWd0LCB3YW50IGRlIGNvbXBvbmVudFxuICAgemVsZiBrZW50IGdlZW4gYHNpemVgLXNjaGFhbCB6b2FscyBxZG5hcHJvLW1vZGFsICh4eGxhcmdlIGVuei4pIOKAlCBuYWdla2VrZW5cbiAgIGluIHFkbmEtd2l6YXJkLW1vZGFsLmpzLCBkaWUga2VudCBhbGxlZW4gcGVyLXN0YXAgYGRhdGEtd2lkdGhgICsgZGV6ZVxuICAgaG9vZ3RlLXZhci9gYXV0by1oZWlnaHRgLiBgLnB1bHNlLXdpei1zY3JvbGxgICh2ZXJkZXJvcCkgaXMgZW4gYmxpamZ0IGRlXG4gICBzY3JvbGxlbmRlIGtvbG9tIEJJTk5FTiBlZW4gc3RhcCB3YW5uZWVyIGRlIGluaG91ZCBuaWV0IHBhc3Qg4oCUIG5vb2l0IGRlXG4gICBtb2RhbCB6ZWxmLCBkZXplbGZkZSBgbWluLWhlaWdodDogMGAta2V0ZW4tcmVnZWwgYWxzIGVsZGVycyBpbiBkaXQgYmVzdGFuZC4gKi9cbi8qIEthYXJ0IDE0ICgyNS4wOC4yMDI2KTogaG9nZXIgbnUgZGUgc3RhcCBtZWVyIGluZm9ybWF0aWUgZHJhYWd0ICh0b2dnbGUsXG4gICBzY2hha2VsYWFyLCB1aXRsZWctc3RhbmQpLiBtaW4oKSBob3VkdCBoZW0gYmlubmVuIGJlZWxkIG9wIGxhZ2Ugc2NoZXJtZW47XG4gICA5NnB4IG1hcmdlIG9tZGF0IGRlIGRpYWxvZyAxOHB4IG1lZXIgbWVldCBkYW4gemlqbiBtYXgtaGVpZ2h0IHJla2VudC4gKi9cbiNwdWxzZS13aXphcmQtbW9kYWwgeyAtLXdtLWhlaWdodDogbWluKDgwMHB4LCBjYWxjKDEwMHZoIC0gOTZweCkpOyB9XG5cbi5wdWxzZS13aXotaGRyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTZweCAyMHB4IDE0cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNWU1ZWEpO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuLnB1bHNlLXdpei1oZHItdGl0bGUgeyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTdweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjMzk0MjkwKTsgfVxuXG4vKiBLYWFydCAyMTogaGV0IFwiQmV3ZXJrIHZyYWFnXCIvXCJJbnN0ZWxsaW5nZW5cIi1zZWdtZW50IGJvdmVuaW4sIEFMTEVFTlxuICAgemljaHRiYWFyIGluIGJld2Vya3N0YW5kIOKAlCBgaGlkZGVuYCBzdGFhdCBzdGFuZGFhcmQgb3AgZGUgd3JhcHBlciBlbiB3b3JkdFxuICAgcGVyIHNlc3NpZSBnZXpldC92ZXJ3aWpkZXJkIGRvb3Igd2l6QXBwbHlFZGl0Q2hyb21lKCkgKGRldGFpbC5odG1sKS4gRWxrZVxuICAgc3RhcCBkcmFhZ3QgemlqbiBFSUdFTiBleGVtcGxhYXIgKGRlIHdpemFyZCBib3V3dCB6aWpuIGRyaWUgc3RhcHBlbiBtYWFyXG4gICDDicOJTiBrZWVyIGVuIHZlcnBsYWF0c3QgemUsIGdlZW4gZ2VkZWVsZGUgbm9kZSksIHZhbmRhYXIgZHJpZSBpZGVudGlla2VcbiAgIHdyYXBwZXJzIGluIGRlIG1hcmt1cCwgw6nDqW4gcGVyIGAucHVsc2Utd2l6LXN0ZXBgLiAqL1xuLnB1bHNlLXdpei1lZGl0LXNlZy13cmFwIHtcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHggMDtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLy8gS2FhcnQgNiAoQk9BUkQtcHVsc2UtYW50d29vcmRvcHRpZXMtcmljaHRpbmctYywgMjUuMDguMjAyNiwgYmVzbHVpdGVuXG4vLyBTMStTMik6IENTUyB2b29yIGRlIHN0YXB0eXBlLXBpbCBuYWFzdCBkZSB0aXRlbCAoUzEpIGVuIGRlIGdlY2VudHJlZXJkZVxuLy8ga29wLXJhc3RlciBtZXQgaGV0IFwiQmV3ZXJrIHZyYWFnL0luc3RlbGxpbmdlblwiLXNlZ21lbnQgKFMyKS4gVmVyaHVpc2Qgb3Bcbi8vIDI1LjA4LjIwMjYgdWl0IGVuc3VyZVB1bHNlV2l6SGRyU3R5bGVzKCkgaW4gZGV0YWlsLmh0bWwg4oCUIHplbGZkZVxuLy8gPHN0eWxlPi1pbi08aGVhZD4tcmVjZXB0IGVuIGRlemVsZmRlIHJlZGVuIGFscyBiaWoga2FhcnQgNSBoaWVyYm92ZW4sXG4vLyBkZXplIGthYXJ0IG1vY2h0IGRlc3RpamRzIG9vayBnZWVuIHdpanppZ2luZyBhYW4gZGV6ZSBTQ1NTLXBhcnRpYWwgbWFrZW4uXG4vLyBCZXd1c3QgTkEgZGUgLnB1bHNlLXdpei1oZHIvLnB1bHNlLXdpei1lZGl0LXNlZy13cmFwLWJhc2lzcmVnZWxzIGhpZXJib3ZlblxuLy8gZ2V6ZXQ6IGRlIEpTLTxzdHlsZT4gd2VyZCBkZXN0aWpkcyBwYXMgbsOhIGhldCBsYWRlbiB2YW4gc3R5bGUtdjEuY3NzIGFhblxuLy8gPGhlYWQ+IHRvZWdldm9lZ2QsIGR1cyB3b24gYmlqIGdlbGlqa2Ugc3BlY2lmaWNpdGVpdCAoYnYuIGRlIHBhZGRpbmc6MFxuLy8gaGllcm9uZGVyIG9wIC5wdWxzZS13aXotZWRpdC1zZWctd3JhcCB3aW50IG92ZXIgZGUgcGFkZGluZzogMTJweCAyMHB4IDBcbi8vIHZhbiBrYWFydCAyMSBoaWVyYm92ZW4pIOKAlCBkaWUgYnJvbnZvbGdvcmRlIG1vZXQgaGllciBiZWhvdWRlbiBibGlqdmVuLlxuLy9cbi8vIC5wdWxzZS13aXotaGRyLSogaG9vcnQgYmlqIGRlIG9wbWFhay13aXphcmQgKGZsaXRzL2tlbm5pc3ZyYWFnL3BlaWxpbmcpOlxuLy8gMy1rb2xvbXMtcmFzdGVyLCB0aXRlbCtwaWwgbGlua3MsIHNlZ21lbnQgTUlEREVOIChhbGxlZW4gemljaHRiYWFyIGluXG4vLyBiZXdlcmtzdGFuZCwgemllIHdpekFwcGx5RWRpdENocm9tZSBpbiBkZXRhaWwuaHRtbCksIGtydWlzamUgcmVjaHRzLlxuLy8gTGlua3MvcmVjaHRzIHppam4gZ2VsaWprZSBtaW5tYXgoMCwxZnIpLWtvbG9tbWVuIHpvZGF0IGRlIG1pZGRlbHN0ZVxuLy8gKGF1dG8tYnJlZWQpIHdpc2t1bmRpZyBnZWNlbnRyZWVyZCBzdGFhdCwgb25nZWFjaHQgdGl0ZWxsZW5ndGUuXG4vL1xuLy8gLnB1bHNlLXNtLWhkci0qIGhvb3J0IGJpaiAjcHVsc2Utc3RlcC1tb2RhbCAodmlkZW8vZG9jdW1lbnQvYWN0aWUsIGRhdFxuLy8gR0VFTiBzZWdtZW50IGhlZWZ0KTogYWxsZWVuIGRlIHBpbCBuYWFzdCBkZSB0aXRlbCwgemVsZmRlIGxpbmtzLVxuLy8gdWl0Z2VsaWpuZGUgZmxleC1yaWosIHNjb3BlZCBvcCBkZSBJRCB6b2RhdCBhbmRlcmUgcWRuYXByby1tb2RhbC1cbi8vIGluc3RhbnRpZXMgb3AgZGV6ZSBwYWdpbmEgKGJ2LiBkZSB0eXBlLWtpZXplcikgZGl0IG5pZXQgbWVla3Jpamdlbi5cbi8vIEthYXJ0IDIxLWFhbnZ1bGxpbmcgKGJ1Z2ZpeCwgS2ltKTogYGdyaWQtdGVtcGxhdGUtYXJlYXNgIGkucC52LiBpbXBsaWNpZXRlXG4vLyBhdXRvLXBsYWF0c2luZyBvdmVyIGRlIDMga29sb21tZW4gaGllcmJvdmVuLiBab25kZXIgbmFtZW4gdmllbCBoZXRcbi8vIHNsdWl0a3J1aXNqZSBpbiBkZSBBQU5NQUFLU1RBTkQgKHdhYXIgLnB1bHNlLXdpei1lZGl0LXNlZy13cmFwW2hpZGRlbl0gZHVzXG4vLyBkaXNwbGF5Om5vbmUgaXMgZW4gbmlldCBtZWV0ZWx0KSB0ZXJ1ZyBvcCBkZSB0d2VlZGUg4oCUIGRlIE1JRERFTFNURSDigJQgdHJhY2ssXG4vLyB3YW50IGRhdCBpcyBkZSB2b2xnZW5kZSB2cmlqZSBjZWwgaW4gZGUgYXV0by1mbG93IGFscyBlciBtYWFyIHR3ZWUga2luZGVyZW5cbi8vIHppam4uIEluIGRlIGJld2Vya3N0YW5kIChkcmllIGtpbmRlcmVuKSB2aWVsIGhldCB0b2V2YWxsaWcgd8OpbCBnb2VkLiBNZXRcbi8vIGV4cGxpY2lldGUgYXJlYXMgcGFrdCBoZXQga3J1aXNqZSBBTFRJSkQgXCJjbG9zZVwiIChrb2xvbSAzKSwgbWV0IG9mIHpvbmRlclxuLy8gemljaHRiYWFyIHNlZ21lbnQg4oCUIHplbGZkZSBuYWFtZ2V2aW5nIGFscyBkZSB0ZWxlZm9vbnZhcmlhbnQgKGthYXJ0IDkpXG4vLyBoaWVyb25kZXIsIGRpZSBhbCB0aXRsZS9zZWcvY2xvc2UgZ2VicnVpa3RlLlxuLnB1bHNlLXdpei1oZHIge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwibGVmdCBzZWcgY2xvc2VcIjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgJi1sZWZ0IHtcbiAgICAgICAgZ3JpZC1hcmVhOiBsZWZ0O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgICYtdGl0bGUge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICYtcGlsbCB7IGZsZXgtc2hyaW5rOiAwOyB9XG59XG4ucHVsc2Utd2l6LWVkaXQtc2VnLXdyYXAgeyBncmlkLWFyZWE6IHNlZzsganVzdGlmeS1zZWxmOiBjZW50ZXI7IHBhZGRpbmc6IDA7IH1cbi5wdWxzZS13aXotY2xvc2UtYnRuIHsgZ3JpZC1hcmVhOiBjbG9zZTsganVzdGlmeS1zZWxmOiBlbmQ7IH1cblxuI3B1bHNlLXN0ZXAtbW9kYWwge1xuICAgIC5wdWxzZS1zbS1oZHItbGVmdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIH1cbiAgICAucHVsc2Utc20taGRyLXRpdGxlLXNocnVuayB7XG4gICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgICAucHVsc2Utc20taGRyLXBpbGwgeyBmbGV4LXNocmluazogMDsgfVxufVxuXG4ucHVsc2Utd2l6LXNjcm9sbCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDE2cHggMjBweCAyMHB4O1xufVxuXG4ucHVsc2Utd2l6LWZ0ciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTRweCAyMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZTVlNWVhKTtcbiAgICBmbGV4LXNocmluazogMDtcbn1cbi5wdWxzZS13aXotZnRyLXJpZ2h0IHsgZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IH1cbi8qIC5wdWxzZS13aXotZnRyLWxlZnQgaXMgbGVlZyBvcCBzdGFwIDEgKGdlZW4gdGVydWdrbm9wKTsgYGp1c3RpZnktY29udGVudDpcbiAgIHNwYWNlLWJldHdlZW5gIG9wIGRlIHZvZXQgaG91ZHQgZGUgcmVjaHRlcmtub3BwZW4gZGFuIHRvY2ggcmVjaHRzLiAqL1xuLnB1bHNlLXdpei1iYWNrLWJ0biBxZG5hcHJvLWljb24geyBtYXJnaW4tcmlnaHQ6IDRweDsgfVxuLnB1bHNlLXdpei1uZXh0LWJ0biBxZG5hcHJvLWljb24geyBtYXJnaW4tbGVmdDogNHB4OyB9XG5cbi8qIFN0YXAgMSAoa2FhcnQgMTcsIEtpbXMgRmlnbWEpOiBHRUNFTlRSRUVSREUgcGFhcnNlIGtvbG9tdGl0ZWwgYm92ZW4gw6nDqW5cbiAgIHJpamtlIHZvb3JiZWVsZGthYXJ0IHBlciBvcG1hYWt2YXJpYW50IOKAlCBnZWVuIGJlc2NocmlqdmVuZGUgemluIG1lZXIuICovXG4ucHVsc2Utd2l6LWNhcmRzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAvKiBLYWFydCAxN2MsIHB1bnQgMjogcmlqIGV4cGxpY2lldCBvcCBzdHJldGNoIHpvZGF0IGVsa2Uga29sb20gKGdyaWQtaXRlbSlcbiAgICAgICBkZSBob29ndGUgdmFuIGRlIGxhbmdzdGUga29sb20ga3Jpamd0IChLaW1zIGZlZWRiYWNrOiBcImRlIGtvbG9tbWVucmlqXG4gICAgICAgb3Agc3RyZXRjaFwiKS4gR3JpZCBkb2V0IGRpdCBhbCBzdGFuZGFhcmQsIG1hYXIgZGUgZGFhZHdlcmtlbGlqa2UgZ2VsaWprZVxuICAgICAgIGhvb2d0ZSBtb2V0IGRhYXJuYSBub2cgZG9vcmdlemV0IHdvcmRlbiBuYWFyIGRlIGthYXJ0IHplbGYgKHppZVxuICAgICAgIC5wdWxzZS13aXotY2FyZCBoaWVyb25kZXIpLCBhbmRlcnMgYmxpamZ0IGRlIEtBQVJUIHplbGYgb25nZWxpamsuICovXG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZ2FwOiAxNnB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLnB1bHNlLXdpei1jYXJkcyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7IH1cbn1cbi5wdWxzZS13aXotY29sIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMHB4OyBoZWlnaHQ6IDEwMCU7IH1cbi8qIEthYXJ0IDE1Yi1zdGlqbCB0b2tlbmlzYXRpZTogLS1jLWJyYW5kLXB1cnBsZSBpcyBoaWVyIGFsIGRlIHZhc3RlXG4gICBtZXJrcGFhcnMtdGl0ZWxrbGV1ciAoemVsZmRlIHRva2VuIGFscyAucHVsc2Utd2l6LWhkci10aXRsZSkuICovXG4ucHVsc2Utd2l6LWNvbC10aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTMuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzM5NDI5MCk7XG59XG4ucHVsc2Utd2l6LWNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAvKiBLYWFydCAxN2MsIHB1bnQgMjogZGUga2FhcnQgdnVsdCBkZSByZXN0ZXJlbmRlIGhvb2d0ZSB2YW4gLnB1bHNlLXdpei1jb2xcbiAgICAgICAoY29sIHN0YWF0IGhpZXJib3ZlbiBhbCBvcCBoZWlnaHQ6MTAwJSB2aWEgZGUgZ3JpZC1zdHJldGNoKS4gS2ltIHNjaHJlZWZcbiAgICAgICBcImRlIGthYXJ0ZW4gb3AgaGVpZ2h0IDEwMCVcIjsgZWVuIGxldHRlcmxpamtlIGhlaWdodDoxMDAlIHpvdSBoaWVyIGRlXG4gICAgICAga29sb210aXRlbCAoaDQucHVsc2Utd2l6LWNvbC10aXRsZSwgZGV6ZWxmZGUgZmxleC1jb2x1bW4pIG92ZXJsYXBwZW5cbiAgICAgICBvbWRhdCBwZXJjZW50YWdlLWhvb2d0ZSBkZSBydWltdGUgdmFuIGVlbiBzaWJsaW5nIG5pZXQgYWZ0cmVrdC4gZmxleDoxXG4gICAgICAgZ2VlZnQgaGV0emVsZmRlIHppY2h0YmFyZSByZXN1bHRhYXQgKGthYXJ0IHZ1bHQgZGUgcmVzdCB2YW4gZGUga29sb20sXG4gICAgICAgYWxsZSBkcmllIGthYXJ0ZW4gZXZlbiBob29nKSB6b25kZXIgZGllIG92ZXJsYXAuICovXG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZTVlNWVhKTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAvKiBLYWFydCAxN2Q6IGRlIGdlbWV0ZW4gb29yemFhayB2YW4gZGUgb256aWNodGJhcmUgc2VsZWN0aWUtcmluZyB3YXMgTklFVFxuICAgICAgIGVlbiBvdmVyc2NocmV2ZW4gcmVnZWwsIGNsaXBwaW5nIG9mIHNwZWNpZmljaXRlaXQg4oCUIGRlIFNDU1MtcmVnZWxcbiAgICAgICAucHVsc2Utd2l6LWNhcmQuaXMtc2VsZWN0ZWQgaGllcm9uZGVyIHdhcyBlbiBpcyBjb3JyZWN0IGVuIGNvbXBpbGVlcnRcbiAgICAgICBwcmltYS4gRGUgcmluZyBrb210IG9wIGRvb3IgZGV6ZSB0cmFuc2l0aWVsaWpzdCwgZGllIHRvdCBlbiBtZXQga2FhcnRcbiAgICAgICAxN2Mgb29rIGJveC1zaGFkb3cgYmV2YXR0ZS4gYG9wZW5XaXphcmQoKWAgKHZpZXcgKyBoYXJuYXMpIHRvZ2dlbHRcbiAgICAgICBgaXMtc2VsZWN0ZWRgIGJpaiBFTEtFIG5pZXV3ZS9oZXJzdGFydCB3aXphcmQtc2Vzc2llIG9wbmlldXcgb3AgQUxMRVxuICAgICAgIGthYXJ0ZW4gKHJlc2V0IG5hYXIgS2xhc3NpZWspIOKAlCDDs8OzayB3YW5uZWVyIGRlIHZvcmlnZSBzZXNzaWUgZWVuXG4gICAgICAgQU5ERVJFIGthYXJ0IGhhZCBnZWtvemVuIChidi4gbmEgXCJUZWtzdCBvcCBhY2h0ZXJncm9uZFwiIHRlc3RlbiBlbiBkZVxuICAgICAgIHdpemFyZCBvcG5pZXV3IG9wZW5lbikuIE9wIGRhdCBtb21lbnQga3JpamdlbiBUV0VFIGthYXJ0ZW4gaW5cbiAgICAgICBkZXplbGZkZSB0aWNrIGVlbiBlY2h0ZSBjbGFzcy13aWp6aWdpbmc6IEtsYXNzaWVrIFdJTlQgYGlzLXNlbGVjdGVkYCxcbiAgICAgICBkZSB2b3JpZ2Uga2FhcnQgVkVSTElFU1QgaGVtLiBNZXQgYm94LXNoYWRvdyBpbiBkZSB0cmFuc2l0aWVsaWpzdFxuICAgICAgIEFOSU1FRVJUIGRpZSB3aXNzZWwgb3ZlciAxMjBtcyDigJQgZW4gbWV0ZWVuIG5hIGRlIGNsYXNzLXRvZ2dsZSAob2YgZWVuXG4gICAgICAgaGVhZGxlc3Mgc2NyZWVuc2hvdCBkaWUgaGV0IGZyYW1lIG9wIHTiiYgwIHZhbiBkaWUgdHJhbnNpdGllIHZhc3RsZWd0LFxuICAgICAgIHByZWNpZXMgd2F0IC0tdmlydHVhbC10aW1lLWJ1ZGdldCBkb2V0KSBzdGFhdCBkZSBhbmltYXRpZSBub2cgb3AgemlqblxuICAgICAgIFNUQVJUd2FhcmRlOiBkZSBrYWFydCBkaWUgZGUgcmluZyBLUklKR1QgdG9vbnQgJ20gbm9nIG5pZXQgKHN0YXJ0ID1cbiAgICAgICBcImdlZW4gc2NoYWR1d1wiLCBkZXplbGZkZSB2b3JtIG1hYXIgcmdiYSgwLDAsMCwwKSksIGRlIGthYXJ0IGRpZSBoZW1cbiAgICAgICBWRVJMSUVTVCB0b29udCAnbSBub2cgc3RlZWRzIFZPTCAoc3RhcnQgPSBkZSBvdWRlLCBub2cgbmlldCB2ZXJ2YWFnZGVcbiAgICAgICByaW5nKS4gQmV2ZXN0aWdkIHZpYSBkZSB3aXpob2xkLWhvb2sgaW4gaGV0IGhhcm5hcywgb3AgaGV0emVsZmRlXG4gICAgICAgbW9tZW50OiBcImNvbXB1dGVkIGNsYXNzaWMgaXMtc2VsZWN0ZWQ9dHJ1ZSB8IGJveFNoYWRvdz1yZ2JhKDAsIDAsIDAsXG4gICAgICAgMCkgMHB4IDBweCAwcHggMHB4LCAuLi5cIiAobW9ldCBkZSByaW5nIGhlYmJlbiwgdG9vbnQgJ20gbm9nIG5pZXQpIHZzLlxuICAgICAgIFwiY29tcHV0ZWQgYmFja2dyb3VuZCBpcy1zZWxlY3RlZD1mYWxzZSB8IGJveFNoYWRvdz1yZ2IoMTY1LCAxNzIsXG4gICAgICAgMjU1KSAuLi4gcmdiYSg3MCwgODIsIDI0MywgMC4yNSkgLi4uXCIgKG1hZyBoZW0gbmlldCBoZWJiZW4sIHRvb250ICdtXG4gICAgICAgbm9nIHfDqWwpIOKAlCBleGFjdCBkZSBpcy1zZWxlY3RlZC1rbGV1cmVuIG9wIGRlIGthYXJ0IGRpZSBkZSBjbGFzcyBuZXRcbiAgICAgICBrd2lqdCBpcy4gRml4OiBib3gtc2hhZG93IE5JRVQgbWVlciBhbmltZXJlbiBvcCBkZXplIGthYXJ0IOKAlFxuICAgICAgIGJvcmRlci1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yIGJsaWp2ZW4gemFjaHQgb3ZlcnZsb2VpZW4gKGhvdmVyL1xuICAgICAgIGFjdGl2ZSksIG1hYXIgZGUgc2VsZWN0aWUtcmluZyB2ZXJzY2hpam50L3ZlcmR3aWpudCBESVJFQ1Qgem9kcmEgZGVcbiAgICAgICBjbGFzcyB3aXNzZWx0LCB6b2RhdCBoaWogbm9vaXQgbWVlciBvcCBlZW4gdHVzc2VudGlqZHNlIChvbmp1aXN0ZSlcbiAgICAgICBhbmltYXRpZXN0YW5kIGdldmFuZ2VuIGthbiB3b3JkZW4g4oCUIG9vayBuaWV0IGJpaiBlZW4gcmVzZXQgbmFhclxuICAgICAgIEtsYXNzaWVrLiAqL1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxMjBtcyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2U7XG59XG4vKiBIb3Zlci9wcmVzc2VkL3NlbGVjdGVkIG1ldCBkZSBiZXN0YWFuZGUgZm9jdXMtcmluZy10b2tlbnMgKGJlc2x1aXQgNCksXG4gICB6ZWxmZGUgcmVjZXB0IGFscyAucWRuYXByby1iYWNrZ3JvdW5kLXBpY2tlcidzIHRlZ2Vscy5cbiAgIEthYXJ0IDE3YyAoS2ltcyB2aXN1ZWxlIHJldmlldywgcHVudGVuIDEvMy80KTpcbiAgIC0gZ2VlbiB0cmFuc2Zvcm0vdHJhbnNsYXRlWS9zY2FsZSBtZWVyIG9wIDpob3ZlciBvZiA6YWN0aXZlIChwdW50IDMpO1xuICAgLSBoZXQgcHJlc3NlZC1wYXRyb29uIGlzIDEtb3AtMSBnZXNwaWVnZWxkIHZhbiBkZSBrbm9wLWNvbXBvbmVudFxuICAgICAoY29tcG9uZW50cy92Mi9idXR0b24vX2J1dHRvbi5zY3NzLCAuYnV0dG9uLXNlY29uZGFyeS1vdXRsaW5lIGVuXG4gICAgIC5idXR0b24tc2Vjb25kYXJ5LXB1cnBsZTogOmhvdmVyID0gZWVuIGxpY2h0ZSBhY2h0ZXJncm9uZHRpbnQsIDphY3RpdmUgPVxuICAgICBlZW4gaWV0cyBkaWVwZXJlIHRpbnQgdmFuIGRlemVsZmRlIGtsZXVyZmFtaWxpZSwgR0VFTiB0cmFuc2Zvcm0gZW4gR0VFTlxuICAgICBleHRyYSBib3gtc2hhZG93IG9wIDphY3RpdmUg4oCUIGRlIGtub3AtY29tcG9uZW50IGRvZXQgZGF0IG5lcmdlbnM7IHB1bnQgNCkuICovXG4ucHVsc2Utd2l6LWNhcmQ6aG92ZXIgIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS0zMDAsICNhOWFkZGUpOyB9ICAvKiBLaW0gMjQuMDg6IGhvdmVyIHZlcmZ0IE5JRVQsIGFsbGVlbiBkZSByYW5kIGtsZXVydC4gKi9cbi5wdWxzZS13aXotY2FyZDphY3RpdmUgeyBib3JkZXItY29sb3I6IHZhcigtLWMtcHVycGxlLTMwMCwgI2E5YWRkZSk7IGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyLXRyZWUtYnJpZ2h0LCAjZDRkOGVlKTsgfVxuLyogS2ltcyByZXZpZXcgMjQuMDggKHR3ZWVkZSByb25kZSk6IG9wIGRlIEVDSFRFIHBhZ2luYSBsYWFkdCBkZSB2MS1oZWFkZXJcbiAgIGJvb3RzdHJhcC5taW4uY3NzLCBlbiBkaWUgemV0IGBidXR0b246Zm9jdXMgeyBvdXRsaW5lOiA1cHggYXV0b1xuICAgLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIH1gIG9wIEVMS0Uga25vcC4gRGV6ZSBrYWFydGVuIHppam4gYnV0dG9ucywgZHVzXG4gICBlZW4gZWNodGUgbXVpc2tsaWsgKGRpZSB3ZWwgOmZvY3VzIGdlZWZ0IG1hYXIgZ2VlbiA6Zm9jdXMtdmlzaWJsZSkga3JlZWdcbiAgIGRhYXJkb29yIGFsc25vZyBkZSBoYXJkZSBibGF1d2Ugc3lzdGVlbS1yaW5nIHJvbmQgZGUga2FhcnQg4oCUIGRlXG4gICA6Zm9jdXMtdmlzaWJsZS1yZWdlbCBoaWVyb25kZXIga29uIGRhdCBuaWV0IG9wdmFuZ2VuLiBJbiBoZXQgc3RhdGlzY2hlXG4gICBoYXJuYXMgKF9wdWxzZS1tb2RhbC1oYXJuZXNzLmh0bWwpIGxhYWR0IGJvb3RzdHJhcCBuaWV0LCBkYWFyb20gd2FzIGhldFxuICAgZGFhciBuaWV0IHRlIHppZW4uIERlemUgcmVnZWwgemV0IGRlIGJvb3RzdHJhcC1vdXRsaW5lIHVpdCB2b29yIEFMTEVcbiAgIGZvY3Vzc3RhbmRlbjsgZGUgemljaHRiYXJlIGZvY3VzbWFya2VyaW5nIGJsaWpmdCBkZSB6YWNodGUgbGljaHRwYWFyc2VcbiAgIGR1YmJlbGUgcmluZyBoaWVyb25kZXIuICovXG4ucHVsc2Utd2l6LWNhcmQ6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XG4ucHVsc2Utd2l6LWNhcmQ6Zm9jdXMtdmlzaWJsZSB7XG4gICAgLyogS2ltcyByZXZpZXcgMjQuMDg6IG5ldmVyIHRoZSBoYXJkIGRhcmsgcmluZyBvbiB0aGVzZSBjYXJkcy4gRm9jdXMgdXNlc1xuICAgICAgIHRoZSBTQU1FIHNvZnQgbGlnaHQtcHVycGxlIGRvdWJsZSByaW5nIGFzIC5pcy1zZWxlY3RlZCwgc28gYSBjbGljayAob3JcbiAgICAgICBwcm9ncmFtbWF0aWMgZm9jdXMpIGNhbiBuZXZlciBwYWludCB0aGUgaGFyc2ggYmx1ZSBpbm5lciBib3JkZXIuICovXG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYy1wdXJwbGUtMjAwLCAjYTVhY2ZmKSwgMCAwIDAgNXB4IHZhcigtLWZvY3VzLWdsb3csIHJnYmEoODMsIDc0LCAxODMsIC4xOCkpO1xufVxuLyogS2FhcnQgMTdjLCBwdW50IDE6IGRlIGRpa2tlIGRvbmtlcnBhYXJzZSByYW5kIGJpaiBzZWxlY3RpZSB3YXMgdGUgaGFyZC5cbiAgIERlIGdlc2VsZWN0ZWVyZGUga2FhcnQgaG91ZHQgbnUgYWxsZWVuIGVlbiBkdW5uZSBsaWNodHBhYXJzZSByYW5kXG4gICAoLS1jLXB1cnBsZS0yMDApIHBsdXMgZGUgemFjaHRlIGdsb3cgZXJvbWhlZW4gKC0tZm9jdXMtZ2xvdykg4oCUIGdlZW4gaGFyZGVcbiAgIDJweCAtLWZvY3VzLXJpbmcgbGFhZyBtZWVyLiAqL1xuLnB1bHNlLXdpei1jYXJkLmlzLXNlbGVjdGVkIHtcbiAgICAvKiBLYWFydCAxN2Q6IGRlIFNPRlQgbGljaHRwYWFyc2UgZHViYmVsZSByaW5nICh6b2FscyBkZSBmb2N1c3JpbmcsIG1hYXJcbiAgICAgICBsaWNodHBhYXJzLCBub29pdCBkZSBoYXJkZSBkb25rZXJlIHJhbmQpOiBkdW5uZSBwdXJwbGUtMjAwLXJpbmcgcGx1cyBkZVxuICAgICAgIHphY2h0ZSBnbG93LiBEZXplIHJpbmcgdmVyc2NoaWpudCBhbHRpamQgRElSRUNUIOKAlCB6aWUgaGV0IFwidHJhbnNpdGlvblwiLVxuICAgICAgIGNvbW1lbnRhYXIgYmlqIGRlIGJhc2lzcmVnZWwgLnB1bHNlLXdpei1jYXJkIGhpZXJib3ZlbiB2b29yIHdhYXJvbVxuICAgICAgIGJveC1zaGFkb3cgZGFhciBiZXd1c3QgTklFVCBtZWVyIGluIGRlIHRyYW5zaXRpZWxpanN0IHN0YWF0LiAqL1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtMjAwLCAjYTVhY2ZmKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYy1wdXJwbGUtMjAwLCAjYTVhY2ZmKSwgMCAwIDAgNXB4IHZhcigtLWZvY3VzLWdsb3csIHJnYmEoODMsIDc0LCAxODMsIC4xOCkpO1xufVxuLyogRGUga2FhcnQtaW5ob3VkICh2cmFhZy9zdWJ0ZWtzdC9waWxsZW4pIGtyaWpndCB6aWpuIGVpZ2VuIGJpbm5lbmthbnQsIHdhbnRcbiAgIGRlIGlsbHVzdHJhdGllL2NhbnZhcyBoaWVyYm92ZW4gbG9vcHQgYmV3dXN0IHRvdCBkZSBrYWFydHJhbmQgKGJvcmRlcmxlc3MsXG4gICBLaW1zIGFubm90YXRpZSkuICovXG4ucHVsc2Utd2l6LWNhcmQtcSAgIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDEwcHggMTJweCAycHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWMxZTJhKTtcbn1cbi5wdWxzZS13aXotY2FyZC1zdWIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCAxMnB4IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xufVxuLyogRGUgdHdlZSB2b29yYmVlbGRwaWxsZW46IGtsaWtrZW4gbW9ldCBkZSBLQUFSVCBzZWxlY3RlcmVuLCBuaWV0IGRlIHBpbFxuICAgXCJhYW56ZXR0ZW5cIiDigJQgdmFuZGFhciBwb2ludGVyLWV2ZW50czpub25lIG9wIGRlIHdyYXBwZXIgKGRlY29yYXRpZWYpLiAqL1xuLnB1bHNlLXdpei1jYXJkLWFuc3dlcnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbiAgICBtYXJnaW46IDAgMTJweCAxMnB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnB1bHNlLXdpei1jYXJkLWFuc3dlcnMgcWRuYXByby1hbnN3ZXItYnV0dG9uIHsgd2lkdGg6IDEwMCU7IH1cblxuLyogS2xhc3NpZWs6IGJvcmRlcmxlc3MgaWxsdXN0cmF0aWUgb3ZlciBkZSB2b2xsZSBrYWFydGJyZWVkdGUgKGthYXJ0IDE3ZCDigJRcbiAgIEtpbXMgcmFrZXQtaWxsdXN0cmF0aWUsIGNvdmVyLWZpdCwgZ2VlbiB2ZXJ2b3JtaW5nKS4gRGUgYWNodGVyZ3JvbmRrbGV1clxuICAgYmxpamZ0IHN0YWFuIGFscyBsYWFkdmFsL2ZhbGxiYWNrLWtsZXVyIG9uZGVyIGRlIDxpbWc+ICh6aWNodGJhYXIgaW4gZGVcbiAgIHJhbmQgYWxzIGhldCBiZWVsZCBuaWV0IGxhYWR0KSwgbmlldCBhbHMgemljaHRiYWFyIHZsYWsgZXJvbWhlZW4g4oCUIGRlXG4gICBpbGx1c3RyYXRpZSB2dWx0IGRlIGhlbGUgaG9vZ3RlL2JyZWVkdGUgdmFuIGRpdCBrYWRlci4gKi9cbi8qIEtpbXMgcmV2aWV3IDI0LjA4IChkZXJkZSByb25kZSk6IGRlIGRyaWUgdm9vcmJlZWxka2FhcnRlbiBtb2V0ZW4gaHVuXG4gICBBTlRXT09SRE9QVElFUyBvcCBleGFjdCBkZXplbGZkZSBob29ndGUgaGViYmVuLCBtZXQgZGUgbWlkZGVsc3RlIGthYXJ0XG4gICAoXCJUZWtzdCBvcCBhY2h0ZXJncm9uZFwiKSBhbHMgZ29lZGUgdm9vcmJlZWxkLiBEZSBrYWFydGVuIHdhcmVuIGFsIGV2ZW5cbiAgIGhvb2cgKGZsZXg6MSBoaWVyYm92ZW4pLCBtYWFyIGRlIGluaG91ZCBzdGFwZWxkZSBpbiBhbGxlIGRyaWUgdmFuIGJvdmVuXG4gICBhZiBlbiBuaWV0cyB2dWxkZSBkZSByZXN0cnVpbXRlLCBkdXMgc3RvbmQgZGUgZWVyc3RlIHBpbCBvcCAxNzcgKEtsYXNzaWVrKVxuICAgLyAzMDkgKG1pZGRlbHN0ZSkgLyAxMjkgKFZyaWogdm9ybWdldmVuKSBweCDigJQgZ2VtZXRlbiBtZXQgZGUgcGlsbWV0aW5nIGluXG4gICBfcHVsc2UtbW9kYWwtaGFybmVzcy5odG1sICg/d2l6aG9sZD1zdGVwMSkuXG4gICBIZXQgcmVjZXB0OiBwZXIga2FhcnQgc2xva3QgRUVOIGJsb2sgZGUgcmVzdHJ1aW10ZSBvcCAoZmxleC1ncm93KSwgZW4gZGVcbiAgIHBpbGxlbiB6aWpuIG92ZXJhbCBoZXQgbGFhdHN0ZSBlbGVtZW50IG1ldCBkZXplbGZkZSBvbmRlcm1hcmdlLiBEYW4gdmFsdFxuICAgZGUgYm92ZW5rYW50IHZhbiBkZSBlZXJzdGUgcGlsIGF1dG9tYXRpc2NoIG9wIGRlemVsZmRlIGxpam4sIG9uZ2VhY2h0IG9mXG4gICBlciBib3ZlbiBkZSBwaWxsZW4gZWVuIHZyYWFnICsgc3VidGVrc3Qgc3RhYXQgKEtsYXNzaWVrKSwgYWxsZWVuIGVlblxuICAgc3VidGVrc3QgKG1pZGRlbHN0ZSkgb2YgbmlldHMgKFZyaWogdm9ybWdldmVuKS4gSG9vZ3RlcyBtZXQgZGUgaGFuZFxuICAgZ2VsaWpremV0dGVuIHpvdSBicmVrZW4gem9kcmEgZWVuIHZlcnRhbGluZyBlZW4gcmVnZWwgbGFuZ2VyIHdvcmR0LlxuICAgSGllciBpcyBkYXQgaGV0IGlsbHVzdHJhdGlla2FkZXI6IGdlZW4gVkFTVEUgOTZweCBtZWVyIG1hYXIgOTZweCBhbHNcbiAgIE1JTklNVU0gcGx1cyBmbGV4LWdyb3csIHpvZGF0IGhldCBiZWVsZCBkb29yZ3JvZWl0IHRvdCBoZXQgbmV0IHpvIGdyb290XG4gICBpcyBhbHMgaGV0IGFjaHRlcmdyb25kdmxhayB2YW4gZGUgbWlkZGVsc3RlIGthYXJ0IChLaW1zIGFubm90YXRpZTpcbiAgIFwiYWZiZWVsZGluZyBkdXMgbmV0IHpvIGdyb290IGFscyBpbiBkZSBtaWRkZWxzdGUgb3B0aWVcIikuXG4gICDimqDvuI8gYHBvc2l0aW9uOiByZWxhdGl2ZWAgaGllciArIGBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwYCBvcCBkZSA8aW1nPlxuICAgKHppZSBoaWVyb25kZXIpIGlzIEdFRU4gb3BzbXVrOiBoZXQgaXMgZGUgZW5pZ2Ugc3RhbmQgZGllIGluIEJFSURFIGxheW91dHNcbiAgIGtsb3B0LiBEZSBpbWcgc3RvbmQgb3Agd2lkdGgvaGVpZ2h0IDEwMCUuIFpvZHJhIGRlIGhvb2d0ZSB2YW4gZGl0IGthZGVyXG4gICBuaWV0IG1lZXIgVkFTVCBpcyAoOTZweCkgbWFhciBkb29yIGZsZXgtZ3JvdyBiZXBhYWxkIHdvcmR0LCByZXNvbHZ0IGRpZVxuICAgaGVpZ2h0OjEwMCUgbmlldCBpbiBkZSBHRVNUQVBFTERFIHN0YW5kICg8PSA5MDBweCwgw6nDqW4ga29sb20sIGF1dG8tcmlqOlxuICAgZ2VlbiBkZWZpbml0aWV2ZSBvdWRlcmhvb2d0ZSBvbSB0ZWdlbiB0ZSByZWtlbmVuKSDigJQgZGUgaW1nIHZhbHQgZGFuIHRlcnVnXG4gICBvcCB6aWpuIGludHJpbnNpZWtlIHZlcmhvdWRpbmcgZW4gd2VyZCBiaWogODIwcHggdmlld3BvcnQgfjQ5M3B4IGhvb2csXG4gICB3YWFyZG9vciBkZSBrbGFzc2lla2Uga2FhcnQgNjM4cHggd2VyZCBpLnAudi4gfjIwMHB4LiBHZW1ldGVuIG1ldCBkZVxuICAgcGlsbWV0aW5nIGluIGhldCBoYXJuYXMgb3AgLS13aW5kb3ctc2l6ZT04MjAuIEFic29sdXRlIHBvc2l0aW9uZXJpbmdcbiAgIGJpbm5lbiBlZW4gcmVsYXRpdmUga2FkZXIgdnVsdCBhbHRpamQgZXhhY3QgaGV0IGthZGVyLCBvZiBkZSBob29ndGUgbnVcbiAgIHZhbiBmbGV4LWdyb3csIHZhbiBkZSBtaW4taGVpZ2h0IG9mIHZhbiBlZW4gbWVkaWEtcXVlcnkga29tdC4gKi9cbi5wdWxzZS13aXotY2FyZC1pbGx1c3RyYXRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiA5NnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlLCAjZjNmNGZiKTtcbn1cbi8qIENvdmVyICsgY2VudGVyLXRvcC1pc2g6IGhldCBvbmRlcndlcnAgKGdlemljaHQgKyByYWtldCkgc3RhYXQgaW4gaGV0XG4gICBCT1ZFTlNURSBkZWVsIHZhbiBkZSBpbGx1c3RyYXRpZSAoMjc0MngxODI4LCBrb3Agcm9uZCB54omIMTUwLTQ1MCwgcmFrZXRcbiAgIHJvbmQgeeKJiDI1MC03NTApIOKAlCBiaWogZWVuIGJyZWRlL2xhZ2Uga2FhcnQgKGNvdmVyIHNjaGFhbHQgb3AgYnJlZWR0ZSxcbiAgIGR1cyBkZSBob29ndGUgd29yZHQgYWZnZWthcHQpIGxhYXQgZWVuIHB1cmUgY2VudGVyLWNlbnRlci1jcm9wIHRlIHZlZWxcbiAgIHZhbiBoZXQgYm92ZW5zdGUgaG9vZmQvaGFhciB3ZWcgZW4gdGUgdmVlbCBsdWNodC9yb29rIG9uZGVyaW4gc3RhYW4uXG4gICBvYmplY3QtcG9zaXRpb246IGNlbnRlciAyNSUgZ2V0ZXN0IG1ldCBkZSBkYWFkd2Vya2VsaWprZSBicmVlZHRlL2hvb2d0ZS1cbiAgIHZlcmhvdWRpbmcgdmFuIGRpdCBrYWRlcjogaG91ZHQgZ2V6aWNodCDDiU4gcmFrZXQgZ29lZCBpbiBiZWVsZC4gS2ltc1xuICAgcmV2aWV3IDI0LjA4IChkZXJkZSByb25kZSkgbWFha3QgZGl0IGthZGVyIGhvZ2VyICh+MjgweDI0NiBpLnAudi5cbiAgIH4yODB4OTYsIHppZSAucHVsc2Utd2l6LWNhcmQtaWxsdXN0cmF0aW9uIGhpZXJib3Zlbikg4oCUIG9wbmlldXcgZ2VtZXRlbjpcbiAgIGJpaiBkaWUgaG9nZXJlIHZlcmhvdWRpbmcgd29yZHQgZXIgTUlOREVSIGhvb2d0ZSBhZmdla2FwdCwgZHVzIGJsaWpmdFxuICAgY2VudGVyIDI1JSBnb2VkIHN0YWFuIGVuIGhvZWZ0IGhldCBicmFuZHB1bnQgbmlldCBtZWUgdGUgdmVyc2NodWl2ZW4uICovXG4ucHVsc2Utd2l6LWNhcmQtaWxsdXN0cmF0aW9uLWltZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlciAyNSU7XG59XG5cbi8qIFRla3N0IG9wIGFjaHRlcmdyb25kOiBkZSBib3ZlbnN0ZSB+NTUlIHZhbiBkZSBrYWFydCBpcyBkZSBzY8OobmUtY2FudmFzXG4gICAocWRuYXByby1wdWxzZS1jYW52YXMsIFdFRVJHQVZFKSBtZXQgZGUgdnJhYWcgZ2VjZW50cmVlcmQgZXJvcDsgZGUgcmVzdFxuICAgdmFuIGRlIGthYXJ0IChzdWJ0ZWtzdCArIHBpbGxlbikgYmxpamZ0IHdpdC4gKi9cbi5wdWxzZS13aXotY2FyZC0tYmFja2dyb3VuZCB7IHBhZGRpbmc6IDA7IH1cbi5wdWxzZS13aXotY2FyZC1iZ2NhbnZhcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLyogMjguMDguMjAyNjogMTYvMTAgZW4gTklFVCAxNi85LiBEZSBjcm9wIGRpZSBkZSBnZWJydWlrZXIgbW9ldCBkb29ybG9wZW5cbiAgICAgICAoUFVMU0VfUEhPVE9fQ1JPUF9SQVRJTyBpbiBkZXRhaWwuaHRtbCksIGhldCBjb21wb25lbnQgemVsZiBlbiBkZSBrYWFydCBpblxuICAgICAgIGRlIGFwcCBzdGFhbiBhbGxlIGRyaWUgb3AgMTYvMTA7IGFsbGVlbiBkZSB3aXphcmQtZnJhbWVzIHN0b25kZW4gb3AgMTYvOS5cbiAgICAgICBEYWFyZG9vciBvbnR3aWVycCBqZSBvcCBlZW4gYW5kZXIgdmxhayBkYW4gamUgdGVydWdrcmVlZywgd2F0IHByZWNpZXMgZGVcbiAgICAgICBrbGFjaHQgdmFuIEtpbSB3YXMgKCdkZSB2ZXJob3VkaW5nZW4gbW9ldGVuIGdlbGlqayB6aWpuJykuICovXG4gICAgYXNwZWN0LXJhdGlvOiAxNiAvIDEwO1xufVxuLnB1bHNlLXdpei1jYXJkLWJnY2FudmFzIHFkbmFwcm8tcHVsc2UtY2FudmFzIHsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJvcmRlci1yYWRpdXM6IDA7IH1cbi5wdWxzZS13aXotY2FyZC1ib2R5IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgcGFkZGluZy10b3A6IDEwcHg7IH1cbi5wdWxzZS13aXotY2FyZC1ib2R5IC5wdWxzZS13aXotY2FyZC1zdWIgeyBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qIFZyaWogdm9ybWdldmVuOiBib3ZlbmFhbiBkZSB2cmFhZywgZGFuIGVlbiBrbGVpbmUgYWZiZWVsZGluZyBMSU5LUyBtZXRcbiAgIHdyYXBwZW5kZSB1aXRsZWd0ZWtzdCBlcm9taGVlbiAoZmxvYXQsIEtpbXMgYW5ub3RhdGllKSwgZGFuIGRlIHBpbGxlbi4gKi9cbi8qIEtpbXMgcmV2aWV3IDI0LjA4IChkZXJkZSByb25kZSk6IGRlIGBwYWRkaW5nLWJvdHRvbTogNHB4YCBkaWUgaGllciBzdG9uZFxuICAgaXMgd2VnLiBEZSBhbmRlcmUgdHdlZSBrYWFydGVuIGhlYmJlbiBwYWRkaW5nIDAgKHppZSAucHVsc2Utd2l6LWNhcmQpLFxuICAgZHVzIGRpZSA0cHggemV0dGUgZGUgcGlsbGVuIHZhbiBERVpFIGthYXJ0IHN0cnVjdHVyZWVsIDRweCBob2dlciBkYW4gZGVcbiAgIGFuZGVyZSB0d2VlIOKAlCBwcmVjaWVzIGhldCBzb29ydCB2ZXJzY2hpbCBkYXQgZGUgXCJnZWxpamtlIGhvb2d0ZVwiIGFsc25vZ1xuICAgbmV0IG5pZXQgaGFhbHQuIERlIG9uZGVybWFyZ2UgdmFuIGhldCBwaWxsZW5ibG9rICgxMnB4KSBpcyBudSBpbiBhbGxlXG4gICBkcmllIGRlIGthYXJ0ZW4gZGUgZW5pZ2UgcnVpbXRlIG9uZGVyIGRlIHBpbGxlbi4gKi9cbi8qIEtpbXMgcmV2aWV3IDI0LjA4IChWSUVSREUgcm9uZGUpOiBkZSBrYWFydCBtb2V0IExBVEVOIFpJRU4gZGF0IGplIGhpZXIgamVcbiAgIGVpZ2VuIGthZGVyIGJvdXd0LCBcImFscyBlZW4gc29vcnQgV29yZCwgbWV0IGZvdG8ncyBlbiB0ZWtzdCBuYWFzdCBlbGthYXJcIi5cbiAgIERlIG91ZGUgb3B6ZXQgKGVlbiA0MHg0MC1wbGFhdGplIGRhdCBpbiBkZSB0ZWtzdCB6d2VlZnQsIDExLjVweCBsZXR0ZXJzLFxuICAgZGFhcm9uZGVyIGVlbiBoYWxmIGxlZ2Uga2FhcnQpIGJlbG9vZmRlIGRhdCB3ZWwgbWFhciB0b29uZGUgaGV0IG5pZXQuXG4gICBOdSBlZW4gbWluaWF0dXVyLURPQ1VNRU5UOiBlaWdlbiBrb3AsIGJlZWxkIExJTktTIG1ldCBkZSB1aXRsZWcgRVJOQUFTVCxcbiAgIGRhYXJvbmRlciBlZW4gdHdlZWRlIGFsaW5lYSBvdmVyIGRlIHZvbGxlIGJyZWVkdGUsIGRhbiBwYXMgZGUgcGlsbGVuLlxuICAgRGl0IGJsb2sgaXMgbWV0ZWVuIG9vayBoZXQgYmxvayBkYXQgZGUgcmVzdHJ1aW10ZSBvcHNsb2t0IChmbGV4LWdyb3cpIOKAlFxuICAgemVsZmRlIHJlY2VwdCBhbHMgaGV0IGlsbHVzdHJhdGlla2FkZXIgYmlqIEtsYXNzaWVrIGVuIGhldCBhY2h0ZXJncm9uZC1cbiAgIHZsYWsgYmlqIGRlIG1pZGRlbHN0ZSBrYWFydCwgem9kYXQgZGUgZWVyc3RlIGFudHdvb3JkcGlsIGluIGFsbGUgZHJpZSBkZVxuICAga2FhcnRlbiBvcCBkZXplbGZkZSBob29ndGUgYmxpamZ0IHZhbGxlbi4gYGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbmBcbiAgIHZlcmRlZWx0IGRlIHdpbnN0IG92ZXIga29wL2JlZWxkcmlqL3Nsb3RhbGluZWEgaW4gcGxhYXRzIHZhbiBoZW0gYWxzIMOpw6luXG4gICBnYXQgb25kZXIgZGUgdGVrc3QgdGUgbGF0ZW4gc3RhYW4uICovXG4ucHVsc2Utd2l6LWNhcmQtZG9jIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW46IDEycHggMTJweCAxMnB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cbi8qIEVpZ2VuLCBHUk9URVJFIGtvcCBkYW4gLnB1bHNlLXdpei1jYXJkLXEgKDEzcHgsIGRlIGdlZGVlbGRlIGtvcCB2YW5cbiAgIEtsYXNzaWVrKTogYmlqIGRlemUgdmFyaWFudCBiZXBhYWwgamUgamUga29wcGVuIHplbGYsIGR1cyBsYWF0IGRlXG4gICB2b29yYmVlbGRrYWFydCBkYXQgb29rIHppZW4uICovXG4ucHVsc2Utd2l6LWNhcmQtZnJlZS1xIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYzFlMmEpO1xufVxuLyogQmVlbGQgZW4gdGVrc3QgTkFBU1QgZWxrYWFyIChLaW1zIEZpZ21hKS4gR2VlbiBmbG9hdCBtZWVyOiBiaWogZWVuIGZsb2F0XG4gICBsb29wdCBrb3J0ZSB0ZWtzdCBvbmRlciBoZXQgYmVlbGQgZG9vciBlbiBrcmlqZyBqZSBwcmVjaWVzIGhldCByb21tZWxpZ2VcbiAgIGJlZWxkIGRhdCBoaWVyIG5pZXQgbW9ldC4gRmxleCBob3VkdCBkZSB0d2VlIGtvbG9tbWVuIHN0cmFrIG5hYXN0IGVsa2FhclxuICAgZW4gbGFhdCBkZSB0ZWtzdCB6aWpuIGVpZ2VuIGtvbG9tIGhvdWRlbiwgb29rIGFscyBoaWogbGFuZ2VyIHdvcmR0LiAqL1xuLnB1bHNlLXdpei1jYXJkLWZyZWUtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTBweDtcbiAgICBtaW4td2lkdGg6IDA7XG59XG4ucHVsc2Utd2l6LWNhcmQtZnJlZS1leHBsYWluIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIC8qIEtpbTogXCJkZSB0ZWtzdCBpcyB0ZSBrbGVpblwiLiAxMS41LzE2IC0+IDEyLjUvMTguICovXG4gICAgZm9udC1zaXplOiAxMi41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xufVxuLyogRGUgc2xvdGFsaW5lYSBsb29wdCBiZXd1c3Qgb3ZlciBkZSBWT0xMRSBrYWFydGJyZWVkdGUgKGhldCBiZWVsZCBzdGFhdCBlclxuICAgbmlldCBtZWVyIG5hYXN0KSDigJQgZGF0IGlzIGhldCB0d2VlZGUgaGFsdmUgYmV3aWpzIHZhbiBcInZyaWogdm9ybWdldmVuXCI6XG4gICBuaWV0IGVsa2UgYWxpbmVhIGhvZWZ0IGRlemVsZmRlIHZvcm0gdGUgaGViYmVuLiAqL1xuLnB1bHNlLXdpei1jYXJkLWZyZWUtZXhwbGFpbi0tZnVsbCB7IGZsZXg6IDAgMCBhdXRvOyB9XG4vKiBLYWFydCAxN2QsIEtpbXMgZXhwbGljaWV0ZSBpbnN0cnVjdGllOiBkaXQga2FkZXJ0amUgaXMgdmllcmthbnQgKDQweDQwLFxuICAgbG9zIHZhbiBkZSA2cHggcGFkZGluZyBlcmJpbm5lbikgdGVyd2lqbCBkZSByYWtldC1pbGx1c3RyYXRpZSB6ZWxmXG4gICBMQU5EU0NBUEUgaXMgKDI3NDJ4MTgyOCwgfjEuNToxKSDigJQgb2JqZWN0LWZpdDpjb3ZlciBhbGxlZW4gem91IHpvbWFhclxuICAgbHVjaHQvcm9vayBsYXRlbiBzdGFhbiBpLnAudi4gaGV0IE9OREVSV0VSUCAoZGUgdnJvdXcgbWV0IGRlIHJha2V0KS5cbiAgIEdla296ZW4gYnJhbmRwdW50IChnZXZlcmlmaWVlcmQgbWV0IGVlbiAyMDB4MjAwLXRlc3Rjcm9wIGluIGhlYWRsZXNzXG4gICBDaHJvbWUsIHppZSBoZXQga2FhcnQtMTdkLXZlcnNsYWcpOiBoZXQgZ2V6aWNodCB2YW4gZGUgdnJvdXcgeml0IHJvbmRcbiAgIHjiiYgxMTEwL3niiYg0NTAgaW4gZGUgMjc0MngxODI4LWlsbHVzdHJhdGllLCBkZSByYWtldCByb25kIHjiiYgxNjcwL3niiYg1OTAg4oCUXG4gICBiZWlkZSBkaWNodCBnZW5vZWcgYmlqIGVsa2FhciAoeC1hZnN0YW5kIOKJiDU2MHB4KSBvbSBzYW1lbiBpbiDDqcOpblxuICAgdmllcmthbnRlIGNvdmVyLWNyb3AgdGUgcGFzc2VuIHpvbGFuZyBkaWUgY3JvcCBuaWV0IGRvb2QtY2VudHJlZXJ0LlxuICAgQmlqIG9iamVjdC1maXQ6Y292ZXIgb3AgZWVuIHZpZXJrYW50IGthZGVyIHdvcmR0IGRlIFZPTExFIGhvb2d0ZSAoMTgyOHB4KVxuICAgZ2V0b29uZCBlbiBhbGxlZW4gZGUgYnJlZWR0ZSBhZmdla2FwdCB0b3QgMTgyOHB4ICh2YW4gZGUgMjc0MnB4IHRvdGFhbCkg4oCUXG4gICBvYmplY3QtcG9zaXRpb24teSBkb2V0IGVyIGR1cyBuaWV0cyB0b2UgKGRlIHZvbGxlZGlnZSBob29ndGUgaXMgYWxcbiAgIHppY2h0YmFhcik7IG9iamVjdC1wb3NpdGlvbi14PTUyJSBsZWd0IGhldCBtaWRkZW4gdmFuIGRpZSAxODI4cHgtYnJlZGVcbiAgIGNyb3AgdHVzc2VuIGdlemljaHQgZW4gcmFrZXQgaW4sIHpvZGF0IGJlaWRlIHppY2h0YmFhciBibGlqdmVuLiAqL1xuLyogTWlkZGxlIGV4YW1wbGUgY2FyZDogS2ltJ3MgZGVkaWNhdGVkIHJlYWRhYmxlLWJhY2tncm91bmQgdmVyc2lvbiBvZiB0aGVcbiAgIHJvY2tldCBpbGx1c3RyYXRpb24gKEFjaHRlZ3JvbmQuc3ZnKSwgd2l0aCB0aGUgc2FtcGxlIHF1ZXN0aW9uIGluIERBUksgYm9sZFxuICAgdGV4dCBjZW50cmVkIG9uIGl0LCBleGFjdGx5IGxpa2UgaGVyIEZpZ21hLiBObyBzY3JpbSBuZWVkZWQ6IHRoZSBhc3NldFxuICAgaXRzZWxmIGtlZXBzIHRoZSB0ZXh0IHpvbmUgY2FsbS4gKi9cbi8qIEtpbXMgcmV2aWV3IDI0LjA4IChkZXJkZSByb25kZSk6IG9vayBkaXQgdmxhayBrcmlqZ3QgZmxleC1ncm93LCBtZXQgZGVcbiAgIDE2LzEwIGFscyBNSU5JTVVNLiBJbiBkZSBodWlkaWdlIHZlcnRhbGluZ2VuIGlzIGRlemUga2FhcnQgZGUgbGFuZ3N0ZSBlblxuICAgZ3JvZWl0IGhpZXIgZHVzIG5pZXRzIOKAlCBtYWFyIHpvZHJhIGRlIHVpdGxlZ3Rla3N0IHZhbiBcIlZyaWogdm9ybWdldmVuXCJcbiAgIMOpw6luIHJlZ2VsIGxhbmdlciB3b3JkdCAoYW5kZXJlIHRhYWwpLCBpcyBkZSBNSURERUxTVEUgZGUga29ydHN0ZSBlbiBtb2V0XG4gICBoaWogb3AgemlqbiBiZXVydCBrdW5uZW4gb3B2dWxsZW4sIGFuZGVycyBzdGFhbiBkZSBwaWxsZW4gd2VlciBvbmdlbGlqay4gKi9cbi5wdWxzZS13aXotY2FyZC1iZ2ltYWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYXNwZWN0LXJhdGlvOiAxNiAvIDEwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9hc3NldHMvcHVsc2UtYmFja2dyb3VuZHMvd2l6YXJkLXJha2V0LWFjaHRlcmdyb25kLnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciAzMCU7XG4gICAgcGFkZGluZzogMTJweCAxOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ucHVsc2Utd2l6LWNhcmQtYmdpbWFnZS1xIHtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQsICMxYzFlMmEpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogS2ltcyByZXZpZXcgMjQuMDggKHZpZXJkZSByb25kZSk6IGhldCBiZWVsZCBpcyBnZWVuIDQweDQwLXBvc3R6ZWdlbCBtZWVyXG4gICBtYWFyIGVlbiBlY2h0IGFmYmVlbGRpbmdzYmxvaywgfjM0JSB2YW4gZGUga2FhcnRicmVlZHRlIGVuIHN0YWFuZFxuICAgKGFzcGVjdC1yYXRpbyA0LzUsIGRlIHZlcmhvdWRpbmcgdWl0IEtpbXMgRmlnbWE6IDIwN3gyNjgpLiBgZmxleC1iYXNpc2BcbiAgIGluIHByb2NlbnRlbiBpLnAudi4gZWVuIHZhc3RlIHB4LW1hYXQsIHpvZGF0IGhldCBibG9rIGJpaiBlZW4gc21hbGxlcmVcbiAgIGthYXJ0IChnZXN0YXBlbGRlIHN0YW5kIG9uZGVyIDkwMHB4LCBvZiBlZW4gdmllcmRlIGtvbG9tIGxhdGVyKSBtZWVcbiAgIGtyaW1wdCBlbiBkZSB0ZWtzdCBlcm5hYXN0IG5vb2l0IHRvdCDDqcOpbiB3b29yZCBwZXIgcmVnZWwgZ2VrbmVwZW4gd29yZHQuXG4gICBCcmFuZHB1bnQ6IGJpaiBvYmplY3QtZml0OmNvdmVyIG9wIGVlbiBTVEFBTkQga2FkZXIgd29yZHQgdmFuIGRlXG4gICBsYW5kc2NoYXBzLWlsbHVzdHJhdGllICgyNzQyeDE4MjgpIGp1aXN0IGRlIEJSRUVEVEUgYWZnZWthcHQg4oCUIGVyIGJsaWpmdFxuICAgfjE0NjJweCB2YW4gZGUgMjc0MnB4IG92ZXIuIEdlemljaHQgKHh+MTExMCkgZW4gcmFrZXQgKHh+MTY3MCkgbGlnZ2VuXG4gICB+NTYwcHggdWl0IGVsa2FhciBlbiBwYXNzZW4gZGFhciBzYW1lbiBpbiB6b2xhbmcgZGUgY3JvcCBuaWV0XG4gICBkb29kLWNlbnRyZWVydDsgNTIlIGxlZ3QgaGV0IG1pZGRlbiB2YW4gZGllIGNyb3AgdHVzc2VuIGRpZSB0d2VlIGluXG4gICAoemVsZmRlIGJyYW5kcHVudCBhbHMgZGUgb3VkZSB2aWVya2FudGUgcG9zdHplZ2VsLCBvcG5pZXV3IGdlbGRpZyBvbWRhdFxuICAgYWxsZWVuIGRlIHZlcmhvdWRpbmcgdmVyYW5kZXJkZSwgbmlldCBkZSBhcyBkaWUgd29yZHQgYWZnZWthcHQpLiAqL1xuLnB1bHNlLXdpei1jYXJkLWZyZWUtaW1nIHtcbiAgICBmbGV4OiAwIDAgMzQlO1xuICAgIC8qIOKaoO+4jyBab25kZXIgZGV6ZSByZWdlbCBpcyBkZSBrYWFydCBzdHVrLiBFZW4gZmxleC1pdGVtIGhlZWZ0XG4gICAgICAgYG1pbi13aWR0aDogYXV0b2AsIGVuIHZvb3IgZWVuIFZFUlZBTkdFTiBlbGVtZW50IChlZW4gPGltZz4pIGlzIGRpZVxuICAgICAgIGF1dG9tYXRpc2NoZSBtaW5pbXVtbWFhdCBkZSBJTlRSSU5TSUVLRSBicmVlZHRlIHZhbiBoZXQgYmVzdGFuZCDigJQgaGllclxuICAgICAgIDI3NDJweC4gYGZsZXgtYmFzaXM6IDM0JWAgKDEzNHB4KSB3b3JkdCBkYWFyIHNpbXBlbHdlZyBkb29yXG4gICAgICAgb3ZlcnN0ZW1kOiBnZW1ldGVuIHN0b25kIGhldCBiZWVsZCBvcCAyNzQyeDM0MjggZW4gd2VyZCBkZSBoZWxlXG4gICAgICAga2FhcnRlbnJpaiAzNjYycHggaG9vZy4gR2VtZXRlbiBpbiBlZW4gbG9zIGhhcm5hcyBvcCBkZSBnZWNvbXBpbGVlcmRlXG4gICAgICAgc3R5bGUtdjEuY3NzLCBuaWV0IGJlcmVkZW5lZXJkLiAqL1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBhc3BlY3QtcmF0aW86IDQgLyA1O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUsICNmM2Y0ZmIpO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG9iamVjdC1wb3NpdGlvbjogNTIlIDMwJTtcbn1cblxuLyogU3RhcCAyOiBwbGFjZWhvbGRlci1zdGlqbCB2YW4ga2FhcnQgNiDigJQgbmlldCBtZWVyIGFhbmdlcm9lcGVuIHNpbmRzIGthYXJ0IDdcbiAgIChkZSBwbGFjZWhvbGRlci1wYW5lZWwtSFRNTCBiZXN0YWF0IG5pZXQgbWVlciksIG1hYXIgZGUgdmVydGFhbHNsZXV0ZWxcbiAgIGVyYWNodGVyIGJsaWpmdCBvbmdlYnJ1aWt0IGJlc3RhYW4gKHppZSBoZXQga2FhcnQtNy12ZXJzbGFnKS4gUmVnZWwgbGF0ZW5cbiAgIHN0YWFuIGlzIGdvZWRrb3BlciBkYW4gZWVuIGNsYXNzIHdlZ2hhbGVuIGRpZSBtaXNzY2hpZW4gbm9nIGVyZ2VucyBhbmRlcnNcbiAgIGdlYnJ1aWt0IHdvcmR0OyBoaWVyIG5pZXQgaGV0IGdldmFsLCBtYWFyIGdlZW4gcmlzaWNvIHZvb3IgbmlldHMgbmVtZW4uICovXG4ucHVsc2Utd2l6LXN0ZXAyLXBsYWNlaG9sZGVyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMzJweCAxNnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2U1ZTVlYSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xufVxuXG4vKiAtLS0gU3RhcCAyOiBpbmhvdWQgcGVyIG9wbWFha3ZhcmlhbnQgKGthYXJ0IDcpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBQcmV2aWV3IExJTktTLCB2ZWxkZW4gUkVDSFRTIChTQ09QRS1iZXNsdWl0IDE1KTsgb25kZXIgZGUgYmVzdGFhbmRlXG4gICB3aXphcmQtYnJlZWR0ZWdyZW5zIHZhbiA5MDBweCAoemllIC5wdWxzZS13aXotY2FyZHMgaGllcmJvdmVuKSBzdGFwZWx0IGhldCxcbiAgIHByZXZpZXcgYm92ZW4uICovXG4ucHVsc2Utd2l6LXN0ZXAyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDMwMHB4KSBtaW5tYXgoMCwgMWZyKTtcbiAgICBnYXA6IDI0cHg7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLnB1bHNlLXdpei1zdGVwMiB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7IH1cbn1cblxuLyogS2FhcnQgMTJiIChCT0FSRC1wdWxzZS1vcG1hYWstaHlicmlkZSwgMjUuMDguMjAyNik6IHN0YXAgMyAoSW5zdGVsbGluZ2VuKVxuICAgaGVyZ2VicnVpa3QgZGUgZ3JpZCBoaWVyYm92ZW4gKGAucHVsc2Utd2l6LXN0ZXAyYCwgb25nZXdpanppZ2QpIGluIHBsYWF0c1xuICAgdmFuIGVlbiBlaWdlbiAyLWtvbG9tcy1sYXlvdXQgdGUgc2NocmlqdmVuIOKAlCB6aWUgZGUgdG9lbGljaHRpbmcgYmlqXG4gICBgc3RlcDNCb2R5YCBpbiBkZXRhaWwuaHRtbC4gYC5wdWxzZS13aXotc3RlcDMtZmllbGRzYCBpcyBkZSBlbmlnZSBuaWV1d2VcbiAgIHJlZ2VsOiBoaWogemV0IGRlIGluc3RlbGxpbmdlbmtvbG9tIGV4cGxpY2lldCBpbiBrb2xvbSAyLCB6b2RhdCBoaWogZGFhclxuICAgYWwgc3RhYXQgdsOzw7NyZGF0IHdpek1vdmVQcmV2aWV3VG9TdGVwKCkgaGV0IGthYXJ0dm9vcmJlZWxkLXBhbmVlbCB2b29yIGhldFxuICAgZWVyc3QgbmFhciBkZXplIHN0YXAgdmVycGxhYXRzdCAoem9uZGVyIGRlemUgcmVnZWwgem91IGRlIGtvbG9tLCBhbHMgZW5pZ2VcbiAgIGdyaWQtaXRlbSwgaW4gZGUgU01BTExFIGVlcnN0ZSBrb2xvbSB2YWxsZW4g4oCUIGF1dG8tcGxhYXRzaW5nIGtlbnQgZ2VlblxuICAgdm9vcmtldXIgdm9vciBkZSBicmVkZSBrb2xvbSkuIE9uZGVyIGRlIGJlc3RhYW5kZSA5MDBweC10ZXJ1Z3ZhbCBoaWVyYm92ZW5cbiAgIGlzIGRlIGdyaWQgemVsZiBhbCDDqcOpbiBrb2xvbSBicmVlZDsgYGdyaWQtY29sdW1uOiAyYCB6b3UgZGFhciBlZW5cbiAgIG92ZXJ0b2xsaWdlIHR3ZWVkZSAoaW1wbGljaWV0ZSkga29sb20gYWFubWFrZW4sIGR1cyBkaWUgdmFsIHRlcnVnIG5hYXJcbiAgIGtvbG9tIDEsIGV4YWN0IHpvYWxzIGRlIHJlc3QgdmFuIGRlemUgZ3JpZCBhbCBkb2V0LiAqL1xuLnB1bHNlLXdpei1zdGVwMy1maWVsZHMgeyBncmlkLWNvbHVtbjogMjsgfVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLnB1bHNlLXdpei1zdGVwMy1maWVsZHMgeyBncmlkLWNvbHVtbjogMTsgfVxufVxuLnB1bHNlLXdpei1zdGVwMi1wcmV2aWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIC8qIERlIGRyaWUgdm9vcmJlZWxkZW4gZGVsZW4gZGV6ZSBrb2xvbSBlbiB3aXNzZWxlbiB2aWEgW2hpZGRlbl0gKGJlc2x1aXRcbiAgICAgICAzOiBvcG1hYWsgd2lzc2VsZW4gYmV3YWFydCBhbGxlcywgZHVzIG5pZXRzIHdvcmR0IGhpZXIgb29pdCBoZXJib3V3ZCkuXG4gICAgICAgSGV0IHJlbGF0aXZlL292ZXJmbG93LWhvdXZhc3Qgdm9vciBkZSBVaXRsZWctc2hlZXQgaXMgb3AgMjYuMDguMjAyNlxuICAgICAgIChLaW1zIGFjY2VwdGF0aWV0ZXN0KSB2ZXJodWlzZCBuYWFyIC5wdWxzZS13aXotcHJldmlldy1mcmFtZVxuICAgICAgIGhpZXJvbmRlcjogZGUgc2hlZXQga2xlbXQgbnUgYWFuIGhldCBLQUFSVEZSQU1FLCBuaWV0IGFhbiBoZXQgaGVsZVxuICAgICAgIHBhbmVlbCwgem9kYXQgaGV0IEp1aXN0L0ZvdXQtc2NoYWtlbHRqZSBvbmRlciBoZXQgZnJhbWUga2FuIHN0YWFuXG4gICAgICAgem9uZGVyIGRhdCBkZSBzaGVldCBlciBvdmVyaGVlbiB6YWt0LiAqL1xufVxuXG4vKiBLaW1zIGFjY2VwdGF0aWV0ZXN0IDI2LjA4OiBoZXQgZnJhbWUgb20gZGUgZHJpZSBrYWFydHByZXZpZXdzICsgZGVcbiAgIFVpdGxlZy1zaGVldC4gYHBvc2l0aW9uOiByZWxhdGl2ZWAgKyBgb3ZlcmZsb3c6IGhpZGRlbmAgZ2V2ZW4gZGUgc2hlZXRcbiAgICgucHVsc2Utd2l6LWV4cGxhaW4tcHJldmlldywgdmVyZGVyb3ApIGVlbiBob3V2YXN0IG9tIE9OREVSIGRlIGthYXJ0IHRlXG4gICB3YWNodGVuICh0cmFuc2xhdGVZKSB6b25kZXIgc2Nyb2xsYmFsayBvZiBleHRyYSBydWltdGUuIGBwb3NpdGlvbjpcbiAgIHJlbGF0aXZlYCAoZ2VlbiB0cmFuc2Zvcm0pIHZlcmFuZGVydCBuaWV0cyBhYW4gaGV0IGBwb3NpdGlvbjogZml4ZWRgLVxuICAgZ2VkcmFnIHZhbiBxZG5hcHJvLXBvcG92ZXIg4oCUIGRpZSBibGlqZnQgdC5vLnYuIGRlIHZpZXdwb3J0IHBsYWF0c2VuLCBvb2tcbiAgIGFsIHppdCBoaWogZGllcGVyIGluIGRlemUgYm9vbSAoZGUgYWNodGVyZ3JvbmQta2xldXJraWV6ZXIgaW5cbiAgIC5wdWxzZS13aXotYmctcHJldmlldykuIEluIGRlIHRlbGVmb29uLW92ZXJsYXkgKGthYXJ0IDkpIGlzIGhldCBwYW5lZWxcbiAgIHZpZXdwb3J0aG9vZyBtYWFyIGRpdCBmcmFtZSBrYWFydGhvb2cg4oCUIGRlIFwic2hlZXQgYmxpamZ0IGRlZWxzIHppY2h0YmFhclxuICAgaW4gZGljaHRlIHN0YW5kXCItYmV2aW5kaW5nIHVpdCBkZSBrYWFydC05LW1ldGluZ2VuIGlzIGRhYXJtZWUgb29rIHdlZy4gKi9cbi5wdWxzZS13aXotcHJldmlldy1mcmFtZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbn1cbi8qIEthYXJ0IDIxLWFhbnZ1bGxpbmcgKEtpbSk6IC5wdWxzZS13aXotc3RlcDItcHJldmlldy1raWNrZXIgKGthYXJ0IDE3LCBkZVxuICAgZ3JpanplIFwiUFVMU0UgU1RBUFwiLWV5ZWJyb3cgYm92ZW4gZGUgcHJldmlldykgaXMgVkVSV0lKREVSRCB1aXQgZGUgbWFya3VwXG4gICDigJQgZGUgbW9kYWx0aXRlbCBlbiBkZSB0eXBlcGlsbCB6ZWdnZW4gZGF0IGFsLiBHZWVuIGFuZGVyZSBnZWJydWlrZXJcbiAgIGdldm9uZGVuIChyZXBvLWJyZWRlIGdyZXAsIG9vayBkZSBoYXJuZXNzKSwgZHVzIGRlemUgQ1NTIGlzIGRvZGUgY29kZSBlblxuICAgaXMgaGllciB3ZWdnZWhhYWxkLiAqL1xuLnB1bHNlLXdpei1zdGVwMi1maWVsZHMgPiAqIHsgbWFyZ2luLXRvcDogMTRweDsgfVxuLnB1bHNlLXdpei1zdGVwMi1maWVsZHMgPiAqOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMDsgfVxuXG4vKiBLYWFydCAxNzogZGUga2xhc3NpZWtlIHByZXZpZXcgaXMgbnUgZWVuIEVDSFRFIGthYXJ0IChyYW5kICsgd2l0dGVcbiAgIGFjaHRlcmdyb25kKSwgZ2VlbiBsb3MgYmVlbGRibG9rIG1lZXIg4oCUIGZvdG8vdnJhYWcvc3VidGVrc3QvcGlsbGVuIHN0YWFuXG4gICBlciBhbGxlbWFhbCBpbiwgcHJlY2llcyB6b2FscyBkZSBrYWFydCBlciBzdHJha3MgRUNIVCB1aXR6aWV0LlxuICAgS2FhcnQgMiAoQk9BUkQtcHVsc2Utb3BtYWFrLWh5YnJpZGUsIDI1LjA4LjIwMjYpOiBkaXQgYmxvayBpcyBuaWV0IGxhbmdlclxuICAgY2xhc3NpYy1vbmx5IOKAlCBiaWogXCJmcmVlXCIgdG9vbnQgZGV6ZWxmZGUga2FhcnQtc2NoaWwsIG1hYXIgZGFuIEFMTEVFTiBkZVxuICAgZm90byAodnJhYWcvc3VidGVrc3QvcGlsbGVuIGJsaWp2ZW4gZGFhciB2ZXJib3JnZW4sIHppZVxuICAgd2l6QXBwbHlMYXlvdXRWaXNpYmlsaXR5KCkgaW4gZGV0YWlsLmh0bWwpLCB6b2RhdCBkZSByYW5kIGVyIHN0cmFrcyBhbHNcbiAgIGVlbiBuZXR0ZSBsb3NzZSBmb3Rva2FhcnQgdWl0emlldCBpLnAudi4gZWVuIGxlZWcgd2l0IHZsYWsgb25kZXIgZGUgZm90by4gKi9cbi5wdWxzZS13aXotY2xhc3NpYy1wcmV2aWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2U1ZTVlYSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG59XG4vKiBLbGFzc2llazogbWluaS1rYWFydHByZXZpZXcgbWV0IGhldCBiZWVsZGJsb2sgKEtpbXMgYW5ub3RhdGllcyBcIk5vZ1xuICAgYmxhbmtvXCIgLyBcIisgYWZiZWVsZGluZ1wiKS4gMTY6OSB6b2FscyBkZSBiaWpzbmlqZC1jcm9wcGVyIHZvb3IgUHVsc2VcbiAgIGFmZHdpbmd0IChwcmVzZXQgXCJwdWxzZVwiKSwgem9kYXQgZGUgcHJldmlldyBrbG9wdCBtZXQgd2F0IGVyIHN0cmFrc1xuICAgZGFhZHdlcmtlbGlqayBvcCBkZSBrYWFydCBzdGFhdC4gKi9cbi5wdWxzZS13aXotY2xhc3NpYy1waG90byB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8qIDI4LjA4LjIwMjY6IDE2LzEwIGVuIE5JRVQgMTYvOS4gRGUgY3JvcCBkaWUgZGUgZ2VicnVpa2VyIG1vZXQgZG9vcmxvcGVuXG4gICAgICAgKFBVTFNFX1BIT1RPX0NST1BfUkFUSU8gaW4gZGV0YWlsLmh0bWwpLCBoZXQgY29tcG9uZW50IHplbGYgZW4gZGUga2FhcnQgaW5cbiAgICAgICBkZSBhcHAgc3RhYW4gYWxsZSBkcmllIG9wIDE2LzEwOyBhbGxlZW4gZGUgd2l6YXJkLWZyYW1lcyBzdG9uZGVuIG9wIDE2LzkuXG4gICAgICAgRGFhcmRvb3Igb250d2llcnAgamUgb3AgZWVuIGFuZGVyIHZsYWsgZGFuIGplIHRlcnVna3JlZWcsIHdhdCBwcmVjaWVzIGRlXG4gICAgICAga2xhY2h0IHZhbiBLaW0gd2FzICgnZGUgdmVyaG91ZGluZ2VuIG1vZXRlbiBnZWxpamsgemlqbicpLiAqL1xuICAgIGFzcGVjdC1yYXRpbzogMTYgLyAxMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSwgI2YzZjRmYik7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnB1bHNlLXdpei1jbGFzc2ljLXBob3RvIGltZyB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6IGNvdmVyOyBkaXNwbGF5OiBibG9jazsgfVxuLyogVnJhYWcvc3VidGVrc3QvcGlsbGVuIGluIGRlIGtsYXNzaWVrZSBwcmV2aWV3LWthYXJ0LCBvbmRlciBkZSBmb3RvLiAqL1xuLnB1bHNlLXdpei1wcmV2aWV3LXEgICB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDEwcHggMTJweCAycHg7IGZvbnQtc2l6ZTogMTNweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWMxZTJhKTsgfVxuLyogS2ltcyBhbm5vdGF0aWUgMjcuMDguMjAyNjogXCJpayB3aWwgd2VsIGRhdCBlciBzcGF0aWVzIGdlcmVnaXN0cmVlcmQgd29yZGVuLFxuICAgZGV6ZSB3b3JkZW4gbnUgbmlldCBnZXRvb25kIGluIGRlIHByZXZpZXdcIi4gWmUgd2VyZGVuIFdFTCBiZXdhYXJkIChkZVxuICAgc2FuaXRpemVyIG9wIGRlIHNlcnZlciBsYWF0IFxcbiwgbGVnZSByZWdlbHMgZW4gdm9vcmxvb3BzcGF0aWVzIG9uZ2Vtb2VpZCxcbiAgIG5hZ2VtZXRlbikgZW4gZGUgYXBwIHRvb250IHplIG9vayBhbCAoYF9wbGF0dGVCb2R5TmFhckh0bWwoKWAgaW4gMTYtcHVsc2UuanNcbiAgIHpldCBcXG4gb20gbmFhciA8YnI+KSDigJQgYWxsZWVuIERFWkUgcHJldmlld2thYXJ0IHBsYWt0ZSBhbGxlcyBhYW4gZWxrYWFyLFxuICAgd2FudCBgd2hpdGUtc3BhY2VgIHN0b25kIG9wIGRlIHN0YW5kYWFyZCBgbm9ybWFsYCBlbiBkYW4gdmFsbGVuIG5ld2xpbmVzIGVuXG4gICBkdWJiZWxlIHNwYXRpZXMgc2FtZW4gdG90IMOpw6luIHNwYXRpZS4gYHByZS13cmFwYCBob3VkdCByZWdlbGFmYnJla2luZ2VuLFxuICAgbGVnZSByZWdlbHMgZW4gc3BhdGllcmVla3NlbiBpbnRhY3QgZW4gbGFhdCBsYW5nZSByZWdlbHMgbm9nIHN0ZWVkc1xuICAgYWZicmVrZW4uIERlIHN1YnRla3N0IGtvbXQgaGllciBhbHMgdGV4dENvbnRlbnQgYmlubmVuICh6aWVcbiAgIHdpelJlZnJlc2hDbGFzc2ljUHJldmlldyBpbiBkZXRhaWwuaHRtbCksIGR1cyBkZSBcXG4ncyBzdG9uZGVuIGFsIGluIGRlIERPTTtcbiAgIGhldCB3YXMgcHV1ciBkZSBDU1MuICovXG4ucHVsc2Utd2l6LXByZXZpZXctc3ViIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMCAxMnB4IDEwcHg7IGZvbnQtc2l6ZTogMTEuNXB4OyBsaW5lLWhlaWdodDogMTZweDsgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpOyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IH1cbi8qIEthYXJ0IE0xMS9NMTItY29udHJhY3QgKEJPQVJELXB1bHNlLW1hcmt1cC12Miwgcm9uZGUgMywgMjcuMDguMjAyNik6IGhldFxuICAgaWNvb24tYmxvayB2YW4gZGUgc3VidGVrc3QsIGdlY2VudHJlZXJkIG9wIHppam4gZWlnZW4gcmVnZWwsIH45NnB4IOKAlFxuICAgemVsZmRlIG1hYXQgYWxzIGRlIGFwcCBzdHJha3MgdG9vbnQuIFppZSBwdWxzZUV4dHJhY3RJY29uVG9rZW4oKSBpblxuICAgZGV0YWlsLmh0bWwgdm9vciBkZSB0b2tlbi1oZXJrZW5uaW5nIGRpZSBkaXQgYmxvayB2dWx0LiAqL1xuLnB1bHNlLXdpei1wcmV2aWV3LWljb24tYmxvY2sgeyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWFyZ2luOiAwIDEycHggMTBweDsgfVxuLnB1bHNlLXdpei1wcmV2aWV3LWljb24tYmxvY2sgaW1nIHsgd2lkdGg6IDk2cHg7IGhlaWdodDogOTZweDsgb2JqZWN0LWZpdDogY29udGFpbjsgfVxuLyogRGV6ZWxmZGUgYmxvay1tYWF0IHZvb3IgZGUgUklKS0Ugdm9ybSAoZGUgY29udHJhY3QtYWxpbmVhIGRpZSBkZSBlbW9qaS0vXG4gICBpY29vbi1rbm9wIGluIGRlIFdZU0lXWUcgaW52b2VndCwgemllIHFkbmFwcm8td3lzaXd5ZydzIGluc2VydENvbnRlbnQoKS1cbiAgIGFhbnJvZXAgaW4gbWFrZUVkaXRvckNvbnRyb2xsZXIpLiBEaXQgaXMgcHJlY2llcyB3YXQgdnJpai12b3JtZ2V2ZW5zXG4gICBwcmV2aWV3IHRvb250IChkaWUgemV0IGZyZWVFZGl0b3IudmFsdWUoKSByZWNodHN0cmVla3MgYWxzIGlubmVySFRNTCxcbiAgIGR1cyBkZSBpbWcga29tdCB2YW56ZWxmIG1lZSkgZW4gd2F0IGRlIGFwcCBzdHJha3Mgb29rIGhlcmtlbnRcbiAgIChpbWcucHVsc2UtYm9keS1pY29uLCB6aWUgMTYtcHVsc2UuanMpLiAqL1xuLnB1bHNlLWJvZHktaWNvbi1yb3cgeyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWFyZ2luOiA4cHggMDsgfVxuLnB1bHNlLWJvZHktaWNvbi1yb3cgLnB1bHNlLWJvZHktaWNvbixcbi5wdWxzZS1ib2R5LWljb24geyBtYXgtd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgb2JqZWN0LWZpdDogY29udGFpbjsgfVxuLyogS2ltIDAzLjA5LjIwMjY6IGhldCBpY29vbiBtb2VzdCBpbiBkZSB0ZWtzdHZlcndlcmtlciBncm90ZXIgZ2VzbGVlcHQga3VubmVuXG4gICB3b3JkZW4uIFRpbnlNQ0UgbGVndCBkaWUgbWFhdCB2YXN0IGFscyB3aWR0aC9oZWlnaHQtQVRUUklCVVVUIG9wIGRlIGltZyAoZWVuXG4gICBwcmVzZW50YXRpb25hbCBoaW50KSwgZW4gZWVuIGhpbnQgdmVybGllc3QgdmFuIMOpbGtlIHJlZ2VsIGhpZXIg4oCUIGVlbiBoYXJkZVxuICAgYHdpZHRoOiA5NnB4YCBzbGlrdGUgZHVzIGllZGVyZSBzbGVlcGJld2VnaW5nLiBEZSA5NnB4IGlzIG51IGFsbGVlbiBub2cgZGVcbiAgIFRFUlVHVkFMIHZvb3IgZWVuIGltZyB6b25kZXIgZWlnZW4gbWFhdDsgZHJhYWd0IGhpaiBlciBlZW4sIGRhbiBibGlqZnQgZGV6ZVxuICAgc3R5bGVzaGVldCBlcmFmLiBaZWxmZGUgYWZzcHJhYWsgaW4gZGUgdGVrc3R2ZXJ3ZXJrZXIgKGNvbnRlbnRfc3R5bGUgaW5cbiAgIHFkbmEtd3lzaXd5Zy5qcykgZW4gaW4gZGUgYXBwICgxNi1wdWxzZS5qcykuICovXG4ucHVsc2UtYm9keS1pY29uLXJvdyAucHVsc2UtYm9keS1pY29uOm5vdChbd2lkdGhdKSxcbi5wdWxzZS1ib2R5LWljb246bm90KFt3aWR0aF0pIHsgd2lkdGg6IDk2cHg7IGhlaWdodDogOTZweDsgfVxuLyog4pqg77iPIE5hIE9QU0xBQU4gaXMgZGllIGNsYXNzIHdlZy4gRGUgZ2VkZWVsZGUgSHRtbFNhbml0aXplciBsYWF0IG9wIGVlbiBpbWdcbiAgIGFsbGVlbiBzcmMvYWx0L3dpZHRoL2hlaWdodCBkb29yIChIdG1sU2FuaXRpemVyOjpwdXJpZmllciksIGR1cyBlZW5cbiAgIG9wZ2VzbGFnZW4ga2FhcnQgYmV2YXQgZWVuIGthbGUgPGltZz4gaW4gZWVuIGthbGUgPHA+IOKAlCBkZSByZWdlbHMgaGllcmJvdmVuXG4gICByYWtlbiBkaWUgbmlldCBtZWVyIGVuIGhldCBpY29vbiB2dWxkZSBkYWFyZG9vciBkZSBoZWxlIGJyZWVkdGUuIFZhbmRhYXJcbiAgIGRlemVsZmRlIG1hYXQgbm9nIGVlbiBrZWVyLCBudSBvcCBkZSBTUkMgKHplbGZkZSBoYWFrIGFscyBkZSBhcHAgZ2VicnVpa3QsXG4gICB6aWUgUFVMU0VfSUNPTl9TUkNfUkUgaW4gMTYtcHVsc2UuanMpLCBlbiBnZWNlbnRyZWVyZCB2aWEgZGUgaW1nIHplbGYgb21kYXRcbiAgIG9vayBkZSBjbGFzcyBvcCBkZSBhbGluZWEgc25ldXZlbHQuIEJld3VzdCBHRVNDT09QVCBvcCBkZSBkcmllIHBsZWtrZW4gZGllXG4gICBvcGdlc2xhZ2VuIGJvZHktSFRNTCB0b25lbjogZWVuIGxvc3NlIGBpbWdbc3JjKj0uLi5dYC1yZWdlbCB6b3Ugb29rIGRlXG4gICAzMnB4LXRlZ2VscyBpbiBkZSBpY29vbmtpZXplciBvcCA5NnB4IHpldHRlbi4gTmlldXcgaW5nZXZvZWdkZSBpY29uZW5cbiAgIGRyYWdlbiBzaW5kcyAyOC4wOC4yMDI2IGJvdmVuZGllbiB3aWR0aC9oZWlnaHQgYWxzIGF0dHJpYnV1dCwgZHVzIGRpdCBpc1xuICAgaGV0IHZhbmduZXQgdm9vciBhbGxlcyB3YXQgdsOzw7NyIGRpZSBkYXR1bSBpcyBvcGdlc2xhZ2VuLiAqL1xuLnB1bHNlLXdpei1wcmV2aWV3LXN1YiBpbWdbc3JjKj1cIi9hY3Rpdml0eS1hbmltYXRlZC9wb3N0ZXJzL1wiXSxcbi5wdWxzZS13aXotZnJlZS1wcmV2aWV3LWJvZHkgaW1nW3NyYyo9XCIvYWN0aXZpdHktYW5pbWF0ZWQvcG9zdGVycy9cIl0sXG4ucHVsc2UtcHJldmlldy1ib2R5IGltZ1tzcmMqPVwiL2FjdGl2aXR5LWFuaW1hdGVkL3Bvc3RlcnMvXCJdIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogOHB4IGF1dG87XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi8qIFRlcnVndmFsIHZvb3IgZWVuIG9wZ2VzbGFnZW4gaWNvb24gem9uZGVyIGVpZ2VuIG1hYXQsIHppZSBkZSB1aXRsZWcgYmlqXG4gICAucHVsc2UtYm9keS1pY29uIGhpZXJib3Zlbi4gKi9cbi5wdWxzZS13aXotcHJldmlldy1zdWIgaW1nW3NyYyo9XCIvYWN0aXZpdHktYW5pbWF0ZWQvcG9zdGVycy9cIl06bm90KFt3aWR0aF0pLFxuLnB1bHNlLXdpei1mcmVlLXByZXZpZXctYm9keSBpbWdbc3JjKj1cIi9hY3Rpdml0eS1hbmltYXRlZC9wb3N0ZXJzL1wiXTpub3QoW3dpZHRoXSksXG4ucHVsc2UtcHJldmlldy1ib2R5IGltZ1tzcmMqPVwiL2FjdGl2aXR5LWFuaW1hdGVkL3Bvc3RlcnMvXCJdOm5vdChbd2lkdGhdKSB7XG4gICAgd2lkdGg6IDk2cHg7XG4gICAgaGVpZ2h0OiA5NnB4O1xufVxuXG4vKiBLaW0gMjguMDguMjAyNjogZGUgaWNvb24tc3RyaXAgb25kZXIgZWVuIFBMQVQgc3VidGVrc3R2ZWxkLiBFZW4gYW5pbWVyZW5kXG4gICBpY29vbiBrYW4gZGFhciBhbGxlZW4gYWxzIGB7e2ljb246PG5hYW0+fX1gLXRva2VuIGxldmVuIChlZW4gdGV4dGFyZWEga2FuXG4gICBnZWVuIHBsYWF0amUgYmV2YXR0ZW4pLCBkdXMgZGV6ZSByaWogbGFhdCB6aWVuIHdhdCBkZSBhcHAgZXJ2YW4gbWFha3QuIFppZVxuICAgcHVsc2VJY29uSGludEh0bWwoKSBpbiBkZXRhaWwuaHRtbC4gKi9cbi5wdWxzZS1pbmxpbmUtaWNvbi1oaW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlLCAjZjNmNWZmKTtcbn1cbi8qIGBkaXNwbGF5OiBmbGV4YCBoaWVyYm92ZW4gaXMgYXV0ZXVyLUNTUyBlbiB3aW50IEFMVElKRCB2YW4gaGV0IG5hdGl2ZVxuICAgW2hpZGRlbl0gdWl0IGRlIHVzZXItYWdlbnQtc3R5bGVzaGVldCDigJQgemVsZmRlIHZhbGt1aWwgYWxzIGJpalxuICAgLnB1bHNlLXNtLWVkaXRvci1tb3VudCBlbiAucHVsc2Utb3B0LXZpZXctc2VnIGVsZGVycyBpbiBkaXQgYmVzdGFuZC4gKi9cbi5wdWxzZS1pbmxpbmUtaWNvbi1oaW50W2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2UtaW5saW5lLWljb24taGludC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xufVxuLnB1bHNlLWlubGluZS1pY29uLWhpbnQtaWNvbnMgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsgfVxuLnB1bHNlLWlubGluZS1pY29uLWhpbnQtaWNvbnMgaW1nIHsgd2lkdGg6IDMycHg7IGhlaWdodDogMzJweDsgb2JqZWN0LWZpdDogY29udGFpbjsgfVxuLnB1bHNlLXdpei1wcmV2aWV3LWFuc3dlcnMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDZweDsgbWFyZ2luOiAwIDEycHggMTJweDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbi5wdWxzZS13aXotcHJldmlldy1hbnN3ZXJzIHFkbmFwcm8tYW5zd2VyLWJ1dHRvbiB7IHdpZHRoOiAxMDAlOyB9XG5cbi8qIEJsYW5jbzogZGUgdXBsb2FkLWtub3Agc3RhYXQgw41OIGRlIHByZXZpZXcsIG5pZXQgZXJuYWFzdCDigJQgZGF0IGlzIEtpbXNcbiAgIGFubm90YXRpZSBcIk5vZyBibGFua29cIiBiaWogZGUgZm90by1wbGVrIHplbGYuICovXG4vKiBLaW1zIHJldmlldyAyNC4wODoga2VlcCB0aGUgZGFzaGVkIGRyb3Agem9uZSAoaXQgaW52aXRlcyBkcmFnZ2luZyBhIHBob3RvXG4gICBpbikgYW5kIHB1dCBoZXIgRmlnbWEgZGV0YWlscyBpbnNpZGUgaXQ6IGEgZGFyayBpbWFnZSBnbHlwaCBwbHVzIGEgc29saWRcbiAgIGRhcmstcHVycGxlIHVwbG9hZCBwaWxsLiAqL1xuLnB1bHNlLXdpei1jbGFzc2ljLXVwbG9hZC1idG4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTRweDtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2M3YzVlMCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiAxOHB4IDIycHg7XG59XG4ucHVsc2Utd2l6LWNsYXNzaWMtdXBsb2FkLWJ0bjpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXB1cnBsZS0yMDAsICNhNWFjZmYpO1xufVxuLnB1bHNlLXdpei1jbGFzc2ljLXVwbG9hZC1nbHlwaCB7XG4gICAgLyogVGhlIHNpemUgYXR0cmlidXRlIGFsb25lIHJlbmRlcnMgdG9vIHNtYWxsIGluc2lkZSB0aGlzIHpvbmUsIHNvIHRoZVxuICAgICAgIGJveCBpcyBwaW5uZWQgaGVyZTogS2ltcyBGaWdtYSBzaG93cyBhIGNsZWFybHkgcmVhZGFibGUgZ2x5cGguICovXG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgZm9udC1zaXplOiAzNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuLnB1bHNlLXdpei1jbGFzc2ljLXVwbG9hZC1nbHlwaCBzdmcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbi5wdWxzZS13aXotY2xhc3NpYy11cGxvYWQtcGlsbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uLCAjZmZmZmZmKTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5wdWxzZS13aXotY2xhc3NpYy11cGxvYWQtcGlsbCBxZG5hcHJvLWljb24geyBjb2xvcjogaW5oZXJpdDsgfVxuLnB1bHNlLXdpei1jbGFzc2ljLXVwbG9hZC1idG46aG92ZXIgLnB1bHNlLXdpei1jbGFzc2ljLXVwbG9hZC1waWxsIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS02MDAsICMzNjNlODUpO1xufVxuXG4vKiBHZXZ1bGQ6IGtub3BqZXNwYWFyIHJlY2h0c29uZGVyIG9wIGRlIGZvdG8gKEtpbXMgYW5ub3RhdGllIFwiKyBhZmJlZWxkaW5nXCIpLlxuICAgS2FhcnQgMTQgKEJPQVJELXB1bHNlLW9wbWFhay1oeWJyaWRlLm1kKTogZGl0IHdhcyBvb2l0IGVlbiBnbGFzLXBpbFxuICAgKGFjaHRlcmdyb25kICsgYmx1ciArIHNjaGFkdXcpIFJPTkQgZGUgcWRuYXByby1pY29uLWJ0bidzIOKAlCBtYWFyIGVsa2VcbiAgIGljb24tYnRuICh0eXBlPVwic2Vjb25kYXJ5XCIpIGRyYWFndCBhbCB6aWpuIEVJR0VOIGxpY2h0ZSB2aWVya2FudGUgc2NoaWwuXG4gICBUd2VlIHNjaGlsbGVuIG92ZXIgZWxrYWFyIGhlZW4gZ2FmIGVlbiBsb3Mgd2l0IGFmZ2Vyb25kIGthZGVyIG92ZXIgZGVcbiAgIGZvdG8gKEtpbXMgYW5ub3RhdGllOiBcIndhdCB6aXQgaGllciB2b29yIHJhYXIgZnJhbWU/XCIpLiBEZXplIHdyYXBwZXIgaXMgbnVcbiAgIFBVVVIgcG9zaXRpb25lcmluZzogZ2VlbiBlaWdlbiBhY2h0ZXJncm9uZC9ibHVyL3NjaGFkdXcgbWVlci4gRGUga25vcGplc1xuICAgemVsZiBrcmVnZW4gaGV0IGByb3VuZGAtYXR0cmlidXV0ICh6aWUgZGV0YWlsLmh0bWwvaGFybmFzKSB6b2RhdCB6ZSBhbHNcbiAgIHR3ZWUgbG9zc2Ugcm9uZGUgY2hpcHMgb3AgZGUgZm90byBsaWdnZW4g4oCUIHplbGZkZSBpZGlvb20gYWxzIGhldCBrcnVpc2plXG4gICBpbiBkZSBvdmVybGF5LXNjaGlsICgucW9zLSopOiBlZW4ga2FsZSBxZG5hcHJvLWljb24tYnRuLCBnZWVuIGV4dHJhIGZyYW1lXG4gICBlcm9taGVlbi4gS2FhcnQgMTAsIHB1bnQgMi8zOiBzaW5kcyBkaWUga2FhcnQgeml0dGVuIGhpZXIgVFdFRSBrbm9wamVzXG4gICAocG90bG9vZCA9IG1hcmt1cCwgdXBsb2FkID0gbmlldXdlIGZvdG8pIGkucC52LiDDqcOpbiDigJQgemVsZmRlIHdyYXBwZXIsIG9va1xuICAgaGVyZ2VicnVpa3QgYm92ZW4gZGUgYWNodGVyZ3JvbmQtY2FudmFzICgucHVsc2Utd2l6LWJnLWNhbnZhcy13cmFwKS4gKi9cbi5wdWxzZS13aXotY2xhc3NpYy1waG90by1lZGl0LXdyYXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogOHB4O1xuICAgIGJvdHRvbTogOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA0cHg7XG59XG5cbi8qIEthYXJ0IE0xMywgcHVudCAzIChLaW0gMjcuMDgsIGNpcmtlbCBsaW5rc2JvdmVuIG9wIGhhYXIgc2NyZWVuc2hvdCk6IGhldFxuICAgd2lzc2Vsa25vcGplIGtsYXNzaWVrIDwtPiB0ZWtzdCBvcCBhY2h0ZXJncm9uZC4gWmVsZmRlIGthbGUgcm9uZGUtY2hpcC1cbiAgIGlkaW9vbSBhbHMgaGV0IHBvdGxvb2QvdXBsb2FkLXBhYXIgKGVkaXQtd3JhcCBoaWVyYm92ZW4pLCBtYWFyIGxpbmtzYm92ZW5cbiAgIGVuIEFMVElKRCB6aWNodGJhYXIgKG5pZXQgaG92ZXItZ2F0ZWQgem9hbHMgZGUgdmVyd2lqZGVya25vcCBoaWVyb25kZXIpOlxuICAgd2lzc2VsZW4gaXMgbmlldC1kZXN0cnVjdGllZiAocHJlc2V0LWdlZW4tc2xvdCksIGR1cyBnZWVuIHJlZGVuIG9tIGhlbSB0ZVxuICAgdmVyc3RvcHBlbiBhY2h0ZXIgZWVuIGhvdmVyLiBHZWRlZWxkIGRvb3IgZGUga2xhc3NpZWtlIGZvdG9ib3ggRU4gZGVcbiAgIGFjaHRlcmdyb25kLWNhbnZhcy13cmFwICh6aWUgcHVsc2VCZ1Bob3RvQnV0dG9uc0h0bWwvcmVuZGVyQ2xhc3NpY1Bob3RvT2ZcbiAgIGluIGRldGFpbC5odG1sKS4gKi9cbi5wdWxzZS13aXotbGF5b3V0LXN3YXAtd3JhcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDhweDtcbiAgICB0b3A6IDhweDtcbn1cblxuLyogS2ltcyB2ZXJ6b2VrIDI3LjA4IChyb2RlIGNpcmtlbCBsaW5rc29uZGVyIG9wIGRlIGthYXJ0Zm90byk6IGRlIGZvdG8gd2FzIGluXG4gICBkZSB3aXphcmQgbmlldCBtZWVyIHRlIHZlcndpamRlcmVuLiBFaWdlbiBob2VrIGxpbmtzb25kZXIsIGVuIGFsbGVlblxuICAgemljaHRiYWFyIGJpaiBob3ZlciBvdmVyIGRlIGZvdG8g4oCUIG9mIGJpaiB0b2V0c2VuYm9yZGZvY3VzLCBhbmRlcnMgaXMgZGVcbiAgIGtub3Agdm9vciB0b2V0c2VuYm9yZGdlYnJ1aWtlcnMgb25iZXJlaWtiYWFyIG9uemljaHRiYWFyLiBaZWxmZGUga2FsZVxuICAgcm9uZGUtY2hpcC1pZGlvb20gYWxzIGhldCBwb3Rsb29kL3VwbG9hZC1wYWFyIHJlY2h0cy4gKi9cbi5wdWxzZS13aXotY2xhc3NpYy1waG90by1kZWxldGUtd3JhcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDhweDtcbiAgICBib3R0b206IDhweDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjE1cyBlYXNlO1xufVxuLnB1bHNlLXdpei1jbGFzc2ljLXBob3RvOmhvdmVyIC5wdWxzZS13aXotY2xhc3NpYy1waG90by1kZWxldGUtd3JhcCxcbi5wdWxzZS13aXotYmctY2FudmFzLXdyYXA6aG92ZXIgLnB1bHNlLXdpei1jbGFzc2ljLXBob3RvLWRlbGV0ZS13cmFwLFxuLnB1bHNlLXdpei1jbGFzc2ljLXBob3RvLWRlbGV0ZS13cmFwOmZvY3VzLXdpdGhpbiB7XG4gICAgb3BhY2l0eTogMTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnB1bHNlLXdpei1jbGFzc2ljLXBob3RvLWRlbGV0ZS13cmFwIHsgdHJhbnNpdGlvbjogbm9uZTsgfVxufVxuXG4vKiBUZWtzdCBvcCBhY2h0ZXJncm9uZDogZGUgY2FudmFzIChuaWV0LWVkaXRhYmxlLCBoZXJ6aWVuIGthYXJ0IDE3KSArIGRlXG4gICBraWV6ZXIgZGlyZWN0IGVyb25kZXIgKGJlc2x1aXQgNSs2KSwgZGFuIGRlemVsZmRlIGxpdmUgYW50d29vcmRwaWxsZW4gYWxzXG4gICBLbGFzc2llay4gKi9cbi5wdWxzZS13aXotYmctcHJldmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbn1cbi8qIEthYXJ0IDEwIChCT0FSRC1wdWxzZS1vcG1hYWstaHlicmlkZS5tZCwgcHVudCAyLzMpOiB3cmFwcGVyIHJvbmQgZGUgY2FudmFzXG4gICBtZXQgYHBvc2l0aW9uOiByZWxhdGl2ZWAsIHpvZGF0IGhldCBwb3Rsb29kLS91cGxvYWRrbm9wamVzcGFhciBlciBhbHMgZWVuXG4gICBhYnNvbHV1dCBnZXBvc2l0aW9uZWVyZCBwYWFyIG92ZXJoZWVuIGthbiBsaWdnZW4gKGthYXJ0IDE0OiBnZWVuIGdsYXMtd3JhcFxuICAgbWVlciwgemllIC5wdWxzZS13aXotY2xhc3NpYy1waG90by1lZGl0LXdyYXApIOKAlCB6ZWxmZGUgY29uc3RydWN0aWUgYWxzXG4gICAucHVsc2Utd2l6LWNsYXNzaWMtcGhvdG8gYmlqIEtsYXNzaWVrL1ZyaWogdm9ybWdldmVuLiBWZXJ2YW5ndCBkZSB2cm9lZ2VyZVxuICAgbG9zc2UgXCJTdGlja2VycyBlbiBpY29uc1wiLWtub3BwZW5yaWogKC5wdWxzZS1iZy10b29scy1yb3csIGhpZXJvbmRlclxuICAgdmVyd2lqZGVyZDogZ2VlbiBhYW5yb2VwZXJzIG1lZXIpLiAqL1xuLnB1bHNlLXdpei1iZy1jYW52YXMtd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLyogS2FhcnQgNiAoQk9BUkQtcHVsc2Uta2FhcnQtcHJvcG9ydGlvbmVlbCwgMjguMDguMjAyNik6IGRlIGBib3JkZXItcmFkaXVzOlxuICAgMTJweGAgZGllIGhpZXIgc3RvbmQgaXMgV0VHLiBEZSBrYWFydCBpcyBzaW5kcyBrYWFydCA1IG92ZXJhbCByZWNodCAoaGV0XG4gICBjb21wb25lbnQgYnJlbmd0IHplbGYgZ2VlbiByYW5kLCBzY2hhZHV3IG9mIHJvbmRpbmcgbWVlciBtZWUpLCBlbiBqdWlzdCBoZXRcbiAgIHZlcnNjaGlsIHR1c3NlbiBkZXplIHdpemFyZC1wcmV2aWV3IGVuIGRlIGFwcCB3YXMgd2F0IEtpbSB0ZXJ1Z3N0dXVyZGUuIFR3ZWVcbiAgIHBsZWtrZW4gemV0dGVuIGRpZSByb25kaW5nIHplbGY6IGhpZXIgZW4gLnB1bHNlLXByZXZpZXctYmctY2FudmFzLXdyYXBcbiAgIHZlcmRlcm9wOyBiZWlkZSB6aWpuIGVyYWYuIGBvdmVyZmxvdzogaGlkZGVuYCBibGlqZnQgd8OpbCBzdGFhbjogZGF0IGtsZW10IGRlXG4gICBiZWVsZC0vdGVrZW5sYWFnIGJpbm5lbiBoZXQga2FhcnR2bGFrLCBkYXQgaXMgZ2VlbiB2b3JtZ2V2aW5nLlxuICAg4pqg77iPIE1FTERJTkcgKGthYXJ0IDYtdmVyc2xhZyk6IGhldCBob3Zlci1rYWFydGplIGJpaiBkZSBzdGFwcGVubGlqc3RcbiAgICgucHVsc2UtaW1ncG9wLWNhbnZhcywgb25kZXJhYW4gZGl0IGJlc3RhbmQpIHpldCBzdG9uZCB0b3QgMjguMDguMjAyNiBub2cgb3AgYGJvcmRlci1yYWRpdXM6IDEwcHhgIGVuIHN0YWF0IG51IG9wIDAuXG4gICBEYXQgc3RhYXQgbmlldCBvcCBkZXplIGthYXJ0IGVuIGlzIGR1cyBtZXQgb3B6ZXQgbmlldCBtZWVnZW5vbWVuLiAqL1xuLnB1bHNlLXdpei1iZy1jYW52YXMtd3JhcCBxZG5hcHJvLXB1bHNlLWNhbnZhcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLyogMjguMDguMjAyNjogMTYvMTAgZW4gTklFVCAxNi85LiBEZSBjcm9wIGRpZSBkZSBnZWJydWlrZXIgbW9ldCBkb29ybG9wZW5cbiAgICAgICAoUFVMU0VfUEhPVE9fQ1JPUF9SQVRJTyBpbiBkZXRhaWwuaHRtbCksIGhldCBjb21wb25lbnQgemVsZiBlbiBkZSBrYWFydCBpblxuICAgICAgIGRlIGFwcCBzdGFhbiBhbGxlIGRyaWUgb3AgMTYvMTA7IGFsbGVlbiBkZSB3aXphcmQtZnJhbWVzIHN0b25kZW4gb3AgMTYvOS5cbiAgICAgICBEYWFyZG9vciBvbnR3aWVycCBqZSBvcCBlZW4gYW5kZXIgdmxhayBkYW4gamUgdGVydWdrcmVlZywgd2F0IHByZWNpZXMgZGVcbiAgICAgICBrbGFjaHQgdmFuIEtpbSB3YXMgKCdkZSB2ZXJob3VkaW5nZW4gbW9ldGVuIGdlbGlqayB6aWpuJykuICovXG4gICAgYXNwZWN0LXJhdGlvOiAxNiAvIDEwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucHVsc2Utd2l6LWJnLXByZXZpZXcgLnB1bHNlLXdpei1wcmV2aWV3LWFuc3dlcnMgeyBtYXJnaW46IDA7IH1cblxuLyogS2FhcnQgNiwgcHVudCBnIOKAlCBERSBBRkdFS05JUFRFIEZPQ1VTUklORyB2YW4gZGUga2xldXJ0ZWdlbHMuXG4gICBEZSByaW5nIHZhbiBlZW4gdGVnZWwgaXMgYGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1yaW5nKSwgMCAwIDAgNXB4XG4gICB2YXIoLS1mb2N1cy1nbG93KWAgKHppZSBfYmFja2dyb3VuZC1waWNrZXIuc2NzcyksIGR1cyBoaWogdmFsdCA1cHggQlVJVEVOIGRlXG4gICB0ZWdlbC4gRGUgdGVnZWxzIHN0YWFuIHRlZ2VuIGRlIGxpbmtlci0vcmVjaHRlcnJhbmQgdmFuIGh1biBrb2xvbSwgZW4gZGllXG4gICBrb2xvbSB6aXQgaW4gdHdlZSBjb250YWluZXJzIG1ldCBgb3ZlcmZsb3c6IGhpZGRlbmA6IGhldCBrYWFydGZyYW1lXG4gICAoLnB1bHNlLXdpei1wcmV2aWV3LWZyYW1lLCBkYXQgZGUgVWl0bGVnLXNoZWV0IGtsZW10KSBlbiBkYWFyYm92ZW4gbm9nXG4gICAucWRuYXByby13aXphcmQtc3RlcCBpbiBoZXQgZ2VkZWVsZGUgd2l6YXJkLW1vZGFsLWNvbXBvbmVudC4gVmFuIGRpZSB0d2VlIGlzXG4gICBoZXQgRlJBTUUgZGUgZWVyc3RlIGRpZSBrbGVtdCwgZHVzIGRhYXIgbW9ldCBkZSBydWltdGUgdmFuZGFhbiBrb21lbiDigJQgaGV0XG4gICBnZWRlZWxkZSBjb21wb25lbnQgYmxpamZ0IG9uZ2Vtb2VpZCAoZGF0IGhlZWZ0IGFuZGVyZSBnZWJydWlrZXJzKS5cbiAgIFZhbmRhYXIgNXB4IGx1Y2h0IGJpbm5lbiBkZSBrb2xvbSwgcHJlY2llcyBkZSByaW5nYnJlZWR0ZSwgYWxsZWVuIG9tIGRlXG4gICBraWV6ZXIgaGVlbjogZGUga2FhcnQgemVsZiBob3VkdCB6byB6aWpuIHZvbGxlIGJyZWVkdGUsIGVuIGFsbGVlbiBkZVxuICAgdGVnZWxzdHJvb2sgc2NodWlmdCA1cHggbmFhciBiaW5uZW4uIE9uZGVyIGlzIGhldCBvb2sgNXB4OyBib3ZlbiBuaWV0IG5vZGlnLFxuICAgZGFhciB6aXQgYWwgMTBweCBgZ2FwYCBuYWFyIGRlIGNhbnZhcy4gKi9cbi5wdWxzZS13aXotYmctcHJldmlldyBxZG5hcHJvLWJhY2tncm91bmQtcGlja2VyIHtcbiAgICBwYWRkaW5nOiAwIDVweCA1cHg7XG59XG5cbi8qIEthYXJ0IDYsIHB1bnQgYyDigJQgZGUgY29udHJhc3Qtd2FhcnNjaHV3aW5nIG9uZGVyIGRlIGtpZXplci4gcWRuYXByby1hbGVydFxuICAgemV0IHplbGYgYGRpc3BsYXk6IGZsZXhgLCBlbiBlZW4gY2xhc3MgdmVyc2xhYXQgZGUgYFtoaWRkZW5dYC1yZWdlbCB1aXQgZGVcbiAgIGJyb3dzZXJzdGlqbCwgZHVzIGRpZSBtb2V0IGhpZXIgZXhwbGljaWV0IHRlcnVnLiAqL1xuLnB1bHNlLXdpei1iZy1jb250cmFzdCB7IG1hcmdpbi10b3A6IDJweDsgfVxuLnB1bHNlLXdpei1iZy1jb250cmFzdFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBLYWFydCBNMTMsIHB1bnQgMSAoS2ltIDI3LjA4KTogbGVnZSB0aXRlbCBpbiBkZSBhY2h0ZXJncm9uZC1wcmV2aWV3IHRvb250XG4gICBlZW4gZ2VkZW1wdGUgcGxhY2Vob2xkZXIgKFwiSGllciBrb210IGpvdXcgdGl0ZWxcIikgaS5wLnYuIGVlbiBrYWFsIGxlZWdcbiAgIHZsYWsgLSB3aXpBcHBseVF1ZXN0aW9uVG9DYW52YXMoKSBpbiBkZXRhaWwuaHRtbCB6ZXQgZGUga2xhc3NlIHpvZHJhIGhldFxuICAgZ2VkZWVsZGUgXCJWcmFhZyBvZiB0aXRlbFwiLXZlbGQgbGVlZyBpcy4gUHV1ciBlZW4gb3BhY2l0eS1kZW1waW5nIGJvdmVub3BcbiAgIGRlIHRla3N0a2xldXIgZGllIGhldCBjb21wb25lbnQgemVsZiBhbCBraWVzdCAoZGF0YS10aW50LCBsaWNodC9kb25rZXJcbiAgIGFmaGFua2VsaWprIHZhbiBkZSBhY2h0ZXJncm9uZCkgLSB3ZXJrdCBkdXMgb3AgZWxrZSBhY2h0ZXJncm9uZHNvb3J0LFxuICAgZ2VlbiBlaWdlbiBrbGV1ciBub2RpZy4gcWRuYS1wdWxzZS1jYW52YXMuanMvX3B1bHNlLWNhbnZhcy5zY3NzIGJsaWp2ZW5cbiAgIG9uYWFuZ2VyYWFrdCAoY29tcG9uZW50LWVpZ2VuIGJlc3RhbmRlbiwgYnVpdGVuIGRlemUga2FhcnQgc2Ugc2NvcGUpLiAqL1xuLnFkbmFwcm8tcHVsc2UtY2FudmFzLnB1bHNlLXdpei1jYW52YXMtLXBsYWNlaG9sZGVyIC5xcGMtdGV4dCB7XG4gICAgb3BhY2l0eTogLjU1O1xufVxuXG4vKiBLYWFydCA2LCBwdW50IGQvZSDigJQgREUgR0VNRVRFTiBUSU5ULlxuICAgcWRuYXByby1wdWxzZS1jYW52YXMga2llc3QgemlqbiB0aXRlbGtsZXVyIHplbGY6IHVpdCBkZSBoZWxkZXJoZWlkIHZhbiBkZVxuICAga2xldXIgKGRyZW1wZWwgMTQwKSwgdWl0IHBhdHRlcm5zLmpzb24gYmlqIGVlbiBzY8OobmUsIGVuIGJpaiBlZW4gYGltYWdlYFxuICAgemV0IGhldCBIQVJEIG9wIFwibGlnaHRcIiAod2l0dGUgdGVrc3QpLiBEYXQgbGFhdHN0ZSBrbG9wdCBuaWV0IHZvb3IgZWVuIExJQ0hUXG4gICBiZWVsZCDigJQgZGUgbWVya2FjaHRlcmdyb25kIGlzIGRhYXIgaGV0IHZvb3JiZWVsZCB2YW4gKHB1bnQgZTogZGVcbiAgIHBsYWNlaG9sZGVyLXRpdGVsIHdhcyB3aXQgb3AgZWVuIGxpY2h0ZSBwbGFhdCkuIERlemUgdHdlZSBob3N0LWNsYXNzZXNcbiAgIG92ZXJzY2hyaWp2ZW4gZGllIGtldXplIG1ldCBkZSB1aXRrb21zdCB2YW4gZGUgbWlkZGVudmxhay1tZXRpbmdcbiAgIChwdWxzZUFwcGx5Q2FudmFzVGludCgpL3B1bHNlQ2FudmFzVGludENsYXNzKCkgaW4gZGV0YWlsLmh0bWwpLlxuICAgQmV3dXN0IG1ldCBkZSBFSUdFTiB0b2tlbmtsZXVyZW4gdmFuIGhldCBjb21wb25lbnQgKC0tYy10ZXh0IC9cbiAgIC0tYy10ZXh0LW9uLWFjdGlvbiwgZXhhY3Qgem9hbHMgX3B1bHNlLWNhbnZhcy5zY3NzIHplIHZvb3IgZGF0YS10aW50XG4gICBnZWJydWlrdCksIHpvZGF0IGxpY2h0L2RvbmtlciDDqcOpbiBiZXRla2VuaXMgaG91ZHQgZW4gZXIgZ2VlbiBoZXggaW4gSlMgaG9lZnQuXG4gICBEZXplIHJlZ2VscyBzdGFhbiBuw6EgY29tcG9uZW50cy9jb21wb25lbnRzIGluIHN0eWxlLXYxLnNjc3MgKHppZSBkZSBrb3AgdmFuXG4gICBkaXQgYmVzdGFuZCksIGR1cyBiaWogZ2VsaWprZSBzcGVjaWZpY2l0ZWl0IHdpbm5lbiB6ZSBvcCB2b2xnb3JkZS5cbiAgIEVlbiBleHBsaWNpZXRlIGB0ZXh0LWNvbG9yYCBibGlqZnQgYWx0aWpkIHN0ZXJrZXI6IGRpZSBzY2hyaWpmdCBoZXQgY29tcG9uZW50XG4gICBhbHMgaW5saW5lIHN0eWxlIG9wIC5xcGMtdGV4dCwgZW4gZGF0IHZlcnNsYWF0IGVsa2Ugc2VsZWN0b3IgaGllci4gKi9cbi5xZG5hcHJvLXB1bHNlLWNhbnZhcy5wdWxzZS1jYW52YXMtdGludC1kYXJrIC5xcGMtdGV4dCB7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dCwgIzBiMGIwZCk7XG59XG4ucWRuYXByby1wdWxzZS1jYW52YXMucHVsc2UtY2FudmFzLXRpbnQtbGlnaHQgLnFwYy10ZXh0IHtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbiwgI2ZmZmZmZik7XG59XG5cbi8qIEthYXJ0IDE3LCBiZXNsdWl0IDE0OiBoZXQgdGVsbGVyLXRla3N0amUgb25kZXIgaGV0IFwiVnJhYWcgb2YgdGl0ZWxcIi12ZWxkLFxuICAgYWxsZWVuIGJpaiB0ZWtzdCBvcCBhY2h0ZXJncm9uZCBlbiBwYXMgemljaHRiYWFyIHZhbmFmIH4xMDAgdGVrZW5zLiAqL1xuLnB1bHNlLXdpei1xdWVzdGlvbi1jb3VudGVyIHtcbiAgICBtYXJnaW46IDRweCAycHggMDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS00MDAsICM4Yjg4YTMpO1xufVxuXG4vKiBTdGlja2VyL2ljb24tb3ZlcmxheS1wcmV2aWV3IChrYWFydCAxNCkgYmlubmVuIGRlIGdlcmVzZXJ2ZWVyZGVcbiAgIC5xcGMtb3ZlcmxheS1sYWFnIHZhbiBxZG5hcHJvLXB1bHNlLWNhbnZhcyDigJQgaGV0IGNvbXBvbmVudCB6ZWxmIGxhYXQgZGllXG4gICBsYWFnIGxlZWcgKHppZSBxZG5hLXB1bHNlLWNhbnZhcy5qcywgbGFhZyA0KTsgZGl0IHRla2VudCBoZW0gSE9TVC1TSURFLFxuICAgZ2VkZWVsZCBkb29yIGRlIHdpemFyZC1wcmV2aWV3IGJpaiBhYW5tYWtlbiDDqW4gYmV3ZXJrZW5cbiAgIChwdWxzZVJlbmRlck92ZXJsYXkoKSBpbiBkZXRhaWwuaHRtbCkuIFBvc2l0aWUvc2NoYWFsIGtvbWVuIGFscyBpbmxpbmVcbiAgIHN0eWxlIG1lZSAocGVyIGl0ZW0pLCBkdXNcbiAgIGhpZXIgc3RhYXQgYWxsZWVuIGRlIHZhc3RlIHZvcm1nZXZpbmcuICovXG4ucWRuYXByby1wdWxzZS1jYW52YXMgLnFwYy1vdmVybGF5IC5wdWxzZS1vdi1pdGVtIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucWRuYXByby1wdWxzZS1jYW52YXMgLnFwYy1vdmVybGF5IC5wdWxzZS1vdi1pdGVtLWltZyxcbi5xZG5hcHJvLXB1bHNlLWNhbnZhcyAucXBjLW92ZXJsYXkgLnB1bHNlLW92LWl0ZW0tbG90dGllIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvKiBgaGVpZ2h0YCBNT0VUIGhpZXIgZXhwbGljaWV0IHN0YWFuLCBvb2sgYWwgZG9ldCBhc3BlY3QtcmF0aW8gaGV0IHdlcms6XG4gICAgICAgcWRuYXByby1sb3R0aWUgemV0IG9wIHppY2h6ZWxmIGBoZWlnaHQ6IHZhcigtLXFsLXNpemUpYCAoNDhweCkgZW4gZWVuXG4gICAgICAgZXhwbGljaWV0ZSBob29ndGUgd2ludCBBTFRJSkQgdmFuIGFzcGVjdC1yYXRpbywgb25nZWFjaHQgc3BlY2lmaWNpdGVpdC5cbiAgICAgICBab25kZXIgZGV6ZSByZWdlbCB3ZXJkIGVsayBnZXBsYWF0c3QgaWNvb24gcGxhdGdlZHJ1a3QgdG90IGVlbiBzdHJlZXAg4oCUXG4gICAgICAgZGV6ZWxmZGUgdmFsIGFscyBvcCBkZSBrYWFydGZvdG8gKDI4LjA4LjIwMjYsIGRhYXIgaW5saW5lIG9wZ2Vsb3N0KS4gKi9cbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4vKiBWcmlqIHZvcm1nZXZlbjogZWVuIGVlbnZvdWRpZ2UgcHJldmlldyB2YW4gdGl0ZWwgKyBpbmhvdWQgKGJlc2x1aXQgOS0xMCkg4oCUXG4gICBiZXd1c3QgR0VFTiBvcGdlbWFha3RlIGthYXJ0LXNjaGlsLCBkYXQgem91IGVlbiB0d2VlZGUsIGFmd2lqa2VuZGVcbiAgIHdlZXJnYXZlIHZhbiBkZXplbGZkZSBXWVNJV1lHLWluaG91ZCBiZWxvdmVuLiAqL1xuLnB1bHNlLXdpei1mcmVlLXByZXZpZXcge1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUsICNmM2Y0ZmIpO1xuICAgIG1pbi1oZWlnaHQ6IDEwOHB4O1xufVxuLnB1bHNlLXdpei1mcmVlLXByZXZpZXctdGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYzFlMmEpO1xufVxuLnB1bHNlLXdpei1mcmVlLXByZXZpZXctYm9keSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbiAgICAvKiBEZSBXWVNJV1lHLWluaG91ZCBrYW4gZWlnZW4gb3BtYWFrIGRyYWdlbiAodmV0amVzLCBsaWpzdGplcywgLi4uKTtcbiAgICAgICBvdmVyZXJ2ZW4gaS5wLnYuIG92ZXJzY2hyaWp2ZW4sIHpvZGF0IGRpZSBvcG1hYWsgemljaHRiYWFyIGJsaWpmdC4gKi9cbn1cbi5wdWxzZS13aXotZnJlZS1wcmV2aWV3LWJvZHkgcCB7IG1hcmdpbjogMCAwIDZweDsgfVxuLnB1bHNlLXdpei1mcmVlLXByZXZpZXctYm9keSBwOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4vKiBEZSBwcmV2aWV3IHppdCBhbCBpbiAxMnB4IHBhZGRpbmc7IGRlIHBpbGxlbiBob2V2ZW4gZGF0IG5pZXQgbm9nbWFhbHMuICovXG4ucHVsc2Utd2l6LWZyZWUtcHJldmlldyAucHVsc2Utd2l6LXByZXZpZXctYW5zd2VycyB7IG1hcmdpbjogMTBweCAwIDA7IH1cblxuLyogS2FhcnQgMTdiLCBnZWJyZWsgMTogYGVsLmhpZGRlbiA9IHRydWVgICh3aXpBcHBseUxheW91dFZpc2liaWxpdHkvXG4gICBlZGl0QXBwbHlMYXlvdXRWaXNpYmlsaXR5KSB3ZXJrdCBvcCBkZXplIGRyaWUgcGFuZWxlbiBOSUVUIHZhbnplbGYg4oCUXG4gICB6ZWxmZGUgdmFsIGFscyBoaWVyYm92ZW4gYmlqIC5wdWxzZS1zdGVwcy1mb290W2hpZGRlbl06IGRlIFVBLXJlZ2VsXG4gICBbaGlkZGVuXXtkaXNwbGF5Om5vbmV9IHZlcmxpZXN0IGFsdGlqZCB2YW4gZWVuIGF1dGV1cnNyZWdlbCBkaWUgb3BcbiAgIGhldHplbGZkZSBlbGVtZW50IGBkaXNwbGF5YCB6ZXQsIG9uZ2VhY2h0IHNwZWNpZmljaXRlaXQgb2YgYnJvbnZvbGdvcmRlXG4gICAoYXV0aG9yIG5vcm1hbCB3aW50IGFsdGlqZCB2YW4gdXNlci1hZ2VudCBub3JtYWwpLiAucHVsc2Utd2l6LWNsYXNzaWMtXG4gICBwcmV2aWV3IGVuIC5wdWxzZS13aXotYmctcHJldmlldyB6ZXR0ZW4gYWxsZWJlaSBkaXNwbGF5OmZsZXgsIGR1cyB6b25kZXJcbiAgIGRlemUgZWlnZW4gW2hpZGRlbl0tb3ZlcnJpZGUgYmxldmVuIGJpaiBsYXlvdXQ9Y2xhc3NpYyB6b3dlbCBkZVxuICAga2xhc3NpZWtlIGthYXJ0IEFMUyBkZSBhY2h0ZXJncm9uZC1jYW52YXMgKyAta2llemVyICsgZWVuIHR3ZWVkZSBzZXRcbiAgIHByZXZpZXctcGlsbGVuIHppY2h0YmFhciAoZW4gb21nZWtlZXJkIGJpaiBsYXlvdXQ9YmFja2dyb3VuZCkuIEFsbGUgZHJpZVxuICAgc3RhYW4gaGllciB2b29yIGRlIHpla2VyaGVpZCBzYW1lbiwgb29rIC5wdWxzZS13aXotZnJlZS1wcmV2aWV3LCBkaWVcbiAgIHZhbmRhYWcgZ2VlbiBlaWdlbiBgZGlzcGxheWAgemV0IG1hYXIgZGF0IG1vcmdlbiBrYW4ga3Jpamdlbi4gR2VkZWVsZFxuICAgZG9vciBkZSB3aXphcmQgKHN0YXAgMiksIHpvd2VsIGJpaiBhYW5tYWtlbiBhbHMgaW4gYmV3ZXJrc3RhbmRcbiAgIChrYWFydCAyMTogZGV6ZWxmZGUgI3B1bHNlLXdpei0qLURPTSB2b29yIGFsbGViZWkpLiAqL1xuLnB1bHNlLXdpei1jbGFzc2ljLXByZXZpZXdbaGlkZGVuXSxcbi5wdWxzZS13aXotYmctcHJldmlld1toaWRkZW5dLFxuLnB1bHNlLXdpei1mcmVlLXByZXZpZXdbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLyogS2FhcnQgMiAoQk9BUkQtcHVsc2Utb3BtYWFrLWh5YnJpZGUsIDI1LjA4LjIwMjYpOiB6ZWxmZGUgdmFsIGFsc1xuICAgaGllcmJvdmVuLCBudSB2b29yIGRlIHZyYWFnL3N1YnRla3N0L3BpbGxlbiBCSU5ORU4gLnB1bHNlLXdpei1jbGFzc2ljLVxuICAgcHJldmlldyDigJQgZGllIGtyaWpnZW4gYmlqIFwiZnJlZVwiIGh1biBlaWdlbiBbaGlkZGVuXSAoemllXG4gICB3aXpBcHBseUxheW91dFZpc2liaWxpdHkoKSksIG1hYXIgLnB1bHNlLXdpei1wcmV2aWV3LXEvLXN1Yi8tYW5zd2Vyc1xuICAgemV0dGVuIGFsbGVtYWFsIHplbGYgYWwgYGRpc3BsYXlgIChibG9jay9mbGV4KSB2aWEgZWVuIGdld29uZSBrbGFzc2UtXG4gICByZWdlbCwgZGllIHpvbmRlciBkZXplIG92ZXJyaWRlIHpvdSB3aW5uZW4gdmFuIGRlIFVBIFtoaWRkZW5dLXJlZ2VsLiAqL1xuLnB1bHNlLXdpei1wcmV2aWV3LXFbaGlkZGVuXSxcbi5wdWxzZS13aXotcHJldmlldy1zdWJbaGlkZGVuXSxcbi5wdWxzZS13aXotcHJldmlldy1hbnN3ZXJzW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4vKiBLYWFydCBNMTE6IGhldHplbGZkZSB2YWwgdm9vciBoZXQgaWNvb24tYmxvayAob29rIGVlbiBnZXdvbmUga2xhc3NlLXJlZ2VsXG4gICBkaWUgYGRpc3BsYXk6IGZsZXhgIHpldCwgemllIGhpZXJib3ZlbikuICovXG4ucHVsc2Utd2l6LXByZXZpZXctaWNvbi1ibG9ja1toaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vLyBLYWFydCA4IChCT0FSRC1wdWxzZS1hbnR3b29yZG9wdGllcy1yaWNodGluZy1jLCAyNS4wOC4yMDI2KSwgSEVSWklFTlxuLy8ga2FhcnQgMTJjIChCT0FSRC1wdWxzZS1vcG1hYWstaHlicmlkZSwgMjUuMDguMjAyNiwgS2ltcyBzY3JlZW5zaG90KTogQ1NTXG4vLyB2b29yIGRlIFVpdGxlZy1zaGVldCBvcCBkZSB3aXphcmQgKHN0YXAgMiwgYWxsZWVuIGtlbm5pc3ZyYWFnKS4gVmVyaHVpc2Rcbi8vIG9wIDI1LjA4LjIwMjYgdWl0IGVuc3VyZVB1bHNlRXhwbGFpblByZXZpZXdTdHlsZXMoKSBpbiBkZXRhaWwuaHRtbCDigJRcbi8vIHplbGZkZSA8c3R5bGU+LWluLTxoZWFkPi1yZWNlcHQgYWxzIGthYXJ0IDUvNiwgZGV6ZSBrYWFydCBtb2NodCBvb2sgZ2VlblxuLy8gd2lqemlnaW5nIGFhbiBkZXplIFNDU1MtcGFydGlhbCBtYWtlbi5cbi8vXG4vLyBWw7PDs3Iga2FhcnQgMTJjIFZFUlZJTkcgLnB1bHNlLXdpei1leHBsYWluLXByZXZpZXcgZGUga2FhcnRwcmV2aWV3XG4vLyAoa2xhc3NpZWsvYWNodGVyZ3JvbmQvdnJpaiB2b3JtZ2V2ZW4pIHpvbGFuZyBkZSBBbnR3b29yZGVuL1VpdGxlZy1cbi8vIHNjaGFrZWxhYXIgb3AgXCJleHBsYWluXCIgc3RvbmQuIEtpbSB3aWwgZGUga2FhcnQgQUxUSUpEIHppY2h0YmFhciBob3VkZW46XG4vLyBkZXplIHNoZWV0IHNjaHVpZnQgZXIgbnUgdmFuYWYgZGUgb25kZXJrYW50IE9WRVJIRUVOIChQTE9FUCksIGJpbm5lblxuLy8gLnB1bHNlLXdpei1zdGVwMi1wcmV2aWV3IChkaWUgZGFhcm9tIGBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OlxuLy8gaGlkZGVuYCBrcmVlZywgemllIGhpZXJib3ZlbikuIGBwb3NpdGlvbjogYWJzb2x1dGVgICsgYGxlZnQvcmlnaHQ6IDBgIGxhYXRcbi8vIGhlbSBkZSB2b2xsZSBicmVlZHRlIHZhbiBkYXQgcGFuZWVsIGFhbmhvdWRlbiAoZ8Opw6luIHNocmluay10by1maXQsIHpvYWxzXG4vLyBlZW4gbG9zLXBvc2l0aW9uZWVyZCBlbGVtZW50IG5vcm1hYWwgem91IGRvZW4g4oCUIG1ldCBsaW5rZXItIMOpblxuLy8gcmVjaHRlcnJhbmQgdmFzdCB3b3JkdCBkZSBicmVlZHRlIGRvb3IgZGllIHR3ZWUgb2Zmc2V0cyBiZXBhYWxkKSwgZW5cbi8vIGBib3R0b206IDBgIGhvdWR0IHppam4gb25kZXJyYW5kIGdlbGlqayBtZXQgZGUgb25kZXJyYW5kIHZhbiBoZXQgcGFuZWVsXG4vLyAoZHVzIG1ldCBkZSBrYWFydCBlcmFjaHRlciwgZGllIGdlZW4gZWlnZW4gbWFyZ2UgaGVlZnQpIGluIHpvd2VsIGRlXG4vLyBkaWNodGUgYWxzIGRlIG9wZW4gc3RhbmQuIGB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSlgIGluIGRlIGRpY2h0ZVxuLy8gc3RhbmQgdmVyc2NodWlmdCBoZW0gemlqbiBFSUdFTiBob29ndGUgbmFhciBiZW5lZGVuIOKAlCBtZXQgYG92ZXJmbG93OlxuLy8gaGlkZGVuYCBvcCBkZSBvdWRlciBpcyBoaWogZGFuIHZvbGxlZGlnIHVpdCBiZWVsZCwgem9uZGVyIGBkaXNwbGF5OiBub25lYFxuLy8gdGUgaG9ldmVuIHpldHRlbiAoZGF0IHpvdSBkZSB0cmFuc2l0aWUgZ2VlbiBiZWdpbnB1bnQgZ2V2ZW4gb20gdmFuYWYgdGVcbi8vIGFuaW1lcmVuKS4gYC5pcy1vcGVuYCAod2l6QXBwbHlFeHBsYWluUHJldmlld1Zpc2liaWxpdHkoKSBpbiBkZXRhaWwuaHRtbClcbi8vIHpldCBoZW0gdGVydWcgb3AgYHRyYW5zbGF0ZVkoMClgOiBoaWogc2NodWlmdCBvbWhvb2cgdG90IHppam4gb25kZXJyYW5kXG4vLyB3ZWVyIG9wIGRlIHBhbmVlbC1vbmRlcnJhbmQgc3RhYXQsIGVuIG92ZXJsYXB0IHpvIGRlIG9uZGVya2FudCB2YW4gZGVcbi8vIGthYXJ0IGVyYWNodGVyLiBFZW4gbGljaHRlIGBib3gtc2hhZG93YCBuYWFyIGJvdmVuIGdlZWZ0IGRlIHNoZWV0XG4vLyB2aXN1ZWxlIGRpZXB0ZSB0Lm8udi4gZGUga2FhcnQgZGllIGVyb25kZXIgYmxpamZ0IGRvb3JzY2hlbWVyZW4gYWFuIGRlXG4vLyByYW5kZW4g4oCUIGhldCBCRVNUQUFOREUga2FhcnQtc2NoYWR1d3Rva2VuICgtLXNoYWRvdy1jYXJkLCBvb2sgb3AgZGVcbi8vIGtsYXNzaWVrZSBrYWFydHByZXZpZXctYnVyZW4gZWxkZXJzIGluIGNvbXBvbmVudHMvdjIpLCBnZWVuIHplbGZ2ZXJ6b25uZW5cbi8vIGtsZXVyLiBgcHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlYCB6ZXQgZGUgdHJhbnNpdGllIHVpdCAoaGV0XG4vLyBzY2hha2VsdCBkYW4gZGlyZWN0LCBnZWVuIFwiUExPRVBcIi1hbmltYXRpZSBtZWVyKSDigJQgZGV6ZWxmZGUgYWZzcHJhYWsgYWxzXG4vLyBlbGRlcnMgaW4gZGUgY29kZWJhc2UgKG1lbW9yeTogZ2VlbiBhbmltYXRpZSB6b25kZXIgZGllIHVpdHpvbmRlcmluZykuXG4ucHVsc2Utd2l6LWV4cGxhaW4tcHJldmlldyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzIGVhc2U7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWNhcmQsIDAgMXB4IDJweCByZ2JhKDIwLCAyNSwgODAsIDAuMDQpLCAwIDRweCAxNnB4IHJnYmEoMjAsIDI1LCA4MCwgMC4wOCkpO1xuXG4gICAgJi5pcy1vcGVuIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbn1cbi5wdWxzZS13aXotZXhwbGFpbi1zaGVldCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDIwcHggMTZweCAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHggMjBweCA2cHggNnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc3VjY2Vzcy01MDAsICMxMjgwNWUpO1xuXG4gICAgJltkYXRhLXRvbmU9XCJ3cm9uZ1wiXSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtd2Fybi1yZWQtNTAwLCAjZGMyNjI2KTtcbiAgICB9XG5cbiAgICAmLWhhbmRsZSB7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tci1waWxsLCA5OTlweCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUtNDUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjQ1KSk7XG4gICAgfVxuXG4gICAgJi1pY29uIHsgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24sICNmZmYpOyB9XG5cbiAgICAmLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW9uLWFjdGlvbiwgI2ZmZik7XG4gICAgfVxuXG4gICAgJi1ib2R5IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDI2MHB4O1xuICAgICAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24sICNmZmYpO1xuICAgIH1cblxuICAgICYtYnRuIHsgbWFyZ2luLXRvcDogNHB4OyBhbGlnbi1zZWxmOiBzdHJldGNoOyB9XG59XG4vKiBLaW1zIGFjY2VwdGF0aWV0ZXN0IDI2LjA4OiBoZXQgc2NoYWtlbHRqZSBzdGFhdCBvbmRlciBoZXQgZnJhbWUgYWxzXG4gICBnZXdvbmUgcGFuZWVsaW5ob3VkOyBbaGlkZGVuXSBtb2V0IGV4cGxpY2lldCB3aW5uZW4gdmFuIGRlIGVpZ2VuXG4gICBkaXNwbGF5LXJlZ2VscyB2YW4gcWRuYXByby1zZWdtZW50ICh6ZWxmZGUgW2hpZGRlbl0tdmFsa3VpbCBhbHNcbiAgIC5wdWxzZS1vcHQtdmlldy1zZWcsIGthYXJ0IDUvMjIpLiAqL1xuLnB1bHNlLXdpei1leHBsYWluLXRvbmUtc2VnIHsgYWxpZ24tc2VsZjogY2VudGVyOyB9XG4ucHVsc2Utd2l6LWV4cGxhaW4tdG9uZS1zZWdbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gS2FhcnQgOSAoQk9BUkQtcHVsc2UtYW50d29vcmRvcHRpZXMtcmljaHRpbmctYywgMjUuMDguMjAyNik6IHJlc3BvbnNpZWZcbi8vIG1ha2VuIHZhbiBkZSBvcG1hYWstd2l6YXJkLiBWZXJodWlzZCBvcCAyNS4wOC4yMDI2IHVpdFxuLy8gZW5zdXJlUHVsc2VXaXpSZXNwb25zaXZlU3R5bGVzKCkgaW4gZGV0YWlsLmh0bWwg4oCUIHplbGZkZVxuLy8gPHN0eWxlPi1pbi08aGVhZD4tcmVjZXB0IGFscyBrYWFydCA1LzYvOCBoaWVyYm92ZW4sIG9vayBkZXplIGthYXJ0IG1vY2h0XG4vLyBnZWVuIHdpanppZ2luZyBhYW4gZGV6ZSBTQ1NTLXBhcnRpYWwgbWFrZW4uIEJld3VzdCBOQSBkZSBrYWFydCA2LSBlblxuLy8ga2FhcnQgOC1ibG9ra2VuIGhpZXJib3ZlbiBnZXpldCwgb20gZGV6ZWxmZGUgYnJvbnZvbGdvcmRlIChlbiBkdXNcbi8vIGNhc2NhZGUtdWl0a29tc3QgYmlqIGdlbGlqa2Ugc3BlY2lmaWNpdGVpdCkgYWFuIHRlIGhvdWRlbiBhbHMgdG9lbiBkaXRcbi8vIG5vZyBkcmllIGxvcy1nZcOvbmplY3RlZXJkZSA8c3R5bGU+LXRhZ3MgaW4gPGhlYWQ+IHdhcmVuLlxuLy9cbi8vIElQQUQgKH4xMDI0cHgpOiBuaWV0cyBuaWV1d3MgaGllciBub2RpZy4gYC53bS1kaWFsb2dgIChjb21wb25lbnRzL3YyL1xuLy8gb3ZlcmxheS1zaGVsbCArIHdpemFyZC1tb2RhbCkgY2xhbXQgZGUgbW9kYWxicmVlZHRlIGFsIG9wXG4vLyBgY2FsYygxMDB2dyAtIDQ4cHgpYCwgZW4gZGUgYmVzdGFhbmRlIGBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpYFxuLy8gaGllcmJvdmVuIGluIGRpdCBiZXN0YW5kIChrb3Ata2FhcnRlbiBzdGFwIDEsIGAucHVsc2Utd2l6LXN0ZXAyYC1cbi8vIGtvbG9tbWVuIHN0YXAgMikgbGlndCBPTkRFUiAxMDI0cHgg4oCUIG9wIGVlbiBpUGFkLWJyZWVkdGUgc3RhYW4gZGVcbi8vIGtvbG9tbWVuIGR1cyBhbCBuYWFzdCBlbGthYXIsIHpvbmRlciBkYXQgZGV6ZSBrYWFydCBkYWFyIGlldHMgYWFuIGhvZWZ0XG4vLyB0ZSB2ZXJhbmRlcmVuLlxuLy9cbi8vIFRFTEVGT09OICh+MzkwLTQ4MHB4LCBoaWVyb25kZXIgYWxzIG1heC13aWR0aDogNjAwcHgg4oCUIHJ1aW0gb25kZXIgZGVcbi8vIGJlc3RhYW5kZSA5MDBweC10ZXJ1Z3ZhbCwgZHVzIGdlZW4gb3ZlcmxhcCBtZXQgZGF0IGdlZHJhZyk6IGRlIGtvcFxuLy8gKGthYXJ0IDYpIHN0YXBlbHQgaW4gdHdlZSByaWplbiAodGl0ZWwrcGlsIG1ldCBoZXQga3J1aXNqZSBlcm5hYXN0IG9wXG4vLyByZWdlbCAxLCBoZXQgc2VnbWVudCBlcm9uZGVyIG9wIHJlZ2VsIDIpLCBlbiBoZXQga2FhcnR2b29yYmVlbGQtcGFuZWVsXG4vLyAoYC5wdWxzZS13aXotc3RlcDItcHJldmlld2AsIG1ldCBzaW5kcyBrYWFydCA4IG9vayBkZSBVaXRsZWctcHJldmlld1xuLy8gZXJpbikgd2lzc2VsdCBvbSBuYWFyIGVlbiBrbm9wIFwiVm9vcmJlZWxkXCIgKGAucHVsc2Utd2l6LXByZXZpZXctdHJpZ2dlcmAsXG4vLyBtYXJrdXAgaW4gd2l6U3RlcEh0bWwvc3RlcDJCb2R5IGluIGRldGFpbC5odG1sKS4gRGllIGtub3AgdG9vbnQgaGV0emVsZmRlXG4vLyBwYW5lZWwg4oCUIERFWkVMRkRFIG5vZGUsIG5pZXQgZ2VrbG9vbmQgb2YgdmVycGxhYXRzdCBuYWFyIGVlbiBsb3Ncbi8vIG1vZGFsLWNvbXBvbmVudDogd21xKCkgKGRldGFpbC5odG1sKSB6b2VrdCBiaW5uZW4gI3B1bHNlLXdpemFyZC1tb2RhbCwgZW5cbi8vIGFsbGUgbGl2ZS1iaWp3ZXJrZXJzIHZhbiBrYWFydCA3LzggKHdpelJlbmRlckNsYXNzaWNQaG90byxcbi8vIHdpekFwcGx5QmFja2dyb3VuZFRvQ2FudmFzLCB3aXpSZWZyZXNoRXhwbGFpblByZXZpZXcsIC4uLikgbG9wZW4gdmlhXG4vLyB3bXEoKS4gVmVycGxhYXRzZW4gbmFhciBlZW4gYXBhcnQgPHFkbmFwcm8tbW9kYWw+IHpvdSBkaWUgcmVmZXJlbnRpZXNcbi8vIGJyZWtlbiDigJQgdmFuZGFhciBlZW4gY2xhc3MgKGAucHVsc2Utd2l6LXByZXZpZXctb3BlbmApIGkucC52LiBlZW4gdHdlZWRlXG4vLyBtb2RhbC1zY2hpbC4gWmllIHdpelNldFByZXZpZXdPdmVybGF5KCkgaW4gZGV0YWlsLmh0bWwgdm9vciBoZXRcbi8vIG9wZW5lbi9zbHVpdGVuLlxuLnB1bHNlLXdpei1wcmV2aWV3LXRyaWdnZXIgeyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2Utd2l6LXByZXZpZXctY2xvc2UgeyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2Utd2l6LXByZXZpZXctc2NyaW0geyBkaXNwbGF5OiBub25lOyB9XG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAvLyBLb3A6IHRpdGVsK3BpbCBlbiBrcnVpc2plIG9wIHJlZ2VsIDEsIHNlZ21lbnQgb3AgcmVnZWwgMi5cbiAgICAucHVsc2Utd2l6LWhkciB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgYXV0bztcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJ0aXRsZSBjbG9zZVwiIFwic2VnIHNlZ1wiO1xuICAgICAgICByb3ctZ2FwOiAxMHB4O1xuICAgIH1cbiAgICAucHVsc2Utd2l6LWhkci1sZWZ0IHsgZ3JpZC1hcmVhOiB0aXRsZTsgfVxuICAgIC5wdWxzZS13aXotY2xvc2UtYnRuIHsgZ3JpZC1hcmVhOiBjbG9zZTsgfVxuICAgIC8vIG1pbi13aWR0aDowIG9wIGJlaWRlOiB6b25kZXIgZGV6ZSByZWdlbCBkdXd0IGhldCBzZWdtZW50IChkcmllIGJyZWRlXG4gICAgLy8gdGFiLWxhYmVscywgXCJzbGlkaW5nLXBpbGxzXCItdmFyaWFudCkgZGUgcmFzdGVya29sb20gYnJlZGVyIGRhbiBkZVxuICAgIC8vIGJlc2NoaWtiYXJlIHJ1aW10ZSDigJQgemVsZmRlIHZhbCBhbHMgZGUgbWluLXdpZHRoOjAtcmVnZWwgYmlqXG4gICAgLy8gLnB1bHNlLXR5cGUtY2FyZCBoaWVyYm92ZW4uIEdlbWV0ZW4gKGhlYWRsZXNzLCAzOTBweCk6IHpvbmRlciBkZXplXG4gICAgLy8gcmVnZWwgc3RhayBoZXQgc2VnbWVudCAzMHB4IGxpbmtzIHZhbiBkZSBrb3AgdWl0OyBtZXQgZGV6ZSByZWdlbFxuICAgIC8vIG5pZXQgbWVlci5cbiAgICAucHVsc2Utd2l6LWVkaXQtc2VnLXdyYXAgeyBncmlkLWFyZWE6IHNlZzsganVzdGlmeS1zZWxmOiBzdHJldGNoOyBtaW4td2lkdGg6IDA7IH1cbiAgICAucHVsc2Utd2l6LWVkaXQtc2VnLXdyYXAgcWRuYXByby1zZWdtZW50IHsgd2lkdGg6IDEwMCU7IG1pbi13aWR0aDogMDsgfVxuICAgIC8vIEdlZW4gc2VnbWVudCAoYWFubWFha3N0YW5kKTogZ2VlbiBsZWdlIHJpai10dXNzZW5ydWltdGUgb3ZlcmhvdWRlbi5cbiAgICAucHVsc2Utd2l6LWhkcjpoYXMoLnB1bHNlLXdpei1lZGl0LXNlZy13cmFwW2hpZGRlbl0pIHsgcm93LWdhcDogMDsgfVxuICAgIC8vIEthYXJ0dm9vcmJlZWxkLXBhbmVlbDoga25vcCBpLnAudi4gcGFuZWVsLCB0ZW56aWogZ2VvcGVuZC5cbiAgICAucHVsc2Utd2l6LXByZXZpZXctdHJpZ2dlciB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBtYXJnaW4tYm90dG9tOiAxNHB4OyB9XG4gICAgLnB1bHNlLXdpei1zdGVwMi1wcmV2aWV3IHsgZGlzcGxheTogbm9uZTsgfVxuICAgIC5wdWxzZS13aXotc3RlcDItcHJldmlldy5wdWxzZS13aXotcHJldmlldy1vcGVuIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBpbnNldDogMTZweDtcbiAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgcGFkZGluZzogNDRweCAxNnB4IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgIC8vIFplbGZkZSB0b2tlbnMgYWxzIGVsayBhbmRlciB6ZWxmc3RhbmRpZyB2ZW5zdGVyICgucW9zLXdpbmRvdy9cbiAgICAgICAgLy8gLnFkbmFwcm8td2l6YXJkLXN0ZXApLCBuaWV0IHplbGZ2ZXJ6b25uZW4gbmFtZW4uXG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW92ZXJsYXktd2luZG93LWJnLCAjZmZmKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tb3ZlcmxheS1mcmFtZS1zaGFkb3csIDAgNHB4IDRweCByZ2JhKDAsIDAsIDAsIC4zMCksIDAgOHB4IDEycHggNnB4IHJnYmEoMCwgMCwgMCwgLjE1KSk7XG4gICAgfVxuICAgIC5wdWxzZS13aXotcHJldmlldy1zY3JpbS5wdWxzZS13aXotcHJldmlldy1vcGVuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDQ7XG4gICAgICAgIC8vIEJlc3RhYW5kIHRva2VuICh6aWUgLnFvcy1zY3JpbSBpbiBjb21wb25lbnRzL3YyL292ZXJsYXktc2hlbGwpLFxuICAgICAgICAvLyBuaWV0IGVlbiB6ZWxmdmVyem9ubmVuIG5hYW0g4oCUIGRlemVsZmRlIHNjcmlta2xldXIgYWxzIGVsayBhbmRlclxuICAgICAgICAvLyB6ZWxmc3RhbmRpZyB2ZW5zdGVyIGluIGRlIGFwcC5cbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tb3ZlcmxheS1zY3JpbSwgcmdiYSgxMSwgMTEsIDEzLCAuNDUpKTtcbiAgICB9XG4gICAgLnB1bHNlLXdpei1zdGVwMi1wcmV2aWV3IC5wdWxzZS13aXotcHJldmlldy1jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgfVxufVxuXG4vKiBTdGFwLTItZm91dG1lbGRpbmc6IHplbGZkZSBzdGlqbCBhbHMgZGUgZ2VkZWVsZGUgI3B1bHNlLXdpei1lcnJvciBvcCBzdGFwIDNcbiAgICgucHVsc2Utc20tZXJyb3IgaGllcmJvdmVuIHJlZ2VsdCBoZXQgdWl0ZXJsaWprIGFsKSwgaGllciBhbGxlZW4gZGUgbWFyZ2VcbiAgIHRvdCBkZSBsYWF0c3RlIHZlbGRibG9rIGVyYm92ZW4uICovXG4jcHVsc2Utd2l6LXN0ZXAyLWVycm9yIHsgbWFyZ2luLXRvcDogMTZweDsgfVxuXG4vKiBTdGFwIDM6IHJlYWN0aWVzLXNjaGFrZWxhYXIuIHFkbmFwcm8tbGlzdC1yb3cgbGV2ZXJ0IGRlIHJpaiBhbCAobGFiZWwgK1xuICAgaGludCArIHRyYWlsaW5nLXNsb3QpOyBhbGxlZW4gd2F0IGx1Y2h0IGVyYm92ZW4sIHplbGZkZSBtYWF0IGFscyBkZSBhbmRlcmVcbiAgIC5wdWxzZS1zbS1maWVsZC1ibG9ra2VuLiAqL1xuLnB1bHNlLXdpei1jb21tZW50cy1yb3cgeyBtYXJnaW4tdG9wOiAxOHB4OyB9XG5cbi8qIEtpbSAwMi4wOS4yMDI2OiBrZXlsaW5lcyB0dXNzZW4gcGxhbm5pbmcgLyByZWFjdGllcyAvIHNjb3JlLCB6b2RhdCBkZSBrb2xvbVxuICAgZHJpZSBvbmRlcmRlbGVuIHRvb250IGluIHBsYWF0cyB2YW4gZWVuIGRvb3Jsb3BlbmRlIGxpanN0IHZlbGRlbi4gSGV0XG4gICBiZXN0YWFuZGUgYXRvb20gcWRuYXByby1kaXZpZGVyIHRla2VudCBkZSBsaWpuOyBoaWVyIGFsbGVlbiBkZSBydWltdGVcbiAgIGVyb21oZWVuLiBEZSByaWogZXJvbmRlciBkcmFhZ3QgemVsZiBhbCAxOHB4LCBkdXMgZGllIGthbnQgaXMgc21hbGxlci4gKi9cbi5wdWxzZS13aXota2V5bGluZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAxOHB4IDAgMDtcbn1cblxuLyogSGV0IFNjb3JlLWJsb2s6IGtvcGplLCB1aXRsZWcsIGVuIGRlIHZlcmR1YmJlbGFhciBhbHMgbG9zc2UgdGVnZWxcbiAgIChxZG5hcHJvLXJhZGlvLXRpbGUgaW4gdG9nZ2xlLXN0YW5kKS4gVmVyaHVpc2QgdmFuIGRlIGFudHdvb3JkZW5iYWxrIG9wXG4gICBzdGFwIDIuICovXG4ucHVsc2Utd2l6LXNjb3JlIHsgbWFyZ2luLXRvcDogMThweDsgfVxuLnB1bHNlLXdpei1zY29yZVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLXdpei1zY29yZSAucHVsc2Utc20tbGFiZWwgeyBkaXNwbGF5OiBibG9jazsgfVxuLnB1bHNlLXdpei1zY29yZS1sZWFkIHsgbWFyZ2luOiA0cHggMCAxMnB4OyB9XG4ucHVsc2Utd2l6LXNjb3JlIC5wdWxzZS1zbS1oaW50IHsgbWFyZ2luLXRvcDogMTBweDsgfVxuXG4vKiAtLS0gRG9lbGdyb2VwcGFuZWVsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5wdWxzZS1hdWRpZW5jZS1zZWcgeyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG4ucHVsc2UtYXVkaWVuY2UtYmxvY2tbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1hdWRpZW5jZS1maWVsZCB7IG1hcmdpbi1ib3R0b206IDE0cHg7IH1cbi5wdWxzZS1hdWRpZW5jZS1zdW1tYXJ5IHtcbiAgICBtYXJnaW46IDRweCAwIDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA2cHg7XG59XG4ucHVsc2UtYXVkaWVuY2UtZW1wdHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG59XG4ucHVsc2UtYXVkaWVuY2Utbm90ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgIGJhY2tncm91bmQ6ICNlZWYwZmI7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE5cHg7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG59XG4ucHVsc2UtYXVkaWVuY2Utbm90ZSBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgbWFyZ2luLXRvcDogMXB4OyB9XG4ucHVsc2UtYXVkaWVuY2UtZm9vdCB7IG1hcmdpbi10b3A6IDE2cHg7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgZmxleC13cmFwOiB3cmFwOyB9XG4ucHVsc2UtYXVkaWVuY2Utc3RhdHVzIHsgZm9udC1zaXplOiAxMi41cHg7IGNvbG9yOiAjMWQ5ZTc1OyB9XG4ucHVsc2UtYXVkaWVuY2Utc3RhdHVzW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2UtYXVkaWVuY2UtZXJyb3IgeyBmb250LXNpemU6IDEyLjVweDsgY29sb3I6ICNkODQ0MmU7IH1cbi5wdWxzZS1hdWRpZW5jZS1lcnJvcltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiAtLS0gVm9vcmJlZWxkIChcIkJla2lqayBhbHMgZGVlbG5lbWVyXCIpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLnB1bHNlLXByZXZpZXctZGF5IHtcbiAgICBtYXJnaW46IDIycHggMCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG59XG4ucHVsc2UtcHJldmlldy1kYXk6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiA0cHg7IH1cbi5wdWxzZS1wcmV2aWV3LWNhcmQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNWU1ZWEpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgcGFkZGluZzogMTZweCAxOHB4IDE4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xufVxuLnB1bHNlLXByZXZpZXcta2luZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBmb250LXNpemU6IDExLjVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuLnB1bHNlLXByZXZpZXctdGl0bGUgeyBtYXJnaW46IDAgMCA4cHg7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDIycHg7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzM5NDI5MCk7IH1cbi5wdWxzZS1wcmV2aWV3LWJvZHkgeyBmb250LXNpemU6IDEzLjVweDsgbGluZS1oZWlnaHQ6IDIxcHg7IGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzFjMWUyYSk7IH1cbi5wdWxzZS1wcmV2aWV3LWJvZHkgcDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuLyogS2FhcnQgNiAoQk9BUkQtcHVsc2UtcHdhLWluaGFhbHNsYWcpOiBgcG9zaXRpb246IHJlbGF0aXZlYCB6b2RhdCBkZVxuICAgYmV3ZWdlbmRlLWljb25zLWxhYWcgKC5wdWxzZS1wcmV2aWV3LWltYWdlLW92ZXJsYXkpIGVyIGV4YWN0IG92ZXJoZWVuIGthblxuICAgbGlnZ2VuLCBwcm9jZW50dWVlbCB0Lm8udi4gZGV6ZWxmZGUgYm94IGFscyBkZSA8aW1nPiDigJQgZ2VlbiB2YXN0ZVxuICAgYXNwZWN0LXJhdGlvLCBkZSBmb3RvIGJlaG91ZHQgZ2V3b29uIHppam4gZWlnZW4gdmVyaG91ZGluZy4gKi9cbi5wdWxzZS1wcmV2aWV3LWltYWdlIHsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tdG9wOiAxMnB4OyB9XG4vKiAyOC4wOC4yMDI2OiByb25kaW5nIGVyYWYuIEJlc2x1aXQgOCBtYWFrdGUgYmVlbGQgaW4gZWVuIFB1bHNlLWthYXJ0IG92ZXJhbCBlZW5cbiAgIHJlY2h0ZSBiYW5kLCBvb2sgZGUgZm90bzsgZGl0IHZvb3JiZWVsZCBob29yZGUgZGFhciBub2cgbmlldCBiaWouICovXG4ucHVsc2UtcHJldmlldy1pbWFnZSBpbWcgeyBtYXgtd2lkdGg6IDEwMCU7IGJvcmRlci1yYWRpdXM6IDA7IGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIEthYXJ0IDYg4oCUIGJld2VnZW5kZSBpY29ucyBvcCBkZSBrYWFydGZvdG8gKGltYWdlX21hcmt1cF9qc29uKS4gWmVsZmRlXG4gICBpZGlvb20gYWxzIGRlIC5xcGMtb3ZlcmxheS1sYWFnIHZhbiBxZG5hcHJvLXB1bHNlLWNhbnZhcyBoaWVyb25kZXJcbiAgIChwb3NpdGlvbiBhYnNvbHV0ZSwgcG9pbnRlci1ldmVudHMgbm9uZSBvcCBkZSBsYWFnIHplbGYsIGdlZW4ga2xpayBob29ydFxuICAgZWVuIHNwZWxlciB0ZSByYWtlbikuIFBvc2l0aWUvYnJlZWR0ZSBrb21lbiBhbHMgaW5saW5lIHN0eWxlIHBlciBpdGVtIG1lZVxuICAgKHB1bHNlUHJldmlld01hcmt1cE92ZXJsYXkoKSBpbiBkZXRhaWwuaHRtbCksIGhpZXIgYWxsZWVuIGRlIHZhc3RlIHZvcm0uICovXG4ucHVsc2UtcHJldmlldy1pbWFnZS1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ucHVsc2UtcHJldmlldy1pbWFnZS1vdmVybGF5LWl0ZW0ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5wdWxzZS1wcmV2aWV3LWltYWdlLW92ZXJsYXktaXRlbSBxZG5hcHJvLWxvdHRpZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLyogMjguMDguMjAyNjogYGhlaWdodDoxMDAlYCBlbiBOSUVUIGBhc3BlY3QtcmF0aW86MS8xYC4gSGV0IGNvbXBvbmVudCB6ZXRcbiAgICAgICB6aWNoemVsZiBkZSBrbGFzc2UgYHFkbmFwcm8tbG90dGllYCBlbiBkaWUgZHJhYWd0XG4gICAgICAgYGhlaWdodDp2YXIoLS1xbC1zaXplKWAgKDQ4cHgpLiBFZW4gZXhwbGljaWV0ZSBob29ndGUgd2ludCB2YW5cbiAgICAgICBhc3BlY3QtcmF0aW8sIGR1cyBlbGtlIHN0aWNrZXIgd2VyZCBwbGF0Z2VkcnVrdCB0b3QgZWVuIHN0cmVlcCAoZ2VtZXRlbjpcbiAgICAgICA0MjR4NDggdGVyd2lqbCBoaWogdmllcmthbnQgaG9vcnQpLiBIZXQgaXRlbSB6ZWxmIGtyaWpndCBudSB6aWpuIGhvb2d0ZVxuICAgICAgIGlubGluZSBtZWUsIG5ldCBhbHMgaW4gZGUgYXBwIChwdWxzZVByZXZpZXdNYXJrdXBPdmVybGF5IGluIGRldGFpbC5odG1sKTtcbiAgICAgICBkZXplIHJlZ2VsIGxhYXQgZGUgc3BlbGVyIGRpZSBob29ndGUgdnVsbGVuLiAqL1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4vKiBLYWFydCA2IOKAlCBsYXlvdXQgXCJhY2h0ZXJncm9uZFwiIGluIGhldCBkZWVsbmVtZXItdm9vcmJlZWxkOiBkZXplbGZkZVxuICAgcWRuYXByby1wdWxzZS1jYW52YXMgYWxzIGRlIHdpemFyZC1wcmV2aWV3ICgucHVsc2Utd2l6LWJnLWNhbnZhcy13cmFwXG4gICBoaWVyYm92ZW4pLCBlaWdlbiB3cmFwcGVyIG9tZGF0IGRpZSBzZWxlY3RvciBlciBuaWV0IG9wIHBhc3QuICovXG4vKiAyOC4wOC4yMDI2IChlaW5kdmVyaWZpY2F0aWUpOiBkaXQgdm9vcmJlZWxkIGlzIGJlZG9lbGQgb20gdGUgdG9uZW4gd2F0IGRlXG4gICBERUVMTkVNRVIgc3RyYWtzIHppZXQsIGVuIGluIGRlIGFwcCBzdGFhdCBoZXQgYmVlbGQgcmFuZC10b3QtcmFuZCBpbiBkZSBrYWFydFxuICAgKG1hcmdpbiAwIC0xNnB4ICsgd2lkdGggY2FsYygxMDAlICsgMzJweCksIHppZSBfcHdhLWN1cnJlbnQuc2NzcyBcIlB1bnQgMlwiKS5cbiAgIEhpZXIgc3RvbmQgaGV0IG5vZyBiaW5uZW4gZGUgMThweCBwYWRkaW5nIHZhbiAucHVsc2UtcHJldmlldy1jYXJkLCBkdXMgaGV0XG4gICB2b29yYmVlbGQgd2VlayBhZiB2YW4gZGUgYXBwIG9wIHByZWNpZXMgaGV0IHB1bnQgd2FhcnZvb3IgZGl0IGhlbGUgYm9yZFxuICAgYmVzdGFhdC4gRGUgbmVnYXRpZXZlIG1hcmdlcyBoaWVyb25kZXIgaGFsZW4gZGUga2FhcnRwYWRkaW5nIGVyIHdlZXIgYWYuICovXG4ucHVsc2UtcHJldmlldy1iZy1jYW52YXMtd3JhcCB7XG4gICAgbWFyZ2luOiA0cHggLTE4cHggMDtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMzZweCk7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgKyAzNnB4KTtcbn1cbi8qIEthYXJ0IDY6IGBib3JkZXItcmFkaXVzOiAxMnB4YCBpcyBoaWVyIG9vayB3ZWcg4oCUIHplbGZkZSByZWRlbiBhbHMgYmlqXG4gICAucHVsc2Utd2l6LWJnLWNhbnZhcy13cmFwIGhpZXJib3ZlbiAoZGUga2FhcnQgaXMgb3ZlcmFsIHJlY2h0OyBoZXQgdmVyc2NoaWxcbiAgIHR1c3NlbiB3aXphcmQsIHZvb3JiZWVsZCBlbiBhcHAgd2FzIGp1aXN0IGRlIGtsYWNodCkuICovXG4ucHVsc2UtcHJldmlldy1iZy1jYW52YXMtd3JhcCBxZG5hcHJvLXB1bHNlLWNhbnZhcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLyogMjguMDguMjAyNjogMTYvMTAgZW4gTklFVCAxNi85LiBEZSBjcm9wIGRpZSBkZSBnZWJydWlrZXIgbW9ldCBkb29ybG9wZW5cbiAgICAgICAoUFVMU0VfUEhPVE9fQ1JPUF9SQVRJTyBpbiBkZXRhaWwuaHRtbCksIGhldCBjb21wb25lbnQgemVsZiBlbiBkZSBrYWFydCBpblxuICAgICAgIGRlIGFwcCBzdGFhbiBhbGxlIGRyaWUgb3AgMTYvMTA7IGFsbGVlbiBkZSB3aXphcmQtZnJhbWVzIHN0b25kZW4gb3AgMTYvOS5cbiAgICAgICBEYWFyZG9vciBvbnR3aWVycCBqZSBvcCBlZW4gYW5kZXIgdmxhayBkYW4gamUgdGVydWdrcmVlZywgd2F0IHByZWNpZXMgZGVcbiAgICAgICBrbGFjaHQgdmFuIEtpbSB3YXMgKCdkZSB2ZXJob3VkaW5nZW4gbW9ldGVuIGdlbGlqayB6aWpuJykuICovXG4gICAgYXNwZWN0LXJhdGlvOiAxNiAvIDEwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIFc2IChmYXNlIDQpIOKAlCBkZSB2aWRlb3N0YXAgaW4gaGV0IHZvb3JiZWVsZC4gRWVuIGFhbmR1aWRpbmcsIGdlZW4gc3BlbGVyOiBpbiBkZVxuICAgYmFja29mZmljZSBnZWVuIFlvdVR1YmUta2FkZXIgaW5sYWRlbiAoemllIGRlIG9wbWVya2luZyBpbiBkZXRhaWwuaHRtbCkuICovXG4ucHVsc2UtcHJldmlldy12aWRlbyB7XG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDsgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7IGJhY2tncm91bmQ6ICNlZWYwZmI7XG4gICAgZm9udC1zaXplOiAxMi41cHg7IGxpbmUtaGVpZ2h0OiAxOHB4OyBjb2xvcjogIzQwNDk5YTtcbn1cbi5wdWxzZS1wcmV2aWV3LXZpZGVvIHFkbmFwcm8taWNvbiB7IGZsZXgtc2hyaW5rOiAwOyB9XG4ucHVsc2UtcHJldmlldy1vcHRpb25zIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA4cHg7IG1hcmdpbi10b3A6IDEycHg7IH1cbi5wdWxzZS1wcmV2aWV3LW9wdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAxMXB4IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2U1ZTVlYSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICAgIGZvbnQtc2l6ZTogMTMuNXB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMWMxZTJhKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2UsIGJhY2tncm91bmQgMTIwbXMgZWFzZTtcbn1cbi5wdWxzZS1wcmV2aWV3LW9wdDpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtMzAwLCAjYTlhZGRlKTsgYmFja2dyb3VuZDogI2Y3ZjhmZjsgfVxuLyogS2FhcnQgNiDigJQgZGUgTE9LQUxFIHNlbGVjdGllLXN0YW5kIHZhbiBlZW4gbWVlcmtldXplLWtlbm5pc3ZyYWFnLCB2w7PDs3IgZGVcbiAgIGJldmVzdGlna25vcDogbm9nIGdlZW4gb29yZGVlbCAoZGF0IGJsaWpmdCBpcy1jb3JyZWN0L2lzLXdyb25nKSwgYWxsZWVuXG4gICBcImRpdCBoZWIgaWsgYWFuZ2V2aW5rdFwiLiBOYSAucHVsc2UtcHJldmlldy1vcHQ6aG92ZXIgaW4gZGUgYnJvbiB6b2RhdCBoaWpcbiAgIGJpaiBnZWxpamtlIHNwZWNpZmljaXRlaXQgd2ludCBvdmVyIGRlIGhvdmVyLXRpbnQuICovXG4ucHVsc2UtcHJldmlldy1vcHQuaXMtc2VsZWN0ZWQgeyBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjMzk0MjkwKTsgYmFja2dyb3VuZDogI2VlZjBmYjsgfVxuLnB1bHNlLXByZXZpZXctb3B0LmlzLWNvcnJlY3QgeyBib3JkZXItY29sb3I6ICMxZDllNzU7IGJhY2tncm91bmQ6ICNlYWZhZjM7IGNvbG9yOiAjMTA2MDRhOyB9XG4ucHVsc2UtcHJldmlldy1vcHQuaXMtd3JvbmcgICB7IGJvcmRlci1jb2xvcjogI2Q4NDQyZTsgYmFja2dyb3VuZDogI2ZkZWVlYjsgY29sb3I6ICM4ZTI3MTg7IH1cbi5wdWxzZS1wcmV2aWV3LW9wdCBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgfVxuLyogS2FhcnQgNiDigJQgZGUgYmV2ZXN0aWdrbm9wIHZhbiBlZW4gbWVlcmtldXplLWtlbm5pc3ZyYWFnLCB2bGFrIG9uZGVyIGRlXG4gICBvcHRpZXM7IHZlcmR3aWpudCBuYSBiZXZlc3RpZ2VuICh6aWUgcHVsc2VQcmV2aWV3Q29uZmlybU11bHRpKCkgaW5cbiAgIGRldGFpbC5odG1sKSwgemVsZmRlIFtoaWRkZW5dLXJlZ2VsIGFscyAucHVsc2UtcHJldmlldy1mZWVkYmFjayBoaWVyb25kZXIuICovXG4ucHVsc2UtcHJldmlldy1tdWx0aS1jb25maXJtIHsgbWFyZ2luLXRvcDogMTBweDsgfVxuLnB1bHNlLXByZXZpZXctbXVsdGktY29uZmlybVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLXByZXZpZXctZmVlZGJhY2sge1xuICAgIG1hcmdpbjogMTJweCAwIDA7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2VlZjBmYjtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE5cHg7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG59XG4ucHVsc2UtcHJldmlldy1mZWVkYmFja1toaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLXByZXZpZXctaGludCB7IG1hcmdpbjogMTBweCAwIDA7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpOyB9XG4ucHVsc2UtcHJldmlldy1lbXB0eSB7IHBhZGRpbmc6IDQwcHggOHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTsgfVxuXG4vKiAtLS0gU3RhdGlzdGlla2VuIChXNykgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIEhldCBwYW5lZWwgbG9vcHQgb3ZlciBCRUlERSBrb2xvbW1lbiB2YW4gZGUgcGFnaW5hLWdyaWQuIEVlbiBnZWdyb2VwZWVyZGVcbiAgIHN0YWFmZ3JhZmllayBpbiBkZSAzNDBweC1rb2xvbSBuYWFzdCBkZSB0aWpkbGlqbiBpcyBvbmxlZXNiYWFyLCBkdXMgaGlqIGtvbXRcbiAgIG92ZXIgZGUgdm9sbGUgYnJlZWR0ZSBvbmRlciBkZSB0d2VlIHBhbmVsZW4gdGUgc3RhYW4uICovXG4vKiAtLS0gR2VzcHJla2tlbiAvIG1vZGVyYXRpZSAoRjItVzMpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFZvbGxlIGJyZWVkdGUsIG5ldCBhbHMgZGUgc3RhdGlzdGllazogZWVuIGdlc3ByZWsgcGVyIHN0YXAgaXMgZWVuIGJyZWRlIGxpanN0LFxuICAgZ2VlbiB6aWprb2xvbS4gSGV0IHBhbmVlbCB3b3JkdCBhbGxlZW4gZ2VyZW5kZXJkIHZvb3IgZWVuIEJFSEVFUkRFUiDigJQgZWVuXG4gICBraWprZXIgaGVlZnQgaGllciBuaWV0cyB0ZSB6b2VrZW4sIHZvb3IgaGVtIGlzIGhldCBnZXNwcmVrIGluIGRlIGFwcCBkZSBwbGVrLiAqL1xuLnB1bHNlLW1vZC1wYW5lbCB7IGdyaWQtY29sdW1uOiAxIC8gLTE7IH1cblxuLnB1bHNlLW1vZC1zZXR0aW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHggMThweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgbWFyZ2luOiA0cHggMCAyMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlY2ViZjQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmJmYmZlO1xufVxuLnB1bHNlLW1vZC1zZXR0aW5nLXRleHQgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDJweDsgbWluLXdpZHRoOiAyMjBweDsgZmxleDogMSAxIDMyMHB4OyB9XG4ucHVsc2UtbW9kLXNldHRpbmctbGFiZWwgeyBmb250LXNpemU6IDEzLjVweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6ICMyZjJkNDU7IH1cbi5wdWxzZS1tb2Qtc2V0dGluZy1oaW50ICB7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6ICM2YjY4ODQ7IGxpbmUtaGVpZ2h0OiAxLjQ1OyB9XG4ucHVsc2UtbW9kLXNldHRpbmctY29udHJvbCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgZmxleDogMCAwIGF1dG87IH1cblxuLyog4pqg77iPIFpvbmRlciBlZW4gYnJlZWR0ZSBISUVSIHdvcmR0IHpvJ24gdmVsZCA5NnB4IGJyZWVkIGVuIGlzIHppam4gZWlnZW4gaW5ob3VkXG4gICBvbmxlZXNiYWFyLiBgcWRuYXByby1zZWxlY3RgIHN0YWF0IG9wIGB3aWR0aDogMTAwJWA6IGhldCBjb21wb25lbnQgbGFhdCB6aWNoXG4gICBiZXd1c3QgZG9vciB6aWpuIG9taHVsc2VsIG9wbWV0ZW4uIE1hYXIgZGl0IG9taHVsc2VsIGlzIGVlbiBmbGV4LWl0ZW0gem9uZGVyXG4gICBiYXNpcywgZHVzIGhldCBrcmltcHQgdG90IGRlIGluaG91ZCwgZW4gZGllIGluaG91ZCB2cmFhZ3QgemlqbiBicmVlZHRlIHdlZXJcbiAgIGFhbiBoZXQgb21odWxzZWwuIERhdCBsb29wdCByb25kIGVuIGVpbmRpZ3Qgb3AgZGUgbWluaW1hbGUgbWFhdDogXCJPbmJlcGVya3RcIlxuICAgd2VyZCBcIk9u4oCmXCIgZW4gXCIwOTowMFwiIHdlcmQgXCIwKOKAplwiLCB0ZXJ3aWpsIGVyIHJlY2h0cyBlZW4gaGFsdmUgcGFnaW5hIGxlZWdcbiAgIHN0b25kLiBEZSBicmVlZHRlIGhvb3J0IGR1cyBvcCBoZXQgb21odWxzZWwsIG5pZXQgaW4gaGV0IGNvbXBvbmVudC5cbiAgIERlIGRyaWUgdmVsZGVuIHN0YWFuIG9wIGRlemVsZmRlIG1hYXQsIGFuZGVycyB3b3JkdCBkZSByZWNodGVya29sb20gcmFmZWxpZy5cblxuICAg4pqg77iPIEFsbGVlbiBESVJFQ1RFIGtpbmRlcmVuOiBkZSB0cmlnZ2VyIHbDoW4gZGUgc2VsZWN0IGlzIHplbGYgb29rIGVlblxuICAgYHFkbmFwcm8taW5wdXRgLCBlbiBkaWUgaG9vcnQgZGUgdm9sbGUgYnJlZWR0ZSB2YW4gemlqbiBzZWxlY3QgdGUgaG91ZGVuLiAqL1xuLnB1bHNlLW1vZC1zZXR0aW5nLWNvbnRyb2wgPiBxZG5hcHJvLXNlbGVjdCxcbi5wdWxzZS1tb2Qtc2V0dGluZy1jb250cm9sID4gcWRuYXByby1pbnB1dCB7IGZsZXg6IDAgMCBhdXRvOyB3aWR0aDogMTkwcHg7IH1cbi5wdWxzZS1tb2Qtc2F2ZWQge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzFkOWU3NTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjJzIGVhc2U7XG59XG4ucHVsc2UtbW9kLXNhdmVkW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi5wdWxzZS1tb2Qtc3RlcCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VmZWVmNjtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE0cHggMTZweCAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG59XG4ucHVsc2UtbW9kLXN0ZXA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cbi5wdWxzZS1tb2Qtc3RlcC1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5wdWxzZS1tb2Qtc3RlcC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxMy41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzJmMmQ0NTtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG4ucHVsc2UtbW9kLXN0ZXAtY291bnQgeyBmb250LXNpemU6IDExLjVweDsgY29sb3I6ICM4YTg3YTA7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLnB1bHNlLW1vZC1saXN0IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMHB4OyBtYXJnaW4tYm90dG9tOiAxMnB4OyB9XG4ucHVsc2UtbW9kLWVtcHR5LXN0ZXAgeyBmb250LXNpemU6IDEyLjVweDsgY29sb3I6ICM4YTg3YTA7IG1hcmdpbjogMCAwIDEycHg7IH1cblxuLnB1bHNlLW1vZC1jIHtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmN2Y3ZmI7XG4gICAgcGFkZGluZzogOXB4IDExcHg7XG59XG4ucHVsc2UtbW9kLWMuaXMtYWRtaW4geyBiYWNrZ3JvdW5kOiAjZjNmMmZkOyBib3JkZXI6IDFweCBzb2xpZCAjZTZlM2ZhOyB9XG4ucHVsc2UtbW9kLWMtaGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbn1cbi5wdWxzZS1tb2QtYy1hdXRob3IgeyBmb250LXNpemU6IDEyLjVweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6ICMyZjJkNDU7IH1cbi5wdWxzZS1tb2QtYy10aW1lICAgeyBmb250LXNpemU6IDExLjVweDsgY29sb3I6ICM4YTg3YTA7IH1cbi5wdWxzZS1tb2QtYy1zcGFjZXIgeyBmbGV4OiAxIDEgYXV0bzsgfVxuLnB1bHNlLW1vZC1jLWJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICMzYTM4NTI7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG4ucHVsc2UtbW9kLWMuaXMtZGVsZXRlZCAucHVsc2UtbW9kLWMtYm9keSB7IGNvbG9yOiAjOWQ5YWIwOyB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsgfVxuLnB1bHNlLW1vZC1jLWdvbmUge1xuICAgIG1hcmdpbjogNnB4IDAgMDtcbiAgICBmb250LXNpemU6IDExLjVweDtcbiAgICBjb2xvcjogIzhhODdhMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xufVxuLnB1bHNlLW1vZC1jLWdvbmUgcWRuYXByby1pY29uIHsgZmxleC1zaHJpbms6IDA7IG1hcmdpbi10b3A6IDFweDsgfVxuXG4vKiBIZXQgYW50d29vcmR2ZWxkIFdSQVBUIG9wIHNtYWwgaW4gcGxhYXRzIHZhbiB0ZSBrcmltcGVuLiBab25kZXIgZGllIHdyYXBcbiAgIHBlcnN0IGRlIGtub3AgaGV0IGludm9lcnZlbGQgc2FtZW4gdG90IGVlbiBrb2xvbSB2YW4gZW5rZWxlIHRla2VucywgZW4gZGFuXG4gICBsb29wdCBkZSBwbGFjZWhvbGRlciBvdmVyIHRpZW4gcmVnZWxzIOKAlCBkZSBhdXRvLWhvb2d0ZSB2YW4gcWRuYXByby1pbnB1dFxuICAgbWFha3QgZGFhciBlZW4gYmxvayB2YW4gfjI3MHB4IHZhbiAobGl2ZSBnZW1ldGVuIGluIGVlbiBzbWFsIHZlbnN0ZXIpLlxuICAgRGUgb25kZXJncmVucyB2YW4gMjYwcHggZW4gbWF4LXJvd3M9XCI0XCIgb3AgaGV0IHZlbGQgemV0dGVuIGRhdCBhbGxlYmVpIHZhc3QuICovXG4ucHVsc2UtbW9kLXJlcGx5IHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAxMHB4OyB9XG4ucHVsc2UtbW9kLXJlcGx5IHFkbmFwcm8taW5wdXQgeyBmbGV4OiAxIDEgMjYwcHg7IG1pbi13aWR0aDogMDsgfVxuLnB1bHNlLW1vZC1yZXBseSBxZG5hcHJvLWJ1dHRvbiB7IGZsZXgtc2hyaW5rOiAwOyBtYXJnaW4tdG9wOiAzcHg7IH1cblxuLnB1bHNlLW1vZC1tb2RhbC1sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAxNHB4IDAgNnB4O1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMyZjJkNDU7XG59XG4ucHVsc2UtbW9kLW1vZGFsLWVycm9yIHsgbWFyZ2luOiA4cHggMCAwOyBmb250LXNpemU6IDEyLjVweDsgY29sb3I6ICNjMDM5MmI7IH1cbi5wdWxzZS1tb2QtbW9kYWwtZXJyb3JbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLnB1bHNlLW1vZC1za2VsZXRvbiB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMTJweDsgfVxuLnB1bHNlLW1vZC1za2VsZXRvbltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLW1vZC1za2VsIHtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2YyZjFmOCAyNSUsICNlOWU4ZjMgMzclLCAjZjJmMWY4IDYzJSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiA0MDAlIDEwMCU7XG4gICAgYW5pbWF0aW9uOiBwdWxzZS1zdGF0cy1zaGltbWVyIDEuM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgaGVpZ2h0OiA5MnB4O1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucHVsc2UtbW9kLXNrZWwgeyBhbmltYXRpb246IG5vbmU7IH1cbn1cbi5wdWxzZS1tb2QtZXJyb3Ige1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZGYzZjI7XG4gICAgY29sb3I6ICNhODNhMmM7XG4gICAgZm9udC1zaXplOiAxM3B4O1xufVxuLnB1bHNlLW1vZC1lcnJvcltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuLnB1bHNlLW1vZC1lcnJvciBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgfVxuLnB1bHNlLW1vZC1lcnJvciBzcGFuIHsgZmxleDogMSAxIDIyMHB4OyB9XG4ucHVsc2UtbW9kLW5vdGUgeyBmb250LXNpemU6IDEyLjVweDsgY29sb3I6ICM2YjY4ODQ7IG1hcmdpbjogMDsgfVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEdlc3ByZWtrZW4tYmVoZWVycGFnaW5hLCBoZXJib3V3IChCT0FSRC1wdWxzZS1nZXNwcmVra2VuLCBrYWFydCA1KVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKiBEZSAucHVsc2UtbW9kLSogc2VjdGllIGhpZXJib3ZlbiBibGlqZnQgT05HRU1PRUlEIHN0YWFuIHRvdCBkZSBoZXJib3V3ZGVcbiAgIHZpZXcgKGthYXJ0IDQpIGhlbSBuaWV0IG1lZXIgZ2VicnVpa3Qg4oCUIGRlemUgc2VjdGllIGtvbXQgZXIgYWxsZWVuIE9OREVSXG4gICBiaWosIGluIGxpam4gbWV0IGRlIGthYXJ0b3BkcmFjaHQuXG5cbiAgIFRXRUUgTEFHRU4gaGllcm9uZGVyOlxuXG4gICBBLiBDaGF0LXBvcnQgKC5wY3MtKikg4oCUIDE6MSBnZXBvcnQgdWl0XG4gICAgICBhcHBfYXBpX3FkbmF2Mi9zcmMvUkVYL1Jlc291cmNlcy9TY3NzL19wd2EtY3VycmVudC5zY3NzIChyZWdlbHNcbiAgICAgIH40Mzg4LTUyNTYsIGFsbGVzIG9uZGVyIC5wY3MtbGlzdCB0L20gLnBjcy1jYW5jZWwtZWRpdDphY3RpdmUpLiBXYWFyZGVuLFxuICAgICAgdm9sZ29yZGUgZW4gd2FhcnNjaHV3aW5nc2NvbW1lbnRhcmVuIHppam4gbGV0dGVybGlqayBvdmVyZ2Vub21lbjsgYWxsZWVuXG4gICAgICBkcmllIGRpbmdlbiB6aWpuIHZlcnRhYWxkOlxuICAgICAgICAxLiB2YXIoLS1jLXRleHQsICNoZXgpIOKGkiB2YXIoLS1jLXRleHQtYm9keSwgI2hleCkg4oCUIHplbGZkZSBoZXgtdGVydWd2YWwsXG4gICAgICAgICAgIGFsbGVlbiBkZSB0b2tlbm5hYW0gdmVyc2NoaWx0IHR1c3NlbiBkZSB0d2VlIHByb2plY3Rlbi5cbiAgICAgICAgMi4gU2hlZXQtc3BlY2lmaWVrZSByZWdlbHMgKFtkYXRhLXB1bHNlLWNvbW1lbnRzLXNoZWV0XSwgLmJzLSosXG4gICAgICAgICAgIC0tYnMtcGFkLXgpIHppam4gTklFVCBnZXBvcnQ6IGRlIGNoYXQgbGVlZnQgaGllciBpbiBlZW4gcGFuZWVsLCBnZWVuXG4gICAgICAgICAgIGJvdHRvbSBzaGVldC4gLnBjcy1lZGl0c3RyaXAncyAtLWJzLXBhZC14LWJyZWVkdGVjb25zdHJ1Y3RpZSBpc1xuICAgICAgICAgICB2ZXJ2YW5nZW4gZG9vciBnZXdvbmUgdm9sbGUgYnJlZWR0ZSBiaW5uZW4gaGV0IHBhbmVlbCAoZ2VlbiBuZWdhdGlldmVcbiAgICAgICAgICAgbWFyZ2Ugbm9kaWcsIGVyIGlzIGdlZW4gc2hlZXQtemlqcGFkZGluZyBvbSB0ZSBjb21wZW5zZXJlbikuXG4gICAgICAgIDMuIEhldCBhY3RpZS1ibGF1dyAodmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKSkgaXMgTklFVCB2ZXJ0YWFsZCBuYWFyXG4gICAgICAgICAgIGJhY2tvZmZpY2UtcGFhcnMg4oCUIGRpdCBwYW5lZWwgSVMgZGUgYXBwLWNoYXQsIGJld3VzdCBuaWV0XG4gICAgICAgICAgIGJhY2tvZmZpY2UtaHVpc3N0aWpsIChjaXRhYXQta2V5bGluZSwgY2l0YWF0LWF1dGV1ciwgXCJ0b29uIG91ZGVyZVxuICAgICAgICAgICByZWFjdGllc1wiLCB2ZXJzdHV1cmtub3AtZ3JvZWkpLlxuICAgICAgRGUgdHdlZSBzYW1lbmdlc3RlbGRlIHNwZWNpZmljaXRlaXQtc2VsZWN0b3JzICgucGNzLWNvbW1lbnRfX3N0aWNrZXIgbWV0XG4gICAgICBxZG5hcHJvLWxvdHRpZSwgLnBjcy1zZW5kIG1ldCBkZSBkcmllLWtsYXNzZW4tYnJlZWR0ZXJlZ2VsKSB6aWpuXG4gICAgICBvdmVyZ2Vub21lbiBJTkNMVVNJRUYgaHVuIHdhYXJzY2h1d2luZ3Njb21tZW50YWFyOiBkYXQgemlqbiBnZWVuXG4gICAgICBvcHNtdWstY29tbWVudHMgbWFhciBkZSByZWRlbiBkYXQgZGUgcmVnZWwgZXJvbmRlciBuaWV0IHpvbWFhclxuICAgICAgdmVyZWVudm91ZGlnZCBtYWcgd29yZGVuLlxuXG4gICAgICBCZXd1c3QgV0VMIG1lZWdlbm9tZW4sIGJ1aXRlbiBkZSBsZXR0ZXJsaWprZSBuYWFtbGlqc3QgdWl0IGRlIGthYXJ0YnJpZWZcbiAgICAgIChcIi5wY3MtbGlzdCwgLnBjcy1tZWVyLCAucGNzLWNvbW1lbnQsIC5wY3MtcXVvdGUsIC5wY3MtY29tcG9zZSxcbiAgICAgIC5wY3MtZW1vamktcm93Ly1idG4sIC5wY3MtZm9ybSwgLnBjcy1sZWZ0LCAucGNzLWZpZWxkLCAucGNzLXNlbmQsXG4gICAgICAucGNzLWVkaXRzdHJpcFwiKSBtYWFyIHfDqWwgXCJfXy1raW5kZXJlbiB2YW4gLnBjcy1jb21tZW50XCIgb2Ygb25taXNiYWFyXG4gICAgICB2b29yIGRlIGRvb3Iga2FhcnQgNCBnZXZyYWFnZGUgZnVuY3RpZXMgKGRyaWUtcHVudGplcy1tZW51LCBBbnR3b29yZGVuLFxuICAgICAgaGFydGplLCBiZXdlcmtlbiwgQG1lbnRpb24sIFwiZ2VtYXJrZWVyZFwiL1wiZ2VmbGl0c3RcIiBiaWogZWVuIHNwcm9uZyBuYWFyXG4gICAgICBlZW4gY2l0YWF0KTogLnBjcy1ub3RlLy5wY3MtZXJyb3Itbm90ZSwgLnBjcy1jb21tZW50X19lZGl0ZWQsXG4gICAgICAucGNzLWNvbW1lbnRfX21lbnUtYnRuLCAucGNzLWNvbW1lbnRfX2Zvb3QsIC5wY3MtY29tbWVudF9fcmVwbHkgKGluY2wuXG4gICAgICA6YWN0aXZlLzpkaXNhYmxlZCksIC5wY3MtY29tbWVudF9fbGlrZS13cmFwLy1jb3VudCwgLnBjcy1tZW50aW9uLFxuICAgICAgLnBjcy1jYW5jZWwtZWRpdCwgLnBjcy1jb21tZW50LS1iZXdlcmt0Ly0tZmxpdHMvLS1kb2Vsd2l0ICgrIGRlXG4gICAgICBAa2V5ZnJhbWVzIHBjcy1jb21tZW50LWZsaXRzKS4gUmVkZW46IGthYXJ0IDYgKGVpbmR2ZXJpZmljYXRpZSkgbm9lbXRcbiAgICAgIHBhcml0ZWl0IG1ldCBkZSAucGNzLSotYnJvbiBleHBsaWNpZXQgZWVuIFNDT1BFLWVpcywgZW4gem9uZGVyIGRlemVcbiAgICAgIF9fLWtpbmRlcmVuIHpvdSBkZSBoZWxmdCB2YW4gZWVuIHJlYWN0aWUtcmlqIG9ub3BnZW1hYWt0IGJsaWp2ZW4uXG4gICAgICBHZW1lbGQgaS5wLnYuIHN0aWx6d2lqZ2VuZCB0b2VnZXZvZWdkIOKAlCBjaGVjayBkaXQgdGVnZW4ga2FhcnQgNCdzXG4gICAgICB1aXRlaW5kZWxpamtlIG1hcmt1cC5cblxuICAgICAgQkVXVVNUIE5JRVQgbWVlZ2Vub21lbiAoZmFzZSAyIG9mIHNoZWV0L2RpYWxvb2ctc3BlY2lmaWVrLCBkdXMgaGllclxuICAgICAgbmlldCB2YW4gdG9lcGFzc2luZyk6IC5wY3MtcGljay8ucGNzLXBpY2tfXyogKHN0aWNrZXIvZ2lmLWNvbmNlcHRzdHJpcFxuICAgICAgaW4gZGUgY29tcG9zZXIpLCAucGNzLWVycm9yIChiaWpuYS1kdXBsaWNhYXQgdmFuIC5wY3MtZXJyb3Itbm90ZSwgaG9vcnRcbiAgICAgIGJpaiBkaWV6ZWxmZGUgY29uY2VwdHN0cmlwKSwgLnBjcy1wbHVzLW1lbnUgZW5cbiAgICAgIHFkbmFwcm8tcG9wb3ZlcltkYXRhLXB1bHNlLXBsdXMtc2hlZXRdIChoZXQgKy1tZW51IHZvb3Igc3RpY2tlci9naWYpLFxuICAgICAgZW4gYWxsZXMgb25kZXIgXCJQdWxzZSBicmVkZSBkaWFsb29nXCIgLyAucGNkLWNvbW1lbnRzIChkZSBxZG5hcHJvLXBvcG92ZXJcbiAgICAgIGRpYWxvb2d2YXJpYW50IHZhbiBkZSBzaGVldCDigJQgb29rIGVlbiBvdmVybGF5LCBnZWVuIHBhbmVlbCkuXG5cbiAgICAgIEdFVk9OREVOLCBOSUVUIE9QR0VMT1NUIChidWcgaW4gZGUgUFdBLWJyb24sIGhvb3J0IG5pZXQgaW4gZGV6ZSBrYWFydFxuICAgICAgZ2VyZXBhcmVlcmQgdGUgd29yZGVuIOKAlCB6aWUgaGV0IHJhcHBvcnQpOiBpbiBfcHdhLWN1cnJlbnQuc2NzcyBzdGFhdFxuICAgICAgYC5wY3MtY29tbWVudF9fbWVudS1idG5gIHR3ZWUga2VlciBnZWRlZmluaWVlcmQgKH5yZWdlbCA1MTczIG1ldCB2b2xsZWRpZ2VcbiAgICAgIGZsZXgvcGFkZGluZy9rbGV1ci9ob3Zlci1vcG1hYWssIGVuIG5vZ21hYWxzIH5yZWdlbCA1MzgyIG1ldCBhbGxlZW5cbiAgICAgIGBtYXJnaW4tbGVmdDogYXV0b2ApLiBIZXQgY29tbWVudGFhciBiaWogZGUgdHdlZWRlIHJlZ2VsIGJld2VlcnQgZGF0IGRlXG4gICAgICBlZXJzdGUsIHZvbGxlZGlnZSByZWdlbCBpcyB3ZWdnZWhhYWxkIG9tZGF0IGhldCBrbm9wamUgbnUgZWVuIGNvbXBvbmVudFxuICAgICAgaXMg4oCUIG1hYXIgZGllIGVlcnN0ZSByZWdlbCBzdGFhdCBub2cgZ2V3b29uIGluIGhldCBiZXN0YW5kLiBIaWVyb25kZXIgaXNcbiAgICAgIGFsbGVlbiBkZSBlZXJzdGUsIHZvbGxlZGlnZSByZWdlbCBnZXBvcnQgKGRpZSBnZWVmdCBlZW4gY29ycmVjdGVcbiAgICAgIGJhc2lzb3BtYWFrIG9uZ2VhY2h0IG9mIGthYXJ0IDQgaGllciBlZW4ga2FhbCBgPGJ1dHRvbj5gIG9mIGVlblxuICAgICAgcWRuYXByby1pY29uLWJ0bi1jb21wb25lbnQgdmFuIG1hYWt0KTsgZGUgZG9kZSB0d2VlZGUgcmVnZWwgaXMgbmlldFxuICAgICAgb3Zlcmdlbm9tZW4uXG5cbiAgIEIuIFBhZ2luYWxhYWcgKC5wZ3MtKikg4oCUIG5pZXV3LCBwcmVmaXggdm9sZ2VucyBoZXQga2xhc3NlbmNvbnRyYWN0IHVpdCBkZVxuICAgICAga2FhcnRicmllZjogd2Vya2JhbGssIGxpanN0K2RldGFpbC1zcGxpdCwgc3RhcHBlbnJpaiBlbiBkZXRhaWxrb3AvLVxuICAgICAgZHJhYWQuIEFsbGVlbiBiZXN0YWFuZGUgdG9rZW5zICh6aWUgYmFja29mZmljZTIvc2Nzcy9jb21wb25lbnRzL3YyL1xuICAgICAgZGVzaWduLXRva2Vucy9fZGVzaWduLXRva2Vucy5zY3NzKTsgZ2VlbiBtaXhpbnMgaGVyZ2VicnVpa3Qgb21kYXQgZGl0XG4gICAgICBiZXN0YW5kIHplbGYgb3ZlcmFsIG1ldCBwbGF0dGUgQG1lZGlhIChtYXgtd2lkdGg6IOKApiktYmxva2tlbiB3ZXJrdCBpblxuICAgICAgcGxhYXRzIHZhbiBicmVha3BvaW50LW1peGlucyAoemVsZmRlIHN0aWpsIGFhbmdlaG91ZGVuLCB6aWUgby5hLiBkZVxuICAgICAgLnB1bHNlLWRldGFpbC1ib2R5LXJlZ2VsIGhpZXJib3ZlbiBpbiBkaXQgYmVzdGFuZCkuICovXG5cbi8vIC0tLSBBLiBDaGF0LXBvcnQgKC5wY3MtKikgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5wY3MtbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTRweDtcbiAgICAmOmVtcHR5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4vKiBcIlRvb24gb3VkZXJlIHJlYWN0aWVzXCIg4oCUIGJvdmVuYWFuIGRlIGxpanN0LCB0ZWtzdGtub3AgaS5wLnYuIHZvbGxlIGtub3BcbiAgIChuYXZpZ2F0aWUgYmlubmVuIGRlIGxpanN0LCBnZWVuIGFjdGllIG9wIGVlbiBiZXJpY2h0KS4gWmllIGRlIGJyb24gdm9vciBkZVxuICAgdm9sbGVkaWdlIHRvZWxpY2h0aW5nLiAqL1xuLnBjcy1tZWVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCA0cHg7XG4gICAgcGFkZGluZzogMTBweCA4cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnBjcy1tZWVyOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmMGYxZjIpO1xufVxuLnBjcy1tZWVyW2Rpc2FibGVkXSB7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ucGNzLW5vdGUsXG4ucGNzLWVycm9yLW5vdGUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbn1cbi5wY3MtZXJyb3Itbm90ZSB7XG4gICAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbn1cblxuLnBjcy1jb21tZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogOHB4O1xufVxuLnBjcy1jb21tZW50IHFkbmFwcm8tYXZhdGFyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cbi5wY3MtY29tbWVudF9fdGV4dCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbn1cbi5wY3MtY29tbWVudF9faGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAvKiBab25kZXIgbWluLXdpZHRoOiAwIHdlaWdlcnQgZGV6ZSByaWogc21hbGxlciB0ZSB3b3JkZW4gZGFuIHppam4gaW5ob3VkLCBlblxuICAgICAgIGR1d3QgZWVuIGxhbmdlIG5hYW0gKyBiZWhlZXJkZXItYmFkZ2UgKyB0aWpkIGhldCBkcmllLXB1bnRqZXMtbWVudSB2b29yYmlqXG4gICAgICAgZGUgcmVjaHRlcnJhbmQgdmFuIGhldCBwYW5lZWwuIERlIHJpaiBtYWcgd8OpbCBhZmJyZWtlbi4gKi9cbiAgICBtaW4td2lkdGg6IDA7XG59XG4ucGNzLWNvbW1lbnRfX2F1dGhvciB7XG4gICAgLyogRWVuIGxhbmdlIG5hYW0gYnJlZWt0IGFmIGkucC52LiBkZSByaWogb3AgdGUgcmVra2VuLiBgYW55d2hlcmVgIGVuIG5pZXRcbiAgICAgICBgYnJlYWstd29yZGA6IGVlbiBsYW5nZSBuYWFtIHpvbmRlciBzcGF0aWVzIChvZiBlZW4gZ2VwbGFrdGUgVVJMKSBtb2V0IG9va1xuICAgICAgIGt1bm5lbiBicmVrZW4uICovXG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuLnBjcy1jb21tZW50X19hdXRob3Ige1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzBiMGIwZCk7XG59XG4ucGNzLWNvbW1lbnRfX3RpbWUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbn1cbi8qIHByZS13cmFwOiBlZW4gcmVhY3RpZSBpcyBwbGF0dGUgdGVrc3QsIG1hYXIgZ2V0aWt0ZSByZWdlbGVpbmRlbiB6aWpuIHfDqWxcbiAgIGJldGVrZW5pcy4gYW55d2hlcmUgYnJlZWt0IGVlbiBnZXBsYWt0ZSBsYW5nZSBVUkwgYWYgaS5wLnYuIGhldCBwYW5lZWwgb3BlblxuICAgdGUgZHV3ZW4uICovXG4ucGNzLWNvbW1lbnRfX2JvZHkge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzBiMGIwZCk7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuLyogRWVuIHN0aWNrZXIgSU4gZWVuIGdlcGxhYXRzdGUgcmVhY3RpZS4gR2VlbiBhY2h0ZXJncm9uZC9rYWRlcjogZGUgc3RpY2tlcnNcbiAgIGhlYmJlbiB6ZWxmIGVlbiB0cmFuc3BhcmFudGUgcmFuZC5cbiAgIOKaoO+4jyBTQU1FTkdFU1RFTERFIGNsYXNzLXNlbGVjdG9yIChgLnBjcy1jb21tZW50X19zdGlja2VyLnFkbmFwcm8tbG90dGllYCxcbiAgIHNwZWNpZmljaXRlaXQgMC0yLTApIGVuIGRhdCBpcyBleHByZXM6IHFkbmFwcm8tbG90dGllIHpldCB6aWpuIGVpZ2VuIGRlZmF1bHRcbiAgIG9vayB2aWEgZWVuIGNsYXNzLXNlbGVjdG9yIChgLnFkbmFwcm8tbG90dGllIHsgLS1xbC1zaXplOiA0OHB4OyB9YCksIGVuIGRpZVxuICAgY29tcG9uZW50LUNTUyB3b3JkdCBOQSBzdHlsZS12MS5jc3MgYWFuIDxoZWFkPiB0b2VnZXZvZWdkLiBUd2VlXG4gICBjbGFzcy1zZWxlY3RvcnMgb3AgaGV0emVsZmRlIGVsZW1lbnQgbWV0IGdlbGlqa2Ugc3BlY2lmaWNpdGVpdCBsYXRlbiBkYW4gZGVcbiAgIExBQVRTVEUgaW4gZGUgYnJvbmNvZGUgd2lubmVuIOKAlCBkYXQgaXMgYmlqIGdlbGlqa2Ugc3BlY2lmaWNpdGVpdCBoZXRcbiAgIGNvbXBvbmVudCwgbmlldCBkZXplIHJlZ2VsLiBNZXQgZGUgc2FtZW5nZXN0ZWxkZSBzZWxlY3RvciAoMC0yLTApIHdpbnQgZGV6ZVxuICAgcmVnZWwgYWx0aWpkLCBvbmdlYWNodCBsYWFkdm9sZ29yZGUuIFppZSBfcHdhLWN1cnJlbnQuc2NzcyB2b29yIGRlIHZvbGxlZGlnZVxuICAgbWV0aW5nIGRpZSBkaXQgdmFzdHN0ZWxkZSAoZGV6ZWxmZGUgcmFjZSB0cm9mIG9vayAucGNzLXBpY2tfX3RodW1iIGRhYXIpLiAqL1xuLnBjcy1jb21tZW50X19zdGlja2VyLnFkbmFwcm8tbG90dGllIHtcbiAgICAtLXFsLXNpemU6IDEyMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC8qIE5lZ2F0aWV2ZSBsaW5rZXJtYXJnZSBoYWFsdCBkZSB3aXRydWltdGUgd2VnIGRpZSBpbiBkZSBzdGlja2VydGVrZW5pbmdlblxuICAgICAgIHplbGYgeml0IChnZW1ldGVuIG92ZXIgMjQgc3RpY2tlcnM6IGdlbWlkZGVsZCAxMSw2JSBsaW5rcyBsZWVnKTsgMTRweCBpc1xuICAgICAgIGRlIG1lZGlhYW4gdmFuIDEyMHB4LCB3YWFyZG9vciBkZSBtZWVzdGUgc3RpY2tlcnMgdWl0bGlqbmVuIG1ldCBkZSB0ZWtzdC4gKi9cbiAgICBtYXJnaW46IDJweCAwIDRweCAtMTRweDtcbn1cbi8qIEVlbiBHSUYgaW4gZWVuIGdlcGxhYXRzdGUgcmVhY3RpZS4gYGFzcGVjdC1yYXRpb2Aga29tdCBhbHMgaW5saW5lIHN0eWxlIG1lZVxuICAgdmFudWl0IGRlIHJlbmRlcmVuZGUgSlMgKGdpZl9yYXRpbywgb2YgYnJlZWR0ZS9ob29ndGUgYWxzIHRlcnVndmFsKSDigJQgZGF0XG4gICB2b29ya29tdCBlZW4gbGF5b3V0LXNwcm9uZyB6b2RyYSBoZXQgYmVzdGFuZCBsYWFkdC4gKi9cbi5wY3MtY29tbWVudF9fZ2lmIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgIG1hcmdpbjogMnB4IDAgNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTtcbn1cbi5wY3MtY29tbWVudF9fZ2lmLW1lZGlhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG59XG4ucGNzLWNvbW1lbnRfX2JvZHktLWRlbGV0ZWQge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbn1cbi8qIEFjaHRlciBkZSB0aWpkIGluIGRlIGtvcCwgYWxsZWVuIGJpaiBlZGl0ZWQgJiYgIWRlbGV0ZWQuICovXG4ucGNzLWNvbW1lbnRfX2VkaXRlZCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbn1cbi8qIEhldCBkcmllLXB1bnRqZXMta25vcGplLCB1aXRlcnN0IHJlY2h0cyBpbiBkZSBrb3AgKG1pbmUgJiYgIWRlbGV0ZWQpLiBHZWVuXG4gICBuZWdhdGlldmUgbWFyZ2luLXJpZ2h0OiBkaWUgdHJla3QgaGV0IGtub3BqZSBiaWogZWVuIGxhbmdlIG5hYW0gKyBiYWRnZSArXG4gICB0aWpkIHZvb3JiaWogZGUgcmFuZCB2YW4gaGV0IHBhbmVlbC4gKi9cbi5wY3MtY29tbWVudF9fbWVudS1idG4ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA2cHg7XG4gICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtNnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnBjcy1jb21tZW50X19tZW51LWJ0bjpob3Zlcixcbi5wY3MtY29tbWVudF9fbWVudS1idG46Zm9jdXMtdmlzaWJsZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmMGYxZjIpO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4vKiBBbnR3b29yZGVuICsgaGFydGplLCBvbmRlciBkZSBib2R5IHZhbiBlZW4gbmlldC12ZXJ3aWpkZXJkZSByZWFjdGllLiAqL1xuLnBjcy1jb21tZW50X19mb290IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNHB4O1xuICAgIG1hcmdpbi10b3A6IDJweDtcbn1cbi5wY3MtY29tbWVudF9fcmVwbHkge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5wY3MtY29tbWVudF9fcmVwbHk6aG92ZXIsXG4ucGNzLWNvbW1lbnRfX3JlcGx5OmZvY3VzLXZpc2libGUge1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzBiMGIwZCk7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cbi5wY3MtY29tbWVudF9fcmVwbHk6YWN0aXZlIHtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICMwYjBiMGQpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Nik7XG59XG4ucGNzLWNvbW1lbnRfX3JlcGx5OmRpc2FibGVkIHtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWRpc2FibGVkLCAjODk4ZTk5KTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLyogLnBjcy1jb21tZW50X19saWtlIGlzIGVlbiBxZG5hcHJvLWZhdm9yaXRlLWJ1dHRvbiAobW9kZT1cImhlYXJ0XCIpIOKAlCBkYXRcbiAgIGNvbXBvbmVudCBicmVuZ3QgemlqbiBlaWdlbiBib3gvaG92ZXIvYWN0aXZlL3BvcC1DU1MgYWwgbWVlLiBIaWVyIGJsaWpmdFxuICAgYWxsZWVuIGRlIHdyYXBwZXItbGF5b3V0IG92ZXI6IGhhcnRqZSArIHRlbGxlciBuYWFzdCBlbGthYXIuICovXG4ucGNzLWNvbW1lbnRfX2xpa2Utd3JhcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xufVxuLnBjcy1jb21tZW50X19saWtlLWNvdW50IHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbn1cbi8qIERlIFwiQE5hYW0gXCItbWVudGlvbiB2b29yYWFuIGVlbiBhbnR3b29yZCDigJQgcHV1ciBzdHlsaW5nLCBnZWVuIGxpbmsuICovXG4ucGNzLW1lbnRpb24ge1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi8qIERlIHJlYWN0aWUgZGllIGplIE5VIGJld2Vya3QsIGdlbWFya2VlcmQgaW4gZGUgbGlqc3QuICovXG4ucGNzLWNvbW1lbnQtLWJld2Vya3Qge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYWN0aW9uLTA4LCByZ2JhKDcwLCA4MiwgMjQzLCAwLjA4KSk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgM3B4IDAgMCB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgIG1hcmdpbjogLTZweCAtOHB4O1xufVxuLyogRWVubWFsaWdlIGFjaHRlcmdyb25kLXB1bHMgb3AgZGUgcmVhY3RpZSB3YWFyIGplIG5hIGVlbiBzcHJvbmcgKHRpayBvcCBlZW5cbiAgIGNpdGFhdGJsb2spIG9wIGxhbmR0LiBEb29mdCB2YW56ZWxmIHVpdCBpbiAxLDJzLiAqL1xuLnBjcy1jb21tZW50LS1mbGl0cyB7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGFuaW1hdGlvbjogcGNzLWNvbW1lbnQtZmxpdHMgMS4ycyBlYXNlLW91dDtcbn1cbkBrZXlmcmFtZXMgcGNzLWNvbW1lbnQtZmxpdHMge1xuICAgIDAlIHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1hY3Rpb24tMTIsIHJnYmEoNzAsIDgyLCAyNDMsIDAuMTIpKTsgfVxuICAgIDEwMCUgeyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWFjdGlvbi0wOCwgcmdiYSg3MCwgODIsIDI0MywgMC4wOCkpOyB9XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5wY3MtY29tbWVudC0tZmxpdHMge1xuICAgICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgfVxufVxuLyogRGUgQkxJSlZFTkRFIG1hcmtlcmluZyB2YW4gZGUgcmVhY3RpZSB3YWFyIGRlIGxhYXRzdGUgc3Byb25nIG9wIGxhbmRkZS5cbiAgIFZlcnBhYXJzdCBsb2thYWwgZGUgdHdlZSBncmlqcy10b2tlbnMgKGNpdGFhdGJsb2ssIGxpa2UtaG92ZXIpIHpvZGF0IG5pZXRzXG4gICBiaW5uZW4gZGUgcmlqIG5vZyB0ZWdlbiBkZSBwYWFyc2Ugdmxha3RlIHZsb2VrdDsgcmdiYSwgZHVzIGRhcmsgbW9kZSB3ZXJrdFxuICAgem9uZGVyIGFwYXJ0ZSByZWdlbC4gKi9cbi5wY3MtY29tbWVudC0tZG9lbHdpdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1hY3Rpb24tMDgsIHJnYmEoNzAsIDgyLCAyNDMsIDAuMDgpKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBtYXJnaW46IC04cHg7XG4gICAgLS1jLWJnLXN1YnRsZS1ob3ZlcjogdmFyKC0tYy1hY3Rpb24tMTIsIHJnYmEoNzAsIDgyLCAyNDMsIDAuMTIpKTtcbiAgICAtLWMtZ3JleS01MDogdmFyKC0tYy1hY3Rpb24tMTIsIHJnYmEoNzAsIDgyLCAyNDMsIDAuMTIpKTtcbn1cbi8qIERlIGFubnVsZWVya25vcCBpbiBkZSBiZXdlcmstc3RhbmQsIGFsbGVlbiB6aWNodGJhYXIgdGlqZGVucyBiZXdlcmtlbi4gKi9cbi5wY3MtY2FuY2VsLWVkaXQge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwIDRweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnBjcy1jYW5jZWwtZWRpdFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLnBjcy1jYW5jZWwtZWRpdDpob3Zlcixcbi5wY3MtY2FuY2VsLWVkaXQ6Zm9jdXMtdmlzaWJsZSB7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMGIwYjBkKTtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuLnBjcy1jYW5jZWwtZWRpdDphY3RpdmUge1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzBiMGIwZCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTtcbn1cblxuLyogQ2l0YWF0YmxvayBCT1ZFTiBkZSBlaWdlbiB0ZWtzdCBpbiBlZW4gYW50d29vcmQtcmVhY3RpZSAoV2hhdHNBcHAtbW9kZWwpOiBlZW5cbiAgIDxidXR0b24+IHpvZGF0IGVlbiB0aWsgZXJvcCBuYWFyIGhldCBvcmlnaW5lZWwga2FuIHNwcmluZ2VuLCB2b2xsZSBicmVlZHRlXG4gICB2YW4gZGUgdGVrc3Rrb2xvbS4gQXV0ZXVyIGVuIHRla3N0IHN0YWFuIHpvbmRlciB3aWtrZWwtZWxlbWVudCBpbiBkZSBET007XG4gICBmbGV4LXdyYXAgKyBlZW4gdm9sbGUtYnJlZWR0ZSBmbGV4LWJhc2lzIG9wIGRlIGF1dGV1cnNyZWdlbCBmb3JjZWVydCBkaWUgbmFhclxuICAgemlqbiBlaWdlbiByaWouICovXG4ucGNzLXF1b3RlIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sdW1uLWdhcDogOHB4O1xuICAgIHJvdy1nYXA6IDJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCA0cHg7XG4gICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIsICNmNWY2ZjgpO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDNweCAwIDAgdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ucGNzLXF1b3RlX19hdXRob3Ige1xuICAgIGZsZXg6IDEgMCAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWFjdGlvbi01MDAsICM0NjUyZjMpO1xufVxuLnBjcy1xdW90ZV9fdGV4dCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgICAvKiBNYXggMiByZWdlbHM6IGVlbiBjaXRhYXQgaXMgZWVuIHZlcndpanppbmcsIGdlZW4gaGVyaGFsaW5nLiAqL1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucGNzLXF1b3RlX19zdGlja2VyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi8qIEhldCBvcmlnaW5lZWwgYmVzdGFhdCBuaWV0IG1lZXI6IGdlZW4gYWN0aWUgbWVlciwgZHVzIGdlZW4gYWFud2lqemVyIGVuIGdlZW5cbiAgIGFjdGllLWJsYXV3IG1lZXIuICovXG4ucGNzLXF1b3RlLS1kZWFkIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgM3B4IDAgMCB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xufVxuLnBjcy1xdW90ZS0tZGVhZCAucGNzLXF1b3RlX19hdXRob3Ige1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xufVxuXG4ucGNzLWNvbXBvc2Uge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgcGFkZGluZzogMTBweCAwIGNhbGMoMTJweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG59XG4vKiBBY2h0IGVtb2ppJ3Mgb3ZlciBkZSB2b2xsZSBicmVlZHRlIHZlcmRlZWxkIChwYXNzZW4gb3AgZWxrIHNjaGVybSksIGkucC52LlxuICAgbGlua3MgZ2VrbG9udGVyZCBtZXQgZWVuIGhvcml6b250YWxlIHNjcm9sbC4gYGhpZGRlbmAgdmVyYmVyZ3QgZGUgcmlqIHpvZHJhXG4gICBlciBlZW4gc3RpY2tlciBrbGFhcnN0YWF0IOKAlCBleHBsaWNpZXQsIHdhbnQgZGlzcGxheTpmbGV4IHdpbnQgYW5kZXJzIHZhbiBoZXRcbiAgIGJyb3dzZXItc3RhbmRhYXJkZ2VkcmFnIHZhbiBgaGlkZGVuYC4gKi9cbi5wY3MtZW1vamktcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbn1cbi5wY3MtZW1vamktcm93W2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ucGNzLWVtb2ppLXJvdzo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLnBjcy1lbW9qaS1idG4ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucGNzLWVtb2ppLWJ0bjpob3Zlcixcbi5wY3MtZW1vamktYnRuOmZvY3VzLXZpc2libGUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLWhvdmVyLCAjZjBmMWYyKTtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuLnBjcy1lbW9qaS1idG46YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1ob3ZlciwgI2YwZjFmMik7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xufVxuLyogTmVnZW5kZSBrbm9wIChrYWFydCAxNywgaGVyc3RhcnQgMDEuMDkuMjAyNik6IG9wZW50IGRlIHZvbGxlZGlnZVxuICAgZW1vamkta2llemVyLiBaZWxmZGUgcm9uZGUgMzZweC12b3JtIGFscyBkZSBhY2h0IGVtb2ppIGVybmFhc3QgKGRpZVxuICAgZXJ2ZW4gdmFuIC5wY3MtZW1vamktYnRuIGhpZXJib3Zlbik7IGFsbGVlbiBkZSBrbGV1ciB2YW4gaGV0IGljb29uIHplbGZcbiAgIHN0YWF0IGhpZXIsIHplbGZkZSBtdXRlZC10b2tlbiBhbHMgaGV0IGJlc3RhYW5kZSBkcmllLXB1bnRqZXMtbWVudVxuICAgKC5wY3MtY29tbWVudF9fbWVudS1idG4pIHpvZGF0IGhldCBcImV2ZW4gendhYXJcIiBvb2d0IGFscyBlZW4gZW1vamktZ2x5cGguICovXG4ucGNzLWVtb2ppLW1vcmUge1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xufVxuXG4vKiBbZWlnZW4gYXZhdGFyL3BsdXMta25vcF0gW3ZlbGRdIFt2ZXJ6ZW5ka25vcF0uIGBmbGV4LWVuZGAgaG91ZHQgYXZhdGFyIGVuXG4gICBrbm9wIG9wIGRlIG9uZGVyc3RlIHJlZ2VsIGFscyBoZXQgdmVsZCB1aXRncm9laXQgdG90IHZpZXIgcmVnZWxzLiAqL1xuLnBjcy1mb3JtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBnYXA6IDhweDtcbn1cbi8qIERlIGxpbmtlcnBsZWsgaG91ZHQgVFdFRSBkaW5nZW4gdmFzdCBkaWUgZWxrYWFyIGFmd2lzc2VsZW46IGVpZ2VuIGF2YXRhclxuICAgKGxlZWcgdmVsZCkgZW4gZGUgKy1rbm9wICh6b2RyYSBqZSB0eXB0KS4gQmVpZGUgYWx0aWpkIGluIGRlIERPTSDigJQgd2lzc2VsZW5cbiAgIGdlYmV1cnQgbWV0IGVlbiBrbGFzc2UsIG5pZXQgZG9vciBlbGVtZW50ZW4gdGUgdmVyd2lzc2VsZW4gKGRhdCB6b3UgaGV0IHZlbGRcbiAgIGJpaiBkZSBlZXJzdGUgYWFuc2xhZyBoZXJib3V3ZW4gZW4gZGUgY3Vyc29yIGt3aWp0cmFrZW4pLiBWYXN0ZSBicmVlZHRlIHZhblxuICAgNDRweCB6b2RhdCBoZXQgdmVsZCBuaWV0IHZlcnNwcmluZ3Qgb3AgaGV0IG1vbWVudCB2YW4gZGUgd2lzc2VsLiAqL1xuLnBjcy1sZWZ0IHtcbiAgICBmbGV4OiAwIDAgNDRweDtcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5wY3MtbGVmdCA+IHFkbmFwcm8tYXZhdGFyLFxuLnBjcy1sZWZ0ID4gLnBjcy1wbHVzLWJ0biB7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG4vKiBLcnVpc3ZlcnZhZ2luZyBtZXQgZWVuIGtsZWluIHBvcGplLCBnZWVuIGhhcmRlIG9tc2xhZzogYmVpZGUga25vcHBlbiBsaWdnZW5cbiAgIG9wIGVsa2FhciBpbiBkZXplbGZkZSA0NHB4LCBvcGFjaXR5ICsgc2NoYWFsIGFscyBlbmlnZSB2ZXJzY2hpbCAoYGRpc3BsYXk6XG4gICBub25lYCBpcyBuaWV0IGFuaW1lZXJiYWFyKS4gYHZpc2liaWxpdHlgIGdhYXQgbWVlIHpvZGF0IGRlIHdlZ2dldmFhZ2RlIGtub3BcbiAgIGdlZW4gdGlra2VuIG1lZXIgb3B2YW5ndCwgZW4gd2lzc2VsdCBwYXMgYWFuIGhldCBlaW5kIHZhbiBkZSBvdmVyZ2FuZy4gKi9cbi5wY3MtbGVmdCA+IHFkbmFwcm8tYXZhdGFyLFxuLnBjcy1sZWZ0ID4gLnBjcy1wbHVzLWJ0biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTYwbXMgZWFzZSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC45LCAwLjMsIDEuNSksXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMTYwbXM7XG59XG4ucGNzLWxlZnQgPiAucGNzLXBsdXMtYnRuIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG59XG4ucGNzLWZvcm0tLXR5cHQgLnBjcy1sZWZ0ID4gcWRuYXByby1hdmF0YXIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbn1cbi5wY3MtZm9ybS0tdHlwdCAucGNzLWxlZnQgPiAucGNzLXBsdXMtYnRuIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcywgMHMsIDBzO1xufVxuLyogRGUgaWNvb250amVzIMOtbiBoZXQgdmVsZCB2ZXJ2YWdlbiwgd2FudCBkw6HDoXIgYm90c3RlbiB6ZSBtZXQgZGUgdGVrc3QuXG4gICBWZXJiZXJnZW4gZW4gbmlldCB3ZWdoYWxlbjogZGUga25vcHBlbiB3ZWdoYWxlbiB6b3UgcWRuYXByby1pbnB1dCBsYXRlblxuICAgaGVydGVrZW5lbiBlbiBkZSBmb2N1cyBtaWRkZW4gaW4gZWVuIHdvb3JkIHdlZ25lbWVuLiAqL1xuLnBjcy1maWVsZCAuaW5wdXQtYWN0aW9uLWJ0bixcbi5wY3MtZmllbGQgLmlucHV0LWFjdGlvbi1idG4tMiB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNDBtcyBlYXNlLCB0cmFuc2Zvcm0gMTYwbXMgZWFzZSwgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMTQwbXM7XG59XG4ucGNzLWZvcm0tLXR5cHQgLnBjcy1maWVsZCAuaW5wdXQtYWN0aW9uLWJ0bixcbi5wY3MtZm9ybS0tdHlwdCAucGNzLWZpZWxkIC5pbnB1dC1hY3Rpb24tYnRuLTIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC8qIEFsbGVlbiBzY2hhbGVuOiBkZSB2ZXJ0aWNhbGUgY2VudHJlcmluZyB6aXQgb3AgLmlucHV0LXRyYWlsaW5nIChkZSBkb29zXG4gICAgICAgZXJvbWhlZW4pLCBuaWV0IG9wIGRlemUga25vcC4gKi9cbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4vKiBXaWUgbGlldmVyIGdlZW4gYmV3ZWdpbmcgemlldCwga3Jpamd0IGdlZW4gYmV3ZWdpbmcuICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5wY3MtbGVmdCA+IHFkbmFwcm8tYXZhdGFyLFxuICAgIC5wY3MtbGVmdCA+IC5wY3MtcGx1cy1idG4sXG4gICAgLnBjcy1maWVsZCAuaW5wdXQtYWN0aW9uLWJ0bixcbiAgICAucGNzLWZpZWxkIC5pbnB1dC1hY3Rpb24tYnRuLTIsXG4gICAgLnBjcy1zZW5kIHtcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHM7XG4gICAgfVxufVxuLnBjcy1maWVsZCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xufVxuLnBjcy1mb3JtIHFkbmFwcm8taW5wdXQge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIERlIHZlcnN0dXVya25vcCBncm9laXQgZXJpbiB6b2RyYSBlciB0ZWtzdCBvZiBlZW4gc3RpY2tlciBpcy4gQmxpamZ0IGFsdGlqZFxuICAgaW4gZGUgRE9NIHN0YWFuIOKAlCB3ZWdoYWxlbiB6b3UgZGUgYW5pbWF0aWUgb25tb2dlbGlqayBtYWtlbiDigJQgZW4ga3JpbXB0IG5hYXJcbiAgIGJyZWVkdGUgMCBhbHMgZXIgbmlldHMgdGUgdmVyc3R1cmVuIHZhbHQuIGBvdmVyZmxvdzogaGlkZGVuYCB6b3JndCBkYXQgaGV0XG4gICBpY29vbiBtZWVrcmltcHQgaS5wLnYuIHVpdCBkZSBrbm9wIHRlIHN0ZWtlbi5cbiAgIOKaoO+4jyBEUklFIGtsYXNzZW4gaW4gZGUgc2VsZWN0b3IsIGVuIGRhdCBpcyBub2RpZzogZGUgYnJlZWR0ZSBoaWVyb25kZXIgdmVjaHRcbiAgIG1ldCBgLnFkbmFwcm8taWNvbi1idG4uaWNvbi1idG4tc2l6ZS10b3VjaGAgdmFuIGhldCBjb21wb25lbnQgKHR3ZWVcbiAgIGtsYXNzZW4sIDQ0cHggdmFzdCkuIE1ldCBgLnBjcy1zZW5kYCBhbGxlZW4gdmVybGllc3QgZGllIHN0cmlqZCBlbiBibGlqZnQgZGVcbiAgIGtub3AgYWx0aWpkIDQ0cHggYnJlZWQg4oCUIGRhbiBnZWJldXJ0IGFsbGVlbiBlZW4gdmVydmFnaW5nIGVuIGdlZW4gZ3JvZWkuICovXG4ucGNzLWZvcm0gLnBjcy1zZW5kLnFkbmFwcm8taWNvbi1idG4ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC4zKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIC8qIEJyZWVkdGUgZ2FhdCBzbmVsIChsYXlvdXQ6IGhvZSBrb3J0ZXIsIGhvZSBtaW5kZXIgaGV0IHZlbGQgemljaHRiYWFyXG4gICAgICAgbWVlYmV3ZWVndCksIHNjaGFhbCBsYW5nemFtZXIgbWV0IGVlbiBkb29yc2NoaWV0ZXIg4oCUIGxlZXN0IHpvIGFscyBlZW5cbiAgICAgICBwb3BqZSBpLnAudi4gZWVuIGtub3AgZGllIG9wemlqIHNjaHVpZnQuIFplbGZkZSBjdXJ2ZS90aWpkIGFscyBkZSB3aXNzZWxcbiAgICAgICBsaW5rcywgem9kYXQgYmVpZGUgYmV3ZWdpbmdlbiBiaWogZWxrYWFyIGhvcmVuLiAqL1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDE0MG1zIGN1YmljLWJlemllcigwLjIsIDAuOSwgMC4zLCAxLjIpLFxuICAgICAgICAgICAgICAgIG9wYWNpdHkgMTQwbXMgZWFzZSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMjIwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC45LCAwLjMsIDEuNik7XG59XG4ucGNzLWZvcm0gLnBjcy1zZW5kLnFkbmFwcm8taWNvbi1idG4ucGNzLXNlbmQtLW9uIHtcbiAgICB3aWR0aDogNDRweDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi8qIEhldCBCRVdFUkstc3Ryb29ramU6IHBvdGxvb2QsIHR3ZWUgcmVnZWxzIHRla3N0LCBlZW4ga3J1aXNqZSBvbSB0ZSBzdG9wcGVuLlxuICAgVm9sbGUgYnJlZWR0ZSBiaW5uZW4gaGV0IHBhbmVlbCAoZ2VlbiBzaGVldC16aWpwYWRkaW5nIG9tIHRlcnVnIHRlIHJla2VuZW4sXG4gICBkdXMgZ2VlbiAtLWJzLXBhZC14LWNvbnN0cnVjdGllIHpvYWxzIGluIGRlIFBXQS1icm9uKS4gKi9cbi5wY3MtZWRpdHN0cmlwIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTBweCA0cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtZ3JleS0xMDAsICNlN2U5ZWMpO1xufVxuLnBjcy1lZGl0c3RyaXBbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5wY3MtZWRpdHN0cmlwX19pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG59XG4vKiBaZWxmZGUgbWFhdCBhbHMgaGV0IHBvdGxvb2QgZXJuYWFzdCB2aWEgLS1xbC1zaXplLCBhbmRlcnMgd2ludCBkZVxuICAgNDhweC1zdGFuZGFhcmQgdmFuIHFkbmFwcm8tbG90dGllLiAqL1xuLnBjcy1lZGl0c3RyaXBfX3N0aWNrZXIucWRuYXByby1sb3R0aWUge1xuICAgIC0tcWwtc2l6ZTogMjhweDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cbi5wY3MtZWRpdHN0cmlwX190ZXh0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLnBjcy1lZGl0c3RyaXBfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcbn1cbi5wY3MtZWRpdHN0cmlwX19wb3N0ZXIge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIHZlcnRpY2FsLWFsaWduOiAtNXB4O1xuICAgIG1hcmdpbi1yaWdodDogNnB4O1xufVxuLnBjcy1lZGl0c3RyaXBfX2JvZHkge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgICAvKiBFw6luIHJlZ2VsOiBoZXQgc3Ryb29ramUgbWFnIG5vb2l0IGhvZ2VyIHdvcmRlbiBkYW4gZGUgc3RpY2tlci1zdHJpcC4gKi9cbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4ucGNzLWVkaXRzdHJpcF9fY2xlYXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuLyogWmVsZmRlIHN0cm9vaywgYW50d29vcmRlbi1zdGFuZDogYWNjZW50IHZlcmxlZ2QgbmFhciBkZSBsaW5rZXIgaW5zZXQtc3RyZWVwLiAqL1xuLnBjcy1lZGl0c3RyaXAtLXJlcGx5IHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAzcHggMCAwIHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMyk7XG59XG4ucGNzLWVkaXRzdHJpcC0tcmVwbHkgLnBjcy1lZGl0c3RyaXBfX3RpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tYy1hY3Rpb24tNTAwLCAjNDY1MmYzKTtcbn1cblxuLy8gLS0tIEIuIFBhZ2luYWxhYWc6IHdlcmtiYWxrLCBzcGxpdC1sYXlvdXQsIHN0YXBwZW5yaWosIGRldGFpbCAoLnBncy0qKSAtLS0tXG4ucGdzLXRvb2xiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxNHB4O1xuICAgIHBhZGRpbmc6IDE0cHggMjBweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG59XG4ucGdzLW5vdGlmeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuLnBncy1ub3RpZnktbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmU3MjgwKTtcbn1cblxuLnBncy1zcGxpdCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM0MHB4IDFmcjtcbiAgICBtaW4taGVpZ2h0OiA1NjBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA4NDBweCkge1xuICAgIC5wZ3Mtc3BsaXQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgIH1cbn1cblxuLyog4pqg77iPIDE2LjA5LjIwMjYg4oCUIGBoaWRkZW5gIG9wIGRlemUgbGlqc3QgZGVlZCBOSUVUUy4gRGUgcmVnZWwgaGllcm9uZGVyIHpldFxuICAgYGRpc3BsYXk6IGZsZXhgLCBlbiBhdXRldXItQ1NTIG1ldCBub3JtYWxlIHByaW9yaXRlaXQgd2ludCBhbHRpamQgdmFuIGRlXG4gICBicm93c2Vyc3RhbmRhYXJkIGBbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmUgfWAsIG9uZ2VhY2h0IHNwZWNpZmljaXRlaXQuIERlXG4gICBnZXNwcmVrLW1vZGFsIG9wIGRlIGNhbXBhZ25lcGFnaW5hIHpldCBkYXQgYXR0cmlidXV0IHdlbCAoZGFhciBnYWF0IGhldCBvdmVyXG4gICBFRU4gc3RhcCwgZHVzIGRlIHN0YXBwZW5saWpzdCBob29ydCB3ZWcgdGUgYmxpanZlbiksIG1hYXIgZGUgbGlqc3QgYmxlZWZcbiAgIGdld29vbiBydWltdGUgaW5uZW1lbiBuYWFzdCBoZXQgZ2VzcHJlay4gWmVsZmRlIHZhbCBhbHMgZWxkZXJzIGluIGRpdFxuICAgcHJvZHVjdDogZWxrZSByaWogZGllIHppY2h6ZWxmIGVlbiBkaXNwbGF5IGdlZWZ0LCBtb2V0IHppam4gZWlnZW5cbiAgIFtoaWRkZW5dLXJlZ2VsIG1lZW5lbWVuLiBHZW1ldGVuIG1ldCBnZXRDb21wdXRlZFN0eWxlOiBkaXNwbGF5IHdhcyBcImZsZXhcIixcbiAgIG5pZXQgXCJub25lXCIuICovXG4ucGdzLXN0ZXBsaXN0W2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wZ3Mtc3RlcGxpc3Qge1xuICAgIC8qIG1pbi1oZWlnaHQ6IDAgbGFhdCBkZSBrb2xvbSBkZSByaWpob29ndGUgdmFuIC5wZ3Mtc3BsaXQgdm9sZ2VuIGkucC52LiBvcFxuICAgICAgIHppam4gZWlnZW4gaW5ob3VkIHRlIGdyb2VpZW4g4oCUIG5vZGlnIHpvZGF0IGRlIGxpanN0IHplbGYga2FuIHNjcm9sbGVuXG4gICAgICAgaS5wLnYuIGhldCBoZWxlIHBhbmVlbCBvcCB0ZSByZWtrZW4gKGFhbm5hbWU6IGVlbiBvbWxpZ2dlbmQgZWxlbWVudFxuICAgICAgIGdlZWZ0IGhldCBwYW5lZWwgZWVuIGJlZ3JlbnNkZSBob29ndGU7IG5pZXQgaW4gZGUgYnJvd3NlciBnZXZlcmlmaWVlcmQpLiAqL1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgbWF4LWhlaWdodDogaW5oZXJpdDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQsICNlMWUzZTYpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSwgI2YzZjVmZik7XG59XG5AbWVkaWEgKG1heC13aWR0aDogODQwcHgpIHtcbiAgICAucGdzLXN0ZXBsaXN0IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gICAgfVxufVxuXG4ucGdzLXN0ZXByb3cge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzNnB4IDFmciBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5wZ3Mtc3RlcHJvdzpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyLWNhcmQsICNlMWUzZTYpO1xufVxuLnBncy1zdGVwcm93LmlzLXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1wdXJwbGUtMjAwLCAjYTVhY2ZmKTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggdmFyKC0tYy1wdXJwbGUtMjAwLTMwLCByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuMzApKTtcbn1cbi5wZ3Mtc3RlcHJvdy5pcy1xdWlldCAucGdzLXN0ZXAtdGl0bGUge1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xufVxuLyogQm9vdHN0cmFwIHpldCBgYnV0dG9uOmZvY3VzIHsgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIH1gXG4gICBvcCBFTEtFIGtub3AgKHYxLWhlYWRlciBsYWFkdCBib290c3RyYXAubWluLmNzcykg4oCUIGVlbiBtdWlza2xpayBnZWVmdCB3ZWxcbiAgIDpmb2N1cyBtYWFyIGdlZW4gOmZvY3VzLXZpc2libGUuIFVpdHpldHRlbiwgZWlnZW4gcmluZyBvcCA6Zm9jdXMtdmlzaWJsZSxcbiAgIHplbGZkZSBwYXRyb29uIGFscyBlbGRlcnMgaW4gZGl0IGJlc3RhbmQgKG8uYS4gLnB1bHNlLXR5cGUtY2FyZCkuICovXG4ucGdzLXN0ZXByb3c6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4ucGdzLXN0ZXByb3c6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtcmluZywgIzQwNDk5YSk7XG59XG4ucGdzLXN0ZXByb3cuaXMtc2VsZWN0ZWQ6Zm9jdXMtdmlzaWJsZSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLXJpbmcsICM0MDQ5OWEpLCAwIDJweCA4cHggdmFyKC0tYy1wdXJwbGUtMjAwLTMwLCByZ2JhKDE2NSwgMTcyLCAyNTUsIDAuMzApKTtcbn1cblxuLnBncy1zdGVwLWljbyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXB1cnBsZS1iZywgI2ViZTlmYik7XG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5wZ3Mtc3RlcC10aXRsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxMy41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5wZ3Mtc3RlcC1tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG5cbi5wZ3Mtc3RlcC1zaWRlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGdhcDogNHB4O1xufVxuLnBncy1iYWRnZS1uZXcge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzQwNDk5YSk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24sICNmZmZmZmYpO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5wZ3Mtc3RlcC10aW1lIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnBncy1kZXRhaWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG59XG5cbi5wZ3MtdGhyZWFkLWhlYWQge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHBhZGRpbmc6IDE4cHggMjRweCAxNHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbn1cbi5wZ3MtdGhyZWFkLXRpdGxlIHtcbiAgICBtYXJnaW46IDAgMCA4cHg7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMWExZjRkKTtcbn1cbi5wZ3MtbW9vZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbn1cbi5wZ3MtY2hpcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzBiMGIwZCk7XG4gICAgZm9udC1zaXplOiAxMi41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xufVxuLnBncy1jaGlwLS10b3RhbCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1jaGlwLXB1cnBsZS1iZywgI2ViZTlmYik7XG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbn1cblxuLnBncy10aHJlYWQge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwYWRkaW5nOiAxOHB4IDI0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTRweDtcbn1cbi8qIC5wY3MtY29tcG9zZSBsZWVmdCBoaWVyIElOIGhldCBwYW5lZWwgaS5wLnYuIGluIGVlbiBzaGVldDogZ2VlblxuICAgLS1icy1wYWQteC16aWpwYWRkaW5nIG9tIHRlcnVnIHRlIHJla2VuZW4sIGR1cyBnZXdvb24gdm9sbGUgYnJlZWR0ZSBtZXRcbiAgIGVpZ2VuIHppanBhZGRpbmcgZW4gZWVuIHNjaGVpZGluZ3NsaWpuIGkucC52LiBkZSBrYWFydHJhbmQgdmFuIGVlbiBzaGVldC4gKi9cbi5wZ3MtZGV0YWlsIC5wY3MtY29tcG9zZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogMTBweCAyNHB4IDE0cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQsICNlMWUzZTYpO1xufVxuXG4vKiBEZSBcIm5pZXV3IHNpbmRzIGplIHZvcmlnZSBiZXpvZWtcIi1saWpuOiBsYWJlbCBtZXQgZWVuIHN0cmVlcCBhYW4gd2VlcnN6aWpkZW4sXG4gICBvcCBkZSBtZWVnZWxldmVyZGUgbGFzdF9zZWVuLWdyZW5zLiAqL1xuLnBncy1uZXctZGl2aWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW46IDRweCAwO1xufVxuLnBncy1uZXctZGl2aWRlcjo6YmVmb3JlLFxuLnBncy1uZXctZGl2aWRlcjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1wdXJwbGUtMjAwLCAjYTVhY2ZmKTtcbn1cbi5wZ3MtbmV3LWRpdmlkZXJfX2xhYmVsIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjNDA0OTlhKTtcbn1cblxuLyogU2tlbGV0b24vZm91dC9sZWVnOiB6ZWxmZGUgdm9ybXRhYWwgYWxzIGRlIC5wdWxzZS1tb2QtKi1zZWN0aWUgaGllcmJvdmVuXG4gICAoc2hpbW1lci1iYWxrZW4sIHJvZGUgZm91dGJhbm5lciwgZ2VkZW1wdGUgY2VudGVyZWQgdGVrc3QpIOKAlCBoaWVyIG1ldFxuICAgdG9rZW5zIGkucC52LiBkZSB2YXN0ZSBoZXgtd2FhcmRlbiBkaWUgZGFhciBzdGFhbiwgZW4gZGUgYmVzdGFhbmRlXG4gICBgcHVsc2Utc3RhdHMtc2hpbW1lcmAta2V5ZnJhbWUgaGVyZ2VicnVpa3QgKHZlcmRlcm9wIGluIGRpdCBiZXN0YW5kLCBrYWFydFxuICAgRjMtVzEpIGkucC52LiBlZW4gdHdlZWRlLCBpZGVudGlla2Uga2V5ZnJhbWUgdGUgZGVmaW5pw6tyZW4uICovXG4ucGdzLXNrZWxldG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTBweDtcbn1cbi5wZ3Mtc2tlbGV0b25baGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5wZ3Mtc2tlbCB7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpIDI1JSwgdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYykgMzclLCB2YXIoLS1jLWdyZXktNTAsICNmMGYxZjIpIDYzJSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiA0MDAlIDEwMCU7XG4gICAgYW5pbWF0aW9uOiBwdWxzZS1zdGF0cy1zaGltbWVyIDEuM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5wZ3Mtc2tlbCB7XG4gICAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB9XG59XG4ucGdzLWVycm9yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXNpZ25hbC1yZWQtc29mdCwgI2ZmZjBmMCk7XG4gICAgY29sb3I6IHZhcigtLWMtc2lnbmFsLXJlZC10ZXh0LCAjYzY1YTVhKTtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG4ucGdzLWVycm9yW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ucGdzLWVycm9yIHFkbmFwcm8taWNvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4ucGdzLWVtcHR5IHtcbiAgICBwYWRkaW5nOiA0MHB4IDE2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgLnBncy1ub3RpZnkge1xuICAgICAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxufVxuXG4ucHVsc2Utc3RhdHMtcGFuZWwgeyBncmlkLWNvbHVtbjogMSAvIC0xOyB9XG5cbi5wdWxzZS1zdGF0cy1jYXJkcyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE5MHB4LCAxZnIpKTtcbiAgICBnYXA6IDE0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cblxuLyogVGVhbS10ZWdlbHMgKEYzLVcxKS4gWmUgZGVsZW4gYmV3dXN0IGhldCByb29zdGVyIHZhbiBkZSB0ZWdlbHMgZXJib3ZlbjpcbiAgIGhldCB6aWpuIGRlemVsZmRlIHNvb3J0IGNpamZlcnMsIGFsbGVlbiBvcGdlc3BsaXRzdCBwZXIgdGVhbSwgZW4gdHdlZVxuICAgdmVyc2NoaWxsZW5kZSB0ZWdlbHJhc3RlcnMgb25kZXIgZWxrYWFyIGxlZXN0IGFscyB0d2VlIGxvc3NlIHBhbmVsZW4uXG4gICBEZSBzZWN0aWUgeml0IHR1c3NlbiBkZSB0b3RhbGVuIGVuIGRlIHRyZWNodGVyIGluLiAqL1xuLnB1bHNlLXN0YXRzLXRlYW1zIHsgbWFyZ2luLWJvdHRvbTogMjRweDsgfVxuLnB1bHNlLXN0YXRzLXRlYW1zW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2Utc3RhdHMtdGVhbXMgLnB1bHNlLXN0YXRzLWNhcmRzIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuLnB1bHNlLXN0YXRzLXRlYW1zIC5wdWxzZS1zdGF0cy1ub3RlIHsgcGFkZGluZzogMThweCA4cHg7IH1cblxuLnB1bHNlLXN0YXRzLXN1YmhlYWQge1xuICAgIG1hcmdpbjogMCAwIDJweDtcbiAgICBmb250LXNpemU6IDEzLjVweDtcbiAgICBsaW5lLWhlaWdodDogMTlweDtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICMzOTQyOTApO1xufVxuLnB1bHNlLXN0YXRzLXN1YnN1YiB7XG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG4gICAgbWF4LXdpZHRoOiA3MGNoO1xufVxuXG4vKiBWQVNURSBob29ndGU6IEhpZ2hjaGFydHMgbWVldCB6aWpuIGNvbnRhaW5lciwgZW4gaW4gZWVuIGNlbCB6b25kZXIgZWlnZW5cbiAgIGhvb2d0ZSBpcyBkYXQgMCDigJQgZGFuIHRla2VudCBoaWogbmlldHMgZW4gc3RhYXQgZXIgZWVuIGxlZWcgdmFrIHpvbmRlclxuICAgZm91dG1lbGRpbmcgKGRlIGxlcyB2YW4gZGUgQUktdmVyYnJ1aWtwYWdpbmEpLiAqL1xuLnB1bHNlLXN0YXRzLWNoYXJ0IHsgaGVpZ2h0OiAzMjBweDsgbWFyZ2luLWJvdHRvbTogMjZweDsgfVxuLnB1bHNlLXN0YXRzLWNoYXJ0W2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi5wdWxzZS1zdGF0cy1xIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZTVlNWVhKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE0cHggMTZweCAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4ucHVsc2Utc3RhdHMtcTpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuLnB1bHNlLXN0YXRzLXEtaGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgZ2FwOiAxMHB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuLnB1bHNlLXN0YXRzLXEtdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjMzk0MjkwKTtcbiAgICBmbGV4OiAxIDEgMjQwcHg7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuLnB1bHNlLXN0YXRzLXEtbWV0YSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuLnB1bHNlLXN0YXRzLXEtY29ycmVjdCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMxMDYwNGE7XG4gICAgYmFja2dyb3VuZDogI2VhZmFmMztcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBwYWRkaW5nOiAycHggMTBweDtcbn1cblxuLnB1bHNlLXN0YXRzLWJhcnMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDEwcHg7IH1cbi5wdWxzZS1zdGF0cy1iYXItbGFiZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICMxYzFlMmEpO1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbn1cbi5wdWxzZS1zdGF0cy1iYXItbmFtZSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5wdWxzZS1zdGF0cy1iYXItbGFiZWwgcWRuYXByby1pY29uIHsgZmxleC1zaHJpbms6IDA7IGNvbG9yOiAjMWQ5ZTc1OyB9XG4ucHVsc2Utc3RhdHMtYmFyLXZhbHVlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG4ucHVsc2Utc3RhdHMtYmFyLXRyYWNrIHtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogI2VlZjBmYjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnB1bHNlLXN0YXRzLWJhci1maWxsIHsgaGVpZ2h0OiAxMDAlOyBib3JkZXItcmFkaXVzOiA5OTlweDsgYmFja2dyb3VuZDogIzViNjNjNDsgfVxuLnB1bHNlLXN0YXRzLWJhci1yb3cuaXMtY29ycmVjdCAucHVsc2Utc3RhdHMtYmFyLWZpbGwgeyBiYWNrZ3JvdW5kOiAjMWQ5ZTc1OyB9XG5cbi8qIERlZWxuYW1lIHBlciBsb2NhdGllL2FmZGVsaW5nIG9wIGRlIHN0YXRpc3RpZWtlbnBhZ2luYSAoMTcuMDguMjAyNikg4oCUIGVlblxuICAgVEFCRUwgbWV0IHZpZXIga29sb21tZW46IG5hYW0gwrcgYmFsayDCtyBwZXJjZW50YWdlIMK3IGFhbnRhbC5cblxuICAgSGllcnZvb3Igc3RvbmQgaGllciBoZXQgYmFsa2VuLWlkaW9vbSBoaWVyYm92ZW46IGxhYmVsIG9wIMOpw6luIHJlZ2VsLCBiYWxrIG9wXG4gICB2b2xsZSBicmVlZHRlIGRhYXJvbmRlci4gTWV0IGRlcnRpZyBncm9lcGVuIHdlcmQgZGF0IGVlbiBzdHJlZXBqZXN0cnVpLCBlbiBvcFxuICAgZWVuIGJyZWVkIHNjaGVybSB3YXMgZGUgYmFsayB6byBsYW5nIGRhdCBqZSBoZW0gbWV0IGplIG9nZW4gbmlldCBpbiDDqcOpbiBrZWVyXG4gICBrb24gb3ZlcnppZW46IGRlIG5hYW0gc3RvbmQgbGlua3MsIGVuIGhldCBlbmlnZSBzdHVrIGRhdCBpZXRzIHplZ3QgKGhldFxuICAgdWl0ZWluZGUpIGFhbiBkZSBhbmRlcmUga2FudCB2YW4gaGV0IHNjaGVybS5cblxuICAg4pqg77iPIERlIGJhbGtrb2xvbSBzdGFhdCBvcCBgdndgIGVuIE5JRVQgb3AgZWVuIHBlcmNlbnRhZ2UgdmFuIGRlIHJpai4gRWVuXG4gICBpbmdlc3Byb25nZW4ga2luZGVycmlqIGlzIHNtYWxsZXIgZGFuIHppam4gbG9jYXRpZXJpajsgbWV0IGVlbiBwZXJjZW50YWdlXG4gICB6b3VkZW4gZGllIHR3ZWUgYmFsa2VuIGVlbiBhbmRlcmUgc2NoYWFsIGtyaWpnZW4sIGVuIGRhbiB2ZXJnZWxpamsgamUgdHdlZVxuICAgZGluZ2VuIGRpZSBuaWV0IHZlcmdlbGlqa2JhYXIgemlqbi4gTnUgaXMgZWxrZSBiYWxrIG92ZXJhbCBldmVuIGJyZWVkIGVuIGR1c1xuICAgb25kZXJsaW5nIHRlIGxlemVuLiAqL1xuLyog4pqg77iPIERlIE1BWElNQUxFIEJSRUVEVEUgaXMgZ2VlbiBvcHNtdWsuIFpvbmRlciBkaWUgZ3JlbnMgcmVrdCBkZSBuYWFta29sb21cbiAgIG1lZSBtZXQgaGV0IHNjaGVybSBlbiBzdGFhdCBkZSBiYWxrIGVlbiBoYWx2ZSBtZXRlciByZWNodHMgdmFuIGRlIG5hYW0gd2FhclxuICAgaGlqIGJpaiBob29ydDsgZGFuIGxlZXMgamUgZGUgcmVnZWwgaW4gdHdlZSBsb3NzZSBzdHVra2VuLiBBbGxlcyBiaWogZWxrYWFyXG4gICBob3VkZW4gaXMgcHJlY2llcyBoZXQgcHVudCB2YW4gZGV6ZSBvbXpldHRpbmcuICovXG4vKiBEZSBvbmRlcmthbnQgaG91ZHQgaGV0emVsZmRlIHJpdG1lIGFhbiBhbHMgZWVuIGdyYWZpZWtibG9rICgyNnB4KSwgYW5kZXJzXG4gICBwbGFrdCBkZSB2b2xnZW5kZSBrb3AgdGVnZW4gZGUgbGFhdHN0ZSByZWdlbC4gKi9cbi5wdWxzZS11bml0cyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IG1heC13aWR0aDogOTIwcHg7IG1hcmdpbi1ib3R0b206IDI2cHg7IH1cbi5wdWxzZS11bml0cy1ncm9lcCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLnB1bHNlLXVuaXRzLXJvdyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIGNsYW1wKDE0MHB4LCAxOHZ3LCAzNDBweCkgNTJweCA4NHB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAwIDE2cHg7XG4gICAgcGFkZGluZzogNnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzFjMWUyYSk7XG59XG5cbi8qIERlIGtvbG9ta29wcGVuIHN0YWFuIGVyIMOpw6luIGtlZXIsIGluIHBsYWF0cyB2YW4gXCJnZXN0YXJ0XCIgZW4gXCJkZWVsbmVtZXJzXCIgb3BcbiAgIGVsa2UgcmVnZWwgdGUgaGVyaGFsZW4uICovXG4ucHVsc2UtdW5pdHMtaGVhZCB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDZweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlY2ViZjQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xufVxuXG4ucHVsc2UtdW5pdHMtbmFtZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBtaW4td2lkdGg6IDA7XG59XG4ucHVsc2UtdW5pdHMtbmFhbS10ZWtzdCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnB1bHNlLXVuaXRzLWNvdW50IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG59XG4ucHVsc2UtdW5pdHMtY2hldnJvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgY29sb3I6ICM2YjY4ODQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7XG59XG5cbi5wdWxzZS11bml0cy1yb3ctLWtsaWsgeyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtd2VpZ2h0OiA2MDA7IH1cbi5wdWxzZS11bml0cy1yb3ctLWtsaWs6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZjdmN2ZjOyB9XG4ucHVsc2UtdW5pdHMtcm93LS1rbGlrLmlzLW9wZW4gLnB1bHNlLXVuaXRzLWNoZXZyb24geyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH1cblxuLnB1bHNlLXVuaXRzLXRyYWNrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjZWVmMGZiO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucHVsc2UtdW5pdHMtZmlsbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6ICM1YjYzYzQ7XG59XG4vKiBEZSBsZWdlIGNlbCBpbiBkZSBrb3ByaWogaXMgYWxsZWVuIGVlbiB1aXRsaWpuZXIsIGdlZW4gbGVnZSBiYWxrLiAqL1xuLnB1bHNlLXVuaXRzLWhlYWQgLnB1bHNlLXVuaXRzLXRyYWNrIHsgYmFja2dyb3VuZDogbm9uZTsgfVxuXG4ucHVsc2UtdW5pdHMtcGN0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuLnB1bHNlLXVuaXRzLWhlYWQgLnB1bHNlLXVuaXRzLXBjdCB7IGZvbnQtc2l6ZTogMTFweDsgfVxuLnB1bHNlLXVuaXRzLXBlb3BsZSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG59XG5cbi8qIEdlZW4gYmFsayBlbiBnZWVuIHBlcmNlbnRhZ2U6IGhldCBzbG90amUgbmVlbXQgYWxsZWJlaSBkaWUga29sb21tZW4gaW4sIHpvZGF0XG4gICBoZXQgYWFudGFsIHJlY2h0cyBvcCB6aWpuIHBsZWsgYmxpamZ0IHN0YWFuLiBSdXN0aWcgYmxhdXcsIHdhbnQgZGUgay1wb29ydCBpc1xuICAgZWVuIGJld3VzdGUga2V1emUgZW4gZ2VlbiBmb3V0bWVsZGluZy4gKi9cbi5wdWxzZS11bml0cy10b29mZXcge1xuICAgIGdyaWQtY29sdW1uOiAyIC8gNDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzZiNjg4NDtcbn1cbi5wdWxzZS11bml0cy10b29mZXcgcWRuYXByby1pY29uIHsgZmxleC1zaHJpbms6IDA7IH1cblxuLnB1bHNlLXVuaXRzLWtpZHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXJnaW46IDJweCAwIDZweCAyMnB4O1xuICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICNlNWUzZjA7XG59XG4vKiDimqDvuI8gWm9uZGVyIGRlemUgcmVnZWwgd2ludCBgZGlzcGxheTogZmxleGAgaGllcmJvdmVuIHZhbiBoZXQgYGhpZGRlbmAtYXR0cmlidXV0XG4gICBlbiBzdGFhdCBlbGtlIGxvY2F0aWUgb3Blbi4gKi9cbi5wdWxzZS11bml0cy1raWRzW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2UtdW5pdHMtcm93LS1raW5kIHsgZm9udC1zaXplOiAxMi41cHg7IH1cblxuLyogU21hbCBzY2hlcm06IGRlIGJhbGsgZ2FhdCBlcnVpdCwgZGUgY2lqZmVycyBibGlqdmVuLiBFZW4gYmFsayB2YW4gMTQwcHggbmFhc3RcbiAgIGVlbiBhZmdla2FwdGUgbmFhbSB6ZWd0IG1pbmRlciBkYW4gaGV0IGdldGFsIHplbGYuICovXG5AbWVkaWEgKG1heC13aWR0aDogNzYwcHgpIHtcbiAgICAucHVsc2UtdW5pdHMtcm93IHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSA0OHB4IDc2cHg7XG4gICAgICAgIGdhcDogMCAxMHB4O1xuICAgIH1cbiAgICAucHVsc2UtdW5pdHMtdHJhY2sgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgLnB1bHNlLXVuaXRzLXRvb2ZldyB7IGdyaWQtY29sdW1uOiAyIC8gMzsgfVxufVxuXG4vKiBEZSBrLXBvb3J0IGlzIGdlZW4gZm91dG1lbGRpbmcgbWFhciBlZW4gYmV3dXN0ZSBrZXV6ZSDigJQgZHVzIHJ1c3RpZyBibGF1dyxcbiAgIG5pZXQgYW1iZXIgb2Ygcm9vZC4gKi9cbi5wdWxzZS1zdGF0cy10b29mZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2VlZjBmYjtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogIzQwNDk5YTtcbn1cbi5wdWxzZS1zdGF0cy10b29mZXcgcWRuYXByby1pY29uIHsgZmxleC1zaHJpbms6IDA7IH1cblxuLnB1bHNlLXN0YXRzLW5vdGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAyNnB4IDhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbn1cbi5wdWxzZS1zdGF0cy1ub3RlW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIERlIFwiY2lqZmVycyBiZXZyb3JlblwiLXJlZ2VsIChGMi1XNSkuIEJld3VzdCBkZXplbGZkZSBpbmdldG9nZW4gdG9vbiBhbHMgZGVcbiAgIFwidGUgd2VpbmlnIGFudHdvb3JkZW5cIi1tZWxkaW5nOiBoZXQgaXMgZWVuIG1lZGVkZWxpbmcgb3ZlciB3YXQgamUgemlldCwgZ2VlblxuICAgd2FhcnNjaHV3aW5nIGRhdCBlciBpZXRzIG1pcyBpcy4gKi9cbi5wdWxzZS1zdGF0cy1mcm96ZW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICAgIHBhZGRpbmc6IDlweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2Y2ZjVmYjtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBjb2xvcjogIzZiNjg4NDtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbn1cbi5wdWxzZS1zdGF0cy1mcm96ZW5baGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1zdGF0cy1mcm96ZW4gcWRuYXByby1pY29uIHsgZmxleC1zaHJpbms6IDA7IH1cblxuLyogTGFhZHN0YWF0OiBkZXplbGZkZSB2YWt2ZXJkZWxpbmcgYWxzIGhldCBlY2h0ZSBwYW5lZWwsIHpvZGF0IGVyIG5pZXRzXG4gICB2ZXJzcHJpbmd0IHpvZHJhIGRlIGNpamZlcnMgYmlubmVuIHppam4uICovXG4ucHVsc2Utc3RhdHMtc2tlbGV0b24ge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxOTBweCwgMWZyKSk7XG4gICAgZ2FwOiAxNHB4O1xufVxuLnB1bHNlLXN0YXRzLXNrZWxldG9uW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2Utc3RhdHMtc2tlbCB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmMWYyZjggMjUlLCAjZTdlOWY0IDM3JSwgI2YxZjJmOCA2MyUpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogNDAwJSAxMDAlO1xuICAgIGFuaW1hdGlvbjogcHVsc2Utc3RhdHMtc2hpbW1lciAxLjNzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuLnB1bHNlLXN0YXRzLXNrZWwtY2FyZCAgeyBoZWlnaHQ6IDgwcHg7IH1cbi5wdWxzZS1zdGF0cy1za2VsLWNoYXJ0IHsgaGVpZ2h0OiAyMDBweDsgZ3JpZC1jb2x1bW46IDEgLyAtMTsgfVxuQGtleWZyYW1lcyBwdWxzZS1zdGF0cy1zaGltbWVyIHtcbiAgICAwJSAgIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAwOyB9XG4gICAgMTAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucHVsc2Utc3RhdHMtc2tlbCB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuXG4ucHVsc2Utc3RhdHMtZXJyb3Ige1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZGVlZWI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2YwYzRiYztcbiAgICBjb2xvcjogIzhlMjcxODtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG4ucHVsc2Utc3RhdHMtZXJyb3JbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1zdGF0cy1lcnJvciBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgfVxuLnB1bHNlLXN0YXRzLWVycm9yIHNwYW4geyBmbGV4OiAxIDEgMjIwcHg7IH1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAyLiBPVkVSWklDSFRTUEFHSU5BICh2MS9wdWxzZS9pbmRleC5odG1sKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKiBQdWxzZSDigJQgcGFnaW5hLWdlc2Nvb3B0IChwdWxzZS0qKS4gT3Zlcmdlbm9tZW4gdWl0IHByb2plY3RzLXYyLmh0bWwgem9kYXQgaGV0XG4gICBvdmVyemljaHQgMS1vcC0xIGhldHplbGZkZSBsZWVzdDsgYWxsZWVuIGRlIGtsYXNzZW5hbWVuIHppam4gaGVybm9lbWQuXG4gICBMZXQgb3A6IGdlZW4gVHdpZy1jb21tZW50YWFyIGluIGRpdCBibG9rIChkYXQgYnJlZWt0IGRlIGhlbGUgcGFnaW5hKS4gKi9cblxuLyogVm9sbGUgYnJlZWR0ZSAod2Vya2xpanN0LWlkaW9vbSB6b2FscyBXZXJrdm9vcnJhYWQvRG9jdW1lbnRlbikuICovXG4vKiBPbmRlcnJ1aW10ZSA0MHB4IOKGkiA5NnB4ICgxOS4wOC4yMDI2KTogZGV6ZSBwYWdpbmEncyBkcmFnZW4gc2luZHMgdmFuZGFhZyBkZVxuICAgWldFVkVOREUgYWN0aWViYWxrIChBY3Rpb25CYXI6OnB1bHNlT3ZlcnZpZXcpLiBEaWUgaXMgYHBvc2l0aW9uOiBmaXhlZGAsIG5lZW10XG4gICBkdXMgZ2VlbiBydWltdGUgaW4gZGUgcGFnaW5hIGluIGVuIHpvdSB6aWNoIG92ZXIgZGUgbGFhdHN0ZSByaWogdGVnZWxzIGhlZW5cbiAgIGxlZ2dlbiB6b25kZXIgZGF0IGplIGVyb25kZXIga3VudCBzY3JvbGxlbi5cblxuICAgU1lOQy1QVU5ULCBtZXQgb3B6ZXQgZWVuIHZhc3QgZ2V0YWwg4oCUIGV4YWN0IGRlemVsZmRlIGFmd2VnaW5nIGFscyBiaWpcbiAgIC5wdWxzZS1kZXRhaWwtYm9keSBoaWVyb25kZXI6IF9hY3Rpb24tYmFyLnNjc3MgemV0IGBoZWlnaHQ6IDU2cHhgIGhhcmQgKGVyIGlzXG4gICBnZWVuIC0tYWN0aW9uLWJhci1oZWlnaHQpIGVuIC0tYWN0aW9uLWJhci1vZmZzZXQgc3RhYXQgb3AgLnFkbmFwcm8tYWN0aW9uLWJhclxuICAgemVsZiwgZHVzIGRpZSBpcyBoaWVyIG5pZXQgZXJmYmFhciBlbiBlZW4gdmFyKCkgem91IHN0aWwgYWx0aWpkIG9wIGRlIGZhbGxiYWNrXG4gICBsYW5kZW4uIDk2cHggPSA1NiAoaG9vZ3RlKSArIDE2IChvZmZzZXQpICsgMjQgbHVjaHQuIFdvcmR0IGRlIGJhbGsgaG9nZXIgb2ZcbiAgIGtvbXQgaGlqIHZlcmRlciB2YW4gZGUgcmFuZCwgZGFuIG1vZXQgZGl0IG1lZSDigJQgb3AgQkVJREUgcGxla2tlbi4gKi9cbi5wdWxzZS13cmFwIHsgbWF4LXdpZHRoOiBub25lOyBtYXJnaW46IDI0cHggMjhweCA5NnB4OyB9XG4ucHVsc2UtaGVhZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBnYXA6IDEycHg7IGZsZXgtd3JhcDogd3JhcDsgbWFyZ2luLWJvdHRvbTogMTRweDsgfVxuLnB1bHNlLWhlYWQtdGl0bGVzIHsgZmxleDogMTsgbWluLXdpZHRoOiAyMDBweDsgfVxuLnB1bHNlLWhlYWQgaDEgeyBmb250LXNpemU6IDIycHg7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzM5NDI5MCk7IG1hcmdpbjogMCAwIDJweDsgfVxuLnB1bHNlLWhlYWQgLnB1bHNlLXN1YiB7IGNvbG9yOiAjNmI2ODg0OyBmb250LXNpemU6IDEzcHg7IG1hcmdpbjogMDsgfVxuXG4vKiBXZXJrYmFsayDigJQgbGlua3MgZGUga25vcHBlbiBkaWUgaWV0cyBNQUtFTiAoY2FtcGFnbmUgLyB1aXQgc2phYmxvb24gLyBtZXRcbiAgIE5vdmEpLCByZWNodHMgem9la2VuICsgc29ydGVyZW4gKHB2Mi1pZGlvb20pLiBBbmFseXRpY3MgZW4gR2VhcmNoaXZlZXJkXG4gICBzdG9uZGVuIGhpZXIgb29rIGVuIHppdHRlbiBzaW5kcyAxOS4wOC4yMDI2IGluIGRlIG9uZGVyYmFsazogbmF2aWdlcmVuIGhvb3J0XG4gICBpbiBkZSBiYWxrLCBtYWtlbiBob29ydCBiaWogZGUgaW5ob3VkLiAqL1xuLnB1bHNlLXRvb2xiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7IG1hcmdpbi1ib3R0b206IDIwcHg7IGZsZXgtd3JhcDogd3JhcDtcbn1cbi5wdWxzZS10b29sYmFyLWxlZnQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7IGZsZXgtd3JhcDogd3JhcDsgfVxuLnB1bHNlLXRvb2xiYXItcmlnaHQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4ucHVsc2Utc2VhcmNoIHsgd2lkdGg6IDM0MHB4OyBtYXgtd2lkdGg6IDEwMCU7IGZsZXg6IDAgMCBhdXRvOyB9XG4jcHVsc2Utc29ydC1idG4geyBmbGV4OiAwIDAgYXV0bzsgfVxuXG4vKiBXZXJrYmFsay1saW5rcyB3aWtrZWxlbiBlZW4gcWRuYXByby1idXR0b24g4oCUIGRlIGdsb2JhbGUgYS1zZWxlY3RvciB6ZXRcbiAgIGB1bmRlcmxpbmVgIHRlcnVnLCB2YW5kYWFyIGhldCAhaW1wb3J0YW50LiAqL1xuLnB1bHNlLXRvb2xiYXItbGluayxcbi5wdWxzZS10b29sYmFyLWxpbms6aG92ZXIsXG4ucHVsc2UtdG9vbGJhci1saW5rOmZvY3VzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbn1cbi5wdWxzZS10b29sYmFyLWxpbmsgKiB7IHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG4ucHVsc2UtdG9vbGJhci1oaW50IHsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7IH1cblxuLyogU29ydGVlcm1lbnUg4oCUIHZhc3RlIHBvc2l0aW9uZXJpbmcgb25kZXIgZGUga25vcCAoemVsZmRlIGFhbnBhayBhbHMgcHYyKS4gKi9cbi5wdWxzZS1zb3J0LW1lbnUgeyBwb3NpdGlvbjogZml4ZWQ7IHotaW5kZXg6IDkwMDA7IH1cbi5wdWxzZS1zb3J0LW1lbnVbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLyogSGV0IGRyaWUtcHVudGplcy1tZW51IHZhbiBlZW4ga2FhcnQgd29yZHQgYmlqIG9wZW5lbiB1aXQgZGUga2FhcnQgZ2V0aWxkOlxuICAgZGUga2FhcnRyYW5kIGtuaXB0IChvdmVyZmxvdzpoaWRkZW4gdm9vciBkZSBhZmdlcm9uZGUgaG9la2VuKSwgZHVzIGVlblxuICAgYWJzb2x1dXQgbWVudSB3b3JkdCBoYWx2ZXJ3ZWdlIGFmZ2VrYXB0IChKYW4tbWVsZGluZyAwOS4wOCkuIHBvc2l0aW9uOmZpeGVkXG4gICBvbnRzbmFwdCBhYW4gZGllIGtuaXAg4oCUIGRlIGthYXJ0d29ydGVsIGhlZWZ0IGdlZW4gKGJsaWp2ZW5kZSkgdHJhbnNmb3JtLCBkdXNcbiAgIGZpeGVkIHJla2VudCBnZXdvb24gdmFuYWYgaGV0IHZlbnN0ZXIuIENvw7ZyZGluYXRlbiB6ZXQgZGUgcGFnaW5hIGJpaiBlbGtcbiAgIG9wZW5lbiBvcG5pZXV3IChxZG5hcHJvLXByb2plY3QtY2FyZC1tZW51LW9wZW4g4oaSIHBvc2l0aW9uRml4ZWRNZW51KS4gKi9cbnFkbmFwcm8tcHJvamVjdC1jYXJkIHFkbmFwcm8tbWVudS5wdWxzZS1jYXJkLW1lbnUtZml4ZWQge1xuICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIHotaW5kZXg6IDkxMDA7XG59XG5cbi8qIERlIHRlZ2VsZ3JpZCB6ZWxmLiAqL1xuLnB1bHNlLWNhcmRzLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjY4cHgsIDFmcikpO1xuICAgIGdhcDogMTZweDtcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG59XG5cbi8qIFNlY3RpZWtvcHBlbiB2b29yIGRlIHNwbGl0c2luZyB2YXN0Z2VwaW5kIC8gYWxsZSBjYW1wYWduZXMuIEJlaWRlIHppam5cbiAgIHZlcmJvcmdlbiB6b2xhbmcgZGUgZ2VicnVpa2VyIG5pZXRzIGhlZWZ0IHZhc3RnZXBpbmQuICovXG4ucHVsc2Utc2VjdGlvbi1oZWFkaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA3cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbiAgICBtYXJnaW46IDRweCAycHggMTJweDtcbn1cbi5wdWxzZS1zZWN0aW9uLWhlYWRpbmcgcWRuYXByby1pY29uIHsgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCwgIzUzNGFiNyk7IH1cbi5wdWxzZS1zZWN0aW9uLWhlYWRpbmdbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1waW5uZWQtc2VjdGlvbiB7IG1hcmdpbi1ib3R0b206IDI2cHg7IH1cbi5wdWxzZS1waW5uZWQtc2VjdGlvbltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBLbGlrYmFhcmhlaWQ6IHNpbmRzIFczIG9wZW50IEVMS0UgdGVnZWwgZGUgY2FtcGFnbmVwYWdpbmEg4oCUIG9vayBpbiBoZXRcbiAgIGFyY2hpZWYgZW4gb29rIHpvbmRlciBiZWhlZXJyZWNodCAoZGUgcGFnaW5hIGlzIGtpamstZ2F0ZWQgZW4gdG9vbnQgZWVuXG4gICBraWprZXIgZGV6ZWxmZGUgaW5ob3VkLCBhbGxlZW4gem9uZGVyIGJld2Vya2tub3BwZW4pLiBEYWFyb20gw6nDqW4gY3Vyc29yXG4gICB2b29yIGFsbGUgdGVnZWxzOyBoZXQgb25kZXJzY2hlaWQgdWl0IFcyIGlzIHZlcnZhbGxlbi4gKi9cbi5wdWxzZS1jYXJkcy1ncmlkID4gcWRuYXByby1wcm9qZWN0LWNhcmQucHVsc2UtY2FyZC1jbGlja2FibGUgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbi8qIFpvbmRlciBiZWhlZXJyZWNodCBrcmlqZ3QgZWVuIHRlZ2VsIGdlZW4gbWVudTsgZGFuIGhvb3J0IGRlIGRyaWUtcHVudGplcy1rbm9wXG4gICBlciBvb2sgbmlldCB0ZSB6aWpuIChoaWogem91IGJpaiBob3ZlciB2ZXJzY2hpam5lbiBlbiBuaWV0cyBkb2VuKS4gKi9cbi5wdWxzZS1jYXJkcy1ncmlkID4gcWRuYXByby1wcm9qZWN0LWNhcmQucHVsc2UtY2FyZC1ub21lbnUgLnByb2plY3QtY2FyZC1tZW51LXRyaWdnZXIgeyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIERlIHN0YXR1c3BpbCBsaW5rc2JvdmVuIG9wIGRlIHRlZ2VsIHdhcyBoaWVyIGVlbiBwYWdpbmEtZWlnZW4gY2hpcFxuICAgKC5wdWxzZS1zdGF0ZS1jaGlwKS4gVmFuYWYgMTkuMDguMjAyNiBoZWVmdCBkZSBrYWFydCBlciBlZW4gc2xvdCB2b29yXG4gICAoc2xvdD1cInN0YXR1c1wiKSBlbiBpcyBkZSBwaWwgZWVuIGVjaHRlIHFkbmFwcm8tdGFnIG1ldCB2YXJpYW50PVwiZ2xhc3NcIiwgZHVzXG4gICBkaWUgcmVnZWxzIHppam4gd2VnOiBvcG1hYWsgdmFuIGVlbiBwaWwgaG9vcnQgYmlqIGRlIHBpbC4gKi9cblxuLyogR2VhcmNoaXZlZXJkZSB0ZWdlbDogR0VFTiB0d2VlZGUgdm9ldHJlZ2VsLWtub3AuIERlIHJlYWN0aWUtdGVsbGVyIHdvcmR0IGluXG4gICBkZSBhcmNoaWVmbGVucyBuaWV0IG1lZXIgYmVyZWtlbmQgKHppZSBfZGVjb3JhdGVDYW1wYWlnblJvd3M6IGRhdCBpcyBkZSBlbmlnZVxuICAgZ3JvZWlyaWNodGluZyB6b25kZXIgcGxhZm9uZCksIGVuIHpvbmRlciBgY29tbWVudC1jb3VudGAgdmFsdCBoZXQgY29tcG9uZW50XG4gICB0ZXJ1ZyBvcCB6aWpuIGJlbCDigJQgZWVuIGtub3AgZGllIGluIFB1bHNlIG5pZXRzIGRvZXQuIExpZXZlciBuaWV0cyBkYW4gZWVuXG4gICBkb2RlIGJlbC4gSGV0IGFhbnRhbCBzdGFwcGVuIGVuIGRlIGRhdHVtIGJsaWp2ZW4gc3RhYW4uXG4gICBIZXR6ZWxmZGUgaWRpb29tIGFscyBkZSBkZXJkZSBrbm9wIGluIF9wcm9qZWN0LWNhcmQuc2NzcywgZGllIGRhYXJcbiAgIGNvbXBvbmVudC1icmVlZCBvcCBkaXNwbGF5Om5vbmUgc3RhYXQuIERlemUgcmVnZWwgc3RhYXQgYmV3dXN0IEhJRVIgZW4gbmlldFxuICAgaW4gaGV0IGNvbXBvbmVudDogb3AgaGV0IHByb2plY3Rlbm92ZXJ6aWNodCBtYWcgZGllIGJlbCBibGlqdmVuIHN0YWFuLiAqL1xuLnB1bHNlLWNhcmRzLWdyaWQgcWRuYXByby1wcm9qZWN0LWNhcmRbYXJjaGl2ZWRdIC5wcm9qZWN0LWNhcmQtYWN0aW9uLWJlbGwge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogQmlubmVua29tc3QtYW5pbWF0aWUgbmEgaGV0IHdpc3NlbGVuIHZhbiBza2VsZXQgbmFhciBlY2h0ZSB0ZWdlbHMuICovXG5Aa2V5ZnJhbWVzIHB1bHNlLWNhcmQtZW50ZXIge1xuICAgIDAlICAgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHNjYWxlKDAuOTYpIHRyYW5zbGF0ZVkoOHB4KTsgfVxuICAgIDEwMCUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IH1cbn1cbi5wdWxzZS1jYXJkcy1ncmlkID4gcWRuYXByby1wcm9qZWN0LWNhcmQucHVsc2UtY2FyZC1lbnRlcmluZyB7XG4gICAgYW5pbWF0aW9uOiBwdWxzZS1jYXJkLWVudGVyIDI0MG1zIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKSBib3RoO1xufVxuXG4vKiBWZXJ0cmVrLWFuaW1hdGllIChhcmNoaXZlcmVuIC8gYWN0aXZlcmVuKSBlbiBkZSBrb3J0ZXJlIHZhcmlhbnQgdm9vciBoZXRcbiAgIHZlcnBsYWF0c2VuIGJpaiB2YXN0cGlubmVuLiAqL1xuQGtleWZyYW1lcyBwdWxzZS1jYXJkLWxlYXZlIHtcbiAgICAwJSAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxKSAgICB0cmFuc2xhdGVZKDApOyB9XG4gICAgMTAwJSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoMC44OCkgdHJhbnNsYXRlWSg4cHgpOyB9XG59XG4ucHVsc2UtY2FyZHMtZ3JpZCA+IHFkbmFwcm8tcHJvamVjdC1jYXJkLnB1bHNlLWNhcmQtbGVhdmluZyB7XG4gICAgYW5pbWF0aW9uOiBwdWxzZS1jYXJkLWxlYXZlIDUwMG1zIGN1YmljLWJlemllcigwLjU1LCAwLCAwLjM1LCAxKSBmb3J3YXJkcztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5wdWxzZS1jYXJkcy1ncmlkID4gcWRuYXByby1wcm9qZWN0LWNhcmQucHVsc2UtY2FyZC1waW5sZWF2ZSB7XG4gICAgYW5pbWF0aW9uOiBwdWxzZS1jYXJkLWxlYXZlIDMwMG1zIGN1YmljLWJlemllcigwLjU1LCAwLCAwLjM1LCAxKSBmb3J3YXJkcztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogR2Vlbi16b2VrcmVzdWx0YWF0LW1lbGRpbmcgb25kZXIgZGUgZ3JpZC4gKi9cbi5wdWxzZS1zZWFyY2gtZW1wdHkge1xuICAgIHBhZGRpbmc6IDMycHggOHB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG5cbi8qIC0tLSBNYWFrL2Jld2Vyay1jYW1wYWduZS1tb2RhbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIEZvdG9raWV6ZXItdGVnZWxzIGluIGRlIG1vZGFsLiAqL1xuLnB1bHNlLXBob3RvLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgODdweCk7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG59XG4ucHVsc2UtcGhvdG8tYWN0aW9ucyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBtYXJnaW4tdG9wOiAxNnB4OyB9XG4ucHVsc2UtcGhvdG8taGludCB7IG1hcmdpbjogOHB4IDAgMDsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogIzZiNzI4MDsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5wdWxzZS1waG90by1oaW50IHsgY29sb3I6ICNhNmFhYjM7IH1cbi5wdWxzZS1waG90by1lcnJvciB7IG1hcmdpbjogOHB4IDAgMDsgZm9udC1zaXplOiAxMi41cHg7IGNvbG9yOiAjZDg0NDJlOyB9XG4ucHVsc2UtcGhvdG8tZXJyb3JbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1waG90by1zdGF0dXMgeyBtYXJnaW46IDhweCAwIDA7IGZvbnQtc2l6ZTogMTIuNXB4OyBjb2xvcjogIzFkOWU3NTsgfVxuLnB1bHNlLXBob3RvLXN0YXR1c1toaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBWZXJ0YWFsa25vcCBuYWFzdCBkZSB0aXRlbCBlbiBkZSBvbXNjaHJpanZpbmcgaW4gZGUgY2FtcGFnbmUtbW9kYWxcbiAgICgxNy4wOS4yMDI2KS4gRGV6ZWxmZGUgb3Bib3V3IGFscyBkZSBwcm9qZWN0dGl0ZWwgb3AgL3YxL3Byb2plY3RzOiBlZW5cbiAgIHJlbGF0aWV2ZSB3aWtrZWwgb20gaGV0IGludm9lcnZlbGQsIG1ldCBkZSBrbm9wIHJlY2h0c2JvdmVuIG9wIGRlIGxhYmVscmVnZWxcbiAgIGVuIGVlbiBvcmFuamUgc3RpcCB6b2RyYSBlciBub2cgZWVuIHRhYWwgbGVlZyBpcy4gRGUga25vcCBpcyBlZW4gQlJPRVJUSkVcbiAgIHZhbiBoZXQgdmVsZCwgbm9vaXQgZWVuIGtpbmQ6IHFkbmFwcm8taW5wdXQgYm91d3QgemlqbiBlaWdlbiBpbmhvdWQgb3BuaWV1d1xuICAgb3AgZW4gem91IGhlbSB3aXNzZW4uIERlIG1hcmdlIHppdCBvcCBkZSB3aWtrZWwsIHdhbnQgZGllIGlzIG51IGhldCBkaXJlY3RlXG4gICBraW5kIHZhbiAubW9kYWwtYm9keS4gKi9cbi5wdWxzZS10cmFuc2xhdGUtZmllbGQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgID4gcWRuYXByby1pbnB1dCB7IG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfVxufVxuLnB1bHNlLXRyYW5zbGF0ZS1idG4geyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgcmlnaHQ6IDA7IHotaW5kZXg6IDI7IH1cblxuLyogRGV6ZWxmZGUgbWluaS1zdGlwIGFscyBlbGRlcnMgaW4gZGUgYmFja29mZmljZSAoLnRyYW5zbGF0aW9ucy1taW5pLWJhZGdlIG9wXG4gICBkZSB0YWtlbmxpanN0LCAucHYyLXRyYW5zbGF0ZS1iYWRnZSBvcCBkZSBwcm9qZWN0ZW4pLiAqL1xuLnB1bHNlLXRyYW5zbGF0ZS1iYWRnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTJweDtcbiAgICByaWdodDogLTJweDtcbiAgICB3aWR0aDogOXB4O1xuICAgIGhlaWdodDogOXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZThhMzIwO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAjZmZmO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDM7XG59XG4ucHVsc2UtdHJhbnNsYXRlLWJhZGdlW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4vKiBIZXQgcmluZ2V0amUgdm9sZ3QgZGUgYWNodGVyZ3JvbmQgdmFuIGhldCBtb2RhbHZlbnN0ZXIsIHpvZGF0IGRlIHN0aXAgbG9zXG4gICB2YW4gZGUga25vcCBibGlqZnQgbGV6ZW4gaW4gcGxhYXRzIHZhbiBlcm9wIHRlIHBsYWtrZW4uICovXG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnB1bHNlLXRyYW5zbGF0ZS1iYWRnZSB7IGJveC1zaGFkb3c6IDAgMCAwIDJweCAjMmUzMDM2OyB9XG5cbi8qIEhvb2d0ZS1jb3JyZWN0aWUgdm9vciBkZSB3aXRoLWluZm8tbW9kYWw6IGhldCBjb21wb25lbnQgZm9yY2VlcnQgZWVuIHZhc3RlXG4gICA4MDBweCBkaWUgdm9vciBkaXQga29ydGUgZm9ybXVsaWVyIHZlZWwgdGUgaG9vZyBpcy4gUGFnaW5hLWdlc2Nvb3B0IG9wIGhldFxuICAgaWQg4oCUIG5vb2l0IGRlIGdsb2JhbGUgY29tcG9uZW50LUNTUyBhYW5wYXNzZW4gKHFkbmEtYWN0aW9uLW1vZGFscykuICovXG4jcHVsc2UtY2FtcGFpZ24tbW9kYWwubW9kYWwtbGF5b3V0LXdpdGgtaW5mbyAubW9kYWwtZGlhbG9nIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LWhlaWdodDogbWluKDgwMHB4LCBjYWxjKDEwMHZoIC0gNDhweCkpO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuI3B1bHNlLWNhbXBhaWduLW1vZGFsLm1vZGFsLWxheW91dC13aXRoLWluZm8gLm1vZGFsLXdpbmRvdyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmctYm90dG9tOiAxNnB4O1xufVxuXG4vKiAtLS0gU2phYmxvb25raWV6ZXIgKFwiVWl0IHNqYWJsb29uXCIpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIERlemVsZmRlIGhvb2d0ZS1jb3JyZWN0aWUgYWxzIGRlIGNhbXBhZ25lLW1vZGFsIGhpZXJib3Zlbjogd2l0aC1pbmZvIGZvcmNlZXJ0XG4gICBhbmRlcnMgZWVuIFZBU1RFIDgwMHB4LCBlbiBlZW4ga29ydGUgc2phYmxvb25saWpzdCB6d2VtdCBkYWFyaW4uIFBhZ2luYS1cbiAgIGdlc2Nvb3B0IG9wIGhldCBpZCDigJQgbm9vaXQgZGUgZ2xvYmFsZSBjb21wb25lbnQtQ1NTIGFhbnBhc3Nlbi4gKi9cbiNwdWxzZS10ZW1wbGF0ZS1tb2RhbC5tb2RhbC1sYXlvdXQtd2l0aC1pbmZvIC5tb2RhbC1kaWFsb2cge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiBtaW4oODAwcHgsIGNhbGMoMTAwdmggLSA0OHB4KSk7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG4jcHVsc2UtdGVtcGxhdGUtbW9kYWwubW9kYWwtbGF5b3V0LXdpdGgtaW5mbyAubW9kYWwtd2luZG93IHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHg7XG59XG5cbi8qIERpdCBpcyBlZW4gS0VVWkVsaWpzdCwgZ2VlbiB0ZWdlbG92ZXJ6aWNodDogw6nDqW4ga29sb20gb3ZlciBkZSB2b2xsZSBicmVlZHRlLlxuICAgRGUga2FhcnQgemVsZiBpcyBoZXQgZ2VkZWVsZGUgcWRuYXByby1waWNrZXItdGlsZSAoaGV0IGNvbXBvbmVudCB2b29yIFwia2llc1xuICAgZXIgZWVuIHVpdCBOXCI7IHppam4gZWlnZW4gZG9jYmxvY2sgbm9lbXQgZWVuIHNqYWJsb29uZ2FsZXJpaiBhbHMgdm9vcmJlZWxkKS5cbiAgIEFsbGVlbiBkZSBWT1JNIHdvcmR0IGhpZXIgb21nZXpldCB2YW4gZ2FsZXJpai10ZWdlbCBuYWFyIGJyZWRlIHJlZ2VsIOKAlFxuICAgemVsZmRlIHNvb3J0IHBhZ2luYS1nZXNjb29wdGUgaGVydm9ybWluZyBhbHMgZGUgY29tcGFjdGUgZ3JhZmlla3R5cGUtdGVnZWxzXG4gICBvcCBkZSBkYXNoYm9hcmQta2FhcnRwYWdpbmEuICovXG4ucHVsc2UtdHBsLWxpc3QgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgZ2FwOiAxMHB4OyB9XG5cbi8qIGNvbHVtbi1yZXZlcnNlIHpldCBkZSBib2R5ICh0aXRlbCArIG9tc2NocmlqdmluZykgQk9WRU4gaGV0IHRodW1iLXZhazsgZGF0XG4gICB2YWsgZHJhYWd0IGhpZXIgZGUgc2FtZW5zdGVsbGluZ3NyZWdlbC4gRGllIHJlZ2VsIGlzIGVlbiBsaWdodC1ET00ta2luZCB2YW5cbiAgIGRlIHRlZ2VsLCBlbiBoZXQgY29tcG9uZW50IGtsb250IHppam4ga2luZGVyZW4gYmlqIGVsa2UgaGVyLXJlbmRlciDigJQgZHVzIGRlXG4gICByZWdlbCBvdmVybGVlZnQgaGV0IGFhbi0gZW4gdWl0emV0dGVuIHZhbiBgc2VsZWN0ZWRgLiAqL1xuLnB1bHNlLXRwbC1saXN0IHFkbmFwcm8tcGlja2VyLXRpbGUgeyBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cbi5wdWxzZS10cGwtbGlzdCBxZG5hcHJvLXBpY2tlci10aWxlIC5waWNrZXItdGlsZS1ib2R5IHsgcGFkZGluZzogMTRweCAxNnB4IDRweDsgfVxuLnB1bHNlLXRwbC1saXN0IHFkbmFwcm8tcGlja2VyLXRpbGUgLnBpY2tlci10aWxlLXRodW1iIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwYWRkaW5nOiAwIDE2cHggMTRweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnB1bHNlLXRwbC1tZXRhIHsgZm9udC1zaXplOiAxMnB4OyBsaW5lLWhlaWdodDogMThweDsgY29sb3I6ICM2YjcyODA7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucHVsc2UtdHBsLWxpc3QgcWRuYXByby1waWNrZXItdGlsZSAucGlja2VyLXRpbGUtdGh1bWIgeyBiYWNrZ3JvdW5kOiBub25lOyB9XG5bZGF0YS10aGVtZT1cImRhcmtcIl0gLnB1bHNlLXRwbC1tZXRhIHsgY29sb3I6ICNhNmFhYjM7IH1cblxuLyogU3RhdHVzcmVnZWwgaW4gZGUgbGlqc3QgKGxhZGVuIC8gbGVlZyAvIGxpanN0IG5pZXQgZ2VsYWRlbikgZW4gZGUgZm91dCBvbmRlclxuICAgZGUgbGlqc3QgYWxzIGhldCBhYW5tYWtlbiB6ZWxmIG1pc2dhYXQuIExlZ2UgdGVrc3QgPSB2ZXJib3JnZW4uICovXG4ucHVsc2UtdHBsLW1zZyB7IG1hcmdpbjogNHB4IDJweDsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogIzZiNzI4MDsgfVxuLnB1bHNlLXRwbC1tc2dbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS10cGwtZXJyb3IgeyBtYXJnaW46IDEycHggMnB4IDA7IGZvbnQtc2l6ZTogMTIuNXB4OyBjb2xvcjogI2Q4NDQyZTsgfVxuLnB1bHNlLXRwbC1lcnJvcltoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5wdWxzZS10cGwtbXNnIHsgY29sb3I6ICNhNmFhYjM7IH1cblxuLyogLS0tIE5vdmEtY2FtcGFnbmVnZW5lcmF0aWUgKFwiTWV0IE5vdmFcIiwgRjMtVzQpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBIZXQgc3RlcnJldGplIGRyYWFndCBoZXQgTm92YS1pZGlvb20uIERlIGtub3AgYmxpamZ0IGRlemVsZmRlIHZvcm0gYWxzXG4gICBcIlVpdCBzamFibG9vblwiIChzZWNvbmRhcnktd2hpdGUpIOKAlCBkcmllIHByaW1haXJlIGtsZXVyZW4gbmFhc3QgZWxrYWFyIHpvdVxuICAgcnV6aWUgZ2V2ZW4g4oCUIG1hYXIgaGV0IGljb29uIHN0YWF0IGluIGhldCBtZXJrcGFhcnMgdWl0IGRlIHRva2VuYmlibGlvdGhlZWssXG4gICBub29pdCBpbiBoZXQgYmlqbmEtendhcnQgdmFuIGVlbiBrYWxlIHN1YnRsZS1rbm9wLiBUYXJnZXQgb3AgaGV0ICNpZDogZGVcbiAgIGtub3AgYmVzdGFhdCBhbHMgaG9zdCBhbCBiaWogcGFnZS1sb2FkLCBvb2sgdsOzw7NyIHppam4gdXBncmFkZS4gKi9cbiNwdWxzZS1ub3ZhLWJ0biBxZG5hcHJvLWljb24geyBjb2xvcjogdmFyKC0tYy1icmFuZC1wdXJwbGUsICM0MDQ5OWEpOyB9XG5cbi8qIERlemVsZmRlIGhvb2d0ZS1jb3JyZWN0aWUgYWxzIGRlIHR3ZWUgbW9kYWxzIGhpZXJib3Zlbjogd2l0aC1pbmZvIGZvcmNlZXJ0XG4gICBhbmRlcnMgZWVuIFZBU1RFIDgwMHB4LiBQYWdpbmEtZ2VzY29vcHQgb3AgaGV0IGlkLiAqL1xuI3B1bHNlLW5vdmEtbW9kYWwubW9kYWwtbGF5b3V0LXdpdGgtaW5mbyAubW9kYWwtZGlhbG9nIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LWhlaWdodDogbWluKDgwMHB4LCBjYWxjKDEwMHZoIC0gNDhweCkpO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuI3B1bHNlLW5vdmEtbW9kYWwubW9kYWwtbGF5b3V0LXdpdGgtaW5mbyAubW9kYWwtd2luZG93IHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHg7XG59XG5cbi5wdWxzZS1ub3ZhLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzM5NDI5MCk7XG4gICAgbWFyZ2luOiAwIDAgNnB4O1xufVxuLnB1bHNlLW5vdmEtZmllbGQgeyBtYXJnaW4tdG9wOiAxNnB4OyB9XG4ucHVsc2Utbm92YS1maWVsZDpmaXJzdC1vZi10eXBlIHsgbWFyZ2luLXRvcDogMDsgfVxuXG4vKiBSZXN1bHRhdGVubGlqc3Qg4oCUIGVpZ2VuIG1heGltdW1ob29ndGUgbWV0IGVlbiBzbWFsbGUsIGRvb3J6aWNodGlnZSBiYWxrXG4gICBCSU5ORU4gaGV0IG9uZGVyZGVlbCAoaHVpc3JlZ2VsKTsgdHdpbnRpZyB0cmVmZmVycyB6b3VkZW4gZGUgbW9kYWwgYW5kZXJzXG4gICB0d2VlIHNjaGVybWVuIGhvb2cgbWFrZW4uIFplbGZkZSB2b3JtIGFscyBoZXQga29wcGVscGFuZWVsIG9wIGRlXG4gICBjYW1wYWduZXBhZ2luYSwgem9kYXQgYmVpZGUgem9la2xpanN0ZW4gaWRlbnRpZWsgbGV6ZW4uICovXG4ucHVsc2Utbm92YS1yZXN1bHRzIHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWF4LWhlaWdodDogMjA4cHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZTVlNWVhKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZik7XG59XG4ucHVsc2Utbm92YS1yZXN1bHRzW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2Utbm92YS1yZXN1bHRzOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiA2cHg7IH1cbi5wdWxzZS1ub3ZhLXJlc3VsdHM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbi5wdWxzZS1ub3ZhLXJlc3VsdHM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDU3LCA2NiwgMTQ0LCAwLjIyKTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbn1cbi5wdWxzZS1ub3ZhLXJlc3VsdHMgeyBzY3JvbGxiYXItd2lkdGg6IHRoaW47IHNjcm9sbGJhci1jb2xvcjogcmdiYSg1NywgNjYsIDE0NCwgMC4yMikgdHJhbnNwYXJlbnQ7IH1cblxuLnB1bHNlLW5vdmEtaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA5cHggMTJweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNlNWU1ZWEpO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuLnB1bHNlLW5vdmEtaXRlbTpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogMDsgfVxuLnB1bHNlLW5vdmEtaXRlbTpob3ZlciB7IGJhY2tncm91bmQ6ICNmN2Y4ZmY7IH1cbi5wdWxzZS1ub3ZhLWl0ZW06Zm9jdXMtdmlzaWJsZSB7IG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1mb2N1cy1yaW5nLCAjNTM0YWI3KTsgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IH1cbi5wdWxzZS1ub3ZhLWl0ZW0gcWRuYXByby1pY29uIHsgZmxleC1zaHJpbms6IDA7IGNvbG9yOiAjNmI2ODg0OyB9XG4ucHVsc2Utbm92YS1pdGVtLXRleHRzIHsgbWluLXdpZHRoOiAwOyBmbGV4OiAxIDEgYXV0bzsgfVxuLnB1bHNlLW5vdmEtaXRlbS1uYW1lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMWMxZTJhKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucHVsc2Utbm92YS1pdGVtLXN1YiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5wdWxzZS1ub3ZhLW5vdGUge1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBmb250LXNpemU6IDEyLjVweDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG59XG5cbi8qIERlIGdla296ZW4gZG9jdW1lbnRlbi4gRcOpbiByZWdlbCBwZXIgZG9jdW1lbnQsIG1ldCBlZW4ga3J1aXNqZSBvbSBoZW0gZXJcbiAgIHdlZXIgdWl0IHRlIGhhbGVuLiBaZWxmZGUgbGF2ZW5kZWwgYWxzIGRlIGdla296ZW4ga29wcGVsaW5nIG9wIGRlXG4gICBjYW1wYWduZXBhZ2luYS4gKi9cbi5wdWxzZS1ub3ZhLWNob3NlbiB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogOHB4OyB9XG4ucHVsc2Utbm92YS1jaG9zZW5baGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1ub3ZhLWNoaXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogOXB4IDhweCA5cHggMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNlZWYwZmI7XG4gICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOXB4O1xufVxuLnB1bHNlLW5vdmEtY2hpcCBxZG5hcHJvLWljb24geyBmbGV4LXNocmluazogMDsgfVxuLnB1bHNlLW5vdmEtY2hpcC10ZXh0cyB7IG1pbi13aWR0aDogMDsgZmxleDogMSAxIGF1dG87IH1cbi5wdWxzZS1ub3ZhLWNoaXAtbmFtZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucHVsc2Utbm92YS1jaGlwLXN1YiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6ICM2YjY4ODQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5wdWxzZS1ub3ZhLWNoaXAtc3ViIHsgY29sb3I6ICNhNmFhYjM7IH1cblxuLnB1bHNlLW5vdmEtaGludCB7IG1hcmdpbjogOHB4IDAgMDsgZm9udC1zaXplOiAxMnB4OyBsaW5lLWhlaWdodDogMTdweDsgY29sb3I6ICM2YjcyODA7IH1cbi5wdWxzZS1ub3ZhLWhpbnRbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi8qIEhldCBhYW5kYWNodHNwdW50IHVpdCBBbmFseXRpY3MgKGRlIGZvY3VzbGlqc3QtYnJ1Zyk6IGVlbiBydXN0aWdlIGNoaXAgaW5cbiAgIHBsYWF0cyB2YW4gZWVuIGludm9lcnZlbGQg4oCUIGVyIHZhbHQgbmlldHMgdGUgYmV3ZXJrZW4sIGFsbGVlbiB0ZSB3ZXRlbi4gKi9cbi5wdWxzZS1ub3ZhLWZvY3VzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmNGYzZmI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAjM2EzODU0O1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xufVxuLnB1bHNlLW5vdmEtZm9jdXMgcWRuYXByby1pY29uIHsgY29sb3I6ICM1YjQ1YjU7IGZsZXgtc2hyaW5rOiAwOyBtYXJnaW4tdG9wOiAxcHg7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAucHVsc2Utbm92YS1oaW50IHsgY29sb3I6ICNhNmFhYjM7IH1cblxuLyogV2FjaHRzdGFuZCBJTiBkZSBtb2RhbDogZGUgZ2VuZXJhdGllIGR1dXJ0IDMwLTkwIHNlY29uZGVuLCBkdXMgZWVuIHN0aWxsZVxuICAga25vcCBpcyBuaWV0IGdlbm9lZy4gKi9cbi5wdWxzZS1ub3ZhLWJ1c3kge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWFyZ2luOiAxNnB4IDAgMDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZWVmMGZiO1xuICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMTlweDtcbn1cbi5wdWxzZS1ub3ZhLWJ1c3lbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5wdWxzZS1ub3ZhLXNwaW5uZXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoNjQsIDczLCAxNTQsIDAuMjUpO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICM0MDQ5OWE7XG4gICAgYW5pbWF0aW9uOiBwdWxzZS1ub3ZhLXNwaW4gODAwbXMgbGluZWFyIGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBwdWxzZS1ub3ZhLXNwaW4geyB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAucHVsc2Utbm92YS1zcGlubmVyIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG5cbi5wdWxzZS1ub3ZhLWVycm9yIHsgbWFyZ2luOiAxMnB4IDJweCAwOyBmb250LXNpemU6IDEyLjVweDsgY29sb3I6ICNkODQ0MmU7IH1cbi5wdWxzZS1ub3ZhLWVycm9yW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIC0tLSBTdG9ja2ZvdG8ta2llemVyIChcIk1lZXIgYWZiZWVsZGluZ2VuXCIpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogWndldmVuZCBwYW5lZWwgbmFhc3QgZGUgbW9kYWw7IGJld3VzdCB6b25kZXIgZWlnZW4gYWNodGVyZ3JvbmRsYWFnIHpvZGF0IGRlXG4gICBjYW1wYWduZS1tb2RhbCB6aWNodGJhYXIgYmxpamZ0LiAqL1xuLnB1bHNlLXNwLXBvcCB7XG4gICAgcG9zaXRpb246IGZpeGVkOyByaWdodDogMzJweDsgdG9wOiAyNHB4OyBib3R0b206IDI0cHg7XG4gICAgei1pbmRleDogOTEwMDtcbiAgICB3aWR0aDogbWluKDQ2MHB4LCA5NHZ3KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmYpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjE2KSwgMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gICAgZGlzcGxheTogbm9uZTsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5wdWxzZS1zcC1wb3AuaXMtb3BlbiB7IGRpc3BsYXk6IGZsZXg7IGFuaW1hdGlvbjogcHVsc2Utc3AtcG9wLWluIDE2MG1zIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKTsgfVxuQGtleWZyYW1lcyBwdWxzZS1zcC1wb3AtaW4ge1xuICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTJweCk7IH1cbiAgICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG59XG4ucHVsc2Utc3AtaGVhZCB7XG4gICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDsgcGFkZGluZzogMTJweCAxMnB4IDEycHggMTZweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZTVlYTsgZmxleDogMCAwIGF1dG87XG59XG4ucHVsc2Utc3AtdGl0bGUgeyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDIwcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiAjNDA0OTlhOyB9XG4ucHVsc2Utc3AtY2xvc2Uge1xuICAgIGZsZXg6IDAgMCBhdXRvOyBib3JkZXI6IDA7IGJhY2tncm91bmQ6IG5vbmU7IGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiA2cHg7IGJvcmRlci1yYWRpdXM6IDhweDsgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMWMxZTJhKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ucHVsc2Utc3AtY2xvc2U6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1ob3ZlciwgI2YzZjRmYik7IH1cbi5wdWxzZS1zcC10b29sYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4IDAgMTZweDsgZmxleDogMCAwIGF1dG87XG59XG4ucHVsc2Utc3Atc2VhcmNoIHsgZmxleDogMSAxIGF1dG87IG1pbi13aWR0aDogMDsgfVxuLnB1bHNlLXNwLWNvdW50IHsgZmxleDogMCAwIGF1dG87IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6ICM2ZTZlNzM7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbi5wdWxzZS1zcC1ncmlkIHtcbiAgICBmbGV4OiAxIDEgYXV0bzsgbWluLWhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE1MHB4LCAxZnIpKTtcbiAgICBnYXA6IDEycHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHggMTZweCAxNnB4O1xuICAgIGFsaWduLWNvbnRlbnQ6IHN0YXJ0O1xufVxuLyogVmFzdGUgY2VsaG9vZ3RlIChOSUVUIGFzcGVjdC1yYXRpbyk6IGVlbiBncmlkLWl0ZW0gbWV0IGFzcGVjdC1yYXRpbyB3b3JkdFxuICAgdWl0Z2VyZWt0IGVuIGxldmVydCBzdHJlcGVuIG9wLiAqL1xuLnB1bHNlLXNwLWNlbGwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwNHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSwgI2YzZjRmYik7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDA7XG4gICAgdHJhbnNpdGlvbjogb3V0bGluZS1jb2xvciAxMjBtcyBlYXNlLCB0cmFuc2Zvcm0gMTIwbXMgZWFzZTtcbn1cbi5wdWxzZS1zcC1jZWxsOmhvdmVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOyB9XG4ucHVsc2Utc3AtY2VsbDpmb2N1cy12aXNpYmxlIHsgb3V0bGluZS1jb2xvcjogdmFyKC0tZm9jdXMtcmluZywgIzUzNGFiNyk7IH1cbi5wdWxzZS1zcC10aHVtYiB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6IGNvdmVyOyBkaXNwbGF5OiBibG9jazsgfVxuLnB1bHNlLXNwLWNlbGwucHVsc2Utc3Atc2VsZWN0ZWQgeyBvdXRsaW5lLWNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzUzNGFiNyk7IH1cbi5wdWxzZS1zcC1jaGVjayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDhweDsgcmlnaHQ6IDhweDtcbiAgICB3aWR0aDogMjZweDsgaGVpZ2h0OiAyNnB4OyBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgLy8gQmxpamZ0IGluIGJlaWRlIHRoZW1hJ3MgZWVuIFdJVCByb25kamUgb3AgZGUgZm90bywgZHVzIGRlIGtsZXVyIGlzIGRlXG4gICAgLy8gcHJpbWl0aWV2ZSBwdXJwbGUtNTAwIGVuIG5pZXQgaGV0IG1lcmstdG9rZW4gZGF0IGluIGRhcmsgbGljaHQgd29yZHQuXG4gICAgYmFja2dyb3VuZDogI2ZmZjsgY29sb3I6IHZhcigtLWMtcHVycGxlLTUwMCwgIzUzNGFiNyk7XG4gICAgZGlzcGxheTogbm9uZTsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMjAsIDI1LCA4MCwgMC4yNSk7XG59XG4ucHVsc2Utc3AtY2VsbC5wdWxzZS1zcC1zZWxlY3RlZCAucHVsc2Utc3AtY2hlY2sgeyBkaXNwbGF5OiBmbGV4OyB9XG4ucHVsc2Utc3AtZW1wdHkge1xuICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgcGFkZGluZzogMjhweDsgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM4YThmYTMpOyBmb250LXNpemU6IDE0cHg7XG59XG5cbi8qIC0tLSBBcmNoaXZlZXItYmV2ZXN0aWdpbmcgKHdhYXJzY2h1d2luZ3Ntb2RhbCwgYmV3dXN0IFpPTkRFUiBpbmZvLWtvbG9tKSAtICovXG4ucHVsc2UtYXJjaGl2ZS13YXJuaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW46IDE0cHggMCAwO1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOGUxO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmNWQ2OGE7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAjNWM0MTAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbn1cbi5wdWxzZS1hcmNoaXZlLXdhcm5pbmcgcWRuYXByby1pY29uIHsgY29sb3I6ICNiNzgxMDA7IGZsZXgtc2hyaW5rOiAwOyBtYXJnaW4tdG9wOiAxcHg7IH1cblxuLyogLS0tIEluLWFwcCBoZWxwIChiZWtub3B0ZSBzZWN0aWVzOyBoZXQgV2Vya3Zvb3JyYWFkLS9LTC1wcmVjZWRlbnQpIC0tLS0tLS0tXG4gICBEZSBoZWxwa25vcCBzdGFhdCBOQUFTVCBkZSBwYWdpbmF0aXRlbCBlbiBpcyB0eXBlPVwic3VidGxlLXB1cnBsZVwiIChub29pdFxuICAgXCJzdWJ0bGVcIiDigJQgZGF0IGlzIGJpam5hLXp3YXJ0OyBodWlzcmVnZWwgdm9vciBoZWxwa25vcHBlbikuXG4gICBEZSBtb2RhbCBpcyBzaXplPVwibGFyZ2VcIiB2b29yIGRlIGxlZXNicmVlZHRlLCBtYWFyIG1ldCBlZW4gcGFnaW5hLWdlc2Nvb3B0ZVxuICAgYXV0by1ob29ndGU6IGxhcmdlIGZvcmNlZXJ0IGFuZGVycyBlZW4gVkFTVEUgaG9vZ3RlIHZhbiA4MDBweCwgZW4gemVzIGtvcnRlXG4gICBhbGluZWEncyB6d2VtbWVuIGRhYXJpbi4gWmVsZmRlIG92ZXJzY2hyaWp2aW5nIGFscyBkZSBpbXBvcnQtbW9kYWwuICovXG4ucHVsc2UtaGVhZCBoMSBxZG5hcHJvLWljb24tYnRuIHsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgbWFyZ2luLWxlZnQ6IDJweDsgfVxuI3B1bHNlLWhlbHAtbW9kYWwgLm1vZGFsLWRpYWxvZyB7IGhlaWdodDogYXV0bzsgbWF4LWhlaWdodDogbWluKDgwMHB4LCBjYWxjKDEwMHZoIC0gNDhweCkpOyB9XG4jcHVsc2UtaGVscC1tb2RhbCAubW9kYWwtd2luZG93IHsgaGVpZ2h0OiBhdXRvOyB9XG4ucHVsc2UtaGVscC1zZWMgeyBtYXJnaW46IDAgMCAxNXB4OyB9XG4ucHVsc2UtaGVscC1zZWM6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDJweDsgfVxuLnB1bHNlLWhlbHAtc2VjIGgzIHsgZm9udC1zaXplOiAxMy41cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzM5NDI5MCk7IG1hcmdpbjogMCAwIDRweDsgfVxuLnB1bHNlLWhlbHAtc2VjIHAgeyBmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAyMHB4OyBjb2xvcjogIzNhMzg1NDsgbWFyZ2luOiAwOyB9XG5cbi8qIC0tLSBBbmFseXRpY3MgKC92MS9wdWxzZS9hbmFseXRpY3MsIDIwMjYtMDgtMTIpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgSGV0IG92ZXJrb2VwZWxlbmRlIHN0YXRpc3RpZWtvdmVyemljaHQuIEhlcmdlYnJ1aWt0IGRlIHN0YXRzLWtsYXNzZW4gdmFuIGRlXG4gICBkZXRhaWxwYWdpbmEgKGthYXJ0ZW4sIGJhbGtlbiwgc2tlbGV0LCBmb3V0c3RhYXQpOyBoaWVyb25kZXIgc3RhYXQgYWxsZWVuXG4gICB3YXQgZGV6ZSBwYWdpbmEgemVsZiB0b2V2b2VndC4gQWxsZXMgcHVsc2UtYW5hLWdlc2Nvb3B0LiAqL1xuXG4ucHVsc2UtYW5hLXRvb2xiYXIgeyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbi5wdWxzZS1hbmEtdG9vbGJhciAucHVsc2UtdG9vbGJhci1sZWZ0IHsgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG4ucHVsc2UtYW5hLWZpbHRlciB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogM3B4OyBtaW4td2lkdGg6IDE1MHB4OyB9XG4ucHVsc2UtYW5hLWZpbHRlci1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG59XG5cbi5wdWxzZS1hbmEtcGFuZWwgeyBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4ucHVsc2UtYW5hLWNhcmRzIHsgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuXG4ucHVsc2UtYW5hLWNvbHMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzNDBweCwgMWZyKSk7XG4gICAgZ2FwOiAxOHB4O1xuICAgIC8qIERlIGtvbG9tbWVuIHplbGYgemlqbiBnZWVuIHBhbmVsZW47IHBhbmVsZW4gZXJiaW5uZW4gaG91ZGVuIGh1biBtYXJnZS4gKi9cbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xufVxuLnB1bHNlLWFuYS1jb2xzIC5wdWxzZS1hbmEtcGFuZWwgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4ucHVsc2UtYW5hLWNvbGhlYWQge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSwgIzM5NDI5MCk7XG4gICAgbWFyZ2luOiAwIDAgOHB4O1xufVxuXG4ucHVsc2UtYW5hLW5vdGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA4cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOXB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbiAgICBtYXJnaW46IDAgMCAxNHB4O1xufVxuLnB1bHNlLWFuYS1ub3RlW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2UtYW5hLW5vdGUgcWRuYXByby1pY29uIHsgZmxleC1zaHJpbms6IDA7IGNvbG9yOiAjN2Q4NWQ2OyBtYXJnaW4tdG9wOiAxcHg7IH1cbi5wdWxzZS1hbmEta25vdGUgeyBtYXJnaW4tdG9wOiA0cHg7IH1cblxuLnB1bHNlLWFuYS1lbXB0eSB7XG4gICAgcGFkZGluZzogNDBweCAxMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpO1xufVxuLnB1bHNlLWFuYS1lbXB0eVtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBEZSBjYW1wYWduZXRhYmVsLiBCcmVkZSBpbmhvdWQgc2Nyb2x0IGJpbm5lbiBkZSBlaWdlbiB3cmFwcGVyIChzbWFsbGUsXG4gICB0cmFuc3BhcmFudGUgYmFsayDigJQgZGUgaHVpc3JlZ2VsKSwgbm9vaXQgZGUgcGFnaW5hLiAqL1xuLnB1bHNlLWFuYS10YWJsZS1zY3JvbGwgeyBvdmVyZmxvdy14OiBhdXRvOyB9XG4ucHVsc2UtYW5hLXRhYmxlLXNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXIgeyBoZWlnaHQ6IDZweDsgfVxuLnB1bHNlLWFuYS10YWJsZS1zY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbi5wdWxzZS1hbmEtdGFibGUtc2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7IGJhY2tncm91bmQ6ICNkNmQ0ZTQ7IGJvcmRlci1yYWRpdXM6IDk5OXB4OyB9XG4ucHVsc2UtYW5hLXRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzNhMzg1NDtcbn1cbi5wdWxzZS1hbmEtdGFibGUgdGgge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxMS41cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmV5LTUwMCwgIzZiNjg4NCk7XG4gICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWUzZjA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5wdWxzZS1hbmEtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjBlZmY3O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucHVsc2UtYW5hLXRhYmxlIHRoLm51bSxcbi5wdWxzZS1hbmEtdGFibGUgdGQubnVtIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbi5wdWxzZS1hbmEtdGFibGUgdGJvZHkgdHI6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZjdmN2ZjOyB9XG4ucHVsc2UtYW5hLXRkLXRpdGxlIHsgbWF4LXdpZHRoOiAzNDBweDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IH1cbi5wdWxzZS1hbmEtY2FtcC1saW5rIHsgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjMzk0MjkwKTsgZm9udC13ZWlnaHQ6IDYwMDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4ucHVsc2UtYW5hLWNhbXAtbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4ucHVsc2UtYW5hLWxvY2sgeyBjb2xvcjogI2E1YTNiODsgZGlzcGxheTogaW5saW5lLWZsZXg7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLnB1bHNlLWFuYS1zdGF0ZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTEuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjZWNlYWZkO1xuICAgIGNvbG9yOiAjNWI0NWI1O1xufVxuLnB1bHNlLWFuYS1zdGF0ZS0tcnVubmluZyAgeyBiYWNrZ3JvdW5kOiAjZTNmM2VlOyBjb2xvcjogIzFkNmY1NzsgfVxuLnB1bHNlLWFuYS1zdGF0ZS0tY2xvc2VkICAgeyBiYWNrZ3JvdW5kOiAjZTZlZmZmOyBjb2xvcjogIzJmNWZiODsgfVxuLnB1bHNlLWFuYS1zdGF0ZS0tYXJjaGl2ZWQgeyBiYWNrZ3JvdW5kOiAjZWZlZWY1OyBjb2xvcjogIzZiNjg4NDsgfVxuXG4vKiBEZSBmb2N1c2xpanN0OiB2cmFhZ3JpamVuIG1ldCBlZW4gc2NvcmViYWxrIGVuIGRlIE5vdmEta25vcCBlcm5hYXN0LiAqL1xuLnB1bHNlLWFuYS1xIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZWZmNztcbn1cbi5wdWxzZS1hbmEtcTpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogMDsgfVxuLnB1bHNlLWFuYS1xLW1haW4geyBmbGV4OiAxIDEgYXV0bzsgbWluLXdpZHRoOiAwOyB9XG4ucHVsc2UtYW5hLXEtaGVhZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgZ2FwOiAxMHB4OyBmbGV4LXdyYXA6IHdyYXA7IH1cbi5wdWxzZS1hbmEtcS10aXRsZSB7IGZvbnQtc2l6ZTogMTMuNXB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogIzNhMzg1NDsgfVxuLnB1bHNlLWFuYS1xLXBjdCB7IGZvbnQtc2l6ZTogMTIuNXB4OyBmb250LXdlaWdodDogNjAwOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4ucHVsc2UtYW5hLXEtcGN0LS1sYWFnICAgeyBjb2xvcjogI2IyM2EyZjsgfVxuLnB1bHNlLWFuYS1xLXBjdC0tbWlkZGVsIHsgY29sb3I6ICNhMjZhMDA7IH1cbi5wdWxzZS1hbmEtcS1wY3QtLWhvb2cgICB7IGNvbG9yOiAjMWQ2ZjU3OyB9XG4ucHVsc2UtYW5hLXEtbWV0YSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbiAgICBtYXJnaW46IDJweCAwIDZweDtcbn1cbi5wdWxzZS1hbmEtcS1tZXRhIC5wdWxzZS1hbmEtY2FtcC1saW5rIHsgZm9udC13ZWlnaHQ6IDUwMDsgfVxuLnB1bHNlLWFuYS1maWxsLS1sYWFnICAgeyBiYWNrZ3JvdW5kOiAjZDk2YTVmOyB9XG4ucHVsc2UtYW5hLWZpbGwtLW1pZGRlbCB7IGJhY2tncm91bmQ6ICNlMGE1M2Y7IH1cbi5wdWxzZS1hbmEtZmlsbC0taG9vZyAgIHsgYmFja2dyb3VuZDogIzFkOWU3NTsgfVxuLnB1bHNlLWFuYS1xLW5vdmEgeyBmbGV4OiAwIDAgYXV0bzsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qIEVmZmVjdCB2YW4gZGUgc3BlbGVsZW1lbnRlbjogdHdlZSBibG9ra2VuIG5hYXN0IGVsa2Fhci4gKi9cbi5wdWxzZS1hbmEtZ2FtIHsgZGlzcGxheTogZmxleDsgZ2FwOiAxNHB4OyBmbGV4LXdyYXA6IHdyYXA7IH1cbi5wdWxzZS1hbmEtZ2FtLWJsb2NrIHtcbiAgICBmbGV4OiAxIDEgMjAwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xuICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjdmN2ZjO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG4ucHVsc2UtYW5hLWdhbS1sYWJlbCB7IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpOyB9XG4ucHVsc2UtYW5hLWdhbS12YWx1ZSB7IGZvbnQtc2l6ZTogMjRweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlLCAjMzk0MjkwKTsgfVxuLnB1bHNlLWFuYS1nYW0tc3ViICAgeyBmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTsgfVxuXG4vKiBBZmRydWtrZW46IGRlIGJlZGllbmluZyB2ZXJkd2lqbnQsIGRlIGNpamZlcnMgYmxpanZlbi4gKi9cbkBtZWRpYSBwcmludCB7XG4gICAgLnB1bHNlLWFuYS10b29sYmFyLFxuICAgICNwdWxzZS1hbmEtbG9hZGluZyxcbiAgICAjcHVsc2UtYW5hLWVycm9yLFxuICAgIC5wdWxzZS1hbmEtcS1ub3ZhIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgLnB1bHNlLWFuYS1wYW5lbCB7IGJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbn1cblxuLyogQmVyZWlrIHBlciBsb2NhdGllL2FmZGVsaW5nIOKAlCBkZSB1aXRrbGFwYmFyZSBib29tICgyMDI2LTA4LTEyKTogbG9jYXRpZXJpamVuXG4gICB6aWpuIGtsaWtiYWFyIGVuIHRvbmVuIGRlIGFmZGVsaW5nZW4gZXJvbmRlciBpbmdlc3Byb25nZW4uICovXG4ucHVsc2UtYW5hLXVuaXQtZ3JvZXAgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDEwcHg7IH1cbi5wdWxzZS1hbmEtdW5pdC0ta2xpa2JhYXIgeyBjdXJzb3I6IHBvaW50ZXI7IGJvcmRlci1yYWRpdXM6IDhweDsgfVxuLnB1bHNlLWFuYS11bml0LS1rbGlrYmFhcjpob3ZlciB7IGJhY2tncm91bmQ6ICNmN2Y3ZmM7IH1cbi5wdWxzZS1hbmEtdW5pdC0ta2xpa2JhYXIgLnB1bHNlLXN0YXRzLWJhci1uYW1lIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNHB4OyB9XG4ucHVsc2UtYW5hLXVuaXQtY2hldnJvbiB7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlOyBmbGV4LXNocmluazogMDsgY29sb3I6ICM2YjY4ODQ7IH1cbi5wdWxzZS1hbmEtdW5pdC0ta2xpa2JhYXIuaXMtb3BlbiAucHVsc2UtYW5hLXVuaXQtY2hldnJvbiB7IHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuLnB1bHNlLWFuYS11bml0LWNvdW50IHsgZm9udC13ZWlnaHQ6IDQwMDsgY29sb3I6IHZhcigtLWMtZ3JleS01MDAsICM2YjY4ODQpOyBmb250LXNpemU6IDEycHg7IH1cbi5wdWxzZS1hbmEtdW5pdC1raW5kZXJlbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW46IDAgMCA0cHggMjJweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjZTVlM2YwO1xufVxuLnB1bHNlLWFuYS11bml0LWtpbmRlcmVuW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2UtYW5hLXVuaXQtLWNoaWxkIC5wdWxzZS1zdGF0cy1iYXItbmFtZSB7IGZvbnQtd2VpZ2h0OiA1MDA7IGZvbnQtc2l6ZTogMTIuNXB4OyB9XG5cbi8qIC0tLSBEYWctcGlsbC1wb3BvdmVyIChCT0FSRC1wdWxzZS1vcG1hYWstd2l6YXJkLCBrYWFydCA5IHB1bnQgNSkgLS0tLS0tLS0gKi9cbi8qIEhlcmdlYnJ1aWt0IGRlIGJlc3RhYW5kZSAucHVsc2Utc20tZGF5IC8gLnB1bHNlLXBhY2UqIC8gLnB1bHNlLXNtLWZpZWxkXG4gICBvcGJvdXcgdmFuIHBhY2luZ0ZpZWxkc0h0bWwoKSAoemllIGhpZXJib3ZlbikgaW4gZWVuIHNtYWxsZSBxZG5hcHJvLXBvcG92ZXJcbiAgIGluIHBsYWF0cyB2YW4gaW4gZGUgYnJlZGUgc3RhcC1tb2RhbC4gQWxsZWVuIGRlIGJ1aXRlbnN0ZSBrYWFydCBlbiBkZVxuICAgb3BzbGFhbi9hbm51bGVyZW4ta25vcHBlbiB6aWpuIG5pZXV3OyBkZSB2ZWxkZW4gemVsZiBsZXVuZW4gb3AgZGUgc3R5bGVzXG4gICBkaWUgZXIgYWwgc3RhYW4uICovXG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1wdWxzZS1kYXktcG9wXSB7XG4gICAgd2lkdGg6IG1pbig5MnZ3LCAzMDBweCk7XG4gICAgcGFkZGluZzogMTZweCAxNnB4IDE0cHg7XG59XG4ucHVsc2UtZGF5cG9wIHsgZGlzcGxheTogYmxvY2s7IH1cbi5wdWxzZS1kYXlwb3AtZXJyb3Ige1xuICAgIG1hcmdpbjogMTBweCAwIDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7XG59XG4ucHVsc2UtZGF5cG9wLWVycm9yW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4ucHVsc2UtZGF5cG9wLWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xufVxuXG4vKiAtLS0gQWZiZWVsZGluZy1wb3BvdmVyIGJpaiBkZSBtaW5pYXR1dXIgKGthYXJ0IDI4KSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBEZSBzdGFwcGVucmlqIHRvb250IHNpbmRzIGthYXJ0IDI4IGFsdGlqZCBoZXQgZ2VhbmltZWVyZGUgc3RhcHR5cGUtaWNvb247XG4gICB3YXQgZXIgYWFuIGRlIHN0YXAgSEFOR1Qgc3RhYXQgaGllciwgb3AgZWVuIGZvcm1hYXQgd2Fhcm9wIGplIGhldCBoZXJrZW50LlxuICAgWmllIGluaXRTdGVwSW1hZ2VQb3BvdmVyKCkgaW4gZGV0YWlsLmh0bWwuXG5cbiAgIFR3ZWUgbWF0ZW4gaW4gZGV6ZWxmZGUgcG9wb3Zlci1pbnN0YW50aWUsIGdlc2NoYWtlbGQgbWV0IFtkYXRhLWVtcHR5XSBvcCBkZVxuICAgaG9zdDogZWVuIGJlZWxka2FhcnRqZSwgb2Ygw6nDqW4gcmVnZWwgdGVrc3QuIEVlbiBkYXRhLWF0dHJpYnV1dCBlbiBnZWVuXG4gICBrbGFzc2UsIHdhbnQgcWRuYXByby1wb3BvdmVyIGhlcnNjaHJpamZ0IHppam4gZWlnZW4gY2xhc3NOYW1lIGJpaiBlbGtlXG4gICByZW5kZXIgKHFkbmEtcG9wb3ZlcnMtc2tpbGwsIHZhbGt1aWwgNCkuXG5cbiAgIHBvaW50ZXItZXZlbnRzOiBub25lIOKAlCBlciBzdGFhdCBuaWV0cyBrbGlrYmFhcnMgaW4sIGVuIHpvbmRlciBkaXQga2FuIGRlXG4gICBwb3BvdmVyIG9uZGVyIGRlIGN1cnNvciB0ZXJlY2h0a29tZW46IGRhdCBnZWVmdCBlZW4gbW91c2VvdXQgb3AgZGVcbiAgIG1pbmlhdHV1ciwgZGllIHNsdWl0IGhlbSwgd2Fhcm5hIGRlIG1vdXNlb3ZlciBoZW0gaGVyb3BlbnQuIEVlbiBmbGlra2VybHVzLlxuICAgRGUgc2x1aXQtYmlqLWtsaWstZXJuYWFzdCB2YW4gaGV0IGNvbXBvbmVudCBibGlqZnQgZ2V3b29uIHdlcmtlbjogZGllIGtpamt0XG4gICBuYWFyIHdhYXIgZGUga2xpayBMQU5EVCwgZW4gZGF0IGlzIGRhbmt6aWogZGV6ZSByZWdlbCBub29pdCBkZSBwb3BvdmVyLiAqL1xuLyogMzAwcHggKDI4LjA4LjIwMjYpOiBkZSBrYWFydHRla3N0IHZhbiBxZG5hcHJvLXB1bHNlLWNhbnZhcyBpcyBpbiBjcXdcbiAgIGdlaWprdCBvcCBlZW4ga2FhcnQgdmFuIDMwMHB4IGJyZWVkICh6aWUgZGUga29wIHZhbiBxZG5hLXB1bHNlLWNhbnZhcy5qcyksXG4gICBkdXMgb3AgZGV6ZSBicmVlZHRlIGxlZXN0IGhldCBrYWFydGplIGhpZXIgaW4gZGV6ZWxmZGUgdmVyaG91ZGluZ2VuIGFscyBpblxuICAgZGUgd2l6YXJkLiBXYXMgMjQ4cHgsIHVpdCBkZSB0aWpkIGRhdCBoaWVyIGFsbGVlbiBlZW4gdWl0c25lZGUgc3RvbmQuICovXG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1wdWxzZS1pbWctcG9wXSB7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIHBhZGRpbmc6IDEycHg7XG59XG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1wdWxzZS1pbWctcG9wXVtkYXRhLWVtcHR5XSB7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbn1cbi8qIERlIGtsYXNzZSBNT0VUIGVyYmlqOiBfcG9wb3Zlci5zY3NzIHpldCBgcG9pbnRlci1ldmVudHM6IGF1dG9gIG9wXG4gICBgLnFkbmFwcm8tcG9wb3Zlci5pcy1vcGVuYCAoMCwyLDApIGVuIGRhdCB3aW50IHZhbiBlZW4gc2VsZWN0b3IgbWV0IGFsbGVlblxuICAgaGV0IGVsZW1lbnQgcGx1cyBlZW4gYXR0cmlidXV0ICgwLDEsMSkuIEdlbWV0ZW4gaW4gZWVuIGhhcm5hcyBtZXQgZGUgZWNodGVcbiAgIHN0eWxlLXYxLmNzcyDigJQgem9uZGVyIGRlemUgcmVnZWwgYmxlZWYgZGUgcG9wb3ZlciBnZXdvb24gbXVpc2dldm9lbGlnIGVuXG4gICB3YXMgZGUgZmxpa2tlcmx1cyBoaWVyYm92ZW4gbmlldCBvcGdlbG9zdCBtYWFyIGFsbGVlbiBvcGdlc2NocmV2ZW4uICovXG4ucWRuYXByby1wb3BvdmVyW2RhdGEtcHVsc2UtaW1nLXBvcF0geyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ucHVsc2UtaW1ncG9wIHsgZGlzcGxheTogYmxvY2s7IH1cblxuLyogMTY6MTAg4oCUIGRlIHZlcmhvdWRpbmcgd2Fhcm9wIGVlbiBzdGFwZm90byBiaWogaGV0IHVwbG9hZGVuIHdvcmR0XG4gICBiaWpnZXNuZWRlbiAoUFVMU0VfUEhPVE9fQ1JPUF9SQVRJTyBpbiBkZXRhaWwuaHRtbCkgZW4gd2Fhcm9wIGRlIGthYXJ0IGluIGRlXG4gICBhcHAgc3RhYXQgKC5wdC1iZyBpbiAwMy1zdHlsZS5jc3MpLiBXYXMgMzo0IG1ldCBhbHMgcmVkZW4gXCJkZSB2ZXJob3VkaW5nIHZhblxuICAgZGUga2FhcnQgaW4gZGUgYXBwXCI7IGRhdCB3YXMgbmlldCBuYWdlbWV0ZW4gZW4ga2xvcHRlIG5pZXQsIGVuIGVsa2UgbGlnZ2VuZGVcbiAgIHN0YXBmb3RvIHN0b25kIGhpZXIgZHVzIG1ldCBncmlqemUgYmFuZGVuIGJvdmVuIGVuIG9uZGVyIGluIGVlbiBzdGFhbmRcbiAgIGthYXJ0amUgKEtpbSwgMjguMDguMjAyNikuICovXG4ucHVsc2UtaW1ncG9wLWZyYW1lIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYXNwZWN0LXJhdGlvOiAxNiAvIDEwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktNTAsICNmMmYyZjUpO1xufVxuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIC5wdWxzZS1pbWdwb3AtZnJhbWUgeyBiYWNrZ3JvdW5kOiAjMmEyZDU1OyB9XG5cbi8qIGBjb250YWluYCwgd2FudCBkaXQgZnJhbWUgdG9vbnQgc2luZHMgMjguMDguMjAyNiBhbGxlZW4gbm9nIGRlIGZvdG8gdmFuXG4gICBLbGFzc2llayAvIFZyaWogdm9ybWdldmVuLCBlbiBkaWUgaXMgSU5IT1VEOiBoaWogaG9vcnQgaGVsZW1hYWwgaW4gYmVlbGQuXG4gICBWb29yIGVsa2UgZm90byB2YW4gbmEgZGUgY3JvcC1yZWdlbCBpcyBkYXQgaGV0emVsZmRlIGFscyB2dWxsZW5kOyBlZW4gb3VkZXJlXG4gICBmb3RvIG1ldCBlZW4gYW5kZXJlIHZlcmhvdWRpbmcgYmxpamZ0IHpvIHRlbm1pbnN0ZSBoZWVsLiBEZSBhY2h0ZXJncm9uZCB2YW5cbiAgIFwidGVrc3Qgb3AgYWNodGVyZ3JvbmRcIiBrb210IG5pZXQgbWVlciBkb29yIGRpdCBmcmFtZSBtYWFyIGRvb3JcbiAgIC5wdWxzZS1pbWdwb3AtY2FudmFzIGhpZXJvbmRlci4gKi9cbi5wdWxzZS1pbWdwb3AtZnJhbWUgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogXCJUZWtzdCBvcCBhY2h0ZXJncm9uZFwiOiBkZSBFQ0hURSBrYWFydCwgbWV0IGRlemVsZmRlIHFkbmFwcm8tcHVsc2UtY2FudmFzIGFsc1xuICAgZGUgd2l6YXJkICgucHVsc2Utd2l6LWJnLWNhbnZhcy13cmFwKSBlbiBoZXQgZGVlbG5lbWVyLXZvb3JiZWVsZFxuICAgKC5wdWxzZS1wcmV2aWV3LWJnLWNhbnZhcy13cmFwKS4gQmV3dXN0IEdFRU4gZWlnZW4gYXNwZWN0LXJhdGlvIGhpZXI6IGhldFxuICAgY29tcG9uZW50IHN0YWF0IHplbGYgb3AgMTY6MTAgZW4gZGF0IGlzIG9vayBkZSBtYWF0IGluIGRlIGFwcCwgZHVzIGRpZVxuICAgb3ZlcnNjaHJpanZlbiB6b3Ugb3BuaWV1dyBlZW4gZGVyZGUgdmVyaG91ZGluZyBpbnRyb2R1Y2VyZW4uIEFsbGVlbiBkZVxuICAga2FhcnRyYW5kIGlldHMga2xlaW5lciwgd2FudCBkaXQga2FhcnRqZSBpcyAyNzZweCBicmVlZCBlbiBnZWVuIGhhbHZlIHBhZ2luYS5cbiAgIChEZSB3aXphcmQgZW4gaGV0IHZvb3JiZWVsZCBzdG9uZGVuIHRvdCAyOC4wOC4yMDI2IG9wIDE2OjkgdGVyd2lqbCBkZSBhcHBcbiAgIDE2OjEwIGlzOyBzaW5kc2RpZW4gc3RhYW4gYWxsZSB2aWVyIGRlIGZyYW1lcyBvcCAxNjoxMCwgZHVzIG9udHdlcnBlbixcbiAgIG5ha2lqa2VuIGVuIGtyaWpnZW4gZ2ViZXVydCBlaW5kZWxpamsgb3AgaGV0emVsZmRlIHZsYWsuKSAqL1xuLnB1bHNlLWltZ3BvcC1jYW52YXMgcWRuYXByby1wdWxzZS1jYW52YXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8qIDI4LjA4LjIwMjY6IGRlIHJvbmRpbmcgaXMgaGllciBvb2sgd2VnLiBEaXQgd2FzIGRlIHZpZXJkZSBlbiBsYWF0c3RlIHBsZWtcbiAgICAgICBkaWUgZGUga2FhcnQgbm9nIHJvbmQgdGVrZW5kZTsgZGUga2FhcnQgaXMgc2luZHMgYmVzbHVpdCA4IG92ZXJhbCByZWNodCxcbiAgICAgICBlbiBqdWlzdCBoZXQgdmVyc2NoaWwgdHVzc2VuIGRlIHBsZWtrZW4gd2FzIGRlIGtsYWNodC4gKi9cbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIExlZ2Ugc3RhYXQ6IGtsZWluIGhvdWRlbi4gRGl0IGlzIGVlbiBob3Zlci1rYWFydGplLCBnZWVuIGxlZ2Ugc3RhYXQgdmFuIGVlblxuICAgcGFnaW5hIOKAlCBlZW4gaWxsdXN0cmF0aWUgdmFuIDI0MHB4IG1hYWt0IGVlbiB2bHVjaHRpZ2UgbXVpc2Jld2VnaW5nIHp3YWFyZGVyXG4gICBkYW4gd2F0IGhpaiBvcGxldmVydCAoYmVzbHVpdCBELCBLaW0gMjUuMDguMjAyNikuICovXG4ucHVsc2UtaW1ncG9wLS1lbXB0eSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyZXktNTAwLCAjNmI2ODg0KTtcbn1cbi5wdWxzZS1pbWdwb3AtZW1wdHktdGV4dCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEthYXJ0IDcgKEJPQVJELXB1bHNlLWdlc3ByZWtrZW4sIHJlcGFyYXRpZSAwMS4wOS4yMDI2KTogemV2ZW5cbiAgIGtsYXNzZW4gZGllIGthYXJ0IDQgaW4gZGUgbWFya3VwIGdlYnJ1aWt0IG1hYXIga2FhcnQgNSBuaWV0XG4gICBoZWVmdCBnZXN0eWxlZCDigJQgbmFhbWRyaWZ0IHR1c3NlbiB0d2VlIHBhcmFsbGVsbGUga2FhcnRlbi5cbiAgIFdhYXJkZW4gZ2VzcGllZ2VsZCBhYW4gZGUgYmVzdGFhbmRlIHB1bHNlLW1vZC10ZWdlbmhhbmdlcnNcbiAgIGhpZXJib3Zlbiwgem9kYXQgaGV0IGJlZWxkIG5pZXQgdmVyYW5kZXJ0IHBlciBicm9uLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIEdyaWQta2luZCBpbiBkZSBzdGFwLXJpajogem9uZGVyIG1pbi13aWR0aCB3ZWlnZXJ0IGRlIGtvbG9tXG4gICBzbWFsbGVyIHRlIHdvcmRlbiBkYW4gemlqbiBpbmhvdWQgZW4gbG9vcHQgZWVuIGxhbmdlIHRpdGVsXG4gICBvdmVyIGRlIG5pZXV3LWJhZGdlIGhlZW4gKHplbGZkZSBsZXMgYWxzIC5wY3MtY29tbWVudF9faGVhZCkuICovXG4ucGdzLXN0ZXAtbWFpbiB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbn1cblxuLyogVmVyd2lqZGVyZC1yZWdlbCBvbmRlciBlZW4gd2VnZ2Vtb2RlcmVlcmRlIHJlYWN0aWUg4oCUIGRlXG4gICBiZWhlZXItbGFhZyBib3Zlbm9wIGRlIFBXQS1jaGF0OyBzcGllZ2VsdCAucHVsc2UtbW9kLWMtZ29uZS4gKi9cbi5wY3MtY29tbWVudF9fZ29uZSB7XG4gICAgbWFyZ2luOiA2cHggMCAwO1xuICAgIGZvbnQtc2l6ZTogMTEuNXB4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM4YTg3YTApO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA2cHg7XG59XG5cbi8qIEhldCBvcGdlc2xhZ2VuLXZpbmtqZSBiaWogaGV0IG1lbGRpbmdlbi1zZWdtZW50IOKAlCBzcGllZ2VsdFxuICAgLnB1bHNlLW1vZC1zYXZlZC4gKi9cbi5wZ3Mtbm90aWZ5LXNhdmVkIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICMxZDllNzU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycyBlYXNlO1xufVxuLnBncy1ub3RpZnktc2F2ZWRbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTGVnZSBlbiBmb3V0LXN0YXRlbjogemVsZmRlIHRvb24gYWxzIC5wZ3MtZW1wdHkgaGllcmJvdmVuLiAqL1xuLnBncy1saXN0LWVtcHR5LFxuLnBncy10aHJlYWQtZW1wdHkge1xuICAgIG1hcmdpbjogOHB4IDZweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZlNzI4MCk7XG59XG4ucGdzLWRldGFpbC1lbXB0eSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDQwcHggMjRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xufVxuLnBncy10aHJlYWQtZXJyb3Ige1xuICAgIG1hcmdpbjogOHB4IDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiB2YXIoLS1jLXNpZ25hbC1yZWQtdGV4dCwgI2M2NWE1YSk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEdlc3ByZWtrZW4tYmVoZWVycGFnaW5hLCBmYXNlIDI6IHN0aWNrZXIvZ2lmLWtpZXplciBpbiBkZSBjb21wb3NlclxuLy8gKEJPQVJELXB1bHNlLWdlc3ByZWtrZW4sIGthYXJ0IDEyKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLyogS2FhcnQgNSBoaWVyYm92ZW4gcG9ydHRlIGJld3VzdCBOSUVUIC5wY3MtcGljay8ucGNzLXBpY2tfXyosIC5wY3MtZXJyb3IsXG4gICAucGNzLXBsdXMtbWVudSBlbiBxZG5hcHJvLXBvcG92ZXJbZGF0YS1wdWxzZS1wbHVzLXNoZWV0XSDigJQgZGllIGhvb3JkZW4gYmlqXG4gICBmYXNlIDIgKGthYXJ0IDEwLzExKSwgZGllIHRvZW4gbm9nIG5pZXQgZ2Vib3V3ZCB3YXMgKHppZSBrYWFydCA1J3MgZWlnZW5cbiAgIFwiQkVXVVNUIE5JRVQgbWVlZ2Vub21lblwiLWxpanN0IGhpZXJib3ZlbikuIERlemUgc2VjdGllIHBvcnQgemUgYWxzbm9nLCAxOjFcbiAgIHVpdCBkZXplbGZkZSBicm9uIChhcHBfYXBpX3FkbmF2Mi9zcmMvUkVYL1Jlc291cmNlcy9TY3NzL19wd2EtY3VycmVudC5zY3NzLFxuICAgcmVnZWxzIH40OTE0LTQ5MzEgZW4gfjUwODMtNTE0NiksIG1ldCBkZXplbGZkZSB0b2tlbnZlcnRhbGluZyBhbHMga2FhcnQgNTpcbiAgIHZhcigtLWMtdGV4dCwgI2hleCkg4oaSIHZhcigtLWMtdGV4dC1ib2R5LCAjaGV4KSAoa29tdCBpbiBkaXQgc3R1ayBuaWV0IHZvb3IpLFxuICAgaGV0IGFjdGllLWJsYXV3IHZhcigtLWMtYWN0aW9uLTUwMCwgIzQ2NTJmMykgYmxpamZ0IE9OVkVSVEFBTEQsIGVuXG4gICBoZXgtdGVydWd2YWxsZW4gYmxpanZlbiBvdmVyYWwgc3RhYW4uXG5cbiAgIEdlY29udHJvbGVlcmQgdsOzw7NyIGhldCBwb3J0ZW4gKGdlZW4gZHViYmVsZSBkZWZpbml0aWVzKToga2FhcnQgNSBoYWRcbiAgIC5wY3MtbGVmdCwgLnBjcy1mb3JtLS10eXB0LCAucGNzLWVtb2ppLXJvd1toaWRkZW5dIGVuIGRlXG4gICAuaW5wdXQtYWN0aW9uLWJ0bi8tMi12ZXJ2YWdpbmcgQUwgVk9MTEVESUcgZ2Vwb3J0LCBpbmNsdXNpZWYgZGVcbiAgIHByZWZlcnMtcmVkdWNlZC1tb3Rpb24tcmVnZWwgKHppZSBoaWVyYm92ZW4sIHJvbmQgLnBjcy1lbW9qaS1yb3cvLnBjcy1mb3JtKS5cbiAgIERpZSBzdGFhbiBoaWVyIGR1cyBOSUVUIG5vZyBlZW4ga2Vlci5cblxuICAgQkVWSU5ESU5HLCBuYWdlem9jaHQgZW4gbmlldCBhYW5nZW5vbWVuOiBkZSBcImtpZXplci1ncmlkXCIgdWl0IGRlXG4gICBrYWFydGJyaWVmICh6b2VrdmVsZC9jYXRlZ29yaWXDq24vdGh1bWJuYWlscyBvbSBlZW4gc3RpY2tlciBvZiBnaWYgdGVcbiAgIEtJRVpFTikgYmVzdGFhdCBuaWV0IGFscyBsb3MgLnBjcy0qLWJsb2sgaW4gX3B3YS1jdXJyZW50LnNjc3Mgb20gdGVcbiAgIHBvcnRlbi4gRGUgYXBwIHJlbmRlcnQgZGllIGtpZXplciBtZXQgZGUgd2ViY29tcG9uZW50c1xuICAgPHFkbmFwcm8tc3RpY2tlci1zaGVldD4gZW4gPHFkbmFwcm8tZ2lmLXNoZWV0PiAoemllIDE2LXB1bHNlLmpzOlxuICAgYF9wdWxzZVN0aWNrZXJTaGVldGAvYF9wdWxzZUdpZlNoZWV0YCksIGRpZSBodW4gRUlHRU4gQ1NTIG1lZWJyZW5nZW5cbiAgIChhcHBfYXBpX3FkbmF2Mi8uLi4vQ3NzL2NvbXBvbmVudHMtdjIvcWRuYS1zdGlja2VyLXNoZWV0LmNzcyBlblxuICAgcWRuYS1naWYtc2hlZXQuY3NzKSDigJQgaGV0emVsZmRlIHBhdHJvb24gYWxzIHFkbmFwcm8tbG90dGllIGVsZGVycyBpbiBkaXRcbiAgIGJlc3RhbmQgKGNvbXBvbmVudC1DU1MgbGFhZHQgTkEgc3R5bGUtdjEuY3NzKS4gQmVpZGUgY29tcG9uZW50ZW4gYmVzdGFhblxuICAgQUwgaW4gZGUgYmFja29mZmljZS1jb21wb25lbnRlbmJpYmxpb3RoZWVrXG4gICAoYmFja29mZmljZTIvd2ViL2pzL2NvbXBvbmVudHMvdjIvc3RpY2tlci1zaGVldC8gZW4gLi4uL2dpZi1zaGVldC8pLCBkdXNcbiAgIGthYXJ0IDExIGthbiB6ZSByZWNodHN0cmVla3MgZ2VicnVpa2VuIOKAlCBlciB6aWpuIGhpZXIgZ2VlbiBuaWV1d2VcbiAgIC5wY3MtcGljayotZ3JpZC1rbGFzc2VuIG5vZGlnIG9mIGJlZGFjaHQuIFdhdCAucGNzLXBpY2sqIFfDiUwgaXMgKGJldmVzdGlnZFxuICAgaW4gZGUgYnJvbik6IGRlIENPTkNFUFRTVFJJUCBkaWUgdG9vbnQgd2F0IGVyIGtsYWFyc3RhYXQgb20gdGUgdmVyc3R1cmVuXG4gICAoc3RpY2tlciBvZiBnaWYpLCBuaWV0IGRlIGtpZXplciB6ZWxmLiBHZW1lbGQgaS5wLnYuIHplbGYgaWV0cyB2ZXJ6b25uZW4uICovXG5cbi8vIC0tLSAucGNzLXBsdXMtbWVudSArIHBvcG92ZXItYnJlZWR0ZSAoaGV0ICstbWVudSB2b29yIHN0aWNrZXIvZ2lmKSAtLS0tLS0tLVxuLyogRGUgdHdlZSB0ZWdlbHMgKHN0aWNrZXIvZ2lmKSBpbiBoZXQgKy1tZW51LiBEZSBzY2hpbCBsZXZlcnQgemVsZiBhbFxuICAgcGFkZGluZyBlbiBlZW4gYWZnZXJvbmRlIGthYXJ0OyBkaXQgaXMgYWxsZWVuIGRlIHJpaiBkaWUgZGUgdHdlZSB0ZWdlbHNcbiAgIHZhc3Rob3VkdC4gSGllciBpcyBkZSBwb3BvdmVyIGRlIFBSSU1BSVJFIGVuIGVuaWdlIHZvcm0gKGRpdCBwYW5lZWwgaXNcbiAgIGRlc2t0b3Atb25seSkg4oCUIGRlIGJvdHRvbS1zaGVldC12YXJpYW50IHVpdCBkZSBQV0EtYnJvbiAodGVsZWZvb24pIGlzIE5JRVRcbiAgIGdlcG9ydC4gKi9cbi5wY3MtcGx1cy1tZW51IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiA4cHggNHB4IDRweDtcbn1cbi8qIERlIHN0YW5kYWFyZC1wb3BvdmVyIGlzIGVlbiAyODBweCBtZW51LWFjaHRpZ2UgZG9vcyAoemllIGRlIHFkbmEtcG9wb3ZlcnNcbiAgIHNraWxsLCBwdW50IDEpIOKAlCB0ZSBzbWFsIGVuIHRlIGtyYXAgZ2VwYWQgdm9vciB0d2VlIGdyaWQtdGVnZWxzLiBIaWVyXG4gICB2ZXJicmVlZCBlbiBoZXJwYWQuICovXG5xZG5hcHJvLXBvcG92ZXJbZGF0YS1wdWxzZS1wbHVzLXNoZWV0XSB7XG4gICAgd2lkdGg6IG1pbig5MnZ3LCAyODBweCk7XG4gICAgcGFkZGluZzogMTJweDtcbn1cblxuLy8gLS0tIC5wY3MtcGljayogKHN0aWNrZXIvZ2lmLWNvbmNlcHRzdHJpcCBpbiBkZSBjb21wb3NlcikgLS0tLS0tLS0tLS0tLS0tLS0tXG4vKiBEZSBzdGlja2VyIG9mIGdpZiBkaWUga2xhYXJzdGFhdCwgYm92ZW4gZGUgZW1vamktcmlqOiBoZXQgYmVlbGQgemVsZiwgZWVuXG4gICBsYWJlbCAoYnYuIFwiU3RpY2tlciB0b2VnZXZvZWdkXCIpIGVuIGVlbiBrcnVpc2plIG9tIGhldCB3ZWcgdGUgaGFsZW4uXG5cbiAgIERlIGtleWxpbmUgZXJib3ZlbiBsb29wdCBvdmVyIGRlIHZvbGxlIGJyZWVkdGUsIHplbGZkZSByZWRlbiBhbHMgYmlqXG4gICAucGNzLWVkaXRzdHJpcCBoaWVyYm92ZW4gKGthYXJ0IDUpOiBkZSBzdHJlZXAgaGFrdCBoZXQgc2NoZXJtIGluIHR3ZWXDq24sXG4gICBlcmJvdmVuIGhldCBnZXNwcmVrLCBlcm9uZGVyIHdhdCBqZSBhYW4gaGV0IG1ha2VuIGJlbnQuIFplbGZkZSB2ZXJ0YWxpbmdcbiAgIGFscyBkYWFyOiBkZSBQV0EtYnJvbiByZWtlbnQgZGUgYnJlZWR0ZSB0ZXJ1ZyBtZXQgLS1icy1wYWQteCBvbWRhdCBkZVxuICAgc3RyaXAgZGFhciBpbiBlZW4gYm90dG9tIHNoZWV0IGxlZWZ0OyBoaWVyIGxlZWZ0IGhpaiBpbiBlZW4gcGFuZWVsIHpvbmRlclxuICAgc2hlZXQtemlqcGFkZGluZywgZHVzIGdld29uZSB2b2xsZSBicmVlZHRlIHpvbmRlciBuZWdhdGlldmUgbWFyZ2UgKG5ldCBhbHNcbiAgIC5wY3MtZWRpdHN0cmlwIGhpZXJib3ZlbikuICovXG4ucGNzLXBpY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxMHB4IDRweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG59XG4ucGNzLXBpY2tbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi8qIFplbGZkZSBzYW1lbmdlc3RlbGRlIHNlbGVjdG9yIGFscyAucGNzLWNvbW1lbnRfX3N0aWNrZXIgaGllcmJvdmVuLCBlbiBvbVxuICAgZXhhY3QgZGV6ZWxmZGUgcmVkZW46IHFkbmFwcm8tbG90dGllIHpldCB6aWpuIGVpZ2VuIGRlZmF1bHQgw7PDs2sgdmlhIGVlblxuICAgY2xhc3Mtc2VsZWN0b3IsIGVuIGRpZSBjb21wb25lbnQtQ1NTIHdvcmR0IE5BIHN0eWxlLXYxLmNzcyBhYW4gPGhlYWQ+XG4gICB0b2VnZXZvZWdkLiBCaWogZ2VsaWprZSBzcGVjaWZpY2l0ZWl0IHdpbnQgZGFuIGRlIGxhYXRzdGUgaW4gZGUgYnJvbmNvZGVcbiAgIOKAlCBuaWV0IGRlemUgcmVnZWwuIE1ldCBkZSBzYW1lbmdlc3RlbGRlIHNlbGVjdG9yICgwLTItMCkgd2ludCBkZXplIHJlZ2VsXG4gICBhbHRpamQsIG9uZ2VhY2h0IGxhYWR2b2xnb3JkZSAoemllIF9wd2EtY3VycmVudC5zY3NzIHZvb3IgZGUgbWV0aW5nIGRpZVxuICAgZGl0IHZhc3RzdGVsZGUg4oCUIGRlemVsZmRlIHJhY2UgdHJvZiBkYWFyIG9vayAucGNzLWNvbW1lbnRfX3N0aWNrZXIpLiAqL1xuLnBjcy1waWNrX190aHVtYi5xZG5hcHJvLWxvdHRpZSB7XG4gICAgLS1xbC1zaXplOiA0NHB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xufVxuLyogRGV6ZWxmZGUgNDRweC1kb29zIGFscyBkZSBzdGlja2VyLXRodW1iIGhpZXJib3ZlbiwgbWFhciB2b29yIGVlbiBHSUYg4oCUIGVlblxuICAgZ2V3b29uIDxpbWc+IGluIHBsYWF0cyB2YW4gcWRuYXByby1sb3R0aWUsIGR1cyBoaWVyIGdlZW4gY29tcG9uZW50LXJhY2VcbiAgIChwdXVyIGVpZ2VuIENTUykuIEVlbiBzdGlsc3RhYW5kZSBwb3N0ZXIgKHByZXZpZXdfdXJsKTogZGl0IGlzIG5vZyBlZW5cbiAgIGNvbmNlcHQsIGdlZW4gZ2VwbGFhdHN0ZSByZWFjdGllLiAqL1xuLnBjcy1waWNrX190aHVtYi0tZ2lmIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1ncmV5LTEwMCwgI2U3ZTllYyk7XG59XG4ucGNzLXBpY2tfX3RodW1iLS1naWYgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG59XG4ucGNzLXBpY2tfX2xhYmVsIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG59XG4ucGNzLXBpY2tfX2NsZWFyIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbn1cbi5wY3MtZXJyb3Ige1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogdmFyKC0tYy1zaWduYWwtcmVkLXRleHQsICNjNjVhNWEpO1xufVxuLnBjcy1lcnJvcltoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEthYXJ0IDE2IChCT0FSRC1wdWxzZS1nZXNwcmVra2VuLCBmZWVkYmFjayBLaW0gMDEuMDkuMjAyNik6XG4gICBzdHlsaW5nIHZvb3IgZGUgc3RhcHR5cGUtbG90dGllIGluIGRlIHJpaiwgZGUgc3RhcGZvdG8gaW4gZGVcbiAgIGdlc3ByZWtza29wLCBlbiBkZSBlbW9qaS1yaWogbGlua3MgdWl0Z2VsaWpuZC5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBEZSBiZXdlZ2VuZGUgc3RhcHR5cGUtdGVnZWwgaW4gZGUgc3RhcC1yaWouIFNhbWVuZ2VzdGVsZGUgc2VsZWN0b3JcbiAgICgwLTItMCksIGFuZGVycyB3aW50IHFkbmFwcm8tbG90dGllJ3MgZWlnZW4gNDhweC1zdGFuZGFhcmQgdmFuIGRlemVcbiAgIG1hYXQg4oCUIHplbGZkZSByYWNlIGFscyAucGNzLWNvbW1lbnRfX3N0aWNrZXIgaGllcmJvdmVuLiAqL1xuLnBncy1zdGVwLWFuaW0ucWRuYXByby1sb3R0aWUge1xuICAgIC0tcWwtc2l6ZTogMjRweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogU3RhcGZvdG8gKyB0aXRlbCBuYWFzdCBlbGthYXIgaW4gZGUgZ2VzcHJla3Nrb3AuIERlIG1hcmdlIGRpZSBlZXJzdFxuICAgb3AgZGUgdGl0ZWwgemF0IHZlcmh1aXN0IG5hYXIgZGUgcmlqLCBhbmRlcnMgdmVyZHdpam50IGRlIHJ1aW10ZVxuICAgYm92ZW4gZGUgc3RlbW1pbmctY2hpcHMgem9kcmEgZGUgcmlqIGVyb21oZWVuIGtvbXQuICovXG4ucGdzLXRocmVhZC1oZWFkLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG4ucGdzLXRocmVhZC1oZWFkLXJvdyAucGdzLXRocmVhZC10aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1pbi13aWR0aDogMDtcbn1cbi5wZ3MtdGhyZWFkLWltZyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDU2cHg7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyZXktMTAwLCAjZTdlOWVjKTtcbn1cblxuLyogS2FhcnQgMTctdm9vcmJlcmVpZGluZyAoZmVlZGJhY2sgS2ltLCBzY3JlZW5zaG90IGJhY2tlbmQgbmFhc3QgUFdBKTpcbiAgIGRlIHNuZWxsZSBlbW9qaSBzdGFhbiBMSU5LUyBnZWdyb2VwZWVyZCwgbmlldCB1aXRnZXNtZWVyZCBvdmVyIGRlXG4gICB2b2xsZSBicmVlZHRlLiBCZXd1c3RlIGJhY2tlbmQtYWZ3aWpraW5nIHZhbiBkZSBnZXBvcnRlIFBXQS1yZWdlbFxuICAgKHNwYWNlLWJldHdlZW4gaGllcmJvdmVuLCBrYWFydCA1KTogb3AgZWVuIGJyZWRlIGRlc2t0b3AtY29tcG9zZXJcbiAgIGRyZXZlbiBkZSBhY2h0IGtub3BwZW4gdGUgdmVyIHVpdCBlbGthYXIuIERlemUgcmVnZWwgc3RhYXQgbGF0ZXIgaW5cbiAgIGhldCBiZXN0YW5kIGVuIHdpbnQgZHVzIG9wIHZvbGdvcmRlLiAqL1xuLnBjcy1lbW9qaS1yb3cge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBnYXA6IDhweDtcbn1cblxuLyogS2FhcnQgMjIgKEJPQVJELXB1bHNlLWdlc3ByZWtrZW4pOiBkZSBcIk1lZXN0IGdld2FhcmRlZXJkXCItY2hpcCBpbiBkZVxuICAgZ2VzcHJla3Nrb3AgaXMgZWVuIEtOT1AgKHNwcmluZ3QgbmFhciBkZSByZWFjdGllKSwgZHVzIGJ1dHRvbi1yZXNldFxuICAgYm92ZW5vcCBkZSBnZXdvbmUgLnBncy1jaGlwLXZvcm0sIG1ldCBlZW4gaG92ZXIgZGllIHZlcnRlbHQgZGF0IGhpalxuICAga2xpa2JhYXIgaXMuIFRla3N0IGthcHQgYWY6IGRlIHNuaXBwZXQgbWFnIGRlIGtvcCBuaWV0IG9wcmVra2VuLiAqL1xuLnBncy1jaGlwLS10b3Age1xuICAgIGJvcmRlcjogMDtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogMTIuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1heC13aWR0aDogMzYwcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1wdXJwbGUtYmcsICNlYmU5ZmIpO1xuICAgIGNvbG9yOiB2YXIoLS1jLWNoaXAtcHVycGxlLXRleHQsICM0MTNiNWUpO1xufVxuLnBncy1jaGlwLS10b3A6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtY2hpcC1wdXJwbGUtaG92ZXIsICNkOGQyZjcpO1xufVxuLnBncy1jaGlwLS10b3A6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzLXJpbmcsICM0MDQ5OWEpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgS2FhcnQgMjUgKEJPQVJELXB1bHNlLWdlc3ByZWtrZW4sIGZhc2UgRywgS2ltIDAyLjA5LjIwMjYpOlxuICAgc3VidGllbGUgZmVlZGJhY2stYW5pbWF0aWVzIG9wIGRlIGdlc3ByZWtrZW4tcGFnaW5hLiBBbGxlcyBzdGFhdFxuICAgT05ERVIgcHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSDigJQgd2llIGdlZW4gYmV3ZWdpbmcgd2lsXG4gICBrcmlqZ3QgZXhhY3QgZGUgaGFyZGUgb21zbGFnZW4gdmFuIHZvb3JoZWVuLiBLbGFzc2VuY29udHJhY3QgbWV0IGRlXG4gICB2aWV3IChrYWFydCAyNCk6IC5pcy1zd2l0Y2hpbmcsIC5wZ3MtZW50ZXIgKCsgLS1wZ3MtaSksIC5wZ3MtZW50ZXItLWxpdmUsXG4gICAuaXMtbGVhdmluZywgLmlzLWZpbHRlcmluZy5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gICAgLyogNC4gR2VzZWxlY3RlZXJkZSByaWo6IHphY2h0ZSBvbXNsYWcgaS5wLnYuIGhhcmQuICovXG4gICAgLnBncy1zdGVwcm93IHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxNTBtcyBlYXNlLCBib3JkZXItY29sb3IgMTUwbXMgZWFzZSwgYm94LXNoYWRvdyAxNTBtcyBlYXNlO1xuICAgIH1cblxuICAgIC8qIDEuIFN0YXAgd2lzc2VsZW46IGtvcCBlbiBnZXNwcmVrIGtydWlzdmVydmFnZW4uIERlIHZpZXcgemV0XG4gICAgICAgLmlzLXN3aXRjaGluZywgd2FjaHQgfjEyMG1zLCB0ZWtlbnQgb3BuaWV1dyBlbiBoYWFsdCBoZW0gd2VnLiAqL1xuICAgIC5wZ3MtdGhyZWFkLFxuICAgIC5wZ3MtdGhyZWFkLWhlYWQge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEyMG1zIGVhc2U7XG4gICAgfVxuICAgIC5wZ3MtdGhyZWFkLmlzLXN3aXRjaGluZyxcbiAgICAucGdzLXRocmVhZC1oZWFkLmlzLXN3aXRjaGluZyB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgLyogMWIuIFJlYWN0aWVzIGtvbWVuIGdlc3RhZ2dlcmQgYmlubmVuOiAtLXBncy1pIGlzIGRlIHJpai1pbmRleCAoZG9vclxuICAgICAgIGRlIHZpZXcgYmVncmVuc2QsIHpvZGF0IGVlbiBsYW5nZSBwYWdpbmEgbmlldCBzZWNvbmRlbiBkdXVydCkuICovXG4gICAgLnBjcy1jb21tZW50LnBncy1lbnRlciB7XG4gICAgICAgIGFuaW1hdGlvbjogcGdzLWVudGVyIDIyMG1zIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKSBib3RoO1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IGNhbGModmFyKC0tcGdzLWksIDApICogMjVtcyk7XG4gICAgfVxuICAgIC5wZ3MtbmV3LWRpdmlkZXIucGdzLWVudGVyIHtcbiAgICAgICAgYW5pbWF0aW9uOiBwZ3MtZmFkZSAyNjBtcyBlYXNlIGJvdGg7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogY2FsYyh2YXIoLS1wZ3MtaSwgMCkgKiAyNW1zKTtcbiAgICB9XG5cbiAgICAvKiAzLiBFZW4gcmVhY3RpZSBkaWUgdmlhIGRlIDEwcy12ZXJ2ZXJzaW5nIGJpbm5lbmtvbXQgZ2xpamR0IHZhblxuICAgICAgIG9uZGVyZW4gaW47IGRlIHZpZXcgemV0IGVyIG9vayAucGNzLWNvbW1lbnQtLWZsaXRzIG9wIChiZXN0YWF0IGFsKS4gKi9cbiAgICAucGNzLWNvbW1lbnQucGdzLWVudGVyLS1saXZlIHtcbiAgICAgICAgYW5pbWF0aW9uOiBwZ3MtZW50ZXItbGl2ZSAyNjBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjgsIDAuMiwgMSkgYm90aDtcbiAgICB9XG5cbiAgICAvKiAyLiBEZSBuaWV1dy1iYWRnZSBrcmltcHQgd2VnIGJpaiBoZXQgb3BlbmVuOyBkZSB2aWV3IHZlcndpamRlcnQgaGVtXG4gICAgICAgcGFzIG5hIGRlIG92ZXJnYW5nLiAqL1xuICAgIC5wZ3MtYmFkZ2UtbmV3IHtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE4MG1zIGVhc2UsIG9wYWNpdHkgMTgwbXMgZWFzZTtcbiAgICB9XG4gICAgLnBncy1iYWRnZS1uZXcuaXMtbGVhdmluZyB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAvKiA1LiBGaWx0ZXIgd2lzc2VsZW46IGRlIGxpanN0IHZlcnZhYWd0IHVpdCBlbiBpbiByb25kIGhldCBoZXJ0ZWtlbmVuLiAqL1xuICAgIC5wZ3Mtc3RlcGxpc3Qge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEyMG1zIGVhc2U7XG4gICAgfVxuICAgIC5wZ3Mtc3RlcGxpc3QuaXMtZmlsdGVyaW5nIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgcGdzLWVudGVyIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7IH1cbiAgICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBub25lOyB9XG59XG5Aa2V5ZnJhbWVzIHBncy1lbnRlci1saXZlIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE0cHgpOyB9XG4gICAgdG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxufVxuQGtleWZyYW1lcyBwZ3MtZmFkZSB7XG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IH1cbiAgICB0byAgIHsgb3BhY2l0eTogMTsgfVxufVxuXG4vKiBLYWFydCAyNyAoZmVlZGJhY2sgS2ltIDAyLjA5LjIwMjYsIFwiZ2VlbiBwYWRkaW5nXCIpOiBkZSBsaWpzdCtkZXRhaWwtXG4gICBpbmRlbGluZyBsb29wdCByYW5kLXRvdC1yYW5kIGRvb3IgaGV0IHBhbmVlbDsgZGUgMjJweCB6aWpwYWRkaW5nIHZhblxuICAgLnB1bHNlLXBhbmVsIChlbiBkZSBvbmRlcnBhZGRpbmcpIHdvcmRlbiBoaWVyIHRlcnVnZ2VyZWtlbmQuIERlXG4gICBvbmRlcmhvZWtlbiByb25kZW4gbWVlIG1ldCBoZXQgcGFuZWVsLCBhbmRlcnMgc3RlZWt0IGRlIGxpbGEgbGlqc3Rrb2xvbVxuICAgdmllcmthbnQgdWl0IGRlIGFmZ2Vyb25kZSBrYWFydC4gKi9cbi5wdWxzZS1tb2QtcGFuZWwgLnBncy1zcGxpdCB7XG4gICAgbWFyZ2luOiAwIC0yMnB4IC0yMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAxNHB4IDE0cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogS2FhcnQgMjkgKEtpbSAwMi4wOS4yMDI2KTogY2hhdC1sYXlvdXQuIERlIHZpZXcgemV0IC0tcGdzLXNwbGl0LWhcbiAgICh2aWV3cG9ydCBtaW51cyBuYXZiYXIgZW4gYWN0aWViYWxrKTsgbGlqc3QgZW4gZ2VzcHJlayBzY3JvbGxlbiBpbnRlcm4sXG4gICBkZSBjb21wb3NlciBibGlqZnQgb25kZXJhYW4gaW4gYmVlbGQuIFpvbmRlciBkZSB2YXJpYWJlbGUgKEpTIG5vZyBuaWV0XG4gICBnZWxvcGVuKSB2YWx0IGhldCB0ZXJ1ZyBvcCBkZSBvdWRlIG1lZWdyb2VpZW5kZSBob29ndGUuIERlIDk2cHggb25kZXJcbiAgIGhldCBwYW5lZWwgaXMgaGV0emVsZmRlIHN5bmMtcHVudCBhbHMgX3Rhc2tsaXN0LXNldHRpbmdzLnNjc3M6IGJhbGsgNTZcbiAgICsgb2Zmc2V0IDE2ICsgMjQgbHVjaHQsIHpvZGF0IGRlIG9uZGVya2FudCBub29pdCBhY2h0ZXIgZGUgYmFsayB2YWx0LiAqL1xuLnB1bHNlLWRldGFpbC1ib2R5LS1zaW5nbGUge1xuICAgIHBhZGRpbmctYm90dG9tOiA5NnB4O1xufVxuLnB1bHNlLW1vZC1wYW5lbCAucGdzLXNwbGl0IHtcbiAgICBoZWlnaHQ6IHZhcigtLXBncy1zcGxpdC1oLCBhdXRvKTtcbiAgICBtYXgtaGVpZ2h0OiB2YXIoLS1wZ3Mtc3BsaXQtaCwgbm9uZSk7XG4gICAgbWluLWhlaWdodDogNDgwcHg7XG59XG4ucHVsc2UtbW9kLXBhbmVsIC5wZ3MtZGV0YWlsIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucHVsc2UtbW9kLXBhbmVsIC5wZ3MtdGhyZWFkIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi8qIOKUgOKUgCBTdGFwY2hhdC1tb2RhbCAob3BlblN0ZXBDaGF0TW9kYWwoKSBpbiBkZXRhaWwuaHRtbCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICBLaW0sIDE2LjA5LjIwMjYsIG5hIGhldCBiZWtpamtlbiB2YW4gaGV0IGVjaHRlIHNjaGVybTpcbiAgICAgMSkgXCJEZSBjaGF0IGlzIGluIGVlbiBmcmFtZSBnZXByb3B0IGVuIGlzIG9ubm9kaWcgc21hbCBnZXdvcmRlbi5cIlxuICAgICAyKSBcIkFudHdvb3Jkb3B0aWVzIHZhbGxlbiBidWl0ZW4gaGV0IG1vZGFsXCIgKGRlIGthYXJ0IGxpbmtzIGxpZXAgZG9vclxuICAgICAgICBidWl0ZW4gZGUgbW9kYWwtcmFuZCkuXG4gICBBbGxlcyBoaWVyb25kZXIgaXMgZ2VzY29vcHQgb3AgYC5wdWxzZS1jaGF0LW1vZGFsYCwgZGUgY2xhc3MgZGllIGFsbGVlblxuICAgb3AgRElFIGVuZSBtb2RhbCBzdGFhdCAoemllIGRldGFpbC5odG1sKSDigJQgZGUgZ2VzcHJla2tlblBBR0lOQVxuICAgKGdlc3ByZWtrZW4uaHRtbCwgZ2VlbiBgLnB1bHNlLWNoYXQtbW9kYWxgLXZvb3JvdWRlcikgYmxpamZ0IGhpZXJkb29yXG4gICBieXRlLXZvb3ItYnl0ZSBoZXR6ZWxmZGUuIGBfbW9kYWwuc2Nzc2AgemVsZiBpcyBuaWV0IGFhbmdlcmFha3Q6IGRhdFxuICAgY29tcG9uZW50IHdvcmR0IGRvb3IgaGV0IGhlbGUgcHJvZHVjdCBnZWJydWlrdC4gKi9cblxuLyogMSkgQnJlZWR0ZTogYHNpemU9XCJ4eGxhcmdlXCJgICgxMTAwcHgsIF9tb2RhbC5zY3NzKSBpcyBkZSBicmVlZHN0ZVxuICAgaW5nZWJvdXdkZSBtYWF0IGVuIHdvcmR0IGdlZGVlbGQgZG9vciBkZSBrYWFydCAoMjgwcHgpIEVOIGhldCBnZXNwcmVrLFxuICAgd2F0IGhldCBnZXNwcmVrIHdlaW5pZyBydWltdGUgbGlldC4gRWlnZW4gYnJlZWR0ZSB2b29yIGRlemUgZW5lIG1vZGFsLiAqL1xuLnFkbmFwcm8tbW9kYWwucHVsc2UtY2hhdC1tb2RhbCAubW9kYWwtZGlhbG9nIHtcbiAgICBtYXgtd2lkdGg6IDEyODBweDtcbn1cblxuLyogMikgRGUga2FhcnR2b29yYmVlbGQta29sb20gKGAubW9kYWwtaW5mb2ApIGhlZWZ0IGluIF9tb2RhbC5zY3NzIGJld3VzdFxuICAgYG92ZXJmbG93OiB2aXNpYmxlYCAoZ2VsZHQgdm9vciBhbGxlIHdpdGgtaW5mby1tb2RhbHMpLiBCaWogZWVuIGxhbmdlXG4gICBrYWFydCAoa2VubmlzdnJhYWcgbWV0IHZlZWwvbGFuZ2UgYW50d29vcmRvcHRpZXMpIGxpZXAgZGllIGtvbG9tIGhpZXJcbiAgIGRhYXJkb29yIGRvb3IgYnVpdGVuIGRlIGFmZ2Vyb25kZSBtb2RhbC1yYW5kLiBBbGxlZW4gaW4gZGV6ZSBtb2RhbCBtb2V0XG4gICBkZSBrb2xvbSB6ZWxmIHNjcm9sbGVuOyBhbmRlcmUgd2l0aC1pbmZvLW1vZGFscyBob3VkZW4gaHVuIG92ZXJmbG93OlxuICAgdmlzaWJsZSAoYnYuIHZvb3IgZGUgaWxsdXN0cmF0aWUgZGllIGVyIGxpZ3QpLiAqL1xuLnFkbmFwcm8tbW9kYWwucHVsc2UtY2hhdC1tb2RhbCAubW9kYWwtaW5mbyB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLyogMykgSG9vZ3RlLWtldGVuIHZvb3IgaGV0IGxpanN0K2RldGFpbC1ibG9rLiBgLnB1bHNlLW1vZC1wYW5lbCAucGdzLXNwbGl0YFxuICAgKGthYXJ0IDI3LzI5IGhpZXJib3ZlbikgcmVrZW50IG1ldCBkZSAyMnB4LXppanBhZGRpbmcgdmFuIGAucHVsc2UtcGFuZWxgXG4gICB0ZXJ1ZyAoZGllIGtsYXNzZSBzdGFhdCBpbiBtb2RhbC1tb2R1cyBuaWV0IG1lZXIgb3AgaGV0IHBhbmVlbCDigJQgU0NPUEVcbiAgIDE2LjA5LjIwMjYpIGVuIG1ldCBgLS1wZ3Mtc3BsaXQtaGAsIGVlbiBob29ndGUgZGllIHBnc1NpemVTcGxpdCgpIGluXG4gICBfZ2VzcHJla2tlbi1wYW5lZWwuaHRtbCB1aXQgYHdpbmRvdy5pbm5lckhlaWdodGAgYmVyZWtlbnQg4oCUIGJlaWRlIGtsb3BwZW5cbiAgIG5pZXQgaW4gZWVuIG1vZGFsIChHRU1FTEQ6IGRhdCBiZXN0YW5kIG1hZyB2b29yIGRlemUga2FhcnQgbmlldCB3b3JkZW5cbiAgIGFhbmdlcmFha3QpLiBJbiBwbGFhdHMgdmFuIG9wIGRpZSB2YXJpYWJlbGUgdGUgdmVydHJvdXdlbiwgbGF0ZW4gd2UgZGVcbiAgIGhvb2d0ZSBoaWVyIHZpYSBlZW4gZmxleC1rZXRlbiB1aXQgZGUgRUNIVEUgbW9kYWwtZ2VvbWV0cmllIGtvbWVuXG4gICAobW9kYWwtYm9keSBoZWVmdCBhbCBlZW4gdmFzdGUgaG9vZ3RlLCB6aWUgZGUgd2l0aC1pbmZvL3h4bGFyZ2UtcmVnZWxzXG4gICBpbiBfbW9kYWwuc2Nzcyk6IG1vZGFsLWJvZHkgd29yZHQgZWVuIGZsZXgta29sb20sIGVuIGVsa2UgbGFhZyBkYWFyb25kZXJcbiAgIGtyaWpndCBgZmxleDogMSAxIGF1dG87IG1pbi1oZWlnaHQ6IDBgIHRvdCBhYW4gYC5wZ3Mtc3BsaXRgLiBabyBibGlqZnQgZGVcbiAgIGNvbXBvc2VyIGluIGJlZWxkIGVuIHNjcm9sbGVuIGFsbGVlbiBkZSBrYWFydGtvbG9tLCBkZSBzdGFwcGVubGlqc3QgZW4gZGVcbiAgIGRyYWFkIChkYXQgbGFhdHN0ZSByZWdlbHQgZGUgYmVzdGFhbmRlIGAucHVsc2UtbW9kLXBhbmVsIC5wZ3MtdGhyZWFkYCAvXG4gICBgLnBjcy1jb21wb3NlYC1DU1MgaGllcmJvdmVuIGFsLCB6b2RyYSBodW4gdm9vcm91ZGVyIGVlbiBlY2h0ZSBob29ndGVcbiAgIGhlZWZ0KS4gRGUgLTIycHgtbWFyZ2UgaGllcmJvdmVuIHdvcmR0IGhpZXIgZXhwbGljaWV0IGdlbmV1dHJhbGlzZWVyZDpcbiAgIGluIGRlIG1vZGFsIHN0YWF0IGVyIGdlZW4gYC5wdWxzZS1wYW5lbGAtcGFkZGluZyB0ZWdlbm92ZXIgZGllIG1hcmdlLiAqL1xuLyog4pqg77iPIGBvdmVyZmxvdzogaGlkZGVuYCBpcyBoaWVyIGRlIFNDSEFLRUwsIG5pZXQgY29zbWV0aWNhLiBgLm1vZGFsLWJvZHlgIGtyaWpndFxuICAgdmFuIGhldCBtb2RhbC1jb21wb25lbnQgYG92ZXJmbG93LXk6IGF1dG9gLCBlbiB6byBsYW5nIGRpZSBzdGFhdCBtYWcgZGUgaW5ob3VkXG4gICBnZXdvb24gZG9vcmdyb2VpZW4gZW4gc2Nyb2xsdCBkZSBIRUxFIGJvZHkgbWVlOiBoZXQgcGFuZWVsIHdlcmQgMjExM3B4IGhvb2cgaW5cbiAgIGVlbiB2ZW5zdGVyIHZhbiA3NTRweCwgZW4gaGV0IGFudHdvb3JkdmVsZCB6YWt0ZSB2ZXIgb25kZXIgZGUgcmFuZCB2YW4gZGVcbiAgIG1vZGFsLiBNZXQgaGlkZGVuIGlzIGRlIGhvb2d0ZSBlZW4gaGFyZGUgZ3JlbnMsIGtyaW1wdCBkZSBrZXRlbiBlcm9uZGVyIG1lZSBlblxuICAgc2Nyb2xsdCBhbGxlZW4gZGUgZHJhYWQuIEdlbWV0ZW4gbWV0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCB2w7PDs3IgZW4gbmEuICovXG4ucWRuYXByby1tb2RhbC5wdWxzZS1jaGF0LW1vZGFsIC5tb2RhbC1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtaW4taGVpZ2h0OiAwO1xufVxuLnFkbmFwcm8tbW9kYWwucHVsc2UtY2hhdC1tb2RhbCAucHVsc2UtbW9kLXBhbmVsLFxuLnFkbmFwcm8tbW9kYWwucHVsc2UtY2hhdC1tb2RhbCAjcHVsc2UtbW9kLWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xufVxuLyogRWVuIHZlcmJvcmdlbiBncmlkLUlURU0gbGFhdCB6aWpuIEtPTE9NIHN0YWFuOiB6b25kZXIgZGV6ZSByZWdlbCBibGVlZiBlclxuICAgMzQwcHggZ2VyZXNlcnZlZXJkIHZvb3IgZGUgc3RhcHBlbmxpanN0IGRpZSBpbiBkZXplIG1vZGFsIG5pZXQgYmVzdGFhdCwgZW5cbiAgIHdlcmQgaGV0IGdlc3ByZWsgZGFhciBuYWFzdCBnZXBlcnN0LiBaZWxmZGUgZWVua29sb21zdm9ybSBhbHMgaGV0XG4gICBzbWFsbGUtc2NoZXJtYmxvayBiaWogLnBncy1zcGxpdCBoaWVyYm92ZW4uICovXG4vKiDimqDvuI8gREUgT05UQlJFS0VOREUgU0NIQUtFTC4gVHVzc2VuIGAubW9kYWwtYm9keWAgZW4gaGV0IHBhbmVlbCB6aXQgZGVcbiAgIHBhZ2luYS13cmFwcGVyIGAucHVsc2UtZGV0YWlsLWJvZHktLXNpbmdsZWA6IGVlbiBncmlkIG1ldCBlZW4gYXV0by1yaWosXG4gICBgZmxleC1ncm93OiAwYCBlbiBgbWluLWhlaWdodDogYXV0b2AuIERpZSBnYWYgZGUgdm9sbGVkaWdlIGluaG91ZHNob29ndGVcbiAgIG9uZ2VoaW5kZXJkIGRvb3IgbmFhciBiZW5lZGVuLCB3YWFyZG9vciBlbGtlIGZsZXgtcmVnZWwgZXJvbmRlciB6aW5sb29zIHdhc1xuICAgKGdlbWV0ZW46IDIyMDlweCBpbiBlZW4gdmVuc3RlciB2YW4gNzU0cHgpLiBIaWogaG9vcnQgYmlqIGRlIFBBR0lOQSwgd2FhciBoaWpcbiAgIGluIGVlbiBncmlkIHZhbiBkZSBkZXRhaWxrb2xvbSBzdGFhdDsgaW4gZWVuIG1vZGFsIGlzIGhpaiBhbGxlZW4gbm9nIGVlblxuICAgZG9vcmdlZWZsdWlrIGVuIG1vZXQgaGlqIGR1cyBtZWVrcmltcGVuLlxuICAgRGUgOTZweCBvbmRlcmFhbiBpcyBydWltdGUgdm9vciBkZSB6d2V2ZW5kZSBhY3RpZWJhbGsgdmFuIGRlIHBhZ2luYS4gRGllIGJhbGtcbiAgIGJlc3RhYXQgaGllciBuaWV0LCBkdXMgZGF0IGlzIGxvemUgaG9vZ3RlIG9uZGVyIGhldCBnZXNwcmVrLiAqL1xuLnFkbmFwcm8tbW9kYWwucHVsc2UtY2hhdC1tb2RhbCAucHVsc2UtZGV0YWlsLWJvZHkge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW5tYXgoMCwgMWZyKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLyogRGUgaGVsZSBrZXRlbiB2YW4gZGUgbW9kYWwtYm9keSB0b3QgZGUgZHJhYWQgaW4gRUVOIHJlZ2VsLiBMYWFnIHZvb3IgbGFhZ1xuICAgcmVwYXJlcmVuIHdlcmt0ZSBuaWV0OiBlbGtlIGxhYWcgZGllIG5vZyBrb24gZ3JvZWllbiBnYWYgZGUgdm9sbGVcbiAgIGluaG91ZHNob29ndGUgZG9vciBhYW4gZGUgdm9sZ2VuZGUsIGVuIGRhbiBpcyBoZXQgYW50d29vcmR2ZWxkIGFsc25vZyB3ZWcuXG4gICBgbWF4LWhlaWdodDogMTAwJWAgaXMgaGllciBkZSBzbGV1dGVsIG5hYXN0IGBtaW4taGVpZ2h0OiAwYDogZWVuIGdyaWQtaXRlbVxuICAgbWFnIG5hbWVsaWprIGdld29vbiBidWl0ZW4gemlqbiByaWogZ3JvZWllbiwgb29rIGFscyBkaWUgcmlqIGJlZ3JlbnNkIGlzLlxuICAgRGUgZHJhYWQgemVsZiBzdGFhdCBiZXd1c3QgTklFVCBpbiBkZXplIGxpanN0OyBkaWUgbW9ldCBqdWlzdCBzY3JvbGxlbi4gKi9cbi5xZG5hcHJvLW1vZGFsLnB1bHNlLWNoYXQtbW9kYWwgLnB1bHNlLWRldGFpbC1ib2R5LFxuLnFkbmFwcm8tbW9kYWwucHVsc2UtY2hhdC1tb2RhbCAucHVsc2UtbW9kLXBhbmVsLFxuLnFkbmFwcm8tbW9kYWwucHVsc2UtY2hhdC1tb2RhbCAjcHVsc2UtbW9kLWJvZHksXG4ucWRuYXByby1tb2RhbC5wdWxzZS1jaGF0LW1vZGFsIC5wZ3Mtc3BsaXQsXG4ucWRuYXByby1tb2RhbC5wdWxzZS1jaGF0LW1vZGFsIC5wZ3MtZGV0YWlsIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnFkbmFwcm8tbW9kYWwucHVsc2UtY2hhdC1tb2RhbCAucGdzLXNwbGl0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgIC8qIOKaoO+4jyBFbiBkZSBSSUogbW9ldCBvb2sgYmVncmVuc2Qgd29yZGVuLiBgLnBncy1zcGxpdGAgaXMgZWVuIGdyaWQsIGVuIGVlblxuICAgICAgIGdyaWQgbWV0IGVlbiBhdXRvLXJpaiBncm9laXQgbWV0IHppam4gaW5ob3VkLCBvbmdlYWNodCB3ZWxrZSBmbGV4LXJlZ2Vsc1xuICAgICAgIGVyIG9wIGhldCBlbGVtZW50IHplbGYgc3RhYW46IGhldCBibG9rIGJsZWVmIDIxMTNweCBob29nIGluIGVlbiB2ZW5zdGVyXG4gICAgICAgdmFuIDc1NHB4LiBgbWlubWF4KDAsIDFmcilgIG1hYWt0IGRlIHJpaiBwcmVjaWVzIHpvIGhvb2cgYWxzIGVyIHJ1aW10ZSBpcyxcbiAgICAgICB6b2RhdCBkZSBkcmFhZCBlcm9uZGVyIHplbGYgZ2FhdCBzY3JvbGxlbiBpbiBwbGFhdHMgdmFuIGhldCBoZWxlIHZlbnN0ZXJcbiAgICAgICBvcCB0ZSByZWtrZW4uIE9wIGRlIFBBR0lOQSBkb2V0IGAtLXBncy1zcGxpdC1oYCBkaXQgd2VyazsgaW4gZWVuIG1vZGFsXG4gICAgICAgYmVzdGFhdCBkaWUgYmVyZWtlbmluZyBuaWV0IChkaWUgZ2FhdCB1aXQgdmFuIGRlIHZpZXdwb3J0IG1pbnVzIG5hdmJhciBlblxuICAgICAgIGFjdGllYmFsaywgZW4gZGllIHppam4gaGllciBuaWV0KS4gKi9cbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IG1pbm1heCgwLCAxZnIpO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5xZG5hcHJvLW1vZGFsLnB1bHNlLWNoYXQtbW9kYWwgLnBncy1zcGxpdCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICBtYXJnaW46IDA7XG59XG5cbi8qIERhdHVtdmVsZGVuIC0+IGh1aXNrYWxlbmRlciAoS2ltIDAyLjA5LjIwMjYpLiBEZSBnZWRlZWxkZSBwb3BvdmVyIG1ldCBkZVxuICAgcWRuYXByby1kYXRlLXBpY2tlciBoYW5ndCBhYW4gZG9jdW1lbnQuYm9keSwgYnVpdGVuIGRlIG1vZGFsLiBEaWUgc3RhYXQgb3BcbiAgIHotaW5kZXggOTAwMCAoLnFkbmFwcm8tbW9kYWwpIGVuIGRlIHBvcG92ZXIgc3RhbmRhYXJkIG9wIDEwMDEsIGR1cyB6b25kZXJcbiAgIGRlemUgcmVnZWwgb3BlbnQgZGUga2FsZW5kZXIgQUNIVEVSIGRlIHN0YXAtbW9kYWwuIDk0MDAgaXMgYm92ZW4gZGVcbiAgIFwiYWx0aWpkIGJvdmVub3BcIi1sYWFnIDkzMDAgZGllIGRlIGZsb3cgZWRpdG9yIGdlYnJ1aWt0LiBPcCBoZXQgZGF0YS1cbiAgIGF0dHJpYnV1dCBlbiBuaWV0IG9wIGVlbiBjbGFzczogcWRuYXByby1wb3BvdmVyIG92ZXJzY2hyaWpmdCB6aWpuIGVpZ2VuXG4gICBjbGFzc05hbWUgYmlqIGVsa2UgcmVuZGVyLiBaaWUgX2NhbXBhaWduLWhlYWQtc2NyaXB0cy5odG1sLiAqL1xuLnFkbmFwcm8tcG9wb3ZlcltkYXRhLXB1bHNlLWRhdGUtcG9wXSB7XG4gICAgei1pbmRleDogOTQwMDtcbn1cblxuLy8g4pSA4pSAIFN0YXJ0c2NoZXJtLXByZXZpZXcgaW4gZGUgc3RhcC1tb2RhbCAocmVjaHR0cmVrLWJldXJ0IDE1LjA5LjIwMjYpIOKUgOKUgFxuLy8gTWluaS13ZWVyZ2F2ZSB2YW4gZGUgYWZ0cmFwLW9udGh1bGxpbmc6IHplbGZkZSB2YXN0ZSBwYWFyc2UgdG9rZW5zIGFscyBkZVxuLy8gZWNodGUgdGFrZW92ZXIgKHFkbmFwcm8tcmV2ZWFsLXN0YWdlKSwgYmV3dXN0IE5JRVQgZGFyay1tb2RlLWdldm9lbGlnLlxuLy8gS2ltcyB0d2VlZGUgcm9uZGU6IHRlbGVmb29uZm9ybWFhdCBvdmVyIGRlIHZvbGxlIGtvbG9taG9vZ3RlLCBlbiBWTEFLXG4vLyBwYWFycy01MDAgKGdlZW4gZ3JhZGllbnQgLSBoZXQgZWNodGUgc3RhcnRzY2hlcm0gaXMgZWVuIHZsYWtrZSBzY3JpbTsgZGVcbi8vIGdyYWRpZW50IGlzIGRlIGZlZXN0emFhbCB2YW4gaGV0IGVpbmRzY2hlcm0pLlxuI3B1bHNlLXNtLXN0YXJ0LXByZXZpZXctZmllbGQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbn1cblxuLnB1bHNlLXN0YXJ0LXByZXZpZXcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgZ2FwOiA2cHg7XG4gIHdpZHRoOiBtaW4oMTAwJSwgMzIwcHgpO1xuICBtaW4taGVpZ2h0OiA0ODBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDQwcHggMjBweCAyMHB4O1xuICBib3JkZXItcmFkaXVzOiAyMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MDApO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5wdWxzZS1zdGFydC1wcmV2aWV3LWhlYWRpbmcge1xuICBmb250LXNpemU6IDE5cHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgdGV4dC13cmFwOiBiYWxhbmNlO1xuICBtaW4taGVpZ2h0OiAyM3B4O1xuICBtYXgtd2lkdGg6IDI1MHB4O1xuICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbn1cblxuLnB1bHNlLXN0YXJ0LXByZXZpZXctdGVhbSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1vbi1hY3Rpb24pO1xufVxuXG4ucHVsc2Utc3RhcnQtcHJldmlldy10ZWFtbGFiZWwge1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlLTcwKTtcbn1cblxuLnB1bHNlLXN0YXJ0LXByZXZpZXctaWNvbiB7XG4gIG1hcmdpbjogMjZweCAwIDEwcHg7XG59XG5cbi5wdWxzZS1zdGFydC1wcmV2aWV3LXN1YiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUtODUpO1xuICBtaW4taGVpZ2h0OiAxNXB4O1xuICBtYXgtd2lkdGg6IDIzMHB4O1xuICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbn1cblxuLnB1bHNlLXN0YXJ0LXByZXZpZXctYnRuIHtcbiAgbWFyZ2luLXRvcDogYXV0bzsgLy8gb25kZXJpbiwgem9hbHMgb3AgaGV0IGVjaHRlIHNjaGVybVxuICBwYWRkaW5nOiA4cHggMThweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtcHVycGxlLTcwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtb24tYWN0aW9uKTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuXG4gIC8vIEVpbmRzY2hlcm0tcHJldmlldyAoMTYuMDkuMjAyNik6IGdlZW4ga25vcCBtYWFyIGRlIHZhc3RlIHRlYXNlLXJlZ2VsXG4gIC8vIFwiVGlrIG9tIGRlIHVpdHNsYWcgdGUgb250aHVsbGVuXCIgLSB6ZWxmZGUgcGxlayBvbmRlcmluLCBrYWxlIHRla3N0LlxuICAmLnB1bHNlLXN0YXJ0LXByZXZpZXctaGludGxpbmUge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxufVxuXG4vLyBEZSBpbmxpbmUgXCIrXCItcmlqIHR1c3NlbiBkZSBzdGFwcGVuIGVuIGhldCBlaW5kc2NoZXJtOiB6ZWxmZGUgdGFhbCBhbHMgZGVcbi8vIHZvZXQtdmVyc2llLCBpZXRzIGNvbXBhY3RlciB6b2RhdCBoaWogYWxzIHR1c3NlbnZvZWdzZWwgbGVlc3QuXG4ucHVsc2UtYWRkLWJhci0taW5saW5lIHtcbiAgbWFyZ2luOiAycHggMDtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRGV2IFgtcmF5IOKAlCBjb21wb25lbnQvaGFuZC1yb2xsZWQgb3ZlcmxheSAoZGV2IHJpZ2h0IG9ubHkpXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIERyaXZlbiBieSB3ZWIvanMvZGV2LXhyYXkuanMuIE1hcmtlcnMgYXJlIERBVEEgQVRUUklCVVRFUyxcbiAgIG5ldmVyIGNsYXNzZXM6IHNldmVyYWwgY29tcG9uZW50cyByZXdyaXRlIHRoZWlyIG93biBjbGFzc05hbWVcbiAgIG9uIHJlLXJlbmRlciwgd2hpY2ggd291bGQgd2lwZSBhIGNsYXNzLWJhc2VkIGhvb2suXG5cbiAgIFRoZSBtYXJrZXIgY29sb3VycyBhcmUgREVMSUJFUkFURUxZIG9mZi1zeXN0ZW0gKGxpbWUgKyBtYWdlbnRhKS5cbiAgIEEgZGV2IG92ZXJsYXkgbXVzdCBuZXZlciBiZSBtaXN0YWtlbiBmb3IgcmVhbCBVSSwgc28gaXQgbWF5IG5vdFxuICAgYm9ycm93IGJyYW5kIG9yIHNpZ25hbCB0b2tlbnMuIFRoZSBwYW5lbCBpdHNlbGYgZG9lcyB1c2UgdG9rZW5zLFxuICAgYmVjYXVzZSBpdCBpcyBhIG5vcm1hbCBzdXJmYWNlLlxuXG4gICBMaW5lIHN0eWxlIGNhcnJpZXMgdGhlIG1lYW5pbmcgdG9vLCBub3QganVzdCBodWUsIHNvIHRoZSB0d29cbiAgIHN0YXRlcyBzdGF5IGFwYXJ0IHdpdGhvdXQgcmVseWluZyBvbiByZWQvZ3JlZW46XG4gICAgIHNvbGlkICA9IGNvbXBvbmVudFxuICAgICBkYXNoZWQgPSBoYW5kLXJvbGxlZFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiRkZXYteHJheS1jb21wb25lbnQ6ICMwMGUwN2E7XG4kZGV2LXhyYXktaGFuZHJvbGxlZDogI2ZmMmQ5NTtcblxuLy8gb3V0bGluZSBzaXRzIGluc2lkZSB0aGUgYm94IGFuZCBpcyBsYXlvdXQtbmV1dHJhbCwgc28gc3dpdGNoaW5nIHRoZVxuLy8gb3ZlcmxheSBvbiBuZXZlciBzaGlmdHMgdGhlIHBhZ2UgaXQgaXMgbWVhc3VyaW5nLlxuW2RhdGEteHJheT1cImNvbXBvbmVudFwiXSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICRkZXYteHJheS1jb21wb25lbnQgIWltcG9ydGFudDtcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweCAhaW1wb3J0YW50O1xufVxuXG5bZGF0YS14cmF5PVwiaGFuZHJvbGxlZFwiXSB7XG4gICAgb3V0bGluZTogMnB4IGRhc2hlZCAkZGV2LXhyYXktaGFuZHJvbGxlZCAhaW1wb3J0YW50O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qIEhvdmVyIGxhYmVsLiBLTk9XTiBMSU1JVEFUSU9OOiB0aGlzIGJvcnJvd3MgOjphZnRlciwgc28gYW4gZWxlbWVudFxuICAgdGhhdCBhbHJlYWR5IGRyYXdzIGFuIGljb24gdGhyb3VnaCA6OmFmdGVyIGxvc2VzIGl0IHdoaWxlIGhvdmVyZWRcbiAgIHdpdGggdGhlIG92ZXJsYXkgb24uIEhvdmVyLW9ubHkga2VlcHMgdGhlIGJsYXN0IHJhZGl1cyBzbWFsbDsgdGhlXG4gICBwYW5lbCdzIGNsaWNrYWJsZSB3b3JrIGxpc3QgaXMgdGhlIHJlYWwgd2F5IHRvIG5hdmlnYXRlLiAqL1xuW2RhdGEteHJheV06aG92ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogYXR0cihkYXRhLXhyYXktdGFnKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDIxNDc0ODMwMDA7XG4gICAgICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1yYWRpdXMtc20sIDRweCkgMDtcbiAgICAgICAgZm9udDogNjAwIDEwcHgvMS40IHVpLW1vbm9zcGFjZSwgXCJTRiBNb25vXCIsIE1lbmxvLCBtb25vc3BhY2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbn1cblxuW2RhdGEteHJheT1cImNvbXBvbmVudFwiXTpob3Zlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICRkZXYteHJheS1jb21wb25lbnQ7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JleS05NTAsICMwYjBiMGQpO1xufVxuXG5bZGF0YS14cmF5PVwiaGFuZHJvbGxlZFwiXTpob3Zlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICRkZXYteHJheS1oYW5kcm9sbGVkO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4vKiBQdWxzZSB1c2VkIGJ5IHRoZSBcImNsaWNrIGEgcm93IHRvIGZpbmQgaXRcIiBqdW1wLiAqL1xuQGtleWZyYW1lcyBkZXYteHJheS1wdWxzZSB7XG4gICAgMCUsIDEwMCUgeyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjU1LCA0NSwgMTQ5LCAwKTsgfVxuICAgIDUwJSAgICAgIHsgYm94LXNoYWRvdzogMCAwIDAgOHB4IHJnYmEoMjU1LCA0NSwgMTQ5LCAwLjU1KTsgfVxufVxuXG5bZGF0YS14cmF5LXB1bHNlXSB7XG4gICAgYW5pbWF0aW9uOiBkZXYteHJheS1wdWxzZSAwLjVzIGVhc2UtaW4tb3V0IDM7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gcGFuZWwgKi9cblxuLy8gQmxvY2sgaXMgYSBDTEFTUywgbm90IHRoZSBpZC4gTmVzdGluZyBgJl9faGVhZGAgdW5kZXIgYCNkZXYteHJheS1wYW5lbGBcbi8vIGNvbXBpbGVzIHRvIGAjZGV2LXhyYXktcGFuZWxfX2hlYWRgLCBhbiBpZCBzZWxlY3RvciB0aGF0IG1hdGNoZXMgbm90aGluZyDigJRcbi8vIGl0IGNvc3QgYSBmdWxsIHJlbmRlciByb3VuZC4gVGhlIGlkIHN0YXlzIHB1cmVseSBhcyB0aGUgSlMgaG9vay5cbi5kZXYteHJheSB7XG4gICAgLy8gTm8gY291bnRlci16b29tIGhlcmUgb24gcHVycG9zZS4gVGhlIGdsb2JhbCA4MCUgYm9keSB6b29tIGxpdmVzIGluIHRoZVxuICAgIC8vIE9MRCBiYWNrb2ZmaWNlIGNoYWluOyBwYXJ0aWFscy92MS9iYXNlLnNjc3Mgc2V0cyBubyB6b29tIG9uIGJvZHksIGFuZFxuICAgIC8vIHRoaXMgcGFuZWwgb25seSBldmVyIHJlbmRlcnMgb24gdjEgcGFnZXMgKGl0cyB0b2dnbGUgaXMgaW4gYmFzZS5odG1sKS5cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcmlnaHQ6IHZhcigtLXMtNCwgMTZweCk7XG4gICAgYm90dG9tOiB2YXIoLS1zLTQsIDE2cHgpO1xuICAgIHotaW5kZXg6IDIxNDc0ODMwMDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAzMjBweDtcbiAgICBtYXgtaGVpZ2h0OiA3MHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItY2FyZCwgI2UxZTNlNik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kLCA4cHgpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWNhcmQsIDAgNHB4IDE2cHggcmdiYSgyMCwgMjUsIDgwLCAwLjEyKSk7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjNDA0NDRkKTtcblxuICAgICZfX2hlYWQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXMtMywgMTJweCkgdmFyKC0tcy00LCAxNnB4KTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNmMGYxZjIpO1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMwYjBiMGQpO1xuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXMtMiwgOHB4KTtcbiAgICB9XG5cbiAgICAmX19jbG9zZSxcbiAgICAmX19taW4ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMwYjBiMGQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhlIG1pbnVzIHJlYWRzIGhlYXZpZXIgdGhhbiB0aGUgw5cgYXQgdGhlIHNhbWUgc2l6ZSwgc28gdHJpbSBpdCBhIGxpdHRsZS5cbiAgICAmX19taW4ge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxuXG4gICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGNvbGxhcHNlZCAocGlsbCkgKi9cblxuICAgIC8vIENvbGxhcHNlZCwgdGhlIHBhbmVsIElTIHRoZSBwaWxsOiBzYW1lIGVsZW1lbnQsIHNhbWUgY29ybmVyLCBzbyB0aGVcbiAgICAvLyBzdGF0ZSBhbmQgdGhlIHBvc2l0aW9uIHN1cnZpdmUgYSByZXNjYW4uIFdpZHRoIG11c3QgZ28gYXV0bywgYW5kIHRoZVxuICAgIC8vIDcwdmggY2FwIGhhcyB0byBsaWZ0IG9yIHRoZSBmbGV4IGNvbHVtbiBrZWVwcyByZXNlcnZpbmcgcm9vbS5cbiAgICAmW2RhdGEtbWluXSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICB9XG5cbiAgICAmX19waWxsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTMsIDEycHgpO1xuICAgICAgICBwYWRkaW5nOiA3cHggdmFyKC0tcy0zLCAxMnB4KTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJl9fcGlsbHRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMwYjBiMGQpO1xuICAgIH1cblxuICAgIC8vIERvdCBjYXJyaWVzIHRoZSBjb2xvdXIsIHRoZSBudW1iZXIgc3RheXMgaW4gdGV4dCBjb2xvdXI6IHRoZSBncmVlbiBpc1xuICAgIC8vIHRvbyBsaWdodCB0byByZWFkIGFzIHRleHQgb24gd2hpdGUuXG4gICAgJl9fcGlsbGNvdW50IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNXB4O1xuICAgICAgICBmb250OiA3MDAgMTFweC8xLjQgdWktbW9ub3NwYWNlLCBcIlNGIE1vbm9cIiwgTWVubG8sIG1vbm9zcGFjZTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMGIwYjBkKTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHdpZHRoOiA3cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDdweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1raW5kPVwiY29tcG9uZW50XCJdOjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRldi14cmF5LWNvbXBvbmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1raW5kPVwiaGFuZHJvbGxlZFwiXTo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkZXYteHJheS1oYW5kcm9sbGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3RhdHMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICAgIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1zLTMsIDEycHgpIHZhcigtLXMtNCwgMTZweCk7XG4gICAgfVxuXG4gICAgJl9fc3RhdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSwgNHB4KTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlLCAjZjBmMWYyKTtcblxuICAgICAgICAmW2RhdGEta2luZD1cImNvbXBvbmVudFwiXSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJGRldi14cmF5LWNvbXBvbmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1raW5kPVwiaGFuZHJvbGxlZFwiXSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJGRldi14cmF5LWhhbmRyb2xsZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19udW0ge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzBiMGIwZCk7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xuICAgIH1cblxuICAgICZfX3N1YmhlYWQge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1zLTIsIDhweCkgdmFyKC0tcy00LCAxNnB4KTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLXNvZnQsICNmMGYxZjIpO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIH1cblxuICAgICZfX3JvdyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmX19yb3didG4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogNnB4IHZhcigtLXMtNCwgMTZweCk7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyLCAjZjBmMWYyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3Jvd25hbWUge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgZm9udDogNTAwIDExcHgvMS40IHVpLW1vbm9zcGFjZSwgXCJTRiBNb25vXCIsIE1lbmxvLCBtb25vc3BhY2U7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzQwNDQ0ZCk7XG4gICAgfVxuXG4gICAgJl9fcm93Y291bnQge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiAyMHB4O1xuICAgICAgICBwYWRkaW5nOiAxcHggNXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCwgOTk5cHgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLXN1YnRsZS1wdXJwbGUsICNmMGYxZjIpO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgfVxuXG4gICAgJl9fbW9yZSB7XG4gICAgICAgIHBhZGRpbmc6IDZweCB2YXIoLS1zLTQsIDE2cHgpO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgfVxuXG4gICAgJl9fZm9vdCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXMtMiwgOHB4KSB2YXIoLS1zLTQsIDE2cHgpIHZhcigtLXMtMywgMTJweCk7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZjBmMWYyKTtcbiAgICB9XG5cbiAgICAmX19idG4ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLWNhcmQsICNlMWUzZTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20sIDRweCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCwgI2ZmZmZmZik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICM0MDQ0NGQpO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyLCAjZjBmMWYyKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogVGhlIHBhbmVsIG11c3QgbmV2ZXIgbWFyayBpdHNlbGYuICovXG4uZGV2LXhyYXkgW2RhdGEteHJheV0ge1xuICAgIG91dGxpbmU6IDAgIWltcG9ydGFudDtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogbm9uZTtcbiAgICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIERldiB0b2tlbnMg4oCUIGhhcmRjb2RlZC1jb2xvdXIgb3ZlcmxheSAoZGV2IHJpZ2h0IG9ubHkpXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIERyaXZlbiBieSB3ZWIvanMvZGV2LXRva2Vucy5qcy4gTWFya3MgZWxlbWVudHMgd2hvc2UgY29sb3VyXG4gICBjb21lcyBmcm9tIGEgbGl0ZXJhbCB2YWx1ZSBpbnN0ZWFkIG9mIHZhcigtLeKApiksIHdoaWNoIGlzIHRoZVxuICAgcmVhbCBkYXJrLW1vZGUgcmVhZGluZXNzIHF1ZXN0aW9uLlxuXG4gICBSdW5zIEFMT05HU0lERSB0aGUgcsO2bnRnZW4gKF9kZXYteHJheS5zY3NzKSwgc28gaXQgbXVzdCB1c2UgYVxuICAgZGlmZmVyZW50IHZpc3VhbCBjaGFubmVsOiByw7ZudGdlbiBvd25zIGBvdXRsaW5lYCwgdGhpcyBvd25zIGFuXG4gICBpbnNldCBib3gtc2hhZG93LiBCb3RoIGNhbiBiZSBvbiBhdCBvbmNlIGFuZCBzdGF5IHJlYWRhYmxlLlxuXG4gICBNYXJrZXIgY29sb3VyIGlzIGRlbGliZXJhdGVseSBvZmYtc3lzdGVtIChhbWJlciksIHNhbWUgcmVhc29uXG4gICBhcyBpbiBfZGV2LXhyYXkuc2NzczogYSBkZXYgb3ZlcmxheSBtdXN0IG5ldmVyIHJlYWQgYXMgcmVhbCBVSS5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4kZGV2LXRva2Vucy1tYXJrOiAjZmZiMzAwO1xuXG4vLyBpbnNldCBzaGFkb3cgaW5zdGVhZCBvZiBvdXRsaW5lOiBsYXlvdXQtbmV1dHJhbCBBTkQgYSBmcmVlIGNoYW5uZWwuXG4vLyBPdmVycmlkZXMgYW55IHNoYWRvdyB0aGUgZWxlbWVudCBoYWQsIHdoaWNoIGlzIGEga25vd24gY29zbWV0aWMgc2lkZVxuLy8gZWZmZWN0IHdoaWxlIHRoZSBvdmVybGF5IGlzIG9uLiBBY2NlcHRhYmxlIGluIGEgZGV2IHRvb2wuXG5bZGF0YS10b2tlbnM9XCJoYXJkY29kZWRcIl0ge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAkZGV2LXRva2Vucy1tYXJrICFpbXBvcnRhbnQ7XG59XG5cbkBrZXlmcmFtZXMgZGV2LXRva2Vucy1wdWxzZSB7XG4gICAgMCUsIDEwMCUgeyBvdXRsaW5lOiAwIHNvbGlkIHJnYmEoMjU1LCAxNzksIDAsIDApOyBvdXRsaW5lLW9mZnNldDogMDsgfVxuICAgIDUwJSAgICAgIHsgb3V0bGluZTogNnB4IHNvbGlkIHJnYmEoMjU1LCAxNzksIDAsIDAuNik7IG91dGxpbmUtb2Zmc2V0OiAycHg7IH1cbn1cblxuW2RhdGEtdG9rZW5zLXB1bHNlXSB7XG4gICAgYW5pbWF0aW9uOiBkZXYtdG9rZW5zLXB1bHNlIDAuNXMgZWFzZS1pbi1vdXQgMztcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBwYW5lbCAqL1xuXG4vLyBCb3R0b20tTEVGVCwgYmVjYXVzZSB0aGUgcsO2bnRnZW4gcGFuZWwgb3ducyBib3R0b20tcmlnaHQgYW5kIGJvdGhcbi8vIGNhbiBiZSBvcGVuIGF0IHRoZSBzYW1lIHRpbWUuIE5vIGNvdW50ZXItem9vbTogdjEgcGFnZXMgY2Fycnkgbm9cbi8vIGJvZHkgem9vbSAoc2VlIF9kZXYteHJheS5zY3NzKS5cbi5kZXYtdG9rZW5zIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogdmFyKC0tcy00LCAxNnB4KTtcbiAgICBib3R0b206IHZhcigtLXMtNCwgMTZweCk7XG4gICAgei1pbmRleDogMjE0NzQ4MzAwMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIG1heC1oZWlnaHQ6IDcwdmg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQsIDhweCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLCAjZmZmZmZmKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctY2FyZCwgMCA0cHggMTZweCByZ2JhKDIwLCAyNSwgODAsIDAuMTIpKTtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICM0MDQ0NGQpO1xuXG4gICAgJl9faGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcy0zLCAxMnB4KSB2YXIoLS1zLTQsIDE2cHgpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2YwZjFmMik7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzBiMGIwZCk7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tcy0yLCA4cHgpO1xuICAgIH1cblxuICAgICZfX2Nsb3NlLFxuICAgICZfX21pbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcblxuICAgICAgICAmOmhvdmVyIHsgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMGIwYjBkKTsgfVxuICAgIH1cblxuICAgIC8vIFRoZSBtaW51cyByZWFkcyBoZWF2aWVyIHRoYW4gdGhlIMOXIGF0IHRoZSBzYW1lIHNpemUsIHNvIHRyaW0gaXQgYSBsaXR0bGUuXG4gICAgJl9fbWluIHtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgIH1cblxuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBjb2xsYXBzZWQgKHBpbGwpICovXG5cbiAgICAvLyBDb2xsYXBzZWQsIHRoZSBwYW5lbCBJUyB0aGUgcGlsbDogc2FtZSBlbGVtZW50LCBzYW1lIGNvcm5lciwgc28gc3RhdGUgYW5kXG4gICAgLy8gcG9zaXRpb24gc3Vydml2ZSBhIHJlc2Nhbi4gV2lkdGggbXVzdCBnbyBhdXRvLCBhbmQgdGhlIDcwdmggY2FwIGhhcyB0b1xuICAgIC8vIGxpZnQgb3IgdGhlIGZsZXggY29sdW1uIGtlZXBzIHJlc2VydmluZyByb29tLiBNaXJyb3JzIF9kZXYteHJheS5zY3NzLlxuICAgICZbZGF0YS1taW5dIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIH1cblxuICAgICZfX3BpbGwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLXMtMywgMTJweCk7XG4gICAgICAgIHBhZGRpbmc6IDdweCB2YXIoLS1zLTMsIDEycHgpO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmX19waWxsdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZywgIzBiMGIwZCk7XG4gICAgfVxuXG4gICAgLy8gT25lIG1hcmtlciBjb2xvdXIgaGVyZSwgc28gdGhlIHR3byBjb3VudHMgYXJlIHRvbGQgYXBhcnQgYnkgYSBmaWxsZWQgZG90XG4gICAgLy8gKGNvbG91cnMpIHZlcnN1cyBhIGhvbGxvdyBvbmUgKGVsZW1lbnRzKSByYXRoZXIgdGhhbiBieSBodWUuXG4gICAgJl9fcGlsbGNvdW50IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNXB4O1xuICAgICAgICBmb250OiA3MDAgMTFweC8xLjQgdWktbW9ub3NwYWNlLCBcIlNGIE1vbm9cIiwgTWVubG8sIG1vbm9zcGFjZTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nLCAjMGIwYjBkKTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHdpZHRoOiA3cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDdweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1raW5kPVwiY29sb3Vyc1wiXTo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkZXYtdG9rZW5zLW1hcms7XG4gICAgICAgIH1cblxuICAgICAgICAmW2RhdGEta2luZD1cImVsZW1lbnRzXCJdOjpiZWZvcmUge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICRkZXYtdG9rZW5zLW1hcms7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdGF0cyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXMtMywgMTJweCkgdmFyKC0tcy00LCAxNnB4KTtcbiAgICB9XG5cbiAgICAmX19zdGF0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXMtMiwgOHB4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtLCA0cHgpO1xuICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICRkZXYtdG9rZW5zLW1hcms7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctc3VidGxlLXB1cnBsZSwgI2YwZjFmMik7XG4gICAgfVxuXG4gICAgJl9fbnVtIHtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMwYjBiMGQpO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgICB9XG5cbiAgICAmX19zdWJoZWFkIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcy0yLCA4cHgpIHZhcigtLXMtNCwgMTZweCk7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1zb2Z0LCAjZjBmMWYyKTtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB9XG5cbiAgICAmX19yb3cge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgJl9fcm93YnRuIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTIsIDhweCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiA1cHggdmFyKC0tcy00LCAxNnB4KTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZC1ob3ZlciwgI2YwZjFmMik7IH1cbiAgICB9XG5cbiAgICAmX19zd2F0Y2gge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAvLyBBIGNoZWNrZXJib2FyZCBiZWhpbmQgdGhlIHN3YXRjaCBzbyBhIHdoaXRlIG9yIHRyYW5zbHVjZW50XG4gICAgICAgIC8vIGNvbG91ciBpcyBzdGlsbCB2aXNpYmxlIGFnYWluc3QgdGhlIHBhbmVsLlxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjYzRjN2NjKTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg0NWRlZywgI2NjY2NjYyAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNzUlLCAjY2NjY2NjIDc1JSksXG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNjY2NjY2MgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDc1JSwgI2NjY2NjYyA3NSUpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDhweCA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMCwgNHB4IDRweDtcbiAgICB9XG5cbiAgICAmX19jb2xvdXIge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGZvbnQ6IDUwMCAxMXB4LzEuNCB1aS1tb25vc3BhY2UsIFwiU0YgTW9ub1wiLCBNZW5sbywgbW9ub3NwYWNlO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWJvZHksICM0MDQ0NGQpO1xuICAgIH1cblxuICAgICZfX2NvdW50IHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMjBweDtcbiAgICAgICAgcGFkZGluZzogMXB4IDVweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXBpbGwsIDk5OXB4KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1zdWJ0bGUtcHVycGxlLCAjZjBmMWYyKTtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xuICAgIH1cblxuICAgICZfX21vcmUge1xuICAgICAgICBwYWRkaW5nOiA2cHggdmFyKC0tcy00LCAxNnB4KTtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2YjcyODApO1xuICAgIH1cblxuICAgICZfX2Zvb3Qge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1zLTIsIDhweCkgdmFyKC0tcy00LCAxNnB4KSB2YXIoLS1zLTMsIDEycHgpO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXItc29mdCwgI2YwZjFmMik7XG4gICAgfVxuXG4gICAgJl9fYnRuIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlci1jYXJkLCAjZTFlM2U2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtLCA0cHgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQsICNmZmZmZmYpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjNDA0NDRkKTtcblxuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkLWhvdmVyLCAjZjBmMWYyKTsgfVxuICAgIH1cbn1cblxuLyogTmVpdGhlciBwYW5lbCBtYXkgbWFyayBpdHNlbGYuICovXG4uZGV2LXRva2VucyBbZGF0YS10b2tlbnNdLFxuLmRldi14cmF5IFtkYXRhLXRva2Vuc10ge1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRGV2IGRhcmsgbW9kZSAoZGV2IHJpZ2h0IG9ubHkpXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIERyaXZlbiBieSB3ZWIvanMvZGV2LWRhcmstbW9kZS5qcywgd2hpY2ggc2V0cyBkYXRhLXRoZW1lPVwiZGFya1wiXG4gICBvbiA8aHRtbD4uIFRoYXQgYXR0cmlidXRlIGlzIHdoYXQgTEFZRVIgQiBvZlxuICAgY29tcG9uZW50cy92Mi9kZXNpZ24tdG9rZW5zL19kZXNpZ24tdG9rZW5zLnNjc3MgYWxyZWFkeSBsaXN0ZW5zXG4gICB0bywgc28gZXZlcnkgY29tcG9uZW50IHRoYXQgdXNlcyB0aGUgc2VtYW50aWMgdG9rZW5zIGZsaXBzIGJ5XG4gICBpdHNlbGYuIE5vdGhpbmcgaXMgZm9yY2VkIGhlcmUuXG5cbiAgIFRIQVQgSVMgVEhFIFdIT0xFIFBPSU5UOiBhbnl0aGluZyBzdGlsbCBwYWludGluZyBhIGhhcmRjb2RlZFxuICAgaGV4IHN0YXlzIGxpZ2h0IGFuZCB0aGVyZWZvcmUgc3RhbmRzIG91dC4gTGlnaHQgcGF0Y2hlcyBhcmUgdGhlXG4gICB3b3JrIGxpc3QsIG5vdCBhIGJ1ZyBpbiB0aGlzIGZpbGUuIERvIE5PVCBcImZpeFwiIHRoZW0gYnkgcGlsaW5nXG4gICBvdmVycmlkZXMgaW4gaGVyZTsgZml4IHRoZSBjb21wb25lbnQncyBvd24gU0NTUyB0byB1c2UgdG9rZW5zLlxuXG4gICBUaGlzIGZpbGUgbm8gbG9uZ2VyIHBhaW50cyBhbnl0aGluZy4gSXQgdXNlZCB0byBmb3JjZSBodG1sL2JvZHlcbiAgIHRvIHZhcigtLWMtYmctcGFnZSksIGJlY2F1c2UgdGhvc2UgY2FycmllZCBhIGNvbXBpbGVkLWF3YXkgU0NTU1xuICAgdmFyaWFibGUgdGhhdCBubyB0aGVtZSBjb3VsZCByZWFjaC4gVGhhdCBpcyBmaXhlZCBhdCB0aGUgc291cmNlOlxuICAgcGFydGlhbHMvdjEvYmFzZS5zY3NzIG5vdyBwb2ludHMgaHRtbC9ib2R5IGF0IC0tYy1iZy1wYWdlIGFuZFxuICAgLS1jLXRleHQtYm9keSwgc28gdGhlIHBhZ2Ugc3VyZmFjZSBmbGlwcyBvbiBpdHMgb3duLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmh0bWxbZGF0YS10aGVtZT1cImRhcmtcIl0ge1xuICAgIC8vIFRoZSBvbmUgdGhpbmcgc3RpbGwgbmVlZGVkIGhlcmUsIGFuZCBpdCBpcyBub3QgYSBjb2xvdXI6IHRoaXMgdGVsbHNcbiAgICAvLyB0aGUgYnJvd3NlciB0byBkcmF3IG5hdGl2ZSBzY3JvbGxiYXJzLCBmb3JtIGNvbnRyb2xzIGFuZCB0aGUgY2FyZXQgaW5cbiAgICAvLyB0aGVpciBkYXJrIHZhcmlhbnRzLiBXaXRob3V0IGl0IHRob3NlIHN0YXkgbGlnaHQgYW5kIHJlYWQgYXMgZmFsc2VcbiAgICAvLyBwb3NpdGl2ZXMgd2hlbiBhdWRpdGluZyB3aGF0IGRvZXMgbm90IGZvbGxvdyB0aGUgdGhlbWUuXG4gICAgY29sb3Itc2NoZW1lOiBkYXJrO1xufVxuIiwiQHVzZSAnLi4vbW9kdWxlcy9taXhpbnMnIGFzICo7XG5cbi8vIOKUgOKUgCBSZXNwb25zaXZlIGJyZWFrcG9pbnRzIChzaGFyZWQgYWNyb3NzIHRoZSBwaGFzZWQgcmVzcG9uc2l2ZSB3b3JrKSDilIDilIBcbi8vICAgdGFibGV0IDogY29sbGFwc2UgdGhlIEFjdGl2aXR5IHNpZGViYXIgKyBvdmVyZmxvdyB0aGUgYnVsay1hY3Rpb24gdG9vbGJhclxuLy8gICBtb2JpbGUgOiBzaW5nbGUgY29sdW1uLCBtYXN0ZXLihpJkZXRhaWwgZHJpbGwtZG93blxuJGluYm94LWJwLXRhYmxldDogMTEwMHB4O1xuJGluYm94LWJwLW1vYmlsZTogNzY4cHg7XG5cbiRjb2xvcl8xOiB2YXIoLS1jLXRleHQtbXV0ZWQpOyAgIC8vIHdhcyAjNmM3NTdkLCBzY2h1aWZ0IG5hYXIgIzZlNzI4MFxuJGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7ICAgLy8gd2FzICM0MDQ5OUEsIGlkZW50aWVrIGFhbiBoZXQgdG9rZW5cbiRjb2xvcl8zOiB3aGl0ZTtcbiRjb2xvcl80OiAjMjAyMTI0O1xuJGNvbG9yXzU6ICM1ZjYzNjg7XG4kY29sb3JfNjogdmFyKC0tYy10ZXh0LWJvZHkpOyAgIC8vIHdhcyAjMzIzMTMwLCBzY2h1aWZ0IG5hYXIgIzBiMGIwZFxuJGNvbG9yXzc6ICMwMDA7XG4kY29sb3JfODogIzQ4NTJlYTtcbiRjb2xvcl85OiB2YXIoLS1jLXRleHQtZGlzYWJsZWQtcHApOyAgIC8vIHdhcyAjOEM5MkMyLCBpZGVudGllayBhYW4gaGV0IHRva2VuXG4kY29sb3JfMTE6ICNlMjkzMzQ7XG4kYmFja2dyb3VuZC1jb2xvcl8xOiAjRUVFRkZBO1xuJGJhY2tncm91bmQtY29sb3JfMjogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiRiYWNrZ3JvdW5kLWNvbG9yXzM6ICNkYzM1NDU7XG4kYmFja2dyb3VuZC1jb2xvcl80OiB2YXIoLS1jLWJnLWNhcmQpOyAgIC8vIHdhcyAjZmZmXG4kYmFja2dyb3VuZC1jb2xvcl81OiAjRDlEQkVCO1xuJGJhY2tncm91bmQtY29sb3JfNjogI2U5ZTllOTtcbiRiYWNrZ3JvdW5kLWNvbG9yXzc6ICNmOGY5ZmE7XG4kYmFja2dyb3VuZC1jb2xvcl84OiAjYzNiY2VmO1xuJGJhY2tncm91bmQtY29sb3JfOTogIzQ4NTJlYTtcbiRiYWNrZ3JvdW5kLWNvbG9yXzEwOiB2YXIoLS1jLWJnLWNhcmQpOyAgIC8vIHdhcyB3aGl0ZSwgZGUgdHdlZSBwYW5lbGVuXG4kYmFja2dyb3VuZC1jb2xvcl8xMTogcmdiYSgwLCAwLCAwLCAwLjAyKTtcbiRiYWNrZ3JvdW5kLWNvbG9yXzEyOiByZ2JhKDAsIDEyMCwgMjEyLCAwLjEpO1xuJGJhY2tncm91bmQtY29sb3JfMTM6ICNmOWU2OWU7XG4kYmFja2dyb3VuZC1jb2xvcl8xNDogI2JhY2RlYTtcbiRiYWNrZ3JvdW5kLWNvbG9yXzE1OiAjZWZhZGFjO1xuJGJhY2tncm91bmQtY29sb3JfMTY6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiRiYWNrZ3JvdW5kLWNvbG9yXzE3OiByZ2JhKDAsIDAsIDAsIDAuMzUpO1xuJGJvcmRlci1jb2xvcjogIzQwNDk5QTtcbiRib3JkZXItY29sb3JfMTogdmFyKC0tYy1ib3JkZXItY2FyZCk7ICAgLy8gd2FzICNkZWUyZTYsIHNjaHVpZnQgbmFhciAjZTFlM2U2XG5cbi5pbmJveC1jb250YWluZXIge1xuXHQvLyBDb250YWluZXIgc3RhcnRzIDc2cHggZnJvbSB2aWV3cG9ydCB0b3AgKGJyZWFkY3J1bWIgYmFyIGhlaWdodCkuXG5cdC8vIFVzZSBmaXhlZCBoZWlnaHQgc28gcGFuZWxzIHNjcm9sbCBpbnRlcm5hbGx5LCBwYWdlIGRvZXNuJ3Qgc2Nyb2xsLlxuXHRoZWlnaHQ6IGNhbGMoMTAwdmggLSA3NnB4KTtcblx0bWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDc2cHgpO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHQvLyBUb3AvbGVmdCBicmVhdGhpbmcgcm9vbSBzbyB0aGUgc2VhcmNoIGJveCdzIGZvY3VzIHJpbmcgaXNuJ3QgY2xpcHBlZCBieVxuXHQvLyB0aGlzIG92ZXJmbG93OmhpZGRlbiBhZ2FpbnN0IHRoZSBoZWFkZXIvbmF2LXJhaWwuIFNlYXJjaCArIHBhbmVscyBzaGlmdFxuXHQvLyB0b2dldGhlciwgc28gdGhlaXIgbGVmdCBlZGdlcyBzdGF5IGFsaWduZWQuXG5cdHBhZGRpbmc6IDhweCAwIDAgOHB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uaW5ib3gtc2VsZWN0aW9uLWdyb3VwIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0Z2FwOiA0cHg7XG59XG4uaW5ib3gtY291bnQtZGlzcGxheSB7XG5cdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRnYXA6IDZweDtcblx0aGVpZ2h0OiA0MHB4O1xuXHRwYWRkaW5nOiAwIDEycHg7XG5cdGJvcmRlci1yYWRpdXM6IDhweDtcblx0YmFja2dyb3VuZDogI2U2ZTlmZjtcblx0Y29sb3I6IHZhcigtLWMtYnJhbmQtcHVycGxlKTtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRmb250LXdlaWdodDogNDAwO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0ZmxleC1zaHJpbms6IDA7XG59XG5cbi5zZWFyY2gtYWN0aW9ucy1iYXIge1xuXHRwYWRkaW5nLWJvdHRvbTogOHB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRnYXA6IDE2cHg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdC5zZWFyY2gtc2VjdGlvbiB7XG5cdFx0Ly8gUHJlZmVycyA0MDBweCBhbmQgc3RheXMgdGhlcmUgd2hpbGUgdGhlcmUncyByb29tIChubyBncm93KTsgc2hyaW5rc1xuXHRcdC8vIGRvd24gdG8gMTYwIG9ubHkgd2hlbiB0aGUgdG9vbGJhciBuZWVkcyB0aGUgc3BhY2UuXG5cdFx0ZmxleDogMCAxIDQwMHB4O1xuXHRcdG1pbi13aWR0aDogMTYwcHg7XG5cdFx0bWF4LXdpZHRoOiA0MDBweDtcblx0XHQuc2VhcmNoLWlucHV0LXdyYXBwZXIge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdH1cblx0fVxuXHQuYWN0aW9ucy1zZWN0aW9uIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiAxMnB4O1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAvLyBFbnRyYW5jZTogc3VidGxlIHNsaWRlLWRvd24gKyBmYWRlLiBSZS10cmlnZ2VycyBlYWNoIHRpbWUgdGhlIGJhclxuICAgICAgICAvLyBnb2VzIGZyb20gZGlzcGxheTpub25lIHRvIGZsZXggKGpRdWVyeSAuc2hvdygpKS5cbiAgICAgICAgYW5pbWF0aW9uOiBpbmJveC10b29sYmFyLWluIDE4MG1zIGVhc2Utb3V0O1xuICAgICAgICAuZGl2aWRlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yXzI7XG4gICAgICAgICAgICBtYXJnaW46IDAgNHB4O1xuICAgICAgICB9XG4gICAgICAgIC8vIElubGluZSBidWxrIGFjdGlvbnMgKHdpZGUpIHZzIHRoZSBvdmVyZmxvdyDii64gKG5hcnJvdykuIFRoZSBtZWRpYSBxdWVyeVxuICAgICAgICAvLyBiZWxvdyBzd2FwcyB0aGVtLlxuICAgICAgICAuYWN0aW9ucy1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIH1cbiAgICAgICAgLy8gT3ZlcmZsb3cg4ouuIGFuY2hvciDigJQgaGlkZGVuIHVudGlsIHRoZSBtZWRpYSBxdWVyeSBzd2FwcyBpdCBpbi4gQ2Fycmllc1xuICAgICAgICAvLyBpdHMgb3duIG1lbnUgcG9zaXRpb25pbmcgKHRoZSBwYW5lbC1oZWFkZXIncyAuaW5ib3gtbWVudSBydWxlIGlzIHNjb3BlZFxuICAgICAgICAvLyB0byAubWlkZGxlLXBhbmVsLCBzbyBpdCBkb2Vzbid0IHJlYWNoIGhlcmUpLlxuICAgICAgICAuYWN0aW9ucy1vdmVyZmxvdy1hbmNob3Ige1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIC5pbmJveC1tZW51IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMjAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5pbmJveC1tZW51LW9wZW4gLmluYm94LW1lbnUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IGluYm94LW1lbnUtaW4gMTQwbXMgZWFzZS1vdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblx0fVxufVxuXG4ubWFpbi1jb250ZW50IHtcblx0ZmxleDogMSAxIDA7XG5cdG1pbi1oZWlnaHQ6IDA7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5sZWZ0LXNpZGViYXIge1xuXHRmbGV4OiAwIDAgMTgwcHg7XG5cdHdpZHRoOiAxODBweDtcblx0bWF4LXdpZHRoOiAxODBweDtcblx0bWluLXdpZHRoOiAwO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdGJvcmRlci1yYWRpdXM6IDhweDtcblx0YmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3JfMTA7XG5cdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRib3JkZXItY29sb3JfMTtcblx0cGFkZGluZzogNHB4IDhweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgJi1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTZweCAxMnB4IDIwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB9XG4gICAgaHIge1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBtYXJnaW46IDhweDtcbiAgICB9XG5cdC5zaWRlYmFyLXNlY3Rpb24ge1xuXHRcdG1hcmdpbi1ib3R0b206IDhweDtcblx0XHQuc2lkZWJhci1pdGVtcy1saXN0IHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0Z2FwOiA4cHg7XG5cdFx0XHRtYXJnaW4tdG9wOiA4cHg7XG5cdFx0fVxuXHRcdC5zZWN0aW9uLWhlYWRlciB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdHBhZGRpbmc6IDZweCA4cHg7XG5cdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0Y29sb3I6ICRjb2xvcl82O1xuXHRcdFx0Zm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgICAgICAvLyBDaGV2cm9uOiBmaXhlZCAyMHB4IGNvbHVtbiBzbyB0aGUgaWNvbiBhZnRlciBpdCBhbGlnbnNcbiAgICAgICAgICAgIC8vIHdpdGggdGhlIGljb25zIGluIHRoZSBzdWItaXRlbXMgYmVsb3cuXG4gICAgICAgICAgICA+IGkuY29sbGFwc2UtYnRuIHtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzU7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3JfMTtcbiAgICAgICAgICAgICAgICA+IGkuY29sbGFwc2UtYnRuIHsgY29sb3I6ICRjb2xvcjsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi10aXRsZSB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuc2VjdGlvbi1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogNnB4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgICAgIC5zZWN0aW9uLXRpdGxlIHsgZmxleDogMTsgbWluLXdpZHRoOiAwOyB9XG4gICAgICAgICAgICAgICAgICAgIC5jb3VudCB7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6ICRjb2xvcl85OyBmbGV4LXNocmluazogMDsgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblx0XHR9XG5cdFx0LnNpZGViYXItaXRlbSB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGdhcDogOHB4O1xuICAgICAgICAgICAgLy8gY2hldnJvbiBjb2wgKDIwcHgpICsgZ2FwICg4cHgpID0gMjhweCBpbmRlbnQgYmVmb3JlIGljb25cblx0XHRcdHBhZGRpbmc6IDZweCA4cHggNnB4IDI4cHg7XG5cdFx0XHRjb2xvcjogJGNvbG9yXzY7XG5cdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA4cHg7XG5cdFx0XHR1c2VyLXNlbGVjdDogbm9uZTtcblx0XHRcdGkge1xuXHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdFx0XHR3aWR0aDogMTZweDtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdGNvbG9yOiAkY29sb3JfNjtcblx0XHRcdH1cblx0XHRcdC5zaWRlYmFyLWl0ZW0tbGFiZWwge1xuXHRcdFx0XHRmbGV4OiAxO1xuXHRcdFx0XHRtaW4td2lkdGg6IDA7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0fVxuXHRcdFx0LnNpZGViYXItaXRlbS1jb3VudCB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHRcdFx0Y29sb3I6ICRjb2xvcl85O1xuXHRcdFx0XHRmbGV4LXNocmluazogMDtcblx0XHRcdH1cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJnLXN1YnRsZS1ob3Zlcik7XG5cdFx0XHR9XG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3JfMTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yO1xuXHRcdFx0XHRmb250LXdlaWdodDogNTAwO1xuXHRcdFx0XHRpIHsgY29sb3I6ICRjb2xvcjsgfVxuICAgICAgICAgICAgfVxuXHRcdH1cbiAgICAgICAgLnNlY3Rpb24tbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cdH1cbn1cblxuLm1pZGRsZS1wYW5lbCB7XG5cdC8vIEZsdWlkOiAzMDBweCBmbG9vciBvbiBzbWFsbCBzY3JlZW5zLCBncm93cyBvbmx5IGEgbGl0dGxlIG9uIHdpZGVyXG5cdC8vIHNjcmVlbnMgdXAgdG8gMzgwcHguIFBhbmVsIDMgZ3Jvd3MgbXVjaCBmYXN0ZXIgc28gaXQgc3RheXMgZG9taW5hbnQuXG5cdGZsZXg6IDEgMSAzMDBweDtcblx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcblx0bWluLXdpZHRoOiAzMDBweDtcblx0bWF4LXdpZHRoOiAzODBweDtcblx0bWluLWhlaWdodDogMDtcblx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGJvcmRlci1jb2xvcl8xO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl8xMDtcblx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHQucGFuZWwtaGVhZGVyIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1jb2xvcl8xO1xuXHRcdGhlaWdodDogNTZweDtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdHBhZGRpbmc6IDAgOHB4O1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0LmZpbHRlci10YWJzIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRnYXA6IDRweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yXzY7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgICAgICAgcGFkZGluZzogNnB4IDhweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0XHQuZmlsdGVyLXRhYiB7XG5cdFx0XHRcdHBhZGRpbmc6IDRweCAxMnB4O1xuXHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHRcdGNvbG9yOiAkY29sb3JfMTtcblx0XHRcdFx0Zm9udC1zaXplOiAxcmVtO1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0Jjpub3QoLmFjdGl2ZSkge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3JfMjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC5maWx0ZXItdGFiLmFjdGl2ZSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yXzQ7XG5cdFx0XHRcdGNvbG9yOiAkY29sb3I7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5wYW5lbC1hY3Rpb25zIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRnYXA6IDRweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweCA0cHg7XG5cdFx0fVxuXHRcdC5pbmJveC1tZW51LWFuY2hvciB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHQuaW5ib3gtbWVudSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiBjYWxjKDEwMCUgKyA0cHgpO1xuXHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0ei1pbmRleDogMjAwO1xuXHRcdFx0fVxuXHRcdFx0Ji5pbmJveC1tZW51LW9wZW4gLmluYm94LW1lbnUge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0Ly8gUG9wIG91dCBvZiB0aGUgYnV0dG9uOiBmYWRlICsgc2xpZ2h0IHNjYWxlL2Ryb3AuXG5cdFx0XHRcdHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDtcblx0XHRcdFx0YW5pbWF0aW9uOiBpbmJveC1tZW51LWluIDE0MG1zIGVhc2Utb3V0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQubXVsdGktc2VsZWN0LWhpbnQge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0Z2FwOiA2cHg7XG5cdFx0cGFkZGluZzogNnB4IDEycHg7XG5cdFx0Zm9udC1zaXplOiAxMXB4O1xuXHRcdGNvbG9yOiAkY29sb3JfOTtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA2KTtcblx0XHQmOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfVxuXHRcdC5pbmJveC1zZWxlY3QtY291bnQge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRcdGNvbG9yOiAkY29sb3I7XG5cdFx0fVxuXHRcdC5pbmJveC1zZWxlY3QtY2xlYXIge1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0Y29sb3I6ICRjb2xvcjtcblx0XHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdFx0XHRwYWRkaW5nOiAycHggNnB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNnB4O1xuXHRcdFx0Jjpob3ZlciB7IGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWNvbG9yXzE7IH1cblx0XHR9XG5cdH1cblx0LnRpbWVsaW5lLXNlY3Rpb24ge1xuXHRcdGZsZXg6IDE7XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRwYWRkaW5nOiA0cHggOHB4O1xuXHRcdC50aW1lbGluZS1oZWFkZXIge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdGNvbG9yOiAkY29sb3JfNjtcblx0XHRcdG1hcmdpbi1ib3R0b206IDhweDtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHR9XG5cdFx0Ly8gUmVzZXQgdGhlIHN0YWxlIC5tZXNzYWdlLWl0ZW0gcnVsZXMgaW4gd2ViL2Nzcy92MS9zdHlsZS5jc3MgKGNvbXBpbGVkXG5cdFx0Ly8gZnJvbSBzY3NzL3N0eWxlLnNjc3MsIHdoaWNoIHN0aWxsIGhhcyB0aGUgb2xkIHBhZGRpbmcvbWFyZ2luIGJsb2NrKS5cblx0XHQvLyBzdHlsZS12MS5jc3MgbG9hZHMgYWZ0ZXIgc3R5bGUuY3NzIHNvIHNhbWUtc3BlY2lmaWNpdHkgcnVsZXMgaGVyZSB3aW4uXG5cdFx0Lm1lc3NhZ2UtaXRlbSB7XG5cdFx0XHRwYWRkaW5nOiA0cHggOHB4O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNHB4O1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDhweDtcblx0XHRcdGdhcDogOHB4O1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdH1cblxuXHRcdC8vIEd1YXJhbnRlZSB0aGUgY29tcG9uZW50J3Mgc2VsZWN0ZWQraG92ZXIgc3RhdGUgdXNlcyBkYXJrIHB1cnBsZSxcblx0XHQvLyBub3QgZ3JleS4gVGhlIENTUyB2YXJpYWJsZSBjaGFpbiBjYW4gbG9zZSB0byBhIGxvd2VyLXNwZWNpZmljaXR5XG5cdFx0Ly8gcnVsZSBkZXBlbmRpbmcgb24gY2FzY2FkZSBvcmRlcjsgdGhpcyBzY29wZWQgb3ZlcnJpZGUgd2lucyBjbGVhbmx5LlxuXHRcdHFkbmFwcm8taW5ib3gtbWVzc2FnZS5pbmJveC1tZXNzYWdlLXNlbGVjdGVkOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6ICNkYWRkZjIgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cblxuLnJpZ2h0LXBhbmVsIHtcblx0ZmxleDogOCAxIDA7XG5cdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cdG1pbi13aWR0aDogMDtcblx0b3ZlcmZsb3cteTogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl8xMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi8qIExldCB0aGUgZGV0YWlsIHZpZXcgZmlsbCB0aGUgcGFuZWwgc28gaXRzIFwibm90aGluZyBzZWxlY3RlZFwiIGVtcHR5IHN0YXRlXG4gICBjZW50cmVzIHZlcnRpY2FsbHkgbGlrZSB0aGUgb3RoZXIgcGFuZWwtMyBlbXB0eSBzdGF0ZXMgKHdoaWNoIGxpdmUgaW5cbiAgICNpbmJveC1kZXRhaWwtZW1wdHksIGEgZGlyZWN0IGNoaWxkIG9mIC5yaWdodC1wYW5lbCkuICovXG4jbm90aWZpY2F0aW9uX2RldGFpbC12aWV3IHtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4vLyDilIDilIAgU2tlbGV0b24gbG9hZGVyIChpbmJveCBtZXNzYWdlIGxpc3QpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLmluYm94LXNrZWxldG9uLWNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogNHB4IDhweDtcbiAgICBtaW4taGVpZ2h0OiAxMDhweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICZfX2F2YXRhciAgeyBmbGV4LXNocmluazowOyB3aWR0aDo0OHB4OyBoZWlnaHQ6NDhweDsgYm9yZGVyLXJhZGl1czo1MCU7IH1cbiAgICAmX19ib2R5ICAgIHsgZmxleDoxOyBtaW4td2lkdGg6MDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGdhcDo2cHg7IHBhZGRpbmctdG9wOjRweDsgfVxuICAgICZfX3NlbmRlciAgeyBoZWlnaHQ6MTJweDsgd2lkdGg6NDUlOyB9XG4gICAgJl9fc3ViamVjdCB7IGhlaWdodDoxNHB4OyB3aWR0aDo4MCU7IH1cbiAgICAmX19wcmV2aWV3IHsgaGVpZ2h0OjEycHg7IHdpZHRoOjY1JTsgfVxuICAgICZfX3RhZyAgICAgeyBoZWlnaHQ6MjRweDsgd2lkdGg6ODhweDsgYm9yZGVyLXJhZGl1czoxMnB4OyB9XG59XG4vLyBTdGFnZ2VyLWluIGZvciByZWFsIG1lc3NhZ2VzIGFmdGVyIHNrZWxldG9uIHN3YXBcbkBrZXlmcmFtZXMgaW5ib3gtbXNnLWVudGVyIHtcbiAgICAwJSAgIHsgb3BhY2l0eTowOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSg2cHgpIHNjYWxlKDAuOTgpOyB9XG4gICAgMTAwJSB7IG9wYWNpdHk6MTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7IH1cbn1cbi5pbmJveC1tc2ctc3RhZ2dlciB7XG4gICAgb3BhY2l0eTowO1xuICAgIGFuaW1hdGlvbjogaW5ib3gtbXNnLWVudGVyIDI0MG1zIGN1YmljLWJlemllcigwLjM0LDEuNTYsMC42NCwxKSBmb3J3YXJkcztcbn1cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vLyBUb29sdGlwIG11c3QgcmVuZGVyIGFib3ZlIHRoZSBmdWxsc2NyZWVuIHBvcHVwICh6LWluZGV4OiA5OTk5KVxuLnFkbmFwcm8tdG9vbHRpcCB7IHotaW5kZXg6IDEwMDAxICFpbXBvcnRhbnQ7IH1cblxuLy8gRGVhZGxpbmUgc3RhdHVzIGNvbG91cnMgb24gdGhlIGR1ZS10aW1lIGNoaXAgaW5zaWRlIGluYm94IG1lc3NhZ2VzXG5xZG5hcHJvLWluYm94LW1lc3NhZ2VbZGF0YS1kZWFkbGluZS1zdGF0dXM9XCJvdmVyZHVlXCJdIHtcbiAgICAuaW5ib3gtbWVzc2FnZS1kdWUsXG4gICAgLmluYm94LW1lc3NhZ2UtZHVlIHFkbmFwcm8taWNvbiB7IGNvbG9yOiAjZDkzMDI1ICFpbXBvcnRhbnQ7IH0gLy8gcmVkXG59XG5xZG5hcHJvLWluYm94LW1lc3NhZ2VbZGF0YS1kZWFkbGluZS1zdGF0dXM9XCJkdWUtc29vblwiXSB7XG4gICAgLmluYm94LW1lc3NhZ2UtZHVlLFxuICAgIC5pbmJveC1tZXNzYWdlLWR1ZSBxZG5hcHJvLWljb24geyBjb2xvcjogI2U4ODEwYSAhaW1wb3J0YW50OyB9IC8vIGFtYmVyL29yYW5nZVxufVxuXG4vLyBPdmVycmlkZSBzdHlsZS5jc3Mgc3RhbGUgLm1lc3NhZ2UtaXRlbTpob3ZlciB7IHJnYmEoMCwwLDAsMC4wMikgfSB3aGljaFxuLy8ga2lsbHMgdGhlIGNvbXBvbmVudCdzIGludGVuZGVkICNmMGYxZjIgKGdyZXktNTApIGhvdmVyLiBTYW1lIHNwZWNpZmljaXR5XG4vLyAoMCwzLDEpIGJ1dCBzdHlsZS12MS5jc3MgbG9hZHMgbGF0ZXIg4oaSIHdpbnMuXG4ubWlkZGxlLXBhbmVsIC50aW1lbGluZS1zZWN0aW9uIC5tZXNzYWdlLWl0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW1zZy1iZy1ob3ZlciwgdmFyKC0tYy1iZy1zdWJ0bGUtaG92ZXIpKSAhaW1wb3J0YW50O1xufVxuXG4vLyBMb25nIHByaW1hcnkgY29udGVudCDihpIgbWluaW1hbCBob3Zlci1yZXZlYWwgc2Nyb2xsYmFyLlxuLnJpZ2h0LXBhbmVsLFxuLm1pZGRsZS1wYW5lbCAudGltZWxpbmUtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgcWRuYS1zY3JvbGxiYXI7XG59XG4vLyBTaG9ydCBsaXN0IOKGkiBubyB2aXNpYmxlIGJhciwgc3RpbGwgc2Nyb2xsYWJsZSBpZiBpdCBldmVyIG92ZXJmbG93cy5cbi5sZWZ0LXNpZGViYXIge1xuICAgIEBpbmNsdWRlIHFkbmEtc2Nyb2xsYmFyLWhpZGRlbjtcbn1cbi5pbmJveC1ib2R5IHtcbiAgICAvLyBGaWdtYTogcHgtMjAsIGdhcC0xNiBiZXR3ZWVuIHNlY3Rpb25zLiBObyB0b3AgcGFkZGluZyDigJQgdGl0bGUgaXMgZmx1c2guXG4gICAgcGFkZGluZzogMCAyMHB4IDEycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcblxuICAgIC8vIOKUgOKUgCBXYXQgZXIgdmFuIC5pbmJveC1ib2R5LXRpdGxlIE1FRVZFUkhVSVNERSBuYWFyIHFkbmFwcm8tbWVzc2FnZS1oZWFkZXIg4pSA4pSAXG4gICAgLy8gMzEuMDcuMjAyNiwgYmVzbHVpdCA3MC4gRGUga29wIHZhbiBlZW4gYmVyaWNodCBpcyBudSBkYXQgY29tcG9uZW50LCBlbiBkZVxuICAgIC8vIGNsYXNzZXMgLmluYm94LWJvZHktdGl0bGUgLyAuaW5ib3gtYm9keS1oZWFkZXIga29tZW4gbmlldCBtZWVyIGluIGRlIG1hcmt1cFxuICAgIC8vIHZvb3IgKGh1biByZWdlbHMgaGllcm9uZGVyIG1hdGNoZW4gZHVzIG5pZXRzIG1lZXI7IGRpZSBzdGFhbiBlciBub2cgdG90IEphblxuICAgIC8vIGhldCBzY2hlcm0gaGVlZnQgZ2V6aWVuKS4gRHJpZSBkaW5nZW4gZGllIGFhbiBkaWUgY2xhc3NlcyBoaW5nZW4sIGhvcmVuIGJpalxuICAgIC8vIERFWkUgUEFHSU5BIGVuIG5pZXQgaW4gaGV0IGNvbXBvbmVudCwgZW4gem91ZGVuIHpvbmRlciBkaXQgYmxvayBzdGlsIHppam5cbiAgICAvLyB2ZXJkd2VuZW46XG4gICAgLy8gICAxLiBEZSBrb3AgUExBS1QgYm92ZW5hYW4gdGlqZGVucyBoZXQgc2Nyb2xsZW4uIERhdCBpcyBlZW4ga2V1emUgdmFuIGRpdFxuICAgIC8vICAgICAgc2NoZXJtIG1ldCB6aWpuIGVpZ2VuIHNjcm9sbGVuZGUgcGFuZWVsOyBkZSBQV0EgdnJhYWd0IGhldCBuaWV0IGVuIGhldFxuICAgIC8vICAgICAgY29tcG9uZW50IGhvb3J0IGVyIG5pZXRzIHZhbiB0ZSB3ZXRlbi5cbiAgICAvLyAgIDIuIERlIGtvcCBsb29wdCB2YW4gcmFuZCB0b3QgcmFuZCwgZHVzIGJ1aXRlbiBkZSAyMHB4IHZhbiAuaW5ib3gtYm9keS5cbiAgICAvLyAgICAgIE9vayBkYXQgaXMgZGUgb3BtYWFrIHZhbiBkZXplIHBhZ2luYS5cbiAgICAvLyAgIDMuIERlIGtub3BwZW4gaW4gc2xvdD1cImFjdGlvbnNcIiB6aWpuIGtpbmRlcmVuIGRpZSBERVpFIFBBR0lOQSBhYW5sZXZlcnQsXG4gICAgLy8gICAgICBkdXMgbWFnIGRlemUgcGFnaW5hIHplZ2dlbiBob2UgemUgZXJ1aXR6aWVuOiBlZW4gYWN0aWV2ZSB0b2dnbGUga2xldXJ0XG4gICAgLy8gICAgICBhbGxlZW4gemlqbiBpY29vbiBwYWFycywgZW4gZWVuIGdlYmxva2tlZXJkZSBhY3RpZSB6aWV0IHVpdGdlc2NoYWtlbGQgdWl0XG4gICAgLy8gICAgICBtYWFyIGhvdWR0IHBvaW50ZXItZXZlbnRzIHpvZGF0IGRlIHRvb2x0aXAgbWV0IGRlIHJlZGVuIG5vZyB3ZXJrdC5cbiAgICAvLyBHZWVuIHZhbiBkZXplIGRyaWUgaXMgZWVuIG92ZXJyaWRlIHZhbiBoZXQgY29tcG9uZW50OiAxIGVuIDIgemlqbiBwbGFhdHNpbmdcbiAgICAvLyBvcCBkZSBwYWdpbmEsIDMgZ2FhdCBvdmVyIGRlIGVpZ2VuIHNsb3Qta2luZGVyZW4uXG4gICAgcWRuYXByby1tZXNzYWdlLWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWNvbG9yXzEwO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgbWFyZ2luOiAwIC0yMHB4O1xuXG4gICAgICAgIC5taC10aXRsZS1hY3Rpb25zIHtcbiAgICAgICAgICAgIHFkbmFwcm8taWNvbltuYW1lPVwiYm9va21hcmtcIl0sXG4gICAgICAgICAgICBxZG5hcHJvLWljb25bbmFtZT1cInNxdWFyZS1yb3VuZGVkLWJhZGdlXCJdIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzQ2NTJmMztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHFkbmFwcm8tYnV0dG9uLmluYm94LWFjdGlvbi1ibG9ja2VkIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIHFkbmFwcm8taWNvbiB7IGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLXRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAvLyBtYXRjaCBwYW5lbC0yIGhlYWRlciBoZWlnaHQgZXhhY3RseSAoNTZweClcbiAgICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAvLyBzdGlja3kgc28gdGhlIHRpdGxlICsgYWN0aW9ucyBzdGF5IHZpc2libGUgd2hpbGUgc2Nyb2xsaW5nLlxuICAgICAgICAvLyBObyBuZWdhdGl2ZSB0b3AgbWFyZ2luIOKAlCB0aGF0IGNhdXNlZCB0aGUgc3RpY2t5IGJhciB0byBleHRlbmRcbiAgICAgICAgLy8gYWJvdmUgdGhlIGNvbnRhaW5lciBhbmQgYmxvY2sgY2xpY2tzIG9uIHRoZSBtZXNzYWdlIGxpc3QuXG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtY29sb3JfMTA7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAvLyBmdWxsLWJsZWVkOiBicmVhayBvdXQgb2YgdGhlIDIwcHggaG9yaXpvbnRhbCBwYWRkaW5nIG9ubHkuXG4gICAgICAgIG1hcmdpbjogMCAtMjBweDtcbiAgICAgICAgcGFkZGluZzogMCAwIDAgMjBweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMCk7XG4gICAgICAgICYtbGFiZWwge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgfVxuICAgICAgICAmLWFjdGlvbnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGdhcDogNHB4O1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgIC8vIEFjdGl2ZSB0b2dnbGUgc3RhdGUgPSBvbmx5IHRoZSAoZmlsbGVkKSBpY29uIHR1cm5zIHB1cnBsZSxcbiAgICAgICAgICAgIC8vIG5vdCB0aGUgd2hvbGUgYnV0dG9uLiBNYXRjaGVzIHRoZSBib29rbWFya2VkIGxvb2sgaW4gdGhlIGxpc3QuXG4gICAgICAgICAgICBxZG5hcHJvLWljb25bbmFtZT1cImJvb2ttYXJrXCJdLFxuICAgICAgICAgICAgcWRuYXByby1pY29uW25hbWU9XCJzcXVhcmUtcm91bmRlZC1iYWRnZVwiXSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM0NjUyZjM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBIYW5kb3ZlcjogZGVsZXRlL2FyY2hpdmUgYXJlIG5vdCBhbGxvd2VkLiBMb29rIGRpc2FibGVkIGJ1dCBrZWVwXG4gICAgICAgICAgICAvLyBwb2ludGVyLWV2ZW50cyBzbyB0aGUgZXhwbGFpbmluZyB0b29sdGlwIHN0aWxsIHNob3dzIG9uIGhvdmVyLlxuICAgICAgICAgICAgcWRuYXByby1idXR0b24uaW5ib3gtYWN0aW9uLWJsb2NrZWQge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgcWRuYXByby1pY29uIHsgY29sb3I6IHZhcigtLWMtdGV4dC1kaXNhYmxlZCk7IH1cbiAgICAgICAgICAgIH1cblxuLy8gRG90cy1tZW51OiBzYW1lIGJsb2NrZWQgcGF0dGVybiBmb3IgbWVudSBpdGVtc1xuI2luYm94LWRvdHMtbWVudSBxZG5hcHJvLW1lbnUtaXRlbS5pbmJveC1kb3RzLWJsb2NrZWQge1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0byAhaW1wb3J0YW50O1xuICAgIC5tZW51LWl0ZW0taWNvbiB7IGNvbG9yOiB2YXIoLS1jLXRleHQtZGlzYWJsZWQpICFpbXBvcnRhbnQ7IH1cbn1cbiAgICAgICAgICAgIC5hY3Rpb24tYnRuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgICAgICAgICAgICAgICY6aG92ZXI6bm90KC5hY3Rpb24tYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl81O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl84O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYuYWN0aW9uLWJsb2NrIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5kaXZpZGVyIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwcHg7IFxuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgJGJhY2tncm91bmQtY29sb3JfMjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYtaGVhZGVyIHtcbiAgICAgICAgLy8gRW50cmFuY2Ugd2hlbiBhIG1lc3NhZ2Ugb3BlbnMgKFJhY3RpdmUgcmVjcmVhdGVzIHRoaXMgb24gZWFjaCBvcGVuKS5cbiAgICAgICAgYW5pbWF0aW9uOiBpbmJveC1kZXRhaWwtaW4gMjAwbXMgZWFzZS1vdXQ7XG4gICAgICAgIC8vIGZ1bGwtYmxlZWQgdGhpbiBkaXZpZGVyOiBicmVhayBvdXQgb2YgdGhlIDIwcHggYm9keSBwYWRkaW5nXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTApO1xuICAgICAgICAvLyBUaWdodGVyIHRvcC9ib3R0b20gc3BhY2luZyAoS2ltIDIwMjYtMDYtMDcpOiB+MTAgQ1NTLXB4ICg9IDIwIGRldmljZS1weFxuICAgICAgICAvLyBvbiBoZXIgUmV0aW5hIHNjcmVlbikgYmV0d2VlbiB0aGUgdGl0bGUgZGl2aWRlciBhbmQgdGhlIGF2YXRhciwgYW5kXG4gICAgICAgIC8vIGJldHdlZW4gdGhlIHRhZ3MgYW5kIHRoaXMgZGl2aWRlci4gLTYgY2FuY2VscyBwYXJ0IG9mIHRoZSAxNnB4XG4gICAgICAgIC8vIC5pbmJveC1ib2R5IGZsZXggZ2FwIGFib3ZlIHRoZSBoZWFkZXIuXG4gICAgICAgIG1hcmdpbjogLTZweCAtMjBweCAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICAgICAgICAuaW5ib3gtYm9keS11c2VyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMCAyNHB4IDAgMjRweDtcbiAgICAgICAgICAgIC51c2VyLWF2YXRhciB7XG4gICAgICAgICAgICAgICAgLmF2YXRhci1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3JfMTM7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzExO1xuICAgICAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnVzZXItaW5mbyB7XG4gICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDZweCAwcHg7XG4gICAgICAgICAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgJi1uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfNjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLWVtYWlsIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfMTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5pbmJveC1ib2R5LW1ldGEge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzE7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGdhcDogNHB4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgLnRpbWUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmRheXMge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmluYm94LWJvZHktZGV0YWlscyB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAuZW1haWwtdG8tYmxvY2sge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmVtYWlsLWNjLWJsb2NrIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5pbmJveC1ib2R5LWZpZWxkIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl8xO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgICAgICAgICAgICAmLWJvbGQge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5zdGF0dXMtYmFkZ2VzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICAgICAgICAuYmFkZ2Uge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5iYWRnZS5iZy1kYW5nZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yXzE1ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYmFkZ2UuYmctc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl84ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYmFkZ2UuYmctd2FybmluZyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3JfMTMgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5iYWRnZS5iZy1pbmZvIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl8xNCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmJ0bi1zbSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl84O1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLWNvbnRlbnQge1xuICAgICAgICAvLyBGaWdtYTogZmxleCBjb2x1bW4sIGdhcC00cHggYmV0d2VlbiBRJkEgaXRlbXNcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIC5pbmJveC1ib2R5LWdyb3VwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAvLyBGaWdtYTogcHgtOCBweS00XG4gICAgICAgICAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIC5pbmJveC1ib2R5LWxhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgLy8gTm9kZS10eXBlIE1ESS1pY29vbiB2w7PDs3IgZGUgdnJhYWc6IGxpY2h0Z3JpanMgZW4gc3VidGllbCwgem9kYXQgZGVcbiAgICAgICAgICAgICAgICAvLyB2cmFhZ3Rla3N0IHplbGYgbGVpZGVuZCBibGlqZnQuXG4gICAgICAgICAgICAgICAgLmluYm94LXEtdHlwZS1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2MyYzJjMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gbm9kZS1pZCBhY2h0ZXIgZGUgdnJhYWc6IGtsZWluLCBsaWNodGdyaWpzLCB2ZXJ0aWNhYWwgZ2VjZW50cmVlcmRcbiAgICAgICAgICAgICAgICAvLyAoaGV0IGxhYmVsIGlzIGFsIGRpc3BsYXk6ZmxleC9hbGlnbi1pdGVtczpjZW50ZXIpLiBmb250LXdlaWdodCB0ZXJ1Z1xuICAgICAgICAgICAgICAgIC8vIG5hYXIgbm9ybWFhbCDigJQgaGV0IGxhYmVsIHplbGYgaXMgNjAwLlxuICAgICAgICAgICAgICAgIC5pbmJveC1xLW5vZGUtaWQge1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNjMmMyYzI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmluYm94LWJvZHktdmFsdWUge1xuICAgICAgICAgICAgICAgIC8vIExhYXQgaGV0IGFudHdvb3JkIHVpdGxpam5lbiBtZXQgZGUgdnJhYWdURUtTVCBpLnAudi4gbWV0IGhldCBpY29vbjpcbiAgICAgICAgICAgICAgICAvLyBoZXQgbm9kZS10eXBlLWljb29uIGlzIDE4cHggYnJlZWQgKyA2cHggbWFyZ2UgPSAyNHB4IGluc3ByaW5naW5nLlxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yXzQ7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgJi5zdWItbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAudGFzay1zdGF0dXMge1xuICAgICAgICAgICAgLy8gU3RhY2sgYWJvdmUgdGhlIGRpdmlkZXIgPGhyPiAod2hpY2ggZm9sbG93cyBpbiB0aGUgRE9NIGFuZCBpc1xuICAgICAgICAgICAgLy8gcHVsbGVkIHVwIHRvIG92ZXJsYXApLiBUaGUgYmxvY2sncyBvcGFxdWUgI2ZmZiBiZyB0aGVuIGJyZWFrc1xuICAgICAgICAgICAgLy8gdGhlIGxpbmUgaW5zdGVhZCBvZiB0aGUgbGluZSBydW5uaW5nIHRocm91Z2ggdGhlIHBpbGwuXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yXzk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgZ2FwOiAyNHB4O1xuICAgICAgICAgICAgJi1ibG9jayB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yXzU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA2cHggMTZweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl80O1xuICAgICAgICAgICAgICAgIC5zdGF0dXMtYmFkZ2Uge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl8xNDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMnB4IDhweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAudXNlci1hdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICAuYXZhdGFyLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3JfMTM7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfMTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpmaXJzdHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGhyIHtcbiAgICAgICAgICAgIC8vIGZ1bGwtYmxlZWQ7IG5lZ2F0aXZlIHRvcCBrZWVwcyB0aGUgdGFzay1zdGF0dXMgcGlsbCBvdmVybGFwcGluZ1xuICAgICAgICAgICAgLy8gdGhlIGxpbmUuIENvbG91ciArIHRoaWNrbmVzcyBtYXRjaCB0aGUgcGlsbCBib3JkZXIgKCNEOURCRUIpIHNvXG4gICAgICAgICAgICAvLyB0aGUgbGluZSBhbmQgdGhlIHRpbWVsaW5lIHBpbGwgcmVhZCBhcyBvbmUuIEJvdHRvbSBtYXJnaW4gY2xlYXJzXG4gICAgICAgICAgICAvLyB0aGUgcGlsbDogdGhlIG5lZ2F0aXZlIHRvcCBwdWxscyB0aGUgbGluZSBpbnRvIHRoZSBwaWxsLCBzbyB0aGVcbiAgICAgICAgICAgIC8vIHBpbGwgZXh0ZW5kcyB+MjZweCBCRUxPVyB0aGUgbGluZSDigJQgYW4gOHB4IGJvdHRvbSBtYXJnaW4gbGV0IHRoZVxuICAgICAgICAgICAgLy8gZmlyc3QgcXVlc3Rpb24gY29sbGlkZSB3aXRoIGl0LiAyOHB4IGdpdmVzIHRoZSBzYW1lIGNsZWFyYW5jZSB0aGVcbiAgICAgICAgICAgIC8vIGlucHV0LWZvb3RlciBhbHJlYWR5IHVzZXMgKG1hcmdpbi10b3A6MnJlbSkuIEZvciB0aGUgXCJhZmdlcm9uZFwiXG4gICAgICAgICAgICAvLyA8aHI+IChmb2xsb3dlZCBieSB0aGUgZm9vdGVyKSB0aGUgdHdvIHZlcnRpY2FsIG1hcmdpbnMgY29sbGFwc2UsXG4gICAgICAgICAgICAvLyBzbyB0aGF0IGNhc2UgaXMgdmlzdWFsbHkgdW5jaGFuZ2VkLlxuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1jb2xvcl81O1xuICAgICAgICAgICAgbWFyZ2luOiAtMnJlbSAtMjRweCAyOHB4O1xuICAgICAgICB9XG4gICAgICAgIC8vIERlIGtub3BwZW5iYWxrIG9uZGVyIGVlbiBvdmVyZHJhY2h0IGlzIHNpbmRzIDMxLjA3LjIwMjYgaGV0IGNvbXBvbmVudFxuICAgICAgICAvLyBxZG5hcHJvLW1lc3NhZ2UtYWN0aW9uYmFyIChiZXNsdWl0IDcwKS4gQWxsZWVuIGRlIE1BUkdFIGhvb3J0IGhpZXIgdGUgYmxpanZlbiBlblxuICAgICAgICAvLyBuaWV0IGluIGRhdCBjb21wb25lbnQ6IGhpaiBiZXN0YWF0IG9tIGRlIGxhYXRzdGUgdGlqZGxpam4tcGlsIHRlIG9udHdpamtlbiwgZW4gZGF0XG4gICAgICAgIC8vIGlzIGlldHMgdmFuIERFWkUgcGFnaW5hLiBIZXQgY29tcG9uZW50IHdlZXQgbmlldCBkYXQgZXIgZWVuIHRpamRsaWpuIGJvdmVuIHN0YWF0IGVuXG4gICAgICAgIC8vIG1vZXQgb29rIGJydWlrYmFhciB6aWpuIG9wIGVlbiBwbGVrIHdhYXIgZGllIGVyIG5pZXQgaXMgKGRlIFBXQSBoZWVmdCBnZWVuIHBpbCkuXG4gICAgICAgIC8vIFpvbmRlciBkZXplIHJlZ2VsIHdhcyBkaWUgc2NoZWlkaW5nIHN0aWwgdmVyZHdlbmVuOiBkZSBvdWRlIC5pbnB1dC1mb290ZXItcmVnZWxcbiAgICAgICAgLy8gaGllcm9uZGVyIG1hdGNodCBuaWV0cyBtZWVyLlxuICAgICAgICBxZG5hcHJvLW1lc3NhZ2UtYWN0aW9uYmFyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRE9ERSBSRUdFTCBzaW5kcyAzMS4wNy4yMDI2LCBiZXd1c3QgbGF0ZW4gc3RhYW4gdG90IEphbiBoZXQgc2NoZXJtIGhlZWZ0IGdlemllbjpcbiAgICAgICAgLy8gLmlucHV0LWZvb3RlciBrb210IG5pZXQgbWVlciBpbiBkZSBtYXJrdXAgdm9vci4gV2VnaGFsZW4ga2FuIHpvZHJhIGRpZSB0ZXN0IHJvbmQgaXM7XG4gICAgICAgIC8vIG51IHdlZ2hhbGVuIHpvdSBiZXRla2VuZW4gZGF0IGVlbiB0ZXJ1Z2RyYWFpIHZhbiBkZSBvbXpldHRpbmcgZWVuIGthYWwgYmxvayBvcGxldmVydC5cbiAgICAgICAgLmlucHV0LWZvb3RlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl8xO1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgICAgIC8vIENsZWFyIHRoZSB0aW1lbGluZSBwaWxsOiB0aGUgPGhyPiBhYm92ZSBpcyBwdWxsZWQgdXAgaW50byB0aGUgcGlsbCxcbiAgICAgICAgICAgIC8vIHNvIHRoZSBwaWxsIGV4dGVuZHMgfjIwcHggYmVsb3cgdGhlIGxpbmUuIFN0YXJ0IHRoZSBmb290ZXIgYm94IGJlbG93XG4gICAgICAgICAgICAvLyBpdCBpbnN0ZWFkIG9mIG92ZXJsYXBwaW5nLiAoQ29sbGFwc2VzIHdpdGggdGhlIGhyJ3MgOHB4IGJvdHRvbSBtYXJnaW4uKVxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgICAgICAmLWluZm8ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLWFjdGlvbi1idG4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICAuaW5ib3gtc2Vjb25kYXJ5LWJ0biB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmluYm94LXByaW1hcnktYnRuIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl8zO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAyMHB4O1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4ubXVsdGlwbGUtc2VsZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGhlaWdodDogNzJ2aDtcbiAgICAmLWJsb2Nre1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICAmLWltYWdlIHtcbiAgICAgICAgICAgIGhlaWdodDogMTc1cHg7XG4gICAgICAgICAgICB3aWR0aDogMTc1cHg7O1xuICAgICAgICB9XG4gICAgICAgICYtbWVzc2FnZSB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yXzg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmN1c3RvbS1wb3B1cCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogNTBweDtcbiAgICBsZWZ0OiAxMDBweDtcbiAgICB3aWR0aDogNjAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDI1cHggJGJhY2tncm91bmQtY29sb3JfMTc7XG4gICAgei1pbmRleDogOTk5OTtcbiAgICBoZWlnaHQ6IDkwdmg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgLy8gcG9wdXAgaXRzZWxmIGRvZXNuJ3Qgc2Nyb2xsIOKAlCBvbmx5IHRoZSBib2R5IGluc2lkZSBkb2VzXG4gICAgcmVzaXplOiBub25lOyAvLyBkaXNhYmxlIG5hdGl2ZSBncmlwOyBqUXVlcnkgVUkgaGFuZGxlcyByZXNpemVcblxuICAgIC8vIE1vZGVybiByZXNpemUgaGFuZGxlIOKAlCByZXBsYWNlcyB0aGUgbmF0aXZlIGJyb3dzZXIgcmVzaXplIGdyaXAuXG4gICAgLy8gcmlnaHQ6IDEycHggPSA0cHggbWFyZ2luICsgOHB4IHNjcm9sbGJhciB3aWR0aCwgc28gdGhlIGhhbmRsZVxuICAgIC8vIG5ldmVyIG92ZXJsYXBzIHRoZSBzY3JvbGxiYXIgd2hlbiBjb250ZW50IG92ZXJmbG93cy5cbiAgICAudWktcmVzaXphYmxlLXNlIHtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgcmlnaHQ6IDEycHg7XG4gICAgICAgIGJvdHRvbTogNHB4O1xuICAgICAgICBjdXJzb3I6IHNlLXJlc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgLy8gVHdvIGRpYWdvbmFsIGxpbmVzIGxpa2UgYSBtb2Rlcm4gZ3JpcFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICBtYXJnaW46IDVweCAwIDAgNXB4O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDNweCAwO1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIC51aS1yZXNpemFibGUtaGFuZGxlIHsgei1pbmRleDogMTAwOyB9XG4gICAgJi1ib2R5IHtcbiAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgLnVpLWRyYWdnYWJsZS1oYW5kbGUge1xuICAgICAgICAgICAgY3Vyc29yOiBtb3ZlO1xuICAgICAgICB9XG4gICAgICAgIC5jbG9zZS1wb3B1cCB7XG4gICAgICAgICAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcl8yO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnBvcHVwLWJhY2tkcm9wIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWNvbG9yXzg7XG4gICAgei1pbmRleDogOTk5ODtcbiAgICBvcGFjaXR5OiAwLjI7XG59XG5cbi50aXRsZS1iYXIge1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLXB1cnBsZSk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDEycHggMjRweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1jb2xvcl8xO1xufVxuXG4vLyBEZWZhdWx0cyBCRUZPUkUgdGhlIG1lZGlhIGJsb2NrcyBiZWxvdywgc28gdGhlIOKJpDc2OC/iiaQxMTAwIGBkaXNwbGF5YCBydWxlc1xuLy8gKHNhbWUgc3BlY2lmaWNpdHkpIHdpbiBieSBzb3VyY2Ugb3JkZXIgd2hlbiB0aGV5IG1hdGNoLlxuLmluYm94LXNpZGViYXItdG9nZ2xlIHsgZGlzcGxheTogbm9uZTsgfSAgICAgICAgICAvLyBvbmx5IHNob3duIOKJpDExMDBweFxuLmluYm94LW1vYmlsZS1iYWNrICAgIHsgZGlzcGxheTogbm9uZTsgfSAgICAgICAgICAvLyBvbmx5IHNob3duIOKJpDc2OHB4IChkcmlsbC1kb3duKVxuXG4vKiDilIDilIAgUGhhc2UgMzogbW9iaWxlICjiiaQ3NjhweCkg4oCUIG1hc3Rlci1kZXRhaWwgZHJpbGwtZG93biDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIE9uZSBwYW5lIGF0IGEgdGltZS4gVGhlIG1lc3NhZ2UgbGlzdCBpcyB0aGUgZGVmYXVsdCAoXCJtYXN0ZXJcIik7IHRhcHBpbmcgYVxuICAgbWVzc2FnZSBzbGlkZXMgaW4gdGhlIGRldGFpbCB3aXRoIGEg4oaQIGJhY2sgYnV0dG9uIHRvIHJldHVybi4gVGhlIEFjdGl2aXR5XG4gICBkcmF3ZXIgKGZyb20gdGhlIOKJpDExMDAgYmxvY2sgYWJvdmUpIHN0aWxsIG92ZXJsYXlzIHZpYSB0aGUg4piwIHRvZ2dsZS4gVGhpc1xuICAgcmVwbGFjZXMgdGhlIG9sZCB0aHJlZS1wYW5lbCB2ZXJ0aWNhbCBzdGFjaywgd2hpY2ggd2FzIGltcHJhY3RpY2FsIG9uIGEgcGhvbmUuICovXG5AbWVkaWEgKG1heC13aWR0aDogI3skaW5ib3gtYnAtbW9iaWxlfSkge1xuXHQuaW5ib3gtY29udGFpbmVyIHtcblx0XHRtYXgtd2lkdGg6IDc2OHB4O1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHR9XG5cblx0Ly8gS2VlcCB0aGUg4piwIHRvZ2dsZSArIHNlYXJjaCBvbiBvbmUgcm93IChleHBsaWNpdDogYSBzdGFsZSAvY3NzL3YxL3N0eWxlLmNzc1xuXHQvLyBzdGlsbCBzaGlwcyBhIGZsZXgtZGlyZWN0aW9uOmNvbHVtbiBoZXJlLCBzbyB3ZSBtdXN0IG92ZXJyaWRlIGl0KS4gU2VhcmNoXG5cdC8vIGZpbGxzIHRoZSByZXN0IG9mIHRoZSByb3cgYmVzaWRlIHRoZSB0b2dnbGUuXG5cdC5zZWFyY2gtYWN0aW9ucy1iYXIge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0fVxuXHQuc2VhcmNoLWFjdGlvbnMtYmFyIC5zZWFyY2gtc2VjdGlvbiB7XG5cdFx0ZmxleDogMSAxIGF1dG87XG5cdFx0bWF4LXdpZHRoOiBub25lO1xuXHR9XG5cblx0Ly8gTGlzdCArIGRldGFpbCBhcmUgc3RhY2tlZCBhbmQgc2xpZGUgaG9yaXpvbnRhbGx5OyBvbmx5IG9uZSBzaG93cyBhdCBhIHRpbWUuXG5cdC8vICgubGVmdC1zaWRlYmFyIHN0YXlzIHRoZSBhYnNvbHV0ZSBvdmVybGF5IGRyYXdlciBmcm9tIHRoZSDiiaQxMTAwIGJsb2NrLilcblx0Lm1pZGRsZS1wYW5lbCxcblx0LnJpZ2h0LXBhbmVsIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7ICAgICAvLyBiZWF0IHRoZSBiYXNlIGB3aWR0aDogYXV0byAhaW1wb3J0YW50YFxuXHRcdG1pbi13aWR0aDogMDtcblx0XHRtYXgtd2lkdGg6IG5vbmU7XG5cdFx0bWF4LWhlaWdodDogbm9uZTsgICAgICAgICAgIC8vIHN0YWxlIC9jc3MvdjEvc3R5bGUuY3NzIGNhcHMgdGhlc2UgYXQgMjAwLzMwMHB4XG5cdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDI4MG1zIGN1YmljLWJlemllciguMiwgLjcsIC4zLCAxKTtcblx0XHR3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuXHR9XG5cdC5taWRkbGUtcGFuZWwgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7ICAgIHotaW5kZXg6IDI7IH1cblx0LnJpZ2h0LXBhbmVsICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgei1pbmRleDogMzsgfVxuXG5cdC8vIERldGFpbCBvcGVuOiBsaXN0IHNsaWRlcyBvdXQgbGVmdCwgZGV0YWlsIHNsaWRlcyBpbjsgZHJvcCB0aGUgc2VhcmNoIGJhciBzb1xuXHQvLyB0aGUgZGV0YWlsIHJlYWRzIGZ1bGwtc2NyZWVuLlxuXHQuaW5ib3gtY29udGFpbmVyLm1vYmlsZS1kZXRhaWwtb3BlbiB7XG5cdFx0LnNlYXJjaC1hY3Rpb25zLWJhciB7IGRpc3BsYXk6IG5vbmU7IH1cblx0XHQubWlkZGxlLXBhbmVsIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuXHRcdC5yaWdodC1wYW5lbCAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cblx0fVxuXG5cdC8vIOKGkCBiYWNrIGJ1dHRvbiBhdCB0aGUgdG9wIG9mIHRoZSBkZXRhaWwgcGFuZS5cblx0LmluYm94LW1vYmlsZS1iYWNrIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0XHRtYXJnaW46IDhweCAwIDAgOHB4O1xuXHR9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkgYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuXHQubGVmdC1zaWRlYmFyIHtcblx0XHR3aWR0aDogMTgwcHg7XG5cdH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuXHQubGVmdC1zaWRlYmFyIHtcblx0XHR3aWR0aDogMTgwcHg7XG5cdH1cbn1cblxuLyog4pSA4pSAIFBoYXNlIDI6IHRhYmxldCAoNzY54oCTMTEwMHB4KSDigJQgQWN0aXZpdHkgc2lkZWJhciBiZWNvbWVzIGEgc2xpZGUtaW4gZHJhd2VyIOKUgOKUgFxuICAgSW4gdGhpcyBiYW5kIHRoZSBsaXN0ICsgZGV0YWlsIG5lZWQgdGhlIGZ1bGwgcm93LCBzbyB0aGUgQWN0aXZpdHkgcGFuZSBsZWF2ZXNcbiAgIHRoZSBmbG93IGFuZCBvcGVucyBvbiBkZW1hbmQgYXMgYW4gb3ZlcmxheSBmcm9tIHRoZSBsZWZ0LiBBIFwi4piwIEFjdGl2aXR5XCIgdG9nZ2xlXG4gICBpbiB0aGUgbGlzdCBoZWFkZXIgb3BlbnMgaXQ7IHRoZSBzY3JpbSBvciBwaWNraW5nIGEgZmlsdGVyIGNsb3NlcyBpdC4gQWJvdmVcbiAgIDExMDBweCB0aGUgc2lkZWJhciBpcyBpbi1mbG93IGFzIHVzdWFsIGFuZCBib3RoIHRvZ2dsZSArIHNjcmltIHN0YXkgaGlkZGVuLiAqL1xuXG4uaW5ib3gtc2lkZWJhci1zY3JpbSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0aW5zZXQ6IDA7XG5cdHotaW5kZXg6IDQwO1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDIwLCAyMiwgNDAsIDAuMzIpO1xuXHRvcGFjaXR5OiAwO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMjAwbXM7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6ICN7JGluYm94LWJwLXRhYmxldH0pIHtcblx0Lm1haW4tY29udGVudCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG5cdC8vIERyYXdlciB0b2dnbGUgbGl2ZXMgaW4gdGhlIHRvcCBiYXIsIGxlZnQgb2YgdGhlIHNlYXJjaCAod2hpY2ggc2hpZnRzIHJpZ2h0KS5cblx0LmluYm94LXNpZGViYXItdG9nZ2xlIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0XHRmbGV4OiAwIDAgYXV0bztcblx0fVxuXG5cdC5sZWZ0LXNpZGViYXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHRib3R0b206IDA7XG5cdFx0ei1pbmRleDogNTA7XG5cdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0d2lkdGg6IDI0OHB4O1xuXHRcdG1heC13aWR0aDogMjQ4cHg7XG5cdFx0bWF4LWhlaWdodDogbm9uZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0YWxlIC9jc3MvdjEvc3R5bGUuY3NzIGNhcHMgdGhpcyBhdCAyMDBweCDiiaQ3Njhcblx0XHRib3JkZXItcmFkaXVzOiAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnVsbC1oZWlnaHQgZHJhd2VyIOKAlCBzcXVhcmUgZWRnZXMsIG5vdCBhIGZsb2F0aW5nIGNhcmRcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtMTAwJSAtIDE2cHgpKTsgICAvLyBvZmYtY2FudmFzLCBjbGVhciBvZiB0aGUgc2hhZG93XG5cdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDI0MG1zIGN1YmljLWJlemllciguMiwgLjcsIC4zLCAxKTtcblx0XHRib3gtc2hhZG93OiAwIDhweCAyOHB4IHJnYmEoMjAsIDIyLCA0MCwgMC4xOCk7XG5cdFx0d2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcblx0fVxuXG5cdC5tYWluLWNvbnRlbnQuc2lkZWJhci1vcGVuIHtcblx0XHQubGVmdC1zaWRlYmFyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG5cdFx0LmluYm94LXNpZGViYXItc2NyaW0ge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2U7ICAgICAgICAgIC8vIG5vIGRlbGF5IG9uIHRoZSB3YXkgaW5cblx0XHR9XG5cdH1cbn1cblxuLyogUmVkdWNlZC1tb3Rpb246IG5vIHNsaWRlLCBqdXN0IGFwcGVhci9kaXNhcHBlYXIuICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHQubGVmdC1zaWRlYmFyIHsgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG5cdC5pbmJveC1zaWRlYmFyLXNjcmltIHsgdHJhbnNpdGlvbjogb3BhY2l0eSAxbXMgbGluZWFyICFpbXBvcnRhbnQ7IH1cblx0Lm1pZGRsZS1wYW5lbCwgLnJpZ2h0LXBhbmVsIHsgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG59XG5cbkBrZXlmcmFtZXMgaW5ib3gtdG9vbGJhci1pbiB7XG5cdGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTZweCk7IH1cblx0dG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxufVxuXG4vKiBEZXRhaWwgKG1lc3NhZ2Utb3Blbik6IHBsdWdpbiBjb250ZW50IGZvbGxvd3MgdGhlIHNlbmRlciBibG9jayBieSA0MG1zLiAqL1xuLmluYm94LWJvZHktY29udGVudCB7XG5cdGFuaW1hdGlvbjogaW5ib3gtZGV0YWlsLWluIDIwMG1zIGVhc2Utb3V0IDQwbXMgYm90aDtcbn1cblxuLy8gRm9yd2FyZGVkLWluZGljYXRvci1iYW5uZXIgaW4gZGUgZGV0YWlsIChlbWFpbC1zdGlqbCk6IFwiRGl0IGJlcmljaHQgaXMgZG9vcmdlc3R1dXJkIG5hYXJcbi8vIFggb3AgREFUVU1cIi4gU3VidGllbGUgYmFsayBvbmRlciBkZSBoZWFkZXIsIHbDs8OzciBkZSBib2R5LiBaZWxmZGUgcGFhcnMtcGFsZXQgYWxzIGRlXG4vLyByaWNoLWJvZHkgYmxvY2txdW90ZSB2b29yIGNvbnNpc3RlbnRpZS4gWzIwMjYtMDYtMjldXG4uaW5ib3gtZm9yd2FyZGVkLW5vdGljZSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGdhcDogOHB4O1xuXHRtYXJnaW46IDRweCAwIDE0cHg7XG5cdHBhZGRpbmc6IDEwcHggMTRweDtcblx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHRiYWNrZ3JvdW5kOiAjZjNmMWZmOyAgICAgICAgICAgICAgICAgICAvLyBsaWNodC1wYWFycywgc3VidGllbFxuXHRib3JkZXItbGVmdDogM3B4IHNvbGlkICNjMGM1ZmY7ICAgICAgICAvLyB6YWNodGUgcGFhcnNlIGFjY2VudFxuXHRjb2xvcjogIzRiNDQ3MDsgICAgICAgICAgICAgICAgICAgICAgICAvLyBtdXRlZFxuXHRmb250LXNpemU6IDEzcHg7XG5cdGxpbmUtaGVpZ2h0OiAxLjQ7XG5cblx0cWRuYXByby1pY29uIHtcblx0XHRmbGV4LXNocmluazogMDtcblx0XHRjb2xvcjogIzdhN2ZiMDtcblx0fVxufVxuXG4vLyBSaWNoIChzYW5pdGlzZWQtSFRNTCkgbm90aWZpY2F0aW9uIGJvZHkg4oCUIGUuZy4gYSBzaGFyZWQgYnJpZWZpbmcgLyBOb3ZhIGFuc3dlci5cbi8vIFRoZSBzaGFyZXIncyBjb21tZW50IGlzIHdyYXBwZWQgaW4gYSA8YmxvY2txdW90ZT4gKGFmdGVyIGFuIDxocj4pLiBOQiBSYWN0aXZlJ3Ncbi8vIHRyaXBsZS1zdGFjaGUgRFJPUFMgYSBzdGFuZGFsb25lIDxociAvPiwgc28gdGhlIGRpdmlkZXIgY2FuJ3QgcmVseSBvbiB0aGUgPGhyPjtcbi8vIGl0IGxpdmVzIG9uIHRoZSBibG9ja3F1b3RlJ3MgdG9wIGJvcmRlciBpbnN0ZWFkLiBMZWZ0IGFjY2VudCBiYXIgPSBpbmRlbnQuXG4vLyBTY29wZWQgdG8gdGhlIHJpY2ggYm9keSBzbyBub3RoaW5nIGVsc2UgaXMgYWZmZWN0ZWQuIFsyMDI2LTA2LTI5XVxuLmluYm94LXRleHQtYm9keS0tcmljaCB7XG5cdGhyIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0eWxlZCBpbiBjYXNlIGEgbm9uLVJhY3RpdmUgcmVuZGVyZXIga2VlcHMgaXRcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUzZTY7XG5cdFx0bWFyZ2luOiAxOHB4IDA7XG5cdH1cblx0YmxvY2txdW90ZSB7XG5cdFx0bWFyZ2luOiAxOHB4IDAgMDtcblx0XHRwYWRkaW5nOiAxNHB4IDAgMnB4IDE0cHg7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUzZTY7ICAgICAvLyBkaXZpZGVyIGJldHdlZW4gdGhlIHNoYXJlZCB0ZXh0IGFuZCB0aGUgY29tbWVudFxuXHRcdGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2MwYzVmZjsgICAgLy8gc29mdCBwdXJwbGUgYWNjZW50ICsgaW5kZW50XG5cdFx0Y29sb3I6ICM0YjQ0NzA7ICAgICAgICAgICAgICAgICAgICAvLyBtdXRlZCB2cyB0aGUgc2hhcmVkIHRleHRcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGluYm94LWRldGFpbC1pbiB7XG5cdGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTsgfVxuXHR0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG5cbkBrZXlmcmFtZXMgaW5ib3gtbWVudS1pbiB7XG5cdGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHNjYWxlKDAuOTYpIHRyYW5zbGF0ZVkoLTRweCk7IH1cblx0dG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgfVxufVxuXG4vKiBSaWdodC1jbGljayBjb250ZXh0IG1lbnUgb24gYSBtZXNzYWdlIHRpbGUuIFRoZSBhbmNob3IgaXMgcG9zaXRpb25lZCBmaXhlZCBhdFxuICAgdGhlIGN1cnNvciAobGVmdC90b3Agc2V0IGlubGluZSBieSBKUyk7IHRoZSBtZW51IHNpdHMgYXQgdGhlIGFuY2hvcidzIHRvcC1sZWZ0LlxuICAgSW5ib3ggcnVucyBhdCBib2R5e3pvb206MX0sIHNvIGNsaWVudFgvY2xpZW50WSBtYXAgMToxIOKAlCBubyB6b29tIGNvcnJlY3Rpb24uXG4gICBxZG5hcHJvLW1lbnUgcHJvdmlkZXMgaXRzIG93biBzdXJmYWNlL3NoYWRvdzsgd2Ugb25seSBwb3NpdGlvbiArIGFuaW1hdGUuICovXG4uaW5ib3gtY3R4LWFuY2hvciB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0ei1pbmRleDogMTAwMDtcblx0LmluYm94LWN0eC1tZW51IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG5cdFx0YW5pbWF0aW9uOiBpbmJveC1tZW51LWluIDE0MG1zIGVhc2Utb3V0O1xuXHR9XG59XG5cbi8qIFRvb2xiYXIgb3ZlcmZsb3cgc3dhcDogdGhlIOKLriAoYW5kIHRoZSBpbmxpbmUgcm93LCBvbiB0aGUgd2F5IGJhY2spIGZhZGUgK1xuICAgc2NhbGUgaW4gc28gdGhlIGV5ZSBjYXRjaGVzIHRoZSBjaGFuZ2UgaW5zdGVhZCBvZiBhIGhhcmQgc25hcC4gQXBwbGllZCB2aWEgSlNcbiAgIG9ubHkgb24gdGhlIGFjdHVhbCBpbmxpbmXih4RvdmVyZmxvdyB0cmFuc2l0aW9uIChzZWUgZml0VG9vbGJhcikuICovXG5Aa2V5ZnJhbWVzIGluYm94LW92ZXJmbG93LWluIHtcblx0ZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoMC43KTsgfVxuXHR0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxufVxuQGtleWZyYW1lcyBpbmJveC1pbmxpbmUtaW4ge1xuXHRmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7IH1cblx0dG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxufVxuLyogU2Vjb25kYXJ54oaSYWxsIGNvbGxhcHNlOiB0aGUg4ouuIGlzIGFscmVhZHkgdmlzaWJsZSwgc28gZ2l2ZSBpdCBhIHRpbnkgcHVsc2VcbiAgIHRvIHNpZ25hbCBcIm1vcmUgbW92ZWQgaW4gaGVyZVwiIHJhdGhlciB0aGFuIHJlLXBvcHBpbmcgdGhlIHdob2xlIGJ1dHRvbi4gKi9cbkBrZXlmcmFtZXMgaW5ib3gtb3ZlcmZsb3ctcHVsc2Uge1xuXHQwJSAgIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuXHQ0NSUgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjE4KTsgfVxuXHQxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxufVxuXG4vKiBSZXNwZWN0IHVzZXJzIHdobyBwcmVmZXIgbGVzcyBtb3Rpb246IGRyb3AgYWxsIGluYm94IGVudHJhbmNlIGFuaW1hdGlvbnMuICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHQuYWN0aW9ucy1zZWN0aW9uLFxuXHQuaW5ib3gtYm9keS1oZWFkZXIsXG5cdC5pbmJveC1ib2R5LWNvbnRlbnQsXG5cdC5pbmJveC1tZW51LWFuY2hvci5pbmJveC1tZW51LW9wZW4gLmluYm94LW1lbnUsXG5cdC5pbmJveC1tc2ctc3RhZ2dlciB7XG5cdFx0YW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLyog4pSA4pSAIEVtcHR5IHN0YXRlcyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi8qIFBhbmVsIDI6IG1lc3NhZ2UtbGlzdCBlbXB0eSBzdGF0ZSAqL1xuLmluYm94LWVtcHR5IHtcblx0LyogZGlzcGxheSB0b2dnbGVkIHRvIGZsZXggdmlhIEpTICovXG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGdhcDogMTZweDtcblx0cGFkZGluZzogNjRweCAyNHB4IDA7XG5cdG1pbi1oZWlnaHQ6IDMyMHB4O1xuXG5cdC8qIFRhcmdldCB0aGUgZWxlbWVudCwgbm90IGEgY2xhc3M6IHFkbmFwcm8taWxsdXN0cmF0aW9uIHJld3JpdGVzIGl0cyBvd25cblx0ICAgY2xhc3MgYXR0cmlidXRlIG9uIHJlbmRlciwgc28gYSBjdXN0b20gY2xhc3Mgd29uJ3Qgc3Vydml2ZS5cblx0ICAgVGhlIGNvbXBvbmVudCBzaXplcyBieSBXSURUSCBvbmx5OyBwb3J0cmFpdCBpbGx1c3RyYXRpb25zIChlLmcuIHNoYXJlKVxuXHQgICB0aGVuIGJsb3cgdXAgaW4gaGVpZ2h0LiBDb25zdHJhaW4gYnkgYm90aCBtYXgtd2lkdGggYW5kIG1heC1oZWlnaHQgc29cblx0ICAgYW55IGFzcGVjdCByYXRpbyBmaXRzIHRoZSBzYW1lIGJveC4gKi9cblx0cWRuYXByby1pbGx1c3RyYXRpb24ge1xuXHRcdG9wYWNpdHk6IDAuNjtcblx0XHQvKiBQaW4gdGhlIGhlaWdodCwgbGV0IHdpZHRoIGZvbGxvdyB0aGUgYXNwZWN0IHJhdGlvLiBSZWxpYWJsZSBmb3Jcblx0XHQgICBib3RoIGxhbmRzY2FwZSBhbmQgcG9ydHJhaXQgYXJ0ICh0aGUgY29tcG9uZW50IG9ubHkgc2l6ZXMgd2lkdGgsXG5cdFx0ICAgd2hpY2ggYmxvd3MgdXAgdGFsbCBpbGx1c3RyYXRpb25zIGxpa2UgYHNoYXJlYCkuICovXG5cdFx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcblx0XHRoZWlnaHQ6IDE5MHB4ICFpbXBvcnRhbnQ7XG5cblx0XHRpbWcge1xuXHRcdFx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcblx0XHRcdGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxuXG5cdC5pbmJveC1lbXB0eS10ZXh0IHtcblx0XHRtYXJnaW46IDA7XG5cdFx0bWF4LXdpZHRoOiAyNjBweDtcblx0XHRmb250LXNpemU6IDE1cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDEuNDtcblx0XHRjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnksICM2YjcyODApO1xuXHR9XG59XG5cbi8qIFBhbmVsIDM6IGRldGFpbCBlbXB0eSBzdGF0ZSAoU2hvdyBhbGwgKyBIYW5kb3ZlcikgKi9cbi5pbmJveC1kZXRhaWwtZW1wdHkge1xuXHQvKiBkaXNwbGF5IHRvZ2dsZWQgdG8gZmxleCB2aWEgSlMgKi9cblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGhlaWdodDogMTAwJTtcblx0cGFkZGluZzogMjRweDtcblx0LyogUGFuZWwgc3RheXMgd2hpdGU7IHRoZSBlbXB0eS1zdGF0ZSBjYXJkIHVzZXMgc3VyZmFjZT1cInNvbGlkXCJcblx0ICAgKGxpZ2h0LXB1cnBsZSkgc28gaXQgcmVhZHMgd2l0aG91dCBuZWVkaW5nIGEgdGludGVkIGJhY2tkcm9wLiAqL1xuXG5cdHFkbmFwcm8taWxsdXN0cmF0aW9uIHtcblx0XHRvcGFjaXR5OiAwLjY7XG5cdFx0LyogUGluIHRoZSBoZWlnaHQsIHdpZHRoIGZvbGxvd3MgYXNwZWN0IHJhdGlvIChzZWUgcGFuZWwtMiBub3RlKS4gKi9cblx0XHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRcdGhlaWdodDogMjMwcHggIWltcG9ydGFudDtcblxuXHRcdGltZyB7XG5cdFx0XHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRcdFx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG59XG5cbi8qIOKUgOKUgCBGb3J3YXJkIG1vZGFsOiByZWNpcGllbnQgcGlja2VyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLyogSGllciBzdG9uZCBgLnFkbmFwcm8tbW9kYWwsIC5xZG5hcHJvLXNlbGVjdC1wb3BvdmVyIHsgem9vbTogMSAhaW1wb3J0YW50IH1gIG9tIGRlIGNvdW50ZXItem9vbVxuICAgdmFuIDEuMjUgdWl0IGBfbW9kYWwuc2Nzc2AgdGUgbmV1dHJhbGlzZXJlbi4gVHdlZSByZWRlbmVuIG9tIGhlbSB3ZWcgdGUgaGFsZW4gKDIwMjYtMDgtMDMpOlxuICAgZGUgY29tbWVudCB6ZWkgXCJwYWdlLXNjb3BlZFwiIG1hYXIgZGUgU0VMRUNUT1Igd2FzIGRhdCBuaWV0IOKAlCBkZXplIHJlZ2VsIGdvbGQgYXBwLWJyZWVkIGVuXG4gICBiZXBhYWxkZSBkdXMgaW4gZWxrIHNjaGVybSBkZSBtYWF0IHZhbiBlbGsgdmVuc3RlcjsgZW4gZGUgMS4yNSBkaWUgaGlqIG5ldXRyYWxpc2VlcmRlIGJlc3RhYXRcbiAgIG5pZXQgbWVlciAoemllIGRlIHVpdGxlZyBpbiBgY29tcG9uZW50cy92Mi9tb2RhbC9fbW9kYWwuc2Nzc2ApLiBOZXR0byB2ZXJhbmRlcnQgZXIgbmlldHM6IGhldFxuICAgd2FzIDEsIGVuIGhldCBibGlqZnQgMS4gKi9cblxuLyogUmVjaXBpZW50IHBpY2tlciDigJQgaWRlbnRpY2FsIHRvIHRoZSBwcm9qZWN0IFwiTWFuYWdlcnNcIiBwaWNrZXIgKHB2Mi1ibS0qKS5cbiAgIFZhbHVlcyBjb3BpZWQgZnJvbSBwcm9qZWN0cy12Mi5odG1sIGFuZCBzY29wZWQgdG8gdGhlIGZvcndhcmQgbW9kYWwuICovXG4jaW5ib3gtZm9yd2FyZC1tb2RhbCB7XG5cdC8qIFRoZSBjYW5kaWRhdGUgbGlzdCBpcyBhbiBhYnNvbHV0ZSBvdmVybGF5IGRyb3Bkb3duIChsaWtlIHByb2plY3RzKSwgc28gdGhlXG5cdCAgIG1vZGFsIGJvZHkgbXVzdCBub3QgY2xpcCBpdDsgcmVzZXJ2ZSBoZWlnaHQgc28gaXQgZG9lc24ndCBjb3ZlciB0aGUgZm9vdGVyLiAqL1xuXHQubW9kYWwtYm9keSB7IG92ZXJmbG93OiB2aXNpYmxlOyBtaW4taGVpZ2h0OiAzNjBweDsgfVxuXG5cdC5wdjItYm0geyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDE0cHg7IH1cblxuXHQucHYyLWJtLXN1YnRpdGxlIHtcblx0XHRtYXJnaW46IDAgMCAycHg7XG5cdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsIHZhcigtLWMtdGV4dC1tdXRlZCkpO1xuXHR9XG5cblx0LnB2Mi1ibS1zZWFyY2gtd3JhcCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG5cdC8qIE92ZXJsYXkgZHJvcGRvd24gY2FyZCBiZWxvdyB0aGUgc2VhcmNoIGZpZWxkLiAqL1xuXHQucHYyLWJtLXJlc3VsdHMge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IGNhbGMoMTAwJSArIDRweCk7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHR6LWluZGV4OiAzMDtcblx0XHRtYXgtaGVpZ2h0OiAyNjBweDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jLWJnLWNhcmQpO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNjNGM3Y2M7XG5cdFx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHRcdC8vIENyaXNwIGRyb3Bkb3duIHNoYWRvdywgdGFrZW4gZnJvbSBxZG5hcHJvLXNlbGVjdC1wb3BvdmVyLlxuXHRcdGJveC1zaGFkb3c6XG5cdFx0XHQwIDFweCAzcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wOCksXG5cdFx0XHQwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpO1xuXHRcdHBhZGRpbmc6IDZweDtcblxuXHRcdCZbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblx0fVxuXG5cdC5wdjItYm0tcmVzdWx0cy1saXN0IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRtaW4taGVpZ2h0OiAwO1xuXHRcdEBpbmNsdWRlIHFkbmEtc2Nyb2xsYmFyOyAgIC8vIG1vZGVybiBtaW5pbWFsIGhvdmVyLXJldmVhbCBiYXJcblx0fVxuXG5cdC5wdjItYm0tcmVzdWx0IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiAxMHB4O1xuXHRcdHBhZGRpbmc6IDZweCA4cHg7XG5cdFx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cy12aXNpYmxlIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1ob3ZlciwgI2YzZjRmYik7IG91dGxpbmU6IG5vbmU7IH1cblx0fVxuXG5cdC5wdjItYm0tcmVzdWx0LWNoZWNrIHsgZmxleDogMCAwIGF1dG87IH1cblxuXHQucHYyLWJtLXJlc3VsdC10ZXh0IHtcblx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRtaW4td2lkdGg6IDA7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjI1O1xuXHR9XG5cblx0LnB2Mi1ibS1yZXN1bHQtbmFtZSB7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMWMxZTJhKTsgfVxuXHQucHYyLWJtLXJlc3VsdC1yb2xlIHsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkLCB2YXIoLS1jLXRleHQtbXV0ZWQpKTsgfVxuXHQucHYyLWJtLXJvdy15b3UgeyBmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsIHZhcigtLWMtdGV4dC1tdXRlZCkpOyBtYXJnaW4tbGVmdDogNHB4OyB9XG5cblx0LnB2Mi1ibS1yZXN1bHQtYWRkZWQge1xuXHRcdG9wYWNpdHk6IDAuNjtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0Jjpob3ZlciB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG5cdH1cblxuXHQucHYyLWJtLXJlc3VsdHMtZW1wdHkge1xuXHRcdHBhZGRpbmc6IDE0cHggMTBweDtcblx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0Y29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgdmFyKC0tYy10ZXh0LW11dGVkKSk7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG5cblx0LnB2Mi1ibS1sb2FkaW5nIHtcblx0XHRwYWRkaW5nOiAyMHB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0Y29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCwgdmFyKC0tYy10ZXh0LW11dGVkKSk7XG5cdH1cblxuXHQvKiBTZWxlY3RlZCByZWNpcGllbnRzIChzaG93biBiZWxvdyB0aGUgc2VhcmNoLCB1bmRlciB0aGUgb3ZlcmxheSBkcm9wZG93bikuICovXG5cdC5pbmJveC1mb3J3YXJkLXNlbGVjdGVkIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0Z2FwOiAycHg7XG5cdFx0bWF4LWhlaWdodDogMTY4cHg7XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRAaW5jbHVkZSBxZG5hLXNjcm9sbGJhcjtcblx0fVxuXHQuaW5ib3gtZm9yd2FyZC1zZWxlY3RlZC1yb3cge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IDEwcHg7XG5cdFx0cGFkZGluZzogNXB4IDZweDtcblx0XHRib3JkZXItcmFkaXVzOiA4cHg7XG5cblx0XHQmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1iZy1ob3ZlciwgI2YzZjRmYik7IH1cblx0fVxuXHQuaW5ib3gtZm9yd2FyZC1zZWxlY3RlZC1uYW1lIHtcblx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRtaW4td2lkdGg6IDA7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdGNvbG9yOiB2YXIoLS1jLXRleHQtYm9keSwgIzFjMWUyYSk7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR9XG5cdC5pbmJveC1mb3J3YXJkLXNlbGVjdGVkLXJlbW92ZSB7XG5cdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHR3aWR0aDogMjRweDtcblx0XHRoZWlnaHQ6IDI0cHg7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IDA7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXJhZGl1czogNnB4O1xuXHRcdGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEyMG1zIGVhc2UsIGNvbG9yIDEyMG1zIGVhc2U7XG5cblx0XHQmOmhvdmVyIHsgYmFja2dyb3VuZDogI2VjZWVmNTsgY29sb3I6ICNjMDM5MmI7IH1cblx0fVxuXG5cdC8qIFwiWCBzZWxlY3RlZFwiIGNvdW50LCBwaW5uZWQgdG8gdGhlIGZvb3RlcidzIGxlZnQgY29ybmVyLiBQb3NpdGlvbmVkXG5cdCAgIGFic29sdXRlbHkgc28gdGhlIGdsb2JhbCAubW9kYWwtZm9vdGVyIG1hcmdpbiBvdmVycmlkZSBjYW4ndCBjbG9iYmVyIGl0LiAqL1xuXHQubW9kYWwtZm9vdGVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cdC5pbmJveC1mb3J3YXJkLWNvdW50IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMjRweDtcblx0XHR0b3A6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsIHZhcigtLWMtdGV4dC1tdXRlZCkpO1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR9XG59XG5cbi8qIFBpY2t1cCBzdGF0dXMgYmFkZ2UgaW4gdGhlIGhhbmRvdmVyIGRldGFpbCAqL1xuLmluYm94LXBpY2t1cC1zdGF0dXMge1xuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0Z2FwOiA2cHg7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0Ym9yZGVyLXJhZGl1czogOTk5cHg7XG5cdHBhZGRpbmc6IDRweCAxMHB4O1xuXG5cdCYuaXMtb3BlbiAgICAgIHsgY29sb3I6ICM4YTZkMDA7IGJhY2tncm91bmQ6ICNmZmY0ZDY7IH1cblx0Ji5pcy1wZW5kaW5nICAgeyBjb2xvcjogIzJmNmYzZTsgYmFja2dyb3VuZDogI2UzZjRlOTsgfVxuXHQmLmlzLWZpbmlzaGVkICB7IGNvbG9yOiAjM2E0MjkwOyBiYWNrZ3JvdW5kOiAjZTRlNmY4OyB9XG59XG5cbi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgUmVzcG9uc2l2ZSDigJQgcGhhc2VkIHJld29yayAoaW5kdXN0cnktc3RhbmRhcmQgaW5ib3ggcGF0dGVybnMpXG4gICBQaGFzZSAxOiBidWxrLWFjdGlvbiB0b29sYmFyIG92ZXJmbG93IOKLriArIGVtcHR5LXN0YXRlIGFydCBvbiBzbWFsbCBzY3JlZW5zXG4gICAoUGhhc2UgMiA9IGNvbGxhcHNlIEFjdGl2aXR5IHNpZGViYXI7IFBoYXNlIDMgPSBtb2JpbGUgZHJpbGwtZG93bi4pXG4gICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cblxuLyogVGhlIGJ1bGstYWN0aW9uIHRvb2xiYXIgY29sbGFwc2VzIGludG8gdGhlIOKLriBvdmVyZmxvdyBtZW51IHZpYSBKUyBvdmVyZmxvd1xuICAgZGV0ZWN0aW9uIChmaXRUb29sYmFyKCkpIHRoZSBtb21lbnQgdGhlIGlubGluZSBidXR0b25zIG5vIGxvbmdlciBmaXQg4oCUIG5vXG4gICBtYWdpYyBicmVha3BvaW50LiBUaGUgc2VhcmNoIGJveCBzY2FsZXMgKGZsZXgpIHRvIGdpdmUgdGhlIGFjdGlvbnMgcm9vbVxuICAgZmlyc3QuIFNlZSAuc2VhcmNoLXNlY3Rpb24gLyAuYWN0aW9ucy1zZWN0aW9uIGFib3ZlICsgZml0VG9vbGJhcigpIGluIEpTLiAqL1xuXG4vKiBEZXRhaWwgZW1wdHktc3RhdGUgY2FyZHMgcmVmbG93IG9uIHRoZSBQQU5FTCB3aWR0aCwgbm90IHRoZSB2aWV3cG9ydDogYSB3aWRlXG4gICB3aW5kb3cgY2FuIHN0aWxsIGxlYXZlIGEgbmFycm93IGRldGFpbCBwYW5lbCwgd2hpY2ggc3F1ZWV6ZXMgdGhlIDItY29sdW1uXG4gICBncmlkIHVudGlsIHRoZSBpbGx1c3RyYXRpb24gb3ZlcmxhcHMgdGhlIGNvcHkuIENvbnRhaW5lciBxdWVyeSDihpIgd2hlbiB0aGUgY2FyZFxuICAgaXMgbmFycm93LCBzdGFjayB0aGUgaWxsdXN0cmF0aW9uIEJFTE9XIHRoZSBjZW50ZXJlZCBjb3B5IChkb24ndCBoaWRlIGl0KS4gKi9cbi5pbmJveC1kZXRhaWwtZW1wdHkgeyBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7IH1cblxuQGNvbnRhaW5lciAobWF4LXdpZHRoOiA1MjBweCkge1xuXHQuaW5ib3gtZGV0YWlsLWVtcHR5IC5xZG5hcHJvLWVtcHR5LXN0YXRlLmVtcHR5LXN0YXRlLWV4dGVuZGVkIHtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1pdGVtczogY2VudGVyO1xuXHR9XG5cdC5pbmJveC1kZXRhaWwtZW1wdHkgLmVtcHR5LXN0YXRlLWV4dGVuZGVkIC5lbXB0eS1zdGF0ZS1jb3B5IHtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdG9yZGVyOiAxO1xuXHR9XG5cdC5pbmJveC1kZXRhaWwtZW1wdHkgLmVtcHR5LXN0YXRlLWV4dGVuZGVkIC5lbXB0eS1zdGF0ZS1pbGx1c3RyYXRpb24ge1xuXHRcdGRpc3BsYXk6IGZsZXg7ICAgICAgICAgIC8vIG92ZXJyaWRlIHRoZSBjb21wb25lbnQncyB2aWV3cG9ydCA8OTYwIGhpZGVcblx0XHRvcmRlcjogMjtcblx0XHRtYXJnaW4tdG9wOiA4cHg7XG5cdH1cblx0Ly8gU21hbGxlciBhcnQgd2hlbiBzdGFja2VkIHNvIGl0IHN0YXlzIHByb3BvcnRpb25hdGUgaW4gYSBuYXJyb3cgY2FyZC5cblx0LmluYm94LWRldGFpbC1lbXB0eSAuZW1wdHktc3RhdGUtaWxsdXN0cmF0aW9uIHFkbmFwcm8taWxsdXN0cmF0aW9uLFxuXHQuaW5ib3gtZGV0YWlsLWVtcHR5IC5lbXB0eS1zdGF0ZS1pbGx1c3RyYXRpb24gaW1nLFxuXHQuaW5ib3gtZGV0YWlsLWVtcHR5IC5lbXB0eS1zdGF0ZS1pbGx1c3RyYXRpb24gc3ZnIHsgbWF4LXdpZHRoOiAxODBweDsgfVxufVxuXG4vKiBQYW5lbC0yIChsaXN0KSBlbXB0eTogZHJvcCB0aGUgZGVjb3JhdGl2ZSBhcnQgb24gbW9iaWxlIChyZXZpc2l0IGluIFBoYXNlIDMpLiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6ICRpbmJveC1icC1tb2JpbGUpIHtcblx0LmluYm94LWVtcHR5IHFkbmFwcm8taWxsdXN0cmF0aW9uIHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG4vKiDilIDilIAgTm92YSBtZWxkaW5nLWFuYWx5c2UgKG1lbGRpbmdlbi1jbGFzc2lmaWNhdGllIEZhc2UgNCwgMjAyNi0wNy0xMSkg4pSA4pSAXG4gICBLbm9wLXNsb3QgcmVjaHRzYm92ZW4gaW4gZGUgaGFuZG92ZXItZGV0YWlsICsgaGV0IGFuYWx5c2VwYW5lZWxcbiAgIChzYW1lbnZhdHRpbmcgLyB0b29uIC8gY2xhc3NpZmljYXRpZS1zdWdnZXN0aWUgLyBkaXNjbGFpbWVyKS4gKi9cbi5pbmJveC1ub3ZhLWJ0bi1zbG90IHtcblx0ZmxleDogbm9uZTtcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG59XG4uaW5ib3gtbm92YS1wYW5lbCB7XG5cdGJhY2tncm91bmQ6ICNmNWYzZmY7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNlM2RlZmE7XG5cdGJvcmRlci1yYWRpdXM6IDEycHg7XG5cdHBhZGRpbmc6IDE0cHggMTZweDtcblx0bWFyZ2luOiAxMHB4IDAgMTRweDtcblx0Zm9udC1zaXplOiAxM3B4O1xuXHRjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuXG5cdCYuaXMtbG9hZGluZyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogOHB4O1xuXHRcdGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuXHRcdC5tZGktY3JlYXRpb24geyBjb2xvcjogIzdjNmZlMDsgYW5pbWF0aW9uOiBpbmJveC1ub3ZhLXB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH1cblx0fVxuXG5cdC5pbmJveC1ub3ZhLWhlYWQge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IDZweDtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdGNvbG9yOiAjNGY0NmE1O1xuXHRcdG1hcmdpbi1ib3R0b206IDhweDtcblx0XHQubWRpIHsgY29sb3I6ICM3YzZmZTA7IH1cblx0XHQvKiBcIk9wbmlldXcgYW5hbHlzZXJlblwiIChmb3JjZSkgcmVjaHRzIGluIGRlIGtvcCAqL1xuXHRcdC5qcy1pbmJveC1ub3ZhLXJlYW5hbHlzZSB7IG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG5cdH1cblx0LmluYm94LW5vdmEtc3VtbWFyeSB7IG1hcmdpbjogMCAwIDEwcHg7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgfVxuXHQuaW5ib3gtbm92YS1yb3cgeyBtYXJnaW46IDRweCAwOyB9XG5cdC5pbmJveC1ub3ZhLWxhYmVsIHsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6ICM0ZjQ2YTU7IG1hcmdpbi1yaWdodDogNHB4OyB9XG5cdC5pbmJveC1ub3ZhLWNsYXNzIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogNXB4O1xuXHRcdGJhY2tncm91bmQ6ICNlOWU2ZmI7XG5cdFx0Y29sb3I6ICM0ZjQ2YTU7XG5cdFx0Ym9yZGVyLXJhZGl1czogOTk5cHg7XG5cdFx0cGFkZGluZzogMnB4IDEwcHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHQmLmlzLW5vbmUgeyBiYWNrZ3JvdW5kOiAjZWVlZGY1OyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTsgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXHR9XG5cdC5pbmJveC1ub3ZhLXJhdGlvbmFsZSB7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpOyBmb250LXNpemU6IDEyLjVweDsgbWFyZ2luLXRvcDogNnB4OyB9XG5cdC5pbmJveC1ub3ZhLWRpc2NsYWltZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdFx0Z2FwOiA2cHg7XG5cdFx0bWFyZ2luLXRvcDogMTBweDtcblx0XHRwYWRkaW5nLXRvcDogOHB4O1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTNkZWZhO1xuXHRcdGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdFx0Lm1kaSB7IGZsZXg6IG5vbmU7IG1hcmdpbi10b3A6IDFweDsgfVxuXHR9XG59XG5Aa2V5ZnJhbWVzIGluYm94LW5vdmEtcHVsc2Uge1xuXHQwJSwgMTAwJSB7IG9wYWNpdHk6IDE7IH1cblx0NTAlIHsgb3BhY2l0eTogMC4zNTsgfVxufVxuXG4vKiDilIDilIAgQ2xhc3NpZmljYXRpZS1ibG9rIChtZWxkaW5nZW4tY2xhc3NpZmljYXRpZSBGYXNlIDUsIDIwMjYtMDctMTEpIOKUgOKUgFxuICAgSHVpZGlnIHJlc3VsdGFhdCAoY2hpcCArIGthbnMgKyBzY29yZS1iYWRnZSBpbiBiYW5ka2xldXIgKyBoZXJrb21zdCArXG4gICBBSS1rYWxpYnJhdGllLW1hcmtlcikgZW4gaGV0IGlubGluZSBjbGFzc2lmaWNhdGllZm9ybXVsaWVyIG1ldCBsaXZlIHNjb3JlLiAqL1xuLmluYm94LW1jIHtcblx0YmFja2dyb3VuZDogdmFyKC0tYy1iZy1jYXJkKTtcblx0Ym9yZGVyOiAxcHggc29saWQgI2U2ZTRmMDtcblx0Ym9yZGVyLXJhZGl1czogMTJweDtcblx0cGFkZGluZzogMTRweCAxNnB4O1xuXHRtYXJnaW46IDEwcHggMCAxNHB4O1xuXHRmb250LXNpemU6IDEzcHg7XG5cdGNvbG9yOiB2YXIoLS1jLXRleHQtaGVhZGluZyk7XG5cblx0LmluYm94LW1jLWhlYWQge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IDZweDtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdGNvbG9yOiAjNGY0NmE1O1xuXHRcdC5tZGkgeyBjb2xvcjogIzdjNmZlMDsgfVxuXHRcdHFkbmFwcm8tYnV0dG9uIHsgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblx0fVxuXHQuaW5ib3gtbWMtcmVzdWx0IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGdhcDogMTBweDtcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHR9XG5cdC5pbmJveC1tYy1yZWMgeyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTsgfVxuXHQuaW5ib3gtbWMtbWV0YSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRnYXA6IDRweCAxNHB4O1xuXHRcdG1hcmdpbi10b3A6IDhweDtcblx0XHRjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdH1cblx0LmluYm94LW1jLWFpIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogNHB4O1xuXHRcdC5tZGkgeyBjb2xvcjogIzdjNmZlMDsgfVxuXHRcdCYuaXMtbWF0Y2ggeyBjb2xvcjogIzJlN2QzMjsgfVxuXHRcdCYuaXMtZGV2aWF0ZWQgeyBjb2xvcjogI2IwNmUwMDsgfVxuXHR9XG5cdC5pbmJveC1tYy1lbXB0eSB7IG1hcmdpbi10b3A6IDhweDsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IH1cblx0LmluYm94LW1jLWZvcm0geyBtYXJnaW4tdG9wOiAxMnB4OyB9XG5cdC5pbmJveC1tYy1mb3JtLXJvdyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRnYXA6IDEycHg7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdHFkbmFwcm8tc2VsZWN0IHsgZmxleDogMTsgbWluLXdpZHRoOiAyMjBweDsgfVxuXHR9XG5cdC5pbmJveC1tYy1mb3JtLWZvb3Qge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IDhweDtcblx0XHRtYXJnaW4tdG9wOiAxMnB4O1xuXHRcdC5pbmJveC1tYy1saXZlLXNjb3JlIHsgZmxleDogMTsgfVxuXHR9XG59XG5cbi8qIOKUgOKUgCBNZWxkaW5nLXNhbWVudmF0dGluZyAob3BlbmluZyB2YW4gaGV0IGJlcmljaHQsIDIwMjYtMDctMjApIOKUgOKUgFxuICAgRGUgcHJvbWluZW50ZSBPUEVOSU5HLCBvcCBkZSBwbGVrIG9uZGVyIGRlIHRha2VubGlqc3Qta29wOyBkZSBpbmdldnVsZGUgdmVsZGVuXG4gICBlcm9uZGVyIGJsaWp2ZW4gYWxzIFwiYmV3aWpzXCIuIEJld3VzdCB2aXN1ZWVsIEdFTElKSyBhYW4gLmluYm94LW5vdmEtcGFuZWxcbiAgICh6ZWxmZGUga2FhcnQgKyBmb250Z3Jvb3R0ZSkgdm9vciBjb25zaXN0ZW50aWUgdHVzc2VuIHNhbWVudmF0dGluZyBlbiBhbmFseXNlLlxuICAgSGV0IGJld2Vyay12ZWxkIGlzIGVlbiBlY2h0IHFkbmFwcm8taW5wdXQgKHR5cGU9ZXhwYW5kaW5nKSwgZ2VlbiB0ZXh0YXJlYS4gKi9cbi8qIFZlcmJvcmdlbiBpbnZ1bGxpbmcgKDIwMjYtMDgtMTYsIGJlc2x1aXQgNCk6IGRlIG1lbGRpbmcgYm92ZW5hYW4gZWVuIG92ZXJkcmFjaHQgd2FhcnZhblxuICAgZGUgaW52dWxsaW5nIGlzIHZlcmJvcmdlbi4gWmVsZmRlIGdlZGVtcHRlIHJvb2QgYWxzIGRlIG1lbGRpbmcgb3AgZGUgQW50d29vcmRlbi1wYWdpbmFcbiAgICgjYjMyNjFlKSDigJQgYmV3dXN0IGdlZW4gc2lnbmFhbHJvb2Q6IGRpdCBpcyBjb250ZXh0IGJpaiBoZXQgYmVyaWNodCwgZ2VlbiBzdG9yaW5nLiAqL1xuLmluYm94LWhpZGRlbi1ub3RlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMTBweDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBtYXJnaW46IDAgMCAxNnB4IDA7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2IzMjYxZTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNzksIDM4LCAzMCwgMC4wNik7XG5cbiAgICAubWRpIHsgY29sb3I6ICNiMzI2MWU7IGZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDEuMzsgfVxuICAgIHN0cm9uZyB7IGNvbG9yOiAjYjMyNjFlOyBmb250LXNpemU6IDEzLjVweDsgfVxufVxuLmluYm94LWhpZGRlbi1tZXRhICAgeyBmb250LXNpemU6IDEycHg7IGNvbG9yOiAjNmI3MTk0OyBtYXJnaW4tdG9wOiAycHg7IH1cbi5pbmJveC1oaWRkZW4tcmVhc29uIHsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogIzI4MmU2NDsgbWFyZ2luLXRvcDogNHB4OyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IH1cblxuLmluYm94LXN1bW1hcnkge1xuXHRiYWNrZ3JvdW5kOiAjZjVmM2ZmO1xuXHRib3JkZXI6IDFweCBzb2xpZCAjZTNkZWZhO1xuXHRib3JkZXItcmFkaXVzOiAxMnB4O1xuXHRwYWRkaW5nOiAxNHB4IDE2cHg7XG5cdG1hcmdpbjogMTBweCAwIDE0cHg7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0Y29sb3I6IHZhcigtLWMtdGV4dC1oZWFkaW5nKTtcblxuXHQuaW5ib3gtc3VtbWFyeS1oZWFkIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiA2cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRjb2xvcjogIzRmNDZhNTtcblx0XHQubWRpIHsgY29sb3I6ICM3YzZmZTA7IH1cblx0fVxuXHQuaW5ib3gtc3VtbWFyeS10aXRsZSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogNnB4O1xuXHRcdGZsZXg6IDE7XG5cdFx0bWluLXdpZHRoOiAwO1xuXHR9XG5cdC5pbmJveC1zdW1tYXJ5LXNyYyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IDNweDtcblx0XHRwYWRkaW5nOiAxcHggOHB4O1xuXHRcdGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuXHRcdGJhY2tncm91bmQ6ICNlOWU2ZmI7XG5cdFx0Y29sb3I6ICM0ZjQ2YTU7XG5cdFx0Zm9udC1zaXplOiAxMXB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0Lm1kaSB7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6ICM0ZjQ2YTU7IH1cblx0fVxuXHQuaW5ib3gtc3VtbWFyeS1hY3Rpb25zIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiAycHg7XG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0ZmxleC1zaHJpbms6IDA7XG5cdH1cblx0LmluYm94LXN1bW1hcnktYm9keSB7IG1hcmdpbi10b3A6IDhweDsgfVxuXHQuaW5ib3gtc3VtbWFyeS10ZXh0IHtcblx0XHRtYXJnaW46IDA7XG5cdFx0bGluZS1oZWlnaHQ6IDEuNTtcblx0XHR3aGl0ZS1zcGFjZTogcHJlLXdyYXA7ICAgICAgICAgICAgIC8vIGJld2FhciBkZSByZWdlbGFmYnJla2luZ2VuIHZhbiBkZSBzYW1lbnZhdHRpbmdcblx0fVxuXHQuaW5ib3gtc3VtbWFyeS1tZXRhIHtcblx0XHRtYXJnaW4tdG9wOiA4cHg7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuXHR9XG5cdCYuaXMtY29sbGFwc2VkIC5pbmJveC1zdW1tYXJ5LWJvZHkgeyBkaXNwbGF5OiBub25lOyB9XG5cblx0LmluYm94LXN1bW1hcnktYWRkIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogNnB4O1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGNvbG9yOiAjNGY0NmE1O1xuXHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdC5tZGkgeyBmb250LXNpemU6IDE4cHg7IH1cblx0XHQmOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblx0fVxuXG5cdC5pbmJveC1zdW1tYXJ5LWlucHV0IHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW4tdG9wOiA4cHg7XG5cdH1cblx0LmluYm94LXN1bW1hcnktZm9ybS1mb290IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiA4cHg7XG5cdFx0bWFyZ2luLXRvcDogMTBweDtcblx0XHQuaW5ib3gtc3VtbWFyeS1zcGFjZXIgeyBmbGV4OiAxOyB9XG5cdH1cbn1cblxuLyog4pSA4pSAIEluY2lkZW50YW5hbHlzZS1ibG9rIChQUklTTUEvU0lSRSBmYXNlIDEsIDIwMjYtMDctMjApIOKUgOKUgFxuICAgUm91dGVyLWFkdmllcyArIFN0YXJ0LWtub3AsIG9mIGRlIGJlc3RhYW5kZSBhbmFseXNlIChtZXRob2RlLWNoaXAgKyBzdGF0dXMgK1xuICAgZGVlcC1saW5rIG5hYXIgaGV0IHdvcmtiZW5jaCBvcCBoZXQgbWVsZGluZ2VuLWRhc2hib2FyZCkuIFplbGZkZSBrYWFydC1pZGlvb21cbiAgIGFscyAuaW5ib3gtbWMgZXJib3Zlbi4gKi9cbi5pbmJveC1pYSB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWMtYmctY2FyZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNlNmU0ZjA7XG5cdGJvcmRlci1yYWRpdXM6IDEycHg7XG5cdHBhZGRpbmc6IDE0cHggMTZweDtcblx0bWFyZ2luOiAxMHB4IDAgMTRweDtcblx0Zm9udC1zaXplOiAxM3B4O1xuXHRjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcpO1xuXG5cdC5pbmJveC1pYS1oZWFkIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiA2cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRjb2xvcjogIzRmNDZhNTtcblx0XHQubWRpIHsgY29sb3I6ICM3YzZmZTA7IH1cblx0fVxuXHQuaW5ib3gtaWEtcm93IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGdhcDogMTBweDtcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdHFkbmFwcm8tYnV0dG9uIHsgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblx0fVxuXHQuaW5ib3gtaWEtc3RhdHVzIHsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IH1cblx0LmluYm94LWlhLXNyYyB7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpOyBmb250LXNpemU6IDEycHg7IH1cblx0LmluYm94LWlhLW9wZW4ge1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdGNvbG9yOiAjNGY0NmE1O1xuXHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdCY6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXHR9XG5cdC5pbmJveC1pYS1tdXRlZCB7IG1hcmdpbi10b3A6IDhweDsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IH1cbn1cblxuLyog4pSA4pSAIENsYXNzaWZpY2F0aWVtYXBwZW4gaW4gZGUgc2lkZWJhci10cmVlIChtZWxkaW5nZW4tY2xhc3NpZmljYXRpZSBGYXNlIDYpIOKUgOKUgFxuICAgU3RhdHVzLXJpaiBtZXQgdWl0a2xhcC1jaGV2cm9uICsgZ2VuZXN0ZSBzdWJsaWpzdDogcGVyIHNldCBlZW4gdmV0dGUga29wLCBkZVxuICAgY2xhc3NpZmljYXRpZXMgZW4gXCJPbmdlY2xhc3NpZmljZWVyZFwiLiBCb3V3dCB2b29ydCBvcCAuc2lkZWJhci1pdGVtLiAqL1xuLmxlZnQtc2lkZWJhciB7XG5cdC5jbHMtc3RhdHVzLXJvdyB7XG5cdFx0Ly8gY2hldnJvbiBuZWVtdCBkZSBlZXJzdGUga29sb207IGdlZW4gMjhweCBpbnNwcmluZyBtZWVyIG5vZGlnXG5cdFx0cGFkZGluZy1sZWZ0OiA4cHg7XG5cdFx0LmNscy1jb2xsYXBzZS1idG4ge1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0dHJhbnNpdGlvbjogY29sb3IgLjEycztcblx0XHRcdCY6aG92ZXIgeyBjb2xvcjogJGNvbG9yOyB9XG5cdFx0fVxuXHRcdC5jbHMtY29sbGFwc2Utc3BhY2VyIHsgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cdH1cblx0LmNscy1zdWItbGlzdCB7XG5cdFx0Ly8gc3VidGllbGUgaW5zcHJpbmdlbmRlIGJvb21zdHJ1Y3R1dXJcblx0XHRtYXJnaW46IDJweCAwIDRweDtcblx0fVxuXHQuY2xzLXNldC1oZWFkZXIge1xuXHRcdHBhZGRpbmc6IDZweCA4cHggM3B4IDMwcHg7XG5cdFx0Zm9udC1zaXplOiAxMXB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRsZXR0ZXItc3BhY2luZzogLjAzZW07XG5cdFx0Y29sb3I6ICRjb2xvcl85O1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0fVxuXHQuY2xzLWl0ZW0ge1xuXHRcdC8vIGRpZXBlciBpbmdlc3Byb25nZW4gZGFuIGVlbiBnZXdvbmUgc2lkZWJhci1pdGVtICh3YXMgMjhweClcblx0XHRwYWRkaW5nLWxlZnQ6IDQycHg7XG5cdFx0Zm9udC1zaXplOiAxMS41cHg7XG5cdFx0Ji5jbHMtaXRlbS11bmNsYXNzaWZpZWQgaSxcblx0XHQmLmNscy1pdGVtLXVuY2xhc3NpZmllZCAuc2lkZWJhci1pdGVtLWxhYmVsIHsgY29sb3I6ICRjb2xvcl85OyB9XG5cdH1cbn1cblxuLyog4pSA4pSAIERlZmluaXRpZWYtdmVyd2lqZGVyZW4gYmV2ZXN0aWdpbmcg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICBIZXQgYWFudGFsIGtyaWpndCBiZXd1c3QgdmlzdWVlbCBnZXdpY2h0OiBkaXQgaXMgaGV0IGVuaWdlIG1vbWVudCB3YWFyb3AgZWVuXG4gICB0ZSBydWltZSBzZWxlY3RpZSBub2cgb3B2YWx0IHbDs8OzciBkZSBiZXJpY2h0ZW4gd2VnIHppam4uIERlIG1hcCBzdGFhdCBpbiBkZVxuICAgemluIGVyb25kZXIsIHpvZGF0IFwiMTEyIMK3IGJlcmljaHRlbiB1aXQgUHJ1bGxlbmJha1wiIGFscyDDqcOpbiBibG9rIGxlZXN0LiAgICAgKi9cbi5pbmJveC1wdXJnZS1ib2R5LS1tYW55IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdGdhcDogNHB4O1xuXG5cdC5pbmJveC1wdXJnZS1jb3VudCB7XG5cdFx0Zm9udC1zaXplOiAzNHB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMTtcblx0XHRjb2xvcjogdmFyKC0tYy13YXJuLXJlZC01MDAsICNkYzI2MjYpO1xuXHRcdGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG5cdH1cblxuXHQuaW5ib3gtcHVyZ2UtbGVhZCB7XG5cdFx0Y29sb3I6IHZhcigtLWMtdGV4dC1ib2R5LCAjMWMxZTJhKTtcblx0fVxuXG5cdC5pbmJveC1wdXJnZS1zdHJheSB7XG5cdFx0bWFyZ2luLXRvcDogOHB4O1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG4iLCJcblxuI3Byb2plY3QtY29udGVudC1pbmZvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQwNDk5QVxufVxuXG4jcHJvamVjdC1jb250ZW50LWluZm8tbWFuIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbiNwcm9qZWN0LWNvbnRlbnQtaW5mby1kZXRhaWxzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNjIlO1xuICAgIGxlZnQ6IDQ1JTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICB3aWR0aDogNDAlO1xufVxuXG4ubGlnaHRidWxiLWljb24ge1xuICAgIHdpZHRoOiAyNSU7XG59XG5cbi5lc3NlbnRpYWxzLWJ1dHRvbiB7XG4gICAgcGFkZGluZzogNHB4IDEycHggNHB4IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MDQ5OWEgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2YxZjFmMTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNpcmNsZS1jb3VudCB7XG4gICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgcGFkZGluZy1yaWdodDogM3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxRTIwNUM7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5wcm9qZWN0LWNvbnRlbnQtcm93IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZ2FwOiAxNnB4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIC5jYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRiAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLnByb2plY3QtY29udGVudC1jb2wge1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG59XG5cbi50eHQtdnctMiB7XG4gICAgZm9udC1zaXplOiAydm1pbjtcbn1cblxuLnR4dC12dy0zIHtcbiAgICBmb250LXNpemU6IDN2bWluO1xufVxuXG4uY3VzdG9tLXRleHQtYmx1ZSB7XG4gICAgY29sb3I6ICM0MDQ5OUE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYWJjZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIC50cy1wcmltYXJ5LWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDA0OTlBICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjRkZGO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuLmRlZiB7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICAgIG1pbi1oZWlnaHQ6IDEyNHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogIzQwNDk5QTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAxO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1vZGFsLWJhY2tkcm9wIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi52YWxpZGF0ZS1lcnJvciB7XG4gICAgY29sb3I6IHJlZDtcbn1cblxuXG5cbi50cy1zb3J0LXBsYWNlaG9sZGVyIHtcbiAgICBib3JkZXI6IDJweCBkYXNoZWQgI2MxYzFjMTtcbiAgICBoZWlnaHQ6IDc1cHg7XG4gICAgbWFyZ2luOiAxNXB4IDA7XG59IiwiI2hvbWUge1xuICAgIGdhcDogMTJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdC5ibG9ja3NfYmFja2dyb3VuZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcblx0XHRib3JkZXItcmFkaXVzOiAxMnB4O1xuXHR9XG4gICAgLmJsb2NrX2hlYWRpbmcge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH0gICAgXG5cdC5kZXRhaWxfYmxvY2sge1xuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0cGFkZGluZzogMjRweCAzMnB4O1xuXHRcdCYtdGl0bGUge1xuXHRcdFx0Zm9udC1zaXplOiAyNXB4O1xuXHRcdCAgICBmb250LXdlaWdodDogNjAwO1xuXHRcdH1cblx0XHQmLWRlc2NyaXB0aW9uIHtcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHR9XG4gICAgICAgICYtdXNlcl9kZXRhaWwge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDhweDsgXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyBcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDcycHg7XG4gICAgICAgICAgICAmLWluZm8geyAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDM2cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA5MHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuYmxvY2tfaGVhZGluZyB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblx0fVxuICAgIFxuICAgIC5wcm9qZWN0X2NvdW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICAmLWNvbHMge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICB9XG4gICAgICAgIC5zdGFyX2Jsb2NrIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDRweCAwcHg7XG4gICAgICAgICAgICAmLWRldGFpbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNDA0OTlhO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHggMjRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi1ib2R5IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICYtdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYtc3RhcnMge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLWNvdW50IHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDQ4cHg7IFxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHggNDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hc3Nlc21lbnRfYmxvY2sge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweCAxNnB4O1xuICAgICAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDYwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMHB4IDI0cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLWJvZHkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDBweCAyNHB4O1xuICAgICAgICAgICAgICAgICYtdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYtZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYtY291bnQge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDYwcHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmdyYXBoX2NvbnRhaW5lciB7XG4gICAgICAgIGkge1xuICAgICAgICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgICAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICAgICAgY29sb3I6ICM0MDQ5OWE7XG4gICAgICAgIH1cbiAgICAgICAgJi10aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwcHggOHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIOKUgOKUgCBPdmVydmlldyBwYWdlIChvdmVydmlldy5odG1sLnR3aWcpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gR2VuZXJpYyBvdmVydmlldyBwb3dlcmVkIGJ5IERhdGFPdmVydmlldyArIHFkbmFwcm8tdGFibGUuXG4vLyBCRU0tYWNodGlnZSBuYWFtZ2V2aW5nOiAub3YtKiAob3ZlcnZpZXcgbmFtZXNwYWNlKS5cblxuJG92LWVhc2luZyA6IGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpO1xuJG92LXNpZGViYXItd2lkdGggOiAyNjBweDtcbiRvdi1zaWRlYmFyLXJhZGl1cyA6IDEycHg7XG4kb3YtdHJhbnNpdGlvbiA6IDIyMG1zICRvdi1lYXNpbmc7XG5cbi8vIFNwbGl0IHNjcmVlbiAoY2FyZCA0KzUrNiwgQk9BUkQtc3RhbWRhdGEtdGFiZWxsZW4tZW4tc3BsaXQtc2NyZWVuLm1kKS5cbiRvdi1zcGxpdC1taW4td2lkdGggOiAyODBweDtcbi8vIE11c3QgbWF0Y2ggT1ZfU1BMSVRfTEVGVF9NSU5fV0lEVEggaW4gb3ZlcnZpZXcuaHRtbC50d2lnLCB3aGljaCBjYXBzIHRoZSBkcmFnLlxuJG92LXNwbGl0LWxlZnQtbWluLXdpZHRoIDogNTYwcHg7XG4kb3Ytc3BsaXQtZGVmYXVsdC13aWR0aCA6IDQyMHB4O1xuLy8gQmVsb3cgdGhpcyB0aGUgcmlnaHQgcGFuZWwgb3ZlcmxheXMgdGhlIHRhYmxlIGluc3RlYWQgb2Ygc2l0dGluZyBiZXNpZGUgaXQg4oCUXG4vLyB0aGUgc2FtZSBcImxhcHRvcFwiIGJyZWFrcG9pbnQgYWxyZWFkeSB1c2VkIGVsc2V3aGVyZSBpbiB0aGUgYmFja29mZmljZSBmb3IgYVxuLy8gc2lkZSBwYW5lbCBuZXh0IHRvIGEgdGFibGUgKHNjc3MvcGFydGlhbHMvX2Jhc2Uuc2NzcywgX2NhcmRzLnNjc3MsIF9ncmlkcy5zY3NzKS5cbiRvdi1zcGxpdC1icmVha3BvaW50IDogMTAyNHB4O1xuXG4vLyDilIDilIAgUm9vdCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLm92LXJvb3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1xZG5hLXRvcGJhci1oKSk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vLyDilIDilIAgQm9keSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLm92LWJvZHkge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBhZGRpbmc6IDAgOHB4O1xufVxuXG4vLyDilIDilIAgQ3RybCBiYXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbi5vdi1jdHJsLWJhciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMDtcbiAgICBwYWRkaW5nOiA4cHggMCA2cHg7XG4gICAgdHJhbnNpdGlvbjogZ2FwICRvdi10cmFuc2l0aW9uO1xufVxuXG4vLyBTaWRlYmFyIGhlYWRlciDigJQgY29sbGFwc2VkIGJ5IGRlZmF1bHQsIHNsaWRlcyBvcGVuXG4ub3YtY3RybC1zaWRlYmFyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRvdi1zaWRlYmFyLXJhZGl1cztcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICB3aWR0aCAgICAgICAgICAkb3YtdHJhbnNpdGlvbixcbiAgICAgICAgYm9yZGVyLXJhZGl1cyAgJG92LXRyYW5zaXRpb247XG59XG5cbi5vdi1jdHJsLXNpZGViYXItaW5uZXIge1xuICAgIHdpZHRoOiAkb3Ytc2lkZWJhci13aWR0aDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgcGFkZGluZzogMCA2cHggMCAxMnB4O1xuICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICMzNzQxNTE7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ub3YtY3RybC1zaWRlYmFyLXRpdGxlIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLy8gU2VhcmNoIGJhclxuLm92LWN0cmwtc2VhcmNoIHtcbiAgICAvLyBXYXMgYGZsZXg6IDEgMSBhdXRvYCwgd2hpY2ggc3RyZXRjaGVkIHRoZSBmaWVsZCBhY3Jvc3MgdGhlIHdob2xlIGJhci4gQSBzZWFyY2hcbiAgICAvLyBib3ggdGhlIHdpZHRoIG9mIHRoZSBzY3JlZW4gcmVhZHMgYXMgY2x1bXN5IGFuZCBidXlzIG5vdGhpbmc6IHlvdSB0eXBlIGEgZmV3XG4gICAgLy8gY2hhcmFjdGVycywgbm90IGEgc2VudGVuY2UuIEl0IG5vdyB0YWtlcyB3aGF0IGl0IG5lZWRzIHVwIHRvIGEgY2FwIGFuZCBsZWF2ZXNcbiAgICAvLyB0aGUgcmVzdCBvZiB0aGUgYmFyIHRvIHRoZSBidXR0b25zLiBbS2ltIDA5LjA4LjIwMjZdXG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA0MjBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG5cbiAgICBxZG5hcHJvLWlucHV0IHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgfVxufVxuXG4vLyDilIDilIAgV29ya3NwYWNlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4ub3Ytd29ya3NwYWNlIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgLy8gQW5jaG9yIGZvciAub3Ytc3BsaXQtcGFuZWwncyBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvbiBhIG5hcnJvdyBzY3JlZW5cbiAgICAvLyAoc2VlIHRoZSBtZWRpYSBxdWVyeSBhdCB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZSkuIEhhcm1sZXNzIG9uIGV2ZXJ5IG90aGVyXG4gICAgLy8gcGFnZTogY2hpbGRyZW4gc3RheSBpbiBub3JtYWwgZmxvdyB1bmxlc3MgdGhhdCBvcHQtaW4gcnVsZSBhcHBsaWVzLlxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy8gU2lkZWJhciBwYW5lbFxuLm92LXNpZGViYXItd3JhcCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogJG92LXNpZGViYXItcmFkaXVzO1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIHdpZHRoICAgICAgICAgICRvdi10cmFuc2l0aW9uLFxuICAgICAgICBib3JkZXItcmFkaXVzICAkb3YtdHJhbnNpdGlvbixcbiAgICAgICAgbWFyZ2luLXJpZ2h0ICAgJG92LXRyYW5zaXRpb24sXG4gICAgICAgIG1hcmdpbi10b3AgICAgICRvdi10cmFuc2l0aW9uO1xuXG4gICAgcWRuYXByby1zaWRlYmFyIHtcbiAgICAgICAgd2lkdGg6ICRvdi1zaWRlYmFyLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxufVxuXG4vLyDilIDilIAgQ29udGVudCBjYXJkIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4ub3YtY29udGVudCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkb3Ytc2lkZWJhci1yYWRpdXM7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gV2l0aCBzcGxpdCBzY3JlZW4gb3BlbiB0aGUgbGVmdCB0YWJsZSBtYXkgbm90IGJlIHNxdWVlemVkIHBhc3QgdGhlIHdpZHRoIGl0cyBvd25cbi8vIGhlYWRlciBuZWVkcyAodGl0bGUsIFwiVm9lZyB0b2VcIiwgdGhlIHRocmVlIHZpZXcgYnV0dG9ucyk7IGJlbG93IHRoYXQgdGhleSBjb2xsaWRlLlxuLy8gVGhlIGRyYWcgaXRzZWxmIGlzIGNhcHBlZCBpbiBKUyB0b287IHRoaXMgaXMgdGhlIGJhY2tzdG9wIGZvciBvdGhlciBjYXVzZXMsIHN1Y2ggYXNcbi8vIGEgd2luZG93IHRoYXQgZ2V0cyByZXNpemVkIHdoaWxlIHRoZSBwYW5lbCBpcyBvcGVuLiBbS2ltIDEwLjA4LjIwMjZdXG4ub3Ytcm9vdC5zcGxpdC1vcGVuIC5vdi1jb250ZW50IHsgbWluLXdpZHRoOiAkb3Ytc3BsaXQtbGVmdC1taW4td2lkdGg7IH1cblxuLy8gUGFuZWwgaGVhZGVyXG4vLyBUaGUgc3RyaXAgYWJvdmUgdGhlIHRhYmxlIHVzZWQgdG8gYmUgaGFuZC1yb2xsZWQgaGVyZSAoLm92LXBhbmVsLWhlYWRlciBhbmRcbi8vIGZyaWVuZHM6IGxhYmVsLCBjb3VudCBwaWxsLCB2aWV3IGJ1dHRvbnMpLiBJdCBpcyBxZG5hcHJvLXRhYmxlLXdyYXBwZXIgbm93LFxuLy8gd2hpY2ggYnJpbmdzIGl0cyBvd24gc3R5bGluZyDigJQgaW5jbHVkaW5nIGRhcmsgbW9kZSwgd2hpY2ggdGhlc2UgcnVsZXMgbmV2ZXJcbi8vIGhhZC4gUmVtb3ZlZCAwOS4wOC4yMDI2LlxuXG4vLyBUYWJsZSBhcmVhXG4ub3YtdGFibGUtYXJlYSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAvLyBUaGUgd3JhcHBlciBpcyB0aGUgZGlyZWN0IGNoaWxkIG5vdzsgaXQgcGFzc2VzIHRoZSBzcGFjZSBvbiB0byB0aGUgdGFibGUuXG4gICAgcWRuYXByby10YWJsZS13cmFwcGVyLFxuICAgIHFkbmFwcm8tdGFibGUge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG59XG5cbi8vIOKUgOKUgCBBY3RpdmUgYnV0dG9uIHN0YXRlICh2aWV3IHRvZ2dsZSwgZXRjLikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbi5vdi1idG4tYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXB1cnBsZS01MCwgI2U2ZTlmZikgIWltcG9ydGFudDtcbiAgICBjb2xvcjogICAgICAgdmFyKC0tYy1wdXJwbGUtNTAwLCAjNDA0OTlhKSAhaW1wb3J0YW50O1xufVxuXG4vLyDilIDilIAgRm9vdGVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4ub3YtZm9vdGVyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG59XG5cbi8vIOKUgOKUgCBBbiBvdmVydmlldyBJTlNJREUgYSByZWNvcmQgKEtpbSAxMC4wOC4yMDI2KSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFN1Y2ggYSBwYWdlICh0b2RheTogL21hc3Rlcl9kYXRhL3VzZXJzLzppZC90ZWFtcyBhbmQgL3Rhc2tsaXN0cykgc2hvd3MgdGhlIFJFQ09SRCdzXG4vLyBvd24gZmxvYXRpbmcgYmFyIOKAlCB0aGUgZXhhY3QgYmFyIGl0cyBjYXJkIHNob3dzLCBzYW1lIHBhcnRpYWwsIHNhbWUgYnVpbGRlciDigJQgaW5zdGVhZFxuLy8gb2YgdGhpcyBwYWdlJ3MgaW4tZmxvdyBmb290ZXIgYmFyLiBUd28gYmFycyBzdGFja2VkIHJlYWQgYXMgYSByZW5kZXJpbmcgZmF1bHQsIGFuZFxuLy8gdGhlIGJhciBqdW1waW5nIHRvIGFub3RoZXIgc3BvdCBwZXIgcGFnZSB3YXMgdGhlIGNvbXBsYWludCB0aGF0IHN0YXJ0ZWQgdGhpcy5cbi8vXG4vLyBUaGUgZm9vdGVyIGtlZXBzIGV4aXN0aW5nIGJ1dCBnb2VzIGhpZGRlbjogb3ZlcnZpZXcuaHRtbC50d2lnJ3Mgc2NyaXB0IGJpbmRzXG4vLyAjb3YtYnRuLWNlbnRlciBhbmQgI292LWJ0bi1hcmNoaXZlZCB3aXRoIG5vIG51bGwtZ3VhcmRzLCBzbyByZW1vdmluZyB0aGVtIHdvdWxkIHRha2Vcbi8vIHRoZSBwYWdlIHNjcmlwdCBkb3duIHdpdGggdGhlbS4gTmVlZGVkIGV4cGxpY2l0bHkgYmVjYXVzZSBgLm92LWZvb3RlcmAgc2V0c1xuLy8gZGlzcGxheTpmbGV4LCB3aGljaCBiZWF0cyB0aGUgdXNlci1hZ2VudCBydWxlIGZvciBbaGlkZGVuXS5cbi5vdi1mb290ZXJbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gUm9vbSBmb3IgdGhhdCBmbG9hdGluZyBiYXI6IGl0IGlzIGZpeGVkIHRvIHRoZSBib3R0b20gb2YgdGhlIHZpZXdwb3J0ICg1NnB4IHRhbGwgYXQgYVxuLy8gMTZweCBvZmZzZXQsIHotaW5kZXggOTAwMCksIGFuZCAub3Ytcm9vdCBjbGlwcyBpdHMgb3duIG92ZXJmbG93IOKAlCB3aXRob3V0IHRoaXMgdGhlXG4vLyBsYXN0IHRhYmxlIHJvdyBzaXRzIHVucmVhY2hhYmxlIGJlaGluZCBpdC5cbi8vXG4vLyBbS2ltIDEwLjA4LjIwMjZdIFRoZSByZXNlcnZhdGlvbiBzaXRzIElOU0lERSB0aGUgc2Nyb2xsaW5nIHRhYmxlIG5vdywgbm90IHVuZGVyXG4vLyAub3YtYm9keS4gVW5kZXIgdGhlIGJvZHkgaXQgcHVzaGVkIHRoZSB3aG9sZSB0YWJsZSB1cCBhbmQgbGVmdCBhIGRlYWQgODBweCBiYW5kIG9mXG4vLyBwYWdlIGNvbG91ciBhYm92ZSBhIGJhciB0aGF0IGlzIG1lYW50IHRvIGZsb2F0IE9WRVIgdGhlIGNvbnRlbnQuIEluc2lkZSB0aGUgc2Nyb2xsXG4vLyBhcmVhIHRoZSB0YWJsZSBydW5zIG9uIGJlaGluZCB0aGUgYmFyLCBhbmQgdGhlIGxhc3Qgcm93IGlzIHN0aWxsIHJlYWNoYWJsZSDigJQgeW91XG4vLyBzY3JvbGwgaXQgb3V0IGZyb20gdW5kZXIuIFNhbWUgbW92ZSwgc2FtZSByZWFzb24sIGFzIC51ZHAgaW5cbi8vIHYxL3VzZXJzL3ZpZXdfdXNlci5odG1sLlxuLm92LXJvb3QuaGFzLXJlY29yZC1uYXYgLnFkbmFwcm8tdGFibGUtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDgwcHg7XG59XG5cbi8vIOKUgOKUgCBTdGF0ZTogc2lkZWJhciBvcGVuIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4ub3Ytcm9vdC5zaWRlYmFyLW9wZW4ge1xuICAgIC5vdi1jdHJsLWJhciAgICAgIHsgZ2FwOiA4cHg7IH1cbiAgICAub3YtY3RybC1zaWRlYmFyICB7IHdpZHRoOiAkb3Ytc2lkZWJhci13aWR0aDsgYm9yZGVyLXJhZGl1czogJG92LXNpZGViYXItcmFkaXVzICRvdi1zaWRlYmFyLXJhZGl1cyAwIDA7IHBhZGRpbmc6IDRweDsgfVxuICAgIC5vdi1zaWRlYmFyLXdyYXAgIHsgd2lkdGg6ICRvdi1zaWRlYmFyLXdpZHRoOyBib3JkZXItcmFkaXVzOiAwIDAgJG92LXNpZGViYXItcmFkaXVzICRvdi1zaWRlYmFyLXJhZGl1czsgbWFyZ2luLXJpZ2h0OiA4cHg7IG1hcmdpbi10b3A6IC02cHg7IH1cbn1cblxuLy8g4pSA4pSAIFN0YXRlOiBzaWRlYmFyIGNvbGxhcHNlZCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLm92LXJvb3Quc2lkZWJhci1jb2xsYXBzZWQge1xuICAgIC5vdi1jdHJsLWJhciAgICAgIHsgZ2FwOiA4cHg7IH1cbiAgICAub3YtY3RybC1zaWRlYmFyICB7IHdpZHRoOiAkb3Ytc2lkZWJhci13aWR0aDsgcGFkZGluZzogNHB4OyB9XG59XG5cbi8vIOKUgOKUgCBQYWdlIHN3aXRjaGVyIChzZWdtZW50ZWQgY29udHJvbCBuZXh0IHRvIHRoZSBzZWFyY2ggZmllbGQpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gT25seSByZW5kZXJlZCB3aGVyZSBhIHNpc3RlciBvdmVydmlldyBleGlzdHMuIFVzZWQgdG8gYmUgdHdvIGJ1dHRvbnMgaW4gdGhlIGZvb3RlclxuLy8gYWN0aW9uIGJhciwgd2hlcmUgdGhleSB3ZXJlIGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gdGhlIGFyY2hpdmUgZmlsdGVyIG5leHQgdG8gdGhlbS5cbi8vIFtLaW0gMTAuMDguMjAyNl1cbi5vdi1jdHJsLXBhZ2Utc3dpdGNoIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7XG5cbiAgICAvLyBOZWVkZWQgZXhwbGljaXRseTogdGhpcyBydWxlIHNldHMgZGlzcGxheTpmbGV4LCB3aGljaCBiZWF0cyB0aGUgdXNlci1hZ2VudCBydWxlXG4gICAgLy8gZm9yIFtoaWRkZW5dLCBzbyB0aGUgSlMgaGlkaW5nIGl0IGRpZCBub3RoaW5nIGFuZCB0aGUgcGlsbCBzYXQgb24gdGhlIExJVkUgcGFnZVxuICAgIC8vIHRvby4gU2FtZSB0cmFwIGAub3YtZm9vdGVyW2hpZGRlbl1gIGFscmVhZHkgZG9jdW1lbnRzIGZ1cnRoZXIgdXAgdGhpcyBmaWxlLlxuICAgIC8vIFtLaW0gMTEuMDguMjAyNiwgc3BvdHRlZCByaWdodCBhZnRlciBhcmNoaXZpbmcgYSBsaXN0XVxuICAgICZbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgIC8vIFRoZSBzbGlkaW5nLXBpbGxzIHZhcmlhbnQgaGFzIGEgVFJBTlNQQVJFTlQgdHJhY2sgYW5kIGEgbGlnaHQgbGF2ZW5kZXIgcGlsbDogaXRcbiAgICAvLyBpcyBkcmF3biB0byBzaXQgb24gd2hpdGUuIFVwIGhlcmUgaXQgc2l0cyBvbiB0aGUgcGFnZSdzIG93biBsaWdodCBwdXJwbGUsIHNvIHBpbGxcbiAgICAvLyBhbmQgYmFja2dyb3VuZCB3ZXJlIHRoZSBzYW1lIGNvbG91ciBhbmQgb25seSB0aGUgdHdvIHdvcmRzIHNob3dlZC4gQSB3aGl0ZSBiZWRcbiAgICAvLyB1bmRlciBpdCBnaXZlcyB0aGUgdmFyaWFudCB0aGUgY29udHJhc3QgaXQgYXNzdW1lcywgd2l0aG91dCB0b3VjaGluZyB0aGUgc2hhcmVkXG4gICAgLy8gY29tcG9uZW50LiBbS2ltIDEwLjA4LjIwMjZdXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBwYWRkaW5nOiAzcHg7XG59XG5cbi8vIOKUgOKUgCBTcGxpdCBzY3JlZW46IGRyYWdnYWJsZSBkaXZpZGVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vLyBEcmFnIGhhbmRsZSBiZXR3ZWVuIHRoZSB0d28gcGFuZWxzLiBTYW1lIHZpc3VhbCBsYW5ndWFnZSBhcyB0aGUgd2lkZ2V0IHJlc2l6ZVxuLy8gaGFuZGxlcyBvbiB0aGUgaG9tZXBhZ2UgKC53aWRnZXQtcmVzaXplLWhhbmRsZSBpbiBob21lLXYyLmh0bWwpOiBhbiBpbnZpc2libGVcbi8vIHdpZGUgaGl0IGFyZWEgd2l0aCBhIHNtYWxsIHJvdW5kZWQgYmFyIGluIHRoZSBtaWRkbGUsIHdoaWNoIGRhcmtlbnMgYW5kIGdyb3dzXG4vLyBvbiBob3ZlciBzbyBpdCBpcyBvYnZpb3VzIHRoZSBwYW5lbHMgY2FuIGJlIHJlc2l6ZWQuIFtLaW0gMTAuMDguMjAyNl1cbi5vdi1zcGxpdC1yZXNpemVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIGN1cnNvcjogY29sLXJlc2l6ZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDY0LCA3MywgMTU0LCAuMyk7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTIwbXMgZWFzZSwgaGVpZ2h0IDIwMG1zIGVhc2U7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIsXG4gICAgJjphY3RpdmU6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2NCwgNzMsIDE1NCwgLjk1KTtcbiAgICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgIH1cbn1cblxuLy8gV2hpbGUgZHJhZ2dpbmcsIGxvY2sgdGhlIGN1cnNvciBhY3Jvc3MgdGhlIHdob2xlIHBhZ2Ugc28gdGhlIGdlc3R1cmUgc3Vydml2ZXNcbi8vIHdoZW4gdGhlIHBvaW50ZXIgcnVucyBwYXN0IHRoZSBoYW5kbGUuIE1pcnJvcnMgaG9tZS12MidzIGBib2R5LmlzLXJlc2l6aW5nYC5cbmJvZHkub3Ytc3BsaXQtcmVzaXppbmcsXG5ib2R5Lm92LXNwbGl0LXJlc2l6aW5nICogeyBjdXJzb3I6IGNvbC1yZXNpemUgIWltcG9ydGFudDsgfVxuXG4vLyDilIDilIAgU3BsaXQgc2NyZWVuOiByaWdodCBwYW5lbCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLm92LXNwbGl0LXBhbmVsIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtaW4td2lkdGg6ICRvdi1zcGxpdC1taW4td2lkdGg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRvdi1zaWRlYmFyLXJhZGl1cztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gU2xpZGVzIGluIGZyb20gdGhlIHJpZ2h0IGFuZCBiYWNrIG91dCBhZ2Fpbi4gQXBwZWFyaW5nIGFuZCB2YW5pc2hpbmcgaW4gb25lXG4gICAgLy8gZnJhbWUgcmVhZCBhcyBhIGdsaXRjaCByYXRoZXIgdGhhbiBhcyBhIHBhbmVsIG9wZW5pbmcuIFtLaW0gMTAuMDguMjAyNl1cbiAgICAvLyBUcmFuc2Zvcm0gYW5kIG9wYWNpdHkgb25seSwgc28gdGhpcyBydW5zIG9uIHRoZSBjb21wb3NpdG9yOyBgd2lkdGhgIGlzIGxlZnRcbiAgICAvLyBhbG9uZSBiZWNhdXNlIHRoZSBkcmFnLXRvLXJlc2l6ZSBzZXRzIGl0IGlubGluZSBhbmQgYW5pbWF0aW5nIGl0IHdvdWxkIGZpZ2h0XG4gICAgLy8gdGhlIGRyYWcuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgdHJhbnNmb3JtICRvdi10cmFuc2l0aW9uLFxuICAgICAgICBvcGFjaXR5ICAgMTYwbXMgJG92LWVhc2luZztcblxuICAgIC8vIFRoZSBzdGF0ZSB0aGUgcGFuZWwgaXMgaW4gZm9yIG9uZSBmcmFtZSBiZWZvcmUgaXQgc2xpZGVzIGluLCBhbmQgdGhlIHN0YXRlIGl0XG4gICAgLy8gYW5pbWF0ZXMgYmFjayB0byBvbiB0aGUgd2F5IG91dC4gSlMgYWRkcyBhbmQgcmVtb3ZlcyB0aGUgY2xhc3M7IHNlZVxuICAgIC8vIG92U2hvd1NwbGl0U2hlbGwoKSBhbmQgb3ZDbG9zZVNwbGl0KCkgaW4gb3ZlcnZpZXcuaHRtbC50d2lnLlxuICAgICYuaXMtc2xpZGluZyB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDEwMCUgKyA4cHgpKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG59XG5cbi8vIFNvbWVvbmUgd2hvIHNldCBcInJlZHVjZSBtb3Rpb25cIiBnZXRzIHRoZSBwYW5lbCB3aXRob3V0IHRoZSBzbGlkZS5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLm92LXNwbGl0LXBhbmVsIHsgdHJhbnNpdGlvbjogbm9uZTsgfVxufVxuXG4ub3Ytc3BsaXQtdG9vbGJhciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDhweCA4cHggMDtcblxuICAgIHFkbmFwcm8taW5wdXQge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB9XG59XG5cbi5vdi1zcGxpdC10YWJsZS1hcmVhIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIHFkbmFwcm8tdGFibGUtd3JhcHBlcixcbiAgICBxZG5hcHJvLXRhYmxlIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgfVxufVxuXG4vLyBQbGFjZWhvbGRlciBpbnNpZGUgdGhlIHNwbGl0IHBhbmVsLCBzaG93biBmcm9tIHRoZSBtb21lbnQgc3BsaXQgc2NyZWVuIGlzXG4vLyBzd2l0Y2hlZCBvbiB1bnRpbCBhIHJvdyBpcyBwaWNrZWQuIFdpdGhvdXQgaXQsIHR1cm5pbmcgdGhlIHRvZ2dsZSBvbiBjaGFuZ2VkXG4vLyBub3RoaW5nIG9uIHNjcmVlbiBhbmQgdGhlIGJ1dHRvbiByZWFkIGFzIGJyb2tlbi4gW0tpbSAxMC4wOC4yMDI2XVxuLy8gSGludCB1bmRlciB0aGUgTEVGVCB0YWJsZTogaXQgaXMgYWJvdXQgdGhlIHJvd3Mgb3ZlciB0aGVyZSwgc28gaXQgYmVsb25ncyB0aGVyZS5cbi8vIFdpdGggdGhlIHBhbmVsIG9wZW4gYSBzaW5nbGUgY2xpY2sgZmlsbHMgdGhlIHBhbmVsIHJhdGhlciB0aGFuIG9wZW5pbmcgdGhlIGxpc3QsXG4vLyBhbmQgdGhpcyBpcyB0aGUgb25seSBwbGFjZSB0aGF0IHNheXMgaG93IHRvIHJlYWNoIHRoZSBsaXN0IGl0c2VsZi4gRGVsaWJlcmF0ZWx5XG4vLyBxdWlldDogaXQgaXMgYSByZW1pbmRlciwgbm90IGFuIGluc3RydWN0aW9uLiBbS2ltIDEwLjA4LjIwMjZdXG4ub3Ytc3BsaXQtaGludCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogNnB4IDE0cHggOHB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LXNvZnQsICM5Mjk5YWQpO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4vLyBTb2Z0ZXIgYXJyaXZhbCBmb3IgdGhlIHBhbmVsJ3Mgcm93cy4gVGhlIGNvbXBvbmVudCdzIG93biBlbnRyYW5jZSBpcyB0dW5lZCBmb3IgYVxuLy8gZnVsbCBwYWdlICgxODBtcyBwZXIgcm93LCAyNW1zIGFwYXJ0KSwgd2hpY2ggaW4gYSBuYXJyb3cgcGFuZWwgcmVhZHMgYXMgYSBmbGlja2VyXG4vLyByYXRoZXIgdGhhbiBhcyBhbiBhbmltYXRpb24uIEhlcmUgdGhlIHJvd3MgdGFrZSBsb25nZXIsIHN0YXJ0IGZ1cnRoZXIgYXBhcnQgYW5kXG4vLyB0cmF2ZWwgYSBsaXR0bGUgZnVydGhlciwgc28gaXQgZWFzZXMgaW4gaW5zdGVhZCBvZiBibGlua2luZy4gU2NvcGVkIHRvIHRoZSBwYW5lbCxcbi8vIHNvIGV2ZXJ5IG90aGVyIHRhYmxlIGtlZXBzIHRoZSBzaGFyZWQgdGltaW5nLiBbS2ltIDEwLjA4LjIwMjZdXG5Aa2V5ZnJhbWVzIG92LXNwbGl0LXJvdy1lbnRlciB7XG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IG5vbmU7IH1cbn1cblxuLm92LXNwbGl0LXBhbmVsIHtcbiAgICAucWRuYXByby10YWJsZS1saXN0IHRib2R5IHRyLmlzLWVudGVyaW5nLFxuICAgIC5xZG5hcHJvLXRhYmxlLWxpc3QgdGJvZHkgdHIuaXMtZW50ZXJpbmctZmxhdCB7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBvdi1zcGxpdC1yb3ctZW50ZXI7XG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMzIwbXM7XG4gICAgICAgIC8vIFF1aWNrIG9mZiB0aGUgbWFyaywgbG9uZyBzb2Z0IGxhbmRpbmcuXG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMTYsIDEsIC4zLCAxKTtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiBjYWxjKHZhcigtLXFkbmFwcm8tdGFibGUtZW50ZXItaSwgMCkgKiA0NW1zKTtcbiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLm92LXNwbGl0LXBhbmVsIC5xZG5hcHJvLXRhYmxlLWxpc3QgdGJvZHkgdHIuaXMtZW50ZXJpbmcsXG4gICAgLm92LXNwbGl0LXBhbmVsIC5xZG5hcHJvLXRhYmxlLWxpc3QgdGJvZHkgdHIuaXMtZW50ZXJpbmctZmxhdCB7XG4gICAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi8vIFVzZXMgdGhlIHNoYXJlZCBxZG5hcHJvLWVtcHR5LXN0YXRlIGNhcmQgaW4gaXRzIGBzdXJmYWNlPVwicGFnZVwiYCB2YXJpYW50LCBzb1xuLy8gdGhpcyByZWFkcyB0aGUgc2FtZSBhcyBldmVyeSBvdGhlciBlbXB0eSBzdGF0ZSBpbiB0aGUgcHJvZHVjdCBpbnN0ZWFkIG9mIGJlaW5nXG4vLyBhIG9uZS1vZmYgbGluZSBvZiBncmV5IHRleHQuIFRoaXMgd3JhcHBlciBvbmx5IGhhbmRsZXMgdGhlIGNlbnRlcmluZy5cbi5vdi1zcGxpdC1lbXB0eSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLy8g4pSA4pSAIFNwbGl0IHNjcmVlbjogbmFycm93IHNjcmVlbnMga2VlcCBib3RoIHBhbmVscyBzaWRlIGJ5IHNpZGUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBCZWxvdyAkb3Ytc3BsaXQtYnJlYWtwb2ludCB0aGUgcGFuZWwgdXNlZCB0byBmbG9hdCBPVkVSIHRoZSBsZWZ0IHRhYmxlLiBUaGF0XG4vLyB3b3JrZWQgd2hpbGUgc3BsaXQgc2NyZWVuIHdhcyBzb21ldGhpbmcgeW91IHN3aXRjaGVkIG9uIGZvciBhIG1vbWVudDsgbm93IHRoYXRcbi8vIGl0IGlzIGFsd2F5cyBvbiwgYSBwZXJtYW5lbnQgb3ZlcmxheSB3b3VsZCBjb3ZlciB0aGUgdGFibGUgeW91IGNhbWUgZm9yLiBTbyB0aGVcbi8vIHBhbmVsIHN0YXlzIGJlc2lkZSB0aGUgdGFibGUgYXQgZXZlcnkgd2lkdGggYW5kIHNpbXBseSBnZXRzIG5hcnJvdywgd2hpY2ggaXNcbi8vIHdoYXQgS2ltIGFza2VkIGZvciBvbiAxNy4wOC4yMDI2IChcImFsdGlqZCB0b25lbiwgb29rIG9wIHNtYWxcIikuXG4vL1xuLy8gVGhlIGxlZnQgdGFibGUncyBvd24gbWluaW11bSBoYXMgdG8gZ2l2ZSB3YXkgaGVyZTogc2lkZSBieSBzaWRlLCA1NjAgKyAyODAgK1xuLy8gdGhlIGRpdmlkZXIgZG9lcyBub3QgZml0IHVuZGVyIHRoZSBicmVha3BvaW50LCBhbmQga2VlcGluZyBpdCB3b3VsZCBwdXNoIHRoZVxuLy8gcGFuZWwgb2ZmIHNjcmVlbiBpbnN0ZWFkIG9mIG5hcnJvd2luZyBpdC4gVGhlIGhlYWRlciBjb250cm9scyBpbnNpZGUgdGhhdCB0YWJsZVxuLy8gd3JhcCBpbiB0aGlzIHJhbmdlOyB0aGF0IGlzIHRoZSB0cmFkZSBLaW0gY2hvc2Ugb3ZlciBhbiBvdmVybGF5LlxuXG5AbWVkaWEgKG1heC13aWR0aDogJG92LXNwbGl0LWJyZWFrcG9pbnQpIHtcbiAgICAub3Ytcm9vdC5zcGxpdC1vcGVuIHtcbiAgICAgICAgLm92LWNvbnRlbnQgeyBtaW4td2lkdGg6IDA7IH1cblxuICAgICAgICAvLyAhaW1wb3J0YW50OiB0aGUgZHJhZy10by1yZXNpemUgSlMgd3JpdGVzIGFuIGlubGluZSB3aWR0aCBmb3IgdGhlIHdpZGVcbiAgICAgICAgLy8gbGF5b3V0LCBhbmQgdGhhdCBzdG9yZWQgd2lkdGggY2FuIGVhc2lseSBiZSB3aWRlciB0aGFuIGhhbGYgb2YgYSBzbWFsbFxuICAgICAgICAvLyBzY3JlZW4uIFVuZGVyIHRoZSBicmVha3BvaW50IHRoZSBwYW5lbCB0YWtlcyBhIHNoYXJlIG9mIHRoZSB3aWR0aFxuICAgICAgICAvLyBpbnN0ZWFkLCBzbyB0aGUgdGFibGUgYWx3YXlzIGtlZXBzIHRoZSBsYXJnZXIgaGFsZi5cbiAgICAgICAgLm92LXNwbGl0LXBhbmVsIHtcbiAgICAgICAgICAgIHdpZHRoOiBjbGFtcCgjeyRvdi1zcGxpdC1taW4td2lkdGh9LCAzOCUsIDQyMHB4KSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gX3NldHRpbmdzX2h1Yi5zY3NzXG4vL1xuLy8gVGhlIEluc3RlbGxpbmdlbiBodWIgKC92MS9zZXR0aW5ncyk6IGEgc2VhcmNoIGJhciBhYm92ZSBhIGdyaWQgb2Zcbi8vIHFkbmFwcm8taHViLXRpbGUuIFBhZ2UgbGF5b3V0IG9ubHkgLSB0aGUgdGlsZXMgYnJpbmcgdGhlaXIgb3duIGxvb2tzLCBzZWVcbi8vIGNvbXBvbmVudHMvdjIvaHViLXRpbGUuXG4vL1xuLy8gVGhlIHNlYXJjaCBpcyBhIHN0cmFpZ2h0IGNvcHkgb2YgdGhlIG9uZSBvbiBQcm9qZWN0ZW4gKHByb2plY3RzLXYyLmh0bWwnc1xuLy8gLnB2Mi1zZWFyY2gpOiB0aGUgc2FtZSBxZG5hcHJvLWlucHV0IHdpdGggdHlwZT1cImRlZmF1bHRcIiBzaXplPVwic21hbGxcIlxuLy8gaWNvbj1cIm1hZ25pZnlcIiwgYW5kIHRoZSBzYW1lIGZpeGVkIDM0MHB4IHNvIGl0IGRvZXMgbm90IHN0cmV0Y2ggYWNyb3NzIGEgd2lkZVxuLy8gc2NyZWVuLiBLaW0gYXNrZWQgZm9yIFwiYSBzbWFsbCBvbmUgbGlrZSBvbiBwcm9qZWN0c1wiIG9uIDA5LjA4LjIwMjYsIGFuZCB0d29cbi8vIHNlYXJjaCBiYXJzIHRoYXQgbG9vayBkaWZmZXJlbnQgb24gdHdvIGh1YiBwYWdlcyBpcyBleGFjdGx5IHRoZSBkcmlmdCB0aGlzXG4vLyBjb21wb25lbnQgd29yayBpcyBtZWFudCB0byBlbmQuXG5cbi8vIFRoZSBwYWdlIGl0c2VsZiBpcyB0aGUgcG9zaXRpb25pbmcgY29udGV4dCBmb3IgdGhlIHNlYXJjaCwgc2VlIGJlbG93LlxuLnNldHRpbmdzLWh1YiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLyBUSEUgU0VBUkNIIFNIQVJFUyBBIExJTkUgV0lUSCBUSEUgRklSU1QgSEVBRElORyAoS2ltIDEwLjA4LjIwMjYsIHRvIHNhdmUgaGVpZ2h0KS5cbi8vIEl0IGlzIGxpZnRlZCBvdXQgb2YgdGhlIGZsb3cgcmF0aGVyIHRoYW4gbW92ZWQgaW50byB0aGF0IGhlYWRpbmcncyBtYXJrdXAsIGJlY2F1c2Vcbi8vIHRoZSBmaXJzdCBibG9jayBpcyBleGFjdGx5IHdoYXQgdGhlIGZpbHRlciBoaWRlcyB3aGVuIG5vdGhpbmcgaW4gaXQgbWF0Y2hlcyAtIHRoZVxuLy8gc2VhcmNoIHdvdWxkIGRpc2FwcGVhciB3aXRoIGl0LCBhbmQgeW91IHdvdWxkIGJlIHN0dWNrIHdpdGggYSBmaWx0ZXJlZCBwYWdlIGFuZCBub1xuLy8gd2F5IHRvIGNsZWFyIHRoZSBmaWx0ZXIuIE91dCBvZiB0aGUgZmxvdyBpdCBzdXJ2aXZlcyB3aGF0ZXZlciB0aGUgZmlsdGVyIGRvZXMuXG4vL1xuLy8gVGhlIHRyYWRlLW9mZiBpcyB0aGF0IHRoZSBzZWFyY2ggbm8gbG9uZ2VyIHJlc2VydmVzIGl0cyBvd24gaGVpZ2h0LCBzbyB0aGUgZmlyc3Rcbi8vIGhlYWRpbmcgaGFzIHRvIGxlYXZlIHJvb20gZm9yIGl0OiBzZWUgLnNldHRpbmdzLWh1Yl9fYmxvY2s6Zmlyc3QtY2hpbGQgYmVsb3cuXG4uc2V0dGluZ3MtaHViX190b29sYmFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi8vIEhlYWRpbmdzLiBUaGUgZmlyc3Qgb25lIGxpbmVzIHVwIHdpdGggdGhlIHNlYXJjaDsgdGhlIHJlc3QganVzdCBzZXBhcmF0ZSBibG9ja3MuXG4vLyBUaGVzZSB1c2VkIHRvIGJlIGJvb3RzdHJhcCdzIHB0LTMgcGItMSBweC0zIHN0cmFpZ2h0IG9uIHRoZSBlbGVtZW50OyBzYW1lIHNwYWNpbmcsXG4vLyBub3cgaW4gb25lIHBsYWNlIHNvIGl0IGNhbiBiZSB0dW5lZCB3aXRob3V0IHRvdWNoaW5nIHRoZSBUd2lnLlxuLnNldHRpbmdzLWh1Yl9faGVhZGluZyB7XG4gICAgcGFkZGluZzogMTZweCAxNnB4IDRweDtcbn1cblxuLy8gVGhlIGZpcnN0IGhlYWRpbmcgaXMgdmVydGljYWxseSBjZW50cmVkIGFnYWluc3QgdGhlIDQwcHggc2VhcmNoIGZpZWxkIG5leHQgdG8gaXQsXG4vLyBhbmQgaXQgbXVzdCBub3QgcnVuIHVuZGVybmVhdGggdGhhdCBmaWVsZCBvbiBhIG5hcnJvdyB3aW5kb3cuXG4uc2V0dGluZ3MtaHViX19ibG9jazpmaXJzdC1vZi10eXBlIC5zZXR0aW5ncy1odWJfX2hlYWRpbmcge1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNjBweDsgLy8gMzQwcHggc2VhcmNoICsgMjBweCBicmVhdGhpbmcgcm9vbVxufVxuXG4vLyBVbmRlciByb3VnaGx5IGEgdGFibGV0IHRoZSBzZWFyY2ggd291bGQgc2l0IG9uIHRvcCBvZiB0aGUgaGVhZGluZywgc28gdGhlcmUgaXQgZ29lc1xuLy8gYmFjayB0byBpdHMgb3duIGxpbmUgYWJvdmUgdGhlIHRpbGVzLlxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLnNldHRpbmdzLWh1Yl9fdG9vbGJhciB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG5cbiAgICAuc2V0dGluZ3MtaHViX19ibG9jazpmaXJzdC1vZi10eXBlIC5zZXR0aW5ncy1odWJfX2hlYWRpbmcge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICAgIH1cbn1cblxuLnNldHRpbmdzLWh1Yl9fc2VhcmNoIHtcbiAgICAvLyBGaXhlZCwgbm90IGEgcGVyY2VudGFnZTogc2FtZSByZWFzb25pbmcgYW5kIHNhbWUgbnVtYmVyIGFzIFByb2plY3RlbidzXG4gICAgLy8gLnB2Mi1zZWFyY2ggLSBhIHNlYXJjaCB0aGF0IGdyb3dzIHdpdGggdGhlIHZpZXdwb3J0IGxvb2tzIGxpa2UgYSBmb3JtIGZpZWxkXG4gICAgLy8gYnkgdGhlIHRpbWUgeW91IGFyZSBvbiBhIDI3IGluY2ggc2NyZWVuLlxuICAgIHdpZHRoOiAzNDBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG5cbi8vIEEgYmxvY2sgaXMgb25lIGhlYWRpbmcgcGx1cyBpdHMgcm93IG9mIHRpbGVzLiBKUyBoaWRlcyB0aGUgd2hvbGUgdGhpbmcgd2hlbiBhXG4vLyBzZWFyY2ggbGVhdmVzIG5vdGhpbmcgaW4gaXQsIHNvIHRoZSBwYWdlIG5ldmVyIHNob3dzIGEgaGVhZGluZyB3aXRoIGFuIGVtcHR5XG4vLyBzcGFjZSB1bmRlciBpdC5cbi8vXG4vLyBCb3RoIHJ1bGVzIGFyZSBzcGVsbGVkIG91dCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHRoZSBicm93c2VyJ3Mgb3duXG4vLyBbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmUgfTogdGhhdCBpcyBhIHVzZXItYWdlbnQgcnVsZSBhbmQgbG9zZXMgdG8gYW55XG4vLyBzdHlsZXNoZWV0IHJ1bGUgdGhhdCBzZXRzIGRpc3BsYXkgb24gdGhlIHNhbWUgZWxlbWVudCwgd2hpY2ggaXMgZXhhY3RseSB3aGF0XG4vLyBib290c3RyYXAncyBncmlkIGNsYXNzZXMgZG8gdG8gYSBjb2x1bW4uIENoZWFwIGluc3VyYW5jZSBhZ2FpbnN0IGEgZmlsdGVyIHRoYXRcbi8vIHNpbGVudGx5IGRvZXMgbm90aGluZy5cbi5zZXR0aW5ncy1odWJfX2Jsb2NrW2hpZGRlbl0sXG4uc2V0dGluZ3MtaHViX19jZWxsW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zZXR0aW5ncy1odWJfX2VtcHR5IHtcbiAgICBwYWRkaW5nOiA0MHB4IDE2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQsICM2ZTcyODApO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLnNldHRpbmdzLWh1Yl9fZW1wdHktdGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LWhlYWRpbmcsICMxYTFmNGQpO1xufVxuIiwiLmFsZXJ0Lm1kaTo6YmVmb3JlLFxuLmJyZWFkY3J1bWIgLm1kaTo6YmVmb3JlLFxuLmJ0bi5tZGk6OmJlZm9yZSxcbi5jYXJkLXRpdGxlLm1kaTo6YmVmb3JlLFxuLmNhcmQtc3VidGl0bGUubWRpOjpiZWZvcmUsXG4uY2FyZC1saW5rLm1kaTo6YmVmb3JlLFxuLmRyb3Bkb3duLWl0ZW0ubWRpOjpiZWZvcmUsXG4ubGlzdC1ncm91cC1pdGVtLm1kaTo6YmVmb3JlLFxuLm5hdi1saW5rLm1kaTo6YmVmb3JlIHtcbiAgICBmb250LXNpemU6IDEuMjVlbTtcbiAgICBsaW5lLWhlaWdodDogaW5pdGlhbDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjA5cmVtO1xufVxuLmFsZXJ0Lm1kaTo6YmVmb3JlLFxuLmJyZWFkY3J1bWIgLm1kaTpub3QoOmVtcHR5KTo6YmVmb3JlLFxuLmJ0bi5tZGk6bm90KDplbXB0eSk6OmJlZm9yZSxcbi5jYXJkLXRpdGxlLm1kaTpub3QoOmVtcHR5KTo6YmVmb3JlLFxuLmNhcmQtc3VidGl0bGUubWRpOm5vdCg6ZW1wdHkpOjpiZWZvcmUsXG4uY2FyZC1saW5rLm1kaTpub3QoOmVtcHR5KTo6YmVmb3JlLFxuLmRyb3Bkb3duLWl0ZW0ubWRpOm5vdCg6ZW1wdHkpOjpiZWZvcmUsXG4ubmF2LWxpbmsubWRpOm5vdCg6ZW1wdHkpOjpiZWZvcmUge1xuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbn1cbi5saXN0LWdyb3VwLWl0ZW0ubWRpOm5vdCg6ZW1wdHkpOjpiZWZvcmUge1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xufVxuLmRyb3Bkb3duLWl0ZW0ubWRpOm5vdCg6ZW1wdHkpOjpiZWZvcmUge1xuICAgIG1hcmdpbi1sZWZ0OiAtMC43NXJlbTtcbn1cbi5hbGVydC5tZGk6OmJlZm9yZSxcbi5saXN0LWdyb3VwLWl0ZW0ubWRpOm5vdCg6ZW1wdHkpOjpiZWZvcmUge1xuICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xufVxuLm1vZGFsLXRpdGxlLm1kaTo6YmVmb3JlIHtcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAwLjU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC4yNnJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbn0iLCJmaWVsZHNldFtkaXNhYmxlZF0gLm11bHRpc2VsZWN0e3BvaW50ZXItZXZlbnRzOm5vbmV9Lm11bHRpc2VsZWN0X19zcGlubmVye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjFweDt0b3A6MXB4O3dpZHRoOjQ4cHg7aGVpZ2h0OjM1cHg7YmFja2dyb3VuZDojZmZmO2Rpc3BsYXk6YmxvY2t9Lm11bHRpc2VsZWN0X19zcGlubmVyOmFmdGVyLC5tdWx0aXNlbGVjdF9fc3Bpbm5lcjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDpcIlwiO3RvcDo1MCU7bGVmdDo1MCU7bWFyZ2luOi04cHggMCAwIC04cHg7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtib3JkZXItcmFkaXVzOjEwMCU7Ym9yZGVyOjJweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wLWNvbG9yOiM0MWI4ODM7Ym94LXNoYWRvdzowIDAgMCAxcHggdHJhbnNwYXJlbnR9Lm11bHRpc2VsZWN0X19zcGlubmVyOmJlZm9yZXthbmltYXRpb246c3Bpbm5pbmcgMi40cyBjdWJpYy1iZXppZXIoLjQxLC4yNiwuMiwuNjIpO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGV9Lm11bHRpc2VsZWN0X19zcGlubmVyOmFmdGVye2FuaW1hdGlvbjpzcGlubmluZyAyLjRzIGN1YmljLWJlemllciguNTEsLjA5LC4yMSwuOCk7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZX0ubXVsdGlzZWxlY3RfX2xvYWRpbmctZW50ZXItYWN0aXZlLC5tdWx0aXNlbGVjdF9fbG9hZGluZy1sZWF2ZS1hY3RpdmV7dHJhbnNpdGlvbjpvcGFjaXR5IC40cyBlYXNlLWluLW91dDtvcGFjaXR5OjF9Lm11bHRpc2VsZWN0X19sb2FkaW5nLWVudGVyLC5tdWx0aXNlbGVjdF9fbG9hZGluZy1sZWF2ZS1hY3RpdmV7b3BhY2l0eTowfS5tdWx0aXNlbGVjdCwubXVsdGlzZWxlY3RfX2lucHV0LC5tdWx0aXNlbGVjdF9fc2luZ2xle2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOjE2cHg7LW1zLXRvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbn0ubXVsdGlzZWxlY3R7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7bWluLWhlaWdodDo0MHB4O3RleHQtYWxpZ246bGVmdDtjb2xvcjojMzU0OTVlfS5tdWx0aXNlbGVjdCAqe2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubXVsdGlzZWxlY3Q6Zm9jdXN7b3V0bGluZTpub25lfS5tdWx0aXNlbGVjdC0tZGlzYWJsZWR7YmFja2dyb3VuZDojZWRlZGVkO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTouNn0ubXVsdGlzZWxlY3QtLWFjdGl2ZXt6LWluZGV4OjUwfS5tdWx0aXNlbGVjdC0tYWN0aXZlOm5vdCgubXVsdGlzZWxlY3QtLWFib3ZlKSAubXVsdGlzZWxlY3RfX2N1cnJlbnQsLm11bHRpc2VsZWN0LS1hY3RpdmU6bm90KC5tdWx0aXNlbGVjdC0tYWJvdmUpIC5tdWx0aXNlbGVjdF9faW5wdXQsLm11bHRpc2VsZWN0LS1hY3RpdmU6bm90KC5tdWx0aXNlbGVjdC0tYWJvdmUpIC5tdWx0aXNlbGVjdF9fdGFnc3tib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0ubXVsdGlzZWxlY3QtLWFjdGl2ZSAubXVsdGlzZWxlY3RfX3NlbGVjdHt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9Lm11bHRpc2VsZWN0LS1hYm92ZS5tdWx0aXNlbGVjdC0tYWN0aXZlIC5tdWx0aXNlbGVjdF9fY3VycmVudCwubXVsdGlzZWxlY3QtLWFib3ZlLm11bHRpc2VsZWN0LS1hY3RpdmUgLm11bHRpc2VsZWN0X19pbnB1dCwubXVsdGlzZWxlY3QtLWFib3ZlLm11bHRpc2VsZWN0LS1hY3RpdmUgLm11bHRpc2VsZWN0X190YWdze2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5tdWx0aXNlbGVjdF9faW5wdXQsLm11bHRpc2VsZWN0X19zaW5nbGV7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLWhlaWdodDoyMHB4O2xpbmUtaGVpZ2h0OjIwcHg7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo1cHg7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6MCAwIDAgNXB4O3dpZHRoOjEwMCU7dHJhbnNpdGlvbjpib3JkZXIgLjFzIGVhc2U7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbi1ib3R0b206OHB4O3ZlcnRpY2FsLWFsaWduOnRvcH0ubXVsdGlzZWxlY3RfX2lucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjojMzU0OTVlfS5tdWx0aXNlbGVjdF9faW5wdXQ6OnBsYWNlaG9sZGVye2NvbG9yOiMzNTQ5NWV9Lm11bHRpc2VsZWN0X190YWd+Lm11bHRpc2VsZWN0X19pbnB1dCwubXVsdGlzZWxlY3RfX3RhZ34ubXVsdGlzZWxlY3RfX3NpbmdsZXt3aWR0aDphdXRvfS5tdWx0aXNlbGVjdF9faW5wdXQ6aG92ZXIsLm11bHRpc2VsZWN0X19zaW5nbGU6aG92ZXJ7Ym9yZGVyLWNvbG9yOiNjZmNmY2Z9Lm11bHRpc2VsZWN0X19pbnB1dDpmb2N1cywubXVsdGlzZWxlY3RfX3NpbmdsZTpmb2N1c3tib3JkZXItY29sb3I6I2E4YThhODtvdXRsaW5lOm5vbmV9Lm11bHRpc2VsZWN0X19zaW5nbGV7cGFkZGluZy1sZWZ0OjVweDttYXJnaW4tYm90dG9tOjhweH0ubXVsdGlzZWxlY3RfX3RhZ3Mtd3JhcHtkaXNwbGF5OmlubGluZX0ubXVsdGlzZWxlY3RfX3RhZ3N7bWluLWhlaWdodDo0MHB4O2Rpc3BsYXk6YmxvY2s7cGFkZGluZzo4cHggNDBweCAwIDhweDtib3JkZXItcmFkaXVzOjVweDtib3JkZXI6MXB4IHNvbGlkICNlOGU4ZTg7YmFja2dyb3VuZDojZmZmO2ZvbnQtc2l6ZToxNHB4fS5tdWx0aXNlbGVjdF9fdGFne3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6NHB4IDI2cHggNHB4IDEwcHg7Ym9yZGVyLXJhZGl1czo1cHg7bWFyZ2luLXJpZ2h0OjEwcHg7Y29sb3I6I2ZmZjtsaW5lLWhlaWdodDoxO2JhY2tncm91bmQ6IzQxYjg4MzttYXJnaW4tYm90dG9tOjVweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO21heC13aWR0aDoxMDAlO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm11bHRpc2VsZWN0X190YWctaWNvbntjdXJzb3I6cG9pbnRlcjttYXJnaW4tbGVmdDo3cHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDtib3R0b206MDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7d2lkdGg6MjJweDt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoyMnB4O3RyYW5zaXRpb246YWxsIC4ycyBlYXNlO2JvcmRlci1yYWRpdXM6NXB4fS5tdWx0aXNlbGVjdF9fdGFnLWljb246YWZ0ZXJ7Y29udGVudDpcIlxcRDdcIjtjb2xvcjojMjY2ZDRkO2ZvbnQtc2l6ZToxNHB4fS5tdWx0aXNlbGVjdF9fdGFnLWljb246Zm9jdXMsLm11bHRpc2VsZWN0X190YWctaWNvbjpob3ZlcntiYWNrZ3JvdW5kOiMzNjlhNmV9Lm11bHRpc2VsZWN0X190YWctaWNvbjpmb2N1czphZnRlciwubXVsdGlzZWxlY3RfX3RhZy1pY29uOmhvdmVyOmFmdGVye2NvbG9yOiNmZmZ9Lm11bHRpc2VsZWN0X19jdXJyZW50e21pbi1oZWlnaHQ6NDBweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzo4cHggMzBweCAwIDEycHg7d2hpdGUtc3BhY2U6bm93cmFwO2JvcmRlci1yYWRpdXM6NXB4O2JvcmRlcjoxcHggc29saWQgI2U4ZThlOH0ubXVsdGlzZWxlY3RfX2N1cnJlbnQsLm11bHRpc2VsZWN0X19zZWxlY3R7bGluZS1oZWlnaHQ6MTZweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpibG9jazttYXJnaW46MDt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcn0ubXVsdGlzZWxlY3RfX3NlbGVjdHtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo0MHB4O2hlaWdodDozOHB4O3JpZ2h0OjFweDt0b3A6MXB4O3BhZGRpbmc6NHB4IDhweDt0ZXh0LWFsaWduOmNlbnRlcjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgZWFzZX0ubXVsdGlzZWxlY3RfX3NlbGVjdDpiZWZvcmV7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6MDt0b3A6NjUlO2NvbG9yOiM5OTk7bWFyZ2luLXRvcDo0cHg7Ym9yZGVyLWNvbG9yOiM5OTkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDo1cHggNXB4IDA7Y29udGVudDpcIlwifS5tdWx0aXNlbGVjdF9fcGxhY2Vob2xkZXJ7Y29sb3I6I2FkYWRhZDtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tYm90dG9tOjEwcHg7cGFkZGluZy10b3A6MnB4fS5tdWx0aXNlbGVjdC0tYWN0aXZlIC5tdWx0aXNlbGVjdF9fcGxhY2Vob2xkZXJ7ZGlzcGxheTpub25lfS5tdWx0aXNlbGVjdF9fY29udGVudC13cmFwcGVye3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZDojZmZmO3dpZHRoOjEwMCU7bWF4LWhlaWdodDoyNDBweDtvdmVyZmxvdzphdXRvO2JvcmRlcjoxcHggc29saWQgI2U4ZThlODtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo1cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NXB4O3otaW5kZXg6NTA7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9Lm11bHRpc2VsZWN0X19jb250ZW50e2xpc3Qtc3R5bGU6bm9uZTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjA7bWFyZ2luOjA7bWluLXdpZHRoOjEwMCU7dmVydGljYWwtYWxpZ246dG9wfS5tdWx0aXNlbGVjdC0tYWJvdmUgLm11bHRpc2VsZWN0X19jb250ZW50LXdyYXBwZXJ7Ym90dG9tOjEwMCU7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo1cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NXB4O2JvcmRlci1ib3R0b206bm9uZTtib3JkZXItdG9wOjFweCBzb2xpZCAjZThlOGU4fS5tdWx0aXNlbGVjdF9fY29udGVudDo6d2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9Lm11bHRpc2VsZWN0X19lbGVtZW50e2Rpc3BsYXk6YmxvY2t9Lm11bHRpc2VsZWN0X19vcHRpb257ZGlzcGxheTpibG9jaztwYWRkaW5nOjEycHg7bWluLWhlaWdodDo0MHB4O2xpbmUtaGVpZ2h0OjE2cHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC10cmFuc2Zvcm06bm9uZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOnBvaW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5tdWx0aXNlbGVjdF9fb3B0aW9uOmFmdGVye3RvcDowO3JpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGU7bGluZS1oZWlnaHQ6NDBweDtwYWRkaW5nLXJpZ2h0OjEycHg7cGFkZGluZy1sZWZ0OjIwcHg7Zm9udC1zaXplOjEzcHh9Lm11bHRpc2VsZWN0X19vcHRpb24tLWhpZ2hsaWdodHtiYWNrZ3JvdW5kOiM0MWI4ODM7b3V0bGluZTpub25lO2NvbG9yOiNmZmZ9Lm11bHRpc2VsZWN0X19vcHRpb24tLWhpZ2hsaWdodDphZnRlcntjb250ZW50OmF0dHIoZGF0YS1zZWxlY3QpO2JhY2tncm91bmQ6IzQxYjg4Mztjb2xvcjojZmZmfS5tdWx0aXNlbGVjdF9fb3B0aW9uLS1zZWxlY3RlZHtiYWNrZ3JvdW5kOiNmM2YzZjM7Y29sb3I6IzM1NDk1ZTtmb250LXdlaWdodDo3MDB9Lm11bHRpc2VsZWN0X19vcHRpb24tLXNlbGVjdGVkOmFmdGVye2NvbnRlbnQ6YXR0cihkYXRhLXNlbGVjdGVkKTtjb2xvcjpzaWx2ZXJ9Lm11bHRpc2VsZWN0X19vcHRpb24tLXNlbGVjdGVkLm11bHRpc2VsZWN0X19vcHRpb24tLWhpZ2hsaWdodHtiYWNrZ3JvdW5kOiNmZjZhNmE7Y29sb3I6I2ZmZn0ubXVsdGlzZWxlY3RfX29wdGlvbi0tc2VsZWN0ZWQubXVsdGlzZWxlY3RfX29wdGlvbi0taGlnaGxpZ2h0OmFmdGVye2JhY2tncm91bmQ6I2ZmNmE2YTtjb250ZW50OmF0dHIoZGF0YS1kZXNlbGVjdCk7Y29sb3I6I2ZmZn0ubXVsdGlzZWxlY3QtLWRpc2FibGVkIC5tdWx0aXNlbGVjdF9fY3VycmVudCwubXVsdGlzZWxlY3QtLWRpc2FibGVkIC5tdWx0aXNlbGVjdF9fc2VsZWN0e2JhY2tncm91bmQ6I2VkZWRlZDtjb2xvcjojYTZhNmE2fS5tdWx0aXNlbGVjdF9fb3B0aW9uLS1kaXNhYmxlZHtiYWNrZ3JvdW5kOiNlZGVkZWQhaW1wb3J0YW50O2NvbG9yOiNhNmE2YTYhaW1wb3J0YW50O2N1cnNvcjp0ZXh0O3BvaW50ZXItZXZlbnRzOm5vbmV9Lm11bHRpc2VsZWN0X19vcHRpb24tLWdyb3Vwe2JhY2tncm91bmQ6I2VkZWRlZDtjb2xvcjojMzU0OTVlfS5tdWx0aXNlbGVjdF9fb3B0aW9uLS1ncm91cC5tdWx0aXNlbGVjdF9fb3B0aW9uLS1oaWdobGlnaHR7YmFja2dyb3VuZDojMzU0OTVlO2NvbG9yOiNmZmZ9Lm11bHRpc2VsZWN0X19vcHRpb24tLWdyb3VwLm11bHRpc2VsZWN0X19vcHRpb24tLWhpZ2hsaWdodDphZnRlcntiYWNrZ3JvdW5kOiMzNTQ5NWV9Lm11bHRpc2VsZWN0X19vcHRpb24tLWRpc2FibGVkLm11bHRpc2VsZWN0X19vcHRpb24tLWhpZ2hsaWdodHtiYWNrZ3JvdW5kOiNkZWRlZGV9Lm11bHRpc2VsZWN0X19vcHRpb24tLWdyb3VwLXNlbGVjdGVkLm11bHRpc2VsZWN0X19vcHRpb24tLWhpZ2hsaWdodHtiYWNrZ3JvdW5kOiNmZjZhNmE7Y29sb3I6I2ZmZn0ubXVsdGlzZWxlY3RfX29wdGlvbi0tZ3JvdXAtc2VsZWN0ZWQubXVsdGlzZWxlY3RfX29wdGlvbi0taGlnaGxpZ2h0OmFmdGVye2JhY2tncm91bmQ6I2ZmNmE2YTtjb250ZW50OmF0dHIoZGF0YS1kZXNlbGVjdCk7Y29sb3I6I2ZmZn0ubXVsdGlzZWxlY3QtZW50ZXItYWN0aXZlLC5tdWx0aXNlbGVjdC1sZWF2ZS1hY3RpdmV7dHJhbnNpdGlvbjphbGwgLjE1cyBlYXNlfS5tdWx0aXNlbGVjdC1lbnRlciwubXVsdGlzZWxlY3QtbGVhdmUtYWN0aXZle29wYWNpdHk6MH0ubXVsdGlzZWxlY3RfX3N0cm9uZ3ttYXJnaW4tYm90dG9tOjhweDtsaW5lLWhlaWdodDoyMHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOnRvcH1bZGlyPXJ0bF0gLm11bHRpc2VsZWN0e3RleHQtYWxpZ246cmlnaHR9W2Rpcj1ydGxdIC5tdWx0aXNlbGVjdF9fc2VsZWN0e3JpZ2h0OmF1dG87bGVmdDoxcHh9W2Rpcj1ydGxdIC5tdWx0aXNlbGVjdF9fdGFnc3twYWRkaW5nOjhweCA4cHggMCA0MHB4fVtkaXI9cnRsXSAubXVsdGlzZWxlY3RfX2NvbnRlbnR7dGV4dC1hbGlnbjpyaWdodH1bZGlyPXJ0bF0gLm11bHRpc2VsZWN0X19vcHRpb246YWZ0ZXJ7cmlnaHQ6YXV0bztsZWZ0OjB9W2Rpcj1ydGxdIC5tdWx0aXNlbGVjdF9fY2xlYXJ7cmlnaHQ6YXV0bztsZWZ0OjEycHh9W2Rpcj1ydGxdIC5tdWx0aXNlbGVjdF9fc3Bpbm5lcntyaWdodDphdXRvO2xlZnQ6MXB4fUBrZXlmcmFtZXMgc3Bpbm5pbmd7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3t0cmFuc2Zvcm06cm90YXRlKDJ0dXJuKX19XG5cbi8vIEFkanVzdG1lbnRzXG4ubXVsdGlzZWxlY3RfX3RhZ3Mge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAuMzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogLjc1cmVtO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBjb2xvcjogIzQ5NTA1NztcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjZWQ0ZGE7XG4gICAgYm9yZGVyLXJhZGl1czogLjI1cmVtO1xuICAgIG1pbi1oZWlnaHQ6IGNhbGMoMi4yNXJlbSArIDJweCk7XG59XG5cbi5tdWx0aXNlbGVjdF9fc2luZ2xlLFxuLm11bHRpc2VsZWN0X19wbGFjZWhvbGRlcixcbi5tdWx0aXNlbGVjdF9faW5wdXQge1xuICAgIGNvbG9yOiAjNDk1MDU3O1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IC4zNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmNhcmQtcnVsZXMge1xuICAgIC5tdWx0aXNlbGVjdF9fdGFncyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzVhODNlYztcbiAgICB9XG4gICAgLm11bHRpc2VsZWN0X190YWcge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThlZWZjO1xuICAgICAgICBjb2xvcjogIzQ5NTA1NztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzVhODNlYztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgfVxuICAgIC5tdWx0aXNlbGVjdF9fdGFnLWljb246YWZ0ZXIge1xuICAgICAgICBjb2xvcjogIzQ5NTA1NztcbiAgICB9XG4gICAgLm11bHRpc2VsZWN0X190YWctaWNvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjNWE4M2VjO1xuICAgICAgICAgICAgY29sb3I6ICM0OTUwNTc7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgIFxuICAgIH1cbiAgICAubXVsdGlzZWxlY3QtLWFib3ZlIFxuICAgIC5tdWx0aXNlbGVjdF9fY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNWE4M2VjO1xuICAgICAgICBmb250LXNpemU6IC44NzVyZW07XG4gICAgfVxuICAgIC5tdWx0aXNlbGVjdF9fb3B0aW9uLS1oaWdobGlnaHQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNDRiY2FiO1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICM0NGJjYWI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm11bHRpc2VsZWN0X19vcHRpb24tLXNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzVhODNlYztcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2Q2M2I0OTtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNkNjNiNDk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjNWE4M2VjO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiJGNyb3BwZXItaW1hZ2UtcGF0aDogJy4uL2ltYWdlcycgIWRlZmF1bHQ7XG5cbi5jcm9wcGVyIHtcbiAgJi1jb250YWluZXIge1xuICAgIGRpcmVjdGlvbjogbHRyO1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG91Y2gtYWN0aW9uOiBub25lO1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgIGltZyB7XG4gICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGltYWdlLW9yaWVudGF0aW9uOiAwZGVnO1xuICAgICAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICYtd3JhcC1ib3gsXG4gICYtY2FudmFzLFxuICAmLWRyYWctYm94LFxuICAmLWNyb3AtYm94LFxuICAmLW1vZGFsIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICB9XG5cbiAgJi13cmFwLWJveCxcbiAgJi1jYW52YXMge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmLWRyYWctYm94IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAmLW1vZGFsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gICYtdmlldy1ib3gge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdXRsaW5lOiAxcHggc29saWQgIzM5ZjtcbiAgICBvdXRsaW5lLWNvbG9yOiByZ2JhKDUxLCAxNTMsIDI1NSwgMC43NSk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICYtZGFzaGVkIHtcbiAgICBib3JkZXI6IDAgZGFzaGVkICNlZWU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICYuZGFzaGVkLWgge1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLyAzKTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IGNhbGMoMTAwJSAvIDMpO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJi5kYXNoZWQtdiB7XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiBjYWxjKDEwMCUgLyAzKTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAzKTtcbiAgICB9XG4gIH1cblxuICAmLWNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMDtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgbGVmdDogLTNweDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiA3cHg7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgaGVpZ2h0OiA3cHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAtM3B4O1xuICAgICAgd2lkdGg6IDFweDtcbiAgICB9XG4gIH1cblxuICAmLWZhY2UsXG4gICYtbGluZSxcbiAgJi1wb2ludCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9wYWNpdHk6IDAuMTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAmLWZhY2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gIH1cblxuICAmLWxpbmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzOWY7XG5cbiAgICAmLmxpbmUtZSB7XG4gICAgICBjdXJzb3I6IGV3LXJlc2l6ZTtcbiAgICAgIHJpZ2h0OiAtM3B4O1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDVweDtcbiAgICB9XG5cbiAgICAmLmxpbmUtbiB7XG4gICAgICBjdXJzb3I6IG5zLXJlc2l6ZTtcbiAgICAgIGhlaWdodDogNXB4O1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogLTNweDtcbiAgICB9XG5cbiAgICAmLmxpbmUtdyB7XG4gICAgICBjdXJzb3I6IGV3LXJlc2l6ZTtcbiAgICAgIGxlZnQ6IC0zcHg7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogNXB4O1xuICAgIH1cblxuICAgICYubGluZS1zIHtcbiAgICAgIGJvdHRvbTogLTNweDtcbiAgICAgIGN1cnNvcjogbnMtcmVzaXplO1xuICAgICAgaGVpZ2h0OiA1cHg7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gICYtcG9pbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzOWY7XG4gICAgaGVpZ2h0OiA1cHg7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICB3aWR0aDogNXB4O1xuXG4gICAgJi5wb2ludC1lIHtcbiAgICAgIGN1cnNvcjogZXctcmVzaXplO1xuICAgICAgbWFyZ2luLXRvcDogLTNweDtcbiAgICAgIHJpZ2h0OiAtM3B4O1xuICAgICAgdG9wOiA1MCU7XG4gICAgfVxuXG4gICAgJi5wb2ludC1uIHtcbiAgICAgIGN1cnNvcjogbnMtcmVzaXplO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0zcHg7XG4gICAgICB0b3A6IC0zcHg7XG4gICAgfVxuXG4gICAgJi5wb2ludC13IHtcbiAgICAgIGN1cnNvcjogZXctcmVzaXplO1xuICAgICAgbGVmdDogLTNweDtcbiAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgICB0b3A6IDUwJTtcbiAgICB9XG5cbiAgICAmLnBvaW50LXMge1xuICAgICAgYm90dG9tOiAtM3B4O1xuICAgICAgY3Vyc29yOiBzLXJlc2l6ZTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtM3B4O1xuICAgIH1cblxuICAgICYucG9pbnQtbmUge1xuICAgICAgY3Vyc29yOiBuZXN3LXJlc2l6ZTtcbiAgICAgIHJpZ2h0OiAtM3B4O1xuICAgICAgdG9wOiAtM3B4O1xuICAgIH1cblxuICAgICYucG9pbnQtbncge1xuICAgICAgY3Vyc29yOiBud3NlLXJlc2l6ZTtcbiAgICAgIGxlZnQ6IC0zcHg7XG4gICAgICB0b3A6IC0zcHg7XG4gICAgfVxuXG4gICAgJi5wb2ludC1zdyB7XG4gICAgICBib3R0b206IC0zcHg7XG4gICAgICBjdXJzb3I6IG5lc3ctcmVzaXplO1xuICAgICAgbGVmdDogLTNweDtcbiAgICB9XG5cbiAgICAmLnBvaW50LXNlIHtcbiAgICAgIGJvdHRvbTogLTNweDtcbiAgICAgIGN1cnNvcjogbndzZS1yZXNpemU7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcmlnaHQ6IC0zcHg7XG4gICAgICB3aWR0aDogMjBweDtcblxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIGhlaWdodDogMTVweDtcbiAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICAgIGhlaWdodDogNXB4O1xuICAgICAgICBvcGFjaXR5OiAwLjc1O1xuICAgICAgICB3aWR0aDogNXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgICYucG9pbnQtc2U6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzlmO1xuICAgICAgYm90dG9tOiAtNTAlO1xuICAgICAgY29udGVudDogJyAnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDIwMCU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IC01MCU7XG4gICAgICB3aWR0aDogMjAwJTtcbiAgICB9XG4gIH1cblxuICAmLWludmlzaWJsZSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gICYtYmcge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnI3skY3JvcHBlci1pbWFnZS1wYXRofS9iZy5wbmcnKTtcbiAgfVxuXG4gICYtaGlkZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgfVxuXG4gICYtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAmLW1vdmUge1xuICAgIGN1cnNvcjogbW92ZTtcbiAgfVxuXG4gICYtY3JvcCB7XG4gICAgY3Vyc29yOiBjcm9zc2hhaXI7XG4gIH1cblxuICAmLWRpc2FibGVkICYtZHJhZy1ib3gsXG4gICYtZGlzYWJsZWQgJi1mYWNlLFxuICAmLWRpc2FibGVkICYtbGluZSxcbiAgJi1kaXNhYmxlZCAmLXBvaW50IHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG59XG4iLCJAdXNlICcuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3JvcHBlcmpzL3NyYy9jc3MvY3JvcHBlci5zY3NzJztcblxuLmNyb3BwZXItbGluZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNmNDk5YTtcbn0iLCI6aG9zdCxcbjpyb290IHtcbiAgICAtLXZzLWNvbG9ycy0tbGlnaHRlc3Q6IHJnYmEoNjAsIDYwLCA2MCwgMC4yNik7XG4gICAgLS12cy1jb2xvcnMtLWxpZ2h0OiByZ2JhKDYwLCA2MCwgNjAsIDAuNSk7XG4gICAgLS12cy1jb2xvcnMtLWRhcms6ICMzMzM7XG4gICAgLS12cy1jb2xvcnMtLWRhcmtlc3Q6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgLS12cy1zZWFyY2gtaW5wdXQtY29sb3I6IGluaGVyaXQ7XG4gICAgLS12cy1zZWFyY2gtaW5wdXQtYmc6ICNmZmY7XG4gICAgLS12cy1zZWFyY2gtaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6IGluaGVyaXQ7XG4gICAgLS12cy1mb250LXNpemU6IDFyZW07XG4gICAgLS12cy1saW5lLWhlaWdodDogMS40O1xuICAgIC0tdnMtc3RhdGUtZGlzYWJsZWQtYmc6ICNmOGY4Zjg7XG4gICAgLS12cy1zdGF0ZS1kaXNhYmxlZC1jb2xvcjogdmFyKC0tdnMtY29sb3JzLS1saWdodCk7XG4gICAgLS12cy1zdGF0ZS1kaXNhYmxlZC1jb250cm9scy1jb2xvcjogdmFyKC0tdnMtY29sb3JzLS1saWdodCk7XG4gICAgLS12cy1zdGF0ZS1kaXNhYmxlZC1jdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIC0tdnMtYm9yZGVyLWNvbG9yOiB2YXIoLS12cy1jb2xvcnMtLWxpZ2h0ZXN0KTtcbiAgICAtLXZzLWJvcmRlci13aWR0aDogMXB4O1xuICAgIC0tdnMtYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAtLXZzLWJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAtLXZzLWFjdGlvbnMtcGFkZGluZzogNHB4IDZweCAwIDNweDtcbiAgICAtLXZzLWNvbnRyb2xzLWNvbG9yOiB2YXIoLS12cy1jb2xvcnMtLWxpZ2h0KTtcbiAgICAtLXZzLWNvbnRyb2xzLXNpemU6IDE7XG4gICAgLS12cy1jb250cm9scy0tZGVzZWxlY3QtdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcbiAgICAtLXZzLXNlbGVjdGVkLWJnOiAjZjBmMGYwO1xuICAgIC0tdnMtc2VsZWN0ZWQtY29sb3I6IHZhcigtLXZzLWNvbG9ycy0tZGFyayk7XG4gICAgLS12cy1zZWxlY3RlZC1ib3JkZXItY29sb3I6IHZhcigtLXZzLWJvcmRlci1jb2xvcik7XG4gICAgLS12cy1zZWxlY3RlZC1ib3JkZXItc3R5bGU6IHZhcigtLXZzLWJvcmRlci1zdHlsZSk7XG4gICAgLS12cy1zZWxlY3RlZC1ib3JkZXItd2lkdGg6IHZhcigtLXZzLWJvcmRlci13aWR0aCk7XG4gICAgLS12cy1kcm9wZG93bi1iZzogI2ZmZjtcbiAgICAtLXZzLWRyb3Bkb3duLWNvbG9yOiBpbmhlcml0O1xuICAgIC0tdnMtZHJvcGRvd24tei1pbmRleDogMTAwMDtcbiAgICAtLXZzLWRyb3Bkb3duLW1pbi13aWR0aDogMTYwcHg7XG4gICAgLS12cy1kcm9wZG93bi1tYXgtaGVpZ2h0OiAzNTBweDtcbiAgICAtLXZzLWRyb3Bkb3duLWJveC1zaGFkb3c6IDBweCAzcHggNnB4IDBweCB2YXIoLS12cy1jb2xvcnMtLWRhcmtlc3QpO1xuICAgIC0tdnMtZHJvcGRvd24tb3B0aW9uLWJnOiAjMDAwO1xuICAgIC0tdnMtZHJvcGRvd24tb3B0aW9uLWNvbG9yOiB2YXIoLS12cy1kcm9wZG93bi1jb2xvcik7XG4gICAgLS12cy1kcm9wZG93bi1vcHRpb24tcGFkZGluZzogM3B4IDIwcHg7XG4gICAgLS12cy1kcm9wZG93bi1vcHRpb24tLWFjdGl2ZS1iZzogIzU4OTdmYjtcbiAgICAtLXZzLWRyb3Bkb3duLW9wdGlvbi0tYWN0aXZlLWNvbG9yOiAjZmZmO1xuICAgIC0tdnMtZHJvcGRvd24tb3B0aW9uLS1kZXNlbGVjdC1iZzogI2ZiNTg1ODtcbiAgICAtLXZzLWRyb3Bkb3duLW9wdGlvbi0tZGVzZWxlY3QtY29sb3I6ICNmZmY7XG4gICAgLS12cy10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDEsIC0wLjExNSwgMC45NzUsIDAuODU1KTtcbiAgICAtLXZzLXRyYW5zaXRpb24tZHVyYXRpb246IDE1MG1zXG59XG5cbi52LXNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlXG59XG5cbi52LXNlbGVjdCxcbi52LXNlbGVjdCAqIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94XG59XG5cbjpyb290IHtcbiAgICAtLXZzLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMSwgMC41LCAwLjgsIDEpO1xuICAgIC0tdnMtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXNcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHZTZWxlY3RTcGlubmVyIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpXG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxdHVybilcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgdlNlbGVjdFNwaW5uZXIge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZylcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKVxuICAgIH1cbn1cblxuLnZzX19mYWRlLWVudGVyLWFjdGl2ZSxcbi52c19fZmFkZS1sZWF2ZS1hY3RpdmUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdnMtdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdnMtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pXG59XG5cbi52c19fZmFkZS1lbnRlcixcbi52c19fZmFkZS1sZWF2ZS10byB7XG4gICAgb3BhY2l0eTogMFxufVxuXG46cm9vdCB7XG4gICAgLS12cy1kaXNhYmxlZC1iZzogdmFyKC0tdnMtc3RhdGUtZGlzYWJsZWQtYmcpO1xuICAgIC0tdnMtZGlzYWJsZWQtY29sb3I6IHZhcigtLXZzLXN0YXRlLWRpc2FibGVkLWNvbG9yKTtcbiAgICAtLXZzLWRpc2FibGVkLWN1cnNvcjogdmFyKC0tdnMtc3RhdGUtZGlzYWJsZWQtY3Vyc29yKVxufVxuXG4udnMtLWRpc2FibGVkIC52c19fY2xlYXIsXG4udnMtLWRpc2FibGVkIC52c19fZHJvcGRvd24tdG9nZ2xlLFxuLnZzLS1kaXNhYmxlZCAudnNfX29wZW4taW5kaWNhdG9yLFxuLnZzLS1kaXNhYmxlZCAudnNfX3NlYXJjaCxcbi52cy0tZGlzYWJsZWQgLnZzX19zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdnMtZGlzYWJsZWQtYmcpO1xuICAgIGN1cnNvcjogdmFyKC0tdnMtZGlzYWJsZWQtY3Vyc29yKVxufVxuXG4udi1zZWxlY3RbZGlyPXJ0bF0gLnZzX19hY3Rpb25zIHtcbiAgICBwYWRkaW5nOiAwIDNweCAwIDZweFxufVxuXG4udi1zZWxlY3RbZGlyPXJ0bF0gLnZzX19jbGVhciB7XG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDBcbn1cblxuLnYtc2VsZWN0W2Rpcj1ydGxdIC52c19fZGVzZWxlY3Qge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMnB4XG59XG5cbi52LXNlbGVjdFtkaXI9cnRsXSAudnNfX2Ryb3Bkb3duLW1lbnUge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0XG59XG5cbi52c19fZHJvcGRvd24tdG9nZ2xlIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdnMtc2VhcmNoLWlucHV0LWJnKTtcbiAgICBib3JkZXI6IHZhcigtLXZzLWJvcmRlci13aWR0aCkgdmFyKC0tdnMtYm9yZGVyLXN0eWxlKSB2YXIoLS12cy1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZzLWJvcmRlci1yYWRpdXMpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogMCAwIDRweDtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsXG59XG5cbi52c19fc2VsZWN0ZWQtb3B0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcGFkZGluZzogMCAycHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlXG59XG5cbi52c19fYWN0aW9ucyB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmc6IHZhcigtLXZzLWFjdGlvbnMtcGFkZGluZylcbn1cblxuLnZzLS1zZWFyY2hhYmxlIC52c19fZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjdXJzb3I6IHRleHRcbn1cblxuLnZzLS11bnNlYXJjaGFibGUgLnZzX19kcm9wZG93bi10b2dnbGUge1xuICAgIGN1cnNvcjogcG9pbnRlclxufVxuXG4udnMtLW9wZW4gLnZzX19kcm9wZG93bi10b2dnbGUge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBcbn1cblxuLnZzX19vcGVuLWluZGljYXRvciB7XG4gICAgZmlsbDogdmFyKC0tdnMtY29udHJvbHMtY29sb3IpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tdnMtY29udHJvbHMtc2l6ZSkpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS12cy10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS12cy10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXZzLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKVxufVxuXG4udnMtLW9wZW4gLnZzX19vcGVuLWluZGljYXRvciB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSBzY2FsZSh2YXIoLS12cy1jb250cm9scy1zaXplKSlcbn1cblxuLnZzLS1sb2FkaW5nIC52c19fb3Blbi1pbmRpY2F0b3Ige1xuICAgIG9wYWNpdHk6IDBcbn1cblxuLnZzX19jbGVhciB7XG4gICAgZmlsbDogdmFyKC0tdnMtY29udHJvbHMtY29sb3IpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgcGFkZGluZzogMFxufVxuXG4udnNfX2Ryb3Bkb3duLW1lbnUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXZzLWRyb3Bkb3duLWJnKTtcbiAgICBib3JkZXI6IHZhcigtLXZzLWJvcmRlci13aWR0aCkgdmFyKC0tdnMtYm9yZGVyLXN0eWxlKSB2YXIoLS12cy1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS12cy1ib3JkZXItcmFkaXVzKSB2YXIoLS12cy1ib3JkZXItcmFkaXVzKTtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBub25lO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXZzLWRyb3Bkb3duLWJveC1zaGFkb3cpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6IHZhcigtLXZzLWRyb3Bkb3duLWNvbG9yKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsZWZ0OiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC1oZWlnaHQ6IHZhcigtLXZzLWRyb3Bkb3duLW1heC1oZWlnaHQpO1xuICAgIG1pbi13aWR0aDogdmFyKC0tdnMtZHJvcGRvd24tbWluLXdpZHRoKTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHRvcDogY2FsYygxMDAlIC0gdmFyKC0tdnMtYm9yZGVyLXdpZHRoKSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogdmFyKC0tdnMtZHJvcGRvd24tei1pbmRleClcbn1cblxuLnZzX19uby1vcHRpb25zIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcbn1cblxuLnZzX19kcm9wZG93bi1vcHRpb24ge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbG9yOiB2YXIoLS12cy1kcm9wZG93bi1vcHRpb24tY29sb3IpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgICBwYWRkaW5nOiB2YXIoLS12cy1kcm9wZG93bi1vcHRpb24tcGFkZGluZyk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxufVxuXG4udnNfX2Ryb3Bkb3duLW9wdGlvbi0taGlnaGxpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS12cy1kcm9wZG93bi1vcHRpb24tLWFjdGl2ZS1iZyk7XG4gICAgY29sb3I6IHZhcigtLXZzLWRyb3Bkb3duLW9wdGlvbi0tYWN0aXZlLWNvbG9yKVxufVxuXG4udnNfX2Ryb3Bkb3duLW9wdGlvbi0tZGVzZWxlY3Qge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXZzLWRyb3Bkb3duLW9wdGlvbi0tZGVzZWxlY3QtYmcpO1xuICAgIGNvbG9yOiB2YXIoLS12cy1kcm9wZG93bi1vcHRpb24tLWRlc2VsZWN0LWNvbG9yKVxufVxuXG4udnNfX2Ryb3Bkb3duLW9wdGlvbi0tZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXZzLXN0YXRlLWRpc2FibGVkLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tdnMtc3RhdGUtZGlzYWJsZWQtY29sb3IpO1xuICAgIGN1cnNvcjogdmFyKC0tdnMtc3RhdGUtZGlzYWJsZWQtY3Vyc29yKVxufVxuXG4udnNfX3NlbGVjdGVkIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZzLXNlbGVjdGVkLWJnKTtcbiAgICBib3JkZXI6IHZhcigtLXZzLXNlbGVjdGVkLWJvcmRlci13aWR0aCkgdmFyKC0tdnMtc2VsZWN0ZWQtYm9yZGVyLXN0eWxlKSB2YXIoLS12cy1zZWxlY3RlZC1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXZzLWJvcmRlci1yYWRpdXMpO1xuICAgIGNvbG9yOiB2YXIoLS12cy1zZWxlY3RlZC1jb2xvcik7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tdnMtbGluZS1oZWlnaHQpO1xuICAgIG1hcmdpbjogNHB4IDJweCAwO1xuICAgIHBhZGRpbmc6IDAgLjI1ZW07XG4gICAgei1pbmRleDogMFxufVxuXG4udnNfX2Rlc2VsZWN0IHtcbiAgICBmaWxsOiB2YXIoLS12cy1jb250cm9scy1jb2xvcik7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1zaGFkb3c6IHZhcigtLXZzLWNvbnRyb2xzLS1kZXNlbGVjdC10ZXh0LXNoYWRvdylcbn1cblxuLnZzLS1zaW5nbGUgLnZzX19zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudFxufVxuXG4udnMtLXNpbmdsZS52cy0tbG9hZGluZyAudnNfX3NlbGVjdGVkLFxuLnZzLS1zaW5nbGUudnMtLW9wZW4gLnZzX19zZWxlY3RlZCB7XG4gICAgb3BhY2l0eTogLjQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlXG59XG5cbi52cy0tc2luZ2xlLnZzLS1zZWFyY2hpbmcgLnZzX19zZWxlY3RlZCB7XG4gICAgZGlzcGxheTogbm9uZVxufVxuXG4udnNfX3NlYXJjaDo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZVxufVxuXG4udnNfX3NlYXJjaDo6LW1zLWNsZWFyLFxuLnZzX19zZWFyY2g6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4udnNfX3NlYXJjaDo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4udnNfX3NlYXJjaDo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lXG59XG5cbi52c19fc2VhcmNoLFxuLnZzX19zZWFyY2g6Zm9jdXMge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLXZzLXNlYXJjaC1pbnB1dC1jb2xvcik7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdnMtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tdnMtbGluZS1oZWlnaHQpO1xuICAgIG1hcmdpbjogNHB4IDAgMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwIDdweDtcbiAgICB3aWR0aDogMDtcbiAgICB6LWluZGV4OiAxXG59XG5cbi52c19fc2VhcmNoOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogdmFyKC0tdnMtc2VhcmNoLWlucHV0LXBsYWNlaG9sZGVyLWNvbG9yKVxufVxuXG4udnNfX3NlYXJjaDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiB2YXIoLS12cy1zZWFyY2gtaW5wdXQtcGxhY2Vob2xkZXItY29sb3IpXG59XG5cbi52c19fc2VhcmNoOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHZhcigtLXZzLXNlYXJjaC1pbnB1dC1wbGFjZWhvbGRlci1jb2xvcilcbn1cblxuLnZzLS11bnNlYXJjaGFibGUgLnZzX19zZWFyY2gge1xuICAgIG9wYWNpdHk6IDFcbn1cblxuLnZzLS11bnNlYXJjaGFibGU6bm90KC52cy0tZGlzYWJsZWQpIC52c19fc2VhcmNoIHtcbiAgICBjdXJzb3I6IHBvaW50ZXJcbn1cblxuLnZzLS1zaW5nbGUudnMtLXNlYXJjaGluZzpub3QoLnZzLS1vcGVuKTpub3QoLnZzLS1sb2FkaW5nKSAudnNfX3NlYXJjaCB7XG4gICAgb3BhY2l0eTogLjJcbn1cblxuLnZzX19zcGlubmVyIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IHZTZWxlY3RTcGlubmVyIDEuMXMgbGluZWFyIGluZmluaXRlO1xuICAgIGFuaW1hdGlvbjogdlNlbGVjdFNwaW5uZXIgMS4xcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgYm9yZGVyOiAuOWVtIHNvbGlkIGhzbGEoMCwgMCUsIDM5JSwgLjEpO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDYwLCA2MCwgNjAsIC40NSk7XG4gICAgZm9udC1zaXplOiA1cHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtaW5kZW50OiAtOTk5OWVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKSBzY2FsZSh2YXIoLS12cy1jb250cm9scy0tc3Bpbm5lci1zaXplLCB2YXIoLS12cy1jb250cm9scy1zaXplKSkpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjFzXG59XG5cbi52c19fc3Bpbm5lcixcbi52c19fc3Bpbm5lcjphZnRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGhlaWdodDogNWVtO1xuICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tdnMtY29udHJvbHMtLXNwaW5uZXItc2l6ZSwgdmFyKC0tdnMtY29udHJvbHMtc2l6ZSkpKTtcbiAgICB3aWR0aDogNWVtXG59XG5cbi52cy0tbG9hZGluZyAudnNfX3NwaW5uZXIge1xuICAgIG9wYWNpdHk6IDFcbn0iXSwiZmlsZSI6InN0eWxlLXYxLmNzcyJ9 */
