/*!***************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/styles/design-tokens.css ***!
  \***************************************************************************************************************************/
/**
 * NovaCraft Cleaning - Design Tokens
 * Direction artistique : Minimaliste Premium / Propreté / Modernité
 */

:root {
  /* Palette de couleurs - Neutres élégants */
  --color-primary: #0F172A;        /* Charbon profond */
  --color-primary-light: #1E293B;
  --color-secondary: #38BDF8;      /* Bleu clair vivant */
  --color-secondary-light: #7DD3FC;
  --color-accent: #10B981;         /* Vert success/confiance */
  --color-accent-dark: #059669;
  
  /* Neutrals */
  --color-white: #FFFFFF;
  --color-gray-50: #F8FAFC;
  --color-gray-100: #F1F5F9;
  --color-gray-200: #E2E8F0;
  --color-gray-300: #CBD5E1;
  --color-gray-400: #94A3B8;
  --color-gray-500: #64748B;
  --color-gray-600: #475569;
  --color-gray-700: #334155;
  --color-gray-800: #1E293B;
  --color-gray-900: #0F172A;
  
  /* Typography Scale */
  --font-display: 'Montserrat', -apple-system, system-ui, sans-serif;
  --font-body: 'Inter', -apple-system, system-ui, sans-serif;
  
  --text-xs: 0.75rem;      /* 12px */
  --text-sm: 0.875rem;     /* 14px */
  --text-base: 1rem;       /* 16px */
  --text-lg: 1.125rem;     /* 18px */
  --text-xl: 1.25rem;      /* 20px */
  --text-2xl: 1.5rem;      /* 24px */
  --text-3xl: 1.875rem;    /* 30px */
  --text-4xl: 2.25rem;     /* 36px */
  --text-5xl: 3rem;        /* 48px */
  --text-6xl: 3.75rem;     /* 60px */
  --text-7xl: 4.5rem;      /* 72px */
  
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-extrabold: 800;
  
  --line-height-tight: 1.25;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.75;
  
  /* Spacing Scale (système 4px) */
  --spacing-1: 0.25rem;    /* 4px */
  --spacing-2: 0.5rem;     /* 8px */
  --spacing-3: 0.75rem;    /* 12px */
  --spacing-4: 1rem;       /* 16px */
  --spacing-5: 1.25rem;    /* 20px */
  --spacing-6: 1.5rem;     /* 24px */
  --spacing-8: 2rem;       /* 32px */
  --spacing-10: 2.5rem;    /* 40px */
  --spacing-12: 3rem;      /* 48px */
  --spacing-16: 4rem;      /* 64px */
  --spacing-20: 5rem;      /* 80px */
  --spacing-24: 6rem;      /* 96px */
  --spacing-32: 8rem;      /* 128px */
  
  /* Border Radius */
  --radius-sm: 0.375rem;   /* 6px */
  --radius-md: 0.5rem;     /* 8px */
  --radius-lg: 0.75rem;    /* 12px */
  --radius-xl: 1rem;       /* 16px */
  --radius-2xl: 1.5rem;    /* 24px */
  --radius-full: 9999px;
  
  /* Shadows - douces et élégantes */
  --shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
  --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  
  /* Transitions */
  --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slower: 500ms cubic-bezier(0.4, 0, 0.2, 1);
  
  /* Z-index Scale */
  --z-0: 0;
  --z-10: 10;
  --z-20: 20;
  --z-30: 30;
  --z-40: 40;
  --z-50: 50;
  
  /* Container Widths */
  --container-sm: 640px;
  --container-md: 768px;
  --container-lg: 1024px;
  --container-xl: 1280px;
  --container-2xl: 1536px;
  
  /* Grid */
  --grid-cols-12: repeat(12, minmax(0, 1fr));
  --grid-cols-6: repeat(6, minmax(0, 1fr));
  --grid-cols-4: repeat(4, minmax(0, 1fr));
  --grid-gap: var(--spacing-6);
}

/* Respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Base Reset */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--font-body);
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height-normal);
  color: var(--color-gray-900);
  background-color: var(--color-white);
}

/* Typography Base */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  color: var(--color-primary);
}

h1 { font-size: var(--text-5xl); }
h2 { font-size: var(--text-4xl); }
h3 { font-size: var(--text-3xl); }
h4 { font-size: var(--text-2xl); }
h5 { font-size: var(--text-xl); }
h6 { font-size: var(--text-lg); }

p {
  margin-bottom: var(--spacing-4);
}

a {
  color: var(--color-secondary);
  text-decoration: none;
  transition: color var(--transition-fast);
}

a:hover {
  color: var(--color-secondary-light);
}

/* Utilities */
.container {
  width: 100%;
  max-width: var(--container-xl);
  margin: 0 auto;
  padding: 0 var(--spacing-4);
}

.container-lg {
  max-width: var(--container-2xl);
}

.section {
  padding: var(--spacing-20) 0;
}

@media (max-width: 768px) {
  .section {
    padding: var(--spacing-16) 0;
  }

  h1 { font-size: var(--text-4xl); }
  h2 { font-size: var(--text-3xl); }
  h3 { font-size: var(--text-2xl); }
}

/* ===== Blocks Row - Grid layout for side-by-side blocks ===== */
.blocks-container {
  padding-top: 72px;
}

.blocks-row {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--spacing-6);
  padding: 0 var(--spacing-4);
  max-width: var(--container-xl);
  margin: 0 auto;
}

.blocks-row__col {
  min-width: 0;
}

.blocks-row__col > * {
  height: 100%;
}

@media (max-width: 768px) {
  .blocks-row {
    grid-template-columns: 1fr;
    gap: var(--spacing-4);
  }

  .blocks-row__col {
    grid-column: span 1 !important;
  }
}
/*!************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/styles/animations.css ***!
  \************************************************************************************************************************/
/**
 * NovaCraft Cleaning - Animations
 * Animations sobres et élégantes avec respect de prefers-reduced-motion
 */

/* Fade In animations */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translateX(20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Scale animations */
@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Slide animations */
@keyframes slideInUp {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}

/* Pulse for call-to-action */
@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.8;
  }
}

/* Shimmer effect for loading */
@keyframes shimmer {
  0% {
    background-position: -1000px 0;
  }
  100% {
    background-position: 1000px 0;
  }
}

/* Counter animation */
@keyframes countUp {
  from {
    transform: translateY(10px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/* Utility classes */
.animate-fade-in {
  animation: fadeIn var(--transition-base) ease-out;
}

.animate-fade-in-up {
  animation: fadeInUp var(--transition-slow) ease-out;
}

.animate-fade-in-down {
  animation: fadeInDown var(--transition-slow) ease-out;
}

.animate-fade-in-left {
  animation: fadeInLeft var(--transition-slow) ease-out;
}

.animate-fade-in-right {
  animation: fadeInRight var(--transition-slow) ease-out;
}

.animate-scale-in {
  animation: scaleIn var(--transition-slow) ease-out;
}

/* Stagger delays pour animations séquentielles */
.stagger-1 { animation-delay: 100ms; }
.stagger-2 { animation-delay: 200ms; }
.stagger-3 { animation-delay: 300ms; }
.stagger-4 { animation-delay: 400ms; }
.stagger-5 { animation-delay: 500ms; }
.stagger-6 { animation-delay: 600ms; }

/* Hover effects */
.hover-lift {
  transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.hover-lift:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}

.hover-scale {
  transition: transform var(--transition-base);
}

.hover-scale:hover {
  transform: scale(1.02);
}

/* Scroll reveal - classes appliquées via Intersection Observer */
.scroll-reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity var(--transition-slow), transform var(--transition-slow);
}

.scroll-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Loading shimmer */
.loading-shimmer {
  background: linear-gradient(
    90deg,
    var(--color-gray-100) 0%,
    var(--color-gray-200) 50%,
    var(--color-gray-100) 100%
  );
  background-size: 1000px 100%;
  animation: shimmer 2s infinite;
}

/* Focus visible pour accessibilité */
.focus-ring:focus-visible {
  outline: 2px solid var(--color-secondary);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}

/* Respect de prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  
  .animate-fade-in,
  .animate-fade-in-up,
  .animate-fade-in-down,
  .animate-fade-in-left,
  .animate-fade-in-right,
  .animate-scale-in {
    animation: none;
  }
  
  .scroll-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  
  .hover-lift:hover,
  .hover-scale:hover {
    transform: none;
  }
}
/*!********************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/styles/public.css ***!
  \********************************************************************************************************************/
/* Design tokens (OBLIGATOIRE EN PREMIER) */

/* Animations globales */




/* Reset / base */
* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: var(--font-body, system-ui, sans-serif);
  background: var(--color-gray-50);
  color: var(--color-gray-900);
}

/*!**************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/Button/Button.css ***!
  \**************************************************************************************************************************************/
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-2);
  font-family: var(--font-display);
  font-weight: var(--font-weight-semibold);
  text-align: center;
  text-decoration: none;
  border: none;
  border-radius: var(--radius-lg);
  cursor: pointer;
  transition: all var(--transition-base);
  position: relative;
  overflow: hidden;
  white-space: nowrap;
}

.btn:focus-visible {
  outline: 2px solid var(--color-secondary);
  outline-offset: 2px;
}

/* Sizes */
.btn--sm {
  padding: var(--spacing-2) var(--spacing-4);
  font-size: var(--text-sm);
  min-height: 36px;
}

.btn--md {
  padding: var(--spacing-3) var(--spacing-6);
  font-size: var(--text-base);
  min-height: 44px;
}

.btn--lg {
  padding: var(--spacing-4) var(--spacing-8);
  font-size: var(--text-lg);
  min-height: 52px;
}

/* Variants */
.btn--primary {
  background: var(--color-primary);
  color: var(--color-white);
  box-shadow: var(--shadow-sm);
}

.btn--primary:hover:not(:disabled) {
  background: var(--color-primary-light);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.btn--primary:active:not(:disabled) {
  transform: translateY(0);
  box-shadow: var(--shadow-sm);
}

.btn--secondary {
  background: var(--color-secondary);
  color: var(--color-white);
  box-shadow: var(--shadow-sm);
}

.btn--secondary:hover:not(:disabled) {
  background: var(--color-secondary-light);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.btn--secondary:active:not(:disabled) {
  transform: translateY(0);
  box-shadow: var(--shadow-sm);
}

.btn--accent {
  background: var(--color-accent);
  color: var(--color-white);
  box-shadow: var(--shadow-sm);
}

.btn--accent:hover:not(:disabled) {
  background: var(--color-accent-dark);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.btn--outline {
  background: transparent;
  color: var(--color-primary);
  border: 2px solid var(--color-primary);
}

.btn--outline:hover:not(:disabled) {
  background: var(--color-primary);
  color: var(--color-white);
  transform: translateY(-2px);
}

.btn--ghost {
  background: transparent;
  color: var(--color-primary);
}

.btn--ghost:hover:not(:disabled) {
  background: var(--color-gray-100);
}

.btn--white {
  background: var(--color-white);
  color: var(--color-primary);
  box-shadow: var(--shadow-md);
}

.btn--white:hover:not(:disabled) {
  background: var(--color-gray-50);
  box-shadow: var(--shadow-lg);
  transform: translateY(-2px);
}

/* States */
.btn--full-width {
  width: 100%;
}

.btn--disabled,
.btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.btn--loading {
  color: transparent;
  pointer-events: none;
}

/* Loading spinner */
.btn__spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  justify-content: center;
}

.btn__spinner-icon {
  width: 20px;
  height: 20px;
  animation: spin 0.8s linear infinite;
}

.btn__spinner-circle {
  stroke: currentColor;
  stroke-dasharray: 60;
  stroke-dashoffset: 0;
  stroke-linecap: round;
  animation: spinner-dash 1.5s ease-in-out infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes spinner-dash {
  0% {
    stroke-dasharray: 1, 200;
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dasharray: 89, 200;
    stroke-dashoffset: -35px;
  }
  100% {
    stroke-dasharray: 89, 200;
    stroke-dashoffset: -124px;
  }
}

/* Icons */
.btn__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.btn__icon svg {
  width: 20px;
  height: 20px;
}

.btn--sm .btn__icon svg {
  width: 16px;
  height: 16px;
}

.btn--lg .btn__icon svg {
  width: 24px;
  height: 24px;
}

.btn__text {
  display: inline-block;
}

/* Responsive */
@media (max-width: 768px) {
  .btn--lg {
    padding: var(--spacing-3) var(--spacing-6);
    font-size: var(--text-base);
    min-height: 48px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .btn {
    transition: none;
  }
  
  .btn:hover:not(:disabled) {
    transform: none;
  }
  
  .btn__spinner-icon {
    animation: none;
  }
}
/*!****************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/Header/NavItems.css ***!
  \****************************************************************************************************************************************/
/* ===================================
   NavItems - Shared navigation items
   Dropdown + Mega Menu support
   =================================== */

.nav-items {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 0.125rem;
}

.nav-items__item {
  position: relative;
}

/* Links */
.nav-items__link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0.5rem 0.875rem;
  font-size: 0.9375rem;
  font-weight: 500;
  text-decoration: none;
  color: inherit;
  border: none;
  background: none;
  cursor: pointer;
  border-radius: 6px;
  transition: color 0.2s, background-color 0.2s;
  white-space: nowrap;
  font-family: inherit;
  line-height: 1.5;
}

.nav-items__link:hover {
  color: var(--nav-hover, #2563eb) !important;
  background-color: rgba(0, 0, 0, 0.04);
}

.nav-items__link--has-children {
  cursor: pointer;
}

/* Chevron */
.nav-items__chevron {
  width: 14px;
  height: 14px;
  transition: transform 0.2s ease;
  flex-shrink: 0;
  margin-left: 2px;
}

.nav-items__chevron--open {
  transform: rotate(180deg);
}

/* ===================================
   Dropdown Panel
   =================================== */

.nav-items__dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 220px;
  background: #ffffff;
  border-radius: 10px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08);
  padding: 0.5rem;
  z-index: 100;
  animation: navItemsFadeIn 0.15s ease-out;
}

@keyframes navItemsFadeIn {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.nav-items__dropdown-link {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 0.625rem 0.875rem;
  text-decoration: none;
  color: #1f2937;
  border-radius: 6px;
  transition: background-color 0.15s;
}

.nav-items__dropdown-link:hover {
  background-color: #f3f4f6;
}

.nav-items__dropdown-name {
  font-weight: 500;
  font-size: 0.9375rem;
  color: #1f2937;
}

.nav-items__dropdown-desc {
  font-size: 0.8125rem;
  color: #6b7280;
  line-height: 1.4;
}

.nav-items__dropdown-empty {
  display: block;
  padding: 1rem;
  text-align: center;
  color: #9ca3af;
  font-size: 0.8125rem;
}

/* ===================================
   Mega Menu Panel
   =================================== */

.nav-items__megamenu {
  position: absolute;
  top: calc(100% + 4px);
  left: 50%;
  transform: translateX(-50%);
  min-width: 520px;
  max-width: 800px;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  z-index: 100;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 1.5rem;
  animation: navItemsFadeIn 0.15s ease-out;
}

.nav-items__megamenu-col {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.nav-items__megamenu-title {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #9ca3af;
  padding: 0 0.5rem 0.5rem;
  border-bottom: 1px solid #f3f4f6;
  margin: 0 0 0.375rem;
}

.nav-items__megamenu-link {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 0.5rem;
  text-decoration: none;
  border-radius: 6px;
  transition: background-color 0.15s;
}

.nav-items__megamenu-link:hover {
  background-color: #f3f4f6;
}

.nav-items__megamenu-name {
  font-weight: 500;
  font-size: 0.875rem;
  color: #1f2937;
}

.nav-items__megamenu-desc {
  font-size: 0.75rem;
  color: #6b7280;
  line-height: 1.3;
}

/* ===================================
   Mobile mode
   =================================== */

.nav-items--mobile {
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

.nav-items--mobile .nav-items__item {
  position: static;
}

.nav-items--mobile .nav-items__link {
  width: 100%;
  justify-content: space-between;
  padding: 0.75rem 1rem;
  border-radius: 8px;
}

.nav-items--mobile .nav-items__dropdown {
  position: static;
  box-shadow: none;
  border-radius: 0;
  padding: 0 0 0 0.75rem;
  margin-left: 1rem;
  border-left: 2px solid #e5e7eb;
  animation: none;
  min-width: auto;
}

.nav-items--mobile .nav-items__megamenu {
  position: static;
  transform: none;
  box-shadow: none;
  border-radius: 0;
  padding: 0.5rem 0 0.5rem 0.75rem;
  margin-left: 1rem;
  border-left: 2px solid #e5e7eb;
  animation: none;
  min-width: auto;
  max-width: none;
  grid-template-columns: 1fr;
  gap: 1rem;
}

/* ===================================
   Responsive - ensure mega menu doesn't overflow
   =================================== */

@media (max-width: 1100px) {
  .nav-items__megamenu {
    min-width: 400px;
  }
}

@media (max-width: 768px) {
  .nav-items__megamenu {
    min-width: auto;
  }
}

/*!*******************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/Header/templates/ClassicHeader.css ***!
  \*******************************************************************************************************************************************************/
/* ==========================================================================
   ClassicHeader Template
   Logo left, nav center, phone + CTA right. Slide-in mobile menu from right.
   ========================================================================== */

.classic-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--z-50);
  background: var(--color-white);
  transition: all var(--transition-base);
}

.classic-header--scrolled {
  box-shadow: var(--shadow-md);
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
}

.classic-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacing-4) 0;
  transition: padding var(--transition-base);
}

.classic-header--scrolled .classic-header__inner {
  padding: var(--spacing-3) 0;
}

/* Logo */
.classic-header__logo {
  display: flex;
  align-items: center;
  gap: var(--spacing-3);
  text-decoration: none;
  color: var(--color-primary);
  transition: opacity var(--transition-fast);
  flex-shrink: 0;
}

.classic-header__logo:hover {
  opacity: 0.8;
}

.classic-header__logo-icon {
  width: 40px;
  height: 40px;
  color: var(--color-secondary);
  flex-shrink: 0;
}

.classic-header__logo-text {
  font-family: var(--font-display);
  font-weight: var(--font-weight-bold);
  font-size: var(--text-lg);
  white-space: nowrap;
}

/* Navigation Desktop */
.classic-header__nav {
  display: none;
}

.classic-header__nav-list {
  display: flex;
  align-items: center;
  gap: var(--spacing-8);
  list-style: none;
  margin: 0;
  padding: 0;
}

.classic-header__nav-link {
  font-family: var(--font-display);
  font-weight: var(--font-weight-medium);
  font-size: var(--text-sm);
  color: var(--color-gray-700);
  text-decoration: none;
  padding: var(--spacing-2) 0;
  position: relative;
  transition: color var(--transition-fast);
}

.classic-header__nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--classic-header-hover, var(--color-secondary));
  transform: scaleX(0);
  transition: transform var(--transition-base);
}

.classic-header__nav-link:hover::after {
  transform: scaleX(1);
}

/* Actions */
.classic-header__actions {
  display: none;
  align-items: center;
  gap: var(--spacing-4);
}

.classic-header__phone {
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
  color: var(--color-primary);
  text-decoration: none;
  font-weight: var(--font-weight-medium);
  padding: var(--spacing-2) var(--spacing-4);
  border-radius: var(--radius-md);
  transition: background-color var(--transition-fast);
}

.classic-header__phone:hover {
  background: var(--color-gray-100);
}

.classic-header__phone-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.classic-header__phone-text {
  white-space: nowrap;
}

/* Mobile Toggle */
.classic-header__mobile-toggle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 32px;
  height: 32px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  z-index: var(--z-50);
}

.classic-header__mobile-toggle-line {
  width: 100%;
  height: 2px;
  background: var(--color-primary);
  transition: all var(--transition-base);
  transform-origin: center;
}

.classic-header__mobile-toggle-line--open:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.classic-header__mobile-toggle-line--open:nth-child(2) {
  opacity: 0;
}

.classic-header__mobile-toggle-line--open:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Mobile Menu */
.classic-header__mobile-menu {
  position: fixed;
  top: 72px;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--color-white);
  transform: translateX(100%);
  transition: transform var(--transition-slow);
  overflow-y: auto;
  z-index: var(--z-40);
}

.classic-header__mobile-menu--open {
  transform: translateX(0);
}

.classic-header__mobile-nav {
  padding: var(--spacing-8) var(--spacing-4);
  min-height: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-8);
}

.classic-header__mobile-nav-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
  margin: 0;
  padding: 0;
}

.classic-header__mobile-nav-item {
  opacity: 0;
  transform: translateX(20px);
}

.classic-header__mobile-menu--open .classic-header__mobile-nav-item {
  animation: classicSlideInFromRight 0.4s ease-out forwards;
}

@keyframes classicSlideInFromRight {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.classic-header__mobile-nav-link {
  display: block;
  font-family: var(--font-display);
  font-weight: var(--font-weight-semibold);
  font-size: var(--text-xl);
  color: var(--color-primary);
  text-decoration: none;
  padding: var(--spacing-4);
  border-radius: var(--radius-md);
  transition: background-color var(--transition-fast);
}

.classic-header__mobile-nav-link:hover {
  background: var(--color-gray-100);
}

.classic-header__mobile-actions {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
  margin-top: auto;
}

.classic-header__mobile-phone {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-3);
  color: var(--color-primary);
  text-decoration: none;
  font-family: var(--font-display);
  font-weight: var(--font-weight-semibold);
  font-size: var(--text-xl);
  padding: var(--spacing-4);
  border-radius: var(--radius-md);
  background: var(--color-gray-100);
}

.classic-header__mobile-phone svg {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

/* Mobile Backdrop */
.classic-header__mobile-backdrop {
  position: fixed;
  top: 72px;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: var(--z-30);
  animation: classicFadeIn var(--transition-base) ease-out;
}

@keyframes classicFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Desktop breakpoint */
@media (min-width: 1024px) {
  .classic-header__nav {
    display: block;
  }

  .classic-header__actions {
    display: flex;
  }

  .classic-header__mobile-toggle {
    display: none;
  }

  .classic-header__mobile-menu,
  .classic-header__mobile-backdrop {
    display: none;
  }
}

/* Small screens: hide logo text */
@media (max-width: 767px) {
  .classic-header__logo-text {
    display: none;
  }

  .classic-header__logo-icon {
    width: 36px;
    height: 36px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .classic-header,
  .classic-header__inner,
  .classic-header__nav-link,
  .classic-header__mobile-menu {
    transition: none;
  }

  .classic-header__mobile-nav-item {
    animation: none;
    opacity: 1;
    transform: none;
  }
}

/*!********************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/Header/templates/CenteredHeader.css ***!
  \********************************************************************************************************************************************************/
/* ==========================================================================
   CenteredHeader Template
   Logo centered on top, nav centered below. Clean, balanced layout.
   ========================================================================== */

.centered-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--z-50);
  background: var(--color-white);
  transition: all var(--transition-base);
}

.centered-header--scrolled {
  box-shadow: var(--shadow-md);
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
}

/* Top row: Logo centered */
.centered-header__top {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--spacing-4) 0 var(--spacing-2) 0;
  position: relative;
  transition: padding var(--transition-base);
}

.centered-header--scrolled .centered-header__top {
  padding: var(--spacing-2) 0 var(--spacing-1) 0;
}

.centered-header__logo {
  display: flex;
  align-items: center;
  gap: var(--spacing-3);
  text-decoration: none;
  color: var(--color-primary);
  transition: opacity var(--transition-fast);
}

.centered-header__logo:hover {
  opacity: 0.8;
}

.centered-header__logo-icon {
  width: 40px;
  height: 40px;
  color: var(--color-secondary);
  flex-shrink: 0;
}

.centered-header__logo-text {
  font-family: var(--font-display);
  font-weight: var(--font-weight-bold);
  font-size: var(--text-xl);
  white-space: nowrap;
}

/* Bottom row: Nav + actions centered */
.centered-header__bottom {
  display: none;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-3);
  padding-bottom: var(--spacing-3);
  border-top: 1px solid var(--color-gray-200);
  transition: padding var(--transition-base);
}

.centered-header--scrolled .centered-header__bottom {
  padding-bottom: var(--spacing-2);
}

.centered-header__nav {
  width: 100%;
}

.centered-header__nav-list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-6);
  list-style: none;
  margin: 0;
  padding: var(--spacing-3) 0 0 0;
}

.centered-header__nav-link {
  font-family: var(--font-display);
  font-weight: var(--font-weight-medium);
  font-size: var(--text-sm);
  color: var(--color-gray-700);
  text-decoration: none;
  padding: var(--spacing-2) 0;
  position: relative;
  transition: color var(--transition-fast);
}

.centered-header__nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 2px;
  background: var(--centered-header-hover, var(--color-secondary));
  transition: width var(--transition-base), left var(--transition-base);
}

.centered-header__nav-link:hover::after {
  width: 100%;
  left: 0;
}

/* Actions */
.centered-header__actions {
  display: flex;
  align-items: center;
  gap: var(--spacing-4);
}

.centered-header__phone {
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
  color: var(--color-primary);
  text-decoration: none;
  font-weight: var(--font-weight-medium);
  font-size: var(--text-sm);
  padding: var(--spacing-1) var(--spacing-3);
  border-radius: var(--radius-md);
  transition: background-color var(--transition-fast);
}

.centered-header__phone:hover {
  background: var(--color-gray-100);
}

.centered-header__phone-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

/* Mobile Toggle */
.centered-header__mobile-toggle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 32px;
  height: 32px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  z-index: var(--z-50);
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}

.centered-header__mobile-toggle-line {
  width: 100%;
  height: 2px;
  background: var(--color-primary);
  transition: all var(--transition-base);
  transform-origin: center;
}

.centered-header__mobile-toggle-line--open:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.centered-header__mobile-toggle-line--open:nth-child(2) {
  opacity: 0;
}

.centered-header__mobile-toggle-line--open:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Mobile Menu */
.centered-header__mobile-menu {
  position: fixed;
  top: 72px;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--color-white);
  transform: translateX(100%);
  transition: transform var(--transition-slow);
  overflow-y: auto;
  z-index: var(--z-40);
}

.centered-header__mobile-menu--open {
  transform: translateX(0);
}

.centered-header__mobile-nav {
  padding: var(--spacing-8) var(--spacing-4);
  min-height: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-8);
}

.centered-header__mobile-nav-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
  margin: 0;
  padding: 0;
}

.centered-header__mobile-nav-item {
  opacity: 0;
  transform: translateX(20px);
}

.centered-header__mobile-menu--open .centered-header__mobile-nav-item {
  animation: centeredSlideInFromRight 0.4s ease-out forwards;
}

@keyframes centeredSlideInFromRight {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.centered-header__mobile-nav-link {
  display: block;
  font-family: var(--font-display);
  font-weight: var(--font-weight-semibold);
  font-size: var(--text-xl);
  text-align: center;
  color: var(--color-primary);
  text-decoration: none;
  padding: var(--spacing-4);
  border-radius: var(--radius-md);
  transition: background-color var(--transition-fast);
}

.centered-header__mobile-nav-link:hover {
  background: var(--color-gray-100);
}

.centered-header__mobile-actions {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
  margin-top: auto;
}

.centered-header__mobile-phone {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-3);
  color: var(--color-primary);
  text-decoration: none;
  font-family: var(--font-display);
  font-weight: var(--font-weight-semibold);
  font-size: var(--text-xl);
  padding: var(--spacing-4);
  border-radius: var(--radius-md);
  background: var(--color-gray-100);
}

.centered-header__mobile-phone svg {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

/* Mobile Backdrop */
.centered-header__mobile-backdrop {
  position: fixed;
  top: 72px;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: var(--z-30);
  animation: centeredFadeIn var(--transition-base) ease-out;
}

@keyframes centeredFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Desktop breakpoint */
@media (min-width: 1024px) {
  .centered-header__bottom {
    display: flex;
  }

  .centered-header__mobile-toggle {
    display: none;
  }

  .centered-header__mobile-menu,
  .centered-header__mobile-backdrop {
    display: none;
  }
}

/* Small screens: hide logo text */
@media (max-width: 767px) {
  .centered-header__logo-text {
    display: none;
  }

  .centered-header__logo-icon {
    width: 36px;
    height: 36px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .centered-header,
  .centered-header__top,
  .centered-header__bottom,
  .centered-header__nav-link,
  .centered-header__mobile-menu {
    transition: none;
  }

  .centered-header__mobile-nav-item {
    animation: none;
    opacity: 1;
    transform: none;
  }
}

/*!*******************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/Header/templates/MinimalHeader.css ***!
  \*******************************************************************************************************************************************************/
/* ==========================================================================
   MinimalHeader Template
   Logo left, nav right. No phone/CTA. Transparent, very clean.
   ========================================================================== */

.minimal-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--z-50);
  background: transparent;
  transition: all var(--transition-base);
}

.minimal-header--scrolled {
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(8px);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
}

.minimal-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacing-5) 0;
  transition: padding var(--transition-base);
}

.minimal-header--scrolled .minimal-header__inner {
  padding: var(--spacing-4) 0;
}

/* Logo */
.minimal-header__logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: var(--color-primary);
  transition: opacity var(--transition-fast);
}

.minimal-header__logo:hover {
  opacity: 0.7;
}

.minimal-header__logo-text {
  font-family: var(--font-display);
  font-weight: var(--font-weight-semibold);
  font-size: var(--text-base);
  white-space: nowrap;
  letter-spacing: 0.02em;
}

/* Navigation Desktop */
.minimal-header__nav {
  display: none;
}

.minimal-header__nav-list {
  display: flex;
  align-items: center;
  gap: var(--spacing-8);
  list-style: none;
  margin: 0;
  padding: 0;
}

.minimal-header__nav-link {
  font-family: var(--font-display);
  font-weight: var(--font-weight-normal);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-gray-600);
  text-decoration: none;
  padding: var(--spacing-1) 0;
  position: relative;
  transition: color var(--transition-fast);
}

.minimal-header__nav-link::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  right: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform var(--transition-base);
}

.minimal-header__nav-link:hover::after {
  transform: scaleX(1);
  transform-origin: left center;
}

/* Mobile Toggle */
.minimal-header__mobile-toggle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 28px;
  height: 28px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  z-index: var(--z-50);
}

.minimal-header__mobile-toggle-line {
  width: 100%;
  height: 1.5px;
  background: var(--color-primary);
  transition: all var(--transition-base);
  transform-origin: center;
}

.minimal-header__mobile-toggle-line--open:nth-child(1) {
  transform: translateY(6.5px) rotate(45deg);
}

.minimal-header__mobile-toggle-line--open:nth-child(2) {
  opacity: 0;
}

.minimal-header__mobile-toggle-line--open:nth-child(3) {
  transform: translateY(-6.5px) rotate(-45deg);
}

/* Mobile Menu */
.minimal-header__mobile-menu {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--color-white);
  transform: translateY(-100%);
  transition: transform var(--transition-slow);
  overflow-y: auto;
  z-index: var(--z-40);
  display: flex;
  align-items: center;
  justify-content: center;
}

.minimal-header__mobile-menu--open {
  transform: translateY(0);
}

.minimal-header__mobile-nav {
  padding: var(--spacing-8) var(--spacing-4);
  text-align: center;
}

.minimal-header__mobile-nav-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
  margin: 0;
  padding: 0;
}

.minimal-header__mobile-nav-item {
  opacity: 0;
  transform: translateY(10px);
}

.minimal-header__mobile-menu--open .minimal-header__mobile-nav-item {
  animation: minimalSlideUp 0.4s ease-out forwards;
}

@keyframes minimalSlideUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.minimal-header__mobile-nav-link {
  display: block;
  font-family: var(--font-display);
  font-weight: var(--font-weight-normal);
  font-size: var(--text-2xl);
  letter-spacing: 0.04em;
  color: var(--color-primary);
  text-decoration: none;
  padding: var(--spacing-3) var(--spacing-4);
  transition: opacity var(--transition-fast);
}

.minimal-header__mobile-nav-link:hover {
  opacity: 0.6;
}

/* Mobile Backdrop */
.minimal-header__mobile-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.3);
  z-index: var(--z-30);
  animation: minimalFadeIn var(--transition-base) ease-out;
}

@keyframes minimalFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Desktop breakpoint */
@media (min-width: 1024px) {
  .minimal-header__nav {
    display: block;
  }

  .minimal-header__mobile-toggle {
    display: none;
  }

  .minimal-header__mobile-menu,
  .minimal-header__mobile-backdrop {
    display: none;
  }
}

/* Small screens */
@media (max-width: 767px) {
  .minimal-header__logo-text {
    font-size: var(--text-sm);
  }
}

@media (prefers-reduced-motion: reduce) {
  .minimal-header,
  .minimal-header__inner,
  .minimal-header__nav-link,
  .minimal-header__mobile-menu {
    transition: none;
  }

  .minimal-header__mobile-nav-item {
    animation: none;
    opacity: 1;
    transform: none;
  }
}

/*!***********************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/Header/templates/TransparentHeader.css ***!
  \***********************************************************************************************************************************************************/
/* ==========================================================================
   TransparentHeader Template
   Transparent over hero, opaque white on scroll. Text white -> dark on scroll.
   ========================================================================== */

.transparent-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--z-50);
  background: transparent;
  transition: all var(--transition-base);
}

.transparent-header--scrolled {
  box-shadow: var(--shadow-md);
  backdrop-filter: blur(10px);
}

.transparent-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacing-5) 0;
  transition: padding var(--transition-base);
}

.transparent-header--scrolled .transparent-header__inner {
  padding: var(--spacing-3) 0;
}

/* Logo */
.transparent-header__logo {
  display: flex;
  align-items: center;
  gap: var(--spacing-3);
  text-decoration: none;
  transition: opacity var(--transition-fast);
  flex-shrink: 0;
}

.transparent-header__logo:hover {
  opacity: 0.8;
}

.transparent-header__logo-icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
}

.transparent-header__logo-text {
  font-family: var(--font-display);
  font-weight: var(--font-weight-bold);
  font-size: var(--text-lg);
  white-space: nowrap;
}

/* Navigation Desktop */
.transparent-header__nav {
  display: none;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.transparent-header__nav-list {
  display: flex;
  align-items: center;
  gap: var(--spacing-8);
  list-style: none;
  margin: 0;
  padding: 0;
}

.transparent-header__nav-link {
  font-family: var(--font-display);
  font-weight: var(--font-weight-medium);
  font-size: var(--text-sm);
  text-decoration: none;
  padding: var(--spacing-2) 0;
  position: relative;
  transition: color var(--transition-fast);
}

.transparent-header__nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: currentColor;
  transform: scaleX(0);
  transition: transform var(--transition-base);
}

.transparent-header__nav-link:hover::after {
  transform: scaleX(1);
}

/* Actions */
.transparent-header__actions {
  display: none;
  align-items: center;
  gap: var(--spacing-4);
}

/* Mobile Toggle */
.transparent-header__mobile-toggle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 32px;
  height: 32px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  z-index: var(--z-50);
}

.transparent-header__mobile-toggle-line {
  width: 100%;
  height: 2px;
  transition: all var(--transition-base);
  transform-origin: center;
}

.transparent-header__mobile-toggle-line--open:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.transparent-header__mobile-toggle-line--open:nth-child(2) {
  opacity: 0;
}

.transparent-header__mobile-toggle-line--open:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Mobile Menu */
.transparent-header__mobile-menu {
  position: fixed;
  top: 72px;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--color-white);
  transform: translateX(100%);
  transition: transform var(--transition-slow);
  overflow-y: auto;
  z-index: var(--z-40);
}

.transparent-header__mobile-menu--open {
  transform: translateX(0);
}

.transparent-header__mobile-nav {
  padding: var(--spacing-8) var(--spacing-4);
  min-height: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-8);
}

.transparent-header__mobile-nav-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
  margin: 0;
  padding: 0;
}

.transparent-header__mobile-nav-item {
  opacity: 0;
  transform: translateX(20px);
}

.transparent-header__mobile-menu--open .transparent-header__mobile-nav-item {
  animation: transparentSlideInFromRight 0.4s ease-out forwards;
}

@keyframes transparentSlideInFromRight {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.transparent-header__mobile-nav-link {
  display: block;
  font-family: var(--font-display);
  font-weight: var(--font-weight-semibold);
  font-size: var(--text-xl);
  color: var(--color-primary);
  text-decoration: none;
  padding: var(--spacing-4);
  border-radius: var(--radius-md);
  transition: background-color var(--transition-fast);
}

.transparent-header__mobile-nav-link:hover {
  background: var(--color-gray-100);
}

.transparent-header__mobile-actions {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
  margin-top: auto;
}

.transparent-header__mobile-phone {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-3);
  color: var(--color-primary);
  text-decoration: none;
  font-family: var(--font-display);
  font-weight: var(--font-weight-semibold);
  font-size: var(--text-xl);
  padding: var(--spacing-4);
  border-radius: var(--radius-md);
  background: var(--color-gray-100);
}

.transparent-header__mobile-phone svg {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

/* Mobile Backdrop */
.transparent-header__mobile-backdrop {
  position: fixed;
  top: 72px;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: var(--z-30);
  animation: transparentFadeIn var(--transition-base) ease-out;
}

@keyframes transparentFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Desktop breakpoint */
@media (min-width: 1024px) {
  .transparent-header__nav {
    display: block;
  }

  .transparent-header__actions {
    display: flex;
  }

  .transparent-header__mobile-toggle {
    display: none;
  }

  .transparent-header__mobile-menu,
  .transparent-header__mobile-backdrop {
    display: none;
  }
}

/* Small screens: hide logo text */
@media (max-width: 767px) {
  .transparent-header__logo-text {
    display: none;
  }

  .transparent-header__logo-icon {
    width: 36px;
    height: 36px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .transparent-header,
  .transparent-header__inner,
  .transparent-header__nav-link,
  .transparent-header__mobile-menu {
    transition: none;
  }

  .transparent-header__mobile-nav-item {
    animation: none;
    opacity: 1;
    transform: none;
  }
}

/*!*******************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/Header/templates/SidebarHeader.css ***!
  \*******************************************************************************************************************************************************/
/* ==========================================================================
   SidebarHeader Template
   Always shows hamburger. Sidebar/drawer from left on click.
   Header bar only shows logo + hamburger.
   ========================================================================== */

.sidebar-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--z-50);
  background: var(--color-white);
  transition: all var(--transition-base);
}

.sidebar-header--scrolled {
  box-shadow: var(--shadow-md);
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
}

.sidebar-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacing-4) 0;
  transition: padding var(--transition-base);
}

.sidebar-header--scrolled .sidebar-header__inner {
  padding: var(--spacing-3) 0;
}

/* Toggle button - always visible */
.sidebar-header__toggle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 32px;
  height: 32px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  z-index: var(--z-50);
  flex-shrink: 0;
}

.sidebar-header__toggle-line {
  width: 100%;
  height: 2px;
  background: var(--color-primary);
  transition: all var(--transition-base);
  transform-origin: center;
}

.sidebar-header__toggle-line--open:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.sidebar-header__toggle-line--open:nth-child(2) {
  opacity: 0;
}

.sidebar-header__toggle-line--open:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Logo */
.sidebar-header__logo {
  display: flex;
  align-items: center;
  gap: var(--spacing-3);
  text-decoration: none;
  color: var(--color-primary);
  transition: opacity var(--transition-fast);
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.sidebar-header__logo:hover {
  opacity: 0.8;
}

.sidebar-header__logo-icon {
  width: 40px;
  height: 40px;
  color: var(--color-secondary);
  flex-shrink: 0;
}

.sidebar-header__logo-text {
  font-family: var(--font-display);
  font-weight: var(--font-weight-bold);
  font-size: var(--text-lg);
  white-space: nowrap;
}

/* Spacer to balance the hamburger on the left */
.sidebar-header__spacer {
  width: 32px;
  flex-shrink: 0;
}

/* ==============================
   Drawer / Sidebar
   ============================== */
.sidebar-header__drawer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: 320px;
  max-width: 85vw;
  background: var(--color-white);
  z-index: calc(var(--z-50) + 10);
  transform: translateX(-100%);
  transition: transform var(--transition-slow);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-xl, 0 20px 25px -5px rgba(0, 0, 0, 0.1));
}

.sidebar-header__drawer--open {
  transform: translateX(0);
}

/* Drawer header */
.sidebar-header__drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacing-4) var(--spacing-6);
  border-bottom: 1px solid var(--color-gray-200);
  flex-shrink: 0;
}

.sidebar-header__drawer-logo {
  display: flex;
  align-items: center;
  gap: var(--spacing-3);
  text-decoration: none;
  transition: opacity var(--transition-fast);
}

.sidebar-header__drawer-logo:hover {
  opacity: 0.8;
}

.sidebar-header__drawer-logo-icon {
  width: 32px;
  height: 32px;
  color: var(--color-secondary);
  flex-shrink: 0;
}

.sidebar-header__drawer-logo-text {
  font-family: var(--font-display);
  font-weight: var(--font-weight-bold);
  font-size: var(--text-base);
  white-space: nowrap;
}

.sidebar-header__drawer-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  border-radius: var(--radius-md);
  transition: background-color var(--transition-fast);
}

.sidebar-header__drawer-close:hover {
  background: var(--color-gray-100);
}

.sidebar-header__drawer-close svg {
  width: 20px;
  height: 20px;
}

/* Drawer nav */
.sidebar-header__drawer-nav {
  flex: 1;
  padding: var(--spacing-6);
}

.sidebar-header__drawer-nav-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-1);
  margin: 0;
  padding: 0;
}

.sidebar-header__drawer-nav-item {
  opacity: 0;
  transform: translateX(-16px);
}

.sidebar-header__drawer--open .sidebar-header__drawer-nav-item {
  animation: sidebarSlideIn 0.4s ease-out forwards;
}

@keyframes sidebarSlideIn {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.sidebar-header__drawer-nav-link {
  display: block;
  font-family: var(--font-display);
  font-weight: var(--font-weight-medium);
  font-size: var(--text-lg);
  text-decoration: none;
  padding: var(--spacing-3) var(--spacing-4);
  border-radius: var(--radius-md);
  transition: background-color var(--transition-fast), color var(--transition-fast);
}

.sidebar-header__drawer-nav-link:hover {
  background: var(--color-gray-100);
}

/* Drawer footer */
.sidebar-header__drawer-footer {
  padding: var(--spacing-6);
  border-top: 1px solid var(--color-gray-200);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
  flex-shrink: 0;
}

.sidebar-header__drawer-phone {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-3);
  text-decoration: none;
  font-family: var(--font-display);
  font-weight: var(--font-weight-semibold);
  font-size: var(--text-lg);
  padding: var(--spacing-3);
  border-radius: var(--radius-md);
  background: var(--color-gray-100);
  transition: background-color var(--transition-fast);
}

.sidebar-header__drawer-phone:hover {
  background: var(--color-gray-200);
}

.sidebar-header__drawer-phone svg {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}

/* Backdrop */
.sidebar-header__backdrop {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: calc(var(--z-50) + 5);
  animation: sidebarFadeIn var(--transition-base) ease-out;
}

@keyframes sidebarFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Small screens: hide logo text in header bar */
@media (max-width: 767px) {
  .sidebar-header__logo-text {
    display: none;
  }

  .sidebar-header__logo-icon {
    width: 36px;
    height: 36px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sidebar-header,
  .sidebar-header__inner,
  .sidebar-header__drawer {
    transition: none;
  }

  .sidebar-header__drawer-nav-item {
    animation: none;
    opacity: 1;
    transform: none;
  }

  .sidebar-header__backdrop {
    animation: none;
  }
}

/*!**************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/Header/Header.css ***!
  \**************************************************************************************************************************************/
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--z-50);
  background: var(--color-white);
  transition: all var(--transition-base);
}

.header--scrolled {
  box-shadow: var(--shadow-md);
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacing-4) 0;
  transition: padding var(--transition-base);
}

.header--scrolled .header__inner {
  padding: var(--spacing-3) 0;
}

/* Logo */
.header__logo {
  display: flex;
  align-items: center;
  gap: var(--spacing-3);
  text-decoration: none;
  color: var(--color-primary);
  transition: opacity var(--transition-fast);
}

.header__logo:hover {
  opacity: 0.8;
}

.header__logo-icon {
  width: 40px;
  height: 40px;
  color: var(--color-secondary);
  flex-shrink: 0;
}

.header__logo-text {
  font-family: var(--font-display);
  font-weight: var(--font-weight-bold);
  font-size: var(--text-lg);
  white-space: nowrap;
}

/* Navigation Desktop */
.header__nav {
  display: none;
}

.header__nav-list {
  display: flex;
  align-items: center;
  gap: var(--spacing-8);
  list-style: none;
}

.header__nav-link {
  font-family: var(--font-display);
  font-weight: var(--font-weight-medium);
  font-size: var(--text-sm);
  color: var(--color-gray-700);
  text-decoration: none;
  padding: var(--spacing-2) 0;
  position: relative;
  transition: color var(--transition-fast);
}

.header__nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--color-secondary);
  transform: scaleX(0);
  transition: transform var(--transition-base);
}

.header__nav-link:hover {
  color: var(--color-primary);
}

.header__nav-link:hover::after {
  transform: scaleX(1);
}

/* Actions */
.header__actions {
  display: none;
  align-items: center;
  gap: var(--spacing-4);
}

.header__phone {
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
  color: var(--color-primary);
  text-decoration: none;
  font-weight: var(--font-weight-medium);
  padding: var(--spacing-2) var(--spacing-4);
  border-radius: var(--radius-md);
  transition: background-color var(--transition-fast);
}

.header__phone:hover {
  background: var(--color-gray-100);
}

.header__phone-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.header__phone-text {
  white-space: nowrap;
}

/* Mobile Toggle */
.header__mobile-toggle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 32px;
  height: 32px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  z-index: var(--z-50);
}

.header__mobile-toggle-line {
  width: 100%;
  height: 2px;
  background: var(--color-primary);
  transition: all var(--transition-base);
  transform-origin: center;
}

.header__mobile-toggle-line--open:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.header__mobile-toggle-line--open:nth-child(2) {
  opacity: 0;
}

.header__mobile-toggle-line--open:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Mobile Menu */
.header__mobile-menu {
  position: fixed;
  top: 72px;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--color-white);
  transform: translateX(100%);
  transition: transform var(--transition-slow);
  overflow-y: auto;
  z-index: var(--z-40);
}

.header__mobile-menu--open {
  transform: translateX(0);
}

.header__mobile-nav {
  padding: var(--spacing-8) var(--spacing-4);
  min-height: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-8);
}

.header__mobile-nav-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
}

.header__mobile-nav-item {
  opacity: 0;
  transform: translateX(20px);
}

.header__mobile-menu--open .header__mobile-nav-item {
  animation: slideInFromRight 0.4s ease-out forwards;
}

@keyframes slideInFromRight {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.header__mobile-nav-link {
  display: block;
  font-family: var(--font-display);
  font-weight: var(--font-weight-semibold);
  font-size: var(--text-xl);
  color: var(--color-primary);
  text-decoration: none;
  padding: var(--spacing-4);
  border-radius: var(--radius-md);
  transition: background-color var(--transition-fast);
}

.header__mobile-nav-link:hover {
  background: var(--color-gray-100);
}

.header__mobile-actions {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
  margin-top: auto;
}

.header__mobile-phone {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-3);
  color: var(--color-primary);
  text-decoration: none;
  font-family: var(--font-display);
  font-weight: var(--font-weight-semibold);
  font-size: var(--text-xl);
  padding: var(--spacing-4);
  border-radius: var(--radius-md);
  background: var(--color-gray-100);
}

.header__mobile-phone svg {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

/* Mobile Backdrop */
.header__mobile-backdrop {
  position: fixed;
  top: 72px;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: var(--z-30);
  animation: fadeIn var(--transition-base) ease-out;
}

/* Desktop breakpoint */
@media (min-width: 1024px) {
  .header__nav {
    display: block;
  }
  
  .header__actions {
    display: flex;
  }
  
  .header__mobile-toggle {
    display: none;
  }
  
  .header__mobile-menu,
  .header__mobile-backdrop {
    display: none;
  }
}

/* Medium screens */
@media (min-width: 768px) and (max-width: 1023px) {
  .header__logo-text {
    display: block;
  }
}

@media (max-width: 767px) {
  .header__logo-text {
    display: none;
  }
  
  .header__logo-icon {
    width: 36px;
    height: 36px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .header,
  .header__inner,
  .header__nav-link,
  .header__mobile-menu {
    transition: none;
  }
  
  .header__mobile-nav-item {
    animation: none;
    opacity: 1;
    transform: none;
  }
}
/*!********************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/Footer/templates/StandardFooter.css ***!
  \********************************************************************************************************************************************************/
.std-footer {
  background: var(--color-gray-900);
  color: var(--color-gray-300);
}

/* CTA Section */
.std-footer__cta {
  background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-primary) 100%);
  padding: var(--spacing-16) 0;
}

.std-footer__cta-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-8);
}

.std-footer__cta-text {
  flex: 1;
}

.std-footer__cta-title {
  color: var(--color-white);
  font-size: var(--text-4xl);
  margin-bottom: var(--spacing-4);
  line-height: var(--line-height-tight);
}

.std-footer__cta-description {
  color: rgba(255, 255, 255, 0.9);
  font-size: var(--text-lg);
  margin: 0;
}

/* Main Footer */
.std-footer__main {
  padding: var(--spacing-16) 0;
}

.std-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: var(--spacing-12);
}

/* Company Info Column */
.std-footer__column--info {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-6);
}

.std-footer__logo {
  display: flex;
  align-items: center;
  gap: var(--spacing-3);
  margin-bottom: var(--spacing-2);
}

.std-footer__logo-icon {
  width: 40px;
  height: 40px;
  color: var(--color-secondary);
  flex-shrink: 0;
}

.std-footer__logo-image {
  max-width: 40px;
  max-height: 40px;
  object-fit: contain;
  flex-shrink: 0;
}

.std-footer__logo-text {
  font-family: var(--font-display);
  font-weight: var(--font-weight-bold);
  font-size: var(--text-lg);
  color: var(--color-white);
}

.std-footer__description {
  color: var(--color-gray-400);
  line-height: var(--line-height-relaxed);
  margin: 0;
}

.std-footer__social {
  display: flex;
  gap: var(--spacing-3);
}

.std-footer__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-md);
  background: var(--color-gray-800);
  color: var(--color-gray-400);
  transition: all var(--transition-base);
}

.std-footer__social-link:hover {
  background: var(--color-secondary);
  color: var(--color-white);
  transform: translateY(-2px);
}

.std-footer__social-link svg {
  width: 20px;
  height: 20px;
}

/* Footer Columns */
.std-footer__column-title {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-white);
  margin-bottom: var(--spacing-6);
}

.std-footer__links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-3);
}

.std-footer__link {
  color: var(--color-gray-400);
  text-decoration: none;
  transition: color var(--transition-fast);
  display: inline-block;
}

.std-footer__link:hover {
  color: var(--color-secondary);
}

/* Contact Column */
.std-footer__contact {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
  margin-bottom: var(--spacing-6);
}

.std-footer__contact-item {
  display: flex;
  gap: var(--spacing-3);
  align-items: flex-start;
}

.std-footer__contact-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: var(--color-secondary);
  margin-top: 2px;
}

.std-footer__contact-link,
.std-footer__contact-text {
  color: var(--color-gray-400);
  text-decoration: none;
  transition: color var(--transition-fast);
  line-height: var(--line-height-relaxed);
}

.std-footer__contact-link:hover {
  color: var(--color-secondary);
}

.std-footer__hours {
  color: var(--color-gray-400);
  font-size: var(--text-sm);
  line-height: var(--line-height-relaxed);
}

.std-footer__hours strong {
  color: var(--color-white);
}

/* Bottom Bar */
.std-footer__bottom {
  border-top: 1px solid var(--color-gray-800);
  padding: var(--spacing-6) 0;
}

.std-footer__bottom-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-6);
}

.std-footer__copyright {
  color: var(--color-gray-500);
  font-size: var(--text-sm);
  margin: 0;
}

.std-footer__legal {
  list-style: none;
  display: flex;
  gap: var(--spacing-6);
}

.std-footer__legal-link {
  color: var(--color-gray-500);
  text-decoration: none;
  font-size: var(--text-sm);
  transition: color var(--transition-fast);
}

.std-footer__legal-link:hover {
  color: var(--color-secondary);
}

/* Responsive */
@media (max-width: 1024px) {
  .std-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-8);
  }

  .std-footer__column--info {
    grid-column: 1 / -1;
  }
}

@media (max-width: 768px) {
  .std-footer__cta {
    padding: var(--spacing-12) 0;
  }

  .std-footer__cta-content {
    flex-direction: column;
    text-align: center;
  }

  .std-footer__cta-title {
    font-size: var(--text-3xl);
  }

  .std-footer__cta-description {
    font-size: var(--text-base);
  }

  .std-footer__main {
    padding: var(--spacing-12) 0;
  }

  .std-footer__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-10);
  }

  .std-footer__column--info {
    grid-column: 1;
  }

  .std-footer__bottom-content {
    flex-direction: column;
    text-align: center;
  }

  .std-footer__legal {
    flex-direction: column;
    gap: var(--spacing-3);
  }
}

@media (prefers-reduced-motion: reduce) {
  .std-footer__social-link:hover {
    transform: none;
  }
}

/*!*******************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/Footer/templates/MinimalFooter.css ***!
  \*******************************************************************************************************************************************************/
.min-footer {
  background: var(--color-gray-100);
  color: var(--color-gray-600);
  padding: var(--spacing-4) 0;
  border-top: 1px solid var(--color-gray-200);
}

.min-footer__content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-6);
}

/* Brand */
.min-footer__brand {
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
  flex-shrink: 0;
}

.min-footer__logo-icon {
  width: 28px;
  height: 28px;
  color: var(--color-primary);
  flex-shrink: 0;
}

.min-footer__logo-image {
  max-width: 28px;
  max-height: 28px;
  object-fit: contain;
  flex-shrink: 0;
}

.min-footer__brand-name {
  font-family: var(--font-display);
  font-weight: var(--font-weight-semibold);
  font-size: var(--text-sm);
  color: var(--color-gray-800);
}

/* Legal Links */
.min-footer__legal {
  list-style: none;
  display: flex;
  align-items: center;
  gap: var(--spacing-4);
  margin: 0;
  padding: 0;
}

.min-footer__legal-link {
  color: var(--color-gray-500);
  text-decoration: none;
  font-size: var(--text-sm);
  transition: color var(--transition-fast);
}

.min-footer__legal-link:hover {
  color: var(--color-primary);
}

/* Copyright */
.min-footer__copyright {
  color: var(--color-gray-500);
  font-size: var(--text-sm);
  margin: 0;
  flex-shrink: 0;
  white-space: nowrap;
}

/* Responsive */
@media (max-width: 1024px) {
  .min-footer__content {
    gap: var(--spacing-4);
  }

  .min-footer__brand-name {
    display: none;
  }
}

@media (max-width: 768px) {
  .min-footer {
    padding: var(--spacing-6) 0;
  }

  .min-footer__content {
    flex-direction: column;
    text-align: center;
    gap: var(--spacing-3);
  }

  .min-footer__brand-name {
    display: inline;
  }

  .min-footer__legal {
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--spacing-3);
  }
}

/*!********************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/Footer/templates/CenteredFooter.css ***!
  \********************************************************************************************************************************************************/
.ctr-footer {
  background: var(--color-gray-900);
  color: var(--color-gray-300);
}

/* CTA Section */
.ctr-footer__cta {
  background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-primary) 100%);
  padding: var(--spacing-16) 0;
}

.ctr-footer__cta-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--spacing-6);
  max-width: 640px;
  margin: 0 auto;
}

.ctr-footer__cta-title {
  color: var(--color-white);
  font-size: var(--text-4xl);
  line-height: var(--line-height-tight);
  margin: 0;
}

.ctr-footer__cta-description {
  color: rgba(255, 255, 255, 0.9);
  font-size: var(--text-lg);
  margin: 0;
}

/* Main Content */
.ctr-footer__main {
  padding: var(--spacing-16) 0;
  text-align: center;
}

/* Brand */
.ctr-footer__brand {
  margin-bottom: var(--spacing-10);
}

.ctr-footer__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-3);
  margin-bottom: var(--spacing-4);
}

.ctr-footer__logo-icon {
  width: 44px;
  height: 44px;
  color: var(--color-secondary);
  flex-shrink: 0;
}

.ctr-footer__logo-image {
  max-width: 44px;
  max-height: 44px;
  object-fit: contain;
  flex-shrink: 0;
}

.ctr-footer__logo-text {
  font-family: var(--font-display);
  font-weight: var(--font-weight-bold);
  font-size: var(--text-xl);
  color: var(--color-white);
}

.ctr-footer__description {
  color: var(--color-gray-400);
  line-height: var(--line-height-relaxed);
  max-width: 480px;
  margin: 0 auto;
}

/* Social Links */
.ctr-footer__social {
  display: flex;
  justify-content: center;
  gap: var(--spacing-3);
  margin-bottom: var(--spacing-12);
}

.ctr-footer__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--color-gray-800);
  color: var(--color-gray-400);
  transition: all var(--transition-base);
}

.ctr-footer__social-link:hover {
  background: var(--color-secondary);
  color: var(--color-white);
  transform: translateY(-2px);
}

.ctr-footer__social-link svg {
  width: 20px;
  height: 20px;
}

/* Columns */
.ctr-footer__columns {
  display: flex;
  justify-content: center;
  gap: var(--spacing-16);
  flex-wrap: wrap;
  padding-bottom: var(--spacing-12);
  border-bottom: 1px solid var(--color-gray-800);
}

.ctr-footer__column {
  text-align: center;
  min-width: 160px;
}

.ctr-footer__column-title {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-white);
  margin-bottom: var(--spacing-4);
}

.ctr-footer__links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
}

.ctr-footer__link {
  color: var(--color-gray-400);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.ctr-footer__link:hover {
  color: var(--color-secondary);
}

/* Bottom Bar */
.ctr-footer__bottom {
  padding: var(--spacing-8) 0;
  text-align: center;
}

.ctr-footer__legal {
  list-style: none;
  display: flex;
  justify-content: center;
  gap: var(--spacing-6);
  margin-bottom: var(--spacing-4);
}

.ctr-footer__legal-link {
  color: var(--color-gray-500);
  text-decoration: none;
  font-size: var(--text-sm);
  transition: color var(--transition-fast);
}

.ctr-footer__legal-link:hover {
  color: var(--color-secondary);
}

.ctr-footer__copyright {
  color: var(--color-gray-500);
  font-size: var(--text-sm);
  margin: 0;
}

/* Responsive */
@media (max-width: 1024px) {
  .ctr-footer__columns {
    gap: var(--spacing-10);
  }
}

@media (max-width: 768px) {
  .ctr-footer__cta {
    padding: var(--spacing-12) 0;
  }

  .ctr-footer__cta-title {
    font-size: var(--text-3xl);
  }

  .ctr-footer__cta-description {
    font-size: var(--text-base);
  }

  .ctr-footer__main {
    padding: var(--spacing-12) 0;
  }

  .ctr-footer__columns {
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-8);
  }

  .ctr-footer__legal {
    flex-direction: column;
    gap: var(--spacing-2);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ctr-footer__social-link:hover {
    transform: none;
  }
}

/*!****************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/Footer/templates/DarkFooter.css ***!
  \****************************************************************************************************************************************************/
.dark-footer {
  background: #0a0a0a;
  color: var(--color-gray-300);
  border-top: 3px solid var(--color-secondary);
}

/* CTA Section */
.dark-footer__cta {
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
  padding: var(--spacing-16) 0;
}

.dark-footer__cta-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-8);
}

.dark-footer__cta-text {
  flex: 1;
}

.dark-footer__cta-title {
  color: var(--color-white);
  font-size: var(--text-4xl);
  margin-bottom: var(--spacing-4);
  line-height: var(--line-height-tight);
}

.dark-footer__cta-description {
  color: rgba(255, 255, 255, 0.8);
  font-size: var(--text-lg);
  margin: 0;
}

/* Main Footer */
.dark-footer__main {
  padding: var(--spacing-16) 0;
}

.dark-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: var(--spacing-12);
}

/* Company Info Column */
.dark-footer__column--info {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-6);
}

.dark-footer__logo {
  display: flex;
  align-items: center;
  gap: var(--spacing-3);
  margin-bottom: var(--spacing-2);
}

.dark-footer__logo-icon {
  width: 40px;
  height: 40px;
  color: var(--color-secondary);
  flex-shrink: 0;
}

.dark-footer__logo-image {
  max-width: 40px;
  max-height: 40px;
  object-fit: contain;
  flex-shrink: 0;
}

.dark-footer__logo-text {
  font-family: var(--font-display);
  font-weight: var(--font-weight-bold);
  font-size: var(--text-lg);
  color: var(--color-white);
}

.dark-footer__description {
  color: var(--color-gray-400);
  line-height: var(--line-height-relaxed);
  margin: 0;
}

/* Prominent Social Icons */
.dark-footer__social {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-3);
}

.dark-footer__social-link {
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
  padding: var(--spacing-2) var(--spacing-4);
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--color-gray-300);
  text-decoration: none;
  font-size: var(--text-sm);
  transition: all var(--transition-base);
}

.dark-footer__social-link:hover {
  background: var(--color-secondary);
  border-color: var(--color-secondary);
  color: var(--color-white);
  transform: translateY(-2px);
}

.dark-footer__social-link svg {
  width: 18px;
  height: 18px;
}

.dark-footer__social-label {
  font-weight: var(--font-weight-medium);
}

/* Footer Columns */
.dark-footer__column-title {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-white);
  margin-bottom: var(--spacing-6);
  position: relative;
  padding-bottom: var(--spacing-3);
}

.dark-footer__column-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 32px;
  height: 2px;
  background: var(--color-secondary);
}

.dark-footer__links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-3);
}

.dark-footer__link {
  color: var(--color-gray-400);
  text-decoration: none;
  transition: color var(--transition-fast);
  display: inline-block;
}

.dark-footer__link:hover {
  color: var(--color-secondary);
}

/* Contact Column */
.dark-footer__contact {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
  margin-bottom: var(--spacing-6);
}

.dark-footer__contact-item {
  display: flex;
  gap: var(--spacing-3);
  align-items: flex-start;
}

.dark-footer__contact-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: var(--color-secondary);
  margin-top: 2px;
}

.dark-footer__contact-link,
.dark-footer__contact-text {
  color: var(--color-gray-400);
  text-decoration: none;
  transition: color var(--transition-fast);
  line-height: var(--line-height-relaxed);
}

.dark-footer__contact-link:hover {
  color: var(--color-secondary);
}

.dark-footer__hours {
  color: var(--color-gray-400);
  font-size: var(--text-sm);
  line-height: var(--line-height-relaxed);
}

.dark-footer__hours strong {
  color: var(--color-white);
}

/* Bottom Bar */
.dark-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: var(--spacing-6) 0;
}

.dark-footer__bottom-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-6);
}

.dark-footer__copyright {
  color: var(--color-gray-500);
  font-size: var(--text-sm);
  margin: 0;
}

.dark-footer__legal {
  list-style: none;
  display: flex;
  gap: var(--spacing-6);
}

.dark-footer__legal-link {
  color: var(--color-gray-500);
  text-decoration: none;
  font-size: var(--text-sm);
  transition: color var(--transition-fast);
}

.dark-footer__legal-link:hover {
  color: var(--color-secondary);
}

/* Responsive */
@media (max-width: 1024px) {
  .dark-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-8);
  }

  .dark-footer__column--info {
    grid-column: 1 / -1;
  }
}

@media (max-width: 768px) {
  .dark-footer__cta {
    padding: var(--spacing-12) 0;
  }

  .dark-footer__cta-content {
    flex-direction: column;
    text-align: center;
  }

  .dark-footer__cta-title {
    font-size: var(--text-3xl);
  }

  .dark-footer__cta-description {
    font-size: var(--text-base);
  }

  .dark-footer__main {
    padding: var(--spacing-12) 0;
  }

  .dark-footer__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-10);
  }

  .dark-footer__column--info {
    grid-column: 1;
  }

  .dark-footer__social {
    justify-content: center;
  }

  .dark-footer__column-title::after {
    left: 50%;
    transform: translateX(-50%);
  }

  .dark-footer__bottom-content {
    flex-direction: column;
    text-align: center;
  }

  .dark-footer__legal {
    flex-direction: column;
    gap: var(--spacing-3);
  }
}

@media (prefers-reduced-motion: reduce) {
  .dark-footer__social-link:hover {
    transform: none;
  }
}

/*!********************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/Footer/templates/ExpandedFooter.css ***!
  \********************************************************************************************************************************************************/
.exp-footer {
  background: var(--color-gray-900);
  color: var(--color-gray-300);
}

/* CTA Section - Full Width Large Text */
.exp-footer__cta {
  background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-primary) 100%);
  padding: var(--spacing-20, 5rem) 0;
}

.exp-footer__cta-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--spacing-8);
  max-width: 800px;
  margin: 0 auto;
}

.exp-footer__cta-title {
  color: var(--color-white);
  font-size: var(--text-5xl, 3rem);
  line-height: var(--line-height-tight);
  margin: 0;
}

.exp-footer__cta-description {
  color: rgba(255, 255, 255, 0.9);
  font-size: var(--text-xl);
  margin: 0;
  max-width: 600px;
}

/* Main Footer - Spacious Grid */
.exp-footer__main {
  padding: var(--spacing-20, 5rem) 0;
}

.exp-footer__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--spacing-16);
}

/* Company Info Column */
.exp-footer__column--info {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-6);
}

.exp-footer__logo {
  display: flex;
  align-items: center;
  gap: var(--spacing-3);
  margin-bottom: var(--spacing-4);
}

.exp-footer__logo-icon {
  width: 48px;
  height: 48px;
  color: var(--color-secondary);
  flex-shrink: 0;
}

.exp-footer__logo-image {
  max-width: 48px;
  max-height: 48px;
  object-fit: contain;
  flex-shrink: 0;
}

.exp-footer__logo-text {
  font-family: var(--font-display);
  font-weight: var(--font-weight-bold);
  font-size: var(--text-xl);
  color: var(--color-white);
}

.exp-footer__description {
  color: var(--color-gray-400);
  line-height: var(--line-height-relaxed);
  margin: 0;
  font-size: var(--text-base);
}

/* Footer Columns */
.exp-footer__column-title {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-white);
  margin-bottom: var(--spacing-8);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: var(--text-sm);
}

.exp-footer__links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
}

.exp-footer__link {
  color: var(--color-gray-400);
  text-decoration: none;
  transition: color var(--transition-fast);
  display: inline-block;
  font-size: var(--text-base);
}

.exp-footer__link:hover {
  color: var(--color-secondary);
}

/* Contact Column */
.exp-footer__contact {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-5);
  margin-bottom: var(--spacing-8);
}

.exp-footer__contact-item {
  display: flex;
  gap: var(--spacing-3);
  align-items: flex-start;
}

.exp-footer__contact-icon {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  color: var(--color-secondary);
  margin-top: 2px;
}

.exp-footer__contact-link,
.exp-footer__contact-text {
  color: var(--color-gray-400);
  text-decoration: none;
  transition: color var(--transition-fast);
  line-height: var(--line-height-relaxed);
}

.exp-footer__contact-link:hover {
  color: var(--color-secondary);
}

.exp-footer__hours {
  color: var(--color-gray-400);
  font-size: var(--text-sm);
  line-height: var(--line-height-relaxed);
}

.exp-footer__hours strong {
  color: var(--color-white);
}

/* Social Media Bar */
.exp-footer__social-bar {
  background: var(--color-gray-800);
  padding: var(--spacing-6) 0;
}

.exp-footer__social-content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-8);
}

.exp-footer__social-label {
  color: var(--color-gray-400);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  flex-shrink: 0;
}

.exp-footer__social-links {
  display: flex;
  align-items: center;
  gap: var(--spacing-4);
  flex-wrap: wrap;
  justify-content: center;
}

.exp-footer__social-link {
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
  color: var(--color-gray-400);
  text-decoration: none;
  padding: var(--spacing-2) var(--spacing-3);
  border-radius: var(--radius-md);
  transition: all var(--transition-base);
}

.exp-footer__social-link:hover {
  color: var(--color-white);
  background: rgba(255, 255, 255, 0.08);
  transform: translateY(-1px);
}

.exp-footer__social-link svg {
  width: 22px;
  height: 22px;
}

.exp-footer__social-name {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
}

/* Bottom Bar */
.exp-footer__bottom {
  border-top: 1px solid var(--color-gray-800);
  padding: var(--spacing-8) 0;
}

.exp-footer__bottom-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-6);
}

.exp-footer__copyright {
  color: var(--color-gray-500);
  font-size: var(--text-sm);
  margin: 0;
}

.exp-footer__legal {
  list-style: none;
  display: flex;
  gap: var(--spacing-6);
}

.exp-footer__legal-link {
  color: var(--color-gray-500);
  text-decoration: none;
  font-size: var(--text-sm);
  transition: color var(--transition-fast);
}

.exp-footer__legal-link:hover {
  color: var(--color-secondary);
}

/* Responsive */
@media (max-width: 1024px) {
  .exp-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-10);
  }

  .exp-footer__column--info {
    grid-column: 1 / -1;
  }

  .exp-footer__cta-title {
    font-size: var(--text-4xl);
  }
}

@media (max-width: 768px) {
  .exp-footer__cta {
    padding: var(--spacing-14, 3.5rem) 0;
  }

  .exp-footer__cta-title {
    font-size: var(--text-3xl);
  }

  .exp-footer__cta-description {
    font-size: var(--text-base);
  }

  .exp-footer__main {
    padding: var(--spacing-12) 0;
  }

  .exp-footer__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-10);
  }

  .exp-footer__column--info {
    grid-column: 1;
  }

  .exp-footer__social-content {
    flex-direction: column;
    gap: var(--spacing-4);
  }

  .exp-footer__bottom-content {
    flex-direction: column;
    text-align: center;
  }

  .exp-footer__legal {
    flex-direction: column;
    gap: var(--spacing-3);
  }
}

@media (prefers-reduced-motion: reduce) {
  .exp-footer__social-link:hover {
    transform: none;
  }
}

/*!**************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/Footer/Footer.css ***!
  \**************************************************************************************************************************************/
.footer {
  background: var(--color-gray-900);
  color: var(--color-gray-300);
}

/* CTA Section */
.footer__cta-section {
  background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-primary) 100%);
  padding: var(--spacing-16) 0;
}

.footer__cta-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-8);
}

.footer__cta-text {
  flex: 1;
}

.footer__cta-title {
  color: var(--color-white);
  font-size: var(--text-4xl);
  margin-bottom: var(--spacing-4);
  line-height: var(--line-height-tight);
}

.footer__cta-description {
  color: rgba(255, 255, 255, 0.9);
  font-size: var(--text-lg);
  margin: 0;
}

/* Main Footer */
.footer__main {
  padding: var(--spacing-16) 0;
}

.footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: var(--spacing-12);
}

/* Company Info Column */
.footer__column--info {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-6);
}

.footer__logo {
  display: flex;
  align-items: center;
  gap: var(--spacing-3);
  margin-bottom: var(--spacing-2);
}

.footer__logo-icon {
  width: 40px;
  height: 40px;
  color: var(--color-secondary);
  flex-shrink: 0;
}

.footer__logo-image {
  max-width: 40px;
  max-height: 40px;
  object-fit: contain;
  flex-shrink: 0;
}

.footer__logo-text {
  font-family: var(--font-display);
  font-weight: var(--font-weight-bold);
  font-size: var(--text-lg);
  color: var(--color-white);
}

.footer__description {
  color: var(--color-gray-400);
  line-height: var(--line-height-relaxed);
  margin: 0;
}

.footer__social {
  display: flex;
  gap: var(--spacing-3);
}

.footer__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-md);
  background: var(--color-gray-800);
  color: var(--color-gray-400);
  transition: all var(--transition-base);
}

.footer__social-link:hover {
  background: var(--color-secondary);
  color: var(--color-white);
  transform: translateY(-2px);
}

.footer__social-link svg {
  width: 20px;
  height: 20px;
}

/* Footer Columns */
.footer__column-title {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-white);
  margin-bottom: var(--spacing-6);
}

.footer__links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-3);
}

.footer__link {
  color: var(--color-gray-400);
  text-decoration: none;
  transition: color var(--transition-fast);
  display: inline-block;
}

.footer__link:hover {
  color: var(--color-secondary);
}

/* Contact Column */
.footer__contact {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
  margin-bottom: var(--spacing-6);
}

.footer__contact-item {
  display: flex;
  gap: var(--spacing-3);
  align-items: flex-start;
}

.footer__contact-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: var(--color-secondary);
  margin-top: 2px;
}

.footer__contact-link,
.footer__contact-text {
  color: var(--color-gray-400);
  text-decoration: none;
  transition: color var(--transition-fast);
  line-height: var(--line-height-relaxed);
}

.footer__contact-link:hover {
  color: var(--color-secondary);
}

.footer__hours {
  color: var(--color-gray-400);
  font-size: var(--text-sm);
  line-height: var(--line-height-relaxed);
}

.footer__hours strong {
  color: var(--color-white);
}

/* Bottom Bar */
.footer__bottom {
  border-top: 1px solid var(--color-gray-800);
  padding: var(--spacing-6) 0;
}

.footer__bottom-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-6);
}

.footer__copyright {
  color: var(--color-gray-500);
  font-size: var(--text-sm);
  margin: 0;
}

.footer__legal {
  list-style: none;
  display: flex;
  gap: var(--spacing-6);
}

.footer__legal-link {
  color: var(--color-gray-500);
  text-decoration: none;
  font-size: var(--text-sm);
  transition: color var(--transition-fast);
}

.footer__legal-link:hover {
  color: var(--color-secondary);
}

/* Responsive */
@media (max-width: 1024px) {
  .footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-8);
  }
  
  .footer__column--info {
    grid-column: 1 / -1;
  }
}

@media (max-width: 768px) {
  .footer__cta-section {
    padding: var(--spacing-12) 0;
  }
  
  .footer__cta-content {
    flex-direction: column;
    text-align: center;
  }
  
  .footer__cta-title {
    font-size: var(--text-3xl);
  }
  
  .footer__cta-description {
    font-size: var(--text-base);
  }
  
  .footer__main {
    padding: var(--spacing-12) 0;
  }
  
  .footer__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-10);
  }
  
  .footer__column--info {
    grid-column: 1;
  }
  
  .footer__bottom-content {
    flex-direction: column;
    text-align: center;
  }
  
  .footer__legal {
    flex-direction: column;
    gap: var(--spacing-3);
  }
}

@media (prefers-reduced-motion: reduce) {
  .footer__social-link:hover {
    transform: none;
  }
}
/*!**********************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/Hero/Hero.css ***!
  \**********************************************************************************************************************************/
.hero {
  position: relative;
  min-height: 90vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding-top: 72px; /* Header height */
}

.hero__background {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero__background-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(15, 23, 42, 0.95) 0%,
    rgba(15, 23, 42, 0.85) 50%,
    rgba(56, 189, 248, 0.15) 100%
  );
  z-index: 1;
}

.hero__background-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: var(--spacing-12) 0;
}

.hero__text {
  max-width: 800px;
}

.hero__subtitle {
  display: inline-block;
  font-family: var(--font-display);
  font-weight: var(--font-weight-semibold);
  font-size: var(--text-sm);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-secondary);
  margin-bottom: var(--spacing-4);
  padding: var(--spacing-2) var(--spacing-4);
  background: rgba(56, 189, 248, 0.1);
  border-radius: var(--radius-full);
  border: 1px solid rgba(56, 189, 248, 0.3);
}

.hero__title {
  font-size: var(--text-6xl);
  font-weight: var(--font-weight-extrabold);
  line-height: 1.1;
  color: var(--color-white);
  margin-bottom: var(--spacing-8);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.hero__title br {
  display: block;
}

.hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-4);
  margin-bottom: var(--spacing-12);
}

/* Stats */
.hero__stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: var(--spacing-8);
  padding-top: var(--spacing-8);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.hero__stat {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
}

.hero__stat-value {
  font-family: var(--font-display);
  font-size: var(--text-4xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-secondary);
  line-height: 1;
}

.hero__stat-label {
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.7);
  line-height: var(--line-height-relaxed);
}

/* Scroll Indicator */
.hero__scroll-indicator {
  position: absolute;
  bottom: var(--spacing-8);
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  animation: bounce 2s infinite;
}

.hero__scroll-icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--color-white);
}

.hero__scroll-icon svg {
  width: 24px;
  height: 24px;
}

@keyframes bounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}

/* Responsive */
@media (max-width: 1024px) {
  .hero {
    min-height: 80vh;
  }
  
  .hero__title {
    font-size: var(--text-5xl);
  }
}

@media (max-width: 768px) {
  .hero {
    min-height: auto;
    padding-top: 72px;
  }
  
  .hero__content {
    padding: var(--spacing-16) 0 var(--spacing-12) 0;
  }
  
  .hero__title {
    font-size: var(--text-4xl);
    margin-bottom: var(--spacing-6);
  }
  
  .hero__cta {
    flex-direction: column;
    gap: var(--spacing-3);
  }
  
  .hero__stats {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-6);
  }
  
  .hero__stat-value {
    font-size: var(--text-3xl);
  }
  
  .hero__scroll-indicator {
    display: none;
  }
}

@media (max-width: 480px) {
  .hero__title {
    font-size: var(--text-3xl);
  }
  
  .hero__stats {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero__scroll-indicator {
    animation: none;
  }
}
/*!************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/ServiceCard/ServiceCard.css ***!
  \************************************************************************************************************************************************/
.service-card {
  display: flex;
  flex-direction: column;
  background: var(--color-white);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  transition: all var(--transition-base);
  height: 100%;
}

.service-card:hover {
  box-shadow: var(--shadow-xl);
}

.service-card__image {
  position: relative;
  width: 100%;
  height: 200px;
  overflow: hidden;
}

.service-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slower);
}

.service-card:hover .service-card__image img {
  transform: scale(1.05);
}

.service-card__image-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(15, 23, 42, 0.4) 100%
  );
}

.service-card__content {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
  padding: var(--spacing-6);
  flex: 1;
}

.service-card__icon {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
  color: var(--color-white);
  flex-shrink: 0;
}

.service-card__icon svg {
  width: 32px;
  height: 32px;
}

.service-card__title {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
  line-height: var(--line-height-tight);
  margin: 0;
}

.service-card__description {
  color: var(--color-gray-600);
  line-height: var(--line-height-relaxed);
  margin: 0;
  flex: 1;
}

.service-card__features {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
  margin: 0;
  padding: 0;
}

.service-card__feature {
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-2);
  font-size: var(--text-sm);
  color: var(--color-gray-700);
  line-height: var(--line-height-relaxed);
}

.service-card__feature-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: var(--color-accent);
  margin-top: 2px;
}

.service-card__cta {
  margin-top: auto;
}

/* Responsive */
@media (max-width: 768px) {
  .service-card__image {
    height: 180px;
  }
  
  .service-card__content {
    padding: var(--spacing-5);
  }
  
  .service-card__title {
    font-size: var(--text-xl);
  }
}

@media (prefers-reduced-motion: reduce) {
  .service-card__image img {
    transition: none;
  }
  
  .service-card:hover .service-card__image img {
    transform: none;
  }
}
/*!************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/pages/Home.css ***!
  \************************************************************************************************************************/
.home {
  min-height: 100vh;
}

/* Section Headers */
.home__section-header {
  text-align: center;
  max-width: 700px;
  margin: 0 auto var(--spacing-12) auto;
}

.home__section-title {
  font-size: var(--text-4xl);
  color: var(--color-primary);
  margin-bottom: var(--spacing-4);
}

.home__section-description {
  font-size: var(--text-lg);
  color: var(--color-gray-600);
  margin: 0;
}

/* Proof Section */
.home__proof {
  background: var(--color-gray-50);
  padding: var(--spacing-12) 0;
}

.home__proof-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--spacing-6);
}

.home__proof-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-4);
  padding: var(--spacing-6);
  background: var(--color-white);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}

.home__proof-icon {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, var(--color-secondary), var(--color-accent));
  color: var(--color-white);
}

.home__proof-icon svg {
  width: 24px;
  height: 24px;
}

.home__proof-value {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
  line-height: 1;
  margin-bottom: var(--spacing-1);
}

.home__proof-label {
  font-size: var(--text-sm);
  color: var(--color-gray-600);
}

/* Services Section */
.home__services {
  background: var(--color-white);
}

.home__services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--spacing-8);
  margin-bottom: var(--spacing-12);
}

.home__services-cta {
  display: flex;
  justify-content: center;
}

/* Process Section */
.home__process {
  background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 100%);
  color: var(--color-white);
}

.home__process .home__section-title {
  color: var(--color-white);
}

.home__process .home__section-description {
  color: rgba(255, 255, 255, 0.9);
}

.home__process-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--spacing-8);
}

.home__process-step {
  padding: var(--spacing-8);
  border-radius: var(--radius-xl);
  background: rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: all var(--transition-base);
}

.home__process-step:hover {
  background: rgba(255, 255, 255, 0.1);
  transform: translateY(-4px);
}

.home__process-number {
  font-family: var(--font-display);
  font-size: var(--text-6xl);
  font-weight: var(--font-weight-extrabold);
  color: var(--color-secondary);
  line-height: 1;
  margin-bottom: var(--spacing-4);
  opacity: 0.8;
}

.home__process-title {
  font-size: var(--text-2xl);
  color: var(--color-white);
  margin-bottom: var(--spacing-3);
}

.home__process-description {
  color: rgba(255, 255, 255, 0.8);
  line-height: var(--line-height-relaxed);
  margin: 0;
}

/* Testimonials Section */
.home__testimonials {
  background: var(--color-gray-50);
}

.home__testimonials-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--spacing-8);
}

.home__testimonial {
  padding: var(--spacing-8);
  background: var(--color-white);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-md);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
}

.home__testimonial-rating {
  display: flex;
  gap: var(--spacing-1);
  color: #FDB022;
}

.home__testimonial-rating svg {
  width: 20px;
  height: 20px;
}

.home__testimonial-text {
  font-size: var(--text-lg);
  color: var(--color-gray-700);
  line-height: var(--line-height-relaxed);
  margin: 0;
  flex: 1;
}

.home__testimonial-author {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-1);
  padding-top: var(--spacing-4);
  border-top: 1px solid var(--color-gray-200);
}

.home__testimonial-author strong {
  font-family: var(--font-display);
  font-weight: var(--font-weight-semibold);
  color: var(--color-primary);
}

.home__testimonial-author span {
  font-size: var(--text-sm);
  color: var(--color-gray-600);
}

/* CTA Section */
.home__cta {
  background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-primary) 100%);
}

.home__cta-content {
  text-align: center;
  max-width: 700px;
  margin: 0 auto;
}

.home__cta-title {
  font-size: var(--text-4xl);
  color: var(--color-white);
  margin-bottom: var(--spacing-4);
}

.home__cta-description {
  font-size: var(--text-xl);
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: var(--spacing-8);
}

.home__cta-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--spacing-4);
}

/* Responsive */
@media (max-width: 1024px) {
  .home__proof-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  
  .home__services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .home__section-title {
    font-size: var(--text-3xl);
  }
  
  .home__section-description {
    font-size: var(--text-base);
  }
  
  .home__proof {
    padding: var(--spacing-8) 0;
  }
  
  .home__proof-grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-4);
  }
  
  .home__services-grid {
    grid-template-columns: 1fr;
  }
  
  .home__process-grid {
    grid-template-columns: 1fr;
  }
  
  .home__testimonials-grid {
    grid-template-columns: 1fr;
  }
  
  .home__cta-title {
    font-size: var(--text-3xl);
  }
  
  .home__cta-description {
    font-size: var(--text-lg);
  }
  
  .home__cta-buttons {
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home__process-step:hover {
    transform: none;
  }
}
/*!****************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/pages/Services.css ***!
  \****************************************************************************************************************************/
.services-page {
  min-height: 100vh;
}

.services-hero {
  background: linear-gradient(
    135deg,
    var(--color-primary) 0%,
    var(--color-primary-light) 100%
  );
  padding: var(--spacing-20) 0 var(--spacing-12) 0;
  margin-top: 72px;
  text-align: center;
  color: var(--color-white);
}

.services-hero__content {
  max-width: 800px;
  margin: 0 auto;
}

.services-hero__title {
  font-size: var(--text-5xl);
  color: var(--color-white);
  margin-bottom: var(--spacing-4);
  line-height: var(--line-height-tight);
}

.services-hero__description {
  font-size: var(--text-xl);
  color: rgba(255, 255, 255, 0.9);
  margin: 0;
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: var(--spacing-8);
  margin-bottom: var(--spacing-16);
}

.services-cta {
  text-align: center;
  padding: var(--spacing-12);
  background: linear-gradient(
    135deg,
    var(--color-gray-50) 0%,
    var(--color-gray-100) 100%
  );
  border-radius: var(--radius-2xl);
}

.services-cta__content h2 {
  font-size: var(--text-3xl);
  color: var(--color-primary);
  margin-bottom: var(--spacing-3);
}

.services-cta__content p {
  font-size: var(--text-lg);
  color: var(--color-gray-600);
  margin-bottom: var(--spacing-6);
}

@media (max-width: 768px) {
  .services-hero {
    padding: var(--spacing-16) 0 var(--spacing-8) 0;
  }

  .services-hero__title {
    font-size: var(--text-3xl);
  }

  .services-hero__description {
    font-size: var(--text-base);
  }

  .services-grid {
    grid-template-columns: 1fr;
  }
}

/*!*********************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/pages/ServiceDetail.css ***!
  \*********************************************************************************************************************************/
/* ===========================================
   SERVICE DETAIL PAGE
   =========================================== */

.service-detail-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.service-detail-page main {
  flex: 1;
}

/* Loading & Error States */
.service-detail__loading,
.service-detail__error {
  text-align: center;
  padding: 4rem 2rem;
}

.service-detail__error h1 {
  font-size: 2rem;
  margin-bottom: 1rem;
}

.service-detail__error p {
  color: var(--text-light);
  margin-bottom: 2rem;
}

/* Hero */
.service-detail__hero {
  background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark, #1a365d) 100%);
  color: white;
  padding: 3rem 0;
  padding-top: calc(72px + 3rem); /* Account for fixed header */
}

.service-detail__breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  margin-bottom: 1.5rem;
  opacity: 0.9;
}

.service-detail__breadcrumb a {
  color: white;
  text-decoration: none;
}

.service-detail__breadcrumb a:hover {
  text-decoration: underline;
}

.service-detail__breadcrumb span:not(:last-child) {
  opacity: 0.7;
}

.service-detail__title {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.service-detail__excerpt {
  font-size: 1.25rem;
  opacity: 0.9;
  max-width: 700px;
}

/* Layout */
.service-detail__layout {
  display: grid;
  grid-template-columns: 1fr 350px;
  gap: 3rem;
  align-items: start;
}

@media (max-width: 968px) {
  .service-detail__layout {
    grid-template-columns: 1fr;
  }

  .service-detail__sidebar {
    order: -1;
  }
}

/* Content */
.service-detail__content {
  min-width: 0;
}

.service-detail__image {
  width: 100%;
  height: auto;
  border-radius: 1rem;
  margin-bottom: 2rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.service-detail__text {
  font-size: 1.125rem;
  line-height: 1.8;
  color: var(--text-color);
}

.service-detail__text p {
  margin-bottom: 1.5rem;
}

.service-detail__text h2 {
  font-size: 1.75rem;
  margin-top: 2.5rem;
  margin-bottom: 1rem;
}

.service-detail__text h3 {
  font-size: 1.5rem;
  margin-top: 2rem;
  margin-bottom: 0.75rem;
}

.service-detail__text ul,
.service-detail__text ol {
  margin-bottom: 1.5rem;
  padding-left: 1.5rem;
}

.service-detail__text li {
  margin-bottom: 0.5rem;
}

/* Sidebar */
.service-detail__sidebar {
  position: sticky;
  top: 2rem;
}

.service-detail__cta-card,
.service-detail__contact-card {
  background: white;
  border-radius: 1rem;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.service-detail__cta-card {
  background: linear-gradient(135deg, var(--secondary-color) 0%, var(--secondary-dark, #c2410c) 100%);
  color: white;
}

.service-detail__cta-card h3,
.service-detail__contact-card h3 {
  font-size: 1.25rem;
  margin-bottom: 0.5rem;
}

.service-detail__cta-card p,
.service-detail__contact-card p {
  opacity: 0.9;
  margin-bottom: 1rem;
  font-size: 0.95rem;
}

.service-detail__phone {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--primary-color);
  text-decoration: none;
  margin-top: 0.5rem;
}

.service-detail__phone:hover {
  color: var(--primary-dark, #1a365d);
}

.service-detail__phone svg {
  width: 24px;
  height: 24px;
}

/* Bottom CTA */
.service-detail__bottom-cta {
  background: var(--bg-light, #f8fafc);
  padding: 4rem 0;
  text-align: center;
}

.service-detail__bottom-cta h2 {
  font-size: 2rem;
  margin-bottom: 0.75rem;
}

.service-detail__bottom-cta p {
  color: var(--text-light);
  margin-bottom: 2rem;
  font-size: 1.125rem;
}

.service-detail__bottom-buttons {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

/* Responsive */
@media (max-width: 768px) {
  .service-detail__hero {
    padding: 2rem 0;
  }

  .service-detail__title {
    font-size: 1.75rem;
  }

  .service-detail__excerpt {
    font-size: 1rem;
  }

  .service-detail__text {
    font-size: 1rem;
  }

  .service-detail__bottom-cta {
    padding: 3rem 0;
  }

  .service-detail__bottom-cta h2 {
    font-size: 1.5rem;
  }
}

/*!****************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/blocks/HeroBlock/HeroBlock.css ***!
  \****************************************************************************************************************************************/
.hero-block {
  min-height: 80vh;
  display: flex;
  align-items: center;
  position: relative;
  background-color: var(--color-primary, #0d6efd);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: white;
}

.hero-block--with-image {
  background-color: #1a1a2e;
}

.hero-block__overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #000;
  pointer-events: none;
}

.hero-block__container {
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  padding: 4rem 1.5rem;
  position: relative;
  z-index: 1;
}

.hero-block__content {
  max-width: 800px;
}

/* Alignment variations */
.hero-block--align-center .hero-block__content {
  margin: 0 auto;
  text-align: center;
}

.hero-block--align-left .hero-block__content {
  margin-right: auto;
  text-align: left;
}

.hero-block--align-right .hero-block__content {
  margin-left: auto;
  text-align: right;
}

.hero-block__title {
  font-size: 3.5rem;
  font-weight: 800;
  line-height: 1.15;
  margin-bottom: 1.5rem;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.hero-block__subtitle {
  font-size: 1.25rem;
  line-height: 1.7;
  opacity: 0.95;
  margin-bottom: 2.5rem;
}

.hero-block__buttons {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.hero-block--align-center .hero-block__buttons {
  justify-content: center;
}

.hero-block--align-right .hero-block__buttons {
  justify-content: flex-end;
}

.hero-block__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 2.5rem;
  font-size: 1.1rem;
  font-weight: 600;
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.3s ease;
}

.hero-block__button--primary {
  background-color: white;
  color: var(--color-primary, #0d6efd);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
}

.hero-block__button--primary:hover {
  background-color: #f8f9fa;
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
}

.hero-block__button--secondary {
  background-color: transparent;
  color: white;
  border: 2px solid rgba(255, 255, 255, 0.8);
}

.hero-block__button--secondary:hover {
  background-color: white;
  color: var(--color-primary, #0d6efd);
  border-color: white;
}

/* Responsive */
@media (max-width: 992px) {
  .hero-block {
    min-height: 70vh;
  }

  .hero-block__title {
    font-size: 2.75rem;
  }

  .hero-block__subtitle {
    font-size: 1.125rem;
  }
}

@media (max-width: 768px) {
  .hero-block {
    min-height: 60vh;
  }

  .hero-block__container {
    padding: 3rem 1.25rem;
  }

  .hero-block__title {
    font-size: 2rem;
  }

  .hero-block__subtitle {
    font-size: 1rem;
  }

  .hero-block__buttons {
    flex-direction: column;
  }

  .hero-block__button {
    width: 100%;
    padding: 0.875rem 1.5rem;
  }

  .hero-block--align-right .hero-block__content,
  .hero-block--align-left .hero-block__content {
    text-align: center;
  }

  .hero-block--align-right .hero-block__buttons,
  .hero-block--align-left .hero-block__buttons {
    justify-content: center;
  }
}

/*!************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/blocks/ServicesBlock/ServicesBlock.css ***!
  \************************************************************************************************************************************************/
.services-block {
  padding: 4rem 0;
  background-color: var(--bg-light, #f8f9fa);
}

.services-block__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.services-block__header {
  text-align: center;
  margin-bottom: 3rem;
}

.services-block__title {
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--color-heading, #1a1a2e);
  margin-bottom: 1rem;
}

.services-block__subtitle {
  font-size: 1.125rem;
  color: var(--color-text-muted, #6c757d);
  max-width: 600px;
  margin: 0 auto;
}

.services-block__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
}

.services-block__item {
  background: white;
  border-radius: 12px;
  padding: 2rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.services-block__item:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.1);
}

.services-block__icon {
  width: 60px;
  height: 60px;
  border-radius: 12px;
  background: var(--color-primary-light, #e3f2fd);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.5rem;
  font-size: 1.5rem;
  color: #ffffff;
}

.services-block__image {
  margin-bottom: 1.5rem;
  border-radius: 8px;
  overflow: hidden;
}

.services-block__image img {
  width: 100%;
  height: 180px;
  object-fit: cover;
}

.services-block__item-title {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--color-heading, #1a1a2e);
  margin-bottom: 0.75rem;
}

.services-block__item-description {
  font-size: 0.95rem;
  color: var(--color-text-muted, #6c757d);
  line-height: 1.6;
  margin-bottom: 1rem;
}

.services-block__link {
  color: var(--color-primary, #0d6efd);
  text-decoration: none;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: gap 0.2s ease;
}

.services-block__link:hover {
  gap: 0.75rem;
}

.services-block__link::after {
  content: '\2192';
}

@media (max-width: 768px) {
  .services-block {
    padding: 3rem 0;
  }

  .services-block__title {
    font-size: 2rem;
  }

  .services-block__grid {
    grid-template-columns: 1fr;
  }
}

/*!**************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/blocks/CTABlock/CTABlock.css ***!
  \**************************************************************************************************************************************/
.cta-block {
  padding: 5rem 0;
  background-color: var(--color-primary, #0d6efd);
  color: white;
  position: relative;
}

.cta-block--with-image {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.cta-block__overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
}

.cta-block__container {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 1.5rem;
  position: relative;
  z-index: 1;
}

.cta-block__content {
  text-align: center;
}

.cta-block__title {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 1.25rem;
  line-height: 1.2;
}

.cta-block__description {
  font-size: 1.125rem;
  opacity: 0.9;
  max-width: 650px;
  margin: 0 auto 2rem;
  line-height: 1.7;
}

.cta-block__buttons {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.cta-block__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 2rem;
  font-size: 1rem;
  font-weight: 600;
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.3s ease;
  min-width: 180px;
}

.cta-block__button--primary {
  background-color: white;
  color: var(--color-primary, #0d6efd);
}

.cta-block__button--primary:hover {
  background-color: #f8f9fa;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

.cta-block__button--secondary {
  background-color: transparent;
  color: white;
  border: 2px solid white;
}

.cta-block__button--secondary:hover {
  background-color: white;
  color: var(--color-primary, #0d6efd);
}

/* Variant: Centered (default) */
.cta-block--default .cta-block__content {
  text-align: center;
}

/* Variant: Left aligned */
.cta-block--left .cta-block__content {
  text-align: left;
}

.cta-block--left .cta-block__buttons {
  justify-content: flex-start;
}

/* Variant: Split (title left, button right) */
.cta-block--split .cta-block__container {
  max-width: 1200px;
}

.cta-block--split .cta-block__content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-align: left;
  gap: 2rem;
}

.cta-block--split .cta-block__description {
  margin: 0.5rem 0 0;
}

.cta-block--split .cta-block__buttons {
  flex-shrink: 0;
}

/* Variant: Minimal */
.cta-block--minimal {
  background-color: transparent;
  color: var(--color-heading, #1a1a2e);
  border-top: 1px solid #e9ecef;
  border-bottom: 1px solid #e9ecef;
  padding: 3rem 0;
}

.cta-block--minimal .cta-block__button--primary {
  background-color: var(--color-primary, #0d6efd);
  color: white;
}

.cta-block--minimal .cta-block__button--secondary {
  border-color: var(--color-primary, #0d6efd);
  color: var(--color-primary, #0d6efd);
}

@media (max-width: 768px) {
  .cta-block {
    padding: 3rem 0;
  }

  .cta-block__title {
    font-size: 1.75rem;
  }

  .cta-block__description {
    font-size: 1rem;
  }

  .cta-block--split .cta-block__content {
    flex-direction: column;
    text-align: center;
  }

  .cta-block--split .cta-block__buttons {
    justify-content: center;
  }

  .cta-block__button {
    width: 100%;
    min-width: unset;
  }
}

/*!**************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/blocks/TextImageBlock/TextImageBlock.css ***!
  \**************************************************************************************************************************************************/
.text-image-block {
  padding: var(--spacing-16) 0;
}

.text-image-block__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--spacing-12);
  align-items: center;
}

.text-image-block--image-left .text-image-block__image {
  order: -1;
}

.text-image-block__title {
  font-size: var(--text-3xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-gray-900);
  margin-bottom: var(--spacing-4);
}

.text-image-block__text {
  color: var(--color-gray-600);
  line-height: var(--leading-relaxed);
  margin-bottom: var(--spacing-6);
}

.text-image-block__text p {
  margin-bottom: var(--spacing-4);
}

.text-image-block__text p:last-child {
  margin-bottom: 0;
}

.text-image-block__button {
  display: inline-flex;
  align-items: center;
  padding: var(--spacing-3) var(--spacing-6);
  background: var(--color-secondary);
  color: white;
  text-decoration: none;
  border-radius: var(--radius-lg);
  font-weight: var(--font-weight-semibold);
  transition: background var(--transition-fast);
}

.text-image-block__button:hover {
  background: var(--color-secondary-dark);
}

.text-image-block__image img {
  width: 100%;
  height: auto;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
}

@media (max-width: 768px) {
  .text-image-block__grid {
    grid-template-columns: 1fr;
  }

  .text-image-block--image-left .text-image-block__image {
    order: 0;
  }

  .text-image-block__title {
    font-size: var(--text-2xl);
  }
}

/*!**************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/blocks/FAQBlock/FAQBlock.css ***!
  \**************************************************************************************************************************************/
.faq-block {
  padding: var(--spacing-16) 0;
  background: var(--color-gray-50);
}

.faq-block__title {
  font-size: var(--text-3xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-gray-900);
  text-align: center;
  margin-bottom: var(--spacing-4);
}

.faq-block__subtitle {
  font-size: var(--text-lg);
  color: var(--color-gray-600);
  text-align: center;
  max-width: 600px;
  margin: 0 auto var(--spacing-10);
}

.faq-block__list {
  max-width: 800px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
}

.faq-block__item {
  background: white;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

.faq-block__question {
  width: 100%;
  padding: var(--spacing-5) var(--spacing-6);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--spacing-4);
  background: none;
  border: none;
  text-align: left;
  font-size: var(--text-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-gray-900);
  cursor: pointer;
  transition: background var(--transition-fast);
}

.faq-block__question:hover {
  background: var(--color-gray-50);
}

.faq-block__question svg {
  width: 20px;
  height: 20px;
  color: var(--color-gray-400);
  flex-shrink: 0;
  transition: transform var(--transition-base);
}

.faq-block__item.open .faq-block__question svg {
  transform: rotate(180deg);
  color: var(--color-secondary);
}

.faq-block__answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height var(--transition-base);
}

.faq-block__item.open .faq-block__answer {
  max-height: 1000px;
}

.faq-block__answer-content {
  padding: 0 var(--spacing-6) var(--spacing-5);
  color: var(--color-gray-600);
  line-height: var(--leading-relaxed);
}

.faq-block__answer-content p {
  margin-bottom: var(--spacing-3);
}

.faq-block__answer-content p:last-child {
  margin-bottom: 0;
}

@media (max-width: 768px) {
  .faq-block__title {
    font-size: var(--text-2xl);
  }

  .faq-block__question {
    padding: var(--spacing-4);
    font-size: var(--text-sm);
  }

  .faq-block__answer-content {
    padding: 0 var(--spacing-4) var(--spacing-4);
    font-size: var(--text-sm);
  }
}

/*!********************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/blocks/TestimonialsBlock/TestimonialsBlock.css ***!
  \********************************************************************************************************************************************************/
.testimonials-block {
  padding: var(--spacing-16) 0;
  background: linear-gradient(135deg, var(--color-primary) 0%, #1e3a5f 100%);
}

.testimonials-block__title {
  font-size: var(--text-3xl);
  font-weight: var(--font-weight-bold);
  color: white;
  text-align: center;
  margin-bottom: var(--spacing-4);
}

.testimonials-block__subtitle {
  font-size: var(--text-lg);
  color: rgba(255, 255, 255, 0.8);
  text-align: center;
  max-width: 600px;
  margin: 0 auto var(--spacing-10);
}

.testimonials-block__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--spacing-6);
}

.testimonial-card {
  background: white;
  border-radius: var(--radius-xl);
  padding: var(--spacing-6);
  box-shadow: var(--shadow-lg);
}

.testimonial-card__rating {
  margin-bottom: var(--spacing-4);
}

.testimonial-card__rating .star {
  color: var(--color-gray-300);
  font-size: var(--text-lg);
}

.testimonial-card__rating .star--filled {
  color: var(--color-accent);
}

.testimonial-card__quote {
  font-size: var(--text-base);
  color: var(--color-gray-700);
  line-height: var(--leading-relaxed);
  margin: 0 0 var(--spacing-6);
  font-style: italic;
}

.testimonial-card__author {
  display: flex;
  align-items: center;
  gap: var(--spacing-3);
}

.testimonial-card__avatar {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-full);
  object-fit: cover;
}

.testimonial-card__info {
  display: flex;
  flex-direction: column;
}

.testimonial-card__name {
  font-weight: var(--font-weight-semibold);
  color: var(--color-gray-900);
}

.testimonial-card__role {
  font-size: var(--text-sm);
  color: var(--color-gray-500);
}

@media (max-width: 768px) {
  .testimonials-block__title {
    font-size: var(--text-2xl);
  }

  .testimonials-block__grid {
    grid-template-columns: 1fr;
  }
}

/*!****************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/blocks/CustomHTMLBlock/CustomHTMLBlock.css ***!
  \****************************************************************************************************************************************************/
.custom-html-block {
  padding: var(--spacing-10) 0;
}

.custom-html-block__content {
  color: var(--color-gray-700);
  line-height: var(--leading-relaxed);
}

.custom-html-block__content h1,
.custom-html-block__content h2,
.custom-html-block__content h3,
.custom-html-block__content h4,
.custom-html-block__content h5,
.custom-html-block__content h6 {
  color: var(--color-gray-900);
  margin-bottom: var(--spacing-4);
}

.custom-html-block__content h1 {
  font-size: var(--text-4xl);
}

.custom-html-block__content h2 {
  font-size: var(--text-3xl);
}

.custom-html-block__content h3 {
  font-size: var(--text-2xl);
}

.custom-html-block__content p {
  margin-bottom: var(--spacing-4);
}

.custom-html-block__content ul,
.custom-html-block__content ol {
  margin-bottom: var(--spacing-4);
  padding-left: var(--spacing-6);
}

.custom-html-block__content li {
  margin-bottom: var(--spacing-2);
}

.custom-html-block__content a {
  color: var(--color-secondary);
  text-decoration: underline;
}

.custom-html-block__content a:hover {
  color: var(--color-secondary-dark);
}

.custom-html-block__content img {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-lg);
}

.custom-html-block__content blockquote {
  border-left: 4px solid var(--color-secondary);
  padding-left: var(--spacing-4);
  margin: var(--spacing-6) 0;
  font-style: italic;
  color: var(--color-gray-600);
}

.custom-html-block__content table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: var(--spacing-4);
}

.custom-html-block__content th,
.custom-html-block__content td {
  border: 1px solid var(--color-gray-200);
  padding: var(--spacing-3);
  text-align: left;
}

.custom-html-block__content th {
  background: var(--color-gray-100);
  font-weight: var(--font-weight-semibold);
}

/*!****************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/blocks/PageHeaderBlock/PageHeaderBlock.css ***!
  \****************************************************************************************************************************************************/
/* Page Header Block */
.page-header-block {
  position: relative;
  background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
  color: white;
  padding-top: calc(72px + 3rem); /* Account for fixed header */
  padding-bottom: 3rem;
  overflow: hidden;
}

/* Size Variants (padding) */
.page-header-block--small {
  padding-top: calc(72px + 2rem);
  padding-bottom: 2rem;
}

.page-header-block--medium {
  padding-top: calc(72px + 3rem);
  padding-bottom: 3rem;
}

.page-header-block--large {
  padding-top: calc(72px + 5rem);
  padding-bottom: 5rem;
}

/* Font Size Variants */
.page-header-block--font-small .page-header-block__title {
  font-size: var(--text-2xl, 1.5rem);
}
.page-header-block--font-small .page-header-block__subtitle {
  font-size: var(--text-base, 1rem);
}

.page-header-block--font-medium .page-header-block__title {
  font-size: var(--text-4xl, 2.25rem);
}
.page-header-block--font-medium .page-header-block__subtitle {
  font-size: var(--text-lg, 1.125rem);
}

.page-header-block--font-large .page-header-block__title {
  font-size: var(--text-5xl, 3rem);
}
.page-header-block--font-large .page-header-block__subtitle {
  font-size: var(--text-xl, 1.25rem);
}

.page-header-block--font-xlarge .page-header-block__title {
  font-size: var(--text-6xl, 3.75rem);
}
.page-header-block--font-xlarge .page-header-block__subtitle {
  font-size: var(--text-2xl, 1.5rem);
}

/* Alignment Variants */
.page-header-block--left .page-header-block__content {
  text-align: left;
}

.page-header-block--center .page-header-block__content {
  text-align: center;
}

.page-header-block--right .page-header-block__content {
  text-align: right;
}

/* Image Background */
.page-header-block--has-image {
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

.page-header-block__overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  pointer-events: none;
}

/* Content */
.page-header-block__content {
  position: relative;
  z-index: 1;
  max-width: 800px;
}

.page-header-block--center .page-header-block__content {
  margin: 0 auto;
}

.page-header-block--right .page-header-block__content {
  margin-left: auto;
}

/* Breadcrumb */
.page-header-block__breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
  font-size: var(--text-sm, 0.875rem);
  opacity: 0.9;
}

.page-header-block--center .page-header-block__breadcrumb {
  justify-content: center;
}

.page-header-block--right .page-header-block__breadcrumb {
  justify-content: flex-end;
}

.page-header-block__breadcrumb a {
  color: inherit;
  text-decoration: none;
  transition: opacity 0.2s;
}

.page-header-block__breadcrumb a:hover {
  opacity: 0.8;
  text-decoration: underline;
}

.page-header-block__breadcrumb .separator {
  opacity: 0.6;
}

.page-header-block__breadcrumb .current {
  opacity: 0.8;
}

/* Title */
.page-header-block__title {
  font-size: var(--text-4xl, 2.25rem);
  font-weight: var(--font-weight-bold, 700);
  margin: 0;
  line-height: var(--leading-tight, 1.25);
  color: inherit;
}

/* Subtitle */
.page-header-block__subtitle {
  font-size: var(--text-lg, 1.125rem);
  margin: 1rem 0 0;
  opacity: 0.9;
  line-height: var(--leading-relaxed, 1.625);
  color: inherit;
}

/* Responsive */
@media (max-width: 768px) {
  .page-header-block {
    padding-top: calc(72px + 2rem);
    padding-bottom: 2rem;
  }

  .page-header-block--large {
    padding-top: calc(72px + 3rem);
    padding-bottom: 3rem;
  }

  /* Reduce font sizes on mobile */
  .page-header-block--font-medium .page-header-block__title,
  .page-header-block__title {
    font-size: var(--text-3xl, 1.875rem);
  }

  .page-header-block--font-large .page-header-block__title {
    font-size: var(--text-4xl, 2.25rem);
  }

  .page-header-block--font-xlarge .page-header-block__title {
    font-size: var(--text-5xl, 3rem);
  }

  .page-header-block__subtitle {
    font-size: var(--text-base, 1rem);
  }

  .page-header-block--font-large .page-header-block__subtitle,
  .page-header-block--font-xlarge .page-header-block__subtitle {
    font-size: var(--text-lg, 1.125rem);
  }

  .page-header-block__breadcrumb {
    flex-wrap: wrap;
  }
}

/*!**********************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/blocks/ContactBlock/ContactBlock.css ***!
  \**********************************************************************************************************************************************/
/* ContactBlock - Cartes de coordonnées */

.contact-block {
  padding: 4rem 0;
}

.contact-block__header {
  text-align: center;
  margin-bottom: 2.5rem;
}

.contact-block__title {
  font-size: var(--text-3xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-gray-900);
  margin-bottom: 0.5rem;
}

.contact-block__subtitle {
  font-size: var(--text-lg);
  color: var(--color-gray-600);
  max-width: 600px;
  margin: 0 auto;
}

/* Cards grid - identique à .contact-cards */
.contact-block__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}

/* Card - identique à .contact-card */
.contact-block__card {
  background: white;
  border-radius: var(--radius-xl);
  padding: 1.5rem;
  box-shadow: var(--shadow-md);
  text-align: center;
  transition: transform 0.2s, box-shadow 0.2s;
}

.contact-block__card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}

/* Accent variant - identique à .contact-card--accent */
.contact-block__card--accent {
  background: linear-gradient(135deg, var(--color-secondary) 0%, #0ea5e9 100%);
  color: white;
}

.contact-block__card--accent h3,
.contact-block__card--accent p,
.contact-block__card--accent strong {
  color: white;
}

/* Icon - identique à .contact-card__icon */
.contact-block__card-icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 1rem;
  padding: 0.75rem;
  background: var(--color-gray-100);
  border-radius: var(--radius-lg);
  color: var(--color-secondary);
}

.contact-block__card--accent .contact-block__card-icon {
  background: rgba(255, 255, 255, 0.2);
  color: white;
}

.contact-block__card-icon svg {
  width: 100%;
  height: 100%;
}

.contact-block__card h3 {
  font-size: var(--text-lg);
  font-weight: var(--font-weight-semibold);
  margin-bottom: 0.5rem;
  color: var(--color-gray-900);
}

.contact-block__card p {
  font-size: var(--text-sm);
  color: var(--color-gray-600);
  margin-bottom: 0.5rem;
}

/* Link - identique à .contact-card__link */
.contact-block__card-link {
  color: var(--color-secondary);
  font-weight: var(--font-weight-semibold);
  text-decoration: none;
  font-size: var(--text-lg);
}

.contact-block__card-link:hover {
  text-decoration: underline;
}

/* Address - identique à .contact-card__address */
.contact-block__card-address {
  font-size: var(--text-sm);
  color: var(--color-gray-700);
  line-height: 1.6;
}

/* Hours - identique à .contact-card__hours */
.contact-block__card-hours p {
  font-size: var(--text-sm);
  margin: 0.25rem 0;
}

/* Responsive */
@media (max-width: 768px) {
  .contact-block__cards {
    grid-template-columns: 1fr;
  }

  .contact-block__title {
    font-size: var(--text-2xl);
  }
}

/*!****************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/blocks/FormulaireBlock/FormulaireBlock.css ***!
  \****************************************************************************************************************************************************/
/* FormulaireBlock - Formulaire de contact */

.formulaire-block {
  padding: 4rem 0;
}

/* Wrapper - identique à .contact-form-container */
.formulaire-block__wrapper {
  background: white;
  border-radius: var(--radius-xl);
  padding: 2rem;
  box-shadow: var(--shadow-lg);
  max-width: 720px;
  margin: 0 auto;
}

.formulaire-block__title {
  font-size: var(--text-2xl);
  margin-bottom: 0.5rem;
  color: var(--color-gray-900);
}

.formulaire-block__subtitle {
  color: var(--color-gray-600);
  margin-bottom: 1.5rem;
}

.formulaire-block__subtitle a {
  color: var(--color-secondary);
}

/* Form rows - identique à .contact-form__row */
.formulaire-block__row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

/* Field - identique à .contact-form__field */
.formulaire-block__field {
  margin-bottom: 1rem;
}

.formulaire-block__field label {
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-gray-700);
  margin-bottom: 0.5rem;
}

.formulaire-block__field input,
.formulaire-block__field textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid var(--color-gray-300);
  border-radius: var(--radius-lg);
  font-size: var(--text-base);
  transition: border-color 0.2s, box-shadow 0.2s;
  font-family: inherit;
}

.formulaire-block__field input:focus,
.formulaire-block__field textarea:focus {
  outline: none;
  border-color: var(--color-secondary);
  box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.2);
}

.formulaire-block__field textarea {
  resize: vertical;
  min-height: 120px;
}

/* Submit button */
.formulaire-block__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.875rem 2rem;
  background: var(--color-primary);
  color: white;
  border: none;
  border-radius: var(--radius-lg);
  font-size: var(--text-base);
  font-weight: var(--font-weight-semibold);
  cursor: pointer;
  transition: background-color 0.2s, transform 0.1s;
  width: 100%;
  margin-top: 0.5rem;
}

.formulaire-block__submit:hover {
  background: var(--color-primary-dark, #1e3a5f);
  transform: translateY(-1px);
}

.formulaire-block__submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

/* Success - identique à .contact-form__success */
.formulaire-block__success {
  text-align: center;
  padding: 3rem 1rem;
}

.formulaire-block__success svg {
  width: 64px;
  height: 64px;
  color: var(--color-accent);
  margin-bottom: 1rem;
}

.formulaire-block__success h3 {
  color: var(--color-gray-900);
  margin-bottom: 0.5rem;
}

.formulaire-block__success p {
  color: var(--color-gray-600);
}

/* Error */
.formulaire-block__error-message {
  background: #fef2f2;
  color: #dc2626;
  padding: 0.75rem 1rem;
  border-radius: var(--radius-lg);
  margin-bottom: 1rem;
  font-size: var(--text-sm);
}

/* Responsive */
@media (max-width: 768px) {
  .formulaire-block__row {
    grid-template-columns: 1fr;
  }

  .formulaire-block__wrapper {
    padding: 1.5rem;
  }
}

/*!******************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/pages/PageDetail.css ***!
  \******************************************************************************************************************************/
/* ===========================================
   PAGE DETAIL (Dynamic pages from admin)
   =========================================== */

.page-detail {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.page-detail main {
  flex: 1;
}

/* Blocks container - compensate for fixed header */
.page-detail .blocks-container {
  padding-top: 72px;
}

.page-detail .blocks-container > *:first-child {
  /* Ensure first block has proper spacing after header offset */
}

/* Loading & Error States */
.page-detail__loading,
.page-detail__error {
  text-align: center;
  padding: 4rem 2rem;
}

.page-detail__error h1 {
  font-size: 2rem;
  margin-bottom: 1rem;
}

.page-detail__error p {
  color: var(--text-light);
  margin-bottom: 2rem;
}

/* Hero */
.page-detail__hero {
  background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark, #1a365d) 100%);
  color: white;
  padding: 3rem 0;
  padding-top: calc(72px + 3rem); /* Account for fixed header */
  text-align: center;
}

.page-detail__title {
  font-size: 2.5rem;
  font-weight: 700;
  margin: 0;
}

/* Content */
.page-detail__content {
  max-width: 800px;
  margin: 0 auto;
}

.page-detail__text {
  font-size: 1.125rem;
  line-height: 1.8;
  color: var(--text-color);
}

.page-detail__text p {
  margin-bottom: 1.5rem;
}

.page-detail__text h2 {
  font-size: 1.75rem;
  margin-top: 2.5rem;
  margin-bottom: 1rem;
  color: var(--heading-color, var(--text-color));
}

.page-detail__text h3 {
  font-size: 1.5rem;
  margin-top: 2rem;
  margin-bottom: 0.75rem;
}

.page-detail__text h4 {
  font-size: 1.25rem;
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
}

.page-detail__text ul,
.page-detail__text ol {
  margin-bottom: 1.5rem;
  padding-left: 1.5rem;
}

.page-detail__text li {
  margin-bottom: 0.5rem;
}

.page-detail__text img {
  max-width: 100%;
  height: auto;
  border-radius: 0.5rem;
  margin: 1.5rem 0;
}

.page-detail__text a {
  color: var(--primary-color);
  text-decoration: underline;
}

.page-detail__text a:hover {
  color: var(--primary-dark, #1a365d);
}

.page-detail__text blockquote {
  border-left: 4px solid var(--primary-color);
  padding-left: 1.5rem;
  margin: 1.5rem 0;
  font-style: italic;
  color: var(--text-light);
}

.page-detail__empty {
  text-align: center;
  padding: 3rem;
  background: var(--bg-light, #f8fafc);
  border-radius: 1rem;
  color: var(--text-light);
}

/* CTA Section */
.page-detail__cta {
  background: var(--bg-light, #f8fafc);
  padding: 4rem 0;
  margin-top: 3rem;
}

.page-detail__cta-content {
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
}

.page-detail__cta-content h2 {
  font-size: 2rem;
  margin-bottom: 0.75rem;
}

.page-detail__cta-content p {
  color: var(--text-light);
  margin-bottom: 1.5rem;
  font-size: 1.125rem;
}

/* Responsive */
@media (max-width: 768px) {
  .page-detail__hero {
    padding: 2rem 0;
  }

  .page-detail__title {
    font-size: 1.75rem;
  }

  .page-detail__text {
    font-size: 1rem;
  }

  .page-detail__cta {
    padding: 3rem 0;
  }

  .page-detail__cta-content h2 {
    font-size: 1.5rem;
  }
}

/*!****************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/pages/Secteurs.css ***!
  \****************************************************************************************************************************/
/* Page Secteurs */

.secteurs-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.secteurs-hero {
  background: linear-gradient(135deg, var(--color-primary) 0%, #1e3a5f 100%);
  padding: 8rem 0 4rem;
  text-align: center;
}

.secteurs-hero__title {
  color: white;
  font-size: var(--text-5xl);
  font-weight: var(--font-weight-bold);
  margin-bottom: 1rem;
}

.secteurs-hero__description {
  color: rgba(255, 255, 255, 0.8);
  font-size: var(--text-xl);
  max-width: 600px;
  margin: 0 auto;
}

/* Grid */
.secteurs-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

/* Card */
.secteur-card {
  background: white;
  border-radius: var(--radius-xl);
  padding: 1.5rem;
  box-shadow: var(--shadow-md);
  transition: transform 0.3s, box-shadow 0.3s;
  display: flex;
  flex-direction: column;
}

.secteur-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-xl);
}

.secteur-card__icon {
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, var(--color-secondary) 0%, #0ea5e9 100%);
  border-radius: var(--radius-lg);
  padding: 0.75rem;
  color: white;
  margin-bottom: 1rem;
}

.secteur-card__icon svg {
  width: 100%;
  height: 100%;
}

.secteur-card__title {
  font-size: var(--text-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-gray-900);
  margin-bottom: 0.75rem;
}

.secteur-card__description {
  font-size: var(--text-sm);
  color: var(--color-gray-600);
  line-height: 1.6;
  margin-bottom: 1rem;
  flex-grow: 1;
}

.secteur-card__features {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem 0;
}

.secteur-card__features li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: var(--text-xs);
  color: var(--color-gray-700);
  margin-bottom: 0.375rem;
}

.secteur-card__features li svg {
  width: 14px;
  height: 14px;
  color: var(--color-accent);
  flex-shrink: 0;
}

.secteur-card__stats {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-secondary);
  padding-top: 0.75rem;
  border-top: 1px solid var(--color-gray-200);
}

/* CTA */
.secteurs-cta {
  background: linear-gradient(135deg, var(--color-primary) 0%, #1e3a5f 100%);
  padding: 4rem 0;
  margin-top: 4rem;
}

.secteurs-cta__content {
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
  color: white;
}

.secteurs-cta__content h2 {
  font-size: var(--text-3xl);
  margin-bottom: 1rem;
}

.secteurs-cta__content p {
  opacity: 0.9;
  margin-bottom: 2rem;
}

.secteurs-cta__buttons {
  display: flex;
  gap: 1rem;
  justify-content: center;
}

/* Responsive */
@media (max-width: 1200px) {
  .secteurs-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 1024px) {
  .secteurs-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .secteurs-hero {
    padding: 6rem 0 3rem;
  }

  .secteurs-hero__title {
    font-size: var(--text-3xl);
  }

  .secteurs-grid {
    grid-template-columns: 1fr;
  }

  .secteurs-cta__buttons {
    flex-direction: column;
  }
}

/*!******************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/pages/References.css ***!
  \******************************************************************************************************************************/
/* Page References */

.references-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.references-hero {
  background: linear-gradient(135deg, var(--color-primary) 0%, #1e3a5f 100%);
  padding: 8rem 0 4rem;
  text-align: center;
}

.references-hero__title {
  color: white;
  font-size: var(--text-5xl);
  font-weight: var(--font-weight-bold);
  margin-bottom: 1rem;
}

.references-hero__description {
  color: rgba(255, 255, 255, 0.8);
  font-size: var(--text-xl);
  max-width: 600px;
  margin: 0 auto;
}

/* Stats */
.references-stats {
  background: white;
  padding: 3rem 0;
  margin-top: -2rem;
  position: relative;
  z-index: 10;
}

.references-stats__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  max-width: 800px;
  margin: 0 auto;
  background: white;
  border-radius: var(--radius-2xl);
  padding: 2rem;
  box-shadow: var(--shadow-xl);
}

.references-stat {
  text-align: center;
}

.references-stat__value {
  font-size: var(--text-4xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-secondary);
  margin-bottom: 0.25rem;
}

.references-stat__label {
  font-size: var(--text-sm);
  color: var(--color-gray-600);
}

/* Section Title */
.references-section-title {
  font-size: var(--text-3xl);
  font-weight: var(--font-weight-bold);
  text-align: center;
  color: var(--color-gray-900);
  margin-bottom: 2rem;
}

/* Clients */
.references-clients {
  background: var(--color-gray-50);
}

.references-clients__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.client-card {
  background: white;
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  box-shadow: var(--shadow-sm);
  transition: transform 0.2s, box-shadow 0.2s;
}

.client-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}

.client-card__logo {
  width: 48px;
  height: 48px;
  background: var(--color-gray-100);
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  flex-shrink: 0;
}

.client-card__name {
  font-weight: var(--font-weight-semibold);
  color: var(--color-gray-900);
  font-size: var(--text-sm);
}

.client-card__sector {
  font-size: var(--text-xs);
  color: var(--color-gray-500);
}

/* Testimonials */
.references-testimonials__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.testimonial-card {
  background: white;
  border-radius: var(--radius-xl);
  padding: 1.5rem;
  box-shadow: var(--shadow-md);
  transition: transform 0.2s;
}

.testimonial-card:hover {
  transform: translateY(-4px);
}

.testimonial-card__rating {
  display: flex;
  gap: 0.25rem;
  margin-bottom: 1rem;
}

.testimonial-card__rating svg {
  width: 18px;
  height: 18px;
  color: #fbbf24;
}

.testimonial-card__text {
  font-size: var(--text-sm);
  color: var(--color-gray-700);
  line-height: 1.7;
  margin-bottom: 1.5rem;
  font-style: italic;
}

.testimonial-card__author {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-top: 1rem;
  border-top: 1px solid var(--color-gray-200);
}

.testimonial-card__avatar {
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-accent) 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: var(--font-weight-bold);
  flex-shrink: 0;
}

.testimonial-card__name {
  font-weight: var(--font-weight-semibold);
  color: var(--color-gray-900);
  font-size: var(--text-sm);
}

.testimonial-card__role {
  font-size: var(--text-xs);
  color: var(--color-gray-600);
}

.testimonial-card__company {
  font-size: var(--text-xs);
  color: var(--color-secondary);
}

/* CTA */
.references-cta {
  background: linear-gradient(135deg, var(--color-primary) 0%, #1e3a5f 100%);
  padding: 4rem 0;
  margin-top: 4rem;
}

.references-cta__content {
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
  color: white;
}

.references-cta__content h2 {
  font-size: var(--text-3xl);
  margin-bottom: 1rem;
}

.references-cta__content p {
  opacity: 0.9;
  margin-bottom: 2rem;
}

/* Responsive */
@media (max-width: 1024px) {
  .references-clients__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .references-testimonials__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .references-hero {
    padding: 6rem 0 3rem;
  }

  .references-hero__title {
    font-size: var(--text-3xl);
  }

  .references-stats__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
  }

  .references-stat__value {
    font-size: var(--text-3xl);
  }

  .references-clients__grid {
    grid-template-columns: 1fr;
  }

  .references-testimonials__grid {
    grid-template-columns: 1fr;
  }
}

/*!***************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/pages/APropos.css ***!
  \***************************************************************************************************************************/
/* Page À Propos */

.apropos-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.apropos-hero {
  background: linear-gradient(135deg, var(--color-primary) 0%, #1e3a5f 100%);
  padding: 8rem 0 4rem;
  text-align: center;
}

.apropos-hero__title {
  color: white;
  font-size: var(--text-5xl);
  font-weight: var(--font-weight-bold);
  margin-bottom: 1rem;
}

.apropos-hero__description {
  color: rgba(255, 255, 255, 0.8);
  font-size: var(--text-xl);
  max-width: 600px;
  margin: 0 auto;
}

.apropos-section-title {
  font-size: var(--text-3xl);
  font-weight: var(--font-weight-bold);
  text-align: center;
  color: var(--color-gray-900);
  margin-bottom: 2rem;
}

/* Mission */
.apropos-mission__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.apropos-mission__content h2 {
  font-size: var(--text-3xl);
  color: var(--color-gray-900);
  margin-bottom: 1.5rem;
}

.apropos-mission__lead {
  font-size: var(--text-xl);
  color: var(--color-gray-700);
  margin-bottom: 1.5rem;
  line-height: 1.7;
}

.apropos-mission__content p {
  color: var(--color-gray-600);
  line-height: 1.8;
  margin-bottom: 1rem;
}

.apropos-mission__stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}

.apropos-stat {
  background: white;
  border-radius: var(--radius-xl);
  padding: 1.5rem;
  text-align: center;
  box-shadow: var(--shadow-lg);
}

.apropos-stat__value {
  display: block;
  font-size: var(--text-4xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-secondary);
}

.apropos-stat__label {
  font-size: var(--text-sm);
  color: var(--color-gray-600);
}

/* Values */
.apropos-values {
  background: var(--color-gray-50);
}

.apropos-values__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.value-card {
  background: white;
  border-radius: var(--radius-xl);
  padding: 2rem;
  text-align: center;
  box-shadow: var(--shadow-md);
  transition: transform 0.3s;
}

.value-card:hover {
  transform: translateY(-8px);
}

.value-card__icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 1rem;
  background: linear-gradient(135deg, var(--color-secondary) 0%, #0ea5e9 100%);
  border-radius: var(--radius-lg);
  padding: 0.875rem;
  color: white;
}

.value-card__icon svg {
  width: 100%;
  height: 100%;
}

.value-card__title {
  font-size: var(--text-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-gray-900);
  margin-bottom: 0.5rem;
}

.value-card__description {
  font-size: var(--text-sm);
  color: var(--color-gray-600);
  line-height: 1.6;
}

/* Timeline */
.timeline {
  max-width: 800px;
  margin: 0 auto;
  position: relative;
}

.timeline::before {
  content: '';
  position: absolute;
  left: 80px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--color-gray-200);
}

.timeline__item {
  display: flex;
  gap: 2rem;
  margin-bottom: 2rem;
  position: relative;
}

.timeline__year {
  width: 60px;
  height: 60px;
  background: var(--color-secondary);
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: var(--font-weight-bold);
  font-size: var(--text-sm);
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}

.timeline__content {
  background: white;
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  box-shadow: var(--shadow-md);
  flex: 1;
}

.timeline__title {
  font-size: var(--text-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-gray-900);
  margin-bottom: 0.5rem;
}

.timeline__description {
  font-size: var(--text-sm);
  color: var(--color-gray-600);
}

/* Team */
.apropos-team__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.team-card {
  background: white;
  border-radius: var(--radius-xl);
  padding: 2rem;
  text-align: center;
  box-shadow: var(--shadow-md);
  transition: transform 0.2s;
}

.team-card:hover {
  transform: translateY(-4px);
}

.team-card__avatar {
  width: 80px;
  height: 80px;
  margin: 0 auto 1rem;
  background: linear-gradient(135deg, var(--color-primary) 0%, #1e3a5f 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: var(--text-2xl);
  font-weight: var(--font-weight-bold);
}

.team-card__name {
  font-size: var(--text-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-gray-900);
  margin-bottom: 0.25rem;
}

.team-card__role {
  font-size: var(--text-sm);
  color: var(--color-secondary);
}

/* Certifications */
.apropos-certifications {
  background: var(--color-gray-50);
}

.apropos-certifications__content {
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
}

.apropos-certifications__content h2 {
  font-size: var(--text-3xl);
  color: var(--color-gray-900);
  margin-bottom: 0.5rem;
}

.apropos-certifications__content p {
  color: var(--color-gray-600);
  margin-bottom: 2rem;
}

.apropos-certifications__list {
  display: flex;
  justify-content: center;
  gap: 2rem;
}

.certification-badge {
  background: white;
  border-radius: var(--radius-lg);
  padding: 1.5rem 2rem;
  box-shadow: var(--shadow-md);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.certification-badge__icon {
  font-size: 2rem;
}

.certification-badge__name {
  font-weight: var(--font-weight-semibold);
  color: var(--color-gray-900);
}

/* CTA */
.apropos-cta {
  background: linear-gradient(135deg, var(--color-primary) 0%, #1e3a5f 100%);
  padding: 4rem 0;
}

.apropos-cta__content {
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
  color: white;
}

.apropos-cta__content h2 {
  font-size: var(--text-3xl);
  margin-bottom: 1rem;
}

.apropos-cta__content p {
  opacity: 0.9;
  margin-bottom: 2rem;
}

.apropos-cta__buttons {
  display: flex;
  gap: 1rem;
  justify-content: center;
}

/* Responsive */
@media (max-width: 1024px) {
  .apropos-mission__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .apropos-values__grid,
  .apropos-team__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .apropos-hero {
    padding: 6rem 0 3rem;
  }

  .apropos-hero__title {
    font-size: var(--text-3xl);
  }

  .apropos-values__grid,
  .apropos-team__grid {
    grid-template-columns: 1fr;
  }

  .timeline::before {
    left: 30px;
  }

  .timeline__year {
    width: 50px;
    height: 50px;
    font-size: var(--text-xs);
  }

  .apropos-certifications__list {
    flex-direction: column;
    align-items: center;
  }

  .apropos-cta__buttons {
    flex-direction: column;
  }
}

/*!***********************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/pages/FAQ.css ***!
  \***********************************************************************************************************************/
/* Page FAQ - Version avec Grid */

.faq-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.faq-hero {
  background: linear-gradient(135deg, var(--color-primary) 0%, #1e3a5f 100%);
  padding: 8rem 0 4rem;
  text-align: center;
}

.faq-hero__title {
  color: white;
  font-size: var(--text-5xl);
  font-weight: var(--font-weight-bold);
  margin-bottom: 1rem;
}

.faq-hero__description {
  color: rgba(255, 255, 255, 0.8);
  font-size: var(--text-xl);
  max-width: 600px;
  margin: 0 auto;
}

/* Layout */
.faq-layout {
  display: grid;
  grid-template-columns: 250px 1fr;
  gap: 3rem;
  align-items: start;
}

/* Categories */
.faq-categories {
  position: sticky;
  top: 100px;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.faq-category {
  padding: 1rem 1.25rem;
  background: white;
  border: 1px solid var(--color-gray-200);
  border-radius: var(--radius-lg);
  text-align: left;
  font-weight: var(--font-weight-medium);
  color: var(--color-gray-700);
  cursor: pointer;
  transition: all 0.2s;
}

.faq-category:hover {
  background: var(--color-gray-50);
  color: var(--color-gray-900);
}

.faq-category.active {
  background: var(--color-secondary);
  border-color: var(--color-secondary);
  color: white;
}

/* Questions */
.faq-questions {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.faq-item {
  background: white;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: box-shadow 0.2s;
}

.faq-item:hover {
  box-shadow: var(--shadow-md);
}

.faq-item__question {
  width: 100%;
  padding: 1.25rem 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  background: none;
  border: none;
  text-align: left;
  font-size: var(--text-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-gray-900);
  cursor: pointer;
}

.faq-item__question svg {
  width: 20px;
  height: 20px;
  color: var(--color-gray-400);
  flex-shrink: 0;
  transition: transform 0.3s ease;
}

/* Animation de l'icône */
.faq-item.open .faq-item__question svg {
  transform: rotate(180deg);
  color: var(--color-secondary);
}

/* MÉTHODE GRID POUR L'ANIMATION - Plus fiable */
.faq-item__answer {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s ease;
}

.faq-item.open .faq-item__answer {
  grid-template-rows: 1fr;
}

.faq-item__answer > p {
  overflow: hidden;
  margin: 0;
  padding: 0 1.5rem;
  color: var(--color-gray-600);
  line-height: 1.7;
}

.faq-item.open .faq-item__answer > p {
  padding: 0 1.5rem 1.5rem;
}

/* CTA */
.faq-cta {
  background: linear-gradient(135deg, var(--color-primary) 0%, #1e3a5f 100%);
  padding: 4rem 0;
  margin-top: 4rem;
}

.faq-cta__content {
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
  color: white;
}

.faq-cta__content h2 {
  font-size: var(--text-3xl);
  margin-bottom: 1rem;
}

.faq-cta__content p {
  opacity: 0.9;
  margin-bottom: 2rem;
}

.faq-cta__buttons {
  display: flex;
  gap: 1rem;
  justify-content: center;
}

/* Animation scroll reveal */
.scroll-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.scroll-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Responsive */
@media (max-width: 1024px) {
  .faq-layout {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .faq-categories {
    position: static;
    flex-direction: row;
    flex-wrap: wrap;
  }

  .faq-category {
    flex: 1;
    min-width: 150px;
    text-align: center;
  }
}

@media (max-width: 768px) {
  .faq-hero {
    padding: 6rem 0 3rem;
  }

  .faq-hero__title {
    font-size: var(--text-3xl);
  }

  .faq-categories {
    flex-direction: column;
  }

  .faq-category {
    min-width: auto;
  }

  .faq-item__question {
    padding: 1rem;
    font-size: var(--text-sm);
  }

  .faq-item__answer > p {
    padding: 0 1rem;
  }

  .faq-item.open .faq-item__answer > p {
    padding: 0 1rem 1rem;
  }

  .faq-item__answer > p {
    font-size: var(--text-sm);
  }

  .faq-cta__buttons {
    flex-direction: column;
  }
}
/*!***************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/pages/Contact.css ***!
  \***************************************************************************************************************************/
/* Page Contact */

.contact-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* Hero */
.contact-hero {
  background: linear-gradient(135deg, var(--color-primary) 0%, #1e3a5f 100%);
  padding: 8rem 0 4rem;
  text-align: center;
}

.contact-hero__title {
  color: white;
  font-size: var(--text-5xl);
  font-weight: var(--font-weight-bold);
  margin-bottom: 1rem;
}

.contact-hero__description {
  color: rgba(255, 255, 255, 0.8);
  font-size: var(--text-xl);
  max-width: 600px;
  margin: 0 auto;
}

/* Grid */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: start;
}

/* Cards */
.contact-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}

.contact-card {
  background: white;
  border-radius: var(--radius-xl);
  padding: 1.5rem;
  box-shadow: var(--shadow-md);
  text-align: center;
  transition: transform 0.2s, box-shadow 0.2s;
}

.contact-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}

.contact-card--accent {
  background: linear-gradient(135deg, var(--color-secondary) 0%, #0ea5e9 100%);
  color: white;
}

.contact-card--accent h3,
.contact-card--accent p,
.contact-card--accent strong {
  color: white;
}

.contact-card__icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 1rem;
  padding: 0.75rem;
  background: var(--color-gray-100);
  border-radius: var(--radius-lg);
  color: var(--color-secondary);
}

.contact-card--accent .contact-card__icon {
  background: rgba(255, 255, 255, 0.2);
  color: white;
}

.contact-card__icon svg {
  width: 100%;
  height: 100%;
}

.contact-card h3 {
  font-size: var(--text-lg);
  font-weight: var(--font-weight-semibold);
  margin-bottom: 0.5rem;
  color: var(--color-gray-900);
}

.contact-card p {
  font-size: var(--text-sm);
  color: var(--color-gray-600);
  margin-bottom: 0.5rem;
}

.contact-card__link {
  color: var(--color-secondary);
  font-weight: var(--font-weight-semibold);
  text-decoration: none;
  font-size: var(--text-lg);
}

.contact-card__link:hover {
  text-decoration: underline;
}

.contact-card__address {
  font-size: var(--text-sm);
  color: var(--color-gray-700);
  line-height: 1.6;
}

.contact-card__hours p {
  font-size: var(--text-sm);
  margin: 0.25rem 0;
}

/* Formulaire */
.contact-form-container {
  background: white;
  border-radius: var(--radius-xl);
  padding: 2rem;
  box-shadow: var(--shadow-lg);
}

.contact-form-container h2 {
  font-size: var(--text-2xl);
  margin-bottom: 0.5rem;
  color: var(--color-gray-900);
}

.contact-form__intro {
  color: var(--color-gray-600);
  margin-bottom: 1.5rem;
}

.contact-form__intro a {
  color: var(--color-secondary);
}

.contact-form__row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.contact-form__field {
  margin-bottom: 1rem;
}

.contact-form__field label {
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-gray-700);
  margin-bottom: 0.5rem;
}

.contact-form__field input,
.contact-form__field textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid var(--color-gray-300);
  border-radius: var(--radius-lg);
  font-size: var(--text-base);
  transition: border-color 0.2s, box-shadow 0.2s;
}

.contact-form__field input:focus,
.contact-form__field textarea:focus {
  outline: none;
  border-color: var(--color-secondary);
  box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.2);
}

.contact-form__field textarea {
  resize: vertical;
  min-height: 120px;
}

.contact-form__success {
  text-align: center;
  padding: 3rem 1rem;
}

.contact-form__success svg {
  width: 64px;
  height: 64px;
  color: var(--color-accent);
  margin-bottom: 1rem;
}

.contact-form__success h3 {
  color: var(--color-gray-900);
  margin-bottom: 0.5rem;
}

.contact-form__success p {
  color: var(--color-gray-600);
}

/* CTA */
.contact-cta {
  background: var(--color-gray-100);
  padding: 4rem 0;
  margin-top: 4rem;
}

.contact-cta__content {
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
}

.contact-cta__content h2 {
  font-size: var(--text-3xl);
  margin-bottom: 0.5rem;
  color: var(--color-gray-900);
}

.contact-cta__content p {
  color: var(--color-gray-600);
  margin-bottom: 1.5rem;
}

/* Responsive */
@media (max-width: 1024px) {
  .contact-grid {
    grid-template-columns: 1fr;
  }

  .contact-cards {
    order: 2;
  }

  .contact-form-container {
    order: 1;
  }
}

@media (max-width: 768px) {
  .contact-hero {
    padding: 6rem 0 3rem;
  }

  .contact-hero__title {
    font-size: var(--text-3xl);
  }

  .contact-cards {
    grid-template-columns: 1fr;
  }

  .contact-form__row {
    grid-template-columns: 1fr;
  }

  .contact-form-container {
    padding: 1.5rem;
  }
}

/*!************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/components/ContactForm/ContactForm.css ***!
  \************************************************************************************************************************************************/
.contact-form {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
}

.contact-form__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spacing-6);
}

.contact-form__field {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
}

.contact-form__field--full {
  grid-column: 1 / -1;
}

.contact-form__label {
  font-family: var(--font-display);
  font-weight: var(--font-weight-medium);
  font-size: var(--text-sm);
  color: var(--color-gray-700);
}

.contact-form__input,
.contact-form__select,
.contact-form__textarea {
  padding: var(--spacing-3) var(--spacing-4);
  font-family: var(--font-body);
  font-size: var(--text-base);
  color: var(--color-gray-900);
  background: var(--color-white);
  border: 2px solid var(--color-gray-300);
  border-radius: var(--radius-md);
  transition: all var(--transition-base);
}

.contact-form__input:focus,
.contact-form__select:focus,
.contact-form__textarea:focus {
  outline: none;
  border-color: var(--color-secondary);
  box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.1);
}

.contact-form__input--error,
.contact-form__select--error,
.contact-form__textarea--error,
.contact-form__checkbox--error {
  border-color: #EF4444;
}

.contact-form__error {
  font-size: var(--text-sm);
  color: #EF4444;
}

.contact-form__checkboxes {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--spacing-3);
}

.contact-form__checkbox-label {
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
  cursor: pointer;
  padding: var(--spacing-2);
  border-radius: var(--radius-md);
  transition: background-color var(--transition-fast);
}

.contact-form__checkbox-label:hover {
  background: var(--color-gray-50);
}

.contact-form__checkbox {
  width: 20px;
  height: 20px;
  cursor: pointer;
  accent-color: var(--color-secondary);
}

.contact-form__checkbox-label--consent {
  align-items: flex-start;
  padding: var(--spacing-4);
  background: var(--color-gray-50);
  border-radius: var(--radius-md);
}

.contact-form__checkbox-label--consent a {
  color: var(--color-secondary);
  text-decoration: underline;
}

.contact-form__submit {
  margin-top: var(--spacing-6);
}

.contact-form__submit-error {
  padding: var(--spacing-4);
  background: #FEE2E2;
  border: 1px solid #EF4444;
  border-radius: var(--radius-md);
  color: #991B1B;
  margin-top: var(--spacing-6);
  text-align: center;
}

.contact-form__success {
  text-align: center;
  padding: var(--spacing-12);
  background: var(--color-gray-50);
  border-radius: var(--radius-xl);
}

.contact-form__success-icon {
  width: 80px;
  height: 80px;
  margin: 0 auto var(--spacing-6) auto;
  color: var(--color-accent);
}

.contact-form__success-title {
  font-size: var(--text-3xl);
  color: var(--color-primary);
  margin-bottom: var(--spacing-4);
}

.contact-form__success-message {
  font-size: var(--text-lg);
  color: var(--color-gray-600);
  margin: 0;
}

@media (max-width: 768px) {
  .contact-form__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-5);
  }
  
  .contact-form__checkboxes {
    grid-template-columns: 1fr;
  }
}

.contact-form {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
}

.contact-form__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spacing-6);
}

.contact-form__field {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
}

.contact-form__field--full {
  grid-column: 1 / -1;
}

.contact-form__label {
  font-family: var(--font-display);
  font-weight: var(--font-weight-medium);
  font-size: var(--text-sm);
  color: var(--color-gray-700);
}

.contact-form__input,
.contact-form__select,
.contact-form__textarea {
  padding: var(--spacing-3) var(--spacing-4);
  font-family: var(--font-body);
  font-size: var(--text-base);
  color: var(--color-gray-900);
  background: var(--color-white);
  border: 2px solid var(--color-gray-300);
  border-radius: var(--radius-md);
  transition: all var(--transition-base);
}

.contact-form__input:focus,
.contact-form__select:focus,
.contact-form__textarea:focus {
  outline: none;
  border-color: var(--color-secondary);
  box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.1);
}

.contact-form__input--error,
.contact-form__select--error,
.contact-form__textarea--error,
.contact-form__checkbox--error {
  border-color: #EF4444;
}

.contact-form__error {
  font-size: var(--text-sm);
  color: #EF4444;
}

.contact-form__checkboxes {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--spacing-3);
}

.contact-form__checkbox-label {
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
  cursor: pointer;
  padding: var(--spacing-2);
  border-radius: var(--radius-md);
  transition: background-color var(--transition-fast);
}

.contact-form__checkbox-label:hover {
  background: var(--color-gray-50);
}

.contact-form__checkbox {
  width: 20px;
  height: 20px;
  cursor: pointer;
  accent-color: var(--color-secondary);
}

.contact-form__checkbox-label--consent {
  align-items: flex-start;
  padding: var(--spacing-4);
  background: var(--color-gray-50);
  border-radius: var(--radius-md);
}

.contact-form__checkbox-label--consent a {
  color: var(--color-secondary);
  text-decoration: underline;
}

.contact-form__submit {
  margin-top: var(--spacing-6);
}

.contact-form__submit-error {
  padding: var(--spacing-4);
  background: #FEE2E2;
  border: 1px solid #EF4444;
  border-radius: var(--radius-md);
  color: #991B1B;
  margin-top: var(--spacing-6);
  text-align: center;
}

.contact-form__success {
  text-align: center;
  padding: var(--spacing-12);
  background: var(--color-gray-50);
  border-radius: var(--radius-xl);
}

.contact-form__success-icon {
  width: 80px;
  height: 80px;
  margin: 0 auto var(--spacing-6) auto;
  color: var(--color-accent);
}

.contact-form__success-title {
  font-size: var(--text-3xl);
  color: var(--color-primary);
  margin-bottom: var(--spacing-4);
}

.contact-form__success-message {
  font-size: var(--text-lg);
  color: var(--color-gray-600);
  margin: 0;
}

@media (max-width: 768px) {
  .contact-form__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-5);
  }
  
  .contact-form__checkboxes {
    grid-template-columns: 1fr;
  }
}
/*!*************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/public/pages/Devis.css ***!
  \*************************************************************************************************************************/
/* Page Devis */

.devis-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.devis-hero {
  background: linear-gradient(135deg, var(--color-primary) 0%, #1e3a5f 100%);
  padding: 8rem 0 4rem;
  text-align: center;
}

.devis-hero__title {
  color: white;
  font-size: var(--text-4xl);
  font-weight: var(--font-weight-bold);
  margin-bottom: 1rem;
}

.devis-hero__description {
  color: rgba(255, 255, 255, 0.8);
  font-size: var(--text-lg);
  max-width: 600px;
  margin: 0 auto;
}

.devis-content {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 3rem;
  align-items: start;
}

.devis-form-wrapper {
  background: white;
  border-radius: var(--radius-xl);
  padding: 2rem;
  box-shadow: var(--shadow-lg);
}

.devis-info {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  position: sticky;
  top: 100px;
}

.devis-info__card {
  background: white;
  border-radius: var(--radius-xl);
  padding: 1.5rem;
  box-shadow: var(--shadow-md);
}

.devis-info__card--accent {
  background: linear-gradient(135deg, var(--color-secondary) 0%, #0ea5e9 100%);
  color: white;
}

.devis-info__card--accent h3 {
  color: white;
  margin-bottom: 0.5rem;
}

.devis-info__card--accent p {
  opacity: 0.9;
  margin-bottom: 1rem;
}

.devis-info__title {
  font-size: var(--text-lg);
  font-weight: var(--font-weight-semibold);
  margin-bottom: 1.5rem;
  color: var(--color-gray-900);
}

.devis-info__benefit {
  display: flex;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.devis-info__benefit:last-child {
  margin-bottom: 0;
}

.devis-info__benefit svg {
  width: 24px;
  height: 24px;
  color: var(--color-secondary);
  flex-shrink: 0;
}

.devis-info__benefit strong {
  display: block;
  font-size: var(--text-sm);
  color: var(--color-gray-900);
}

.devis-info__benefit p {
  font-size: var(--text-xs);
  color: var(--color-gray-600);
  margin: 0;
}

.devis-info__phone {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: white;
  font-size: var(--text-xl);
  font-weight: var(--font-weight-bold);
  text-decoration: none;
}

.devis-info__phone svg {
  width: 24px;
  height: 24px;
}

.devis-info__phone:hover {
  opacity: 0.9;
}

@media (max-width: 1024px) {
  .devis-content {
    grid-template-columns: 1fr;
  }

  .devis-info {
    position: static;
    order: -1;
  }
}

@media (max-width: 768px) {
  .devis-hero {
    padding: 6rem 0 3rem;
  }

  .devis-hero__title {
    font-size: var(--text-3xl);
  }

  .devis-form-wrapper {
    padding: 1.5rem;
  }
}

/*!*********************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/styles/themes/theme-modern.css ***!
  \*********************************************************************************************************************************/
/* Theme Modern - Cyan & Charcoal (Default) */
:root {
  --color-primary: #0F172A;
  --color-primary-light: #1e3a5f;
  --color-secondary: #38BDF8;
  --color-secondary-dark: #0ea5e9;
  --color-accent: #10B981;
  --color-accent-dark: #059669;

  --gradient-hero: linear-gradient(135deg, #0F172A 0%, #1e3a5f 100%);
  --gradient-accent: linear-gradient(135deg, #38BDF8 0%, #0ea5e9 100%);
  --gradient-cta: linear-gradient(135deg, #0F172A 0%, #1e3a5f 100%);

  --header-bg: rgba(255, 255, 255, 0.98);
  --header-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);

  --card-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  --card-shadow-hover: 0 10px 15px -3px rgba(0, 0, 0, 0.15);

  --border-radius-base: 0.75rem;
  --border-radius-lg: 1rem;
  --border-radius-xl: 1.5rem;
}

/*!*********************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/styles/themes/theme-forest.css ***!
  \*********************************************************************************************************************************/
/* Theme Forest - Natural Green */
:root {
  --color-primary: #1a3c34;
  --color-primary-light: #2d5a4e;
  --color-secondary: #34d399;
  --color-secondary-dark: #10b981;
  --color-accent: #fbbf24;
  --color-accent-dark: #f59e0b;

  --gradient-hero: linear-gradient(135deg, #1a3c34 0%, #2d5a4e 100%);
  --gradient-accent: linear-gradient(135deg, #34d399 0%, #10b981 100%);
  --gradient-cta: linear-gradient(135deg, #1a3c34 0%, #2d5a4e 100%);

  --header-bg: rgba(255, 255, 255, 0.98);
  --header-shadow: 0 1px 3px rgba(26, 60, 52, 0.1);

  --card-shadow: 0 4px 6px -1px rgba(26, 60, 52, 0.1);
  --card-shadow-hover: 0 10px 15px -3px rgba(26, 60, 52, 0.15);

  --border-radius-base: 1rem;
  --border-radius-lg: 1.25rem;
  --border-radius-xl: 2rem;
}

/* Forest theme specific overrides */
[data-theme="forest"] .header__logo-icon {
  color: #1a3c34;
}

[data-theme="forest"] .btn-primary,
[data-theme="forest"] .btn-secondary {
  background: linear-gradient(135deg, #34d399 0%, #10b981 100%);
}

[data-theme="forest"] .hero {
  background: linear-gradient(135deg, #1a3c34 0%, #2d5a4e 100%);
}

[data-theme="forest"] .stat-card:hover,
[data-theme="forest"] .service-card:hover {
  border-color: #34d399;
}

[data-theme="forest"] .home__proof-icon {
  color: #34d399;
}

[data-theme="forest"] .home__process-number {
  background: linear-gradient(135deg, #34d399 0%, #10b981 100%);
}

[data-theme="forest"] .footer__top {
  background: linear-gradient(135deg, #1a3c34 0%, #2d5a4e 100%);
}

/*!*********************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/styles/themes/theme-sunset.css ***!
  \*********************************************************************************************************************************/
/* Theme Sunset - Warm Orange & Red */
:root {
  --color-primary: #7c2d12;
  --color-primary-light: #9a3412;
  --color-secondary: #fb923c;
  --color-secondary-dark: #f97316;
  --color-accent: #fbbf24;
  --color-accent-dark: #f59e0b;

  --gradient-hero: linear-gradient(135deg, #7c2d12 0%, #c2410c 100%);
  --gradient-accent: linear-gradient(135deg, #fb923c 0%, #f97316 100%);
  --gradient-cta: linear-gradient(135deg, #7c2d12 0%, #9a3412 100%);

  --header-bg: rgba(255, 255, 255, 0.98);
  --header-shadow: 0 1px 3px rgba(124, 45, 18, 0.1);

  --card-shadow: 0 4px 6px -1px rgba(124, 45, 18, 0.1);
  --card-shadow-hover: 0 10px 15px -3px rgba(124, 45, 18, 0.15);

  --border-radius-base: 0.5rem;
  --border-radius-lg: 0.75rem;
  --border-radius-xl: 1rem;
}

/* Sunset theme specific overrides */
[data-theme="sunset"] .header__logo-icon {
  color: #7c2d12;
}

[data-theme="sunset"] .btn-primary,
[data-theme="sunset"] .btn-secondary {
  background: linear-gradient(135deg, #fb923c 0%, #f97316 100%);
}

[data-theme="sunset"] .hero {
  background: linear-gradient(135deg, #7c2d12 0%, #c2410c 100%);
}

[data-theme="sunset"] .stat-card:hover,
[data-theme="sunset"] .service-card:hover {
  border-color: #fb923c;
}

[data-theme="sunset"] .home__proof-icon {
  color: #fb923c;
}

[data-theme="sunset"] .home__process-number {
  background: linear-gradient(135deg, #fb923c 0%, #f97316 100%);
}

[data-theme="sunset"] .footer__top {
  background: linear-gradient(135deg, #7c2d12 0%, #9a3412 100%);
}

[data-theme="sunset"] .secteur-card__icon,
[data-theme="sunset"] .value-card__icon {
  background: linear-gradient(135deg, #fb923c 0%, #f97316 100%);
}

[data-theme="sunset"] .contact-card--accent {
  background: linear-gradient(135deg, #fb923c 0%, #f97316 100%);
}

/*!********************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/styles/themes/theme-ocean.css ***!
  \********************************************************************************************************************************/
/* Theme Ocean - Deep Blue */
:root {
  --color-primary: #1e3a8a;
  --color-primary-light: #1d4ed8;
  --color-secondary: #60a5fa;
  --color-secondary-dark: #3b82f6;
  --color-accent: #06b6d4;
  --color-accent-dark: #0891b2;

  --gradient-hero: linear-gradient(135deg, #1e3a8a 0%, #1d4ed8 100%);
  --gradient-accent: linear-gradient(135deg, #60a5fa 0%, #3b82f6 100%);
  --gradient-cta: linear-gradient(135deg, #1e3a8a 0%, #1d4ed8 100%);

  --header-bg: rgba(255, 255, 255, 0.98);
  --header-shadow: 0 1px 3px rgba(30, 58, 138, 0.1);

  --card-shadow: 0 4px 6px -1px rgba(30, 58, 138, 0.1);
  --card-shadow-hover: 0 10px 15px -3px rgba(30, 58, 138, 0.15);

  --border-radius-base: 0.75rem;
  --border-radius-lg: 1rem;
  --border-radius-xl: 1.5rem;
}

/* Ocean theme specific overrides */
[data-theme="ocean"] .header__logo-icon {
  color: #1e3a8a;
}

[data-theme="ocean"] .btn-primary,
[data-theme="ocean"] .btn-secondary {
  background: linear-gradient(135deg, #60a5fa 0%, #3b82f6 100%);
}

[data-theme="ocean"] .hero {
  background: linear-gradient(135deg, #1e3a8a 0%, #1d4ed8 100%);
}

[data-theme="ocean"] .stat-card:hover,
[data-theme="ocean"] .service-card:hover {
  border-color: #60a5fa;
}

[data-theme="ocean"] .home__proof-icon {
  color: #60a5fa;
}

[data-theme="ocean"] .home__process-number {
  background: linear-gradient(135deg, #60a5fa 0%, #3b82f6 100%);
}

[data-theme="ocean"] .footer__top {
  background: linear-gradient(135deg, #1e3a8a 0%, #1d4ed8 100%);
}

[data-theme="ocean"] .secteur-card__icon,
[data-theme="ocean"] .value-card__icon {
  background: linear-gradient(135deg, #60a5fa 0%, #3b82f6 100%);
}

[data-theme="ocean"] .contact-card--accent,
[data-theme="ocean"] .devis-info__card--accent {
  background: linear-gradient(135deg, #60a5fa 0%, #3b82f6 100%);
}

[data-theme="ocean"] .faq-category.active {
  background: #3b82f6;
  border-color: #3b82f6;
}

/*!**********************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/js/styles/themes/theme-minimal.css ***!
  \**********************************************************************************************************************************/
/* Theme Minimal - Black & White */
:root {
  --color-primary: #0a0a0a;
  --color-primary-light: #262626;
  --color-secondary: #525252;
  --color-secondary-dark: #404040;
  --color-accent: #171717;
  --color-accent-dark: #0a0a0a;

  --gradient-hero: linear-gradient(135deg, #0a0a0a 0%, #262626 100%);
  --gradient-accent: linear-gradient(135deg, #525252 0%, #404040 100%);
  --gradient-cta: linear-gradient(135deg, #0a0a0a 0%, #262626 100%);

  --header-bg: rgba(255, 255, 255, 1);
  --header-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);

  --card-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  --card-shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.1);

  --border-radius-base: 0;
  --border-radius-lg: 0;
  --border-radius-xl: 0;
}

/* Minimal theme specific overrides */
[data-theme="minimal"] .header__logo-icon {
  color: #0a0a0a;
}

[data-theme="minimal"] .btn-primary,
[data-theme="minimal"] .btn-secondary {
  background: #0a0a0a;
  border-radius: 0;
}

[data-theme="minimal"] .btn-primary:hover,
[data-theme="minimal"] .btn-secondary:hover {
  background: #262626;
}

[data-theme="minimal"] .hero {
  background: #0a0a0a;
}

[data-theme="minimal"] .stat-card,
[data-theme="minimal"] .service-card,
[data-theme="minimal"] .admin-card,
[data-theme="minimal"] .contact-card,
[data-theme="minimal"] .secteur-card,
[data-theme="minimal"] .testimonial-card,
[data-theme="minimal"] .value-card,
[data-theme="minimal"] .team-card,
[data-theme="minimal"] .faq-item {
  border-radius: 0;
  border: 1px solid #e5e5e5;
}

[data-theme="minimal"] .stat-card:hover,
[data-theme="minimal"] .service-card:hover {
  border-color: #0a0a0a;
}

[data-theme="minimal"] .home__proof-icon {
  color: #0a0a0a;
}

[data-theme="minimal"] .home__process-number {
  background: #0a0a0a;
  border-radius: 0;
}

[data-theme="minimal"] .footer__top {
  background: #0a0a0a;
}

[data-theme="minimal"] .secteur-card__icon,
[data-theme="minimal"] .value-card__icon {
  background: #0a0a0a;
  border-radius: 0;
}

[data-theme="minimal"] .contact-card--accent,
[data-theme="minimal"] .devis-info__card--accent {
  background: #0a0a0a;
}

[data-theme="minimal"] .faq-category.active {
  background: #0a0a0a;
  border-color: #0a0a0a;
}

[data-theme="minimal"] input,
[data-theme="minimal"] textarea,
[data-theme="minimal"] select {
  border-radius: 0;
}

[data-theme="minimal"] .header {
  border-bottom: 1px solid #e5e5e5;
}

[data-theme="minimal"] .header--scrolled {
  box-shadow: none;
  border-bottom: 1px solid #0a0a0a;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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RSw2REFBNkQ7QUFDL0Q7O0FBRUE7O0VBRUUsNkRBQTZEO0FBQy9EOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLHFCQUFxQjtBQUN2Qjs7Ozs7QUNwRUEsa0NBQWtDO0FBQ2xDO0VBQ0Usd0JBQXdCO0VBQ3hCLDhCQUE4QjtFQUM5QiwwQkFBMEI7RUFDMUIsK0JBQStCO0VBQy9CLHVCQUF1QjtFQUN2Qiw0QkFBNEI7O0VBRTVCLGtFQUFrRTtFQUNsRSxvRUFBb0U7RUFDcEUsaUVBQWlFOztFQUVqRSxtQ0FBbUM7RUFDbkMsMkNBQTJDOztFQUUzQyw0Q0FBNEM7RUFDNUMsa0RBQWtEOztFQUVsRCx1QkFBdUI7RUFDdkIscUJBQXFCO0VBQ3JCLHFCQUFxQjtBQUN2Qjs7QUFFQSxxQ0FBcUM7QUFDckM7RUFDRSxjQUFjO0FBQ2hCOztBQUVBOztFQUVFLG1CQUFtQjtFQUNuQixnQkFBZ0I7QUFDbEI7O0FBRUE7O0VBRUUsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBOzs7Ozs7Ozs7RUFTRSxnQkFBZ0I7RUFDaEIseUJBQXlCO0FBQzNCOztBQUVBOztFQUVFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBOztFQUVFLG1CQUFtQjtFQUNuQixnQkFBZ0I7QUFDbEI7O0FBRUE7O0VBRUUsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLHFCQUFxQjtBQUN2Qjs7QUFFQTs7O0VBR0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsZ0NBQWdDO0FBQ2xDOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGdDQUFnQztBQUNsQyIsInNvdXJjZXMiOlsid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3N0eWxlcy9kZXNpZ24tdG9rZW5zLmNzcyIsIndlYnBhY2s6Ly9zeW1mb25ldHRveWFnZS8uL2Fzc2V0cy9qcy9zdHlsZXMvYW5pbWF0aW9ucy5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvc3R5bGVzL3B1YmxpYy5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvcHVibGljL2NvbXBvbmVudHMvQnV0dG9uL0J1dHRvbi5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvcHVibGljL2NvbXBvbmVudHMvSGVhZGVyL05hdkl0ZW1zLmNzcyIsIndlYnBhY2s6Ly9zeW1mb25ldHRveWFnZS8uL2Fzc2V0cy9qcy9wdWJsaWMvY29tcG9uZW50cy9IZWFkZXIvdGVtcGxhdGVzL0NsYXNzaWNIZWFkZXIuY3NzIiwid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3B1YmxpYy9jb21wb25lbnRzL0hlYWRlci90ZW1wbGF0ZXMvQ2VudGVyZWRIZWFkZXIuY3NzIiwid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3B1YmxpYy9jb21wb25lbnRzL0hlYWRlci90ZW1wbGF0ZXMvTWluaW1hbEhlYWRlci5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvcHVibGljL2NvbXBvbmVudHMvSGVhZGVyL3RlbXBsYXRlcy9UcmFuc3BhcmVudEhlYWRlci5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvcHVibGljL2NvbXBvbmVudHMvSGVhZGVyL3RlbXBsYXRlcy9TaWRlYmFySGVhZGVyLmNzcyIsIndlYnBhY2s6Ly9zeW1mb25ldHRveWFnZS8uL2Fzc2V0cy9qcy9wdWJsaWMvY29tcG9uZW50cy9IZWFkZXIvSGVhZGVyLmNzcyIsIndlYnBhY2s6Ly9zeW1mb25ldHRveWFnZS8uL2Fzc2V0cy9qcy9wdWJsaWMvY29tcG9uZW50cy9Gb290ZXIvdGVtcGxhdGVzL1N0YW5kYXJkRm9vdGVyLmNzcyIsIndlYnBhY2s6Ly9zeW1mb25ldHRveWFnZS8uL2Fzc2V0cy9qcy9wdWJsaWMvY29tcG9uZW50cy9Gb290ZXIvdGVtcGxhdGVzL01pbmltYWxGb290ZXIuY3NzIiwid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3B1YmxpYy9jb21wb25lbnRzL0Zvb3Rlci90ZW1wbGF0ZXMvQ2VudGVyZWRGb290ZXIuY3NzIiwid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3B1YmxpYy9jb21wb25lbnRzL0Zvb3Rlci90ZW1wbGF0ZXMvRGFya0Zvb3Rlci5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvcHVibGljL2NvbXBvbmVudHMvRm9vdGVyL3RlbXBsYXRlcy9FeHBhbmRlZEZvb3Rlci5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvcHVibGljL2NvbXBvbmVudHMvRm9vdGVyL0Zvb3Rlci5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvcHVibGljL2NvbXBvbmVudHMvSGVyby9IZXJvLmNzcyIsIndlYnBhY2s6Ly9zeW1mb25ldHRveWFnZS8uL2Fzc2V0cy9qcy9wdWJsaWMvY29tcG9uZW50cy9TZXJ2aWNlQ2FyZC9TZXJ2aWNlQ2FyZC5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvcHVibGljL3BhZ2VzL0hvbWUuY3NzIiwid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3B1YmxpYy9wYWdlcy9TZXJ2aWNlcy5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvcHVibGljL3BhZ2VzL1NlcnZpY2VEZXRhaWwuY3NzIiwid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3B1YmxpYy9ibG9ja3MvSGVyb0Jsb2NrL0hlcm9CbG9jay5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvcHVibGljL2Jsb2Nrcy9TZXJ2aWNlc0Jsb2NrL1NlcnZpY2VzQmxvY2suY3NzIiwid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3B1YmxpYy9ibG9ja3MvQ1RBQmxvY2svQ1RBQmxvY2suY3NzIiwid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3B1YmxpYy9ibG9ja3MvVGV4dEltYWdlQmxvY2svVGV4dEltYWdlQmxvY2suY3NzIiwid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3B1YmxpYy9ibG9ja3MvRkFRQmxvY2svRkFRQmxvY2suY3NzIiwid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3B1YmxpYy9ibG9ja3MvVGVzdGltb25pYWxzQmxvY2svVGVzdGltb25pYWxzQmxvY2suY3NzIiwid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3B1YmxpYy9ibG9ja3MvQ3VzdG9tSFRNTEJsb2NrL0N1c3RvbUhUTUxCbG9jay5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvcHVibGljL2Jsb2Nrcy9QYWdlSGVhZGVyQmxvY2svUGFnZUhlYWRlckJsb2NrLmNzcyIsIndlYnBhY2s6Ly9zeW1mb25ldHRveWFnZS8uL2Fzc2V0cy9qcy9wdWJsaWMvYmxvY2tzL0NvbnRhY3RCbG9jay9Db250YWN0QmxvY2suY3NzIiwid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3B1YmxpYy9ibG9ja3MvRm9ybXVsYWlyZUJsb2NrL0Zvcm11bGFpcmVCbG9jay5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvcHVibGljL3BhZ2VzL1BhZ2VEZXRhaWwuY3NzIiwid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3B1YmxpYy9wYWdlcy9TZWN0ZXVycy5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvcHVibGljL3BhZ2VzL1JlZmVyZW5jZXMuY3NzIiwid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3B1YmxpYy9wYWdlcy9BUHJvcG9zLmNzcyIsIndlYnBhY2s6Ly9zeW1mb25ldHRveWFnZS8uL2Fzc2V0cy9qcy9wdWJsaWMvcGFnZXMvRkFRLmNzcyIsIndlYnBhY2s6Ly9zeW1mb25ldHRveWFnZS8uL2Fzc2V0cy9qcy9wdWJsaWMvcGFnZXMvQ29udGFjdC5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvcHVibGljL2NvbXBvbmVudHMvQ29udGFjdEZvcm0vQ29udGFjdEZvcm0uY3NzIiwid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3B1YmxpYy9wYWdlcy9EZXZpcy5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvc3R5bGVzL3RoZW1lcy90aGVtZS1tb2Rlcm4uY3NzIiwid2VicGFjazovL3N5bWZvbmV0dG95YWdlLy4vYXNzZXRzL2pzL3N0eWxlcy90aGVtZXMvdGhlbWUtZm9yZXN0LmNzcyIsIndlYnBhY2s6Ly9zeW1mb25ldHRveWFnZS8uL2Fzc2V0cy9qcy9zdHlsZXMvdGhlbWVzL3RoZW1lLXN1bnNldC5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvc3R5bGVzL3RoZW1lcy90aGVtZS1vY2Vhbi5jc3MiLCJ3ZWJwYWNrOi8vc3ltZm9uZXR0b3lhZ2UvLi9hc3NldHMvanMvc3R5bGVzL3RoZW1lcy90aGVtZS1taW5pbWFsLmNzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE5vdmFDcmFmdCBDbGVhbmluZyAtIERlc2lnbiBUb2tlbnNcbiAqIERpcmVjdGlvbiBhcnRpc3RpcXVlIDogTWluaW1hbGlzdGUgUHJlbWl1bSAvIFByb3ByZXTDqSAvIE1vZGVybml0w6lcbiAqL1xuXG46cm9vdCB7XG4gIC8qIFBhbGV0dGUgZGUgY291bGV1cnMgLSBOZXV0cmVzIMOpbMOpZ2FudHMgKi9cbiAgLS1jb2xvci1wcmltYXJ5OiAjMEYxNzJBOyAgICAgICAgLyogQ2hhcmJvbiBwcm9mb25kICovXG4gIC0tY29sb3ItcHJpbWFyeS1saWdodDogIzFFMjkzQjtcbiAgLS1jb2xvci1zZWNvbmRhcnk6ICMzOEJERjg7ICAgICAgLyogQmxldSBjbGFpciB2aXZhbnQgKi9cbiAgLS1jb2xvci1zZWNvbmRhcnktbGlnaHQ6ICM3REQzRkM7XG4gIC0tY29sb3ItYWNjZW50OiAjMTBCOTgxOyAgICAgICAgIC8qIFZlcnQgc3VjY2Vzcy9jb25maWFuY2UgKi9cbiAgLS1jb2xvci1hY2NlbnQtZGFyazogIzA1OTY2OTtcbiAgXG4gIC8qIE5ldXRyYWxzICovXG4gIC0tY29sb3Itd2hpdGU6ICNGRkZGRkY7XG4gIC0tY29sb3ItZ3JheS01MDogI0Y4RkFGQztcbiAgLS1jb2xvci1ncmF5LTEwMDogI0YxRjVGOTtcbiAgLS1jb2xvci1ncmF5LTIwMDogI0UyRThGMDtcbiAgLS1jb2xvci1ncmF5LTMwMDogI0NCRDVFMTtcbiAgLS1jb2xvci1ncmF5LTQwMDogIzk0QTNCODtcbiAgLS1jb2xvci1ncmF5LTUwMDogIzY0NzQ4QjtcbiAgLS1jb2xvci1ncmF5LTYwMDogIzQ3NTU2OTtcbiAgLS1jb2xvci1ncmF5LTcwMDogIzMzNDE1NTtcbiAgLS1jb2xvci1ncmF5LTgwMDogIzFFMjkzQjtcbiAgLS1jb2xvci1ncmF5LTkwMDogIzBGMTcyQTtcbiAgXG4gIC8qIFR5cG9ncmFwaHkgU2NhbGUgKi9cbiAgLS1mb250LWRpc3BsYXk6ICdNb250c2VycmF0JywgLWFwcGxlLXN5c3RlbSwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmO1xuICAtLWZvbnQtYm9keTogJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmO1xuICBcbiAgLS10ZXh0LXhzOiAwLjc1cmVtOyAgICAgIC8qIDEycHggKi9cbiAgLS10ZXh0LXNtOiAwLjg3NXJlbTsgICAgIC8qIDE0cHggKi9cbiAgLS10ZXh0LWJhc2U6IDFyZW07ICAgICAgIC8qIDE2cHggKi9cbiAgLS10ZXh0LWxnOiAxLjEyNXJlbTsgICAgIC8qIDE4cHggKi9cbiAgLS10ZXh0LXhsOiAxLjI1cmVtOyAgICAgIC8qIDIwcHggKi9cbiAgLS10ZXh0LTJ4bDogMS41cmVtOyAgICAgIC8qIDI0cHggKi9cbiAgLS10ZXh0LTN4bDogMS44NzVyZW07ICAgIC8qIDMwcHggKi9cbiAgLS10ZXh0LTR4bDogMi4yNXJlbTsgICAgIC8qIDM2cHggKi9cbiAgLS10ZXh0LTV4bDogM3JlbTsgICAgICAgIC8qIDQ4cHggKi9cbiAgLS10ZXh0LTZ4bDogMy43NXJlbTsgICAgIC8qIDYwcHggKi9cbiAgLS10ZXh0LTd4bDogNC41cmVtOyAgICAgIC8qIDcycHggKi9cbiAgXG4gIC0tZm9udC13ZWlnaHQtbm9ybWFsOiA0MDA7XG4gIC0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XG4gIC0tZm9udC13ZWlnaHQtc2VtaWJvbGQ6IDYwMDtcbiAgLS1mb250LXdlaWdodC1ib2xkOiA3MDA7XG4gIC0tZm9udC13ZWlnaHQtZXh0cmFib2xkOiA4MDA7XG4gIFxuICAtLWxpbmUtaGVpZ2h0LXRpZ2h0OiAxLjI1O1xuICAtLWxpbmUtaGVpZ2h0LW5vcm1hbDogMS41O1xuICAtLWxpbmUtaGVpZ2h0LXJlbGF4ZWQ6IDEuNzU7XG4gIFxuICAvKiBTcGFjaW5nIFNjYWxlIChzeXN0w6htZSA0cHgpICovXG4gIC0tc3BhY2luZy0xOiAwLjI1cmVtOyAgICAvKiA0cHggKi9cbiAgLS1zcGFjaW5nLTI6IDAuNXJlbTsgICAgIC8qIDhweCAqL1xuICAtLXNwYWNpbmctMzogMC43NXJlbTsgICAgLyogMTJweCAqL1xuICAtLXNwYWNpbmctNDogMXJlbTsgICAgICAgLyogMTZweCAqL1xuICAtLXNwYWNpbmctNTogMS4yNXJlbTsgICAgLyogMjBweCAqL1xuICAtLXNwYWNpbmctNjogMS41cmVtOyAgICAgLyogMjRweCAqL1xuICAtLXNwYWNpbmctODogMnJlbTsgICAgICAgLyogMzJweCAqL1xuICAtLXNwYWNpbmctMTA6IDIuNXJlbTsgICAgLyogNDBweCAqL1xuICAtLXNwYWNpbmctMTI6IDNyZW07ICAgICAgLyogNDhweCAqL1xuICAtLXNwYWNpbmctMTY6IDRyZW07ICAgICAgLyogNjRweCAqL1xuICAtLXNwYWNpbmctMjA6IDVyZW07ICAgICAgLyogODBweCAqL1xuICAtLXNwYWNpbmctMjQ6IDZyZW07ICAgICAgLyogOTZweCAqL1xuICAtLXNwYWNpbmctMzI6IDhyZW07ICAgICAgLyogMTI4cHggKi9cbiAgXG4gIC8qIEJvcmRlciBSYWRpdXMgKi9cbiAgLS1yYWRpdXMtc206IDAuMzc1cmVtOyAgIC8qIDZweCAqL1xuICAtLXJhZGl1cy1tZDogMC41cmVtOyAgICAgLyogOHB4ICovXG4gIC0tcmFkaXVzLWxnOiAwLjc1cmVtOyAgICAvKiAxMnB4ICovXG4gIC0tcmFkaXVzLXhsOiAxcmVtOyAgICAgICAvKiAxNnB4ICovXG4gIC0tcmFkaXVzLTJ4bDogMS41cmVtOyAgICAvKiAyNHB4ICovXG4gIC0tcmFkaXVzLWZ1bGw6IDk5OTlweDtcbiAgXG4gIC8qIFNoYWRvd3MgLSBkb3VjZXMgZXQgw6lsw6lnYW50ZXMgKi9cbiAgLS1zaGFkb3cteHM6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIC0tc2hhZG93LXNtOiAwIDFweCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgLS1zaGFkb3ctbWQ6IDAgNHB4IDZweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAycHggNHB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAtLXNoYWRvdy1sZzogMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgNHB4IDZweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgLS1zaGFkb3cteGw6IDAgMjBweCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDhweCAxMHB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAtLXNoYWRvdy0yeGw6IDAgMjVweCA1MHB4IC0xMnB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIFxuICAvKiBUcmFuc2l0aW9ucyAqL1xuICAtLXRyYW5zaXRpb24tZmFzdDogMTUwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgLS10cmFuc2l0aW9uLWJhc2U6IDI1MG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIC0tdHJhbnNpdGlvbi1zbG93OiAzNTBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAtLXRyYW5zaXRpb24tc2xvd2VyOiA1MDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBcbiAgLyogWi1pbmRleCBTY2FsZSAqL1xuICAtLXotMDogMDtcbiAgLS16LTEwOiAxMDtcbiAgLS16LTIwOiAyMDtcbiAgLS16LTMwOiAzMDtcbiAgLS16LTQwOiA0MDtcbiAgLS16LTUwOiA1MDtcbiAgXG4gIC8qIENvbnRhaW5lciBXaWR0aHMgKi9cbiAgLS1jb250YWluZXItc206IDY0MHB4O1xuICAtLWNvbnRhaW5lci1tZDogNzY4cHg7XG4gIC0tY29udGFpbmVyLWxnOiAxMDI0cHg7XG4gIC0tY29udGFpbmVyLXhsOiAxMjgwcHg7XG4gIC0tY29udGFpbmVyLTJ4bDogMTUzNnB4O1xuICBcbiAgLyogR3JpZCAqL1xuICAtLWdyaWQtY29scy0xMjogcmVwZWF0KDEyLCBtaW5tYXgoMCwgMWZyKSk7XG4gIC0tZ3JpZC1jb2xzLTY6IHJlcGVhdCg2LCBtaW5tYXgoMCwgMWZyKSk7XG4gIC0tZ3JpZC1jb2xzLTQ6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XG4gIC0tZ3JpZC1nYXA6IHZhcigtLXNwYWNpbmctNik7XG59XG5cbi8qIFJlc3BlY3QgcHJlZmVycy1yZWR1Y2VkLW1vdGlvbiAqL1xuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgKiB7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjAxbXMgIWltcG9ydGFudDtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMW1zICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogQmFzZSBSZXNldCAqL1xuKiB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW5vcm1hbCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1ub3JtYWwpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG59XG5cbi8qIFR5cG9ncmFwaHkgQmFzZSAqL1xuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC10aWdodCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbn1cblxuaDEgeyBmb250LXNpemU6IHZhcigtLXRleHQtNXhsKTsgfVxuaDIgeyBmb250LXNpemU6IHZhcigtLXRleHQtNHhsKTsgfVxuaDMgeyBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTsgfVxuaDQgeyBmb250LXNpemU6IHZhcigtLXRleHQtMnhsKTsgfVxuaDUgeyBmb250LXNpemU6IHZhcigtLXRleHQteGwpOyB9XG5oNiB7IGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7IH1cblxucCB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNCk7XG59XG5cbmEge1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuXG5hOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeS1saWdodCk7XG59XG5cbi8qIFV0aWxpdGllcyAqL1xuLmNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lci14bCk7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAwIHZhcigtLXNwYWNpbmctNCk7XG59XG5cbi5jb250YWluZXItbGcge1xuICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lci0yeGwpO1xufVxuXG4uc2VjdGlvbiB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMjApIDA7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc2VjdGlvbiB7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0xNikgMDtcbiAgfVxuXG4gIGgxIHsgZm9udC1zaXplOiB2YXIoLS10ZXh0LTR4bCk7IH1cbiAgaDIgeyBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTsgfVxuICBoMyB7IGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0yeGwpOyB9XG59XG5cbi8qID09PT09IEJsb2NrcyBSb3cgLSBHcmlkIGxheW91dCBmb3Igc2lkZS1ieS1zaWRlIGJsb2NrcyA9PT09PSAqL1xuLmJsb2Nrcy1jb250YWluZXIge1xuICBwYWRkaW5nLXRvcDogNzJweDtcbn1cblxuLmJsb2Nrcy1yb3cge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgMWZyKTtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTYpO1xuICBwYWRkaW5nOiAwIHZhcigtLXNwYWNpbmctNCk7XG4gIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyLXhsKTtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5ibG9ja3Mtcm93X19jb2wge1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5ibG9ja3Mtcm93X19jb2wgPiAqIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJsb2Nrcy1yb3cge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy00KTtcbiAgfVxuXG4gIC5ibG9ja3Mtcm93X19jb2wge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDEgIWltcG9ydGFudDtcbiAgfVxufSIsIi8qKlxuICogTm92YUNyYWZ0IENsZWFuaW5nIC0gQW5pbWF0aW9uc1xuICogQW5pbWF0aW9ucyBzb2JyZXMgZXQgw6lsw6lnYW50ZXMgYXZlYyByZXNwZWN0IGRlIHByZWZlcnMtcmVkdWNlZC1tb3Rpb25cbiAqL1xuXG4vKiBGYWRlIEluIGFuaW1hdGlvbnMgKi9cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluRG93biB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5cbi8qIFNjYWxlIGFuaW1hdGlvbnMgKi9cbkBrZXlmcmFtZXMgc2NhbGVJbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG5cbi8qIFNsaWRlIGFuaW1hdGlvbnMgKi9cbkBrZXlmcmFtZXMgc2xpZGVJblVwIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cblxuLyogUHVsc2UgZm9yIGNhbGwtdG8tYWN0aW9uICovXG5Aa2V5ZnJhbWVzIHB1bHNlIHtcbiAgMCUsIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjg7XG4gIH1cbn1cblxuLyogU2hpbW1lciBlZmZlY3QgZm9yIGxvYWRpbmcgKi9cbkBrZXlmcmFtZXMgc2hpbW1lciB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwMHB4IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwMHB4IDA7XG4gIH1cbn1cblxuLyogQ291bnRlciBhbmltYXRpb24gKi9cbkBrZXlmcmFtZXMgY291bnRVcCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4vKiBVdGlsaXR5IGNsYXNzZXMgKi9cbi5hbmltYXRlLWZhZGUtaW4ge1xuICBhbmltYXRpb246IGZhZGVJbiB2YXIoLS10cmFuc2l0aW9uLWJhc2UpIGVhc2Utb3V0O1xufVxuXG4uYW5pbWF0ZS1mYWRlLWluLXVwIHtcbiAgYW5pbWF0aW9uOiBmYWRlSW5VcCB2YXIoLS10cmFuc2l0aW9uLXNsb3cpIGVhc2Utb3V0O1xufVxuXG4uYW5pbWF0ZS1mYWRlLWluLWRvd24ge1xuICBhbmltYXRpb246IGZhZGVJbkRvd24gdmFyKC0tdHJhbnNpdGlvbi1zbG93KSBlYXNlLW91dDtcbn1cblxuLmFuaW1hdGUtZmFkZS1pbi1sZWZ0IHtcbiAgYW5pbWF0aW9uOiBmYWRlSW5MZWZ0IHZhcigtLXRyYW5zaXRpb24tc2xvdykgZWFzZS1vdXQ7XG59XG5cbi5hbmltYXRlLWZhZGUtaW4tcmlnaHQge1xuICBhbmltYXRpb246IGZhZGVJblJpZ2h0IHZhcigtLXRyYW5zaXRpb24tc2xvdykgZWFzZS1vdXQ7XG59XG5cbi5hbmltYXRlLXNjYWxlLWluIHtcbiAgYW5pbWF0aW9uOiBzY2FsZUluIHZhcigtLXRyYW5zaXRpb24tc2xvdykgZWFzZS1vdXQ7XG59XG5cbi8qIFN0YWdnZXIgZGVsYXlzIHBvdXIgYW5pbWF0aW9ucyBzw6lxdWVudGllbGxlcyAqL1xuLnN0YWdnZXItMSB7IGFuaW1hdGlvbi1kZWxheTogMTAwbXM7IH1cbi5zdGFnZ2VyLTIgeyBhbmltYXRpb24tZGVsYXk6IDIwMG1zOyB9XG4uc3RhZ2dlci0zIHsgYW5pbWF0aW9uLWRlbGF5OiAzMDBtczsgfVxuLnN0YWdnZXItNCB7IGFuaW1hdGlvbi1kZWxheTogNDAwbXM7IH1cbi5zdGFnZ2VyLTUgeyBhbmltYXRpb24tZGVsYXk6IDUwMG1zOyB9XG4uc3RhZ2dlci02IHsgYW5pbWF0aW9uLWRlbGF5OiA2MDBtczsgfVxuXG4vKiBIb3ZlciBlZmZlY3RzICovXG4uaG92ZXItbGlmdCB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWJhc2UpLCBib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG59XG5cbi5ob3Zlci1saWZ0OmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGcpO1xufVxuXG4uaG92ZXItc2NhbGUge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1iYXNlKTtcbn1cblxuLmhvdmVyLXNjYWxlOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcbn1cblxuLyogU2Nyb2xsIHJldmVhbCAtIGNsYXNzZXMgYXBwbGlxdcOpZXMgdmlhIEludGVyc2VjdGlvbiBPYnNlcnZlciAqL1xuLnNjcm9sbC1yZXZlYWwge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1zbG93KSwgdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tc2xvdyk7XG59XG5cbi5zY3JvbGwtcmV2ZWFsLmlzLXZpc2libGUge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5cbi8qIExvYWRpbmcgc2hpbW1lciAqL1xuLmxvYWRpbmctc2hpbW1lciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICA5MGRlZyxcbiAgICB2YXIoLS1jb2xvci1ncmF5LTEwMCkgMCUsXG4gICAgdmFyKC0tY29sb3ItZ3JheS0yMDApIDUwJSxcbiAgICB2YXIoLS1jb2xvci1ncmF5LTEwMCkgMTAwJVxuICApO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMDBweCAxMDAlO1xuICBhbmltYXRpb246IHNoaW1tZXIgMnMgaW5maW5pdGU7XG59XG5cbi8qIEZvY3VzIHZpc2libGUgcG91ciBhY2Nlc3NpYmlsaXTDqSAqL1xuLmZvY3VzLXJpbmc6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pO1xufVxuXG4vKiBTbW9vdGggc2Nyb2xsaW5nICovXG5odG1sIHtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbi8qIFJlc3BlY3QgZGUgcHJlZmVycy1yZWR1Y2VkLW1vdGlvbiAqL1xuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgaHRtbCB7XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvO1xuICB9XG4gIFxuICAuYW5pbWF0ZS1mYWRlLWluLFxuICAuYW5pbWF0ZS1mYWRlLWluLXVwLFxuICAuYW5pbWF0ZS1mYWRlLWluLWRvd24sXG4gIC5hbmltYXRlLWZhZGUtaW4tbGVmdCxcbiAgLmFuaW1hdGUtZmFkZS1pbi1yaWdodCxcbiAgLmFuaW1hdGUtc2NhbGUtaW4ge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxuICBcbiAgLnNjcm9sbC1yZXZlYWwge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbiAgXG4gIC5ob3Zlci1saWZ0OmhvdmVyLFxuICAuaG92ZXItc2NhbGU6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufSIsIi8qIERlc2lnbiB0b2tlbnMgKE9CTElHQVRPSVJFIEVOIFBSRU1JRVIpICovXG5AaW1wb3J0ICcuL2Rlc2lnbi10b2tlbnMuY3NzJztcblxuLyogQW5pbWF0aW9ucyBnbG9iYWxlcyAqL1xuQGltcG9ydCAnLi9hbmltYXRpb25zLmNzcyc7XG5cblxuXG5cbi8qIFJlc2V0IC8gYmFzZSAqL1xuKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHksIHN5c3RlbS11aSwgc2Fucy1zZXJpZik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktNTApO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xufVxuIiwiLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbi1iYXNlKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uYnRuOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuLyogU2l6ZXMgKi9cbi5idG4tLXNtIHtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0yKSB2YXIoLS1zcGFjaW5nLTQpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBtaW4taGVpZ2h0OiAzNnB4O1xufVxuXG4uYnRuLS1tZCB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMykgdmFyKC0tc3BhY2luZy02KTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWJhc2UpO1xuICBtaW4taGVpZ2h0OiA0NHB4O1xufVxuXG4uYnRuLS1sZyB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCkgdmFyKC0tc3BhY2luZy04KTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnKTtcbiAgbWluLWhlaWdodDogNTJweDtcbn1cblxuLyogVmFyaWFudHMgKi9cbi5idG4tLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtKTtcbn1cblxuLmJ0bi0tcHJpbWFyeTpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbWQpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG5cbi5idG4tLXByaW1hcnk6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc20pO1xufVxuXG4uYnRuLS1zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc20pO1xufVxuXG4uYnRuLS1zZWNvbmRhcnk6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zZWNvbmRhcnktbGlnaHQpO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbWQpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG5cbi5idG4tLXNlY29uZGFyeTphY3RpdmU6bm90KDpkaXNhYmxlZCkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1zbSk7XG59XG5cbi5idG4tLWFjY2VudCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFjY2VudCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1zbSk7XG59XG5cbi5idG4tLWFjY2VudDpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFjY2VudC1kYXJrKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1kKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xufVxuXG4uYnRuLS1vdXRsaW5lIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeSk7XG59XG5cbi5idG4tLW91dGxpbmU6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xufVxuXG4uYnRuLS1naG9zdCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG59XG5cbi5idG4tLWdob3N0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xufVxuXG4uYnRuLS13aGl0ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbWQpO1xufVxuXG4uYnRuLS13aGl0ZTpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktNTApO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGcpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG5cbi8qIFN0YXRlcyAqL1xuLmJ0bi0tZnVsbC13aWR0aCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYnRuLS1kaXNhYmxlZCxcbi5idG46ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uYnRuLS1sb2FkaW5nIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogTG9hZGluZyBzcGlubmVyICovXG4uYnRuX19zcGlubmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5idG5fX3NwaW5uZXItaWNvbiB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLmJ0bl9fc3Bpbm5lci1jaXJjbGUge1xuICBzdHJva2U6IGN1cnJlbnRDb2xvcjtcbiAgc3Ryb2tlLWRhc2hhcnJheTogNjA7XG4gIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gIGFuaW1hdGlvbjogc3Bpbm5lci1kYXNoIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc3Bpbm5lci1kYXNoIHtcbiAgMCUge1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDIwMDtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgfVxuICA1MCUge1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDg5LCAyMDA7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0zNXB4O1xuICB9XG4gIDEwMCUge1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDg5LCAyMDA7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMjRweDtcbiAgfVxufVxuXG4vKiBJY29ucyAqL1xuLmJ0bl9faWNvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmJ0bl9faWNvbiBzdmcge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4uYnRuLS1zbSAuYnRuX19pY29uIHN2ZyB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG5cbi5idG4tLWxnIC5idG5fX2ljb24gc3ZnIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbn1cblxuLmJ0bl9fdGV4dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyogUmVzcG9uc2l2ZSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5idG4tLWxnIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTMpIHZhcigtLXNwYWNpbmctNik7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWJhc2UpO1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gIH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmJ0biB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuICBcbiAgLmJ0bjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIFxuICAuYnRuX19zcGlubmVyLWljb24ge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxufSIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBOYXZJdGVtcyAtIFNoYXJlZCBuYXZpZ2F0aW9uIGl0ZW1zXG4gICBEcm9wZG93biArIE1lZ2EgTWVudSBzdXBwb3J0XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ubmF2LWl0ZW1zIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMTI1cmVtO1xufVxuXG4ubmF2LWl0ZW1zX19pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKiBMaW5rcyAqL1xuLm5hdi1pdGVtc19fbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgcGFkZGluZzogMC41cmVtIDAuODc1cmVtO1xuICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycywgYmFja2dyb3VuZC1jb2xvciAwLjJzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLm5hdi1pdGVtc19fbGluazpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1uYXYtaG92ZXIsICMyNTYzZWIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5cbi5uYXYtaXRlbXNfX2xpbmstLWhhcy1jaGlsZHJlbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogQ2hldnJvbiAqL1xuLm5hdi1pdGVtc19fY2hldnJvbiB7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXJnaW4tbGVmdDogMnB4O1xufVxuXG4ubmF2LWl0ZW1zX19jaGV2cm9uLS1vcGVuIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIERyb3Bkb3duIFBhbmVsXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ubmF2LWl0ZW1zX19kcm9wZG93biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyA0cHgpO1xuICBsZWZ0OiAwO1xuICBtaW4td2lkdGg6IDIyMHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3gtc2hhZG93OiAwIDEwcHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgcGFkZGluZzogMC41cmVtO1xuICB6LWluZGV4OiAxMDA7XG4gIGFuaW1hdGlvbjogbmF2SXRlbXNGYWRlSW4gMC4xNXMgZWFzZS1vdXQ7XG59XG5cbkBrZXlmcmFtZXMgbmF2SXRlbXNGYWRlSW4ge1xuICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpOyB9XG4gIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbn1cblxuLm5hdi1pdGVtc19fZHJvcGRvd24tbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMnB4O1xuICBwYWRkaW5nOiAwLjYyNXJlbSAwLjg3NXJlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzFmMjkzNztcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzO1xufVxuXG4ubmF2LWl0ZW1zX19kcm9wZG93bi1saW5rOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjRmNjtcbn1cblxuLm5hdi1pdGVtc19fZHJvcGRvd24tbmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICBjb2xvcjogIzFmMjkzNztcbn1cblxuLm5hdi1pdGVtc19fZHJvcGRvd24tZGVzYyB7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBjb2xvcjogIzZiNzI4MDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLm5hdi1pdGVtc19fZHJvcGRvd24tZW1wdHkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzljYTNhZjtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNZWdhIE1lbnUgUGFuZWxcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5uYXYtaXRlbXNfX21lZ2FtZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArIDRweCk7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBtaW4td2lkdGg6IDUyMHB4O1xuICBtYXgtd2lkdGg6IDgwMHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3gtc2hhZG93OiAwIDEwcHggNDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgcGFkZGluZzogMS41cmVtO1xuICB6LWluZGV4OiAxMDA7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTYwcHgsIDFmcikpO1xuICBnYXA6IDEuNXJlbTtcbiAgYW5pbWF0aW9uOiBuYXZJdGVtc0ZhZGVJbiAwLjE1cyBlYXNlLW91dDtcbn1cblxuLm5hdi1pdGVtc19fbWVnYW1lbnUtY29sIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjI1cmVtO1xufVxuXG4ubmF2LWl0ZW1zX19tZWdhbWVudS10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMC42ODc1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICBjb2xvcjogIzljYTNhZjtcbiAgcGFkZGluZzogMCAwLjVyZW0gMC41cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YzZjRmNjtcbiAgbWFyZ2luOiAwIDAgMC4zNzVyZW07XG59XG5cbi5uYXYtaXRlbXNfX21lZ2FtZW51LWxpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDFweDtcbiAgcGFkZGluZzogMC41cmVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cztcbn1cblxuLm5hdi1pdGVtc19fbWVnYW1lbnUtbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2Y0ZjY7XG59XG5cbi5uYXYtaXRlbXNfX21lZ2FtZW51LW5hbWUge1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBjb2xvcjogIzFmMjkzNztcbn1cblxuLm5hdi1pdGVtc19fbWVnYW1lbnUtZGVzYyB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgY29sb3I6ICM2YjcyODA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNb2JpbGUgbW9kZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLm5hdi1pdGVtcy0tbW9iaWxlIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGdhcDogMDtcbn1cblxuLm5hdi1pdGVtcy0tbW9iaWxlIC5uYXYtaXRlbXNfX2l0ZW0ge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuXG4ubmF2LWl0ZW1zLS1tb2JpbGUgLm5hdi1pdGVtc19fbGluayB7XG4gIHdpZHRoOiAxMDAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4ubmF2LWl0ZW1zLS1tb2JpbGUgLm5hdi1pdGVtc19fZHJvcGRvd24ge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBwYWRkaW5nOiAwIDAgMCAwLjc1cmVtO1xuICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjZTVlN2ViO1xuICBhbmltYXRpb246IG5vbmU7XG4gIG1pbi13aWR0aDogYXV0bztcbn1cblxuLm5hdi1pdGVtcy0tbW9iaWxlIC5uYXYtaXRlbXNfX21lZ2FtZW51IHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgdHJhbnNmb3JtOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBwYWRkaW5nOiAwLjVyZW0gMCAwLjVyZW0gMC43NXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2U1ZTdlYjtcbiAgYW5pbWF0aW9uOiBub25lO1xuICBtaW4td2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogbm9uZTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIGdhcDogMXJlbTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFJlc3BvbnNpdmUgLSBlbnN1cmUgbWVnYSBtZW51IGRvZXNuJ3Qgb3ZlcmZsb3dcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgLm5hdi1pdGVtc19fbWVnYW1lbnUge1xuICAgIG1pbi13aWR0aDogNDAwcHg7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5uYXYtaXRlbXNfX21lZ2FtZW51IHtcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDbGFzc2ljSGVhZGVyIFRlbXBsYXRlXG4gICBMb2dvIGxlZnQsIG5hdiBjZW50ZXIsIHBob25lICsgQ1RBIHJpZ2h0LiBTbGlkZS1pbiBtb2JpbGUgbWVudSBmcm9tIHJpZ2h0LlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNsYXNzaWMtaGVhZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiB2YXIoLS16LTUwKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itd2hpdGUpO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbi1iYXNlKTtcbn1cblxuLmNsYXNzaWMtaGVhZGVyLS1zY3JvbGxlZCB7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1tZCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbn1cblxuLmNsYXNzaWMtaGVhZGVyX19pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy00KSAwO1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG59XG5cbi5jbGFzc2ljLWhlYWRlci0tc2Nyb2xsZWQgLmNsYXNzaWMtaGVhZGVyX19pbm5lciB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMykgMDtcbn1cblxuLyogTG9nbyAqL1xuLmNsYXNzaWMtaGVhZGVyX19sb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmNsYXNzaWMtaGVhZGVyX19sb2dvOmhvdmVyIHtcbiAgb3BhY2l0eTogMC44O1xufVxuXG4uY2xhc3NpYy1oZWFkZXJfX2xvZ28taWNvbiB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmNsYXNzaWMtaGVhZGVyX19sb2dvLXRleHQge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtbGcpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vKiBOYXZpZ2F0aW9uIERlc2t0b3AgKi9cbi5jbGFzc2ljLWhlYWRlcl9fbmF2IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNsYXNzaWMtaGVhZGVyX19uYXYtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy04KTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uY2xhc3NpYy1oZWFkZXJfX25hdi1saW5rIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS03MDApO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMikgMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuXG4uY2xhc3NpYy1oZWFkZXJfX25hdi1saW5rOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jbGFzc2ljLWhlYWRlci1ob3ZlciwgdmFyKC0tY29sb3Itc2Vjb25kYXJ5KSk7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1iYXNlKTtcbn1cblxuLmNsYXNzaWMtaGVhZGVyX19uYXYtbGluazpob3Zlcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbn1cblxuLyogQWN0aW9ucyAqL1xuLmNsYXNzaWMtaGVhZGVyX19hY3Rpb25zIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpO1xufVxuXG4uY2xhc3NpYy1oZWFkZXJfX3Bob25lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMikgdmFyKC0tc3BhY2luZy00KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuXG4uY2xhc3NpYy1oZWFkZXJfX3Bob25lOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xufVxuXG4uY2xhc3NpYy1oZWFkZXJfX3Bob25lLWljb24ge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmNsYXNzaWMtaGVhZGVyX19waG9uZS10ZXh0IHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLyogTW9iaWxlIFRvZ2dsZSAqL1xuLmNsYXNzaWMtaGVhZGVyX19tb2JpbGUtdG9nZ2xlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogNXB4O1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogdmFyKC0tei01MCk7XG59XG5cbi5jbGFzc2ljLWhlYWRlcl9fbW9iaWxlLXRvZ2dsZS1saW5lIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbn1cblxuLmNsYXNzaWMtaGVhZGVyX19tb2JpbGUtdG9nZ2xlLWxpbmUtLW9wZW46bnRoLWNoaWxkKDEpIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDdweCkgcm90YXRlKDQ1ZGVnKTtcbn1cblxuLmNsYXNzaWMtaGVhZGVyX19tb2JpbGUtdG9nZ2xlLWxpbmUtLW9wZW46bnRoLWNoaWxkKDIpIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmNsYXNzaWMtaGVhZGVyX19tb2JpbGUtdG9nZ2xlLWxpbmUtLW9wZW46bnRoLWNoaWxkKDMpIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC03cHgpIHJvdGF0ZSgtNDVkZWcpO1xufVxuXG4vKiBNb2JpbGUgTWVudSAqL1xuLmNsYXNzaWMtaGVhZGVyX19tb2JpbGUtbWVudSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA3MnB4O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tc2xvdyk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHotaW5kZXg6IHZhcigtLXotNDApO1xufVxuXG4uY2xhc3NpYy1oZWFkZXJfX21vYmlsZS1tZW51LS1vcGVuIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4uY2xhc3NpYy1oZWFkZXJfX21vYmlsZS1uYXYge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTgpIHZhcigtLXNwYWNpbmctNCk7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc3BhY2luZy04KTtcbn1cblxuLmNsYXNzaWMtaGVhZGVyX19tb2JpbGUtbmF2LWxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMik7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLmNsYXNzaWMtaGVhZGVyX19tb2JpbGUtbmF2LWl0ZW0ge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XG59XG5cbi5jbGFzc2ljLWhlYWRlcl9fbW9iaWxlLW1lbnUtLW9wZW4gLmNsYXNzaWMtaGVhZGVyX19tb2JpbGUtbmF2LWl0ZW0ge1xuICBhbmltYXRpb246IGNsYXNzaWNTbGlkZUluRnJvbVJpZ2h0IDAuNHMgZWFzZS1vdXQgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgY2xhc3NpY1NsaWRlSW5Gcm9tUmlnaHQge1xuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbn1cblxuLmNsYXNzaWMtaGVhZGVyX19tb2JpbGUtbmF2LWxpbmsge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC14bCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG5cbi5jbGFzc2ljLWhlYWRlcl9fbW9iaWxlLW5hdi1saW5rOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xufVxuXG4uY2xhc3NpYy1oZWFkZXJfX21vYmlsZS1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpO1xuICBtYXJnaW4tdG9wOiBhdXRvO1xufVxuXG4uY2xhc3NpYy1oZWFkZXJfX21vYmlsZS1waG9uZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXhsKTtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy00KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xufVxuXG4uY2xhc3NpYy1oZWFkZXJfX21vYmlsZS1waG9uZSBzdmcge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLyogTW9iaWxlIEJhY2tkcm9wICovXG4uY2xhc3NpYy1oZWFkZXJfX21vYmlsZS1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA3MnB4O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHotaW5kZXg6IHZhcigtLXotMzApO1xuICBhbmltYXRpb246IGNsYXNzaWNGYWRlSW4gdmFyKC0tdHJhbnNpdGlvbi1iYXNlKSBlYXNlLW91dDtcbn1cblxuQGtleWZyYW1lcyBjbGFzc2ljRmFkZUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4vKiBEZXNrdG9wIGJyZWFrcG9pbnQgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmNsYXNzaWMtaGVhZGVyX19uYXYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmNsYXNzaWMtaGVhZGVyX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgLmNsYXNzaWMtaGVhZGVyX19tb2JpbGUtdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmNsYXNzaWMtaGVhZGVyX19tb2JpbGUtbWVudSxcbiAgLmNsYXNzaWMtaGVhZGVyX19tb2JpbGUtYmFja2Ryb3Age1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLyogU21hbGwgc2NyZWVuczogaGlkZSBsb2dvIHRleHQgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY2xhc3NpYy1oZWFkZXJfX2xvZ28tdGV4dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5jbGFzc2ljLWhlYWRlcl9fbG9nby1pY29uIHtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gIH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmNsYXNzaWMtaGVhZGVyLFxuICAuY2xhc3NpYy1oZWFkZXJfX2lubmVyLFxuICAuY2xhc3NpYy1oZWFkZXJfX25hdi1saW5rLFxuICAuY2xhc3NpYy1oZWFkZXJfX21vYmlsZS1tZW51IHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgLmNsYXNzaWMtaGVhZGVyX19tb2JpbGUtbmF2LWl0ZW0ge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENlbnRlcmVkSGVhZGVyIFRlbXBsYXRlXG4gICBMb2dvIGNlbnRlcmVkIG9uIHRvcCwgbmF2IGNlbnRlcmVkIGJlbG93LiBDbGVhbiwgYmFsYW5jZWQgbGF5b3V0LlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNlbnRlcmVkLWhlYWRlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogdmFyKC0tei01MCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG59XG5cbi5jZW50ZXJlZC1oZWFkZXItLXNjcm9sbGVkIHtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1kKTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xufVxuXG4vKiBUb3Agcm93OiBMb2dvIGNlbnRlcmVkICovXG4uY2VudGVyZWQtaGVhZGVyX190b3Age1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy00KSAwIHZhcigtLXNwYWNpbmctMikgMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG59XG5cbi5jZW50ZXJlZC1oZWFkZXItLXNjcm9sbGVkIC5jZW50ZXJlZC1oZWFkZXJfX3RvcCB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMikgMCB2YXIoLS1zcGFjaW5nLTEpIDA7XG59XG5cbi5jZW50ZXJlZC1oZWFkZXJfX2xvZ28ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMyk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG5cbi5jZW50ZXJlZC1oZWFkZXJfX2xvZ286aG92ZXIge1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi5jZW50ZXJlZC1oZWFkZXJfX2xvZ28taWNvbiB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmNlbnRlcmVkLWhlYWRlcl9fbG9nby10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXhsKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLyogQm90dG9tIHJvdzogTmF2ICsgYWN0aW9ucyBjZW50ZXJlZCAqL1xuLmNlbnRlcmVkLWhlYWRlcl9fYm90dG9tIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2luZy0zKTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktMjAwKTtcbiAgdHJhbnNpdGlvbjogcGFkZGluZyB2YXIoLS10cmFuc2l0aW9uLWJhc2UpO1xufVxuXG4uY2VudGVyZWQtaGVhZGVyLS1zY3JvbGxlZCAuY2VudGVyZWQtaGVhZGVyX19ib3R0b20ge1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2luZy0yKTtcbn1cblxuLmNlbnRlcmVkLWhlYWRlcl9fbmF2IHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jZW50ZXJlZC1oZWFkZXJfX25hdi1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy02KTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTMpIDAgMCAwO1xufVxuXG4uY2VudGVyZWQtaGVhZGVyX19uYXYtbGluayB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNzAwKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTIpIDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbn1cblxuLmNlbnRlcmVkLWhlYWRlcl9fbmF2LWxpbms6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2VudGVyZWQtaGVhZGVyLWhvdmVyLCB2YXIoLS1jb2xvci1zZWNvbmRhcnkpKTtcbiAgdHJhbnNpdGlvbjogd2lkdGggdmFyKC0tdHJhbnNpdGlvbi1iYXNlKSwgbGVmdCB2YXIoLS10cmFuc2l0aW9uLWJhc2UpO1xufVxuXG4uY2VudGVyZWQtaGVhZGVyX19uYXYtbGluazpob3Zlcjo6YWZ0ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbn1cblxuLyogQWN0aW9ucyAqL1xuLmNlbnRlcmVkLWhlYWRlcl9fYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy00KTtcbn1cblxuLmNlbnRlcmVkLWhlYWRlcl9fcGhvbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMik7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0xKSB2YXIoLS1zcGFjaW5nLTMpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG5cbi5jZW50ZXJlZC1oZWFkZXJfX3Bob25lOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xufVxuXG4uY2VudGVyZWQtaGVhZGVyX19waG9uZS1pY29uIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8qIE1vYmlsZSBUb2dnbGUgKi9cbi5jZW50ZXJlZC1oZWFkZXJfX21vYmlsZS10b2dnbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA1cHg7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB6LWluZGV4OiB2YXIoLS16LTUwKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLmNlbnRlcmVkLWhlYWRlcl9fbW9iaWxlLXRvZ2dsZS1saW5lIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbn1cblxuLmNlbnRlcmVkLWhlYWRlcl9fbW9iaWxlLXRvZ2dsZS1saW5lLS1vcGVuOm50aC1jaGlsZCgxKSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg3cHgpIHJvdGF0ZSg0NWRlZyk7XG59XG5cbi5jZW50ZXJlZC1oZWFkZXJfX21vYmlsZS10b2dnbGUtbGluZS0tb3BlbjpudGgtY2hpbGQoMikge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uY2VudGVyZWQtaGVhZGVyX19tb2JpbGUtdG9nZ2xlLWxpbmUtLW9wZW46bnRoLWNoaWxkKDMpIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC03cHgpIHJvdGF0ZSgtNDVkZWcpO1xufVxuXG4vKiBNb2JpbGUgTWVudSAqL1xuLmNlbnRlcmVkLWhlYWRlcl9fbW9iaWxlLW1lbnUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNzJweDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itd2hpdGUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLXNsb3cpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB6LWluZGV4OiB2YXIoLS16LTQwKTtcbn1cblxuLmNlbnRlcmVkLWhlYWRlcl9fbW9iaWxlLW1lbnUtLW9wZW4ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG59XG5cbi5jZW50ZXJlZC1oZWFkZXJfX21vYmlsZS1uYXYge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTgpIHZhcigtLXNwYWNpbmctNCk7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc3BhY2luZy04KTtcbn1cblxuLmNlbnRlcmVkLWhlYWRlcl9fbW9iaWxlLW5hdi1saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5jZW50ZXJlZC1oZWFkZXJfX21vYmlsZS1uYXYtaXRlbSB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTtcbn1cblxuLmNlbnRlcmVkLWhlYWRlcl9fbW9iaWxlLW1lbnUtLW9wZW4gLmNlbnRlcmVkLWhlYWRlcl9fbW9iaWxlLW5hdi1pdGVtIHtcbiAgYW5pbWF0aW9uOiBjZW50ZXJlZFNsaWRlSW5Gcm9tUmlnaHQgMC40cyBlYXNlLW91dCBmb3J3YXJkcztcbn1cblxuQGtleWZyYW1lcyBjZW50ZXJlZFNsaWRlSW5Gcm9tUmlnaHQge1xuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbn1cblxuLmNlbnRlcmVkLWhlYWRlcl9fbW9iaWxlLW5hdi1saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQteGwpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG5cbi5jZW50ZXJlZC1oZWFkZXJfX21vYmlsZS1uYXYtbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcbn1cblxuLmNlbnRlcmVkLWhlYWRlcl9fbW9iaWxlLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNwYWNpbmctNCk7XG4gIG1hcmdpbi10b3A6IGF1dG87XG59XG5cbi5jZW50ZXJlZC1oZWFkZXJfX21vYmlsZS1waG9uZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXhsKTtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy00KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xufVxuXG4uY2VudGVyZWQtaGVhZGVyX19tb2JpbGUtcGhvbmUgc3ZnIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8qIE1vYmlsZSBCYWNrZHJvcCAqL1xuLmNlbnRlcmVkLWhlYWRlcl9fbW9iaWxlLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDcycHg7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgei1pbmRleDogdmFyKC0tei0zMCk7XG4gIGFuaW1hdGlvbjogY2VudGVyZWRGYWRlSW4gdmFyKC0tdHJhbnNpdGlvbi1iYXNlKSBlYXNlLW91dDtcbn1cblxuQGtleWZyYW1lcyBjZW50ZXJlZEZhZGVJbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLyogRGVza3RvcCBicmVha3BvaW50ICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5jZW50ZXJlZC1oZWFkZXJfX2JvdHRvbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIC5jZW50ZXJlZC1oZWFkZXJfX21vYmlsZS10b2dnbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuY2VudGVyZWQtaGVhZGVyX19tb2JpbGUtbWVudSxcbiAgLmNlbnRlcmVkLWhlYWRlcl9fbW9iaWxlLWJhY2tkcm9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8qIFNtYWxsIHNjcmVlbnM6IGhpZGUgbG9nbyB0ZXh0ICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNlbnRlcmVkLWhlYWRlcl9fbG9nby10ZXh0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmNlbnRlcmVkLWhlYWRlcl9fbG9nby1pY29uIHtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gIH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmNlbnRlcmVkLWhlYWRlcixcbiAgLmNlbnRlcmVkLWhlYWRlcl9fdG9wLFxuICAuY2VudGVyZWQtaGVhZGVyX19ib3R0b20sXG4gIC5jZW50ZXJlZC1oZWFkZXJfX25hdi1saW5rLFxuICAuY2VudGVyZWQtaGVhZGVyX19tb2JpbGUtbWVudSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC5jZW50ZXJlZC1oZWFkZXJfX21vYmlsZS1uYXYtaXRlbSB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTWluaW1hbEhlYWRlciBUZW1wbGF0ZVxuICAgTG9nbyBsZWZ0LCBuYXYgcmlnaHQuIE5vIHBob25lL0NUQS4gVHJhbnNwYXJlbnQsIHZlcnkgY2xlYW4uXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ubWluaW1hbC1oZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IHZhcigtLXotNTApO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG59XG5cbi5taW5pbWFsLWhlYWRlci0tc2Nyb2xsZWQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICBib3gtc2hhZG93OiAwIDFweCAwIHJnYmEoMCwgMCwgMCwgMC4wNik7XG59XG5cbi5taW5pbWFsLWhlYWRlcl9faW5uZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNSkgMDtcbiAgdHJhbnNpdGlvbjogcGFkZGluZyB2YXIoLS10cmFuc2l0aW9uLWJhc2UpO1xufVxuXG4ubWluaW1hbC1oZWFkZXItLXNjcm9sbGVkIC5taW5pbWFsLWhlYWRlcl9faW5uZXIge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpIDA7XG59XG5cbi8qIExvZ28gKi9cbi5taW5pbWFsLWhlYWRlcl9fbG9nbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG5cbi5taW5pbWFsLWhlYWRlcl9fbG9nbzpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLm1pbmltYWwtaGVhZGVyX19sb2dvLXRleHQge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWJhc2UpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xufVxuXG4vKiBOYXZpZ2F0aW9uIERlc2t0b3AgKi9cbi5taW5pbWFsLWhlYWRlcl9fbmF2IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1pbmltYWwtaGVhZGVyX19uYXYtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy04KTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWluaW1hbC1oZWFkZXJfX25hdi1saW5rIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ub3JtYWwpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQteHMpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS02MDApO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMSkgMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuXG4ubWluaW1hbC1oZWFkZXJfX25hdi1saW5rOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTJweDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWJhc2UpO1xufVxuXG4ubWluaW1hbC1oZWFkZXJfX25hdi1saW5rOmhvdmVyOjphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbn1cblxuLyogTW9iaWxlIFRvZ2dsZSAqL1xuLm1pbmltYWwtaGVhZGVyX19tb2JpbGUtdG9nZ2xlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogNXB4O1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogdmFyKC0tei01MCk7XG59XG5cbi5taW5pbWFsLWhlYWRlcl9fbW9iaWxlLXRvZ2dsZS1saW5lIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMS41cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbi1iYXNlKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xufVxuXG4ubWluaW1hbC1oZWFkZXJfX21vYmlsZS10b2dnbGUtbGluZS0tb3BlbjpudGgtY2hpbGQoMSkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNi41cHgpIHJvdGF0ZSg0NWRlZyk7XG59XG5cbi5taW5pbWFsLWhlYWRlcl9fbW9iaWxlLXRvZ2dsZS1saW5lLS1vcGVuOm50aC1jaGlsZCgyKSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5taW5pbWFsLWhlYWRlcl9fbW9iaWxlLXRvZ2dsZS1saW5lLS1vcGVuOm50aC1jaGlsZCgzKSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNi41cHgpIHJvdGF0ZSgtNDVkZWcpO1xufVxuXG4vKiBNb2JpbGUgTWVudSAqL1xuLm1pbmltYWwtaGVhZGVyX19tb2JpbGUtbWVudSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLXNsb3cpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB6LWluZGV4OiB2YXIoLS16LTQwKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5taW5pbWFsLWhlYWRlcl9fbW9iaWxlLW1lbnUtLW9wZW4ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5cbi5taW5pbWFsLWhlYWRlcl9fbW9iaWxlLW5hdiB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctOCkgdmFyKC0tc3BhY2luZy00KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubWluaW1hbC1oZWFkZXJfX21vYmlsZS1uYXYtbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc3BhY2luZy00KTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWluaW1hbC1oZWFkZXJfX21vYmlsZS1uYXYtaXRlbSB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTtcbn1cblxuLm1pbmltYWwtaGVhZGVyX19tb2JpbGUtbWVudS0tb3BlbiAubWluaW1hbC1oZWFkZXJfX21vYmlsZS1uYXYtaXRlbSB7XG4gIGFuaW1hdGlvbjogbWluaW1hbFNsaWRlVXAgMC40cyBlYXNlLW91dCBmb3J3YXJkcztcbn1cblxuQGtleWZyYW1lcyBtaW5pbWFsU2xpZGVVcCB7XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuXG4ubWluaW1hbC1oZWFkZXJfX21vYmlsZS1uYXYtbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW5vcm1hbCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0yeGwpO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0zKSB2YXIoLS1zcGFjaW5nLTQpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG5cbi5taW5pbWFsLWhlYWRlcl9fbW9iaWxlLW5hdi1saW5rOmhvdmVyIHtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4vKiBNb2JpbGUgQmFja2Ryb3AgKi9cbi5taW5pbWFsLWhlYWRlcl9fbW9iaWxlLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgei1pbmRleDogdmFyKC0tei0zMCk7XG4gIGFuaW1hdGlvbjogbWluaW1hbEZhZGVJbiB2YXIoLS10cmFuc2l0aW9uLWJhc2UpIGVhc2Utb3V0O1xufVxuXG5Aa2V5ZnJhbWVzIG1pbmltYWxGYWRlSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi8qIERlc2t0b3AgYnJlYWtwb2ludCAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubWluaW1hbC1oZWFkZXJfX25hdiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAubWluaW1hbC1oZWFkZXJfX21vYmlsZS10b2dnbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAubWluaW1hbC1oZWFkZXJfX21vYmlsZS1tZW51LFxuICAubWluaW1hbC1oZWFkZXJfX21vYmlsZS1iYWNrZHJvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vKiBTbWFsbCBzY3JlZW5zICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm1pbmltYWwtaGVhZGVyX19sb2dvLXRleHQge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLm1pbmltYWwtaGVhZGVyLFxuICAubWluaW1hbC1oZWFkZXJfX2lubmVyLFxuICAubWluaW1hbC1oZWFkZXJfX25hdi1saW5rLFxuICAubWluaW1hbC1oZWFkZXJfX21vYmlsZS1tZW51IHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgLm1pbmltYWwtaGVhZGVyX19tb2JpbGUtbmF2LWl0ZW0ge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFRyYW5zcGFyZW50SGVhZGVyIFRlbXBsYXRlXG4gICBUcmFuc3BhcmVudCBvdmVyIGhlcm8sIG9wYXF1ZSB3aGl0ZSBvbiBzY3JvbGwuIFRleHQgd2hpdGUgLT4gZGFyayBvbiBzY3JvbGwuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udHJhbnNwYXJlbnQtaGVhZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiB2YXIoLS16LTUwKTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uLWJhc2UpO1xufVxuXG4udHJhbnNwYXJlbnQtaGVhZGVyLS1zY3JvbGxlZCB7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1tZCk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbn1cblxuLnRyYW5zcGFyZW50LWhlYWRlcl9faW5uZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNSkgMDtcbiAgdHJhbnNpdGlvbjogcGFkZGluZyB2YXIoLS10cmFuc2l0aW9uLWJhc2UpO1xufVxuXG4udHJhbnNwYXJlbnQtaGVhZGVyLS1zY3JvbGxlZCAudHJhbnNwYXJlbnQtaGVhZGVyX19pbm5lciB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMykgMDtcbn1cblxuLyogTG9nbyAqL1xuLnRyYW5zcGFyZW50LWhlYWRlcl9fbG9nbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy0zKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4udHJhbnNwYXJlbnQtaGVhZGVyX19sb2dvOmhvdmVyIHtcbiAgb3BhY2l0eTogMC44O1xufVxuXG4udHJhbnNwYXJlbnQtaGVhZGVyX19sb2dvLWljb24ge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnRyYW5zcGFyZW50LWhlYWRlcl9fbG9nby10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLyogTmF2aWdhdGlvbiBEZXNrdG9wICovXG4udHJhbnNwYXJlbnQtaGVhZGVyX19uYXYge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4udHJhbnNwYXJlbnQtaGVhZGVyX19uYXYtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy04KTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4udHJhbnNwYXJlbnQtaGVhZGVyX19uYXYtbGluayB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTIpIDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbn1cblxuLnRyYW5zcGFyZW50LWhlYWRlcl9fbmF2LWxpbms6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWJhc2UpO1xufVxuXG4udHJhbnNwYXJlbnQtaGVhZGVyX19uYXYtbGluazpob3Zlcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbn1cblxuLyogQWN0aW9ucyAqL1xuLnRyYW5zcGFyZW50LWhlYWRlcl9fYWN0aW9ucyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy00KTtcbn1cblxuLyogTW9iaWxlIFRvZ2dsZSAqL1xuLnRyYW5zcGFyZW50LWhlYWRlcl9fbW9iaWxlLXRvZ2dsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHotaW5kZXg6IHZhcigtLXotNTApO1xufVxuXG4udHJhbnNwYXJlbnQtaGVhZGVyX19tb2JpbGUtdG9nZ2xlLWxpbmUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAycHg7XG4gIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uLWJhc2UpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG59XG5cbi50cmFuc3BhcmVudC1oZWFkZXJfX21vYmlsZS10b2dnbGUtbGluZS0tb3BlbjpudGgtY2hpbGQoMSkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoN3B4KSByb3RhdGUoNDVkZWcpO1xufVxuXG4udHJhbnNwYXJlbnQtaGVhZGVyX19tb2JpbGUtdG9nZ2xlLWxpbmUtLW9wZW46bnRoLWNoaWxkKDIpIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuLnRyYW5zcGFyZW50LWhlYWRlcl9fbW9iaWxlLXRvZ2dsZS1saW5lLS1vcGVuOm50aC1jaGlsZCgzKSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtN3B4KSByb3RhdGUoLTQ1ZGVnKTtcbn1cblxuLyogTW9iaWxlIE1lbnUgKi9cbi50cmFuc3BhcmVudC1oZWFkZXJfX21vYmlsZS1tZW51IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDcycHg7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1zbG93KTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgei1pbmRleDogdmFyKC0tei00MCk7XG59XG5cbi50cmFuc3BhcmVudC1oZWFkZXJfX21vYmlsZS1tZW51LS1vcGVuIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4udHJhbnNwYXJlbnQtaGVhZGVyX19tb2JpbGUtbmF2IHtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy04KSB2YXIoLS1zcGFjaW5nLTQpO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNwYWNpbmctOCk7XG59XG5cbi50cmFuc3BhcmVudC1oZWFkZXJfX21vYmlsZS1uYXYtbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc3BhY2luZy0yKTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4udHJhbnNwYXJlbnQtaGVhZGVyX19tb2JpbGUtbmF2LWl0ZW0ge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XG59XG5cbi50cmFuc3BhcmVudC1oZWFkZXJfX21vYmlsZS1tZW51LS1vcGVuIC50cmFuc3BhcmVudC1oZWFkZXJfX21vYmlsZS1uYXYtaXRlbSB7XG4gIGFuaW1hdGlvbjogdHJhbnNwYXJlbnRTbGlkZUluRnJvbVJpZ2h0IDAuNHMgZWFzZS1vdXQgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgdHJhbnNwYXJlbnRTbGlkZUluRnJvbVJpZ2h0IHtcbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5cbi50cmFuc3BhcmVudC1oZWFkZXJfX21vYmlsZS1uYXYtbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXhsKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbn1cblxuLnRyYW5zcGFyZW50LWhlYWRlcl9fbW9iaWxlLW5hdi1saW5rOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xufVxuXG4udHJhbnNwYXJlbnQtaGVhZGVyX19tb2JpbGUtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc3BhY2luZy00KTtcbiAgbWFyZ2luLXRvcDogYXV0bztcbn1cblxuLnRyYW5zcGFyZW50LWhlYWRlcl9fbW9iaWxlLXBob25lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy0zKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQteGwpO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XG59XG5cbi50cmFuc3BhcmVudC1oZWFkZXJfX21vYmlsZS1waG9uZSBzdmcge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLyogTW9iaWxlIEJhY2tkcm9wICovXG4udHJhbnNwYXJlbnQtaGVhZGVyX19tb2JpbGUtYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNzJweDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICB6LWluZGV4OiB2YXIoLS16LTMwKTtcbiAgYW5pbWF0aW9uOiB0cmFuc3BhcmVudEZhZGVJbiB2YXIoLS10cmFuc2l0aW9uLWJhc2UpIGVhc2Utb3V0O1xufVxuXG5Aa2V5ZnJhbWVzIHRyYW5zcGFyZW50RmFkZUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4vKiBEZXNrdG9wIGJyZWFrcG9pbnQgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnRyYW5zcGFyZW50LWhlYWRlcl9fbmF2IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC50cmFuc3BhcmVudC1oZWFkZXJfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAudHJhbnNwYXJlbnQtaGVhZGVyX19tb2JpbGUtdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnRyYW5zcGFyZW50LWhlYWRlcl9fbW9iaWxlLW1lbnUsXG4gIC50cmFuc3BhcmVudC1oZWFkZXJfX21vYmlsZS1iYWNrZHJvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vKiBTbWFsbCBzY3JlZW5zOiBoaWRlIGxvZ28gdGV4dCAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC50cmFuc3BhcmVudC1oZWFkZXJfX2xvZ28tdGV4dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC50cmFuc3BhcmVudC1oZWFkZXJfX2xvZ28taWNvbiB7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC50cmFuc3BhcmVudC1oZWFkZXIsXG4gIC50cmFuc3BhcmVudC1oZWFkZXJfX2lubmVyLFxuICAudHJhbnNwYXJlbnQtaGVhZGVyX19uYXYtbGluayxcbiAgLnRyYW5zcGFyZW50LWhlYWRlcl9fbW9iaWxlLW1lbnUge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cblxuICAudHJhbnNwYXJlbnQtaGVhZGVyX19tb2JpbGUtbmF2LWl0ZW0ge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFNpZGViYXJIZWFkZXIgVGVtcGxhdGVcbiAgIEFsd2F5cyBzaG93cyBoYW1idXJnZXIuIFNpZGViYXIvZHJhd2VyIGZyb20gbGVmdCBvbiBjbGljay5cbiAgIEhlYWRlciBiYXIgb25seSBzaG93cyBsb2dvICsgaGFtYnVyZ2VyLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnNpZGViYXItaGVhZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiB2YXIoLS16LTUwKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itd2hpdGUpO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbi1iYXNlKTtcbn1cblxuLnNpZGViYXItaGVhZGVyLS1zY3JvbGxlZCB7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1tZCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbn1cblxuLnNpZGViYXItaGVhZGVyX19pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy00KSAwO1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG59XG5cbi5zaWRlYmFyLWhlYWRlci0tc2Nyb2xsZWQgLnNpZGViYXItaGVhZGVyX19pbm5lciB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMykgMDtcbn1cblxuLyogVG9nZ2xlIGJ1dHRvbiAtIGFsd2F5cyB2aXNpYmxlICovXG4uc2lkZWJhci1oZWFkZXJfX3RvZ2dsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHotaW5kZXg6IHZhcigtLXotNTApO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnNpZGViYXItaGVhZGVyX190b2dnbGUtbGluZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uLWJhc2UpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG59XG5cbi5zaWRlYmFyLWhlYWRlcl9fdG9nZ2xlLWxpbmUtLW9wZW46bnRoLWNoaWxkKDEpIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDdweCkgcm90YXRlKDQ1ZGVnKTtcbn1cblxuLnNpZGViYXItaGVhZGVyX190b2dnbGUtbGluZS0tb3BlbjpudGgtY2hpbGQoMikge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uc2lkZWJhci1oZWFkZXJfX3RvZ2dsZS1saW5lLS1vcGVuOm50aC1jaGlsZCgzKSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtN3B4KSByb3RhdGUoLTQ1ZGVnKTtcbn1cblxuLyogTG9nbyAqL1xuLnNpZGViYXItaGVhZGVyX19sb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4uc2lkZWJhci1oZWFkZXJfX2xvZ286aG92ZXIge1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi5zaWRlYmFyLWhlYWRlcl9fbG9nby1pY29uIHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uc2lkZWJhci1oZWFkZXJfX2xvZ28tdGV4dCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIFNwYWNlciB0byBiYWxhbmNlIHRoZSBoYW1idXJnZXIgb24gdGhlIGxlZnQgKi9cbi5zaWRlYmFyLWhlYWRlcl9fc3BhY2VyIHtcbiAgd2lkdGg6IDMycHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIERyYXdlciAvIFNpZGViYXJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNpZGViYXItaGVhZGVyX19kcmF3ZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMzIwcHg7XG4gIG1heC13aWR0aDogODV2dztcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itd2hpdGUpO1xuICB6LWluZGV4OiBjYWxjKHZhcigtLXotNTApICsgMTApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1zbG93KTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXhsLCAwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSk7XG59XG5cbi5zaWRlYmFyLWhlYWRlcl9fZHJhd2VyLS1vcGVuIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4vKiBEcmF3ZXIgaGVhZGVyICovXG4uc2lkZWJhci1oZWFkZXJfX2RyYXdlci1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCkgdmFyKC0tc3BhY2luZy02KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktMjAwKTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5zaWRlYmFyLWhlYWRlcl9fZHJhd2VyLWxvZ28ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMyk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuXG4uc2lkZWJhci1oZWFkZXJfX2RyYXdlci1sb2dvOmhvdmVyIHtcbiAgb3BhY2l0eTogMC44O1xufVxuXG4uc2lkZWJhci1oZWFkZXJfX2RyYXdlci1sb2dvLWljb24ge1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5zaWRlYmFyLWhlYWRlcl9fZHJhd2VyLWxvZ28tdGV4dCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1iYXNlKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnNpZGViYXItaGVhZGVyX19kcmF3ZXItY2xvc2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbn1cblxuLnNpZGViYXItaGVhZGVyX19kcmF3ZXItY2xvc2U6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XG59XG5cbi5zaWRlYmFyLWhlYWRlcl9fZHJhd2VyLWNsb3NlIHN2ZyB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi8qIERyYXdlciBuYXYgKi9cbi5zaWRlYmFyLWhlYWRlcl9fZHJhd2VyLW5hdiB7XG4gIGZsZXg6IDE7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNik7XG59XG5cbi5zaWRlYmFyLWhlYWRlcl9fZHJhd2VyLW5hdi1saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTEpO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5zaWRlYmFyLWhlYWRlcl9fZHJhd2VyLW5hdi1pdGVtIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNnB4KTtcbn1cblxuLnNpZGViYXItaGVhZGVyX19kcmF3ZXItLW9wZW4gLnNpZGViYXItaGVhZGVyX19kcmF3ZXItbmF2LWl0ZW0ge1xuICBhbmltYXRpb246IHNpZGViYXJTbGlkZUluIDAuNHMgZWFzZS1vdXQgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgc2lkZWJhclNsaWRlSW4ge1xuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbn1cblxuLnNpZGViYXItaGVhZGVyX19kcmF3ZXItbmF2LWxpbmsge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtbGcpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMykgdmFyKC0tc3BhY2luZy00KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLCBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuXG4uc2lkZWJhci1oZWFkZXJfX2RyYXdlci1uYXYtbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcbn1cblxuLyogRHJhd2VyIGZvb3RlciAqL1xuLnNpZGViYXItaGVhZGVyX19kcmF3ZXItZm9vdGVyIHtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy02KTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktMjAwKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnNpZGViYXItaGVhZGVyX19kcmF3ZXItcGhvbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtbGcpO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTMpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbn1cblxuLnNpZGViYXItaGVhZGVyX19kcmF3ZXItcGhvbmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XG59XG5cbi5zaWRlYmFyLWhlYWRlcl9fZHJhd2VyLXBob25lIHN2ZyB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiBCYWNrZHJvcCAqL1xuLnNpZGViYXItaGVhZGVyX19iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHotaW5kZXg6IGNhbGModmFyKC0tei01MCkgKyA1KTtcbiAgYW5pbWF0aW9uOiBzaWRlYmFyRmFkZUluIHZhcigtLXRyYW5zaXRpb24tYmFzZSkgZWFzZS1vdXQ7XG59XG5cbkBrZXlmcmFtZXMgc2lkZWJhckZhZGVJbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLyogU21hbGwgc2NyZWVuczogaGlkZSBsb2dvIHRleHQgaW4gaGVhZGVyIGJhciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5zaWRlYmFyLWhlYWRlcl9fbG9nby10ZXh0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnNpZGViYXItaGVhZGVyX19sb2dvLWljb24ge1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuc2lkZWJhci1oZWFkZXIsXG4gIC5zaWRlYmFyLWhlYWRlcl9faW5uZXIsXG4gIC5zaWRlYmFyLWhlYWRlcl9fZHJhd2VyIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgLnNpZGViYXItaGVhZGVyX19kcmF3ZXItbmF2LWl0ZW0ge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC5zaWRlYmFyLWhlYWRlcl9fYmFja2Ryb3Age1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxufVxuIiwiLmhlYWRlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogdmFyKC0tei01MCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG59XG5cbi5oZWFkZXItLXNjcm9sbGVkIHtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1kKTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xufVxuXG4uaGVhZGVyX19pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy00KSAwO1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG59XG5cbi5oZWFkZXItLXNjcm9sbGVkIC5oZWFkZXJfX2lubmVyIHtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0zKSAwO1xufVxuXG4vKiBMb2dvICovXG4uaGVhZGVyX19sb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuXG4uaGVhZGVyX19sb2dvOmhvdmVyIHtcbiAgb3BhY2l0eTogMC44O1xufVxuXG4uaGVhZGVyX19sb2dvLWljb24ge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5oZWFkZXJfX2xvZ28tdGV4dCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIE5hdmlnYXRpb24gRGVza3RvcCAqL1xuLmhlYWRlcl9fbmF2IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmhlYWRlcl9fbmF2LWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwYWNpbmctOCk7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5oZWFkZXJfX25hdi1saW5rIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS03MDApO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMikgMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuXG4uaGVhZGVyX19uYXYtbGluazo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWJhc2UpO1xufVxuXG4uaGVhZGVyX19uYXYtbGluazpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbn1cblxuLmhlYWRlcl9fbmF2LWxpbms6aG92ZXI6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG59XG5cbi8qIEFjdGlvbnMgKi9cbi5oZWFkZXJfX2FjdGlvbnMge1xuICBkaXNwbGF5OiBub25lO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwYWNpbmctNCk7XG59XG5cbi5oZWFkZXJfX3Bob25lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMikgdmFyKC0tc3BhY2luZy00KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuXG4uaGVhZGVyX19waG9uZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcbn1cblxuLmhlYWRlcl9fcGhvbmUtaWNvbiB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uaGVhZGVyX19waG9uZS10ZXh0IHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLyogTW9iaWxlIFRvZ2dsZSAqL1xuLmhlYWRlcl9fbW9iaWxlLXRvZ2dsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHotaW5kZXg6IHZhcigtLXotNTApO1xufVxuXG4uaGVhZGVyX19tb2JpbGUtdG9nZ2xlLWxpbmUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbi1iYXNlKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xufVxuXG4uaGVhZGVyX19tb2JpbGUtdG9nZ2xlLWxpbmUtLW9wZW46bnRoLWNoaWxkKDEpIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDdweCkgcm90YXRlKDQ1ZGVnKTtcbn1cblxuLmhlYWRlcl9fbW9iaWxlLXRvZ2dsZS1saW5lLS1vcGVuOm50aC1jaGlsZCgyKSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5oZWFkZXJfX21vYmlsZS10b2dnbGUtbGluZS0tb3BlbjpudGgtY2hpbGQoMykge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTdweCkgcm90YXRlKC00NWRlZyk7XG59XG5cbi8qIE1vYmlsZSBNZW51ICovXG4uaGVhZGVyX19tb2JpbGUtbWVudSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA3MnB4O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tc2xvdyk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHotaW5kZXg6IHZhcigtLXotNDApO1xufVxuXG4uaGVhZGVyX19tb2JpbGUtbWVudS0tb3BlbiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuLmhlYWRlcl9fbW9iaWxlLW5hdiB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctOCkgdmFyKC0tc3BhY2luZy00KTtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTgpO1xufVxuXG4uaGVhZGVyX19tb2JpbGUtbmF2LWxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMik7XG59XG5cbi5oZWFkZXJfX21vYmlsZS1uYXYtaXRlbSB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTtcbn1cblxuLmhlYWRlcl9fbW9iaWxlLW1lbnUtLW9wZW4gLmhlYWRlcl9fbW9iaWxlLW5hdi1pdGVtIHtcbiAgYW5pbWF0aW9uOiBzbGlkZUluRnJvbVJpZ2h0IDAuNHMgZWFzZS1vdXQgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJbkZyb21SaWdodCB7XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuXG4uaGVhZGVyX19tb2JpbGUtbmF2LWxpbmsge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC14bCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG5cbi5oZWFkZXJfX21vYmlsZS1uYXYtbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcbn1cblxuLmhlYWRlcl9fbW9iaWxlLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNwYWNpbmctNCk7XG4gIG1hcmdpbi10b3A6IGF1dG87XG59XG5cbi5oZWFkZXJfX21vYmlsZS1waG9uZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXhsKTtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy00KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xufVxuXG4uaGVhZGVyX19tb2JpbGUtcGhvbmUgc3ZnIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8qIE1vYmlsZSBCYWNrZHJvcCAqL1xuLmhlYWRlcl9fbW9iaWxlLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDcycHg7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgei1pbmRleDogdmFyKC0tei0zMCk7XG4gIGFuaW1hdGlvbjogZmFkZUluIHZhcigtLXRyYW5zaXRpb24tYmFzZSkgZWFzZS1vdXQ7XG59XG5cbi8qIERlc2t0b3AgYnJlYWtwb2ludCAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuaGVhZGVyX19uYXYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIFxuICAuaGVhZGVyX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG4gIFxuICAuaGVhZGVyX19tb2JpbGUtdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIFxuICAuaGVhZGVyX19tb2JpbGUtbWVudSxcbiAgLmhlYWRlcl9fbW9iaWxlLWJhY2tkcm9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8qIE1lZGl1bSBzY3JlZW5zICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmhlYWRlcl9fbG9nby10ZXh0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmhlYWRlcl9fbG9nby10ZXh0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIFxuICAuaGVhZGVyX19sb2dvLWljb24ge1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuaGVhZGVyLFxuICAuaGVhZGVyX19pbm5lcixcbiAgLmhlYWRlcl9fbmF2LWxpbmssXG4gIC5oZWFkZXJfX21vYmlsZS1tZW51IHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG4gIFxuICAuaGVhZGVyX19tb2JpbGUtbmF2LWl0ZW0ge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufSIsIi5zdGQtZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS05MDApO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0zMDApO1xufVxuXG4vKiBDVEEgU2VjdGlvbiAqL1xuLnN0ZC1mb290ZXJfX2N0YSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNvbG9yLXNlY29uZGFyeSkgMCUsIHZhcigtLWNvbG9yLXByaW1hcnkpIDEwMCUpO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTE2KSAwO1xufVxuXG4uc3RkLWZvb3Rlcl9fY3RhLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogdmFyKC0tc3BhY2luZy04KTtcbn1cblxuLnN0ZC1mb290ZXJfX2N0YS10ZXh0IHtcbiAgZmxleDogMTtcbn1cblxuLnN0ZC1mb290ZXJfX2N0YS10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC00eGwpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLTQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtdGlnaHQpO1xufVxuXG4uc3RkLWZvb3Rlcl9fY3RhLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnKTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBNYWluIEZvb3RlciAqL1xuLnN0ZC1mb290ZXJfX21haW4ge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTE2KSAwO1xufVxuXG4uc3RkLWZvb3Rlcl9fZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmciAxZnIgMS41ZnI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy0xMik7XG59XG5cbi8qIENvbXBhbnkgSW5mbyBDb2x1bW4gKi9cbi5zdGQtZm9vdGVyX19jb2x1bW4tLWluZm8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNwYWNpbmctNik7XG59XG5cbi5zdGQtZm9vdGVyX19sb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLTIpO1xufVxuXG4uc3RkLWZvb3Rlcl9fbG9nby1pY29uIHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uc3RkLWZvb3Rlcl9fbG9nby1pbWFnZSB7XG4gIG1heC13aWR0aDogNDBweDtcbiAgbWF4LWhlaWdodDogNDBweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5zdGQtZm9vdGVyX19sb2dvLXRleHQge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtbGcpO1xuICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xufVxuXG4uc3RkLWZvb3Rlcl9fZGVzY3JpcHRpb24ge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtcmVsYXhlZCk7XG4gIG1hcmdpbjogMDtcbn1cblxuLnN0ZC1mb290ZXJfX3NvY2lhbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tc3BhY2luZy0zKTtcbn1cblxuLnN0ZC1mb290ZXJfX3NvY2lhbC1saW5rIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktODAwKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG59XG5cbi5zdGQtZm9vdGVyX19zb2NpYWwtbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbn1cblxuLnN0ZC1mb290ZXJfX3NvY2lhbC1saW5rIHN2ZyB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi8qIEZvb3RlciBDb2x1bW5zICovXG4uc3RkLWZvb3Rlcl9fY29sdW1uLXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNik7XG59XG5cbi5zdGQtZm9vdGVyX19saW5rcyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc3BhY2luZy0zKTtcbn1cblxuLnN0ZC1mb290ZXJfX2xpbmsge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnN0ZC1mb290ZXJfX2xpbms6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbn1cblxuLyogQ29udGFjdCBDb2x1bW4gKi9cbi5zdGQtZm9vdGVyX19jb250YWN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLTYpO1xufVxuXG4uc3RkLWZvb3Rlcl9fY29udGFjdC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLnN0ZC1mb290ZXJfX2NvbnRhY3QtaWNvbiB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuXG4uc3RkLWZvb3Rlcl9fY29udGFjdC1saW5rLFxuLnN0ZC1mb290ZXJfX2NvbnRhY3QtdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXJlbGF4ZWQpO1xufVxuXG4uc3RkLWZvb3Rlcl9fY29udGFjdC1saW5rOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG59XG5cbi5zdGQtZm9vdGVyX19ob3VycyB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1yZWxheGVkKTtcbn1cblxuLnN0ZC1mb290ZXJfX2hvdXJzIHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG59XG5cbi8qIEJvdHRvbSBCYXIgKi9cbi5zdGQtZm9vdGVyX19ib3R0b20ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS04MDApO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTYpIDA7XG59XG5cbi5zdGQtZm9vdGVyX19ib3R0b20tY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTYpO1xufVxuXG4uc3RkLWZvb3Rlcl9fY29weXJpZ2h0IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNTAwKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgbWFyZ2luOiAwO1xufVxuXG4uc3RkLWZvb3Rlcl9fbGVnYWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IHZhcigtLXNwYWNpbmctNik7XG59XG5cbi5zdGQtZm9vdGVyX19sZWdhbC1saW5rIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNTAwKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuXG4uc3RkLWZvb3Rlcl9fbGVnYWwtbGluazpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xufVxuXG4vKiBSZXNwb25zaXZlICovXG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5zdGQtZm9vdGVyX19ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgZ2FwOiB2YXIoLS1zcGFjaW5nLTgpO1xuICB9XG5cbiAgLnN0ZC1mb290ZXJfX2NvbHVtbi0taW5mbyB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnN0ZC1mb290ZXJfX2N0YSB7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0xMikgMDtcbiAgfVxuXG4gIC5zdGQtZm9vdGVyX19jdGEtY29udGVudCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuc3RkLWZvb3Rlcl9fY3RhLXRpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTtcbiAgfVxuXG4gIC5zdGQtZm9vdGVyX19jdGEtZGVzY3JpcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1iYXNlKTtcbiAgfVxuXG4gIC5zdGQtZm9vdGVyX19tYWluIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTEyKSAwO1xuICB9XG5cbiAgLnN0ZC1mb290ZXJfX2dyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy0xMCk7XG4gIH1cblxuICAuc3RkLWZvb3Rlcl9fY29sdW1uLS1pbmZvIHtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgfVxuXG4gIC5zdGQtZm9vdGVyX19ib3R0b20tY29udGVudCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuc3RkLWZvb3Rlcl9fbGVnYWwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xuICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5zdGQtZm9vdGVyX19zb2NpYWwtbGluazpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG4iLCIubWluLWZvb3RlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNjAwKTtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy00KSAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS0yMDApO1xufVxuXG4ubWluLWZvb3Rlcl9fY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTYpO1xufVxuXG4vKiBCcmFuZCAqL1xuLm1pbi1mb290ZXJfX2JyYW5kIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLm1pbi1mb290ZXJfX2xvZ28taWNvbiB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5taW4tZm9vdGVyX19sb2dvLWltYWdlIHtcbiAgbWF4LXdpZHRoOiAyOHB4O1xuICBtYXgtaGVpZ2h0OiAyOHB4O1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLm1pbi1mb290ZXJfX2JyYW5kLW5hbWUge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktODAwKTtcbn1cblxuLyogTGVnYWwgTGlua3MgKi9cbi5taW4tZm9vdGVyX19sZWdhbCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy00KTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWluLWZvb3Rlcl9fbGVnYWwtbGluayB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTUwMCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbn1cblxuLm1pbi1mb290ZXJfX2xlZ2FsLWxpbms6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG59XG5cbi8qIENvcHlyaWdodCAqL1xuLm1pbi1mb290ZXJfX2NvcHlyaWdodCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTUwMCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIG1hcmdpbjogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIFJlc3BvbnNpdmUgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1pbi1mb290ZXJfX2NvbnRlbnQge1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy00KTtcbiAgfVxuXG4gIC5taW4tZm9vdGVyX19icmFuZC1uYW1lIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubWluLWZvb3RlciB7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy02KSAwO1xuICB9XG5cbiAgLm1pbi1mb290ZXJfX2NvbnRlbnQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy0zKTtcbiAgfVxuXG4gIC5taW4tZm9vdGVyX19icmFuZC1uYW1lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cblxuICAubWluLWZvb3Rlcl9fbGVnYWwge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXNwYWNpbmctMyk7XG4gIH1cbn1cbiIsIi5jdHItZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS05MDApO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0zMDApO1xufVxuXG4vKiBDVEEgU2VjdGlvbiAqL1xuLmN0ci1mb290ZXJfX2N0YSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNvbG9yLXNlY29uZGFyeSkgMCUsIHZhcigtLWNvbG9yLXByaW1hcnkpIDEwMCUpO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTE2KSAwO1xufVxuXG4uY3RyLWZvb3Rlcl9fY3RhLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy02KTtcbiAgbWF4LXdpZHRoOiA2NDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5jdHItZm9vdGVyX19jdGEtdGl0bGUge1xuICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtNHhsKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXRpZ2h0KTtcbiAgbWFyZ2luOiAwO1xufVxuXG4uY3RyLWZvb3Rlcl9fY3RhLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnKTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBNYWluIENvbnRlbnQgKi9cbi5jdHItZm9vdGVyX19tYWluIHtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0xNikgMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiBCcmFuZCAqL1xuLmN0ci1mb290ZXJfX2JyYW5kIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy0xMCk7XG59XG5cbi5jdHItZm9vdGVyX19sb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy0zKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy00KTtcbn1cblxuLmN0ci1mb290ZXJfX2xvZ28taWNvbiB7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmN0ci1mb290ZXJfX2xvZ28taW1hZ2Uge1xuICBtYXgtd2lkdGg6IDQ0cHg7XG4gIG1heC1oZWlnaHQ6IDQ0cHg7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uY3RyLWZvb3Rlcl9fbG9nby10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXhsKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbn1cblxuLmN0ci1mb290ZXJfX2Rlc2NyaXB0aW9uIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXJlbGF4ZWQpO1xuICBtYXgtd2lkdGg6IDQ4MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLyogU29jaWFsIExpbmtzICovXG4uY3RyLWZvb3Rlcl9fc29jaWFsIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy0zKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy0xMik7XG59XG5cbi5jdHItZm9vdGVyX19zb2NpYWwtbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktODAwKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG59XG5cbi5jdHItZm9vdGVyX19zb2NpYWwtbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbn1cblxuLmN0ci1mb290ZXJfX3NvY2lhbC1saW5rIHN2ZyB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi8qIENvbHVtbnMgKi9cbi5jdHItZm9vdGVyX19jb2x1bW5zIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy0xNik7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNpbmctMTIpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS04MDApO1xufVxuXG4uY3RyLWZvb3Rlcl9fY29sdW1uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtaW4td2lkdGg6IDE2MHB4O1xufVxuXG4uY3RyLWZvb3Rlcl9fY29sdW1uLXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNCk7XG59XG5cbi5jdHItZm9vdGVyX19saW5rcyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc3BhY2luZy0yKTtcbn1cblxuLmN0ci1mb290ZXJfX2xpbmsge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG5cbi5jdHItZm9vdGVyX19saW5rOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG59XG5cbi8qIEJvdHRvbSBCYXIgKi9cbi5jdHItZm9vdGVyX19ib3R0b20ge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTgpIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmN0ci1mb290ZXJfX2xlZ2FsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy02KTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy00KTtcbn1cblxuLmN0ci1mb290ZXJfX2xlZ2FsLWxpbmsge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS01MDApO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG5cbi5jdHItZm9vdGVyX19sZWdhbC1saW5rOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG59XG5cbi5jdHItZm9vdGVyX19jb3B5cmlnaHQge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS01MDApO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBtYXJnaW46IDA7XG59XG5cbi8qIFJlc3BvbnNpdmUgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmN0ci1mb290ZXJfX2NvbHVtbnMge1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy0xMCk7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5jdHItZm9vdGVyX19jdGEge1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMTIpIDA7XG4gIH1cblxuICAuY3RyLWZvb3Rlcl9fY3RhLXRpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTtcbiAgfVxuXG4gIC5jdHItZm9vdGVyX19jdGEtZGVzY3JpcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1iYXNlKTtcbiAgfVxuXG4gIC5jdHItZm9vdGVyX19tYWluIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTEyKSAwO1xuICB9XG5cbiAgLmN0ci1mb290ZXJfX2NvbHVtbnMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXNwYWNpbmctOCk7XG4gIH1cblxuICAuY3RyLWZvb3Rlcl9fbGVnYWwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpO1xuICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5jdHItZm9vdGVyX19zb2NpYWwtbGluazpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG4iLCIuZGFyay1mb290ZXIge1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0zMDApO1xuICBib3JkZXItdG9wOiAzcHggc29saWQgdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbn1cblxuLyogQ1RBIFNlY3Rpb24gKi9cbi5kYXJrLWZvb3Rlcl9fY3RhIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzFhMWEyZSAwJSwgIzE2MjEzZSA1MCUsICMwZjM0NjAgMTAwJSk7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMTYpIDA7XG59XG5cbi5kYXJrLWZvb3Rlcl9fY3RhLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogdmFyKC0tc3BhY2luZy04KTtcbn1cblxuLmRhcmstZm9vdGVyX19jdGEtdGV4dCB7XG4gIGZsZXg6IDE7XG59XG5cbi5kYXJrLWZvb3Rlcl9fY3RhLXRpdGxlIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTR4bCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC10aWdodCk7XG59XG5cbi5kYXJrLWZvb3Rlcl9fY3RhLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnKTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBNYWluIEZvb3RlciAqL1xuLmRhcmstZm9vdGVyX19tYWluIHtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0xNikgMDtcbn1cblxuLmRhcmstZm9vdGVyX19ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyIDFmciAxLjVmcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTEyKTtcbn1cblxuLyogQ29tcGFueSBJbmZvIENvbHVtbiAqL1xuLmRhcmstZm9vdGVyX19jb2x1bW4tLWluZm8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNwYWNpbmctNik7XG59XG5cbi5kYXJrLWZvb3Rlcl9fbG9nbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy0zKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy0yKTtcbn1cblxuLmRhcmstZm9vdGVyX19sb2dvLWljb24ge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5kYXJrLWZvb3Rlcl9fbG9nby1pbWFnZSB7XG4gIG1heC13aWR0aDogNDBweDtcbiAgbWF4LWhlaWdodDogNDBweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5kYXJrLWZvb3Rlcl9fbG9nby10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbn1cblxuLmRhcmstZm9vdGVyX19kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1yZWxheGVkKTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBQcm9taW5lbnQgU29jaWFsIEljb25zICovXG4uZGFyay1mb290ZXJfX3NvY2lhbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xufVxuXG4uZGFyay1mb290ZXJfX3NvY2lhbC1saW5rIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTIpIHZhcigtLXNwYWNpbmctNCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0zMDApO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uLWJhc2UpO1xufVxuXG4uZGFyay1mb290ZXJfX3NvY2lhbC1saW5rOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG5cbi5kYXJrLWZvb3Rlcl9fc29jaWFsLWxpbmsgc3ZnIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbn1cblxuLmRhcmstZm9vdGVyX19zb2NpYWwtbGFiZWwge1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcbn1cblxuLyogRm9vdGVyIENvbHVtbnMgKi9cbi5kYXJrLWZvb3Rlcl9fY29sdW1uLXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNpbmctMyk7XG59XG5cbi5kYXJrLWZvb3Rlcl9fY29sdW1uLXRpdGxlOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xufVxuXG4uZGFyay1mb290ZXJfX2xpbmtzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xufVxuXG4uZGFyay1mb290ZXJfX2xpbmsge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmRhcmstZm9vdGVyX19saW5rOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG59XG5cbi8qIENvbnRhY3QgQ29sdW1uICovXG4uZGFyay1mb290ZXJfX2NvbnRhY3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNwYWNpbmctNCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNik7XG59XG5cbi5kYXJrLWZvb3Rlcl9fY29udGFjdC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLmRhcmstZm9vdGVyX19jb250YWN0LWljb24ge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBmbGV4LXNocmluazogMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cblxuLmRhcmstZm9vdGVyX19jb250YWN0LWxpbmssXG4uZGFyay1mb290ZXJfX2NvbnRhY3QtdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXJlbGF4ZWQpO1xufVxuXG4uZGFyay1mb290ZXJfX2NvbnRhY3QtbGluazpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xufVxuXG4uZGFyay1mb290ZXJfX2hvdXJzIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXJlbGF4ZWQpO1xufVxuXG4uZGFyay1mb290ZXJfX2hvdXJzIHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG59XG5cbi8qIEJvdHRvbSBCYXIgKi9cbi5kYXJrLWZvb3Rlcl9fYm90dG9tIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNikgMDtcbn1cblxuLmRhcmstZm9vdGVyX19ib3R0b20tY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTYpO1xufVxuXG4uZGFyay1mb290ZXJfX2NvcHlyaWdodCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTUwMCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIG1hcmdpbjogMDtcbn1cblxuLmRhcmstZm9vdGVyX19sZWdhbCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tc3BhY2luZy02KTtcbn1cblxuLmRhcmstZm9vdGVyX19sZWdhbC1saW5rIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNTAwKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuXG4uZGFyay1mb290ZXJfX2xlZ2FsLWxpbms6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbn1cblxuLyogUmVzcG9uc2l2ZSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuZGFyay1mb290ZXJfX2dyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBnYXA6IHZhcigtLXNwYWNpbmctOCk7XG4gIH1cblxuICAuZGFyay1mb290ZXJfX2NvbHVtbi0taW5mbyB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmRhcmstZm9vdGVyX19jdGEge1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMTIpIDA7XG4gIH1cblxuICAuZGFyay1mb290ZXJfX2N0YS1jb250ZW50IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5kYXJrLWZvb3Rlcl9fY3RhLXRpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTtcbiAgfVxuXG4gIC5kYXJrLWZvb3Rlcl9fY3RhLWRlc2NyaXB0aW9uIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQtYmFzZSk7XG4gIH1cblxuICAuZGFyay1mb290ZXJfX21haW4ge1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMTIpIDA7XG4gIH1cblxuICAuZGFyay1mb290ZXJfX2dyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy0xMCk7XG4gIH1cblxuICAuZGFyay1mb290ZXJfX2NvbHVtbi0taW5mbyB7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gIH1cblxuICAuZGFyay1mb290ZXJfX3NvY2lhbCB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAuZGFyay1mb290ZXJfX2NvbHVtbi10aXRsZTo6YWZ0ZXIge1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cblxuICAuZGFyay1mb290ZXJfX2JvdHRvbS1jb250ZW50IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5kYXJrLWZvb3Rlcl9fbGVnYWwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xuICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5kYXJrLWZvb3Rlcl9fc29jaWFsLWxpbms6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuIiwiLmV4cC1mb290ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTMwMCk7XG59XG5cbi8qIENUQSBTZWN0aW9uIC0gRnVsbCBXaWR0aCBMYXJnZSBUZXh0ICovXG4uZXhwLWZvb3Rlcl9fY3RhIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY29sb3Itc2Vjb25kYXJ5KSAwJSwgdmFyKC0tY29sb3ItcHJpbWFyeSkgMTAwJSk7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMjAsIDVyZW0pIDA7XG59XG5cbi5leHAtZm9vdGVyX19jdGEtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTgpO1xuICBtYXgtd2lkdGg6IDgwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLmV4cC1mb290ZXJfX2N0YS10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC01eGwsIDNyZW0pO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtdGlnaHQpO1xuICBtYXJnaW46IDA7XG59XG5cbi5leHAtZm9vdGVyX19jdGEtZGVzY3JpcHRpb24ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQteGwpO1xuICBtYXJnaW46IDA7XG4gIG1heC13aWR0aDogNjAwcHg7XG59XG5cbi8qIE1haW4gRm9vdGVyIC0gU3BhY2lvdXMgR3JpZCAqL1xuLmV4cC1mb290ZXJfX21haW4ge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTIwLCA1cmVtKSAwO1xufVxuXG4uZXhwLWZvb3Rlcl9fZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIGdhcDogdmFyKC0tc3BhY2luZy0xNik7XG59XG5cbi8qIENvbXBhbnkgSW5mbyBDb2x1bW4gKi9cbi5leHAtZm9vdGVyX19jb2x1bW4tLWluZm8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNwYWNpbmctNik7XG59XG5cbi5leHAtZm9vdGVyX19sb2dvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLTQpO1xufVxuXG4uZXhwLWZvb3Rlcl9fbG9nby1pY29uIHtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uZXhwLWZvb3Rlcl9fbG9nby1pbWFnZSB7XG4gIG1heC13aWR0aDogNDhweDtcbiAgbWF4LWhlaWdodDogNDhweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5leHAtZm9vdGVyX19sb2dvLXRleHQge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQteGwpO1xuICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xufVxuXG4uZXhwLWZvb3Rlcl9fZGVzY3JpcHRpb24ge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtcmVsYXhlZCk7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWJhc2UpO1xufVxuXG4vKiBGb290ZXIgQ29sdW1ucyAqL1xuLmV4cC1mb290ZXJfX2NvbHVtbi10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtbGcpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLTgpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xufVxuXG4uZXhwLWZvb3Rlcl9fbGlua3Mge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNwYWNpbmctNCk7XG59XG5cbi5leHAtZm9vdGVyX19saW5rIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1iYXNlKTtcbn1cblxuLmV4cC1mb290ZXJfX2xpbms6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbn1cblxuLyogQ29udGFjdCBDb2x1bW4gKi9cbi5leHAtZm9vdGVyX19jb250YWN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTUpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLTgpO1xufVxuXG4uZXhwLWZvb3Rlcl9fY29udGFjdC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLmV4cC1mb290ZXJfX2NvbnRhY3QtaWNvbiB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuXG4uZXhwLWZvb3Rlcl9fY29udGFjdC1saW5rLFxuLmV4cC1mb290ZXJfX2NvbnRhY3QtdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXJlbGF4ZWQpO1xufVxuXG4uZXhwLWZvb3Rlcl9fY29udGFjdC1saW5rOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG59XG5cbi5leHAtZm9vdGVyX19ob3VycyB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1yZWxheGVkKTtcbn1cblxuLmV4cC1mb290ZXJfX2hvdXJzIHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG59XG5cbi8qIFNvY2lhbCBNZWRpYSBCYXIgKi9cbi5leHAtZm9vdGVyX19zb2NpYWwtYmFyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS04MDApO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTYpIDA7XG59XG5cbi5leHAtZm9vdGVyX19zb2NpYWwtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwYWNpbmctOCk7XG59XG5cbi5leHAtZm9vdGVyX19zb2NpYWwtbGFiZWwge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmV4cC1mb290ZXJfX3NvY2lhbC1saW5rcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3BhY2luZy00KTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmV4cC1mb290ZXJfX3NvY2lhbC1saW5rIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMikgdmFyKC0tc3BhY2luZy0zKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG59XG5cbi5leHAtZm9vdGVyX19zb2NpYWwtbGluazpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLmV4cC1mb290ZXJfX3NvY2lhbC1saW5rIHN2ZyB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG59XG5cbi5leHAtZm9vdGVyX19zb2NpYWwtbmFtZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xufVxuXG4vKiBCb3R0b20gQmFyICovXG4uZXhwLWZvb3Rlcl9fYm90dG9tIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktODAwKTtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy04KSAwO1xufVxuXG4uZXhwLWZvb3Rlcl9fYm90dG9tLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogdmFyKC0tc3BhY2luZy02KTtcbn1cblxuLmV4cC1mb290ZXJfX2NvcHlyaWdodCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTUwMCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIG1hcmdpbjogMDtcbn1cblxuLmV4cC1mb290ZXJfX2xlZ2FsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTYpO1xufVxuXG4uZXhwLWZvb3Rlcl9fbGVnYWwtbGluayB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTUwMCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbn1cblxuLmV4cC1mb290ZXJfX2xlZ2FsLWxpbms6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbn1cblxuLyogUmVzcG9uc2l2ZSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuZXhwLWZvb3Rlcl9fZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy0xMCk7XG4gIH1cblxuICAuZXhwLWZvb3Rlcl9fY29sdW1uLS1pbmZvIHtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICB9XG5cbiAgLmV4cC1mb290ZXJfX2N0YS10aXRsZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTR4bCk7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5leHAtZm9vdGVyX19jdGEge1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMTQsIDMuNXJlbSkgMDtcbiAgfVxuXG4gIC5leHAtZm9vdGVyX19jdGEtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0zeGwpO1xuICB9XG5cbiAgLmV4cC1mb290ZXJfX2N0YS1kZXNjcmlwdGlvbiB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWJhc2UpO1xuICB9XG5cbiAgLmV4cC1mb290ZXJfX21haW4ge1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMTIpIDA7XG4gIH1cblxuICAuZXhwLWZvb3Rlcl9fZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiB2YXIoLS1zcGFjaW5nLTEwKTtcbiAgfVxuXG4gIC5leHAtZm9vdGVyX19jb2x1bW4tLWluZm8ge1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICB9XG5cbiAgLmV4cC1mb290ZXJfX3NvY2lhbC1jb250ZW50IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy00KTtcbiAgfVxuXG4gIC5leHAtZm9vdGVyX19ib3R0b20tY29udGVudCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuZXhwLWZvb3Rlcl9fbGVnYWwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xuICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5leHAtZm9vdGVyX19zb2NpYWwtbGluazpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG4iLCIuZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS05MDApO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0zMDApO1xufVxuXG4vKiBDVEEgU2VjdGlvbiAqL1xuLmZvb3Rlcl9fY3RhLXNlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jb2xvci1zZWNvbmRhcnkpIDAlLCB2YXIoLS1jb2xvci1wcmltYXJ5KSAxMDAlKTtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0xNikgMDtcbn1cblxuLmZvb3Rlcl9fY3RhLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogdmFyKC0tc3BhY2luZy04KTtcbn1cblxuLmZvb3Rlcl9fY3RhLXRleHQge1xuICBmbGV4OiAxO1xufVxuXG4uZm9vdGVyX19jdGEtdGl0bGUge1xuICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtNHhsKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy00KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXRpZ2h0KTtcbn1cblxuLmZvb3Rlcl9fY3RhLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnKTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBNYWluIEZvb3RlciAqL1xuLmZvb3Rlcl9fbWFpbiB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMTYpIDA7XG59XG5cbi5mb290ZXJfX2dyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciAxZnIgMWZyIDEuNWZyO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMTIpO1xufVxuXG4vKiBDb21wYW55IEluZm8gQ29sdW1uICovXG4uZm9vdGVyX19jb2x1bW4tLWluZm8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNwYWNpbmctNik7XG59XG5cbi5mb290ZXJfX2xvZ28ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMyk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctMik7XG59XG5cbi5mb290ZXJfX2xvZ28taWNvbiB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmZvb3Rlcl9fbG9nby1pbWFnZSB7XG4gIG1heC13aWR0aDogNDBweDtcbiAgbWF4LWhlaWdodDogNDBweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5mb290ZXJfX2xvZ28tdGV4dCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG59XG5cbi5mb290ZXJfX2Rlc2NyaXB0aW9uIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXJlbGF4ZWQpO1xuICBtYXJnaW46IDA7XG59XG5cbi5mb290ZXJfX3NvY2lhbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tc3BhY2luZy0zKTtcbn1cblxuLmZvb3Rlcl9fc29jaWFsLWxpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS04MDApO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbi1iYXNlKTtcbn1cblxuLmZvb3Rlcl9fc29jaWFsLWxpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG5cbi5mb290ZXJfX3NvY2lhbC1saW5rIHN2ZyB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi8qIEZvb3RlciBDb2x1bW5zICovXG4uZm9vdGVyX19jb2x1bW4tdGl0bGUge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy02KTtcbn1cblxuLmZvb3Rlcl9fbGlua3Mge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMyk7XG59XG5cbi5mb290ZXJfX2xpbmsge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmZvb3Rlcl9fbGluazpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xufVxuXG4vKiBDb250YWN0IENvbHVtbiAqL1xuLmZvb3Rlcl9fY29udGFjdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc3BhY2luZy00KTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy02KTtcbn1cblxuLmZvb3Rlcl9fY29udGFjdC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLmZvb3Rlcl9fY29udGFjdC1pY29uIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG5cbi5mb290ZXJfX2NvbnRhY3QtbGluayxcbi5mb290ZXJfX2NvbnRhY3QtdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXJlbGF4ZWQpO1xufVxuXG4uZm9vdGVyX19jb250YWN0LWxpbms6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbn1cblxuLmZvb3Rlcl9faG91cnMge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtcmVsYXhlZCk7XG59XG5cbi5mb290ZXJfX2hvdXJzIHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG59XG5cbi8qIEJvdHRvbSBCYXIgKi9cbi5mb290ZXJfX2JvdHRvbSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTgwMCk7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNikgMDtcbn1cblxuLmZvb3Rlcl9fYm90dG9tLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogdmFyKC0tc3BhY2luZy02KTtcbn1cblxuLmZvb3Rlcl9fY29weXJpZ2h0IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNTAwKTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgbWFyZ2luOiAwO1xufVxuXG4uZm9vdGVyX19sZWdhbCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tc3BhY2luZy02KTtcbn1cblxuLmZvb3Rlcl9fbGVnYWwtbGluayB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTUwMCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbn1cblxuLmZvb3Rlcl9fbGVnYWwtbGluazpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xufVxuXG4vKiBSZXNwb25zaXZlICovXG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5mb290ZXJfX2dyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBnYXA6IHZhcigtLXNwYWNpbmctOCk7XG4gIH1cbiAgXG4gIC5mb290ZXJfX2NvbHVtbi0taW5mbyB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmZvb3Rlcl9fY3RhLXNlY3Rpb24ge1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMTIpIDA7XG4gIH1cbiAgXG4gIC5mb290ZXJfX2N0YS1jb250ZW50IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBcbiAgLmZvb3Rlcl9fY3RhLXRpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTtcbiAgfVxuICBcbiAgLmZvb3Rlcl9fY3RhLWRlc2NyaXB0aW9uIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQtYmFzZSk7XG4gIH1cbiAgXG4gIC5mb290ZXJfX21haW4ge1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMTIpIDA7XG4gIH1cbiAgXG4gIC5mb290ZXJfX2dyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy0xMCk7XG4gIH1cbiAgXG4gIC5mb290ZXJfX2NvbHVtbi0taW5mbyB7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gIH1cbiAgXG4gIC5mb290ZXJfX2JvdHRvbS1jb250ZW50IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBcbiAgLmZvb3Rlcl9fbGVnYWwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xuICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5mb290ZXJfX3NvY2lhbC1saW5rOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn0iLCIuaGVybyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogOTB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy10b3A6IDcycHg7IC8qIEhlYWRlciBoZWlnaHQgKi9cbn1cblxuLmhlcm9fX2JhY2tncm91bmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAwO1xufVxuXG4uaGVyb19fYmFja2dyb3VuZC1ncmFkaWVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxMzVkZWcsXG4gICAgcmdiYSgxNSwgMjMsIDQyLCAwLjk1KSAwJSxcbiAgICByZ2JhKDE1LCAyMywgNDIsIDAuODUpIDUwJSxcbiAgICByZ2JhKDU2LCAxODksIDI0OCwgMC4xNSkgMTAwJVxuICApO1xuICB6LWluZGV4OiAxO1xufVxuXG4uaGVyb19fYmFja2dyb3VuZC1pbWFnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlcjtcbn1cblxuLmhlcm9fX2NvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTEyKSAwO1xufVxuXG4uaGVyb19fdGV4dCB7XG4gIG1heC13aWR0aDogODAwcHg7XG59XG5cbi5oZXJvX19zdWJ0aXRsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNCk7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMikgdmFyKC0tc3BhY2luZy00KTtcbiAgYmFja2dyb3VuZDogcmdiYSg1NiwgMTg5LCAyNDgsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1NiwgMTg5LCAyNDgsIDAuMyk7XG59XG5cbi5oZXJvX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC02eGwpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtZXh0cmFib2xkKTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy04KTtcbiAgdGV4dC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi5oZXJvX190aXRsZSBiciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uaGVyb19fY3RhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IHZhcigtLXNwYWNpbmctNCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctMTIpO1xufVxuXG4vKiBTdGF0cyAqL1xuLmhlcm9fX3N0YXRzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxNTBweCwgMWZyKSk7XG4gIGdhcDogdmFyKC0tc3BhY2luZy04KTtcbiAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNpbmctOCk7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG5cbi5oZXJvX19zdGF0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpO1xufVxuXG4uaGVyb19fc3RhdC12YWx1ZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtNHhsKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5oZXJvX19zdGF0LWxhYmVsIHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXJlbGF4ZWQpO1xufVxuXG4vKiBTY3JvbGwgSW5kaWNhdG9yICovXG4uaGVyb19fc2Nyb2xsLWluZGljYXRvciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiB2YXIoLS1zcGFjaW5nLTgpO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgei1pbmRleDogMjtcbiAgYW5pbWF0aW9uOiBib3VuY2UgMnMgaW5maW5pdGU7XG59XG5cbi5oZXJvX19zY3JvbGwtaWNvbiB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG59XG5cbi5oZXJvX19zY3JvbGwtaWNvbiBzdmcge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZSB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xuICB9XG59XG5cbi8qIFJlc3BvbnNpdmUgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmhlcm8ge1xuICAgIG1pbi1oZWlnaHQ6IDgwdmg7XG4gIH1cbiAgXG4gIC5oZXJvX190aXRsZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTV4bCk7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5oZXJvIHtcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmctdG9wOiA3MnB4O1xuICB9XG4gIFxuICAuaGVyb19fY29udGVudCB7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0xNikgMCB2YXIoLS1zcGFjaW5nLTEyKSAwO1xuICB9XG4gIFxuICAuaGVyb19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC00eGwpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNik7XG4gIH1cbiAgXG4gIC5oZXJvX19jdGEge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1zcGFjaW5nLTMpO1xuICB9XG4gIFxuICAuaGVyb19fc3RhdHMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgZ2FwOiB2YXIoLS1zcGFjaW5nLTYpO1xuICB9XG4gIFxuICAuaGVyb19fc3RhdC12YWx1ZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTN4bCk7XG4gIH1cbiAgXG4gIC5oZXJvX19zY3JvbGwtaW5kaWNhdG9yIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuaGVyb19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0zeGwpO1xuICB9XG4gIFxuICAuaGVyb19fc3RhdHMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5oZXJvX19zY3JvbGwtaW5kaWNhdG9yIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbn0iLCIuc2VydmljZS1jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itd2hpdGUpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMteGwpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbWQpO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbi1iYXNlKTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uc2VydmljZS1jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXhsKTtcbn1cblxuLnNlcnZpY2UtY2FyZF9faW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIwMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uc2VydmljZS1jYXJkX19pbWFnZSBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tc2xvd2VyKTtcbn1cblxuLnNlcnZpY2UtY2FyZDpob3ZlciAuc2VydmljZS1jYXJkX19pbWFnZSBpbWcge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xufVxuXG4uc2VydmljZS1jYXJkX19pbWFnZS1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDE4MGRlZyxcbiAgICB0cmFuc3BhcmVudCAwJSxcbiAgICByZ2JhKDE1LCAyMywgNDIsIDAuNCkgMTAwJVxuICApO1xufVxuXG4uc2VydmljZS1jYXJkX19jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTYpO1xuICBmbGV4OiAxO1xufVxuXG4uc2VydmljZS1jYXJkX19pY29uIHtcbiAgd2lkdGg6IDU2cHg7XG4gIGhlaWdodDogNTZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNvbG9yLXNlY29uZGFyeSksIHZhcigtLWNvbG9yLXByaW1hcnkpKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5zZXJ2aWNlLWNhcmRfX2ljb24gc3ZnIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbn1cblxuLnNlcnZpY2UtY2FyZF9fdGl0bGUge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTJ4bCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtdGlnaHQpO1xuICBtYXJnaW46IDA7XG59XG5cbi5zZXJ2aWNlLWNhcmRfX2Rlc2NyaXB0aW9uIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNjAwKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXJlbGF4ZWQpO1xuICBtYXJnaW46IDA7XG4gIGZsZXg6IDE7XG59XG5cbi5zZXJ2aWNlLWNhcmRfX2ZlYXR1cmVzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5zZXJ2aWNlLWNhcmRfX2ZlYXR1cmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS03MDApO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtcmVsYXhlZCk7XG59XG5cbi5zZXJ2aWNlLWNhcmRfX2ZlYXR1cmUtaWNvbiB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KTtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuXG4uc2VydmljZS1jYXJkX19jdGEge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xufVxuXG4vKiBSZXNwb25zaXZlICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNlcnZpY2UtY2FyZF9faW1hZ2Uge1xuICAgIGhlaWdodDogMTgwcHg7XG4gIH1cbiAgXG4gIC5zZXJ2aWNlLWNhcmRfX2NvbnRlbnQge1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNSk7XG4gIH1cbiAgXG4gIC5zZXJ2aWNlLWNhcmRfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQteGwpO1xuICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5zZXJ2aWNlLWNhcmRfX2ltYWdlIGltZyB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuICBcbiAgLnNlcnZpY2UtY2FyZDpob3ZlciAuc2VydmljZS1jYXJkX19pbWFnZSBpbWcge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufSIsIi5ob21lIHtcbiAgbWluLWhlaWdodDogMTAwdmg7XG59XG5cbi8qIFNlY3Rpb24gSGVhZGVycyAqL1xuLmhvbWVfX3NlY3Rpb24taGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXgtd2lkdGg6IDcwMHB4O1xuICBtYXJnaW46IDAgYXV0byB2YXIoLS1zcGFjaW5nLTEyKSBhdXRvO1xufVxuXG4uaG9tZV9fc2VjdGlvbi10aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC00eGwpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNCk7XG59XG5cbi5ob21lX19zZWN0aW9uLWRlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNjAwKTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBQcm9vZiBTZWN0aW9uICovXG4uaG9tZV9fcHJvb2Yge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTUwKTtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0xMikgMDtcbn1cblxuLmhvbWVfX3Byb29mLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICBnYXA6IHZhcigtLXNwYWNpbmctNik7XG59XG5cbi5ob21lX19wcm9vZi1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTYpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy14bCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1zbSk7XG59XG5cbi5ob21lX19wcm9vZi1pY29uIHtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jb2xvci1zZWNvbmRhcnkpLCB2YXIoLS1jb2xvci1hY2NlbnQpKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbn1cblxuLmhvbWVfX3Byb29mLWljb24gc3ZnIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbn1cblxuLmhvbWVfX3Byb29mLXZhbHVlIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0yeGwpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctMSk7XG59XG5cbi5ob21lX19wcm9vZi1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTYwMCk7XG59XG5cbi8qIFNlcnZpY2VzIFNlY3Rpb24gKi9cbi5ob21lX19zZXJ2aWNlcyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdoaXRlKTtcbn1cblxuLmhvbWVfX3NlcnZpY2VzLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI4MHB4LCAxZnIpKTtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTgpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLTEyKTtcbn1cblxuLmhvbWVfX3NlcnZpY2VzLWN0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiBQcm9jZXNzIFNlY3Rpb24gKi9cbi5ob21lX19wcm9jZXNzIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY29sb3ItcHJpbWFyeSkgMCUsIHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpIDEwMCUpO1xuICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xufVxuXG4uaG9tZV9fcHJvY2VzcyAuaG9tZV9fc2VjdGlvbi10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG59XG5cbi5ob21lX19wcm9jZXNzIC5ob21lX19zZWN0aW9uLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cblxuLmhvbWVfX3Byb2Nlc3MtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjUwcHgsIDFmcikpO1xuICBnYXA6IHZhcigtLXNwYWNpbmctOCk7XG59XG5cbi5ob21lX19wcm9jZXNzLXN0ZXAge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTgpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMteGwpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG59XG5cbi5ob21lX19wcm9jZXNzLXN0ZXA6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbn1cblxuLmhvbWVfX3Byb2Nlc3MtbnVtYmVyIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC02eGwpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtZXh0cmFib2xkKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLTQpO1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi5ob21lX19wcm9jZXNzLXRpdGxlIHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTJ4bCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctMyk7XG59XG5cbi5ob21lX19wcm9jZXNzLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXJlbGF4ZWQpO1xuICBtYXJnaW46IDA7XG59XG5cbi8qIFRlc3RpbW9uaWFscyBTZWN0aW9uICovXG4uaG9tZV9fdGVzdGltb25pYWxzIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS01MCk7XG59XG5cbi5ob21lX190ZXN0aW1vbmlhbHMtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzAwcHgsIDFmcikpO1xuICBnYXA6IHZhcigtLXNwYWNpbmctOCk7XG59XG5cbi5ob21lX190ZXN0aW1vbmlhbCB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctOCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXhsKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1kKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpO1xufVxuXG4uaG9tZV9fdGVzdGltb25pYWwtcmF0aW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTEpO1xuICBjb2xvcjogI0ZEQjAyMjtcbn1cblxuLmhvbWVfX3Rlc3RpbW9uaWFsLXJhdGluZyBzdmcge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4uaG9tZV9fdGVzdGltb25pYWwtdGV4dCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTcwMCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1yZWxheGVkKTtcbiAgbWFyZ2luOiAwO1xuICBmbGV4OiAxO1xufVxuXG4uaG9tZV9fdGVzdGltb25pYWwtYXV0aG9yIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTEpO1xuICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2luZy00KTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktMjAwKTtcbn1cblxuLmhvbWVfX3Rlc3RpbW9uaWFsLWF1dGhvciBzdHJvbmcge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xufVxuXG4uaG9tZV9fdGVzdGltb25pYWwtYXV0aG9yIHNwYW4ge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS02MDApO1xufVxuXG4vKiBDVEEgU2VjdGlvbiAqL1xuLmhvbWVfX2N0YSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNvbG9yLXNlY29uZGFyeSkgMCUsIHZhcigtLWNvbG9yLXByaW1hcnkpIDEwMCUpO1xufVxuXG4uaG9tZV9fY3RhLWNvbnRlbnQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1heC13aWR0aDogNzAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uaG9tZV9fY3RhLXRpdGxlIHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTR4bCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNCk7XG59XG5cbi5ob21lX19jdGEtZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IHZhcigtLXRleHQteGwpO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLTgpO1xufVxuXG4uaG9tZV9fY3RhLWJ1dHRvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwYWNpbmctNCk7XG59XG5cbi8qIFJlc3BvbnNpdmUgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmhvbWVfX3Byb29mLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIH1cbiAgXG4gIC5ob21lX19zZXJ2aWNlcy1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuaG9tZV9fc2VjdGlvbi10aXRsZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTN4bCk7XG4gIH1cbiAgXG4gIC5ob21lX19zZWN0aW9uLWRlc2NyaXB0aW9uIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQtYmFzZSk7XG4gIH1cbiAgXG4gIC5ob21lX19wcm9vZiB7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy04KSAwO1xuICB9XG4gIFxuICAuaG9tZV9fcHJvb2YtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpO1xuICB9XG4gIFxuICAuaG9tZV9fc2VydmljZXMtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cbiAgXG4gIC5ob21lX19wcm9jZXNzLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG4gIFxuICAuaG9tZV9fdGVzdGltb25pYWxzLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG4gIFxuICAuaG9tZV9fY3RhLXRpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTtcbiAgfVxuICBcbiAgLmhvbWVfX2N0YS1kZXNjcmlwdGlvbiB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnKTtcbiAgfVxuICBcbiAgLmhvbWVfX2N0YS1idXR0b25zIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5ob21lX19wcm9jZXNzLXN0ZXA6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufSIsIi5zZXJ2aWNlcy1wYWdlIHtcbiAgbWluLWhlaWdodDogMTAwdmg7XG59XG5cbi5zZXJ2aWNlcy1oZXJvIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDEzNWRlZyxcbiAgICB2YXIoLS1jb2xvci1wcmltYXJ5KSAwJSxcbiAgICB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KSAxMDAlXG4gICk7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMjApIDAgdmFyKC0tc3BhY2luZy0xMikgMDtcbiAgbWFyZ2luLXRvcDogNzJweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xufVxuXG4uc2VydmljZXMtaGVyb19fY29udGVudCB7XG4gIG1heC13aWR0aDogODAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uc2VydmljZXMtaGVyb19fdGl0bGUge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtNXhsKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy00KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXRpZ2h0KTtcbn1cblxuLnNlcnZpY2VzLWhlcm9fX2Rlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXhsKTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgbWFyZ2luOiAwO1xufVxuXG4uc2VydmljZXMtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzIwcHgsIDFmcikpO1xuICBnYXA6IHZhcigtLXNwYWNpbmctOCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctMTYpO1xufVxuXG4uc2VydmljZXMtY3RhIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTEyKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDEzNWRlZyxcbiAgICB2YXIoLS1jb2xvci1ncmF5LTUwKSAwJSxcbiAgICB2YXIoLS1jb2xvci1ncmF5LTEwMCkgMTAwJVxuICApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtMnhsKTtcbn1cblxuLnNlcnZpY2VzLWN0YV9fY29udGVudCBoMiB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0zeGwpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctMyk7XG59XG5cbi5zZXJ2aWNlcy1jdGFfX2NvbnRlbnQgcCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTYwMCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNik7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc2VydmljZXMtaGVybyB7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0xNikgMCB2YXIoLS1zcGFjaW5nLTgpIDA7XG4gIH1cblxuICAuc2VydmljZXMtaGVyb19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0zeGwpO1xuICB9XG5cbiAgLnNlcnZpY2VzLWhlcm9fX2Rlc2NyaXB0aW9uIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQtYmFzZSk7XG4gIH1cblxuICAuc2VydmljZXMtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFNFUlZJQ0UgREVUQUlMIFBBR0VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnNlcnZpY2UtZGV0YWlsLXBhZ2Uge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLnNlcnZpY2UtZGV0YWlsLXBhZ2UgbWFpbiB7XG4gIGZsZXg6IDE7XG59XG5cbi8qIExvYWRpbmcgJiBFcnJvciBTdGF0ZXMgKi9cbi5zZXJ2aWNlLWRldGFpbF9fbG9hZGluZyxcbi5zZXJ2aWNlLWRldGFpbF9fZXJyb3Ige1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDRyZW0gMnJlbTtcbn1cblxuLnNlcnZpY2UtZGV0YWlsX19lcnJvciBoMSB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLnNlcnZpY2UtZGV0YWlsX19lcnJvciBwIHtcbiAgY29sb3I6IHZhcigtLXRleHQtbGlnaHQpO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4vKiBIZXJvICovXG4uc2VydmljZS1kZXRhaWxfX2hlcm8ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSAwJSwgdmFyKC0tcHJpbWFyeS1kYXJrLCAjMWEzNjVkKSAxMDAlKTtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAzcmVtIDA7XG4gIHBhZGRpbmctdG9wOiBjYWxjKDcycHggKyAzcmVtKTsgLyogQWNjb3VudCBmb3IgZml4ZWQgaGVhZGVyICovXG59XG5cbi5zZXJ2aWNlLWRldGFpbF9fYnJlYWRjcnVtYiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIG9wYWNpdHk6IDAuOTtcbn1cblxuLnNlcnZpY2UtZGV0YWlsX19icmVhZGNydW1iIGEge1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnNlcnZpY2UtZGV0YWlsX19icmVhZGNydW1iIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnNlcnZpY2UtZGV0YWlsX19icmVhZGNydW1iIHNwYW46bm90KDpsYXN0LWNoaWxkKSB7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLnNlcnZpY2UtZGV0YWlsX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uc2VydmljZS1kZXRhaWxfX2V4Y2VycHQge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIG9wYWNpdHk6IDAuOTtcbiAgbWF4LXdpZHRoOiA3MDBweDtcbn1cblxuLyogTGF5b3V0ICovXG4uc2VydmljZS1kZXRhaWxfX2xheW91dCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDM1MHB4O1xuICBnYXA6IDNyZW07XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk2OHB4KSB7XG4gIC5zZXJ2aWNlLWRldGFpbF9fbGF5b3V0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxuXG4gIC5zZXJ2aWNlLWRldGFpbF9fc2lkZWJhciB7XG4gICAgb3JkZXI6IC0xO1xuICB9XG59XG5cbi8qIENvbnRlbnQgKi9cbi5zZXJ2aWNlLWRldGFpbF9fY29udGVudCB7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnNlcnZpY2UtZGV0YWlsX19pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIGJveC1zaGFkb3c6IDAgNHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4uc2VydmljZS1kZXRhaWxfX3RleHQge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS44O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XG59XG5cbi5zZXJ2aWNlLWRldGFpbF9fdGV4dCBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuXG4uc2VydmljZS1kZXRhaWxfX3RleHQgaDIge1xuICBmb250LXNpemU6IDEuNzVyZW07XG4gIG1hcmdpbi10b3A6IDIuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLnNlcnZpY2UtZGV0YWlsX190ZXh0IGgzIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG5cbi5zZXJ2aWNlLWRldGFpbF9fdGV4dCB1bCxcbi5zZXJ2aWNlLWRldGFpbF9fdGV4dCBvbCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG59XG5cbi5zZXJ2aWNlLWRldGFpbF9fdGV4dCBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLyogU2lkZWJhciAqL1xuLnNlcnZpY2UtZGV0YWlsX19zaWRlYmFyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAycmVtO1xufVxuXG4uc2VydmljZS1kZXRhaWxfX2N0YS1jYXJkLFxuLnNlcnZpY2UtZGV0YWlsX19jb250YWN0LWNhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgcGFkZGluZzogMS41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIGJveC1zaGFkb3c6IDAgNHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbn1cblxuLnNlcnZpY2UtZGV0YWlsX19jdGEtY2FyZCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXNlY29uZGFyeS1jb2xvcikgMCUsIHZhcigtLXNlY29uZGFyeS1kYXJrLCAjYzI0MTBjKSAxMDAlKTtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uc2VydmljZS1kZXRhaWxfX2N0YS1jYXJkIGgzLFxuLnNlcnZpY2UtZGV0YWlsX19jb250YWN0LWNhcmQgaDMge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLnNlcnZpY2UtZGV0YWlsX19jdGEtY2FyZCBwLFxuLnNlcnZpY2UtZGV0YWlsX19jb250YWN0LWNhcmQgcCB7XG4gIG9wYWNpdHk6IDAuOTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xufVxuXG4uc2VydmljZS1kZXRhaWxfX3Bob25lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjc1cmVtO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG59XG5cbi5zZXJ2aWNlLWRldGFpbF9fcGhvbmU6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1kYXJrLCAjMWEzNjVkKTtcbn1cblxuLnNlcnZpY2UtZGV0YWlsX19waG9uZSBzdmcge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xufVxuXG4vKiBCb3R0b20gQ1RBICovXG4uc2VydmljZS1kZXRhaWxfX2JvdHRvbS1jdGEge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1saWdodCwgI2Y4ZmFmYyk7XG4gIHBhZGRpbmc6IDRyZW0gMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc2VydmljZS1kZXRhaWxfX2JvdHRvbS1jdGEgaDIge1xuICBmb250LXNpemU6IDJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG5cbi5zZXJ2aWNlLWRldGFpbF9fYm90dG9tLWN0YSBwIHtcbiAgY29sb3I6IHZhcigtLXRleHQtbGlnaHQpO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xufVxuXG4uc2VydmljZS1kZXRhaWxfX2JvdHRvbS1idXR0b25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMXJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4vKiBSZXNwb25zaXZlICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNlcnZpY2UtZGV0YWlsX19oZXJvIHtcbiAgICBwYWRkaW5nOiAycmVtIDA7XG4gIH1cblxuICAuc2VydmljZS1kZXRhaWxfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuNzVyZW07XG4gIH1cblxuICAuc2VydmljZS1kZXRhaWxfX2V4Y2VycHQge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxuXG4gIC5zZXJ2aWNlLWRldGFpbF9fdGV4dCB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG5cbiAgLnNlcnZpY2UtZGV0YWlsX19ib3R0b20tY3RhIHtcbiAgICBwYWRkaW5nOiAzcmVtIDA7XG4gIH1cblxuICAuc2VydmljZS1kZXRhaWxfX2JvdHRvbS1jdGEgaDIge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG59XG4iLCIuaGVyby1ibG9jayB7XG4gIG1pbi1oZWlnaHQ6IDgwdmg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSwgIzBkNmVmZCk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uaGVyby1ibG9jay0td2l0aC1pbWFnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYTFhMmU7XG59XG5cbi5oZXJvLWJsb2NrX19vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uaGVyby1ibG9ja19fY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogNHJlbSAxLjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbn1cblxuLmhlcm8tYmxvY2tfX2NvbnRlbnQge1xuICBtYXgtd2lkdGg6IDgwMHB4O1xufVxuXG4vKiBBbGlnbm1lbnQgdmFyaWF0aW9ucyAqL1xuLmhlcm8tYmxvY2stLWFsaWduLWNlbnRlciAuaGVyby1ibG9ja19fY29udGVudCB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5oZXJvLWJsb2NrLS1hbGlnbi1sZWZ0IC5oZXJvLWJsb2NrX19jb250ZW50IHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uaGVyby1ibG9jay0tYWxpZ24tcmlnaHQgLmhlcm8tYmxvY2tfX2NvbnRlbnQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5oZXJvLWJsb2NrX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMy41cmVtO1xuICBmb250LXdlaWdodDogODAwO1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICB0ZXh0LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cblxuLmhlcm8tYmxvY2tfX3N1YnRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS43O1xuICBvcGFjaXR5OiAwLjk1O1xuICBtYXJnaW4tYm90dG9tOiAyLjVyZW07XG59XG5cbi5oZXJvLWJsb2NrX19idXR0b25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxcmVtO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5oZXJvLWJsb2NrLS1hbGlnbi1jZW50ZXIgLmhlcm8tYmxvY2tfX2J1dHRvbnMge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmhlcm8tYmxvY2stLWFsaWduLXJpZ2h0IC5oZXJvLWJsb2NrX19idXR0b25zIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLmhlcm8tYmxvY2tfX2J1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMXJlbSAyLjVyZW07XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLmhlcm8tYmxvY2tfX2J1dHRvbi0tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSwgIzBkNmVmZCk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE0cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cblxuLmhlcm8tYmxvY2tfX2J1dHRvbi0tcHJpbWFyeTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgYm94LXNoYWRvdzogMCA4cHggMjVweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG5cbi5oZXJvLWJsb2NrX19idXR0b24tLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbn1cblxuLmhlcm8tYmxvY2tfX2J1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LCAjMGQ2ZWZkKTtcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbn1cblxuLyogUmVzcG9uc2l2ZSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5oZXJvLWJsb2NrIHtcbiAgICBtaW4taGVpZ2h0OiA3MHZoO1xuICB9XG5cbiAgLmhlcm8tYmxvY2tfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDIuNzVyZW07XG4gIH1cblxuICAuaGVyby1ibG9ja19fc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5oZXJvLWJsb2NrIHtcbiAgICBtaW4taGVpZ2h0OiA2MHZoO1xuICB9XG5cbiAgLmhlcm8tYmxvY2tfX2NvbnRhaW5lciB7XG4gICAgcGFkZGluZzogM3JlbSAxLjI1cmVtO1xuICB9XG5cbiAgLmhlcm8tYmxvY2tfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gIH1cblxuICAuaGVyby1ibG9ja19fc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxuXG4gIC5oZXJvLWJsb2NrX19idXR0b25zIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgLmhlcm8tYmxvY2tfX2J1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMC44NzVyZW0gMS41cmVtO1xuICB9XG5cbiAgLmhlcm8tYmxvY2stLWFsaWduLXJpZ2h0IC5oZXJvLWJsb2NrX19jb250ZW50LFxuICAuaGVyby1ibG9jay0tYWxpZ24tbGVmdCAuaGVyby1ibG9ja19fY29udGVudCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLmhlcm8tYmxvY2stLWFsaWduLXJpZ2h0IC5oZXJvLWJsb2NrX19idXR0b25zLFxuICAuaGVyby1ibG9jay0tYWxpZ24tbGVmdCAuaGVyby1ibG9ja19fYnV0dG9ucyB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cbiIsIi5zZXJ2aWNlcy1ibG9jayB7XG4gIHBhZGRpbmc6IDRyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctbGlnaHQsICNmOGY5ZmEpO1xufVxuXG4uc2VydmljZXMtYmxvY2tfX2NvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMTIwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCAxLjVyZW07XG59XG5cbi5zZXJ2aWNlcy1ibG9ja19faGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xufVxuXG4uc2VydmljZXMtYmxvY2tfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1oZWFkaW5nLCAjMWExYTJlKTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLnNlcnZpY2VzLWJsb2NrX19zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LW11dGVkLCAjNmM3NTdkKTtcbiAgbWF4LXdpZHRoOiA2MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5zZXJ2aWNlcy1ibG9ja19fZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjgwcHgsIDFmcikpO1xuICBnYXA6IDJyZW07XG59XG5cbi5zZXJ2aWNlcy1ibG9ja19faXRlbSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiAycmVtO1xuICBib3gtc2hhZG93OiAwIDRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZSwgYm94LXNoYWRvdyAwLjNzIGVhc2U7XG59XG5cbi5zZXJ2aWNlcy1ibG9ja19faXRlbTpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbiAgYm94LXNoYWRvdzogMCAxMnB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4uc2VydmljZXMtYmxvY2tfX2ljb24ge1xuICB3aWR0aDogNjBweDtcbiAgaGVpZ2h0OiA2MHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0LCAjZTNmMmZkKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG4uc2VydmljZXMtYmxvY2tfX2ltYWdlIHtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5zZXJ2aWNlcy1ibG9ja19faW1hZ2UgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTgwcHg7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4uc2VydmljZXMtYmxvY2tfX2l0ZW0tdGl0bGUge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1oZWFkaW5nLCAjMWExYTJlKTtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbn1cblxuLnNlcnZpY2VzLWJsb2NrX19pdGVtLWRlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1tdXRlZCwgIzZjNzU3ZCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5zZXJ2aWNlcy1ibG9ja19fbGluayB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LCAjMGQ2ZWZkKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXdlaWdodDogNTAwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIHRyYW5zaXRpb246IGdhcCAwLjJzIGVhc2U7XG59XG5cbi5zZXJ2aWNlcy1ibG9ja19fbGluazpob3ZlciB7XG4gIGdhcDogMC43NXJlbTtcbn1cblxuLnNlcnZpY2VzLWJsb2NrX19saW5rOjphZnRlciB7XG4gIGNvbnRlbnQ6ICdcXDIxOTInO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNlcnZpY2VzLWJsb2NrIHtcbiAgICBwYWRkaW5nOiAzcmVtIDA7XG4gIH1cblxuICAuc2VydmljZXMtYmxvY2tfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gIH1cblxuICAuc2VydmljZXMtYmxvY2tfX2dyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG4iLCIuY3RhLWJsb2NrIHtcbiAgcGFkZGluZzogNXJlbSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LCAjMGQ2ZWZkKTtcbiAgY29sb3I6IHdoaXRlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jdGEtYmxvY2stLXdpdGgtaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5jdGEtYmxvY2tfX292ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuXG4uY3RhLWJsb2NrX19jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDkwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCAxLjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbn1cblxuLmN0YS1ibG9ja19fY29udGVudCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmN0YS1ibG9ja19fdGl0bGUge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLmN0YS1ibG9ja19fZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBvcGFjaXR5OiAwLjk7XG4gIG1heC13aWR0aDogNjUwcHg7XG4gIG1hcmdpbjogMCBhdXRvIDJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjc7XG59XG5cbi5jdGEtYmxvY2tfX2J1dHRvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAxcmVtO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5jdGEtYmxvY2tfX2J1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMXJlbSAycmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBtaW4td2lkdGg6IDE4MHB4O1xufVxuXG4uY3RhLWJsb2NrX19idXR0b24tLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnksICMwZDZlZmQpO1xufVxuXG4uY3RhLWJsb2NrX19idXR0b24tLXByaW1hcnk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuXG4uY3RhLWJsb2NrX19idXR0b24tLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xufVxuXG4uY3RhLWJsb2NrX19idXR0b24tLXNlY29uZGFyeTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSwgIzBkNmVmZCk7XG59XG5cbi8qIFZhcmlhbnQ6IENlbnRlcmVkIChkZWZhdWx0KSAqL1xuLmN0YS1ibG9jay0tZGVmYXVsdCAuY3RhLWJsb2NrX19jb250ZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiBWYXJpYW50OiBMZWZ0IGFsaWduZWQgKi9cbi5jdGEtYmxvY2stLWxlZnQgLmN0YS1ibG9ja19fY29udGVudCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jdGEtYmxvY2stLWxlZnQgLmN0YS1ibG9ja19fYnV0dG9ucyB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLyogVmFyaWFudDogU3BsaXQgKHRpdGxlIGxlZnQsIGJ1dHRvbiByaWdodCkgKi9cbi5jdGEtYmxvY2stLXNwbGl0IC5jdGEtYmxvY2tfX2NvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMTIwMHB4O1xufVxuXG4uY3RhLWJsb2NrLS1zcGxpdCAuY3RhLWJsb2NrX19jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBnYXA6IDJyZW07XG59XG5cbi5jdGEtYmxvY2stLXNwbGl0IC5jdGEtYmxvY2tfX2Rlc2NyaXB0aW9uIHtcbiAgbWFyZ2luOiAwLjVyZW0gMCAwO1xufVxuXG4uY3RhLWJsb2NrLS1zcGxpdCAuY3RhLWJsb2NrX19idXR0b25zIHtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8qIFZhcmlhbnQ6IE1pbmltYWwgKi9cbi5jdGEtYmxvY2stLW1pbmltYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWhlYWRpbmcsICMxYTFhMmUpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U5ZWNlZjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlOWVjZWY7XG4gIHBhZGRpbmc6IDNyZW0gMDtcbn1cblxuLmN0YS1ibG9jay0tbWluaW1hbCAuY3RhLWJsb2NrX19idXR0b24tLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LCAjMGQ2ZWZkKTtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uY3RhLWJsb2NrLS1taW5pbWFsIC5jdGEtYmxvY2tfX2J1dHRvbi0tc2Vjb25kYXJ5IHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LCAjMGQ2ZWZkKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnksICMwZDZlZmQpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmN0YS1ibG9jayB7XG4gICAgcGFkZGluZzogM3JlbSAwO1xuICB9XG5cbiAgLmN0YS1ibG9ja19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgfVxuXG4gIC5jdGEtYmxvY2tfX2Rlc2NyaXB0aW9uIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cblxuICAuY3RhLWJsb2NrLS1zcGxpdCAuY3RhLWJsb2NrX19jb250ZW50IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5jdGEtYmxvY2stLXNwbGl0IC5jdGEtYmxvY2tfX2J1dHRvbnMge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLmN0YS1ibG9ja19fYnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IHVuc2V0O1xuICB9XG59XG4iLCIudGV4dC1pbWFnZS1ibG9jayB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMTYpIDA7XG59XG5cbi50ZXh0LWltYWdlLWJsb2NrX19ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMTIpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4udGV4dC1pbWFnZS1ibG9jay0taW1hZ2UtbGVmdCAudGV4dC1pbWFnZS1ibG9ja19faW1hZ2Uge1xuICBvcmRlcjogLTE7XG59XG5cbi50ZXh0LWltYWdlLWJsb2NrX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0zeGwpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNCk7XG59XG5cbi50ZXh0LWltYWdlLWJsb2NrX190ZXh0IHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNjAwKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxlYWRpbmctcmVsYXhlZCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNik7XG59XG5cbi50ZXh0LWltYWdlLWJsb2NrX190ZXh0IHAge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLTQpO1xufVxuXG4udGV4dC1pbWFnZS1ibG9ja19fdGV4dCBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4udGV4dC1pbWFnZS1ibG9ja19fYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMykgdmFyKC0tc3BhY2luZy02KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbn1cblxuLnRleHQtaW1hZ2UtYmxvY2tfX2J1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXNlY29uZGFyeS1kYXJrKTtcbn1cblxuLnRleHQtaW1hZ2UtYmxvY2tfX2ltYWdlIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy14bCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1sZyk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAudGV4dC1pbWFnZS1ibG9ja19fZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cblxuICAudGV4dC1pbWFnZS1ibG9jay0taW1hZ2UtbGVmdCAudGV4dC1pbWFnZS1ibG9ja19faW1hZ2Uge1xuICAgIG9yZGVyOiAwO1xuICB9XG5cbiAgLnRleHQtaW1hZ2UtYmxvY2tfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQtMnhsKTtcbiAgfVxufVxuIiwiLmZhcS1ibG9jayB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMTYpIDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktNTApO1xufVxuXG4uZmFxLWJsb2NrX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0zeGwpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy00KTtcbn1cblxuLmZhcS1ibG9ja19fc3VidGl0bGUge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtbGcpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS02MDApO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1heC13aWR0aDogNjAwcHg7XG4gIG1hcmdpbjogMCBhdXRvIHZhcigtLXNwYWNpbmctMTApO1xufVxuXG4uZmFxLWJsb2NrX19saXN0IHtcbiAgbWF4LXdpZHRoOiA4MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc3BhY2luZy00KTtcbn1cblxuLmZhcS1ibG9ja19faXRlbSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc20pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZmFxLWJsb2NrX19xdWVzdGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTUpIHZhcigtLXNwYWNpbmctNik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1iYXNlKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG5cbi5mYXEtYmxvY2tfX3F1ZXN0aW9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS01MCk7XG59XG5cbi5mYXEtYmxvY2tfX3F1ZXN0aW9uIHN2ZyB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1iYXNlKTtcbn1cblxuLmZhcS1ibG9ja19faXRlbS5vcGVuIC5mYXEtYmxvY2tfX3F1ZXN0aW9uIHN2ZyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xufVxuXG4uZmFxLWJsb2NrX19hbnN3ZXIge1xuICBtYXgtaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG59XG5cbi5mYXEtYmxvY2tfX2l0ZW0ub3BlbiAuZmFxLWJsb2NrX19hbnN3ZXIge1xuICBtYXgtaGVpZ2h0OiAxMDAwcHg7XG59XG5cbi5mYXEtYmxvY2tfX2Fuc3dlci1jb250ZW50IHtcbiAgcGFkZGluZzogMCB2YXIoLS1zcGFjaW5nLTYpIHZhcigtLXNwYWNpbmctNSk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTYwMCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1sZWFkaW5nLXJlbGF4ZWQpO1xufVxuXG4uZmFxLWJsb2NrX19hbnN3ZXItY29udGVudCBwIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy0zKTtcbn1cblxuLmZhcS1ibG9ja19fYW5zd2VyLWNvbnRlbnQgcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5mYXEtYmxvY2tfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQtMnhsKTtcbiAgfVxuXG4gIC5mYXEtYmxvY2tfX3F1ZXN0aW9uIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIH1cblxuICAuZmFxLWJsb2NrX19hbnN3ZXItY29udGVudCB7XG4gICAgcGFkZGluZzogMCB2YXIoLS1zcGFjaW5nLTQpIHZhcigtLXNwYWNpbmctNCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgfVxufVxuIiwiLnRlc3RpbW9uaWFscy1ibG9jayB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMTYpIDA7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNvbG9yLXByaW1hcnkpIDAlLCAjMWUzYTVmIDEwMCUpO1xufVxuXG4udGVzdGltb25pYWxzLWJsb2NrX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0zeGwpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLTQpO1xufVxuXG4udGVzdGltb25pYWxzLWJsb2NrX19zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiA2MDBweDtcbiAgbWFyZ2luOiAwIGF1dG8gdmFyKC0tc3BhY2luZy0xMCk7XG59XG5cbi50ZXN0aW1vbmlhbHMtYmxvY2tfX2dyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMwMHB4LCAxZnIpKTtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTYpO1xufVxuXG4udGVzdGltb25pYWwtY2FyZCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMteGwpO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTYpO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGcpO1xufVxuXG4udGVzdGltb25pYWwtY2FyZF9fcmF0aW5nIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy00KTtcbn1cblxuLnRlc3RpbW9uaWFsLWNhcmRfX3JhdGluZyAuc3RhciB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTMwMCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG59XG5cbi50ZXN0aW1vbmlhbC1jYXJkX19yYXRpbmcgLnN0YXItLWZpbGxlZCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xufVxuXG4udGVzdGltb25pYWwtY2FyZF9fcXVvdGUge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtYmFzZSk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTcwMCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1sZWFkaW5nLXJlbGF4ZWQpO1xuICBtYXJnaW46IDAgMCB2YXIoLS1zcGFjaW5nLTYpO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi50ZXN0aW1vbmlhbC1jYXJkX19hdXRob3Ige1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMyk7XG59XG5cbi50ZXN0aW1vbmlhbC1jYXJkX19hdmF0YXIge1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4udGVzdGltb25pYWwtY2FyZF9faW5mbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi50ZXN0aW1vbmlhbC1jYXJkX19uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcbn1cblxuLnRlc3RpbW9uaWFsLWNhcmRfX3JvbGUge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS01MDApO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnRlc3RpbW9uaWFscy1ibG9ja19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0yeGwpO1xuICB9XG5cbiAgLnRlc3RpbW9uaWFscy1ibG9ja19fZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cbn1cbiIsIi5jdXN0b20taHRtbC1ibG9jayB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMTApIDA7XG59XG5cbi5jdXN0b20taHRtbC1ibG9ja19fY29udGVudCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTcwMCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1sZWFkaW5nLXJlbGF4ZWQpO1xufVxuXG4uY3VzdG9tLWh0bWwtYmxvY2tfX2NvbnRlbnQgaDEsXG4uY3VzdG9tLWh0bWwtYmxvY2tfX2NvbnRlbnQgaDIsXG4uY3VzdG9tLWh0bWwtYmxvY2tfX2NvbnRlbnQgaDMsXG4uY3VzdG9tLWh0bWwtYmxvY2tfX2NvbnRlbnQgaDQsXG4uY3VzdG9tLWh0bWwtYmxvY2tfX2NvbnRlbnQgaDUsXG4uY3VzdG9tLWh0bWwtYmxvY2tfX2NvbnRlbnQgaDYge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLTQpO1xufVxuXG4uY3VzdG9tLWh0bWwtYmxvY2tfX2NvbnRlbnQgaDEge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtNHhsKTtcbn1cblxuLmN1c3RvbS1odG1sLWJsb2NrX19jb250ZW50IGgyIHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTN4bCk7XG59XG5cbi5jdXN0b20taHRtbC1ibG9ja19fY29udGVudCBoMyB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0yeGwpO1xufVxuXG4uY3VzdG9tLWh0bWwtYmxvY2tfX2NvbnRlbnQgcCB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNCk7XG59XG5cbi5jdXN0b20taHRtbC1ibG9ja19fY29udGVudCB1bCxcbi5jdXN0b20taHRtbC1ibG9ja19fY29udGVudCBvbCB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNCk7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tc3BhY2luZy02KTtcbn1cblxuLmN1c3RvbS1odG1sLWJsb2NrX19jb250ZW50IGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy0yKTtcbn1cblxuLmN1c3RvbS1odG1sLWJsb2NrX19jb250ZW50IGEge1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5jdXN0b20taHRtbC1ibG9ja19fY29udGVudCBhOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeS1kYXJrKTtcbn1cblxuLmN1c3RvbS1odG1sLWJsb2NrX19jb250ZW50IGltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xufVxuXG4uY3VzdG9tLWh0bWwtYmxvY2tfX2NvbnRlbnQgYmxvY2txdW90ZSB7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjaW5nLTQpO1xuICBtYXJnaW46IHZhcigtLXNwYWNpbmctNikgMDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS02MDApO1xufVxuXG4uY3VzdG9tLWh0bWwtYmxvY2tfX2NvbnRlbnQgdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy00KTtcbn1cblxuLmN1c3RvbS1odG1sLWJsb2NrX19jb250ZW50IHRoLFxuLmN1c3RvbS1odG1sLWJsb2NrX19jb250ZW50IHRkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS0yMDApO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTMpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uY3VzdG9tLWh0bWwtYmxvY2tfX2NvbnRlbnQgdGgge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG4iLCIvKiBQYWdlIEhlYWRlciBCbG9jayAqL1xuLnBhZ2UtaGVhZGVyLWJsb2NrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jb2xvci1wcmltYXJ5KSAwJSwgdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrKSAxMDAlKTtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nLXRvcDogY2FsYyg3MnB4ICsgM3JlbSk7IC8qIEFjY291bnQgZm9yIGZpeGVkIGhlYWRlciAqL1xuICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogU2l6ZSBWYXJpYW50cyAocGFkZGluZykgKi9cbi5wYWdlLWhlYWRlci1ibG9jay0tc21hbGwge1xuICBwYWRkaW5nLXRvcDogY2FsYyg3MnB4ICsgMnJlbSk7XG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xufVxuXG4ucGFnZS1oZWFkZXItYmxvY2stLW1lZGl1bSB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKDcycHggKyAzcmVtKTtcbiAgcGFkZGluZy1ib3R0b206IDNyZW07XG59XG5cbi5wYWdlLWhlYWRlci1ibG9jay0tbGFyZ2Uge1xuICBwYWRkaW5nLXRvcDogY2FsYyg3MnB4ICsgNXJlbSk7XG4gIHBhZGRpbmctYm90dG9tOiA1cmVtO1xufVxuXG4vKiBGb250IFNpemUgVmFyaWFudHMgKi9cbi5wYWdlLWhlYWRlci1ibG9jay0tZm9udC1zbWFsbCAucGFnZS1oZWFkZXItYmxvY2tfX3RpdGxlIHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTJ4bCwgMS41cmVtKTtcbn1cbi5wYWdlLWhlYWRlci1ibG9jay0tZm9udC1zbWFsbCAucGFnZS1oZWFkZXItYmxvY2tfX3N1YnRpdGxlIHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWJhc2UsIDFyZW0pO1xufVxuXG4ucGFnZS1oZWFkZXItYmxvY2stLWZvbnQtbWVkaXVtIC5wYWdlLWhlYWRlci1ibG9ja19fdGl0bGUge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtNHhsLCAyLjI1cmVtKTtcbn1cbi5wYWdlLWhlYWRlci1ibG9jay0tZm9udC1tZWRpdW0gLnBhZ2UtaGVhZGVyLWJsb2NrX19zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZywgMS4xMjVyZW0pO1xufVxuXG4ucGFnZS1oZWFkZXItYmxvY2stLWZvbnQtbGFyZ2UgLnBhZ2UtaGVhZGVyLWJsb2NrX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC01eGwsIDNyZW0pO1xufVxuLnBhZ2UtaGVhZGVyLWJsb2NrLS1mb250LWxhcmdlIC5wYWdlLWhlYWRlci1ibG9ja19fc3VidGl0bGUge1xuICBmb250LXNpemU6IHZhcigtLXRleHQteGwsIDEuMjVyZW0pO1xufVxuXG4ucGFnZS1oZWFkZXItYmxvY2stLWZvbnQteGxhcmdlIC5wYWdlLWhlYWRlci1ibG9ja19fdGl0bGUge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtNnhsLCAzLjc1cmVtKTtcbn1cbi5wYWdlLWhlYWRlci1ibG9jay0tZm9udC14bGFyZ2UgLnBhZ2UtaGVhZGVyLWJsb2NrX19zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0yeGwsIDEuNXJlbSk7XG59XG5cbi8qIEFsaWdubWVudCBWYXJpYW50cyAqL1xuLnBhZ2UtaGVhZGVyLWJsb2NrLS1sZWZ0IC5wYWdlLWhlYWRlci1ibG9ja19fY29udGVudCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5wYWdlLWhlYWRlci1ibG9jay0tY2VudGVyIC5wYWdlLWhlYWRlci1ibG9ja19fY29udGVudCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnBhZ2UtaGVhZGVyLWJsb2NrLS1yaWdodCAucGFnZS1oZWFkZXItYmxvY2tfX2NvbnRlbnQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLyogSW1hZ2UgQmFja2dyb3VuZCAqL1xuLnBhZ2UtaGVhZGVyLWJsb2NrLS1oYXMtaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XG59XG5cbi5wYWdlLWhlYWRlci1ibG9ja19fb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiBDb250ZW50ICovXG4ucGFnZS1oZWFkZXItYmxvY2tfX2NvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIG1heC13aWR0aDogODAwcHg7XG59XG5cbi5wYWdlLWhlYWRlci1ibG9jay0tY2VudGVyIC5wYWdlLWhlYWRlci1ibG9ja19fY29udGVudCB7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ucGFnZS1oZWFkZXItYmxvY2stLXJpZ2h0IC5wYWdlLWhlYWRlci1ibG9ja19fY29udGVudCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4vKiBCcmVhZGNydW1iICovXG4ucGFnZS1oZWFkZXItYmxvY2tfX2JyZWFkY3J1bWIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtLCAwLjg3NXJlbSk7XG4gIG9wYWNpdHk6IDAuOTtcbn1cblxuLnBhZ2UtaGVhZGVyLWJsb2NrLS1jZW50ZXIgLnBhZ2UtaGVhZGVyLWJsb2NrX19icmVhZGNydW1iIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5wYWdlLWhlYWRlci1ibG9jay0tcmlnaHQgLnBhZ2UtaGVhZGVyLWJsb2NrX19icmVhZGNydW1iIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLnBhZ2UtaGVhZGVyLWJsb2NrX19icmVhZGNydW1iIGEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG59XG5cbi5wYWdlLWhlYWRlci1ibG9ja19fYnJlYWRjcnVtYiBhOmhvdmVyIHtcbiAgb3BhY2l0eTogMC44O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnBhZ2UtaGVhZGVyLWJsb2NrX19icmVhZGNydW1iIC5zZXBhcmF0b3Ige1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5wYWdlLWhlYWRlci1ibG9ja19fYnJlYWRjcnVtYiAuY3VycmVudCB7XG4gIG9wYWNpdHk6IDAuODtcbn1cblxuLyogVGl0bGUgKi9cbi5wYWdlLWhlYWRlci1ibG9ja19fdGl0bGUge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtNHhsLCAyLjI1cmVtKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQsIDcwMCk7XG4gIG1hcmdpbjogMDtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxlYWRpbmctdGlnaHQsIDEuMjUpO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLyogU3VidGl0bGUgKi9cbi5wYWdlLWhlYWRlci1ibG9ja19fc3VidGl0bGUge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtbGcsIDEuMTI1cmVtKTtcbiAgbWFyZ2luOiAxcmVtIDAgMDtcbiAgb3BhY2l0eTogMC45O1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGVhZGluZy1yZWxheGVkLCAxLjYyNSk7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4vKiBSZXNwb25zaXZlICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnBhZ2UtaGVhZGVyLWJsb2NrIHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYyg3MnB4ICsgMnJlbSk7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gIH1cblxuICAucGFnZS1oZWFkZXItYmxvY2stLWxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYyg3MnB4ICsgM3JlbSk7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gIH1cblxuICAvKiBSZWR1Y2UgZm9udCBzaXplcyBvbiBtb2JpbGUgKi9cbiAgLnBhZ2UtaGVhZGVyLWJsb2NrLS1mb250LW1lZGl1bSAucGFnZS1oZWFkZXItYmxvY2tfX3RpdGxlLFxuICAucGFnZS1oZWFkZXItYmxvY2tfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsLCAxLjg3NXJlbSk7XG4gIH1cblxuICAucGFnZS1oZWFkZXItYmxvY2stLWZvbnQtbGFyZ2UgLnBhZ2UtaGVhZGVyLWJsb2NrX190aXRsZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTR4bCwgMi4yNXJlbSk7XG4gIH1cblxuICAucGFnZS1oZWFkZXItYmxvY2stLWZvbnQteGxhcmdlIC5wYWdlLWhlYWRlci1ibG9ja19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC01eGwsIDNyZW0pO1xuICB9XG5cbiAgLnBhZ2UtaGVhZGVyLWJsb2NrX19zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWJhc2UsIDFyZW0pO1xuICB9XG5cbiAgLnBhZ2UtaGVhZGVyLWJsb2NrLS1mb250LWxhcmdlIC5wYWdlLWhlYWRlci1ibG9ja19fc3VidGl0bGUsXG4gIC5wYWdlLWhlYWRlci1ibG9jay0tZm9udC14bGFyZ2UgLnBhZ2UtaGVhZGVyLWJsb2NrX19zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnLCAxLjEyNXJlbSk7XG4gIH1cblxuICAucGFnZS1oZWFkZXItYmxvY2tfX2JyZWFkY3J1bWIge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxufVxuIiwiLyogQ29udGFjdEJsb2NrIC0gQ2FydGVzIGRlIGNvb3Jkb25uw6llcyAqL1xuXG4uY29udGFjdC1ibG9jayB7XG4gIHBhZGRpbmc6IDRyZW0gMDtcbn1cblxuLmNvbnRhY3QtYmxvY2tfX2hlYWRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMi41cmVtO1xufVxuXG4uY29udGFjdC1ibG9ja19fdGl0bGUge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbi5jb250YWN0LWJsb2NrX19zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTYwMCk7XG4gIG1heC13aWR0aDogNjAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4vKiBDYXJkcyBncmlkIC0gaWRlbnRpcXVlIMOgIC5jb250YWN0LWNhcmRzICovXG4uY29udGFjdC1ibG9ja19fY2FyZHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICBnYXA6IDEuNXJlbTtcbn1cblxuLyogQ2FyZCAtIGlkZW50aXF1ZSDDoCAuY29udGFjdC1jYXJkICovXG4uY29udGFjdC1ibG9ja19fY2FyZCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMteGwpO1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1tZCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMsIGJveC1zaGFkb3cgMC4ycztcbn1cblxuLmNvbnRhY3QtYmxvY2tfX2NhcmQ6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1sZyk7XG59XG5cbi8qIEFjY2VudCB2YXJpYW50IC0gaWRlbnRpcXVlIMOgIC5jb250YWN0LWNhcmQtLWFjY2VudCAqL1xuLmNvbnRhY3QtYmxvY2tfX2NhcmQtLWFjY2VudCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNvbG9yLXNlY29uZGFyeSkgMCUsICMwZWE1ZTkgMTAwJSk7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmNvbnRhY3QtYmxvY2tfX2NhcmQtLWFjY2VudCBoMyxcbi5jb250YWN0LWJsb2NrX19jYXJkLS1hY2NlbnQgcCxcbi5jb250YWN0LWJsb2NrX19jYXJkLS1hY2NlbnQgc3Ryb25nIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4vKiBJY29uIC0gaWRlbnRpcXVlIMOgIC5jb250YWN0LWNhcmRfX2ljb24gKi9cbi5jb250YWN0LWJsb2NrX19jYXJkLWljb24ge1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBtYXJnaW46IDAgYXV0byAxcmVtO1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xufVxuXG4uY29udGFjdC1ibG9ja19fY2FyZC0tYWNjZW50IC5jb250YWN0LWJsb2NrX19jYXJkLWljb24ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmNvbnRhY3QtYmxvY2tfX2NhcmQtaWNvbiBzdmcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uY29udGFjdC1ibG9ja19fY2FyZCBoMyB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcbn1cblxuLmNvbnRhY3QtYmxvY2tfX2NhcmQgcCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTYwMCk7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLyogTGluayAtIGlkZW50aXF1ZSDDoCAuY29udGFjdC1jYXJkX19saW5rICovXG4uY29udGFjdC1ibG9ja19fY2FyZC1saW5rIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnKTtcbn1cblxuLmNvbnRhY3QtYmxvY2tfX2NhcmQtbGluazpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4vKiBBZGRyZXNzIC0gaWRlbnRpcXVlIMOgIC5jb250YWN0LWNhcmRfX2FkZHJlc3MgKi9cbi5jb250YWN0LWJsb2NrX19jYXJkLWFkZHJlc3Mge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS03MDApO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG4vKiBIb3VycyAtIGlkZW50aXF1ZSDDoCAuY29udGFjdC1jYXJkX19ob3VycyAqL1xuLmNvbnRhY3QtYmxvY2tfX2NhcmQtaG91cnMgcCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIG1hcmdpbjogMC4yNXJlbSAwO1xufVxuXG4vKiBSZXNwb25zaXZlICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmNvbnRhY3QtYmxvY2tfX2NhcmRzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxuXG4gIC5jb250YWN0LWJsb2NrX190aXRsZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTJ4bCk7XG4gIH1cbn1cbiIsIi8qIEZvcm11bGFpcmVCbG9jayAtIEZvcm11bGFpcmUgZGUgY29udGFjdCAqL1xuXG4uZm9ybXVsYWlyZS1ibG9jayB7XG4gIHBhZGRpbmc6IDRyZW0gMDtcbn1cblxuLyogV3JhcHBlciAtIGlkZW50aXF1ZSDDoCAuY29udGFjdC1mb3JtLWNvbnRhaW5lciAqL1xuLmZvcm11bGFpcmUtYmxvY2tfX3dyYXBwZXIge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXhsKTtcbiAgcGFkZGluZzogMnJlbTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWxnKTtcbiAgbWF4LXdpZHRoOiA3MjBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5mb3JtdWxhaXJlLWJsb2NrX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0yeGwpO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XG59XG5cbi5mb3JtdWxhaXJlLWJsb2NrX19zdWJ0aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTYwMCk7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cblxuLmZvcm11bGFpcmUtYmxvY2tfX3N1YnRpdGxlIGEge1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbn1cblxuLyogRm9ybSByb3dzIC0gaWRlbnRpcXVlIMOgIC5jb250YWN0LWZvcm1fX3JvdyAqL1xuLmZvcm11bGFpcmUtYmxvY2tfX3JvdyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdhcDogMXJlbTtcbn1cblxuLyogRmllbGQgLSBpZGVudGlxdWUgw6AgLmNvbnRhY3QtZm9ybV9fZmllbGQgKi9cbi5mb3JtdWxhaXJlLWJsb2NrX19maWVsZCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5mb3JtdWxhaXJlLWJsb2NrX19maWVsZCBsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNzAwKTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uZm9ybXVsYWlyZS1ibG9ja19fZmllbGQgaW5wdXQsXG4uZm9ybXVsYWlyZS1ibG9ja19fZmllbGQgdGV4dGFyZWEge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC43NXJlbSAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTMwMCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1iYXNlKTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMsIGJveC1zaGFkb3cgMC4ycztcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG5cbi5mb3JtdWxhaXJlLWJsb2NrX19maWVsZCBpbnB1dDpmb2N1cyxcbi5mb3JtdWxhaXJlLWJsb2NrX19maWVsZCB0ZXh0YXJlYTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjIpO1xufVxuXG4uZm9ybXVsYWlyZS1ibG9ja19fZmllbGQgdGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsO1xuICBtaW4taGVpZ2h0OiAxMjBweDtcbn1cblxuLyogU3VibWl0IGJ1dHRvbiAqL1xuLmZvcm11bGFpcmUtYmxvY2tfX3N1Ym1pdCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMC44NzVyZW0gMnJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtYmFzZSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzLCB0cmFuc2Zvcm0gMC4xcztcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbn1cblxuLmZvcm11bGFpcmUtYmxvY2tfX3N1Ym1pdDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktZGFyaywgIzFlM2E1Zik7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLmZvcm11bGFpcmUtYmxvY2tfX3N1Ym1pdDpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKiBTdWNjZXNzIC0gaWRlbnRpcXVlIMOgIC5jb250YWN0LWZvcm1fX3N1Y2Nlc3MgKi9cbi5mb3JtdWxhaXJlLWJsb2NrX19zdWNjZXNzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAzcmVtIDFyZW07XG59XG5cbi5mb3JtdWxhaXJlLWJsb2NrX19zdWNjZXNzIHN2ZyB7XG4gIHdpZHRoOiA2NHB4O1xuICBoZWlnaHQ6IDY0cHg7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uZm9ybXVsYWlyZS1ibG9ja19fc3VjY2VzcyBoMyB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLmZvcm11bGFpcmUtYmxvY2tfX3N1Y2Nlc3MgcCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTYwMCk7XG59XG5cbi8qIEVycm9yICovXG4uZm9ybXVsYWlyZS1ibG9ja19fZXJyb3ItbWVzc2FnZSB7XG4gIGJhY2tncm91bmQ6ICNmZWYyZjI7XG4gIGNvbG9yOiAjZGMyNjI2O1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG59XG5cbi8qIFJlc3BvbnNpdmUgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZm9ybXVsYWlyZS1ibG9ja19fcm93IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxuXG4gIC5mb3JtdWxhaXJlLWJsb2NrX193cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAxLjVyZW07XG4gIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBBR0UgREVUQUlMIChEeW5hbWljIHBhZ2VzIGZyb20gYWRtaW4pXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5wYWdlLWRldGFpbCB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ucGFnZS1kZXRhaWwgbWFpbiB7XG4gIGZsZXg6IDE7XG59XG5cbi8qIEJsb2NrcyBjb250YWluZXIgLSBjb21wZW5zYXRlIGZvciBmaXhlZCBoZWFkZXIgKi9cbi5wYWdlLWRldGFpbCAuYmxvY2tzLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctdG9wOiA3MnB4O1xufVxuXG4ucGFnZS1kZXRhaWwgLmJsb2Nrcy1jb250YWluZXIgPiAqOmZpcnN0LWNoaWxkIHtcbiAgLyogRW5zdXJlIGZpcnN0IGJsb2NrIGhhcyBwcm9wZXIgc3BhY2luZyBhZnRlciBoZWFkZXIgb2Zmc2V0ICovXG59XG5cbi8qIExvYWRpbmcgJiBFcnJvciBTdGF0ZXMgKi9cbi5wYWdlLWRldGFpbF9fbG9hZGluZyxcbi5wYWdlLWRldGFpbF9fZXJyb3Ige1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDRyZW0gMnJlbTtcbn1cblxuLnBhZ2UtZGV0YWlsX19lcnJvciBoMSB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLnBhZ2UtZGV0YWlsX19lcnJvciBwIHtcbiAgY29sb3I6IHZhcigtLXRleHQtbGlnaHQpO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4vKiBIZXJvICovXG4ucGFnZS1kZXRhaWxfX2hlcm8ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSAwJSwgdmFyKC0tcHJpbWFyeS1kYXJrLCAjMWEzNjVkKSAxMDAlKTtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAzcmVtIDA7XG4gIHBhZGRpbmctdG9wOiBjYWxjKDcycHggKyAzcmVtKTsgLyogQWNjb3VudCBmb3IgZml4ZWQgaGVhZGVyICovXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnBhZ2UtZGV0YWlsX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW46IDA7XG59XG5cbi8qIENvbnRlbnQgKi9cbi5wYWdlLWRldGFpbF9fY29udGVudCB7XG4gIG1heC13aWR0aDogODAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ucGFnZS1kZXRhaWxfX3RleHQge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS44O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XG59XG5cbi5wYWdlLWRldGFpbF9fdGV4dCBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuXG4ucGFnZS1kZXRhaWxfX3RleHQgaDIge1xuICBmb250LXNpemU6IDEuNzVyZW07XG4gIG1hcmdpbi10b3A6IDIuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgY29sb3I6IHZhcigtLWhlYWRpbmctY29sb3IsIHZhcigtLXRleHQtY29sb3IpKTtcbn1cblxuLnBhZ2UtZGV0YWlsX190ZXh0IGgzIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG5cbi5wYWdlLWRldGFpbF9fdGV4dCBoNCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbi5wYWdlLWRldGFpbF9fdGV4dCB1bCxcbi5wYWdlLWRldGFpbF9fdGV4dCBvbCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG59XG5cbi5wYWdlLWRldGFpbF9fdGV4dCBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLnBhZ2UtZGV0YWlsX190ZXh0IGltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gIG1hcmdpbjogMS41cmVtIDA7XG59XG5cbi5wYWdlLWRldGFpbF9fdGV4dCBhIHtcbiAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnBhZ2UtZGV0YWlsX190ZXh0IGE6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1kYXJrLCAjMWEzNjVkKTtcbn1cblxuLnBhZ2UtZGV0YWlsX190ZXh0IGJsb2NrcXVvdGUge1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLXByaW1hcnktY29sb3IpO1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgbWFyZ2luOiAxLjVyZW0gMDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogdmFyKC0tdGV4dC1saWdodCk7XG59XG5cbi5wYWdlLWRldGFpbF9fZW1wdHkge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDNyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJnLWxpZ2h0LCAjZjhmYWZjKTtcbiAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtbGlnaHQpO1xufVxuXG4vKiBDVEEgU2VjdGlvbiAqL1xuLnBhZ2UtZGV0YWlsX19jdGEge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1saWdodCwgI2Y4ZmFmYyk7XG4gIHBhZGRpbmc6IDRyZW0gMDtcbiAgbWFyZ2luLXRvcDogM3JlbTtcbn1cblxuLnBhZ2UtZGV0YWlsX19jdGEtY29udGVudCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiA2MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5wYWdlLWRldGFpbF9fY3RhLWNvbnRlbnQgaDIge1xuICBmb250LXNpemU6IDJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG5cbi5wYWdlLWRldGFpbF9fY3RhLWNvbnRlbnQgcCB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWxpZ2h0KTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xufVxuXG4vKiBSZXNwb25zaXZlICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnBhZ2UtZGV0YWlsX19oZXJvIHtcbiAgICBwYWRkaW5nOiAycmVtIDA7XG4gIH1cblxuICAucGFnZS1kZXRhaWxfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuNzVyZW07XG4gIH1cblxuICAucGFnZS1kZXRhaWxfX3RleHQge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxuXG4gIC5wYWdlLWRldGFpbF9fY3RhIHtcbiAgICBwYWRkaW5nOiAzcmVtIDA7XG4gIH1cblxuICAucGFnZS1kZXRhaWxfX2N0YS1jb250ZW50IGgyIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuIiwiLyogUGFnZSBTZWN0ZXVycyAqL1xuXG4uc2VjdGV1cnMtcGFnZSB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uc2VjdGV1cnMtaGVybyB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNvbG9yLXByaW1hcnkpIDAlLCAjMWUzYTVmIDEwMCUpO1xuICBwYWRkaW5nOiA4cmVtIDAgNHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc2VjdGV1cnMtaGVyb19fdGl0bGUge1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC01eGwpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5zZWN0ZXVycy1oZXJvX19kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC14bCk7XG4gIG1heC13aWR0aDogNjAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4vKiBHcmlkICovXG4uc2VjdGV1cnMtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIGdhcDogMS41cmVtO1xufVxuXG4vKiBDYXJkICovXG4uc2VjdGV1ci1jYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy14bCk7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1kKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MsIGJveC1zaGFkb3cgMC4zcztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLnNlY3RldXItY2FyZDpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXhsKTtcbn1cblxuLnNlY3RldXItY2FyZF9faWNvbiB7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNvbG9yLXNlY29uZGFyeSkgMCUsICMwZWE1ZTkgMTAwJSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gIHBhZGRpbmc6IDAuNzVyZW07XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLnNlY3RldXItY2FyZF9faWNvbiBzdmcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uc2VjdGV1ci1jYXJkX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG5cbi5zZWN0ZXVyLWNhcmRfX2Rlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNjAwKTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZmxleC1ncm93OiAxO1xufVxuXG4uc2VjdGV1ci1jYXJkX19mZWF0dXJlcyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbn1cblxuLnNlY3RldXItY2FyZF9fZmVhdHVyZXMgbGkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXhzKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNzAwKTtcbiAgbWFyZ2luLWJvdHRvbTogMC4zNzVyZW07XG59XG5cbi5zZWN0ZXVyLWNhcmRfX2ZlYXR1cmVzIGxpIHN2ZyB7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnNlY3RldXItY2FyZF9fc3RhdHMge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgcGFkZGluZy10b3A6IDAuNzVyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XG59XG5cbi8qIENUQSAqL1xuLnNlY3RldXJzLWN0YSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNvbG9yLXByaW1hcnkpIDAlLCAjMWUzYTVmIDEwMCUpO1xuICBwYWRkaW5nOiA0cmVtIDA7XG4gIG1hcmdpbi10b3A6IDRyZW07XG59XG5cbi5zZWN0ZXVycy1jdGFfX2NvbnRlbnQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1heC13aWR0aDogNjAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5zZWN0ZXVycy1jdGFfX2NvbnRlbnQgaDIge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLnNlY3RldXJzLWN0YV9fY29udGVudCBwIHtcbiAgb3BhY2l0eTogMC45O1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4uc2VjdGV1cnMtY3RhX19idXR0b25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxcmVtO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLyogUmVzcG9uc2l2ZSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAuc2VjdGV1cnMtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5zZWN0ZXVycy1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc2VjdGV1cnMtaGVybyB7XG4gICAgcGFkZGluZzogNnJlbSAwIDNyZW07XG4gIH1cblxuICAuc2VjdGV1cnMtaGVyb19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0zeGwpO1xuICB9XG5cbiAgLnNlY3RldXJzLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG5cbiAgLnNlY3RldXJzLWN0YV9fYnV0dG9ucyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxufVxuIiwiLyogUGFnZSBSZWZlcmVuY2VzICovXG5cbi5yZWZlcmVuY2VzLXBhZ2Uge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLnJlZmVyZW5jZXMtaGVybyB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNvbG9yLXByaW1hcnkpIDAlLCAjMWUzYTVmIDEwMCUpO1xuICBwYWRkaW5nOiA4cmVtIDAgNHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucmVmZXJlbmNlcy1oZXJvX190aXRsZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTV4bCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLnJlZmVyZW5jZXMtaGVyb19fZGVzY3JpcHRpb24ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQteGwpO1xuICBtYXgtd2lkdGg6IDYwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLyogU3RhdHMgKi9cbi5yZWZlcmVuY2VzLXN0YXRzIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmc6IDNyZW0gMDtcbiAgbWFyZ2luLXRvcDogLTJyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTA7XG59XG5cbi5yZWZlcmVuY2VzLXN0YXRzX19ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgZ2FwOiAycmVtO1xuICBtYXgtd2lkdGg6IDgwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy0yeGwpO1xuICBwYWRkaW5nOiAycmVtO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3cteGwpO1xufVxuXG4ucmVmZXJlbmNlcy1zdGF0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucmVmZXJlbmNlcy1zdGF0X192YWx1ZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC00eGwpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xufVxuXG4ucmVmZXJlbmNlcy1zdGF0X19sYWJlbCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTYwMCk7XG59XG5cbi8qIFNlY3Rpb24gVGl0bGUgKi9cbi5yZWZlcmVuY2VzLXNlY3Rpb24tdGl0bGUge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbi8qIENsaWVudHMgKi9cbi5yZWZlcmVuY2VzLWNsaWVudHMge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTUwKTtcbn1cblxuLnJlZmVyZW5jZXMtY2xpZW50c19fZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIGdhcDogMS41cmVtO1xufVxuXG4uY2xpZW50LWNhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgcGFkZGluZzogMS41cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDFyZW07XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1zbSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzLCBib3gtc2hhZG93IDAuMnM7XG59XG5cbi5jbGllbnQtY2FyZDpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1kKTtcbn1cblxuLmNsaWVudC1jYXJkX19sb2dvIHtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uY2xpZW50LWNhcmRfX25hbWUge1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xufVxuXG4uY2xpZW50LWNhcmRfX3NlY3RvciB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC14cyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTUwMCk7XG59XG5cbi8qIFRlc3RpbW9uaWFscyAqL1xuLnJlZmVyZW5jZXMtdGVzdGltb25pYWxzX19ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgZ2FwOiAxLjVyZW07XG59XG5cbi50ZXN0aW1vbmlhbC1jYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy14bCk7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1kKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7XG59XG5cbi50ZXN0aW1vbmlhbC1jYXJkOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xufVxuXG4udGVzdGltb25pYWwtY2FyZF9fcmF0aW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4udGVzdGltb25pYWwtY2FyZF9fcmF0aW5nIHN2ZyB7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIGNvbG9yOiAjZmJiZjI0O1xufVxuXG4udGVzdGltb25pYWwtY2FyZF9fdGV4dCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTcwMCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjc7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4udGVzdGltb25pYWwtY2FyZF9fYXV0aG9yIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjc1cmVtO1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktMjAwKTtcbn1cblxuLnRlc3RpbW9uaWFsLWNhcmRfX2F2YXRhciB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNvbG9yLXNlY29uZGFyeSkgMCUsIHZhcigtLWNvbG9yLWFjY2VudCkgMTAwJSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnRlc3RpbW9uaWFsLWNhcmRfX25hbWUge1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xufVxuXG4udGVzdGltb25pYWwtY2FyZF9fcm9sZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC14cyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTYwMCk7XG59XG5cbi50ZXN0aW1vbmlhbC1jYXJkX19jb21wYW55IHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXhzKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG59XG5cbi8qIENUQSAqL1xuLnJlZmVyZW5jZXMtY3RhIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY29sb3ItcHJpbWFyeSkgMCUsICMxZTNhNWYgMTAwJSk7XG4gIHBhZGRpbmc6IDRyZW0gMDtcbiAgbWFyZ2luLXRvcDogNHJlbTtcbn1cblxuLnJlZmVyZW5jZXMtY3RhX19jb250ZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXgtd2lkdGg6IDYwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4ucmVmZXJlbmNlcy1jdGFfX2NvbnRlbnQgaDIge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLnJlZmVyZW5jZXMtY3RhX19jb250ZW50IHAge1xuICBvcGFjaXR5OiAwLjk7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbi8qIFJlc3BvbnNpdmUgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLnJlZmVyZW5jZXMtY2xpZW50c19fZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgfVxuXG4gIC5yZWZlcmVuY2VzLXRlc3RpbW9uaWFsc19fZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnJlZmVyZW5jZXMtaGVybyB7XG4gICAgcGFkZGluZzogNnJlbSAwIDNyZW07XG4gIH1cblxuICAucmVmZXJlbmNlcy1oZXJvX190aXRsZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTN4bCk7XG4gIH1cblxuICAucmVmZXJlbmNlcy1zdGF0c19fZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBnYXA6IDEuNXJlbTtcbiAgfVxuXG4gIC5yZWZlcmVuY2VzLXN0YXRfX3ZhbHVlIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTtcbiAgfVxuXG4gIC5yZWZlcmVuY2VzLWNsaWVudHNfX2dyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG5cbiAgLnJlZmVyZW5jZXMtdGVzdGltb25pYWxzX19ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxufVxuIiwiLyogUGFnZSDDgCBQcm9wb3MgKi9cblxuLmFwcm9wb3MtcGFnZSB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uYXByb3Bvcy1oZXJvIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY29sb3ItcHJpbWFyeSkgMCUsICMxZTNhNWYgMTAwJSk7XG4gIHBhZGRpbmc6IDhyZW0gMCA0cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5hcHJvcG9zLWhlcm9fX3RpdGxlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtNXhsKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uYXByb3Bvcy1oZXJvX19kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC14bCk7XG4gIG1heC13aWR0aDogNjAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uYXByb3Bvcy1zZWN0aW9uLXRpdGxlIHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTN4bCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4vKiBNaXNzaW9uICovXG4uYXByb3Bvcy1taXNzaW9uX19ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICBnYXA6IDRyZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5hcHJvcG9zLW1pc3Npb25fX2NvbnRlbnQgaDIge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuXG4uYXByb3Bvcy1taXNzaW9uX19sZWFkIHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXhsKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNzAwKTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS43O1xufVxuXG4uYXByb3Bvcy1taXNzaW9uX19jb250ZW50IHAge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS02MDApO1xuICBsaW5lLWhlaWdodDogMS44O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uYXByb3Bvcy1taXNzaW9uX19zdGF0cyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdhcDogMS41cmVtO1xufVxuXG4uYXByb3Bvcy1zdGF0IHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy14bCk7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGcpO1xufVxuXG4uYXByb3Bvcy1zdGF0X192YWx1ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtNHhsKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbn1cblxuLmFwcm9wb3Mtc3RhdF9fbGFiZWwge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS02MDApO1xufVxuXG4vKiBWYWx1ZXMgKi9cbi5hcHJvcG9zLXZhbHVlcyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktNTApO1xufVxuXG4uYXByb3Bvcy12YWx1ZXNfX2dyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICBnYXA6IDEuNXJlbTtcbn1cblxuLnZhbHVlLWNhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXhsKTtcbiAgcGFkZGluZzogMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbWQpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbn1cblxuLnZhbHVlLWNhcmQ6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XG59XG5cbi52YWx1ZS1jYXJkX19pY29uIHtcbiAgd2lkdGg6IDU2cHg7XG4gIGhlaWdodDogNTZweDtcbiAgbWFyZ2luOiAwIGF1dG8gMXJlbTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY29sb3Itc2Vjb25kYXJ5KSAwJSwgIzBlYTVlOSAxMDAlKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgcGFkZGluZzogMC44NzVyZW07XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnZhbHVlLWNhcmRfX2ljb24gc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnZhbHVlLWNhcmRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4udmFsdWUtY2FyZF9fZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS02MDApO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG4vKiBUaW1lbGluZSAqL1xuLnRpbWVsaW5lIHtcbiAgbWF4LXdpZHRoOiA4MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnRpbWVsaW5lOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA4MHB4O1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0yMDApO1xufVxuXG4udGltZWxpbmVfX2l0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDJyZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnRpbWVsaW5lX195ZWFyIHtcbiAgd2lkdGg6IDYwcHg7XG4gIGhlaWdodDogNjBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG5cbi50aW1lbGluZV9fY29udGVudCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1tZCk7XG4gIGZsZXg6IDE7XG59XG5cbi50aW1lbGluZV9fdGl0bGUge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtbGcpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbi50aW1lbGluZV9fZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS02MDApO1xufVxuXG4vKiBUZWFtICovXG4uYXByb3Bvcy10ZWFtX19ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgZ2FwOiAxLjVyZW07XG59XG5cbi50ZWFtLWNhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXhsKTtcbiAgcGFkZGluZzogMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbWQpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycztcbn1cblxuLnRlYW0tY2FyZDpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbn1cblxuLnRlYW0tY2FyZF9fYXZhdGFyIHtcbiAgd2lkdGg6IDgwcHg7XG4gIGhlaWdodDogODBweDtcbiAgbWFyZ2luOiAwIGF1dG8gMXJlbTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY29sb3ItcHJpbWFyeSkgMCUsICMxZTNhNWYgMTAwJSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTJ4bCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbn1cblxuLnRlYW0tY2FyZF9fbmFtZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG59XG5cbi50ZWFtLWNhcmRfX3JvbGUge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbn1cblxuLyogQ2VydGlmaWNhdGlvbnMgKi9cbi5hcHJvcG9zLWNlcnRpZmljYXRpb25zIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS01MCk7XG59XG5cbi5hcHJvcG9zLWNlcnRpZmljYXRpb25zX19jb250ZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXgtd2lkdGg6IDYwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLmFwcm9wb3MtY2VydGlmaWNhdGlvbnNfX2NvbnRlbnQgaDIge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uYXByb3Bvcy1jZXJ0aWZpY2F0aW9uc19fY29udGVudCBwIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNjAwKTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuLmFwcm9wb3MtY2VydGlmaWNhdGlvbnNfX2xpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAycmVtO1xufVxuXG4uY2VydGlmaWNhdGlvbi1iYWRnZSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICBwYWRkaW5nOiAxLjVyZW0gMnJlbTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1kKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG59XG5cbi5jZXJ0aWZpY2F0aW9uLWJhZGdlX19pY29uIHtcbiAgZm9udC1zaXplOiAycmVtO1xufVxuXG4uY2VydGlmaWNhdGlvbi1iYWRnZV9fbmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XG59XG5cbi8qIENUQSAqL1xuLmFwcm9wb3MtY3RhIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY29sb3ItcHJpbWFyeSkgMCUsICMxZTNhNWYgMTAwJSk7XG4gIHBhZGRpbmc6IDRyZW0gMDtcbn1cblxuLmFwcm9wb3MtY3RhX19jb250ZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXgtd2lkdGg6IDYwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uYXByb3Bvcy1jdGFfX2NvbnRlbnQgaDIge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmFwcm9wb3MtY3RhX19jb250ZW50IHAge1xuICBvcGFjaXR5OiAwLjk7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbi5hcHJvcG9zLWN0YV9fYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMXJlbTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIFJlc3BvbnNpdmUgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmFwcm9wb3MtbWlzc2lvbl9fZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAycmVtO1xuICB9XG5cbiAgLmFwcm9wb3MtdmFsdWVzX19ncmlkLFxuICAuYXByb3Bvcy10ZWFtX19ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYXByb3Bvcy1oZXJvIHtcbiAgICBwYWRkaW5nOiA2cmVtIDAgM3JlbTtcbiAgfVxuXG4gIC5hcHJvcG9zLWhlcm9fX3RpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTtcbiAgfVxuXG4gIC5hcHJvcG9zLXZhbHVlc19fZ3JpZCxcbiAgLmFwcm9wb3MtdGVhbV9fZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cblxuICAudGltZWxpbmU6OmJlZm9yZSB7XG4gICAgbGVmdDogMzBweDtcbiAgfVxuXG4gIC50aW1lbGluZV9feWVhciB7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC14cyk7XG4gIH1cblxuICAuYXByb3Bvcy1jZXJ0aWZpY2F0aW9uc19fbGlzdCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgLmFwcm9wb3MtY3RhX19idXR0b25zIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG4iLCIvKiBQYWdlIEZBUSAtIFZlcnNpb24gYXZlYyBHcmlkICovXG5cbi5mYXEtcGFnZSB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZmFxLWhlcm8ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jb2xvci1wcmltYXJ5KSAwJSwgIzFlM2E1ZiAxMDAlKTtcbiAgcGFkZGluZzogOHJlbSAwIDRyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZhcS1oZXJvX190aXRsZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTV4bCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmZhcS1oZXJvX19kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC14bCk7XG4gIG1heC13aWR0aDogNjAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4vKiBMYXlvdXQgKi9cbi5mYXEtbGF5b3V0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyNTBweCAxZnI7XG4gIGdhcDogM3JlbTtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xufVxuXG4vKiBDYXRlZ29yaWVzICovXG4uZmFxLWNhdGVnb3JpZXMge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDEwMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLmZhcS1jYXRlZ29yeSB7XG4gIHBhZGRpbmc6IDFyZW0gMS4yNXJlbTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktMjAwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTcwMCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG59XG5cbi5mYXEtY2F0ZWdvcnk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTUwKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcbn1cblxuLmZhcS1jYXRlZ29yeS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLyogUXVlc3Rpb25zICovXG4uZmFxLXF1ZXN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMXJlbTtcbn1cblxuLmZhcS1pdGVtIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1zbSk7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycztcbn1cblxuLmZhcS1pdGVtOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1kKTtcbn1cblxuLmZhcS1pdGVtX19xdWVzdGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDFyZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWJhc2UpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5mYXEtaXRlbV9fcXVlc3Rpb24gc3ZnIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG5cbi8qIEFuaW1hdGlvbiBkZSBsJ2ljw7RuZSAqL1xuLmZhcS1pdGVtLm9wZW4gLmZhcS1pdGVtX19xdWVzdGlvbiBzdmcge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbn1cblxuLyogTcOJVEhPREUgR1JJRCBQT1VSIEwnQU5JTUFUSU9OIC0gUGx1cyBmaWFibGUgKi9cbi5mYXEtaXRlbV9fYW5zd2VyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAwLjNzIGVhc2U7XG59XG5cbi5mYXEtaXRlbS5vcGVuIC5mYXEtaXRlbV9fYW5zd2VyIHtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG59XG5cbi5mYXEtaXRlbV9fYW5zd2VyID4gcCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxLjVyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTYwMCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjc7XG59XG5cbi5mYXEtaXRlbS5vcGVuIC5mYXEtaXRlbV9fYW5zd2VyID4gcCB7XG4gIHBhZGRpbmc6IDAgMS41cmVtIDEuNXJlbTtcbn1cblxuLyogQ1RBICovXG4uZmFxLWN0YSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNvbG9yLXByaW1hcnkpIDAlLCAjMWUzYTVmIDEwMCUpO1xuICBwYWRkaW5nOiA0cmVtIDA7XG4gIG1hcmdpbi10b3A6IDRyZW07XG59XG5cbi5mYXEtY3RhX19jb250ZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXgtd2lkdGg6IDYwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uZmFxLWN0YV9fY29udGVudCBoMiB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0zeGwpO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uZmFxLWN0YV9fY29udGVudCBwIHtcbiAgb3BhY2l0eTogMC45O1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4uZmFxLWN0YV9fYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMXJlbTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIEFuaW1hdGlvbiBzY3JvbGwgcmV2ZWFsICovXG4uc2Nyb2xsLXJldmVhbCB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzIGVhc2UsIHRyYW5zZm9ybSAwLjZzIGVhc2U7XG59XG5cbi5zY3JvbGwtcmV2ZWFsLmlzLXZpc2libGUge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5cbi8qIFJlc3BvbnNpdmUgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmZhcS1sYXlvdXQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogMnJlbTtcbiAgfVxuXG4gIC5mYXEtY2F0ZWdvcmllcyB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gIC5mYXEtY2F0ZWdvcnkge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAxNTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5mYXEtaGVybyB7XG4gICAgcGFkZGluZzogNnJlbSAwIDNyZW07XG4gIH1cblxuICAuZmFxLWhlcm9fX3RpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTtcbiAgfVxuXG4gIC5mYXEtY2F0ZWdvcmllcyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuXG4gIC5mYXEtY2F0ZWdvcnkge1xuICAgIG1pbi13aWR0aDogYXV0bztcbiAgfVxuXG4gIC5mYXEtaXRlbV9fcXVlc3Rpb24ge1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgfVxuXG4gIC5mYXEtaXRlbV9fYW5zd2VyID4gcCB7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICB9XG5cbiAgLmZhcS1pdGVtLm9wZW4gLmZhcS1pdGVtX19hbnN3ZXIgPiBwIHtcbiAgICBwYWRkaW5nOiAwIDFyZW0gMXJlbTtcbiAgfVxuXG4gIC5mYXEtaXRlbV9fYW5zd2VyID4gcCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgfVxuXG4gIC5mYXEtY3RhX19idXR0b25zIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59IiwiLyogUGFnZSBDb250YWN0ICovXG5cbi5jb250YWN0LXBhZ2Uge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLyogSGVybyAqL1xuLmNvbnRhY3QtaGVybyB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNvbG9yLXByaW1hcnkpIDAlLCAjMWUzYTVmIDEwMCUpO1xuICBwYWRkaW5nOiA4cmVtIDAgNHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY29udGFjdC1oZXJvX190aXRsZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTV4bCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmNvbnRhY3QtaGVyb19fZGVzY3JpcHRpb24ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQteGwpO1xuICBtYXgtd2lkdGg6IDYwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLyogR3JpZCAqL1xuLmNvbnRhY3QtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgZ2FwOiAzcmVtO1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG59XG5cbi8qIENhcmRzICovXG4uY29udGFjdC1jYXJkcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdhcDogMS41cmVtO1xufVxuXG4uY29udGFjdC1jYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy14bCk7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1kKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycywgYm94LXNoYWRvdyAwLjJzO1xufVxuXG4uY29udGFjdC1jYXJkOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGcpO1xufVxuXG4uY29udGFjdC1jYXJkLS1hY2NlbnQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jb2xvci1zZWNvbmRhcnkpIDAlLCAjMGVhNWU5IDEwMCUpO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5jb250YWN0LWNhcmQtLWFjY2VudCBoMyxcbi5jb250YWN0LWNhcmQtLWFjY2VudCBwLFxuLmNvbnRhY3QtY2FyZC0tYWNjZW50IHN0cm9uZyB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmNvbnRhY3QtY2FyZF9faWNvbiB7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIG1hcmdpbjogMCBhdXRvIDFyZW07XG4gIHBhZGRpbmc6IDAuNzVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG59XG5cbi5jb250YWN0LWNhcmQtLWFjY2VudCAuY29udGFjdC1jYXJkX19pY29uIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5jb250YWN0LWNhcmRfX2ljb24gc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmNvbnRhY3QtY2FyZCBoMyB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcbn1cblxuLmNvbnRhY3QtY2FyZCBwIHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNjAwKTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uY29udGFjdC1jYXJkX19saW5rIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnKTtcbn1cblxuLmNvbnRhY3QtY2FyZF9fbGluazpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uY29udGFjdC1jYXJkX19hZGRyZXNzIHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNzAwKTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuLmNvbnRhY3QtY2FyZF9faG91cnMgcCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIG1hcmdpbjogMC4yNXJlbSAwO1xufVxuXG4vKiBGb3JtdWxhaXJlICovXG4uY29udGFjdC1mb3JtLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMteGwpO1xuICBwYWRkaW5nOiAycmVtO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGcpO1xufVxuXG4uY29udGFjdC1mb3JtLWNvbnRhaW5lciBoMiB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0yeGwpO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XG59XG5cbi5jb250YWN0LWZvcm1fX2ludHJvIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNjAwKTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuXG4uY29udGFjdC1mb3JtX19pbnRybyBhIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG59XG5cbi5jb250YWN0LWZvcm1fX3JvdyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdhcDogMXJlbTtcbn1cblxuLmNvbnRhY3QtZm9ybV9fZmllbGQge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uY29udGFjdC1mb3JtX19maWVsZCBsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNzAwKTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uY29udGFjdC1mb3JtX19maWVsZCBpbnB1dCxcbi5jb250YWN0LWZvcm1fX2ZpZWxkIHRleHRhcmVhIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS0zMDApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtYmFzZSk7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzLCBib3gtc2hhZG93IDAuMnM7XG59XG5cbi5jb250YWN0LWZvcm1fX2ZpZWxkIGlucHV0OmZvY3VzLFxuLmNvbnRhY3QtZm9ybV9fZmllbGQgdGV4dGFyZWE6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDU2LCAxODksIDI0OCwgMC4yKTtcbn1cblxuLmNvbnRhY3QtZm9ybV9fZmllbGQgdGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsO1xuICBtaW4taGVpZ2h0OiAxMjBweDtcbn1cblxuLmNvbnRhY3QtZm9ybV9fc3VjY2VzcyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogM3JlbSAxcmVtO1xufVxuXG4uY29udGFjdC1mb3JtX19zdWNjZXNzIHN2ZyB7XG4gIHdpZHRoOiA2NHB4O1xuICBoZWlnaHQ6IDY0cHg7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uY29udGFjdC1mb3JtX19zdWNjZXNzIGgzIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uY29udGFjdC1mb3JtX19zdWNjZXNzIHAge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS02MDApO1xufVxuXG4vKiBDVEEgKi9cbi5jb250YWN0LWN0YSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcbiAgcGFkZGluZzogNHJlbSAwO1xuICBtYXJnaW4tdG9wOiA0cmVtO1xufVxuXG4uY29udGFjdC1jdGFfX2NvbnRlbnQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1heC13aWR0aDogNjAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uY29udGFjdC1jdGFfX2NvbnRlbnQgaDIge1xuICBmb250LXNpemU6IHZhcigtLXRleHQtM3hsKTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xufVxuXG4uY29udGFjdC1jdGFfX2NvbnRlbnQgcCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTYwMCk7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cblxuLyogUmVzcG9uc2l2ZSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuY29udGFjdC1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxuXG4gIC5jb250YWN0LWNhcmRzIHtcbiAgICBvcmRlcjogMjtcbiAgfVxuXG4gIC5jb250YWN0LWZvcm0tY29udGFpbmVyIHtcbiAgICBvcmRlcjogMTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmNvbnRhY3QtaGVybyB7XG4gICAgcGFkZGluZzogNnJlbSAwIDNyZW07XG4gIH1cblxuICAuY29udGFjdC1oZXJvX190aXRsZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTN4bCk7XG4gIH1cblxuICAuY29udGFjdC1jYXJkcyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cblxuICAuY29udGFjdC1mb3JtX19yb3cge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG5cbiAgLmNvbnRhY3QtZm9ybS1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgfVxufVxuIiwiLmNvbnRhY3QtZm9ybSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDgwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLmNvbnRhY3QtZm9ybV9fZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdhcDogdmFyKC0tc3BhY2luZy02KTtcbn1cblxuLmNvbnRhY3QtZm9ybV9fZmllbGQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMik7XG59XG5cbi5jb250YWN0LWZvcm1fX2ZpZWxkLS1mdWxsIHtcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbn1cblxuLmNvbnRhY3QtZm9ybV9fbGFiZWwge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTcwMCk7XG59XG5cbi5jb250YWN0LWZvcm1fX2lucHV0LFxuLmNvbnRhY3QtZm9ybV9fc2VsZWN0LFxuLmNvbnRhY3QtZm9ybV9fdGV4dGFyZWEge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTMpIHZhcigtLXNwYWNpbmctNCk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtYmFzZSk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY29sb3ItZ3JheS0zMDApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbi1iYXNlKTtcbn1cblxuLmNvbnRhY3QtZm9ybV9faW5wdXQ6Zm9jdXMsXG4uY29udGFjdC1mb3JtX19zZWxlY3Q6Zm9jdXMsXG4uY29udGFjdC1mb3JtX190ZXh0YXJlYTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjEpO1xufVxuXG4uY29udGFjdC1mb3JtX19pbnB1dC0tZXJyb3IsXG4uY29udGFjdC1mb3JtX19zZWxlY3QtLWVycm9yLFxuLmNvbnRhY3QtZm9ybV9fdGV4dGFyZWEtLWVycm9yLFxuLmNvbnRhY3QtZm9ybV9fY2hlY2tib3gtLWVycm9yIHtcbiAgYm9yZGVyLWNvbG9yOiAjRUY0NDQ0O1xufVxuXG4uY29udGFjdC1mb3JtX19lcnJvciB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIGNvbG9yOiAjRUY0NDQ0O1xufVxuXG4uY29udGFjdC1mb3JtX19jaGVja2JveGVzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjAwcHgsIDFmcikpO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMyk7XG59XG5cbi5jb250YWN0LWZvcm1fX2NoZWNrYm94LWxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbn1cblxuLmNvbnRhY3QtZm9ybV9fY2hlY2tib3gtbGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTUwKTtcbn1cblxuLmNvbnRhY3QtZm9ybV9fY2hlY2tib3gge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGFjY2VudC1jb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbn1cblxuLmNvbnRhY3QtZm9ybV9fY2hlY2tib3gtbGFiZWwtLWNvbnNlbnQge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy00KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS01MCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG59XG5cbi5jb250YWN0LWZvcm1fX2NoZWNrYm94LWxhYmVsLS1jb25zZW50IGEge1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5jb250YWN0LWZvcm1fX3N1Ym1pdCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNpbmctNik7XG59XG5cbi5jb250YWN0LWZvcm1fX3N1Ym1pdC1lcnJvciB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCk7XG4gIGJhY2tncm91bmQ6ICNGRUUyRTI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFRjQ0NDQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gIGNvbG9yOiAjOTkxQjFCO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLTYpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jb250YWN0LWZvcm1fX3N1Y2Nlc3Mge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMTIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTUwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXhsKTtcbn1cblxuLmNvbnRhY3QtZm9ybV9fc3VjY2Vzcy1pY29uIHtcbiAgd2lkdGg6IDgwcHg7XG4gIGhlaWdodDogODBweDtcbiAgbWFyZ2luOiAwIGF1dG8gdmFyKC0tc3BhY2luZy02KSBhdXRvO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KTtcbn1cblxuLmNvbnRhY3QtZm9ybV9fc3VjY2Vzcy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0zeGwpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNCk7XG59XG5cbi5jb250YWN0LWZvcm1fX3N1Y2Nlc3MtbWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTYwMCk7XG4gIG1hcmdpbjogMDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5jb250YWN0LWZvcm1fX2dyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy01KTtcbiAgfVxuICBcbiAgLmNvbnRhY3QtZm9ybV9fY2hlY2tib3hlcyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cbn1cblxuLmNvbnRhY3QtZm9ybSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDgwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLmNvbnRhY3QtZm9ybV9fZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdhcDogdmFyKC0tc3BhY2luZy02KTtcbn1cblxuLmNvbnRhY3QtZm9ybV9fZmllbGQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMik7XG59XG5cbi5jb250YWN0LWZvcm1fX2ZpZWxkLS1mdWxsIHtcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbn1cblxuLmNvbnRhY3QtZm9ybV9fbGFiZWwge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTcwMCk7XG59XG5cbi5jb250YWN0LWZvcm1fX2lucHV0LFxuLmNvbnRhY3QtZm9ybV9fc2VsZWN0LFxuLmNvbnRhY3QtZm9ybV9fdGV4dGFyZWEge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTMpIHZhcigtLXNwYWNpbmctNCk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtYmFzZSk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY29sb3ItZ3JheS0zMDApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbi1iYXNlKTtcbn1cblxuLmNvbnRhY3QtZm9ybV9faW5wdXQ6Zm9jdXMsXG4uY29udGFjdC1mb3JtX19zZWxlY3Q6Zm9jdXMsXG4uY29udGFjdC1mb3JtX190ZXh0YXJlYTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjEpO1xufVxuXG4uY29udGFjdC1mb3JtX19pbnB1dC0tZXJyb3IsXG4uY29udGFjdC1mb3JtX19zZWxlY3QtLWVycm9yLFxuLmNvbnRhY3QtZm9ybV9fdGV4dGFyZWEtLWVycm9yLFxuLmNvbnRhY3QtZm9ybV9fY2hlY2tib3gtLWVycm9yIHtcbiAgYm9yZGVyLWNvbG9yOiAjRUY0NDQ0O1xufVxuXG4uY29udGFjdC1mb3JtX19lcnJvciB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbSk7XG4gIGNvbG9yOiAjRUY0NDQ0O1xufVxuXG4uY29udGFjdC1mb3JtX19jaGVja2JveGVzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjAwcHgsIDFmcikpO1xuICBnYXA6IHZhcigtLXNwYWNpbmctMyk7XG59XG5cbi5jb250YWN0LWZvcm1fX2NoZWNrYm94LWxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbn1cblxuLmNvbnRhY3QtZm9ybV9fY2hlY2tib3gtbGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTUwKTtcbn1cblxuLmNvbnRhY3QtZm9ybV9fY2hlY2tib3gge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGFjY2VudC1jb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbn1cblxuLmNvbnRhY3QtZm9ybV9fY2hlY2tib3gtbGFiZWwtLWNvbnNlbnQge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy00KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS01MCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG59XG5cbi5jb250YWN0LWZvcm1fX2NoZWNrYm94LWxhYmVsLS1jb25zZW50IGEge1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5jb250YWN0LWZvcm1fX3N1Ym1pdCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNpbmctNik7XG59XG5cbi5jb250YWN0LWZvcm1fX3N1Ym1pdC1lcnJvciB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCk7XG4gIGJhY2tncm91bmQ6ICNGRUUyRTI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFRjQ0NDQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gIGNvbG9yOiAjOTkxQjFCO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLTYpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jb250YWN0LWZvcm1fX3N1Y2Nlc3Mge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMTIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTUwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXhsKTtcbn1cblxuLmNvbnRhY3QtZm9ybV9fc3VjY2Vzcy1pY29uIHtcbiAgd2lkdGg6IDgwcHg7XG4gIGhlaWdodDogODBweDtcbiAgbWFyZ2luOiAwIGF1dG8gdmFyKC0tc3BhY2luZy02KSBhdXRvO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KTtcbn1cblxuLmNvbnRhY3QtZm9ybV9fc3VjY2Vzcy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0zeGwpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNCk7XG59XG5cbi5jb250YWN0LWZvcm1fX3N1Y2Nlc3MtbWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTYwMCk7XG4gIG1hcmdpbjogMDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5jb250YWN0LWZvcm1fX2dyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogdmFyKC0tc3BhY2luZy01KTtcbiAgfVxuICBcbiAgLmNvbnRhY3QtZm9ybV9fY2hlY2tib3hlcyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cbn0iLCIvKiBQYWdlIERldmlzICovXG5cbi5kZXZpcy1wYWdlIHtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5kZXZpcy1oZXJvIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY29sb3ItcHJpbWFyeSkgMCUsICMxZTNhNWYgMTAwJSk7XG4gIHBhZGRpbmc6IDhyZW0gMCA0cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5kZXZpcy1oZXJvX190aXRsZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LTR4bCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmRldmlzLWhlcm9fX2Rlc2NyaXB0aW9uIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWxnKTtcbiAgbWF4LXdpZHRoOiA2MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5kZXZpcy1jb250ZW50IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMzgwcHg7XG4gIGdhcDogM3JlbTtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xufVxuXG4uZGV2aXMtZm9ybS13cmFwcGVyIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy14bCk7XG4gIHBhZGRpbmc6IDJyZW07XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1sZyk7XG59XG5cbi5kZXZpcy1pbmZvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxLjVyZW07XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMTAwcHg7XG59XG5cbi5kZXZpcy1pbmZvX19jYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy14bCk7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1kKTtcbn1cblxuLmRldmlzLWluZm9fX2NhcmQtLWFjY2VudCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNvbG9yLXNlY29uZGFyeSkgMCUsICMwZWE1ZTkgMTAwJSk7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmRldmlzLWluZm9fX2NhcmQtLWFjY2VudCBoMyB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4uZGV2aXMtaW5mb19fY2FyZC0tYWNjZW50IHAge1xuICBvcGFjaXR5OiAwLjk7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5kZXZpcy1pbmZvX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sZyk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcbn1cblxuLmRldmlzLWluZm9fX2JlbmVmaXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG59XG5cbi5kZXZpcy1pbmZvX19iZW5lZml0Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uZGV2aXMtaW5mb19fYmVuZWZpdCBzdmcge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5kZXZpcy1pbmZvX19iZW5lZml0IHN0cm9uZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IHZhcigtLXRleHQtc20pO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xufVxuXG4uZGV2aXMtaW5mb19fYmVuZWZpdCBwIHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXhzKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNjAwKTtcbiAgbWFyZ2luOiAwO1xufVxuXG4uZGV2aXMtaW5mb19fcGhvbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXhsKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5kZXZpcy1pbmZvX19waG9uZSBzdmcge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xufVxuXG4uZGV2aXMtaW5mb19fcGhvbmU6aG92ZXIge1xuICBvcGFjaXR5OiAwLjk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmRldmlzLWNvbnRlbnQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG5cbiAgLmRldmlzLWluZm8ge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgb3JkZXI6IC0xO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZGV2aXMtaGVybyB7XG4gICAgcGFkZGluZzogNnJlbSAwIDNyZW07XG4gIH1cblxuICAuZGV2aXMtaGVyb19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC0zeGwpO1xuICB9XG5cbiAgLmRldmlzLWZvcm0td3JhcHBlciB7XG4gICAgcGFkZGluZzogMS41cmVtO1xuICB9XG59XG4iLCIvKiBUaGVtZSBNb2Rlcm4gLSBDeWFuICYgQ2hhcmNvYWwgKERlZmF1bHQpICovXG46cm9vdCB7XG4gIC0tY29sb3ItcHJpbWFyeTogIzBGMTcyQTtcbiAgLS1jb2xvci1wcmltYXJ5LWxpZ2h0OiAjMWUzYTVmO1xuICAtLWNvbG9yLXNlY29uZGFyeTogIzM4QkRGODtcbiAgLS1jb2xvci1zZWNvbmRhcnktZGFyazogIzBlYTVlOTtcbiAgLS1jb2xvci1hY2NlbnQ6ICMxMEI5ODE7XG4gIC0tY29sb3ItYWNjZW50LWRhcms6ICMwNTk2Njk7XG5cbiAgLS1ncmFkaWVudC1oZXJvOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMEYxNzJBIDAlLCAjMWUzYTVmIDEwMCUpO1xuICAtLWdyYWRpZW50LWFjY2VudDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzM4QkRGOCAwJSwgIzBlYTVlOSAxMDAlKTtcbiAgLS1ncmFkaWVudC1jdGE6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwRjE3MkEgMCUsICMxZTNhNWYgMTAwJSk7XG5cbiAgLS1oZWFkZXItYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45OCk7XG4gIC0taGVhZGVyLXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTtcblxuICAtLWNhcmQtc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIC0tY2FyZC1zaGFkb3ctaG92ZXI6IDAgMTBweCAxNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcblxuICAtLWJvcmRlci1yYWRpdXMtYmFzZTogMC43NXJlbTtcbiAgLS1ib3JkZXItcmFkaXVzLWxnOiAxcmVtO1xuICAtLWJvcmRlci1yYWRpdXMteGw6IDEuNXJlbTtcbn1cbiIsIi8qIFRoZW1lIEZvcmVzdCAtIE5hdHVyYWwgR3JlZW4gKi9cbjpyb290IHtcbiAgLS1jb2xvci1wcmltYXJ5OiAjMWEzYzM0O1xuICAtLWNvbG9yLXByaW1hcnktbGlnaHQ6ICMyZDVhNGU7XG4gIC0tY29sb3Itc2Vjb25kYXJ5OiAjMzRkMzk5O1xuICAtLWNvbG9yLXNlY29uZGFyeS1kYXJrOiAjMTBiOTgxO1xuICAtLWNvbG9yLWFjY2VudDogI2ZiYmYyNDtcbiAgLS1jb2xvci1hY2NlbnQtZGFyazogI2Y1OWUwYjtcblxuICAtLWdyYWRpZW50LWhlcm86IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxYTNjMzQgMCUsICMyZDVhNGUgMTAwJSk7XG4gIC0tZ3JhZGllbnQtYWNjZW50OiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMzRkMzk5IDAlLCAjMTBiOTgxIDEwMCUpO1xuICAtLWdyYWRpZW50LWN0YTogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzFhM2MzNCAwJSwgIzJkNWE0ZSAxMDAlKTtcblxuICAtLWhlYWRlci1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk4KTtcbiAgLS1oZWFkZXItc2hhZG93OiAwIDFweCAzcHggcmdiYSgyNiwgNjAsIDUyLCAwLjEpO1xuXG4gIC0tY2FyZC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IHJnYmEoMjYsIDYwLCA1MiwgMC4xKTtcbiAgLS1jYXJkLXNoYWRvdy1ob3ZlcjogMCAxMHB4IDE1cHggLTNweCByZ2JhKDI2LCA2MCwgNTIsIDAuMTUpO1xuXG4gIC0tYm9yZGVyLXJhZGl1cy1iYXNlOiAxcmVtO1xuICAtLWJvcmRlci1yYWRpdXMtbGc6IDEuMjVyZW07XG4gIC0tYm9yZGVyLXJhZGl1cy14bDogMnJlbTtcbn1cblxuLyogRm9yZXN0IHRoZW1lIHNwZWNpZmljIG92ZXJyaWRlcyAqL1xuW2RhdGEtdGhlbWU9XCJmb3Jlc3RcIl0gLmhlYWRlcl9fbG9nby1pY29uIHtcbiAgY29sb3I6ICMxYTNjMzQ7XG59XG5cbltkYXRhLXRoZW1lPVwiZm9yZXN0XCJdIC5idG4tcHJpbWFyeSxcbltkYXRhLXRoZW1lPVwiZm9yZXN0XCJdIC5idG4tc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzM0ZDM5OSAwJSwgIzEwYjk4MSAxMDAlKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJmb3Jlc3RcIl0gLmhlcm8ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMWEzYzM0IDAlLCAjMmQ1YTRlIDEwMCUpO1xufVxuXG5bZGF0YS10aGVtZT1cImZvcmVzdFwiXSAuc3RhdC1jYXJkOmhvdmVyLFxuW2RhdGEtdGhlbWU9XCJmb3Jlc3RcIl0gLnNlcnZpY2UtY2FyZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogIzM0ZDM5OTtcbn1cblxuW2RhdGEtdGhlbWU9XCJmb3Jlc3RcIl0gLmhvbWVfX3Byb29mLWljb24ge1xuICBjb2xvcjogIzM0ZDM5OTtcbn1cblxuW2RhdGEtdGhlbWU9XCJmb3Jlc3RcIl0gLmhvbWVfX3Byb2Nlc3MtbnVtYmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzM0ZDM5OSAwJSwgIzEwYjk4MSAxMDAlKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJmb3Jlc3RcIl0gLmZvb3Rlcl9fdG9wIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzFhM2MzNCAwJSwgIzJkNWE0ZSAxMDAlKTtcbn1cbiIsIi8qIFRoZW1lIFN1bnNldCAtIFdhcm0gT3JhbmdlICYgUmVkICovXG46cm9vdCB7XG4gIC0tY29sb3ItcHJpbWFyeTogIzdjMmQxMjtcbiAgLS1jb2xvci1wcmltYXJ5LWxpZ2h0OiAjOWEzNDEyO1xuICAtLWNvbG9yLXNlY29uZGFyeTogI2ZiOTIzYztcbiAgLS1jb2xvci1zZWNvbmRhcnktZGFyazogI2Y5NzMxNjtcbiAgLS1jb2xvci1hY2NlbnQ6ICNmYmJmMjQ7XG4gIC0tY29sb3ItYWNjZW50LWRhcms6ICNmNTllMGI7XG5cbiAgLS1ncmFkaWVudC1oZXJvOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjN2MyZDEyIDAlLCAjYzI0MTBjIDEwMCUpO1xuICAtLWdyYWRpZW50LWFjY2VudDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZiOTIzYyAwJSwgI2Y5NzMxNiAxMDAlKTtcbiAgLS1ncmFkaWVudC1jdGE6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM3YzJkMTIgMCUsICM5YTM0MTIgMTAwJSk7XG5cbiAgLS1oZWFkZXItYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45OCk7XG4gIC0taGVhZGVyLXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMTI0LCA0NSwgMTgsIDAuMSk7XG5cbiAgLS1jYXJkLXNoYWRvdzogMCA0cHggNnB4IC0xcHggcmdiYSgxMjQsIDQ1LCAxOCwgMC4xKTtcbiAgLS1jYXJkLXNoYWRvdy1ob3ZlcjogMCAxMHB4IDE1cHggLTNweCByZ2JhKDEyNCwgNDUsIDE4LCAwLjE1KTtcblxuICAtLWJvcmRlci1yYWRpdXMtYmFzZTogMC41cmVtO1xuICAtLWJvcmRlci1yYWRpdXMtbGc6IDAuNzVyZW07XG4gIC0tYm9yZGVyLXJhZGl1cy14bDogMXJlbTtcbn1cblxuLyogU3Vuc2V0IHRoZW1lIHNwZWNpZmljIG92ZXJyaWRlcyAqL1xuW2RhdGEtdGhlbWU9XCJzdW5zZXRcIl0gLmhlYWRlcl9fbG9nby1pY29uIHtcbiAgY29sb3I6ICM3YzJkMTI7XG59XG5cbltkYXRhLXRoZW1lPVwic3Vuc2V0XCJdIC5idG4tcHJpbWFyeSxcbltkYXRhLXRoZW1lPVwic3Vuc2V0XCJdIC5idG4tc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZiOTIzYyAwJSwgI2Y5NzMxNiAxMDAlKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJzdW5zZXRcIl0gLmhlcm8ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjN2MyZDEyIDAlLCAjYzI0MTBjIDEwMCUpO1xufVxuXG5bZGF0YS10aGVtZT1cInN1bnNldFwiXSAuc3RhdC1jYXJkOmhvdmVyLFxuW2RhdGEtdGhlbWU9XCJzdW5zZXRcIl0gLnNlcnZpY2UtY2FyZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI2ZiOTIzYztcbn1cblxuW2RhdGEtdGhlbWU9XCJzdW5zZXRcIl0gLmhvbWVfX3Byb29mLWljb24ge1xuICBjb2xvcjogI2ZiOTIzYztcbn1cblxuW2RhdGEtdGhlbWU9XCJzdW5zZXRcIl0gLmhvbWVfX3Byb2Nlc3MtbnVtYmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZiOTIzYyAwJSwgI2Y5NzMxNiAxMDAlKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJzdW5zZXRcIl0gLmZvb3Rlcl9fdG9wIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzdjMmQxMiAwJSwgIzlhMzQxMiAxMDAlKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJzdW5zZXRcIl0gLnNlY3RldXItY2FyZF9faWNvbixcbltkYXRhLXRoZW1lPVwic3Vuc2V0XCJdIC52YWx1ZS1jYXJkX19pY29uIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZiOTIzYyAwJSwgI2Y5NzMxNiAxMDAlKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJzdW5zZXRcIl0gLmNvbnRhY3QtY2FyZC0tYWNjZW50IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZiOTIzYyAwJSwgI2Y5NzMxNiAxMDAlKTtcbn1cbiIsIi8qIFRoZW1lIE9jZWFuIC0gRGVlcCBCbHVlICovXG46cm9vdCB7XG4gIC0tY29sb3ItcHJpbWFyeTogIzFlM2E4YTtcbiAgLS1jb2xvci1wcmltYXJ5LWxpZ2h0OiAjMWQ0ZWQ4O1xuICAtLWNvbG9yLXNlY29uZGFyeTogIzYwYTVmYTtcbiAgLS1jb2xvci1zZWNvbmRhcnktZGFyazogIzNiODJmNjtcbiAgLS1jb2xvci1hY2NlbnQ6ICMwNmI2ZDQ7XG4gIC0tY29sb3ItYWNjZW50LWRhcms6ICMwODkxYjI7XG5cbiAgLS1ncmFkaWVudC1oZXJvOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMWUzYThhIDAlLCAjMWQ0ZWQ4IDEwMCUpO1xuICAtLWdyYWRpZW50LWFjY2VudDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzYwYTVmYSAwJSwgIzNiODJmNiAxMDAlKTtcbiAgLS1ncmFkaWVudC1jdGE6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxZTNhOGEgMCUsICMxZDRlZDggMTAwJSk7XG5cbiAgLS1oZWFkZXItYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45OCk7XG4gIC0taGVhZGVyLXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMzAsIDU4LCAxMzgsIDAuMSk7XG5cbiAgLS1jYXJkLXNoYWRvdzogMCA0cHggNnB4IC0xcHggcmdiYSgzMCwgNTgsIDEzOCwgMC4xKTtcbiAgLS1jYXJkLXNoYWRvdy1ob3ZlcjogMCAxMHB4IDE1cHggLTNweCByZ2JhKDMwLCA1OCwgMTM4LCAwLjE1KTtcblxuICAtLWJvcmRlci1yYWRpdXMtYmFzZTogMC43NXJlbTtcbiAgLS1ib3JkZXItcmFkaXVzLWxnOiAxcmVtO1xuICAtLWJvcmRlci1yYWRpdXMteGw6IDEuNXJlbTtcbn1cblxuLyogT2NlYW4gdGhlbWUgc3BlY2lmaWMgb3ZlcnJpZGVzICovXG5bZGF0YS10aGVtZT1cIm9jZWFuXCJdIC5oZWFkZXJfX2xvZ28taWNvbiB7XG4gIGNvbG9yOiAjMWUzYThhO1xufVxuXG5bZGF0YS10aGVtZT1cIm9jZWFuXCJdIC5idG4tcHJpbWFyeSxcbltkYXRhLXRoZW1lPVwib2NlYW5cIl0gLmJ0bi1zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNjBhNWZhIDAlLCAjM2I4MmY2IDEwMCUpO1xufVxuXG5bZGF0YS10aGVtZT1cIm9jZWFuXCJdIC5oZXJvIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzFlM2E4YSAwJSwgIzFkNGVkOCAxMDAlKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJvY2VhblwiXSAuc3RhdC1jYXJkOmhvdmVyLFxuW2RhdGEtdGhlbWU9XCJvY2VhblwiXSAuc2VydmljZS1jYXJkOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjNjBhNWZhO1xufVxuXG5bZGF0YS10aGVtZT1cIm9jZWFuXCJdIC5ob21lX19wcm9vZi1pY29uIHtcbiAgY29sb3I6ICM2MGE1ZmE7XG59XG5cbltkYXRhLXRoZW1lPVwib2NlYW5cIl0gLmhvbWVfX3Byb2Nlc3MtbnVtYmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzYwYTVmYSAwJSwgIzNiODJmNiAxMDAlKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJvY2VhblwiXSAuZm9vdGVyX190b3Age1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMWUzYThhIDAlLCAjMWQ0ZWQ4IDEwMCUpO1xufVxuXG5bZGF0YS10aGVtZT1cIm9jZWFuXCJdIC5zZWN0ZXVyLWNhcmRfX2ljb24sXG5bZGF0YS10aGVtZT1cIm9jZWFuXCJdIC52YWx1ZS1jYXJkX19pY29uIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzYwYTVmYSAwJSwgIzNiODJmNiAxMDAlKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJvY2VhblwiXSAuY29udGFjdC1jYXJkLS1hY2NlbnQsXG5bZGF0YS10aGVtZT1cIm9jZWFuXCJdIC5kZXZpcy1pbmZvX19jYXJkLS1hY2NlbnQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNjBhNWZhIDAlLCAjM2I4MmY2IDEwMCUpO1xufVxuXG5bZGF0YS10aGVtZT1cIm9jZWFuXCJdIC5mYXEtY2F0ZWdvcnkuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogIzNiODJmNjtcbiAgYm9yZGVyLWNvbG9yOiAjM2I4MmY2O1xufVxuIiwiLyogVGhlbWUgTWluaW1hbCAtIEJsYWNrICYgV2hpdGUgKi9cbjpyb290IHtcbiAgLS1jb2xvci1wcmltYXJ5OiAjMGEwYTBhO1xuICAtLWNvbG9yLXByaW1hcnktbGlnaHQ6ICMyNjI2MjY7XG4gIC0tY29sb3Itc2Vjb25kYXJ5OiAjNTI1MjUyO1xuICAtLWNvbG9yLXNlY29uZGFyeS1kYXJrOiAjNDA0MDQwO1xuICAtLWNvbG9yLWFjY2VudDogIzE3MTcxNztcbiAgLS1jb2xvci1hY2NlbnQtZGFyazogIzBhMGEwYTtcblxuICAtLWdyYWRpZW50LWhlcm86IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwYTBhMGEgMCUsICMyNjI2MjYgMTAwJSk7XG4gIC0tZ3JhZGllbnQtYWNjZW50OiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNTI1MjUyIDAlLCAjNDA0MDQwIDEwMCUpO1xuICAtLWdyYWRpZW50LWN0YTogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzBhMGEwYSAwJSwgIzI2MjYyNiAxMDAlKTtcblxuICAtLWhlYWRlci1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTtcbiAgLS1oZWFkZXItc2hhZG93OiAwIDFweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcblxuICAtLWNhcmQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgLS1jYXJkLXNoYWRvdy1ob3ZlcjogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cbiAgLS1ib3JkZXItcmFkaXVzLWJhc2U6IDA7XG4gIC0tYm9yZGVyLXJhZGl1cy1sZzogMDtcbiAgLS1ib3JkZXItcmFkaXVzLXhsOiAwO1xufVxuXG4vKiBNaW5pbWFsIHRoZW1lIHNwZWNpZmljIG92ZXJyaWRlcyAqL1xuW2RhdGEtdGhlbWU9XCJtaW5pbWFsXCJdIC5oZWFkZXJfX2xvZ28taWNvbiB7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG5bZGF0YS10aGVtZT1cIm1pbmltYWxcIl0gLmJ0bi1wcmltYXJ5LFxuW2RhdGEtdGhlbWU9XCJtaW5pbWFsXCJdIC5idG4tc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZDogIzBhMGEwYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuW2RhdGEtdGhlbWU9XCJtaW5pbWFsXCJdIC5idG4tcHJpbWFyeTpob3ZlcixcbltkYXRhLXRoZW1lPVwibWluaW1hbFwiXSAuYnRuLXNlY29uZGFyeTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICMyNjI2MjY7XG59XG5cbltkYXRhLXRoZW1lPVwibWluaW1hbFwiXSAuaGVybyB7XG4gIGJhY2tncm91bmQ6ICMwYTBhMGE7XG59XG5cbltkYXRhLXRoZW1lPVwibWluaW1hbFwiXSAuc3RhdC1jYXJkLFxuW2RhdGEtdGhlbWU9XCJtaW5pbWFsXCJdIC5zZXJ2aWNlLWNhcmQsXG5bZGF0YS10aGVtZT1cIm1pbmltYWxcIl0gLmFkbWluLWNhcmQsXG5bZGF0YS10aGVtZT1cIm1pbmltYWxcIl0gLmNvbnRhY3QtY2FyZCxcbltkYXRhLXRoZW1lPVwibWluaW1hbFwiXSAuc2VjdGV1ci1jYXJkLFxuW2RhdGEtdGhlbWU9XCJtaW5pbWFsXCJdIC50ZXN0aW1vbmlhbC1jYXJkLFxuW2RhdGEtdGhlbWU9XCJtaW5pbWFsXCJdIC52YWx1ZS1jYXJkLFxuW2RhdGEtdGhlbWU9XCJtaW5pbWFsXCJdIC50ZWFtLWNhcmQsXG5bZGF0YS10aGVtZT1cIm1pbmltYWxcIl0gLmZhcS1pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbn1cblxuW2RhdGEtdGhlbWU9XCJtaW5pbWFsXCJdIC5zdGF0LWNhcmQ6aG92ZXIsXG5bZGF0YS10aGVtZT1cIm1pbmltYWxcIl0gLnNlcnZpY2UtY2FyZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogIzBhMGEwYTtcbn1cblxuW2RhdGEtdGhlbWU9XCJtaW5pbWFsXCJdIC5ob21lX19wcm9vZi1pY29uIHtcbiAgY29sb3I6ICMwYTBhMGE7XG59XG5cbltkYXRhLXRoZW1lPVwibWluaW1hbFwiXSAuaG9tZV9fcHJvY2Vzcy1udW1iZXIge1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG5bZGF0YS10aGVtZT1cIm1pbmltYWxcIl0gLmZvb3Rlcl9fdG9wIHtcbiAgYmFja2dyb3VuZDogIzBhMGEwYTtcbn1cblxuW2RhdGEtdGhlbWU9XCJtaW5pbWFsXCJdIC5zZWN0ZXVyLWNhcmRfX2ljb24sXG5bZGF0YS10aGVtZT1cIm1pbmltYWxcIl0gLnZhbHVlLWNhcmRfX2ljb24ge1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG5bZGF0YS10aGVtZT1cIm1pbmltYWxcIl0gLmNvbnRhY3QtY2FyZC0tYWNjZW50LFxuW2RhdGEtdGhlbWU9XCJtaW5pbWFsXCJdIC5kZXZpcy1pbmZvX19jYXJkLS1hY2NlbnQge1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xufVxuXG5bZGF0YS10aGVtZT1cIm1pbmltYWxcIl0gLmZhcS1jYXRlZ29yeS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICBib3JkZXItY29sb3I6ICMwYTBhMGE7XG59XG5cbltkYXRhLXRoZW1lPVwibWluaW1hbFwiXSBpbnB1dCxcbltkYXRhLXRoZW1lPVwibWluaW1hbFwiXSB0ZXh0YXJlYSxcbltkYXRhLXRoZW1lPVwibWluaW1hbFwiXSBzZWxlY3Qge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG5bZGF0YS10aGVtZT1cIm1pbmltYWxcIl0gLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVlNWU1O1xufVxuXG5bZGF0YS10aGVtZT1cIm1pbmltYWxcIl0gLmhlYWRlci0tc2Nyb2xsZWQge1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzBhMGEwYTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/