/* Genel stiller */
body {
  margin: 0;
  padding: 0;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  background-color: #f8f9fa;
}

/* Index sayfası özel body stili */
.index-body {
  background: linear-gradient(180deg, #f5f7fa 0%, #c3cfe2 100%);
  min-height: 100vh;
}

/* Navbar stilleri - sticky ile içerik doküman akışında kalır, overlay olmaz */
.navbar {
  background: linear-gradient(135deg, #ff9a9e 0%, #fad0c4 100%);
  padding: 15px 30px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  position: sticky !important;
  top: 0 !important;
  z-index: 9999 !important;
  flex-wrap: wrap;
}

/* Responsive görünüm kontrolleri */
.desktop-view {
  display: none;
}

.tablet-view {
  display: none;
}

.mobile-view {
  display: flex;
}

/* Büyük (1200px ve üzeri) */
@media (min-width: 1200px) {
  .desktop-view {
    display: flex;
  }
  .tablet-view {
    display: none;
  }
  .mobile-view {
    display: none;
  }
}

/* Orta (768px - 1199px) */
@media (min-width: 768px) and (max-width: 1199px) {
  .desktop-view {
    display: none;
  }
  .tablet-view {
    display: flex;
  }
  .mobile-view {
    display: none;
  }
}

/* Küçük (767px ve altı) */
@media (max-width: 767px) {
  .navbar {
    flex-direction: column;
    align-items: flex-start;
    padding: 10px 15px;
  }
  .desktop-view {
    display: none;
  }
  .tablet-view {
    display: none;
  }
  .mobile-view {
    display: flex;
  }
}

.logo .logo-text {
  color: white;
  font-size: 24px;
  margin: 0;
  letter-spacing: 1px;
  font-weight: 700;
  text-shadow: 0 2px 4px rgba(0,0,0,0.1);
  display: block;
}

.nav-links a {
  color: white;
  text-decoration: none;
  margin-left: 25px;
  font-weight: 600;
  transition: all 0.3s;
  position: relative;
  padding: 5px 0;
}

.nav-links a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background-color: white;
  transition: width 0.3s;
}

.nav-links a:hover::after {
  width: 100%;
}

.auth-buttons a {
  text-decoration: none;
  margin-left: 15px;
  padding: 8px 16px;
  border-radius: 20px;
  transition: all 0.3s;
  font-weight: 600;
}

.login-btn {
  color: white;
  background-color: rgba(255,255,255,0.2);
}

.login-btn:hover {
  background-color: rgba(255,255,255,0.3);
}

.register-btn {
  background-color: white;
  color: #ff6b6b;
}

.register-btn:hover {
  background-color: #f8f9fa;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

/* Hamburger dropdown */
.hamburger {
  position: relative;
  cursor: pointer;
  display: flex;
  align-items: center;
}

.hamburger i {
  color: white;
  font-size: 20px;
  background-color: rgba(255,255,255,0.2);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 767px) {
  .hamburger i {
    font-size: 24px;
    width: 42px;
    height: 42px;
  }
}

.hamburger .dropdown-menu {
  position: absolute;
  top: 50px;
  left: 0;
  background-color: white;
  min-width: 250px;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px) scale(0.95);
  transition: all 0.3s ease;
  z-index: 1000;
}

.hamburger .dropdown-menu.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

/* Mobilde hamburger dropdown sayfadan taşmasın - max-height + scroll */
@media (max-width: 767px) {
  .hamburger .dropdown-menu {
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
}

.hamburger .dropdown-menu a {
  display: block;
  padding: 12px 20px;
  color: #333;
  text-decoration: none;
}

.hamburger .dropdown-menu a:hover {
  background-color: #f8f9fa;
  color: #ff6b6b;
}

/* Mobil Auth Butonları */
.mobile-auth-links {
  padding: 15px;
  border-bottom: 1px solid #e9ecef;
  margin-bottom: 10px;
}

.mobile-auth-btn {
  display: block !important;
  width: 100% !important;
  margin-bottom: 10px !important;
  padding: 10px 15px !important;
  border-radius: 25px !important;
  font-weight: 600 !important;
  transition: all 0.3s ease !important;
  text-align: center !important;
  border: none !important;
  background: linear-gradient(45deg, #667eea, #764ba2) !important;
  color: white !important;
  box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3) !important;
}

.mobile-auth-btn:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4) !important;
  color: white !important;
  text-decoration: none !important;
}

.mobile-auth-btn i {
  margin-right: 8px;
}

/* Dil seçimi */
.language-selector {
  position: relative;
  margin-left: 15px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 5px;
}

.language-selector i {
  color: white;
  font-size: 18px;
  cursor: pointer;
  background-color: rgba(255,255,255,0.2);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  vertical-align: middle;
}

.language-code {
  color: white;
  font-weight: 600;
  font-size: 14px;
  text-transform: uppercase;
  user-select: none;
  white-space: nowrap;
  display: inline-block;
  vertical-align: middle;
  line-height: 36px;
}

.language-selector .dropdown-menu {
  position: absolute;
  top: 50px;
  right: 0;
  background-color: white;
  min-width: 150px;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px) scale(0.95);
  transition: all 0.3s ease;
  z-index: 1000;
}

.language-selector .dropdown-menu.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.language-selector .dropdown-menu a {
  display: block;
  padding: 10px 15px;
  color: #333;
  text-decoration: none;
  font-size: 14px;
}

.language-selector .dropdown-menu a:hover {
  background-color: #f8f9fa;
  color: #ff6b6b;
}

.language-selector .dropdown-menu a.active {
  background-color: #ff6b6b;
  color: white;
}

.language-flag {
  margin-right: 8px;
}

/* Index sayfası özel stiller */
.colorful-card {
  background: white;
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  padding: 2.5rem;
  margin-top: 2rem;
  position: relative;
  overflow: hidden;
  transition: transform 0.3s ease;
}

.colorful-card:hover {
  transform: translateY(-5px);
}

.colorful-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 5px;
  background: linear-gradient(90deg, #ff9a9e 0%, #fad0c4 100%);
}

.floating-element {
  position: absolute;
  border-radius: 50%;
  opacity: 0.1;
  z-index: 0;
}

.floating-1 {
  width: 100px;
  height: 100px;
  background-color: #ff9a9e;
  top: -50px;
  right: -50px;
  animation: float 6s ease-in-out infinite;
}

.floating-2 {
  width: 150px;
  height: 150px;
  background-color: #4facfe;
  bottom: -75px;
  left: -75px;
  animation: float 8s ease-in-out infinite;
}

@keyframes float {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-20px); }
  100% { transform: translateY(0px); }
}

/* Form stilleri */
.form-label {
  font-weight: 600;
  color: #4a5568;
  margin-bottom: 0.5rem;
}

.form-select, .form-control {
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 0.75rem;
  transition: all 0.3s;
}

.form-select:focus, .form-control:focus {
  border-color: #4299e1;
  box-shadow: 0 0 0 0.2rem rgba(66, 153, 225, 0.25);
}

.btn-colorful {
  background: linear-gradient(135deg, #ff9a9e 0%, #fad0c4 100%);
  color: white;
  border: none;
  border-radius: 30px;
  padding: 0.75rem 2rem;
  font-weight: 600;
  transition: all 0.3s;
  box-shadow: 0 4px 15px rgba(255, 154, 158, 0.3);
}

.btn-colorful:hover {
  transform: translateY(-3px);
  box-shadow: 0 7px 20px rgba(255, 154, 158, 0.4);
}

/* Genel container */
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 15px;
}

/* Navbar artık position: sticky olduğu için body padding-top GEREKMEZ.
   Sticky navbar doküman akışında kalır, içerik otomatik altında başlar. */

/* Form grupları */
.form-group {
  margin-bottom: 1rem;
  position: relative;
  z-index: 1;
}

/* ============================================
   COMPACT SIDEBAR STYLES (Orta/Küçük Ekranlar)
   ============================================ */
.compact-sidebar {
  display: flex;
  justify-content: center;
}

.compact-card {
  background: rgba(255, 255, 255, 0.95);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  border-left: 3px solid #6f42c1;
  width: 100%;
  max-width: 100%;
}

.compact-title {
  color: #6f42c1;
  font-weight: 700;
  font-size: 0.95rem;
  margin-bottom: 0.75rem;
  text-align: center;
}

.compact-items {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}

.compact-item {
  display: flex;
  align-items: center;
  font-size: 0.8rem;
  color: #495057;
  padding: 0.25rem 0.5rem;
  background: #f8f9fa;
  border-radius: 6px;
  flex: 0 1 auto;
}

.compact-item i {
  font-size: 0.75rem;
}

.compact-text {
  white-space: nowrap;
  font-weight: 500;
}

/* Orta ekranlar için (768px - 991px) */
@media (min-width: 768px) and (max-width: 991px) {
  .compact-sidebar {
    display: flex;
  }
  
  .compact-card {
    padding: 1.25rem 1.5rem;
  }
  
  .compact-title {
    font-size: 1rem;
  }
  
  .compact-item {
    font-size: 0.85rem;
    padding: 0.35rem 0.65rem;
  }
  
  /* Form kartını küçült */
  .colorful-card {
    padding: 2rem 2.25rem;
    margin-top: 1.5rem;
  }
  
  /* Container padding'i azalt */
  .container-fluid.px-4 {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }
  
  /* Form başlıklarını küçült */
  .colorful-card h2 {
    font-size: 1.75rem;
    margin-bottom: 1rem;
  }
  
  .colorful-card p {
    font-size: 0.95rem;
    margin-bottom: 1.5rem;
  }
  
  /* Form gruplarını küçült */
  .form-group {
    margin-bottom: 0.85rem;
  }
  
  .form-label {
    font-size: 0.9rem;
    margin-bottom: 0.4rem;
  }
  
  .form-select, .form-control {
    padding: 0.65rem;
    font-size: 0.9rem;
  }
  
  /* Butonları küçült */
  .btn-colorful {
    padding: 0.65rem 1.5rem;
    font-size: 0.9rem;
  }
}

