@charset "UTF-8";
/* =============================================================
   Tradante â public.css
   Shared styles for all public-facing pages
   Font: Space Grotesk (body) + Bebas Neue (display) + IBM Plex Mono (data)
   Framework: Bootstrap 5.3
   ============================================================= */
:root {
  --font-display: "Bebas Neue", sans-serif;
  --font-mono: "IBM Plex Mono", monospace;
  --font-body: "Space Grotesk", sans-serif;
}

html[data-theme=violet] {
  --bg: #0A0814;
  --bg2: #0E0820;
  --bg3: #130C28;
  --bg4: #1A1035;
  --accent: #8B5CF6;
  --accent2: #6D28D9;
  --accent3: #A78BFA;
  --grad: linear-gradient(135deg, #4C1D95 0%, #7C3AED 45%, #A78BFA 100%);
  --border: rgba(255,255,255,0.07);
  --border-h: rgba(139,92,246,0.4);
  --text: #F0F0F4;
  --text2: rgba(240,240,244,0.6);
  --text3: rgba(240,240,244,0.3);
  --badge: rgba(139,92,246,0.1);
  --glow1: rgba(139,92,246,0.28);
  --glow2: rgba(109,40,217,0.18);
  --accent-rgb: 139, 92, 246;
  --app-bg: #0A0814;
  --app-surface: #0f0f1a;
  --app-surface2: #141421;
  --app-surface3: #1a1a2e;
  --app-accent: #8B5CF6;
  --app-accent2: #7C3AED;
  --app-accent3: #A78BFA;
  --app-grad: linear-gradient(135deg, #8B5CF6, #A78BFA);
  --app-border: rgba(139, 92, 246, 0.18);
  --app-border-h: rgba(139, 92, 246, 0.40);
  --app-text: rgba(255,255,255,0.92);
  --app-text2: rgba(255,255,255,0.55);
  --app-text3: rgba(255,255,255,0.28);
  --app-card-bg: rgba(20, 18, 38, 0.60);
  --app-card-solid: #14122A;
  --app-elev: rgba(30, 26, 56, 0.85);
  --app-accent-soft: rgba(139, 92, 246, 0.15);
  --app-grid-line: rgba(139, 92, 246, 0.04);
  --app-glow:
    radial-gradient(circle at 20% 0%, rgba(124, 58, 237, 0.18), transparent 50%),
    radial-gradient(circle at 90% 30%, rgba(217, 26, 173, 0.08), transparent 45%);
}

html[data-theme=black] {
  --bg: #04040A;
  --bg2: #08060E;
  --bg3: #0D0A18;
  --bg4: #120E22;
  --accent: #D91AAD;
  --accent2: #8C0F70;
  --accent3: #E83DC0;
  --grad: linear-gradient(135deg, #5C0A48 0%, #9B0F7A 40%, #D91AAD 75%, #E83DC0 100%);
  --border: rgba(255,255,255,0.07);
  --border-h: rgba(217,26,173,0.45);
  --text: #F0F0F4;
  --text2: rgba(240,240,244,0.6);
  --text3: rgba(240,240,244,0.3);
  --badge: rgba(217,26,173,0.1);
  --glow1: rgba(217,26,173,0.22);
  --glow2: rgba(140,15,112,0.18);
  --accent-rgb: 217, 26, 173;
  --app-bg: #08070C;
  --app-surface: #08060E;
  --app-surface2: #0D0A18;
  --app-surface3: #120E22;
  --app-accent: #D91AAD;
  --app-accent2: #8C0F70;
  --app-accent3: #E83DC0;
  --app-grad: linear-gradient(135deg, #D91AAD, #E83DC0);
  --app-border: rgba(217, 26, 173, 0.16);
  --app-border-h: rgba(217, 26, 173, 0.40);
  --app-text: rgba(255,255,255,0.92);
  --app-text2: rgba(255,255,255,0.55);
  --app-text3: rgba(255,255,255,0.28);
  --app-card-bg: rgba(20, 20, 28, 0.70);
  --app-card-solid: #14141C;
  --app-elev: rgba(28, 28, 38, 0.90);
  --app-accent-soft: rgba(217, 26, 173, 0.12);
  --app-grid-line: rgba(217, 26, 173, 0.04);
  --app-glow:
    radial-gradient(circle at 25% 0%, rgba(217, 26, 173, 0.14), transparent 55%),
    radial-gradient(circle at 90% 35%, rgba(245, 197, 24, 0.05), transparent 45%);
}

html[data-theme=blue] {
  --bg: #0D1020;
  --bg2: #121525;
  --bg3: #17192E;
  --bg4: #1C1F38;
  --accent: #4F8EF7;
  --accent2: #1A56DB;
  --accent3: #93BBFD;
  --grad: linear-gradient(135deg, #1A3A8F 0%, #1A56DB 40%, #4F8EF7 75%, #93BBFD 100%);
  --border: rgba(255,255,255,0.07);
  --border-h: rgba(79,142,247,0.45);
  --text: #F0F0F4;
  --text2: rgba(240,240,244,0.6);
  --text3: rgba(240,240,244,0.3);
  --badge: rgba(79,142,247,0.1);
  --glow1: rgba(79,142,247,0.2);
  --glow2: rgba(26,86,219,0.14);
  --accent-rgb: 79, 142, 247;
  --app-bg: #060A14;
  --app-surface: #121525;
  --app-surface2: #17192E;
  --app-surface3: #1C1F38;
  --app-accent: #4F8EF7;
  --app-accent2: #1A56DB;
  --app-accent3: #93BBFD;
  --app-grad: linear-gradient(135deg, #4F8EF7, #93BBFD);
  --app-border: rgba(79, 142, 247, 0.18);
  --app-border-h: rgba(79, 142, 247, 0.40);
  --app-text: rgba(255,255,255,0.92);
  --app-text2: rgba(255,255,255,0.55);
  --app-text3: rgba(255,255,255,0.28);
  --app-card-bg: rgba(17, 25, 43, 0.70);
  --app-card-solid: #11192B;
  --app-elev: rgba(24, 35, 60, 0.90);
  --app-accent-soft: rgba(79, 142, 247, 0.15);
  --app-grid-line: rgba(79, 142, 247, 0.04);
  --app-glow:
    radial-gradient(circle at 20% 0%, rgba(37, 99, 235, 0.18), transparent 50%),
    radial-gradient(circle at 85% 25%, rgba(6, 182, 212, 0.08), transparent 45%);
}

/* ââ GOOGLE FONTS ââ */
/* ââ THEME VARIABLES ââ */
/* Static vars â never change */
:root {
  --green: #22c55e;
  --red: #ef4444;
  --gold: #F5C518;
  --teal: #06B6D4;
  /* Default to violet so page never flashes unstyled */
  --bg: #0A0414;
  --bg2: #0E0820;
  --bg3: #130C28;
  --bg4: #1A1035;
  --accent: #8B5CF6;
  --accent2: #6D28D9;
  --accent3: #A78BFA;
  --grad: linear-gradient(135deg, #4C1D95 0%, #7C3AED 45%, #A78BFA 100%);
  --accent-grad-section: linear-gradient(135deg, #1B0A45 0%, #3A1889 48%, #4C1D95 100%); /* gradient-accent section band (theme-aware) */
  --border: rgba(255,255,255,0.07);
  --border-h: rgba(139,92,246,0.4);
  --text: #F0F0F4;
  --text2: rgba(240,240,244,0.6);
  --text3: rgba(240,240,244,0.3);
  --badge: rgba(139,92,246,0.1);
  --nav-bg: rgba(10,4,20,0.92);
  --card-bg: rgba(19,12,40,0.95);
  --glow1: rgba(139,92,246,0.28);
  --glow2: rgba(109,40,217,0.18);
  --grid-color: rgba(139,92,246,0.14);
  --w05: rgba(255,255,255,0.05);
  --w08: rgba(255,255,255,0.08);
  --w12: rgba(255,255,255,0.12);
  --w20: rgba(255,255,255,0.20);
  --w40: rgba(255,255,255,0.40);
  --w60: rgba(255,255,255,0.60);
}

/* VIOLET THEME â explicit, same as :root defaults */
html[data-theme=violet] {
  --bg: #0A0414;
  --bg2: #0E0820;
  --bg3: #130C28;
  --bg4: #1A1035;
  --accent: #8B5CF6;
  --accent2: #6D28D9;
  --accent3: #A78BFA;
  --grad: linear-gradient(135deg, #4C1D95 0%, #7C3AED 45%, #A78BFA 100%);
  --accent-grad-section: linear-gradient(135deg, #1B0A45 0%, #3A1889 48%, #4C1D95 100%); /* gradient-accent section band (theme-aware) */
  --border: rgba(255,255,255,0.07);
  --border-h: rgba(139,92,246,0.4);
  --text: #F0F0F4;
  --text2: rgba(240,240,244,0.6);
  --text3: rgba(240,240,244,0.3);
  --badge: rgba(139,92,246,0.1);
  --nav-bg: rgba(10,4,20,0.92);
  --card-bg: rgba(19,12,40,0.95);
  --glow1: rgba(139,92,246,0.28);
  --glow2: rgba(109,40,217,0.18);
  --grid-color: rgba(139,92,246,0.14);
}

/* BLACK THEME â overrides everything above */
html[data-theme=black] {
  --bg: #04040A;
  --bg2: #08060E;
  --bg3: #0D0A18;
  --bg4: #120E22;
  --accent: #D91AAD;
  --accent2: #8C0F70;
  --accent3: #E83DC0;
  --grad: linear-gradient(135deg, #5C0A48 0%, #9B0F7A 40%, #D91AAD 75%, #E83DC0 100%);
  --accent-grad-section: linear-gradient(135deg, #2A0722 0%, #6B0F55 48%, #8A1470 100%); /* gradient-accent section band (theme-aware) */
  --border: rgba(255,255,255,0.07);
  --border-h: rgba(217,26,173,0.45);
  --text: #F0F0F4;
  --text2: rgba(240,240,244,0.6);
  --text3: rgba(240,240,244,0.3);
  --badge: rgba(217,26,173,0.1);
  --nav-bg: rgba(4,4,10,0.92);
  --card-bg: rgba(13,10,24,0.95);
  --glow1: rgba(217,26,173,0.22);
  --glow2: rgba(140,15,112,0.18);
  --grid-color: rgba(217,26,173,0.12);
  --w05: rgba(255,255,255,0.05);
  --w08: rgba(255,255,255,0.08);
  --w12: rgba(255,255,255,0.12);
  --w20: rgba(255,255,255,0.20);
  --w40: rgba(255,255,255,0.40);
  --w60: rgba(255,255,255,0.60);
}

/* BLUE THEME â navy to sky, matches existing live app */
html[data-theme=blue] {
  --bg: #0D1020;
  --bg2: #121525;
  --bg3: #17192E;
  --bg4: #1C1F38;
  --accent: #4F8EF7;
  --accent2: #1A56DB;
  --accent3: #93BBFD;
  --grad: linear-gradient(135deg, #1A3A8F 0%, #1A56DB 40%, #4F8EF7 75%, #93BBFD 100%);
  --accent-grad-section: linear-gradient(135deg, #071A3A 0%, #12357A 48%, #1A56DB 100%); /* gradient-accent section band (theme-aware) */
  --border: rgba(255,255,255,0.07);
  --border-h: rgba(79,142,247,0.45);
  --text: #F0F0F4;
  --text2: rgba(240,240,244,0.6);
  --text3: rgba(240,240,244,0.3);
  --badge: rgba(79,142,247,0.1);
  --nav-bg: rgba(13,16,32,0.92);
  --card-bg: rgba(23,25,46,0.95);
  --glow1: rgba(79,142,247,0.2);
  --glow2: rgba(26,86,219,0.14);
  --grid-color: rgba(79,142,247,0.12);
}

/* VIOLET THEME handled above in html[data-theme="violet"] */
/* This block intentionally removed â keeping only for legacy */
html[data-theme=violet-legacy] {
  --bg: #0A0414;
  --bg2: #0E0820;
  --bg3: #130C28;
  --bg4: #1A1035;
  --accent: #8B5CF6;
  --accent2: #6D28D9;
  --accent3: #A78BFA;
  --grad: linear-gradient(135deg, #4C1D95 0%, #7C3AED 45%, #A78BFA 100%);
  --accent-grad-section: linear-gradient(135deg, #1B0A45 0%, #3A1889 48%, #4C1D95 100%); /* gradient-accent section band (theme-aware) */
  --border: rgba(255,255,255,0.07);
  --border-h: rgba(139,92,246,0.4);
  --text: #F0F0F4;
  --text2: rgba(240,240,244,0.6);
  --text3: rgba(240,240,244,0.3);
  --badge: rgba(139,92,246,0.1);
  --nav-bg: rgba(10,4,20,0.92);
  --card-bg: rgba(19,12,40,0.95);
  --glow1: rgba(139,92,246,0.28);
  --glow2: rgba(109,40,217,0.18);
  --grid-color: rgba(139,92,246,0.14);
  --w05: rgba(255,255,255,0.05);
  --w08: rgba(255,255,255,0.08);
  --w12: rgba(255,255,255,0.12);
  --w20: rgba(255,255,255,0.20);
  --w40: rgba(255,255,255,0.40);
  --w60: rgba(255,255,255,0.60);
}

/* ââ BASE ââ */
html {
  height: 100%;
  background: var(--bg);
}

body {
  font-family: var(--font-body);
  background: var(--bg);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
}

::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}

::-webkit-scrollbar-track {
  background: var(--bg2);
}

::-webkit-scrollbar-thumb {
  background: var(--accent2);
  border-radius: 2px;
}

/* ââ BACKGROUND EFFECTS ââ */
.tr-bg-glow {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 80% 70% at 50% -5%, var(--glow1) 0%, transparent 60%), radial-gradient(ellipse 55% 50% at 5% 90%, var(--glow2) 0%, transparent 55%), radial-gradient(ellipse 45% 45% at 95% 85%, rgba(196, 181, 253, 0.06) 0%, transparent 55%);
}

.tr-bg-grid {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: linear-gradient(var(--grid-color) 1px, transparent 1px), linear-gradient(90deg, var(--grid-color) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 100% 100% at 50% 50%, black 20%, transparent 78%);
  -webkit-mask-image: radial-gradient(ellipse 100% 100% at 50% 50%, black 20%, transparent 78%);
}

/* Animated travel dots along grid lines */
.tr-bg-grid::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(circle 3px at 0 0, var(--accent) 0%, transparent 60%);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 100% 100% at 50% 50%, black 20%, transparent 78%);
  -webkit-mask-image: radial-gradient(ellipse 100% 100% at 50% 50%, black 20%, transparent 78%);
  animation: grid-travel-h 2s linear infinite;
  opacity: 0.7;
}

.tr-bg-grid::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(circle 3px at 0 0, var(--accent) 0%, transparent 60%);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 100% 100% at 50% 50%, black 20%, transparent 78%);
  -webkit-mask-image: radial-gradient(ellipse 100% 100% at 50% 50%, black 20%, transparent 78%);
  animation: grid-travel-v 2s linear infinite;
  opacity: 0.7;
}

@keyframes grid-travel-h {
  from {
    background-position: 0 0;
  }
  to {
    background-position: 60px 0;
  }
}
@keyframes grid-travel-v {
  from {
    background-position: 0 0;
  }
  to {
    background-position: 0 60px;
  }
}
/* Video background with blur/fade effect */
.tr-bg-video {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}

.tr-bg-video video {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  transform: translate(-50%, -50%);
  filter: blur(8px) brightness(0.3) saturate(1.2);
  opacity: 0.4;
  -o-object-fit: cover;
     object-fit: cover;
}

.tr-bg-video::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--bg) 0%, transparent 40%, transparent 60%, var(--bg) 100%), radial-gradient(ellipse 100% 80% at 50% 20%, transparent 0%, var(--bg) 70%), radial-gradient(ellipse 60% 60% at 50% 100%, rgba(0, 0, 0, 0.8) 0%, transparent 60%);
  z-index: 1;
}

/* ââ NAVBAR ââ */
.tr-navbar {
  background: var(--nav-bg) !important;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border);
  padding: 0.6rem 1.5rem;
  transition: background 0.35s, border-color 0.35s;
}

.tr-navbar .navbar-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}

.tr-navbar .brand-logo {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1.5px solid var(--accent);
  box-shadow: 0 0 10px rgba(139, 92, 246, 0.3);
  -o-object-fit: cover;
     object-fit: cover;
}

.tr-navbar .brand-name {
  font-family: var(--font-display);
  font-size: 20px;
  letter-spacing: 4px;
  color: var(--text);
}

.tr-navbar .nav-link {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text3) !important;
  transition: color 0.2s;
  padding: 0.4rem 0.8rem;
}

.tr-navbar .nav-link:hover,
.tr-navbar .nav-link.active {
  color: var(--accent) !important;
}

.tr-navbar .navbar-toggler {
  border-color: var(--border);
  padding: 4px 8px;
}

.tr-navbar .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255,255,255,0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.tr-navbar .navbar-collapse {
  padding: 0.5rem 0;
}

/* Theme switcher in nav - dropdown version */
.tr-theme-switch {
  position: relative;
  display: inline-block;
}

.tr-theme-dropdown {
  background: transparent;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 6px 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--text2);
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  transition: border-color 0.2s, color 0.2s;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  min-width: 96px;
  line-height: 1;
}

.tr-theme-dropdown:hover {
  border-color: var(--border-h);
  color: var(--text);
}

.tr-theme-dropdown::after {
  content: "▼";
  font-size: 7px;
  margin-left: auto;
  opacity: 0.6;
  transition: transform 0.2s;
}

.tr-theme-dropdown.open::after {
  transform: rotate(180deg);
}

.tr-theme-icon {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}

.tr-theme-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.45);
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: all 0.2s;
  z-index: 1000;
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
}

.tr-theme-menu.open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.tr-theme-option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  cursor: pointer;
  color: var(--text3);
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  transition: all 0.2s;
  border-bottom: 1px solid var(--border);
}

.tr-theme-option:last-child {
  border-bottom: none;
}

.tr-theme-option:hover {
  background: var(--bg4);
  color: var(--text2);
}

.tr-theme-option.active {
  background: var(--badge);
  color: var(--text);
}

.tr-theme-option .tr-theme-icon {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

/* Skin switcher glyphs (moons): the trigger shows only the active skin's glyph */
.tr-theme-dropdown {
  min-width: 0;
  padding: 6px 10px;
  gap: 6px;
}

.tr-theme-glyph {
  display: none;
  width: 16px;
  height: 16px;
  color: var(--accent3, var(--accent));
  flex-shrink: 0;
}

.tr-theme-glyph svg {
  width: 100%;
  height: 100%;
  display: block;
}

.tr-theme-glyph.on {
  display: inline-flex;
}

.tr-theme-option .tr-theme-glyph {
  width: 14px;
  height: 14px;
  color: var(--text3);
}

.tr-theme-option.active .tr-theme-glyph, .tr-theme-option:hover .tr-theme-glyph {
  color: var(--accent3, var(--accent));
}

.tr-theme-menu {
  left: auto;
  right: 0;
  min-width: 132px;
}

/* ââ AUTH SPLIT LAYOUT ââ */
.tr-auth-wrap {
  min-height: 100vh;
  display: flex;
  align-items: stretch;
  position: relative;
  z-index: 1;
}

.tr-auth-left {
  background: linear-gradient(145deg, var(--bg2), var(--bg3));
  border-right: 1px solid var(--border);
  padding: 3rem 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.tr-auth-right {
  background: var(--card-bg);
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  padding: 3rem 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100vh;
}

@media (max-width: 767.98px) {
  .tr-auth-left {
    display: none;
  }
  .tr-auth-right {
    padding: 2rem 1.5rem;
  }
}
/* ââ LEFT PANEL ââ */
.tr-left-tag {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 8px;
}

.tr-left-tag::before {
  content: "";
  width: 16px;
  height: 1px;
  background: var(--accent);
}

.tr-left-h {
  font-family: var(--font-display);
  font-size: clamp(40px, 5vw, 60px);
  letter-spacing: 2px;
  line-height: 0.95;
  color: #fff;
  margin-bottom: 1rem;
}

.tr-left-h em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.tr-left-sub {
  font-size: 13px;
  color: var(--text2);
  line-height: 1.7;
  margin-bottom: 1.5rem;
}

.tr-perk {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px;
  background: var(--w05);
  border: 1px solid var(--w08);
  border-radius: 10px;
  margin-bottom: 10px;
  transition: all 0.2s;
}

.tr-perk:hover {
  background: rgba(139, 92, 246, 0.08);
  border-color: var(--border-h);
}

.tr-perk-icon {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--accent2), var(--accent));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
}

.tr-perk-title {
  font-family: var(--font-display);
  font-size: 15px;
  letter-spacing: 1px;
  color: #fff;
  margin-bottom: 2px;
}

.tr-perk-desc {
  font-size: 11px;
  color: var(--text3);
  line-height: 1.5;
}

/* ââ FORM PANEL ââ */
.tr-form-top-bar {
  height: 3px;
  background: var(--grad);
  border-radius: 2px;
  margin-bottom: 1.5rem;
}

.tr-form-title {
  font-family: var(--font-display);
  font-size: 30px;
  letter-spacing: 2px;
  color: #fff;
  margin-bottom: 4px;
  line-height: 1;
}

.tr-form-sub {
  font-size: 12px;
  color: var(--text3);
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

.tr-form-sub strong {
  color: var(--accent);
  font-weight: 600;
}

/* ââ FORM ELEMENTS ââ */
.tr-label {
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
  margin-bottom: 5px;
}

.tr-input {
  background: var(--w05);
  border: 1px solid var(--w12);
  border-radius: 10px;
  padding: 11px 14px;
  font-family: var(--font-body);
  font-size: 13px;
  color: #fff;
  outline: none;
  transition: all 0.25s;
  width: 100%;
}

.tr-input::-moz-placeholder {
  color: var(--w20);
}

.tr-input::placeholder {
  color: var(--w20);
}

.tr-input:focus {
  border-color: rgba(139, 92, 246, 0.5);
  background: rgba(139, 92, 246, 0.04);
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.12);
  outline: none;
}

.tr-input.is-invalid {
  border-color: rgba(239, 68, 68, 0.6);
}

.tr-input.is-valid {
  border-color: rgba(34, 197, 94, 0.5);
}

.tr-select {
  background: var(--w05);
  border: 1px solid var(--w12);
  border-radius: 10px;
  padding: 11px 14px;
  font-family: var(--font-body);
  font-size: 13px;
  color: #fff;
  outline: none;
  transition: all 0.25s;
  width: 100%;
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='rgba(255,255,255,0.3)' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
}

.tr-select:focus {
  border-color: rgba(139, 92, 246, 0.5);
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.12);
}

.tr-select option {
  background: #111;
  color: #fff;
}

.tr-pass-wrap {
  position: relative;
}

.tr-pass-toggle {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--text3);
  cursor: pointer;
  font-size: 14px;
  padding: 0;
  transition: color 0.2s;
}

.tr-pass-toggle:hover {
  color: #fff;
}

.tr-invalid-feedback {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 1px;
  color: rgba(239, 68, 68, 0.8);
  margin-top: 4px;
  min-height: 14px;
  display: block;
}

/* ââ BUTTONS ââ */
.tr-btn-primary {
  width: 100%;
  font-family: var(--font-display);
  font-size: 18px;
  letter-spacing: 3px;
  color: #000;
  border: none;
  cursor: pointer;
  padding: 13px 20px;
  border-radius: 12px;
  background: var(--grad);
  transition: all 0.25s;
  box-shadow: 0 6px 22px rgba(139, 92, 246, 0.4);
}

.tr-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 34px rgba(139, 92, 246, 0.6);
}

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

.tr-btn-primary.loading {
  pointer-events: none;
  opacity: 0.7;
}

.tr-btn-outline {
  width: 100%;
  font-family: var(--font-display);
  font-size: 17px;
  letter-spacing: 3px;
  color: var(--accent3);
  border: 1px solid rgba(139, 92, 246, 0.3);
  cursor: pointer;
  padding: 12px 20px;
  border-radius: 12px;
  background: transparent;
  transition: all 0.25s;
}

.tr-btn-outline:hover {
  background: rgba(139, 92, 246, 0.08);
  border-color: rgba(139, 92, 246, 0.55);
  transform: translateY(-1px);
}

/* ââ STEPS BAR ââ */
.tr-steps {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 1.5rem;
}

.tr-step-item {
  display: flex;
  align-items: center;
  gap: 6px;
}

.tr-step-num {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 13px;
  flex-shrink: 0;
}

.tr-step-num.active {
  background: var(--grad);
  color: #000;
}

.tr-step-num.done {
  background: rgba(34, 197, 94, 0.15);
  border: 1px solid rgba(34, 197, 94, 0.35);
  color: #22c55e;
}

.tr-step-num.idle {
  background: var(--w05);
  border: 1px solid var(--w12);
  color: var(--text3);
}

.tr-step-label {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.tr-step-label.active {
  color: #fff;
}

.tr-step-label.idle {
  color: var(--text3);
}

.tr-step-arrow {
  color: var(--text3);
  font-size: 12px;
  margin: 0 2px;
}

/* ââ DIVIDERS ââ */
.tr-sep {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 1rem 0;
}

.tr-sep::before, .tr-sep::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--w08);
}

.tr-sep span {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  color: var(--w20);
  text-transform: uppercase;
  white-space: nowrap;
}

.tr-grad-line {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(139, 92, 246, 0.35), transparent);
  margin: 1rem 0;
}

/* ââ BADGES / PILLS ââ */
.tr-badge {
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 6px;
  display: inline-block;
}

.tr-badge-accent {
  background: var(--badge);
  border: 1px solid var(--border-h);
  color: var(--accent3);
}

.tr-badge-green {
  background: rgba(34, 197, 94, 0.1);
  border: 1px solid rgba(34, 197, 94, 0.25);
  color: #22c55e;
}

.tr-badge-red {
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.25);
  color: #ef4444;
}

.tr-badge-gold {
  background: rgba(245, 197, 24, 0.1);
  border: 1px solid rgba(245, 197, 24, 0.25);
  color: #F5C518;
}

/* ââ OTP / 2FA INPUTS ââ */
.tr-otp-wrap {
  display: flex;
  gap: 8px;
  justify-content: center;
  margin: 1rem 0;
}

.tr-otp-input {
  width: 48px;
  height: 56px;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 22px;
  font-weight: 600;
  color: #fff;
  background: var(--w05);
  border: 1px solid var(--w12);
  border-radius: 10px;
  outline: none;
  transition: all 0.25s;
  caret-color: var(--accent);
}

.tr-otp-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--badge);
}

@media (max-width: 375px) {
  .tr-otp-input {
    width: 38px;
    height: 48px;
    font-size: 18px;
  }
  .tr-otp-wrap {
    gap: 5px;
  }
}
/* ââ METHOD SELECTION (forgot password) ââ */
.tr-method-box {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  background: var(--w05);
  border: 1px solid var(--w08);
  border-radius: 12px;
  margin-bottom: 10px;
  cursor: pointer;
  transition: all 0.2s;
}

.tr-method-box:hover,
.tr-method-box.selected {
  background: rgba(139, 92, 246, 0.08);
  border-color: var(--border-h);
}

.tr-method-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  flex-shrink: 0;
  background: var(--w08);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  transition: background 0.2s;
}

.tr-method-box.selected .tr-method-icon {
  background: var(--grad);
}

.tr-method-title {
  font-family: var(--font-display);
  font-size: 16px;
  letter-spacing: 1px;
  color: #fff;
  margin-bottom: 2px;
}

.tr-method-desc {
  font-size: 11px;
  color: var(--text3);
  line-height: 1.4;
}

/* ââ CARD / PANEL ââ */
.tr-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 14px;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.tr-card:hover {
  border-color: var(--border-h);
}

.tr-card-header {
  padding: 0.9rem 1.1rem;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.tr-card-label {
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--text3);
}

/* ââ LINKS ââ */
.tr-link {
  color: var(--accent);
  text-decoration: none;
  font-weight: 600;
  transition: opacity 0.2s;
}

.tr-link:hover {
  opacity: 0.8;
  text-decoration: underline;
}

.tr-link-muted {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text3);
  text-decoration: none;
  transition: color 0.2s;
}

.tr-link-muted:hover {
  color: var(--accent);
}

/* ââ TERMS ââ */
.tr-terms {
  font-size: 11px;
  color: var(--text3);
  line-height: 1.6;
  margin-bottom: 1rem;
}

.tr-terms a {
  color: var(--accent);
  text-decoration: none;
}

/* ââ ANIMATIONS ââ */
@keyframes tr-fadeUp {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes tr-pulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.5;
    transform: scale(0.8);
  }
}
@keyframes tr-shake {
  0%, 100% {
    transform: translateX(0);
  }
  20% {
    transform: translateX(-7px);
  }
  40% {
    transform: translateX(7px);
  }
  60% {
    transform: translateX(-4px);
  }
  80% {
    transform: translateX(4px);
  }
}
.tr-anim-fade {
  animation: tr-fadeUp 0.5s ease both;
}

/* ââ RESPONSIVE UTILITIES ââ */
@media (max-width: 575.98px) {
  .tr-form-title {
    font-size: 26px;
  }
  .tr-btn-primary, .tr-btn-outline {
    font-size: 16px;
    padding: 12px 16px;
  }
}
/* ââ FOOTER (public pages) ââ */
.tr-public-footer {
  background: var(--bg2);
  border-top: 1px solid var(--border);
  padding: 2rem 1.5rem 1.5rem;
  margin-top: auto;
  position: relative;
  z-index: 1;
}

.tr-footer-wordmark {
  font-family: var(--font-display);
  font-size: 16px;
  letter-spacing: 4px;
  color: #fff;
}

.tr-footer-hash {
  font-family: var(--font-display);
  font-size: 12px;
  letter-spacing: 3px;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.tr-footer-links a {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text3);
  text-decoration: none;
  transition: color 0.2s;
  margin: 0 10px;
}

.tr-footer-links a:hover {
  color: var(--accent);
}

.tr-footer-copy {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--text3);
  letter-spacing: 0.5px;
}

/* == Home page component classes == */
/* Section layouts */
.tr-section-bg {
  padding: 100px 0;
  background: var(--bg);
}

.tr-section-bg2 {
  padding: 100px 0;
  background: var(--bg2);
}

.tr-hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 120px 16px 80px;
}

.tr-cta-section {
  padding: 120px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.tr-nav-transparent {
  background: transparent !important;
  border-bottom-color: transparent !important;
}

.tr-nav-transparent.scrolled {
  background: var(--nav-bg) !important;
  border-bottom-color: var(--border) !important;
}

.tr-cta-watermark {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  overflow: hidden;
}

.tr-cta-watermark span {
  font-family: var(--font-display);
  font-size: clamp(80px, 16vw, 200px);
  letter-spacing: 20px;
  color: var(--text);
  opacity: 0.03;
  white-space: nowrap;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.tr-cta-title {
  font-family: var(--font-display);
  font-size: clamp(48px, 7vw, 88px);
  letter-spacing: 2px;
  line-height: 0.9;
  color: var(--text);
  margin-bottom: 20px;
}

.tr-cta-title em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Section typography */
.tr-section-tag {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 12px;
}

.tr-section-title {
  font-family: var(--font-display);
  font-size: clamp(44px, 6vw, 68px);
  letter-spacing: 2px;
  line-height: 0.92;
  color: var(--text);
}

.tr-section-title em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.tr-section-title-lg {
  font-family: var(--font-display);
  font-size: clamp(44px, 7vw, 80px);
  letter-spacing: 2px;
  line-height: 0.9;
  color: var(--text);
  margin-bottom: 24px;
}

.tr-section-title-lg em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.tr-section-title-xl {
  font-family: var(--font-display);
  font-size: clamp(44px, 10vw, 120px);
  letter-spacing: 3px;
  line-height: 0.88;
  margin-bottom: 18px;
}

.tr-section-title-xl span {
  display: block;
}

.tr-section-title-xl .tr-title-plain {
  color: var(--text);
}

.tr-section-title-xl .tr-title-grad {
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.tr-section-sub {
  font-size: 15px;
  color: var(--text2);
  line-height: 1.8;
}

.tr-section-sub-muted {
  font-size: 14px;
  color: var(--text3);
  line-height: 1.6;
}

.tr-grad-text {
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-style: normal;
}

/* Hero */
.tr-hero-title {
  /* One line: SAVED (plain) BY THE (gradient) BULL. (muted) — sized to fit a single row */
  font-family: var(--font-display);
  font-size: clamp(40px, 6.8vw, 96px);
  line-height: 0.95;
  letter-spacing: 3px;
  margin-bottom: 8px;
  white-space: nowrap;
}

.tr-hero-title span {
  display: inline;
}

.tr-hero-title .tr-title-plain {
  color: var(--text);
}

.tr-hero-title .tr-title-grad {
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.tr-hero-title .tr-title-muted {
  color: var(--w12);
  letter-spacing: 6px;
}

.tr-hero-sub {
  font-size: 15px;
  font-weight: 300;
  color: var(--text2);
  line-height: 1.75;
}

.tr-hero-sub strong {
  color: var(--text);
  font-weight: 600;
}

.tr-hero-badge {
  background: rgba(139, 92, 246, 0.1);
  border: 1px solid rgba(139, 92, 246, 0.25);
}

.tr-badge-text {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--accent);
}

.tr-pulse-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 8px var(--accent);
  display: inline-block;
  animation: tr-pulse 1.5s ease-in-out infinite;
}

.tr-pulse-dot-green {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 6px var(--green);
  display: inline-block;
  animation: tr-pulse 1.5s ease-in-out infinite;
}

/* Hero stats grid */
.tr-stats-grid {
  max-width: 700px;
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  background: var(--w05);
}

.tr-stats-col-bordered {
  border-right: 1px solid var(--border);
}

.tr-stat-value {
  font-family: var(--font-display);
  font-size: 28px;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.tr-stat-label {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 2px;
  color: var(--text3);
  text-transform: uppercase;
}

/* Feature cards */
.tr-feature-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--w05);
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  margin-bottom: 12px;
}

.tr-feature-num {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  color: var(--text3);
  text-transform: uppercase;
  margin-bottom: 4px;
}

.tr-feature-title {
  font-family: var(--font-display);
  font-size: 20px;
  letter-spacing: 1px;
  color: var(--text);
  margin-bottom: 5px;
}

.tr-feature-desc {
  font-size: 12px;
  color: var(--text3);
  line-height: 1.6;
}

/* Feature list (about section) */
.tr-feature-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.tr-feature-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  background: var(--w05);
  border: 1px solid var(--border);
  border-radius: 12px;
}

.tr-feature-item-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--grad);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}

.tr-feature-item-title {
  font-family: var(--font-display);
  font-size: 17px;
  letter-spacing: 1px;
  color: var(--text);
  margin-bottom: 3px;
}

.tr-feature-item-desc {
  font-size: 12px;
  color: var(--text3);
  line-height: 1.6;
}

/* Quote box */
.tr-quote-box {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 36px;
  position: relative;
  overflow: hidden;
}

.tr-grad-bar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--grad);
}

.tr-quote-label {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--text3);
  margin-bottom: 20px;
}

.tr-blockquote {
  font-size: 15px;
  line-height: 1.8;
  color: var(--text2);
  margin: 0 0 24px;
  font-style: italic;
}

.tr-author {
  display: flex;
  align-items: center;
  gap: 12px;
}

.tr-author-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--grad);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 20px;
  color: #000;
  flex-shrink: 0;
}

.tr-author-name {
  font-family: var(--font-display);
  font-size: 16px;
  letter-spacing: 1px;
  color: var(--text);
}

.tr-author-title {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  color: var(--text3);
  text-transform: uppercase;
}

.tr-quote-stats {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--border);
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 16px;
}

.tr-mini-stat-value {
  font-family: var(--font-display);
  font-size: 30px;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.tr-mini-stat-label {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 1.5px;
  color: var(--text3);
  text-transform: uppercase;
  margin-top: 2px;
}

/* Challenge cards */
.tr-challenge-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 24px;
}

.tr-card-type-label {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
  margin-bottom: 6px;
}

.tr-card-type-label-accent {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 6px;
}

.tr-challenge-plan {
  font-family: var(--font-display);
  font-size: 32px;
  letter-spacing: 2px;
  color: var(--text);
}

.tr-check-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 28px;
}

.tr-check-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: var(--text2);
}

.tr-check-item-muted {
  color: var(--text3);
}

.tr-check-ok {
  color: var(--green);
}

.tr-check-no {
  color: var(--text3);
}

/* Token stats */
.tr-token-stat {
  background: var(--w05);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 18px;
  text-align: center;
}

.tr-token-stat-value {
  font-family: var(--font-display);
  font-size: 26px;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.tr-token-stat-label {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 2px;
  color: var(--text3);
  text-transform: uppercase;
  margin-top: 4px;
}

/* Gamification */
.tr-gamify-icon {
  font-size: 36px;
  margin-bottom: 12px;
}

.tr-gamify-title {
  font-family: var(--font-display);
  font-size: 22px;
  letter-spacing: 1px;
  color: var(--text);
  margin-bottom: 6px;
}

.tr-gamify-desc {
  font-size: 12px;
  color: var(--text3);
  line-height: 1.6;
}

.tr-how-step-title {
  font-family: var(--font-display);
  font-size: 20px;
  letter-spacing: 1px;
  color: var(--text);
  margin-bottom: 8px;
}

.tr-how-step-desc {
  font-size: 12px;
  color: var(--text3);
  line-height: 1.7;
}

/* Leaderboard */
.tr-lb-header {
  display: grid;
  grid-template-columns: 32px 1fr 80px 80px;
  gap: 12px;
  padding: 6px 14px;
  margin-bottom: 6px;
}

.tr-lb-header-cell {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
}

.tr-lb-header-cell-r {
  text-align: right;
}

.tr-lb-rank {
  font-family: var(--font-display);
  font-size: 16px;
  color: var(--text3);
}

.tr-lb-rank-gold {
  font-family: var(--font-display);
  font-size: 16px;
  color: var(--gold);
}

.tr-lb-trader {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tr-lb-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--grad);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 13px;
  color: #000;
  flex-shrink: 0;
}

.tr-lb-avatar-blue {
  background: linear-gradient(135deg, #1A56DB, #4F8EF7);
  color: #fff;
}

.tr-lb-avatar-pink {
  background: linear-gradient(135deg, #D91AAD, #E83DC0);
  color: #fff;
}

.tr-lb-avatar-green {
  background: linear-gradient(135deg, #22c55e, #16a34a);
  color: #fff;
}

.tr-lb-avatar-gold {
  background: linear-gradient(135deg, #F5C518, #d97706);
  color: #000;
}

.tr-lb-name {
  font-size: 13px;
  color: var(--text);
}

.tr-lb-level {
  font-family: var(--font-mono);
  font-size: 8px;
  color: var(--text3);
}

.tr-lb-value {
  font-family: var(--font-display);
  font-size: 16px;
  color: var(--text);
  text-align: right;
}

.tr-lb-winrate {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--green);
  text-align: right;
}

.tr-lb-link {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent);
  text-decoration: none;
}

/* Payout box */
.tr-payout-box {
  background: var(--card-bg);
  border: 1px solid var(--border-h);
  border-radius: 18px;
  padding: 28px;
  position: relative;
  overflow: hidden;
  margin-bottom: 20px;
}

.tr-payout-bar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--grad);
}

.tr-payout-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}

.tr-payout-label {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
}

.tr-payout-amount {
  font-family: var(--font-display);
  font-size: 52px;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
  margin-bottom: 6px;
}

.tr-payout-recipient {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
  margin-bottom: 20px;
}

.tr-payout-address {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.5px;
  color: var(--text3);
  background: var(--w05);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px 12px;
  word-break: break-all;
}

.tr-payout-confirmed {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
}

.tr-payout-confirmed-text {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--green);
}

/* Activity box */
.tr-activity-box {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 24px;
}

.tr-activity-header {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
  margin-bottom: 16px;
}

.tr-activity-items {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.tr-activity-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.tr-activity-desc {
  font-size: 12px;
  color: var(--text2);
}

.tr-activity-value {
  font-family: var(--font-display);
  font-size: 20px;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Misc */
.tr-divider {
  height: 1px;
  background: var(--border);
}

/* == Mega-dropdown main menu (root pages only; hover panels with icon rows) == */
.tr-mm {
  position: relative;
}

.tr-mm-caret {
  font-size: 8px;
  margin-left: 5px;
  opacity: 0.5;
  vertical-align: 2px;
}

.tr-mm-panel {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  min-width: 330px;
  padding: 10px;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.5);
  z-index: 1100;
}

.tr-mm:hover .tr-mm-panel,
.tr-mm:focus-within .tr-mm-panel {
  display: block;
}

.tr-mm-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 9px;
  text-decoration: none;
}
.tr-mm-row:hover {
  background: var(--w05);
}
.tr-mm-row:hover .tr-mm-t {
  color: var(--accent);
}

.tr-mm-ic {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--w05);
  border: 1px solid var(--border);
}
.tr-mm-ic svg {
  width: 17px;
  height: 17px;
  color: var(--accent);
}

.tr-mm-txt {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.tr-mm-t {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 500;
  color: var(--text);
}

.tr-mm-d {
  font-size: 11px;
  color: var(--text3);
  line-height: 1.45;
}

@media (max-width: 991.98px) {
  /* In the burger menu the panels render expanded in place — no hover on touch. */
  .tr-mm-caret {
    display: none;
  }
  .tr-mm-panel {
    display: block;
    position: static;
    transform: none;
    min-width: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0 0 10px 14px;
  }
}
/* Nav button extras */
.tr-nav-login-btn {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text2);
  border: 1px solid var(--border);
  padding: 6px 14px;
  border-radius: 6px;
  text-decoration: none;
}

.tr-nav-signup-btn {
  font-family: var(--font-display);
  font-size: 14px;
  letter-spacing: 2px;
  color: #000;
  background: var(--grad);
  border: none;
  padding: 6px 16px;
  border-radius: 6px;
  font-weight: 400;
  text-decoration: none;
}

.tr-nav-dev-toggle {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.18);
  text-decoration: none;
}

/* Logged-in state: avatar chip (→ back to the app) shown instead of Login/Get Started */
.tr-nav-user {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  padding: 4px 10px 4px 4px;
  border: 1px solid var(--border);
  border-radius: 50px;
  transition: border-color 0.15s ease;
}

.tr-nav-user:hover {
  border-color: var(--accent);
}

.tr-nav-user-av {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
}

.tr-nav-user-av-ph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--badge);
  color: var(--accent);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 13px;
}

.tr-nav-user-name {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text2);
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tr-nav-user:hover .tr-nav-user-name {
  color: var(--text);
}

.tr-nav-dev-menu {
  background: var(--bg3) !important;
  border: 1px solid var(--border) !important;
  min-width: 130px;
}

.tr-nav-dev-item {
  font-family: var(--font-mono) !important;
  font-size: 10px !important;
  letter-spacing: 1px !important;
  color: var(--text3) !important;
}

.tr-footer-section-label {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--text3);
  margin-bottom: 14px;
}

/* Button size variants */
.tr-btn-xl {
  width: auto;
  padding: 18px 60px;
  border-radius: 50px;
  text-decoration: none;
  display: inline-block;
  font-size: 20px;
  letter-spacing: 4px;
  font-weight: 400;
}

.tr-btn-inline {
  width: auto;
  padding: 14px 40px;
  text-decoration: none;
}

/* == Auth page layout and form styles == */
.modal-content {
  background: var(--bg2);
  border: 1px solid var(--border-h);
  border-radius: 16px;
}

.modal-header {
  border-bottom: 1px solid var(--border);
}

.modal-footer {
  border-top: 1px solid var(--border);
}

.table {
  color: var(--text2);
}

.table > :not(caption) > * > * {
  background: transparent;
  border-color: var(--border);
}

.dropdown-menu {
  background: var(--bg3);
  border: 1px solid var(--border);
}

.dropdown-item {
  color: var(--text2);
}

.dropdown-item:hover {
  background: rgba(255, 255, 255, 0.05);
  color: var(--text);
}

.bgg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 80% 65% at 50% -5%, var(--glow1) 0%, transparent 60%), radial-gradient(ellipse 50% 45% at 8% 90%, var(--glow2) 0%, transparent 55%);
}

.bggrid {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: linear-gradient(var(--grid-c) 1px, transparent 1px), linear-gradient(90deg, var(--grid-c) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 100% 100% at 50% 50%, black 20%, transparent 78%);
  -webkit-mask-image: radial-gradient(ellipse 100% 100% at 50% 50%, black 20%, transparent 78%);
}

.bggrid::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(circle 3px at 0 0, var(--accent) 0%, transparent 60%);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 100% 100% at 50% 50%, black 20%, transparent 78%);
  -webkit-mask-image: radial-gradient(ellipse 100% 100% at 50% 50%, black 20%, transparent 78%);
  animation: grid-travel-h 2s linear infinite;
  opacity: 0.7;
}

.bggrid::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(circle 3px at 0 0, var(--accent) 0%, transparent 60%);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 100% 100% at 50% 50%, black 20%, transparent 78%);
  -webkit-mask-image: radial-gradient(ellipse 100% 100% at 50% 50%, black 20%, transparent 78%);
  animation: grid-travel-v 2s linear infinite;
  opacity: 0.7;
}

.tr-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1030;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 2rem;
  background: var(--nav-bg);
  -webkit-backdrop-filter: blur(24px);
          backdrop-filter: blur(24px);
  border-bottom: 1px solid var(--border);
}

.tr-nav-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}

.tr-nav-logo-img {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  overflow: hidden;
  border: 1.5px solid var(--accent);
}

.tr-nav-logo-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.tr-nav-wordmark {
  font-family: var(--font-display);
  font-size: 20px;
  letter-spacing: 4px;
  color: var(--text);
}

.tr-nav-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.tr-nav-link {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text3);
  text-decoration: none;
  padding: 6px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  transition: all 0.2s;
  white-space: nowrap;
}

.tr-nav-link:hover {
  border-color: var(--border-h);
  color: var(--accent);
}

.tr-page {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 88px 24px 48px;
  position: relative;
  z-index: 1;
}

.tr-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  max-width: 960px;
  width: 100%;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid var(--border);
  box-shadow: 0 40px 100px rgba(0, 0, 0, 0.5);
}

.tr-left {
  background: linear-gradient(145deg, var(--bg2), var(--bg3));
  padding: 52px 44px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-right: 1px solid var(--border);
}

.tr-right {
  background: var(--card-bg);
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  padding: 52px 44px;
}

.left-tag {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.left-tag::before {
  content: "";
  width: 16px;
  height: 1px;
  background: var(--accent);
}

.left-h {
  font-family: var(--font-display);
  font-size: clamp(36px, 4vw, 56px);
  letter-spacing: 2px;
  line-height: 0.95;
  color: var(--text);
  margin-bottom: 14px;
}

.left-h em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.left-sub {
  font-size: 13px;
  color: var(--text2);
  line-height: 1.7;
  margin-bottom: 26px;
}

.left-perks {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.perk {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.perk-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: linear-gradient(135deg, var(--accent2), var(--accent));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
}

.perk-title {
  font-family: var(--font-display);
  font-size: 15px;
  letter-spacing: 1px;
  color: var(--text);
  margin-bottom: 2px;
}

.perk-desc {
  font-size: 11px;
  color: var(--text3);
  line-height: 1.5;
}

.left-bottom {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  color: var(--text3);
  text-transform: uppercase;
  margin-top: 24px;
}

.form-logo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 22px;
}

.form-logo img {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1.5px solid var(--accent);
}

.form-logo-text {
  font-family: var(--font-display);
  font-size: 17px;
  letter-spacing: 3px;
  color: var(--text);
}

.form-top-bar {
  height: 3px;
  background: var(--grad);
  border-radius: 2px;
  margin-bottom: 22px;
}

.form-title {
  font-family: var(--font-display);
  font-size: 28px;
  letter-spacing: 2px;
  color: var(--text);
  margin-bottom: 4px;
  line-height: 1;
}

.form-sub {
  font-size: 12px;
  color: var(--text3);
  line-height: 1.6;
  margin-bottom: 18px;
}

.form-sub strong {
  color: var(--accent);
  font-weight: 600;
}

.fg {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 11px;
}

.fg label {
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
}

.fi {
  background: var(--w05) !important;
  border: 1px solid var(--w12) !important;
  border-radius: 10px;
  padding: 11px 13px;
  font-family: var(--font-body) !important;
  font-size: 13px;
  color: var(--text) !important;
  outline: none;
  transition: all 0.25s;
  width: 100%;
}

.fi::-moz-placeholder {
  color: var(--w20) !important;
}

.fi::placeholder {
  color: var(--w20) !important;
}

.fi:focus {
  border-color: var(--border-h) !important;
  background: rgba(139, 92, 246, 0.04) !important;
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.1) !important;
}

.fi:-webkit-autofill, .fi:-webkit-autofill:hover, .fi:-webkit-autofill:focus {
  box-shadow: 0 0 0 1000px var(--bg4) inset !important;
  -webkit-text-fill-color: var(--text) !important;
  caret-color: var(--text) !important;
  border: 1px solid var(--w12) !important;
  outline: none !important;
  outline-width: 0 !important;
  outline-offset: 0 !important;
  -webkit-transition: background-color 5000s ease-in-out 0s, border-color 0s !important;
  transition: background-color 5000s ease-in-out 0s, border-color 0s !important;
}

.fi:-webkit-autofill,
.fi:-webkit-autofill:hover,
.fi:-webkit-autofill:focus,
.fi:autofill,
.fi:autofill:hover,
.fi:autofill:focus {
  box-shadow: 0 0 0 1000px var(--bg4) inset !important;
  -webkit-text-fill-color: var(--text) !important;
  caret-color: var(--text) !important;
  border: 1px solid var(--w12) !important;
  outline: none !important;
  outline-width: 0 !important;
  outline-offset: 0 !important;
  -webkit-transition: background-color 5000s ease-in-out 0s, border-color 0s !important;
  transition: background-color 5000s ease-in-out 0s, border-color 0s !important;
}

.fi-wrap {
  position: relative;
}

.fi-toggle {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--text3);
  cursor: pointer;
  font-size: 14px;
  padding: 0;
  transition: color 0.2s;
}

.fi-toggle:hover {
  color: var(--text);
}

.frow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.fs {
  background: var(--w05) !important;
  border: 1px solid var(--w12) !important;
  border-radius: 10px;
  padding: 11px 13px;
  font-family: var(--font-body) !important;
  font-size: 13px;
  color: var(--text) !important;
  outline: none;
  transition: all 0.25s;
  width: 100%;
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='rgba(255,255,255,0.3)' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
}

.fs:focus {
  border-color: var(--border-h) !important;
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.1) !important;
}

.fs option {
  background: #111;
  color: #fff;
}

.btn-submit {
  width: 100%;
  font-family: var(--font-display);
  font-size: 18px;
  letter-spacing: 3px;
  color: #000;
  border: none;
  cursor: pointer;
  padding: 13px 20px;
  border-radius: 12px;
  background: var(--grad);
  transition: all 0.25s;
  box-shadow: 0 6px 22px rgba(139, 92, 246, 0.35);
  margin-top: 4px;
  display: block;
}

.btn-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(139, 92, 246, 0.55);
}

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

.btn-out {
  width: 100%;
  font-family: var(--font-display);
  font-size: 17px;
  letter-spacing: 2px;
  color: var(--accent3);
  border: 1px solid rgba(139, 92, 246, 0.3);
  cursor: pointer;
  padding: 11px 20px;
  border-radius: 12px;
  background: transparent;
  transition: all 0.25s;
  margin-top: 8px;
  display: block;
}

.btn-out:hover {
  background: rgba(139, 92, 246, 0.07);
  border-color: rgba(139, 92, 246, 0.55);
  transform: translateY(-1px);
}

.form-sep {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 12px 0;
}

.form-sep::before, .form-sep::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--w08);
}

.form-sep span {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  color: var(--w20);
  text-transform: uppercase;
  white-space: nowrap;
}

.form-link {
  text-align: right;
  margin-bottom: 11px;
}

.form-link a {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 1px;
  color: var(--accent);
  text-decoration: none;
}

.form-link a:hover {
  text-decoration: underline;
}

.form-note {
  text-align: center;
  font-size: 12px;
  color: var(--text3);
  margin-top: 12px;
}

.form-note a {
  color: var(--accent);
  text-decoration: none;
  font-weight: 600;
}

.tr-alert {
  border-radius: 10px;
  padding: 11px 14px;
  font-size: 13px;
  margin-bottom: 14px;
  font-family: var(--font-body);
  min-height: 42px;
}

.tr-alert-danger {
  background: rgba(248, 113, 113, 0.1);
  border: 1px solid rgba(248, 113, 113, 0.3);
  color: #f87171;
}

.tr-alert-success {
  background: rgba(52, 211, 153, 0.1);
  border: 1px solid rgba(52, 211, 153, 0.3);
  color: #34d399;
}

.reg-steps {
  display: flex;
  gap: 6px;
  align-items: center;
}

.reg-step {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--w12);
  transition: all 0.3s;
}

.reg-step.active {
  background: var(--accent);
  width: 20px;
  border-radius: 4px;
}

.reg-inline-error {
  font-size: 12px;
  color: #f87171;
  font-family: var(--font-mono);
  letter-spacing: 0.5px;
  min-height: 18px;
  margin-bottom: 10px;
}

.reg-avatar-row {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
  padding: 14px;
  background: var(--w05);
  border: 1px solid var(--border);
  border-radius: 12px;
}

.reg-avatar-preview {
  width: 64px;
  height: 64px;
  flex-shrink: 0;
  border-radius: 14px;
  overflow: hidden;
}

.reg-avatar-preview svg {
  display: block;
}

.reg-avatar-label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
  margin-bottom: 4px;
}

.reg-avatar-sub {
  font-size: 12px;
  color: var(--text2);
}

.reg-tos {
  margin: 16px 0 20px;
}

.reg-tos-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}

.reg-tos-check {
  display: none;
}

.reg-tos-box {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  border: 1px solid var(--w12);
  border-radius: 5px;
  background: var(--w05);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  margin-top: 1px;
}

.reg-tos-check:checked + .reg-tos-box {
  background: var(--accent);
  border-color: var(--accent);
}

.reg-tos-check:checked + .reg-tos-box::after {
  content: "✓";
  font-size: 11px;
  color: #fff;
  font-weight: 700;
}

.reg-tos-text {
  font-size: 12px;
  color: var(--text2);
  line-height: 1.6;
}

.reg-tos-text a {
  color: var(--accent);
  text-decoration: none;
}

.otp-wrap {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
}

.otp-input {
  width: 100%;
  text-align: center;
  font-size: 18px;
  font-family: var(--font-mono);
  padding: 12px 4px !important;
  text-transform: uppercase;
}

.otp-input:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.otp-progress-track {
  width: 100%;
  height: 3px;
  background: var(--w08);
  border-radius: 2px;
  margin-bottom: 24px;
  overflow: hidden;
}

.otp-progress-fill {
  height: 100%;
  width: 100%;
  background: var(--grad);
  border-radius: 2px;
  transition: width 120s linear;
}

.otp-progress-fill.otp-expired {
  background: rgba(248, 113, 113, 0.6);
}

.otp-countdown {
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 500;
  color: var(--accent);
  letter-spacing: 2px;
  padding: 4px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  min-width: 52px;
  text-align: center;
}

.otp-countdown.otp-expired {
  color: #f87171;
  border-color: rgba(248, 113, 113, 0.4);
}

.form-terms {
  font-size: 11px;
  color: var(--text3);
  line-height: 1.6;
  margin-bottom: 14px;
}

.form-terms a {
  color: var(--accent);
  text-decoration: none;
}

.back-link {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text3);
  text-decoration: none;
  display: block;
  text-align: center;
  margin-top: 14px;
  transition: color 0.2s;
}

.back-link:hover {
  color: var(--accent);
}

.steps-bar {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
  align-items: center;
}

.step-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.step-num {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 13px;
  flex-shrink: 0;
}

.step-num.active {
  background: var(--grad);
  color: #000;
}

.step-num.done {
  background: rgba(34, 197, 94, 0.15);
  border: 1px solid rgba(34, 197, 94, 0.35);
  color: #22c55e;
}

.step-num.idle {
  background: var(--w05);
  border: 1px solid var(--w12);
  color: var(--text3);
}

.step-label.active {
  color: var(--text);
}

.step-label.idle {
  color: var(--text3);
}

.step-arrow {
  color: var(--text3);
  font-size: 12px;
  margin: 0 2px;
}

.otp-wrap {
  display: flex;
  gap: 8px;
  justify-content: center;
  margin: 14px 0;
}

.otp-input {
  width: 48px;
  height: 54px;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 22px;
  font-weight: 600;
  color: var(--text);
  background: var(--w05);
  border: 1px solid var(--w12);
  border-radius: 10px;
  outline: none;
  transition: all 0.25s;
  caret-color: var(--accent);
}

.otp-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.12);
}

.method-box {
  padding: 14px 16px;
  background: var(--w05);
  border: 1px solid var(--w08);
  border-radius: 12px;
  margin-bottom: 10px;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  gap: 12px;
}

.method-box.selected, .method-box:hover {
  background: rgba(139, 92, 246, 0.08);
  border-color: var(--border-h);
}

.method-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--w08);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
  transition: background 0.2s;
}

.method-box.selected .method-icon {
  background: var(--grad);
}

.method-title {
  font-family: var(--font-display);
  font-size: 16px;
  letter-spacing: 1px;
  color: var(--text);
  margin-bottom: 2px;
}

.method-desc {
  font-size: 11px;
  color: var(--text3);
  line-height: 1.4;
}

/* Skip verification — muted dashed button */
.btn-skip {
  display: block;
  width: 100%;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
  border: 1px dashed var(--w12);
  border-radius: 12px;
  padding: 11px 16px;
  text-align: center;
  text-decoration: none;
  transition: all 0.25s;
  cursor: pointer;
  margin-top: 0;
}

.btn-skip:hover {
  border-color: var(--w20);
  color: var(--text2);
  background: var(--w05);
}

/* Registration step panels — no-layout-shift transitions */
.reg-panel-wrap {
  position: relative;
}

.reg-step-panel {
  display: none;
}

.reg-step-panel.active {
  display: block;
}

/* Password rules */
.pw-rules {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 8px;
  padding: 10px 12px;
  background: var(--w05);
  border-radius: 8px;
  border: 1px solid var(--w08);
}

.pw-rule {
  display: flex;
  align-items: center;
  gap: 7px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.5px;
  color: var(--text3);
  transition: color 0.2s;
}

.pw-rule.valid {
  color: #22c55e;
}

.pw-rule-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--w20);
  flex-shrink: 0;
  transition: background 0.2s;
}

.pw-rule.valid .pw-rule-dot {
  background: #22c55e;
}

/* Field status indicator (email / username) */
.fi-status {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 13px;
  font-family: var(--font-mono);
  pointer-events: none;
  transition: color 0.2s;
}

.fi-ok {
  color: #22c55e;
}

.fi-err {
  color: #f87171;
}

.fi-checking {
  color: var(--text3);
  animation: tr-pulse 1s infinite;
}

/* Avatar refresh */
.reg-avatar-info {
  flex: 1;
}

.reg-avatar-refresh {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--w05);
  border: 1px solid var(--w12);
  color: var(--text3);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  flex-shrink: 0;
  font-weight: 400;
  padding: 0;
}

.reg-avatar-refresh:hover {
  background: rgba(139, 92, 246, 0.08);
  border-color: var(--border-h);
  color: var(--accent);
}

.reg-avatar-refresh.spinning svg {
  animation: spin360 0.4s linear;
}

@keyframes spin360 {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@media (max-width: 768px) {
  .tr-split {
    grid-template-columns: 1fr;
    border-radius: 16px;
    max-width: 480px;
  }
  .tr-left {
    display: none;
  }
  .tr-right {
    padding: 36px 28px;
  }
  .tr-nav {
    padding: 0 1rem;
  }
  .tr-page {
    padding: 80px 16px 32px;
  }
}
@media (max-width: 480px) {
  .tr-right {
    padding: 28px 20px;
  }
  .frow {
    grid-template-columns: 1fr;
  }
  .otp-input {
    width: 40px;
    height: 48px;
    font-size: 18px;
  }
  .otp-wrap {
    gap: 5px;
  }
}
@media (max-width: 360px) {
  .otp-input {
    width: 34px;
    height: 44px;
    font-size: 16px;
  }
  .otp-wrap {
    gap: 4px;
  }
}
/* ── PAGE COMPONENTS — marketing/landing widgets ──────────────────────── */
@keyframes fU {
  from {
    opacity: 0;
    transform: translateY(22px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes tick {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@keyframes spin {
  from {
    transform: rotate(0);
  }
  to {
    transform: rotate(360deg);
  }
}
@keyframes st-pulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.5;
    transform: scale(0.8);
  }
}
/* HERO */
.hero {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 110px 24px 80px;
  position: relative;
  overflow: hidden;
  background: var(--bg);
}

.hero-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 100% 65% at 50% -5%, rgba(var(--accent-rgb), 0.28) 0%, transparent 60%), radial-gradient(ellipse 55% 45% at 8% 90%, rgba(var(--accent-rgb), 0.2) 0%, transparent 55%), radial-gradient(ellipse 45% 40% at 92% 85%, rgba(var(--accent-rgb), 0.08) 0%, transparent 55%);
}

.hero-grid {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(var(--accent-rgb), 0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--accent-rgb), 0.06) 1px, transparent 1px);
  background-size: 58px 58px;
  mask-image: radial-gradient(ellipse 85% 85% at 50% 50%, black 25%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 85% 85% at 50% 50%, black 25%, transparent 100%);
}

.hero-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  padding: 7px 18px;
  border-radius: 100px;
  background: rgba(var(--accent-rgb), 0.1);
  border: 1px solid rgba(var(--accent-rgb), 0.3);
  color: var(--accent);
  margin-bottom: 26px;
  animation: fU 0.8s ease both;
  position: relative;
  z-index: 1;
}

.hero-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
  animation: st-pulse 1.5s ease-in-out infinite;
  box-shadow: 0 0 8px var(--accent);
}

.hero-h1 {
  font-family: var(--font-display);
  font-size: clamp(82px, 13vw, 152px);
  line-height: 0.88;
  letter-spacing: 3px;
  margin-bottom: 4px;
  position: relative;
  z-index: 1;
  animation: fU 0.8s 0.1s ease both;
}

.h1-l1 {
  display: block;
  color: #fff;
  text-shadow: 0 0 80px rgba(var(--accent-rgb), 0.15);
}

.h1-l2 {
  display: block;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  filter: drop-shadow(0 0 28px rgba(var(--accent-rgb), 0.35));
}

.h1-l3 {
  display: block;
  color: rgba(255, 255, 255, 0.12);
  font-size: clamp(56px, 9vw, 100px);
  letter-spacing: 10px;
}

.hero-sub {
  font-size: 16px;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.75;
  max-width: 560px;
  margin: 22px auto 12px;
  position: relative;
  z-index: 1;
  animation: fU 0.8s 0.2s ease both;
}

.hero-sub strong {
  color: #fff;
  font-weight: 600;
}

.hero-sub2 {
  font-size: 14px;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.7;
  max-width: 480px;
  margin: 0 auto 36px;
  position: relative;
  z-index: 1;
  animation: fU 0.8s 0.25s ease both;
}

.hero-ctas {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 60px;
  position: relative;
  z-index: 1;
  animation: fU 0.8s 0.3s ease both;
}

.btn-main {
  font-family: var(--font-display);
  font-size: 19px;
  letter-spacing: 3px;
  color: #000;
  text-decoration: none;
  padding: 15px 42px;
  background: var(--grad);
  border-radius: 8px;
  transition: all 0.25s;
  display: inline-block;
  box-shadow: 0 8px 30px rgba(var(--accent-rgb), 0.35);
  border: none;
  cursor: pointer;
  font-weight: 400;
}

.btn-main:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 48px rgba(var(--accent-rgb), 0.5);
  color: #000;
}

.btn-out {
  font-family: var(--font-display);
  font-size: 19px;
  letter-spacing: 3px;
  color: #fff;
  text-decoration: none;
  padding: 15px 42px;
  border: 1.5px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  transition: all 0.25s;
  display: inline-block;
  font-weight: 400;
}

.btn-out:hover {
  border-color: var(--accent);
  background: rgba(var(--accent-rgb), 0.08);
  transform: translateY(-3px);
  color: #fff;
}

.hero-stats {
  display: flex;
  gap: 0;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  overflow: hidden;
  max-width: 720px;
  width: 100%;
  position: relative;
  z-index: 1;
  background: rgba(255, 255, 255, 0.02);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  animation: fU 0.8s 0.4s ease both;
}

.hstat {
  flex: 1;
  padding: 22px 16px;
  text-align: center;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.hstat:last-child {
  border-right: none;
}

.hstat-n {
  font-family: var(--font-display);
  font-size: 36px;
  letter-spacing: 1px;
  line-height: 1;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.hstat-l {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  margin-top: 4px;
}

/* TICKER */
.ticker {
  overflow: hidden;
  padding: 13px 0;
  position: relative;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.ticker::before, .ticker::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100px;
  z-index: 2;
}

.ticker::before {
  left: 0;
  background: linear-gradient(90deg, var(--bg), transparent);
}

.ticker::after {
  right: 0;
  background: linear-gradient(-90deg, var(--bg), transparent);
}

.ticker-inner {
  display: flex;
  animation: tick 28s linear infinite;
  white-space: nowrap;
}

.ti {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 0 30px;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.ti.c1 {
  color: var(--accent);
}

.ti.c2 {
  color: var(--accent3);
}

.ti.c3 {
  color: var(--accent3);
}

.ti.c4 {
  color: var(--accent3);
}

.ti-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.5;
  flex-shrink: 0;
}

/* GRADIENT RULE */
.gline {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent), var(--accent3), var(--accent3), transparent);
}

/* SECTION PRIMITIVES */
.sec {
  padding: 110px 24px;
  position: relative;
}

.con {
  max-width: 1080px;
  margin: 0 auto;
}

.stag {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.stag::before {
  content: "";
  width: 18px;
  height: 1px;
  background: var(--accent);
  flex-shrink: 0;
}

.sh2 {
  font-family: var(--font-display);
  font-size: clamp(50px, 7vw, 84px);
  letter-spacing: 2px;
  line-height: 0.92;
  color: #fff;
  margin-bottom: 14px;
}

.sh2 em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.ssub {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.75;
  max-width: 520px;
}

.ssub2 {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.7;
  max-width: 520px;
  margin-top: 10px;
}

/* INTRO */
.intro-bg {
  background: var(--bg2);
}

.intro-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.intro-right {
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.intro-block {
  padding: 24px 26px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  border-left: 3px solid var(--accent);
  transition: all 0.25s;
}

.intro-block:hover {
  background: rgba(var(--accent-rgb), 0.06);
  border-left-color: var(--accent3);
}

.intro-block-label {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 8px;
}

.intro-block-title {
  font-family: var(--font-display);
  font-size: 22px;
  letter-spacing: 1px;
  color: #fff;
  margin-bottom: 6px;
}

.intro-block-text {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.65;
}

.intro-quote {
  margin-top: 28px;
  padding: 22px 24px;
  background: rgba(var(--accent-rgb), 0.06);
  border: 1px solid rgba(var(--accent-rgb), 0.2);
  border-radius: 14px;
  position: relative;
}

.intro-quote::before {
  content: '"';
  font-family: var(--font-display);
  font-size: 80px;
  color: rgba(var(--accent-rgb), 0.15);
  position: absolute;
  top: -10px;
  left: 16px;
  line-height: 1;
}

.intro-quote p {
  font-size: 14px;
  font-style: italic;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.7;
  position: relative;
  z-index: 1;
}

.intro-quote span {
  display: block;
  margin-top: 10px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  color: var(--accent);
  text-transform: uppercase;
}

/* FEATURES */
.feat-bg {
  background: var(--bg);
}

.feat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-top: 60px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.fc {
  background: var(--bg3);
  padding: 36px 30px;
  position: relative;
  overflow: hidden;
  transition: background 0.3s;
  cursor: default;
}

.fc::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(var(--accent-rgb), 0.07) 0%, transparent 60%);
  opacity: 0;
  transition: opacity 0.3s;
}

.fc:hover::before {
  opacity: 1;
}

.fc-bar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--grad);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s ease;
}

.fc:hover .fc-bar {
  transform: scaleX(1);
}

.fc-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  margin-bottom: 18px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: all 0.3s;
}

.fc:hover .fc-icon {
  background: rgba(var(--accent-rgb), 0.15);
  border-color: rgba(var(--accent-rgb), 0.3);
}

.fc-num {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  margin-bottom: 8px;
}

.fc-title {
  font-family: var(--font-display);
  font-size: 26px;
  letter-spacing: 1px;
  color: #fff;
  margin-bottom: 8px;
}

.fc-desc {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.6;
  margin-bottom: 8px;
}

.fc-detail {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.2);
  line-height: 1.55;
}

/* HOW IT WORKS */
.how-bg {
  background: var(--bg2);
}

.how-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
  margin-bottom: 64px;
}

.steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  position: relative;
}

.steps::before {
  content: "";
  position: absolute;
  top: 27px;
  left: calc(12.5% + 14px);
  right: calc(12.5% + 14px);
  height: 1px;
  background: linear-gradient(90deg, var(--accent), var(--accent2), var(--accent3), var(--accent3));
  z-index: 0;
}

.step {
  text-align: center;
  padding: 0 14px;
  position: relative;
  z-index: 1;
}

.step-n {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 22px;
  letter-spacing: 1px;
  margin: 0 auto 18px;
  position: relative;
  transition: all 0.3s;
}

.step:nth-child(1) .step-n {
  background: rgba(var(--accent-rgb), 0.15);
  border: 1px solid var(--accent);
  color: var(--accent);
  box-shadow: 0 0 18px rgba(var(--accent-rgb), 0.25);
}

.step:nth-child(2) .step-n {
  background: rgba(var(--accent-rgb), 0.15);
  border: 1px solid var(--accent2);
  color: var(--accent2);
  box-shadow: 0 0 18px rgba(var(--accent-rgb), 0.2);
}

.step:nth-child(3) .step-n {
  background: rgba(var(--accent-rgb), 0.15);
  border: 1px solid var(--accent3);
  color: var(--accent3);
  box-shadow: 0 0 18px rgba(var(--accent-rgb), 0.2);
}

.step:nth-child(4) .step-n {
  background: rgba(var(--accent-rgb), 0.12);
  border: 1px solid var(--accent3);
  color: var(--accent3);
  box-shadow: 0 0 18px rgba(var(--accent-rgb), 0.2);
}

.step-title {
  font-family: var(--font-display);
  font-size: 20px;
  letter-spacing: 1px;
  color: #fff;
  margin-bottom: 8px;
}

.step-desc {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.6;
}

/* CHALLENGES */
.chal-bg {
  background: var(--bg);
  position: relative;
  overflow: hidden;
}

.chal-bg::before {
  content: "";
  position: absolute;
  top: -200px;
  left: -200px;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(var(--accent-rgb), 0.07) 0%, transparent 70%);
  pointer-events: none;
}

.chal-bg::after {
  content: "";
  position: absolute;
  bottom: -200px;
  right: -200px;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(var(--accent-rgb), 0.07) 0%, transparent 70%);
  pointer-events: none;
}

.chal-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: end;
  margin-bottom: 60px;
}

.chal-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.cc {
  border-radius: 20px;
  padding: 42px 38px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
  overflow: hidden;
}

.cc-demo {
  background: linear-gradient(145deg, #0c0c18 0%, #131020 100%);
}

.cc-fund {
  background: linear-gradient(145deg, #0c0810 0%, #180420 50%, #0c0810 100%);
  border-color: rgba(var(--accent-rgb), 0.25);
}

.cc-fund::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 100% 50% at 50% 0%, rgba(var(--accent-rgb), 0.1) 0%, transparent 65%);
  pointer-events: none;
}

.cc-badge {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 4px;
  margin-bottom: 22px;
}

.bd {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.6);
}

.bf {
  background: var(--grad);
  color: #000;
}

.cc-title {
  font-family: var(--font-display);
  font-size: 48px;
  letter-spacing: 1px;
  color: #fff;
  line-height: 0.95;
  margin-bottom: 14px;
}

.cc-fund .cc-title {
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.cc-desc {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.65;
  margin-bottom: 10px;
}

.cc-desc2 {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.6;
  margin-bottom: 28px;
}

.cc-list {
  list-style: none;
  margin-bottom: 32px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.cc-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.4;
}

.chk {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 1px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cg {
  background: rgba(34, 197, 94, 0.15);
}

.cm {
  background: rgba(var(--accent-rgb), 0.18);
}

.cc-btn {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 17px;
  letter-spacing: 2px;
  text-decoration: none;
  padding: 13px 28px;
  border-radius: 10px;
  transition: all 0.25s;
  cursor: pointer;
  border: none;
  font-weight: 400;
}

.cc-btn-d {
  color: #fff;
  border: 1.5px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.05);
}

.cc-btn-d:hover {
  border-color: rgba(255, 255, 255, 0.4);
  background: rgba(255, 255, 255, 0.08);
  transform: translateY(-2px);
  color: #fff;
}

.cc-btn-f {
  color: #000;
  background: var(--grad);
  box-shadow: 0 6px 24px rgba(var(--accent-rgb), 0.3);
}

.cc-btn-f:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 36px rgba(var(--accent-rgb), 0.45);
  color: #000;
}

/* TOKEN / ORB */
.tok-bg {
  background: var(--bg2);
  position: relative;
  overflow: hidden;
}

.tok-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 80% at 0% 50%, rgba(var(--accent-rgb), 0.13) 0%, transparent 55%), radial-gradient(ellipse 50% 60% at 100% 50%, rgba(var(--accent-rgb), 0.09) 0%, transparent 55%);
  pointer-events: none;
}

.tok-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  position: relative;
  z-index: 1;
}

.tok-body p {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.75;
  margin-top: 14px;
}

.tok-body p + p {
  margin-top: 10px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.7;
}

.tok-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 32px;
}

.tstat {
  padding: 20px 18px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
  overflow: hidden;
}

.tstat::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--grad);
}

.tstat-v {
  font-family: var(--font-display);
  font-size: 28px;
  letter-spacing: 1px;
  line-height: 1;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 4px;
}

.tstat-k {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
}

.orb-wrap {
  position: relative;
  width: 300px;
  height: 300px;
  margin: 0 auto;
}

.orb1, .orb2 {
  position: absolute;
  border-radius: 50%;
  border: 1px solid;
}

.orb1 {
  inset: 0;
  border-color: rgba(var(--accent-rgb), 0.2);
  animation: spin 22s linear infinite;
}

.orb2 {
  inset: 32px;
  border-color: rgba(var(--accent-rgb), 0.15);
  animation: spin 14s linear infinite reverse;
}

.orb-dot {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  top: -5px;
  left: 50%;
  transform: translateX(-50%);
}

.od-m {
  background: var(--accent);
  box-shadow: 0 0 14px var(--accent);
}

.od-g {
  background: var(--accent3);
  box-shadow: 0 0 12px var(--accent3);
}

.orb-c {
  position: absolute;
  inset: 72px;
  border-radius: 50%;
  background: linear-gradient(145deg, var(--bg3), var(--bg4));
  border: 2px solid rgba(var(--accent-rgb), 0.35);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 40px rgba(var(--accent-rgb), 0.15), inset 0 0 30px rgba(var(--accent-rgb), 0.05);
}

.orb-c img {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
}

.orb-c-lbl {
  font-family: var(--font-display);
  font-size: 17px;
  letter-spacing: 3px;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-top: 5px;
}

/* GAMIFICATION */
.gam-bg {
  background: var(--bg);
}

.gam-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
  margin-bottom: 60px;
}

.gam-right p {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.75;
}

.gam-right p + p {
  margin-top: 12px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.7;
}

.gam-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.gc {
  padding: 28px 22px;
  border-radius: 16px;
  background: var(--bg3);
  border: 1px solid rgba(255, 255, 255, 0.08);
  text-align: center;
  transition: all 0.3s;
  cursor: default;
  position: relative;
  overflow: hidden;
}

.gc::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--grad);
  opacity: 0;
  transition: opacity 0.3s;
}

.gc:hover {
  transform: translateY(-5px);
  border-color: transparent;
}

.gc:hover::before {
  opacity: 0.08;
}

.gc:hover .gc-icon {
  transform: scale(1.15);
}

.gc-icon {
  font-size: 28px;
  margin-bottom: 14px;
  display: block;
  transition: transform 0.3s;
}

.gc-title {
  font-family: var(--font-display);
  font-size: 22px;
  letter-spacing: 1px;
  color: #fff;
  margin-bottom: 8px;
}

.gc-desc {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.55;
}

/* SOCIAL PROOF / LEADERBOARD */
.sp-bg {
  background: var(--bg2);
  position: relative;
  overflow: hidden;
}

.sp-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 60% at 50% 100%, rgba(var(--accent-rgb), 0.1) 0%, transparent 60%);
  pointer-events: none;
}

.sp-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: start;
}

.lb-wrap {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  overflow: hidden;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}

.lb-head {
  padding: 16px 22px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
}

.lb-htitle {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
}

.lb-live {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-mono);
  font-size: 10px;
  color: #22c55e;
  letter-spacing: 1px;
}

.lb-ldot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #22c55e;
  animation: st-pulse 1.5s ease-in-out infinite;
}

.lb-row {
  display: grid;
  grid-template-columns: 32px 34px 1fr auto auto;
  align-items: center;
  gap: 12px;
  padding: 12px 22px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  transition: background 0.15s;
}

.lb-row:hover {
  background: rgba(255, 255, 255, 0.05);
}

.lb-row:last-child {
  border-bottom: none;
}

.lb-rn {
  font-family: var(--font-display);
  font-size: 20px;
  color: rgba(255, 255, 255, 0.4);
  text-align: center;
}

.lb-rn.g {
  background: linear-gradient(135deg, var(--accent3), #e8b800);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.lb-rn.s {
  background: linear-gradient(135deg, #C0C0C0, #888);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.lb-rn.b {
  background: linear-gradient(135deg, #CD7F32, #a05a1a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.lb-av {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--grad);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 14px;
  color: #fff;
  flex-shrink: 0;
}

.lb-name {
  font-size: 14px;
  font-weight: 600;
  color: #fff;
}

.lb-trades {
  font-family: var(--font-mono);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
}

.lb-profit {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  color: #22c55e;
}

.lb-link {
  display: block;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent);
  text-decoration: none;
  padding: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  transition: background 0.2s;
}

.lb-link:hover {
  background: rgba(var(--accent-rgb), 0.05);
  color: var(--accent);
}

/* PAYOUT CERT */
.payout-wrap {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.payout-title {
  font-family: var(--font-display);
  font-size: 28px;
  letter-spacing: 1px;
  color: #fff;
  margin-bottom: 4px;
}

.payout-sub {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.65;
  margin-bottom: 20px;
}

.payout-cert {
  background: linear-gradient(145deg, var(--bg3), var(--bg4));
  border: 1px solid rgba(var(--accent-rgb), 0.25);
  border-radius: 16px;
  padding: 24px;
  position: relative;
  overflow: hidden;
}

.payout-cert::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--grad);
}

.pc-label {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 14px;
}

.pc-date {
  font-family: var(--font-mono);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
  margin-bottom: 10px;
}

.pc-name {
  font-family: var(--font-display);
  font-size: 26px;
  letter-spacing: 2px;
  color: #fff;
  margin-bottom: 14px;
}

.pc-amount {
  font-family: var(--font-display);
  font-size: 44px;
  letter-spacing: 1px;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
  margin-bottom: 4px;
}

.pc-meta {
  font-family: var(--font-mono);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.pc-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  background: rgba(34, 197, 94, 0.1);
  border: 1px solid rgba(34, 197, 94, 0.2);
  border-radius: 6px;
  font-family: var(--font-mono);
  font-size: 10px;
  color: #22c55e;
  letter-spacing: 1px;
  margin-top: 12px;
}

.pc-badge-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #22c55e;
}

.payout-stats {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
  margin-top: 16px;
}

.ps {
  padding: 14px 12px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  text-align: center;
}

.ps-n {
  font-family: var(--font-display);
  font-size: 22px;
  letter-spacing: 1px;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
}

.ps-l {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 1.5px;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  margin-top: 3px;
}

/* INVESTOR */
.inv-bg {
  background: linear-gradient(135deg, var(--bg4) 0%, var(--accent2) 30%, var(--accent) 70%, var(--bg) 100%);
  padding: 80px 24px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.inv-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px);
  background-size: 44px 44px;
}

.inv-tag {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 16px;
  position: relative;
  z-index: 1;
}

.inv-h {
  font-family: var(--font-display);
  font-size: clamp(44px, 6vw, 70px);
  letter-spacing: 2px;
  color: #fff;
  margin-bottom: 12px;
  line-height: 0.95;
  position: relative;
  z-index: 1;
}

.inv-sub {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.7;
  max-width: 480px;
  margin: 0 auto 10px;
  position: relative;
  z-index: 1;
}

.inv-sub2 {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.65;
  max-width: 460px;
  margin: 0 auto 30px;
  position: relative;
  z-index: 1;
}

.inv-pills {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 32px;
  position: relative;
  z-index: 1;
}

.inv-pill {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 7px 14px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.75);
}

.inv-btn {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 18px;
  letter-spacing: 3px;
  color: #000;
  text-decoration: none;
  padding: 14px 40px;
  background: linear-gradient(135deg, var(--accent3), #e8b800);
  border-radius: 8px;
  transition: all 0.25s;
  box-shadow: 0 8px 28px rgba(var(--accent-rgb), 0.3);
  font-weight: 400;
  position: relative;
  z-index: 1;
}

.inv-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 40px rgba(var(--accent-rgb), 0.45);
  color: #000;
}

.inv-stats {
  display: flex;
  gap: 48px;
  justify-content: center;
  margin-top: 36px;
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
}

.is-n {
  font-family: var(--font-display);
  font-size: 38px;
  letter-spacing: 1px;
  color: #fff;
  line-height: 1;
}

.is-l {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  margin-top: 4px;
}

/* FINAL CTA */
.fcta {
  background: var(--bg);
  text-align: center;
  padding: 130px 24px;
  position: relative;
  overflow: hidden;
}

.fcta::before {
  content: "";
  position: absolute;
  top: -100px;
  left: 50%;
  transform: translateX(-50%);
  width: 900px;
  height: 900px;
  background: radial-gradient(circle, rgba(var(--accent-rgb), 0.11) 0%, rgba(var(--accent-rgb), 0.06) 40%, transparent 65%);
  pointer-events: none;
}

.fcta-wm {
  position: absolute;
  bottom: -80px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-display);
  font-size: 280px;
  letter-spacing: 12px;
  color: rgba(255, 255, 255, 0.018);
  pointer-events: none;
  white-space: nowrap;
  line-height: 1;
}

.fcta-i {
  position: relative;
  z-index: 1;
  max-width: 660px;
  margin: 0 auto;
}

.fcta-h {
  font-family: var(--font-display);
  font-size: clamp(64px, 10vw, 118px);
  letter-spacing: 3px;
  line-height: 0.88;
  margin-bottom: 20px;
}

.fcta-h span:first-child {
  color: #fff;
  display: block;
}

.fcta-h span:last-child {
  display: block;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  filter: drop-shadow(0 0 40px rgba(var(--accent-rgb), 0.25));
}

.fcta-sub {
  font-size: 15px;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.75;
  margin-bottom: 10px;
}

.fcta-sub2 {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.7;
  margin-bottom: 40px;
}

.fcta-btn {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 20px;
  letter-spacing: 3px;
  color: #000;
  text-decoration: none;
  padding: 16px 52px;
  background: var(--grad);
  border-radius: 50px;
  transition: all 0.3s;
  box-shadow: 0 10px 40px rgba(var(--accent-rgb), 0.35);
  cursor: pointer;
  border: none;
  font-weight: 400;
}

.fcta-btn:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 60px rgba(var(--accent-rgb), 0.5);
  color: #000;
}

.fcta-tag {
  margin-top: 20px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 3px;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
}

/* EXTENDED FOOTER */
.ft {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 48px;
}

.fb-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}

.fb-logo img {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1px solid rgba(var(--accent-rgb), 0.4);
}

.fb-logo span {
  font-family: var(--font-display);
  font-size: 18px;
  letter-spacing: 3px;
  color: #fff;
}

.fb-tag {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.7;
  margin-bottom: 18px;
  max-width: 240px;
}

.fb-soc {
  display: flex;
  gap: 10px;
}

.fsoc {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  transition: all 0.2s;
  text-decoration: none;
  color: rgba(255, 255, 255, 0.6);
}

.fsoc:hover {
  background: rgba(var(--accent-rgb), 0.15);
  border-color: rgba(var(--accent-rgb), 0.3);
  color: var(--accent);
}

.fc2 h4 {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  margin-bottom: 16px;
}

.fc2 ul {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.fc2 a {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
  transition: color 0.2s;
}

.fc2 a:hover {
  color: var(--accent);
}

/* full legal disclaimer above the copyright line (_PublicFooter.cshtml .fdisc): two reading columns on desktop, one on phones */
.fdisc {
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  padding: 28px 0 30px;
}

.fdisc-h {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  margin-bottom: 14px;
}

.fdisc-b {
  -moz-columns: 2;
       columns: 2;
  -moz-column-gap: 48px;
       column-gap: 48px;
}

.fdisc-b p {
  margin: 0 0 12px;
  font-size: 11.5px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.45);
  -moz-column-break-inside: avoid;
       break-inside: avoid;
  text-wrap: pretty;
}

.fdisc-b p b {
  color: rgba(255, 255, 255, 0.72);
  font-weight: 600;
}

.fdisc-b a {
  color: rgba(255, 255, 255, 0.72);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color 0.2s;
}

.fdisc-b a:hover {
  color: var(--accent);
}

@media (max-width: 767.98px) {
  .fdisc-b {
    -moz-columns: 1;
         columns: 1;
  }
}
.fbot {
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  padding-top: 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.fcopy {
  font-family: var(--font-mono);
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
  letter-spacing: 0.5px;
}

.fhash {
  font-family: var(--font-display);
  font-size: 14px;
  letter-spacing: 3px;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* MODAL — tr-modal-* prefix avoids Bootstrap collision */
.tr-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(4, 4, 10, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}

.tr-modal-overlay.open {
  opacity: 1;
  pointer-events: all;
}

.tr-modal {
  width: 100%;
  max-width: 480px;
  background: var(--bg3);
  border: 1px solid rgba(var(--accent-rgb), 0.2);
  border-radius: 24px;
  overflow: hidden;
  position: relative;
  transform: translateY(20px) scale(0.97);
  transition: transform 0.3s;
  box-shadow: 0 40px 100px rgba(0, 0, 0, 0.6), 0 0 80px rgba(var(--accent-rgb), 0.08);
}

.tr-modal-overlay.open .tr-modal {
  transform: translateY(0) scale(1);
}

.tr-modal-top {
  height: 4px;
  background: var(--grad);
}

.tr-modal-head {
  padding: 32px 36px 24px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.tr-modal-logo {
  display: flex;
  align-items: center;
  gap: 10px;
}

.tr-modal-logo img {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1.5px solid rgba(var(--accent-rgb), 0.5);
  box-shadow: 0 0 12px rgba(var(--accent-rgb), 0.2);
}

.tr-modal-logo-text {
  font-family: var(--font-display);
  font-size: 18px;
  letter-spacing: 3px;
  color: #fff;
}

.tr-modal-close {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.4);
  font-size: 18px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  line-height: 1;
}

.tr-modal-close:hover {
  background: rgba(var(--accent-rgb), 0.1);
  border-color: rgba(var(--accent-rgb), 0.3);
  color: #fff;
}

.tr-modal-body {
  padding: 28px 36px 36px;
}

.tr-modal-title {
  font-family: var(--font-display);
  font-size: 34px;
  letter-spacing: 2px;
  color: #fff;
  margin-bottom: 6px;
  line-height: 1;
}

.tr-modal-sub {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.6;
  margin-bottom: 28px;
}

.tr-modal-sub strong {
  color: var(--accent);
  font-weight: 600;
}

.tr-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 14px;
}

.tr-form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 14px;
}

.tr-form-group label {
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
}

.tr-form-input {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  padding: 12px 16px;
  font-family: var(--font-body), sans-serif;
  font-size: 14px;
  color: #fff;
  outline: none;
  transition: all 0.25s;
  width: 100%;
}

.tr-form-input::-moz-placeholder {
  color: rgba(255, 255, 255, 0.2);
}

.tr-form-input::placeholder {
  color: rgba(255, 255, 255, 0.2);
}

.tr-form-input:focus {
  border-color: rgba(var(--accent-rgb), 0.5);
  background: rgba(var(--accent-rgb), 0.04);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.1);
}

.tr-form-select {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  padding: 12px 16px;
  font-family: var(--font-body), sans-serif;
  font-size: 14px;
  color: #fff;
  outline: none;
  transition: all 0.25s;
  width: 100%;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='rgba(255,255,255,0.3)' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
}

.tr-form-select:focus {
  border-color: rgba(var(--accent-rgb), 0.5);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.1);
}

.tr-form-select option {
  background: #111;
  color: #fff;
}

.tr-pass-wrap {
  position: relative;
}

.tr-pass-toggle {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  font-size: 14px;
  padding: 0;
  transition: color 0.2s;
}

.tr-pass-toggle:hover {
  color: #fff;
}

.tr-form-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 18px 0;
}

.tr-form-divider::before, .tr-form-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: rgba(255, 255, 255, 0.08);
}

.tr-form-divider span {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  color: rgba(255, 255, 255, 0.2);
  text-transform: uppercase;
  white-space: nowrap;
}

.tr-form-terms {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.6;
  margin-bottom: 20px;
}

.tr-form-terms a {
  color: var(--accent);
  text-decoration: none;
}

.tr-form-terms a:hover {
  text-decoration: underline;
}

.tr-modal-submit {
  width: 100%;
  font-family: var(--font-display);
  font-size: 19px;
  letter-spacing: 3px;
  color: #000;
  border: none;
  cursor: pointer;
  padding: 15px 20px;
  border-radius: 12px;
  background: var(--grad);
  transition: all 0.25s;
  box-shadow: 0 6px 24px rgba(var(--accent-rgb), 0.3);
  font-weight: 400;
}

.tr-modal-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 36px rgba(var(--accent-rgb), 0.45);
}

.tr-modal-login {
  text-align: center;
  margin-top: 18px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.4);
}

.tr-modal-login a {
  color: var(--accent);
  text-decoration: none;
  font-weight: 600;
}

.tr-modal-login a:hover {
  text-decoration: underline;
}

/* ============================================================
   HOME (INDEX) PAGE
   ============================================================ */
.tr-ticker {
  width: 100%;
  overflow: hidden;
  background: var(--bg2);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 10px 0;
  position: relative;
  z-index: 1;
}

.tr-ticker-inner {
  display: flex;
  gap: 40px;
  width: -moz-max-content;
  width: max-content;
  animation: tr-ticker-scroll 40s linear infinite;
}

.tr-ticker-item {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 1px;
}

.tr-ticker-sym {
  color: var(--text2);
}

.tr-ticker-up {
  color: var(--green);
}

.tr-ticker-dn {
  color: var(--red);
}

.tr-ticker-sep {
  color: var(--border-h);
}

@keyframes tr-ticker-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
.hp-how-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  position: relative;
}

.hp-how-step {
  text-align: center;
  padding: 0 16px;
  position: relative;
}

.hp-how-step-line {
  position: absolute;
  top: 27px;
  left: calc(50% + 38px);
  right: -16px;
  height: 1px;
  background: linear-gradient(90deg, var(--accent), transparent);
}

.hp-step-num {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--grad);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 24px;
  color: #000;
  margin: 0 auto 16px;
  position: relative;
  z-index: 1;
  box-shadow: 0 0 20px rgba(139, 92, 246, 0.4);
}

.hp-challenge-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 32px;
  position: relative;
  overflow: hidden;
  transition: border-color 0.2s, transform 0.2s;
  height: 100%;
}

.hp-challenge-card:hover {
  border-color: var(--border-h);
  transform: translateY(-4px);
}

.hp-challenge-card.featured {
  border-color: var(--border-h);
}

.hp-challenge-card.featured::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(145deg, var(--accent2), transparent 50%);
  opacity: 0.06;
  pointer-events: none;
}

.hp-orbit-container {
  position: relative;
  width: 260px;
  height: 260px;
  margin: 0 auto;
}

.hp-orbit-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 86px;
  height: 86px;
  border-radius: 50%;
  background: var(--grad);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 20px;
  color: #000;
  box-shadow: 0 0 40px rgba(139, 92, 246, 0.5);
  z-index: 2;
}

.hp-orbit-ring {
  position: absolute;
  top: 50%;
  left: 50%;
  border: 1px dashed var(--border-h);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.hp-orbit-ring-1 {
  width: 154px;
  height: 154px;
  animation: hp-orbit-spin 8s linear infinite;
}

.hp-orbit-ring-2 {
  width: 240px;
  height: 240px;
  animation: hp-orbit-spin 14s linear infinite reverse;
}

.hp-orbit-dot {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--accent);
  top: -5px;
  left: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 8px var(--accent);
}

@keyframes hp-orbit-spin {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
.hp-lb-row {
  display: grid;
  grid-template-columns: 32px 1fr 80px 80px;
  gap: 12px;
  align-items: center;
  padding: 10px 14px;
  border-radius: 10px;
  background: var(--w05);
  border: 1px solid var(--border);
  margin-bottom: 6px;
  transition: border-color 0.2s;
}

.hp-lb-row:hover {
  border-color: var(--border-h);
}

.hp-lb-row.top {
  border-color: var(--border-h);
  background: rgba(139, 92, 246, 0.07);
}

@media (max-width: 767px) {
  .hp-how-steps {
    grid-template-columns: 1fr 1fr;
  }
  .hp-how-step-line {
    display: none;
  }
  .hp-orbit-container {
    width: 200px;
    height: 200px;
  }
  .hp-orbit-ring-2 {
    width: 184px;
    height: 184px;
  }
  .hp-orbit-center {
    width: 68px;
    height: 68px;
    font-size: 16px;
  }
}
@media (max-width: 479px) {
  .hp-how-steps {
    grid-template-columns: 1fr;
  }
}
/* ============================================================
   PLATFORM PAGE
   ============================================================ */
.pl-hero {
  padding: 130px 0 60px;
  text-align: center;
}

.pl-hero-title {
  font-family: var(--font-display);
  font-size: clamp(60px, 10vw, 110px);
  line-height: 0.88;
  letter-spacing: 3px;
  color: var(--text);
  margin-bottom: 16px;
}

.pl-hero-title em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.pl-intro-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}

.pl-intro-quote {
  background: var(--card-bg);
  border: 1px solid var(--border-h);
  border-radius: 16px;
  padding: 28px;
  position: relative;
  overflow: hidden;
  margin-top: 28px;
}

.pl-intro-quote::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--grad);
}

.pl-intro-block {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px;
  border-radius: 14px;
  background: var(--w05);
  border: 1px solid var(--border);
  margin-bottom: 16px;
  transition: border-color 0.2s, transform 0.2s;
}

.pl-intro-block:hover {
  border-color: var(--border-h);
  transform: translateX(4px);
}

.pl-intro-block-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: var(--grad);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}

.pl-intro-block-title {
  font-family: var(--font-display);
  font-size: 19px;
  letter-spacing: 1px;
  color: var(--text);
  margin-bottom: 6px;
}

.pl-intro-block-desc {
  font-size: 13px;
  color: var(--text3);
  line-height: 1.7;
}

.pl-feat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.pl-fc {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 28px 24px;
  position: relative;
  overflow: hidden;
  transition: border-color 0.2s, transform 0.2s;
  cursor: default;
}

.pl-fc:hover {
  border-color: var(--border-h);
  transform: translateY(-3px);
}

.pl-fc-bar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--grad);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s ease;
}

.pl-fc:hover .pl-fc-bar {
  transform: scaleX(1);
}

.pl-fc-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--w05);
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  margin-bottom: 18px;
}

.pl-fc-num {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  color: var(--text3);
  text-transform: uppercase;
  margin-bottom: 6px;
}

.pl-fc-title {
  font-family: var(--font-display);
  font-size: 20px;
  letter-spacing: 1px;
  color: var(--text);
  margin-bottom: 8px;
}

.pl-fc-desc {
  font-size: 12px;
  color: var(--text2);
  line-height: 1.6;
  margin-bottom: 10px;
}

.pl-fc-detail {
  font-size: 11px;
  color: var(--text3);
  line-height: 1.6;
}

.pl-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

.pl-step {
  text-align: center;
  padding: 0 18px;
  position: relative;
}

.pl-step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 27px;
  left: calc(50% + 32px);
  right: -18px;
  height: 2px;
  background: linear-gradient(90deg, var(--accent), transparent);
}

.pl-step-n {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 22px;
  color: #fff;
  margin: 0 auto 20px;
  border: 2px solid;
  position: relative;
  z-index: 1;
}

.pl-step-title {
  font-family: var(--font-display);
  font-size: 19px;
  letter-spacing: 1px;
  color: var(--text);
  margin-bottom: 10px;
}

.pl-step-desc {
  font-size: 12px;
  color: var(--text3);
  line-height: 1.8;
}

@media (max-width: 991px) {
  .pl-intro-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}
@media (max-width: 767px) {
  .pl-feat-grid {
    grid-template-columns: 1fr 1fr;
  }
  .pl-steps {
    grid-template-columns: 1fr 1fr;
  }
  .pl-step:not(:last-child)::after {
    display: none;
  }
}
@media (max-width: 479px) {
  .pl-feat-grid {
    grid-template-columns: 1fr;
  }
  .pl-steps {
    grid-template-columns: 1fr;
  }
}
/* ============================================================
   GAMIFIED TRADING PAGE
   ============================================================ */
.ch-hero {
  padding: 130px 0 60px;
  text-align: center;
}

.ch-hero-title {
  font-family: var(--font-display);
  font-size: clamp(56px, 10vw, 110px);
  line-height: 0.88;
  letter-spacing: 3px;
  color: var(--text);
  margin-bottom: 16px;
}

.ch-hero-title em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.ch-chal-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.ch-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 36px;
  position: relative;
  overflow: hidden;
  height: 100%;
}

.ch-card.featured {
  border-color: var(--border-h);
}

.ch-card.featured::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(145deg, var(--accent2), transparent 50%);
  opacity: 0.06;
  pointer-events: none;
}

.ch-card-top {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--grad);
}

.ch-check {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--text2);
  margin-bottom: 10px;
}

.ch-check svg {
  flex-shrink: 0;
}

.ch-check.dim {
  color: var(--text3);
}

.ch-orb-wrap {
  position: relative;
  width: 280px;
  height: 280px;
  margin: 0 auto;
}

.ch-orb1 {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 160px;
  height: 160px;
  border: 1px dashed var(--border-h);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: ch-spin 8s linear infinite;
}

.ch-orb2 {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 260px;
  height: 260px;
  border: 1px dashed var(--border-h);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: ch-spin 14s linear infinite reverse;
}

.ch-orb-dot {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--accent);
  top: -5px;
  left: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 10px var(--accent);
}

.ch-orb-dot-gold {
  background: var(--gold);
  box-shadow: 0 0 10px var(--gold);
}

.ch-orb-c {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: var(--grad);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 2;
  box-shadow: 0 0 40px rgba(139, 92, 246, 0.5);
}

.ch-orb-c-label {
  font-family: var(--font-display);
  font-size: 20px;
  color: #000;
  letter-spacing: 1px;
  line-height: 1;
}

.ch-orb-c-sub {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 2px;
  color: rgba(0, 0, 0, 0.6);
  text-transform: uppercase;
  margin-top: 4px;
}

.ch-tok-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.ch-tstat {
  background: var(--w05);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 20px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.ch-tstat::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--grad);
}

.ch-tstat-value {
  font-family: var(--font-display);
  font-size: 28px;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 4px;
}

.ch-tstat-label {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 2px;
  color: var(--text3);
  text-transform: uppercase;
}

@keyframes ch-spin {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
.ch-gam-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.ch-gc {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 28px 20px;
  text-align: center;
  position: relative;
  overflow: hidden;
  transition: border-color 0.2s, transform 0.2s;
  cursor: default;
}

.ch-gc:hover {
  border-color: var(--border-h);
  transform: translateY(-4px);
}

.ch-gc-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(145deg, var(--accent2), transparent);
  opacity: 0;
  transition: opacity 0.3s;
  pointer-events: none;
}

.ch-gc:hover .ch-gc-overlay {
  opacity: 0.1;
}

.ch-lb-row {
  display: grid;
  grid-template-columns: 32px 1fr 60px 80px 80px;
  gap: 10px;
  align-items: center;
  padding: 10px 14px;
  border-radius: 10px;
  background: var(--w05);
  border: 1px solid var(--border);
  margin-bottom: 6px;
  transition: border-color 0.2s;
}

.ch-lb-row:hover {
  border-color: var(--border-h);
}

.ch-lb-row.gold {
  border-color: rgba(245, 197, 24, 0.4);
  background: rgba(245, 197, 24, 0.06);
}

.ch-lb-row.silver {
  border-color: rgba(200, 200, 200, 0.3);
  background: rgba(200, 200, 200, 0.04);
}

.ch-lb-row.bronze {
  border-color: rgba(205, 127, 50, 0.3);
  background: rgba(205, 127, 50, 0.04);
}

.ch-lb-header {
  display: grid;
  grid-template-columns: 32px 1fr 60px 80px 80px;
  gap: 10px;
  padding: 6px 14px;
  margin-bottom: 6px;
}

.ch-lb-trades {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text2);
}

.ch-lb-silver {
  font-family: var(--font-display);
  font-size: 16px;
  color: #C0C0C0;
}

.ch-lb-bronze {
  font-family: var(--font-display);
  font-size: 16px;
  color: #CD7F32;
}

.ch-cert {
  background: var(--card-bg);
  border: 1px solid var(--border-h);
  border-radius: 20px;
  padding: 30px;
  position: relative;
  overflow: hidden;
}

.ch-cert::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--grad);
}

.ch-cert-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  border-radius: 20px;
  background: rgba(34, 197, 94, 0.12);
  border: 1px solid rgba(34, 197, 94, 0.3);
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--green);
}

.ch-cert-label {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--text3);
  margin-bottom: 20px;
}

.ch-cert-date {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  color: var(--text3);
  text-transform: uppercase;
  margin-bottom: 10px;
}

.ch-cert-trader {
  font-family: var(--font-display);
  font-size: 28px;
  letter-spacing: 2px;
  color: var(--text);
  margin-bottom: 6px;
}

.ch-cert-amount {
  font-family: var(--font-display);
  font-size: 56px;
  letter-spacing: 1px;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
  margin-bottom: 16px;
}

.ch-cert-meta {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
  margin-bottom: 20px;
}

.ch-cert-meta-item {
  text-align: center;
}

.ch-cert-meta-label {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 1.5px;
  color: var(--text3);
  text-transform: uppercase;
  margin-bottom: 4px;
}

.ch-cert-meta-value {
  font-family: var(--font-display);
  font-size: 14px;
  letter-spacing: 1px;
  color: var(--text);
}

.ch-cert-meta-value.green {
  color: var(--green);
}

.ch-cert-stats {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
  margin-bottom: 22px;
  text-align: center;
}

.ch-cert-stat-value {
  font-family: var(--font-display);
  font-size: 22px;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.ch-cert-stat-label {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 1.5px;
  color: var(--text3);
  text-transform: uppercase;
  margin-top: 2px;
}

@media (max-width: 991px) {
  .ch-chal-grid {
    grid-template-columns: 1fr;
  }
  .ch-gam-grid {
    grid-template-columns: 1fr 1fr;
  }
  .ch-lb-row, .ch-lb-header {
    grid-template-columns: 28px 1fr 60px 70px;
    font-size: 11px;
  }
  .ch-lb-row .col-trades {
    display: none;
  }
}
@media (max-width: 767px) {
  .ch-gam-grid {
    grid-template-columns: 1fr 1fr;
  }
  .ch-orb-wrap {
    width: 220px;
    height: 220px;
  }
  .ch-orb2 {
    width: 210px;
    height: 210px;
  }
}
@media (max-width: 479px) {
  .ch-gam-grid {
    grid-template-columns: 1fr;
  }
}
/* ============================================================
   PARTNERSHIPS PAGE
   ============================================================ */
.af-hero {
  padding: 130px 0 80px;
  text-align: center;
}

.af-hero-title {
  font-family: var(--font-display);
  font-size: clamp(58px, 10vw, 110px);
  line-height: 0.88;
  letter-spacing: 3px;
  color: var(--text);
  margin-bottom: 16px;
}

.af-hero-title em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.af-step-title {
  font-family: var(--font-display);
  font-size: 20px;
  letter-spacing: 1px;
  color: var(--text);
  margin-bottom: 10px;
}

.af-step-desc {
  font-size: 13px;
  color: var(--text3);
  line-height: 1.8;
}

.af-tier-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 20px;
}

.af-tier-label {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
  margin-bottom: 8px;
}

.af-tier-label-accent {
  color: var(--accent);
}

.af-tier-rate {
  font-family: var(--font-display);
  font-size: 50px;
  letter-spacing: 1px;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
}

.af-tier-rate-sub {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 1px;
  color: var(--text3);
  margin-top: 6px;
}

.af-tier-desc {
  font-size: 13px;
  color: var(--text2);
  line-height: 1.7;
  margin-bottom: 24px;
}

.af-tier-checks {
  margin-bottom: 28px;
}

.af-tier-btn {
  width: 100%;
  display: block;
  text-align: center;
  padding: 12px 20px;
  text-decoration: none;
}

.af-cta-section {
  padding: 100px 0;
  background: var(--bg2);
  text-align: center;
  position: relative;
  overflow: hidden;
}

.af-tier-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.af-tier {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 32px;
  position: relative;
  overflow: hidden;
  height: 100%;
  transition: border-color 0.2s, transform 0.2s;
}

.af-tier:hover {
  border-color: var(--border-h);
  transform: translateY(-4px);
}

.af-tier.featured {
  border-color: var(--border-h);
}

.af-tier-top {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--grad);
}

.af-check {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--text2);
  margin-bottom: 10px;
}

.af-check svg {
  flex-shrink: 0;
}

.af-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.af-step {
  text-align: center;
  padding: 32px 20px;
  background: var(--w05);
  border: 1px solid var(--border);
  border-radius: 16px;
  position: relative;
}

.af-step-n {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--grad);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 22px;
  color: #000;
  margin: 0 auto 18px;
}

.af-stat {
  text-align: center;
  padding: 20px;
  border-right: 1px solid var(--border);
}

.af-stat:last-child {
  border-right: none;
}

@media (max-width: 991px) {
  .af-tier-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767px) {
  .af-steps {
    grid-template-columns: 1fr;
  }
}
/* RESPONSIVE — marketing widgets */
@media (max-width: 900px) {
  .intro-grid, .how-intro, .chal-intro, .tok-layout, .gam-intro, .sp-layout, .ft {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .feat-grid, .gam-grid {
    grid-template-columns: 1fr 1fr;
  }
  .steps {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
  .steps::before {
    display: none;
  }
  .chal-grid {
    grid-template-columns: 1fr;
  }
  .tr-form-row {
    grid-template-columns: 1fr;
  }
  .payout-stats {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 600px) {
  .hero-h1 {
    font-size: clamp(60px, 15vw, 100px);
  }
  .sh2 {
    font-size: clamp(40px, 10vw, 60px);
  }
  .sec {
    padding: 70px 20px;
  }
  .cc {
    padding: 28px 22px;
  }
  .hero-stats {
    flex-direction: column;
    border-radius: 0;
  }
  .hstat {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }
  .hstat:last-child {
    border-bottom: none;
  }
  .feat-grid, .gam-grid {
    grid-template-columns: 1fr;
  }
  .ft {
    grid-template-columns: 1fr 1fr;
  }
}
/* ══ Home hero chain-mesh animation (ported from the Claude Design artifact c421d950) ══
   Markup lives in Areas/Public/Views/Front/_HeroChainMesh.cshtml (inline styles kept
   verbatim from the design per the mockup-port rule). Theme-aware via --accent-rgb /
   --accent3, added to the three theme blocks below. */
:root {
  --accent-rgb: 139, 92, 246;
  --accent3: #A78BFA;
}

html[data-theme=black] {
  --accent-rgb: 217, 26, 173;
  --accent3: #E83DC0;
}

html[data-theme=blue] {
  --accent-rgb: 79, 142, 247;
  --accent3: #93BBFD;
}

.tr-mesh-wrap {
  /* The 1200×760 design canvas has dead margins; show only the content band
     (source rows 140→610 = 470px) and render it at 80% of the design size. */
  --mesh-s: .8;
  --mesh-crop-top: 140px;
  --mesh-visible: 470px;
  position: relative;
  width: 100%;
  max-width: calc(1200px * var(--mesh-s));
  margin: 10px auto 0;
  height: calc(var(--mesh-visible) * var(--mesh-s));
  overflow: hidden;
}

@media (max-width: 1249px) {
  .tr-mesh-wrap {
    --mesh-s: .64;
  }
}
@media (max-width: 991px) {
  .tr-mesh-wrap {
    --mesh-s: .50;
  }
}
@media (max-width: 767px) {
  .tr-mesh-wrap {
    --mesh-s: .36;
  }
}
@media (max-width: 575px) {
  .tr-mesh-wrap {
    --mesh-s: .24;
  }
}
.tr-mesh {
  --cycle: 16s;
  position: absolute;
  left: 50%;
  top: 0;
  width: 1200px;
  height: 760px;
  transform: translate(-50%, calc(var(--mesh-crop-top) * var(--mesh-s) * -1)) scale(var(--mesh-s));
  transform-origin: top center;
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .tr-mesh, .tr-mesh * {
    animation: none !important;
  }
}
/* mesh keyframes (verbatim from the design) */
@keyframes ringStep {
  0%, 20% {
    transform: rotate(0deg);
  }
  25%, 45% {
    transform: rotate(90deg);
  }
  50%, 70% {
    transform: rotate(180deg);
  }
  75%, 95% {
    transform: rotate(270deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes wave {
  0% {
    transform: scale(0.25);
    opacity: 0.7;
  }
  100% {
    transform: scale(1.15);
    opacity: 0;
  }
}
@keyframes pulsePath {
  0% {
    offset-distance: 0%;
    opacity: 0;
  }
  1.5% {
    opacity: 1;
  }
  9% {
    offset-distance: 100%;
    opacity: 1;
  }
  10.5%, 100% {
    offset-distance: 100%;
    opacity: 0;
  }
}
@keyframes tokenBack {
  0%, 3% {
    offset-distance: 100%;
    opacity: 0;
  }
  4.5% {
    opacity: 1;
  }
  17% {
    offset-distance: 0%;
    opacity: 1;
  }
  18.5%, 100% {
    offset-distance: 0%;
    opacity: 0;
  }
}
@keyframes tokenBurst {
  0%, 16.5% {
    transform: scale(0.72);
    opacity: 0;
  }
  17% {
    transform: scale(0.72);
    opacity: 0.95;
  }
  29%, 100% {
    transform: scale(1.5);
    opacity: 0;
  }
}
@keyframes starsOrbit {
  to {
    transform: rotate(360deg);
  }
}
@keyframes starsOrbitInv {
  to {
    transform: rotate(-360deg);
  }
}
@keyframes nodeGlow {
  0%, 8.5% {
    opacity: 0.55;
    box-shadow: 0 0 0 0 rgba(var(--accent-rgb), 0);
  }
  10% {
    opacity: 1;
    box-shadow: 0 0 28px 8px rgba(var(--accent-rgb), 0.75), 0 0 60px 20px rgba(var(--accent-rgb), 0.3);
  }
  22% {
    opacity: 1;
    box-shadow: 0 0 22px 6px rgba(var(--accent-rgb), 0.6), 0 0 50px 16px rgba(var(--accent-rgb), 0.22);
  }
  30%, 100% {
    opacity: 0.55;
    box-shadow: 0 0 0 0 rgba(var(--accent-rgb), 0);
  }
}
@keyframes lineLive {
  0%, 8.5% {
    opacity: 0.65;
  }
  10%, 22% {
    opacity: 1;
  }
  30%, 100% {
    opacity: 0.65;
  }
}
@keyframes titleLive {
  0%, 8.5% {
    opacity: 0.4;
    text-shadow: none;
  }
  10%, 30% {
    opacity: 1;
    text-shadow: 0 0 6px rgba(var(--accent-rgb), 0.9), 0 0 18px rgba(var(--accent-rgb), 0.55), 0 0 40px rgba(var(--accent-rgb), 0.3);
  }
  36%, 100% {
    opacity: 0.4;
    text-shadow: none;
  }
}
@keyframes chartDraw {
  0%, 12% {
    stroke-dashoffset: 300;
  }
  26%, 100% {
    stroke-dashoffset: 0;
  }
}
@keyframes chartFill {
  0%, 12% {
    opacity: 0;
  }
  26%, 100% {
    opacity: 1;
  }
}
@keyframes chartDot {
  0%, 25% {
    opacity: 0;
  }
  26%, 100% {
    opacity: 1;
  }
}
@keyframes cb0 {
  0%, 10.99% {
    y: 19.7px;
    height: 1.2px;
    opacity: 0;
  }
  11.00% {
    y: 19.7px;
    height: 1.2px;
    opacity: 1;
  }
  11.43% {
    y: 19.7px;
    height: 2.3px;
    opacity: 1;
  }
  11.87% {
    y: 17.4px;
    height: 2.3px;
    opacity: 1;
  }
  12.30% {
    y: 19.7px;
    height: 4.6px;
    opacity: 1;
  }
  12.73% {
    y: 19.7px;
    height: 6.9px;
    opacity: 1;
  }
  13.17% {
    y: 19.7px;
    height: 2.3px;
    opacity: 1;
  }
  13.60% {
    y: 19.7px;
    height: 4.6px;
    opacity: 1;
  }
  28% {
    y: 19.7px;
    height: 4.6px;
    opacity: 1;
  }
  32%, 100% {
    y: 19.7px;
    height: 4.6px;
    opacity: 0;
  }
}
@keyframes ch0 {
  0%, 10.99% {
    y: 19.7px;
    height: 0px;
    opacity: 0;
  }
  11.00% {
    y: 19.7px;
    height: 0px;
    opacity: 1;
  }
  11.43% {
    y: 19.7px;
    height: 0px;
    opacity: 1;
  }
  11.87% {
    y: 17.4px;
    height: 0px;
    opacity: 1;
  }
  12.30% {
    y: 17.4px;
    height: 2.3px;
    opacity: 1;
  }
  12.73% {
    y: 17.4px;
    height: 2.3px;
    opacity: 1;
  }
  13.17% {
    y: 17.4px;
    height: 2.3px;
    opacity: 1;
  }
  13.60% {
    y: 17.4px;
    height: 2.3px;
    opacity: 1;
  }
  28% {
    y: 17.4px;
    height: 2.3px;
    opacity: 1;
  }
  32%, 100% {
    y: 17.4px;
    height: 2.3px;
    opacity: 0;
  }
}
@keyframes cl0 {
  0%, 10.99% {
    y: 19.7px;
    height: 0px;
    opacity: 0;
  }
  11.00% {
    y: 19.7px;
    height: 0px;
    opacity: 1;
  }
  11.43% {
    y: 22px;
    height: 0px;
    opacity: 1;
  }
  11.87% {
    y: 19.7px;
    height: 2.3px;
    opacity: 1;
  }
  12.30% {
    y: 24.3px;
    height: 0px;
    opacity: 1;
  }
  12.73% {
    y: 26.6px;
    height: 0px;
    opacity: 1;
  }
  13.17% {
    y: 22px;
    height: 4.6px;
    opacity: 1;
  }
  13.60% {
    y: 24.3px;
    height: 2.3px;
    opacity: 1;
  }
  28% {
    y: 24.3px;
    height: 2.3px;
    opacity: 1;
  }
  32%, 100% {
    y: 24.3px;
    height: 2.3px;
    opacity: 0;
  }
}
@keyframes cb1 {
  0%, 13.59% {
    y: 24.3px;
    height: 1.2px;
    opacity: 0;
  }
  13.60% {
    y: 24.3px;
    height: 1.2px;
    opacity: 1;
  }
  14.03% {
    y: 19.7px;
    height: 4.6px;
    opacity: 1;
  }
  14.47% {
    y: 22px;
    height: 2.3px;
    opacity: 1;
  }
  14.90% {
    y: 15.1px;
    height: 9.2px;
    opacity: 1;
  }
  15.33% {
    y: 17.4px;
    height: 6.9px;
    opacity: 1;
  }
  15.77% {
    y: 12.8px;
    height: 11.5px;
    opacity: 1;
  }
  16.20% {
    y: 15.1px;
    height: 9.2px;
    opacity: 1;
  }
  28% {
    y: 15.1px;
    height: 9.2px;
    opacity: 1;
  }
  32%, 100% {
    y: 15.1px;
    height: 9.2px;
    opacity: 0;
  }
}
@keyframes ch1 {
  0%, 13.59% {
    y: 24.3px;
    height: 0px;
    opacity: 0;
  }
  13.60% {
    y: 24.3px;
    height: 0px;
    opacity: 1;
  }
  14.03% {
    y: 19.7px;
    height: 0px;
    opacity: 1;
  }
  14.47% {
    y: 19.7px;
    height: 2.3px;
    opacity: 1;
  }
  14.90% {
    y: 15.1px;
    height: 0px;
    opacity: 1;
  }
  15.33% {
    y: 15.1px;
    height: 2.3px;
    opacity: 1;
  }
  15.77% {
    y: 12.8px;
    height: 0px;
    opacity: 1;
  }
  16.20% {
    y: 12.8px;
    height: 2.3px;
    opacity: 1;
  }
  28% {
    y: 12.8px;
    height: 2.3px;
    opacity: 1;
  }
  32%, 100% {
    y: 12.8px;
    height: 2.3px;
    opacity: 0;
  }
}
@keyframes cl1 {
  0%, 13.59% {
    y: 24.3px;
    height: 0px;
    opacity: 0;
  }
  13.60% {
    y: 24.3px;
    height: 0px;
    opacity: 1;
  }
  14.03% {
    y: 24.3px;
    height: 0px;
    opacity: 1;
  }
  14.47% {
    y: 24.3px;
    height: 0px;
    opacity: 1;
  }
  14.90% {
    y: 24.3px;
    height: 0px;
    opacity: 1;
  }
  15.33% {
    y: 24.3px;
    height: 0px;
    opacity: 1;
  }
  15.77% {
    y: 24.3px;
    height: 0px;
    opacity: 1;
  }
  16.20% {
    y: 24.3px;
    height: 0px;
    opacity: 1;
  }
  28% {
    y: 24.3px;
    height: 0px;
    opacity: 1;
  }
  32%, 100% {
    y: 24.3px;
    height: 0px;
    opacity: 0;
  }
}
@keyframes cb2 {
  0%, 16.19% {
    y: 15.1px;
    height: 1.2px;
    opacity: 0;
  }
  16.20% {
    y: 15.1px;
    height: 1.2px;
    opacity: 1;
  }
  16.63% {
    y: 15.1px;
    height: 2.3px;
    opacity: 1;
  }
  17.07% {
    y: 12.8px;
    height: 2.3px;
    opacity: 1;
  }
  17.50% {
    y: 15.1px;
    height: 4.6px;
    opacity: 1;
  }
  17.93% {
    y: 15.1px;
    height: 6.9px;
    opacity: 1;
  }
  18.37% {
    y: 15.1px;
    height: 9.2px;
    opacity: 1;
  }
  18.80% {
    y: 15.1px;
    height: 4.6px;
    opacity: 1;
  }
  28% {
    y: 15.1px;
    height: 4.6px;
    opacity: 1;
  }
  32%, 100% {
    y: 15.1px;
    height: 4.6px;
    opacity: 0;
  }
}
@keyframes ch2 {
  0%, 16.19% {
    y: 15.1px;
    height: 0px;
    opacity: 0;
  }
  16.20% {
    y: 15.1px;
    height: 0px;
    opacity: 1;
  }
  16.63% {
    y: 15.1px;
    height: 0px;
    opacity: 1;
  }
  17.07% {
    y: 12.8px;
    height: 0px;
    opacity: 1;
  }
  17.50% {
    y: 12.8px;
    height: 2.3px;
    opacity: 1;
  }
  17.93% {
    y: 12.8px;
    height: 2.3px;
    opacity: 1;
  }
  18.37% {
    y: 12.8px;
    height: 2.3px;
    opacity: 1;
  }
  18.80% {
    y: 12.8px;
    height: 2.3px;
    opacity: 1;
  }
  28% {
    y: 12.8px;
    height: 2.3px;
    opacity: 1;
  }
  32%, 100% {
    y: 12.8px;
    height: 2.3px;
    opacity: 0;
  }
}
@keyframes cl2 {
  0%, 16.19% {
    y: 15.1px;
    height: 0px;
    opacity: 0;
  }
  16.20% {
    y: 15.1px;
    height: 0px;
    opacity: 1;
  }
  16.63% {
    y: 17.4px;
    height: 0px;
    opacity: 1;
  }
  17.07% {
    y: 15.1px;
    height: 2.3px;
    opacity: 1;
  }
  17.50% {
    y: 19.7px;
    height: 0px;
    opacity: 1;
  }
  17.93% {
    y: 22px;
    height: 0px;
    opacity: 1;
  }
  18.37% {
    y: 24.3px;
    height: 0px;
    opacity: 1;
  }
  18.80% {
    y: 19.7px;
    height: 4.6px;
    opacity: 1;
  }
  28% {
    y: 19.7px;
    height: 4.6px;
    opacity: 1;
  }
  32%, 100% {
    y: 19.7px;
    height: 4.6px;
    opacity: 0;
  }
}
@keyframes cb3 {
  0%, 18.79% {
    y: 19.7px;
    height: 1.2px;
    opacity: 0;
  }
  18.80% {
    y: 19.7px;
    height: 1.2px;
    opacity: 1;
  }
  19.23% {
    y: 15.1px;
    height: 4.6px;
    opacity: 1;
  }
  19.67% {
    y: 10.5px;
    height: 9.2px;
    opacity: 1;
  }
  20.10% {
    y: 12.8px;
    height: 6.9px;
    opacity: 1;
  }
  20.53% {
    y: 8.2px;
    height: 11.5px;
    opacity: 1;
  }
  20.97% {
    y: 10.5px;
    height: 9.2px;
    opacity: 1;
  }
  21.40% {
    y: 5.9px;
    height: 13.8px;
    opacity: 1;
  }
  28% {
    y: 5.9px;
    height: 13.8px;
    opacity: 1;
  }
  32%, 100% {
    y: 5.9px;
    height: 13.8px;
    opacity: 0;
  }
}
@keyframes ch3 {
  0%, 18.79% {
    y: 19.7px;
    height: 0px;
    opacity: 0;
  }
  18.80% {
    y: 19.7px;
    height: 0px;
    opacity: 1;
  }
  19.23% {
    y: 15.1px;
    height: 0px;
    opacity: 1;
  }
  19.67% {
    y: 10.5px;
    height: 0px;
    opacity: 1;
  }
  20.10% {
    y: 10.5px;
    height: 2.3px;
    opacity: 1;
  }
  20.53% {
    y: 8.2px;
    height: 0px;
    opacity: 1;
  }
  20.97% {
    y: 8.2px;
    height: 2.3px;
    opacity: 1;
  }
  21.40% {
    y: 5.9px;
    height: 0px;
    opacity: 1;
  }
  28% {
    y: 5.9px;
    height: 0px;
    opacity: 1;
  }
  32%, 100% {
    y: 5.9px;
    height: 0px;
    opacity: 0;
  }
}
@keyframes cl3 {
  0%, 18.79% {
    y: 19.7px;
    height: 0px;
    opacity: 0;
  }
  18.80% {
    y: 19.7px;
    height: 0px;
    opacity: 1;
  }
  19.23% {
    y: 19.7px;
    height: 0px;
    opacity: 1;
  }
  19.67% {
    y: 19.7px;
    height: 0px;
    opacity: 1;
  }
  20.10% {
    y: 19.7px;
    height: 0px;
    opacity: 1;
  }
  20.53% {
    y: 19.7px;
    height: 0px;
    opacity: 1;
  }
  20.97% {
    y: 19.7px;
    height: 0px;
    opacity: 1;
  }
  21.40% {
    y: 19.7px;
    height: 0px;
    opacity: 1;
  }
  28% {
    y: 19.7px;
    height: 0px;
    opacity: 1;
  }
  32%, 100% {
    y: 19.7px;
    height: 0px;
    opacity: 0;
  }
}
@keyframes cb4 {
  0%, 21.39% {
    y: 5.9px;
    height: 1.2px;
    opacity: 0;
  }
  21.40% {
    y: 5.9px;
    height: 1.2px;
    opacity: 1;
  }
  21.83% {
    y: 5.9px;
    height: 2.3px;
    opacity: 1;
  }
  22.27% {
    y: 5.9px;
    height: 6.9px;
    opacity: 1;
  }
  22.70% {
    y: 5.9px;
    height: 4.6px;
    opacity: 1;
  }
  23.13% {
    y: 5.9px;
    height: 9.2px;
    opacity: 1;
  }
  23.57% {
    y: 5.9px;
    height: 11.5px;
    opacity: 1;
  }
  24.00% {
    y: 5.9px;
    height: 6.9px;
    opacity: 1;
  }
  28% {
    y: 5.9px;
    height: 6.9px;
    opacity: 1;
  }
  32%, 100% {
    y: 5.9px;
    height: 6.9px;
    opacity: 0;
  }
}
@keyframes ch4 {
  0%, 21.39% {
    y: 5.9px;
    height: 0px;
    opacity: 0;
  }
  21.40% {
    y: 5.9px;
    height: 0px;
    opacity: 1;
  }
  21.83% {
    y: 5.9px;
    height: 0px;
    opacity: 1;
  }
  22.27% {
    y: 5.9px;
    height: 0px;
    opacity: 1;
  }
  22.70% {
    y: 5.9px;
    height: 0px;
    opacity: 1;
  }
  23.13% {
    y: 5.9px;
    height: 0px;
    opacity: 1;
  }
  23.57% {
    y: 5.9px;
    height: 0px;
    opacity: 1;
  }
  24.00% {
    y: 5.9px;
    height: 0px;
    opacity: 1;
  }
  28% {
    y: 5.9px;
    height: 0px;
    opacity: 1;
  }
  32%, 100% {
    y: 5.9px;
    height: 0px;
    opacity: 0;
  }
}
@keyframes cl4 {
  0%, 21.39% {
    y: 5.9px;
    height: 0px;
    opacity: 0;
  }
  21.40% {
    y: 5.9px;
    height: 0px;
    opacity: 1;
  }
  21.83% {
    y: 8.2px;
    height: 0px;
    opacity: 1;
  }
  22.27% {
    y: 12.8px;
    height: 0px;
    opacity: 1;
  }
  22.70% {
    y: 10.5px;
    height: 2.3px;
    opacity: 1;
  }
  23.13% {
    y: 15.1px;
    height: 0px;
    opacity: 1;
  }
  23.57% {
    y: 17.4px;
    height: 0px;
    opacity: 1;
  }
  24.00% {
    y: 12.8px;
    height: 4.6px;
    opacity: 1;
  }
  28% {
    y: 12.8px;
    height: 4.6px;
    opacity: 1;
  }
  32%, 100% {
    y: 12.8px;
    height: 4.6px;
    opacity: 0;
  }
}
@keyframes cb5 {
  0%, 23.99% {
    y: 12.8px;
    height: 1.2px;
    opacity: 0;
  }
  24.00% {
    y: 12.8px;
    height: 1.2px;
    opacity: 1;
  }
  24.43% {
    y: 8.2px;
    height: 4.6px;
    opacity: 1;
  }
  24.87% {
    y: 10.5px;
    height: 2.3px;
    opacity: 1;
  }
  25.30% {
    y: 3.6px;
    height: 9.2px;
    opacity: 1;
  }
  25.73% {
    y: 1.3px;
    height: 11.5px;
    opacity: 1;
  }
  26.17% {
    y: 3.6px;
    height: 9.2px;
    opacity: 1;
  }
  26.60% {
    y: -1px;
    height: 13.8px;
    opacity: 1;
  }
  28% {
    y: -1px;
    height: 13.8px;
    opacity: 1;
  }
  32%, 100% {
    y: -1px;
    height: 13.8px;
    opacity: 0;
  }
}
@keyframes ch5 {
  0%, 23.99% {
    y: 12.8px;
    height: 0px;
    opacity: 0;
  }
  24.00% {
    y: 12.8px;
    height: 0px;
    opacity: 1;
  }
  24.43% {
    y: 8.2px;
    height: 0px;
    opacity: 1;
  }
  24.87% {
    y: 8.2px;
    height: 2.3px;
    opacity: 1;
  }
  25.30% {
    y: 3.6px;
    height: 0px;
    opacity: 1;
  }
  25.73% {
    y: 1.3px;
    height: 0px;
    opacity: 1;
  }
  26.17% {
    y: 1.3px;
    height: 2.3px;
    opacity: 1;
  }
  26.60% {
    y: -1px;
    height: 0px;
    opacity: 1;
  }
  28% {
    y: -1px;
    height: 0px;
    opacity: 1;
  }
  32%, 100% {
    y: -1px;
    height: 0px;
    opacity: 0;
  }
}
@keyframes cl5 {
  0%, 23.99% {
    y: 12.8px;
    height: 0px;
    opacity: 0;
  }
  24.00% {
    y: 12.8px;
    height: 0px;
    opacity: 1;
  }
  24.43% {
    y: 12.8px;
    height: 0px;
    opacity: 1;
  }
  24.87% {
    y: 12.8px;
    height: 0px;
    opacity: 1;
  }
  25.30% {
    y: 12.8px;
    height: 0px;
    opacity: 1;
  }
  25.73% {
    y: 12.8px;
    height: 0px;
    opacity: 1;
  }
  26.17% {
    y: 12.8px;
    height: 0px;
    opacity: 1;
  }
  26.60% {
    y: 12.8px;
    height: 0px;
    opacity: 1;
  }
  28% {
    y: 12.8px;
    height: 0px;
    opacity: 1;
  }
  32%, 100% {
    y: 12.8px;
    height: 0px;
    opacity: 0;
  }
}
@keyframes textLive {
  0%, 9.5% {
    opacity: 0;
  }
  10%, 30% {
    opacity: 1;
  }
  34%, 100% {
    opacity: 0;
  }
}
@keyframes typeLine {
  0%, 10% {
    clip-path: inset(0 100% 0 0);
  }
  17%, 100% {
    clip-path: inset(0 0 0 0);
  }
}
@keyframes bob {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}
@keyframes twinkle {
  0%, 100% {
    opacity: 0.5;
  }
  50% {
    opacity: 1;
  }
}
@keyframes orbit {
  to {
    transform: rotate(360deg);
  }
}
@keyframes dash {
  to {
    stroke-dashoffset: -48;
  }
}
/* Sept 2026 redesign — shared block classes (tabs, ladders, accent section, hero sky, inner heroes) */
/* ============================================================
   PUBLIC SITE REDESIGN — Sept 2026 (ported from design canvas d46ec9a4)
   Shared block classes used by Home and the inner pages: tabs, ladders,
   level strip, venue pills, ticker venue marks, gradient-accent section,
   hero sky, inner-page hero. Imported from public.scss.
   ============================================================ */
/* ── Hero (v2): content-sized, sky stack behind ── */
.tr-hero-v2 {
  position: relative;
  overflow: hidden;
  min-height: 0;
  padding: 96px 16px 72px;
  background: linear-gradient(180deg, var(--bg2) 0%, var(--bg) 40%, #050812 100%);
}

.tr-hero-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
}

.tr-hero-sky {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.tr-hero-sky > * {
  position: absolute;
  inset: 0;
}

.tr-hero-title span {
  display: inline;
}

.tr-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-left: auto;
  margin-right: auto;
}

.tr-stats-col {
  text-align: center;
  padding: 16px;
  border-right: 1px solid var(--border);
}

.tr-stats-col:last-child {
  border-right: 0;
}

.pg-content {
  position: relative;
  z-index: 1;
}

/* ── Ticker (v2): venue marks, price, snapshot note, slower loop ── */
.tr-ticker-inner {
  animation-duration: 150s;
}

.tr-ticker:hover .tr-ticker-inner {
  animation-play-state: paused;
}

.tr-ticker-item {
  gap: 9px;
}

.tr-ticker-px {
  color: var(--text);
  font-weight: 500;
}

.tr-ticker-flat {
  color: var(--text3);
}

.tk-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 16px;
  min-width: 16px;
  padding: 0 4px;
  border-radius: 4px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 9px;
  letter-spacing: 0.02em;
  color: #fff;
}

.tk-logo small {
  font-size: 6px;
  margin-left: 1px;
  font-weight: 700;
}

.tk-kalshi {
  background: #0FA77A;
  color: #05211a;
}

.tk-pmi {
  background: #1E3A8A;
}

.tk-pmus {
  background: linear-gradient(135deg, #B91C1C 0 45%, #1E3A8A 55% 100%);
}

.tk-cme {
  background: #12325C;
  font-size: 7.5px;
}

.tk-fx {
  background: #0891B2;
  color: #06222b;
}

.tk-crypto {
  background: #F7931A;
  color: #3a2000;
  font-size: 11px;
}

.tr-ticker-note {
  text-align: center;
  padding: 8px 0 0;
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
  background: var(--bg2);
}

/* ── Small labels ── */
.mono-lbl {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
}

.tp-lbl {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 8px;
}

.tp-txt {
  font-size: 13px;
  color: var(--text2);
  line-height: 1.7;
}

.tp-txt a {
  color: var(--accent);
  text-decoration: none;
}

.tr-cta-footnote {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
}

/* ── Ladders (prediction YES/NO, Social Order Book preview) ── */
.ladder {
  display: grid;
  grid-template-columns: 1fr 64px 1fr;
  font-family: var(--font-mono);
  font-size: 11px;
}

.ladder > div {
  padding: 7px 10px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
}

.ladder .px {
  justify-content: center;
  color: var(--text2);
  background: var(--w05);
}

.ladder .bid {
  justify-content: flex-end;
  color: var(--green);
}

.ladder .ask {
  color: var(--red);
}

.ladder .mid.px {
  color: var(--text);
  font-weight: 600;
  background: rgba(var(--accent-rgb), 0.14);
}

.bar {
  height: 6px;
  border-radius: 3px;
}

/* ── Tabs (static markup, switched by home.js) ── */
.tabbar {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 32px;
  flex-wrap: wrap;
}

.tab {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 14px 22px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--text3);
  transition: color 0.15s, border-color 0.15s;
}

.tab:hover {
  color: var(--text2);
}

.tab.on {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

.tabpanel {
  display: grid;
  grid-template-columns: 1.1fr 1fr 1fr 1fr;
  gap: 28px;
}

.tabpanel[hidden] {
  display: none;
}

/* ── Level strip, venue pills ── */
.lvl {
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  gap: 6px;
}

.lvl span {
  height: 34px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--w05);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 15px;
  color: var(--text3);
}

.lvl span.on {
  background: var(--grad);
  color: #000;
  border-color: transparent;
}

.logo-pill {
  font-family: var(--font-display);
  font-size: 20px;
  letter-spacing: 3px;
  color: var(--text3);
  border: 1px dashed var(--border-h);
  border-radius: 10px;
  padding: 14px 28px;
  white-space: nowrap;
}

/* ── Steps: 3-column variant ── */
.hp-how-steps-3 {
  grid-template-columns: repeat(3, 1fr);
}

/* ── Gradient-accent section (one per page, rhythm break) ── */
.tr-section-accent {
  padding: 100px 0;
  background: var(--accent-grad-section);
  border-top: 1px solid rgba(var(--accent-rgb), 0.28);
  border-bottom: 1px solid rgba(var(--accent-rgb), 0.28);
  position: relative;
  overflow: hidden;
}

.tr-section-accent::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 50% 60% at 85% 20%, rgba(var(--accent-rgb), 0.28), transparent 65%);
  pointer-events: none;
}

.tr-section-accent > .container {
  position: relative;
}

.tr-section-accent .tr-section-tag {
  color: var(--accent3);
}

.tr-section-accent .tr-section-sub, .tr-section-accent .tr-section-sub-muted, .tr-section-accent .tr-feature-desc, .tr-section-accent .tr-how-step-desc, .tr-section-accent .tp-txt {
  color: rgba(240, 240, 244, 0.78);
}

.tr-section-accent .mono-lbl, .tr-section-accent .tp-lbl {
  color: var(--accent3);
}

.tr-section-accent .tr-card, .tr-section-accent .tr-payout-box {
  background: rgba(10, 4, 20, 0.72);
  border-color: rgba(var(--accent-rgb), 0.35);
}

.tr-section-accent .hp-how-step-line {
  background: linear-gradient(90deg, var(--accent3), transparent);
}

/* ── Inner-page hero ── */
.pg-hero {
  padding: 104px 0 56px;
  text-align: center;
  background: radial-gradient(ellipse 60% 50% at 50% 0%, rgba(var(--accent-rgb), 0.16), transparent 70%), var(--bg);
}

.pg-hero-title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(56px, 8vw, 104px);
  line-height: 0.88;
  letter-spacing: 3px;
  color: var(--text);
}

.pg-hero-title em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── Responsive ── */
@media (max-width: 991.98px) {
  .tabpanel {
    grid-template-columns: 1fr 1fr;
  }
  .lvl span {
    font-size: 13px;
    height: 30px;
  }
  .tr-hero-title {
    white-space: normal;
  }
  .tr-hero-title span {
    display: block;
  }
}
@media (max-width: 767.98px) {
  .tr-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .tr-stats-col:nth-child(2) {
    border-right: 0;
  }
  .tr-stats-col:nth-child(-n+2) {
    border-bottom: 1px solid var(--border);
  }
  .tabpanel {
    grid-template-columns: 1fr;
  }
  .hp-how-steps-3 {
    grid-template-columns: 1fr;
  }
  .pg-content .container[style*=grid-template-columns] {
    grid-template-columns: 1fr !important;
  }
  .pg-content [style*="grid-template-columns: repeat(4"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tr-hero-sky *, .tr-ticker-inner {
    animation: none !important;
  }
}
/* Inner-page blocks (Sept 2026 redesign) — accordions, pointer strips, carousels, tiers, steppers, feed rows, flow diagram, Trade hero grid + dots. */
/* Trade hero only: grid + glow behind the text and the ScalperBook, with travelling dots */
.pg-hero.has-grid {
  position: relative;
  overflow: hidden;
}

.hg-grid {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(var(--accent-rgb), 0.16) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--accent-rgb), 0.16) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 90% 90% at 50% 45%, black 30%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 90% 90% at 50% 45%, black 30%, transparent 80%);
}

.hg-grid::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 55% at 70% 40%, rgba(var(--accent-rgb), 0.22), transparent 65%);
}

.hg-dot {
  position: absolute;
  left: 0;
  top: 0;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 8px 2px rgba(var(--accent-rgb), 0.95), 0 0 22px 8px rgba(var(--accent-rgb), 0.45);
  will-change: transform, opacity;
}

.pg-hero.has-grid > .container {
  position: relative;
  z-index: 1;
}

.acc {
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  background: var(--card-bg);
}

.acc-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  border-top: 1px solid var(--border);
  font-size: 13px;
  color: var(--text);
}

.acc-row:first-child {
  border-top: 0;
}

.acc-plus {
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--accent);
}

.acc-open {
  padding: 0 20px 18px;
  font-size: 12.5px;
  color: var(--text2);
  line-height: 1.7;
}

.pointer-strip {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 22px 28px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--w05);
}

.car {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.car-nav {
  display: flex;
  gap: 8px;
  justify-content: center;
  align-items: center;
}

.car-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--w12);
}

.car-dot.on {
  background: var(--accent);
  width: 18px;
  border-radius: 3px;
}

.car-arrow {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text2);
  font-family: var(--font-mono);
  font-size: 12px;
}

.tier {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 26px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.tier.featured {
  border-color: var(--border-h);
}

.tier-size {
  font-family: var(--font-display);
  font-size: 40px;
  letter-spacing: 2px;
  line-height: 1;
}

.kv {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: var(--text2);
  padding: 7px 0;
  border-top: 1px solid var(--border);
}

.kv b {
  color: var(--text);
  font-weight: 600;
}

.term {
  border: 1px solid var(--border-h);
  border-radius: 14px;
  background: #0B0618;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1.6fr 0.8fr 0.7fr;
  grid-template-rows: 34px 1fr 90px;
  height: 380px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5), 0 0 60px rgba(139, 92, 246, 0.15);
}

.term-bar {
  grid-column: 1/-1;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 0 14px;
  border-bottom: 1px solid var(--border);
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
}

.term-pane {
  border-right: 1px solid var(--border);
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.term-pane:last-child {
  border-right: 0;
}

.term-foot {
  grid-column: 1/-1;
  border-top: 1px solid var(--border);
  padding: 12px 14px;
  display: flex;
  gap: 20px;
  align-items: center;
}

.ph {
  border: 1px dashed var(--border-h);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
}

.stage {
  display: flex;
  align-items: center;
  gap: 12px;
}

.stage-n {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--grad);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 18px;
  color: #000;
  flex-shrink: 0;
}

.stage-n.ghost {
  background: var(--w05);
  border: 1px solid var(--border);
  color: var(--text3);
}

.stage-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--accent), var(--border));
}

.feed-row {
  display: grid;
  grid-template-columns: 90px 1fr 120px 130px;
  gap: 12px;
  align-items: center;
  padding: 12px 16px;
  border-top: 1px solid var(--border);
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text2);
}

.feed-row:first-child {
  border-top: 0;
}

.flow {
  display: grid;
  grid-template-columns: 1fr 48px 1fr 48px 1fr;
  align-items: center;
  gap: 8px;
}

.flow-box {
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--card-bg);
  padding: 22px;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.flow-arrow {
  text-align: center;
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: 18px;
}

/* carry-overs from the old pages */
.hp-step-num.c-green {
  background: linear-gradient(135deg, #16a34a, #22c55e);
  box-shadow: 0 0 20px rgba(34, 197, 94, 0.35);
}

.hp-step-num.c-gold {
  background: linear-gradient(135deg, #d97706, #F5C518);
  box-shadow: 0 0 20px rgba(245, 197, 24, 0.35);
}

.hp-step-num.c-teal {
  background: linear-gradient(135deg, #0e7490, #06B6D4);
  box-shadow: 0 0 20px rgba(6, 182, 212, 0.35);
}

.hp-lb-row.silver {
  background: rgba(192, 192, 200, 0.06);
}

.hp-lb-row.bronze {
  background: rgba(205, 127, 50, 0.07);
}

.pg-hero .container[style*=grid-template-columns] {
  text-align: left;
}

@media (max-width: 991.98px) {
  .pg-hero .container[style*=grid-template-columns] {
    grid-template-columns: 1fr !important;
  }
  .car {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .term {
    display: none;
  }
}
/* Hero with a blurred app video behind the copy (Funded page; same clip as /landing).
   Scoped to the section — not page-wide like the Home .tr-bg-video. */
.pg-hero.has-video {
  position: relative;
  overflow: hidden;
}

.pg-hero.has-video > .container {
  position: relative;
  z-index: 1;
}

.hvid {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.hvid video {
  position: absolute;
  top: 50%;
  left: 50%;
  width: auto;
  height: auto;
  min-width: 100%;
  min-height: 100%;
  transform: translate(-50%, -50%);
  -o-object-fit: cover;
     object-fit: cover;
  filter: blur(3px) brightness(0.5) saturate(1.2); /* same as the /landing clip */
}

.hvid::after {
  /* light wash only: fade into the page at top/bottom and thin side fades, keep the clip visible */
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, var(--bg) 0%, transparent 18%, transparent 84%, var(--bg) 100%), linear-gradient(90deg, var(--bg) 0%, transparent 12%, transparent 88%, var(--bg) 100%);
}

@media (prefers-reduced-motion: reduce) {
  .hvid video {
    display: none;
  }
}
/* ScalperBook widget (Trade hero) — ported verbatim from the design canvas; violet tokens scoped to .hm */
/* ══ ScalperBook — verbatim port of tradante-scalperbook-merged-violet.html ══ */
.hm {
  font-family: "Space Grotesk", system-ui, sans-serif;
  color: #ebe9f5;
  font-feature-settings: "tnum" 1;
  text-align: left;
  --c-bg:#0a0814;
  --c-bg-2:#13101e;
  --c-bg-3:#1c1830;
  --c-text:#ebe9f5;
  --c-dim:#9590b0;
  --c-faint:#5a5670;
  --c-border:rgba(127,119,221,.20);
  --c-border-2:rgba(127,119,221,.08);
  --c-divider:rgba(127,119,221,.06);
  --c-stripe:rgba(127,119,221,.035);
  --c-accent:#AFA9EC;
  --c-accent-2:#CECBF6;
  --c-bid:#5DCAA5;
  --c-bid-2:#9FE1CB;
  --c-bid-rgb:93,202,165;
  --c-ask:#F09595;
  --c-ask-2:#F5C4B3;
  --c-ask-rgb:240,149,149;
  --c-shadow:rgba(127,119,221,.18);
}

.hm * {
  box-sizing: border-box;
}

.hm-card {
  border-radius: 12px;
  overflow: hidden;
  border: 0.5px solid var(--c-border);
  background: var(--c-bg);
  color: var(--c-text);
  box-shadow: 0 0 60px var(--c-shadow), 0 0 0 1px rgba(255, 255, 255, 0.02);
}

.hm-view {
  display: none;
}

/* a column, so that in the position / pending views the stats block (last child) can absorb the few spare pixels
   when platform.js pins the view to the main view's height — the card never changes size between views */
.hm-view.active {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.hm-view > .pos-stats {
  flex: 1 0 auto;
}

.hm-tabs {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  background: var(--c-bg-2);
  border-bottom: 0.5px solid var(--c-border-2);
  gap: 8px;
}

.hm-tabs-l {
  display: flex;
  align-items: center;
  gap: 4px;
}

.hm-back {
  width: 24px;
  height: 24px;
  border-radius: 4px;
  background: transparent;
  border: none;
  color: var(--c-dim);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.12s;
}

.hm-back:hover {
  background: var(--c-bg-3);
  color: var(--c-text);
}

.hm-tab {
  padding: 5px 12px;
  font-size: 10px;
  font-weight: 500;
  color: var(--c-dim);
  background: transparent;
  border: none;
  cursor: pointer;
  border-radius: 4px;
  font-family: inherit;
  letter-spacing: 0.04em;
  transition: all 0.15s;
}

.hm-tab:hover {
  color: var(--c-text);
}

.hm-tab.on {
  color: var(--c-text);
  background: var(--c-bg-3);
}

.hm-icon {
  width: 24px;
  height: 24px;
  border-radius: 4px;
  background: transparent;
  border: none;
  color: var(--c-dim);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hm-icon:hover {
  background: var(--c-bg-3);
  color: var(--c-text);
}

.hm-quotes {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 6px;
  padding: 10px 12px;
  background: var(--c-bg-2);
  border-bottom: 0.5px solid var(--c-border-2);
}

.hm-q {
  padding: 7px 10px;
  border-radius: 6px;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 3px;
  position: relative;
  overflow: hidden;
}

.hm-q.bid {
  background: rgba(var(--c-bid-rgb), 0.1);
  border: 0.5px solid rgba(var(--c-bid-rgb), 0.3);
}

.hm-q.ask {
  background: rgba(var(--c-ask-rgb), 0.1);
  border: 0.5px solid rgba(var(--c-ask-rgb), 0.3);
}

.hm-ql {
  font-size: 8px;
  letter-spacing: 0.14em;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
}

.hm-q.bid .hm-ql {
  color: var(--c-bid-2);
}

.hm-q.ask .hm-ql {
  color: var(--c-ask-2);
}

.hm-qv {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
}

.hm-q.bid .hm-qv {
  color: var(--c-bid-2);
}

.hm-q.ask .hm-qv {
  color: var(--c-ask-2);
}

.hm-qty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.hm-qtyl {
  font-size: 8px;
  color: var(--c-faint);
  letter-spacing: 0.12em;
  font-weight: 500;
  margin-bottom: 3px;
}

.hm-qtyv {
  font-size: 11px;
  font-weight: 500;
  color: var(--c-text);
  background: var(--c-bg-3);
  padding: 4px 10px;
  border-radius: 4px;
  min-width: 44px;
  text-align: center;
}

.hm-qty-controls {
  display: flex;
  align-items: center;
  gap: 0;
  background: var(--c-bg-3);
  border-radius: 4px;
  border: 0.5px solid var(--c-border-2);
  overflow: hidden;
}

.hm-qty-btn {
  width: 18px;
  height: 22px;
  background: transparent;
  border: none;
  color: var(--c-dim);
  font-family: inherit;
  font-weight: 500;
  font-size: 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  line-height: 1;
  transition: all 0.12s;
}

.hm-qty-btn:hover {
  background: var(--c-bg-2);
  color: var(--c-text);
}

.hm-qty-btn:active {
  color: var(--c-accent-2);
}

.hm-qty-input {
  width: 46px;
  height: 22px;
  background: transparent;
  border: none;
  color: var(--c-text);
  font-family: inherit;
  font-weight: 500;
  font-size: 11px;
  text-align: center;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  outline: none;
  padding: 0;
}

.hm-qty-input:focus {
  background: var(--c-bg-2);
}

.hm-qty-presets {
  display: flex;
  gap: 2px;
  margin-top: 3px;
}

.hm-qty-preset {
  flex: 1;
  padding: 2px 0;
  background: transparent;
  border: 0.5px solid var(--c-border-2);
  color: var(--c-faint);
  font-family: inherit;
  font-weight: 500;
  font-size: 8.5px;
  letter-spacing: 0.04em;
  cursor: pointer;
  border-radius: 3px;
  transition: all 0.12s;
}

.hm-qty-preset:hover {
  color: var(--c-text);
  border-color: var(--c-divider);
}

.hm-qty-preset:active {
  background: var(--c-bg-2);
  color: var(--c-accent-2);
}

.main-cols {
  display: grid;
  grid-template-columns: 1fr 28px 64px 36px 1fr;
  padding: 0;
  background: var(--c-bg-3);
  min-height: 28px;
  align-items: center;
  border-bottom: 0.5px solid var(--c-border-2);
  font-size: 8px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-faint);
  text-align: center;
  font-weight: 500;
}

.main-cols > div {
  padding: 7px 0;
}

.main-cols > .px-col-header {
  padding: 4px 2px;
}

.main-cols > div + div {
  border-left: 0.5px solid var(--c-divider);
}

.main-ladder {
  position: relative;
  height: 440px;
  overflow: hidden;
  background: var(--c-bg);
}

.main-row {
  display: grid;
  grid-template-columns: 1fr 28px 64px 36px 1fr;
  height: 20px;
  align-items: stretch;
  border-bottom: 0.5px solid var(--c-divider);
  position: relative;
  cursor: pointer;
}

.main-row:nth-child(odd) {
  background: var(--c-stripe);
}

.main-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  position: relative;
  overflow: hidden;
}

.main-row > .main-cell + .main-cell {
  border-left: 0.5px solid var(--c-divider);
}

.main-cell.heat {
  font-weight: 500;
}

.main-cell.heat.buy {
  justify-content: flex-end;
  padding-right: 7px;
  color: var(--c-bid-2);
}

.main-cell.heat.sell {
  justify-content: flex-start;
  padding-left: 7px;
  color: var(--c-ask-2);
}

.main-cell.heat .heat-bg {
  position: absolute;
  inset: 1px;
  border-radius: 1px;
  transition: background 0.25s;
}

.main-cell.heat span {
  position: relative;
  z-index: 1;
}

.main-cell.heat.buy:hover .heat-bg {
  background: rgba(var(--c-bid-rgb), 0.55) !important;
  box-shadow: inset 0 0 0 1px var(--c-bid);
}

.main-cell.heat.sell:hover .heat-bg {
  background: rgba(var(--c-ask-rgb), 0.55) !important;
  box-shadow: inset 0 0 0 1px var(--c-ask);
}

@keyframes hm-flash {
  0% {
    filter: brightness(2.4);
  }
  100% {
    filter: brightness(1);
  }
}
.main-cell.heat .heat-bg.flash {
  animation: hm-flash 0.55s ease-out;
}

.main-cell.my {
  justify-content: center;
  padding: 0;
}

.main-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 2px;
  padding: 0 4px;
  font-size: 9px;
  font-weight: 500;
  min-width: 18px;
  height: 13px;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: transform 0.1s;
}

.main-chip:hover {
  transform: scale(1.15);
}

.main-cell.vol {
  justify-content: flex-start;
  padding: 0 4px;
  color: var(--c-dim);
  font-size: 9px;
  font-weight: 500;
  position: relative;
}

.main-cell.vol .vbar {
  position: absolute;
  top: 2px;
  bottom: 2px;
  left: 0;
  background: rgba(255, 255, 255, 0.13);
  border-radius: 1px;
  transition: width 0.35s ease-out;
}

@keyframes hm-vflash {
  0% {
    background: rgba(255, 255, 255, 0.42);
  }
  100% {
    background: rgba(255, 255, 255, 0.13);
  }
}
.main-cell.vol .vbar.flash {
  animation: hm-vflash 0.6s ease-out;
}

.main-cell.vol span {
  position: relative;
  z-index: 1;
}

.main-cell.px {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  color: var(--c-text);
  background: var(--c-bg);
  padding: 0 4px;
}

.main-cell.px .pa {
  font-size: 10px;
  color: var(--c-dim);
}

.main-cell.px .pb {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: -0.02em;
  color: var(--c-text);
}

.main-row.bbid .main-cell.px {
  box-shadow: inset 0 0 0 1.5px var(--c-bid);
  border-radius: 2px;
}

.main-row.bask .main-cell.px {
  box-shadow: inset 0 0 0 1.5px var(--c-ask);
  border-radius: 2px;
}

.main-row.bbid .main-cell.px .pb {
  color: var(--c-bid-2);
}

.main-row.bask .main-cell.px .pb {
  color: var(--c-ask-2);
}

.main-tip {
  position: absolute;
  z-index: 30;
  background: var(--c-bg-2);
  border-radius: 6px;
  padding: 5px 10px;
  pointer-events: none;
  font-family: inherit;
  opacity: 0;
  transition: opacity 0.1s;
  white-space: nowrap;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.02em;
}

.main-tip.on {
  opacity: 1;
}

.main-tip.buy {
  color: var(--c-bid-2);
  border: 1px solid var(--c-bid);
}

.main-tip.sell {
  color: var(--c-ask-2);
  border: 1px solid var(--c-ask);
}

.main-tip .pip {
  opacity: 0.7;
  margin-left: 6px;
  font-weight: 400;
}

.main-grid-foot {
  display: grid;
  grid-template-columns: 1fr 28px 64px 36px 1fr;
  align-items: center;
  padding: 0;
  background: var(--c-bg-2);
  border-top: 0.5px solid var(--c-border-2);
  min-height: 34px;
}

.main-foot-spacer-cell {
  height: 34px;
  border-left: 0.5px solid var(--c-divider);
}

.main-foot-spacer-cell:first-child {
  border-left: none;
}

.px-col-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2px;
  padding: 0 2px;
  width: 100%;
  height: 100%;
}

.px-col-label {
  font-size: 8px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-faint);
  font-weight: 500;
  flex: 1;
  text-align: center;
}

.px-scroll-btn {
  width: 18px;
  height: 18px;
  border-radius: 3px;
  background: transparent;
  border: none;
  color: var(--c-dim);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: inherit;
  flex-shrink: 0;
  transition: all 0.12s;
  padding: 0;
}

.px-scroll-btn:hover {
  background: var(--c-bg-2);
  color: var(--c-text);
}

.px-scroll-btn:active {
  background: var(--c-bg);
  color: var(--c-accent-2);
}

.pos-poshd {
  display: grid;
  grid-template-columns: 52px 1fr 52px 84px;
  align-items: center;
  padding: 0;
  background: var(--c-bg-3);
  border-top: 0.5px solid var(--c-border-2);
  border-bottom: 0.5px solid var(--c-border-2);
  min-height: 28px;
}

.pos-poshd-side {
  height: 28px;
}

.pos-poshd-mid {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 8px;
  gap: 6px;
  border-left: 0.5px solid var(--c-divider);
  border-right: 0.5px solid var(--c-divider);
  height: 28px;
}

.pos-poshd-px {
  display: flex;
  align-items: center;
  border-left: 0.5px solid var(--c-divider);
  height: 28px;
  padding: 0 2px;
}

.pos-ctl-btn {
  width: 28px;
  height: 28px;
  border-radius: 4px;
  background: transparent;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: inherit;
  padding: 0;
  transition: all 0.12s;
}

.pos-ctl-btn svg {
  width: 16px;
  height: 16px;
}

.pos-ctl-btn.sl {
  color: var(--c-ask);
}

.pos-ctl-btn.tp {
  color: var(--c-bid);
}

.pos-ctl-btn:hover {
  background: var(--c-bg-2);
}

.pos-ctl-btn.delete.sl:hover {
  background: rgba(var(--c-ask-rgb), 0.14);
}

.pos-ctl-btn.delete.tp:hover {
  background: rgba(var(--c-bid-rgb), 0.14);
}

.pos-cell.pnl.entry-pnl {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.08em;
}

.pos-cell.pnl.entry-pnl.long {
  color: var(--c-bid-2);
}

.pos-cell.pnl.entry-pnl.short {
  color: var(--c-ask-2);
}

.pos-close-pnl-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  height: 22px;
  background: var(--c-bg-2);
  border: 0.5px solid var(--c-divider);
  border-radius: 4px;
  color: var(--c-dim);
  cursor: pointer;
  font-family: inherit;
  transition: all 0.15s;
}

.pos-close-pnl-btn svg {
  width: 11px;
  height: 11px;
  flex-shrink: 0;
  color: var(--c-dim);
}

.pos-close-pnl-btn:hover {
  background: rgba(var(--c-ask-rgb), 0.12);
  border-color: var(--c-ask);
}

.pos-close-pnl-btn:hover svg {
  color: var(--c-ask);
}

.pos-close-pnl {
  font-size: 11px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

.pos-close-pnl.gain {
  color: var(--c-bid-2);
}

.pos-close-pnl.loss {
  color: var(--c-ask-2);
}

.pos-close-pnl.neutral {
  color: var(--c-dim);
}

.pos-ladder {
  position: relative;
  height: 360px; /* 18 rows x 20px = POS_N in platform.js */
  overflow: hidden;
  background: var(--c-bg);
}

.pos-row {
  display: grid;
  grid-template-columns: 52px 1fr 52px 84px;
  height: 20px;
  align-items: stretch;
  border-bottom: 0.5px solid var(--c-divider);
  position: relative;
}

.pos-row:nth-child(odd) {
  background: var(--c-stripe);
}

.pos-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  position: relative;
  overflow: hidden;
}

.pos-row > .pos-cell + .pos-cell {
  border-left: 0.5px solid var(--c-divider);
}

.pos-cell.sl-col, .pos-cell.tp-col {
  cursor: pointer;
  transition: background 0.12s;
}

.pos-cell.sl-col:hover, .pos-cell.tp-col:hover {
  background: rgba(255, 255, 255, 0.02);
}

.pos-cell.sl-col .col-mark, .pos-cell.tp-col .col-mark {
  width: 14px;
  height: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.pos-row.has-sl .pos-cell.sl-col .col-mark {
  color: var(--c-ask);
}

.pos-row.has-sl .pos-cell.sl-col .col-mark svg {
  width: 13px;
  height: 13px;
  filter: drop-shadow(0 0 2px rgba(var(--c-ask-rgb), 0.4));
}

.pos-row.has-tp .pos-cell.tp-col .col-mark {
  color: var(--c-bid);
}

.pos-row.has-tp .pos-cell.tp-col .col-mark svg {
  width: 13px;
  height: 13px;
  filter: drop-shadow(0 0 2px rgba(var(--c-bid-rgb), 0.4));
}

.pos-row.has-sl .pos-cell.sl-col, .pos-row.has-sl .pos-cell.px {
  position: relative;
}

.pos-row.has-sl .pos-cell.sl-col::after, .pos-row.has-sl .pos-cell.px::after {
  content: "";
  position: absolute;
  inset: 1px;
  border: 1.5px dotted var(--c-ask);
  border-radius: 2px;
  pointer-events: none;
}

.pos-row.has-tp .pos-cell.tp-col, .pos-row.has-tp .pos-cell.px {
  position: relative;
}

.pos-row.has-tp .pos-cell.tp-col::after, .pos-row.has-tp .pos-cell.px::after {
  content: "";
  position: absolute;
  inset: 1px;
  border: 1.5px dotted var(--c-bid);
  border-radius: 2px;
  pointer-events: none;
}

.pos-cell.pnl {
  justify-content: center;
  font-size: 9px;
  font-weight: 500;
  cursor: default;
}

.pos-cell.pnl.proj {
  color: var(--c-dim);
  font-weight: 400;
}

.proj-tickcount {
  position: relative;
  z-index: 1;
  font-size: 9px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
}

.proj-tickcount.tp {
  color: var(--c-bid-2);
}

.proj-tickcount.sl {
  color: var(--c-ask-2);
}

.pos-cell.pnl.loss {
  color: var(--c-ask-2);
}

.pos-cell.pnl.gain {
  color: var(--c-bid-2);
}

.pos-cell.pnl .pnl-bg {
  position: absolute;
  inset: 1px;
  border-radius: 1px;
  transition: background 0.25s;
}

.pos-cell.pnl span {
  position: relative;
  z-index: 1;
}

.pos-cell.px {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  color: var(--c-text);
  background: var(--c-bg);
  padding: 0 8px;
}

.pos-cell.px .pa {
  font-size: 10px;
  color: var(--c-dim);
}

.pos-cell.px .pb {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: -0.02em;
  color: var(--c-text);
}

.pos-row.market .pos-cell.px {
  box-shadow: inset 0 -1.5px 0 var(--c-ask);
}

.pos-row.market .pos-cell.px .pb {
  color: var(--c-ask-2);
}

.pos-row.has-sl .pos-cell.sl-col {
  cursor: grab;
}

.pos-row.has-tp .pos-cell.tp-col {
  cursor: grab;
}

.pos-ladder.dragging-sl, .pos-ladder.dragging-tp {
  cursor: grabbing;
}

.pos-ladder.dragging-sl *, .pos-ladder.dragging-tp * {
  cursor: grabbing !important;
}

@keyframes pos-drag-blink-bg-sl {
  0%, 100% {
    background-color: rgba(var(--c-ask-rgb), 0.04);
  }
  50% {
    background-color: rgba(var(--c-ask-rgb), 0.32);
  }
}
@keyframes pos-drag-blink-bg-tp {
  0%, 100% {
    background-color: rgba(var(--c-bid-rgb), 0.04);
  }
  50% {
    background-color: rgba(var(--c-bid-rgb), 0.32);
  }
}
@keyframes pos-drag-blink-num {
  0%, 100% {
    opacity: 0.45;
  }
  50% {
    opacity: 1;
  }
}
.pos-ladder.dragging-sl .pos-cell.sl-col:has(.proj-tickcount), .pos-ladder.dragging-sl .pos-cell.pnl.proj {
  animation: pos-drag-blink-bg-sl 1.4s ease-in-out infinite;
}

.pos-ladder.dragging-tp .pos-cell.tp-col:has(.proj-tickcount), .pos-ladder.dragging-tp .pos-cell.pnl.proj {
  animation: pos-drag-blink-bg-tp 1.4s ease-in-out infinite;
}

.pos-ladder.dragging-sl .pos-cell.sl-col .proj-tickcount, .pos-ladder.dragging-tp .pos-cell.tp-col .proj-tickcount, .pos-ladder.dragging-sl .pos-cell.pnl.proj > span, .pos-ladder.dragging-tp .pos-cell.pnl.proj > span {
  animation: pos-drag-blink-num 1.4s ease-in-out infinite;
}

.pos-marquee {
  position: absolute;
  pointer-events: none;
  border: 1.5px dashed var(--c-ask);
  border-radius: 2px;
  box-sizing: border-box;
  transition: opacity 0.12s;
  opacity: 0;
  z-index: 18;
}

.pos-marquee.on {
  opacity: 1;
}

.pos-marquee.gain {
  border-color: var(--c-bid);
}

.pos-marquee-label {
  position: absolute;
  top: -1px;
  left: 50%;
  transform: translate(-50%, -100%);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.08em;
  padding: 2px 6px;
  border-radius: 3px 3px 0 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.pos-marquee.gain .pos-marquee-label {
  background: rgba(var(--c-bid-rgb), 0.18);
  color: var(--c-bid-2);
  border: 1px dashed var(--c-bid);
  border-bottom: none;
}

.pos-marquee:not(.gain) .pos-marquee-label {
  background: rgba(var(--c-ask-rgb), 0.18);
  color: var(--c-ask-2);
  border: 1px dashed var(--c-ask);
  border-bottom: none;
}

.pos-tip {
  position: absolute;
  z-index: 30;
  background: var(--c-bg-2);
  border-radius: 6px;
  padding: 6px 10px;
  pointer-events: none;
  font-family: inherit;
  opacity: 0;
  transition: opacity 0.12s;
  white-space: nowrap;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.02em;
}

.pos-tip.on {
  opacity: 1;
}

.pos-tip.sl {
  color: var(--c-ask-2);
  border: 1px solid var(--c-ask);
}

.pos-tip.tp {
  color: var(--c-bid-2);
  border: 1px solid var(--c-bid);
}

.pos-tip .tip-l {
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-dim);
  font-weight: 500;
  margin-bottom: 2px;
  display: block;
}

.pos-foot {
  display: grid;
  grid-template-columns: 52px 1fr 52px 84px;
  align-items: center;
  padding: 0;
  background: var(--c-bg-2);
  border-top: 0.5px solid var(--c-border-2);
  min-height: 34px;
}

.pos-foot-l, .pos-foot-r {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 34px;
}

.pos-foot-r {
  border-left: 0.5px solid var(--c-divider);
}

.pos-foot-mid {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 8px;
}

.pos-foot-arrow-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  border-left: 0.5px solid var(--c-divider);
  height: 34px;
  color: var(--c-faint);
}

.pos-foot-qty {
  font-size: 10px;
  color: var(--c-dim);
  font-variant-numeric: tabular-nums;
}

.pos-sltp {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 8px;
  padding: 11px 12px 9px;
  background: var(--c-bg);
  border-top: 0.5px solid var(--c-border-2);
}

.pos-sltp-f {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.pos-sltp-l {
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
}

.pos-sltp-l.sl {
  color: var(--c-ask);
}

.pos-sltp-l.tp {
  color: var(--c-bid);
}

.pos-sltp-i {
  background: var(--c-bg-3);
  border: 0.5px solid var(--c-border-2);
  border-radius: 4px;
  padding: 5px 8px;
  font-size: 11px;
  font-weight: 500;
  color: var(--c-text);
  font-family: inherit;
  font-variant-numeric: tabular-nums;
  width: 100%;
}

.pos-sltp-i:focus {
  outline: none;
  border-color: var(--c-accent);
}

.pos-sltp-i.empty {
  color: var(--c-faint);
  font-weight: 400;
}

.pos-sltp-arrow {
  display: flex;
  align-items: center;
  color: var(--c-faint);
  padding-top: 18px;
}

.pos-stats {
  padding: 8px 12px 12px;
  background: var(--c-bg);
  border-top: 0.5px solid var(--c-divider);
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.pos-stat-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 10px;
}

.pos-stat-row .l {
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--c-faint);
}

.pos-stat-row.sl .l {
  color: var(--c-ask);
}

.pos-stat-row.tp .l {
  color: var(--c-bid);
}

.pos-stat-row .v {
  color: var(--c-text);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  font-weight: 500;
}

.pos-stat-row.sl .v {
  color: var(--c-ask);
}

.pos-stat-row.tp .v {
  color: var(--c-bid);
}

.pos-stat-row .v.empty {
  color: var(--c-faint);
  font-weight: 400;
}

.pending-ladder .pos-cell.sl-col.pending-zone, .pending-ladder .pos-cell.tp-col.pending-zone {
  background: rgba(255, 255, 255, 0.06);
}

.pending-ladder .proj-tickcount.pending {
  color: var(--c-dim);
}

.pending-ladder .pos-cell.pnl.pending-entry-pnl {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--c-text);
}

.pending-ladder .pos-cell.pnl.pending-e2m {
  font-size: 9px;
  font-weight: 500;
  color: var(--c-dim);
}

.pending-ladder .pos-row.has-sl .pos-cell.sl-col::after, .pending-ladder .pos-row.has-sl .pos-cell.px::after, .pending-ladder .pos-row.has-tp .pos-cell.tp-col::after, .pending-ladder .pos-row.has-tp .pos-cell.px::after {
  border-color: var(--c-dim) !important;
}

.pos-cancel-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  height: 22px;
  background: var(--c-bg-2);
  border: 0.5px solid var(--c-divider);
  border-radius: 4px;
  color: var(--c-dim);
  cursor: pointer;
  font-family: inherit;
  transition: all 0.15s;
}

.pos-cancel-btn svg {
  width: 11px;
  height: 11px;
  flex-shrink: 0;
  color: var(--c-dim);
}

.pos-cancel-btn span {
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--c-dim);
}

.pos-cancel-btn:hover {
  background: rgba(var(--c-ask-rgb), 0.12);
  border-color: var(--c-ask);
}

.pos-cancel-btn:hover svg, .pos-cancel-btn:hover span {
  color: var(--c-ask);
}

/* ScalperBook instrument header (replaces the Order entry / Scalper tab strip) */
.hm-head {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: var(--c-bg-2);
  border-bottom: 0.5px solid var(--c-border-2);
}

.hm-logos {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.hm-logo {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.04em;
  border: 1.5px solid var(--c-bg-2);
  box-shadow: 0 0 0 1px var(--c-border);
}

.hm-logo + .hm-logo {
  margin-left: -8px;
}

.hm-title-btn {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
}

.hm-title {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--c-text);
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 190px;
}

.hm-sub {
  font-size: 9px;
  color: var(--c-dim);
  letter-spacing: 0.06em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 190px;
}

.hm-sub b {
  color: var(--c-accent);
  font-weight: 500;
}

.hm-caret {
  color: var(--c-dim);
  flex-shrink: 0;
}

.hm-last {
  font-size: 15px;
  font-weight: 600;
  color: var(--c-text);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  padding-left: 8px;
  border-left: 0.5px solid var(--c-divider);
  flex-shrink: 0;
}

.hm-last sup {
  font-size: 9px;
  color: var(--c-dim);
  margin-left: 1px;
}

.hm-menu {
  display: none;
  position: absolute;
  left: 8px;
  right: 8px;
  top: calc(100% + 4px);
  z-index: 40;
  background: var(--c-bg-2);
  border: 0.5px solid var(--c-border);
  border-radius: 8px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.5);
  padding: 4px;
  flex-direction: column;
  gap: 2px;
}

.hm-menu.open {
  display: flex;
}

.hm-menu-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding: 8px 10px;
  background: transparent;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
  color: var(--c-text);
}

.hm-menu-item:hover, .hm-menu-item.on {
  background: var(--c-bg-3);
}

.hm-menu-t {
  font-size: 11.5px;
  font-weight: 600;
}

.hm-menu-s {
  font-size: 9px;
  color: var(--c-dim);
  letter-spacing: 0.06em;
}

.hm-qty-presets:empty {
  display: none;
}

/* Social Order Book™ widget (Interact hero) — ported verbatim from the design canvas; violet tokens scoped to .sob */
/* ══ Social Order Book™ card — verbatim port of tradante-social-order-book.html (violet), widget only ══ */
.sob {
  font-family: "Space Grotesk", system-ui, sans-serif;
  font-feature-settings: "tnum" 1;
  text-align: left;
  position: relative;
  --s-accent:#AFA9EC;
  --s-accent-2:#CECBF6;
  --s-accent-dim:#534AB7;
  --c-bg:#14111f;
  --c-bg-2:#1e1a2e;
  --c-bg-3:#231e36;
  --c-border:rgba(127,119,221,.28);
  --c-border-2:rgba(127,119,221,.10);
  --c-text:#ebe9f5;
  --c-dim:#9590b0;
  --c-faint:#6b6782;
  --c-ask:#F09595;
  --c-ask-2:#F5C4B3;
  --c-ask-bar:rgba(226,75,74,.20);
  --c-bid:#5DCAA5;
  --c-bid-2:#9FE1CB;
  --c-bid-bar:rgba(29,158,117,.20);
  --c-hover:rgba(175,169,236,.08);
  --c-sel:rgba(175,169,236,.15);
  --c-shadow:rgba(127,119,221,.35);
}

.sob * {
  box-sizing: border-box;
}

.ss-card-wrap {
  position: relative;
  z-index: 1;
}

.ss-reflection {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 2px;
  height: 160px;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
  -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0.12) 40%, transparent 100%);
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0.12) 40%, transparent 100%);
}

.ss-reflection-inner {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  transform: scaleY(-1);
}

.ss-reflection .ss-card {
  box-shadow: none;
}

.ss-card {
  border-radius: 12px;
  overflow: hidden;
  border: 0.5px solid var(--c-border);
  background: var(--c-bg);
  color: var(--c-text);
  font-feature-settings: "tnum" 1;
  box-shadow: 0 0 80px var(--c-shadow), 0 0 0 1px rgba(255, 255, 255, 0.02);
}

.ss-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 16px;
  border-bottom: 0.5px solid var(--c-border-2);
  background: var(--c-bg-2);
  gap: 12px;
}

.ss-sym {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
}

.ss-sym-i {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--s-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-bg);
  font-weight: 500;
  font-size: 14px;
  flex-shrink: 0;
}

.ss-sym-n {
  font-size: 13px;
  font-weight: 500;
  color: var(--c-text);
}

.ss-sym-m {
  font-size: 10px;
  color: var(--c-dim);
}

.ss-live {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 9px;
  color: var(--c-dim);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
}

.ss-live-d {
  width: 5px;
  height: 5px;
  background: #5DCAA5;
  border-radius: 50%;
  animation: ss-p 1.1s ease-in-out infinite;
  box-shadow: 0 0 8px #5DCAA5;
}

@keyframes ss-p {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.35;
    transform: scale(0.7);
  }
}
.ss-pw {
  text-align: right;
}

.ss-pv {
  font-size: 18px;
  font-weight: 500;
  color: var(--c-bid-2);
  line-height: 1;
  transition: color 0.15s;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

.ss-pv.up {
  color: #5DCAA5;
}

.ss-pv.dn {
  color: #F09595;
}

.ss-pc {
  font-size: 10px;
  color: var(--c-bid);
  margin-top: 3px;
  font-variant-numeric: tabular-nums;
}

.ss-pc.dn {
  color: var(--c-ask);
}

.ss-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 168px;
}

.ss-book {
  border-right: 0.5px solid var(--c-border-2);
  min-width: 0;
}

.ss-cols {
  display: grid;
  grid-template-columns: 1fr 1fr 0.55fr;
  gap: 10px;
  padding: 9px 14px;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--c-faint);
  background: var(--c-bg-3);
}

.ss-cols .r {
  text-align: right;
}

.ss-rows {
  position: relative;
}

.ss-row {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr 0.55fr;
  gap: 10px;
  padding: 6px 14px;
  cursor: pointer;
  font-size: 12px;
  transition: background 0.12s;
  isolation: isolate;
  font-variant-numeric: tabular-nums;
}

.ss-row:hover {
  background: var(--c-hover);
}

.ss-row.sel {
  background: var(--c-sel);
}

.ss-row .bar {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  z-index: 0;
  pointer-events: none;
  transition: width 0.35s ease-out;
}

.ss-row > *:not(.bar) {
  position: relative;
  z-index: 1;
}

.ss-row.ask .price {
  color: var(--c-ask);
  font-weight: 500;
}

.ss-row.ask .bar {
  background: var(--c-ask-bar);
}

.ss-row.bid .price {
  color: var(--c-bid);
  font-weight: 500;
}

.ss-row.bid .bar {
  background: var(--c-bid-bar);
}

.ss-row .size {
  color: var(--c-text);
  text-align: right;
}

.ss-row .users {
  color: var(--c-dim);
  text-align: right;
}

.ss-row.sel.ask {
  box-shadow: inset 3px 0 0 var(--c-ask);
}

.ss-row.sel.bid {
  box-shadow: inset 3px 0 0 var(--c-bid);
}

@keyframes ss-fa {
  0% {
    background: rgba(226, 75, 74, 0.36);
  }
  100% {
    background: transparent;
  }
}
@keyframes ss-fb {
  0% {
    background: rgba(29, 158, 117, 0.36);
  }
  100% {
    background: transparent;
  }
}
.ss-row.f-ask {
  animation: ss-fa 0.85s ease-out;
}

.ss-row.f-bid {
  animation: ss-fb 0.85s ease-out;
}

.ss-spr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 14px;
  background: var(--c-bg-2);
  border-top: 0.5px solid var(--c-border);
  border-bottom: 0.5px solid var(--c-border);
  font-variant-numeric: tabular-nums;
}

.ss-spr-l {
  display: flex;
  align-items: center;
  gap: 7px;
}

.ss-last {
  font-size: 14px;
  font-weight: 500;
  color: var(--c-text);
  transition: color 0.2s;
}

.ss-last.up {
  color: #5DCAA5;
}

.ss-last.dn {
  color: #F09595;
}

.ss-arr {
  font-size: 10px;
  color: var(--c-bid);
  transition: color 0.15s;
}

.ss-spr-r {
  font-size: 10px;
  color: var(--c-dim);
  display: flex;
  gap: 10px;
}

.ss-spr-r b {
  color: var(--s-accent);
  font-weight: 500;
  margin-left: 3px;
}

.ss-tape {
  padding: 5px 14px;
  background: var(--c-bg-2);
  border-bottom: 0.5px solid var(--c-border-2);
  font-size: 10px;
  color: var(--c-dim);
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 22px;
  font-variant-numeric: tabular-nums;
  overflow: hidden;
}

.ss-tape-l {
  color: var(--c-faint);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 9px;
  flex-shrink: 0;
}

.ss-tape-i {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 1px 5px;
  border-radius: 3px;
  animation: ss-fade-in 0.4s;
}

.ss-tape-i.up {
  background: rgba(29, 158, 117, 0.18);
  color: var(--c-bid-2);
}

.ss-tape-i.dn {
  background: rgba(226, 75, 74, 0.18);
  color: var(--c-ask-2);
}

@keyframes ss-fade-in {
  from {
    opacity: 0;
    transform: translateX(-6px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.ss-pnl {
  background: var(--c-bg-2);
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.ss-pnl-h {
  padding: 10px 12px 9px;
  border-bottom: 0.5px solid var(--c-border-2);
}

.ss-pnl-t {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  color: var(--c-text);
  font-weight: 500;
  flex-wrap: wrap;
  letter-spacing: 0.01em;
}

.ss-px {
  font-variant-numeric: tabular-nums;
  color: var(--s-accent-2);
}

.ss-side {
  font-size: 8px;
  letter-spacing: 0.14em;
  font-weight: 500;
  padding: 2px 5px;
  border-radius: 2px;
}

.ss-side.ask {
  background: rgba(226, 75, 74, 0.18);
  color: var(--c-ask-2);
}

.ss-side.bid {
  background: rgba(29, 158, 117, 0.18);
  color: var(--c-bid-2);
}

.ss-pnl-m {
  color: var(--c-dim);
  font-size: 10px;
  margin-top: 3px;
  font-variant-numeric: tabular-nums;
}

.ss-list-u {
  padding: 3px 12px 10px;
}

.ss-u {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 7px;
  align-items: center;
  padding: 7px 0;
  border-bottom: 0.5px solid var(--c-border-2);
}

.ss-u:last-child {
  border-bottom: none;
}

.ss-av {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 500;
  font-size: 10px;
  letter-spacing: 0.02em;
  position: relative;
  flex-shrink: 0;
}

.ss-av.ring-1 {
  box-shadow: 0 0 0 1.5px var(--c-bg-2), 0 0 0 2.5px #888780;
}

.ss-av.ring-2 {
  box-shadow: 0 0 0 1.5px var(--c-bg-2), 0 0 0 2.5px #85B7EB;
}

.ss-av.ring-3 {
  box-shadow: 0 0 0 1.5px var(--c-bg-2), 0 0 0 2.5px #EF9F27;
}

.ss-av.ring-4 {
  box-shadow: 0 0 0 1.5px var(--c-bg-2), 0 0 0 3px #D85A30;
}

.ss-u-info {
  min-width: 0;
  overflow: hidden;
}

.ss-un {
  color: var(--c-text);
  font-weight: 500;
  font-size: 11px;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ss-um {
  color: var(--c-dim);
  font-size: 10px;
  margin-top: 4px;
  display: flex;
  gap: 3px;
  flex-wrap: wrap;
  align-items: center;
}

.ss-ul {
  font-size: 11px;
  color: var(--c-text);
  font-variant-numeric: tabular-nums;
  text-align: right;
  font-weight: 500;
  flex-shrink: 0;
}

.ss-ul .pct {
  display: block;
  color: var(--c-faint);
  font-size: 9px;
  margin-top: 2px;
  font-weight: 400;
}

.ss-b {
  display: inline-flex;
  align-items: center;
  padding: 1px 5px;
  border-radius: 2px;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.03em;
  line-height: 1.3;
}

.ss-b.lv-1 {
  background: rgba(180, 178, 169, 0.18);
  color: #D3D1C7;
}

.ss-b.lv-2 {
  background: rgba(133, 183, 235, 0.22);
  color: #B5D4F4;
}

.ss-b.lv-3 {
  background: rgba(239, 159, 39, 0.22);
  color: #FAC775;
}

.ss-b.lv-4 {
  background: rgba(216, 90, 48, 0.24);
  color: #F5C4B3;
}

.ss-b.rk-1 {
  background: rgba(239, 159, 39, 0.22);
  color: #FAC775;
  font-variant-numeric: tabular-nums;
}

.ss-b.rk-2 {
  background: rgba(133, 183, 235, 0.22);
  color: #B5D4F4;
  font-variant-numeric: tabular-nums;
}

.ss-b.rk-3 {
  background: rgba(180, 178, 169, 0.15);
  color: #B4B2A9;
  font-variant-numeric: tabular-nums;
}

.ss-b.fol {
  background: rgba(175, 169, 236, 0.22);
  color: #CECBF6;
  display: inline-flex;
  align-items: center;
  gap: 3px;
}

.ss-b.fol svg {
  width: 9px;
  height: 9px;
  flex-shrink: 0;
}

/* ── Social Order Book™ callout (Trade #book + Home #social, _SocialBookCallout.cshtml) ──
   Copy + "You're always in control" + three free-standing shield icons on the left. The live widget on
   the right stands on the section's lower edge with its bottom ~20% clipped, glowing all around. */
.sob-sec {
  position: relative;
  overflow: hidden;
  padding: 72px 0 0;
}

.sob-grid {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 56px;
  align-items: end;
}

.sob-copy {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-bottom: 64px;
  align-self: start;
}

.sob-sub {
  color: rgba(255, 255, 255, 0.72) !important;
}

/* control label + the three modes (no cards: icon, name, two lines) */
.sob-ctl {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.sob-ctl-lbl {
  font-family: var(--font-display);
  font-size: 22px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #fff;
}

.sob-priv {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.sob-priv-item {
  --pc: var(--accent);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
}
.sob-priv-item.pub {
  --pc: #15803d;
}
.sob-priv-item.fol {
  --pc: #c2410c;
}
.sob-priv-item.prv {
  --pc: #b91c1c;
}

.sob-shield {
  position: relative;
  width: 56px;
  height: 60px;
  display: block;
  color: var(--pc);
  filter: drop-shadow(0 0 8px color-mix(in srgb, var(--pc) 35%, transparent));
}

.sob-shield-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  fill: color-mix(in srgb, var(--pc) 14%, transparent);
  stroke: var(--pc);
  stroke-width: 0.9;
  stroke-linejoin: round;
}

.sob-shield-ic {
  position: absolute;
  left: 50%;
  top: 46%;
  width: 24px;
  height: 24px;
  transform: translate(-50%, -50%);
}

.sob-priv-name {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--pc);
}

.sob-priv-desc {
  font-family: var(--font-body);
  font-size: 12px;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.68);
}

/* the widget: bottom ~20% cut at the section edge, glow kept visible on the other three sides */
.sob-peek {
  position: relative;
  align-self: end;
  justify-self: end;
  width: 100%;
  max-width: 600px;
  clip-path: inset(-160px -160px 0 -160px);
  /* ≈ the bottom fifth of the card */
}
.sob-peek::before {
  content: "";
  position: absolute;
  left: -110px;
  right: -110px;
  top: -110px;
  bottom: -20px;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 62% 58% at 50% 45%, color-mix(in srgb, var(--accent3) 55%, transparent), color-mix(in srgb, var(--accent3) 18%, transparent) 45%, transparent 72%); /* accent3 + white: the plain accent vanished on the accent-gradient section */
}
.sob-peek .sob {
  width: 100% !important;
  position: relative;
  z-index: 1;
  margin-bottom: -22%;
}
.sob-peek .ss-card {
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.28), 0 0 34px 4px rgba(255, 255, 255, 0.22), 0 0 120px 18px color-mix(in srgb, var(--accent3) 65%, transparent), 0 30px 80px rgba(0, 0, 0, 0.55);
}
.sob-peek .ss-reflection {
  display: none;
}

@media (max-width: 991.98px) {
  .sob-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .sob-copy {
    padding-bottom: 0;
  }
  .sob-priv {
    grid-template-columns: 1fr;
  }
  .sob-peek {
    justify-self: start;
  }
}
.ft-5 {
  grid-template-columns: 2fr repeat(5, 1fr);
  gap: 40px;
}

@media (max-width: 900px) {
  .ft-5 {
    grid-template-columns: 1fr 1fr 1fr;
  }
}
/* ============================================================
   Public navbar mega menu (desktop ≥ 992px)
   Template: "1A list + explainer panel" from the menu explorations artifact
   (44569771), recoloured with the theme vars so it follows violet / dark / blue.
   Structure (see _PublicNavbar.cshtml):
     li.tr-mm-item > a.nav-link (the page link — one page, one item)
                   > .tr-mm-panel > .tr-mm-list (a.tr-mm-row …) + .tr-mm-feat
   Below 992px the panels are hidden and the Bootstrap collapse shows the flat links.
   ============================================================ */
/* Brand wordmark takes the signature gradient (template topbar) */
.tr-navbar .brand-name {
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Top items: mono eyebrow style + status dot (template 1A) */
.tr-navbar .nav-link {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 2.5px;
  padding: 10px 14px;
  color: var(--text2) !important;
  transition: color 0.15s;
}
.tr-navbar .nav-link::after {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.2);
  transition: background 0.15s, box-shadow 0.15s;
}

.tr-navbar .nav-link:hover,
.tr-navbar .nav-link.active,
.tr-mm-item.open > .nav-link {
  color: var(--accent3, var(--accent)) !important;
}

.tr-navbar .nav-link.active::after,
.tr-mm-item.open > .nav-link::after {
  background: var(--accent);
  box-shadow: 0 0 8px var(--accent);
}

@media (min-width: 992px) {
  .tr-navbar .navbar-nav {
    gap: 4px;
  }
  .tr-mm-item {
    position: relative;
  }
  /* hover bridge across the gap between the item and its panel */
  .tr-mm-item.open::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 14px;
  }
  .tr-mm-panel {
    position: absolute;
    z-index: 1040;
    top: calc(100% + 10px);
    left: 50%;
    width: 640px;
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    background: var(--bg3); /* solid: a translucent panel let the page bleed through and hurt legibility */
    border: 1px solid rgba(var(--accent-rgb), 0.22);
    border-radius: 14px;
    box-shadow: 0 32px 80px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(0, 0, 0, 0.4);
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(-50%) translateY(6px);
    transition: opacity 0.2s ease, transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.2s;
    text-align: left;
  }
  .tr-mm-panel::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--grad);
  }
  .tr-mm-item.open .tr-mm-panel {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
  }
  .tr-mm-list {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 16px 10px;
  }
  .tr-mm-row {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: 12px;
    border-radius: 10px;
    border: 1px solid transparent;
    color: inherit;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
  }
  .tr-mm-row:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
  }
  .tr-mm-row.on {
    background: rgba(var(--accent-rgb), 0.08);
    border-color: rgba(var(--accent-rgb), 0.3);
  }
  .tr-mm-ic {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid rgba(var(--accent-rgb), 0.35);
    background: rgba(var(--accent-rgb), 0.08);
    color: var(--accent3, var(--accent));
  }
  .tr-mm-ic svg {
    width: 18px;
    height: 18px;
  }
  .tr-mm-txt {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
  }
  .tr-mm-name {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    color: var(--text);
  }
  .tr-mm-desc {
    font-family: var(--font-body);
    font-size: 12px;
    line-height: 1.45;
    color: var(--text2);
  }
  .tr-mm-feat {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 20px;
    padding: 24px 24px 22px;
    background: rgba(var(--accent-rgb), 0.05);
    border-left: 1px solid rgba(var(--accent-rgb), 0.16);
  }
  .tr-mm-eyebrow {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 100px;
    margin-bottom: 12px;
    border: 1px solid rgba(var(--accent-rgb), 0.35);
    background: rgba(var(--accent-rgb), 0.1);
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--accent3, var(--accent));
  }
  .tr-mm-title {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: 34px;
    line-height: 1.05;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--text);
    margin-bottom: 10px;
    text-wrap: balance;
  }
  .tr-mm-long {
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 1.6;
    color: var(--text2);
    margin: 0;
  }
  .tr-mm-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .tr-mm-meta {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--text3);
    white-space: nowrap;
  }
  .tr-mm-open {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--accent3, var(--accent));
    text-decoration: none;
    white-space: nowrap;
  }
  .tr-mm-open:hover, .tr-mm-open:focus-visible {
    color: var(--text);
  }
}
@media (max-width: 991.98px) {
  .tr-mm-panel {
    display: none;
  }
  .tr-navbar .nav-link::after {
    display: none;
  }
  .tr-navbar .nav-link {
    padding: 10px 4px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tr-mm-panel, .tr-navbar .nav-link, .tr-mm-row {
    transition: none;
  }
}
/* ============================================================
   Funded page — "Our challenges" = the App's /App/Challenges block, AS IS.
   The app stylesheet is imported UNCHANGED; the only additions are the section
   spacing and the 90% scale wrapper ("a bit smaller"). Do not restyle .ch-* here.
   ============================================================ */
.ch-page {
  max-width: 1480px;
  margin: 0 auto;
}

.ch-panel {
  padding: 40px;
}
@media (max-width: 720px) {
  .ch-panel {
    padding: 22px 16px;
  }
}

.ch-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
  margin-bottom: 26px;
}

.ch-eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--app-text2);
}

.ch-title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 60px;
  line-height: 0.9;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin: 0;
  color: var(--app-text);
}
@media (max-width: 720px) {
  .ch-title {
    font-size: 44px;
  }
}

.ch-sub {
  font-size: 15px;
  line-height: 1.6;
  color: var(--app-text2);
  margin: 0;
}

.ch-filters {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 26px;
}

.ch-filt-k {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--app-text3);
}
.ch-filt-k.ch-filt-k2 {
  margin-left: 8px;
}

.ch-seg {
  display: flex;
  gap: 4px;
  background: var(--app-surface);
  border: 1px solid var(--app-border);
  padding: 4px;
  border-radius: 11px;
}

.ch-seg-btn {
  flex: 0 0 auto;
  min-width: 84px;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  padding: 10px 14px;
  border-radius: 9px;
  cursor: pointer;
  border: none;
  background: transparent;
  color: var(--app-text2);
  transition: all 0.18s var(--ease, ease);
}
.ch-seg-btn:hover {
  color: var(--app-text);
}
.ch-seg-btn.on {
  background: var(--app-grad);
  color: var(--app-bg);
  box-shadow: 0 6px 24px rgba(var(--accent-rgb), 0.4);
}

.ch-count {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--app-text3);
  margin-left: 8px;
}

.ch-carousel {
  display: flex;
  align-items: center;
  gap: 10px;
}

.ch-viewport {
  flex: 1;
  overflow: hidden;
}

.ch-track {
  display: flex;
  gap: 16px;
  align-items: stretch;
  transition: transform 0.4s var(--ease, ease);
  will-change: transform;
}

.ch-empty {
  flex: 1 0 100%;
  text-align: center;
  padding: 80px 20px;
  color: var(--app-text2);
}

.ch-nav {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--app-surface);
  border: 1px solid var(--app-border);
  color: var(--app-text2);
  cursor: pointer;
  transition: all 0.2s var(--ease, ease);
}
.ch-nav svg {
  width: 18px;
  height: 18px;
}
.ch-nav:hover:not(:disabled) {
  border-color: var(--app-border-h);
  color: var(--app-text);
  background: rgba(var(--accent-rgb), 0.12);
}
.ch-nav:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
@media (max-width: 680px) {
  .ch-nav {
    width: 38px;
    height: 38px;
  }
}

.ch-dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 22px;
}

.ch-dot {
  width: 28px;
  height: 4px;
  border: none;
  border-radius: 100px;
  background: var(--app-border);
  cursor: pointer;
  padding: 0;
  transition: all 0.25s var(--ease, ease);
}
.ch-dot.on {
  background: var(--app-accent);
  width: 46px;
}
.ch-dot:hover:not(.on) {
  background: var(--app-text3);
}

.ch-card {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 24px;
  border-radius: 16px;
  background: var(--app-card-bg);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--app-border);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
  transition: border-color 0.2s var(--ease, ease), transform 0.2s var(--ease, ease);
}
.ch-card:hover {
  border-color: var(--app-border-h);
  transform: translateY(-2px);
}

.ch-ribbon {
  position: absolute;
  top: 20px;
  right: -52px;
  width: 176px;
  transform: rotate(45deg);
  text-align: center;
  padding: 5px 0;
  background: var(--app-grad);
  color: var(--app-bg);
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  z-index: 3;
  pointer-events: none;
}

.ch-card-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-right: 64px;
}

.ch-card-name {
  font-family: var(--font-display);
  font-size: 26px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  line-height: 1;
  color: var(--app-text);
}

.ch-card-emoji {
  font-size: 16px;
  line-height: 1;
}

.ch-funded-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-top: 8px;
}

.ch-funded-k {
  font-family: var(--font-mono);
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--app-text3);
}

.ch-funded-v {
  font-family: var(--font-display);
  font-size: 26px;
  letter-spacing: 1px;
  line-height: 1;
  color: var(--app-text);
  transition: filter 0.15s;
}
.ch-funded-v.pulse {
  filter: brightness(1.5);
}

.ch-entry {
  margin-top: 12px;
  padding: 14px 16px;
  border-radius: 13px;
  background: rgba(var(--accent-rgb), 0.09);
  border: 1px solid var(--app-border-h);
}

.ch-entry-k {
  font-family: var(--font-mono);
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--app-text2);
}

.ch-entry-amt-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-top: 5px;
}

.ch-entry-amt {
  font-family: var(--font-display);
  font-size: 46px;
  letter-spacing: 1px;
  line-height: 0.9;
  background: var(--app-grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  transition: filter 0.15s;
}
.ch-entry-amt.pulse {
  filter: brightness(1.4);
}

.ch-entry-sym {
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 1px;
  color: var(--app-accent3);
}

.ch-entry-sub {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--app-text3);
  margin-top: 5px;
}

.ch-tiles {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 10px;
}

.ch-tile {
  position: relative;
  padding: 11px 12px;
  border-radius: 11px;
  background: var(--app-surface);
  border: 1px solid var(--app-border);
}

.ch-tile-click {
  display: block;
  width: 100%;
  text-align: left;
  font: inherit;
  color: inherit;
  cursor: pointer;
  transition: border-color 0.18s var(--ease, ease), background 0.18s var(--ease, ease), transform 0.12s var(--ease, ease);
}
.ch-tile-click:hover {
  border-color: var(--app-border-h);
  background: rgba(var(--accent-rgb), 0.08);
  transform: translateY(-1px);
}
.ch-tile-click:active {
  transform: translateY(0);
}
.ch-tile-click:hover .ch-tile-ico {
  opacity: 1;
  color: var(--app-accent3);
}

.ch-tile-ico {
  position: absolute;
  top: 9px;
  right: 9px;
  display: inline-flex;
  opacity: 0.4;
  color: var(--app-text3);
  transition: opacity 0.18s var(--ease, ease), color 0.18s var(--ease, ease);
}
.ch-tile-ico svg {
  width: 13px;
  height: 13px;
}

.ch-tile-k {
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--app-text3);
}

.ch-tile-v {
  font-family: var(--font-display);
  font-size: 24px;
  letter-spacing: 1px;
  line-height: 1;
  margin-top: 4px;
  color: var(--app-text);
}
.ch-tile-v.gold {
  color: var(--app-gold);
}

.ch-tile-sub {
  font-family: var(--font-mono);
  font-size: 8.5px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--app-text3);
  margin-top: 3px;
}

.ch-desc {
  font-size: 13px;
  line-height: 1.5;
  color: var(--app-text2);
  margin: 14px 0 0;
  min-height: 58px;
  text-wrap: pretty;
}

.ch-divider {
  height: 1px;
  background: var(--app-border);
  margin: 16px 0 12px;
}

.ch-controls {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.ch-slider-label {
  font-family: var(--font-body);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--app-text);
}

.ch-slider-badge {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.8px;
  padding: 4px 9px;
  border-radius: 6px;
  color: var(--app-accent3);
  background: rgba(var(--accent-rgb), 0.14);
  border: 1px solid var(--app-border);
  white-space: nowrap;
  transition: filter 0.15s;
}
.ch-slider-badge.pulse {
  filter: brightness(1.4);
}

.ch-static-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.ch-slider {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  -moz-column-gap: 12px;
       column-gap: 12px;
}

.ch-slider-head {
  display: contents;
}

.ch-slider .ch-slider-label {
  grid-column: 1;
  grid-row: 1;
  white-space: nowrap;
}

.ch-slider .ch-slider-track {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
}

.ch-slider .ch-slider-badge {
  grid-column: 3;
  grid-row: 1;
}

.ch-slider-track {
  position: relative;
  height: 26px;
  display: flex;
  align-items: center;
  cursor: pointer;
}

.ch-slider-rail {
  position: absolute;
  left: 0;
  right: 0;
  height: 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid var(--app-border);
}

.ch-slider-fill {
  position: absolute;
  left: 0;
  height: 6px;
  border-radius: 999px;
  background: var(--app-grad);
  box-shadow: 0 6px 24px rgba(var(--accent-rgb), 0.4);
  pointer-events: none;
}

.ch-slider-thumb {
  position: absolute;
  width: 20px;
  height: 20px;
  margin-left: -10px;
  border-radius: 50%;
  background: var(--app-accent);
  border: 3px solid var(--app-bg);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.5), 0 0 0 1px var(--app-border-h);
  pointer-events: none;
}

.ch-slider .bd-slider {
  position: absolute;
  left: -10px;
  right: -10px;
  width: calc(100% + 20px);
  height: 26px;
  margin: 0;
  opacity: 0;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  background: transparent;
}

.ch-slider-ticks {
  display: none;
  align-items: center;
  justify-content: space-between;
  margin-top: 6px;
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.8px;
  color: var(--app-text3);
}

.ch-metrics {
  display: flex;
  flex-direction: column;
  gap: 11px;
}

.ch-metric {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.ch-metric-label {
  display: flex;
  align-items: center;
  gap: 7px;
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--app-text2);
}
.ch-metric-label svg {
  color: var(--app-text3);
  flex-shrink: 0;
}

.ch-chip {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: 6px;
}
.ch-chip.green {
  color: var(--app-green);
  background: rgba(34, 197, 94, 0.13);
}
.ch-chip.red {
  color: var(--app-red);
  background: rgba(239, 68, 68, 0.13);
}
.ch-chip.gold {
  color: var(--app-gold);
  background: rgba(245, 197, 24, 0.13);
}

.ch-ghost-btn {
  width: 100%;
  margin: 16px 0;
  padding: 12px;
  border-radius: 10px;
  background: rgba(var(--accent-rgb), 0.08);
  border: 1px solid var(--app-border);
  color: var(--app-accent3);
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.18s var(--ease, ease);
}
.ch-ghost-btn:hover {
  background: rgba(var(--accent-rgb), 0.14);
  border-color: var(--app-border-h);
}

.ch-summary {
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin-bottom: 18px;
}

.ch-summary-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ch-summary-k {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--app-text3);
}

.ch-summary-v {
  font-family: var(--font-display);
  font-size: 22px;
  letter-spacing: 1px;
  color: var(--app-text);
}
.ch-summary-v.grad {
  background: var(--app-grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.ch-buy-btn {
  width: 100%;
  margin-top: auto;
  padding: 15px;
  border: none;
  border-radius: 11px;
  background: var(--app-grad);
  color: var(--app-bg);
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 6px 24px rgba(var(--accent-rgb), 0.4);
  transition: transform 0.2s var(--ease, ease), box-shadow 0.2s var(--ease, ease);
}
.ch-buy-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 36px rgba(var(--accent-rgb), 0.65);
}

.ch-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1050;
  background: rgba(0, 0, 0, 0.72);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  transition: opacity 0.25s ease;
}
.ch-modal-overlay.open {
  opacity: 1;
}
.ch-modal-overlay.open .ch-modal {
  transform: translateY(0);
}

.ch-modal {
  position: relative;
  background: linear-gradient(180deg, var(--app-surface2) 0%, var(--app-surface3) 100%);
  border: 1px solid var(--app-border);
  border-radius: 16px;
  width: 100%;
  max-width: 540px;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 28px 72px rgba(0, 0, 0, 0.65), 0 0 0 1px rgba(255, 255, 255, 0.04);
  display: flex;
  flex-direction: column;
  transform: translateY(20px);
  transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.ch-modal-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 30px;
  height: 30px;
  background: transparent;
  border: 1px solid var(--app-border);
  border-radius: 8px;
  color: var(--app-text2);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  z-index: 2;
}
.ch-modal-close:hover {
  border-color: var(--app-text);
  color: var(--app-text);
}

.ch-modal-header {
  padding: 26px 28px 18px;
  border-bottom: 1px solid var(--app-border);
  position: relative;
}

.ch-modal-eyebrow {
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 2.5px;
  color: var(--app-accent3);
  text-transform: uppercase;
  margin-bottom: 8px;
}

.ch-modal-name {
  font-family: var(--font-display);
  font-size: 28px;
  letter-spacing: 2px;
  color: var(--app-text);
  margin: 0 0 12px;
  line-height: 1;
}

.ch-modal-chain {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}

.ph-badge {
  font-family: var(--font-mono);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  padding: 4px 8px;
  border-radius: 100px;
  white-space: nowrap;
}
.ph-badge.challenge {
  background: rgba(var(--accent-rgb), 0.2);
  color: var(--app-accent3);
  border: 1px solid rgba(var(--accent-rgb), 0.35);
}
.ph-badge.eval {
  background: rgba(255, 149, 0, 0.15);
  color: #FF9500;
  border: 1px solid rgba(255, 149, 0, 0.35);
}
.ph-badge.funded {
  background: rgba(34, 197, 94, 0.18);
  color: var(--app-green);
  border: 1px solid rgba(34, 197, 94, 0.35);
}

.ph-arr {
  font-size: 13px;
  color: var(--app-text3);
  line-height: 1;
  flex-shrink: 0;
}

.ch-modal-body {
  padding: 18px 28px;
  overflow-y: auto;
}

.ch-modal-table {
  width: 100%;
  border-collapse: collapse;
}
.ch-modal-table thead th {
  font-family: var(--font-mono);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--app-text3);
  padding: 0 8px 10px;
  text-align: center;
}
.ch-modal-table thead th.ch-mt-label {
  text-align: left;
  padding-left: 0;
}
.ch-modal-table thead th.ch-mt-ph.challenge {
  color: var(--app-accent3);
}
.ch-modal-table thead th.ch-mt-ph.eval {
  color: #FF9500;
}
.ch-modal-table thead th.ch-mt-ph.funded {
  color: var(--app-green);
}
.ch-modal-table tbody tr {
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
.ch-modal-table tbody tr:last-child {
  border-bottom: none;
}
.ch-modal-table tbody td {
  padding: 9px 8px;
  text-align: center;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  color: var(--app-text);
}
.ch-modal-table .ch-mt-label {
  text-align: left;
  padding-left: 0;
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1px;
  color: var(--app-text3);
  text-transform: uppercase;
  white-space: nowrap;
  width: 118px;
}
.ch-modal-table .ch-mt-val.uniform {
  font-size: 12px;
  background: rgba(255, 255, 255, 0.03);
}
.ch-modal-table .ch-mt-val.green {
  color: var(--app-green);
}
.ch-modal-table .ch-mt-val.red {
  color: var(--app-red);
}
.ch-modal-table .ch-mt-val.orange {
  color: #FF9500;
}
.ch-modal-table .ch-mt-val.gold {
  color: var(--app-gold);
}
.ch-modal-table .ch-mt-val.accent {
  color: var(--app-accent3);
}
.ch-modal-table .ch-mt-val.muted {
  color: var(--app-text3);
  font-weight: 400;
  font-style: italic;
}

.ch-modal-footer {
  padding: 18px 28px 26px;
  border-top: 1px solid var(--app-border);
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: linear-gradient(180deg, rgba(245, 197, 24, 0.04) 0%, rgba(245, 197, 24, 0.02) 100%);
}

.ch-modal-balance {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.ch-modal-balance .ch-mb-label {
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--app-text3);
  text-transform: uppercase;
}
.ch-modal-balance .ch-mb-val {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 700;
  color: var(--app-text);
}
.ch-modal-balance .ch-mb-val.ch-mb-short {
  color: var(--app-red);
}

.ch-modal-buy {
  width: 100%;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 700;
  color: #0A0414;
  background: linear-gradient(135deg, #D4A20F 0%, var(--app-gold) 50%, #F5E18A 100%);
  border: none;
  border-radius: 8px;
  padding: 15px;
  cursor: pointer;
  letter-spacing: 0.3px;
  transition: all 0.25s;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 4px 14px rgba(245, 197, 24, 0.22);
  position: relative;
  overflow: hidden;
}
.ch-modal-buy::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.14) 0%, transparent 100%);
  pointer-events: none;
}
.ch-modal-buy.ch-buy-ready:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(245, 197, 24, 0.5);
}
.ch-modal-buy.ch-buy-disabled, .ch-modal-buy[disabled] {
  background: var(--app-surface3);
  color: var(--app-text3);
  border: 1px solid var(--app-border);
  box-shadow: none;
  cursor: not-allowed;
  transform: none;
}
.ch-modal-buy.ch-buy-disabled::before, .ch-modal-buy[disabled]::before {
  display: none;
}

.ch-modal-hint {
  font-family: var(--font-body);
  font-size: 11px;
  color: var(--app-text3);
  text-align: center;
  margin: 0;
  line-height: 1.6;
}

.ch-success {
  text-align: center;
  padding: 4px 0 8px;
}

.ch-success-art {
  width: 88px;
  height: 88px;
  margin: 0 auto 20px;
  border-radius: 50%;
  background: rgba(var(--accent-rgb), 0.12);
  border: 2px solid rgba(var(--accent-rgb), 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--app-accent3);
  animation: ch-success-ring 2.4s ease-out infinite;
}
.ch-success-art svg {
  width: 34px;
  height: 34px;
}

@keyframes ch-success-ring {
  0% {
    box-shadow: 0 0 0 0 rgba(var(--accent-rgb), 0.35);
  }
  60% {
    box-shadow: 0 0 0 12px rgba(var(--accent-rgb), 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(var(--accent-rgb), 0);
  }
}
.ch-success-eyebrow {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--app-green);
  margin-bottom: 6px;
}

.ch-success-h {
  font-family: var(--font-display);
  font-size: 38px;
  letter-spacing: 0.04em;
  line-height: 1;
  margin-bottom: 22px;
  color: var(--app-text);
}

.ch-plate-l {
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--app-text3);
  margin-bottom: 8px;
}

.ch-plate {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 12px 20px;
  background: var(--app-bg);
  border: 1px solid var(--app-border);
  border-radius: 10px;
  box-shadow: inset 0 0 0 1px var(--app-accent), 0 0 22px rgba(var(--accent-rgb), 0.2);
  margin-bottom: 14px;
}

.ch-plate-digit {
  font-family: var(--font-display);
  font-size: 34px;
  letter-spacing: 0.08em;
  color: var(--app-accent3);
  opacity: 0;
  transform: translateY(6px);
  animation: ch-digit-in 0.35s ease forwards;
}

@keyframes ch-digit-in {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.ch-tok-badge {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--app-green);
  background: rgba(var(--green-rgb, 34, 197, 94), 0.1);
  border: 1px solid rgba(var(--green-rgb, 34, 197, 94), 0.25);
  border-radius: 20px;
  padding: 4px 12px;
  margin-bottom: 16px;
  animation: ch-badge-in 0.4s 0.3s ease both;
}

@keyframes ch-badge-in {
  from {
    opacity: 0;
    transform: scale(0.85);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.ch-success-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  margin-top: 4px;
}

.ch-success-stat {
  padding: 10px 8px;
  background: var(--app-surface2);
  border: 1px solid var(--app-border);
  border-radius: 8px;
}

.ch-ss-l {
  font-family: var(--font-mono);
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--app-text3);
  margin-bottom: 3px;
}

.ch-ss-v {
  font-family: var(--font-display);
  font-size: 18px;
  letter-spacing: 0.02em;
  color: var(--app-text);
  line-height: 1;
}

.ch-success-auto {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--app-text3);
  letter-spacing: 0.06em;
  text-align: center;
  margin-bottom: 10px;
}
.ch-success-auto #chSuccessCountdown {
  color: var(--app-text2);
}

.ch-success-btns {
  display: flex;
  gap: 10px;
}

.ch-success-close {
  flex: 0 0 auto;
  padding: 0 22px;
  height: 44px;
  background: transparent;
  border: 1px solid var(--app-border);
  border-radius: 8px;
  cursor: pointer;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--app-text2);
  transition: border-color 0.2s, color 0.2s;
}
.ch-success-close:hover {
  border-color: var(--app-text2);
  color: var(--app-text);
}

.ch-success-trade {
  flex: 1;
  height: 44px;
  background: var(--app-accent);
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff;
  transition: filter 0.2s;
}
.ch-success-trade:hover {
  filter: brightness(1.12);
}

.fc-section {
  padding-top: 48px;
  padding-bottom: 72px;
}

.fc-embed {
  zoom: 0.9;
}

@media (max-width: 991.98px) {
  .fc-embed {
    zoom: 1;
  }
}
/* ============================================================
   Play hero — live master leaderboard: podium (top 3) + ranked strip (4–10).
   Markup: _PlayPodium.cshtml, logic: play.js. Theme vars only.
   ============================================================ */
.pd {
  width: 100%;
  max-width: 980px;
  margin: 28px auto 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.pd-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.pd-live {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--text2);
}

.pd-live-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--green, #22c55e);
  box-shadow: 0 0 8px var(--green, #22c55e);
  animation: pd-pulse 2s infinite;
}

.pd-formats {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.pd-formats span {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
  padding: 4px 10px;
  border: 1px solid var(--border);
  border-radius: 100px;
}

/* ── Podium ── */
.pd-podium {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  align-items: end;
}

.pd-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
  padding: 22px 16px 18px;
  border-radius: 16px;
  background: var(--card-bg);
  border: 1px solid var(--border);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35);
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s, border-color 0.3s;
}
.pd-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  border-radius: 16px 16px 0 0;
  background: var(--grad);
  opacity: 0.5;
}
.pd-card.p1 {
  padding-top: 30px;
  padding-bottom: 26px;
  border-color: rgba(245, 197, 24, 0.45);
  background: linear-gradient(180deg, rgba(245, 197, 24, 0.1), var(--card-bg) 55%);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45), 0 0 40px rgba(245, 197, 24, 0.12);
}
.pd-card.p1::before {
  background: linear-gradient(90deg, #F5C518, #fbbf24);
  opacity: 1;
}
.pd-card.p2 {
  border-color: rgba(192, 192, 200, 0.35);
  background: linear-gradient(180deg, rgba(192, 192, 200, 0.08), var(--card-bg) 55%);
}
.pd-card.p2::before {
  background: linear-gradient(90deg, #c0c0c8, #e5e7eb);
  opacity: 0.9;
}
.pd-card.p3 {
  border-color: rgba(205, 127, 50, 0.35);
  background: linear-gradient(180deg, rgba(205, 127, 50, 0.09), var(--card-bg) 55%);
}
.pd-card.p3::before {
  background: linear-gradient(90deg, #cd7f32, #e0a060);
  opacity: 0.9;
}
.pd-card.pd-in {
  animation: pd-up 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.pd-rank {
  position: absolute;
  top: 10px;
  left: 14px;
  font-family: var(--font-display);
  font-size: 22px;
  letter-spacing: 1px;
  color: var(--text3);
}
.p1 .pd-rank {
  color: #F5C518;
}
.p2 .pd-rank {
  color: #c0c0c8;
}
.p3 .pd-rank {
  color: #cd7f32;
}

.pd-move {
  position: absolute;
  top: 12px;
  right: 14px;
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 1px;
  color: var(--text3);
}
.pd-move.up {
  color: var(--green, #22c55e);
}
.pd-move.dn {
  color: var(--red, #ef4444);
}
.pd-move.new {
  color: var(--accent3, var(--accent));
}

.pd-av {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--grad);
  color: #000;
  font-family: var(--font-display);
  font-size: 24px;
  border: 2px solid var(--bg);
  box-shadow: 0 0 0 2px var(--border-h);
}
.pd-av img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.p1 .pd-av {
  width: 68px;
  height: 68px;
  box-shadow: 0 0 0 2px rgba(245, 197, 24, 0.7), 0 0 24px rgba(245, 197, 24, 0.35);
}

.pd-name {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pd-lvl {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
}

.pd-score {
  font-family: var(--font-display);
  font-size: 34px;
  line-height: 1;
  letter-spacing: 1px;
  color: var(--text);
  margin-top: 4px;
}
.p1 .pd-score {
  font-size: 44px;
  background: linear-gradient(135deg, #F5C518, #fbbf24);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.pd-score-lbl {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--text3);
}

/* ── Ranked strip (4–10) ── */
.pd-strip-wrap {
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%);
}
.pd-strip-wrap::-webkit-scrollbar {
  display: none;
}

.pd-strip {
  display: flex;
  gap: 8px;
  padding: 2px 24px;
  width: -moz-max-content;
  width: max-content;
  min-width: 100%;
  justify-content: center;
}

.pd-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 12px 7px 9px;
  border-radius: 100px;
  background: var(--w05, rgba(255, 255, 255, 0.05));
  border: 1px solid var(--border);
  white-space: nowrap;
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s, border-color 0.3s;
}
.pd-chip:hover {
  border-color: var(--border-h);
}
.pd-chip.pd-in {
  animation: pd-up 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.pd-chip-rank {
  font-family: var(--font-display);
  font-size: 15px;
  color: var(--text3);
  min-width: 16px;
  text-align: center;
}

.pd-chip-av {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--grad);
  color: #000;
  font-family: var(--font-display);
  font-size: 12px;
}
.pd-chip-av img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.pd-chip-name {
  font-family: var(--font-body);
  font-size: 12.5px;
  color: var(--text);
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pd-chip-score {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.5px;
  color: var(--accent3, var(--accent));
}

.pd-chip-move {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--text3);
}
.pd-chip-move.up {
  color: var(--green, #22c55e);
}
.pd-chip-move.dn {
  color: var(--red, #ef4444);
}
.pd-chip-move.new {
  color: var(--accent3, var(--accent));
}

.pd-empty {
  text-align: center;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
  padding: 18px;
  border: 1px dashed var(--border);
  border-radius: 12px;
}

@keyframes pd-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.35;
  }
}
@keyframes pd-up {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (max-width: 767.98px) {
  .pd-podium {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .pd-card.p1 {
    order: -1;
  }
  .pd-strip {
    justify-content: flex-start;
  }
}
@media (prefers-reduced-motion: reduce) {
  .pd-card, .pd-chip, .pd-live-dot {
    animation: none !important;
    transition: none;
  }
}
/* ═══ Home — "Everything you need to trade and win" ═══
   Ported from the Claude Design artboard "Tradante A4 Features". Markup: _HomeEverything.cshtml,
   logic + scene markup: everything.js. Values are the artboard's. The artboard's fixed background
   layers (glow / grid / grain) are section-scoped here; tokens the public bundle lacks are set on .ev-sec. */
.ev-sec {
  --ease: cubic-bezier(.4, 0, .2, 1);
  --glow-btn: 0 6px 24px rgba(var(--accent-rgb), .4);
  --ink: #0A0814;
  --green2: #4ade80;
  --red2: #f87171;
  --bg-glow: var(--app-glow);
  --bg-grid: linear-gradient(var(--app-grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--app-grid-line) 1px, transparent 1px);
  --bg-grid-size: 64px 64px;
  --bg-grain: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  position: relative;
  padding: 40px 40px 48px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  overflow: hidden;
  background: var(--app-bg);
  color: var(--app-text);
  font-family: var(--font-body);
}
.ev-sec a {
  color: var(--app-accent3);
}
.ev-sec a:hover {
  color: var(--app-text);
}

.ev-bg-glow {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: var(--bg-glow);
}

.ev-bg-grid {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: var(--bg-grid);
  background-size: var(--bg-grid-size);
  mask-image: radial-gradient(ellipse at center top, black 0%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse at center top, black 0%, transparent 75%);
}

.ev-bg-grain {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.022;
  background-image: var(--bg-grain);
  background-size: 200px 200px;
}

.ev-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1240px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.ev-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0;
}

.ev-title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(30px, 3.6vw, 42px);
  letter-spacing: 2px;
  line-height: 1;
  text-transform: uppercase;
  color: var(--app-text);
}
.ev-title em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.ev-title-ref {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(30px, 3.6vw, 42px);
  letter-spacing: 2px;
  line-height: 1;
  text-transform: uppercase;
  transform: scaleY(-1);
  transform-origin: top;
  opacity: 0.18;
  filter: blur(1.5px);
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), transparent 55%);
  -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), transparent 55%);
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.ev-lede {
  margin: 6px 0 0;
  max-width: 72ch;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--app-text2);
  text-wrap: pretty;
}

.ev-grid {
  display: grid;
  grid-template-columns: minmax(0, 6fr) 1px minmax(0, 6fr);
  gap: 0 32px;
  align-items: stretch;
}

/* left · tab list */
.ev-tabs {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 4px 0;
}

.ev-tab {
  all: unset;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px 16px 10px 0;
  opacity: 0.45;
  transition: opacity 0.35s var(--ease);
}
.ev-tab.on {
  opacity: 1;
}
.ev-tab:focus-visible {
  outline: 2px solid var(--app-accent);
  outline-offset: 2px;
  border-radius: 6px;
}

.ev-tab-label {
  font-family: var(--font-display);
  font-size: 17px;
  letter-spacing: 1.2px;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--app-text2);
  transition: color 0.35s;
}
.ev-tab.on .ev-tab-label {
  color: var(--app-text);
}

.ev-tab-desc {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--app-text2);
  max-width: 56ch;
  text-wrap: pretty;
}

/* center · repositioning scrollbar */
.ev-rail {
  position: relative;
  width: 1px;
  background: var(--app-border);
}

.ev-thumb {
  position: absolute;
  left: -1.5px;
  width: 4px;
  border-radius: 2px;
  background: var(--app-grad);
  box-shadow: 0 0 12px rgba(var(--accent-rgb), 0.7);
  top: 0;
  height: 80px;
  transition: top 0.5s var(--ease), height 0.5s var(--ease);
}

/* right · animated visual */
/* fixed height: every scene (incl. the tucked lower-left window) fits in it, so the section never resizes on tab change */
.ev-visual {
  position: relative;
  align-self: center;
  width: 100%;
  min-width: 0;
  height: 400px;
  padding: 8px 0 0;
  box-sizing: border-box;
}

.ev-visual-glow {
  position: absolute;
  inset: -40px;
  background: radial-gradient(circle at 60% 50%, rgba(var(--accent-rgb), 0.22), transparent 60%);
  pointer-events: none;
}

.ev-scene {
  position: relative;
  color: var(--app-text);
}

/* CTA under the grid → #progression ("Every trade moves you") */
.ev-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding-top: 4px;
}

.ev-cta-sub {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--app-text3);
}

@keyframes ev-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}
@keyframes ev-fade-up {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes a3-in-l {
  from {
    opacity: 0;
    transform: translate(-24px, 16px);
  }
  to {
    opacity: 1;
    transform: translate(0, 0);
  }
}
@keyframes a3-in-r {
  from {
    opacity: 0;
    transform: translate(24px, -16px);
  }
  to {
    opacity: 1;
    transform: translate(0, 0);
  }
}
@keyframes a3-slide {
  from {
    opacity: 0;
    transform: translateX(-12px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes a3-grow-x {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}
@keyframes a3-grow-y {
  from {
    transform: scaleY(0);
  }
  to {
    transform: scaleY(1);
  }
}
@keyframes a3-pop {
  from {
    opacity: 0;
    transform: scale(0.85);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes a3-blink {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.3;
  }
}
@keyframes a3-tick {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-2px);
  }
}
@keyframes a4-day {
  0% {
    opacity: 0;
    transform: translateY(6px);
  }
  15% {
    opacity: 1;
    transform: translateY(0);
  }
  100% {
    opacity: 1;
  }
}
@keyframes a4-arrow {
  0% {
    opacity: 0;
    transform: translateY(4px);
  }
  20% {
    opacity: 1;
    transform: translateY(0);
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@media (max-width: 899.98px) {
  .ev-sec {
    padding: 32px 20px 40px;
  }
  .ev-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .ev-rail {
    display: none;
  }
  .ev-tab-label {
    white-space: normal;
  }
  .ev-visual {
    height: 420px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ev-sec * {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
/* ═══ Home — "Trade everything" products carousel (_HomeProducts.cshtml) ═══
   Ported verbatim from the mockup tradante-products-carousel-a3.html; class names kept, scoped under
   .products. Mockup vars → public bundle: --bg, --accent, --accent3, --accent-rgb, --app-* (per data-theme). */
.products {
  --badge: rgba(var(--accent-rgb), .10);
  position: relative;
  width: 100%;
  max-width: 1280px;
  margin: 8px auto;
  padding: 0;
  box-sizing: border-box;
  color: var(--app-text);
  font-family: var(--font-body);
}
.products *, .products *::before, .products *::after {
  box-sizing: border-box;
}
.products .head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
  margin-bottom: 34px;
}
.products .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 14px;
  border-radius: 100px;
  background: var(--badge);
  border: 1px solid var(--app-border);
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--accent3);
}
.products .eyebrow i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 8px var(--accent);
}
.products h2 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 40px;
  line-height: 1;
  letter-spacing: 2px;
  color: var(--app-text);
}
.products h2 em {
  font-style: normal;
  background: var(--app-grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.products .lede {
  margin: 4px 0 0;
  max-width: 620px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--app-text2);
  font-weight: 300;
}
.products .rail {
  position: relative;
  overflow: hidden;
}
.products .rail::before, .products .rail::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 120px;
  z-index: 2;
  pointer-events: none;
}
.products .rail::before {
  left: 0;
  background: linear-gradient(90deg, var(--bg), transparent);
}
.products .rail::after {
  right: 0;
  background: linear-gradient(270deg, var(--bg), transparent);
}
.products .track {
  display: flex;
  gap: 14px;
  width: -moz-max-content;
  width: max-content;
  padding: 4px 0;
  animation: pr-marquee 40s linear infinite;
}
.products .track:hover {
  animation-play-state: paused;
}
.products .tile {
  flex: none;
  width: 208px;
  height: 80px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 16px;
  border: 1px dashed var(--accent);
  border-radius: 10px;
  background: var(--app-card-bg);
  filter: grayscale(1);
  opacity: 0.6;
  transition: filter 0.25s, opacity 0.25s, border-color 0.25s;
}
.products .tile:hover {
  filter: none;
  opacity: 1;
  border-color: var(--app-border-h);
}
.products .ico {
  flex: none;
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: rgba(var(--accent-rgb), 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent3);
}
.products .txt {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.products .name {
  font-family: var(--font-display);
  font-size: 18px;
  line-height: 1;
  letter-spacing: 1.5px;
  color: var(--app-text);
}
.products .sub {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--app-text2);
}
.products .sub span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.products .sub img {
  flex: none;
  width: 14px;
  height: 14px;
  -o-object-fit: contain;
     object-fit: contain;
  border-radius: 3px;
  display: block;
}
.products .spot {
  flex: none;
  font-size: 7px;
  font-weight: 600;
  letter-spacing: 1px;
  padding: 2px 4px;
  border-radius: 3px;
  border: 1px solid var(--app-border-h);
  color: var(--accent3);
  line-height: 1;
}

@keyframes pr-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .products .track {
    animation: none;
  }
}
/* ═══ Home — "Not another prop firm" (_HomeWhy.cshtml, why.js) ═══
   Ported verbatim from the mockup why-different-section.html. Everything is scoped under .tr-why so the
   mockup's generic names (.tr-card, .tr-btn-outline, .k, .slider, .race, .pm, .term) don't fight the bundle.
   Mockup vars → bundle: --bg-card→--card-bg, --bg-card-2→--bg4, --border-hi→--border-h, --muted→--text2,
   --dim→--text3, --accent-soft→rgba(accent,.14); the mockup's blue rgba(79,142,247,…) → rgba(var(--accent-rgb),…). */
.tr-why {
  --bg-card: var(--card-bg);
  --bg-card-2: var(--bg4);
  --border-hi: var(--border-h);
  --muted: var(--text2);
  --dim: var(--text3);
  --accent-soft: rgba(var(--accent-rgb), .14);
  --ease: cubic-bezier(.2, .8, .2, 1);
  position: relative;
  padding: 96px 40px 120px;
  max-width: 1360px;
  margin: 0 auto;
  box-sizing: border-box;
  color: var(--text);
  font-family: var(--font-body);
  /* grid — minmax(0,1fr) stops any card from growing to fit its content */
  /* 1 · builder with live cost */
  /* 2 · stage race — a marker runs each lane, gates stamp when hit */
  /* 3 · live market */
  /* 4 · terminal event log */
}
.tr-why *, .tr-why *::before, .tr-why *::after {
  box-sizing: border-box;
}
.tr-why .eyebrow {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 14px;
}
.tr-why h2 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(56px, 7vw, 88px);
  line-height: 0.92;
  letter-spacing: 0.01em;
  max-width: 620px;
  color: var(--text);
}
.tr-why h2 em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.tr-why .lede {
  color: var(--muted);
  max-width: 520px;
  margin: 22px 0 0;
  font-size: 17px;
  line-height: 1.55;
}
.tr-why .tr-why-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-top: 56px;
}
.tr-why .tr-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 22px 22px 26px;
  display: flex;
  flex-direction: column;
  min-width: 0;
  box-shadow: none;
  transition: border-color 0.25s;
}
.tr-why .tr-card:hover {
  border-color: var(--border-hi);
}
.tr-why .tr-card.is-hi {
  border-color: rgba(var(--accent-rgb), 0.55);
  box-shadow: 0 0 0 1px rgba(var(--accent-rgb), 0.15) inset, 0 24px 60px -30px rgba(var(--accent-rgb), 0.45);
}
.tr-why .tr-card .vis {
  height: 176px;
  border-radius: 10px;
  background: linear-gradient(180deg, var(--bg-card-2), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--border);
  position: relative;
  overflow: hidden;
  margin-bottom: 22px;
  padding: 16px;
}
.tr-why .tr-card .tag {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--dim);
  margin-bottom: 10px;
}
.tr-why .tr-card.is-hi .tag {
  color: var(--accent);
}
.tr-why .tr-card h3 {
  margin: 0 0 10px;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 28px;
  line-height: 1;
  letter-spacing: 0.02em;
  color: var(--text);
}
.tr-why .tr-card p {
  margin: 0;
  color: var(--muted);
  font-size: 14.5px;
  line-height: 1.55;
  flex: 1;
}
.tr-why .tr-card a {
  color: var(--text);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  margin-top: 18px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--border-hi);
  padding-bottom: 4px;
  width: -moz-max-content;
  width: max-content;
}
.tr-why .tr-card a:hover {
  border-color: var(--accent);
  color: var(--text);
}
.tr-why .tr-card a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}
.tr-why .k {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--dim);
}
.tr-why .builder {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.tr-why .slider {
  display: grid;
  grid-template-columns: 52px 1fr 46px;
  align-items: center;
  gap: 10px;
}
.tr-why .slider .t {
  height: 4px;
  border-radius: 2px;
  background: var(--border-hi);
  position: relative;
}
.tr-why .slider .t i {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  border-radius: 2px;
  background: var(--grad);
  transition: width 1.1s var(--ease);
}
.tr-why .slider .t b {
  position: absolute;
  top: 50%;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: var(--text);
  border: 3px solid var(--accent);
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 4px var(--accent-soft);
  transition: left 1.1s var(--ease);
}
.tr-why .slider .v {
  font-family: var(--font-display);
  font-size: 19px;
  text-align: right;
  letter-spacing: 0.03em;
}
.tr-why .cost {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  border-top: 1px solid var(--border);
  padding-top: 9px;
}
.tr-why .cost .n {
  font-family: var(--font-display);
  font-size: 24px;
  color: var(--gold);
  letter-spacing: 0.03em;
  font-variant-numeric: tabular-nums;
}
.tr-why .cost .n.bump {
  animation: why-bump 0.5s var(--ease);
}
.tr-why .race {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 22px;
}
.tr-why .lane {
  display: grid;
  grid-template-columns: 44px 1fr 58px;
  align-items: center;
  gap: 10px;
}
.tr-why .lane .track {
  position: relative;
  height: 26px;
}
.tr-why .lane .rail {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  background: var(--border-hi);
  transform: translateY(-50%);
}
.tr-why .lane .fill {
  position: absolute;
  left: 0;
  top: 50%;
  height: 2px;
  width: 0;
  background: var(--grad);
  transform: translateY(-50%);
  transition: width 0.12s linear;
}
.tr-why .lane .pct {
  padding-left: 1px;
  font-family: var(--font-display);
  font-size: 19px;
  letter-spacing: 0.03em;
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
}
.tr-why .lane .pct.done {
  color: var(--green);
}
.tr-why .lane .k small {
  display: block;
  color: var(--accent);
  letter-spacing: 0.06em;
  margin-top: 2px;
  min-height: 12px;
}
.tr-why .gate {
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  height: 20px;
  padding: 0 6px;
  border-radius: 5px;
  border: 1px solid var(--border-hi);
  background: var(--bg-card);
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.08em;
  color: var(--dim);
  display: flex;
  align-items: center;
  white-space: nowrap;
  transition: all 0.35s var(--ease);
}
.tr-why .gate.hit {
  border-color: var(--green);
  color: var(--green);
  background: rgba(34, 197, 94, 0.1);
  box-shadow: 0 0 12px -3px var(--green);
}
.tr-why .gate.hit::before {
  content: "✓ ";
}
.tr-why .runner {
  position: absolute;
  top: 50%;
  left: 0;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--text);
  border: 3px solid var(--accent);
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 4px var(--accent-soft);
  transition: left 0.12s linear;
  z-index: 2;
}
.tr-why .flag {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 20px;
  padding: 0 7px;
  border-radius: 5px;
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  background: var(--bg-card);
  border: 1px solid var(--border-hi);
  color: var(--dim);
  transition: all 0.35s var(--ease);
}
.tr-why .flag.eval {
  color: var(--bg);
  border-color: var(--gold);
  background: var(--gold);
  box-shadow: 0 0 14px -2px var(--gold);
}
.tr-why .flag.on {
  color: var(--bg);
  background: var(--green);
  border-color: var(--green);
  box-shadow: 0 0 14px -2px var(--green);
}
.tr-why .pm {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.tr-why .pm .q {
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.35;
}
.tr-why .pm .q .k {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
}
.tr-why .pm .q .k::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 8px var(--green);
}
.tr-why .pm .bar {
  height: 34px;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  font-family: var(--font-display);
  font-size: 18px;
  letter-spacing: 0.04em;
}
.tr-why .pm .bar span {
  display: flex;
  align-items: center;
  white-space: nowrap;
  padding: 0 10px;
  transition: width 1s var(--ease);
}
.tr-why .pm .yes {
  background: rgba(34, 197, 94, 0.22);
  color: var(--green);
  width: 64%;
  border-right: 1px solid var(--bg);
}
.tr-why .pm .no {
  background: rgba(239, 68, 68, 0.2);
  color: var(--red);
  flex: 1;
  justify-content: flex-end;
}
.tr-why .pm .row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tr-why .pm .row b {
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  transition: color 0.3s;
}
.tr-why .pm .row b.up {
  color: var(--green);
}
.tr-why .pm .row b.dn {
  color: var(--red);
}
.tr-why .pm .flash {
  animation: why-flash 0.5s;
}
.tr-why .term {
  height: 100%;
  display: flex;
  flex-direction: column;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.02em;
  line-height: 1.5;
}
.tr-why .term .head {
  display: flex;
  justify-content: space-between;
  color: var(--dim);
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--border);
  padding-bottom: 6px;
  margin-bottom: 6px;
}
.tr-why .term .head i {
  font-style: normal;
  color: var(--green);
}
.tr-why .term .log {
  flex: 1;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.tr-why .term .ln {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 8px;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.25s, transform 0.25s;
}
.tr-why .term .ln.in {
  opacity: 1;
  transform: none;
}
.tr-why .term .ln .t {
  color: var(--dim);
}
.tr-why .term .ln.sys {
  color: var(--dim);
}
.tr-why .term .ln.eng {
  color: var(--accent);
}
.tr-why .term .ln.pass {
  color: var(--green);
  font-weight: 500;
}
.tr-why .term .ln.fail {
  color: var(--red);
  font-weight: 500;
}
.tr-why .term .ln.breach {
  color: var(--gold);
  font-weight: 500;
}
.tr-why .term .ln.chain {
  color: var(--text);
}
.tr-why .term .cur {
  color: var(--accent);
  animation: why-blink 1s steps(1) infinite;
}
.tr-why .tr-why-foot {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 34px;
  flex-wrap: wrap;
}
.tr-why .tr-why-foot small {
  color: var(--dim);
  font-size: 12.5px;
}
.tr-why .tr-btn-outline {
  width: auto;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0;
  color: var(--text);
  background: transparent;
  border: 1px solid var(--border-hi);
  border-radius: 10px;
  padding: 13px 22px;
  text-decoration: none;
  transition: border-color 0.2s;
}
.tr-why .tr-btn-outline:hover {
  border-color: var(--accent);
  background: transparent;
  transform: none;
}
.tr-why .tr-btn-outline:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

@keyframes why-bump {
  40% {
    transform: translateY(-3px);
  }
}
@keyframes why-flash {
  0% {
    filter: brightness(1.6);
  }
}
@keyframes why-blink {
  50% {
    opacity: 0;
  }
}
@media (max-width: 1100px) {
  .tr-why .tr-why-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 620px) {
  .tr-why .tr-why-grid {
    grid-template-columns: 1fr;
  }
  .tr-why {
    padding: 72px 20px 96px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tr-why * {
    transition: none !important;
    animation: none !important;
  }
}
/* company page variant: centred heading + lede (the cards below are unchanged) */
.tr-why.tr-why-center {
  text-align: center;
}
.tr-why.tr-why-center h2 {
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}
.tr-why.tr-why-center .lede {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.tr-why.tr-why-center .tr-why-grid, .tr-why.tr-why-center .tr-why-grid ~ * {
  text-align: left;
}

/* ═══ Play — "Trading ranks" (_PlayRanks.cshtml, ranks.js) ═══
   Ported from the Claude Design artboard "Tradante Trading Ranks". Values are the artboard's inline styles,
   moved into .lr-* classes; the artboard's fixed page backgrounds (glow / grid / grain) become section-scoped
   layers (.lr-sec on the #progression section, shared with the achievements carousel below the widget). */
.lr-sec {
  /* the public site's own (visible) glow + grid tokens, per theme — the app-shell --app-glow/--app-grid-line
     alphas (.18/.04) were too faint on the section ground */
  --bg-glow: radial-gradient(ellipse 80% 70% at 50% -5%, var(--glow1) 0%, transparent 60%), radial-gradient(ellipse 50% 60% at 92% 55%, var(--glow2) 0%, transparent 60%), radial-gradient(ellipse 45% 50% at 6% 85%, var(--glow2) 0%, transparent 55%);
  --bg-grid: linear-gradient(var(--grid-color) 1px, transparent 1px), linear-gradient(90deg, var(--grid-color) 1px, transparent 1px);
  --bg-grid-size: 64px 64px;
  --bg-grain: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  position: relative;
  overflow: hidden;
}

.lr-bg-glow {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: var(--bg-glow);
}

.lr-bg-grid {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: var(--bg-grid);
  background-size: var(--bg-grid-size);
  mask-image: radial-gradient(ellipse 90% 90% at center top, black 0%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 90% 90% at center top, black 0%, transparent 100%);
}

.lr-bg-grain {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.022;
  background-image: var(--bg-grain);
  background-size: 200px 200px;
}

.lr {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  width: 100%;
  color: var(--app-text);
  font-family: var(--font-body);
}
.lr *, .lr *::before, .lr *::after {
  box-sizing: border-box;
}

.lr-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
}

.lr-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 24px;
  padding: 0 14px;
  border-radius: 100px;
  background: rgba(var(--accent-rgb), 0.1);
  border: 1px solid var(--app-border);
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--app-accent3);
}
.lr-eyebrow i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--app-accent);
  box-shadow: 0 0 8px var(--app-accent);
}

.lr-title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(36px, 4.5vw, 52px);
  letter-spacing: 2px;
  line-height: 1;
  text-transform: uppercase;
  color: var(--app-text);
}
.lr-title em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.lr-sub {
  margin: 0;
  font-size: 14px;
  color: var(--app-text2);
  max-width: 680px;
  line-height: 1.55;
}

.lr-grid {
  width: 100%;
  max-width: 1180px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 40px minmax(0, 1fr);
  height: 400px;
}

/* left · rank list */
.lr-list {
  height: 100%;
  overflow-y: auto;
  padding: 4px 8px 4px 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  scrollbar-width: none;
  mask-image: linear-gradient(to bottom, transparent, black 24px, black calc(100% - 24px), transparent);
  -webkit-mask-image: linear-gradient(to bottom, transparent, black 24px, black calc(100% - 24px), transparent);
}
.lr-list::-webkit-scrollbar {
  display: none;
}

.lr-item {
  all: unset;
  cursor: pointer;
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid transparent;
  background: transparent;
  transition: background 0.2s, border-color 0.2s;
}
.lr-item:hover {
  background: rgba(var(--accent-rgb), 0.06);
  border-color: var(--app-border);
}
.lr-item.on {
  background: rgba(var(--accent-rgb), 0.1);
  border-color: var(--app-border-h);
}
.lr-item:focus-visible {
  outline: 2px solid var(--app-accent);
  outline-offset: 2px;
}

.lr-item-card {
  width: 76px;
  display: block;
  border-radius: 6px;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.45);
}

.lr-item-txt {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.lr-item-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.lr-item-name {
  font-family: var(--font-display);
  font-size: 18px;
  letter-spacing: 1.5px;
  line-height: 1;
  text-transform: uppercase;
  color: var(--app-text);
}

.lr-item-lv {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--app-accent3);
  white-space: nowrap;
}

.lr-item-desc {
  font-size: 12px;
  line-height: 1.45;
  color: var(--app-text2);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* center · rail */
.lr-rail {
  position: relative;
  display: flex;
  justify-content: center;
  padding: 12px 0;
}

.lr-track {
  position: relative;
  width: 3px;
  border-radius: 2px;
  background: var(--app-border);
  cursor: pointer;
  flex: 1;
}

.lr-thumb {
  position: absolute;
  left: -1px;
  width: 5px;
  border-radius: 3px;
  background: var(--app-grad);
  transition: top 0.08s linear;
  top: 0;
  height: 100%;
}

/* right · detail (floating, no card) */
.lr-detail {
  height: 100%;
  padding: 4px 0 4px 24px;
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 12px 22px;
  overflow: hidden;
}

.lr-cardcol {
  grid-row: 1/span 2;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.lr-glow {
  position: absolute;
  left: 10%;
  right: 10%;
  top: 16px;
  height: 90px;
  background: radial-gradient(ellipse, rgba(var(--accent-rgb), 0.55), transparent 70%);
  filter: blur(22px);
  animation: lr-glow 4s ease-in-out infinite;
  pointer-events: none;
}

.lr-float {
  position: relative;
  animation: lr-float 6s ease-in-out infinite;
}

.lr-card {
  width: 180px;
  display: block;
  border-radius: 10px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6), 0 0 32px rgba(var(--accent-rgb), 0.25);
}

.lr-refl-wrap {
  height: 48px;
  overflow: hidden;
  margin-top: 5px;
}

.lr-refl {
  width: 180px;
  display: block;
  border-radius: 10px;
  transform: scaleY(-1);
  opacity: 0.28;
  pointer-events: none;
  mask-image: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, transparent 45%);
  -webkit-mask-image: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, transparent 45%);
}

.lr-info {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.lr-name {
  font-family: var(--font-display);
  font-size: 30px;
  letter-spacing: 2px;
  line-height: 1;
  text-transform: uppercase;
  color: var(--app-text);
}

.lr-metal {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--app-accent3);
}

.lr-desc {
  margin: 6px 0 0;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--app-text2);
  text-wrap: pretty;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.lr-reqs-wrap {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.lr-reqs-lbl {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--app-text3);
  padding-bottom: 6px;
  border-bottom: 1px solid var(--app-border);
}

.lr-reqs {
  overflow-y: auto;
  min-height: 0;
  scrollbar-width: none;
}
.lr-reqs::-webkit-scrollbar {
  display: none;
}

.lr-req {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  border-bottom: 1px solid var(--app-border);
  font-size: 11.5px;
  line-height: 1.3;
  color: var(--app-text);
}

.lr-req-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--app-accent);
}

.lr-req-txt {
  flex: 1;
}

.lr-stats {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.lr-stat {
  border: 1px solid var(--app-border);
  border-radius: 12px;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: rgba(var(--accent-rgb), 0.05);
}

.lr-stat-lbl {
  font-family: var(--font-mono);
  font-size: 8.5px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--app-text3);
  white-space: nowrap;
}

.lr-stat-val {
  font-family: var(--font-display);
  font-size: 26px;
  line-height: 1;
  letter-spacing: 1px;
  color: var(--app-text);
}

.lr-stat-green {
  color: var(--green2, #4ade80);
}

.lr-stat-unit {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 1px;
  color: var(--app-text3);
}

/* entrance: the artboard alternates two identical keyframes to restart the animation on each selection */
.lr-anim {
  animation: lr-fade-up 0.5s var(--ease, cubic-bezier(0.4, 0, 0.2, 1)) both;
}

.lr-anim-2 {
  animation-delay: 0.08s;
}

.lr-anim-3 {
  animation-delay: 0.16s;
}

.lr.alt .lr-anim {
  animation-name: lr-fade-up-b;
}

@keyframes lr-float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-6px);
  }
}
@keyframes lr-glow {
  0%, 100% {
    opacity: 0.55;
  }
  50% {
    opacity: 0.9;
  }
}
@keyframes lr-fade-up {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes lr-fade-up-b {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (max-width: 991.98px) {
  .lr-grid {
    grid-template-columns: 1fr;
    height: auto;
    gap: 24px;
  }
  .lr-list {
    height: 320px;
  }
  .lr-rail {
    display: none;
  }
  .lr-detail {
    height: auto;
    padding-left: 0;
    grid-template-columns: 140px minmax(0, 1fr);
    grid-template-rows: auto auto auto;
  }
  .lr-card, .lr-refl {
    width: 140px;
  }
  .lr-stats {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 575.98px) {
  .lr-detail {
    grid-template-columns: 1fr;
  }
  .lr-cardcol {
    grid-row: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .lr * {
    animation-duration: 0.01ms !important;
  }
}
/* ═══ Play — "Achievements & badges" carousel (_PlayAchievements.cshtml, achievements.js) ═══
   Ported verbatim from the mockup tradante-achievement-badges-a1.html; class names prefixed .ab-*.
   Mockup vars → bundle: --bg (rail fades), --accent/--accent3/--accent-rgb, --gold, --app-* tokens. */
.ab {
  position: relative;
  width: 100%;
  color: var(--app-text);
  font-family: var(--font-body);
}
.ab *, .ab *::before, .ab *::after {
  box-sizing: border-box;
}

.ab-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 22px;
}

.ab-eyebrow {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--app-text3);
  margin-bottom: 8px;
}

.ab-title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 30px;
  line-height: 1;
  letter-spacing: 1.5px;
  color: var(--app-text);
}
.ab-title em {
  font-style: normal;
  background: var(--app-grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.ab-sub {
  margin: 10px 0 0;
  font-size: 14px;
  color: var(--app-text2);
  max-width: 680px;
  line-height: 1.55;
}

.ab-ctrls {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: none;
}
.ab-ctrls button {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: 1px solid var(--app-border);
  background: transparent;
  color: var(--app-text2);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: border-color 0.15s, color 0.15s;
}
.ab-ctrls button:hover {
  border-color: var(--app-border-h);
  color: var(--app-text);
}
.ab-ctrls a {
  margin-left: 8px;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent3);
  text-decoration: none;
  white-space: nowrap;
}
.ab-ctrls a:hover {
  color: var(--app-text);
}

.ab-rail {
  position: relative;
}
.ab-rail::before, .ab-rail::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 48px;
  z-index: 2;
  pointer-events: none;
}
.ab-rail::before {
  left: 0;
  background: linear-gradient(90deg, var(--ab-fade, var(--bg2)), transparent);
}
.ab-rail::after {
  right: 0;
  background: linear-gradient(270deg, var(--ab-fade, var(--bg2)), transparent);
}

.ab-track {
  overflow-x: auto;
  scrollbar-width: none;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: 4px 0 8px;
}
.ab-track::-webkit-scrollbar {
  display: none;
}

.ab-row {
  display: flex;
  gap: 14px;
  width: -moz-max-content;
  width: max-content;
}

.ab-tile {
  position: relative;
  overflow: hidden;
  scroll-snap-align: start;
  flex: none;
  width: 184px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 22px 14px 16px;
  border: 1px dashed var(--app-border-h);
  border-radius: 12px;
  background: rgba(var(--accent-rgb), 0.03);
  transition: border-color 0.2s, background 0.2s, transform 0.2s;
}
.ab-tile:hover {
  border-color: var(--accent);
  background: rgba(var(--accent-rgb), 0.08);
  transform: translateY(-2px);
}
.ab-tile img {
  width: 92px;
  height: auto;
  display: block;
  filter: drop-shadow(0 8px 20px rgba(0, 0, 0, 0.45));
}

.ab-ribbon {
  position: absolute;
  top: 18px;
  right: -38px;
  width: 150px;
  transform: rotate(45deg);
  text-align: center;
  padding: 6px 0;
  background: var(--app-grad);
  color: #fff;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2px;
  line-height: 1;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.ab-inf {
  font-size: 15px;
  line-height: 1;
  vertical-align: -2px;
}

.ab-once {
  position: absolute;
  top: 8px;
  right: 8px;
  display: inline-flex;
  align-items: center;
  padding: 3px 6px;
  border-radius: 4px;
  border: 1px solid var(--app-border);
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 1.2px;
  color: var(--app-text3);
  line-height: 1;
}

.ab-name {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--app-text2);
  text-align: center;
  line-height: 1.4;
}

.ab-reward {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 100px;
  background: rgba(245, 197, 24, 0.08);
  border: 1px solid rgba(245, 197, 24, 0.25);
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1.5px;
  color: var(--gold);
  white-space: nowrap;
}

.ab-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
  padding-top: 18px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--app-text3);
}
.ab-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.ab-legend i {
  width: 8px;
  height: 8px;
  border-radius: 2px;
  display: inline-block;
}
.ab-legend .ab-lg-inf {
  background: var(--app-grad);
}
.ab-legend .ab-lg-once {
  border: 1px solid var(--app-border);
}

@media (max-width: 575.98px) {
  .ab-head {
    flex-direction: column;
    align-items: flex-start;
  }
}
/* ═══ Play — "Ranking" band + TPS simulator (_PlayTps.cshtml, tps.js) ═══
   Ported verbatim from the mockup tps-simulator.html; classes prefixed .tps-*. Mockup tokens → bundle:
   --card → --card-bg, --card-2 → --bg4, --line → --border, --line-strong → --border-h, --muted → --text2,
   --faint → --text3, --accent-2 → --accent2, --accent-dim → rgba(--accent-rgb,.16). The mockup's per-theme
   band background follows the site themes (blue / violet / black = mockup "dark"). */
.tps-band {
  --tps-card: var(--card-bg);
  --tps-card-2: var(--bg4);
  --tps-line: var(--border);
  --tps-line-strong: var(--border-h);
  --tps-muted: var(--text2);
  --tps-faint: var(--text3);
  --tps-accent-2: var(--accent2);
  --tps-accent-dim: rgba(var(--accent-rgb), .16);
  --tps-r: 14px;
  --band: radial-gradient(ellipse 60% 80% at 92% 55%, #7C3AED 0%, rgba(124,58,237,0) 60%), linear-gradient(90deg, #160B2E 0%, #4C1D95 100%);
  width: 100%;
  background: var(--band);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  padding: 56px 24px;
  display: grid;
  place-items: center;
  position: relative;
  color: var(--text);
  font-family: var(--font-body);
}
.tps-band *, .tps-band *::before, .tps-band *::after {
  box-sizing: border-box;
}

html[data-theme=blue] .tps-band {
  --band: radial-gradient(ellipse 60% 80% at 92% 55%, #2457E0 0%, rgba(36,87,224,0) 60%), linear-gradient(90deg, #0B1428 0%, #0F2A6B 100%);
}

html[data-theme=black] .tps-band {
  --band: radial-gradient(ellipse 55% 75% at 92% 55%, rgba(217,26,173,.45) 0%, rgba(217,26,173,0) 60%), linear-gradient(90deg, #07070B 0%, #16081A 100%);
}

.tps-rank {
  width: 100%;
  max-width: 1200px;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 24px 64px;
  align-items: center;
}

.tps-copy {
  padding-top: 8px;
}
.tps-copy .tps-eyebrow {
  color: var(--accent);
  display: block;
  margin-bottom: 14px;
}
.tps-copy h2 {
  margin: 0;
  font: 400 clamp(44px, 5vw, 64px)/0.95 var(--font-display);
  letter-spacing: 0.01em;
  color: var(--text);
}
.tps-copy h2 em {
  font-style: normal;
  background: linear-gradient(90deg, var(--accent), var(--tps-accent-2));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.tps-copy p {
  margin: 18px 0 0;
  font: 400 15px/1.55 var(--font-body);
  color: rgba(240, 240, 244, 0.78);
  max-width: 460px;
}

.tps-right {
  display: grid;
  gap: 18px;
}

.tps-callout {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: auto auto 1fr;
  gap: 16px;
  align-items: center;
  padding: 12px 18px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--tps-r);
  background: rgba(9, 12, 22, 0.78);
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
}
.tps-callout .tps-ico {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid #6b5a1f;
  display: grid;
  place-items: center;
  color: #F5C518;
  font: 500 13px var(--font-mono);
}
.tps-callout h3 {
  margin: 0;
  font: 400 16px/1 var(--font-display);
  letter-spacing: 0.06em;
  white-space: nowrap;
  padding-right: 16px;
  border-right: 1px solid var(--tps-line);
  color: var(--text);
}
.tps-callout p {
  margin: 0;
  font-size: 13px;
  line-height: 1.4;
  max-width: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--tps-muted);
}

/* ---- widget ---- */
.tps {
  width: 100%;
  max-width: 600px;
  background: rgba(9, 12, 22, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.12);
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  border-radius: var(--tps-r);
  overflow: hidden;
}

.tps-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px 0;
}

.tps-eyebrow {
  font: 500 10px/1 var(--font-mono);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--tps-muted);
}

.tps-mode {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font: 500 10px/1 var(--font-mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  padding: 6px 10px;
  border: 1px solid var(--tps-line-strong);
  border-radius: 999px;
}
.tps-mode i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 8px var(--accent);
}

.tps-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 16px;
  padding: 14px 20px 18px;
}

.tps-f {
  /* native level select is kept for the value only; the .tps-dd custom dropdown (rank cards) is what shows */
}
.tps-f label {
  display: block;
  font: 500 10px/1 var(--font-mono);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 8px;
}
.tps-f .tps-in {
  position: relative;
}
.tps-f .tps-in::before {
  content: "$";
  position: absolute;
  left: 13px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--tps-faint);
  font: 500 14px var(--font-mono);
}
.tps-f input, .tps-f select {
  width: 100%;
  height: 40px;
  background: transparent;
  color: var(--text);
  border: 1px dashed rgba(255, 255, 255, 0.22);
  border-radius: 8px;
  padding: 0 14px;
  font: 500 13px var(--font-body);
  outline: none;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  transition: border-color 0.15s;
}
.tps-f input {
  padding-left: 30px;
  font-family: var(--font-mono);
  font-size: 13px;
}
.tps-f .tps-native {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.tps-f select {
  padding-right: 38px;
  color-scheme: dark;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238A94A8' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
}
.tps-f select option {
  background: var(--tps-card);
  color: var(--text);
  font-family: var(--font-body);
}
.tps-f input:focus, .tps-f select:focus {
  border-style: solid;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--tps-accent-dim);
}
.tps-f input::-moz-placeholder {
  color: var(--tps-faint);
}
.tps-f input::placeholder {
  color: var(--tps-faint);
}
.tps-f small {
  display: block;
  margin-top: 5px;
  font: 400 11px var(--font-body);
  color: var(--tps-faint);
}

/* ---- level dropdown with rank cards ---- */
.tps-dd {
  position: relative;
}

.tps-dd-btn {
  width: 100%;
  height: 40px;
  display: flex;
  align-items: center;
  gap: 10px;
  background: transparent;
  color: var(--text);
  border: 1px dashed rgba(255, 255, 255, 0.22);
  border-radius: 8px;
  padding: 0 38px 0 10px;
  font: 500 13px var(--font-body);
  cursor: pointer;
  text-align: left;
  outline: none;
  transition: border-color 0.15s;
}
.tps-dd-btn img {
  width: 34px;
  height: 22px;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 3px;
  flex: none;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
}
.tps-dd-btn span {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tps-dd-btn:focus-visible, .tps-dd.open .tps-dd-btn {
  border-style: solid;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--tps-accent-dim);
}

.tps-dd-chev {
  position: absolute;
  right: 14px;
  top: 50%;
  width: 12px;
  height: 8px;
  transform: translateY(-50%);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238A94A8' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat center;
  transition: transform 0.15s;
}
.tps-dd.open .tps-dd-chev {
  transform: translateY(-50%) rotate(180deg);
}

.tps-dd-list {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  z-index: 20;
  max-height: 264px;
  overflow-y: auto;
  padding: 6px;
  background: var(--tps-card);
  border: 1px solid var(--tps-line-strong);
  border-radius: 10px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5);
}
.tps-dd-list[hidden] {
  display: none;
}

.tps-dd-opt {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px;
  background: transparent;
  border: 0;
  border-radius: 6px;
  color: var(--text);
  font: 500 13px var(--font-body);
  cursor: pointer;
  text-align: left;
  outline: none;
}
.tps-dd-opt img {
  width: 40px;
  height: 26px;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 3px;
  flex: none;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
}
.tps-dd-opt span {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tps-dd-opt em {
  font: 500 11px var(--font-mono);
  font-style: normal;
  color: var(--tps-faint);
}
.tps-dd-opt:hover, .tps-dd-opt:focus-visible {
  background: var(--tps-accent-dim);
}
.tps-dd-opt.on {
  color: var(--accent);
}
.tps-dd-opt.on em {
  color: var(--accent);
}

/* ---- result ---- */
.tps-result {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  padding: 14px 20px 16px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  align-items: end;
}

.tps-steps {
  display: grid;
  gap: 0;
  font: 400 12px var(--font-body);
  color: var(--tps-muted);
}

.tps-step {
  display: grid;
  grid-template-columns: 20px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 5px 0;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
}
.tps-step:last-child {
  border-bottom: 0;
}
.tps-step .op {
  font: 500 12px var(--font-mono);
  color: var(--tps-faint);
  text-align: center;
}
.tps-step .k {
  color: var(--tps-muted);
}
.tps-step .v {
  font: 500 12px var(--font-mono);
  color: var(--text);
  text-align: right;
}
.tps-step .v.pos {
  color: var(--green);
}
.tps-step .v.neg {
  color: var(--red);
}
.tps-step .v .m {
  color: var(--tps-faint);
  font-size: 11px;
  margin-left: 6px;
}

.tps-total {
  text-align: right;
  min-width: 150px;
}
.tps-total .tps-eyebrow {
  margin-bottom: 6px;
}
.tps-total .tps-num {
  font: 400 48px/0.9 var(--font-display);
  color: var(--accent);
  letter-spacing: 0.01em;
  font-variant-numeric: tabular-nums;
}
.tps-total .tps-num.floor {
  color: var(--tps-muted);
}
.tps-total .tps-num.neg {
  color: var(--red);
}
.tps-total .tps-note {
  margin-top: 6px;
  font: 400 11px var(--font-body);
  color: var(--tps-faint);
  max-width: 190px;
  margin-left: auto;
}
.tps-total .tps-note b {
  color: var(--red);
  font-weight: 500;
}

.tps-foot {
  padding: 10px 20px 12px;
  font: 400 11px/1.5 var(--font-body);
  color: var(--tps-faint);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.tps-foot a {
  color: var(--tps-muted);
  -webkit-text-decoration: underline dashed;
          text-decoration: underline dashed;
  text-underline-offset: 3px;
}

@media (max-width: 900px) {
  .tps-rank {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .tps-callout {
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
  }
  .tps-callout p {
    grid-column: 1/-1;
    white-space: normal;
  }
  .tps-callout h3 {
    border: 0;
    white-space: normal;
  }
}
@media (max-width: 520px) {
  .tps-grid {
    grid-template-columns: 1fr;
  }
  .tps-result {
    grid-template-columns: 1fr;
  }
  .tps-total {
    text-align: left;
  }
  .tps-total .tps-note {
    margin-left: 0;
  }
  .tps-total .tps-num {
    font-size: 52px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tps-band * {
    transition: none !important;
  }
}
/* ═══ Home — simulated terminal card (_HomeTerminal.cshtml, terminal.js) ═══
   Ported verbatim from the mockup tradante-terminal-card.html. Card classes .card/.card-chart/.card-foot/.k
   became .tc/.tc-chart/.tc-foot/.tc-k (the site already has a .card); the widget (.tr-trade-widget, .tw-*) is
   the mockup's, untouched. Mockup tokens → bundle: --panel → --card-bg, --line → rgba(--accent-rgb,.16). */
.tc {
  --tc-line: rgba(var(--accent-rgb), .16);
  width: 100%;
  background: var(--card-bg);
  border: 1px solid var(--tc-line);
  border-radius: 12px;
  padding: 22px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45);
  color: var(--text);
  font-family: var(--font-body);
}
.tc *, .tc *::before, .tc *::after {
  box-sizing: border-box;
}
.tc h3 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 22px;
  letter-spacing: 0.02em;
  margin: 8px 0 16px;
  color: var(--text);
}

.tc-k {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #6f7a99;
}

.tc-chart {
  position: relative;
  height: 380px;
  border: 1px solid var(--tc-line);
  border-radius: 6px;
  background: #0b0c1a;
  overflow: hidden;
}

.tc-foot {
  display: flex;
  justify-content: space-between;
  margin-top: 14px;
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #6f7a99;
}
.tc-foot b {
  color: #c3c8d8;
}

/* ===================== TRADANTE TRADE WIDGET ===================== */
.tr-trade-widget {
  cursor: crosshair;
  --tw-up: #2fd3b4;
  --tw-down: #f08a8a;
  --tw-order: #ff6b8f;
  --tw-violet: #8B5CF6;
  --tw-panel: #141633;
  --tw-text: #F0F0F4;
  --tw-muted: #8e91b0;
  position: relative;
  width: 100%;
  height: 100%;
  background: transparent;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  overflow: hidden;
}
.tr-trade-widget canvas {
  display: block;
  width: 100%;
  height: 100%;
}

/* bid / ask one-click buttons — top-left of the chart */
.tw-quote {
  position: absolute;
  left: 12px;
  top: 12px;
  display: flex;
  gap: 8px;
  z-index: 6;
}
.tw-quote button {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  min-width: 108px;
  padding: 7px 11px;
  border-radius: 6px;
  cursor: pointer;
  font-family: var(--font-mono);
  background: rgba(11, 14, 30, 0.85);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  transition: background 0.12s, transform 0.08s;
  font-weight: 400;
}
.tw-quote button:active {
  transform: translateY(1px);
}
.tw-quote .k {
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  opacity: 0.8;
}
.tw-quote .v {
  font-family: var(--font-display);
  font-size: 22px;
  line-height: 1;
  letter-spacing: 0.02em;
}
.tw-quote .bid {
  border: 1px solid rgba(240, 138, 138, 0.55);
  color: var(--tw-down);
}
.tw-quote .bid:hover {
  background: rgba(240, 138, 138, 0.14);
}
.tw-quote .ask {
  border: 1px solid rgba(47, 211, 180, 0.55);
  color: var(--tw-up);
}
.tw-quote .ask:hover {
  background: rgba(47, 211, 180, 0.14);
}

.tw-pill {
  position: absolute;
  display: flex;
  align-items: stretch;
  height: 28px;
  border: 1px solid var(--tw-order);
  border-radius: 6px;
  background: var(--tw-panel);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
  transform: translateY(-50%);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--tw-text);
  white-space: nowrap;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s;
}
.tw-pill.show {
  pointer-events: auto;
  opacity: 1;
}
.tw-pill.glide {
  transition: opacity 0.25s, top 0.55s cubic-bezier(0.4, 0.1, 0.2, 1);
  pointer-events: none;
}
.tw-pill span {
  display: flex;
  align-items: center;
  padding: 0 10px;
  gap: 6px;
}
.tw-pill .b, .tw-pill .s {
  cursor: pointer;
}
.tw-pill .b:hover, .tw-pill .s:hover {
  background: rgba(255, 107, 143, 0.22);
}
.tw-pill.above .b:hover, .tw-pill.above .s:hover {
  background: rgba(139, 92, 246, 0.22);
}
.tw-pill .q {
  background: #1c1f42;
  border-left: 1px solid rgba(255, 107, 143, 0.35);
  border-right: 1px solid rgba(255, 107, 143, 0.35);
  font-size: 10.5px;
}
.tw-pill .hot {
  background: rgba(255, 107, 143, 0.22);
}
.tw-pill.above {
  border-color: var(--tw-violet);
}
.tw-pill.above .q {
  border-color: rgba(139, 92, 246, 0.4);
}
.tw-pill.above .hot {
  background: rgba(139, 92, 246, 0.22);
}
.tw-pill svg {
  width: 11px;
  height: 11px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

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

.tw-tag {
  position: absolute;
  left: 14px;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  height: 22px;
  border-radius: 5px;
  border: 1px solid var(--tw-order);
  background: var(--tw-panel);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.04em;
  white-space: nowrap;
  overflow: hidden;
  color: var(--tw-text);
  animation: twin 0.2s ease-out;
  pointer-events: auto;
}
.tw-tag.drag {
  cursor: ns-resize;
}
.tw-tag .x {
  padding: 0 7px;
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--tw-muted);
  cursor: pointer;
}
.tw-tag .x:hover {
  color: var(--tw-text);
  background: rgba(255, 255, 255, 0.08);
}
.tw-tag span {
  padding: 0 8px;
}
.tw-tag .l {
  font-weight: 600;
  text-transform: uppercase;
}
.tw-tag .px {
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--tw-muted);
}
.tw-tag .pnl {
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  font-weight: 600;
  min-width: 64px;
  text-align: right;
}
.tw-tag .pnl.p {
  color: var(--tw-up);
}
.tw-tag .pnl.n {
  color: var(--tw-down);
}
.tw-tag.pos {
  border-color: var(--tw-up);
}
.tw-tag.pos.short {
  border-color: var(--tw-down);
}
.tw-tag.tp {
  border-color: var(--tw-up);
}
.tw-tag.sl {
  border-color: var(--tw-down);
}

@keyframes twin {
  from {
    opacity: 0;
    transform: translate(-6px, -50%);
  }
  to {
    opacity: 1;
    transform: translateY(-50%);
  }
}
.tw-hud {
  position: absolute;
  right: 86px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  font-family: var(--font-mono);
  pointer-events: none;
}
.tw-hud .lbl {
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--tw-muted);
  text-transform: uppercase;
}
.tw-hud .val {
  font-family: var(--font-display);
  font-size: 34px;
  line-height: 1;
  color: var(--tw-text);
}
.tw-hud .val.p {
  color: var(--tw-up);
}
.tw-hud .val.n {
  color: var(--tw-down);
}
.tw-hud .sub {
  font-size: 10.5px;
  color: var(--tw-muted);
}

.tw-hint {
  display: none;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.04em;
  color: var(--tw-muted);
  opacity: 0.7;
  pointer-events: none;
}

.tw-log {
  position: absolute;
  left: 14px;
  bottom: 18px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-family: var(--font-mono);
  font-size: 10.5px;
  pointer-events: none;
}
.tw-log div {
  color: var(--tw-muted);
  animation: twin 0.25s ease-out;
}
.tw-log b {
  font-weight: 600;
}
.tw-log .p {
  color: var(--tw-up);
}
.tw-log .n {
  color: var(--tw-down);
}

@media (prefers-reduced-motion: reduce) {
  .tw-pill, .tw-tag, .tw-log div {
    animation: none;
    transition: none;
  }
}
@media (max-width: 575.98px) {
  .tc {
    padding: 14px;
  }
  .tc-chart {
    height: 320px;
  }
}
/* ═══ Trade — "The terminal" feature tabs (_PlatformTerminal.cshtml, terminal-features.js, terminal-widgets.js) ═══
   Ported from the Claude Design artboard "Tradante Terminal Features". Values are the artboard's inline styles
   moved into .tf-* classes; the tab bar is the design system's Tabs component CSS (.trd-tabs) verbatim.
   Section backgrounds reuse the Play page's .lr-sec layers. The widgets inject their own CSS at runtime. */
.tf {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  flex-direction: column;
  gap: 32px;
  color: var(--app-text);
  font-family: var(--font-body);
}
.tf *, .tf *::before, .tf *::after {
  box-sizing: border-box;
}

.tf-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 10px;
}

.tf-eyebrow {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--app-accent3);
}

.tf-title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(48px, 6vw, 76px);
  letter-spacing: 2px;
  line-height: 0.95;
  text-transform: uppercase;
  color: var(--app-text);
}
.tf-title em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.tf-lede {
  margin: 10px 0 0;
  max-width: 62ch;
  font-size: 16px;
  line-height: 1.65;
  color: var(--app-text2);
  text-wrap: pretty;
}

.tf-card {
  border: 1px solid var(--app-border);
  border-radius: 16px;
  background: var(--app-card-bg);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
  padding: 24px 32px 32px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}

/* Design system Tabs (components/navigation/Tabs.jsx) */
.trd-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--app-border);
  overflow-x: auto;
  scrollbar-width: none;
}
.trd-tabs::-webkit-scrollbar {
  display: none;
}

.trd-tab {
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  padding: 9px 16px;
  color: var(--app-text3);
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.15s, border-color 0.15s;
}
.trd-tab:hover {
  color: var(--app-text2);
  border-bottom-color: var(--app-border-h);
}
.trd-tab.active {
  color: var(--app-text);
  border-bottom-color: var(--app-accent);
}

.tf-grid {
  display: grid;
  grid-template-columns: minmax(200px, 4fr) minmax(0, 8fr);
  gap: 32px;
  align-items: center;
  min-height: 440px;
}

.tf-copy {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.tf-copy-item {
  display: flex;
  flex-direction: column;
  gap: 12px;
  animation: tf-fade-up 0.5s cubic-bezier(0.4, 0, 0.2, 1) both;
}
.tf-copy-item[hidden] {
  display: none;
}
.tf-copy-item p {
  margin: 0;
  font-size: 15px;
  line-height: 1.7;
  color: var(--app-text2);
  max-width: 46ch;
  text-wrap: pretty;
}

.tf-label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--app-accent3);
}

.tf.alt .tf-copy-item, .tf.alt .tf-fit {
  animation-name: tf-fade-up-b;
}

/* Scene: widget rendered at its native 720px width and fit-scaled into the column (never reflows) */
.tf-scene {
  position: relative;
  min-height: 440px;
  color: var(--app-text);
}

.tf-fit {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  animation: tf-fade-up 0.6s cubic-bezier(0.4, 0, 0.2, 1) 0.08s both;
}
.tf-fit[hidden] {
  display: none;
}

.tf-fit-inner {
  width: 720px;
  flex-shrink: 0;
  transform-origin: center center;
}

.tf-fit-inner > * {
  display: block;
  width: 720px;
}

@keyframes tf-fade-up {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes tf-fade-up-b {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (max-width: 991.98px) {
  .tf-grid {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .tf-scene {
    min-height: 360px;
  }
  .tf-card {
    padding: 16px 16px 24px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tf-copy-item, .tf-fit {
    animation: none;
  }
}
/* ═══ Play — "Hall of Champions": completed tournaments marquee (_PlayChampions.cshtml) ═══
   Ported verbatim from the mockup "tradante-tournaments-section-a4" (2026-09-15); classes prefixed .hc-*.
   Only the CSS variables were swapped: --app-grad → --grad, fonts → --font-*, the info-card ground → --bg at .72.
   Marquee = pure CSS (track holds the card list twice, translateX(-50%) loops it); pauses on hover. */
.hc {
  position: relative;
  overflow: hidden;
  padding: 72px 32px 64px;
  color: var(--app-text);
  background: linear-gradient(135deg, rgba(var(--accent-rgb), 0.32) 0%, rgba(var(--accent-rgb), 0.12) 45%, var(--bg) 100%);
}
.hc *, .hc *::before, .hc *::after {
  box-sizing: border-box;
}

.hc-glow {
  position: absolute;
  top: -200px;
  left: -120px;
  width: 640px;
  height: 640px;
  pointer-events: none;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(var(--accent-rgb), 0.28), transparent 65%);
}

.hc-wrap {
  position: relative;
  max-width: 1280px;
  margin: 0 auto;
}

.hc-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
  margin-bottom: 38px;
}

.hc-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 14px;
  border-radius: 100px;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid var(--app-border-h);
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--accent3);
}
.hc-eyebrow i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent3);
  box-shadow: 0 0 8px var(--accent3);
}

.hc-title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 52px;
  line-height: 1;
  letter-spacing: 2px;
  color: var(--app-text);
}
.hc-title em {
  font-style: normal;
  background: linear-gradient(135deg, #fff, var(--accent3));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.hc-lede {
  margin: 4px 0 0;
  max-width: 640px;
  font-size: 15px;
  line-height: 1.6;
  color: var(--app-text2);
  font-weight: 300;
  text-wrap: pretty;
}

.hc-empty {
  padding: 28px;
  text-align: center;
  border: 1px dashed var(--app-border-h);
  border-radius: 12px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--app-text3);
}

.hc-rail {
  position: relative;
  overflow: hidden;
  text-align: left;
  color: var(--app-text);
}
.hc-rail *, .hc-rail *::before, .hc-rail *::after {
  box-sizing: border-box;
}

/* the same rail cloned into the Play hero, edge to edge between the headline copy and the buttons */
.hc-hero-rail {
  width: 100%;
  margin: 24px 0;
}

.hc-track {
  display: flex;
  gap: 16px;
  width: -moz-max-content;
  width: max-content;
  padding: 6px 0;
  animation: hc-marquee 50s linear infinite;
}
.hc-track:hover {
  animation-play-state: paused;
}

@keyframes hc-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .hc-track {
    animation: none;
  }
}
.hc-card {
  position: relative;
  flex: none;
  width: 300px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 14px 14px 12px;
  border: 1px dashed var(--app-border-h);
  border-radius: 12px;
  background: rgba(var(--accent-rgb), 0.03);
  transition: border-color 0.2s, background 0.2s, transform 0.2s;
}
.hc-card:hover {
  border-color: var(--accent);
  background: rgba(var(--accent-rgb), 0.08);
  transform: translateY(-2px);
}

.hc-ch {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.hc-cht {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.hc-cht img {
  width: 20px;
  height: 20px;
  -o-object-fit: contain;
     object-fit: contain;
  display: block;
}

.hc-cname {
  font-family: var(--font-display);
  font-size: 15px;
  line-height: 1;
  letter-spacing: 1.5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.hc-ended {
  flex: none;
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 1.5px;
  color: var(--app-text3);
  white-space: nowrap;
}

.hc-win {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 8px;
  padding: 10px;
  border-radius: 10px;
  background: rgba(var(--accent-rgb), 0.08);
  border: 1px solid var(--app-border);
}

.hc-crest {
  flex: none;
  width: 44px;
  height: auto;
  display: block;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.45));
}

.hc-wav {
  position: relative;
  flex: none;
  width: 40px;
  height: 40px;
}

.hc-ring {
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  background: var(--grad);
}

.hc-wini {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 15px;
  letter-spacing: 1px;
  color: #fff;
  border: 2px solid var(--bg);
  overflow: hidden;
}
.hc-wini img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 50%;
}

.hc-wtxt {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  flex: 1;
}

.hc-wlbl {
  font-family: var(--font-mono);
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--accent3);
}

.hc-wname {
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.hc-wpts {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 1px;
  color: var(--app-text3);
  white-space: nowrap;
}

.hc-wprize {
  flex: none;
  font-family: var(--font-display);
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0.5px;
  color: var(--gold);
  text-align: right;
  white-space: nowrap;
}

.hc-pods {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.hc-pod {
  display: flex;
  align-items: center;
  gap: 8px;
}

.hc-pav {
  position: relative;
  flex: none;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 10px;
  color: #fff;
  overflow: hidden;
}
.hc-pav img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 50%;
}

.hc-plbl {
  flex: none;
  width: 26px;
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--app-text3);
  white-space: nowrap;
}

.hc-pname {
  flex: 1;
  min-width: 0;
  font-size: 12px;
  font-weight: 500;
  color: var(--app-text2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.hc-pprize {
  flex: none;
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 1px;
  color: var(--app-text2);
}

.hc-info {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  margin-top: 40px;
}

.hc-ic {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 28px 26px;
  border-radius: 14px;
  background: color-mix(in srgb, var(--bg) 72%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--app-border-h);
}
.hc-ic p {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  color: var(--app-text2);
  font-weight: 300;
  text-wrap: pretty;
}
.hc-ic a {
  margin-top: auto;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent3);
  text-decoration: none;
}
.hc-ic a:hover {
  color: var(--app-text);
}

.hc-k {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--accent3);
}

.hc-t {
  font-family: var(--font-display);
  font-size: 26px;
  line-height: 1;
  letter-spacing: 1.5px;
}

/* ═══ Play hero — race widget + live TPS ticker (_PlayRace.cshtml, _PlayTicker.cshtml, race.js) ═══
   Ported from the mockups "tradante-race-widget" (React inline styles → .rc-* classes, values verbatim) and
   "tradante-tps-ticker" (CSS verbatim). Variable swaps only: --app-bg → --bg, --app-card-solid → --bg2,
   --app-grad/--grad as on the site. Tokens the public bundle lacks are set on the two roots. */
.rc-mount, .rc-ticker {
  --ease: cubic-bezier(.4, 0, .2, 1);
  --glow-btn: 0 6px 24px rgba(var(--accent-rgb), .4);
  --ink: #0A0814;
  --green2: #4ade80;
  --red2: #f87171;
  --app-accent-soft: rgba(var(--accent-rgb), .15);
  --rc-card: var(--bg2);
}
.rc-mount *, .rc-mount *::before, .rc-mount *::after, .rc-ticker *, .rc-ticker *::before, .rc-ticker *::after {
  box-sizing: border-box;
}

@keyframes rc-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}
/* mount */
.rc-mount {
  position: relative;
  width: min(84%, 440px);
  margin: 60px auto 160px;
  text-align: left;
  color: var(--app-text);
  font-family: var(--font-body);
}

/* windows */
.rc-win {
  position: relative;
  background: transparent;
  overflow: visible;
}

.rc-win-head {
  padding: 0 0 8px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}

.rc-win-title {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: 1.5px;
  line-height: 1;
  text-transform: uppercase;
  font-size: 18px;
}

.rc-win-sub {
  font-size: 11.5px;
  color: var(--app-text2);
  margin-top: 2px;
}

.rc-big {
  width: 100%;
  z-index: 1;
  padding: 14px;
  border-radius: 12px;
  background: var(--rc-card);
  border: 1px solid var(--app-border);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6);
  animation: a3-in-r 0.7s var(--ease) 0s both;
}

.rc-small {
  position: absolute;
  left: 0;
  top: calc(100% - 74px);
  width: min(56%, 250px);
  min-width: 220px;
  z-index: 0;
  padding: 14px;
  border-radius: 12px;
  background: var(--rc-card);
  border: 1px dotted var(--app-border-h);
  -webkit-box-reflect: below 6px linear-gradient(to bottom, transparent 55%, rgba(0, 0, 0, 0.28));
  animation: a3-in-l 0.7s var(--ease) 0.5s both;
}

.rc-empty {
  padding: 18px 0 10px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--app-text3);
}

/* header: prize pool + day pill */
.rc-pool {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  margin-top: 4px;
}

.rc-k {
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-size: 8px;
  color: var(--app-text3);
}

.rc-pool-v {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: 1.5px;
  line-height: 1;
  text-transform: uppercase;
  font-size: 30px;
  color: var(--green2);
  font-variant-numeric: tabular-nums;
  text-shadow: 0 0 18px rgba(34, 197, 94, 0.35);
}

.rc-pool-u {
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-size: 9px;
  color: var(--green2);
}

.rc-day {
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-size: 8px;
  color: var(--app-accent3);
  display: flex;
  gap: 6px;
  align-items: center;
  white-space: nowrap;
  animation: a4-day 3.2s linear both;
}

.rc-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--app-accent);
  box-shadow: 0 0 8px var(--app-accent);
  animation: rc-pulse 2s infinite;
  flex-shrink: 0;
}

/* rows */
.rc-rows {
  position: relative;
}

.rc-row {
  position: absolute;
  left: 0;
  right: 0;
  height: 40px;
  display: grid;
  grid-template-columns: 28px 1fr auto;
  gap: 10px;
  align-items: center;
  border-top: 1px solid var(--app-border);
  background: transparent;
  transition: top 0.8s var(--ease);
}
.rc-row.me {
  background: var(--app-accent-soft);
}

.rc-av {
  position: relative;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--c);
  color: #fff;
  display: inline-grid;
  place-items: center;
  flex-shrink: 0;
  border: 0.5px solid rgba(0, 0, 0, 0.25);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
  overflow: hidden;
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
  text-transform: uppercase;
  font-size: 14px;
}
.rc-av img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.rc-col {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.rc-name {
  font-size: 12px;
  font-weight: 400;
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.rc-name span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.me .rc-name {
  font-weight: 600;
}

.rc-arrow {
  font-family: var(--font-mono);
  font-size: 9px;
  animation: a4-arrow 3s ease both;
  flex-shrink: 0;
}
.rc-arrow.up {
  color: var(--green2);
}
.rc-arrow.dn {
  color: var(--red2);
}

.rc-bar {
  height: 3px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.06);
  overflow: hidden;
}
.rc-bar i {
  display: block;
  height: 100%;
  background: var(--c);
  opacity: 0.55;
  transition: width 0.9s var(--ease);
}

.rc-tps {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--app-text2);
  min-width: 68px;
  text-align: right;
}
.me .rc-tps {
  color: var(--app-text);
}

/* small card body */
.rc-me {
  padding: 0 0 6px;
  display: flex;
  gap: 14px;
  align-items: center;
}

.rc-me-av {
  position: relative;
  flex-shrink: 0;
}

.rc-frame {
  width: 72px;
  height: 72px;
  display: block;
  filter: drop-shadow(0 0 18px rgba(34, 197, 94, 0.45));
  animation: a3-pop 0.5s var(--ease) 0.9s both;
}

.rc-badge {
  position: absolute;
  right: -6px;
  bottom: -6px;
  min-width: 26px;
  height: 26px;
  padding: 0 6px;
  border-radius: 100px;
  background: var(--app-grad);
  color: var(--ink);
  display: grid;
  place-items: center;
  box-shadow: var(--glow-btn);
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: 1.5px;
  line-height: 1;
  font-size: 15px;
  animation: a3-pop 0.4s var(--ease) both;
}

.rc-me-txt {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  min-width: 0;
}

.rc-me-rank {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.rc-me-num {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: 1.5px;
  line-height: 1;
  font-size: 34px;
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.rc-me-tps {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 10.5px;
}
.rc-me-tps .up {
  color: var(--green2);
  animation: a4-arrow 3s ease both;
}
.rc-me-tps .dn {
  color: var(--red2);
  animation: a4-arrow 3s ease both;
}

/* ── full-width TPS ticker ── */
.rc-ticker {
  margin-top: 38px;
  border-top: 1px solid var(--app-border);
  border-bottom: 1px solid var(--app-border);
  height: 36px;
  overflow: hidden;
  position: relative;
  background: rgba(0, 0, 0, 0.28);
  text-align: left;
}
.rc-ticker::before, .rc-ticker::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 120px;
  z-index: 2;
  pointer-events: none;
}
.rc-ticker::before {
  left: 0;
  background: linear-gradient(90deg, var(--bg), transparent);
}
.rc-ticker::after {
  right: 0;
  background: linear-gradient(-90deg, var(--bg), transparent);
}
.rc-ticker .rc-dot {
  background: var(--green);
}

.rc-tag {
  position: absolute;
  left: 24px;
  top: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  z-index: 3;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--app-text2);
  background: var(--bg);
  padding-right: 14px;
}

.rc-track {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  align-items: center;
  height: 100%;
  white-space: nowrap;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--app-text2);
  will-change: transform;
  animation: rc-scroll 40s linear infinite;
}
.rc-track:hover {
  animation-play-state: paused;
}

.rc-half {
  display: flex;
  gap: 34px;
  align-items: center;
  padding-right: 34px;
}

@keyframes rc-scroll {
  to {
    transform: translateX(-50%);
  }
}
.rc-ev {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.rc-ev b {
  color: var(--app-text);
  font-weight: 500;
}
.rc-ev .rc-ev-day {
  color: var(--app-accent);
}
.rc-ev .rc-ev-av {
  position: relative;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-size: 11px;
  color: #fff;
  background: var(--c);
  overflow: hidden;
}
.rc-ev .rc-ev-av img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.rc-pts {
  color: var(--green2);
}
.rc-pts.neg {
  color: var(--red2);
}

@media (prefers-reduced-motion: reduce) {
  .rc-track, .rc-dot, .rc-day, .rc-arrow, .rc-badge, .rc-frame, .rc-big, .rc-small {
    animation: none;
  }
}
@media (max-width: 575.98px) {
  .rc-mount {
    width: 92%;
    margin-bottom: 150px;
  }
  .rc-small {
    min-width: 200px;
  }
}
/* ═══ Play — "Pick your game" (section #games; _PlayGames.cshtml, games.js) ═══
   Ported from the Claude Design bundle "Tradante Pick Your Game" (2026-09-16). The bundle's inline styles are moved
   into .gm-* classes with the same values; the tab bar is the design system's .trd-tabs (in _terminal-features.scss).
   Scenes inside the windows are built by games.js with inline styles copied from the bundle's React code.
   Keyframes are the bundle's w-* set, prefixed gm-. Section backgrounds reuse the Play page's .lr-sec layers. */
.gm {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  color: var(--app-text);
  font-family: var(--font-body);
}
.gm *, .gm *::before, .gm *::after {
  box-sizing: border-box;
}

.gm-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.gm-rule {
  display: flex;
  align-items: center;
  gap: 14px;
}
.gm-rule span {
  width: 24px;
  height: 1px;
  background: var(--app-border-h);
}
.gm-rule img {
  width: 22px;
  height: 22px;
  -o-object-fit: contain;
     object-fit: contain;
}

.gm-title {
  margin: 6px 0 0;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(40px, 5vw, 60px);
  letter-spacing: 2px;
  line-height: 1;
  text-transform: uppercase;
  text-align: center;
  color: var(--app-text);
}
.gm-title em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.gm-lede {
  margin: 0;
  max-width: 60ch;
  text-align: center;
  font-size: 15px;
  line-height: 1.65;
  color: var(--app-text2);
  text-wrap: pretty;
}

.gm-tabs {
  padding: 0 4px;
}

.gm-card {
  position: relative;
  border: 1px solid var(--app-border);
  border-radius: 16px;
  background: var(--app-card-bg);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 24px;
  padding: 44px 40px 40px;
  min-height: 460px;
  overflow: hidden;
}

.gm-copy {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}

.gm-copy-title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 38px;
  letter-spacing: 2px;
  line-height: 1.05;
  text-transform: uppercase;
  animation: gm-fade-up 0.5s var(--ease, cubic-bezier(0.4, 0, 0.2, 1)) both;
}

.gm-copy-lede {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--app-accent3);
  animation: gm-fade-up 0.5s var(--ease, cubic-bezier(0.4, 0, 0.2, 1)) 0.06s both;
}

.gm-copy-body {
  margin: 8px 0 0;
  font-size: 15px;
  line-height: 1.7;
  color: var(--app-text2);
  max-width: 52ch;
  text-wrap: pretty;
  animation: gm-fade-up 0.5s var(--ease, cubic-bezier(0.4, 0, 0.2, 1)) 0.12s both;
}

.gm-points {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 14px;
  animation: gm-fade-up 0.5s var(--ease, cubic-bezier(0.4, 0, 0.2, 1)) 0.18s both;
}

.gm-point {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 15px;
  color: var(--app-text2);
}
.gm-point i {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1.5px solid var(--app-accent3);
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.gm-point i::after {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--app-accent3);
}

.gm.alt .gm-copy-title, .gm.alt .gm-copy-lede, .gm.alt .gm-copy-body, .gm.alt .gm-points {
  animation-name: gm-fade-up-b;
}

/* Window stack */
.gm-stack {
  position: relative;
  min-height: 380px;
  perspective: 1400px;
  perspective-origin: 30% 40%;
}

.gm-win {
  position: absolute;
  left: 0;
  top: 0;
  width: 250px;
  cursor: pointer;
  transform-style: preserve-3d;
  transform-origin: left center;
  transition: transform 0.7s var(--ease, cubic-bezier(0.4, 0, 0.2, 1)), filter 0.7s var(--ease, cubic-bezier(0.4, 0, 0.2, 1)), opacity 0.7s var(--ease, cubic-bezier(0.4, 0, 0.2, 1));
}

.gm-frame {
  height: 330px;
  border-radius: 8px;
  border: 1px solid var(--app-border-h);
  background: var(--app-surface);
  overflow: hidden;
  position: relative;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.6);
}

.gm-scene {
  position: absolute;
  inset: 0;
  color: var(--app-text);
}

.gm-sheen {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(115deg, rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, 0.1) 45%, rgba(255, 255, 255, 0.02) 52%, rgba(255, 255, 255, 0) 60%);
  transition: opacity 0.7s var(--ease, cubic-bezier(0.4, 0, 0.2, 1));
}

.gm-edge {
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: 8px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), inset 1px 0 0 rgba(255, 255, 255, 0.05);
  transition: opacity 0.7s var(--ease, cubic-bezier(0.4, 0, 0.2, 1));
}

.gm-reflect {
  height: 130px;
  margin-top: 8px;
  border-radius: 8px;
  overflow: hidden;
  transform: scaleY(-1);
  transform-origin: top;
  opacity: 0.35;
  filter: blur(2px);
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.85), transparent 90%);
  -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.85), transparent 90%);
  pointer-events: none;
}

.gm-reflect-inner {
  height: 330px;
  position: relative;
  background: var(--app-surface);
  transform: translateY(-200px);
}

@keyframes gm-fade-up {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes gm-fade-up-b {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes gm-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}
@keyframes gm-slide {
  from {
    opacity: 0;
    transform: translateX(-14px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes gm-flash-bid {
  0%, 100% {
    background: transparent;
  }
  50% {
    background: rgba(34, 197, 94, 0.22);
  }
}
@keyframes gm-flash-ask {
  0%, 100% {
    background: transparent;
  }
  50% {
    background: rgba(239, 68, 68, 0.22);
  }
}
@keyframes gm-grow-x {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}
@keyframes gm-draw {
  to {
    stroke-dashoffset: 0;
  }
}
@keyframes gm-blink {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.25;
  }
}
@keyframes gm-tick {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-3px);
  }
}
@keyframes gm-scan {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(400%);
  }
}
@media (max-width: 991.98px) {
  .gm-card {
    grid-template-columns: 1fr;
    padding: 28px 20px 24px;
    min-height: 0;
  }
  .gm-stack {
    min-height: 420px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .gm *, .gm *::before, .gm *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
/* ═══ Site-wide beta / testnet announcement bar (_BetaBar.cshtml) ═══
   Fixed above the fixed navbar. While it is showing, html carries .tr-beta-on and --tr-beta-h holds the bar's real
   height (set by the partial's inline script, so wrapped text on phones is accounted for); the navbar and the page
   are pushed down by that amount. Dismissing removes the class, so everything snaps back.
   Colours are fixed amber/orange on purpose (a disclaimer should look the same, and stand out, on every theme). */
:root {
  --tr-beta-h: 0px;
}

.tr-beta {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1040; /* above .fixed-top (1030) */
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 46px;
  padding: 9px 52px 9px 18px;
  /* warning treatment: the brand amber → orange, dark ink text (same on every theme, a notice must not blend in) */
  background: linear-gradient(90deg, #F5C518 0%, #F5A623 45%, #F26B3A 100%);
  border-bottom: 1px solid rgba(0, 0, 0, 0.35);
  box-shadow: 0 4px 18px rgba(242, 107, 58, 0.35);
  color: #1A1204;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.45;
  text-align: center;
}
.tr-beta[hidden] {
  display: none;
}

.tr-beta-in {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 5px 14px;
  max-width: 1240px;
}

.tr-beta-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: none;
  padding: 4px 12px;
  border-radius: 100px;
  background: #1A1204;
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #F5C518;
  white-space: nowrap;
}
.tr-beta-tag i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #F5C518;
  box-shadow: 0 0 8px #F5C518;
  animation: tr-beta-pulse 2s infinite;
}

.tr-beta-txt {
  color: #1A1204;
  text-wrap: pretty;
}
.tr-beta-txt b {
  color: #000;
  font-weight: 700;
}

.tr-beta-x {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: rgba(26, 18, 4, 0.7);
  font-size: 22px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  transition: color 0.15s, background 0.15s;
}
.tr-beta-x:hover {
  color: #000;
  background: rgba(0, 0, 0, 0.14);
}
.tr-beta-x:focus-visible {
  outline: 2px solid #1A1204;
  outline-offset: 1px;
}

@keyframes tr-beta-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tr-beta-tag i {
    animation: none;
  }
}
/* push the fixed navbar and the page down while the bar is showing */
html.tr-beta-on .tr-navbar.fixed-top {
  top: var(--tr-beta-h);
}

html.tr-beta-on body {
  padding-top: var(--tr-beta-h);
}

/* ═══ Legal condition notes on public pages (_KycNotice.cshtml) ═══
   A quiet, full-width strip that sits under a payments block. Theme tokens only, so it follows blue / violet / black. */
.tr-kyc-note {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 20px;
  border: 1px solid var(--border-h);
  border-left: 3px solid var(--gold);
  border-radius: 12px;
  background: var(--card-bg);
}
.tr-kyc-note p {
  margin: 0;
  font-size: 13px;
  line-height: 1.65;
  color: var(--text2);
  text-wrap: pretty;
}
.tr-kyc-note b {
  color: var(--text);
  font-weight: 600;
}
.tr-kyc-note a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 2px;
  white-space: nowrap;
}

.tr-kyc-ic {
  flex: none;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: rgba(var(--accent-rgb), 0.12);
  color: var(--gold);
}
.tr-kyc-ic svg {
  width: 18px;
  height: 18px;
}

.tr-kyc-wrap {
  margin-top: 32px;
}

@media (max-width: 575.98px) {
  .tr-kyc-note {
    padding: 14px 16px;
    gap: 12px;
  }
}
/* ═══ Company page ("/", Front/Company.cshtml) ═══
   The page is built from the product site's own sections, cards and widgets. These .co-* helpers only lay them out
   (stacks, responsive grids, the two-column split) so the page collapses properly on phones. No new colours. */
.co-stack {
  display: flex;
  flex-direction: column;
  gap: 36px;
}

.co-head {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 760px;
}

/* the product hero title is sized for one short line ("SAVED BY THE BULL."); this headline is longer, so it stacks */
.co-hero-title {
  white-space: normal;
  font-size: clamp(44px, 7.4vw, 104px);
}
.co-hero-title span {
  display: block;
}

.co-grid {
  display: grid;
  gap: 16px;
}

.co-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.co-grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.co-cap {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-decoration: none;
  color: inherit;
}
.co-cap .tr-feature-title {
  margin: 0;
}
.co-cap .tr-feature-desc {
  font-size: 13px;
  line-height: 1.65;
  color: var(--text2);
}

a.co-cap {
  transition: border-color 0.2s, transform 0.2s;
}
a.co-cap:hover {
  border-color: var(--border-h);
  transform: translateY(-2px);
  color: inherit;
}

.co-beta {
  border-color: var(--border-h);
  padding: 32px;
}

/* capability card icon: line icon in an accent-tinted tile */
.co-ic {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  border: 1px solid var(--border-h);
  background: rgba(var(--accent-rgb), 0.1);
  display: grid;
  place-items: center;
  color: var(--accent3);
  margin-bottom: 6px;
}
.co-ic svg {
  width: 22px;
  height: 22px;
}

.co-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 72px;
  align-items: center;
}

.co-split-even {
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 56px;
}

.co-split-widget {
  display: flex;
  justify-content: flex-end;
}

.co-flow-t {
  font-family: var(--font-display);
  font-size: 28px;
  letter-spacing: 1px;
  line-height: 1.05;
}

.co-grad {
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* company navbar: eight items must fit on one line at 1200-1440px → tighter tracking, no wrapping */
.tr-navbar-co .nav-link {
  white-space: nowrap;
  letter-spacing: 1.6px;
  font-size: 12px;
  padding: 10px 9px;
}

@media (min-width: 1400px) {
  .tr-navbar-co .nav-link {
    letter-spacing: 2px;
    padding: 10px 11px;
  }
}
.co-foot {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 40px;
}

/* Gateways: provider / venue names as quiet chips under each card */
.co-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 6px;
}
.co-chips span {
  padding: 5px 11px;
  border: 1px solid var(--border-h);
  border-radius: 100px;
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--text2);
  white-space: nowrap;
}

/* "Built with" marquee. The list is printed twice in the track and the track slides left by half its width, so the
   loop is seamless. Logos are single-colour masks (--logo) so every mark takes the same muted tone on every skin;
   names without a logo file yet use a line glyph of the same size. Pauses on hover; static wrap with reduced motion. */
.co-bw-sec {
  overflow: hidden;
}

/* 2026-09-22 (user): each logo is its own small card; the outer frame is gone. Logos smaller and more muted. */
.co-bw-card {
  padding: 6px 0;
}

.co-bw {
  position: relative;
  width: 100%;
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.co-bw-track {
  display: flex;
  width: -moz-max-content;
  width: max-content;
  animation: co-bw-slide 48s linear infinite;
}

.co-bw:hover .co-bw-track {
  animation-play-state: paused;
}

.co-bw-item {
  flex: none;
  width: 128px;
  margin: 0 6px; /* spacing on the item so both halves of the loop measure the same */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 10px;
  color: var(--text3);
  opacity: 0.75;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg2);
  transition: color 0.2s, opacity 0.2s, border-color 0.2s;
}
.co-bw-item:hover {
  color: var(--text2);
  opacity: 1;
  border-color: var(--border-h);
}

.co-bw-logo {
  display: block;
  width: 26px;
  height: 26px;
  background: currentColor;
  mask: var(--logo) center/contain no-repeat;
  -webkit-mask: var(--logo) center/contain no-repeat;
}
.co-bw-logo.wide {
  width: 58px;
}

.co-bw-glyph {
  width: 26px;
  height: 26px;
}

.co-bw-name {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.4;
}

@keyframes co-bw-slide {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
/* Part 2 opener: the Tradante product band */
.co-product {
  border-top: 1px solid var(--border-h);
}

@media (max-width: 991.98px) {
  .co-grid-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .co-split, .co-split-even {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .co-split-widget {
    justify-content: center;
  }
  .co-foot {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
}
@media (max-width: 575.98px) {
  .co-grid-3, .co-grid-2 {
    grid-template-columns: 1fr;
  }
  .co-foot {
    grid-template-columns: 1fr;
  }
}
@media (prefers-reduced-motion: reduce) {
  a.co-cap {
    transition: none;
  }
  a.co-cap:hover {
    transform: none;
  }
  /* no sliding: show the list once, wrapped and centred */
  .co-bw {
    mask-image: none;
    -webkit-mask-image: none;
  }
  .co-bw-track {
    animation: none;
    width: auto;
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 12px;
  }
  .co-bw-item {
    margin: 0 6px;
  }
  .co-bw-item[aria-hidden=true] {
    display: none;
  }
}
/* ═══ Company page — "Configured, not coded" (_ConfiguredNotCoded.cshtml, console-stack.js) ═══
   Ported from the Claude Design artboard "Tradante Configured Not Coded". Values are the artboard's inline styles moved
   into .cnc-* classes. Colours come from the site's --app-* tokens, so the block follows the three skins. The tab bar is
   the design system's .trd-tabs (_terminal-features.scss); section backgrounds reuse the Play page's .lr-sec layers. */
/* Section background = the artboard's own (much stronger than the Play page's .lr-sec defaults): a violet glow top-left,
   a magenta glow on the right, a visible grid that fades down the section and a heavier grain. The violet parts follow
   the skin's accent; the magenta is the bull logo's brand colour, as in the artboard. */
#console .lr-bg-glow {
  background: radial-gradient(circle at 20% 0%, rgba(var(--accent-rgb), 0.62), transparent 50%), radial-gradient(circle at 90% 30%, rgba(217, 26, 173, 0.34), transparent 45%), radial-gradient(ellipse 80% 50% at 50% 0%, rgba(var(--accent-rgb), 0.3), transparent 70%);
}
#console .lr-bg-grid {
  background-image: linear-gradient(rgba(var(--accent-rgb), 0.18) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--accent-rgb), 0.18) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse at center top, black 0%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse at center top, black 0%, transparent 75%);
}
#console .lr-bg-grain {
  opacity: 0.08;
}

.cnc {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  color: var(--app-text);
  font-family: var(--font-body);
}
.cnc *, .cnc *::before, .cnc *::after {
  box-sizing: border-box;
}

.cnc-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.cnc-mark {
  display: flex;
  align-items: center;
  gap: 14px;
}
.cnc-mark span {
  width: 24px;
  height: 1px;
  background: var(--app-border-h);
}
.cnc-mark img {
  width: 22px;
  height: 22px;
  -o-object-fit: contain;
     object-fit: contain;
}

.cnc-eyebrow {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--app-accent3);
  text-align: center;
}

.cnc-title {
  margin: 4px 0 0;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(40px, 5vw, 60px);
  letter-spacing: 2px;
  line-height: 1;
  text-transform: uppercase;
  text-align: center;
  color: var(--app-text);
}
.cnc-title em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.cnc-lede {
  margin: 0;
  max-width: 64ch;
  text-align: center;
  font-size: 15px;
  line-height: 1.65;
  color: var(--app-text2);
  text-wrap: pretty;
}

.cnc-tabs {
  padding: 0 4px;
}

.cnc-card {
  position: relative;
  border: 1px solid var(--app-border);
  border-radius: 16px;
  background: var(--app-card-bg);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 24px;
  padding: 44px 40px 40px;
  min-height: 460px;
  overflow: hidden;
}

.cnc-copy-item {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}
.cnc-copy-item[hidden] {
  display: none;
}

/* an item that goes from hidden to shown restarts these by itself, so every tab switch replays the fade */
.cnc-h {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 38px;
  letter-spacing: 2px;
  line-height: 1.05;
  text-transform: uppercase;
  animation: cnc-fade-up 0.5s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.cnc-sub {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--app-accent3);
  animation: cnc-fade-up 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.06s both;
}

.cnc-body {
  margin: 8px 0 0;
  font-size: 15px;
  line-height: 1.7;
  color: var(--app-text2);
  max-width: 52ch;
  text-wrap: pretty;
  animation: cnc-fade-up 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.12s both;
}

.cnc-points {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 14px;
  animation: cnc-fade-up 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.18s both;
}
.cnc-points > div {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 15px;
  line-height: normal;
  color: var(--app-text2);
}
.cnc-points .b {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1.5px solid var(--app-accent3);
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.cnc-points .b i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--app-accent3);
}

/* ── Window stack ── position / blur / opacity per window are set by console-stack.js */
.cnc-stack {
  position: relative;
  min-height: 380px;
  perspective: 1400px;
  perspective-origin: 30% 40%;
}

.cnc-win {
  position: absolute;
  left: 0;
  top: 0;
  width: 250px;
  cursor: pointer;
  transform-style: preserve-3d;
  transform-origin: left center;
  transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1), filter 0.7s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}

.cnc-face {
  height: 330px;
  border-radius: 8px;
  border: 1px solid var(--app-border-h);
  background: var(--app-surface);
  overflow: hidden;
  position: relative;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.6);
}

.cnc-sheen {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}
.cnc-sheen.a {
  background: linear-gradient(115deg, rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, 0.1) 45%, rgba(255, 255, 255, 0.02) 52%, rgba(255, 255, 255, 0) 60%);
}
.cnc-sheen.b {
  border-radius: 8px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), inset 1px 0 0 rgba(255, 255, 255, 0.05);
}

.cnc-win.front .cnc-sheen {
  opacity: 1;
}

.cnc-refl {
  height: 130px;
  margin-top: 8px;
  border-radius: 8px;
  overflow: hidden;
  transform: scaleY(-1);
  transform-origin: top;
  opacity: 0.35;
  filter: blur(2px);
  pointer-events: none;
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.85), transparent 90%);
  -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.85), transparent 90%);
}
.cnc-refl > div {
  height: 330px;
  position: relative;
  background: var(--app-surface);
  transform: translateY(-200px);
}

/* ── Scene parts (the content of a window) ── */
/* line-height: normal = the artboard's (it sets none); the site's looser body line-height made every row 2px taller */
.cnc-scene {
  position: absolute;
  inset: 0;
  color: var(--app-text);
  line-height: normal;
}

.cnc-mono {
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: 1.5px;
}

.cnc-bebas {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: 1.5px;
  line-height: 1;
  text-transform: uppercase;
}

.cnc-hd {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 12px;
  border-bottom: 1px solid var(--app-border);
  background: var(--app-surface2);
}
.cnc-hd > .t {
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-size: 9px;
  color: var(--app-accent3);
}

.cnc-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
  animation: cnc-pulse 2s infinite;
}

.cnc-scan {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 25%;
  background: linear-gradient(to bottom, transparent, rgba(var(--accent-rgb), 0.08), transparent);
  animation: cnc-scan 4s linear infinite;
  pointer-events: none;
}

.cnc-pill {
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-size: 7.5px;
  padding: 3px 8px;
  border-radius: 5px;
  border: 1px solid;
  background: rgba(0, 0, 0, 0.2);
  white-space: nowrap;
  animation: cnc-slide 0.35s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.cnc-chip {
  font-family: var(--font-mono);
  text-transform: uppercase;
  font-size: 7px;
  letter-spacing: 1px;
  padding: 2px 5px;
  border-radius: 4px;
  border: 1px solid;
}

.cnc-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  border-bottom: 1px solid var(--app-border);
  animation: cnc-slide 0.4s cubic-bezier(0.4, 0, 0.2, 1) both;
}
.cnc-row .l {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.cnc-row .l b {
  font-weight: 400;
  font-size: 11px;
}
.cnc-row .l small {
  font-family: var(--font-mono);
  text-transform: uppercase;
  font-size: 7px;
  letter-spacing: 1px;
  color: var(--app-text3);
}
.cnc-row .v {
  font-family: var(--font-mono);
  font-size: 10.5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 110px;
}

.cnc-tg {
  width: 28px;
  height: 15px;
  border-radius: 100px;
  position: relative;
  background: rgba(255, 255, 255, 0.12);
  transition: background 0.3s;
  flex-shrink: 0;
}
.cnc-tg i {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #fff;
  transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.cnc-tg.on {
  background: var(--green);
}
.cnc-tg.on i {
  left: 15px;
}

@keyframes cnc-fade-up {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes cnc-slide {
  from {
    opacity: 0;
    transform: translateX(-14px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes cnc-grow-x {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}
@keyframes cnc-blink {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.25;
  }
}
@keyframes cnc-scan {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(400%);
  }
}
@keyframes cnc-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}
@media (max-width: 991.98px) {
  .cnc-card {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 28px 20px 24px;
    min-height: 0;
  }
  .cnc-stack {
    min-height: 400px;
  }
}
@media (max-width: 575.98px) {
  .cnc {
    padding: 0 16px;
  }
  .cnc-h {
    font-size: 32px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .cnc *, .cnc *::before, .cnc *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
/* ═══ Company page — market tabs (_MarketTabs.cshtml) ═══
   Built from the user's picture of the "Prediction-native by design" panel. Tab bar = the Trade page's .tabbar/.tab
   (_home-v2.scss, wired by home.js). Left: eyebrow, three feature rows with icon tiles, venue logos. Right: a
   featured-market card (table + sparkline + volume line + pager). */
.mk {
  padding: 8px 32px 36px;
}

.mk-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 40px;
  align-items: start;
}

.mk-eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--accent3);
  margin-bottom: 22px;
}

.mk-rows {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.mk-row {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.mk-row > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.mk-row b {
  font-weight: 700;
  font-size: 17px;
  color: var(--text);
}
.mk-row em {
  font-style: normal;
  font-weight: 400;
  color: var(--text2);
}
.mk-row span {
  font-size: 14px;
  line-height: 1.55;
  color: var(--text2);
}

.mk-ic {
  width: 38px;
  height: 38px;
  border-radius: 9px;
  border: 1px solid var(--border-h);
  background: rgba(var(--accent-rgb), 0.12);
  display: grid;
  place-items: center;
  color: var(--accent3);
  flex-shrink: 0;
}
.mk-ic svg {
  width: 18px;
  height: 18px;
}

.mk-venues-lbl {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--text3);
  margin: 34px 0 14px;
}

.mk-venues {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
}

.mk-venue {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text2);
}

.mk-vlogo {
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid var(--border);
  display: grid;
  place-items: center;
  color: var(--text2);
  font-family: var(--font-body);
  font-style: normal;
  font-weight: 700;
  font-size: 10px;
  letter-spacing: 0;
}
.mk-vlogo svg {
  width: 20px;
  height: 20px;
}
.mk-vlogo.kalshi {
  background: rgba(255, 255, 255, 0.85);
  color: #111;
  font-size: 11px;
}

/* featured-market card */
.mk-card {
  position: relative;
  border: 1px solid var(--border-h);
  border-radius: 12px;
  background: var(--bg2);
  padding: 18px 20px 46px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.mk-c-eyebrow {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
  display: flex;
  align-items: center;
  gap: 8px;
}
.mk-c-eyebrow i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 8px var(--accent);
}

.mk-c-title {
  font-family: var(--font-display);
  font-size: 28px;
  letter-spacing: 1px;
  line-height: 1;
  text-transform: uppercase;
  color: var(--text);
}
.mk-c-title em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.mk-c-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text3);
  padding: 4px 10px 4px 4px;
  border-radius: 100px;
  border: 1px solid var(--border);
}
.mk-c-badge b {
  font-weight: 600;
  color: #f6a640;
  background: rgba(246, 166, 64, 0.14);
  border-radius: 100px;
  padding: 2px 8px;
}

.mk-c-body {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 18px;
  margin-top: 6px;
}

.mk-tbl {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.mk-tbl th {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
  font-weight: 400;
  text-align: left;
  padding: 0 6px 8px;
  border-bottom: 1px solid var(--border);
}
.mk-tbl td {
  padding: 9px 6px;
  border-bottom: 1px solid var(--border);
  color: var(--text);
  white-space: nowrap;
}
.mk-tbl td:nth-child(2) {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text2);
}
.mk-tbl td:last-child, .mk-tbl th:last-child {
  text-align: right;
}
.mk-tbl tr:last-child td {
  border-bottom: 0;
}

.mk-flag {
  display: inline-block;
  min-width: 22px;
  margin-right: 8px;
  font-family: var(--font-mono);
  font-style: normal;
  font-size: 8px;
  letter-spacing: 1px;
  text-align: center;
  padding: 2px 3px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.08);
  color: var(--text2);
}

.mk-odds {
  display: inline-block;
  min-width: 40px;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 10px;
  padding: 3px 8px;
  border-radius: 6px;
  background: rgba(var(--accent-rgb), 0.18);
  color: var(--accent3);
}
.mk-odds.hot {
  background: var(--green);
  color: #04110a;
}
.mk-odds.down {
  background: rgba(239, 68, 68, 0.18);
  color: var(--red);
}

.mk-chart {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.mk-chart svg {
  width: 100%;
  height: 110px;
  display: block;
}
.mk-chart svg line {
  stroke: rgba(255, 255, 255, 0.06);
  stroke-width: 1;
}
.mk-chart svg polyline {
  fill: none;
  stroke-width: 1.6;
  stroke-linejoin: round;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}

.mk-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text3);
}
.mk-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.mk-legend i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
}
.mk-legend b {
  font-weight: 600;
  color: var(--text2);
}

.mk-axis {
  display: flex;
  justify-content: space-between;
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text3);
}

.mk-c-foot {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 1px;
  color: var(--text3);
  padding-top: 12px;
  border-top: 1px solid var(--border);
}
.mk-c-foot b {
  color: var(--text);
  font-weight: 600;
}

.mk-c-pager {
  position: absolute;
  left: 20px;
  bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 1px;
  color: var(--text3);
}
.mk-c-pager span {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1px solid var(--border);
  display: grid;
  place-items: center;
  color: var(--text2);
  font-size: 12px;
}

@media (max-width: 991.98px) {
  .mk {
    padding: 8px 16px 24px;
  }
  .mk-panel {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}
@media (max-width: 575.98px) {
  .mk-c-body {
    grid-template-columns: 1fr;
  }
  .mk-venues {
    gap: 16px;
  }
}
/* ═══ Company page — "Gamification as a Service" (_GamificationService.cshtml) ═══
   Port of the user's slide (1920px stage) at 2/3 scale for the 1280px container. The slide is violet; here every colour
   follows the skin (user rule 2026-09-22): violet band on the violet skin, blue on blue, magenta on black. */
.gs-sec {
  background: var(--accent-grad-section);
}
.gs-sec .lr-bg-glow {
  background: radial-gradient(ellipse at 10% 100%, rgba(0, 0, 0, 0.45), transparent 55%), radial-gradient(ellipse at 78% 55%, rgba(var(--accent-rgb), 0.55), transparent 48%);
}
.gs-sec .lr-bg-grid {
  background-image: linear-gradient(rgba(var(--accent-rgb), 0.22) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--accent-rgb), 0.22) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 80% 85% at 50% 40%, #000 20%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 80% 85% at 50% 40%, #000 20%, transparent 80%);
}
.gs-sec .lr-bg-grain {
  opacity: 0.06;
}

.gs {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 44px;
}

.gs-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}

.gs-eyebrow {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: var(--font-mono);
  font-size: 14px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--accent3);
}
.gs-eyebrow i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent3);
  box-shadow: 0 0 12px 2px var(--accent3);
}

.gs-title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(40px, 4.2vw, 56px);
  line-height: 1;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #f0f0f4;
  text-wrap: balance;
}
.gs-title em {
  font-style: normal;
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent3) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.gs-lede {
  margin: 0;
  max-width: 860px;
  font-size: 18px;
  font-weight: 300;
  line-height: 1.5;
  color: rgba(240, 240, 244, 0.85);
  text-wrap: pretty;
}

.gs-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 26px;
  align-items: start;
  padding-bottom: 96px; /* room for the reflection */
}

.gs-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px 20px 28px;
  min-height: 345px;
  border-radius: 10px;
  background: var(--bg2);
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 7px 20px rgba(0, 0, 0, 0.35);
  /* the slide's baked-in mirror strip, drawn live so it follows the copy at every width (Firefox: no reflection) */
  -webkit-box-reflect: below 4px linear-gradient(transparent 66%, rgba(0, 0, 0, 0.4));
}

.gs-art {
  height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.gs-art img {
  width: 180px;
  height: 107px;
  -o-object-fit: contain;
     object-fit: contain;
}

.gs-step {
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--accent3);
}

.gs-h {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 30px;
  line-height: 1;
  letter-spacing: 1.5px;
  color: #f0f0f4;
}

.gs-p {
  margin: 0;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.5;
  color: rgba(240, 240, 244, 0.7);
}

@media (max-width: 991.98px) {
  .gs-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 575.98px) {
  .gs-cards {
    grid-template-columns: 1fr;
    gap: 20px;
    padding-bottom: 60px;
  }
  .gs-card {
    min-height: 0;
  }
}
/* ═══ Company page — history timeline (_CompanyHistory.cshtml) + demo request form (_DemoRequest.cshtml) ═══
   Timeline = the artboard "Tradante History Timeline" A7a: rail, fill, eight markers. Colours follow the skin. */
.ch {
  width: 100%;
  max-width: 1040px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ch-title {
  margin: 0;
  text-align: center;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(30px, 3.4vw, 40px);
  letter-spacing: 2px;
  line-height: 1;
  text-transform: uppercase;
  color: var(--text);
}
.ch-title em {
  font-style: normal;
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.ch-rail {
  position: relative;
  padding: 12px 0 8px;
}

.ch-line {
  position: absolute;
  left: 0;
  right: 0;
  top: 78px;
  height: 1px;
  background: rgba(255, 255, 255, 0.08);
}

.ch-fill {
  position: absolute;
  left: 0;
  top: 78px;
  height: 1px;
  width: 6.25%;
  background: var(--accent3);
  opacity: 0.7;
  transition: width 0.7s var(--ease, cubic-bezier(0.4, 0, 0.2, 1));
}

.ch-grid {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 8px;
}

.ch-ev {
  all: unset;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
  -webkit-tap-highlight-color: transparent;
}
.ch-ev:focus-visible .ch-dot {
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.35);
}

.ch-top {
  height: 52px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  gap: 3px;
  text-align: center;
  opacity: 0.5;
  transition: opacity 0.35s, transform 0.35s;
}

.ch-tag {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text3);
  white-space: nowrap;
}

.ch-year {
  font-family: var(--font-display);
  font-size: 18px;
  letter-spacing: 1.5px;
  line-height: 1;
  color: var(--text3);
  transition: color 0.3s;
}

.ch-dotw {
  height: 28px;
  display: grid;
  place-items: center;
}

.ch-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: 1px solid var(--text3);
  background: var(--bg);
  box-sizing: border-box;
  transition: background 0.3s, border-color 0.3s;
}

.ch-ttl {
  padding: 4px 2px 0;
  text-align: center;
  font-size: 10px;
  line-height: 1.4;
  color: var(--text3);
  text-wrap: pretty;
  opacity: 0.5;
  transition: opacity 0.35s, color 0.35s;
}

.ch-ev.past .ch-top, .ch-ev.past .ch-ttl {
  opacity: 0.8;
}
.ch-ev.past .ch-dot {
  background: var(--text3);
}

.ch-ev.on .ch-top {
  opacity: 1;
  transform: translateY(-3px);
}
.ch-ev.on .ch-year {
  color: var(--text);
}
.ch-ev.on .ch-ttl {
  opacity: 1;
  color: var(--text2);
}
.ch-ev.on .ch-dot {
  background: var(--accent3);
  border-color: var(--accent3);
  animation: ch-ring 1.6s var(--ease, cubic-bezier(0.4, 0, 0.2, 1)) infinite;
}

.ch-desc {
  min-height: 48px;
  max-width: 720px;
  margin: 4px auto 0;
  text-align: center;
  font-size: 14px;
  line-height: 1.6;
  color: var(--text2);
}
.ch-desc p {
  margin: 0;
  animation: tr-fade-up 0.45s cubic-bezier(0.4, 0, 0.2, 1) both;
}
.ch-desc b {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 16px;
  letter-spacing: 1px;
  color: var(--accent3);
  margin-right: 8px;
}

@keyframes ch-ring {
  0% {
    box-shadow: 0 0 0 0 rgba(var(--accent-rgb), 0.55);
  }
  100% {
    box-shadow: 0 0 0 14px rgba(var(--accent-rgb), 0);
  }
}
/* demo request — the "Three ways in" card flips (Y axis) into the form. Faces are stacked absolutely; company-history.js
   sets the wrapper height to the visible face so the layout follows the flip. */
.co-flip {
  perspective: 1600px;
  scroll-margin-top: 90px;
}

.co-flip-inner {
  position: relative;
  transform-style: preserve-3d;
  transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1), height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.co-flip-face {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.co-flip-back {
  transform: rotateY(180deg);
}

.co-flip.flipped .co-flip-inner {
  transform: rotateY(180deg);
}

.co-flip:not(.flipped) .co-flip-back, .co-flip.flipped .co-flip-front {
  pointer-events: none;
}

.dr-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.dr-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.dr-back {
  all: unset;
  cursor: pointer;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text3);
  padding: 4px 0;
  transition: color 0.2s;
}
.dr-back:hover, .dr-back:focus-visible {
  color: var(--text);
}

.dr-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.dr-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.dr-field > span {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text3);
}
.dr-field > span em {
  font-style: normal;
  text-transform: none;
  letter-spacing: 0;
}
.dr-field .tr-input {
  width: 100%;
}
.dr-field select.tr-input {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  padding-right: 36px;
  cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--text3) 50%), linear-gradient(135deg, var(--text3) 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%;
  background-size: 5px 5px;
  background-repeat: no-repeat;
}
.dr-field select.tr-input option {
  background: var(--bg2);
  color: var(--text);
}
.dr-field textarea.tr-input {
  resize: vertical;
  min-height: 96px;
  line-height: 1.5;
}

.dr-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.dr-foot {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  margin-top: 4px;
}

.dr-note {
  font-size: 12px;
  line-height: 1.5;
  color: var(--text3);
}
.dr-note a {
  color: var(--text2);
}

.dr-msg {
  display: none;
  font-size: 14px;
  line-height: 1.5;
  padding: 12px 14px;
  border-radius: 8px;
  border: 1px solid;
}
.dr-msg.ok {
  display: block;
  color: var(--green2);
  border-color: rgba(34, 197, 94, 0.35);
  background: rgba(34, 197, 94, 0.08);
}
.dr-msg.err {
  display: block;
  color: var(--red2);
  border-color: rgba(239, 68, 68, 0.35);
  background: rgba(239, 68, 68, 0.08);
}

.dr-form.sent .dr-row, .dr-form.sent .dr-field, .dr-form.sent .dr-foot {
  display: none;
}

@media (max-width: 991.98px) {
  .ch-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    row-gap: 20px;
  }
  .ch-line, .ch-fill {
    display: none;
  } /* two rows: the single rail no longer lines up; the dots carry the state */
}
@media (max-width: 575.98px) {
  .ch-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .dr-row {
    grid-template-columns: 1fr;
  }
  .dr-form {
    padding: 22px 18px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ch-ev.on .ch-dot {
    animation: none;
  }
  .co-flip-inner {
    transition: none;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjc3MvQXJlYXMvcHVibGljL3B1YmxpYy5zY3NzIiwic2Nzcy9BcmVhcy9fY29tbW9uLnNjc3MiLCJzY3NzL0FyZWFzL3B1YmxpYy9faG9tZS12Mi5zY3NzIiwic2Nzcy9BcmVhcy9wdWJsaWMvX3BhZ2VzLXYyLnNjc3MiLCJzY3NzL0FyZWFzL3B1YmxpYy9fc2NhbHBlcmJvb2suc2NzcyIsInNjc3MvQXJlYXMvcHVibGljL19zb2Iuc2NzcyIsInNjc3MvQXJlYXMvcHVibGljL19tZWdhbWVudS5zY3NzIiwic2Nzcy9BcmVhcy9wdWJsaWMvX2Z1bmRlZC1jaGFsbGVuZ2VzLnNjc3MiLCJzY3NzL0FyZWFzL2FwcC9fY2hhbGxlbmdlcy5zY3NzIiwic2Nzcy9BcmVhcy9wdWJsaWMvX3BvZGl1bS5zY3NzIiwic2Nzcy9BcmVhcy9wdWJsaWMvX2V2ZXJ5dGhpbmcuc2NzcyIsInNjc3MvQXJlYXMvcHVibGljL19wcm9kdWN0cy5zY3NzIiwic2Nzcy9BcmVhcy9wdWJsaWMvX3doeS5zY3NzIiwic2Nzcy9BcmVhcy9wdWJsaWMvX3JhbmtzLnNjc3MiLCJzY3NzL0FyZWFzL3B1YmxpYy9fYWNoaWV2ZW1lbnRzLnNjc3MiLCJzY3NzL0FyZWFzL3B1YmxpYy9fdHBzLnNjc3MiLCJzY3NzL0FyZWFzL3B1YmxpYy9fdGVybWluYWwuc2NzcyIsInNjc3MvQXJlYXMvcHVibGljL190ZXJtaW5hbC1mZWF0dXJlcy5zY3NzIiwic2Nzcy9BcmVhcy9wdWJsaWMvX2NoYW1waW9ucy5zY3NzIiwic2Nzcy9BcmVhcy9wdWJsaWMvX3JhY2Uuc2NzcyIsInNjc3MvQXJlYXMvcHVibGljL19nYW1lcy5zY3NzIiwic2Nzcy9BcmVhcy9wdWJsaWMvX2JldGEtYmFyLnNjc3MiLCJzY3NzL0FyZWFzL3B1YmxpYy9fbGVnYWwtbm90ZXMuc2NzcyIsInNjc3MvQXJlYXMvcHVibGljL19jb21wYW55LnNjc3MiLCJzY3NzL0FyZWFzL3B1YmxpYy9fY29uc29sZS1zdGFjay5zY3NzIiwic2Nzcy9BcmVhcy9wdWJsaWMvX21hcmtldC10YWJzLnNjc3MiLCJzY3NzL0FyZWFzL3B1YmxpYy9fZ2Fhcy5zY3NzIiwic2Nzcy9BcmVhcy9wdWJsaWMvX2NvbXBhbnktaGlzdG9yeS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNPQTtFQUNFO0VBQ0E7RUFDQTs7O0FBSUY7RUFFRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFBQTtBQUFBOzs7QUFNRjtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUFBO0FBQUE7OztBQU1GO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQUE7QUFBQTs7O0FEbElGO0FBRUE7QUFDQTtBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUNBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0FBQ0E7QUFDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQ0E7RUFBTztFQUFjOzs7QUFDckI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFzQjtFQUFZOzs7QUFDbEM7RUFBNEI7OztBQUM1QjtFQUE0QjtFQUE0Qjs7O0FBRXhEO0FBQ0E7RUFDRTtFQUFpQjtFQUFVO0VBQVk7RUFDdkMsWUFDRTs7O0FBSUo7RUFDRTtFQUFpQjtFQUFVO0VBQVk7RUFDdkMsa0JBQ0U7RUFFRjtFQUNBO0VBQ0E7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztB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YTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFJO0lBQVM7SUFBYTs7RUFBVztJQUFTO0lBQVM7SUFBYTs7O0FBQ3haO0VBQWlCO0lBQVU7SUFBUztJQUFXOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQUk7SUFBUztJQUFhOztFQUFXO0lBQVM7SUFBUztJQUFhOzs7QUFDdFo7RUFBaUI7SUFBVTtJQUFTO0lBQVc7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFPO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFPO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBSTtJQUFTO0lBQWE7O0VBQVc7SUFBUztJQUFTO0lBQWE7OztBQUNsWjtFQUFpQjtJQUFVO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQU87SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYzs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFJO0lBQVM7SUFBYTs7RUFBVztJQUFTO0lBQVM7SUFBYTs7O0FBQ3ZaO0VBQWlCO0lBQVU7SUFBUztJQUFXOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQUk7SUFBUztJQUFhOztFQUFXO0lBQVM7SUFBUztJQUFhOzs7QUFDdFo7RUFBaUI7SUFBVTtJQUFTO0lBQVc7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBSTtJQUFTO0lBQWE7O0VBQVc7SUFBUztJQUFTO0lBQWE7OztBQUN0WjtFQUFpQjtJQUFVO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFJO0lBQVM7SUFBYTs7RUFBVztJQUFTO0lBQVM7SUFBYTs7O0FBQ3haO0VBQWlCO0lBQVU7SUFBUztJQUFXOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQUk7SUFBUztJQUFhOztFQUFXO0lBQVM7SUFBUztJQUFhOzs7QUFDdFo7RUFBaUI7SUFBVTtJQUFTO0lBQVc7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFPO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBSTtJQUFTO0lBQWE7O0VBQVc7SUFBUztJQUFTO0lBQWE7OztBQUNwWjtFQUFpQjtJQUFVO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVE7SUFBYzs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVE7SUFBYzs7RUFBVztJQUFJO0lBQVE7SUFBYzs7RUFBVztJQUFTO0lBQVE7SUFBYzs7O0FBQ3haO0VBQWlCO0lBQVU7SUFBUztJQUFXOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUTtJQUFhOztFQUFXO0lBQU87SUFBUTtJQUFhOztFQUFXO0lBQU87SUFBUTtJQUFhOztFQUFXO0lBQUk7SUFBUTtJQUFhOztFQUFXO0lBQVM7SUFBUTtJQUFhOzs7QUFDalo7RUFBaUI7SUFBVTtJQUFTO0lBQVc7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBSTtJQUFTO0lBQWE7O0VBQVc7SUFBUztJQUFTO0lBQWE7OztBQUN0WjtFQUFpQjtJQUFVO0lBQVE7SUFBYTs7RUFBVztJQUFPO0lBQVE7SUFBYTs7RUFBVztJQUFPO0lBQVE7SUFBYTs7RUFBVztJQUFPO0lBQVE7SUFBYTs7RUFBVztJQUFPO0lBQVE7SUFBYTs7RUFBVztJQUFPO0lBQVE7SUFBYTs7RUFBVztJQUFPO0lBQVE7SUFBYzs7RUFBVztJQUFPO0lBQVE7SUFBYTs7RUFBVztJQUFJO0lBQVE7SUFBYTs7RUFBVztJQUFTO0lBQVE7SUFBYTs7O0FBQy9ZO0VBQWlCO0lBQVU7SUFBUTtJQUFXOztFQUFXO0lBQU87SUFBUTtJQUFhOztFQUFXO0lBQU87SUFBUTtJQUFhOztFQUFXO0lBQU87SUFBUTtJQUFhOztFQUFXO0lBQU87SUFBUTtJQUFhOztFQUFXO0lBQU87SUFBUTtJQUFhOztFQUFXO0lBQU87SUFBUTtJQUFhOztFQUFXO0lBQU87SUFBUTtJQUFhOztFQUFXO0lBQUk7SUFBUTtJQUFhOztFQUFXO0lBQVM7SUFBUTtJQUFhOzs7QUFDNVk7RUFBaUI7SUFBVTtJQUFRO0lBQVc7O0VBQVc7SUFBTztJQUFRO0lBQWE7O0VBQVc7SUFBTztJQUFRO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBTztJQUFTO0lBQWE7O0VBQVc7SUFBSTtJQUFTO0lBQWE7O0VBQVc7SUFBUztJQUFTO0lBQWE7OztBQUNuWjtFQUFpQjtJQUFVO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVE7SUFBYTs7RUFBVztJQUFPO0lBQVM7SUFBYTs7RUFBVztJQUFPO0lBQVE7SUFBYTs7RUFBVztJQUFPO0lBQVE7SUFBYzs7RUFBVztJQUFPO0lBQVE7SUFBYTs7RUFBVztJQUFPO0lBQU87SUFBYzs7RUFBVztJQUFJO0lBQU87SUFBYzs7RUFBVztJQUFTO0lBQU87SUFBYzs7O0FBQ2xaO0VBQWlCO0lBQVU7SUFBUztJQUFXOztFQUFXO0lBQU87SUFBUztJQUFhOztFQUFXO0lBQU87SUFBUTtJQUFhOztFQUFXO0lBQU87SUFBUTtJQUFhOztFQUFXO0lBQU87SUFBUTtJQUFhOztFQUFXO0lBQU87SUFBUTtJQUFhOztFQUFX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O0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQU07RUFBeUI7OztBQUdqQztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTtFQUF5Qjs7QUFDbkM7RUFBVTtFQUF5Qjs7QUFDbkM7RUFBVTtFQUF5Qjs7O0FBTXJDO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7RUFBMEM7OztBQU10RDtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVU7RUFBNkI7OztBQVF6QztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQVM7O0FBQ1Q7RUFBbUI7OztBQUdyQjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFBVztFQUNYO0VBQWE7RUFDYjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFBVTtFQUErQjs7O0FBRzNDO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtF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QVc7RUFBWTtFQUFpQjtFQUErQjtFQUFpQjtFQUF1QjtFQUEyQjtFQUFxQjtFQUFnQjs7QUFDN0s7RUFBMkI7OztBQUM3QjtFQUFVO0VBQWU7RUFBZ0M7OztBQUN6RDtFQUFZO0VBQWU7RUFBd0I7RUFBVTs7QUFDM0Q7RUFBUztFQUErQjtFQUFpQjtFQUFxQjtFQUEyQjs7QUFDdkc7RUFBSztFQUFvQjtFQUFzQjs7QUFDakQ7RUFBWTs7QUFDWjtFQUFrQjtFQUFrQjtFQUEwQjtFQUFxQjtFQUNqRjtFQUNBO0VBQW1FO0VBQTBCOztBQUM3RjtFQUFTO0VBQXdCOztBQUNuQztFQUFvQjtFQUFrQjtFQUFrQjs7O0FBQzFEO0VBQVM7RUFBb0I7RUFBZTtFQUFZO0VBQWE7OztBQUNyRTtFQUFXO0VBQWU7RUFBcUI7RUFBVztFQUFpQjs7O0FBQzNFO0VBQVc7RUFBaUI7RUFBa0I7O0FBQXFCO0VBQUk7OztBQUN2RTtFQUFVO0VBQWU7RUFBaUI7RUFBa0I7RUFBb0I7RUFBb0I7O0FBQ2xHO0VBQU87RUFBZ0I7RUFBc0I7RUFBbUM7O0FBQ2hGO0VBQVE7RUFBZ0I7RUFBb0I7RUFBbUM7OztBQUNqRTtFQUErQjs7O0FBRS9DO0VBQ0U7SUFBVztJQUFrRDs7RUFDN0Q7SUFBcUI7SUFBaUI7O0FBRXhDO0VBQ0U7SUFBVzs7RUFDWDtJQUFVOztFQUNWO0lBQVc7OztBQUViO0VBQTBDO0lBQW9COztFQUFtQjtJQUFpQiIsImZpbGUiOiJzY3NzL0FyZWFzL3B1YmxpYy9wdWJsaWMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVHJhZGFudGUgw6LCgMKUIHB1YmxpYy5jc3NcbiAgIFNoYXJlZCBzdHlsZXMgZm9yIGFsbCBwdWJsaWMtZmFjaW5nIHBhZ2VzXG4gICBGb250OiBTcGFjZSBHcm90ZXNrIChib2R5KSArIEJlYmFzIE5ldWUgKGRpc3BsYXkpICsgSUJNIFBsZXggTW9ubyAoZGF0YSlcbiAgIEZyYW1ld29yazogQm9vdHN0cmFwIDUuM1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBTaGFyZWQgZm9udHMgKyAzLXRoZW1lIHN5c3RlbVxuQGltcG9ydCAnLi4vX2NvbW1vbic7XG5cbi8qIMOiwpTCgMOiwpTCgCBHT09HTEUgRk9OVFMgw6LClMKAw6LClMKAICovXG5cbi8qIMOiwpTCgMOiwpTCgCBUSEVNRSBWQVJJQUJMRVMgw6LClMKAw6LClMKAICovXG4vKiBTdGF0aWMgdmFycyDDosKAwpQgbmV2ZXIgY2hhbmdlICovXG46cm9vdCB7XG4gIC0tZ3JlZW46ICMyMmM1NWU7XG4gIC0tcmVkOiAgICNlZjQ0NDQ7XG4gIC0tZ29sZDogICNGNUM1MTg7XG4gIC0tdGVhbDogICMwNkI2RDQ7XG4gIC8qIERlZmF1bHQgdG8gdmlvbGV0IHNvIHBhZ2UgbmV2ZXIgZmxhc2hlcyB1bnN0eWxlZCAqL1xuICAtLWJnOiAgICAgICAgICMwQTA0MTQ7XG4gIC0tYmcyOiAgICAgICAgIzBFMDgyMDtcbiAgLS1iZzM6ICAgICAgICAjMTMwQzI4O1xuICAtLWJnNDogICAgICAgICMxQTEwMzU7XG4gIC0tYWNjZW50OiAgICAgIzhCNUNGNjtcbiAgLS1hY2NlbnQyOiAgICAjNkQyOEQ5O1xuICAtLWFjY2VudDM6ICAgICNBNzhCRkE7XG4gIC0tZ3JhZDogICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzRDMUQ5NSAwJSwgIzdDM0FFRCA0NSUsICNBNzhCRkEgMTAwJSk7XG4gIC0tYWNjZW50LWdyYWQtc2VjdGlvbjogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzFCMEE0NSAwJSwgIzNBMTg4OSA0OCUsICM0QzFEOTUgMTAwJSk7IC8qIGdyYWRpZW50LWFjY2VudCBzZWN0aW9uIGJhbmQgKHRoZW1lLWF3YXJlKSAqL1xuICAtLWJvcmRlcjogICAgIHJnYmEoMjU1LDI1NSwyNTUsMC4wNyk7XG4gIC0tYm9yZGVyLWg6ICAgcmdiYSgxMzksOTIsMjQ2LDAuNCk7XG4gIC0tdGV4dDogICAgICAgI0YwRjBGNDtcbiAgLS10ZXh0MjogICAgICByZ2JhKDI0MCwyNDAsMjQ0LDAuNik7XG4gIC0tdGV4dDM6ICAgICAgcmdiYSgyNDAsMjQwLDI0NCwwLjMpO1xuICAtLWJhZGdlOiAgICAgIHJnYmEoMTM5LDkyLDI0NiwwLjEpO1xuICAtLW5hdi1iZzogICAgIHJnYmEoMTAsNCwyMCwwLjkyKTtcbiAgLS1jYXJkLWJnOiAgICByZ2JhKDE5LDEyLDQwLDAuOTUpO1xuICAtLWdsb3cxOiAgICAgIHJnYmEoMTM5LDkyLDI0NiwwLjI4KTtcbiAgLS1nbG93MjogICAgICByZ2JhKDEwOSw0MCwyMTcsMC4xOCk7XG4gIC0tZ3JpZC1jb2xvcjogcmdiYSgxMzksOTIsMjQ2LDAuMTQpO1xuICAtLXcwNTogcmdiYSgyNTUsMjU1LDI1NSwwLjA1KTtcbiAgLS13MDg6IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7XG4gIC0tdzEyOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpO1xuICAtLXcyMDogcmdiYSgyNTUsMjU1LDI1NSwwLjIwKTtcbiAgLS13NDA6IHJnYmEoMjU1LDI1NSwyNTUsMC40MCk7XG4gIC0tdzYwOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjApO1xufVxuXG4vKiBWSU9MRVQgVEhFTUUgw6LCgMKUIGV4cGxpY2l0LCBzYW1lIGFzIDpyb290IGRlZmF1bHRzICovXG5odG1sW2RhdGEtdGhlbWU9XCJ2aW9sZXRcIl0ge1xuICAtLWJnOiAgICAgICAgICMwQTA0MTQ7XG4gIC0tYmcyOiAgICAgICAgIzBFMDgyMDtcbiAgLS1iZzM6ICAgICAgICAjMTMwQzI4O1xuICAtLWJnNDogICAgICAgICMxQTEwMzU7XG4gIC0tYWNjZW50OiAgICAgIzhCNUNGNjtcbiAgLS1hY2NlbnQyOiAgICAjNkQyOEQ5O1xuICAtLWFjY2VudDM6ICAgICNBNzhCRkE7XG4gIC0tZ3JhZDogICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzRDMUQ5NSAwJSwgIzdDM0FFRCA0NSUsICNBNzhCRkEgMTAwJSk7XG4gIC0tYWNjZW50LWdyYWQtc2VjdGlvbjogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzFCMEE0NSAwJSwgIzNBMTg4OSA0OCUsICM0QzFEOTUgMTAwJSk7IC8qIGdyYWRpZW50LWFjY2VudCBzZWN0aW9uIGJhbmQgKHRoZW1lLWF3YXJlKSAqL1xuICAtLWJvcmRlcjogICAgIHJnYmEoMjU1LDI1NSwyNTUsMC4wNyk7XG4gIC0tYm9yZGVyLWg6ICAgcmdiYSgxMzksOTIsMjQ2LDAuNCk7XG4gIC0tdGV4dDogICAgICAgI0YwRjBGNDtcbiAgLS10ZXh0MjogICAgICByZ2JhKDI0MCwyNDAsMjQ0LDAuNik7XG4gIC0tdGV4dDM6ICAgICAgcmdiYSgyNDAsMjQwLDI0NCwwLjMpO1xuICAtLWJhZGdlOiAgICAgIHJnYmEoMTM5LDkyLDI0NiwwLjEpO1xuICAtLW5hdi1iZzogICAgIHJnYmEoMTAsNCwyMCwwLjkyKTtcbiAgLS1jYXJkLWJnOiAgICByZ2JhKDE5LDEyLDQwLDAuOTUpO1xuICAtLWdsb3cxOiAgICAgIHJnYmEoMTM5LDkyLDI0NiwwLjI4KTtcbiAgLS1nbG93MjogICAgICByZ2JhKDEwOSw0MCwyMTcsMC4xOCk7XG4gIC0tZ3JpZC1jb2xvcjogcmdiYSgxMzksOTIsMjQ2LDAuMTQpO1xufVxuXG4vKiBCTEFDSyBUSEVNRSDDosKAwpQgb3ZlcnJpZGVzIGV2ZXJ5dGhpbmcgYWJvdmUgKi9cbmh0bWxbZGF0YS10aGVtZT1cImJsYWNrXCJdIHtcbiAgLS1iZzogICAgICAgICAjMDQwNDBBO1xuICAtLWJnMjogICAgICAgICMwODA2MEU7XG4gIC0tYmczOiAgICAgICAgIzBEMEExODtcbiAgLS1iZzQ6ICAgICAgICAjMTIwRTIyO1xuICAtLWFjY2VudDogICAgICNEOTFBQUQ7XG4gIC0tYWNjZW50MjogICAgIzhDMEY3MDtcbiAgLS1hY2NlbnQzOiAgICAjRTgzREMwO1xuICAtLWdyYWQ6ICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM1QzBBNDggMCUsICM5QjBGN0EgNDAlLCAjRDkxQUFEIDc1JSwgI0U4M0RDMCAxMDAlKTtcbiAgLS1hY2NlbnQtZ3JhZC1zZWN0aW9uOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMkEwNzIyIDAlLCAjNkIwRjU1IDQ4JSwgIzhBMTQ3MCAxMDAlKTsgLyogZ3JhZGllbnQtYWNjZW50IHNlY3Rpb24gYmFuZCAodGhlbWUtYXdhcmUpICovXG4gIC0tYm9yZGVyOiAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjA3KTtcbiAgLS1ib3JkZXItaDogICByZ2JhKDIxNywyNiwxNzMsMC40NSk7XG4gIC0tdGV4dDogICAgICAgI0YwRjBGNDtcbiAgLS10ZXh0MjogICAgICByZ2JhKDI0MCwyNDAsMjQ0LDAuNik7XG4gIC0tdGV4dDM6ICAgICAgcmdiYSgyNDAsMjQwLDI0NCwwLjMpO1xuICAtLWJhZGdlOiAgICAgIHJnYmEoMjE3LDI2LDE3MywwLjEpO1xuICAtLW5hdi1iZzogICAgIHJnYmEoNCw0LDEwLDAuOTIpO1xuICAtLWNhcmQtYmc6ICAgIHJnYmEoMTMsMTAsMjQsMC45NSk7XG4gIC0tZ2xvdzE6ICAgICAgcmdiYSgyMTcsMjYsMTczLDAuMjIpO1xuICAtLWdsb3cyOiAgICAgIHJnYmEoMTQwLDE1LDExMiwwLjE4KTtcbiAgLS1ncmlkLWNvbG9yOiByZ2JhKDIxNywyNiwxNzMsMC4xMik7XG4gIC0tdzA1OiByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpO1xuICAtLXcwODogcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTtcbiAgLS13MTI6IHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7XG4gIC0tdzIwOiByZ2JhKDI1NSwyNTUsMjU1LDAuMjApO1xuICAtLXc0MDogcmdiYSgyNTUsMjU1LDI1NSwwLjQwKTtcbiAgLS13NjA6IHJnYmEoMjU1LDI1NSwyNTUsMC42MCk7XG59XG5cbi8qIEJMVUUgVEhFTUUgw6LCgMKUIG5hdnkgdG8gc2t5LCBtYXRjaGVzIGV4aXN0aW5nIGxpdmUgYXBwICovXG5odG1sW2RhdGEtdGhlbWU9XCJibHVlXCJdIHtcbiAgLS1iZzogICAgICAgICAjMEQxMDIwO1xuICAtLWJnMjogICAgICAgICMxMjE1MjU7XG4gIC0tYmczOiAgICAgICAgIzE3MTkyRTtcbiAgLS1iZzQ6ICAgICAgICAjMUMxRjM4O1xuICAtLWFjY2VudDogICAgICM0RjhFRjc7XG4gIC0tYWNjZW50MjogICAgIzFBNTZEQjtcbiAgLS1hY2NlbnQzOiAgICAjOTNCQkZEO1xuICAtLWdyYWQ6ICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxQTNBOEYgMCUsICMxQTU2REIgNDAlLCAjNEY4RUY3IDc1JSwgIzkzQkJGRCAxMDAlKTtcbiAgLS1hY2NlbnQtZ3JhZC1zZWN0aW9uOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDcxQTNBIDAlLCAjMTIzNTdBIDQ4JSwgIzFBNTZEQiAxMDAlKTsgLyogZ3JhZGllbnQtYWNjZW50IHNlY3Rpb24gYmFuZCAodGhlbWUtYXdhcmUpICovXG4gIC0tYm9yZGVyOiAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjA3KTtcbiAgLS1ib3JkZXItaDogICByZ2JhKDc5LDE0MiwyNDcsMC40NSk7XG4gIC0tdGV4dDogICAgICAgI0YwRjBGNDtcbiAgLS10ZXh0MjogICAgICByZ2JhKDI0MCwyNDAsMjQ0LDAuNik7XG4gIC0tdGV4dDM6ICAgICAgcmdiYSgyNDAsMjQwLDI0NCwwLjMpO1xuICAtLWJhZGdlOiAgICAgIHJnYmEoNzksMTQyLDI0NywwLjEpO1xuICAtLW5hdi1iZzogICAgIHJnYmEoMTMsMTYsMzIsMC45Mik7XG4gIC0tY2FyZC1iZzogICAgcmdiYSgyMywyNSw0NiwwLjk1KTtcbiAgLS1nbG93MTogICAgICByZ2JhKDc5LDE0MiwyNDcsMC4yKTtcbiAgLS1nbG93MjogICAgICByZ2JhKDI2LDg2LDIxOSwwLjE0KTtcbiAgLS1ncmlkLWNvbG9yOiByZ2JhKDc5LDE0MiwyNDcsMC4xMik7XG59XG5cblxuLyogVklPTEVUIFRIRU1FIGhhbmRsZWQgYWJvdmUgaW4gaHRtbFtkYXRhLXRoZW1lPVwidmlvbGV0XCJdICovXG4vKiBUaGlzIGJsb2NrIGludGVudGlvbmFsbHkgcmVtb3ZlZCDDosKAwpQga2VlcGluZyBvbmx5IGZvciBsZWdhY3kgKi9cbmh0bWxbZGF0YS10aGVtZT1cInZpb2xldC1sZWdhY3lcIl0ge1xuICAtLWJnOiAgICAgICAgICMwQTA0MTQ7XG4gIC0tYmcyOiAgICAgICAgIzBFMDgyMDtcbiAgLS1iZzM6ICAgICAgICAjMTMwQzI4O1xuICAtLWJnNDogICAgICAgICMxQTEwMzU7XG4gIC0tYWNjZW50OiAgICAgIzhCNUNGNjtcbiAgLS1hY2NlbnQyOiAgICAjNkQyOEQ5O1xuICAtLWFjY2VudDM6ICAgICNBNzhCRkE7XG4gIC0tZ3JhZDogICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzRDMUQ5NSAwJSwgIzdDM0FFRCA0NSUsICNBNzhCRkEgMTAwJSk7XG4gIC0tYWNjZW50LWdyYWQtc2VjdGlvbjogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzFCMEE0NSAwJSwgIzNBMTg4OSA0OCUsICM0QzFEOTUgMTAwJSk7IC8qIGdyYWRpZW50LWFjY2VudCBzZWN0aW9uIGJhbmQgKHRoZW1lLWF3YXJlKSAqL1xuICAtLWJvcmRlcjogICAgIHJnYmEoMjU1LDI1NSwyNTUsMC4wNyk7XG4gIC0tYm9yZGVyLWg6ICAgcmdiYSgxMzksOTIsMjQ2LDAuNCk7XG4gIC0tdGV4dDogICAgICAgI0YwRjBGNDtcbiAgLS10ZXh0MjogICAgICByZ2JhKDI0MCwyNDAsMjQ0LDAuNik7XG4gIC0tdGV4dDM6ICAgICAgcmdiYSgyNDAsMjQwLDI0NCwwLjMpO1xuICAtLWJhZGdlOiAgICAgIHJnYmEoMTM5LDkyLDI0NiwwLjEpO1xuICAtLW5hdi1iZzogICAgIHJnYmEoMTAsNCwyMCwwLjkyKTtcbiAgLS1jYXJkLWJnOiAgICByZ2JhKDE5LDEyLDQwLDAuOTUpO1xuICAtLWdsb3cxOiAgICAgIHJnYmEoMTM5LDkyLDI0NiwwLjI4KTtcbiAgLS1nbG93MjogICAgICByZ2JhKDEwOSw0MCwyMTcsMC4xOCk7XG4gIC0tZ3JpZC1jb2xvcjogcmdiYSgxMzksOTIsMjQ2LDAuMTQpO1xuICAtLXcwNTogcmdiYSgyNTUsMjU1LDI1NSwwLjA1KTtcbiAgLS13MDg6IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7XG4gIC0tdzEyOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpO1xuICAtLXcyMDogcmdiYSgyNTUsMjU1LDI1NSwwLjIwKTtcbiAgLS13NDA6IHJnYmEoMjU1LDI1NSwyNTUsMC40MCk7XG4gIC0tdzYwOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjApO1xufVxuXG4vKiDDosKUwoDDosKUwoAgQkFTRSDDosKUwoDDosKUwoAgKi9cbmh0bWwgeyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6IHZhcigtLWJnKTsgfVxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZyk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xufVxuOjotd2Via2l0LXNjcm9sbGJhciB7IHdpZHRoOiA0cHg7IGhlaWdodDogNHB4OyB9XG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsgYmFja2dyb3VuZDogdmFyKC0tYmcyKTsgfVxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7IGJhY2tncm91bmQ6IHZhcigtLWFjY2VudDIpOyBib3JkZXItcmFkaXVzOiAycHg7IH1cblxuLyogw6LClMKAw6LClMKAIEJBQ0tHUk9VTkQgRUZGRUNUUyDDosKUwoDDosKUwoAgKi9cbi50ci1iZy1nbG93IHtcbiAgcG9zaXRpb246IGZpeGVkOyBpbnNldDogMDsgei1pbmRleDogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQ6XG4gICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgODAlIDcwJSBhdCA1MCUgLTUlLCAgdmFyKC0tZ2xvdzEpIDAlLCB0cmFuc3BhcmVudCA2MCUpLFxuICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDU1JSA1MCUgYXQgNSUgIDkwJSwgIHZhcigtLWdsb3cyKSAwJSwgdHJhbnNwYXJlbnQgNTUlKSxcbiAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA0NSUgNDUlIGF0IDk1JSA4NSUsICByZ2JhKDE5NiwxODEsMjUzLC4wNikgMCUsIHRyYW5zcGFyZW50IDU1JSk7XG59XG4udHItYmctZ3JpZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDsgaW5zZXQ6IDA7IHotaW5kZXg6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCh2YXIoLS1ncmlkLWNvbG9yKSAxcHgsIHRyYW5zcGFyZW50IDFweCksXG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1ncmlkLWNvbG9yKSAxcHgsIHRyYW5zcGFyZW50IDFweCk7XG4gIGJhY2tncm91bmQtc2l6ZTogNjBweCA2MHB4O1xuICBtYXNrLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSAxMDAlIDEwMCUgYXQgNTAlIDUwJSwgYmxhY2sgMjAlLCB0cmFuc3BhcmVudCA3OCUpO1xuICAtd2Via2l0LW1hc2staW1hZ2U6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDEwMCUgMTAwJSBhdCA1MCUgNTAlLCBibGFjayAyMCUsIHRyYW5zcGFyZW50IDc4JSk7XG59XG5cbi8qIEFuaW1hdGVkIHRyYXZlbCBkb3RzIGFsb25nIGdyaWQgbGluZXMgKi9cbi50ci1iZy1ncmlkOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgM3B4IGF0IDAgMCwgdmFyKC0tYWNjZW50KSAwJSwgdHJhbnNwYXJlbnQgNjAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA2MHB4IDYwcHg7XG4gIG1hc2staW1hZ2U6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDEwMCUgMTAwJSBhdCA1MCUgNTAlLCBibGFjayAyMCUsIHRyYW5zcGFyZW50IDc4JSk7XG4gIC13ZWJraXQtbWFzay1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgMTAwJSAxMDAlIGF0IDUwJSA1MCUsIGJsYWNrIDIwJSwgdHJhbnNwYXJlbnQgNzglKTtcbiAgYW5pbWF0aW9uOiBncmlkLXRyYXZlbC1oIDJzIGxpbmVhciBpbmZpbml0ZTtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4udHItYmctZ3JpZDo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgM3B4IGF0IDAgMCwgdmFyKC0tYWNjZW50KSAwJSwgdHJhbnNwYXJlbnQgNjAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA2MHB4IDYwcHg7XG4gIG1hc2staW1hZ2U6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDEwMCUgMTAwJSBhdCA1MCUgNTAlLCBibGFjayAyMCUsIHRyYW5zcGFyZW50IDc4JSk7XG4gIC13ZWJraXQtbWFzay1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgMTAwJSAxMDAlIGF0IDUwJSA1MCUsIGJsYWNrIDIwJSwgdHJhbnNwYXJlbnQgNzglKTtcbiAgYW5pbWF0aW9uOiBncmlkLXRyYXZlbC12IDJzIGxpbmVhciBpbmZpbml0ZTtcbiAgb3BhY2l0eTogMC43O1xufVxuXG5Aa2V5ZnJhbWVzIGdyaWQtdHJhdmVsLWgge1xuICBmcm9tIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyB9XG4gIHRvICAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA2MHB4IDA7IH1cbn1cblxuQGtleWZyYW1lcyBncmlkLXRyYXZlbC12IHtcbiAgZnJvbSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsgfVxuICB0byAgIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCA2MHB4OyB9XG59XG5cbi8qIFZpZGVvIGJhY2tncm91bmQgd2l0aCBibHVyL2ZhZGUgZWZmZWN0ICovXG4udHItYmctdmlkZW8ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogLTE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4udHItYmctdmlkZW8gdmlkZW8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGZpbHRlcjogYmx1cig4cHgpIGJyaWdodG5lc3MoMC4zKSBzYXR1cmF0ZSgxLjIpO1xuICBvcGFjaXR5OiAwLjQ7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4udHItYmctdmlkZW86OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6IFxuICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWJnKSAwJSwgdHJhbnNwYXJlbnQgNDAlLCB0cmFuc3BhcmVudCA2MCUsIHZhcigtLWJnKSAxMDAlKSxcbiAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSAxMDAlIDgwJSBhdCA1MCUgMjAlLCB0cmFuc3BhcmVudCAwJSwgdmFyKC0tYmcpIDcwJSksXG4gICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgNjAlIDYwJSBhdCA1MCUgMTAwJSwgcmdiYSgwLDAsMCwwLjgpIDAlLCB0cmFuc3BhcmVudCA2MCUpO1xuICB6LWluZGV4OiAxO1xufVxuXG4vKiDDosKUwoDDosKUwoAgTkFWQkFSIMOiwpTCgMOiwpTCgCAqL1xuLnRyLW5hdmJhciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5hdi1iZykgIWltcG9ydGFudDtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gIHBhZGRpbmc6IDAuNnJlbSAxLjVyZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjM1cywgYm9yZGVyLWNvbG9yIC4zNXM7XG59XG4udHItbmF2YmFyIC5uYXZiYXItYnJhbmQge1xuICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi50ci1uYXZiYXIgLmJyYW5kLWxvZ28ge1xuICB3aWR0aDogMzJweDsgaGVpZ2h0OiAzMnB4OyBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0tYWNjZW50KTtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgxMzksOTIsMjQ2LDAuMyk7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuLnRyLW5hdmJhciAuYnJhbmQtbmFtZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXNpemU6IDIwcHg7IGxldHRlci1zcGFjaW5nOiA0cHg7IGNvbG9yOiB2YXIoLS10ZXh0KTtcbn1cbi50ci1uYXZiYXIgLm5hdi1saW5rIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gIGZvbnQtc2l6ZTogMTJweDsgbGV0dGVyLXNwYWNpbmc6IDEuNXB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tdGV4dDMpICFpbXBvcnRhbnQ7IHRyYW5zaXRpb246IGNvbG9yIDAuMnM7IHBhZGRpbmc6IDAuNHJlbSAwLjhyZW07XG59XG4udHItbmF2YmFyIC5uYXYtbGluazpob3Zlcixcbi50ci1uYXZiYXIgLm5hdi1saW5rLmFjdGl2ZSB7IGNvbG9yOiB2YXIoLS1hY2NlbnQpICFpbXBvcnRhbnQ7IH1cbi50ci1uYXZiYXIgLm5hdmJhci10b2dnbGVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXIpOyBwYWRkaW5nOiA0cHggOHB4O1xufVxuLnRyLW5hdmJhciAubmF2YmFyLXRvZ2dsZXItaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzAgMzAnJTNlJTNjcGF0aCBzdHJva2U9J3JnYmEoMjU1LDI1NSwyNTUsMC41KScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIHN0cm9rZS13aWR0aD0nMicgZD0nTTQgN2gyMk00IDE1aDIyTTQgMjNoMjInLyUzZSUzYy9zdmclM2VcIik7XG59XG4udHItbmF2YmFyIC5uYXZiYXItY29sbGFwc2UgeyBwYWRkaW5nOiAwLjVyZW0gMDsgfVxuXG4vKiBUaGVtZSBzd2l0Y2hlciBpbiBuYXYgLSBkcm9wZG93biB2ZXJzaW9uICovXG4udHItdGhlbWUtc3dpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi50ci10aGVtZS1kcm9wZG93biB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dDIpO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMS41cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzLCBjb2xvciAwLjJzO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgbWluLXdpZHRoOiA5NnB4O1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLnRyLXRoZW1lLWRyb3Bkb3duOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItaCk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbn1cblxuLnRyLXRoZW1lLWRyb3Bkb3duOjphZnRlciB7XG4gIGNvbnRlbnQ6ICdcXDI1QkMnO1xuICBmb250LXNpemU6IDdweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG9wYWNpdHk6IC42O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycztcbn1cblxuLnRyLXRoZW1lLWRyb3Bkb3duLm9wZW46OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLnRyLXRoZW1lLWljb24ge1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4udHItdGhlbWUtbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyA2cHgpO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmczKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3gtc2hhZG93OiAwIDE0cHggNDBweCByZ2JhKDAsMCwwLC40NSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcbn1cblxuLnRyLXRoZW1lLW1lbnUub3BlbiB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cblxuLnRyLXRoZW1lLW9wdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiB2YXIoLS10ZXh0Myk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbn1cblxuLnRyLXRoZW1lLW9wdGlvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLnRyLXRoZW1lLW9wdGlvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJnNCk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0Mik7XG59XG5cbi50ci10aGVtZS1vcHRpb24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2UpO1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG59XG5cbi50ci10aGVtZS1vcHRpb24gLnRyLXRoZW1lLWljb24ge1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi8qIFNraW4gc3dpdGNoZXIgZ2x5cGhzIChtb29ucyk6IHRoZSB0cmlnZ2VyIHNob3dzIG9ubHkgdGhlIGFjdGl2ZSBza2luJ3MgZ2x5cGggKi9cbi50ci10aGVtZS1kcm9wZG93biB7IG1pbi13aWR0aDogMDsgcGFkZGluZzogNnB4IDEwcHg7IGdhcDogNnB4OyB9XG4udHItdGhlbWUtZ2x5cGggeyBkaXNwbGF5OiBub25lOyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyBjb2xvcjogdmFyKC0tYWNjZW50MywgdmFyKC0tYWNjZW50KSk7IGZsZXgtc2hyaW5rOiAwOyB9XG4udHItdGhlbWUtZ2x5cGggc3ZnIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgZGlzcGxheTogYmxvY2s7IH1cbi50ci10aGVtZS1nbHlwaC5vbiB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyB9XG4udHItdGhlbWUtb3B0aW9uIC50ci10aGVtZS1nbHlwaCB7IHdpZHRoOiAxNHB4OyBoZWlnaHQ6IDE0cHg7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IH1cbi50ci10aGVtZS1vcHRpb24uYWN0aXZlIC50ci10aGVtZS1nbHlwaCwgLnRyLXRoZW1lLW9wdGlvbjpob3ZlciAudHItdGhlbWUtZ2x5cGggeyBjb2xvcjogdmFyKC0tYWNjZW50MywgdmFyKC0tYWNjZW50KSk7IH1cbi50ci10aGVtZS1tZW51IHsgbGVmdDogYXV0bzsgcmlnaHQ6IDA7IG1pbi13aWR0aDogMTMycHg7IH1cblxuLyogw6LClMKAw6LClMKAIEFVVEggU1BMSVQgTEFZT1VUIMOiwpTCgMOiwpTCgCAqL1xuLnRyLWF1dGgtd3JhcCB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxO1xufVxuLnRyLWF1dGgtbGVmdCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHZhcigtLWJnMiksIHZhcigtLWJnMykpO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO1xuICBwYWRkaW5nOiAzcmVtIDIuNXJlbTtcbiAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLnRyLWF1dGgtcmlnaHQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWJnKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xuICBwYWRkaW5nOiAzcmVtIDIuNXJlbTtcbiAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC50ci1hdXRoLWxlZnQgeyBkaXNwbGF5OiBub25lOyB9XG4gIC50ci1hdXRoLXJpZ2h0IHsgcGFkZGluZzogMnJlbSAxLjVyZW07IH1cbn1cblxuLyogw6LClMKAw6LClMKAIExFRlQgUEFORUwgw6LClMKAw6LClMKAICovXG4udHItbGVmdC10YWcge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogM3B4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYWNjZW50KTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7XG59XG4udHItbGVmdC10YWc6OmJlZm9yZSB7IGNvbnRlbnQ6ICcnOyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxcHg7IGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7IH1cbi50ci1sZWZ0LWgge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC1zaXplOiBjbGFtcCg0MHB4LCA1dncsIDYwcHgpO1xuICBsZXR0ZXItc3BhY2luZzogMnB4OyBsaW5lLWhlaWdodDogMC45NTsgY29sb3I6ICNmZmY7IG1hcmdpbi1ib3R0b206IDFyZW07XG59XG4udHItbGVmdC1oIGVtIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xufVxuLnRyLWxlZnQtc3ViIHsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogdmFyKC0tdGV4dDIpOyBsaW5lLWhlaWdodDogMS43OyBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cbi50ci1wZXJrIHtcbiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGdhcDogMTJweDtcbiAgcGFkZGluZzogMTJweDsgYmFja2dyb3VuZDogdmFyKC0tdzA1KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdzA4KTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG59XG4udHItcGVyazpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMTM5LDkyLDI0NiwwLjA4KTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItaCk7IH1cbi50ci1wZXJrLWljb24ge1xuICB3aWR0aDogMzRweDsgaGVpZ2h0OiAzNHB4OyBib3JkZXItcmFkaXVzOiA4cHg7IGZsZXgtc2hyaW5rOiAwO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1hY2NlbnQyKSwgdmFyKC0tYWNjZW50KSk7XG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBmb250LXNpemU6IDE2cHg7XG59XG4udHItcGVyay10aXRsZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDE1cHg7IGxldHRlci1zcGFjaW5nOiAxcHg7IGNvbG9yOiAjZmZmOyBtYXJnaW4tYm90dG9tOiAycHg7IH1cbi50ci1wZXJrLWRlc2MgeyBmb250LXNpemU6IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IGxpbmUtaGVpZ2h0OiAxLjU7IH1cblxuLyogw6LClMKAw6LClMKAIEZPUk0gUEFORUwgw6LClMKAw6LClMKAICovXG4udHItZm9ybS10b3AtYmFyIHsgaGVpZ2h0OiAzcHg7IGJhY2tncm91bmQ6IHZhcigtLWdyYWQpOyBib3JkZXItcmFkaXVzOiAycHg7IG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfVxuLnRyLWZvcm0tdGl0bGUge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC1zaXplOiAzMHB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyBjb2xvcjogI2ZmZjsgbWFyZ2luLWJvdHRvbTogNHB4OyBsaW5lLWhlaWdodDogMTtcbn1cbi50ci1mb3JtLXN1YiB7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLXRleHQzKTsgbGluZS1oZWlnaHQ6IDEuNjsgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4udHItZm9ybS1zdWIgc3Ryb25nIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuLyogw6LClMKAw6LClMKAIEZPUk0gRUxFTUVOVFMgw6LClMKAw6LClMKAICovXG4udHItbGFiZWwge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5cHg7IGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi50ci1pbnB1dCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXcwNSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXcxMik7IGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHBhZGRpbmc6IDExcHggMTRweDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7IGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICNmZmY7IG91dGxpbmU6IG5vbmU7IHRyYW5zaXRpb246IGFsbCAwLjI1czsgd2lkdGg6IDEwMCU7XG59XG4udHItaW5wdXQ6OnBsYWNlaG9sZGVyIHsgY29sb3I6IHZhcigtLXcyMCk7IH1cbi50ci1pbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMzksOTIsMjQ2LDAuNSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTM5LDkyLDI0NiwwLjA0KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMTM5LDkyLDI0NiwwLjEyKTtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi50ci1pbnB1dC5pcy1pbnZhbGlkIHsgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSw2OCw2OCwwLjYpOyB9XG4udHItaW5wdXQuaXMtdmFsaWQgICB7IGJvcmRlci1jb2xvcjogcmdiYSgzNCwxOTcsOTQsMC41KTsgfVxuLnRyLXNlbGVjdCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXcwNSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXcxMik7IGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHBhZGRpbmc6IDExcHggMTRweDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7IGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICNmZmY7IG91dGxpbmU6IG5vbmU7IHRyYW5zaXRpb246IGFsbCAwLjI1czsgd2lkdGg6IDEwMCU7XG4gIGN1cnNvcjogcG9pbnRlcjsgYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMicgaGVpZ2h0PSc4JyB2aWV3Qm94PScwIDAgMTIgOCclM0UlM0NwYXRoIGQ9J00xIDFsNSA1IDUtNScgc3Ryb2tlPSdyZ2JhKDI1NSwyNTUsMjU1LDAuMyknIHN0cm9rZS13aWR0aD0nMS41JyBmaWxsPSdub25lJyBzdHJva2UtbGluZWNhcD0ncm91bmQnLyUzRSUzQy9zdmclM0VcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDE0cHggY2VudGVyO1xufVxuLnRyLXNlbGVjdDpmb2N1cyB7IGJvcmRlci1jb2xvcjogcmdiYSgxMzksOTIsMjQ2LDAuNSk7IGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDEzOSw5MiwyNDYsMC4xMik7IH1cbi50ci1zZWxlY3Qgb3B0aW9uIHsgYmFja2dyb3VuZDogIzExMTsgY29sb3I6ICNmZmY7IH1cbi50ci1wYXNzLXdyYXAgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbi50ci1wYXNzLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IDEycHg7IHRvcDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGJhY2tncm91bmQ6IG5vbmU7IGJvcmRlcjogbm9uZTsgY29sb3I6IHZhcigtLXRleHQzKTsgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE0cHg7IHBhZGRpbmc6IDA7IHRyYW5zaXRpb246IGNvbG9yIDAuMnM7XG59XG4udHItcGFzcy10b2dnbGU6aG92ZXIgeyBjb2xvcjogI2ZmZjsgfVxuLnRyLWludmFsaWQtZmVlZGJhY2sge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBjb2xvcjogcmdiYSgyMzksNjgsNjgsMC44KTsgbWFyZ2luLXRvcDogNHB4OyBtaW4taGVpZ2h0OiAxNHB4OyBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogw6LClMKAw6LClMKAIEJVVFRPTlMgw6LClMKAw6LClMKAICovXG4udHItYnRuLXByaW1hcnkge1xuICB3aWR0aDogMTAwJTsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtc2l6ZTogMThweDsgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgY29sb3I6ICMwMDA7IGJvcmRlcjogbm9uZTsgY3Vyc29yOiBwb2ludGVyOyBwYWRkaW5nOiAxM3B4IDIwcHg7IGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWdyYWQpOyB0cmFuc2l0aW9uOiBhbGwgMC4yNXM7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDIycHggcmdiYSgxMzksOTIsMjQ2LDAuNCk7XG59XG4udHItYnRuLXByaW1hcnk6aG92ZXIgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IGJveC1zaGFkb3c6IDAgMTJweCAzNHB4IHJnYmEoMTM5LDkyLDI0NiwwLjYpOyB9XG4udHItYnRuLXByaW1hcnk6YWN0aXZlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4udHItYnRuLXByaW1hcnkubG9hZGluZyB7IHBvaW50ZXItZXZlbnRzOiBub25lOyBvcGFjaXR5OiAwLjc7IH1cbi50ci1idG4tb3V0bGluZSB7XG4gIHdpZHRoOiAxMDAlOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiAxN3B4OyBsZXR0ZXItc3BhY2luZzogM3B4O1xuICBjb2xvcjogdmFyKC0tYWNjZW50Myk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTM5LDkyLDI0NiwwLjMpOyBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDEycHggMjBweDsgYm9yZGVyLXJhZGl1czogMTJweDsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IHRyYW5zaXRpb246IGFsbCAwLjI1cztcbn1cbi50ci1idG4tb3V0bGluZTpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMTM5LDkyLDI0NiwwLjA4KTsgYm9yZGVyLWNvbG9yOiByZ2JhKDEzOSw5MiwyNDYsMC41NSk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsgfVxuXG4vKiDDosKUwoDDosKUwoAgU1RFUFMgQkFSIMOiwpTCgMOiwpTCgCAqL1xuLnRyLXN0ZXBzIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7IG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfVxuLnRyLXN0ZXAtaXRlbSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4OyB9XG4udHItc3RlcC1udW0ge1xuICB3aWR0aDogMjRweDsgaGVpZ2h0OiAyNHB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiAxM3B4OyBmbGV4LXNocmluazogMDtcbn1cbi50ci1zdGVwLW51bS5hY3RpdmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgY29sb3I6ICMwMDA7IH1cbi50ci1zdGVwLW51bS5kb25lICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDM0LDE5Nyw5NCwwLjE1KTsgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwxOTcsOTQsMC4zNSk7IGNvbG9yOiAjMjJjNTVlOyB9XG4udHItc3RlcC1udW0uaWRsZSAgIHsgYmFja2dyb3VuZDogdmFyKC0tdzA1KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdzEyKTsgY29sb3I6IHZhcigtLXRleHQzKTsgfVxuLnRyLXN0ZXAtbGFiZWwgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5cHg7IGxldHRlci1zcGFjaW5nOiAxLjVweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuLnRyLXN0ZXAtbGFiZWwuYWN0aXZlIHsgY29sb3I6ICNmZmY7IH1cbi50ci1zdGVwLWxhYmVsLmlkbGUgICB7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IH1cbi50ci1zdGVwLWFycm93IHsgY29sb3I6IHZhcigtLXRleHQzKTsgZm9udC1zaXplOiAxMnB4OyBtYXJnaW46IDAgMnB4OyB9XG5cbi8qIMOiwpTCgMOiwpTCgCBESVZJREVSUyDDosKUwoDDosKUwoAgKi9cbi50ci1zZXAge1xuICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbjogMXJlbSAwO1xufVxuLnRyLXNlcDo6YmVmb3JlLCAudHItc2VwOjphZnRlciB7IGNvbnRlbnQ6ICcnOyBmbGV4OiAxOyBoZWlnaHQ6IDFweDsgYmFja2dyb3VuZDogdmFyKC0tdzA4KTsgfVxuLnRyLXNlcCBzcGFuIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOXB4OyBsZXR0ZXItc3BhY2luZzogMnB4O1xuICBjb2xvcjogdmFyKC0tdzIwKTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi50ci1ncmFkLWxpbmUgeyBoZWlnaHQ6IDFweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgxMzksOTIsMjQ2LDAuMzUpLCB0cmFuc3BhcmVudCk7IG1hcmdpbjogMXJlbSAwOyB9XG5cbi8qIMOiwpTCgMOiwpTCgCBCQURHRVMgLyBQSUxMUyDDosKUwoDDosKUwoAgKi9cbi50ci1iYWRnZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDlweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDEuNXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBwYWRkaW5nOiA0cHggMTBweDsgYm9yZGVyLXJhZGl1czogNnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4udHItYmFkZ2UtYWNjZW50IHsgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2UpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItaCk7IGNvbG9yOiB2YXIoLS1hY2NlbnQzKTsgfVxuLnRyLWJhZGdlLWdyZWVuICB7IGJhY2tncm91bmQ6IHJnYmEoMzQsMTk3LDk0LDAuMSk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsMTk3LDk0LDAuMjUpOyBjb2xvcjogIzIyYzU1ZTsgfVxuLnRyLWJhZGdlLXJlZCAgICB7IGJhY2tncm91bmQ6IHJnYmEoMjM5LDY4LDY4LDAuMSk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM5LDY4LDY4LDAuMjUpOyBjb2xvcjogI2VmNDQ0NDsgfVxuLnRyLWJhZGdlLWdvbGQgICB7IGJhY2tncm91bmQ6IHJnYmEoMjQ1LDE5NywyNCwwLjEpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI0NSwxOTcsMjQsMC4yNSk7IGNvbG9yOiAjRjVDNTE4OyB9XG5cbi8qIMOiwpTCgMOiwpTCgCBPVFAgLyAyRkEgSU5QVVRTIMOiwpTCgMOiwpTCgCAqL1xuLnRyLW90cC13cmFwIHsgZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBtYXJnaW46IDFyZW0gMDsgfVxuLnRyLW90cC1pbnB1dCB7XG4gIHdpZHRoOiA0OHB4OyBoZWlnaHQ6IDU2cHg7IHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMjJweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6IHZhcigtLXcwNSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXcxMik7IGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIG91dGxpbmU6IG5vbmU7IHRyYW5zaXRpb246IGFsbCAwLjI1czsgY2FyZXQtY29sb3I6IHZhcigtLWFjY2VudCk7XG59XG4udHItb3RwLWlucHV0OmZvY3VzIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBib3gtc2hhZG93OiAwIDAgMCAzcHggdmFyKC0tYmFkZ2UpOyB9XG5AbWVkaWEgKG1heC13aWR0aDogMzc1cHgpIHtcbiAgLnRyLW90cC1pbnB1dCB7IHdpZHRoOiAzOHB4OyBoZWlnaHQ6IDQ4cHg7IGZvbnQtc2l6ZTogMThweDsgfVxuICAudHItb3RwLXdyYXAgIHsgZ2FwOiA1cHg7IH1cbn1cblxuLyogw6LClMKAw6LClMKAIE1FVEhPRCBTRUxFQ1RJT04gKGZvcmdvdCBwYXNzd29yZCkgw6LClMKAw6LClMKAICovXG4udHItbWV0aG9kLWJveCB7XG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBnYXA6IDEycHg7IHBhZGRpbmc6IDE0cHggMTZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tdzA1KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdzA4KTsgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgY3Vyc29yOiBwb2ludGVyOyB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbn1cbi50ci1tZXRob2QtYm94OmhvdmVyLFxuLnRyLW1ldGhvZC1ib3guc2VsZWN0ZWQgeyBiYWNrZ3JvdW5kOiByZ2JhKDEzOSw5MiwyNDYsMC4wOCk7IGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWgpOyB9XG4udHItbWV0aG9kLWljb24ge1xuICB3aWR0aDogMzhweDsgaGVpZ2h0OiAzOHB4OyBib3JkZXItcmFkaXVzOiAxMHB4OyBmbGV4LXNocmluazogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tdzA4KTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMThweDsgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzO1xufVxuLnRyLW1ldGhvZC1ib3guc2VsZWN0ZWQgLnRyLW1ldGhvZC1pY29uIHsgYmFja2dyb3VuZDogdmFyKC0tZ3JhZCk7IH1cbi50ci1tZXRob2QtdGl0bGUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiAxNnB4OyBsZXR0ZXItc3BhY2luZzogMXB4OyBjb2xvcjogI2ZmZjsgbWFyZ2luLWJvdHRvbTogMnB4OyB9XG4udHItbWV0aG9kLWRlc2MgIHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dDMpOyBsaW5lLWhlaWdodDogMS40OyB9XG5cbi8qIMOiwpTCgMOiwpTCgCBDQVJEIC8gUEFORUwgw6LClMKAw6LClMKAICovXG4udHItY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtYmcpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiAxNHB4OyB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycywgYm94LXNoYWRvdyAwLjJzO1xufVxuLnRyLWNhcmQ6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1oKTsgfVxuLnRyLWNhcmQtaGVhZGVyIHtcbiAgcGFkZGluZzogMC45cmVtIDEuMXJlbTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbi50ci1jYXJkLWxhYmVsIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOXB4OyBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMi41cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS10ZXh0Myk7XG59XG5cbi8qIMOiwpTCgMOiwpTCgCBMSU5LUyDDosKUwoDDosKUwoAgKi9cbi50ci1saW5rIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZm9udC13ZWlnaHQ6IDYwMDsgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOyB9XG4udHItbGluazpob3ZlciB7IG9wYWNpdHk6IDAuODsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbi50ci1saW5rLW11dGVkIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTBweDsgbGV0dGVyLXNwYWNpbmc6IDFweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLXRleHQzKTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB0cmFuc2l0aW9uOiBjb2xvciAwLjJzOyB9XG4udHItbGluay1tdXRlZDpob3ZlciB7IGNvbG9yOiB2YXIoLS1hY2NlbnQpOyB9XG5cbi8qIMOiwpTCgMOiwpTCgCBURVJNUyDDosKUwoDDosKUwoAgKi9cbi50ci10ZXJtcyB7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6IHZhcigtLXRleHQzKTsgbGluZS1oZWlnaHQ6IDEuNjsgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuLnRyLXRlcm1zIGEgeyBjb2xvcjogdmFyKC0tYWNjZW50KTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qIMOiwpTCgMOiwpTCgCBBTklNQVRJT05TIMOiwpTCgMOiwpTCgCAqL1xuQGtleWZyYW1lcyB0ci1mYWRlVXAge1xuICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpOyB9XG4gIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbn1cbkBrZXlmcmFtZXMgdHItcHVsc2UgeyAwJSwxMDAlIHsgb3BhY2l0eToxOyB0cmFuc2Zvcm06c2NhbGUoMSk7IH0gNTAlIHsgb3BhY2l0eTouNTsgdHJhbnNmb3JtOnNjYWxlKC44KTsgfSB9XG5Aa2V5ZnJhbWVzIHRyLXNoYWtlIHtcbiAgMCUsMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAyMCUgICAgICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtN3B4KTsgfVxuICA0MCUgICAgICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3cHgpOyB9XG4gIDYwJSAgICAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpOyB9XG4gIDgwJSAgICAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7IH1cbn1cbi50ci1hbmltLWZhZGUgeyBhbmltYXRpb246IHRyLWZhZGVVcCAwLjVzIGVhc2UgYm90aDsgfVxuXG4vKiDDosKUwoDDosKUwoAgUkVTUE9OU0lWRSBVVElMSVRJRVMgw6LClMKAw6LClMKAICovXG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHtcbiAgLnRyLWZvcm0tdGl0bGUgeyBmb250LXNpemU6IDI2cHg7IH1cbiAgLnRyLWJ0bi1wcmltYXJ5LCAudHItYnRuLW91dGxpbmUgeyBmb250LXNpemU6IDE2cHg7IHBhZGRpbmc6IDEycHggMTZweDsgfVxufVxuXG4vKiDDosKUwoDDosKUwoAgRk9PVEVSIChwdWJsaWMgcGFnZXMpIMOiwpTCgMOiwpTCgCAqL1xuLnRyLXB1YmxpYy1mb290ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZzIpOyBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgcGFkZGluZzogMnJlbSAxLjVyZW0gMS41cmVtOyBtYXJnaW4tdG9wOiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7XG59XG4udHItZm9vdGVyLXdvcmRtYXJrIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtc2l6ZTogMTZweDsgbGV0dGVyLXNwYWNpbmc6IDRweDsgY29sb3I6ICNmZmY7XG59XG4udHItZm9vdGVyLWhhc2gge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiAxMnB4OyBsZXR0ZXItc3BhY2luZzogM3B4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xufVxuLnRyLWZvb3Rlci1saW5rcyBhIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTBweDsgbGV0dGVyLXNwYWNpbmc6IDFweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLXRleHQzKTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB0cmFuc2l0aW9uOiBjb2xvciAwLjJzOyBtYXJnaW46IDAgMTBweDtcbn1cbi50ci1mb290ZXItbGlua3MgYTpob3ZlciB7IGNvbG9yOiB2YXIoLS1hY2NlbnQpOyB9XG4udHItZm9vdGVyLWNvcHkgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBjb2xvcjogdmFyKC0tdGV4dDMpOyBsZXR0ZXItc3BhY2luZzogMC41cHg7IH1cblxuXG5cbi8qID09IEhvbWUgcGFnZSBjb21wb25lbnQgY2xhc3NlcyA9PSAqL1xuXG4vKiBTZWN0aW9uIGxheW91dHMgKi9cbi50ci1zZWN0aW9uLWJnICB7IHBhZGRpbmc6IDEwMHB4IDA7IGJhY2tncm91bmQ6IHZhcigtLWJnKTsgfVxuLnRyLXNlY3Rpb24tYmcyIHsgcGFkZGluZzogMTAwcHggMDsgYmFja2dyb3VuZDogdmFyKC0tYmcyKTsgfVxuLnRyLWhlcm8geyBtaW4taGVpZ2h0OiAxMDB2aDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogMTIwcHggMTZweCA4MHB4OyB9XG4udHItY3RhLXNlY3Rpb24geyBwYWRkaW5nOiAxMjBweCAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuLnRyLW5hdi10cmFuc3BhcmVudCB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IH1cbi50ci1uYXYtdHJhbnNwYXJlbnQuc2Nyb2xsZWQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1uYXYtYmcpICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWJvcmRlcikgIWltcG9ydGFudDsgfVxuLnRyLWN0YS13YXRlcm1hcmsgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgcG9pbnRlci1ldmVudHM6IG5vbmU7IG92ZXJmbG93OiBoaWRkZW47IH1cbi50ci1jdGEtd2F0ZXJtYXJrIHNwYW4geyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiBjbGFtcCg4MHB4LDE2dncsMjAwcHgpOyBsZXR0ZXItc3BhY2luZzogMjBweDsgY29sb3I6IHZhcigtLXRleHQpOyBvcGFjaXR5OiAuMDM7IHdoaXRlLXNwYWNlOiBub3dyYXA7IHVzZXItc2VsZWN0OiBub25lOyB9XG4udHItY3RhLXRpdGxlIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtc2l6ZTogY2xhbXAoNDhweCw3dncsODhweCk7IGxldHRlci1zcGFjaW5nOiAycHg7IGxpbmUtaGVpZ2h0OiAuOTsgY29sb3I6IHZhcigtLXRleHQpOyBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4udHItY3RhLXRpdGxlIGVtIHsgZm9udC1zdHlsZTogbm9ybWFsOyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsgYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyB9XG5cbi8qIFNlY3Rpb24gdHlwb2dyYXBoeSAqL1xuLnRyLXNlY3Rpb24tdGFnIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDRweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWFjY2VudCk7IG1hcmdpbi1ib3R0b206IDEycHg7XG59XG4udHItc2VjdGlvbi10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXNpemU6IGNsYW1wKDQ0cHgsIDZ2dywgNjhweCk7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7IGxpbmUtaGVpZ2h0OiAuOTI7IGNvbG9yOiB2YXIoLS10ZXh0KTtcbn1cbi50ci1zZWN0aW9uLXRpdGxlIGVtIHsgZm9udC1zdHlsZTogbm9ybWFsOyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsgYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyB9XG4udHItc2VjdGlvbi10aXRsZS1sZyB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXNpemU6IGNsYW1wKDQ0cHgsIDd2dywgODBweCk7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7IGxpbmUtaGVpZ2h0OiAuOTsgY29sb3I6IHZhcigtLXRleHQpO1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuLnRyLXNlY3Rpb24tdGl0bGUtbGcgZW0geyBmb250LXN0eWxlOiBub3JtYWw7IGJhY2tncm91bmQ6IHZhcigtLWdyYWQpOyAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IH1cbi50ci1zZWN0aW9uLXRpdGxlLXhsIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtc2l6ZTogY2xhbXAoNDRweCwgMTB2dywgMTIwcHgpO1xuICBsZXR0ZXItc3BhY2luZzogM3B4OyBsaW5lLWhlaWdodDogLjg4OyBtYXJnaW4tYm90dG9tOiAxOHB4O1xufVxuLnRyLXNlY3Rpb24tdGl0bGUteGwgc3BhbiB7IGRpc3BsYXk6IGJsb2NrOyB9XG4udHItc2VjdGlvbi10aXRsZS14bCAudHItdGl0bGUtcGxhaW4geyBjb2xvcjogdmFyKC0tdGV4dCk7IH1cbi50ci1zZWN0aW9uLXRpdGxlLXhsIC50ci10aXRsZS1ncmFkIHsgYmFja2dyb3VuZDogdmFyKC0tZ3JhZCk7IC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7IGJhY2tncm91bmQtY2xpcDogdGV4dDsgfVxuLnRyLXNlY3Rpb24tc3ViIHsgZm9udC1zaXplOiAxNXB4OyBjb2xvcjogdmFyKC0tdGV4dDIpOyBsaW5lLWhlaWdodDogMS44OyB9XG4udHItc2VjdGlvbi1zdWItbXV0ZWQgeyBmb250LXNpemU6IDE0cHg7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IGxpbmUtaGVpZ2h0OiAxLjY7IH1cbi50ci1ncmFkLXRleHQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsgYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuLyogSGVybyAqL1xuLnRyLWhlcm8tdGl0bGUge1xuICAvKiBPbmUgbGluZTogU0FWRUQgKHBsYWluKSBCWSBUSEUgKGdyYWRpZW50KSBCVUxMLiAobXV0ZWQpIOKAlCBzaXplZCB0byBmaXQgYSBzaW5nbGUgcm93ICovXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXNpemU6IGNsYW1wKDQwcHgsIDYuOHZ3LCA5NnB4KTtcbiAgbGluZS1oZWlnaHQ6IC45NTsgbGV0dGVyLXNwYWNpbmc6IDNweDsgbWFyZ2luLWJvdHRvbTogOHB4OyB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnRyLWhlcm8tdGl0bGUgc3BhbiB7IGRpc3BsYXk6IGlubGluZTsgfVxuLnRyLWhlcm8tdGl0bGUgLnRyLXRpdGxlLXBsYWluIHsgY29sb3I6IHZhcigtLXRleHQpOyB9XG4udHItaGVyby10aXRsZSAudHItdGl0bGUtZ3JhZCB7IGJhY2tncm91bmQ6IHZhcigtLWdyYWQpOyAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IH1cbi50ci1oZXJvLXRpdGxlIC50ci10aXRsZS1tdXRlZCB7IGNvbG9yOiB2YXIoLS13MTIpOyBsZXR0ZXItc3BhY2luZzogNnB4OyB9XG4udHItaGVyby1zdWIgeyBmb250LXNpemU6IDE1cHg7IGZvbnQtd2VpZ2h0OiAzMDA7IGNvbG9yOiB2YXIoLS10ZXh0Mik7IGxpbmUtaGVpZ2h0OiAxLjc1OyB9XG4udHItaGVyby1zdWIgc3Ryb25nIHsgY29sb3I6IHZhcigtLXRleHQpOyBmb250LXdlaWdodDogNjAwOyB9XG4udHItaGVyby1iYWRnZSB7IGJhY2tncm91bmQ6IHJnYmEoMTM5LDkyLDI0NiwwLjEpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEzOSw5MiwyNDYsMC4yNSk7IH1cbi50ci1iYWRnZS10ZXh0IHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDNweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWFjY2VudCk7IH1cbi50ci1wdWxzZS1kb3Qge1xuICB3aWR0aDogNnB4OyBoZWlnaHQ6IDZweDsgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQpOyBib3gtc2hhZG93OiAwIDAgOHB4IHZhcigtLWFjY2VudCk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYW5pbWF0aW9uOiB0ci1wdWxzZSAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuLnRyLXB1bHNlLWRvdC1ncmVlbiB7XG4gIHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuKTsgYm94LXNoYWRvdzogMCAwIDZweCB2YXIoLS1ncmVlbik7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYW5pbWF0aW9uOiB0ci1wdWxzZSAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG4vKiBIZXJvIHN0YXRzIGdyaWQgKi9cbi50ci1zdGF0cy1ncmlkIHsgbWF4LXdpZHRoOiA3MDBweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgYm9yZGVyLXJhZGl1czogMTRweDsgb3ZlcmZsb3c6IGhpZGRlbjsgYmFja2dyb3VuZDogdmFyKC0tdzA1KTsgfVxuLnRyLXN0YXRzLWNvbC1ib3JkZXJlZCB7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IH1cbi50ci1zdGF0LXZhbHVlIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtc2l6ZTogMjhweDsgYmFja2dyb3VuZDogdmFyKC0tZ3JhZCk7IC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7IGJhY2tncm91bmQtY2xpcDogdGV4dDsgfVxuLnRyLXN0YXQtbGFiZWwgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA4cHg7IGxldHRlci1zcGFjaW5nOiAycHg7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLyogRmVhdHVyZSBjYXJkcyAqL1xuLnRyLWZlYXR1cmUtaWNvbiB7IHdpZHRoOiAzOHB4OyBoZWlnaHQ6IDM4cHg7IGJvcmRlci1yYWRpdXM6IDEwcHg7IGJhY2tncm91bmQ6IHZhcigtLXcwNSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBmb250LXNpemU6IDE3cHg7IG1hcmdpbi1ib3R0b206IDEycHg7IH1cbi50ci1mZWF0dXJlLW51bSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDlweDsgbGV0dGVyLXNwYWNpbmc6IDJweDsgY29sb3I6IHZhcigtLXRleHQzKTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbWFyZ2luLWJvdHRvbTogNHB4OyB9XG4udHItZmVhdHVyZS10aXRsZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDIwcHg7IGxldHRlci1zcGFjaW5nOiAxcHg7IGNvbG9yOiB2YXIoLS10ZXh0KTsgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4udHItZmVhdHVyZS1kZXNjIHsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tdGV4dDMpOyBsaW5lLWhlaWdodDogMS42OyB9XG5cbi8qIEZlYXR1cmUgbGlzdCAoYWJvdXQgc2VjdGlvbikgKi9cbi50ci1mZWF0dXJlLWxpc3QgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDEycHg7IH1cbi50ci1mZWF0dXJlLWl0ZW0geyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgZ2FwOiAxNHB4OyBwYWRkaW5nOiAxNnB4OyBiYWNrZ3JvdW5kOiB2YXIoLS13MDUpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBib3JkZXItcmFkaXVzOiAxMnB4OyB9XG4udHItZmVhdHVyZS1pdGVtLWljb24geyB3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4OyBib3JkZXItcmFkaXVzOiAxMHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGZvbnQtc2l6ZTogMThweDsgZmxleC1zaHJpbms6IDA7IH1cbi50ci1mZWF0dXJlLWl0ZW0tdGl0bGUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiAxN3B4OyBsZXR0ZXItc3BhY2luZzogMXB4OyBjb2xvcjogdmFyKC0tdGV4dCk7IG1hcmdpbi1ib3R0b206IDNweDsgfVxuLnRyLWZlYXR1cmUtaXRlbS1kZXNjIHsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tdGV4dDMpOyBsaW5lLWhlaWdodDogMS42OyB9XG5cbi8qIFF1b3RlIGJveCAqL1xuLnRyLXF1b3RlLWJveCB7IGJhY2tncm91bmQ6IHZhcigtLWNhcmQtYmcpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBib3JkZXItcmFkaXVzOiAyMHB4OyBwYWRkaW5nOiAzNnB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IH1cbi50ci1ncmFkLWJhciB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgaGVpZ2h0OiAzcHg7IGJhY2tncm91bmQ6IHZhcigtLWdyYWQpOyB9XG4udHItcXVvdGUtbGFiZWwgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5cHg7IGxldHRlci1zcGFjaW5nOiAzcHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbi50ci1ibG9ja3F1b3RlIHsgZm9udC1zaXplOiAxNXB4OyBsaW5lLWhlaWdodDogMS44OyBjb2xvcjogdmFyKC0tdGV4dDIpOyBtYXJnaW46IDAgMCAyNHB4OyBmb250LXN0eWxlOiBpdGFsaWM7IH1cbi50ci1hdXRob3IgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEycHg7IH1cbi50ci1hdXRob3ItYXZhdGFyIHsgd2lkdGg6IDQ0cHg7IGhlaWdodDogNDRweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDIwcHg7IGNvbG9yOiAjMDAwOyBmbGV4LXNocmluazogMDsgfVxuLnRyLWF1dGhvci1uYW1lIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtc2l6ZTogMTZweDsgbGV0dGVyLXNwYWNpbmc6IDFweDsgY29sb3I6IHZhcigtLXRleHQpOyB9XG4udHItYXV0aG9yLXRpdGxlIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOXB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyBjb2xvcjogdmFyKC0tdGV4dDMpOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4udHItcXVvdGUtc3RhdHMgeyBtYXJnaW4tdG9wOiAyOHB4OyBwYWRkaW5nLXRvcDogMjRweDsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7IGdhcDogMTZweDsgfVxuLnRyLW1pbmktc3RhdC12YWx1ZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDMwcHg7IGJhY2tncm91bmQ6IHZhcigtLWdyYWQpOyAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IH1cbi50ci1taW5pLXN0YXQtbGFiZWwgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA4cHg7IGxldHRlci1zcGFjaW5nOiAxLjVweDsgY29sb3I6IHZhcigtLXRleHQzKTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbWFyZ2luLXRvcDogMnB4OyB9XG5cbi8qIENoYWxsZW5nZSBjYXJkcyAqL1xuLnRyLWNoYWxsZW5nZS1oZWFkZXIgeyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBtYXJnaW4tYm90dG9tOiAyNHB4OyB9XG4udHItY2FyZC10eXBlLWxhYmVsIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOXB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dDMpOyBtYXJnaW4tYm90dG9tOiA2cHg7IH1cbi50ci1jYXJkLXR5cGUtbGFiZWwtYWNjZW50IHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOXB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgbWFyZ2luLWJvdHRvbTogNnB4OyB9XG4udHItY2hhbGxlbmdlLXBsYW4geyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiAzMnB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyBjb2xvcjogdmFyKC0tdGV4dCk7IH1cbi50ci1jaGVjay1saXN0IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMHB4OyBtYXJnaW4tYm90dG9tOiAyOHB4OyB9XG4udHItY2hlY2staXRlbSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tdGV4dDIpOyB9XG4udHItY2hlY2staXRlbS1tdXRlZCB7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IH1cbi50ci1jaGVjay1vayB7IGNvbG9yOiB2YXIoLS1ncmVlbik7IH1cbi50ci1jaGVjay1ubyB7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IH1cblxuLyogVG9rZW4gc3RhdHMgKi9cbi50ci10b2tlbi1zdGF0IHsgYmFja2dyb3VuZDogdmFyKC0tdzA1KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgYm9yZGVyLXJhZGl1czogMTJweDsgcGFkZGluZzogMThweDsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4udHItdG9rZW4tc3RhdC12YWx1ZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDI2cHg7IGJhY2tncm91bmQ6IHZhcigtLWdyYWQpOyAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IH1cbi50ci10b2tlbi1zdGF0LWxhYmVsIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOHB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyBjb2xvcjogdmFyKC0tdGV4dDMpOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBtYXJnaW4tdG9wOiA0cHg7IH1cblxuLyogR2FtaWZpY2F0aW9uICovXG4udHItZ2FtaWZ5LWljb24geyBmb250LXNpemU6IDM2cHg7IG1hcmdpbi1ib3R0b206IDEycHg7IH1cbi50ci1nYW1pZnktdGl0bGUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiAyMnB4OyBsZXR0ZXItc3BhY2luZzogMXB4OyBjb2xvcjogdmFyKC0tdGV4dCk7IG1hcmdpbi1ib3R0b206IDZweDsgfVxuLnRyLWdhbWlmeS1kZXNjIHsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tdGV4dDMpOyBsaW5lLWhlaWdodDogMS42OyB9XG4udHItaG93LXN0ZXAtdGl0bGUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiAyMHB4OyBsZXR0ZXItc3BhY2luZzogMXB4OyBjb2xvcjogdmFyKC0tdGV4dCk7IG1hcmdpbi1ib3R0b206IDhweDsgfVxuLnRyLWhvdy1zdGVwLWRlc2MgeyBmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IGxpbmUtaGVpZ2h0OiAxLjc7IH1cblxuLyogTGVhZGVyYm9hcmQgKi9cbi50ci1sYi1oZWFkZXIgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDMycHggMWZyIDgwcHggODBweDsgZ2FwOiAxMnB4OyBwYWRkaW5nOiA2cHggMTRweDsgbWFyZ2luLWJvdHRvbTogNnB4OyB9XG4udHItbGItaGVhZGVyLWNlbGwgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA4cHg7IGxldHRlci1zcGFjaW5nOiAycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IH1cbi50ci1sYi1oZWFkZXItY2VsbC1yIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbi50ci1sYi1yYW5rIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtc2l6ZTogMTZweDsgY29sb3I6IHZhcigtLXRleHQzKTsgfVxuLnRyLWxiLXJhbmstZ29sZCB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDE2cHg7IGNvbG9yOiB2YXIoLS1nb2xkKTsgfVxuLnRyLWxiLXRyYWRlciB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyB9XG4udHItbGItYXZhdGFyIHsgd2lkdGg6IDI4cHg7IGhlaWdodDogMjhweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiAjMDAwOyBmbGV4LXNocmluazogMDsgfVxuLnRyLWxiLWF2YXRhci1ibHVlICB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIzFBNTZEQiwjNEY4RUY3KTsgY29sb3I6ICNmZmY7IH1cbi50ci1sYi1hdmF0YXItcGluayAgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNEOTFBQUQsI0U4M0RDMCk7IGNvbG9yOiAjZmZmOyB9XG4udHItbGItYXZhdGFyLWdyZWVuIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywjMjJjNTVlLCMxNmEzNGEpOyBjb2xvcjogI2ZmZjsgfVxuLnRyLWxiLWF2YXRhci1nb2xkICB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsI0Y1QzUxOCwjZDk3NzA2KTsgY29sb3I6ICMwMDA7IH1cbi50ci1sYi1uYW1lICB7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLXRleHQpOyB9XG4udHItbGItbGV2ZWwgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA4cHg7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IH1cbi50ci1sYi12YWx1ZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDE2cHg7IGNvbG9yOiB2YXIoLS10ZXh0KTsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbi50ci1sYi13aW5yYXRlIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6IHZhcigtLWdyZWVuKTsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbi50ci1sYi1saW5rIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTBweDsgbGV0dGVyLXNwYWNpbmc6IDJweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWFjY2VudCk7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKiBQYXlvdXQgYm94ICovXG4udHItcGF5b3V0LWJveCB7IGJhY2tncm91bmQ6IHZhcigtLWNhcmQtYmcpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItaCk7IGJvcmRlci1yYWRpdXM6IDE4cHg7IHBhZGRpbmc6IDI4cHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuLnRyLXBheW91dC1iYXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IGhlaWdodDogM3B4OyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgfVxuLnRyLXBheW91dC1tZXRhIHsgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczogY2VudGVyOyBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4udHItcGF5b3V0LWxhYmVsIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOXB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dDMpOyB9XG4udHItcGF5b3V0LWFtb3VudCB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDUycHg7IGJhY2tncm91bmQ6IHZhcigtLWdyYWQpOyAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IGxpbmUtaGVpZ2h0OiAxOyBtYXJnaW4tYm90dG9tOiA2cHg7IH1cbi50ci1wYXlvdXQtcmVjaXBpZW50IHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOXB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dDMpOyBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4udHItcGF5b3V0LWFkZHJlc3MgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogMC41cHg7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IGJhY2tncm91bmQ6IHZhcigtLXcwNSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGJvcmRlci1yYWRpdXM6IDhweDsgcGFkZGluZzogMTBweCAxMnB4OyB3b3JkLWJyZWFrOiBicmVhay1hbGw7IH1cbi50ci1wYXlvdXQtY29uZmlybWVkIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7IG1hcmdpbi10b3A6IDE0cHg7IH1cbi50ci1wYXlvdXQtY29uZmlybWVkLXRleHQgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5cHg7IGxldHRlci1zcGFjaW5nOiAycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1ncmVlbik7IH1cblxuLyogQWN0aXZpdHkgYm94ICovXG4udHItYWN0aXZpdHktYm94IHsgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1iZyk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGJvcmRlci1yYWRpdXM6IDE4cHg7IHBhZGRpbmc6IDI0cHg7IH1cbi50ci1hY3Rpdml0eS1oZWFkZXIgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5cHg7IGxldHRlci1zcGFjaW5nOiAycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IG1hcmdpbi1ib3R0b206IDE2cHg7IH1cbi50ci1hY3Rpdml0eS1pdGVtcyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMTJweDsgfVxuLnRyLWFjdGl2aXR5LWl0ZW0geyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbi50ci1hY3Rpdml0eS1kZXNjIHsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tdGV4dDIpOyB9XG4udHItYWN0aXZpdHktdmFsdWUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiAyMHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsgYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyB9XG5cbi8qIE1pc2MgKi9cbi50ci1kaXZpZGVyIHsgaGVpZ2h0OiAxcHg7IGJhY2tncm91bmQ6IHZhcigtLWJvcmRlcik7IH1cblxuLyogPT0gTWVnYS1kcm9wZG93biBtYWluIG1lbnUgKHJvb3QgcGFnZXMgb25seTsgaG92ZXIgcGFuZWxzIHdpdGggaWNvbiByb3dzKSA9PSAqL1xuLnRyLW1tIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4udHItbW0tY2FyZXQgeyBmb250LXNpemU6IDhweDsgbWFyZ2luLWxlZnQ6IDVweDsgb3BhY2l0eTogLjU7IHZlcnRpY2FsLWFsaWduOiAycHg7IH1cbi50ci1tbS1wYW5lbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMDAlOyBsZWZ0OiA1MCU7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgbWluLXdpZHRoOiAzMzBweDsgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmczKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm94LXNoYWRvdzogMCAxOHB4IDUwcHggcmdiYSgwLCAwLCAwLCAuNSk7XG4gIHotaW5kZXg6IDExMDA7XG59XG4udHItbW06aG92ZXIgLnRyLW1tLXBhbmVsLFxuLnRyLW1tOmZvY3VzLXdpdGhpbiAudHItbW0tcGFuZWwgeyBkaXNwbGF5OiBibG9jazsgfVxuLnRyLW1tLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBnYXA6IDEycHg7XG4gIHBhZGRpbmc6IDEwcHggMTJweDsgYm9yZGVyLXJhZGl1czogOXB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS13MDUpOyAudHItbW0tdCB7IGNvbG9yOiB2YXIoLS1hY2NlbnQpOyB9IH1cbn1cbi50ci1tbS1pYyB7XG4gIHdpZHRoOiAzNHB4OyBoZWlnaHQ6IDM0cHg7IGZsZXgtc2hyaW5rOiAwOyBib3JkZXItcmFkaXVzOiA5cHg7XG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS13MDUpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO1xuICBzdmcgeyB3aWR0aDogMTdweDsgaGVpZ2h0OiAxN3B4OyBjb2xvcjogdmFyKC0tYWNjZW50KTsgfVxufVxuLnRyLW1tLXR4dCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMnB4OyBtaW4td2lkdGg6IDA7IH1cbi50ci1tbS10IHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7IGZvbnQtc2l6ZTogMTNweDsgZm9udC13ZWlnaHQ6IDUwMDsgY29sb3I6IHZhcigtLXRleHQpOyB9XG4udHItbW0tZCB7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6IHZhcigtLXRleHQzKTsgbGluZS1oZWlnaHQ6IDEuNDU7IH1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAvKiBJbiB0aGUgYnVyZ2VyIG1lbnUgdGhlIHBhbmVscyByZW5kZXIgZXhwYW5kZWQgaW4gcGxhY2Ug4oCUIG5vIGhvdmVyIG9uIHRvdWNoLiAqL1xuICAudHItbW0tY2FyZXQgeyBkaXNwbGF5OiBub25lOyB9XG4gIC50ci1tbS1wYW5lbCB7XG4gICAgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiBzdGF0aWM7IHRyYW5zZm9ybTogbm9uZTsgbWluLXdpZHRoOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IDA7IGJveC1zaGFkb3c6IG5vbmU7IHBhZGRpbmc6IDAgMCAxMHB4IDE0cHg7XG4gIH1cbn1cblxuLyogTmF2IGJ1dHRvbiBleHRyYXMgKi9cbi50ci1uYXYtbG9naW4tYnRuIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTBweDsgbGV0dGVyLXNwYWNpbmc6IDEuNXB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dDIpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBwYWRkaW5nOiA2cHggMTRweDsgYm9yZGVyLXJhZGl1czogNnB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbi50ci1uYXYtc2lnbnVwLWJ0biB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDE0cHg7IGxldHRlci1zcGFjaW5nOiAycHg7IGNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiA2cHggMTZweDsgYm9yZGVyLXJhZGl1czogNnB4OyBmb250LXdlaWdodDogNDAwOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbi50ci1uYXYtZGV2LXRvZ2dsZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDlweDsgbGV0dGVyLXNwYWNpbmc6IDEuNXB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjE4KTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4vKiBMb2dnZWQtaW4gc3RhdGU6IGF2YXRhciBjaGlwICjihpIgYmFjayB0byB0aGUgYXBwKSBzaG93biBpbnN0ZWFkIG9mIExvZ2luL0dldCBTdGFydGVkICovXG4udHItbmF2LXVzZXIgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgcGFkZGluZzogNHB4IDEwcHggNHB4IDRweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgYm9yZGVyLXJhZGl1czogNTBweDsgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4xNXMgZWFzZTsgfVxuLnRyLW5hdi11c2VyOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyB9XG4udHItbmF2LXVzZXItYXYgeyB3aWR0aDogMjhweDsgaGVpZ2h0OiAyOHB4OyBib3JkZXItcmFkaXVzOiA1MCU7IG9iamVjdC1maXQ6IGNvdmVyOyB9XG4udHItbmF2LXVzZXItYXYtcGggeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IHdpZHRoOiAyOHB4OyBoZWlnaHQ6IDI4cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2UpOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTNweDsgfVxuLnRyLW5hdi11c2VyLW5hbWUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogMS41cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS10ZXh0Mik7IG1heC13aWR0aDogMTIwcHg7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4udHItbmF2LXVzZXI6aG92ZXIgLnRyLW5hdi11c2VyLW5hbWUgeyBjb2xvcjogdmFyKC0tdGV4dCk7IH1cbi50ci1uYXYtZGV2LW1lbnUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZzMpICFpbXBvcnRhbnQ7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcikgIWltcG9ydGFudDsgbWluLXdpZHRoOiAxMzBweDsgfVxuLnRyLW5hdi1kZXYtaXRlbSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTogMTBweCAhaW1wb3J0YW50OyBsZXR0ZXItc3BhY2luZzogMXB4ICFpbXBvcnRhbnQ7IGNvbG9yOiB2YXIoLS10ZXh0MykgIWltcG9ydGFudDsgfVxuLnRyLWZvb3Rlci1zZWN0aW9uLWxhYmVsIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOXB4OyBsZXR0ZXItc3BhY2luZzogM3B4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dDMpOyBtYXJnaW4tYm90dG9tOiAxNHB4OyB9XG5cbi8qIEJ1dHRvbiBzaXplIHZhcmlhbnRzICovXG4udHItYnRuLXhsIHsgd2lkdGg6IGF1dG87IHBhZGRpbmc6IDE4cHggNjBweDsgYm9yZGVyLXJhZGl1czogNTBweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMjBweDsgbGV0dGVyLXNwYWNpbmc6IDRweDsgZm9udC13ZWlnaHQ6IDQwMDsgfVxuLnRyLWJ0bi1pbmxpbmUgeyB3aWR0aDogYXV0bzsgcGFkZGluZzogMTRweCA0MHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuXG4vKiA9PSBBdXRoIHBhZ2UgbGF5b3V0IGFuZCBmb3JtIHN0eWxlcyA9PSAqL1xuXG5cbiAgLm1vZGFsLWNvbnRlbnR7YmFja2dyb3VuZDp2YXIoLS1iZzIpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWgpO2JvcmRlci1yYWRpdXM6MTZweH1cbiAgLm1vZGFsLWhlYWRlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpfVxuICAubW9kYWwtZm9vdGVye2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlcil9XG4gIC50YWJsZXtjb2xvcjp2YXIoLS10ZXh0Mil9LnRhYmxlPjpub3QoY2FwdGlvbik+Kj4qe2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlcil9XG4gIC5kcm9wZG93bi1tZW51e2JhY2tncm91bmQ6dmFyKC0tYmczKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcil9XG4gIC5kcm9wZG93bi1pdGVte2NvbG9yOnZhcigtLXRleHQyKX0uZHJvcGRvd24taXRlbTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4wNSk7Y29sb3I6dmFyKC0tdGV4dCl9XG4gIC5iZ2d7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4OjA7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDgwJSA2NSUgYXQgNTAlIC01JSx2YXIoLS1nbG93MSkgMCUsdHJhbnNwYXJlbnQgNjAlKSxyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA1MCUgNDUlIGF0IDglIDkwJSx2YXIoLS1nbG93MikgMCUsdHJhbnNwYXJlbnQgNTUlKX1cbiAgLmJnZ3JpZHtwb3NpdGlvbjpmaXhlZDtpbnNldDowO3otaW5kZXg6MDtwb2ludGVyLWV2ZW50czpub25lO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHZhcigtLWdyaWQtYykgMXB4LHRyYW5zcGFyZW50IDFweCksbGluZWFyLWdyYWRpZW50KDkwZGVnLHZhcigtLWdyaWQtYykgMXB4LHRyYW5zcGFyZW50IDFweCk7YmFja2dyb3VuZC1zaXplOjYwcHggNjBweDttYXNrLWltYWdlOnJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDEwMCUgMTAwJSBhdCA1MCUgNTAlLGJsYWNrIDIwJSx0cmFuc3BhcmVudCA3OCUpOy13ZWJraXQtbWFzay1pbWFnZTpyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSAxMDAlIDEwMCUgYXQgNTAlIDUwJSxibGFjayAyMCUsdHJhbnNwYXJlbnQgNzglKX1cbiAgLmJnZ3JpZDo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4OjA7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kLWltYWdlOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgM3B4IGF0IDAgMCx2YXIoLS1hY2NlbnQpIDAlLHRyYW5zcGFyZW50IDYwJSk7YmFja2dyb3VuZC1zaXplOjYwcHggNjBweDttYXNrLWltYWdlOnJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDEwMCUgMTAwJSBhdCA1MCUgNTAlLGJsYWNrIDIwJSx0cmFuc3BhcmVudCA3OCUpOy13ZWJraXQtbWFzay1pbWFnZTpyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSAxMDAlIDEwMCUgYXQgNTAlIDUwJSxibGFjayAyMCUsdHJhbnNwYXJlbnQgNzglKTthbmltYXRpb246Z3JpZC10cmF2ZWwtaCAycyBsaW5lYXIgaW5maW5pdGU7b3BhY2l0eTowLjd9XG4gIC5iZ2dyaWQ6OmFmdGVye2NvbnRlbnQ6Jyc7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4OjA7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kLWltYWdlOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgM3B4IGF0IDAgMCx2YXIoLS1hY2NlbnQpIDAlLHRyYW5zcGFyZW50IDYwJSk7YmFja2dyb3VuZC1zaXplOjYwcHggNjBweDttYXNrLWltYWdlOnJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDEwMCUgMTAwJSBhdCA1MCUgNTAlLGJsYWNrIDIwJSx0cmFuc3BhcmVudCA3OCUpOy13ZWJraXQtbWFzay1pbWFnZTpyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSAxMDAlIDEwMCUgYXQgNTAlIDUwJSxibGFjayAyMCUsdHJhbnNwYXJlbnQgNzglKTthbmltYXRpb246Z3JpZC10cmF2ZWwtdiAycyBsaW5lYXIgaW5maW5pdGU7b3BhY2l0eTowLjd9XG4gIC50ci1uYXZ7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDoxMDMwO2hlaWdodDo2NHB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzowIDJyZW07YmFja2dyb3VuZDp2YXIoLS1uYXYtYmcpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDI0cHgpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlcil9XG4gIC50ci1uYXYtbG9nb3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O3RleHQtZGVjb3JhdGlvbjpub25lfVxuICAudHItbmF2LWxvZ28taW1ne3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7Ym9yZGVyLXJhZGl1czo1MCU7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlcjoxLjVweCBzb2xpZCB2YXIoLS1hY2NlbnQpfVxuICAudHItbmF2LWxvZ28taW1nIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y292ZXJ9XG4gIC50ci1uYXYtd29yZG1hcmt7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6MjBweDtsZXR0ZXItc3BhY2luZzo0cHg7Y29sb3I6dmFyKC0tdGV4dCl9XG4gIC50ci1uYXYtcmlnaHR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwfVxuICAudHItbmF2LWxpbmt7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6MTBweDtsZXR0ZXItc3BhY2luZzoxLjVweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6dmFyKC0tdGV4dDMpO3RleHQtZGVjb3JhdGlvbjpub25lO3BhZGRpbmc6NnB4IDEycHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6NnB4O3RyYW5zaXRpb246YWxsIC4yczt3aGl0ZS1zcGFjZTpub3dyYXB9XG4gIC50ci1uYXYtbGluazpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLWgpO2NvbG9yOnZhcigtLWFjY2VudCl9XG4gIC50ci1wYWdle2ZsZXg6MTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzo4OHB4IDI0cHggNDhweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9XG4gIC50ci1zcGxpdHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7bWF4LXdpZHRoOjk2MHB4O3dpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czoyMHB4O292ZXJmbG93OmhpZGRlbjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym94LXNoYWRvdzowIDQwcHggMTAwcHggcmdiYSgwLDAsMCwwLjUpfVxuICAudHItbGVmdHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNDVkZWcsdmFyKC0tYmcyKSx2YXIoLS1iZzMpKTtwYWRkaW5nOjUycHggNDRweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2JvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0tYm9yZGVyKX1cbiAgLnRyLXJpZ2h0e2JhY2tncm91bmQ6dmFyKC0tY2FyZC1iZyk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCk7cGFkZGluZzo1MnB4IDQ0cHh9XG4gIC5sZWZ0LXRhZ3tmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZToxMHB4O2xldHRlci1zcGFjaW5nOjNweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6dmFyKC0tYWNjZW50KTttYXJnaW4tYm90dG9tOjE4cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4fVxuICAubGVmdC10YWc6OmJlZm9yZXtjb250ZW50OicnO3dpZHRoOjE2cHg7aGVpZ2h0OjFweDtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCl9XG4gIC5sZWZ0LWh7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6Y2xhbXAoMzZweCw0dncsNTZweCk7bGV0dGVyLXNwYWNpbmc6MnB4O2xpbmUtaGVpZ2h0Oi45NTtjb2xvcjp2YXIoLS10ZXh0KTttYXJnaW4tYm90dG9tOjE0cHh9XG4gIC5sZWZ0LWggZW17Zm9udC1zdHlsZTpub3JtYWw7YmFja2dyb3VuZDp2YXIoLS1ncmFkKTstd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY2xpcDp0ZXh0fVxuICAubGVmdC1zdWJ7Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tdGV4dDIpO2xpbmUtaGVpZ2h0OjEuNzttYXJnaW4tYm90dG9tOjI2cHh9XG4gIC5sZWZ0LXBlcmtze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHh9XG4gIC5wZXJre2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxMHB4fVxuICAucGVyay1pY29ue3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLWFjY2VudDIpLHZhcigtLWFjY2VudCkpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MTRweDtmbGV4LXNocmluazowfVxuICAucGVyay10aXRsZXtmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToxNXB4O2xldHRlci1zcGFjaW5nOjFweDtjb2xvcjp2YXIoLS10ZXh0KTttYXJnaW4tYm90dG9tOjJweH1cbiAgLnBlcmstZGVzY3tmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS10ZXh0Myk7bGluZS1oZWlnaHQ6MS41fVxuICAubGVmdC1ib3R0b217Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6OXB4O2xldHRlci1zcGFjaW5nOjJweDtjb2xvcjp2YXIoLS10ZXh0Myk7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO21hcmdpbi10b3A6MjRweH1cbiAgLmZvcm0tbG9nb3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxMHB4O21hcmdpbi1ib3R0b206MjJweH1cbiAgLmZvcm0tbG9nbyBpbWd7d2lkdGg6MzRweDtoZWlnaHQ6MzRweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MS41cHggc29saWQgdmFyKC0tYWNjZW50KX1cbiAgLmZvcm0tbG9nby10ZXh0e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjE3cHg7bGV0dGVyLXNwYWNpbmc6M3B4O2NvbG9yOnZhcigtLXRleHQpfVxuICAuZm9ybS10b3AtYmFye2hlaWdodDozcHg7YmFja2dyb3VuZDp2YXIoLS1ncmFkKTtib3JkZXItcmFkaXVzOjJweDttYXJnaW4tYm90dG9tOjIycHh9XG4gIC5mb3JtLXRpdGxle2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjI4cHg7bGV0dGVyLXNwYWNpbmc6MnB4O2NvbG9yOnZhcigtLXRleHQpO21hcmdpbi1ib3R0b206NHB4O2xpbmUtaGVpZ2h0OjF9XG4gIC5mb3JtLXN1Yntmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS10ZXh0Myk7bGluZS1oZWlnaHQ6MS42O21hcmdpbi1ib3R0b206MThweH1cbiAgLmZvcm0tc3ViIHN0cm9uZ3tjb2xvcjp2YXIoLS1hY2NlbnQpO2ZvbnQtd2VpZ2h0OjYwMH1cbiAgLmZne2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjRweDttYXJnaW4tYm90dG9tOjExcHh9XG4gIC5mZyBsYWJlbHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTo5cHg7Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOjJweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6dmFyKC0tdGV4dDMpfVxuICAuZml7YmFja2dyb3VuZDp2YXIoLS13MDUpIWltcG9ydGFudDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXcxMikhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MTBweDtwYWRkaW5nOjExcHggMTNweDtmb250LWZhbWlseTp2YXIoLS1mb250LWJvZHkpIWltcG9ydGFudDtmb250LXNpemU6MTNweDtjb2xvcjp2YXIoLS10ZXh0KSFpbXBvcnRhbnQ7b3V0bGluZTpub25lO3RyYW5zaXRpb246YWxsIC4yNXM7d2lkdGg6MTAwJX1cbiAgLmZpOjpwbGFjZWhvbGRlcntjb2xvcjp2YXIoLS13MjApIWltcG9ydGFudH1cbiAgLmZpOmZvY3Vze2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItaCkhaW1wb3J0YW50O2JhY2tncm91bmQ6cmdiYSgxMzksOTIsMjQ2LDAuMDQpIWltcG9ydGFudDtib3gtc2hhZG93OjAgMCAwIDNweCByZ2JhKDEzOSw5MiwyNDYsMC4xKSFpbXBvcnRhbnR9XG4gIC5maTotd2Via2l0LWF1dG9maWxsLFxuICAuZmk6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgLmZpOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gIC5maTphdXRvZmlsbCxcbiAgLmZpOmF1dG9maWxsOmhvdmVyLFxuICAuZmk6YXV0b2ZpbGw6Zm9jdXN7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAwIDEwMDBweCB2YXIoLS1iZzQpIGluc2V0IWltcG9ydGFudDtib3gtc2hhZG93OjAgMCAwIDEwMDBweCB2YXIoLS1iZzQpIGluc2V0IWltcG9ydGFudDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp2YXIoLS10ZXh0KSFpbXBvcnRhbnQ7Y2FyZXQtY29sb3I6dmFyKC0tdGV4dCkhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgdmFyKC0tdzEyKSFpbXBvcnRhbnQ7b3V0bGluZTpub25lIWltcG9ydGFudDtvdXRsaW5lLXdpZHRoOjAhaW1wb3J0YW50O291dGxpbmUtb2Zmc2V0OjAhaW1wb3J0YW50O3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciA1MDAwcyBlYXNlLWluLW91dCAwcyxib3JkZXItY29sb3IgMHMhaW1wb3J0YW50fVxuICAuZmktd3JhcHtwb3NpdGlvbjpyZWxhdGl2ZX1cbiAgLmZpLXRvZ2dsZXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMnB4O3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO2NvbG9yOnZhcigtLXRleHQzKTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MTRweDtwYWRkaW5nOjA7dHJhbnNpdGlvbjpjb2xvciAuMnN9XG4gIC5maS10b2dnbGU6aG92ZXJ7Y29sb3I6dmFyKC0tdGV4dCl9XG4gIC5mcm93e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MTBweH1cbiAgLmZze2JhY2tncm91bmQ6dmFyKC0tdzA1KSFpbXBvcnRhbnQ7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS13MTIpIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoxMXB4IDEzcHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1ib2R5KSFpbXBvcnRhbnQ7Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tdGV4dCkhaW1wb3J0YW50O291dGxpbmU6bm9uZTt0cmFuc2l0aW9uOmFsbCAuMjVzO3dpZHRoOjEwMCU7Y3Vyc29yOnBvaW50ZXI7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtaW1hZ2U6dXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMicgaGVpZ2h0PSc4JyB2aWV3Qm94PScwIDAgMTIgOCclM0UlM0NwYXRoIGQ9J00xIDFsNSA1IDUtNScgc3Ryb2tlPSdyZ2JhKDI1NSwyNTUsMjU1LDAuMyknIHN0cm9rZS13aWR0aD0nMS41JyBmaWxsPSdub25lJyBzdHJva2UtbGluZWNhcD0ncm91bmQnLyUzRSUzQy9zdmclM0VcIikhaW1wb3J0YW50O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAxMnB4IGNlbnRlciFpbXBvcnRhbnR9XG4gIC5mczpmb2N1c3tib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLWgpIWltcG9ydGFudDtib3gtc2hhZG93OjAgMCAwIDNweCByZ2JhKDEzOSw5MiwyNDYsMC4xKSFpbXBvcnRhbnR9XG4gIC5mcyBvcHRpb257YmFja2dyb3VuZDojMTExO2NvbG9yOiNmZmZ9XG4gIC5idG4tc3VibWl0e3dpZHRoOjEwMCU7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6MThweDtsZXR0ZXItc3BhY2luZzozcHg7Y29sb3I6IzAwMDtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjEzcHggMjBweDtib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZDp2YXIoLS1ncmFkKTt0cmFuc2l0aW9uOmFsbCAuMjVzO2JveC1zaGFkb3c6MCA2cHggMjJweCByZ2JhKDEzOSw5MiwyNDYsMC4zNSk7bWFyZ2luLXRvcDo0cHg7ZGlzcGxheTpibG9ja31cbiAgLmJ0bi1zdWJtaXQ6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7Ym94LXNoYWRvdzowIDEycHggMzJweCByZ2JhKDEzOSw5MiwyNDYsMC41NSl9XG4gIC5idG4tc3VibWl0OmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX1cbiAgLmJ0bi1vdXR7d2lkdGg6MTAwJTtmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToxN3B4O2xldHRlci1zcGFjaW5nOjJweDtjb2xvcjp2YXIoLS1hY2NlbnQzKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTM5LDkyLDI0NiwwLjMpO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MTFweCAyMHB4O2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3RyYW5zaXRpb246YWxsIC4yNXM7bWFyZ2luLXRvcDo4cHg7ZGlzcGxheTpibG9ja31cbiAgLmJ0bi1vdXQ6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDEzOSw5MiwyNDYsMC4wNyk7Ym9yZGVyLWNvbG9yOnJnYmEoMTM5LDkyLDI0NiwwLjU1KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KX1cbiAgLmZvcm0tc2Vwe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7bWFyZ2luOjEycHggMH1cbiAgLmZvcm0tc2VwOjpiZWZvcmUsLmZvcm0tc2VwOjphZnRlcntjb250ZW50OicnO2ZsZXg6MTtoZWlnaHQ6MXB4O2JhY2tncm91bmQ6dmFyKC0tdzA4KX1cbiAgLmZvcm0tc2VwIHNwYW57Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6OXB4O2xldHRlci1zcGFjaW5nOjJweDtjb2xvcjp2YXIoLS13MjApO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt3aGl0ZS1zcGFjZTpub3dyYXB9XG4gIC5mb3JtLWxpbmt7dGV4dC1hbGlnbjpyaWdodDttYXJnaW4tYm90dG9tOjExcHh9XG4gIC5mb3JtLWxpbmsgYXtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZToxMHB4O2xldHRlci1zcGFjaW5nOjFweDtjb2xvcjp2YXIoLS1hY2NlbnQpO3RleHQtZGVjb3JhdGlvbjpub25lfVxuICAuZm9ybS1saW5rIGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX1cbiAgLmZvcm0tbm90ZXt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS10ZXh0Myk7bWFyZ2luLXRvcDoxMnB4fVxuICAuZm9ybS1ub3RlIGF7Y29sb3I6dmFyKC0tYWNjZW50KTt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXdlaWdodDo2MDB9XG4gIC50ci1hbGVydHtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoxMXB4IDE0cHg7Zm9udC1zaXplOjEzcHg7bWFyZ2luLWJvdHRvbToxNHB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtYm9keSk7bWluLWhlaWdodDo0MnB4fVxuICAudHItYWxlcnQtZGFuZ2Vye2JhY2tncm91bmQ6cmdiYSgyNDgsMTEzLDExMywwLjEpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNDgsMTEzLDExMywwLjMpO2NvbG9yOiNmODcxNzF9XG4gIC50ci1hbGVydC1zdWNjZXNze2JhY2tncm91bmQ6cmdiYSg1MiwyMTEsMTUzLDAuMSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDUyLDIxMSwxNTMsMC4zKTtjb2xvcjojMzRkMzk5fVxuICAucmVnLXN0ZXBze2Rpc3BsYXk6ZmxleDtnYXA6NnB4O2FsaWduLWl0ZW1zOmNlbnRlcn1cbiAgLnJlZy1zdGVwe3dpZHRoOjhweDtoZWlnaHQ6OHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tdzEyKTt0cmFuc2l0aW9uOmFsbCAuM3N9XG4gIC5yZWctc3RlcC5hY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO3dpZHRoOjIwcHg7Ym9yZGVyLXJhZGl1czo0cHh9XG4gIC5yZWctaW5saW5lLWVycm9ye2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiNmODcxNzE7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtsZXR0ZXItc3BhY2luZzowLjVweDttaW4taGVpZ2h0OjE4cHg7bWFyZ2luLWJvdHRvbToxMHB4fVxuICAucmVnLWF2YXRhci1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTZweDttYXJnaW4tYm90dG9tOjIwcHg7cGFkZGluZzoxNHB4O2JhY2tncm91bmQ6dmFyKC0tdzA1KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMnB4fVxuICAucmVnLWF2YXRhci1wcmV2aWV3e3dpZHRoOjY0cHg7aGVpZ2h0OjY0cHg7ZmxleC1zaHJpbms6MDtib3JkZXItcmFkaXVzOjE0cHg7b3ZlcmZsb3c6aGlkZGVufVxuICAucmVnLWF2YXRhci1wcmV2aWV3IHN2Z3tkaXNwbGF5OmJsb2NrfVxuICAucmVnLWF2YXRhci1sYWJlbHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZToxMHB4O2xldHRlci1zcGFjaW5nOjJweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6dmFyKC0tdGV4dDMpO21hcmdpbi1ib3R0b206NHB4fVxuICAucmVnLWF2YXRhci1zdWJ7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dDIpfVxuICAucmVnLXRvc3ttYXJnaW46MTZweCAwIDIwcHh9XG4gIC5yZWctdG9zLWxhYmVse2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxMHB4O2N1cnNvcjpwb2ludGVyfVxuICAucmVnLXRvcy1jaGVja3tkaXNwbGF5Om5vbmV9XG4gIC5yZWctdG9zLWJveHt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2ZsZXgtc2hyaW5rOjA7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS13MTIpO2JvcmRlci1yYWRpdXM6NXB4O2JhY2tncm91bmQ6dmFyKC0tdzA1KTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dHJhbnNpdGlvbjphbGwgLjJzO21hcmdpbi10b3A6MXB4fVxuICAucmVnLXRvcy1jaGVjazpjaGVja2VkICsgLnJlZy10b3MtYm94e2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KX1cbiAgLnJlZy10b3MtY2hlY2s6Y2hlY2tlZCArIC5yZWctdG9zLWJveDo6YWZ0ZXJ7Y29udGVudDon4pyTJztmb250LXNpemU6MTFweDtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjcwMH1cbiAgLnJlZy10b3MtdGV4dHtmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS10ZXh0Mik7bGluZS1oZWlnaHQ6MS42fVxuICAucmVnLXRvcy10ZXh0IGF7Y29sb3I6dmFyKC0tYWNjZW50KTt0ZXh0LWRlY29yYXRpb246bm9uZX1cbiAgLm90cC13cmFwe2Rpc3BsYXk6ZmxleDtnYXA6OHB4O21hcmdpbi1ib3R0b206MjBweH1cbiAgLm90cC1pbnB1dHt3aWR0aDoxMDAlO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxOHB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7cGFkZGluZzoxMnB4IDRweCFpbXBvcnRhbnQ7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfVxuICAub3RwLWlucHV0OmRpc2FibGVke29wYWNpdHk6MC4zNTtjdXJzb3I6bm90LWFsbG93ZWR9XG4gIC5vdHAtcHJvZ3Jlc3MtdHJhY2t7d2lkdGg6MTAwJTtoZWlnaHQ6M3B4O2JhY2tncm91bmQ6dmFyKC0tdzA4KTtib3JkZXItcmFkaXVzOjJweDttYXJnaW4tYm90dG9tOjI0cHg7b3ZlcmZsb3c6aGlkZGVufVxuICAub3RwLXByb2dyZXNzLWZpbGx7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kOnZhcigtLWdyYWQpO2JvcmRlci1yYWRpdXM6MnB4O3RyYW5zaXRpb246d2lkdGggMTIwcyBsaW5lYXJ9XG4gIC5vdHAtcHJvZ3Jlc3MtZmlsbC5vdHAtZXhwaXJlZHtiYWNrZ3JvdW5kOnJnYmEoMjQ4LDExMywxMTMsMC42KX1cbiAgLm90cC1jb3VudGRvd257Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tYWNjZW50KTtsZXR0ZXItc3BhY2luZzoycHg7cGFkZGluZzo0cHggMTBweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czo4cHg7bWluLXdpZHRoOjUycHg7dGV4dC1hbGlnbjpjZW50ZXJ9XG4gIC5vdHAtY291bnRkb3duLm90cC1leHBpcmVke2NvbG9yOiNmODcxNzE7Ym9yZGVyLWNvbG9yOnJnYmEoMjQ4LDExMywxMTMsMC40KX1cbiAgLmZvcm0tdGVybXN7Zm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0tdGV4dDMpO2xpbmUtaGVpZ2h0OjEuNjttYXJnaW4tYm90dG9tOjE0cHh9XG4gIC5mb3JtLXRlcm1zIGF7Y29sb3I6dmFyKC0tYWNjZW50KTt0ZXh0LWRlY29yYXRpb246bm9uZX1cbiAgLmJhY2stbGlua3tmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZToxMHB4O2xldHRlci1zcGFjaW5nOjEuNXB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjp2YXIoLS10ZXh0Myk7dGV4dC1kZWNvcmF0aW9uOm5vbmU7ZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tdG9wOjE0cHg7dHJhbnNpdGlvbjpjb2xvciAuMnN9XG4gIC5iYWNrLWxpbms6aG92ZXJ7Y29sb3I6dmFyKC0tYWNjZW50KX1cbiAgLnN0ZXBzLWJhcntkaXNwbGF5OmZsZXg7Z2FwOjhweDttYXJnaW4tYm90dG9tOjIwcHg7YWxpZ24taXRlbXM6Y2VudGVyfVxuICAuc3RlcC1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTo5cHg7bGV0dGVyLXNwYWNpbmc6MS41cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfVxuICAuc3RlcC1udW17d2lkdGg6MjJweDtoZWlnaHQ6MjJweDtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6MTNweDtmbGV4LXNocmluazowfVxuICAuc3RlcC1udW0uYWN0aXZle2JhY2tncm91bmQ6dmFyKC0tZ3JhZCk7Y29sb3I6IzAwMH1cbiAgLnN0ZXAtbnVtLmRvbmV7YmFja2dyb3VuZDpyZ2JhKDM0LDE5Nyw5NCwwLjE1KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMzQsMTk3LDk0LDAuMzUpO2NvbG9yOiMyMmM1NWV9XG4gIC5zdGVwLW51bS5pZGxle2JhY2tncm91bmQ6dmFyKC0tdzA1KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXcxMik7Y29sb3I6dmFyKC0tdGV4dDMpfVxuICAuc3RlcC1sYWJlbC5hY3RpdmV7Y29sb3I6dmFyKC0tdGV4dCl9LnN0ZXAtbGFiZWwuaWRsZXtjb2xvcjp2YXIoLS10ZXh0Myl9XG4gIC5zdGVwLWFycm93e2NvbG9yOnZhcigtLXRleHQzKTtmb250LXNpemU6MTJweDttYXJnaW46MCAycHh9XG4gIC5vdHAtd3JhcHtkaXNwbGF5OmZsZXg7Z2FwOjhweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbjoxNHB4IDB9XG4gIC5vdHAtaW5wdXR7d2lkdGg6NDhweDtoZWlnaHQ6NTRweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZToyMnB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0KTtiYWNrZ3JvdW5kOnZhcigtLXcwNSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS13MTIpO2JvcmRlci1yYWRpdXM6MTBweDtvdXRsaW5lOm5vbmU7dHJhbnNpdGlvbjphbGwgLjI1cztjYXJldC1jb2xvcjp2YXIoLS1hY2NlbnQpfVxuICAub3RwLWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6MCAwIDAgM3B4IHJnYmEoMTM5LDkyLDI0NiwwLjEyKX1cbiAgLm1ldGhvZC1ib3h7cGFkZGluZzoxNHB4IDE2cHg7YmFja2dyb3VuZDp2YXIoLS13MDUpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tdzA4KTtib3JkZXItcmFkaXVzOjEycHg7bWFyZ2luLWJvdHRvbToxMHB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIC4ycztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4fVxuICAubWV0aG9kLWJveC5zZWxlY3RlZCwubWV0aG9kLWJveDpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMTM5LDkyLDI0NiwwLjA4KTtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLWgpfVxuICAubWV0aG9kLWljb257d2lkdGg6MzZweDtoZWlnaHQ6MzZweDtib3JkZXItcmFkaXVzOjEwcHg7YmFja2dyb3VuZDp2YXIoLS13MDgpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MTZweDtmbGV4LXNocmluazowO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMnN9XG4gIC5tZXRob2QtYm94LnNlbGVjdGVkIC5tZXRob2QtaWNvbntiYWNrZ3JvdW5kOnZhcigtLWdyYWQpfVxuICAubWV0aG9kLXRpdGxle2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjE2cHg7bGV0dGVyLXNwYWNpbmc6MXB4O2NvbG9yOnZhcigtLXRleHQpO21hcmdpbi1ib3R0b206MnB4fVxuICAubWV0aG9kLWRlc2N7Zm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0tdGV4dDMpO2xpbmUtaGVpZ2h0OjEuNH1cbiAgLyogU2tpcCB2ZXJpZmljYXRpb24g4oCUIG11dGVkIGRhc2hlZCBidXR0b24gKi9cbiAgLmJ0bi1za2lwe2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZToxMHB4O2xldHRlci1zcGFjaW5nOjJweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6dmFyKC0tdGV4dDMpO2JvcmRlcjoxcHggZGFzaGVkIHZhcigtLXcxMik7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTFweCAxNnB4O3RleHQtYWxpZ246Y2VudGVyO3RleHQtZGVjb3JhdGlvbjpub25lO3RyYW5zaXRpb246YWxsIC4yNXM7Y3Vyc29yOnBvaW50ZXI7bWFyZ2luLXRvcDowfVxuICAuYnRuLXNraXA6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLXcyMCk7Y29sb3I6dmFyKC0tdGV4dDIpO2JhY2tncm91bmQ6dmFyKC0tdzA1KX1cblxuICAvKiBSZWdpc3RyYXRpb24gc3RlcCBwYW5lbHMg4oCUIG5vLWxheW91dC1zaGlmdCB0cmFuc2l0aW9ucyAqL1xuICAucmVnLXBhbmVsLXdyYXB7cG9zaXRpb246cmVsYXRpdmV9XG4gIC5yZWctc3RlcC1wYW5lbHtkaXNwbGF5Om5vbmV9XG4gIC5yZWctc3RlcC1wYW5lbC5hY3RpdmV7ZGlzcGxheTpibG9ja31cblxuICAvKiBQYXNzd29yZCBydWxlcyAqL1xuICAucHctcnVsZXN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NHB4O21hcmdpbi10b3A6OHB4O3BhZGRpbmc6MTBweCAxMnB4O2JhY2tncm91bmQ6dmFyKC0tdzA1KTtib3JkZXItcmFkaXVzOjhweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXcwOCl9XG4gIC5wdy1ydWxle2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjdweDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZToxMHB4O2xldHRlci1zcGFjaW5nOi41cHg7Y29sb3I6dmFyKC0tdGV4dDMpO3RyYW5zaXRpb246Y29sb3IgLjJzfVxuICAucHctcnVsZS52YWxpZHtjb2xvcjojMjJjNTVlfVxuICAucHctcnVsZS1kb3R7d2lkdGg6NnB4O2hlaWdodDo2cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS13MjApO2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4yc31cbiAgLnB3LXJ1bGUudmFsaWQgLnB3LXJ1bGUtZG90e2JhY2tncm91bmQ6IzIyYzU1ZX1cblxuICAvKiBGaWVsZCBzdGF0dXMgaW5kaWNhdG9yIChlbWFpbCAvIHVzZXJuYW1lKSAqL1xuICAuZmktc3RhdHVze3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEycHg7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtmb250LXNpemU6MTNweDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpjb2xvciAuMnN9XG4gIC5maS1va3tjb2xvcjojMjJjNTVlfVxuICAuZmktZXJye2NvbG9yOiNmODcxNzF9XG4gIC5maS1jaGVja2luZ3tjb2xvcjp2YXIoLS10ZXh0Myk7YW5pbWF0aW9uOnRyLXB1bHNlIDFzIGluZmluaXRlfVxuXG4gIC8qIEF2YXRhciByZWZyZXNoICovXG4gIC5yZWctYXZhdGFyLWluZm97ZmxleDoxfVxuICAucmVnLWF2YXRhci1yZWZyZXNoe3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDp2YXIoLS13MDUpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tdzEyKTtjb2xvcjp2YXIoLS10ZXh0Myk7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YWxsIC4ycztmbGV4LXNocmluazowO2ZvbnQtd2VpZ2h0OjQwMDtwYWRkaW5nOjB9XG4gIC5yZWctYXZhdGFyLXJlZnJlc2g6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDEzOSw5MiwyNDYsMC4wOCk7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1oKTtjb2xvcjp2YXIoLS1hY2NlbnQpfVxuICAucmVnLWF2YXRhci1yZWZyZXNoLnNwaW5uaW5nIHN2Z3thbmltYXRpb246c3BpbjM2MCAuNHMgbGluZWFyfVxuICBAa2V5ZnJhbWVzIHNwaW4zNjB7ZnJvbXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19XG5cbiAgQG1lZGlhKG1heC13aWR0aDo3NjhweCl7XG4gICAgLnRyLXNwbGl0e2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Ym9yZGVyLXJhZGl1czoxNnB4O21heC13aWR0aDo0ODBweH1cbiAgICAudHItbGVmdHtkaXNwbGF5Om5vbmV9XG4gICAgLnRyLXJpZ2h0e3BhZGRpbmc6MzZweCAyOHB4fVxuICAgIC50ci1uYXZ7cGFkZGluZzowIDFyZW19XG4gICAgLnRyLXBhZ2V7cGFkZGluZzo4MHB4IDE2cHggMzJweH1cbiAgfVxuICBAbWVkaWEobWF4LXdpZHRoOjQ4MHB4KXtcbiAgICAudHItcmlnaHR7cGFkZGluZzoyOHB4IDIwcHh9XG4gICAgLmZyb3d7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn1cbiAgICAub3RwLWlucHV0e3dpZHRoOjQwcHg7aGVpZ2h0OjQ4cHg7Zm9udC1zaXplOjE4cHh9XG4gICAgLm90cC13cmFwe2dhcDo1cHh9XG4gIH1cbiAgQG1lZGlhKG1heC13aWR0aDozNjBweCl7XG4gICAgLm90cC1pbnB1dHt3aWR0aDozNHB4O2hlaWdodDo0NHB4O2ZvbnQtc2l6ZToxNnB4fVxuICAgIC5vdHAtd3JhcHtnYXA6NHB4fVxuICB9XG5cbi8qIOKUgOKUgCBQQUdFIENPTVBPTkVOVFMg4oCUIG1hcmtldGluZy9sYW5kaW5nIHdpZGdldHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG5cbkBrZXlmcmFtZXMgZlV7ZnJvbXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjJweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX1cbkBrZXlmcmFtZXMgdGlja3tmcm9te3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpfX1cbkBrZXlmcmFtZXMgc3Bpbntmcm9te3RyYW5zZm9ybTpyb3RhdGUoMCl9dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1cbkBrZXlmcmFtZXMgc3QtcHVsc2V7MCUsMTAwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpfTUwJXtvcGFjaXR5Oi41O3RyYW5zZm9ybTpzY2FsZSguOCl9fVxuXG4vKiBIRVJPICovXG4uaGVyb3ttaW4taGVpZ2h0OjEwMHZoO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzoxMTBweCAyNHB4IDgwcHg7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6dmFyKC0tYmcpfVxuLmhlcm8tYmd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtwb2ludGVyLWV2ZW50czpub25lO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgMTAwJSA2NSUgYXQgNTAlIC01JSxyZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4yOCkgMCUsdHJhbnNwYXJlbnQgNjAlKSxyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA1NSUgNDUlIGF0IDglIDkwJSxyZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4yKSAwJSx0cmFuc3BhcmVudCA1NSUpLHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDQ1JSA0MCUgYXQgOTIlIDg1JSxyZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4wOCkgMCUsdHJhbnNwYXJlbnQgNTUlKX1cbi5oZXJvLWdyaWR7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtwb2ludGVyLWV2ZW50czpub25lO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjA2KSAxcHgsdHJhbnNwYXJlbnQgMXB4KSxsaW5lYXItZ3JhZGllbnQoOTBkZWcscmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMDYpIDFweCx0cmFuc3BhcmVudCAxcHgpO2JhY2tncm91bmQtc2l6ZTo1OHB4IDU4cHg7bWFzay1pbWFnZTpyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA4NSUgODUlIGF0IDUwJSA1MCUsYmxhY2sgMjUlLHRyYW5zcGFyZW50IDEwMCUpOy13ZWJraXQtbWFzay1pbWFnZTpyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA4NSUgODUlIGF0IDUwJSA1MCUsYmxhY2sgMjUlLHRyYW5zcGFyZW50IDEwMCUpfVxuLmhlcm8tcGlsbHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOjNweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7cGFkZGluZzo3cHggMThweDtib3JkZXItcmFkaXVzOjEwMHB4O2JhY2tncm91bmQ6cmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4zKTtjb2xvcjp2YXIoLS1hY2NlbnQpO21hcmdpbi1ib3R0b206MjZweDthbmltYXRpb246ZlUgLjhzIGVhc2UgYm90aDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9XG4uaGVyby1kb3R7d2lkdGg6NnB4O2hlaWdodDo2cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2FuaW1hdGlvbjpzdC1wdWxzZSAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO2JveC1zaGFkb3c6MCAwIDhweCB2YXIoLS1hY2NlbnQpfVxuLmhlcm8taDF7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6Y2xhbXAoODJweCwxM3Z3LDE1MnB4KTtsaW5lLWhlaWdodDouODg7bGV0dGVyLXNwYWNpbmc6M3B4O21hcmdpbi1ib3R0b206NHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTthbmltYXRpb246ZlUgLjhzIC4xcyBlYXNlIGJvdGh9XG4uaDEtbDF7ZGlzcGxheTpibG9jaztjb2xvcjojZmZmO3RleHQtc2hhZG93OjAgMCA4MHB4IHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjE1KX1cbi5oMS1sMntkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQ6dmFyKC0tZ3JhZCk7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNsaXA6dGV4dDtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDI4cHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMzUpKX1cbi5oMS1sM3tkaXNwbGF5OmJsb2NrO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEyKTtmb250LXNpemU6Y2xhbXAoNTZweCw5dncsMTAwcHgpO2xldHRlci1zcGFjaW5nOjEwcHh9XG4uaGVyby1zdWJ7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6MzAwO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjYpO2xpbmUtaGVpZ2h0OjEuNzU7bWF4LXdpZHRoOjU2MHB4O21hcmdpbjoyMnB4IGF1dG8gMTJweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7YW5pbWF0aW9uOmZVIC44cyAuMnMgZWFzZSBib3RofVxuLmhlcm8tc3ViIHN0cm9uZ3tjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjYwMH1cbi5oZXJvLXN1YjJ7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6MzAwO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpO2xpbmUtaGVpZ2h0OjEuNzttYXgtd2lkdGg6NDgwcHg7bWFyZ2luOjAgYXV0byAzNnB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTthbmltYXRpb246ZlUgLjhzIC4yNXMgZWFzZSBib3RofVxuLmhlcm8tY3Rhc3tkaXNwbGF5OmZsZXg7Z2FwOjE0cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LXdyYXA6d3JhcDttYXJnaW4tYm90dG9tOjYwcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO2FuaW1hdGlvbjpmVSAuOHMgLjNzIGVhc2UgYm90aH1cbi5idG4tbWFpbntmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToxOXB4O2xldHRlci1zcGFjaW5nOjNweDtjb2xvcjojMDAwO3RleHQtZGVjb3JhdGlvbjpub25lO3BhZGRpbmc6MTVweCA0MnB4O2JhY2tncm91bmQ6dmFyKC0tZ3JhZCk7Ym9yZGVyLXJhZGl1czo4cHg7dHJhbnNpdGlvbjphbGwgLjI1cztkaXNwbGF5OmlubGluZS1ibG9jaztib3gtc2hhZG93OjAgOHB4IDMwcHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMzUpO2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjQwMH1cbi5idG4tbWFpbjpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtM3B4KTtib3gtc2hhZG93OjAgMTZweCA0OHB4IHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjUpO2NvbG9yOiMwMDB9XG4uYnRuLW91dHtmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToxOXB4O2xldHRlci1zcGFjaW5nOjNweDtjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO3BhZGRpbmc6MTVweCA0MnB4O2JvcmRlcjoxLjVweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4yKTtib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA0KTt0cmFuc2l0aW9uOmFsbCAuMjVzO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtd2VpZ2h0OjQwMH1cbi5idG4tb3V0OmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6cmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMDgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0zcHgpO2NvbG9yOiNmZmZ9XG4uaGVyby1zdGF0c3tkaXNwbGF5OmZsZXg7Z2FwOjA7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA4KTtib3JkZXItcmFkaXVzOjE0cHg7b3ZlcmZsb3c6aGlkZGVuO21heC13aWR0aDo3MjBweDt3aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjAyKTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMHB4KTthbmltYXRpb246ZlUgLjhzIC40cyBlYXNlIGJvdGh9XG4uaHN0YXR7ZmxleDoxO3BhZGRpbmc6MjJweCAxNnB4O3RleHQtYWxpZ246Y2VudGVyO2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDgpfVxuLmhzdGF0Omxhc3QtY2hpbGR7Ym9yZGVyLXJpZ2h0Om5vbmV9XG4uaHN0YXQtbntmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZTozNnB4O2xldHRlci1zcGFjaW5nOjFweDtsaW5lLWhlaWdodDoxO2JhY2tncm91bmQ6dmFyKC0tZ3JhZCk7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNsaXA6dGV4dH1cbi5oc3RhdC1se2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOjlweDtsZXR0ZXItc3BhY2luZzoycHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCk7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO21hcmdpbi10b3A6NHB4fVxuXG4vKiBUSUNLRVIgKi9cbi50aWNrZXJ7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MTNweCAwO3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA4KTtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wOCl9XG4udGlja2VyOjpiZWZvcmUsLnRpY2tlcjo6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDt3aWR0aDoxMDBweDt6LWluZGV4OjJ9XG4udGlja2VyOjpiZWZvcmV7bGVmdDowO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHZhcigtLWJnKSx0cmFuc3BhcmVudCl9XG4udGlja2VyOjphZnRlcntyaWdodDowO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KC05MGRlZyx2YXIoLS1iZyksdHJhbnNwYXJlbnQpfVxuLnRpY2tlci1pbm5lcntkaXNwbGF5OmZsZXg7YW5pbWF0aW9uOnRpY2sgMjhzIGxpbmVhciBpbmZpbml0ZTt3aGl0ZS1zcGFjZTpub3dyYXB9XG4udGl7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cGFkZGluZzowIDMwcHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo1MDA7bGV0dGVyLXNwYWNpbmc6MnB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX1cbi50aS5jMXtjb2xvcjp2YXIoLS1hY2NlbnQpfS50aS5jMntjb2xvcjp2YXIoLS1hY2NlbnQzKX0udGkuYzN7Y29sb3I6dmFyKC0tYWNjZW50Myl9LnRpLmM0e2NvbG9yOnZhcigtLWFjY2VudDMpfVxuLnRpLWRvdHt3aWR0aDo0cHg7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjtvcGFjaXR5Oi41O2ZsZXgtc2hyaW5rOjB9XG5cbi8qIEdSQURJRU5UIFJVTEUgKi9cbi5nbGluZXtoZWlnaHQ6MXB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHRyYW5zcGFyZW50LHZhcigtLWFjY2VudCksdmFyKC0tYWNjZW50MyksdmFyKC0tYWNjZW50MyksdHJhbnNwYXJlbnQpfVxuXG4vKiBTRUNUSU9OIFBSSU1JVElWRVMgKi9cbi5zZWN7cGFkZGluZzoxMTBweCAyNHB4O3Bvc2l0aW9uOnJlbGF0aXZlfVxuLmNvbnttYXgtd2lkdGg6MTA4MHB4O21hcmdpbjowIGF1dG99XG4uc3RhZ3tmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzo0cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnZhcigtLWFjY2VudCk7bWFyZ2luLWJvdHRvbToxNHB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHh9XG4uc3RhZzo6YmVmb3Jle2NvbnRlbnQ6Jyc7d2lkdGg6MThweDtoZWlnaHQ6MXB4O2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtmbGV4LXNocmluazowfVxuLnNoMntmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZTpjbGFtcCg1MHB4LDd2dyw4NHB4KTtsZXR0ZXItc3BhY2luZzoycHg7bGluZS1oZWlnaHQ6LjkyO2NvbG9yOiNmZmY7bWFyZ2luLWJvdHRvbToxNHB4fVxuLnNoMiBlbXtmb250LXN0eWxlOm5vcm1hbDtiYWNrZ3JvdW5kOnZhcigtLWdyYWQpOy13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jbGlwOnRleHR9XG4uc3N1Yntmb250LXNpemU6MTRweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC42KTtsaW5lLWhlaWdodDoxLjc1O21heC13aWR0aDo1MjBweH1cbi5zc3ViMntmb250LXNpemU6MTNweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KTtsaW5lLWhlaWdodDoxLjc7bWF4LXdpZHRoOjUyMHB4O21hcmdpbi10b3A6MTBweH1cblxuLyogSU5UUk8gKi9cbi5pbnRyby1iZ3tiYWNrZ3JvdW5kOnZhcigtLWJnMil9XG4uaW50cm8tZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjgwcHg7YWxpZ24taXRlbXM6Y2VudGVyfVxuLmludHJvLXJpZ2h0e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjI4cHh9XG4uaW50cm8tYmxvY2t7cGFkZGluZzoyNHB4IDI2cHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7Ym9yZGVyLXJhZGl1czoxNHB4O2JvcmRlci1sZWZ0OjNweCBzb2xpZCB2YXIoLS1hY2NlbnQpO3RyYW5zaXRpb246YWxsIC4yNXN9XG4uaW50cm8tYmxvY2s6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4wNik7Ym9yZGVyLWxlZnQtY29sb3I6dmFyKC0tYWNjZW50Myl9XG4uaW50cm8tYmxvY2stbGFiZWx7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6OXB4O2xldHRlci1zcGFjaW5nOjJweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6dmFyKC0tYWNjZW50KTttYXJnaW4tYm90dG9tOjhweH1cbi5pbnRyby1ibG9jay10aXRsZXtmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToyMnB4O2xldHRlci1zcGFjaW5nOjFweDtjb2xvcjojZmZmO21hcmdpbi1ib3R0b206NnB4fVxuLmludHJvLWJsb2NrLXRleHR7Zm9udC1zaXplOjEzcHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNik7bGluZS1oZWlnaHQ6MS42NX1cbi5pbnRyby1xdW90ZXttYXJnaW4tdG9wOjI4cHg7cGFkZGluZzoyMnB4IDI0cHg7YmFja2dyb3VuZDpyZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4wNik7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4yKTtib3JkZXItcmFkaXVzOjE0cHg7cG9zaXRpb246cmVsYXRpdmV9XG4uaW50cm8tcXVvdGU6OmJlZm9yZXtjb250ZW50OidcIic7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6ODBweDtjb2xvcjpyZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4xNSk7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0xMHB4O2xlZnQ6MTZweDtsaW5lLWhlaWdodDoxfVxuLmludHJvLXF1b3RlIHB7Zm9udC1zaXplOjE0cHg7Zm9udC1zdHlsZTppdGFsaWM7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNik7bGluZS1oZWlnaHQ6MS43O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX1cbi5pbnRyby1xdW90ZSBzcGFue2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDoxMHB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOjEwcHg7bGV0dGVyLXNwYWNpbmc6MnB4O2NvbG9yOnZhcigtLWFjY2VudCk7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfVxuXG4vKiBGRUFUVVJFUyAqL1xuLmZlYXQtYmd7YmFja2dyb3VuZDp2YXIoLS1iZyl9XG4uZmVhdC1ncmlke2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDMsMWZyKTtnYXA6MXB4O21hcmdpbi10b3A6NjBweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA4KTtib3JkZXItcmFkaXVzOjE4cHg7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDgpfVxuLmZje2JhY2tncm91bmQ6dmFyKC0tYmczKTtwYWRkaW5nOjM2cHggMzBweDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4zcztjdXJzb3I6ZGVmYXVsdH1cbi5mYzo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcscmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMDcpIDAlLHRyYW5zcGFyZW50IDYwJSk7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuM3N9XG4uZmM6aG92ZXI6OmJlZm9yZXtvcGFjaXR5OjF9XG4uZmMtYmFye3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO2hlaWdodDoycHg7YmFja2dyb3VuZDp2YXIoLS1ncmFkKTt0cmFuc2Zvcm06c2NhbGVYKDApO3RyYW5zZm9ybS1vcmlnaW46bGVmdDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIGVhc2V9XG4uZmM6aG92ZXIgLmZjLWJhcnt0cmFuc2Zvcm06c2NhbGVYKDEpfVxuLmZjLWljb257d2lkdGg6NDZweDtoZWlnaHQ6NDZweDtib3JkZXItcmFkaXVzOjEycHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToyMHB4O21hcmdpbi1ib3R0b206MThweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA1KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA4KTt0cmFuc2l0aW9uOmFsbCAuM3N9XG4uZmM6aG92ZXIgLmZjLWljb257YmFja2dyb3VuZDpyZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4xNSk7Ym9yZGVyLWNvbG9yOnJnYmEodmFyKC0tYWNjZW50LXJnYiksLjMpfVxuLmZjLW51bXtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTo5cHg7bGV0dGVyLXNwYWNpbmc6MnB4O2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTttYXJnaW4tYm90dG9tOjhweH1cbi5mYy10aXRsZXtmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToyNnB4O2xldHRlci1zcGFjaW5nOjFweDtjb2xvcjojZmZmO21hcmdpbi1ib3R0b206OHB4fVxuLmZjLWRlc2N7Zm9udC1zaXplOjEzcHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCk7bGluZS1oZWlnaHQ6MS42O21hcmdpbi1ib3R0b206OHB4fVxuLmZjLWRldGFpbHtmb250LXNpemU6MTJweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4yKTtsaW5lLWhlaWdodDoxLjU1fVxuXG4vKiBIT1cgSVQgV09SS1MgKi9cbi5ob3ctYmd7YmFja2dyb3VuZDp2YXIoLS1iZzIpfVxuLmhvdy1pbnRyb3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjgwcHg7YWxpZ24taXRlbXM6c3RhcnQ7bWFyZ2luLWJvdHRvbTo2NHB4fVxuLnN0ZXBze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDQsMWZyKTtnYXA6MDtwb3NpdGlvbjpyZWxhdGl2ZX1cbi5zdGVwczo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7dG9wOjI3cHg7bGVmdDpjYWxjKDEyLjUlICsgMTRweCk7cmlnaHQ6Y2FsYygxMi41JSArIDE0cHgpO2hlaWdodDoxcHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdmFyKC0tYWNjZW50KSx2YXIoLS1hY2NlbnQyKSx2YXIoLS1hY2NlbnQzKSx2YXIoLS1hY2NlbnQzKSk7ei1pbmRleDowfVxuLnN0ZXB7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzowIDE0cHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfVxuLnN0ZXAtbnt3aWR0aDo1NHB4O2hlaWdodDo1NHB4O2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToyMnB4O2xldHRlci1zcGFjaW5nOjFweDttYXJnaW46MCBhdXRvIDE4cHg7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjphbGwgLjNzfVxuLnN0ZXA6bnRoLWNoaWxkKDEpIC5zdGVwLW57YmFja2dyb3VuZDpyZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4xNSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1hY2NlbnQpO2NvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDAgMThweCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4yNSl9XG4uc3RlcDpudGgtY2hpbGQoMikgLnN0ZXAtbntiYWNrZ3JvdW5kOnJnYmEodmFyKC0tYWNjZW50LXJnYiksLjE1KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWFjY2VudDIpO2NvbG9yOnZhcigtLWFjY2VudDIpO2JveC1zaGFkb3c6MCAwIDE4cHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMil9XG4uc3RlcDpudGgtY2hpbGQoMykgLnN0ZXAtbntiYWNrZ3JvdW5kOnJnYmEodmFyKC0tYWNjZW50LXJnYiksLjE1KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWFjY2VudDMpO2NvbG9yOnZhcigtLWFjY2VudDMpO2JveC1zaGFkb3c6MCAwIDE4cHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMil9XG4uc3RlcDpudGgtY2hpbGQoNCkgLnN0ZXAtbntiYWNrZ3JvdW5kOnJnYmEodmFyKC0tYWNjZW50LXJnYiksLjEyKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWFjY2VudDMpO2NvbG9yOnZhcigtLWFjY2VudDMpO2JveC1zaGFkb3c6MCAwIDE4cHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMil9XG4uc3RlcC10aXRsZXtmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToyMHB4O2xldHRlci1zcGFjaW5nOjFweDtjb2xvcjojZmZmO21hcmdpbi1ib3R0b206OHB4fVxuLnN0ZXAtZGVzY3tmb250LXNpemU6MTJweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KTtsaW5lLWhlaWdodDoxLjZ9XG5cbi8qIENIQUxMRU5HRVMgKi9cbi5jaGFsLWJne2JhY2tncm91bmQ6dmFyKC0tYmcpO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn1cbi5jaGFsLWJnOjpiZWZvcmV7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTIwMHB4O2xlZnQ6LTIwMHB4O3dpZHRoOjYwMHB4O2hlaWdodDo2MDBweDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUscmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMDcpIDAlLHRyYW5zcGFyZW50IDcwJSk7cG9pbnRlci1ldmVudHM6bm9uZX1cbi5jaGFsLWJnOjphZnRlcntjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTotMjAwcHg7cmlnaHQ6LTIwMHB4O3dpZHRoOjYwMHB4O2hlaWdodDo2MDBweDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUscmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMDcpIDAlLHRyYW5zcGFyZW50IDcwJSk7cG9pbnRlci1ldmVudHM6bm9uZX1cbi5jaGFsLWludHJve2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6ODBweDthbGlnbi1pdGVtczplbmQ7bWFyZ2luLWJvdHRvbTo2MHB4fVxuLmNoYWwtZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjIwcHh9XG4uY2N7Ym9yZGVyLXJhZGl1czoyMHB4O3BhZGRpbmc6NDJweCAzOHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDgpO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn1cbi5jYy1kZW1ve2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE0NWRlZywjMGMwYzE4IDAlLCMxMzEwMjAgMTAwJSl9XG4uY2MtZnVuZHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNDVkZWcsIzBjMDgxMCAwJSwjMTgwNDIwIDUwJSwjMGMwODEwIDEwMCUpO2JvcmRlci1jb2xvcjpyZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4yNSl9XG4uY2MtZnVuZDo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDEwMCUgNTAlIGF0IDUwJSAwJSxyZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4xKSAwJSx0cmFuc3BhcmVudCA2NSUpO3BvaW50ZXItZXZlbnRzOm5vbmV9XG4uY2MtYmFkZ2V7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6OXB4O2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzoycHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3BhZGRpbmc6NXB4IDEycHg7Ym9yZGVyLXJhZGl1czo0cHg7bWFyZ2luLWJvdHRvbToyMnB4fVxuLmJke2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDUpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMTIpO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjYpfVxuLmJme2JhY2tncm91bmQ6dmFyKC0tZ3JhZCk7Y29sb3I6IzAwMH1cbi5jYy10aXRsZXtmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZTo0OHB4O2xldHRlci1zcGFjaW5nOjFweDtjb2xvcjojZmZmO2xpbmUtaGVpZ2h0Oi45NTttYXJnaW4tYm90dG9tOjE0cHh9XG4uY2MtZnVuZCAuY2MtdGl0bGV7YmFja2dyb3VuZDp2YXIoLS1ncmFkKTstd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY2xpcDp0ZXh0fVxuLmNjLWRlc2N7Zm9udC1zaXplOjE0cHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNik7bGluZS1oZWlnaHQ6MS42NTttYXJnaW4tYm90dG9tOjEwcHh9XG4uY2MtZGVzYzJ7Zm9udC1zaXplOjEzcHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCk7bGluZS1oZWlnaHQ6MS42O21hcmdpbi1ib3R0b206MjhweH1cbi5jYy1saXN0e2xpc3Qtc3R5bGU6bm9uZTttYXJnaW4tYm90dG9tOjMycHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweH1cbi5jYy1saXN0IGxpe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxMHB4O2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjYpO2xpbmUtaGVpZ2h0OjEuNH1cbi5jaGt7d2lkdGg6MThweDtoZWlnaHQ6MThweDtib3JkZXItcmFkaXVzOjUwJTtmbGV4LXNocmluazowO21hcmdpbi10b3A6MXB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn1cbi5jZ3tiYWNrZ3JvdW5kOnJnYmEoMzQsMTk3LDk0LC4xNSl9LmNte2JhY2tncm91bmQ6cmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMTgpfVxuLmNjLWJ0bntkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToxN3B4O2xldHRlci1zcGFjaW5nOjJweDt0ZXh0LWRlY29yYXRpb246bm9uZTtwYWRkaW5nOjEzcHggMjhweDtib3JkZXItcmFkaXVzOjEwcHg7dHJhbnNpdGlvbjphbGwgLjI1cztjdXJzb3I6cG9pbnRlcjtib3JkZXI6bm9uZTtmb250LXdlaWdodDo0MDB9XG4uY2MtYnRuLWR7Y29sb3I6I2ZmZjtib3JkZXI6MS41cHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMTIpO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDUpfVxuLmNjLWJ0bi1kOmhvdmVye2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTtjb2xvcjojZmZmfVxuLmNjLWJ0bi1me2NvbG9yOiMwMDA7YmFja2dyb3VuZDp2YXIoLS1ncmFkKTtib3gtc2hhZG93OjAgNnB4IDI0cHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMyl9XG4uY2MtYnRuLWY6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTNweCk7Ym94LXNoYWRvdzowIDEycHggMzZweCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC40NSk7Y29sb3I6IzAwMH1cblxuLyogVE9LRU4gLyBPUkIgKi9cbi50b2stYmd7YmFja2dyb3VuZDp2YXIoLS1iZzIpO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn1cbi50b2stYmc6OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA2MCUgODAlIGF0IDAlIDUwJSxyZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4xMykgMCUsdHJhbnNwYXJlbnQgNTUlKSxyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA1MCUgNjAlIGF0IDEwMCUgNTAlLHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjA5KSAwJSx0cmFuc3BhcmVudCA1NSUpO3BvaW50ZXItZXZlbnRzOm5vbmV9XG4udG9rLWxheW91dHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjgwcHg7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX1cbi50b2stYm9keSBwe2ZvbnQtc2l6ZToxNHB4O2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjYpO2xpbmUtaGVpZ2h0OjEuNzU7bWFyZ2luLXRvcDoxNHB4fVxuLnRvay1ib2R5IHArcHttYXJnaW4tdG9wOjEwcHg7Zm9udC1zaXplOjEzcHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCk7bGluZS1oZWlnaHQ6MS43fVxuLnRvay1ncmlke2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MTRweDttYXJnaW4tdG9wOjMycHh9XG4udHN0YXR7cGFkZGluZzoyMHB4IDE4cHg7Ym9yZGVyLXJhZGl1czoxNHB4O2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDMpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDgpO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn1cbi50c3RhdDo6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtoZWlnaHQ6MnB4O2JhY2tncm91bmQ6dmFyKC0tZ3JhZCl9XG4udHN0YXQtdntmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToyOHB4O2xldHRlci1zcGFjaW5nOjFweDtsaW5lLWhlaWdodDoxO2JhY2tncm91bmQ6dmFyKC0tZ3JhZCk7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNsaXA6dGV4dDttYXJnaW4tYm90dG9tOjRweH1cbi50c3RhdC1re2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOjlweDtsZXR0ZXItc3BhY2luZzoycHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCk7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfVxuLm9yYi13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMwMHB4O2hlaWdodDozMDBweDttYXJnaW46MCBhdXRvfVxuLm9yYjEsLm9yYjJ7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjFweCBzb2xpZH1cbi5vcmIxe2luc2V0OjA7Ym9yZGVyLWNvbG9yOnJnYmEodmFyKC0tYWNjZW50LXJnYiksLjIpO2FuaW1hdGlvbjpzcGluIDIycyBsaW5lYXIgaW5maW5pdGV9XG4ub3JiMntpbnNldDozMnB4O2JvcmRlci1jb2xvcjpyZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4xNSk7YW5pbWF0aW9uOnNwaW4gMTRzIGxpbmVhciBpbmZpbml0ZSByZXZlcnNlfVxuLm9yYi1kb3R7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDtib3JkZXItcmFkaXVzOjUwJTt0b3A6LTVweDtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX1cbi5vZC1te2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgMCAxNHB4IHZhcigtLWFjY2VudCl9XG4ub2QtZ3tiYWNrZ3JvdW5kOnZhcigtLWFjY2VudDMpO2JveC1zaGFkb3c6MCAwIDEycHggdmFyKC0tYWNjZW50Myl9XG4ub3JiLWN7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6NzJweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNDVkZWcsdmFyKC0tYmczKSx2YXIoLS1iZzQpKTtib3JkZXI6MnB4IHNvbGlkIHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjM1KTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JveC1zaGFkb3c6MCAwIDQwcHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMTUpLGluc2V0IDAgMCAzMHB4IHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjA1KX1cbi5vcmItYyBpbWd7d2lkdGg6NThweDtoZWlnaHQ6NThweDtib3JkZXItcmFkaXVzOjUwJTtvYmplY3QtZml0OmNvdmVyfVxuLm9yYi1jLWxibHtmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToxN3B4O2xldHRlci1zcGFjaW5nOjNweDtiYWNrZ3JvdW5kOnZhcigtLWdyYWQpOy13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jbGlwOnRleHQ7bWFyZ2luLXRvcDo1cHh9XG5cbi8qIEdBTUlGSUNBVElPTiAqL1xuLmdhbS1iZ3tiYWNrZ3JvdW5kOnZhcigtLWJnKX1cbi5nYW0taW50cm97ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDo4MHB4O2FsaWduLWl0ZW1zOnN0YXJ0O21hcmdpbi1ib3R0b206NjBweH1cbi5nYW0tcmlnaHQgcHtmb250LXNpemU6MTRweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC42KTtsaW5lLWhlaWdodDoxLjc1fVxuLmdhbS1yaWdodCBwK3B7bWFyZ2luLXRvcDoxMnB4O2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpO2xpbmUtaGVpZ2h0OjEuN31cbi5nYW0tZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LDFmcik7Z2FwOjE0cHh9XG4uZ2N7cGFkZGluZzoyOHB4IDIycHg7Ym9yZGVyLXJhZGl1czoxNnB4O2JhY2tncm91bmQ6dmFyKC0tYmczKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA4KTt0ZXh0LWFsaWduOmNlbnRlcjt0cmFuc2l0aW9uOmFsbCAuM3M7Y3Vyc29yOmRlZmF1bHQ7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufVxuLmdjOjpiZWZvcmV7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2JhY2tncm91bmQ6dmFyKC0tZ3JhZCk7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuM3N9XG4uZ2M6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTVweCk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fVxuLmdjOmhvdmVyOjpiZWZvcmV7b3BhY2l0eTouMDh9XG4uZ2M6aG92ZXIgLmdjLWljb257dHJhbnNmb3JtOnNjYWxlKDEuMTUpfVxuLmdjLWljb257Zm9udC1zaXplOjI4cHg7bWFyZ2luLWJvdHRvbToxNHB4O2Rpc3BsYXk6YmxvY2s7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzfVxuLmdjLXRpdGxle2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjIycHg7bGV0dGVyLXNwYWNpbmc6MXB4O2NvbG9yOiNmZmY7bWFyZ2luLWJvdHRvbTo4cHh9XG4uZ2MtZGVzY3tmb250LXNpemU6MTJweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KTtsaW5lLWhlaWdodDoxLjU1fVxuXG4vKiBTT0NJQUwgUFJPT0YgLyBMRUFERVJCT0FSRCAqL1xuLnNwLWJne2JhY2tncm91bmQ6dmFyKC0tYmcyKTtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59XG4uc3AtYmc6OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA4MCUgNjAlIGF0IDUwJSAxMDAlLHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjEpIDAlLHRyYW5zcGFyZW50IDYwJSk7cG9pbnRlci1ldmVudHM6bm9uZX1cbi5zcC1sYXlvdXR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDo2MHB4O2FsaWduLWl0ZW1zOnN0YXJ0fVxuLmxiLXdyYXB7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wMik7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7Ym9yZGVyLXJhZGl1czoxOHB4O292ZXJmbG93OmhpZGRlbjtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMHB4KX1cbi5sYi1oZWFke3BhZGRpbmc6MTZweCAyMnB4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDgpO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDIpfVxuLmxiLWh0aXRsZXtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZToxMHB4O2xldHRlci1zcGFjaW5nOjJweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9XG4ubGItbGl2ZXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6MTBweDtjb2xvcjojMjJjNTVlO2xldHRlci1zcGFjaW5nOjFweH1cbi5sYi1sZG90e3dpZHRoOjZweDtoZWlnaHQ6NnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IzIyYzU1ZTthbmltYXRpb246c3QtcHVsc2UgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZX1cbi5sYi1yb3d7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczozMnB4IDM0cHggMWZyIGF1dG8gYXV0bzthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cGFkZGluZzoxMnB4IDIycHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDUpO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzfVxuLmxiLXJvdzpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA1KX1cbi5sYi1yb3c6bGFzdC1jaGlsZHtib3JkZXItYm90dG9tOm5vbmV9XG4ubGItcm57Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6MjBweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KTt0ZXh0LWFsaWduOmNlbnRlcn1cbi5sYi1ybi5ne2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1hY2NlbnQzKSwjZThiODAwKTstd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY2xpcDp0ZXh0fVxuLmxiLXJuLnN7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNDMEMwQzAsIzg4OCk7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNsaXA6dGV4dH1cbi5sYi1ybi5ie2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjQ0Q3RjMyLCNhMDVhMWEpOy13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jbGlwOnRleHR9XG4ubGItYXZ7d2lkdGg6MzRweDtoZWlnaHQ6MzRweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWdyYWQpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiNmZmY7ZmxleC1zaHJpbms6MH1cbi5sYi1uYW1le2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojZmZmfVxuLmxiLXRyYWRlc3tmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZToxMHB4O2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpfVxuLmxiLXByb2ZpdHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojMjJjNTVlfVxuLmxiLWxpbmt7ZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmNlbnRlcjtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZToxMHB4O2xldHRlci1zcGFjaW5nOjJweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6dmFyKC0tYWNjZW50KTt0ZXh0LWRlY29yYXRpb246bm9uZTtwYWRkaW5nOjE0cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDgpO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMnN9XG4ubGItbGluazpob3ZlcntiYWNrZ3JvdW5kOnJnYmEodmFyKC0tYWNjZW50LXJnYiksLjA1KTtjb2xvcjp2YXIoLS1hY2NlbnQpfVxuXG4vKiBQQVlPVVQgQ0VSVCAqL1xuLnBheW91dC13cmFwe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjE2cHh9XG4ucGF5b3V0LXRpdGxle2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjI4cHg7bGV0dGVyLXNwYWNpbmc6MXB4O2NvbG9yOiNmZmY7bWFyZ2luLWJvdHRvbTo0cHh9XG4ucGF5b3V0LXN1Yntmb250LXNpemU6MTNweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KTtsaW5lLWhlaWdodDoxLjY1O21hcmdpbi1ib3R0b206MjBweH1cbi5wYXlvdXQtY2VydHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNDVkZWcsdmFyKC0tYmczKSx2YXIoLS1iZzQpKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjI1KTtib3JkZXItcmFkaXVzOjE2cHg7cGFkZGluZzoyNHB4O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn1cbi5wYXlvdXQtY2VydDo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7aGVpZ2h0OjNweDtiYWNrZ3JvdW5kOnZhcigtLWdyYWQpfVxuLnBjLWxhYmVse2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOjlweDtsZXR0ZXItc3BhY2luZzozcHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnZhcigtLWFjY2VudCk7bWFyZ2luLWJvdHRvbToxNHB4fVxuLnBjLWRhdGV7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6MTBweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KTttYXJnaW4tYm90dG9tOjEwcHh9XG4ucGMtbmFtZXtmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToyNnB4O2xldHRlci1zcGFjaW5nOjJweDtjb2xvcjojZmZmO21hcmdpbi1ib3R0b206MTRweH1cbi5wYy1hbW91bnR7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6NDRweDtsZXR0ZXItc3BhY2luZzoxcHg7YmFja2dyb3VuZDp2YXIoLS1ncmFkKTstd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY2xpcDp0ZXh0O2xpbmUtaGVpZ2h0OjE7bWFyZ2luLWJvdHRvbTo0cHh9XG4ucGMtbWV0YXtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZToxMHB4O2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpO2Rpc3BsYXk6ZmxleDtnYXA6MjBweDtmbGV4LXdyYXA6d3JhcH1cbi5wYy1iYWRnZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3BhZGRpbmc6NXB4IDEycHg7YmFja2dyb3VuZDpyZ2JhKDM0LDE5Nyw5NCwuMSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDM0LDE5Nyw5NCwuMik7Ym9yZGVyLXJhZGl1czo2cHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6MTBweDtjb2xvcjojMjJjNTVlO2xldHRlci1zcGFjaW5nOjFweDttYXJnaW4tdG9wOjEycHh9XG4ucGMtYmFkZ2UtZG90e3dpZHRoOjZweDtoZWlnaHQ6NnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IzIyYzU1ZX1cbi5wYXlvdXQtc3RhdHN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyIDFmcjtnYXA6MTJweDttYXJnaW4tdG9wOjE2cHh9XG4ucHN7cGFkZGluZzoxNHB4IDEycHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7Ym9yZGVyLXJhZGl1czoxMHB4O3RleHQtYWxpZ246Y2VudGVyfVxuLnBzLW57Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6MjJweDtsZXR0ZXItc3BhY2luZzoxcHg7YmFja2dyb3VuZDp2YXIoLS1ncmFkKTstd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY2xpcDp0ZXh0O2xpbmUtaGVpZ2h0OjF9XG4ucHMtbHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTo4cHg7bGV0dGVyLXNwYWNpbmc6MS41cHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCk7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO21hcmdpbi10b3A6M3B4fVxuXG4vKiBJTlZFU1RPUiAqL1xuLmludi1iZ3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tYmc0KSAwJSx2YXIoLS1hY2NlbnQyKSAzMCUsdmFyKC0tYWNjZW50KSA3MCUsdmFyKC0tYmcpIDEwMCUpO3BhZGRpbmc6ODBweCAyNHB4O3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn1cbi5pbnYtYmc6OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQocmdiYSgyNTUsMjU1LDI1NSwuMDI1KSAxcHgsdHJhbnNwYXJlbnQgMXB4KSxsaW5lYXItZ3JhZGllbnQoOTBkZWcscmdiYSgyNTUsMjU1LDI1NSwuMDI1KSAxcHgsdHJhbnNwYXJlbnQgMXB4KTtiYWNrZ3JvdW5kLXNpemU6NDRweCA0NHB4fVxuLmludi10YWd7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6MTBweDtsZXR0ZXItc3BhY2luZzozcHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQ1KTttYXJnaW4tYm90dG9tOjE2cHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfVxuLmludi1oe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOmNsYW1wKDQ0cHgsNnZ3LDcwcHgpO2xldHRlci1zcGFjaW5nOjJweDtjb2xvcjojZmZmO21hcmdpbi1ib3R0b206MTJweDtsaW5lLWhlaWdodDouOTU7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfVxuLmludi1zdWJ7Zm9udC1zaXplOjE0cHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNik7bGluZS1oZWlnaHQ6MS43O21heC13aWR0aDo0ODBweDttYXJnaW46MCBhdXRvIDEwcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfVxuLmludi1zdWIye2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpO2xpbmUtaGVpZ2h0OjEuNjU7bWF4LXdpZHRoOjQ2MHB4O21hcmdpbjowIGF1dG8gMzBweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9XG4uaW52LXBpbGxze2Rpc3BsYXk6ZmxleDtnYXA6MTJweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtd3JhcDp3cmFwO21hcmdpbi1ib3R0b206MzJweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9XG4uaW52LXBpbGx7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6MTBweDtsZXR0ZXItc3BhY2luZzoxLjVweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7cGFkZGluZzo3cHggMTRweDtib3JkZXItcmFkaXVzOjZweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjEpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMTgpO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjc1KX1cbi5pbnYtYnRue2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjE4cHg7bGV0dGVyLXNwYWNpbmc6M3B4O2NvbG9yOiMwMDA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7cGFkZGluZzoxNHB4IDQwcHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLWFjY2VudDMpLCNlOGI4MDApO2JvcmRlci1yYWRpdXM6OHB4O3RyYW5zaXRpb246YWxsIC4yNXM7Ym94LXNoYWRvdzowIDhweCAyOHB4IHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjMpO2ZvbnQtd2VpZ2h0OjQwMDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9XG4uaW52LWJ0bjpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTtib3gtc2hhZG93OjAgMTRweCA0MHB4IHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjQ1KTtjb2xvcjojMDAwfVxuLmludi1zdGF0c3tkaXNwbGF5OmZsZXg7Z2FwOjQ4cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tdG9wOjM2cHg7ZmxleC13cmFwOndyYXA7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfVxuLmlzLW57Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6MzhweDtsZXR0ZXItc3BhY2luZzoxcHg7Y29sb3I6I2ZmZjtsaW5lLWhlaWdodDoxfVxuLmlzLWx7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6OXB4O2xldHRlci1zcGFjaW5nOjJweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bWFyZ2luLXRvcDo0cHh9XG5cbi8qIEZJTkFMIENUQSAqL1xuLmZjdGF7YmFja2dyb3VuZDp2YXIoLS1iZyk7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzoxMzBweCAyNHB4O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn1cbi5mY3RhOjpiZWZvcmV7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTEwMHB4O2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3dpZHRoOjkwMHB4O2hlaWdodDo5MDBweDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUscmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMTEpIDAlLHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjA2KSA0MCUsdHJhbnNwYXJlbnQgNjUlKTtwb2ludGVyLWV2ZW50czpub25lfVxuLmZjdGEtd217cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi04MHB4O2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjI4MHB4O2xldHRlci1zcGFjaW5nOjEycHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMDE4KTtwb2ludGVyLWV2ZW50czpub25lO3doaXRlLXNwYWNlOm5vd3JhcDtsaW5lLWhlaWdodDoxfVxuLmZjdGEtaXtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWF4LXdpZHRoOjY2MHB4O21hcmdpbjowIGF1dG99XG4uZmN0YS1oe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOmNsYW1wKDY0cHgsMTB2dywxMThweCk7bGV0dGVyLXNwYWNpbmc6M3B4O2xpbmUtaGVpZ2h0Oi44ODttYXJnaW4tYm90dG9tOjIwcHh9XG4uZmN0YS1oIHNwYW46Zmlyc3QtY2hpbGR7Y29sb3I6I2ZmZjtkaXNwbGF5OmJsb2NrfVxuLmZjdGEtaCBzcGFuOmxhc3QtY2hpbGR7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kOnZhcigtLWdyYWQpOy13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jbGlwOnRleHQ7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCA0MHB4IHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjI1KSl9XG4uZmN0YS1zdWJ7Zm9udC1zaXplOjE1cHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNik7bGluZS1oZWlnaHQ6MS43NTttYXJnaW4tYm90dG9tOjEwcHh9XG4uZmN0YS1zdWIye2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpO2xpbmUtaGVpZ2h0OjEuNzttYXJnaW4tYm90dG9tOjQwcHh9XG4uZmN0YS1idG57ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6MjBweDtsZXR0ZXItc3BhY2luZzozcHg7Y29sb3I6IzAwMDt0ZXh0LWRlY29yYXRpb246bm9uZTtwYWRkaW5nOjE2cHggNTJweDtiYWNrZ3JvdW5kOnZhcigtLWdyYWQpO2JvcmRlci1yYWRpdXM6NTBweDt0cmFuc2l0aW9uOmFsbCAuM3M7Ym94LXNoYWRvdzowIDEwcHggNDBweCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4zNSk7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyOm5vbmU7Zm9udC13ZWlnaHQ6NDAwfVxuLmZjdGEtYnRuOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC00cHgpO2JveC1zaGFkb3c6MCAyMHB4IDYwcHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuNSk7Y29sb3I6IzAwMH1cbi5mY3RhLXRhZ3ttYXJnaW4tdG9wOjIwcHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6MTBweDtsZXR0ZXItc3BhY2luZzozcHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCk7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfVxuXG4vKiBFWFRFTkRFRCBGT09URVIgKi9cbi5mdHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjJmciAxZnIgMWZyIDFmcjtnYXA6NDhweDttYXJnaW4tYm90dG9tOjQ4cHh9XG4uZmItbG9nb3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O21hcmdpbi1ib3R0b206MTRweH1cbi5mYi1sb2dvIGltZ3t3aWR0aDozMHB4O2hlaWdodDozMHB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoxcHggc29saWQgcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuNCl9XG4uZmItbG9nbyBzcGFue2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjE4cHg7bGV0dGVyLXNwYWNpbmc6M3B4O2NvbG9yOiNmZmZ9XG4uZmItdGFne2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpO2xpbmUtaGVpZ2h0OjEuNzttYXJnaW4tYm90dG9tOjE4cHg7bWF4LXdpZHRoOjI0MHB4fVxuLmZiLXNvY3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHh9XG4uZnNvY3t3aWR0aDozMnB4O2hlaWdodDozMnB4O2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDUpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDgpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MTNweDt0cmFuc2l0aW9uOmFsbCAuMnM7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNil9XG4uZnNvYzpob3ZlcntiYWNrZ3JvdW5kOnJnYmEodmFyKC0tYWNjZW50LXJnYiksLjE1KTtib3JkZXItY29sb3I6cmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMyk7Y29sb3I6dmFyKC0tYWNjZW50KX1cbi5mYzIgaDR7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6MTBweDtsZXR0ZXItc3BhY2luZzoycHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpO21hcmdpbi1ib3R0b206MTZweH1cbi5mYzIgdWx7bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4fVxuLmZjMiBhe2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjYpO3RleHQtZGVjb3JhdGlvbjpub25lO3RyYW5zaXRpb246Y29sb3IgLjJzfVxuLmZjMiBhOmhvdmVye2NvbG9yOnZhcigtLWFjY2VudCl9XG4vKiBmdWxsIGxlZ2FsIGRpc2NsYWltZXIgYWJvdmUgdGhlIGNvcHlyaWdodCBsaW5lIChfUHVibGljRm9vdGVyLmNzaHRtbCAuZmRpc2MpOiB0d28gcmVhZGluZyBjb2x1bW5zIG9uIGRlc2t0b3AsIG9uZSBvbiBwaG9uZXMgKi9cbi5mZGlzY3tib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wNSk7cGFkZGluZzoyOHB4IDAgMzBweH1cbi5mZGlzYy1oe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOjEwcHg7bGV0dGVyLXNwYWNpbmc6MnB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KTttYXJnaW4tYm90dG9tOjE0cHh9XG4uZmRpc2MtYntjb2x1bW5zOjI7Y29sdW1uLWdhcDo0OHB4fVxuLmZkaXNjLWIgcHttYXJnaW46MCAwIDEycHg7Zm9udC1zaXplOjExLjVweDtsaW5lLWhlaWdodDoxLjc7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNDUpO2JyZWFrLWluc2lkZTphdm9pZDt0ZXh0LXdyYXA6cHJldHR5fVxuLmZkaXNjLWIgcCBie2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcyKTtmb250LXdlaWdodDo2MDB9XG4uZmRpc2MtYiBhe2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcyKTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtdW5kZXJsaW5lLW9mZnNldDoycHg7dHJhbnNpdGlvbjpjb2xvciAuMnN9XG4uZmRpc2MtYiBhOmhvdmVye2NvbG9yOnZhcigtLWFjY2VudCl9XG5AbWVkaWEgKG1heC13aWR0aDo3NjcuOThweCl7LmZkaXNjLWJ7Y29sdW1uczoxfX1cbi5mYm90e2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA1KTtwYWRkaW5nLXRvcDoyNHB4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC13cmFwOndyYXA7Z2FwOjEycHh9XG4uZmNvcHl7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6MTBweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KTtsZXR0ZXItc3BhY2luZzouNXB4fVxuLmZoYXNoe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjE0cHg7bGV0dGVyLXNwYWNpbmc6M3B4O2JhY2tncm91bmQ6dmFyKC0tZ3JhZCk7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNsaXA6dGV4dH1cblxuLyogTU9EQUwg4oCUIHRyLW1vZGFsLSogcHJlZml4IGF2b2lkcyBCb290c3RyYXAgY29sbGlzaW9uICovXG4udHItbW9kYWwtb3ZlcmxheXtwb3NpdGlvbjpmaXhlZDtpbnNldDowO3otaW5kZXg6NTAwO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjIwcHg7YmFja2dyb3VuZDpyZ2JhKDQsNCwxMCwuODUpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDEycHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTJweCk7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4zc31cbi50ci1tb2RhbC1vdmVybGF5Lm9wZW57b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmFsbH1cbi50ci1tb2RhbHt3aWR0aDoxMDAlO21heC13aWR0aDo0ODBweDtiYWNrZ3JvdW5kOnZhcigtLWJnMyk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4yKTtib3JkZXItcmFkaXVzOjI0cHg7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDIwcHgpIHNjYWxlKC45Nyk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzO2JveC1zaGFkb3c6MCA0MHB4IDEwMHB4IHJnYmEoMCwwLDAsLjYpLDAgMCA4MHB4IHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjA4KX1cbi50ci1tb2RhbC1vdmVybGF5Lm9wZW4gLnRyLW1vZGFse3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpfVxuLnRyLW1vZGFsLXRvcHtoZWlnaHQ6NHB4O2JhY2tncm91bmQ6dmFyKC0tZ3JhZCl9XG4udHItbW9kYWwtaGVhZHtwYWRkaW5nOjMycHggMzZweCAyNHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA4KTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufVxuLnRyLW1vZGFsLWxvZ297ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweH1cbi50ci1tb2RhbC1sb2dvIGltZ3t3aWR0aDozNnB4O2hlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoxLjVweCBzb2xpZCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC41KTtib3gtc2hhZG93OjAgMCAxMnB4IHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjIpfVxuLnRyLW1vZGFsLWxvZ28tdGV4dHtmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToxOHB4O2xldHRlci1zcGFjaW5nOjNweDtjb2xvcjojZmZmfVxuLnRyLW1vZGFsLWNsb3Nle3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCk7Zm9udC1zaXplOjE4cHg7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YWxsIC4ycztsaW5lLWhlaWdodDoxfVxuLnRyLW1vZGFsLWNsb3NlOmhvdmVye2JhY2tncm91bmQ6cmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMSk7Ym9yZGVyLWNvbG9yOnJnYmEodmFyKC0tYWNjZW50LXJnYiksLjMpO2NvbG9yOiNmZmZ9XG4udHItbW9kYWwtYm9keXtwYWRkaW5nOjI4cHggMzZweCAzNnB4fVxuLnRyLW1vZGFsLXRpdGxle2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjM0cHg7bGV0dGVyLXNwYWNpbmc6MnB4O2NvbG9yOiNmZmY7bWFyZ2luLWJvdHRvbTo2cHg7bGluZS1oZWlnaHQ6MX1cbi50ci1tb2RhbC1zdWJ7Zm9udC1zaXplOjEzcHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCk7bGluZS1oZWlnaHQ6MS42O21hcmdpbi1ib3R0b206MjhweH1cbi50ci1tb2RhbC1zdWIgc3Ryb25ne2NvbG9yOnZhcigtLWFjY2VudCk7Zm9udC13ZWlnaHQ6NjAwfVxuLnRyLWZvcm0tcm93e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MTRweDttYXJnaW4tYm90dG9tOjE0cHh9XG4udHItZm9ybS1ncm91cHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo2cHg7bWFyZ2luLWJvdHRvbToxNHB4fVxuLnRyLWZvcm0tZ3JvdXAgbGFiZWx7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6OXB4O2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzoycHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpfVxuLnRyLWZvcm0taW5wdXR7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xMik7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRpbmc6MTJweCAxNnB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtYm9keSksc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtjb2xvcjojZmZmO291dGxpbmU6bm9uZTt0cmFuc2l0aW9uOmFsbCAuMjVzO3dpZHRoOjEwMCV9XG4udHItZm9ybS1pbnB1dDo6cGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMil9XG4udHItZm9ybS1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6cmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuNSk7YmFja2dyb3VuZDpyZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4wNCk7Ym94LXNoYWRvdzowIDAgMCAzcHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMSl9XG4udHItZm9ybS1zZWxlY3R7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xMik7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRpbmc6MTJweCAxNnB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtYm9keSksc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtjb2xvcjojZmZmO291dGxpbmU6bm9uZTt0cmFuc2l0aW9uOmFsbCAuMjVzO3dpZHRoOjEwMCU7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtaW1hZ2U6dXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMicgaGVpZ2h0PSc4JyB2aWV3Qm94PScwIDAgMTIgOCclM0UlM0NwYXRoIGQ9J00xIDFsNSA1IDUtNScgc3Ryb2tlPSdyZ2JhKDI1NSwyNTUsMjU1LDAuMyknIHN0cm9rZS13aWR0aD0nMS41JyBmaWxsPSdub25lJyBzdHJva2UtbGluZWNhcD0ncm91bmQnLyUzRSUzQy9zdmclM0VcIik7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgMTRweCBjZW50ZXJ9XG4udHItZm9ybS1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOnJnYmEodmFyKC0tYWNjZW50LXJnYiksLjUpO2JveC1zaGFkb3c6MCAwIDAgM3B4IHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjEpfVxuLnRyLWZvcm0tc2VsZWN0IG9wdGlvbntiYWNrZ3JvdW5kOiMxMTE7Y29sb3I6I2ZmZn1cbi50ci1wYXNzLXdyYXB7cG9zaXRpb246cmVsYXRpdmV9XG4udHItcGFzcy10b2dnbGV7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTRweDt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MTRweDtwYWRkaW5nOjA7dHJhbnNpdGlvbjpjb2xvciAuMnN9XG4udHItcGFzcy10b2dnbGU6aG92ZXJ7Y29sb3I6I2ZmZn1cbi50ci1mb3JtLWRpdmlkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDttYXJnaW46MThweCAwfVxuLnRyLWZvcm0tZGl2aWRlcjo6YmVmb3JlLC50ci1mb3JtLWRpdmlkZXI6OmFmdGVye2NvbnRlbnQ6Jyc7ZmxleDoxO2hlaWdodDoxcHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wOCl9XG4udHItZm9ybS1kaXZpZGVyIHNwYW57Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6MTBweDtsZXR0ZXItc3BhY2luZzoycHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMik7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3doaXRlLXNwYWNlOm5vd3JhcH1cbi50ci1mb3JtLXRlcm1ze2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpO2xpbmUtaGVpZ2h0OjEuNjttYXJnaW4tYm90dG9tOjIwcHh9XG4udHItZm9ybS10ZXJtcyBhe2NvbG9yOnZhcigtLWFjY2VudCk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9XG4udHItZm9ybS10ZXJtcyBhOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9XG4udHItbW9kYWwtc3VibWl0e3dpZHRoOjEwMCU7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6MTlweDtsZXR0ZXItc3BhY2luZzozcHg7Y29sb3I6IzAwMDtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjE1cHggMjBweDtib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZDp2YXIoLS1ncmFkKTt0cmFuc2l0aW9uOmFsbCAuMjVzO2JveC1zaGFkb3c6MCA2cHggMjRweCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4zKTtmb250LXdlaWdodDo0MDB9XG4udHItbW9kYWwtc3VibWl0OmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpO2JveC1zaGFkb3c6MCAxMnB4IDM2cHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuNDUpfVxuLnRyLW1vZGFsLWxvZ2lue3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi10b3A6MThweDtmb250LXNpemU6MTNweDtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC40KX1cbi50ci1tb2RhbC1sb2dpbiBhe2NvbG9yOnZhcigtLWFjY2VudCk7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6NjAwfVxuLnRyLW1vZGFsLWxvZ2luIGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBIT01FIChJTkRFWCkgUEFHRVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udHItdGlja2Vye3dpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6dmFyKC0tYmcyKTtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7cGFkZGluZzoxMHB4IDA7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfVxuLnRyLXRpY2tlci1pbm5lcntkaXNwbGF5OmZsZXg7Z2FwOjQwcHg7d2lkdGg6bWF4LWNvbnRlbnQ7YW5pbWF0aW9uOnRyLXRpY2tlci1zY3JvbGwgNDBzIGxpbmVhciBpbmZpbml0ZX1cbi50ci10aWNrZXItaXRlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOjEwcHg7bGV0dGVyLXNwYWNpbmc6MXB4fVxuLnRyLXRpY2tlci1zeW17Y29sb3I6dmFyKC0tdGV4dDIpfVxuLnRyLXRpY2tlci11cHtjb2xvcjp2YXIoLS1ncmVlbil9XG4udHItdGlja2VyLWRue2NvbG9yOnZhcigtLXJlZCl9XG4udHItdGlja2VyLXNlcHtjb2xvcjp2YXIoLS1ib3JkZXItaCl9XG5Aa2V5ZnJhbWVzIHRyLXRpY2tlci1zY3JvbGx7ZnJvbXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX19XG4uaHAtaG93LXN0ZXBze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDQsMWZyKTtnYXA6MDtwb3NpdGlvbjpyZWxhdGl2ZX1cbi5ocC1ob3ctc3RlcHt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjAgMTZweDtwb3NpdGlvbjpyZWxhdGl2ZX1cbi5ocC1ob3ctc3RlcC1saW5le3Bvc2l0aW9uOmFic29sdXRlO3RvcDoyN3B4O2xlZnQ6Y2FsYyg1MCUgKyAzOHB4KTtyaWdodDotMTZweDtoZWlnaHQ6MXB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHZhcigtLWFjY2VudCksdHJhbnNwYXJlbnQpfVxuLmhwLXN0ZXAtbnVte3dpZHRoOjU2cHg7aGVpZ2h0OjU2cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1ncmFkKTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6MjRweDtjb2xvcjojMDAwO21hcmdpbjowIGF1dG8gMTZweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7Ym94LXNoYWRvdzowIDAgMjBweCByZ2JhKDEzOSw5MiwyNDYsMC40KX1cbi5ocC1jaGFsbGVuZ2UtY2FyZHtiYWNrZ3JvdW5kOnZhcigtLWNhcmQtYmcpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjE4cHg7cGFkZGluZzozMnB4O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMnMsdHJhbnNmb3JtIC4ycztoZWlnaHQ6MTAwJX1cbi5ocC1jaGFsbGVuZ2UtY2FyZDpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLWgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC00cHgpfVxuLmhwLWNoYWxsZW5nZS1jYXJkLmZlYXR1cmVke2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItaCl9XG4uaHAtY2hhbGxlbmdlLWNhcmQuZmVhdHVyZWQ6OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLHZhcigtLWFjY2VudDIpLHRyYW5zcGFyZW50IDUwJSk7b3BhY2l0eTouMDY7cG9pbnRlci1ldmVudHM6bm9uZX1cbi5ocC1vcmJpdC1jb250YWluZXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MjYwcHg7aGVpZ2h0OjI2MHB4O21hcmdpbjowIGF1dG99XG4uaHAtb3JiaXQtY2VudGVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3dpZHRoOjg2cHg7aGVpZ2h0Ojg2cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1ncmFkKTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6MjBweDtjb2xvcjojMDAwO2JveC1zaGFkb3c6MCAwIDQwcHggcmdiYSgxMzksOTIsMjQ2LDAuNSk7ei1pbmRleDoyfVxuLmhwLW9yYml0LXJpbmd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTtib3JkZXI6MXB4IGRhc2hlZCB2YXIoLS1ib3JkZXItaCk7Ym9yZGVyLXJhZGl1czo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpfVxuLmhwLW9yYml0LXJpbmctMXt3aWR0aDoxNTRweDtoZWlnaHQ6MTU0cHg7YW5pbWF0aW9uOmhwLW9yYml0LXNwaW4gOHMgbGluZWFyIGluZmluaXRlfVxuLmhwLW9yYml0LXJpbmctMnt3aWR0aDoyNDBweDtoZWlnaHQ6MjQwcHg7YW5pbWF0aW9uOmhwLW9yYml0LXNwaW4gMTRzIGxpbmVhciBpbmZpbml0ZSByZXZlcnNlfVxuLmhwLW9yYml0LWRvdHtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTt0b3A6LTVweDtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtib3gtc2hhZG93OjAgMCA4cHggdmFyKC0tYWNjZW50KX1cbkBrZXlmcmFtZXMgaHAtb3JiaXQtc3Bpbntmcm9te3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKSByb3RhdGUoMGRlZyl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpIHJvdGF0ZSgzNjBkZWcpfX1cbi5ocC1sYi1yb3d7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczozMnB4IDFmciA4MHB4IDgwcHg7Z2FwOjEycHg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MTBweCAxNHB4O2JvcmRlci1yYWRpdXM6MTBweDtiYWNrZ3JvdW5kOnZhcigtLXcwNSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO21hcmdpbi1ib3R0b206NnB4O3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4yc31cbi5ocC1sYi1yb3c6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1oKX1cbi5ocC1sYi1yb3cudG9we2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItaCk7YmFja2dyb3VuZDpyZ2JhKDEzOSw5MiwyNDYsMC4wNyl9XG5AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXtcbiAgLmhwLWhvdy1zdGVwc3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcn1cbiAgLmhwLWhvdy1zdGVwLWxpbmV7ZGlzcGxheTpub25lfVxuICAuaHAtb3JiaXQtY29udGFpbmVye3dpZHRoOjIwMHB4O2hlaWdodDoyMDBweH1cbiAgLmhwLW9yYml0LXJpbmctMnt3aWR0aDoxODRweDtoZWlnaHQ6MTg0cHh9XG4gIC5ocC1vcmJpdC1jZW50ZXJ7d2lkdGg6NjhweDtoZWlnaHQ6NjhweDtmb250LXNpemU6MTZweH1cbn1cbkBtZWRpYShtYXgtd2lkdGg6NDc5cHgpey5ocC1ob3ctc3RlcHN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn19XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUExBVEZPUk0gUEFHRVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucGwtaGVyb3twYWRkaW5nOjEzMHB4IDAgNjBweDt0ZXh0LWFsaWduOmNlbnRlcn1cbi5wbC1oZXJvLXRpdGxle2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOmNsYW1wKDYwcHgsMTB2dywxMTBweCk7bGluZS1oZWlnaHQ6Ljg4O2xldHRlci1zcGFjaW5nOjNweDtjb2xvcjp2YXIoLS10ZXh0KTttYXJnaW4tYm90dG9tOjE2cHh9XG4ucGwtaGVyby10aXRsZSBlbXtmb250LXN0eWxlOm5vcm1hbDtiYWNrZ3JvdW5kOnZhcigtLWdyYWQpOy13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jbGlwOnRleHR9XG4ucGwtaW50cm8tZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjY0cHg7YWxpZ24taXRlbXM6c3RhcnR9XG4ucGwtaW50cm8tcXVvdGV7YmFja2dyb3VuZDp2YXIoLS1jYXJkLWJnKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1oKTtib3JkZXItcmFkaXVzOjE2cHg7cGFkZGluZzoyOHB4O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjttYXJnaW4tdG9wOjI4cHh9XG4ucGwtaW50cm8tcXVvdGU6OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2hlaWdodDozcHg7YmFja2dyb3VuZDp2YXIoLS1ncmFkKX1cbi5wbC1pbnRyby1ibG9ja3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTZweDtwYWRkaW5nOjIwcHg7Ym9yZGVyLXJhZGl1czoxNHB4O2JhY2tncm91bmQ6dmFyKC0tdzA1KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7bWFyZ2luLWJvdHRvbToxNnB4O3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4ycyx0cmFuc2Zvcm0gLjJzfVxuLnBsLWludHJvLWJsb2NrOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItaCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoNHB4KX1cbi5wbC1pbnRyby1ibG9jay1pY29ue3dpZHRoOjQ2cHg7aGVpZ2h0OjQ2cHg7Ym9yZGVyLXJhZGl1czoxMnB4O2JhY2tncm91bmQ6dmFyKC0tZ3JhZCk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToyMHB4O2ZsZXgtc2hyaW5rOjB9XG4ucGwtaW50cm8tYmxvY2stdGl0bGV7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6MTlweDtsZXR0ZXItc3BhY2luZzoxcHg7Y29sb3I6dmFyKC0tdGV4dCk7bWFyZ2luLWJvdHRvbTo2cHh9XG4ucGwtaW50cm8tYmxvY2stZGVzY3tmb250LXNpemU6MTNweDtjb2xvcjp2YXIoLS10ZXh0Myk7bGluZS1oZWlnaHQ6MS43fVxuLnBsLWZlYXQtZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLDFmcik7Z2FwOjIwcHh9XG4ucGwtZmN7YmFja2dyb3VuZDp2YXIoLS1jYXJkLWJnKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxNnB4O3BhZGRpbmc6MjhweCAyNHB4O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMnMsdHJhbnNmb3JtIC4ycztjdXJzb3I6ZGVmYXVsdH1cbi5wbC1mYzpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLWgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0zcHgpfVxuLnBsLWZjLWJhcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtoZWlnaHQ6M3B4O2JhY2tncm91bmQ6dmFyKC0tZ3JhZCk7dHJhbnNmb3JtOnNjYWxlWCgwKTt0cmFuc2Zvcm0tb3JpZ2luOmxlZnQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1cyBlYXNlfVxuLnBsLWZjOmhvdmVyIC5wbC1mYy1iYXJ7dHJhbnNmb3JtOnNjYWxlWCgxKX1cbi5wbC1mYy1pY29ue3dpZHRoOjQ0cHg7aGVpZ2h0OjQ0cHg7Ym9yZGVyLXJhZGl1czoxMnB4O2JhY2tncm91bmQ6dmFyKC0tdzA1KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToyMHB4O21hcmdpbi1ib3R0b206MThweH1cbi5wbC1mYy1udW17Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6OXB4O2xldHRlci1zcGFjaW5nOjJweDtjb2xvcjp2YXIoLS10ZXh0Myk7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO21hcmdpbi1ib3R0b206NnB4fVxuLnBsLWZjLXRpdGxle2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjIwcHg7bGV0dGVyLXNwYWNpbmc6MXB4O2NvbG9yOnZhcigtLXRleHQpO21hcmdpbi1ib3R0b206OHB4fVxuLnBsLWZjLWRlc2N7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dDIpO2xpbmUtaGVpZ2h0OjEuNjttYXJnaW4tYm90dG9tOjEwcHh9XG4ucGwtZmMtZGV0YWlse2ZvbnQtc2l6ZToxMXB4O2NvbG9yOnZhcigtLXRleHQzKTtsaW5lLWhlaWdodDoxLjZ9XG4ucGwtc3RlcHN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCwxZnIpO2dhcDowfVxuLnBsLXN0ZXB7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzowIDE4cHg7cG9zaXRpb246cmVsYXRpdmV9XG4ucGwtc3RlcDpub3QoOmxhc3QtY2hpbGQpOjphZnRlcntjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoyN3B4O2xlZnQ6Y2FsYyg1MCUgKyAzMnB4KTtyaWdodDotMThweDtoZWlnaHQ6MnB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHZhcigtLWFjY2VudCksdHJhbnNwYXJlbnQpfVxuLnBsLXN0ZXAtbnt3aWR0aDo1NnB4O2hlaWdodDo1NnB4O2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToyMnB4O2NvbG9yOiNmZmY7bWFyZ2luOjAgYXV0byAyMHB4O2JvcmRlcjoycHggc29saWQ7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfVxuLnBsLXN0ZXAtdGl0bGV7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6MTlweDtsZXR0ZXItc3BhY2luZzoxcHg7Y29sb3I6dmFyKC0tdGV4dCk7bWFyZ2luLWJvdHRvbToxMHB4fVxuLnBsLXN0ZXAtZGVzY3tmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS10ZXh0Myk7bGluZS1oZWlnaHQ6MS44fVxuQG1lZGlhKG1heC13aWR0aDo5OTFweCl7LnBsLWludHJvLWdyaWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtnYXA6NDBweH19XG5AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXtcbiAgLnBsLWZlYXQtZ3JpZHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcn1cbiAgLnBsLXN0ZXBze2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyfVxuICAucGwtc3RlcDpub3QoOmxhc3QtY2hpbGQpOjphZnRlcntkaXNwbGF5Om5vbmV9XG59XG5AbWVkaWEobWF4LXdpZHRoOjQ3OXB4KXtcbiAgLnBsLWZlYXQtZ3JpZHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfVxuICAucGwtc3RlcHN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBHQU1JRklFRCBUUkFESU5HIFBBR0VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmNoLWhlcm97cGFkZGluZzoxMzBweCAwIDYwcHg7dGV4dC1hbGlnbjpjZW50ZXJ9XG4uY2gtaGVyby10aXRsZXtmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZTpjbGFtcCg1NnB4LDEwdncsMTEwcHgpO2xpbmUtaGVpZ2h0Oi44ODtsZXR0ZXItc3BhY2luZzozcHg7Y29sb3I6dmFyKC0tdGV4dCk7bWFyZ2luLWJvdHRvbToxNnB4fVxuLmNoLWhlcm8tdGl0bGUgZW17Zm9udC1zdHlsZTpub3JtYWw7YmFja2dyb3VuZDp2YXIoLS1ncmFkKTstd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY2xpcDp0ZXh0fVxuLmNoLWNoYWwtZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjI0cHh9XG4uY2gtY2FyZHtiYWNrZ3JvdW5kOnZhcigtLWNhcmQtYmcpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjIwcHg7cGFkZGluZzozNnB4O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtoZWlnaHQ6MTAwJX1cbi5jaC1jYXJkLmZlYXR1cmVke2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItaCl9XG4uY2gtY2FyZC5mZWF0dXJlZDo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNDVkZWcsdmFyKC0tYWNjZW50MiksdHJhbnNwYXJlbnQgNTAlKTtvcGFjaXR5Oi4wNjtwb2ludGVyLWV2ZW50czpub25lfVxuLmNoLWNhcmQtdG9we3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2hlaWdodDozcHg7YmFja2dyb3VuZDp2YXIoLS1ncmFkKX1cbi5jaC1jaGVja3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLXRleHQyKTttYXJnaW4tYm90dG9tOjEwcHh9XG4uY2gtY2hlY2sgc3Zne2ZsZXgtc2hyaW5rOjB9XG4uY2gtY2hlY2suZGlte2NvbG9yOnZhcigtLXRleHQzKX1cbi5jaC1vcmItd3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoyODBweDtoZWlnaHQ6MjgwcHg7bWFyZ2luOjAgYXV0b31cbi5jaC1vcmIxe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7d2lkdGg6MTYwcHg7aGVpZ2h0OjE2MHB4O2JvcmRlcjoxcHggZGFzaGVkIHZhcigtLWJvcmRlci1oKTtib3JkZXItcmFkaXVzOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7YW5pbWF0aW9uOmNoLXNwaW4gOHMgbGluZWFyIGluZmluaXRlfVxuLmNoLW9yYjJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt3aWR0aDoyNjBweDtoZWlnaHQ6MjYwcHg7Ym9yZGVyOjFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWgpO2JvcmRlci1yYWRpdXM6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTthbmltYXRpb246Y2gtc3BpbiAxNHMgbGluZWFyIGluZmluaXRlIHJldmVyc2V9XG4uY2gtb3JiLWRvdHtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTt0b3A6LTVweDtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtib3gtc2hhZG93OjAgMCAxMHB4IHZhcigtLWFjY2VudCl9XG4uY2gtb3JiLWRvdC1nb2xke2JhY2tncm91bmQ6dmFyKC0tZ29sZCk7Ym94LXNoYWRvdzowIDAgMTBweCB2YXIoLS1nb2xkKX1cbi5jaC1vcmItY3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt3aWR0aDo5MHB4O2hlaWdodDo5MHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tZ3JhZCk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt6LWluZGV4OjI7Ym94LXNoYWRvdzowIDAgNDBweCByZ2JhKDEzOSw5MiwyNDYsMC41KX1cbi5jaC1vcmItYy1sYWJlbHtmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToyMHB4O2NvbG9yOiMwMDA7bGV0dGVyLXNwYWNpbmc6MXB4O2xpbmUtaGVpZ2h0OjF9XG4uY2gtb3JiLWMtc3Vie2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOjhweDtsZXR0ZXItc3BhY2luZzoycHg7Y29sb3I6cmdiYSgwLDAsMCwwLjYpO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTttYXJnaW4tdG9wOjRweH1cbi5jaC10b2stZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjE0cHh9XG4uY2gtdHN0YXR7YmFja2dyb3VuZDp2YXIoLS13MDUpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjE0cHg7cGFkZGluZzoyMHB4O3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn1cbi5jaC10c3RhdDo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7aGVpZ2h0OjJweDtiYWNrZ3JvdW5kOnZhcigtLWdyYWQpfVxuLmNoLXRzdGF0LXZhbHVle2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjI4cHg7YmFja2dyb3VuZDp2YXIoLS1ncmFkKTstd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY2xpcDp0ZXh0O21hcmdpbi1ib3R0b206NHB4fVxuLmNoLXRzdGF0LWxhYmVse2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOjhweDtsZXR0ZXItc3BhY2luZzoycHg7Y29sb3I6dmFyKC0tdGV4dDMpO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX1cbkBrZXlmcmFtZXMgY2gtc3Bpbntmcm9te3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKSByb3RhdGUoMGRlZyl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpIHJvdGF0ZSgzNjBkZWcpfX1cbi5jaC1nYW0tZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LDFmcik7Z2FwOjIwcHh9XG4uY2gtZ2N7YmFja2dyb3VuZDp2YXIoLS1jYXJkLWJnKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxNnB4O3BhZGRpbmc6MjhweCAyMHB4O3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMnMsdHJhbnNmb3JtIC4ycztjdXJzb3I6ZGVmYXVsdH1cbi5jaC1nYzpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLWgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC00cHgpfVxuLmNoLWdjLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNDVkZWcsdmFyKC0tYWNjZW50MiksdHJhbnNwYXJlbnQpO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzO3BvaW50ZXItZXZlbnRzOm5vbmV9XG4uY2gtZ2M6aG92ZXIgLmNoLWdjLW92ZXJsYXl7b3BhY2l0eTouMX1cbi5jaC1sYi1yb3d7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczozMnB4IDFmciA2MHB4IDgwcHggODBweDtnYXA6MTBweDthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzoxMHB4IDE0cHg7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQ6dmFyKC0tdzA1KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7bWFyZ2luLWJvdHRvbTo2cHg7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjJzfVxuLmNoLWxiLXJvdzpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLWgpfVxuLmNoLWxiLXJvdy5nb2xke2JvcmRlci1jb2xvcjpyZ2JhKDI0NSwxOTcsMjQsMC40KTtiYWNrZ3JvdW5kOnJnYmEoMjQ1LDE5NywyNCwwLjA2KX1cbi5jaC1sYi1yb3cuc2lsdmVye2JvcmRlci1jb2xvcjpyZ2JhKDIwMCwyMDAsMjAwLDAuMyk7YmFja2dyb3VuZDpyZ2JhKDIwMCwyMDAsMjAwLDAuMDQpfVxuLmNoLWxiLXJvdy5icm9uemV7Ym9yZGVyLWNvbG9yOnJnYmEoMjA1LDEyNyw1MCwwLjMpO2JhY2tncm91bmQ6cmdiYSgyMDUsMTI3LDUwLDAuMDQpfVxuLmNoLWxiLWhlYWRlcntkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjMycHggMWZyIDYwcHggODBweCA4MHB4O2dhcDoxMHB4O3BhZGRpbmc6NnB4IDE0cHg7bWFyZ2luLWJvdHRvbTo2cHh9XG4uY2gtbGItdHJhZGVze2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0tdGV4dDIpfVxuLmNoLWxiLXNpbHZlcntmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToxNnB4O2NvbG9yOiNDMEMwQzB9XG4uY2gtbGItYnJvbnple2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjE2cHg7Y29sb3I6I0NEN0YzMn1cbi5jaC1jZXJ0e2JhY2tncm91bmQ6dmFyKC0tY2FyZC1iZyk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItaCk7Ym9yZGVyLXJhZGl1czoyMHB4O3BhZGRpbmc6MzBweDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59XG4uY2gtY2VydDo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7aGVpZ2h0OjNweDtiYWNrZ3JvdW5kOnZhcigtLWdyYWQpfVxuLmNoLWNlcnQtYmFkZ2V7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjVweCAxMnB4O2JvcmRlci1yYWRpdXM6MjBweDtiYWNrZ3JvdW5kOnJnYmEoMzQsMTk3LDk0LDAuMTIpO2JvcmRlcjoxcHggc29saWQgcmdiYSgzNCwxOTcsOTQsMC4zKTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTo5cHg7bGV0dGVyLXNwYWNpbmc6MnB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjp2YXIoLS1ncmVlbil9XG4uY2gtY2VydC1sYWJlbHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTo5cHg7bGV0dGVyLXNwYWNpbmc6M3B4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjp2YXIoLS10ZXh0Myk7bWFyZ2luLWJvdHRvbToyMHB4fVxuLmNoLWNlcnQtZGF0ZXtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZToxMHB4O2xldHRlci1zcGFjaW5nOjJweDtjb2xvcjp2YXIoLS10ZXh0Myk7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO21hcmdpbi1ib3R0b206MTBweH1cbi5jaC1jZXJ0LXRyYWRlcntmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZToyOHB4O2xldHRlci1zcGFjaW5nOjJweDtjb2xvcjp2YXIoLS10ZXh0KTttYXJnaW4tYm90dG9tOjZweH1cbi5jaC1jZXJ0LWFtb3VudHtmb250LWZhbWlseTp2YXIoLS1mb250LWRpc3BsYXkpO2ZvbnQtc2l6ZTo1NnB4O2xldHRlci1zcGFjaW5nOjFweDtiYWNrZ3JvdW5kOnZhcigtLWdyYWQpOy13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jbGlwOnRleHQ7bGluZS1oZWlnaHQ6MTttYXJnaW4tYm90dG9tOjE2cHh9XG4uY2gtY2VydC1tZXRhe2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmciAxZnI7Z2FwOjEwcHg7cGFkZGluZy10b3A6MThweDtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO21hcmdpbi1ib3R0b206MjBweH1cbi5jaC1jZXJ0LW1ldGEtaXRlbXt0ZXh0LWFsaWduOmNlbnRlcn1cbi5jaC1jZXJ0LW1ldGEtbGFiZWx7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6OHB4O2xldHRlci1zcGFjaW5nOjEuNXB4O2NvbG9yOnZhcigtLXRleHQzKTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bWFyZ2luLWJvdHRvbTo0cHh9XG4uY2gtY2VydC1tZXRhLXZhbHVle2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjE0cHg7bGV0dGVyLXNwYWNpbmc6MXB4O2NvbG9yOnZhcigtLXRleHQpfVxuLmNoLWNlcnQtbWV0YS12YWx1ZS5ncmVlbntjb2xvcjp2YXIoLS1ncmVlbil9XG4uY2gtY2VydC1zdGF0c3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnIgMWZyO2dhcDoxMHB4O3BhZGRpbmctdG9wOjE2cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyKTttYXJnaW4tYm90dG9tOjIycHg7dGV4dC1hbGlnbjpjZW50ZXJ9XG4uY2gtY2VydC1zdGF0LXZhbHVle2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjIycHg7YmFja2dyb3VuZDp2YXIoLS1ncmFkKTstd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY2xpcDp0ZXh0fVxuLmNoLWNlcnQtc3RhdC1sYWJlbHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTo4cHg7bGV0dGVyLXNwYWNpbmc6MS41cHg7Y29sb3I6dmFyKC0tdGV4dDMpO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTttYXJnaW4tdG9wOjJweH1cbkBtZWRpYShtYXgtd2lkdGg6OTkxcHgpe1xuICAuY2gtY2hhbC1ncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9XG4gIC5jaC1nYW0tZ3JpZHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcn1cbiAgLmNoLWxiLXJvdywuY2gtbGItaGVhZGVye2dyaWQtdGVtcGxhdGUtY29sdW1uczoyOHB4IDFmciA2MHB4IDcwcHg7Zm9udC1zaXplOjExcHh9XG4gIC5jaC1sYi1yb3cgLmNvbC10cmFkZXN7ZGlzcGxheTpub25lfVxufVxuQG1lZGlhKG1heC13aWR0aDo3NjdweCl7XG4gIC5jaC1nYW0tZ3JpZHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcn1cbiAgLmNoLW9yYi13cmFwe3dpZHRoOjIyMHB4O2hlaWdodDoyMjBweH1cbiAgLmNoLW9yYjJ7d2lkdGg6MjEwcHg7aGVpZ2h0OjIxMHB4fVxufVxuQG1lZGlhKG1heC13aWR0aDo0NzlweCl7LmNoLWdhbS1ncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9fVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBBUlRORVJTSElQUyBQQUdFXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5hZi1oZXJve3BhZGRpbmc6MTMwcHggMCA4MHB4O3RleHQtYWxpZ246Y2VudGVyfVxuLmFmLWhlcm8tdGl0bGV7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6Y2xhbXAoNThweCwxMHZ3LDExMHB4KTtsaW5lLWhlaWdodDouODg7bGV0dGVyLXNwYWNpbmc6M3B4O2NvbG9yOnZhcigtLXRleHQpO21hcmdpbi1ib3R0b206MTZweH1cbi5hZi1oZXJvLXRpdGxlIGVte2ZvbnQtc3R5bGU6bm9ybWFsO2JhY2tncm91bmQ6dmFyKC0tZ3JhZCk7LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDstd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNsaXA6dGV4dH1cbi5hZi1zdGVwLXRpdGxle2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjIwcHg7bGV0dGVyLXNwYWNpbmc6MXB4O2NvbG9yOnZhcigtLXRleHQpO21hcmdpbi1ib3R0b206MTBweH1cbi5hZi1zdGVwLWRlc2N7Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tdGV4dDMpO2xpbmUtaGVpZ2h0OjEuOH1cbi5hZi10aWVyLWhlYWRlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6ZmxleC1zdGFydDttYXJnaW4tYm90dG9tOjIwcHh9XG4uYWYtdGllci1sYWJlbHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTo5cHg7bGV0dGVyLXNwYWNpbmc6MnB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjp2YXIoLS10ZXh0Myk7bWFyZ2luLWJvdHRvbTo4cHh9XG4uYWYtdGllci1sYWJlbC1hY2NlbnR7Y29sb3I6dmFyKC0tYWNjZW50KX1cbi5hZi10aWVyLXJhdGV7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1kaXNwbGF5KTtmb250LXNpemU6NTBweDtsZXR0ZXItc3BhY2luZzoxcHg7YmFja2dyb3VuZDp2YXIoLS1ncmFkKTstd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0Oy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY2xpcDp0ZXh0O2xpbmUtaGVpZ2h0OjF9XG4uYWYtdGllci1yYXRlLXN1Yntmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTo5cHg7bGV0dGVyLXNwYWNpbmc6MXB4O2NvbG9yOnZhcigtLXRleHQzKTttYXJnaW4tdG9wOjZweH1cbi5hZi10aWVyLWRlc2N7Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tdGV4dDIpO2xpbmUtaGVpZ2h0OjEuNzttYXJnaW4tYm90dG9tOjI0cHh9XG4uYWYtdGllci1jaGVja3N7bWFyZ2luLWJvdHRvbToyOHB4fVxuLmFmLXRpZXItYnRue3dpZHRoOjEwMCU7ZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjEycHggMjBweDt0ZXh0LWRlY29yYXRpb246bm9uZX1cbi5hZi1jdGEtc2VjdGlvbntwYWRkaW5nOjEwMHB4IDA7YmFja2dyb3VuZDp2YXIoLS1iZzIpO3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn1cbi5hZi10aWVyLWdyaWR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywxZnIpO2dhcDoyMHB4fVxuLmFmLXRpZXJ7YmFja2dyb3VuZDp2YXIoLS1jYXJkLWJnKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoyMHB4O3BhZGRpbmc6MzJweDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OjEwMCU7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjJzLHRyYW5zZm9ybSAuMnN9XG4uYWYtdGllcjpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLWgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC00cHgpfVxuLmFmLXRpZXIuZmVhdHVyZWR7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1oKX1cbi5hZi10aWVyLXRvcHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtoZWlnaHQ6M3B4O2JhY2tncm91bmQ6dmFyKC0tZ3JhZCl9XG4uYWYtY2hlY2t7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtmb250LXNpemU6MTNweDtjb2xvcjp2YXIoLS10ZXh0Mik7bWFyZ2luLWJvdHRvbToxMHB4fVxuLmFmLWNoZWNrIHN2Z3tmbGV4LXNocmluazowfVxuLmFmLXN0ZXBze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDMsMWZyKTtnYXA6MjBweH1cbi5hZi1zdGVwe3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MzJweCAyMHB4O2JhY2tncm91bmQ6dmFyKC0tdzA1KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxNnB4O3Bvc2l0aW9uOnJlbGF0aXZlfVxuLmFmLXN0ZXAtbnt3aWR0aDo1MnB4O2hlaWdodDo1MnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tZ3JhZCk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZGlzcGxheSk7Zm9udC1zaXplOjIycHg7Y29sb3I6IzAwMDttYXJnaW46MCBhdXRvIDE4cHh9XG4uYWYtc3RhdHt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjIwcHg7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpfVxuLmFmLXN0YXQ6bGFzdC1jaGlsZHtib3JkZXItcmlnaHQ6bm9uZX1cbkBtZWRpYShtYXgtd2lkdGg6OTkxcHgpey5hZi10aWVyLWdyaWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn19XG5AbWVkaWEobWF4LXdpZHRoOjc2N3B4KXsuYWYtc3RlcHN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn19XG5cbi8qIFJFU1BPTlNJVkUg4oCUIG1hcmtldGluZyB3aWRnZXRzICovXG5AbWVkaWEobWF4LXdpZHRoOjkwMHB4KXtcbiAgLmludHJvLWdyaWQsLmhvdy1pbnRybywuY2hhbC1pbnRybywudG9rLWxheW91dCwuZ2FtLWludHJvLC5zcC1sYXlvdXQsLmZ0e2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjQwcHh9XG4gIC5mZWF0LWdyaWQsLmdhbS1ncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyfVxuICAuc3RlcHN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjMycHh9XG4gIC5zdGVwczo6YmVmb3Jle2Rpc3BsYXk6bm9uZX1cbiAgLmNoYWwtZ3JpZHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfVxuICAudHItZm9ybS1yb3d7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn1cbiAgLnBheW91dC1zdGF0c3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcn1cbn1cbkBtZWRpYShtYXgtd2lkdGg6NjAwcHgpe1xuICAuaGVyby1oMXtmb250LXNpemU6Y2xhbXAoNjBweCwxNXZ3LDEwMHB4KX1cbiAgLnNoMntmb250LXNpemU6Y2xhbXAoNDBweCwxMHZ3LDYwcHgpfVxuICAuc2Vje3BhZGRpbmc6NzBweCAyMHB4fVxuICAuY2N7cGFkZGluZzoyOHB4IDIycHh9XG4gIC5oZXJvLXN0YXRze2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtib3JkZXItcmFkaXVzOjB9XG4gIC5oc3RhdHtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wOCl9XG4gIC5oc3RhdDpsYXN0LWNoaWxke2JvcmRlci1ib3R0b206bm9uZX1cbiAgLmZlYXQtZ3JpZCwuZ2FtLWdyaWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn1cbiAgLmZ0e2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyfVxufVxuXG5cbi8qIOKVkOKVkCBIb21lIGhlcm8gY2hhaW4tbWVzaCBhbmltYXRpb24gKHBvcnRlZCBmcm9tIHRoZSBDbGF1ZGUgRGVzaWduIGFydGlmYWN0IGM0MjFkOTUwKSDilZDilZBcbiAgIE1hcmt1cCBsaXZlcyBpbiBBcmVhcy9QdWJsaWMvVmlld3MvRnJvbnQvX0hlcm9DaGFpbk1lc2guY3NodG1sIChpbmxpbmUgc3R5bGVzIGtlcHRcbiAgIHZlcmJhdGltIGZyb20gdGhlIGRlc2lnbiBwZXIgdGhlIG1vY2t1cC1wb3J0IHJ1bGUpLiBUaGVtZS1hd2FyZSB2aWEgLS1hY2NlbnQtcmdiIC9cbiAgIC0tYWNjZW50MywgYWRkZWQgdG8gdGhlIHRocmVlIHRoZW1lIGJsb2NrcyBiZWxvdy4gKi9cbjpyb290IHsgLS1hY2NlbnQtcmdiOiAxMzksIDkyLCAyNDY7IC0tYWNjZW50MzogI0E3OEJGQTsgfVxuaHRtbFtkYXRhLXRoZW1lPVwiYmxhY2tcIl0geyAtLWFjY2VudC1yZ2I6IDIxNywgMjYsIDE3MzsgLS1hY2NlbnQzOiAjRTgzREMwOyB9XG5odG1sW2RhdGEtdGhlbWU9XCJibHVlXCJdIHsgLS1hY2NlbnQtcmdiOiA3OSwgMTQyLCAyNDc7IC0tYWNjZW50MzogIzkzQkJGRDsgfVxuXG4udHItbWVzaC13cmFwIHtcbiAgLyogVGhlIDEyMDDDlzc2MCBkZXNpZ24gY2FudmFzIGhhcyBkZWFkIG1hcmdpbnM7IHNob3cgb25seSB0aGUgY29udGVudCBiYW5kXG4gICAgIChzb3VyY2Ugcm93cyAxNDDihpI2MTAgPSA0NzBweCkgYW5kIHJlbmRlciBpdCBhdCA4MCUgb2YgdGhlIGRlc2lnbiBzaXplLiAqL1xuICAtLW1lc2gtczogLjg7XG4gIC0tbWVzaC1jcm9wLXRvcDogMTQwcHg7XG4gIC0tbWVzaC12aXNpYmxlOiA0NzBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogMTAwJTsgbWF4LXdpZHRoOiBjYWxjKDEyMDBweCAqIHZhcigtLW1lc2gtcykpO1xuICBtYXJnaW46IDEwcHggYXV0byAwOyBoZWlnaHQ6IGNhbGModmFyKC0tbWVzaC12aXNpYmxlKSAqIHZhcigtLW1lc2gtcykpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyNDlweCkgeyAudHItbWVzaC13cmFwIHsgLS1tZXNoLXM6IC42NDsgfSB9XG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpICB7IC50ci1tZXNoLXdyYXAgeyAtLW1lc2gtczogLjUwOyB9IH1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkgIHsgLnRyLW1lc2gtd3JhcCB7IC0tbWVzaC1zOiAuMzY7IH0gfVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSAgeyAudHItbWVzaC13cmFwIHsgLS1tZXNoLXM6IC4yNDsgfSB9XG4udHItbWVzaCB7XG4gIC0tY3ljbGU6IDE2cztcbiAgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiA1MCU7IHRvcDogMDsgd2lkdGg6IDEyMDBweDsgaGVpZ2h0OiA3NjBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgY2FsYyh2YXIoLS1tZXNoLWNyb3AtdG9wKSAqIHZhcigtLW1lc2gtcykgKiAtMSkpIHNjYWxlKHZhcigtLW1lc2gtcykpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7IC50ci1tZXNoLCAudHItbWVzaCAqIHsgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBtZXNoIGtleWZyYW1lcyAodmVyYmF0aW0gZnJvbSB0aGUgZGVzaWduKSAqL1xuQGtleWZyYW1lcyByaW5nU3RlcCB7IDAlLDIwJXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfSAyNSUsNDUle3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfSA1MCUsNzAle3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0gNzUlLDk1JXt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9IDEwMCV7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfSB9XG5Aa2V5ZnJhbWVzIHdhdmUgeyAwJXt0cmFuc2Zvcm06c2NhbGUoLjI1KTtvcGFjaXR5Oi43fSAxMDAle3RyYW5zZm9ybTpzY2FsZSgxLjE1KTtvcGFjaXR5OjB9IH1cbkBrZXlmcmFtZXMgcHVsc2VQYXRoIHsgMCV7b2Zmc2V0LWRpc3RhbmNlOjAlO29wYWNpdHk6MH0gMS41JXtvcGFjaXR5OjF9IDkle29mZnNldC1kaXN0YW5jZToxMDAlO29wYWNpdHk6MX0gMTAuNSUsMTAwJXtvZmZzZXQtZGlzdGFuY2U6MTAwJTtvcGFjaXR5OjB9IH1cbkBrZXlmcmFtZXMgdG9rZW5CYWNrIHsgMCUsMyV7b2Zmc2V0LWRpc3RhbmNlOjEwMCU7b3BhY2l0eTowfSA0LjUle29wYWNpdHk6MX0gMTcle29mZnNldC1kaXN0YW5jZTowJTtvcGFjaXR5OjF9IDE4LjUlLDEwMCV7b2Zmc2V0LWRpc3RhbmNlOjAlO29wYWNpdHk6MH0gfVxuQGtleWZyYW1lcyB0b2tlbkJ1cnN0IHsgMCUsMTYuNSV7dHJhbnNmb3JtOnNjYWxlKC43Mik7b3BhY2l0eTowfSAxNyV7dHJhbnNmb3JtOnNjYWxlKC43Mik7b3BhY2l0eTouOTV9IDI5JSwxMDAle3RyYW5zZm9ybTpzY2FsZSgxLjUpO29wYWNpdHk6MH0gfVxuQGtleWZyYW1lcyBzdGFyc09yYml0IHsgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cbkBrZXlmcmFtZXMgc3RhcnNPcmJpdEludiB7IHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoLTM2MGRlZyk7IH0gfVxuQGtleWZyYW1lcyBub2RlR2xvdyB7IDAlLDguNSV7b3BhY2l0eTouNTU7Ym94LXNoYWRvdzowIDAgMCAwIHJnYmEodmFyKC0tYWNjZW50LXJnYiksMCl9IDEwJXtvcGFjaXR5OjE7Ym94LXNoYWRvdzowIDAgMjhweCA4cHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuNzUpLDAgMCA2MHB4IDIwcHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuMyl9IDIyJXtvcGFjaXR5OjE7Ym94LXNoYWRvdzowIDAgMjJweCA2cHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwuNiksMCAwIDUwcHggMTZweCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC4yMil9IDMwJSwxMDAle29wYWNpdHk6LjU1O2JveC1zaGFkb3c6MCAwIDAgMCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLDApfSB9XG5Aa2V5ZnJhbWVzIGxpbmVMaXZlIHsgMCUsOC41JXtvcGFjaXR5Oi42NX0gMTAlLDIyJXtvcGFjaXR5OjF9IDMwJSwxMDAle29wYWNpdHk6LjY1fSB9XG5Aa2V5ZnJhbWVzIHRpdGxlTGl2ZSB7IDAlLDguNSV7b3BhY2l0eTouNDt0ZXh0LXNoYWRvdzpub25lfSAxMCUsMzAle29wYWNpdHk6MTt0ZXh0LXNoYWRvdzowIDAgNnB4IHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjkpLCAwIDAgMThweCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC41NSksIDAgMCA0MHB4IHJnYmEodmFyKC0tYWNjZW50LXJnYiksLjMpfSAzNiUsMTAwJXtvcGFjaXR5Oi40O3RleHQtc2hhZG93Om5vbmV9IH1cbkBrZXlmcmFtZXMgY2hhcnREcmF3IHsgMCUsMTIle3N0cm9rZS1kYXNob2Zmc2V0OjMwMH0gMjYlLDEwMCV7c3Ryb2tlLWRhc2hvZmZzZXQ6MH0gfVxuQGtleWZyYW1lcyBjaGFydEZpbGwgeyAwJSwxMiV7b3BhY2l0eTowfSAyNiUsMTAwJXtvcGFjaXR5OjF9IH1cbkBrZXlmcmFtZXMgY2hhcnREb3QgeyAwJSwyNSV7b3BhY2l0eTowfSAyNiUsMTAwJXtvcGFjaXR5OjF9IH1cbkBrZXlmcmFtZXMgY2IwIHsgMCUsMTAuOTkle3k6MTkuN3B4O2hlaWdodDoxLjJweDtvcGFjaXR5OjB9IDExLjAwJXt5OjE5LjdweDtoZWlnaHQ6MS4ycHg7b3BhY2l0eToxfSAxMS40MyV7eToxOS43cHg7aGVpZ2h0OjIuM3B4O29wYWNpdHk6MX0gMTEuODcle3k6MTcuNHB4O2hlaWdodDoyLjNweDtvcGFjaXR5OjF9IDEyLjMwJXt5OjE5LjdweDtoZWlnaHQ6NC42cHg7b3BhY2l0eToxfSAxMi43MyV7eToxOS43cHg7aGVpZ2h0OjYuOXB4O29wYWNpdHk6MX0gMTMuMTcle3k6MTkuN3B4O2hlaWdodDoyLjNweDtvcGFjaXR5OjF9IDEzLjYwJXt5OjE5LjdweDtoZWlnaHQ6NC42cHg7b3BhY2l0eToxfSAyOCV7eToxOS43cHg7aGVpZ2h0OjQuNnB4O29wYWNpdHk6MX0gMzIlLDEwMCV7eToxOS43cHg7aGVpZ2h0OjQuNnB4O29wYWNpdHk6MH0gfVxuQGtleWZyYW1lcyBjaDAgeyAwJSwxMC45OSV7eToxOS43cHg7aGVpZ2h0OjBweDtvcGFjaXR5OjB9IDExLjAwJXt5OjE5LjdweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAxMS40MyV7eToxOS43cHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MX0gMTEuODcle3k6MTcuNHB4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDEyLjMwJXt5OjE3LjRweDtoZWlnaHQ6Mi4zcHg7b3BhY2l0eToxfSAxMi43MyV7eToxNy40cHg7aGVpZ2h0OjIuM3B4O29wYWNpdHk6MX0gMTMuMTcle3k6MTcuNHB4O2hlaWdodDoyLjNweDtvcGFjaXR5OjF9IDEzLjYwJXt5OjE3LjRweDtoZWlnaHQ6Mi4zcHg7b3BhY2l0eToxfSAyOCV7eToxNy40cHg7aGVpZ2h0OjIuM3B4O29wYWNpdHk6MX0gMzIlLDEwMCV7eToxNy40cHg7aGVpZ2h0OjIuM3B4O29wYWNpdHk6MH0gfVxuQGtleWZyYW1lcyBjbDAgeyAwJSwxMC45OSV7eToxOS43cHg7aGVpZ2h0OjBweDtvcGFjaXR5OjB9IDExLjAwJXt5OjE5LjdweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAxMS40MyV7eToyMnB4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDExLjg3JXt5OjE5LjdweDtoZWlnaHQ6Mi4zcHg7b3BhY2l0eToxfSAxMi4zMCV7eToyNC4zcHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MX0gMTIuNzMle3k6MjYuNnB4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDEzLjE3JXt5OjIycHg7aGVpZ2h0OjQuNnB4O29wYWNpdHk6MX0gMTMuNjAle3k6MjQuM3B4O2hlaWdodDoyLjNweDtvcGFjaXR5OjF9IDI4JXt5OjI0LjNweDtoZWlnaHQ6Mi4zcHg7b3BhY2l0eToxfSAzMiUsMTAwJXt5OjI0LjNweDtoZWlnaHQ6Mi4zcHg7b3BhY2l0eTowfSB9XG5Aa2V5ZnJhbWVzIGNiMSB7IDAlLDEzLjU5JXt5OjI0LjNweDtoZWlnaHQ6MS4ycHg7b3BhY2l0eTowfSAxMy42MCV7eToyNC4zcHg7aGVpZ2h0OjEuMnB4O29wYWNpdHk6MX0gMTQuMDMle3k6MTkuN3B4O2hlaWdodDo0LjZweDtvcGFjaXR5OjF9IDE0LjQ3JXt5OjIycHg7aGVpZ2h0OjIuM3B4O29wYWNpdHk6MX0gMTQuOTAle3k6MTUuMXB4O2hlaWdodDo5LjJweDtvcGFjaXR5OjF9IDE1LjMzJXt5OjE3LjRweDtoZWlnaHQ6Ni45cHg7b3BhY2l0eToxfSAxNS43NyV7eToxMi44cHg7aGVpZ2h0OjExLjVweDtvcGFjaXR5OjF9IDE2LjIwJXt5OjE1LjFweDtoZWlnaHQ6OS4ycHg7b3BhY2l0eToxfSAyOCV7eToxNS4xcHg7aGVpZ2h0OjkuMnB4O29wYWNpdHk6MX0gMzIlLDEwMCV7eToxNS4xcHg7aGVpZ2h0OjkuMnB4O29wYWNpdHk6MH0gfVxuQGtleWZyYW1lcyBjaDEgeyAwJSwxMy41OSV7eToyNC4zcHg7aGVpZ2h0OjBweDtvcGFjaXR5OjB9IDEzLjYwJXt5OjI0LjNweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAxNC4wMyV7eToxOS43cHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MX0gMTQuNDcle3k6MTkuN3B4O2hlaWdodDoyLjNweDtvcGFjaXR5OjF9IDE0LjkwJXt5OjE1LjFweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAxNS4zMyV7eToxNS4xcHg7aGVpZ2h0OjIuM3B4O29wYWNpdHk6MX0gMTUuNzcle3k6MTIuOHB4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDE2LjIwJXt5OjEyLjhweDtoZWlnaHQ6Mi4zcHg7b3BhY2l0eToxfSAyOCV7eToxMi44cHg7aGVpZ2h0OjIuM3B4O29wYWNpdHk6MX0gMzIlLDEwMCV7eToxMi44cHg7aGVpZ2h0OjIuM3B4O29wYWNpdHk6MH0gfVxuQGtleWZyYW1lcyBjbDEgeyAwJSwxMy41OSV7eToyNC4zcHg7aGVpZ2h0OjBweDtvcGFjaXR5OjB9IDEzLjYwJXt5OjI0LjNweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAxNC4wMyV7eToyNC4zcHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MX0gMTQuNDcle3k6MjQuM3B4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDE0LjkwJXt5OjI0LjNweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAxNS4zMyV7eToyNC4zcHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MX0gMTUuNzcle3k6MjQuM3B4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDE2LjIwJXt5OjI0LjNweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyOCV7eToyNC4zcHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MX0gMzIlLDEwMCV7eToyNC4zcHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MH0gfVxuQGtleWZyYW1lcyBjYjIgeyAwJSwxNi4xOSV7eToxNS4xcHg7aGVpZ2h0OjEuMnB4O29wYWNpdHk6MH0gMTYuMjAle3k6MTUuMXB4O2hlaWdodDoxLjJweDtvcGFjaXR5OjF9IDE2LjYzJXt5OjE1LjFweDtoZWlnaHQ6Mi4zcHg7b3BhY2l0eToxfSAxNy4wNyV7eToxMi44cHg7aGVpZ2h0OjIuM3B4O29wYWNpdHk6MX0gMTcuNTAle3k6MTUuMXB4O2hlaWdodDo0LjZweDtvcGFjaXR5OjF9IDE3LjkzJXt5OjE1LjFweDtoZWlnaHQ6Ni45cHg7b3BhY2l0eToxfSAxOC4zNyV7eToxNS4xcHg7aGVpZ2h0OjkuMnB4O29wYWNpdHk6MX0gMTguODAle3k6MTUuMXB4O2hlaWdodDo0LjZweDtvcGFjaXR5OjF9IDI4JXt5OjE1LjFweDtoZWlnaHQ6NC42cHg7b3BhY2l0eToxfSAzMiUsMTAwJXt5OjE1LjFweDtoZWlnaHQ6NC42cHg7b3BhY2l0eTowfSB9XG5Aa2V5ZnJhbWVzIGNoMiB7IDAlLDE2LjE5JXt5OjE1LjFweDtoZWlnaHQ6MHB4O29wYWNpdHk6MH0gMTYuMjAle3k6MTUuMXB4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDE2LjYzJXt5OjE1LjFweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAxNy4wNyV7eToxMi44cHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MX0gMTcuNTAle3k6MTIuOHB4O2hlaWdodDoyLjNweDtvcGFjaXR5OjF9IDE3LjkzJXt5OjEyLjhweDtoZWlnaHQ6Mi4zcHg7b3BhY2l0eToxfSAxOC4zNyV7eToxMi44cHg7aGVpZ2h0OjIuM3B4O29wYWNpdHk6MX0gMTguODAle3k6MTIuOHB4O2hlaWdodDoyLjNweDtvcGFjaXR5OjF9IDI4JXt5OjEyLjhweDtoZWlnaHQ6Mi4zcHg7b3BhY2l0eToxfSAzMiUsMTAwJXt5OjEyLjhweDtoZWlnaHQ6Mi4zcHg7b3BhY2l0eTowfSB9XG5Aa2V5ZnJhbWVzIGNsMiB7IDAlLDE2LjE5JXt5OjE1LjFweDtoZWlnaHQ6MHB4O29wYWNpdHk6MH0gMTYuMjAle3k6MTUuMXB4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDE2LjYzJXt5OjE3LjRweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAxNy4wNyV7eToxNS4xcHg7aGVpZ2h0OjIuM3B4O29wYWNpdHk6MX0gMTcuNTAle3k6MTkuN3B4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDE3LjkzJXt5OjIycHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MX0gMTguMzcle3k6MjQuM3B4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDE4LjgwJXt5OjE5LjdweDtoZWlnaHQ6NC42cHg7b3BhY2l0eToxfSAyOCV7eToxOS43cHg7aGVpZ2h0OjQuNnB4O29wYWNpdHk6MX0gMzIlLDEwMCV7eToxOS43cHg7aGVpZ2h0OjQuNnB4O29wYWNpdHk6MH0gfVxuQGtleWZyYW1lcyBjYjMgeyAwJSwxOC43OSV7eToxOS43cHg7aGVpZ2h0OjEuMnB4O29wYWNpdHk6MH0gMTguODAle3k6MTkuN3B4O2hlaWdodDoxLjJweDtvcGFjaXR5OjF9IDE5LjIzJXt5OjE1LjFweDtoZWlnaHQ6NC42cHg7b3BhY2l0eToxfSAxOS42NyV7eToxMC41cHg7aGVpZ2h0OjkuMnB4O29wYWNpdHk6MX0gMjAuMTAle3k6MTIuOHB4O2hlaWdodDo2LjlweDtvcGFjaXR5OjF9IDIwLjUzJXt5OjguMnB4O2hlaWdodDoxMS41cHg7b3BhY2l0eToxfSAyMC45NyV7eToxMC41cHg7aGVpZ2h0OjkuMnB4O29wYWNpdHk6MX0gMjEuNDAle3k6NS45cHg7aGVpZ2h0OjEzLjhweDtvcGFjaXR5OjF9IDI4JXt5OjUuOXB4O2hlaWdodDoxMy44cHg7b3BhY2l0eToxfSAzMiUsMTAwJXt5OjUuOXB4O2hlaWdodDoxMy44cHg7b3BhY2l0eTowfSB9XG5Aa2V5ZnJhbWVzIGNoMyB7IDAlLDE4Ljc5JXt5OjE5LjdweDtoZWlnaHQ6MHB4O29wYWNpdHk6MH0gMTguODAle3k6MTkuN3B4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDE5LjIzJXt5OjE1LjFweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAxOS42NyV7eToxMC41cHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MX0gMjAuMTAle3k6MTAuNXB4O2hlaWdodDoyLjNweDtvcGFjaXR5OjF9IDIwLjUzJXt5OjguMnB4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDIwLjk3JXt5OjguMnB4O2hlaWdodDoyLjNweDtvcGFjaXR5OjF9IDIxLjQwJXt5OjUuOXB4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDI4JXt5OjUuOXB4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDMyJSwxMDAle3k6NS45cHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MH0gfVxuQGtleWZyYW1lcyBjbDMgeyAwJSwxOC43OSV7eToxOS43cHg7aGVpZ2h0OjBweDtvcGFjaXR5OjB9IDE4LjgwJXt5OjE5LjdweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAxOS4yMyV7eToxOS43cHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MX0gMTkuNjcle3k6MTkuN3B4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDIwLjEwJXt5OjE5LjdweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyMC41MyV7eToxOS43cHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MX0gMjAuOTcle3k6MTkuN3B4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDIxLjQwJXt5OjE5LjdweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyOCV7eToxOS43cHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MX0gMzIlLDEwMCV7eToxOS43cHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MH0gfVxuQGtleWZyYW1lcyBjYjQgeyAwJSwyMS4zOSV7eTo1LjlweDtoZWlnaHQ6MS4ycHg7b3BhY2l0eTowfSAyMS40MCV7eTo1LjlweDtoZWlnaHQ6MS4ycHg7b3BhY2l0eToxfSAyMS44MyV7eTo1LjlweDtoZWlnaHQ6Mi4zcHg7b3BhY2l0eToxfSAyMi4yNyV7eTo1LjlweDtoZWlnaHQ6Ni45cHg7b3BhY2l0eToxfSAyMi43MCV7eTo1LjlweDtoZWlnaHQ6NC42cHg7b3BhY2l0eToxfSAyMy4xMyV7eTo1LjlweDtoZWlnaHQ6OS4ycHg7b3BhY2l0eToxfSAyMy41NyV7eTo1LjlweDtoZWlnaHQ6MTEuNXB4O29wYWNpdHk6MX0gMjQuMDAle3k6NS45cHg7aGVpZ2h0OjYuOXB4O29wYWNpdHk6MX0gMjgle3k6NS45cHg7aGVpZ2h0OjYuOXB4O29wYWNpdHk6MX0gMzIlLDEwMCV7eTo1LjlweDtoZWlnaHQ6Ni45cHg7b3BhY2l0eTowfSB9XG5Aa2V5ZnJhbWVzIGNoNCB7IDAlLDIxLjM5JXt5OjUuOXB4O2hlaWdodDowcHg7b3BhY2l0eTowfSAyMS40MCV7eTo1LjlweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyMS44MyV7eTo1LjlweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyMi4yNyV7eTo1LjlweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyMi43MCV7eTo1LjlweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyMy4xMyV7eTo1LjlweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyMy41NyV7eTo1LjlweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyNC4wMCV7eTo1LjlweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyOCV7eTo1LjlweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAzMiUsMTAwJXt5OjUuOXB4O2hlaWdodDowLjBweDtvcGFjaXR5OjB9IH1cbkBrZXlmcmFtZXMgY2w0IHsgMCUsMjEuMzkle3k6NS45cHg7aGVpZ2h0OjBweDtvcGFjaXR5OjB9IDIxLjQwJXt5OjUuOXB4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDIxLjgzJXt5OjguMnB4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDIyLjI3JXt5OjEyLjhweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyMi43MCV7eToxMC41cHg7aGVpZ2h0OjIuM3B4O29wYWNpdHk6MX0gMjMuMTMle3k6MTUuMXB4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDIzLjU3JXt5OjE3LjRweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyNC4wMCV7eToxMi44cHg7aGVpZ2h0OjQuNnB4O29wYWNpdHk6MX0gMjgle3k6MTIuOHB4O2hlaWdodDo0LjZweDtvcGFjaXR5OjF9IDMyJSwxMDAle3k6MTIuOHB4O2hlaWdodDo0LjZweDtvcGFjaXR5OjB9IH1cbkBrZXlmcmFtZXMgY2I1IHsgMCUsMjMuOTkle3k6MTIuOHB4O2hlaWdodDoxLjJweDtvcGFjaXR5OjB9IDI0LjAwJXt5OjEyLjhweDtoZWlnaHQ6MS4ycHg7b3BhY2l0eToxfSAyNC40MyV7eTo4LjJweDtoZWlnaHQ6NC42cHg7b3BhY2l0eToxfSAyNC44NyV7eToxMC41cHg7aGVpZ2h0OjIuM3B4O29wYWNpdHk6MX0gMjUuMzAle3k6My42cHg7aGVpZ2h0OjkuMnB4O29wYWNpdHk6MX0gMjUuNzMle3k6MS4zcHg7aGVpZ2h0OjExLjVweDtvcGFjaXR5OjF9IDI2LjE3JXt5OjMuNnB4O2hlaWdodDo5LjJweDtvcGFjaXR5OjF9IDI2LjYwJXt5Oi0xcHg7aGVpZ2h0OjEzLjhweDtvcGFjaXR5OjF9IDI4JXt5Oi0xcHg7aGVpZ2h0OjEzLjhweDtvcGFjaXR5OjF9IDMyJSwxMDAle3k6LTFweDtoZWlnaHQ6MTMuOHB4O29wYWNpdHk6MH0gfVxuQGtleWZyYW1lcyBjaDUgeyAwJSwyMy45OSV7eToxMi44cHg7aGVpZ2h0OjBweDtvcGFjaXR5OjB9IDI0LjAwJXt5OjEyLjhweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyNC40MyV7eTo4LjJweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyNC44NyV7eTo4LjJweDtoZWlnaHQ6Mi4zcHg7b3BhY2l0eToxfSAyNS4zMCV7eTozLjZweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyNS43MyV7eToxLjNweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyNi4xNyV7eToxLjNweDtoZWlnaHQ6Mi4zcHg7b3BhY2l0eToxfSAyNi42MCV7eTotMXB4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDI4JXt5Oi0xcHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MX0gMzIlLDEwMCV7eTotMXB4O2hlaWdodDowLjBweDtvcGFjaXR5OjB9IH1cbkBrZXlmcmFtZXMgY2w1IHsgMCUsMjMuOTkle3k6MTIuOHB4O2hlaWdodDowcHg7b3BhY2l0eTowfSAyNC4wMCV7eToxMi44cHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MX0gMjQuNDMle3k6MTIuOHB4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDI0Ljg3JXt5OjEyLjhweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyNS4zMCV7eToxMi44cHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MX0gMjUuNzMle3k6MTIuOHB4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDI2LjE3JXt5OjEyLjhweDtoZWlnaHQ6MC4wcHg7b3BhY2l0eToxfSAyNi42MCV7eToxMi44cHg7aGVpZ2h0OjAuMHB4O29wYWNpdHk6MX0gMjgle3k6MTIuOHB4O2hlaWdodDowLjBweDtvcGFjaXR5OjF9IDMyJSwxMDAle3k6MTIuOHB4O2hlaWdodDowLjBweDtvcGFjaXR5OjB9IH1cbkBrZXlmcmFtZXMgdGV4dExpdmUgeyAwJSw5LjUle29wYWNpdHk6MH0gMTAlLDMwJXtvcGFjaXR5OjF9IDM0JSwxMDAle29wYWNpdHk6MH0gfVxuQGtleWZyYW1lcyB0eXBlTGluZSB7IDAlLDEwJXtjbGlwLXBhdGg6aW5zZXQoMCAxMDAlIDAgMCl9IDE3JSwxMDAle2NsaXAtcGF0aDppbnNldCgwIDAgMCAwKX0gfVxuQGtleWZyYW1lcyBib2IgeyAwJSwxMDAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfSA1MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwcHgpfSB9XG5Aa2V5ZnJhbWVzIHR3aW5rbGUgeyAwJSwxMDAle29wYWNpdHk6LjV9IDUwJXtvcGFjaXR5OjF9IH1cbkBrZXlmcmFtZXMgb3JiaXQgeyB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuQGtleWZyYW1lcyBkYXNoIHsgdG8geyBzdHJva2UtZGFzaG9mZnNldDogLTQ4OyB9IH1cblxuLyogU2VwdCAyMDI2IHJlZGVzaWduIOKAlCBzaGFyZWQgYmxvY2sgY2xhc3NlcyAodGFicywgbGFkZGVycywgYWNjZW50IHNlY3Rpb24sIGhlcm8gc2t5LCBpbm5lciBoZXJvZXMpICovXG5AaW1wb3J0ICdob21lLXYyJztcbkBpbXBvcnQgJ3BhZ2VzLXYyJztcbkBpbXBvcnQgJ3NjYWxwZXJib29rJztcbkBpbXBvcnQgJ3NvYic7XG4uZnQtNXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MmZyIHJlcGVhdCg1LDFmcik7Z2FwOjQwcHh9XG5AbWVkaWEobWF4LXdpZHRoOjkwMHB4KXsuZnQtNXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmciAxZnJ9fVxuQGltcG9ydCAnbWVnYW1lbnUnO1xuQGltcG9ydCAnZnVuZGVkLWNoYWxsZW5nZXMnO1xuQGltcG9ydCAncG9kaXVtJztcbkBpbXBvcnQgJ2V2ZXJ5dGhpbmcnO1xuQGltcG9ydCAncHJvZHVjdHMnO1xuQGltcG9ydCAnd2h5JztcbkBpbXBvcnQgJ3JhbmtzJztcbkBpbXBvcnQgJ2FjaGlldmVtZW50cyc7XG5AaW1wb3J0ICd0cHMnO1xuQGltcG9ydCAndGVybWluYWwnO1xuQGltcG9ydCAndGVybWluYWwtZmVhdHVyZXMnO1xuQGltcG9ydCAnY2hhbXBpb25zJztcbkBpbXBvcnQgJ3JhY2UnO1xuQGltcG9ydCAnZ2FtZXMnO1xuQGltcG9ydCAnYmV0YS1iYXInO1xuQGltcG9ydCAnbGVnYWwtbm90ZXMnO1xuQGltcG9ydCAnY29tcGFueSc7XG5AaW1wb3J0ICdjb25zb2xlLXN0YWNrJztcbkBpbXBvcnQgJ21hcmtldC10YWJzJztcbkBpbXBvcnQgJ2dhYXMnO1xuQGltcG9ydCAnY29tcGFueS1oaXN0b3J5JztcbiIsIi8vIOKUgOKUgCBfY29tbW9uLnNjc3Mg4oCUIFRyYWRhbnRlIHNoYXJlZCB0aGVtZSBzeXN0ZW0g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyAgICBJbXBvcnRlZCBieSBhcHAuc2NzcyBhbmQgcHVibGljLnNjc3MuXG4vLyAgICBEZWZpbmVzIGZvbnQgdmFycyArIDMgZnVsbCB0aGVtZXMgKHZpb2xldCAvIGJsYWNrIC8gYmx1ZSkuXG4vLyAgICBFYWNoIHRoZW1lIHNldHMgYm90aCAtLWFjY2VudCAocHVibGljKSBhbmQgLS1hcHAtYWNjZW50IChhcHApIGZhbWlsaWVzLlxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbi8vIEZvbnQgdmFycyDigJQgaWRlbnRpY2FsIGluIGJvdGggc3lzdGVtc1xuOnJvb3Qge1xuICAtLWZvbnQtZGlzcGxheTogJ0JlYmFzIE5ldWUnLCBzYW5zLXNlcmlmO1xuICAtLWZvbnQtbW9ubzogICAgJ0lCTSBQbGV4IE1vbm8nLCBtb25vc3BhY2U7XG4gIC0tZm9udC1ib2R5OiAgICAnU3BhY2UgR3JvdGVzaycsIHNhbnMtc2VyaWY7XG59XG5cbi8vIOKUgOKUgCBWSU9MRVQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5odG1sW2RhdGEtdGhlbWU9XCJ2aW9sZXRcIl0ge1xuICAvLyBQdWJsaWMgbmFtaW5nXG4gIC0tYmc6ICAgICAgICAgIzBBMDgxNDtcbiAgLS1iZzI6ICAgICAgICAjMEUwODIwO1xuICAtLWJnMzogICAgICAgICMxMzBDMjg7XG4gIC0tYmc0OiAgICAgICAgIzFBMTAzNTtcbiAgLS1hY2NlbnQ6ICAgICAjOEI1Q0Y2O1xuICAtLWFjY2VudDI6ICAgICM2RDI4RDk7XG4gIC0tYWNjZW50MzogICAgI0E3OEJGQTtcbiAgLS1ncmFkOiAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNEMxRDk1IDAlLCAjN0MzQUVEIDQ1JSwgI0E3OEJGQSAxMDAlKTtcbiAgLS1ib3JkZXI6ICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuMDcpO1xuICAtLWJvcmRlci1oOiAgIHJnYmEoMTM5LDkyLDI0NiwwLjQpO1xuICAtLXRleHQ6ICAgICAgICNGMEYwRjQ7XG4gIC0tdGV4dDI6ICAgICAgcmdiYSgyNDAsMjQwLDI0NCwwLjYpO1xuICAtLXRleHQzOiAgICAgIHJnYmEoMjQwLDI0MCwyNDQsMC4zKTtcbiAgLS1iYWRnZTogICAgICByZ2JhKDEzOSw5MiwyNDYsMC4xKTtcbiAgLS1nbG93MTogICAgICByZ2JhKDEzOSw5MiwyNDYsMC4yOCk7XG4gIC0tZ2xvdzI6ICAgICAgcmdiYSgxMDksNDAsMjE3LDAuMTgpO1xuICAvLyBBcHAgbmFtaW5nXG4gIC0tYWNjZW50LXJnYjogICAgIDEzOSwgOTIsIDI0NjtcbiAgLS1hcHAtYmc6ICAgICAgICAgIzBBMDgxNDtcbiAgLS1hcHAtc3VyZmFjZTogICAgIzBmMGYxYTtcbiAgLS1hcHAtc3VyZmFjZTI6ICAgIzE0MTQyMTtcbiAgLS1hcHAtc3VyZmFjZTM6ICAgIzFhMWEyZTtcbiAgLS1hcHAtYWNjZW50OiAgICAgIzhCNUNGNjtcbiAgLS1hcHAtYWNjZW50MjogICAgIzdDM0FFRDtcbiAgLS1hcHAtYWNjZW50MzogICAgI0E3OEJGQTtcbiAgLS1hcHAtZ3JhZDogICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzhCNUNGNiwgI0E3OEJGQSk7XG4gIC0tYXBwLWJvcmRlcjogICAgIHJnYmEoMTM5LCA5MiwgMjQ2LCAwLjE4KTtcbiAgLS1hcHAtYm9yZGVyLWg6ICAgcmdiYSgxMzksIDkyLCAyNDYsIDAuNDApO1xuICAtLWFwcC10ZXh0OiAgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuOTIpO1xuICAtLWFwcC10ZXh0MjogICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuNTUpO1xuICAtLWFwcC10ZXh0MzogICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuMjgpO1xuICAtLWFwcC1jYXJkLWJnOiAgICByZ2JhKDIwLCAxOCwgMzgsIDAuNjApO1xuICAtLWFwcC1jYXJkLXNvbGlkOiAjMTQxMjJBO1xuICAtLWFwcC1lbGV2OiAgICAgICByZ2JhKDMwLCAyNiwgNTYsIDAuODUpO1xuICAtLWFwcC1hY2NlbnQtc29mdDogcmdiYSgxMzksIDkyLCAyNDYsIDAuMTUpO1xuICAtLWFwcC1ncmlkLWxpbmU6ICByZ2JhKDEzOSwgOTIsIDI0NiwgMC4wNCk7XG4gIC0tYXBwLWdsb3c6XG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAyMCUgMCUsIHJnYmEoMTI0LCA1OCwgMjM3LCAwLjE4KSwgdHJhbnNwYXJlbnQgNTAlKSxcbiAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDkwJSAzMCUsIHJnYmEoMjE3LCAyNiwgMTczLCAwLjA4KSwgdHJhbnNwYXJlbnQgNDUlKTtcbn1cblxuLy8g4pSA4pSAIEJMQUNLIChtYWdlbnRhIGFjY2VudCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5odG1sW2RhdGEtdGhlbWU9XCJibGFja1wiXSB7XG4gIC8vIFB1YmxpYyBuYW1pbmdcbiAgLS1iZzogICAgICAgICAjMDQwNDBBO1xuICAtLWJnMjogICAgICAgICMwODA2MEU7XG4gIC0tYmczOiAgICAgICAgIzBEMEExODtcbiAgLS1iZzQ6ICAgICAgICAjMTIwRTIyO1xuICAtLWFjY2VudDogICAgICNEOTFBQUQ7XG4gIC0tYWNjZW50MjogICAgIzhDMEY3MDtcbiAgLS1hY2NlbnQzOiAgICAjRTgzREMwO1xuICAtLWdyYWQ6ICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM1QzBBNDggMCUsICM5QjBGN0EgNDAlLCAjRDkxQUFEIDc1JSwgI0U4M0RDMCAxMDAlKTtcbiAgLS1ib3JkZXI6ICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuMDcpO1xuICAtLWJvcmRlci1oOiAgIHJnYmEoMjE3LDI2LDE3MywwLjQ1KTtcbiAgLS10ZXh0OiAgICAgICAjRjBGMEY0O1xuICAtLXRleHQyOiAgICAgIHJnYmEoMjQwLDI0MCwyNDQsMC42KTtcbiAgLS10ZXh0MzogICAgICByZ2JhKDI0MCwyNDAsMjQ0LDAuMyk7XG4gIC0tYmFkZ2U6ICAgICAgcmdiYSgyMTcsMjYsMTczLDAuMSk7XG4gIC0tZ2xvdzE6ICAgICAgcmdiYSgyMTcsMjYsMTczLDAuMjIpO1xuICAtLWdsb3cyOiAgICAgIHJnYmEoMTQwLDE1LDExMiwwLjE4KTtcbiAgLS1hY2NlbnQtcmdiOiAgICAgMjE3LCAyNiwgMTczO1xuICAvLyBBcHAgbmFtaW5nXG4gIC0tYXBwLWJnOiAgICAgICAgICMwODA3MEM7XG4gIC0tYXBwLXN1cmZhY2U6ICAgICMwODA2MEU7XG4gIC0tYXBwLXN1cmZhY2UyOiAgICMwRDBBMTg7XG4gIC0tYXBwLXN1cmZhY2UzOiAgICMxMjBFMjI7XG4gIC0tYXBwLWFjY2VudDogICAgICNEOTFBQUQ7XG4gIC0tYXBwLWFjY2VudDI6ICAgICM4QzBGNzA7XG4gIC0tYXBwLWFjY2VudDM6ICAgICNFODNEQzA7XG4gIC0tYXBwLWdyYWQ6ICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNEOTFBQUQsICNFODNEQzApO1xuICAtLWFwcC1ib3JkZXI6ICAgICByZ2JhKDIxNywgMjYsIDE3MywgMC4xNik7XG4gIC0tYXBwLWJvcmRlci1oOiAgIHJnYmEoMjE3LCAyNiwgMTczLCAwLjQwKTtcbiAgLS1hcHAtdGV4dDogICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjkyKTtcbiAgLS1hcHAtdGV4dDI6ICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjU1KTtcbiAgLS1hcHAtdGV4dDM6ICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjI4KTtcbiAgLS1hcHAtY2FyZC1iZzogICAgcmdiYSgyMCwgMjAsIDI4LCAwLjcwKTtcbiAgLS1hcHAtY2FyZC1zb2xpZDogIzE0MTQxQztcbiAgLS1hcHAtZWxldjogICAgICAgcmdiYSgyOCwgMjgsIDM4LCAwLjkwKTtcbiAgLS1hcHAtYWNjZW50LXNvZnQ6IHJnYmEoMjE3LCAyNiwgMTczLCAwLjEyKTtcbiAgLS1hcHAtZ3JpZC1saW5lOiAgcmdiYSgyMTcsIDI2LCAxNzMsIDAuMDQpO1xuICAtLWFwcC1nbG93OlxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMjUlIDAlLCByZ2JhKDIxNywgMjYsIDE3MywgMC4xNCksIHRyYW5zcGFyZW50IDU1JSksXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA5MCUgMzUlLCByZ2JhKDI0NSwgMTk3LCAyNCwgMC4wNSksIHRyYW5zcGFyZW50IDQ1JSk7XG59XG5cbi8vIOKUgOKUgCBCTFVFIChuYXZ54oCTc2t5KSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbmh0bWxbZGF0YS10aGVtZT1cImJsdWVcIl0ge1xuICAvLyBQdWJsaWMgbmFtaW5nXG4gIC0tYmc6ICAgICAgICAgIzBEMTAyMDtcbiAgLS1iZzI6ICAgICAgICAjMTIxNTI1O1xuICAtLWJnMzogICAgICAgICMxNzE5MkU7XG4gIC0tYmc0OiAgICAgICAgIzFDMUYzODtcbiAgLS1hY2NlbnQ6ICAgICAjNEY4RUY3O1xuICAtLWFjY2VudDI6ICAgICMxQTU2REI7XG4gIC0tYWNjZW50MzogICAgIzkzQkJGRDtcbiAgLS1ncmFkOiAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMUEzQThGIDAlLCAjMUE1NkRCIDQwJSwgIzRGOEVGNyA3NSUsICM5M0JCRkQgMTAwJSk7XG4gIC0tYm9yZGVyOiAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjA3KTtcbiAgLS1ib3JkZXItaDogICByZ2JhKDc5LDE0MiwyNDcsMC40NSk7XG4gIC0tdGV4dDogICAgICAgI0YwRjBGNDtcbiAgLS10ZXh0MjogICAgICByZ2JhKDI0MCwyNDAsMjQ0LDAuNik7XG4gIC0tdGV4dDM6ICAgICAgcmdiYSgyNDAsMjQwLDI0NCwwLjMpO1xuICAtLWJhZGdlOiAgICAgIHJnYmEoNzksMTQyLDI0NywwLjEpO1xuICAtLWdsb3cxOiAgICAgIHJnYmEoNzksMTQyLDI0NywwLjIpO1xuICAtLWdsb3cyOiAgICAgIHJnYmEoMjYsODYsMjE5LDAuMTQpO1xuICAtLWFjY2VudC1yZ2I6ICAgICA3OSwgMTQyLCAyNDc7XG4gIC8vIEFwcCBuYW1pbmdcbiAgLS1hcHAtYmc6ICAgICAgICAgIzA2MEExNDtcbiAgLS1hcHAtc3VyZmFjZTogICAgIzEyMTUyNTtcbiAgLS1hcHAtc3VyZmFjZTI6ICAgIzE3MTkyRTtcbiAgLS1hcHAtc3VyZmFjZTM6ICAgIzFDMUYzODtcbiAgLS1hcHAtYWNjZW50OiAgICAgIzRGOEVGNztcbiAgLS1hcHAtYWNjZW50MjogICAgIzFBNTZEQjtcbiAgLS1hcHAtYWNjZW50MzogICAgIzkzQkJGRDtcbiAgLS1hcHAtZ3JhZDogICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzRGOEVGNywgIzkzQkJGRCk7XG4gIC0tYXBwLWJvcmRlcjogICAgIHJnYmEoNzksIDE0MiwgMjQ3LCAwLjE4KTtcbiAgLS1hcHAtYm9yZGVyLWg6ICAgcmdiYSg3OSwgMTQyLCAyNDcsIDAuNDApO1xuICAtLWFwcC10ZXh0OiAgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuOTIpO1xuICAtLWFwcC10ZXh0MjogICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuNTUpO1xuICAtLWFwcC10ZXh0MzogICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuMjgpO1xuICAtLWFwcC1jYXJkLWJnOiAgICByZ2JhKDE3LCAyNSwgNDMsIDAuNzApO1xuICAtLWFwcC1jYXJkLXNvbGlkOiAjMTExOTJCO1xuICAtLWFwcC1lbGV2OiAgICAgICByZ2JhKDI0LCAzNSwgNjAsIDAuOTApO1xuICAtLWFwcC1hY2NlbnQtc29mdDogcmdiYSg3OSwgMTQyLCAyNDcsIDAuMTUpO1xuICAtLWFwcC1ncmlkLWxpbmU6ICByZ2JhKDc5LCAxNDIsIDI0NywgMC4wNCk7XG4gIC0tYXBwLWdsb3c6XG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAyMCUgMCUsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTgpLCB0cmFuc3BhcmVudCA1MCUpLFxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgODUlIDI1JSwgcmdiYSg2LCAxODIsIDIxMiwgMC4wOCksIHRyYW5zcGFyZW50IDQ1JSk7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBVQkxJQyBTSVRFIFJFREVTSUdOIOKAlCBTZXB0IDIwMjYgKHBvcnRlZCBmcm9tIGRlc2lnbiBjYW52YXMgZDQ2ZWM5YTQpXG4gICBTaGFyZWQgYmxvY2sgY2xhc3NlcyB1c2VkIGJ5IEhvbWUgYW5kIHRoZSBpbm5lciBwYWdlczogdGFicywgbGFkZGVycyxcbiAgIGxldmVsIHN0cmlwLCB2ZW51ZSBwaWxscywgdGlja2VyIHZlbnVlIG1hcmtzLCBncmFkaWVudC1hY2NlbnQgc2VjdGlvbixcbiAgIGhlcm8gc2t5LCBpbm5lci1wYWdlIGhlcm8uIEltcG9ydGVkIGZyb20gcHVibGljLnNjc3MuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyog4pSA4pSAIEhlcm8gKHYyKTogY29udGVudC1zaXplZCwgc2t5IHN0YWNrIGJlaGluZCDilIDilIAgKi9cbi50ci1oZXJvLXYyIHsgcG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogaGlkZGVuOyBtaW4taGVpZ2h0OiAwOyBwYWRkaW5nOiA5NnB4IDE2cHggNzJweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tYmcyKSAwJSwgdmFyKC0tYmcpIDQwJSwgIzA1MDgxMiAxMDAlKTsgfVxuLnRyLWhlcm8taW5uZXIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMjJweDsgfVxuLnRyLWhlcm8tc2t5IHsgcG9zaXRpb246IGFic29sdXRlOyBpbnNldDogMDsgei1pbmRleDogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbi50ci1oZXJvLXNreSA+ICogeyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyB9XG4udHItaGVyby10aXRsZSBzcGFuIHsgZGlzcGxheTogaW5saW5lOyB9XG4udHItc3RhdHMtZ3JpZCB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0bzsgfVxuLnRyLXN0YXRzLWNvbCB7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogMTZweDsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgfVxuLnRyLXN0YXRzLWNvbDpsYXN0LWNoaWxkIHsgYm9yZGVyLXJpZ2h0OiAwOyB9XG4ucGctY29udGVudCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTsgfVxuXG4vKiDilIDilIAgVGlja2VyICh2Mik6IHZlbnVlIG1hcmtzLCBwcmljZSwgc25hcHNob3Qgbm90ZSwgc2xvd2VyIGxvb3Ag4pSA4pSAICovXG4udHItdGlja2VyLWlubmVyIHsgYW5pbWF0aW9uLWR1cmF0aW9uOiAxNTBzOyB9XG4udHItdGlja2VyOmhvdmVyIC50ci10aWNrZXItaW5uZXIgeyBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkOyB9XG4udHItdGlja2VyLWl0ZW0geyBnYXA6IDlweDsgfVxuLnRyLXRpY2tlci1weCB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgZm9udC13ZWlnaHQ6IDUwMDsgfVxuLnRyLXRpY2tlci1mbGF0IHsgY29sb3I6IHZhcigtLXRleHQzKTsgfVxuLnRrLWxvZ28geyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGhlaWdodDogMTZweDsgbWluLXdpZHRoOiAxNnB4OyBwYWRkaW5nOiAwIDRweDsgYm9yZGVyLXJhZGl1czogNHB4OyBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTsgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiA5cHg7IGxldHRlci1zcGFjaW5nOiAuMDJlbTsgY29sb3I6ICNmZmY7IH1cbi50ay1sb2dvIHNtYWxsIHsgZm9udC1zaXplOiA2cHg7IG1hcmdpbi1sZWZ0OiAxcHg7IGZvbnQtd2VpZ2h0OiA3MDA7IH1cbi50ay1rYWxzaGkgeyBiYWNrZ3JvdW5kOiAjMEZBNzdBOyBjb2xvcjogIzA1MjExYTsgfVxuLnRrLXBtaSB7IGJhY2tncm91bmQ6ICMxRTNBOEE7IH1cbi50ay1wbXVzIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI0I5MUMxQyAwIDQ1JSwgIzFFM0E4QSA1NSUgMTAwJSk7IH1cbi50ay1jbWUgeyBiYWNrZ3JvdW5kOiAjMTIzMjVDOyBmb250LXNpemU6IDcuNXB4OyB9XG4udGstZnggeyBiYWNrZ3JvdW5kOiAjMDg5MUIyOyBjb2xvcjogIzA2MjIyYjsgfVxuLnRrLWNyeXB0byB7IGJhY2tncm91bmQ6ICNGNzkzMUE7IGNvbG9yOiAjM2EyMDAwOyBmb250LXNpemU6IDExcHg7IH1cbi50ci10aWNrZXItbm90ZSB7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogOHB4IDAgMDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOHB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dDMpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZzIpOyB9XG5cbi8qIOKUgOKUgCBTbWFsbCBsYWJlbHMg4pSA4pSAICovXG4ubW9uby1sYmwgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5cHg7IGxldHRlci1zcGFjaW5nOiAycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IH1cbi50cC1sYmwgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5cHg7IGxldHRlci1zcGFjaW5nOiAycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1hY2NlbnQpOyBtYXJnaW4tYm90dG9tOiA4cHg7IH1cbi50cC10eHQgeyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2YXIoLS10ZXh0Mik7IGxpbmUtaGVpZ2h0OiAxLjc7IH1cbi50cC10eHQgYSB7IGNvbG9yOiB2YXIoLS1hY2NlbnQpOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbi50ci1jdGEtZm9vdG5vdGUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dDMpOyB9XG5cbi8qIOKUgOKUgCBMYWRkZXJzIChwcmVkaWN0aW9uIFlFUy9OTywgU29jaWFsIE9yZGVyIEJvb2sgcHJldmlldykg4pSA4pSAICovXG4ubGFkZGVyIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgNjRweCAxZnI7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDExcHg7IH1cbi5sYWRkZXIgPiBkaXYgeyBwYWRkaW5nOiA3cHggMTBweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbi5sYWRkZXIgLnB4IHsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGNvbG9yOiB2YXIoLS10ZXh0Mik7IGJhY2tncm91bmQ6IHZhcigtLXcwNSk7IH1cbi5sYWRkZXIgLmJpZCB7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IGNvbG9yOiB2YXIoLS1ncmVlbik7IH1cbi5sYWRkZXIgLmFzayB7IGNvbG9yOiB2YXIoLS1yZWQpOyB9XG4ubGFkZGVyIC5taWQucHggeyBjb2xvcjogdmFyKC0tdGV4dCk7IGZvbnQtd2VpZ2h0OiA2MDA7IGJhY2tncm91bmQ6IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIDAuMTQpOyB9XG4uYmFyIHsgaGVpZ2h0OiA2cHg7IGJvcmRlci1yYWRpdXM6IDNweDsgfVxuXG4vKiDilIDilIAgVGFicyAoc3RhdGljIG1hcmt1cCwgc3dpdGNoZWQgYnkgaG9tZS5qcykg4pSA4pSAICovXG4udGFiYmFyIHsgZGlzcGxheTogZmxleDsgZ2FwOiA0cHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBtYXJnaW4tYm90dG9tOiAzMnB4OyBmbGV4LXdyYXA6IHdyYXA7IH1cbi50YWIgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBwYWRkaW5nOiAxNHB4IDIycHg7IGJvcmRlcjogMDsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY3Vyc29yOiBwb2ludGVyOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyBjb2xvcjogdmFyKC0tdGV4dDMpOyB0cmFuc2l0aW9uOiBjb2xvciAuMTVzLCBib3JkZXItY29sb3IgLjE1czsgfVxuLnRhYjpob3ZlciB7IGNvbG9yOiB2YXIoLS10ZXh0Mik7IH1cbi50YWIub24geyBjb2xvcjogdmFyKC0tYWNjZW50KTsgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYWNjZW50KTsgfVxuLnRhYnBhbmVsIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxLjFmciAxZnIgMWZyIDFmcjsgZ2FwOiAyOHB4OyB9XG4udGFicGFuZWxbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLyog4pSA4pSAIExldmVsIHN0cmlwLCB2ZW51ZSBwaWxscyDilIDilIAgKi9cbi5sdmwgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMCwgbWlubWF4KDAsIDFmcikpOyBnYXA6IDZweDsgfVxuLmx2bCBzcGFuIHsgaGVpZ2h0OiAzNHB4OyBib3JkZXItcmFkaXVzOiA4cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGJhY2tncm91bmQ6IHZhcigtLXcwNSk7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiAxNXB4OyBjb2xvcjogdmFyKC0tdGV4dDMpOyB9XG4ubHZsIHNwYW4ub24geyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgY29sb3I6ICMwMDA7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbi5sb2dvLXBpbGwgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiAyMHB4OyBsZXR0ZXItc3BhY2luZzogM3B4OyBjb2xvcjogdmFyKC0tdGV4dDMpOyBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWgpOyBib3JkZXItcmFkaXVzOiAxMHB4OyBwYWRkaW5nOiAxNHB4IDI4cHg7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLyog4pSA4pSAIFN0ZXBzOiAzLWNvbHVtbiB2YXJpYW50IOKUgOKUgCAqL1xuLmhwLWhvdy1zdGVwcy0zIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsgfVxuXG4vKiDilIDilIAgR3JhZGllbnQtYWNjZW50IHNlY3Rpb24gKG9uZSBwZXIgcGFnZSwgcmh5dGhtIGJyZWFrKSDilIDilIAgKi9cbi50ci1zZWN0aW9uLWFjY2VudCB7IHBhZGRpbmc6IDEwMHB4IDA7IGJhY2tncm91bmQ6IHZhcigtLWFjY2VudC1ncmFkLXNlY3Rpb24pOyBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjI4KTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4yOCk7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuLnRyLXNlY3Rpb24tYWNjZW50OjpiZWZvcmUgeyBjb250ZW50OiBcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA1MCUgNjAlIGF0IDg1JSAyMCUsIHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4yOCksIHRyYW5zcGFyZW50IDY1JSk7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4udHItc2VjdGlvbi1hY2NlbnQgPiAuY29udGFpbmVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4udHItc2VjdGlvbi1hY2NlbnQgLnRyLXNlY3Rpb24tdGFnIHsgY29sb3I6IHZhcigtLWFjY2VudDMpOyB9XG4udHItc2VjdGlvbi1hY2NlbnQgLnRyLXNlY3Rpb24tc3ViLCAudHItc2VjdGlvbi1hY2NlbnQgLnRyLXNlY3Rpb24tc3ViLW11dGVkLCAudHItc2VjdGlvbi1hY2NlbnQgLnRyLWZlYXR1cmUtZGVzYywgLnRyLXNlY3Rpb24tYWNjZW50IC50ci1ob3ctc3RlcC1kZXNjLCAudHItc2VjdGlvbi1hY2NlbnQgLnRwLXR4dCB7IGNvbG9yOiByZ2JhKDI0MCwyNDAsMjQ0LDAuNzgpOyB9XG4udHItc2VjdGlvbi1hY2NlbnQgLm1vbm8tbGJsLCAudHItc2VjdGlvbi1hY2NlbnQgLnRwLWxibCB7IGNvbG9yOiB2YXIoLS1hY2NlbnQzKTsgfVxuLnRyLXNlY3Rpb24tYWNjZW50IC50ci1jYXJkLCAudHItc2VjdGlvbi1hY2NlbnQgLnRyLXBheW91dC1ib3ggeyBiYWNrZ3JvdW5kOiByZ2JhKDEwLDQsMjAsMC43Mik7IGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjM1KTsgfVxuLnRyLXNlY3Rpb24tYWNjZW50IC5ocC1ob3ctc3RlcC1saW5lIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1hY2NlbnQzKSwgdHJhbnNwYXJlbnQpOyB9XG5cbi8qIOKUgOKUgCBJbm5lci1wYWdlIGhlcm8g4pSA4pSAICovXG4ucGctaGVybyB7IHBhZGRpbmc6IDEwNHB4IDAgNTZweDsgdGV4dC1hbGlnbjogY2VudGVyOyBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA2MCUgNTAlIGF0IDUwJSAwJSwgcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgMC4xNiksIHRyYW5zcGFyZW50IDcwJSksIHZhcigtLWJnKTsgfVxuLnBnLWhlcm8tdGl0bGUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC13ZWlnaHQ6IDQwMDsgZm9udC1zaXplOiBjbGFtcCg1NnB4LCA4dncsIDEwNHB4KTsgbGluZS1oZWlnaHQ6IC44ODsgbGV0dGVyLXNwYWNpbmc6IDNweDsgY29sb3I6IHZhcigtLXRleHQpOyB9XG4ucGctaGVyby10aXRsZSBlbSB7IGZvbnQtc3R5bGU6IG5vcm1hbDsgYmFja2dyb3VuZDogdmFyKC0tZ3JhZCk7IC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7IGJhY2tncm91bmQtY2xpcDogdGV4dDsgfVxuXG4vKiDilIDilIAgUmVzcG9uc2l2ZSDilIDilIAgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAudGFicGFuZWwgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IH1cbiAgLmx2bCBzcGFuIHsgZm9udC1zaXplOiAxM3B4OyBoZWlnaHQ6IDMwcHg7IH1cbiAgLnRyLWhlcm8tdGl0bGUgeyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XG4gIC50ci1oZXJvLXRpdGxlIHNwYW4geyBkaXNwbGF5OiBibG9jazsgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC50ci1zdGF0cy1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOyB9XG4gIC50ci1zdGF0cy1jb2w6bnRoLWNoaWxkKDIpIHsgYm9yZGVyLXJpZ2h0OiAwOyB9XG4gIC50ci1zdGF0cy1jb2w6bnRoLWNoaWxkKC1uKzIpIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IH1cbiAgLnRhYnBhbmVsIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbiAgLmhwLWhvdy1zdGVwcy0zIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbiAgLnBnLWNvbnRlbnQgLmNvbnRhaW5lcltzdHlsZSo9XCJncmlkLXRlbXBsYXRlLWNvbHVtbnNcIl0geyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAhaW1wb3J0YW50OyB9XG4gIC5wZy1jb250ZW50IFtzdHlsZSo9XCJncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0XCJdIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpICFpbXBvcnRhbnQ7IH1cbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC50ci1oZXJvLXNreSAqLCAudHItdGlja2VyLWlubmVyIHsgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7IH1cbn1cbiIsIi8qIElubmVyLXBhZ2UgYmxvY2tzIChTZXB0IDIwMjYgcmVkZXNpZ24pIOKAlCBhY2NvcmRpb25zLCBwb2ludGVyIHN0cmlwcywgY2Fyb3VzZWxzLCB0aWVycywgc3RlcHBlcnMsIGZlZWQgcm93cywgZmxvdyBkaWFncmFtLCBUcmFkZSBoZXJvIGdyaWQgKyBkb3RzLiAqL1xuXG4gICAgLyogVHJhZGUgaGVybyBvbmx5OiBncmlkICsgZ2xvdyBiZWhpbmQgdGhlIHRleHQgYW5kIHRoZSBTY2FscGVyQm9vaywgd2l0aCB0cmF2ZWxsaW5nIGRvdHMgKi9cbiAgICAucGctaGVyby5oYXMtZ3JpZCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIC5oZy1ncmlkIHsgcG9zaXRpb246IGFic29sdXRlOyBpbnNldDogMDsgei1pbmRleDogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKHZhcigtLWFjY2VudC1yZ2IpLDAuMTYpIDFweCwgdHJhbnNwYXJlbnQgMXB4KSwgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLDAuMTYpIDFweCwgdHJhbnNwYXJlbnQgMXB4KTsgYmFja2dyb3VuZC1zaXplOiA2MHB4IDYwcHg7IG1hc2staW1hZ2U6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDkwJSA5MCUgYXQgNTAlIDQ1JSwgYmxhY2sgMzAlLCB0cmFuc3BhcmVudCA4MCUpOyAtd2Via2l0LW1hc2staW1hZ2U6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDkwJSA5MCUgYXQgNTAlIDQ1JSwgYmxhY2sgMzAlLCB0cmFuc3BhcmVudCA4MCUpOyB9XG4gICAgLmhnLWdyaWQ6OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDYwJSA1NSUgYXQgNzAlIDQwJSwgcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwwLjIyKSwgdHJhbnNwYXJlbnQgNjUlKTsgfVxuICAgIC5oZy1kb3QgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiAjZmZmOyBib3gtc2hhZG93OiAwIDAgOHB4IDJweCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC45NSksIDAgMCAyMnB4IDhweCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLC40NSk7IHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7IH1cbiAgICAucGctaGVyby5oYXMtZ3JpZCA+IC5jb250YWluZXIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7IH1cblxuICAgIC5hY2MgeyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBib3JkZXItcmFkaXVzOiAxMnB4OyBvdmVyZmxvdzogaGlkZGVuOyBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWJnKTsgfVxuICAgIC5hY2Mtcm93IHsgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDE2cHg7IHBhZGRpbmc6IDE2cHggMjBweDsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLXRleHQpOyB9XG4gICAgLmFjYy1yb3c6Zmlyc3QtY2hpbGQgeyBib3JkZXItdG9wOiAwOyB9XG4gICAgLmFjYy1wbHVzIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6IHZhcigtLWFjY2VudCk7IH1cbiAgICAuYWNjLW9wZW4geyBwYWRkaW5nOiAwIDIwcHggMThweDsgZm9udC1zaXplOiAxMi41cHg7IGNvbG9yOiB2YXIoLS10ZXh0Mik7IGxpbmUtaGVpZ2h0OiAxLjc7IH1cbiAgICAucG9pbnRlci1zdHJpcCB7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAyNHB4OyBwYWRkaW5nOiAyMnB4IDI4cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGJvcmRlci1yYWRpdXM6IDE0cHg7IGJhY2tncm91bmQ6IHZhcigtLXcwNSk7IH1cbiAgICAuY2FyIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpOyBnYXA6IDE2cHg7IH1cbiAgICAuY2FyLW5hdiB7IGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC5jYXItZG90IHsgd2lkdGg6IDZweDsgaGVpZ2h0OiA2cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgYmFja2dyb3VuZDogdmFyKC0tdzEyKTsgfVxuICAgIC5jYXItZG90Lm9uIHsgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTsgd2lkdGg6IDE4cHg7IGJvcmRlci1yYWRpdXM6IDNweDsgfVxuICAgIC5jYXItYXJyb3cgeyB3aWR0aDogMzJweDsgaGVpZ2h0OiAzMnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBjb2xvcjogdmFyKC0tdGV4dDIpOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMnB4OyB9XG4gICAgLnRpZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWJnKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgYm9yZGVyLXJhZGl1czogMThweDsgcGFkZGluZzogMjZweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNHB4OyB9XG4gICAgLnRpZXIuZmVhdHVyZWQgeyBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1oKTsgfVxuICAgIC50aWVyLXNpemUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiA0MHB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyBsaW5lLWhlaWdodDogMTsgfVxuICAgIC5rdiB7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tdGV4dDIpOyBwYWRkaW5nOiA3cHggMDsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IH1cbiAgICAua3YgYiB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIC50ZXJtIHsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWgpOyBib3JkZXItcmFkaXVzOiAxNHB4OyBiYWNrZ3JvdW5kOiAjMEIwNjE4OyBvdmVyZmxvdzogaGlkZGVuOyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuNmZyIC44ZnIgLjdmcjsgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAzNHB4IDFmciA5MHB4OyBoZWlnaHQ6IDM4MHB4OyBib3gtc2hhZG93OiAwIDMwcHggODBweCByZ2JhKDAsMCwwLC41KSwgMCAwIDYwcHggcmdiYSgxMzksOTIsMjQ2LC4xNSk7IH1cbiAgICAudGVybS1iYXIgeyBncmlkLWNvbHVtbjogMSAvIC0xOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDE2cHg7IHBhZGRpbmc6IDAgMTRweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDlweDsgbGV0dGVyLXNwYWNpbmc6IDJweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLXRleHQzKTsgfVxuICAgIC50ZXJtLXBhbmUgeyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBwYWRkaW5nOiAxMnB4OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDhweDsgfVxuICAgIC50ZXJtLXBhbmU6bGFzdC1jaGlsZCB7IGJvcmRlci1yaWdodDogMDsgfVxuICAgIC50ZXJtLWZvb3QgeyBncmlkLWNvbHVtbjogMSAvIC0xOyBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgcGFkZGluZzogMTJweCAxNHB4OyBkaXNwbGF5OiBmbGV4OyBnYXA6IDIwcHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAucGggeyBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWgpOyBib3JkZXItcmFkaXVzOiA4cHg7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5cHg7IGxldHRlci1zcGFjaW5nOiAycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IH1cbiAgICAuc3RhZ2UgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEycHg7IH1cbiAgICAuc3RhZ2UtbiB7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgYmFja2dyb3VuZDogdmFyKC0tZ3JhZCk7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiAxOHB4OyBjb2xvcjogIzAwMDsgZmxleC1zaHJpbms6IDA7IH1cbiAgICAuc3RhZ2Utbi5naG9zdCB7IGJhY2tncm91bmQ6IHZhcigtLXcwNSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IH1cbiAgICAuc3RhZ2UtbGluZSB7IGZsZXg6IDE7IGhlaWdodDogMXB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWFjY2VudCksIHZhcigtLWJvcmRlcikpOyB9XG4gICAgLmZlZWQtcm93IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA5MHB4IDFmciAxMjBweCAxMzBweDsgZ2FwOiAxMnB4OyBhbGlnbi1pdGVtczogY2VudGVyOyBwYWRkaW5nOiAxMnB4IDE2cHg7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dDIpOyB9XG4gICAgLmZlZWQtcm93OmZpcnN0LWNoaWxkIHsgYm9yZGVyLXRvcDogMDsgfVxuICAgIC5mbG93IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgNDhweCAxZnIgNDhweCAxZnI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyB9XG4gICAgLmZsb3ctYm94IHsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgYm9yZGVyLXJhZGl1czogMTRweDsgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1iZyk7IHBhZGRpbmc6IDIycHg7IHRleHQtYWxpZ246IGNlbnRlcjsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA2cHg7IH1cbiAgICAuZmxvdy1hcnJvdyB7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6IHZhcigtLWFjY2VudCk7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDE4cHg7IH1cblxuLyogY2Fycnktb3ZlcnMgZnJvbSB0aGUgb2xkIHBhZ2VzICovXG4uaHAtc3RlcC1udW0uYy1ncmVlbiB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxNmEzNGEsICMyMmM1NWUpOyBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDM0LDE5Nyw5NCwwLjM1KTsgfVxuLmhwLXN0ZXAtbnVtLmMtZ29sZCB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNkOTc3MDYsICNGNUM1MTgpOyBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDI0NSwxOTcsMjQsMC4zNSk7IH1cbi5ocC1zdGVwLW51bS5jLXRlYWwgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMGU3NDkwLCAjMDZCNkQ0KTsgYm94LXNoYWRvdzogMCAwIDIwcHggcmdiYSg2LDE4MiwyMTIsMC4zNSk7IH1cbi5ocC1sYi1yb3cuc2lsdmVyIHsgYmFja2dyb3VuZDogcmdiYSgxOTIsMTkyLDIwMCwwLjA2KTsgfVxuLmhwLWxiLXJvdy5icm9uemUgeyBiYWNrZ3JvdW5kOiByZ2JhKDIwNSwxMjcsNTAsMC4wNyk7IH1cbi5wZy1oZXJvIC5jb250YWluZXJbc3R5bGUqPVwiZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zXCJdIHsgdGV4dC1hbGlnbjogbGVmdDsgfVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5wZy1oZXJvIC5jb250YWluZXJbc3R5bGUqPVwiZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zXCJdIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgIWltcG9ydGFudDsgfVxuICAuY2FyIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOyB9XG4gIC50ZXJtIHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG5cbi8qIEhlcm8gd2l0aCBhIGJsdXJyZWQgYXBwIHZpZGVvIGJlaGluZCB0aGUgY29weSAoRnVuZGVkIHBhZ2U7IHNhbWUgY2xpcCBhcyAvbGFuZGluZykuXG4gICBTY29wZWQgdG8gdGhlIHNlY3Rpb24g4oCUIG5vdCBwYWdlLXdpZGUgbGlrZSB0aGUgSG9tZSAudHItYmctdmlkZW8uICovXG4ucGctaGVyby5oYXMtdmlkZW8geyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IH1cbi5wZy1oZXJvLmhhcy12aWRlbyA+IC5jb250YWluZXIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7IH1cbi5odmlkIHsgcG9zaXRpb246IGFic29sdXRlOyBpbnNldDogMDsgei1pbmRleDogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbi5odmlkIHZpZGVvIHtcbiAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwJTsgbGVmdDogNTAlOyB3aWR0aDogYXV0bzsgaGVpZ2h0OiBhdXRvOyBtaW4td2lkdGg6IDEwMCU7IG1pbi1oZWlnaHQ6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyBvYmplY3QtZml0OiBjb3ZlcjtcbiAgZmlsdGVyOiBibHVyKDNweCkgYnJpZ2h0bmVzcygwLjUpIHNhdHVyYXRlKDEuMik7IC8qIHNhbWUgYXMgdGhlIC9sYW5kaW5nIGNsaXAgKi9cbn1cbi5odmlkOjphZnRlciB7XG4gIC8qIGxpZ2h0IHdhc2ggb25seTogZmFkZSBpbnRvIHRoZSBwYWdlIGF0IHRvcC9ib3R0b20gYW5kIHRoaW4gc2lkZSBmYWRlcywga2VlcCB0aGUgY2xpcCB2aXNpYmxlICovXG4gIGNvbnRlbnQ6ICcnOyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLWJnKSAwJSwgdHJhbnNwYXJlbnQgMTglLCB0cmFuc3BhcmVudCA4NCUsIHZhcigtLWJnKSAxMDAlKSxcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWJnKSAwJSwgdHJhbnNwYXJlbnQgMTIlLCB0cmFuc3BhcmVudCA4OCUsIHZhcigtLWJnKSAxMDAlKTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7IC5odmlkIHZpZGVvIHsgZGlzcGxheTogbm9uZTsgfSB9XG4iLCIvKiBTY2FscGVyQm9vayB3aWRnZXQgKFRyYWRlIGhlcm8pIOKAlCBwb3J0ZWQgdmVyYmF0aW0gZnJvbSB0aGUgZGVzaWduIGNhbnZhczsgdmlvbGV0IHRva2VucyBzY29wZWQgdG8gLmhtICovXG5cbiAgICAvKiDilZDilZAgU2NhbHBlckJvb2sg4oCUIHZlcmJhdGltIHBvcnQgb2YgdHJhZGFudGUtc2NhbHBlcmJvb2stbWVyZ2VkLXZpb2xldC5odG1sIOKVkOKVkCAqL1xuICAgIC5obXtcbiAgICAgIGZvbnQtZmFtaWx5OidTcGFjZSBHcm90ZXNrJyxzeXN0ZW0tdWksc2Fucy1zZXJpZjtcbiAgICAgIGNvbG9yOiNlYmU5ZjU7XG4gICAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6XCJ0bnVtXCIgMTtcbiAgICAgIHRleHQtYWxpZ246bGVmdDtcbiAgICAgIC0tYy1iZzojMGEwODE0O1xuICAgICAgLS1jLWJnLTI6IzEzMTAxZTtcbiAgICAgIC0tYy1iZy0zOiMxYzE4MzA7XG4gICAgICAtLWMtdGV4dDojZWJlOWY1O1xuICAgICAgLS1jLWRpbTojOTU5MGIwO1xuICAgICAgLS1jLWZhaW50OiM1YTU2NzA7XG4gICAgICAtLWMtYm9yZGVyOnJnYmEoMTI3LDExOSwyMjEsLjIwKTtcbiAgICAgIC0tYy1ib3JkZXItMjpyZ2JhKDEyNywxMTksMjIxLC4wOCk7XG4gICAgICAtLWMtZGl2aWRlcjpyZ2JhKDEyNywxMTksMjIxLC4wNik7XG4gICAgICAtLWMtc3RyaXBlOnJnYmEoMTI3LDExOSwyMjEsLjAzNSk7XG4gICAgICAtLWMtYWNjZW50OiNBRkE5RUM7XG4gICAgICAtLWMtYWNjZW50LTI6I0NFQ0JGNjtcbiAgICAgIC0tYy1iaWQ6IzVEQ0FBNTtcbiAgICAgIC0tYy1iaWQtMjojOUZFMUNCO1xuICAgICAgLS1jLWJpZC1yZ2I6OTMsMjAyLDE2NTtcbiAgICAgIC0tYy1hc2s6I0YwOTU5NTtcbiAgICAgIC0tYy1hc2stMjojRjVDNEIzO1xuICAgICAgLS1jLWFzay1yZ2I6MjQwLDE0OSwxNDk7XG4gICAgICAtLWMtc2hhZG93OnJnYmEoMTI3LDExOSwyMjEsLjE4KTtcbiAgICB9XG4gICAgLmhtICp7Ym94LXNpemluZzpib3JkZXItYm94fVxuICAgIC5obS1jYXJke2JvcmRlci1yYWRpdXM6MTJweDtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyOi41cHggc29saWQgdmFyKC0tYy1ib3JkZXIpO2JhY2tncm91bmQ6dmFyKC0tYy1iZyk7Y29sb3I6dmFyKC0tYy10ZXh0KTtib3gtc2hhZG93OjAgMCA2MHB4IHZhcigtLWMtc2hhZG93KSwwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMDIpfVxuICAgIC5obS12aWV3e2Rpc3BsYXk6bm9uZX1cbiAgICAvKiBhIGNvbHVtbiwgc28gdGhhdCBpbiB0aGUgcG9zaXRpb24gLyBwZW5kaW5nIHZpZXdzIHRoZSBzdGF0cyBibG9jayAobGFzdCBjaGlsZCkgY2FuIGFic29yYiB0aGUgZmV3IHNwYXJlIHBpeGVsc1xuICAgICAgIHdoZW4gcGxhdGZvcm0uanMgcGlucyB0aGUgdmlldyB0byB0aGUgbWFpbiB2aWV3J3MgaGVpZ2h0IOKAlCB0aGUgY2FyZCBuZXZlciBjaGFuZ2VzIHNpemUgYmV0d2VlbiB2aWV3cyAqL1xuICAgIC5obS12aWV3LmFjdGl2ZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO292ZXJmbG93OmhpZGRlbn1cbiAgICAuaG0tdmlldyA+IC5wb3Mtc3RhdHN7ZmxleDoxIDAgYXV0b31cbiAgICAuaG0tdGFic3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6OHB4IDEycHg7YmFja2dyb3VuZDp2YXIoLS1jLWJnLTIpO2JvcmRlci1ib3R0b206LjVweCBzb2xpZCB2YXIoLS1jLWJvcmRlci0yKTtnYXA6OHB4fVxuICAgIC5obS10YWJzLWx7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4fVxuICAgIC5obS1iYWNre3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7Ym9yZGVyLXJhZGl1czo0cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtjb2xvcjp2YXIoLS1jLWRpbSk7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YWxsIC4xMnN9XG4gICAgLmhtLWJhY2s6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1jLWJnLTMpO2NvbG9yOnZhcigtLWMtdGV4dCl9XG4gICAgLmhtLXRhYntwYWRkaW5nOjVweCAxMnB4O2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS1jLWRpbSk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtib3JkZXItcmFkaXVzOjRweDtmb250LWZhbWlseTppbmhlcml0O2xldHRlci1zcGFjaW5nOi4wNGVtO3RyYW5zaXRpb246YWxsIC4xNXN9XG4gICAgLmhtLXRhYjpob3Zlcntjb2xvcjp2YXIoLS1jLXRleHQpfVxuICAgIC5obS10YWIub257Y29sb3I6dmFyKC0tYy10ZXh0KTtiYWNrZ3JvdW5kOnZhcigtLWMtYmctMyl9XG4gICAgLmhtLWljb257d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtib3JkZXItcmFkaXVzOjRweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2NvbG9yOnZhcigtLWMtZGltKTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9XG4gICAgLmhtLWljb246aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1jLWJnLTMpO2NvbG9yOnZhcigtLWMtdGV4dCl9XG4gICAgLmhtLXF1b3Rlc3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciBhdXRvIDFmcjtnYXA6NnB4O3BhZGRpbmc6MTBweCAxMnB4O2JhY2tncm91bmQ6dmFyKC0tYy1iZy0yKTtib3JkZXItYm90dG9tOi41cHggc29saWQgdmFyKC0tYy1ib3JkZXItMil9XG4gICAgLmhtLXF7cGFkZGluZzo3cHggMTBweDtib3JkZXItcmFkaXVzOjZweDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDozcHg7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufVxuICAgIC5obS1xLmJpZHtiYWNrZ3JvdW5kOnJnYmEodmFyKC0tYy1iaWQtcmdiKSwuMTApO2JvcmRlcjouNXB4IHNvbGlkIHJnYmEodmFyKC0tYy1iaWQtcmdiKSwuMzApfVxuICAgIC5obS1xLmFza3tiYWNrZ3JvdW5kOnJnYmEodmFyKC0tYy1hc2stcmdiKSwuMTApO2JvcmRlcjouNXB4IHNvbGlkIHJnYmEodmFyKC0tYy1hc2stcmdiKSwuMzApfVxuICAgIC5obS1xbHtmb250LXNpemU6OHB4O2xldHRlci1zcGFjaW5nOi4xNGVtO2ZvbnQtd2VpZ2h0OjUwMDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjNweH1cbiAgICAuaG0tcS5iaWQgLmhtLXFse2NvbG9yOnZhcigtLWMtYmlkLTIpfVxuICAgIC5obS1xLmFzayAuaG0tcWx7Y29sb3I6dmFyKC0tYy1hc2stMil9XG4gICAgLmhtLXF2e2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtsZXR0ZXItc3BhY2luZzotLjAxZW07Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfVxuICAgIC5obS1xLmJpZCAuaG0tcXZ7Y29sb3I6dmFyKC0tYy1iaWQtMil9XG4gICAgLmhtLXEuYXNrIC5obS1xdntjb2xvcjp2YXIoLS1jLWFzay0yKX1cbiAgICAuaG0tcXR5e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9XG4gICAgLmhtLXF0eWx7Zm9udC1zaXplOjhweDtjb2xvcjp2YXIoLS1jLWZhaW50KTtsZXR0ZXItc3BhY2luZzouMTJlbTtmb250LXdlaWdodDo1MDA7bWFyZ2luLWJvdHRvbTozcHh9XG4gICAgLmhtLXF0eXZ7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLWMtdGV4dCk7YmFja2dyb3VuZDp2YXIoLS1jLWJnLTMpO3BhZGRpbmc6NHB4IDEwcHg7Ym9yZGVyLXJhZGl1czo0cHg7bWluLXdpZHRoOjQ0cHg7dGV4dC1hbGlnbjpjZW50ZXJ9XG4gICAgLmhtLXF0eS1jb250cm9sc3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDowO2JhY2tncm91bmQ6dmFyKC0tYy1iZy0zKTtib3JkZXItcmFkaXVzOjRweDtib3JkZXI6LjVweCBzb2xpZCB2YXIoLS1jLWJvcmRlci0yKTtvdmVyZmxvdzpoaWRkZW59XG4gICAgLmhtLXF0eS1idG57d2lkdGg6MThweDtoZWlnaHQ6MjJweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2NvbG9yOnZhcigtLWMtZGltKTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTJweDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzowO2xpbmUtaGVpZ2h0OjE7dHJhbnNpdGlvbjphbGwgLjEyc31cbiAgICAuaG0tcXR5LWJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWMtYmctMik7Y29sb3I6dmFyKC0tYy10ZXh0KX1cbiAgICAuaG0tcXR5LWJ0bjphY3RpdmV7Y29sb3I6dmFyKC0tYy1hY2NlbnQtMil9XG4gICAgLmhtLXF0eS1pbnB1dHt3aWR0aDo0NnB4O2hlaWdodDoyMnB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Y29sb3I6dmFyKC0tYy10ZXh0KTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTFweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7bGV0dGVyLXNwYWNpbmc6LS4wMWVtO291dGxpbmU6bm9uZTtwYWRkaW5nOjB9XG4gICAgLmhtLXF0eS1pbnB1dDpmb2N1c3tiYWNrZ3JvdW5kOnZhcigtLWMtYmctMil9XG4gICAgLmhtLXF0eS1wcmVzZXRze2Rpc3BsYXk6ZmxleDtnYXA6MnB4O21hcmdpbi10b3A6M3B4fVxuICAgIC5obS1xdHktcHJlc2V0e2ZsZXg6MTtwYWRkaW5nOjJweCAwO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOi41cHggc29saWQgdmFyKC0tYy1ib3JkZXItMik7Y29sb3I6dmFyKC0tYy1mYWludCk7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjguNXB4O2xldHRlci1zcGFjaW5nOi4wNGVtO2N1cnNvcjpwb2ludGVyO2JvcmRlci1yYWRpdXM6M3B4O3RyYW5zaXRpb246YWxsIC4xMnN9XG4gICAgLmhtLXF0eS1wcmVzZXQ6aG92ZXJ7Y29sb3I6dmFyKC0tYy10ZXh0KTtib3JkZXItY29sb3I6dmFyKC0tYy1kaXZpZGVyKX1cbiAgICAuaG0tcXR5LXByZXNldDphY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1jLWJnLTIpO2NvbG9yOnZhcigtLWMtYWNjZW50LTIpfVxuICAgIC5tYWluLWNvbHN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMjhweCA2NHB4IDM2cHggMWZyO3BhZGRpbmc6MDtiYWNrZ3JvdW5kOnZhcigtLWMtYmctMyk7bWluLWhlaWdodDoyOHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItYm90dG9tOi41cHggc29saWQgdmFyKC0tYy1ib3JkZXItMik7Zm9udC1zaXplOjhweDtsZXR0ZXItc3BhY2luZzouMDhlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6dmFyKC0tYy1mYWludCk7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC13ZWlnaHQ6NTAwfVxuICAgIC5tYWluLWNvbHMgPiBkaXZ7cGFkZGluZzo3cHggMH1cbiAgICAubWFpbi1jb2xzID4gLnB4LWNvbC1oZWFkZXJ7cGFkZGluZzo0cHggMnB4fVxuICAgIC5tYWluLWNvbHMgPiBkaXYgKyBkaXZ7Ym9yZGVyLWxlZnQ6LjVweCBzb2xpZCB2YXIoLS1jLWRpdmlkZXIpfVxuICAgIC5tYWluLWxhZGRlcntwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6NDQwcHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6dmFyKC0tYy1iZyl9XG4gICAgLm1haW4tcm93e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDI4cHggNjRweCAzNnB4IDFmcjtoZWlnaHQ6MjBweDthbGlnbi1pdGVtczpzdHJldGNoO2JvcmRlci1ib3R0b206LjVweCBzb2xpZCB2YXIoLS1jLWRpdmlkZXIpO3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyfVxuICAgIC5tYWluLXJvdzpudGgtY2hpbGQob2RkKXtiYWNrZ3JvdW5kOnZhcigtLWMtc3RyaXBlKX1cbiAgICAubWFpbi1jZWxse2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MTBweDtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufVxuICAgIC5tYWluLXJvdyA+IC5tYWluLWNlbGwgKyAubWFpbi1jZWxse2JvcmRlci1sZWZ0Oi41cHggc29saWQgdmFyKC0tYy1kaXZpZGVyKX1cbiAgICAubWFpbi1jZWxsLmhlYXR7Zm9udC13ZWlnaHQ6NTAwfVxuICAgIC5tYWluLWNlbGwuaGVhdC5idXl7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3BhZGRpbmctcmlnaHQ6N3B4O2NvbG9yOnZhcigtLWMtYmlkLTIpfVxuICAgIC5tYWluLWNlbGwuaGVhdC5zZWxse2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmctbGVmdDo3cHg7Y29sb3I6dmFyKC0tYy1hc2stMil9XG4gICAgLm1haW4tY2VsbC5oZWF0IC5oZWF0LWJne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjFweDtib3JkZXItcmFkaXVzOjFweDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjI1c31cbiAgICAubWFpbi1jZWxsLmhlYXQgc3Bhbntwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9XG4gICAgLm1haW4tY2VsbC5oZWF0LmJ1eTpob3ZlciAuaGVhdC1iZ3tiYWNrZ3JvdW5kOnJnYmEodmFyKC0tYy1iaWQtcmdiKSwuNTUpIWltcG9ydGFudDtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCB2YXIoLS1jLWJpZCl9XG4gICAgLm1haW4tY2VsbC5oZWF0LnNlbGw6aG92ZXIgLmhlYXQtYmd7YmFja2dyb3VuZDpyZ2JhKHZhcigtLWMtYXNrLXJnYiksLjU1KSFpbXBvcnRhbnQ7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggdmFyKC0tYy1hc2spfVxuICAgIEBrZXlmcmFtZXMgaG0tZmxhc2h7MCV7ZmlsdGVyOmJyaWdodG5lc3MoMi40KX0xMDAle2ZpbHRlcjpicmlnaHRuZXNzKDEpfX1cbiAgICAubWFpbi1jZWxsLmhlYXQgLmhlYXQtYmcuZmxhc2h7YW5pbWF0aW9uOmhtLWZsYXNoIC41NXMgZWFzZS1vdXR9XG4gICAgLm1haW4tY2VsbC5teXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MH1cbiAgICAubWFpbi1jaGlwe2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXJhZGl1czoycHg7cGFkZGluZzowIDRweDtmb250LXNpemU6OXB4O2ZvbnQtd2VpZ2h0OjUwMDttaW4td2lkdGg6MThweDtoZWlnaHQ6MTNweDtsZXR0ZXItc3BhY2luZzouMDJlbTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMXN9XG4gICAgLm1haW4tY2hpcDpob3Zlcnt0cmFuc2Zvcm06c2NhbGUoMS4xNSl9XG4gICAgLm1haW4tY2VsbC52b2x7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7cGFkZGluZzowIDRweDtjb2xvcjp2YXIoLS1jLWRpbSk7Zm9udC1zaXplOjlweDtmb250LXdlaWdodDo1MDA7cG9zaXRpb246cmVsYXRpdmV9XG4gICAgLm1haW4tY2VsbC52b2wgLnZiYXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtib3R0b206MnB4O2xlZnQ6MDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjEzKTtib3JkZXItcmFkaXVzOjFweDt0cmFuc2l0aW9uOndpZHRoIC4zNXMgZWFzZS1vdXR9XG4gICAgQGtleWZyYW1lcyBobS12Zmxhc2h7MCV7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC40Mil9MTAwJXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjEzKX19XG4gICAgLm1haW4tY2VsbC52b2wgLnZiYXIuZmxhc2h7YW5pbWF0aW9uOmhtLXZmbGFzaCAuNnMgZWFzZS1vdXR9XG4gICAgLm1haW4tY2VsbC52b2wgc3Bhbntwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9XG4gICAgLm1haW4tY2VsbC5weHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0tYy10ZXh0KTtiYWNrZ3JvdW5kOnZhcigtLWMtYmcpO3BhZGRpbmc6MCA0cHh9XG4gICAgLm1haW4tY2VsbC5weCAucGF7Zm9udC1zaXplOjEwcHg7Y29sb3I6dmFyKC0tYy1kaW0pfVxuICAgIC5tYWluLWNlbGwucHggLnBie2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMDtsZXR0ZXItc3BhY2luZzotLjAyZW07Y29sb3I6dmFyKC0tYy10ZXh0KX1cbiAgICAubWFpbi1yb3cuYmJpZCAubWFpbi1jZWxsLnB4e2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMS41cHggdmFyKC0tYy1iaWQpO2JvcmRlci1yYWRpdXM6MnB4fVxuICAgIC5tYWluLXJvdy5iYXNrIC5tYWluLWNlbGwucHh7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxLjVweCB2YXIoLS1jLWFzayk7Ym9yZGVyLXJhZGl1czoycHh9XG4gICAgLm1haW4tcm93LmJiaWQgLm1haW4tY2VsbC5weCAucGJ7Y29sb3I6dmFyKC0tYy1iaWQtMil9XG4gICAgLm1haW4tcm93LmJhc2sgLm1haW4tY2VsbC5weCAucGJ7Y29sb3I6dmFyKC0tYy1hc2stMil9XG4gICAgLm1haW4tdGlwe3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MzA7YmFja2dyb3VuZDp2YXIoLS1jLWJnLTIpO2JvcmRlci1yYWRpdXM6NnB4O3BhZGRpbmc6NXB4IDEwcHg7cG9pbnRlci1ldmVudHM6bm9uZTtmb250LWZhbWlseTppbmhlcml0O29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjFzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXNpemU6MTBweDtmb250LXdlaWdodDo1MDA7bGV0dGVyLXNwYWNpbmc6LjAyZW19XG4gICAgLm1haW4tdGlwLm9ue29wYWNpdHk6MX1cbiAgICAubWFpbi10aXAuYnV5e2NvbG9yOnZhcigtLWMtYmlkLTIpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYy1iaWQpfVxuICAgIC5tYWluLXRpcC5zZWxse2NvbG9yOnZhcigtLWMtYXNrLTIpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYy1hc2spfVxuICAgIC5tYWluLXRpcCAucGlwe29wYWNpdHk6Ljc7bWFyZ2luLWxlZnQ6NnB4O2ZvbnQtd2VpZ2h0OjQwMH1cbiAgICAubWFpbi1ncmlkLWZvb3R7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMjhweCA2NHB4IDM2cHggMWZyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjA7YmFja2dyb3VuZDp2YXIoLS1jLWJnLTIpO2JvcmRlci10b3A6LjVweCBzb2xpZCB2YXIoLS1jLWJvcmRlci0yKTttaW4taGVpZ2h0OjM0cHh9XG4gICAgLm1haW4tZm9vdC1zcGFjZXItY2VsbHtoZWlnaHQ6MzRweDtib3JkZXItbGVmdDouNXB4IHNvbGlkIHZhcigtLWMtZGl2aWRlcil9XG4gICAgLm1haW4tZm9vdC1zcGFjZXItY2VsbDpmaXJzdC1jaGlsZHtib3JkZXItbGVmdDpub25lfVxuICAgIC5weC1jb2wtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjJweDtwYWRkaW5nOjAgMnB4O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9XG4gICAgLnB4LWNvbC1sYWJlbHtmb250LXNpemU6OHB4O2xldHRlci1zcGFjaW5nOi4wOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjp2YXIoLS1jLWZhaW50KTtmb250LXdlaWdodDo1MDA7ZmxleDoxO3RleHQtYWxpZ246Y2VudGVyfVxuICAgIC5weC1zY3JvbGwtYnRue3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7Ym9yZGVyLXJhZGl1czozcHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtjb2xvcjp2YXIoLS1jLWRpbSk7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtZmFtaWx5OmluaGVyaXQ7ZmxleC1zaHJpbms6MDt0cmFuc2l0aW9uOmFsbCAuMTJzO3BhZGRpbmc6MH1cbiAgICAucHgtc2Nyb2xsLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWMtYmctMik7Y29sb3I6dmFyKC0tYy10ZXh0KX1cbiAgICAucHgtc2Nyb2xsLWJ0bjphY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1jLWJnKTtjb2xvcjp2YXIoLS1jLWFjY2VudC0yKX1cbiAgICAucG9zLXBvc2hke2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6NTJweCAxZnIgNTJweCA4NHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjA7YmFja2dyb3VuZDp2YXIoLS1jLWJnLTMpO2JvcmRlci10b3A6LjVweCBzb2xpZCB2YXIoLS1jLWJvcmRlci0yKTtib3JkZXItYm90dG9tOi41cHggc29saWQgdmFyKC0tYy1ib3JkZXItMik7bWluLWhlaWdodDoyOHB4fVxuICAgIC5wb3MtcG9zaGQtc2lkZXtoZWlnaHQ6MjhweH1cbiAgICAucG9zLXBvc2hkLW1pZHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6MCA4cHg7Z2FwOjZweDtib3JkZXItbGVmdDouNXB4IHNvbGlkIHZhcigtLWMtZGl2aWRlcik7Ym9yZGVyLXJpZ2h0Oi41cHggc29saWQgdmFyKC0tYy1kaXZpZGVyKTtoZWlnaHQ6MjhweH1cbiAgICAucG9zLXBvc2hkLXB4e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLWxlZnQ6LjVweCBzb2xpZCB2YXIoLS1jLWRpdmlkZXIpO2hlaWdodDoyOHB4O3BhZGRpbmc6MCAycHh9XG4gICAgLnBvcy1jdGwtYnRue3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHg7Ym9yZGVyLXJhZGl1czo0cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1mYW1pbHk6aW5oZXJpdDtwYWRkaW5nOjA7dHJhbnNpdGlvbjphbGwgLjEyc31cbiAgICAucG9zLWN0bC1idG4gc3Zne3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHh9XG4gICAgLnBvcy1jdGwtYnRuLnNse2NvbG9yOnZhcigtLWMtYXNrKX1cbiAgICAucG9zLWN0bC1idG4udHB7Y29sb3I6dmFyKC0tYy1iaWQpfVxuICAgIC5wb3MtY3RsLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWMtYmctMil9XG4gICAgLnBvcy1jdGwtYnRuLmRlbGV0ZS5zbDpob3ZlcntiYWNrZ3JvdW5kOnJnYmEodmFyKC0tYy1hc2stcmdiKSwuMTQpfVxuICAgIC5wb3MtY3RsLWJ0bi5kZWxldGUudHA6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKHZhcigtLWMtYmlkLXJnYiksLjE0KX1cbiAgICAucG9zLWNlbGwucG5sLmVudHJ5LXBubHtmb250LXNpemU6MTBweDtmb250LXdlaWdodDo1MDA7bGV0dGVyLXNwYWNpbmc6LjA4ZW19XG4gICAgLnBvcy1jZWxsLnBubC5lbnRyeS1wbmwubG9uZ3tjb2xvcjp2YXIoLS1jLWJpZC0yKX1cbiAgICAucG9zLWNlbGwucG5sLmVudHJ5LXBubC5zaG9ydHtjb2xvcjp2YXIoLS1jLWFzay0yKX1cbiAgICAucG9zLWNsb3NlLXBubC1idG57ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjNweCAxMHB4O2hlaWdodDoyMnB4O2JhY2tncm91bmQ6dmFyKC0tYy1iZy0yKTtib3JkZXI6LjVweCBzb2xpZCB2YXIoLS1jLWRpdmlkZXIpO2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOnZhcigtLWMtZGltKTtjdXJzb3I6cG9pbnRlcjtmb250LWZhbWlseTppbmhlcml0O3RyYW5zaXRpb246YWxsIC4xNXN9XG4gICAgLnBvcy1jbG9zZS1wbmwtYnRuIHN2Z3t3aWR0aDoxMXB4O2hlaWdodDoxMXB4O2ZsZXgtc2hyaW5rOjA7Y29sb3I6dmFyKC0tYy1kaW0pfVxuICAgIC5wb3MtY2xvc2UtcG5sLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOnJnYmEodmFyKC0tYy1hc2stcmdiKSwuMTIpO2JvcmRlci1jb2xvcjp2YXIoLS1jLWFzayl9XG4gICAgLnBvcy1jbG9zZS1wbmwtYnRuOmhvdmVyIHN2Z3tjb2xvcjp2YXIoLS1jLWFzayl9XG4gICAgLnBvcy1jbG9zZS1wbmx7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtcztsZXR0ZXItc3BhY2luZzotLjAxZW19XG4gICAgLnBvcy1jbG9zZS1wbmwuZ2Fpbntjb2xvcjp2YXIoLS1jLWJpZC0yKX1cbiAgICAucG9zLWNsb3NlLXBubC5sb3Nze2NvbG9yOnZhcigtLWMtYXNrLTIpfVxuICAgIC5wb3MtY2xvc2UtcG5sLm5ldXRyYWx7Y29sb3I6dmFyKC0tYy1kaW0pfVxuICAgIC5wb3MtbGFkZGVye3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDozNjBweDsvKiAxOCByb3dzIHggMjBweCA9IFBPU19OIGluIHBsYXRmb3JtLmpzICovb3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6dmFyKC0tYy1iZyl9XG4gICAgLnBvcy1yb3d7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczo1MnB4IDFmciA1MnB4IDg0cHg7aGVpZ2h0OjIwcHg7YWxpZ24taXRlbXM6c3RyZXRjaDtib3JkZXItYm90dG9tOi41cHggc29saWQgdmFyKC0tYy1kaXZpZGVyKTtwb3NpdGlvbjpyZWxhdGl2ZX1cbiAgICAucG9zLXJvdzpudGgtY2hpbGQob2RkKXtiYWNrZ3JvdW5kOnZhcigtLWMtc3RyaXBlKX1cbiAgICAucG9zLWNlbGx7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtcztwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59XG4gICAgLnBvcy1yb3cgPiAucG9zLWNlbGwgKyAucG9zLWNlbGx7Ym9yZGVyLWxlZnQ6LjVweCBzb2xpZCB2YXIoLS1jLWRpdmlkZXIpfVxuICAgIC5wb3MtY2VsbC5zbC1jb2wsIC5wb3MtY2VsbC50cC1jb2x7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xMnN9XG4gICAgLnBvcy1jZWxsLnNsLWNvbDpob3ZlciwgLnBvcy1jZWxsLnRwLWNvbDpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4wMil9XG4gICAgLnBvcy1jZWxsLnNsLWNvbCAuY29sLW1hcmssIC5wb3MtY2VsbC50cC1jb2wgLmNvbC1tYXJre3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BvaW50ZXItZXZlbnRzOm5vbmV9XG4gICAgLnBvcy1yb3cuaGFzLXNsIC5wb3MtY2VsbC5zbC1jb2wgLmNvbC1tYXJre2NvbG9yOnZhcigtLWMtYXNrKX1cbiAgICAucG9zLXJvdy5oYXMtc2wgLnBvcy1jZWxsLnNsLWNvbCAuY29sLW1hcmsgc3Zne3dpZHRoOjEzcHg7aGVpZ2h0OjEzcHg7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAycHggcmdiYSh2YXIoLS1jLWFzay1yZ2IpLC40KSl9XG4gICAgLnBvcy1yb3cuaGFzLXRwIC5wb3MtY2VsbC50cC1jb2wgLmNvbC1tYXJre2NvbG9yOnZhcigtLWMtYmlkKX1cbiAgICAucG9zLXJvdy5oYXMtdHAgLnBvcy1jZWxsLnRwLWNvbCAuY29sLW1hcmsgc3Zne3dpZHRoOjEzcHg7aGVpZ2h0OjEzcHg7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAycHggcmdiYSh2YXIoLS1jLWJpZC1yZ2IpLC40KSl9XG4gICAgLnBvcy1yb3cuaGFzLXNsIC5wb3MtY2VsbC5zbC1jb2wsIC5wb3Mtcm93Lmhhcy1zbCAucG9zLWNlbGwucHh7cG9zaXRpb246cmVsYXRpdmV9XG4gICAgLnBvcy1yb3cuaGFzLXNsIC5wb3MtY2VsbC5zbC1jb2w6OmFmdGVyLCAucG9zLXJvdy5oYXMtc2wgLnBvcy1jZWxsLnB4OjphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MXB4O2JvcmRlcjoxLjVweCBkb3R0ZWQgdmFyKC0tYy1hc2spO2JvcmRlci1yYWRpdXM6MnB4O3BvaW50ZXItZXZlbnRzOm5vbmV9XG4gICAgLnBvcy1yb3cuaGFzLXRwIC5wb3MtY2VsbC50cC1jb2wsIC5wb3Mtcm93Lmhhcy10cCAucG9zLWNlbGwucHh7cG9zaXRpb246cmVsYXRpdmV9XG4gICAgLnBvcy1yb3cuaGFzLXRwIC5wb3MtY2VsbC50cC1jb2w6OmFmdGVyLCAucG9zLXJvdy5oYXMtdHAgLnBvcy1jZWxsLnB4OjphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MXB4O2JvcmRlcjoxLjVweCBkb3R0ZWQgdmFyKC0tYy1iaWQpO2JvcmRlci1yYWRpdXM6MnB4O3BvaW50ZXItZXZlbnRzOm5vbmV9XG4gICAgLnBvcy1jZWxsLnBubHtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZTo5cHg7Zm9udC13ZWlnaHQ6NTAwO2N1cnNvcjpkZWZhdWx0fVxuICAgIC5wb3MtY2VsbC5wbmwucHJvantjb2xvcjp2YXIoLS1jLWRpbSk7Zm9udC13ZWlnaHQ6NDAwfVxuICAgIC5wcm9qLXRpY2tjb3VudHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7Zm9udC1zaXplOjlweDtmb250LXdlaWdodDo1MDA7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zO2xldHRlci1zcGFjaW5nOi4wMmVtfVxuICAgIC5wcm9qLXRpY2tjb3VudC50cHtjb2xvcjp2YXIoLS1jLWJpZC0yKX1cbiAgICAucHJvai10aWNrY291bnQuc2x7Y29sb3I6dmFyKC0tYy1hc2stMil9XG4gICAgLnBvcy1jZWxsLnBubC5sb3Nze2NvbG9yOnZhcigtLWMtYXNrLTIpfVxuICAgIC5wb3MtY2VsbC5wbmwuZ2Fpbntjb2xvcjp2YXIoLS1jLWJpZC0yKX1cbiAgICAucG9zLWNlbGwucG5sIC5wbmwtYmd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MXB4O2JvcmRlci1yYWRpdXM6MXB4O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMjVzfVxuICAgIC5wb3MtY2VsbC5wbmwgc3Bhbntwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9XG4gICAgLnBvcy1jZWxsLnB4e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS1jLXRleHQpO2JhY2tncm91bmQ6dmFyKC0tYy1iZyk7cGFkZGluZzowIDhweH1cbiAgICAucG9zLWNlbGwucHggLnBhe2ZvbnQtc2l6ZToxMHB4O2NvbG9yOnZhcigtLWMtZGltKX1cbiAgICAucG9zLWNlbGwucHggLnBie2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMDtsZXR0ZXItc3BhY2luZzotLjAyZW07Y29sb3I6dmFyKC0tYy10ZXh0KX1cbiAgICAucG9zLXJvdy5tYXJrZXQgLnBvcy1jZWxsLnB4e2JveC1zaGFkb3c6aW5zZXQgMCAtMS41cHggMCB2YXIoLS1jLWFzayl9XG4gICAgLnBvcy1yb3cubWFya2V0IC5wb3MtY2VsbC5weCAucGJ7Y29sb3I6dmFyKC0tYy1hc2stMil9XG4gICAgLnBvcy1yb3cuaGFzLXNsIC5wb3MtY2VsbC5zbC1jb2x7Y3Vyc29yOmdyYWJ9XG4gICAgLnBvcy1yb3cuaGFzLXRwIC5wb3MtY2VsbC50cC1jb2x7Y3Vyc29yOmdyYWJ9XG4gICAgLnBvcy1sYWRkZXIuZHJhZ2dpbmctc2wsIC5wb3MtbGFkZGVyLmRyYWdnaW5nLXRwe2N1cnNvcjpncmFiYmluZ31cbiAgICAucG9zLWxhZGRlci5kcmFnZ2luZy1zbCAqLCAucG9zLWxhZGRlci5kcmFnZ2luZy10cCAqe2N1cnNvcjpncmFiYmluZyFpbXBvcnRhbnR9XG4gICAgQGtleWZyYW1lcyBwb3MtZHJhZy1ibGluay1iZy1zbHswJSwxMDAle2JhY2tncm91bmQtY29sb3I6cmdiYSh2YXIoLS1jLWFzay1yZ2IpLDAuMDQpfTUwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEodmFyKC0tYy1hc2stcmdiKSwwLjMyKX19XG4gICAgQGtleWZyYW1lcyBwb3MtZHJhZy1ibGluay1iZy10cHswJSwxMDAle2JhY2tncm91bmQtY29sb3I6cmdiYSh2YXIoLS1jLWJpZC1yZ2IpLDAuMDQpfTUwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEodmFyKC0tYy1iaWQtcmdiKSwwLjMyKX19XG4gICAgQGtleWZyYW1lcyBwb3MtZHJhZy1ibGluay1udW17MCUsMTAwJXtvcGFjaXR5OjAuNDV9NTAle29wYWNpdHk6MX19XG4gICAgLnBvcy1sYWRkZXIuZHJhZ2dpbmctc2wgLnBvcy1jZWxsLnNsLWNvbDpoYXMoLnByb2otdGlja2NvdW50KSwgLnBvcy1sYWRkZXIuZHJhZ2dpbmctc2wgLnBvcy1jZWxsLnBubC5wcm9qe2FuaW1hdGlvbjpwb3MtZHJhZy1ibGluay1iZy1zbCAxLjRzIGVhc2UtaW4tb3V0IGluZmluaXRlfVxuICAgIC5wb3MtbGFkZGVyLmRyYWdnaW5nLXRwIC5wb3MtY2VsbC50cC1jb2w6aGFzKC5wcm9qLXRpY2tjb3VudCksIC5wb3MtbGFkZGVyLmRyYWdnaW5nLXRwIC5wb3MtY2VsbC5wbmwucHJvanthbmltYXRpb246cG9zLWRyYWctYmxpbmstYmctdHAgMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZX1cbiAgICAucG9zLWxhZGRlci5kcmFnZ2luZy1zbCAucG9zLWNlbGwuc2wtY29sIC5wcm9qLXRpY2tjb3VudCwgLnBvcy1sYWRkZXIuZHJhZ2dpbmctdHAgLnBvcy1jZWxsLnRwLWNvbCAucHJvai10aWNrY291bnQsIC5wb3MtbGFkZGVyLmRyYWdnaW5nLXNsIC5wb3MtY2VsbC5wbmwucHJvaiA+IHNwYW4sIC5wb3MtbGFkZGVyLmRyYWdnaW5nLXRwIC5wb3MtY2VsbC5wbmwucHJvaiA+IHNwYW57YW5pbWF0aW9uOnBvcy1kcmFnLWJsaW5rLW51bSAxLjRzIGVhc2UtaW4tb3V0IGluZmluaXRlfVxuICAgIC5wb3MtbWFycXVlZXtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO2JvcmRlcjoxLjVweCBkYXNoZWQgdmFyKC0tYy1hc2spO2JvcmRlci1yYWRpdXM6MnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDt0cmFuc2l0aW9uOm9wYWNpdHkgLjEycztvcGFjaXR5OjA7ei1pbmRleDoxOH1cbiAgICAucG9zLW1hcnF1ZWUub257b3BhY2l0eToxfVxuICAgIC5wb3MtbWFycXVlZS5nYWlue2JvcmRlci1jb2xvcjp2YXIoLS1jLWJpZCl9XG4gICAgLnBvcy1tYXJxdWVlLWxhYmVse3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMXB4O2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtMTAwJSk7Zm9udC1zaXplOjlweDtmb250LXdlaWdodDo1MDA7bGV0dGVyLXNwYWNpbmc6LjA4ZW07cGFkZGluZzoycHggNnB4O2JvcmRlci1yYWRpdXM6M3B4IDNweCAwIDA7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjVweH1cbiAgICAucG9zLW1hcnF1ZWUuZ2FpbiAucG9zLW1hcnF1ZWUtbGFiZWx7YmFja2dyb3VuZDpyZ2JhKHZhcigtLWMtYmlkLXJnYiksLjE4KTtjb2xvcjp2YXIoLS1jLWJpZC0yKTtib3JkZXI6MXB4IGRhc2hlZCB2YXIoLS1jLWJpZCk7Ym9yZGVyLWJvdHRvbTpub25lfVxuICAgIC5wb3MtbWFycXVlZTpub3QoLmdhaW4pIC5wb3MtbWFycXVlZS1sYWJlbHtiYWNrZ3JvdW5kOnJnYmEodmFyKC0tYy1hc2stcmdiKSwuMTgpO2NvbG9yOnZhcigtLWMtYXNrLTIpO2JvcmRlcjoxcHggZGFzaGVkIHZhcigtLWMtYXNrKTtib3JkZXItYm90dG9tOm5vbmV9XG4gICAgLnBvcy10aXB7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDozMDtiYWNrZ3JvdW5kOnZhcigtLWMtYmctMik7Ym9yZGVyLXJhZGl1czo2cHg7cGFkZGluZzo2cHggMTBweDtwb2ludGVyLWV2ZW50czpub25lO2ZvbnQtZmFtaWx5OmluaGVyaXQ7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMTJzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXNpemU6MTBweDtmb250LXdlaWdodDo1MDA7bGV0dGVyLXNwYWNpbmc6LjAyZW19XG4gICAgLnBvcy10aXAub257b3BhY2l0eToxfVxuICAgIC5wb3MtdGlwLnNse2NvbG9yOnZhcigtLWMtYXNrLTIpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYy1hc2spfVxuICAgIC5wb3MtdGlwLnRwe2NvbG9yOnZhcigtLWMtYmlkLTIpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYy1iaWQpfVxuICAgIC5wb3MtdGlwIC50aXAtbHtmb250LXNpemU6OXB4O2xldHRlci1zcGFjaW5nOi4xMmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjp2YXIoLS1jLWRpbSk7Zm9udC13ZWlnaHQ6NTAwO21hcmdpbi1ib3R0b206MnB4O2Rpc3BsYXk6YmxvY2t9XG4gICAgLnBvcy1mb290e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6NTJweCAxZnIgNTJweCA4NHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjA7YmFja2dyb3VuZDp2YXIoLS1jLWJnLTIpO2JvcmRlci10b3A6LjVweCBzb2xpZCB2YXIoLS1jLWJvcmRlci0yKTttaW4taGVpZ2h0OjM0cHh9XG4gICAgLnBvcy1mb290LWwsIC5wb3MtZm9vdC1ye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtoZWlnaHQ6MzRweH1cbiAgICAucG9zLWZvb3Qtcntib3JkZXItbGVmdDouNXB4IHNvbGlkIHZhcigtLWMtZGl2aWRlcil9XG4gICAgLnBvcy1mb290LW1pZHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzowIDhweH1cbiAgICAucG9zLWZvb3QtYXJyb3ctd3JhcHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLWxlZnQ6LjVweCBzb2xpZCB2YXIoLS1jLWRpdmlkZXIpO2hlaWdodDozNHB4O2NvbG9yOnZhcigtLWMtZmFpbnQpfVxuICAgIC5wb3MtZm9vdC1xdHl7Zm9udC1zaXplOjEwcHg7Y29sb3I6dmFyKC0tYy1kaW0pO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc31cbiAgICAucG9zLXNsdHB7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgYXV0byAxZnI7Z2FwOjhweDtwYWRkaW5nOjExcHggMTJweCA5cHg7YmFja2dyb3VuZDp2YXIoLS1jLWJnKTtib3JkZXItdG9wOi41cHggc29saWQgdmFyKC0tYy1ib3JkZXItMil9XG4gICAgLnBvcy1zbHRwLWZ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NHB4fVxuICAgIC5wb3Mtc2x0cC1se2ZvbnQtc2l6ZTo5cHg7bGV0dGVyLXNwYWNpbmc6LjEyZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtd2VpZ2h0OjUwMH1cbiAgICAucG9zLXNsdHAtbC5zbHtjb2xvcjp2YXIoLS1jLWFzayl9XG4gICAgLnBvcy1zbHRwLWwudHB7Y29sb3I6dmFyKC0tYy1iaWQpfVxuICAgIC5wb3Mtc2x0cC1pe2JhY2tncm91bmQ6dmFyKC0tYy1iZy0zKTtib3JkZXI6LjVweCBzb2xpZCB2YXIoLS1jLWJvcmRlci0yKTtib3JkZXItcmFkaXVzOjRweDtwYWRkaW5nOjVweCA4cHg7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLWMtdGV4dCk7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7d2lkdGg6MTAwJX1cbiAgICAucG9zLXNsdHAtaTpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOnZhcigtLWMtYWNjZW50KX1cbiAgICAucG9zLXNsdHAtaS5lbXB0eXtjb2xvcjp2YXIoLS1jLWZhaW50KTtmb250LXdlaWdodDo0MDB9XG4gICAgLnBvcy1zbHRwLWFycm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6dmFyKC0tYy1mYWludCk7cGFkZGluZy10b3A6MThweH1cbiAgICAucG9zLXN0YXRze3BhZGRpbmc6OHB4IDEycHggMTJweDtiYWNrZ3JvdW5kOnZhcigtLWMtYmcpO2JvcmRlci10b3A6LjVweCBzb2xpZCB2YXIoLS1jLWRpdmlkZXIpO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjVweH1cbiAgICAucG9zLXN0YXQtcm93e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOjEwcHh9XG4gICAgLnBvcy1zdGF0LXJvdyAubHtmb250LXNpemU6OXB4O2xldHRlci1zcGFjaW5nOi4xMGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tYy1mYWludCl9XG4gICAgLnBvcy1zdGF0LXJvdy5zbCAubHtjb2xvcjp2YXIoLS1jLWFzayl9XG4gICAgLnBvcy1zdGF0LXJvdy50cCAubHtjb2xvcjp2YXIoLS1jLWJpZCl9XG4gICAgLnBvcy1zdGF0LXJvdyAudntjb2xvcjp2YXIoLS1jLXRleHQpO2ZvbnQtc2l6ZToxMXB4O2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtcztmb250LXdlaWdodDo1MDB9XG4gICAgLnBvcy1zdGF0LXJvdy5zbCAudntjb2xvcjp2YXIoLS1jLWFzayl9XG4gICAgLnBvcy1zdGF0LXJvdy50cCAudntjb2xvcjp2YXIoLS1jLWJpZCl9XG4gICAgLnBvcy1zdGF0LXJvdyAudi5lbXB0eXtjb2xvcjp2YXIoLS1jLWZhaW50KTtmb250LXdlaWdodDo0MDB9XG4gICAgLnBlbmRpbmctbGFkZGVyIC5wb3MtY2VsbC5zbC1jb2wucGVuZGluZy16b25lLCAucGVuZGluZy1sYWRkZXIgLnBvcy1jZWxsLnRwLWNvbC5wZW5kaW5nLXpvbmV7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wNil9XG4gICAgLnBlbmRpbmctbGFkZGVyIC5wcm9qLXRpY2tjb3VudC5wZW5kaW5ne2NvbG9yOnZhcigtLWMtZGltKX1cbiAgICAucGVuZGluZy1sYWRkZXIgLnBvcy1jZWxsLnBubC5wZW5kaW5nLWVudHJ5LXBubHtmb250LXNpemU6MTBweDtmb250LXdlaWdodDo1MDA7bGV0dGVyLXNwYWNpbmc6LjA4ZW07Y29sb3I6dmFyKC0tYy10ZXh0KX1cbiAgICAucGVuZGluZy1sYWRkZXIgLnBvcy1jZWxsLnBubC5wZW5kaW5nLWUybXtmb250LXNpemU6OXB4O2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS1jLWRpbSl9XG4gICAgLnBlbmRpbmctbGFkZGVyIC5wb3Mtcm93Lmhhcy1zbCAucG9zLWNlbGwuc2wtY29sOjphZnRlciwgLnBlbmRpbmctbGFkZGVyIC5wb3Mtcm93Lmhhcy1zbCAucG9zLWNlbGwucHg6OmFmdGVyLCAucGVuZGluZy1sYWRkZXIgLnBvcy1yb3cuaGFzLXRwIC5wb3MtY2VsbC50cC1jb2w6OmFmdGVyLCAucGVuZGluZy1sYWRkZXIgLnBvcy1yb3cuaGFzLXRwIC5wb3MtY2VsbC5weDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWMtZGltKSFpbXBvcnRhbnR9XG4gICAgLnBvcy1jYW5jZWwtYnRue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzozcHggMTBweDtoZWlnaHQ6MjJweDtiYWNrZ3JvdW5kOnZhcigtLWMtYmctMik7Ym9yZGVyOi41cHggc29saWQgdmFyKC0tYy1kaXZpZGVyKTtib3JkZXItcmFkaXVzOjRweDtjb2xvcjp2YXIoLS1jLWRpbSk7Y3Vyc29yOnBvaW50ZXI7Zm9udC1mYW1pbHk6aW5oZXJpdDt0cmFuc2l0aW9uOmFsbCAuMTVzfVxuICAgIC5wb3MtY2FuY2VsLWJ0biBzdmd7d2lkdGg6MTFweDtoZWlnaHQ6MTFweDtmbGV4LXNocmluazowO2NvbG9yOnZhcigtLWMtZGltKX1cbiAgICAucG9zLWNhbmNlbC1idG4gc3Bhbntmb250LXNpemU6MTAuNXB4O2ZvbnQtd2VpZ2h0OjUwMDtsZXR0ZXItc3BhY2luZzouMDhlbTtjb2xvcjp2YXIoLS1jLWRpbSl9XG4gICAgLnBvcy1jYW5jZWwtYnRuOmhvdmVye2JhY2tncm91bmQ6cmdiYSh2YXIoLS1jLWFzay1yZ2IpLC4xMik7Ym9yZGVyLWNvbG9yOnZhcigtLWMtYXNrKX1cbiAgICAucG9zLWNhbmNlbC1idG46aG92ZXIgc3ZnLCAucG9zLWNhbmNlbC1idG46aG92ZXIgc3Bhbntjb2xvcjp2YXIoLS1jLWFzayl9XG5cbiAgICAvKiBTY2FscGVyQm9vayBpbnN0cnVtZW50IGhlYWRlciAocmVwbGFjZXMgdGhlIE9yZGVyIGVudHJ5IC8gU2NhbHBlciB0YWIgc3RyaXApICovXG4gICAgLmhtLWhlYWR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nOjEwcHggMTJweDtiYWNrZ3JvdW5kOnZhcigtLWMtYmctMik7Ym9yZGVyLWJvdHRvbTouNXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLTIpfVxuICAgIC5obS1sb2dvc3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtc2hyaW5rOjB9XG4gICAgLmhtLWxvZ297d2lkdGg6MjZweDtoZWlnaHQ6MjZweDtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjhweDtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LjA0ZW07Ym9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWMtYmctMik7Ym94LXNoYWRvdzowIDAgMCAxcHggdmFyKC0tYy1ib3JkZXIpfVxuICAgIC5obS1sb2dvICsgLmhtLWxvZ297bWFyZ2luLWxlZnQ6LThweH1cbiAgICAuaG0tdGl0bGUtYnRue2ZsZXg6MTttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjJweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO3BhZGRpbmc6MDtjdXJzb3I6cG9pbnRlcjtmb250LWZhbWlseTppbmhlcml0O3RleHQtYWxpZ246bGVmdH1cbiAgICAuaG0tdGl0bGV7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tYy10ZXh0KTtsZXR0ZXItc3BhY2luZzotLjAxZW07d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO21heC13aWR0aDoxOTBweH1cbiAgICAuaG0tc3Vie2ZvbnQtc2l6ZTo5cHg7Y29sb3I6dmFyKC0tYy1kaW0pO2xldHRlci1zcGFjaW5nOi4wNmVtO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczttYXgtd2lkdGg6MTkwcHh9XG4gICAgLmhtLXN1YiBie2NvbG9yOnZhcigtLWMtYWNjZW50KTtmb250LXdlaWdodDo1MDB9XG4gICAgLmhtLWNhcmV0e2NvbG9yOnZhcigtLWMtZGltKTtmbGV4LXNocmluazowfVxuICAgIC5obS1sYXN0e2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS1jLXRleHQpO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtcztsZXR0ZXItc3BhY2luZzotLjAxZW07cGFkZGluZy1sZWZ0OjhweDtib3JkZXItbGVmdDouNXB4IHNvbGlkIHZhcigtLWMtZGl2aWRlcik7ZmxleC1zaHJpbms6MH1cbiAgICAuaG0tbGFzdCBzdXB7Zm9udC1zaXplOjlweDtjb2xvcjp2YXIoLS1jLWRpbSk7bWFyZ2luLWxlZnQ6MXB4fVxuICAgIC5obS1tZW51e2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjhweDtyaWdodDo4cHg7dG9wOmNhbGMoMTAwJSArIDRweCk7ei1pbmRleDo0MDtiYWNrZ3JvdW5kOnZhcigtLWMtYmctMik7Ym9yZGVyOi41cHggc29saWQgdmFyKC0tYy1ib3JkZXIpO2JvcmRlci1yYWRpdXM6OHB4O2JveC1zaGFkb3c6MCAxOHB4IDQwcHggcmdiYSgwLDAsMCwuNSk7cGFkZGluZzo0cHg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHh9XG4gICAgLmhtLW1lbnUub3BlbntkaXNwbGF5OmZsZXh9XG4gICAgLmhtLW1lbnUtaXRlbXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjJweDtwYWRkaW5nOjhweCAxMHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo2cHg7Y3Vyc29yOnBvaW50ZXI7Zm9udC1mYW1pbHk6aW5oZXJpdDt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6dmFyKC0tYy10ZXh0KX1cbiAgICAuaG0tbWVudS1pdGVtOmhvdmVyLC5obS1tZW51LWl0ZW0ub257YmFja2dyb3VuZDp2YXIoLS1jLWJnLTMpfVxuICAgIC5obS1tZW51LXR7Zm9udC1zaXplOjExLjVweDtmb250LXdlaWdodDo2MDB9XG4gICAgLmhtLW1lbnUtc3tmb250LXNpemU6OXB4O2NvbG9yOnZhcigtLWMtZGltKTtsZXR0ZXItc3BhY2luZzouMDZlbX1cbiAgICAuaG0tcXR5LXByZXNldHM6ZW1wdHl7ZGlzcGxheTpub25lfVxuIiwiLyogU29jaWFsIE9yZGVyIEJvb2vihKIgd2lkZ2V0IChJbnRlcmFjdCBoZXJvKSDigJQgcG9ydGVkIHZlcmJhdGltIGZyb20gdGhlIGRlc2lnbiBjYW52YXM7IHZpb2xldCB0b2tlbnMgc2NvcGVkIHRvIC5zb2IgKi9cblxuICAgIC8qIOKVkOKVkCBTb2NpYWwgT3JkZXIgQm9va+KEoiBjYXJkIOKAlCB2ZXJiYXRpbSBwb3J0IG9mIHRyYWRhbnRlLXNvY2lhbC1vcmRlci1ib29rLmh0bWwgKHZpb2xldCksIHdpZGdldCBvbmx5IOKVkOKVkCAqL1xuICAgIC5zb2J7Zm9udC1mYW1pbHk6J1NwYWNlIEdyb3Rlc2snLHN5c3RlbS11aSxzYW5zLXNlcmlmO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpcInRudW1cIiAxO3RleHQtYWxpZ246bGVmdDtwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgIC0tcy1hY2NlbnQ6I0FGQTlFQzstLXMtYWNjZW50LTI6I0NFQ0JGNjstLXMtYWNjZW50LWRpbTojNTM0QUI3O1xuICAgICAgLS1jLWJnOiMxNDExMWY7LS1jLWJnLTI6IzFlMWEyZTstLWMtYmctMzojMjMxZTM2Oy0tYy1ib3JkZXI6cmdiYSgxMjcsMTE5LDIyMSwuMjgpOy0tYy1ib3JkZXItMjpyZ2JhKDEyNywxMTksMjIxLC4xMCk7XG4gICAgICAtLWMtdGV4dDojZWJlOWY1Oy0tYy1kaW06Izk1OTBiMDstLWMtZmFpbnQ6IzZiNjc4MjtcbiAgICAgIC0tYy1hc2s6I0YwOTU5NTstLWMtYXNrLTI6I0Y1QzRCMzstLWMtYXNrLWJhcjpyZ2JhKDIyNiw3NSw3NCwuMjApOy0tYy1iaWQ6IzVEQ0FBNTstLWMtYmlkLTI6IzlGRTFDQjstLWMtYmlkLWJhcjpyZ2JhKDI5LDE1OCwxMTcsLjIwKTtcbiAgICAgIC0tYy1ob3ZlcjpyZ2JhKDE3NSwxNjksMjM2LC4wOCk7LS1jLXNlbDpyZ2JhKDE3NSwxNjksMjM2LC4xNSk7LS1jLXNoYWRvdzpyZ2JhKDEyNywxMTksMjIxLC4zNSl9XG4gICAgLnNvYiAqe2JveC1zaXppbmc6Ym9yZGVyLWJveH1cbiAgICAuc3MtY2FyZC13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX1cbiAgICAuc3MtcmVmbGVjdGlvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTtsZWZ0OjA7cmlnaHQ6MDttYXJnaW4tdG9wOjJweDtoZWlnaHQ6MTYwcHg7b3ZlcmZsb3c6aGlkZGVuO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDowOy13ZWJraXQtbWFzay1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHJnYmEoMCwwLDAsLjM1KSAwJSxyZ2JhKDAsMCwwLC4xMikgNDAlLHRyYW5zcGFyZW50IDEwMCUpO21hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSxyZ2JhKDAsMCwwLC4zNSkgMCUscmdiYSgwLDAsMCwuMTIpIDQwJSx0cmFuc3BhcmVudCAxMDAlKX1cbiAgICAuc3MtcmVmbGVjdGlvbi1pbm5lcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDt0cmFuc2Zvcm06c2NhbGVZKC0xKX1cbiAgICAuc3MtcmVmbGVjdGlvbiAuc3MtY2FyZHtib3gtc2hhZG93Om5vbmV9XG4gICAgLnNzLWNhcmR7Ym9yZGVyLXJhZGl1czoxMnB4O292ZXJmbG93OmhpZGRlbjtib3JkZXI6LjVweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7YmFja2dyb3VuZDp2YXIoLS1jLWJnKTtjb2xvcjp2YXIoLS1jLXRleHQpO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpcInRudW1cIiAxO2JveC1zaGFkb3c6MCAwIDgwcHggdmFyKC0tYy1zaGFkb3cpLDAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC4wMil9XG4gICAgLnNzLWhlYWR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjEzcHggMTZweDtib3JkZXItYm90dG9tOi41cHggc29saWQgdmFyKC0tYy1ib3JkZXItMik7YmFja2dyb3VuZDp2YXIoLS1jLWJnLTIpO2dhcDoxMnB4fVxuICAgIC5zcy1zeW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OXB4O21pbi13aWR0aDowfVxuICAgIC5zcy1zeW0taXt3aWR0aDozMHB4O2hlaWdodDozMHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tcy1hY2NlbnQpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjb2xvcjp2YXIoLS1jLWJnKTtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjE0cHg7ZmxleC1zaHJpbms6MH1cbiAgICAuc3Mtc3ltLW57Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLWMtdGV4dCl9XG4gICAgLnNzLXN5bS1te2ZvbnQtc2l6ZToxMHB4O2NvbG9yOnZhcigtLWMtZGltKX1cbiAgICAuc3MtbGl2ZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NXB4O2ZvbnQtc2l6ZTo5cHg7Y29sb3I6dmFyKC0tYy1kaW0pO2xldHRlci1zcGFjaW5nOi4xMmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXdlaWdodDo1MDB9XG4gICAgLnNzLWxpdmUtZHt3aWR0aDo1cHg7aGVpZ2h0OjVweDtiYWNrZ3JvdW5kOiM1RENBQTU7Ym9yZGVyLXJhZGl1czo1MCU7YW5pbWF0aW9uOnNzLXAgMS4xcyBlYXNlLWluLW91dCBpbmZpbml0ZTtib3gtc2hhZG93OjAgMCA4cHggIzVEQ0FBNX1cbiAgICBAa2V5ZnJhbWVzIHNzLXB7MCUsMTAwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpfTUwJXtvcGFjaXR5Oi4zNTt0cmFuc2Zvcm06c2NhbGUoLjcpfX1cbiAgICAuc3MtcHd7dGV4dC1hbGlnbjpyaWdodH1cbiAgICAuc3MtcHZ7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLWMtYmlkLTIpO2xpbmUtaGVpZ2h0OjE7dHJhbnNpdGlvbjpjb2xvciAuMTVzO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtcztsZXR0ZXItc3BhY2luZzotLjAxZW19XG4gICAgLnNzLXB2LnVwe2NvbG9yOiM1RENBQTV9LnNzLXB2LmRue2NvbG9yOiNGMDk1OTV9XG4gICAgLnNzLXBje2ZvbnQtc2l6ZToxMHB4O2NvbG9yOnZhcigtLWMtYmlkKTttYXJnaW4tdG9wOjNweDtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9XG4gICAgLnNzLXBjLmRue2NvbG9yOnZhcigtLWMtYXNrKX1cbiAgICAuc3MtYm9keXtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDFmcikgMTY4cHh9XG4gICAgLnNzLWJvb2t7Ym9yZGVyLXJpZ2h0Oi41cHggc29saWQgdmFyKC0tYy1ib3JkZXItMik7bWluLXdpZHRoOjB9XG4gICAgLnNzLWNvbHN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyIC41NWZyO2dhcDoxMHB4O3BhZGRpbmc6OXB4IDE0cHg7Zm9udC1zaXplOjlweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bGV0dGVyLXNwYWNpbmc6LjA2ZW07Y29sb3I6dmFyKC0tYy1mYWludCk7YmFja2dyb3VuZDp2YXIoLS1jLWJnLTMpfVxuICAgIC5zcy1jb2xzIC5ye3RleHQtYWxpZ246cmlnaHR9XG4gICAgLnNzLXJvd3N7cG9zaXRpb246cmVsYXRpdmV9XG4gICAgLnNzLXJvd3twb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnIgLjU1ZnI7Z2FwOjEwcHg7cGFkZGluZzo2cHggMTRweDtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MTJweDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjEycztpc29sYXRpb246aXNvbGF0ZTtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9XG4gICAgLnNzLXJvdzpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWMtaG92ZXIpfVxuICAgIC5zcy1yb3cuc2Vse2JhY2tncm91bmQ6dmFyKC0tYy1zZWwpfVxuICAgIC5zcy1yb3cgLmJhcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO3otaW5kZXg6MDtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246d2lkdGggLjM1cyBlYXNlLW91dH1cbiAgICAuc3Mtcm93Pio6bm90KC5iYXIpe3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX1cbiAgICAuc3Mtcm93LmFzayAucHJpY2V7Y29sb3I6dmFyKC0tYy1hc2spO2ZvbnQtd2VpZ2h0OjUwMH1cbiAgICAuc3Mtcm93LmFzayAuYmFye2JhY2tncm91bmQ6dmFyKC0tYy1hc2stYmFyKX1cbiAgICAuc3Mtcm93LmJpZCAucHJpY2V7Y29sb3I6dmFyKC0tYy1iaWQpO2ZvbnQtd2VpZ2h0OjUwMH1cbiAgICAuc3Mtcm93LmJpZCAuYmFye2JhY2tncm91bmQ6dmFyKC0tYy1iaWQtYmFyKX1cbiAgICAuc3Mtcm93IC5zaXple2NvbG9yOnZhcigtLWMtdGV4dCk7dGV4dC1hbGlnbjpyaWdodH1cbiAgICAuc3Mtcm93IC51c2Vyc3tjb2xvcjp2YXIoLS1jLWRpbSk7dGV4dC1hbGlnbjpyaWdodH1cbiAgICAuc3Mtcm93LnNlbC5hc2t7Ym94LXNoYWRvdzppbnNldCAzcHggMCAwIHZhcigtLWMtYXNrKX1cbiAgICAuc3Mtcm93LnNlbC5iaWR7Ym94LXNoYWRvdzppbnNldCAzcHggMCAwIHZhcigtLWMtYmlkKX1cbiAgICBAa2V5ZnJhbWVzIHNzLWZhezAle2JhY2tncm91bmQ6cmdiYSgyMjYsNzUsNzQsLjM2KX0xMDAle2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9fVxuICAgIEBrZXlmcmFtZXMgc3MtZmJ7MCV7YmFja2dyb3VuZDpyZ2JhKDI5LDE1OCwxMTcsLjM2KX0xMDAle2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9fVxuICAgIC5zcy1yb3cuZi1hc2t7YW5pbWF0aW9uOnNzLWZhIC44NXMgZWFzZS1vdXR9XG4gICAgLnNzLXJvdy5mLWJpZHthbmltYXRpb246c3MtZmIgLjg1cyBlYXNlLW91dH1cbiAgICAuc3Mtc3Bye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzo5cHggMTRweDtiYWNrZ3JvdW5kOnZhcigtLWMtYmctMik7Ym9yZGVyLXRvcDouNXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyKTtib3JkZXItYm90dG9tOi41cHggc29saWQgdmFyKC0tYy1ib3JkZXIpO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc31cbiAgICAuc3Mtc3ByLWx7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6N3B4fVxuICAgIC5zcy1sYXN0e2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS1jLXRleHQpO3RyYW5zaXRpb246Y29sb3IgLjJzfVxuICAgIC5zcy1sYXN0LnVwe2NvbG9yOiM1RENBQTV9LnNzLWxhc3QuZG57Y29sb3I6I0YwOTU5NX1cbiAgICAuc3MtYXJye2ZvbnQtc2l6ZToxMHB4O2NvbG9yOnZhcigtLWMtYmlkKTt0cmFuc2l0aW9uOmNvbG9yIC4xNXN9XG4gICAgLnNzLXNwci1ye2ZvbnQtc2l6ZToxMHB4O2NvbG9yOnZhcigtLWMtZGltKTtkaXNwbGF5OmZsZXg7Z2FwOjEwcHh9XG4gICAgLnNzLXNwci1yIGJ7Y29sb3I6dmFyKC0tcy1hY2NlbnQpO2ZvbnQtd2VpZ2h0OjUwMDttYXJnaW4tbGVmdDozcHh9XG4gICAgLnNzLXRhcGV7cGFkZGluZzo1cHggMTRweDtiYWNrZ3JvdW5kOnZhcigtLWMtYmctMik7Ym9yZGVyLWJvdHRvbTouNXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyLTIpO2ZvbnQtc2l6ZToxMHB4O2NvbG9yOnZhcigtLWMtZGltKTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O21pbi1oZWlnaHQ6MjJweDtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7b3ZlcmZsb3c6aGlkZGVufVxuICAgIC5zcy10YXBlLWx7Y29sb3I6dmFyKC0tYy1mYWludCk7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOi4wOGVtO2ZvbnQtc2l6ZTo5cHg7ZmxleC1zaHJpbms6MH1cbiAgICAuc3MtdGFwZS1pe2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7cGFkZGluZzoxcHggNXB4O2JvcmRlci1yYWRpdXM6M3B4O2FuaW1hdGlvbjpzcy1mYWRlLWluIC40c31cbiAgICAuc3MtdGFwZS1pLnVwe2JhY2tncm91bmQ6cmdiYSgyOSwxNTgsMTE3LC4xOCk7Y29sb3I6dmFyKC0tYy1iaWQtMil9XG4gICAgLnNzLXRhcGUtaS5kbntiYWNrZ3JvdW5kOnJnYmEoMjI2LDc1LDc0LC4xOCk7Y29sb3I6dmFyKC0tYy1hc2stMil9XG4gICAgQGtleWZyYW1lcyBzcy1mYWRlLWlue2Zyb217b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC02cHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19XG4gICAgLnNzLXBubHtiYWNrZ3JvdW5kOnZhcigtLWMtYmctMik7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MH1cbiAgICAuc3MtcG5sLWh7cGFkZGluZzoxMHB4IDEycHggOXB4O2JvcmRlci1ib3R0b206LjVweCBzb2xpZCB2YXIoLS1jLWJvcmRlci0yKX1cbiAgICAuc3MtcG5sLXR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NXB4O2ZvbnQtc2l6ZToxMHB4O2NvbG9yOnZhcigtLWMtdGV4dCk7Zm9udC13ZWlnaHQ6NTAwO2ZsZXgtd3JhcDp3cmFwO2xldHRlci1zcGFjaW5nOi4wMWVtfVxuICAgIC5zcy1weHtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7Y29sb3I6dmFyKC0tcy1hY2NlbnQtMil9XG4gICAgLnNzLXNpZGV7Zm9udC1zaXplOjhweDtsZXR0ZXItc3BhY2luZzouMTRlbTtmb250LXdlaWdodDo1MDA7cGFkZGluZzoycHggNXB4O2JvcmRlci1yYWRpdXM6MnB4fVxuICAgIC5zcy1zaWRlLmFza3tiYWNrZ3JvdW5kOnJnYmEoMjI2LDc1LDc0LC4xOCk7Y29sb3I6dmFyKC0tYy1hc2stMil9XG4gICAgLnNzLXNpZGUuYmlke2JhY2tncm91bmQ6cmdiYSgyOSwxNTgsMTE3LC4xOCk7Y29sb3I6dmFyKC0tYy1iaWQtMil9XG4gICAgLnNzLXBubC1te2NvbG9yOnZhcigtLWMtZGltKTtmb250LXNpemU6MTBweDttYXJnaW4tdG9wOjNweDtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9XG4gICAgLnNzLWxpc3QtdXtwYWRkaW5nOjNweCAxMnB4IDEwcHh9XG4gICAgLnNzLXV7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoyOHB4IG1pbm1heCgwLDFmcikgYXV0bztnYXA6N3B4O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjdweCAwO2JvcmRlci1ib3R0b206LjVweCBzb2xpZCB2YXIoLS1jLWJvcmRlci0yKX1cbiAgICAuc3MtdTpsYXN0LWNoaWxke2JvcmRlci1ib3R0b206bm9uZX1cbiAgICAuc3MtYXZ7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjEwcHg7bGV0dGVyLXNwYWNpbmc6LjAyZW07cG9zaXRpb246cmVsYXRpdmU7ZmxleC1zaHJpbms6MH1cbiAgICAuc3MtYXYucmluZy0xe2JveC1zaGFkb3c6MCAwIDAgMS41cHggdmFyKC0tYy1iZy0yKSwwIDAgMCAyLjVweCAjODg4NzgwfVxuICAgIC5zcy1hdi5yaW5nLTJ7Ym94LXNoYWRvdzowIDAgMCAxLjVweCB2YXIoLS1jLWJnLTIpLDAgMCAwIDIuNXB4ICM4NUI3RUJ9XG4gICAgLnNzLWF2LnJpbmctM3tib3gtc2hhZG93OjAgMCAwIDEuNXB4IHZhcigtLWMtYmctMiksMCAwIDAgMi41cHggI0VGOUYyN31cbiAgICAuc3MtYXYucmluZy00e2JveC1zaGFkb3c6MCAwIDAgMS41cHggdmFyKC0tYy1iZy0yKSwwIDAgMCAzcHggI0Q4NUEzMH1cbiAgICAuc3MtdS1pbmZve21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbn1cbiAgICAuc3MtdW57Y29sb3I6dmFyKC0tYy10ZXh0KTtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjExcHg7bGluZS1oZWlnaHQ6MS4yO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc31cbiAgICAuc3MtdW17Y29sb3I6dmFyKC0tYy1kaW0pO2ZvbnQtc2l6ZToxMHB4O21hcmdpbi10b3A6NHB4O2Rpc3BsYXk6ZmxleDtnYXA6M3B4O2ZsZXgtd3JhcDp3cmFwO2FsaWduLWl0ZW1zOmNlbnRlcn1cbiAgICAuc3MtdWx7Zm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0tYy10ZXh0KTtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7dGV4dC1hbGlnbjpyaWdodDtmb250LXdlaWdodDo1MDA7ZmxleC1zaHJpbms6MH1cbiAgICAuc3MtdWwgLnBjdHtkaXNwbGF5OmJsb2NrO2NvbG9yOnZhcigtLWMtZmFpbnQpO2ZvbnQtc2l6ZTo5cHg7bWFyZ2luLXRvcDoycHg7Zm9udC13ZWlnaHQ6NDAwfVxuICAgIC5zcy1ie2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MXB4IDVweDtib3JkZXItcmFkaXVzOjJweDtmb250LXNpemU6OXB4O2ZvbnQtd2VpZ2h0OjUwMDtsZXR0ZXItc3BhY2luZzouMDNlbTtsaW5lLWhlaWdodDoxLjN9XG4gICAgLnNzLWIubHYtMXtiYWNrZ3JvdW5kOnJnYmEoMTgwLDE3OCwxNjksLjE4KTtjb2xvcjojRDNEMUM3fVxuICAgIC5zcy1iLmx2LTJ7YmFja2dyb3VuZDpyZ2JhKDEzMywxODMsMjM1LC4yMik7Y29sb3I6I0I1RDRGNH1cbiAgICAuc3MtYi5sdi0ze2JhY2tncm91bmQ6cmdiYSgyMzksMTU5LDM5LC4yMik7Y29sb3I6I0ZBQzc3NX1cbiAgICAuc3MtYi5sdi00e2JhY2tncm91bmQ6cmdiYSgyMTYsOTAsNDgsLjI0KTtjb2xvcjojRjVDNEIzfVxuICAgIC5zcy1iLnJrLTF7YmFja2dyb3VuZDpyZ2JhKDIzOSwxNTksMzksLjIyKTtjb2xvcjojRkFDNzc1O2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc31cbiAgICAuc3MtYi5yay0ye2JhY2tncm91bmQ6cmdiYSgxMzMsMTgzLDIzNSwuMjIpO2NvbG9yOiNCNUQ0RjQ7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfVxuICAgIC5zcy1iLnJrLTN7YmFja2dyb3VuZDpyZ2JhKDE4MCwxNzgsMTY5LC4xNSk7Y29sb3I6I0I0QjJBOTtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9XG4gICAgLnNzLWIuZm9se2JhY2tncm91bmQ6cmdiYSgxNzUsMTY5LDIzNiwuMjIpO2NvbG9yOiNDRUNCRjY7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjNweH1cbiAgICAuc3MtYi5mb2wgc3Zne3dpZHRoOjlweDtoZWlnaHQ6OXB4O2ZsZXgtc2hyaW5rOjB9XG5cbi8qIOKUgOKUgCBTb2NpYWwgT3JkZXIgQm9va+KEoiBjYWxsb3V0IChUcmFkZSAjYm9vayArIEhvbWUgI3NvY2lhbCwgX1NvY2lhbEJvb2tDYWxsb3V0LmNzaHRtbCkg4pSA4pSAXG4gICBDb3B5ICsgXCJZb3UncmUgYWx3YXlzIGluIGNvbnRyb2xcIiArIHRocmVlIGZyZWUtc3RhbmRpbmcgc2hpZWxkIGljb25zIG9uIHRoZSBsZWZ0LiBUaGUgbGl2ZSB3aWRnZXQgb25cbiAgIHRoZSByaWdodCBzdGFuZHMgb24gdGhlIHNlY3Rpb24ncyBsb3dlciBlZGdlIHdpdGggaXRzIGJvdHRvbSB+MjAlIGNsaXBwZWQsIGdsb3dpbmcgYWxsIGFyb3VuZC4gKi9cbi5zb2Itc2VjIHsgcG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogaGlkZGVuOyBwYWRkaW5nOiA3MnB4IDAgMDsgfVxuLnNvYi1ncmlkIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMS4wNWZyOyBnYXA6IDU2cHg7IGFsaWduLWl0ZW1zOiBlbmQ7IH1cbi5zb2ItY29weSB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMjBweDsgcGFkZGluZy1ib3R0b206IDY0cHg7IGFsaWduLXNlbGY6IHN0YXJ0OyB9XG4uc29iLXN1YiB7IGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC43MikgIWltcG9ydGFudDsgfVxuXG4vKiBjb250cm9sIGxhYmVsICsgdGhlIHRocmVlIG1vZGVzIChubyBjYXJkczogaWNvbiwgbmFtZSwgdHdvIGxpbmVzKSAqL1xuLnNvYi1jdGwgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDE0cHg7IH1cbi5zb2ItY3RsLWxibCB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDIycHg7IGxldHRlci1zcGFjaW5nOiAxLjVweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6ICNmZmY7IH1cbi5zb2ItcHJpdiB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTsgZ2FwOiAxNnB4OyB9XG4uc29iLXByaXYtaXRlbSB7IC0tcGM6IHZhcigtLWFjY2VudCk7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHRleHQtYWxpZ246IGNlbnRlcjsgZ2FwOiA4cHg7XG4gICYucHViIHsgLS1wYzogIzE1ODAzZDsgfSAmLmZvbCB7IC0tcGM6ICNjMjQxMGM7IH0gJi5wcnYgeyAtLXBjOiAjYjkxYzFjOyB9IH1cbi5zb2Itc2hpZWxkIHsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogNTZweDsgaGVpZ2h0OiA2MHB4OyBkaXNwbGF5OiBibG9jazsgY29sb3I6IHZhcigtLXBjKTsgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgOHB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wYykgMzUlLCB0cmFuc3BhcmVudCkpOyB9XG4uc29iLXNoaWVsZC1iZyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGZpbGw6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wYykgMTQlLCB0cmFuc3BhcmVudCk7IHN0cm9rZTogdmFyKC0tcGMpOyBzdHJva2Utd2lkdGg6IC45OyBzdHJva2UtbGluZWpvaW46IHJvdW5kOyB9XG4uc29iLXNoaWVsZC1pYyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogNTAlOyB0b3A6IDQ2JTsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH1cbi5zb2ItcHJpdi1uYW1lIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDIuNXB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tcGMpOyB9XG4uc29iLXByaXYtZGVzYyB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpOyBmb250LXNpemU6IDEycHg7IGxpbmUtaGVpZ2h0OiAxLjQ1OyBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuNjgpOyB9XG5cbi8qIHRoZSB3aWRnZXQ6IGJvdHRvbSB+MjAlIGN1dCBhdCB0aGUgc2VjdGlvbiBlZGdlLCBnbG93IGtlcHQgdmlzaWJsZSBvbiB0aGUgb3RoZXIgdGhyZWUgc2lkZXMgKi9cbi5zb2ItcGVlayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgYWxpZ24tc2VsZjogZW5kOyBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgd2lkdGg6IDEwMCU7IG1heC13aWR0aDogNjAwcHg7XG4gIGNsaXAtcGF0aDogaW5zZXQoLTE2MHB4IC0xNjBweCAwIC0xNjBweCk7XG4gICY6OmJlZm9yZSB7IGNvbnRlbnQ6ICcnOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC0xMTBweDsgcmlnaHQ6IC0xMTBweDsgdG9wOiAtMTEwcHg7IGJvdHRvbTogLTIwcHg7IHotaW5kZXg6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDYyJSA1OCUgYXQgNTAlIDQ1JSwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudDMpIDU1JSwgdHJhbnNwYXJlbnQpLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50MykgMTglLCB0cmFuc3BhcmVudCkgNDUlLCB0cmFuc3BhcmVudCA3MiUpOyAvKiBhY2NlbnQzICsgd2hpdGU6IHRoZSBwbGFpbiBhY2NlbnQgdmFuaXNoZWQgb24gdGhlIGFjY2VudC1ncmFkaWVudCBzZWN0aW9uICovIH1cbiAgLnNvYiB7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTsgbWFyZ2luLWJvdHRvbTogLTIyJTsgfSAgIC8qIOKJiCB0aGUgYm90dG9tIGZpZnRoIG9mIHRoZSBjYXJkICovXG4gIC5zcy1jYXJkIHsgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjI4KSwgMCAwIDM0cHggNHB4IHJnYmEoMjU1LDI1NSwyNTUsLjIyKSwgMCAwIDEyMHB4IDE4cHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudDMpIDY1JSwgdHJhbnNwYXJlbnQpLCAwIDMwcHggODBweCByZ2JhKDAsMCwwLC41NSk7IH1cbiAgLnNzLXJlZmxlY3Rpb24geyBkaXNwbGF5OiBub25lOyB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLnNvYi1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IGdhcDogMzJweDsgfVxuICAuc29iLWNvcHkgeyBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAuc29iLXByaXYgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfVxuICAuc29iLXBlZWsgeyBqdXN0aWZ5LXNlbGY6IHN0YXJ0OyB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFB1YmxpYyBuYXZiYXIgbWVnYSBtZW51IChkZXNrdG9wIOKJpSA5OTJweClcbiAgIFRlbXBsYXRlOiBcIjFBIGxpc3QgKyBleHBsYWluZXIgcGFuZWxcIiBmcm9tIHRoZSBtZW51IGV4cGxvcmF0aW9ucyBhcnRpZmFjdFxuICAgKDQ0NTY5NzcxKSwgcmVjb2xvdXJlZCB3aXRoIHRoZSB0aGVtZSB2YXJzIHNvIGl0IGZvbGxvd3MgdmlvbGV0IC8gZGFyayAvIGJsdWUuXG4gICBTdHJ1Y3R1cmUgKHNlZSBfUHVibGljTmF2YmFyLmNzaHRtbCk6XG4gICAgIGxpLnRyLW1tLWl0ZW0gPiBhLm5hdi1saW5rICh0aGUgcGFnZSBsaW5rIOKAlCBvbmUgcGFnZSwgb25lIGl0ZW0pXG4gICAgICAgICAgICAgICAgICAgPiAudHItbW0tcGFuZWwgPiAudHItbW0tbGlzdCAoYS50ci1tbS1yb3cg4oCmKSArIC50ci1tbS1mZWF0XG4gICBCZWxvdyA5OTJweCB0aGUgcGFuZWxzIGFyZSBoaWRkZW4gYW5kIHRoZSBCb290c3RyYXAgY29sbGFwc2Ugc2hvd3MgdGhlIGZsYXQgbGlua3MuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogQnJhbmQgd29yZG1hcmsgdGFrZXMgdGhlIHNpZ25hdHVyZSBncmFkaWVudCAodGVtcGxhdGUgdG9wYmFyKSAqL1xuLnRyLW5hdmJhciAuYnJhbmQtbmFtZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWdyYWQpO1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qIFRvcCBpdGVtczogbW9ubyBleWVicm93IHN0eWxlICsgc3RhdHVzIGRvdCAodGVtcGxhdGUgMUEpICovXG4udHItbmF2YmFyIC5uYXYtbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4O1xuICBmb250LXNpemU6IDEzcHg7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiAyLjVweDtcbiAgcGFkZGluZzogMTBweCAxNHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dDIpICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGNvbG9yIC4xNXM7XG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJzsgd2lkdGg6IDRweDsgaGVpZ2h0OiA0cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgZmxleC1zaHJpbms6IDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwuMik7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMTVzLCBib3gtc2hhZG93IC4xNXM7XG4gIH1cbn1cbi50ci1uYXZiYXIgLm5hdi1saW5rOmhvdmVyLFxuLnRyLW5hdmJhciAubmF2LWxpbmsuYWN0aXZlLFxuLnRyLW1tLWl0ZW0ub3BlbiA+IC5uYXYtbGluayB7IGNvbG9yOiB2YXIoLS1hY2NlbnQzLCB2YXIoLS1hY2NlbnQpKSAhaW1wb3J0YW50OyB9XG4udHItbmF2YmFyIC5uYXYtbGluay5hY3RpdmU6OmFmdGVyLFxuLnRyLW1tLWl0ZW0ub3BlbiA+IC5uYXYtbGluazo6YWZ0ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQpOyBib3gtc2hhZG93OiAwIDAgOHB4IHZhcigtLWFjY2VudCk7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC50ci1uYXZiYXIgLm5hdmJhci1uYXYgeyBnYXA6IDRweDsgfVxuICAudHItbW0taXRlbSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAvKiBob3ZlciBicmlkZ2UgYWNyb3NzIHRoZSBnYXAgYmV0d2VlbiB0aGUgaXRlbSBhbmQgaXRzIHBhbmVsICovXG4gIC50ci1tbS1pdGVtLm9wZW46OmFmdGVyIHsgY29udGVudDogJyc7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgcmlnaHQ6IDA7IHRvcDogMTAwJTsgaGVpZ2h0OiAxNHB4OyB9XG5cbiAgLnRyLW1tLXBhbmVsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDEwNDA7IHRvcDogY2FsYygxMDAlICsgMTBweCk7IGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogNjQwcHg7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzAwcHggbWlubWF4KDAsIDFmcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmczKTsgLyogc29saWQ6IGEgdHJhbnNsdWNlbnQgcGFuZWwgbGV0IHRoZSBwYWdlIGJsZWVkIHRocm91Z2ggYW5kIGh1cnQgbGVnaWJpbGl0eSAqL1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4yMik7IGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm94LXNoYWRvdzogMCAzMnB4IDgwcHggcmdiYSgwLDAsMCwuNyksIDAgMCAwIDFweCByZ2JhKDAsMCwwLC40KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7IHZpc2liaWxpdHk6IGhpZGRlbjsgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoNnB4KTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycyBlYXNlLCB0cmFuc2Zvcm0gLjI1cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSwgdmlzaWJpbGl0eSAuMnM7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAmOjpiZWZvcmUgeyBjb250ZW50OiAnJzsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBoZWlnaHQ6IDJweDsgYmFja2dyb3VuZDogdmFyKC0tZ3JhZCk7IH1cbiAgfVxuICAudHItbW0taXRlbS5vcGVuIC50ci1tbS1wYW5lbCB7IG9wYWNpdHk6IDE7IHZpc2liaWxpdHk6IHZpc2libGU7IHBvaW50ZXItZXZlbnRzOiBhdXRvOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKTsgfVxuXG4gIC50ci1tbS1saXN0IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAycHg7IHBhZGRpbmc6IDE2cHggMTBweDsgfVxuICAudHItbW0tcm93IHtcbiAgICBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM4cHggbWlubWF4KDAsIDFmcik7IGdhcDogMTJweDsgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgIHBhZGRpbmc6IDEycHg7IGJvcmRlci1yYWRpdXM6IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiBpbmhlcml0OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMTVzLCBib3JkZXItY29sb3IgLjE1cztcbiAgICAmOmZvY3VzLXZpc2libGUgeyBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYWNjZW50KTsgb3V0bGluZS1vZmZzZXQ6IDJweDsgfVxuICB9XG4gIC50ci1tbS1yb3cub24geyBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMDgpOyBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4zKTsgfVxuICAudHItbW0taWMge1xuICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB3aWR0aDogMzhweDsgaGVpZ2h0OiAzOHB4OyBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjM1KTsgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjA4KTsgY29sb3I6IHZhcigtLWFjY2VudDMsIHZhcigtLWFjY2VudCkpO1xuICAgIHN2ZyB7IHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE4cHg7IH1cbiAgfVxuICAudHItbW0tdHh0IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAzcHg7IG1pbi13aWR0aDogMDsgfVxuICAudHItbW0tbmFtZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfVxuICAudHItbW0tZGVzYyB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpOyBmb250LXNpemU6IDEycHg7IGxpbmUtaGVpZ2h0OiAxLjQ1OyBjb2xvcjogdmFyKC0tdGV4dDIpOyB9XG5cbiAgLnRyLW1tLWZlYXQge1xuICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgZ2FwOiAyMHB4O1xuICAgIHBhZGRpbmc6IDI0cHggMjRweCAyMnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4wNSk7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjE2KTtcbiAgfVxuICAudHItbW0tZXllYnJvdyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHBhZGRpbmc6IDRweCAxMHB4OyBib3JkZXItcmFkaXVzOiAxMDBweDsgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMzUpOyBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMTApO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDlweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDIuNXB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQzLCB2YXIoLS1hY2NlbnQpKTtcbiAgfVxuICAudHItbW0tdGl0bGUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC13ZWlnaHQ6IDQwMDsgZm9udC1zaXplOiAzNHB4OyBsaW5lLWhlaWdodDogMS4wNTsgbGV0dGVyLXNwYWNpbmc6IDFweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLXRleHQpOyBtYXJnaW4tYm90dG9tOiAxMHB4OyB0ZXh0LXdyYXA6IGJhbGFuY2U7IH1cbiAgLnRyLW1tLWxvbmcgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTsgZm9udC1zaXplOiAxM3B4OyBsaW5lLWhlaWdodDogMS42OyBjb2xvcjogdmFyKC0tdGV4dDIpOyBtYXJnaW46IDA7IH1cbiAgLnRyLW1tLWZvb3QgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGdhcDogMTJweDsgfVxuICAudHItbW0tbWV0YSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDEwcHg7IGxldHRlci1zcGFjaW5nOiAycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgLnRyLW1tLW9wZW4ge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6IHZhcigtLWFjY2VudDMsIHZhcigtLWFjY2VudCkpOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgJjpob3ZlciwgJjpmb2N1cy12aXNpYmxlIHsgY29sb3I6IHZhcigtLXRleHQpOyB9XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC50ci1tbS1wYW5lbCB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgLnRyLW5hdmJhciAubmF2LWxpbms6OmFmdGVyIHsgZGlzcGxheTogbm9uZTsgfVxuICAudHItbmF2YmFyIC5uYXYtbGluayB7IHBhZGRpbmc6IDEwcHggNHB4OyB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC50ci1tbS1wYW5lbCwgLnRyLW5hdmJhciAubmF2LWxpbmssIC50ci1tbS1yb3cgeyB0cmFuc2l0aW9uOiBub25lOyB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZ1bmRlZCBwYWdlIOKAlCBcIk91ciBjaGFsbGVuZ2VzXCIgPSB0aGUgQXBwJ3MgL0FwcC9DaGFsbGVuZ2VzIGJsb2NrLCBBUyBJUy5cbiAgIFRoZSBhcHAgc3R5bGVzaGVldCBpcyBpbXBvcnRlZCBVTkNIQU5HRUQ7IHRoZSBvbmx5IGFkZGl0aW9ucyBhcmUgdGhlIHNlY3Rpb25cbiAgIHNwYWNpbmcgYW5kIHRoZSA5MCUgc2NhbGUgd3JhcHBlciAoXCJhIGJpdCBzbWFsbGVyXCIpLiBEbyBub3QgcmVzdHlsZSAuY2gtKiBoZXJlLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AaW1wb3J0ICcuLi9hcHAvY2hhbGxlbmdlcyc7XG5cbi5mYy1zZWN0aW9uIHsgcGFkZGluZy10b3A6IDQ4cHg7IHBhZGRpbmctYm90dG9tOiA3MnB4OyB9XG4uZmMtZW1iZWQgeyB6b29tOiAuOTsgfVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7IC5mYy1lbWJlZCB7IHpvb206IDE7IH0gfVxuIiwiLy8g4pSA4pSAIENoYWxsZW5nZXMg4oCUIHYxMSBjYXJkLWdyaWQgcG9ydCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIDQtY29sdW1uIHJlc3BvbnNpdmUgZ3JpZCBvZiBwcm9ncmFtbWUgY2FyZHMuIE1hcHMgdGhlIG1vY2sncyBpbmxpbmUgc3R5bGVzXG4vLyBvbnRvIHRoZSBhcHAgQ1NTIHZhcnMuIFB1cmNoYXNlICsgc3VjY2VzcyBtb2RhbCBzdHlsZXMga2VwdCBhdCB0aGUgYm90dG9tLlxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiRjaC1vcmFuZ2U6ICAgICNGRjk1MDA7XG4kY2gtZ29sZC1zb2Z0OiAjRjVFMThBO1xuJGNoLWdvbGQtZGFyazogI0Q0QTIwRjtcblxuXG4vLyDilIDilIAgUGFnZSArIHBhbmVsIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4uY2gtcGFnZSB7XG4gIG1heC13aWR0aDogMTQ4MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLmNoLXBhbmVsIHtcbiAgcGFkZGluZzogNDBweDtcblxuICBAbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHsgcGFkZGluZzogMjJweCAxNnB4OyB9XG59XG5cblxuLy8g4pSA4pSAIEhlYWRlciDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLmNoLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBtYXJnaW4tYm90dG9tOiAyNnB4O1xufVxuXG4uY2gtZXllYnJvdyB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiA0cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpO1xufVxuXG4uY2gtdGl0bGUge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiA2MHB4O1xuICBsaW5lLWhlaWdodDogLjk7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IHZhcigtLWFwcC10ZXh0KTtcblxuICBAbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHsgZm9udC1zaXplOiA0NHB4OyB9XG59XG5cbi5jaC1zdWIge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpO1xuICBtYXJnaW46IDA7XG59XG5cblxuLy8g4pSA4pSAIEZpbHRlcnMgKHNlZ21lbnRlZCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbi5jaC1maWx0ZXJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tYm90dG9tOiAyNnB4O1xufVxuXG4uY2gtZmlsdC1rIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDIuNXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tYXBwLXRleHQzKTtcblxuICAmLmNoLWZpbHQtazIgeyBtYXJnaW4tbGVmdDogOHB4OyB9XG59XG5cbi5jaC1zZWcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYXBwLXN1cmZhY2UpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hcHAtYm9yZGVyKTtcbiAgcGFkZGluZzogNHB4O1xuICBib3JkZXItcmFkaXVzOiAxMXB4O1xufVxuXG4uY2gtc2VnLWJ0biB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtaW4td2lkdGg6IDg0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gIGZvbnQtc2l6ZTogMTAuNXB4O1xuICBsZXR0ZXItc3BhY2luZzogMS4ycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgYm9yZGVyLXJhZGl1czogOXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpO1xuICB0cmFuc2l0aW9uOiBhbGwgLjE4cyB2YXIoLS1lYXNlLCBlYXNlKTtcblxuICAmOmhvdmVyIHsgY29sb3I6IHZhcigtLWFwcC10ZXh0KTsgfVxuICAmLm9uIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtZ3JhZCk7XG4gICAgY29sb3I6IHZhcigtLWFwcC1iZyk7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMjRweCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuNDApO1xuICB9XG59XG5cbi5jaC1jb3VudCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1hcHAtdGV4dDMpO1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuXG5cbi8vIOKUgOKUgCBDYXJvdXNlbCAocm93IG9mIDMsIHBhZ2VkKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLmNoLWNhcm91c2VsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xufVxuXG4uY2gtdmlld3BvcnQge1xuICBmbGV4OiAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY2gtdHJhY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDE2cHg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjRzIHZhcigtLWVhc2UsIGVhc2UpO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xufVxuXG4uY2gtZW1wdHkge1xuICBmbGV4OiAxIDAgMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA4MHB4IDIwcHg7XG4gIGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpO1xufVxuXG4uY2gtbmF2IHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiA0NHB4OyBoZWlnaHQ6IDQ0cHg7XG4gIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFwcC1ib3JkZXIpO1xuICBjb2xvcjogdmFyKC0tYXBwLXRleHQyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgLjJzIHZhcigtLWVhc2UsIGVhc2UpO1xuXG4gIHN2ZyB7IHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE4cHg7IH1cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7IGJvcmRlci1jb2xvcjogdmFyKC0tYXBwLWJvcmRlci1oKTsgY29sb3I6IHZhcigtLWFwcC10ZXh0KTsgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjEyKTsgfVxuICAmOmRpc2FibGVkIHsgb3BhY2l0eTogLjM1OyBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDY4MHB4KSB7IHdpZHRoOiAzOHB4OyBoZWlnaHQ6IDM4cHg7IH1cbn1cblxuLmNoLWRvdHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIG1hcmdpbi10b3A6IDIycHg7XG59XG5cbi5jaC1kb3Qge1xuICB3aWR0aDogMjhweDsgaGVpZ2h0OiA0cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFwcC1ib3JkZXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIHRyYW5zaXRpb246IGFsbCAuMjVzIHZhcigtLWVhc2UsIGVhc2UpO1xuXG4gICYub24geyBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtYWNjZW50KTsgd2lkdGg6IDQ2cHg7IH1cbiAgJjpob3Zlcjpub3QoLm9uKSB7IGJhY2tncm91bmQ6IHZhcigtLWFwcC10ZXh0Myk7IH1cbn1cblxuXG4vLyDilIDilIAgQ2FyZCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLmNoLWNhcmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFwcC1jYXJkLWJnKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYXBwLWJvcmRlcik7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAuNDUpO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjJzIHZhcigtLWVhc2UsIGVhc2UpLCB0cmFuc2Zvcm0gLjJzIHZhcigtLWVhc2UsIGVhc2UpO1xuXG4gICY6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWFwcC1ib3JkZXItaCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsgfVxufVxuXG4vLyBEaWFnb25hbCBcIkN1c3RvbWl6YWJsZVwiIHJpYmJvblxuLmNoLXJpYmJvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyMHB4O1xuICByaWdodDogLTUycHg7XG4gIHdpZHRoOiAxNzZweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtZ3JhZCk7XG4gIGNvbG9yOiB2YXIoLS1hcHAtYmcpO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAxLjVweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgei1pbmRleDogMztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cblxuLy8g4pSA4pSAIE5hbWUgKyBmdW5kZWQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbi5jaC1jYXJkLW5hbWUtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDY0cHg7XG59XG5cbi5jaC1jYXJkLW5hbWUge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBsZXR0ZXItc3BhY2luZzogMS41cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogdmFyKC0tYXBwLXRleHQpO1xufVxuXG4uY2gtY2FyZC1lbW9qaSB7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDE7IH1cblxuLmNoLWZ1bmRlZC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogOHB4O1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi5jaC1mdW5kZWQtayB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pO1xuICBmb250LXNpemU6IDkuNXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tYXBwLXRleHQzKTtcbn1cblxuLmNoLWZ1bmRlZC12IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtc2l6ZTogMjZweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7XG4gIHRyYW5zaXRpb246IGZpbHRlciAuMTVzO1xuXG4gICYucHVsc2UgeyBmaWx0ZXI6IGJyaWdodG5lc3MoMS41KTsgfVxufVxuXG5cbi8vIOKUgOKUgCBFbnRyeSBjb3N0IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4uY2gtZW50cnkge1xuICBtYXJnaW4tdG9wOiAxMnB4O1xuICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEzcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4wOSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFwcC1ib3JkZXItaCk7XG59XG5cbi5jaC1lbnRyeS1rIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gIGZvbnQtc2l6ZTogOS41cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpO1xufVxuXG4uY2gtZW50cnktYW10LXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgZ2FwOiA4cHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLmNoLWVudHJ5LWFtdCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXNpemU6IDQ2cHg7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIGxpbmUtaGVpZ2h0OiAuOTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYXBwLWdyYWQpO1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGZpbHRlciAuMTVzO1xuXG4gICYucHVsc2UgeyBmaWx0ZXI6IGJyaWdodG5lc3MoMS40KTsgfVxufVxuXG4uY2gtZW50cnktc3ltIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgY29sb3I6IHZhcigtLWFwcC1hY2NlbnQzKTtcbn1cblxuLmNoLWVudHJ5LXN1YiB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pO1xuICBmb250LXNpemU6IDkuNXB4O1xuICBsZXR0ZXItc3BhY2luZzogMS4ycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1hcHAtdGV4dDMpO1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cblxuLy8g4pSA4pSAIFRpbGVzIChwcml6ZSBwb29sICsgd2FpdGxpc3QpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4uY2gtdGlsZXMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIGdhcDogOHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uY2gtdGlsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMTFweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFwcC1ib3JkZXIpO1xufVxuXG4vLyBDbGlja2FibGUgdGlsZXMgKFByaXplIHBvb2wgLyBXYWl0aW5nIHRvIGZ1bmQgb3BlbiBkZXRhaWwgbW9kYWxzKVxuLmNoLXRpbGUtY2xpY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMThzIHZhcigtLWVhc2UsIGVhc2UpLCBiYWNrZ3JvdW5kIC4xOHMgdmFyKC0tZWFzZSwgZWFzZSksIHRyYW5zZm9ybSAuMTJzIHZhcigtLWVhc2UsIGVhc2UpO1xuXG4gICY6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYXBwLWJvcmRlci1oKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMDgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgfVxuICAmOmFjdGl2ZSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuXG4gICY6aG92ZXIgLmNoLXRpbGUtaWNvIHsgb3BhY2l0eTogMTsgY29sb3I6IHZhcigtLWFwcC1hY2NlbnQzKTsgfVxufVxuXG4uY2gtdGlsZS1pY28ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogOXB4O1xuICByaWdodDogOXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgb3BhY2l0eTogLjQ7XG4gIGNvbG9yOiB2YXIoLS1hcHAtdGV4dDMpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4xOHMgdmFyKC0tZWFzZSwgZWFzZSksIGNvbG9yIC4xOHMgdmFyKC0tZWFzZSwgZWFzZSk7XG5cbiAgc3ZnIHsgd2lkdGg6IDEzcHg7IGhlaWdodDogMTNweDsgfVxufVxuXG4uY2gtdGlsZS1rIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMS40cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1hcHAtdGV4dDMpO1xufVxuXG4uY2gtdGlsZS12IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgY29sb3I6IHZhcigtLWFwcC10ZXh0KTtcblxuICAmLmdvbGQgeyBjb2xvcjogdmFyKC0tYXBwLWdvbGQpOyB9XG59XG5cbi5jaC10aWxlLXN1YiB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pO1xuICBmb250LXNpemU6IDguNXB4O1xuICBsZXR0ZXItc3BhY2luZzogMS4ycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1hcHAtdGV4dDMpO1xuICBtYXJnaW4tdG9wOiAzcHg7XG59XG5cblxuLy8g4pSA4pSAIERlc2NyaXB0aW9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4uY2gtZGVzYyB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6IHZhcigtLWFwcC10ZXh0Mik7XG4gIG1hcmdpbjogMTRweCAwIDA7XG4gIG1pbi1oZWlnaHQ6IDU4cHg7XG4gIHRleHQtd3JhcDogcHJldHR5O1xufVxuXG5cbi8vIOKUgOKUgCBEaXZpZGVycyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLmNoLWRpdmlkZXIge1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYXBwLWJvcmRlcik7XG4gIG1hcmdpbjogMTZweCAwIDEycHg7XG59XG5cblxuLy8g4pSA4pSAIENvbnRyb2xzIChzbGlkZXJzIC8gc3RhdGljIHJvd3MpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4uY2gtY29udHJvbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE4cHg7XG59XG5cbi5jaC1zbGlkZXItbGFiZWwge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcbiAgZm9udC1zaXplOiAxMy41cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7XG59XG5cbi5jaC1zbGlkZXItYmFkZ2Uge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogLjhweDtcbiAgcGFkZGluZzogNHB4IDlweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjb2xvcjogdmFyKC0tYXBwLWFjY2VudDMpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMTQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hcHAtYm9yZGVyKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdHJhbnNpdGlvbjogZmlsdGVyIC4xNXM7XG5cbiAgJi5wdWxzZSB7IGZpbHRlcjogYnJpZ2h0bmVzcygxLjQpOyB9XG59XG5cbi5jaC1zdGF0aWMtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDEwcHg7XG59XG5cbi8vIE9uZSBsaW5lIHBlciBjb250cm9sOiBsYWJlbCDCtyBzbGlkZXIgwrcgdmFsdWUgKHNhbWUgaGVpZ2h0IGFzIGEgc3RhdGljIHJvdywgc28gZXZlcnlcbi8vIGNhcmQgbGluZXMgdXAgd2hldGhlciBvciBub3QgaXQgaXMgdHVuYWJsZSkuIFRoZSBoZWFkIHdyYXBwZXIgaXMgZmxhdHRlbmVkIGludG8gdGhlIGdyaWQuXG4uY2gtc2xpZGVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heCgwLCAxZnIpIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDEycHg7XG59XG4uY2gtc2xpZGVyLWhlYWQgeyBkaXNwbGF5OiBjb250ZW50czsgfVxuLmNoLXNsaWRlciAuY2gtc2xpZGVyLWxhYmVsIHsgZ3JpZC1jb2x1bW46IDE7IGdyaWQtcm93OiAxOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4uY2gtc2xpZGVyIC5jaC1zbGlkZXItdHJhY2sgeyBncmlkLWNvbHVtbjogMjsgZ3JpZC1yb3c6IDE7IG1pbi13aWR0aDogMDsgfVxuLmNoLXNsaWRlciAuY2gtc2xpZGVyLWJhZGdlIHsgZ3JpZC1jb2x1bW46IDM7IGdyaWQtcm93OiAxOyB9XG5cbi5jaC1zbGlkZXItdHJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2gtc2xpZGVyLXJhaWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7IHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDZweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjEwKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYXBwLWJvcmRlcik7XG59XG5cbi5jaC1zbGlkZXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtZ3JhZCk7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDI0cHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjQwKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5jaC1zbGlkZXItdGh1bWIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtYWNjZW50KTtcbiAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tYXBwLWJnKTtcbiAgYm94LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsIDAsIDAsIC41KSwgMCAwIDAgMXB4IHZhcigtLWFwcC1ib3JkZXItaCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vLyBJbnZpc2libGUgbmF0aXZlIHJhbmdlIG9uIHRvcCDigJQgY2FycmllcyB0aGUgaW50ZXJhY3Rpb24uXG4uY2gtc2xpZGVyIC5iZC1zbGlkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xMHB4OyByaWdodDogLTEwcHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAyMHB4KTtcbiAgaGVpZ2h0OiAyNnB4O1xuICBtYXJnaW46IDA7XG4gIG9wYWNpdHk6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLmNoLXNsaWRlci10aWNrcyB7XG4gIGRpc3BsYXk6IG5vbmU7IC8vIG1pbi9tYXggdGlja3MgZHJvcHBlZDogdGhleSBhZGRlZCBhIHNlY29uZCBsaW5lIGFuZCBicm9rZSB0aGUgdW5pZm9ybSBjYXJkIGhlaWdodFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gIGZvbnQtc2l6ZTogOS41cHg7XG4gIGxldHRlci1zcGFjaW5nOiAuOHB4O1xuICBjb2xvcjogdmFyKC0tYXBwLXRleHQzKTtcbn1cblxuXG4vLyDilIDilIAgTWV0cmljcyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLmNoLW1ldHJpY3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDExcHg7XG59XG5cbi5jaC1tZXRyaWMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTBweDtcbn1cblxuLmNoLW1ldHJpYy1sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogN3B4O1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTtcbiAgZm9udC1zaXplOiAxMC41cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAxLjJweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWFwcC10ZXh0Mik7XG5cbiAgc3ZnIHsgY29sb3I6IHZhcigtLWFwcC10ZXh0Myk7IGZsZXgtc2hyaW5rOiAwOyB9XG59XG5cbi5jaC1jaGlwIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgcGFkZGluZzogM3B4IDlweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuXG4gICYuZ3JlZW4geyBjb2xvcjogdmFyKC0tYXBwLWdyZWVuKTsgYmFja2dyb3VuZDogcmdiYSgzNCwgMTk3LCA5NCwgLjEzKTsgfVxuICAmLnJlZCAgIHsgY29sb3I6IHZhcigtLWFwcC1yZWQpOyAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIC4xMyk7IH1cbiAgJi5nb2xkICB7IGNvbG9yOiB2YXIoLS1hcHAtZ29sZCk7ICBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMTk3LCAyNCwgLjEzKTsgfVxufVxuXG5cbi8vIOKUgOKUgCBHaG9zdCBidXR0b24gKERldGFpbHMgJiBGQVFzKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLmNoLWdob3N0LWJ0biB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDE2cHggMDtcbiAgcGFkZGluZzogMTJweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjA4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYXBwLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1hcHAtYWNjZW50Myk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIC4xOHMgdmFyKC0tZWFzZSwgZWFzZSk7XG5cbiAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4xNCk7IGJvcmRlci1jb2xvcjogdmFyKC0tYXBwLWJvcmRlci1oKTsgfVxufVxuXG5cbi8vIOKUgOKUgCBTdW1tYXJ5IChwaGFzZXMgKyBzcGxpdCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbi5jaC1zdW1tYXJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA5cHg7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7XG59XG5cbi5jaC1zdW1tYXJ5LXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmNoLXN1bW1hcnktayB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pO1xuICBmb250LXNpemU6IDEwLjVweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDEuNXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tYXBwLXRleHQzKTtcbn1cblxuLmNoLXN1bW1hcnktdiB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXNpemU6IDIycHg7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7XG5cbiAgJi5ncmFkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtZ3JhZCk7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG5cbi8vIOKUgOKUgCBCdXkgYnV0dG9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4uY2gtYnV5LWJ0biB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBwYWRkaW5nOiAxNXB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDExcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFwcC1ncmFkKTtcbiAgY29sb3I6IHZhcigtLWFwcC1iZyk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAxLjVweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3gtc2hhZG93OiAwIDZweCAyNHB4IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC40MCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMnMgdmFyKC0tZWFzZSwgZWFzZSksIGJveC1zaGFkb3cgLjJzIHZhcigtLWVhc2UsIGVhc2UpO1xuXG4gICY6aG92ZXIgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IGJveC1zaGFkb3c6IDAgMTJweCAzNnB4IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC42NSk7IH1cbn1cblxuXG4vLyDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbi8vIFB1cmNoYXNlIGNvbmZpcm1hdGlvbiBtb2RhbCArIHN1Y2Nlc3MgcGFuZWwgKHNoYXJlZCwgbGF5b3V0LWluZGVwZW5kZW50KVxuLy8g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG5cbi5jaC1tb2RhbC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMTA1MDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuNzIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMjBweDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMjVzIGVhc2U7XG5cbiAgJi5vcGVuIHsgb3BhY2l0eTogMTsgfVxuICAmLm9wZW4gLmNoLW1vZGFsIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG5cbi5jaC1tb2RhbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdmFyKC0tYXBwLXN1cmZhY2UyKSAwJSwgdmFyKC0tYXBwLXN1cmZhY2UzKSAxMDAlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYXBwLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDU0MHB4O1xuICBtYXgtaGVpZ2h0OiA5MHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBib3gtc2hhZG93OiAwIDI4cHggNzJweCByZ2JhKDAsIDAsIDAsIC42NSksIDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIC4wNCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zNXMgY3ViaWMtYmV6aWVyKC4yLCAuOCwgLjIsIDEpO1xufVxuXG4uY2gtbW9kYWwtY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTZweDsgcmlnaHQ6IDE2cHg7XG4gIHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDMwcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hcHAtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjb2xvcjogdmFyKC0tYXBwLXRleHQyKTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIC4ycztcbiAgei1pbmRleDogMjtcblxuICAmOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7IH1cbn1cblxuLmNoLW1vZGFsLWhlYWRlciB7XG4gIHBhZGRpbmc6IDI2cHggMjhweCAxOHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYXBwLWJvcmRlcik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNoLW1vZGFsLWV5ZWJyb3cge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAyLjVweDtcbiAgY29sb3I6IHZhcigtLWFwcC1hY2NlbnQzKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4uY2gtbW9kYWwtbmFtZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXNpemU6IDI4cHg7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7XG4gIG1hcmdpbjogMCAwIDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uY2gtbW9kYWwtY2hhaW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4ucGgtYmFkZ2Uge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTtcbiAgZm9udC1zaXplOiA4cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAxLjJweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgJi5jaGFsbGVuZ2UgeyBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMjApOyBjb2xvcjogdmFyKC0tYXBwLWFjY2VudDMpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMzUpOyB9XG4gICYuZXZhbCAgICAgIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDE0OSwgMCwgLjE1KTsgICAgICAgY29sb3I6ICN7JGNoLW9yYW5nZX07ICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAxNDksIDAsIC4zNSk7IH1cbiAgJi5mdW5kZWQgICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAxOTcsIDk0LCAuMTgpOyAgICAgICAgY29sb3I6IHZhcigtLWFwcC1ncmVlbik7ICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDE5NywgOTQsIC4zNSk7IH1cbn1cblxuLnBoLWFyciB7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLWFwcC10ZXh0Myk7IGxpbmUtaGVpZ2h0OiAxOyBmbGV4LXNocmluazogMDsgfVxuXG4uY2gtbW9kYWwtYm9keSB7XG4gIHBhZGRpbmc6IDE4cHggMjhweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLmNoLW1vZGFsLXRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cbiAgdGhlYWQgdGgge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pO1xuICAgIGZvbnQtc2l6ZTogOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDEuNXB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6IHZhcigtLWFwcC10ZXh0Myk7XG4gICAgcGFkZGluZzogMCA4cHggMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAmLmNoLW10LWxhYmVsIHsgdGV4dC1hbGlnbjogbGVmdDsgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgJi5jaC1tdC1waCB7XG4gICAgICAmLmNoYWxsZW5nZSB7IGNvbG9yOiB2YXIoLS1hcHAtYWNjZW50Myk7IH1cbiAgICAgICYuZXZhbCAgICAgIHsgY29sb3I6ICN7JGNoLW9yYW5nZX07IH1cbiAgICAgICYuZnVuZGVkICAgIHsgY29sb3I6IHZhcigtLWFwcC1ncmVlbik7IH1cbiAgICB9XG4gIH1cblxuICB0Ym9keSB0ciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjA0KTtcbiAgICAmOmxhc3QtY2hpbGQgeyBib3JkZXItYm90dG9tOiBub25lOyB9XG4gIH1cblxuICB0Ym9keSB0ZCB7XG4gICAgcGFkZGluZzogOXB4IDhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLWFwcC10ZXh0KTtcbiAgfVxuXG4gIC5jaC1tdC1sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gICAgZm9udC1zaXplOiA5cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgIGNvbG9yOiB2YXIoLS1hcHAtdGV4dDMpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB3aWR0aDogMTE4cHg7XG4gIH1cblxuICAuY2gtbXQtdmFsIHtcbiAgICAmLnVuaWZvcm0geyBmb250LXNpemU6IDEycHg7IGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjAzKTsgfVxuICAgICYuZ3JlZW4gICB7IGNvbG9yOiB2YXIoLS1hcHAtZ3JlZW4pOyB9XG4gICAgJi5yZWQgICAgIHsgY29sb3I6IHZhcigtLWFwcC1yZWQpOyB9XG4gICAgJi5vcmFuZ2UgIHsgY29sb3I6ICN7JGNoLW9yYW5nZX07IH1cbiAgICAmLmdvbGQgICAgeyBjb2xvcjogdmFyKC0tYXBwLWdvbGQpOyB9XG4gICAgJi5hY2NlbnQgIHsgY29sb3I6IHZhcigtLWFwcC1hY2NlbnQzKTsgfVxuICAgICYubXV0ZWQgICB7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDMpOyBmb250LXdlaWdodDogNDAwOyBmb250LXN0eWxlOiBpdGFsaWM7IH1cbiAgfVxufVxuXG4uY2gtbW9kYWwtZm9vdGVyIHtcbiAgcGFkZGluZzogMThweCAyOHB4IDI2cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1hcHAtYm9yZGVyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI0NSwgMTk3LCAyNCwgLjA0KSAwJSwgcmdiYSgyNDUsIDE5NywgMjQsIC4wMikgMTAwJSk7XG59XG5cbi5jaC1tb2RhbC1iYWxhbmNlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIC5jaC1tYi1sYWJlbCB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gICAgZm9udC1zaXplOiA5cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1hcHAtdGV4dDMpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAuY2gtbWItdmFsIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tYXBwLXRleHQpO1xuXG4gICAgJi5jaC1tYi1zaG9ydCB7IGNvbG9yOiB2YXIoLS1hcHAtcmVkKTsgfVxuICB9XG59XG5cbi5jaC1tb2RhbC1idXkge1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICMwQTA0MTQ7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICN7JGNoLWdvbGQtZGFya30gMCUsIHZhcigtLWFwcC1nb2xkKSA1MCUsICN7JGNoLWdvbGQtc29mdH0gMTAwJSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAxNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGxldHRlci1zcGFjaW5nOiAuM3B4O1xuICB0cmFuc2l0aW9uOiBhbGwgLjI1cztcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIC4zKSwgMCA0cHggMTRweCByZ2JhKDI0NSwgMTk3LCAyNCwgLjIyKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IGhlaWdodDogNTAlO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjE0KSAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAmLmNoLWJ1eS1yZWFkeTpob3ZlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgyNDUsIDE5NywgMjQsIC41KTsgfVxuXG4gICYuY2gtYnV5LWRpc2FibGVkLFxuICAmW2Rpc2FibGVkXSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYXBwLXN1cmZhY2UzKTtcbiAgICBjb2xvcjogdmFyKC0tYXBwLXRleHQzKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hcHAtYm9yZGVyKTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgICY6OmJlZm9yZSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgfVxufVxuXG4uY2gtbW9kYWwtaGludCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS1hcHAtdGV4dDMpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuXG4vLyDilIDilIAgUHVyY2hhc2Ugc3VjY2VzcyBwYW5lbCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLmNoLXN1Y2Nlc3MgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6IDRweCAwIDhweDsgfVxuXG4uY2gtc3VjY2Vzcy1hcnQge1xuICB3aWR0aDogODhweDsgaGVpZ2h0OiA4OHB4O1xuICBtYXJnaW46IDAgYXV0byAyMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4xMik7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4zKTtcbiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1hcHAtYWNjZW50Myk7XG4gIGFuaW1hdGlvbjogY2gtc3VjY2Vzcy1yaW5nIDIuNHMgZWFzZS1vdXQgaW5maW5pdGU7XG4gIHN2ZyB7IHdpZHRoOiAzNHB4OyBoZWlnaHQ6IDM0cHg7IH1cbn1cblxuQGtleWZyYW1lcyBjaC1zdWNjZXNzLXJpbmcge1xuICAwJSAgIHsgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMzUpOyB9XG4gIDYwJSAgeyBib3gtc2hhZG93OiAwIDAgMCAxMnB4IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIDApOyB9XG4gIDEwMCUgeyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEodmFyKC0tYWNjZW50LXJnYiksIDApOyB9XG59XG5cbi5jaC1zdWNjZXNzLWV5ZWJyb3cge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTtcbiAgZm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogLjI4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1hcHAtZ3JlZW4pOyBtYXJnaW4tYm90dG9tOiA2cHg7XG59XG5cbi5jaC1zdWNjZXNzLWgge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC1zaXplOiAzOHB4OyBsZXR0ZXItc3BhY2luZzogLjA0ZW07IGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW4tYm90dG9tOiAyMnB4OyBjb2xvcjogdmFyKC0tYXBwLXRleHQpO1xufVxuXG4uY2gtcGxhdGUtbCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pO1xuICBmb250LXNpemU6IDlweDsgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC4yOGVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tYXBwLXRleHQzKTsgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4uY2gtcGxhdGUge1xuICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAzcHg7XG4gIHBhZGRpbmc6IDEycHggMjBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYXBwLWJnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYXBwLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1hcHAtYWNjZW50KSwgMCAwIDIycHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjIpO1xuICBtYXJnaW4tYm90dG9tOiAxNHB4O1xufVxuXG4uY2gtcGxhdGUtZGlnaXQge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC1zaXplOiAzNHB4OyBsZXR0ZXItc3BhY2luZzogLjA4ZW07XG4gIGNvbG9yOiB2YXIoLS1hcHAtYWNjZW50Myk7XG4gIG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpO1xuICBhbmltYXRpb246IGNoLWRpZ2l0LWluIC4zNXMgZWFzZSBmb3J3YXJkcztcbn1cblxuQGtleWZyYW1lcyBjaC1kaWdpdC1pbiB7XG4gIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG5cbi5jaC10b2stYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gIGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDcwMDsgbGV0dGVyLXNwYWNpbmc6IC4wNmVtO1xuICBjb2xvcjogdmFyKC0tYXBwLWdyZWVuKTtcbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1ncmVlbi1yZ2IsIDM0LCAxOTcsIDk0KSwgLjEpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKHZhcigtLWdyZWVuLXJnYiwgMzQsIDE5NywgOTQpLCAuMjUpO1xuICBib3JkZXItcmFkaXVzOiAyMHB4OyBwYWRkaW5nOiA0cHggMTJweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgYW5pbWF0aW9uOiBjaC1iYWRnZS1pbiAuNHMgLjNzIGVhc2UgYm90aDtcbn1cblxuQGtleWZyYW1lcyBjaC1iYWRnZS1pbiB7XG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHNjYWxlKC44NSk7IH1cbiAgdG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbn1cblxuLmNoLXN1Y2Nlc3Mtc3RhdHMge1xuICBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICBnYXA6IDZweDsgbWFyZ2luLXRvcDogNHB4O1xufVxuXG4uY2gtc3VjY2Vzcy1zdGF0IHtcbiAgcGFkZGluZzogMTBweCA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFwcC1zdXJmYWNlMik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFwcC1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5jaC1zcy1sIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gIGZvbnQtc2l6ZTogOHB4OyBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogLjE4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1hcHAtdGV4dDMpOyBtYXJnaW4tYm90dG9tOiAzcHg7XG59XG5cbi5jaC1zcy12IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtc2l6ZTogMThweDsgbGV0dGVyLXNwYWNpbmc6IC4wMmVtO1xuICBjb2xvcjogdmFyKC0tYXBwLXRleHQpOyBsaW5lLWhlaWdodDogMTtcbn1cblxuLmNoLXN1Y2Nlc3MtYXV0byB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pO1xuICBmb250LXNpemU6IDEwcHg7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDMpO1xuICBsZXR0ZXItc3BhY2luZzogLjA2ZW07IHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgI2NoU3VjY2Vzc0NvdW50ZG93biB7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpOyB9XG59XG5cbi5jaC1zdWNjZXNzLWJ0bnMge1xuICBkaXNwbGF5OiBmbGV4OyBnYXA6IDEwcHg7XG59XG5cbi5jaC1zdWNjZXNzLWNsb3NlIHtcbiAgZmxleDogMCAwIGF1dG87IHBhZGRpbmc6IDAgMjJweDsgaGVpZ2h0OiA0NHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYXBwLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDsgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogLjFlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWFwcC10ZXh0Mik7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMnMsIGNvbG9yIC4ycztcbiAgJjpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tYXBwLXRleHQyKTsgY29sb3I6IHZhcigtLWFwcC10ZXh0KTsgfVxufVxuXG4uY2gtc3VjY2Vzcy10cmFkZSB7XG4gIGZsZXg6IDE7IGhlaWdodDogNDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYXBwLWFjY2VudCk7XG4gIGJvcmRlcjogbm9uZTsgYm9yZGVyLXJhZGl1czogOHB4OyBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAuMWVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbiAgdHJhbnNpdGlvbjogZmlsdGVyIC4ycztcbiAgJjpob3ZlciB7IGZpbHRlcjogYnJpZ2h0bmVzcygxLjEyKTsgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQbGF5IGhlcm8g4oCUIGxpdmUgbWFzdGVyIGxlYWRlcmJvYXJkOiBwb2RpdW0gKHRvcCAzKSArIHJhbmtlZCBzdHJpcCAoNOKAkzEwKS5cbiAgIE1hcmt1cDogX1BsYXlQb2RpdW0uY3NodG1sLCBsb2dpYzogcGxheS5qcy4gVGhlbWUgdmFycyBvbmx5LlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucGQgeyB3aWR0aDogMTAwJTsgbWF4LXdpZHRoOiA5ODBweDsgbWFyZ2luOiAyOHB4IGF1dG8gMDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxOHB4OyB9XG5cbi5wZC1oZWFkIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBnYXA6IDE2cHg7IGZsZXgtd3JhcDogd3JhcDsgfVxuLnBkLWxpdmUgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDEwcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAzcHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS10ZXh0Mik7IH1cbi5wZC1saXZlLWRvdCB7IHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLWdyZWVuLCAjMjJjNTVlKTsgYm94LXNoYWRvdzogMCAwIDhweCB2YXIoLS1ncmVlbiwgIzIyYzU1ZSk7IGFuaW1hdGlvbjogcGQtcHVsc2UgMnMgaW5maW5pdGU7IH1cbi5wZC1mb3JtYXRzIHsgZGlzcGxheTogZmxleDsgZ2FwOiA2cHg7IGZsZXgtd3JhcDogd3JhcDtcbiAgc3BhbiB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDlweDsgbGV0dGVyLXNwYWNpbmc6IDJweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLXRleHQzKTsgcGFkZGluZzogNHB4IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGJvcmRlci1yYWRpdXM6IDEwMHB4OyB9IH1cblxuLyog4pSA4pSAIFBvZGl1bSDilIDilIAgKi9cbi5wZC1wb2RpdW0geyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7IGdhcDogMTRweDsgYWxpZ24taXRlbXM6IGVuZDsgfVxuLnBkLWNhcmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDIycHggMTZweCAxOHB4OyBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWJnKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgYm94LXNoYWRvdzogMCAyMHB4IDUwcHggcmdiYSgwLDAsMCwuMzUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpLCBvcGFjaXR5IC40cywgYm9yZGVyLWNvbG9yIC4zcztcbiAgJjo6YmVmb3JlIHsgY29udGVudDogJyc7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgaGVpZ2h0OiAycHg7IGJvcmRlci1yYWRpdXM6IDE2cHggMTZweCAwIDA7IGJhY2tncm91bmQ6IHZhcigtLWdyYWQpOyBvcGFjaXR5OiAuNTsgfVxuICAmLnAxIHsgcGFkZGluZy10b3A6IDMwcHg7IHBhZGRpbmctYm90dG9tOiAyNnB4OyBib3JkZXItY29sb3I6IHJnYmEoMjQ1LDE5NywyNCwuNDUpOyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI0NSwxOTcsMjQsLjEwKSwgdmFyKC0tY2FyZC1iZykgNTUlKTsgYm94LXNoYWRvdzogMCAyNHB4IDYwcHggcmdiYSgwLDAsMCwuNDUpLCAwIDAgNDBweCByZ2JhKDI0NSwxOTcsMjQsLjEyKTtcbiAgICAmOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNGNUM1MTgsICNmYmJmMjQpOyBvcGFjaXR5OiAxOyB9IH1cbiAgJi5wMiB7IGJvcmRlci1jb2xvcjogcmdiYSgxOTIsMTkyLDIwMCwuMzUpOyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE5MiwxOTIsMjAwLC4wOCksIHZhcigtLWNhcmQtYmcpIDU1JSk7ICY6OmJlZm9yZSB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2MwYzBjOCwgI2U1ZTdlYik7IG9wYWNpdHk6IC45OyB9IH1cbiAgJi5wMyB7IGJvcmRlci1jb2xvcjogcmdiYSgyMDUsMTI3LDUwLC4zNSk7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjA1LDEyNyw1MCwuMDkpLCB2YXIoLS1jYXJkLWJnKSA1NSUpOyAmOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNjZDdmMzIsICNlMGEwNjApOyBvcGFjaXR5OiAuOTsgfSB9XG4gICYucGQtaW4geyBhbmltYXRpb246IHBkLXVwIC41cyBjdWJpYy1iZXppZXIoLjIyLDEsLjM2LDEpIGJvdGg7IH1cbn1cbi5wZC1yYW5rIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEwcHg7IGxlZnQ6IDE0cHg7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDIycHg7IGxldHRlci1zcGFjaW5nOiAxcHg7IGNvbG9yOiB2YXIoLS10ZXh0Myk7XG4gIC5wMSAmIHsgY29sb3I6ICNGNUM1MTg7IH0gLnAyICYgeyBjb2xvcjogI2MwYzBjODsgfSAucDMgJiB7IGNvbG9yOiAjY2Q3ZjMyOyB9IH1cbi5wZC1tb3ZlIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEycHg7IHJpZ2h0OiAxNHB4OyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5cHg7IGxldHRlci1zcGFjaW5nOiAxcHg7IGNvbG9yOiB2YXIoLS10ZXh0Myk7XG4gICYudXAgeyBjb2xvcjogdmFyKC0tZ3JlZW4sICMyMmM1NWUpOyB9ICYuZG4geyBjb2xvcjogdmFyKC0tcmVkLCAjZWY0NDQ0KTsgfSAmLm5ldyB7IGNvbG9yOiB2YXIoLS1hY2NlbnQzLCB2YXIoLS1hY2NlbnQpKTsgfSB9XG4ucGQtYXYgeyB3aWR0aDogNTZweDsgaGVpZ2h0OiA1NnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IG92ZXJmbG93OiBoaWRkZW47IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgY29sb3I6ICMwMDA7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDI0cHg7IGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWJnKTsgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWJvcmRlci1oKTtcbiAgaW1nIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgb2JqZWN0LWZpdDogY292ZXI7IGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5wMSAmIHsgd2lkdGg6IDY4cHg7IGhlaWdodDogNjhweDsgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMjQ1LDE5NywyNCwuNyksIDAgMCAyNHB4IHJnYmEoMjQ1LDE5NywyNCwuMzUpOyB9IH1cbi5wZC1uYW1lIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLXRleHQpOyBtYXgtd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4ucGQtbHZsIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOXB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dDMpOyB9XG4ucGQtc2NvcmUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiAzNHB4OyBsaW5lLWhlaWdodDogMTsgbGV0dGVyLXNwYWNpbmc6IDFweDsgY29sb3I6IHZhcigtLXRleHQpOyBtYXJnaW4tdG9wOiA0cHg7XG4gIC5wMSAmIHsgZm9udC1zaXplOiA0NHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjRjVDNTE4LCAjZmJiZjI0KTsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IGJhY2tncm91bmQtY2xpcDogdGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OyB9IH1cbi5wZC1zY29yZS1sYmwgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA4cHg7IGxldHRlci1zcGFjaW5nOiAyLjVweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLXRleHQzKTsgfVxuXG4vKiDilIDilIAgUmFua2VkIHN0cmlwICg04oCTMTApIOKUgOKUgCAqL1xuLnBkLXN0cmlwLXdyYXAgeyBvdmVyZmxvdy14OiBhdXRvOyBzY3JvbGxiYXItd2lkdGg6IG5vbmU7IC13ZWJraXQtbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwLCAjMDAwIDI0cHgsICMwMDAgY2FsYygxMDAlIC0gMjRweCksIHRyYW5zcGFyZW50IDEwMCUpOyBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAsICMwMDAgMjRweCwgIzAwMCBjYWxjKDEwMCUgLSAyNHB4KSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgZGlzcGxheTogbm9uZTsgfSB9XG4ucGQtc3RyaXAgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgcGFkZGluZzogMnB4IDI0cHg7IHdpZHRoOiBtYXgtY29udGVudDsgbWluLXdpZHRoOiAxMDAlOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuLnBkLWNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7IHBhZGRpbmc6IDdweCAxMnB4IDdweCA5cHg7IGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS13MDUsIHJnYmEoMjU1LDI1NSwyNTUsLjA1KSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksIG9wYWNpdHkgLjRzLCBib3JkZXItY29sb3IgLjNzO1xuICAmOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItaCk7IH1cbiAgJi5wZC1pbiB7IGFuaW1hdGlvbjogcGQtdXAgLjQ1cyBjdWJpYy1iZXppZXIoLjIyLDEsLjM2LDEpIGJvdGg7IH1cbn1cbi5wZC1jaGlwLXJhbmsgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiAxNXB4OyBjb2xvcjogdmFyKC0tdGV4dDMpOyBtaW4td2lkdGg6IDE2cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuLnBkLWNoaXAtYXYgeyB3aWR0aDogMjRweDsgaGVpZ2h0OiAyNHB4OyBib3JkZXItcmFkaXVzOiA1MCU7IG92ZXJmbG93OiBoaWRkZW47IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgY29sb3I6ICMwMDA7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDEycHg7XG4gIGltZyB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6IGNvdmVyOyBkaXNwbGF5OiBibG9jazsgfSB9XG4ucGQtY2hpcC1uYW1lIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7IGZvbnQtc2l6ZTogMTIuNXB4OyBjb2xvcjogdmFyKC0tdGV4dCk7IG1heC13aWR0aDogMTIwcHg7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9XG4ucGQtY2hpcC1zY29yZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAuNXB4OyBjb2xvcjogdmFyKC0tYWNjZW50MywgdmFyKC0tYWNjZW50KSk7IH1cbi5wZC1jaGlwLW1vdmUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5cHg7IGNvbG9yOiB2YXIoLS10ZXh0Myk7ICYudXAgeyBjb2xvcjogdmFyKC0tZ3JlZW4sICMyMmM1NWUpOyB9ICYuZG4geyBjb2xvcjogdmFyKC0tcmVkLCAjZWY0NDQ0KTsgfSAmLm5ldyB7IGNvbG9yOiB2YXIoLS1hY2NlbnQzLCB2YXIoLS1hY2NlbnQpKTsgfSB9XG5cbi5wZC1lbXB0eSB7IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTBweDsgbGV0dGVyLXNwYWNpbmc6IDJweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLXRleHQzKTsgcGFkZGluZzogMThweDsgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWJvcmRlcik7IGJvcmRlci1yYWRpdXM6IDEycHg7IH1cblxuQGtleWZyYW1lcyBwZC1wdWxzZSB7IDAlLCAxMDAlIHsgb3BhY2l0eTogMTsgfSA1MCUgeyBvcGFjaXR5OiAuMzU7IH0gfVxuQGtleWZyYW1lcyBwZC11cCB7IGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTRweCk7IH0gdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IG5vbmU7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLnBkLXBvZGl1bSB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAucGQtY2FyZC5wMSB7IG9yZGVyOiAtMTsgfVxuICAucGQtc3RyaXAgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5wZC1jYXJkLCAucGQtY2hpcCwgLnBkLWxpdmUtZG90IHsgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7IHRyYW5zaXRpb246IG5vbmU7IH1cbn1cbiIsIi8qIOKVkOKVkOKVkCBIb21lIOKAlCBcIkV2ZXJ5dGhpbmcgeW91IG5lZWQgdG8gdHJhZGUgYW5kIHdpblwiIOKVkOKVkOKVkFxuICAgUG9ydGVkIGZyb20gdGhlIENsYXVkZSBEZXNpZ24gYXJ0Ym9hcmQgXCJUcmFkYW50ZSBBNCBGZWF0dXJlc1wiLiBNYXJrdXA6IF9Ib21lRXZlcnl0aGluZy5jc2h0bWwsXG4gICBsb2dpYyArIHNjZW5lIG1hcmt1cDogZXZlcnl0aGluZy5qcy4gVmFsdWVzIGFyZSB0aGUgYXJ0Ym9hcmQncy4gVGhlIGFydGJvYXJkJ3MgZml4ZWQgYmFja2dyb3VuZFxuICAgbGF5ZXJzIChnbG93IC8gZ3JpZCAvIGdyYWluKSBhcmUgc2VjdGlvbi1zY29wZWQgaGVyZTsgdG9rZW5zIHRoZSBwdWJsaWMgYnVuZGxlIGxhY2tzIGFyZSBzZXQgb24gLmV2LXNlYy4gKi9cbi5ldi1zZWMge1xuICAtLWVhc2U6IGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpO1xuICAtLWdsb3ctYnRuOiAwIDZweCAyNHB4IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC40KTtcbiAgLS1pbms6ICMwQTA4MTQ7XG4gIC0tZ3JlZW4yOiAjNGFkZTgwO1xuICAtLXJlZDI6ICNmODcxNzE7XG4gIC0tYmctZ2xvdzogdmFyKC0tYXBwLWdsb3cpO1xuICAtLWJnLWdyaWQ6IGxpbmVhci1ncmFkaWVudCh2YXIoLS1hcHAtZ3JpZC1saW5lKSAxcHgsIHRyYW5zcGFyZW50IDFweCksIGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tYXBwLWdyaWQtbGluZSkgMXB4LCB0cmFuc3BhcmVudCAxcHgpO1xuICAtLWJnLWdyaWQtc2l6ZTogNjRweCA2NHB4O1xuICAtLWJnLWdyYWluOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHZpZXdCb3g9JzAgMCAyMDAgMjAwJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDZmlsdGVyIGlkPSduJyUzRSUzQ2ZlVHVyYnVsZW5jZSB0eXBlPSdmcmFjdGFsTm9pc2UnIGJhc2VGcmVxdWVuY3k9JzAuODUnIG51bU9jdGF2ZXM9JzQnIHN0aXRjaFRpbGVzPSdzdGl0Y2gnLyUzRSUzQy9maWx0ZXIlM0UlM0NyZWN0IHdpZHRoPScxMDAlMjUnIGhlaWdodD0nMTAwJTI1JyBmaWx0ZXI9J3VybCglMjNuKScvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nOiA0MHB4IDQwcHggNDhweDsgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAyNHB4OyBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtYmcpOyBjb2xvcjogdmFyKC0tYXBwLXRleHQpOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcbiAgYSB7IGNvbG9yOiB2YXIoLS1hcHAtYWNjZW50Myk7ICY6aG92ZXIgeyBjb2xvcjogdmFyKC0tYXBwLXRleHQpOyB9IH1cbn1cbi5ldi1iZy1nbG93ICB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IHotaW5kZXg6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1nbG93KTsgfVxuLmV2LWJnLWdyaWQgIHsgcG9zaXRpb246IGFic29sdXRlOyBpbnNldDogMDsgei1pbmRleDogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWJnLWdyaWQpOyBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLWJnLWdyaWQtc2l6ZSk7XG4gIG1hc2staW1hZ2U6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciB0b3AsIGJsYWNrIDAlLCB0cmFuc3BhcmVudCA3NSUpOyAtd2Via2l0LW1hc2staW1hZ2U6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciB0b3AsIGJsYWNrIDAlLCB0cmFuc3BhcmVudCA3NSUpOyB9XG4uZXYtYmctZ3JhaW4geyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyB6LWluZGV4OiAwOyBwb2ludGVyLWV2ZW50czogbm9uZTsgb3BhY2l0eTogLjAyMjsgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tYmctZ3JhaW4pOyBiYWNrZ3JvdW5kLXNpemU6IDIwMHB4IDIwMHB4OyB9XG5cbi5ldi1pbm5lciB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTsgd2lkdGg6IDEwMCU7IG1heC13aWR0aDogMTI0MHB4OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDIwcHg7IH1cbi5ldi1oZWFkICB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHRleHQtYWxpZ246IGNlbnRlcjsgZ2FwOiAwOyB9XG4uZXYtdGl0bGUgeyBtYXJnaW46IDA7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXdlaWdodDogNDAwOyBmb250LXNpemU6IGNsYW1wKDMwcHgsIDMuNnZ3LCA0MnB4KTsgbGV0dGVyLXNwYWNpbmc6IDJweDsgbGluZS1oZWlnaHQ6IDE7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7XG4gIGVtIHsgZm9udC1zdHlsZTogbm9ybWFsOyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IGJhY2tncm91bmQtY2xpcDogdGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OyB9IH1cbi5ldi10aXRsZS1yZWYgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC13ZWlnaHQ6IDQwMDsgZm9udC1zaXplOiBjbGFtcCgzMHB4LCAzLjZ2dywgNDJweCk7IGxldHRlci1zcGFjaW5nOiAycHg7IGxpbmUtaGVpZ2h0OiAxOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7IHRyYW5zZm9ybS1vcmlnaW46IHRvcDsgb3BhY2l0eTogLjE4OyBmaWx0ZXI6IGJsdXIoMS41cHgpO1xuICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsMCwwLC44KSwgdHJhbnNwYXJlbnQgNTUlKTsgLXdlYmtpdC1tYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsMCwwLC44KSwgdHJhbnNwYXJlbnQgNTUlKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IHVzZXItc2VsZWN0OiBub25lOyB9XG4uZXYtbGVkZSB7IG1hcmdpbjogNnB4IDAgMDsgbWF4LXdpZHRoOiA3MmNoOyBmb250LXNpemU6IDEzLjVweDsgbGluZS1oZWlnaHQ6IDEuNjsgY29sb3I6IHZhcigtLWFwcC10ZXh0Mik7IHRleHQtd3JhcDogcHJldHR5OyB9XG5cbi5ldi1ncmlkIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgNmZyKSAxcHggbWlubWF4KDAsIDZmcik7IGdhcDogMCAzMnB4OyBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4vKiBsZWZ0IMK3IHRhYiBsaXN0ICovXG4uZXYtdGFicyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMDsgcGFkZGluZzogNHB4IDA7IH1cbi5ldi10YWIgeyBhbGw6IHVuc2V0OyBjdXJzb3I6IHBvaW50ZXI7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyBwYWRkaW5nOiAxMHB4IDE2cHggMTBweCAwOyBvcGFjaXR5OiAuNDU7IHRyYW5zaXRpb246IG9wYWNpdHkgLjM1cyB2YXIoLS1lYXNlKTtcbiAgJi5vbiB7IG9wYWNpdHk6IDE7IH1cbiAgJjpmb2N1cy12aXNpYmxlIHsgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWFwcC1hY2NlbnQpOyBvdXRsaW5lLW9mZnNldDogMnB4OyBib3JkZXItcmFkaXVzOiA2cHg7IH0gfVxuLmV2LXRhYi1sYWJlbCB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDE3cHg7IGxldHRlci1zcGFjaW5nOiAxLjJweDsgbGluZS1oZWlnaHQ6IDE7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHdoaXRlLXNwYWNlOiBub3dyYXA7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpOyB0cmFuc2l0aW9uOiBjb2xvciAuMzVzO1xuICAuZXYtdGFiLm9uICYgeyBjb2xvcjogdmFyKC0tYXBwLXRleHQpOyB9IH1cbi5ldi10YWItZGVzYyB7IGZvbnQtc2l6ZTogMTIuNXB4OyBsaW5lLWhlaWdodDogMS41OyBjb2xvcjogdmFyKC0tYXBwLXRleHQyKTsgbWF4LXdpZHRoOiA1NmNoOyB0ZXh0LXdyYXA6IHByZXR0eTsgfVxuXG4vKiBjZW50ZXIgwrcgcmVwb3NpdGlvbmluZyBzY3JvbGxiYXIgKi9cbi5ldi1yYWlsICB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDFweDsgYmFja2dyb3VuZDogdmFyKC0tYXBwLWJvcmRlcik7IH1cbi5ldi10aHVtYiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogLTEuNXB4OyB3aWR0aDogNHB4OyBib3JkZXItcmFkaXVzOiAycHg7IGJhY2tncm91bmQ6IHZhcigtLWFwcC1ncmFkKTsgYm94LXNoYWRvdzogMCAwIDEycHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjcpO1xuICB0b3A6IDA7IGhlaWdodDogODBweDsgdHJhbnNpdGlvbjogdG9wIC41cyB2YXIoLS1lYXNlKSwgaGVpZ2h0IC41cyB2YXIoLS1lYXNlKTsgfVxuXG4vKiByaWdodCDCtyBhbmltYXRlZCB2aXN1YWwgKi9cbi8qIGZpeGVkIGhlaWdodDogZXZlcnkgc2NlbmUgKGluY2wuIHRoZSB0dWNrZWQgbG93ZXItbGVmdCB3aW5kb3cpIGZpdHMgaW4gaXQsIHNvIHRoZSBzZWN0aW9uIG5ldmVyIHJlc2l6ZXMgb24gdGFiIGNoYW5nZSAqL1xuLmV2LXZpc3VhbCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYWxpZ24tc2VsZjogY2VudGVyOyB3aWR0aDogMTAwJTsgbWluLXdpZHRoOiAwOyBoZWlnaHQ6IDQwMHB4OyBwYWRkaW5nOiA4cHggMCAwOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4uZXYtdmlzdWFsLWdsb3cgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAtNDBweDsgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA2MCUgNTAlLCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMjIpLCB0cmFuc3BhcmVudCA2MCUpOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuLmV2LXNjZW5lIHsgcG9zaXRpb246IHJlbGF0aXZlOyBjb2xvcjogdmFyKC0tYXBwLXRleHQpOyB9XG5cbi8qIENUQSB1bmRlciB0aGUgZ3JpZCDihpIgI3Byb2dyZXNzaW9uIChcIkV2ZXJ5IHRyYWRlIG1vdmVzIHlvdVwiKSAqL1xuLmV2LWN0YSB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgcGFkZGluZy10b3A6IDRweDsgfVxuLmV2LWN0YS1zdWIgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMXB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYXBwLXRleHQzKTsgfVxuXG5Aa2V5ZnJhbWVzIGV2LXB1bHNlICAgeyAwJSwgMTAwJSB7IG9wYWNpdHk6IDE7IH0gNTAlIHsgb3BhY2l0eTogLjQ7IH0gfVxuQGtleWZyYW1lcyBldi1mYWRlLXVwIHsgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNHB4KTsgfSB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9XG5Aa2V5ZnJhbWVzIGEzLWluLWwgIHsgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNHB4LCAxNnB4KTsgfSB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9IH1cbkBrZXlmcmFtZXMgYTMtaW4tciAgeyBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjRweCwgLTE2cHgpOyB9IHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH0gfVxuQGtleWZyYW1lcyBhMy1zbGlkZSB7IGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEycHgpOyB9IHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cbkBrZXlmcmFtZXMgYTMtZ3Jvdy14IHsgZnJvbSB7IHRyYW5zZm9ybTogc2NhbGVYKDApOyB9IHRvIHsgdHJhbnNmb3JtOiBzY2FsZVgoMSk7IH0gfVxuQGtleWZyYW1lcyBhMy1ncm93LXkgeyBmcm9tIHsgdHJhbnNmb3JtOiBzY2FsZVkoMCk7IH0gdG8geyB0cmFuc2Zvcm06IHNjYWxlWSgxKTsgfSB9XG5Aa2V5ZnJhbWVzIGEzLXBvcCAgIHsgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoLjg1KTsgfSB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuQGtleWZyYW1lcyBhMy1ibGluayB7IDAlLCAxMDAlIHsgb3BhY2l0eTogMTsgfSA1MCUgeyBvcGFjaXR5OiAuMzsgfSB9XG5Aa2V5ZnJhbWVzIGEzLXRpY2sgIHsgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOyB9IH1cbkBrZXlmcmFtZXMgYTQtZGF5ICAgeyAwJSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpOyB9IDE1JSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSAxMDAlIHsgb3BhY2l0eTogMTsgfSB9XG5Aa2V5ZnJhbWVzIGE0LWFycm93IHsgMCUgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTsgfSAyMCUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gODAlIHsgb3BhY2l0eTogMTsgfSAxMDAlIHsgb3BhY2l0eTogMDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA4OTkuOThweCkge1xuICAuZXYtc2VjIHsgcGFkZGluZzogMzJweCAyMHB4IDQwcHg7IH1cbiAgLmV2LWdyaWQgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgZ2FwOiAyNHB4OyB9XG4gIC5ldi1yYWlsIHsgZGlzcGxheTogbm9uZTsgfVxuICAuZXYtdGFiLWxhYmVsIHsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfVxuICAuZXYtdmlzdWFsIHsgaGVpZ2h0OiA0MjBweDsgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmV2LXNlYyAqIHsgYW5pbWF0aW9uLWR1cmF0aW9uOiAuMDFtcyAhaW1wb3J0YW50OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMDFtcyAhaW1wb3J0YW50OyB9XG59XG4iLCIvKiDilZDilZDilZAgSG9tZSDigJQgXCJUcmFkZSBldmVyeXRoaW5nXCIgcHJvZHVjdHMgY2Fyb3VzZWwgKF9Ib21lUHJvZHVjdHMuY3NodG1sKSDilZDilZDilZBcbiAgIFBvcnRlZCB2ZXJiYXRpbSBmcm9tIHRoZSBtb2NrdXAgdHJhZGFudGUtcHJvZHVjdHMtY2Fyb3VzZWwtYTMuaHRtbDsgY2xhc3MgbmFtZXMga2VwdCwgc2NvcGVkIHVuZGVyXG4gICAucHJvZHVjdHMuIE1vY2t1cCB2YXJzIOKGkiBwdWJsaWMgYnVuZGxlOiAtLWJnLCAtLWFjY2VudCwgLS1hY2NlbnQzLCAtLWFjY2VudC1yZ2IsIC0tYXBwLSogKHBlciBkYXRhLXRoZW1lKS4gKi9cbi5wcm9kdWN0cyB7XG4gIC0tYmFkZ2U6IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4xMCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDEwMCU7IG1heC13aWR0aDogMTI4MHB4OyBtYXJnaW46IDhweCBhdXRvOyBwYWRkaW5nOiAwOyBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogdmFyKC0tYXBwLXRleHQpOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcbiAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuICAuaGVhZCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgdGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tYm90dG9tOiAzNHB4OyB9XG4gIC5leWVicm93IHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgcGFkZGluZzogNnB4IDE0cHg7IGJvcmRlci1yYWRpdXM6IDEwMHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1iYWRnZSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFwcC1ib3JkZXIpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDEwcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAzcHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1hY2NlbnQzKTtcbiAgICBpIHsgd2lkdGg6IDZweDsgaGVpZ2h0OiA2cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTsgYm94LXNoYWRvdzogMCAwIDhweCB2YXIoLS1hY2NlbnQpOyB9IH1cbiAgaDIgeyBtYXJnaW46IDA7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXdlaWdodDogNDAwOyBmb250LXNpemU6IDQwcHg7IGxpbmUtaGVpZ2h0OiAxOyBsZXR0ZXItc3BhY2luZzogMnB4OyBjb2xvcjogdmFyKC0tYXBwLXRleHQpO1xuICAgIGVtIHsgZm9udC1zdHlsZTogbm9ybWFsOyBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtZ3JhZCk7IC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsgfSB9XG4gIC5sZWRlIHsgbWFyZ2luOiA0cHggMCAwOyBtYXgtd2lkdGg6IDYyMHB4OyBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpOyBmb250LXdlaWdodDogMzAwOyB9XG5cbiAgLnJhaWwgeyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47XG4gICAgJjo6YmVmb3JlLCAmOjphZnRlciB7IGNvbnRlbnQ6ICcnOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgYm90dG9tOiAwOyB3aWR0aDogMTIwcHg7IHotaW5kZXg6IDI7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgJjo6YmVmb3JlIHsgbGVmdDogMDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1iZyksIHRyYW5zcGFyZW50KTsgfVxuICAgICY6OmFmdGVyIHsgcmlnaHQ6IDA7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgyNzBkZWcsIHZhcigtLWJnKSwgdHJhbnNwYXJlbnQpOyB9IH1cbiAgLnRyYWNrIHsgZGlzcGxheTogZmxleDsgZ2FwOiAxNHB4OyB3aWR0aDogbWF4LWNvbnRlbnQ7IHBhZGRpbmc6IDRweCAwOyBhbmltYXRpb246IHByLW1hcnF1ZWUgNDBzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAmOmhvdmVyIHsgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDsgfSB9XG5cbiAgLnRpbGUgeyBmbGV4OiBub25lOyB3aWR0aDogMjA4cHg7IGhlaWdodDogODBweDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMnB4OyBwYWRkaW5nOiAwIDE2cHg7IGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1hY2NlbnQpOyBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWFwcC1jYXJkLWJnKTsgZmlsdGVyOiBncmF5c2NhbGUoMSk7IG9wYWNpdHk6IC42OyB0cmFuc2l0aW9uOiBmaWx0ZXIgLjI1cywgb3BhY2l0eSAuMjVzLCBib3JkZXItY29sb3IgLjI1cztcbiAgICAmOmhvdmVyIHsgZmlsdGVyOiBub25lOyBvcGFjaXR5OiAxOyBib3JkZXItY29sb3I6IHZhcigtLWFwcC1ib3JkZXItaCk7IH0gfVxuICAuaWNvIHsgZmxleDogbm9uZTsgd2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsgYm9yZGVyLXJhZGl1czogOHB4OyBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMTIpOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgY29sb3I6IHZhcigtLWFjY2VudDMpOyB9XG4gIC50eHQgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDZweDsgbWluLXdpZHRoOiAwOyB9XG4gIC5uYW1lIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDE7IGxldHRlci1zcGFjaW5nOiAxLjVweDsgY29sb3I6IHZhcigtLWFwcC10ZXh0KTsgfVxuICAuc3ViIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA2cHg7IG1pbi13aWR0aDogMDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOXB4OyBmb250LXdlaWdodDogNTAwOyBsZXR0ZXItc3BhY2luZzogMS41cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpO1xuICAgIHNwYW4geyB3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgfVxuICAgIGltZyB7IGZsZXg6IG5vbmU7IHdpZHRoOiAxNHB4OyBoZWlnaHQ6IDE0cHg7IG9iamVjdC1maXQ6IGNvbnRhaW47IGJvcmRlci1yYWRpdXM6IDNweDsgZGlzcGxheTogYmxvY2s7IH0gfVxuICAuc3BvdCB7IGZsZXg6IG5vbmU7IGZvbnQtc2l6ZTogN3B4OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogMXB4OyBwYWRkaW5nOiAycHggNHB4OyBib3JkZXItcmFkaXVzOiAzcHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFwcC1ib3JkZXItaCk7IGNvbG9yOiB2YXIoLS1hY2NlbnQzKTsgbGluZS1oZWlnaHQ6IDE7IH1cbn1cbkBrZXlmcmFtZXMgcHItbWFycXVlZSB7IGZyb20geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gdG8geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH0gfVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsgLnByb2R1Y3RzIC50cmFjayB7IGFuaW1hdGlvbjogbm9uZTsgfSB9XG4iLCIvKiDilZDilZDilZAgSG9tZSDigJQgXCJOb3QgYW5vdGhlciBwcm9wIGZpcm1cIiAoX0hvbWVXaHkuY3NodG1sLCB3aHkuanMpIOKVkOKVkOKVkFxuICAgUG9ydGVkIHZlcmJhdGltIGZyb20gdGhlIG1vY2t1cCB3aHktZGlmZmVyZW50LXNlY3Rpb24uaHRtbC4gRXZlcnl0aGluZyBpcyBzY29wZWQgdW5kZXIgLnRyLXdoeSBzbyB0aGVcbiAgIG1vY2t1cCdzIGdlbmVyaWMgbmFtZXMgKC50ci1jYXJkLCAudHItYnRuLW91dGxpbmUsIC5rLCAuc2xpZGVyLCAucmFjZSwgLnBtLCAudGVybSkgZG9uJ3QgZmlnaHQgdGhlIGJ1bmRsZS5cbiAgIE1vY2t1cCB2YXJzIOKGkiBidW5kbGU6IC0tYmctY2FyZOKGki0tY2FyZC1iZywgLS1iZy1jYXJkLTLihpItLWJnNCwgLS1ib3JkZXItaGnihpItLWJvcmRlci1oLCAtLW11dGVk4oaSLS10ZXh0MixcbiAgIC0tZGlt4oaSLS10ZXh0MywgLS1hY2NlbnQtc29mdOKGknJnYmEoYWNjZW50LC4xNCk7IHRoZSBtb2NrdXAncyBibHVlIHJnYmEoNzksMTQyLDI0NyzigKYpIOKGkiByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLOKApikuICovXG4udHItd2h5IHtcbiAgLS1iZy1jYXJkOiB2YXIoLS1jYXJkLWJnKTsgLS1iZy1jYXJkLTI6IHZhcigtLWJnNCk7XG4gIC0tYm9yZGVyLWhpOiB2YXIoLS1ib3JkZXItaCk7XG4gIC0tbXV0ZWQ6IHZhcigtLXRleHQyKTsgLS1kaW06IHZhcigtLXRleHQzKTtcbiAgLS1hY2NlbnQtc29mdDogcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjE0KTtcbiAgLS1lYXNlOiBjdWJpYy1iZXppZXIoLjIsIC44LCAuMiwgMSk7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nOiA5NnB4IDQwcHggMTIwcHg7IG1heC13aWR0aDogMTM2MHB4OyBtYXJnaW46IDAgYXV0bzsgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IHZhcigtLXRleHQpOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcbiAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuICAuZXllYnJvdyB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDEwcHg7IGxldHRlci1zcGFjaW5nOiAuMzJlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWFjY2VudCk7IG1hcmdpbjogMCAwIDE0cHg7IH1cbiAgaDIgeyBtYXJnaW46IDA7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXdlaWdodDogNDAwOyBmb250LXNpemU6IGNsYW1wKDU2cHgsIDd2dywgODhweCk7IGxpbmUtaGVpZ2h0OiAuOTI7IGxldHRlci1zcGFjaW5nOiAuMDFlbTsgbWF4LXdpZHRoOiA2MjBweDsgY29sb3I6IHZhcigtLXRleHQpO1xuICAgIGVtIHsgZm9udC1zdHlsZTogbm9ybWFsOyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IGJhY2tncm91bmQtY2xpcDogdGV4dDsgY29sb3I6IHRyYW5zcGFyZW50OyB9IH1cbiAgLmxlZGUgeyBjb2xvcjogdmFyKC0tbXV0ZWQpOyBtYXgtd2lkdGg6IDUyMHB4OyBtYXJnaW46IDIycHggMCAwOyBmb250LXNpemU6IDE3cHg7IGxpbmUtaGVpZ2h0OiAxLjU1OyB9XG5cbiAgLyogZ3JpZCDigJQgbWlubWF4KDAsMWZyKSBzdG9wcyBhbnkgY2FyZCBmcm9tIGdyb3dpbmcgdG8gZml0IGl0cyBjb250ZW50ICovXG4gIC50ci13aHktZ3JpZCB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTsgZ2FwOiAxOHB4OyBtYXJnaW4tdG9wOiA1NnB4OyB9XG5cbiAgLnRyLWNhcmQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgYm9yZGVyLXJhZGl1czogMTRweDsgcGFkZGluZzogMjJweCAyMnB4IDI2cHg7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IG1pbi13aWR0aDogMDsgYm94LXNoYWRvdzogbm9uZTsgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4yNXM7XG4gICAgJjpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWhpKTsgfVxuICAgICYuaXMtaGkgeyBib3JkZXItY29sb3I6IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC41NSk7IGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMTUpIGluc2V0LCAwIDI0cHggNjBweCAtMzBweCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuNDUpOyB9XG4gICAgLnZpcyB7IGhlaWdodDogMTc2cHg7IGJvcmRlci1yYWRpdXM6IDEwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLWJnLWNhcmQtMiksIHJnYmEoMjU1LDI1NSwyNTUsLjAyKSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgbWFyZ2luLWJvdHRvbTogMjJweDsgcGFkZGluZzogMTZweDsgfVxuICAgIC50YWcgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5LjVweDsgbGV0dGVyLXNwYWNpbmc6IC4yMmVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tZGltKTsgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAgICYuaXMtaGkgLnRhZyB7IGNvbG9yOiB2YXIoLS1hY2NlbnQpOyB9XG4gICAgaDMgeyBtYXJnaW46IDAgMCAxMHB4OyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC13ZWlnaHQ6IDQwMDsgZm9udC1zaXplOiAyOHB4OyBsaW5lLWhlaWdodDogMTsgbGV0dGVyLXNwYWNpbmc6IC4wMmVtOyBjb2xvcjogdmFyKC0tdGV4dCk7IH1cbiAgICBwIHsgbWFyZ2luOiAwOyBjb2xvcjogdmFyKC0tbXV0ZWQpOyBmb250LXNpemU6IDE0LjVweDsgbGluZS1oZWlnaHQ6IDEuNTU7IGZsZXg6IDE7IH1cbiAgICBhIHsgY29sb3I6IHZhcigtLXRleHQpOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgbWFyZ2luLXRvcDogMThweDsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWhpKTsgcGFkZGluZy1ib3R0b206IDRweDsgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgJjpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50KTsgY29sb3I6IHZhcigtLXRleHQpOyB9XG4gICAgICAmOmZvY3VzLXZpc2libGUgeyBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYWNjZW50KTsgb3V0bGluZS1vZmZzZXQ6IDNweDsgfSB9IH1cblxuICAuayB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDkuNXB4OyBsZXR0ZXItc3BhY2luZzogLjE0ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1kaW0pOyB9XG5cbiAgLyogMSDCtyBidWlsZGVyIHdpdGggbGl2ZSBjb3N0ICovXG4gIC5idWlsZGVyIHsgaGVpZ2h0OiAxMDAlOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLnNsaWRlciB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogNTJweCAxZnIgNDZweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4O1xuICAgIC50IHsgaGVpZ2h0OiA0cHg7IGJvcmRlci1yYWRpdXM6IDJweDsgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWhpKTsgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgaSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyBoZWlnaHQ6IDEwMCU7IGJvcmRlci1yYWRpdXM6IDJweDsgYmFja2dyb3VuZDogdmFyKC0tZ3JhZCk7IHRyYW5zaXRpb246IHdpZHRoIDEuMXMgdmFyKC0tZWFzZSk7IH1cbiAgICAgIGIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNTAlOyB3aWR0aDogMTNweDsgaGVpZ2h0OiAxM3B4OyBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLXRleHQpOyBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1hY2NlbnQpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgYm94LXNoYWRvdzogMCAwIDAgNHB4IHZhcigtLWFjY2VudC1zb2Z0KTsgdHJhbnNpdGlvbjogbGVmdCAxLjFzIHZhcigtLWVhc2UpOyB9IH1cbiAgICAudiB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDE5cHg7IHRleHQtYWxpZ246IHJpZ2h0OyBsZXR0ZXItc3BhY2luZzogLjAzZW07IH0gfVxuICAuY29zdCB7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgcGFkZGluZy10b3A6IDlweDtcbiAgICAubiB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDI0cHg7IGNvbG9yOiB2YXIoLS1nb2xkKTsgbGV0dGVyLXNwYWNpbmc6IC4wM2VtOyBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOyB9XG4gICAgLm4uYnVtcCB7IGFuaW1hdGlvbjogd2h5LWJ1bXAgLjVzIHZhcigtLWVhc2UpOyB9IH1cblxuICAvKiAyIMK3IHN0YWdlIHJhY2Ug4oCUIGEgbWFya2VyIHJ1bnMgZWFjaCBsYW5lLCBnYXRlcyBzdGFtcCB3aGVuIGhpdCAqL1xuICAucmFjZSB7IGhlaWdodDogMTAwJTsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMjJweDsgfVxuICAubGFuZSB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogNDRweCAxZnIgNThweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4O1xuICAgIC50cmFjayB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgaGVpZ2h0OiAyNnB4OyB9XG4gICAgLnJhaWwgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHJpZ2h0OiAwOyB0b3A6IDUwJTsgaGVpZ2h0OiAycHg7IGJhY2tncm91bmQ6IHZhcigtLWJvcmRlci1oaSk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAgIC5maWxsIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDUwJTsgaGVpZ2h0OiAycHg7IHdpZHRoOiAwOyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB0cmFuc2l0aW9uOiB3aWR0aCAuMTJzIGxpbmVhcjsgfVxuICAgIC5wY3QgeyBwYWRkaW5nLWxlZnQ6IDFweDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtc2l6ZTogMTlweDsgbGV0dGVyLXNwYWNpbmc6IC4wM2VtOyB0ZXh0LWFsaWduOiByaWdodDsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgY29sb3I6IHZhcigtLW11dGVkKTsgfVxuICAgIC5wY3QuZG9uZSB7IGNvbG9yOiB2YXIoLS1ncmVlbik7IH1cbiAgICAuayBzbWFsbCB7IGRpc3BsYXk6IGJsb2NrOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgbGV0dGVyLXNwYWNpbmc6IC4wNmVtOyBtYXJnaW4tdG9wOiAycHg7IG1pbi1oZWlnaHQ6IDEycHg7IH0gfVxuICAuZ2F0ZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1MCU7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyBoZWlnaHQ6IDIwcHg7IHBhZGRpbmc6IDAgNnB4OyBib3JkZXItcmFkaXVzOiA1cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1oaSk7IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5cHg7IGxldHRlci1zcGFjaW5nOiAuMDhlbTsgY29sb3I6IHZhcigtLWRpbSk7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHdoaXRlLXNwYWNlOiBub3dyYXA7IHRyYW5zaXRpb246IGFsbCAuMzVzIHZhcigtLWVhc2UpO1xuICAgICYuaGl0IHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmVlbik7IGNvbG9yOiB2YXIoLS1ncmVlbik7IGJhY2tncm91bmQ6IHJnYmEoMzQsMTk3LDk0LC4xKTsgYm94LXNoYWRvdzogMCAwIDEycHggLTNweCB2YXIoLS1ncmVlbik7IH1cbiAgICAmLmhpdDo6YmVmb3JlIHsgY29udGVudDogXCLinJMgXCI7IH0gfVxuICAucnVubmVyIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwJTsgbGVmdDogMDsgd2lkdGg6IDEycHg7IGhlaWdodDogMTJweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS10ZXh0KTsgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tYWNjZW50KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IGJveC1zaGFkb3c6IDAgMCAwIDRweCB2YXIoLS1hY2NlbnQtc29mdCk7IHRyYW5zaXRpb246IGxlZnQgLjEycyBsaW5lYXI7IHotaW5kZXg6IDI7IH1cbiAgLmZsYWcgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAwOyB0b3A6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyBoZWlnaHQ6IDIwcHg7IHBhZGRpbmc6IDAgN3B4OyBib3JkZXItcmFkaXVzOiA1cHg7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDlweDsgbGV0dGVyLXNwYWNpbmc6IC4xZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItaGkpOyBjb2xvcjogdmFyKC0tZGltKTsgdHJhbnNpdGlvbjogYWxsIC4zNXMgdmFyKC0tZWFzZSk7XG4gICAgJi5ldmFsIHsgY29sb3I6IHZhcigtLWJnKTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1nb2xkKTsgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7IGJveC1zaGFkb3c6IDAgMCAxNHB4IC0ycHggdmFyKC0tZ29sZCk7IH1cbiAgICAmLm9uIHsgY29sb3I6IHZhcigtLWJnKTsgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4pOyBib3JkZXItY29sb3I6IHZhcigtLWdyZWVuKTsgYm94LXNoYWRvdzogMCAwIDE0cHggLTJweCB2YXIoLS1ncmVlbik7IH0gfVxuXG4gIC8qIDMgwrcgbGl2ZSBtYXJrZXQgKi9cbiAgLnBtIHsgaGVpZ2h0OiAxMDAlOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgLnEgeyBmb250LXNpemU6IDEyLjVweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgICAuayB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4OyBtYXJnaW4tYm90dG9tOiA2cHg7IH1cbiAgICAgIC5rOjpiZWZvcmUgeyBjb250ZW50OiBcIlwiOyB3aWR0aDogNnB4OyBoZWlnaHQ6IDZweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbik7IGJveC1zaGFkb3c6IDAgMCA4cHggdmFyKC0tZ3JlZW4pOyB9IH1cbiAgICAuYmFyIHsgaGVpZ2h0OiAzNHB4OyBib3JkZXItcmFkaXVzOiA4cHg7IG92ZXJmbG93OiBoaWRkZW47IGRpc3BsYXk6IGZsZXg7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDE4cHg7IGxldHRlci1zcGFjaW5nOiAuMDRlbTtcbiAgICAgIHNwYW4geyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBwYWRkaW5nOiAwIDEwcHg7IHRyYW5zaXRpb246IHdpZHRoIDFzIHZhcigtLWVhc2UpOyB9IH1cbiAgICAueWVzIHsgYmFja2dyb3VuZDogcmdiYSgzNCwxOTcsOTQsLjIyKTsgY29sb3I6IHZhcigtLWdyZWVuKTsgd2lkdGg6IDY0JTsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYmcpOyB9XG4gICAgLm5vIHsgYmFja2dyb3VuZDogcmdiYSgyMzksNjgsNjgsLjIpOyBjb2xvcjogdmFyKC0tcmVkKTsgZmxleDogMTsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAgIC5yb3cgeyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBiIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTAuNXB4OyBmb250LXdlaWdodDogNTAwOyBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOyB0cmFuc2l0aW9uOiBjb2xvciAuM3M7IH1cbiAgICAgIGIudXAgeyBjb2xvcjogdmFyKC0tZ3JlZW4pOyB9IGIuZG4geyBjb2xvcjogdmFyKC0tcmVkKTsgfSB9XG4gICAgLmZsYXNoIHsgYW5pbWF0aW9uOiB3aHktZmxhc2ggLjVzOyB9IH1cblxuICAvKiA0IMK3IHRlcm1pbmFsIGV2ZW50IGxvZyAqL1xuICAudGVybSB7IGhlaWdodDogMTAwJTsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTBweDsgbGV0dGVyLXNwYWNpbmc6IC4wMmVtOyBsaW5lLWhlaWdodDogMS41O1xuICAgIC5oZWFkIHsgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBjb2xvcjogdmFyKC0tZGltKTsgZm9udC1zaXplOiA5cHg7IGxldHRlci1zcGFjaW5nOiAuMTRlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IHBhZGRpbmctYm90dG9tOiA2cHg7IG1hcmdpbi1ib3R0b206IDZweDtcbiAgICAgIGkgeyBmb250LXN0eWxlOiBub3JtYWw7IGNvbG9yOiB2YXIoLS1ncmVlbik7IH0gfVxuICAgIC5sb2cgeyBmbGV4OiAxOyBvdmVyZmxvdzogaGlkZGVuOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgLmxuIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0OHB4IDFmcjsgZ2FwOiA4cHg7IGNvbG9yOiB2YXIoLS1tdXRlZCk7IHdoaXRlLXNwYWNlOiBub3dyYXA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTsgdHJhbnNpdGlvbjogb3BhY2l0eSAuMjVzLCB0cmFuc2Zvcm0gLjI1cztcbiAgICAgICYuaW4geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAgIC50IHsgY29sb3I6IHZhcigtLWRpbSk7IH1cbiAgICAgICYuc3lzIHsgY29sb3I6IHZhcigtLWRpbSk7IH1cbiAgICAgICYuZW5nIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IH1cbiAgICAgICYucGFzcyB7IGNvbG9yOiB2YXIoLS1ncmVlbik7IGZvbnQtd2VpZ2h0OiA1MDA7IH1cbiAgICAgICYuZmFpbCB7IGNvbG9yOiB2YXIoLS1yZWQpOyBmb250LXdlaWdodDogNTAwOyB9XG4gICAgICAmLmJyZWFjaCB7IGNvbG9yOiB2YXIoLS1nb2xkKTsgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICAgICAgJi5jaGFpbiB7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfSB9XG4gICAgLmN1ciB7IGNvbG9yOiB2YXIoLS1hY2NlbnQpOyBhbmltYXRpb246IHdoeS1ibGluayAxcyBzdGVwcygxKSBpbmZpbml0ZTsgfSB9XG5cbiAgLnRyLXdoeS1mb290IHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAyNHB4OyBtYXJnaW4tdG9wOiAzNHB4OyBmbGV4LXdyYXA6IHdyYXA7XG4gICAgc21hbGwgeyBjb2xvcjogdmFyKC0tZGltKTsgZm9udC1zaXplOiAxMi41cHg7IH0gfVxuICAudHItYnRuLW91dGxpbmUgeyB3aWR0aDogYXV0bzsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTRweDsgbGV0dGVyLXNwYWNpbmc6IDA7IGNvbG9yOiB2YXIoLS10ZXh0KTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1oaSk7IGJvcmRlci1yYWRpdXM6IDEwcHg7IHBhZGRpbmc6IDEzcHggMjJweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjJzO1xuICAgICY6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudCk7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAmOmZvY3VzLXZpc2libGUgeyBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYWNjZW50KTsgb3V0bGluZS1vZmZzZXQ6IDNweDsgfSB9XG59XG5Aa2V5ZnJhbWVzIHdoeS1idW1wIHsgNDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOyB9IH1cbkBrZXlmcmFtZXMgd2h5LWZsYXNoIHsgMCUgeyBmaWx0ZXI6IGJyaWdodG5lc3MoMS42KTsgfSB9XG5Aa2V5ZnJhbWVzIHdoeS1ibGluayB7IDUwJSB7IG9wYWNpdHk6IDA7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTEwMHB4KSB7IC50ci13aHkgLnRyLXdoeS1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOyB9IH1cbkBtZWRpYSAobWF4LXdpZHRoOiA2MjBweCkgeyAudHItd2h5IC50ci13aHktZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9IC50ci13aHkgeyBwYWRkaW5nOiA3MnB4IDIwcHggOTZweDsgfSB9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgeyAudHItd2h5ICogeyB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7IGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLyogY29tcGFueSBwYWdlIHZhcmlhbnQ6IGNlbnRyZWQgaGVhZGluZyArIGxlZGUgKHRoZSBjYXJkcyBiZWxvdyBhcmUgdW5jaGFuZ2VkKSAqL1xuLnRyLXdoeS50ci13aHktY2VudGVyIHsgdGV4dC1hbGlnbjogY2VudGVyO1xuICBoMiB7IG1heC13aWR0aDogbm9uZTsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAubGVkZSB7IG1heC13aWR0aDogNzIwcHg7IG1hcmdpbi1sZWZ0OiBhdXRvOyBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgLnRyLXdoeS1ncmlkLCAudHItd2h5LWdyaWQgfiAqIHsgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4iLCIvKiDilZDilZDilZAgUGxheSDigJQgXCJUcmFkaW5nIHJhbmtzXCIgKF9QbGF5UmFua3MuY3NodG1sLCByYW5rcy5qcykg4pWQ4pWQ4pWQXG4gICBQb3J0ZWQgZnJvbSB0aGUgQ2xhdWRlIERlc2lnbiBhcnRib2FyZCBcIlRyYWRhbnRlIFRyYWRpbmcgUmFua3NcIi4gVmFsdWVzIGFyZSB0aGUgYXJ0Ym9hcmQncyBpbmxpbmUgc3R5bGVzLFxuICAgbW92ZWQgaW50byAubHItKiBjbGFzc2VzOyB0aGUgYXJ0Ym9hcmQncyBmaXhlZCBwYWdlIGJhY2tncm91bmRzIChnbG93IC8gZ3JpZCAvIGdyYWluKSBiZWNvbWUgc2VjdGlvbi1zY29wZWRcbiAgIGxheWVycyAoLmxyLXNlYyBvbiB0aGUgI3Byb2dyZXNzaW9uIHNlY3Rpb24sIHNoYXJlZCB3aXRoIHRoZSBhY2hpZXZlbWVudHMgY2Fyb3VzZWwgYmVsb3cgdGhlIHdpZGdldCkuICovXG4ubHItc2VjIHtcbiAgLyogdGhlIHB1YmxpYyBzaXRlJ3Mgb3duICh2aXNpYmxlKSBnbG93ICsgZ3JpZCB0b2tlbnMsIHBlciB0aGVtZSDigJQgdGhlIGFwcC1zaGVsbCAtLWFwcC1nbG93Ly0tYXBwLWdyaWQtbGluZVxuICAgICBhbHBoYXMgKC4xOC8uMDQpIHdlcmUgdG9vIGZhaW50IG9uIHRoZSBzZWN0aW9uIGdyb3VuZCAqL1xuICAtLWJnLWdsb3c6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDgwJSA3MCUgYXQgNTAlIC01JSwgdmFyKC0tZ2xvdzEpIDAlLCB0cmFuc3BhcmVudCA2MCUpLCByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA1MCUgNjAlIGF0IDkyJSA1NSUsIHZhcigtLWdsb3cyKSAwJSwgdHJhbnNwYXJlbnQgNjAlKSwgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgNDUlIDUwJSBhdCA2JSA4NSUsIHZhcigtLWdsb3cyKSAwJSwgdHJhbnNwYXJlbnQgNTUlKTtcbiAgLS1iZy1ncmlkOiBsaW5lYXItZ3JhZGllbnQodmFyKC0tZ3JpZC1jb2xvcikgMXB4LCB0cmFuc3BhcmVudCAxcHgpLCBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWdyaWQtY29sb3IpIDFweCwgdHJhbnNwYXJlbnQgMXB4KTtcbiAgLS1iZy1ncmlkLXNpemU6IDY0cHggNjRweDtcbiAgLS1iZy1ncmFpbjogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB2aWV3Qm94PScwIDAgMjAwIDIwMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ2ZpbHRlciBpZD0nbiclM0UlM0NmZVR1cmJ1bGVuY2UgdHlwZT0nZnJhY3RhbE5vaXNlJyBiYXNlRnJlcXVlbmN5PScwLjg1JyBudW1PY3RhdmVzPSc0JyBzdGl0Y2hUaWxlcz0nc3RpdGNoJy8lM0UlM0MvZmlsdGVyJTNFJTNDcmVjdCB3aWR0aD0nMTAwJTI1JyBoZWlnaHQ9JzEwMCUyNScgZmlsdGVyPSd1cmwoJTIzbiknLyUzRSUzQy9zdmclM0VcIik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5sci1iZy1nbG93ICB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IHotaW5kZXg6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1nbG93KTsgfVxuLmxyLWJnLWdyaWQgIHsgcG9zaXRpb246IGFic29sdXRlOyBpbnNldDogMDsgei1pbmRleDogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWJnLWdyaWQpOyBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLWJnLWdyaWQtc2l6ZSk7XG4gIG1hc2staW1hZ2U6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDkwJSA5MCUgYXQgY2VudGVyIHRvcCwgYmxhY2sgMCUsIHRyYW5zcGFyZW50IDEwMCUpOyAtd2Via2l0LW1hc2staW1hZ2U6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDkwJSA5MCUgYXQgY2VudGVyIHRvcCwgYmxhY2sgMCUsIHRyYW5zcGFyZW50IDEwMCUpOyB9XG4ubHItYmctZ3JhaW4geyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyB6LWluZGV4OiAwOyBwb2ludGVyLWV2ZW50czogbm9uZTsgb3BhY2l0eTogLjAyMjsgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tYmctZ3JhaW4pOyBiYWNrZ3JvdW5kLXNpemU6IDIwMHB4IDIwMHB4OyB9XG5cbi5sciB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMjhweDsgd2lkdGg6IDEwMCU7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xuICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfSB9XG5cbi5sci1oZWFkIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMnB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbi5sci1leWVicm93IHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgaGVpZ2h0OiAyNHB4OyBwYWRkaW5nOiAwIDE0cHg7IGJvcmRlci1yYWRpdXM6IDEwMHB4OyBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMTApOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hcHAtYm9yZGVyKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDNweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWFwcC1hY2NlbnQzKTtcbiAgaSB7IHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLWFwcC1hY2NlbnQpOyBib3gtc2hhZG93OiAwIDAgOHB4IHZhcigtLWFwcC1hY2NlbnQpOyB9IH1cbi5sci10aXRsZSB7IG1hcmdpbjogMDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtd2VpZ2h0OiA0MDA7IGZvbnQtc2l6ZTogY2xhbXAoMzZweCwgNC41dncsIDUycHgpOyBsZXR0ZXItc3BhY2luZzogMnB4OyBsaW5lLWhlaWdodDogMTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWFwcC10ZXh0KTtcbiAgZW0geyBmb250LXN0eWxlOiBub3JtYWw7IGJhY2tncm91bmQ6IHZhcigtLWdyYWQpOyAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsgYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7IH0gfVxuLmxyLXN1YiB7IG1hcmdpbjogMDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogdmFyKC0tYXBwLXRleHQyKTsgbWF4LXdpZHRoOiA2ODBweDsgbGluZS1oZWlnaHQ6IDEuNTU7IH1cblxuLmxyLWdyaWQgeyB3aWR0aDogMTAwJTsgbWF4LXdpZHRoOiAxMTgwcHg7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgNDBweCBtaW5tYXgoMCwgMWZyKTsgaGVpZ2h0OiA0MDBweDsgfVxuXG4vKiBsZWZ0IMK3IHJhbmsgbGlzdCAqL1xuLmxyLWxpc3QgeyBoZWlnaHQ6IDEwMCU7IG92ZXJmbG93LXk6IGF1dG87IHBhZGRpbmc6IDRweCA4cHggNHB4IDA7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIG1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50LCBibGFjayAyNHB4LCBibGFjayBjYWxjKDEwMCUgLSAyNHB4KSwgdHJhbnNwYXJlbnQpO1xuICAtd2Via2l0LW1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50LCBibGFjayAyNHB4LCBibGFjayBjYWxjKDEwMCUgLSAyNHB4KSwgdHJhbnNwYXJlbnQpO1xuICAmOjotd2Via2l0LXNjcm9sbGJhciB7IGRpc3BsYXk6IG5vbmU7IH0gfVxuLmxyLWl0ZW0geyBhbGw6IHVuc2V0OyBjdXJzb3I6IHBvaW50ZXI7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogNzZweCBtaW5tYXgoMCwgMWZyKTsgZ2FwOiAxNnB4OyBhbGlnbi1pdGVtczogY2VudGVyOyBwYWRkaW5nOiAxMHB4IDE0cHg7IGJvcmRlci1yYWRpdXM6IDEycHg7IGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMnMsIGJvcmRlci1jb2xvciAuMnM7XG4gICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMDYpOyBib3JkZXItY29sb3I6IHZhcigtLWFwcC1ib3JkZXIpOyB9XG4gICYub24geyBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMTApOyBib3JkZXItY29sb3I6IHZhcigtLWFwcC1ib3JkZXItaCk7IH1cbiAgJjpmb2N1cy12aXNpYmxlIHsgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWFwcC1hY2NlbnQpOyBvdXRsaW5lLW9mZnNldDogMnB4OyB9IH1cbi5sci1pdGVtLWNhcmQgeyB3aWR0aDogNzZweDsgZGlzcGxheTogYmxvY2s7IGJvcmRlci1yYWRpdXM6IDZweDsgYm94LXNoYWRvdzogMCA2cHggMTZweCByZ2JhKDAsMCwwLC40NSk7IH1cbi5sci1pdGVtLXR4dCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyBtaW4td2lkdGg6IDA7IH1cbi5sci1pdGVtLXJvdyB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgfVxuLmxyLWl0ZW0tbmFtZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDE4cHg7IGxldHRlci1zcGFjaW5nOiAxLjVweDsgbGluZS1oZWlnaHQ6IDE7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7IH1cbi5sci1pdGVtLWx2IHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOXB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYXBwLWFjY2VudDMpOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4ubHItaXRlbS1kZXNjIHsgZm9udC1zaXplOiAxMnB4OyBsaW5lLWhlaWdodDogMS40NTsgY29sb3I6IHZhcigtLWFwcC10ZXh0Mik7IGRpc3BsYXk6IC13ZWJraXQtYm94OyAtd2Via2l0LWxpbmUtY2xhbXA6IDI7IC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7IG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogY2VudGVyIMK3IHJhaWwgKi9cbi5sci1yYWlsIHsgcG9zaXRpb246IHJlbGF0aXZlOyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgcGFkZGluZzogMTJweCAwOyB9XG4ubHItdHJhY2sgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAzcHg7IGJvcmRlci1yYWRpdXM6IDJweDsgYmFja2dyb3VuZDogdmFyKC0tYXBwLWJvcmRlcik7IGN1cnNvcjogcG9pbnRlcjsgZmxleDogMTsgfVxuLmxyLXRodW1iIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAtMXB4OyB3aWR0aDogNXB4OyBib3JkZXItcmFkaXVzOiAzcHg7IGJhY2tncm91bmQ6IHZhcigtLWFwcC1ncmFkKTsgdHJhbnNpdGlvbjogdG9wIC4wOHMgbGluZWFyOyB0b3A6IDA7IGhlaWdodDogMTAwJTsgfVxuXG4vKiByaWdodCDCtyBkZXRhaWwgKGZsb2F0aW5nLCBubyBjYXJkKSAqL1xuLmxyLWRldGFpbCB7IGhlaWdodDogMTAwJTsgcGFkZGluZzogNHB4IDAgNHB4IDI0cHg7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTgwcHggbWlubWF4KDAsIDFmcik7IGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvOyBnYXA6IDEycHggMjJweDsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuLmxyLWNhcmRjb2wgeyBncmlkLXJvdzogMSAvIHNwYW4gMjsgcG9zaXRpb246IHJlbGF0aXZlOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4ubHItZ2xvdyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTAlOyByaWdodDogMTAlOyB0b3A6IDE2cHg7IGhlaWdodDogOTBweDsgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UsIHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC41NSksIHRyYW5zcGFyZW50IDcwJSk7IGZpbHRlcjogYmx1cigyMnB4KTsgYW5pbWF0aW9uOiBsci1nbG93IDRzIGVhc2UtaW4tb3V0IGluZmluaXRlOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuLmxyLWZsb2F0IHsgcG9zaXRpb246IHJlbGF0aXZlOyBhbmltYXRpb246IGxyLWZsb2F0IDZzIGVhc2UtaW4tb3V0IGluZmluaXRlOyB9XG4ubHItY2FyZCB7IHdpZHRoOiAxODBweDsgZGlzcGxheTogYmxvY2s7IGJvcmRlci1yYWRpdXM6IDEwcHg7IGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMCwwLDAsLjYpLCAwIDAgMzJweCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMjUpOyB9XG4ubHItcmVmbC13cmFwIHsgaGVpZ2h0OiA0OHB4OyBvdmVyZmxvdzogaGlkZGVuOyBtYXJnaW4tdG9wOiA1cHg7IH1cbi5sci1yZWZsIHsgd2lkdGg6IDE4MHB4OyBkaXNwbGF5OiBibG9jazsgYm9yZGVyLXJhZGl1czogMTBweDsgdHJhbnNmb3JtOiBzY2FsZVkoLTEpOyBvcGFjaXR5OiAuMjg7IHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsMCwwLC45KSAwJSwgdHJhbnNwYXJlbnQgNDUlKTsgLXdlYmtpdC1tYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsMCwwLC45KSAwJSwgdHJhbnNwYXJlbnQgNDUlKTsgfVxuXG4ubHItaW5mbyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNnB4OyB9XG4ubHItbmFtZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDMwcHg7IGxldHRlci1zcGFjaW5nOiAycHg7IGxpbmUtaGVpZ2h0OiAxOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYXBwLXRleHQpOyB9XG4ubHItbWV0YWwgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogM3B4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYXBwLWFjY2VudDMpOyB9XG4ubHItZGVzYyB7IG1hcmdpbjogNnB4IDAgMDsgZm9udC1zaXplOiAxMi41cHg7IGxpbmUtaGVpZ2h0OiAxLjU7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpOyB0ZXh0LXdyYXA6IHByZXR0eTsgZGlzcGxheTogLXdlYmtpdC1ib3g7IC13ZWJraXQtbGluZS1jbGFtcDogMjsgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ubHItcmVxcy13cmFwIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgbWluLWhlaWdodDogMDsgfVxuLmxyLXJlcXMtbGJsIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOXB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYXBwLXRleHQzKTsgcGFkZGluZy1ib3R0b206IDZweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWFwcC1ib3JkZXIpOyB9XG4ubHItcmVxcyB7IG92ZXJmbG93LXk6IGF1dG87IG1pbi1oZWlnaHQ6IDA7IHNjcm9sbGJhci13aWR0aDogbm9uZTsgJjo6LXdlYmtpdC1zY3JvbGxiYXIgeyBkaXNwbGF5OiBub25lOyB9IH1cbi5sci1yZXEgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsgcGFkZGluZzogNnB4IDA7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1hcHAtYm9yZGVyKTsgZm9udC1zaXplOiAxMS41cHg7IGxpbmUtaGVpZ2h0OiAxLjM7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7IH1cbi5sci1yZXEtZG90IHsgd2lkdGg6IDVweDsgaGVpZ2h0OiA1cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgZmxleC1zaHJpbms6IDA7IGJhY2tncm91bmQ6IHZhcigtLWFwcC1hY2NlbnQpOyB9XG4ubHItcmVxLXR4dCB7IGZsZXg6IDE7IH1cblxuLmxyLXN0YXRzIHsgZ3JpZC1jb2x1bW46IDEgLyAtMTsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpOyBnYXA6IDEwcHg7IH1cbi5sci1zdGF0IHsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYXBwLWJvcmRlcik7IGJvcmRlci1yYWRpdXM6IDEycHg7IHBhZGRpbmc6IDEwcHggMTJweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA0cHg7IGJhY2tncm91bmQ6IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4wNSk7IH1cbi5sci1zdGF0LWxibCB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDguNXB4OyBsZXR0ZXItc3BhY2luZzogMXB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYXBwLXRleHQzKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuLmxyLXN0YXQtdmFsIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtc2l6ZTogMjZweDsgbGluZS1oZWlnaHQ6IDE7IGxldHRlci1zcGFjaW5nOiAxcHg7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7IH1cbi5sci1zdGF0LWdyZWVuIHsgY29sb3I6IHZhcigtLWdyZWVuMiwgIzRhZGU4MCk7IH1cbi5sci1zdGF0LXVuaXQgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5cHg7IGxldHRlci1zcGFjaW5nOiAxcHg7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDMpOyB9XG5cbi8qIGVudHJhbmNlOiB0aGUgYXJ0Ym9hcmQgYWx0ZXJuYXRlcyB0d28gaWRlbnRpY2FsIGtleWZyYW1lcyB0byByZXN0YXJ0IHRoZSBhbmltYXRpb24gb24gZWFjaCBzZWxlY3Rpb24gKi9cbi5sci1hbmltIHsgYW5pbWF0aW9uOiBsci1mYWRlLXVwIC41cyB2YXIoLS1lYXNlLCBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSkgYm90aDsgfVxuLmxyLWFuaW0tMiB7IGFuaW1hdGlvbi1kZWxheTogLjA4czsgfVxuLmxyLWFuaW0tMyB7IGFuaW1hdGlvbi1kZWxheTogLjE2czsgfVxuLmxyLmFsdCAubHItYW5pbSB7IGFuaW1hdGlvbi1uYW1lOiBsci1mYWRlLXVwLWI7IH1cblxuQGtleWZyYW1lcyBsci1mbG9hdCB7IDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNnB4KTsgfSB9XG5Aa2V5ZnJhbWVzIGxyLWdsb3cgeyAwJSwgMTAwJSB7IG9wYWNpdHk6IC41NTsgfSA1MCUgeyBvcGFjaXR5OiAuOTsgfSB9XG5Aa2V5ZnJhbWVzIGxyLWZhZGUtdXAgeyBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI0cHgpOyB9IHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cbkBrZXlmcmFtZXMgbHItZmFkZS11cC1iIHsgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNHB4KTsgfSB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAubHItZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyBoZWlnaHQ6IGF1dG87IGdhcDogMjRweDsgfVxuICAubHItbGlzdCB7IGhlaWdodDogMzIwcHg7IH1cbiAgLmxyLXJhaWwgeyBkaXNwbGF5OiBub25lOyB9XG4gIC5sci1kZXRhaWwgeyBoZWlnaHQ6IGF1dG87IHBhZGRpbmctbGVmdDogMDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxNDBweCBtaW5tYXgoMCwgMWZyKTsgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG8gYXV0bzsgfVxuICAubHItY2FyZCwgLmxyLXJlZmwgeyB3aWR0aDogMTQwcHg7IH1cbiAgLmxyLXN0YXRzIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAubHItZGV0YWlsIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbiAgLmxyLWNhcmRjb2wgeyBncmlkLXJvdzogYXV0bzsgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsgLmxyICogeyBhbmltYXRpb24tZHVyYXRpb246IC4wMW1zICFpbXBvcnRhbnQ7IH0gfVxuIiwiLyog4pWQ4pWQ4pWQIFBsYXkg4oCUIFwiQWNoaWV2ZW1lbnRzICYgYmFkZ2VzXCIgY2Fyb3VzZWwgKF9QbGF5QWNoaWV2ZW1lbnRzLmNzaHRtbCwgYWNoaWV2ZW1lbnRzLmpzKSDilZDilZDilZBcbiAgIFBvcnRlZCB2ZXJiYXRpbSBmcm9tIHRoZSBtb2NrdXAgdHJhZGFudGUtYWNoaWV2ZW1lbnQtYmFkZ2VzLWExLmh0bWw7IGNsYXNzIG5hbWVzIHByZWZpeGVkIC5hYi0qLlxuICAgTW9ja3VwIHZhcnMg4oaSIGJ1bmRsZTogLS1iZyAocmFpbCBmYWRlcyksIC0tYWNjZW50Ly0tYWNjZW50My8tLWFjY2VudC1yZ2IsIC0tZ29sZCwgLS1hcHAtKiB0b2tlbnMuICovXG4uYWIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAxMDAlOyBjb2xvcjogdmFyKC0tYXBwLXRleHQpOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcbiAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH0gfVxuLmFiLWhlYWQgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgZ2FwOiAyNHB4OyBtYXJnaW4tYm90dG9tOiAyMnB4OyB9XG4uYWItZXllYnJvdyB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDEwcHg7IGZvbnQtd2VpZ2h0OiA1MDA7IGxldHRlci1zcGFjaW5nOiAzcHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDMpOyBtYXJnaW4tYm90dG9tOiA4cHg7IH1cbi5hYi10aXRsZSB7IG1hcmdpbjogMDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtd2VpZ2h0OiA0MDA7IGZvbnQtc2l6ZTogMzBweDsgbGluZS1oZWlnaHQ6IDE7IGxldHRlci1zcGFjaW5nOiAxLjVweDsgY29sb3I6IHZhcigtLWFwcC10ZXh0KTtcbiAgZW0geyBmb250LXN0eWxlOiBub3JtYWw7IGJhY2tncm91bmQ6IHZhcigtLWFwcC1ncmFkKTsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IGJhY2tncm91bmQtY2xpcDogdGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OyB9IH1cbi5hYi1zdWIgeyBtYXJnaW46IDEwcHggMCAwOyBmb250LXNpemU6IDE0cHg7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpOyBtYXgtd2lkdGg6IDY4MHB4OyBsaW5lLWhlaWdodDogMS41NTsgfVxuLmFiLWN0cmxzIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyBmbGV4OiBub25lO1xuICBidXR0b24geyB3aWR0aDogMzJweDsgaGVpZ2h0OiAzMnB4OyBib3JkZXItcmFkaXVzOiA4cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFwcC1ib3JkZXIpOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHZhcigtLWFwcC10ZXh0Mik7IGN1cnNvcjogcG9pbnRlcjsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IHBhZGRpbmc6IDA7IHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMTVzLCBjb2xvciAuMTVzO1xuICAgICY6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWFwcC1ib3JkZXItaCk7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7IH0gfVxuICBhIHsgbWFyZ2luLWxlZnQ6IDhweDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IDUwMDsgbGV0dGVyLXNwYWNpbmc6IDJweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWFjY2VudDMpOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgJjpob3ZlciB7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7IH0gfSB9XG5cbi5hYi1yYWlsIHsgcG9zaXRpb246IHJlbGF0aXZlO1xuICAmOjpiZWZvcmUsICY6OmFmdGVyIHsgY29udGVudDogJyc7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBib3R0b206IDA7IHdpZHRoOiA0OHB4OyB6LWluZGV4OiAyOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAmOjpiZWZvcmUgeyBsZWZ0OiAwOyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWFiLWZhZGUsIHZhcigtLWJnMikpLCB0cmFuc3BhcmVudCk7IH1cbiAgJjo6YWZ0ZXIgeyByaWdodDogMDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDI3MGRlZywgdmFyKC0tYWItZmFkZSwgdmFyKC0tYmcyKSksIHRyYW5zcGFyZW50KTsgfSB9XG4uYWItdHJhY2sgeyBvdmVyZmxvdy14OiBhdXRvOyBzY3JvbGxiYXItd2lkdGg6IG5vbmU7IHNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5OyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgcGFkZGluZzogNHB4IDAgOHB4O1xuICAmOjotd2Via2l0LXNjcm9sbGJhciB7IGRpc3BsYXk6IG5vbmU7IH0gfVxuLmFiLXJvdyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMTRweDsgd2lkdGg6IG1heC1jb250ZW50OyB9XG5cbi5hYi10aWxlIHsgcG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogaGlkZGVuOyBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7IGZsZXg6IG5vbmU7IHdpZHRoOiAxODRweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMnB4OyBwYWRkaW5nOiAyMnB4IDE0cHggMTZweDtcbiAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWFwcC1ib3JkZXItaCk7IGJvcmRlci1yYWRpdXM6IDEycHg7IGJhY2tncm91bmQ6IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4wMyk7IHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMnMsIGJhY2tncm91bmQgLjJzLCB0cmFuc2Zvcm0gLjJzO1xuICAmOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMDgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IH1cbiAgaW1nIHsgd2lkdGg6IDkycHg7IGhlaWdodDogYXV0bzsgZGlzcGxheTogYmxvY2s7IGZpbHRlcjogZHJvcC1zaGFkb3coMCA4cHggMjBweCByZ2JhKDAsMCwwLC40NSkpOyB9IH1cbi5hYi1yaWJib24geyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMThweDsgcmlnaHQ6IC0zOHB4OyB3aWR0aDogMTUwcHg7IHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgdGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5nOiA2cHggMDsgYmFja2dyb3VuZDogdmFyKC0tYXBwLWdyYWQpOyBjb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDJweDsgbGluZS1oZWlnaHQ6IDE7IGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsMCwwLC4zNSk7IH1cbi5hYi1pbmYgeyBmb250LXNpemU6IDE1cHg7IGxpbmUtaGVpZ2h0OiAxOyB2ZXJ0aWNhbC1hbGlnbjogLTJweDsgfVxuLmFiLW9uY2UgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogOHB4OyByaWdodDogOHB4OyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgcGFkZGluZzogM3B4IDZweDsgYm9yZGVyLXJhZGl1czogNHB4OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hcHAtYm9yZGVyKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOXB4OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogMS4ycHg7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDMpOyBsaW5lLWhlaWdodDogMTsgfVxuLmFiLW5hbWUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNTAwOyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYXBwLXRleHQyKTsgdGV4dC1hbGlnbjogY2VudGVyOyBsaW5lLWhlaWdodDogMS40OyB9XG4uYWItcmV3YXJkIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHBhZGRpbmc6IDRweCAxMHB4OyBib3JkZXItcmFkaXVzOiAxMDBweDsgYmFja2dyb3VuZDogcmdiYSgyNDUsMTk3LDI0LC4wOCk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjQ1LDE5NywyNCwuMjUpO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogMS41cHg7IGNvbG9yOiB2YXIoLS1nb2xkKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uYWItbGVnZW5kIHsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDE4cHg7IHBhZGRpbmctdG9wOiAxOHB4OyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYXBwLXRleHQzKTtcbiAgc3BhbiB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsgfVxuICBpIHsgd2lkdGg6IDhweDsgaGVpZ2h0OiA4cHg7IGJvcmRlci1yYWRpdXM6IDJweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5hYi1sZy1pbmYgeyBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtZ3JhZCk7IH1cbiAgLmFiLWxnLW9uY2UgeyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hcHAtYm9yZGVyKTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAuYWItaGVhZCB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG59XG4iLCIvKiDilZDilZDilZAgUGxheSDigJQgXCJSYW5raW5nXCIgYmFuZCArIFRQUyBzaW11bGF0b3IgKF9QbGF5VHBzLmNzaHRtbCwgdHBzLmpzKSDilZDilZDilZBcbiAgIFBvcnRlZCB2ZXJiYXRpbSBmcm9tIHRoZSBtb2NrdXAgdHBzLXNpbXVsYXRvci5odG1sOyBjbGFzc2VzIHByZWZpeGVkIC50cHMtKi4gTW9ja3VwIHRva2VucyDihpIgYnVuZGxlOlxuICAgLS1jYXJkIOKGkiAtLWNhcmQtYmcsIC0tY2FyZC0yIOKGkiAtLWJnNCwgLS1saW5lIOKGkiAtLWJvcmRlciwgLS1saW5lLXN0cm9uZyDihpIgLS1ib3JkZXItaCwgLS1tdXRlZCDihpIgLS10ZXh0MixcbiAgIC0tZmFpbnQg4oaSIC0tdGV4dDMsIC0tYWNjZW50LTIg4oaSIC0tYWNjZW50MiwgLS1hY2NlbnQtZGltIOKGkiByZ2JhKC0tYWNjZW50LXJnYiwuMTYpLiBUaGUgbW9ja3VwJ3MgcGVyLXRoZW1lXG4gICBiYW5kIGJhY2tncm91bmQgZm9sbG93cyB0aGUgc2l0ZSB0aGVtZXMgKGJsdWUgLyB2aW9sZXQgLyBibGFjayA9IG1vY2t1cCBcImRhcmtcIikuICovXG4udHBzLWJhbmQge1xuICAtLXRwcy1jYXJkOiB2YXIoLS1jYXJkLWJnKTsgLS10cHMtY2FyZC0yOiB2YXIoLS1iZzQpOyAtLXRwcy1saW5lOiB2YXIoLS1ib3JkZXIpOyAtLXRwcy1saW5lLXN0cm9uZzogdmFyKC0tYm9yZGVyLWgpO1xuICAtLXRwcy1tdXRlZDogdmFyKC0tdGV4dDIpOyAtLXRwcy1mYWludDogdmFyKC0tdGV4dDMpOyAtLXRwcy1hY2NlbnQtMjogdmFyKC0tYWNjZW50Mik7IC0tdHBzLWFjY2VudC1kaW06IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4xNik7IC0tdHBzLXI6IDE0cHg7XG4gIC0tYmFuZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgNjAlIDgwJSBhdCA5MiUgNTUlLCAjN0MzQUVEIDAlLCByZ2JhKDEyNCw1OCwyMzcsMCkgNjAlKSwgbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjMTYwQjJFIDAlLCAjNEMxRDk1IDEwMCUpO1xuICB3aWR0aDogMTAwJTsgYmFja2dyb3VuZDogdmFyKC0tYmFuZCk7IGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7XG4gIHBhZGRpbmc6IDU2cHggMjRweDsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsgcG9zaXRpb246IHJlbGF0aXZlOyBjb2xvcjogdmFyKC0tdGV4dCk7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xuICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxufVxuaHRtbFtkYXRhLXRoZW1lPVwiYmx1ZVwiXSAgLnRwcy1iYW5kIHsgLS1iYW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA2MCUgODAlIGF0IDkyJSA1NSUsICMyNDU3RTAgMCUsIHJnYmEoMzYsODcsMjI0LDApIDYwJSksIGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzBCMTQyOCAwJSwgIzBGMkE2QiAxMDAlKTsgfVxuaHRtbFtkYXRhLXRoZW1lPVwiYmxhY2tcIl0gLnRwcy1iYW5kIHsgLS1iYW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA1NSUgNzUlIGF0IDkyJSA1NSUsIHJnYmEoMjE3LDI2LDE3MywuNDUpIDAlLCByZ2JhKDIxNywyNiwxNzMsMCkgNjAlKSwgbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjMDcwNzBCIDAlLCAjMTYwODFBIDEwMCUpOyB9XG5cbi50cHMtcmFuayB7IHdpZHRoOiAxMDAlOyBtYXgtd2lkdGg6IDEyMDBweDsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxLjFmciAxZnI7IGdhcDogMjRweCA2NHB4OyBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4udHBzLWNvcHkgeyBwYWRkaW5nLXRvcDogOHB4O1xuICAudHBzLWV5ZWJyb3cgeyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IDE0cHg7IH1cbiAgaDIgeyBtYXJnaW46IDA7IGZvbnQ6IDQwMCBjbGFtcCg0NHB4LCA1dncsIDY0cHgpLy45NSB2YXIoLS1mb250LWRpc3BsYXkpOyBsZXR0ZXItc3BhY2luZzogLjAxZW07IGNvbG9yOiB2YXIoLS10ZXh0KTtcbiAgICBlbSB7IGZvbnQtc3R5bGU6IG5vcm1hbDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1hY2NlbnQpLCB2YXIoLS10cHMtYWNjZW50LTIpKTsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IGJhY2tncm91bmQtY2xpcDogdGV4dDsgY29sb3I6IHRyYW5zcGFyZW50OyB9IH1cbiAgcCB7IG1hcmdpbjogMThweCAwIDA7IGZvbnQ6IDQwMCAxNXB4LzEuNTUgdmFyKC0tZm9udC1ib2R5KTsgY29sb3I6IHJnYmEoMjQwLDI0MCwyNDQsLjc4KTsgbWF4LXdpZHRoOiA0NjBweDsgfSB9XG4udHBzLXJpZ2h0IHsgZGlzcGxheTogZ3JpZDsgZ2FwOiAxOHB4OyB9XG4udHBzLWNhbGxvdXQgeyBncmlkLWNvbHVtbjogMS8tMTsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gMWZyOyBnYXA6IDE2cHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHBhZGRpbmc6IDEycHggMThweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMTIpOyBib3JkZXItcmFkaXVzOiB2YXIoLS10cHMtcik7IGJhY2tncm91bmQ6IHJnYmEoOSwxMiwyMiwuNzgpOyBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgLnRwcy1pY28geyB3aWR0aDogMjhweDsgaGVpZ2h0OiAyOHB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGJvcmRlcjogMXB4IHNvbGlkICM2YjVhMWY7IGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7IGNvbG9yOiAjRjVDNTE4OyBmb250OiA1MDAgMTNweCB2YXIoLS1mb250LW1vbm8pOyB9XG4gIGgzIHsgbWFyZ2luOiAwOyBmb250OiA0MDAgMTZweC8xIHZhcigtLWZvbnQtZGlzcGxheSk7IGxldHRlci1zcGFjaW5nOiAuMDZlbTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgcGFkZGluZy1yaWdodDogMTZweDsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tdHBzLWxpbmUpOyBjb2xvcjogdmFyKC0tdGV4dCk7IH1cbiAgcCB7IG1hcmdpbjogMDsgZm9udC1zaXplOiAxM3B4OyBsaW5lLWhlaWdodDogMS40OyBtYXgtd2lkdGg6IG5vbmU7IHdoaXRlLXNwYWNlOiBub3dyYXA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyBjb2xvcjogdmFyKC0tdHBzLW11dGVkKTsgfSB9XG5cbi8qIC0tLS0gd2lkZ2V0IC0tLS0gKi9cbi50cHMgeyB3aWR0aDogMTAwJTsgbWF4LXdpZHRoOiA2MDBweDsgYmFja2dyb3VuZDogcmdiYSg5LDEyLDIyLC43OCk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjEyKTsgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXRwcy1yKTsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuLnRwcy1oZWFkIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBwYWRkaW5nOiAxNnB4IDIwcHggMDsgfVxuLnRwcy1leWVicm93IHsgZm9udDogNTAwIDEwcHgvMSB2YXIoLS1mb250LW1vbm8pOyBsZXR0ZXItc3BhY2luZzogLjE4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS10cHMtbXV0ZWQpOyB9XG4udHBzLW1vZGUgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA3cHg7IGZvbnQ6IDUwMCAxMHB4LzEgdmFyKC0tZm9udC1tb25vKTsgbGV0dGVyLXNwYWNpbmc6IC4xNGVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgcGFkZGluZzogNnB4IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRwcy1saW5lLXN0cm9uZyk7IGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBpIHsgd2lkdGg6IDZweDsgaGVpZ2h0OiA2cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTsgYm94LXNoYWRvdzogMCAwIDhweCB2YXIoLS1hY2NlbnQpOyB9IH1cblxuLnRwcy1ncmlkIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IDEycHggMTZweDsgcGFkZGluZzogMTRweCAyMHB4IDE4cHg7IH1cbi50cHMtZiB7XG4gIGxhYmVsIHsgZGlzcGxheTogYmxvY2s7IGZvbnQ6IDUwMCAxMHB4LzEgdmFyKC0tZm9udC1tb25vKTsgbGV0dGVyLXNwYWNpbmc6IC4xNmVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgbWFyZ2luLWJvdHRvbTogOHB4OyB9XG4gIC50cHMtaW4geyBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJjo6YmVmb3JlIHsgY29udGVudDogJyQnOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEzcHg7IHRvcDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IGNvbG9yOiB2YXIoLS10cHMtZmFpbnQpOyBmb250OiA1MDAgMTRweCB2YXIoLS1mb250LW1vbm8pOyB9IH1cbiAgaW5wdXQsIHNlbGVjdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDQwcHg7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogdmFyKC0tdGV4dCk7IGJvcmRlcjogMXB4IGRhc2hlZCByZ2JhKDI1NSwyNTUsMjU1LC4yMik7IGJvcmRlci1yYWRpdXM6IDhweDsgcGFkZGluZzogMCAxNHB4OyBmb250OiA1MDAgMTNweCB2YXIoLS1mb250LWJvZHkpOyBvdXRsaW5lOiBub25lOyBhcHBlYXJhbmNlOiBub25lOyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMTVzOyB9XG4gIGlucHV0IHsgcGFkZGluZy1sZWZ0OiAzMHB4OyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxM3B4OyB9XG4gIC8qIG5hdGl2ZSBsZXZlbCBzZWxlY3QgaXMga2VwdCBmb3IgdGhlIHZhbHVlIG9ubHk7IHRoZSAudHBzLWRkIGN1c3RvbSBkcm9wZG93biAocmFuayBjYXJkcykgaXMgd2hhdCBzaG93cyAqL1xuICAudHBzLW5hdGl2ZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7IG9wYWNpdHk6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIHNlbGVjdCB7IHBhZGRpbmctcmlnaHQ6IDM4cHg7IGNvbG9yLXNjaGVtZTogZGFyaztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEyJyBoZWlnaHQ9JzgnIHZpZXdCb3g9JzAgMCAxMiA4JyUzRSUzQ3BhdGggZD0nTTEgMWw1IDUgNS01JyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzhBOTRBOCcgc3Ryb2tlLXdpZHRoPScxLjYnLyUzRSUzQy9zdmclM0VcIik7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDE0cHggY2VudGVyO1xuICAgIG9wdGlvbiB7IGJhY2tncm91bmQ6IHZhcigtLXRwcy1jYXJkKTsgY29sb3I6IHZhcigtLXRleHQpOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTsgfSB9XG4gIGlucHV0OmZvY3VzLCBzZWxlY3Q6Zm9jdXMgeyBib3JkZXItc3R5bGU6IHNvbGlkOyBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudCk7IGJveC1zaGFkb3c6IDAgMCAwIDNweCB2YXIoLS10cHMtYWNjZW50LWRpbSk7IH1cbiAgaW5wdXQ6OnBsYWNlaG9sZGVyIHsgY29sb3I6IHZhcigtLXRwcy1mYWludCk7IH1cbiAgc21hbGwgeyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLXRvcDogNXB4OyBmb250OiA0MDAgMTFweCB2YXIoLS1mb250LWJvZHkpOyBjb2xvcjogdmFyKC0tdHBzLWZhaW50KTsgfSB9XG5cbi8qIC0tLS0gbGV2ZWwgZHJvcGRvd24gd2l0aCByYW5rIGNhcmRzIC0tLS0gKi9cbi50cHMtZGQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbi50cHMtZGQtYnRuIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogNDBweDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHZhcigtLXRleHQpOyBib3JkZXI6IDFweCBkYXNoZWQgcmdiYSgyNTUsMjU1LDI1NSwuMjIpOyBib3JkZXItcmFkaXVzOiA4cHg7IHBhZGRpbmc6IDAgMzhweCAwIDEwcHg7IGZvbnQ6IDUwMCAxM3B4IHZhcigtLWZvbnQtYm9keSk7IGN1cnNvcjogcG9pbnRlcjsgdGV4dC1hbGlnbjogbGVmdDsgb3V0bGluZTogbm9uZTsgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4xNXM7XG4gIGltZyB7IHdpZHRoOiAzNHB4OyBoZWlnaHQ6IDIycHg7IG9iamVjdC1maXQ6IGNvdmVyOyBib3JkZXItcmFkaXVzOiAzcHg7IGZsZXg6IG5vbmU7IGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDAsMCwwLC40KTsgfVxuICBzcGFuIHsgZmxleDogMTsgbWluLXdpZHRoOiAwOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgfVxuICAmOmZvY3VzLXZpc2libGUsIC50cHMtZGQub3BlbiAmIHsgYm9yZGVyLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBib3gtc2hhZG93OiAwIDAgMCAzcHggdmFyKC0tdHBzLWFjY2VudC1kaW0pOyB9IH1cbi50cHMtZGQtY2hldiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IDE0cHg7IHRvcDogNTAlOyB3aWR0aDogMTJweDsgaGVpZ2h0OiA4cHg7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgYmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMicgaGVpZ2h0PSc4JyB2aWV3Qm94PScwIDAgMTIgOCclM0UlM0NwYXRoIGQ9J00xIDFsNSA1IDUtNScgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjM4QTk0QTgnIHN0cm9rZS13aWR0aD0nMS42Jy8lM0UlM0Mvc3ZnJTNFXCIpIG5vLXJlcGVhdCBjZW50ZXI7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMTVzO1xuICAudHBzLWRkLm9wZW4gJiB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoMTgwZGVnKTsgfSB9XG4udHBzLWRkLWxpc3QgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHJpZ2h0OiAwOyB0b3A6IGNhbGMoMTAwJSArIDZweCk7IHotaW5kZXg6IDIwOyBtYXgtaGVpZ2h0OiAyNjRweDsgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGluZzogNnB4OyBiYWNrZ3JvdW5kOiB2YXIoLS10cHMtY2FyZCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRwcy1saW5lLXN0cm9uZyk7IGJvcmRlci1yYWRpdXM6IDEwcHg7IGJveC1zaGFkb3c6IDAgMTZweCA0MHB4IHJnYmEoMCwwLDAsLjUpO1xuICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9IH1cbi50cHMtZGQtb3B0IHsgd2lkdGg6IDEwMCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgcGFkZGluZzogNnB4IDhweDsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogMDsgYm9yZGVyLXJhZGl1czogNnB4OyBjb2xvcjogdmFyKC0tdGV4dCk7IGZvbnQ6IDUwMCAxM3B4IHZhcigtLWZvbnQtYm9keSk7IGN1cnNvcjogcG9pbnRlcjsgdGV4dC1hbGlnbjogbGVmdDsgb3V0bGluZTogbm9uZTtcbiAgaW1nIHsgd2lkdGg6IDQwcHg7IGhlaWdodDogMjZweDsgb2JqZWN0LWZpdDogY292ZXI7IGJvcmRlci1yYWRpdXM6IDNweDsgZmxleDogbm9uZTsgYm94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMCwwLDAsLjQpOyB9XG4gIHNwYW4geyBmbGV4OiAxOyBtaW4td2lkdGg6IDA7IHdoaXRlLXNwYWNlOiBub3dyYXA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9XG4gIGVtIHsgZm9udDogNTAwIDExcHggdmFyKC0tZm9udC1tb25vKTsgZm9udC1zdHlsZTogbm9ybWFsOyBjb2xvcjogdmFyKC0tdHBzLWZhaW50KTsgfVxuICAmOmhvdmVyLCAmOmZvY3VzLXZpc2libGUgeyBiYWNrZ3JvdW5kOiB2YXIoLS10cHMtYWNjZW50LWRpbSk7IH1cbiAgJi5vbiB7IGNvbG9yOiB2YXIoLS1hY2NlbnQpOyBlbSB7IGNvbG9yOiB2YXIoLS1hY2NlbnQpOyB9IH0gfVxuXG4vKiAtLS0tIHJlc3VsdCAtLS0tICovXG4udHBzLXJlc3VsdCB7IGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsLjAzKTsgcGFkZGluZzogMTRweCAyMHB4IDE2cHg7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87IGdhcDogMjBweDsgYWxpZ24taXRlbXM6IGVuZDsgfVxuLnRwcy1zdGVwcyB7IGRpc3BsYXk6IGdyaWQ7IGdhcDogMDsgZm9udDogNDAwIDEycHggdmFyKC0tZm9udC1ib2R5KTsgY29sb3I6IHZhcigtLXRwcy1tdXRlZCk7IH1cbi50cHMtc3RlcCB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjBweCAxZnIgYXV0bzsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyBwYWRkaW5nOiA1cHggMDsgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7XG4gICY6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IDA7IH1cbiAgLm9wIHsgZm9udDogNTAwIDEycHggdmFyKC0tZm9udC1tb25vKTsgY29sb3I6IHZhcigtLXRwcy1mYWludCk7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuayB7IGNvbG9yOiB2YXIoLS10cHMtbXV0ZWQpOyB9XG4gIC52IHsgZm9udDogNTAwIDEycHggdmFyKC0tZm9udC1tb25vKTsgY29sb3I6IHZhcigtLXRleHQpOyB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAmLnBvcyB7IGNvbG9yOiB2YXIoLS1ncmVlbik7IH0gJi5uZWcgeyBjb2xvcjogdmFyKC0tcmVkKTsgfVxuICAgIC5tIHsgY29sb3I6IHZhcigtLXRwcy1mYWludCk7IGZvbnQtc2l6ZTogMTFweDsgbWFyZ2luLWxlZnQ6IDZweDsgfSB9IH1cbi50cHMtdG90YWwgeyB0ZXh0LWFsaWduOiByaWdodDsgbWluLXdpZHRoOiAxNTBweDtcbiAgLnRwcy1leWVicm93IHsgbWFyZ2luLWJvdHRvbTogNnB4OyB9XG4gIC50cHMtbnVtIHsgZm9udDogNDAwIDQ4cHgvLjkgdmFyKC0tZm9udC1kaXNwbGF5KTsgY29sb3I6IHZhcigtLWFjY2VudCk7IGxldHRlci1zcGFjaW5nOiAuMDFlbTsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICAmLmZsb29yIHsgY29sb3I6IHZhcigtLXRwcy1tdXRlZCk7IH0gJi5uZWcgeyBjb2xvcjogdmFyKC0tcmVkKTsgfSB9XG4gIC50cHMtbm90ZSB7IG1hcmdpbi10b3A6IDZweDsgZm9udDogNDAwIDExcHggdmFyKC0tZm9udC1ib2R5KTsgY29sb3I6IHZhcigtLXRwcy1mYWludCk7IG1heC13aWR0aDogMTkwcHg7IG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGIgeyBjb2xvcjogdmFyKC0tcmVkKTsgZm9udC13ZWlnaHQ6IDUwMDsgfSB9IH1cblxuLnRwcy1mb290IHsgcGFkZGluZzogMTBweCAyMHB4IDEycHg7IGZvbnQ6IDQwMCAxMXB4LzEuNSB2YXIoLS1mb250LWJvZHkpOyBjb2xvcjogdmFyKC0tdHBzLWZhaW50KTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA4KTtcbiAgYSB7IGNvbG9yOiB2YXIoLS10cHMtbXV0ZWQpOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkYXNoZWQ7IHRleHQtdW5kZXJsaW5lLW9mZnNldDogM3B4OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC50cHMtcmFuayB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyBnYXA6IDMycHg7IH1cbiAgLnRwcy1jYWxsb3V0IHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjsgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG87XG4gICAgcCB7IGdyaWQtY29sdW1uOiAxLy0xOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XG4gICAgaDMgeyBib3JkZXI6IDA7IHdoaXRlLXNwYWNlOiBub3JtYWw7IH0gfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDUyMHB4KSB7XG4gIC50cHMtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XG4gIC50cHMtcmVzdWx0IHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbiAgLnRwcy10b3RhbCB7IHRleHQtYWxpZ246IGxlZnQ7XG4gICAgLnRwcy1ub3RlIHsgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAudHBzLW51bSB7IGZvbnQtc2l6ZTogNTJweDsgfSB9XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgeyAudHBzLWJhbmQgKiB7IHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsgfSB9XG4iLCIvKiDilZDilZDilZAgSG9tZSDigJQgc2ltdWxhdGVkIHRlcm1pbmFsIGNhcmQgKF9Ib21lVGVybWluYWwuY3NodG1sLCB0ZXJtaW5hbC5qcykg4pWQ4pWQ4pWQXG4gICBQb3J0ZWQgdmVyYmF0aW0gZnJvbSB0aGUgbW9ja3VwIHRyYWRhbnRlLXRlcm1pbmFsLWNhcmQuaHRtbC4gQ2FyZCBjbGFzc2VzIC5jYXJkLy5jYXJkLWNoYXJ0Ly5jYXJkLWZvb3QvLmtcbiAgIGJlY2FtZSAudGMvLnRjLWNoYXJ0Ly50Yy1mb290Ly50Yy1rICh0aGUgc2l0ZSBhbHJlYWR5IGhhcyBhIC5jYXJkKTsgdGhlIHdpZGdldCAoLnRyLXRyYWRlLXdpZGdldCwgLnR3LSopIGlzXG4gICB0aGUgbW9ja3VwJ3MsIHVudG91Y2hlZC4gTW9ja3VwIHRva2VucyDihpIgYnVuZGxlOiAtLXBhbmVsIOKGkiAtLWNhcmQtYmcsIC0tbGluZSDihpIgcmdiYSgtLWFjY2VudC1yZ2IsLjE2KS4gKi9cbi50YyB7IC0tdGMtbGluZTogcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjE2KTtcbiAgd2lkdGg6IDEwMCU7IGJhY2tncm91bmQ6IHZhcigtLWNhcmQtYmcpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10Yy1saW5lKTsgYm9yZGVyLXJhZGl1czogMTJweDsgcGFkZGluZzogMjJweDsgYm94LXNoYWRvdzogMCAzMHB4IDgwcHggcmdiYSgwLDAsMCwuNDUpOyBjb2xvcjogdmFyKC0tdGV4dCk7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xuICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICBoMyB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXdlaWdodDogNDAwOyBmb250LXNpemU6IDIycHg7IGxldHRlci1zcGFjaW5nOiAuMDJlbTsgbWFyZ2luOiA4cHggMCAxNnB4OyBjb2xvcjogdmFyKC0tdGV4dCk7IH0gfVxuLnRjLWsgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5LjVweDsgbGV0dGVyLXNwYWNpbmc6IC4yNGVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogIzZmN2E5OTsgfVxuLnRjLWNoYXJ0IHsgcG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IDM4MHB4OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10Yy1saW5lKTsgYm9yZGVyLXJhZGl1czogNnB4OyBiYWNrZ3JvdW5kOiAjMGIwYzFhOyBvdmVyZmxvdzogaGlkZGVuOyB9XG4udGMtZm9vdCB7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgbWFyZ2luLXRvcDogMTRweDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOS41cHg7IGxldHRlci1zcGFjaW5nOiAuMmVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogIzZmN2E5OTtcbiAgYiB7IGNvbG9yOiAjYzNjOGQ4OyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09IFRSQURBTlRFIFRSQURFIFdJREdFVCA9PT09PT09PT09PT09PT09PT09PT0gKi9cbi50ci10cmFkZS13aWRnZXQge1xuICBjdXJzb3I6IGNyb3NzaGFpcjtcbiAgLS10dy11cDogIzJmZDNiNDsgLS10dy1kb3duOiAjZjA4YThhOyAtLXR3LW9yZGVyOiAjZmY2YjhmOyAtLXR3LXZpb2xldDogIzhCNUNGNjtcbiAgLS10dy1wYW5lbDogIzE0MTYzMzsgLS10dy10ZXh0OiAjRjBGMEY0OyAtLXR3LW11dGVkOiAjOGU5MWIwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB1c2VyLXNlbGVjdDogbm9uZTsgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2FudmFzIHsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0gfVxuLyogYmlkIC8gYXNrIG9uZS1jbGljayBidXR0b25zIOKAlCB0b3AtbGVmdCBvZiB0aGUgY2hhcnQgKi9cbi50dy1xdW90ZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTJweDsgdG9wOiAxMnB4OyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgei1pbmRleDogNjtcbiAgYnV0dG9uIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGdhcDogM3B4OyBtaW4td2lkdGg6IDEwOHB4OyBwYWRkaW5nOiA3cHggMTFweDsgYm9yZGVyLXJhZGl1czogNnB4OyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBiYWNrZ3JvdW5kOiByZ2JhKDExLDE0LDMwLC44NSk7IGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpOyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xMnMsIHRyYW5zZm9ybSAuMDhzOyBmb250LXdlaWdodDogNDAwO1xuICAgICY6YWN0aXZlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7IH0gfVxuICAuayB7IGZvbnQtc2l6ZTogOXB4OyBsZXR0ZXItc3BhY2luZzogLjE2ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IG9wYWNpdHk6IC44OyB9XG4gIC52IHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtc2l6ZTogMjJweDsgbGluZS1oZWlnaHQ6IDE7IGxldHRlci1zcGFjaW5nOiAuMDJlbTsgfVxuICAuYmlkIHsgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNDAsMTM4LDEzOCwuNTUpOyBjb2xvcjogdmFyKC0tdHctZG93bik7ICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI0MCwxMzgsMTM4LC4xNCk7IH0gfVxuICAuYXNrIHsgYm9yZGVyOiAxcHggc29saWQgcmdiYSg0NywyMTEsMTgwLC41NSk7IGNvbG9yOiB2YXIoLS10dy11cCk7ICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDQ3LDIxMSwxODAsLjE0KTsgfSB9IH1cbi50dy1waWxsIHsgcG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogc3RyZXRjaDsgaGVpZ2h0OiAyOHB4OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10dy1vcmRlcik7IGJvcmRlci1yYWRpdXM6IDZweDsgYmFja2dyb3VuZDogdmFyKC0tdHctcGFuZWwpOyBib3gtc2hhZG93OiAwIDZweCAxOHB4IHJnYmEoMCwwLDAsLjQ1KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogLjA2ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS10dy10ZXh0KTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgb3BhY2l0eTogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHRyYW5zaXRpb246IG9wYWNpdHkgLjE1cztcbiAgJi5zaG93IHsgcG9pbnRlci1ldmVudHM6IGF1dG87IG9wYWNpdHk6IDE7IH1cbiAgJi5nbGlkZSB7IHRyYW5zaXRpb246IG9wYWNpdHkgLjI1cywgdG9wIC41NXMgY3ViaWMtYmV6aWVyKC40LC4xLC4yLDEpOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICBzcGFuIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgcGFkZGluZzogMCAxMHB4OyBnYXA6IDZweDsgfVxuICAuYiwgLnMgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmI6aG92ZXIsIC5zOmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsMTA3LDE0MywuMjIpOyB9XG4gICYuYWJvdmUgLmI6aG92ZXIsICYuYWJvdmUgLnM6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDEzOSw5MiwyNDYsLjIyKTsgfVxuICAucSB7IGJhY2tncm91bmQ6ICMxYzFmNDI7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgyNTUsMTA3LDE0MywuMzUpOyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwxMDcsMTQzLC4zNSk7IGZvbnQtc2l6ZTogMTAuNXB4OyB9XG4gIC5ob3QgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwxMDcsMTQzLC4yMik7IH1cbiAgJi5hYm92ZSB7IGJvcmRlci1jb2xvcjogdmFyKC0tdHctdmlvbGV0KTsgLnEgeyBib3JkZXItY29sb3I6IHJnYmEoMTM5LDkyLDI0NiwuNCk7IH0gLmhvdCB7IGJhY2tncm91bmQ6IHJnYmEoMTM5LDkyLDI0NiwuMjIpOyB9IH1cbiAgc3ZnIHsgd2lkdGg6IDExcHg7IGhlaWdodDogMTFweDsgZmlsbDogbm9uZTsgc3Ryb2tlOiBjdXJyZW50Q29sb3I7IHN0cm9rZS13aWR0aDogMS43OyBzdHJva2UtbGluZWNhcDogcm91bmQ7IHN0cm9rZS1saW5lam9pbjogcm91bmQ7IH0gfVxuLnR3LXRhZ3MgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuLnR3LXRhZyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTRweDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBoZWlnaHQ6IDIycHg7IGJvcmRlci1yYWRpdXM6IDVweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdHctb3JkZXIpOyBiYWNrZ3JvdW5kOiB2YXIoLS10dy1wYW5lbCk7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDEwcHg7IGxldHRlci1zcGFjaW5nOiAuMDRlbTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgY29sb3I6IHZhcigtLXR3LXRleHQpOyBhbmltYXRpb246IHR3aW4gLjJzIGVhc2Utb3V0OyBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgJi5kcmFnIHsgY3Vyc29yOiBucy1yZXNpemU7IH1cbiAgLnggeyBwYWRkaW5nOiAwIDdweDsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7IGNvbG9yOiB2YXIoLS10dy1tdXRlZCk7IGN1cnNvcjogcG9pbnRlcjtcbiAgICAmOmhvdmVyIHsgY29sb3I6IHZhcigtLXR3LXRleHQpOyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7IH0gfVxuICBzcGFuIHsgcGFkZGluZzogMCA4cHg7IH1cbiAgLmwgeyBmb250LXdlaWdodDogNjAwOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5weCB7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDgpOyBjb2xvcjogdmFyKC0tdHctbXV0ZWQpOyB9XG4gIC5wbmwgeyBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA4KTsgZm9udC13ZWlnaHQ6IDYwMDsgbWluLXdpZHRoOiA2NHB4OyB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAmLnAgeyBjb2xvcjogdmFyKC0tdHctdXApOyB9ICYubiB7IGNvbG9yOiB2YXIoLS10dy1kb3duKTsgfSB9XG4gICYucG9zIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS10dy11cCk7ICYuc2hvcnQgeyBib3JkZXItY29sb3I6IHZhcigtLXR3LWRvd24pOyB9IH1cbiAgJi50cCB7IGJvcmRlci1jb2xvcjogdmFyKC0tdHctdXApOyB9ICYuc2wgeyBib3JkZXItY29sb3I6IHZhcigtLXR3LWRvd24pOyB9IH1cbkBrZXlmcmFtZXMgdHdpbiB7IGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNnB4LCAtNTAlKTsgfSB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfSB9XG4udHctaHVkIHsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogODZweDsgYm90dG9tOiAxNnB4OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IGdhcDogMnB4OyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC5sYmwgeyBmb250LXNpemU6IDEwcHg7IGxldHRlci1zcGFjaW5nOiAuMDhlbTsgY29sb3I6IHZhcigtLXR3LW11dGVkKTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAudmFsIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtc2l6ZTogMzRweDsgbGluZS1oZWlnaHQ6IDE7IGNvbG9yOiB2YXIoLS10dy10ZXh0KTsgJi5wIHsgY29sb3I6IHZhcigtLXR3LXVwKTsgfSAmLm4geyBjb2xvcjogdmFyKC0tdHctZG93bik7IH0gfVxuICAuc3ViIHsgZm9udC1zaXplOiAxMC41cHg7IGNvbG9yOiB2YXIoLS10dy1tdXRlZCk7IH0gfVxuLnR3LWhpbnQgeyBkaXNwbGF5OiBub25lOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogLjA0ZW07IGNvbG9yOiB2YXIoLS10dy1tdXRlZCk7IG9wYWNpdHk6IC43OyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuLnR3LWxvZyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTRweDsgYm90dG9tOiAxOHB4OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDRweDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTAuNXB4OyBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgZGl2IHsgY29sb3I6IHZhcigtLXR3LW11dGVkKTsgYW5pbWF0aW9uOiB0d2luIC4yNXMgZWFzZS1vdXQ7IH1cbiAgYiB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0gLnAgeyBjb2xvcjogdmFyKC0tdHctdXApOyB9IC5uIHsgY29sb3I6IHZhcigtLXR3LWRvd24pOyB9IH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7IC50dy1waWxsLCAudHctdGFnLCAudHctbG9nIGRpdiB7IGFuaW1hdGlvbjogbm9uZTsgdHJhbnNpdGlvbjogbm9uZTsgfSB9XG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHsgLnRjIHsgcGFkZGluZzogMTRweDsgfSAudGMtY2hhcnQgeyBoZWlnaHQ6IDMyMHB4OyB9IH1cbiIsIi8qIOKVkOKVkOKVkCBUcmFkZSDigJQgXCJUaGUgdGVybWluYWxcIiBmZWF0dXJlIHRhYnMgKF9QbGF0Zm9ybVRlcm1pbmFsLmNzaHRtbCwgdGVybWluYWwtZmVhdHVyZXMuanMsIHRlcm1pbmFsLXdpZGdldHMuanMpIOKVkOKVkOKVkFxuICAgUG9ydGVkIGZyb20gdGhlIENsYXVkZSBEZXNpZ24gYXJ0Ym9hcmQgXCJUcmFkYW50ZSBUZXJtaW5hbCBGZWF0dXJlc1wiLiBWYWx1ZXMgYXJlIHRoZSBhcnRib2FyZCdzIGlubGluZSBzdHlsZXNcbiAgIG1vdmVkIGludG8gLnRmLSogY2xhc3NlczsgdGhlIHRhYiBiYXIgaXMgdGhlIGRlc2lnbiBzeXN0ZW0ncyBUYWJzIGNvbXBvbmVudCBDU1MgKC50cmQtdGFicykgdmVyYmF0aW0uXG4gICBTZWN0aW9uIGJhY2tncm91bmRzIHJldXNlIHRoZSBQbGF5IHBhZ2UncyAubHItc2VjIGxheWVycy4gVGhlIHdpZGdldHMgaW5qZWN0IHRoZWlyIG93biBDU1MgYXQgcnVudGltZS4gKi9cbi50ZiB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTsgd2lkdGg6IDEwMCU7IG1heC13aWR0aDogMTI4MHB4OyBtYXJnaW46IDAgYXV0bzsgcGFkZGluZzogMCAyNHB4OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDMycHg7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xuICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfSB9XG4udGYtaGVhZCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHRleHQtYWxpZ246IGNlbnRlcjsgZ2FwOiAxMHB4OyB9XG4udGYtZXllYnJvdyB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDEwcHg7IGxldHRlci1zcGFjaW5nOiA0cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1hcHAtYWNjZW50Myk7IH1cbi50Zi10aXRsZSB7IG1hcmdpbjogMDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtd2VpZ2h0OiA0MDA7IGZvbnQtc2l6ZTogY2xhbXAoNDhweCwgNnZ3LCA3NnB4KTsgbGV0dGVyLXNwYWNpbmc6IDJweDsgbGluZS1oZWlnaHQ6IC45NTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWFwcC10ZXh0KTtcbiAgZW0geyBmb250LXN0eWxlOiBub3JtYWw7IGJhY2tncm91bmQ6IHZhcigtLWdyYWQpOyAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsgYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7IH0gfVxuLnRmLWxlZGUgeyBtYXJnaW46IDEwcHggMCAwOyBtYXgtd2lkdGg6IDYyY2g7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDEuNjU7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpOyB0ZXh0LXdyYXA6IHByZXR0eTsgfVxuXG4udGYtY2FyZCB7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFwcC1ib3JkZXIpOyBib3JkZXItcmFkaXVzOiAxNnB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtY2FyZC1iZyk7IGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTsgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7IGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLDAsMCwuNDUpOyBwYWRkaW5nOiAyNHB4IDMycHggMzJweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAyOHB4OyB9XG5cbi8qIERlc2lnbiBzeXN0ZW0gVGFicyAoY29tcG9uZW50cy9uYXZpZ2F0aW9uL1RhYnMuanN4KSAqL1xuLnRyZC10YWJzIHsgZGlzcGxheTogZmxleDsgZ2FwOiAwOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYXBwLWJvcmRlcik7IG92ZXJmbG93LXg6IGF1dG87IHNjcm9sbGJhci13aWR0aDogbm9uZTsgJjo6LXdlYmtpdC1zY3JvbGxiYXIgeyBkaXNwbGF5OiBub25lOyB9IH1cbi50cmQtdGFiIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogbm9uZTsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmFkaXVzOiAwO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTsgZm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogLjVweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcGFkZGluZzogOXB4IDE2cHg7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDMpOyBjdXJzb3I6IHBvaW50ZXI7IHdoaXRlLXNwYWNlOiBub3dyYXA7IHRyYW5zaXRpb246IGNvbG9yIC4xNXMsIGJvcmRlci1jb2xvciAuMTVzO1xuICAmOmhvdmVyIHsgY29sb3I6IHZhcigtLWFwcC10ZXh0Mik7IGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWFwcC1ib3JkZXItaCk7IH1cbiAgJi5hY3RpdmUgeyBjb2xvcjogdmFyKC0tYXBwLXRleHQpOyBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1hcHAtYWNjZW50KTsgfSB9XG5cbi50Zi1ncmlkIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMjAwcHgsIDRmcikgbWlubWF4KDAsIDhmcik7IGdhcDogMzJweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgbWluLWhlaWdodDogNDQwcHg7IH1cbi50Zi1jb3B5IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMnB4OyB9XG4udGYtY29weS1pdGVtIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMnB4OyBhbmltYXRpb246IHRmLWZhZGUtdXAgLjVzIGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpIGJvdGg7XG4gICZbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgcCB7IG1hcmdpbjogMDsgZm9udC1zaXplOiAxNXB4OyBsaW5lLWhlaWdodDogMS43OyBjb2xvcjogdmFyKC0tYXBwLXRleHQyKTsgbWF4LXdpZHRoOiA0NmNoOyB0ZXh0LXdyYXA6IHByZXR0eTsgfSB9XG4udGYtbGFiZWwgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogM3B4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYXBwLWFjY2VudDMpOyB9XG4udGYuYWx0IC50Zi1jb3B5LWl0ZW0sIC50Zi5hbHQgLnRmLWZpdCB7IGFuaW1hdGlvbi1uYW1lOiB0Zi1mYWRlLXVwLWI7IH1cblxuLyogU2NlbmU6IHdpZGdldCByZW5kZXJlZCBhdCBpdHMgbmF0aXZlIDcyMHB4IHdpZHRoIGFuZCBmaXQtc2NhbGVkIGludG8gdGhlIGNvbHVtbiAobmV2ZXIgcmVmbG93cykgKi9cbi50Zi1zY2VuZSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbWluLWhlaWdodDogNDQwcHg7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7IH1cbi50Zi1maXQgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgb3ZlcmZsb3c6IGhpZGRlbjsgYW5pbWF0aW9uOiB0Zi1mYWRlLXVwIC42cyBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSAuMDhzIGJvdGg7XG4gICZbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH0gfVxuLnRmLWZpdC1pbm5lciB7IHdpZHRoOiA3MjBweDsgZmxleC1zaHJpbms6IDA7IHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7IH1cbi50Zi1maXQtaW5uZXIgPiAqIHsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiA3MjBweDsgfVxuXG5Aa2V5ZnJhbWVzIHRmLWZhZGUtdXAgICB7IGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjRweCk7IH0gdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuQGtleWZyYW1lcyB0Zi1mYWRlLXVwLWIgeyBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI0cHgpOyB9IHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC50Zi1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IG1pbi1oZWlnaHQ6IDA7IH1cbiAgLnRmLXNjZW5lIHsgbWluLWhlaWdodDogMzYwcHg7IH1cbiAgLnRmLWNhcmQgeyBwYWRkaW5nOiAxNnB4IDE2cHggMjRweDsgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsgLnRmLWNvcHktaXRlbSwgLnRmLWZpdCB7IGFuaW1hdGlvbjogbm9uZTsgfSB9XG4iLCIvKiDilZDilZDilZAgUGxheSDigJQgXCJIYWxsIG9mIENoYW1waW9uc1wiOiBjb21wbGV0ZWQgdG91cm5hbWVudHMgbWFycXVlZSAoX1BsYXlDaGFtcGlvbnMuY3NodG1sKSDilZDilZDilZBcbiAgIFBvcnRlZCB2ZXJiYXRpbSBmcm9tIHRoZSBtb2NrdXAgXCJ0cmFkYW50ZS10b3VybmFtZW50cy1zZWN0aW9uLWE0XCIgKDIwMjYtMDktMTUpOyBjbGFzc2VzIHByZWZpeGVkIC5oYy0qLlxuICAgT25seSB0aGUgQ1NTIHZhcmlhYmxlcyB3ZXJlIHN3YXBwZWQ6IC0tYXBwLWdyYWQg4oaSIC0tZ3JhZCwgZm9udHMg4oaSIC0tZm9udC0qLCB0aGUgaW5mby1jYXJkIGdyb3VuZCDihpIgLS1iZyBhdCAuNzIuXG4gICBNYXJxdWVlID0gcHVyZSBDU1MgKHRyYWNrIGhvbGRzIHRoZSBjYXJkIGxpc3QgdHdpY2UsIHRyYW5zbGF0ZVgoLTUwJSkgbG9vcHMgaXQpOyBwYXVzZXMgb24gaG92ZXIuICovXG4uaGMgeyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IHBhZGRpbmc6IDcycHggMzJweCA2NHB4OyBjb2xvcjogdmFyKC0tYXBwLXRleHQpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMzIpIDAlLCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMTIpIDQ1JSwgdmFyKC0tYmcpIDEwMCUpO1xuICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfSB9XG4uaGMtZ2xvdyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAtMjAwcHg7IGxlZnQ6IC0xMjBweDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDY0MHB4OyBwb2ludGVyLWV2ZW50czogbm9uZTsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMjgpLCB0cmFuc3BhcmVudCA2NSUpOyB9XG4uaGMtd3JhcCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbWF4LXdpZHRoOiAxMjgwcHg7IG1hcmdpbjogMCBhdXRvOyB9XG4uaGMtaGVhZCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDsgdGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tYm90dG9tOiAzOHB4OyB9XG4uaGMtZXllYnJvdyB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7IHBhZGRpbmc6IDZweCAxNHB4OyBib3JkZXItcmFkaXVzOiAxMDBweDsgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuMjUpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hcHAtYm9yZGVyLWgpOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogM3B4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYWNjZW50Myk7XG4gIGkgeyB3aWR0aDogNnB4OyBoZWlnaHQ6IDZweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQzKTsgYm94LXNoYWRvdzogMCAwIDhweCB2YXIoLS1hY2NlbnQzKTsgfSB9XG4uaGMtdGl0bGUgeyBtYXJnaW46IDA7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXdlaWdodDogNDAwOyBmb250LXNpemU6IDUycHg7IGxpbmUtaGVpZ2h0OiAxOyBsZXR0ZXItc3BhY2luZzogMnB4OyBjb2xvcjogdmFyKC0tYXBwLXRleHQpO1xuICBlbSB7IGZvbnQtc3R5bGU6IG5vcm1hbDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmZiwgdmFyKC0tYWNjZW50MykpOyAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsgYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7IH0gfVxuLmhjLWxlZGUgeyBtYXJnaW46IDRweCAwIDA7IG1heC13aWR0aDogNjQwcHg7IGZvbnQtc2l6ZTogMTVweDsgbGluZS1oZWlnaHQ6IDEuNjsgY29sb3I6IHZhcigtLWFwcC10ZXh0Mik7IGZvbnQtd2VpZ2h0OiAzMDA7IHRleHQtd3JhcDogcHJldHR5OyB9XG4uaGMtZW1wdHkgeyBwYWRkaW5nOiAyOHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1hcHAtYm9yZGVyLWgpOyBib3JkZXItcmFkaXVzOiAxMnB4OyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMXB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYXBwLXRleHQzKTsgfVxuXG4uaGMtcmFpbCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1hbGlnbjogbGVmdDsgY29sb3I6IHZhcigtLWFwcC10ZXh0KTtcbiAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH0gfVxuLyogdGhlIHNhbWUgcmFpbCBjbG9uZWQgaW50byB0aGUgUGxheSBoZXJvLCBlZGdlIHRvIGVkZ2UgYmV0d2VlbiB0aGUgaGVhZGxpbmUgY29weSBhbmQgdGhlIGJ1dHRvbnMgKi9cbi5oYy1oZXJvLXJhaWwgeyB3aWR0aDogMTAwJTsgbWFyZ2luOiAyNHB4IDA7IH1cbi5oYy10cmFjayB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMTZweDsgd2lkdGg6IG1heC1jb250ZW50OyBwYWRkaW5nOiA2cHggMDsgYW5pbWF0aW9uOiBoYy1tYXJxdWVlIDUwcyBsaW5lYXIgaW5maW5pdGU7XG4gICY6aG92ZXIgeyBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkOyB9IH1cbkBrZXlmcmFtZXMgaGMtbWFycXVlZSB7IGZyb20geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gdG8geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH0gfVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsgLmhjLXRyYWNrIHsgYW5pbWF0aW9uOiBub25lOyB9IH1cblxuLmhjLWNhcmQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGZsZXg6IG5vbmU7IHdpZHRoOiAzMDBweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMnB4OyBwYWRkaW5nOiAxNHB4IDE0cHggMTJweDsgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWFwcC1ib3JkZXItaCk7IGJvcmRlci1yYWRpdXM6IDEycHg7IGJhY2tncm91bmQ6IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4wMyk7IHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMnMsIGJhY2tncm91bmQgLjJzLCB0cmFuc2Zvcm0gLjJzO1xuICAmOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMDgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IH0gfVxuLmhjLWNoIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBnYXA6IDhweDsgfVxuLmhjLWNodCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBtaW4td2lkdGg6IDA7XG4gIGltZyB7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG9iamVjdC1maXQ6IGNvbnRhaW47IGRpc3BsYXk6IGJsb2NrOyB9IH1cbi5oYy1jbmFtZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDE1cHg7IGxpbmUtaGVpZ2h0OiAxOyBsZXR0ZXItc3BhY2luZzogMS41cHg7IHdoaXRlLXNwYWNlOiBub3dyYXA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9XG4uaGMtZW5kZWQgeyBmbGV4OiBub25lOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA4cHg7IGxldHRlci1zcGFjaW5nOiAxLjVweDsgY29sb3I6IHZhcigtLWFwcC10ZXh0Myk7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbi5oYy13aW4geyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEycHg7IG1hcmdpbi10b3A6IDhweDsgcGFkZGluZzogMTBweDsgYm9yZGVyLXJhZGl1czogMTBweDsgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjA4KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYXBwLWJvcmRlcik7IH1cbi5oYy1jcmVzdCB7IGZsZXg6IG5vbmU7IHdpZHRoOiA0NHB4OyBoZWlnaHQ6IGF1dG87IGRpc3BsYXk6IGJsb2NrOyBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgNHB4IDEwcHggcmdiYSgwLDAsMCwuNDUpKTsgfVxuLmhjLXdhdiB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgZmxleDogbm9uZTsgd2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsgfVxuLmhjLXJpbmcgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAtMnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLWdyYWQpOyB9XG4uaGMtd2luaSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IGJvcmRlci1yYWRpdXM6IDUwJTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDE1cHg7IGxldHRlci1zcGFjaW5nOiAxcHg7IGNvbG9yOiAjZmZmOyBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1iZyk7IG92ZXJmbG93OiBoaWRkZW47XG4gIGltZyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6IGNvdmVyOyBib3JkZXItcmFkaXVzOiA1MCU7IH0gfVxuLmhjLXd0eHQgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDNweDsgbWluLXdpZHRoOiAwOyBmbGV4OiAxOyB9XG4uaGMtd2xibCB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDhweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDEuNXB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYWNjZW50Myk7IH1cbi5oYy13bmFtZSB7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDYwMDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IH1cbi5oYy13cHRzIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOXB4OyBsZXR0ZXItc3BhY2luZzogMXB4OyBjb2xvcjogdmFyKC0tYXBwLXRleHQzKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuLmhjLXdwcml6ZSB7IGZsZXg6IG5vbmU7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDE4cHg7IGxpbmUtaGVpZ2h0OiAxOyBsZXR0ZXItc3BhY2luZzogLjVweDsgY29sb3I6IHZhcigtLWdvbGQpOyB0ZXh0LWFsaWduOiByaWdodDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuLmhjLXBvZHMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDZweDsgfVxuLmhjLXBvZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyB9XG4uaGMtcGF2IHsgcG9zaXRpb246IHJlbGF0aXZlOyBmbGV4OiBub25lOyB3aWR0aDogMjJweDsgaGVpZ2h0OiAyMnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiAxMHB4OyBjb2xvcjogI2ZmZjsgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaW1nIHsgcG9zaXRpb246IGFic29sdXRlOyBpbnNldDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgb2JqZWN0LWZpdDogY292ZXI7IGJvcmRlci1yYWRpdXM6IDUwJTsgfSB9XG4uaGMtcGxibCB7IGZsZXg6IG5vbmU7IHdpZHRoOiAyNnB4OyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA4cHg7IGxldHRlci1zcGFjaW5nOiAxLjVweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWFwcC10ZXh0Myk7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbi5oYy1wbmFtZSB7IGZsZXg6IDE7IG1pbi13aWR0aDogMDsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogNTAwOyBjb2xvcjogdmFyKC0tYXBwLXRleHQyKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IH1cbi5oYy1wcHJpemUgeyBmbGV4OiBub25lOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5cHg7IGxldHRlci1zcGFjaW5nOiAxcHg7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpOyB9XG5cbi5oYy1pbmZvIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyNjBweCwgMWZyKSk7IGdhcDogMjBweDsgbWFyZ2luLXRvcDogNDBweDsgfVxuLmhjLWljIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNHB4OyBwYWRkaW5nOiAyOHB4IDI2cHg7IGJvcmRlci1yYWRpdXM6IDE0cHg7IGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1iZykgNzIlLCB0cmFuc3BhcmVudCk7IGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTsgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFwcC1ib3JkZXItaCk7XG4gIHAgeyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDEuNjU7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpOyBmb250LXdlaWdodDogMzAwOyB0ZXh0LXdyYXA6IHByZXR0eTsgfVxuICBhIHsgbWFyZ2luLXRvcDogYXV0bzsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IDUwMDsgbGV0dGVyLXNwYWNpbmc6IDJweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWFjY2VudDMpOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgJjpob3ZlciB7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7IH0gfSB9XG4uaGMtayB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDEwcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAzcHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1hY2NlbnQzKTsgfVxuLmhjLXQgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC1zaXplOiAyNnB4OyBsaW5lLWhlaWdodDogMTsgbGV0dGVyLXNwYWNpbmc6IDEuNXB4OyB9XG4iLCIvKiDilZDilZDilZAgUGxheSBoZXJvIOKAlCByYWNlIHdpZGdldCArIGxpdmUgVFBTIHRpY2tlciAoX1BsYXlSYWNlLmNzaHRtbCwgX1BsYXlUaWNrZXIuY3NodG1sLCByYWNlLmpzKSDilZDilZDilZBcbiAgIFBvcnRlZCBmcm9tIHRoZSBtb2NrdXBzIFwidHJhZGFudGUtcmFjZS13aWRnZXRcIiAoUmVhY3QgaW5saW5lIHN0eWxlcyDihpIgLnJjLSogY2xhc3NlcywgdmFsdWVzIHZlcmJhdGltKSBhbmRcbiAgIFwidHJhZGFudGUtdHBzLXRpY2tlclwiIChDU1MgdmVyYmF0aW0pLiBWYXJpYWJsZSBzd2FwcyBvbmx5OiAtLWFwcC1iZyDihpIgLS1iZywgLS1hcHAtY2FyZC1zb2xpZCDihpIgLS1iZzIsXG4gICAtLWFwcC1ncmFkLy0tZ3JhZCBhcyBvbiB0aGUgc2l0ZS4gVG9rZW5zIHRoZSBwdWJsaWMgYnVuZGxlIGxhY2tzIGFyZSBzZXQgb24gdGhlIHR3byByb290cy4gKi9cbi5yYy1tb3VudCwgLnJjLXRpY2tlciB7XG4gIC0tZWFzZTogY3ViaWMtYmV6aWVyKC40LCAwLCAuMiwgMSk7XG4gIC0tZ2xvdy1idG46IDAgNnB4IDI0cHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjQpO1xuICAtLWluazogIzBBMDgxNDtcbiAgLS1ncmVlbjI6ICM0YWRlODA7XG4gIC0tcmVkMjogI2Y4NzE3MTtcbiAgLS1hcHAtYWNjZW50LXNvZnQ6IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4xNSk7XG4gIC0tcmMtY2FyZDogdmFyKC0tYmcyKTtcbiAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbn1cbkBrZXlmcmFtZXMgcmMtcHVsc2UgeyAwJSwgMTAwJSB7IG9wYWNpdHk6IDE7IH0gNTAlIHsgb3BhY2l0eTogLjQ7IH0gfVxuXG4vKiBtb3VudCAqL1xuLnJjLW1vdW50IHsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogbWluKDg0JSwgNDQwcHgpOyBtYXJnaW46IDYwcHggYXV0byAxNjBweDsgdGV4dC1hbGlnbjogbGVmdDsgY29sb3I6IHZhcigtLWFwcC10ZXh0KTsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7IH1cblxuLyogd2luZG93cyAqL1xuLnJjLXdpbiB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IG92ZXJmbG93OiB2aXNpYmxlOyB9XG4ucmMtd2luLWhlYWQgeyBwYWRkaW5nOiAwIDAgOHB4OyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBnYXA6IDEycHg7IH1cbi5yYy13aW4tdGl0bGUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IDEuNXB4OyBsaW5lLWhlaWdodDogMTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgZm9udC1zaXplOiAxOHB4OyB9XG4ucmMtd2luLXN1YiB7IGZvbnQtc2l6ZTogMTEuNXB4OyBjb2xvcjogdmFyKC0tYXBwLXRleHQyKTsgbWFyZ2luLXRvcDogMnB4OyB9XG4ucmMtYmlnIHsgd2lkdGg6IDEwMCU7IHotaW5kZXg6IDE7IHBhZGRpbmc6IDE0cHg7IGJvcmRlci1yYWRpdXM6IDEycHg7IGJhY2tncm91bmQ6IHZhcigtLXJjLWNhcmQpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hcHAtYm9yZGVyKTsgYm94LXNoYWRvdzogMCAyMHB4IDUwcHggcmdiYSgwLDAsMCwuNik7IGFuaW1hdGlvbjogYTMtaW4tciAuN3MgdmFyKC0tZWFzZSkgMHMgYm90aDsgfVxuLnJjLXNtYWxsIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IGNhbGMoMTAwJSAtIDc0cHgpOyB3aWR0aDogbWluKDU2JSwgMjUwcHgpOyBtaW4td2lkdGg6IDIyMHB4OyB6LWluZGV4OiAwOyBwYWRkaW5nOiAxNHB4OyBib3JkZXItcmFkaXVzOiAxMnB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1yYy1jYXJkKTsgYm9yZGVyOiAxcHggZG90dGVkIHZhcigtLWFwcC1ib3JkZXItaCk7XG4gIC13ZWJraXQtYm94LXJlZmxlY3Q6IGJlbG93IDZweCBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCA1NSUsIHJnYmEoMCwwLDAsLjI4KSk7IGFuaW1hdGlvbjogYTMtaW4tbCAuN3MgdmFyKC0tZWFzZSkgLjVzIGJvdGg7IH1cbi5yYy1lbXB0eSB7IHBhZGRpbmc6IDE4cHggMCAxMHB4OyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYXBwLXRleHQzKTsgfVxuXG4vKiBoZWFkZXI6IHByaXplIHBvb2wgKyBkYXkgcGlsbCAqL1xuLnJjLXBvb2wgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyBnYXA6IDhweDsgbWFyZ2luLXRvcDogNHB4OyB9XG4ucmMtayB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMS41cHg7IGZvbnQtc2l6ZTogOHB4OyBjb2xvcjogdmFyKC0tYXBwLXRleHQzKTsgfVxuLnJjLXBvb2wtdiB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogMS41cHg7IGxpbmUtaGVpZ2h0OiAxOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBmb250LXNpemU6IDMwcHg7IGNvbG9yOiB2YXIoLS1ncmVlbjIpOyBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOyB0ZXh0LXNoYWRvdzogMCAwIDE4cHggcmdiYSgzNCwxOTcsOTQsLjM1KTsgfVxuLnJjLXBvb2wtdSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMS41cHg7IGZvbnQtc2l6ZTogOXB4OyBjb2xvcjogdmFyKC0tZ3JlZW4yKTsgfVxuLnJjLWRheSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMS41cHg7IGZvbnQtc2l6ZTogOHB4OyBjb2xvcjogdmFyKC0tYXBwLWFjY2VudDMpOyBkaXNwbGF5OiBmbGV4OyBnYXA6IDZweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgYW5pbWF0aW9uOiBhNC1kYXkgMy4ycyBsaW5lYXIgYm90aDsgfVxuLnJjLWRvdCB7IHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLWFwcC1hY2NlbnQpOyBib3gtc2hhZG93OiAwIDAgOHB4IHZhcigtLWFwcC1hY2NlbnQpOyBhbmltYXRpb246IHJjLXB1bHNlIDJzIGluZmluaXRlOyBmbGV4LXNocmluazogMDsgfVxuXG4vKiByb3dzICovXG4ucmMtcm93cyB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuLnJjLXJvdyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgcmlnaHQ6IDA7IGhlaWdodDogNDBweDsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyOHB4IDFmciBhdXRvOyBnYXA6IDEwcHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1hcHAtYm9yZGVyKTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IHRyYW5zaXRpb246IHRvcCAuOHMgdmFyKC0tZWFzZSk7XG4gICYubWUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtYWNjZW50LXNvZnQpOyB9IH1cbi5yYy1hdiB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDI4cHg7IGhlaWdodDogMjhweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1jKTsgY29sb3I6ICNmZmY7IGRpc3BsYXk6IGlubGluZS1ncmlkOyBwbGFjZS1pdGVtczogY2VudGVyOyBmbGV4LXNocmluazogMDsgYm9yZGVyOiAuNXB4IHNvbGlkIHJnYmEoMCwwLDAsLjI1KTsgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4yKTsgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiAwOyBsaW5lLWhlaWdodDogMTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgZm9udC1zaXplOiAxNHB4O1xuICBpbWcgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBvYmplY3QtZml0OiBjb3ZlcjsgfSB9XG4ucmMtY29sIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA0cHg7IG1pbi13aWR0aDogMDsgfVxuLnJjLW5hbWUgeyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiA0MDA7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4OyBtaW4td2lkdGg6IDA7XG4gIHNwYW4geyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAubWUgJiB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0gfVxuLnJjLWFycm93IHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOXB4OyBhbmltYXRpb246IGE0LWFycm93IDNzIGVhc2UgYm90aDsgZmxleC1zaHJpbms6IDA7XG4gICYudXAgeyBjb2xvcjogdmFyKC0tZ3JlZW4yKTsgfSAmLmRuIHsgY29sb3I6IHZhcigtLXJlZDIpOyB9IH1cbi5yYy1iYXIgeyBoZWlnaHQ6IDNweDsgYm9yZGVyLXJhZGl1czogMnB4OyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC4wNik7IG92ZXJmbG93OiBoaWRkZW47XG4gIGkgeyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1jKTsgb3BhY2l0eTogLjU1OyB0cmFuc2l0aW9uOiB3aWR0aCAuOXMgdmFyKC0tZWFzZSk7IH0gfVxuLnJjLXRwcyB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDExcHg7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpOyBtaW4td2lkdGg6IDY4cHg7IHRleHQtYWxpZ246IHJpZ2h0O1xuICAubWUgJiB7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7IH0gfVxuXG4vKiBzbWFsbCBjYXJkIGJvZHkgKi9cbi5yYy1tZSB7IHBhZGRpbmc6IDAgMCA2cHg7IGRpc3BsYXk6IGZsZXg7IGdhcDogMTRweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuLnJjLW1lLWF2IHsgcG9zaXRpb246IHJlbGF0aXZlOyBmbGV4LXNocmluazogMDsgfVxuLnJjLWZyYW1lIHsgd2lkdGg6IDcycHg7IGhlaWdodDogNzJweDsgZGlzcGxheTogYmxvY2s7IGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDE4cHggcmdiYSgzNCwxOTcsOTQsLjQ1KSk7IGFuaW1hdGlvbjogYTMtcG9wIC41cyB2YXIoLS1lYXNlKSAuOXMgYm90aDsgfVxuLnJjLWJhZGdlIHsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogLTZweDsgYm90dG9tOiAtNnB4OyBtaW4td2lkdGg6IDI2cHg7IGhlaWdodDogMjZweDsgcGFkZGluZzogMCA2cHg7IGJvcmRlci1yYWRpdXM6IDEwMHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtZ3JhZCk7IGNvbG9yOiB2YXIoLS1pbmspOyBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyOyBib3gtc2hhZG93OiB2YXIoLS1nbG93LWJ0bik7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogMS41cHg7IGxpbmUtaGVpZ2h0OiAxOyBmb250LXNpemU6IDE1cHg7IGFuaW1hdGlvbjogYTMtcG9wIC40cyB2YXIoLS1lYXNlKSBib3RoOyB9XG4ucmMtbWUtdHh0IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA0cHg7IGZsZXg6IDE7IG1pbi13aWR0aDogMDsgfVxuLnJjLW1lLXJhbmsgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogYmFzZWxpbmU7IGdhcDogOHB4OyB9XG4ucmMtbWUtbnVtIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiAxLjVweDsgbGluZS1oZWlnaHQ6IDE7IGZvbnQtc2l6ZTogMzRweDsgYmFja2dyb3VuZDogdmFyKC0tZ3JhZCk7IC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuLnJjLW1lLXRwcyB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMC41cHg7XG4gIC51cCB7IGNvbG9yOiB2YXIoLS1ncmVlbjIpOyBhbmltYXRpb246IGE0LWFycm93IDNzIGVhc2UgYm90aDsgfSAuZG4geyBjb2xvcjogdmFyKC0tcmVkMik7IGFuaW1hdGlvbjogYTQtYXJyb3cgM3MgZWFzZSBib3RoOyB9IH1cblxuLyog4pSA4pSAIGZ1bGwtd2lkdGggVFBTIHRpY2tlciDilIDilIAgKi9cbi5yYy10aWNrZXIgeyBtYXJnaW4tdG9wOiAzOHB4OyBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYXBwLWJvcmRlcik7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1hcHAtYm9yZGVyKTsgaGVpZ2h0OiAzNnB4OyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7IGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjI4KTsgdGV4dC1hbGlnbjogbGVmdDtcbiAgJjo6YmVmb3JlLCAmOjphZnRlciB7IGNvbnRlbnQ6ICcnOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgYm90dG9tOiAwOyB3aWR0aDogMTIwcHg7IHotaW5kZXg6IDI7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICY6OmJlZm9yZSB7IGxlZnQ6IDA7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tYmcpLCB0cmFuc3BhcmVudCk7IH1cbiAgJjo6YWZ0ZXIgeyByaWdodDogMDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KC05MGRlZywgdmFyKC0tYmcpLCB0cmFuc3BhcmVudCk7IH1cbiAgLnJjLWRvdCB7IGJhY2tncm91bmQ6IHZhcigtLWdyZWVuKTsgfSB9XG4ucmMtdGFnIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAyNHB4OyB0b3A6IDA7IGJvdHRvbTogMDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7IHotaW5kZXg6IDM7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDEwcHg7IGxldHRlci1zcGFjaW5nOiAuMThlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWFwcC10ZXh0Mik7IGJhY2tncm91bmQ6IHZhcigtLWJnKTsgcGFkZGluZy1yaWdodDogMTRweDsgfVxuLnJjLXRyYWNrIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGhlaWdodDogMTAwJTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6IHZhcigtLWFwcC10ZXh0Mik7IHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IGFuaW1hdGlvbjogcmMtc2Nyb2xsIDQwcyBsaW5lYXIgaW5maW5pdGU7XG4gICY6aG92ZXIgeyBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkOyB9IH1cbi5yYy1oYWxmIHsgZGlzcGxheTogZmxleDsgZ2FwOiAzNHB4OyBhbGlnbi1pdGVtczogY2VudGVyOyBwYWRkaW5nLXJpZ2h0OiAzNHB4OyB9XG5Aa2V5ZnJhbWVzIHJjLXNjcm9sbCB7IHRvIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9IH1cbi5yYy1ldiB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDdweDtcbiAgYiB7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7IGZvbnQtd2VpZ2h0OiA1MDA7IH1cbiAgLnJjLWV2LWRheSB7IGNvbG9yOiB2YXIoLS1hcHAtYWNjZW50KTsgfVxuICAucmMtZXYtYXYgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQ6IHZhcigtLWMpOyBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGltZyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6IGNvdmVyOyB9IH0gfVxuLnJjLXB0cyB7IGNvbG9yOiB2YXIoLS1ncmVlbjIpOyAmLm5lZyB7IGNvbG9yOiB2YXIoLS1yZWQyKTsgfSB9XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7IC5yYy10cmFjaywgLnJjLWRvdCwgLnJjLWRheSwgLnJjLWFycm93LCAucmMtYmFkZ2UsIC5yYy1mcmFtZSwgLnJjLWJpZywgLnJjLXNtYWxsIHsgYW5pbWF0aW9uOiBub25lOyB9IH1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkgeyAucmMtbW91bnQgeyB3aWR0aDogOTIlOyBtYXJnaW4tYm90dG9tOiAxNTBweDsgfSAucmMtc21hbGwgeyBtaW4td2lkdGg6IDIwMHB4OyB9IH1cbiIsIi8qIOKVkOKVkOKVkCBQbGF5IOKAlCBcIlBpY2sgeW91ciBnYW1lXCIgKHNlY3Rpb24gI2dhbWVzOyBfUGxheUdhbWVzLmNzaHRtbCwgZ2FtZXMuanMpIOKVkOKVkOKVkFxuICAgUG9ydGVkIGZyb20gdGhlIENsYXVkZSBEZXNpZ24gYnVuZGxlIFwiVHJhZGFudGUgUGljayBZb3VyIEdhbWVcIiAoMjAyNi0wOS0xNikuIFRoZSBidW5kbGUncyBpbmxpbmUgc3R5bGVzIGFyZSBtb3ZlZFxuICAgaW50byAuZ20tKiBjbGFzc2VzIHdpdGggdGhlIHNhbWUgdmFsdWVzOyB0aGUgdGFiIGJhciBpcyB0aGUgZGVzaWduIHN5c3RlbSdzIC50cmQtdGFicyAoaW4gX3Rlcm1pbmFsLWZlYXR1cmVzLnNjc3MpLlxuICAgU2NlbmVzIGluc2lkZSB0aGUgd2luZG93cyBhcmUgYnVpbHQgYnkgZ2FtZXMuanMgd2l0aCBpbmxpbmUgc3R5bGVzIGNvcGllZCBmcm9tIHRoZSBidW5kbGUncyBSZWFjdCBjb2RlLlxuICAgS2V5ZnJhbWVzIGFyZSB0aGUgYnVuZGxlJ3Mgdy0qIHNldCwgcHJlZml4ZWQgZ20tLiBTZWN0aW9uIGJhY2tncm91bmRzIHJldXNlIHRoZSBQbGF5IHBhZ2UncyAubHItc2VjIGxheWVycy4gKi9cbi5nbSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTsgd2lkdGg6IDEwMCU7IG1heC13aWR0aDogMTI4MHB4OyBtYXJnaW46IDAgYXV0bzsgcGFkZGluZzogMCAyNHB4OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDIwcHg7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xuICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfSB9XG4uZ20taGVhZCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLWJvdHRvbTogOHB4OyB9XG4uZ20tcnVsZSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTRweDtcbiAgc3BhbiB7IHdpZHRoOiAyNHB4OyBoZWlnaHQ6IDFweDsgYmFja2dyb3VuZDogdmFyKC0tYXBwLWJvcmRlci1oKTsgfVxuICBpbWcgeyB3aWR0aDogMjJweDsgaGVpZ2h0OiAyMnB4OyBvYmplY3QtZml0OiBjb250YWluOyB9IH1cbi5nbS10aXRsZSB7IG1hcmdpbjogNnB4IDAgMDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtd2VpZ2h0OiA0MDA7IGZvbnQtc2l6ZTogY2xhbXAoNDBweCwgNXZ3LCA2MHB4KTsgbGV0dGVyLXNwYWNpbmc6IDJweDsgbGluZS1oZWlnaHQ6IDE7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6IHZhcigtLWFwcC10ZXh0KTtcbiAgZW0geyBmb250LXN0eWxlOiBub3JtYWw7IGJhY2tncm91bmQ6IHZhcigtLWdyYWQpOyAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsgYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7IH0gfVxuLmdtLWxlZGUgeyBtYXJnaW46IDA7IG1heC13aWR0aDogNjBjaDsgdGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNpemU6IDE1cHg7IGxpbmUtaGVpZ2h0OiAxLjY1OyBjb2xvcjogdmFyKC0tYXBwLXRleHQyKTsgdGV4dC13cmFwOiBwcmV0dHk7IH1cbi5nbS10YWJzIHsgcGFkZGluZzogMCA0cHg7IH1cblxuLmdtLWNhcmQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFwcC1ib3JkZXIpOyBib3JkZXItcmFkaXVzOiAxNnB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtY2FyZC1iZyk7IGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTsgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7IGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLDAsMCwuNDUpO1xuICBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIG1pbm1heCgwLCAxZnIpOyBnYXA6IDI0cHg7IHBhZGRpbmc6IDQ0cHggNDBweCA0MHB4OyBtaW4taGVpZ2h0OiA0NjBweDsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuLmdtLWNvcHkgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDE0cHg7IG1pbi13aWR0aDogMDsgfVxuLmdtLWNvcHktdGl0bGUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC13ZWlnaHQ6IDQwMDsgZm9udC1zaXplOiAzOHB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyBsaW5lLWhlaWdodDogMS4wNTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgYW5pbWF0aW9uOiBnbS1mYWRlLXVwIC41cyB2YXIoLS1lYXNlLCBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSkgYm90aDsgfVxuLmdtLWNvcHktbGVkZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDExcHg7IGxldHRlci1zcGFjaW5nOiAycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1hcHAtYWNjZW50Myk7IGFuaW1hdGlvbjogZ20tZmFkZS11cCAuNXMgdmFyKC0tZWFzZSwgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkpIC4wNnMgYm90aDsgfVxuLmdtLWNvcHktYm9keSB7IG1hcmdpbjogOHB4IDAgMDsgZm9udC1zaXplOiAxNXB4OyBsaW5lLWhlaWdodDogMS43OyBjb2xvcjogdmFyKC0tYXBwLXRleHQyKTsgbWF4LXdpZHRoOiA1MmNoOyB0ZXh0LXdyYXA6IHByZXR0eTsgYW5pbWF0aW9uOiBnbS1mYWRlLXVwIC41cyB2YXIoLS1lYXNlLCBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSkgLjEycyBib3RoOyB9XG4uZ20tcG9pbnRzIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNHB4OyBtYXJnaW4tdG9wOiAxNHB4OyBhbmltYXRpb246IGdtLWZhZGUtdXAgLjVzIHZhcigtLWVhc2UsIGN1YmljLWJlemllciguNCwwLC4yLDEpKSAuMThzIGJvdGg7IH1cbi5nbS1wb2ludCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTRweDsgZm9udC1zaXplOiAxNXB4OyBjb2xvcjogdmFyKC0tYXBwLXRleHQyKTtcbiAgaSB7IHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE4cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1hcHAtYWNjZW50Myk7IGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7IGZsZXgtc2hyaW5rOiAwO1xuICAgICY6OmFmdGVyIHsgY29udGVudDogJyc7IHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLWFwcC1hY2NlbnQzKTsgfSB9IH1cbi5nbS5hbHQgLmdtLWNvcHktdGl0bGUsIC5nbS5hbHQgLmdtLWNvcHktbGVkZSwgLmdtLmFsdCAuZ20tY29weS1ib2R5LCAuZ20uYWx0IC5nbS1wb2ludHMgeyBhbmltYXRpb24tbmFtZTogZ20tZmFkZS11cC1iOyB9XG5cbi8qIFdpbmRvdyBzdGFjayAqL1xuLmdtLXN0YWNrIHsgcG9zaXRpb246IHJlbGF0aXZlOyBtaW4taGVpZ2h0OiAzODBweDsgcGVyc3BlY3RpdmU6IDE0MDBweDsgcGVyc3BlY3RpdmUtb3JpZ2luOiAzMCUgNDAlOyB9XG4uZ20td2luIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiAyNTBweDsgY3Vyc29yOiBwb2ludGVyOyB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkOyB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC43cyB2YXIoLS1lYXNlLCBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSksIGZpbHRlciAuN3MgdmFyKC0tZWFzZSwgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkpLCBvcGFjaXR5IC43cyB2YXIoLS1lYXNlLCBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSk7IH1cbi5nbS1mcmFtZSB7IGhlaWdodDogMzMwcHg7IGJvcmRlci1yYWRpdXM6IDhweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYXBwLWJvcmRlci1oKTsgYmFja2dyb3VuZDogdmFyKC0tYXBwLXN1cmZhY2UpOyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7IGJveC1zaGFkb3c6IDAgMzBweCA2MHB4IHJnYmEoMCwwLDAsLjYpOyB9XG4uZ20tc2NlbmUgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyBjb2xvcjogdmFyKC0tYXBwLXRleHQpOyB9XG4uZ20tc2hlZW4geyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyBwb2ludGVyLWV2ZW50czogbm9uZTsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExNWRlZywgcmdiYSgyNTUsMjU1LDI1NSwwKSAzMCUsIHJnYmEoMjU1LDI1NSwyNTUsLjEwKSA0NSUsIHJnYmEoMjU1LDI1NSwyNTUsLjAyKSA1MiUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgNjAlKTsgdHJhbnNpdGlvbjogb3BhY2l0eSAuN3MgdmFyKC0tZWFzZSwgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkpOyB9XG4uZ20tZWRnZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lOyBib3JkZXItcmFkaXVzOiA4cHg7IGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMTQpLCBpbnNldCAxcHggMCAwIHJnYmEoMjU1LDI1NSwyNTUsLjA1KTsgdHJhbnNpdGlvbjogb3BhY2l0eSAuN3MgdmFyKC0tZWFzZSwgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkpOyB9XG4uZ20tcmVmbGVjdCB7IGhlaWdodDogMTMwcHg7IG1hcmdpbi10b3A6IDhweDsgYm9yZGVyLXJhZGl1czogOHB4OyBvdmVyZmxvdzogaGlkZGVuOyB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7IHRyYW5zZm9ybS1vcmlnaW46IHRvcDsgb3BhY2l0eTogLjM1OyBmaWx0ZXI6IGJsdXIoMnB4KTtcbiAgbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLDAsMCwuODUpLCB0cmFuc3BhcmVudCA5MCUpOyAtd2Via2l0LW1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwwLDAsLjg1KSwgdHJhbnNwYXJlbnQgOTAlKTsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbi5nbS1yZWZsZWN0LWlubmVyIHsgaGVpZ2h0OiAzMzBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtc3VyZmFjZSk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjAwcHgpOyB9XG5cbkBrZXlmcmFtZXMgZ20tZmFkZS11cCAgIHsgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNHB4KTsgfSB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9XG5Aa2V5ZnJhbWVzIGdtLWZhZGUtdXAtYiB7IGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjRweCk7IH0gdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuQGtleWZyYW1lcyBnbS1wdWxzZSB7IDAlLCAxMDAlIHsgb3BhY2l0eTogMTsgfSA1MCUgeyBvcGFjaXR5OiAuNDsgfSB9XG5Aa2V5ZnJhbWVzIGdtLXNsaWRlIHsgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTRweCk7IH0gdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfVxuQGtleWZyYW1lcyBnbS1mbGFzaC1iaWQgeyAwJSwgMTAwJSB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9IDUwJSB7IGJhY2tncm91bmQ6IHJnYmEoMzQsMTk3LDk0LC4yMik7IH0gfVxuQGtleWZyYW1lcyBnbS1mbGFzaC1hc2sgeyAwJSwgMTAwJSB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9IDUwJSB7IGJhY2tncm91bmQ6IHJnYmEoMjM5LDY4LDY4LC4yMik7IH0gfVxuQGtleWZyYW1lcyBnbS1ncm93LXggeyBmcm9tIHsgdHJhbnNmb3JtOiBzY2FsZVgoMCk7IH0gdG8geyB0cmFuc2Zvcm06IHNjYWxlWCgxKTsgfSB9XG5Aa2V5ZnJhbWVzIGdtLWRyYXcgeyB0byB7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyB9IH1cbkBrZXlmcmFtZXMgZ20tYmxpbmsgeyAwJSwgMTAwJSB7IG9wYWNpdHk6IDE7IH0gNTAlIHsgb3BhY2l0eTogLjI1OyB9IH1cbkBrZXlmcmFtZXMgZ20tdGljayB7IDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsgfSB9XG5Aa2V5ZnJhbWVzIGdtLXNjYW4geyBmcm9tIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgfSB0byB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MDAlKTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAuZ20tY2FyZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyBwYWRkaW5nOiAyOHB4IDIwcHggMjRweDsgbWluLWhlaWdodDogMDsgfVxuICAuZ20tc3RhY2sgeyBtaW4taGVpZ2h0OiA0MjBweDsgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsgLmdtICosIC5nbSAqOjpiZWZvcmUsIC5nbSAqOjphZnRlciB7IGFuaW1hdGlvbi1kdXJhdGlvbjogLjAxbXMgIWltcG9ydGFudDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjAxbXMgIWltcG9ydGFudDsgfSB9XG4iLCIvKiDilZDilZDilZAgU2l0ZS13aWRlIGJldGEgLyB0ZXN0bmV0IGFubm91bmNlbWVudCBiYXIgKF9CZXRhQmFyLmNzaHRtbCkg4pWQ4pWQ4pWQXG4gICBGaXhlZCBhYm92ZSB0aGUgZml4ZWQgbmF2YmFyLiBXaGlsZSBpdCBpcyBzaG93aW5nLCBodG1sIGNhcnJpZXMgLnRyLWJldGEtb24gYW5kIC0tdHItYmV0YS1oIGhvbGRzIHRoZSBiYXIncyByZWFsXG4gICBoZWlnaHQgKHNldCBieSB0aGUgcGFydGlhbCdzIGlubGluZSBzY3JpcHQsIHNvIHdyYXBwZWQgdGV4dCBvbiBwaG9uZXMgaXMgYWNjb3VudGVkIGZvcik7IHRoZSBuYXZiYXIgYW5kIHRoZSBwYWdlXG4gICBhcmUgcHVzaGVkIGRvd24gYnkgdGhhdCBhbW91bnQuIERpc21pc3NpbmcgcmVtb3ZlcyB0aGUgY2xhc3MsIHNvIGV2ZXJ5dGhpbmcgc25hcHMgYmFjay5cbiAgIENvbG91cnMgYXJlIGZpeGVkIGFtYmVyL29yYW5nZSBvbiBwdXJwb3NlIChhIGRpc2NsYWltZXIgc2hvdWxkIGxvb2sgdGhlIHNhbWUsIGFuZCBzdGFuZCBvdXQsIG9uIGV2ZXJ5IHRoZW1lKS4gKi9cbjpyb290IHsgLS10ci1iZXRhLWg6IDBweDsgfVxuXG4udHItYmV0YSB7IHBvc2l0aW9uOiBmaXhlZDsgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgei1pbmRleDogMTA0MDsgLyogYWJvdmUgLmZpeGVkLXRvcCAoMTAzMCkgKi9cbiAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTJweDsgbWluLWhlaWdodDogNDZweDsgcGFkZGluZzogOXB4IDUycHggOXB4IDE4cHg7XG4gIC8qIHdhcm5pbmcgdHJlYXRtZW50OiB0aGUgYnJhbmQgYW1iZXIg4oaSIG9yYW5nZSwgZGFyayBpbmsgdGV4dCAoc2FtZSBvbiBldmVyeSB0aGVtZSwgYSBub3RpY2UgbXVzdCBub3QgYmxlbmQgaW4pICovXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI0Y1QzUxOCAwJSwgI0Y1QTYyMyA0NSUsICNGMjZCM0EgMTAwJSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIC4zNSk7IGJveC1zaGFkb3c6IDAgNHB4IDE4cHggcmdiYSgyNDIsIDEwNywgNTgsIC4zNSk7XG4gIGNvbG9yOiAjMUExMjA0OyBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyBsaW5lLWhlaWdodDogMS40NTsgdGV4dC1hbGlnbjogY2VudGVyO1xuICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9IH1cbi50ci1iZXRhLWluIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiA1cHggMTRweDsgbWF4LXdpZHRoOiAxMjQwcHg7IH1cbi50ci1iZXRhLXRhZyB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsgZmxleDogbm9uZTsgcGFkZGluZzogNHB4IDEycHg7IGJvcmRlci1yYWRpdXM6IDEwMHB4OyBiYWNrZ3JvdW5kOiAjMUExMjA0O1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMC41cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiAjRjVDNTE4OyB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBpIHsgd2lkdGg6IDdweDsgaGVpZ2h0OiA3cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgYmFja2dyb3VuZDogI0Y1QzUxODsgYm94LXNoYWRvdzogMCAwIDhweCAjRjVDNTE4OyBhbmltYXRpb246IHRyLWJldGEtcHVsc2UgMnMgaW5maW5pdGU7IH0gfVxuLnRyLWJldGEtdHh0IHsgY29sb3I6ICMxQTEyMDQ7IHRleHQtd3JhcDogcHJldHR5O1xuICBiIHsgY29sb3I6ICMwMDA7IGZvbnQtd2VpZ2h0OiA3MDA7IH0gfVxuLnRyLWJldGEteCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IDEwcHg7IHRvcDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDMwcHg7IGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7IHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDsgYm9yZGVyLXJhZGl1czogNnB4OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHJnYmEoMjYsIDE4LCA0LCAuNyk7IGZvbnQtc2l6ZTogMjJweDsgZm9udC13ZWlnaHQ6IDQwMDsgbGluZS1oZWlnaHQ6IDE7IGN1cnNvcjogcG9pbnRlcjsgdHJhbnNpdGlvbjogY29sb3IgLjE1cywgYmFja2dyb3VuZCAuMTVzO1xuICAmOmhvdmVyIHsgY29sb3I6ICMwMDA7IGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjE0KTsgfVxuICAmOmZvY3VzLXZpc2libGUgeyBvdXRsaW5lOiAycHggc29saWQgIzFBMTIwNDsgb3V0bGluZS1vZmZzZXQ6IDFweDsgfSB9XG5Aa2V5ZnJhbWVzIHRyLWJldGEtcHVsc2UgeyAwJSwgMTAwJSB7IG9wYWNpdHk6IDE7IH0gNTAlIHsgb3BhY2l0eTogLjQ7IH0gfVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsgLnRyLWJldGEtdGFnIGkgeyBhbmltYXRpb246IG5vbmU7IH0gfVxuXG4vKiBwdXNoIHRoZSBmaXhlZCBuYXZiYXIgYW5kIHRoZSBwYWdlIGRvd24gd2hpbGUgdGhlIGJhciBpcyBzaG93aW5nICovXG5odG1sLnRyLWJldGEtb24gLnRyLW5hdmJhci5maXhlZC10b3AgeyB0b3A6IHZhcigtLXRyLWJldGEtaCk7IH1cbmh0bWwudHItYmV0YS1vbiBib2R5IHsgcGFkZGluZy10b3A6IHZhcigtLXRyLWJldGEtaCk7IH1cbiIsIi8qIOKVkOKVkOKVkCBMZWdhbCBjb25kaXRpb24gbm90ZXMgb24gcHVibGljIHBhZ2VzIChfS3ljTm90aWNlLmNzaHRtbCkg4pWQ4pWQ4pWQXG4gICBBIHF1aWV0LCBmdWxsLXdpZHRoIHN0cmlwIHRoYXQgc2l0cyB1bmRlciBhIHBheW1lbnRzIGJsb2NrLiBUaGVtZSB0b2tlbnMgb25seSwgc28gaXQgZm9sbG93cyBibHVlIC8gdmlvbGV0IC8gYmxhY2suICovXG4udHIta3ljLW5vdGUgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgZ2FwOiAxNHB4OyBwYWRkaW5nOiAxNnB4IDIwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1oKTsgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1nb2xkKTsgYm9yZGVyLXJhZGl1czogMTJweDsgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1iZyk7XG4gIHAgeyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTNweDsgbGluZS1oZWlnaHQ6IDEuNjU7IGNvbG9yOiB2YXIoLS10ZXh0Mik7IHRleHQtd3JhcDogcHJldHR5OyB9XG4gIGIgeyBjb2xvcjogdmFyKC0tdGV4dCk7IGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgYSB7IGNvbG9yOiB2YXIoLS1hY2NlbnQpOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHg7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0gfVxuLnRyLWt5Yy1pYyB7IGZsZXg6IG5vbmU7IHdpZHRoOiAzMnB4OyBoZWlnaHQ6IDMycHg7IGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7IGJvcmRlci1yYWRpdXM6IDhweDsgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjEyKTsgY29sb3I6IHZhcigtLWdvbGQpO1xuICBzdmcgeyB3aWR0aDogMThweDsgaGVpZ2h0OiAxOHB4OyB9IH1cbi50ci1reWMtd3JhcCB7IG1hcmdpbi10b3A6IDMycHg7IH1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkgeyAudHIta3ljLW5vdGUgeyBwYWRkaW5nOiAxNHB4IDE2cHg7IGdhcDogMTJweDsgfSB9XG4iLCIvKiDilZDilZDilZAgQ29tcGFueSBwYWdlIChcIi9cIiwgRnJvbnQvQ29tcGFueS5jc2h0bWwpIOKVkOKVkOKVkFxuICAgVGhlIHBhZ2UgaXMgYnVpbHQgZnJvbSB0aGUgcHJvZHVjdCBzaXRlJ3Mgb3duIHNlY3Rpb25zLCBjYXJkcyBhbmQgd2lkZ2V0cy4gVGhlc2UgLmNvLSogaGVscGVycyBvbmx5IGxheSB0aGVtIG91dFxuICAgKHN0YWNrcywgcmVzcG9uc2l2ZSBncmlkcywgdGhlIHR3by1jb2x1bW4gc3BsaXQpIHNvIHRoZSBwYWdlIGNvbGxhcHNlcyBwcm9wZXJseSBvbiBwaG9uZXMuIE5vIG5ldyBjb2xvdXJzLiAqL1xuLmNvLXN0YWNrIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAzNnB4OyB9XG4uY28taGVhZCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMTRweDsgbWF4LXdpZHRoOiA3NjBweDsgfVxuLyogdGhlIHByb2R1Y3QgaGVybyB0aXRsZSBpcyBzaXplZCBmb3Igb25lIHNob3J0IGxpbmUgKFwiU0FWRUQgQlkgVEhFIEJVTEwuXCIpOyB0aGlzIGhlYWRsaW5lIGlzIGxvbmdlciwgc28gaXQgc3RhY2tzICovXG4uY28taGVyby10aXRsZSB7IHdoaXRlLXNwYWNlOiBub3JtYWw7IGZvbnQtc2l6ZTogY2xhbXAoNDRweCwgNy40dncsIDEwNHB4KTtcbiAgc3BhbiB7IGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLmNvLWdyaWQgeyBkaXNwbGF5OiBncmlkOyBnYXA6IDE2cHg7IH1cbi5jby1ncmlkLTMgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7IH1cbi5jby1ncmlkLTIgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7IH1cbi5jby1jYXAgeyBwYWRkaW5nOiAyNHB4OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDEwcHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6IGluaGVyaXQ7XG4gIC50ci1mZWF0dXJlLXRpdGxlIHsgbWFyZ2luOiAwOyB9XG4gIC50ci1mZWF0dXJlLWRlc2MgeyBmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAxLjY1OyBjb2xvcjogdmFyKC0tdGV4dDIpOyB9IH1cbmEuY28tY2FwIHsgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4ycywgdHJhbnNmb3JtIC4ycztcbiAgJjpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IGNvbG9yOiBpbmhlcml0OyB9IH1cbi5jby1iZXRhIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItaCk7IHBhZGRpbmc6IDMycHg7IH1cbi8qIGNhcGFiaWxpdHkgY2FyZCBpY29uOiBsaW5lIGljb24gaW4gYW4gYWNjZW50LXRpbnRlZCB0aWxlICovXG4uY28taWMgeyB3aWR0aDogNDJweDsgaGVpZ2h0OiA0MnB4OyBib3JkZXItcmFkaXVzOiAxMHB4OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItaCk7IGJhY2tncm91bmQ6IHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4xMCk7IGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7IGNvbG9yOiB2YXIoLS1hY2NlbnQzKTsgbWFyZ2luLWJvdHRvbTogNnB4O1xuICBzdmcgeyB3aWR0aDogMjJweDsgaGVpZ2h0OiAyMnB4OyB9IH1cblxuLmNvLXNwbGl0IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSAzNjBweDsgZ2FwOiA3MnB4OyBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4uY28tc3BsaXQtZXZlbiB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDEuMmZyKSBtaW5tYXgoMCwgMWZyKTsgZ2FwOiA1NnB4OyB9XG4uY28tc3BsaXQtd2lkZ2V0IHsgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4uY28tZmxvdy10IHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtc2l6ZTogMjhweDsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbGluZS1oZWlnaHQ6IDEuMDU7IH1cbi5jby1ncmFkIHsgYmFja2dyb3VuZDogdmFyKC0tZ3JhZCk7IC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKiBjb21wYW55IG5hdmJhcjogZWlnaHQgaXRlbXMgbXVzdCBmaXQgb24gb25lIGxpbmUgYXQgMTIwMC0xNDQwcHgg4oaSIHRpZ2h0ZXIgdHJhY2tpbmcsIG5vIHdyYXBwaW5nICovXG4udHItbmF2YmFyLWNvIC5uYXYtbGluayB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IGxldHRlci1zcGFjaW5nOiAxLjZweDsgZm9udC1zaXplOiAxMnB4OyBwYWRkaW5nOiAxMHB4IDlweDsgfVxuQG1lZGlhIChtaW4td2lkdGg6IDE0MDBweCkgeyAudHItbmF2YmFyLWNvIC5uYXYtbGluayB7IGxldHRlci1zcGFjaW5nOiAycHg7IHBhZGRpbmc6IDEwcHggMTFweDsgfSB9XG5cbi5jby1mb290IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyIDFmciAxZnI7IGdhcDogNDhweDsgbWFyZ2luLWJvdHRvbTogNDBweDsgfVxuXG4vKiBHYXRld2F5czogcHJvdmlkZXIgLyB2ZW51ZSBuYW1lcyBhcyBxdWlldCBjaGlwcyB1bmRlciBlYWNoIGNhcmQgKi9cbi5jby1jaGlwcyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiA4cHg7IG1hcmdpbi10b3A6IDZweDtcbiAgc3BhbiB7IHBhZGRpbmc6IDVweCAxMXB4OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItaCk7IGJvcmRlci1yYWRpdXM6IDEwMHB4OyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMC41cHg7IGxldHRlci1zcGFjaW5nOiAxLjJweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLXRleHQyKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfSB9XG5cbi8qIFwiQnVpbHQgd2l0aFwiIG1hcnF1ZWUuIFRoZSBsaXN0IGlzIHByaW50ZWQgdHdpY2UgaW4gdGhlIHRyYWNrIGFuZCB0aGUgdHJhY2sgc2xpZGVzIGxlZnQgYnkgaGFsZiBpdHMgd2lkdGgsIHNvIHRoZVxuICAgbG9vcCBpcyBzZWFtbGVzcy4gTG9nb3MgYXJlIHNpbmdsZS1jb2xvdXIgbWFza3MgKC0tbG9nbykgc28gZXZlcnkgbWFyayB0YWtlcyB0aGUgc2FtZSBtdXRlZCB0b25lIG9uIGV2ZXJ5IHNraW47XG4gICBuYW1lcyB3aXRob3V0IGEgbG9nbyBmaWxlIHlldCB1c2UgYSBsaW5lIGdseXBoIG9mIHRoZSBzYW1lIHNpemUuIFBhdXNlcyBvbiBob3Zlcjsgc3RhdGljIHdyYXAgd2l0aCByZWR1Y2VkIG1vdGlvbi4gKi9cbi5jby1idy1zZWMgeyBvdmVyZmxvdzogaGlkZGVuOyB9XG4vKiAyMDI2LTA5LTIyICh1c2VyKTogZWFjaCBsb2dvIGlzIGl0cyBvd24gc21hbGwgY2FyZDsgdGhlIG91dGVyIGZyYW1lIGlzIGdvbmUuIExvZ29zIHNtYWxsZXIgYW5kIG1vcmUgbXV0ZWQuICovXG4uY28tYnctY2FyZCB7IHBhZGRpbmc6IDZweCAwOyB9XG4uY28tYncgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCAjMDAwIDglLCAjMDAwIDkyJSwgdHJhbnNwYXJlbnQpOyAtd2Via2l0LW1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsICMwMDAgOCUsICMwMDAgOTIlLCB0cmFuc3BhcmVudCk7IH1cbi5jby1idy10cmFjayB7IGRpc3BsYXk6IGZsZXg7IHdpZHRoOiBtYXgtY29udGVudDsgYW5pbWF0aW9uOiBjby1idy1zbGlkZSA0OHMgbGluZWFyIGluZmluaXRlOyB9XG4uY28tYnc6aG92ZXIgLmNvLWJ3LXRyYWNrIHsgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDsgfVxuLmNvLWJ3LWl0ZW0geyBmbGV4OiBub25lOyB3aWR0aDogMTI4cHg7IG1hcmdpbjogMCA2cHg7IC8qIHNwYWNpbmcgb24gdGhlIGl0ZW0gc28gYm90aCBoYWx2ZXMgb2YgdGhlIGxvb3AgbWVhc3VyZSB0aGUgc2FtZSAqLyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiA4cHg7IHBhZGRpbmc6IDE0cHggMTBweDsgY29sb3I6IHZhcigtLXRleHQzKTsgb3BhY2l0eTogLjc1OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyBib3JkZXItcmFkaXVzOiAxMnB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1iZzIpOyB0cmFuc2l0aW9uOiBjb2xvciAuMnMsIG9wYWNpdHkgLjJzLCBib3JkZXItY29sb3IgLjJzO1xuICAmOmhvdmVyIHsgY29sb3I6IHZhcigtLXRleHQyKTsgb3BhY2l0eTogMTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItaCk7IH0gfVxuLmNvLWJ3LWxvZ28geyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDI2cHg7IGhlaWdodDogMjZweDsgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICBtYXNrOiB2YXIoLS1sb2dvKSBjZW50ZXIgLyBjb250YWluIG5vLXJlcGVhdDsgLXdlYmtpdC1tYXNrOiB2YXIoLS1sb2dvKSBjZW50ZXIgLyBjb250YWluIG5vLXJlcGVhdDtcbiAgJi53aWRlIHsgd2lkdGg6IDU4cHg7IH0gfVxuLmNvLWJ3LWdseXBoIHsgd2lkdGg6IDI2cHg7IGhlaWdodDogMjZweDsgfVxuLmNvLWJ3LW5hbWUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5cHg7IGxldHRlci1zcGFjaW5nOiAxLjVweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgdGV4dC1hbGlnbjogY2VudGVyOyBsaW5lLWhlaWdodDogMS40OyB9XG5Aa2V5ZnJhbWVzIGNvLWJ3LXNsaWRlIHsgZnJvbSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB0byB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfSB9XG5cbi8qIFBhcnQgMiBvcGVuZXI6IHRoZSBUcmFkYW50ZSBwcm9kdWN0IGJhbmQgKi9cbi5jby1wcm9kdWN0IHsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1oKTsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLmNvLWdyaWQtMyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTsgfVxuICAuY28tc3BsaXQsIC5jby1zcGxpdC1ldmVuIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IGdhcDogNDBweDsgfVxuICAuY28tc3BsaXQtd2lkZ2V0IHsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLmNvLWZvb3QgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogMzJweDsgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gIC5jby1ncmlkLTMsIC5jby1ncmlkLTIgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfVxuICAuY28tZm9vdCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICBhLmNvLWNhcCB7IHRyYW5zaXRpb246IG5vbmU7ICY6aG92ZXIgeyB0cmFuc2Zvcm06IG5vbmU7IH0gfVxuICAvKiBubyBzbGlkaW5nOiBzaG93IHRoZSBsaXN0IG9uY2UsIHdyYXBwZWQgYW5kIGNlbnRyZWQgKi9cbiAgLmNvLWJ3IHsgbWFzay1pbWFnZTogbm9uZTsgLXdlYmtpdC1tYXNrLWltYWdlOiBub25lOyB9XG4gIC5jby1idy10cmFjayB7IGFuaW1hdGlvbjogbm9uZTsgd2lkdGg6IGF1dG87IGZsZXgtd3JhcDogd3JhcDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IHJvdy1nYXA6IDEycHg7IH1cbiAgLmNvLWJ3LWl0ZW0geyBtYXJnaW46IDAgNnB4OyB9XG4gIC5jby1idy1pdGVtW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXSB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cbiIsIi8qIOKVkOKVkOKVkCBDb21wYW55IHBhZ2Ug4oCUIFwiQ29uZmlndXJlZCwgbm90IGNvZGVkXCIgKF9Db25maWd1cmVkTm90Q29kZWQuY3NodG1sLCBjb25zb2xlLXN0YWNrLmpzKSDilZDilZDilZBcbiAgIFBvcnRlZCBmcm9tIHRoZSBDbGF1ZGUgRGVzaWduIGFydGJvYXJkIFwiVHJhZGFudGUgQ29uZmlndXJlZCBOb3QgQ29kZWRcIi4gVmFsdWVzIGFyZSB0aGUgYXJ0Ym9hcmQncyBpbmxpbmUgc3R5bGVzIG1vdmVkXG4gICBpbnRvIC5jbmMtKiBjbGFzc2VzLiBDb2xvdXJzIGNvbWUgZnJvbSB0aGUgc2l0ZSdzIC0tYXBwLSogdG9rZW5zLCBzbyB0aGUgYmxvY2sgZm9sbG93cyB0aGUgdGhyZWUgc2tpbnMuIFRoZSB0YWIgYmFyIGlzXG4gICB0aGUgZGVzaWduIHN5c3RlbSdzIC50cmQtdGFicyAoX3Rlcm1pbmFsLWZlYXR1cmVzLnNjc3MpOyBzZWN0aW9uIGJhY2tncm91bmRzIHJldXNlIHRoZSBQbGF5IHBhZ2UncyAubHItc2VjIGxheWVycy4gKi9cbi8qIFNlY3Rpb24gYmFja2dyb3VuZCA9IHRoZSBhcnRib2FyZCdzIG93biAobXVjaCBzdHJvbmdlciB0aGFuIHRoZSBQbGF5IHBhZ2UncyAubHItc2VjIGRlZmF1bHRzKTogYSB2aW9sZXQgZ2xvdyB0b3AtbGVmdCxcbiAgIGEgbWFnZW50YSBnbG93IG9uIHRoZSByaWdodCwgYSB2aXNpYmxlIGdyaWQgdGhhdCBmYWRlcyBkb3duIHRoZSBzZWN0aW9uIGFuZCBhIGhlYXZpZXIgZ3JhaW4uIFRoZSB2aW9sZXQgcGFydHMgZm9sbG93XG4gICB0aGUgc2tpbidzIGFjY2VudDsgdGhlIG1hZ2VudGEgaXMgdGhlIGJ1bGwgbG9nbydzIGJyYW5kIGNvbG91ciwgYXMgaW4gdGhlIGFydGJvYXJkLiAqL1xuI2NvbnNvbGUge1xuICAubHItYmctZ2xvdyB7IGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMjAlIDAlLCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuNjIpLCB0cmFuc3BhcmVudCA1MCUpLCByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDkwJSAzMCUsIHJnYmEoMjE3LCAyNiwgMTczLCAuMzQpLCB0cmFuc3BhcmVudCA0NSUpLCByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA4MCUgNTAlIGF0IDUwJSAwJSwgcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjMwKSwgdHJhbnNwYXJlbnQgNzAlKTsgfVxuICAubHItYmctZ3JpZCB7IGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMTgpIDFweCwgdHJhbnNwYXJlbnQgMXB4KSwgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMTgpIDFweCwgdHJhbnNwYXJlbnQgMXB4KTsgYmFja2dyb3VuZC1zaXplOiA2NHB4IDY0cHg7XG4gICAgbWFzay1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyIHRvcCwgYmxhY2sgMCUsIHRyYW5zcGFyZW50IDc1JSk7IC13ZWJraXQtbWFzay1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyIHRvcCwgYmxhY2sgMCUsIHRyYW5zcGFyZW50IDc1JSk7IH1cbiAgLmxyLWJnLWdyYWluIHsgb3BhY2l0eTogLjA4OyB9XG59XG4uY25jIHsgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxOyB3aWR0aDogMTAwJTsgbWF4LXdpZHRoOiAxMjgwcHg7IG1hcmdpbjogMCBhdXRvOyBwYWRkaW5nOiAwIDI0cHg7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMjBweDsgY29sb3I6IHZhcigtLWFwcC10ZXh0KTsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7XG4gICosICo6OmJlZm9yZSwgKjo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9IH1cbi5jbmMtaGVhZCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLWJvdHRvbTogOHB4OyB9XG4uY25jLW1hcmsgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDE0cHg7XG4gIHNwYW4geyB3aWR0aDogMjRweDsgaGVpZ2h0OiAxcHg7IGJhY2tncm91bmQ6IHZhcigtLWFwcC1ib3JkZXItaCk7IH1cbiAgaW1nIHsgd2lkdGg6IDIycHg7IGhlaWdodDogMjJweDsgb2JqZWN0LWZpdDogY29udGFpbjsgfSB9XG4uY25jLWV5ZWJyb3cgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogNHB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tYXBwLWFjY2VudDMpOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbi5jbmMtdGl0bGUgeyBtYXJnaW46IDRweCAwIDA7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXdlaWdodDogNDAwOyBmb250LXNpemU6IGNsYW1wKDQwcHgsIDV2dywgNjBweCk7IGxldHRlci1zcGFjaW5nOiAycHg7IGxpbmUtaGVpZ2h0OiAxOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7XG4gIGVtIHsgZm9udC1zdHlsZTogbm9ybWFsOyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IGJhY2tncm91bmQtY2xpcDogdGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OyB9IH1cbi5jbmMtbGVkZSB7IG1hcmdpbjogMDsgbWF4LXdpZHRoOiA2NGNoOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogMTVweDsgbGluZS1oZWlnaHQ6IDEuNjU7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpOyB0ZXh0LXdyYXA6IHByZXR0eTsgfVxuLmNuYy10YWJzIHsgcGFkZGluZzogMCA0cHg7IH1cblxuLmNuYy1jYXJkIHsgcG9zaXRpb246IHJlbGF0aXZlOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hcHAtYm9yZGVyKTsgYm9yZGVyLXJhZGl1czogMTZweDsgYmFja2dyb3VuZDogdmFyKC0tYXBwLWNhcmQtYmcpOyBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7IC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpOyBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoMCwwLDAsLjQ1KTtcbiAgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoMCwgMWZyKTsgZ2FwOiAyNHB4OyBwYWRkaW5nOiA0NHB4IDQwcHggNDBweDsgbWluLWhlaWdodDogNDYwcHg7IG92ZXJmbG93OiBoaWRkZW47IH1cbi5jbmMtY29weS1pdGVtIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNHB4OyBtaW4td2lkdGg6IDA7XG4gICZbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH0gfVxuLyogYW4gaXRlbSB0aGF0IGdvZXMgZnJvbSBoaWRkZW4gdG8gc2hvd24gcmVzdGFydHMgdGhlc2UgYnkgaXRzZWxmLCBzbyBldmVyeSB0YWIgc3dpdGNoIHJlcGxheXMgdGhlIGZhZGUgKi9cbi5jbmMtaCB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXdlaWdodDogNDAwOyBmb250LXNpemU6IDM4cHg7IGxldHRlci1zcGFjaW5nOiAycHg7IGxpbmUtaGVpZ2h0OiAxLjA1OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBhbmltYXRpb246IGNuYy1mYWRlLXVwIC41cyBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSBib3RoOyB9XG4uY25jLXN1YiB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDExcHg7IGxldHRlci1zcGFjaW5nOiAycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1hcHAtYWNjZW50Myk7IGFuaW1hdGlvbjogY25jLWZhZGUtdXAgLjVzIGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpIC4wNnMgYm90aDsgfVxuLmNuYy1ib2R5IHsgbWFyZ2luOiA4cHggMCAwOyBmb250LXNpemU6IDE1cHg7IGxpbmUtaGVpZ2h0OiAxLjc7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpOyBtYXgtd2lkdGg6IDUyY2g7IHRleHQtd3JhcDogcHJldHR5OyBhbmltYXRpb246IGNuYy1mYWRlLXVwIC41cyBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSAuMTJzIGJvdGg7IH1cbi5jbmMtcG9pbnRzIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNHB4OyBtYXJnaW4tdG9wOiAxNHB4OyBhbmltYXRpb246IGNuYy1mYWRlLXVwIC41cyBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSAuMThzIGJvdGg7XG4gID4gZGl2IHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxNHB4OyBmb250LXNpemU6IDE1cHg7IGxpbmUtaGVpZ2h0OiBub3JtYWw7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDIpOyB9XG4gIC5iIHsgd2lkdGg6IDE4cHg7IGhlaWdodDogMThweDsgYm9yZGVyLXJhZGl1czogNTAlOyBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWFwcC1hY2NlbnQzKTsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsgZmxleC1zaHJpbms6IDA7XG4gICAgaSB7IHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLWFwcC1hY2NlbnQzKTsgfSB9IH1cblxuLyog4pSA4pSAIFdpbmRvdyBzdGFjayDilIDilIAgcG9zaXRpb24gLyBibHVyIC8gb3BhY2l0eSBwZXIgd2luZG93IGFyZSBzZXQgYnkgY29uc29sZS1zdGFjay5qcyAqL1xuLmNuYy1zdGFjayB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbWluLWhlaWdodDogMzgwcHg7IHBlcnNwZWN0aXZlOiAxNDAwcHg7IHBlcnNwZWN0aXZlLW9yaWdpbjogMzAlIDQwJTsgfVxuLmNuYy13aW4geyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDI1MHB4OyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7IHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjdzIGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpLCBmaWx0ZXIgLjdzIGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpLCBvcGFjaXR5IC43cyBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKTsgfVxuLmNuYy1mYWNlIHsgaGVpZ2h0OiAzMzBweDsgYm9yZGVyLXJhZGl1czogOHB4OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hcHAtYm9yZGVyLWgpOyBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtc3VyZmFjZSk7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsgYm94LXNoYWRvdzogMCAzMHB4IDYwcHggcmdiYSgwLDAsMCwuNik7IH1cbi5jbmMtc2hlZW4geyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyBwb2ludGVyLWV2ZW50czogbm9uZTsgb3BhY2l0eTogMDsgdHJhbnNpdGlvbjogb3BhY2l0eSAuN3MgY3ViaWMtYmV6aWVyKC40LCAwLCAuMiwgMSk7XG4gICYuYSB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMzAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xMCkgNDUlLCByZ2JhKDI1NSwyNTUsMjU1LC4wMikgNTIlLCByZ2JhKDI1NSwyNTUsMjU1LDApIDYwJSk7IH1cbiAgJi5iIHsgYm9yZGVyLXJhZGl1czogOHB4OyBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjE0KSwgaW5zZXQgMXB4IDAgMCByZ2JhKDI1NSwyNTUsMjU1LC4wNSk7IH0gfVxuLmNuYy13aW4uZnJvbnQgLmNuYy1zaGVlbiB7IG9wYWNpdHk6IDE7IH1cbi5jbmMtcmVmbCB7IGhlaWdodDogMTMwcHg7IG1hcmdpbi10b3A6IDhweDsgYm9yZGVyLXJhZGl1czogOHB4OyBvdmVyZmxvdzogaGlkZGVuOyB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7IHRyYW5zZm9ybS1vcmlnaW46IHRvcDsgb3BhY2l0eTogLjM1OyBmaWx0ZXI6IGJsdXIoMnB4KTsgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwwLDAsLjg1KSwgdHJhbnNwYXJlbnQgOTAlKTsgLXdlYmtpdC1tYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsMCwwLC44NSksIHRyYW5zcGFyZW50IDkwJSk7XG4gID4gZGl2IHsgaGVpZ2h0OiAzMzBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtc3VyZmFjZSk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjAwcHgpOyB9IH1cblxuLyog4pSA4pSAIFNjZW5lIHBhcnRzICh0aGUgY29udGVudCBvZiBhIHdpbmRvdykg4pSA4pSAICovXG4vKiBsaW5lLWhlaWdodDogbm9ybWFsID0gdGhlIGFydGJvYXJkJ3MgKGl0IHNldHMgbm9uZSk7IHRoZSBzaXRlJ3MgbG9vc2VyIGJvZHkgbGluZS1oZWlnaHQgbWFkZSBldmVyeSByb3cgMnB4IHRhbGxlciAqL1xuLmNuYy1zY2VuZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dCk7IGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbi5jbmMtbW9ubyB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMS41cHg7IH1cbi5jbmMtYmViYXMgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IDEuNXB4OyBsaW5lLWhlaWdodDogMTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuLmNuYy1oZCB7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgcGFkZGluZzogMTBweCAxMnB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYXBwLWJvcmRlcik7IGJhY2tncm91bmQ6IHZhcigtLWFwcC1zdXJmYWNlMik7XG4gID4gLnQgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDEuNXB4OyBmb250LXNpemU6IDlweDsgY29sb3I6IHZhcigtLWFwcC1hY2NlbnQzKTsgfSB9XG4uY25jLWRvdCB7IHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGZsZXgtc2hyaW5rOiAwOyBhbmltYXRpb246IGNuYy1wdWxzZSAycyBpbmZpbml0ZTsgfVxuLmNuYy1zY2FuIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyByaWdodDogMDsgdG9wOiAwOyBoZWlnaHQ6IDI1JTsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQsIHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4wOCksIHRyYW5zcGFyZW50KTsgYW5pbWF0aW9uOiBjbmMtc2NhbiA0cyBsaW5lYXIgaW5maW5pdGU7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4uY25jLXBpbGwgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDEuNXB4OyBmb250LXNpemU6IDcuNXB4OyBwYWRkaW5nOiAzcHggOHB4OyBib3JkZXItcmFkaXVzOiA1cHg7IGJvcmRlcjogMXB4IHNvbGlkOyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC4yKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgYW5pbWF0aW9uOiBjbmMtc2xpZGUgLjM1cyBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSBib3RoOyB9XG4uY25jLWNoaXAgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgZm9udC1zaXplOiA3cHg7IGxldHRlci1zcGFjaW5nOiAxcHg7IHBhZGRpbmc6IDJweCA1cHg7IGJvcmRlci1yYWRpdXM6IDRweDsgYm9yZGVyOiAxcHggc29saWQ7IH1cbi5jbmMtcm93IHsgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsgcGFkZGluZzogN3B4IDEycHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1hcHAtYm9yZGVyKTsgYW5pbWF0aW9uOiBjbmMtc2xpZGUgLjRzIGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpIGJvdGg7XG4gIC5sIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAycHg7IG1pbi13aWR0aDogMDtcbiAgICBiIHsgZm9udC13ZWlnaHQ6IDQwMDsgZm9udC1zaXplOiAxMXB4OyB9XG4gICAgc21hbGwgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgZm9udC1zaXplOiA3cHg7IGxldHRlci1zcGFjaW5nOiAxcHg7IGNvbG9yOiB2YXIoLS1hcHAtdGV4dDMpOyB9IH1cbiAgLnYgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMC41cHg7IHdoaXRlLXNwYWNlOiBub3dyYXA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyBtYXgtd2lkdGg6IDExMHB4OyB9IH1cbi5jbmMtdGcgeyB3aWR0aDogMjhweDsgaGVpZ2h0OiAxNXB4OyBib3JkZXItcmFkaXVzOiAxMDBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC4xMik7IHRyYW5zaXRpb246IGJhY2tncm91bmQgLjNzOyBmbGV4LXNocmluazogMDtcbiAgaSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAycHg7IGxlZnQ6IDJweDsgd2lkdGg6IDExcHg7IGhlaWdodDogMTFweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiAjZmZmOyB0cmFuc2l0aW9uOiBsZWZ0IC4zcyBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKTsgfVxuICAmLm9uIHsgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4pOyBpIHsgbGVmdDogMTVweDsgfSB9IH1cblxuQGtleWZyYW1lcyBjbmMtZmFkZS11cCB7IGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjRweCk7IH0gdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuQGtleWZyYW1lcyBjbmMtc2xpZGUgICB7IGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE0cHgpOyB9IHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cbkBrZXlmcmFtZXMgY25jLWdyb3cteCAgeyBmcm9tIHsgdHJhbnNmb3JtOiBzY2FsZVgoMCk7IH0gdG8geyB0cmFuc2Zvcm06IHNjYWxlWCgxKTsgfSB9XG5Aa2V5ZnJhbWVzIGNuYy1ibGluayAgIHsgMCUsIDEwMCUgeyBvcGFjaXR5OiAxOyB9IDUwJSB7IG9wYWNpdHk6IC4yNTsgfSB9XG5Aa2V5ZnJhbWVzIGNuYy1zY2FuICAgIHsgZnJvbSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7IH0gdG8geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDAwJSk7IH0gfVxuQGtleWZyYW1lcyBjbmMtcHVsc2UgICB7IDAlLCAxMDAlIHsgb3BhY2l0eTogMTsgfSA1MCUgeyBvcGFjaXR5OiAuNDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAuY25jLWNhcmQgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgZ2FwOiAzMnB4OyBwYWRkaW5nOiAyOHB4IDIwcHggMjRweDsgbWluLWhlaWdodDogMDsgfVxuICAuY25jLXN0YWNrIHsgbWluLWhlaWdodDogNDAwcHg7IH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAuY25jIHsgcGFkZGluZzogMCAxNnB4OyB9XG4gIC5jbmMtaCB7IGZvbnQtc2l6ZTogMzJweDsgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmNuYyAqLCAuY25jICo6OmJlZm9yZSwgLmNuYyAqOjphZnRlciB7IGFuaW1hdGlvbi1kdXJhdGlvbjogLjAxbXMgIWltcG9ydGFudDsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMSAhaW1wb3J0YW50OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMDFtcyAhaW1wb3J0YW50OyB9XG59XG4iLCIvKiDilZDilZDilZAgQ29tcGFueSBwYWdlIOKAlCBtYXJrZXQgdGFicyAoX01hcmtldFRhYnMuY3NodG1sKSDilZDilZDilZBcbiAgIEJ1aWx0IGZyb20gdGhlIHVzZXIncyBwaWN0dXJlIG9mIHRoZSBcIlByZWRpY3Rpb24tbmF0aXZlIGJ5IGRlc2lnblwiIHBhbmVsLiBUYWIgYmFyID0gdGhlIFRyYWRlIHBhZ2UncyAudGFiYmFyLy50YWJcbiAgIChfaG9tZS12Mi5zY3NzLCB3aXJlZCBieSBob21lLmpzKS4gTGVmdDogZXllYnJvdywgdGhyZWUgZmVhdHVyZSByb3dzIHdpdGggaWNvbiB0aWxlcywgdmVudWUgbG9nb3MuIFJpZ2h0OiBhXG4gICBmZWF0dXJlZC1tYXJrZXQgY2FyZCAodGFibGUgKyBzcGFya2xpbmUgKyB2b2x1bWUgbGluZSArIHBhZ2VyKS4gKi9cbi5tayB7IHBhZGRpbmc6IDhweCAzMnB4IDM2cHg7IH1cbi5tay1wYW5lbCB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWlubWF4KDAsIDFmcik7IGdhcDogNDBweDsgYWxpZ24taXRlbXM6IHN0YXJ0OyB9XG4ubWstZXllYnJvdyB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDExcHg7IGxldHRlci1zcGFjaW5nOiAzcHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1hY2NlbnQzKTsgbWFyZ2luLWJvdHRvbTogMjJweDsgfVxuLm1rLXJvd3MgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDIycHg7IH1cbi5tay1yb3cgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDE2cHg7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICA+IGRpdiB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyB9XG4gIGIgeyBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IDE3cHg7IGNvbG9yOiB2YXIoLS10ZXh0KTsgfVxuICBlbSB7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgY29sb3I6IHZhcigtLXRleHQyKTsgfVxuICBzcGFuIHsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS41NTsgY29sb3I6IHZhcigtLXRleHQyKTsgfSB9XG4ubWstaWMgeyB3aWR0aDogMzhweDsgaGVpZ2h0OiAzOHB4OyBib3JkZXItcmFkaXVzOiA5cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1oKTsgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjEyKTsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsgY29sb3I6IHZhcigtLWFjY2VudDMpOyBmbGV4LXNocmluazogMDtcbiAgc3ZnIHsgd2lkdGg6IDE4cHg7IGhlaWdodDogMThweDsgfSB9XG4ubWstdmVudWVzLWxibCB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDEwcHg7IGxldHRlci1zcGFjaW5nOiAzcHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IG1hcmdpbjogMzRweCAwIDE0cHg7IH1cbi5tay12ZW51ZXMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogMjhweDsgfVxuLm1rLXZlbnVlIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMnB4OyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMnB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dDIpOyB9XG4ubWstdmxvZ28geyB3aWR0aDogMzhweDsgaGVpZ2h0OiAzOHB4OyBib3JkZXItcmFkaXVzOiA4cHg7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsLjA4KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsgY29sb3I6IHZhcigtLXRleHQyKTsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogMDtcbiAgc3ZnIHsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgfVxuICAmLmthbHNoaSB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsLjg1KTsgY29sb3I6ICMxMTE7IGZvbnQtc2l6ZTogMTFweDsgfSB9XG5cbi8qIGZlYXR1cmVkLW1hcmtldCBjYXJkICovXG4ubWstY2FyZCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWgpOyBib3JkZXItcmFkaXVzOiAxMnB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1iZzIpOyBwYWRkaW5nOiAxOHB4IDIwcHggNDZweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMHB4OyB9XG4ubWstYy1leWVicm93IHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOXB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dDMpOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDtcbiAgaSB7IHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7IGJveC1zaGFkb3c6IDAgMCA4cHggdmFyKC0tYWNjZW50KTsgfSB9XG4ubWstYy10aXRsZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDI4cHg7IGxldHRlci1zcGFjaW5nOiAxcHg7IGxpbmUtaGVpZ2h0OiAxOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dCk7XG4gIGVtIHsgZm9udC1zdHlsZTogbm9ybWFsOyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkKTsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IGJhY2tncm91bmQtY2xpcDogdGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OyB9IH1cbi5tay1jLWJhZGdlIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA5cHg7IGxldHRlci1zcGFjaW5nOiAxLjVweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLXRleHQzKTsgcGFkZGluZzogNHB4IDEwcHggNHB4IDRweDsgYm9yZGVyLXJhZGl1czogMTAwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gIGIgeyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogI2Y2YTY0MDsgYmFja2dyb3VuZDogcmdiYSgyNDYsMTY2LDY0LC4xNCk7IGJvcmRlci1yYWRpdXM6IDEwMHB4OyBwYWRkaW5nOiAycHggOHB4OyB9IH1cbi5tay1jLWJvZHkgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxLjE1ZnIpIG1pbm1heCgwLCAxZnIpOyBnYXA6IDE4cHg7IG1hcmdpbi10b3A6IDZweDsgfVxuLm1rLXRibCB7IHdpZHRoOiAxMDAlOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBmb250LXNpemU6IDEycHg7XG4gIHRoIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOHB4OyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dDMpOyBmb250LXdlaWdodDogNDAwOyB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRkaW5nOiAwIDZweCA4cHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOyB9XG4gIHRkIHsgcGFkZGluZzogOXB4IDZweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGNvbG9yOiB2YXIoLS10ZXh0KTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICB0ZDpudGgtY2hpbGQoMikgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dDIpOyB9XG4gIHRkOmxhc3QtY2hpbGQsIHRoOmxhc3QtY2hpbGQgeyB0ZXh0LWFsaWduOiByaWdodDsgfVxuICB0cjpsYXN0LWNoaWxkIHRkIHsgYm9yZGVyLWJvdHRvbTogMDsgfSB9XG4ubWstZmxhZyB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWluLXdpZHRoOiAyMnB4OyBtYXJnaW4tcmlnaHQ6IDhweDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC1zaXplOiA4cHg7IGxldHRlci1zcGFjaW5nOiAxcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogMnB4IDNweDsgYm9yZGVyLXJhZGl1czogNHB4OyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7IGNvbG9yOiB2YXIoLS10ZXh0Mik7IH1cbi5tay1vZGRzIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtaW4td2lkdGg6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTBweDsgcGFkZGluZzogM3B4IDhweDsgYm9yZGVyLXJhZGl1czogNnB4OyBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuMTgpOyBjb2xvcjogdmFyKC0tYWNjZW50Myk7XG4gICYuaG90IHsgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4pOyBjb2xvcjogIzA0MTEwYTsgfVxuICAmLmRvd24geyBiYWNrZ3JvdW5kOiByZ2JhKDIzOSw2OCw2OCwuMTgpOyBjb2xvcjogdmFyKC0tcmVkKTsgfSB9XG4ubWstY2hhcnQgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDZweDsgbWluLXdpZHRoOiAwO1xuICBzdmcgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMTBweDsgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZSB7IHN0cm9rZTogcmdiYSgyNTUsMjU1LDI1NSwuMDYpOyBzdHJva2Utd2lkdGg6IDE7IH1cbiAgICBwb2x5bGluZSB7IGZpbGw6IG5vbmU7IHN0cm9rZS13aWR0aDogMS42OyBzdHJva2UtbGluZWpvaW46IHJvdW5kOyBzdHJva2UtbGluZWNhcDogcm91bmQ7IHZlY3Rvci1lZmZlY3Q6IG5vbi1zY2FsaW5nLXN0cm9rZTsgfSB9IH1cbi5tay1sZWdlbmQgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogMTBweDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogOHB4OyBsZXR0ZXItc3BhY2luZzogMXB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dDMpO1xuICBzcGFuIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNXB4OyB9XG4gIGkgeyB3aWR0aDogNnB4OyBoZWlnaHQ6IDZweDsgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gIGIgeyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dDIpOyB9IH1cbi5tay1heGlzIHsgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiA4cHg7IGxldHRlci1zcGFjaW5nOiAxcHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IH1cbi5tay1jLWZvb3QgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC1zaXplOiAxMHB4OyBsZXR0ZXItc3BhY2luZzogMXB4OyBjb2xvcjogdmFyKC0tdGV4dDMpOyBwYWRkaW5nLXRvcDogMTJweDsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XG4gIGIgeyBjb2xvcjogdmFyKC0tdGV4dCk7IGZvbnQtd2VpZ2h0OiA2MDA7IH0gfVxuLm1rLWMtcGFnZXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDIwcHg7IGJvdHRvbTogMTRweDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDlweDsgbGV0dGVyLXNwYWNpbmc6IDFweDsgY29sb3I6IHZhcigtLXRleHQzKTtcbiAgc3BhbiB7IHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE4cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsgY29sb3I6IHZhcigtLXRleHQyKTsgZm9udC1zaXplOiAxMnB4OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5tayB7IHBhZGRpbmc6IDhweCAxNnB4IDI0cHg7IH1cbiAgLm1rLXBhbmVsIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IGdhcDogMjhweDsgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gIC5tay1jLWJvZHkgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfVxuICAubWstdmVudWVzIHsgZ2FwOiAxNnB4OyB9XG59XG4iLCIvKiDilZDilZDilZAgQ29tcGFueSBwYWdlIOKAlCBcIkdhbWlmaWNhdGlvbiBhcyBhIFNlcnZpY2VcIiAoX0dhbWlmaWNhdGlvblNlcnZpY2UuY3NodG1sKSDilZDilZDilZBcbiAgIFBvcnQgb2YgdGhlIHVzZXIncyBzbGlkZSAoMTkyMHB4IHN0YWdlKSBhdCAyLzMgc2NhbGUgZm9yIHRoZSAxMjgwcHggY29udGFpbmVyLiBUaGUgc2xpZGUgaXMgdmlvbGV0OyBoZXJlIGV2ZXJ5IGNvbG91clxuICAgZm9sbG93cyB0aGUgc2tpbiAodXNlciBydWxlIDIwMjYtMDktMjIpOiB2aW9sZXQgYmFuZCBvbiB0aGUgdmlvbGV0IHNraW4sIGJsdWUgb24gYmx1ZSwgbWFnZW50YSBvbiBibGFjay4gKi9cbi5ncy1zZWMge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQtZ3JhZC1zZWN0aW9uKTtcbiAgLmxyLWJnLWdsb3cgeyBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCAxMCUgMTAwJSwgcmdiYSgwLDAsMCwuNDUpLCB0cmFuc3BhcmVudCA1NSUpLCByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA3OCUgNTUlLCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAuNTUpLCB0cmFuc3BhcmVudCA0OCUpOyB9XG4gIC5sci1iZy1ncmlkIHsgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4yMikgMXB4LCB0cmFuc3BhcmVudCAxcHgpLCBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEodmFyKC0tYWNjZW50LXJnYiksIC4yMikgMXB4LCB0cmFuc3BhcmVudCAxcHgpOyBiYWNrZ3JvdW5kLXNpemU6IDY0cHggNjRweDtcbiAgICBtYXNrLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSA4MCUgODUlIGF0IDUwJSA0MCUsICMwMDAgMjAlLCB0cmFuc3BhcmVudCA4MCUpOyAtd2Via2l0LW1hc2staW1hZ2U6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDgwJSA4NSUgYXQgNTAlIDQwJSwgIzAwMCAyMCUsIHRyYW5zcGFyZW50IDgwJSk7IH1cbiAgLmxyLWJnLWdyYWluIHsgb3BhY2l0eTogLjA2OyB9XG59XG4uZ3MgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNDRweDsgfVxuLmdzLWhlYWQgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDE2cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuLmdzLWV5ZWJyb3cgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDE2cHg7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDE0cHg7IGxldHRlci1zcGFjaW5nOiA0cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1hY2NlbnQzKTtcbiAgaSB7IHdpZHRoOiA4cHg7IGhlaWdodDogOHB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLWFjY2VudDMpOyBib3gtc2hhZG93OiAwIDAgMTJweCAycHggdmFyKC0tYWNjZW50Myk7IH0gfVxuLmdzLXRpdGxlIHsgbWFyZ2luOiAwOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsgZm9udC13ZWlnaHQ6IDQwMDsgZm9udC1zaXplOiBjbGFtcCg0MHB4LCA0LjJ2dywgNTZweCk7IGxpbmUtaGVpZ2h0OiAxOyBsZXR0ZXItc3BhY2luZzogMnB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogI2YwZjBmNDsgdGV4dC13cmFwOiBiYWxhbmNlO1xuICBlbSB7IGZvbnQtc3R5bGU6IG5vcm1hbDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYWNjZW50KSAwJSwgdmFyKC0tYWNjZW50MykgMTAwJSk7IC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsgfSB9XG4uZ3MtbGVkZSB7IG1hcmdpbjogMDsgbWF4LXdpZHRoOiA4NjBweDsgZm9udC1zaXplOiAxOHB4OyBmb250LXdlaWdodDogMzAwOyBsaW5lLWhlaWdodDogMS41OyBjb2xvcjogcmdiYSgyNDAsMjQwLDI0NCwuODUpOyB0ZXh0LXdyYXA6IHByZXR0eTsgfVxuXG4uZ3MtY2FyZHMgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7IGdhcDogMjZweDsgYWxpZ24taXRlbXM6IHN0YXJ0OyBwYWRkaW5nLWJvdHRvbTogOTZweDsgLyogcm9vbSBmb3IgdGhlIHJlZmxlY3Rpb24gKi8gfVxuLmdzLWNhcmQgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDEwcHg7IHBhZGRpbmc6IDIwcHggMjBweCAyOHB4OyBtaW4taGVpZ2h0OiAzNDVweDsgYm9yZGVyLXJhZGl1czogMTBweDsgYmFja2dyb3VuZDogdmFyKC0tYmcyKTsgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMTIpOyBib3gtc2hhZG93OiAwIDdweCAyMHB4IHJnYmEoMCwwLDAsLjM1KTtcbiAgLyogdGhlIHNsaWRlJ3MgYmFrZWQtaW4gbWlycm9yIHN0cmlwLCBkcmF3biBsaXZlIHNvIGl0IGZvbGxvd3MgdGhlIGNvcHkgYXQgZXZlcnkgd2lkdGggKEZpcmVmb3g6IG5vIHJlZmxlY3Rpb24pICovXG4gIC13ZWJraXQtYm94LXJlZmxlY3Q6IGJlbG93IDRweCBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQgNjYlLCByZ2JhKDAsMCwwLC40KSk7IH1cbi5ncy1hcnQgeyBoZWlnaHQ6IDEyMHB4OyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaW1nIHsgd2lkdGg6IDE4MHB4OyBoZWlnaHQ6IDEwN3B4OyBvYmplY3QtZml0OiBjb250YWluOyB9IH1cbi5ncy1zdGVwIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTNweDsgbGV0dGVyLXNwYWNpbmc6IDNweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWFjY2VudDMpOyB9XG4uZ3MtaCB7IG1hcmdpbjogMDsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtd2VpZ2h0OiA0MDA7IGZvbnQtc2l6ZTogMzBweDsgbGluZS1oZWlnaHQ6IDE7IGxldHRlci1zcGFjaW5nOiAxLjVweDsgY29sb3I6ICNmMGYwZjQ7IH1cbi5ncy1wIHsgbWFyZ2luOiAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiAzMDA7IGxpbmUtaGVpZ2h0OiAxLjU7IGNvbG9yOiByZ2JhKDI0MCwyNDAsMjQ0LC43KTsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLmdzLWNhcmRzIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOyB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHtcbiAgLmdzLWNhcmRzIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IGdhcDogMjBweDsgcGFkZGluZy1ib3R0b206IDYwcHg7IH1cbiAgLmdzLWNhcmQgeyBtaW4taGVpZ2h0OiAwOyB9XG59XG5cbiIsIi8qIOKVkOKVkOKVkCBDb21wYW55IHBhZ2Ug4oCUIGhpc3RvcnkgdGltZWxpbmUgKF9Db21wYW55SGlzdG9yeS5jc2h0bWwpICsgZGVtbyByZXF1ZXN0IGZvcm0gKF9EZW1vUmVxdWVzdC5jc2h0bWwpIOKVkOKVkOKVkFxuICAgVGltZWxpbmUgPSB0aGUgYXJ0Ym9hcmQgXCJUcmFkYW50ZSBIaXN0b3J5IFRpbWVsaW5lXCIgQTdhOiByYWlsLCBmaWxsLCBlaWdodCBtYXJrZXJzLiBDb2xvdXJzIGZvbGxvdyB0aGUgc2tpbi4gKi9cbi5jaCB7IHdpZHRoOiAxMDAlOyBtYXgtd2lkdGg6IDEwNDBweDsgbWFyZ2luOiAwIGF1dG87IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMTBweDsgfVxuLmNoLXRpdGxlIHsgbWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXdlaWdodDogNDAwOyBmb250LXNpemU6IGNsYW1wKDMwcHgsIDMuNHZ3LCA0MHB4KTsgbGV0dGVyLXNwYWNpbmc6IDJweDsgbGluZS1oZWlnaHQ6IDE7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS10ZXh0KTtcbiAgZW0geyBmb250LXN0eWxlOiBub3JtYWw7IGJhY2tncm91bmQ6IHZhcigtLWdyYWQpOyAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsgYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7IH0gfVxuLmNoLXJhaWwgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmc6IDEycHggMCA4cHg7IH1cbi5jaC1saW5lIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyByaWdodDogMDsgdG9wOiBjYWxjKDEycHggKyA2NnB4KTsgaGVpZ2h0OiAxcHg7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsLjA4KTsgfVxuLmNoLWZpbGwgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogY2FsYygxMnB4ICsgNjZweCk7IGhlaWdodDogMXB4OyB3aWR0aDogNi4yNSU7IGJhY2tncm91bmQ6IHZhcigtLWFjY2VudDMpOyBvcGFjaXR5OiAuNzsgdHJhbnNpdGlvbjogd2lkdGggLjdzIHZhcigtLWVhc2UsIGN1YmljLWJlemllciguNCwwLC4yLDEpKTsgfVxuLmNoLWdyaWQgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg4LCBtaW5tYXgoMCwgMWZyKSk7IGdhcDogOHB4OyB9XG4uY2gtZXYgeyBhbGw6IHVuc2V0OyBjdXJzb3I6IHBvaW50ZXI7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IG1pbi13aWR0aDogMDsgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgJjpmb2N1cy12aXNpYmxlIC5jaC1kb3QgeyBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjM1KTsgfSB9XG4uY2gtdG9wIHsgaGVpZ2h0OiA1MnB4OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDNweDsgdGV4dC1hbGlnbjogY2VudGVyOyBvcGFjaXR5OiAuNTsgdHJhbnNpdGlvbjogb3BhY2l0eSAuMzVzLCB0cmFuc2Zvcm0gLjM1czsgfVxuLmNoLXRhZyB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDhweDsgbGV0dGVyLXNwYWNpbmc6IDEuNXB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBjb2xvcjogdmFyKC0tdGV4dDMpOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4uY2gteWVhciB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOyBmb250LXNpemU6IDE4cHg7IGxldHRlci1zcGFjaW5nOiAxLjVweDsgbGluZS1oZWlnaHQ6IDE7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IHRyYW5zaXRpb246IGNvbG9yIC4zczsgfVxuLmNoLWRvdHcgeyBoZWlnaHQ6IDI4cHg7IGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7IH1cbi5jaC1kb3QgeyB3aWR0aDogOHB4OyBoZWlnaHQ6IDhweDsgYm9yZGVyLXJhZGl1czogNTAlOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10ZXh0Myk7IGJhY2tncm91bmQ6IHZhcigtLWJnKTsgYm94LXNpemluZzogYm9yZGVyLWJveDsgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuM3MsIGJvcmRlci1jb2xvciAuM3M7IH1cbi5jaC10dGwgeyBwYWRkaW5nOiA0cHggMnB4IDA7IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXplOiAxMHB4OyBsaW5lLWhlaWdodDogMS40OyBjb2xvcjogdmFyKC0tdGV4dDMpOyB0ZXh0LXdyYXA6IHByZXR0eTsgb3BhY2l0eTogLjU7IHRyYW5zaXRpb246IG9wYWNpdHkgLjM1cywgY29sb3IgLjM1czsgfVxuLmNoLWV2LnBhc3QgeyAuY2gtdG9wLCAuY2gtdHRsIHsgb3BhY2l0eTogLjg7IH0gLmNoLWRvdCB7IGJhY2tncm91bmQ6IHZhcigtLXRleHQzKTsgfSB9XG4uY2gtZXYub24geyAuY2gtdG9wIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOyB9IC5jaC15ZWFyIHsgY29sb3I6IHZhcigtLXRleHQpOyB9IC5jaC10dGwgeyBvcGFjaXR5OiAxOyBjb2xvcjogdmFyKC0tdGV4dDIpOyB9XG4gIC5jaC1kb3QgeyBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQzKTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQzKTsgYW5pbWF0aW9uOiBjaC1yaW5nIDEuNnMgdmFyKC0tZWFzZSwgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkpIGluZmluaXRlOyB9IH1cbi5jaC1kZXNjIHsgbWluLWhlaWdodDogNDhweDsgbWF4LXdpZHRoOiA3MjBweDsgbWFyZ2luOiA0cHggYXV0byAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDEuNjsgY29sb3I6IHZhcigtLXRleHQyKTtcbiAgcCB7IG1hcmdpbjogMDsgYW5pbWF0aW9uOiB0ci1mYWRlLXVwIC40NXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgYm90aDsgfVxuICBiIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtd2VpZ2h0OiA0MDA7IGZvbnQtc2l6ZTogMTZweDsgbGV0dGVyLXNwYWNpbmc6IDFweDsgY29sb3I6IHZhcigtLWFjY2VudDMpOyBtYXJnaW4tcmlnaHQ6IDhweDsgfSB9XG5Aa2V5ZnJhbWVzIGNoLXJpbmcgeyAwJSB7IGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSh2YXIoLS1hY2NlbnQtcmdiKSwgLjU1KTsgfSAxMDAlIHsgYm94LXNoYWRvdzogMCAwIDAgMTRweCByZ2JhKHZhcigtLWFjY2VudC1yZ2IpLCAwKTsgfSB9XG5cbi8qIGRlbW8gcmVxdWVzdCDigJQgdGhlIFwiVGhyZWUgd2F5cyBpblwiIGNhcmQgZmxpcHMgKFkgYXhpcykgaW50byB0aGUgZm9ybS4gRmFjZXMgYXJlIHN0YWNrZWQgYWJzb2x1dGVseTsgY29tcGFueS1oaXN0b3J5LmpzXG4gICBzZXRzIHRoZSB3cmFwcGVyIGhlaWdodCB0byB0aGUgdmlzaWJsZSBmYWNlIHNvIHRoZSBsYXlvdXQgZm9sbG93cyB0aGUgZmxpcC4gKi9cbi5jby1mbGlwIHsgcGVyc3BlY3RpdmU6IDE2MDBweDsgc2Nyb2xsLW1hcmdpbi10b3A6IDkwcHg7IH1cbi5jby1mbGlwLWlubmVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkOyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjdzIGN1YmljLWJlemllciguNCwwLC4yLDEpLCBoZWlnaHQgLjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpOyB9XG4uY28tZmxpcC1mYWNlIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiAxMDAlOyBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4uY28tZmxpcC1iYWNrIHsgdHJhbnNmb3JtOiByb3RhdGVZKDE4MGRlZyk7IH1cbi5jby1mbGlwLmZsaXBwZWQgLmNvLWZsaXAtaW5uZXIgeyB0cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKTsgfVxuLmNvLWZsaXA6bm90KC5mbGlwcGVkKSAuY28tZmxpcC1iYWNrLCAuY28tZmxpcC5mbGlwcGVkIC5jby1mbGlwLWZyb250IHsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbi5kci1mb3JtIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNHB4OyB9XG4uZHItaGVhZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGdhcDogMTJweDsgfVxuLmRyLWJhY2sgeyBhbGw6IHVuc2V0OyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXNpemU6IDExcHg7IGxldHRlci1zcGFjaW5nOiAxLjVweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLXRleHQzKTsgcGFkZGluZzogNHB4IDA7IHRyYW5zaXRpb246IGNvbG9yIC4ycztcbiAgJjpob3ZlciwgJjpmb2N1cy12aXNpYmxlIHsgY29sb3I6IHZhcigtLXRleHQpOyB9IH1cbi5kci1yb3cgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogMTRweDsgfVxuLmRyLWZpZWxkIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA2cHg7IG1pbi13aWR0aDogMDtcbiAgPiBzcGFuIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMTBweDsgbGV0dGVyLXNwYWNpbmc6IDJweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLXRleHQzKTtcbiAgICBlbSB7IGZvbnQtc3R5bGU6IG5vcm1hbDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IGxldHRlci1zcGFjaW5nOiAwOyB9IH1cbiAgLnRyLWlucHV0IHsgd2lkdGg6IDEwMCU7IH1cbiAgc2VsZWN0LnRyLWlucHV0IHsgYXBwZWFyYW5jZTogbm9uZTsgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyBwYWRkaW5nLXJpZ2h0OiAzNnB4OyBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCB0cmFuc3BhcmVudCA1MCUsIHZhcigtLXRleHQzKSA1MCUpLCBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS10ZXh0MykgNTAlLCB0cmFuc3BhcmVudCA1MCUpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDE4cHgpIDUwJSwgY2FsYygxMDAlIC0gMTNweCkgNTAlOyBiYWNrZ3JvdW5kLXNpemU6IDVweCA1cHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgb3B0aW9uIHsgYmFja2dyb3VuZDogdmFyKC0tYmcyKTsgY29sb3I6IHZhcigtLXRleHQpOyB9IH1cbiAgdGV4dGFyZWEudHItaW5wdXQgeyByZXNpemU6IHZlcnRpY2FsOyBtaW4taGVpZ2h0OiA5NnB4OyBsaW5lLWhlaWdodDogMS41OyB9IH1cbi5kci1ocCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogLTk5OTlweDsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7IG92ZXJmbG93OiBoaWRkZW47IH1cbi5kci1mb290IHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxOHB4OyBmbGV4LXdyYXA6IHdyYXA7IG1hcmdpbi10b3A6IDRweDsgfVxuLmRyLW5vdGUgeyBmb250LXNpemU6IDEycHg7IGxpbmUtaGVpZ2h0OiAxLjU7IGNvbG9yOiB2YXIoLS10ZXh0Myk7IGEgeyBjb2xvcjogdmFyKC0tdGV4dDIpOyB9IH1cbi5kci1tc2cgeyBkaXNwbGF5OiBub25lOyBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjU7IHBhZGRpbmc6IDEycHggMTRweDsgYm9yZGVyLXJhZGl1czogOHB4OyBib3JkZXI6IDFweCBzb2xpZDtcbiAgJi5vayB7IGRpc3BsYXk6IGJsb2NrOyBjb2xvcjogdmFyKC0tZ3JlZW4yKTsgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LDE5Nyw5NCwuMzUpOyBiYWNrZ3JvdW5kOiByZ2JhKDM0LDE5Nyw5NCwuMDgpOyB9XG4gICYuZXJyIHsgZGlzcGxheTogYmxvY2s7IGNvbG9yOiB2YXIoLS1yZWQyKTsgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSw2OCw2OCwuMzUpOyBiYWNrZ3JvdW5kOiByZ2JhKDIzOSw2OCw2OCwuMDgpOyB9IH1cbi5kci1mb3JtLnNlbnQgeyAuZHItcm93LCAuZHItZmllbGQsIC5kci1mb290IHsgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAuY2gtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTsgcm93LWdhcDogMjBweDsgfVxuICAuY2gtbGluZSwgLmNoLWZpbGwgeyBkaXNwbGF5OiBub25lOyB9IC8qIHR3byByb3dzOiB0aGUgc2luZ2xlIHJhaWwgbm8gbG9uZ2VyIGxpbmVzIHVwOyB0aGUgZG90cyBjYXJyeSB0aGUgc3RhdGUgKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAuY2gtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTsgfVxuICAuZHItcm93IHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbiAgLmRyLWZvcm0geyBwYWRkaW5nOiAyMnB4IDE4cHg7IH1cbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7IC5jaC1ldi5vbiAuY2gtZG90IHsgYW5pbWF0aW9uOiBub25lOyB9IC5jby1mbGlwLWlubmVyIHsgdHJhbnNpdGlvbjogbm9uZTsgfSB9XG4iXX0= */
