academia/index.html

1483 lines
643 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Academia - Documentación</title>
<meta name="theme-color" content="#000000" media="(prefers-color-scheme: dark)">
<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)">
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<style>
/* ═══════════════════════════════════════════════════════════
APPLE DESIGN SYSTEM - Inspired by apple.com & developer.apple.com
═══════════════════════════════════════════════════════════ */
/* ─── Design Tokens ─── */
:root {
/* Typography Scale (Apple's SF Pro) */
--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif;
--font-mono: "SF Mono", ui-monospace, Menlo, Monaco, "Cascadia Code", monospace;
/* Spacing (8pt grid) */
--space-1: 4px;
--space-2: 8px;
--space-3: 12px;
--space-4: 16px;
--space-5: 20px;
--space-6: 24px;
--space-8: 32px;
--space-10: 40px;
--space-12: 48px;
--space-16: 64px;
--space-20: 80px;
/* Radius (Apple's continuous corners) */
--radius-sm: 8px;
--radius-md: 12px;
--radius-lg: 18px;
--radius-xl: 22px;
/* Transitions (Apple's spring-like easing) */
--ease-out: cubic-bezier(0.25, 0.46, 0.45, 0.94);
--ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.1);
--duration-fast: 0.15s;
--duration-normal: 0.25s;
--duration-slow: 0.4s;
/* Layout */
--sidebar-width: 260px;
--header-height: 48px;
--content-max-width: 780px;
/* Light Mode Colors (Apple semantic) */
--color-bg: #ffffff;
--color-bg-secondary: #f5f5f7;
--color-bg-tertiary: #fbfbfd;
--color-bg-elevated: #ffffff;
--color-surface: rgba(255, 255, 255, 0.72);
--color-text: #1d1d1f;
--color-text-secondary: #86868b;
--color-text-tertiary: #6e6e73;
--color-accent: #0071e3;
--color-accent-hover: #0077ed;
--color-border: rgba(0, 0, 0, 0.08);
--color-border-strong: rgba(0, 0, 0, 0.12);
--color-separator: rgba(60, 60, 67, 0.12);
--color-fill: rgba(120, 120, 128, 0.08);
--color-fill-hover: rgba(120, 120, 128, 0.12);
--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06);
--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.04);
--shadow-lg: 0 8px 28px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.06);
--shadow-float: 0 22px 70px 4px rgba(0, 0, 0, 0.15);
}
@media (prefers-color-scheme: dark) {
:root {
--color-bg: #000000;
--color-bg-secondary: #1c1c1e;
--color-bg-tertiary: #2c2c2e;
--color-bg-elevated: #1c1c1e;
--color-surface: rgba(28, 28, 30, 0.72);
--color-text: #f5f5f7;
--color-text-secondary: #98989d;
--color-text-tertiary: #8e8e93;
--color-accent: #2997ff;
--color-accent-hover: #40a9ff;
--color-border: rgba(255, 255, 255, 0.08);
--color-border-strong: rgba(255, 255, 255, 0.12);
--color-separator: rgba(84, 84, 88, 0.65);
--color-fill: rgba(120, 120, 128, 0.24);
--color-fill-hover: rgba(120, 120, 128, 0.32);
--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4);
--shadow-lg: 0 8px 28px rgba(0, 0, 0, 0.5);
--shadow-float: 0 22px 70px 4px rgba(0, 0, 0, 0.6);
}
}
/* ─── Reset & Base ─── */
*, *::before, *::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
font-size: 17px;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
scroll-behavior: smooth;
}
body {
font-family: var(--font-family);
background: var(--color-bg);
color: var(--color-text);
line-height: 1.47059;
letter-spacing: -0.022em;
overflow-x: hidden;
}
/* ─── Header (Apple Nav Bar) ─── */
.header {
position: fixed;
top: 0;
left: 0;
right: 0;
height: var(--header-height);
background: var(--color-surface);
backdrop-filter: saturate(180%) blur(20px);
-webkit-backdrop-filter: saturate(180%) blur(20px);
border-bottom: 0.5px solid var(--color-separator);
z-index: 1000;
display: flex;
align-items: center;
padding: 0 var(--space-5);
gap: var(--space-3);
}
.header-logo {
display: flex;
align-items: center;
gap: var(--space-2);
}
.header-logo svg {
width: 20px;
height: 20px;
fill: var(--color-accent);
}
.header-title {
font-size: 17px;
font-weight: 600;
letter-spacing: -0.022em;
color: var(--color-text);
}
.header-divider {
width: 1px;
height: 20px;
background: var(--color-separator);
margin: 0 var(--space-2);
}
.header-subtitle {
font-size: 13px;
font-weight: 400;
color: var(--color-text-secondary);
letter-spacing: -0.008em;
}
/* ─── Layout ─── */
.layout {
display: flex;
min-height: 100vh;
padding-top: var(--header-height);
}
/* ─── Sidebar (Apple Developer Docs style) ─── */
.sidebar {
width: var(--sidebar-width);
background: var(--color-bg-secondary);
border-right: 0.5px solid var(--color-separator);
height: calc(100vh - var(--header-height));
position: fixed;
left: 0;
top: var(--header-height);
overflow-y: auto;
overflow-x: hidden;
padding: var(--space-4) 0;
}
.sidebar::-webkit-scrollbar {
width: 8px;
}
.sidebar::-webkit-scrollbar-track {
background: transparent;
}
.sidebar::-webkit-scrollbar-thumb {
background: var(--color-fill);
border-radius: 4px;
border: 2px solid var(--color-bg-secondary);
}
.sidebar::-webkit-scrollbar-thumb:hover {
background: var(--color-fill-hover);
}
/* Search Box */
.search-wrap {
padding: 0 var(--space-4) var(--space-4);
}
.search-box {
position: relative;
}
.search-box input {
width: 100%;
height: 36px;
padding: 0 var(--space-3) 0 36px;
background: var(--color-fill);
border: none;
border-radius: var(--radius-sm);
font-size: 15px;
font-family: var(--font-family);
color: var(--color-text);
transition: background var(--duration-fast) var(--ease-out),
box-shadow var(--duration-fast) var(--ease-out);
}
.search-box input::placeholder {
color: var(--color-text-tertiary);
}
.search-box input:focus {
outline: none;
background: var(--color-bg);
box-shadow: 0 0 0 4px rgba(0, 113, 227, 0.24);
}
.search-box::before {
content: '';
position: absolute;
left: 12px;
top: 50%;
transform: translateY(-50%);
width: 15px;
height: 15px;
background: var(--color-text-tertiary);
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z'/%3E%3C/svg%3E") center/contain no-repeat;
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z'/%3E%3C/svg%3E") center/contain no-repeat;
}
/* Navigation */
.nav-group {
margin-bottom: var(--space-2);
}
.nav-group-title {
display: flex;
align-items: center;
gap: var(--space-2);
padding: var(--space-2) var(--space-4);
font-size: 12px;
font-weight: 600;
color: var(--color-text-secondary);
text-transform: uppercase;
letter-spacing: 0.04em;
cursor: pointer;
user-select: none;
transition: color var(--duration-fast) var(--ease-out);
}
.nav-group-title:hover {
color: var(--color-text);
}
.nav-group-title .chevron {
width: 12px;
height: 12px;
transition: transform var(--duration-normal) var(--ease-spring);
opacity: 0.5;
}
.nav-group.open .nav-group-title .chevron {
transform: rotate(90deg);
}
.nav-list {
display: none;
padding: var(--space-1) var(--space-2);
}
.nav-group.open .nav-list {
display: block;
}
.nav-item {
display: block;
padding: var(--space-2) var(--space-3);
margin: 1px 0;
font-size: 13px;
font-weight: 400;
color: var(--color-text-secondary);
text-decoration: none;
border-radius: var(--radius-sm);
cursor: pointer;
transition: all var(--duration-fast) var(--ease-out);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.nav-item:hover {
background: var(--color-fill);
color: var(--color-text);
}
.nav-item.active {
background: var(--color-accent);
color: white;
font-weight: 500;
}
/* ─── Main Content ─── */
.main {
flex: 1;
margin-left: var(--sidebar-width);
min-height: calc(100vh - var(--header-height));
}
.content-wrapper {
max-width: var(--content-max-width);
margin: 0 auto;
padding: var(--space-12) var(--space-8) var(--space-20);
}
/* ─── Typography (Apple Style) ─── */
.content h1 {
font-size: 40px;
line-height: 1.1;
font-weight: 700;
letter-spacing: -0.015em;
color: var(--color-text);
margin: 0 0 var(--space-6);
}
.content h2 {
font-size: 28px;
line-height: 1.14286;
font-weight: 600;
letter-spacing: 0.007em;
color: var(--color-text);
margin: var(--space-12) 0 var(--space-4);
padding-top: var(--space-4);
}
.content h3 {
font-size: 21px;
line-height: 1.19048;
font-weight: 600;
letter-spacing: 0.011em;
color: var(--color-text);
margin: var(--space-8) 0 var(--space-3);
}
.content h4 {
font-size: 17px;
line-height: 1.23536;
font-weight: 600;
letter-spacing: -0.022em;
color: var(--color-text-secondary);
margin: var(--space-6) 0 var(--space-2);
}
.content p {
font-size: 17px;
line-height: 1.52941;
color: var(--color-text-tertiary);
margin: var(--space-4) 0;
}
.content strong {
font-weight: 600;
color: var(--color-text);
}
.content a {
color: var(--color-accent);
text-decoration: none;
transition: opacity var(--duration-fast) var(--ease-out);
}
.content a:hover {
text-decoration: underline;
text-underline-offset: 2px;
}
/* Lists */
.content ul, .content ol {
margin: var(--space-4) 0;
padding-left: var(--space-6);
}
.content li {
font-size: 17px;
line-height: 1.52941;
color: var(--color-text-tertiary);
margin: var(--space-2) 0;
}
.content li::marker {
color: var(--color-accent);
}
/* Code (Apple Developer style) */
.content code {
font-family: var(--font-mono);
font-size: 0.88em;
background: var(--color-fill);
padding: 2px 6px;
border-radius: 4px;
color: var(--color-text);
}
.content pre {
background: var(--color-bg-secondary);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
padding: var(--space-4) var(--space-5);
overflow-x: auto;
margin: var(--space-5) 0;
}
.content pre code {
background: none;
padding: 0;
font-size: 14px;
line-height: 1.6;
color: var(--color-text);
}
/* Blockquote (Apple callout style) */
.content blockquote {
background: linear-gradient(135deg, rgba(0, 113, 227, 0.08) 0%, rgba(88, 86, 214, 0.08) 100%);
border-left: 4px solid var(--color-accent);
border-radius: 0 var(--radius-md) var(--radius-md) 0;
padding: var(--space-4) var(--space-5);
margin: var(--space-5) 0;
}
.content blockquote p {
margin: 0;
color: var(--color-text-secondary);
font-style: normal;
}
/* Tables (Apple clean style) */
.content table {
width: 100%;
border-collapse: separate;
border-spacing: 0;
margin: var(--space-5) 0;
font-size: 15px;
border-radius: var(--radius-md);
overflow: hidden;
border: 1px solid var(--color-border);
}
.content th {
background: var(--color-bg-secondary);
font-weight: 600;
color: var(--color-text);
text-align: left;
padding: var(--space-3) var(--space-4);
border-bottom: 1px solid var(--color-border);
}
.content td {
padding: var(--space-3) var(--space-4);
color: var(--color-text-tertiary);
border-bottom: 1px solid var(--color-border);
}
.content tr:last-child td {
border-bottom: none;
}
.content tbody tr:hover {
background: var(--color-fill);
}
/* Horizontal Rule */
.content hr {
border: none;
height: 1px;
background: var(--color-separator);
margin: var(--space-10) 0;
}
/* ─── Images & Diagrams (Apple Gallery style) ─── */
.content img {
display: block;
max-width: 100%;
height: auto;
margin: var(--space-6) auto;
border-radius: var(--radius-lg);
box-shadow: var(--shadow-md);
background: var(--color-bg);
}
.diagram-card {
background: var(--color-bg-elevated);
border: 1px solid var(--color-border);
border-radius: var(--radius-xl);
padding: var(--space-6);
margin: var(--space-6) 0;
box-shadow: var(--shadow-sm);
transition: box-shadow var(--duration-normal) var(--ease-out),
transform var(--duration-normal) var(--ease-out);
}
.diagram-card:hover {
box-shadow: var(--shadow-lg);
transform: translateY(-2px);
}
.diagram-card img {
margin: 0;
border-radius: var(--radius-md);
box-shadow: none;
width: 100%;
}
.diagram-title {
font-size: 15px;
font-weight: 600;
color: var(--color-text);
margin-top: var(--space-4);
text-align: center;
}
/* ─── Welcome Screen ─── */
.welcome {
text-align: center;
padding: var(--space-20) var(--space-8);
max-width: 480px;
margin: 0 auto;
}
.welcome-icon {
width: 96px;
height: 96px;
margin: 0 auto var(--space-6);
background: linear-gradient(135deg, var(--color-accent) 0%, #5856d6 100%);
border-radius: 24px;
display: flex;
align-items: center;
justify-content: center;
font-size: 48px;
box-shadow: var(--shadow-lg);
}
.welcome h1 {
font-size: 32px;
font-weight: 700;
margin-bottom: var(--space-3);
}
.welcome p {
color: var(--color-text-secondary);
font-size: 17px;
line-height: 1.52941;
}
/* ─── Diagrams Gallery ─── */
.diagrams-section {
margin: var(--space-10) 0;
}
.diagrams-section h2 {
margin-bottom: var(--space-6);
}
.diagrams-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
gap: var(--space-5);
}
/* ─── Lightbox Modal (Apple style with Zoom & Pan) ─── */
.lightbox {
position: fixed;
inset: 0;
z-index: 2000;
display: none;
align-items: center;
justify-content: center;
background: rgba(0, 0, 0, 0.9);
backdrop-filter: blur(30px);
-webkit-backdrop-filter: blur(30px);
opacity: 0;
transition: opacity var(--duration-normal) var(--ease-out);
}
.lightbox.active {
display: flex;
opacity: 1;
}
/* Image Container with Pan support */
.lightbox-viewport {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
cursor: grab;
}
.lightbox-viewport.dragging {
cursor: grabbing;
}
.lightbox-viewport.zoomed-out {
cursor: zoom-in;
}
.lightbox-content {
position: absolute;
transform-origin: center center;
transition: transform 0.3s var(--ease-spring);
will-change: transform;
animation: lightbox-in var(--duration-slow) var(--ease-spring);
}
.lightbox-content.no-transition {
transition: none;
}
@keyframes lightbox-in {
from {
opacity: 0;
transform: scale(0.9);
}
to {
opacity: 1;
transform: scale(1);
}
}
.lightbox-content img {
max-width: 90vw;
max-height: 85vh;
object-fit: contain;
border-radius: var(--radius-lg);
box-shadow: var(--shadow-float);
background: white;
pointer-events: none;
user-select: none;
-webkit-user-drag: none;
}
/* Top Toolbar (Apple style pill) */
.lightbox-toolbar {
position: fixed;
top: 20px;
left: 50%;
transform: translateX(-50%);
display: flex;
align-items: center;
gap: 2px;
padding: 6px;
background: rgba(255, 255, 255, 0.12);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-radius: 22px;
border: 1px solid rgba(255, 255, 255, 0.1);
z-index: 10;
}
.lightbox-toolbar button {
width: 36px;
height: 36px;
border-radius: 50%;
background: transparent;
border: none;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: all var(--duration-fast) var(--ease-out);
color: white;
}
.lightbox-toolbar button:hover {
background: rgba(255, 255, 255, 0.15);
}
.lightbox-toolbar button:active {
transform: scale(0.95);
}
.lightbox-toolbar button:disabled {
opacity: 0.3;
cursor: not-allowed;
}
.lightbox-toolbar button svg {
width: 18px;
height: 18px;
stroke: white;
stroke-width: 2;
fill: none;
}
.lightbox-toolbar .divider {
width: 1px;
height: 24px;
background: rgba(255, 255, 255, 0.2);
margin: 0 4px;
}
.zoom-level {
font-size: 13px;
font-weight: 500;
color: white;
min-width: 50px;
text-align: center;
font-variant-numeric: tabular-nums;
}
/* Bottom Info Bar */
.lightbox-info {
position: fixed;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
display: flex;
align-items: center;
gap: 16px;
padding: 12px 20px;
background: rgba(255, 255, 255, 0.12);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-radius: 16px;
border: 1px solid rgba(255, 255, 255, 0.1);
}
.lightbox-title {
font-size: 15px;
font-weight: 500;
color: white;
white-space: nowrap;
}
.lightbox-counter {
font-size: 13px;
color: rgba(255, 255, 255, 0.6);
font-variant-numeric: tabular-nums;
}
/* Navigation Buttons */
.lightbox-close {
position: fixed;
top: 20px;
right: 20px;
width: 44px;
height: 44px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.12);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.1);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: all var(--duration-fast) var(--ease-out);
z-index: 10;
}
.lightbox-close:hover {
background: rgba(255, 255, 255, 0.2);
transform: scale(1.05);
}
.lightbox-close:active {
transform: scale(0.95);
}
.lightbox-close svg {
width: 18px;
height: 18px;
stroke: white;
stroke-width: 2;
}
.lightbox-nav {
position: fixed;
top: 50%;
transform: translateY(-50%);
width: 50px;
height: 50px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.12);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.1);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: all var(--duration-fast) var(--ease-out);
z-index: 10;
}
.lightbox-nav:hover {
background: rgba(255, 255, 255, 0.2);
transform: translateY(-50%) scale(1.05);
}
.lightbox-nav:active {
transform: translateY(-50%) scale(0.95);
}
.lightbox-nav svg {
width: 22px;
height: 22px;
stroke: white;
stroke-width: 2;
}
.lightbox-prev { left: 20px; }
.lightbox-next { right: 20px; }
/* Zoom hint toast */
.zoom-hint {
position: fixed;
top: 80px;
left: 50%;
transform: translateX(-50%);
padding: 10px 16px;
background: rgba(0, 0, 0, 0.75);
backdrop-filter: blur(10px);
border-radius: 10px;
font-size: 13px;
color: white;
opacity: 0;
transition: opacity 0.3s ease;
pointer-events: none;
z-index: 20;
}
.zoom-hint.visible {
opacity: 1;
}
/* ─── Utilities ─── */
.hidden { display: none !important; }
/* ─── Mobile Responsive ─── */
@media (max-width: 960px) {
:root {
--sidebar-width: 240px;
}
.content-wrapper {
padding: var(--space-8) var(--space-5);
}
}
@media (max-width: 768px) {
.sidebar {
position: relative;
width: 100%;
height: auto;
border-right: none;
border-bottom: 1px solid var(--color-separator);
}
.main {
margin-left: 0;
}
.layout {
flex-direction: column;
}
.content h1 {
font-size: 28px;
}
.content h2 {
font-size: 22px;
}
.diagrams-grid {
grid-template-columns: 1fr;
}
}
/* ─── Print ─── */
@media print {
.header, .sidebar {
display: none;
}
.main {
margin-left: 0;
}
.content-wrapper {
max-width: none;
padding: 0;
}
}
</style>
</head>
<body>
<header class="header">
<div class="header-logo">
<svg viewBox="0 0 24 24" fill="currentColor">
<path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"/>
</svg>
<span class="header-title">Academia</span>
</div>
<div class="header-divider"></div>
<span class="header-subtitle">Documentación del Sistema</span>
</header>
<div class="layout">
<aside class="sidebar">
<div class="search-wrap">
<div class="search-box">
<input type="text" id="search" placeholder="Buscar documentos...">
</div>
</div>
<nav id="nav"></nav>
</aside>
<main class="main">
<div class="content-wrapper">
<article class="content" id="content">
<div class="welcome">
<div class="welcome-icon">📚</div>
<h1>Documentación</h1>
<p>Selecciona un documento del menú lateral para explorar la documentación del sistema.</p>
</div>
</article>
</div>
</main>
</div>
<!-- Lightbox Modal with Zoom & Pan -->
<div class="lightbox" id="lightbox">
<!-- Top Toolbar -->
<div class="lightbox-toolbar">
<button onclick="zoomOut()" id="btn-zoom-out" aria-label="Alejar">
<svg viewBox="0 0 24 24"><path d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM13 10H7" stroke-linecap="round"/></svg>
</button>
<span class="zoom-level" id="zoom-level">100%</span>
<button onclick="zoomIn()" id="btn-zoom-in" aria-label="Acercar">
<svg viewBox="0 0 24 24"><path d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v6m3-3H7" stroke-linecap="round"/></svg>
</button>
<div class="divider"></div>
<button onclick="resetZoom()" aria-label="Restablecer zoom">
<svg viewBox="0 0 24 24"><path d="M4 4v5h5M20 20v-5h-5M4 9a8 8 0 0114-5.3M20 15a8 8 0 01-14 5.3" stroke-linecap="round" stroke-linejoin="round"/></svg>
</button>
<button onclick="fitToScreen()" aria-label="Ajustar a pantalla">
<svg viewBox="0 0 24 24"><path d="M8 3H5a2 2 0 00-2 2v3m18 0V5a2 2 0 00-2-2h-3m0 18h3a2 2 0 002-2v-3M3 16v3a2 2 0 002 2h3" stroke-linecap="round" stroke-linejoin="round"/></svg>
</button>
</div>
<!-- Close Button -->
<button class="lightbox-close" onclick="closeLightbox()" aria-label="Cerrar">
<svg viewBox="0 0 24 24" fill="none">
<path d="M18 6L6 18M6 6l12 12" stroke-linecap="round"/>
</svg>
</button>
<!-- Navigation -->
<button class="lightbox-nav lightbox-prev" onclick="navigateLightbox(-1)" aria-label="Anterior">
<svg viewBox="0 0 24 24" fill="none">
<path d="M15 18l-6-6 6-6" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</button>
<button class="lightbox-nav lightbox-next" onclick="navigateLightbox(1)" aria-label="Siguiente">
<svg viewBox="0 0 24 24" fill="none">
<path d="M9 18l6-6-6-6" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</button>
<!-- Image Viewport (for pan & zoom) -->
<div class="lightbox-viewport" id="lightbox-viewport">
<div class="lightbox-content" id="lightbox-content">
<img id="lightbox-img" src="" alt="" draggable="false">
</div>
</div>
<!-- Bottom Info Bar -->
<div class="lightbox-info">
<span class="lightbox-title" id="lightbox-title"></span>
<span class="lightbox-counter" id="lightbox-counter"></span>
</div>
<!-- Zoom Hint Toast -->
<div class="zoom-hint" id="zoom-hint">Usa la rueda del ratón o pellizca para hacer zoom</div>
</div>
<script>
// ═══════════════════════════════════════════════════════════
// EMBEDDED DOCUMENTS & SVG DIAGRAMS
// ═══════════════════════════════════════════════════════════
const diagrams = {
"01-use-cases": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U3R5bGVUeXBlPSJ0ZXh0L2NzcyIgZGF0YS1kaWFncmFtLXR5cGU9IkRFU0NSSVBUSU9OIiBoZWlnaHQ9IjQzN3B4IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBzdHlsZT0id2lkdGg6MzM5NXB4O2hlaWdodDo0MzdweDtiYWNrZ3JvdW5kOiNGRkZGRkY7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAzMzk1IDQzNyIgd2lkdGg9IjMzOTVweCIgem9vbUFuZFBhbj0ibWFnbmlmeSI+PHRpdGxlPlNpc3RlbWEgZGUgUmVnaXN0cm8gZGUgRXN0dWRpYW50ZXMgLSBEaWFncmFtYSBkZSBDYXNvcyBkZSBVc288L3RpdGxlPjxkZWZzLz48Zz48ZyBjbGFzcz0idGl0bGUiIGRhdGEtc291cmNlLWxpbmU9IjgiPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjIyIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI3OTcuNjcxOSIgeD0iMTI5NC40NjE1IiB5PSIzNS40MjA5Ij5TaXN0ZW1hIGRlIFJlZ2lzdHJvIGRlIEVzdHVkaWFudGVzIC0gRGlhZ3JhbWEgZGUgQ2Fzb3MgZGUgVXNvPC90ZXh0PjwvZz48IS0tY2x1c3RlciBTaXN0ZW1hIGRlIEluc2NyaXBjaT9uIEFjYWQ/bWljYS0tPjxnIGNsYXNzPSJjbHVzdGVyIiBkYXRhLWVudGl0eT0iU2lzdGVtYSBkZSBJbnNjcmlwY2kubiBBY2FkLm1pY2EiIGRhdGEtc291cmNlLWxpbmU9IjEzIiBkYXRhLXVpZD0iZW50MDAwNCIgaWQ9ImNsdXN0ZXJfU2lzdGVtYSBkZSBJbnNjcmlwY2kubiBBY2FkLm1pY2EiPjxyZWN0IGZpbGw9IiNGRkZGRkYiIGhlaWdodD0iMjQ5LjcxIiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMjUwMiIgeD0iMTIiIHk9IjE4MS45MDk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjI2OS4wMjE1IiB4PSIxMTI4LjQ4OTMiIHk9IjE5Ni45MDQ1Ij5TaXN0ZW1hIGRlIEluc2NyaXBjaSYjMjQzO24gQWNhZCYjMjMzO21pY2E8L3RleHQ+PC9nPjwhLS1lbnRpdHkgVUNfTE9HSU4tLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iVUNfTE9HSU4iIGRhdGEtc291cmNlLWxpbmU9IjE1IiBkYXRhLXVpZD0iZW50MDAwNSIgaWQ9ImVudGl0eV9VQ19MT0dJTiI+PGVsbGlwc2UgY3g9IjE3NDUuMDAxMSIgY3k9IjI0MC41NTM2IiBmaWxsPSIjRjhGOUZBIiByeD0iNjQuMzcxMSIgcnk9IjE1LjI3NDIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5MS43OTMiIHg9IjE2OTkuMTA0NiIgeT0iMjQ1LjIwMiI+SW5pY2lhciBzZXNpJiMyNDM7bjwvdGV4dD48L2c+PCEtLWVudGl0eSBVQ19SRUNPVkVSLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IlVDX1JFQ09WRVIiIGRhdGEtc291cmNlLWxpbmU9IjE2IiBkYXRhLXVpZD0iZW50MDAwNiIgaWQ9ImVudGl0eV9VQ19SRUNPVkVSIj48ZWxsaXBzZSBjeD0iMTkzNC45OTY5IiBjeT0iMjQwLjU0NDciIGZpbGw9IiNGOEY5RkEiIHJ4PSI5MC42NzY5IiByeT0iMjAuNTM1NCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE1NS4yNzE1IiB4PSIxODU3LjM2MTEiIHk9IjI0NS4xOTMyIj5SZWN1cGVyYXIgY29udHJhc2UmIzI0MTthPC90ZXh0PjwvZz48IS0tZW50aXR5IFVDX1JFR0lTVEVSLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IlVDX1JFR0lTVEVSIiBkYXRhLXNvdXJjZS1saW5lPSIxOSIgZGF0YS11aWQ9ImVudDAwMDciIGlkPSJlbnRpdHlfVUNfUkVHSVNURVIiPjxlbGxpcHNlIGN4PSI3MDkuOTk2NyIgY3k9IjI0MC41NTMiIGZpbGw9IiNGOEY5RkEiIHJ4PSI1OS40OTY3IiByeT0iMTQuNTIzNiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijc5Ljg5ODQiIHg9IjY3MC4wNDc1IiB5PSIyNDUuMjAxNCI+UmVnaXN0cmFyc2U8L3RleHQ+PC9nPjwhLS1lbnRpdHkgVUNfQUNUSVZBVEUtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iVUNfQUNUSVZBVEUiIGRhdGEtc291cmNlLWxpbmU9IjIwIiBkYXRhLXVpZD0iZW50MDAwOCIgaWQ9ImVudGl0eV9VQ19BQ1RJVkFURSI+PGVsbGlwc2UgY3g9IjU0Ni45OTY3IiBjeT0iMjQwLjU1MjciIGZpbGw9IiNGOEY5RkEiIHJ4PSI2OC4yMTY3IiByeT0iMTYuMDQzMyIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEwMS44NDg2IiB4PSI0OTYuMDcyMyIgeT0iMjQ1LjIwMTEiPkFjdGl2YXIgY3VlbnRhPC90ZXh0PjwvZz48IS0tZW50aXR5IFVDX0RBU0hCT0FSRC0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJVQ19EQVNIQk9BUkQiIGRhdGEtc291cmNlLWxpbmU9IjIxIiBkYXRhLXVpZD0iZW50MDAwOSIgaWQ9ImVudGl0eV9VQ19EQVNIQk9BUkQiPjxlbGxpcHNlIGN4PSI5MDEuMDAzOSIgY3k9IjI0MC41NDYxIiBmaWxsPSIjRjhGOUZBIiByeD0iOTYuMTgzOSIgcnk9IjIxLjYzNjgiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNjcuNjEwNCIgeD0iODE3LjE5ODciIHk9IjI0NS4xOTQ2Ij5WZXIgZGFzaGJvYXJkIHBlcnNvbmFsPC90ZXh0PjwvZz48IS0tZW50aXR5IFVDX1NVQkpFQ1RTLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IlVDX1NVQkpFQ1RTIiBkYXRhLXNvdXJjZS1saW5lPSIyMiIgZGF0YS11aWQ9ImVudDAwMTAiIGlkPSJlbnRpdHlfVUNfU1VCSkVDVFMiPjxlbGxpcHNlIGN4PSIxMTMxLjAwMDMiIGN5PSIyNDAuNTUxNCIgZmlsbD0iI0Y4RjlGQSIgcng9Ijk4LjkxMDMiIHJ5PSIyMi4xODIxIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTczLjY1MzMiIHg9IjEwNDQuMTczNyIgeT0iMjQ1LjE5OTkiPlZlciBtYXRlcmlhcyBkaXNwb25pYmxlczwvdGV4dD48L2c+PCEtLWVudGl0eSBVQ19FTlJPTEwtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iVUNfRU5ST0xMIiBkYXRhLXNvdXJjZS1saW5lPSIyMyIgZGF0YS11aWQ9ImVudDAwMTEiIGlkPSJlbnRpdHlfVUNfRU5ST0xMIj48ZWxsaXBzZSBjeD0iMTE3Ljk5NjciIGN5PSIyNDAuNTQ0NyIgZmlsbD0iI0Y4RjlGQSIgcng9Ijg5LjY3NjciIHJ5PSIyMC4zMzUzIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTUzLjAwODgiIHg9IjQxLjQ5MjMiIHk9IjI0NS4xOTMyIj5JbnNjcmliaXJzZSBlbiBtYXRlcmlhPC90ZXh0PjwvZz48IS0tZW50aXR5IFVDX1VORU5ST0xMLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IlVDX1VORU5ST0xMIiBkYXRhLXNvdXJjZS1saW5lPSIyNCIgZGF0YS11aWQ9ImVudDAwMTIiIGlkPSJlbnRpdHlfVUNfVU5FTlJPTEwiPjxlbGxpcHNlIGN4PSIxMzUwLjAwMyIgY3k9IjI0MC41NSIgZmlsbD0iI0Y4RjlGQSIgcng9Ijg0LjY1MyIgcnk9IjE5LjMzMDYiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNDEuNTI0NCIgeD0iMTI3OS4yNDA4IiB5PSIyNDUuMTk4NCI+Q2FuY2VsYXIgaW5zY3JpcGNpJiMyNDM7bjwvdGV4dD48L2c+PCEtLWVudGl0eSBVQ19NWV9FTlJPTEwtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iVUNfTVlfRU5ST0xMIiBkYXRhLXNvdXJjZS1saW5lPSIyNSIgZGF0YS11aWQ9ImVudDAwMTMiIGlkPSJlbnRpdHlfVUNfTVlfRU5ST0xMIj48ZWxsaXBzZSBjeD0iMTU1OC4wMDMxIiBjeT0iMjQwLjU1MiIgZmlsbD0iI0Y4RjlGQSIgcng9Ijg3Ljg2MzEiIHJ5PSIxOS45NzI2IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTQ4Ljg4NjciIHg9IjE0ODMuNTU5NyIgeT0iMjQ1LjIwMDQiPlZlciBtaXMgaW5zY3JpcGNpb25lczwvdGV4dD48L2c+PCEtLWVudGl0eSBVQ19DTEFTU01BVEVTLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IlVDX0NMQVNTTUFURVMiIGRhdGEtc291cmNlLWxpbmU9IjI2IiBkYXRhLXVpZD0iZW50MDAxNCIgaWQ9ImVudGl0eV9VQ19DTEFTU01BVEVTIj48ZWxsaXBzZSBjeD0iMzQzLjAwMTMiIGN5PSIyNDAuNTQ1NiIgZmlsbD0iI0Y4RjlGQSIgcng9IjEwMC41ODEzIiByeT0iMjIuNTE2MyIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE3Ny4zMzc5IiB4PSIyNTQuMzMyMyIgeT0iMjQ1LjE5NDEiPlZlciBjb21wYSYjMjQxO2Vyb3MgZGUgY2xhc2U8L3RleHQ+PC9nPjwhLS1lbnRpdHkgVUNfQ1JVRC0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJVQ19DUlVEIiBkYXRhLXNvdXJjZS1saW5lPSIyOSIgZGF0YS11aWQ9ImVudDAwMTUiIGlkPSJlbnRpdHlfVUNfQ1JVRCI+PGVsbGlwc2UgY3g9IjIxNjEuMDAwNCIgY3k9IjI0MC41NDU3IiBmaWxsPSIjRjhGOUZBIiByeD0iMTAwLjcxMDQiIHJ5PSIyMy42NDYzIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTU0LjI1MjkiIHg9IjIwODMuODc0IiB5PSIyNDAuNjY2NSI+R2VzdGlvbmFyIGVzdHVkaWFudGVzPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjUxLjQ1NDEiIHg9IjIxMzUuMjczNCIgeT0iMjU2Ljk2MzQiPihDUlVEKTwvdGV4dD48L2c+PCEtLWVudGl0eSBVQ19MSVNULS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IlVDX0xJU1QiIGRhdGEtc291cmNlLWxpbmU9IjMwIiBkYXRhLXVpZD0iZW50MDAxNiIgaWQ9ImVudGl0eV9VQ19MSVNUIj48ZWxsaXBzZSBjeD0iMjM5Ny4wMDQ2IiBjeT0iMjQwLjU1MjMiIGZpbGw9IiNGOEY5RkEiIHJ4PSIxMDAuNzY0NiIgcnk9IjIyLjU1MjkiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNzcuNzQxMiIgeD0iMjMwOC4xMzQiIHk9IjI0NS4yMDA3Ij5WZXIgdG9kb3MgbG9zIGVzdHVkaWFudGVzPC90ZXh0PjwvZz48IS0tZW50aXR5IFVDX0NSRUFURS0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJVQ19DUkVBVEUiIGRhdGEtc291cmNlLWxpbmU9IjMxIiBkYXRhLXVpZD0iZW50MDAxNyIgaWQ9ImVudGl0eV9VQ19DUkVBVEUiPjxlbGxpcHNlIGN4PSIyMTYwLjk5NzEiIGN5PSIzODguMDAwOCIgZmlsbD0iI0Y4RjlGQSIgcng9Ijc0LjUwNzEiIHJ5PSIxNy4zMDE0IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTE3LjUzMDMiIHg9IjIxMDIuMjMyIiB5PSIzOTIuNjQ5MiI+Q3JlYXIgZXN0dWRpYW50ZTwvdGV4dD48L2c+PCEtLWVudGl0eSBVQ19FRElULS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IlVDX0VESVQiIGRhdGEtc291cmNlLWxpbmU9IjMyIiBkYXRhLXVpZD0iZW50MDAxOCIgaWQ9ImVudGl0eV9VQ19FRElUIj48ZWxsaXBzZSBjeD0iMjM0Ni4wMDExIiBjeT0iMzg3Ljk5NTYiIGZpbGw9IiNGOEY5RkEiIHJ4PSI3NS43MzExIiByeT0iMTcuNTQ2MiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyMC40OTcxIiB4PSIyMjg1Ljc1MjYiIHk9IjM5Mi42NDQiPkVkaXRhciBlc3R1ZGlhbnRlPC90ZXh0PjwvZz48IS0tZW50aXR5IFVDX0RFTEVURS0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJVQ19ERUxFVEUiIGRhdGEtc291cmNlLWxpbmU9IjMzIiBkYXRhLXVpZD0iZW50MDAxOSIgaWQ9ImVudGl0eV9VQ19ERUxFVEUiPjxlbGxpcHNlIGN4PSIxOTY4Ljk5NzYiIGN5PSIzODcuOTk4OSIgZmlsbD0iI0Y4RjlGQSIgcng9IjgyLjQ0NzYiIHJ5PSIxOC44ODk1IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTM2LjQxMTEiIHg9IjE5MDAuNzkyMSIgeT0iMzkyLjY0NzMiPkVsaW1pbmFyIGVzdHVkaWFudGU8L3RleHQ+PC9nPjwhLS1lbnRpdHkgVUNfVkFMX0NSRURJVFMtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iVUNfVkFMX0NSRURJVFMiIGRhdGEtc291cmNlLWxpbmU9IjM2IiBkYXRhLXVpZD0iZW50MDAyMCIgaWQ9ImVudGl0eV9VQ19WQUxfQ1JFRElUUyI+PGVsbGlwc2UgY3g9IjE0MS45OTcxIiBjeT0iMzg3Ljk5NjgiIGZpbGw9IiNGOEY5RkEiIHJ4PSIxMTQuMDg3MSIgcnk9IjI1LjIxNzQiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNzUuNjA4NCIgeD0iNTQuMTkyOSIgeT0iMzg3LjE4MzciPlZhbGlkYXIgbCYjMjM3O21pdGUgZGUgY3ImIzIzMztkaXRvczwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMTUuNDI0OCIgeD0iODQuMjg0NyIgeT0iNDAzLjQ4MDYiPihtJiMyMjU7eCA5IGNyJiMyMzM7ZGl0b3MpPC90ZXh0PjwvZz48IS0tZW50aXR5IFVDX1ZBTF9QUk9GLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IlVDX1ZBTF9QUk9GIiBkYXRhLXNvdXJjZS1saW5lPSIzNyIgZGF0YS11aWQ9ImVudDAwMjEiIGlkPSJlbnRpdHlfVUNfVkFMX1BST0YiPjxlbGxpcHNlIGN4PSI0MTcuMDA0NCIgY3k9IjM4Ny45OTYzIiBmaWxsPSIjRjhGOUZBIiByeD0iMTI2LjA4NDQiIHJ5PSIyNy42MTY5IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMjExLjg5MzYiIHg9IjMxMS4wNTc2IiB5PSIzODguMjYzMSI+VmFsaWRhciByZXN0cmljY2kmIzI0MztuIGRlIHByb2Zlc29yPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE0Mi42MzE4IiB4PSIzNDUuNjg4NSIgeT0iNDA0LjU2Ij4obm8gcmVwZXRpciBwcm9mZXNvcik8L3RleHQ+PC9nPjwhLS1lbnRpdHkgc3R1ZGVudC0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJzdHVkZW50IiBkYXRhLXNvdXJjZS1saW5lPSIxMCIgZGF0YS11aWQ9ImVudDAwMDIiIGlkPSJlbnRpdHlfc3R1ZGVudCI+PGVsbGlwc2UgY3g9IjEwODQuOTk2NSIgY3k9IjczLjYwOTQiIGZpbGw9IiMwMDdBRkYiIHJ4PSIxNiIgcnk9IjE2IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTEwODQuOTk2NSw5My42MDk0IEMxMDg4Ljk5NjUsOTMuNjA5NCAxMDkxLjk5NjUsOTMuNjA5NCAxMDk1Ljk5NjUsODkuNjA5NCBDMTEwMy45OTY1LDg5LjYwOTQgMTExMS45OTY1LDk3LjYwOTQgMTExMS45OTY1LDEwNS42MDk0IEwxMTExLjk5NjUsMTA5LjYwOTQgQzExMTEuOTk2NSwxMTMuNjA5NCAxMTA3Ljk5NjUsMTE3LjYwOTQgMTEwMy45OTY1LDExNy42MDk0IEwxMDY1Ljk5NjUsMTE3LjYwOTQgQzEwNjEuOTk2NSwxMTcuNjA5NCAxMDU3Ljk5NjUsMTEzLjYwOTQgMTA1Ny45OTY1LDEwOS42MDk0IEwxMDU3Ljk5NjUsMTA1LjYwOTQgQzEwNTcuOTk2NSw5Ny42MDk0IDEwNjUuOTk2NSw4OS42MDk0IDEwNzMuOTk2NSw4OS42MDk0IEMxMDc3Ljk5NjUsOTMuNjA5NCAxMDgwLjk5NjUsOTMuNjA5NCAxMDg0Ljk5NjUsOTMuNjA5NCIgZmlsbD0iIzAwN0FGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijc0LjgzMyIgeD0iMTA0Ny41OCIgeT0iMTMxLjYwNDUiPkVzdHVkaWFudGU8L3RleHQ+PC9nPjwhLS1lbnRpdHkgYWRtaW4tLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iYWRtaW4iIGRhdGEtc291cmNlLWxpbmU9IjExIiBkYXRhLXVpZD0iZW50MDAwMyIgaWQ9ImVudGl0eV9hZG1pbiI+PGVsbGlwc2UgY3g9IjIxNjEiIGN5PSI3My42MDk0IiBmaWxsPSIjMDA3QUZGIiByeD0iMTYiIHJ5PSIxNiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwYXRoIGQ9Ik0yMTYxLDkzLjYwOTQgQzIxNjUsOTMuNjA5NCAyMTY4LDkzLjYwOTQgMjE3Miw4OS42MDk0IEMyMTgwLDg5LjYwOTQgMjE4OCw5Ny42MDk0IDIxODgsMTA1LjYwOTQgTDIxODgsMTA5LjYwOTQgQzIxODgsMTEzLjYwOTQgMjE4NCwxMTcuNjA5NCAyMTgwLDExNy42MDk0IEwyMTQyLDExNy42MDk0IEMyMTM4LDExNy42MDk0IDIxMzQsMTEzLjYwOTQgMjEzNCwxMDkuNjA5NCBMMjEzNCwxMDUuNjA5NCBDMjEzNCw5Ny42MDk0IDIxNDIsODkuNjA5NCAyMTUwLDg5LjYwOTQgQzIxNTQsOTMuNjA5NCAyMTU3LDkzLjYwOTQgMjE2MSw5My42MDk0IiBmaWxsPSIjMDA3QUZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iOTkuMDgwMSIgeD0iMjExMS40NiIgeT0iMTMxLjYwNDUiPkFkbWluaXN0cmFkb3I8L3RleHQ+PC9nPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJHTU40MSIgZGF0YS1zb3VyY2UtbGluZT0iNjgiIGRhdGEtdWlkPSJlbnQwMDQyIiBpZD0iZW50aXR5X0dNTjQxIj48cGF0aCBkPSJNMjUzMy4xMywxOTcuNzE5NCBMMjUzMy4xMywyODMuMzgzNCBMMjc2Ni44NzE3LDI4My4zODM0IEwyNzY2Ljg3MTcsMjA3LjcxOTQgTDI3NTYuODcxNywxOTcuNzE5NCBMMjUzMy4xMywxOTcuNzE5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwYXRoIGQ9Ik0yNzU2Ljg3MTcsMTk3LjcxOTQgTDI3NTYuODcxNywyMDcuNzE5NCBMMjc2Ni44NzE3LDIwNy43MTk0IEwyNzU2Ljg3MTcsMTk3LjcxOTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMjMuNjg0MSIgeD0iMjUzOS4xMyIgeT0iMjE0Ljc4NjMiPlJlZ2xhcyBkZSBuZWdvY2lvOjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyMTIuNzQxNyIgeD0iMjUzOS4xMyIgeT0iMjI5LjkxOTEiPi0gTSYjMjI1O3hpbW8gMyBtYXRlcmlhcyAoOSBjciYjMjMzO2RpdG9zKTwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxODQuMTM5MiIgeD0iMjUzOS4xMyIgeT0iMjQ1LjA1MTkiPi0gTm8gcHVlZGUgdGVuZXIgMiBtYXRlcmlhczwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMjUuOTg4MyIgeD0iMjU0Ny4zOTQ2IiB5PSIyNjAuMTg0NyI+ZGVsIG1pc21vIHByb2Zlc29yPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE3NS45NTA3IiB4PSIyNTM5LjEzIiB5PSIyNzUuMzE3NSI+LSBSZXF1aWVyZSBjdWVudGEgYWN0aXZhZGE8L3RleHQ+PC9nPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJHTU40NCIgZGF0YS1zb3VyY2UtbGluZT0iNzYiIGRhdGEtdWlkPSJlbnQwMDQ1IiBpZD0iZW50aXR5X0dNTjQ0Ij48cGF0aCBkPSJNMjgwMS45MywyMjAuNDE5NCBMMjgwMS45MywyNjAuNjg1IEwzMDA0LjA2NjcsMjYwLjY4NSBMMzAwNC4wNjY3LDIzMC40MTk0IEwyOTk0LjA2NjcsMjIwLjQxOTQgTDI4MDEuOTMsMjIwLjQxOTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNMjk5NC4wNjY3LDIyMC40MTk0IEwyOTk0LjA2NjcsMjMwLjQxOTQgTDMwMDQuMDY2NywyMzAuNDE5NCBMMjk5NC4wNjY3LDIyMC40MTk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTQ3LjM0MTgiIHg9IjI4MDcuOTMiIHk9IjIzNy40ODYzIj5Tb2xvIG11ZXN0cmEgbm9tYnJlczwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxODEuMTM2NyIgeD0iMjgwNy45MyIgeT0iMjUyLjYxOTEiPmRlIGNvbXBhJiMyNDE7ZXJvcyBwb3IgbWF0ZXJpYTwvdGV4dD48L2c+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkdNTjQ3IiBkYXRhLXNvdXJjZS1saW5lPSI4MSIgZGF0YS11aWQ9ImVudDAwNDgiIGlkPSJlbnRpdHlfR01ONDciPjxwYXRoIGQ9Ik0zMDM5LjQ0LDIxMi44NDk0IEwzMDM5LjQ0LDI2OC4yNDc4IEwzMTk0LjU1OTYsMjY4LjI0NzggTDMxOTQuNTU5NiwyMjIuODQ5NCBMMzE4NC41NTk2LDIxMi44NDk0IEwzMDM5LjQ0LDIxMi44NDk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTMxODQuNTU5NiwyMTIuODQ5NCBMMzE4NC41NTk2LDIyMi44NDk0IEwzMTk0LjU1OTYsMjIyLjg0OTQgTDMxODQuNTU5NiwyMTIuODQ5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyOS43MTQ0IiB4PSIzMDQ1LjQ0IiB5PSIyMjkuOTE2MyI+RWwgZXN0dWRpYW50ZSByZWNpYmU8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTM0LjExOTYiIHg9IjMwNDUuNDQiIHk9IjI0NS4wNDkxIj5jJiMyNDM7ZGlnbyBkZSBhY3RpdmFjaSYjMjQzO248L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODYuMjEzOSIgeD0iMzA0NS40NCIgeT0iMjYwLjE4MTkiPmFsIHJlZ2lzdHJhcnNlPC90ZXh0PjwvZz48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iR01ONTAiIGRhdGEtc291cmNlLWxpbmU9Ijg3IiBkYXRhLXVpZD0iZW50MDA1MSIgaWQ9ImVudGl0eV9HTU41MCI+PHBhdGggZD0iTTMyMjkuNCwyMjAuNDE5NCBMMzIyOS40LDI2MC42ODUgTDMzODguNTk0OCwyNjAuNjg1IEwzMzg4LjU5NDgsMjMwLjQxOTQgTDMzNzguNTk0OCwyMjAuNDE5NCBMMzIyOS40LDIyMC40MTk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTMzNzguNTk0OCwyMjAuNDE5NCBMMzM3OC41OTQ4LDIzMC40MTk0IEwzMzg4LjU5NDgsMjMwLjQxOTQgTDMzNzguNTk0OCwyMjAuNDE5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyNi40MzI2IiB4PSIzMjM1LjQiIHk9IjIzNy40ODYzIj5BY2Nlc28gY29tcGxldG8gYWw8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTM4LjE5NDgiIHg9IjMyMzUuNCIgeT0iMjUyLjYxOTEiPkNSVUQgZGUgZXN0dWRpYW50ZXM8L3RleHQ+PC9nPjwhLS1saW5rIHN0dWRlbnQgdG8gVUNfUkVHSVNURVItLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0ic3R1ZGVudCIgZGF0YS1lbnRpdHktMj0iVUNfUkVHSVNURVIiIGRhdGEtc291cmNlLWxpbmU9IjQxIiBkYXRhLXVpZD0ibG5rMjIiIGlkPSJsaW5rX3N0dWRlbnRfVUNfUkVHSVNURVIiPjxwYXRoIGQ9Ik0xMDQ3LjE4LDEwOS40Nzk0IEMxMDAwLjI1LDEyNC44NDk0IDkxNy41NCwxNTAuNTM5NCA4NDUsMTY1LjkwOTQgQzgxOS41NCwxNzEuMjk5NCA4MTAuNzQsMTYzLjI1OTQgNzg3LDE3My45MDk0IEM3NjAuMDcsMTg1Ljk3OTQgNzM5LjMzNzcsMjA2LjAxNDEgNzI1LjQ5NzcsMjIxLjQzNDEiIGZpbGw9Im5vbmUiIGlkPSJzdHVkZW50LXRvLVVDX1JFR0lTVEVSIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI3MjEuNDksMjI1Ljg5OTQsNzMwLjQ3ODQsMjIxLjg3MzMsNzI0LjgyOTgsMjIyLjE3ODMsNzI0LjUyNDcsMjE2LjUyOTcsNzIxLjQ5LDIyNS44OTk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIHN0dWRlbnQgdG8gVUNfTE9HSU4tLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0ic3R1ZGVudCIgZGF0YS1lbnRpdHktMj0iVUNfTE9HSU4iIGRhdGEtc291cmNlLWxpbmU9IjQyIiBkYXRhLXVpZD0ibG5rMjMiIGlkPSJsaW5rX3N0dWRlbnRfVUNfTE9HSU4iPjxwYXRoIGQ9Ik0xMTIyLjgsOTkuMTU5NCBDMTIzNS4wNCwxMDYuNjc5NCAxNTY0LjY3LDEzMS44Nzk0IDE2NjMsMTczLjkwOTQgQzE2OTAuODQsMTg1Ljc5OTQgMTcxMi44NzE5LDIwNS41NzMxIDE3MjcuODYxOSwyMjEuMDIzMSIgZmlsbD0ibm9uZSIgaWQ9InN0dWRlbnQtdG8tVUNfTE9HSU4iIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjE3MzIuMDQsMjI1LjMyOTQsMTcyOC42NDM4LDIxNi4wODQ2LDE3MjguNTU4MywyMjEuNzQwOCwxNzIyLjkwMjEsMjIxLjY1NTMsMTczMi4wNCwyMjUuMzI5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBzdHVkZW50IHRvIFVDX0FDVElWQVRFLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9InN0dWRlbnQiIGRhdGEtZW50aXR5LTI9IlVDX0FDVElWQVRFIiBkYXRhLXNvdXJjZS1saW5lPSI0MyIgZGF0YS11aWQ9ImxuazI0IiBpZD0ibGlua19zdHVkZW50X1VDX0FDVElWQVRFIj48cGF0aCBkPSJNMTA0Ny4yNiw5Ny4xNzk0IEM5NjcuNDMsOTkuMzM5NCA3NzYuOTgsMTExLjIzOTQgNjMzLDE3My45MDk0IEM2MDUuMSwxODYuMDQ5NCA1ODIuNDE4LDIwNC45NzQ4IDU2Ni4zMjgsMjIwLjI3NDgiIGZpbGw9Im5vbmUiIGlkPSJzdHVkZW50LXRvLVVDX0FDVElWQVRFIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI1NjEuOTgsMjI0LjQwOTQsNTcxLjI1ODQsMjIxLjEwNjIsNTY1LjYwMzQsMjIwLjk2MzksNTY1Ljc0NTcsMjE1LjMwODgsNTYxLjk4LDIyNC40MDk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIHN0dWRlbnQgdG8gVUNfUkVDT1ZFUi0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJzdHVkZW50IiBkYXRhLWVudGl0eS0yPSJVQ19SRUNPVkVSIiBkYXRhLXNvdXJjZS1saW5lPSI0NCIgZGF0YS11aWQ9ImxuazI1IiBpZD0ibGlua19zdHVkZW50X1VDX1JFQ09WRVIiPjxwYXRoIGQ9Ik0xMTIyLjYsOTguNDc5NCBDMTI1NC4zLDEwNC44NTk0IDE2OTMuOTgsMTI5LjEwOTQgMTgyNywxNzMuOTA5NCBDMTg1OC4xOSwxODQuNDA5NCAxODg1LjA3MzYsMjAxLjU5ODQgMTkwNS45OTM2LDIxNi45NTg0IiBmaWxsPSJub25lIiBpZD0ic3R1ZGVudC10by1VQ19SRUNPVkVSIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIxOTEwLjgzLDIyMC41MDk0LDE5MDUuOTQyOCwyMTEuOTU4NiwxOTA2Ljc5OTcsMjE3LjU1MDIsMTkwMS4yMDgxLDIxOC40MDcxLDE5MTAuODMsMjIwLjUwOTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgc3R1ZGVudCB0byBVQ19EQVNIQk9BUkQtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0ic3R1ZGVudCIgZGF0YS1lbnRpdHktMj0iVUNfREFTSEJPQVJEIiBkYXRhLXNvdXJjZS1saW5lPSI0NSIgZGF0YS11aWQ9ImxuazI2IiBpZD0ibGlua19zdHVkZW50X1VDX0RBU0hCT0FSRCI+PHBhdGggZD0iTTEwNDcuMzIsMTI1Ljk5OTQgQzEwMTEuNDcsMTUzLjgxOTQgOTYzLjIxMDUsMTkxLjI4MTQgOTMxLjgwMDUsMjE1LjY1MTQiIGZpbGw9Im5vbmUiIGlkPSJzdHVkZW50LXRvLVVDX0RBU0hCT0FSRCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iOTI3LjA2LDIxOS4zMjk0LDkzNi42MjI3LDIxNi45NzI3LDkzMS4wMTA0LDIxNi4yNjQ0LDkzMS43MTg3LDIxMC42NTIsOTI3LjA2LDIxOS4zMjk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIHN0dWRlbnQgdG8gVUNfU1VCSkVDVFMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0ic3R1ZGVudCIgZGF0YS1lbnRpdHktMj0iVUNfU1VCSkVDVFMiIGRhdGEtc291cmNlLWxpbmU9IjQ2IiBkYXRhLXVpZD0ibG5rMjciIGlkPSJsaW5rX3N0dWRlbnRfVUNfU1VCSkVDVFMiPjxwYXRoIGQ9Ik0xMDk3LjQ1LDEzNS4zOTk0IEMxMTA2LjAyLDE2MS45OTk0IDExMTUuMjQsMTkwLjYyODUgMTEyMi4yNywyMTIuNDQ4NSIgZmlsbD0ibm9uZSIgaWQ9InN0dWRlbnQtdG8tVUNfU1VCSkVDVFMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjExMjQuMTEsMjE4LjE1OTQsMTEyNS4xNTc0LDIwOC4zNjY0LDExMjIuNTc2NywyMTMuNDAwMywxMTE3LjU0MjgsMjEwLjgxOTYsMTEyNC4xMSwyMTguMTU5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBzdHVkZW50IHRvIFVDX0VOUk9MTC0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJzdHVkZW50IiBkYXRhLWVudGl0eS0yPSJVQ19FTlJPTEwiIGRhdGEtc291cmNlLWxpbmU9IjQ3IiBkYXRhLXVpZD0ibG5rMjgiIGlkPSJsaW5rX3N0dWRlbnRfVUNfRU5ST0xMIj48cGF0aCBkPSJNMTA0Ny41Niw5Ny44NDk0IEM5MDIuOTcsMTAyLjM4OTQgMzgxLjM1LDEyMi4xMDk0IDIyNSwxNzMuOTA5NCBDMTkzLjc2LDE4NC4yNTk0IDE2Ni45NTQ1LDIwMS42NDUzIDE0Ni4yNzQ1LDIxNy4xMTUzIiBmaWxsPSJub25lIiBpZD0ic3R1ZGVudC10by1VQ19FTlJPTEwiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjE0MS40NywyMjAuNzA5NCwxNTEuMDcyNywyMTguNTIxMywxNDUuNDczNywyMTcuNzE0MywxNDYuMjgwNywyMTIuMTE1MywxNDEuNDcsMjIwLjcwOTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgc3R1ZGVudCB0byBVQ19VTkVOUk9MTC0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJzdHVkZW50IiBkYXRhLWVudGl0eS0yPSJVQ19VTkVOUk9MTCIgZGF0YS1zb3VyY2UtbGluZT0iNDgiIGRhdGEtdWlkPSJsbmsyOSIgaWQ9Imxpbmtfc3R1ZGVudF9VQ19VTkVOUk9MTCI+PHBhdGggZD0iTTExMjIuNjUsMTEzLjA5OTQgQzExNTUuOTEsMTI3LjkwOTQgMTIwNS40NSwxNTAuODg5NCAxMjQ3LDE3My45MDk0IEMxMjc0LjA4LDE4OC45MDk0IDEyOTguNzg3OCwyMDQuODA2MSAxMzE5LjMwNzgsMjE4LjU3NjEiIGZpbGw9Im5vbmUiIGlkPSJzdHVkZW50LXRvLVVDX1VORU5ST0xMIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIxMzI0LjI5LDIyMS45MTk0LDEzMTkuMDQ1NiwyMTMuNTgyOSwxMzIwLjEzODIsMjE5LjEzMzMsMTMxNC41ODc4LDIyMC4yMjU5LDEzMjQuMjksMjIxLjkxOTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgc3R1ZGVudCB0byBVQ19NWV9FTlJPTEwtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0ic3R1ZGVudCIgZGF0YS1lbnRpdHktMj0iVUNfTVlfRU5ST0xMIiBkYXRhLXNvdXJjZS1saW5lPSI0OSIgZGF0YS11aWQ9ImxuazMwIiBpZD0ibGlua19zdHVkZW50X1VDX01ZX0VOUk9MTCI+PHBhdGggZD0iTTExMjIuNywxMDAuMzI5NCBDMTE5MC42MywxMDcuNjk5NCAxMzM3LjE2LDEyNy45Mjk0IDE0NTIsMTczLjkwOTQgQzE0ODEuOTQsMTg1Ljg5OTQgMTUwOC4wNjY0LDIwMi42Njk3IDE1MjguNzQ2NCwyMTcuNTE5NyIgZmlsbD0ibm9uZSIgaWQ9InN0dWRlbnQtdG8tVUNfTVlfRU5ST0xMIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIxNTMzLjYyLDIyMS4wMTk0LDE1MjguNjQyNywyMTIuNTIwOCwxNTI5LjU1ODYsMjE4LjEwMywxNTIzLjk3NjQsMjE5LjAxODksMTUzMy42MiwyMjEuMDE5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBzdHVkZW50IHRvIFVDX0NMQVNTTUFURVMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0ic3R1ZGVudCIgZGF0YS1lbnRpdHktMj0iVUNfQ0xBU1NNQVRFUyIgZGF0YS1zb3VyY2UtbGluZT0iNTAiIGRhdGEtdWlkPSJsbmszMSIgaWQ9Imxpbmtfc3R1ZGVudF9VQ19DTEFTU01BVEVTIj48cGF0aCBkPSJNMTA0Ny4zNSw5Ni40NTk0IEM5NDguNTYsOTYuNzA5NCA2NzQuNzgsMTA0LjE2OTQgNDYxLDE3My45MDk0IEM0MjguOTEsMTg0LjM3OTQgNDAwLjYwMzMsMjAwLjU1ODIgMzc3LjU5MzMsMjE1LjU4ODIiIGZpbGw9Im5vbmUiIGlkPSJzdHVkZW50LXRvLVVDX0NMQVNTTUFURVMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjM3Mi41NywyMTguODY5NCwzODIuMjkyNCwyMTcuMjk2NSwzNzYuNzU2MSwyMTYuMTM1LDM3Ny45MTc1LDIxMC41OTg3LDM3Mi41NywyMTguODY5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBhZG1pbiB0byBVQ19MT0dJTi0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJhZG1pbiIgZGF0YS1lbnRpdHktMj0iVUNfTE9HSU4iIGRhdGEtc291cmNlLWxpbmU9IjUzIiBkYXRhLXVpZD0ibG5rMzIiIGlkPSJsaW5rX2FkbWluX1VDX0xPR0lOIj48cGF0aCBkPSJNMjExMS4xNSwxMDEuMjc5NCBDMjA0My43OCwxMDguOTA5NCAxOTIxLjI3LDEyOC4yNDk0IDE4MjcsMTczLjkwOTQgQzE4MDAuMDgsMTg2LjkzOTQgMTc3OC4yNzQ3LDIwNi4wMDkgMTc2My4wMDQ3LDIyMS4wNDkiIGZpbGw9Im5vbmUiIGlkPSJhZG1pbi10by1VQ19MT0dJTiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iMTc1OC43MywyMjUuMjU5NCwxNzY3Ljk0OSwyMjEuNzkzNywxNzYyLjI5MjMsMjIxLjc1MDgsMTc2Mi4zMzUyLDIxNi4wOTQxLDE3NTguNzMsMjI1LjI1OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgYWRtaW4gdG8gVUNfUkVDT1ZFUi0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJhZG1pbiIgZGF0YS1lbnRpdHktMj0iVUNfUkVDT1ZFUiIgZGF0YS1zb3VyY2UtbGluZT0iNTQiIGRhdGEtdWlkPSJsbmszMyIgaWQ9ImxpbmtfYWRtaW5fVUNfUkVDT1ZFUiI+PHBhdGggZD0iTTIxMTEuMTIsMTI4LjI2OTQgQzIwNjYuMjgsMTU2LjYwOTQgMjAwNi45NzIyLDE5NC4wNzQyIDE5NjkuNzUyMiwyMTcuNTk0MiIgZmlsbD0ibm9uZSIgaWQ9ImFkbWluLXRvLVVDX1JFQ09WRVIiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjE5NjQuNjgsMjIwLjc5OTQsMTk3NC40MjUsMjE5LjM3MywxOTY4LjkwNjgsMjE4LjEyODQsMTk3MC4xNTE0LDIxMi42MTAyLDE5NjQuNjgsMjIwLjc5OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgYWRtaW4gdG8gVUNfQ1JVRC0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJhZG1pbiIgZGF0YS1lbnRpdHktMj0iVUNfQ1JVRCIgZGF0YS1zb3VyY2UtbGluZT0iNTUiIGRhdGEtdWlkPSJsbmszNCIgaWQ9ImxpbmtfYWRtaW5fVUNfQ1JVRCI+PHBhdGggZD0iTTIxNjEsMTM1LjM5OTQgQzIxNjEsMTYxLjMzOTQgMjE2MSwxODguNjI5NCAyMTYxLDIxMC41MDk0IiBmaWxsPSJub25lIiBpZD0iYWRtaW4tdG8tVUNfQ1JVRCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iMjE2MSwyMTYuNTA5NCwyMTY1LDIwNy41MDk0LDIxNjEsMjExLjUwOTQsMjE1NywyMDcuNTA5NCwyMTYxLDIxNi41MDk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIGFkbWluIHRvIFVDX0xJU1QtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iYWRtaW4iIGRhdGEtZW50aXR5LTI9IlVDX0xJU1QiIGRhdGEtc291cmNlLWxpbmU9IjU2IiBkYXRhLXVpZD0ibG5rMzUiIGlkPSJsaW5rX2FkbWluX1VDX0xJU1QiPjxwYXRoIGQ9Ik0yMjEwLjc2LDEyNi44Njk0IEMyMjU2LjQ3LDE1NC41MTk0IDIzMTcuODU2MiwxOTEuNjczOSAyMzU3Ljc5NjIsMjE1LjgzMzkiIGZpbGw9Im5vbmUiIGlkPSJhZG1pbi10by1VQ19MSVNUIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIyMzYyLjkzLDIxOC45Mzk0LDIzNTcuMjk5NiwyMTAuODU4NiwyMzU4LjY1MTgsMjE2LjM1MTUsMjM1My4xNTksMjE3LjcwMzcsMjM2Mi45MywyMTguOTM5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBVQ19DUlVEIHRvIFVDX0NSRUFURS0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJVQ19DUlVEIiBkYXRhLWVudGl0eS0yPSJVQ19DUkVBVEUiIGRhdGEtc291cmNlLWxpbmU9IjU5IiBkYXRhLXVpZD0ibG5rMzYiIGlkPSJsaW5rX1VDX0NSVURfVUNfQ1JFQVRFIj48cGF0aCBkPSJNMjE2MSwyNjQuNTk5NCBDMjE2MSwyOTQuMDc5NCAyMTYxLDMzOC40MTk0IDIxNjEsMzY0LjM5OTQiIGZpbGw9Im5vbmUiIGlkPSJVQ19DUlVELXRvLVVDX0NSRUFURSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6Nyw3OyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iMjE2MSwzNzAuMzk5NCwyMTY1LDM2MS4zOTk0LDIxNjEsMzY1LjM5OTQsMjE1NywzNjEuMzk5NCwyMTYxLDM3MC4zOTk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjMuMDA2OCIgeD0iMjE2MiIgeT0iMzI2LjQ1NjMiPiYjMTcxO2luY2x1ZGUmIzE4Nzs8L3RleHQ+PC9nPjwhLS1saW5rIFVDX0NSVUQgdG8gVUNfRURJVC0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJVQ19DUlVEIiBkYXRhLWVudGl0eS0yPSJVQ19FRElUIiBkYXRhLXNvdXJjZS1saW5lPSI2MCIgZGF0YS11aWQ9ImxuazM3IiBpZD0ibGlua19VQ19DUlVEX1VDX0VESVQiPjxwYXRoIGQ9Ik0yMTg5LjEsMjYzLjYzOTQgQzIyMjYuNiwyOTMuMTI5NCAyMjg3LjQyMzgsMzQwLjk0MDMgMjMyMC42NzM4LDM2Ny4wOTAzIiBmaWxsPSJub25lIiBpZD0iVUNfQ1JVRC10by1VQ19FRElUIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheTo3LDc7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIyMzI1LjM5LDM3MC43OTk0LDIzMjAuNzg4NSwzNjIuMDkxNiwyMzIxLjQ1OTgsMzY3LjcwODQsMjMxNS44NDMsMzY4LjM3OTgsMjMyNS4zOSwzNzAuNzk5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjYzLjAwNjgiIHg9IjIyNzEuMDciIHk9IjMyNi40NTYzIj4mIzE3MTtpbmNsdWRlJiMxODc7PC90ZXh0PjwvZz48IS0tbGluayBVQ19DUlVEIHRvIFVDX0RFTEVURS0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJVQ19DUlVEIiBkYXRhLWVudGl0eS0yPSJVQ19ERUxFVEUiIGRhdGEtc291cmNlLWxpbmU9IjYxIiBkYXRhLXVpZD0ibG5rMzgiIGlkPSJsaW5rX1VDX0NSVURfVUNfREVMRVRFIj48cGF0aCBkPSJNMjEzMS44NCwyNjMuNjM5NCBDMjA5My41NSwyOTIuNjQ5NCAyMDMxLjg4MjcsMzM5LjM2NjUgMTk5Ni44NzI3LDM2NS44ODY1IiBmaWxsPSJub25lIiBpZD0iVUNfQ1JVRC10by1VQ19ERUxFVEUiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjcsNzsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjE5OTIuMDksMzY5LjUwOTQsMjAwMS42Nzk0LDM2Ny4yNjM1LDE5OTYuMDc1NiwzNjYuNDkwMywxOTk2Ljg0ODgsMzYwLjg4NjUsMTk5Mi4wOSwzNjkuNTA5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjYzLjAwNjgiIHg9IjIwNjYiIHk9IjMyNi40NTYzIj4mIzE3MTtpbmNsdWRlJiMxODc7PC90ZXh0PjwvZz48IS0tbGluayBVQ19FTlJPTEwgdG8gVUNfVkFMX0NSRURJVFMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iVUNfRU5ST0xMIiBkYXRhLWVudGl0eS0yPSJVQ19WQUxfQ1JFRElUUyIgZGF0YS1zb3VyY2UtbGluZT0iNjQiIGRhdGEtdWlkPSJsbmszOSIgaWQ9ImxpbmtfVUNfRU5ST0xMX1VDX1ZBTF9DUkVESVRTIj48cGF0aCBkPSJNMTIxLjI0LDI2MS4xNjk0IEMxMjUuNTYsMjg3LjM3OTQgMTMyLjI0MywzMjcuODk5NCAxMzYuOTUzLDM1Ni40Mzk0IiBmaWxsPSJub25lIiBpZD0iVUNfRU5ST0xMLXRvLVVDX1ZBTF9DUkVESVRTIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheTo3LDc7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIxMzcuOTMsMzYyLjM1OTQsMTQwLjQxMTIsMzUyLjgyODIsMTM3LjExNTksMzU3LjQyNjEsMTMyLjUxNzksMzU0LjEzMDgsMTM3LjkzLDM2Mi4zNTk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjMuMDA2OCIgeD0iMTMzLjE1IiB5PSIzMjYuNDU2MyI+JiMxNzE7aW5jbHVkZSYjMTg3OzwvdGV4dD48L2c+PCEtLWxpbmsgVUNfRU5ST0xMIHRvIFVDX1ZBTF9QUk9GLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9IlVDX0VOUk9MTCIgZGF0YS1lbnRpdHktMj0iVUNfVkFMX1BST0YiIGRhdGEtc291cmNlLWxpbmU9IjY1IiBkYXRhLXVpZD0ibG5rNDAiIGlkPSJsaW5rX1VDX0VOUk9MTF9VQ19WQUxfUFJPRiI+PHBhdGggZD0iTTE1NC45NiwyNTkuNTI5NCBDMjA4LjA5LDI4NS4zNzk0IDMwMC44MTQ0LDMzMC40ODUgMzYwLjc0NDQsMzU5LjYzNSIgZmlsbD0ibm9uZSIgaWQ9IlVDX0VOUk9MTC10by1VQ19WQUxfUFJPRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6Nyw3OyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iMzY2LjE0LDM2Mi4yNTk0LDM1OS43OTYyLDM1NC43MjU3LDM2MS42NDM3LDM2MC4wNzI0LDM1Ni4yOTcsMzYxLjkxOTgsMzY2LjE0LDM2Mi4yNTk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjMuMDA2OCIgeD0iMjk1LjI4IiB5PSIzMjYuNDU2MyI+JiMxNzE7aW5jbHVkZSYjMTg3OzwvdGV4dD48L2c+PCEtLWxpbmsgVUNfRU5ST0xMIHRvIEdNTjQxLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9IlVDX0VOUk9MTCIgZGF0YS1lbnRpdHktMj0iR01ONDEiIGRhdGEtc291cmNlLWxpbmU9IjY4IiBkYXRhLXVpZD0ibG5rNDMiIGlkPSJsaW5rX1VDX0VOUk9MTF9HTU40MSI+PHBhdGggZD0iTTEzOC4zMiwyMjAuNTM5NCBDMTYxLjM1LDE5OS4zNzk0IDIwMS4xLDE2Ny4zMjk0IDI0Mi41LDE1NC40MDk0IEMzMDIuMjcsMTM1Ljc0OTQgMjQzNS45MiwxMzguNTY5NCAyNDk2LjUsMTU0LjQwOTQgQzI1MjkuNDcsMTYzLjAyOTQgMjU2Mi44MywxODAuNDc5NCAyNTkwLDE5Ny40Mzk0IiBmaWxsPSJub25lIiBpZD0iVUNfRU5ST0xMLUdNTjQxIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheTo3LDc7Ii8+PC9nPjwhLS1saW5rIFVDX0NMQVNTTUFURVMgdG8gR01ONDQtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iVUNfQ0xBU1NNQVRFUyIgZGF0YS1lbnRpdHktMj0iR01ONDQiIGRhdGEtc291cmNlLWxpbmU9Ijc2IiBkYXRhLXVpZD0ibG5rNDYiIGlkPSJsaW5rX1VDX0NMQVNTTUFURVNfR01ONDQiPjxwYXRoIGQ9Ik0zNjcuODEsMjE4LjU0OTQgQzM5My40NSwxOTcuMzk5NCA0MzUuNjcsMTY2Ljg2OTQgNDc4LjUsMTU0LjQwOTQgQzUzOS41MiwxMzYuNjQ5NCAyNzA1LjQ1LDEzNi43NDk0IDI3NjYuNSwxNTQuNDA5NCBDMjgxMC42NSwxNjcuMTY5NCAyODU0LjI1LDE5OC45Mzk0IDI4NzkuODksMjIwLjExOTQiIGZpbGw9Im5vbmUiIGlkPSJVQ19DTEFTU01BVEVTLUdNTjQ0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheTo3LDc7Ii8+PC9nPjwhLS1saW5rIFVDX0FDVElWQVRFIHRvIEdNTjQ3LS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9IlVDX0FDVElWQVRFIiBkYXRhLWVudGl0eS0yPSJHTU40NyIgZGF0YS1zb3VyY2UtbGluZT0iODEiIGRhdGEtdWlkPSJsbms0OSIgaWQ9ImxpbmtfVUNfQUNUSVZBVEVfR01ONDciPjxwYXRoIGQ9Ik01NTkuOTcsMjI0LjMxOTQgQzU3Ny43OSwyMDMuNDY5NCA2MTIuMDMsMTY4LjMxOTQgNjUwLjUsMTU0LjQwOTQgQzcxMS45OSwxMzIuMTY5NCAyOTQyLjU3LDEzMy40MTk0IDMwMDQuNSwxNTQuNDA5NCBDMzAzOC4yOCwxNjUuODU5NCAzMDY5Ljg5LDE5MS45Njk0IDMwOTAuOTQsMjEyLjQ2OTQiIGZpbGw9Im5vbmUiIGlkPSJVQ19BQ1RJVkFURS1HTU40NyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6Nyw3OyIvPjwvZz48IS0tbGluayBhZG1pbiB0byBHTU41MC0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJhZG1pbiIgZGF0YS1lbnRpdHktMj0iR01ONTAiIGRhdGEtc291cmNlLWxpbmU9Ijg3IiBkYXRhLXVpZD0ibG5rNTIiIGlkPSJsaW5rX2FkbWluX0dNTjUwIj48cGF0aCBkPSJNMjIxMC44Myw5Ny4wMjk0IEMyMzkzLjIxLDk4LjUzOTQgMzAyMy41LDEwOC40Njk0IDMyMTIsMTczLjkwOTQgQzMyNDAuNjIsMTgzLjgzOTQgMzI2OC43OSwyMDQuNDQ5NCAzMjg3LjMzLDIxOS45Mzk0IiBmaWxsPSJub25lIiBpZD0iYWRtaW4tR01ONTAiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjcsNzsiLz48L2c+PCEtLVNSQz1bVkxSRFpqaXM0QnhoQVFSazhQbDMxZWtzR1JmMWk4M01iaFNrbEVqMk1YaWVLMjJXZ09jTjI0TWc5OXNjQUZlbUZVUkdHdjE3eThqckk1Yl9qMWkzMWdKWER6eUNYenlDek9yeG1XZ1hiYW9lbkJ1TmdjUTZMUzJ1cXdQbVZxZTR6V1RRTlU1V2lNUnlGVGpYaXNvR0V3UHNTV1pPTS1KQ3VZdFhUYVJsTEpkTEtYbHVUbHhaXzdnVWRXNWdLdzh2V2R3dVZkZHJ5Yk1Tb21kTnJUTWhUM3ZGNFlTU1BMNDh3eDFZSzJCYWtBQ05lX3JwUGpzLTU0bXZqNzA5Q3k1c0gxWEdLc1Fyekd6aGd2Q2FYODE5M3Z5MGktM1ZLQmJzRElxaGVKbXJBeEs5MEVPaklUQUwwMlEzRjFSQVNZRGdCV3ZWNUFJU2JPVEZiVTFpMGR5YkdCemRhRXVUaVBFZldMb21RYWlmWE0xZWRtVkdpSnVtTUlaMTFKRFdxTmZtWUJ3VWxic2t4WE9GT3NJRVY1LVo4SXBOWWRBclVGWkNNZG9VSkxVUkI0LUU2SEhLSWkyLUhaNUpBMkdwNWRsX2txTm5JMEdaT0NnVC1FMDN4Y2FfTlFucS1oWk9mOF9QNkJqMTBvTXBKcmxESjBjS2dETUFvVFBkYlhPX3RReElWN1JnTDM2N0hYMmk1QlJNSWNtYnNqUWpNRF8tZDRxVll4WGNfVzJzV2w4N0wycjF3dkN6dkFsYlNrbW5QT2daZjlzOG1UY3Iza2s3U291WERNNXgzd3R3bEV2X1ZWal9GYm5OREpqeUhqRWVhNGxNTHRjd0o4bFlkYWZOWjB3QTNWS3RQaG9aR3dKOGJGZFdEN3pKNXpEeUZObFVxVEJCUUk5RWJ2STJmRl8walRDTmROUEs4ZUVaQTNydlRkQk1NSWRTTU4wc01xSXFjSElxa1JGV01SUkNZRmJPWUdzSmVjSERjVTUyQTJ3ZkgtRGtRSzA2dkU3VklaV0MxSlE3SnZJRXpiTWYzbHp5WEVsVXI1TGVhb3h6SFlZeHVabVhEUU9wV1pTREl3b3JxVXplRVhlWUxQZk1RdEoyVERPSHhvX3ZRZnh5ZElKRlE0MzlUV0Z6bTRjRW1tT2tCc3o2ZEhSUGN1d0ZaNXNoZFAwcXhId1Atb3dCNWhlLVlrbjc0S1ZNaFk0WVV3X3dRNjZld3I0UG1jSERXaHg3LW5vUHNqc0NaNDdLT3EtbE1VQkZGajl1aktzMFczZ1l1U01CY3J3bnkxaFVsM2RBd0VPY25kV2ZWMXRIZzNGMjk5NUVYLUNhd1VoUEtXbktUbmhoNUVnNTVDVEpjYkhrbkV4OVdOdXRjY3VxbjJLQjhxUlhKYkMtaHlidTJWVkswZ0JJeTdxX0xvLTY3SDUwM25oZ0ZQOGg1UDhjbk5TVERaSDdZVDlGRlk5ZnpId1NTbG56QnozV3lKUm16bmJUM1lMQks5Tld5cG9KeEswT3FDb3dRa3l4WlA1M2pKTlhPbDh6RjlZUGpVd2tYQXluM293WEowdzZZX3ppNExpYUNwenlBU0trVjJxcWdKUWQxQzBhV1JlUkMwd29yU3hmb2FUZkZXQTBoZFhFSEdYOUlkR3FoWUtQV3JJOFVkWjlUYXBfMEcwMF0tLT48L2c+PC9zdmc+",
"02-domain-model": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U3R5bGVUeXBlPSJ0ZXh0L2NzcyIgZGF0YS1kaWFncmFtLXR5cGU9IkNMQVNTIiBoZWlnaHQ9Ijk5MnB4IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBzdHlsZT0id2lkdGg6MTU3NnB4O2hlaWdodDo5OTJweDtiYWNrZ3JvdW5kOiNGRkZGRkY7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNTc2IDk5MiIgd2lkdGg9IjE1NzZweCIgem9vbUFuZFBhbj0ibWFnbmlmeSI+PHRpdGxlPlNpc3RlbWEgZGUgUmVnaXN0cm8gZGUgRXN0dWRpYW50ZXMgLSBNb2RlbG8gZGUgRG9taW5pbzwvdGl0bGU+PGRlZnMvPjxnPjxnIGNsYXNzPSJ0aXRsZSIgZGF0YS1zb3VyY2UtbGluZT0iNyI+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMjIiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjcwNS45NDQzIiB4PSI0MzAuNjU4NiIgeT0iMzUuNDIwOSI+U2lzdGVtYSBkZSBSZWdpc3RybyBkZSBFc3R1ZGlhbnRlcyAtIE1vZGVsbyBkZSBEb21pbmlvPC90ZXh0PjwvZz48IS0tY2x1c3RlciBEb21haW4tLT48ZyBjbGFzcz0iY2x1c3RlciIgZGF0YS1lbnRpdHk9IkRvbWFpbiIgZGF0YS1zb3VyY2UtbGluZT0iOSIgZGF0YS11aWQ9ImVudDAwMDIiIGlkPSJjbHVzdGVyX0RvbWFpbiI+PHBhdGggZD0iTTEzLjUsNTcuNjA5NCBMNzQuNTQsNTcuNjA5NCBBMy43NSwzLjc1IDAgMCAxIDc3LjA0LDYwLjEwOTQgTDg0LjA0LDc5LjkwNjMgTDExNDcuNSw3OS45MDYzIEEyLjUsMi41IDAgMCAxIDExNTAsODIuNDA2MyBMMTE1MCw5ODIuOTk5NCBBMi41LDIuNSAwIDAgMSAxMTQ3LjUsOTg1LjQ5OTQgTDEzLjUsOTg1LjQ5OTQgQTIuNSwyLjUgMCAwIDEgMTEsOTgyLjk5OTQgTDExLDYwLjEwOTQgQTIuNSwyLjUgMCAwIDEgMTMuNSw1Ny42MDk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgeDE9IjExIiB4Mj0iODQuMDQiIHkxPSI3OS45MDYzIiB5Mj0iNzkuOTA2MyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI2MC4wNCIgeD0iMTUiIHk9IjcyLjYwNDUiPkRvbWFpbjwvdGV4dD48L2c+PCEtLWNsYXNzIFVzZXItLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iVXNlciIgZGF0YS1zb3VyY2UtbGluZT0iMTEiIGRhdGEtdWlkPSJlbnQwMDAzIiBpZD0iZW50aXR5X1VzZXIiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMjY4LjEyNSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjMyNS45MzM2IiB4PSIyNy4wMyIgeT0iOTIuNjA5NCIvPjxlbGxpcHNlIGN4PSIxNjMuMzIzOSIgY3k9IjExMi43NDIyIiBmaWxsPSIjRkZGRkZGIiByeD0iOSIgcnk9IjkiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNMTY2LjI5MjcsMTE4LjM4MjggUTE2NS43MTQ2LDExOC42Nzk3IDE2NS4wNzM5LDExOC44MjAzIFExNjQuNDMzMywxMTguOTc2NiAxNjMuNzMwMiwxMTguOTc2NiBRMTYxLjIzMDIsMTE4Ljk3NjYgMTU5LjkwMjEsMTE3LjMzNTkgUTE1OC41ODk2LDExNS42Nzk3IDE1OC41ODk2LDExMi41NTQ3IFExNTguNTg5NiwxMDkuNDI5NyAxNTkuOTAyMSwxMDcuNzczNCBRMTYxLjIzMDIsMTA2LjExNzIgMTYzLjczMDIsMTA2LjExNzIgUTE2NC40MzMzLDEwNi4xMTcyIDE2NS4wNzM5LDEwNi4yNzM0IFExNjUuNzMwMiwxMDYuNDI5NyAxNjYuMjkyNywxMDYuNzI2NiBMMTY2LjI5MjcsMTA5LjQ0NTMgUTE2NS42Njc3LDEwOC44NjcyIDE2NS4wNzM5LDEwOC42MDE2IFExNjQuNDgwMiwxMDguMzIwMyAxNjMuODU1MiwxMDguMzIwMyBRMTYyLjUxMTQsMTA4LjMyMDMgMTYxLjgyMzksMTA5LjM5ODQgUTE2MS4xMzY0LDExMC40NjA5IDE2MS4xMzY0LDExMi41NTQ3IFExNjEuMTM2NCwxMTQuNjQ4NCAxNjEuODIzOSwxMTUuNzI2NiBRMTYyLjUxMTQsMTE2Ljc4OTEgMTYzLjg1NTIsMTE2Ljc4OTEgUTE2NC40ODAyLDExNi43ODkxIDE2NS4wNzM5LDExNi41MjM0IFExNjUuNjY3NywxMTYuMjQyMiAxNjYuMjkyNywxMTUuNjY0MSBMMTY2LjI5MjcsMTE4LjM4MjggWiAiIGZpbGw9IiMwMDAwMDAiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMiIgZm9udC1zdHlsZT0iaXRhbGljIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjQ5Ljg0NTciIHg9IjE3OC44MjM5IiB5PSIxMDguNzQ4Ij4mIzE3MTtFbnRpdHkmIzE4Nzs8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjM2LjEwMDYiIHg9IjE4NS42OTY1IiB5PSIxMjQuNTczMiI+VXNlcjwvdGV4dD48bGluZSBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iMjguMDMiIHgyPSIzNTEuOTYzNiIgeTE9IjEzMi44NzUiIHkyPSIxMzIuODc1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNDUuMjQ3MSIgeD0iMzMuMDMiIHk9IjE0OS44NzAxIj4taWQ6IGludDwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMjQuNjQ2NSIgeD0iMzMuMDMiIHk9IjE2Ni4xNjciPi11c2VybmFtZTogc3RyaW5nPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE1Ni4zOTI2IiB4PSIzMy4wMyIgeT0iMTgyLjQ2MzkiPi1wYXNzd29yZEhhc2g6IHN0cmluZzwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxODcuMDkyOCIgeD0iMzMuMDMiIHk9IjE5OC43NjA3Ij4tcmVjb3ZlcnlDb2RlSGFzaDogc3RyaW5nPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjgxLjIzMTQiIHg9IjMzLjAzIiB5PSIyMTUuMDU3NiI+LXJvbGU6IHN0cmluZzwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMDYuNDM1NSIgeD0iMzMuMDMiIHk9IjIzMS4zNTQ1Ij4tc3R1ZGVudElkOiBpbnQ/PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE1MS4wNzQyIiB4PSIzMy4wMyIgeT0iMjQ3LjY1MTQiPi1jcmVhdGVkQXQ6IERhdGVUaW1lPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE2OC4xMzY3IiB4PSIzMy4wMyIgeT0iMjYzLjk0ODIiPi1sYXN0TG9naW5BdDogRGF0ZVRpbWU/PC90ZXh0PjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSIyOC4wMyIgeDI9IjM1MS45NjM2IiB5MT0iMjcxLjI1IiB5Mj0iMjcxLjI1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dC1kZWNvcmF0aW9uPSJ1bmRlcmxpbmUiIHRleHRMZW5ndGg9IjMxMy45MzM2IiB4PSIzMy4wMyIgeT0iMjg4LjI0NTEiPitDcmVhdGUodXNlcm5hbWUsIHBhc3N3b3JkSGFzaCwgLi4uKTogVXNlcjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyNDIuNjI3OSIgeD0iMzMuMDMiIHk9IjMwNC41NDIiPitVcGRhdGVQYXNzd29yZChuZXdIYXNoKTogdm9pZDwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNzkuMzI3MSIgeD0iMzMuMDMiIHk9IjMyMC44Mzg5Ij4rVXBkYXRlTGFzdExvZ2luKCk6IHZvaWQ8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTA3LjA5MTgiIHg9IjMzLjAzIiB5PSIzMzcuMTM1NyI+K0lzQWRtaW46IGJvb2w8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTE3LjMzODkiIHg9IjMzLjAzIiB5PSIzNTMuNDMyNiI+K0lzU3R1ZGVudDogYm9vbDwvdGV4dD48L2c+PCEtLWNsYXNzIFN0dWRlbnQtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iU3R1ZGVudCIgZGF0YS1zb3VyY2UtbGluZT0iMjgiIGRhdGEtdWlkPSJlbnQwMDA0IiBpZD0iZW50aXR5X1N0dWRlbnQiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMzAwLjcxODgiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIzMDcuODc5OSIgeD0iNDk2LjA2IiB5PSI0MzcuNzI5NCIvPjxlbGxpcHNlIGN4PSI2MTQuNzkxIiBjeT0iNDU3Ljg2MjIiIGZpbGw9IiNGRkZGRkYiIHJ4PSI5IiByeT0iOSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwYXRoIGQ9Ik02MTcuNzU5Nyw0NjMuNTAyOCBRNjE3LjE4MTYsNDYzLjc5OTcgNjE2LjU0MSw0NjMuOTQwMyBRNjE1LjkwMDMsNDY0LjA5NjYgNjE1LjE5NzIsNDY0LjA5NjYgUTYxMi42OTcyLDQ2NC4wOTY2IDYxMS4zNjkxLDQ2Mi40NTU5IFE2MTAuMDU2Niw0NjAuNzk5NyA2MTAuMDU2Niw0NTcuNjc0NyBRNjEwLjA1NjYsNDU0LjU0OTcgNjExLjM2OTEsNDUyLjg5MzQgUTYxMi42OTcyLDQ1MS4yMzcyIDYxNS4xOTcyLDQ1MS4yMzcyIFE2MTUuOTAwMyw0NTEuMjM3MiA2MTYuNTQxLDQ1MS4zOTM0IFE2MTcuMTk3Miw0NTEuNTQ5NyA2MTcuNzU5Nyw0NTEuODQ2NiBMNjE3Ljc1OTcsNDU0LjU2NTMgUTYxNy4xMzQ3LDQ1My45ODcyIDYxNi41NDEsNDUzLjcyMTYgUTYxNS45NDcyLDQ1My40NDAzIDYxNS4zMjIyLDQ1My40NDAzIFE2MTMuOTc4NSw0NTMuNDQwMyA2MTMuMjkxLDQ1NC41MTg0IFE2MTIuNjAzNSw0NTUuNTgwOSA2MTIuNjAzNSw0NTcuNjc0NyBRNjEyLjYwMzUsNDU5Ljc2ODQgNjEzLjI5MSw0NjAuODQ2NiBRNjEzLjk3ODUsNDYxLjkwOTEgNjE1LjMyMjIsNDYxLjkwOTEgUTYxNS45NDcyLDQ2MS45MDkxIDYxNi41NDEsNDYxLjY0MzQgUTYxNy4xMzQ3LDQ2MS4zNjIyIDYxNy43NTk3LDQ2MC43ODQxIEw2MTcuNzU5Nyw0NjMuNTAyOCBaICIgZmlsbD0iIzAwMDAwMCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEyIiBmb250LXN0eWxlPSJpdGFsaWMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNDkuODQ1NyIgeD0iNjM4LjgyNzEiIHk9IjQ1My44NjgiPiYjMTcxO0VudGl0eSYjMTg3OzwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjIuOTE4IiB4PSI2MzIuMjkxIiB5PSI0NjkuNjkzMiI+U3R1ZGVudDwvdGV4dD48bGluZSBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iNDk3LjA2IiB4Mj0iODAyLjkzOTkiIHkxPSI0NzcuOTk1IiB5Mj0iNDc3Ljk5NSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjQ1LjI0NzEiIHg9IjUwMi4wNiIgeT0iNDk0Ljk5MDEiPi1pZDogaW50PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijk0LjExMDQiIHg9IjUwMi4wNiIgeT0iNTExLjI4NyI+LW5hbWU6IHN0cmluZzwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5MS42Njk5IiB4PSI1MDIuMDYiIHk9IjUyNy41ODM5Ij4tZW1haWw6IEVtYWlsPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjIwMi4yODkxIiB4PSI1MDIuMDYiIHk9IjU0My44ODA3Ij4tYWN0aXZhdGlvbkNvZGVIYXNoOiBzdHJpbmc/PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjIyNS43NzczIiB4PSI1MDIuMDYiIHk9IjU2MC4xNzc2Ij4tYWN0aXZhdGlvbkV4cGlyZXNBdDogRGF0ZVRpbWU/PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjIyMi4wNzkxIiB4PSI1MDIuMDYiIHk9IjU3Ni40NzQ1Ij4tZW5yb2xsbWVudHM6IExpc3QmbHQ7RW5yb2xsbWVudCZndDs8L3RleHQ+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9IjQ5Ny4wNiIgeDI9IjgwMi45Mzk5IiB5MT0iNTgzLjc3NjMiIHkyPSI1ODMuNzc2MyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE1Ny44NDE4IiB4PSI1MDIuMDYiIHk9IjYwMC43NzE0Ij4rZ2V0VG90YWxDcmVkaXRzKCk6IGludDwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMjYuNjk3MyIgeD0iNTAyLjA2IiB5PSI2MTcuMDY4MiI+K2NhbkVucm9sbCgpOiBib29sPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjIzMC4zNjQzIiB4PSI1MDIuMDYiIHk9IjYzMy4zNjUxIj4raGFzUHJvZmVzc29yKHByb2Zlc3NvcklkKTogYm9vbDwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyNDAuNDMzNiIgeD0iNTAyLjA2IiB5PSI2NDkuNjYyIj4rYWRkRW5yb2xsbWVudChlbnJvbGxtZW50KTogdm9pZDwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyNjcuNTUxOCIgeD0iNTAyLjA2IiB5PSI2NjUuOTU4OSI+K3JlbW92ZUVucm9sbG1lbnQoZW5yb2xsbWVudCk6IHZvaWQ8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMjk1Ljg3OTkiIHg9IjUwMi4wNiIgeT0iNjgyLjI1NTciPitzZXRBY3RpdmF0aW9uQ29kZShoYXNoLCBleHBpcmVzSW4pOiB2b2lkPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjIwMi4xNTkyIiB4PSI1MDIuMDYiIHk9IjY5OC41NTI2Ij4rY2xlYXJBY3RpdmF0aW9uQ29kZSgpOiB2b2lkPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyOC40OTUxIiB4PSI1MDIuMDYiIHk9IjcxNC44NDk1Ij4raXNBY3RpdmF0ZWQ6IGJvb2w8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTk2LjQxMDIiIHg9IjUwMi4wNiIgeT0iNzMxLjE0NjQiPitpc0FjdGl2YXRpb25FeHBpcmVkKCk6IGJvb2w8L3RleHQ+PC9nPjwhLS1jbGFzcyBTdWJqZWN0LS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IlN1YmplY3QiIGRhdGEtc291cmNlLWxpbmU9IjQ3IiBkYXRhLXVpZD0iZW50MDAwNSIgaWQ9ImVudGl0eV9TdWJqZWN0Ij48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEzNy43NSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE5Ny4yNDAyIiB4PSI4NDUuMzgiIHk9IjUxOS4yMTk0Ii8+PGVsbGlwc2UgY3g9IjkxMC41NzE5IiBjeT0iNTM5LjM1MjIiIGZpbGw9IiNGRkZGRkYiIHJ4PSI5IiByeT0iOSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwYXRoIGQ9Ik05MTMuNTQwNiw1NDQuOTkyOCBROTEyLjk2MjUsNTQ1LjI4OTcgOTEyLjMyMTksNTQ1LjQzMDMgUTkxMS42ODEzLDU0NS41ODY2IDkxMC45NzgxLDU0NS41ODY2IFE5MDguNDc4MSw1NDUuNTg2NiA5MDcuMTUsNTQzLjk0NTkgUTkwNS44Mzc1LDU0Mi4yODk3IDkwNS44Mzc1LDUzOS4xNjQ3IFE5MDUuODM3NSw1MzYuMDM5NyA5MDcuMTUsNTM0LjM4MzQgUTkwOC40NzgxLDUzMi43MjcyIDkxMC45NzgxLDUzMi43MjcyIFE5MTEuNjgxMyw1MzIuNzI3MiA5MTIuMzIxOSw1MzIuODgzNCBROTEyLjk3ODEsNTMzLjAzOTcgOTEzLjU0MDYsNTMzLjMzNjYgTDkxMy41NDA2LDUzNi4wNTUzIFE5MTIuOTE1Niw1MzUuNDc3MiA5MTIuMzIxOSw1MzUuMjExNiBROTExLjcyODEsNTM0LjkzMDMgOTExLjEwMzEsNTM0LjkzMDMgUTkwOS43NTk0LDUzNC45MzAzIDkwOS4wNzE5LDUzNi4wMDg0IFE5MDguMzg0NCw1MzcuMDcwOSA5MDguMzg0NCw1MzkuMTY0NyBROTA4LjM4NDQsNTQxLjI1ODQgOTA5LjA3MTksNTQyLjMzNjYgUTkwOS43NTk0LDU0My4zOTkxIDkxMS4xMDMxLDU0My4zOTkxIFE5MTEuNzI4MSw1NDMuMzk5MSA5MTIuMzIxOSw1NDMuMTMzNCBROTEyLjkxNTYsNTQyLjg1MjIgOTEzLjU0MDYsNTQyLjI3NDEgTDkxMy41NDA2LDU0NC45OTI4IFogIiBmaWxsPSIjMDAwMDAwIi8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtc3R5bGU9Iml0YWxpYyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI0OS44NDU3IiB4PSI5MzIuODI3MyIgeT0iNTM1LjM1OCI+JiMxNzE7RW50aXR5JiMxODc7PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI1OS4zNTY0IiB4PSI5MjguMDcxOSIgeT0iNTUxLjE4MzIiPlN1YmplY3Q8L3RleHQ+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9Ijg0Ni4zOCIgeDI9IjEwNDEuNjIwMiIgeTE9IjU1OS40ODUiIHkyPSI1NTkuNDg1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNDUuMjQ3MSIgeD0iODUxLjM4IiB5PSI1NzYuNDgwMSI+LWlkOiBpbnQ8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iOTQuMTEwNCIgeD0iODUxLjM4IiB5PSI1OTIuNzc3Ij4tbmFtZTogc3RyaW5nPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyNy40NDkyIiB4PSI4NTEuMzgiIHk9IjYwOS4wNzM5Ij4tY3JlZGl0czogaW50IHs9IDN9PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjExMS4xNDU1IiB4PSI4NTEuMzgiIHk9IjYyNS4zNzA3Ij4tcHJvZmVzc29ySWQ6IGludDwvdGV4dD48bGluZSBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iODQ2LjM4IiB4Mj0iMTA0MS42MjAyIiB5MT0iNjMyLjY3MjUiIHkyPSI2MzIuNjcyNSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE4NS4yNDAyIiB4PSI4NTEuMzgiIHk9IjY0OS42Njc2Ij4rZ2V0UHJvZmVzc29yKCk6IFByb2Zlc3NvcjwvdGV4dD48L2c+PCEtLWNsYXNzIFByb2Zlc3Nvci0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJQcm9mZXNzb3IiIGRhdGEtc291cmNlLWxpbmU9IjU2IiBkYXRhLXVpZD0iZW50MDAwNiIgaWQ9ImVudGl0eV9Qcm9mZXNzb3IiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTIxLjQ1MzEiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIyMjYuNzEiIHg9IjkwNy42NSIgeT0iMTY1Ljk0OTQiLz48ZWxsaXBzZSBjeD0iOTc5LjQ3NjIiIGN5PSIxODYuMDgyMiIgZmlsbD0iI0ZGRkZGRiIgcng9IjkiIHJ5PSI5IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTk4Mi40NDQ5LDE5MS43MjI4IFE5ODEuODY2OCwxOTIuMDE5NyA5ODEuMjI2MiwxOTIuMTYwMyBROTgwLjU4NTUsMTkyLjMxNjYgOTc5Ljg4MjQsMTkyLjMxNjYgUTk3Ny4zODI0LDE5Mi4zMTY2IDk3Ni4wNTQzLDE5MC42NzU5IFE5NzQuNzQxOCwxODkuMDE5NyA5NzQuNzQxOCwxODUuODk0NyBROTc0Ljc0MTgsMTgyLjc2OTcgOTc2LjA1NDMsMTgxLjExMzQgUTk3Ny4zODI0LDE3OS40NTcyIDk3OS44ODI0LDE3OS40NTcyIFE5ODAuNTg1NSwxNzkuNDU3MiA5ODEuMjI2MiwxNzkuNjEzNCBROTgxLjg4MjQsMTc5Ljc2OTcgOTgyLjQ0NDksMTgwLjA2NjYgTDk4Mi40NDQ5LDE4Mi43ODUzIFE5ODEuODE5OSwxODIuMjA3MiA5ODEuMjI2MiwxODEuOTQxNiBROTgwLjYzMjQsMTgxLjY2MDMgOTgwLjAwNzQsMTgxLjY2MDMgUTk3OC42NjM3LDE4MS42NjAzIDk3Ny45NzYyLDE4Mi43Mzg0IFE5NzcuMjg4NywxODMuODAwOSA5NzcuMjg4NywxODUuODk0NyBROTc3LjI4ODcsMTg3Ljk4ODQgOTc3Ljk3NjIsMTg5LjA2NjYgUTk3OC42NjM3LDE5MC4xMjkxIDk4MC4wMDc0LDE5MC4xMjkxIFE5ODAuNjMyNCwxOTAuMTI5MSA5ODEuMjI2MiwxODkuODYzNCBROTgxLjgxOTksMTg5LjU4MjIgOTgyLjQ0NDksMTg5LjAwNDEgTDk4Mi40NDQ5LDE5MS43MjI4IFogIiBmaWxsPSIjMDAwMDAwIi8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtc3R5bGU9Iml0YWxpYyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI0OS44NDU3IiB4PSIxMDA5LjgzMjEiIHk9IjE4Mi4wODgiPiYjMTcxO0VudGl0eSYjMTg3OzwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNzUuNTU3NiIgeD0iOTk2Ljk3NjIiIHk9IjE5Ny45MTMyIj5Qcm9mZXNzb3I8L3RleHQ+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9IjkwOC42NSIgeDI9IjExMzMuMzYiIHkxPSIyMDYuMjE1IiB5Mj0iMjA2LjIxNSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjQ1LjI0NzEiIHg9IjkxMy42NSIgeT0iMjIzLjIxMDEiPi1pZDogaW50PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijk0LjExMDQiIHg9IjkxMy42NSIgeT0iMjM5LjUwNyI+LW5hbWU6IHN0cmluZzwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNzIuNTI1NCIgeD0iOTEzLjY1IiB5PSIyNTUuODAzOSI+LXN1YmplY3RzOiBMaXN0Jmx0O1N1YmplY3QmZ3Q7PC90ZXh0PjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSI5MDguNjUiIHgyPSIxMTMzLjM2IiB5MT0iMjYzLjEwNTYiIHkyPSIyNjMuMTA1NiIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjIxNC43MSIgeD0iOTEzLjY1IiB5PSIyODAuMTAwNyI+K2dldFN1YmplY3RzKCk6IExpc3QmbHQ7U3ViamVjdCZndDs8L3RleHQ+PC9nPjwhLS1jbGFzcyBFbnJvbGxtZW50LS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkVucm9sbG1lbnQiIGRhdGEtc291cmNlLWxpbmU9IjY0IiBkYXRhLXVpZD0iZW50MDAwNyIgaWQ9ImVudGl0eV9FbnJvbGxtZW50Ij48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjE1NC4wNDY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTc3LjAzMzIiIHg9IjgyMC40OCIgeT0iODE1LjQ0OTQiLz48ZWxsaXBzZSBjeD0iODYyLjA1MDMiIGN5PSI4MzUuNTgyMiIgZmlsbD0iI0ZGRkZGRiIgcng9IjkiIHJ5PSI5IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTg2NS4wMTkxLDg0MS4yMjI4IFE4NjQuNDQwOSw4NDEuNTE5NyA4NjMuODAwMyw4NDEuNjYwMyBRODYzLjE1OTcsODQxLjgxNjYgODYyLjQ1NjYsODQxLjgxNjYgUTg1OS45NTY2LDg0MS44MTY2IDg1OC42Mjg0LDg0MC4xNzU5IFE4NTcuMzE1OSw4MzguNTE5NyA4NTcuMzE1OSw4MzUuMzk0NyBRODU3LjMxNTksODMyLjI2OTcgODU4LjYyODQsODMwLjYxMzQgUTg1OS45NTY2LDgyOC45NTcyIDg2Mi40NTY2LDgyOC45NTcyIFE4NjMuMTU5Nyw4MjguOTU3MiA4NjMuODAwMyw4MjkuMTEzNCBRODY0LjQ1NjYsODI5LjI2OTcgODY1LjAxOTEsODI5LjU2NjYgTDg2NS4wMTkxLDgzMi4yODUzIFE4NjQuMzk0MSw4MzEuNzA3MiA4NjMuODAwMyw4MzEuNDQxNiBRODYzLjIwNjYsODMxLjE2MDMgODYyLjU4MTYsODMxLjE2MDMgUTg2MS4yMzc4LDgzMS4xNjAzIDg2MC41NTAzLDgzMi4yMzg0IFE4NTkuODYyOCw4MzMuMzAwOSA4NTkuODYyOCw4MzUuMzk0NyBRODU5Ljg2MjgsODM3LjQ4ODQgODYwLjU1MDMsODM4LjU2NjYgUTg2MS4yMzc4LDgzOS42MjkxIDg2Mi41ODE2LDgzOS42MjkxIFE4NjMuMjA2Niw4MzkuNjI5MSA4NjMuODAwMyw4MzkuMzYzNCBRODY0LjM5NDEsODM5LjA4MjIgODY1LjAxOTEsODM4LjUwNDEgTDg2NS4wMTkxLDg0MS4yMjI4IFogIiBmaWxsPSIjMDAwMDAwIi8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtc3R5bGU9Iml0YWxpYyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI0OS44NDU3IiB4PSI4OTcuODIzOCIgeT0iODMxLjU4OCI+JiMxNzE7RW50aXR5JiMxODc7PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4Ni4zOTI2IiB4PSI4NzkuNTUwMyIgeT0iODQ3LjQxMzIiPkVucm9sbG1lbnQ8L3RleHQ+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9IjgyMS40OCIgeDI9Ijk5Ni41MTMyIiB5MT0iODU1LjcxNSIgeTI9Ijg1NS43MTUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI0NS4yNDcxIiB4PSI4MjYuNDgiIHk9Ijg3Mi43MTAxIj4taWQ6IGludDwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5OS4wMDQ5IiB4PSI4MjYuNDgiIHk9Ijg4OS4wMDciPi1zdHVkZW50SWQ6IGludDwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5Ni4yMjk1IiB4PSI4MjYuNDgiIHk9IjkwNS4zMDM5Ij4tc3ViamVjdElkOiBpbnQ8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTU0LjUyNjQiIHg9IjgyNi40OCIgeT0iOTIxLjYwMDciPi1lbnJvbGxlZEF0OiBEYXRlVGltZTwvdGV4dD48bGluZSBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iODIxLjQ4IiB4Mj0iOTk2LjUxMzIiIHkxPSI5MjguOTAyNSIgeTI9IjkyOC45MDI1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTY1LjAzMzIiIHg9IjgyNi40OCIgeT0iOTQ1Ljg5NzYiPitnZXRTdHVkZW50KCk6IFN0dWRlbnQ8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTU5LjQ4MjQiIHg9IjgyNi40OCIgeT0iOTYyLjE5NDUiPitnZXRTdWJqZWN0KCk6IFN1YmplY3Q8L3RleHQ+PC9nPjwhLS1jbGFzcyBFbWFpbC0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJFbWFpbCIgZGF0YS1zb3VyY2UtbGluZT0iNzQiIGRhdGEtdWlkPSJlbnQwMDA4IiBpZD0iZW50aXR5X0VtYWlsIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwNS4xNTYzIiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMjE1LjAwNjgiIHg9IjU0Mi41IiB5PSI4MzkuODk5NCIvPjxlbGxpcHNlIGN4PSI2MDIuNDU2NSIgY3k9Ijg2MC4wMzIyIiBmaWxsPSIjRkZGRkZGIiByeD0iOSIgcnk9IjkiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNNjA1LjQyNTMsODY1LjY3MjggUTYwNC44NDcyLDg2NS45Njk3IDYwNC4yMDY1LDg2Ni4xMTAzIFE2MDMuNTY1OSw4NjYuMjY2NiA2MDIuODYyOCw4NjYuMjY2NiBRNjAwLjM2MjgsODY2LjI2NjYgNTk5LjAzNDcsODY0LjYyNTkgUTU5Ny43MjIyLDg2Mi45Njk3IDU5Ny43MjIyLDg1OS44NDQ3IFE1OTcuNzIyMiw4NTYuNzE5NyA1OTkuMDM0Nyw4NTUuMDYzNCBRNjAwLjM2MjgsODUzLjQwNzIgNjAyLjg2MjgsODUzLjQwNzIgUTYwMy41NjU5LDg1My40MDcyIDYwNC4yMDY1LDg1My41NjM0IFE2MDQuODYyOCw4NTMuNzE5NyA2MDUuNDI1Myw4NTQuMDE2NiBMNjA1LjQyNTMsODU2LjczNTMgUTYwNC44MDAzLDg1Ni4xNTcyIDYwNC4yMDY1LDg1NS44OTE2IFE2MDMuNjEyOCw4NTUuNjEwMyA2MDIuOTg3OCw4NTUuNjEwMyBRNjAxLjY0NCw4NTUuNjEwMyA2MDAuOTU2NSw4NTYuNjg4NCBRNjAwLjI2OSw4NTcuNzUwOSA2MDAuMjY5LDg1OS44NDQ3IFE2MDAuMjY5LDg2MS45Mzg0IDYwMC45NTY1LDg2My4wMTY2IFE2MDEuNjQ0LDg2NC4wNzkxIDYwMi45ODc4LDg2NC4wNzkxIFE2MDMuNjEyOCw4NjQuMDc5MSA2MDQuMjA2NSw4NjMuODEzNCBRNjA0LjgwMDMsODYzLjUzMjIgNjA1LjQyNTMsODYyLjk1NDEgTDYwNS40MjUzLDg2NS42NzI4IFogIiBmaWxsPSIjMDAwMDAwIi8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtc3R5bGU9Iml0YWxpYyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5MS41OTM4IiB4PSI2MTcuOTU2NSIgeT0iODU2LjAzOCI+JiMxNzE7VmFsdWUgT2JqZWN0JiMxODc7PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI0My4xOTYzIiB4PSI2NDIuMTU1MyIgeT0iODcxLjg2MzIiPkVtYWlsPC90ZXh0PjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSI1NDMuNSIgeDI9Ijc1Ni41MDY4IiB5MT0iODgwLjE2NSIgeTI9Ijg4MC4xNjUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5Mi42NDc1IiB4PSI1NDguNSIgeT0iODk3LjE2MDEiPi12YWx1ZTogc3RyaW5nPC90ZXh0PjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSI1NDMuNSIgeDI9Ijc1Ni41MDY4IiB5MT0iOTA0LjQ2MTkiIHkyPSI5MDQuNDYxOSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHQtZGVjb3JhdGlvbj0idW5kZXJsaW5lIiB0ZXh0TGVuZ3RoPSIyMDMuMDA2OCIgeD0iNTQ4LjUiIHk9IjkyMS40NTciPitjcmVhdGUodmFsdWU6IHN0cmluZyk6IEVtYWlsPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE5OC41NzcxIiB4PSI1NDguNSIgeT0iOTM3Ljc1MzkiPi12YWxpZGF0ZSh2YWx1ZTogc3RyaW5nKTogdm9pZDwvdGV4dD48L2c+PCEtLWNsYXNzIEVucm9sbG1lbnREb21haW5TZXJ2aWNlLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkVucm9sbG1lbnREb21haW5TZXJ2aWNlIiBkYXRhLXNvdXJjZS1saW5lPSI4MSIgZGF0YS11aWQ9ImVudDAwMDkiIGlkPSJlbnRpdHlfRW5yb2xsbWVudERvbWFpblNlcnZpY2UiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTA1LjE1NjMiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0ODQuNSIgeD0iMzg3Ljc1IiB5PSIxNzQuMDg5NCIvPjxlbGxpcHNlIGN4PSI1MjMuOTMzMSIgY3k9IjE5NC4yMjIyIiBmaWxsPSIjRkZGRkZGIiByeD0iOSIgcnk9IjkiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNNTI2LjkwMTksMTk5Ljg2MjggUTUyNi4zMjM3LDIwMC4xNTk3IDUyNS42ODMxLDIwMC4zMDAzIFE1MjUuMDQyNSwyMDAuNDU2NiA1MjQuMzM5NCwyMDAuNDU2NiBRNTIxLjgzOTQsMjAwLjQ1NjYgNTIwLjUxMTIsMTk4LjgxNTkgUTUxOS4xOTg3LDE5Ny4xNTk3IDUxOS4xOTg3LDE5NC4wMzQ3IFE1MTkuMTk4NywxOTAuOTA5NyA1MjAuNTExMiwxODkuMjUzNCBRNTIxLjgzOTQsMTg3LjU5NzIgNTI0LjMzOTQsMTg3LjU5NzIgUTUyNS4wNDI1LDE4Ny41OTcyIDUyNS42ODMxLDE4Ny43NTM0IFE1MjYuMzM5NCwxODcuOTA5NyA1MjYuOTAxOSwxODguMjA2NiBMNTI2LjkwMTksMTkwLjkyNTMgUTUyNi4yNzY5LDE5MC4zNDcyIDUyNS42ODMxLDE5MC4wODE2IFE1MjUuMDg5NCwxODkuODAwMyA1MjQuNDY0NCwxODkuODAwMyBRNTIzLjEyMDYsMTg5LjgwMDMgNTIyLjQzMzEsMTkwLjg3ODQgUTUyMS43NDU2LDE5MS45NDA5IDUyMS43NDU2LDE5NC4wMzQ3IFE1MjEuNzQ1NiwxOTYuMTI4NCA1MjIuNDMzMSwxOTcuMjA2NiBRNTIzLjEyMDYsMTk4LjI2OTEgNTI0LjQ2NDQsMTk4LjI2OTEgUTUyNS4wODk0LDE5OC4yNjkxIDUyNS42ODMxLDE5OC4wMDM0IFE1MjYuMjc2OSwxOTcuNzIyMiA1MjYuOTAxOSwxOTcuMTQ0MSBMNTI2LjkwMTksMTk5Ljg2MjggWiAiIGZpbGw9IiMwMDAwMDAiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMiIgZm9udC1zdHlsZT0iaXRhbGljIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEwOS41NDEiIHg9IjU4OC45Nzk1IiB5PSIxOTAuMjI4Ij4mIzE3MTtEb21haW4gU2VydmljZSYjMTg3OzwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMjA0LjYzMzgiIHg9IjU0MS40MzMxIiB5PSIyMDYuMDUzMiI+RW5yb2xsbWVudERvbWFpblNlcnZpY2U8L3RleHQ+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9IjM4OC43NSIgeDI9Ijg3MS4yNSIgeTE9IjIxNC4zNTUiIHkyPSIyMTQuMzU1Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9IjM4OC43NSIgeDI9Ijg3MS4yNSIgeTE9IjIyMi4zNTUiIHkyPSIyMjIuMzU1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNDMzLjAzNjEiIHg9IjM5My43NSIgeT0iMjM5LjM1MDEiPit2YWxpZGF0ZUVucm9sbG1lbnQoc3R1ZGVudDogU3R1ZGVudCwgc3ViamVjdDogU3ViamVjdCk6IHZvaWQ8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMzI2LjIyNDYiIHg9IjM5My43NSIgeT0iMjU1LjY0NyI+LWNoZWNrTWF4RW5yb2xsbWVudHMoc3R1ZGVudDogU3R1ZGVudCk6IHZvaWQ8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNDcyLjUiIHg9IjM5My43NSIgeT0iMjcxLjk0MzkiPi1jaGVja1Byb2Zlc3NvckNvbnN0cmFpbnQoc3R1ZGVudDogU3R1ZGVudCwgc3ViamVjdDogU3ViamVjdCk6IHZvaWQ8L3RleHQ+PC9nPjwhLS1jbGFzcyBVc2VyUm9sZXMtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iVXNlclJvbGVzIiBkYXRhLXNvdXJjZS1saW5lPSI4OCIgZGF0YS11aWQ9ImVudDAwMTAiIGlkPSJlbnRpdHlfVXNlclJvbGVzIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9Ijg4Ljg1OTQiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMTUuOTUxMiIgeD0iMTMyLjAyIiB5PSI1NDMuNjU5NCIvPjxlbGxpcHNlIGN4PSIxNDUuMDIiIGN5PSI1NjMuNzkyMiIgZmlsbD0iI0ZGRkZGRiIgcng9IjkiIHJ5PSI5IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTE0OS4xMjk0LDU2OS43OTIyIEwxNDEuNDEwNiw1NjkuNzkyMiBMMTQxLjQxMDYsNTU3LjQwMTYgTDE0OS4xMjk0LDU1Ny40MDE2IEwxNDkuMTI5NCw1NTkuNTU3OCBMMTQzLjg2MzgsNTU5LjU1NzggTDE0My44NjM4LDU2Mi4yMjk3IEwxNDguNjI5NCw1NjIuMjI5NyBMMTQ4LjYyOTQsNTY0LjM4NTkgTDE0My44NjM4LDU2NC4zODU5IEwxNDMuODYzOCw1NjcuNjM1OSBMMTQ5LjEyOTQsNTY3LjYzNTkgTDE0OS4xMjk0LDU2OS43OTIyIFogIiBmaWxsPSIjMDAwMDAwIi8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtc3R5bGU9Iml0YWxpYyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5MS45NTEyIiB4PSIxNTUuMDIiIHk9IjU1OS43OTgiPiYjMTcxO0VudW1lcmF0aW9uJiMxODc7PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI3OS4xMjYiIHg9IjE2MS40MzI2IiB5PSI1NzUuNjIzMiI+VXNlclJvbGVzPC90ZXh0PjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSIxMzMuMDIiIHgyPSIyNDYuOTcxMiIgeTE9IjU4My45MjUiIHkyPSI1ODMuOTI1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNDQuODY0MyIgeD0iMTM4LjAyIiB5PSI2MDAuOTIwMSI+QWRtaW48L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNTUuMTExMyIgeD0iMTM4LjAyIiB5PSI2MTcuMjE3Ij5TdHVkZW50PC90ZXh0PjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSIxMzMuMDIiIHgyPSIyNDYuOTcxMiIgeTE9IjYyNC41MTg4IiB5Mj0iNjI0LjUxODgiLz48L2c+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkdNTjE5IiBkYXRhLXNvdXJjZS1saW5lPSIxMDYiIGRhdGEtdWlkPSJlbnQwMDIwIiBpZD0iZW50aXR5X0dNTjE5Ij48cGF0aCBkPSJNMTE2NS45NSw1NTIuODI5NCBMMTE2NS45NSw2MjMuMzYwNiBMMTM3Ni4wNDAzLDYyMy4zNjA2IEwxMzc2LjA0MDMsNTYyLjgyOTQgTDEzNjYuMDQwMyw1NTIuODI5NCBMMTE2NS45NSw1NTIuODI5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwYXRoIGQ9Ik0xMzY2LjA0MDMsNTUyLjgyOTQgTDEzNjYuMDQwMyw1NjIuODI5NCBMMTM3Ni4wNDAzLDU2Mi44Mjk0IEwxMzY2LjA0MDMsNTUyLjgyOTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTA2LjI5NzkiIHg9IjExNzEuOTUiIHk9IjU2OS44OTYzIj5BdXRlbnRpY2FjaSYjMjQzO246PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE4OS4wOTAzIiB4PSIxMTcxLjk1IiB5PSI1ODUuMDI5MSI+LSBQQktERjItU0hBMjU2ICgxMDBrIGl0ZXIpPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyNy4zNjU3IiB4PSIxMTcxLjk1IiB5PSI2MDAuMTYxOSI+LSBKV1QgcGFyYSBzZXNpb25lczwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNzYuMTcyOSIgeD0iMTE3MS45NSIgeT0iNjE1LjI5NDciPi0gUmVjb3ZlcnkgY29kZSBwYXJhIHJlc2V0PC90ZXh0PjwvZz48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iR01OMjIiIGRhdGEtc291cmNlLWxpbmU9IjExMyIgZGF0YS11aWQ9ImVudDAwMjMiIGlkPSJlbnRpdHlfR01OMjIiPjxwYXRoIGQ9Ik0xMTY1LjkyLDg0OS42Mzk0IEwxMTY1LjkyLDkzNS4zMDM0IEwxMzQ4LjA4Nyw5MzUuMzAzNCBMMTM0OC4wODcsODU5LjYzOTQgTDEzMzguMDg3LDg0OS42Mzk0IEwxMTY1LjkyLDg0OS42Mzk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTEzMzguMDg3LDg0OS42Mzk0IEwxMzM4LjA4Nyw4NTkuNjM5NCBMMTM0OC4wODcsODU5LjYzOTQgTDEzMzguMDg3LDg0OS42Mzk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijg4LjIwMDciIHg9IjExNzEuOTIiIHk9Ijg2Ni43MDYzIj5JbnZhcmlhbnRlczo8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTYxLjE2NyIgeD0iMTE3MS45MiIgeT0iODgxLjgzOTEiPi0gTSYjMjI1O3hpbW8gMyBpbnNjcmlwY2lvbmVzPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEzOS4yNjEyIiB4PSIxMTcxLjkyIiB5PSI4OTYuOTcxOSI+LSBFbWFpbCB2JiMyMjU7bGlkbyB5ICYjMjUwO25pY288L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTMyLjYwODkiIHg9IjExNzEuOTIiIHk9IjkxMi4xMDQ3Ij4tIE5vIHJlcGV0aXIgcHJvZmVzb3I8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTM3Ljg2NDciIHg9IjExNzEuOTIiIHk9IjkyNy4yMzc1Ij4tIFJlcXVpZXJlIGFjdGl2YWNpJiMyNDM7bjwvdGV4dD48L2c+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkdNTjI1IiBkYXRhLXNvdXJjZS1saW5lPSIxMjEiIGRhdGEtdWlkPSJlbnQwMDI2IiBpZD0iZW50aXR5X0dNTjI1Ij48cGF0aCBkPSJNMTM4Mi43NCw4NjQuNzc5NCBMMTM4Mi43NCw5MjAuMTc3OCBMMTU2OS4yNjE1LDkyMC4xNzc4IEwxNTY5LjI2MTUsODc0Ljc3OTQgTDE1NTkuMjYxNSw4NjQuNzc5NCBMMTM4Mi43NCw4NjQuNzc5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwYXRoIGQ9Ik0xNTU5LjI2MTUsODY0Ljc3OTQgTDE1NTkuMjYxNSw4NzQuNzc5NCBMMTU2OS4yNjE1LDg3NC43Nzk0IEwxNTU5LjI2MTUsODY0Ljc3OTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODguMjAwNyIgeD0iMTM4OC43NCIgeT0iODgxLjg0NjMiPkludmFyaWFudGVzOjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMjQuMzg4NyIgeD0iMTM4OC43NCIgeT0iODk2Ljk3OTEiPi0gQ3ImIzIzMztkaXRvcyA9IDMgKGZpam8pPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE2NS41MjE1IiB4PSIxMzg4Ljc0IiB5PSI5MTIuMTExOSI+LSBQZXJ0ZW5lY2UgYSB1biBwcm9mZXNvcjwvdGV4dD48L2c+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkdNTjI4IiBkYXRhLXNvdXJjZS1saW5lPSIxMjciIGRhdGEtdWlkPSJlbnQwMDI5IiBpZD0iZW50aXR5X0dNTjI4Ij48cGF0aCBkPSJNMTE2OS4wMywxOTguOTY5NCBMMTE2OS4wMywyMjIuNjY5NCBMMTEzNC42MSwyMjYuNjY5NCBMMTE2OS4wMywyMzAuNjY5NCBMMTE2OS4wMywyNTQuMzY3OCBBMCwwIDAgMCAwIDExNjkuMDMsMjU0LjM2NzggTDEzMzAuOTYwNywyNTQuMzY3OCBBMCwwIDAgMCAwIDEzMzAuOTYwNywyNTQuMzY3OCBMMTMzMC45NjA3LDIwOC45Njk0IEwxMzIwLjk2MDcsMTk4Ljk2OTQgTDExNjkuMDMsMTk4Ljk2OTQgQTAsMCAwIDAgMCAxMTY5LjAzLDE5OC45Njk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTEzMjAuOTYwNywxOTguOTY5NCBMMTMyMC45NjA3LDIwOC45Njk0IEwxMzMwLjk2MDcsMjA4Ljk2OTQgTDEzMjAuOTYwNywxOTguOTY5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjkxLjU5MDMiIHg9IjExNzUuMDMiIHk9IjIxNi4wMzYzIj5DYWRhIHByb2Zlc29yPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE0MC45MzA3IiB4PSIxMTc1LjAzIiB5PSIyMzEuMTY5MSI+aW1wYXJ0ZSBleGFjdGFtZW50ZTwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI2OS44MjQyIiB4PSIxMTc1LjAzIiB5PSIyNDYuMzAxOSI+MiBtYXRlcmlhczwvdGV4dD48L2c+PCEtLWxpbmsgVXNlciB0byBTdHVkZW50LS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9IlVzZXIiIGRhdGEtZW50aXR5LTI9IlN0dWRlbnQiIGRhdGEtc291cmNlLWxpbmU9Ijk0IiBkYXRhLXVpZD0ibG5rMTEiIGlkPSJsaW5rX1VzZXJfU3R1ZGVudCI+PHBhdGggY29kZUxpbmU9Ijk0IiBkPSJNMzUzLjE1LDM1NS4xNDk0IEMzOTkuNTIsMzkxLjM3OTQgNDQ5Ljg3LDQzMC43MTk0IDQ5NS43LDQ2Ni41Mjk0IiBmaWxsPSJub25lIiBpZD0iVXNlci1TdHVkZW50IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNzQuODEzNSIgeD0iNDIxIiB5PSI0MDMuNzk2MyI+dmluY3VsYWRvIGE8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMjQuODA2NiIgeD0iMzYxLjEwNDkiIHk9IjM1Ny43MDExIj4wLi4xPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjI0LjgwNjYiIHg9IjQ2My4xNDYiIHk9IjQ1Ni45NDUxIj4wLi4xPC90ZXh0PjwvZz48IS0tbGluayBVc2VyIHRvIFVzZXJSb2xlcy0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJVc2VyIiBkYXRhLWVudGl0eS0yPSJVc2VyUm9sZXMiIGRhdGEtc291cmNlLWxpbmU9Ijk1IiBkYXRhLXVpZD0ibG5rMTIiIGlkPSJsaW5rX1VzZXJfVXNlclJvbGVzIj48cGF0aCBjb2RlTGluZT0iOTUiIGQ9Ik0xOTAsMzYwLjk5OTQgQzE5MCw0MjUuMzI5NCAxOTAsNDkyLjE2OTQgMTkwLDUzNy4zNjk0IiBmaWxsPSJub25lIiBpZD0iVXNlci10by1Vc2VyUm9sZXMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjE5MCw1NDMuMzY5NCwxOTQsNTM0LjM2OTQsMTkwLDUzOC4zNjk0LDE4Niw1MzQuMzY5NCwxOTAsNTQzLjM2OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIzMi45NDQzIiB4PSIxOTEiIHk9IjQwMy43OTYzIj50aWVuZTwvdGV4dD48L2c+PCEtLXJldmVyc2UgbGluayBTdHVkZW50IHRvIEVucm9sbG1lbnQtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iU3R1ZGVudCIgZGF0YS1lbnRpdHktMj0iRW5yb2xsbWVudCIgZGF0YS1zb3VyY2UtbGluZT0iOTYiIGRhdGEtdWlkPSJsbmsxMyIgaWQ9ImxpbmtfU3R1ZGVudF9FbnJvbGxtZW50Ij48cGF0aCBjb2RlTGluZT0iOTYiIGQ9Ik03ODUuNzg2Nyw3NDcuNjIyOSBDODA4LjYwNjcsNzc0LjI2MjkgODIzLjY3LDc5MS44NDk0IDg0My43OCw4MTUuMzI5NCIgZmlsbD0ibm9uZSIgaWQ9IlN0dWRlbnQtYmFja3RvLUVucm9sbG1lbnQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9Ijc3Ny45OCw3MzguNTA5NCw3NzguODQ1NSw3NDUuNjY4Myw3ODUuNzg2Nyw3NDcuNjIyOSw3ODQuOTIxMiw3NDAuNDYzOSw3NzcuOTgsNzM4LjUwOTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIzMi45NDQzIiB4PSI4MTguODMiIHk9Ijc4MS41MTYzIj50aWVuZTwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4LjI3MSIgeD0iNzc2LjM3OTciIHk9Ijc1OC43MjI1Ij4xPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjI0LjgwNjYiIHg9IjgxMi40NTg3IiB5PSI4MDQuMzM1Ij4wLi4zPC90ZXh0PjwvZz48IS0tcmV2ZXJzZSBsaW5rIFN1YmplY3QgdG8gRW5yb2xsbWVudC0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJTdWJqZWN0IiBkYXRhLWVudGl0eS0yPSJFbnJvbGxtZW50IiBkYXRhLXNvdXJjZS1saW5lPSI5NyIgZGF0YS11aWQ9ImxuazE0IiBpZD0ibGlua19TdWJqZWN0X0Vucm9sbG1lbnQiPjxwYXRoIGNvZGVMaW5lPSI5NyIgZD0iTTkzNC43MjEyLDY2OS4yNDk5IEM5MjkuMzAxMiw3MTYuMTA5OSA5MjMuNDcsNzY2LjQzOTQgOTE3Ljg1LDgxNC45Nzk0IiBmaWxsPSJub25lIiBpZD0iU3ViamVjdC1iYWNrdG8tRW5yb2xsbWVudCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iOTM2LjEsNjU3LjMyOTQsOTMxLjQzNzEsNjYyLjgzLDkzNC43MjEyLDY2OS4yNDk5LDkzOS4zODQxLDY2My43NDkyLDkzNi4xLDY1Ny4zMjk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODQuNzAzMSIgeD0iOTIzLjM0IiB5PSI3ODEuNTE2MyI+aW5zY3JpcGNpb25lczwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4LjI3MSIgeD0iOTI2Ljk0MTkiIHk9IjY3Ni45NTY0Ij4xPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjIzLjAzNTYiIHg9Ijg5NC42MTU5IiB5PSI4MDQuNDgyNSI+MC4uKjwvdGV4dD48L2c+PCEtLXJldmVyc2UgbGluayBQcm9mZXNzb3IgdG8gU3ViamVjdC0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJQcm9mZXNzb3IiIGRhdGEtZW50aXR5LTI9IlN1YmplY3QiIGRhdGEtc291cmNlLWxpbmU9Ijk4IiBkYXRhLXVpZD0ibG5rMTUiIGlkPSJsaW5rX1Byb2Zlc3Nvcl9TdWJqZWN0Ij48cGF0aCBjb2RlTGluZT0iOTgiIGQ9Ik0xMDA1LjU5NTgsMjk5LjU2MyBDOTkxLjkzNTgsMzYzLjMxMyA5NzIuOTMsNDUyLjA1OTQgOTU4LjY0LDUxOC43NTk0IiBmaWxsPSJub25lIiBpZD0iUHJvZmVzc29yLWJhY2t0by1TdWJqZWN0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIxMDA4LjExLDI4Ny44Mjk0LDEwMDIuOTQxNywyOTIuODU4MSwxMDA1LjU5NTgsMjk5LjU2MywxMDEwLjc2NDEsMjk0LjUzNDMsMTAwOC4xMSwyODcuODI5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjUwLjkzMzYiIHg9Ijk4NS44MSIgeT0iNDAzLjc5NjMiPmltcGFydGU8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iOC4yNzEiIHg9Ijk5OC4yNzY5IiB5PSIzMDcuNDEyNSI+MTwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4LjI3MSIgeD0iOTUxLjcwMDciIHk9IjUwOC4yNjk0Ij4yPC90ZXh0PjwvZz48IS0tcmV2ZXJzZSBsaW5rIFN0dWRlbnQgdG8gRW1haWwtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iU3R1ZGVudCIgZGF0YS1lbnRpdHktMj0iRW1haWwiIGRhdGEtc291cmNlLWxpbmU9Ijk5IiBkYXRhLXVpZD0ibG5rMTYiIGlkPSJsaW5rX1N0dWRlbnRfRW1haWwiPjxwYXRoIGNvZGVMaW5lPSI5OSIgZD0iTTY1MCw3NTAuNTA5NCBDNjUwLDc4Ni44MTk0IDY1MCw4MTEuMjU5NCA2NTAsODM5LjQ1OTQiIGZpbGw9Im5vbmUiIGlkPSJTdHVkZW50LWJhY2t0by1FbWFpbCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNjUwLDczOC41MDk0LDY0Niw3NDQuNTA5NCw2NTAsNzUwLjUwOTQsNjU0LDc0NC41MDk0LDY1MCw3MzguNTA5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjM1Ljg1MTYiIHg9IjY1MSIgeT0iNzgxLjUxNjMiPmVtYWlsPC90ZXh0PjwvZz48IS0tbGluayBFbnJvbGxtZW50RG9tYWluU2VydmljZSB0byBTdHVkZW50LS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9IkVucm9sbG1lbnREb21haW5TZXJ2aWNlIiBkYXRhLWVudGl0eS0yPSJTdHVkZW50IiBkYXRhLXNvdXJjZS1saW5lPSIxMDEiIGRhdGEtdWlkPSJsbmsxNyIgaWQ9ImxpbmtfRW5yb2xsbWVudERvbWFpblNlcnZpY2VfU3R1ZGVudCI+PHBhdGggY29kZUxpbmU9IjEwMSIgZD0iTTYzMi44OSwyNzkuNTQ5NCBDNjM1LjE5LDMyMC45NTk0IDYzOC4yMDYyLDM3NS4xNDg3IDY0MS4zMzYyLDQzMS4zMTg3IiBmaWxsPSJub25lIiBpZD0iRW5yb2xsbWVudERvbWFpblNlcnZpY2UtdG8tU3R1ZGVudCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6Nyw3OyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNjQxLjY3LDQzNy4zMDk0LDY0NS4xNjMxLDQyOC4xMDA4LDY0MS4zOTE4LDQzMi4zMTcxLDYzNy4xNzU1LDQyOC41NDU5LDY0MS42Nyw0MzcuMzA5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjM5LjEwMTYiIHg9IjY0MSIgeT0iNDAzLjc5NjMiPnZhbGlkYTwvdGV4dD48L2c+PCEtLWxpbmsgRW5yb2xsbWVudERvbWFpblNlcnZpY2UgdG8gU3ViamVjdC0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJFbnJvbGxtZW50RG9tYWluU2VydmljZSIgZGF0YS1lbnRpdHktMj0iU3ViamVjdCIgZGF0YS1zb3VyY2UtbGluZT0iMTAyIiBkYXRhLXVpZD0ibG5rMTgiIGlkPSJsaW5rX0Vucm9sbG1lbnREb21haW5TZXJ2aWNlX1N1YmplY3QiPjxwYXRoIGNvZGVMaW5lPSIxMDIiIGQ9Ik02NzguNiwyNzkuNjg5NCBDNzE3LjY0LDMyMS44MTk0IDc3My41OCwzODIuOTQ5NCA4MjEsNDM3LjcyOTQgQzg0My42NCw0NjMuODk5NCA4NjQuMTgyLDQ4OC41MzQ1IDg4NS4xNzIsNTE0LjIwNDUiIGZpbGw9Im5vbmUiIGlkPSJFbnJvbGxtZW50RG9tYWluU2VydmljZS10by1TdWJqZWN0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheTo3LDc7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI4ODguOTcsNTE4Ljg0OTQsODg2LjM2OTUsNTA5LjM1LDg4NS44MDUsNTE0Ljk3ODYsODgwLjE3NjMsNTE0LjQxNDEsODg4Ljk3LDUxOC44NDk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMzkuMTAxNiIgeD0iNzkxLjM5IiB5PSI0MDMuNzk2MyI+dmFsaWRhPC90ZXh0PjwvZz48IS0tbGluayBVc2VyIHRvIEdNTjE5LS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9IlVzZXIiIGRhdGEtZW50aXR5LTI9IkdNTjE5IiBkYXRhLXNvdXJjZS1saW5lPSIxMDYiIGRhdGEtdWlkPSJsbmsyMSIgaWQ9ImxpbmtfVXNlcl9HTU4xOSI+PHBhdGggZD0iTTM1My4zNCwzNTQuMTE5NCBDMzU4Ljg1LDM1Ni41Mzk0IDM2NC40MSwzNTguNzU5NCAzNzAsMzYwLjcyOTQgQzUxMS41Myw0MTAuODc5NCA4OTguOSwzNTYuMTE5NCAxMDQ1LDM5MC43Mjk0IEMxMDk0Ljc1LDQwMi41MTk0IDExMDkuNDYsNDA2LjU2OTQgMTE1MCw0MzcuNzI5NCBDMTE5MS45NCw0NjkuOTY5NCAxMjI4LjMzLDUxOS41NDk0IDEyNDkuOTYsNTUyLjYyOTQiIGZpbGw9Im5vbmUiIGlkPSJVc2VyLUdNTjE5IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheTo3LDc7Ii8+PC9nPjwhLS1saW5rIFN0dWRlbnQgdG8gR01OMjItLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iU3R1ZGVudCIgZGF0YS1lbnRpdHktMj0iR01OMjIiIGRhdGEtc291cmNlLWxpbmU9IjExMyIgZGF0YS11aWQ9ImxuazI0IiBpZD0ibGlua19TdHVkZW50X0dNTjIyIj48cGF0aCBkPSJNODA0LjMxLDcyNi4yNDk0IEM4MTIuMTEsNzMwLjcwOTQgODIwLjAyLDczNC44MDk0IDgyOCw3MzguNDQ5NCBDOTA0Ljk3LDc3My41ODk0IDkzMy45Nyw3NDcuNjk5NCAxMDE2LDc2OC40NDk0IEMxMDc3LjE5LDc4My45Mjk0IDEwOTMuOTUsNzg2LjQ0OTQgMTE1MCw4MTUuNDQ5NCBDMTE2OC40Miw4MjQuOTc5NCAxMTg3LjI2LDgzNy4zMzk0IDEyMDMuOSw4NDkuMzE5NCIgZmlsbD0ibm9uZSIgaWQ9IlN0dWRlbnQtR01OMjIiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjcsNzsiLz48L2c+PCEtLWxpbmsgU3ViamVjdCB0byBHTU4yNS0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJTdWJqZWN0IiBkYXRhLWVudGl0eS0yPSJHTU4yNSIgZGF0YS1zb3VyY2UtbGluZT0iMTIxIiBkYXRhLXVpZD0ibG5rMjciIGlkPSJsaW5rX1N1YmplY3RfR01OMjUiPjxwYXRoIGQ9Ik0xMDIxLjA3LDY1Ny4yOTk0IEMxMDU3LjM4LDY4Ni4yMDk0IDExMDIuNjIsNzE3Ljg5OTQgMTE0OCw3MzguNDQ5NCBDMTIwMy45OSw3NjMuODA5NCAxMjI1LjYzLDc0Ni4zOTk0IDEyODMsNzY4LjQ0OTQgQzEzMjIuNTcsNzgzLjY1OTQgMTMzMC4wOCw3OTIuOTI5NCAxMzY2LDgxNS40NDk0IEMxMzkwLjY4LDgzMC45Mjk0IDE0MTcuNiw4NDkuNDk5NCAxNDM4LjYzLDg2NC40MTk0IiBmaWxsPSJub25lIiBpZD0iU3ViamVjdC1HTU4yNSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6Nyw3OyIvPjwvZz48IS0tU1JDPVtmTFJEU2ppczRCeGhBUlJnZU45WWdPZlRqbXQ3TEtRSGhPYlFrX0w0SmRrNllCTTRjMEhLMDVKaVVsbW1FVlFTTXd2d2lJdTlfZTJhckJlSk5HSFlWXzNqanVqVFY2TE42MkVpOG9QYW56bUFrTVFRbkgxNnA5WW5qTGVpNGVrcEtDY3YtMGpYczVJUEFjZGR6WnYyTUFZOER3TWxNTll4cjJnSFZBOFlmVTdod09fSmJ6RG5JcXJmWlpmTi1VeGJvVjNhWHF4NzJhalV2eTlPWjFibVhCVXVmMC1qcWxNdmlHYU5KNWVxcThUQm5KN0F6aXpLQkFIR2RTd1FKY1BCWDJ4aks2SFRVRVhxVzd4UFVWM0VlOFJKcXREOVh6b0ZIWUk0X0RTN21HQ0dxZGV4Mk1iQjVjQzBUQm9HSXEtcTljeVYyRnFSUGJPeG4xZjNqSzV6Rm82MC1ySEtqQ2puNlh6QUV0RFdOZGNJSzJFcG9DU3NXM0RRTjhpT0ZJYzVQb19LS2FYVnhmZHRvLUxwVTMyTU1INC1tWUhwc0lsWUZBbzVUR1kzbVUwV28zWnBaRC1qRVRiU3ZPZXpZSHpJUFRCUkFDNVJVWFM1aDV2Uk9zUjZkQjhNSzBNZmdCT19Ub0h1YWFTX1l4ZHV3T2RTYXFJZ0JuNDVTOXgtVVRpaWo2OTMxMmRQSkQtaGRMaGRUc2tYcVVtWDdiMUlnZ0VPMDlpMEJnWUkyTk1uQ3pnVGUyTlFRc0xQSEZkWG1mZ0tFcC1Xdm4wb3dQb2FlV1B6QXNRa2pCZjFPdkpraE9sTFpCU3I2VVNMYjV3NWl2cWdaSjdMeW5FTDNUZm5aU0JVQVlpZFQzcERQRGlhWjkzZlhiNVJJdlhTMU5haGJiOU05ZUpOa0FhTktCOXVaLTZONXIzZXlmRGZteURGU0ZwZWp1WUEtZVF4SGdnaFIxN1d5Z0VEa1hIekNNeFp1WV9nQ1FUWlZwN2MyYmFYallyZzhBaVFVSmhBVWl6aHVzbUJORmRqUXVQRHpDdnoyWnZWeGVta2F4bGJaaDNJN2E0SF9Td1kxRTR0NXRxemhhcWdRZkV6aV82d05qd2hjSG9xRW43OTFULWJNNXdDRlRveHVKVDdsSDRYNGNwdDNWYjY3UldGaTNaR2stY2N3Q0t2VHVUNUxhZ3NjWFVMeGlLQW16akJUYlV2Q0lxX1V3cEE4ZnllSVU0SXdseUI4UVM0UEg5ZGktaWozTGdKNU1DSWV5dVFIOHMwUjBZTE50dzV2OXctZUhUOG40QW9HdkRqUEEtOHhkMG1VRDRiLWVmTENQSzhZZjFYNFo2a1c1TndfVng4V25FMDVJWFRwSFE2Tk5Cb0JGVHR0RkxsS2FxeHhycy16aEU2amYwY3I2QmpHUXZ3SHNidHIycnphS0xDcHA5Um52RGdrUmVGdEFYcVRFb2hpaTVXdjdFR0xUOV82dkc4U1dGWU4yZ1JsWWdqTEo2ZWMtQnpTUmVPWlViNUlYcWJmNW5pRnlkV3pEajVzZTN3U0ZOd2J4RmZLTl8tUGRucXladHFOV283am8waXdlREMtbENWcnYyLUVNYWtjT0FHRmdOS2xUMFdmNWRadjNJUnE3UEdTYVdIajcxS2JLNUdQZEIzajdrN0xaV2tqbl9sSEFwV2s5TTBXaVpEellENWdVMFVqZi1iMjVLYy1iTkhxTWtxR2tTcDhzbC1BU0dfNHU0UXl3VDY1bElfbTJqUnJwdnU0eHR6Y3lRTENhMkoyZGV0dWhybzM1cVhmTHVZZk9IMThZaUdaUkVxTUF2aVVmR19lb1FDQ256c05hV3F4MGFySXZFVTVqS0huREhMMjk2ZmRGdTNdLS0+PC9nPjwvc3ZnPg==",
"03-sequence-enrollment": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U3R5bGVUeXBlPSJ0ZXh0L2NzcyIgZGF0YS1kaWFncmFtLXR5cGU9IlNFUVVFTkNFIiBoZWlnaHQ9IjE3OThweCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgc3R5bGU9IndpZHRoOjE5MDVweDtoZWlnaHQ6MTc5OHB4O2JhY2tncm91bmQ6I0ZGRkZGRjsiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDE5MDUgMTc5OCIgd2lkdGg9IjE5MDVweCIgem9vbUFuZFBhbj0ibWFnbmlmeSI+PHRpdGxlPlNlY3VlbmNpYTogSW5zY3JpcGNpJiMyNDM7biBkZSBFc3R1ZGlhbnRlIGVuIE1hdGVyaWEgKGNvbiBKV1QpPC90aXRsZT48ZGVmcy8+PGc+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMjIiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjcyNC45NTgiIHg9IjU4OC45NzA1IiB5PSIzNS40MjA5Ij5TZWN1ZW5jaWE6IEluc2NyaXBjaSYjMjQzO24gZGUgRXN0dWRpYW50ZSBlbiBNYXRlcmlhIChjb24gSldUKTwvdGV4dD48Zz48dGl0bGU+RnJvbnRlbmQ8L3RpdGxlPjxyZWN0IGZpbGw9IiNGRkZGRkYiIGhlaWdodD0iMTM4Ny4zNzUiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMCIgeD0iMjYzLjM3NCIgeT0iMzExLjcwMzEiLz48L2c+PGc+PHRpdGxlPkFQSSBHcmFwaFFMPC90aXRsZT48cmVjdCBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjEyODMuNzEwOSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjEwIiB4PSI0OTIuMjE3MyIgeT0iMzcxLjEwMTYiLz48L2c+PGc+PHRpdGxlPkpXVCBNaWRkbGV3YXJlPC90aXRsZT48cmVjdCBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9Ijg2LjM5ODQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMCIgeD0iNjQ0LjgwMjciIHk9IjQwMC4yMzQ0Ii8+PC9nPjxnPjx0aXRsZT5FbnJvbGxTdHVkZW50SGFuZGxlcjwvdGl0bGU+PHJlY3QgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSIxMTA5LjkxNDEiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMCIgeD0iODE5LjYzOTIiIHk9IjUxNS43NjU2Ii8+PC9nPjxnPjx0aXRsZT5FbnJvbGxtZW50RG9tYWluU2VydmljZTwvdGl0bGU+PHJlY3QgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSI0MzguOTkyMiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjEwIiB4PSIxMTI3LjQxOTkiIHk9Ijk5Ny44OTA2Ii8+PC9nPjxnPjx0aXRsZT5TdHVkZW50UmVwb3NpdG9yeTwvdGl0bGU+PHJlY3QgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSI4Ny4zOTg0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTAiIHg9IjEzMzkuNTA5OCIgeT0iNTg4LjAzMTMiLz48L2c+PGc+PHRpdGxlPlN1YmplY3RSZXBvc2l0b3J5PC90aXRsZT48cmVjdCBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9Ijg3LjM5ODQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMCIgeD0iMTUxMi4zMDU3IiB5PSI4MzguMjI2NiIvPjwvZz48Zz48dGl0bGU+RW5yb2xsbWVudFJlcG9zaXRvcnk8L3RpdGxlPjxyZWN0IGZpbGw9IiNGRkZGRkYiIGhlaWdodD0iODcuMzk4NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjEwIiB4PSIxNjk1Ljc2MjIiIHk9IjE1MDkuMTQ4NCIvPjwvZz48cmVjdCBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjExOS42NjQxIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iOTExLjY2NyIgeD0iMTUiIHk9IjY5MC40Mjk3Ii8+PHJlY3QgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSIxMzMuNjY0MSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjEyMzUuNjY5NCIgeD0iMTUiIHk9IjEwNzAuMTU2MyIvPjxyZWN0IGZpbGw9IiNGRkZGRkYiIGhlaWdodD0iMTMzLjY2NDEiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMjM1LjY2OTQiIHg9IjE1IiB5PSIxMjc1LjA4NTkiLz48Zz48dGl0bGU+RXN0dWRpYW50ZTwvdGl0bGU+PHJlY3QgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIwLjAwMDAwIiBoZWlnaHQ9IjE1ODguMTcxOSIgd2lkdGg9IjgiIHg9IjYxLjQxNjUiIHk9IjEyOC45MDYzIi8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6NSw1OyIgeDE9IjY1IiB4Mj0iNjUiIHkxPSIxMjguOTA2MyIgeTI9IjE3MTcuMDc4MSIvPjwvZz48Zz48dGl0bGU+RnJvbnRlbmQ8L3RpdGxlPjxyZWN0IGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMC4wMDAwMCIgaGVpZ2h0PSIxNTg4LjE3MTkiIHdpZHRoPSI4IiB4PSIyNjQuMzc0IiB5PSIxMjguOTA2MyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjUsNTsiIHgxPSIyNjcuNjk0OCIgeDI9IjI2Ny42OTQ4IiB5MT0iMTI4LjkwNjMiIHkyPSIxNzE3LjA3ODEiLz48L2c+PGc+PHRpdGxlPkFQSSBHcmFwaFFMPC90aXRsZT48cmVjdCBmaWxsPSIjMDAwMDAwIiBmaWxsLW9wYWNpdHk9IjAuMDAwMDAiIGhlaWdodD0iMTU4OC4xNzE5IiB3aWR0aD0iOCIgeD0iNDkzLjIxNzMiIHk9IjEyOC45MDYzIi8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6NSw1OyIgeDE9IjQ5Ni40NDA0IiB4Mj0iNDk2LjQ0MDQiIHkxPSIxMjguOTA2MyIgeTI9IjE3MTcuMDc4MSIvPjwvZz48Zz48dGl0bGU+SldUIE1pZGRsZXdhcmU8L3RpdGxlPjxyZWN0IGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMC4wMDAwMCIgaGVpZ2h0PSIxNTg4LjE3MTkiIHdpZHRoPSI4IiB4PSI2NDUuODAyNyIgeT0iMTI4LjkwNjMiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheTo1LDU7IiB4MT0iNjQ4Ljk5NDEiIHgyPSI2NDguOTk0MSIgeTE9IjEyOC45MDYzIiB5Mj0iMTcxNy4wNzgxIi8+PC9nPjxnPjx0aXRsZT5FbnJvbGxTdHVkZW50SGFuZGxlcjwvdGl0bGU+PHJlY3QgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIwLjAwMDAwIiBoZWlnaHQ9IjE1ODguMTcxOSIgd2lkdGg9IjgiIHg9IjgyMC42MzkyIiB5PSIxMjguOTA2MyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjUsNTsiIHgxPSI4MjQuNjExMyIgeDI9IjgyNC42MTEzIiB5MT0iMTI4LjkwNjMiIHkyPSIxNzE3LjA3ODEiLz48L2c+PGc+PHRpdGxlPkVucm9sbG1lbnREb21haW5TZXJ2aWNlPC90aXRsZT48cmVjdCBmaWxsPSIjMDAwMDAwIiBmaWxsLW9wYWNpdHk9IjAuMDAwMDAiIGhlaWdodD0iMTU4OC4xNzE5IiB3aWR0aD0iOCIgeD0iMTEyOC40MTk5IiB5PSIxMjguOTA2MyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjUsNTsiIHgxPSIxMTMyLjE3MDQiIHgyPSIxMTMyLjE3MDQiIHkxPSIxMjguOTA2MyIgeTI9IjE3MTcuMDc4MSIvPjwvZz48Zz48dGl0bGU+U3R1ZGVudFJlcG9zaXRvcnk8L3RpdGxlPjxyZWN0IGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMC4wMDAwMCIgaGVpZ2h0PSIxNTg4LjE3MTkiIHdpZHRoPSI4IiB4PSIxMzQwLjUwOTgiIHk9IjEyOC45MDYzIi8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6NSw1OyIgeDE9IjEzNDQuNDE4IiB4Mj0iMTM0NC40MTgiIHkxPSIxMjguOTA2MyIgeTI9IjE3MTcuMDc4MSIvPjwvZz48Zz48dGl0bGU+U3ViamVjdFJlcG9zaXRvcnk8L3RpdGxlPjxyZWN0IGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMC4wMDAwMCIgaGVpZ2h0PSIxNTg4LjE3MTkiIHdpZHRoPSI4IiB4PSIxNTEzLjMwNTciIHk9IjEyOC45MDYzIi8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6NSw1OyIgeDE9IjE1MTYuNjAxNiIgeDI9IjE1MTYuNjAxNiIgeTE9IjEyOC45MDYzIiB5Mj0iMTcxNy4wNzgxIi8+PC9nPjxnPjx0aXRsZT5FbnJvbGxtZW50UmVwb3NpdG9yeTwvdGl0bGU+PHJlY3QgZmlsbD0iIzAwMDAwMCIgZmlsbC1vcGFjaXR5PSIwLjAwMDAwIiBoZWlnaHQ9IjE1ODguMTcxOSIgd2lkdGg9IjgiIHg9IjE2OTYuNzYyMiIgeT0iMTI4LjkwNjMiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheTo1LDU7IiB4MT0iMTcwMC4wMDk4IiB4Mj0iMTcwMC4wMDk4IiB5MT0iMTI4LjkwNjMiIHkyPSIxNzE3LjA3ODEiLz48L2c+PGc+PHRpdGxlPlNRTCBTZXJ2ZXI8L3RpdGxlPjxyZWN0IGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iMC4wMDAwMCIgaGVpZ2h0PSIxNTg4LjE3MTkiIHdpZHRoPSI4IiB4PSIxODQ3Ljg2NTciIHk9IjEyOC45MDYzIi8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6NSw1OyIgeDE9IjE4NTEuODMyNSIgeDI9IjE4NTEuODMyNSIgeTE9IjEyOC45MDYzIiB5Mj0iMTcxNy4wNzgxIi8+PC9nPjxnIGNsYXNzPSJwYXJ0aWNpcGFudCBwYXJ0aWNpcGFudC1oZWFkIiBkYXRhLXBhcnRpY2lwYW50PSJ1c2VyIj48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI3NC44MzMiIHg9IjI1IiB5PSIxMjUuNjA0NSI+RXN0dWRpYW50ZTwvdGV4dD48ZWxsaXBzZSBjeD0iNjUuNDE2NSIgY3k9IjYwLjYwOTQiIGZpbGw9IiNGRkZGRkYiIHJ4PSI4IiByeT0iOCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwYXRoIGQ9Ik02NS40MTY1LDY4LjYwOTQgTDY1LjQxNjUsOTUuNjA5NCBNNTIuNDE2NSw3Ni42MDk0IEw3OC40MTY1LDc2LjYwOTQgTTY1LjQxNjUsOTUuNjA5NCBMNTIuNDE2NSwxMTAuNjA5NCBNNjUuNDE2NSw5NS42MDk0IEw3OC40MTY1LDExMC42MDk0IiBmaWxsPSJub25lIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjxnIGNsYXNzPSJwYXJ0aWNpcGFudCBwYXJ0aWNpcGFudC10YWlsIiBkYXRhLXBhcnRpY2lwYW50PSJ1c2VyIj48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI3NC44MzMiIHg9IjI1IiB5PSIxNzI5LjA3MzIiPkVzdHVkaWFudGU8L3RleHQ+PGVsbGlwc2UgY3g9IjY1LjQxNjUiIGN5PSIxNzQxLjM3NSIgZmlsbD0iI0ZGRkZGRiIgcng9IjgiIHJ5PSI4IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTY1LjQxNjUsMTc0OS4zNzUgTDY1LjQxNjUsMTc3Ni4zNzUgTTUyLjQxNjUsMTc1Ny4zNzUgTDc4LjQxNjUsMTc1Ny4zNzUgTTY1LjQxNjUsMTc3Ni4zNzUgTDUyLjQxNjUsMTc5MS4zNzUgTTY1LjQxNjUsMTc3Ni4zNzUgTDc4LjQxNjUsMTc5MS4zNzUiIGZpbGw9Im5vbmUiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PGcgY2xhc3M9InBhcnRpY2lwYW50IHBhcnRpY2lwYW50LWhlYWQiIGRhdGEtcGFydGljaXBhbnQ9ImZyb250ZW5kIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjU5MzgiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI3OS4zNTg0IiB4PSIyMjguNjk0OCIgeT0iODEuMzEyNSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjYzLjEwOTQiIHg9IjIzNi44MTkzIiB5PSIxMDEuMzA3NiI+RnJvbnRlbmQ8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjUuMzU4NCIgeD0iMjM1LjY5NDgiIHk9IjExNy42MDQ1Ij4oQW5ndWxhcik8L3RleHQ+PC9nPjxnIGNsYXNzPSJwYXJ0aWNpcGFudCBwYXJ0aWNpcGFudC10YWlsIiBkYXRhLXBhcnRpY2lwYW50PSJmcm9udGVuZCI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI0Ni41OTM4IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNzkuMzU4NCIgeD0iMjI4LjY5NDgiIHk9IjE3MTYuMDc4MSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjYzLjEwOTQiIHg9IjIzNi44MTkzIiB5PSIxNzM2LjA3MzIiPkZyb250ZW5kPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjY1LjM1ODQiIHg9IjIzNS42OTQ4IiB5PSIxNzUyLjM3MDEiPihBbmd1bGFyKTwvdGV4dD48L2c+PGcgY2xhc3M9InBhcnRpY2lwYW50IHBhcnRpY2lwYW50LWhlYWQiIGRhdGEtcGFydGljaXBhbnQ9ImFwaSI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI0Ni41OTM4IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTE5LjU1MzciIHg9IjQzNy40NDA0IiB5PSI4MS4zMTI1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODguMzYxMyIgeD0iNDUzLjAzNjYiIHk9IjEwMS4zMDc2Ij5BUEkgR3JhcGhRTDwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMDUuNTUzNyIgeD0iNDQ0LjQ0MDQiIHk9IjExNy42MDQ1Ij4oSG90Q2hvY29sYXRlKTwvdGV4dD48L2c+PGcgY2xhc3M9InBhcnRpY2lwYW50IHBhcnRpY2lwYW50LXRhaWwiIGRhdGEtcGFydGljaXBhbnQ9ImFwaSI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI0Ni41OTM4IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTE5LjU1MzciIHg9IjQzNy40NDA0IiB5PSIxNzE2LjA3ODEiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4OC4zNjEzIiB4PSI0NTMuMDM2NiIgeT0iMTczNi4wNzMyIj5BUEkgR3JhcGhRTDwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMDUuNTUzNyIgeD0iNDQ0LjQ0MDQiIHk9IjE3NTIuMzcwMSI+KEhvdENob2NvbGF0ZSk8L3RleHQ+PC9nPjxnIGNsYXNzPSJwYXJ0aWNpcGFudCBwYXJ0aWNpcGFudC1oZWFkIiBkYXRhLXBhcnRpY2lwYW50PSJqd3QiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMzAuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjEyNS42MTcyIiB4PSI1ODYuOTk0MSIgeT0iOTcuNjA5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjExMS42MTcyIiB4PSI1OTMuOTk0MSIgeT0iMTE3LjYwNDUiPkpXVCBNaWRkbGV3YXJlPC90ZXh0PjwvZz48ZyBjbGFzcz0icGFydGljaXBhbnQgcGFydGljaXBhbnQtdGFpbCIgZGF0YS1wYXJ0aWNpcGFudD0iand0Ij48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjMwLjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMjUuNjE3MiIgeD0iNTg2Ljk5NDEiIHk9IjE3MTYuMDc4MSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjExMS42MTcyIiB4PSI1OTMuOTk0MSIgeT0iMTczNi4wNzMyIj5KV1QgTWlkZGxld2FyZTwvdGV4dD48L2c+PGcgY2xhc3M9InBhcnRpY2lwYW50IHBhcnRpY2lwYW50LWhlYWQiIGRhdGEtcGFydGljaXBhbnQ9ImhhbmRsZXIiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMzAuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE2NC4wNTU3IiB4PSI3NDIuNjExMyIgeT0iOTcuNjA5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE1MC4wNTU3IiB4PSI3NDkuNjExMyIgeT0iMTE3LjYwNDUiPkVucm9sbFN0dWRlbnRIYW5kbGVyPC90ZXh0PjwvZz48ZyBjbGFzcz0icGFydGljaXBhbnQgcGFydGljaXBhbnQtdGFpbCIgZGF0YS1wYXJ0aWNpcGFudD0iaGFuZGxlciI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIzMC4yOTY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTY0LjA1NTciIHg9Ijc0Mi42MTEzIiB5PSIxNzE2LjA3ODEiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNTAuMDU1NyIgeD0iNzQ5LjYxMTMiIHk9IjE3MzYuMDczMiI+RW5yb2xsU3R1ZGVudEhhbmRsZXI8L3RleHQ+PC9nPjxnIGNsYXNzPSJwYXJ0aWNpcGFudCBwYXJ0aWNpcGFudC1oZWFkIiBkYXRhLXBhcnRpY2lwYW50PSJkb21haW5TZXJ2aWNlIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjMwLjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxOTYuNDk5IiB4PSIxMDM0LjE3MDQiIHk9Ijk3LjYwOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxODIuNDk5IiB4PSIxMDQxLjE3MDQiIHk9IjExNy42MDQ1Ij5FbnJvbGxtZW50RG9tYWluU2VydmljZTwvdGV4dD48L2c+PGcgY2xhc3M9InBhcnRpY2lwYW50IHBhcnRpY2lwYW50LXRhaWwiIGRhdGEtcGFydGljaXBhbnQ9ImRvbWFpblNlcnZpY2UiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMzAuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE5Ni40OTkiIHg9IjEwMzQuMTcwNCIgeT0iMTcxNi4wNzgxIi8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTgyLjQ5OSIgeD0iMTA0MS4xNzA0IiB5PSIxNzM2LjA3MzIiPkVucm9sbG1lbnREb21haW5TZXJ2aWNlPC90ZXh0PjwvZz48ZyBjbGFzcz0icGFydGljaXBhbnQgcGFydGljaXBhbnQtaGVhZCIgZGF0YS1wYXJ0aWNpcGFudD0ic3R1ZGVudFJlcG8iPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMzAuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE0NC4xODM2IiB4PSIxMjcyLjQxOCIgeT0iOTcuNjA5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEzMC4xODM2IiB4PSIxMjc5LjQxOCIgeT0iMTE3LjYwNDUiPlN0dWRlbnRSZXBvc2l0b3J5PC90ZXh0PjwvZz48ZyBjbGFzcz0icGFydGljaXBhbnQgcGFydGljaXBhbnQtdGFpbCIgZGF0YS1wYXJ0aWNpcGFudD0ic3R1ZGVudFJlcG8iPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMzAuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE0NC4xODM2IiB4PSIxMjcyLjQxOCIgeT0iMTcxNi4wNzgxIi8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTMwLjE4MzYiIHg9IjEyNzkuNDE4IiB5PSIxNzM2LjA3MzIiPlN0dWRlbnRSZXBvc2l0b3J5PC90ZXh0PjwvZz48ZyBjbGFzcz0icGFydGljaXBhbnQgcGFydGljaXBhbnQtaGVhZCIgZGF0YS1wYXJ0aWNpcGFudD0ic3ViamVjdFJlcG8iPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMzAuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE0MS40MDgyIiB4PSIxNDQ2LjYwMTYiIHk9Ijk3LjYwOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMjcuNDA4MiIgeD0iMTQ1My42MDE2IiB5PSIxMTcuNjA0NSI+U3ViamVjdFJlcG9zaXRvcnk8L3RleHQ+PC9nPjxnIGNsYXNzPSJwYXJ0aWNpcGFudCBwYXJ0aWNpcGFudC10YWlsIiBkYXRhLXBhcnRpY2lwYW50PSJzdWJqZWN0UmVwbyI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIzMC4yOTY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTQxLjQwODIiIHg9IjE0NDYuNjAxNiIgeT0iMTcxNi4wNzgxIi8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTI3LjQwODIiIHg9IjE0NTMuNjAxNiIgeT0iMTczNi4wNzMyIj5TdWJqZWN0UmVwb3NpdG9yeTwvdGV4dD48L2c+PGcgY2xhc3M9InBhcnRpY2lwYW50IHBhcnRpY2lwYW50LWhlYWQiIGRhdGEtcGFydGljaXBhbnQ9ImVucm9sbFJlcG8iPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMzAuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE2NS41MDQ5IiB4PSIxNjE4LjAwOTgiIHk9Ijk3LjYwOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNTEuNTA0OSIgeD0iMTYyNS4wMDk4IiB5PSIxMTcuNjA0NSI+RW5yb2xsbWVudFJlcG9zaXRvcnk8L3RleHQ+PC9nPjxnIGNsYXNzPSJwYXJ0aWNpcGFudCBwYXJ0aWNpcGFudC10YWlsIiBkYXRhLXBhcnRpY2lwYW50PSJlbnJvbGxSZXBvIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjMwLjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNjUuNTA0OSIgeD0iMTYxOC4wMDk4IiB5PSIxNzE2LjA3ODEiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNTEuNTA0OSIgeD0iMTYyNS4wMDk4IiB5PSIxNzM2LjA3MzIiPkVucm9sbG1lbnRSZXBvc2l0b3J5PC90ZXh0PjwvZz48ZyBjbGFzcz0icGFydGljaXBhbnQgcGFydGljaXBhbnQtaGVhZCIgZGF0YS1wYXJ0aWNpcGFudD0iZGIiPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijc4LjA2NjQiIHg9IjE4MDkuODMyNSIgeT0iMTI1LjYwNDUiPlNRTCBTZXJ2ZXI8L3RleHQ+PHBhdGggZD0iTTE4MzMuODY1Nyw3Ni42MDk0IEMxODMzLjg2NTcsNjYuNjA5NCAxODUxLjg2NTcsNjYuNjA5NCAxODUxLjg2NTcsNjYuNjA5NCBDMTg1MS44NjU3LDY2LjYwOTQgMTg2OS44NjU3LDY2LjYwOTQgMTg2OS44NjU3LDc2LjYwOTQgTDE4NjkuODY1NywxMDIuNjA5NCBDMTg2OS44NjU3LDExMi42MDk0IDE4NTEuODY1NywxMTIuNjA5NCAxODUxLjg2NTcsMTEyLjYwOTQgQzE4NTEuODY1NywxMTIuNjA5NCAxODMzLjg2NTcsMTEyLjYwOTQgMTgzMy44NjU3LDEwMi42MDk0IEwxODMzLjg2NTcsNzYuNjA5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwYXRoIGQ9Ik0xODMzLjg2NTcsNzYuNjA5NCBDMTgzMy44NjU3LDg2LjYwOTQgMTg1MS44NjU3LDg2LjYwOTQgMTg1MS44NjU3LDg2LjYwOTQgQzE4NTEuODY1Nyw4Ni42MDk0IDE4NjkuODY1Nyw4Ni42MDk0IDE4NjkuODY1Nyw3Ni42MDk0IiBmaWxsPSJub25lIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjxnIGNsYXNzPSJwYXJ0aWNpcGFudCBwYXJ0aWNpcGFudC10YWlsIiBkYXRhLXBhcnRpY2lwYW50PSJkYiI+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNzguMDY2NCIgeD0iMTgwOS44MzI1IiB5PSIxNzI5LjA3MzIiPlNRTCBTZXJ2ZXI8L3RleHQ+PHBhdGggZD0iTTE4MzMuODY1NywxNzQyLjM3NSBDMTgzMy44NjU3LDE3MzIuMzc1IDE4NTEuODY1NywxNzMyLjM3NSAxODUxLjg2NTcsMTczMi4zNzUgQzE4NTEuODY1NywxNzMyLjM3NSAxODY5Ljg2NTcsMTczMi4zNzUgMTg2OS44NjU3LDE3NDIuMzc1IEwxODY5Ljg2NTcsMTc2OC4zNzUgQzE4NjkuODY1NywxNzc4LjM3NSAxODUxLjg2NTcsMTc3OC4zNzUgMTg1MS44NjU3LDE3NzguMzc1IEMxODUxLjg2NTcsMTc3OC4zNzUgMTgzMy44NjU3LDE3NzguMzc1IDE4MzMuODY1NywxNzY4LjM3NSBMMTgzMy44NjU3LDE3NDIuMzc1IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTE4MzMuODY1NywxNzQyLjM3NSBDMTgzMy44NjU3LDE3NTIuMzc1IDE4NTEuODY1NywxNzUyLjM3NSAxODUxLjg2NTcsMTc1Mi4zNzUgQzE4NTEuODY1NywxNzUyLjM3NSAxODY5Ljg2NTcsMTc1Mi4zNzUgMTg2OS44NjU3LDE3NDIuMzc1IiBmaWxsPSJub25lIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjxnPjx0aXRsZT5Gcm9udGVuZDwvdGl0bGU+PHJlY3QgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSIxMzg3LjM3NSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjEwIiB4PSIyNjMuMzc0IiB5PSIzMTEuNzAzMSIvPjwvZz48Zz48dGl0bGU+QVBJIEdyYXBoUUw8L3RpdGxlPjxyZWN0IGZpbGw9IiNGRkZGRkYiIGhlaWdodD0iMTI4My43MTA5IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTAiIHg9IjQ5Mi4yMTczIiB5PSIzNzEuMTAxNiIvPjwvZz48Zz48dGl0bGU+SldUIE1pZGRsZXdhcmU8L3RpdGxlPjxyZWN0IGZpbGw9IiNGRkZGRkYiIGhlaWdodD0iODYuMzk4NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjEwIiB4PSI2NDQuODAyNyIgeT0iNDAwLjIzNDQiLz48L2c+PGc+PHRpdGxlPkVucm9sbFN0dWRlbnRIYW5kbGVyPC90aXRsZT48cmVjdCBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjExMDkuOTE0MSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjEwIiB4PSI4MTkuNjM5MiIgeT0iNTE1Ljc2NTYiLz48L2c+PGc+PHRpdGxlPkVucm9sbG1lbnREb21haW5TZXJ2aWNlPC90aXRsZT48cmVjdCBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjQzOC45OTIyIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTAiIHg9IjExMjcuNDE5OSIgeT0iOTk3Ljg5MDYiLz48L2c+PGc+PHRpdGxlPlN0dWRlbnRSZXBvc2l0b3J5PC90aXRsZT48cmVjdCBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9Ijg3LjM5ODQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMCIgeD0iMTMzOS41MDk4IiB5PSI1ODguMDMxMyIvPjwvZz48Zz48dGl0bGU+U3ViamVjdFJlcG9zaXRvcnk8L3RpdGxlPjxyZWN0IGZpbGw9IiNGRkZGRkYiIGhlaWdodD0iODcuMzk4NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjEwIiB4PSIxNTEyLjMwNTciIHk9IjgzOC4yMjY2Ii8+PC9nPjxnPjx0aXRsZT5FbnJvbGxtZW50UmVwb3NpdG9yeTwvdGl0bGU+PHJlY3QgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSI4Ny4zOTg0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTAiIHg9IjE2OTUuNzYyMiIgeT0iMTUwOS4xNDg0Ii8+PC9nPjxyZWN0IGZpbGw9IiNGRkZGRkYiIGhlaWdodD0iMyIgc3R5bGU9InN0cm9rZTojRkZGRkZGO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE4OTMuODk4OSIgeD0iNSIgeT0iMTU5LjQ3MjciLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuNTsiIHgxPSI1IiB4Mj0iMTg5OC44OTg5IiB5MT0iMTU5LjQ3MjciIHkyPSIxNTkuNDcyNyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC41OyIgeDE9IjUiIHgyPSIxODk4Ljg5ODkiIHkxPSIxNjIuNDcyNyIgeTI9IjE2Mi40NzI3Ii8+PHJlY3QgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSIyMy4xMzI4IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTgyLjQyODciIHg9Ijg2MC43MzUxIiB5PSIxNDguOTA2MyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNjMuOTAyOCIgeD0iODY2LjczNTEiIHk9IjE2NC45NzMxIj5BdXRlbnRpY2FjaSYjMjQzO24gKHByZXZpbyk8L3RleHQ+PHBhdGggZD0iTTIyLDE4Ny4wMzkxIEwyMiwyMjcuMDM5MSBMMzEwLDIyNy4wMzkxIEwzMTAsMTk3LjAzOTEgTDMwMCwxODcuMDM5MSBMMjIsMTg3LjAzOTEiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNMzAwLDE4Ny4wMzkxIEwzMDAsMTk3LjAzOTEgTDMxMCwxOTcuMDM5MSBMMzAwLDE4Ny4wMzkxIiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTg4LjgxMSIgeD0iNTAuODk2NSIgeT0iMjA0LjEwNiI+RWwgZXN0dWRpYW50ZSB5YSBpbmljaSYjMjQzOyBzZXNpJiMyNDM7bjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyMjEuMjYwMyIgeD0iNTAuODk2NSIgeT0iMjE5LjIzODgiPnkgdGllbmUgdW4gSldUIHYmIzIyNTtsaWRvIGFsbWFjZW5hZG88L3RleHQ+PHJlY3QgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSIzIiBzdHlsZT0ic3Ryb2tlOiNGRkZGRkY7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTg5My44OTg5IiB4PSI1IiB5PSIyNTIuODcxMSIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC41OyIgeDE9IjUiIHgyPSIxODk4Ljg5ODkiIHkxPSIyNTIuODcxMSIgeTI9IjI1Mi44NzExIi8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjU7IiB4MT0iNSIgeDI9IjE4OTguODk4OSIgeTE9IjI1NS44NzExIiB5Mj0iMjU1Ljg3MTEiLz48cmVjdCBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjIzLjEzMjgiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxODkuODk5OSIgeD0iODU2Ljk5OTUiIHk9IjI0Mi4zMDQ3Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE3MS4zNzQiIHg9Ijg2Mi45OTk1IiB5PSIyNTguMzcxNiI+U29saWNpdHVkIGRlIEluc2NyaXBjaSYjMjQzO248L3RleHQ+PGcgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGFydGljaXBhbnQtMT0idXNlciIgZGF0YS1wYXJ0aWNpcGFudC0yPSJmcm9udGVuZCI+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIyNTEuMzc0LDMwNy43MDMxLDI2MS4zNzQsMzExLjcwMzEsMjUxLjM3NCwzMTUuNzAzMSwyNTUuMzc0LDMxMS43MDMxIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgeDE9IjY1LjQxNjUiIHgyPSIyNTcuMzc0IiB5MT0iMzExLjcwMzEiIHkyPSIzMTEuNzAzMSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyNC43MDYxIiB4PSIxMDIuMDQyMiIgeT0iMjkxLjUwNDQiPlNlbGVjY2lvbmEgbWF0ZXJpYTwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNTcuNDQ3MyIgeD0iODUuNjcxNiIgeT0iMzA2LjYzNzIiPnkgaGFjZSBjbGljIGVuICJJbnNjcmliaXIiPC90ZXh0PjwvZz48ZyBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wYXJ0aWNpcGFudC0xPSJmcm9udGVuZCIgZGF0YS1wYXJ0aWNpcGFudC0yPSJhcGkiPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNDgwLjIxNzMsMzY3LjEwMTYsNDkwLjIxNzMsMzcxLjEwMTYsNDgwLjIxNzMsMzc1LjEwMTYsNDg0LjIxNzMsMzcxLjEwMTYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iMjczLjM3NCIgeDI9IjQ4Ni4yMTczIiB5MT0iMzcxLjEwMTYiIHkyPSIzNzEuMTAxNiIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE1Ni4wMDYzIiB4PSIzMDQuNzkyNSIgeT0iMzM1Ljc3Ij5tdXRhdGlvbiBlbnJvbGxTdHVkZW50KDwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMzQuMzIyOCIgeD0iMzE5Ljc2NjYiIHk9IjM1MC45MDI4Ij5zdHVkZW50SWQsIHN1YmplY3RJZCk8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTk5Ljg0MzMiIHg9IjI4Mi44NzQiIHk9IjM2Ni4wMzU2Ij5bQXV0aG9yaXphdGlvbjogQmVhcmVyICZsdDtKV1QmZ3Q7XTwvdGV4dD48L2c+PGcgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGFydGljaXBhbnQtMT0iYXBpIiBkYXRhLXBhcnRpY2lwYW50LTI9Imp3dCI+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI2MzIuODAyNywzOTYuMjM0NCw2NDIuODAyNyw0MDAuMjM0NCw2MzIuODAyNyw0MDQuMjM0NCw2MzYuODAyNyw0MDAuMjM0NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHgxPSI1MDIuMjE3MyIgeDI9IjYzOC44MDI3IiB5MT0iNDAwLjIzNDQiIHkyPSI0MDAuMjM0NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjgyLjE1NzciIHg9IjUzMi40MzEyIiB5PSIzOTUuMTY4NSI+VmFsaWRhdGUgSldUPC90ZXh0PjwvZz48ZyBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wYXJ0aWNpcGFudC0xPSJqd3QiIGRhdGEtcGFydGljaXBhbnQtMj0iand0Ij48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iNjU0LjgwMjciIHgyPSI2OTYuODAyNyIgeTE9IjQ0NC41IiB5Mj0iNDQ0LjUiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iNjk2LjgwMjciIHgyPSI2OTYuODAyNyIgeTE9IjQ0NC41IiB5Mj0iNDU3LjUiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iNjU1LjgwMjciIHgyPSI2OTYuODAyNyIgeTE9IjQ1Ny41IiB5Mj0iNDU3LjUiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjY2NS44MDI3LDQ1My41LDY1NS44MDI3LDQ1Ny41LDY2NS44MDI3LDQ2MS41LDY2MS44MDI3LDQ1Ny41IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTAzLjc3MTUiIHg9IjY2MS44MDI3IiB5PSI0MjQuMzAxMyI+VmVyaWZ5IHNpZ25hdHVyZTwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4MC4wMzc2IiB4PSI2NzMuNjY5NyIgeT0iNDM5LjQzNDEiPiZhbXA7IGV4cGlyYXRpb248L3RleHQ+PC9nPjxnIGNsYXNzPSJtZXNzYWdlIiBkYXRhLXBhcnRpY2lwYW50LTE9Imp3dCIgZGF0YS1wYXJ0aWNpcGFudC0yPSJhcGkiPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNTEzLjIxNzMsNDgyLjYzMjgsNTAzLjIxNzMsNDg2LjYzMjgsNTEzLjIxNzMsNDkwLjYzMjgsNTA5LjIxNzMsNDg2LjYzMjgiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheToyLDI7IiB4MT0iNTA3LjIxNzMiIHgyPSI2NDguODAyNyIgeTE9IjQ4Ni42MzI4IiB5Mj0iNDg2LjYzMjgiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5OS4zMjgxIiB4PSI1MjYuMzQ1OSIgeT0iNDgxLjU2NjkiPkNsYWltc1ByaW5jaXBhbDwvdGV4dD48L2c+PGcgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGFydGljaXBhbnQtMT0iYXBpIiBkYXRhLXBhcnRpY2lwYW50LTI9ImhhbmRsZXIiPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iODA3LjYzOTIsNTExLjc2NTYsODE3LjYzOTIsNTE1Ljc2NTYsODA3LjYzOTIsNTE5Ljc2NTYsODExLjYzOTIsNTE1Ljc2NTYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iNTAyLjIxNzMiIHgyPSI4MTMuNjM5MiIgeTE9IjUxNS43NjU2IiB5Mj0iNTE1Ljc2NTYiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyMTAuOTUxNyIgeD0iNTU1LjQ1MjQiIHk9IjUxMC42OTk3Ij5IYW5kbGUoRW5yb2xsU3R1ZGVudENvbW1hbmQpPC90ZXh0PjwvZz48cmVjdCBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjMiIHN0eWxlPSJzdHJva2U6I0ZGRkZGRjtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxODkzLjg5ODkiIHg9IjUiIHk9IjU0NC4zMzIiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuNTsiIHgxPSI1IiB4Mj0iMTg5OC44OTg5IiB5MT0iNTQ0LjMzMiIgeTI9IjU0NC4zMzIiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuNTsiIHgxPSI1IiB4Mj0iMTg5OC44OTg5IiB5MT0iNTQ3LjMzMiIgeTI9IjU0Ny4zMzIiLz48cmVjdCBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjIzLjEzMjgiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNjMuMTM4MiIgeD0iODcwLjM4MDQiIHk9IjUzMy43NjU2Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE0NC42MTIzIiB4PSI4NzYuMzgwNCIgeT0iNTQ5LjgzMjUiPk9idGVuY2kmIzI0MztuIGRlIERhdG9zPC90ZXh0PjxnIGNsYXNzPSJtZXNzYWdlIiBkYXRhLXBhcnRpY2lwYW50LTE9ImhhbmRsZXIiIGRhdGEtcGFydGljaXBhbnQtMj0ic3R1ZGVudFJlcG8iPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iMTMyNy41MDk4LDU4NC4wMzEzLDEzMzcuNTA5OCw1ODguMDMxMywxMzI3LjUwOTgsNTkyLjAzMTMsMTMzMS41MDk4LDU4OC4wMzEzIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgeDE9IjgyOS42MzkyIiB4Mj0iMTMzMy41MDk4IiB5MT0iNTg4LjAzMTMiIHkyPSI1ODguMDMxMyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjI3MC4wODY0IiB4PSI5NDkuNTMxMyIgeT0iNTgyLjk2NTMiPkdldEJ5SWRXaXRoRW5yb2xsbWVudHNBc3luYyhzdHVkZW50SWQpPC90ZXh0PjwvZz48ZyBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wYXJ0aWNpcGFudC0xPSJzdHVkZW50UmVwbyIgZGF0YS1wYXJ0aWNpcGFudC0yPSJkYiI+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIxODM5Ljg2NTcsNjEzLjE2NDEsMTg0OS44NjU3LDYxNy4xNjQxLDE4MzkuODY1Nyw2MjEuMTY0MSwxODQzLjg2NTcsNjE3LjE2NDEiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iMTM0OS41MDk4IiB4Mj0iMTg0NS44NjU3IiB5MT0iNjE3LjE2NDEiIHkyPSI2MTcuMTY0MSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjIwMS4xNTA5IiB4PSIxNTAwLjExMjMiIHk9IjYxMi4wOTgxIj5TRUxFQ1QgU3R1ZGVudCArIEVucm9sbG1lbnRzPC90ZXh0PjwvZz48ZyBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wYXJ0aWNpcGFudC0xPSJkYiIgZGF0YS1wYXJ0aWNpcGFudC0yPSJzdHVkZW50UmVwbyI+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIxMzYwLjUwOTgsNjQyLjI5NjksMTM1MC41MDk4LDY0Ni4yOTY5LDEzNjAuNTA5OCw2NTAuMjk2OSwxMzU2LjUwOTgsNjQ2LjI5NjkiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheToyLDI7IiB4MT0iMTM1NC41MDk4IiB4Mj0iMTg1MC44NjU3IiB5MT0iNjQ2LjI5NjkiIHkyPSI2NDYuMjk2OSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijg0LjU4ODkiIHg9IjE1NTguMzkzMyIgeT0iNjQxLjIzMSI+U3R1ZGVudCBkYXRhPC90ZXh0PjwvZz48ZyBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wYXJ0aWNpcGFudC0xPSJzdHVkZW50UmVwbyIgZGF0YS1wYXJ0aWNpcGFudC0yPSJoYW5kbGVyIj48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9Ijg0MC42MzkyLDY3MS40Mjk3LDgzMC42MzkyLDY3NS40Mjk3LDg0MC42MzkyLDY3OS40Mjk3LDgzNi42MzkyLDY3NS40Mjk3IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6MiwyOyIgeDE9IjgzNC42MzkyIiB4Mj0iMTM0My41MDk4IiB5MT0iNjc1LjQyOTciIHkyPSI2NzUuNDI5NyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjUxLjE3NDgiIHg9IjEwNjEuNDg3MSIgeT0iNjcwLjM2MzgiPlN0dWRlbnQ8L3RleHQ+PC9nPjxwYXRoIGQ9Ik0xNSw2OTAuNDI5NyBMNzkuNDQyOSw2OTAuNDI5NyBMNzkuNDQyOSw2OTcuNTYyNSBMNjkuNDQyOSw3MDcuNTYyNSBMMTUsNzA3LjU2MjUgTDE1LDY5MC40Mjk3IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIxMTkuNjY0MSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjkxMS42NjciIHg9IjE1IiB5PSI2OTAuNDI5NyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxOS40NDI5IiB4PSIzMCIgeT0iNzAzLjQ5NjYiPmFsdDwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMSIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTI5Ljg0MDgiIHg9Ijk0LjQ0MjkiIHk9IjcwMi42NDAxIj5bQ3VlbnRhIG5vIGFjdGl2YWRhXTwvdGV4dD48ZyBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wYXJ0aWNpcGFudC0xPSJoYW5kbGVyIiBkYXRhLXBhcnRpY2lwYW50LTI9ImFwaSI+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI1MTMuMjE3Myw3MjQuNjk1Myw1MDMuMjE3Myw3MjguNjk1Myw1MTMuMjE3Myw3MzIuNjk1Myw1MDkuMjE3Myw3MjguNjk1MyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjIsMjsiIHgxPSI1MDcuMjE3MyIgeDI9IjgxOC42MzkyIiB5MT0iNzI4LjY5NTMiIHkyPSI3MjguNjk1MyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE3OS40NDgyIiB4PSI1NzEuMjA0MSIgeT0iNzIzLjYyOTQiPkVycm9yOiAiQ3VlbnRhIG5vIGFjdGl2YWRhIjwvdGV4dD48L2c+PGcgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGFydGljaXBhbnQtMT0iYXBpIiBkYXRhLXBhcnRpY2lwYW50LTI9ImZyb250ZW5kIj48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjI4NC4zNzQsNzUzLjgyODEsMjc0LjM3NCw3NTcuODI4MSwyODQuMzc0LDc2MS44MjgxLDI4MC4zNzQsNzU3LjgyODEiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheToyLDI7IiB4MT0iMjc4LjM3NCIgeDI9IjQ5MS4yMTczIiB5MT0iNzU3LjgyODEiIHkyPSI3NTcuODI4MSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijk0LjYxODIiIHg9IjMzNS40ODY2IiB5PSI3NTIuNzYyMiI+eyBlcnJvcnM6IFsuLi5dIH08L3RleHQ+PC9nPjxnIGNsYXNzPSJtZXNzYWdlIiBkYXRhLXBhcnRpY2lwYW50LTE9ImZyb250ZW5kIiBkYXRhLXBhcnRpY2lwYW50LTI9InVzZXIiPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNzYuNDE2NSw3OTguMDkzOCw2Ni40MTY1LDgwMi4wOTM4LDc2LjQxNjUsODA2LjA5MzgsNzIuNDE2NSw4MDIuMDkzOCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjIsMjsiIHgxPSI3MC40MTY1IiB4Mj0iMjYyLjM3NCIgeTE9IjgwMi4wOTM4IiB5Mj0iODAyLjA5MzgiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMTYuMzk3IiB4PSIxMDYuMTk2OCIgeT0iNzgxLjg5NSI+TXVlc3RyYSBtZW5zYWplOjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNzMuOTU3NSIgeD0iNzcuNDE2NSIgeT0iNzk3LjAyNzgiPiJBY3RpdmEgdHUgY3VlbnRhIHByaW1lcm8iPC90ZXh0PjwvZz48ZyBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wYXJ0aWNpcGFudC0xPSJoYW5kbGVyIiBkYXRhLXBhcnRpY2lwYW50LTI9InN1YmplY3RSZXBvIj48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjE1MDAuMzA1Nyw4MzQuMjI2NiwxNTEwLjMwNTcsODM4LjIyNjYsMTUwMC4zMDU3LDg0Mi4yMjY2LDE1MDQuMzA1Nyw4MzguMjI2NiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHgxPSI4MjkuNjM5MiIgeDI9IjE1MDYuMzA1NyIgeTE9IjgzOC4yMjY2IiB5Mj0iODM4LjIyNjYiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNTkuOTYwOSIgeD0iMTA5MC45OTE5IiB5PSI4MzMuMTYwNiI+R2V0QnlJZEFzeW5jKHN1YmplY3RJZCk8L3RleHQ+PC9nPjxnIGNsYXNzPSJtZXNzYWdlIiBkYXRhLXBhcnRpY2lwYW50LTE9InN1YmplY3RSZXBvIiBkYXRhLXBhcnRpY2lwYW50LTI9ImRiIj48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjE4MzkuODY1Nyw4NjMuMzU5NCwxODQ5Ljg2NTcsODY3LjM1OTQsMTgzOS44NjU3LDg3MS4zNTk0LDE4NDMuODY1Nyw4NjcuMzU5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHgxPSIxNTIyLjMwNTciIHgyPSIxODQ1Ljg2NTciIHkxPSI4NjcuMzU5NCIgeTI9Ijg2Ny4zNTk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTAxLjY3MDQiIHg9IjE2MzYuMjUwNSIgeT0iODYyLjI5MzUiPlNFTEVDVCBTdWJqZWN0PC90ZXh0PjwvZz48ZyBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wYXJ0aWNpcGFudC0xPSJkYiIgZGF0YS1wYXJ0aWNpcGFudC0yPSJzdWJqZWN0UmVwbyI+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIxNTMzLjMwNTcsODkyLjQ5MjIsMTUyMy4zMDU3LDg5Ni40OTIyLDE1MzMuMzA1Nyw5MDAuNDkyMiwxNTI5LjMwNTcsODk2LjQ5MjIiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheToyLDI7IiB4MT0iMTUyNy4zMDU3IiB4Mj0iMTg1MC44NjU3IiB5MT0iODk2LjQ5MjIiIHkyPSI4OTYuNDkyMiIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjgyLjAxMTciIHg9IjE2NDYuMDc5OCIgeT0iODkxLjQyNjMiPlN1YmplY3QgZGF0YTwvdGV4dD48L2c+PGcgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGFydGljaXBhbnQtMT0ic3ViamVjdFJlcG8iIGRhdGEtcGFydGljaXBhbnQtMj0iaGFuZGxlciI+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI4NDAuNjM5Miw5MjEuNjI1LDgzMC42MzkyLDkyNS42MjUsODQwLjYzOTIsOTI5LjYyNSw4MzYuNjM5Miw5MjUuNjI1IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6MiwyOyIgeDE9IjgzNC42MzkyIiB4Mj0iMTUxNi4zMDU3IiB5MT0iOTI1LjYyNSIgeTI9IjkyNS42MjUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI0OC41OTc3IiB4PSIxMTQ5LjE3MzYiIHk9IjkyMC41NTkxIj5TdWJqZWN0PC90ZXh0PjwvZz48cmVjdCBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjMiIHN0eWxlPSJzdHJva2U6I0ZGRkZGRjtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxODkzLjg5ODkiIHg9IjUiIHk9Ijk1NC4xOTE0Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjU7IiB4MT0iNSIgeDI9IjE4OTguODk4OSIgeTE9Ijk1NC4xOTE0IiB5Mj0iOTU0LjE5MTQiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuNTsiIHgxPSI1IiB4Mj0iMTg5OC44OTg5IiB5MT0iOTU3LjE5MTQiIHkyPSI5NTcuMTkxNCIvPjxyZWN0IGZpbGw9IiNGRkZGRkYiIGhlaWdodD0iMjMuMTMyOCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjI1Ny4xNzI0IiB4PSI4MjMuMzYzMyIgeT0iOTQzLjYyNSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyMzguNjQ2NSIgeD0iODI5LjM2MzMiIHk9Ijk1OS42OTE5Ij5WYWxpZGFjaSYjMjQzO24gZGUgUmVnbGFzIGRlIE5lZ29jaW88L3RleHQ+PGcgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGFydGljaXBhbnQtMT0iaGFuZGxlciIgZGF0YS1wYXJ0aWNpcGFudC0yPSJkb21haW5TZXJ2aWNlIj48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjExMTUuNDE5OSw5OTMuODkwNiwxMTI1LjQxOTksOTk3Ljg5MDYsMTExNS40MTk5LDEwMDEuODkwNiwxMTE5LjQxOTksOTk3Ljg5MDYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iODI5LjYzOTIiIHgyPSIxMTIxLjQxOTkiIHkxPSI5OTcuODkwNiIgeTI9Ijk5Ny44OTA2Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMjM5LjU5MjMiIHg9Ijg1OC43MzM0IiB5PSI5OTIuODI0NyI+VmFsaWRhdGVFbnJvbGxtZW50KHN0dWRlbnQsIHN1YmplY3QpPC90ZXh0PjwvZz48ZyBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wYXJ0aWNpcGFudC0xPSJkb21haW5TZXJ2aWNlIiBkYXRhLXBhcnRpY2lwYW50LTI9ImRvbWFpblNlcnZpY2UiPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHgxPSIxMTM3LjQxOTkiIHgyPSIxMTc5LjQxOTkiIHkxPSIxMDQyLjE1NjMiIHkyPSIxMDQyLjE1NjMiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iMTE3OS40MTk5IiB4Mj0iMTE3OS40MTk5IiB5MT0iMTA0Mi4xNTYzIiB5Mj0iMTA1NS4xNTYzIi8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgeDE9IjExMzguNDE5OSIgeDI9IjExNzkuNDE5OSIgeTE9IjEwNTUuMTU2MyIgeTI9IjEwNTUuMTU2MyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iMTE0OC40MTk5LDEwNTEuMTU2MywxMTM4LjQxOTksMTA1NS4xNTYzLDExNDguNDE5OSwxMDU5LjE1NjMsMTE0NC40MTk5LDEwNTUuMTU2MyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE1NC43NTU5IiB4PSIxMTQ0LjQxOTkiIHk9IjEwMjEuOTU3NSI+Q2hlY2tNYXhFbnJvbGxtZW50cygpPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjExMi40MjMzIiB4PSIxMTY1LjU4NjIiIHk9IjEwMzcuMDkwMyI+W20mIzIyNTt4IDMgbWF0ZXJpYXNdPC90ZXh0PjwvZz48cGF0aCBkPSJNMTUsMTA3MC4xNTYzIEw3OS40NDI5LDEwNzAuMTU2MyBMNzkuNDQyOSwxMDc3LjI4OTEgTDY5LjQ0MjksMTA4Ny4yODkxIEwxNSwxMDg3LjI4OTEgTDE1LDEwNzAuMTU2MyIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMTMzLjY2NDEiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMjM1LjY2OTQiIHg9IjE1IiB5PSIxMDcwLjE1NjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTkuNDQyOSIgeD0iMzAiIHk9IjEwODMuMjIzMSI+YWx0PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjExIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxODIuNTE1MSIgeD0iOTQuNDQyOSIgeT0iMTA4Mi4zNjY3Ij5bRXN0dWRpYW50ZSB0aWVuZSAzIG1hdGVyaWFzXTwvdGV4dD48ZyBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wYXJ0aWNpcGFudC0xPSJkb21haW5TZXJ2aWNlIiBkYXRhLXBhcnRpY2lwYW50LTI9ImhhbmRsZXIiPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iODQwLjYzOTIsMTEwNC40MjE5LDgzMC42MzkyLDExMDguNDIxOSw4NDAuNjM5MiwxMTEyLjQyMTksODM2LjYzOTIsMTEwOC40MjE5IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6MiwyOyIgeDE9IjgzNC42MzkyIiB4Mj0iMTEyNi40MTk5IiB5MT0iMTEwOC40MjE5IiB5Mj0iMTEwOC40MjE5Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMjczLjc4MDgiIHg9Ijg0MS42MzkyIiB5PSIxMTAzLjM1NiI+dGhyb3cgTWF4RW5yb2xsbWVudHNFeGNlZWRlZEV4Y2VwdGlvbjwvdGV4dD48L2c+PGcgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGFydGljaXBhbnQtMT0iaGFuZGxlciIgZGF0YS1wYXJ0aWNpcGFudC0yPSJhcGkiPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNTEzLjIxNzMsMTEzMy41NTQ3LDUwMy4yMTczLDExMzcuNTU0Nyw1MTMuMjE3MywxMTQxLjU1NDcsNTA5LjIxNzMsMTEzNy41NTQ3IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6MiwyOyIgeDE9IjUwNy4yMTczIiB4Mj0iODE4LjYzOTIiIHkxPSIxMTM3LjU1NDciIHkyPSIxMTM3LjU1NDciLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyNDQuODkyNiIgeD0iNTM4LjQ4MTkiIHk9IjExMzIuNDg4OCI+RXJyb3I6ICJMJiMyMzc7bWl0ZSBkZSBtYXRlcmlhcyBhbGNhbnphZG8iPC90ZXh0PjwvZz48ZyBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wYXJ0aWNpcGFudC0xPSJhcGkiIGRhdGEtcGFydGljaXBhbnQtMj0iZnJvbnRlbmQiPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iMjg0LjM3NCwxMTYyLjY4NzUsMjc0LjM3NCwxMTY2LjY4NzUsMjg0LjM3NCwxMTcwLjY4NzUsMjgwLjM3NCwxMTY2LjY4NzUiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheToyLDI7IiB4MT0iMjc4LjM3NCIgeDI9IjQ5MS4yMTczIiB5MT0iMTE2Ni42ODc1IiB5Mj0iMTE2Ni42ODc1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iOTQuNjE4MiIgeD0iMzM1LjQ4NjYiIHk9IjExNjEuNjIxNiI+eyBlcnJvcnM6IFsuLi5dIH08L3RleHQ+PC9nPjxnIGNsYXNzPSJtZXNzYWdlIiBkYXRhLXBhcnRpY2lwYW50LTE9ImZyb250ZW5kIiBkYXRhLXBhcnRpY2lwYW50LTI9InVzZXIiPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNzYuNDE2NSwxMTkxLjgyMDMsNjYuNDE2NSwxMTk1LjgyMDMsNzYuNDE2NSwxMTk5LjgyMDMsNzIuNDE2NSwxMTk1LjgyMDMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheToyLDI7IiB4MT0iNzAuNDE2NSIgeDI9IjI2Mi4zNzQiIHkxPSIxMTk1LjgyMDMiIHkyPSIxMTk1LjgyMDMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNjguNTE3NiIgeD0iODAuMTM2NSIgeT0iMTE5MC43NTQ0Ij5NdWVzdHJhIG1lbnNhamUgZGUgZXJyb3I8L3RleHQ+PC9nPjxnIGNsYXNzPSJtZXNzYWdlIiBkYXRhLXBhcnRpY2lwYW50LTE9ImRvbWFpblNlcnZpY2UiIGRhdGEtcGFydGljaXBhbnQtMj0iZG9tYWluU2VydmljZSI+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgeDE9IjExMzcuNDE5OSIgeDI9IjExNzkuNDE5OSIgeTE9IjEyNDcuMDg1OSIgeTI9IjEyNDcuMDg1OSIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHgxPSIxMTc5LjQxOTkiIHgyPSIxMTc5LjQxOTkiIHkxPSIxMjQ3LjA4NTkiIHkyPSIxMjYwLjA4NTkiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iMTEzOC40MTk5IiB4Mj0iMTE3OS40MTk5IiB5MT0iMTI2MC4wODU5IiB5Mj0iMTI2MC4wODU5Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIxMTQ4LjQxOTksMTI1Ni4wODU5LDExMzguNDE5OSwxMjYwLjA4NTksMTE0OC40MTk5LDEyNjQuMDg1OSwxMTQ0LjQxOTksMTI2MC4wODU5IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTc4LjA4OTgiIHg9IjExNDQuNDE5OSIgeT0iMTIyNi44ODcyIj5DaGVja1Byb2Zlc3NvckNvbnN0cmFpbnQoKTwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMzIuNDQzOCIgeD0iMTE2Ny4yNDI5IiB5PSIxMjQyLjAyIj5bbm8gcmVwZXRpciBwcm9mZXNvcl08L3RleHQ+PC9nPjxwYXRoIGQ9Ik0xNSwxMjc1LjA4NTkgTDc5LjQ0MjksMTI3NS4wODU5IEw3OS40NDI5LDEyODIuMjE4OCBMNjkuNDQyOSwxMjkyLjIxODggTDE1LDEyOTIuMjE4OCBMMTUsMTI3NS4wODU5IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIxMzMuNjY0MSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjEyMzUuNjY5NCIgeD0iMTUiIHk9IjEyNzUuMDg1OSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxOS40NDI5IiB4PSIzMCIgeT0iMTI4OC4xNTI4Ij5hbHQ8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTEiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjIxMC4zNjQzIiB4PSI5NC40NDI5IiB5PSIxMjg3LjI5NjQiPltZYSB0aWVuZSBtYXRlcmlhIGNvbiBlbCBwcm9mZXNvcl08L3RleHQ+PGcgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGFydGljaXBhbnQtMT0iZG9tYWluU2VydmljZSIgZGF0YS1wYXJ0aWNpcGFudC0yPSJoYW5kbGVyIj48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9Ijg0MC42MzkyLDEzMDkuMzUxNiw4MzAuNjM5MiwxMzEzLjM1MTYsODQwLjYzOTIsMTMxNy4zNTE2LDgzNi42MzkyLDEzMTMuMzUxNiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjIsMjsiIHgxPSI4MzQuNjM5MiIgeDI9IjExMjYuNDE5OSIgeTE9IjEzMTMuMzUxNiIgeTI9IjEzMTMuMzUxNiIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjI3MC40NDE5IiB4PSI4NDMuMzA4NiIgeT0iMTMwOC4yODU2Ij50aHJvdyBTYW1lUHJvZmVzc29yQ29uc3RyYWludEV4Y2VwdGlvbjwvdGV4dD48L2c+PGcgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGFydGljaXBhbnQtMT0iaGFuZGxlciIgZGF0YS1wYXJ0aWNpcGFudC0yPSJhcGkiPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNTEzLjIxNzMsMTMzOC40ODQ0LDUwMy4yMTczLDEzNDIuNDg0NCw1MTMuMjE3MywxMzQ2LjQ4NDQsNTA5LjIxNzMsMTM0Mi40ODQ0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6MiwyOyIgeDE9IjUwNy4yMTczIiB4Mj0iODE4LjYzOTIiIHkxPSIxMzQyLjQ4NDQiIHkyPSIxMzQyLjQ4NDQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyODUuMDA5OCIgeD0iNTE4LjQyMzMiIHk9IjEzMzcuNDE4NSI+RXJyb3I6ICJZYSB0aWVuZXMgbWF0ZXJpYSBjb24gZXN0ZSBwcm9mZXNvciI8L3RleHQ+PC9nPjxnIGNsYXNzPSJtZXNzYWdlIiBkYXRhLXBhcnRpY2lwYW50LTE9ImFwaSIgZGF0YS1wYXJ0aWNpcGFudC0yPSJmcm9udGVuZCI+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIyODQuMzc0LDEzNjcuNjE3MiwyNzQuMzc0LDEzNzEuNjE3MiwyODQuMzc0LDEzNzUuNjE3MiwyODAuMzc0LDEzNzEuNjE3MiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjIsMjsiIHgxPSIyNzguMzc0IiB4Mj0iNDkxLjIxNzMiIHkxPSIxMzcxLjYxNzIiIHkyPSIxMzcxLjYxNzIiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5NC42MTgyIiB4PSIzMzUuNDg2NiIgeT0iMTM2Ni41NTEzIj57IGVycm9yczogWy4uLl0gfTwvdGV4dD48L2c+PGcgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGFydGljaXBhbnQtMT0iZnJvbnRlbmQiIGRhdGEtcGFydGljaXBhbnQtMj0idXNlciI+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI3Ni40MTY1LDEzOTYuNzUsNjYuNDE2NSwxNDAwLjc1LDc2LjQxNjUsMTQwNC43NSw3Mi40MTY1LDE0MDAuNzUiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheToyLDI7IiB4MT0iNzAuNDE2NSIgeDI9IjI2Mi4zNzQiIHkxPSIxNDAwLjc1IiB5Mj0iMTQwMC43NSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE2OC41MTc2IiB4PSI4MC4xMzY1IiB5PSIxMzk1LjY4NDEiPk11ZXN0cmEgbWVuc2FqZSBkZSBlcnJvcjwvdGV4dD48L2c+PGcgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGFydGljaXBhbnQtMT0iZG9tYWluU2VydmljZSIgZGF0YS1wYXJ0aWNpcGFudC0yPSJoYW5kbGVyIj48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9Ijg0MC42MzkyLDE0MzIuODgyOCw4MzAuNjM5MiwxNDM2Ljg4MjgsODQwLjYzOTIsMTQ0MC44ODI4LDgzNi42MzkyLDE0MzYuODgyOCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjIsMjsiIHgxPSI4MzQuNjM5MiIgeDI9IjExMzEuNDE5OSIgeTE9IjE0MzYuODgyOCIgeTI9IjE0MzYuODgyOCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjkwLjE0MzEiIHg9IjkzNS45NTgiIHk9IjE0MzEuODE2OSI+VmFsaWRhY2kmIzI0MztuIE9LPC90ZXh0PjwvZz48cmVjdCBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjMiIHN0eWxlPSJzdHJva2U6I0ZGRkZGRjtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxODkzLjg5ODkiIHg9IjUiIHk9IjE0NjUuNDQ5MiIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC41OyIgeDE9IjUiIHgyPSIxODk4Ljg5ODkiIHkxPSIxNDY1LjQ0OTIiIHkyPSIxNDY1LjQ0OTIiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuNTsiIHgxPSI1IiB4Mj0iMTg5OC44OTg5IiB5MT0iMTQ2OC40NDkyIiB5Mj0iMTQ2OC40NDkyIi8+PHJlY3QgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSIyMy4xMzI4IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTA4LjQzNDEiIHg9Ijg5Ny43MzI0IiB5PSIxNDU0Ljg4MjgiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODkuOTA4MiIgeD0iOTAzLjczMjQiIHk9IjE0NzAuOTQ5NyI+UGVyc2lzdGVuY2lhPC90ZXh0PjxnIGNsYXNzPSJtZXNzYWdlIiBkYXRhLXBhcnRpY2lwYW50LTE9ImhhbmRsZXIiIGRhdGEtcGFydGljaXBhbnQtMj0iZW5yb2xsUmVwbyI+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIxNjgzLjc2MjIsMTUwNS4xNDg0LDE2OTMuNzYyMiwxNTA5LjE0ODQsMTY4My43NjIyLDE1MTMuMTQ4NCwxNjg3Ljc2MjIsMTUwOS4xNDg0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgeDE9IjgyOS42MzkyIiB4Mj0iMTY4OS43NjIyIiB5MT0iMTUwOS4xNDg0IiB5Mj0iMTUwOS4xNDg0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTQ1LjA0MzkiIHg9IjExOTAuMTc4NyIgeT0iMTUwNC4wODI1Ij5BZGRBc3luYyhlbnJvbGxtZW50KTwvdGV4dD48L2c+PGcgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGFydGljaXBhbnQtMT0iZW5yb2xsUmVwbyIgZGF0YS1wYXJ0aWNpcGFudC0yPSJkYiI+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIxODM5Ljg2NTcsMTUzNC4yODEzLDE4NDkuODY1NywxNTM4LjI4MTMsMTgzOS44NjU3LDE1NDIuMjgxMywxODQzLjg2NTcsMTUzOC4yODEzIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgeDE9IjE3MDUuNzYyMiIgeDI9IjE4NDUuODY1NyIgeTE9IjE1MzguMjgxMyIgeTI9IjE1MzguMjgxMyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyMi4xMDM1IiB4PSIxNzE3Ljc2MjIiIHk9IjE1MzMuMjE1MyI+SU5TRVJUIEVucm9sbG1lbnQ8L3RleHQ+PC9nPjxnIGNsYXNzPSJtZXNzYWdlIiBkYXRhLXBhcnRpY2lwYW50LTE9ImRiIiBkYXRhLXBhcnRpY2lwYW50LTI9ImVucm9sbFJlcG8iPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iMTcxNi43NjIyLDE1NjMuNDE0MSwxNzA2Ljc2MjIsMTU2Ny40MTQxLDE3MTYuNzYyMiwxNTcxLjQxNDEsMTcxMi43NjIyLDE1NjcuNDE0MSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjIsMjsiIHgxPSIxNzEwLjc2MjIiIHgyPSIxODUwLjg2NTciIHkxPSIxNTY3LjQxNDEiIHkyPSIxNTY3LjQxNDEiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxOC43NTczIiB4PSIxNzY5LjQzNTMiIHk9IjE1NjIuMzQ4MSI+T0s8L3RleHQ+PC9nPjxnIGNsYXNzPSJtZXNzYWdlIiBkYXRhLXBhcnRpY2lwYW50LTE9ImVucm9sbFJlcG8iIGRhdGEtcGFydGljaXBhbnQtMj0iaGFuZGxlciI+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI4NDAuNjM5MiwxNTkyLjU0NjksODMwLjYzOTIsMTU5Ni41NDY5LDg0MC42MzkyLDE2MDAuNTQ2OSw4MzYuNjM5MiwxNTk2LjU0NjkiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheToyLDI7IiB4MT0iODM0LjYzOTIiIHgyPSIxNjk5Ljc2MjIiIHkxPSIxNTk2LjU0NjkiIHkyPSIxNTk2LjU0NjkiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI3MC45NzMxIiB4PSIxMjI5LjcxNDEiIHk9IjE1OTEuNDgxIj5FbnJvbGxtZW50PC90ZXh0PjwvZz48ZyBjbGFzcz0ibWVzc2FnZSIgZGF0YS1wYXJ0aWNpcGFudC0xPSJoYW5kbGVyIiBkYXRhLXBhcnRpY2lwYW50LTI9ImFwaSI+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI1MTMuMjE3MywxNjIxLjY3OTcsNTAzLjIxNzMsMTYyNS42Nzk3LDUxMy4yMTczLDE2MjkuNjc5Nyw1MDkuMjE3MywxNjI1LjY3OTciIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheToyLDI7IiB4MT0iNTA3LjIxNzMiIHgyPSI4MjMuNjM5MiIgeTE9IjE2MjUuNjc5NyIgeTI9IjE2MjUuNjc5NyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyMi4yNTU5IiB4PSI2MDIuMzAwMyIgeT0iMTYyMC42MTM4Ij5FbnJvbGxtZW50UGF5bG9hZDwvdGV4dD48L2c+PGcgY2xhc3M9Im1lc3NhZ2UiIGRhdGEtcGFydGljaXBhbnQtMT0iYXBpIiBkYXRhLXBhcnRpY2lwYW50LTI9ImZyb250ZW5kIj48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjI4NC4zNzQsMTY1MC44MTI1LDI3NC4zNzQsMTY1NC44MTI1LDI4NC4zNzQsMTY1OC44MTI1LDI4MC4zNzQsMTY1NC44MTI1IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6MiwyOyIgeDE9IjI3OC4zNzQiIHgyPSI0OTYuMjE3MyIgeTE9IjE2NTQuODEyNSIgeTI9IjE2NTQuODEyNSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEzMy4wMTUxIiB4PSIzMTguNzg4MSIgeT0iMTY0OS43NDY2Ij57IGVucm9sbG1lbnQ6IHsuLi59IH08L3RleHQ+PC9nPjxnIGNsYXNzPSJtZXNzYWdlIiBkYXRhLXBhcnRpY2lwYW50LTE9ImZyb250ZW5kIiBkYXRhLXBhcnRpY2lwYW50LTI9InVzZXIiPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNzYuNDE2NSwxNjk1LjA3ODEsNjYuNDE2NSwxNjk5LjA3ODEsNzYuNDE2NSwxNzAzLjA3ODEsNzIuNDE2NSwxNjk5LjA3ODEiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheToyLDI7IiB4MT0iNzAuNDE2NSIgeDI9IjI2Ny4zNzQiIHkxPSIxNjk5LjA3ODEiIHkyPSIxNjk5LjA3ODEiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNDUuNjAyNSIgeD0iOTQuMDk0IiB5PSIxNjc4Ljg3OTQiPk11ZXN0cmEgY29uZmlybWFjaSYjMjQzO246PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE0NS4yNTM0IiB4PSI5NC4yNjg2IiB5PSIxNjk0LjAxMjIiPiJJbnNjcml0byBlbiBbbWF0ZXJpYV0iPC90ZXh0PjwvZz48IS0tU1JDPVtsTFJSUlhpdDQ3dFZodllnRzI2WFlMNlczVGU4VEcxUGFIRXJMZzlPSGVGMnlXRDVaWU5Ray1JNnZEZk1ZZG5DRmcxRl9HSl9NOFZTNnJUTUtweUtWUkF5VS1SQ1NDd1BNTnhiRGZXWHYyY0pBaDdOS2tOQ2kwbWlWWVhHU1BvWGpNb0RlcklrNU4xSzNhczRDY1hwaE1vREVpOUt0dXdDcVJWV0o4NXh3RVJDRUNiYnBmR3hPbG53Uk5JWG41WWRzaTNObnB5VEZweVVfS2tHRFc5RDVWMzN5c1ZWRlZpbklQbnFBUzgya0tUQkRlSWZpanA4ZENseGxuRzhYOGJyWFAwS1plMEFQZW1FOEhkcWtMUm1vX2twR1A4bXhlWW1yLTl3bTJtS2JXd1JqeWNYVHNtcWxMSFlnVmVaakl2SVBXTzFVTGF6eHc5N3lvY3lDWXBWbDNrWFdEVlFaSlVRd3ZKSWJyNGlienEwQVdQY0tlV0tSdmFmUXhZd1RMdENIMWNUZldpZ2JDSHVwSEkxSksxa29qX3hxMWIxTi1nQzU1d1drUDZ5ZjFSbmFzdk9ITi1Ba1JRSU1oQ0QwUlB6a1dDbExiVjg3eTNSZl96S3I0dTRYWFNYRzMzN0xpbVlhUnl4MEx6YVRLb25JZkIzR25XTHI2LVlQQU44X1RwV1pURzNFM25DNGdMOVE0cTFHUzRkaEplMGFuSW1EU0VNV0xKSUN2M05oMlNZbzFRU0g4TEcxN0YwcFZ0ZEwwZURCQ3FPLVB5OWRIMEwtMW9YYThMRVlPNGVsVDR3bmxFYi0wQld3T2tjMTFaSU1MQmFONmg1ODJrVGs1SFJLZXlaU0FCbzNrc0xGMmpmVWp3UXllUG14SWNJWGVvOG9LRjRjSE1FRVFBaUViWjlycnlnZzRNUllZVXI4NUNuTUFmcFFrMTY2X2FubjB0WDJDYm4xZHdjOHgtdVE5RHdZb08tMXdLWUFyQWd0bllybXh5WVA4bHBEbE5sTW5XVHg3OEJiak82U3VOMWZWZTZ5MndOOWtHaGlLdHZPcmUtY1BxUmdSbjVxYUhXWHhXa2U3OHUxUEkteHRUY09Rb3BaMXVGc2dCZ1lWMG9sTHF2bG5vZ1hWMklFTXMzRzNLZHFLVnNmWElscTFyamYtQXpUOWxNaHRQYWp1aHRjdnY2b1VCWFk5YzhNQW95eDlFSm9WV0NnY0JYTXVYTzRxOHlWTDExM1ZNWnFBTml6QUEybktzQlFxYk93YzFDY3o0bkNZc0s2Qzc4d0QyR2o0ZkNRN2NSOFZHVTFsSDJINTJZdy1TXzA3c0c3U0J2bVM3MTFObUFtRFFaWDB2SkM4SFBHUkRkb0ZRZUJCbDJ1TEJySGU0VE4wNnlwOVdSY1E3SGxJR3VGTFFkdElRakVmS1NaUXlaRVFCYjR1VmtvYjYtUVdKZTlBYlVMV0I0OTVxMVFXeFNjenN4aG5vUW5kd2RrNHh6QWFEdVdzakRrczNOWWZ0TDcwclR3dmRRV3lyS0hzVmxCbFFhSXhRN1ZSbjFWWnJaVHY0Wi10djVQRlVWeC0zeFVhbFBZejlCcVNVcU45R2o4WVlfYXd4SkFoVm5UdURrZ2lhVEhuR2VfRHl5QjhTbE1fRmFfaXpDLWJEWWF2VU1Dc1ZnOC10Y196d2JGYXk4Qkh0dms2UkVaUndhQXY2Y2N1aG9QOTg0eW5zYlVKQU9ldkU2WkV1WHNiSFRfUHJMdFFwRTFGdm9XY2EzVXNIaDVvcDNGU2FWc3prdzJqaWptckF4d3FCLXhtdnQzWGRGcVRqVnV1ZFJ5SnBEdDFvRGJKUGlWUk94Ti1yNVdxWDdlamVaczlXbzZnUmVKWDk1ck1qYS1jT25FSnNCVGRjeklKZVBnREd1amRFYUUxSnRQS3Rzb0RONHBEYXNyS3A0ZVNyTlJ4ejZKSVp6SHBmejhmc1l1RjJ6X3Y5Y3Y4VEJRUjlJMHhfMW93a0FxX3hVU2J3dnZnOE5TcE9OYnh5MV0tLT48L2c+PC9zdmc+",
"04-components": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U3R5bGVUeXBlPSJ0ZXh0L2NzcyIgZGF0YS1kaWFncmFtLXR5cGU9IkRFU0NSSVBUSU9OIiBoZWlnaHQ9Ijk3NHB4IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBzdHlsZT0id2lkdGg6NjU3NnB4O2hlaWdodDo5NzRweDtiYWNrZ3JvdW5kOiNGRkZGRkY7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA2NTc2IDk3NCIgd2lkdGg9IjY1NzZweCIgem9vbUFuZFBhbj0ibWFnbmlmeSI+PHRpdGxlPlNpc3RlbWEgZGUgUmVnaXN0cm8gZGUgRXN0dWRpYW50ZXMgLSBBcnF1aXRlY3R1cmEgZGUgQ29tcG9uZW50ZXM8L3RpdGxlPjxkZWZzLz48Zz48ZyBjbGFzcz0idGl0bGUiIGRhdGEtc291cmNlLWxpbmU9IjkiPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjIyIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4NDAuNDU4IiB4PSIyODYzLjI3NzUiIHk9IjM1LjQyMDkiPlNpc3RlbWEgZGUgUmVnaXN0cm8gZGUgRXN0dWRpYW50ZXMgLSBBcnF1aXRlY3R1cmEgZGUgQ29tcG9uZW50ZXM8L3RleHQ+PC9nPjwhLS1jbHVzdGVyIGZyb250ZW5kLS0+PGcgY2xhc3M9ImNsdXN0ZXIiIGRhdGEtZW50aXR5PSJmcm9udGVuZCIgZGF0YS1zb3VyY2UtbGluZT0iMTEiIGRhdGEtdWlkPSJlbnQwMDAyIiBpZD0iY2x1c3Rlcl9mcm9udGVuZCI+PHJlY3QgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSI2MzAuMTkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6I0RFRTJFNjtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0MDg5IiB4PSIyMTU2IiB5PSIzMjIuMzI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNzYuMTk2MyIgeD0iNDExMi40MDE5IiB5PSIzMzcuMzI0NSI+RnJvbnRlbmQgKEFuZ3VsYXIgMjEpPC90ZXh0PjwvZz48IS0tY2x1c3RlciBGZWF0dXJlcy0tPjxnIGNsYXNzPSJjbHVzdGVyIiBkYXRhLWVudGl0eT0iRmVhdHVyZXMiIGRhdGEtc291cmNlLWxpbmU9IjE0IiBkYXRhLXVpZD0iZW50MDAwNCIgaWQ9ImNsdXN0ZXJfRmVhdHVyZXMiPjxyZWN0IGZpbGw9IiNGRkZGRkYiIGhlaWdodD0iMTY0LjMiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6I0RFRTJFNjtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIyOTI1IiB4PSIyNjg2IiB5PSI0OTIuNjI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI2OS44OTc1IiB4PSI0MTEzLjU1MTMiIHk9IjUwNy42MjQ1Ij5GZWF0dXJlczwvdGV4dD48L2c+PCEtLWNsdXN0ZXIgQXV0aC0tPjxnIGNsYXNzPSJjbHVzdGVyIiBkYXRhLWVudGl0eT0iQXV0aCIgZGF0YS1zb3VyY2UtbGluZT0iMTUiIGRhdGEtdWlkPSJlbnQwMDA1IiBpZD0iY2x1c3Rlcl9BdXRoIj48cmVjdCBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9Ijk3LjMiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6I0RFRTJFNjtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMjg1IiB4PSIzNDYzIiB5PSI1MzUuNjI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIzNy40NjA5IiB4PSI0MDg2Ljc2OTUiIHk9IjU1MC42MjQ1Ij5BdXRoPC90ZXh0PjwvZz48IS0tY2x1c3RlciBEYXNoYm9hcmQtLT48ZyBjbGFzcz0iY2x1c3RlciIgZGF0YS1lbnRpdHk9IkRhc2hib2FyZCIgZGF0YS1zb3VyY2UtbGluZT0iMjEiIGRhdGEtdWlkPSJlbnQwMDEwIiBpZD0iY2x1c3Rlcl9EYXNoYm9hcmQiPjxyZWN0IGZpbGw9IiNGRkZGRkYiIGhlaWdodD0iOTcuMyIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojREVFMkU2O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQwOSIgeD0iNDc3MiIgeT0iNTM1LjYyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODUuMzgwOSIgeD0iNDkzMy44MDk2IiB5PSI1NTAuNjI0NSI+RGFzaGJvYXJkPC90ZXh0PjwvZz48IS0tY2x1c3RlciBTdHVkZW50cy0tPjxnIGNsYXNzPSJjbHVzdGVyIiBkYXRhLWVudGl0eT0iU3R1ZGVudHMiIGRhdGEtc291cmNlLWxpbmU9IjI1IiBkYXRhLXVpZD0iZW50MDAxMyIgaWQ9ImNsdXN0ZXJfU3R1ZGVudHMiPjxyZWN0IGZpbGw9IiNGRkZGRkYiIGhlaWdodD0iOTcuMyIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojREVFMkU2O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjcyOSIgeD0iMjcxMCIgeT0iNTM1LjYyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNzEuMjUxIiB4PSIzMDM4Ljg3NDUiIHk9IjU1MC42MjQ1Ij5TdHVkZW50czwvdGV4dD48L2c+PCEtLWNsdXN0ZXIgRW5yb2xsbWVudC0tPjxnIGNsYXNzPSJjbHVzdGVyIiBkYXRhLWVudGl0eT0iRW5yb2xsbWVudCIgZGF0YS1zb3VyY2UtbGluZT0iMjkiIGRhdGEtdWlkPSJlbnQwMDE2IiBpZD0iY2x1c3Rlcl9FbnJvbGxtZW50Ij48cmVjdCBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9Ijk3LjMiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6I0RFRTJFNjtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIzODIiIHg9IjUyMDUiIHk9IjUzNS42Mjk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijg2LjM5MjYiIHg9IjUzNTIuODAzNyIgeT0iNTUwLjYyNDUiPkVucm9sbG1lbnQ8L3RleHQ+PC9nPjwhLS1jbHVzdGVyIENvcmUtLT48ZyBjbGFzcz0iY2x1c3RlciIgZGF0YS1lbnRpdHk9IkNvcmUiIGRhdGEtc291cmNlLWxpbmU9IjM1IiBkYXRhLXVpZD0iZW50MDAxOSIgaWQ9ImNsdXN0ZXJfQ29yZSI+PHJlY3QgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSIyMjIuNTkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6I0RFRTJFNjtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI5NDMiIHg9IjQ0MjciIHk9IjcwNS45Mjk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjM2LjI5MiIgeD0iNDg4MC4zNTQiIHk9IjcyMC45MjQ1Ij5Db3JlPC90ZXh0PjwvZz48IS0tY2x1c3RlciBHdWFyZHMtLT48ZyBjbGFzcz0iY2x1c3RlciIgZGF0YS1lbnRpdHk9Ikd1YXJkcyIgZGF0YS1zb3VyY2UtbGluZT0iNDQiIGRhdGEtdWlkPSJlbnQwMDI2IiBpZD0iY2x1c3Rlcl9HdWFyZHMiPjxyZWN0IGZpbGw9IiNGRkZGRkYiIGhlaWdodD0iOTcuMyIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojREVFMkU2O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQ4MiIgeD0iMjE4MCIgeT0iNTM1LjYyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNTYuMTY0MSIgeD0iMjM5Mi45MTgiIHk9IjU1MC42MjQ1Ij5HdWFyZHM8L3RleHQ+PC9nPjwhLS1jbHVzdGVyIFNoYXJlZC0tPjxnIGNsYXNzPSJjbHVzdGVyIiBkYXRhLWVudGl0eT0iU2hhcmVkIiBkYXRhLXNvdXJjZS1saW5lPSI1MCIgZGF0YS11aWQ9ImVudDAwMzAiIGlkPSJjbHVzdGVyX1NoYXJlZCI+PHJlY3QgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSI5Ny4zIiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiNERUUyRTY7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNTg2IiB4PSI1NjM1IiB5PSI1MzUuNjI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI1NS45MTgiIHg9IjU5MDAuMDQxIiB5PSI1NTAuNjI0NSI+U2hhcmVkPC90ZXh0PjwvZz48IS0tY2x1c3RlciBiYWNrZW5kLS0+PGcgY2xhc3M9ImNsdXN0ZXIiIGRhdGEtZW50aXR5PSJiYWNrZW5kIiBkYXRhLXNvdXJjZS1saW5lPSI1NyIgZGF0YS11aWQ9ImVudDAwMzQiIGlkPSJjbHVzdGVyX2JhY2tlbmQiPjxyZWN0IGZpbGw9IiNGRkZGRkYiIGhlaWdodD0iODc2Ljc4IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiNERUUyRTY7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTU0MSIgeD0iNTkxIiB5PSI5MS43Mzk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE0NS4zODY3IiB4PSIxMjg4LjgwNjYiIHk9IjEwNi43MzQ1Ij5CYWNrZW5kICguTkVUIDEwKTwvdGV4dD48L2c+PCEtLWNsdXN0ZXIgaG9zdC0tPjxnIGNsYXNzPSJjbHVzdGVyIiBkYXRhLWVudGl0eT0iaG9zdCIgZGF0YS1zb3VyY2UtbGluZT0iNTkiIGRhdGEtdWlkPSJlbnQwMDM1IiBpZD0iY2x1c3Rlcl9ob3N0Ij48cmVjdCBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9Ijk3LjI5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiNERUUyRTY7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMzE0IiB4PSI2MTUiIHk9IjE4NS44ODk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjM2LjM2MDQiIHg9Ijc1My44MTk4IiB5PSIyMDAuODg0NSI+SG9zdDwvdGV4dD48L2c+PCEtLWNsdXN0ZXIgYWRhcHRlcnMtLT48ZyBjbGFzcz0iY2x1c3RlciIgZGF0YS1lbnRpdHk9ImFkYXB0ZXJzIiBkYXRhLXNvdXJjZS1saW5lPSI2NCIgZGF0YS11aWQ9ImVudDAwMzgiIGlkPSJjbHVzdGVyX2FkYXB0ZXJzIj48cmVjdCBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjMwOC44OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojREVFMkU2O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjExNTUiIHg9Ijk1MyIgeT0iMTM0LjczOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNzEuNzUiIHg9IjE0OTQuNjI1IiB5PSIxNDkuNzM0NSI+QWRhcHRlcnM8L3RleHQ+PC9nPjwhLS1jbHVzdGVyIERyaXZpbmcgKFByaW1hcnkpLS0+PGcgY2xhc3M9ImNsdXN0ZXIiIGRhdGEtZW50aXR5PSJEcml2aW5nIC5QcmltYXJ5LiIgZGF0YS1zb3VyY2UtbGluZT0iNjUiIGRhdGEtdWlkPSJlbnQwMDM5IiBpZD0iY2x1c3Rlcl9Ecml2aW5nIC5QcmltYXJ5LiI+PHJlY3QgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSIyNDEuODkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6I0RFRTJFNjtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0MDUiIHg9Ijk3NyIgeT0iMTc3LjczOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTM2LjkzNzUiIHg9IjExMTEuMDMxMyIgeT0iMTkyLjczNDUiPkRyaXZpbmcgKFByaW1hcnkpPC90ZXh0PjwvZz48IS0tY2x1c3RlciBEcml2ZW4gKFNlY29uZGFyeSktLT48ZyBjbGFzcz0iY2x1c3RlciIgZGF0YS1lbnRpdHk9IkRyaXZlbiAuU2Vjb25kYXJ5LiIgZGF0YS1zb3VyY2UtbGluZT0iNzMiIGRhdGEtdWlkPSJlbnQwMDQ1IiBpZD0iY2x1c3Rlcl9Ecml2ZW4gLlNlY29uZGFyeS4iPjxyZWN0IGZpbGw9IiNGRkZGRkYiIGhlaWdodD0iMjMzLjc0IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiNERUUyRTY7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNjc4IiB4PSIxNDA2IiB5PSIxODUuODg5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNTIuNTQzOSIgeD0iMTY2OC43MjgiIHk9IjIwMC44ODQ1Ij5Ecml2ZW4gKFNlY29uZGFyeSk8L3RleHQ+PC9nPjwhLS1jbHVzdGVyIGFwcGxpY2F0aW9uLS0+PGcgY2xhc3M9ImNsdXN0ZXIiIGRhdGEtZW50aXR5PSJhcHBsaWNhdGlvbiIgZGF0YS1zb3VyY2UtbGluZT0iODIiIGRhdGEtdWlkPSJlbnQwMDUxIiBpZD0iY2x1c3Rlcl9hcHBsaWNhdGlvbiI+PHJlY3QgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSIxNjQuMyIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojREVFMkU2O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjY4MCIgeD0iMTAzNiIgeT0iNDkyLjYyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODkuMjk3OSIgeD0iMTMzMS4zNTExIiB5PSI1MDcuNjI0NSI+QXBwbGljYXRpb248L3RleHQ+PC9nPjwhLS1jbHVzdGVyIEVucm9sbG1lbnRzLS0+PGcgY2xhc3M9ImNsdXN0ZXIiIGRhdGEtZW50aXR5PSJFbnJvbGxtZW50cyIgZGF0YS1zb3VyY2UtbGluZT0iOTIiIGRhdGEtdWlkPSJlbnQwMDU3IiBpZD0iY2x1c3Rlcl9FbnJvbGxtZW50cyI+PHJlY3QgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSI5Ny4zIiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiNERUUyRTY7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMzk4IiB4PSIxMDYwIiB5PSI1MzUuNjI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5NC43MjU2IiB4PSIxMjExLjYzNzIiIHk9IjU1MC42MjQ1Ij5FbnJvbGxtZW50czwvdGV4dD48L2c+PCEtLWNsdXN0ZXIgZG9tYWluLS0+PGcgY2xhc3M9ImNsdXN0ZXIiIGRhdGEtZW50aXR5PSJkb21haW4iIGRhdGEtc291cmNlLWxpbmU9IjEwMCIgZGF0YS11aWQ9ImVudDAwNjIiIGlkPSJjbHVzdGVyX2RvbWFpbiI+PHJlY3QgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSIyMzguNTkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6I0RFRTJFNjtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI3NDUiIHg9IjczNyIgeT0iNjk3LjkyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjAuMDQiIHg9IjEwNzkuNDgiIHk9IjcxMi45MjQ1Ij5Eb21haW48L3RleHQ+PC9nPjwhLS1jbHVzdGVyIHNxbHNlcnZlci0tPjxnIGNsYXNzPSJjbHVzdGVyIiBkYXRhLWVudGl0eT0ic3Fsc2VydmVyIiBkYXRhLXNvdXJjZS1saW5lPSIxMTEiIGRhdGEtdWlkPSJlbnQwMDcwIiBpZD0iY2x1c3Rlcl9zcWxzZXJ2ZXIiPjxwYXRoIGQ9Ik0xMSw1MjIuNjI5NCBDMTEsNTEyLjYyOTQgMjg1LDUxMi42Mjk0IDI4NSw1MTIuNjI5NCBDMjg1LDUxMi42Mjk0IDU1OSw1MTIuNjI5NCA1NTksNTIyLjYyOTQgTDU1OSw4MDEuMjE5NCBDNTU5LDgxMS4yMTk0IDI4NSw4MTEuMjE5NCAyODUsODExLjIxOTQgQzI4NSw4MTEuMjE5NCAxMSw4MTEuMjE5NCAxMSw4MDEuMjE5NCBMMTEsNTIyLjYyOTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6I0RFRTJFNjtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNMTEsNTIyLjYyOTQgQzExLDUzMi42Mjk0IDI4NSw1MzIuNjI5NCAyODUsNTMyLjYyOTQgQzI4NSw1MzIuNjI5NCA1NTksNTMyLjYyOTQgNTU5LDUyMi42Mjk0IiBmaWxsPSJub25lIiBzdHlsZT0ic3Ryb2tlOiNERUUyRTY7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEzMS42MjYiIHg9IjIxOS4xODciIHk9IjU0Ny42MjQ1Ij5TUUwgU2VydmVyIDIwMjI8L3RleHQ+PC9nPjwhLS1lbnRpdHkgYXBwLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9ImFwcCIgZGF0YS1zb3VyY2UtbGluZT0iMTIiIGRhdGEtdWlkPSJlbnQwMDAzIiBpZD0iZW50aXR5X2FwcCI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI0Ni4yOTY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUzLjA4MDEiIHg9IjQ4NzcuNDYiIHk9IjM1Ny4zMjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSI1MDEwLjU0MDEiIHk9IjM2Mi4zMjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNTAwOC41NDAxIiB5PSIzNjQuMzI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjUwMDguNTQwMSIgeT0iMzY4LjMyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMTMuMDgwMSIgeD0iNDg5Mi40NiIgeT0iMzkwLjMyNDUiPkFwcCBDb21wb25lbnQ8L3RleHQ+PC9nPjwhLS1lbnRpdHkgbG9naW5QYWdlLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9ImxvZ2luUGFnZSIgZGF0YS1zb3VyY2UtbGluZT0iMTYiIGRhdGEtdWlkPSJlbnQwMDA2IiBpZD0iZW50aXR5X2xvZ2luUGFnZSI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI0Ni4yOTY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTE2Ljk4NjMiIHg9IjQwNjMuNTEiIHk9IjU3MC42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSI0MTYwLjQ5NjMiIHk9IjU3NS42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNDE1OC40OTYzIiB5PSI1NzcuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjQxNTguNDk2MyIgeT0iNTgxLjYyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI3Ni45ODYzIiB4PSI0MDc4LjUxIiB5PSI2MDMuNjI0NSI+TG9naW4gUGFnZTwvdGV4dD48L2c+PCEtLWVudGl0eSByZWdpc3RlclBhZ2UtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0icmVnaXN0ZXJQYWdlIiBkYXRhLXNvdXJjZS1saW5lPSIxNyIgZGF0YS11aWQ9ImVudDAwMDciIGlkPSJlbnRpdHlfcmVnaXN0ZXJQYWdlIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMzcuMjQxMiIgeD0iNDIxNS4zOCIgeT0iNTcwLjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjQzMzIuNjIxMiIgeT0iNTc1LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI0MzMwLjYyMTIiIHk9IjU3Ny42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNDMzMC42MjEyIiB5PSI1ODEuNjI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijk3LjI0MTIiIHg9IjQyMzAuMzgiIHk9IjYwMy42MjQ1Ij5SZWdpc3RlciBQYWdlPC90ZXh0PjwvZz48IS0tZW50aXR5IHJlc2V0UGFnZS0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJyZXNldFBhZ2UiIGRhdGEtc291cmNlLWxpbmU9IjE4IiBkYXRhLXVpZD0iZW50MDAwOCIgaWQ9ImVudGl0eV9yZXNldFBhZ2UiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1MC40NTUxIiB4PSI0Mzg3Ljc3IiB5PSI1NzAuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iNDUxOC4yMjUxIiB5PSI1NzUuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjQ1MTYuMjI1MSIgeT0iNTc3LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI0NTE2LjIyNTEiIHk9IjU4MS42Mjk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTEwLjQ1NTEiIHg9IjQ0MDIuNzciIHk9IjYwMy42MjQ1Ij5SZXNldCBQYXNzd29yZDwvdGV4dD48L2c+PCEtLWVudGl0eSBhY3RpdmF0ZVBhZ2UtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iYWN0aXZhdGVQYWdlIiBkYXRhLXNvdXJjZS1saW5lPSIxOSIgZGF0YS11aWQ9ImVudDAwMDkiIGlkPSJlbnRpdHlfYWN0aXZhdGVQYWdlIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNTguODQyOCIgeD0iNDU3My41OCIgeT0iNTcwLjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjQ3MTIuNDIyOCIgeT0iNTc1LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI0NzEwLjQyMjgiIHk9IjU3Ny42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNDcxMC40MjI4IiB5PSI1ODEuNjI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjExOC44NDI4IiB4PSI0NTg4LjU4IiB5PSI2MDMuNjI0NSI+QWN0aXZhdGUgQWNjb3VudDwvdGV4dD48L2c+PCEtLWVudGl0eSBsb2dpbkNtZC0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJsb2dpbkNtZCIgZGF0YS1zb3VyY2UtbGluZT0iODQiIGRhdGEtdWlkPSJlbnQwMDUyIiBpZD0iZW50aXR5X2xvZ2luQ21kIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNTQuNDE5OSIgeD0iMzY2My43OSIgeT0iNTcwLjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjM3OTguMjA5OSIgeT0iNTc1LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIzNzk2LjIwOTkiIHk9IjU3Ny42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMzc5Ni4yMDk5IiB5PSI1ODEuNjI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjExNC40MTk5IiB4PSIzNjc4Ljc5IiB5PSI2MDMuNjI0NSI+TG9naW4gQ29tbWFuZDwvdGV4dD48L2c+PCEtLWVudGl0eSByZWdpc3RlckNtZC0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJyZWdpc3RlckNtZCIgZGF0YS1zb3VyY2UtbGluZT0iODUiIGRhdGEtdWlkPSJlbnQwMDUzIiBpZD0iZW50aXR5X3JlZ2lzdGVyQ21kIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNzQuNjc0OCIgeD0iMzg1My42NiIgeT0iNTcwLjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjQwMDguMzM0OCIgeT0iNTc1LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI0MDA2LjMzNDgiIHk9IjU3Ny42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNDAwNi4zMzQ4IiB5PSI1ODEuNjI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEzNC42NzQ4IiB4PSIzODY4LjY2IiB5PSI2MDMuNjI0NSI+UmVnaXN0ZXIgQ29tbWFuZDwvdGV4dD48L2c+PCEtLWVudGl0eSByZXNldENtZC0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJyZXNldENtZCIgZGF0YS1zb3VyY2UtbGluZT0iODYiIGRhdGEtdWlkPSJlbnQwMDU0IiBpZD0iZW50aXR5X3Jlc2V0Q21kIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNTAuNDU1MSIgeD0iMzQ3OC43NyIgeT0iNTcwLjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjM2MDkuMjI1MSIgeT0iNTc1LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIzNjA3LjIyNTEiIHk9IjU3Ny42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMzYwNy4yMjUxIiB5PSI1ODEuNjI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjExMC40NTUxIiB4PSIzNDkzLjc3IiB5PSI2MDMuNjI0NSI+UmVzZXQgUGFzc3dvcmQ8L3RleHQ+PC9nPjwhLS1lbnRpdHkgc3R1ZGVudERhc2gtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0ic3R1ZGVudERhc2giIGRhdGEtc291cmNlLWxpbmU9IjIyIiBkYXRhLXVpZD0iZW50MDAxMSIgaWQ9ImVudGl0eV9zdHVkZW50RGFzaCI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI0Ni4yOTY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTc1Ljc2MTciIHg9IjQ3ODguMTIiIHk9IjU3MC42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSI0OTQzLjg4MTciIHk9IjU3NS42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNDk0MS44ODE3IiB5PSI1NzcuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjQ5NDEuODgxNyIgeT0iNTgxLjYyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMzUuNzYxNyIgeD0iNDgwMy4xMiIgeT0iNjAzLjYyNDUiPlN0dWRlbnQgRGFzaGJvYXJkPC90ZXh0PjwvZz48IS0tZW50aXR5IGFkbWluRGFzaC0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJhZG1pbkRhc2giIGRhdGEtc291cmNlLWxpbmU9IjIzIiBkYXRhLXVpZD0iZW50MDAxMiIgaWQ9ImVudGl0eV9hZG1pbkRhc2giPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE2NS41MTQ2IiB4PSI0OTk5LjI0IiB5PSI1NzAuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iNTE0NC43NTQ2IiB5PSI1NzUuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjUxNDIuNzU0NiIgeT0iNTc3LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI1MTQyLjc1NDYiIHk9IjU4MS42Mjk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTI1LjUxNDYiIHg9IjUwMTQuMjQiIHk9IjYwMy42MjQ1Ij5BZG1pbiBEYXNoYm9hcmQ8L3RleHQ+PC9nPjwhLS1lbnRpdHkgc3R1ZGVudExpc3QtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0ic3R1ZGVudExpc3QiIGRhdGEtc291cmNlLWxpbmU9IjI2IiBkYXRhLXVpZD0iZW50MDAxNCIgaWQ9ImVudGl0eV9zdHVkZW50TGlzdCI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI0Ni4yOTY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTI0LjAzNDIiIHg9IjMyOTguOTgiIHk9IjU3MC42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSIzNDAzLjAxNDIiIHk9IjU3NS42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMzQwMS4wMTQyIiB5PSI1NzcuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjM0MDEuMDE0MiIgeT0iNTgxLjYyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4NC4wMzQyIiB4PSIzMzEzLjk4IiB5PSI2MDMuNjI0NSI+U3R1ZGVudCBMaXN0PC90ZXh0PjwvZz48IS0tZW50aXR5IHN0dWRlbnRGb3JtLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9InN0dWRlbnRGb3JtIiBkYXRhLXNvdXJjZS1saW5lPSIyNyIgZGF0YS11aWQ9ImVudDAwMTUiIGlkPSJlbnRpdHlfc3R1ZGVudEZvcm0iPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjEzNS41NzMyIiB4PSIyOTM5LjIxIiB5PSI1NzAuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iMzA1NC43ODMyIiB5PSI1NzUuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjMwNTIuNzgzMiIgeT0iNTc3LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIzMDUyLjc4MzIiIHk9IjU4MS42Mjk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iOTUuNTczMiIgeD0iMjk1NC4yMSIgeT0iNjAzLjYyNDUiPlN0dWRlbnQgRm9ybTwvdGV4dD48L2c+PCEtLWVudGl0eSBzdHVkZW50Q21kcy0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJzdHVkZW50Q21kcyIgZGF0YS1zb3VyY2UtbGluZT0iODkiIGRhdGEtdWlkPSJlbnQwMDU1IiBpZD0iZW50aXR5X3N0dWRlbnRDbWRzIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNzguODEwNSIgeD0iMjcyNS41OSIgeT0iNTcwLjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjI4ODQuNDAwNSIgeT0iNTc1LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIyODgyLjQwMDUiIHk9IjU3Ny42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMjg4Mi40MDA1IiB5PSI1ODEuNjI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEzOC44MTA1IiB4PSIyNzQwLjU5IiB5PSI2MDMuNjI0NSI+U3R1ZGVudCBDb21tYW5kczwvdGV4dD48L2c+PCEtLWVudGl0eSBzdHVkZW50UXMtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0ic3R1ZGVudFFzIiBkYXRhLXNvdXJjZS1saW5lPSI5MCIgZGF0YS11aWQ9ImVudDAwNTYiIGlkPSJlbnRpdHlfc3R1ZGVudFFzIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNTMuNjIwMSIgeD0iMzExMC4xOSIgeT0iNTcwLjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjMyNDMuODEwMSIgeT0iNTc1LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIzMjQxLjgxMDEiIHk9IjU3Ny42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMzI0MS44MTAxIiB5PSI1ODEuNjI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjExMy42MjAxIiB4PSIzMTI1LjE5IiB5PSI2MDMuNjI0NSI+U3R1ZGVudCBRdWVyaWVzPC90ZXh0PjwvZz48IS0tZW50aXR5IGVucm9sbFBhZ2UtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iZW5yb2xsUGFnZSIgZGF0YS1zb3VyY2UtbGluZT0iMzAiIGRhdGEtdWlkPSJlbnQwMDE3IiBpZD0iZW50aXR5X2Vucm9sbFBhZ2UiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1NS40MDQzIiB4PSI1NDE1LjMiIHk9IjU3MC42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSI1NTUwLjcwNDMiIHk9IjU3NS42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNTU0OC43MDQzIiB5PSI1NzcuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjU1NDguNzA0MyIgeT0iNTgxLjYyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMTUuNDA0MyIgeD0iNTQzMC4zIiB5PSI2MDMuNjI0NSI+RW5yb2xsbWVudCBQYWdlPC90ZXh0PjwvZz48IS0tZW50aXR5IGNsYXNzbWF0ZXMtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iY2xhc3NtYXRlcyIgZGF0YS1zb3VyY2UtbGluZT0iMzEiIGRhdGEtdWlkPSJlbnQwMDE4IiBpZD0iZW50aXR5X2NsYXNzbWF0ZXMiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1OS40MTciIHg9IjUyMjEuMjkiIHk9IjU3MC42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSI1MzYwLjcwNyIgeT0iNTc1LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI1MzU4LjcwNyIgeT0iNTc3LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI1MzU4LjcwNyIgeT0iNTgxLjYyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMTkuNDE3IiB4PSI1MjM2LjI5IiB5PSI2MDMuNjI0NSI+Q2xhc3NtYXRlcyBQYWdlPC90ZXh0PjwvZz48IS0tZW50aXR5IGFwb2xsby0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJhcG9sbG8iIGRhdGEtc291cmNlLWxpbmU9IjM2IiBkYXRhLXVpZD0iZW50MDAyMCIgaWQ9ImVudGl0eV9hcG9sbG8iPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjEyOC4zNTQ1IiB4PSI0NjY5LjgyIiB5PSI4NjYuMjE5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iNDc3OC4xNzQ1IiB5PSI4NzEuMjE5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjQ3NzYuMTc0NSIgeT0iODczLjIxOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI0Nzc2LjE3NDUiIHk9Ijg3Ny4yMTk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODguMzU0NSIgeD0iNDY4NC44MiIgeT0iODk5LjIxNDUiPkFwb2xsbyBDbGllbnQ8L3RleHQ+PC9nPjwhLS1lbnRpdHkgYXV0aFN2Yy0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJhdXRoU3ZjIiBkYXRhLXNvdXJjZS1saW5lPSIzNyIgZGF0YS11aWQ9ImVudDAwMjEiIGlkPSJlbnRpdHlfYXV0aFN2YyI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI0Ni4yOTY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTI5LjAwMzkiIHg9IjQ0NDMuNSIgeT0iNzQwLjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjQ1NTIuNTAzOSIgeT0iNzQ1LjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI0NTUwLjUwMzkiIHk9Ijc0Ny45Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNDU1MC41MDM5IiB5PSI3NTEuOTI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijg5LjAwMzkiIHg9IjQ0NTguNSIgeT0iNzczLjkyNDUiPkF1dGggU2VydmljZTwvdGV4dD48L2c+PCEtLWVudGl0eSBzdHVkZW50U3ZjLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9InN0dWRlbnRTdmMiIGRhdGEtc291cmNlLWxpbmU9IjM4IiBkYXRhLXVpZD0iZW50MDAyMiIgaWQ9ImVudGl0eV9zdHVkZW50U3ZjIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNTEuMzAyNyIgeD0iNDYwNy4zNSIgeT0iNzQwLjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjQ3MzguNjUyNyIgeT0iNzQ1LjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI0NzM2LjY1MjciIHk9Ijc0Ny45Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNDczNi42NTI3IiB5PSI3NTEuOTI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjExMS4zMDI3IiB4PSI0NjIyLjM1IiB5PSI3NzMuOTI0NSI+U3R1ZGVudCBTZXJ2aWNlPC90ZXh0PjwvZz48IS0tZW50aXR5IGVucm9sbFN2Yy0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJlbnJvbGxTdmMiIGRhdGEtc291cmNlLWxpbmU9IjM5IiBkYXRhLXVpZD0iZW50MDAyMyIgaWQ9ImVudGl0eV9lbnJvbGxTdmMiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE3Mi42MjQiIHg9IjQ3OTMuNjkiIHk9Ijc0MC45Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSI0OTQ2LjMxNCIgeT0iNzQ1LjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI0OTQ0LjMxNCIgeT0iNzQ3LjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI0OTQ0LjMxNCIgeT0iNzUxLjkyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMzIuNjI0IiB4PSI0ODA4LjY5IiB5PSI3NzMuOTI0NSI+RW5yb2xsbWVudCBTZXJ2aWNlPC90ZXh0PjwvZz48IS0tZW50aXR5IGNvbm5TdmMtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iY29ublN2YyIgZGF0YS1zb3VyY2UtbGluZT0iNDAiIGRhdGEtdWlkPSJlbnQwMDI0IiBpZD0iZW50aXR5X2Nvbm5TdmMiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE4My45MTciIHg9IjUwMDEuMDQiIHk9Ijc0MC45Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSI1MTY0Ljk1NyIgeT0iNzQ1LjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI1MTYyLjk1NyIgeT0iNzQ3LjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI1MTYyLjk1NyIgeT0iNzUxLjkyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNDMuOTE3IiB4PSI1MDE2LjA0IiB5PSI3NzMuOTI0NSI+Q29ubmVjdGl2aXR5IFNlcnZpY2U8L3RleHQ+PC9nPjwhLS1lbnRpdHkgZXJyb3JIYW5kbGVyLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9ImVycm9ySGFuZGxlciIgZGF0YS1zb3VyY2UtbGluZT0iNDEiIGRhdGEtdWlkPSJlbnQwMDI1IiBpZD0iZW50aXR5X2Vycm9ySGFuZGxlciI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI0Ni4yOTY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTM0LjI1MzkiIHg9IjUyMTkuODciIHk9Ijc0MC45Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSI1MzM0LjEyMzkiIHk9Ijc0NS45Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNTMzMi4xMjM5IiB5PSI3NDcuOTI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjUzMzIuMTIzOSIgeT0iNzUxLjkyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5NC4yNTM5IiB4PSI1MjM0Ljg3IiB5PSI3NzMuOTI0NSI+RXJyb3IgSGFuZGxlcjwvdGV4dD48L2c+PCEtLWVudGl0eSBhdXRoR3VhcmQtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iYXV0aEd1YXJkIiBkYXRhLXNvdXJjZS1saW5lPSI0NSIgZGF0YS11aWQ9ImVudDAwMjciIGlkPSJlbnRpdHlfYXV0aEd1YXJkIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMjAuMjA2MSIgeD0iMjUyNS45IiB5PSI1NzAuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iMjYyNi4xMDYxIiB5PSI1NzUuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjI2MjQuMTA2MSIgeT0iNTc3LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIyNjI0LjEwNjEiIHk9IjU4MS42Mjk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODAuMjA2MSIgeD0iMjU0MC45IiB5PSI2MDMuNjI0NSI+QXV0aCBHdWFyZDwvdGV4dD48L2c+PCEtLWVudGl0eSBhZG1pbkd1YXJkLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9ImFkbWluR3VhcmQiIGRhdGEtc291cmNlLWxpbmU9IjQ2IiBkYXRhLXVpZD0iZW50MDAyOCIgaWQ9ImVudGl0eV9hZG1pbkd1YXJkIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMzIuMjU3OCIgeD0iMjE5NS44NyIgeT0iNTcwLjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjIzMDguMTI3OCIgeT0iNTc1LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIyMzA2LjEyNzgiIHk9IjU3Ny42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMjMwNi4xMjc4IiB5PSI1ODEuNjI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjkyLjI1NzgiIHg9IjIyMTAuODciIHk9IjYwMy42MjQ1Ij5BZG1pbiBHdWFyZDwvdGV4dD48L2c+PCEtLWVudGl0eSBndWVzdEd1YXJkLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9Imd1ZXN0R3VhcmQiIGRhdGEtc291cmNlLWxpbmU9IjQ3IiBkYXRhLXVpZD0iZW50MDAyOSIgaWQ9ImVudGl0eV9ndWVzdEd1YXJkIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMjguNTExNyIgeD0iMjM2Mi43NCIgeT0iNTcwLjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjI0NzEuMjUxNyIgeT0iNTc1LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIyNDY5LjI1MTciIHk9IjU3Ny42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMjQ2OS4yNTE3IiB5PSI1ODEuNjI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijg4LjUxMTciIHg9IjIzNzcuNzQiIHk9IjYwMy42MjQ1Ij5HdWVzdCBHdWFyZDwvdGV4dD48L2c+PCEtLWVudGl0eSBvdmVybGF5LS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9Im92ZXJsYXkiIGRhdGEtc291cmNlLWxpbmU9IjUxIiBkYXRhLXVpZD0iZW50MDAzMSIgaWQ9ImVudGl0eV9vdmVybGF5Ij48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxODYuNjAzNSIgeD0iNTY1MC43IiB5PSI1NzAuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iNTgxNy4zMDM1IiB5PSI1NzUuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjU4MTUuMzAzNSIgeT0iNTc3LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI1ODE1LjMwMzUiIHk9IjU4MS42Mjk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTQ2LjYwMzUiIHg9IjU2NjUuNyIgeT0iNjAzLjYyNDUiPkNvbm5lY3Rpdml0eSBPdmVybGF5PC90ZXh0PjwvZz48IS0tZW50aXR5IHNwaW5uZXItLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0ic3Bpbm5lciIgZGF0YS1zb3VyY2UtbGluZT0iNTIiIGRhdGEtdWlkPSJlbnQwMDMyIiBpZD0iZW50aXR5X3NwaW5uZXIiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1My43MDkiIHg9IjU4NzIuMTUiIHk9IjU3MC42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSI2MDA1Ljg1OSIgeT0iNTc1LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI2MDAzLjg1OSIgeT0iNTc3LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI2MDAzLjg1OSIgeT0iNTgxLjYyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMTMuNzA5IiB4PSI1ODg3LjE1IiB5PSI2MDMuNjI0NSI+TG9hZGluZyBTcGlubmVyPC90ZXh0PjwvZz48IS0tZW50aXR5IGRpYWxvZy0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJkaWFsb2ciIGRhdGEtc291cmNlLWxpbmU9IjUzIiBkYXRhLXVpZD0iZW50MDAzMyIgaWQ9ImVudGl0eV9kaWFsb2ciPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE0NC40NjY4IiB4PSI2MDYwLjc3IiB5PSI1NzAuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iNjE4NS4yMzY4IiB5PSI1NzUuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjYxODMuMjM2OCIgeT0iNTc3LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI2MTgzLjIzNjgiIHk9IjU4MS42Mjk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTA0LjQ2NjgiIHg9IjYwNzUuNzciIHk9IjYwMy42MjQ1Ij5Db25maXJtIERpYWxvZzwvdGV4dD48L2c+PCEtLWVudGl0eSBwcm9ncmFtLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9InByb2dyYW0iIGRhdGEtc291cmNlLWxpbmU9IjYwIiBkYXRhLXVpZD0iZW50MDAzNiIgaWQ9ImVudGl0eV9wcm9ncmFtIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMTkuMDY0NSIgeD0iNjMxLjQ3IiB5PSIyMjAuODg5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iNzMwLjUzNDUiIHk9IjIyNS44ODk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNzI4LjUzNDUiIHk9IjIyNy44ODk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNzI4LjUzNDUiIHk9IjIzMS44ODk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNzkuMDY0NSIgeD0iNjQ2LjQ3IiB5PSIyNTMuODg0NSI+UHJvZ3JhbS5jczwvdGV4dD48L2c+PCEtLWVudGl0eSBkaS0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJkaSIgZGF0YS1zb3VyY2UtbGluZT0iNjEiIGRhdGEtdWlkPSJlbnQwMDM3IiBpZD0iZW50aXR5X2RpIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMjcuNzczNCIgeD0iNzg1LjExIiB5PSIyMjAuODg5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iODkyLjg4MzQiIHk9IjIyNS44ODk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iODkwLjg4MzQiIHk9IjIyNy44ODk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iODkwLjg4MzQiIHk9IjIzMS44ODk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODcuNzczNCIgeD0iODAwLjExIiB5PSIyNTMuODg0NSI+REkgQ29udGFpbmVyPC90ZXh0PjwvZz48IS0tZW50aXR5IGdyYXBocWwtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iZ3JhcGhxbCIgZGF0YS1zb3VyY2UtbGluZT0iNjYiIGRhdGEtdWlkPSJlbnQwMDQwIiBpZD0iZW50aXR5X2dyYXBocWwiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNjIuNTkzOCIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE0NS41NTM3IiB4PSIxMDQ0LjIyIiB5PSIyMTIuNzM5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iMTE2OS43NzM3IiB5PSIyMTcuNzM5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjExNjcuNzczNyIgeT0iMjE5LjczOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxMTY3Ljc3MzciIHk9IjIyMy43Mzk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODguMzYxMyIgeD0iMTA1OS4yMiIgeT0iMjQ1LjczNDUiPkdyYXBoUUwgQVBJPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEwNS41NTM3IiB4PSIxMDU5LjIyIiB5PSIyNjIuMDMxNCI+KEhvdENob2NvbGF0ZSk8L3RleHQ+PC9nPjwhLS1lbnRpdHkgcXVlcnktLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0icXVlcnkiIGRhdGEtc291cmNlLWxpbmU9IjY3IiBkYXRhLXVpZD0iZW50MDA0MSIgaWQ9ImVudGl0eV9xdWVyeSI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI0Ni4yOTY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iODIuNTQ2OSIgeD0iMTE0Ni43MyIgeT0iMzU3LjMyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjEyMDkuMjc2OSIgeT0iMzYyLjMyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxMjA3LjI3NjkiIHk9IjM2NC4zMjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMTIwNy4yNzY5IiB5PSIzNjguMzI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjQyLjU0NjkiIHg9IjExNjEuNzMiIHk9IjM5MC4zMjQ1Ij5RdWVyeTwvdGV4dD48L2c+PCEtLWVudGl0eSBtdXRhdGlvbi0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJtdXRhdGlvbiIgZGF0YS1zb3VyY2UtbGluZT0iNjgiIGRhdGEtdWlkPSJlbnQwMDQyIiBpZD0iZW50aXR5X211dGF0aW9uIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMDEuODM3OSIgeD0iMTI2NC4wOCIgeT0iMzU3LjMyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjEzNDUuOTE3OSIgeT0iMzYyLjMyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxMzQzLjkxNzkiIHk9IjM2NC4zMjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMTM0My45MTc5IiB5PSIzNjguMzI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjYxLjgzNzkiIHg9IjEyNzkuMDgiIHk9IjM5MC4zMjQ1Ij5NdXRhdGlvbjwvdGV4dD48L2c+PCEtLWVudGl0eSBhdXRoVHlwZXMtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iYXV0aFR5cGVzIiBkYXRhLXNvdXJjZS1saW5lPSI2OSIgZGF0YS11aWQ9ImVudDAwNDMiIGlkPSJlbnRpdHlfYXV0aFR5cGVzIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMTguODkzNiIgeD0iOTkyLjU1IiB5PSIzNTcuMzI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iMTA5MS40NDM2IiB5PSIzNjIuMzI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjEwODkuNDQzNiIgeT0iMzY0LjMyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxMDg5LjQ0MzYiIHk9IjM2OC4zMjk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNzguODkzNiIgeD0iMTAwNy41NSIgeT0iMzkwLjMyNDUiPkF1dGggVHlwZXM8L3RleHQ+PC9nPjwhLS1lbnRpdHkgc3R1ZGVudFR5cGVzLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9InN0dWRlbnRUeXBlcyIgZGF0YS1zb3VyY2UtbGluZT0iNzAiIGRhdGEtdWlkPSJlbnQwMDQ0IiBpZD0iZW50aXR5X3N0dWRlbnRUeXBlcyI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI0Ni4yOTY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTQxLjE5MjQiIHg9IjEyMjQuNCIgeT0iMjIwLjg4OTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjEzNDUuNTkyNCIgeT0iMjI1Ljg4OTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxMzQzLjU5MjQiIHk9IjIyNy44ODk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMTM0My41OTI0IiB5PSIyMzEuODg5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEwMS4xOTI0IiB4PSIxMjM5LjQiIHk9IjI1My44ODQ1Ij5TdHVkZW50IFR5cGVzPC90ZXh0PjwvZz48IS0tZW50aXR5IHJlcG9zLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9InJlcG9zIiBkYXRhLXNvdXJjZS1saW5lPSI3NCIgZGF0YS11aWQ9ImVudDAwNDYiIGlkPSJlbnRpdHlfcmVwb3MiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjEyNi41ODQiIHg9IjE0MjEuNzEiIHk9IjIyMC44ODk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSIxNTI4LjI5NCIgeT0iMjI1Ljg4OTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxNTI2LjI5NCIgeT0iMjI3Ljg4OTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxNTI2LjI5NCIgeT0iMjMxLjg4OTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4Ni41ODQiIHg9IjE0MzYuNzEiIHk9IjI1My44ODQ1Ij5SZXBvc2l0b3JpZXM8L3RleHQ+PC9nPjwhLS1lbnRpdHkgbG9hZGVycy0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJsb2FkZXJzIiBkYXRhLXNvdXJjZS1saW5lPSI3NSIgZGF0YS11aWQ9ImVudDAwNDciIGlkPSJlbnRpdHlfbG9hZGVycyI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI0Ni4yOTY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTI4LjkyMTkiIHg9IjE3NDEuNTQiIHk9IjIyMC44ODk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSIxODUwLjQ2MTkiIHk9IjIyNS44ODk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMTg0OC40NjE5IiB5PSIyMjcuODg5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjE4NDguNDYxOSIgeT0iMjMxLjg4OTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4OC45MjE5IiB4PSIxNzU2LjU0IiB5PSIyNTMuODg0NSI+RGF0YUxvYWRlcnM8L3RleHQ+PC9nPjwhLS1lbnRpdHkgZGJDb250ZXh0LS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9ImRiQ29udGV4dCIgZGF0YS1zb3VyY2UtbGluZT0iNzYiIGRhdGEtdWlkPSJlbnQwMDQ4IiBpZD0iZW50aXR5X2RiQ29udGV4dCI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI0Ni4yOTY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTE0Ljc1NzgiIHg9IjE0MjcuNjIiIHk9IjM1Ny4zMjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSIxNTIyLjM3NzgiIHk9IjM2Mi4zMjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMTUyMC4zNzc4IiB5PSIzNjQuMzI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjE1MjAuMzc3OCIgeT0iMzY4LjMyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI3NC43NTc4IiB4PSIxNDQyLjYyIiB5PSIzOTAuMzI0NSI+RGJDb250ZXh0PC90ZXh0PjwvZz48IS0tZW50aXR5IGp3dFN2Yy0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJqd3RTdmMiIGRhdGEtc291cmNlLWxpbmU9Ijc3IiBkYXRhLXVpZD0iZW50MDA0OSIgaWQ9ImVudGl0eV9qd3RTdmMiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjEyMi43MTQ4IiB4PSIxNTgzLjY0IiB5PSIyMjAuODg5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iMTY4Ni4zNTQ4IiB5PSIyMjUuODg5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjE2ODQuMzU0OCIgeT0iMjI3Ljg4OTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxNjg0LjM1NDgiIHk9IjIzMS44ODk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODIuNzE0OCIgeD0iMTU5OC42NCIgeT0iMjUzLjg4NDUiPkpXVCBTZXJ2aWNlPC90ZXh0PjwvZz48IS0tZW50aXR5IHBhc3NTdmMtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0icGFzc1N2YyIgZGF0YS1zb3VyY2UtbGluZT0iNzgiIGRhdGEtdWlkPSJlbnQwMDUwIiBpZD0iZW50aXR5X3Bhc3NTdmMiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE2Mi40NTkiIHg9IjE5MDUuNzciIHk9IjIyMC44ODk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSIyMDQ4LjIyOSIgeT0iMjI1Ljg4OTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIyMDQ2LjIyOSIgeT0iMjI3Ljg4OTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIyMDQ2LjIyOSIgeT0iMjMxLjg4OTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMjIuNDU5IiB4PSIxOTIwLjc3IiB5PSIyNTMuODg0NSI+UGFzc3dvcmQgU2VydmljZTwvdGV4dD48L2c+PCEtLWVudGl0eSB2YWxpZGF0b3JzLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9InZhbGlkYXRvcnMiIGRhdGEtc291cmNlLWxpbmU9Ijk2IiBkYXRhLXVpZD0iZW50MDA2MCIgaWQ9ImVudGl0eV92YWxpZGF0b3JzIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMTAuNTA1OSIgeD0iMTQ3Ni43NSIgeT0iNTcwLjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjE1NjcuMjU1OSIgeT0iNTc1LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxNTY1LjI1NTkiIHk9IjU3Ny42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMTU2NS4yNTU5IiB5PSI1ODEuNjI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjcwLjUwNTkiIHg9IjE0OTEuNzUiIHk9IjYwMy42MjQ1Ij5WYWxpZGF0b3JzPC90ZXh0PjwvZz48IS0tZW50aXR5IGR0b3MtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iZHRvcyIgZGF0YS1zb3VyY2UtbGluZT0iOTciIGRhdGEtdWlkPSJlbnQwMDYxIiBpZD0iZW50aXR5X2R0b3MiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9Ijc3LjY0NTUiIHg9IjE2MjIuMTgiIHk9IjU3MC42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSIxNjc5LjgyNTUiIHk9IjU3NS42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMTY3Ny44MjU1IiB5PSI1NzcuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjE2NzcuODI1NSIgeT0iNTgxLjYyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIzNy42NDU1IiB4PSIxNjM3LjE4IiB5PSI2MDMuNjI0NSI+RFRPczwvdGV4dD48L2c+PCEtLWVudGl0eSBlbnJvbGxDbWRzLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9ImVucm9sbENtZHMiIGRhdGEtc291cmNlLWxpbmU9IjkzIiBkYXRhLXVpZD0iZW50MDA1OCIgaWQ9ImVudGl0eV9lbnJvbGxDbWRzIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNjMuNTE4NiIgeD0iMTI3OC4yNCIgeT0iNTcwLjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjE0MjEuNzU4NiIgeT0iNTc1LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxNDE5Ljc1ODYiIHk9IjU3Ny42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMTQxOS43NTg2IiB5PSI1ODEuNjI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyMy41MTg2IiB4PSIxMjkzLjI0IiB5PSI2MDMuNjI0NSI+RW5yb2xsIENvbW1hbmRzPC90ZXh0PjwvZz48IS0tZW50aXR5IGNsYXNzbWF0ZXNRLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9ImNsYXNzbWF0ZXNRIiBkYXRhLXNvdXJjZS1saW5lPSI5NCIgZGF0YS11aWQ9ImVudDAwNTkiIGlkPSJlbnRpdHlfY2xhc3NtYXRlc1EiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE2Ny40NDI0IiB4PSIxMDc2LjI4IiB5PSI1NzAuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iMTIyMy43MjI0IiB5PSI1NzUuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjEyMjEuNzIyNCIgeT0iNTc3LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxMjIxLjcyMjQiIHk9IjU4MS42Mjk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTI3LjQ0MjQiIHg9IjEwOTEuMjgiIHk9IjYwMy42MjQ1Ij5DbGFzc21hdGVzIFF1ZXJ5PC90ZXh0PjwvZz48IS0tZW50aXR5IHVzZXJFbnRpdHktLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0idXNlckVudGl0eSIgZGF0YS1zb3VyY2UtbGluZT0iMTAxIiBkYXRhLXVpZD0iZW50MDA2MyIgaWQ9ImVudGl0eV91c2VyRW50aXR5Ij48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMTcuMjMyNCIgeD0iNzYxLjM4IiB5PSI3NDAuOTI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iODU4LjYxMjQiIHk9Ijc0NS45Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iODU2LjYxMjQiIHk9Ijc0Ny45Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iODU2LjYxMjQiIHk9Ijc1MS45Mjk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNzcuMjMyNCIgeD0iNzc2LjM4IiB5PSI3NzMuOTI0NSI+VXNlciBFbnRpdHk8L3RleHQ+PC9nPjwhLS1lbnRpdHkgc3R1ZGVudEVudGl0eS0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJzdHVkZW50RW50aXR5IiBkYXRhLXNvdXJjZS1saW5lPSIxMDIiIGRhdGEtdWlkPSJlbnQwMDY0IiBpZD0iZW50aXR5X3N0dWRlbnRFbnRpdHkiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE0MC40MzM2IiB4PSIxMjk1Ljc4IiB5PSI4NjYuMjE5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iMTQxNi4yMTM2IiB5PSI4NzEuMjE5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjE0MTQuMjEzNiIgeT0iODczLjIxOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxNDE0LjIxMzYiIHk9Ijg3Ny4yMTk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTAwLjQzMzYiIHg9IjEzMTAuNzgiIHk9Ijg5OS4yMTQ1Ij5TdHVkZW50IEVudGl0eTwvdGV4dD48L2c+PCEtLWVudGl0eSBzdWJqZWN0RW50aXR5LS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9InN1YmplY3RFbnRpdHkiIGRhdGEtc291cmNlLWxpbmU9IjEwMyIgZGF0YS11aWQ9ImVudDAwNjUiIGlkPSJlbnRpdHlfc3ViamVjdEVudGl0eSI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI0Ni4yOTY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTM3LjY1ODIiIHg9IjkxMy4xNyIgeT0iNzQwLjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjEwMzAuODI4MiIgeT0iNzQ1LjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxMDI4LjgyODIiIHk9Ijc0Ny45Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMTAyOC44MjgyIiB5PSI3NTEuOTI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijk3LjY1ODIiIHg9IjkyOC4xNyIgeT0iNzczLjkyNDUiPlN1YmplY3QgRW50aXR5PC90ZXh0PjwvZz48IS0tZW50aXR5IGVucm9sbEVudGl0eS0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJlbnJvbGxFbnRpdHkiIGRhdGEtc291cmNlLWxpbmU9IjEwNCIgZGF0YS11aWQ9ImVudDAwNjYiIGlkPSJlbnRpdHlfZW5yb2xsRW50aXR5Ij48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNjEuNzU0OSIgeD0iNzYxLjEyIiB5PSI4NjYuMjE5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iOTAyLjg3NDkiIHk9Ijg3MS4yMTk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iOTAwLjg3NDkiIHk9Ijg3My4yMTk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iOTAwLjg3NDkiIHk9Ijg3Ny4yMTk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTIxLjc1NDkiIHg9Ijc3Ni4xMiIgeT0iODk5LjIxNDUiPkVucm9sbG1lbnQgRW50aXR5PC90ZXh0PjwvZz48IS0tZW50aXR5IHZhbHVlT2JqZWN0cy0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJ2YWx1ZU9iamVjdHMiIGRhdGEtc291cmNlLWxpbmU9IjEwNSIgZGF0YS11aWQ9ImVudDAwNjciIGlkPSJlbnRpdHlfdmFsdWVPYmplY3RzIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMzYuODcyMSIgeD0iMTEyMy41NiIgeT0iODY2LjIxOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjEyNDAuNDMyMSIgeT0iODcxLjIxOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxMjM4LjQzMjEiIHk9Ijg3My4yMTk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMTIzOC40MzIxIiB5PSI4NzcuMjE5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijk2Ljg3MjEiIHg9IjExMzguNTYiIHk9Ijg5OS4yMTQ1Ij5WYWx1ZSBPYmplY3RzPC90ZXh0PjwvZz48IS0tZW50aXR5IGRvbWFpblN2Yy0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJkb21haW5TdmMiIGRhdGEtc291cmNlLWxpbmU9IjEwNiIgZGF0YS11aWQ9ImVudDAwNjgiIGlkPSJlbnRpdHlfZG9tYWluU3ZjIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNTcuODEwNSIgeD0iMTI4MS4wOSIgeT0iNzQwLjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjE0MTguOTAwNSIgeT0iNzQ1LjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxNDE2LjkwMDUiIHk9Ijc0Ny45Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMTQxNi45MDA1IiB5PSI3NTEuOTI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjExNy44MTA1IiB4PSIxMjk2LjA5IiB5PSI3NzMuOTI0NSI+RG9tYWluIFNlcnZpY2VzPC90ZXh0PjwvZz48IS0tZW50aXR5IHBvcnRzLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9InBvcnRzIiBkYXRhLXNvdXJjZS1saW5lPSIxMDciIGRhdGEtdWlkPSJlbnQwMDY5IiBpZD0iZW50aXR5X3BvcnRzIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNjAuODkzNiIgeD0iMTA4NS41NSIgeT0iNzQwLjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjEyMjYuNDQzNiIgeT0iNzQ1LjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxMjI0LjQ0MzYiIHk9Ijc0Ny45Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMTIyNC40NDM2IiB5PSI3NTEuOTI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyMC44OTM2IiB4PSIxMTAwLjU1IiB5PSI3NzMuOTI0NSI+UG9ydHMgKEludGVyZmFjZXMpPC90ZXh0PjwvZz48IS0tZW50aXR5IHRibFVzZXJzLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9InRibFVzZXJzIiBkYXRhLXNvdXJjZS1saW5lPSIxMTIiIGRhdGEtdWlkPSJlbnQwMDcxIiBpZD0iZW50aXR5X3RibFVzZXJzIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMjIuMTc0OCIgeD0iMzQuOTEiIHk9IjU3MC42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSIxMzcuMDg0OCIgeT0iNTc1LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxMzUuMDg0OCIgeT0iNTc3LjYyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIxMzUuMDg0OCIgeT0iNTgxLjYyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4Mi4xNzQ4IiB4PSI0OS45MSIgeT0iNjAzLjYyNDUiPlVzZXJzIFRhYmxlPC90ZXh0PjwvZz48IS0tZW50aXR5IHRibFN0dWRlbnRzLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9InRibFN0dWRlbnRzIiBkYXRhLXNvdXJjZS1saW5lPSIxMTMiIGRhdGEtdWlkPSJlbnQwMDcyIiBpZD0iZW50aXR5X3RibFN0dWRlbnRzIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNDUuMzc2IiB4PSIxOTIuMzEiIHk9IjU3MC42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSIzMTcuNjg2IiB5PSI1NzUuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjMxNS42ODYiIHk9IjU3Ny42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMzE1LjY4NiIgeT0iNTgxLjYyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMDUuMzc2IiB4PSIyMDcuMzEiIHk9IjYwMy42MjQ1Ij5TdHVkZW50cyBUYWJsZTwvdGV4dD48L2c+PCEtLWVudGl0eSB0YmxTdWJqZWN0cy0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJ0YmxTdWJqZWN0cyIgZGF0YS1zb3VyY2UtbGluZT0iMTE0IiBkYXRhLXVpZD0iZW50MDA3MyIgaWQ9ImVudGl0eV90YmxTdWJqZWN0cyI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI0Ni4yOTY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTQyLjYwMDYiIHg9IjM3Mi43IiB5PSI1NzAuNjI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iNDk1LjMwMDYiIHk9IjU3NS42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNDkzLjMwMDYiIHk9IjU3Ny42Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNDkzLjMwMDYiIHk9IjU4MS42Mjk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTAyLjYwMDYiIHg9IjM4Ny43IiB5PSI2MDMuNjI0NSI+U3ViamVjdHMgVGFibGU8L3RleHQ+PC9nPjwhLS1lbnRpdHkgdGJsUHJvZi0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJ0YmxQcm9mIiBkYXRhLXNvdXJjZS1saW5lPSIxMTUiIGRhdGEtdWlkPSJlbnQwMDc0IiBpZD0iZW50aXR5X3RibFByb2YiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1NS40Nzk1IiB4PSIzNS4yNiIgeT0iNzQwLjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjE3MC43Mzk1IiB5PSI3NDUuOTI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjE2OC43Mzk1IiB5PSI3NDcuOTI5NCIvPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjE2OC43Mzk1IiB5PSI3NTEuOTI5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjExNS40Nzk1IiB4PSI1MC4yNiIgeT0iNzczLjkyNDUiPlByb2Zlc3NvcnMgVGFibGU8L3RleHQ+PC9nPjwhLS1lbnRpdHkgdGJsRW5yb2xsLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9InRibEVucm9sbCIgZGF0YS1zb3VyY2UtbGluZT0iMTE2IiBkYXRhLXVpZD0iZW50MDA3NSIgaWQ9ImVudGl0eV90YmxFbnJvbGwiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE2Ni42OTczIiB4PSIyMjUuNjUiIHk9Ijc0MC45Mjk0Ii8+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSIzNzIuMzQ3MyIgeT0iNzQ1LjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIzNzAuMzQ3MyIgeT0iNzQ3LjkyOTQiLz48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIzNzAuMzQ3MyIgeT0iNzUxLjkyOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMjYuNjk3MyIgeD0iMjQwLjY1IiB5PSI3NzMuOTI0NSI+RW5yb2xsbWVudHMgVGFibGU8L3RleHQ+PC9nPjwhLS1lbnRpdHkgYnJvd3Nlci0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJicm93c2VyIiBkYXRhLXNvdXJjZS1saW5lPSIxMTkiIGRhdGEtdWlkPSJlbnQwMDc2IiBpZD0iZW50aXR5X2Jyb3dzZXIiPjxwYXRoIGQ9Ik02MjgyLjI4OTgsMjMwLjY5NzkgQzYyODQuMzUyMywyMjUuMjMxIDYyODkuMzE1MSwyMjQuNzMyNCA2MjkyLjYxMDEsMjI5LjQ0ODkgQzYyOTYuNTA2MywyMjMuNDE4MiA2MzAwLjc1NDcsMjIyLjk0NjYgNjMwNS4yNjA4LDIyOC43OTk3IEM2MzA3LjA5NDksMjIxLjc2MjggNjMxMi44MDEzLDIxOS45NDYgNjMxNy43NDkyLDIyNS43Nzc5IEM2MzIyLjI5MjYsMjIxLjM3NiA2MzI1Ljk1NDEsMjIyLjg0OTkgNjMyNy44ODExLDIyOC40MzI5IEM2MzMxLjM3MDQsMjIyLjE0MTEgNjMzNy43MTkyLDIyMS42MTQ0IDYzNDAuOTM5MSwyMjguNjk2IEM2MzQ0LjUwMDcsMjIzLjcyOTQgNjM0OC4zMzIzLDIyMy41NTI5IDYzNTEuNTY5NCwyMjkuMDI2NCBDNjM1OS40NzcxLDIzMi43MyA2MzYxLjc0MDgsMjM4LjE3MTkgNjM1NS40NjI3LDI0NS4yNzQ2IEM2MzYzLjM2MzksMjUwLjg3MzIgNjM2MS4yNDYsMjU3LjM0MzIgNjM1My42Njc3LDI2MS4xOTY3IEM2MzUwLjQ2OSwyNjcuMDYyMyA2MzQ2LjY4ODIsMjY4LjUxNjkgNjM0MS42MzAzLDI2My4xOTc1IEM2MzM4Ljg1NjksMjY5LjY5NDkgNjMzNC42Nzk4LDI2OS45NTMgNjMyOS43MjksMjY1LjU4MTcgQzYzMjcuMDUyNywyNzIuMjM0NiA2MzIxLjg2ODUsMjczLjc2MjkgNjMxNi45ODg0LDI2Ny44MDg5IEM2MzEyLjYxMDgsMjcyLjMxNjYgNjMwNy4xNzMxLDI3MS42ODcgNjMwNS4wNjAxLDI2NS4zMjQxIEM2MzAwLjMwMDgsMjcwLjE1MDkgNjI5NC4wNzMyLDI2OC45NDkzIDYyOTIuNTk4OCwyNjEuODgyNSBDNjI4OC42NDM2LDI2OC4yOTk0IDYyODMuNzY4NywyNjcuNDQ3OSA2MjgwLjU0NTMsMjYxLjE4NjcgQzYyNzMuNDkwMSwyNTguMzk2NyA2MjcxLjkzNDcsMjUxLjA5MjMgNjI3Ny4zODcxLDI0NS43NDQyIEM2MjcwLjcsMjM4LjgyMzkgNjI3NC43MzQ3LDIzMi45Nzc2IDYyODIuMjg5OCwyMzAuNjk3OSIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjU3LjAzOTEiIHg9IjYyODcuNDgiIHk9IjI0OC44ODQ1Ij5Ccm93c2VyPC90ZXh0PjwvZz48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iR01OMTI0IiBkYXRhLXNvdXJjZS1saW5lPSIxODQiIGRhdGEtdWlkPSJlbnQwMTI1IiBpZD0iZW50aXR5X0dNTjEyNCI+PHBhdGggZD0iTTYzMjcuOTgsNzM2LjM3OTQgTDYzMjcuOTgsNzkxLjc3NzggTDY1MTguMDExNyw3OTEuNzc3OCBMNjUxOC4wMTE3LDc0Ni4zNzk0IEw2NTA4LjAxMTcsNzM2LjM3OTQgTDYzMjcuOTgsNzM2LjM3OTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNNjUwOC4wMTE3LDczNi4zNzk0IEw2NTA4LjAxMTcsNzQ2LjM3OTQgTDY1MTguMDExNyw3NDYuMzc5NCBMNjUwOC4wMTE3LDczNi4zNzk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE2OS4wMzE3IiB4PSI2MzMzLjk4IiB5PSI3NTMuNDQ2MyI+UmVnbGEgZGUgRGVwZW5kZW5jaWE6PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEzMS44OTE2IiB4PSI2MzMzLjk4IiB5PSI3NjguNTc5MSI+RG9tYWluIG5vIGRlcGVuZGU8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTE5LjcyOTUiIHg9IjYzMzMuOTgiIHk9Ijc4My43MTE5Ij5kZSBjYXBhcyBleHRlcm5hczwvdGV4dD48L2c+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkdNTjEyNyIgZGF0YS1zb3VyY2UtbGluZT0iMTkwIiBkYXRhLXVpZD0iZW50MDEyOCIgaWQ9ImVudGl0eV9HTU4xMjciPjxwYXRoIGQ9Ik00NDIuODQsMzQ1LjIxOTQgTDQ0Mi44NCw0MTUuNzUwNiBMNTc1LjE1MjUsNDE1Ljc1MDYgTDU3NS4xNTI1LDM1NS4yMTk0IEw1NjUuMTUyNSwzNDUuMjE5NCBMNDQyLjg0LDM0NS4yMTk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTU2NS4xNTI1LDM0NS4yMTk0IEw1NjUuMTUyNSwzNTUuMjE5NCBMNTc1LjE1MjUsMzU1LjIxOTQgTDU2NS4xNTI1LDM0NS4yMTk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjkuMDExNyIgeD0iNDQ4Ljg0IiB5PSIzNjIuMjg2MyI+RW5kcG9pbnRzOjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI2My4xMjExIiB4PSI0NDguODQiIHk9IjM3Ny40MTkxIj4tIC9ncmFwaHFsPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjU0LjM1NSIgeD0iNDQ4Ljg0IiB5PSIzOTIuNTUxOSI+LSAvaGVhbHRoPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjExMS4zMTI1IiB4PSI0NDguODQiIHk9IjQwNy42ODQ3Ij5BdXRoOiBKV1QgQmVhcmVyPC90ZXh0PjwvZz48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iR01OMTMwIiBkYXRhLXNvdXJjZS1saW5lPSIxOTciIGRhdGEtdWlkPSJlbnQwMTMxIiBpZD0iZW50aXR5X0dNTjEzMCI+PHBhdGggZD0iTTYzOTQuOTksMjIzLjg5OTQgTDYzOTQuOTksMjY0LjE2NSBMNjU2OS4wMTI5LDI2NC4xNjUgTDY1NjkuMDEyOSwyMzMuODk5NCBMNjU1OS4wMTI5LDIyMy44OTk0IEw2Mzk0Ljk5LDIyMy44OTk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTY1NTkuMDEyOSwyMjMuODk5NCBMNjU1OS4wMTI5LDIzMy44OTk0IEw2NTY5LjAxMjksMjMzLjg5OTQgTDY1NTkuMDEyOSwyMjMuODk5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijk1LjM4NjIiIHg9IjY0MDAuOTkiIHk9IjI0MC45NjYzIj5ITUFDLVNIQTI1NjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNTMuMDIyOSIgeD0iNjQwMC45OSIgeT0iMjU2LjA5OTEiPkNvbmZpZ3VyYWJsZSBleHBpcmF0aW9uPC90ZXh0PjwvZz48IS0tbGluayBicm93c2VyIHRvIGFwcC0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJicm93c2VyIiBkYXRhLWVudGl0eS0yPSJhcHAiIGRhdGEtc291cmNlLWxpbmU9IjEyMiIgZGF0YS11aWQ9Imxuazc3IiBpZD0ibGlua19icm93c2VyX2FwcCI+PHBhdGggZD0iTTYyNzIuMjMsMjQ5LjM1OTQgQzYwNzYuNzgsMjY4LjY0OTQgNTI4OC40NzEsMzQ2LjQ2IDUwMzYuODMxLDM3MS4zIiBmaWxsPSJub25lIiBpZD0iYnJvd3Nlci10by1hcHAiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjUwMzAuODYsMzcxLjg4OTQsNTA0MC4yMDk0LDM3NC45ODU5LDUwMzUuODM1OCwzNzEuMzk4Miw1MDM5LjQyMzUsMzY3LjAyNDYsNTAzMC44NiwzNzEuODg5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBhcHAgdG8gbG9naW5QYWdlLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9ImFwcCIgZGF0YS1lbnRpdHktMj0ibG9naW5QYWdlIiBkYXRhLXNvdXJjZS1saW5lPSIxMjMiIGRhdGEtdWlkPSJsbms3OCIgaWQ9ImxpbmtfYXBwX2xvZ2luUGFnZSI+PHBhdGggZD0iTTQ4NzcuMjMsMzg0LjI0OTQgQzQ3MDguNDMsMzkxLjU1OTQgNDMxMS4wNyw0MTUuNzc5NCA0MTk4LDQ4NC42Mjk0IEM0MTY1LjA3LDUwNC42Nzk0IDQxNDUuMTE2Nyw1MzkuNTI4OSA0MTMzLjU3NjcsNTY0Ljg2ODkiIGZpbGw9Im5vbmUiIGlkPSJhcHAtdG8tbG9naW5QYWdlIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI0MTMxLjA5LDU3MC4zMjk0LDQxMzguNDYwNCw1NjMuNzk2NSw0MTMzLjE2MjMsNTY1Ljc3OSw0MTMxLjE3OTgsNTYwLjQ4MDksNDEzMS4wOSw1NzAuMzI5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBhcHAgdG8gcmVnaXN0ZXJQYWdlLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9ImFwcCIgZGF0YS1lbnRpdHktMj0icmVnaXN0ZXJQYWdlIiBkYXRhLXNvdXJjZS1saW5lPSIxMjQiIGRhdGEtdWlkPSJsbms3OSIgaWQ9ImxpbmtfYXBwX3JlZ2lzdGVyUGFnZSI+PHBhdGggZD0iTTQ4NzYuOTksNDAyLjY5OTQgQzQ3OTEuODUsNDI1LjE4OTQgNDY1MC4yNyw0NTkuNzQ5NCA0NTI2LDQ3Ni42Mjk0IEM0NTA4LjgsNDc4Ljk2OTQgNDM4NS40Myw0NzYuNjg5NCA0MzcwLDQ4NC42Mjk0IEM0MzMzLjk1LDUwMy4xNjk0IDQzMTAuNzkxLDUzOS4wNDc2IDQyOTcuMzMxLDU2NC44OTc2IiBmaWxsPSJub25lIiBpZD0iYXBwLXRvLXJlZ2lzdGVyUGFnZSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNDI5NC41Niw1NzAuMjE5NCw0MzAyLjI2NDQsNTY0LjA4NDEsNDI5Ni44NjkyLDU2NS43ODQ2LDQyOTUuMTY4Nyw1NjAuMzg5Myw0Mjk0LjU2LDU3MC4yMTk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIGFwcCB0byBzdHVkZW50RGFzaC0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJhcHAiIGRhdGEtZW50aXR5LTI9InN0dWRlbnREYXNoIiBkYXRhLXNvdXJjZS1saW5lPSIxMjUiIGRhdGEtdWlkPSJsbms4MCIgaWQ9ImxpbmtfYXBwX3N0dWRlbnREYXNoIj48cGF0aCBkPSJNNDk0NS42NSw0MDQuMDg5NCBDNDkzMC42NCw0NDQuNzU5NCA0OTAxLjMzOCw1MjQuMTUwNyA0ODg2LjM2OCw1NjQuNzAwNyIgZmlsbD0ibm9uZSIgaWQ9ImFwcC10by1zdHVkZW50RGFzaCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNDg4NC4yOSw1NzAuMzI5NCw0ODkxLjE1OTQsNTYzLjI3MTcsNDg4Ni4wMjE2LDU2NS42Mzg4LDQ4ODMuNjU0NSw1NjAuNTAxLDQ4ODQuMjksNTcwLjMyOTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgYXBwIHRvIGFkbWluRGFzaC0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJhcHAiIGRhdGEtZW50aXR5LTI9ImFkbWluRGFzaCIgZGF0YS1zb3VyY2UtbGluZT0iMTI2IiBkYXRhLXVpZD0ibG5rODEiIGlkPSJsaW5rX2FwcF9hZG1pbkRhc2giPjxwYXRoIGQ9Ik00OTY3LjcsNDA0LjA4OTQgQzQ5OTIuMzMsNDQ0Ljc1OTQgNTA0MC43MzE2LDUyNC42NDczIDUwNjUuMjkxNiw1NjUuMTk3MyIgZmlsbD0ibm9uZSIgaWQ9ImFwcC10by1hZG1pbkRhc2giIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjUwNjguNCw1NzAuMzI5NCw1MDY3LjE1ODksNTYwLjU1OSw1MDY1LjgwOTcsNTY2LjA1MjYsNTA2MC4zMTYxLDU2NC43MDM1LDUwNjguNCw1NzAuMzI5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBhcHAgdG8gc3R1ZGVudExpc3QtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iYXBwIiBkYXRhLWVudGl0eS0yPSJzdHVkZW50TGlzdCIgZGF0YS1zb3VyY2UtbGluZT0iMTI3IiBkYXRhLXVpZD0ibG5rODIiIGlkPSJsaW5rX2FwcF9zdHVkZW50TGlzdCI+PHBhdGggZD0iTTQ4NzcuMTIsMzgzLjUyOTQgQzQ1OTAuMTMsMzkxLjYxOTQgMzU5MS4zNCw0MjMuOTE5NCAzNDYzLDQ4NC42Mjk0IEMzNDIzLjU3LDUwMy4yNzk0IDMzOTUuMDYwMyw1MzkuNDM1MiAzMzc3Ljk4MDMsNTY1LjI1NTIiIGZpbGw9Im5vbmUiIGlkPSJhcHAtdG8tc3R1ZGVudExpc3QiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjMzNzQuNjcsNTcwLjI1OTQsMzM4Mi45NzE2LDU2NC45NTk5LDMzNzcuNDI4Niw1NjYuMDg5MiwzMzc2LjI5OTMsNTYwLjU0NjIsMzM3NC42Nyw1NzAuMjU5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBhcHAgdG8gZW5yb2xsUGFnZS0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJhcHAiIGRhdGEtZW50aXR5LTI9ImVucm9sbFBhZ2UiIGRhdGEtc291cmNlLWxpbmU9IjEyOCIgZGF0YS11aWQ9ImxuazgzIiBpZD0ibGlua19hcHBfZW5yb2xsUGFnZSI+PHBhdGggZD0iTTUwMzAuNzUsMzg1LjEyOTQgQzUxMjMuNzEsMzkyLjU5OTQgNTI4Mi4yMSw0MTUuMzU5NCA1Mzk4LDQ4NC42Mjk0IEM1NDMzLjgxLDUwNi4wNTk0IDU0NjAuMDU2Niw1NDAuNTIxIDU0NzYuMjQ2Niw1NjUuMzkxIiBmaWxsPSJub25lIiBpZD0iYXBwLXRvLWVucm9sbFBhZ2UiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjU0NzkuNTIsNTcwLjQxOTQsNTQ3Ny45NjIxLDU2MC42OTQ1LDU0NzYuNzkyMiw1NjYuMjI5LDU0NzEuMjU3Niw1NjUuMDU5MSw1NDc5LjUyLDU3MC40MTk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIGFwcCB0byBvdmVybGF5LS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9ImFwcCIgZGF0YS1lbnRpdHktMj0ib3ZlcmxheSIgZGF0YS1zb3VyY2UtbGluZT0iMTI5IiBkYXRhLXVpZD0ibG5rODQiIGlkPSJsaW5rX2FwcF9vdmVybGF5Ij48cGF0aCBkPSJNNTAzMC45NCwzODMuMjI5NCBDNTE1My4wNywzODguMzM5NCA1Mzk2LjkyLDQwOC4xODk0IDU1ODcsNDg0LjYyOTQgQzU2MzguMjgsNTA1LjI0OTQgNTY4NC45MTA1LDU0MS4wODkyIDU3MTQuMzAwNSw1NjYuMjI5MiIgZmlsbD0ibm9uZSIgaWQ9ImFwcC10by1vdmVybGF5IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI1NzE4Ljg2LDU3MC4xMjk0LDU3MTQuNjIwOSw1NjEuMjM5NSw1NzE1LjA2MDQsNTY2Ljg3OTMsNTcwOS40MjA3LDU2Ny4zMTg4LDU3MTguODYsNTcwLjEyOTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgbG9naW5QYWdlIHRvIGF1dGhTdmMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0ibG9naW5QYWdlIiBkYXRhLWVudGl0eS0yPSJhdXRoU3ZjIiBkYXRhLXNvdXJjZS1saW5lPSIxMzEiIGRhdGEtdWlkPSJsbms4NSIgaWQ9ImxpbmtfbG9naW5QYWdlX2F1dGhTdmMiPjxwYXRoIGQ9Ik00MTQxLjI4LDYxNy4xNTk0IEM0MTU1LjU3LDYzMi41MDk0IDQxNzYuMjYsNjUyLjI5OTQgNDE5OCw2NjQuOTI5NCBDNDI3Ni4yNCw3MTAuMzQ5NCA0MzcyLjEzMTMsNzM2LjExMTIgNDQzNy4zMDEzLDc0OS45NzEyIiBmaWxsPSJub25lIiBpZD0ibG9naW5QYWdlLXRvLWF1dGhTdmMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjQ0NDMuMTcsNzUxLjIxOTQsNDQzNS4xOTksNzQ1LjQzNDcsNDQzOC4yNzk0LDc1MC4xNzkzLDQ0MzMuNTM0OCw3NTMuMjU5Nyw0NDQzLjE3LDc1MS4yMTk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIHJlZ2lzdGVyUGFnZSB0byBhdXRoU3ZjLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9InJlZ2lzdGVyUGFnZSIgZGF0YS1lbnRpdHktMj0iYXV0aFN2YyIgZGF0YS1zb3VyY2UtbGluZT0iMTMyIiBkYXRhLXVpZD0ibG5rODYiIGlkPSJsaW5rX3JlZ2lzdGVyUGFnZV9hdXRoU3ZjIj48cGF0aCBkPSJNNDMxMC43NSw2MTcuMzU5NCBDNDMyNy41NCw2MzEuMzM5NCA0MzQ5Ljc3LDY0OS41MDk0IDQzNzAsNjY0LjkyOTQgQzQ0MDUuMTksNjkxLjc0OTQgNDQ0MS43NjQzLDcxNy41Mzc4IDQ0NzAuMDA0Myw3MzcuMDU3OCIgZmlsbD0ibm9uZSIgaWQ9InJlZ2lzdGVyUGFnZS10by1hdXRoU3ZjIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI0NDc0Ljk0LDc0MC40Njk0LDQ0NjkuODEwOSw3MzIuMDYxNSw0NDcwLjgyNjksNzM3LjYyNjQsNDQ2NS4yNjIxLDczOC42NDI0LDQ0NzQuOTQsNzQwLjQ2OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgcmVzZXRQYWdlIHRvIGF1dGhTdmMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0icmVzZXRQYWdlIiBkYXRhLWVudGl0eS0yPSJhdXRoU3ZjIiBkYXRhLXNvdXJjZS1saW5lPSIxMzMiIGRhdGEtdWlkPSJsbms4NyIgaWQ9ImxpbmtfcmVzZXRQYWdlX2F1dGhTdmMiPjxwYXRoIGQ9Ik00NDY4Ljk4LDYxNy4xMjk0IEM0NDc3LjU4LDY0OS4zMTk0IDQ0OTEuODMwMiw3MDIuNTkzIDQ1MDAuNDUwMiw3MzQuODMzIiBmaWxsPSJub25lIiBpZD0icmVzZXRQYWdlLXRvLWF1dGhTdmMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjQ1MDIsNzQwLjYyOTQsNDUwMy41Mzk2LDczMC45MDE2LDQ1MDAuNzA4NSw3MzUuNzk5LDQ0OTUuODExMSw3MzIuOTY4LDQ1MDIsNzQwLjYyOTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgYWN0aXZhdGVQYWdlIHRvIGF1dGhTdmMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iYWN0aXZhdGVQYWdlIiBkYXRhLWVudGl0eS0yPSJhdXRoU3ZjIiBkYXRhLXNvdXJjZS1saW5lPSIxMzQiIGRhdGEtdWlkPSJsbms4OCIgaWQ9ImxpbmtfYWN0aXZhdGVQYWdlX2F1dGhTdmMiPjxwYXRoIGQ9Ik00NjMzLjc1LDYxNy4xMjk0IEM0NjA2LjAxLDY0OS4zMTk0IDQ1NTkuMDI2Niw3MDMuODQ0IDQ1MzEuMjQ2Niw3MzYuMDg0IiBmaWxsPSJub25lIiBpZD0iYWN0aXZhdGVQYWdlLXRvLWF1dGhTdmMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjQ1MjcuMzMsNzQwLjYyOTQsNDUzNi4yMzUxLDczNi40MjI0LDQ1MzAuNTkzOCw3MzYuODQxNiw0NTMwLjE3NDYsNzMxLjIwMDMsNDUyNy4zMyw3NDAuNjI5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBzdHVkZW50RGFzaCB0byBzdHVkZW50U3ZjLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9InN0dWRlbnREYXNoIiBkYXRhLWVudGl0eS0yPSJzdHVkZW50U3ZjIiBkYXRhLXNvdXJjZS1saW5lPSIxMzUiIGRhdGEtdWlkPSJsbms4OSIgaWQ9Imxpbmtfc3R1ZGVudERhc2hfc3R1ZGVudFN2YyI+PHBhdGggZD0iTTQ4NTAuMSw2MTcuMzM5NCBDNDgyOS45MSw2MzQuOTM5NCA0ODAxLjE3LDY1OS45Nzk0IDQ3NzYsNjgxLjkyOTQgQzQ3NTMuMjMsNzAxLjc3OTQgNDczMS44NTA5LDcyMC40MzQ1IDQ3MTMuMTcwOSw3MzYuNzM0NSIgZmlsbD0ibm9uZSIgaWQ9InN0dWRlbnREYXNoLXRvLXN0dWRlbnRTdmMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjQ3MDguNjUsNzQwLjY3OTQsNDcxOC4wNjEyLDczNy43NzYsNDcxMi40MTc0LDczNy4zOTIsNDcxMi44MDE0LDczMS43NDgyLDQ3MDguNjUsNzQwLjY3OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgYWRtaW5EYXNoIHRvIHN0dWRlbnRTdmMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iYWRtaW5EYXNoIiBkYXRhLWVudGl0eS0yPSJzdHVkZW50U3ZjIiBkYXRhLXNvdXJjZS1saW5lPSIxMzYiIGRhdGEtdWlkPSJsbms5MCIgaWQ9ImxpbmtfYWRtaW5EYXNoX3N0dWRlbnRTdmMiPjxwYXRoIGQ9Ik01MDU3LjUzLDYxNy4zMzk0IEM1MDM4LjI3LDYzMy42Mzk0IDUwMDkuOTMsNjU0LjUyOTQgNDk4MSw2NjQuOTI5NCBDNDg5NC45Niw2OTUuODM5NCA0ODYwLjIsNjQ2LjMxOTQgNDc3Niw2ODEuOTI5NCBDNDc0NS44LDY5NC42OTk0IDQ3MjIuNDYzNCw3MTYuNzAyNSA0NzA1LjM3MzQsNzM1Ljk1MjUiIGZpbGw9Im5vbmUiIGlkPSJhZG1pbkRhc2gtdG8tc3R1ZGVudFN2YyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNDcwMS4zOSw3NDAuNDM5NCw0NzEwLjM1NjQsNzM2LjM2NDYsNDcwNC43MDk1LDczNi43MDAzLDQ3MDQuMzczOSw3MzEuMDUzNCw0NzAxLjM5LDc0MC40Mzk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIHN0dWRlbnRMaXN0IHRvIHN0dWRlbnRTdmMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0ic3R1ZGVudExpc3QiIGRhdGEtZW50aXR5LTI9InN0dWRlbnRTdmMiIGRhdGEtc291cmNlLWxpbmU9IjEzNyIgZGF0YS11aWQ9ImxuazkxIiBpZD0ibGlua19zdHVkZW50TGlzdF9zdHVkZW50U3ZjIj48cGF0aCBkPSJNMzM4NC43NSw2MTcuMjE5NCBDMzQwNC4xMyw2MzMuOTE5NCAzNDMzLjExLDY1NS4zODk0IDM0NjMsNjY0LjkyOTQgQzM1MjIuNjYsNjgzLjk0OTQgNDUzMS41NCw2NTkuNDk5NCA0NTkwLDY4MS45Mjk0IEM0NjIxLjAxLDY5My44MTk0IDQ2NDQuNjQzOCw3MTYuNTEzNyA0NjYxLjU2MzgsNzM2LjE1MzciIGZpbGw9Im5vbmUiIGlkPSJzdHVkZW50TGlzdC10by1zdHVkZW50U3ZjIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI0NjY1LjQ4LDc0MC42OTk0LDQ2NjIuNjM2Miw3MzEuMjcsNDY2Mi4yMTY1LDczNi45MTEzLDQ2NTYuNTc1Myw3MzYuNDkxNiw0NjY1LjQ4LDc0MC42OTk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIGVucm9sbFBhZ2UgdG8gZW5yb2xsU3ZjLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9ImVucm9sbFBhZ2UiIGRhdGEtZW50aXR5LTI9ImVucm9sbFN2YyIgZGF0YS1zb3VyY2UtbGluZT0iMTM4IiBkYXRhLXVpZD0ibG5rOTIiIGlkPSJsaW5rX2Vucm9sbFBhZ2VfZW5yb2xsU3ZjIj48cGF0aCBkPSJNNTQ3MC43Miw2MTcuMzM5NCBDNTQ1Mi43OSw2MzMuODU5NCA1NDI2LjA0LDY1NS4wNDk0IDUzOTgsNjY0LjkyOTQgQzUzNTQuNTcsNjgwLjIxOTQgNTAyNy4yMiw2NjYuMDU5NCA0OTg0LDY4MS45Mjk0IEM0OTUwLjg5LDY5NC4wNzk0IDQ5MjQuMjA4NCw3MTYuNzIyNiA0OTA0LjgzODQsNzM2LjIyMjYiIGZpbGw9Im5vbmUiIGlkPSJlbnJvbGxQYWdlLXRvLWVucm9sbFN2YyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNDkwMC42MSw3NDAuNDc5NCw0OTA5Ljc5MDUsNzM2LjkxMzEsNDkwNC4xMzM3LDczNi45MzIsNDkwNC4xMTQ4LDczMS4yNzUyLDQ5MDAuNjEsNzQwLjQ3OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgY2xhc3NtYXRlcyB0byBlbnJvbGxTdmMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iY2xhc3NtYXRlcyIgZGF0YS1lbnRpdHktMj0iZW5yb2xsU3ZjIiBkYXRhLXNvdXJjZS1saW5lPSIxMzkiIGRhdGEtdWlkPSJsbms5MyIgaWQ9ImxpbmtfY2xhc3NtYXRlc19lbnJvbGxTdmMiPjxwYXRoIGQ9Ik01MjcxLjIxLDYxNy4yNjk0IEM1MjQ3Ljk1LDYzMy41Mjk0IDUyMTQuMTIsNjU0LjQwOTQgNTE4MSw2NjQuOTI5NCBDNTA5Ny4yNCw2OTEuNTI5NCA1MDY1LjgsNjQ5Ljc4OTQgNDk4NCw2ODEuOTI5NCBDNDk1MS4zOSw2OTQuNzM5NCA0OTI0Ljg3OTksNzE3LjAwNDIgNDkwNS4zODk5LDczNi4yNDQyIiBmaWxsPSJub25lIiBpZD0iY2xhc3NtYXRlcy10by1lbnJvbGxTdmMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjQ5MDEuMTIsNzQwLjQ1OTQsNDkxMC4zMzUsNzM2Ljk4MzIsNDkwNC42NzgzLDczNi45NDY3LDQ5MDQuNzE0OCw3MzEuMjksNDkwMS4xMiw3NDAuNDU5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBvdmVybGF5IHRvIGNvbm5TdmMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0ib3ZlcmxheSIgZGF0YS1lbnRpdHktMj0iY29ublN2YyIgZGF0YS1zb3VyY2UtbGluZT0iMTQwIiBkYXRhLXVpZD0ibG5rOTQiIGlkPSJsaW5rX292ZXJsYXlfY29ublN2YyI+PHBhdGggZD0iTTU3MDQuODEsNjE3LjI4OTQgQzU2NzMuOSw2MzMuNzc5NCA1NjI5LjEzLDY1NC45Njk0IDU1ODcsNjY0LjkyOTQgQzU1MDMuNjYsNjg0LjYyOTQgNTI4Mi42OCw2NTMuMTk5NCA1MjAyLDY4MS45Mjk0IEM1MTY3Ljc3LDY5NC4xMDk0IDUxMzkuNjIzMyw3MTYuODU5OSA1MTE5LjE2MzMsNzM2LjM1OTkiIGZpbGw9Im5vbmUiIGlkPSJvdmVybGF5LXRvLWNvbm5TdmMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjUxMTQuODIsNzQwLjQ5OTQsNTEyNC4wOTQ2LDczNy4xODU2LDUxMTguNDM5NCw3MzcuMDQ5OCw1MTE4LjU3NTMsNzMxLjM5NDYsNTExNC44Miw3NDAuNDk5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBhdXRoU3ZjIHRvIGFwb2xsby0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJhdXRoU3ZjIiBkYXRhLWVudGl0eS0yPSJhcG9sbG8iIGRhdGEtc291cmNlLWxpbmU9IjE0MiIgZGF0YS11aWQ9Imxuazk1IiBpZD0ibGlua19hdXRoU3ZjX2Fwb2xsbyI+PHBhdGggZD0iTTQ1MzQuMTYsNzg3LjU0OTQgQzQ1NDkuNzIsODAwLjIxOTQgNDU3MC4yMiw4MTUuNzU5NCA0NTkwLDgyNy4yMTk0IEM0NjE1LjczLDg0Mi4xMjk0IDQ2NDAuMjI5LDg1My4yNDE0IDQ2NjYuMjA5LDg2My42MzE0IiBmaWxsPSJub25lIiBpZD0iYXV0aFN2Yy10by1hcG9sbG8iIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjQ2NzEuNzgsODY1Ljg1OTQsNDY2NC45MDg4LDg1OC44MDM0LDQ2NjcuMTM3NSw4NjQuMDAyNyw0NjYxLjkzODIsODY2LjIzMTQsNDY3MS43OCw4NjUuODU5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBzdHVkZW50U3ZjIHRvIGFwb2xsby0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJzdHVkZW50U3ZjIiBkYXRhLWVudGl0eS0yPSJhcG9sbG8iIGRhdGEtc291cmNlLWxpbmU9IjE0MyIgZGF0YS11aWQ9Imxuazk2IiBpZD0ibGlua19zdHVkZW50U3ZjX2Fwb2xsbyI+PHBhdGggZD0iTTQ2OTIuMzUsNzg3LjY4OTQgQzQ3MDEuNTYsODA5LjkzOTQgNDcxMy4yMjUxLDgzOC4xNTU2IDQ3MjIuNDE1MSw4NjAuMzU1NiIgZmlsbD0ibm9uZSIgaWQ9InN0dWRlbnRTdmMtdG8tYXBvbGxvIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI0NzI0LjcxLDg2NS44OTk0LDQ3MjQuOTYzNSw4NTYuMDUzOCw0NzIyLjc5NzYsODYxLjI3OTYsNDcxNy41NzE4LDg1OS4xMTM3LDQ3MjQuNzEsODY1Ljg5OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgZW5yb2xsU3ZjIHRvIGFwb2xsby0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJlbnJvbGxTdmMiIGRhdGEtZW50aXR5LTI9ImFwb2xsbyIgZGF0YS1zb3VyY2UtbGluZT0iMTQ0IiBkYXRhLXVpZD0ibG5rOTciIGlkPSJsaW5rX2Vucm9sbFN2Y19hcG9sbG8iPjxwYXRoIGQ9Ik00ODUzLjIyLDc4Ny42ODk0IEM0ODI2Ljg4LDgwOS45Mzk0IDQ3OTEuNDczNSw4MzkuODI3NSA0NzY1LjE5MzUsODYyLjAyNzUiIGZpbGw9Im5vbmUiIGlkPSJlbnJvbGxTdmMtdG8tYXBvbGxvIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI0NzYwLjYxLDg2NS44OTk0LDQ3NzAuMDY2NSw4NjMuMTQ3Miw0NzY0LjQyOTYsODYyLjY3MjgsNDc2NC45MDQsODU3LjAzNTksNDc2MC42MSw4NjUuODk5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBhdXRoR3VhcmQgdG8gYXV0aFN2Yy0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJhdXRoR3VhcmQiIGRhdGEtZW50aXR5LTI9ImF1dGhTdmMiIGRhdGEtc291cmNlLWxpbmU9IjE0NyIgZGF0YS11aWQ9Imxuazk4IiBpZD0ibGlua19hdXRoR3VhcmRfYXV0aFN2YyI+PHBhdGggZD0iTTI2MTUuNjksNjE3LjI5OTQgQzI2MzkuNyw2MzQuMDM5NCAyNjc1LjEzLDY1NS41Mzk0IDI3MTAsNjY0LjkyOTQgQzI3NDguNjgsNjc1LjMzOTQgMzM5MC45OSw2NzEuMDI5NCAzNDMxLDY3Mi45Mjk0IEMzODE1LjY5LDY5MS4xMzk0IDQyNjkuODY0LDczNy40NjEyIDQ0MzcuMTk0LDc1NS4zNjEyIiBmaWxsPSJub25lIiBpZD0iYXV0aEd1YXJkLXRvLWF1dGhTdmMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjcsNzsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjQ0NDMuMTYsNzU1Ljk5OTQsNDQzNC42MzY1LDc1MS4wNjQ4LDQ0MzguMTg4NCw3NTUuNDY3NSw0NDMzLjc4NTYsNzU5LjAxOTQsNDQ0My4xNiw3NTUuOTk5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBhZG1pbkd1YXJkIHRvIGF1dGhTdmMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iYWRtaW5HdWFyZCIgZGF0YS1lbnRpdHktMj0iYXV0aFN2YyIgZGF0YS1zb3VyY2UtbGluZT0iMTQ4IiBkYXRhLXVpZD0ibG5rOTkiIGlkPSJsaW5rX2FkbWluR3VhcmRfYXV0aFN2YyI+PHBhdGggZD0iTTIyODAuOTMsNjE3LjI0OTQgQzIyOTYuMyw2MzMuNzE5NCAyMzE5LjU1LDY1NC44ODk0IDIzNDUsNjY0LjkyOTQgQzI0MjAuMzQsNjk0LjYyOTQgMjQ0Ni4xLDY3MC4xMDk0IDI1MjcsNjczLjkyOTQgQzMyODAuMTIsNzA5LjQ4OTQgNDE4OC40NTU3LDc0OS4xODg3IDQ0MzcuMDE1Nyw3NTkuOTk4NyIgZmlsbD0ibm9uZSIgaWQ9ImFkbWluR3VhcmQtdG8tYXV0aFN2YyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6Nyw3OyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNDQ0My4wMSw3NjAuMjU5NCw0NDM0LjE5MjMsNzU1Ljg3MjEsNDQzOC4wMTQ3LDc2MC4wNDIxLDQ0MzMuODQ0Nyw3NjMuODY0Niw0NDQzLjAxLDc2MC4yNTk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIGd1ZXN0R3VhcmQgdG8gYXV0aFN2Yy0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJndWVzdEd1YXJkIiBkYXRhLWVudGl0eS0yPSJhdXRoU3ZjIiBkYXRhLXNvdXJjZS1saW5lPSIxNDkiIGRhdGEtdWlkPSJsbmsxMDAiIGlkPSJsaW5rX2d1ZXN0R3VhcmRfYXV0aFN2YyI+PHBhdGggZD0iTTI0NDUuMzYsNjE3LjIzOTQgQzI0NjAuMyw2MzMuNzE5NCAyNDgyLjk2LDY1NC44ODk0IDI1MDgsNjY0LjkyOTQgQzI2OTAuOTYsNzM4LjI5OTQgNDExMy42NjA0LDc1OC42MzA3IDQ0MzcuMDcwNCw3NjIuMzMwNyIgZmlsbD0ibm9uZSIgaWQ9Imd1ZXN0R3VhcmQtdG8tYXV0aFN2YyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6Nyw3OyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNDQ0My4wNyw3NjIuMzk5NCw0NDM0LjExNjMsNzU4LjI5NjcsNDQzOC4wNzAzLDc2Mi4zNDIyLDQ0MzQuMDI0OCw3NjYuMjk2Miw0NDQzLjA3LDc2Mi4zOTk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIGFwb2xsbyB0byBncmFwaHFsLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9ImFwb2xsbyIgZGF0YS1lbnRpdHktMj0iZ3JhcGhxbCIgZGF0YS1zb3VyY2UtbGluZT0iMTUyIiBkYXRhLXVpZD0ibG5rMTAxIiBpZD0ibGlua19hcG9sbG9fZ3JhcGhxbCI+PHBhdGggZD0iTTQ3OTguMjUsODg2LjY0OTQgQzUwODkuOSw4NzguNDI5NCA2Mjc1LDg0MC4zODk0IDYyNzUsNzY1LjA2OTQgQzYyNzUsMzc5LjQ3OTQgNjI3NSwzNzkuNDc5NCA2Mjc1LDM3OS40Nzk0IEM2Mjc1LDM0Ny41OTk0IDYyNzEuOCwzMzEuNTg5NCA2MjQ1LDMxNC4zMjk0IEM2MTg2LjE2LDI3Ni40NTk0IDEyNzQuOTgsMzA3Ljc1OTQgMTIwNywyOTEuMTc5NCBDMTE5My4zNSwyODcuODU5NCAxMTg0LjgxNjYsMjg0Ljc4MjcgMTE3Mi4xMzY2LDI3OC40NDI3IiBmaWxsPSJub25lIiBpZD0iYXBvbGxvLXRvLWdyYXBocWwiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjExNjYuNzcsMjc1Ljc1OTQsMTE3My4wMzEsMjgzLjM2MiwxMTcxLjI0MjEsMjc3Ljk5NTQsMTE3Ni42MDg3LDI3Ni4yMDY2LDExNjYuNzcsMjc1Ljc1OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5NS4yMjc1IiB4PSI2Mjc2IiB5PSI1OTAuODQ2MyI+SFRUUC9HcmFwaFFMPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjkxLjEyMDYiIHg9IjYyNzguMDUzNSIgeT0iNjA1Ljk3OTEiPisgSldUIEhlYWRlcjwvdGV4dD48L2c+PCEtLWxpbmsgZ3JhcGhxbCB0byBxdWVyeS0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJncmFwaHFsIiBkYXRhLWVudGl0eS0yPSJxdWVyeSIgZGF0YS1zb3VyY2UtbGluZT0iMTU0IiBkYXRhLXVpZD0ibG5rMTAyIiBpZD0ibGlua19ncmFwaHFsX3F1ZXJ5Ij48cGF0aCBkPSJNMTEzMy4xMSwyNzUuNTM5NCBDMTE0Ni4yLDMwMC4zMzk0IDExNjEuNTY2NiwzMjkuNDM0NiAxMTczLjM1NjYsMzUxLjc0NDYiIGZpbGw9Im5vbmUiIGlkPSJncmFwaHFsLXRvLXF1ZXJ5IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIxMTc2LjE2LDM1Ny4wNDk0LDExNzUuNDkxNCwzNDcuMjIzMiwxMTczLjgyMzgsMzUyLjYyODcsMTE2OC40MTg0LDM1MC45NjExLDExNzYuMTYsMzU3LjA0OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgZ3JhcGhxbCB0byBtdXRhdGlvbi0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJncmFwaHFsIiBkYXRhLWVudGl0eS0yPSJtdXRhdGlvbiIgZGF0YS1zb3VyY2UtbGluZT0iMTU1IiBkYXRhLXVpZD0ibG5rMTAzIiBpZD0ibGlua19ncmFwaHFsX211dGF0aW9uIj48cGF0aCBkPSJNMTE3Ni4zMSwyNzUuNzA5NCBDMTIwNy4zNiwyOTEuOTM5NCAxMjQwLjMyLDMwOS40ODk0IDEyNDcsMzE0LjMyOTQgQzEyNjQuMzUsMzI2Ljg5OTQgMTI3Ny41OTM5LDMzOS4zMzE5IDEyOTAuNDQzOSwzNTIuNzExOSIgZmlsbD0ibm9uZSIgaWQ9ImdyYXBocWwtdG8tbXV0YXRpb24iIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjEyOTQuNiwzNTcuMDM5NCwxMjkxLjI1MDksMzQ3Ljc3NzQsMTI5MS4xMzY2LDM1My40MzMxLDEyODUuNDgwOSwzNTMuMzE4OSwxMjk0LjYsMzU3LjAzOTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgZ3JhcGhxbCB0byBhdXRoVHlwZXMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iZ3JhcGhxbCIgZGF0YS1lbnRpdHktMj0iYXV0aFR5cGVzIiBkYXRhLXNvdXJjZS1saW5lPSIxNTYiIGRhdGEtdWlkPSJsbmsxMDQiIGlkPSJsaW5rX2dyYXBocWxfYXV0aFR5cGVzIj48cGF0aCBkPSJNMTEwMi4yNSwyNzUuNTM5NCBDMTA5MC4yNiwzMDAuMzM5NCAxMDc2LjI0MjQsMzI5LjMzNzkgMTA2NS40NTI0LDM1MS42NDc5IiBmaWxsPSJub25lIiBpZD0iZ3JhcGhxbC10by1hdXRoVHlwZXMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjEwNjIuODQsMzU3LjA0OTQsMTA3MC4zNTk1LDM1MC42ODg4LDEwNjUuMDE3LDM1Mi41NDgyLDEwNjMuMTU3NiwzNDcuMjA1NiwxMDYyLjg0LDM1Ny4wNDk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIG11dGF0aW9uIHRvIGxvZ2luQ21kLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9Im11dGF0aW9uIiBkYXRhLWVudGl0eS0yPSJsb2dpbkNtZCIgZGF0YS1zb3VyY2UtbGluZT0iMTU4IiBkYXRhLXVpZD0ibG5rMTA1IiBpZD0ibGlua19tdXRhdGlvbl9sb2dpbkNtZCI+PHBhdGggZD0iTTEzMzYuMTMsNDA0LjA5OTQgQzEzNTMuMiw0MjAuNjQ5NCAxMzc4Ljc4LDQ0MS44NTk0IDE0MDYsNDUxLjYyOTQgQzE0MzEuNjMsNDYwLjgyOTQgMTYyMy45Miw0NTYuNjk5NCAxNjUxLDQ1OS42Mjk0IEMxNjkyLjM0LDQ2NC4wOTk0IDE3MDEuNiw0NzIuNzQ5NCAxNzQzLDQ3Ni42Mjk0IEMxNzY5LjMzLDQ3OS4wOTk0IDM2MjIuOTYsNDczLjYwOTQgMzY0Nyw0ODQuNjI5NCBDMzY4NS40NSw1MDIuMjQ5NCAzNzExLjI5MDMsNTM4Ljk1NzMgMzcyNi4zMzAzLDU2NS4xMjczIiBmaWxsPSJub25lIiBpZD0ibXV0YXRpb24tdG8tbG9naW5DbWQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjM3MjkuMzIsNTcwLjMyOTQsMzcyOC4zMDM2LDU2MC41MzMxLDM3MjYuODI4Niw1NjUuOTk0MywzNzIxLjM2NzQsNTY0LjUxOTMsMzcyOS4zMiw1NzAuMzI5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBtdXRhdGlvbiB0byByZWdpc3RlckNtZC0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJtdXRhdGlvbiIgZGF0YS1lbnRpdHktMj0icmVnaXN0ZXJDbWQiIGRhdGEtc291cmNlLWxpbmU9IjE1OSIgZGF0YS11aWQ9ImxuazEwNiIgaWQ9ImxpbmtfbXV0YXRpb25fcmVnaXN0ZXJDbWQiPjxwYXRoIGQ9Ik0xMzM1LjczLDQwMy44OTk0IEMxMzUyLjc3LDQyMC41Nzk0IDEzNzguNSw0NDIuMDQ5NCAxNDA2LDQ1MS42Mjk0IEMxNDEzLjk3LDQ1NC4zOTk0IDM4MjguMjUsNDgxLjI4OTQgMzgzNiw0ODQuNjI5NCBDMzg3Ni44Niw1MDIuMjM5NCAzOTA2LjQxNjEsNTM5LjE2MDkgMzkyMy45MDYxLDU2NS4zMzA5IiBmaWxsPSJub25lIiBpZD0ibXV0YXRpb24tdG8tcmVnaXN0ZXJDbWQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjM5MjcuMjQsNTcwLjMxOTQsMzkyNS41NjQ4LDU2MC42MTQsMzkyNC40NjE3LDU2Ni4xNjIzLDM5MTguOTEzNSw1NjUuMDU5MywzOTI3LjI0LDU3MC4zMTk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIG11dGF0aW9uIHRvIHJlc2V0Q21kLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9Im11dGF0aW9uIiBkYXRhLWVudGl0eS0yPSJyZXNldENtZCIgZGF0YS1zb3VyY2UtbGluZT0iMTYwIiBkYXRhLXVpZD0ibG5rMTA3IiBpZD0ibGlua19tdXRhdGlvbl9yZXNldENtZCI+PHBhdGggZD0iTTEzMzYuMTksNDAzLjkzOTQgQzEzNTMuMjksNDIwLjQwOTQgMTM3OC44OCw0NDEuNTc5NCAxNDA2LDQ1MS42Mjk0IEMxNDM3LjUxLDQ2My4yOTk0IDE1MjMuNTMsNDU2LjY0OTQgMTU1Nyw0NTkuNjI5NCBDMTYxNy42OCw0NjUuMDE5NCAxNjMyLjIxLDQ3Mi43MDk0IDE2OTMsNDc2LjYyOTQgQzE3MTcuMiw0NzguMTg5NCAzNDE2LjQ4LDQ3NS42Mzk0IDM0MzksNDg0LjYyOTQgQzM0ODIuMjcsNTAxLjg5OTQgMzUxNS4xOTc5LDUzOS4xMTM1IDM1MzQuODQ3OSw1NjUuNDAzNSIgZmlsbD0ibm9uZSIgaWQ9Im11dGF0aW9uLXRvLXJlc2V0Q21kIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIzNTM4LjQ0LDU3MC4yMDk0LDM1MzYuMjU1OCw1NjAuNjA1OCwzNTM1LjQ0NjYsNTY2LjIwNDQsMzUyOS44NDc5LDU2NS4zOTUyLDM1MzguNDQsNTcwLjIwOTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgbXV0YXRpb24gdG8gc3R1ZGVudENtZHMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0ibXV0YXRpb24iIGRhdGEtZW50aXR5LTI9InN0dWRlbnRDbWRzIiBkYXRhLXNvdXJjZS1saW5lPSIxNjEiIGRhdGEtdWlkPSJsbmsxMDgiIGlkPSJsaW5rX211dGF0aW9uX3N0dWRlbnRDbWRzIj48cGF0aCBkPSJNMTMzNi43MSw0MDMuODQ5NCBDMTM1My44OSw0MjAuMDM5NCAxMzc5LjM2LDQ0MC44OTk0IDE0MDYsNDUxLjYyOTQgQzE1MDAuNTYsNDg5LjcxOTQgMTUzMi4yMyw0NzAuNjY5NCAxNjM0LDQ3Ni42Mjk0IEMxNjYyLjUxLDQ3OC4yOTk0IDI2MzQuODIsNDc1Ljg3OTQgMjY2Miw0ODQuNjI5NCBDMjcxNC45NSw1MDEuNjc5NCAyNzYxLjA4NSw1NDAuMDcxNiAyNzg4Ljc2NSw1NjYuNDMxNiIgZmlsbD0ibm9uZSIgaWQ9Im11dGF0aW9uLXRvLXN0dWRlbnRDbWRzIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIyNzkzLjExLDU3MC41Njk0LDI3ODkuMzUxMSw1NjEuNDY2MSwyNzg5LjQ4OTIsNTY3LjEyMTIsMjc4My44MzQsNTY3LjI1OTQsMjc5My4xMSw1NzAuNTY5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBtdXRhdGlvbiB0byBlbnJvbGxDbWRzLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9Im11dGF0aW9uIiBkYXRhLWVudGl0eS0yPSJlbnJvbGxDbWRzIiBkYXRhLXNvdXJjZS1saW5lPSIxNjIiIGRhdGEtdWlkPSJsbmsxMDkiIGlkPSJsaW5rX211dGF0aW9uX2Vucm9sbENtZHMiPjxwYXRoIGQ9Ik0xMzE5LjgyLDQwNC4wODk0IEMxMzI4LjQ4LDQ0NC43NTk0IDEzNDUuMzI5Niw1MjMuOTExMSAxMzUzLjk2OTYsNTY0LjQ2MTEiIGZpbGw9Im5vbmUiIGlkPSJtdXRhdGlvbi10by1lbnJvbGxDbWRzIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIxMzU1LjIyLDU3MC4zMjk0LDEzNTcuMjU2Niw1NjAuNjkzNCwxMzU0LjE3OCw1NjUuNDM5MSwxMzQ5LjQzMjMsNTYyLjM2MDUsMTM1NS4yMiw1NzAuMzI5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBxdWVyeSB0byBzdHVkZW50UXMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0icXVlcnkiIGRhdGEtZW50aXR5LTI9InN0dWRlbnRRcyIgZGF0YS1zb3VyY2UtbGluZT0iMTYzIiBkYXRhLXVpZD0ibG5rMTEwIiBpZD0ibGlua19xdWVyeV9zdHVkZW50UXMiPjxwYXRoIGQ9Ik0xMjAwLjI1LDQwNC4wNzk0IEMxMjEwLjQ0LDQyMC4zODk0IDEyMjYuNTUsNDQxLjI4OTQgMTI0Nyw0NTEuNjI5NCBDMTMyMy45MSw0OTAuNTA5NCAxNTQ3Ljg3LDQ3My42MDk0IDE2MzQsNDc2LjYyOTQgQzE2NTQuMjQsNDc3LjMzOTQgMzA3My41Nyw0NzYuMjI5NCAzMDkyLDQ4NC42Mjk0IEMzMTMwLjY2LDUwMi4yNDk0IDMxNTYuODQ3Niw1MzguOTc2MiAzMTcyLjEwNzYsNTY1LjE0NjIiIGZpbGw9Im5vbmUiIGlkPSJxdWVyeS10by1zdHVkZW50UXMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjMxNzUuMTMsNTcwLjMyOTQsMzE3NC4wNTE5LDU2MC41Mzk3LDMxNzIuNjExNCw1NjYuMDEwMSwzMTY3LjE0MSw1NjQuNTY5NSwzMTc1LjEzLDU3MC4zMjk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIHF1ZXJ5IHRvIGNsYXNzbWF0ZXNRLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9InF1ZXJ5IiBkYXRhLWVudGl0eS0yPSJjbGFzc21hdGVzUSIgZGF0YS1zb3VyY2UtbGluZT0iMTY0IiBkYXRhLXVpZD0ibG5rMTExIiBpZD0ibGlua19xdWVyeV9jbGFzc21hdGVzUSI+PHBhdGggZD0iTTExODUsNDA0LjA4OTQgQzExNzkuNjEsNDQ0Ljc1OTQgMTE2OS4xMzkxLDUyMy44MzE1IDExNjMuNzU5MSw1NjQuMzgxNSIgZmlsbD0ibm9uZSIgaWQ9InF1ZXJ5LXRvLWNsYXNzbWF0ZXNRIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIxMTYyLjk3LDU3MC4zMjk0LDExNjguMTE5LDU2MS45MzM2LDExNjMuNjI3Niw1NjUuMzcyOCwxMTYwLjE4ODUsNTYwLjg4MTUsMTE2Mi45Nyw1NzAuMzI5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayBsb2dpbkNtZCB0byBqd3RTdmMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0ibG9naW5DbWQiIGRhdGEtZW50aXR5LTI9Imp3dFN2YyIgZGF0YS1zb3VyY2UtbGluZT0iMTY2IiBkYXRhLXVpZD0ibG5rMTEyIiBpZD0ibGlua19sb2dpbkNtZF9qd3RTdmMiPjxwYXRoIGQ9Ik0zNzI5LjI4LDU3MC40MDk0IEMzNzE0LjIxLDU0NC4zMTk0IDM2ODUuMzMsNTAyLjQ4OTQgMzY0Nyw0ODQuNjI5NCBDMzYzNS4xMSw0NzkuMDg5NCAzMTg4LjExLDQ3Ni45Mjk0IDMxNzUsNDc2LjYyOTQgQzI3ODguMjcsNDY3Ljc5OTQgMjY4Ny41NCw1MDkuMDg5NCAyMzA1LDQ1MS42Mjk0IEMyMDQwLjA4LDQxMS44Mzk0IDE5NzAuODQsMzk1LjI2OTQgMTcyNCwyOTEuMTc5NCBDMTcwOC42MywyODQuNjk5NCAxNjk3LjcwMzksMjc4LjkwMTIgMTY4NC4xMTM5LDI3MC42MjEyIiBmaWxsPSJub25lIiBpZD0ibG9naW5DbWQtdG8tand0U3ZjIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIxNjc4Ljk5LDI2Ny40OTk0LDE2ODQuNTk0NiwyNzUuNTk4LDE2ODMuMjU5OSwyNzAuMTAwOSwxNjg4Ljc1NywyNjguNzY2MiwxNjc4Ljk5LDI2Ny40OTk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIGxvZ2luQ21kIHRvIHBhc3NTdmMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0ibG9naW5DbWQiIGRhdGEtZW50aXR5LTI9InBhc3NTdmMiIGRhdGEtc291cmNlLWxpbmU9IjE2NyIgZGF0YS11aWQ9ImxuazExMyIgaWQ9ImxpbmtfbG9naW5DbWRfcGFzc1N2YyI+PHBhdGggZD0iTTM3MjkuMjYsNTcwLjQ2OTQgQzM3MTQuMTYsNTQ0LjQyOTQgMzY4NS4yNiw1MDIuNjQ5NCAzNjQ3LDQ4NC42Mjk0IEMzNjMxLjExLDQ3Ny4xMzk0IDMzNDguNDgsNDc4LjM0OTQgMzMzMSw0NzYuNjI5NCBDMjg0OC4yNCw0MjkuMTc5NCAyMjgzLjI0OTYsMzEwLjYzOTggMjA3NC40OTk2LDI2NC42Njk4IiBmaWxsPSJub25lIiBpZD0ibG9naW5DbWQtdG8tcGFzc1N2YyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iMjA2OC42NCwyNjMuMzc5NCwyMDc2LjU2OTIsMjY5LjIyMTMsMjA3My41MjMsMjY0LjQ1NDcsMjA3OC4yODk3LDI2MS40MDg1LDIwNjguNjQsMjYzLjM3OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgcmVnaXN0ZXJDbWQgdG8gcGFzc1N2Yy0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJyZWdpc3RlckNtZCIgZGF0YS1lbnRpdHktMj0icGFzc1N2YyIgZGF0YS1zb3VyY2UtbGluZT0iMTY4IiBkYXRhLXVpZD0ibG5rMTE0IiBpZD0ibGlua19yZWdpc3RlckNtZF9wYXNzU3ZjIj48cGF0aCBkPSJNMzkyNy4yMyw1NzAuMzQ5NCBDMzkwOS43Myw1NDQuMTk5NCAzODc2LjgyLDUwMi4zMTk0IDM4MzYsNDg0LjYyOTQgQzM4MTIuNyw0NzQuNTI5NCAzNDA0LjE3LDQ3OS45ODk0IDMzNzksNDc2LjYyOTQgQzMyMzMuMzUsNDU3LjE3OTQgMjg4Mi44MiwzMzkuMTg5NCAyNzM4LDMxNC4zMjk0IEMyNDk2LjY4LDI3Mi45MDk0IDIyMTMuMTgzMSwyNTUuMzE2MiAyMDc0LjY2MzEsMjQ4LjY4NjIiIGZpbGw9Im5vbmUiIGlkPSJyZWdpc3RlckNtZC10by1wYXNzU3ZjIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIyMDY4LjY3LDI0OC4zOTk0LDIwNzcuNDY4NSwyNTIuODI1MSwyMDczLjY2NDMsMjQ4LjYzODQsMjA3Ny44NTA5LDI0NC44MzQyLDIwNjguNjcsMjQ4LjM5OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgc3R1ZGVudENtZHMgdG8gZG9tYWluU3ZjLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9InN0dWRlbnRDbWRzIiBkYXRhLWVudGl0eS0yPSJkb21haW5TdmMiIGRhdGEtc291cmNlLWxpbmU9IjE2OSIgZGF0YS11aWQ9ImxuazExNSIgaWQ9Imxpbmtfc3R1ZGVudENtZHNfZG9tYWluU3ZjIj48cGF0aCBkPSJNMjc3Ny41OCw2MTcuMjk5NCBDMjc0Ny41Myw2MzQuMDM5NCAyNzAzLjYyLDY1NS41Mzk0IDI2NjIsNjY0LjkyOTQgQzI1OTUuOTMsNjc5LjgyOTQgMTUwNS41NCw2NTUuOTE5NCAxNDQzLDY4MS45Mjk0IEMxNDE0LjE2LDY5My45MTk0IDEzOTMuNDEwNCw3MTYuMzM5NyAxMzc4LjcwMDQsNzM1Ljk0OTciIGZpbGw9Im5vbmUiIGlkPSJzdHVkZW50Q21kcy10by1kb21haW5TdmMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjEzNzUuMSw3NDAuNzQ5NCwxMzgzLjcwMDQsNzM1Ljk1MDEsMTM3OC4xMDAzLDczNi43NDk2LDEzNzcuMzAwOCw3MzEuMTQ5NiwxMzc1LjEsNzQwLjc0OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgZW5yb2xsQ21kcyB0byBkb21haW5TdmMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iZW5yb2xsQ21kcyIgZGF0YS1lbnRpdHktMj0iZG9tYWluU3ZjIiBkYXRhLXNvdXJjZS1saW5lPSIxNzAiIGRhdGEtdWlkPSJsbmsxMTYiIGlkPSJsaW5rX2Vucm9sbENtZHNfZG9tYWluU3ZjIj48cGF0aCBkPSJNMTM2MCw2MTcuMTI5NCBDMTM2MCw2NDkuMzE5NCAxMzYwLDcwMi4zODk0IDEzNjAsNzM0LjYyOTQiIGZpbGw9Im5vbmUiIGlkPSJlbnJvbGxDbWRzLXRvLWRvbWFpblN2YyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iMTM2MCw3NDAuNjI5NCwxMzY0LDczMS42Mjk0LDEzNjAsNzM1LjYyOTQsMTM1Niw3MzEuNjI5NCwxMzYwLDc0MC42Mjk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIGRvbWFpblN2YyB0byBzdHVkZW50RW50aXR5LS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9ImRvbWFpblN2YyIgZGF0YS1lbnRpdHktMj0ic3R1ZGVudEVudGl0eSIgZGF0YS1zb3VyY2UtbGluZT0iMTcyIiBkYXRhLXVpZD0ibG5rMTE3IiBpZD0ibGlua19kb21haW5TdmNfc3R1ZGVudEVudGl0eSI+PHBhdGggZD0iTTEzNjEuMSw3ODcuNjg5NCBDMTM2Mi4xOCw4MDkuOTM5NCAxMzYzLjUzODUsODM3LjcwNjUgMTM2NC42MTg1LDg1OS45MDY1IiBmaWxsPSJub25lIiBpZD0iZG9tYWluU3ZjLXRvLXN0dWRlbnRFbnRpdHkiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjEzNjQuOTEsODY1Ljg5OTQsMTM2OC40NjgsODU2LjcxNTYsMTM2NC42NjcsODYwLjkwNTMsMTM2MC40Nzc0LDg1Ny4xMDQ0LDEzNjQuOTEsODY1Ljg5OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgZG9tYWluU3ZjIHRvIHZhbHVlT2JqZWN0cy0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJkb21haW5TdmMiIGRhdGEtZW50aXR5LTI9InZhbHVlT2JqZWN0cyIgZGF0YS1zb3VyY2UtbGluZT0iMTczIiBkYXRhLXVpZD0ibG5rMTE4IiBpZD0ibGlua19kb21haW5TdmNfdmFsdWVPYmplY3RzIj48cGF0aCBkPSJNMTMyOS4xOSw3ODcuNjg5NCBDMTI5OC44Nyw4MDkuOTM5NCAxMjU3LjY5NjYsODQwLjE0ODcgMTIyNy40NTY2LDg2Mi4zNDg3IiBmaWxsPSJub25lIiBpZD0iZG9tYWluU3ZjLXRvLXZhbHVlT2JqZWN0cyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iMTIyMi42Miw4NjUuODk5NCwxMjMyLjI0Miw4NjMuNzk3OCwxMjI2LjY1MDUsODYyLjk0MDUsMTIyNy41MDc4LDg1Ny4zNDksMTIyMi42Miw4NjUuODk5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjwvZz48IS0tbGluayByZXBvcyB0byBkYkNvbnRleHQtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0icmVwb3MiIGRhdGEtZW50aXR5LTI9ImRiQ29udGV4dCIgZGF0YS1zb3VyY2UtbGluZT0iMTc1IiBkYXRhLXVpZD0ibG5rMTE5IiBpZD0ibGlua19yZXBvc19kYkNvbnRleHQiPjxwYXRoIGQ9Ik0xNDg1LDI2Ny41Mzk0IEMxNDg1LDI5Mi4zNTk0IDE0ODUsMzI2LjA1OTQgMTQ4NSwzNTAuODk5NCIgZmlsbD0ibm9uZSIgaWQ9InJlcG9zLXRvLWRiQ29udGV4dCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iMTQ4NSwzNTYuODk5NCwxNDg5LDM0Ny44OTk0LDE0ODUsMzUxLjg5OTQsMTQ4MSwzNDcuODk5NCwxNDg1LDM1Ni44OTk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjwhLS1saW5rIGxvYWRlcnMgdG8gZGJDb250ZXh0LS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9ImxvYWRlcnMiIGRhdGEtZW50aXR5LTI9ImRiQ29udGV4dCIgZGF0YS1zb3VyY2UtbGluZT0iMTc2IiBkYXRhLXVpZD0ibG5rMTIwIiBpZD0ibGlua19sb2FkZXJzX2RiQ29udGV4dCI+PHBhdGggZD0iTTE3NjkuMSwyNjcuNDQ5NCBDMTc1NS4yMSwyNzUuNDM5NCAxNzM5LjEyLDI4NC4xODk0IDE3MjQsMjkxLjE3OTQgQzE2NjMuNTgsMzE5LjEyOTQgMTU5Ny4yOTIzLDM0Mi44NDI3IDE1NDguMjIyMywzNTkuMTkyNyIgZmlsbD0ibm9uZSIgaWQ9ImxvYWRlcnMtdG8tZGJDb250ZXh0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIxNTQyLjUzLDM2MS4wODk0LDE1NTIuMzMyOSwzNjIuMDM5MywxNTQ3LjI3MzYsMzU5LjUwODgsMTU0OS44MDQxLDM1NC40NDk1LDE1NDIuNTMsMzYxLjA4OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgZGJDb250ZXh0IHRvIHNxbHNlcnZlci0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJkYkNvbnRleHQiIGRhdGEtZW50aXR5LTI9InNxbHNlcnZlciIgZGF0YS1zb3VyY2UtbGluZT0iMTc3IiBkYXRhLXVpZD0ibG5rMTIxIiBpZD0ibGlua19kYkNvbnRleHRfc3Fsc2VydmVyIj48cGF0aCBkPSJNMTQ2MC45OCw0MDMuOTM5NCBDMTQ0MS4zOSw0MjAuNjM5NCAxNDEyLjEyLDQ0Mi4xMTk0IDEzODIsNDUxLjYyOTQgQzEzMTkuOSw0NzEuMjI5NCA4NTksNDQzLjE1OTQgNzk2LDQ1OS42Mjk0IEM3MzYuOTg1LDQ3NS4wNTk0IDY3Ni43MTI1LDUwNy41NTQ0IDYzMC43MTYzLDUzNi41NzgxIEM2MDcuNzE4MSw1NTEuMDkgNTg4LjI4OTEsNTY0LjczNDEgNTc0LjM3MDgsNTc0Ljk0MzMgQzU3MC44OTEyLDU3Ny40OTU2IDU2Ny43NTYxLDU3OS44MzMyIDU2NC45OTU3LDU4MS45MTYxIEM1NjMuNjE1NSw1ODIuOTU3NSA1NjIuMzI5LDU4My45MzUyIDU2MS4xNCw1ODQuODQ0MiBDNTYwLjU0NTUsNTg1LjI5ODcgNTU5Ljk3NTMsNTg1LjczNiA1NTkuNDMsNTg2LjE1NTYgQzU1OS4yOTM3LDU4Ni4yNjA0IDU2My45MTE2LDU4Mi43MDIgNTYzLjc3ODQsNTgyLjgwNDYiIGZpbGw9Im5vbmUiIGlkPSJkYkNvbnRleHQtdG8tc3Fsc2VydmVyIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI1NTkuMDI1Nyw1ODYuNDY2OSw1NjguNTk2Myw1ODQuMTQyLDU2Mi45ODYzLDU4My40MTUsNTYzLjcxMzMsNTc3LjgwNTEsNTU5LjAyNTcsNTg2LjQ2NjkiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48L2c+PCEtLWxpbmsgcmVwb3MgdG8gcG9ydHMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0icmVwb3MiIGRhdGEtZW50aXR5LTI9InBvcnRzIiBkYXRhLXNvdXJjZS1saW5lPSIxODAiIGRhdGEtdWlkPSJsbmsxMjIiIGlkPSJsaW5rX3JlcG9zX3BvcnRzIj48cGF0aCBkPSJNMTQ0NC42OCwyNjcuNDc5NCBDMTQyNi4xNywyNzYuNjI5NCAxNDAzLjU3LDI4Ni4xOTk0IDEzODIsMjkxLjE3OTQgQzEzMzQuOTksMzAyLjAzOTQgOTkwLjYyLDI4Mi43MTk0IDk0OCwzMDUuMzI5NCBDODczLjE0LDM0NS4wMzk0IDg2Mi4xNywzNzkuMDI5NCA4MzYsNDU5LjYyOTQgQzgwNi4yLDU1MS40MTk0IDcwMy4zNiw1MjAuMzY5NCA5NDgsNjczLjkyOTQgQzk3MC42NCw2ODguMTI5NCAxMDQzLjE3LDY3Mi4wMzk0IDEwNjgsNjgxLjkyOTQgQzEwOTkuNiw2OTQuNTE5NCAxMTE2LjM0OTcsNzA4LjE3NzggMTEzNC40Nzk3LDcyNy41NDc4IiBmaWxsPSJub25lIiBpZD0icmVwb3MtdG8tcG9ydHMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjcsNzsiLz48cG9seWdvbiBmaWxsPSJub25lIiBwb2ludHM9IjExNDYuNzgsNzQwLjY4OTQsMTEzOC44NjAyLDcyMy40NDc3LDExMzAuMDk5MSw3MzEuNjQ3OSwxMTQ2Ljc4LDc0MC42ODk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNzYuOTA4MiIgeD0iODM3IiB5PSI0NzIuNjk2MyI+aW1wbGVtZW50czwvdGV4dD48L2c+PCEtLWxpbmsgand0U3ZjIHRvIHBvcnRzLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9Imp3dFN2YyIgZGF0YS1lbnRpdHktMj0icG9ydHMiIGRhdGEtc291cmNlLWxpbmU9IjE4MSIgZGF0YS11aWQ9ImxuazEyMyIgaWQ9Imxpbmtfand0U3ZjX3BvcnRzIj48cGF0aCBkPSJNMTYxNC4zNCwyNjcuNjc5NCBDMTYwMC4zMywyNzYuNzM5NCAxNTgzLjA4LDI4Ni4xOTk0IDE1NjYsMjkxLjE3OTQgQzE1MzQuNTYsMzAwLjM1OTQgOTk5LjcsMjkwLjcyOTQgOTc3LDMxNC4zMjk0IEM4NjYuMDIsNDI5Ljc1OTQgOTY5LjkyLDUzMi41Mzk0IDEwNjAsNjY0LjkyOTQgQzEwODAuNDYsNjk0Ljk4OTQgMTA5Ny41NjYzLDcxMS40MDY4IDExMjAuODQ2Myw3MjkuNTk2OCIgZmlsbD0ibm9uZSIgaWQ9Imp3dFN2Yy10by1wb3J0cyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6Nyw3OyIvPjxwb2x5Z29uIGZpbGw9Im5vbmUiIHBvaW50cz0iMTEzNS4wMyw3NDAuNjc5NCwxMTI0LjU0MDUsNzI0Ljg2ODksMTExNy4xNTIxLDczNC4zMjQ3LDExMzUuMDMsNzQwLjY3OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI3Ni45MDgyIiB4PSI5NDEuMDMiIHk9IjQ3Mi42OTYzIj5pbXBsZW1lbnRzPC90ZXh0PjwvZz48IS0tbGluayBkb21haW4gdG8gR01OMTI0LS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9ImRvbWFpbiIgZGF0YS1lbnRpdHktMj0iR01OMTI0IiBkYXRhLXNvdXJjZS1saW5lPSIxODQiIGRhdGEtdWlkPSJsbmsxMjYiIGlkPSJsaW5rX2RvbWFpbl9HTU4xMjQiPjxwYXRoIGQ9Ik0xNDgyLjgzMzEsNzYzLjcwMzQgQzE0ODcuMDYzNCw3NjMuNTI0NiAxNDkyLjc4NjksNzYzLjI4MzQgMTQ5OS45NDUzLDc2Mi45ODM0IEMxNTE0LjI2MjIsNzYyLjM4MzYgMTUzNC4zMTg2LDc2MS41NDg2IDE1NTkuNjQ4NCw3NjAuNTA3MSBDMTYxMC4zMDc5LDc1OC40MjM5IDE2ODIuMDYwNCw3NTUuNTE0NSAxNzcxLjE3NTIsNzUyLjAwNjQgQzE5NDkuNDA0Nyw3NDQuOTkwMyAyMTk3LjA4MzEsNzM1LjU4IDI0ODQuMzYzOCw3MjUuNTk4MSBDMzA1OC45MjUsNzA1LjYzNDQgMzc5MS44OTUsNjgzLjM4NDQgNDQ0NC41LDY3My40Mjk0IEM0NDk1LjU4LDY3Mi42NDk0IDYyMzMuNzIsNjYxLjk3OTQgNjI4My41LDY3My40Mjk0IEM2MzI2LjE0LDY4My4yMjk0IDYzNjcuMTcsNzEzLjE3OTQgNjM5My41Niw3MzUuOTk5NCIgZmlsbD0ibm9uZSIgaWQ9ImRvbWFpbi1HTU4xMjQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjcsNzsiLz48L2c+PCEtLWxpbmsgZ3JhcGhxbCB0byBHTU4xMjctLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iZ3JhcGhxbCIgZGF0YS1lbnRpdHktMj0iR01OMTI3IiBkYXRhLXNvdXJjZS1saW5lPSIxOTAiIGRhdGEtdWlkPSJsbmsxMjkiIGlkPSJsaW5rX2dyYXBocWxfR01OMTI3Ij48cGF0aCBkPSJNMTA0NC4xNiwyNjQuNjg5NCBDMTAwOS40NiwyNzMuNTk5NCA5NjcuMjcsMjgzLjc2OTQgOTI5LDI5MS4xNzk0IEM4ODUuMzYsMjk5LjYzOTQgODczLjY5LDI5Ny4xNzk0IDgzMCwzMDUuMzI5NCBDNzQxLjMsMzIxLjg3OTQgNjQwLjAzLDM0Ni4xODk0IDU3NS4zNiwzNjIuNDA5NCIgZmlsbD0ibm9uZSIgaWQ9ImdyYXBocWwtR01OMTI3IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWRhc2hhcnJheTo3LDc7Ii8+PC9nPjwhLS1saW5rIGp3dFN2YyB0byBHTU4xMzAtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iand0U3ZjIiBkYXRhLWVudGl0eS0yPSJHTU4xMzAiIGRhdGEtc291cmNlLWxpbmU9IjE5NyIgZGF0YS11aWQ9ImxuazEzMiIgaWQ9Imxpbmtfand0U3ZjX0dNTjEzMCI+PHBhdGggZD0iTTE2NDguNDEsMjIwLjY0OTQgQzE2NTYuMDYsMTc4LjQ1OTQgMTY3OS4xMSw5MS44MTk0IDE3NDEuNSw2OC43Mzk0IEMxNzcxLjU4LDU3LjYwOTQgNjMyOS40Miw1Ny42MDk0IDYzNTkuNSw2OC43Mzk0IEM2NDI3LjU4LDkzLjkxOTQgNjQ2My4xMiwxODIuODY5NCA2NDc2LjEyLDIyMy41MDk0IiBmaWxsPSJub25lIiBpZD0iand0U3ZjLUdNTjEzMCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6Nyw3OyIvPjwvZz48IS0tU1JDPVtkTFpSUmptczQ3dGRMeDNrR3NxS2xjR0hmdXFINkRaaWhoQ2tkQ1JFUmprN2YwelNZVHZiOGY0b0lKYW5xZG5MRnc0X3JrNTV1YUxvcVRRMDBWQkNxTjFjRDltUHhKVHdIc2tBY3VlbVpqSDduWGlZSU9xQktKVTJLd3ZOLWc2WWtBc2hJSUhqSUY2SFJBY0pJTGZlbWhTTDdObHk5SjJ0S2hJeWQ4YkFJRnBqbk95TnBvLWNlckdYSW9lenhVZHBxdkZKN3VQNzNsTlBsbjVZaDZzLU00bU1wbjNJSjhGMUF3T3FoR2FrQU52Qmp4MkhtZ21OSWhTYjhybkpYR19uTER3cko4RGhoUkpDTU1TY0xHWnZDXzNVWEhJMHkxQmxKX2NzaE9aNGFvUzdVdldlVkRqOWxZMENWLSAtY0pIRHFfNnVPZjZjR2JHTGpiQzFuTEV0dlhuQlhqRE14TTYyck5lYWp1X1dRMjVQYlBSUGNieEFTYnJHNmVsSjg2NVRIM0tJYkZhNDRGSGNXOE5EUVE3UEZEQ05KZWUwTnVmdG9PNEJfRWxIY0pqSGs4dVdpMW93anUycjBZNzNGaTdnTEdtc09NTDdNNDg2S0owb01LNFNpeUVVZUhtc3VXV1o1UHZsekVGRDJvM2ZjY2xxXzdSdFdLYkhMM1NwMXVLNEtOWFFyc0YwNXAyZnVJcEtuLVRmcFlueEIzRllRdlRmQ0kxZ1YzV2FBWG1XeWdyWDhLOEQ0M0NYMGxBQm9kWE5rQzBCMHdodjBXdTM0OTEtSlgxVHY2TEVUZW1icDlaWWQ5Z1VPVmFZdTFHWElkTEIyTEx5SU5iUEtFZEs2eVMxZTM1d3JhMzRnWk9CbnFVQXpYdFE3aWVJQkE2UVZTTHdyTEVjOGlwTnhtQ2RqTUVzOGZDYkRJRnItU3F6YkhId2lBazdNQTJlMWY2SHlZclNEV3FVU3Z5Z2o0dE10SkRQdXBXWksyQ2lmeFRCUnlwTWdRUVI0c2Y5c3pGRFlaUC1Tazdnc3lVWU5wRlFiS0RlSVRoMjhGUllNT1dsci1BWEd6aFo2Uk9EeVZXZHJhNmplRXp4ZWFlcTZQcmdJMVlnTHNkRjFUZmtuMFpjTjQycThuRndyUDNNSDNtVTNvX0xBYWNQdFN1TWRydlZsLVZ2SXdEYkU1QUEyc3RCV05mRUh0ck5mR3BTamJJeHFUc1FMMmItdGNjV2NrOU5OVmZDTEE5REh3dVU2Z1p3Wng2d3liMElZbHBTZnJtVGR1M1ZiVTd6NXVLd0tldXdfZk9yR0owbDlsNzlmVzlHcDl2Z09OOEJlLWJ2WXJuYmZPenVQX1VtQUhEZGpLajlGbHdzSmdfaFhLdEJ4Tk5SdTFmQ0c2bTFadmRaYldhdlFpUzk2VWlfdHFNeF83X2ljekVDUW9hRGVkUkV3VkFIcG5qSWtVT3dtbnRqZEpGbV9kU1dWZGtHNXc3bWFYS3AyaVpJOVJqSV9RcVZnYU53S01rM0F6RDIwZzEtNUluQ1FxaXM4M1V6LTlIS2gyTUljS3R0VlJ3RDJpTnhaWEFOc0VQamRuNXBLSzRQaUNmSHM2VFVYTm5JeWxXTTdxU3lQckNCVVJPVHpBd0J2bzBzT3hVTzNyRU00d1EyUzZWTXVZRW5ZYnRDWDJZdDVSd29VRlgwanpLMEsya1VUbHBDLUFYUEJNazZyYTVoWF9La3VjX0FNMEQ2TGp5UjBlVTEzZENjNkE5RTBLMUVESldaS3Y2R29pTzVLVHZMb2ExeldKSG1MTmZERHZJd2h0YkdNR2Q0NENxQTdlWlhzRVFVRGwzSFR1dk9nOVZBWjM4d29rNk9LOXAyVTVQTGVJc1hhS2RtMjJydHhTY2s0bFpEVFh0dzZPVzVmc2V0bG84bG51VTZ2ZFNsWHR3eDNHRHFYb1VKU1dWNXFzYzVYMkNyT1RleGlpNllzd3cya213Ri1TQVZGM3JrbjBQZDBaLWE5NldfYVlJMm9FUlJFRmpFUGRXaVkzdDlIUzJKb29tWDIwU1c0dGEtQlRqQ1N5alJ2NXM3ZHB0MThaRlB3T1gzVWhmbGZLMy11dVFFWkExWnpoOVIwT0puQnUzSE5fNVk0dDU3c0wzeWx1M0V5TkEtbFpfcnV5UHZfWnFxQk41QkpHMTdnTUVPOURxQjRJM3lxbjYwTzRiMGQzLWJla2FjMm5scWU0X1pjYXcxbjBxYTRLTHN0VGlSaWNuWUJRcGhnUkI4SXQtZUpoRWxnYVBhOTdqYlp5TDNHV2E2UDBGTkJzNFBWTExEUEthWUhkTmtTaWR2c3lPREVYbE9oVHE5TjNLcklORFBESEtxMThXTnh3cXprVlhyZTgzUWNFcGR6SHFUX2RCamcyd2QxRWhQMkJaZ0ZZWDROeTNLanNOUWRpUlpyeGFCSFV4NHZYcGNhaVp6M3A2YTNJS1h2bVNaUFktRkRFT1h6Sy0zY0htbWgxMG9PMU1iQ2xfYUM0VVQ0OEpFeDZfdC1iOHRHTWpKY2MzM3FCZFpQMjBRTWRDN2M0MXk3Mk1uc2I1SlFWNTJSVVVoQzlsWEIyZnlqQ2pWU3N6LUZWU2xOcXpkWFFaY1RkM3czZFZxS3NSUkliNnVtaHM3SXZOLWx2Y3kwXS0tPjwvZz48L3N2Zz4=",
"05-entity-relationship": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U3R5bGVUeXBlPSJ0ZXh0L2NzcyIgZGF0YS1kaWFncmFtLXR5cGU9IkNMQVNTIiBoZWlnaHQ9Ijc4MnB4IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBzdHlsZT0id2lkdGg6OTM5cHg7aGVpZ2h0Ojc4MnB4O2JhY2tncm91bmQ6I0ZGRkZGRjsiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDkzOSA3ODIiIHdpZHRoPSI5MzlweCIgem9vbUFuZFBhbj0ibWFnbmlmeSI+PHRpdGxlPlNpc3RlbWEgZGUgUmVnaXN0cm8gZGUgRXN0dWRpYW50ZXMgLSBEaWFncmFtYSBFbnRpZGFkLVJlbGFjaSYjMjQzO248L3RpdGxlPjxkZWZzLz48Zz48ZyBjbGFzcz0idGl0bGUiIGRhdGEtc291cmNlLWxpbmU9IjYiPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjIyIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4MDQuODE1NCIgeD0iNjIuODgzOCIgeT0iMzUuNDIwOSI+U2lzdGVtYSBkZSBSZWdpc3RybyBkZSBFc3R1ZGlhbnRlcyAtIERpYWdyYW1hIEVudGlkYWQtUmVsYWNpJiMyNDM7bjwvdGV4dD48L2c+PCEtLWNsYXNzIHVzZXJzLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9InVzZXJzIiBkYXRhLXNvdXJjZS1saW5lPSI4IiBkYXRhLXVpZD0iZW50MDAwMiIgaWQ9ImVudGl0eV91c2VycyI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxNzQuMzc1IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMjc0LjMxODQiIHg9IjEyIiB5PSI1OC42MDk0Ii8+PGVsbGlwc2UgY3g9IjEyNS44MDcxIiBjeT0iNzIuNjA5NCIgZmlsbD0iI0ZGRkZGRiIgcng9IjkiIHJ5PSI5IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTEyOS45MTY1LDc4LjYwOTQgTDEyMi4xOTc4LDc4LjYwOTQgTDEyMi4xOTc4LDY2LjIxODggTDEyOS45MTY1LDY2LjIxODggTDEyOS45MTY1LDY4LjM3NSBMMTI0LjY1MDksNjguMzc1IEwxMjQuNjUwOSw3MS4wNDY5IEwxMjkuNDE2NSw3MS4wNDY5IEwxMjkuNDE2NSw3My4yMDMxIEwxMjQuNjUwOSw3My4yMDMxIEwxMjQuNjUwOSw3Ni40NTMxIEwxMjkuOTE2NSw3Ni40NTMxIEwxMjkuOTE2NSw3OC42MDk0IFogIiBmaWxsPSIjMDAwMDAwIi8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMzkuMjA0MSIgeD0iMTQzLjMwNzEiIHk9Ijc3LjQ1NjEiPlVzZXJzPC90ZXh0PjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSIxMyIgeDI9IjI4NS4zMTg0IiB5MT0iODYuNjA5NCIgeTI9Ijg2LjYwOTQiLz48ZWxsaXBzZSBjeD0iMjMiIGN5PSIxMDAuMjU3OCIgZmlsbD0iI0ZGRkZGRiIgcng9IjMiIHJ5PSIzIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE1LjIzMDUiIHg9IjMwIiB5PSIxMDMuNjA0NSI+SWQ8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjYuNjIzIiB4PSI0OS42ODA3IiB5PSIxMDMuNjA0NSI+OiBpbnQgJiMxNzE7UEsmIzE4Nzs8L3RleHQ+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9IjEzIiB4Mj0iMjg1LjMxODQiIHkxPSIxMTAuOTA2MyIgeTI9IjExMC45MDYzIi8+PGVsbGlwc2UgY3g9IjIzIiBjeT0iMTI0LjU1NDciIGZpbGw9IiNGRkZGRkYiIHJ4PSIzIiByeT0iMyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjI0NS45NTciIHg9IjMwIiB5PSIxMjcuOTAxNCI+VXNlcm5hbWUgOiBudmFyY2hhcig1MCkgJiMxNzE7dW5pcXVlJiMxODc7PC90ZXh0PjxlbGxpcHNlIGN4PSIyMyIgY3k9IjE0MC44NTE2IiBmaWxsPSIjRkZGRkZGIiByeD0iMyIgcnk9IjMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyMTUuMjAyMSIgeD0iMzAiIHk9IjE0NC4xOTgyIj5QYXNzd29yZEhhc2ggOiBudmFyY2hhcigyNTUpPC90ZXh0PjxlbGxpcHNlIGN4PSIyMyIgY3k9IjE1Ny4xNDg0IiBmaWxsPSIjRkZGRkZGIiByeD0iMyIgcnk9IjMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyNTAuMzE4NCIgeD0iMzAiIHk9IjE2MC40OTUxIj5SZWNvdmVyeUNvZGVIYXNoIDogbnZhcmNoYXIoMjU1KTwvdGV4dD48ZWxsaXBzZSBjeD0iMjMiIGN5PSIxNzMuNDQ1MyIgZmlsbD0iI0ZGRkZGRiIgcng9IjMiIHJ5PSIzIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTM1LjU0OTgiIHg9IjMwIiB5PSIxNzYuNzkyIj5Sb2xlIDogbnZhcmNoYXIoMjApPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjIwMy4yMDUxIiB4PSIzMCIgeT0iMTkzLjA4ODkiPlN0dWRlbnRJZCA6IGludCAmIzE3MTtGSywgbnVsbGFibGUmIzE4Nzs8L3RleHQ+PGVsbGlwc2UgY3g9IjIzIiBjeT0iMjA2LjAzOTEiIGZpbGw9IiNGRkZGRkYiIHJ4PSIzIiByeT0iMyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE1Ni41MDIiIHg9IjMwIiB5PSIyMDkuMzg1NyI+Q3JlYXRlZEF0IDogZGF0ZXRpbWUyPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE2Ny45NjU4IiB4PSIzMCIgeT0iMjI1LjY4MjYiPkxhc3RMb2dpbkF0IDogZGF0ZXRpbWUyPC90ZXh0PjwvZz48IS0tY2xhc3Mgc3R1ZGVudHMtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0ic3R1ZGVudHMiIGRhdGEtc291cmNlLWxpbmU9IjIwIiBkYXRhLXVpZD0iZW50MDAwMyIgaWQ9ImVudGl0eV9zdHVkZW50cyI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxNTguMDc4MSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjI3OS4xMTA0IiB4PSIyMi42IiB5PSIyOTIuOTg5NCIvPjxlbGxpcHNlIGN4PSIxMjcuMjAyNSIgY3k9IjMwNi45ODk0IiBmaWxsPSIjRkZGRkZGIiByeD0iOSIgcnk9IjkiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNMTMxLjMxMTksMzEyLjk4OTQgTDEyMy41OTMyLDMxMi45ODk0IEwxMjMuNTkzMiwzMDAuNTk4OCBMMTMxLjMxMTksMzAwLjU5ODggTDEzMS4zMTE5LDMwMi43NTUgTDEyNi4wNDYzLDMwMi43NTUgTDEyNi4wNDYzLDMwNS40MjY5IEwxMzAuODExOSwzMDUuNDI2OSBMMTMwLjgxMTksMzA3LjU4MzEgTDEyNi4wNDYzLDMwNy41ODMxIEwxMjYuMDQ2MywzMTAuODMzMSBMMTMxLjMxMTksMzEwLjgzMzEgTDEzMS4zMTE5LDMxMi45ODk0IFogIiBmaWxsPSIjMDAwMDAwIi8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjIuNDA1MyIgeD0iMTQ0LjcwMjUiIHk9IjMxMS44MzYxIj5TdHVkZW50czwvdGV4dD48bGluZSBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iMjMuNiIgeDI9IjMwMC43MTA0IiB5MT0iMzIwLjk4OTQiIHkyPSIzMjAuOTg5NCIvPjxlbGxpcHNlIGN4PSIzMy42IiBjeT0iMzM0LjYzNzgiIGZpbGw9IiNGRkZGRkYiIHJ4PSIzIiByeT0iMyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNS4yMzA1IiB4PSI0MC42IiB5PSIzMzcuOTg0NSI+SWQ8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjYuNjIzIiB4PSI2MC4yODA3IiB5PSIzMzcuOTg0NSI+OiBpbnQgJiMxNzE7UEsmIzE4Nzs8L3RleHQ+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9IjIzLjYiIHgyPSIzMDAuNzEwNCIgeTE9IjM0NS4yODYzIiB5Mj0iMzQ1LjI4NjMiLz48ZWxsaXBzZSBjeD0iMzMuNiIgY3k9IjM1OC45MzQ3IiBmaWxsPSIjRkZGRkZGIiByeD0iMyIgcnk9IjMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNTQuOTYzOSIgeD0iNDAuNiIgeT0iMzYyLjI4MTQiPk5hbWUgOiBudmFyY2hhcigxMDApPC90ZXh0PjxlbGxpcHNlIGN4PSIzMy42IiBjeT0iMzc1LjIzMTYiIGZpbGw9IiNGRkZGRkYiIHJ4PSIzIiByeT0iMyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjIyMi4wOTI4IiB4PSI0MC42IiB5PSIzNzguNTc4MiI+RW1haWwgOiBudmFyY2hhcigyNTUpICYjMTcxO3VuaXF1ZSYjMTg3OzwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyNTUuMTEwNCIgeD0iNDAuNiIgeT0iMzk0Ljg3NTEiPkFjdGl2YXRpb25Db2RlSGFzaCA6IG52YXJjaGFyKDI1NSk8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMjIyLjY5NDMiIHg9IjQwLjYiIHk9IjQxMS4xNzIiPkFjdGl2YXRpb25FeHBpcmVzQXQgOiBkYXRldGltZTI8L3RleHQ+PGVsbGlwc2UgY3g9IjMzLjYiIGN5PSI0MjQuMTIyMiIgZmlsbD0iI0ZGRkZGRiIgcng9IjMiIHJ5PSIzIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTU2LjUwMiIgeD0iNDAuNiIgeT0iNDI3LjQ2ODkiPkNyZWF0ZWRBdCA6IGRhdGV0aW1lMjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNjAuMzc3OSIgeD0iNDAuNiIgeT0iNDQzLjc2NTciPlVwZGF0ZWRBdCA6IGRhdGV0aW1lMjwvdGV4dD48L2c+PCEtLWNsYXNzIHByb2Zlc3NvcnMtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0icHJvZmVzc29ycyIgZGF0YS1zb3VyY2UtbGluZT0iMzEiIGRhdGEtdWlkPSJlbnQwMDA0IiBpZD0iZW50aXR5X3Byb2Zlc3NvcnMiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNzYuNTkzOCIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE3OC45NjM5IiB4PSI1NjMuNjgiIHk9IjEwNy40OTk0Ii8+PGVsbGlwc2UgY3g9IjYxMy4xNTc1IiBjeT0iMTIxLjQ5OTQiIGZpbGw9IiNGRkZGRkYiIHJ4PSI5IiByeT0iOSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwYXRoIGQ9Ik02MTcuMjY2OSwxMjcuNDk5NCBMNjA5LjU0ODIsMTI3LjQ5OTQgTDYwOS41NDgyLDExNS4xMDg3IEw2MTcuMjY2OSwxMTUuMTA4NyBMNjE3LjI2NjksMTE3LjI2NSBMNjEyLjAwMTMsMTE3LjI2NSBMNjEyLjAwMTMsMTE5LjkzNjkgTDYxNi43NjY5LDExOS45MzY5IEw2MTYuNzY2OSwxMjIuMDkzMSBMNjEyLjAwMTMsMTIyLjA5MzEgTDYxMi4wMDEzLDEyNS4zNDMxIEw2MTcuMjY2OSwxMjUuMzQzMSBMNjE3LjI2NjksMTI3LjQ5OTQgWiAiIGZpbGw9IiMwMDAwMDAiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI3Mi41MDg4IiB4PSI2MzAuNjU3NSIgeT0iMTI2LjM0NjEiPlByb2Zlc3NvcnM8L3RleHQ+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9IjU2NC42OCIgeDI9Ijc0MS42NDM5IiB5MT0iMTM1LjQ5OTQiIHkyPSIxMzUuNDk5NCIvPjxlbGxpcHNlIGN4PSI1NzQuNjgiIGN5PSIxNDkuMTQ3OCIgZmlsbD0iI0ZGRkZGRiIgcng9IjMiIHJ5PSIzIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE1LjIzMDUiIHg9IjU4MS42OCIgeT0iMTUyLjQ5NDUiPklkPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjY2LjYyMyIgeD0iNjAxLjM2MDciIHk9IjE1Mi40OTQ1Ij46IGludCAmIzE3MTtQSyYjMTg3OzwvdGV4dD48bGluZSBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iNTY0LjY4IiB4Mj0iNzQxLjY0MzkiIHkxPSIxNTkuNzk2MyIgeTI9IjE1OS43OTYzIi8+PGVsbGlwc2UgY3g9IjU3NC42OCIgY3k9IjE3My40NDQ3IiBmaWxsPSIjRkZGRkZGIiByeD0iMyIgcnk9IjMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNTQuOTYzOSIgeD0iNTgxLjY4IiB5PSIxNzYuNzkxNCI+TmFtZSA6IG52YXJjaGFyKDEwMCk8L3RleHQ+PC9nPjwhLS1jbGFzcyBzdWJqZWN0cy0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJzdWJqZWN0cyIgZGF0YS1zb3VyY2UtbGluZT0iMzciIGRhdGEtdWlkPSJlbnQwMDA1IiBpZD0iZW50aXR5X3N1YmplY3RzIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjEwOS4xODc1IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTg1LjQ3MTciIHg9IjU1My40MiIgeT0iMzE3LjQyOTQiLz48ZWxsaXBzZSBjeD0iNjEyLjU5MDkiIGN5PSIzMzEuNDI5NCIgZmlsbD0iI0ZGRkZGRiIgcng9IjkiIHJ5PSI5IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTYxNi43MDAzLDMzNy40Mjk0IEw2MDguOTgxNSwzMzcuNDI5NCBMNjA4Ljk4MTUsMzI1LjAzODggTDYxNi43MDAzLDMyNS4wMzg4IEw2MTYuNzAwMywzMjcuMTk1IEw2MTEuNDM0NiwzMjcuMTk1IEw2MTEuNDM0NiwzMjkuODY2OSBMNjE2LjIwMDMsMzI5Ljg2NjkgTDYxNi4yMDAzLDMzMi4wMjMxIEw2MTEuNDM0NiwzMzIuMDIzMSBMNjExLjQzNDYsMzM1LjI3MzEgTDYxNi43MDAzLDMzNS4yNzMxIEw2MTYuNzAwMywzMzcuNDI5NCBaICIgZmlsbD0iIzAwMDAwMCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjU5LjYyOTkiIHg9IjYzMC4wOTA5IiB5PSIzMzYuMjc2MSI+U3ViamVjdHM8L3RleHQ+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9IjU1NC40MiIgeDI9IjczNy44OTE3IiB5MT0iMzQ1LjQyOTQiIHkyPSIzNDUuNDI5NCIvPjxlbGxpcHNlIGN4PSI1NjQuNDIiIGN5PSIzNTkuMDc3OCIgZmlsbD0iI0ZGRkZGRiIgcng9IjMiIHJ5PSIzIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE1LjIzMDUiIHg9IjU3MS40MiIgeT0iMzYyLjQyNDUiPklkPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjY2LjYyMyIgeD0iNTkxLjEwMDciIHk9IjM2Mi40MjQ1Ij46IGludCAmIzE3MTtQSyYjMTg3OzwvdGV4dD48bGluZSBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iNTU0LjQyIiB4Mj0iNzM3Ljg5MTciIHkxPSIzNjkuNzI2MyIgeTI9IjM2OS43MjYzIi8+PGVsbGlwc2UgY3g9IjU2NC40MiIgY3k9IjM4My4zNzQ3IiBmaWxsPSIjRkZGRkZGIiByeD0iMyIgcnk9IjMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNTQuOTYzOSIgeD0iNTcxLjQyIiB5PSIzODYuNzIxNCI+TmFtZSA6IG52YXJjaGFyKDEwMCk8L3RleHQ+PGVsbGlwc2UgY3g9IjU2NC40MiIgY3k9IjM5OS42NzE2IiBmaWxsPSIjRkZGRkZGIiByeD0iMyIgcnk9IjMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMjguOTI1OCIgeD0iNTcxLjQyIiB5PSI0MDMuMDE4MiI+Q3JlZGl0cyA6IGludCB7PSAzfTwvdGV4dD48ZWxsaXBzZSBjeD0iNTY0LjQyIiBjeT0iNDE1Ljk2ODQiIGZpbGw9IiNGRkZGRkYiIHJ4PSIzIiByeT0iMyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5MC43ODgxIiB4PSI1NzEuNDIiIHk9IjQxOS4zMTUxIj5Qcm9mZXNzb3JJZDwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI2Ni4yMzM0IiB4PSI2NjYuNjU4MyIgeT0iNDE5LjMxNTEiPjogaW50ICYjMTcxO0ZLJiMxODc7PC90ZXh0PjwvZz48IS0tY2xhc3MgZW5yb2xsbWVudHMtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iZW5yb2xsbWVudHMiIGRhdGEtc291cmNlLWxpbmU9IjQ1IiBkYXRhLXVpZD0iZW50MDAwNiIgaWQ9ImVudGl0eV9lbnJvbGxtZW50cyI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSIxMzMuNDg0NCIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjIzNC44OTI2IiB4PSIyODIuNzEiIHk9IjUxMS4wNTk0Ii8+PGVsbGlwc2UgY3g9IjM1NC41NDMiIGN5PSI1MjUuMDU5NCIgZmlsbD0iI0ZGRkZGRiIgcng9IjkiIHJ5PSI5IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTM1OC42NTI0LDUzMS4wNTk0IEwzNTAuOTMzNiw1MzEuMDU5NCBMMzUwLjkzMzYsNTE4LjY2ODggTDM1OC42NTI0LDUxOC42Njg4IEwzNTguNjUyNCw1MjAuODI1IEwzNTMuMzg2OCw1MjAuODI1IEwzNTMuMzg2OCw1MjMuNDk2OSBMMzU4LjE1MjQsNTIzLjQ5NjkgTDM1OC4xNTI0LDUyNS42NTMxIEwzNTMuMzg2OCw1MjUuNjUzMSBMMzUzLjM4NjgsNTI4LjkwMzEgTDM1OC42NTI0LDUyOC45MDMxIEwzNTguNjUyNCw1MzEuMDU5NCBaICIgZmlsbD0iIzAwMDAwMCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjgzLjcyNjYiIHg9IjM3Mi4wNDMiIHk9IjUyOS45MDYxIj5FbnJvbGxtZW50czwvdGV4dD48bGluZSBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iMjgzLjcxIiB4Mj0iNTE2LjYwMjYiIHkxPSI1MzkuMDU5NCIgeTI9IjUzOS4wNTk0Ii8+PGVsbGlwc2UgY3g9IjI5My43MSIgY3k9IjU1Mi43MDc4IiBmaWxsPSIjRkZGRkZGIiByeD0iMyIgcnk9IjMiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTUuMjMwNSIgeD0iMzAwLjcxIiB5PSI1NTYuMDU0NSI+SWQ8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjYuNjIzIiB4PSIzMjAuMzkwNyIgeT0iNTU2LjA1NDUiPjogaW50ICYjMTcxO1BLJiMxODc7PC90ZXh0PjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSIyODMuNzEiIHgyPSI1MTYuNjAyNiIgeTE9IjU2My4zNTYzIiB5Mj0iNTYzLjM1NjMiLz48ZWxsaXBzZSBjeD0iMjkzLjcxIiBjeT0iNTc3LjAwNDciIGZpbGw9IiNGRkZGRkYiIHJ4PSIzIiByeT0iMyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI3OC4xNDg0IiB4PSIzMDAuNzEiIHk9IjU4MC4zNTE0Ij5TdHVkZW50SWQ8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjYuMjMzNCIgeD0iMzgzLjMwODYiIHk9IjU4MC4zNTE0Ij46IGludCAmIzE3MTtGSyYjMTg3OzwvdGV4dD48ZWxsaXBzZSBjeD0iMjkzLjcxIiBjeT0iNTkzLjMwMTYiIGZpbGw9IiNGRkZGRkYiIHJ4PSIzIiByeT0iMyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI3NC41ODY5IiB4PSIzMDAuNzEiIHk9IjU5Ni42NDgyIj5TdWJqZWN0SWQ8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjYuMjMzNCIgeD0iMzc5Ljc0NzEiIHk9IjU5Ni42NDgyIj46IGludCAmIzE3MTtGSyYjMTg3OzwvdGV4dD48ZWxsaXBzZSBjeD0iMjkzLjcxIiBjeT0iNjA5LjU5ODQiIGZpbGw9IiNGRkZGRkYiIHJ4PSIzIiByeT0iMyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE1OC4xMDg0IiB4PSIzMDAuNzEiIHk9IjYxMi45NDUxIj5FbnJvbGxlZEF0IDogZGF0ZXRpbWUyPC90ZXh0PjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSIyODMuNzEiIHgyPSI1MTYuNjAyNiIgeTE9IjYyMC4yNDY5IiB5Mj0iNjIwLjI0NjkiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyMjIuODkyNiIgeD0iMjg4LjcxIiB5PSI2MzcuMjQyIj4mIzE3MTt1bmlxdWUmIzE4NzsgKFN0dWRlbnRJZCwgU3ViamVjdElkKTwvdGV4dD48L2c+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkdNTjExIiBkYXRhLXNvdXJjZS1saW5lPSI2MiIgZGF0YS11aWQ9ImVudDAwMTIiIGlkPSJlbnRpdHlfR01OMTEiPjxwYXRoIGQ9Ik0zMjEuNDksMTEwLjUyOTQgTDMyMS40OSwxNDIuMDc5NCBMMjg2Ljc1LDE0Ni4wNzk0IEwzMjEuNDksMTUwLjA3OTQgTDMyMS40OSwxODEuMDYwNiBBMCwwIDAgMCAwIDMyMS40OSwxODEuMDYwNiBMNTI4LjgyNTQsMTgxLjA2MDYgQTAsMCAwIDAgMCA1MjguODI1NCwxODEuMDYwNiBMNTI4LjgyNTQsMTIwLjUyOTQgTDUxOC44MjU0LDExMC41Mjk0IEwzMjEuNDksMTEwLjUyOTQgQTAsMCAwIDAgMCAzMjEuNDksMTEwLjUyOTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNNTE4LjgyNTQsMTEwLjUyOTQgTDUxOC44MjU0LDEyMC41Mjk0IEw1MjguODI1NCwxMjAuNTI5NCBMNTE4LjgyNTQsMTEwLjUyOTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTA2LjI5NzkiIHg9IjMyNy40OSIgeT0iMTI3LjU5NjMiPkF1dGVudGljYWNpJiMyNDM7bjo8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTg2LjMzNTQiIHg9IjMyNy40OSIgeT0iMTQyLjcyOTEiPi0gUGFzc3dvcmQ6IFBCS0RGMi1TSEEyNTY8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTUzLjgwMzciIHg9IjMyNy40OSIgeT0iMTU3Ljg2MTkiPi0gUm9sZXM6IEFkbWluLCBTdHVkZW50PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE3Ni4xNzI5IiB4PSIzMjcuNDkiIHk9IjE3Mi45OTQ3Ij4tIFJlY292ZXJ5IGNvZGUgcGFyYSByZXNldDwvdGV4dD48L2c+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkdNTjE0IiBkYXRhLXNvdXJjZS1saW5lPSI2OSIgZGF0YS11aWQ9ImVudDAwMTUiIGlkPSJlbnRpdHlfR01OMTQiPjxwYXRoIGQ9Ik0zMzYuNjYsMzM2Ljc1OTQgTDMzNi42NiwzNjguMDc5NCBMMzAxLjk4LDM3Mi4wNzk0IEwzMzYuNjYsMzc2LjA3OTQgTDMzNi42Niw0MDcuMjkwNiBBMCwwIDAgMCAwIDMzNi42Niw0MDcuMjkwNiBMNTExLjY1NDEsNDA3LjI5MDYgQTAsMCAwIDAgMCA1MTEuNjU0MSw0MDcuMjkwNiBMNTExLjY1NDEsMzQ2Ljc1OTQgTDUwMS42NTQxLDMzNi43NTk0IEwzMzYuNjYsMzM2Ljc1OTQgQTAsMCAwIDAgMCAzMzYuNjYsMzM2Ljc1OTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNNTAxLjY1NDEsMzM2Ljc1OTQgTDUwMS42NTQxLDM0Ni43NTk0IEw1MTEuNjU0MSwzNDYuNzU5NCBMNTAxLjY1NDEsMzM2Ljc1OTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTAzLjQ1NDEiIHg9IjM0Mi42NiIgeT0iMzUzLjgyNjMiPlJlc3RyaWNjaW9uZXM6PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijg0LjIxNDQiIHg9IjM0Mi42NiIgeT0iMzY4Ljk1OTEiPi0gRW1haWwgJiMyNTA7bmljbzwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNTMuOTk0MSIgeD0iMzQyLjY2IiB5PSIzODQuMDkxOSI+LSBNJiMyMjU7eGltbyAzIGVucm9sbG1lbnRzPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE0My4zMjM3IiB4PSIzNDIuNjYiIHk9IjM5OS4yMjQ3Ij4tIEFjdGl2YWNpJiMyNDM7biByZXF1ZXJpZGE8L3RleHQ+PC9nPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJHTU4xNyIgZGF0YS1zb3VyY2UtbGluZT0iNzYiIGRhdGEtdWlkPSJlbnQwMDE4IiBpZD0iZW50aXR5X0dNTjE3Ij48cGF0aCBkPSJNNzc0LjM1LDM0NC4zMjk0IEw3NzQuMzUsMzY4LjA3OTQgTDczOS4zNCwzNzIuMDc5NCBMNzc0LjM1LDM3Ni4wNzk0IEw3NzQuMzUsMzk5LjcyNzggQTAsMCAwIDAgMCA3NzQuMzUsMzk5LjcyNzggTDkyMy45NzI2LDM5OS43Mjc4IEEwLDAgMCAwIDAgOTIzLjk3MjYsMzk5LjcyNzggTDkyMy45NzI2LDM1NC4zMjk0IEw5MTMuOTcyNiwzNDQuMzI5NCBMNzc0LjM1LDM0NC4zMjk0IEEwLDAgMCAwIDAgNzc0LjM1LDM0NC4zMjk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTkxMy45NzI2LDM0NC4zMjk0IEw5MTMuOTcyNiwzNTQuMzI5NCBMOTIzLjk3MjYsMzU0LjMyOTQgTDkxMy45NzI2LDM0NC4zMjk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjExMi4yODM3IiB4PSI3ODAuMzUiIHk9IjM2MS4zOTYzIj5EYXRvcyBpbmljaWFsZXM6PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijc4LjA5NTIiIHg9Ijc4MC4zNSIgeT0iMzc2LjUyOTEiPjEwIG1hdGVyaWFzPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyOC42MjI2IiB4PSI3ODAuMzUiIHk9IjM5MS42NjE5Ij4zIGNyJiMyMzM7ZGl0b3MgY2FkYSB1bmE8L3RleHQ+PC9nPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJHTU4yMCIgZGF0YS1zb3VyY2UtbGluZT0iODIiIGRhdGEtdWlkPSJlbnQwMDIxIiBpZD0iZW50aXR5X0dNTjIwIj48cGF0aCBkPSJNNzc3LjczLDExOC4wOTk0IEw3NzcuNzMsMTQyLjA3OTQgTDc0Mi45NCwxNDYuMDc5NCBMNzc3LjczLDE1MC4wNzk0IEw3NzcuNzMsMTczLjQ5NzggQTAsMCAwIDAgMCA3NzcuNzMsMTczLjQ5NzggTDkzMi41ODMsMTczLjQ5NzggQTAsMCAwIDAgMCA5MzIuNTgzLDE3My40OTc4IEw5MzIuNTgzLDEyOC4wOTk0IEw5MjIuNTgzLDExOC4wOTk0IEw3NzcuNzMsMTE4LjA5OTQgQTAsMCAwIDAgMCA3NzcuNzMsMTE4LjA5OTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNOTIyLjU4MywxMTguMDk5NCBMOTIyLjU4MywxMjguMDk5NCBMOTMyLjU4MywxMjguMDk5NCBMOTIyLjU4MywxMTguMDk5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMTIuMjgzNyIgeD0iNzgzLjczIiB5PSIxMzUuMTY2MyI+RGF0b3MgaW5pY2lhbGVzOjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4MS4zNzA2IiB4PSI3ODMuNzMiIHk9IjE1MC4yOTkxIj41IHByb2Zlc29yZXM8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTMzLjg1MyIgeD0iNzgzLjczIiB5PSIxNjUuNDMxOSI+MiBtYXRlcmlhcyBjYWRhIHVubzwvdGV4dD48L2c+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkdNTjIzIiBkYXRhLXNvdXJjZS1saW5lPSI4OCIgZGF0YS11aWQ9ImVudDAwMjQiIGlkPSJlbnRpdHlfR01OMjMiPjxwYXRoIGQ9Ik0yODUuNTUsNzA0LjU0OTQgTDI4NS41NSw3NzUuMDgwNiBBMCwwIDAgMCAwIDI4NS41NSw3NzUuMDgwNiBMNTE0Ljc1OTUsNzc1LjA4MDYgQTAsMCAwIDAgMCA1MTQuNzU5NSw3NzUuMDgwNiBMNTE0Ljc1OTUsNzE0LjU0OTQgTDUwNC43NTk1LDcwNC41NDk0IEw0MDQuMTYsNzA0LjU0OTQgTDQwMC4xNiw2NDQuNjM5NCBMMzk2LjE2LDcwNC41NDk0IEwyODUuNTUsNzA0LjU0OTQgQTAsMCAwIDAgMCAyODUuNTUsNzA0LjU0OTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNNTA0Ljc1OTUsNzA0LjU0OTQgTDUwNC43NTk1LDcxNC41NDk0IEw1MTQuNzU5NSw3MTQuNTQ5NCBMNTA0Ljc1OTUsNzA0LjU0OTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTM4Ljg3NCIgeD0iMjkxLjU1IiB5PSI3MjEuNjE2MyI+UmVnbGFzIGRlIG5lZ29jaW86PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE5MC40OTk1IiB4PSIyOTEuNTUiIHk9IjczNi43NDkxIj4tIChTdHVkZW50SWQsIFN1YmplY3RJZCkgJiMyNTA7bmljbzwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxODIuMzE3NCIgeD0iMjkxLjU1IiB5PSI3NTEuODgxOSI+LSBFc3R1ZGlhbnRlIG5vIHB1ZWRlIHRlbmVyPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE5OS45NDQ4IiB4PSIyOTkuODE0NiIgeT0iNzY3LjAxNDciPjIgbWF0ZXJpYXMgZGVsIG1pc21vIHByb2Zlc29yPC90ZXh0PjwvZz48IS0tbGluayB1c2VycyB0byBzdHVkZW50cy0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJ1c2VycyIgZGF0YS1lbnRpdHktMj0ic3R1ZGVudHMiIGRhdGEtc291cmNlLWxpbmU9IjU2IiBkYXRhLXVpZD0ibG5rNyIgaWQ9ImxpbmtfdXNlcnNfc3R1ZGVudHMiPjxwYXRoIGNvZGVMaW5lPSI1NiIgZD0iTTE1NC40NiwyNDEuMjU5NCBDMTU0LjQ2LDI2MC43Nzk0IDE1NC40NiwyNTguMzc5NCAxNTQuNDYsMjc3LjU1OTQiIGZpbGw9Im5vbmUiIGlkPSJ1c2Vycy1zdHVkZW50cyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHgxPSIxNTAuNDYiIHgyPSIxNTguNDYiIHkxPSIyMzcuMjU5NCIgeTI9IjIzNy4yNTk0Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgeDE9IjE1MC40NiIgeDI9IjE1OC40NiIgeTE9IjI0MC4yNTk0IiB5Mj0iMjQwLjI1OTQiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iMTU0LjQ2IiB4Mj0iMTU0LjQ2IiB5MT0iMjQxLjI1OTQiIHkyPSIyMzMuMjU5NCIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHgxPSIxNTQuNDYiIHgyPSIxNTQuNDYiIHkxPSIyODEuNTU5NCIgeTI9IjI5Mi41NTk0Ii8+PGVsbGlwc2UgY3g9IjE1NC40NiIgY3k9IjI4MS41NTk0IiBmaWxsPSJub25lIiByeD0iNCIgcnk9IjQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iMTU4LjQ2IiB4Mj0iMTUwLjQ2IiB5MT0iMjg4LjU1OTQiIHkyPSIyODguNTU5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijc0LjgxMzUiIHg9Ijc5LjQ2IiB5PSIyNTguOTc2MyI+dmluY3VsYWRvIGE8L3RleHQ+PC9nPjwhLS1saW5rIHN0dWRlbnRzIHRvIGVucm9sbG1lbnRzLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9InN0dWRlbnRzIiBkYXRhLWVudGl0eS0yPSJlbnJvbGxtZW50cyIgZGF0YS1zb3VyY2UtbGluZT0iNTciIGRhdGEtdWlkPSJsbms4IiBpZD0ibGlua19zdHVkZW50c19lbnJvbGxtZW50cyI+PHBhdGggY29kZUxpbmU9IjU3IiBkPSJNMjkyLjIxLDQ1OS4yODk0IEMyOTIuMjEsNDc4Ljg3OTQgMjkyLjIxLDQ3My42Njk0IDI5Mi4yMSw0OTIuNjE5NCIgZmlsbD0ibm9uZSIgaWQ9InN0dWRlbnRzLWVucm9sbG1lbnRzIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgeDE9IjI4OC4yMSIgeDI9IjI5Ni4yMSIgeTE9IjQ1NS4yODk0IiB5Mj0iNDU1LjI4OTQiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iMjg4LjIxIiB4Mj0iMjk2LjIxIiB5MT0iNDU4LjI4OTQiIHkyPSI0NTguMjg5NCIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHgxPSIyOTIuMjEiIHgyPSIyOTIuMjEiIHkxPSI0NTkuMjg5NCIgeTI9IjQ1MS4yODk0Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgeDE9IjI5Mi4yMSIgeDI9IjI5OC4yMSIgeTE9IjUwMi42MTk0IiB5Mj0iNTEwLjYxOTQiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iMjkyLjIxIiB4Mj0iMjg2LjIxIiB5MT0iNTAyLjYxOTQiIHkyPSI1MTAuNjE5NCIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHgxPSIyOTIuMjEiIHgyPSIyOTIuMjEiIHkxPSI1MDIuNjE5NCIgeTI9IjUxMC42MTk0Ii8+PGVsbGlwc2UgY3g9IjI5Mi4yMSIgY3k9IjQ5Ni42MTk0IiBmaWxsPSJub25lIiByeD0iNCIgcnk9IjQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIzMi45NDQzIiB4PSIyNTkuMjEiIHk9IjQ3Ny4wMjYzIj50aWVuZTwvdGV4dD48L2c+PCEtLWxpbmsgc3ViamVjdHMgdG8gZW5yb2xsbWVudHMtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0ic3ViamVjdHMiIGRhdGEtZW50aXR5LTI9ImVucm9sbG1lbnRzIiBkYXRhLXNvdXJjZS1saW5lPSI1OCIgZGF0YS11aWQ9ImxuazkiIGlkPSJsaW5rX3N1YmplY3RzX2Vucm9sbG1lbnRzIj48cGF0aCBjb2RlTGluZT0iNTgiIGQ9Ik01NDQuOTgsNDE3LjA3OTQgQzQ4NC4yMiw0MTcuMDc5NCA0MjQuMTYsNDE3LjA3OTQgNDI0LjE2LDQxNy4wNzk0IEM0MjQuMTYsNDE3LjA3OTQgNDI0LjE2LDQ0OC41Mjk0IDQyNC4xNiw0OTIuNTc5NCIgZmlsbD0ibm9uZSIgaWQ9InN1YmplY3RzLWVucm9sbG1lbnRzIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgeDE9IjU0OC45OCIgeDI9IjU0OC45OCIgeTE9IjQxMy4wNzk0IiB5Mj0iNDIxLjA3OTQiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iNTQ1Ljk4IiB4Mj0iNTQ1Ljk4IiB5MT0iNDEzLjA3OTQiIHkyPSI0MjEuMDc5NCIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHgxPSI1NDQuOTgiIHgyPSI1NTIuOTgiIHkxPSI0MTcuMDc5NCIgeTI9IjQxNy4wNzk0Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgeDE9IjQyNC4xNiIgeDI9IjQzMC4xNiIgeTE9IjUwMi41Nzk0IiB5Mj0iNTEwLjU3OTQiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iNDI0LjE2IiB4Mj0iNDE4LjE2IiB5MT0iNTAyLjU3OTQiIHkyPSI1MTAuNTc5NCIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHgxPSI0MjQuMTYiIHgyPSI0MjQuMTYiIHkxPSI1MDIuNTc5NCIgeTI9IjUxMC41Nzk0Ii8+PGVsbGlwc2UgY3g9IjQyNC4xNiIgY3k9IjQ5Ni41Nzk0IiBmaWxsPSJub25lIiByeD0iNCIgcnk9IjQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4NC43MDMxIiB4PSIzNTYuODIiIHk9IjQzMC4xNDYzIj5pbnNjcmlwY2lvbmVzPC90ZXh0PjwvZz48IS0tbGluayBwcm9mZXNzb3JzIHRvIHN1YmplY3RzLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9InByb2Zlc3NvcnMiIGRhdGEtZW50aXR5LTI9InN1YmplY3RzIiBkYXRhLXNvdXJjZS1saW5lPSI1OSIgZGF0YS11aWQ9ImxuazEwIiBpZD0ibGlua19wcm9mZXNzb3JzX3N1YmplY3RzIj48cGF0aCBjb2RlTGluZT0iNTkiIGQ9Ik02NTEuMjksMTkyLjQyOTQgQzY1MS4yOSwyMjguODk5NCA2NTEuMjksMjY3Ljk2OTQgNjUxLjI5LDMwOS4wMTk0IiBmaWxsPSJub25lIiBpZD0icHJvZmVzc29ycy1zdWJqZWN0cyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHgxPSI2NDcuMjkiIHgyPSI2NTUuMjkiIHkxPSIxODguNDI5NCIgeTI9IjE4OC40Mjk0Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgeDE9IjY0Ny4yOSIgeDI9IjY1NS4yOSIgeTE9IjE5MS40Mjk0IiB5Mj0iMTkxLjQyOTQiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iNjUxLjI5IiB4Mj0iNjUxLjI5IiB5MT0iMTkyLjQyOTQiIHkyPSIxODQuNDI5NCIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHgxPSI2NTUuMjkiIHgyPSI2NDcuMjkiIHkxPSIzMTMuMDE5NCIgeTI9IjMxMy4wMTk0Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgeDE9IjY1NS4yOSIgeDI9IjY0Ny4yOSIgeTE9IjMxMC4wMTk0IiB5Mj0iMzEwLjAxOTQiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iNjUxLjI5IiB4Mj0iNjUxLjI5IiB5MT0iMzA5LjAxOTQiIHkyPSIzMTcuMDE5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjYzLjMzNjkiIHg9IjU4Ny4yOSIgeT0iMjQ2Ljc5NjMiPmltcGFydGUgMjwvdGV4dD48L2c+PCEtLVNSQz1baExOMUtqaW00QnR4QXhSZmVVMzFxbjJRamNHZUNtNklXTzVzQ2M3dTBDTFE0WExQSVlLdlhJNXlKOHl6enpQaFZnbmhveDZURDZJT1FOc0lsQ194elpzanJnX1MxMUU0Z01IMjFWUEVnMmFwQjA0ZjVCZzdBTzhzUmc5aFdMV29RcXpPVjNTc0ViTnlMNGpqdTdOX09fLW10X3FCZldyN0txM1U3UlFSeEd6MXU4SUoyRFYyRWFtT1M4R1haY2JaVEJSa01QVG9tUEgzMm42UzJKUWNQMG53b1dkRVUzSDRvTUFuLUFNMjBFY0xVdTM2WktMWjZ5MGlmRGFBN1dFVzl1R21sRTFYMjFxR29pN0hxVTNvLTNZRkg1NDFvM3ZLWkFIdEdDc09ZSVZDeEJJUmt1SERiVllNT2U0Rk9LMUFsZkVJU3NPZFROMmh0VHVqODRFQ3pHcERtd2RjazBzY3ZHZlRnLWFaMERTYWNuSFR5QkJXX2tLVWc1SEFEZjlMQVFTNmNLRlVUR0paajc4WW1MUUh1ZWZQVHdON0dncjVkb2dsMlhQbGJvcXNCdFZpb3ZmUi15dGNLYmFsT0tBa2dyd3Q0ZzBSRXA1WkpjWXJyUWF3aTdTXzVHUmoxaWRSeFJZUHlXc25jWGEzZXNfSE1icnFweEpTX2dDWFRSX0pxTFVDYnR1TmNfX1lEb2RkV2RCdlpueV9tUzVKY1JLS2pmQS1kd01sclRQSkhha1BiRXMwclZ4YjVPUFhzUlpoTDJOMG90dUV1Q2xPVThPNUl6TDRpNUVveEs2UER0VnkzVlpIZTFOUW0wLTItSm9BekJuZ3ltdXFQYUI1Z01IUzBzaTRQSTA3Rmd1T0c1V2RLMjZYYmdVczZJTUtaT3NPVWs5Nks2a1kzMy1WTHdVVVdIRVFaR3dYckdXMmZNYlhuN1pZR0Rfd3FLTGdacVI3dFRIYkhuSnhFVFN2VVpsQWg4aEFBVEkxbVNkYk1SeUxOUHp0TS10dFVJb1JBeE8zTlB1OGpSVVM5SnZJMzJROHdSdjFEZmcxQlhDd1FXQ0VNR3RoYkluVHlTS0NhR1FwWUJzeWdYUF9zblVfYk9Ycl9rQnB1aVV6STNHU3JGdDk4X3VZdnJnOGNPeEhxMjFfZGhybW94RVZDUVNqak9vODFQQ0xfdHVKNGNlSzhyWTZFdTNPQjd4SVBJMWVwM1kzTDNzVmxwZ1ZoR3BqMGdaOUF6Z3NJaHViV3J2ZDY2ZGRUOTlIaDFnR1VwWWNWczdzU3JDdXJjSGJ2VUZjVmd1Uk1fcUZZR3NjQUw4UXdXeXEtVE1lNVNQSEdZOGlkUzZvekFoNEZtMDBdLS0+PC9nPjwvc3ZnPg==",
"06-state-enrollment": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U3R5bGVUeXBlPSJ0ZXh0L2NzcyIgZGF0YS1kaWFncmFtLXR5cGU9IlNUQVRFIiBoZWlnaHQ9IjgxNnB4IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBzdHlsZT0id2lkdGg6MTQ2MnB4O2hlaWdodDo4MTZweDtiYWNrZ3JvdW5kOiNGRkZGRkY7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNDYyIDgxNiIgd2lkdGg9IjE0NjJweCIgem9vbUFuZFBhbj0ibWFnbmlmeSI+PHRpdGxlPkVzdGFkb3MgZGVsIEVzdHVkaWFudGUgeSBzdXMgSW5zY3JpcGNpb25lczwvdGl0bGU+PGRlZnMvPjxnPjxnIGNsYXNzPSJ0aXRsZSIgZGF0YS1zb3VyY2UtbGluZT0iNSI+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMjIiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjUyNy4xNzI5IiB4PSI0NjMuMTA3OSIgeT0iMzUuNDIwOSI+RXN0YWRvcyBkZWwgRXN0dWRpYW50ZSB5IHN1cyBJbnNjcmlwY2lvbmVzPC90ZXh0PjwvZz48IS0tY2x1c3RlciBjdWVudGEtLT48ZyBjbGFzcz0iY2x1c3RlciIgZGF0YS1lbnRpdHk9ImN1ZW50YSIgZGF0YS1zb3VyY2UtbGluZT0iOSIgZGF0YS11aWQ9ImVudDAwMDIiIGlkPSJjbHVzdGVyX2N1ZW50YSI+PHBhdGggZD0iTTc0MS4wOCwxNjQuNzU5NCBMMTA3Ny4wOCwxNjQuNzU5NCBBMTIuNSwxMi41IDAgMCAxIDEwODkuNTgsMTc3LjI1OTQgTDEwODkuNTgsMTg2LjA1NjIgTDcyOC41OCwxODYuMDU2MiBMNzI4LjU4LDE3Ny4yNTk0IEExMi41LDEyLjUgMCAwIDEgNzQxLjA4LDE2NC43NTk0IiBmaWxsPSIjRjhGOUZBIi8+PHBhdGggZD0iTTcyOC41OCwxODYuMDU2MiBMMTA4OS41OCwxODYuMDU2MiBMMTA4OS41OCw0NDcuNDQ5NCBBMTIuNSwxMi41IDAgMCAxIDEwNzcuMDgsNDU5Ljk0OTQgTDc0MS4wOCw0NTkuOTQ5NCBBMTIuNSwxMi41IDAgMCAxIDcyOC41OCw0NDcuNDQ5NCBMNzI4LjU4LDE4Ni4wNTYyIiBmaWxsPSIjRkZGRkZGIi8+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyOTUuMTkiIHJ4PSIxMi41IiByeT0iMTIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjM2MSIgeD0iNzI4LjU4IiB5PSIxNjQuNzU5NCIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSI3MjguNTgiIHgyPSIxMDg5LjU4IiB5MT0iMTg2LjA1NjIiIHkyPSIxODYuMDU2MiIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjUwLjIwMzEiIHg9Ijg4My45Nzg0IiB5PSIxODEuNzU0NSI+Q3VlbnRhPC90ZXh0PjwvZz48IS0tY2x1c3RlciBpbnNjcmlwY2lvbmVzLS0+PGcgY2xhc3M9ImNsdXN0ZXIiIGRhdGEtZW50aXR5PSJpbnNjcmlwY2lvbmVzIiBkYXRhLXNvdXJjZS1saW5lPSIxNyIgZGF0YS11aWQ9ImVudDAwMDUiIGlkPSJjbHVzdGVyX2luc2NyaXBjaW9uZXMiPjxwYXRoIGQ9Ik0yOTkuMDgsMTQwLjYwOTQgTDY5Mi4wOCwxNDAuNjA5NCBBMTIuNSwxMi41IDAgMCAxIDcwNC41OCwxNTMuMTA5NCBMNzA0LjU4LDE2MS45MDYzIEwyODYuNTgsMTYxLjkwNjMgTDI4Ni41OCwxNTMuMTA5NCBBMTIuNSwxMi41IDAgMCAxIDI5OS4wOCwxNDAuNjA5NCIgZmlsbD0iI0Y4RjlGQSIvPjxwYXRoIGQ9Ik0yODYuNTgsMTYxLjkwNjMgTDcwNC41OCwxNjEuOTA2MyBMNzA0LjU4LDY2My4xODk0IEExMi41LDEyLjUgMCAwIDEgNjkyLjA4LDY3NS42ODk0IEwyOTkuMDgsNjc1LjY4OTQgQTEyLjUsMTIuNSAwIDAgMSAyODYuNTgsNjYzLjE4OTQgTDI4Ni41OCwxNjEuOTA2MyIgZmlsbD0iI0ZGRkZGRiIvPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iNTM1LjA4IiByeD0iMTIuNSIgcnk9IjEyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0MTgiIHg9IjI4Ni41OCIgeT0iMTQwLjYwOTQiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iMjg2LjU4IiB4Mj0iNzA0LjU4IiB5MT0iMTYxLjkwNjMiIHkyPSIxNjEuOTA2MyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjkxLjQ1OCIgeD0iNDQ5Ljg1MSIgeT0iMTU3LjYwNDUiPkluc2NyaXBjaW9uZXM8L3RleHQ+PC9nPjxnIGlkPSJjdWVudGEuUmVnaXN0cmFkbyI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI1Mi41OTM4IiByeD0iMTIuNSIgcnk9IjEyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNzguMjEwOSIgeD0iNzQ0LjQ4IiB5PSIxOTkuNzU5NCIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSI3NDQuNDgiIHgyPSI5MjIuNjkwOSIgeTE9IjI0Mi4zNTMxIiB5Mj0iMjQyLjM1MzEiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI3NS42ODc1IiB4PSI3NTQuNDgiIHk9IjIxNy43NTQ1Ij5SZWdpc3RyYWRvPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE1OC4yMTA5IiB4PSI3NTQuNDgiIHk9IjIzNC4wNTE0Ij4oUGVuZGllbnRlIEFjdGl2YWNpJiMyNDM7bik8L3RleHQ+PC9nPjxnIGlkPSJjdWVudGEuQWN0aXZvIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjUwIiByeD0iMTIuNSIgcnk9IjEyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI2My41MDM5IiB4PSI3NTkuODMiIHk9IjM5My45NDk0Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9Ijc1OS44MyIgeDI9IjgyMy4zMzM5IiB5MT0iNDIwLjI0NjMiIHkyPSI0MjAuMjQ2MyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjQzLjUwMzkiIHg9Ijc2OS44MyIgeT0iNDExLjk0NDUiPkFjdGl2bzwvdGV4dD48L2c+PHBhdGggZD0iTTQ0OC44MSw1NjEuMzg5NCBMNTM0LjM1ODgsNTYxLjM4OTQgQTEyLjUsMTIuNSAwIDAgMSA1NDYuODU4OCw1NzMuODg5NCBMNTQ2Ljg1ODgsNTg3LjY4NjMgTDQzNi4zMSw1ODcuNjg2MyBMNDM2LjMxLDU3My44ODk0IEExMi41LDEyLjUgMCAwIDEgNDQ4LjgxLDU2MS4zODk0IiBmaWxsPSIjRjhGOUZBIi8+PHBhdGggZD0iTTQzNi4zMSw1ODcuNjg2MyBMNTQ2Ljg1ODgsNTg3LjY4NjMgTDU0Ni44NTg4LDY0Ny4xODYzIEExMi41LDEyLjUgMCAwIDEgNTM0LjM1ODgsNjU5LjY4NjMgTDQ0OC44MSw2NTkuNjg2MyBBMTIuNSwxMi41IDAgMCAxIDQzNi4zMSw2NDcuMTg2MyBMNDM2LjMxLDU4Ny42ODYzIiBmaWxsPSIjRkZGRkZGIi8+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSI5OC4yOTY5IiByeD0iMTIuNSIgcnk9IjEyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMTAuNTQ4OCIgeD0iNDM2LjMxIiB5PSI1NjEuMzg5NCIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSI0MzYuMzEiIHgyPSI1NDYuODU4OCIgeTE9IjU4Ny42ODYzIiB5Mj0iNTg3LjY4NjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4Ni4zNzg5IiB4PSI0NDguMzk1IiB5PSI1NzkuMzg0NSI+U2luIE1hdGVyaWFzPC90ZXh0PjxnIGlkPSJpbnNjcmlwY2lvbmVzLlNpbk1hdGVyaWFzLmNyZWQwIj48cmVjdCBmaWxsPSIjRjhGOUZBIiBoZWlnaHQ9IjUwIiByeD0iMTIuNSIgcnk9IjEyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI4OS41NDg4IiB4PSI0NDguMzEiIHk9IjU5OS42ODYzIi8+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9IjQ0OC4zMSIgeDI9IjUzNy44NTg4IiB5MT0iNjI1Ljk4MzEiIHkyPSI2MjUuOTgzMSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjY5LjU0ODgiIHg9IjQ1OC4zMSIgeT0iNjE3LjY4MTQiPjAgY3ImIzIzMztkaXRvczwvdGV4dD48L2c+PHBhdGggZD0iTTMxNS4zNSwzNjguNDk5NCBMNTMzLjgxOTEsMzY4LjQ5OTQgQTEyLjUsMTIuNSAwIDAgMSA1NDYuMzE5MSwzODAuOTk5NCBMNTQ2LjMxOTEsMzk0Ljc5NjMgTDMwMi44NSwzOTQuNzk2MyBMMzAyLjg1LDM4MC45OTk0IEExMi41LDEyLjUgMCAwIDEgMzE1LjM1LDM2OC40OTk0IiBmaWxsPSIjRjhGOUZBIi8+PHBhdGggZD0iTTMwMi44NSwzOTQuNzk2MyBMNTQ2LjMxOTEsMzk0Ljc5NjMgTDU0Ni4zMTkxLDQ1Ni44OSBBMTIuNSwxMi41IDAgMCAxIDUzMy44MTkxLDQ2OS4zOSBMMzE1LjM1LDQ2OS4zOSBBMTIuNSwxMi41IDAgMCAxIDMwMi44NSw0NTYuODkgTDMwMi44NSwzOTQuNzk2MyIgZmlsbD0iI0ZGRkZGRiIvPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMTAwLjg5MDYiIHJ4PSIxMi41IiByeT0iMTIuNSIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjI0My40NjkxIiB4PSIzMDIuODUiIHk9IjM2OC40OTk0Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9IjMwMi44NSIgeDI9IjU0Ni4zMTkxIiB5MT0iMzk0Ljc5NjMiIHkyPSIzOTQuNzk2MyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyNi44MzQiIHg9IjM2MS4xNjc2IiB5PSIzODYuNDk0NSI+SW5zY3JpcGNpJiMyNDM7biBQYXJjaWFsPC90ZXh0PjxnIGlkPSJpbnNjcmlwY2lvbmVzLlBhcmNpYWwuY3JlZDMiPjxyZWN0IGZpbGw9IiNGOEY5RkEiIGhlaWdodD0iNTIuNTkzOCIgcng9IjEyLjUiIHJ5PSIxMi41IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iOTguODI1MiIgeD0iMzE0Ljg1IiB5PSI0MDYuNzk2MyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSIzMTQuODUiIHgyPSI0MTMuNjc1MiIgeTE9IjQ0OS4zOSIgeTI9IjQ0OS4zOSIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjY5LjU0ODgiIHg9IjMyNC44NSIgeT0iNDI0Ljc5MTQiPjMgY3ImIzIzMztkaXRvczwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI3OC44MjUyIiB4PSIzMjQuODUiIHk9IjQ0MS4wODgyIj4oMSBtYXRlcmlhKTwvdGV4dD48L2c+PGcgaWQ9Imluc2NyaXBjaW9uZXMuUGFyY2lhbC5jcmVkNiI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI1Mi41OTM4IiByeD0iMTIuNSIgcnk9IjEyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMDYuMTE5MSIgeD0iNDMxLjIiIHk9IjQwNi43OTYzIi8+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9IjQzMS4yIiB4Mj0iNTM3LjMxOTEiIHkxPSI0NDkuMzkiIHkyPSI0NDkuMzkiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI2OS41NDg4IiB4PSI0NDEuMiIgeT0iNDI0Ljc5MTQiPjYgY3ImIzIzMztkaXRvczwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4Ni4xMTkxIiB4PSI0NDEuMiIgeT0iNDQxLjA4ODIiPigyIG1hdGVyaWFzKTwvdGV4dD48L2c+PHBhdGggZD0iTTUwMy4zNiwxNzUuNjA5NCBMNjQ1Ljc5NzUsMTc1LjYwOTQgQTEyLjUsMTIuNSAwIDAgMSA2NTguMjk3NSwxODguMTA5NCBMNjU4LjI5NzUsMjAxLjkwNjMgTDQ5MC44NiwyMDEuOTA2MyBMNDkwLjg2LDE4OC4xMDk0IEExMi41LDEyLjUgMCAwIDEgNTAzLjM2LDE3NS42MDk0IiBmaWxsPSIjRjhGOUZBIi8+PHBhdGggZD0iTTQ5MC44NiwyMDEuOTA2MyBMNjU4LjI5NzUsMjAxLjkwNjMgTDY1OC4yOTc1LDI2NCBBMTIuNSwxMi41IDAgMCAxIDY0NS43OTc1LDI3Ni41IEw1MDMuMzYsMjc2LjUgQTEyLjUsMTIuNSAwIDAgMSA0OTAuODYsMjY0IEw0OTAuODYsMjAxLjkwNjMiIGZpbGw9IiNGRkZGRkYiLz48cmVjdCBmaWxsPSJub25lIiBoZWlnaHQ9IjEwMC44OTA2IiByeD0iMTIuNSIgcnk9IjEyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNjcuNDM3NSIgeD0iNDkwLjg2IiB5PSIxNzUuNjA5NCIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSI0OTAuODYiIHgyPSI2NTguMjk3NSIgeTE9IjIwMS45MDYzIiB5Mj0iMjAxLjkwNjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNDcuNDM3NSIgeD0iNTAwLjg2IiB5PSIxOTMuNjA0NSI+SW5zY3JpcGNpJiMyNDM7biBDb21wbGV0YTwvdGV4dD48ZyBpZD0iaW5zY3JpcGNpb25lcy5Db21wbGV0YS5jcmVkOSI+PHJlY3QgZmlsbD0iI0Y4RjlGQSIgaGVpZ2h0PSI1Mi41OTM4IiByeD0iMTIuNSIgcnk9IjEyLjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMDYuMTE5MSIgeD0iNTAyLjg2IiB5PSIyMTMuOTA2MyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSI1MDIuODYiIHgyPSI2MDguOTc5MSIgeTE9IjI1Ni41IiB5Mj0iMjU2LjUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI2OS41NDg4IiB4PSI1MTIuODYiIHk9IjIzMS45MDE0Ij45IGNyJiMyMzM7ZGl0b3M8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODYuMTE5MSIgeD0iNTEyLjg2IiB5PSIyNDguMTk4MiI+KDMgbWF0ZXJpYXMpPC90ZXh0PjwvZz48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0idmFsaWRhY2lvbiIgZGF0YS11aWQ9ImVudDAwMTMiIGlkPSJlbnRpdHlfdmFsaWRhY2lvbiI+PHBvbHlnb24gZmlsbD0iI0ZGRkZGRiIgcG9pbnRzPSIyMDIuNTgsNTk4LjUzOTQsMjE0LjU4LDYxMC41Mzk0LDIwMi41OCw2MjIuNTM5NCwxOTAuNTgsNjEwLjUzOTQsMjAyLjU4LDU5OC41Mzk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PC9nPjxlbGxpcHNlIGN4PSI4MzMuNTgiIGN5PSI2Ny42MDk0IiBmaWxsPSIjRkZGRkZGIiByeD0iMTAiIHJ5PSIxMCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxlbGxpcHNlIGN4PSIxNDAuNTgiIGN5PSI3ODEuMzg5NCIgZmlsbD0ibm9uZSIgcng9IjExIiByeT0iMTEiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48ZWxsaXBzZSBjeD0iMTQwLjU4IiBjeT0iNzgxLjM4OTQiIGZpbGw9IiNGRkZGRkYiIHJ4PSI2IiByeT0iNiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJHTU4yIiBkYXRhLXNvdXJjZS1saW5lPSI0OSIgZGF0YS11aWQ9ImVudDAwMDMiIGlkPSJlbnRpdHlfR01OMiI+PHBhdGggZD0iTTExMDguNzQsMTk4LjM1OTQgTDExMDguNzQsMjIyLjA1OTQgTDkyMy4xMywyMjYuMDU5NCBMMTEwOC43NCwyMzAuMDU5NCBMMTEwOC43NCwyNTMuNzU3OCBBMCwwIDAgMCAwIDExMDguNzQsMjUzLjc1NzggTDEyODAuNDIwNywyNTMuNzU3OCBBMCwwIDAgMCAwIDEyODAuNDIwNywyNTMuNzU3OCBMMTI4MC40MjA3LDIwOC4zNTk0IEwxMjcwLjQyMDcsMTk4LjM1OTQgTDExMDguNzQsMTk4LjM1OTQgQTAsMCAwIDAgMCAxMTA4Ljc0LDE5OC4zNTk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTEyNzAuNDIwNywxOTguMzU5NCBMMTI3MC40MjA3LDIwOC4zNTk0IEwxMjgwLjQyMDcsMjA4LjM1OTQgTDEyNzAuNDIwNywxOTguMzU5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyOS43MTQ0IiB4PSIxMTE0Ljc0IiB5PSIyMTUuNDI2MyI+RWwgZXN0dWRpYW50ZSByZWNpYmU8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTM0LjExOTYiIHg9IjExMTQuNzQiIHk9IjIzMC41NTkxIj5jJiMyNDM7ZGlnbyBkZSBhY3RpdmFjaSYjMjQzO248L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTUwLjY4MDciIHg9IjExMTQuNzQiIHk9IjI0NS42OTE5Ij5wb3IgZW1haWwgKDI0aCB2YWxpZGV6KTwvdGV4dD48L2c+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkdNTjUiIGRhdGEtc291cmNlLWxpbmU9IjU1IiBkYXRhLXVpZD0iZW50MDAwNiIgaWQ9ImVudGl0eV9HTU41Ij48cGF0aCBkPSJNMTMxNS43NywyMDUuOTI5NCBMMTMxNS43NywyNDYuMTk1IEwxNDU1LjM4ODcsMjQ2LjE5NSBMMTQ1NS4zODg3LDIxNS45Mjk0IEwxNDQ1LjM4ODcsMjA1LjkyOTQgTDEzMTUuNzcsMjA1LjkyOTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNMTQ0NS4zODg3LDIwNS45Mjk0IEwxNDQ1LjM4ODcsMjE1LjkyOTQgTDE0NTUuMzg4NywyMTUuOTI5NCBMMTQ0NS4zODg3LDIwNS45Mjk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTE4LjYxODciIHg9IjEzMjEuNzciIHk9IjIyMi45OTYzIj5ObyBwdWVkZSBpbnNjcmliaXI8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODguOTU2MSIgeD0iMTMyMS43NyIgeT0iMjM4LjEyOTEiPm0mIzIyNTtzIG1hdGVyaWFzPC90ZXh0PjwvZz48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iR01OOCIgZGF0YS1zb3VyY2UtbGluZT0iNjAiIGRhdGEtdWlkPSJlbnQwMDA5IiBpZD0iZW50aXR5X0dNTjgiPjxwYXRoIGQ9Ik0xMTA1LjE4LDM3Ni4xMTk0IEwxMTA1LjE4LDQ2MS43ODM0IEwxMzY5Ljk4NzEsNDYxLjc4MzQgTDEzNjkuOTg3MSwzODYuMTE5NCBMMTM1OS45ODcxLDM3Ni4xMTk0IEwxMTA1LjE4LDM3Ni4xMTk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTEzNTkuOTg3MSwzNzYuMTE5NCBMMTM1OS45ODcxLDM4Ni4xMTk0IEwxMzY5Ljk4NzEsMzg2LjExOTQgTDEzNTkuOTg3MSwzNzYuMTE5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyNDMuODA3MSIgeD0iMTExMS4xOCIgeT0iMzkzLjE4NjMiPlZhbGlkYWNpb25lcyBlbiBjYWRhIGluc2NyaXBjaSYjMjQzO246PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijk5LjA1NTIiIHg9IjExMTEuMTgiIHk9IjQwOC4zMTkxIj4tIEN1ZW50YSBhY3RpdmE8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTI1Ljc0MDciIHg9IjExMTEuMTgiIHk9IjQyMy40NTE5Ij4tIEwmIzIzNzttaXRlIGRlIGNyJiMyMzM7ZGl0b3M8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTMyLjYwODkiIHg9IjExMTEuMTgiIHk9IjQzOC41ODQ3Ij4tIE5vIHJlcGV0aXIgcHJvZmVzb3I8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTQ1Ljc4MDMiIHg9IjExMTEuMTgiIHk9IjQ1My43MTc1Ij4tIE1hdGVyaWEgbm8gZHVwbGljYWRhPC90ZXh0PjwvZz48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iR01OMTEiIGRhdGEtc291cmNlLWxpbmU9IjY4IiBkYXRhLXVpZD0iZW50MDAxMiIgaWQ9ImVudGl0eV9HTU4xMSI+PHBhdGggZD0iTTE4Ni40Niw3NTMuNjg5NCBMMTg2LjQ2LDgwOS4wODc4IEwzNDIuNjk2OCw4MDkuMDg3OCBMMzQyLjY5NjgsNzYzLjY4OTQgTDMzMi42OTY4LDc1My42ODk0IEwxODYuNDYsNzUzLjY4OTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNMzMyLjY5NjgsNzUzLjY4OTQgTDMzMi42OTY4LDc2My42ODk0IEwzNDIuNjk2OCw3NjMuNjg5NCBMMzMyLjY5NjgsNzUzLjY4OTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMjguNjg2IiB4PSIxOTIuNDYiIHk9Ijc3MC43NTYzIj5TaSBsYSBjdWVudGEgbm8gZXN0JiMyMjU7PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjExMC4yNTg4IiB4PSIxOTIuNDYiIHk9Ijc4NS44ODkxIj5hY3RpdmEsIHJlZGlyaWdlIGE8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTM1LjIzNjgiIHg9IjE5Mi40NiIgeT0iODAxLjAyMTkiPnAmIzIyNTtnaW5hIGRlIGFjdGl2YWNpJiMyNDM7bjwvdGV4dD48L2c+PCEtLWxpbmsgKnN0YXJ0KiB0byBSZWdpc3RyYWRvLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9Ii5zdGFydC4iIGRhdGEtZW50aXR5LTI9IlJlZ2lzdHJhZG8iIGRhdGEtc291cmNlLWxpbmU9IjciIGRhdGEtdWlkPSJsbmszIiBpZD0ibGlua18uc3RhcnQuX1JlZ2lzdHJhZG8iPjxwYXRoIGQ9Ik04MzMuNTgsNzcuOTI5NCBDODMzLjU4LDEwMS40Nzk0IDgzMy41OCwxNTguMDI5NCA4MzMuNTgsMTkzLjUyOTQiIGZpbGw9Im5vbmUiIGlkPSIqc3RhcnQqLXRvLVJlZ2lzdHJhZG8iIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjgzMy41OCwxOTkuNTI5NCw4MzcuNTgsMTkwLjUyOTQsODMzLjU4LDE5NC41Mjk0LDgyOS41OCwxOTAuNTI5NCw4MzMuNTgsMTk5LjUyOTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5NS45OTU2IiB4PSI4MzQuNTgiIHk9IjEyMC42NzYzIj5SZWdpc3RybyBpbmljaWFsPC90ZXh0PjwvZz48IS0tbGluayBSZWdpc3RyYWRvIHRvIEFjdGl2by0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJSZWdpc3RyYWRvIiBkYXRhLWVudGl0eS0yPSJBY3Rpdm8iIGRhdGEtc291cmNlLWxpbmU9IjEzIiBkYXRhLXVpZD0ibG5rNCIgaWQ9ImxpbmtfUmVnaXN0cmFkb19BY3Rpdm8iPjxwYXRoIGQ9Ik04MjcuOTIsMjUyLjc5OTQgQzgxOS43OSwyODkuNzM5NCA4MDYuMjA4NiwzNTEuNDU5NCA3OTguMjQ4NiwzODcuNjU5NCIgZmlsbD0ibm9uZSIgaWQ9IlJlZ2lzdHJhZG8tdG8tQWN0aXZvIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI3OTYuOTYsMzkzLjUxOTQsODAyLjc5OTUsMzg1LjU4ODQsNzk4LjAzMzgsMzg4LjYzNiw3OTQuOTg2MiwzODMuODcwMyw3OTYuOTYsMzkzLjUxOTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5OC4xNDExIiB4PSI4MTYuMSIgeT0iMzI3LjA2NjMiPmFjdGl2YXIoYyYjMjQzO2RpZ28pPC90ZXh0PjwvZz48IS0tbGluayBSZWdpc3RyYWRvIHRvIFJlZ2lzdHJhZG8tLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iUmVnaXN0cmFkbyIgZGF0YS1lbnRpdHktMj0iUmVnaXN0cmFkbyIgZGF0YS1zb3VyY2UtbGluZT0iMTQiIGRhdGEtdWlkPSJsbms1IiBpZD0ibGlua19SZWdpc3RyYWRvX1JlZ2lzdHJhZG8iPjxwYXRoIGQ9Ik05MjMuMTEsMjA4LjQzOTQgQzk0My4xLDIxMC4wNTk0IDk1Ny42OSwyMTUuOTI5NCA5NTcuNjksMjI2LjA1OTQgQzk1Ny42OSwyMzYuMTc5NCA5NDkuMDgwNCwyNDEuNTc0NyA5MjkuMDkwNCwyNDMuMTk0NyIgZmlsbD0ibm9uZSIgaWQ9IlJlZ2lzdHJhZG8tdG8tUmVnaXN0cmFkbyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iOTIzLjExLDI0My42Nzk0LDkzMi40MDM3LDI0Ni45MzkzLDkyOC4wOTM3LDI0My4yNzU1LDkzMS43NTc1LDIzOC45NjU1LDkyMy4xMSwyNDMuNjc5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEwNC4zNzQ1IiB4PSI5NzIuNDY4OCIgeT0iMjIzLjEyNjMiPmMmIzI0MztkaWdvIGV4cGlyYWRvPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyMS45MzIxIiB4PSI5NjMuNjkiIHk9IjIzOC4yNTkxIj5bcmVnZW5lcmFyIGMmIzI0MztkaWdvXTwvdGV4dD48L2c+PCEtLWxpbmsgU2luTWF0ZXJpYXMgdG8gUGFyY2lhbC0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJTaW5NYXRlcmlhcyIgZGF0YS1lbnRpdHktMj0iUGFyY2lhbCIgZGF0YS1zb3VyY2UtbGluZT0iMzEiIGRhdGEtdWlkPSJsbms2IiBpZD0ibGlua19TaW5NYXRlcmlhc19QYXJjaWFsIj48cGF0aCBkPSJNNTI5LjE4LDU2MC45NDk0IEM1MzkuNjIsNTQxLjQ0OTQgNTQ1LjY2LDUxOC45ODk0IDUzNS41OCw0OTkuMzg5NCBDNTI5Ljg5LDQ4OC4zMjk0IDUyNi4yMjA1LDQ4Mi41OTE0IDUxNy4wNjA1LDQ3My44OTE0IiBmaWxsPSJub25lIiBpZD0iU2luTWF0ZXJpYXMtdG8tUGFyY2lhbCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNTEyLjcxLDQ2OS43NTk0LDUxNi40ODEsNDc4Ljg1NzcsNTE2LjMzNTQsNDczLjIwMjcsNTIxLjk5MDQsNDczLjA1NzEsNTEyLjcxLDQ2OS43NTk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTEyLjcyOCIgeD0iNTQxLjczIiB5PSI1MTkuOTU2MyI+aW5zY3JpYmlyKG1hdGVyaWEpPC90ZXh0PjwvZz48IS0tbGluayBQYXJjaWFsIHRvIFNpbk1hdGVyaWFzLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9IlBhcmNpYWwiIGRhdGEtZW50aXR5LTI9IlNpbk1hdGVyaWFzIiBkYXRhLXNvdXJjZS1saW5lPSIzNSIgZGF0YS11aWQ9ImxuazEwIiBpZD0ibGlua19QYXJjaWFsX1Npbk1hdGVyaWFzIj48cGF0aCBkPSJNMzkzLjYzLDQ2OS43ODk0IEMzODUuMzgsNDg5LjUxOTQgMzgxLjA5LDUxMi4wNDk0IDM5MC41OCw1MzEuMzg5NCBDNDAwLjQsNTUxLjM5OTQgNDEzLjE1MTQsNTY0LjMwMzIgNDMxLjAwMTQsNTc2Ljc3MzIiIGZpbGw9Im5vbmUiIGlkPSJQYXJjaWFsLXRvLVNpbk1hdGVyaWFzIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI0MzUuOTIsNTgwLjIwOTQsNDMwLjgzMjgsNTcxLjc3NjEsNDMxLjgyMTEsNTc3LjM0NTksNDI2LjI1MTMsNTc4LjMzNDIsNDM1LjkyLDU4MC4yMDk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTM1LjQ5NzEiIHg9IjM5MS41OCIgeT0iNTEyLjQ1NjMiPmNhbmNlbGFyKGluc2NyaXBjaSYjMjQzO24pPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEwMC4xMjc5IiB4PSI0MDkuMjY0NiIgeT0iNTI3LjU4OTEiPlsmIzI1MDtuaWNhIG1hdGVyaWFdPC90ZXh0PjwvZz48IS0tbGluayBQYXJjaWFsIHRvIFBhcmNpYWwtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iUGFyY2lhbCIgZGF0YS1lbnRpdHktMj0iUGFyY2lhbCIgZGF0YS1zb3VyY2UtbGluZT0iMzIiIGRhdGEtdWlkPSJsbms3IiBpZD0ibGlua19QYXJjaWFsX1BhcmNpYWwiPjxwYXRoIGQ9Ik01NDYuODEsNDAyLjEzOTQgQzU2Ny4yMyw0MDQuNDg5NCA1ODEuMzIsNDEwLjA5OTQgNTgxLjMyLDQxOC45NDk0IEM1ODEuMzIsNDI3Ljc5OTQgNTczLjE5MDcsNDMyLjcyMzQgNTUyLjc3MDcsNDM1LjA3MzQiIGZpbGw9Im5vbmUiIGlkPSJQYXJjaWFsLXRvLVBhcmNpYWwiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjU0Ni44MSw0MzUuNzU5NCw1NTYuMjA4Myw0MzguNzA0Miw1NTEuNzc3Miw0MzUuMTg3Nyw1NTUuMjkzNyw0MzAuNzU2Niw1NDYuODEsNDM1Ljc1OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMTIuNzI4IiB4PSI1ODcuMzIiIHk9IjQxNi4wMTYzIj5pbnNjcmliaXIobWF0ZXJpYSk8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODkuNzQ5NSIgeD0iNTk4LjgwOTMiIHk9IjQzMS4xNDkxIj5bY3ImIzIzMztkaXRvcyAmbHQ7IDldPC90ZXh0PjwvZz48IS0tbGluayBQYXJjaWFsIHRvIENvbXBsZXRhLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9IlBhcmNpYWwiIGRhdGEtZW50aXR5LTI9IkNvbXBsZXRhIiBkYXRhLXNvdXJjZS1saW5lPSIzMyIgZGF0YS11aWQ9ImxuazgiIGlkPSJsaW5rX1BhcmNpYWxfQ29tcGxldGEiPjxwYXRoIGQ9Ik01MDYuODQsMzY4LjE1OTQgQzUxNy40OSwzNTkuMjQ5NCA1MjcuNDgsMzQ5LjMwOTQgNTM1LjU4LDMzOC40OTk0IEM1NDkuMSwzMjAuNDU5NCA1NTYuNTI5OCwzMDMuMTA5MyA1NjIuNTA5OCwyODIuNjA5MyIgZmlsbD0ibm9uZSIgaWQ9IlBhcmNpYWwtdG8tQ29tcGxldGEiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjU2NC4xOSwyNzYuODQ5NCw1NTcuODI5NywyODQuMzY5MSw1NjIuNzg5OCwyODEuNjQ5Myw1NjUuNTA5NiwyODYuNjA5NCw1NjQuMTksMjc2Ljg0OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMTIuNzI4IiB4PSI1NTQuMDUiIHk9IjMxOS41NjYzIj5pbnNjcmliaXIobWF0ZXJpYSk8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODkuNzQ5NSIgeD0iNTY1LjUzOTMiIHk9IjMzNC42OTkxIj5bY3ImIzIzMztkaXRvcyA9IDZdPC90ZXh0PjwvZz48IS0tbGluayBDb21wbGV0YSB0byBQYXJjaWFsLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9IkNvbXBsZXRhIiBkYXRhLWVudGl0eS0yPSJQYXJjaWFsIiBkYXRhLXNvdXJjZS1saW5lPSIzNCIgZGF0YS11aWQ9ImxuazkiIGlkPSJsaW5rX0NvbXBsZXRhX1BhcmNpYWwiPjxwYXRoIGQ9Ik00OTAuNTMsMjQxLjc5OTQgQzQ1My4zLDI1Mi45Njk0IDQxMi45NSwyNzIuNDg5NCAzOTAuNTgsMzA2LjQ5OTQgQzM3OC40NywzMjQuOTI5NCAzODAuNDA1MiwzNDIuMzg1NiAzODkuNDA1MiwzNjIuNjU1NiIgZmlsbD0ibm9uZSIgaWQ9IkNvbXBsZXRhLXRvLVBhcmNpYWwiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjM5MS44NCwzNjguMTM5NCwzOTEuODQzNiwzNTguMjkwNSwzODkuODExLDM2My41Njk2LDM4NC41MzE5LDM2MS41MzY5LDM5MS44NCwzNjguMTM5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEzNS40OTcxIiB4PSIzOTEuNTgiIHk9IjMyNy4wNjYzIj5jYW5jZWxhcihpbnNjcmlwY2kmIzI0MztuKTwvdGV4dD48L2c+PCEtLWxpbmsgQWN0aXZvIHRvIFNpbk1hdGVyaWFzLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9IkFjdGl2byIgZGF0YS1lbnRpdHktMj0iU2luTWF0ZXJpYXMiIGRhdGEtc291cmNlLWxpbmU9IjM4IiBkYXRhLXVpZD0ibG5rMTEiIGlkPSJsaW5rX0FjdGl2b19TaW5NYXRlcmlhcyI+PHBhdGggZD0iTTc2Ny41OCw0NDQuNDE5NCBDNzQyLjg2LDQ2OC42Nzk0IDcwMi40Myw1MDUuODE5NCA2NjIuNTgsNTMxLjM4OTQgQzYyNi4xOCw1NTQuNzQ5NCA1ODcuMjIxNCw1NzIuNjE3NCA1NTIuNzIxNCw1ODYuNTg3NCIgZmlsbD0ibm9uZSIgaWQ9IkFjdGl2by10by1TaW5NYXRlcmlhcyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNTQ3LjE2LDU4OC44Mzk0LDU1Ny4wMDMzLDU4OS4xNjksNTUxLjc5NDUsNTg2Ljk2MjgsNTU0LjAwMDcsNTgxLjc1MzksNTQ3LjE2LDU4OC44Mzk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODguMzAyMiIgeD0iNzA1LjE3IiB5PSI1MTkuOTU2MyI+Y3VlbnRhIGFjdGl2YTwvdGV4dD48L2c+PCEtLWxpbmsgU2luTWF0ZXJpYXMgdG8gdmFsaWRhY2lvbi0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJTaW5NYXRlcmlhcyIgZGF0YS1lbnRpdHktMj0idmFsaWRhY2lvbiIgZGF0YS1zb3VyY2UtbGluZT0iNDIiIGRhdGEtdWlkPSJsbmsxMiIgaWQ9ImxpbmtfU2luTWF0ZXJpYXNfdmFsaWRhY2lvbiI+PHBhdGggZD0iTTQzNS45LDYxMC41Mzk0IEMzNjYuNTMsNjEwLjUzOTQgMjU4LjU0LDYxMC41Mzk0IDIyMSw2MTAuNTM5NCIgZmlsbD0ibm9uZSIgaWQ9IlNpbk1hdGVyaWFzLXRvLXZhbGlkYWNpb24iIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjIxNSw2MTAuNTM5NCwyMjQsNjE0LjUzOTQsMjIwLDYxMC41Mzk0LDIyNCw2MDYuNTM5NCwyMTUsNjEwLjUzOTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMDIuMzE3OSIgeD0iMjc0LjQ1IiB5PSI2MDMuNjA2MyI+aW50ZW50YSBpbnNjcmliaXI8L3RleHQ+PC9nPjwhLS1saW5rIFBhcmNpYWwgdG8gdmFsaWRhY2lvbi0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJQYXJjaWFsIiBkYXRhLWVudGl0eS0yPSJ2YWxpZGFjaW9uIiBkYXRhLXNvdXJjZS1saW5lPSI0MyIgZGF0YS11aWQ9ImxuazEzIiBpZD0ibGlua19QYXJjaWFsX3ZhbGlkYWNpb24iPjxwYXRoIGQ9Ik0zMDIuNTksNDI5LjkxOTQgQzIwNy40NCw0NDAuNTE5NCA4Ni40MSw0NjEuMjE5NCA1NS41OCw0OTkuMzg5NCBDMTEsNTU0LjU5OTQgMTQ5LjE1OTIsNTk1LjUxNjIgMTg3LjU5OTIsNjA1LjY3NjIiIGZpbGw9Im5vbmUiIGlkPSJQYXJjaWFsLXRvLXZhbGlkYWNpb24iIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjE5My40LDYwNy4yMDk0LDE4NS43MjA5LDYwMS4wNDI0LDE4OC41NjYsNjA1LjkzMTcsMTgzLjY3NjcsNjA4Ljc3NjgsMTkzLjQsNjA3LjIwOTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMDIuMzE3OSIgeD0iNTYuNTgiIHk9IjUxOS45NTYzIj5pbnRlbnRhIGluc2NyaWJpcjwvdGV4dD48L2c+PCEtLWxpbmsgdmFsaWRhY2lvbiB0byBQYXJjaWFsLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9InZhbGlkYWNpb24iIGRhdGEtZW50aXR5LTI9IlBhcmNpYWwiIGRhdGEtc291cmNlLWxpbmU9IjQ1IiBkYXRhLXVpZD0ibG5rMTQiIGlkPSJsaW5rX3ZhbGlkYWNpb25fUGFyY2lhbCI+PHBhdGggZD0iTTIwMS4zOCw1OTkuMDc5NCBDMTk5LjUyLDU3Ny43NTk0IDE5OC40LDUyOC44Mjk0IDIyMi41OCw0OTkuMzg5NCBDMjQzLjA0LDQ3NC40OTk0IDI2Ni43NzQ3LDQ1OS41NjE0IDI5Ni43NjQ3LDQ0Ny43OTE0IiBmaWxsPSJub25lIiBpZD0idmFsaWRhY2lvbi10by1QYXJjaWFsIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSIzMDIuMzUsNDQ1LjU5OTQsMjkyLjUxMDgsNDQ1LjE2MzksMjk3LjY5NTYsNDQ3LjQyNjEsMjk1LjQzMzUsNDUyLjYxMDksMzAyLjM1LDQ0NS41OTk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTUzLjQ5MjciIHg9IjIyMy41OCIgeT0iNTE5Ljk1NjMiPlt2JiMyMjU7bGlkbyB5IGN1ZW50YSBhY3RpdmFdPC90ZXh0PjwvZz48IS0tbGluayB2YWxpZGFjaW9uIHRvICplbmQqLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9InZhbGlkYWNpb24iIGRhdGEtZW50aXR5LTI9Ii5lbmQuIiBkYXRhLXNvdXJjZS1saW5lPSI0NiIgZGF0YS11aWQ9ImxuazE2IiBpZD0ibGlua192YWxpZGFjaW9uXy5lbmQuIj48cGF0aCBkPSJNMTk2Ljk4LDYxNy4xMzk0IEMxODUuMTQsNjI5LjM3OTQgMTU3Ljc1LDY1OS45ODk0IDE0Ni41OCw2OTEuNjg5NCBDMTM3LjA0LDcxOC43Njk0IDEzNy43MjUyLDc0Ny4zMzgyIDEzOS4wNjUyLDc2NC4yMTgyIiBmaWxsPSJub25lIiBpZD0idmFsaWRhY2lvbi10by0qZW5kKiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iMTM5LjU0LDc3MC4xOTk0LDE0Mi44MTUyLDc2MC45MTExLDEzOS4xNDQzLDc2NS4yMTUxLDEzNC44NDAzLDc2MS41NDQxLDEzOS41NCw3NzAuMTk5NCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjYxLjA4MzUiIHg9IjE2Mi4xMzgzIiB5PSI3MDQuNzU2MyI+W2ludiYjMjI1O2xpZG9dPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjkwLjIwMDIiIHg9IjE0Ny41OCIgeT0iNzE5Ljg4OTEiPm11ZXN0cmEgZXJyb3I8L3RleHQ+PC9nPjwhLS1saW5rIENvbXBsZXRhIHRvIEdNTjUtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iQ29tcGxldGEiIGRhdGEtZW50aXR5LTI9IkdNTjUiIGRhdGEtc291cmNlLWxpbmU9IjU1IiBkYXRhLXVpZD0ibG5rNyIgaWQ9ImxpbmtfQ29tcGxldGFfR01ONSI+PHBhdGggZD0iTTYyOC4xMSwxNzUuMjE5NCBDNjU5Ljc2LDE0OC43Mzk0IDcwMi4xNSwxMTkuMDQ5NCA3NDYuMDgsMTA1LjEwOTQgQzgwMi42NCw4Ny4xNzk0IDEyMjYuMDcsODAuNTQ5NCAxMjgwLjA4LDEwNS4xMDk0IEMxMzI1Ljc0LDEyNS44Njk0IDEzNTkuMzUsMTc3LjIyOTQgMTM3NS4yOCwyMDUuODk5NCIgZmlsbD0ibm9uZSIgaWQ9IkNvbXBsZXRhLUdNTjUiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjcsNzsiLz48L2c+PCEtLWxpbmsgR01OOCB0byBQYXJjaWFsLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9IkdNTjgiIGRhdGEtZW50aXR5LTI9IlBhcmNpYWwiIGRhdGEtc291cmNlLWxpbmU9IjYwIiBkYXRhLXVpZD0ibG5rMTAiIGlkPSJsaW5rX0dNTjhfUGFyY2lhbCI+PHBhdGggZD0iTTExODAuODQsMzc1Ljc3OTQgQzExNTAuMzUsMzU1LjI5OTQgMTExMS4wOSwzMzMuMDM5NCAxMDcyLjA4LDMyMi40OTk0IEM4OTIuNTUsMjc0LjAwOTQgNjc4LDMyNi45MDk0IDU0Ni41NCwzNzEuMzk5NCIgZmlsbD0ibm9uZSIgaWQ9IkdNTjgtUGFyY2lhbCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6Nyw3OyIvPjwvZz48IS0tbGluayB2YWxpZGFjaW9uIHRvIEdNTjExLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9InZhbGlkYWNpb24iIGRhdGEtZW50aXR5LTI9IkdNTjExIiBkYXRhLXNvdXJjZS1saW5lPSI2OCIgZGF0YS11aWQ9ImxuazEzIiBpZD0ibGlua192YWxpZGFjaW9uX0dNTjExIj48cGF0aCBkPSJNMjA2LjksNjE4LjgwOTQgQzIxNC45Miw2MzIuNTk5NCAyMzIuMjYsNjYzLjY2OTQgMjQyLjU4LDY5MS42ODk0IEMyNTAuMDQsNzExLjkzOTQgMjU1Ljc4LDczNS43MDk0IDI1OS41Myw3NTMuNTM5NCIgZmlsbD0ibm9uZSIgaWQ9InZhbGlkYWNpb24tR01OMTEiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjcsNzsiLz48L2c+PCEtLVNSQz1bWExIQlJuQ240Qnh4TG1wYmFZMGdJYi1HQWFHZ0tJaVgwUWYwdWpCY3U3WWRvUVl4emloaGhOWWVGb1A3M2Zud3V4Zl9aQjd0bElkQWRob1V4dmx2dms1dnZqUU84QUluOTJzb0V6QWZqM0ExcDRjN3h3TXdNcmNKd3NYa09jRlgtVU5Sb3lkYi1IUkNzMFhqMUpjVWQxb1NsMTcyYU9pSEJYV0djR21ZWkZxdlpxWGdYXzAzaVpvMzNwZkpiYjk1SGNDY25GTUIxVXBscC0wQmhZWHBiZGJtTGx5Tzg0c0FQMm40MjBieHlub3JhdGlXQ3IzWDJCeTR5NVVQTW9TdFVkSTVFWUJxV1MtTGV0a2ZnN1pLdXkxalNMcnNXOWEwQTh5WU0zbEFsRDNJbjI5Ynk2ZjdnZFlDUTZONkp1NXhNTEwwbUV5ZmJIZ2xCUXZHZXZNc0RZeDRHdkRpaHI5MTVkTGwtZ2JfOUdzVi02SDliYlktZ0Z5aFAwVHowQ2VNbG9Eb2ZXR2hZejUxMDNzOGhqVDYwZlNFaGdKcnBHWTR3aHBqLVFacnAzcnUzS2NmT1RvNEVIZW9KZGtDbXZnSGpQSkpOU2hjOWFiWmgwUVpfamRNRGtiNUVkZVlxZ0dSZ0xqMXR5bXd2eEVnM3Frb2VwZ3pHQVcxa3kzUy00TzhKNjZvczY4dEVVb2FsdUZKYWp2Ry1qNkxyMGZaN2JGZzU2blJSWlZOX3Y0dVJsNk43d0lpMm5VNmpOZUZKcFdmN3NadkpFZ1hsZlNuSFQ4RkM0b2RRY3I4dU1tY25CM0s3UFlsVzBrVWNhZzhobDhUS0Q2bnpvanBWTHppczZIdUJfTWFCZU9LbHc4T0poZVlCNnZxYWdEX3JlM002ZXdYM1FUY1FSTHNPNnh4cy1LWTFjbk5lNEw1SS1KaFVYVDRNNEtEOU1QM29raUs0cWFuWjB3RnJzTHMtN0NpVTljMTNwQ0NMaFVUZ1B5RGYzY29ucFB4V0FKT1BDc1czeHQ0VTFrU0w0TFgtN0d2LXpQYXBwaTZER3ozOUE0eDI2VkpMeWlQT19UWHRja25sX2JPXzRjOEZSRUFQYVEzV1NMUEpENkhYVElRTXlvQzNWVExzcmFMSDdhUWF1eXNiQmFxcGZkNDJzcXg4X3B4WDVaTWxNQy1yeGRPeTdxZnZvTjdZdVpobjFOc1RJcXNBejlvTUYwY3FaeTBdLS0+PC9nPjwvc3ZnPg==",
"07-deployment": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U3R5bGVUeXBlPSJ0ZXh0L2NzcyIgZGF0YS1kaWFncmFtLXR5cGU9IkRFU0NSSVBUSU9OIiBoZWlnaHQ9IjE1MDhweCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgc3R5bGU9IndpZHRoOjEzNDhweDtoZWlnaHQ6MTUwOHB4O2JhY2tncm91bmQ6I0ZGRkZGRjsiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDEzNDggMTUwOCIgd2lkdGg9IjEzNDhweCIgem9vbUFuZFBhbj0ibWFnbmlmeSI+PHRpdGxlPlNpc3RlbWEgZGUgUmVnaXN0cm8gZGUgRXN0dWRpYW50ZXMgLSBEaWFncmFtYSBkZSBEZXNwbGllZ3VlPC90aXRsZT48ZGVmcy8+PGc+PGcgY2xhc3M9InRpdGxlIiBkYXRhLXNvdXJjZS1saW5lPSI2Ij48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIyMiIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNzcxLjY3NTgiIHg9IjI4My43NDkyIiB5PSIzNS40MjA5Ij5TaXN0ZW1hIGRlIFJlZ2lzdHJvIGRlIEVzdHVkaWFudGVzIC0gRGlhZ3JhbWEgZGUgRGVzcGxpZWd1ZTwvdGV4dD48L2c+PCEtLWNsdXN0ZXIgY2xpZW50LS0+PGcgY2xhc3M9ImNsdXN0ZXIiIGRhdGEtZW50aXR5PSJjbGllbnQiIGRhdGEtc291cmNlLWxpbmU9IjgiIGRhdGEtdWlkPSJlbnQwMDAyIiBpZD0iY2x1c3Rlcl9jbGllbnQiPjxwb2x5Z29uIGZpbGw9IiNGOEY5RkEiIHBvaW50cz0iNjI5LDY3LjYwOTQsNjM5LDU3LjYwOTQsODg2LDU3LjYwOTQsODg2LDI0OC45MDk0LDg3NiwyNTguOTA5NCw2MjksMjU4LjkwOTQsNjI5LDY3LjYwOTQiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iODc2IiB4Mj0iODg2IiB5MT0iNjcuNjA5NCIgeTI9IjU3LjYwOTQiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iNjI5IiB4Mj0iODc2IiB5MT0iNjcuNjA5NCIgeTI9IjY3LjYwOTQiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iODc2IiB4Mj0iODc2IiB5MT0iNjcuNjA5NCIgeTI9IjI1OC45MDk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjU1LjUyMTUiIHg9IjcyNS43MzkzIiB5PSI4My42MDQ1Ij5DbGllbnRlPC90ZXh0PjwvZz48IS0tY2x1c3RlciBicm93c2VyLS0+PGcgY2xhc3M9ImNsdXN0ZXIiIGRhdGEtZW50aXR5PSJicm93c2VyIiBkYXRhLXNvdXJjZS1saW5lPSI5IiBkYXRhLXVpZD0iZW50MDAwMyIgaWQ9ImNsdXN0ZXJfYnJvd3NlciI+PHJlY3QgZmlsbD0iI0U5RUNFRiIgaGVpZ2h0PSIxMTMuMyIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE5MyIgeD0iNjYxIiB5PSIxMTMuNjA5NCIvPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iODM0IiB5PSIxMTguNjA5NCIvPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjgzMiIgeT0iMTIwLjYwOTQiLz48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI4MzIiIHk9IjEyNC42MDk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyNS42MzA5IiB4PSI2OTQuNjg0NiIgeT0iMTM5LjYwNDUiPk5hdmVnYWRvciBXZWI8L3RleHQ+PC9nPjwhLS1jbHVzdGVyIGszcy0tPjxnIGNsYXNzPSJjbHVzdGVyIiBkYXRhLWVudGl0eT0iazNzIiBkYXRhLXNvdXJjZS1saW5lPSIxNCIgZGF0YS11aWQ9ImVudDAwMDUiIGlkPSJjbHVzdGVyX2szcyI+PHBvbHlnb24gZmlsbD0iI0Y4RjlGQSIgcG9pbnRzPSIyMSw0NDkuMTk5NCwzMSw0MzkuMTk5NCw5MjAsNDM5LjE5OTQsOTIwLDE0ODEuNjM5NCw5MTAsMTQ5MS42Mzk0LDIxLDE0OTEuNjM5NCwyMSw0NDkuMTk5NCIgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSI5MTAiIHgyPSI5MjAiIHkxPSI0NDkuMTk5NCIgeTI9IjQzOS4xOTk0Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9IjIxIiB4Mj0iOTEwIiB5MT0iNDQ5LjE5OTQiIHkyPSI0NDkuMTk5NCIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSI5MTAiIHgyPSI5MTAiIHkxPSI0NDkuMTk5NCIgeTI9IjE0OTEuNjM5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyODQuNzkyIiB4PSIzMjQuMTA0IiB5PSI0NjUuMTk0NSI+SzNzIENsdXN0ZXIgKE5hbWVzcGFjZTogYWNhZGVtaWEpPC90ZXh0PjwvZz48IS0tY2x1c3RlciBmcm9udGVuZFBvZC0tPjxnIGNsYXNzPSJjbHVzdGVyIiBkYXRhLWVudGl0eT0iZnJvbnRlbmRQb2QiIGRhdGEtc291cmNlLWxpbmU9IjE2IiBkYXRhLXVpZD0iZW50MDAwNiIgaWQ9ImNsdXN0ZXJfZnJvbnRlbmRQb2QiPjxwb2x5Z29uIGZpbGw9IiNGOEY5RkEiIHBvaW50cz0iNDQ1LDcwNC40OTk0LDQ1NSw2OTQuNDk5NCw4NjgsNjk0LjQ5OTQsODY4LDkwMS43OTk0LDg1OCw5MTEuNzk5NCw0NDUsOTExLjc5OTQsNDQ1LDcwNC40OTk0IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9Ijg1OCIgeDI9Ijg2OCIgeTE9IjcwNC40OTk0IiB5Mj0iNjk0LjQ5OTQiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iNDQ1IiB4Mj0iODU4IiB5MT0iNzA0LjQ5OTQiIHkyPSI3MDQuNDk5NCIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSI4NTgiIHgyPSI4NTgiIHkxPSI3MDQuNDk5NCIgeTI9IjkxMS43OTk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtc3R5bGU9Iml0YWxpYyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI0My4xNzU4IiB4PSI2MzAuOTEyMSIgeT0iNzIwLjQ5NDUiPiYjMTcxO1BvZCYjMTg3OzwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTY4LjM4OTYiIHg9IjU2OC4zMDUyIiB5PSI3MzYuNzkxNCI+ZnJvbnRlbmQtZGVwbG95bWVudDwvdGV4dD48L2c+PCEtLWNsdXN0ZXIgbmdpbngtLT48ZyBjbGFzcz0iY2x1c3RlciIgZGF0YS1lbnRpdHk9Im5naW54IiBkYXRhLXNvdXJjZS1saW5lPSIxNyIgZGF0YS11aWQ9ImVudDAwMDciIGlkPSJjbHVzdGVyX25naW54Ij48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjExMy4zIiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMzU5IiB4PSI0NzciIHk9Ijc2Ni40OTk0Ii8+PHJlY3QgZmlsbD0iI0U5RUNFRiIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSI4MTYiIHk9Ijc3MS40OTk0Ii8+PHJlY3QgZmlsbD0iI0U5RUNFRiIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iODE0IiB5PSI3NzMuNDk5NCIvPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjgxNCIgeT0iNzc3LjQ5OTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNDUuNTM0MiIgeD0iNjMzLjczMjkiIHk9Ijc5Mi40OTQ1Ij5OZ2lueDwvdGV4dD48L2c+PCEtLWNsdXN0ZXIgYXBpUG9kLS0+PGcgY2xhc3M9ImNsdXN0ZXIiIGRhdGEtZW50aXR5PSJhcGlQb2QiIGRhdGEtc291cmNlLWxpbmU9IjIzIiBkYXRhLXVpZD0iZW50MDAxMCIgaWQ9ImNsdXN0ZXJfYXBpUG9kIj48cG9seWdvbiBmaWxsPSIjRjhGOUZBIiBwb2ludHM9IjUzLDk4NS43OTk0LDYzLDk3NS43OTk0LDUyOCw5NzUuNzk5NCw1MjgsMTQ0OS42Mzk0LDUxOCwxNDU5LjYzOTQsNTMsMTQ1OS42Mzk0LDUzLDk4NS43OTk0IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9IjUxOCIgeDI9IjUyOCIgeTE9Ijk4NS43OTk0IiB5Mj0iOTc1Ljc5OTQiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iNTMiIHgyPSI1MTgiIHkxPSI5ODUuNzk5NCIgeTI9Ijk4NS43OTk0Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9IjUxOCIgeDI9IjUxOCIgeTE9Ijk4NS43OTk0IiB5Mj0iMTQ1OS42Mzk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtc3R5bGU9Iml0YWxpYyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI0My4xNzU4IiB4PSIyNjQuOTEyMSIgeT0iMTAwMS43OTQ1Ij4mIzE3MTtQb2QmIzE4Nzs8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyMy45MDE0IiB4PSIyMjQuNTQ5MyIgeT0iMTAxOC4wOTE0Ij5hcGktZGVwbG95bWVudDwvdGV4dD48L2c+PCEtLWNsdXN0ZXIgYXNwbmV0LS0+PGcgY2xhc3M9ImNsdXN0ZXIiIGRhdGEtZW50aXR5PSJhc3BuZXQiIGRhdGEtc291cmNlLWxpbmU9IjI0IiBkYXRhLXVpZD0iZW50MDAxMSIgaWQ9ImNsdXN0ZXJfYXNwbmV0Ij48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjM3OS44NCIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQxMSIgeD0iODUiIHk9IjEwNDcuNzk5NCIvPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iNDc2IiB5PSIxMDUyLjc5OTQiLz48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI0NzQiIHk9IjEwNTQuNzk5NCIvPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjQ3NCIgeT0iMTA1OC43OTk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEwOC40OTMyIiB4PSIyMzYuMjUzNCIgeT0iMTA3My43OTQ1Ij5BU1AuTkVUIENvcmU8L3RleHQ+PC9nPjwhLS1jbHVzdGVyIGRiUG9kLS0+PGcgY2xhc3M9ImNsdXN0ZXIiIGRhdGEtZW50aXR5PSJkYlBvZCIgZGF0YS1zb3VyY2UtbGluZT0iMzIiIGRhdGEtdWlkPSJlbnQwMDE2IiBpZD0iY2x1c3Rlcl9kYlBvZCI+PHBvbHlnb24gZmlsbD0iI0Y4RjlGQSIgcG9pbnRzPSI1NTIsMTIzNy4zMzk0LDU2MiwxMjI3LjMzOTQsODgwLDEyMjcuMzM5NCw4ODAsMTQ0OS42Mzk0LDg3MCwxNDU5LjYzOTQsNTUyLDE0NTkuNjM5NCw1NTIsMTIzNy4zMzk0IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9Ijg3MCIgeDI9Ijg4MCIgeTE9IjEyMzcuMzM5NCIgeTI9IjEyMjcuMzM5NCIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSI1NTIiIHgyPSI4NzAiIHkxPSIxMjM3LjMzOTQiIHkyPSIxMjM3LjMzOTQiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iODcwIiB4Mj0iODcwIiB5MT0iMTIzNy4zMzk0IiB5Mj0iMTQ1OS42Mzk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtc3R5bGU9Iml0YWxpYyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5NS4wMTk1IiB4PSI2NjQuNDkwMiIgeT0iMTI1My4zMzQ1Ij4mIzE3MTtTdGF0ZWZ1bFNldCYjMTg3OzwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTY1LjI1ODgiIHg9IjYyOS4zNzA2IiB5PSIxMjY5LjYzMTQiPnNxbHNlcnZlci1zdGF0ZWZ1bHNldDwvdGV4dD48L2c+PCEtLWNsdXN0ZXIgc3Fsc2VydmVyLS0+PGcgY2xhc3M9ImNsdXN0ZXIiIGRhdGEtZW50aXR5PSJzcWxzZXJ2ZXIiIGRhdGEtc291cmNlLWxpbmU9IjMzIiBkYXRhLXVpZD0iZW50MDAxNyIgaWQ9ImNsdXN0ZXJfc3Fsc2VydmVyIj48cGF0aCBkPSJNNTg0LDEzMDkuMzM5NCBDNTg0LDEyOTkuMzM5NCA3MTYsMTI5OS4zMzk0IDcxNiwxMjk5LjMzOTQgQzcxNiwxMjk5LjMzOTQgODQ4LDEyOTkuMzM5NCA4NDgsMTMwOS4zMzk0IEw4NDgsMTQxNy42Mzk0IEM4NDgsMTQyNy42Mzk0IDcxNiwxNDI3LjYzOTQgNzE2LDE0MjcuNjM5NCBDNzE2LDE0MjcuNjM5NCA1ODQsMTQyNy42Mzk0IDU4NCwxNDE3LjYzOTQgTDU4NCwxMzA5LjMzOTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNNTg0LDEzMDkuMzM5NCBDNTg0LDEzMTkuMzM5NCA3MTYsMTMxOS4zMzk0IDcxNiwxMzE5LjMzOTQgQzcxNiwxMzE5LjMzOTQgODQ4LDEzMTkuMzM5NCA4NDgsMTMwOS4zMzk0IiBmaWxsPSJub25lIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEzMS42MjYiIHg9IjY1MC4xODciIHk9IjEzMzQuMzM0NSI+U1FMIFNlcnZlciAyMDIyPC90ZXh0PjwvZz48IS0tY2x1c3RlciBpbmdyZXNzLS0+PGcgY2xhc3M9ImNsdXN0ZXIiIGRhdGEtZW50aXR5PSJpbmdyZXNzIiBkYXRhLXNvdXJjZS1saW5lPSIzOCIgZGF0YS11aWQ9ImVudDAwMTkiIGlkPSJjbHVzdGVyX2luZ3Jlc3MiPjxwb2x5Z29uIGZpbGw9IiNGOEY5RkEiIHBvaW50cz0iNDYwLDUxMy4xOTk0LDQ3MCw1MDMuMTk5NCw4NTQsNTAzLjE5OTQsODU0LDYyNy40OTk0LDg0NCw2MzcuNDk5NCw0NjAsNjM3LjQ5OTQsNDYwLDUxMy4xOTk0IiBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTojNDk1MDU3O3N0cm9rZS13aWR0aDoxOyIgeDE9Ijg0NCIgeDI9Ijg1NCIgeTE9IjUxMy4xOTk0IiB5Mj0iNTAzLjE5OTQiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiM0OTUwNTc7c3Ryb2tlLXdpZHRoOjE7IiB4MT0iNDYwIiB4Mj0iODQ0IiB5MT0iNTEzLjE5OTQiIHkyPSI1MTMuMTk5NCIvPjxsaW5lIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHgxPSI4NDQiIHgyPSI4NDQiIHkxPSI1MTMuMTk5NCIgeTI9IjYzNy40OTk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtc3R5bGU9Iml0YWxpYyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI2OC4xMjciIHg9IjYxOC45MzY1IiB5PSI1MjkuMTk0NSI+JiMxNzE7SW5ncmVzcyYjMTg3OzwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTE4LjczMzQiIHg9IjU5My42MzMzIiB5PSI1NDUuNDkxNCI+VHJhZWZpayBJbmdyZXNzPC90ZXh0PjwvZz48IS0tZW50aXR5IEFuZ3VsYXIgU1BBLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkFuZ3VsYXIgU1BBIiBkYXRhLXNvdXJjZS1saW5lPSIxMCIgZGF0YS11aWQ9ImVudDAwMDQiIGlkPSJlbnRpdHlfQW5ndWxhciBTUEEiPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjEyNS43OTEiIHg9IjY4NS4xIiB5PSIxNTYuNjA5NCIvPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iNzkwLjg5MSIgeT0iMTYxLjYwOTQiLz48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI3ODguODkxIiB5PSIxNjMuNjA5NCIvPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9Ijc4OC44OTEiIHk9IjE2Ny42MDk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODUuNzkxIiB4PSI3MDAuMSIgeT0iMTg5LjYwNDUiPkFuZ3VsYXIgU1BBPC90ZXh0PjwvZz48IS0tZW50aXR5IFN0YXRpYyBGaWxlcy0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJTdGF0aWMgRmlsZXMiIGRhdGEtc291cmNlLWxpbmU9IjE4IiBkYXRhLXVpZD0iZW50MDAwOCIgaWQ9ImVudGl0eV9TdGF0aWMgRmlsZXMiPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjExNi4yMjA3IiB4PSI1MDAuODkiIHk9IjgwOS40OTk0Ii8+PHJlY3QgZmlsbD0iI0U5RUNFRiIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSI1OTcuMTEwNyIgeT0iODE0LjQ5OTQiLz48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI1OTUuMTEwNyIgeT0iODE2LjQ5OTQiLz48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI1OTUuMTEwNyIgeT0iODIwLjQ5OTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI3Ni4yMjA3IiB4PSI1MTUuODkiIHk9Ijg0Mi40OTQ1Ij5TdGF0aWMgRmlsZXM8L3RleHQ+PC9nPjwhLS1lbnRpdHkgUmV2ZXJzZSBQcm94eS0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJSZXZlcnNlIFByb3h5IiBkYXRhLXNvdXJjZS1saW5lPSIxOSIgZGF0YS11aWQ9ImVudDAwMDkiIGlkPSJlbnRpdHlfUmV2ZXJzZSBQcm94eSI+PHJlY3QgZmlsbD0iI0U5RUNFRiIgaGVpZ2h0PSI0Ni4yOTY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTQwLjY4NjUiIHg9IjY1MS42NiIgeT0iODA5LjQ5OTQiLz48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9Ijc3Mi4zNDY1IiB5PSI4MTQuNDk5NCIvPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9Ijc3MC4zNDY1IiB5PSI4MTYuNDk5NCIvPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9Ijc3MC4zNDY1IiB5PSI4MjAuNDk5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEwMC42ODY1IiB4PSI2NjYuNjYiIHk9Ijg0Mi40OTQ1Ij5SZXZlcnNlIFByb3h5PC90ZXh0PjwvZz48IS0tZW50aXR5IEtlc3RyZWwgU2VydmVyLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9Iktlc3RyZWwgU2VydmVyIiBkYXRhLXNvdXJjZS1saW5lPSIyNSIgZGF0YS11aWQ9ImVudDAwMTIiIGlkPSJlbnRpdHlfS2VzdHJlbCBTZXJ2ZXIiPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjEzOS4xOTYzIiB4PSIxMDkuNCIgeT0iMTA5MC43OTk0Ii8+PHJlY3QgZmlsbD0iI0U5RUNFRiIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSIyMjguNTk2MyIgeT0iMTA5NS43OTk0Ii8+PHJlY3QgZmlsbD0iI0U5RUNFRiIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMjI2LjU5NjMiIHk9IjEwOTcuNzk5NCIvPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjIyNi41OTYzIiB5PSIxMTAxLjc5OTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5OS4xOTYzIiB4PSIxMjQuNCIgeT0iMTEyMy43OTQ1Ij5LZXN0cmVsIFNlcnZlcjwvdGV4dD48L2c+PCEtLWVudGl0eSBHcmFwaFFMIEVuZHBvaW50LS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkdyYXBoUUwgRW5kcG9pbnQiIGRhdGEtc291cmNlLWxpbmU9IjI2IiBkYXRhLXVpZD0iZW50MDAxMyIgaWQ9ImVudGl0eV9HcmFwaFFMIEVuZHBvaW50Ij48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNjguNTIyNSIgeD0iMjgzLjc0IiB5PSIxMDkwLjc5OTQiLz48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjQzMi4yNjI1IiB5PSIxMDk1Ljc5OTQiLz48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSI0MzAuMjYyNSIgeT0iMTA5Ny43OTk0Ii8+PHJlY3QgZmlsbD0iI0U5RUNFRiIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNDMwLjI2MjUiIHk9IjExMDEuNzk5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyOC41MjI1IiB4PSIyOTguNzQiIHk9IjExMjMuNzk0NSI+R3JhcGhRTCBFbmRwb2ludDwvdGV4dD48L2c+PCEtLWVudGl0eSBKV1QgQXV0aC0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJKV1QgQXV0aCIgZGF0YS1zb3VyY2UtbGluZT0iMjciIGRhdGEtdWlkPSJlbnQwMDE0IiBpZD0iZW50aXR5X0pXVCBBdXRoIj48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMDMuNzg2MSIgeD0iMTI3LjExIiB5PSIxMzU3LjMzOTQiLz48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjIxMC44OTYxIiB5PSIxMzYyLjMzOTQiLz48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIyMDguODk2MSIgeT0iMTM2NC4zMzk0Ii8+PHJlY3QgZmlsbD0iI0U5RUNFRiIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMjA4Ljg5NjEiIHk9IjEzNjguMzM5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjYzLjc4NjEiIHg9IjE0Mi4xMSIgeT0iMTM5MC4zMzQ1Ij5KV1QgQXV0aDwvdGV4dD48L2c+PCEtLWVudGl0eSBIZWFsdGggQ2hlY2stLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iSGVhbHRoIENoZWNrIiBkYXRhLXNvdXJjZS1saW5lPSIyOCIgZGF0YS11aWQ9ImVudDAwMTUiIGlkPSJlbnRpdHlfSGVhbHRoIENoZWNrIj48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMzMuNDg4MyIgeD0iMjY2LjI2IiB5PSIxMzU3LjMzOTQiLz48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjM3OS43NDgzIiB5PSIxMzYyLjMzOTQiLz48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjIiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSI0IiB4PSIzNzcuNzQ4MyIgeT0iMTM2NC4zMzk0Ii8+PHJlY3QgZmlsbD0iI0U5RUNFRiIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iMzc3Ljc0ODMiIHk9IjEzNjguMzM5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjkzLjQ4ODMiIHg9IjI4MS4yNiIgeT0iMTM5MC4zMzQ1Ij5IZWFsdGggQ2hlY2s8L3RleHQ+PC9nPjwhLS1lbnRpdHkgU3R1ZGVudEVucm9sbG1lbnQgREItLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iU3R1ZGVudEVucm9sbG1lbnQgREIiIGRhdGEtc291cmNlLWxpbmU9IjM0IiBkYXRhLXVpZD0iZW50MDAxOCIgaWQ9ImVudGl0eV9TdHVkZW50RW5yb2xsbWVudCBEQiI+PHJlY3QgZmlsbD0iI0U5RUNFRiIgaGVpZ2h0PSI0Ni4yOTY5IiByeD0iMi41IiByeT0iMi41IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTk2LjM3ODkiIHg9IjYwNy44MSIgeT0iMTM1Ny4zMzk0Ii8+PHJlY3QgZmlsbD0iI0U5RUNFRiIgaGVpZ2h0PSIxMCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1IiB4PSI3ODQuMTg4OSIgeT0iMTM2Mi4zMzk0Ii8+PHJlY3QgZmlsbD0iI0U5RUNFRiIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNzgyLjE4ODkiIHk9IjEzNjQuMzM5NCIvPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9Ijc4Mi4xODg5IiB5PSIxMzY4LjMzOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNTYuMzc4OSIgeD0iNjIyLjgxIiB5PSIxMzkwLjMzNDUiPlN0dWRlbnRFbnJvbGxtZW50IERCPC90ZXh0PjwvZz48IS0tZW50aXR5IFRMUyBUZXJtaW5hdGlvbi0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJUTFMgVGVybWluYXRpb24iIGRhdGEtc291cmNlLWxpbmU9IjM5IiBkYXRhLXVpZD0iZW50MDAyMCIgaWQ9ImVudGl0eV9UTFMgVGVybWluYXRpb24iPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iNDYuMjk2OSIgcng9IjIuNSIgcnk9IjIuNSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjE1NC40MDYzIiB4PSI0ODMuOCIgeT0iNTY3LjE5OTQiLz48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjEwIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iMTUiIHg9IjYxOC4yMDYzIiB5PSI1NzIuMTk5NCIvPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjYxNi4yMDYzIiB5PSI1NzQuMTk5NCIvPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iMiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIgd2lkdGg9IjQiIHg9IjYxNi4yMDYzIiB5PSI1NzguMTk5NCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjExNC40MDYzIiB4PSI0OTguOCIgeT0iNjAwLjE5NDUiPlRMUyBUZXJtaW5hdGlvbjwvdGV4dD48L2c+PCEtLWVudGl0eSBSb3V0aW5nIFJ1bGVzLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IlJvdXRpbmcgUnVsZXMiIGRhdGEtc291cmNlLWxpbmU9IjQwIiBkYXRhLXVpZD0iZW50MDAyMSIgaWQ9ImVudGl0eV9Sb3V0aW5nIFJ1bGVzIj48cmVjdCBmaWxsPSIjRTlFQ0VGIiBoZWlnaHQ9IjQ2LjI5NjkiIHJ4PSIyLjUiIHJ5PSIyLjUiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxMzcuMTUyMyIgeD0iNjczLjQyIiB5PSI1NjcuMTk5NCIvPjxyZWN0IGZpbGw9IiNFOUVDRUYiIGhlaWdodD0iMTAiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNSIgeD0iNzkwLjU3MjMiIHk9IjU3Mi4xOTk0Ii8+PHJlY3QgZmlsbD0iI0U5RUNFRiIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNzg4LjU3MjMiIHk9IjU3NC4xOTk0Ii8+PHJlY3QgZmlsbD0iI0U5RUNFRiIgaGVpZ2h0PSIyIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7IiB3aWR0aD0iNCIgeD0iNzg4LjU3MjMiIHk9IjU3OC4xOTk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iOTcuMTUyMyIgeD0iNjg4LjQyIiB5PSI2MDAuMTk0NSI+Um91dGluZyBSdWxlczwvdGV4dD48L2c+PCEtLWVudGl0eSBpbnRlcm5ldC0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJpbnRlcm5ldCIgZGF0YS1zb3VyY2UtbGluZT0iNDQiIGRhdGEtdWlkPSJlbnQwMDIyIiBpZD0iZW50aXR5X2ludGVybmV0Ij48cGF0aCBkPSJNODEyLjg1MTgsMzMwLjc5IEM4MTUuOTQ3NSwzMjUuNzU1OSA4MTkuODc2MSwzMjUuNDkwOCA4MjMuNjgzNSwzMjkuOTgwNiBDODI2Ljc5MTUsMzIzLjgwODcgODMxLjEzNTgsMzIzLjkwOTQgODM1LjM3NzUsMzI4Ljc4MDEgQzgzOC4yOTM1LDMyMy40NTc1IDg0Mi41NjEzLDMyMi45ODAxIDg0Ni4xNDEzLDMyOC4wOTU0IEM4NDkuODg5OCwzMjMuMTcxIDg1My43NDY3LDMyMi4wNzAzIDg1Ny43MzQsMzI3LjgzNjQgQzg2Mi43NzcyLDMyMi41NzMgODY3LjAwODIsMzIyLjcyMTcgODY5Ljg1MDcsMzI5Ljk2OCBDODczLjkwODMsMzI0LjgwMDUgODc4LjU2NjEsMzI1LjA3NSA4ODIuMjUyNSwzMzAuNDA2NSBDODg5LjU5MDQsMzMzLjI0NTkgODkxLjMyNzcsMzQwLjYwMiA4ODUuMDEyOSwzNDUuODc3NCBDODkwLjgxNzUsMzUyLjI3OSA4OTAuNjYzLDM1Ny4zNjI3IDg4Mi42NjcsMzYxLjcyMDkgQzg4MC43MTI4LDM2Ny44ODE1IDg3NS4xNzksMzY4LjI4OTYgODcxLjQzMDIsMzYzLjU3NTIgQzg2OC40OTA0LDM3MS44NDg1IDg2NC4wMjMxLDM3Mi44OTA1IDg1Ny44OTkyLDM2Ni41MTY4IEM4NTYuOTY2OCwzNzIuMjMzIDg1Mi4yNzM0LDM3NC40MTU5IDg0Ny4zODU0LDM3MS4xNDM1IEM4NDIuNzg3MywzNzUuMzQxNyA4MzcuNTA0MywzNzQuODAxOCA4MzUuNTQyMSwzNjguMjQxNyBDODI5LjAyMjMsMzczLjA3NzIgODI1Ljc5NzIsMzcwLjQ0MzEgODIzLjU4OTksMzYzLjc2NDkgQzgxOS4zODE2LDM2OC4yMjA1IDgxNC4zMTQzLDM2Ny43NTIxIDgxMS42NDI3LDM2MS45NzE0IEM4MDEuOTg0NywzNjAuOTk4NyA3OTguNzYzOCwzNTMuNzc1MiA4MDUuMzU5OSwzNDYuMjkwMiBDNzk5LjI0MjksMzM3LjMwNzkgODAyLjMzNTcsMzMxLjczMjkgODEyLjg1MTgsMzMwLjc5IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNTUuODM1OSIgeD0iODE4LjA4IiB5PSIzNDkuOTA0NSI+SW50ZXJuZXQ8L3RleHQ+PC9nPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJHTU4yOCIgZGF0YS1zb3VyY2UtbGluZT0iNTQiIGRhdGEtdWlkPSJlbnQwMDI5IiBpZD0iZW50aXR5X0dNTjI4Ij48cGF0aCBkPSJNOTQ3Ljc1LDU2Mi42NDk0IEw5NDcuNzUsNjE4LjA0NzggTDExNjguMjUwNSw2MTguMDQ3OCBMMTE2OC4yNTA1LDU3Mi42NDk0IEwxMTU4LjI1MDUsNTYyLjY0OTQgTDk0Ny43NSw1NjIuNjQ5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwYXRoIGQ9Ik0xMTU4LjI1MDUsNTYyLjY0OTQgTDExNTguMjUwNSw1NzIuNjQ5NCBMMTE2OC4yNTA1LDU3Mi42NDk0IEwxMTU4LjI1MDUsNTYyLjY0OTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNjUuNTY0OSIgeD0iOTUzLjc1IiB5PSI1NzkuNzE2MyI+RG9taW5pbzo8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTk5LjUwMDUiIHg9Ijk1My43NSIgeT0iNTk0Ljg0OTEiPmFjYWRlbWlhLmluZ2VuaXVtY29kZXguY29tPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIzMS43MTI5IiB4PSI5NTMuNzUiIHk9IjYwOS45ODE5Ij5UTFM6PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijg0LjgwNDciIHg9Ijk4OS41OTUyIiB5PSI2MDkuOTgxOSI+TGV0J3MgRW5jcnlwdDwvdGV4dD48L2c+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkdNTjMxIiBkYXRhLXNvdXJjZS1saW5lPSI2MCIgZGF0YS11aWQ9ImVudDAwMzIiIGlkPSJlbnRpdHlfR01OMzEiPjxwYXRoIGQ9Ik0xMTU2LjgzLDc4OS44MTk0IEwxMTU2LjgzLDg3NS40ODM0IEwxMzQxLjE3NDIsODc1LjQ4MzQgTDEzNDEuMTc0Miw3OTkuODE5NCBMMTMzMS4xNzQyLDc4OS44MTk0IEwxMTU2LjgzLDc4OS44MTk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTEzMzEuMTc0Miw3ODkuODE5NCBMMTMzMS4xNzQyLDc5OS44MTk0IEwxMzQxLjE3NDIsNzk5LjgxOTQgTDEzMzEuMTc0Miw3ODkuODE5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5OS4xNTA0IiB4PSIxMTYyLjgzIiB5PSI4MDYuODg2MyI+TmdpbnggQ29uZmlnOjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNjMuMzQ0MiIgeD0iMTE2Mi44MyIgeT0iODIyLjAxOTEiPi0gR3ppcC9Ccm90bGkgY29tcHJlc3Npb248L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTI0LjY2MTYiIHg9IjExNjIuODMiIHk9IjgzNy4xNTE5Ij4tIFN0YXRpYyBmaWxlIGNhY2hpbmc8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTA3LjI0MzciIHg9IjExNjIuODMiIHk9Ijg1Mi4yODQ3Ij4tIEdyYXBoUUwgcHJveHk8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTE4LjkxMDYiIHg9IjExNjIuODMiIHk9Ijg2Ny40MTc1Ij4tIFNlY3VyaXR5IGhlYWRlcnM8L3RleHQ+PC9nPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJHTU4zNCIgZGF0YS1zb3VyY2UtbGluZT0iNjgiIGRhdGEtdWlkPSJlbnQwMDM1IiBpZD0iZW50aXR5X0dNTjM0Ij48cGF0aCBkPSJNOTQ0LjMxLDEwNjMuNTQ5NCBMOTQ0LjMxLDExNjQuMzQ2MyBMMTA5OS42OTYyLDExNjQuMzQ2MyBMMTA5OS42OTYyLDEwNzMuNTQ5NCBMMTA4OS42OTYyLDEwNjMuNTQ5NCBMOTQ0LjMxLDEwNjMuNTQ5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwYXRoIGQ9Ik0xMDg5LjY5NjIsMTA2My41NDk0IEwxMDg5LjY5NjIsMTA3My41NDk0IEwxMDk5LjY5NjIsMTA3My41NDk0IEwxMDg5LjY5NjIsMTA2My41NDk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjExNy40Njk3IiB4PSI5NTAuMzEiIHk9IjEwODAuNjE2MyI+T3B0aW1pemFjaW9uZXM6PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijc0LjczNzMiIHg9Ijk1MC4zMSIgeT0iMTA5NS43NDkxIj4tIFNlcnZlciBHQzwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5MS4xNzE0IiB4PSI5NTAuMzEiIHk9IjExMTAuODgxOSI+LSBSZWFkeVRvUnVuPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEzNC4zODYyIiB4PSI5NTAuMzEiIHk9IjExMjYuMDE0NyI+LSBDb25uZWN0aW9uIHBvb2xpbmc8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iOTEuNzQ5IiB4PSI5NTAuMzEiIHk9IjExNDEuMTQ3NSI+LSBSYXRlIGxpbWl0aW5nPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEwMS41ODc5IiB4PSI5NTAuMzEiIHk9IjExNTYuMjgwMyI+LSBKV1QgdmFsaWRhdGlvbjwvdGV4dD48L2c+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkdNTjM3IiBkYXRhLXNvdXJjZS1saW5lPSI3NyIgZGF0YS11aWQ9ImVudDAwMzgiIGlkPSJlbnRpdHlfR01OMzciPjxwYXRoIGQ9Ik05NDMuNTYsMTM0NS4yMjk0IEw5NDMuNTYsMTQxNS43NjA2IEwxMDkwLjQ0NjcsMTQxNS43NjA2IEwxMDkwLjQ0NjcsMTM1NS4yMjk0IEwxMDgwLjQ0NjcsMTM0NS4yMjk0IEw5NDMuNTYsMTM0NS4yMjk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTEwODAuNDQ2NywxMzQ1LjIyOTQgTDEwODAuNDQ2NywxMzU1LjIyOTQgTDEwOTAuNDQ2NywxMzU1LjIyOTQgTDEwODAuNDQ2NywxMzQ1LjIyOTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNzEuODA0NyIgeD0iOTQ5LjU2IiB5PSIxMzYyLjI5NjMiPlJlY3Vyc29zOjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4Ny4wMDczIiB4PSI5NDkuNTYiIHk9IjEzNzcuNDI5MSI+LSAyIENQVSBjb3JlczwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4NS44OTY1IiB4PSI5NDkuNTYiIHk9IjEzOTIuNTYxOSI+LSAyLjUgR0IgUkFNPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyNS44ODY3IiB4PSI5NDkuNTYiIHk9IjE0MDcuNjk0NyI+LSBQZXJzaXN0ZW50IHZvbHVtZTwvdGV4dD48L2c+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkdNTjQwIiBkYXRhLXNvdXJjZS1saW5lPSI4NCIgZGF0YS11aWQ9ImVudDAwNDEiIGlkPSJlbnRpdHlfR01ONDAiPjxwYXRoIGQ9Ik05NDMuODcsODA0Ljk0OTQgTDk0My44Nyw4NjAuMzQ3OCBMMTEyMi4xMjY4LDg2MC4zNDc4IEwxMTIyLjEyNjgsODE0Ljk0OTQgTDExMTIuMTI2OCw4MDQuOTQ5NCBMOTQzLjg3LDgwNC45NDk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTExMTIuMTI2OCw4MDQuOTQ5NCBMMTExMi4xMjY4LDgxNC45NDk0IEwxMTIyLjEyNjgsODE0Ljk0OTQgTDExMTIuMTI2OCw4MDQuOTQ5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI0NC42NTU4IiB4PSI5NDkuODciIHk9IjgyMi4wMTYzIj5DSS9DRDo8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODYuNTk0NyIgeD0iOTk4LjY1ODEiIHk9IjgyMi4wMTYzIj5HaXRlYSBBY3Rpb25zPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5Ni43NDQ2IiB4PSI5NDkuODciIHk9IjgzNy4xNDkxIj5BdXRvLXNjYWxpbmc6PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjI2LjUwNzgiIHg9IjEwNTAuNzQ3IiB5PSI4MzcuMTQ5MSI+SFBBPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4OS41NTI3IiB4PSI5NDkuODciIHk9Ijg1Mi4yODE5Ij5OYW1lc3BhY2U6PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjYzLjU3MTgiIHg9IjEwNDMuNTU1MSIgeT0iODUyLjI4MTkiPmFjYWRlbWlhPC90ZXh0PjwvZz48IS0tbGluayBicm93c2VyIHRvIGludGVybmV0LS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9ImJyb3dzZXIiIGRhdGEtZW50aXR5LTI9ImludGVybmV0IiBkYXRhLXNvdXJjZS1saW5lPSI0NyIgZGF0YS11aWQ9ImxuazIzIiBpZD0ibGlua19icm93c2VyX2ludGVybmV0Ij48cGF0aCBkPSJNODQ2LDIyNy41MDg1IEM4NDYsMjI3LjcyNzYgODQ2LDIyNy45NDcyIDg0NiwyMjguMTY3MSBDODQ2LDIyOS4wNDY5IDg0NiwyMjkuOTMzMSA4NDYsMjMwLjgyNTMgQzg0NiwyMzIuNjA5NyA4NDYsMjM0LjQxNzkgODQ2LDIzNi4yNDU2IEM4NDYsMjY1LjQ4OTQgODQ2LDI5My43Mzk0IDg0NiwzMTUuNjQ5NCIgZmlsbD0ibm9uZSIgaWQ9ImJyb3dzZXItdG8taW50ZXJuZXQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9Ijg0NiwzMjEuNjQ5NCw4NTAsMzEyLjY0OTQsODQ2LDMxNi42NDk0LDg0MiwzMTIuNjQ5NCw4NDYsMzIxLjY0OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI0MS43NDg1IiB4PSI4NDciIHk9IjI4Ny45NzYzIj5IVFRQUzwvdGV4dD48L2c+PCEtLWxpbmsgaW50ZXJuZXQgdG8gaW5ncmVzcy0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJpbnRlcm5ldCIgZGF0YS1lbnRpdHktMj0iaW5ncmVzcyIgZGF0YS1zb3VyY2UtbGluZT0iNDgiIGRhdGEtdWlkPSJsbmsyNCIgaWQ9ImxpbmtfaW50ZXJuZXRfaW5ncmVzcyI+PHBhdGggZD0iTTg0NiwzNjguNTA5NCBDODQ2LDM5OC4xNTQ0IDg0Niw0NTIuMTE2OSA4NDYsNDk5LjI3NjkgQzg0Niw1MDAuMDEzOCA4NDYsNTAwLjc0OSA4NDYsNTAxLjQ4MjQgQzg0Niw1MDEuODQ5MSA4NDYsNDk2LjIxNTQgODQ2LDQ5Ni41ODEyIiBmaWxsPSJub25lIiBpZD0iaW50ZXJuZXQtdG8taW5ncmVzcyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iODQ2LDUwMi41ODEyLDg1MCw0OTMuNTgxMiw4NDYsNDk3LjU4MTIsODQyLDQ5My41ODEyLDg0Niw1MDIuNTgxMiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijc1LjA3MzciIHg9Ijg0NyIgeT0iNDExLjI2NjMiPkhUVFBTIDo0NDM8L3RleHQ+PC9nPjwhLS1saW5rIGluZ3Jlc3MgdG8gbmdpbngtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0iaW5ncmVzcyIgZGF0YS1lbnRpdHktMj0ibmdpbngiIGRhdGEtc291cmNlLWxpbmU9IjQ5IiBkYXRhLXVpZD0ibG5rMjUiIGlkPSJsaW5rX2luZ3Jlc3NfbmdpbngiPjxwYXRoIGQ9Ik04NDIuNTM5NCw2MzcuNTYwNCBDODQyLjUxMTQsNjM3LjkzMzYgODQyLjQ4MzMsNjM4LjMwODUgODQyLjQ1NTEsNjM4LjY4NDggQzg0Mi4yMjk2LDY0MS42OTU3IDg0MS45OTY3LDY0NC44MDQ1IDg0MS43NTc1LDY0Ny45OTcyIEM4NDEuMjc5Miw2NTQuMzgyNyA4NDAuNzc1Nyw2NjEuMTAzOSA4NDAuMjU1NSw2NjguMDQ5IEM4MzkuMjE1LDY4MS45MzkxIDgzOC4xMDc1LDY5Ni43MjQ0IDgzNyw3MTEuNTA5NCBDODM1Ljg5MjUsNzI2LjI5NDQgODM0Ljc4NSw3NDEuMDc5MSA4MzMuNzQ0NSw3NTQuOTY3OSBDODMzLjQ4NDQsNzU4LjQ0MDEgODMzLjIyODUsNzYxLjg1NjMgODMyLjk3NzgsNzY1LjIwMjUgQzgzMi45NDY1LDc2NS42MjA4IDgzMy4zNjM1LDc2MC4wNTQ4IDgzMy4zMzIzLDc2MC40NzA4IiBmaWxsPSJub25lIiBpZD0iaW5ncmVzcy10by1uZ2lueCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iODMyLjg4NCw3NjYuNDU0MSw4MzcuNTQ1Miw3NTcuNzc4MSw4MzMuMjU3Niw3NjEuNDY4LDgyOS41Njc2LDc1Ny4xODA0LDgzMi44ODQsNzY2LjQ1NDEiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI1OC41NTA4IiB4PSI4NDEuNjgiIHk9IjY3NC41NjYzIj5IVFRQIDo4MDwvdGV4dD48L2c+PCEtLWxpbmsgbmdpbnggdG8gYXNwbmV0LS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9Im5naW54IiBkYXRhLWVudGl0eS0yPSJhc3BuZXQiIGRhdGEtc291cmNlLWxpbmU9IjUwIiBkYXRhLXVpZD0ibG5rMjYiIGlkPSJsaW5rX25naW54X2FzcG5ldCI+PHBhdGggZD0iTTgyNC4yMDQsODc5Ljg5MzUgQzgyMy4yNDM1LDg4NC40OTk1IDgyMi4wNTQ5LDg4OS4xODQ3IDgyMC41ODY0LDg5My44MTI1IEM4MTcuNjQ5NCw5MDMuMDY4MSA4MTMuNTkyNSw5MTIuMDk0NCA4MDgsOTE5Ljc5OTQgQzc1OS45NjUsOTg1Ljk2NDQgNjgxLjY5NSwxMDMzLjc4NjkgNjE0LjU4ODcsMTA2NS4yOTQ0IEM1ODEuMDM1NiwxMDgxLjA0ODEgNTUwLjI3MzQsMTA5Mi43MjMxIDUyNy40NzcsMTEwMC41NzI4IEM1MTYuMDc4OCwxMTA0LjQ5NzcgNTA2LjY3MjEsMTEwNy40NjYyIDQ5OS45MDM2LDExMDkuNTEgQzQ5OS4wNTc2LDExMDkuNzY1NSA0OTguMjUyNywxMTEwLjAwNjYgNDk3LjQ5MDQsMTExMC4yMzMyIEM0OTcuMTA5MiwxMTEwLjM0NjUgNTAyLjQ5MzQsMTEwOC43NTg1IDUwMi4xMzM3LDExMDguODY0NiIgZmlsbD0ibm9uZSIgaWQ9Im5naW54LXRvLWFzcG5ldCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iNDk2LjM3ODksMTExMC41NjI0LDUwNi4xNDI5LDExMTEuODUyMyw1MDEuMTc0NSwxMTA5LjE0NzYsNTAzLjg3OTIsMTEwNC4xNzkyLDQ5Ni4zNzg5LDExMTAuNTYyNCIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijc1LjA5MjgiIHg9Ijc5Ni43MSIgeT0iOTQwLjg2NjMiPkhUVFAgOjUwMDA8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNTQuMjk3OSIgeD0iODA3LjEwNzUiIHk9Ijk1NS45OTkxIj4vZ3JhcGhxbDwvdGV4dD48L2c+PCEtLWxpbmsgYXNwbmV0IHRvIHNxbHNlcnZlci0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJhc3BuZXQiIGRhdGEtZW50aXR5LTI9InNxbHNlcnZlciIgZGF0YS1zb3VyY2UtbGluZT0iNTEiIGRhdGEtdWlkPSJsbmsyNyIgaWQ9ImxpbmtfYXNwbmV0X3NxbHNlcnZlciI+PHBhdGggZD0iTTQ5Ni4zMTM1LDExMTQuNjA3MiBDNDk2LjQ5ODUsMTExNC42MDE5IDQ5Ni42ODY1LDExMTQuNTk2NiA0OTYuODc3MywxMTE0LjU5MTQgQzQ5Ny42NDA1LDExMTQuNTcwNSA0OTguNDQ5NSwxMTE0LjU1MDMgNDk5LjMwMjgsMTExNC41MzEzIEM1MDYuMTI5MywxMTE0LjM3OTQgNTE1Ljc5NDksMTExNC4zMDUzIDUyNy41OTk4LDExMTQuNTkwNiBDNTUxLjIwOTcsMTExNS4xNjEyIDU4My4zNzY5LDExMTcuMTY5NCA2MTguNTAzOCwxMTIyLjg2NjkgQzY4OC43NTc1LDExMzQuMjYxOSA3NzAuODUsMTE2MC40MTQ0IDgyMCwxMjE5LjMzOTQgQzgzMS4zMDc1LDEyMzIuODk2OSA4MzguMjYwNiwxMjQ5LjQ4MDYgODQyLjMxNzgsMTI2Ni43ODAyIEM4NDQuMzQ2NCwxMjc1LjQyOTkgODQ1LjY1MSwxMjg0LjI1ODYgODQ2LjQxMzksMTI5Mi45Nzc1IEM4NDYuNTA5MywxMjk0LjA2NzMgODQ2LjU5NjIsMTI5NS4xNTU1IDg0Ni42NzUsMTI5Ni4yNDEzIEM4NDYuNzE0NCwxMjk2Ljc4NDMgODQ2Ljc1MTgsMTI5Ny4zMjY2IDg0Ni43ODcyLDEyOTcuODY4MyBDODQ2LjgwNDksMTI5OC4xMzkyIDg0Ni40NTIyLDEyOTIuNDIxMyA4NDYuNDY4OSwxMjkyLjY5MTgiIGZpbGw9Im5vbmUiIGlkPSJhc3BuZXQtdG8tc3Fsc2VydmVyIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBvbHlnb24gZmlsbD0iIzAwMDAwMCIgcG9pbnRzPSI4NDYuODM4OCwxMjk4LjY4MDQsODUwLjI3NjQsMTI4OS40NTEsODQ2LjUzMDUsMTI5My42ODk5LDg0Mi4yOTE2LDEyODkuOTQ0MSw4NDYuODM4OCwxMjk4LjY4MDQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI2Ni40NTM2IiB4PSI4MDguNDkiIHk9IjEyMDcuNDA2MyI+VENQIDoxNDMzPC90ZXh0PjwvZz48IS0tbGluayBpbmdyZXNzIHRvIEdNTjI4LS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9ImluZ3Jlc3MiIGRhdGEtZW50aXR5LTI9IkdNTjI4IiBkYXRhLXNvdXJjZS1saW5lPSI1NCIgZGF0YS11aWQ9ImxuazMwIiBpZD0ibGlua19pbmdyZXNzX0dNTjI4Ij48cGF0aCBkPSJNODM5LjI2NzYsNTAyLjY1IEM4MzkuMjcxMiw1MDIuMzc1OSA4MzkuMjc1MSw1MDIuMTAxNiA4MzkuMjc5Myw1MDEuODI3MSBDODM5LjI4NzYsNTAxLjI3NzkgODM5LjI5Nyw1MDAuNzI3OSA4MzkuMzA3NSw1MDAuMTc2OSBDODM5LjMyODYsNDk5LjA3NDkgODM5LjM1MzksNDk3Ljk2OTIgODM5LjM4MzksNDk2Ljg2MDMgQzgzOS40NDM4LDQ5NC42NDI1IDgzOS41MjIxLDQ5Mi40MTE2IDgzOS42MjAxLDQ5MC4xNzEgQzgzOS44MTYxLDQ4NS42ODk2IDg0MC4wOTEzLDQ4MS4xNjg5IDg0MC40NTc3LDQ3Ni42MzQ1IEM4NDEuOTIzMSw0NTguNDk2OSA4NDQuODQ3NSw0NDAuMTM5NCA4NTAsNDIzLjE5OTQgQzg1NC4yMiw0MDkuMzM5NCA4NTQuOCw0MDIuNjY5NCA4NjcuNSwzOTUuNjk5NCBDOTUxLjQ0LDM0OS42Mjk0IDEwMjEuNzgsNDk4LjIzOTQgMTA0Ny41Miw1NjIuMzU5NCIgZmlsbD0ibm9uZSIgaWQ9ImluZ3Jlc3MtR01OMjgiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjcsNzsiLz48L2c+PCEtLWxpbmsgbmdpbnggdG8gR01OMzEtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0ibmdpbngiIGRhdGEtZW50aXR5LTI9IkdNTjMxIiBkYXRhLXNvdXJjZS1saW5lPSI2MCIgZGF0YS11aWQ9ImxuazMzIiBpZD0ibGlua19uZ2lueF9HTU4zMSI+PHBhdGggZD0iTTgzNi4yMDIyLDgwNi45MDYgQzgzNi4zNTI3LDgwNi40ODkxIDgzNi41MDUzLDgwNi4wNjg0IDgzNi42NjAxLDgwNS42NDQgQzgzNi45Njk2LDgwNC43OTUzIDgzNy4yODc4LDgwMy45MzE5IDgzNy42MTQ3LDgwMy4wNTQ0IEM4MzguMjY4Niw4MDEuMjk5NiA4MzguOTU3Miw3OTkuNDg4OCA4MzkuNjgxMiw3OTcuNjI4NiBDODQxLjEyOTEsNzkzLjkwOCA4NDIuNzE4Miw3ODkuOTg5MyA4NDQuNDUyMSw3ODUuOTIyNyBDODQ3LjkxOTgsNzc3Ljc4OTYgODUxLjk2NjYsNzY5LjA2NTMgODU2LjYyMTMsNzYwLjE1MzEgQzg3NS4yNCw3MjQuNTA0NCA5MDMuNTg1LDY4NS44NDk0IDk0My41LDY2OS45OTk0IEM5ODAuNDcsNjU1LjMxOTQgMTA4NS41Myw2NTUuMzE5NCAxMTIyLjUsNjY5Ljk5OTQgQzExNzUuMzYsNjkwLjk4OTQgMTIxMS4zNiw3NDguNjQ5NCAxMjMxLjA1LDc4OS4zMjk0IiBmaWxsPSJub25lIiBpZD0ibmdpbngtR01OMzEiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjcsNzsiLz48L2c+PCEtLWxpbmsgYXNwbmV0IHRvIEdNTjM0LS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9ImFzcG5ldCIgZGF0YS1lbnRpdHktMj0iR01OMzQiIGRhdGEtc291cmNlLWxpbmU9IjY4IiBkYXRhLXVpZD0ibG5rMzYiIGlkPSJsaW5rX2FzcG5ldF9HTU4zNCI+PHBhdGggZD0iTTQ5Ny42NjkyLDExMTMuOTM5NCBDNDk4LjI2MTksMTExMy45Mzk0IDQ5OC44NTQ1LDExMTMuOTM5NCA0OTkuNDQ3MSwxMTEzLjkzOTQgQzUwMC42MzIzLDExMTMuOTM5NCA1MDEuODE3NiwxMTEzLjkzOTQgNTAzLjAwMjgsMTExMy45Mzk0IEM1MDcuNzQzNywxMTEzLjkzOTQgNTEyLjQ4NDYsMTExMy45Mzk0IDUxNy4yMjU1LDExMTMuOTM5NCBDNTI2LjcwNzMsMTExMy45Mzk0IDUzNi4xODkxLDExMTMuOTM5NCA1NDUuNjcwOCwxMTEzLjkzOTQgQzU2NC42MzQzLDExMTMuOTM5NCA1ODMuNTk3NiwxMTEzLjkzOTQgNjAyLjU2MDgsMTExMy45Mzk0IEM2NDAuNDg3MiwxMTEzLjkzOTQgNjc4LjQxMzEsMTExMy45Mzk0IDcxNi4zMzg4LDExMTMuOTM5NCBDNzkyLjE5LDExMTMuOTM5NCA4NjguMDQsMTExMy45Mzk0IDk0My44OSwxMTEzLjkzOTQiIGZpbGw9Im5vbmUiIGlkPSJhc3BuZXQtR01OMzQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjcsNzsiLz48L2c+PCEtLWxpbmsgc3Fsc2VydmVyIHRvIEdNTjM3LS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9InNxbHNlcnZlciIgZGF0YS1lbnRpdHktMj0iR01OMzciIGRhdGEtc291cmNlLWxpbmU9Ijc3IiBkYXRhLXVpZD0ibG5rMzkiIGlkPSJsaW5rX3NxbHNlcnZlcl9HTU4zNyI+PHBhdGggZD0iTTg0OC4zMDY5LDEzODAuNDg5NCBDODQ4LjQ0MDUsMTM4MC40ODk0IDg0OC41NzQyLDEzODAuNDg5NCA4NDguNzA3OCwxMzgwLjQ4OTQgQzg0OS4yNDIzLDEzODAuNDg5NCA4NDkuNzc2OCwxMzgwLjQ4OTQgODUwLjMxMTMsMTM4MC40ODk0IEM4NTEuMzgwMywxMzgwLjQ4OTQgODUyLjQ0OTMsMTM4MC40ODk0IDg1My41MTgzLDEzODAuNDg5NCBDODU3Ljc5NDMsMTM4MC40ODk0IDg2Mi4wNzAyLDEzODAuNDg5NCA4NjYuMzQ1OSwxMzgwLjQ4OTQgQzg3NC44OTc1LDEzODAuNDg5NCA4ODMuNDQ4OCwxMzgwLjQ4OTQgODkyLDEzODAuNDg5NCBDOTA5LjEwMjUsMTM4MC40ODk0IDkyNi4yMDUsMTM4MC40ODk0IDk0My4zMSwxMzgwLjQ4OTQiIGZpbGw9Im5vbmUiIGlkPSJzcWxzZXJ2ZXItR01OMzciIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjcsNzsiLz48L2c+PCEtLWxpbmsgazNzIHRvIEdNTjQwLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9ImszcyIgZGF0YS1lbnRpdHktMj0iR01ONDAiIGRhdGEtc291cmNlLWxpbmU9Ijg0IiBkYXRhLXVpZD0ibG5rNDIiIGlkPSJsaW5rX2szc19HTU40MCI+PHBhdGggZD0iTTkyMC4wNTUxLDYyNC43MTU2IEM5MjAuMDg0OSw2MjQuODE5NyA5MjAuMTE0OSw2MjQuOTIzOCA5MjAuMTQ0OCw2MjUuMDI4IEM5MjAuMjA0OCw2MjUuMjM2NCA5MjAuMjY1MSw2MjUuNDQ1MiA5MjAuMzI1Nyw2MjUuNjU0MyBDOTIwLjU2OCw2MjYuNDkwNiA5MjAuODE1Miw2MjcuMzMyMiA5MjEuMDY3Miw2MjguMTc3OSBDOTIxLjU3MTEsNjI5Ljg2OTEgOTIyLjA5NDEsNjMxLjU3NjMgOTIyLjYzNTgsNjMzLjI4OTUgQzkyNC44MDI1LDY0MC4xNDI1IDkyNy4yNjc1LDY0Ny4wOTE5IDkzMCw2NTMuNDk5NCBDOTU0LjAzLDcwOS44NTk0IDk5Mi4wOSw3NzAuNjU5NCAxMDE0LjYsODA0LjY0OTQiIGZpbGw9Im5vbmUiIGlkPSJrM3MtR01ONDAiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTtzdHJva2UtZGFzaGFycmF5OjcsNzsiLz48L2c+PCEtLVNSQz1bWFBMRFN6aXM0OFJsXzFMUnpQM3M4NWxybnBKTVUzR1pLbnpzdVplZ29LdUVSV3VHa1E4bTBXNDYwNXFoNlZfdEIwMUlhZkw5b2VFNnM3czFWTlFuSV9yWXJyV1hyODluNlBhRGJwTkpoMEFmMmhuWC1RUktnZjU1aDhKSXlFbGl4VW5nRFp2TUFMc1dSWEtOTHZVM29weUY1QmNnUVlMSHNreUVjcnZEdS1haVlZb3QwWTdibmNCNWU0MThpQUk1TGt2elFjbkpTMk9qNmtaM1hCRUkzbE1nMlBmUVMybVJaMkE3MFJzT2JZSmkwSkVHLXRWdTZXNHpFbVJlRlIwZEI1YjF5Sl9ZcVlrTk1scmRLQlRJenBvRVBUYThmWTVUWjN6dndxbHFxV0x2VnN1VzVXdDFRbFpqV0xMNG1OOFMwaWpQV0hMZGxfajNEd0p3Nmxjek9UakFBcUFKSFJfME1nWGpISjFVc0RhTmdlM2hRX2VUWkd2ODNpNUJCZl96NWtkVTNhR1VFUk5DeVhuY05BM3Z6RGdMdTFEZ1d4M0d3ZGN4enhzcWNIcjBpZmVWeXY3ZlZ6NzZ3VUJhT1BmMWg3R2VGWkVySDdrQy0xeGZLYjUwWWZnMFpZM2Rjak5obC16WEFlalFTTWNGdEV5LVBaMWt4Rmg4VjhqQ3MzTjRReW10Rnl0Q1YxUjZYLXFSQVhJazZiZzYxOGpibzJ6anhJZFFMdGFNcEI4YmVfQnJLaThCeDcwc0UzbHBrdFZkVmR5VkpLNzVjS2dqWDczTFhDZERKbWFwcE4zNUR0MGRJdXQ2LUREdlUyVXdybGdBeDM2eEpvNTNOTjU5VHdfYV9sWjdIM01NRGFGSXhEaDFqdDBrTDVEMHh1dlFKaWtzMEJuVEhENFJrYTY5cHRHS2NnV1JZdHZfajlGMDQ2d3BSOTU2RXFGbTFpaE0yU0VCWV9FZUNwZjFRRFpXWGs3UkdIR0NwakxzSWtVeDcwbTZfeWhKcVpOM1BuNnJOWVZTNXRlOE1LcElGb3hFcHpyQ01XSkRveEs1alVmOEFEX2h2TVlZZzMxUzNRekZib0VvVEZEdkdZQUtsQWJvQWxscDJSTG5hNUNubEhKa3FSdW5yOFV2dGpPc2VqNDQ1LUd1YjR5WHhGSUp3S2d0dWNLTmhHX3BCeG0tbFQ3QTJrdmRuTzVIUFJzbDdUT0wzSWxhQjV5SktqWkozYTdqOVpLZUNNeXFqcmpPOC01aHlxRVVLQWUwekE2c2xFOVZNRXZsU2VfS0RreXl6Z2s0SmpuY0FjYTI0XzVCcDVxVkdRc0t3OTBJY1dlR1Q5cGpCNnVLZHZaV1hNLXc3bUJqQlltbTlJdUhlbXZlcFkxVV80RWJlU0E0elNhYnA2eVc2Vl9iYm1sQXJscWJxRUd5QVQ1S1UxbmZnUW5MYkdqNTd6aUc5QnV4WklWWDVrVlM4ZUVuSndacnFsVDN6S3RFTjZ2MVRCaU9qclV1LXV2eFV6U2gtdjNWMDAwMF0tLT48L2c+PC9zdmc+",
"08-c4-context": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U3R5bGVUeXBlPSJ0ZXh0L2NzcyIgZGF0YS1kaWFncmFtLXR5cGU9IkRFU0NSSVBUSU9OIiBoZWlnaHQ9IjcwMnB4IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBzdHlsZT0id2lkdGg6OTM0cHg7aGVpZ2h0OjcwMnB4O2JhY2tncm91bmQ6I0ZGRkZGRjsiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDkzNCA3MDIiIHdpZHRoPSI5MzRweCIgem9vbUFuZFBhbj0ibWFnbmlmeSI+PHRpdGxlPlNpc3RlbWEgZGUgUmVnaXN0cm8gZGUgRXN0dWRpYW50ZXMgLSBEaWFncmFtYSBkZSBDb250ZXh0byAoQzQgTGV2ZWwgMSk8L3RpdGxlPjxkZWZzLz48Zz48ZyBjbGFzcz0idGl0bGUiIGRhdGEtc291cmNlLWxpbmU9IjUiPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjIyIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI5MDEuMDg2OSIgeD0iMTUiIHk9IjM1LjQyMDkiPlNpc3RlbWEgZGUgUmVnaXN0cm8gZGUgRXN0dWRpYW50ZXMgLSBEaWFncmFtYSBkZSBDb250ZXh0byAoQzQgTGV2ZWwgMSk8L3RleHQ+PC9nPjwhLS1lbnRpdHkgc3lzdGVtLS0+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9InN5c3RlbSIgZGF0YS1zb3VyY2UtbGluZT0iMTQiIGRhdGEtdWlkPSJlbnQwMDA0IiBpZD0iZW50aXR5X3N5c3RlbSI+PHJlY3QgZmlsbD0iI0FERDhFNiIgaGVpZ2h0PSI2OC44OTA2IiByeD0iNSIgcnk9IjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNzguMzQwOCIgeD0iMzMzLjA2MDciIHk9IjM0MS44ODk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtc3R5bGU9Iml0YWxpYyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMzYuMjA2MSIgeD0iMzU0LjEyODEiIHk9IjM2NC44ODQ1Ij4mIzE3MTtTb2Z0d2FyZSBTeXN0ZW0mIzE4Nzs8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTU4LjM0MDgiIHg9IjM0My4wNjA3IiB5PSIzODEuMTgxNCI+U2lzdGVtYSBkZSBJbnNjcmlwY2kmIzI0MztuPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijc3LjE1NzIiIHg9IjM0My4wNjA3IiB5PSIzOTcuNDc4MiI+QWNhZCYjMjMzO21pY2E8L3RleHQ+PC9nPjwhLS1lbnRpdHkgZGF0YWJhc2UtLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iZGF0YWJhc2UiIGRhdGEtc291cmNlLWxpbmU9IjE3IiBkYXRhLXVpZD0iZW50MDAwNSIgaWQ9ImVudGl0eV9kYXRhYmFzZSI+PHJlY3QgZmlsbD0iI0QzRDNEMyIgaGVpZ2h0PSI2OC44OTA2IiByeD0iNSIgcnk9IjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNTQuMjY4NiIgeD0iMTYyLjEwMDciIHk9IjYwMi42NDk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtc3R5bGU9Iml0YWxpYyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMzIuMjY4NiIgeD0iMTczLjEwMDciIHk9IjYyNS42NDQ1Ij4mIzE3MTtFeHRlcm5hbCBTeXN0ZW0mIzE4Nzs8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTAxLjE5OTIiIHg9IjE4OC42MzU0IiB5PSI2NDEuOTQxNCI+QmFzZSBkZSBEYXRvczwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI3OC4wNjY0IiB4PSIxODguNjM1NCIgeT0iNjU4LjIzODIiPlNRTCBTZXJ2ZXI8L3RleHQ+PC9nPjwhLS1lbnRpdHkgc210cC0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJzbXRwIiBkYXRhLXNvdXJjZS1saW5lPSIyMCIgZGF0YS11aWQ9ImVudDAwMDYiIGlkPSJlbnRpdHlfc210cCI+PHJlY3QgZmlsbD0iI0QzRDNEMyIgaGVpZ2h0PSI2OC44OTA2IiByeD0iNSIgcnk9IjUiIHN0eWxlPSJzdHJva2U6IzQ5NTA1NztzdHJva2Utd2lkdGg6MTsiIHdpZHRoPSIxNTQuMjY4NiIgeD0iNTMwLjEwMDciIHk9IjYwMi42NDk0Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGZvbnQtc3R5bGU9Iml0YWxpYyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMzIuMjY4NiIgeD0iNTQxLjEwMDciIHk9IjYyNS42NDQ1Ij4mIzE3MTtFeHRlcm5hbCBTeXN0ZW0mIzE4Nzs8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTAxLjA0ODgiIHg9IjU1Ni43MTA2IiB5PSI2NDEuOTQxNCI+U2Vydmlkb3IgU01UUDwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI0OS43NjU2IiB4PSI1NTYuNzEwNiIgeT0iNjU4LjIzODIiPihFbWFpbCk8L3RleHQ+PC9nPjwhLS1lbnRpdHkgc3R1ZGVudC0tPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJzdHVkZW50IiBkYXRhLXNvdXJjZS1saW5lPSIxMSIgZGF0YS11aWQ9ImVudDAwMDIiIGlkPSJlbnRpdHlfc3R1ZGVudCI+PGVsbGlwc2UgY3g9IjkwLjIzMjkiIGN5PSI5NC4wNjYzIiBmaWxsPSIjRkZGRkZGIiByeD0iOCIgcnk9IjgiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNOTAuMjMyOSwxMDIuMDY2MyBMOTAuMjMyOSwxMjkuMDY2MyBNNzcuMjMyOSwxMTAuMDY2MyBMMTAzLjIzMjksMTEwLjA2NjMgTTkwLjIzMjksMTI5LjA2NjMgTDc3LjIzMjksMTQ0LjA2NjMgTTkwLjIzMjksMTI5LjA2NjMgTDEwMy4yMzI5LDE0NC4wNjYzIiBmaWxsPSJub25lIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNzQuODMzIiB4PSI1Mi44MTYzIiB5PSIxNTkuMDYxNCI+RXN0dWRpYW50ZTwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC1zdHlsZT0iaXRhbGljIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjczLjQwNDMiIHg9IjUzLjUzMDciIHk9IjgxLjc2NDUiPiYjMTcxO1BlcnNvbmEmIzE4Nzs8L3RleHQ+PC9nPjwhLS1lbnRpdHkgYWRtaW4tLT48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iYWRtaW4iIGRhdGEtc291cmNlLWxpbmU9IjEyIiBkYXRhLXVpZD0iZW50MDAwMyIgaWQ9ImVudGl0eV9hZG1pbiI+PGVsbGlwc2UgY3g9Ijc1NS4yMzA3IiBjeT0iOTQuMDY2MyIgZmlsbD0iI0ZGRkZGRiIgcng9IjgiIHJ5PSI4IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTc1NS4yMzA3LDEwMi4wNjYzIEw3NTUuMjMwNywxMjkuMDY2MyBNNzQyLjIzMDcsMTEwLjA2NjMgTDc2OC4yMzA3LDExMC4wNjYzIE03NTUuMjMwNywxMjkuMDY2MyBMNzQyLjIzMDcsMTQ0LjA2NjMgTTc1NS4yMzA3LDEyOS4wNjYzIEw3NjguMjMwNywxNDQuMDY2MyIgZmlsbD0ibm9uZSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjE0IiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9Ijk5LjA4MDEiIHg9IjcwNS42OTA3IiB5PSIxNTkuMDYxNCI+QWRtaW5pc3RyYWRvcjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxNCIgZm9udC1zdHlsZT0iaXRhbGljIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjczLjQwNDMiIHg9IjcxOC41Mjg2IiB5PSI4MS43NjQ1Ij4mIzE3MTtQZXJzb25hJiMxODc7PC90ZXh0PjwvZz48ZyBjbGFzcz0iZW50aXR5IiBkYXRhLWVudGl0eT0iR01OMTEiIGRhdGEtc291cmNlLWxpbmU9IjI5IiBkYXRhLXVpZD0iZW50MDAxMiIgaWQ9ImVudGl0eV9HTU4xMSI+PHBhdGggZD0iTTE2My4yODA3LDU3LjYwOTQgTDE2My4yODA3LDExMS41Njk0IEwxMjguMTIwNywxMTUuNTY5NCBMMTYzLjI4MDcsMTE5LjU2OTQgTDE2My4yODA3LDE3My41MzkxIEEwLDAgMCAwIDAgMTYzLjI4MDcsMTczLjUzOTEgTDQwNS4xODU1LDE3My41MzkxIEEwLDAgMCAwIDAgNDA1LjE4NTUsMTczLjUzOTEgTDQwNS4xODU1LDY3LjYwOTQgTDM5NS4xODU1LDU3LjYwOTQgTDE2My4yODA3LDU3LjYwOTQgQTAsMCAwIDAgMCAxNjMuMjgwNyw1Ny42MDk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTM5NS4xODU1LDU3LjYwOTQgTDM5NS4xODU1LDY3LjYwOTQgTDQwNS4xODU1LDY3LjYwOTQgTDM5NS4xODU1LDU3LjYwOTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgZm9udC13ZWlnaHQ9ImJvbGQiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iNzguOTA3NyIgeD0iMTY5LjI4MDciIHk9Ijc0LjY3NjMiPkVzdHVkaWFudGU8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTYxLjQxNDYiIHg9IjE2OS4yODA3IiB5PSI4OS44MDkxIj5Vc3VhcmlvIGRlbCBzaXN0ZW1hIHF1ZTo8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTgzLjg1MzUiIHg9IjE2OS4yODA3IiB5PSIxMDQuOTQxOSI+LSBTZSByZWdpc3RyYSB5IGFjdGl2YSBjdWVudGE8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMjE3LjEwODkiIHg9IjE2OS4yODA3IiB5PSIxMjAuMDc0NyI+LSBTZSBpbnNjcmliZSBlbiBtYXRlcmlhcyAobSYjMjI1O3ggMyk8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTk0LjA2NjkiIHg9IjE2OS4yODA3IiB5PSIxMzUuMjA3NSI+LSBWZSBzdXMgY29tcGEmIzI0MTtlcm9zIGRlIGNsYXNlPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE4MC41MzM3IiB4PSIxNjkuMjgwNyIgeT0iMTUwLjM0MDMiPi0gQ29uc3VsdGEgc3VzIGluc2NyaXBjaW9uZXM8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMjIwLjkwNDgiIHg9IjE2OS4yODA3IiB5PSIxNjUuNDczMSI+LSBBY2NlZGUgYSBzdSBkYXNoYm9hcmQgcGVyc29uYWw8L3RleHQ+PC9nPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJHTU4xNCIgZGF0YS1zb3VyY2UtbGluZT0iMzkiIGRhdGEtdWlkPSJlbnQwMDE1IiBpZD0iZW50aXR5X0dNTjE0Ij48cGF0aCBkPSJNNDQwLjA2MDcsNzIuNzM5NCBMNDQwLjA2MDcsMTU4LjQwMzQgQTAsMCAwIDAgMCA0NDAuMDYwNywxNTguNDAzNCBMNjcwLjQwNjQsMTU4LjQwMzQgQTAsMCAwIDAgMCA2NzAuNDA2NCwxNTguNDAzNCBMNjcwLjQwNjQsMTE5LjU2OTQgTDcwNS40NjA3LDExNS41Njk0IEw2NzAuNDA2NCwxMTEuNTY5NCBMNjcwLjQwNjQsODIuNzM5NCBMNjYwLjQwNjQsNzIuNzM5NCBMNDQwLjA2MDcsNzIuNzM5NCBBMCwwIDAgMCAwIDQ0MC4wNjA3LDcyLjczOTQiIGZpbGw9IiNGRkZGRkYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cGF0aCBkPSJNNjYwLjQwNjQsNzIuNzM5NCBMNjYwLjQwNjQsODIuNzM5NCBMNjcwLjQwNjQsODIuNzM5NCBMNjYwLjQwNjQsNzIuNzM5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMDQuODYzMyIgeD0iNDQ2LjA2MDciIHk9Ijg5LjgwNjMiPkFkbWluaXN0cmFkb3I8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTYyLjY5NjgiIHg9IjQ0Ni4wNjA3IiB5PSIxMDQuOTM5MSI+VXN1YXJpbyBwcml2aWxlZ2lhZG8gcXVlOjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyMDkuMzQ1NyIgeD0iNDQ2LjA2MDciIHk9IjEyMC4wNzE5Ij4tIEdlc3Rpb25hIHRvZG9zIGxvcyBlc3R1ZGlhbnRlczwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxOTcuNjQ3IiB4PSI0NDYuMDYwNyIgeT0iMTM1LjIwNDciPi0gQ3JlYSwgZWRpdGEsIGVsaW1pbmEgcmVnaXN0cm9zPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE3MC40NjYzIiB4PSI0NDYuMDYwNyIgeT0iMTUwLjMzNzUiPi0gVmlzdWFsaXphIHRvZG8gZWwgc2lzdGVtYTwvdGV4dD48L2c+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkdNTjE3IiBkYXRhLXNvdXJjZS1saW5lPSI0NyIgZGF0YS11aWQ9ImVudDAwMTgiIGlkPSJlbnRpdHlfR01OMTciPjxwYXRoIGQ9Ik01NDYuODMwNywyODAuNTM5NCBMNTQ2LjgzMDcsMzcyLjMyOTQgTDUxMS44NjA3LDM3Ni4zMjk0IEw1NDYuODMwNywzODAuMzI5NCBMNTQ2LjgzMDcsNDcyLjEzMzEgQTAsMCAwIDAgMCA1NDYuODMwNyw0NzIuMTMzMSBMODE3LjYzNjQsNDcyLjEzMzEgQTAsMCAwIDAgMCA4MTcuNjM2NCw0NzIuMTMzMSBMODE3LjYzNjQsMjkwLjUzOTQgTDgwNy42MzY0LDI4MC41Mzk0IEw1NDYuODMwNywyODAuNTM5NCBBMCwwIDAgMCAwIDU0Ni44MzA3LDI4MC41Mzk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTgwNy42MzY0LDI4MC41Mzk0IEw4MDcuNjM2NCwyOTAuNTM5NCBMODE3LjYzNjQsMjkwLjUzOTQgTDgwNy42MzY0LDI4MC41Mzk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjI0OS44MDU3IiB4PSI1NTIuODMwNyIgeT0iMjk3LjYwNjMiPlNpc3RlbWEgZGUgSW5zY3JpcGNpJiMyNDM7biBBY2FkJiMyMzM7bWljYTwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxODUuNTQ4MyIgeD0iNTUyLjgzMDciIHk9IjMxMi43MzkxIj5BcGxpY2FjaSYjMjQzO24gd2ViIHF1ZSBwZXJtaXRlOjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIyMDcuMTY4NSIgeD0iNTUyLjgzMDciIHk9IjMyNy44NzE5Ij4tIEF1dGVudGljYWNpJiMyNDM7biAoSldUICsgUEJLREYyKTwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNDcuMDE4MSIgeD0iNTUyLjgzMDciIHk9IjM0My4wMDQ3Ij4tIENSVUQgZGUgZXN0dWRpYW50ZXM8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTYwLjkwMDQiIHg9IjU1Mi44MzA3IiB5PSIzNTguMTM3NSI+LSBJbnNjcmlwY2kmIzI0MztuIGVuIG1hdGVyaWFzPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjIxNi4yMDc1IiB4PSI1NTIuODMwNyIgeT0iMzczLjI3MDMiPi0gVmFsaWRhY2kmIzI0MztuIGRlIHJlZ2xhcyBkZSBuZWdvY2lvPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE5OC4wNzg2IiB4PSI1NTIuODMwNyIgeT0iMzg4LjQwMzEiPi0gVmlzdWFsaXphY2kmIzI0MztuIGRlIGNvbXBhJiMyNDE7ZXJvczwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI0LjEzMjMiIHg9IjU1Mi44MzA3IiB5PSI0MDMuNTM2Ij4mIzE2MDs8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjQ1Ljg5OTkiIHg9IjU1Mi44MzA3IiB5PSI0MTguNjY4OCI+U3RhY2s6PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEzOC4zMzQ1IiB4PSI1NTIuODMwNyIgeT0iNDMzLjgwMTYiPkZyb250ZW5kOiBBbmd1bGFyIDIxPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE5MS43NTYzIiB4PSI1NTIuODMwNyIgeT0iNDQ4LjkzNDQiPkJhY2tlbmQ6IC5ORVQgMTAgKyBHcmFwaFFMPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjIyOS42MjY1IiB4PSI1NTIuODMwNyIgeT0iNDY0LjA2NzIiPkF1dGg6IEpXVCArIFJvbGVzIChBZG1pbi9TdHVkZW50KTwvdGV4dD48L2c+PGcgY2xhc3M9ImVudGl0eSIgZGF0YS1lbnRpdHk9IkdNTjIwIiBkYXRhLXNvdXJjZS1saW5lPSI2MiIgZGF0YS11aWQ9ImVudDAwMjEiIGlkPSJlbnRpdHlfR01OMjAiPjxwYXRoIGQ9Ik0zNTEuNjIwNyw1NzkuMTI5NCBMMzUxLjYyMDcsNjMzLjA5OTQgTDMxNi44NjA3LDYzNy4wOTk0IEwzNTEuNjIwNyw2NDEuMDk5NCBMMzUxLjYyMDcsNjk1LjA1OTEgQTAsMCAwIDAgMCAzNTEuNjIwNyw2OTUuMDU5MSBMNDk0Ljg0NDgsNjk1LjA1OTEgQTAsMCAwIDAgMCA0OTQuODQ0OCw2OTUuMDU5MSBMNDk0Ljg0NDgsNTg5LjEyOTQgTDQ4NC44NDQ4LDU3OS4xMjk0IEwzNTEuNjIwNyw1NzkuMTI5NCBBMCwwIDAgMCAwIDM1MS42MjA3LDU3OS4xMjk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHBhdGggZD0iTTQ4NC44NDQ4LDU3OS4xMjk0IEw0ODQuODQ0OCw1ODkuMTI5NCBMNDk0Ljg0NDgsNTg5LjEyOTQgTDQ4NC44NDQ4LDU3OS4xMjk0IiBmaWxsPSIjRkZGRkZGIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGZvbnQtd2VpZ2h0PSJib2xkIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjEyMi4yMjQxIiB4PSIzNTcuNjIwNyIgeT0iNTk2LjE5NjMiPlNRTCBTZXJ2ZXIgMjAyMjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI2OC44NjU3IiB4PSIzNTcuNjIwNyIgeT0iNjExLjMyOTEiPkFsbWFjZW5hOjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMDguODE3OSIgeD0iMzU3LjYyMDciIHk9IjYyNi40NjE5Ij4tIFVzdWFyaW9zIChhdXRoKTwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4NS4wODQiIHg9IjM1Ny42MjA3IiB5PSI2NDEuNTk0NyI+LSBFc3R1ZGlhbnRlczwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI3Ny4zNzc5IiB4PSIzNTcuNjIwNyIgeT0iNjU2LjcyNzUiPi0gUHJvZmVzb3JlczwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI2NC43OTY5IiB4PSIzNTcuNjIwNyIgeT0iNjcxLjg2MDMiPi0gTWF0ZXJpYXM8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iOTMuNzQ4NSIgeD0iMzU3LjYyMDciIHk9IjY4Ni45OTMxIj4tIEluc2NyaXBjaW9uZXM8L3RleHQ+PC9nPjxnIGNsYXNzPSJlbnRpdHkiIGRhdGEtZW50aXR5PSJHTU4yMyIgZGF0YS1zb3VyY2UtbGluZT0iNzIiIGRhdGEtdWlkPSJlbnQwMDI0IiBpZD0iZW50aXR5X0dNTjIzIj48cGF0aCBkPSJNNzE4LjkxMDcsNjAxLjgyOTQgTDcxOC45MTA3LDYzMy4wOTk0IEw2ODQuNTgwNyw2MzcuMDk5NCBMNzE4LjkxMDcsNjQxLjA5OTQgTDcxOC45MTA3LDY3Mi4zNjA2IEEwLDAgMCAwIDAgNzE4LjkxMDcsNjcyLjM2MDYgTDg5MS41NTYyLDY3Mi4zNjA2IEEwLDAgMCAwIDAgODkxLjU1NjIsNjcyLjM2MDYgTDg5MS41NTYyLDYxMS44Mjk0IEw4ODEuNTU2Miw2MDEuODI5NCBMNzE4LjkxMDcsNjAxLjgyOTQgQTAsMCAwIDAgMCA3MTguOTEwNyw2MDEuODI5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwYXRoIGQ9Ik04ODEuNTU2Miw2MDEuODI5NCBMODgxLjU1NjIsNjExLjgyOTQgTDg5MS41NTYyLDYxMS44Mjk0IEw4ODEuNTU2Miw2MDEuODI5NCIgZmlsbD0iI0ZGRkZGRiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBmb250LXdlaWdodD0iYm9sZCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMjUuODk5NCIgeD0iNzI0LjkxMDciIHk9IjYxOC44OTYzIj5TZXJ2aWNpbyBkZSBFbWFpbDwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIzMy40OTY2IiB4PSI3MjQuOTEwNyIgeT0iNjM0LjAyOTEiPlBhcmE6PC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE1MS42NDU1IiB4PSI3MjQuOTEwNyIgeT0iNjQ5LjE2MTkiPi0gQyYjMjQzO2RpZ29zIGRlIGFjdGl2YWNpJiMyNDM7bjwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMDAuMjM1OCIgeD0iNzI0LjkxMDciIHk9IjY2NC4yOTQ3Ij4tIE5vdGlmaWNhY2lvbmVzPC90ZXh0PjwvZz48IS0tbGluayBzdHVkZW50IHRvIHN5c3RlbS0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJzdHVkZW50IiBkYXRhLWVudGl0eS0yPSJzeXN0ZW0iIGRhdGEtc291cmNlLWxpbmU9IjIzIiBkYXRhLXVpZD0ibG5rNyIgaWQ9Imxpbmtfc3R1ZGVudF9zeXN0ZW0iPjxwYXRoIGQ9Ik0xMjguMzAwNywxNTYuOTQ5NCBDMTM0LjE2MDcsMTYyLjY3OTQgMTQwLjI1MDcsMTY4LjM2OTQgMTQ2LjIzMDcsMTczLjUzOTQgQzIyMC40NTA3LDIzNy42Njk0IDMwOC44ODQzLDI5OS43Mzc0IDM2NS43NzQzLDMzOC4wNTc0IiBmaWxsPSJub25lIiBpZD0ic3R1ZGVudC10by1zeXN0ZW0iIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjM3MC43NTA3LDM0MS40MDk0LDM2NS41MjA4LDMzMy4wNjM4LDM2Ni42MDM3LDMzOC42MTYxLDM2MS4wNTE1LDMzOS42OTksMzcwLjc1MDcsMzQxLjQwOTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxNzEuNDY5MiIgeD0iMjQyLjYxMDciIHk9IjIxNi42MDYzIj5TZSByZWdpc3RyYSwgYWN0aXZhIGN1ZW50YSw8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTU1LjkzNjUiIHg9IjI1MC4zNzcxIiB5PSIyMzEuNzM5MSI+c2UgaW5zY3JpYmUgZW4gbWF0ZXJpYXMsPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE1OC4xMjY1IiB4PSIyNDkuMjgyMSIgeT0iMjQ2Ljg3MTkiPnZlIGNvbXBhJiMyNDE7ZXJvcyBkZSBjbGFzZTwvdGV4dD48L2c+PCEtLWxpbmsgYWRtaW4gdG8gc3lzdGVtLS0+PGcgY2xhc3M9ImxpbmsiIGRhdGEtZW50aXR5LTE9ImFkbWluIiBkYXRhLWVudGl0eS0yPSJzeXN0ZW0iIGRhdGEtc291cmNlLWxpbmU9IjI0IiBkYXRhLXVpZD0ibG5rOCIgaWQ9ImxpbmtfYWRtaW5fc3lzdGVtIj48cGF0aCBkPSJNNzA1LjI0MDcsMTYwLjExOTQgQzY5OS41ODA3LDE2NC43Mzk0IDY5My44MzA3LDE2OS4yODk0IDY4OC4yMzA3LDE3My41Mzk0IEM2MjAuMzUwNywyMjQuOTc5NCA1OTYuNTkwNywyMjguMzk5NCA1MjkuMjMwNywyODAuNTM5NCBDNTA0LjUwMDcsMjk5LjY3OTQgNDgyLjYxOTcsMzE4Ljg4MDggNDYyLjI2OTcsMzM3LjU3MDgiIGZpbGw9Im5vbmUiIGlkPSJhZG1pbi10by1zeXN0ZW0iIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjQ1Ny44NTA3LDM0MS42Mjk0LDQ2Ny4xODUsMzM4LjQ4NzUsNDYxLjUzMzIsMzM4LjI0NzIsNDYxLjc3MzYsMzMyLjU5NTUsNDU3Ljg1MDcsMzQxLjYyOTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMzcuODkwMSIgeD0iNjQ2Ljc3MDciIHk9IjIyNC4xMDYzIj5HZXN0aW9uYSBlc3R1ZGlhbnRlczwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSIxMTIuNTg4NCIgeD0iNjU5LjQyMTYiIHk9IjIzOS4yMzkxIj4oQ1JVRCBjb21wbGV0byk8L3RleHQ+PC9nPjwhLS1saW5rIHN5c3RlbSB0byBkYXRhYmFzZS0tPjxnIGNsYXNzPSJsaW5rIiBkYXRhLWVudGl0eS0xPSJzeXN0ZW0iIGRhdGEtZW50aXR5LTI9ImRhdGFiYXNlIiBkYXRhLXNvdXJjZS1saW5lPSIyNSIgZGF0YS11aWQ9ImxuazkiIGlkPSJsaW5rX3N5c3RlbV9kYXRhYmFzZSI+PHBhdGggZD0iTTM5OC4zMTA3LDQxMS4xNTk0IEMzNjMuMjQwNyw0NjAuNzQ5NCAzMDEuNzA1Myw1NDcuNzYwNyAyNjYuNjI1Myw1OTcuMzYwNyIgZmlsbD0ibm9uZSIgaWQ9InN5c3RlbS10by1kYXRhYmFzZSIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxOyIvPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iMjYzLjE2MDcsNjAyLjI1OTQsMjcxLjYyMzQsNTk3LjIyMTIsMjY2LjA0NzksNTk4LjE3NzIsMjY1LjA5MTgsNTkyLjYwMTcsMjYzLjE2MDcsNjAyLjI1OTQiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4Ni4zMjE4IiB4PSIzNzcuMDc1MiIgeT0iNTE1LjE5NjMiPkxlZSB5IGVzY3JpYmU8L3RleHQ+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iMTE5LjU4OTgiIHg9IjM2MC40NDEyIiB5PSI1MzAuMzI5MSI+ZGF0b3MgZGUgdXN1YXJpb3MsPC90ZXh0Pjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmciIHRleHRMZW5ndGg9IjE3Ny4wMTA3IiB4PSIzMzEuNzMwNyIgeT0iNTQ1LjQ2MTkiPmVzdHVkaWFudGVzIGUgaW5zY3JpcGNpb25lczwvdGV4dD48L2c+PCEtLWxpbmsgc3lzdGVtIHRvIHNtdHAtLT48ZyBjbGFzcz0ibGluayIgZGF0YS1lbnRpdHktMT0ic3lzdGVtIiBkYXRhLWVudGl0eS0yPSJzbXRwIiBkYXRhLXNvdXJjZS1saW5lPSIyNiIgZGF0YS11aWQ9ImxuazEwIiBpZD0ibGlua19zeXN0ZW1fc210cCI+PHBhdGggZD0iTTQ0OS4xNjA3LDQxMS4wMTk0IEM0NjguNzcwNyw0MzUuODU5NCA0OTUuNzMwNyw0NzAuNjY5NCA1MTguMjMwNyw1MDIuMTI5NCBDNTQyLjIwMDcsNTM1LjYyOTQgNTY0LjgzNzMsNTY5Ljk1OCA1ODIuNDg3Myw1OTcuMzA4IiBmaWxsPSJub25lIiBpZD0ic3lzdGVtLXRvLXNtdHAiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MTsiLz48cG9seWdvbiBmaWxsPSIjMDAwMDAwIiBwb2ludHM9IjU4NS43NDA3LDYwMi4zNDk0LDU4NC4yMjE1LDU5Mi42MTg0LDU4My4wMjk1LDU5OC4xNDgyLDU3Ny40OTk3LDU5Ni45NTYyLDU4NS43NDA3LDYwMi4zNDk0IiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZyIgdGV4dExlbmd0aD0iODkuODAwMyIgeD0iNTQ5LjQ1MDciIHk9IjUyMi42OTYzIj5FbnYmIzIzNzthIGMmIzI0MztkaWdvczwvdGV4dD48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nIiB0ZXh0TGVuZ3RoPSI4Ni44MTY5IiB4PSI1NTAuOTQyNCIgeT0iNTM3LjgyOTEiPmRlIGFjdGl2YWNpJiMyNDM7bjwvdGV4dD48L2c+PCEtLVNSQz1bWkxMVlJuZXY0N19WSnA1RE5xM05qMGJqVDVVNGEwWTFnY3JRcVAyc0J4bUNrbURPelRmUnNxa0pnXzlYLWRXRnp0M2dILTJCdFRaVTFQT2NLZjRHczNDeHlfaXB6WnZvQXllOTJlYjI5VlFCSzBLUXBDNUd3YjBqOVByWi1jTGZUQWNvZVBSUW1FRm5OLUVOdXk2emdUZmFQQWdxNW9fRkppeC1KMThkZDJJTzJraWVIeVc4aGNaOTJ3RnpfdjVyUElQR0VSOW0zMVMyYnJtbVAwcXJSenV1M1F0WDJ4WWFES2F1UklWdFRPTmwyVjNkQWE4cVlXb1NkWUh0SU9BZk9vMTdrbnY3VzFSeVlmSTNOY3oybmNnNV9Od1RFU1hvZUptc3BCRzlvVVh0NmdkOWhrX0g3Z2ROb2dQNjVBZE9fNUdwREtXbnNfb0pZbkhab3JrVm5zTWNVazYtZU00dm1hd18zdS1iTUF4U045UVVuYnNaLVpiUXlnS2xxNmF4S3pDRmJwMGJpd1E4QjRFN1N2X0h3dXJrNzFjNXloMGdRdGR4SXJMVkdaMHpjQnd4ZGluS1F2SVphRXE4Q3RWNVJ2TWg5Sm0teGpWU2tlb0RCR2RFdVhEV0dTS1E4SXF2M1BfQzVFQ0tHUTR2MElkOGFMaThqMW5QNHdHd0J0M3A3bmJqRlR6S0NncWFBal9leThnaTQtbTJxNnZnY0M3bXdrRDVnMjc5d05QSWZWaWRqbmZyVU84OFJsZDEwNjZjQ2ctZlJyUlE0ZXRHN2liVUxRWlhpZzZRMF9qNVdxZlQ2QWRydmJ6Y2tGY1BZUU50WHVqNXJjNDZhYUhmbnVmdXVLMGx3Z2RaSVV0RC14azl4M3NSenRkbE9xSjFXMkpPUWdZLWJqSmJxRjYtaTRvWGVNbVRscXpSUUVNUjdwVm1sMXNJRlg3T3FqdWxqT19wU1JFYlQxWW9jam56VTkyY3YwYm9jNU1yZ3hiNmFxNEhKdUxDSTZOVy1MUWk5SXEyd1UxWGZEbXVNV1VpMm9GTUdaOTVaa3JlUnpyc0VjRXFhaHp4M2FOR1hkWk1BMUZFX3FaMUJSM01JaVVLSnVBUklGNXRCMEN4Vkd5bnh2bUFMYVZLM25ubXM5dGxZaWdXYUJvOG1NeXF6b295RWhibTVQajF3VFltUkt4aHBVVGgtMENjdnN5bG5mdGVLMVhaUmRIOGlqNXVweno4WnhiYkxTcWlwOGQ0dUFvWWZNUl9jWGZpeV9SNjhBY09FaHhja25NUmlWNk5oeWd3QzUzQktnQTFwWWJsLXBUMXM3dHdWZEpEVG9tSlU2TW1NN3N1ejBnS1JqTTVJRWpBSXB2M2hVM3Zpc2NTX0ZRM1dqVWRqMEFvbFVRV1N6QmZyRmhBNzVESTZDTWkxZVRSODdVRHllcUVQOWlPbEkyaEpSTHlqd19Rd3lQeUZwVzhWRDBoSkZ4RUo0THlPX2R4aWE4cnVIVEhIM0lpaFc0dWswTHl4QnJzT1g2U1J4Ung3bTAwXS0tPjwvZz48L3N2Zz4=",
};
const diagramNames = {
"01-use-cases": "Casos de Uso",
"02-domain-model": "Modelo de Dominio",
"03-sequence-enrollment": "Secuencia: Inscripción",
"04-components": "Componentes",
"05-entity-relationship": "Entidad-Relación",
"06-state-enrollment": "Estados: Inscripción",
"07-deployment": "Despliegue",
"08-c4-context": "Contexto C4"
};
const diagramKeys = Object.keys(diagramNames);
let currentDiagramIndex = 0;
// ═══════════════════════════════════════════════════════════
// LIGHTBOX WITH ZOOM & PAN (Apple-style)
// ═══════════════════════════════════════════════════════════
// Zoom state
let currentZoom = 1;
let panX = 0;
let panY = 0;
let isDragging = false;
let startX = 0;
let startY = 0;
let lastPanX = 0;
let lastPanY = 0;
const MIN_ZOOM = 0.5;
const MAX_ZOOM = 5;
const ZOOM_STEP = 0.25;
function openLightbox(key) {
const lightbox = document.getElementById('lightbox');
const img = document.getElementById('lightbox-img');
const title = document.getElementById('lightbox-title');
const counter = document.getElementById('lightbox-counter');
currentDiagramIndex = diagramKeys.indexOf(key);
img.src = diagrams[key];
title.textContent = diagramNames[key] || key;
counter.textContent = `${currentDiagramIndex + 1} / ${diagramKeys.length}`;
// Reset zoom and pan
resetZoom();
lightbox.classList.add('active');
document.body.style.overflow = 'hidden';
// Show zoom hint briefly
showZoomHint();
}
function closeLightbox() {
const lightbox = document.getElementById('lightbox');
lightbox.classList.remove('active');
document.body.style.overflow = '';
resetZoom();
}
function navigateLightbox(direction) {
currentDiagramIndex = (currentDiagramIndex + direction + diagramKeys.length) % diagramKeys.length;
const key = diagramKeys[currentDiagramIndex];
document.getElementById('lightbox-img').src = diagrams[key];
document.getElementById('lightbox-title').textContent = diagramNames[key] || key;
document.getElementById('lightbox-counter').textContent = `${currentDiagramIndex + 1} / ${diagramKeys.length}`;
resetZoom();
}
// Zoom functions
function setZoom(newZoom, centerX, centerY) {
const oldZoom = currentZoom;
currentZoom = Math.max(MIN_ZOOM, Math.min(MAX_ZOOM, newZoom));
// Adjust pan to zoom towards cursor position
if (centerX !== undefined && centerY !== undefined) {
const viewport = document.getElementById('lightbox-viewport');
const rect = viewport.getBoundingClientRect();
const relX = centerX - rect.left - rect.width / 2;
const relY = centerY - rect.top - rect.height / 2;
const scale = currentZoom / oldZoom;
panX = relX - (relX - panX) * scale;
panY = relY - (relY - panY) * scale;
}
updateTransform();
updateZoomUI();
}
function zoomIn() {
setZoom(currentZoom + ZOOM_STEP);
}
function zoomOut() {
setZoom(currentZoom - ZOOM_STEP);
}
function resetZoom() {
currentZoom = 1;
panX = 0;
panY = 0;
updateTransform();
updateZoomUI();
}
function fitToScreen() {
currentZoom = 1;
panX = 0;
panY = 0;
updateTransform();
updateZoomUI();
}
function updateTransform() {
const content = document.getElementById('lightbox-content');
const viewport = document.getElementById('lightbox-viewport');
// Constrain pan when zoomed out
if (currentZoom <= 1) {
panX = 0;
panY = 0;
viewport.classList.add('zoomed-out');
} else {
viewport.classList.remove('zoomed-out');
}
content.style.transform = `translate(${panX}px, ${panY}px) scale(${currentZoom})`;
}
function updateZoomUI() {
document.getElementById('zoom-level').textContent = Math.round(currentZoom * 100) + '%';
document.getElementById('btn-zoom-in').disabled = currentZoom >= MAX_ZOOM;
document.getElementById('btn-zoom-out').disabled = currentZoom <= MIN_ZOOM;
}
function showZoomHint() {
const hint = document.getElementById('zoom-hint');
hint.classList.add('visible');
setTimeout(() => hint.classList.remove('visible'), 3000);
}
// Mouse wheel zoom
document.getElementById('lightbox-viewport')?.addEventListener('wheel', (e) => {
e.preventDefault();
const delta = e.deltaY > 0 ? -ZOOM_STEP : ZOOM_STEP;
setZoom(currentZoom + delta, e.clientX, e.clientY);
}, { passive: false });
// Pan with mouse drag
const viewport = document.getElementById('lightbox-viewport');
viewport?.addEventListener('mousedown', (e) => {
if (currentZoom <= 1) return;
isDragging = true;
startX = e.clientX;
startY = e.clientY;
lastPanX = panX;
lastPanY = panY;
viewport.classList.add('dragging');
document.getElementById('lightbox-content').classList.add('no-transition');
});
document.addEventListener('mousemove', (e) => {
if (!isDragging) return;
panX = lastPanX + (e.clientX - startX);
panY = lastPanY + (e.clientY - startY);
updateTransform();
});
document.addEventListener('mouseup', () => {
if (isDragging) {
isDragging = false;
viewport?.classList.remove('dragging');
document.getElementById('lightbox-content')?.classList.remove('no-transition');
}
});
// Touch support for pinch zoom and pan
let lastTouchDistance = 0;
let lastTouchCenter = { x: 0, y: 0 };
viewport?.addEventListener('touchstart', (e) => {
if (e.touches.length === 2) {
lastTouchDistance = getTouchDistance(e.touches);
lastTouchCenter = getTouchCenter(e.touches);
} else if (e.touches.length === 1 && currentZoom > 1) {
isDragging = true;
startX = e.touches[0].clientX;
startY = e.touches[0].clientY;
lastPanX = panX;
lastPanY = panY;
document.getElementById('lightbox-content').classList.add('no-transition');
}
}, { passive: true });
viewport?.addEventListener('touchmove', (e) => {
if (e.touches.length === 2) {
e.preventDefault();
const newDistance = getTouchDistance(e.touches);
const newCenter = getTouchCenter(e.touches);
const scale = newDistance / lastTouchDistance;
setZoom(currentZoom * scale, newCenter.x, newCenter.y);
lastTouchDistance = newDistance;
lastTouchCenter = newCenter;
} else if (e.touches.length === 1 && isDragging) {
panX = lastPanX + (e.touches[0].clientX - startX);
panY = lastPanY + (e.touches[0].clientY - startY);
updateTransform();
}
}, { passive: false });
viewport?.addEventListener('touchend', () => {
isDragging = false;
lastTouchDistance = 0;
document.getElementById('lightbox-content')?.classList.remove('no-transition');
});
function getTouchDistance(touches) {
const dx = touches[0].clientX - touches[1].clientX;
const dy = touches[0].clientY - touches[1].clientY;
return Math.sqrt(dx * dx + dy * dy);
}
function getTouchCenter(touches) {
return {
x: (touches[0].clientX + touches[1].clientX) / 2,
y: (touches[0].clientY + touches[1].clientY) / 2
};
}
// Double-click to toggle zoom
viewport?.addEventListener('dblclick', (e) => {
if (currentZoom === 1) {
setZoom(2, e.clientX, e.clientY);
} else {
resetZoom();
}
});
// Keyboard navigation
document.addEventListener('keydown', (e) => {
const lightbox = document.getElementById('lightbox');
if (!lightbox.classList.contains('active')) return;
switch(e.key) {
case 'Escape': closeLightbox(); break;
case 'ArrowLeft': navigateLightbox(-1); break;
case 'ArrowRight': navigateLightbox(1); break;
case '+': case '=': zoomIn(); break;
case '-': zoomOut(); break;
case '0': resetZoom(); break;
}
});
const docs = {
"Inicio": {
"README": `# Sistema de Registro de Estudiantes\n\nSistema web para gestionar inscripciones de estudiantes en materias con restricciones de créditos y profesores.\n\n## Stack Tecnológico\n\n| Capa | Tecnología |\n|------|------------|\n| Backend | .NET 10, C# |\n| API | GraphQL (HotChocolate) |\n| Frontend | Angular 21, TypeScript |\n| Base de Datos | SQL Server 2022 |\n| ORM | Entity Framework Core |\n| UI | Angular Material |\n\n## Reglas de Negocio\n\n- 10 materias, cada una vale 3 créditos\n- 5 profesores, cada uno imparte 2 materias\n- Estudiantes pueden inscribir **máximo 3 materias** (9 créditos)\n- **Restricción:** Un estudiante NO puede tener materias con el mismo profesor\n\n## Características del Sistema\n\n### Funcionalidades\n- CRUD completo de estudiantes\n- Inscripción/cancelación de materias con validación de reglas\n- Visualización de compañeros de clase por materia\n- Interfaz responsive con Angular Material\n- **Sistema de autenticación con flujo de activación**\n- **Control de acceso por roles (Admin/Student)**\n\n### Calidad y Robustez\n- **Manejo de errores**: Mensajes amigables para usuarios + logging detallado para desarrolladores\n- **Monitoreo de conectividad**: Verificación cada 5 segundos con overlay bloqueante si se pierde conexión\n- **Validación**: FluentValidation en backend + validación reactiva en frontend\n- **Arquitectura**: Clean Architecture + CQRS + Ports & Adapters\n\n### DevOps\n- **Docker Compose**: Despliegue optimizado con un solo comando (\`./start.sh\`)\n- **Health Check**: Endpoint \`/health\` con verificación de base de datos\n- **Diagramas UML**: 8 diagramas PlantUML documentando la arquitectura\n\n## Requisitos Previos\n\n- [.NET 10 SDK](https://dotnet.microsoft.com/download)\n- [Node.js 22+](https://nodejs.org/)\n- [Docker](https://www.docker.com/) (para SQL Server)\n- Angular CLI 21: \`npm install -g @angular/cli\`\n\n## Inicio Rápido\n\n### Paso 1: Clonar e ir al directorio\n\n\`\`\`bash\ngit clone <repo-url>\ncd Interrapidisimo\n\`\`\`\n\n### Paso 2: Iniciar SQL Server con Docker\n\n\`\`\`bash\ndocker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Asde71.4Asde71.4" \\\n -p 1433:1433 --name sqlserver -d mcr.microsoft.com/mssql/server:2022-latest\n\`\`\`\n\nEsperar ~10 segundos a que inicie completamente.\n\n### Paso 3: Configurar y ejecutar Backend\n\n\`\`\`bash\ncd src/backend\n\n# 1. Instalar herramienta EF Core (solo primera vez)\ndotnet tool install --global dotnet-ef\n# Si ya está instalada, ignorar el mensaje\n\n# 2. Restaurar dependencias\ndotnet restore\n\n# 3. Crear base de datos y aplicar migraciones\ndotnet ef database update -p Adapters/Driven/Persistence -s Host\n# NOTA: El mensaje "HostAbortedException" es NORMAL - indica que las migraciones se completaron\n\n# 4. Liberar puerto si está ocupado (opcional)\nfuser -k 5000/tcp 2>/dev/null\n\n# 5. Ejecutar API\ndotnet run --project Host\n\`\`\`\n\n**API GraphQL:** http://localhost:5000/graphql\n\n### Paso 4: Verificar que funciona\n\nEn otra terminal:\n\n\`\`\`bash\n# Consultar materias (debe retornar 10)\ncurl -s http://localhost:5000/graphql -X POST \\\n -H "Content-Type: application/json" \\\n -d '{"query":"{ subjects { id name credits } }"}' | jq .\n\n# Crear un estudiante\ncurl -s http://localhost:5000/graphql -X POST \\\n -H "Content-Type: application/json" \\\n -d '{"query":"mutation { createStudent(input: {name: \\"Test User\\", email: \\"test@example.com\\"}) { student { id name email } } }"}' | jq .\n\`\`\`\n\n### Paso 5: Frontend (opcional)\n\n\`\`\`bash\ncd src/frontend\n\n# Instalar dependencias (usar --legacy-peer-deps por compatibilidad)\nnpm install --legacy-peer-deps\n\n# Iniciar servidor de desarrollo\nnpx ng serve\n\`\`\`\n\n**App Angular:** http://localhost:4200\n\n> **Nota:** Si \`ng\` no está instalado globalmente, usar \`npx ng serve\`\n\n## Datos de Ejemplo\n\nLa migración incluye datos iniciales:\n\n| Profesor | Materias |\n|----------|----------|\n| Dr. García | Matemáticas I, Matemáticas II |\n| Dra. López | Física I, Física II |\n| Ing. Martínez | Programación I, Programación II |\n| Ing. Rodríguez | Base de Datos I, Base de Datos II |\n| Ing. Sánchez | Redes I, Redes II |\n\n## Arquitectura\n\n\`\`\`\nClean Architecture + CQRS + Ports & Adapters\n\n┌─────────────────────────────────────────┐\n│ HOST │\n│ (DI, Configuration) │\n└────────────────┬────────────────────────┘\n\n┌────────────────▼────────────────────────┐\n│ ADAPTERS │\n│ Driving: GraphQL Driven: EF Core │\n└────────────────┬────────────────────────┘\n\n┌────────────────▼────────────────────────┐\n│ APPLICATION │\n│ Commands / Queries / Validators │\n└────────────────┬────────────────────────┘\n\n┌────────────────▼────────────────────────┐\n│ DOMAIN │\n│ Entities / Value Objects / Ports │\n└─────────────────────────────────────────┘\n\`\`\`\n\n## Estructura del Proyecto\n\n\`\`\`\n/\n├── src/\n│ ├── backend/\n│ │ ├── Domain/ # Entities, ValueObjects, Ports, Services\n│ │ ├── Application/ # Commands, Queries, DTOs, Validators\n│ │ ├── Adapters/\n│ │ │ ├── Driving/Api/ # GraphQL (HotChocolate)\n│ │ │ └── Driven/Persistence/ # EF Core, Repositories, DataLoaders\n│ │ └── Host/ # Entry point, DI, Configuration\n│ └── frontend/\n│ ├── src/app/ # Core, Shared, Features\n│ └── e2e/ # Playwright E2E tests\n├── tests/\n│ ├── Domain.Tests/ # Entity, ValueObject, Service tests\n│ ├── Application.Tests/ # Command, Query, Validator tests\n│ └── Integration.Tests/ # End-to-end flow tests\n├── docs/\n│ ├── entregables/ # 01-analisis, 02-diseno, 03-configuracion\n│ └── architecture/decisions/ # ADRs\n├── database/\n│ ├── stored-procedures/\n│ └── views/\n└── deploy/\n ├── docker/\n ├── k3s/ # Kubernetes manifests\n └── scripts/\n\`\`\`\n\n## Comandos Útiles\n\n### Backend\n\n\`\`\`bash\ncd src/backend\n\n# Build y ejecución\ndotnet build\ndotnet run --project Host\ndotnet watch run --project Host # Hot reload\n\n# Tests\ndotnet test\n\n# Migraciones EF Core\ndotnet ef migrations add <Nombre> -p Adapters/Driven/Persistence -s Host\ndotnet ef database update -p Adapters/Driven/Persistence -s Host\ndotnet ef migrations list -p Adapters/Driven/Persistence -s Host\n\`\`\`\n\n### Frontend\n\n\`\`\`bash\ncd src/frontend\n\nnpx ng serve # Desarrollo\nnpx ng build --configuration prod # Producción\nnpx ng test # Tests unitarios\nnpx ng lint # Linting\n\`\`\`\n\n### Docker\n\n\`\`\`bash\n# Ver contenedor SQL Server\ndocker ps | grep sqlserver\n\n# Logs\ndocker logs sqlserver\n\n# Reiniciar\ndocker restart sqlserver\n\n# Conectar con sqlcmd\ndocker exec -it sqlserver /opt/mssql-tools18/bin/sqlcmd \\\n -S localhost -U sa -P "Asde71.4Asde71.4" -C\n\`\`\`\n\n## API GraphQL\n\n### Queries\n\n\`\`\`graphql\n# Listar estudiantes\nquery {\n students {\n id\n name\n email\n totalCredits\n enrollments { subjectId }\n }\n}\n\n# Obtener estudiante por ID\nquery {\n student(id: 1) {\n id\n name\n email\n totalCredits\n }\n}\n\n# Listar materias\nquery {\n subjects {\n id\n name\n credits\n professorId\n }\n}\n\`\`\`\n\n### Mutations\n\n\`\`\`graphql\n# Crear estudiante\nmutation {\n createStudent(input: { name: "Juan Pérez", email: "juan@test.com" }) {\n student { id name email }\n }\n}\n\n# Inscribir en materia\nmutation {\n enrollStudent(input: { studentId: 1, subjectId: 1 }) {\n enrollment { id }\n }\n}\n\n# Cancelar inscripción\nmutation {\n unenrollStudent(enrollmentId: 1) {\n success\n }\n}\n\`\`\`\n\n## Solución de Problemas\n\n### \`dotnet-ef\` no encontrado\n\n\`\`\`bash\n# Instalar\ndotnet tool install --global dotnet-ef\n\n# Agregar al PATH (si es necesario)\nexport PATH="\$PATH:\$HOME/.dotnet/tools"\n\n# Verificar instalación\ndotnet ef --version\n\`\`\`\n\n### Error de conexión a SQL Server\n\n\`\`\`bash\n# Verificar que el contenedor esté corriendo\ndocker ps | grep sqlserver\n\n# Si no está, iniciarlo\ndocker start sqlserver\n\n# Verificar conexión\ndocker exec -it sqlserver /opt/mssql-tools18/bin/sqlcmd \\\n -S localhost -U sa -P "Asde71.4Asde71.4" -C -Q "SELECT 1"\n\`\`\`\n\n### Puerto 5000 en uso\n\n\`\`\`bash\n# Linux: encontrar y matar proceso\nfuser -k 5000/tcp\n\n# Alternativa: ver qué usa el puerto\nlsof -i :5000\nkill -9 <PID>\n\`\`\`\n\n### Error "Invalid object name 'Students'"\n\nLas migraciones no se han aplicado:\n\n\`\`\`bash\ncd src/backend\ndotnet ef database update -p Adapters/Driven/Persistence -s Host\n\`\`\`\n\n### Error "No migrations were found"\n\nCrear migración inicial:\n\n\`\`\`bash\ncd src/backend\ndotnet ef migrations add InitialCreate -p Adapters/Driven/Persistence -s Host\ndotnet ef database update -p Adapters/Driven/Persistence -s Host\n\`\`\`\n\n### Password incorrecto de SQL Server\n\nVerificar que el password en \`appsettings.json\` coincida con el del contenedor Docker:\n\n\`\`\`json\n{\n "ConnectionStrings": {\n "DefaultConnection": "Server=localhost;Database=StudentEnrollment;User Id=sa;Password=Asde71.4Asde71.4;TrustServerCertificate=True"\n }\n}\n\`\`\`\n\n### Error npm ERESOLVE (conflicto de dependencias)\n\nSi aparecen errores de peer dependencies al instalar el frontend:\n\n\`\`\`bash\ncd src/frontend\nrm -rf node_modules package-lock.json\nnpm install --legacy-peer-deps\n\`\`\`\n\n### Error "ng: command not found"\n\nUsar \`npx\` en lugar del comando directo:\n\n\`\`\`bash\nnpx ng serve\nnpx ng build\n\`\`\`\n\n## Despliegue\n\n### Docker Compose (Recomendado)\n\nDespliegue optimizado con un solo comando:\n\n\`\`\`bash\ncd deploy/docker\n./start.sh\n\`\`\`\n\nEl script:\n1. Limpia contenedores anteriores\n2. Construye imágenes optimizadas con cache\n3. Inicia todos los servicios\n4. Espera hasta que estén listos\n\n**URLs después del despliegue:**\n- Frontend: http://localhost\n- API GraphQL: http://localhost:5000/graphql\n- SQL Server: localhost:1433\n\n**Comandos útiles:**\n\n\`\`\`bash\n# Ver logs en tiempo real\ndocker compose logs -f\n\n# Solo API\ndocker compose logs -f api\n\n# Reiniciar un servicio\ndocker compose restart api\n\n# Detener todo\ndocker compose down\n\n# Rebuild sin cache\ndocker compose build --no-cache && docker compose up -d\n\`\`\`\n\n**Recursos asignados (optimizado para 12 cores / 15GB RAM):**\n\n| Servicio | CPU | RAM |\n|----------|-----|-----|\n| SQL Server | 2 cores | 2.5 GB |\n| API .NET | 4 cores | 1.5 GB |\n| Frontend | 2 cores | 256 MB |\n\n### Kubernetes (k3s)\n\n\`\`\`bash\ncd deploy/k3s\n./deploy.sh\n\`\`\`\n\nVer [DEPLOYMENT.md](docs/DEPLOYMENT.md) para instrucciones detalladas.\n\n## Documentación\n\n### Análisis\n- [Requisitos Funcionales](docs/entregables/01-analisis/requisitos/AN-001-requisitos-funcionales.md)\n- [Reglas de Negocio](docs/entregables/01-analisis/reglas-negocio/AN-002-reglas-negocio.md)\n- [Historias de Usuario](docs/entregables/01-analisis/historias-usuario/AN-003-historias-usuario.md)\n\n### Diseño\n- [Arquitectura Backend](docs/entregables/02-diseno/arquitectura/DI-001-arquitectura-backend.md)\n- [Arquitectura Frontend](docs/entregables/02-diseno/arquitectura/DI-005-arquitectura-frontend.md)\n- [Modelo de Dominio](docs/entregables/02-diseno/modelo-dominio/DI-002-modelo-dominio.md)\n- [Diseño Base de Datos](docs/entregables/02-diseno/base-datos/DI-003-diseno-base-datos.md)\n- [Esquema GraphQL](docs/entregables/02-diseno/esquema-graphql/DI-004-esquema-graphql.md)\n\n### Configuración\n- [Configuración .NET](docs/entregables/03-configuracion/DV-002-configuracion-dotnet.md)\n- [Configuración Angular](docs/entregables/03-configuracion/DV-003-configuracion-angular.md)\n- [Variables de Entorno](docs/entregables/03-configuracion/DV-005-variables-entorno.md)\n\n### Operaciones\n- [Manual de Despliegue](docs/DEPLOYMENT.md)\n- [Decisiones de Arquitectura](docs/architecture/decisions/)\n- [Checklist OWASP](docs/OWASP_CHECKLIST.md)\n- [Plan de Actividades](docs/PLAN_ACTIVIDADES.md)\n\n### Diagramas UML\n- [Casos de Uso](docs/architecture/diagrams/01-use-cases.svg)\n- [Modelo de Dominio](docs/architecture/diagrams/02-domain-model.svg)\n- [Secuencia: Inscripción](docs/architecture/diagrams/03-sequence-enrollment.svg)\n- [Componentes](docs/architecture/diagrams/04-components.svg)\n- [Entidad-Relación](docs/architecture/diagrams/05-entity-relationship.svg)\n- [Estados: Inscripción](docs/architecture/diagrams/06-state-enrollment.svg)\n- [Despliegue](docs/architecture/diagrams/07-deployment.svg)\n- [C4 Contexto](docs/architecture/diagrams/08-c4-context.svg)\n\n## Autenticación y Roles\n\n### Flujo de Activación de Estudiantes\n\n\`\`\`\n1. Admin crea estudiante → Sistema genera código de activación (12 chars)\n2. Admin comparte código/URL con estudiante\n3. Estudiante accede a /activate?code=XXXX\n4. Estudiante crea credenciales (usuario + contraseña)\n5. Sistema genera código de recuperación (mostrado una sola vez)\n6. Estudiante inicia sesión → Dashboard personal\n\`\`\`\n\n### Roles del Sistema\n\n| Rol | Permisos |\n|-----|----------|\n| **Admin** | CRUD estudiantes, ver todo, generar códigos de activación |\n| **Student** | Dashboard personal, inscribir materias, ver compañeros |\n\n### URLs de Autenticación\n\n| Ruta | Descripción |\n|------|-------------|\n| \`/login\` | Inicio de sesión |\n| \`/activate?code=XXX\` | Activación de cuenta |\n| \`/dashboard\` | Dashboard de estudiante |\n| \`/admin\` | Panel de administración |\n\n### Seguridad\n\n- **JWT** con HMAC-SHA256, expiración configurable\n- **PBKDF2-SHA256** para hashing de contraseñas (100,000 iteraciones)\n- **Código de activación:** 12 caracteres, expira en 48 horas\n- **Código de recuperación:** 12 caracteres, se muestra solo una vez\n- Input validation con FluentValidation\n- Sanitización contra XSS\n- Security headers (CSP, HSTS, X-Frame-Options)\n- Rate limiting (100 req/min queries, 30 req/min mutations)\n- Query complexity limits (depth: 5, cost: 100)\n- Logging estructurado con Serilog (sin datos sensibles)\n\n## Licencia\n\nPrueba técnica - Inter Rapidísimo\n`,
"Entregables": `# Entregables - Prueba Técnica Senior .NET/Angular\n\n**Proyecto:** Sistema de Registro de Estudiantes\n**Empresa:** Inter Rapidísimo\n**Cargo:** Desarrollador Master .NET/Angular\n\n---\n\n## Resumen Ejecutivo\n\nSistema web completo para gestión de inscripciones de estudiantes con las siguientes características:\n\n- **Backend:** .NET 10, GraphQL (HotChocolate), Clean Architecture\n- **Frontend:** Angular 21, Standalone Components, Signals\n- **Base de Datos:** SQL Server con EF Core\n- **Seguridad:** OWASP compliant, rate limiting, query complexity\n- **Testing:** 145 tests automatizados\n- **Despliegue:** Docker + Kubernetes (k3s)\n\n---\n\n## Estructura del Proyecto\n\n\`\`\`\n/\n├── src/\n│ ├── backend/ # .NET 10 API GraphQL\n│ │ ├── Domain/ # Entidades, Value Objects, Ports\n│ │ ├── Application/ # Commands, Queries, DTOs\n│ │ ├── Adapters/ # GraphQL API, Persistence\n│ │ └── Host/ # Entry point, DI\n│ └── frontend/ # Angular 21 SPA\n├── tests/ # Tests automatizados\n├── docs/ # Documentación\n└── deploy/ # Docker + k3s\n\`\`\`\n\n---\n\n## Funcionalidades Implementadas\n\n### Requisitos Funcionales\n\n| # | Requisito | Estado |\n|---|-----------|--------|\n| 1 | CRUD completo de estudiantes | ✅ |\n| 2 | Inscripción en materias (max 3) | ✅ |\n| 3 | Visualización de compañeros de clase | ✅ |\n| 4 | Restricción de profesor único | ✅ |\n| 5 | 10 materias, 5 profesores | ✅ |\n| 6 | 3 créditos por materia | ✅ |\n| 7 | Validación de inscripciones | ✅ |\n| 8 | UI responsiva | ✅ |\n| 9 | Manejo de errores | ✅ |\n| 10 | Autenticación JWT | ✅ |\n| 11 | Flujo de activación de estudiantes | ✅ |\n| 12 | Control de acceso por roles (Admin/Student) | ✅ |\n\n### Reglas de Negocio\n\n- ✅ Máximo 3 materias por estudiante (9 créditos)\n- ✅ No repetir profesor en inscripciones\n- ✅ Validación en Domain Layer (pura, testeable)\n- ✅ Mensajes de error descriptivos\n\n### Sistema de Autenticación\n\n- ✅ **JWT** con HMAC-SHA256\n- ✅ **Flujo de Activación:** Admin crea estudiante → Código de activación → Estudiante activa cuenta\n- ✅ **Roles:** Admin (gestión completa) / Student (dashboard personal)\n- ✅ **Recuperación:** Código de recuperación generado en activación\n- ✅ **Seguridad:** PBKDF2-SHA256 para hashing de contraseñas\n\n---\n\n## Arquitectura\n\n### Clean Architecture\n\n\`\`\`\nHost → Adapters → Application → Domain\n\`\`\`\n\n- **Domain:** Entidades puras, sin dependencias\n- **Application:** Casos de uso con CQRS\n- **Adapters:** GraphQL API + EF Core\n- **Host:** Composición y DI\n\n### Patrones Implementados\n\n| Patrón | Uso |\n|--------|-----|\n| CQRS | Separación Commands/Queries |\n| Repository | Abstracción de persistencia |\n| Ports & Adapters | Inversión de dependencias |\n| DataLoader | Evitar N+1 en GraphQL |\n| Specification | Consultas reutilizables |\n\n### Diagramas de Arquitectura\n\nTodos los diagramas están disponibles en \`/docs/architecture/diagrams/\` en formatos PNG y SVG.\n\n| # | Diagrama | Archivo | Descripción |\n|---|----------|---------|-------------|\n| 1 | **Casos de Uso** | \`01-use-cases\` | Actores (Estudiante, Admin), funcionalidades del sistema, reglas de negocio |\n| 2 | **Modelo de Dominio** | \`02-domain-model\` | Entidades (User, Student, Professor, Subject, Enrollment), Value Objects, Domain Services |\n| 3 | **Secuencia Inscripción** | \`03-sequence-enrollment\` | Flujo completo de inscripción con JWT, validaciones y persistencia |\n| 4 | **Componentes** | \`04-components\` | Arquitectura Clean Architecture: Frontend Angular 21, Backend .NET 10, GraphQL |\n| 5 | **Entidad-Relación** | \`05-entity-relationship\` | Modelo de base de datos: tablas, relaciones, restricciones |\n| 6 | **Estados** | \`06-state-enrollment\` | Estados de cuenta (activación) e inscripciones (0-9 créditos) |\n| 7 | **Despliegue** | \`07-deployment\` | Infraestructura K3s: Nginx, ASP.NET Core, SQL Server, Traefik Ingress |\n| 8 | **C4 Contexto** | \`08-c4-context\` | Vista de alto nivel: actores, sistema, sistemas externos |\n\n#### Requisitos de la Prueba Técnica Cubiertos\n\n| Requisito | Diagrama(s) |\n|-----------|-------------|\n| CRUD de estudiantes | 01, 04 |\n| Programa de créditos | 02, 06 |\n| 10 materias, 3 créditos c/u | 02, 05 |\n| Máximo 3 materias (9 créditos) | 01, 02, 03, 06 |\n| 5 profesores, 2 materias c/u | 02, 05 |\n| No repetir profesor | 01, 02, 03, 05 |\n| Ver compañeros de clase | 01, 04 |\n\n---\n\n## Testing\n\n### Resumen de Tests\n\n| Tipo | Cantidad | Cobertura |\n|------|----------|-----------|\n| Domain Tests | 30 | Entidades, Value Objects, Services |\n| Application Tests | 66 | Commands, Queries, Validators |\n| Integration Tests | 5 | GraphQL API completa |\n| Angular Unit Tests | 24 | Services, Pipes |\n| E2E Tests (Playwright) | 20 | Flujos de usuario |\n| **Total** | **145** | |\n\n### Ejecutar Tests\n\n\`\`\`bash\n# Backend\ndotnet test\n\n# Frontend\ncd src/frontend\nng test --watch=false\n\n# E2E\nnpx playwright test\n\`\`\`\n\n---\n\n## Seguridad (OWASP)\n\n| Control | Implementación |\n|---------|----------------|\n| Input Validation | FluentValidation + Regex |\n| SQL Injection | EF Core parametrizado |\n| XSS Prevention | Sanitización en validators |\n| Security Headers | CSP, HSTS, X-Frame-Options |\n| Rate Limiting | 100 req/min (fixed window) |\n| Query Complexity | Depth 5, Cost 100 |\n| Logging | Serilog (sin datos sensibles) |\n\n---\n\n## Documentación\n\n| Documento | Ubicación |\n|-----------|-----------|\n| README principal | \`/README.md\` |\n| Arquitectura Backend | \`/docs/entregables/02-diseno/arquitectura/\` |\n| Modelo de Dominio | \`/docs/entregables/02-diseno/modelo-dominio/\` |\n| Diseño BD | \`/docs/entregables/02-diseno/base-datos/\` |\n| Esquema GraphQL | \`/docs/entregables/02-diseno/esquema-graphql/\` |\n| ADRs | \`/docs/architecture/decisions/\` |\n| **Diagramas UML** | \`/docs/architecture/diagrams/\` |\n| OWASP Checklist | \`/docs/OWASP_CHECKLIST.md\` |\n| Manual Despliegue | \`/docs/DEPLOYMENT.md\` |\n\n### Diagramas Incluidos\n\n\`\`\`\ndocs/architecture/diagrams/\n├── 01-use-cases.png # Casos de uso\n├── 02-domain-model.png # Modelo de dominio\n├── 03-sequence-enrollment.png # Secuencia inscripción\n├── 04-components.png # Arquitectura componentes\n├── 05-entity-relationship.png # Diagrama E-R\n├── 06-state-enrollment.png # Estados inscripción\n├── 07-deployment.png # Despliegue K3s\n└── 08-c4-context.png # Contexto C4\n\`\`\`\n\n---\n\n## Despliegue\n\n### Docker\n\n\`\`\`bash\ncd deploy/docker\ndocker-compose up -d --build\n\`\`\`\n\n### Kubernetes (k3s)\n\n\`\`\`bash\ncd deploy/k3s\n./deploy.sh all\n\`\`\`\n\n### URLs\n\n| Servicio | URL |\n|----------|-----|\n| Frontend | http://localhost:80 |\n| API GraphQL | http://localhost:5000/graphql |\n| Playground | http://localhost:5000/graphql |\n\n---\n\n## Competencias Demostradas\n\n### Arquitectura y Diseño\n\n- ✅ Clean Architecture con separación de capas\n- ✅ Principios SOLID aplicados\n- ✅ Domain-Driven Design (DDD lite)\n- ✅ CQRS para separación de concerns\n\n### Backend (.NET)\n\n- ✅ .NET 10 con C# 13\n- ✅ GraphQL con HotChocolate\n- ✅ EF Core con Fluent API\n- ✅ FluentValidation\n- ✅ DataLoaders para N+1\n\n### Frontend (Angular)\n\n- ✅ Angular 21 con Standalone Components\n- ✅ Signals para estado reactivo\n- ✅ Apollo Client para GraphQL\n- ✅ Angular Material UI\n- ✅ Lazy Loading\n\n### DevOps\n\n- ✅ Docker multi-stage builds\n- ✅ Kubernetes manifests\n- ✅ Health checks\n- ✅ Horizontal Pod Autoscaler\n\n### Testing\n\n- ✅ Unit tests con alta cobertura\n- ✅ Integration tests\n- ✅ E2E tests con Playwright\n- ✅ Mocking de dependencias\n\n### Seguridad\n\n- ✅ OWASP Top 10 compliance\n- ✅ Input validation\n- ✅ Rate limiting\n- ✅ Security headers\n\n---\n\n## Cómo Ejecutar\n\n### Desarrollo Local\n\n\`\`\`bash\n# Backend\ncd src/backend/Host\ndotnet run\n\n# Frontend\ncd src/frontend\nnpm install\nng serve\n\`\`\`\n\n### Con Docker\n\n\`\`\`bash\ncd deploy/docker\ndocker-compose up -d\n\`\`\`\n\n### Tests\n\n\`\`\`bash\n# Todos los tests backend\ndotnet test\n\n# Tests frontend\ncd src/frontend && ng test\n\n# E2E\ncd src/frontend && npx playwright test\n\`\`\`\n\n---\n\n## Decisiones Técnicas\n\nVer ADRs completos en \`/docs/architecture/decisions/\`:\n\n1. **ADR-001:** Clean Architecture - Testabilidad y mantenibilidad\n2. **ADR-002:** GraphQL vs REST - Flexibilidad en queries\n3. **ADR-003:** Signals vs RxJS - Simplicidad en estado local\n4. **ADR-004:** Validación 3 capas - Defensa en profundidad\n\n---\n\n*Desarrollado como prueba técnica para Inter Rapidísimo*\n`,
"Prueba Técnica": `# PRUEBA TECNICA APLICACION WEB\n\n1. Los resultados deben ser enviados en un documento adjunto.\n2. Los entregables deben venir adjuntos.\n\n## El test consiste en:\n\nUna aplicación para registro de estudiantes:\n\n1. Realizar un CRUD que le permita a un usuario realizar un registro en línea.\n2. El estudiante se adhiere a un programa de créditos\n3. Existen 10 materias\n4. Cada materia equivale a 3 créditos.\n5. El estudiante sólo podrá seleccionar 3 materias.\n6. Hay 5 profesores que dictan 2 materias cada uno.\n7. El estudiante no podrá tener clases con el mismo profesor.\n8. Cada estudiante puede ver en línea los registros de otros estudiantes.\n9. El estudiante podrá ver sólo el nombre de los alumnos con quienes compartirá cada clase.\n\n## Entregables:\n\nUna aplicación web o Cliente servidor\nBase de datos o scripts para su creación en MySql / SQL\n`,
},
"Análisis": {
"AN-001 Requisitos Funcionales": `# AN-001: Análisis de Requisitos Funcionales\n\n**Proyecto:** Sistema de Registro de Estudiantes - Inter Rapidísimo\n**Rol:** Analista de Sistemas\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Resumen Ejecutivo\n\nSistema web para gestión de inscripciones estudiantiles con programa de créditos académicos. Permite CRUD de estudiantes, inscripción en materias con restricciones de negocio, y visualización de compañeros de clase.\n\n---\n\n## 2. Requisitos Funcionales Identificados\n\n### RF-001: Registro de Estudiantes (CRUD)\n\n| Atributo | Descripción |\n|----------|-------------|\n| **ID** | RF-001 |\n| **Nombre** | Gestión CRUD de Estudiantes |\n| **Descripción** | El sistema debe permitir crear, leer, actualizar y eliminar registros de estudiantes |\n| **Prioridad** | Alta |\n| **Fuente** | Enunciado punto 1 |\n\n**Criterios de Aceptación:**\n- [ ] CA-001.1: Usuario puede crear estudiante con nombre y email válido\n- [ ] CA-001.2: Usuario puede consultar lista de estudiantes registrados\n- [ ] CA-001.3: Usuario puede actualizar datos de un estudiante existente\n- [ ] CA-001.4: Usuario puede eliminar un estudiante (cascade con inscripciones)\n- [ ] CA-001.5: Email debe ser único en el sistema\n\n---\n\n### RF-002: Programa de Créditos\n\n| Atributo | Descripción |\n|----------|-------------|\n| **ID** | RF-002 |\n| **Nombre** | Adhesión a Programa de Créditos |\n| **Descripción** | Los estudiantes se inscriben en un programa basado en créditos académicos |\n| **Prioridad** | Alta |\n| **Fuente** | Enunciado punto 2 |\n\n**Criterios de Aceptación:**\n- [ ] CA-002.1: Sistema muestra créditos totales del estudiante\n- [ ] CA-002.2: Créditos se calculan automáticamente según materias inscritas\n- [ ] CA-002.3: Máximo 9 créditos por estudiante (3 materias × 3 créditos)\n\n---\n\n### RF-003: Catálogo de Materias\n\n| Atributo | Descripción |\n|----------|-------------|\n| **ID** | RF-003 |\n| **Nombre** | Gestión de 10 Materias |\n| **Descripción** | El sistema debe gestionar un catálogo fijo de 10 materias académicas |\n| **Prioridad** | Alta |\n| **Fuente** | Enunciado punto 3 |\n\n**Criterios de Aceptación:**\n- [ ] CA-003.1: Sistema contiene exactamente 10 materias predefinidas\n- [ ] CA-003.2: Usuario puede consultar catálogo completo de materias\n- [ ] CA-003.3: Cada materia muestra nombre, créditos y profesor asignado\n\n---\n\n### RF-004: Valor de Créditos por Materia\n\n| Atributo | Descripción |\n|----------|-------------|\n| **ID** | RF-004 |\n| **Nombre** | Asignación de 3 Créditos por Materia |\n| **Descripción** | Cada materia del catálogo equivale a exactamente 3 créditos |\n| **Prioridad** | Alta |\n| **Fuente** | Enunciado punto 4 |\n\n**Criterios de Aceptación:**\n- [ ] CA-004.1: Todas las materias tienen valor fijo de 3 créditos\n- [ ] CA-004.2: Sistema muestra créditos en detalle de cada materia\n\n---\n\n### RF-005: Límite de Materias por Estudiante\n\n| Atributo | Descripción |\n|----------|-------------|\n| **ID** | RF-005 |\n| **Nombre** | Máximo 3 Materias por Estudiante |\n| **Descripción** | Un estudiante solo puede inscribirse en máximo 3 materias |\n| **Prioridad** | Alta |\n| **Fuente** | Enunciado punto 5 |\n\n**Criterios de Aceptación:**\n- [ ] CA-005.1: Sistema impide inscripción si estudiante ya tiene 3 materias\n- [ ] CA-005.2: Sistema muestra contador de materias inscritas\n- [ ] CA-005.3: Mensaje de error claro al intentar exceder límite\n\n---\n\n### RF-006: Asignación Profesores-Materias\n\n| Atributo | Descripción |\n|----------|-------------|\n| **ID** | RF-006 |\n| **Nombre** | 5 Profesores con 2 Materias c/u |\n| **Descripción** | El sistema tiene 5 profesores, cada uno dicta exactamente 2 materias |\n| **Prioridad** | Alta |\n| **Fuente** | Enunciado punto 6 |\n\n**Criterios de Aceptación:**\n- [ ] CA-006.1: Sistema contiene exactamente 5 profesores predefinidos\n- [ ] CA-006.2: Cada profesor tiene asignadas exactamente 2 materias\n- [ ] CA-006.3: Usuario puede ver qué profesor dicta cada materia\n\n---\n\n### RF-007: Restricción de Profesor Único\n\n| Atributo | Descripción |\n|----------|-------------|\n| **ID** | RF-007 |\n| **Nombre** | Prohibición de Mismo Profesor |\n| **Descripción** | Un estudiante no puede inscribirse en dos materias del mismo profesor |\n| **Prioridad** | Crítica |\n| **Fuente** | Enunciado punto 7 |\n\n**Criterios de Aceptación:**\n- [ ] CA-007.1: Sistema valida profesor al momento de inscripción\n- [ ] CA-007.2: Materias no disponibles se muestran deshabilitadas con razón\n- [ ] CA-007.3: Mensaje de error específico: "Ya tienes una materia con este profesor"\n\n---\n\n### RF-008: Visualización de Registros\n\n| Atributo | Descripción |\n|----------|-------------|\n| **ID** | RF-008 |\n| **Nombre** | Consulta de Otros Estudiantes |\n| **Descripción** | Cada estudiante puede ver en línea los registros de otros estudiantes |\n| **Prioridad** | Media |\n| **Fuente** | Enunciado punto 8 |\n\n**Criterios de Aceptación:**\n- [ ] CA-008.1: Usuario puede ver lista de todos los estudiantes registrados\n- [ ] CA-008.2: Información visible: nombre (según restricciones de privacidad)\n\n---\n\n### RF-009: Compañeros de Clase\n\n| Atributo | Descripción |\n|----------|-------------|\n| **ID** | RF-009 |\n| **Nombre** | Ver Nombres de Compañeros por Materia |\n| **Descripción** | El estudiante puede ver solo el nombre de alumnos con quienes compartirá clase |\n| **Prioridad** | Media |\n| **Fuente** | Enunciado punto 9 |\n\n**Criterios de Aceptación:**\n- [ ] CA-009.1: Sistema muestra compañeros agrupados por materia\n- [ ] CA-009.2: Solo se muestra el nombre (no email ni otros datos)\n- [ ] CA-009.3: Solo muestra compañeros de materias donde está inscrito\n\n---\n\n### RF-010: Autenticación y Roles\n\n| Atributo | Descripción |\n|----------|-------------|\n| **ID** | RF-010 |\n| **Nombre** | Sistema de Autenticación con Roles |\n| **Descripción** | El sistema debe soportar autenticación JWT con roles Admin y Student |\n| **Prioridad** | Alta |\n| **Fuente** | Requisito de seguridad implícito |\n\n**Criterios de Aceptación:**\n- [ ] CA-010.1: Usuario puede iniciar sesión con credenciales válidas\n- [ ] CA-010.2: Sistema genera token JWT con claims de rol\n- [ ] CA-010.3: Rutas protegidas requieren autenticación\n- [ ] CA-010.4: Admin puede acceder a gestión de estudiantes\n- [ ] CA-010.5: Student solo puede acceder a su dashboard personal\n\n---\n\n### RF-011: Flujo de Activación de Estudiantes\n\n| Atributo | Descripción |\n|----------|-------------|\n| **ID** | RF-011 |\n| **Nombre** | Activación de Cuenta de Estudiante |\n| **Descripción** | Admin crea estudiantes con código de activación. Estudiantes activan su cuenta para crear credenciales |\n| **Prioridad** | Alta |\n| **Fuente** | Requisito de seguridad y UX |\n\n**Criterios de Aceptación:**\n- [ ] CA-011.1: Admin puede crear estudiante y obtener código de activación\n- [ ] CA-011.2: Código de activación es de 12 caracteres alfanuméricos\n- [ ] CA-011.3: Código de activación expira en 48 horas\n- [ ] CA-011.4: Estudiante puede validar código y crear credenciales\n- [ ] CA-011.5: Sistema genera código de recuperación al activar\n- [ ] CA-011.6: Código de recuperación se muestra solo una vez\n- [ ] CA-011.7: Admin puede regenerar código si expira\n\n---\n\n### RF-012: Control de Acceso por Rol\n\n| Atributo | Descripción |\n|----------|-------------|\n| **ID** | RF-012 |\n| **Nombre** | Restricción de Acceso por Rol |\n| **Descripción** | El sistema debe restringir funcionalidades según el rol del usuario |\n| **Prioridad** | Alta |\n| **Fuente** | Requisito de seguridad |\n\n**Criterios de Aceptación:**\n- [ ] CA-012.1: Admin puede ver y gestionar todos los estudiantes\n- [ ] CA-012.2: Student no puede acceder a rutas de administración\n- [ ] CA-012.3: Student solo ve su información y materias\n- [ ] CA-012.4: Intentos de acceso no autorizado redirigen al dashboard\n\n---\n\n## 3. Matriz de Trazabilidad\n\n| Requisito | Historia | Componente Backend | Componente Frontend |\n|-----------|----------|-------------------|---------------------|\n| RF-001 | US-001 | StudentController, StudentService | StudentFormComponent |\n| RF-002 | US-002 | EnrollmentService | DashboardComponent |\n| RF-003 | US-003 | SubjectController | SubjectListComponent |\n| RF-004 | US-003 | Subject Entity | SubjectCardComponent |\n| RF-005 | US-004 | EnrollmentValidator | EnrollmentComponent |\n| RF-006 | US-003 | Professor Entity | ProfessorListComponent |\n| RF-007 | US-005 | EnrollmentDomainService | EnrollmentComponent |\n| RF-008 | US-006 | StudentQuery | StudentListComponent |\n| RF-009 | US-007 | ClassmatesQuery | ClassmatesComponent |\n| RF-010 | US-010 | LoginCommand, JwtService | LoginComponent |\n| RF-011 | US-011 | ActivateAccountCommand | ActivateComponent |\n| RF-012 | US-012 | AuthorizationMiddleware | auth.guard.ts |\n\n---\n\n## 4. Dependencias entre Requisitos\n\n\`\`\`\nRF-010 (Autenticación)\n\nRF-011 (Activación) ──► RF-012 (Control Acceso)\n ↓ ↓\nRF-001 (Estudiantes) │\n ↓ ▼\nRF-002 (Programa Créditos) ← RF-004 (3 créditos/materia)\n\nRF-005 (Max 3 materias) ← RF-003 (10 materias)\n ↓ ↓\nRF-007 (Restricción profesor) ← RF-006 (5 profesores)\n\nRF-008/RF-009 (Visualización)\n\`\`\`\n\n---\n\n## 5. Aprobación\n\n| Rol | Nombre | Fecha | Firma |\n|-----|--------|-------|-------|\n| Analista | Sistema | 2026-01-07 | ✓ |\n| Product Owner | Pendiente | - | - |\n| Líder Técnico | Pendiente | - | - |\n`,
"AN-002 Reglas de Negocio": `# AN-002: Reglas de Negocio\n\n**Proyecto:** Sistema de Registro de Estudiantes - Inter Rapidísimo\n**Rol:** Analista de Sistemas\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Resumen\n\nEste documento define las reglas de negocio que gobiernan el sistema de registro de estudiantes. Estas reglas son invariantes y deben ser validadas en la capa de dominio.\n\n---\n\n## 2. Reglas de Negocio\n\n### RN-001: Estructura del Catálogo de Materias\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RN-001 |\n| **Nombre** | Catálogo Fijo de Materias |\n| **Descripción** | El sistema contiene exactamente 10 materias académicas |\n| **Tipo** | Restricción Estructural |\n| **Severidad** | Crítica |\n\n**Datos Iniciales (Seed):**\n\n| ID | Materia | Profesor Asignado |\n|----|---------|-------------------|\n| 1 | Matemáticas I | Profesor A |\n| 2 | Matemáticas II | Profesor A |\n| 3 | Física I | Profesor B |\n| 4 | Física II | Profesor B |\n| 5 | Programación I | Profesor C |\n| 6 | Programación II | Profesor C |\n| 7 | Base de Datos I | Profesor D |\n| 8 | Base de Datos II | Profesor D |\n| 9 | Redes I | Profesor E |\n| 10 | Redes II | Profesor E |\n\n**Validación:** \`COUNT(Subjects) == 10\`\n\n---\n\n### RN-002: Valor Uniforme de Créditos\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RN-002 |\n| **Nombre** | Créditos por Materia |\n| **Descripción** | Cada materia equivale exactamente a 3 créditos |\n| **Tipo** | Restricción de Valor |\n| **Severidad** | Crítica |\n\n**Fórmula:**\n\`\`\`\nCréditos_Materia = 3 (constante)\nCréditos_Estudiante = COUNT(Inscripciones) × 3\nCréditos_Máximos = 9 (3 materias × 3 créditos)\n\`\`\`\n\n**Validación:** \`Subject.Credits == 3\`\n\n---\n\n### RN-003: Límite de Inscripciones por Estudiante\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RN-003 |\n| **Nombre** | Máximo 3 Materias |\n| **Descripción** | Un estudiante solo puede inscribirse en máximo 3 materias |\n| **Tipo** | Restricción de Cardinalidad |\n| **Severidad** | Crítica |\n\n**Escenarios:**\n\n| Materias Actuales | Acción | Resultado |\n|-------------------|--------|-----------|\n| 0-2 | Inscribir | ✓ Permitido |\n| 3 | Inscribir | ✗ Rechazado |\n| 1-3 | Cancelar | ✓ Permitido |\n\n**Validación:** \`Student.Enrollments.Count <= 3\`\n\n**Mensaje de Error:** "El estudiante ya tiene el máximo de 3 materias inscritas"\n\n---\n\n### RN-004: Asignación Profesores-Materias\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RN-004 |\n| **Nombre** | Distribución de Profesores |\n| **Descripción** | Existen 5 profesores, cada uno dicta exactamente 2 materias |\n| **Tipo** | Restricción Estructural |\n| **Severidad** | Crítica |\n\n**Invariantes:**\n- \`COUNT(Professors) == 5\`\n- \`∀ Professor: COUNT(Professor.Subjects) == 2\`\n- \`∀ Subject: Subject.Professor != NULL\`\n\n**Validación:**\n\`\`\`csharp\nprofessors.All(p => p.Subjects.Count == 2)\nsubjects.All(s => s.ProfessorId != null)\n\`\`\`\n\n---\n\n### RN-005: Restricción de Profesor Único (CRÍTICA)\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RN-005 |\n| **Nombre** | Prohibición de Mismo Profesor |\n| **Descripción** | Un estudiante NO puede inscribirse en dos materias dictadas por el mismo profesor |\n| **Tipo** | Restricción de Integridad |\n| **Severidad** | **CRÍTICA** |\n\n**Lógica de Validación:**\n\n\`\`\`\nPARA inscribir(estudiante, nuevaMateria):\n profesorNuevaMateria = nuevaMateria.Profesor\n profesoresActuales = estudiante.Inscripciones.Select(i => i.Materia.Profesor)\n\n SI profesorNuevaMateria EN profesoresActuales:\n RECHAZAR "Ya tienes una materia con este profesor"\n SINO:\n PERMITIR inscripción\n\`\`\`\n\n**Casos de Prueba:**\n\n| Estudiante tiene | Intenta inscribir | Resultado |\n|------------------|-------------------|-----------|\n| Matemáticas I (Prof A) | Matemáticas II (Prof A) | ✗ Rechazado |\n| Matemáticas I (Prof A) | Física I (Prof B) | ✓ Permitido |\n| Física I (Prof B), Programación I (Prof C) | Redes I (Prof E) | ✓ Permitido |\n| Física I (Prof B), Programación I (Prof C) | Física II (Prof B) | ✗ Rechazado |\n\n**Mensaje de Error:** "No puedes inscribir {materia} porque ya tienes una materia con {profesor}"\n\n---\n\n### RN-006: Unicidad de Email\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RN-006 |\n| **Nombre** | Email Único por Estudiante |\n| **Descripción** | Cada estudiante debe tener un email único en el sistema |\n| **Tipo** | Restricción de Unicidad |\n| **Severidad** | Alta |\n\n**Validación:** \`UNIQUE(Student.Email)\`\n\n**Mensaje de Error:** "Ya existe un estudiante registrado con este email"\n\n---\n\n### RN-007: Formato de Email Válido\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RN-007 |\n| **Nombre** | Validación de Email |\n| **Descripción** | El email debe cumplir formato estándar RFC 5322 |\n| **Tipo** | Restricción de Formato |\n| **Severidad** | Alta |\n\n**Patrón:** \`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}\$\`\n\n**Mensaje de Error:** "El formato del email no es válido"\n\n---\n\n### RN-008: Visibilidad de Compañeros\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RN-008 |\n| **Nombre** | Privacidad de Datos |\n| **Descripción** | Un estudiante solo puede ver el NOMBRE de sus compañeros de clase |\n| **Tipo** | Restricción de Privacidad |\n| **Severidad** | Media |\n\n**Datos Visibles:**\n- ✓ Nombre del compañero\n- ✗ Email del compañero\n- ✗ Otras materias del compañero\n\n**Condición:** Solo aplica para materias donde ambos estudiantes están inscritos\n\n---\n\n## 3. Matriz de Validación por Capa\n\n| Regla | Domain | Application | Adapter |\n|-------|--------|-------------|---------|\n| RN-001 | ✗ | ✗ | Seed Data |\n| RN-002 | ValueObject | ✗ | ✗ |\n| RN-003 | DomainService | ✗ | ✗ |\n| RN-004 | ✗ | ✗ | Seed Data |\n| RN-005 | **DomainService** | ✗ | ✗ |\n| RN-006 | ✗ | Validator | DB Constraint |\n| RN-007 | ValueObject | Validator | ✗ |\n| RN-008 | ✗ | Query Handler | ✗ |\n\n---\n\n## 4. Implementación en Código\n\n### RN-003 y RN-005 (Domain Service)\n\n\`\`\`csharp\n// Domain/Services/EnrollmentDomainService.cs\npublic class EnrollmentDomainService\n{\n public Result ValidateEnrollment(Student student, Subject newSubject)\n {\n // RN-003: Máximo 3 materias\n if (student.Enrollments.Count >= 3)\n return Result.Failure("MAX_ENROLLMENTS_EXCEEDED");\n\n // RN-005: No repetir profesor\n var existingProfessorIds = student.Enrollments\n .Select(e => e.Subject.ProfessorId)\n .ToHashSet();\n\n if (existingProfessorIds.Contains(newSubject.ProfessorId))\n return Result.Failure("SAME_PROFESSOR_CONSTRAINT");\n\n return Result.Success();\n }\n}\n\`\`\`\n\n### RN-007 (Value Object)\n\n\`\`\`csharp\n// Domain/ValueObjects/Email.cs\npublic record Email\n{\n public string Value { get; }\n\n private Email(string value) => Value = value;\n\n public static Result<Email> Create(string email)\n {\n if (string.IsNullOrWhiteSpace(email))\n return Result.Failure<Email>("EMAIL_REQUIRED");\n\n if (!EmailRegex.IsMatch(email))\n return Result.Failure<Email>("EMAIL_INVALID_FORMAT");\n\n return Result.Success(new Email(email.ToLowerInvariant()));\n }\n\n private static readonly Regex EmailRegex = new(\n @"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}\$",\n RegexOptions.Compiled);\n}\n\`\`\`\n\n---\n\n## 5. Diagrama de Restricciones\n\n\`\`\`\n ┌─────────────────────┐\n │ ESTUDIANTE │\n │ - Nombre │\n │ - Email (único) │\n └──────────┬──────────┘\n\n │ máx 3 inscripciones\n │ (RN-003)\n\n ┌─────────────────────┐\n │ INSCRIPCIÓN │\n └──────────┬──────────┘\n\n no puede repetir │ profesor (RN-005)\n\n┌─────────────┐ ┌─────────────────────┐ ┌─────────────┐\n│ PROFESOR │──────│ MATERIA │──────│ 3 CRÉDITOS │\n│ (5 total) │ 1:2 │ (10 total) │ │ (RN-002) │\n└─────────────┘ └─────────────────────┘ └─────────────┘\n\`\`\`\n\n---\n\n## 6. Aprobación\n\n| Rol | Nombre | Fecha | Firma |\n|-----|--------|-------|-------|\n| Analista | Sistema | 2026-01-07 | ✓ |\n| Product Owner | Pendiente | - | - |\n| Arquitecto | Pendiente | - | - |\n`,
"AN-003 Historias de Usuario": `# AN-003: Historias de Usuario\n\n**Proyecto:** Sistema de Registro de Estudiantes - Inter Rapidísimo\n**Rol:** Product Owner\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Épica Principal\n\n**EP-001: Sistema de Inscripción de Estudiantes**\n\nComo institución educativa, necesito un sistema web que permita a los estudiantes registrarse e inscribirse en materias siguiendo las reglas del programa de créditos, para gestionar eficientemente el proceso de matrícula.\n\n---\n\n## 2. Historias de Usuario\n\n### US-001: Registro de Estudiante\n\n| Campo | Valor |\n|-------|-------|\n| **ID** | US-001 |\n| **Épica** | EP-001 |\n| **Prioridad** | Alta |\n| **Story Points** | 5 |\n| **Sprint** | 1 |\n\n**Historia:**\n> Como **estudiante nuevo**,\n> quiero **registrarme en el sistema con mi nombre y correo electrónico**,\n> para **poder acceder al programa de inscripción de materias**.\n\n**Criterios de Aceptación:**\n\n\`\`\`gherkin\nScenario: Registro exitoso de estudiante\n Given estoy en la página de registro\n When ingreso un nombre válido "Juan Pérez"\n And ingreso un email válido "juan@email.com"\n And presiono el botón "Registrar"\n Then el sistema crea mi cuenta\n And veo un mensaje de confirmación\n And soy redirigido a la página de inscripción\n\nScenario: Registro con email duplicado\n Given existe un estudiante con email "juan@email.com"\n When intento registrarme con el mismo email\n Then veo el mensaje "Ya existe un estudiante con este email"\n And el formulario no se envía\n\nScenario: Registro con email inválido\n Given estoy en la página de registro\n When ingreso un email inválido "juanemail.com"\n Then veo el mensaje "Formato de email no válido"\n And el botón de registro está deshabilitado\n\`\`\`\n\n**Notas Técnicas:**\n- Validación de email en frontend y backend\n- Email almacenado en minúsculas (normalización)\n\n---\n\n### US-002: Consulta de Materias Disponibles\n\n| Campo | Valor |\n|-------|-------|\n| **ID** | US-002 |\n| **Épica** | EP-001 |\n| **Prioridad** | Alta |\n| **Story Points** | 3 |\n| **Sprint** | 1 |\n\n**Historia:**\n> Como **estudiante registrado**,\n> quiero **ver el catálogo de las 10 materias disponibles**,\n> para **conocer mis opciones de inscripción**.\n\n**Criterios de Aceptación:**\n\n\`\`\`gherkin\nScenario: Ver catálogo completo\n Given estoy autenticado como estudiante\n When accedo a la sección de materias\n Then veo una lista de 10 materias\n And cada materia muestra nombre, créditos (3) y profesor\n\nScenario: Ver detalle de materia\n Given estoy viendo el catálogo de materias\n When selecciono "Matemáticas I"\n Then veo el nombre del profesor asignado\n And veo que equivale a 3 créditos\n\`\`\`\n\n---\n\n### US-003: Inscripción en Materia\n\n| Campo | Valor |\n|-------|-------|\n| **ID** | US-003 |\n| **Épica** | EP-001 |\n| **Prioridad** | Alta |\n| **Story Points** | 8 |\n| **Sprint** | 1 |\n\n**Historia:**\n> Como **estudiante registrado**,\n> quiero **inscribirme en una materia disponible**,\n> para **acumular créditos en mi programa académico**.\n\n**Criterios de Aceptación:**\n\n\`\`\`gherkin\nScenario: Inscripción exitosa\n Given tengo menos de 3 materias inscritas\n And la materia "Física I" está disponible para mí\n When presiono "Inscribir" en "Física I"\n Then la materia se agrega a mis inscripciones\n And mis créditos aumentan en 3\n And veo mensaje de confirmación\n\nScenario: Intento inscripción con máximo alcanzado\n Given ya tengo 3 materias inscritas\n When intento inscribir otra materia\n Then veo el mensaje "Ya tienes el máximo de 3 materias"\n And el botón de inscripción está deshabilitado\n\nScenario: Intento inscripción con mismo profesor\n Given estoy inscrito en "Matemáticas I" (Profesor A)\n When intento inscribir "Matemáticas II" (Profesor A)\n Then veo el mensaje "Ya tienes una materia con este profesor"\n And la inscripción no se procesa\n\`\`\`\n\n**Notas Técnicas:**\n- Validaciones RN-003 y RN-005 en capa de dominio\n- Transacción atómica para inscripción\n\n---\n\n### US-004: Cancelación de Inscripción\n\n| Campo | Valor |\n|-------|-------|\n| **ID** | US-004 |\n| **Épica** | EP-001 |\n| **Prioridad** | Media |\n| **Story Points** | 3 |\n| **Sprint** | 1 |\n\n**Historia:**\n> Como **estudiante inscrito**,\n> quiero **cancelar la inscripción de una materia**,\n> para **liberar espacio y poder inscribir otra**.\n\n**Criterios de Aceptación:**\n\n\`\`\`gherkin\nScenario: Cancelación exitosa\n Given estoy inscrito en "Física I"\n When presiono "Cancelar inscripción" en esa materia\n And confirmo la acción\n Then la materia se elimina de mis inscripciones\n And mis créditos disminuyen en 3\n And la materia vuelve a estar disponible\n\nScenario: Cancelar con confirmación\n Given estoy inscrito en "Física I"\n When presiono "Cancelar inscripción"\n Then veo un diálogo de confirmación\n And puedo cancelar o confirmar la acción\n\`\`\`\n\n---\n\n### US-005: Visualización de Materias No Disponibles\n\n| Campo | Valor |\n|-------|-------|\n| **ID** | US-005 |\n| **Épica** | EP-001 |\n| **Prioridad** | Media |\n| **Story Points** | 3 |\n| **Sprint** | 2 |\n\n**Historia:**\n> Como **estudiante registrado**,\n> quiero **ver claramente qué materias no puedo inscribir y por qué**,\n> para **tomar decisiones informadas sobre mi inscripción**.\n\n**Criterios de Aceptación:**\n\n\`\`\`gherkin\nScenario: Ver materias bloqueadas por profesor\n Given estoy inscrito en "Matemáticas I" (Profesor A)\n When veo el catálogo de materias\n Then "Matemáticas II" aparece deshabilitada\n And veo el tooltip "Ya tienes materia con Profesor A"\n\nScenario: Ver contador de materias restantes\n Given tengo 2 materias inscritas\n When veo mi panel de inscripción\n Then veo "2/3 materias inscritas"\n And veo "Puedes inscribir 1 materia más"\n\`\`\`\n\n---\n\n### US-006: Consulta de Otros Estudiantes\n\n| Campo | Valor |\n|-------|-------|\n| **ID** | US-006 |\n| **Épica** | EP-001 |\n| **Prioridad** | Baja |\n| **Story Points** | 2 |\n| **Sprint** | 2 |\n\n**Historia:**\n> Como **estudiante registrado**,\n> quiero **ver la lista de otros estudiantes en el sistema**,\n> para **conocer quiénes están en el programa**.\n\n**Criterios de Aceptación:**\n\n\`\`\`gherkin\nScenario: Ver lista de estudiantes\n Given estoy autenticado como estudiante\n When accedo a la sección de estudiantes\n Then veo una lista de todos los estudiantes registrados\n And cada estudiante muestra solo su nombre\n\`\`\`\n\n**Notas:**\n- Por privacidad, no se muestra email ni materias de otros estudiantes\n\n---\n\n### US-007: Ver Compañeros de Clase\n\n| Campo | Valor |\n|-------|-------|\n| **ID** | US-007 |\n| **Épica** | EP-001 |\n| **Prioridad** | Media |\n| **Story Points** | 5 |\n| **Sprint** | 2 |\n\n**Historia:**\n> Como **estudiante inscrito en materias**,\n> quiero **ver los nombres de mis compañeros en cada clase**,\n> para **conocer con quiénes compartiré el curso**.\n\n**Criterios de Aceptación:**\n\n\`\`\`gherkin\nScenario: Ver compañeros por materia\n Given estoy inscrito en "Física I"\n And otros estudiantes también están inscritos en "Física I"\n When accedo a "Mis compañeros de clase"\n Then veo "Física I" como sección\n And bajo ella veo la lista de nombres de compañeros\n\nScenario: Sin compañeros en materia\n Given estoy inscrito en "Redes I"\n And ningún otro estudiante está inscrito en "Redes I"\n When accedo a "Mis compañeros de clase"\n Then veo "Redes I" con mensaje "Sin compañeros aún"\n\nScenario: Privacidad de datos\n Given estoy viendo mis compañeros de clase\n Then solo veo los nombres\n And NO veo emails ni otras materias de mis compañeros\n\`\`\`\n\n---\n\n### US-008: Actualización de Datos Personales\n\n| Campo | Valor |\n|-------|-------|\n| **ID** | US-008 |\n| **Épica** | EP-001 |\n| **Prioridad** | Baja |\n| **Story Points** | 2 |\n| **Sprint** | 2 |\n\n**Historia:**\n> Como **estudiante registrado**,\n> quiero **actualizar mi nombre o correo electrónico**,\n> para **mantener mis datos actualizados**.\n\n**Criterios de Aceptación:**\n\n\`\`\`gherkin\nScenario: Actualización exitosa de nombre\n Given estoy en mi perfil\n When cambio mi nombre a "Juan Carlos Pérez"\n And presiono "Guardar"\n Then mis datos se actualizan\n And veo mensaje de confirmación\n\nScenario: Cambio de email a uno existente\n Given existe otro estudiante con email "otro@email.com"\n When intento cambiar mi email a "otro@email.com"\n Then veo el mensaje "Este email ya está registrado"\n And el cambio no se procesa\n\`\`\`\n\n---\n\n### US-009: Eliminación de Cuenta\n\n| Campo | Valor |\n|-------|-------|\n| **ID** | US-009 |\n| **Épica** | EP-001 |\n| **Prioridad** | Baja |\n| **Story Points** | 2 |\n| **Sprint** | 2 |\n\n**Historia:**\n> Como **estudiante registrado**,\n> quiero **eliminar mi cuenta del sistema**,\n> para **remover mis datos si ya no deseo participar**.\n\n**Criterios de Aceptación:**\n\n\`\`\`gherkin\nScenario: Eliminación con confirmación\n Given estoy en mi perfil\n When presiono "Eliminar cuenta"\n Then veo un diálogo de confirmación\n When confirmo la eliminación\n Then mi cuenta y todas mis inscripciones se eliminan\n And soy redirigido a la página de inicio\n\`\`\`\n\n---\n\n### US-010: Activación de Cuenta de Estudiante\n\n| Campo | Valor |\n|-------|-------|\n| **ID** | US-010 |\n| **Épica** | EP-001 |\n| **Prioridad** | Alta |\n| **Story Points** | 8 |\n| **Sprint** | 1 |\n\n**Historia:**\n> Como **estudiante nuevo**,\n> quiero **activar mi cuenta usando el código proporcionado por el administrador**,\n> para **crear mis credenciales y acceder al sistema**.\n\n**Criterios de Aceptación:**\n\n\`\`\`gherkin\nScenario: Validación de código de activación\n Given tengo un código de activación válido\n When accedo a la URL de activación con el código\n Then el sistema valida el código\n And veo un mensaje de bienvenida con mi nombre\n\nScenario: Creación de credenciales\n Given mi código de activación fue validado\n When ingreso un nombre de usuario único\n And ingreso una contraseña válida (mín. 6 caracteres)\n And confirmo la contraseña\n And presiono "Activar Cuenta"\n Then mi cuenta se activa exitosamente\n And veo mi código de recuperación (una sola vez)\n And soy redirigido al login\n\nScenario: Código de activación expirado\n Given mi código de activación expiró (>48 horas)\n When accedo a la URL de activación\n Then veo el mensaje "Código de activación expirado"\n And veo instrucciones para contactar al administrador\n\`\`\`\n\n---\n\n### US-011: Creación de Estudiante por Administrador\n\n| Campo | Valor |\n|-------|-------|\n| **ID** | US-011 |\n| **Épica** | EP-001 |\n| **Prioridad** | Alta |\n| **Story Points** | 5 |\n| **Sprint** | 1 |\n\n**Historia:**\n> Como **administrador del sistema**,\n> quiero **crear estudiantes y obtener su código de activación**,\n> para **permitirles activar sus cuentas de forma segura**.\n\n**Criterios de Aceptación:**\n\n\`\`\`gherkin\nScenario: Crear estudiante con código de activación\n Given estoy autenticado como administrador\n When navego al panel de gestión de estudiantes\n And presiono "Nuevo Estudiante"\n And ingreso nombre y email válidos\n And presiono "Crear"\n Then el estudiante se crea sin credenciales\n And veo un modal con el código de activación\n And veo la URL de activación completa\n And veo la fecha de expiración del código\n\nScenario: Copiar código de activación\n Given se muestra el modal de activación\n When presiono el botón de copiar código\n Then el código se copia al portapapeles\n And veo confirmación visual\n\`\`\`\n\n---\n\n### US-012: Control de Acceso por Roles\n\n| Campo | Valor |\n|-------|-------|\n| **ID** | US-012 |\n| **Épica** | EP-001 |\n| **Prioridad** | Alta |\n| **Story Points** | 5 |\n| **Sprint** | 1 |\n\n**Historia:**\n> Como **sistema**,\n> quiero **restringir el acceso según el rol del usuario**,\n> para **garantizar que cada usuario solo acceda a funcionalidades autorizadas**.\n\n**Criterios de Aceptación:**\n\n\`\`\`gherkin\nScenario: Estudiante accede a su dashboard\n Given estoy autenticado como estudiante\n When accedo a /dashboard\n Then veo mi información personal\n And veo opciones: "Mi Portal", "Mis Materias", "Compañeros"\n And NO veo: "Panel Admin", "Gestión Estudiantes"\n\nScenario: Estudiante intenta acceder a rutas de admin\n Given estoy autenticado como estudiante\n When intento navegar a /admin o /students\n Then soy redirigido automáticamente a /dashboard\n\nScenario: Administrador accede al panel completo\n Given estoy autenticado como administrador\n When accedo a /admin\n Then veo el panel de administración completo\n And puedo gestionar todos los estudiantes\n\`\`\`\n\n---\n\n## 3. Backlog Priorizado\n\n| Prioridad | Historia | Story Points | Sprint |\n|-----------|----------|--------------|--------|\n| 1 | US-001: Registro de Estudiante | 5 | 1 |\n| 2 | US-011: Creación por Admin | 5 | 1 |\n| 3 | US-010: Activación de Cuenta | 8 | 1 |\n| 4 | US-012: Control de Acceso | 5 | 1 |\n| 5 | US-002: Consulta de Materias | 3 | 1 |\n| 6 | US-003: Inscripción en Materia | 8 | 1 |\n| 7 | US-004: Cancelación de Inscripción | 3 | 1 |\n| 8 | US-005: Materias No Disponibles | 3 | 2 |\n| 9 | US-007: Ver Compañeros | 5 | 2 |\n| 10 | US-006: Consulta de Estudiantes | 2 | 2 |\n| 11 | US-008: Actualizar Datos | 2 | 2 |\n| 12 | US-009: Eliminar Cuenta | 2 | 2 |\n\n**Total Story Points:** 51\n\n---\n\n## 4. Definición de Listo (DoR)\n\n- [ ] Historia tiene criterios de aceptación claros\n- [ ] Dependencias identificadas\n- [ ] Estimación en story points\n- [ ] Diseño de UI aprobado (si aplica)\n- [ ] APIs definidas\n\n## 5. Definición de Terminado (DoD)\n\n- [ ] Código implementado y revisado\n- [ ] Tests unitarios (>80% coverage)\n- [ ] Tests de integración pasando\n- [ ] Documentación actualizada\n- [ ] Validaciones de negocio probadas\n- [ ] Sin deuda técnica crítica\n\n---\n\n## 6. Aprobación\n\n| Rol | Nombre | Fecha | Firma |\n|-----|--------|-------|-------|\n| Product Owner | Sistema | 2026-01-07 | ✓ |\n| Scrum Master | Pendiente | - | - |\n| Tech Lead | Pendiente | - | - |\n`,
"AN-004 Requisitos No Funcionales": `# AN-004: Requisitos No Funcionales\n\n**Proyecto:** Sistema de Registro de Estudiantes - Inter Rapidísimo\n**Rol:** Arquitecto de Software\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Resumen\n\nEste documento define los atributos de calidad (requisitos no funcionales) que el sistema debe cumplir, estableciendo métricas medibles y criterios de aceptación.\n\n---\n\n## 2. Requisitos No Funcionales\n\n### RNF-001: Rendimiento - Tiempo de Respuesta\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RNF-001 |\n| **Categoría** | Rendimiento |\n| **Prioridad** | Alta |\n| **Métrica** | Tiempo de respuesta < 200ms (P95) |\n\n**Descripción:**\nEl sistema debe responder a las solicitudes del usuario en menos de 200 milisegundos en el percentil 95.\n\n**Criterios de Aceptación:**\n\n| Operación | Tiempo Máximo |\n|-----------|---------------|\n| Consulta lista de estudiantes | < 150ms |\n| Consulta catálogo materias | < 100ms |\n| Inscripción en materia | < 200ms |\n| Crear/actualizar estudiante | < 200ms |\n| Consulta compañeros de clase | < 150ms |\n\n**Medición:**\n- Herramienta: Application Insights / Logs estructurados\n- Ambiente: Producción simulada\n- Carga: 100 usuarios concurrentes\n\n---\n\n### RNF-002: Rendimiento - Throughput\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RNF-002 |\n| **Categoría** | Rendimiento |\n| **Prioridad** | Media |\n| **Métrica** | >= 500 requests/segundo |\n\n**Descripción:**\nEl sistema debe soportar al menos 500 solicitudes por segundo sin degradación.\n\n**Criterios de Aceptación:**\n- [ ] API soporta 500 req/s con latencia < 200ms\n- [ ] Sin errores 5xx bajo carga normal\n- [ ] CPU < 80% bajo carga máxima\n\n---\n\n### RNF-003: Seguridad - OWASP Top 10\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RNF-003 |\n| **Categoría** | Seguridad |\n| **Prioridad** | Crítica |\n| **Estándar** | OWASP Top 10 2021 |\n\n**Descripción:**\nEl sistema debe estar protegido contra las 10 vulnerabilidades más críticas según OWASP.\n\n**Controles por Vulnerabilidad:**\n\n| # | Vulnerabilidad | Control Implementado |\n|---|----------------|----------------------|\n| A01 | Broken Access Control | Validación de permisos en cada endpoint |\n| A02 | Cryptographic Failures | HTTPS obligatorio, hashing de datos sensibles |\n| A03 | Injection | Consultas parametrizadas (EF Core), validación de entrada |\n| A04 | Insecure Design | Clean Architecture, validación en dominio |\n| A05 | Security Misconfiguration | Headers de seguridad, CORS restrictivo |\n| A06 | Vulnerable Components | Auditoría de dependencias (\`dotnet list package --vulnerable\`) |\n| A07 | Auth Failures | Rate limiting, validación de sesión |\n| A08 | Data Integrity Failures | Validación de DTOs, firma de respuestas |\n| A09 | Logging Failures | Logs estructurados sin datos sensibles |\n| A10 | SSRF | Validación de URLs, no fetch de recursos externos |\n\n**Criterios de Aceptación:**\n- [ ] Análisis SAST sin vulnerabilidades críticas\n- [ ] Headers de seguridad configurados (CSP, X-Frame-Options, etc.)\n- [ ] Sin secretos en código fuente\n- [ ] HTTPS en todos los endpoints\n\n---\n\n### RNF-004: Seguridad - Validación de Entrada\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RNF-004 |\n| **Categoría** | Seguridad |\n| **Prioridad** | Alta |\n\n**Descripción:**\nToda entrada del usuario debe ser validada tanto en frontend como en backend.\n\n**Reglas de Validación:**\n\n| Campo | Regla Frontend | Regla Backend |\n|-------|----------------|---------------|\n| Nombre | Required, MaxLength(100) | FluentValidation |\n| Email | Required, EmailFormat | ValueObject + Validator |\n| IDs | Numeric | Tipo fuerte (int) |\n\n**Criterios de Aceptación:**\n- [ ] Ningún input llega a la BD sin validación\n- [ ] Mensajes de error claros y sin información sensible\n- [ ] Sanitización de HTML en campos de texto\n\n---\n\n### RNF-005: Usabilidad - Responsive Design\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RNF-005 |\n| **Categoría** | Usabilidad |\n| **Prioridad** | Alta |\n| **Estándar** | Mobile First |\n\n**Descripción:**\nLa interfaz debe adaptarse correctamente a diferentes tamaños de pantalla.\n\n**Breakpoints Soportados:**\n\n| Dispositivo | Ancho | Soporte |\n|-------------|-------|---------|\n| Mobile | 320px - 480px | Obligatorio |\n| Tablet | 481px - 768px | Obligatorio |\n| Desktop | 769px - 1024px | Obligatorio |\n| Large Desktop | > 1024px | Obligatorio |\n\n**Criterios de Aceptación:**\n- [ ] UI funcional en Chrome, Firefox, Safari, Edge\n- [ ] Sin scroll horizontal en mobile\n- [ ] Formularios usables con teclado virtual\n- [ ] Touch targets >= 44px\n\n---\n\n### RNF-006: Usabilidad - Accesibilidad\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RNF-006 |\n| **Categoría** | Usabilidad |\n| **Prioridad** | Media |\n| **Estándar** | WCAG 2.1 Nivel AA |\n\n**Descripción:**\nEl sistema debe ser accesible para usuarios con discapacidades.\n\n**Criterios de Aceptación:**\n- [ ] Contraste de colores >= 4.5:1\n- [ ] Navegación completa por teclado\n- [ ] Labels en todos los inputs\n- [ ] Atributos ARIA donde corresponda\n- [ ] Textos alternativos en imágenes\n\n---\n\n### RNF-007: Mantenibilidad - Cobertura de Tests\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RNF-007 |\n| **Categoría** | Mantenibilidad |\n| **Prioridad** | Alta |\n| **Métrica** | >= 80% cobertura |\n\n**Descripción:**\nEl código debe tener una cobertura de tests unitarios mínima del 80%.\n\n**Distribución de Tests:**\n\n| Capa | Cobertura Mínima | Tipo de Tests |\n|------|------------------|---------------|\n| Domain | 90% | Unit tests |\n| Application | 85% | Unit + Integration |\n| Adapters | 70% | Integration |\n| Frontend | 75% | Unit + Component |\n\n**Criterios de Aceptación:**\n- [ ] Cobertura global >= 80%\n- [ ] Todas las reglas de negocio con tests\n- [ ] Tests ejecutables en CI/CD\n\n---\n\n### RNF-008: Mantenibilidad - Calidad de Código\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RNF-008 |\n| **Categoría** | Mantenibilidad |\n| **Prioridad** | Media |\n\n**Descripción:**\nEl código debe seguir estándares de calidad medibles.\n\n**Métricas:**\n\n| Métrica | Umbral |\n|---------|--------|\n| Complejidad ciclomática | < 10 por método |\n| Duplicación de código | < 3% |\n| Archivos | < 100 líneas |\n| Métodos | < 30 líneas |\n| Warnings del compilador | 0 |\n\n**Herramientas:**\n- .NET: \`dotnet format\`, Roslyn Analyzers\n- Angular: ESLint, Prettier\n\n---\n\n### RNF-009: Disponibilidad\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RNF-009 |\n| **Categoría** | Disponibilidad |\n| **Prioridad** | Media |\n| **Métrica** | 99% uptime |\n\n**Descripción:**\nEl sistema debe estar disponible el 99% del tiempo durante horario laboral.\n\n**Criterios de Aceptación:**\n- [ ] Health checks implementados\n- [ ] Reinicio automático ante fallos\n- [ ] Graceful shutdown\n- [ ] Logs de errores para diagnóstico\n\n---\n\n### RNF-010: Escalabilidad\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RNF-010 |\n| **Categoría** | Escalabilidad |\n| **Prioridad** | Baja |\n\n**Descripción:**\nLa arquitectura debe permitir escalado horizontal sin cambios de código.\n\n**Criterios de Aceptación:**\n- [ ] Aplicación stateless\n- [ ] Configuración externalizada\n- [ ] Base de datos separada de aplicación\n- [ ] Contenedores Docker funcionales\n\n---\n\n## 3. Matriz de Priorización\n\n| ID | Requisito | Prioridad | Impacto | Esfuerzo |\n|----|-----------|-----------|---------|----------|\n| RNF-003 | Seguridad OWASP | Crítica | Alto | Alto |\n| RNF-001 | Tiempo respuesta | Alta | Alto | Medio |\n| RNF-004 | Validación entrada | Alta | Alto | Medio |\n| RNF-005 | Responsive | Alta | Alto | Medio |\n| RNF-007 | Cobertura tests | Alta | Medio | Alto |\n| RNF-002 | Throughput | Media | Medio | Medio |\n| RNF-006 | Accesibilidad | Media | Medio | Medio |\n| RNF-008 | Calidad código | Media | Medio | Bajo |\n| RNF-009 | Disponibilidad | Media | Alto | Medio |\n| RNF-010 | Escalabilidad | Baja | Bajo | Alto |\n\n---\n\n## 4. Estrategia de Validación\n\n### Tests de Rendimiento\n\`\`\`bash\n# k6 para load testing\nk6 run --vus 100 --duration 30s tests/performance/api-load.js\n\`\`\`\n\n### Tests de Seguridad\n\`\`\`bash\n# OWASP ZAP scan\ndocker run -t owasp/zap2docker-stable zap-baseline.py -t https://localhost:5001\n\`\`\`\n\n### Tests de Accesibilidad\n\`\`\`bash\n# Lighthouse CI\nnpx lighthouse https://localhost:4200 --only-categories=accessibility\n\`\`\`\n\n---\n\n## 5. Aprobación\n\n| Rol | Nombre | Fecha | Firma |\n|-----|--------|-------|-------|\n| Arquitecto | Sistema | 2026-01-07 | ✓ |\n| Líder Técnico | Pendiente | - | - |\n| QA Lead | Pendiente | - | - |\n`,
"AN-005 Riesgos Técnicos": `# AN-005: Análisis de Riesgos Técnicos\n\n**Proyecto:** Sistema de Registro de Estudiantes - Inter Rapidísimo\n**Rol:** Líder Técnico\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Resumen\n\nIdentificación y evaluación de riesgos técnicos que podrían impactar el desarrollo, calidad o entrega del sistema. Cada riesgo incluye probabilidad, impacto y estrategia de mitigación.\n\n---\n\n## 2. Matriz de Evaluación\n\n| Probabilidad / Impacto | Bajo (1) | Medio (2) | Alto (3) |\n|------------------------|----------|-----------|----------|\n| **Alta (3)** | 3 | 6 | **9** |\n| **Media (2)** | 2 | 4 | 6 |\n| **Baja (1)** | 1 | 2 | 3 |\n\n**Clasificación:**\n- **Crítico:** 6-9 (acción inmediata)\n- **Moderado:** 3-5 (plan de mitigación)\n- **Bajo:** 1-2 (monitorear)\n\n---\n\n## 3. Riesgos Identificados\n\n### RT-001: Complejidad de Validaciones Cruzadas\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RT-001 |\n| **Categoría** | Desarrollo |\n| **Probabilidad** | Alta (3) |\n| **Impacto** | Alto (3) |\n| **Score** | **9 - Crítico** |\n\n**Descripción:**\nLas validaciones de negocio (máximo 3 materias + no repetir profesor) requieren consultas cruzadas entre entidades. Una implementación incorrecta puede generar condiciones de carrera o validaciones inconsistentes.\n\n**Escenarios de Riesgo:**\n1. Dos inscripciones concurrentes del mismo estudiante\n2. Validación en frontend que no se replica en backend\n3. Race condition al verificar profesor duplicado\n\n**Estrategia de Mitigación:**\n\n| Acción | Responsable | Plazo |\n|--------|-------------|-------|\n| Implementar validaciones en Domain Service (única fuente de verdad) | Dev Senior | Sprint 1 |\n| Usar transacciones con nivel de aislamiento Serializable | Dev Senior | Sprint 1 |\n| Tests de concurrencia con múltiples threads | QA | Sprint 1 |\n| Lock optimista con RowVersion en Enrollment | Dev | Sprint 1 |\n\n**Código de Mitigación:**\n\`\`\`csharp\n// Transacción con locking\nawait using var transaction = await _context.Database\n .BeginTransactionAsync(IsolationLevel.Serializable);\n\nvar student = await _context.Students\n .Include(s => s.Enrollments)\n .ThenInclude(e => e.Subject)\n .FirstOrDefaultAsync(s => s.Id == command.StudentId);\n\n// Validaciones en dominio\n_enrollmentService.ValidateEnrollment(student, subject);\n\nawait _context.SaveChangesAsync();\nawait transaction.CommitAsync();\n\`\`\`\n\n---\n\n### RT-002: Integración Frontend-Backend (GraphQL)\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RT-002 |\n| **Categoría** | Integración |\n| **Probabilidad** | Media (2) |\n| **Impacto** | Alto (3) |\n| **Score** | **6 - Crítico** |\n\n**Descripción:**\nGraphQL introduce complejidad adicional en la integración. Errores en el esquema, types incorrectos o problemas de N+1 queries pueden afectar rendimiento y desarrollo.\n\n**Escenarios de Riesgo:**\n1. Mismatch entre schema GraphQL y DTOs\n2. N+1 queries sin DataLoaders\n3. Errores de tipos en Apollo Angular\n4. Over-fetching o under-fetching de datos\n\n**Estrategia de Mitigación:**\n\n| Acción | Responsable | Plazo |\n|--------|-------------|-------|\n| Generar tipos TypeScript desde schema (codegen) | Dev Frontend | Sprint 1 |\n| Implementar DataLoaders para todas las relaciones | Dev Backend | Sprint 1 |\n| Configurar GraphQL Voyager para visualizar schema | Dev | Sprint 1 |\n| Tests de integración GraphQL con Banana Cake Pop | QA | Sprint 1 |\n\n**Configuración DataLoader:**\n\`\`\`csharp\n// DataLoader para evitar N+1\npublic class SubjectByIdDataLoader : BatchDataLoader<int, Subject>\n{\n protected override async Task<IReadOnlyDictionary<int, Subject>> LoadBatchAsync(\n IReadOnlyList<int> keys, CancellationToken ct)\n {\n return await _context.Subjects\n .Where(s => keys.Contains(s.Id))\n .ToDictionaryAsync(s => s.Id, ct);\n }\n}\n\`\`\`\n\n---\n\n### RT-003: Manejo de Concurrencia\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RT-003 |\n| **Categoría** | Arquitectura |\n| **Probabilidad** | Media (2) |\n| **Impacto** | Alto (3) |\n| **Score** | **6 - Crítico** |\n\n**Descripción:**\nMúltiples usuarios podrían intentar inscribirse en la misma materia simultáneamente, generando conflictos o violaciones de reglas de negocio.\n\n**Escenarios de Riesgo:**\n1. Dos estudiantes inscriben la última plaza disponible\n2. Estudiante inscribe 4ta materia por request concurrente\n3. Datos obsoletos en UI mientras otro usuario modifica\n\n**Estrategia de Mitigación:**\n\n| Acción | Responsable | Plazo |\n|--------|-------------|-------|\n| Implementar Optimistic Concurrency (RowVersion) | Dev Backend | Sprint 1 |\n| Revalidar en backend siempre (no confiar en frontend) | Dev Backend | Sprint 1 |\n| Mostrar toast de "datos actualizados" en conflictos | Dev Frontend | Sprint 2 |\n| Tests de stress con k6 | QA | Sprint 2 |\n\n**Implementación:**\n\`\`\`csharp\n// Entidad con concurrencia optimista\npublic class Student\n{\n [Timestamp]\n public byte[] RowVersion { get; set; }\n}\n\n// Manejo de conflicto\ncatch (DbUpdateConcurrencyException)\n{\n return Result.Failure("CONCURRENT_MODIFICATION");\n}\n\`\`\`\n\n---\n\n### RT-004: Rendimiento de Consultas Anidadas\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RT-004 |\n| **Categoría** | Rendimiento |\n| **Probabilidad** | Media (2) |\n| **Impacto** | Medio (2) |\n| **Score** | **4 - Moderado** |\n\n**Descripción:**\nConsultas GraphQL anidadas (estudiantes → inscripciones → materias → profesores) pueden generar queries pesadas si no se optimizan.\n\n**Escenarios de Riesgo:**\n1. Query de todos los estudiantes con todas sus relaciones\n2. Timeouts en consultas sin límite de profundidad\n3. Consumo excesivo de memoria en serialización\n\n**Estrategia de Mitigación:**\n\n| Acción | Responsable | Plazo |\n|--------|-------------|-------|\n| Configurar límite de profundidad en HotChocolate (max 5) | Dev Backend | Sprint 1 |\n| Implementar paginación en queries de listas | Dev Backend | Sprint 1 |\n| Indexar campos de búsqueda (Email, ProfessorId) | DBA | Sprint 1 |\n| Query complexity analyzer | Dev Backend | Sprint 2 |\n\n**Configuración:**\n\`\`\`csharp\nservices.AddGraphQLServer()\n .SetMaxAllowedExecutionDepth(5)\n .SetPagingOptions(new PagingOptions\n {\n MaxPageSize = 50,\n DefaultPageSize = 20\n });\n\`\`\`\n\n---\n\n### RT-005: Curva de Aprendizaje del Stack\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RT-005 |\n| **Categoría** | Equipo |\n| **Probabilidad** | Alta (3) |\n| **Impacto** | Bajo (1) |\n| **Score** | **3 - Moderado** |\n\n**Descripción:**\nEl stack incluye tecnologías relativamente nuevas (HotChocolate, Angular Signals, Apollo Angular) que pueden requerir tiempo de aprendizaje.\n\n**Tecnologías con Curva:**\n- HotChocolate (GraphQL .NET)\n- Mapster (alternativa a AutoMapper)\n- Angular Signals\n- Apollo Angular\n\n**Estrategia de Mitigación:**\n\n| Acción | Responsable | Plazo |\n|--------|-------------|-------|\n| Documentar patrones y ejemplos en wiki | Tech Lead | Sprint 1 |\n| Code reviews detallados en PRs | Senior Dev | Continuo |\n| Spike técnico para DataLoaders | Dev Backend | Sprint 1 |\n| Usar generador de código Apollo | Dev Frontend | Sprint 1 |\n\n---\n\n### RT-006: Seguridad en GraphQL\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RT-006 |\n| **Categoría** | Seguridad |\n| **Probabilidad** | Baja (1) |\n| **Impacto** | Alto (3) |\n| **Score** | **3 - Moderado** |\n\n**Descripción:**\nGraphQL expone un endpoint flexible que puede ser abusado con queries maliciosas (deeply nested, introspection en prod, DoS).\n\n**Escenarios de Riesgo:**\n1. Query extremadamente anidada consume recursos\n2. Introspection expone schema sensible\n3. Mutation masiva sin rate limiting\n\n**Estrategia de Mitigación:**\n\n| Acción | Responsable | Plazo |\n|--------|-------------|-------|\n| Deshabilitar introspection en producción | DevOps | Deploy |\n| Configurar query complexity limits | Dev Backend | Sprint 1 |\n| Rate limiting por IP (10 req/s) | DevOps | Sprint 2 |\n| Persisted queries en producción | Dev Backend | Sprint 3 |\n\n**Configuración:**\n\`\`\`csharp\nservices.AddGraphQLServer()\n .AddMaxComplexityRule(100) // Límite de complejidad\n .AddMaxExecutionDepthRule(5)\n .ModifyOptions(o =>\n {\n // Deshabilitar introspection en prod\n if (!env.IsDevelopment())\n o.EnableSchemaIntrospection = false;\n });\n\`\`\`\n\n---\n\n### RT-007: Migración y Seeding de Datos\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RT-007 |\n| **Categoría** | Base de Datos |\n| **Probabilidad** | Baja (1) |\n| **Impacto** | Medio (2) |\n| **Score** | **2 - Bajo** |\n\n**Descripción:**\nLos datos iniciales (5 profesores, 10 materias) deben estar correctamente relacionados. Errores en seeding pueden romper reglas de negocio.\n\n**Escenarios de Riesgo:**\n1. Profesor asignado a más de 2 materias\n2. IDs inconsistentes entre migraciones\n3. Datos duplicados en re-ejecución de seed\n\n**Estrategia de Mitigación:**\n\n| Acción | Responsable | Plazo |\n|--------|-------------|-------|\n| Seeding idempotente (verificar existencia) | Dev Backend | Sprint 1 |\n| Validación post-seed en tests | QA | Sprint 1 |\n| Script de verificación de integridad | DBA | Sprint 1 |\n\n---\n\n### RT-008: Testing de Reglas de Negocio\n\n| Atributo | Valor |\n|----------|-------|\n| **ID** | RT-008 |\n| **Categoría** | Calidad |\n| **Probabilidad** | Media (2) |\n| **Impacto** | Medio (2) |\n| **Score** | **4 - Moderado** |\n\n**Descripción:**\nLas reglas de negocio complejas requieren cobertura exhaustiva de tests. Casos edge pueden quedar sin probar.\n\n**Casos Edge Críticos:**\n1. Inscribir materia 3 cuando ya tiene 2 del mismo "tipo"\n2. Cancelar inscripción y re-inscribir rápidamente\n3. Estudiante con 3 materias intenta cambiar una\n\n**Estrategia de Mitigación:**\n\n| Acción | Responsable | Plazo |\n|--------|-------------|-------|\n| Property-based testing para combinaciones | QA | Sprint 1 |\n| Matriz de casos de prueba exhaustiva | QA | Sprint 1 |\n| Mutation testing (Stryker) | QA | Sprint 2 |\n\n---\n\n## 4. Matriz de Riesgos Consolidada\n\n| ID | Riesgo | Prob | Impacto | Score | Prioridad |\n|----|--------|------|---------|-------|-----------|\n| RT-001 | Validaciones cruzadas | 3 | 3 | **9** | 1 |\n| RT-002 | Integración GraphQL | 2 | 3 | **6** | 2 |\n| RT-003 | Concurrencia | 2 | 3 | **6** | 3 |\n| RT-004 | Rendimiento queries | 2 | 2 | 4 | 4 |\n| RT-005 | Curva aprendizaje | 3 | 1 | 3 | 5 |\n| RT-006 | Seguridad GraphQL | 1 | 3 | 3 | 6 |\n| RT-008 | Testing reglas | 2 | 2 | 4 | 7 |\n| RT-007 | Seeding datos | 1 | 2 | 2 | 8 |\n\n---\n\n## 5. Plan de Contingencia\n\n### Si RT-001 se materializa (validaciones fallan):\n1. Rollback a versión anterior\n2. Fix inmediato en Domain Service\n3. Agregar tests de regresión\n4. Re-deploy con verificación manual\n\n### Si RT-002 se materializa (integración falla):\n1. Fallback a REST API simple\n2. Schema manual sin codegen\n3. Simplificar queries GraphQL\n\n### Si RT-003 se materializa (race conditions):\n1. Lock pesimista temporal\n2. Queue de inscripciones\n3. Revisión manual de conflictos\n\n---\n\n## 6. Indicadores de Monitoreo\n\n| Riesgo | Indicador | Umbral de Alerta |\n|--------|-----------|------------------|\n| RT-001 | Inscripciones fallidas por validación | > 5% |\n| RT-002 | Errores GraphQL 500 | > 1% |\n| RT-003 | DbUpdateConcurrencyException | > 10/hora |\n| RT-004 | Query time P95 | > 500ms |\n| RT-006 | Requests bloqueados por rate limit | > 100/hora |\n\n---\n\n## 7. Revisión de Riesgos\n\n| Fecha | Revisor | Acción |\n|-------|---------|--------|\n| Sprint 1 Review | Tech Lead | Evaluar RT-001, RT-002 |\n| Sprint 2 Review | Tech Lead | Evaluar RT-003, RT-004 |\n| Pre-deploy | QA Lead | Validar mitigaciones |\n\n---\n\n## 8. Aprobación\n\n| Rol | Nombre | Fecha | Firma |\n|-----|--------|-------|-------|\n| Líder Técnico | Sistema | 2026-01-07 | ✓ |\n| Arquitecto | Pendiente | - | - |\n| Project Manager | Pendiente | - | - |\n`,
},
"Diseño": {
"DI-001 Arquitectura Backend": `# DI-001: Arquitectura Backend\n\n**Proyecto:** Sistema de Registro de Estudiantes\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Patrón: Clean Architecture + CQRS\n\n\`\`\`\n┌────────────────────────────────────────────────────────────┐\n│ HOST │\n│ (Program.cs, DI, Configuration) │\n└─────────────────────────┬──────────────────────────────────┘\n\n┌─────────────────────────▼──────────────────────────────────┐\n│ ADAPTERS │\n│ ┌──────────────────────┬─────────────────────────────┐ │\n│ │ DRIVING (Primary) │ DRIVEN (Secondary) │ │\n│ │ ────────────────── │ ───────────────────── │ │\n│ │ GraphQL API │ Persistence (EF Core) │ │\n│ │ (HotChocolate) │ DataLoaders │ │\n│ └──────────────────────┴─────────────────────────────┘ │\n└─────────────────────────┬──────────────────────────────────┘\n\n┌─────────────────────────▼──────────────────────────────────┐\n│ APPLICATION │\n│ Commands / Queries / Handlers / Validators │\n└─────────────────────────┬──────────────────────────────────┘\n\n┌─────────────────────────▼──────────────────────────────────┐\n│ DOMAIN │\n│ Entities / Value Objects / Services / Ports │\n└────────────────────────────────────────────────────────────┘\n\`\`\`\n\n---\n\n## 2. Regla de Dependencia\n\n\`\`\`\nHost → Adapters → Application → Domain\n\n Adapters implementa Ports\n\`\`\`\n\n**INVIOLABLE:** Domain NO depende de nada externo.\n\n---\n\n## 3. Responsabilidades por Capa\n\n| Capa | Responsabilidad | Tecnología |\n|------|-----------------|------------|\n| **Domain** | Entidades, Value Objects, reglas de negocio puras, Ports (interfaces) | C# puro |\n| **Application** | Casos de uso (Commands/Queries), DTOs, Validators, orquestación | MediatR, FluentValidation, Mapster |\n| **Adapters/Driving** | GraphQL API (Types, Resolvers, Mutations) | HotChocolate |\n| **Adapters/Driven** | Repositorios, DbContext, DataLoaders | EF Core, SQL Server |\n| **Host** | Composition Root, DI, Middleware | ASP.NET Core |\n\n---\n\n## 4. Estructura de Proyectos\n\n\`\`\`\nsrc/backend/\n├── Domain/\n│ ├── Entities/ # Student, Subject, Professor, Enrollment\n│ ├── ValueObjects/ # Email, Credits\n│ ├── Services/ # EnrollmentDomainService\n│ ├── Ports/\n│ │ └── Repositories/ # IStudentRepository, ISubjectRepository\n│ └── Exceptions/ # MaxEnrollmentsException, SameProfessorException\n\n├── Application/\n│ ├── Students/\n│ │ ├── Commands/ # CreateStudentCommand, UpdateStudentCommand\n│ │ ├── Queries/ # GetStudentsQuery, GetStudentByIdQuery\n│ │ └── DTOs/ # StudentDto, CreateStudentInput\n│ ├── Enrollments/\n│ │ ├── Commands/ # EnrollCommand, UnenrollCommand\n│ │ ├── Queries/ # GetClassmatesQuery\n│ │ └── DTOs/ # EnrollmentDto, EnrollInput\n│ └── Common/\n│ ├── Behaviors/ # ValidationBehavior\n│ └── Mappings/ # MapsterConfig\n\n├── Adapters/\n│ ├── Driving/\n│ │ └── Api/\n│ │ ├── Types/ # StudentType, SubjectType\n│ │ ├── Queries/ # QueryResolvers\n│ │ └── Mutations/ # MutationResolvers\n│ └── Driven/\n│ └── Persistence/\n│ ├── Context/ # AppDbContext\n│ ├── Configs/ # StudentConfiguration\n│ ├── Repos/ # StudentRepository\n│ └── Seeding/ # DataSeeder\n\n└── Host/\n └── Program.cs # Entry point + DI\n\`\`\`\n\n---\n\n## 5. Flujo de una Request\n\n\`\`\`\n1. GraphQL Request → HotChocolate Resolver\n2. Resolver → Application Handler (via MediatR)\n3. Handler → Validator (FluentValidation)\n4. Handler → Domain Service (reglas de negocio)\n5. Handler → Repository (persistencia)\n6. Repository → DbContext → SQL Server\n7. Response ← DTO ← Mapper ← Entity\n\`\`\`\n\n---\n\n## 6. Decisiones de Arquitectura\n\n| Decisión | Razón |\n|----------|-------|\n| GraphQL vs REST | Flexibilidad en queries, evita over/under-fetching |\n| HotChocolate | Mejor soporte .NET, Code-First, DataLoaders |\n| MediatR | Desacopla handlers, facilita CQRS |\n| Mapster | Más rápido que AutoMapper |\n| FluentValidation | Validaciones declarativas y testeables |\n`,
"DI-002 Modelo de Dominio": `# DI-002: Modelo de Dominio\n\n**Proyecto:** Sistema de Registro de Estudiantes\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Diagrama de Entidades\n\n\`\`\`\n┌─────────────────┐ ┌─────────────────────────┐\n│ PROFESSOR │ │ STUDENT │\n├─────────────────┤ ├─────────────────────────┤\n│ Id: int (PK) │ │ Id: int (PK) │\n│ Name: string │ │ Name: string │\n└────────┬────────┘ │ Email: Email │\n │ │ ActivationCodeHash? │ ← Nuevo\n │ 1:2 │ ActivationExpiresAt? │ ← Nuevo\n ▼ │ IsActivated (computed) │ ← Nuevo\n┌─────────────────┐ │ RowVersion │\n│ SUBJECT │ └────────┬────────────────┘\n├─────────────────┤ │\n│ Id: int (PK) │ │ 0..3\n│ Name: string │ ▼\n│ Credits: 3 │ ┌─────────────────┐\n│ ProfessorId: FK │◄──────│ ENROLLMENT │\n└─────────────────┘ 1:N ├─────────────────┤\n │ Id: int (PK) │\n┌─────────────────┐ │ StudentId: FK │\n│ USER │ │ SubjectId: FK │\n├─────────────────┤ │ EnrolledAt │\n│ Id: int (PK) │ └─────────────────┘\n│ Username │\n│ PasswordHash │\n│ RecoveryCodeHash│\n│ Role (Admin/ │\n│ Student) │\n│ StudentId?: FK │───────► 0..1 Student\n│ CreatedAt │\n│ LastLoginAt? │\n└─────────────────┘\n\`\`\`\n\n---\n\n## 2. Entidades\n\n### Student (Aggregate Root)\n\n\`\`\`csharp\npublic class Student\n{\n public const int MaxEnrollments = 3;\n\n public int Id { get; private set; }\n public string Name { get; private set; }\n public Email Email { get; private set; }\n\n // Campos de Activación (nuevo flujo)\n public string? ActivationCodeHash { get; private set; }\n public DateTime? ActivationExpiresAt { get; private set; }\n public bool IsActivated => ActivationCodeHash == null;\n\n private readonly List<Enrollment> _enrollments = new();\n public IReadOnlyCollection<Enrollment> Enrollments => _enrollments;\n\n public int TotalCredits => _enrollments.Count * 3;\n\n public void Enroll(Subject subject, IEnrollmentPolicy policy)\n {\n policy.Validate(this, subject);\n _enrollments.Add(new Enrollment(this, subject));\n }\n\n public void Unenroll(int subjectId)\n {\n var enrollment = _enrollments.FirstOrDefault(e => e.SubjectId == subjectId);\n if (enrollment != null) _enrollments.Remove(enrollment);\n }\n\n // Métodos de activación\n public void SetActivationCode(string codeHash, TimeSpan expiresIn)\n {\n ActivationCodeHash = codeHash;\n ActivationExpiresAt = DateTime.UtcNow.Add(expiresIn);\n }\n\n public void ClearActivationCode()\n {\n ActivationCodeHash = null;\n ActivationExpiresAt = null;\n }\n\n public bool IsActivationExpired() =>\n ActivationExpiresAt.HasValue && DateTime.UtcNow > ActivationExpiresAt.Value;\n}\n\`\`\`\n\n### User (Autenticación)\n\n\`\`\`csharp\npublic class User\n{\n public int Id { get; private set; }\n public string Username { get; private set; } // Almacenado en minúsculas\n public string PasswordHash { get; private set; } // PBKDF2-SHA256\n public string RecoveryCodeHash { get; private set; }\n public string Role { get; private set; } // "Admin" | "Student"\n public int? StudentId { get; private set; } // FK opcional a Student\n public DateTime CreatedAt { get; private set; }\n public DateTime? LastLoginAt { get; private set; }\n\n public Student? Student { get; private set; } // Navegación\n}\n\`\`\`\n\n### Subject\n\n\`\`\`csharp\npublic class Subject\n{\n public int Id { get; private set; }\n public string Name { get; private set; }\n public int Credits { get; } = 3; // Constante: RN-002\n public int ProfessorId { get; private set; }\n public Professor Professor { get; private set; }\n}\n\`\`\`\n\n### Professor\n\n\`\`\`csharp\npublic class Professor\n{\n public int Id { get; private set; }\n public string Name { get; private set; }\n\n private readonly List<Subject> _subjects = new();\n public IReadOnlyCollection<Subject> Subjects => _subjects;\n}\n\`\`\`\n\n### Enrollment\n\n\`\`\`csharp\npublic class Enrollment\n{\n public int Id { get; private set; }\n public int StudentId { get; private set; }\n public int SubjectId { get; private set; }\n public DateTime EnrolledAt { get; private set; }\n\n public Student Student { get; private set; }\n public Subject Subject { get; private set; }\n}\n\`\`\`\n\n---\n\n## 3. Value Objects\n\n### Email\n\n\`\`\`csharp\npublic record Email\n{\n public string Value { get; }\n\n private Email(string value) => Value = value;\n\n public static Result<Email> Create(string email)\n {\n if (string.IsNullOrWhiteSpace(email))\n return Result.Failure<Email>("Email requerido");\n\n if (!Regex.IsMatch(email, @"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+\$"))\n return Result.Failure<Email>("Formato de email inválido");\n\n return Result.Success(new Email(email.ToLowerInvariant()));\n }\n}\n\`\`\`\n\n---\n\n## 4. Domain Service\n\n### EnrollmentDomainService (Implementa RN-003 y RN-005)\n\n\`\`\`csharp\npublic class EnrollmentDomainService : IEnrollmentPolicy\n{\n public void Validate(Student student, Subject newSubject)\n {\n // RN-003: Máximo 3 materias\n if (student.Enrollments.Count >= 3)\n throw new MaxEnrollmentsExceededException(student.Id);\n\n // RN-005: No repetir profesor\n var professorIds = student.Enrollments\n .Select(e => e.Subject.ProfessorId)\n .ToHashSet();\n\n if (professorIds.Contains(newSubject.ProfessorId))\n throw new SameProfessorConstraintException(\n student.Id,\n newSubject.ProfessorId);\n }\n}\n\`\`\`\n\n---\n\n## 5. Excepciones de Dominio\n\n\`\`\`csharp\npublic class MaxEnrollmentsExceededException : DomainException\n{\n public MaxEnrollmentsExceededException(int studentId)\n : base(\$"Estudiante {studentId} ya tiene 3 materias inscritas") { }\n}\n\npublic class SameProfessorConstraintException : DomainException\n{\n public SameProfessorConstraintException(int studentId, int professorId)\n : base(\$"Estudiante {studentId} ya tiene materia con profesor {professorId}") { }\n}\n\`\`\`\n\n---\n\n## 6. Invariantes del Dominio\n\n| Invariante | Entidad | Validación |\n|------------|---------|------------|\n| Email único | Student | DB Constraint + Validator |\n| Email válido | Student | Value Object |\n| Max 3 inscripciones | Student | Domain Service |\n| No repetir profesor | Student | Domain Service |\n| 3 créditos/materia | Subject | Constante |\n| 2 materias/profesor | Professor | Seed Data |\n| Username único | User | DB Constraint |\n| Código activación expira | Student | ActivationExpiresAt |\n| Student ↔ User (1:0..1) | User | StudentId nullable |\n\n---\n\n## 7. Flujo de Activación\n\n\`\`\`\n┌──────────────┐ ┌──────────────┐ ┌──────────────┐\n│ ADMIN │ │ STUDENT │ │ USER │\n│ (creates) │───►│ (pending) │ │ (not yet) │\n└──────────────┘ └──────┬───────┘ └──────────────┘\n\n SetActivationCode()\n\n\n ┌──────────────┐\n │ STUDENT │\n │ (has code) │\n └──────┬───────┘\n\n Activate(username, password)\n\n\n┌──────────────┐ ┌──────────────┐ ┌──────────────┐\n│ ADMIN │ │ STUDENT │◄───│ USER │\n│ (creates) │ │ (activated) │ │ StudentId=X │\n└──────────────┘ └──────────────┘ └──────────────┘\n\`\`\`\n`,
"DI-003 Diseño Base de Datos": `# DI-003: Diseño de Base de Datos\n\n**Proyecto:** Sistema de Registro de Estudiantes\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Modelo Entidad-Relación\n\n\`\`\`\n┌─────────────────────────────────────────────────────────────────┐\n│ PROFESSORS │\n├──────────────┬────────────────┬─────────────────────────────────┤\n│ Id │ INT │ PK, IDENTITY │\n│ Name │ NVARCHAR(100) │ NOT NULL │\n└──────────────┴────────────────┴─────────────────────────────────┘\n\n │ 1:N (cada profesor → 2 materias)\n\n┌─────────────────────────────────────────────────────────────────┐\n│ SUBJECTS │\n├──────────────┬────────────────┬─────────────────────────────────┤\n│ Id │ INT │ PK, IDENTITY │\n│ Name │ NVARCHAR(100) │ NOT NULL │\n│ Credits │ INT │ DEFAULT 3, CHECK (Credits = 3) │\n│ ProfessorId │ INT │ FK → Professors.Id │\n└──────────────┴────────────────┴─────────────────────────────────┘\n\n │ 1:N\n\n┌─────────────────────────────────────────────────────────────────┐\n│ ENROLLMENTS │\n├──────────────┬────────────────┬─────────────────────────────────┤\n│ Id │ INT │ PK, IDENTITY │\n│ StudentId │ INT │ FK → Students.Id │\n│ SubjectId │ INT │ FK → Subjects.Id │\n│ EnrolledAt │ DATETIME2 │ DEFAULT GETUTCDATE() │\n└──────────────┴────────────────┴─────────────────────────────────┘\n\n │ 0..3:N\n\n┌─────────────────────────────────────────────────────────────────┐\n│ STUDENTS │\n├──────────────┬────────────────┬─────────────────────────────────┤\n│ Id │ INT │ PK, IDENTITY │\n│ Name │ NVARCHAR(100) │ NOT NULL │\n│ Email │ NVARCHAR(255) │ NOT NULL, UNIQUE │\n│ RowVersion │ ROWVERSION │ Concurrency control │\n└──────────────┴────────────────┴─────────────────────────────────┘\n\`\`\`\n\n---\n\n## 2. Script DDL\n\n\`\`\`sql\n-- Crear base de datos\nCREATE DATABASE StudentEnrollment;\nGO\n\nUSE StudentEnrollment;\nGO\n\n-- Tabla: Professors\nCREATE TABLE Professors (\n Id INT IDENTITY(1,1) PRIMARY KEY,\n Name NVARCHAR(100) NOT NULL\n);\n\n-- Tabla: Subjects\nCREATE TABLE Subjects (\n Id INT IDENTITY(1,1) PRIMARY KEY,\n Name NVARCHAR(100) NOT NULL,\n Credits INT NOT NULL DEFAULT 3 CHECK (Credits = 3),\n ProfessorId INT NOT NULL,\n CONSTRAINT FK_Subjects_Professors\n FOREIGN KEY (ProfessorId) REFERENCES Professors(Id)\n);\n\n-- Tabla: Students\nCREATE TABLE Students (\n Id INT IDENTITY(1,1) PRIMARY KEY,\n Name NVARCHAR(100) NOT NULL,\n Email NVARCHAR(255) NOT NULL,\n RowVersion ROWVERSION,\n CONSTRAINT UQ_Students_Email UNIQUE (Email)\n);\n\n-- Tabla: Enrollments\nCREATE TABLE Enrollments (\n Id INT IDENTITY(1,1) PRIMARY KEY,\n StudentId INT NOT NULL,\n SubjectId INT NOT NULL,\n EnrolledAt DATETIME2 NOT NULL DEFAULT GETUTCDATE(),\n CONSTRAINT FK_Enrollments_Students\n FOREIGN KEY (StudentId) REFERENCES Students(Id) ON DELETE CASCADE,\n CONSTRAINT FK_Enrollments_Subjects\n FOREIGN KEY (SubjectId) REFERENCES Subjects(Id),\n CONSTRAINT UQ_Enrollments_Student_Subject\n UNIQUE (StudentId, SubjectId)\n);\n\n-- Índices\nCREATE INDEX IX_Subjects_ProfessorId ON Subjects(ProfessorId);\nCREATE INDEX IX_Enrollments_StudentId ON Enrollments(StudentId);\nCREATE INDEX IX_Enrollments_SubjectId ON Enrollments(SubjectId);\n\`\`\`\n\n---\n\n## 3. Datos Iniciales (Seed)\n\n\`\`\`sql\n-- 5 Profesores\nINSERT INTO Professors (Name) VALUES\n ('Dr. García'), -- Id: 1\n ('Dra. Martínez'), -- Id: 2\n ('Dr. López'), -- Id: 3\n ('Dra. Rodríguez'), -- Id: 4\n ('Dr. Hernández'); -- Id: 5\n\n-- 10 Materias (2 por profesor)\nINSERT INTO Subjects (Name, Credits, ProfessorId) VALUES\n ('Matemáticas I', 3, 1),\n ('Matemáticas II', 3, 1),\n ('Física I', 3, 2),\n ('Física II', 3, 2),\n ('Programación I', 3, 3),\n ('Programación II', 3, 3),\n ('Base de Datos I', 3, 4),\n ('Base de Datos II', 3, 4),\n ('Redes I', 3, 5),\n ('Redes II', 3, 5);\n\`\`\`\n\n---\n\n## 4. Constraints de Negocio\n\n| Constraint | Tipo | Descripción |\n|------------|------|-------------|\n| \`UQ_Students_Email\` | UNIQUE | Email único por estudiante |\n| \`UQ_Enrollments_Student_Subject\` | UNIQUE | No duplicar inscripción |\n| \`CHECK (Credits = 3)\` | CHECK | Créditos siempre = 3 |\n| \`ON DELETE CASCADE\` | FK | Eliminar inscripciones al eliminar estudiante |\n\n---\n\n## 5. Vistas Útiles\n\n\`\`\`sql\n-- Vista: Compañeros de clase\nCREATE VIEW vw_Classmates AS\nSELECT\n e1.StudentId,\n s.Name AS SubjectName,\n st.Name AS ClassmateName\nFROM Enrollments e1\nINNER JOIN Enrollments e2 ON e1.SubjectId = e2.SubjectId\n AND e1.StudentId != e2.StudentId\nINNER JOIN Subjects s ON e1.SubjectId = s.Id\nINNER JOIN Students st ON e2.StudentId = st.Id;\n\n-- Vista: Materias disponibles por estudiante\nCREATE VIEW vw_AvailableSubjects AS\nSELECT\n st.Id AS StudentId,\n su.Id AS SubjectId,\n su.Name AS SubjectName,\n p.Name AS ProfessorName,\n CASE\n WHEN e.Id IS NOT NULL THEN 0 -- Ya inscrito\n WHEN ep.ProfessorId IS NOT NULL THEN 0 -- Mismo profesor\n ELSE 1\n END AS IsAvailable\nFROM Students st\nCROSS JOIN Subjects su\nINNER JOIN Professors p ON su.ProfessorId = p.Id\nLEFT JOIN Enrollments e ON st.Id = e.StudentId AND su.Id = e.SubjectId\nLEFT JOIN (\n SELECT DISTINCT e.StudentId, s.ProfessorId\n FROM Enrollments e\n INNER JOIN Subjects s ON e.SubjectId = s.Id\n) ep ON st.Id = ep.StudentId AND su.ProfessorId = ep.ProfessorId;\n\`\`\`\n\n---\n\n## 6. Diccionario de Datos\n\n| Tabla | Campo | Tipo | Descripción |\n|-------|-------|------|-------------|\n| Students | Id | INT | Identificador único |\n| Students | Name | NVARCHAR(100) | Nombre completo |\n| Students | Email | NVARCHAR(255) | Correo (único) |\n| Students | RowVersion | ROWVERSION | Control de concurrencia |\n| Subjects | Credits | INT | Siempre 3 |\n| Enrollments | EnrolledAt | DATETIME2 | Fecha de inscripción UTC |\n`,
"DI-004 Esquema GraphQL": `# DI-004: Esquema GraphQL\n\n**Proyecto:** Sistema de Registro de Estudiantes\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Schema Completo\n\n\`\`\`graphql\n# ═══════════════════════════════════════════════════════════════\n# TYPES\n# ═══════════════════════════════════════════════════════════════\n\ntype Student {\n id: Int!\n name: String!\n email: String!\n totalCredits: Int!\n isActivated: Boolean!\n activationExpiresAt: DateTime\n enrollments: [Enrollment!]!\n}\n\ntype User {\n id: Int!\n username: String!\n role: String! # "Admin" | "Student"\n studentId: Int\n studentName: String\n}\n\ntype Subject {\n id: Int!\n name: String!\n credits: Int!\n professor: Professor!\n enrolledStudents: [Student!]!\n}\n\ntype Professor {\n id: Int!\n name: String!\n subjects: [Subject!]!\n}\n\ntype Enrollment {\n id: Int!\n student: Student!\n subject: Subject!\n enrolledAt: DateTime!\n}\n\ntype AvailableSubject {\n subject: Subject!\n isAvailable: Boolean!\n unavailableReason: String\n}\n\ntype Classmate {\n subjectName: String!\n students: [String!]!\n}\n\n# ═══════════════════════════════════════════════════════════════\n# QUERIES\n# ═══════════════════════════════════════════════════════════════\n\ntype Query {\n # Autenticación\n me: User # Usuario autenticado actual\n validateActivationCode(code: String!): ActivationValidation!\n\n # Estudiantes\n students: [Student!]!\n student(id: Int!): Student\n\n # Materias\n subjects: [Subject!]!\n subject(id: Int!): Subject\n availableSubjects(studentId: Int!): [AvailableSubject!]!\n\n # Profesores\n professors: [Professor!]!\n professor(id: Int!): Professor\n\n # Compañeros de clase\n classmates(studentId: Int!): [Classmate!]!\n}\n\ntype ActivationValidation {\n isValid: Boolean!\n studentName: String\n error: String\n}\n\n# ═══════════════════════════════════════════════════════════════\n# MUTATIONS\n# ═══════════════════════════════════════════════════════════════\n\ntype Mutation {\n # Autenticación\n login(input: LoginInput!): AuthPayload!\n activateAccount(input: ActivateAccountInput!): AuthPayload!\n resetPassword(input: ResetPasswordInput!): ResetPayload!\n\n # Estudiantes (Admin crea con código de activación)\n createStudent(input: CreateStudentInput!): CreateStudentPayload!\n updateStudent(id: Int!, input: UpdateStudentInput!): StudentPayload!\n deleteStudent(id: Int!): DeletePayload!\n regenerateActivationCode(studentId: Int!): ActivationCodePayload!\n\n # Inscripciones\n enrollStudent(input: EnrollInput!): EnrollmentPayload!\n unenrollStudent(enrollmentId: Int!): DeletePayload!\n}\n\n# ═══════════════════════════════════════════════════════════════\n# INPUTS\n# ═══════════════════════════════════════════════════════════════\n\n# Autenticación\ninput LoginInput {\n username: String!\n password: String!\n}\n\ninput ActivateAccountInput {\n activationCode: String!\n username: String!\n password: String!\n}\n\ninput ResetPasswordInput {\n username: String!\n recoveryCode: String!\n newPassword: String!\n}\n\n# Estudiantes\ninput CreateStudentInput {\n name: String!\n email: String!\n}\n\ninput UpdateStudentInput {\n name: String\n email: String\n}\n\ninput EnrollInput {\n studentId: Int!\n subjectId: Int!\n}\n\n# ═══════════════════════════════════════════════════════════════\n# PAYLOADS (Union para errores)\n# ═══════════════════════════════════════════════════════════════\n\n# Autenticación\ntype AuthPayload {\n success: Boolean!\n token: String\n recoveryCode: String # Solo en activación (se muestra una vez)\n user: User\n error: String\n}\n\ntype ResetPayload {\n success: Boolean!\n error: String\n}\n\n# Estudiantes\ntype CreateStudentPayload {\n student: Student\n activationCode: String # Código para activar cuenta\n activationUrl: String # URL completa de activación\n expiresAt: DateTime # Cuándo expira el código\n errors: [String!]\n}\n\ntype ActivationCodePayload {\n activationCode: String!\n activationUrl: String!\n expiresAt: DateTime!\n}\n\ntype StudentPayload {\n student: Student\n errors: [String!]\n}\n\ntype EnrollmentPayload {\n enrollment: Enrollment\n errors: [String!]\n}\n\ntype DeletePayload {\n success: Boolean!\n errors: [String!]\n}\n\n# ═══════════════════════════════════════════════════════════════\n# SCALARS\n# ═══════════════════════════════════════════════════════════════\n\nscalar DateTime\n\`\`\`\n\n---\n\n## 2. Ejemplos de Queries\n\n### Listar estudiantes con inscripciones\n\`\`\`graphql\nquery GetStudents {\n students {\n id\n name\n email\n totalCredits\n enrollments {\n subject { name professor { name } }\n }\n }\n}\n\`\`\`\n\n### Materias disponibles para inscripción\n\`\`\`graphql\nquery GetAvailableSubjects(\$studentId: Int!) {\n availableSubjects(studentId: \$studentId) {\n subject { id name credits professor { name } }\n isAvailable\n unavailableReason\n }\n}\n\`\`\`\n\n### Compañeros de clase\n\`\`\`graphql\nquery GetClassmates(\$studentId: Int!) {\n classmates(studentId: \$studentId) {\n subjectName\n students\n }\n}\n\`\`\`\n\n---\n\n## 3. Ejemplos de Mutations\n\n### Crear estudiante\n\`\`\`graphql\nmutation CreateStudent {\n createStudent(input: { name: "Juan Pérez", email: "juan@email.com" }) {\n student { id name email }\n errors\n }\n}\n\`\`\`\n\n### Inscribir en materia\n\`\`\`graphql\nmutation Enroll {\n enrollStudent(input: { studentId: 1, subjectId: 3 }) {\n enrollment {\n id\n subject { name }\n enrolledAt\n }\n errors\n }\n}\n\`\`\`\n\n---\n\n## 4. DataLoaders (Evitar N+1)\n\n| DataLoader | Carga Batch |\n|------------|-------------|\n| \`StudentByIdDataLoader\` | Estudiantes por IDs |\n| \`SubjectByIdDataLoader\` | Materias por IDs |\n| \`ProfessorByIdDataLoader\` | Profesores por IDs |\n| \`EnrollmentsByStudentDataLoader\` | Inscripciones por estudiante |\n| \`SubjectsByProfessorDataLoader\` | Materias por profesor |\n\n---\n\n## 5. Errores de Negocio\n\n| Código | Mensaje | Contexto |\n|--------|---------|----------|\n| \`MAX_ENROLLMENTS\` | "Máximo 3 materias permitidas" | enrollStudent |\n| \`SAME_PROFESSOR\` | "Ya tienes materia con este profesor" | enrollStudent |\n| \`DUPLICATE_EMAIL\` | "Email ya registrado" | createStudent |\n| \`NOT_FOUND\` | "Estudiante no encontrado" | updateStudent |\n| \`INVALID_CREDENTIALS\` | "Usuario o contraseña incorrectos" | login |\n| \`USERNAME_EXISTS\` | "El nombre de usuario ya está en uso" | activateAccount |\n| \`INVALID_ACTIVATION_CODE\` | "Código de activación inválido o expirado" | activateAccount |\n| \`INVALID_RECOVERY_CODE\` | "Código de recuperación inválido" | resetPassword |\n| \`UNAUTHORIZED\` | "No tienes permiso para esta acción" | Operaciones protegidas |\n\n---\n\n## 6. Ejemplos de Autenticación\n\n### Login\n\`\`\`graphql\nmutation Login {\n login(input: { username: "admin", password: "Admin123!" }) {\n success\n token\n user { id username role studentId studentName }\n error\n }\n}\n\`\`\`\n\n### Activar Cuenta\n\`\`\`graphql\nmutation ActivateAccount {\n activateAccount(input: {\n activationCode: "MSAGDM5DNLAF"\n username: "juan.perez"\n password: "MiPassword123"\n }) {\n success\n token\n recoveryCode # Solo se muestra UNA vez\n user { id username role studentId studentName }\n error\n }\n}\n\`\`\`\n\n### Crear Estudiante (Admin)\n\`\`\`graphql\nmutation CreateStudent {\n createStudent(input: { name: "Juan Pérez", email: "juan@email.com" }) {\n student { id name email isActivated }\n activationCode # "MSAGDM5DNLAF"\n activationUrl # "https://app.com/activate?code=MSAGDM5DNLAF"\n expiresAt # "2026-01-11T06:00:00Z"\n errors\n }\n}\n\`\`\`\n`,
"DI-005 Arquitectura Frontend": `# DI-005: Arquitectura Frontend\n\n**Proyecto:** Sistema de Registro de Estudiantes\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Stack Tecnológico\n\n| Tecnología | Propósito |\n|------------|-----------|\n| Angular 21 | Framework SPA |\n| Angular Material | UI Components |\n| Apollo Angular | Cliente GraphQL |\n| Signals | Estado reactivo |\n| TypeScript | Tipado estático |\n\n---\n\n## 2. Estructura de Carpetas\n\n\`\`\`\nsrc/frontend/src/app/\n├── core/ # Singleton services\n│ ├── services/\n│ │ ├── student.service.ts\n│ │ └── enrollment.service.ts\n│ ├── graphql/\n│ │ ├── generated/ # Tipos generados\n│ │ ├── queries/\n│ │ │ ├── students.graphql\n│ │ │ └── subjects.graphql\n│ │ └── mutations/\n│ │ ├── student.graphql\n│ │ └── enrollment.graphql\n│ └── interceptors/\n│ └── error.interceptor.ts\n\n├── shared/ # Reutilizables\n│ ├── components/\n│ │ ├── confirm-dialog/\n│ │ └── loading-spinner/\n│ └── pipes/\n│ └── credits.pipe.ts\n\n└── features/ # Módulos por funcionalidad\n ├── students/\n │ ├── pages/\n │ │ ├── student-list/\n │ │ └── student-form/\n │ └── components/\n │ └── student-card/\n\n ├── enrollment/\n │ ├── pages/\n │ │ └── enrollment-page/\n │ └── components/\n │ ├── subject-selector/\n │ └── enrolled-subjects/\n\n └── classmates/\n └── pages/\n └── classmates-page/\n\`\`\`\n\n---\n\n## 3. Configuración Apollo\n\n\`\`\`typescript\n// app.config.ts\nexport const appConfig: ApplicationConfig = {\n providers: [\n provideHttpClient(),\n provideApollo(() => ({\n link: httpLink.create({ uri: environment.graphqlUrl }),\n cache: new InMemoryCache(),\n defaultOptions: {\n watchQuery: { fetchPolicy: 'cache-and-network' },\n mutate: { errorPolicy: 'all' }\n }\n }))\n ]\n};\n\`\`\`\n\n---\n\n## 4. Gestión de Estado\n\n\`\`\`\n┌─────────────────────────────────────────────┐\n│ Apollo Cache │\n│ (Estado del servidor: students, subjects) │\n└─────────────────────────────────────────────┘\n\n │ watchQuery / mutate\n\n┌─────────────────────────────────────────────┐\n│ Services │\n│ (Encapsulan operaciones GraphQL) │\n└─────────────────────────────────────────────┘\n\n │ inject()\n\n┌─────────────────────────────────────────────┐\n│ Components │\n│ (Signals para estado local/UI) │\n└─────────────────────────────────────────────┘\n\`\`\`\n\n---\n\n## 5. Ejemplo de Service\n\n\`\`\`typescript\n@Injectable({ providedIn: 'root' })\nexport class StudentService {\n private apollo = inject(Apollo);\n\n getStudents() {\n return this.apollo.watchQuery<{ students: Student[] }>({\n query: GET_STUDENTS,\n fetchPolicy: 'cache-and-network'\n }).valueChanges;\n }\n\n createStudent(input: CreateStudentInput) {\n return this.apollo.mutate<{ createStudent: StudentPayload }>({\n mutation: CREATE_STUDENT,\n variables: { input },\n refetchQueries: [{ query: GET_STUDENTS }]\n });\n }\n}\n\`\`\`\n\n---\n\n## 6. Ejemplo de Componente (Signals)\n\n\`\`\`typescript\n@Component({\n selector: 'app-student-list',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \`\n @if (loading()) {\n <mat-spinner />\n } @else {\n <mat-table [dataSource]="students()">\n <!-- columns -->\n </mat-table>\n }\n \`\n})\nexport class StudentListComponent {\n private studentService = inject(StudentService);\n\n students = signal<Student[]>([]);\n loading = signal(true);\n\n constructor() {\n this.studentService.getStudents().subscribe(({ data, loading }) => {\n this.students.set(data?.students ?? []);\n this.loading.set(loading);\n });\n }\n}\n\`\`\`\n\n---\n\n## 7. Rutas (Lazy Loading)\n\n\`\`\`typescript\nexport const routes: Routes = [\n { path: '', redirectTo: 'students', pathMatch: 'full' },\n {\n path: 'students',\n loadComponent: () => import('./features/students/pages/student-list/student-list.component')\n },\n {\n path: 'students/new',\n loadComponent: () => import('./features/students/pages/student-form/student-form.component')\n },\n {\n path: 'enrollment/:studentId',\n loadComponent: () => import('./features/enrollment/pages/enrollment-page/enrollment-page.component')\n },\n {\n path: 'classmates/:studentId',\n loadComponent: () => import('./features/classmates/pages/classmates-page/classmates-page.component')\n }\n];\n\`\`\`\n\n---\n\n## 8. Decisiones de Diseño\n\n| Decisión | Razón |\n|----------|-------|\n| Standalone Components | Angular moderno, tree-shakeable |\n| Signals vs RxJS | Más simple para estado local, menos boilerplate |\n| Apollo Cache | Single source of truth para datos del servidor |\n| OnPush | Mejor rendimiento, menos re-renders |\n| Lazy Loading | Bundle inicial pequeño |\n`,
"DI-006 Componentes UI": `# DI-006: Diseño de Componentes UI\n\n**Proyecto:** Sistema de Registro de Estudiantes\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Mapa de Pantallas\n\n\`\`\`\n┌──────────────────────────────────────────────────────────────┐\n│ APP LAYOUT │\n├──────────────────────────────────────────────────────────────┤\n│ [Logo] Sistema de Estudiantes [Estudiantes] [Mat] │\n├──────────────────────────────────────────────────────────────┤\n│ │\n│ <router-outlet> │\n│ │\n└──────────────────────────────────────────────────────────────┘\n\nRutas:\n├── /students → Lista de estudiantes\n├── /students/new → Formulario crear\n├── /students/:id/edit → Formulario editar\n├── /enrollment/:id → Inscripción de materias\n└── /classmates/:id → Compañeros de clase\n\`\`\`\n\n---\n\n## 2. Wireframes\n\n### 2.1 Lista de Estudiantes (\`/students\`)\n\n\`\`\`\n┌─────────────────────────────────────────────────────────────┐\n│ ESTUDIANTES [+ Nuevo Estudiante] │\n├─────────────────────────────────────────────────────────────┤\n│ ┌─────────────────────────────────────────────────────┐ │\n│ │ 🔍 Buscar estudiante... │ │\n│ └─────────────────────────────────────────────────────┘ │\n│ │\n│ ┌───────────────────────────────────────────────────────┐ │\n│ │ NOMBRE │ EMAIL │ CRÉDITOS │ ACCIONES│ │\n│ ├───────────────────────────────────────────────────────┤ │\n│ │ Juan Pérez │ juan@email.com │ 6/9 │ ✏️ 🗑️ 📚 │ │\n│ │ María García │ maria@email.com │ 9/9 │ ✏️ 🗑️ 📚 │ │\n│ │ Carlos López │ carlos@mail.com │ 3/9 │ ✏️ 🗑️ 📚 │ │\n│ └───────────────────────────────────────────────────────┘ │\n│ │\n│ [← Anterior] [Siguiente →] │\n└─────────────────────────────────────────────────────────────┘\n\nLeyenda: ✏️ Editar 🗑️ Eliminar 📚 Inscripción\n\`\`\`\n\n### 2.2 Formulario Estudiante (\`/students/new\`)\n\n\`\`\`\n┌─────────────────────────────────────────────────────────────┐\n│ ← Volver NUEVO ESTUDIANTE │\n├─────────────────────────────────────────────────────────────┤\n│ │\n│ ┌─────────────────────────────────────────────────────┐ │\n│ │ Nombre * │ │\n│ │ ┌─────────────────────────────────────────────────┐ │ │\n│ │ │ Juan Pérez │ │ │\n│ │ └─────────────────────────────────────────────────┘ │ │\n│ └─────────────────────────────────────────────────────┘ │\n│ │\n│ ┌─────────────────────────────────────────────────────┐ │\n│ │ Email * │ │\n│ │ ┌─────────────────────────────────────────────────┐ │ │\n│ │ │ juan@email.com │ │ │\n│ │ └─────────────────────────────────────────────────┘ │ │\n│ │ ⚠️ Este email ya está registrado (error ejemplo) │ │\n│ └─────────────────────────────────────────────────────┘ │\n│ │\n│ [Cancelar] [Guardar] │\n└─────────────────────────────────────────────────────────────┘\n\`\`\`\n\n### 2.3 Inscripción de Materias (\`/enrollment/:id\`)\n\n\`\`\`\n┌─────────────────────────────────────────────────────────────┐\n│ ← Volver INSCRIPCIÓN: Juan Pérez │\n├─────────────────────────────────────────────────────────────┤\n│ Créditos: ████████░░ 6/9 Materias: 2/3 │\n├─────────────────────────────────────────────────────────────┤\n│ │\n│ MIS MATERIAS INSCRITAS │\n│ ┌───────────────────────────────────────────────────────┐ │\n│ │ ✓ Física I │ Dra. Martínez │ [Cancelar] │ │\n│ │ ✓ Programación I │ Dr. López │ [Cancelar] │ │\n│ └───────────────────────────────────────────────────────┘ │\n│ │\n│ MATERIAS DISPONIBLES │\n│ ┌───────────────────────────────────────────────────────┐ │\n│ │ ○ Matemáticas I │ Dr. García │ [Inscribir] │ │\n│ │ ○ Matemáticas II │ Dr. García │ [Inscribir] │ │\n│ │ ○ Física II │ Dra. Martínez │ ⚠️ Mismo prof │ │\n│ │ ○ Programación II │ Dr. López │ ⚠️ Mismo prof │ │\n│ │ ○ Base de Datos I │ Dra. Rodríguez │ [Inscribir] │ │\n│ │ ... │ │\n│ └───────────────────────────────────────────────────────┘ │\n│ │\n│ [Ver Compañeros de Clase] │\n└─────────────────────────────────────────────────────────────┘\n\`\`\`\n\n### 2.4 Compañeros de Clase (\`/classmates/:id\`)\n\n\`\`\`\n┌─────────────────────────────────────────────────────────────┐\n│ ← Volver MIS COMPAÑEROS: Juan Pérez │\n├─────────────────────────────────────────────────────────────┤\n│ │\n│ 📚 FÍSICA I (Dra. Martínez) │\n│ ┌───────────────────────────────────────────────────────┐ │\n│ │ • María García │ │\n│ │ • Carlos López │ │\n│ │ • Ana Rodríguez │ │\n│ └───────────────────────────────────────────────────────┘ │\n│ │\n│ 💻 PROGRAMACIÓN I (Dr. López) │\n│ ┌───────────────────────────────────────────────────────┐ │\n│ │ • Pedro Sánchez │ │\n│ │ • Laura Torres │ │\n│ └───────────────────────────────────────────────────────┘ │\n│ │\n└─────────────────────────────────────────────────────────────┘\n\`\`\`\n\n---\n\n## 3. Componentes Reutilizables\n\n| Componente | Descripción | Props |\n|------------|-------------|-------|\n| \`ConfirmDialog\` | Modal de confirmación | title, message, onConfirm |\n| \`LoadingSpinner\` | Indicador de carga | size, color |\n| \`ErrorAlert\` | Mensaje de error | message, dismissible |\n| \`CreditsBadge\` | Badge de créditos | current, max |\n| \`SubjectCard\` | Card de materia | subject, actions |\n\n---\n\n## 4. Estados de UI\n\n| Estado | Visual |\n|--------|--------|\n| Loading | Skeleton / Spinner |\n| Empty | Ilustración + mensaje |\n| Error | Alert rojo + retry |\n| Success | Toast verde |\n\n---\n\n## 5. Responsive Breakpoints\n\n| Breakpoint | Comportamiento |\n|------------|----------------|\n| Mobile (<600px) | Cards apiladas, menú hamburguesa |\n| Tablet (600-960px) | Grid 2 columnas |\n| Desktop (>960px) | Tabla completa, sidebar |\n`,
"DI-007 Contratos DTOs": `# DI-007: Contratos y DTOs\n\n**Proyecto:** Sistema de Registro de Estudiantes\n**Fecha:** 2026-01-07\n\n---\n\n## 1. DTOs Backend (C#)\n\n### Request DTOs (Inputs)\n\n\`\`\`csharp\n// Students\npublic record CreateStudentInput(string Name, string Email);\npublic record UpdateStudentInput(string? Name, string? Email);\n\n// Enrollments\npublic record EnrollInput(int StudentId, int SubjectId);\n\`\`\`\n\n### Response DTOs\n\n\`\`\`csharp\n// Student\npublic record StudentDto(\n int Id,\n string Name,\n string Email,\n int TotalCredits,\n IEnumerable<EnrollmentDto> Enrollments);\n\n// Subject\npublic record SubjectDto(\n int Id,\n string Name,\n int Credits,\n ProfessorDto Professor);\n\n// Professor\npublic record ProfessorDto(\n int Id,\n string Name);\n\n// Enrollment\npublic record EnrollmentDto(\n int Id,\n SubjectDto Subject,\n DateTime EnrolledAt);\n\n// Available Subject (con disponibilidad)\npublic record AvailableSubjectDto(\n SubjectDto Subject,\n bool IsAvailable,\n string? UnavailableReason);\n\n// Classmates\npublic record ClassmateDto(\n string SubjectName,\n IEnumerable<string> StudentNames);\n\`\`\`\n\n### Payloads (Respuestas con errores)\n\n\`\`\`csharp\npublic record StudentPayload(StudentDto? Student, IEnumerable<string>? Errors);\npublic record EnrollmentPayload(EnrollmentDto? Enrollment, IEnumerable<string>? Errors);\npublic record DeletePayload(bool Success, IEnumerable<string>? Errors);\n\`\`\`\n\n---\n\n## 2. DTOs Frontend (TypeScript)\n\n### Tipos Generados (graphql-codegen)\n\n\`\`\`typescript\n// Student\nexport interface Student {\n id: number;\n name: string;\n email: string;\n totalCredits: number;\n enrollments: Enrollment[];\n}\n\n// Subject\nexport interface Subject {\n id: number;\n name: string;\n credits: number;\n professor: Professor;\n}\n\n// Professor\nexport interface Professor {\n id: number;\n name: string;\n subjects?: Subject[];\n}\n\n// Enrollment\nexport interface Enrollment {\n id: number;\n subject: Subject;\n enrolledAt: string;\n}\n\n// Available Subject\nexport interface AvailableSubject {\n subject: Subject;\n isAvailable: boolean;\n unavailableReason?: string;\n}\n\n// Classmate\nexport interface Classmate {\n subjectName: string;\n students: string[];\n}\n\`\`\`\n\n### Inputs\n\n\`\`\`typescript\nexport interface CreateStudentInput {\n name: string;\n email: string;\n}\n\nexport interface UpdateStudentInput {\n name?: string;\n email?: string;\n}\n\nexport interface EnrollInput {\n studentId: number;\n subjectId: number;\n}\n\`\`\`\n\n### Payloads\n\n\`\`\`typescript\nexport interface StudentPayload {\n student?: Student;\n errors?: string[];\n}\n\nexport interface EnrollmentPayload {\n enrollment?: Enrollment;\n errors?: string[];\n}\n\nexport interface DeletePayload {\n success: boolean;\n errors?: string[];\n}\n\`\`\`\n\n---\n\n## 3. Mapeos (Mapster)\n\n\`\`\`csharp\npublic class MappingConfig : IRegister\n{\n public void Register(TypeAdapterConfig config)\n {\n config.NewConfig<Student, StudentDto>()\n .Map(dest => dest.TotalCredits, src => src.Enrollments.Count * 3);\n\n config.NewConfig<Subject, SubjectDto>();\n config.NewConfig<Professor, ProfessorDto>();\n config.NewConfig<Enrollment, EnrollmentDto>();\n }\n}\n\`\`\`\n\n---\n\n## 4. Validadores (FluentValidation)\n\n\`\`\`csharp\npublic class CreateStudentInputValidator : AbstractValidator<CreateStudentInput>\n{\n public CreateStudentInputValidator()\n {\n RuleFor(x => x.Name)\n .NotEmpty().WithMessage("Nombre requerido")\n .MaximumLength(100).WithMessage("Máximo 100 caracteres");\n\n RuleFor(x => x.Email)\n .NotEmpty().WithMessage("Email requerido")\n .EmailAddress().WithMessage("Formato de email inválido")\n .MaximumLength(255).WithMessage("Máximo 255 caracteres");\n }\n}\n\npublic class EnrollInputValidator : AbstractValidator<EnrollInput>\n{\n public EnrollInputValidator()\n {\n RuleFor(x => x.StudentId)\n .GreaterThan(0).WithMessage("StudentId inválido");\n\n RuleFor(x => x.SubjectId)\n .GreaterThan(0).WithMessage("SubjectId inválido");\n }\n}\n\`\`\`\n\n---\n\n## 5. Contratos de Repositorio (Ports)\n\n\`\`\`csharp\npublic interface IStudentRepository\n{\n Task<Student?> GetByIdAsync(int id, CancellationToken ct = default);\n Task<Student?> GetByIdWithEnrollmentsAsync(int id, CancellationToken ct = default);\n Task<IEnumerable<Student>> GetAllAsync(CancellationToken ct = default);\n Task<bool> EmailExistsAsync(string email, int? excludeId = null, CancellationToken ct = default);\n Task AddAsync(Student student, CancellationToken ct = default);\n void Update(Student student);\n void Delete(Student student);\n}\n\npublic interface ISubjectRepository\n{\n Task<Subject?> GetByIdAsync(int id, CancellationToken ct = default);\n Task<IEnumerable<Subject>> GetAllAsync(CancellationToken ct = default);\n Task<IEnumerable<Subject>> GetByProfessorIdAsync(int professorId, CancellationToken ct = default);\n}\n\npublic interface IEnrollmentRepository\n{\n Task<IEnumerable<Enrollment>> GetByStudentIdAsync(int studentId, CancellationToken ct = default);\n Task<IEnumerable<Student>> GetClassmatesAsync(int studentId, int subjectId, CancellationToken ct = default);\n}\n\npublic interface IUnitOfWork\n{\n Task<int> SaveChangesAsync(CancellationToken ct = default);\n}\n\`\`\`\n\n---\n\n## 6. Resumen de Contratos por Operación\n\n| Operación | Input | Output | Errores Posibles |\n|-----------|-------|--------|------------------|\n| createStudent | CreateStudentInput | StudentPayload | DUPLICATE_EMAIL, VALIDATION |\n| updateStudent | UpdateStudentInput | StudentPayload | NOT_FOUND, DUPLICATE_EMAIL |\n| deleteStudent | id: Int | DeletePayload | NOT_FOUND |\n| enrollStudent | EnrollInput | EnrollmentPayload | MAX_ENROLLMENTS, SAME_PROFESSOR |\n| unenrollStudent | enrollmentId: Int | DeletePayload | NOT_FOUND |\n`,
"DI-008 Manejo de Errores": `# DI-008: Estrategia de Manejo de Errores\n\n**Proyecto:** Sistema de Registro de Estudiantes\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Clasificación de Errores\n\n| Tipo | Origen | Manejo | HTTP Code (equiv) |\n|------|--------|--------|-------------------|\n| **Validación** | FluentValidation | Payload.errors | 400 |\n| **Dominio** | Domain Exceptions | Payload.errors | 422 |\n| **Not Found** | Repository | Payload.errors | 404 |\n| **Conflicto** | Concurrencia | Payload.errors | 409 |\n| **Sistema** | Excepciones no manejadas | Error GraphQL | 500 |\n\n---\n\n## 2. Excepciones de Dominio\n\n\`\`\`csharp\n// Base\npublic abstract class DomainException : Exception\n{\n public string Code { get; }\n protected DomainException(string code, string message) : base(message)\n => Code = code;\n}\n\n// Específicas\npublic class MaxEnrollmentsExceededException : DomainException\n{\n public MaxEnrollmentsExceededException()\n : base("MAX_ENROLLMENTS", "Máximo 3 materias permitidas") { }\n}\n\npublic class SameProfessorConstraintException : DomainException\n{\n public SameProfessorConstraintException(string professorName)\n : base("SAME_PROFESSOR", \$"Ya tienes una materia con {professorName}") { }\n}\n\npublic class DuplicateEmailException : DomainException\n{\n public DuplicateEmailException()\n : base("DUPLICATE_EMAIL", "Este email ya está registrado") { }\n}\n\npublic class StudentNotFoundException : DomainException\n{\n public StudentNotFoundException(int id)\n : base("NOT_FOUND", \$"Estudiante {id} no encontrado") { }\n}\n\`\`\`\n\n---\n\n## 3. Patrón Result\n\n\`\`\`csharp\npublic class Result\n{\n public bool IsSuccess { get; }\n public IEnumerable<string> Errors { get; }\n\n protected Result(bool success, IEnumerable<string>? errors = null)\n {\n IsSuccess = success;\n Errors = errors ?? Array.Empty<string>();\n }\n\n public static Result Success() => new(true);\n public static Result Failure(params string[] errors) => new(false, errors);\n}\n\npublic class Result<T> : Result\n{\n public T? Value { get; }\n\n private Result(T value) : base(true) => Value = value;\n private Result(IEnumerable<string> errors) : base(false, errors) { }\n\n public static Result<T> Success(T value) => new(value);\n public static new Result<T> Failure(params string[] errors) => new(errors);\n}\n\`\`\`\n\n---\n\n## 4. Handler con Manejo de Errores\n\n\`\`\`csharp\npublic class EnrollStudentHandler\n{\n public async Task<EnrollmentPayload> Handle(EnrollInput input)\n {\n try\n {\n var student = await _studentRepo.GetByIdWithEnrollmentsAsync(input.StudentId);\n if (student is null)\n return new EnrollmentPayload(null, ["Estudiante no encontrado"]);\n\n var subject = await _subjectRepo.GetByIdAsync(input.SubjectId);\n if (subject is null)\n return new EnrollmentPayload(null, ["Materia no encontrada"]);\n\n // Validación de dominio\n student.Enroll(subject, _enrollmentPolicy);\n\n await _unitOfWork.SaveChangesAsync();\n\n var dto = student.Enrollments.Last().Adapt<EnrollmentDto>();\n return new EnrollmentPayload(dto, null);\n }\n catch (DomainException ex)\n {\n return new EnrollmentPayload(null, [ex.Message]);\n }\n }\n}\n\`\`\`\n\n---\n\n## 5. Error Filter GraphQL (HotChocolate)\n\n\`\`\`csharp\npublic class ErrorFilter : IErrorFilter\n{\n public IError OnError(IError error)\n {\n return error.Exception switch\n {\n DomainException ex => error\n .WithMessage(ex.Message)\n .WithCode(ex.Code),\n\n ValidationException ex => error\n .WithMessage("Errores de validación")\n .WithCode("VALIDATION_ERROR")\n .SetExtension("errors", ex.Errors.Select(e => e.ErrorMessage)),\n\n DbUpdateConcurrencyException => error\n .WithMessage("Los datos fueron modificados por otro usuario")\n .WithCode("CONCURRENCY_ERROR"),\n\n _ => error\n .WithMessage("Error interno del servidor")\n .WithCode("INTERNAL_ERROR")\n };\n }\n}\n\`\`\`\n\n---\n\n## 6. Manejo en Frontend\n\n### Service\n\n\`\`\`typescript\n@Injectable({ providedIn: 'root' })\nexport class ErrorHandlerService {\n private snackBar = inject(MatSnackBar);\n\n handleGraphQLErrors(errors: string[] | undefined): void {\n if (errors?.length) {\n this.snackBar.open(errors[0], 'Cerrar', {\n duration: 5000,\n panelClass: 'error-snackbar'\n });\n }\n }\n\n handleApolloError(error: ApolloError): void {\n const message = error.graphQLErrors[0]?.message ?? 'Error de conexión';\n this.snackBar.open(message, 'Cerrar', { duration: 5000 });\n }\n}\n\`\`\`\n\n### Componente\n\n\`\`\`typescript\nenrollStudent(subjectId: number) {\n this.enrollmentService.enroll({\n studentId: this.studentId(),\n subjectId\n }).subscribe({\n next: ({ data }) => {\n if (data?.enrollStudent.errors?.length) {\n this.errorHandler.handleGraphQLErrors(data.enrollStudent.errors);\n } else {\n this.snackBar.open('Inscripción exitosa', 'OK');\n }\n },\n error: (err) => this.errorHandler.handleApolloError(err)\n });\n}\n\`\`\`\n\n---\n\n## 7. Códigos de Error Estándar\n\n| Código | Mensaje | Acción UI |\n|--------|---------|-----------|\n| \`VALIDATION_ERROR\` | Errores de validación | Mostrar en campos |\n| \`MAX_ENROLLMENTS\` | Máximo 3 materias | Toast + deshabilitar |\n| \`SAME_PROFESSOR\` | Ya tienes materia con X | Toast + deshabilitar |\n| \`DUPLICATE_EMAIL\` | Email ya registrado | Error en campo |\n| \`NOT_FOUND\` | Recurso no encontrado | Redirect + toast |\n| \`CONCURRENCY_ERROR\` | Datos modificados | Refetch + toast |\n| \`INTERNAL_ERROR\` | Error del servidor | Toast genérico |\n\n---\n\n## 8. Logging de Errores\n\n\`\`\`csharp\npublic class LoggingBehavior<TRequest, TResponse> : IPipelineBehavior<TRequest, TResponse>\n{\n private readonly ILogger<LoggingBehavior<TRequest, TResponse>> _logger;\n\n public async Task<TResponse> Handle(TRequest request, ...)\n {\n try\n {\n return await next();\n }\n catch (Exception ex) when (ex is not DomainException)\n {\n _logger.LogError(ex, "Error procesando {Request}", typeof(TRequest).Name);\n throw;\n }\n }\n}\n\`\`\`\n\n**Regla:** NO loguear datos sensibles (email, contraseñas).\n`,
},
"Configuración": {
"DV-001 Configuración Repositorio": `# DV-001: Configuración del Repositorio\n\n**Proyecto:** Sistema de Registro de Estudiantes\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Estructura de Carpetas\n\n\`\`\`\n/\n├── src/\n│ ├── backend/\n│ │ ├── Domain/\n│ │ ├── Application/\n│ │ ├── Adapters/\n│ │ │ ├── Driving/Api/\n│ │ │ └── Driven/Persistence/\n│ │ └── Host/\n│ └── frontend/\n│ └── src/app/\n│ ├── core/\n│ ├── shared/\n│ └── features/\n├── tests/\n│ ├── Domain.Tests/\n│ ├── Application.Tests/\n│ ├── Adapters.Tests/\n│ └── e2e/\n├── docs/\n│ └── entregables/\n├── database/\n│ ├── scripts/\n│ └── migrations/\n├── deploy/\n│ └── docker/\n├── DEV-GUIDE.md\n├── README.md\n└── .gitignore\n\`\`\`\n\n---\n\n## 2. .gitignore\n\n\`\`\`gitignore\n# .NET\nbin/\nobj/\n*.user\n*.suo\n.vs/\n*.csproj.user\n\n# Angular\nnode_modules/\ndist/\n.angular/\n.nx/\n\n# IDE\n.idea/\n.vscode/\n*.swp\n\n# Logs\n*.log\nlogs/\n\n# Environment\n.env\n.env.*\n!.env.example\nappsettings.*.json\n!appsettings.json\n!appsettings.Development.json.example\n\n# Database\n*.mdf\n*.ldf\n\n# OS\n.DS_Store\nThumbs.db\n\n# Test\ncoverage/\nTestResults/\n\n# Build\npublish/\n\`\`\`\n\n---\n\n## 3. Comandos de Inicialización\n\n\`\`\`bash\n# Crear repositorio\ngit init\ngit add .\ngit commit -m "chore: initial project structure"\n\n# Crear rama de desarrollo\ngit checkout -b develop\n\n# Estructura de ramas\n# main → producción\n# develop → integración\n# feature/ → nuevas funcionalidades\n# fix/ → correcciones\n\`\`\`\n\n---\n\n## 4. Convenciones de Commits\n\n\`\`\`\n<tipo>(<alcance>): <descripción>\n\nTipos:\n- feat: Nueva funcionalidad\n- fix: Corrección de bug\n- refactor: Refactorización\n- test: Tests\n- docs: Documentación\n- chore: Tareas de mantenimiento\n\nEjemplos:\nfeat(students): add create student mutation\nfix(enrollment): validate professor constraint\ntest(domain): add enrollment policy tests\n\`\`\`\n`,
"DV-002 Configuración .NET": `# DV-002: Configuración Solución .NET 10\n\n**Proyecto:** Sistema de Registro de Estudiantes\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Crear Solución y Proyectos\n\n\`\`\`bash\ncd src/backend\n\n# Crear solución\ndotnet new sln -n StudentEnrollment\n\n# Crear proyectos\ndotnet new classlib -n Domain -f net10.0\ndotnet new classlib -n Application -f net10.0\ndotnet new classlib -n Adapters.Driving.Api -f net10.0\ndotnet new classlib -n Adapters.Driven.Persistence -f net10.0\ndotnet new web -n Host -f net10.0\n\n# Agregar a solución\ndotnet sln add Domain/Domain.csproj\ndotnet sln add Application/Application.csproj\ndotnet sln add Adapters.Driving.Api/Adapters.Driving.Api.csproj\ndotnet sln add Adapters.Driven.Persistence/Adapters.Driven.Persistence.csproj\ndotnet sln add Host/Host.csproj\n\`\`\`\n\n---\n\n## 2. Referencias entre Proyectos\n\n\`\`\`bash\n# Application → Domain\ndotnet add Application reference Domain\n\n# Adapters.Driving.Api → Application\ndotnet add Adapters.Driving.Api reference Application\n\n# Adapters.Driven.Persistence → Domain\ndotnet add Adapters.Driven.Persistence reference Domain\n\n# Host → Todos\ndotnet add Host reference Application\ndotnet add Host reference Adapters.Driving.Api\ndotnet add Host reference Adapters.Driven.Persistence\n\`\`\`\n\n\`\`\`\nHost\n├── Adapters.Driving.Api → Application → Domain\n└── Adapters.Driven.Persistence ────────→ Domain\n\`\`\`\n\n---\n\n## 3. Paquetes NuGet por Proyecto\n\n### Domain (sin dependencias externas)\n\`\`\`xml\n<!-- Solo C# puro -->\n\`\`\`\n\n### Application\n\`\`\`xml\n<PackageReference Include="FluentValidation" />\n<PackageReference Include="Mapster" />\n<PackageReference Include="MediatR" />\n\`\`\`\n\n### Adapters.Driven.Persistence\n\`\`\`xml\n<PackageReference Include="Microsoft.EntityFrameworkCore" />\n<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" />\n<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" />\n\`\`\`\n\n### Adapters.Driving.Api\n\`\`\`xml\n<PackageReference Include="HotChocolate.AspNetCore" />\n<PackageReference Include="HotChocolate.Data" />\n<PackageReference Include="HotChocolate.Data.EntityFramework" />\n\`\`\`\n\n### Host\n\`\`\`xml\n<PackageReference Include="Serilog.AspNetCore" />\n\`\`\`\n\n---\n\n## 4. Directory.Build.props (Raíz backend)\n\n\`\`\`xml\n<Project>\n <PropertyGroup>\n <TargetFramework>net10.0</TargetFramework>\n <Nullable>enable</Nullable>\n <ImplicitUsings>enable</ImplicitUsings>\n <TreatWarningsAsErrors>true</TreatWarningsAsErrors>\n </PropertyGroup>\n</Project>\n\`\`\`\n\n---\n\n## 5. Program.cs (Host)\n\n\`\`\`csharp\nvar builder = WebApplication.CreateBuilder(args);\n\n// Services\nbuilder.Services.AddApplication();\nbuilder.Services.AddPersistence(builder.Configuration);\nbuilder.Services.AddGraphQLApi();\n\n// CORS\nbuilder.Services.AddCors(options =>\n{\n options.AddDefaultPolicy(policy =>\n policy.WithOrigins("http://localhost:4200")\n .AllowAnyHeader()\n .AllowAnyMethod());\n});\n\nvar app = builder.Build();\n\napp.UseCors();\napp.MapGraphQL();\n\napp.Run();\n\`\`\`\n\n---\n\n## 6. Comandos de Desarrollo\n\n\`\`\`bash\n# Restaurar dependencias\ndotnet restore\n\n# Build\ndotnet build\n\n# Ejecutar\ndotnet run --project Host\n\n# Watch mode\ndotnet watch run --project Host\n\n# Tests\ndotnet test\n\n# Migraciones EF\ndotnet ef migrations add Initial -p Adapters.Driven.Persistence -s Host\ndotnet ef database update -p Adapters.Driven.Persistence -s Host\n\`\`\`\n`,
"DV-003 Configuración Angular": `# DV-003: Configuración Proyecto Angular 21\n\n**Proyecto:** Sistema de Registro de Estudiantes\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Crear Proyecto\n\n\`\`\`bash\ncd src/frontend\n\n# Crear proyecto Angular 21\nng new student-enrollment \\\n --standalone \\\n --style=scss \\\n --routing \\\n --ssr=false\n\ncd student-enrollment\n\`\`\`\n\n---\n\n## 2. Instalar Dependencias\n\n\`\`\`bash\n# Angular Material\nng add @angular/material\n\n# Apollo GraphQL\nnpm install apollo-angular @apollo/client graphql\n\n# GraphQL Code Generator\nnpm install -D @graphql-codegen/cli \\\n @graphql-codegen/typescript \\\n @graphql-codegen/typescript-operations \\\n @graphql-codegen/typescript-apollo-angular\n\`\`\`\n\n---\n\n## 3. Estructura de Carpetas\n\n\`\`\`bash\n# Crear estructura\nmkdir -p src/app/core/{services,graphql/{queries,mutations},interceptors}\nmkdir -p src/app/shared/{components,pipes,directives}\nmkdir -p src/app/features/{students,enrollment,classmates}/{pages,components}\n\`\`\`\n\n---\n\n## 4. Configuración Apollo (app.config.ts)\n\n\`\`\`typescript\nimport { ApplicationConfig } from '@angular/core';\nimport { provideRouter } from '@angular/router';\nimport { provideHttpClient } from '@angular/common/http';\nimport { provideApollo } from 'apollo-angular';\nimport { HttpLink } from 'apollo-angular/http';\nimport { InMemoryCache } from '@apollo/client/core';\nimport { inject } from '@angular/core';\nimport { routes } from './app.routes';\nimport { environment } from '../environments/environment';\n\nexport const appConfig: ApplicationConfig = {\n providers: [\n provideRouter(routes),\n provideHttpClient(),\n provideApollo(() => {\n const httpLink = inject(HttpLink);\n return {\n link: httpLink.create({ uri: environment.graphqlUrl }),\n cache: new InMemoryCache(),\n };\n }),\n ],\n};\n\`\`\`\n\n---\n\n## 5. Environment Files\n\n\`\`\`typescript\n// environments/environment.ts\nexport const environment = {\n production: false,\n graphqlUrl: 'https://localhost:5001/graphql',\n};\n\n// environments/environment.prod.ts\nexport const environment = {\n production: true,\n graphqlUrl: '/graphql',\n};\n\`\`\`\n\n---\n\n## 6. GraphQL Codegen (codegen.ts)\n\n\`\`\`typescript\nimport type { CodegenConfig } from '@graphql-codegen/cli';\n\nconst config: CodegenConfig = {\n schema: 'https://localhost:5001/graphql',\n documents: 'src/app/core/graphql/**/*.graphql',\n generates: {\n 'src/app/core/graphql/generated/types.ts': {\n plugins: [\n 'typescript',\n 'typescript-operations',\n 'typescript-apollo-angular',\n ],\n },\n },\n};\n\nexport default config;\n\`\`\`\n\n\`\`\`json\n// package.json scripts\n{\n "scripts": {\n "codegen": "graphql-codegen --config codegen.ts"\n }\n}\n\`\`\`\n\n---\n\n## 7. Path Aliases (tsconfig.json)\n\n\`\`\`json\n{\n "compilerOptions": {\n "paths": {\n "@core/*": ["src/app/core/*"],\n "@shared/*": ["src/app/shared/*"],\n "@features/*": ["src/app/features/*"],\n "@env/*": ["src/environments/*"]\n }\n }\n}\n\`\`\`\n\n---\n\n## 8. Comandos de Desarrollo\n\n\`\`\`bash\n# Desarrollo\nng serve\n\n# Build producción\nng build --configuration production\n\n# Generar tipos GraphQL\nnpm run codegen\n\n# Lint\nng lint\n\n# Tests\nng test\nng test --watch=false --code-coverage\n\n# Generar componente standalone\nng g c features/students/pages/student-list --standalone\n\`\`\`\n`,
"DV-004 Configuración Base Datos": `# DV-004: Configuración Base de Datos\n\n**Proyecto:** Sistema de Registro de Estudiantes\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Docker Compose (SQL Server)\n\n\`\`\`yaml\n# deploy/docker/docker-compose.yml\nservices:\n sqlserver:\n image: mcr.microsoft.com/mssql/server\n container_name: sqlserver-students\n environment:\n - ACCEPT_EULA=Y\n - SA_PASSWORD=\${DB_PASSWORD:-Asde71.4Asde71.4}\n - MSSQL_PID=Developer\n ports:\n - "1433:1433"\n volumes:\n - sqlserver-data:/var/opt/mssql\n healthcheck:\n test: /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "\$\$SA_PASSWORD" -C -Q "SELECT 1"\n interval: 10s\n timeout: 5s\n retries: 5\n\nvolumes:\n sqlserver-data:\n\`\`\`\n\n---\n\n## 2. Comandos Docker\n\n\`\`\`bash\n# Iniciar SQL Server\ndocker-compose -f deploy/docker/docker-compose.yml up -d sqlserver\n\n# Ver logs\ndocker logs sqlserver-students\n\n# Conectar a SQL Server\ndocker exec -it sqlserver-students /opt/mssql-tools18/bin/sqlcmd \\\n -S localhost -U sa -P 'Asde71.4Asde71.4' -C\n\n# Detener\ndocker-compose -f deploy/docker/docker-compose.yml down\n\`\`\`\n\n---\n\n## 3. Connection String\n\n\`\`\`json\n// appsettings.Development.json\n{\n "ConnectionStrings": {\n "DefaultConnection": "Server=localhost;Database=StudentEnrollment;User Id=sa;Password=Asde71.4Asde71.4;TrustServerCertificate=True"\n }\n}\n\`\`\`\n\n---\n\n## 4. DbContext Configuration\n\n\`\`\`csharp\n// Adapters/Driven/Persistence/Context/AppDbContext.cs\npublic class AppDbContext : DbContext\n{\n public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }\n\n public DbSet<Student> Students => Set<Student>();\n public DbSet<Subject> Subjects => Set<Subject>();\n public DbSet<Professor> Professors => Set<Professor>();\n public DbSet<Enrollment> Enrollments => Set<Enrollment>();\n\n protected override void OnModelCreating(ModelBuilder modelBuilder)\n {\n modelBuilder.ApplyConfigurationsFromAssembly(typeof(AppDbContext).Assembly);\n }\n}\n\`\`\`\n\n---\n\n## 5. Registrar DbContext\n\n\`\`\`csharp\n// Adapters/Driven/Persistence/DependencyInjection.cs\npublic static class DependencyInjection\n{\n public static IServiceCollection AddPersistence(\n this IServiceCollection services,\n IConfiguration configuration)\n {\n services.AddDbContext<AppDbContext>(options =>\n options.UseSqlServer(\n configuration.GetConnectionString("DefaultConnection")));\n\n services.AddScoped<IStudentRepository, StudentRepository>();\n services.AddScoped<ISubjectRepository, SubjectRepository>();\n services.AddScoped<IUnitOfWork, UnitOfWork>();\n\n return services;\n }\n}\n\`\`\`\n\n---\n\n## 6. Migraciones\n\n\`\`\`bash\n# Crear migración inicial\ndotnet ef migrations add InitialCreate \\\n -p src/backend/Adapters.Driven.Persistence \\\n -s src/backend/Host\n\n# Aplicar migración\ndotnet ef database update \\\n -p src/backend/Adapters.Driven.Persistence \\\n -s src/backend/Host\n\n# Generar script SQL\ndotnet ef migrations script \\\n -p src/backend/Adapters.Driven.Persistence \\\n -s src/backend/Host \\\n -o database/scripts/create.sql\n\`\`\`\n\n---\n\n## 7. Seed Data\n\n\`\`\`csharp\n// Adapters/Driven/Persistence/Seeding/DataSeeder.cs\npublic static class DataSeeder\n{\n public static void Seed(ModelBuilder modelBuilder)\n {\n // Profesores\n modelBuilder.Entity<Professor>().HasData(\n new { Id = 1, Name = "Dr. García" },\n new { Id = 2, Name = "Dra. Martínez" },\n new { Id = 3, Name = "Dr. López" },\n new { Id = 4, Name = "Dra. Rodríguez" },\n new { Id = 5, Name = "Dr. Hernández" }\n );\n\n // Materias (2 por profesor)\n modelBuilder.Entity<Subject>().HasData(\n new { Id = 1, Name = "Matemáticas I", Credits = 3, ProfessorId = 1 },\n new { Id = 2, Name = "Matemáticas II", Credits = 3, ProfessorId = 1 },\n new { Id = 3, Name = "Física I", Credits = 3, ProfessorId = 2 },\n new { Id = 4, Name = "Física II", Credits = 3, ProfessorId = 2 },\n new { Id = 5, Name = "Programación I", Credits = 3, ProfessorId = 3 },\n new { Id = 6, Name = "Programación II", Credits = 3, ProfessorId = 3 },\n new { Id = 7, Name = "Base de Datos I", Credits = 3, ProfessorId = 4 },\n new { Id = 8, Name = "Base de Datos II", Credits = 3, ProfessorId = 4 },\n new { Id = 9, Name = "Redes I", Credits = 3, ProfessorId = 5 },\n new { Id = 10, Name = "Redes II", Credits = 3, ProfessorId = 5 }\n );\n }\n}\n\`\`\`\n`,
"DV-005 Variables de Entorno": `# DV-005: Variables de Entorno\n\n**Proyecto:** Sistema de Registro de Estudiantes\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Backend (.NET 10)\n\n### appsettings.json (Base)\n\n\`\`\`json\n{\n "Logging": {\n "LogLevel": {\n "Default": "Information",\n "Microsoft.AspNetCore": "Warning",\n "HotChocolate": "Warning"\n }\n },\n "AllowedHosts": "*",\n "GraphQL": {\n "MaxExecutionDepth": 5,\n "MaxComplexity": 100\n }\n}\n\`\`\`\n\n### appsettings.Development.json\n\n\`\`\`json\n{\n "ConnectionStrings": {\n "DefaultConnection": "Server=localhost;Database=StudentEnrollment;User Id=sa;Password=Asde71.4Asde71.4;TrustServerCertificate=True"\n },\n "GraphQL": {\n "EnableIntrospection": true\n }\n}\n\`\`\`\n\n### appsettings.Production.json.example\n\n\`\`\`json\n{\n "ConnectionStrings": {\n "DefaultConnection": "Server=PROD_SERVER;Database=StudentEnrollment;User Id=app_user;Password=CHANGE_ME;Encrypt=True"\n },\n "GraphQL": {\n "EnableIntrospection": false\n }\n}\n\`\`\`\n\n---\n\n## 2. User Secrets (Desarrollo Local)\n\n\`\`\`bash\n# Inicializar secrets\ncd src/backend/Host\ndotnet user-secrets init\n\n# Guardar connection string\ndotnet user-secrets set "ConnectionStrings:DefaultConnection" \\\n "Server=localhost;Database=StudentEnrollment;User Id=sa;Password=Asde71.4Asde71.4;TrustServerCertificate=True"\n\n# Listar secrets\ndotnet user-secrets list\n\n# Remover\ndotnet user-secrets remove "ConnectionStrings:DefaultConnection"\n\`\`\`\n\n---\n\n## 3. Frontend (Angular 21)\n\n### environment.ts (Desarrollo)\n\n\`\`\`typescript\nexport const environment = {\n production: false,\n graphqlUrl: 'https://localhost:5001/graphql',\n apiTimeout: 30000,\n};\n\`\`\`\n\n### environment.prod.ts (Producción)\n\n\`\`\`typescript\nexport const environment = {\n production: true,\n graphqlUrl: '/graphql',\n apiTimeout: 15000,\n};\n\`\`\`\n\n---\n\n## 4. Docker (.env)\n\n### .env.example\n\n\`\`\`env\n# Database\nDB_PASSWORD=Asde71.4Asde71.4\nDB_NAME=StudentEnrollment\n\n# API\nASPNETCORE_ENVIRONMENT=Development\nASPNETCORE_URLS=http://+:5000\n\n# Frontend\nFRONTEND_URL=http://localhost:4200\n\`\`\`\n\n### docker-compose.yml (usando .env)\n\n\`\`\`yaml\nservices:\n sqlserver:\n environment:\n - SA_PASSWORD=\${DB_PASSWORD}\n\n api:\n environment:\n - ASPNETCORE_ENVIRONMENT=\${ASPNETCORE_ENVIRONMENT}\n - ConnectionStrings__DefaultConnection=Server=sqlserver;Database=\${DB_NAME};User Id=sa;Password=\${DB_PASSWORD};TrustServerCertificate=True\n\`\`\`\n\n---\n\n## 5. Variables por Ambiente\n\n| Variable | Desarrollo | Producción |\n|----------|------------|------------|\n| ConnectionString | localhost | Servidor prod |\n| EnableIntrospection | true | false |\n| LogLevel | Debug | Warning |\n| CORS Origins | localhost:4200 | dominio.com |\n| MaxExecutionDepth | 10 | 5 |\n\n---\n\n## 6. Cargar Configuración\n\n\`\`\`csharp\n// Program.cs\nvar builder = WebApplication.CreateBuilder(args);\n\n// Orden de carga (último gana):\n// 1. appsettings.json\n// 2. appsettings.{Environment}.json\n// 3. User Secrets (solo Development)\n// 4. Variables de entorno\n// 5. Command line args\n\nvar connectionString = builder.Configuration\n .GetConnectionString("DefaultConnection");\n\`\`\`\n`,
"DV-006 Herramientas de Calidad": `# DV-006: Herramientas de Calidad\n\n**Proyecto:** Sistema de Registro de Estudiantes\n**Fecha:** 2026-01-07\n\n---\n\n## 1. Backend (.NET 10)\n\n### .editorconfig\n\n\`\`\`ini\nroot = true\n\n[*]\nindent_style = space\nindent_size = 4\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_whitespace = true\ninsert_final_newline = true\n\n[*.{cs,csx}]\ncsharp_style_var_when_type_is_apparent = true:suggestion\ncsharp_prefer_braces = true:warning\ndotnet_sort_system_directives_first = true\n\`\`\`\n\n### Directory.Build.props (Analyzers)\n\n\`\`\`xml\n<Project>\n <PropertyGroup>\n <TargetFramework>net10.0</TargetFramework>\n <Nullable>enable</Nullable>\n <ImplicitUsings>enable</ImplicitUsings>\n <TreatWarningsAsErrors>true</TreatWarningsAsErrors>\n <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>\n <AnalysisLevel>latest</AnalysisLevel>\n </PropertyGroup>\n\n <ItemGroup>\n <PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" PrivateAssets="all" />\n </ItemGroup>\n</Project>\n\`\`\`\n\n### Comandos\n\n\`\`\`bash\n# Formatear código\ndotnet format\n\n# Verificar sin cambiar\ndotnet format --verify-no-changes\n\n# Build con warnings\ndotnet build -warnaserror\n\`\`\`\n\n---\n\n## 2. Frontend (Angular 21)\n\n### ESLint\n\n\`\`\`bash\n# Instalar\nng add @angular-eslint/schematics\n\`\`\`\n\n\`\`\`json\n// .eslintrc.json\n{\n "root": true,\n "overrides": [\n {\n "files": ["*.ts"],\n "extends": [\n "eslint:recommended",\n "plugin:@typescript-eslint/recommended",\n "plugin:@angular-eslint/recommended"\n ],\n "rules": {\n "@angular-eslint/component-selector": ["error", {\n "prefix": "app",\n "style": "kebab-case",\n "type": "element"\n }],\n "@typescript-eslint/no-unused-vars": "error",\n "no-console": "warn"\n }\n }\n ]\n}\n\`\`\`\n\n### Prettier\n\n\`\`\`json\n// .prettierrc\n{\n "singleQuote": true,\n "trailingComma": "es5",\n "tabWidth": 2,\n "semi": true,\n "printWidth": 100\n}\n\`\`\`\n\n\`\`\`json\n// .prettierignore\nnode_modules\ndist\ncoverage\n.angular\n\`\`\`\n\n---\n\n## 3. Pre-commit Hooks (Husky)\n\n\`\`\`bash\n# Instalar\nnpm install -D husky lint-staged\nnpx husky init\n\`\`\`\n\n\`\`\`json\n// package.json\n{\n "lint-staged": {\n "*.ts": ["eslint --fix", "prettier --write"],\n "*.html": ["prettier --write"],\n "*.scss": ["prettier --write"]\n }\n}\n\`\`\`\n\n\`\`\`bash\n# .husky/pre-commit\nnpm run lint-staged\ncd ../backend && dotnet format --verify-no-changes\n\`\`\`\n\n---\n\n## 4. Scripts package.json\n\n\`\`\`json\n{\n "scripts": {\n "start": "ng serve",\n "build": "ng build",\n "test": "ng test",\n "lint": "ng lint",\n "format": "prettier --write \\"src/**/*.{ts,html,scss}\\"",\n "format:check": "prettier --check \\"src/**/*.{ts,html,scss}\\"",\n "codegen": "graphql-codegen",\n "prepare": "husky"\n }\n}\n\`\`\`\n\n---\n\n## 5. CI Checks\n\n\`\`\`yaml\n# .github/workflows/ci.yml (ejemplo)\njobs:\n backend:\n steps:\n - run: dotnet format --verify-no-changes\n - run: dotnet build -warnaserror\n - run: dotnet test\n\n frontend:\n steps:\n - run: npm ci\n - run: npm run lint\n - run: npm run format:check\n - run: npm run build\n - run: npm test -- --watch=false\n\`\`\`\n\n---\n\n## 6. Checklist de Calidad\n\n| Verificación | Backend | Frontend |\n|--------------|---------|----------|\n| Formato código | \`dotnet format\` | \`prettier\` |\n| Linting | Roslyn Analyzers | ESLint |\n| Tipos | Nullable enabled | TypeScript strict |\n| Tests | xUnit | Jasmine/Jest |\n| Pre-commit | dotnet format | lint-staged |\n`,
},
"Arquitectura": {
"ADR-001 Clean Architecture": `# ADR-001: Clean Architecture\n\n**Estado:** Aceptado\n**Fecha:** 2026-01-07\n\n## Contexto\n\nNecesitamos una arquitectura que permita:\n- Testabilidad de reglas de negocio\n- Independencia de frameworks\n- Mantenibilidad a largo plazo\n- Separación clara de responsabilidades\n\n## Decisión\n\nAdoptar **Clean Architecture** con 4 capas: Domain, Application, Adapters, Host.\n\n\`\`\`\nHost → Adapters → Application → Domain\n\`\`\`\n\n## Consecuencias\n\n### Positivas\n- Domain sin dependencias externas (puro C#)\n- Reglas de negocio testeables sin mocks de infraestructura\n- Fácil cambiar ORM o base de datos\n- Fácil cambiar de REST a GraphQL (o viceversa)\n\n### Negativas\n- Mayor cantidad de archivos/proyectos\n- Curva de aprendizaje inicial\n- Overhead para proyectos muy pequeños\n\n## Alternativas Consideradas\n\n| Alternativa | Razón de Descarte |\n|-------------|-------------------|\n| N-Layer tradicional | Alto acoplamiento, difícil testear |\n| Vertical Slices | Menor separación de concerns |\n| Monolítico simple | No escala con complejidad |\n\n## Referencias\n\n- [Clean Architecture - Robert C. Martin](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)\n`,
"ADR-002 GraphQL vs REST": `# ADR-002: GraphQL vs REST\n\n**Estado:** Aceptado\n**Fecha:** 2026-01-07\n\n## Contexto\n\nLa aplicación tiene relaciones complejas:\n- Estudiantes → Inscripciones → Materias → Profesores\n- Consultas como "materias disponibles" requieren múltiples joins\n- Frontend necesita flexibilidad en datos solicitados\n\n## Decisión\n\nUsar **GraphQL** con HotChocolate como API.\n\n## Consecuencias\n\n### Positivas\n- **No over-fetching:** Cliente pide solo campos necesarios\n- **No under-fetching:** Una query obtiene datos relacionados\n- **Schema tipado:** Contrato explícito frontend-backend\n- **Playground incluido:** Banana Cake Pop para testing\n- **DataLoaders:** Resuelve N+1 automáticamente\n\n### Negativas\n- Complejidad adicional vs REST simple\n- Curva de aprendizaje GraphQL\n- Requiere configurar query complexity limits\n- Cache más complejo que HTTP caching\n\n## Ejemplo Comparativo\n\n### REST (múltiples requests)\n\`\`\`\nGET /students/1\nGET /students/1/enrollments\nGET /subjects/1\nGET /professors/1\n\`\`\`\n\n### GraphQL (una query)\n\`\`\`graphql\nquery {\n student(id: 1) {\n name\n enrollments {\n subject {\n name\n professor { name }\n }\n }\n }\n}\n\`\`\`\n\n## Alternativas\n\n| Alternativa | Razón de Descarte |\n|-------------|-------------------|\n| REST | Over/under-fetching, múltiples endpoints |\n| OData | Menos flexible, menos ecosistema |\n| gRPC | No ideal para frontend web |\n\n## Referencias\n\n- [HotChocolate Docs](https://chillicream.com/docs/hotchocolate)\n`,
"ADR-003 Angular Signals": `# ADR-003: Signals vs RxJS para Estado Local\n\n**Estado:** Aceptado\n**Fecha:** 2026-01-07\n\n## Contexto\n\nAngular 21 introduce Signals como alternativa a RxJS para estado reactivo.\nNecesitamos decidir el enfoque para manejo de estado en el frontend.\n\n## Decisión\n\nUsar **Signals para estado local** + **Apollo Client para estado del servidor**.\n\n\`\`\`typescript\n// Estado local con Signals\nstudents = signal<Student[]>([]);\nloading = signal(true);\n\n// Estado del servidor con Apollo\nthis.apollo.watchQuery<GetStudentsQuery>({...})\n\`\`\`\n\n## Consecuencias\n\n### Positivas\n- **Simplicidad:** Signals más intuitivos que BehaviorSubject\n- **Performance:** Integración nativa con OnPush\n- **Menos boilerplate:** No requiere async pipe en templates\n- **Type-safe:** Mejor inferencia de tipos\n\n### Negativas\n- Tecnología relativamente nueva\n- Menos operadores que RxJS\n- Apollo aún usa Observables internamente\n\n## Patrón Adoptado\n\n\`\`\`typescript\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StudentListComponent {\n // Estado local\n students = signal<Student[]>([]);\n loading = signal(true);\n\n // Suscripción a Apollo\n ngOnInit() {\n this.studentService.getStudents().subscribe(({ data, loading }) => {\n this.students.set(data);\n this.loading.set(loading);\n });\n }\n}\n\`\`\`\n\n## Alternativas\n\n| Alternativa | Razón de Descarte |\n|-------------|-------------------|\n| RxJS puro | Mayor complejidad, más boilerplate |\n| NgRx | Overkill para esta aplicación |\n| Akita | Dependencia adicional innecesaria |\n\n## Referencias\n\n- [Angular Signals](https://angular.dev/guide/signals)\n`,
"ADR-004 Validation Strategy": `# ADR-004: Estrategia de Validación en 3 Capas\n\n**Estado:** Aceptado\n**Fecha:** 2026-01-07\n\n## Contexto\n\nLas reglas de negocio críticas son:\n- Máximo 3 materias por estudiante (9 créditos)\n- No repetir profesor en inscripciones\n- Datos de entrada válidos (email, nombre)\n\n## Decisión\n\nValidar en **3 capas** con responsabilidades distintas:\n\n| Capa | Responsabilidad | Tecnología |\n|------|-----------------|------------|\n| Frontend | UX, feedback rápido | Reactive Forms |\n| Application | Estructura de datos, sanitización | FluentValidation |\n| Domain | Reglas de negocio puras | Domain Services |\n\n## Implementación\n\n### Frontend (UX)\n\`\`\`typescript\nthis.form = this.fb.group({\n name: ['', [Validators.required, Validators.minLength(3)]],\n email: ['', [Validators.required, Validators.email]],\n});\n\`\`\`\n\n### Application (Sanitización + XSS)\n\`\`\`csharp\nRuleFor(x => x.Name)\n .NotEmpty()\n .Must(NotContainDangerousContent); // Previene XSS\n\`\`\`\n\n### Domain (Negocio)\n\`\`\`csharp\npublic void ValidateEnrollment(Student student, Subject subject)\n{\n if (student.Enrollments.Count >= 3)\n throw new MaxEnrollmentsExceededException();\n\n if (student.HasProfessor(subject.ProfessorId))\n throw new SameProfessorConstraintException();\n}\n\`\`\`\n\n## Consecuencias\n\n### Positivas\n- Defensa en profundidad\n- Separación de responsabilidades\n- UX mejorada (errores rápidos)\n- Seguridad garantizada (backend siempre valida)\n\n### Negativas\n- Duplicación parcial de reglas\n- Mantener sincronizadas las validaciones\n\n## Regla de Oro\n\n> **Nunca confíes en el frontend.** El backend SIEMPRE debe validar.\n\n## Referencias\n\n- [OWASP Input Validation](https://owasp.org/www-community/Input_Validation)\n`,
},
"Despliegue": {
"Manual de Despliegue": `# Manual de Despliegue\n\n## Requisitos del Sistema\n\n| Componente | Versión Mínima |\n|------------|----------------|\n| .NET SDK | 10.0 |\n| Node.js | 22.x |\n| SQL Server | 2022 |\n| Docker | 24.x |\n| Docker Compose | 2.x |\n\n## Variables de Entorno\n\n### Backend (.NET)\n\n| Variable | Descripción | Ejemplo |\n|----------|-------------|---------|\n| \`ConnectionStrings__DefaultConnection\` | Connection string SQL Server | \`Server=db;Database=StudentEnrollment;...\` |\n| \`ASPNETCORE_ENVIRONMENT\` | Ambiente | \`Production\` |\n| \`ASPNETCORE_URLS\` | URLs de escucha | \`http://+:8080\` |\n| \`JWT_SECRET_KEY\` | **REQUERIDO** - Secret JWT (mín. 32 chars) | \`your-super-secret-key-minimum-32-chars\` |\n| \`JWT_ISSUER\` | Emisor JWT | \`StudentEnrollmentApi\` |\n| \`JWT_AUDIENCE\` | Audiencia JWT | \`StudentEnrollmentApp\` |\n| \`JWT_EXPIRATION_MINUTES\` | Expiración token | \`60\` |\n\n### Frontend (Angular)\n\n| Variable | Descripción | Ejemplo |\n|----------|-------------|---------|\n| \`API_URL\` | URL del backend GraphQL | \`https://api.example.com/graphql\` |\n\n### Desarrollo Local (SQLite)\n\n| Variable | Descripción | Ejemplo |\n|----------|-------------|---------|\n| \`USE_SQLITE\` | Usar SQLite en lugar de SQL Server | \`true\` |\n| \`ConnectionStrings__DefaultConnection\` | Path a archivo SQLite | \`Data Source=./data/dev.db\` |\n\n## Despliegue con Docker\n\n### 1. Estructura de Archivos\n\n\`\`\`\ndeploy/\n└── docker/\n ├── Dockerfile.api\n ├── Dockerfile.frontend\n ├── docker-compose.yml\n └── nginx.conf\n\`\`\`\n\n### 2. Dockerfile Backend\n\n\`\`\`dockerfile\n# deploy/docker/Dockerfile.api\nFROM mcr.microsoft.com/dotnet/sdk:10.0 AS build\nWORKDIR /src\n\nCOPY src/backend/ .\nRUN dotnet restore Host/Host.csproj\nRUN dotnet publish Host/Host.csproj -c Release -o /app\n\nFROM mcr.microsoft.com/dotnet/aspnet:10.0\nWORKDIR /app\nCOPY --from=build /app .\n\n# Non-root user\nRUN adduser --disabled-password --gecos '' appuser\nUSER appuser\n\nEXPOSE 5000\nHEALTHCHECK --interval=30s --timeout=3s \\\n CMD curl -f http://localhost:5000/health || exit 1\n\nENTRYPOINT ["dotnet", "Host.dll"]\n\`\`\`\n\n### 3. Dockerfile Frontend\n\n\`\`\`dockerfile\n# deploy/docker/Dockerfile.frontend\nFROM node:22-alpine AS build\nWORKDIR /app\n\nCOPY src/frontend/package*.json ./\nRUN npm ci\n\nCOPY src/frontend/ .\nRUN npm run build -- --configuration production\n\nFROM nginx:alpine\nCOPY --from=build /app/dist/student-enrollment/browser /usr/share/nginx/html\nCOPY deploy/docker/nginx.conf /etc/nginx/conf.d/default.conf\n\nEXPOSE 80\nHEALTHCHECK --interval=30s --timeout=3s \\\n CMD curl -f http://localhost/ || exit 1\n\`\`\`\n\n### 4. Nginx Configuration\n\n\`\`\`nginx\n# deploy/docker/nginx.conf\nserver {\n listen 80;\n server_name localhost;\n root /usr/share/nginx/html;\n index index.html;\n\n # Gzip\n gzip on;\n gzip_types text/plain text/css application/json application/javascript;\n\n # SPA routing\n location / {\n try_files \$uri \$uri/ /index.html;\n }\n\n # Proxy GraphQL\n location /graphql {\n proxy_pass http://api:5000/graphql;\n proxy_http_version 1.1;\n proxy_set_header Upgrade \$http_upgrade;\n proxy_set_header Connection "upgrade";\n proxy_set_header Host \$host;\n }\n\n # Security headers\n add_header X-Frame-Options "DENY" always;\n add_header X-Content-Type-Options "nosniff" always;\n add_header X-XSS-Protection "1; mode=block" always;\n}\n\`\`\`\n\n### 5. Docker Compose\n\n\`\`\`yaml\n# deploy/docker/docker-compose.yml\nservices:\n db:\n image: mcr.microsoft.com/mssql/server:2022-latest\n environment:\n - ACCEPT_EULA=Y\n - SA_PASSWORD=\${DB_PASSWORD}\n ports:\n - "1433:1433"\n volumes:\n - sqlserver-data:/var/opt/mssql\n healthcheck:\n test: /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P \$\${SA_PASSWORD} -Q "SELECT 1" -C\n interval: 10s\n timeout: 3s\n retries: 10\n\n api:\n build:\n context: ../..\n dockerfile: deploy/docker/Dockerfile.api\n environment:\n - ConnectionStrings__DefaultConnection=Server=db;Database=StudentEnrollment;User Id=sa;Password=\${DB_PASSWORD};TrustServerCertificate=True\n - ASPNETCORE_ENVIRONMENT=Production\n ports:\n - "5000:5000"\n depends_on:\n db:\n condition: service_healthy\n\n frontend:\n build:\n context: ../..\n dockerfile: deploy/docker/Dockerfile.frontend\n ports:\n - "80:80"\n depends_on:\n - api\n\nvolumes:\n sqlserver-data:\n\`\`\`\n\n### 6. Ejecutar\n\n\`\`\`bash\ncd deploy/docker\n\n# Crear archivo .env\necho "DB_PASSWORD=Asde71.4Asde71.4" > .env\n\n# Build e iniciar\ndocker-compose up -d --build\n\n# Ver logs\ndocker-compose logs -f\n\n# Detener\ndocker-compose down\n\`\`\`\n\n## Desarrollo Local (Sin Docker)\n\nScript que levanta backend + frontend con **SQLite** (sin necesidad de SQL Server):\n\n\`\`\`bash\n# Iniciar todo\n./scripts/dev-start.sh start\n\n# Ver estado\n./scripts/dev-start.sh status\n\n# Detener\n./scripts/dev-start.sh stop\n\n# Reiniciar\n./scripts/dev-start.sh restart\n\`\`\`\n\n**Características:**\n- Backend usa SQLite en \`./data/dev.db\`\n- No requiere Docker ni SQL Server\n- Frontend en puerto 4200, Backend en puerto 5000\n- Hot reload habilitado\n- PIDs guardados para cleanup automático\n\n---\n\n## CI/CD Pipeline (Gitea Actions)\n\n**Ubicación:** \`.gitea/workflows/deploy.yaml\`\n\n**Trigger:** Push a rama \`main\`\n\n### Flujo Automático\n\n1. Checkout código en Gitea runner\n2. Setup SSH hacia K3s master\n3. Sync código con rsync (excluye node_modules, dist, etc.)\n4. Build imágenes en paralelo (API + Frontend)\n5. Import a K3s containerd (\`docker save | k3s ctr images import\`)\n6. Apply manifiestos con Kustomize\n7. Rolling restart de deployments\n8. Health checks con curl\n9. Rollback automático si falla\n\n### Secretos Requeridos en Gitea\n\n| Secreto | Descripción |\n|---------|-------------|\n| \`K3S_SSH_KEY\` | Clave SSH privada para conectar a K3s master |\n| \`K3S_SUDO_PASS\` | Password de sudo en K3s host |\n\n### Configuración\n\n\`\`\`yaml\n# Variables de entorno en el workflow\nK3S_HOST: 100.67.198.92 # IP del master (hp62a)\nNAMESPACE: academia\nDOMAIN: academia.ingeniumcodex.com\n\`\`\`\n\n**Tiempo de despliegue:** ~3-5 minutos desde push hasta producción\n\n---\n\n## Despliegue Manual\n\n### Backend\n\n\`\`\`bash\ncd src/backend/Host\n\n# Build producción\ndotnet publish -c Release -o ./publish\n\n# Configurar connection string\nexport ConnectionStrings__DefaultConnection="Server=..."\n\n# Ejecutar migraciones\ndotnet ef database update --project ../Adapters/Driven/Persistence\n\n# Iniciar\ncd publish\ndotnet Host.dll\n\`\`\`\n\n### Frontend\n\n\`\`\`bash\ncd src/frontend\n\n# Build producción\nng build --configuration production\n\n# Los archivos quedan en dist/student-enrollment/browser/\n# Servir con cualquier servidor web (nginx, apache, etc.)\n\`\`\`\n\n## Checklist Pre-Producción\n\n### Seguridad\n\n- [ ] Connection strings en variables de entorno (no en código)\n- [ ] JWT_SECRET_KEY configurado (mínimo 32 caracteres)\n- [ ] HTTPS habilitado\n- [ ] CORS configurado solo para dominios permitidos\n- [ ] Rate limiting activo (30 mutations/min, 100 queries/min)\n- [ ] Security headers configurados\n- [ ] Logs sin datos sensibles (Serilog filtra tokens/passwords)\n\n### Performance\n\n- [ ] Response compression habilitado\n- [ ] Output caching configurado\n- [ ] Bundle Angular optimizado (< 200KB transferidos)\n- [ ] Índices de BD aplicados\n\n### Monitoreo\n\n- [ ] Health checks funcionando (\`/health\`)\n- [ ] Logs centralizados\n- [ ] Métricas de aplicación\n\n### Base de Datos\n\n- [ ] Backup configurado\n- [ ] Migraciones aplicadas\n- [ ] Datos seed cargados (5 profesores, 10 materias)\n\n## URLs de Verificación\n\n| Servicio | URL | Esperado |\n|----------|-----|----------|\n| API Health | \`http://api:8080/health\` | 200 OK |\n| GraphQL Playground | \`http://api:8080/graphql\` | Banana Cake Pop |\n| Frontend | \`http://frontend:80\` | App Angular |\n\n### URLs de Producción (K3s)\n\n| Servicio | URL |\n|----------|-----|\n| Frontend | \`https://academia.ingeniumcodex.com\` |\n| API GraphQL | \`https://academia.ingeniumcodex.com/graphql\` |\n| Health Check | \`https://academia.ingeniumcodex.com/health\` |\n| Login | \`https://academia.ingeniumcodex.com/login\` |\n| Registro | \`https://academia.ingeniumcodex.com/register\` |\n| Dashboard | \`https://academia.ingeniumcodex.com/dashboard\` |\n\n## Rollback\n\n\`\`\`bash\n# Docker\ndocker-compose down\ndocker-compose up -d --no-build # Usa imágenes anteriores\n\n# Manual\n# Restaurar versión anterior de DLLs/archivos\n# Rollback de migraciones si es necesario:\ndotnet ef database update <MigrationName>\n\`\`\`\n\n---\n\n## Despliegue en Kubernetes (k3s)\n\n### Estructura de Manifiestos\n\n\`\`\`\ndeploy/k3s/\n├── namespace.yaml # Namespace: academia\n├── secrets.yaml # Credenciales BD\n├── configmap.yaml # Configuración\n├── sqlserver.yaml # Base de datos\n├── api.yaml # Backend GraphQL\n├── frontend.yaml # Frontend Angular\n├── ingress.yaml # Traefik IngressRoute + TLS\n├── networkpolicy.yaml # Seguridad de red (incluido en kustomize)\n├── hpa.yaml # Autoscaling (opcional, no incluido)\n├── kustomization.yaml # Kustomize config\n└── deploy.sh # Script de despliegue\n\`\`\`\n\n**Nota:** \`networkpolicy.yaml\` está incluido en \`kustomization.yaml\` y aplica las siguientes reglas:\n- Default deny: Bloquea todo tráfico entrante por defecto\n- Frontend: Solo acepta tráfico desde Ingress\n- API: Solo acepta tráfico desde Frontend e Ingress\n- SQL Server: Solo acepta conexiones desde API\n\n### Requisitos k3s\n\n- k3s instalado y funcionando\n- kubectl configurado\n- Acceso al cluster\n- (Opcional) cert-manager para TLS\n\n### Despliegue Rápido\n\n\`\`\`bash\ncd deploy/k3s\n\n# Opción 1: Con script\n./deploy.sh all # Build + Deploy\n\n# Opción 2: Con kustomize\nkubectl apply -k .\n\n# Verificar estado\nkubectl get all -n academia\n\`\`\`\n\n### Comandos del Script\n\n\`\`\`bash\n./deploy.sh build # Construir imágenes Docker\n./deploy.sh deploy # Desplegar a k3s\n./deploy.sh status # Ver estado del cluster\n./deploy.sh logs api # Ver logs del API\n./deploy.sh forward # Port-forward para desarrollo\n./deploy.sh delete # Eliminar deployment\n\`\`\`\n\n### Configurar Secrets\n\n\`\`\`bash\n# Editar secrets antes de desplegar\nkubectl create secret generic student-secrets \\\n --namespace=academia \\\n --from-literal=db-password='Asde71.4Asde71.4' \\\n --from-literal=db-connection-string='Server=sqlserver;Database=StudentEnrollment;User Id=sa;Password=Asde71.4Asde71.4;TrustServerCertificate=True' \\\n --dry-run=client -o yaml > secrets.yaml\n\`\`\`\n\n### Acceso Local (Desarrollo)\n\n\`\`\`bash\n# Agregar entrada en /etc/hosts\necho "127.0.0.1 students.local" | sudo tee -a /etc/hosts\n\n# Port forward\n./deploy.sh forward\n\n# Acceder en:\n# - Frontend: http://localhost:8080\n# - API: http://localhost:5000/graphql\n\`\`\`\n\n### Habilitar TLS (Producción)\n\n\`\`\`bash\n# 1. Instalar cert-manager\nkubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.0/cert-manager.yaml\n\n# 2. Editar ingress-tls.yaml con tu dominio y email\n\n# 3. Aplicar ingress con TLS\nkubectl apply -f ingress-tls.yaml -n academia\n\`\`\`\n\n### Scaling Manual\n\n\`\`\`bash\n# Escalar API\nkubectl scale deployment student-api -n academia --replicas=3\n\n# Escalar Frontend\nkubectl scale deployment student-frontend -n academia --replicas=2\n\`\`\`\n\n### Monitoreo\n\n\`\`\`bash\n# Estado de pods\nkubectl get pods -n academia -w\n\n# Logs en tiempo real\nkubectl logs -n academia -l app=student-api -f\n\n# Eventos\nkubectl get events -n academia --sort-by='.lastTimestamp'\n\n# Recursos\nkubectl top pods -n academia\n\`\`\`\n\n### Rollback en k3s\n\n\`\`\`bash\n# Ver historial de deployments\nkubectl rollout history deployment/student-api -n academia\n\n# Rollback a versión anterior\nkubectl rollout undo deployment/student-api -n academia\n\n# Rollback a revisión específica\nkubectl rollout undo deployment/student-api -n academia --to-revision=2\n\`\`\`\n\n### Troubleshooting\n\n\`\`\`bash\n# Pod no inicia\nkubectl describe pod <pod-name> -n academia\n\n# Conectar a pod\nkubectl exec -it <pod-name> -n academia -- /bin/sh\n\n# Verificar conectividad BD\nkubectl exec -it <api-pod> -n academia -- \\\n curl -v telnet://sqlserver:1433\n\n# Verificar ingress\nkubectl describe ingress student-ingress -n academia\n\`\`\`\n`,
"Plan de Actividades": `# Plan de Actividades - Prueba Técnica Senior .NET/Angular\n\n## Información del Proyecto\n- **Cargo:** Desarrollador Master .NET/Angular\n- **Empresa:** Inter Rapidísimo\n- **Proyecto:** Sistema de Registro de Estudiantes\n- **Stack:** .NET 10 + GraphQL (HotChocolate) + Angular 21 + SQL Server\n\n---\n\n## Procesos de Fábrica de Software\n\n| Código | Proceso | Descripción |\n|--------|---------|-------------|\n| **AN** | Análisis | Levantamiento de requisitos, historias de usuario |\n| **DI** | Diseño | Arquitectura, modelos, prototipos UI/UX |\n| **DE** | Desarrollo | Codificación, implementación |\n| **QA** | Quality Assurance | Testing, revisión de código |\n| **DV** | DevOps | CI/CD, containerización, despliegue |\n| **DO** | Documentación | Técnica, usuario, API |\n| **SE** | Seguridad | Validaciones, autenticación, OWASP |\n\n---\n\n## Tabla de Actividades\n\n### Fase 1: Análisis y Planificación (AN)\n\n| # | Actividad | Detalle | Rol | Proceso |\n|---|-----------|---------|-----|---------|\n| 1.1 | Análisis de requisitos funcionales | Identificar y documentar los 9 requisitos del enunciado, criterios de aceptación por cada uno | Analista | AN |\n| 1.2 | Identificación de reglas de negocio | Documentar restricciones: máx 3 materias, 3 créditos/materia, 5 profesores con 2 materias c/u, restricción de profesor único | Analista | AN |\n| 1.3 | Definición de historias de usuario | Crear historias con formato "Como [rol] quiero [acción] para [beneficio]" con criterios de aceptación | Product Owner | AN |\n| 1.4 | Análisis de requisitos no funcionales | Definir: rendimiento (<200ms respuesta), seguridad (OWASP Top 10), usabilidad (responsive), mantenibilidad | Arquitecto | AN |\n| 1.5 | Identificación de riesgos técnicos | Mapear riesgos: complejidad de validaciones, integración frontend-backend, manejo de concurrencia | Líder Técnico | AN |\n\n### Fase 2: Diseño de Arquitectura (DI)\n\n| # | Actividad | Detalle | Rol | Proceso |\n|---|-----------|---------|-----|---------|\n| 2.1 | Diseño de arquitectura backend | Definir Clean Architecture: Domain, Application, Infrastructure, GraphQL. Diagrama de capas y dependencias | Arquitecto Backend | DI |\n| 2.2 | Diseño del modelo de dominio | Crear diagrama de entidades: Student, Subject, Professor, Enrollment. Definir agregados y value objects | Arquitecto Backend | DI |\n| 2.3 | Diseño de base de datos | Modelo E-R normalizado (3FN), índices, constraints, scripts DDL con integridad referencial | DBA/Arquitecto | DI |\n| 2.4 | Diseño de esquema GraphQL | Definir Types, Queries, Mutations, Inputs, Payloads. Diseñar resolvers y DataLoaders para N+1 | Arquitecto Backend | DI |\n| 2.5 | Diseño de arquitectura frontend | Definir estructura Angular: standalone components, signals, lazy loading, Apollo Client para GraphQL | Arquitecto Frontend | DI |\n| 2.6 | Diseño de componentes UI | Wireframes de pantallas: listado estudiantes, formulario inscripción, selección materias, vista compañeros | UI/UX Designer | DI |\n| 2.7 | Definición de contratos GraphQL | Schema GraphQL completo, DTOs de request/response, interfaces de servicios, contratos entre capas | Arquitecto | DI |\n| 2.8 | Diseño de estrategia de manejo de errores | Definir excepciones de dominio, error handling en GraphQL (Union types para errores), respuestas estandarizadas | Arquitecto | DI |\n\n### Fase 3: Configuración del Entorno (DV)\n\n| # | Actividad | Detalle | Rol | Proceso |\n|---|-----------|---------|-----|---------|\n| 3.1 | Inicialización del repositorio | Crear estructura de carpetas, .gitignore, README, DEV-GUIDE.md con convenciones del proyecto | DevOps | DV |\n| 3.2 | Configuración solución .NET | Crear solución con 4 proyectos (Domain, Application, Infrastructure, GraphQL), referencias entre proyectos | Backend Dev | DV |\n| 3.3 | Configuración proyecto Angular | ng new con standalone, configurar ESLint, Prettier, paths aliases, Apollo Angular para GraphQL | Frontend Dev | DV |\n| 3.4 | Configuración de base de datos | Docker compose para SQL Server, scripts de inicialización, connection strings por ambiente | DevOps/DBA | DV |\n| 3.5 | Configuración de variables de entorno | User secrets para desarrollo, appsettings por ambiente, environment.ts en Angular | DevOps | DV |\n| 3.6 | Configuración de herramientas de calidad | EditorConfig, .NET analyzers, ESLint rules, Husky para pre-commit hooks | DevOps | DV |\n\n### Fase 4: Desarrollo Backend (DE)\n\n| # | Actividad | Detalle | Rol | Proceso |\n|---|-----------|---------|-----|---------|\n| 4.1 | Implementar capa Domain | Entidades (Student, Subject, Professor, Enrollment), Value Objects, interfaces de repositorios, excepciones de dominio | Backend Dev | DE |\n| 4.2 | Implementar reglas de negocio en Domain | Validaciones en entidades: EnrollmentPolicy (max 3 materias), ProfessorConstraint (no repetir profesor) | Backend Dev | DE |\n| 4.3 | Implementar capa Application - DTOs | Records inmutables para requests/responses, mappers con Mapster o extension methods | Backend Dev | DE |\n| 4.4 | Implementar capa Application - Servicios | StudentService, EnrollmentService con casos de uso: Create, Update, Delete, GetAll, GetById, GetClassmates | Backend Dev | DE |\n| 4.5 | Implementar validadores FluentValidation | Validators para CreateStudentInput, EnrollStudentInput con reglas de negocio | Backend Dev | DE |\n| 4.6 | Implementar capa Infrastructure - DbContext | Configurar EF Core 10, Fluent API para mapeos, configuraciones de entidades, seeding de datos iniciales | Backend Dev | DE |\n| 4.7 | Implementar capa Infrastructure - Repositorios | Repositorios genérico y específicos, Unit of Work, queries optimizadas con Include/ThenInclude | Backend Dev | DE |\n| 4.8 | Implementar GraphQL Types | StudentType, SubjectType, ProfessorType, EnrollmentType con HotChocolate | Backend Dev | DE |\n| 4.9 | Implementar GraphQL Queries | Resolvers para: students, student(id), subjects, availableSubjects(studentId), classmates(studentId), professors | Backend Dev | DE |\n| 4.10 | Implementar GraphQL Mutations | createStudent, updateStudent, deleteStudent, enrollStudent, unenrollStudent con Payloads de respuesta | Backend Dev | DE |\n| 4.11 | Implementar DataLoaders | DataLoaders para evitar N+1: StudentByIdDataLoader, SubjectByIdDataLoader, ProfessorByIdDataLoader | Backend Dev | DE |\n| 4.12 | Implementar middleware de errores | ExceptionHandlingMiddleware, mapeo de excepciones de dominio a errores GraphQL | Backend Dev | DE |\n| 4.13 | Configurar Dependency Injection | Registrar servicios por capa en Program.cs, configurar HotChocolate con servicios | Backend Dev | DE |\n| 4.14 | Implementar migraciones EF Core | Crear migración inicial, script de seed para profesores y materias predefinidas | Backend Dev | DE |\n\n### Fase 5: Desarrollo Frontend (DE)\n\n| # | Actividad | Detalle | Rol | Proceso |\n|---|-----------|---------|-----|---------|\n| 5.1 | Configurar Apollo Angular | Instalar apollo-angular, configurar ApolloModule con endpoint GraphQL, cache policies | Frontend Dev | DE |\n| 5.2 | Implementar GraphQL Queries en Angular | Archivos .graphql o queries en TypeScript para students, subjects, classmates | Frontend Dev | DE |\n| 5.3 | Implementar GraphQL Mutations en Angular | Mutations para crear/editar estudiante, inscribir/desinscribir materias | Frontend Dev | DE |\n| 5.4 | Implementar capa Core - Servicios | StudentService, SubjectService, EnrollmentService usando Apollo Client | Frontend Dev | DE |\n| 5.5 | Implementar capa Core - Interceptores | HttpErrorInterceptor para manejo global de errores, LoadingInterceptor para indicador de carga | Frontend Dev | DE |\n| 5.6 | Implementar capa Shared - Componentes UI | ButtonComponent, InputComponent, CardComponent, TableComponent, ModalComponent, AlertComponent | Frontend Dev | DE |\n| 5.7 | Implementar capa Shared - Directivas y Pipes | HighlightDirective, TooltipDirective, TruncatePipe, CreditsPipe | Frontend Dev | DE |\n| 5.8 | Implementar feature Students - Listado | Tabla con estudiantes usando Apollo watchQuery, búsqueda, paginación, acciones CRUD | Frontend Dev | DE |\n| 5.9 | Implementar feature Students - Formulario | Reactive form para crear/editar estudiante con validaciones, mutation de Apollo | Frontend Dev | DE |\n| 5.10 | Implementar feature Enrollment - Selección materias | Componente con query availableSubjects, validación visual de restricción de profesor, contador de créditos | Frontend Dev | DE |\n| 5.11 | Implementar feature Enrollment - Vista compañeros | Query classmates con listado de nombres por materia inscrita | Frontend Dev | DE |\n| 5.12 | Implementar gestión de estado | Signals para estado local, Apollo cache para estado del servidor, optimistic updates | Frontend Dev | DE |\n| 5.13 | Implementar manejo de errores UI | Toast notifications, estados de error en formularios, manejo de errores GraphQL | Frontend Dev | DE |\n| 5.14 | Implementar responsive design | CSS con mobile-first, breakpoints para tablet/desktop, Angular Material responsive | Frontend Dev | DE |\n| 5.15 | Implementar loading states | Skeletons, spinners, estados de carga con Apollo loading state | Frontend Dev | DE |\n\n### Fase 6: Integración GraphQL (DE)\n\n| # | Actividad | Detalle | Rol | Proceso |\n|---|-----------|---------|-----|---------|\n| 6.1 | Configurar CORS | Permitir origen del frontend en desarrollo y producción, headers para GraphQL | Backend Dev | DE |\n| 6.2 | Configurar Banana Cake Pop | Playground integrado de HotChocolate para testing de queries/mutations | Backend Dev | DE |\n| 6.3 | Implementar health checks | Endpoint /health para verificar conectividad a BD y servicios | Backend Dev | DE |\n| 6.4 | Configurar Apollo DevTools | Habilitar Apollo DevTools en desarrollo para debugging de queries y cache | Frontend Dev | DE |\n| 6.5 | Implementar caché de Apollo | Configurar cache policies: cache-first para datos estáticos, network-only para datos dinámicos | Frontend Dev | DE |\n| 6.6 | Generar tipos TypeScript | Usar GraphQL Code Generator para generar tipos desde el schema GraphQL | Frontend Dev | DE |\n\n### Fase 7: Seguridad (SE)\n\n| # | Actividad | Detalle | Rol | Proceso |\n|---|-----------|---------|-----|---------|\n| 7.1 | Implementar validación de entrada | Sanitización de inputs, validación en frontend y backend, prevención de inyección | Security Dev | SE |\n| 7.2 | Configurar headers de seguridad | Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, HSTS | Security Dev | SE |\n| 7.3 | Implementar rate limiting | Limitar requests por IP para prevenir DoS, configurar en middleware GraphQL | Security Dev | SE |\n| 7.4 | Configurar query complexity | Limitar profundidad y complejidad de queries GraphQL para prevenir ataques | Security Dev | SE |\n| 7.5 | Validar OWASP Top 10 | Revisar: Injection, Broken Auth, XSS, Insecure Design, Security Misconfiguration | Security Dev | SE |\n| 7.6 | Configurar logging seguro | No loguear datos sensibles, structured logging con Serilog, niveles apropiados | Security Dev | SE |\n\n### Fase 8: Testing (QA)\n\n| # | Actividad | Detalle | Rol | Proceso |\n|---|-----------|---------|-----|---------|\n| 8.1 | Unit tests - Domain | Tests para reglas de negocio: validación max 3 materias, restricción profesor, cálculo créditos | QA/Backend Dev | QA |\n| 8.2 | Unit tests - Application | Tests para servicios, mappers, validators usando mocks de repositorios | QA/Backend Dev | QA |\n| 8.3 | Integration tests - GraphQL | Tests de queries y mutations con WebApplicationFactory, base de datos in-memory | QA/Backend Dev | QA |\n| 8.4 | Unit tests - Angular Components | Tests con Jest/Jasmine para componentes, servicios con Apollo testing utilities | QA/Frontend Dev | QA |\n| 8.5 | E2E tests | Tests con Playwright para flujos críticos: registro estudiante, inscripción materias | QA | QA |\n| 8.6 | Tests de reglas de negocio | Casos de prueba específicos para restricciones: intentar 4ta materia, mismo profesor | QA | QA |\n| 8.7 | Code review | Revisión de código aplicando checklist: SOLID, Clean Code, convenciones, seguridad | Líder Técnico | QA |\n| 8.8 | Análisis de código estático | Ejecutar analyzers .NET, ESLint, corregir code smells, vulnerabilidades, duplicación | QA | QA |\n\n### Fase 9: Optimización y Rendimiento (DE)\n\n| # | Actividad | Detalle | Rol | Proceso |\n|---|-----------|---------|-----|---------|\n| 9.1 | Optimizar queries EF Core | Revisar N+1 (usar DataLoaders), AsNoTracking para lecturas, proyecciones con Select, índices en BD | Backend Dev | DE |\n| 9.2 | Implementar caché backend | Response caching para queries estáticas, memory cache para datos frecuentes | Backend Dev | DE |\n| 9.3 | Optimizar bundle Angular | Lazy loading de rutas, tree shaking, análisis de bundle size | Frontend Dev | DE |\n| 9.4 | Optimizar rendimiento UI | OnPush change detection, trackBy en ngFor, debounce en búsquedas | Frontend Dev | DE |\n| 9.5 | Comprimir assets | Minificación CSS/JS, compresión gzip/brotli | DevOps | DE |\n\n### Fase 10: Documentación (DO)\n\n| # | Actividad | Detalle | Rol | Proceso |\n|---|-----------|---------|-----|---------|\n| 10.1 | Documentar arquitectura | Diagrama C4 (Context, Container, Component), decisiones de arquitectura (ADR) | Arquitecto | DO |\n| 10.2 | Documentar esquema GraphQL | Schema completo con descripciones, ejemplos de queries/mutations en Banana Cake Pop | Backend Dev | DO |\n| 10.3 | Documentar modelo de datos | Diagrama E-R, diccionario de datos, scripts de creación comentados | DBA | DO |\n| 10.4 | README del proyecto | Instrucciones de instalación, configuración, ejecución, estructura del proyecto | Líder Técnico | DO |\n| 10.5 | Documentar decisiones técnicas | Por qué Clean Architecture, por qué GraphQL vs REST, por qué Signals vs RxJS | Arquitecto | DO |\n| 10.6 | Manual de despliegue | Pasos para deploy, variables de entorno requeridas, checklist pre-producción | DevOps | DO |\n\n### Fase 11: Entrega y Despliegue (DV)\n\n| # | Actividad | Detalle | Rol | Proceso |\n|---|-----------|---------|-----|---------|\n| 11.1 | Configurar Dockerfile GraphQL | Multi-stage build, imagen optimizada, health check, non-root user | DevOps | DV |\n| 11.2 | Configurar Dockerfile frontend | Build con Node, serve con Nginx, configuración de proxy para GraphQL | DevOps | DV |\n| 11.3 | Crear docker-compose | Orquestación de GraphQL API, frontend, SQL Server, configuración de red y volúmenes | DevOps | DV |\n| 11.4 | Pruebas de despliegue | Verificar funcionamiento end-to-end en ambiente containerizado | DevOps/QA | DV |\n| 11.5 | Preparar entregables | Empaquetar código fuente, scripts BD, documentación, instrucciones de ejecución | Líder Técnico | DV |\n| 11.6 | Validación final | Checklist de requisitos cumplidos, demo funcional, revisión de calidad | Líder Técnico | DV |\n\n---\n\n## Resumen por Proceso\n\n| Proceso | Actividades | Peso |\n|---------|-------------|------|\n| Análisis (AN) | 5 | 5% |\n| Diseño (DI) | 8 | 15% |\n| DevOps (DV) | 12 | 10% |\n| Desarrollo Backend (DE) | 14 | 30% |\n| Desarrollo Frontend (DE) | 15 | 25% |\n| Seguridad (SE) | 6 | 5% |\n| Testing (QA) | 8 | 5% |\n| Documentación (DO) | 6 | 5% |\n| **TOTAL** | **74** | **100%** |\n\n---\n\n## Criterios de Calidad Senior\n\n### Competencias Demostradas\n\n| Área | Evidencia |\n|------|-----------|\n| **Arquitectura** | Clean Architecture, separación de concerns, principios SOLID |\n| **GraphQL** | Schema bien diseñado, DataLoaders para N+1, error handling |\n| **Código Limpio** | Naming conventions, SRP, métodos pequeños, sin duplicación |\n| **Testing** | Cobertura de reglas críticas, tests unitarios y de integración |\n| **Seguridad** | OWASP compliance, validación de inputs, query complexity limits |\n| **Rendimiento** | Queries optimizadas, caching estratégico, Apollo cache |\n| **Mantenibilidad** | Código autodocumentado, arquitectura desacoplada, DTOs |\n| **DevOps** | Containerización, configuración por ambiente |\n| **Documentación** | Schema GraphQL documentado, README completo |\n\n### Diferenciadores Senior vs Junior\n\n| Aspecto | Junior | Senior (Este proyecto) |\n|---------|--------|------------------------|\n| Arquitectura | Monolítico, acoplado | Clean Architecture, capas bien definidas |\n| API | REST básico | GraphQL con HotChocolate, DataLoaders |\n| Validaciones | Solo en frontend | Frontend + Backend + Domain |\n| Errores | Try-catch genéricos | Excepciones de dominio, Union types para errores |\n| Testing | Manual o ninguno | Unit + Integration + E2E automatizados |\n| Estado Frontend | Variables globales | Signals + Apollo Cache |\n| BD | EF directo en controller | Repository + Unit of Work + Specifications |\n| Seguridad | Ninguna | OWASP, headers, rate limiting, query complexity |\n\n---\n\n## Orden de Ejecución Recomendado\n\n\`\`\`\nBloque 1: Fundamentos\n├── AN (1.1-1.5) → Requisitos claros\n├── DI (2.1-2.8) → Arquitectura definida\n└── DV (3.1-3.6) → Ambiente configurado\n\nBloque 2: Backend Core\n├── DE (4.1-4.7) → Domain + Application + Infrastructure\n└── DE (4.8-4.14) → GraphQL API funcional\n\nBloque 3: Frontend Core\n├── DE (5.1-5.7) → Core + Shared + Apollo config\n└── DE (5.8-5.15) → Features completas\n\nBloque 4: Integración\n└── DE (6.1-6.6) → Frontend ↔ Backend conectados\n\nBloque 5: Calidad\n├── SE (7.1-7.6) → Seguridad implementada\n├── QA (8.1-8.8) → Tests ejecutados\n└── DE (9.1-9.5) → Optimizaciones aplicadas\n\nBloque 6: Entrega\n├── DO (10.1-10.6) → Documentación completa\n└── DV (11.1-11.6) → Despliegue validado\n\`\`\`\n\n> **Nota:** Ejecutar los bloques secuencialmente. Dentro de cada bloque, las actividades pueden paralelizarse según disponibilidad de recursos.\n`,
},
"Calidad": {
"Code Review Checklist": `# Code Review Checklist - Sistema Registro Estudiantes\n\n## Estado: Validado\n\n### Arquitectura (Clean Architecture)\n\n| Criterio | Estado | Evidencia |\n|----------|--------|-----------|\n| Separación de capas | ✅ | Domain, Application, Adapters, Host |\n| Regla de dependencia | ✅ | Domain no depende de nada externo |\n| Ports & Adapters | ✅ | IStudentRepository, IEnrollmentRepository |\n| CQRS implementado | ✅ | Commands y Queries separados |\n\n### Principios SOLID\n\n| Principio | Estado | Evidencia |\n|-----------|--------|-----------|\n| **S**ingle Responsibility | ✅ | Cada clase tiene una responsabilidad |\n| **O**pen/Closed | ✅ | Extensible via interfaces |\n| **L**iskov Substitution | ✅ | Repositorios intercambiables |\n| **I**nterface Segregation | ✅ | Interfaces específicas por entidad |\n| **D**ependency Inversion | ✅ | Inyección de dependencias |\n\n### Clean Code\n\n| Criterio | Estado | Notas |\n|----------|--------|-------|\n| Naming conventions | ✅ | PascalCase clases, camelCase variables |\n| Métodos pequeños | ✅ | < 20 líneas promedio |\n| Sin código duplicado | ✅ | DRY aplicado |\n| Comentarios mínimos | ✅ | Código autodocumentado |\n| Archivos < 100 líneas | ✅ | Refactorizado donde necesario |\n\n### Seguridad\n\n| Criterio | Estado | Ubicación |\n|----------|--------|-----------|\n| Input validation | ✅ | FluentValidation + Regex |\n| SQL Injection prevention | ✅ | EF Core parametrizado |\n| XSS prevention | ✅ | Sanitización en validators |\n| Security headers | ✅ | Program.cs middleware |\n| Rate limiting | ✅ | 100 req/min |\n| Query complexity limits | ✅ | Depth 5, complexity 100 |\n\n### Testing\n\n| Tipo | Cantidad | Cobertura |\n|------|----------|-----------|\n| Domain Tests | 30 | Entidades, ValueObjects, Services |\n| Application Tests | 66 | Commands, Queries, Validators |\n| Integration Tests | 5 | GraphQL flujo completo |\n| Angular Unit Tests | 24 | Services, Pipes |\n| E2E Tests (Playwright) | 20 | Flujos principales |\n| **Total** | **145** | |\n\n### Convenciones de Código\n\n#### Backend (.NET)\n\n- [x] Async/await en operaciones I/O\n- [x] Records para DTOs inmutables\n- [x] Nullable habilitado\n- [x] Global usings configurados\n- [x] FluentValidation para validaciones\n\n#### Frontend (Angular)\n\n- [x] Standalone components\n- [x] Signals para estado reactivo\n- [x] Lazy loading por feature\n- [x] OnPush change detection\n- [x] Apollo Client para GraphQL\n\n### GraphQL\n\n| Criterio | Estado |\n|----------|--------|\n| Types bien definidos | ✅ |\n| DataLoaders para N+1 | ✅ |\n| Error handling | ✅ |\n| Payloads con errors | ✅ |\n| Depth limiting | ✅ |\n\n### Performance\n\n| Optimización | Implementada |\n|--------------|--------------|\n| Response compression | ✅ Brotli + Gzip |\n| Output caching | ✅ 5 min para subjects/professors |\n| Apollo cache | ✅ cache-and-network |\n| Lazy loading | ✅ Por feature module |\n| Bundle optimization | ✅ < 800KB initial |\n\n### Documentación\n\n| Documento | Estado |\n|-----------|--------|\n| README.md | ✅ |\n| DEV-GUIDE.md | ✅ |\n| OWASP_CHECKLIST.md | ✅ |\n| GraphQL Schema | ✅ (Banana Cake Pop) |\n\n---\n\n## Checklist de Revisión Manual\n\n### Antes de Merge\n\n- [ ] Todos los tests pasan\n- [ ] Build sin errores ni warnings\n- [ ] Código formateado\n- [ ] Sin TODOs pendientes críticos\n- [ ] Variables de entorno documentadas\n\n### Seguridad\n\n- [ ] Sin secrets hardcodeados\n- [ ] Sin console.log en producción\n- [ ] Validaciones en frontend Y backend\n- [ ] Error messages no exponen detalles internos\n\n### UX\n\n- [ ] Loading states implementados\n- [ ] Error messages claros\n- [ ] Responsive design funcional\n- [ ] Accesibilidad básica (a11y)\n`,
"OWASP Checklist": `# OWASP Top 10 Security Checklist\n\n## Estado: Validado\n\n| # | Vulnerabilidad | Mitigación Implementada | Ubicación |\n|---|---------------|-------------------------|-----------|\n| A01 | **Broken Access Control** | No aplica (sin autenticación requerida) | N/A |\n| A02 | **Cryptographic Failures** | HTTPS forzado en producción (HSTS) | \`Program.cs:127\` |\n| A03 | **Injection** | FluentValidation + Regex sanitization, EF Core parameterized queries | \`CreateStudentValidator.cs\`, \`EnrollStudentValidator.cs\` |\n| A04 | **Insecure Design** | Clean Architecture, input validation en todas las capas | Arquitectura por capas |\n| A05 | **Security Misconfiguration** | Security headers (CSP, X-Frame-Options, etc.), Exception details disabled in prod | \`Program.cs:106-130\`, \`GraphQLExtensions.cs:53\` |\n| A06 | **Vulnerable Components** | Dependencias actualizadas (.NET 10, Angular 21) | \`*.csproj\`, \`package.json\` |\n| A07 | **Auth Failures** | No aplica (sin autenticación en este MVP) | N/A |\n| A08 | **Data Integrity Failures** | Input validation, FluentValidation, GraphQL type safety | Validators |\n| A09 | **Security Logging Failures** | Serilog structured logging, sensitive data filtering | \`appsettings.json:38-45\` |\n| A10 | **Server-Side Request Forgery** | No endpoints que acepten URLs externas | N/A |\n\n## Medidas de Seguridad Implementadas\n\n### Backend (.NET)\n\n1. **Input Validation**\n - FluentValidation con regex patterns\n - Sanitización de HTML/scripts\n - Longitud máxima de campos\n - Validación de formato email\n\n2. **Security Headers**\n - \`Content-Security-Policy\`\n - \`X-Content-Type-Options: nosniff\`\n - \`X-Frame-Options: DENY\`\n - \`Referrer-Policy: strict-origin-when-cross-origin\`\n - \`Permissions-Policy\`\n - \`Strict-Transport-Security\` (producción)\n\n3. **Rate Limiting**\n - 100 requests/minuto para queries GraphQL\n - 30 mutations/minuto\n - Queue limit para prevenir acumulación\n\n4. **GraphQL Security**\n - Query depth limit: 5 niveles\n - Query complexity limit: 100\n - Execution timeout: 30 segundos\n - Pagination max: 50 items\n\n5. **Logging Seguro**\n - Filtrado de datos sensibles (passwords, tokens)\n - Structured logging con Serilog\n - Rotación de logs (7 días)\n\n### Frontend (Angular)\n\n1. **XSS Prevention**\n - Angular sanitization por defecto\n - Content Security Policy\n\n2. **CSRF Protection**\n - No cookies de sesión (stateless GraphQL)\n\n3. **Secure Communication**\n - Solo HTTPS en producción\n - GraphQL sobre HTTPS\n\n## Pruebas de Seguridad Recomendadas\n\n\`\`\`bash\n# Test security headers\ncurl -I http://localhost:5000/graphql\n\n# Test rate limiting (debe retornar 429 después de 100 requests)\nfor i in {1..150}; do curl -s -o /dev/null -w "%{http_code}\\n" http://localhost:5000/graphql; done\n\n# Test query depth (debe fallar con depth > 5)\ncurl -X POST http://localhost:5000/graphql \\\n -H "Content-Type: application/json" \\\n -d '{"query":"{ students { enrollments { subject { professor { subjects { name } } } } } }"}'\n\`\`\`\n`,
"Recomendaciones": `# Recomendaciones Finales\n\n**Fecha:** 2026-01-08\n**Proyecto:** Sistema de Inscripción de Estudiantes\n**Versión:** 1.0\n\n---\n\n## Resumen del Estado Actual\n\nEl sistema cumple con todos los requisitos funcionales de la prueba técnica:\n\n| Requisito | Estado |\n|-----------|--------|\n| CRUD de estudiantes | ✅ Implementado |\n| Programa de créditos (10 materias, 3 créditos c/u) | ✅ Implementado |\n| Máximo 3 materias por estudiante | ✅ Implementado |\n| 5 profesores con 2 materias c/u | ✅ Implementado |\n| Restricción de mismo profesor | ✅ Implementado |\n| Ver compañeros de clase (solo nombres) | ✅ Implementado |\n| Autenticación y autorización | ✅ Implementado |\n| Recuperación de contraseña | ✅ Implementado |\n\n---\n\n## Recomendaciones Técnicas\n\n### 1. Seguridad\n\n#### Alta Prioridad\n- **Rate Limiting:** Implementar limitación de solicitudes en endpoints de autenticación para prevenir ataques de fuerza bruta.\n- **Refresh Tokens:** Actualmente solo se usa un token JWT. Implementar refresh tokens para mejor seguridad.\n- **Logging de Auditoría:** Agregar logs para acciones sensibles (login fallido, cambio de contraseña, etc.).\n\n#### Media Prioridad\n- **CORS Restrictivo:** Revisar configuración de CORS para producción (actualmente permite localhost).\n- **Helmet Headers:** Agregar headers de seguridad HTTP en producción.\n\n### 2. Rendimiento\n\n#### Alta Prioridad\n- **Paginación:** La query \`students\` debería usar paginación para escalabilidad.\n- **DataLoaders:** Ya implementados, pero verificar N+1 queries en GraphQL.\n\n#### Media Prioridad\n- **Caché de Apollo:** Optimizar políticas de caché en frontend para reducir llamadas al servidor.\n- **Compression:** Habilitar Brotli/gzip en nginx para assets estáticos.\n\n### 3. Calidad de Código\n\n#### Alta Prioridad\n- **Tests E2E:** Los tests de Playwright existen pero deben ejecutarse en CI/CD.\n- **Cobertura de Tests:** Aumentar cobertura en Domain y Application layers.\n\n#### Media Prioridad\n- **Error Handling Centralizado:** Crear interceptor global para manejo de errores GraphQL.\n- **Typing Estricto:** Generar tipos TypeScript desde el schema GraphQL automáticamente.\n\n### 4. DevOps\n\n#### Alta Prioridad\n- **Health Checks:** Mejorar endpoint \`/health\` para incluir dependencias externas.\n- **Secrets Management:** No hardcodear credenciales en manifiestos de k8s (usar Sealed Secrets o Vault).\n\n#### Media Prioridad\n- **Monitoring:** Agregar métricas con Prometheus y dashboards en Grafana.\n- **Logging Centralizado:** Configurar stack ELK o Loki para logs.\n\n---\n\n## Mejoras Funcionales Sugeridas\n\n### Corto Plazo (Sprint actual)\n1. **Confirmación de Cancelación:** Agregar diálogo de confirmación antes de desinscribir materia.\n2. **Notificaciones Push:** Informar a estudiantes cuando un compañero se inscribe en su clase.\n3. **Validación de Email:** Agregar validación de formato de email en frontend.\n\n### Mediano Plazo (2-4 sprints)\n1. **Horarios:** Agregar horarios a materias para evitar conflictos.\n2. **Waitlist:** Implementar lista de espera para materias muy demandadas.\n3. **Reportes:** Dashboard administrativo con métricas de inscripciones.\n\n### Largo Plazo (Roadmap)\n1. **Multi-tenant:** Soporte para múltiples instituciones.\n2. **Integración LMS:** Conectar con sistemas de gestión de aprendizaje.\n3. **App Mobile:** Versión móvil nativa con Flutter/React Native.\n\n---\n\n## Arquitectura\n\n### Fortalezas Actuales\n- **Clean Architecture:** Separación clara de capas (Domain, Application, Adapters).\n- **CQRS:** Comandos y queries bien separados con MediatR.\n- **GraphQL:** API flexible con HotChocolate.\n- **Angular Signals:** Estado reactivo moderno y eficiente.\n\n### Áreas de Mejora\n1. **Event Sourcing:** Considerar para auditoría completa de inscripciones.\n2. **SAGA Pattern:** Para operaciones distribuidas (si se escala a microservicios).\n3. **API Gateway:** Si se agregan más servicios, usar Kong o Traefik.\n\n---\n\n## Checklist de Producción\n\n### Pre-Deployment\n- [ ] Variables de entorno configuradas (no hardcoded)\n- [ ] Connection strings seguros\n- [ ] JWT secret rotado\n- [ ] CORS configurado para dominio de producción\n- [ ] SSL/TLS configurado\n- [ ] Rate limiting habilitado\n- [ ] Logging en nivel apropiado (Warning en prod)\n\n### Post-Deployment\n- [ ] Smoke tests ejecutados\n- [ ] Monitoreo activo\n- [ ] Alertas configuradas\n- [ ] Backup de base de datos verificado\n- [ ] Runbook de incidentes documentado\n\n---\n\n## Conclusión\n\nEl sistema está **listo para demostración** y cumple con todos los requisitos de la prueba técnica. Las recomendaciones anteriores son para un escenario de producción real y escalamiento futuro.\n\n**Puntos destacados:**\n- Arquitectura sólida y mantenible\n- Reglas de negocio correctamente implementadas en el dominio\n- UI moderna y responsiva\n- Buena cobertura de casos de uso\n\n**Próximos pasos inmediatos:**\n1. ~~Ejecutar pruebas de regresión tras las correcciones de defectos~~ ✅ Completado\n2. Preparar ambiente de demostración\n3. Documentar proceso de instalación para evaluadores\n\n---\n\n## Actualización 2026-01-08: CI/CD y Deployment\n\n### Implementaciones Realizadas\n\n#### 1. CI/CD con Gitea Actions\n- **Pipeline:** \`.gitea/workflows/deploy.yaml\`\n- **Características:**\n - Builds paralelos de API y Frontend\n - Caché de Docker layers (GitHub Actions cache)\n - Deploy automático en push a \`main\`\n - Health check post-deploy\n\n#### 2. Kubernetes (k3s) Deployment\n- **Namespace:** \`academia\`\n- **Servicios:** student-api, student-frontend, sqlserver\n- **Ingress:** \`academia.ingeniumcodex.com\` (Traefik)\n- **Seguridad:** NetworkPolicy (default-deny + allow rules)\n- **TLS:** Configurado con cert-manager\n\n#### 3. Optimizaciones de Deployment\n| Optimización | Beneficio |\n|--------------|-----------|\n| Builds paralelos | Reduce tiempo de CI ~40% |\n| Docker layer cache | Builds incrementales más rápidos |\n| Artifact upload/download | Evita rebuild en deploy |\n| Rolling updates | Zero-downtime deployments |\n\n### Pruebas de Regresión Completadas\n- **Total:** 14 pruebas ejecutadas\n- **Resultado:** 100% exitosas\n- **Defectos verificados:** DEF-001 y DEF-002 corregidos\n- **Reporte:** \`docs/qa/QA-REPORT-2026-01-08-REGRESSION-TESTS.md\`\n\n### URLs de Producción\n| Servicio | URL |\n|----------|-----|\n| Frontend | https://academia.ingeniumcodex.com |\n| GraphQL API | https://academia.ingeniumcodex.com/graphql |\n| Health Check | https://academia.ingeniumcodex.com/health |\n\n### Repositorio Git\n- **URL:** https://devops.ingeniumcodex.com/andresgarcia0313/academia.git\n- **CI/CD:** Auto-deploy en push a main\n`,
"Defectos QA": `# Reporte de Pruebas Manuales QA\n\n**Fecha:** 2026-01-08\n**Tester:** QA Team\n**Ambiente:** Desarrollo Local (localhost:4200 / localhost:5000)\n\n---\n\n## Resumen Ejecutivo\n\n| Categoría | Total | Pasaron | Fallaron | Corregidos |\n|-----------|-------|---------|----------|------------|\n| CRUD Estudiantes | 4 | 4 | 0 | 1 |\n| Inscripciones | 5 | 5 | 0 | 0 |\n| Compañeros | 2 | 2 | 0 | 0 |\n| **Total** | **11** | **11** | **0** | **1** |\n\n---\n\n## Capturas de Pantalla\n\n| # | Archivo | Descripción |\n|---|---------|-------------|\n| 01 | \`01-inicio-cargando.png\` | Página inicial cargando |\n| 02 | \`02-formulario-nuevo-estudiante.png\` | Formulario de nuevo estudiante |\n| 03 | \`03-formulario-lleno.png\` | Formulario con datos |\n| 04 | \`04-estudiante-creado.png\` | Estudiante creado exitosamente |\n| 05 | \`05-DEFECTO-editar-estudiante-no-encontrado.png\` | **DEFECTO: Error al editar** |\n| 06 | \`06-pagina-inscripcion.png\` | Página de inscripción |\n| 07 | \`07-inscripcion-exitosa-regla-profesor.png\` | Regla de profesor funcionando |\n| 08 | \`08-maximo-3-materias.png\` | Límite de materias visible |\n| 09 | \`09-creditos-maximos-9-9.png\` | 9/9 créditos alcanzados |\n| 10 | \`10-dos-estudiantes.png\` | Lista con dos estudiantes |\n| 11 | \`11-companeros-de-clase.png\` | Vista de compañeros |\n| 12 | \`12-confirmar-eliminacion.png\` | Diálogo de confirmación |\n| 13 | \`13-estudiante-eliminado.png\` | Estudiante eliminado |\n| 14 | \`14-CORREGIDO-editar-estudiante-funciona.png\` | **CORREGIDO: Editar funciona** |\n\n---\n\n## Defectos Encontrados\n\n### DEFECTO #1: Error "Estudiante no encontrado" al editar\n\n**ID:** DEF-001\n**Severidad:** Alta\n**Prioridad:** P1\n**Estado:** RESUELTO\n\n#### Descripcion\nAl hacer clic en el boton de editar (icono de lapiz) en la lista de estudiantes, aparece un snackbar con el mensaje "Estudiante no encontrado" en lugar de abrir el formulario de edicion.\n\n#### Pasos para Reproducir\n1. Ir a http://localhost:4200/students\n2. Crear un nuevo estudiante\n3. En la tabla, hacer clic en el boton de editar (icono de lapiz)\n4. **Resultado (antes):** Aparecia mensaje "Estudiante no encontrado"\n5. **Resultado (despues del fix):** El formulario de edicion abre correctamente\n\n#### Capturas de Pantalla\n| Estado | Captura |\n|--------|---------|\n| Antes | ![Defecto](../.playwright-mcp/05-DEFECTO-editar-estudiante-no-encontrado.png) |\n| Despues | ![Corregido](../.playwright-mcp/14-CORREGIDO-editar-estudiante-funciona.png) |\n\n#### Causa Raiz Identificada\nSe encontraron **DOS problemas** combinados:\n\n1. **Problema de navegacion:** El boton de editar usaba \`<button [routerLink]>\` pero en Angular el \`routerLink\` funciona mejor con elementos \`<a>\`.\n\n2. **Problema de timing con signals:** El componente \`StudentFormComponent\` usaba \`ngOnInit\` para leer el parametro de ruta \`id\` via \`input()\` signal, pero el valor no estaba disponible en ese momento del ciclo de vida.\n\n#### Archivos Modificados\n- \`student-list.component.ts\`: Cambio \`<button>\` por \`<a>\` para el boton de editar\n- \`student-form.component.ts\`: Cambio \`ngOnInit\` por \`effect()\` para reaccionar cuando el input signal este disponible\n\n---\n\n## Analisis de Soluciones - DEFECTO #1\n\n### Soluciones Propuestas\n\n| Solucion | Descripcion | Ventajas | Desventajas |\n|----------|-------------|----------|-------------|\n| A | Verificar navegacion y parametros de ruta | Simple si el problema es routing | No resuelve si es backend |\n| B | Revisar servicio de estudiantes | Identifica problemas en servicios | Requiere debugging profundo |\n| C | Agregar logs de diagnostico | Ayuda a identificar donde falla | Es temporal |\n| D | Usar modal en lugar de navegacion | Evita problemas de nav, mejor UX | Cambio arquitectonico grande |\n\n### SOLUCION IMPLEMENTADA\n\nSe implemento una **combinacion de A + investigacion profunda** que revelo dos problemas:\n\n#### Fix 1: Cambiar \`<button>\` por \`<a>\` en student-list.component.ts\n\n\`\`\`typescript\n// ANTES (no funcionaba)\n<button [routerLink]="['/students', student.id, 'edit']">\n <mat-icon>edit</mat-icon>\n</button>\n\n// DESPUES (funciona)\n<a [routerLink]="['/students', student.id, 'edit']">\n <mat-icon>edit</mat-icon>\n</a>\n\`\`\`\n\n#### Fix 2: Usar \`effect()\` en lugar de \`ngOnInit\` en student-form.component.ts\n\n\`\`\`typescript\n// ANTES (no funcionaba - el input signal no estaba listo en ngOnInit)\nngOnInit(): void {\n const studentId = this.id();\n if (studentId) {\n this.loadStudent(parseInt(studentId, 10));\n }\n}\n\n// DESPUES (funciona - effect reacciona cuando el signal tiene valor)\nconstructor() {\n effect(() => {\n const studentId = this.id();\n if (studentId && !this.isEditing()) {\n this.isEditing.set(true);\n this.loadStudent(parseInt(studentId, 10));\n }\n });\n}\n\`\`\`\n\n### Validacion del Fix\n- El formulario de edicion carga correctamente con los datos del estudiante\n- La actualizacion de datos funciona sin errores\n- No aparece mas el snackbar "Estudiante no encontrado"\n\n---\n\n## Funcionalidades Verificadas (OK)\n\n### Crear Estudiante\n- Formulario con validación de campos requeridos\n- Botón deshabilitado hasta completar campos\n- Mensaje de éxito al crear\n- Redirección a lista de estudiantes\n\n### Inscripción en Materias\n- Lista de 10 materias con 5 profesores\n- Regla de negocio: No repetir profesor (FUNCIONA)\n- Regla de negocio: Máximo 3 materias (FUNCIONA)\n- Indicadores visuales de disponibilidad\n- Mensajes claros de restricciones\n\n### Ver Compañeros\n- Lista de materias inscritas\n- Nombres de compañeros visibles\n- Mensaje cuando no hay compañeros\n\n### Eliminar Estudiante\n- Diálogo de confirmación\n- Mensaje de éxito al eliminar\n- Actualización de lista\n\n---\n\n## Recomendaciones\n\n### Mejoras de UX\n1. Agregar tooltips a los botones de acción\n2. Mostrar spinner durante operaciones async\n3. Agregar confirmación antes de cancelar inscripción\n\n### Mejoras Técnicas\n1. Implementar caché de estudiantes para evitar consultas repetidas\n2. Agregar paginación a la lista de estudiantes\n3. Implementar búsqueda/filtro de estudiantes\n\n### Mejoras de Calidad\n1. Agregar tests E2E con Playwright\n2. Implementar monitoreo de errores (Sentry)\n3. Agregar métricas de rendimiento\n\n---\n\n*Reporte generado automáticamente durante pruebas manuales con Playwright MCP*\n`,
},
};
// ═══════════════════════════════════════════════════════════
// APP LOGIC
// ═══════════════════════════════════════════════════════════
marked.setOptions({ gfm: true, breaks: true });
// Build navigation
function buildNav() {
const nav = document.getElementById('nav');
let html = '';
// Add diagrams section first
html += `
<div class="nav-group open" data-group="Diagramas">
<div class="nav-group-title" onclick="toggleGroup(this.parentElement)">
<svg class="chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
<path d="M9 18l6-6-6-6"/>
</svg>
Diagramas UML
</div>
<div class="nav-list">
<div class="nav-item" data-key="diagrams:all" onclick="showDiagrams()">Ver todos los diagramas</div>
</div>
</div>
`;
// Add document sections
for (const [section, items] of Object.entries(docs)) {
if (typeof items !== 'object') continue;
html += `
<div class="nav-group" data-group="${section}">
<div class="nav-group-title" onclick="toggleGroup(this.parentElement)">
<svg class="chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
<path d="M9 18l6-6-6-6"/>
</svg>
${section}
</div>
<div class="nav-list">
`;
for (const name of Object.keys(items)) {
html += `<div class="nav-item" data-key="${section}|${name}" onclick="loadDoc('${section}', '${name}', this)">${name}</div>`;
}
html += `</div></div>`;
}
nav.innerHTML = html;
}
function toggleGroup(el) {
el.classList.toggle('open');
}
// Show all diagrams in a gallery
function showDiagrams() {
const content = document.getElementById('content');
document.querySelectorAll('.nav-item').forEach(el => el.classList.remove('active'));
document.querySelector('[data-key="diagrams:all"]')?.classList.add('active');
let html = `
<h1>Diagramas de Arquitectura</h1>
<p>Diagramas UML que documentan la arquitectura y diseño del sistema.</p>
<div class="diagrams-grid">
`;
for (const [key, src] of Object.entries(diagrams)) {
if (!src) continue;
const name = diagramNames[key] || key;
html += `
<div class="diagram-card" onclick="showSingleDiagram('${key}')">
<img src="${src}" alt="${name}" loading="lazy">
<div class="diagram-title">${name}</div>
</div>
`;
}
html += '</div>';
content.innerHTML = html;
window.scrollTo(0, 0);
window.location.hash = 'diagrams';
}
// Show single diagram in lightbox (full size)
function showSingleDiagram(key) {
openLightbox(key);
}
// Load document
function loadDoc(section, name, navItem) {
const content = document.getElementById('content');
document.querySelectorAll('.nav-item').forEach(el => el.classList.remove('active'));
navItem?.classList.add('active');
try {
let markdown = docs[section]?.[name];
if (!markdown) throw new Error('Documento no encontrado');
// Replace SVG links with embedded images
markdown = markdown.replace(
/\[([^\]]+)\]\(docs\/architecture\/diagrams\/(\d+-[^)]+\.svg)\)/g,
(match, text, file) => {
const key = file.replace('.svg', '');
if (diagrams[key]) {
return `![${text}](${diagrams[key]})`;
}
return match;
}
);
content.innerHTML = marked.parse(markdown);
window.scrollTo(0, 0);
window.location.hash = encodeURIComponent(`${section}|${name}`);
} catch (error) {
content.innerHTML = `<div class="welcome"><h1>Error</h1><p>${error.message}</p></div>`;
}
}
// Search
document.getElementById('search').addEventListener('input', (e) => {
const query = e.target.value.toLowerCase();
document.querySelectorAll('.nav-item').forEach(item => {
const matches = item.textContent.toLowerCase().includes(query);
item.classList.toggle('hidden', !matches && query);
});
document.querySelectorAll('.nav-group').forEach(group => {
const hasVisible = group.querySelector('.nav-item:not(.hidden)');
group.classList.toggle('hidden', !hasVisible && query);
if (hasVisible && query) group.classList.add('open');
});
});
// Init
buildNav();
// Load from hash
if (window.location.hash) {
const hash = decodeURIComponent(window.location.hash.slice(1));
if (hash === 'diagrams') {
showDiagrams();
} else {
const [section, name] = hash.split('|');
if (docs[section]?.[name]) {
const navItem = document.querySelector(`[data-key="${hash}"]`);
navItem?.closest('.nav-group')?.classList.add('open');
loadDoc(section, name, navItem);
}
}
}
</script>
</body>
</html>