/* Küçük ekranlar için (576px - 767px) */
@media (min-width: 576px) and (max-width: 767px) {
  .compact-sidebar {
    display: flex;
  }
  
  .compact-card {
    padding: 1rem 1.25rem;
  }
  
  .compact-title {
    font-size: 0.9rem;
  }
  
  .compact-item {
    font-size: 0.75rem;
    padding: 0.3rem 0.5rem;
  }
  
  /* Form kartını daha da küçült */
  .colorful-card {
    padding: 1.5rem 1.75rem;
    margin-top: 1rem;
  }
  
  /* Container padding'i daha da azalt */
  .container-fluid.px-4 {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
  
  /* Form başlıklarını küçült */
  .colorful-card h2 {
    font-size: 1.5rem;
    margin-bottom: 0.75rem;
  }
  
  .colorful-card p {
    font-size: 0.85rem;
    margin-bottom: 1.25rem;
  }
  
  /* Form gruplarını küçült */
  .form-group {
    margin-bottom: 0.75rem;
  }
  
  .form-label {
    font-size: 0.85rem;
    margin-bottom: 0.35rem;
  }
  
  .form-select, .form-control {
    padding: 0.6rem;
    font-size: 0.85rem;
  }
  
  /* Butonları küçült */
  .btn-colorful {
    padding: 0.6rem 1.25rem;
    font-size: 0.85rem;
  }
}

/* Çok küçük ekranlar için (max-width: 575px) */
@media (max-width: 575px) {
  .compact-sidebar {
    display: flex;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  
  .compact-card {
    padding: 0.85rem 1rem;
  }
  
  .compact-title {
    font-size: 0.85rem;
    margin-bottom: 0.6rem;
  }
  
  .compact-items {
    gap: 0.4rem;
  }
  
  .compact-item {
    font-size: 0.7rem;
    padding: 0.25rem 0.4rem;
  }
  
  .compact-item i {
    font-size: 0.7rem;
  }
  
  /* Form kartını en küçük boyut */
  .colorful-card {
    padding: 1.25rem 1.5rem;
    margin-top: 0.75rem;
  }
  
  /* Container padding'i minimum */
  .container-fluid.px-4 {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
  }
  
  /* Form başlıklarını küçült */
  .colorful-card h2 {
    font-size: 1.35rem;
    margin-bottom: 0.6rem;
  }
  
  .colorful-card p {
    font-size: 0.8rem;
    margin-bottom: 1rem;
  }
  
  /* Form gruplarını küçült */
  .form-group {
    margin-bottom: 0.65rem;
  }
  
  .form-label {
    font-size: 0.8rem;
    margin-bottom: 0.3rem;
  }
  
  .form-select, .form-control {
    padding: 0.55rem;
    font-size: 0.8rem;
  }
  
  /* Butonları küçült */
  .btn-colorful {
    padding: 0.55rem 1rem;
    font-size: 0.8rem;
  }
}

/* Result card */
.result-card {
  background: white;
  border-radius: 20px;
  padding: 2rem;
  margin-top: 2rem;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  position: relative;
  overflow: hidden;
}

.result-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 5px;
  background: linear-gradient(90deg, #4facfe 0%, #00f2fe 100%);
}

.result-card h5 {
  color: #3182ce;
  margin-top: 1.5rem;
  font-weight: 600;
}

.result-card h4 {
  color: #3182ce;
}

.result-card pre {
  background-color: #f7fafc;
  padding: 1rem;
  border-radius: 10px;
  border-left: 4px solid #4299e1;
  overflow-x: auto;
}

/* ============================================
   DASHBOARD PAGE STYLES
   ============================================ */
.dashboard-container {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
  min-height: 100vh !important;
  padding: 2rem 0 !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.dashboard-card {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-radius: 20px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.1);
  border: 1px solid rgba(255,255,255,0.2);
}

.profile-section {
  background: linear-gradient(45deg, #667eea, #764ba2);
  color: white;
  border-radius: 15px;
  padding: 2rem;
  margin-bottom: 2rem;
}

.birth-record-card {
  background: white;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.1);
  transition: all 0.3s ease;
  border-left: 4px solid #667eea;
}

.birth-record-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.15);
}

/* Dashboard boş slot - yeni harita ekle kartı */
.birth-record-card.add-new-card {
  min-height: 220px;
  border-left: 4px dashed #667eea;
  color: inherit;
}

.birth-record-card.add-new-card:hover {
  background: rgba(102, 126, 234, 0.05);
  border-left-color: #764ba2;
}

.btn-calculate {
  background: linear-gradient(45deg, #667eea, #764ba2);
  border: none;
  border-radius: 25px;
  color: white;
  padding: 8px 20px;
  transition: all 0.3s ease;
}

.btn-calculate:hover {
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4);
  color: white;
}

.btn-logout {
  background: linear-gradient(45deg, #ff6b6b, #ee5a24);
  border: none;
  border-radius: 25px;
  color: white;
  padding: 10px 25px;
  transition: all 0.3s ease;
}

.btn-logout:hover {
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(255, 107, 107, 0.4);
  color: white;
}

.record-limit {
  background: linear-gradient(45deg, #ffecd2, #fcb69f);
  border-radius: 10px;
  padding: 1rem;
  margin-bottom: 1rem;
}

.no-records {
  text-align: center;
  color: #6c757d;
  padding: 3rem;
}

.floating-icon {
  position: absolute;
  color: rgba(255,255,255,0.3);
  animation: float 3s ease-in-out infinite;
}

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

/* ============================================
   EMAIL VERIFICATION PAGE STYLES
   ============================================ */
.verification-card {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-radius: 20px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.1);
  border: 1px solid rgba(255,255,255,0.2);
}

.email-icon {
  font-size: 4rem;
  color: #667eea;
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}

.btn-custom {
  background: linear-gradient(45deg, #667eea, #764ba2);
  border: none;
  border-radius: 25px;
  padding: 12px 30px;
  font-weight: 600;
  transition: all 0.3s ease;
}

.btn-custom:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(102, 126, 234, 0.4);
}

/* ============================================
   LOGIN PAGE STYLES
   ============================================ */
.login-card {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-radius: 20px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.1);
  border: 1px solid rgba(255,255,255,0.2);
}

.btn-login {
  background: linear-gradient(45deg, #4facfe, #00f2fe);
  border: none;
  border-radius: 25px;
  padding: 12px 30px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  transition: all 0.3s ease;
}

.btn-login:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(79, 172, 254, 0.4);
}

.password-toggle {
  background: linear-gradient(45deg, #4facfe, #00f2fe);
  border: none;
  border-radius: 20px;
  color: white;
  font-size: 12px;
  padding: 5px 15px;
}

.alert-success {
  background: linear-gradient(45deg, #56ab2f, #a8e6cf);
  border: none;
  border-radius: 10px;
  color: white;
}

/* ============================================
   REGISTER PAGE STYLES
   ============================================ */
.register-card {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-radius: 20px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.1);
  border: 1px solid rgba(255,255,255,0.2);
}

.btn-register {
  background: linear-gradient(45deg, #667eea, #764ba2);
  border: none;
  border-radius: 25px;
  padding: 12px 30px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  transition: all 0.3s ease;
}

.btn-register:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(102, 126, 234, 0.4);
}

/* Kayıt formu anlık doğrulama geri bildirimi */
.register-field-wrapper {
  position: relative;
}
.register-field-feedback {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  margin-top: 0.25rem;
  min-height: 1.4rem;
}
.register-field-feedback .register-field-icon {
  flex-shrink: 0;
  font-size: 1rem;
  margin-top: 0.1rem;
}
.register-field-feedback .register-field-message {
  font-size: 0.8rem;
  line-height: 1.35;
}
.register-field-feedback.is-invalid .register-field-message {
  color: var(--bs-danger, #dc3545);
}
.register-field-feedback.is-valid .register-field-message {
  color: var(--bs-success, #198754);
}
.register-field-feedback .register-email-forgot {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.75rem;
  opacity: 0.9;
}
.register-field-feedback .register-email-forgot a {
  color: #667eea;
  text-decoration: underline;
}

.star-decoration {
  position: absolute;
  color: rgba(255,255,255,0.3);
  animation: twinkle 2s infinite;
}

@keyframes twinkle {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 0.8; }
}

/* ============================================
   RESEND VERIFICATION PAGE STYLES
   ============================================ */
.resend-card {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-radius: 20px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.1);
  border: 1px solid rgba(255,255,255,0.2);
}

.btn-resend {
  background: linear-gradient(45deg, #667eea, #764ba2);
  border: none;
  border-radius: 25px;
  padding: 12px 30px;
  font-weight: 600;
  transition: all 0.3s ease;
}

.btn-resend:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(102, 126, 234, 0.4);
}

/* ============================================
   SHARED GRADIENT & UTILITY STYLES
   ============================================ */
.title-gradient {
  background: linear-gradient(45deg, #667eea, #764ba2);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Login sayfası için mavi gradient */
body.login-page .title-gradient {
  background: linear-gradient(45deg, #4facfe, #00f2fe);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Genel form kontrol stilleri */
body:not(.index-body) .form-control {
  border-radius: 10px;
  border: 2px solid #e9ecef;
  padding: 12px 15px;
  transition: all 0.3s ease;
}

body:not(.index-body) .form-control:focus {
  border-color: #667eea;
  box-shadow: 0 0 0 0.2rem rgba(102, 126, 234, 0.25);
}

body.login-page .form-control:focus {
  border-color: #4facfe;
  box-shadow: 0 0 0 0.2rem rgba(79, 172, 254, 0.25);
}

/* ============================================
   VEDIC CHART PAGE RESPONSIVE STYLES
   ============================================ */

/* Büyük ekranlarda haritayı sınırla */
@media (min-width: 992px) {
  .chart-responsive {
    max-width: 600px !important;
  }
}

/* Tablet ve mobilde tüm öğeleri hizala */
@media (max-width: 991px) {
  /* Harita container'ı */
  #chart-container {
    max-width: 100% !important;
    width: 100% !important;
  }
  
  /* Harita sütunu - merkeze hizala */
  .col-lg-8.mb-4 {
    display: flex !important;
    justify-content: center !important;
    padding: 0 15px !important;
  }
  
  /* Kart sütunu - merkeze hizala */
  .col-lg-4.mb-4 {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    padding: 0 15px !important;
  }
  
  /* Kartları container genişliği ile sınırla */
  .col-lg-4.mb-4 .card {
    width: 100% !important;
    max-width: 100% !important;
  }
  
  /* Chart type seçici kartı da aynı genişlikte */
  .col-md-6 .card {
    max-width: 100% !important;
  }
}

/* ============================================
   SONUC PAGE STYLES (Results Page)
   ============================================ */
.results-container {
    max-width: 1200px;
    margin: 120px auto 60px;
    padding: 0 20px;
}

.section-box {
    background: white;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    margin-bottom: 30px;
    overflow: hidden;
}

.section-header {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    padding: 20px 30px;
    font-size: 1.4rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 12px;
}

.section-content {
    padding: 30px;
}

.info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}

/* ============================================
   3 SÜTUNLU DÜZEN: Sol Sidebar | Harita | Sağ Sidebar
   Sidebar'lar harita yüksekliğinde, kutular eşit bölünmüş
   ============================================ */

/* Ana row - sidebar'ların harita ile aynı yükseklikte olması için */
.chart-sidebar-row {
    display: flex;
    align-items: stretch;
}

/* Desktop: Sidebar'lar tam yükseklikte görünsün */
@media (min-width: 992px) {
    .chart-sidebar-row {
        min-height: 520px;
    }
    
    .chart-sidebar-row > .col-lg-3 {
        display: flex !important;
        flex-direction: column !important;
    }
    
    .chart-sidebar-row > .col-lg-6 {
        display: flex !important;
        flex-direction: column !important;
    }
}

/* Sidebar wrapper - tam yüksekliğe uzansın */
.sidebar-wrapper {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
}

/* Sidebar başlığı */
.sidebar-wrapper > h5 {
    flex-shrink: 0;
    margin-bottom: 0 !important;
    padding-bottom: 8px;
}

/* Sidebar kutuları container'ı - eşit yükseklikte bölünsün */
.sidebar-boxes {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0;
    height: 100%;
}

/* Her bir kutu linki - eşit alan kaplasın, boşluk yok */
.sidebar-boxes > a {
    flex: 1 1 0 !important;
    min-height: 0 !important;
    max-height: none !important;
    height: auto !important;
    display: flex !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: none !important;
}

/* Kutu içeriği - eşit yükseklik, taşan içerik gizli */
.sidebar-box {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 6px 10px;
    overflow: hidden;
    transition: filter 0.2s;
}
.sidebar-box:hover { filter: brightness(0.97); }

/* Kutu içindeki metin satırları - alt satıra kırılsın */
.sidebar-box > div {
    overflow: hidden;
    white-space: normal;
    word-wrap: break-word;
    width: 100%;
    line-height: 1.3;
}

/* Başlık (ilk satır) - uzun metinler kesilsin, üst üste binme önlensin */
.sidebar-box > div:first-child {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* 992px-1199px arası: Sidebar fontları küçült, preview gizle */
@media (min-width: 992px) and (max-width: 1199px) {
    /* Sidebar başlığı küçült */
    .sidebar-wrapper > h5 {
        font-size: 0.9rem !important;
        padding-bottom: 6px;
    }
    
    /* Kutu padding'i azalt */
    .sidebar-box {
        padding: 5px 8px;
    }
    
    /* Başlık fontunu küçült (ilk div - title) */
    .sidebar-box > div:first-child {
        font-size: 0.75rem !important;
    }
    
    /* Alt yazı fontunu küçült (ikinci div - subtitle/line1) */
    .sidebar-box > div:nth-child(2) {
        font-size: 0.65rem !important;
        margin-top: 2px !important;
    }
    
    /* Üçüncü satırı (line2) küçült */
    .sidebar-box > div:nth-child(3) {
        font-size: 0.6rem !important;
        margin-top: 1px !important;
    }
    
    /* Preview yazılarını (4. satır) gizle - sol sidebar */
    .sidebar-box > div:nth-child(4) {
        display: none !important;
    }
}

.info-card {
    background: #f8f9fa;
    padding: 15px 20px;
    border-radius: 8px;
    border-left: 4px solid #667eea;
}

.info-label {
    font-size: 0.85rem;
    color: #666;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 5px;
}

.info-value {
    font-size: 1.1rem;
    color: #333;
    font-weight: 500;
}

.dasha-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    margin-top: 20px;
}

.dasha-table thead {
    background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
    color: white;
}

.dasha-table th {
    padding: 15px 20px;
    text-align: left;
    font-weight: 600;
    font-size: 0.95rem;
}

.dasha-table th:first-child {
    border-radius: 8px 0 0 0;
}

.dasha-table th:last-child {
    border-radius: 0 8px 0 0;
}

.dasha-table tbody tr {
    border-bottom: 1px solid #e9ecef;
    transition: background 0.2s;
}

.dasha-table tbody tr:hover {
    background: #f8f9fa;
}

.dasha-table tbody tr.current-dasha {
    background: #fff3cd;
    font-weight: 600;
}

.dasha-table tbody tr.current-dasha td {
    border-left: 4px solid #ffc107;
}

.dasha-table tbody tr.clickable-row {
    cursor: pointer;
    transition: all 0.2s;
}

.dasha-table tbody tr.clickable-row:hover {
    background: #e3f2fd;
    transform: translateX(5px);
}

.dasha-table td {
    padding: 15px 20px;
    color: #495057;
}

.planet-name {
    font-weight: 600;
    color: #667eea;
    font-size: 1.05rem;
}

.duration-badge {
    display: inline-block;
    background: #e7f3ff;
    color: #0066cc;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 0.9rem;
    font-weight: 500;
}

.placeholder-section {
    background: #f8f9fa;
    padding: 40px;
    text-align: center;
    color: #6c757d;
    border-radius: 8px;
    border: 2px dashed #dee2e6;
}

.placeholder-section i {
    font-size: 3rem;
    margin-bottom: 15px;
    opacity: 0.5;
}

.back-button {
    margin-top: 30px;
    text-align: center;
}

/* Neecha Bhanga Table Styles */
.neecha-bhanga-table {
    margin-top: 30px;
}

.neecha-bhanga-table h2 {
    color: #667eea;
    font-size: 1.5rem;
    margin-bottom: 20px;
    text-align: center;
}

.neecha-bhanga-table .table {
    font-size: 0.9rem;
}

.neecha-bhanga-table .table th {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
    color: white;
    font-weight: 600;
    text-align: center;
    vertical-align: middle;
    font-size: 0.85rem;
}

.neecha-bhanga-table .table td {
    vertical-align: middle;
    text-align: center;
}

.neecha-bhanga-table .table-danger {
    background-color: #ffe6e6 !important;
}

.neecha-bhanga-table .table-warning {
    background-color: #fff8e1 !important;
}

.neecha-bhanga-table ul {
    text-align: left;
    padding-left: 20px;
}

/* Planetary Analysis Table Styles */
.planetary-analysis-table {
    margin-top: 30px;
}

.planetary-analysis-table h2 {
    color: #667eea;
    font-size: 1.5rem;
    margin-bottom: 20px;
    text-align: center;
}

.planetary-analysis-table .table {
    font-size: 0.9rem;
}

.planetary-analysis-table .table th {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    font-weight: 600;
    text-align: center;
    vertical-align: middle;
}

.planetary-analysis-table .table td {
    vertical-align: middle;
    text-align: center;
}

.divisional-analysis-table {
    margin-top: 30px;
}

/* Responsive Styles for Sonuc Page */
@media (max-width: 768px) {
    /* Results container - mobilde tam genişlik */
    .results-container {
        padding: 0 10px;
        margin-left: 0;
        margin-right: 0;
    }
    
    .dasha-table {
        font-size: 0.85rem;
        width: 100% !important;
        table-layout: fixed;
    }
    
    .dasha-table th,
    .dasha-table td {
        padding: 8px 6px;
    }
    
    /* Mobilde Süre sütununu (4. sütun) gizle */
    .dasha-table th:nth-child(4),
    .dasha-table td:nth-child(4) {
        display: none;
    }
    
    /* Kalan 3 sütun için genişlik */
    .dasha-table th:nth-child(1),
    .dasha-table td:nth-child(1) {
        width: 30%;
    }
    .dasha-table th:nth-child(2),
    .dasha-table td:nth-child(2),
    .dasha-table th:nth-child(3),
    .dasha-table td:nth-child(3) {
        width: 35%;
    }
    
    /* Dasha yorum kartları - mobilde tam genişlik */
    .results-container .card {
        margin-left: -5px;
        margin-right: -5px;
        border-radius: 8px !important;
    }
    
    .results-container .card-body {
        padding: 12px !important;
    }
    
    .results-container .card-body .p-4,
    .results-container .card-body > div[style*="padding"] {
        padding: 10px !important;
        margin: 0 -5px;
    }
    
    .results-container .card-header {
        padding: 12px !important;
    }
    
    .results-container .card-header h4,
    .results-container .card-header h5 {
        font-size: 1rem !important;
        line-height: 1.4;
    }
    
    .results-container .card-body p {
        font-size: 0.95rem !important;
        line-height: 1.7 !important;
        text-align: left !important;
    }
    
    /* Section box - mobilde tam genişlik */
    .section-box {
        margin-left: -10px;
        margin-right: -10px;
        border-radius: 0 !important;
    }
    
    .section-content {
        padding: 12px !important;
    }
    
    /* Antardasha tablosu (Bootstrap table) - Durum sütununu gizle */
    .results-container .table-responsive .table th:nth-child(4),
    .results-container .table-responsive .table td:nth-child(4) {
        display: none;
    }
    
    .results-container .table-responsive .table {
        width: 100% !important;
        table-layout: fixed;
    }
    
    .results-container .table-responsive .table th,
    .results-container .table-responsive .table td {
        padding: 8px 6px;
        font-size: 0.85rem;
    }
    
    /* Kalan 3 sütun eşit genişlik */
    .results-container .table-responsive .table th:nth-child(1),
    .results-container .table-responsive .table td:nth-child(1) {
        width: 28%;
    }
    .results-container .table-responsive .table th:nth-child(2),
    .results-container .table-responsive .table td:nth-child(2),
    .results-container .table-responsive .table th:nth-child(3),
    .results-container .table-responsive .table td:nth-child(3) {
        width: 36%;
    }
    
    /* Mobilde yatay taşmayı önle - sayfalar üst üste binmesin */
    .menu-page-container {
        overflow-x: hidden;
    }
    
    /* Transit ve diğer sayfalar - mobilde container tam genişlik */
    .menu-page-container .container {
        max-width: 100% !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
    
    /* Transit sayfası - mobilde kartları genişlet */
    .menu-page-container .card {
        margin-left: 0 !important;
        margin-right: 0 !important;
        border-radius: 8px !important;
    }
    
    .menu-page-container .card-body {
        padding: 12px !important;
    }
    
    .menu-page-container .card-header {
        padding: 12px !important;
    }
    
    .menu-page-container .card-header h5 {
        font-size: 0.95rem !important;
    }
    
    .menu-page-container .card-body p,
    .menu-page-container .card-body li {
        font-size: 0.92rem !important;
        line-height: 1.65 !important;
        text-align: left !important;
    }
    
    .menu-page-container .card-body p[style*="padding: 12px"],
    .menu-page-container .card-body p[style*="padding:12px"] {
        padding: 10px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    
    .menu-page-container .card-body h6 {
        font-size: 0.9rem !important;
    }
    
    .menu-page-container .card-body ul {
        padding-left: 18px !important;
        margin-left: 0 !important;
    }
    
    .mobile-full-width .card-body ul {
        padding-left: 20px !important;
        margin-left: 0 !important;
    }
    
    /* Panchang sayfası - mobilde kartları genişlet */
    .panchang-card {
        margin-left: -10px !important;
        margin-right: -10px !important;
        border-radius: 8px !important;
    }
    
    .panchang-card-header {
        padding: 12px 15px !important;
    }
    
    .panchang-card-header h4 {
        font-size: 1rem !important;
    }
    
    .panchang-card-header p {
        font-size: 0.85rem !important;
    }
    
    .panchang-card-body {
        padding: 12px !important;
    }
    
    .panchang-card-body .p-4 {
        padding: 10px !important;
    }
    
    .panchang-card-body p {
        font-size: 0.9rem !important;
        line-height: 1.6 !important;
        text-align: left !important;
    }
    
    .section-header {
        font-size: 1.1rem;
        padding: 15px 20px;
    }
    
    .planetary-analysis-table .table {
        font-size: 0.75rem;
    }
    
    .planetary-analysis-table h2 {
        font-size: 1.2rem;
    }
    
    .neecha-bhanga-table .table {
        font-size: 0.75rem;
    }
    
    .neecha-bhanga-table h2 {
        font-size: 1.2rem;
    }
    
    .neecha-bhanga-table .table th {
        font-size: 0.7rem;
        padding: 8px 4px;
    }
    
    .neecha-bhanga-table .table td {
        padding: 8px 4px;
    }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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O1FBQzdCLHlCQUF5QjtJQUM3Qjs7SUFFQSxpREFBaUQ7SUFDakQ7UUFDSSw2QkFBNkI7UUFDN0IsOEJBQThCO1FBQzlCLDZCQUE2QjtJQUNqQzs7SUFFQTtRQUNJLDZCQUE2QjtJQUNqQzs7SUFFQTtRQUNJLDBCQUEwQjtJQUM5Qjs7SUFFQTtRQUNJLDZCQUE2QjtJQUNqQzs7SUFFQTtRQUNJLHdCQUF3QjtJQUM1Qjs7SUFFQTtRQUNJLHdCQUF3QjtJQUM1Qjs7SUFFQTtRQUNJLDRCQUE0QjtRQUM1QiwyQkFBMkI7UUFDM0IsMkJBQTJCO0lBQy9COztJQUVBO1FBQ0ksaUJBQWlCO1FBQ2pCLGtCQUFrQjtJQUN0Qjs7SUFFQTtRQUNJLGtCQUFrQjtJQUN0Qjs7SUFFQTtRQUNJLGlCQUFpQjtJQUNyQjs7SUFFQTtRQUNJLGtCQUFrQjtJQUN0Qjs7SUFFQTtRQUNJLGlCQUFpQjtJQUNyQjs7SUFFQTtRQUNJLGlCQUFpQjtRQUNqQixnQkFBZ0I7SUFDcEI7O0lBRUE7UUFDSSxnQkFBZ0I7SUFDcEI7QUFDSixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZnJvbnRlbmQvLi9zcmMvc3R5bGUuY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIEdlbmVsIHN0aWxsZXIgKi9cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtZmFtaWx5OiAnU2Vnb2UgVUknLCBUYWhvbWEsIEdlbmV2YSwgVmVyZGFuYSwgc2Fucy1zZXJpZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbn1cblxuLyogSW5kZXggc2F5ZmFzxLEgw7Z6ZWwgYm9keSBzdGlsaSAqL1xuLmluZGV4LWJvZHkge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZjVmN2ZhIDAlLCAjYzNjZmUyIDEwMCUpO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbn1cblxuLyogTmF2YmFyIHN0aWxsZXJpIC0gc3RpY2t5IGlsZSBpw6dlcmlrIGRva8O8bWFuIGFrxLHFn8SxbmRhIGthbMSxciwgb3ZlcmxheSBvbG1heiAqL1xuLm5hdmJhciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZjlhOWUgMCUsICNmYWQwYzQgMTAwJSk7XG4gIHBhZGRpbmc6IDE1cHggMzBweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgcG9zaXRpb246IHN0aWNreSAhaW1wb3J0YW50O1xuICB0b3A6IDAgIWltcG9ydGFudDtcbiAgei1pbmRleDogOTk5OSAhaW1wb3J0YW50O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi8qIFJlc3BvbnNpdmUgZ8O2csO8bsO8bSBrb250cm9sbGVyaSAqL1xuLmRlc2t0b3AtdmlldyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi50YWJsZXQtdmlldyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tb2JpbGUtdmlldyB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8qIELDvHnDvGsgKDEyMDBweCB2ZSDDvHplcmkpICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5kZXNrdG9wLXZpZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgLnRhYmxldC12aWV3IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5tb2JpbGUtdmlldyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vKiBPcnRhICg3NjhweCAtIDExOTlweCkgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAuZGVza3RvcC12aWV3IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC50YWJsZXQtdmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuICAubW9iaWxlLXZpZXcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLyogS8O8w6fDvGsgKDc2N3B4IHZlIGFsdMSxKSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5uYXZiYXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xuICB9XG4gIC5kZXNrdG9wLXZpZXcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLnRhYmxldC12aWV3IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5tb2JpbGUtdmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuXG4ubG9nbyAubG9nby10ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDI0cHg7XG4gIG1hcmdpbjogMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsMCwwLDAuMSk7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubmF2LWxpbmtzIGEge1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDVweCAwO1xufVxuXG4ubmF2LWxpbmtzIGE6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzO1xufVxuXG4ubmF2LWxpbmtzIGE6aG92ZXI6OmFmdGVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5hdXRoLWJ1dHRvbnMgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmc6IDhweCAxNnB4O1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmxvZ2luLWJ0biB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xufVxuXG4ubG9naW4tYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjMpO1xufVxuXG4ucmVnaXN0ZXItYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiAjZmY2YjZiO1xufVxuXG4ucmVnaXN0ZXItYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbiAgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwwLDAsMC4xKTtcbn1cblxuLyogSGFtYnVyZ2VyIGRyb3Bkb3duICovXG4uaGFtYnVyZ2VyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5oYW1idXJnZXIgaSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMik7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaGFtYnVyZ2VyIGkge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICB3aWR0aDogNDJweDtcbiAgICBoZWlnaHQ6IDQycHg7XG4gIH1cbn1cblxuLmhhbWJ1cmdlciAuZHJvcGRvd24tbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MHB4O1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgbWluLXdpZHRoOiAyNTBweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm94LXNoYWRvdzogMCA4cHggMjBweCByZ2JhKDAsMCwwLDAuMTUpO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KSBzY2FsZSgwLjk1KTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgei1pbmRleDogMTAwMDtcbn1cblxuLmhhbWJ1cmdlciAuZHJvcGRvd24tbWVudS5zaG93IHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xufVxuXG4vKiBNb2JpbGRlIGhhbWJ1cmdlciBkcm9wZG93biBzYXlmYWRhbiB0YcWfbWFzxLFuIC0gbWF4LWhlaWdodCArIHNjcm9sbCAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5oYW1idXJnZXIgLmRyb3Bkb3duLW1lbnUge1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMjBweCk7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIH1cbn1cblxuLmhhbWJ1cmdlciAuZHJvcGRvd24tbWVudSBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEycHggMjBweDtcbiAgY29sb3I6ICMzMzM7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmhhbWJ1cmdlciAuZHJvcGRvd24tbWVudSBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbiAgY29sb3I6ICNmZjZiNmI7XG59XG5cbi8qIE1vYmlsIEF1dGggQnV0b25sYXLEsSAqL1xuLm1vYmlsZS1hdXRoLWxpbmtzIHtcbiAgcGFkZGluZzogMTVweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlOWVjZWY7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5tb2JpbGUtYXV0aC1idG4ge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDEwcHggMTVweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAyNXB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZSAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgIzY2N2VlYSwgIzc2NGJhMikgIWltcG9ydGFudDtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE1cHggcmdiYSgxMDIsIDEyNiwgMjM0LCAwLjMpICFpbXBvcnRhbnQ7XG59XG5cbi5tb2JpbGUtYXV0aC1idG46aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCA2cHggMjBweCByZ2JhKDEwMiwgMTI2LCAyMzQsIDAuNCkgIWltcG9ydGFudDtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ubW9iaWxlLWF1dGgtYnRuIGkge1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cblxuLyogRGlsIHNlw6dpbWkgKi9cbi5sYW5ndWFnZS1zZWxlY3RvciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNXB4O1xufVxuXG4ubGFuZ3VhZ2Utc2VsZWN0b3IgaSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubGFuZ3VhZ2UtY29kZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBsaW5lLWhlaWdodDogMzZweDtcbn1cblxuLmxhbmd1YWdlLXNlbGVjdG9yIC5kcm9wZG93bi1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwcHg7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgbWluLXdpZHRoOiAxNTBweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm94LXNoYWRvdzogMCA4cHggMjBweCByZ2JhKDAsMCwwLDAuMTUpO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KSBzY2FsZSgwLjk1KTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgei1pbmRleDogMTAwMDtcbn1cblxuLmxhbmd1YWdlLXNlbGVjdG9yIC5kcm9wZG93bi1tZW51LnNob3cge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XG59XG5cbi5sYW5ndWFnZS1zZWxlY3RvciAuZHJvcGRvd24tbWVudSBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgY29sb3I6ICMzMzM7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubGFuZ3VhZ2Utc2VsZWN0b3IgLmRyb3Bkb3duLW1lbnUgYTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XG4gIGNvbG9yOiAjZmY2YjZiO1xufVxuXG4ubGFuZ3VhZ2Utc2VsZWN0b3IgLmRyb3Bkb3duLW1lbnUgYS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2YjZiO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5sYW5ndWFnZS1mbGFnIHtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG5cbi8qIEluZGV4IHNheWZhc8SxIMO2emVsIHN0aWxsZXIgKi9cbi5jb2xvcmZ1bC1jYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgcGFkZGluZzogMi41cmVtO1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG5cbi5jb2xvcmZ1bC1jYXJkOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xufVxuXG4uY29sb3JmdWwtY2FyZDo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2ZmOWE5ZSAwJSwgI2ZhZDBjNCAxMDAlKTtcbn1cblxuLmZsb2F0aW5nLWVsZW1lbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3BhY2l0eTogMC4xO1xuICB6LWluZGV4OiAwO1xufVxuXG4uZmxvYXRpbmctMSB7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmOWE5ZTtcbiAgdG9wOiAtNTBweDtcbiAgcmlnaHQ6IC01MHB4O1xuICBhbmltYXRpb246IGZsb2F0IDZzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG4uZmxvYXRpbmctMiB7XG4gIHdpZHRoOiAxNTBweDtcbiAgaGVpZ2h0OiAxNTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRmYWNmZTtcbiAgYm90dG9tOiAtNzVweDtcbiAgbGVmdDogLTc1cHg7XG4gIGFuaW1hdGlvbjogZmxvYXQgOHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgZmxvYXQge1xuICAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpOyB9XG4gIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpOyB9XG59XG5cbi8qIEZvcm0gc3RpbGxlcmkgKi9cbi5mb3JtLWxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICM0YTU1Njg7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLmZvcm0tc2VsZWN0LCAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG59XG5cbi5mb3JtLXNlbGVjdDpmb2N1cywgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzQyOTllMTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoNjYsIDE1MywgMjI1LCAwLjI1KTtcbn1cblxuLmJ0bi1jb2xvcmZ1bCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZjlhOWUgMCUsICNmYWQwYzQgMTAwJSk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICBib3gtc2hhZG93OiAwIDRweCAxNXB4IHJnYmEoMjU1LCAxNTQsIDE1OCwgMC4zKTtcbn1cblxuLmJ0bi1jb2xvcmZ1bDpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcbiAgYm94LXNoYWRvdzogMCA3cHggMjBweCByZ2JhKDI1NSwgMTU0LCAxNTgsIDAuNCk7XG59XG5cbi8qIEdlbmVsIGNvbnRhaW5lciAqL1xuLmNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMTIwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCAxNXB4O1xufVxuXG4vKiBOYXZiYXIgYXJ0xLFrIHBvc2l0aW9uOiBzdGlja3kgb2xkdcSfdSBpw6dpbiBib2R5IHBhZGRpbmctdG9wIEdFUkVLTUVaLlxuICAgU3RpY2t5IG5hdmJhciBkb2vDvG1hbiBha8SxxZ/EsW5kYSBrYWzEsXIsIGnDp2VyaWsgb3RvbWF0aWsgYWx0xLFuZGEgYmHFn2xhci4gKi9cblxuLyogRm9ybSBncnVwbGFyxLEgKi9cbi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ09NUEFDVCBTSURFQkFSIFNUWUxFUyAoT3J0YS9Lw7zDp8O8ayBFa3JhbmxhcilcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uY29tcGFjdC1zaWRlYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5jb21wYWN0LWNhcmQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiAxcmVtIDEuMjVyZW07XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLDAsMCwwLjA4KTtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjNmY0MmMxO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uY29tcGFjdC10aXRsZSB7XG4gIGNvbG9yOiAjNmY0MmMxO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDAuOTVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNvbXBhY3QtaXRlbXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMC41cmVtO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmNvbXBhY3QtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogIzQ5NTA1NztcbiAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gIGJhY2tncm91bmQ6ICNmOGY5ZmE7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgZmxleDogMCAxIGF1dG87XG59XG5cbi5jb21wYWN0LWl0ZW0gaSB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbn1cblxuLmNvbXBhY3QtdGV4dCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi8qIE9ydGEgZWtyYW5sYXIgacOnaW4gKDc2OHB4IC0gOTkxcHgpICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAuY29tcGFjdC1zaWRlYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG4gIFxuICAuY29tcGFjdC1jYXJkIHtcbiAgICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiAgfVxuICBcbiAgLmNvbXBhY3QtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxuICBcbiAgLmNvbXBhY3QtaXRlbSB7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIHBhZGRpbmc6IDAuMzVyZW0gMC42NXJlbTtcbiAgfVxuICBcbiAgLyogRm9ybSBrYXJ0xLFuxLEga8O8w6fDvGx0ICovXG4gIC5jb2xvcmZ1bC1jYXJkIHtcbiAgICBwYWRkaW5nOiAycmVtIDIuMjVyZW07XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICB9XG4gIFxuICAvKiBDb250YWluZXIgcGFkZGluZydpIGF6YWx0ICovXG4gIC5jb250YWluZXItZmx1aWQucHgtNCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICBcbiAgLyogRm9ybSBiYcWfbMSxa2xhcsSxbsSxIGvDvMOnw7xsdCAqL1xuICAuY29sb3JmdWwtY2FyZCBoMiB7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cbiAgXG4gIC5jb2xvcmZ1bC1jYXJkIHAge1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIH1cbiAgXG4gIC8qIEZvcm0gZ3J1cGxhcsSxbsSxIGvDvMOnw7xsdCAqL1xuICAuZm9ybS1ncm91cCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC44NXJlbTtcbiAgfVxuICBcbiAgLmZvcm0tbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNHJlbTtcbiAgfVxuICBcbiAgLmZvcm0tc2VsZWN0LCAuZm9ybS1jb250cm9sIHtcbiAgICBwYWRkaW5nOiAwLjY1cmVtO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICB9XG4gIFxuICAvKiBCdXRvbmxhcsSxIGvDvMOnw7xsdCAqL1xuICAuYnRuLWNvbG9yZnVsIHtcbiAgICBwYWRkaW5nOiAwLjY1cmVtIDEuNXJlbTtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgfVxufVxuXG4vKiBLw7zDp8O8ayBla3JhbmxhciBpw6dpbiAoNTc2cHggLSA3NjdweCkgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jb21wYWN0LXNpZGViYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgXG4gIC5jb21wYWN0LWNhcmQge1xuICAgIHBhZGRpbmc6IDFyZW0gMS4yNXJlbTtcbiAgfVxuICBcbiAgLmNvbXBhY3QtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICB9XG4gIFxuICAuY29tcGFjdC1pdGVtIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgcGFkZGluZzogMC4zcmVtIDAuNXJlbTtcbiAgfVxuICBcbiAgLyogRm9ybSBrYXJ0xLFuxLEgZGFoYSBkYSBrw7zDp8O8bHQgKi9cbiAgLmNvbG9yZnVsLWNhcmQge1xuICAgIHBhZGRpbmc6IDEuNXJlbSAxLjc1cmVtO1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gIH1cbiAgXG4gIC8qIENvbnRhaW5lciBwYWRkaW5nJ2kgZGFoYSBkYSBhemFsdCAqL1xuICAuY29udGFpbmVyLWZsdWlkLnB4LTQge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICBcbiAgLyogRm9ybSBiYcWfbMSxa2xhcsSxbsSxIGvDvMOnw7xsdCAqL1xuICAuY29sb3JmdWwtY2FyZCBoMiB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgfVxuICBcbiAgLmNvbG9yZnVsLWNhcmQgcCB7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gIH1cbiAgXG4gIC8qIEZvcm0gZ3J1cGxhcsSxbsSxIGvDvMOnw7xsdCAqL1xuICAuZm9ybS1ncm91cCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgfVxuICBcbiAgLmZvcm0tbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjM1cmVtO1xuICB9XG4gIFxuICAuZm9ybS1zZWxlY3QsIC5mb3JtLWNvbnRyb2wge1xuICAgIHBhZGRpbmc6IDAuNnJlbTtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gIH1cbiAgXG4gIC8qIEJ1dG9ubGFyxLEga8O8w6fDvGx0ICovXG4gIC5idG4tY29sb3JmdWwge1xuICAgIHBhZGRpbmc6IDAuNnJlbSAxLjI1cmVtO1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgfVxufVxuXG4vKiDDh29rIGvDvMOnw7xrIGVrcmFubGFyIGnDp2luIChtYXgtd2lkdGg6IDU3NXB4KSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XG4gIC5jb21wYWN0LXNpZGViYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgXG4gIC5jb21wYWN0LWNhcmQge1xuICAgIHBhZGRpbmc6IDAuODVyZW0gMXJlbTtcbiAgfVxuICBcbiAgLmNvbXBhY3QtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjZyZW07XG4gIH1cbiAgXG4gIC5jb21wYWN0LWl0ZW1zIHtcbiAgICBnYXA6IDAuNHJlbTtcbiAgfVxuICBcbiAgLmNvbXBhY3QtaXRlbSB7XG4gICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgcGFkZGluZzogMC4yNXJlbSAwLjRyZW07XG4gIH1cbiAgXG4gIC5jb21wYWN0LWl0ZW0gaSB7XG4gICAgZm9udC1zaXplOiAwLjdyZW07XG4gIH1cbiAgXG4gIC8qIEZvcm0ga2FydMSxbsSxIGVuIGvDvMOnw7xrIGJveXV0ICovXG4gIC5jb2xvcmZ1bC1jYXJkIHtcbiAgICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xuICB9XG4gIFxuICAvKiBDb250YWluZXIgcGFkZGluZydpIG1pbmltdW0gKi9cbiAgLmNvbnRhaW5lci1mbHVpZC5weC00IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgXG4gIC8qIEZvcm0gYmHFn2zEsWtsYXLEsW7EsSBrw7zDp8O8bHQgKi9cbiAgLmNvbG9yZnVsLWNhcmQgaDIge1xuICAgIGZvbnQtc2l6ZTogMS4zNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjZyZW07XG4gIH1cbiAgXG4gIC5jb2xvcmZ1bC1jYXJkIHAge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cbiAgXG4gIC8qIEZvcm0gZ3J1cGxhcsSxbsSxIGvDvMOnw7xsdCAqL1xuICAuZm9ybS1ncm91cCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC42NXJlbTtcbiAgfVxuICBcbiAgLmZvcm0tbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgfVxuICBcbiAgLmZvcm0tc2VsZWN0LCAuZm9ybS1jb250cm9sIHtcbiAgICBwYWRkaW5nOiAwLjU1cmVtO1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICB9XG4gIFxuICAvKiBCdXRvbmxhcsSxIGvDvMOnw7xsdCAqL1xuICAuYnRuLWNvbG9yZnVsIHtcbiAgICBwYWRkaW5nOiAwLjU1cmVtIDFyZW07XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gIH1cbn1cblxuLyogUmVzdWx0IGNhcmQgKi9cbi5yZXN1bHQtY2FyZCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBwYWRkaW5nOiAycmVtO1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsMCwwLDAuMSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnJlc3VsdC1jYXJkOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDVweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjNGZhY2ZlIDAlLCAjMDBmMmZlIDEwMCUpO1xufVxuXG4ucmVzdWx0LWNhcmQgaDUge1xuICBjb2xvcjogIzMxODJjZTtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ucmVzdWx0LWNhcmQgaDQge1xuICBjb2xvcjogIzMxODJjZTtcbn1cblxuLnJlc3VsdC1jYXJkIHByZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2ZhZmM7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzQyOTllMTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIERBU0hCT0FSRCBQQUdFIFNUWUxFU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5kYXNoYm9hcmQtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzY2N2VlYSAwJSwgIzc2NGJhMiAxMDAlKSAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAycmVtIDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4uZGFzaGJvYXJkLWNhcmQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xufVxuXG4ucHJvZmlsZS1zZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjNjY3ZWVhLCAjNzY0YmEyKTtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICBwYWRkaW5nOiAycmVtO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4uYmlydGgtcmVjb3JkLWNhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgYm94LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsMCwwLDAuMSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzY2N2VlYTtcbn1cblxuLmJpcnRoLXJlY29yZC1jYXJkOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xuICBib3gtc2hhZG93OiAwIDEwcHggMjVweCByZ2JhKDAsMCwwLDAuMTUpO1xufVxuXG4vKiBEYXNoYm9hcmQgYm/FnyBzbG90IC0geWVuaSBoYXJpdGEgZWtsZSBrYXJ0xLEgKi9cbi5iaXJ0aC1yZWNvcmQtY2FyZC5hZGQtbmV3LWNhcmQge1xuICBtaW4taGVpZ2h0OiAyMjBweDtcbiAgYm9yZGVyLWxlZnQ6IDRweCBkYXNoZWQgIzY2N2VlYTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5iaXJ0aC1yZWNvcmQtY2FyZC5hZGQtbmV3LWNhcmQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEwMiwgMTI2LCAyMzQsIDAuMDUpO1xuICBib3JkZXItbGVmdC1jb2xvcjogIzc2NGJhMjtcbn1cblxuLmJ0bi1jYWxjdWxhdGUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICM2NjdlZWEsICM3NjRiYTIpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogOHB4IDIwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5idG4tY2FsY3VsYXRlOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMTAyLCAxMjYsIDIzNCwgMC40KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uYnRuLWxvZ291dCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgI2ZmNmI2YiwgI2VlNWEyNCk7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxMHB4IDI1cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5idG4tbG9nb3V0OmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMjU1LCAxMDcsIDEwNywgMC40KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4ucmVjb3JkLWxpbWl0IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjZmZlY2QyLCAjZmNiNjlmKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLm5vLXJlY29yZHMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjNmM3NTdkO1xuICBwYWRkaW5nOiAzcmVtO1xufVxuXG4uZmxvYXRpbmctaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4zKTtcbiAgYW5pbWF0aW9uOiBmbG9hdCAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBmbG9hdCB7XG4gIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7IH1cbiAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTsgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRU1BSUwgVkVSSUZJQ0FUSU9OIFBBR0UgU1RZTEVTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnZlcmlmaWNhdGlvbi1jYXJkIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBib3gtc2hhZG93OiAwIDIwcHggNDBweCByZ2JhKDAsMCwwLDAuMSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcbn1cblxuLmVtYWlsLWljb24ge1xuICBmb250LXNpemU6IDRyZW07XG4gIGNvbG9yOiAjNjY3ZWVhO1xuICBhbmltYXRpb246IHB1bHNlIDJzIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHB1bHNlIHtcbiAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4xKTsgfVxufVxuXG4uYnRuLWN1c3RvbSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgIzY2N2VlYSwgIzc2NGJhMik7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgcGFkZGluZzogMTJweCAzMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4uYnRuLWN1c3RvbTpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSgxMDIsIDEyNiwgMjM0LCAwLjQpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTE9HSU4gUEFHRSBTVFlMRVNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubG9naW4tY2FyZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgYm94LXNoYWRvdzogMCAyMHB4IDQwcHggcmdiYSgwLDAsMCwwLjEpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMik7XG59XG5cbi5idG4tbG9naW4ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICM0ZmFjZmUsICMwMGYyZmUpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gIHBhZGRpbmc6IDEycHggMzBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLmJ0bi1sb2dpbjpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSg3OSwgMTcyLCAyNTQsIDAuNCk7XG59XG5cbi5wYXNzd29yZC10b2dnbGUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICM0ZmFjZmUsICMwMGYyZmUpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nOiA1cHggMTVweDtcbn1cblxuLmFsZXJ0LXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICM1NmFiMmYsICNhOGU2Y2YpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFJFR0lTVEVSIFBBR0UgU1RZTEVTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnJlZ2lzdGVyLWNhcmQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xufVxuXG4uYnRuLXJlZ2lzdGVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjNjY3ZWVhLCAjNzY0YmEyKTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICBwYWRkaW5nOiAxMnB4IDMwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5idG4tcmVnaXN0ZXI6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJveC1zaGFkb3c6IDAgMTBweCAyMHB4IHJnYmEoMTAyLCAxMjYsIDIzNCwgMC40KTtcbn1cblxuLyogS2F5xLF0IGZvcm11IGFubMSxayBkb8SfcnVsYW1hIGdlcmkgYmlsZGlyaW1pICovXG4ucmVnaXN0ZXItZmllbGQtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5yZWdpc3Rlci1maWVsZC1mZWVkYmFjayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDAuMzVyZW07XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gIG1pbi1oZWlnaHQ6IDEuNHJlbTtcbn1cbi5yZWdpc3Rlci1maWVsZC1mZWVkYmFjayAucmVnaXN0ZXItZmllbGQtaWNvbiB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBmb250LXNpemU6IDFyZW07XG4gIG1hcmdpbi10b3A6IDAuMXJlbTtcbn1cbi5yZWdpc3Rlci1maWVsZC1mZWVkYmFjayAucmVnaXN0ZXItZmllbGQtbWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBsaW5lLWhlaWdodDogMS4zNTtcbn1cbi5yZWdpc3Rlci1maWVsZC1mZWVkYmFjay5pcy1pbnZhbGlkIC5yZWdpc3Rlci1maWVsZC1tZXNzYWdlIHtcbiAgY29sb3I6IHZhcigtLWJzLWRhbmdlciwgI2RjMzU0NSk7XG59XG4ucmVnaXN0ZXItZmllbGQtZmVlZGJhY2suaXMtdmFsaWQgLnJlZ2lzdGVyLWZpZWxkLW1lc3NhZ2Uge1xuICBjb2xvcjogdmFyKC0tYnMtc3VjY2VzcywgIzE5ODc1NCk7XG59XG4ucmVnaXN0ZXItZmllbGQtZmVlZGJhY2sgLnJlZ2lzdGVyLWVtYWlsLWZvcmdvdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgb3BhY2l0eTogMC45O1xufVxuLnJlZ2lzdGVyLWZpZWxkLWZlZWRiYWNrIC5yZWdpc3Rlci1lbWFpbC1mb3Jnb3QgYSB7XG4gIGNvbG9yOiAjNjY3ZWVhO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnN0YXItZGVjb3JhdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4zKTtcbiAgYW5pbWF0aW9uOiB0d2lua2xlIDJzIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHR3aW5rbGUge1xuICAwJSwgMTAwJSB7IG9wYWNpdHk6IDAuMzsgfVxuICA1MCUgeyBvcGFjaXR5OiAwLjg7IH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFJFU0VORCBWRVJJRklDQVRJT04gUEFHRSBTVFlMRVNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucmVzZW5kLWNhcmQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xufVxuXG4uYnRuLXJlc2VuZCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgIzY2N2VlYSwgIzc2NGJhMik7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgcGFkZGluZzogMTJweCAzMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4uYnRuLXJlc2VuZDpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSgxMDIsIDEyNiwgMjM0LCAwLjQpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgU0hBUkVEIEdSQURJRU5UICYgVVRJTElUWSBTVFlMRVNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udGl0bGUtZ3JhZGllbnQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICM2NjdlZWEsICM3NjRiYTIpO1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG59XG5cbi8qIExvZ2luIHNheWZhc8SxIGnDp2luIG1hdmkgZ3JhZGllbnQgKi9cbmJvZHkubG9naW4tcGFnZSAudGl0bGUtZ3JhZGllbnQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICM0ZmFjZmUsICMwMGYyZmUpO1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG59XG5cbi8qIEdlbmVsIGZvcm0ga29udHJvbCBzdGlsbGVyaSAqL1xuYm9keTpub3QoLmluZGV4LWJvZHkpIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjZTllY2VmO1xuICBwYWRkaW5nOiAxMnB4IDE1cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbmJvZHk6bm90KC5pbmRleC1ib2R5KSAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjNjY3ZWVhO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgxMDIsIDEyNiwgMjM0LCAwLjI1KTtcbn1cblxuYm9keS5sb2dpbi1wYWdlIC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM0ZmFjZmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDc5LCAxNzIsIDI1NCwgMC4yNSk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBWRURJQyBDSEFSVCBQQUdFIFJFU1BPTlNJVkUgU1RZTEVTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBCw7x5w7xrIGVrcmFubGFyZGEgaGFyaXRhecSxIHPEsW7EsXJsYSAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5jaGFydC1yZXNwb25zaXZlIHtcbiAgICBtYXgtd2lkdGg6IDYwMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogVGFibGV0IHZlIG1vYmlsZGUgdMO8bSDDtsSfZWxlcmkgaGl6YWxhICovXG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLyogSGFyaXRhIGNvbnRhaW5lcifEsSAqL1xuICAjY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIFxuICAvKiBIYXJpdGEgc8O8dHVudSAtIG1lcmtlemUgaGl6YWxhICovXG4gIC5jb2wtbGctOC5tYi00IHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwIDE1cHggIWltcG9ydGFudDtcbiAgfVxuICBcbiAgLyogS2FydCBzw7x0dW51IC0gbWVya2V6ZSBoaXphbGEgKi9cbiAgLmNvbC1sZy00Lm1iLTQge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgMTVweCAhaW1wb3J0YW50O1xuICB9XG4gIFxuICAvKiBLYXJ0bGFyxLEgY29udGFpbmVyIGdlbmnFn2xpxJ9pIGlsZSBzxLFuxLFybGEgKi9cbiAgLmNvbC1sZy00Lm1iLTQgLmNhcmQge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgXG4gIC8qIENoYXJ0IHR5cGUgc2XDp2ljaSBrYXJ0xLEgZGEgYXluxLEgZ2VuacWfbGlrdGUgKi9cbiAgLmNvbC1tZC02IC5jYXJkIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgU09OVUMgUEFHRSBTVFlMRVMgKFJlc3VsdHMgUGFnZSlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucmVzdWx0cy1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgIG1hcmdpbjogMTIwcHggYXV0byA2MHB4O1xuICAgIHBhZGRpbmc6IDAgMjBweDtcbn1cblxuLnNlY3Rpb24tYm94IHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLDAsMCwwLjEpO1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnNlY3Rpb24taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNjY3ZWVhIDAlLCAjNzY0YmEyIDEwMCUpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAyMHB4IDMwcHg7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xufVxuXG4uc2VjdGlvbi1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAzMHB4O1xufVxuXG4uaW5mby1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjUwcHgsIDFmcikpO1xuICAgIGdhcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgMyBTw5xUVU5MVSBEw5xaRU46IFNvbCBTaWRlYmFyIHwgSGFyaXRhIHwgU2HEnyBTaWRlYmFyXG4gICBTaWRlYmFyJ2xhciBoYXJpdGEgecO8a3Nla2xpxJ9pbmRlLCBrdXR1bGFyIGXFn2l0IGLDtmzDvG5tw7zFn1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogQW5hIHJvdyAtIHNpZGViYXInbGFyxLFuIGhhcml0YSBpbGUgYXluxLEgecO8a3Nla2xpa3RlIG9sbWFzxLEgacOnaW4gKi9cbi5jaGFydC1zaWRlYmFyLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cblxuLyogRGVza3RvcDogU2lkZWJhcidsYXIgdGFtIHnDvGtzZWtsaWt0ZSBnw7Zyw7xuc8O8biAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICAgLmNoYXJ0LXNpZGViYXItcm93IHtcbiAgICAgICAgbWluLWhlaWdodDogNTIwcHg7XG4gICAgfVxuICAgIFxuICAgIC5jaGFydC1zaWRlYmFyLXJvdyA+IC5jb2wtbGctMyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAuY2hhcnQtc2lkZWJhci1yb3cgPiAuY29sLWxnLTYge1xuICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8qIFNpZGViYXIgd3JhcHBlciAtIHRhbSB5w7xrc2VrbGnEn2UgdXphbnPEsW4gKi9cbi5zaWRlYmFyLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLyogU2lkZWJhciBiYcWfbMSxxJ/EsSAqL1xuLnNpZGViYXItd3JhcHBlciA+IGg1IHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cblxuLyogU2lkZWJhciBrdXR1bGFyxLEgY29udGFpbmVyJ8SxIC0gZcWfaXQgecO8a3Nla2xpa3RlIGLDtmzDvG5zw7xuICovXG4uc2lkZWJhci1ib3hlcyB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLyogSGVyIGJpciBrdXR1IGxpbmtpIC0gZcWfaXQgYWxhbiBrYXBsYXPEsW4sIGJvxZ9sdWsgeW9rICovXG4uc2lkZWJhci1ib3hlcyA+IGEge1xuICAgIGZsZXg6IDEgMSAwICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogMCAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogS3V0dSBpw6dlcmnEn2kgLSBlxZ9pdCB5w7xrc2VrbGlrLCB0YcWfYW4gacOnZXJpayBnaXpsaSAqL1xuLnNpZGViYXItYm94IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbjogZmlsdGVyIDAuMnM7XG59XG4uc2lkZWJhci1ib3g6aG92ZXIgeyBmaWx0ZXI6IGJyaWdodG5lc3MoMC45Nyk7IH1cblxuLyogS3V0dSBpw6dpbmRla2kgbWV0aW4gc2F0xLFybGFyxLEgLSBhbHQgc2F0xLFyYSBrxLFyxLFsc8SxbiAqL1xuLnNpZGViYXItYm94ID4gZGl2IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi8qIEJhxZ9sxLFrIChpbGsgc2F0xLFyKSAtIHV6dW4gbWV0aW5sZXIga2VzaWxzaW4sIMO8c3Qgw7xzdGUgYmlubWUgw7ZubGVuc2luICovXG4uc2lkZWJhci1ib3ggPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLyogOTkycHgtMTE5OXB4IGFyYXPEsTogU2lkZWJhciBmb250bGFyxLEga8O8w6fDvGx0LCBwcmV2aWV3IGdpemxlICovXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAvKiBTaWRlYmFyIGJhxZ9sxLHEn8SxIGvDvMOnw7xsdCAqL1xuICAgIC5zaWRlYmFyLXdyYXBwZXIgPiBoNSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA2cHg7XG4gICAgfVxuICAgIFxuICAgIC8qIEt1dHUgcGFkZGluZydpIGF6YWx0ICovXG4gICAgLnNpZGViYXItYm94IHtcbiAgICAgICAgcGFkZGluZzogNXB4IDhweDtcbiAgICB9XG4gICAgXG4gICAgLyogQmHFn2zEsWsgZm9udHVudSBrw7zDp8O8bHQgKGlsayBkaXYgLSB0aXRsZSkgKi9cbiAgICAuc2lkZWJhci1ib3ggPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLyogQWx0IHlhesSxIGZvbnR1bnUga8O8w6fDvGx0IChpa2luY2kgZGl2IC0gc3VidGl0bGUvbGluZTEpICovXG4gICAgLnNpZGViYXItYm94ID4gZGl2Om50aC1jaGlsZCgyKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC42NXJlbSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAycHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLyogw5zDp8O8bmPDvCBzYXTEsXLEsSAobGluZTIpIGvDvMOnw7xsdCAqL1xuICAgIC5zaWRlYmFyLWJveCA+IGRpdjpudGgtY2hpbGQoMykge1xuICAgICAgICBmb250LXNpemU6IDAuNnJlbSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAxcHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLyogUHJldmlldyB5YXrEsWxhcsSxbsSxICg0LiBzYXTEsXIpIGdpemxlIC0gc29sIHNpZGViYXIgKi9cbiAgICAuc2lkZWJhci1ib3ggPiBkaXY6bnRoLWNoaWxkKDQpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLmluZm8tY2FyZCB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjlmYTtcbiAgICBwYWRkaW5nOiAxNXB4IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzY2N2VlYTtcbn1cblxuLmluZm8tbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBjb2xvcjogIzY2NjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLmluZm8tdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5kYXNoYS10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4uZGFzaGEtdGFibGUgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM0ZmFjZmUgMCUsICMwMGYyZmUgMTAwJSk7XG4gICAgY29sb3I6IHdoaXRlO1xufVxuXG4uZGFzaGEtdGFibGUgdGgge1xuICAgIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xufVxuXG4uZGFzaGEtdGFibGUgdGg6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDhweCAwIDAgMDtcbn1cblxuLmRhc2hhLXRhYmxlIHRoOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgOHB4IDAgMDtcbn1cblxuLmRhc2hhLXRhYmxlIHRib2R5IHRyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U5ZWNlZjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7XG59XG5cbi5kYXNoYS10YWJsZSB0Ym9keSB0cjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjlmYTtcbn1cblxuLmRhc2hhLXRhYmxlIHRib2R5IHRyLmN1cnJlbnQtZGFzaGEge1xuICAgIGJhY2tncm91bmQ6ICNmZmYzY2Q7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmRhc2hhLXRhYmxlIHRib2R5IHRyLmN1cnJlbnQtZGFzaGEgdGQge1xuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgI2ZmYzEwNztcbn1cblxuLmRhc2hhLXRhYmxlIHRib2R5IHRyLmNsaWNrYWJsZS1yb3cge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbn1cblxuLmRhc2hhLXRhYmxlIHRib2R5IHRyLmNsaWNrYWJsZS1yb3c6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNlM2YyZmQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7XG59XG5cbi5kYXNoYS10YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMTVweCAyMHB4O1xuICAgIGNvbG9yOiAjNDk1MDU3O1xufVxuXG4ucGxhbmV0LW5hbWUge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICM2NjdlZWE7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xufVxuXG4uZHVyYXRpb24tYmFkZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAjZTdmM2ZmO1xuICAgIGNvbG9yOiAjMDA2NmNjO1xuICAgIHBhZGRpbmc6IDRweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLnBsYWNlaG9sZGVyLXNlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6ICNmOGY5ZmE7XG4gICAgcGFkZGluZzogNDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICM2Yzc1N2Q7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMnB4IGRhc2hlZCAjZGVlMmU2O1xufVxuXG4ucGxhY2Vob2xkZXItc2VjdGlvbiBpIHtcbiAgICBmb250LXNpemU6IDNyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBvcGFjaXR5OiAwLjU7XG59XG5cbi5iYWNrLWJ1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIE5lZWNoYSBCaGFuZ2EgVGFibGUgU3R5bGVzICovXG4ubmVlY2hhLWJoYW5nYS10YWJsZSB7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbn1cblxuLm5lZWNoYS1iaGFuZ2EtdGFibGUgaDIge1xuICAgIGNvbG9yOiAjNjY3ZWVhO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubmVlY2hhLWJoYW5nYS10YWJsZSAudGFibGUge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuXG4ubmVlY2hhLWJoYW5nYS10YWJsZSAudGFibGUgdGgge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmMDkzZmIgMCUsICNmNTU3NmMgMTAwJSk7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xufVxuXG4ubmVlY2hhLWJoYW5nYS10YWJsZSAudGFibGUgdGQge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubmVlY2hhLWJoYW5nYS10YWJsZSAudGFibGUtZGFuZ2VyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlNmU2ICFpbXBvcnRhbnQ7XG59XG5cbi5uZWVjaGEtYmhhbmdhLXRhYmxlIC50YWJsZS13YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOGUxICFpbXBvcnRhbnQ7XG59XG5cbi5uZWVjaGEtYmhhbmdhLXRhYmxlIHVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbn1cblxuLyogUGxhbmV0YXJ5IEFuYWx5c2lzIFRhYmxlIFN0eWxlcyAqL1xuLnBsYW5ldGFyeS1hbmFseXNpcy10YWJsZSB7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbn1cblxuLnBsYW5ldGFyeS1hbmFseXNpcy10YWJsZSBoMiB7XG4gICAgY29sb3I6ICM2NjdlZWE7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5wbGFuZXRhcnktYW5hbHlzaXMtdGFibGUgLnRhYmxlIHtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbn1cblxuLnBsYW5ldGFyeS1hbmFseXNpcy10YWJsZSAudGFibGUgdGgge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM2NjdlZWEgMCUsICM3NjRiYTIgMTAwJSk7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5wbGFuZXRhcnktYW5hbHlzaXMtdGFibGUgLnRhYmxlIHRkIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmRpdmlzaW9uYWwtYW5hbHlzaXMtdGFibGUge1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG59XG5cbi8qIFJlc3BvbnNpdmUgU3R5bGVzIGZvciBTb251YyBQYWdlICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAvKiBSZXN1bHRzIGNvbnRhaW5lciAtIG1vYmlsZGUgdGFtIGdlbmnFn2xpayAqL1xuICAgIC5yZXN1bHRzLWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gICAgXG4gICAgLmRhc2hhLXRhYmxlIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIH1cbiAgICBcbiAgICAuZGFzaGEtdGFibGUgdGgsXG4gICAgLmRhc2hhLXRhYmxlIHRkIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDZweDtcbiAgICB9XG4gICAgXG4gICAgLyogTW9iaWxkZSBTw7xyZSBzw7x0dW51bnUgKDQuIHPDvHR1bikgZ2l6bGUgKi9cbiAgICAuZGFzaGEtdGFibGUgdGg6bnRoLWNoaWxkKDQpLFxuICAgIC5kYXNoYS10YWJsZSB0ZDpudGgtY2hpbGQoNCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBcbiAgICAvKiBLYWxhbiAzIHPDvHR1biBpw6dpbiBnZW5pxZ9saWsgKi9cbiAgICAuZGFzaGEtdGFibGUgdGg6bnRoLWNoaWxkKDEpLFxuICAgIC5kYXNoYS10YWJsZSB0ZDpudGgtY2hpbGQoMSkge1xuICAgICAgICB3aWR0aDogMzAlO1xuICAgIH1cbiAgICAuZGFzaGEtdGFibGUgdGg6bnRoLWNoaWxkKDIpLFxuICAgIC5kYXNoYS10YWJsZSB0ZDpudGgtY2hpbGQoMiksXG4gICAgLmRhc2hhLXRhYmxlIHRoOm50aC1jaGlsZCgzKSxcbiAgICAuZGFzaGEtdGFibGUgdGQ6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgd2lkdGg6IDM1JTtcbiAgICB9XG4gICAgXG4gICAgLyogRGFzaGEgeW9ydW0ga2FydGxhcsSxIC0gbW9iaWxkZSB0YW0gZ2VuacWfbGlrICovXG4gICAgLnJlc3VsdHMtY29udGFpbmVyIC5jYXJkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTVweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5yZXN1bHRzLWNvbnRhaW5lciAuY2FyZC1ib2R5IHtcbiAgICAgICAgcGFkZGluZzogMTJweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAucmVzdWx0cy1jb250YWluZXIgLmNhcmQtYm9keSAucC00LFxuICAgIC5yZXN1bHRzLWNvbnRhaW5lciAuY2FyZC1ib2R5ID4gZGl2W3N0eWxlKj1cInBhZGRpbmdcIl0ge1xuICAgICAgICBwYWRkaW5nOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAtNXB4O1xuICAgIH1cbiAgICBcbiAgICAucmVzdWx0cy1jb250YWluZXIgLmNhcmQtaGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogMTJweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAucmVzdWx0cy1jb250YWluZXIgLmNhcmQtaGVhZGVyIGg0LFxuICAgIC5yZXN1bHRzLWNvbnRhaW5lciAuY2FyZC1oZWFkZXIgaDUge1xuICAgICAgICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICB9XG4gICAgXG4gICAgLnJlc3VsdHMtY29udGFpbmVyIC5jYXJkLWJvZHkgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbSAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogMS43ICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLyogU2VjdGlvbiBib3ggLSBtb2JpbGRlIHRhbSBnZW5pxZ9saWsgKi9cbiAgICAuc2VjdGlvbi1ib3gge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLnNlY3Rpb24tY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDEycHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLyogQW50YXJkYXNoYSB0YWJsb3N1IChCb290c3RyYXAgdGFibGUpIC0gRHVydW0gc8O8dHVudW51IGdpemxlICovXG4gICAgLnJlc3VsdHMtY29udGFpbmVyIC50YWJsZS1yZXNwb25zaXZlIC50YWJsZSB0aDpudGgtY2hpbGQoNCksXG4gICAgLnJlc3VsdHMtY29udGFpbmVyIC50YWJsZS1yZXNwb25zaXZlIC50YWJsZSB0ZDpudGgtY2hpbGQoNCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBcbiAgICAucmVzdWx0cy1jb250YWluZXIgLnRhYmxlLXJlc3BvbnNpdmUgLnRhYmxlIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICB9XG4gICAgXG4gICAgLnJlc3VsdHMtY29udGFpbmVyIC50YWJsZS1yZXNwb25zaXZlIC50YWJsZSB0aCxcbiAgICAucmVzdWx0cy1jb250YWluZXIgLnRhYmxlLXJlc3BvbnNpdmUgLnRhYmxlIHRkIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDZweDtcbiAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIH1cbiAgICBcbiAgICAvKiBLYWxhbiAzIHPDvHR1biBlxZ9pdCBnZW5pxZ9saWsgKi9cbiAgICAucmVzdWx0cy1jb250YWluZXIgLnRhYmxlLXJlc3BvbnNpdmUgLnRhYmxlIHRoOm50aC1jaGlsZCgxKSxcbiAgICAucmVzdWx0cy1jb250YWluZXIgLnRhYmxlLXJlc3BvbnNpdmUgLnRhYmxlIHRkOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIHdpZHRoOiAyOCU7XG4gICAgfVxuICAgIC5yZXN1bHRzLWNvbnRhaW5lciAudGFibGUtcmVzcG9uc2l2ZSAudGFibGUgdGg6bnRoLWNoaWxkKDIpLFxuICAgIC5yZXN1bHRzLWNvbnRhaW5lciAudGFibGUtcmVzcG9uc2l2ZSAudGFibGUgdGQ6bnRoLWNoaWxkKDIpLFxuICAgIC5yZXN1bHRzLWNvbnRhaW5lciAudGFibGUtcmVzcG9uc2l2ZSAudGFibGUgdGg6bnRoLWNoaWxkKDMpLFxuICAgIC5yZXN1bHRzLWNvbnRhaW5lciAudGFibGUtcmVzcG9uc2l2ZSAudGFibGUgdGQ6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgd2lkdGg6IDM2JTtcbiAgICB9XG4gICAgXG4gICAgLyogTW9iaWxkZSB5YXRheSB0YcWfbWF5xLEgw7ZubGUgLSBzYXlmYWxhciDDvHN0IMO8c3RlIGJpbm1lc2luICovXG4gICAgLm1lbnUtcGFnZS1jb250YWluZXIge1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgfVxuICAgIFxuICAgIC8qIFRyYW5zaXQgdmUgZGnEn2VyIHNheWZhbGFyIC0gbW9iaWxkZSBjb250YWluZXIgdGFtIGdlbmnFn2xpayAqL1xuICAgIC5tZW51LXBhZ2UtY29udGFpbmVyIC5jb250YWluZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC8qIFRyYW5zaXQgc2F5ZmFzxLEgLSBtb2JpbGRlIGthcnRsYXLEsSBnZW5pxZ9sZXQgKi9cbiAgICAubWVudS1wYWdlLWNvbnRhaW5lciAuY2FyZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLm1lbnUtcGFnZS1jb250YWluZXIgLmNhcmQtYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDEycHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLm1lbnUtcGFnZS1jb250YWluZXIgLmNhcmQtaGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogMTJweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAubWVudS1wYWdlLWNvbnRhaW5lciAuY2FyZC1oZWFkZXIgaDUge1xuICAgICAgICBmb250LXNpemU6IDAuOTVyZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLm1lbnUtcGFnZS1jb250YWluZXIgLmNhcmQtYm9keSBwLFxuICAgIC5tZW51LXBhZ2UtY29udGFpbmVyIC5jYXJkLWJvZHkgbGkge1xuICAgICAgICBmb250LXNpemU6IDAuOTJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjUgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAubWVudS1wYWdlLWNvbnRhaW5lciAuY2FyZC1ib2R5IHBbc3R5bGUqPVwicGFkZGluZzogMTJweFwiXSxcbiAgICAubWVudS1wYWdlLWNvbnRhaW5lciAuY2FyZC1ib2R5IHBbc3R5bGUqPVwicGFkZGluZzoxMnB4XCJdIHtcbiAgICAgICAgcGFkZGluZzogMTBweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLm1lbnUtcGFnZS1jb250YWluZXIgLmNhcmQtYm9keSBoNiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5tZW51LXBhZ2UtY29udGFpbmVyIC5jYXJkLWJvZHkgdWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLm1vYmlsZS1mdWxsLXdpZHRoIC5jYXJkLWJvZHkgdWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLyogUGFuY2hhbmcgc2F5ZmFzxLEgLSBtb2JpbGRlIGthcnRsYXLEsSBnZW5pxZ9sZXQgKi9cbiAgICAucGFuY2hhbmctY2FyZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAucGFuY2hhbmctY2FyZC1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE1cHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLnBhbmNoYW5nLWNhcmQtaGVhZGVyIGg0IHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5wYW5jaGFuZy1jYXJkLWhlYWRlciBwIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5wYW5jaGFuZy1jYXJkLWJvZHkge1xuICAgICAgICBwYWRkaW5nOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5wYW5jaGFuZy1jYXJkLWJvZHkgLnAtNCB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLnBhbmNoYW5nLWNhcmQtYm9keSBwIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjlyZW0gIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNiAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5zZWN0aW9uLWhlYWRlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDIwcHg7XG4gICAgfVxuICAgIFxuICAgIC5wbGFuZXRhcnktYW5hbHlzaXMtdGFibGUgLnRhYmxlIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIH1cbiAgICBcbiAgICAucGxhbmV0YXJ5LWFuYWx5c2lzLXRhYmxlIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgfVxuICAgIFxuICAgIC5uZWVjaGEtYmhhbmdhLXRhYmxlIC50YWJsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICB9XG4gICAgXG4gICAgLm5lZWNoYS1iaGFuZ2EtdGFibGUgaDIge1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICB9XG4gICAgXG4gICAgLm5lZWNoYS1iaGFuZ2EtdGFibGUgLnRhYmxlIHRoIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgICAgIHBhZGRpbmc6IDhweCA0cHg7XG4gICAgfVxuICAgIFxuICAgIC5uZWVjaGEtYmhhbmdhLXRhYmxlIC50YWJsZSB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IDhweCA0cHg7XG4gICAgfVxufSJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/