{"id":55459,"date":"2026-04-02T11:32:04","date_gmt":"2026-04-02T09:32:04","guid":{"rendered":"https:\/\/www.vaia.eu\/?page_id=55459"},"modified":"2026-05-15T08:50:36","modified_gmt":"2026-05-15T06:50:36","slug":"giro-italia","status":"publish","type":"page","link":"https:\/\/www.vaia.eu\/en\/giro-italia\/","title":{"rendered":"Giro Italia"},"content":{"rendered":"\n<div class=\"wp-block-columns alignfull is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>VAIA \u00d7 Giro d&#8217;Italia \u2013 Planting 2026<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&amp;family=DM+Sans:wght@300;400;500&amp;display=swap\" rel=\"stylesheet\">\n<style>\n  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n  :root {\n    --green-deep: #1a3a2a;\n    --green-mid: #2d5a3d;\n    --green-light: #4a8c5c;\n    --green-pale: #e8f2eb;\n    --gold: #c9a84c;\n    --gold-light: #e8d08a;\n    --cream: #f7f4ee;\n    --dark: #111a14;\n    --text: #2a3628;\n    --text-muted: #6b7c6e;\n    --white: #ffffff;\n    --font-display: 'Playfair Display', Georgia, serif;\n    --font-body: 'DM Sans', system-ui, sans-serif;\n    --radius: 4px;\n    --radius-lg: 12px;\n\n    \/* \u2500\u2500 MODIFICA 2: variabili immagine hero \u2500\u2500 *\/\n    --hero-bg-desktop: url('https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/VAIA-Giro-Italia.png');\n    --hero-bg-mobile:  url('https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/VAIA-Giro-Italia.png');\n  }\n\n  html { scroll-behavior: smooth; }\n\n  body {\n    font-family: var(--font-body);\n    color: var(--text);\n    background: var(--cream);\n    line-height: 1.6;\n    font-size: 16px;\n  }\n\n  \/* \u2500\u2500 HERO \u2500\u2500 *\/\n  .hero {\n    position: relative;\n    min-height: 92vh;\n    display: flex;\n    align-items: flex-end;\n    overflow: hidden;\n    background: var(--green-deep);\n  }\n\n  \/* MODIFICA 2: sfondo hero usa variabile desktop di default *\/\n  .hero-bg {\n    position: absolute;\n    inset: 0;\n    background:\n      linear-gradient(to bottom, rgba(10,25,16,0.35) 0%, rgba(10,25,16,0.75) 100%),\n      var(--hero-bg-desktop) center 80%\/cover no-repeat;\n  }\n\n  \/* MODIFICA 2: su mobile usa la variabile mobile *\/\n  @media (max-width: 700px) {\n    .hero-bg {\n      background:\n        linear-gradient(to bottom, rgba(10,25,16,0.35) 0%, rgba(10,25,16,0.75) 100%),\n        var(--hero-bg-mobile) center 80%\/cover no-repeat;\n    }\n  }\n\n  .hero-badge {\n    position: absolute;\n    top: 2rem;\n    left: 2.5rem;\n    display: flex;\n    align-items: center;\n    gap: 1.5rem;\n  }\n\n  .hero-badge-pill {\n    background: rgba(255,255,255,0.12);\n    border: 1px solid rgba(255,255,255,0.25);\n    backdrop-filter: blur(8px);\n    color: #fff;\n    font-size: 11px;\n    font-weight: 500;\n    letter-spacing: 0.12em;\n    padding: 6px 14px;\n    border-radius: 99px;\n  }\n\n  .hero-badge-pill.gold {\n    background: var(--gold);\n    border-color: var(--gold);\n    color: var(--green-deep);\n  }\n\n  .hero-content {\n    position: relative;\n    z-index: 1;\n    padding: 4rem 2.5rem;\n    max-width: 760px;\n  }\n\n  .hero-eyebrow {\n    font-family: var(--font-body);\n    font-size: 12px;\n    font-weight: 500;\n    letter-spacing: 0.18em;\n    color: var(--gold-light);\n    margin-bottom: 1.25rem;\n  }\n\n  .hero-title {\n    font-family: var(--font-display);\n    font-size: clamp(2.8rem, 6vw, 5rem);\n    font-weight: 700;\n    color: var(--white);\n    line-height: 1.08;\n    margin-bottom: 1.5rem;\n  }\n\n  .hero-title em {\n    font-style: italic;\n    color: var(--gold-light);\n  }\n\n  .hero-subtitle {\n    font-size: 1.1rem;\n    font-weight: 300;\n    color: rgba(255,255,255,0.82);\n    max-width: 520px;\n    line-height: 1.7;\n    margin-bottom: 2.5rem;\n  }\n\n  .hero-partners {\n    display: flex;\n    align-items: center;\n    gap: 1rem;\n    flex-wrap: wrap;\n  }\n\n  .partner-tag {\n    font-size: 11px;\n    font-weight: 500;\n    letter-spacing: 0.1em;\n    color: rgba(255,255,255,0.5);\n    border: 1px solid rgba(255,255,255,0.2);\n    padding: 5px 12px;\n    border-radius: 99px;\n  }\n\n  .scroll-hint {\n    position: absolute;\n    bottom: 2rem;\n    right: 2.5rem;\n    z-index: 1;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 8px;\n    color: rgba(255,255,255,0.4);\n    font-size: 11px;\n    letter-spacing: 0.1em;\n  }\n\n  .scroll-line {\n    width: 1px;\n    height: 48px;\n    background: rgba(255,255,255,0.25);\n    animation: scrollPulse 2s ease-in-out infinite;\n  }\n\n  @keyframes scrollPulse {\n    0%, 100% { opacity: 0.25; transform: scaleY(1); }\n    50% { opacity: 0.6; transform: scaleY(1.1); }\n  }\n\n  \/* \u2500\u2500 PARTNER LOGOS \u2500\u2500 *\/\n  .partner-logos {\n    position: relative;\n    overflow: hidden;\n    border-bottom: 1px solid rgba(200, 80, 120, 0.12);\n    padding: 2rem 2.5rem;\n    background: var(--white);\n  }\n\n  .partner-logos-bg {\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(135deg, #f9e8ef 0%, #fce8f0 100%);\n    transform-origin: right center;\n    transform: scaleX(0);\n    animation: paintLogoBg 5.1s linear forwards;\n  }\n\n  @keyframes paintLogoBg {\n    0%   { transform: scaleX(0); }\n    100% { transform: scaleX(1); }\n  }\n\n  .partner-logos-cyclist {\n    position: relative;\n    height: 36px;\n    margin-bottom: 1rem;\n  }\n\n  .partner-logos-cyclist-icon {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    font-size: 24px;\n    line-height: 1;\n  }\n\n  @keyframes cyclistLoop {\n    0%   { right: -40px; }\n    100% { right: calc(100% + 20px); }\n  }\n\n  .c1 {\n    animation: cyclistLoop 5.1s linear infinite;\n    animation-delay: 0s;\n  }\n\n  .c2 {\n    animation: cyclistLoop 5.1s linear infinite;\n    animation-delay: -1.7s;\n    opacity: 0.8;\n    top: 30%;\n  }\n\n  .c3 {\n    animation: cyclistLoop 5.1s linear infinite;\n    animation-delay: -3.4s;\n    font-size: 20px;\n    top: 70%;\n  }\n\n  .partner-logos-inner {\n    max-width: 1100px;\n    margin: 0 auto;\n    display: flex;\n    justify-content: center;\n    gap: 3rem;\n    align-items: center;\n    flex-wrap: nowrap;\n  }\n\n  .partner-logos-label {\n    font-size: 10px;\n    font-weight: 500;\n    letter-spacing: 0.18em;\n    text-transform: uppercase;\n    color: var(--text-muted);\n    white-space: nowrap;\n    flex-shrink: 0;\n  }\n\n  .partner-logos-divider {\n    width: 1px;\n    height: 32px;\n    background: rgba(42,54,40,0.12);\n    flex-shrink: 0;\n  }\n\n  .partner-logos-list {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 3rem;\n    flex: 1;\n    flex-wrap: nowrap;\n  }\n\n  .partner-logo-item {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n  }\n\n  .partner-logo-item img {\n    height: 7vh;\n    width: auto;\n    object-fit: cover;\n    filter: grayscale(30%);\n    transition: filter 0.2s;\n  }\n\n  .partner-logo-item img:hover {\n    filter: grayscale(0%);\n  }\n\n  @media (max-width: 700px) {\n    .partner-logos { padding: 1.5rem 1.5rem; }\n    .partner-logos-inner { gap: 0; justify-content: space-between; }\n    .partner-logos-label, .partner-logos-divider { display: none; }\n    .partner-logos-list { gap: 1.5rem; width: 100%; }\n    .partner-logo-item img { height: 10vh; }\n  }\n\n  \/* \u2500\u2500 INTRO \u2500\u2500 *\/\n  .intro {\n    padding: 6rem 2.5rem;\n    max-width: 1100px;\n    margin: 0 auto;\n  }\n\n  .section-label {\n    font-size: 11px;\n    font-weight: 500;\n    letter-spacing: 0.2em;\n    text-transform: uppercase;\n    color: var(--green-light);\n    margin-bottom: 1.25rem;\n    display: flex;\n    align-items: center;\n    gap: 10px;\n  }\n\n  .section-label::after {\n    content: '';\n    display: block;\n    width: 32px;\n    height: 1px;\n    background: var(--green-light);\n  }\n\n  .intro-title {\n    font-family: var(--font-display);\n    font-size: clamp(2rem, 4vw, 3rem);\n    font-weight: 700;\n    color: var(--green-deep);\n    line-height: 1.2;\n    margin-bottom: 1.75rem;\n  }\n\n  .intro-title em {\n    font-style: italic;\n    color: var(--green-light);\n  }\n\n  .intro-cta-block {\n    margin-top: 2.5rem;\n  }\n\n  .intro-cta-block-inner {\n    display: inline-block;\n  }\n\n  .intro-cta-title {\n    font-family: var(--font-body);\n    font-size: clamp(1.5rem, 2.5vw, 1.8rem);\n    font-weight: 700;\n    color: var(--green-deep);\n    line-height: 1.2;\n    margin-bottom: 0.75rem;\n  }\n\n  .intro-cta-title em {\n    font-style: normal;\n    color: var(--green-light);\n  }\n\n  .intro-cta-btn {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    background: var(--green-deep);\n    color: var(--white);\n    border: none;\n    border-radius: var(--radius);\n    padding: 15px 30px;\n    font-family: var(--font-body);\n    font-size: 15px;\n    font-weight: 500;\n    letter-spacing: 0.04em;\n    cursor: pointer;\n    text-decoration: none;\n    transition: background 0.2s, transform 0.15s;\n  }\n\n  .intro-cta-btn:hover {\n    background: var(--green-mid);\n    transform: translateY(-2px);\n  }\n\n  @media (min-width: 701px) {\n    .intro-cta-block-inner {\n      display: inline-flex;\n      flex-direction: column;\n      align-items: flex-start;\n      gap: 1.25rem;\n      background: var(--green-deep);\n      border-radius: var(--radius-lg);\n      padding: 2rem 2.5rem;\n    }\n\n    .intro-cta-title {\n      font-size: 1.2rem;\n      color: var(--white);\n      margin-bottom: 0;\n    }\n\n    .intro-cta-title em {\n      color: var(--gold-light);\n    }\n\n    .intro-cta-btn {\n      background: var(--gold);\n      color: var(--green-deep);\n      font-weight: 600;\n    }\n\n    .intro-cta-btn:hover {\n      background: var(--gold-light);\n    }\n  }\n\n  .intro-body {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 2rem;\n    color: var(--text-muted);\n    line-height: 1.8;\n  }\n\n  .intro-body p {\n    font-size: 1rem;\n    color: var(--text-muted);\n    line-height: 1.8;\n  }\n\n  .intro-body b, .intro-body strong {\n    font-weight: 500;\n    color: var(--text);\n  }\n\n  \/* \u2500\u2500 EVENTI \u2500\u2500 *\/\n  .eventi {\n    padding: 5rem 0 6rem;\n    background: var(--green-pale);\n  }\n\n  .eventi-header {\n    padding: 0 2.5rem;\n    max-width: 1100px;\n    margin: 0 auto 3.5rem;\n  }\n\n  .eventi-title {\n    font-family: var(--font-display);\n    font-size: clamp(1.8rem, 3.5vw, 2.6rem);\n    font-weight: 700;\n    color: var(--green-deep);\n    line-height: 1.2;\n    margin-bottom: 0.75rem;\n  }\n\n  .eventi-sub {\n    font-size: 1rem;\n    color: var(--text-muted);\n    max-width: 560px;\n  }\n\n  .eventi-carousel-wrap {\n    position: relative;\n    overflow: hidden;\n  }\n\n  .eventi-carousel-track {\n    display: flex;\n    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);\n    will-change: transform;\n  }\n\n  .evento-slide {\n    min-width: 100%;\n    width: 100%;\n    flex-shrink: 0;\n    padding: 0 2.5rem;\n  }\n\n  .evento-card {\n    background: var(--white);\n    border: 1px solid rgba(42,54,40,0.1);\n    border-radius: var(--radius-lg);\n    overflow: hidden;\n    max-width: 1100px;\n    margin: 0 auto;\n  }\n\n  .evento-card-header {\n    background: var(--green-deep);\n    color: var(--white);\n    padding: 2rem 2.5rem;\n    display: flex;\n    align-items: flex-start;\n    justify-content: space-between;\n    gap: 2rem;\n    flex-wrap: wrap;\n    position: relative;\n  }\n\n  .evento-num {\n    font-family: var(--font-display);\n    font-size: 4rem;\n    font-weight: 700;\n    color: rgba(255,255,255,0.08);\n    line-height: 1;\n    position: absolute;\n    right: 2.5rem;\n    top: 1.5rem;\n    pointer-events: none;\n  }\n\n  .evento-tag {\n    font-size: 10px;\n    font-weight: 500;\n    letter-spacing: 0.15em;\n    text-transform: uppercase;\n    color: var(--gold-light);\n    margin-bottom: 0.5rem;\n  }\n\n  .evento-name {\n    font-family: var(--font-display);\n    font-size: 1.8rem;\n    font-weight: 700;\n    color: var(--white);\n    line-height: 1.15;\n    margin-bottom: 0.4rem;\n  }\n\n  .evento-tappa {\n    font-size: 0.85rem;\n    color: rgba(255,255,255,0.5);\n    font-weight: 300;\n  }\n\n  .evento-tappa strong {\n    color: rgba(255,255,255,0.75);\n    font-weight: 500;\n  }\n\n  .evento-card-body {\n    padding: 2rem 2.5rem;\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 2rem;\n    align-items: start;\n  }\n\n  .gallery-slider {\n    position: relative;\n    border-radius: var(--radius);\n    overflow: hidden;\n    border: 1px solid rgba(42,54,40,0.1);\n    height: 420px;\n    background: var(--green-pale);\n  }\n\n  .gallery-track {\n    display: flex;\n    height: 100%;\n    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);\n    will-change: transform;\n  }\n\n  .gallery-slide {\n    min-width: 100%;\n    width: 100%;\n    height: 100%;\n    flex-shrink: 0;\n    overflow: hidden;\n  }\n\n  .gallery-slide img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    display: block;\n  }\n\n  .gallery-btn {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    background: rgba(255,255,255,0.18);\n    border: 1px solid rgba(255,255,255,0.35);\n    backdrop-filter: blur(6px);\n    color: #fff;\n    width: 36px;\n    height: 36px;\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    cursor: pointer;\n    font-size: 14px;\n    transition: background 0.2s, opacity 0.2s;\n    z-index: 10;\n    opacity: 0.55;\n  }\n\n  .gallery-btn:hover { background: rgba(255,255,255,0.35); opacity: 1; }\n  .gallery-btn.prev { left: 10px; }\n  .gallery-btn.next { right: 10px; }\n\n  .gallery-dots {\n    position: absolute;\n    bottom: 10px;\n    left: 50%;\n    transform: translateX(-50%);\n    display: flex;\n    gap: 6px;\n    z-index: 10;\n  }\n\n  .gallery-dot {\n    width: 6px;\n    height: 6px;\n    border-radius: 50%;\n    background: rgba(255,255,255,0.45);\n    cursor: pointer;\n    transition: background 0.2s, transform 0.2s;\n  }\n\n  .gallery-dot.active {\n    background: #fff;\n    transform: scale(1.3);\n  }\n\n  .evento-info {\n    display: flex;\n    flex-direction: column;\n    gap: 1.25rem;\n  }\n\n  .evento-detail { display: flex; flex-direction: column; gap: 3px; }\n\n  .evento-detail-label {\n    font-size: 10px;\n    font-weight: 500;\n    letter-spacing: 0.15em;\n    text-transform: uppercase;\n    color: var(--green-light);\n  }\n\n  .evento-detail-value {\n    font-size: 1rem;\n    font-weight: 400;\n    color: var(--text);\n  }\n\n  .evento-desc {\n    font-size: 0.95rem;\n    color: var(--text-muted);\n    line-height: 1.7;\n    padding-top: 0.5rem;\n    border-top: 1px solid rgba(42,54,40,0.08);\n  }\n\n  .evento-cta-block {\n    margin-top: 0.5rem;\n    padding: 1.25rem;\n    background: var(--green-pale);\n    border-radius: var(--radius);\n    border: 1px solid rgba(74,140,92,0.18);\n  }\n\n  .evento-cta-block p.cta-label {\n    font-size: 11px;\n    font-weight: 500;\n    letter-spacing: 0.12em;\n    text-transform: uppercase;\n    color: var(--green-light);\n    margin-bottom: 0.3rem;\n  }\n\n  .evento-cta-block p.cta-body {\n    font-size: 0.85rem;\n    color: var(--text-muted);\n    line-height: 1.6;\n    margin-bottom: 0.9rem;\n  }\n\n  .cta-btn-small {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    background: var(--green-deep);\n    color: var(--white);\n    border: none;\n    border-radius: var(--radius);\n    padding: 10px 20px;\n    font-family: var(--font-body);\n    font-size: 13px;\n    font-weight: 500;\n    letter-spacing: 0.04em;\n    cursor: pointer;\n    text-decoration: none;\n    transition: background 0.2s, transform 0.15s;\n  }\n\n  .cta-btn-small:hover {\n    background: var(--green-mid);\n    transform: translateY(-1px);\n  }\n\n  .form-section {\n    padding: 1.5rem 2.5rem 2.5rem;\n    border-top: 1px solid rgba(42,54,40,0.07);\n    background: var(--green-pale);\n  }\n\n  .reveal-btn {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    background: var(--green-deep);\n    color: var(--white);\n    border: none;\n    border-radius: var(--radius);\n    padding: 14px 28px;\n    font-family: var(--font-body);\n    font-size: 14px;\n    font-weight: 500;\n    letter-spacing: 0.04em;\n    cursor: pointer;\n    transition: background 0.2s, transform 0.15s;\n  }\n\n  .reveal-btn:hover { background: var(--green-mid); transform: translateY(-1px); }\n  .reveal-btn:active { transform: scale(0.98); }\n  .reveal-btn .arrow { transition: transform 0.3s ease; display: inline-block; }\n  .reveal-btn.open .arrow { transform: rotate(180deg); }\n\n  .form-wrapper {\n    max-height: 0;\n    overflow: hidden;\n    transition: max-height 0.5s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s ease;\n    opacity: 0;\n  }\n\n  .form-wrapper.open { max-height: 600px; opacity: 1; }\n\n  .form-inner { padding-top: 1.75rem; }\n\n  .form-inner iframe {\n    width: 100%;\n    height: 420px;\n    border: none;\n    display: block;\n    border-radius: var(--radius);\n    border: 1px solid rgba(42,54,40,0.1);\n  }\n\n  .eventi-nav {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 1.5rem;\n    padding: 2rem 2.5rem 0;\n    max-width: 1100px;\n    margin: 0 auto;\n  }\n\n  .eventi-nav-btn {\n    width: 44px;\n    height: 44px;\n    border-radius: 50%;\n    background: var(--white);\n    border: 1px solid rgba(42,54,40,0.15);\n    color: var(--green-deep);\n    font-size: 18px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    cursor: pointer;\n    transition: background 0.2s, border-color 0.2s, transform 0.15s;\n    flex-shrink: 0;\n  }\n\n  .eventi-nav-btn:hover {\n    background: var(--green-deep);\n    color: var(--white);\n    border-color: var(--green-deep);\n    transform: scale(1.05);\n  }\n\n  .eventi-nav-pills {\n    display: flex;\n    gap: 0.5rem;\n  }\n\n  .eventi-nav-pill {\n    padding: 6px 16px;\n    border-radius: 99px;\n    border: 1px solid rgba(42,54,40,0.2);\n    background: transparent;\n    color: var(--text-muted);\n    font-family: var(--font-body);\n    font-size: 12px;\n    font-weight: 500;\n    letter-spacing: 0.08em;\n    cursor: pointer;\n    transition: all 0.2s;\n    white-space: nowrap;\n  }\n\n  .eventi-nav-pill.active {\n    background: var(--green-deep);\n    border-color: var(--green-deep);\n    color: var(--white);\n  }\n\n  .eventi-nav-pill:hover:not(.active) {\n    border-color: var(--green-light);\n    color: var(--green-deep);\n  }\n\n  \/* \u2500\u2500 BICISCUOLA \u2500\u2500 *\/\n  .biciscuola {\n    padding: 6rem 2.5rem;\n    max-width: 1100px;\n    margin: 0 auto;\n  }\n\n  .biciscuola-inner {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 4rem;\n    align-items: center;\n  }\n\n  .biciscuola-title {\n    font-family: var(--font-body);\n    font-size: clamp(1.6rem, 3vw, 2.2rem);\n    font-weight: 700;\n    color: var(--green-deep);\n    line-height: 1.2;\n    margin-bottom: 1.5rem;\n  }\n\n  .biciscuola-body {\n    display: flex;\n    flex-direction: column;\n    gap: 1rem;\n  }\n\n  .biciscuola-body p {\n    font-size: 1rem;\n    color: var(--text-muted);\n    line-height: 1.8;\n  }\n\n  .biciscuola-visual {\n    background: var(--green-pale);\n    border-radius: var(--radius-lg);\n    border: 1px solid rgba(74,140,92,0.18);\n    padding: 3rem 2rem;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 1.5rem;\n    text-align: center;\n  }\n\n  .biciscuola-highlight {\n    font-family: var(--font-display);\n    font-size: 1.1rem;\n    font-weight: 700;\n    color: var(--green-deep);\n    line-height: 1.35;\n  }\n\n  .biciscuola-highlight em {\n    color: var(--green-light);\n    font-style: italic;\n  }\n\n  .biciscuola-prize {\n    font-size: 0.9rem;\n    color: var(--text-muted);\n    line-height: 1.6;\n    border-top: 1px solid rgba(74,140,92,0.18);\n    padding-top: 1.25rem;\n    width: 100%;\n  }\n\n  .biciscuola-prize strong {\n    color: var(--green-deep);\n    font-weight: 600;\n  }\n\n  \/* \u2500\u2500 SEZIONE IMPATTO FINALE \u2500\u2500 *\/\n  .impatto-section {\n    background: var(--green-deep);\n    padding: 6rem 2.5rem;\n    position: relative;\n    overflow: hidden;\n  }\n\n  .impatto-section::before {\n    content: '';\n    position: absolute;\n    inset: 0;\n    background: radial-gradient(ellipse at 70% 50%, rgba(74,140,92,0.18) 0%, transparent 65%);\n    pointer-events: none;\n  }\n\n  .impatto-inner {\n    max-width: 1100px;\n    margin: 0 auto;\n    position: relative;\n    z-index: 1;\n  }\n\n  .impatto-label {\n    font-size: 11px;\n    font-weight: 500;\n    letter-spacing: 0.2em;\n    text-transform: uppercase;\n    color: var(--gold-light);\n    margin-bottom: 1rem;\n    display: flex;\n    align-items: center;\n    gap: 10px;\n  }\n\n  .impatto-label::after {\n    content: '';\n    display: block;\n    width: 32px;\n    height: 1px;\n    background: var(--gold-light);\n    opacity: 0.5;\n  }\n\n  .impatto-title {\n    font-family: var(--font-display);\n    font-size: clamp(2rem, 4vw, 3rem);\n    font-weight: 700;\n    color: var(--white);\n    line-height: 1.15;\n    margin-bottom: 3.5rem;\n    max-width: 600px;\n  }\n\n  .impatto-stats {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 2rem;\n    margin-bottom: 4rem;\n  }\n\n  .impatto-stat {\n    border-top: 1px solid rgba(255,255,255,0.12);\n    padding-top: 1.5rem;\n  }\n\n  .impatto-stat-num {\n    font-family: var(--font-display);\n    font-size: clamp(2.8rem, 5vw, 4.5rem);\n    font-weight: 700;\n    color: var(--gold-light);\n    line-height: 1;\n    display: block;\n    margin-bottom: 0.5rem;\n  }\n\n  .impatto-stat-label {\n    font-size: 1rem;\n    color: rgba(255,255,255,0.65);\n    font-weight: 300;\n    line-height: 1.4;\n  }\n\n  .trust-badges {\n    display: flex;\n    gap: 1rem;\n    flex-wrap: wrap;\n    margin-bottom: 3rem;\n  }\n\n  .trust-badge {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    background: rgba(255,255,255,0.06);\n    border: 1px solid rgba(255,255,255,0.12);\n    border-radius: 99px;\n    padding: 10px 18px;\n    color: rgba(255,255,255,0.75);\n    font-size: 13px;\n    font-weight: 400;\n    backdrop-filter: blur(4px);\n  }\n\n  .trust-badge .badge-icon {\n    font-size: 16px;\n    flex-shrink: 0;\n  }\n\n  .final-cta-box {\n    background: rgba(255,255,255,0.05);\n    border: 1px solid rgba(255,255,255,0.14);\n    border-radius: 16px;\n    padding: 2.5rem;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 2rem;\n    flex-wrap: wrap;\n    backdrop-filter: blur(8px);\n  }\n\n  .final-cta-eyebrow {\n    font-size: 11px;\n    font-weight: 500;\n    letter-spacing: 0.15em;\n    text-transform: uppercase;\n    color: var(--gold-light);\n    margin-bottom: 0.6rem;\n  }\n\n  .final-cta-headline {\n    font-family: var(--font-display);\n    font-size: clamp(1.3rem, 2.5vw, 1.8rem);\n    font-weight: 700;\n    color: var(--white);\n    line-height: 1.2;\n    margin-bottom: 0.75rem;\n  }\n\n  .final-cta-body {\n    font-size: 0.95rem;\n    color: rgba(255,255,255,0.6);\n    line-height: 1.65;\n    max-width: 520px;\n  }\n\n  .final-cta-actions {\n    display: flex;\n    flex-direction: column;\n    align-items: flex-start;\n    gap: 1rem;\n    flex-shrink: 0;\n  }\n\n  .cta-btn-primary {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    background: var(--gold);\n    color: var(--green-deep);\n    border: none;\n    border-radius: var(--radius);\n    padding: 16px 32px;\n    font-family: var(--font-body);\n    font-size: 15px;\n    font-weight: 600;\n    letter-spacing: 0.03em;\n    cursor: pointer;\n    text-decoration: none;\n    transition: background 0.2s, transform 0.15s;\n    white-space: nowrap;\n  }\n\n  .cta-btn-primary:hover {\n    background: var(--gold-light);\n    transform: translateY(-2px);\n  }\n\n  \/* \u2500\u2500 FOOTER \u2500\u2500 *\/\n  .footer {\n    background: var(--dark);\n    color: rgba(255,255,255,0.45);\n    text-align: center;\n    padding: 2.5rem;\n    font-size: 13px;\n  }\n\n  .footer strong { color: rgba(255,255,255,0.7); }\n\n  \/* \u2500\u2500 RESPONSIVE \u2500\u2500 *\/\n  @media (max-width: 700px) {\n    .intro-body { grid-template-columns: 1fr; }\n    .evento-card-body { grid-template-columns: 1fr; }\n    .gallery-slider { height: 240px; }\n    .hero-badge { flex-wrap: wrap; gap: 8px; }\n    .impatto-stats { grid-template-columns: 1fr; gap: 1.5rem; }\n    .final-cta-box { flex-direction: column; }\n    .trust-badges { gap: 0.75rem; }\n    .biciscuola-inner { grid-template-columns: 1fr; gap: 2rem; }\n    .evento-slide { padding: 0 1rem; }\n    .eventi-nav { flex-wrap: wrap; gap: 1rem; }\n    .eventi-nav-pills { flex-wrap: wrap; justify-content: center; }\n  }\n\n  h1, h2, h3, h4 {\n    font-family: var(--font-body) !important;\n  }\n<\/style>\n\n<!-- \u2550\u2550 HERO \u2550\u2550 -->\n<section class=\"hero\">\n  <div class=\"hero-bg\"><\/div>\n  <div class=\"hero-badge\"><\/div>\n  <div class=\"hero-content\">\n    <p class=\"hero-eyebrow\">VAIA \u00d7 Giro d&#8217;Italia<\/p>\n    <h1 class=\"hero-title\" style=\"font-size: clamp(1.8rem, 3.8vw, 3.2rem); max-width: 680px;\">VAIA is Sustainability Partner of the Giro d&#8217;Italia 2026<br><em><\/em><\/h1>\n    <p class=\"hero-subtitle\">\n      Three territories, 3 days of collective reforestation, 3000 trees planted: this is the green trail left by VAIA and the Giro d&#8217;Italia for the 109th edition of the Corsa Rosa. But we don&#8217;t stop here, we can do even more.\n    <\/p>\n    <div class=\"hero-partners\">\n      <span class=\"partner-tag\">Sustainable Partner<\/span>\n      <span class=\"partner-tag\">Ride Green<\/span>\n      <span class=\"partner-tag\">BiciScuola<\/span>\n      <span class=\"partner-tag\">3 events \u00b7 2026<\/span>\n    <\/div>\n  <\/div>\n  <div class=\"scroll-hint\">\n    <div class=\"scroll-line\"><\/div>\n    <span>Discover<\/span>\n  <\/div>\n<\/section>\n\n<!-- \u2550\u2550 PARTNER LOGOS \u2550\u2550 -->\n<section class=\"partner-logos\">\n  <div class=\"partner-logos-bg\"><\/div>\n  <div class=\"partner-logos-cyclist\">\n    <div class=\"partner-logos-cyclist-icon c1\">\ud83d\udeb4<\/div>\n    <div class=\"partner-logos-cyclist-icon c2\">\ud83d\udeb4\u200d\u2642\ufe0f<\/div>\n    <div class=\"partner-logos-cyclist-icon c3\">\ud83d\udeb4\u200d\u2640\ufe0f<\/div>\n  <\/div>\n  <div class=\"partner-logos-inner\">\n    <div class=\"partner-logos-list\">\n      <div class=\"partner-logo-item\">\n        <img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/fdsfsd.png\" alt=\"Partner 2\">\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- \u2550\u2550 INTRO \u2550\u2550 -->\n<section class=\"intro\">\n  <p class=\"section-label\">The Project<\/p>\n  <h2 class=\"intro-title\" style=\"font-family: var(--font-body); font-weight: 700;\">3000 trees planted together,<br><em style=\"font-style: normal; color: var(--green-light);\">the next one can be yours.<\/em><\/h2>\n  <div class=\"intro-body\">\n    <p>\n      VAIA was born from the storm of the same name that in 2018 swept away <b>42 million trees in the Dolomites<\/b>. From that event a mission was born: to give back to the mountains what the wind took away, one tree at a time.\n    <\/p>\n    <p>From there came the idea of recovering the wood of the fallen trees, activating local artisan supply chains and creating an iconic object: the <b>VAIA Cube<\/b>. A natural smartphone amplifier that since 2019 has allowed us to plant <b>200,000 new trees<\/b> in the Dolomites.<\/p>\n  <\/div>\n\n  <div class=\"intro-cta-block\">\n    <div class=\"intro-cta-block-inner\">\n      <p class=\"intro-cta-title\">By purchasing a VAIA Cube <em>the next tree can be yours.<\/em><\/p>\n      <a href=\"https:\/\/www.vaia.eu\/en\/product\/vaia-cube\/\" class=\"intro-cta-btn\">Buy now \u2192<\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- \u2550\u2550 EVENTI \u2550\u2550 -->\n<section class=\"eventi\">\n  <div class=\"eventi-header\">\n    <p class=\"section-label\">The Events<\/p>\n    <h2 class=\"eventi-title\">Three days of reforestation, three areas regenerated together.<\/h2>\n    <p class=\"eventi-sub\">Three stages of the Giro. Three territories hit by Vaia. <b>A single green trail that continues to grow<\/b> thanks to those who choose to be part of it. Discover the areas where we planted together in April.<\/p>\n  <\/div>\n\n  <div class=\"eventi-nav\">\n    <button class=\"eventi-nav-btn\" onclick=\"changeEvento(-1)\" aria-label=\"Previous Event\">\u2190<\/button>\n    <div class=\"eventi-nav-pills\">\n      <button class=\"eventi-nav-pill active\" onclick=\"goToEvento(0)\">01 \u00b7 Darzo<\/button>\n      <button class=\"eventi-nav-pill\" onclick=\"goToEvento(1)\">02 \u00b7 Canazei<\/button>\n      <button class=\"eventi-nav-pill\" onclick=\"goToEvento(2)\">03 \u00b7 Claut<\/button>\n    <\/div>\n    <button class=\"eventi-nav-btn\" onclick=\"changeEvento(1)\" aria-label=\"Next Event\">\u2192<\/button>\n  <\/div>\n\n  <div class=\"eventi-carousel-wrap\" style=\"margin-top: 1.5rem;\">\n    <div class=\"eventi-carousel-track\" id=\"eventiTrack\">\n\n      <!-- SLIDE 1: DARZO -->\n      <div class=\"evento-slide\">\n        <div class=\"evento-card\" id=\"evento-darzo\">\n          <div class=\"evento-card-header\">\n            <div>\n              <p class=\"evento-tag\">Event 01 \u00b7 Trentino<\/p>\n              <h3 class=\"evento-name\">Planting in Darzo<\/h3>\n              <p class=\"evento-tappa\">17th Giro Stage: <strong>Cassano d&#8217;Adda \u2013 Andalo \u2192 Planting in Darzo, Valdonea locality<\/strong><\/p>\n            <\/div>\n            <span class=\"evento-num\">01<\/span>\n          <\/div>\n          <div class=\"evento-card-body\">\n            <div class=\"gallery-slider\" data-slider=\"\">\n              <div class=\"gallery-track\">\n                <div class=\"gallery-slide\"><img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/Darzo-1-scaled.jpg?w=800&amp;q=80\" alt=\"Foresta Darzo 1\"><\/div>\n                <div class=\"gallery-slide\"><img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/Darzo-2-scaled.jpg?w=800&amp;q=80\" alt=\"Foresta Darzo 2\"><\/div>\n                <div class=\"gallery-slide\"><img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/DSC08080-scaled.jpg?w=800&amp;q=80\" alt=\"Foresta Darzo 3\"><\/div>\n                <div class=\"gallery-slide\"><img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/Darzo-4-scaled.jpg?w=800&amp;q=80\" alt=\"Foresta Darzo 4\"><\/div>\n                <div class=\"gallery-slide\"><img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/Darzo-5-scaled.jpg?w=800&amp;q=80\" alt=\"Foresta Darzo 5\"><\/div>\n              <\/div>\n              <button class=\"gallery-btn prev\" onclick=\"slideGallery(this, -1)\">\u2190<\/button>\n              <button class=\"gallery-btn next\" onclick=\"slideGallery(this, 1)\">\u2192<\/button>\n              <div class=\"gallery-dots\">\n                <div class=\"gallery-dot active\" onclick=\"goToSlide(this, 0)\"><\/div>\n                <div class=\"gallery-dot\" onclick=\"goToSlide(this, 1)\"><\/div>\n                <div class=\"gallery-dot\" onclick=\"goToSlide(this, 2)\"><\/div>\n                <div class=\"gallery-dot\" onclick=\"goToSlide(this, 3)\"><\/div>\n                <div class=\"gallery-dot\" onclick=\"goToSlide(this, 4)\"><\/div>\n              <\/div>\n            <\/div>\n            <div class=\"evento-info\">\n              <div class=\"evento-detail\">\n                <span class=\"evento-detail-label\">How many trees<\/span>\n                <span class=\"evento-detail-value\">1,000 trees planted<\/span>\n              <\/div>\n              <div class=\"evento-detail\">\n                <span class=\"evento-detail-label\">Where<\/span>\n                <span class=\"evento-detail-value\">Malga Spina, Collective Property of the Darzo Fraction, Municipality of Storo, Valle del Chiese (TN).<\/span>\n              <\/div>\n              <p class=\"evento-desc\">\n                The Chiese Valley is turning green again. Darzo is one of the areas that still bears the signs of the Vaia storm, but today these woods tell a new story of rebirth.<br><br>\n                Together with our partners and local families, we turned a symbolic gesture into a concrete action: new trees, new roots and a new future for these mountains.\n              <\/p>\n              <div class=\"evento-cta-block\">\n                <p class=\"cta-label\">Help this forest keep growing<\/p>\n                <p class=\"cta-body\">Every VAIA purchase contributes to generating a real impact on the territory and supporting new reforestation projects in the Dolomites.<\/p>\n                <a href=\"https:\/\/www.vaia.eu\/en\/shop\/\" class=\"cta-btn-small\">Discover VAIA products \u2192<\/a>\n              <\/div>\n            <\/div>\n          <\/div>\n          <div class=\"form-section\">\n            <button class=\"reveal-btn\" onclick=\"toggleForm('form-darzo', this)\">\n              Discover the planting area\n              <span class=\"arrow\">\u2193<\/span>\n            <\/button>\n            <div class=\"form-wrapper\" id=\"form-darzo\">\n              <div class=\"form-inner\">\n                <iframe src=\"https:\/\/www.google.com\/maps\/embed?pb=!1m18!1m12!1m3!1d10799.000849306434!2d10.545375378262491!3d45.854121770601616!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x47822542d4a688ef%3A0xf043ec3c1fa0a58!2sAgri%2090%20-%20Societ%C3%A0%20Cooperativa%20Agricola!5e0!3m2!1sit!2sit!4v1775824953264!5m2!1sit!2sit\" allowfullscreen=\"\" loading=\"lazy\" referrerpolicy=\"no-referrer-when-downgrade\"><\/iframe>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- SLIDE 2: CANAZEI -->\n      <div class=\"evento-slide\">\n        <div class=\"evento-card\" id=\"evento-canazei\">\n          <div class=\"evento-card-header\">\n            <div>\n              <p class=\"evento-tag\">Event 02 \u00b7 Dolomites<\/p>\n              <h3 class=\"evento-name\">Planting in Canazei (Penia locality)<\/h3>\n              <p class=\"evento-tappa\">19th Stage: <strong>Feltre \u2192 Alleghe<\/strong><\/p>\n            <\/div>\n            <span class=\"evento-num\">02<\/span>\n          <\/div>\n          <div class=\"evento-card-body\">\n            <!-- Gallery and content for Canazei (same structure) -->\n            <div class=\"gallery-slider\" data-slider=\"\">\n              <div class=\"gallery-track\">\n                <div class=\"gallery-slide\"><img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/canazei-2-scaled.jpg\" alt=\"Canazei 1\"><\/div>\n                <div class=\"gallery-slide\"><img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/canazei-4-scaled.jpg?w=800&amp;q=80\" alt=\"Canazei 2\"><\/div>\n                <div class=\"gallery-slide\"><img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/canazei-5-scaled.jpg?w=800&amp;q=80\" alt=\"Canazei 3\"><\/div>\n                <div class=\"gallery-slide\"><img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/canazei-1-scaled.jpg?w=800&amp;q=80\" alt=\"Canazei 4\"><\/div>\n                <div class=\"gallery-slide\"><img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/canazei-3-scaled.jpg?w=800&amp;q=80\" alt=\"Canazei 5\"><\/div>\n              <\/div>\n              <button class=\"gallery-btn prev\" onclick=\"slideGallery(this, -1)\">\u2190<\/button>\n              <button class=\"gallery-btn next\" onclick=\"slideGallery(this, 1)\">\u2192<\/button>\n              <div class=\"gallery-dots\">\n                <div class=\"gallery-dot active\" onclick=\"goToSlide(this, 0)\"><\/div>\n                <div class=\"gallery-dot\" onclick=\"goToSlide(this, 1)\"><\/div>\n                <div class=\"gallery-dot\" onclick=\"goToSlide(this, 2)\"><\/div>\n                <div class=\"gallery-dot\" onclick=\"goToSlide(this, 3)\"><\/div>\n                <div class=\"gallery-dot\" onclick=\"goToSlide(this, 4)\"><\/div>\n              <\/div>\n            <\/div>\n            <div class=\"evento-info\">\n              <div class=\"evento-detail\">\n                <span class=\"evento-detail-label\">How many trees<\/span>\n                <span class=\"evento-detail-value\">1,000 trees planted<\/span>\n              <\/div>\n              <div class=\"evento-detail\">\n                <span class=\"evento-detail-label\">Where<\/span>\n                <span class=\"evento-detail-value\">Penia, Canazei &#8211; Val di Fassa (TN)<\/span>\n              <\/div>\n              <p class=\"evento-desc\">\n                In the heart of the Dolomites UNESCO World Heritage Site, Val di Fassa represents one of the strongest symbols of rebirth after the Vaia storm. In Canazei, in the locality of Penia, among iconic mountains and forests wounded by the wind, we have brought to life a new concrete reforestation action.<br><br>\n                Together with our partners and local schools, we planted new trees to give back energy, value and future to one of the most extraordinary landscapes of the Dolomites.\n              <\/p>\n              <div class=\"evento-cta-block\">\n                <p class=\"cta-label\">Bring real impact to the territory too<\/p>\n                <p class=\"cta-body\">With every purchase you support new concrete environmental regeneration actions.<\/p>\n                <a href=\"https:\/\/www.vaia.eu\/en\/shop\/\" class=\"cta-btn-small\">Discover VAIA products \u2192<\/a>\n              <\/div>\n            <\/div>\n          <\/div>\n          <div class=\"form-section\">\n            <button class=\"reveal-btn\" onclick=\"toggleForm('form-canazei', this)\">\n              Discover the planting area\n              <span class=\"arrow\">\u2193<\/span>\n            <\/button>\n            <div class=\"form-wrapper\" id=\"form-canazei\">\n              <div class=\"form-inner\">\n                <iframe src=\"https:\/\/www.google.com\/maps\/embed?pb=!1m18!1m12!1m3!1d11000.0!2d11.773!3d46.476!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x47838e7f5b5e3a8f%3A0xabcdef1234567890!2sCanazei%2C+TN!5e0!3m2!1sit!2sit!4v1\" allowfullscreen=\"\" loading=\"lazy\" referrerpolicy=\"no-referrer-when-downgrade\"><\/iframe>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- SLIDE 3: CLAUT -->\n      <div class=\"evento-slide\">\n        <div class=\"evento-card\" id=\"evento-claut\">\n          <div class=\"evento-card-header\">\n            <div>\n              <p class=\"evento-tag\">Event 03 \u00b7 Friuli<\/p>\n              <h3 class=\"evento-name\">Planting in Claut (Lesis locality)<\/h3>\n              <p class=\"evento-tappa\">20th Stage: <strong>Gemona del Friuli \u2192 Piancavallo<\/strong><\/p>\n            <\/div>\n            <span class=\"evento-num\">03<\/span>\n          <\/div>\n          <div class=\"evento-card-body\">\n            <div class=\"gallery-slider\" data-slider=\"\">\n              <div class=\"gallery-track\">\n                <div class=\"gallery-slide\"><img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/Claut_24apr_115-scaled.jpg?w=800&amp;q=80\" alt=\"Claut 1\"><\/div>\n                <div class=\"gallery-slide\"><img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/Claut_24apr_048-scaled.jpg?w=800&amp;q=80\" alt=\"Claut 2\"><\/div>\n                <div class=\"gallery-slide\"><img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/Claut_24apr_080-scaled.jpg?w=800&amp;q=80\" alt=\"Claut 3\"><\/div>\n                <div class=\"gallery-slide\"><img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/Claut_24apr_034-scaled.jpg?w=800&amp;q=80\" alt=\"Claut 4\"><\/div>\n                <div class=\"gallery-slide\"><img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/Claut_24apr_138-scaled.jpg?w=800&amp;q=80\" alt=\"Claut 5\"><\/div>\n              <\/div>\n              <button class=\"gallery-btn prev\" onclick=\"slideGallery(this, -1)\">\u2190<\/button>\n              <button class=\"gallery-btn next\" onclick=\"slideGallery(this, 1)\">\u2192<\/button>\n              <div class=\"gallery-dots\">\n                <div class=\"gallery-dot active\" onclick=\"goToSlide(this, 0)\"><\/div>\n                <div class=\"gallery-dot\" onclick=\"goToSlide(this, 1)\"><\/div>\n                <div class=\"gallery-dot\" onclick=\"goToSlide(this, 2)\"><\/div>\n                <div class=\"gallery-dot\" onclick=\"goToSlide(this, 3)\"><\/div>\n                <div class=\"gallery-dot\" onclick=\"goToSlide(this, 4)\"><\/div>\n              <\/div>\n            <\/div>\n            <div class=\"evento-info\">\n              <div class=\"evento-detail\">\n                <span class=\"evento-detail-label\">How many trees<\/span>\n                <span class=\"evento-detail-value\">1,000 trees planted<\/span>\n              <\/div>\n              <div class=\"evento-detail\">\n                <span class=\"evento-detail-label\">Where<\/span>\n                <span class=\"evento-detail-value\">Lesis locality, Claut<\/span>\n              <\/div>\n              <p class=\"evento-desc\">\n                The Valcellina, in Friuli Venezia Giulia, was one of the areas most affected by the Vaia storm. Today Claut becomes the symbol of a new restart: a place where the forest grows again thanks to the shared commitment of the community, the territory and the people.<br><br>\n                Together with our partners, schools and local families, we planted new trees to contribute concretely to the regeneration of these mountains, building a stronger and more sustainable future for the territory.\n              <\/p>\n              <div class=\"evento-cta-block\">\n                <p class=\"cta-label\">This green trail continues thanks to you<\/p>\n                <p class=\"cta-body\">Choosing VAIA means contributing to the rebirth of the mountains.<\/p>\n                <a href=\"https:\/\/www.vaia.eu\/en\/shop\/\" class=\"cta-btn-small\">Discover VAIA products \u2192<\/a>\n              <\/div>\n            <\/div>\n          <\/div>\n          <div class=\"form-section\">\n            <button class=\"reveal-btn\" onclick=\"toggleForm('form-claut', this)\">\n              Discover the planting area\n              <span class=\"arrow\">\u2193<\/span>\n            <\/button>\n            <div class=\"form-wrapper\" id=\"form-claut\">\n              <div class=\"form-inner\">\n                <iframe src=\"https:\/\/www.google.com\/maps\/embed?pb=!1m18!1m12!1m3!1d11200.0!2d12.519!3d46.186!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x477953d9b2f4e6a5%3A0x9876543210fedcba!2sClaut%2C+PN!5e0!3m2!1sit!2sit!4v1\" allowfullscreen=\"\" loading=\"lazy\" referrerpolicy=\"no-referrer-when-downgrade\"><\/iframe>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- \u2550\u2550 BICISCUOLA \u2550\u2550 -->\n<section class=\"biciscuola\">\n  <div class=\"biciscuola-inner\">\n    <div class=\"biciscuola-text\">\n      <p class=\"section-label\">Educational Partnership<\/p>\n      <h2 class=\"biciscuola-title\">VAIA and BiciScuola: pedaling together towards the future<\/h2>\n      <div class=\"biciscuola-body\">\n        <p>For the 2026 edition <b>VAIA is Educational Partner<\/b> of the BiciScuola project, bringing its contribution with dedicated content and a concrete experience, linked to the reforestation activities promoted along the Giro route.<\/p>\n        <p>An opportunity to <b>bring the new generations<\/b> closer to caring for the territory, transforming values and awareness into real actions.<\/p>\n        <p>To complete the project, VAIA will award the winning classes with a <strong>VAIA Cube<\/strong>. A way to <b>leave a tangible mark<\/b> and build, together, a culture of sustainability.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"biciscuola-visual\">\n      <img decoding=\"async\" src=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/Bici-scuula.png\" alt=\"BiciScuola\" style=\"width:20%; border-radius: var(--radius); object-fit: cover; display: block;\">\n      <p class=\"biciscuola-highlight\">\n        VAIA is Educational Partner<br>of BiciScuola 2026\n      <\/p>\n      <div class=\"biciscuola-prize\">\n        <strong>\ud83c\udfc6 Prize for the winning classes<\/strong><br>\n        Schools participating in the BiciScuola project will have the opportunity to win a VAIA Cube, a concrete symbol of commitment to the mountains.\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- \u2550\u2550 SEZIONE IMPATTO FINALE \u2550\u2550 -->\n<section class=\"impatto-section\">\n  <div class=\"impatto-inner\">\n    <p class=\"impatto-label\">A real impact, built together<\/p>\n    <h2 class=\"impatto-title\">The Giro passes.<br>The impact remains.<\/h2>\n    <div class=\"impatto-stats\">\n      <div class=\"impatto-stat\">\n        <span class=\"impatto-stat-num\">3,000<\/span>\n        <span class=\"impatto-stat-label\">new trees planted in the Dolomites<\/span>\n      <\/div>\n      <div class=\"impatto-stat\">\n        <span class=\"impatto-stat-num\">3<\/span>\n        <span class=\"impatto-stat-label\">regenerated territories between Trentino, Veneto and Friuli<\/span>\n      <\/div>\n      <div class=\"impatto-stat\">\n        <span class=\"impatto-stat-num\">100+<\/span>\n        <span class=\"impatto-stat-label\">people involved in the planting days<\/span>\n      <\/div>\n    <\/div>\n    <div class=\"trust-badges\">\n      <div class=\"trust-badge\">\n        <span class=\"badge-icon\">\ud83c\udfd4\ufe0f<\/span>\n        <span>Dolomites UNESCO World Heritage<\/span>\n      <\/div>\n      <div class=\"trust-badge\">\n        <span class=\"badge-icon\">\u267b\ufe0f<\/span>\n        <span>Products made with wood recovered from the storm<\/span>\n      <\/div>\n      <div class=\"trust-badge\">\n        <span class=\"badge-icon\">\ud83e\udd1d<\/span>\n        <span>Local communities involved in every project<\/span>\n      <\/div>\n    <\/div>\n    <div class=\"final-cta-box\">\n      <div class=\"final-cta-text\">\n        <p class=\"final-cta-eyebrow\">Support reforestation<\/p>\n        <p class=\"final-cta-headline\">Do your part.<br>Now.<\/p>\n        <p class=\"final-cta-body\">Every VAIA purchase helps regenerate the forests affected by the Vaia storm and build a more sustainable future for the Dolomites. A concrete choice, a measurable impact.<\/p>\n      <\/div>\n      <div class=\"final-cta-actions\">\n        <a href=\"https:\/\/www.vaia.eu\/en\/shop\/\" class=\"cta-btn-primary\">Discover VAIA products \u2192<\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<script>\n  \/* \u2550\u2550 EVENTI CAROUSEL \u2550\u2550 *\/\n  let currentEvento = 0;\n  const TOTAL_EVENTI = 3;\n  let eventoAutoplay;\n\n  function updateEventoCarousel(idx) {\n    const track = document.getElementById('eventiTrack');\n    track.style.transform = `translateX(-${idx * 100}%)`;\n    currentEvento = idx;\n    document.querySelectorAll('.eventi-nav-pill').forEach((pill, i) => {\n      pill.classList.toggle('active', i === idx);\n    });\n  }\n\n  function changeEvento(dir) {\n    const next = (currentEvento + dir + TOTAL_EVENTI) % TOTAL_EVENTI;\n    updateEventoCarousel(next);\n    resetEventoAutoplay();\n  }\n\n  function goToEvento(idx) {\n    updateEventoCarousel(idx);\n    resetEventoAutoplay();\n  }\n\n  function startEventoAutoplay() {\n    eventoAutoplay = setInterval(() => {\n      updateEventoCarousel((currentEvento + 1) % TOTAL_EVENTI);\n    }, 5000);\n  }\n\n  function resetEventoAutoplay() {\n    clearInterval(eventoAutoplay);\n    startEventoAutoplay();\n  }\n\n  startEventoAutoplay();\n\n  document.querySelector('.eventi-carousel-wrap').addEventListener('mouseenter', () => clearInterval(eventoAutoplay));\n  document.querySelector('.eventi-carousel-wrap').addEventListener('mouseleave', startEventoAutoplay);\n\n  \/* \u2550\u2550 GALLERY SLIDER \u2550\u2550 *\/\n  function getSliderState(btn) {\n    const slider = btn.closest('[data-slider]');\n    const track = slider.querySelector('.gallery-track');\n    const dots = slider.querySelectorAll('.gallery-dot');\n    const total = slider.querySelectorAll('.gallery-slide').length;\n    const current = parseInt(track.dataset.current || '0');\n    return { slider, track, dots, total, current };\n  }\n\n  function updateSlider(track, dots, idx) {\n    track.style.transform = `translateX(-${idx * 100}%)`;\n    track.dataset.current = idx;\n    dots.forEach((d, i) => d.classList.toggle('active', i === idx));\n  }\n\n  function slideGallery(btn, dir) {\n    const { track, dots, total, current } = getSliderState(btn);\n    const next = (current + dir + total) % total;\n    updateSlider(track, dots, next);\n  }\n\n  function goToSlide(dot, idx) {\n    const slider = dot.closest('[data-slider]');\n    const track = slider.querySelector('.gallery-track');\n    const dots = slider.querySelectorAll('.gallery-dot');\n    updateSlider(track, dots, idx);\n  }\n\n  document.querySelectorAll('[data-slider]').forEach(slider => {\n    let interval = setInterval(() => {\n      const track = slider.querySelector('.gallery-track');\n      const dots = slider.querySelectorAll('.gallery-dot');\n      const total = slider.querySelectorAll('.gallery-slide').length;\n      const current = parseInt(track.dataset.current || '0');\n      updateSlider(track, dots, (current + 1) % total);\n    }, 3500);\n\n    slider.addEventListener('mouseenter', () => clearInterval(interval));\n    slider.addEventListener('mouseleave', () => {\n      interval = setInterval(() => {\n        const track = slider.querySelector('.gallery-track');\n        const dots = slider.querySelectorAll('.gallery-dot');\n        const total = slider.querySelectorAll('.gallery-slide').length;\n        const current = parseInt(track.dataset.current || '0');\n        updateSlider(track, dots, (current + 1) % total);\n      }, 3500);\n    });\n  });\n\n  \/* \u2550\u2550 FORM \/ MAP REVEAL \u2550\u2550 *\/\n  function toggleForm(id, btn) {\n    const wrapper = document.getElementById(id);\n    const isOpen = wrapper.classList.contains('open');\n    wrapper.classList.toggle('open', !isOpen);\n    btn.classList.toggle('open', !isOpen);\n    btn.querySelector('.arrow').textContent = isOpen ? '\u2193' : '\u2191';\n  }\n<\/script>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>VAIA \u00d7 Giro d&#8217;Italia \u2013 Planting 2026 VAIA \u00d7 Giro d&#8217;Italia VAIA is Sustainability Partner of the Giro d&#8217;Italia 2026 Three territories, 3 days of collective reforestation, 3000 trees planted: this is the green trail left by VAIA and the Giro d&#8217;Italia for the 109th edition of the Corsa Rosa. But we don&#8217;t stop here, [&hellip;]<\/p>\n","protected":false},"author":336,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_crdt_document":"{\"document\":\"AAAH+YGtzw6\/A6YECBiYB7IBhAyYDQiIAaIErAWuBJAECJQEhgc0qAGwA5wDuAM0vAGIBpoCnAWOA64CNIYEjAg+CKYEjgSQA6QHkgSQBp4CrAIqsAG+ApYDsAKCAZQCCCY2CJ4GugI0qAQyCIQIpAenBQCMA6wCpAQgqgMILoYBJDCsAqgChAWAA5IFggGWBJYMLAi6AqIBtgKyAYIFsAaEAYADCJwECCyYAa4BKoYBKiyMBAiEBQiWBwiIAgifAQC6Ah6UAjAIpAKSAYIDCJIBLJwCCLgCCJQECJACNpgCCJoCigSIAaQClAU8igiEDLACvAWGAYQWEpQHEooErAcUqA4WkBYejjEqnAgqqAwqjg0qkgqyATiGDSI4KAKwChqSARaADBqoIRaoDhICvAoakgEWvAsajicaFq4NGpIBkgmeCa4CAQAIAgECCgBKEAIBAwwCAQIKSl4SDgrQ\/gW2DZgNCIgBogSsBa4EmASUBKIJsAOcA6gGiAaaApwFjgOoB5IJpgSOBJADpAeSBJAGngKGBb4ChgaCAZwCJj6eBroCnAU6hAikB6cFAIwDrAKkBIoECLQBlAGsAqwHgAOSBZgFig2cBKgEggW0B4gDpASEApgChgGWAZQEjAWeB5AClAaEAwi2A4oDvgGkAoADnASGA6ACpAasA5AGjhSwAoIHlhamB4oEgAi+Dq4WuDGGCZINuA2EDDioDTgoArIMkj0ClguoAZYMqCcWiA6SAdMBuge2DZgNCIgBogSsBa4EmASUBKIJsAOcA6gGiAaaApwFjgOoB5IJpgSOBJADpAeSBJAGngKGBb4ChgaCAZwCJj6eBroCnAU6hAikB6cFAIwDrAKkBIoECLQBlAGsAqwHgAOSBZgFig2cBKgEggW0B4gDpASEApgChgGWAZQEjAWeB5AClAaEAwi2A4oDvgGkAoADnASGA6ACpAasA5AGjhSwAoIHlhamB4oEgAi+Dq4WuDGGCZINuA2EDDioDTgoArIMkj0ClguoAZYMqCcWiA6SAcMCKAMnAAQAJwAEAIEAhAaBAIQCgQCEA4EAhAWBAIQBgQCECIEAhAGBAIQBgQCEAYEAhAKBAIQAgQCEB4EAhAGBAIQAgQCEAYEAhAKBAIQBgQCEAIEAhACBAIQBgQCEAIEAhACBAIQAgQCEAIEAhAGBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAYEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAYEAhACBAIQAgQCEAYEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQBgQCEA4EAhACBAIQAgQCEAIEAhACBAIQBgQCEAIEAhACBAIQAgQCEAYEAhAKBAIQAJwAoBCcAKAInAAcAKAMnACgBJwAHACgDJwEHACgDJwAoACcAKAGoA8Sr\/gKs+wJzdGF0ZXZlcnNpb25kb2N1bWVudGRhdGVkb2N1bWVudHNsdWdkb2N1bWVudHN0YXR1c2RvY3VtZW50dGl0bGVHaXJvIEl0YWxpYWRvY3VtZW50Y29udGVudDwhLS0gd3A6Y29sdW1ucyB7ImFsaWduIjoiZnVsbCJ9IC0tPgo8ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2x1bW5zIGFsaWduZnVsbCI+PCEtLSB3cDpjb2x1bW4gLS0+CjxkaXYgY2xhc3M9IndwLWJsb2NrLWNvbHVtbiI+PCEtLSB3cDpodG1sIC0tPgo8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj0iIj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1QbGF5ZmFpcitEaXNwbGF5Oml0YWwsd2dodEAwLDQwMDswLDcwMDsxLDQwMCZhbXA7ZmFtaWx5PURNK1NhbnM6d2dodEAzMDA7NDAwOzUwMCZhbXA7ZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiPgo8c3R5bGU+CiAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQogIDpyb290IHsKICAgIC0tZ3JlZW4tZGVlcDogIzFhM2EyYTsKICAgIC0tZ3JlZW4tbWlkOiAjMmQ1YTNkOwogICAgLS1ncmVlbi1saWdodDogIzRhOGM1YzsKICAgIC0tZ3JlZW4tcGFsZTogI2U4ZjJlYjsKICAgIC0tZ29sZDogI2M5YTg0YzsKICAgIC0tZ29sZC1saWdodDogI2U4ZDA4YTsKICAgIC0tY3JlYW06ICNmN2Y0ZWU7CiAgICAtLWRhcms6ICMxMTFhMTQ7CiAgICAtLXRleHQ6ICMyYTM2Mjg7CiAgICAtLXRleHQtbXV0ZWQ6ICM2YjdjNmU7CiAgICAtLXdoaXRlOiAjZmZmZmZmOwogICAgLS1mb250LWRpc3BsYXk6ICdQbGF5ZmFpciBEaXNwbGF5JywgR2VvcmdpYSwgc2VyaWY7CiAgICAtLWZvbnQtYm9keTogJ0RNIFNhbnMnLCBzeXN0ZW0tdWksIHNhbnMtc2VyaWY7CiAgICAtLXJhZGl1czogNHB4OwogICAgLS1yYWRpdXMtbGc6IDEycHg7CiAgfQogIGh0bWwgeyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgfQogIGJvZHkgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7CiAgICBjb2xvcjogdmFyKC0tdGV4dCk7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcmVhbSk7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC1zaXplOiAxNnB4OwogIH0KICAvKiDilIDilIAgSEVSTyDilIDilIAgKi8KICAuaGVybyB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBtaW4taGVpZ2h0OiA5MnZoOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbi1kZWVwKTsKICB9CiAgLmhlcm8tYmcgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgaW5zZXQ6IDA7CiAgICBiYWNrZ3JvdW5kOgogICAgICBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDEwLDI1LDE2LDAuMzUpIDAlLCByZ2JhKDEwLDI1LDE2LDAuNzUpIDEwMCUpLAogIH0KICAuaGVyby1iYWRnZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDJyZW07CiAgICBsZWZ0OiAyLjVyZW07CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMS41cmVtOwogIH0KICAuaGVyby1iYWRnZS1waWxsIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7CiAgICBjb2xvcjogI2ZmZjsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4xMmVtOwogICAgcGFkZGluZzogNnB4IDE0cHg7CiAgICBib3JkZXItcmFkaXVzOiA5OXB4OwogIH0KICAuaGVyby1iYWRnZS1waWxsLmdvbGQgewogICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOwogICAgY29sb3I6IHZhcigtLWdyZWVuLWRlZXApOwogIH0KICAuaGVyby1jb250ZW50IHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHotaW5kZXg6IDE7CiAgICBwYWRkaW5nOiA0cmVtIDIuNXJlbTsKICAgIG1heC13aWR0aDogNzYwcHg7CiAgfQogIC5oZXJvLWV5ZWJyb3cgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMThlbTsKICAgIGNvbG9yOiB2YXIoLS1nb2xkLWxpZ2h0KTsKICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07CiAgfQogIC5oZXJvLXRpdGxlIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOwogICAgZm9udC1zaXplOiBjbGFtcCgyLjhyZW0sIDZ2dywgNXJlbSk7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjA4OwogICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOwogIH0KICAuaGVyby10aXRsZSBlbSB7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICBjb2xvcjogdmFyKC0tZ29sZC1saWdodCk7CiAgfQogIC5oZXJvLXN1YnRpdGxlIHsKICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgZm9udC13ZWlnaHQ6IDMwMDsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuODIpOwogICAgbWF4LXdpZHRoOiA1MjBweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjc7CiAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07CiAgfQogIC5oZXJvLXBhcnRuZXJzIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxcmVtOwogICAgZmxleC13cmFwOiB3cmFwOwogIH0KICAucGFydG5lci10YWcgewogICAgZm9udC1zaXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMik7CiAgICBwYWRkaW5nOiA1cHggMTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5cHg7CiAgfQogIC5zY3JvbGwtaGludCB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBib3R0b206IDJyZW07CiAgICByaWdodDogMi41cmVtOwogICAgei1pbmRleDogMTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogOHB4OwogICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC40KTsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTsKICB9CiAgLnNjcm9sbC1saW5lIHsKICAgIHdpZHRoOiAxcHg7CiAgICBoZWlnaHQ6IDQ4cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpOwogICAgYW5pbWF0aW9uOiBzY3JvbGxQdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICB9CiAgQGtleWZyYW1lcyBzY3JvbGxQdWxzZSB7CiAgICAwJSwgMTAwJSB7IG9wYWNpdHk6IDAuMjU7IHRyYW5zZm9ybTogc2NhbGVZKDEpOyB9CiAgICA1MCUgeyBvcGFjaXR5OiAwLjY7IHRyYW5zZm9ybTogc2NhbGVZKDEuMSk7IH0KICB9CiAgLyog4pSA4pSAIElOVFJPIOKUgOKUgCAqLwogIC5pbnRybyB7CiAgICBwYWRkaW5nOiA2cmVtIDIuNXJlbTsKICAgIG1heC13aWR0aDogMTEwMHB4OwogICAgbWFyZ2luOiAwIGF1dG87CiAgfQogIC5zZWN0aW9uLWxhYmVsIHsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4yZW07CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgY29sb3I6IHZhcigtLWdyZWVuLWxpZ2h0KTsKICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTBweDsKICB9CiAgLnNlY3Rpb24tbGFiZWw6OmFmdGVyIHsKICAgIGNvbnRlbnQ6ICcnOwogICAgZGlzcGxheTogYmxvY2s7CiAgICB3aWR0aDogMzJweDsKICAgIGhlaWdodDogMXB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tbGlnaHQpOwogIH0KICAuaW50cm8tdGl0bGUgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7CiAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDR2dywgM3JlbSk7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6IHZhcigtLWdyZWVuLWRlZXApOwogICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIG1hcmdpbi1ib3R0b206IDEuNzVyZW07CiAgfQogIC5pbnRyby10aXRsZSBlbSB7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICBjb2xvcjogdmFyKC0tZ3JlZW4tbGlnaHQpOwogIH0KICAuaW50cm8tYm9keSB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgZ2FwOiAycmVtOwogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgbGluZS1oZWlnaHQ6IDEuODsKICB9CiAgLmludHJvLWJvZHkgcCB7CiAgICBmb250LXNpemU6IDFyZW07CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBsaW5lLWhlaWdodDogMS44OwogIH0KICAuaW50cm8tYm9keSBiLCAuaW50cm8tYm9keSBzdHJvbmcgewogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0KTsKICB9CiAgLyog4pSA4pSAIEVWRU5USSDilIDilIAgKi8KICAuZXZlbnRpIHsKICB9CiAgLmV2ZW50aS1oZWFkZXIgewogIH0KICAuZXZlbnRpLXRpdGxlIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOwogICAgZm9udC1zaXplOiBjbGFtcCgxLjhyZW0sIDMuNXZ3LCAyLjZyZW0pOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtOwogIH0KICAuZXZlbnRpLXN1YiB7CiAgICBmb250LXNpemU6IDFyZW07CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBtYXgtd2lkdGg6IDU2MHB4OwogIH0KICAuZXZlbnRvLWNhcmQgewogICAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg0Miw1NCw0MCwwLjEpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQogIC5ldmVudG8tY2FyZC1oZWFkZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tZGVlcCk7CiAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgcGFkZGluZzogMnJlbSAyLjVyZW07CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBnYXA6IDJyZW07CiAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQogIC5ldmVudG8tbnVtIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOwogICAgZm9udC1zaXplOiA0cmVtOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgbGluZS1oZWlnaHQ6IDE7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICByaWdodDogMi41cmVtOwogICAgdG9wOiAxLjVyZW07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICB9CiAgLmV2ZW50by10YWcgewogICAgZm9udC1zaXplOiAxMHB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjE1ZW07CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgY29sb3I6IHZhcigtLWdvbGQtbGlnaHQpOwogICAgbWFyZ2luLWJvdHRvbTogMC41cmVtOwogIH0KICAuZXZlbnRvLW5hbWUgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7CiAgICBmb250LXNpemU6IDEuOHJlbTsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgbGluZS1oZWlnaHQ6IDEuMTU7CiAgICBtYXJnaW4tYm90dG9tOiAwLjRyZW07CiAgfQogIC5ldmVudG8tdGFwcGEgewogICAgZm9udC1zaXplOiAwLjg1cmVtOwogICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC41KTsKICAgIGZvbnQtd2VpZ2h0OiAzMDA7CiAgfQogIC5ldmVudG8tdGFwcGEgc3Ryb25nIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNzUpOwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICB9CiAgLmV2ZW50by1jYXJkLWJvZHkgewogICAgcGFkZGluZzogMnJlbSAyLjVyZW07CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgZ2FwOiAycmVtOwogICAgYWxpZ24taXRlbXM6IHN0YXJ0OwogIH0KICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg0Miw1NCw0MCwwLjEpOwogICAgaGVpZ2h0OiA0MjBweDsKICB9CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIGRpc3BsYXk6IGJsb2NrOwogIH0KICAuZXZlbnRvLWluZm8gewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBnYXA6IDEuMjVyZW07CiAgfQogIC5ldmVudG8tZGV0YWlsLWxhYmVsIHsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4xNWVtOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1saWdodCk7CiAgfQogIC5ldmVudG8tZGV0YWlsLXZhbHVlIHsKICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBjb2xvcjogdmFyKC0tdGV4dCk7CiAgfQogIC5ldmVudG8tZGVzYyB7CiAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBsaW5lLWhlaWdodDogMS43OwogICAgcGFkZGluZy10b3A6IDAuNXJlbTsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDQyLDU0LDQwLDAuMDgpOwogIH0KICAuZm9ybS1zZWN0aW9uIHsKICAgIHBhZGRpbmc6IDEuNXJlbSAyLjVyZW0gMi41cmVtOwogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoNDIsNTQsNDAsMC4wNyk7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbi1wYWxlKTsKICB9CiAgLnJldmVhbC1idG4gewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tZGVlcCk7CiAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsKICAgIHBhZGRpbmc6IDE0cHggMjhweDsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMsIHRyYW5zZm9ybSAwLjE1czsKICB9CiAgLnJldmVhbC1idG46YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsgfQogIC5yZXZlYWwtYnRuLm9wZW4gLmFycm93IHsgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfQogIC5mb3JtLXdyYXBwZXIgewogICAgbWF4LWhlaWdodDogMDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuNXMgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSksIG9wYWNpdHkgMC40cyBlYXNlOwogICAgb3BhY2l0eTogMDsKICB9CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOwogIH0KICB9CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpOwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICB9CiAgfQogIH0KICB9CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogMXJlbTsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CiAgICBjb250ZW50OiAnJzsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB9CiAgICBmb250LXdlaWdodDogNTAwOwogIH0KICB9CiAgfQogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIH0KICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpICFpbXBvcnRhbnQ7CiAgfQo8L3N0eWxlPgoKPCEtLSDilZDilZAgSEVSTyDilZDilZAgLS0+CjxzZWN0aW9uIGNsYXNzPSJoZXJvIj4KICA8ZGl2IGNsYXNzPSJoZXJvLWJnIj48L2Rpdj4KICA8ZGl2IGNsYXNzPSJoZXJvLWNvbnRlbnQiPgogICAgPHAgY2xhc3M9Imhlcm8tZXllYnJvdyI+VkFJQSDDlyBHaXJvIGQnSXRhbGlhPC9wPgogICAgPHAgY2xhc3M9Imhlcm8tc3VidGl0bGUiPgogICAgPC9wPgogICAgPGRpdiBjbGFzcz0iaGVyby1wYXJ0bmVycyI+CiAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0bmVyLXRhZyI+U3VzdGFpbmFibGUgUGFydG5lcjwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InBhcnRuZXItdGFnIj5SaWRlIEdyZWVuPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icGFydG5lci10YWciPkJpY2lTY3VvbGE8L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0bmVyLXRhZyI+MyBldmVudHMgwrcgMjAyNjwvc3Bhbj4KICAgIDwvZGl2PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InNjcm9sbC1oaW50Ij4KICAgIDxkaXYgY2xhc3M9InNjcm9sbC1saW5lIj48L2Rpdj4KICAgIDxzcGFuPkRpc2NvdmVyPC9zcGFuPgogIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8IS0tIOKVkOKVkCBJTlRSTyDilZDilZAgLS0+CjxzZWN0aW9uIGNsYXNzPSJpbnRybyI+CiAgPHAgY2xhc3M9InNlY3Rpb24tbGFiZWwiPlRoZSBQcm9qZWN0PC9wPgogIDxkaXYgY2xhc3M9ImludHJvLWJvZHkiPgogICAgPHA+CiAgICA8L3A+CiAgPC9kaXY+Cjwvc2VjdGlvbj4KCjwhLS0g4pWQ4pWQIEVWRU5USSDilZDilZAgLS0+CjxzZWN0aW9uIGNsYXNzPSJldmVudGkiPgogIDxkaXYgY2xhc3M9ImV2ZW50aS1oZWFkZXIiPgogICAgPHAgY2xhc3M9InNlY3Rpb24tbGFiZWwiPlRoZSBFdmVudHM8L3A+CiAgPC9kaXY+CgogICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgoKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzY3JpcHQ+CiAgZnVuY3Rpb24gdG9nZ2xlRm9ybShpZCwgYnRuKSB7CiAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwogICAgY29uc3QgaXNPcGVuID0gd3JhcHBlci5jbGFzc0xpc3QuY29udGFpbnMoJ29wZW4nKTsKICAgIHdyYXBwZXIuY2xhc3NMaXN0LnRvZ2dsZSgnb3BlbicsICFpc09wZW4pOwogICAgYnRuLmNsYXNzTGlzdC50b2dnbGUoJ29wZW4nLCAhaXNPcGVuKTsKICAgIGJ0bi5xdWVyeVNlbGVjdG9yKCcuYXJyb3cnKS50ZXh0Q29udGVudCA9IGlzT3BlbiA\/ICfihpMnIDogJ+KGkSc7CiAgfQo8L3NjcmlwdD4KPCEtLSAvd3A6aHRtbCAtLT48L2Rpdj4KPCEtLSAvd3A6Y29sdW1uIC0tPjwvZGl2Pgo8IS0tIC93cDpjb2x1bW5zIC0tPmRvY3VtZW50ZXhjZXJwdGRvY3VtZW50YXV0aG9yZG9jdW1lbnRmZWF0dXJlZF9tZWRpYWRvY3VtZW50Y29tbWVudF9zdGF0dXNkb2N1bWVudHBpbmdfc3RhdHVzZG9jdW1lbnR0ZW1wbGF0ZWRvY3VtZW50bWV0YV9hY2ZfY2hhbmdlZGNvbnRlbnQtdHlwZWZvb3Rub3Rlc2RvY3VtZW50YmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNpc1N0YWNrZWRPbk1vYmlsZWFsaWduaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50aW5uZXJCbG9ja3NzdGF0ZXNhdmVkQXRzdGF0ZXNhdmVkQnk8dGl0bGU+VkFJQSDDlyBHaXJvIGQnSXRhbGlhIOKAkyBQbGFudGluZyAyMDI2PC90aXRsZT4KCgogICAgLyog4pSA4pSAIE1PRElGSUNBIDI6IHZhcmlhYmlsaSBpbW1hZ2luZSBoZXJvIOKUgOKUgCAqLwogICAgLS1oZXJvLWJnLWRlc2t0b3A6IHVybCgnaHR0cHM6Ly93d3cudmFpYS5ldS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9WQUlBLUdpcm8tSXRhbGlhLnBuZycpOwogICAgLS1oZXJvLWJnLW1vYmlsZTogIHVybCgnaHR0cHM6Ly93d3cudmFpYS5ldS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9WQUlBLUdpcm8tSXRhbGlhLnBuZycpOwoKCgoKICAvKiBNT0RJRklDQSAyOiBzZm9uZG8gaGVybyB1c2EgdmFyaWFiaWxlIGRlc2t0b3AgZGkgZGVmYXVsdCAqLwogICAgICB2YXIoLS1oZXJvLWJnLWRlc2t0b3ApIGNlbnRlciA4MCUvY292ZXIgbm8tcmVwZWF0OwoKICAvKiBNT0RJRklDQSAyOiBzdSBtb2JpbGUgdXNhIGxhIHZhcmlhYmlsZSBtb2JpbGUgKi8KICBAbWVkaWEgKG1heC13aWR0aDogNzAwcHgpIHsKICAgIC5oZXJvLWJnIHsKICAgICAgYmFja2dyb3VuZDoKICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDEwLDI1LDE2LDAuMzUpIDAlLCByZ2JhKDEwLDI1LDE2LDAuNzUpIDEwMCUpLAogICAgICAgIHZhcigtLWhlcm8tYmctbW9iaWxlKSBjZW50ZXIgODAlL2NvdmVyIG5vLXJlcGVhdDsKICAgIH0KICB9CgoKCgoKCgoKCgoKCgoKICAvKiDilIDilIAgUEFSVE5FUiBMT0dPUyDilIDilIAgKi8KICAucGFydG5lci1sb2dvcyB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjAwLCA4MCwgMTIwLCAwLjEyKTsKICAgIHBhZGRpbmc6IDJyZW0gMi41cmVtOwogICAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpOwogIH0KCiAgLnBhcnRuZXItbG9nb3MtYmcgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgaW5zZXQ6IDA7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjllOGVmIDAlLCAjZmNlOGYwIDEwMCUpOwogICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyOwogICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7CiAgICBhbmltYXRpb246IHBhaW50TG9nb0JnIDUuMXMgbGluZWFyIGZvcndhcmRzOwogIH0KCiAgQGtleWZyYW1lcyBwYWludExvZ29CZyB7CiAgICAwJSAgIHsgdHJhbnNmb3JtOiBzY2FsZVgoMCk7IH0KICAgIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlWCgxKTsgfQogIH0KCiAgLnBhcnRuZXItbG9nb3MtY3ljbGlzdCB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBoZWlnaHQ6IDM2cHg7CiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOwogIH0KCiAgLnBhcnRuZXItbG9nb3MtY3ljbGlzdC1pY29uIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogNTAlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgZm9udC1zaXplOiAyNHB4OwogICAgbGluZS1oZWlnaHQ6IDE7CiAgfQoKICBAa2V5ZnJhbWVzIGN5Y2xpc3RMb29wIHsKICAgIDAlICAgeyByaWdodDogLTQwcHg7IH0KICAgIDEwMCUgeyByaWdodDogY2FsYygxMDAlICsgMjBweCk7IH0KICB9CgogIC5jMSB7CiAgICBhbmltYXRpb246IGN5Y2xpc3RMb29wIDUuMXMgbGluZWFyIGluZmluaXRlOwogICAgYW5pbWF0aW9uLWRlbGF5OiAwczsKICB9CgogIC5jMiB7CiAgICBhbmltYXRpb246IGN5Y2xpc3RMb29wIDUuMXMgbGluZWFyIGluZmluaXRlOwogICAgYW5pbWF0aW9uLWRlbGF5OiAtMS43czsKICAgIG9wYWNpdHk6IDAuODsKICAgIHRvcDogMzAlOwogIH0KCiAgLmMzIHsKICAgIGFuaW1hdGlvbjogY3ljbGlzdExvb3AgNS4xcyBsaW5lYXIgaW5maW5pdGU7CiAgICBhbmltYXRpb24tZGVsYXk6IC0zLjRzOwogICAgZm9udC1zaXplOiAyMHB4OwogICAgdG9wOiA3MCU7CiAgfQoKICAucGFydG5lci1sb2dvcy1pbm5lciB7CiAgICBtYXgtd2lkdGg6IDExMDBweDsKICAgIG1hcmdpbjogMCBhdXRvOwogICAgZGlzcGxheTogZmxleDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZ2FwOiAzcmVtOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGZsZXgtd3JhcDogbm93cmFwOwogIH0KCiAgLnBhcnRuZXItbG9nb3MtbGFiZWwgewogICAgZm9udC1zaXplOiAxMHB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjE4ZW07CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIGZsZXgtc2hyaW5rOiAwOwogIH0KCiAgLnBhcnRuZXItbG9nb3MtZGl2aWRlciB7CiAgICB3aWR0aDogMXB4OwogICAgaGVpZ2h0OiAzMnB4OwogICAgYmFja2dyb3VuZDogcmdiYSg0Miw1NCw0MCwwLjEyKTsKICAgIGZsZXgtc2hyaW5rOiAwOwogIH0KCiAgLnBhcnRuZXItbG9nb3MtbGlzdCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZ2FwOiAzcmVtOwogICAgZmxleDogMTsKICAgIGZsZXgtd3JhcDogbm93cmFwOwogIH0KCiAgLnBhcnRuZXItbG9nby1pdGVtIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBmbGV4LXNocmluazogMDsKICB9CgogIC5wYXJ0bmVyLWxvZ28taXRlbSBpbWcgewogICAgaGVpZ2h0OiA3dmg7CiAgICB3aWR0aDogYXV0bzsKICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgZmlsdGVyOiBncmF5c2NhbGUoMzAlKTsKICAgIHRyYW5zaXRpb246IGZpbHRlciAwLjJzOwogIH0KCiAgLnBhcnRuZXItbG9nby1pdGVtIGltZzpob3ZlciB7CiAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwJSk7CiAgfQoKICBAbWVkaWEgKG1heC13aWR0aDogNzAwcHgpIHsKICAgIC5wYXJ0bmVyLWxvZ29zIHsgcGFkZGluZzogMS41cmVtIDEuNXJlbTsgfQogICAgLnBhcnRuZXItbG9nb3MtaW5uZXIgeyBnYXA6IDA7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfQogICAgLnBhcnRuZXItbG9nb3MtbGFiZWwsIC5wYXJ0bmVyLWxvZ29zLWRpdmlkZXIgeyBkaXNwbGF5OiBub25lOyB9CiAgICAucGFydG5lci1sb2dvcy1saXN0IHsgZ2FwOiAxLjVyZW07IHdpZHRoOiAxMDAlOyB9CiAgICAucGFydG5lci1sb2dvLWl0ZW0gaW1nIHsgaGVpZ2h0OiAxMHZoOyB9CiAgfQoKCgoKCgogIC5pbnRyby1jdGEtYmxvY2sgewogICAgbWFyZ2luLXRvcDogMi41cmVtOwogIH0KCiAgLmludHJvLWN0YS1ibG9jay1pbm5lciB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgfQoKICAuaW50cm8tY3RhLXRpdGxlIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpOwogICAgZm9udC1zaXplOiBjbGFtcCgxLjVyZW0sIDIuNXZ3LCAxLjhyZW0pOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtOwogIH0KCiAgLmludHJvLWN0YS10aXRsZSBlbSB7CiAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICBjb2xvcjogdmFyKC0tZ3JlZW4tbGlnaHQpOwogIH0KCiAgLmludHJvLWN0YS1idG4gewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tZGVlcCk7CiAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsKICAgIHBhZGRpbmc6IDE1cHggMzBweDsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpOwogICAgZm9udC1zaXplOiAxNXB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMsIHRyYW5zZm9ybSAwLjE1czsKICB9CgogIC5pbnRyby1jdGEtYnRuOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuLW1pZCk7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgfQoKICBAbWVkaWEgKG1pbi13aWR0aDogNzAxcHgpIHsKICAgIC5pbnRyby1jdGEtYmxvY2staW5uZXIgewogICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIGdhcDogMS4yNXJlbTsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tZGVlcCk7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7CiAgICAgIHBhZGRpbmc6IDJyZW0gMi41cmVtOwogICAgfQoKICAgIC5pbnRyby1jdGEtdGl0bGUgewogICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIH0KCiAgICAuaW50cm8tY3RhLXRpdGxlIGVtIHsKICAgICAgY29sb3I6IHZhcigtLWdvbGQtbGlnaHQpOwogICAgfQoKICAgIC5pbnRyby1jdGEtYnRuIHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIH0KCiAgICAuaW50cm8tY3RhLWJ0bjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdvbGQtbGlnaHQpOwogICAgfQogIH0KCgoKCiAgICBwYWRkaW5nOiA1cmVtIDAgNnJlbTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuLXBhbGUpOwoKICAgIHBhZGRpbmc6IDAgMi41cmVtOwogICAgbWF4LXdpZHRoOiAxMTAwcHg7CiAgICBtYXJnaW46IDAgYXV0byAzLjVyZW07CgoKCiAgLmV2ZW50aS1jYXJvdXNlbC13cmFwIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQoKICAuZXZlbnRpLWNhcm91c2VsLXRyYWNrIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTsKICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgfQoKICAuZXZlbnRvLXNsaWRlIHsKICAgIG1pbi13aWR0aDogMTAwJTsKICAgIHdpZHRoOiAxMDAlOwogICAgZmxleC1zaHJpbms6IDA7CiAgICBwYWRkaW5nOiAwIDIuNXJlbTsKICB9CgogICAgbWF4LXdpZHRoOiAxMTAwcHg7CiAgICBtYXJnaW46IDAgYXV0bzsKCgoKCgoKCgogIC5nYWxsZXJ5LXNsaWRlciB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbi1wYWxlKTsKCiAgLmdhbGxlcnktdHJhY2sgewogICAgZGlzcGxheTogZmxleDsKICAgIGhlaWdodDogMTAwJTsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpOwogICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICB9CgogIC5nYWxsZXJ5LXNsaWRlIHsKICAgIG1pbi13aWR0aDogMTAwJTsKICAgIGZsZXgtc2hyaW5rOiAwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICB9CgogIC5nYWxsZXJ5LXNsaWRlIGltZyB7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIG9iamVjdC1maXQ6IGNvdmVyOwoKICAuZ2FsbGVyeS1idG4gewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiA1MCU7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTgpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjM1KTsKICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpOwogICAgY29sb3I6ICNmZmY7CiAgICB3aWR0aDogMzZweDsKICAgIGhlaWdodDogMzZweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMsIG9wYWNpdHkgMC4yczsKICAgIHotaW5kZXg6IDEwOwogICAgb3BhY2l0eTogMC41NTsKICB9CgogIC5nYWxsZXJ5LWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zNSk7IG9wYWNpdHk6IDE7IH0KICAuZ2FsbGVyeS1idG4ucHJldiB7IGxlZnQ6IDEwcHg7IH0KICAuZ2FsbGVyeS1idG4ubmV4dCB7IHJpZ2h0OiAxMHB4OyB9CgogIC5nYWxsZXJ5LWRvdHMgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYm90dG9tOiAxMHB4OwogICAgbGVmdDogNTAlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgZGlzcGxheTogZmxleDsKICAgIGdhcDogNnB4OwogICAgei1pbmRleDogMTA7CiAgfQoKICAuZ2FsbGVyeS1kb3QgewogICAgd2lkdGg6IDZweDsKICAgIGhlaWdodDogNnB4OwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjQ1KTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycywgdHJhbnNmb3JtIDAuMnM7CiAgfQoKICAuZ2FsbGVyeS1kb3QuYWN0aXZlIHsKICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMyk7CiAgfQoKCiAgLmV2ZW50by1kZXRhaWwgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDNweDsgfQoKCgoKICAuZXZlbnRvLWN0YS1ibG9jayB7CiAgICBtYXJnaW4tdG9wOiAwLjVyZW07CiAgICBwYWRkaW5nOiAxLjI1cmVtOwogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tcGFsZSk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg3NCwxNDAsOTIsMC4xOCk7CiAgfQoKICAuZXZlbnRvLWN0YS1ibG9jayBwLmN0YS1sYWJlbCB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMTJlbTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBjb2xvcjogdmFyKC0tZ3JlZW4tbGlnaHQpOwogICAgbWFyZ2luLWJvdHRvbTogMC4zcmVtOwogIH0KCiAgLmV2ZW50by1jdGEtYmxvY2sgcC5jdGEtYm9keSB7CiAgICBmb250LXNpemU6IDAuODVyZW07CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgbWFyZ2luLWJvdHRvbTogMC45cmVtOwogIH0KCiAgLmN0YS1idG4tc21hbGwgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA4cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOwogICAgcGFkZGluZzogMTBweCAyMHB4OwogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycywgdHJhbnNmb3JtIDAuMTVzOwogIH0KCiAgLmN0YS1idG4tc21hbGw6aG92ZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tbWlkKTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsKICB9CgoKCiAgLnJldmVhbC1idG46aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbi1taWQpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7IH0KICAucmV2ZWFsLWJ0biAuYXJyb3cgeyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0KCgogIC5mb3JtLXdyYXBwZXIub3BlbiB7IG1heC1oZWlnaHQ6IDYwMHB4OyBvcGFjaXR5OiAxOyB9CgogIC5mb3JtLWlubmVyIHsgcGFkZGluZy10b3A6IDEuNzVyZW07IH0KCiAgLmZvcm0taW5uZXIgaWZyYW1lIHsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiA0MjBweDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg0Miw1NCw0MCwwLjEpOwoKICAuZXZlbnRpLW5hdiB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZ2FwOiAxLjVyZW07CiAgICBwYWRkaW5nOiAycmVtIDIuNXJlbSAwOwogICAgbWF4LXdpZHRoOiAxMTAwcHg7CiAgICBtYXJnaW46IDAgYXV0bzsKCiAgLmV2ZW50aS1uYXYtYnRuIHsKICAgIHdpZHRoOiA0NHB4OwogICAgaGVpZ2h0OiA0NHB4OwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg0Miw1NCw0MCwwLjE1KTsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIGZvbnQtc2l6ZTogMThweDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzLCBib3JkZXItY29sb3IgMC4ycywgdHJhbnNmb3JtIDAuMTVzOwogICAgZmxleC1zaHJpbms6IDA7CiAgfQoKICAuZXZlbnRpLW5hdi1idG46aG92ZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tZGVlcCk7CiAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgfQoKICAuZXZlbnRpLW5hdi1waWxscyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAwLjVyZW07CiAgfQoKICAuZXZlbnRpLW5hdi1waWxsIHsKICAgIHBhZGRpbmc6IDZweCAxNnB4OwogICAgYm9yZGVyLXJhZGl1czogOTlweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNDIsNTQsNDAsMC4yKTsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKCiAgLmV2ZW50aS1uYXYtcGlsbC5hY3RpdmUgewogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tZGVlcCk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLWdyZWVuLWRlZXApOwogICAgY29sb3I6IHZhcigtLXdoaXRlKTsKCiAgLmV2ZW50aS1uYXYtcGlsbDpob3Zlcjpub3QoLmFjdGl2ZSkgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmVlbi1saWdodCk7CiAgICBjb2xvcjogdmFyKC0tZ3JlZW4tZGVlcCk7CgogIC8qIOKUgOKUgCBCSUNJU0NVT0xBIOKUgOKUgCAqLwogIC5iaWNpc2N1b2xhIHsKICAgIHBhZGRpbmc6IDZyZW0gMi41cmVtOwogICAgbWF4LXdpZHRoOiAxMTAwcHg7CiAgICBtYXJnaW46IDAgYXV0bzsKCiAgLmJpY2lzY3VvbGEtaW5uZXIgewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgIGdhcDogNHJlbTsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgfQoKICAuYmljaXNjdW9sYS10aXRsZSB7CiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTsKICAgIGZvbnQtc2l6ZTogY2xhbXAoMS42cmVtLCAzdncsIDIuMnJlbSk7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6IHZhcigtLWdyZWVuLWRlZXApOwogICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsKICB9CgogIC5iaWNpc2N1b2xhLWJvZHkgewogIH0KCiAgLmJpY2lzY3VvbGEtYm9keSBwIHsKICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgfQoKICAuYmljaXNjdW9sYS12aXN1YWwgewogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tcGFsZSk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg3NCwxNDAsOTIsMC4xOCk7CiAgICBwYWRkaW5nOiAzcmVtIDJyZW07CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEuNXJlbTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICB9CgogIC5iaWNpc2N1b2xhLWhpZ2hsaWdodCB7CiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsKICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjM1OwogIH0KCiAgLmJpY2lzY3VvbGEtaGlnaGxpZ2h0IGVtIHsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1saWdodCk7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgfQoKICAuYmljaXNjdW9sYS1wcml6ZSB7CiAgICBmb250LXNpemU6IDAuOXJlbTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSg3NCwxNDAsOTIsMC4xOCk7CiAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTsKICAgIHdpZHRoOiAxMDAlOwogIH0KCiAgLmJpY2lzY3VvbGEtcHJpemUgc3Ryb25nIHsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgfQoKICAvKiDilIDilIAgU0VaSU9ORSBJTVBBVFRPIEZJTkFMRSDilIDilIAgKi8KICAuaW1wYXR0by1zZWN0aW9uIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuLWRlZXApOwogICAgcGFkZGluZzogNnJlbSAyLjVyZW07CiAgICBvdmVyZmxvdzogaGlkZGVuOwoKICAuaW1wYXR0by1zZWN0aW9uOjpiZWZvcmUgewogICAgaW5zZXQ6IDA7CiAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA3MCUgNTAlLCByZ2JhKDc0LDE0MCw5MiwwLjE4KSAwJSwgdHJhbnNwYXJlbnQgNjUlKTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwoKICAuaW1wYXR0by1pbm5lciB7CiAgICBtYXgtd2lkdGg6IDExMDBweDsKICAgIG1hcmdpbjogMCBhdXRvOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgei1pbmRleDogMTsKICB9CgogIC5pbXBhdHRvLWxhYmVsIHsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjJlbTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBjb2xvcjogdmFyKC0tZ29sZC1saWdodCk7CiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEwcHg7CgogIC5pbXBhdHRvLWxhYmVsOjphZnRlciB7CiAgICBjb250ZW50OiAnJzsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgd2lkdGg6IDMycHg7CiAgICBoZWlnaHQ6IDFweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdvbGQtbGlnaHQpOwogICAgb3BhY2l0eTogMC41OwoKICAuaW1wYXR0by10aXRsZSB7CiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsKICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgNHZ3LCAzcmVtKTsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgbGluZS1oZWlnaHQ6IDEuMTU7CiAgICBtYXJnaW4tYm90dG9tOiAzLjVyZW07CiAgICBtYXgtd2lkdGg6IDYwMHB4OwoKICAuaW1wYXR0by1zdGF0cyB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsKICAgIGdhcDogMnJlbTsKICAgIG1hcmdpbi1ib3R0b206IDRyZW07CiAgfQoKICAuaW1wYXR0by1zdGF0IHsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpOwogICAgcGFkZGluZy10b3A6IDEuNXJlbTsKICB9CgogIC5pbXBhdHRvLXN0YXQtbnVtIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOwogICAgZm9udC1zaXplOiBjbGFtcCgyLjhyZW0sIDV2dywgNC41cmVtKTsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBjb2xvcjogdmFyKC0tZ29sZC1saWdodCk7CiAgICBsaW5lLWhlaWdodDogMTsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgbWFyZ2luLWJvdHRvbTogMC41cmVtOwogIH0KCiAgLmltcGF0dG8tc3RhdC1sYWJlbCB7CiAgICBmb250LXNpemU6IDFyZW07CiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjY1KTsKICAgIGZvbnQtd2VpZ2h0OiAzMDA7CiAgICBsaW5lLWhlaWdodDogMS40OwogIH0KCiAgLnRydXN0LWJhZGdlcyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAxcmVtOwogICAgZmxleC13cmFwOiB3cmFwOwogICAgbWFyZ2luLWJvdHRvbTogM3JlbTsKICB9CgogIC50cnVzdC1iYWRnZSB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTBweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wNik7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpOwogICAgYm9yZGVyLXJhZGl1czogOTlweDsKICAgIHBhZGRpbmc6IDEwcHggMThweDsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNzUpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpOwogIH0KCiAgLnRydXN0LWJhZGdlIC5iYWRnZS1pY29uIHsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGZsZXgtc2hyaW5rOiAwOwogIH0KCiAgLmZpbmFsLWN0YS1ib3ggewogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjA1KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xNCk7CiAgICBib3JkZXItcmFkaXVzOiAxNnB4OwogICAgcGFkZGluZzogMi41cmVtOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBnYXA6IDJyZW07CiAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTsKICB9CgogIC5maW5hbC1jdGEtZXllYnJvdyB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMTVlbTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBjb2xvcjogdmFyKC0tZ29sZC1saWdodCk7CiAgICBtYXJnaW4tYm90dG9tOiAwLjZyZW07CiAgfQoKICAuZmluYWwtY3RhLWhlYWRsaW5lIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOwogICAgZm9udC1zaXplOiBjbGFtcCgxLjNyZW0sIDIuNXZ3LCAxLjhyZW0pOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICBsaW5lLWhlaWdodDogMS4yOwogICAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTsKICB9CgogIC5maW5hbC1jdGEtYm9keSB7CiAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjYpOwogICAgbGluZS1oZWlnaHQ6IDEuNjU7CiAgICBtYXgtd2lkdGg6IDUyMHB4OwogIH0KCiAgLmZpbmFsLWN0YS1hY3Rpb25zIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICBnYXA6IDFyZW07CiAgICBmbGV4LXNocmluazogMDsKICB9CgogIC5jdGEtYnRuLXByaW1hcnkgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICBjb2xvcjogdmFyKC0tZ3JlZW4tZGVlcCk7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOwogICAgcGFkZGluZzogMTZweCAzMnB4OwogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7CiAgICBmb250LXNpemU6IDE1cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycywgdHJhbnNmb3JtIDAuMTVzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKCiAgLmN0YS1idG4tcHJpbWFyeTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkLWxpZ2h0KTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsKICB9CgogIC8qIOKUgOKUgCBGT09URVIg4pSA4pSAICovCiAgLmZvb3RlciB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXJrKTsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNDUpOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgcGFkZGluZzogMi41cmVtOwogICAgZm9udC1zaXplOiAxM3B4OwogIH0KCiAgLmZvb3RlciBzdHJvbmcgeyBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjcpOyB9CgogIC8qIOKUgOKUgCBSRVNQT05TSVZFIOKUgOKUgCAqLwogIEBtZWRpYSAobWF4LXdpZHRoOiA3MDBweCkgewogICAgLmludHJvLWJvZHkgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfQogICAgLmV2ZW50by1jYXJkLWJvZHkgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfQogICAgLmdhbGxlcnktc2xpZGVyIHsgaGVpZ2h0OiAyNDBweDsgfQogICAgLmhlcm8tYmFkZ2UgeyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogOHB4OyB9CiAgICAuaW1wYXR0by1zdGF0cyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyBnYXA6IDEuNXJlbTsgfQogICAgLmZpbmFsLWN0YS1ib3ggeyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9CiAgICAudHJ1c3QtYmFkZ2VzIHsgZ2FwOiAwLjc1cmVtOyB9CiAgICAuYmljaXNjdW9sYS1pbm5lciB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyBnYXA6IDJyZW07IH0KICAgIC5ldmVudG8tc2xpZGUgeyBwYWRkaW5nOiAwIDFyZW07IH0KICAgIC5ldmVudGktbmF2IHsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDFyZW07IH0KICAgIC5ldmVudGktbmF2LXBpbGxzIHsgZmxleC13cmFwOiB3cmFwOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfQogIH0KCiAgaDEsIGgyLCBoMywgaDQgewogIDxkaXYgY2xhc3M9Imhlcm8tYmFkZ2UiPjwvZGl2PgogICAgPGgxIGNsYXNzPSJoZXJvLXRpdGxlIiBzdHlsZT0iZm9udC1zaXplOiBjbGFtcCgxLjhyZW0sIDMuOHZ3LCAzLjJyZW0pOyBtYXgtd2lkdGg6IDY4MHB4OyI+VkFJQSBpcyBTdXN0YWluYWJpbGl0eSBQYXJ0bmVyIG9mIHRoZSBHaXJvIGQnSXRhbGlhIDIwMjY8YnI+PGVtPjwvZW0+PC9oMT4KICAgICAgVGhyZWUgdGVycml0b3JpZXMsIDMgZGF5cyBvZiBjb2xsZWN0aXZlIHJlZm9yZXN0YXRpb24sIDMwMDAgdHJlZXMgcGxhbnRlZDogdGhpcyBpcyB0aGUgZ3JlZW4gdHJhaWwgbGVmdCBieSBWQUlBIGFuZCB0aGUgR2lybyBkJ0l0YWxpYSBmb3IgdGhlIDEwOXRoIGVkaXRpb24gb2YgdGhlIENvcnNhIFJvc2EuIEJ1dCB3ZSBkb24ndCBzdG9wIGhlcmUsIHdlIGNhbiBkbyBldmVuIG1vcmUuCjwhLS0g4pWQ4pWQIFBBUlRORVIgTE9HT1Mg4pWQ4pWQIC0tPgo8c2VjdGlvbiBjbGFzcz0icGFydG5lci1sb2dvcyI+CiAgPGRpdiBjbGFzcz0icGFydG5lci1sb2dvcy1iZyI+PC9kaXY+CiAgPGRpdiBjbGFzcz0icGFydG5lci1sb2dvcy1jeWNsaXN0Ij4KICAgIDxkaXYgY2xhc3M9InBhcnRuZXItbG9nb3MtY3ljbGlzdC1pY29uIGMxIj7wn5q0PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYXJ0bmVyLWxvZ29zLWN5Y2xpc3QtaWNvbiBjMiI+8J+atOKAjeKZgu+4jzwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFydG5lci1sb2dvcy1jeWNsaXN0LWljb24gYzMiPvCfmrTigI3imYDvuI88L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYXJ0bmVyLWxvZ29zLWlubmVyIj4KICAgIDxkaXYgY2xhc3M9InBhcnRuZXItbG9nb3MtbGlzdCI+CiAgICAgIDxkaXYgY2xhc3M9InBhcnRuZXItbG9nby1pdGVtIj4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly93d3cudmFpYS5ldS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9mZHNmc2QucG5nIiBhbHQ9IlBhcnRuZXIgMiI+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+Cjwvc2VjdGlvbj4KCiAgPGgyIGNsYXNzPSJpbnRyby10aXRsZSIgc3R5bGU9ImZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpOyBmb250LXdlaWdodDogNzAwOyI+MzAwMCB0cmVlcyBwbGFudGVkIHRvZ2V0aGVyLDxicj48ZW0gc3R5bGU9ImZvbnQtc3R5bGU6IG5vcm1hbDsgY29sb3I6IHZhcigtLWdyZWVuLWxpZ2h0KTsiPnRoZSBuZXh0IG9uZSBjYW4gYmUgeW91cnMuPC9lbT48L2gyPgogICAgICBWQUlBIHdhcyBib3JuIGZyb20gdGhlIHN0b3JtIG9mIHRoZSBzYW1lIG5hbWUgdGhhdCBpbiAyMDE4IHN3ZXB0IGF3YXkgPGI+NDIgbWlsbGlvbiB0cmVlcyBpbiB0aGUgRG9sb21pdGVzPC9iPi4gRnJvbSB0aGF0IGV2ZW50IGEgbWlzc2lvbiB3YXMgYm9ybjogdG8gZ2l2ZSBiYWNrIHRvIHRoZSBtb3VudGFpbnMgd2hhdCB0aGUgd2luZCB0b29rIGF3YXksIG9uZSB0cmVlIGF0IGEgdGltZS4KICAgIDxwPkZyb20gdGhlcmUgY2FtZSB0aGUgaWRlYSBvZiByZWNvdmVyaW5nIHRoZSB3b29kIG9mIHRoZSBmYWxsZW4gdHJlZXMsIGFjdGl2YXRpbmcgbG9jYWwgYXJ0aXNhbiBzdXBwbHkgY2hhaW5zIGFuZCBjcmVhdGluZyBhbiBpY29uaWMgb2JqZWN0OiB0aGUgPGI+VkFJQSBDdWJlPC9iPi4gQSBuYXR1cmFsIHNtYXJ0cGhvbmUgYW1wbGlmaWVyIHRoYXQgc2luY2UgMjAxOSBoYXMgYWxsb3dlZCB1cyB0byBwbGFudCA8Yj4yMDAsMDAwIG5ldyB0cmVlczwvYj4gaW4gdGhlIERvbG9taXRlcy48L3A+CgogIDxkaXYgY2xhc3M9ImludHJvLWN0YS1ibG9jayI+CiAgICA8ZGl2IGNsYXNzPSJpbnRyby1jdGEtYmxvY2staW5uZXIiPgogICAgICA8cCBjbGFzcz0iaW50cm8tY3RhLXRpdGxlIj5CeSBwdXJjaGFzaW5nIGEgVkFJQSBDdWJlIDxlbT50aGUgbmV4dCB0cmVlIGNhbiBiZSB5b3Vycy48L2VtPjwvcD4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cudmFpYS5ldS9lbi9wcm9kdWN0L3ZhaWEtY3ViZS8iIGNsYXNzPSJpbnRyby1jdGEtYnRuIj5CdXkgbm93IOKGkjwvYT4KICAgIDwvZGl2PgogIDwvZGl2PgogICAgPGgyIGNsYXNzPSJldmVudGktdGl0bGUiPlRocmVlIGRheXMgb2YgcmVmb3Jlc3RhdGlvbiwgdGhyZWUgYXJlYXMgcmVnZW5lcmF0ZWQgdG9nZXRoZXIuPC9oMj4KICAgIDxwIGNsYXNzPSJldmVudGktc3ViIj5UaHJlZSBzdGFnZXMgb2YgdGhlIEdpcm8uIFRocmVlIHRlcnJpdG9yaWVzIGhpdCBieSBWYWlhLiA8Yj5BIHNpbmdsZSBncmVlbiB0cmFpbCB0aGF0IGNvbnRpbnVlcyB0byBncm93PC9iPiB0aGFua3MgdG8gdGhvc2Ugd2hvIGNob29zZSB0byBiZSBwYXJ0IG9mIGl0LiBEaXNjb3ZlciB0aGUgYXJlYXMgd2hlcmUgd2UgcGxhbnRlZCB0b2dldGhlciBpbiBBcHJpbC48L3A+CiAgPGRpdiBjbGFzcz0iZXZlbnRpLW5hdiI+CiAgICA8YnV0dG9uIGNsYXNzPSJldmVudGktbmF2LWJ0biIgb25jbGljaz0iY2hhbmdlRXZlbnRvKC0xKSIgYXJpYS1sYWJlbD0iUHJldmlvdXMgRXZlbnQiPuKGkDwvYnV0dG9uPgogICAgPGRpdiBjbGFzcz0iZXZlbnRpLW5hdi1waWxscyI+CiAgICAgIDxidXR0b24gY2xhc3M9ImV2ZW50aS1uYXYtcGlsbCBhY3RpdmUiIG9uY2xpY2s9ImdvVG9FdmVudG8oMCkiPjAxIMK3IERhcnpvPC9idXR0b24+CiAgICAgIDxidXR0b24gY2xhc3M9ImV2ZW50aS1uYXYtcGlsbCIgb25jbGljaz0iZ29Ub0V2ZW50bygxKSI+MDIgwrcgQ2FuYXplaTwvYnV0dG9uPgogICAgICA8YnV0dG9uIGNsYXNzPSJldmVudGktbmF2LXBpbGwiIG9uY2xpY2s9ImdvVG9FdmVudG8oMikiPjAzIMK3IENsYXV0PC9idXR0b24+CiAgICA8YnV0dG9uIGNsYXNzPSJldmVudGktbmF2LWJ0biIgb25jbGljaz0iY2hhbmdlRXZlbnRvKDEpIiBhcmlhLWxhYmVsPSJOZXh0IEV2ZW50Ij7ihpI8L2J1dHRvbj4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0iZXZlbnRpLWNhcm91c2VsLXdyYXAiIHN0eWxlPSJtYXJnaW4tdG9wOiAxLjVyZW07Ij4KICAgIDxkaXYgY2xhc3M9ImV2ZW50aS1jYXJvdXNlbC10cmFjayIgaWQ9ImV2ZW50aVRyYWNrIj4KCiAgICAgIDwhLS0gU0xJREUgMTogREFSWk8gLS0+CiAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1zbGlkZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWNhcmQiIGlkPSJldmVudG8tZGFyem8iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8cCBjbGFzcz0iZXZlbnRvLXRhZyI+RXZlbnQgMDEgwrcgVHJlbnRpbm88L3A+CiAgICAgICAgICAgICAgPGgzIGNsYXNzPSJldmVudG8tbmFtZSI+UGxhbnRpbmcgaW4gRGFyem88L2gzPgogICAgICAgICAgICAgIDxwIGNsYXNzPSJldmVudG8tdGFwcGEiPjE3dGggR2lybyBTdGFnZTogPHN0cm9uZz5DYXNzYW5vIGQnQWRkYSDigJMgQW5kYWxvIOKGkiBQbGFudGluZyBpbiBEYXJ6bywgVmFsZG9uZWEgbG9jYWxpdHk8L3N0cm9uZz48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLW51bSI+MDE8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1jYXJkLWJvZHkiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LXNsaWRlciIgZGF0YS1zbGlkZXI9IiI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS10cmFjayI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LXNsaWRlIj48aW1nIHNyYz0iaHR0cHM6Ly93d3cudmFpYS5ldS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9EYXJ6by0xLXNjYWxlZC5qcGc\/dz04MDAmYW1wO3E9ODAiIGFsdD0iRm9yZXN0YSBEYXJ6byAxIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktc2xpZGUiPjxpbWcgc3JjPSJodHRwczovL3d3dy52YWlhLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L0RhcnpvLTItc2NhbGVkLmpwZz93PTgwMCZhbXA7cT04MCIgYWx0PSJGb3Jlc3RhIERhcnpvIDIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1zbGlkZSI+PGltZyBzcmM9Imh0dHBzOi8vd3d3LnZhaWEuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvRFNDMDgwODAtc2NhbGVkLmpwZz93PTgwMCZhbXA7cT04MCIgYWx0PSJGb3Jlc3RhIERhcnpvIDMiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1zbGlkZSI+PGltZyBzcmM9Imh0dHBzOi8vd3d3LnZhaWEuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvRGFyem8tNC1zY2FsZWQuanBnP3c9ODAwJmFtcDtxPTgwIiBhbHQ9IkZvcmVzdGEgRGFyem8gNCI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LXNsaWRlIj48aW1nIHNyYz0iaHR0cHM6Ly93d3cudmFpYS5ldS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9EYXJ6by01LXNjYWxlZC5qcGc\/dz04MDAmYW1wO3E9ODAiIGFsdD0iRm9yZXN0YSBEYXJ6byA1Ij48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJnYWxsZXJ5LWJ0biBwcmV2IiBvbmNsaWNrPSJzbGlkZUdhbGxlcnkodGhpcywgLTEpIj7ihpA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJnYWxsZXJ5LWJ0biBuZXh0IiBvbmNsaWNrPSJzbGlkZUdhbGxlcnkodGhpcywgMSkiPuKGkjwvYnV0dG9uPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktZG90cyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LWRvdCBhY3RpdmUiIG9uY2xpY2s9ImdvVG9TbGlkZSh0aGlzLCAwKSI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LWRvdCIgb25jbGljaz0iZ29Ub1NsaWRlKHRoaXMsIDEpIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktZG90IiBvbmNsaWNrPSJnb1RvU2xpZGUodGhpcywgMikiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1kb3QiIG9uY2xpY2s9ImdvVG9TbGlkZSh0aGlzLCAzKSI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LWRvdCIgb25jbGljaz0iZ29Ub1NsaWRlKHRoaXMsIDQpIj48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1pbmZvIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tZGV0YWlsIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLWxhYmVsIj5Ib3cgbWFueSB0cmVlczwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLXZhbHVlIj4xLDAwMCB0cmVlcyBwbGFudGVkPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1kZXRhaWwiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtbGFiZWwiPldoZXJlPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtdmFsdWUiPk1hbGdhIFNwaW5hLCBDb2xsZWN0aXZlIFByb3BlcnR5IG9mIHRoZSBEYXJ6byBGcmFjdGlvbiwgTXVuaWNpcGFsaXR5IG9mIFN0b3JvLCBWYWxsZSBkZWwgQ2hpZXNlIChUTikuPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxwIGNsYXNzPSJldmVudG8tZGVzYyI+CiAgICAgICAgICAgICAgICBUaGUgQ2hpZXNlIFZhbGxleSBpcyB0dXJuaW5nIGdyZWVuIGFnYWluLiBEYXJ6byBpcyBvbmUgb2YgdGhlIGFyZWFzIHRoYXQgc3RpbGwgYmVhcnMgdGhlIHNpZ25zIG9mIHRoZSBWYWlhIHN0b3JtLCBidXQgdG9kYXkgdGhlc2Ugd29vZHMgdGVsbCBhIG5ldyBzdG9yeSBvZiByZWJpcnRoLjxicj48YnI+CiAgICAgICAgICAgICAgICBUb2dldGhlciB3aXRoIG91ciBwYXJ0bmVycyBhbmQgbG9jYWwgZmFtaWxpZXMsIHdlIHR1cm5lZCBhIHN5bWJvbGljIGdlc3R1cmUgaW50byBhIGNvbmNyZXRlIGFjdGlvbjogbmV3IHRyZWVzLCBuZXcgcm9vdHMgYW5kIGEgbmV3IGZ1dHVyZSBmb3IgdGhlc2UgbW91bnRhaW5zLgogICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tY3RhLWJsb2NrIj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjdGEtbGFiZWwiPkhlbHAgdGhpcyBmb3Jlc3Qga2VlcCBncm93aW5nPC9wPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImN0YS1ib2R5Ij5FdmVyeSBWQUlBIHB1cmNoYXNlIGNvbnRyaWJ1dGVzIHRvIGdlbmVyYXRpbmcgYSByZWFsIGltcGFjdCBvbiB0aGUgdGVycml0b3J5IGFuZCBzdXBwb3J0aW5nIG5ldyByZWZvcmVzdGF0aW9uIHByb2plY3RzIGluIHRoZSBEb2xvbWl0ZXMuPC9wPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cudmFpYS5ldS9lbi9zaG9wLyIgY2xhc3M9ImN0YS1idG4tc21hbGwiPkRpc2NvdmVyIFZBSUEgcHJvZHVjdHMg4oaSPC9hPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1zZWN0aW9uIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmV2ZWFsLWJ0biIgb25jbGljaz0idG9nZ2xlRm9ybSgnZm9ybS1kYXJ6bycsIHRoaXMpIj4KICAgICAgICAgICAgICBEaXNjb3ZlciB0aGUgcGxhbnRpbmcgYXJlYQogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhcnJvdyI+4oaTPC9zcGFuPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS13cmFwcGVyIiBpZD0iZm9ybS1kYXJ6byI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1pbm5lciI+CiAgICAgICAgICAgICAgICA8aWZyYW1lIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkP3BiPSExbTE4ITFtMTIhMW0zITFkMTA3OTkuMDAwODQ5MzA2NDM0ITJkMTAuNTQ1Mzc1Mzc4MjYyNDkxITNkNDUuODU0MTIxNzcwNjAxNjE2ITJtMyExZjAhMmYwITNmMCEzbTIhMWkxMDI0ITJpNzY4ITRmMTMuMSEzbTMhMW0yITFzMHg0NzgyMjU0MmQ0YTY4OGVmJTNBMHhmMDQzZWMzYzFmYTBhNTghMnNBZ3JpJTIwOTAlMjAtJTIwU29jaWV0JUMzJUEwJTIwQ29vcGVyYXRpdmElMjBBZ3JpY29sYSE1ZTAhM20yITFzaXQhMnNpdCE0djE3NzU4MjQ5NTMyNjQhNW0yITFzaXQhMnNpdCIgYWxsb3dmdWxsc2NyZWVuPSIiIGxvYWRpbmc9ImxhenkiIHJlZmVycmVycG9saWN5PSJuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSI+PC9pZnJhbWU+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBTTElERSAyOiBDQU5BWkVJIC0tPgogICAgICA8ZGl2IGNsYXNzPSJldmVudG8tc2xpZGUiPgogICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1jYXJkIiBpZD0iZXZlbnRvLWNhbmF6ZWkiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8cCBjbGFzcz0iZXZlbnRvLXRhZyI+RXZlbnQgMDIgwrcgRG9sb21pdGVzPC9wPgogICAgICAgICAgICAgIDxoMyBjbGFzcz0iZXZlbnRvLW5hbWUiPlBsYW50aW5nIGluIENhbmF6ZWkgKFBlbmlhIGxvY2FsaXR5KTwvaDM+CiAgICAgICAgICAgICAgPHAgY2xhc3M9ImV2ZW50by10YXBwYSI+MTl0aCBTdGFnZTogPHN0cm9uZz5GZWx0cmUg4oaSIEFsbGVnaGU8L3N0cm9uZz48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLW51bSI+MDI8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1jYXJkLWJvZHkiPgogICAgICAgICAgICA8IS0tIEdhbGxlcnkgYW5kIGNvbnRlbnQgZm9yIENhbmF6ZWkgKHNhbWUgc3RydWN0dXJlKSAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1zbGlkZXIiIGRhdGEtc2xpZGVyPSIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktdHJhY2siPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1zbGlkZSI+PGltZyBzcmM9Imh0dHBzOi8vd3d3LnZhaWEuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvY2FuYXplaS0yLXNjYWxlZC5qcGciIGFsdD0iQ2FuYXplaSAxIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktc2xpZGUiPjxpbWcgc3JjPSJodHRwczovL3d3dy52YWlhLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L2NhbmF6ZWktNC1zY2FsZWQuanBnP3c9ODAwJmFtcDtxPTgwIiBhbHQ9IkNhbmF6ZWkgMiI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LXNsaWRlIj48aW1nIHNyYz0iaHR0cHM6Ly93d3cudmFpYS5ldS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9jYW5hemVpLTUtc2NhbGVkLmpwZz93PTgwMCZhbXA7cT04MCIgYWx0PSJDYW5hemVpIDMiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1zbGlkZSI+PGltZyBzcmM9Imh0dHBzOi8vd3d3LnZhaWEuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvY2FuYXplaS0xLXNjYWxlZC5qcGc\/dz04MDAmYW1wO3E9ODAiIGFsdD0iQ2FuYXplaSA0Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktc2xpZGUiPjxpbWcgc3JjPSJodHRwczovL3d3dy52YWlhLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L2NhbmF6ZWktMy1zY2FsZWQuanBnP3c9ODAwJmFtcDtxPTgwIiBhbHQ9IkNhbmF6ZWkgNSI+PC9kaXY+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZ2FsbGVyeS1idG4gcHJldiIgb25jbGljaz0ic2xpZGVHYWxsZXJ5KHRoaXMsIC0xKSI+4oaQPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZ2FsbGVyeS1idG4gbmV4dCIgb25jbGljaz0ic2xpZGVHYWxsZXJ5KHRoaXMsIDEpIj7ihpI8L2J1dHRvbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LWRvdHMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1kb3QgYWN0aXZlIiBvbmNsaWNrPSJnb1RvU2xpZGUodGhpcywgMCkiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1kb3QiIG9uY2xpY2s9ImdvVG9TbGlkZSh0aGlzLCAxKSI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LWRvdCIgb25jbGljaz0iZ29Ub1NsaWRlKHRoaXMsIDIpIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktZG90IiBvbmNsaWNrPSJnb1RvU2xpZGUodGhpcywgMykiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1kb3QiIG9uY2xpY2s9ImdvVG9TbGlkZSh0aGlzLCA0KSI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8taW5mbyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWRldGFpbCI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC1sYWJlbCI+SG93IG1hbnkgdHJlZXM8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC12YWx1ZSI+MSwwMDAgdHJlZXMgcGxhbnRlZDwvc3Bhbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tZGV0YWlsIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLWxhYmVsIj5XaGVyZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLXZhbHVlIj5QZW5pYSwgQ2FuYXplaSAtIFZhbCBkaSBGYXNzYSAoVE4pPC9zcGFuPgogICAgICAgICAgICAgIDxwIGNsYXNzPSJldmVudG8tZGVzYyI+CiAgICAgICAgICAgICAgICBJbiB0aGUgaGVhcnQgb2YgdGhlIERvbG9taXRlcyBVTkVTQ08gV29ybGQgSGVyaXRhZ2UgU2l0ZSwgVmFsIGRpIEZhc3NhIHJlcHJlc2VudHMgb25lIG9mIHRoZSBzdHJvbmdlc3Qgc3ltYm9scyBvZiByZWJpcnRoIGFmdGVyIHRoZSBWYWlhIHN0b3JtLiBJbiBDYW5hemVpLCBpbiB0aGUgbG9jYWxpdHkgb2YgUGVuaWEsIGFtb25nIGljb25pYyBtb3VudGFpbnMgYW5kIGZvcmVzdHMgd291bmRlZCBieSB0aGUgd2luZCwgd2UgaGF2ZSBicm91Z2h0IHRvIGxpZmUgYSBuZXcgY29uY3JldGUgcmVmb3Jlc3RhdGlvbiBhY3Rpb24uPGJyPjxicj4KICAgICAgICAgICAgICAgIFRvZ2V0aGVyIHdpdGggb3VyIHBhcnRuZXJzIGFuZCBsb2NhbCBzY2hvb2xzLCB3ZSBwbGFudGVkIG5ldyB0cmVlcyB0byBnaXZlIGJhY2sgZW5lcmd5LCB2YWx1ZSBhbmQgZnV0dXJlIHRvIG9uZSBvZiB0aGUgbW9zdCBleHRyYW9yZGluYXJ5IGxhbmRzY2FwZXMgb2YgdGhlIERvbG9taXRlcy4KICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWN0YS1ibG9jayI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iY3RhLWxhYmVsIj5CcmluZyByZWFsIGltcGFjdCB0byB0aGUgdGVycml0b3J5IHRvbzwvcD4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjdGEtYm9keSI+V2l0aCBldmVyeSBwdXJjaGFzZSB5b3Ugc3VwcG9ydCBuZXcgY29uY3JldGUgZW52aXJvbm1lbnRhbCByZWdlbmVyYXRpb24gYWN0aW9ucy48L3A+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy52YWlhLmV1L2VuL3Nob3AvIiBjbGFzcz0iY3RhLWJ0bi1zbWFsbCI+RGlzY292ZXIgVkFJQSBwcm9kdWN0cyDihpI8L2E+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXNlY3Rpb24iPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJyZXZlYWwtYnRuIiBvbmNsaWNrPSJ0b2dnbGVGb3JtKCdmb3JtLWNhbmF6ZWknLCB0aGlzKSI+CiAgICAgICAgICAgICAgRGlzY292ZXIgdGhlIHBsYW50aW5nIGFyZWEKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXJyb3ciPuKGkzwvc3Bhbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0td3JhcHBlciIgaWQ9ImZvcm0tY2FuYXplaSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1pbm5lciI+CiAgICAgICAgICAgICAgICA8aWZyYW1lIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkP3BiPSExbTE4ITFtMTIhMW0zITFkMTEwMDAuMCEyZDExLjc3MyEzZDQ2LjQ3NiEybTMhMWYwITJmMCEzZjAhM20yITFpMTAyNCEyaTc2OCE0ZjEzLjEhM20zITFtMiExczB4NDc4MzhlN2Y1YjVlM2E4ZiUzQTB4YWJjZGVmMTIzNDU2Nzg5MCEyc0NhbmF6ZWklMkMrVE4hNWUwITNtMiExc2l0ITJzaXQhNHYxIiBhbGxvd2Z1bGxzY3JlZW49IiIgbG9hZGluZz0ibGF6eSIgcmVmZXJyZXJwb2xpY3k9Im5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIj48L2lmcmFtZT4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gU0xJREUgMzogQ0xBVVQgLS0+CiAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1zbGlkZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWNhcmQiIGlkPSJldmVudG8tY2xhdXQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWNhcmQtaGVhZGVyIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8cCBjbGFzcz0iZXZlbnRvLXRhZyI+RXZlbnQgMDMgwrcgRnJpdWxpPC9wPgogICAgICAgICAgICAgIDxoMyBjbGFzcz0iZXZlbnRvLW5hbWUiPlBsYW50aW5nIGluIENsYXV0IChMZXNpcyBsb2NhbGl0eSk8L2gzPgogICAgICAgICAgICAgIDxwIGNsYXNzPSJldmVudG8tdGFwcGEiPjIwdGggU3RhZ2U6IDxzdHJvbmc+R2Vtb25hIGRlbCBGcml1bGkg4oaSIFBpYW5jYXZhbGxvPC9zdHJvbmc+PC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1udW0iPjAzPC9zcGFuPgogICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWNhcmQtYm9keSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktc2xpZGVyIiBkYXRhLXNsaWRlcj0iIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LXRyYWNrIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktc2xpZGUiPjxpbWcgc3JjPSJodHRwczovL3d3dy52YWlhLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L0NsYXV0XzI0YXByXzExNS1zY2FsZWQuanBnP3c9ODAwJmFtcDtxPTgwIiBhbHQ9IkNsYXV0IDEiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1zbGlkZSI+PGltZyBzcmM9Imh0dHBzOi8vd3d3LnZhaWEuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvQ2xhdXRfMjRhcHJfMDQ4LXNjYWxlZC5qcGc\/dz04MDAmYW1wO3E9ODAiIGFsdD0iQ2xhdXQgMiI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LXNsaWRlIj48aW1nIHNyYz0iaHR0cHM6Ly93d3cudmFpYS5ldS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9DbGF1dF8yNGFwcl8wODAtc2NhbGVkLmpwZz93PTgwMCZhbXA7cT04MCIgYWx0PSJDbGF1dCAzIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktc2xpZGUiPjxpbWcgc3JjPSJodHRwczovL3d3dy52YWlhLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L0NsYXV0XzI0YXByXzAzNC1zY2FsZWQuanBnP3c9ODAwJmFtcDtxPTgwIiBhbHQ9IkNsYXV0IDQiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1zbGlkZSI+PGltZyBzcmM9Imh0dHBzOi8vd3d3LnZhaWEuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvQ2xhdXRfMjRhcHJfMTM4LXNjYWxlZC5qcGc\/dz04MDAmYW1wO3E9ODAiIGFsdD0iQ2xhdXQgNSI+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZ2FsbGVyeS1idG4gcHJldiIgb25jbGljaz0ic2xpZGVHYWxsZXJ5KHRoaXMsIC0xKSI+4oaQPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZ2FsbGVyeS1idG4gbmV4dCIgb25jbGljaz0ic2xpZGVHYWxsZXJ5KHRoaXMsIDEpIj7ihpI8L2J1dHRvbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LWRvdHMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1kb3QgYWN0aXZlIiBvbmNsaWNrPSJnb1RvU2xpZGUodGhpcywgMCkiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1kb3QiIG9uY2xpY2s9ImdvVG9TbGlkZSh0aGlzLCAxKSI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LWRvdCIgb25jbGljaz0iZ29Ub1NsaWRlKHRoaXMsIDIpIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktZG90IiBvbmNsaWNrPSJnb1RvU2xpZGUodGhpcywgMykiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1kb3QiIG9uY2xpY2s9ImdvVG9TbGlkZSh0aGlzLCA0KSI+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8taW5mbyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWRldGFpbCI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC1sYWJlbCI+SG93IG1hbnkgdHJlZXM8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC12YWx1ZSI+MSwwMDAgdHJlZXMgcGxhbnRlZDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tZGV0YWlsIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLWxhYmVsIj5XaGVyZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLXZhbHVlIj5MZXNpcyBsb2NhbGl0eSwgQ2xhdXQ8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPHAgY2xhc3M9ImV2ZW50by1kZXNjIj4KICAgICAgICAgICAgICAgIFRoZSBWYWxjZWxsaW5hLCBpbiBGcml1bGkgVmVuZXppYSBHaXVsaWEsIHdhcyBvbmUgb2YgdGhlIGFyZWFzIG1vc3QgYWZmZWN0ZWQgYnkgdGhlIFZhaWEgc3Rvcm0uIFRvZGF5IENsYXV0IGJlY29tZXMgdGhlIHN5bWJvbCBvZiBhIG5ldyByZXN0YXJ0OiBhIHBsYWNlIHdoZXJlIHRoZSBmb3Jlc3QgZ3Jvd3MgYWdhaW4gdGhhbmtzIHRvIHRoZSBzaGFyZWQgY29tbWl0bWVudCBvZiB0aGUgY29tbXVuaXR5LCB0aGUgdGVycml0b3J5IGFuZCB0aGUgcGVvcGxlLjxicj48YnI+CiAgICAgICAgICAgICAgICBUb2dldGhlciB3aXRoIG91ciBwYXJ0bmVycywgc2Nob29scyBhbmQgbG9jYWwgZmFtaWxpZXMsIHdlIHBsYW50ZWQgbmV3IHRyZWVzIHRvIGNvbnRyaWJ1dGUgY29uY3JldGVseSB0byB0aGUgcmVnZW5lcmF0aW9uIG9mIHRoZXNlIG1vdW50YWlucywgYnVpbGRpbmcgYSBzdHJvbmdlciBhbmQgbW9yZSBzdXN0YWluYWJsZSBmdXR1cmUgZm9yIHRoZSB0ZXJyaXRvcnkuCiAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1jdGEtYmxvY2siPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImN0YS1sYWJlbCI+VGhpcyBncmVlbiB0cmFpbCBjb250aW51ZXMgdGhhbmtzIHRvIHlvdTwvcD4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjdGEtYm9keSI+Q2hvb3NpbmcgVkFJQSBtZWFucyBjb250cmlidXRpbmcgdG8gdGhlIHJlYmlydGggb2YgdGhlIG1vdW50YWlucy48L3A+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy52YWlhLmV1L2VuL3Nob3AvIiBjbGFzcz0iY3RhLWJ0bi1zbWFsbCI+RGlzY292ZXIgVkFJQSBwcm9kdWN0cyDihpI8L2E+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXNlY3Rpb24iPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJyZXZlYWwtYnRuIiBvbmNsaWNrPSJ0b2dnbGVGb3JtKCdmb3JtLWNsYXV0JywgdGhpcykiPgogICAgICAgICAgICAgIERpc2NvdmVyIHRoZSBwbGFudGluZyBhcmVhCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFycm93Ij7ihpM8L3NwYW4+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXdyYXBwZXIiIGlkPSJmb3JtLWNsYXV0Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWlubmVyIj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvZW1iZWQ\/cGI9ITFtMTghMW0xMiExbTMhMWQxMTIwMC4wITJkMTIuNTE5ITNkNDYuMTg2ITJtMyExZjAhMmYwITNmMCEzbTIhMWkxMDI0ITJpNzY4ITRmMTMuMSEzbTMhMW0yITFzMHg0Nzc5NTNkOWIyZjRlNmE1JTNBMHg5ODc2NTQzMjEwZmVkY2JhITJzQ2xhdXQlMkMrUE4hNWUwITNtMiExc2l0ITJzaXQhNHYxIiBhbGxvd2Z1bGxzY3JlZW49IiIgbG9hZGluZz0ibGF6eSIgcmVmZXJyZXJwb2xpY3k9Im5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIj48L2lmcmFtZT4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KCjwvc2VjdGlvbj4KPCEtLSDilZDilZAgQklDSVNDVU9MQSDilZDilZAgLS0+CjxzZWN0aW9uIGNsYXNzPSJiaWNpc2N1b2xhIj4KICA8ZGl2IGNsYXNzPSJiaWNpc2N1b2xhLWlubmVyIj4KICAgIDxkaXYgY2xhc3M9ImJpY2lzY3VvbGEtdGV4dCI+CiAgICAgIDxwIGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5FZHVjYXRpb25hbCBQYXJ0bmVyc2hpcDwvcD4KICAgICAgPGgyIGNsYXNzPSJiaWNpc2N1b2xhLXRpdGxlIj5WQUlBIGFuZCBCaWNpU2N1b2xhOiBwZWRhbGluZyB0b2dldGhlciB0b3dhcmRzIHRoZSBmdXR1cmU8L2gyPgogICAgICA8ZGl2IGNsYXNzPSJiaWNpc2N1b2xhLWJvZHkiPgogICAgICAgIDxwPkZvciB0aGUgMjAyNiBlZGl0aW9uIDxiPlZBSUEgaXMgRWR1Y2F0aW9uYWwgUGFydG5lcjwvYj4gb2YgdGhlIEJpY2lTY3VvbGEgcHJvamVjdCwgYnJpbmdpbmcgaXRzIGNvbnRyaWJ1dGlvbiB3aXRoIGRlZGljYXRlZCBjb250ZW50IGFuZCBhIGNvbmNyZXRlIGV4cGVyaWVuY2UsIGxpbmtlZCB0byB0aGUgcmVmb3Jlc3RhdGlvbiBhY3Rpdml0aWVzIHByb21vdGVkIGFsb25nIHRoZSBHaXJvIHJvdXRlLjwvcD4KICAgICAgICA8cD5BbiBvcHBvcnR1bml0eSB0byA8Yj5icmluZyB0aGUgbmV3IGdlbmVyYXRpb25zPC9iPiBjbG9zZXIgdG8gY2FyaW5nIGZvciB0aGUgdGVycml0b3J5LCB0cmFuc2Zvcm1pbmcgdmFsdWVzIGFuZCBhd2FyZW5lc3MgaW50byByZWFsIGFjdGlvbnMuPC9wPgogICAgICAgIDxwPlRvIGNvbXBsZXRlIHRoZSBwcm9qZWN0LCBWQUlBIHdpbGwgYXdhcmQgdGhlIHdpbm5pbmcgY2xhc3NlcyB3aXRoIGEgPHN0cm9uZz5WQUlBIEN1YmU8L3N0cm9uZz4uIEEgd2F5IHRvIDxiPmxlYXZlIGEgdGFuZ2libGUgbWFyazwvYj4gYW5kIGJ1aWxkLCB0b2dldGhlciwgYSBjdWx0dXJlIG9mIHN1c3RhaW5hYmlsaXR5LjwvcD4KICAgIDxkaXYgY2xhc3M9ImJpY2lzY3VvbGEtdmlzdWFsIj4KICAgICAgPGltZyBzcmM9Imh0dHBzOi8vd3d3LnZhaWEuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvQmljaS1zY3V1bGEucG5nIiBhbHQ9IkJpY2lTY3VvbGEiIHN0eWxlPSJ3aWR0aDoyMCU7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7IG9iamVjdC1maXQ6IGNvdmVyOyBkaXNwbGF5OiBibG9jazsiPgogICAgICA8cCBjbGFzcz0iYmljaXNjdW9sYS1oaWdobGlnaHQiPgogICAgICAgIFZBSUEgaXMgRWR1Y2F0aW9uYWwgUGFydG5lcjxicj5vZiBCaWNpU2N1b2xhIDIwMjYKICAgICAgPC9wPgogICAgICA8ZGl2IGNsYXNzPSJiaWNpc2N1b2xhLXByaXplIj4KICAgICAgICA8c3Ryb25nPvCfj4YgUHJpemUgZm9yIHRoZSB3aW5uaW5nIGNsYXNzZXM8L3N0cm9uZz48YnI+CiAgICAgICAgU2Nob29scyBwYXJ0aWNpcGF0aW5nIGluIHRoZSBCaWNpU2N1b2xhIHByb2plY3Qgd2lsbCBoYXZlIHRoZSBvcHBvcnR1bml0eSB0byB3aW4gYSBWQUlBIEN1YmUsIGEgY29uY3JldGUgc3ltYm9sIG9mIGNvbW1pdG1lbnQgdG8gdGhlIG1vdW50YWlucy4KPC9zZWN0aW9uPgo8IS0tIOKVkOKVkCBTRVpJT05FIElNUEFUVE8gRklOQUxFIOKVkOKVkCAtLT4KPHNlY3Rpb24gY2xhc3M9ImltcGF0dG8tc2VjdGlvbiI+CiAgPGRpdiBjbGFzcz0iaW1wYXR0by1pbm5lciI+CiAgICA8cCBjbGFzcz0iaW1wYXR0by1sYWJlbCI+QSByZWFsIGltcGFjdCwgYnVpbHQgdG9nZXRoZXI8L3A+CiAgICA8aDIgY2xhc3M9ImltcGF0dG8tdGl0bGUiPlRoZSBHaXJvIHBhc3Nlcy48YnI+VGhlIGltcGFjdCByZW1haW5zLjwvaDI+CiAgICA8ZGl2IGNsYXNzPSJpbXBhdHRvLXN0YXRzIj4KICAgICAgPGRpdiBjbGFzcz0iaW1wYXR0by1zdGF0Ij4KICAgICAgICA8c3BhbiBjbGFzcz0iaW1wYXR0by1zdGF0LW51bSI+MywwMDA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImltcGF0dG8tc3RhdC1sYWJlbCI+bmV3IHRyZWVzIHBsYW50ZWQgaW4gdGhlIERvbG9taXRlczwvc3Bhbj4KICAgICAgPGRpdiBjbGFzcz0iaW1wYXR0by1zdGF0Ij4KICAgICAgICA8c3BhbiBjbGFzcz0iaW1wYXR0by1zdGF0LW51bSI+Mzwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iaW1wYXR0by1zdGF0LWxhYmVsIj5yZWdlbmVyYXRlZCB0ZXJyaXRvcmllcyBiZXR3ZWVuIFRyZW50aW5vLCBWZW5ldG8gYW5kIEZyaXVsaTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImltcGF0dG8tc3RhdCI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImltcGF0dG8tc3RhdC1udW0iPjEwMCs8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImltcGF0dG8tc3RhdC1sYWJlbCI+cGVvcGxlIGludm9sdmVkIGluIHRoZSBwbGFudGluZyBkYXlzPC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InRydXN0LWJhZGdlcyI+CiAgICAgIDxkaXYgY2xhc3M9InRydXN0LWJhZGdlIj4KICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UtaWNvbiI+8J+PlO+4jzwvc3Bhbj4KICAgICAgICA8c3Bhbj5Eb2xvbWl0ZXMgVU5FU0NPIFdvcmxkIEhlcml0YWdlPC9zcGFuPgogICAgICA8ZGl2IGNsYXNzPSJ0cnVzdC1iYWRnZSI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlLWljb24iPuKZu++4jzwvc3Bhbj4KICAgICAgICA8c3Bhbj5Qcm9kdWN0cyBtYWRlIHdpdGggd29vZCByZWNvdmVyZWQgZnJvbSB0aGUgc3Rvcm08L3NwYW4+CiAgICAgIDxkaXYgY2xhc3M9InRydXN0LWJhZGdlIj4KICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UtaWNvbiI+8J+knTwvc3Bhbj4KICAgICAgICA8c3Bhbj5Mb2NhbCBjb21tdW5pdGllcyBpbnZvbHZlZCBpbiBldmVyeSBwcm9qZWN0PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZpbmFsLWN0YS1ib3giPgogICAgICA8ZGl2IGNsYXNzPSJmaW5hbC1jdGEtdGV4dCI+CiAgICAgICAgPHAgY2xhc3M9ImZpbmFsLWN0YS1leWVicm93Ij5TdXBwb3J0IHJlZm9yZXN0YXRpb248L3A+CiAgICAgICAgPHAgY2xhc3M9ImZpbmFsLWN0YS1oZWFkbGluZSI+RG8geW91ciBwYXJ0Ljxicj5Ob3cuPC9wPgogICAgICAgIDxwIGNsYXNzPSJmaW5hbC1jdGEtYm9keSI+RXZlcnkgVkFJQSBwdXJjaGFzZSBoZWxwcyByZWdlbmVyYXRlIHRoZSBmb3Jlc3RzIGFmZmVjdGVkIGJ5IHRoZSBWYWlhIHN0b3JtIGFuZCBidWlsZCBhIG1vcmUgc3VzdGFpbmFibGUgZnV0dXJlIGZvciB0aGUgRG9sb21pdGVzLiBBIGNvbmNyZXRlIGNob2ljZSwgYSBtZWFzdXJhYmxlIGltcGFjdC48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImZpbmFsLWN0YS1hY3Rpb25zIj4KICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy52YWlhLmV1L2VuL3Nob3AvIiBjbGFzcz0iY3RhLWJ0bi1wcmltYXJ5Ij5EaXNjb3ZlciBWQUlBIHByb2R1Y3RzIOKGkjwvYT4KICAgICAgPC9kaXY+CiAgLyog4pWQ4pWQIEVWRU5USSBDQVJPVVNFTCDilZDilZAgKi8KICBsZXQgY3VycmVudEV2ZW50byA9IDA7CiAgY29uc3QgVE9UQUxfRVZFTlRJID0gMzsKICBsZXQgZXZlbnRvQXV0b3BsYXk7CgogIGZ1bmN0aW9uIHVwZGF0ZUV2ZW50b0Nhcm91c2VsKGlkeCkgewogICAgY29uc3QgdHJhY2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRpVHJhY2snKTsKICAgIHRyYWNrLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVYKC0ke2lkeCAqIDEwMH0lKWA7CiAgICBjdXJyZW50RXZlbnRvID0gaWR4OwogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmV2ZW50aS1uYXYtcGlsbCcpLmZvckVhY2goKHBpbGwsIGkpID0+IHsKICAgICAgcGlsbC5jbGFzc0xpc3QudG9nZ2xlKCdhY3RpdmUnLCBpID09PSBpZHgpOwogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBjaGFuZ2VFdmVudG8oZGlyKSB7CiAgICBjb25zdCBuZXh0ID0gKGN1cnJlbnRFdmVudG8gKyBkaXIgKyBUT1RBTF9FVkVOVEkpICUgVE9UQUxfRVZFTlRJOwogICAgdXBkYXRlRXZlbnRvQ2Fyb3VzZWwobmV4dCk7CiAgICByZXNldEV2ZW50b0F1dG9wbGF5KCk7CiAgfQoKICBmdW5jdGlvbiBnb1RvRXZlbnRvKGlkeCkgewogICAgdXBkYXRlRXZlbnRvQ2Fyb3VzZWwoaWR4KTsKICAgIHJlc2V0RXZlbnRvQXV0b3BsYXkoKTsKICB9CgogIGZ1bmN0aW9uIHN0YXJ0RXZlbnRvQXV0b3BsYXkoKSB7CiAgICBldmVudG9BdXRvcGxheSA9IHNldEludGVydmFsKCgpID0+IHsKICAgICAgdXBkYXRlRXZlbnRvQ2Fyb3VzZWwoKGN1cnJlbnRFdmVudG8gKyAxKSAlIFRPVEFMX0VWRU5USSk7CiAgICB9LCA1MDAwKTsKICB9CgogIGZ1bmN0aW9uIHJlc2V0RXZlbnRvQXV0b3BsYXkoKSB7CiAgICBjbGVhckludGVydmFsKGV2ZW50b0F1dG9wbGF5KTsKICAgIHN0YXJ0RXZlbnRvQXV0b3BsYXkoKTsKICB9CgogIHN0YXJ0RXZlbnRvQXV0b3BsYXkoKTsKCiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmV2ZW50aS1jYXJvdXNlbC13cmFwJykuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IGNsZWFySW50ZXJ2YWwoZXZlbnRvQXV0b3BsYXkpKTsKICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZXZlbnRpLWNhcm91c2VsLXdyYXAnKS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgc3RhcnRFdmVudG9BdXRvcGxheSk7CgogIC8qIOKVkOKVkCBHQUxMRVJZIFNMSURFUiDilZDilZAgKi8KICBmdW5jdGlvbiBnZXRTbGlkZXJTdGF0ZShidG4pIHsKICAgIGNvbnN0IHNsaWRlciA9IGJ0bi5jbG9zZXN0KCdbZGF0YS1zbGlkZXJdJyk7CiAgICBjb25zdCB0cmFjayA9IHNsaWRlci5xdWVyeVNlbGVjdG9yKCcuZ2FsbGVyeS10cmFjaycpOwogICAgY29uc3QgZG90cyA9IHNsaWRlci5xdWVyeVNlbGVjdG9yQWxsKCcuZ2FsbGVyeS1kb3QnKTsKICAgIGNvbnN0IHRvdGFsID0gc2xpZGVyLnF1ZXJ5U2VsZWN0b3JBbGwoJy5nYWxsZXJ5LXNsaWRlJykubGVuZ3RoOwogICAgY29uc3QgY3VycmVudCA9IHBhcnNlSW50KHRyYWNrLmRhdGFzZXQuY3VycmVudCB8fCAnMCcpOwogICAgcmV0dXJuIHsgc2xpZGVyLCB0cmFjaywgZG90cywgdG90YWwsIGN1cnJlbnQgfTsKICB9CgogIGZ1bmN0aW9uIHVwZGF0ZVNsaWRlcih0cmFjaywgZG90cywgaWR4KSB7CiAgICB0cmFjay5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWCgtJHtpZHggKiAxMDB9JSlgOwogICAgdHJhY2suZGF0YXNldC5jdXJyZW50ID0gaWR4OwogICAgZG90cy5mb3JFYWNoKChkLCBpKSA9PiBkLmNsYXNzTGlzdC50b2dnbGUoJ2FjdGl2ZScsIGkgPT09IGlkeCkpOwogIH0KCiAgZnVuY3Rpb24gc2xpZGVHYWxsZXJ5KGJ0biwgZGlyKSB7CiAgICBjb25zdCB7IHRyYWNrLCBkb3RzLCB0b3RhbCwgY3VycmVudCB9ID0gZ2V0U2xpZGVyU3RhdGUoYnRuKTsKICAgIGNvbnN0IG5leHQgPSAoY3VycmVudCArIGRpciArIHRvdGFsKSAlIHRvdGFsOwogICAgdXBkYXRlU2xpZGVyKHRyYWNrLCBkb3RzLCBuZXh0KTsKICB9CgogIGZ1bmN0aW9uIGdvVG9TbGlkZShkb3QsIGlkeCkgewogICAgY29uc3Qgc2xpZGVyID0gZG90LmNsb3Nlc3QoJ1tkYXRhLXNsaWRlcl0nKTsKICAgIGNvbnN0IHRyYWNrID0gc2xpZGVyLnF1ZXJ5U2VsZWN0b3IoJy5nYWxsZXJ5LXRyYWNrJyk7CiAgICBjb25zdCBkb3RzID0gc2xpZGVyLnF1ZXJ5U2VsZWN0b3JBbGwoJy5nYWxsZXJ5LWRvdCcpOwogICAgdXBkYXRlU2xpZGVyKHRyYWNrLCBkb3RzLCBpZHgpOwogIH0KCiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtc2xpZGVyXScpLmZvckVhY2goc2xpZGVyID0+IHsKICAgIGxldCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHsKICAgICAgY29uc3QgdHJhY2sgPSBzbGlkZXIucXVlcnlTZWxlY3RvcignLmdhbGxlcnktdHJhY2snKTsKICAgICAgY29uc3QgZG90cyA9IHNsaWRlci5xdWVyeVNlbGVjdG9yQWxsKCcuZ2FsbGVyeS1kb3QnKTsKICAgICAgY29uc3QgdG90YWwgPSBzbGlkZXIucXVlcnlTZWxlY3RvckFsbCgnLmdhbGxlcnktc2xpZGUnKS5sZW5ndGg7CiAgICAgIGNvbnN0IGN1cnJlbnQgPSBwYXJzZUludCh0cmFjay5kYXRhc2V0LmN1cnJlbnQgfHwgJzAnKTsKICAgICAgdXBkYXRlU2xpZGVyKHRyYWNrLCBkb3RzLCAoY3VycmVudCArIDEpICUgdG90YWwpOwogICAgfSwgMzUwMCk7CgogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiBjbGVhckludGVydmFsKGludGVydmFsKSk7CiAgICBzbGlkZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+IHsKICAgICAgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7CiAgICAgICAgY29uc3QgdHJhY2sgPSBzbGlkZXIucXVlcnlTZWxlY3RvcignLmdhbGxlcnktdHJhY2snKTsKICAgICAgICBjb25zdCBkb3RzID0gc2xpZGVyLnF1ZXJ5U2VsZWN0b3JBbGwoJy5nYWxsZXJ5LWRvdCcpOwogICAgICAgIGNvbnN0IHRvdGFsID0gc2xpZGVyLnF1ZXJ5U2VsZWN0b3JBbGwoJy5nYWxsZXJ5LXNsaWRlJykubGVuZ3RoOwogICAgICAgIGNvbnN0IGN1cnJlbnQgPSBwYXJzZUludCh0cmFjay5kYXRhc2V0LmN1cnJlbnQgfHwgJzAnKTsKICAgICAgICB1cGRhdGVTbGlkZXIodHJhY2ssIGRvdHMsIChjdXJyZW50ICsgMSkgJSB0b3RhbCk7CiAgICAgIH0sIDM1MDApOwogICAgfSk7CiAgfSk7CgogIC8qIOKVkOKVkCBGT1JNIC8gTUFQIFJFVkVBTCDilZDilZAgKi8KBQcIBAgECAYIBQsIB6wDggasBgQkkQK2ApcCBIoCowM0uAGuAbwBPoQDjQGuAqcBlwGDAoYEBJMChwKoAbIDiQKIA48BlgE4nwGYASEEEwSPA50BlAIEggSyA\/MCAKYBlgGSArUBBCMYlgGiAqABqQKLAosGBDE5oQIiRAAsFSMWRAIvDxgEKQQWRAEbBIUCkgEeggaYASNJAIUCCgsPVQI5HBEcFAENCw0LCQENC00ACw0pqQSQAQgHCAYIDggOCAtIAQRMAAkIBggHDwQKEQULCAcPBAoLCAcPBAoHCwUHBQc0AbsDQQGCATmRBEEKuCdBAqEYQQE9AYkBQQCDBStBBS0jgAOAAqcQiAFBAJ0QAZQBkQEBhAMqsgKMAx2jBxWkAb4BrQGvAZ4FkRAWHocClAKsApcCmAOhJYsBuw4hqQKiA7sIkwOlA54EnwSPBaIGtEecF6YJuAOFA5MOgQuiB6g6AQuRDoEJC7gGgAagApECmQKTBpcCiTIRAQQAAAEAAAABBgACAQAAFwENQgEBAEEAAEEAAEEAAHVBAjmIAloBHxWrAYoBGxoZEBcSlAEhFp0BmwGYA6ABjgIWNxWGAqICqwOEAS+dAYoBkgGhASmOAZwBigKIAYwBjQEkqgKFBL4CgguqA7YDlAeIC6cYjgSUBqcGiQWjBpgFKYAGtBCUB54FKb4FpxO3Bq8EQRsB4AIAfQF3EzIwMjYtMDQtMDJUMTE6MzI6MDR3C2dpcm8taXRhbGlhdwdwdWJsaXNofZAFfQB3BmNsb3NlZHcGY2xvc2VkdwB5dwB3AHckZWZjN2JhZDktMmQ0Ni00ZTU1LThkMzEtMDMxYTBiNGE0MzlkeHcuPGRpdiBjbGFzcz0id3AtYmxvY2stY29sdW1ucyBhbGlnbmZ1bGwiPjwvZGl2PncMY29yZS9jb2x1bW5zeHcEZnVsbHckZGNiY2FmYjMtMDVkNC00ZTBiLWJiOTQtNTYyZGE3ZTg2YzM5eHcjPGRpdiBjbGFzcz0id3AtYmxvY2stY29sdW1uIj48L2Rpdj53C2NvcmUvY29sdW1udyQ3NDI2MTkzNy0xNzliLTQ0NDMtODAwNC1mNTQ4Y2JjNzdmZTd4d8zAATxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgo8dGl0bGU+VkFJQSDDlyBHaXJvIGQnSXRhbGlhIOKAkyBUcmVlIFBsYW50aW5nIDIwMjY8L3RpdGxlPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20iPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20iIGNyb3Nzb3JpZ2luPSIiPgo8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI\/ZmFtaWx5PVBsYXlmYWlyK0Rpc3BsYXk6aXRhbCx3Z2h0QDAsNDAwOzAsNzAwOzEsNDAwJmFtcDtmYW1pbHk9RE0rU2Fuczp3Z2h0QDMwMDs0MDA7NTAwJmFtcDtkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CjxzdHlsZT4KICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9CiAgOnJvb3QgewogICAgLS1ncmVlbi1kZWVwOiAjMWEzYTJhOwogICAgLS1ncmVlbi1taWQ6ICMyZDVhM2Q7CiAgICAtLWdyZWVuLWxpZ2h0OiAjNGE4YzVjOwogICAgLS1ncmVlbi1wYWxlOiAjZThmMmViOwogICAgLS1nb2xkOiAjYzlhODRjOwogICAgLS1nb2xkLWxpZ2h0OiAjZThkMDhhOwogICAgLS1jcmVhbTogI2Y3ZjRlZTsKICAgIC0tZGFyazogIzExMWExNDsKICAgIC0tdGV4dDogIzJhMzYyODsKICAgIC0tdGV4dC1tdXRlZDogIzZiN2M2ZTsKICAgIC0td2hpdGU6ICNmZmZmZmY7CiAgICAtLWZvbnQtZGlzcGxheTogJ1BsYXlmYWlyIERpc3BsYXknLCBHZW9yZ2lhLCBzZXJpZjsKICAgIC0tZm9udC1ib2R5OiAnRE0gU2FucycsIHN5c3RlbS11aSwgc2Fucy1zZXJpZjsKICAgIC0tcmFkaXVzOiA0cHg7CiAgICAtLXJhZGl1cy1sZzogMTJweDsKICB9CiAgaHRtbCB7IHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOyB9CiAgYm9keSB7CiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0KTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWNyZWFtKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBmb250LXNpemU6IDE2cHg7CiAgfQogIC8qIOKUgOKUgCBIRVJPIOKUgOKUgCAqLwogIC5oZXJvIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG1pbi1oZWlnaHQ6IDkydmg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuLWRlZXApOwogIH0KICAuaGVyby1iZyB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogMDsKICAgIGJhY2tncm91bmQ6CiAgICAgIGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMTAsMjUsMTYsMC4zNSkgMCUsIHJnYmEoMTAsMjUsMTYsMC43NSkgMTAwJSksCiAgICAgIHVybCgnaHR0cHM6Ly93d3cudmFpYS5ldS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC9HcnVwcG8tTW9udGFnbmUtQWxiZXJpLUZvcmVzdGEtR2lyby1kSXRhbGlhLmpwZycpIGNlbnRlciA4MCUvY292ZXIgbm8tcmVwZWF0OwogIH0KICAuaGVyby1iYWRnZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDJyZW07CiAgICBsZWZ0OiAyLjVyZW07CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMS41cmVtOwogIH0KICAuaGVyby1iYWRnZS1waWxsIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7CiAgICBjb2xvcjogI2ZmZjsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4xMmVtOwogICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICBwYWRkaW5nOiA2cHggMTRweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5cHg7CiAgfQogIC5oZXJvLWJhZGdlLXBpbGwuZ29sZCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ29sZCk7CiAgICBjb2xvcjogdmFyKC0tZ3JlZW4tZGVlcCk7CiAgfQogIC5oZXJvLWNvbnRlbnQgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgei1pbmRleDogMTsKICAgIHBhZGRpbmc6IDRyZW0gMi41cmVtOwogICAgbWF4LXdpZHRoOiA3NjBweDsKICB9CiAgLmhlcm8tZXllYnJvdyB7CiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4xOGVtOwogICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICBjb2xvcjogdmFyKC0tZ29sZC1saWdodCk7CiAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtOwogIH0KICAuaGVyby10aXRsZSB7CiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsKICAgIGZvbnQtc2l6ZTogY2xhbXAoMi44cmVtLCA2dncsIDVyZW0pOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICBsaW5lLWhlaWdodDogMS4wODsKICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsKICB9CiAgLmhlcm8tdGl0bGUgZW0gewogICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgY29sb3I6IHZhcigtLWdvbGQtbGlnaHQpOwogIH0KICAuaGVyby1zdWJ0aXRsZSB7CiAgICBmb250LXNpemU6IDEuMXJlbTsKICAgIGZvbnQtd2VpZ2h0OiAzMDA7CiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjgyKTsKICAgIG1heC13aWR0aDogNTIwcHg7CiAgICBsaW5lLWhlaWdodDogMS43OwogICAgbWFyZ2luLWJvdHRvbTogMi41cmVtOwogIH0KICAuaGVyby1wYXJ0bmVycyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMXJlbTsKICAgIGZsZXgtd3JhcDogd3JhcDsKICB9CiAgLnBhcnRuZXItdGFnIHsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4xZW07CiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMik7CiAgICBwYWRkaW5nOiA1cHggMTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5cHg7CiAgfQogIC5zY3JvbGwtaGludCB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBib3R0b206IDJyZW07CiAgICByaWdodDogMi41cmVtOwogICAgei1pbmRleDogMTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogOHB4OwogICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC40KTsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgfQogIC5zY3JvbGwtbGluZSB7CiAgICB3aWR0aDogMXB4OwogICAgaGVpZ2h0OiA0OHB4OwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTsKICAgIGFuaW1hdGlvbjogc2Nyb2xsUHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgfQogIEBrZXlmcmFtZXMgc2Nyb2xsUHVsc2UgewogICAgMCUsIDEwMCUgeyBvcGFjaXR5OiAwLjI1OyB0cmFuc2Zvcm06IHNjYWxlWSgxKTsgfQogICAgNTAlIHsgb3BhY2l0eTogMC42OyB0cmFuc2Zvcm06IHNjYWxlWSgxLjEpOyB9CiAgfQogIC8qIOKUgOKUgCBJTlRSTyDilIDilIAgKi8KICAuaW50cm8gewogICAgcGFkZGluZzogNnJlbSAyLjVyZW07CiAgICBtYXgtd2lkdGg6IDExMDBweDsKICAgIG1hcmdpbjogMCBhdXRvOwogIH0KICAuc2VjdGlvbi1sYWJlbCB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMmVtOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1saWdodCk7CiAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEwcHg7CiAgfQogIC5zZWN0aW9uLWxhYmVsOjphZnRlciB7CiAgICBjb250ZW50OiAnJzsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgd2lkdGg6IDMycHg7CiAgICBoZWlnaHQ6IDFweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuLWxpZ2h0KTsKICB9CiAgLmludHJvLXRpdGxlIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOwogICAgZm9udC1zaXplOiBjbGFtcCgycmVtLCA0dncsIDNyZW0pOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBtYXJnaW4tYm90dG9tOiAxLjc1cmVtOwogIH0KICAuaW50cm8tdGl0bGUgZW0gewogICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgY29sb3I6IHZhcigtLWdyZWVuLWxpZ2h0KTsKICB9CiAgLmludHJvLWJvZHkgewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgIGdhcDogMnJlbTsKICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgfQogIC5pbnRyby1ib2R5IHAgewogICAgZm9udC1zaXplOiAxcmVtOwogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgbGluZS1oZWlnaHQ6IDEuODsKICB9CiAgLmludHJvLWJvZHkgcDpmaXJzdC1jaGlsZCB7CiAgICBmb250LXNpemU6IDFyZW07CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBmb250LXdlaWdodDogNDAwOwogIH0KICAuaW50cm8tYm9keSBiLCAuaW50cm8tYm9keSBzdHJvbmcgewogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0KTsKICB9CiAgLyog4pSA4pSAIEVWRU5USSDilIDilIAgKi8KICAuZXZlbnRpIHsKICAgIHBhZGRpbmc6IDVyZW0gMi41cmVtIDZyZW07CiAgICBtYXgtd2lkdGg6IDExMDBweDsKICAgIG1hcmdpbjogMCBhdXRvOwogIH0KICAuZXZlbnRpLWhlYWRlciB7CiAgICBtYXJnaW4tYm90dG9tOiAzLjVyZW07CiAgfQogIC5ldmVudGktdGl0bGUgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7CiAgICBmb250LXNpemU6IGNsYW1wKDEuOHJlbSwgMy41dncsIDIuNnJlbSk7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6IHZhcigtLWdyZWVuLWRlZXApOwogICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIG1hcmdpbi1ib3R0b206IDAuNzVyZW07CiAgfQogIC5ldmVudGktc3ViIHsKICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIG1heC13aWR0aDogNTYwcHg7CiAgfQogIC8qIOKUgOKUgCBFVkVOVE8gQ0FSRCDilIDilIAgKi8KICAuZXZlbnRvLWNhcmQgewogICAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg0Miw1NCw0MCwwLjEpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBtYXJnaW4tYm90dG9tOiAzcmVtOwogIH0KICAuZXZlbnRvLWNhcmQtaGVhZGVyIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuLWRlZXApOwogICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgIHBhZGRpbmc6IDJyZW0gMi41cmVtOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgZ2FwOiAycmVtOwogICAgZmxleC13cmFwOiB3cmFwOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KICAuZXZlbnRvLW51bSB7CiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsKICAgIGZvbnQtc2l6ZTogNHJlbTsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTsKICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgcmlnaHQ6IDIuNXJlbTsKICAgIHRvcDogMS41cmVtOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgfQogIC5ldmVudG8tdGFnIHsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4xNWVtOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGNvbG9yOiB2YXIoLS1nb2xkLWxpZ2h0KTsKICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsKICB9CiAgLmV2ZW50by1uYW1lIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOwogICAgZm9udC1zaXplOiAxLjhyZW07CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjE1OwogICAgbWFyZ2luLWJvdHRvbTogMC40cmVtOwogIH0KICAuZXZlbnRvLXRhcHBhIHsKICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNSk7CiAgICBmb250LXdlaWdodDogMzAwOwogIH0KICAuZXZlbnRvLXRhcHBhIHN0cm9uZyB7CiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjc1KTsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgfQogIC5ldmVudG8tY2FyZC1ib2R5IHsKICAgIHBhZGRpbmc6IDJyZW0gMi41cmVtOwogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgIGdhcDogMnJlbTsKICAgIGFsaWduLWl0ZW1zOiBzdGFydDsKICB9CiAgLmV2ZW50by1tYXAgewogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDQyLDU0LDQwLDAuMSk7CiAgICBoZWlnaHQ6IDQyMHB4OwogIH0KICAuZXZlbnRvLW1hcCBpZnJhbWUgewogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBib3JkZXI6IG5vbmU7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CiAgLmV2ZW50by1pbmZvIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiAxLjI1cmVtOwogIH0KICAuZXZlbnRvLWRldGFpbCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogM3B4OwogIH0KICAuZXZlbnRvLWRldGFpbC1sYWJlbCB7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMTVlbTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBjb2xvcjogdmFyKC0tZ3JlZW4tbGlnaHQpOwogIH0KICAuZXZlbnRvLWRldGFpbC12YWx1ZSB7CiAgICBmb250LXNpemU6IDFyZW07CiAgICBmb250LXdlaWdodDogNDAwOwogICAgY29sb3I6IHZhcigtLXRleHQpOwogIH0KICAuZXZlbnRvLWRlc2MgewogICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgbGluZS1oZWlnaHQ6IDEuNzsKICAgIHBhZGRpbmctdG9wOiAwLjVyZW07CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSg0Miw1NCw0MCwwLjA4KTsKICB9CiAgLyog4pSA4pSAIEZPUk0gUkVWRUFMIEJVVFRPTiDilIDilIAgKi8KICAuZm9ybS1zZWN0aW9uIHsKICAgIHBhZGRpbmc6IDEuNXJlbSAyLjVyZW0gMi41cmVtOwogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoNDIsNTQsNDAsMC4wNyk7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbi1wYWxlKTsKICB9CiAgLnJldmVhbC1idG4gewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tZGVlcCk7CiAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsKICAgIHBhZGRpbmc6IDE0cHggMjhweDsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMsIHRyYW5zZm9ybSAwLjE1czsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQogIC5yZXZlYWwtYnRuOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuLW1pZCk7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgfQogIC5yZXZlYWwtYnRuOmFjdGl2ZSB7IHRyYW5zZm9ybTogc2NhbGUoMC45OCk7IH0KICAucmV2ZWFsLWJ0biAuYXJyb3cgewogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB9CiAgLnJldmVhbC1idG4ub3BlbiAuYXJyb3cgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9CiAgLmZvcm0td3JhcHBlciB7CiAgICBtYXgtaGVpZ2h0OiAwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC41cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKSwgb3BhY2l0eSAwLjRzIGVhc2U7CiAgICBvcGFjaXR5OiAwOwogIH0KICAuZm9ybS13cmFwcGVyLm9wZW4gewogICAgbWF4LWhlaWdodDogMjQwMHB4OwogICAgb3BhY2l0eTogMTsKICB9CiAgLmZvcm0taW5uZXIgewogICAgcGFkZGluZy10b3A6IDEuNzVyZW07CiAgfQogIC5mb3JtLXBsYWNlaG9sZGVyIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoNDIsNTQsNDAsMC4wNCk7CiAgICBib3JkZXI6IDJweCBkYXNoZWQgcmdiYSg0Miw1NCw0MCwwLjE1KTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7CiAgICBwYWRkaW5nOiAycmVtOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgZm9udC1zaXplOiAwLjlyZW07CiAgfQogIC8qIOKUgOKUgCBQUk9HUkFNTUEg4pSA4pSAICovCiAgLnByb2dyYW1tYS1ibG9jayB7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSg0Miw1NCw0MCwwLjA4KTsKICAgIHBhZGRpbmctdG9wOiAxLjI1cmVtOwogICAgbWFyZ2luLXRvcDogMC41cmVtOwogIH0KICAucHJvZ3JhbW1hLXRvZ2dsZSB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTBweDsKICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICBib3JkZXI6IG5vbmU7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4xMmVtOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1saWdodCk7CiAgICBwYWRkaW5nOiAwOwogICAgdHJhbnNpdGlvbjogY29sb3IgMC4yczsKICB9CiAgLnByb2dyYW1tYS10b2dnbGU6aG92ZXIgeyBjb2xvcjogdmFyKC0tZ3JlZW4tZGVlcCk7IH0KICAucHJvZ3JhbW1hLWFycm93IHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgfQogIC5wcm9ncmFtbWEtdG9nZ2xlLm9wZW4gLnByb2dyYW1tYS1hcnJvdyB7IHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH0KICAucHJvZ3JhbW1hLXdyYXBwZXIgewogICAgbWF4LWhlaWdodDogMDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuNXMgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSksIG9wYWNpdHkgMC40cyBlYXNlOwogICAgb3BhY2l0eTogMDsKICB9CiAgLnByb2dyYW1tYS13cmFwcGVyLm9wZW4gewogICAgbWF4LWhlaWdodDogMjIwMHB4OwogICAgb3BhY2l0eTogMTsKICB9CiAgLnByb2dyYW1tYS1pbm5lciB7CiAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiAwOwogIH0KICAucHJvZ3JhbW1hLWl0ZW0gewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTEwcHggMWZyOwogICAgZ2FwOiAxcmVtOwogICAgcGFkZGluZzogMC44NXJlbSAwOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoNDIsNTQsNDAsMC4wNik7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQogIC5wcm9ncmFtbWEtaXRlbTpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsgfQogIC5wcm9ncmFtbWEtaXRlbTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICcnOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogMTA4cHg7CiAgICB0b3A6IDA7CiAgICBib3R0b206IDA7CiAgICB3aWR0aDogMXB4OwogICAgYmFja2dyb3VuZDogcmdiYSg0Miw1NCw0MCwwLjA4KTsKICB9CiAgLnByb2dyYW1tYS10aW1lIHsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBjb2xvcjogdmFyKC0tZ3JlZW4tbGlnaHQpOwogICAgcGFkZGluZy10b3A6IDJweDsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgfQogIC5wcm9ncmFtbWEtY29udGVudCBwIHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0KTsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgfQogIC5wcm9ncmFtbWEtbm90ZSB7CiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKSAhaW1wb3J0YW50OwogICAgbWFyZ2luLXRvcDogNHB4OwogICAgZm9udC1zdHlsZTogaXRhbGljOwogIH0KICAucHJvZ3JhbW1hLWxpbmsgewogICAgZm9udC1zaXplOiAxMnB4OwogICAgY29sb3I6IHZhcigtLWdyZWVuLWxpZ2h0KTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIG1hcmdpbi10b3A6IDRweDsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnM7CiAgfQogIC5wcm9ncmFtbWEtbGluazpob3ZlciB7IGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsgfQogIGgxLCBoMiwgaDMsIGg0LCBlbSB7CiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KSAhaW1wb3J0YW50OwogIH0KPC9zdHlsZT4KCjwhLS0g4pWQ4pWQIEhFUk8g4pWQ4pWQIC0tPgo8c2VjdGlvbiBjbGFzcz0iaGVybyI+CiAgPGRpdiBjbGFzcz0iaGVyby1iZyI+PC9kaXY+CiAgPGRpdiBjbGFzcz0iaGVyby1iYWRnZSI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iaGVyby1jb250ZW50Ij4KICAgIDxwIGNsYXNzPSJoZXJvLWV5ZWJyb3ciPlZBSUEgw5cgR2lybyBkJ0l0YWxpYTwvcD4KICAgIDxoMSBjbGFzcz0iaGVyby10aXRsZSIgc3R5bGU9ImZvbnQtc2l6ZTogY2xhbXAoMS44cmVtLCAzLjh2dywgMy4ycmVtKTsgbWF4LXdpZHRoOiA2ODBweDsiPlZBSUEgQU5EIEdJUk8gRCdJVEFMSUEgTEVBVkUgQSBHUkVFTiBUUkFJTDxicj48ZW0+QUNUVUFMTFkgVEhSRUUuPC9lbT48L2gxPgogICAgPHAgY2xhc3M9Imhlcm8tc3VidGl0bGUiPgogICAgICBMZWF2aW5nIGEgcG9zaXRpdmUgaW1wYWN0IG9uIHRoZSB0ZXJyaXRvcnk6IHRoaXMgaGFzIGFsd2F5cyBiZWVuIFZBSUEncyBtaXNzaW9uLCBhbmQgaXQgaXMgYWxzbyB0aGUgZ29hbCBvZiB0aGUgY29sbGFib3JhdGlvbiB3aXRoIHRoZSAxMDl0aCBlZGl0aW9uIG9mIHRoZSBHaXJvIGQnSXRhbGlhLiBUaHJlZSBkYXlzIG9mIHJlZm9yZXN0YXRpb24sIHRocmVlIEdpcm8gc3RhZ2VzLCB0aHJlZSBhcmVhcyB0byByZWdlbmVyYXRlIHRvZ2V0aGVyLgogICAgPC9wPgogICAgPGRpdiBjbGFzcz0iaGVyby1wYXJ0bmVycyI+CiAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0bmVyLXRhZyI+U3VzdGFpbmFibGUgUGFydG5lcjwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InBhcnRuZXItdGFnIj5SaWRlIEdyZWVuPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icGFydG5lci10YWciPkJpY2lTY3VvbGE8L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0bmVyLXRhZyI+MyBldmVudHMgwrcgMjAyNjwvc3Bhbj4KICAgIDwvZGl2PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InNjcm9sbC1oaW50Ij4KICAgIDxkaXYgY2xhc3M9InNjcm9sbC1saW5lIj48L2Rpdj4KICAgIDxzcGFuPkRpc2NvdmVyPC9zcGFuPgogIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8IS0tIOKVkOKVkCBJTlRSTyDilZDilZAgLS0+CjxzZWN0aW9uIGNsYXNzPSJpbnRybyI+CiAgPHAgY2xhc3M9InNlY3Rpb24tbGFiZWwiPlRoZSBQcm9qZWN0PC9wPgogIDxoMiBjbGFzcz0iaW50cm8tdGl0bGUiIHN0eWxlPSJmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTsgZm9udC13ZWlnaHQ6IDcwMDsiPjMwMDAgbmV3IHRyZWVzIDxicj48ZW0gc3R5bGU9ImZvbnQtc3R5bGU6IG5vcm1hbDsgY29sb3I6IHZhcigtLWdyZWVuLWxpZ2h0KTsiPnRvIHBsYW50IHRvZ2V0aGVyLjwvZW0+PC9oMj4KICA8ZGl2IGNsYXNzPSJpbnRyby1ib2R5Ij4KICAgIDxwPgogICAgICBWQUlBIHdhcyBib3JuIGZyb20gdGhlIHN0b3JtIG9mIHRoZSBzYW1lIG5hbWUgdGhhdCBpbiAyMDE4IHN3ZXB0IGF3YXkgNDIgbWlsbGlvbiB0cmVlcyBpbiB0aGUgRG9sb21pdGVzLiBGcm9tIHRoYXQgZXZlbnQgPGI+YSBtaXNzaW9uIHdhcyBib3JuPC9iPjogdG8gZ2l2ZSBiYWNrIHRvIHRoZSBtb3VudGFpbnMgd2hhdCB0aGUgd2luZCB0b29rIGF3YXksIG9uZSB0cmVlIGF0IGEgdGltZSAodG8gZGlzY292ZXIgb3VyIHByb2plY3QsIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnZhaWEuZXUvZW4vcHJvamVjdC9kb2xvbWl0ZXMvIiBzdHlsZT0iY29sb3I6Z3JlZW47Ij5jbGljayBoZXJlPC9hPikuIEluIHRoZSBzcGlyaXQgb2YgVkFJQSwgd2Ugd2lsbCA8Yj5yZWZvcmVzdCB0aHJlZSBhcmVhczwvYj4gYWZmZWN0ZWQgYnkgU3Rvcm0gVmFpYSwgaW4gdGhlIGFyZWFzIG9mIHN0YWdlcyAxNywgMTkgYW5kIDIwIG9mIHRoZSBHaXJvLCBpbiB0aGUgRG9sb21pdGUgYXJlYXMgb2YgPGI+VHJlbnRpbm8sIFZlbmV0byBhbmQgRnJpdWxpPC9iPi48YnI+CiAgICAgIDxpbWcgc3JjPSJodHRwczovL3d3dy52YWlhLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0L1Byb2dldHRvLXNlbnphLXRpdG9sby5wbmciIHN0eWxlPSJ3aWR0aDogODUlOyBtYXgtd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IGF1dG87IG1hcmdpbi1ib3R0b206LTMwcHg7Ij4KICAgIDwvcD4KICAgIDxwPkJ1dCB0aGVyZSBpcyBvbmUgaW1wb3J0YW50IHRoaW5nOiB0cmVlcyBhcmUgbm90IHBsYW50ZWQgYWxvbmUuIFRoYXQncyB3aHkgPGI+d2Ugd2FudCB0byBkbyBpdCB3aXRoIHlvdTwvYj46IGNob29zZSB0aGUgcGxhbnRpbmcgZGF5IHlvdSB3YW50IHRvIGpvaW4gYW1vbmcgdGhlIHRocmVlIG9wdGlvbnMgYmVsb3csIHNpZ24gdXAgYW5kIGNvbWUgcGxhbnQgdHJlZXMgd2l0aCB1cyEKICAgIDwvcD4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKPCEtLSDilZDilZAgRVZFTlRJIOKVkOKVkCAtLT4KPHNlY3Rpb24gY2xhc3M9ImV2ZW50aSI+CiAgPGRpdiBjbGFzcz0iZXZlbnRpLWhlYWRlciI+CiAgICA8cCBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+VGhlIEV2ZW50czwvcD4KICAgIDxoMiBjbGFzcz0iZXZlbnRpLXRpdGxlIj5UaHJlZSBkYXlzIG9mIHJlZm9yZXN0YXRpb24sIHRocmVlIGFyZWFzIHRvIHJlZ2VuZXJhdGUgdG9nZXRoZXIuPC9oMj4KICAgIDxwIGNsYXNzPSJldmVudGktc3ViIj5TaWduIHVwIGZvciB0aGUgZXZlbnQgeW91IHByZWZlci4gRWFjaCBwbGFudGluZyB0YWtlcyBwbGFjZSBpbiBvbmUgb2YgdGhlIGFyZWFzIGNyb3NzZWQgYnkgdGhlIEdpcm8gZCdJdGFsaWEgc3RhZ2VzLjwvcD4KICA8L2Rpdj4KCiAgPCEtLSDilIDilIAgRVZFTlRPIDE6IERBUlpPIOKUgOKUgCAtLT4KICA8ZGl2IGNsYXNzPSJldmVudG8tY2FyZCIgaWQ9ImV2ZW50by1kYXJ6byI+CiAgICA8ZGl2IGNsYXNzPSJldmVudG8tY2FyZC1oZWFkZXIiPgogICAgICA8ZGl2PgogICAgICAgIDxwIGNsYXNzPSJldmVudG8tdGFnIj5FdmVudCAwMSDCtyBUcmVudGlubzwvcD4KICAgICAgICA8aDMgY2xhc3M9ImV2ZW50by1uYW1lIj5UcmVlIFBsYW50aW5nIGluIERhcnpvPC9oMz4KICAgICAgICA8cCBjbGFzcz0iZXZlbnRvLXRhcHBhIj4xN3RoIEdpcm8gU3RhZ2U6IDxzdHJvbmc+Q2Fzc2FubyBkJ0FkZGEg4oCTIEFuZGFsbyDihpIgcGxhbnRpbmcgaW4gRGFyem8sIFZhbGRvbmVhIGFyZWE6IDE4LzA0LzIwMjYgYXQgMTQ6MDAgKG1heCA0MCBwYXJ0aWNpcGFudHMpPC9zdHJvbmc+PC9wPgogICAgICA8L2Rpdj4KICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1udW0iPjAxPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJldmVudG8tY2FyZC1ib2R5Ij4KICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLW1hcCI+CiAgICAgICAgPGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9lbWJlZD9wYj0hMW0xOCExbTEyITFtMyExZDEwNzk5LjAwMDg0OTMwNjQzNCEyZDEwLjU0NTM3NTM3ODI2MjQ5MSEzZDQ1Ljg1NDEyMTc3MDYwMTYxNiEybTMhMWYwITJmMCEzZjAhM20yITFpMTAyNCEyaTc2OCE0ZjEzLjEhM20zITFtMiExczB4NDc4MjI1NDJkNGE2ODhlZiUzQTB4ZjA0M2VjM2MxZmEwYTU4ITJzQWdyaSUyMDkwJTIwLSUyMFNvY2lldCVDMyVBMCUyMENvb3BlcmF0aXZhJTIwQWdyaWNvbGEhNWUwITNtMiExc2l0ITJzaXQhNHYxNzc1ODI0OTUzMjY0ITVtMiExc2l0ITJzaXQiIGFsbG93ZnVsbHNjcmVlbj0iIiBsb2FkaW5nPSJsYXp5IiByZWZlcnJlcnBvbGljeT0ibm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiPjwvaWZyYW1lPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWluZm8iPgogICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1kZXRhaWwiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtbGFiZWwiPldoZW48L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC12YWx1ZSI+U2F0dXJkYXkgMTgvMDQvMjAyNiBmcm9tIDE0OjAwIHRvIDE4OjAwPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1kZXRhaWwiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtbGFiZWwiPldoZXJlPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtdmFsdWUiPk1hbGdhIFNwaW5hLCBDb2xsZWN0aXZlIFByb3BlcnR5IG9mIHRoZSBEYXJ6byBGcmFjdGlvbiwgTXVuaWNpcGFsaXR5IG9mIFN0b3JvLCBWYWxsZSBkZWwgQ2hpZXNlIChUTikuPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1kZXRhaWwiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtbGFiZWwiPlJlZ2lzdHJhdGlvbnM8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC12YWx1ZSI+TGltaXRlZCBwbGFjZXM6IG1heGltdW0gNDAgcGFydGljaXBhbnRzLiA8YnI+CiAgICAgICAgICA8Yj5SZWdpc3RyYXRpb24gYnkgMTUvMDQvMjAyNjwvYj48L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHAgY2xhc3M9ImV2ZW50by1kZXNjIj4KICAgICAgICAgIFRoZSBDaGllc2UgVmFsbGV5IHR1cm5zIGdyZWVuIGFnYWluLiBEYXJ6byBpcyBvbmUgb2YgdGhlIGFyZWFzIHRoYXQgc3RpbGwgYmVhcnMgdGhlIG1hcmtzIG9mIFN0b3JtIFZhaWEuIFdpdGggdGhpcyBwbGFudGluZyB3ZSBjb250cmlidXRlIGNvbmNyZXRlbHkgdG8gdGhlIHJlZ2VuZXJhdGlvbiBvZiB0aGUgbG9jYWwgZm9yZXN0LCB0b2dldGhlciB3aXRoIHRob3NlIHdobyB3YW50IHRvIGJlIHBhcnQgb2YgdGhlIGNoYW5nZS4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbW1hLWJsb2NrIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9InByb2dyYW1tYS10b2dnbGUiIG9uY2xpY2s9InRvZ2dsZVByb2dyYW1tYSh0aGlzKSI+CiAgICAgICAgICAgIDxzcGFuPlByb2dyYW1tZTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByb2dyYW1tYS1hcnJvdyI+4oaTPC9zcGFuPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtbWEtd3JhcHBlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW1tYS1pbm5lciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbW1hLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByb2dyYW1tYS10aW1lIj4xMzo0NSDigJMgMTQ6MDA8L3NwYW4+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtbWEtY29udGVudCI+CiAgICAgICAgICAgICAgICAgIDxwPk1lZXRpbmcgYXQgdGhlIGhlYWRxdWFydGVycyBvZiA8c3Ryb25nPkNvb3AgQUdSSTkwPC9zdHJvbmc+IChwcm9kdWNlciBvZiBTdG9ybydzIFllbGxvdyBGbG91cik8L3A+CiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vbWFwcy5hcHAuZ29vLmdsL2dLM3ZBb21HTHVUQ3hNVzc3IiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9InByb2dyYW1tYS1saW5rIj5WaWEgZGVsIFNvcmlubywgNjAg4oCTIDM4MDg5IFN0b3JvIChUTikg4oaXPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbW1hLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByb2dyYW1tYS10aW1lIj4xNDowMDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW1tYS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgPHA+RGVwYXJ0dXJlIGJ5IGRlZGljYXRlZCBtaW5pYnVzIHRvd2FyZHMgPHN0cm9uZz5Mb2NhbGl0w6AgRmFzZXJubzwvc3Ryb25nPjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW1tYS1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcm9ncmFtbWEtdGltZSI+MTQ6NDA8L3NwYW4+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtbWEtY29udGVudCI+CiAgICAgICAgICAgICAgICAgIDxwPkFycml2YWwgYW5kIHN0YXJ0IG9mIHRoZSBoaWtlIHRvd2FyZHMgTWFsZ2EgU3BpbmE8L3A+CiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwcm9ncmFtbWEtbm90ZSI+QXBwcm94aW1hdGVseSAyLjUga20gb24gYW4gYXNwaGFsdGVkIGZvcmVzdCByb2FkLCB3aXRoIGFuIGVsZXZhdGlvbiBnYWluIG9mIGFib3V0IDEwMCBtLCB0b3dhcmRzIE1hbGdhIFNwaW5hPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbW1hLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByb2dyYW1tYS10aW1lIj4xNTozMCDigJMgMTY6MzA8L3NwYW4+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtbWEtY29udGVudCI+CiAgICAgICAgICAgICAgICAgIDxwPlBsYW50aW5nIGFjdGl2aXR5LCBndWlkZWQgYnkgbG9jYWwgcGFydG5lcnMgYW5kIDxzdHJvbmc+VkFJQSBTcmw8L3N0cm9uZz48YnI+PGltZyBzcmM9Imh0dHBzOi8vd3d3LnZhaWEuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvMV9BU1VDX0xPR08tY29sb3JpLXNjYWxlZC5wbmciIHN0eWxlPSJ3aWR0aDogNjUlOyBtYXgtd2lkdGg6IDE3NXB4OyBoZWlnaHQ6IGF1dG87Ij48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtbWEtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJvZ3JhbW1hLXRpbWUiPjE2OjMwPC9zcGFuPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbW1hLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICA8cD5SZXR1cm4gb24gZm9vdCB0byBMb2NhbGl0w6AgRmFzZXJubzwvcD4KICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InByb2dyYW1tYS1ub3RlIj5Gb2xsb3dlZCBieSBtaW5pYnVzIHRyYW5zZmVyIHRvIHRoZSBwYXJraW5nIGFyZWE8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZvcm0tc2VjdGlvbiI+CiAgICAgIDxidXR0b24gY2xhc3M9InJldmVhbC1idG4iIG9uY2xpY2s9InRvZ2dsZUZvcm0oJ2Zvcm0tZGFyem8nLCB0aGlzKSI+CiAgICAgICAgUmVnaXN0ZXIgZm9yIHRoZSBldmVudAogICAgICAgIDxzcGFuIGNsYXNzPSJhcnJvdyI+4oaTPC9zcGFuPgogICAgICA8L2J1dHRvbj4KICAgICAgPGRpdiBjbGFzcz0iZm9ybS13cmFwcGVyIiBpZD0iZm9ybS1kYXJ6byI+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1pbm5lciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXBsYWNlaG9sZGVyIj4KICAgICAgICAgICAgW2h1YnNwb3QgdHlwZT0iZm9ybSIgcG9ydGFsPSIxNDM0MTY2MTUiIGlkPSJlODhjNGY0NC05ODYwLTRmNDctYTA0MS05OGViYzgyYTkzYzIiXQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CgogIDwhLS0g4pSA4pSAIEVWRU5UTyAyOiBDQU5BWkVJIOKUgOKUgCAtLT4KICA8ZGl2IGNsYXNzPSJldmVudG8tY2FyZCIgaWQ9ImV2ZW50by1jYW5hemVpIj4KICAgIDxkaXYgY2xhc3M9ImV2ZW50by1jYXJkLWhlYWRlciI+CiAgICAgIDxkaXY+CiAgICAgICAgPHAgY2xhc3M9ImV2ZW50by10YWciPkV2ZW50IDAyIMK3IERvbG9taXRlczwvcD4KICAgICAgICA8aDMgY2xhc3M9ImV2ZW50by1uYW1lIj5UcmVlIFBsYW50aW5nIGluIENhbmF6ZWkgKFBlbmlhIGFyZWEpPC9oMz4KICAgICAgICA8cCBjbGFzcz0iZXZlbnRvLXRhcHBhIj4xOXRoIFN0YWdlOiA8c3Ryb25nPkZlbHRyZSDihpIgQWxsZWdoZTwvc3Ryb25nPjwvcD4KICAgICAgPC9kaXY+CiAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tbnVtIj4wMjwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iZXZlbnRvLWNhcmQtYm9keSI+CiAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1tYXAiPgogICAgICAgIDxpZnJhbWUgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvZW1iZWQ\/cGI9ITFtMTghMW0xMiExbTMhMWQxMTAwMC4wITJkMTEuNzczITNkNDYuNDc2ITJtMyExZjAhMmYwITNmMCEzbTIhMWkxMDI0ITJpNzY4ITRmMTMuMSEzbTMhMW0yITFzMHg0NzgzOGU3ZjViNWUzYThmJTNBMHhhYmNkZWYxMjM0NTY3ODkwITJzQ2FuYXplaSUyQytUTiE1ZTAhM20yITFzaXQhMnNpdCE0djEiIGFsbG93ZnVsbHNjcmVlbj0iIiBsb2FkaW5nPSJsYXp5IiByZWZlcnJlcnBvbGljeT0ibm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiPjwvaWZyYW1lPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWluZm8iPgogICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1kZXRhaWwiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtbGFiZWwiPldoZXJlPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtdmFsdWUiPlBlbmlhLCBDYW5hemVpIC0gVmFsIGRpIEZhc3NhIChUTik8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWRldGFpbCI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC1sYWJlbCI+V2hlbjwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLXZhbHVlIj5UaHVyc2RheSAyMyBBcHJpbCAyMDI2LCBhdCAxMDozMDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tZGV0YWlsIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLWxhYmVsIj5NZWV0aW5nIHBvaW50PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtdmFsdWUiPjxhIGhyZWY9Imh0dHBzOi8vc2hhcmUuZ29vZ2xlL1k4ZUp2SnVjSG84MlRwSGJxIiBjbGFzcz0icHJvZ3JhbW1hLWxpbmsiPlBpYy1OaWMgQXJlYSBTdHJhZGEgUGFzc28gRmVkYWlhIOKGlzwvYT48YnI+VGhlIHBsYW50aW5nIGFyZWEgaXMgYWJvdXQgYSA1LW1pbnV0ZSB3YWxrIGZyb20gdGhlIHBhcmtpbmcgbG90LCBlYXN5IHBhdGg8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHAgY2xhc3M9ImV2ZW50by1kZXNjIj4KICAgICAgICAgIEluIHRoZSBoZWFydCBvZiB0aGUgVU5FU0NPIERvbG9taXRlcywgVmFsIGRpIEZhc3NhIGlzIG9uZSBvZiB0aGUgc3ltYm9saWMgdGVycml0b3JpZXMgb2YgcmViaXJ0aCBhZnRlciBWYWlhLiBJbiBDYW5hemVpIHdlIHBsYW50IHRvZ2V0aGVyIG9uIHRoZSBzbG9wZXMgbWFya2VkIGJ5IHRoZSB3aW5kLCBpbiBvbmUgb2YgdGhlIG1vc3QgZXh0cmFvcmRpbmFyeSBtb3VudGFpbiBsYW5kc2NhcGVzIGluIEl0YWx5LgogICAgICAgIDwvcD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZvcm0tc2VjdGlvbiI+CiAgICAgIDxidXR0b24gY2xhc3M9InJldmVhbC1idG4iIG9uY2xpY2s9InRvZ2dsZUZvcm0oJ2Zvcm0tY2FuYXplaScsIHRoaXMpIj4KICAgICAgICBSZWdpc3RlciBmb3IgdGhlIGV2ZW50CiAgICAgICAgPHNwYW4gY2xhc3M9ImFycm93Ij7ihpM8L3NwYW4+CiAgICAgIDwvYnV0dG9uPgogICAgICA8ZGl2IGNsYXNzPSJmb3JtLXdyYXBwZXIiIGlkPSJmb3JtLWNhbmF6ZWkiPgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taW5uZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1wbGFjZWhvbGRlciI+CiAgICAgICAgICAgIFtodWJzcG90IHR5cGU9ImZvcm0iIHBvcnRhbD0iMTQzNDE2NjE1IiBpZD0iN2E3NmRlYjQtOGEzMi00ZTYxLWE5MDEtZWI0YTY2MGE2ZjUzIl0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8IS0tIOKUgOKUgCBFVkVOVE8gMzogQ0xBVVQg4pSA4pSAIC0tPgogIDxkaXYgY2xhc3M9ImV2ZW50by1jYXJkIiBpZD0iZXZlbnRvLWNsYXV0Ij4KICAgIDxkaXYgY2xhc3M9ImV2ZW50by1jYXJkLWhlYWRlciI+CiAgICAgIDxkaXY+CiAgICAgICAgPHAgY2xhc3M9ImV2ZW50by10YWciPkV2ZW50IDAzIMK3IEZyaXVsaTwvcD4KICAgICAgICA8aDMgY2xhc3M9ImV2ZW50by1uYW1lIj5UcmVlIFBsYW50aW5nIGluIENsYXV0IChMZXNpcyBhcmVhKTwvaDM+CiAgICAgICAgPHAgY2xhc3M9ImV2ZW50by10YXBwYSI+MjB0aCBTdGFnZTogPHN0cm9uZz5HZW1vbmEgZGVsIEZyaXVsaSDihpIgUGlhbmNhdmFsbG88L3N0cm9uZz48L3A+CiAgICAgIDwvZGl2PgogICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLW51bSI+MDM8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImV2ZW50by1jYXJkLWJvZHkiPgogICAgICA8ZGl2IGNsYXNzPSJldmVudG8tbWFwIj4KICAgICAgICA8aWZyYW1lIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkP3BiPSExbTE4ITFtMTIhMW0zITFkMTEyMDAuMCEyZDEyLjUxOSEzZDQ2LjE4NiEybTMhMWYwITJmMCEzZjAhM20yITFpMTAyNCEyaTc2OCE0ZjEzLjEhM20zITFtMiExczB4NDc3OTUzZDliMmY0ZTZhNSUzQTB4OTg3NjU0MzIxMGZlZGNiYSEyc0NsYXV0JTJDK1BOITVlMCEzbTIhMXNpdCEyc2l0ITR2MSIgYWxsb3dmdWxsc2NyZWVuPSIiIGxvYWRpbmc9ImxhenkiIHJlZmVycmVycG9saWN5PSJuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSI+PC9pZnJhbWU+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJldmVudG8taW5mbyI+CiAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWRldGFpbCI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC1sYWJlbCI+TG9jYXRpb248L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC12YWx1ZSI+Q2xhdXQsIFZhbGNlbGxpbmEgKFBOKTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tZGV0YWlsIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLWxhYmVsIj5XaGVyZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLXZhbHVlIj5Mb2NhbGl0w6AgTGVzaXMsIENsYXV0PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1kZXRhaWwiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtbGFiZWwiPldoZW48L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC12YWx1ZSI+RnJpZGF5IDI0IEFwcmlsIDIwMjYsIGF0IDEwOjMwPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1kZXRhaWwiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtbGFiZWwiPk1lZXRpbmcgcG9pbnQ8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC12YWx1ZSI+PGEgaHJlZj0iaHR0cHM6Ly9tYXBzLmFwcC5nb28uZ2wvdFY3c3BvOHhMcWlydE45RDciIGNsYXNzPSJwcm9ncmFtbWEtbGluayI+UGFya2luZyBhcmVhIOKGlzwvYT48YnI+VGhlIHBsYW50aW5nIGFyZWEgaXMgYWJvdXQgYSAxMC1taW51dGUgd2FsayBmcm9tIHRoZSBwYXJraW5nIGxvdCwgZWFzeSBwYXRoPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxwIGNsYXNzPSJldmVudG8tZGVzYyI+CiAgICAgICAgICBWYWxjZWxsaW5hLCBpbiBGcml1bGksIHdhcyBvbmUgb2YgdGhlIGFyZWFzIG1vc3QgYWZmZWN0ZWQgYnkgU3Rvcm0gVmFpYS4gQ2xhdXQgaXMgdGhlIHN0YXJ0aW5nIHBvaW50IG9mIGEgcmVnZW5lcmF0aW9uIHRoYXQgaW52b2x2ZXMgbG9jYWwgY29tbXVuaXRpZXMsIHRoZSBmb3Jlc3QgYW5kIGFueW9uZSB3aG8gd2FudHMgdG8gcmV0dXJuIHRvIHRoZSBtb3VudGFpbnMgbm90IG9ubHkgdG8gYWRtaXJlIGl0cyBiZWF1dHksIGJ1dCB0byBjb250cmlidXRlIHRvIGl0cyBjYXJlLgogICAgICAgIDwvcD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZvcm0tc2VjdGlvbiI+CiAgICAgIDxidXR0b24gY2xhc3M9InJldmVhbC1idG4iIG9uY2xpY2s9InRvZ2dsZUZvcm0oJ2Zvcm0tY2xhdXQnLCB0aGlzKSI+CiAgICAgICAgUmVnaXN0ZXIgZm9yIHRoZSBldmVudAogICAgICAgIDxzcGFuIGNsYXNzPSJhcnJvdyI+4oaTPC9zcGFuPgogICAgICA8L2J1dHRvbj4KICAgICAgPGRpdiBjbGFzcz0iZm9ybS13cmFwcGVyIiBpZD0iZm9ybS1jbGF1dCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1pbm5lciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXBsYWNlaG9sZGVyIj4KICAgICAgICAgICBbaHVic3BvdCB0eXBlPSJmb3JtIiBwb3J0YWw9IjE0MzQxNjYxNSIgaWQ9ImI2YTcxOTk2LWM5Y2ItNDQ5OC1iYzVhLTkyMGNkZDJiNzkzNCJdCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKPHNjcmlwdD4KICBmdW5jdGlvbiB0b2dnbGVGb3JtKGlkLCBidG4pIHsKICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CiAgICBjb25zdCBpc09wZW4gPSB3cmFwcGVyLmNsYXNzTGlzdC5jb250YWlucygnb3BlbicpOwogICAgd3JhcHBlci5jbGFzc0xpc3QudG9nZ2xlKCdvcGVuJywgIWlzT3Blbik7CiAgICBidG4uY2xhc3NMaXN0LnRvZ2dsZSgnb3BlbicsICFpc09wZW4pOwogICAgYnRuLnF1ZXJ5U2VsZWN0b3IoJy5hcnJvdycpLnRleHRDb250ZW50ID0gaXNPcGVuID8gJ+KGkycgOiAn4oaRJzsKICB9CiAgZnVuY3Rpb24gdG9nZ2xlUHJvZ3JhbW1hKGJ0bikgewogICAgY29uc3Qgd3JhcHBlciA9IGJ0bi5uZXh0RWxlbWVudFNpYmxpbmc7CiAgICBjb25zdCBpc09wZW4gPSB3cmFwcGVyLmNsYXNzTGlzdC5jb250YWlucygnb3BlbicpOwogICAgd3JhcHBlci5jbGFzc0xpc3QudG9nZ2xlKCdvcGVuJywgIWlzT3Blbik7CiAgICBidG4uY2xhc3NMaXN0LnRvZ2dsZSgnb3BlbicsICFpc09wZW4pOwogICAgYnRuLnF1ZXJ5U2VsZWN0b3IoJy5wcm9ncmFtbWEtYXJyb3cnKS50ZXh0Q29udGVudCA9IGlzT3BlbiA\/ICfihpMnIDogJ+KGkSc7CiAgfQo8L3NjcmlwdD53CWNvcmUvaHRtbHfMwAE8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KPHRpdGxlPlZBSUEgw5cgR2lybyBkJ0l0YWxpYSDigJMgVHJlZSBQbGFudGluZyAyMDI2PC90aXRsZT4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj0iIj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1QbGF5ZmFpcitEaXNwbGF5Oml0YWwsd2dodEAwLDQwMDswLDcwMDsxLDQwMCZhbXA7ZmFtaWx5PURNK1NhbnM6d2dodEAzMDA7NDAwOzUwMCZhbXA7ZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiPgo8c3R5bGU+CiAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQogIDpyb290IHsKICAgIC0tZ3JlZW4tZGVlcDogIzFhM2EyYTsKICAgIC0tZ3JlZW4tbWlkOiAjMmQ1YTNkOwogICAgLS1ncmVlbi1saWdodDogIzRhOGM1YzsKICAgIC0tZ3JlZW4tcGFsZTogI2U4ZjJlYjsKICAgIC0tZ29sZDogI2M5YTg0YzsKICAgIC0tZ29sZC1saWdodDogI2U4ZDA4YTsKICAgIC0tY3JlYW06ICNmN2Y0ZWU7CiAgICAtLWRhcms6ICMxMTFhMTQ7CiAgICAtLXRleHQ6ICMyYTM2Mjg7CiAgICAtLXRleHQtbXV0ZWQ6ICM2YjdjNmU7CiAgICAtLXdoaXRlOiAjZmZmZmZmOwogICAgLS1mb250LWRpc3BsYXk6ICdQbGF5ZmFpciBEaXNwbGF5JywgR2VvcmdpYSwgc2VyaWY7CiAgICAtLWZvbnQtYm9keTogJ0RNIFNhbnMnLCBzeXN0ZW0tdWksIHNhbnMtc2VyaWY7CiAgICAtLXJhZGl1czogNHB4OwogICAgLS1yYWRpdXMtbGc6IDEycHg7CiAgfQogIGh0bWwgeyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgfQogIGJvZHkgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7CiAgICBjb2xvcjogdmFyKC0tdGV4dCk7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcmVhbSk7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC1zaXplOiAxNnB4OwogIH0KICAvKiDilIDilIAgSEVSTyDilIDilIAgKi8KICAuaGVybyB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBtaW4taGVpZ2h0OiA5MnZoOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbi1kZWVwKTsKICB9CiAgLmhlcm8tYmcgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgaW5zZXQ6IDA7CiAgICBiYWNrZ3JvdW5kOgogICAgICBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDEwLDI1LDE2LDAuMzUpIDAlLCByZ2JhKDEwLDI1LDE2LDAuNzUpIDEwMCUpLAogICAgICB1cmwoJ2h0dHBzOi8vd3d3LnZhaWEuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvR3J1cHBvLU1vbnRhZ25lLUFsYmVyaS1Gb3Jlc3RhLUdpcm8tZEl0YWxpYS5qcGcnKSBjZW50ZXIgODAlL2NvdmVyIG5vLXJlcGVhdDsKICB9CiAgLmhlcm8tYmFkZ2UgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAycmVtOwogICAgbGVmdDogMi41cmVtOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEuNXJlbTsKICB9CiAgLmhlcm8tYmFkZ2UtcGlsbCB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTsKICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOwogICAgY29sb3I6ICNmZmY7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMTJlbTsKICAgIHRleHQtdHJhbnNmb3JtOiBub25lOwogICAgcGFkZGluZzogNnB4IDE0cHg7CiAgICBib3JkZXItcmFkaXVzOiA5OXB4OwogIH0KICAuaGVyby1iYWRnZS1waWxsLmdvbGQgewogICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOwogICAgY29sb3I6IHZhcigtLWdyZWVuLWRlZXApOwogIH0KICAuaGVyby1jb250ZW50IHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHotaW5kZXg6IDE7CiAgICBwYWRkaW5nOiA0cmVtIDIuNXJlbTsKICAgIG1heC13aWR0aDogNzYwcHg7CiAgfQogIC5oZXJvLWV5ZWJyb3cgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMThlbTsKICAgIHRleHQtdHJhbnNmb3JtOiBub25lOwogICAgY29sb3I6IHZhcigtLWdvbGQtbGlnaHQpOwogICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsKICB9CiAgLmhlcm8tdGl0bGUgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7CiAgICBmb250LXNpemU6IGNsYW1wKDIuOHJlbSwgNnZ3LCA1cmVtKTsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgbGluZS1oZWlnaHQ6IDEuMDg7CiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07CiAgfQogIC5oZXJvLXRpdGxlIGVtIHsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgIGNvbG9yOiB2YXIoLS1nb2xkLWxpZ2h0KTsKICB9CiAgLmhlcm8tc3VidGl0bGUgewogICAgZm9udC1zaXplOiAxLjFyZW07CiAgICBmb250LXdlaWdodDogMzAwOwogICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC44Mik7CiAgICBtYXgtd2lkdGg6IDUyMHB4OwogICAgbGluZS1oZWlnaHQ6IDEuNzsKICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTsKICB9CiAgLmhlcm8tcGFydG5lcnMgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDFyZW07CiAgICBmbGV4LXdyYXA6IHdyYXA7CiAgfQogIC5wYXJ0bmVyLXRhZyB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtOwogICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjUpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjIpOwogICAgcGFkZGluZzogNXB4IDEycHg7CiAgICBib3JkZXItcmFkaXVzOiA5OXB4OwogIH0KICAuc2Nyb2xsLWhpbnQgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYm90dG9tOiAycmVtOwogICAgcmlnaHQ6IDIuNXJlbTsKICAgIHotaW5kZXg6IDE7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDhweDsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNCk7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBsZXR0ZXItc3BhY2luZzogMC4xZW07CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIH0KICAuc2Nyb2xsLWxpbmUgewogICAgd2lkdGg6IDFweDsKICAgIGhlaWdodDogNDhweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7CiAgICBhbmltYXRpb246IHNjcm9sbFB1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogIH0KICBAa2V5ZnJhbWVzIHNjcm9sbFB1bHNlIHsKICAgIDAlLCAxMDAlIHsgb3BhY2l0eTogMC4yNTsgdHJhbnNmb3JtOiBzY2FsZVkoMSk7IH0KICAgIDUwJSB7IG9wYWNpdHk6IDAuNjsgdHJhbnNmb3JtOiBzY2FsZVkoMS4xKTsgfQogIH0KICAvKiDilIDilIAgSU5UUk8g4pSA4pSAICovCiAgLmludHJvIHsKICAgIHBhZGRpbmc6IDZyZW0gMi41cmVtOwogICAgbWF4LXdpZHRoOiAxMTAwcHg7CiAgICBtYXJnaW46IDAgYXV0bzsKICB9CiAgLnNlY3Rpb24tbGFiZWwgewogICAgZm9udC1zaXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjJlbTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBjb2xvcjogdmFyKC0tZ3JlZW4tbGlnaHQpOwogICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMHB4OwogIH0KICAuc2VjdGlvbi1sYWJlbDo6YWZ0ZXIgewogICAgY29udGVudDogJyc7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHdpZHRoOiAzMnB4OwogICAgaGVpZ2h0OiAxcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbi1saWdodCk7CiAgfQogIC5pbnRyby10aXRsZSB7CiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsKICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgNHZ3LCAzcmVtKTsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBjb2xvcjogdmFyKC0tZ3JlZW4tZGVlcCk7CiAgICBsaW5lLWhlaWdodDogMS4yOwogICAgbWFyZ2luLWJvdHRvbTogMS43NXJlbTsKICB9CiAgLmludHJvLXRpdGxlIGVtIHsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1saWdodCk7CiAgfQogIC5pbnRyby1ib2R5IHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICBnYXA6IDJyZW07CiAgICBmb250LXNpemU6IDFyZW07CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBsaW5lLWhlaWdodDogMS44OwogIH0KICAuaW50cm8tYm9keSBwIHsKICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgfQogIC5pbnRyby1ib2R5IHA6Zmlyc3QtY2hpbGQgewogICAgZm9udC1zaXplOiAxcmVtOwogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CiAgLmludHJvLWJvZHkgYiwgLmludHJvLWJvZHkgc3Ryb25nIHsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBjb2xvcjogdmFyKC0tdGV4dCk7CiAgfQogIC8qIOKUgOKUgCBFVkVOVEkg4pSA4pSAICovCiAgLmV2ZW50aSB7CiAgICBwYWRkaW5nOiA1cmVtIDIuNXJlbSA2cmVtOwogICAgbWF4LXdpZHRoOiAxMTAwcHg7CiAgICBtYXJnaW46IDAgYXV0bzsKICB9CiAgLmV2ZW50aS1oZWFkZXIgewogICAgbWFyZ2luLWJvdHRvbTogMy41cmVtOwogIH0KICAuZXZlbnRpLXRpdGxlIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOwogICAgZm9udC1zaXplOiBjbGFtcCgxLjhyZW0sIDMuNXZ3LCAyLjZyZW0pOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtOwogIH0KICAuZXZlbnRpLXN1YiB7CiAgICBmb250LXNpemU6IDFyZW07CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBtYXgtd2lkdGg6IDU2MHB4OwogIH0KICAvKiDilIDilIAgRVZFTlRPIENBUkQg4pSA4pSAICovCiAgLmV2ZW50by1jYXJkIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNDIsNTQsNDAsMC4xKTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgbWFyZ2luLWJvdHRvbTogM3JlbTsKICB9CiAgLmV2ZW50by1jYXJkLWhlYWRlciB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICBwYWRkaW5nOiAycmVtIDIuNXJlbTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGdhcDogMnJlbTsKICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CiAgLmV2ZW50by1udW0gewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7CiAgICBmb250LXNpemU6IDRyZW07CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICBsaW5lLWhlaWdodDogMTsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHJpZ2h0OiAyLjVyZW07CiAgICB0b3A6IDEuNXJlbTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KICAuZXZlbnRvLXRhZyB7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMTVlbTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBjb2xvcjogdmFyKC0tZ29sZC1saWdodCk7CiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07CiAgfQogIC5ldmVudG8tbmFtZSB7CiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsKICAgIGZvbnQtc2l6ZTogMS44cmVtOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICBsaW5lLWhlaWdodDogMS4xNTsKICAgIG1hcmdpbi1ib3R0b206IDAuNHJlbTsKICB9CiAgLmV2ZW50by10YXBwYSB7CiAgICBmb250LXNpemU6IDAuODVyZW07CiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjUpOwogICAgZm9udC13ZWlnaHQ6IDMwMDsKICB9CiAgLmV2ZW50by10YXBwYSBzdHJvbmcgewogICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43NSk7CiAgICBmb250LXdlaWdodDogNTAwOwogIH0KICAuZXZlbnRvLWNhcmQtYm9keSB7CiAgICBwYWRkaW5nOiAycmVtIDIuNXJlbTsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICBnYXA6IDJyZW07CiAgICBhbGlnbi1pdGVtczogc3RhcnQ7CiAgfQogIC5ldmVudG8tbWFwIHsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg0Miw1NCw0MCwwLjEpOwogICAgaGVpZ2h0OiA0MjBweDsKICB9CiAgLmV2ZW50by1tYXAgaWZyYW1lIHsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgYm9yZGVyOiBub25lOwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIC5ldmVudG8taW5mbyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogMS4yNXJlbTsKICB9CiAgLmV2ZW50by1kZXRhaWwgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBnYXA6IDNweDsKICB9CiAgLmV2ZW50by1kZXRhaWwtbGFiZWwgewogICAgZm9udC1zaXplOiAxMHB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjE1ZW07CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgY29sb3I6IHZhcigtLWdyZWVuLWxpZ2h0KTsKICB9CiAgLmV2ZW50by1kZXRhaWwtdmFsdWUgewogICAgZm9udC1zaXplOiAxcmVtOwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0KTsKICB9CiAgLmV2ZW50by1kZXNjIHsKICAgIGZvbnQtc2l6ZTogMC45NXJlbTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjc7CiAgICBwYWRkaW5nLXRvcDogMC41cmVtOwogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoNDIsNTQsNDAsMC4wOCk7CiAgfQogIC8qIOKUgOKUgCBGT1JNIFJFVkVBTCBCVVRUT04g4pSA4pSAICovCiAgLmZvcm0tc2VjdGlvbiB7CiAgICBwYWRkaW5nOiAxLjVyZW0gMi41cmVtIDIuNXJlbTsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDQyLDU0LDQwLDAuMDcpOwogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tcGFsZSk7CiAgfQogIC5yZXZlYWwtYnRuIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTBweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuLWRlZXApOwogICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7CiAgICBwYWRkaW5nOiAxNHB4IDI4cHg7CiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzLCB0cmFuc2Zvcm0gMC4xNXM7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogIH0KICAucmV2ZWFsLWJ0bjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbi1taWQpOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogIH0KICAucmV2ZWFsLWJ0bjphY3RpdmUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOyB9CiAgLnJldmVhbC1idG4gLmFycm93IHsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgfQogIC5yZXZlYWwtYnRuLm9wZW4gLmFycm93IHsgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfQogIC5mb3JtLXdyYXBwZXIgewogICAgbWF4LWhlaWdodDogMDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuNXMgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSksIG9wYWNpdHkgMC40cyBlYXNlOwogICAgb3BhY2l0eTogMDsKICB9CiAgLmZvcm0td3JhcHBlci5vcGVuIHsKICAgIG1heC1oZWlnaHQ6IDI0MDBweDsKICAgIG9wYWNpdHk6IDE7CiAgfQogIC5mb3JtLWlubmVyIHsKICAgIHBhZGRpbmctdG9wOiAxLjc1cmVtOwogIH0KICAuZm9ybS1wbGFjZWhvbGRlciB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDQyLDU0LDQwLDAuMDQpOwogICAgYm9yZGVyOiAycHggZGFzaGVkIHJnYmEoNDIsNTQsNDAsMC4xNSk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOwogICAgcGFkZGluZzogMnJlbTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIGZvbnQtc2l6ZTogMC45cmVtOwogIH0KICAvKiDilIDilIAgUFJPR1JBTU1BIOKUgOKUgCAqLwogIC5wcm9ncmFtbWEtYmxvY2sgewogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoNDIsNTQsNDAsMC4wOCk7CiAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTsKICAgIG1hcmdpbi10b3A6IDAuNXJlbTsKICB9CiAgLnByb2dyYW1tYS10b2dnbGUgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEwcHg7CiAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgYm9yZGVyOiBub25lOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMTJlbTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBjb2xvcjogdmFyKC0tZ3JlZW4tbGlnaHQpOwogICAgcGFkZGluZzogMDsKICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnM7CiAgfQogIC5wcm9ncmFtbWEtdG9nZ2xlOmhvdmVyIHsgY29sb3I6IHZhcigtLWdyZWVuLWRlZXApOyB9CiAgLnByb2dyYW1tYS1hcnJvdyB7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIH0KICAucHJvZ3JhbW1hLXRvZ2dsZS5vcGVuIC5wcm9ncmFtbWEtYXJyb3cgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9CiAgLnByb2dyYW1tYS13cmFwcGVyIHsKICAgIG1heC1oZWlnaHQ6IDA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjVzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpLCBvcGFjaXR5IDAuNHMgZWFzZTsKICAgIG9wYWNpdHk6IDA7CiAgfQogIC5wcm9ncmFtbWEtd3JhcHBlci5vcGVuIHsKICAgIG1heC1oZWlnaHQ6IDIyMDBweDsKICAgIG9wYWNpdHk6IDE7CiAgfQogIC5wcm9ncmFtbWEtaW5uZXIgewogICAgcGFkZGluZy10b3A6IDEuMjVyZW07CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogMDsKICB9CiAgLnByb2dyYW1tYS1pdGVtIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDExMHB4IDFmcjsKICAgIGdhcDogMXJlbTsKICAgIHBhZGRpbmc6IDAuODVyZW0gMDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDQyLDU0LDQwLDAuMDYpOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KICAucHJvZ3JhbW1hLWl0ZW06bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IG5vbmU7IH0KICAucHJvZ3JhbW1hLWl0ZW06OmJlZm9yZSB7CiAgICBjb250ZW50OiAnJzsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDEwOHB4OwogICAgdG9wOiAwOwogICAgYm90dG9tOiAwOwogICAgd2lkdGg6IDFweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoNDIsNTQsNDAsMC4wOCk7CiAgfQogIC5wcm9ncmFtbWEtdGltZSB7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgY29sb3I6IHZhcigtLWdyZWVuLWxpZ2h0KTsKICAgIHBhZGRpbmctdG9wOiAycHg7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIH0KICAucHJvZ3JhbW1hLWNvbnRlbnQgcCB7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBjb2xvcjogdmFyKC0tdGV4dCk7CiAgICBsaW5lLWhlaWdodDogMS42OwogIH0KICAucHJvZ3JhbW1hLW5vdGUgewogICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCkgIWltcG9ydGFudDsKICAgIG1hcmdpbi10b3A6IDRweDsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICB9CiAgLnByb2dyYW1tYS1saW5rIHsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1saWdodCk7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzOwogIH0KICAucHJvZ3JhbW1hLWxpbms6aG92ZXIgeyBjb2xvcjogdmFyKC0tZ3JlZW4tZGVlcCk7IH0KICBoMSwgaDIsIGgzLCBoNCwgZW0gewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSkgIWltcG9ydGFudDsKICB9Cjwvc3R5bGU+Cgo8IS0tIOKVkOKVkCBIRVJPIOKVkOKVkCAtLT4KPHNlY3Rpb24gY2xhc3M9Imhlcm8iPgogIDxkaXYgY2xhc3M9Imhlcm8tYmciPjwvZGl2PgogIDxkaXYgY2xhc3M9Imhlcm8tYmFkZ2UiPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9Imhlcm8tY29udGVudCI+CiAgICA8cCBjbGFzcz0iaGVyby1leWVicm93Ij5WQUlBIMOXIEdpcm8gZCdJdGFsaWE8L3A+CiAgICA8aDEgY2xhc3M9Imhlcm8tdGl0bGUiIHN0eWxlPSJmb250LXNpemU6IGNsYW1wKDEuOHJlbSwgMy44dncsIDMuMnJlbSk7IG1heC13aWR0aDogNjgwcHg7Ij5WQUlBIEFORCBHSVJPIEQnSVRBTElBIExFQVZFIEEgR1JFRU4gVFJBSUw8YnI+PGVtPkFDVFVBTExZIFRIUkVFLjwvZW0+PC9oMT4KICAgIDxwIGNsYXNzPSJoZXJvLXN1YnRpdGxlIj4KICAgICAgTGVhdmluZyBhIHBvc2l0aXZlIGltcGFjdCBvbiB0aGUgdGVycml0b3J5OiB0aGlzIGhhcyBhbHdheXMgYmVlbiBWQUlBJ3MgbWlzc2lvbiwgYW5kIGl0IGlzIGFsc28gdGhlIGdvYWwgb2YgdGhlIGNvbGxhYm9yYXRpb24gd2l0aCB0aGUgMTA5dGggZWRpdGlvbiBvZiB0aGUgR2lybyBkJ0l0YWxpYS4gVGhyZWUgZGF5cyBvZiByZWZvcmVzdGF0aW9uLCB0aHJlZSBHaXJvIHN0YWdlcywgdGhyZWUgYXJlYXMgdG8gcmVnZW5lcmF0ZSB0b2dldGhlci4KICAgIDwvcD4KICAgIDxkaXYgY2xhc3M9Imhlcm8tcGFydG5lcnMiPgogICAgICA8c3BhbiBjbGFzcz0icGFydG5lci10YWciPlN1c3RhaW5hYmxlIFBhcnRuZXI8L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0bmVyLXRhZyI+UmlkZSBHcmVlbjwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InBhcnRuZXItdGFnIj5CaWNpU2N1b2xhPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icGFydG5lci10YWciPjMgZXZlbnRzIMK3IDIwMjY8L3NwYW4+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJzY3JvbGwtaGludCI+CiAgICA8ZGl2IGNsYXNzPSJzY3JvbGwtbGluZSI+PC9kaXY+CiAgICA8c3Bhbj5EaXNjb3Zlcjwvc3Bhbj4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKPCEtLSDilZDilZAgSU5UUk8g4pWQ4pWQIC0tPgo8c2VjdGlvbiBjbGFzcz0iaW50cm8iPgogIDxwIGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5UaGUgUHJvamVjdDwvcD4KICA8aDIgY2xhc3M9ImludHJvLXRpdGxlIiBzdHlsZT0iZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7IGZvbnQtd2VpZ2h0OiA3MDA7Ij4zMDAwIG5ldyB0cmVlcyA8YnI+PGVtIHN0eWxlPSJmb250LXN0eWxlOiBub3JtYWw7IGNvbG9yOiB2YXIoLS1ncmVlbi1saWdodCk7Ij50byBwbGFudCB0b2dldGhlci48L2VtPjwvaDI+CiAgPGRpdiBjbGFzcz0iaW50cm8tYm9keSI+CiAgICA8cD4KICAgICAgVkFJQSB3YXMgYm9ybiBmcm9tIHRoZSBzdG9ybSBvZiB0aGUgc2FtZSBuYW1lIHRoYXQgaW4gMjAxOCBzd2VwdCBhd2F5IDQyIG1pbGxpb24gdHJlZXMgaW4gdGhlIERvbG9taXRlcy4gRnJvbSB0aGF0IGV2ZW50IDxiPmEgbWlzc2lvbiB3YXMgYm9ybjwvYj46IHRvIGdpdmUgYmFjayB0byB0aGUgbW91bnRhaW5zIHdoYXQgdGhlIHdpbmQgdG9vayBhd2F5LCBvbmUgdHJlZSBhdCBhIHRpbWUgKHRvIGRpc2NvdmVyIG91ciBwcm9qZWN0LCA8YSBocmVmPSJodHRwczovL3d3dy52YWlhLmV1L2VuL3Byb2plY3QvZG9sb21pdGVzLyIgc3R5bGU9ImNvbG9yOmdyZWVuOyI+Y2xpY2sgaGVyZTwvYT4pLiBJbiB0aGUgc3Bpcml0IG9mIFZBSUEsIHdlIHdpbGwgPGI+cmVmb3Jlc3QgdGhyZWUgYXJlYXM8L2I+IGFmZmVjdGVkIGJ5IFN0b3JtIFZhaWEsIGluIHRoZSBhcmVhcyBvZiBzdGFnZXMgMTcsIDE5IGFuZCAyMCBvZiB0aGUgR2lybywgaW4gdGhlIERvbG9taXRlIGFyZWFzIG9mIDxiPlRyZW50aW5vLCBWZW5ldG8gYW5kIEZyaXVsaTwvYj4uPGJyPgogICAgICA8aW1nIHNyYz0iaHR0cHM6Ly93d3cudmFpYS5ldS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC9Qcm9nZXR0by1zZW56YS10aXRvbG8ucG5nIiBzdHlsZT0id2lkdGg6IDg1JTsgbWF4LXdpZHRoOiA1MDBweDsgaGVpZ2h0OiBhdXRvOyBtYXJnaW4tYm90dG9tOi0zMHB4OyI+CiAgICA8L3A+CiAgICA8cD5CdXQgdGhlcmUgaXMgb25lIGltcG9ydGFudCB0aGluZzogdHJlZXMgYXJlIG5vdCBwbGFudGVkIGFsb25lLiBUaGF0J3Mgd2h5IDxiPndlIHdhbnQgdG8gZG8gaXQgd2l0aCB5b3U8L2I+OiBjaG9vc2UgdGhlIHBsYW50aW5nIGRheSB5b3Ugd2FudCB0byBqb2luIGFtb25nIHRoZSB0aHJlZSBvcHRpb25zIGJlbG93LCBzaWduIHVwIGFuZCBjb21lIHBsYW50IHRyZWVzIHdpdGggdXMhCiAgICA8L3A+CiAgPC9kaXY+Cjwvc2VjdGlvbj4KCjwhLS0g4pWQ4pWQIEVWRU5USSDilZDilZAgLS0+CjxzZWN0aW9uIGNsYXNzPSJldmVudGkiPgogIDxkaXYgY2xhc3M9ImV2ZW50aS1oZWFkZXIiPgogICAgPHAgY2xhc3M9InNlY3Rpb24tbGFiZWwiPlRoZSBFdmVudHM8L3A+CiAgICA8aDIgY2xhc3M9ImV2ZW50aS10aXRsZSI+VGhyZWUgZGF5cyBvZiByZWZvcmVzdGF0aW9uLCB0aHJlZSBhcmVhcyB0byByZWdlbmVyYXRlIHRvZ2V0aGVyLjwvaDI+CiAgICA8cCBjbGFzcz0iZXZlbnRpLXN1YiI+U2lnbiB1cCBmb3IgdGhlIGV2ZW50IHlvdSBwcmVmZXIuIEVhY2ggcGxhbnRpbmcgdGFrZXMgcGxhY2UgaW4gb25lIG9mIHRoZSBhcmVhcyBjcm9zc2VkIGJ5IHRoZSBHaXJvIGQnSXRhbGlhIHN0YWdlcy48L3A+CiAgPC9kaXY+CgogIDwhLS0g4pSA4pSAIEVWRU5UTyAxOiBEQVJaTyDilIDilIAgLS0+CiAgPGRpdiBjbGFzcz0iZXZlbnRvLWNhcmQiIGlkPSJldmVudG8tZGFyem8iPgogICAgPGRpdiBjbGFzcz0iZXZlbnRvLWNhcmQtaGVhZGVyIj4KICAgICAgPGRpdj4KICAgICAgICA8cCBjbGFzcz0iZXZlbnRvLXRhZyI+RXZlbnQgMDEgwrcgVHJlbnRpbm88L3A+CiAgICAgICAgPGgzIGNsYXNzPSJldmVudG8tbmFtZSI+VHJlZSBQbGFudGluZyBpbiBEYXJ6bzwvaDM+CiAgICAgICAgPHAgY2xhc3M9ImV2ZW50by10YXBwYSI+MTd0aCBHaXJvIFN0YWdlOiA8c3Ryb25nPkNhc3Nhbm8gZCdBZGRhIOKAkyBBbmRhbG8g4oaSIHBsYW50aW5nIGluIERhcnpvLCBWYWxkb25lYSBhcmVhOiAxOC8wNC8yMDI2IGF0IDE0OjAwIChtYXggNDAgcGFydGljaXBhbnRzKTwvc3Ryb25nPjwvcD4KICAgICAgPC9kaXY+CiAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tbnVtIj4wMTwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iZXZlbnRvLWNhcmQtYm9keSI+CiAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1tYXAiPgogICAgICAgIDxpZnJhbWUgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvZW1iZWQ\/cGI9ITFtMTghMW0xMiExbTMhMWQxMDc5OS4wMDA4NDkzMDY0MzQhMmQxMC41NDUzNzUzNzgyNjI0OTEhM2Q0NS44NTQxMjE3NzA2MDE2MTYhMm0zITFmMCEyZjAhM2YwITNtMiExaTEwMjQhMmk3NjghNGYxMy4xITNtMyExbTIhMXMweDQ3ODIyNTQyZDRhNjg4ZWYlM0EweGYwNDNlYzNjMWZhMGE1OCEyc0FncmklMjA5MCUyMC0lMjBTb2NpZXQlQzMlQTAlMjBDb29wZXJhdGl2YSUyMEFncmljb2xhITVlMCEzbTIhMXNpdCEyc2l0ITR2MTc3NTgyNDk1MzI2NCE1bTIhMXNpdCEyc2l0IiBhbGxvd2Z1bGxzY3JlZW49IiIgbG9hZGluZz0ibGF6eSIgcmVmZXJyZXJwb2xpY3k9Im5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIj48L2lmcmFtZT4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1pbmZvIj4KICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tZGV0YWlsIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLWxhYmVsIj5XaGVuPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtdmFsdWUiPlNhdHVyZGF5IDE4LzA0LzIwMjYgZnJvbSAxNDowMCB0byAxODowMDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tZGV0YWlsIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLWxhYmVsIj5XaGVyZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLXZhbHVlIj5NYWxnYSBTcGluYSwgQ29sbGVjdGl2ZSBQcm9wZXJ0eSBvZiB0aGUgRGFyem8gRnJhY3Rpb24sIE11bmljaXBhbGl0eSBvZiBTdG9ybywgVmFsbGUgZGVsIENoaWVzZSAoVE4pLjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tZGV0YWlsIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLWxhYmVsIj5SZWdpc3RyYXRpb25zPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtdmFsdWUiPkxpbWl0ZWQgcGxhY2VzOiBtYXhpbXVtIDQwIHBhcnRpY2lwYW50cy4gPGJyPgogICAgICAgICAgPGI+UmVnaXN0cmF0aW9uIGJ5IDE1LzA0LzIwMjY8L2I+PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxwIGNsYXNzPSJldmVudG8tZGVzYyI+CiAgICAgICAgICBUaGUgQ2hpZXNlIFZhbGxleSB0dXJucyBncmVlbiBhZ2Fpbi4gRGFyem8gaXMgb25lIG9mIHRoZSBhcmVhcyB0aGF0IHN0aWxsIGJlYXJzIHRoZSBtYXJrcyBvZiBTdG9ybSBWYWlhLiBXaXRoIHRoaXMgcGxhbnRpbmcgd2UgY29udHJpYnV0ZSBjb25jcmV0ZWx5IHRvIHRoZSByZWdlbmVyYXRpb24gb2YgdGhlIGxvY2FsIGZvcmVzdCwgdG9nZXRoZXIgd2l0aCB0aG9zZSB3aG8gd2FudCB0byBiZSBwYXJ0IG9mIHRoZSBjaGFuZ2UuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW1tYS1ibG9jayI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJwcm9ncmFtbWEtdG9nZ2xlIiBvbmNsaWNrPSJ0b2dnbGVQcm9ncmFtbWEodGhpcykiPgogICAgICAgICAgICA8c3Bhbj5Qcm9ncmFtbWU8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcm9ncmFtbWEtYXJyb3ciPuKGkzwvc3Bhbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbW1hLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtbWEtaW5uZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW1tYS1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcm9ncmFtbWEtdGltZSI+MTM6NDUg4oCTIDE0OjAwPC9zcGFuPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbW1hLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICA8cD5NZWV0aW5nIGF0IHRoZSBoZWFkcXVhcnRlcnMgb2YgPHN0cm9uZz5Db29wIEFHUkk5MDwvc3Ryb25nPiAocHJvZHVjZXIgb2YgU3Rvcm8ncyBZZWxsb3cgRmxvdXIpPC9wPgogICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL21hcHMuYXBwLmdvby5nbC9nSzN2QW9tR0x1VEN4TVc3NyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJwcm9ncmFtbWEtbGluayI+VmlhIGRlbCBTb3Jpbm8sIDYwIOKAkyAzODA4OSBTdG9ybyAoVE4pIOKGlzwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW1tYS1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcm9ncmFtbWEtdGltZSI+MTQ6MDA8L3NwYW4+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtbWEtY29udGVudCI+CiAgICAgICAgICAgICAgICAgIDxwPkRlcGFydHVyZSBieSBkZWRpY2F0ZWQgbWluaWJ1cyB0b3dhcmRzIDxzdHJvbmc+TG9jYWxpdMOgIEZhc2Vybm88L3N0cm9uZz48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmFtbWEtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJvZ3JhbW1hLXRpbWUiPjE0OjQwPC9zcGFuPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbW1hLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICA8cD5BcnJpdmFsIGFuZCBzdGFydCBvZiB0aGUgaGlrZSB0b3dhcmRzIE1hbGdhIFNwaW5hPC9wPgogICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icHJvZ3JhbW1hLW5vdGUiPkFwcHJveGltYXRlbHkgMi41IGttIG9uIGFuIGFzcGhhbHRlZCBmb3Jlc3Qgcm9hZCwgd2l0aCBhbiBlbGV2YXRpb24gZ2FpbiBvZiBhYm91dCAxMDAgbSwgdG93YXJkcyBNYWxnYSBTcGluYTwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW1tYS1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcm9ncmFtbWEtdGltZSI+MTU6MzAg4oCTIDE2OjMwPC9zcGFuPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbW1hLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICA8cD5QbGFudGluZyBhY3Rpdml0eSwgZ3VpZGVkIGJ5IGxvY2FsIHBhcnRuZXJzIGFuZCA8c3Ryb25nPlZBSUEgU3JsPC9zdHJvbmc+PGJyPjxpbWcgc3JjPSJodHRwczovL3d3dy52YWlhLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0LzFfQVNVQ19MT0dPLWNvbG9yaS1zY2FsZWQucG5nIiBzdHlsZT0id2lkdGg6IDY1JTsgbWF4LXdpZHRoOiAxNzVweDsgaGVpZ2h0OiBhdXRvOyI+PC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3JhbW1hLWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByb2dyYW1tYS10aW1lIj4xNjozMDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyYW1tYS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgPHA+UmV0dXJuIG9uIGZvb3QgdG8gTG9jYWxpdMOgIEZhc2Vybm88L3A+CiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwcm9ncmFtbWEtbm90ZSI+Rm9sbG93ZWQgYnkgbWluaWJ1cyB0cmFuc2ZlciB0byB0aGUgcGFya2luZyBhcmVhPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmb3JtLXNlY3Rpb24iPgogICAgICA8YnV0dG9uIGNsYXNzPSJyZXZlYWwtYnRuIiBvbmNsaWNrPSJ0b2dnbGVGb3JtKCdmb3JtLWRhcnpvJywgdGhpcykiPgogICAgICAgIFJlZ2lzdGVyIGZvciB0aGUgZXZlbnQKICAgICAgICA8c3BhbiBjbGFzcz0iYXJyb3ciPuKGkzwvc3Bhbj4KICAgICAgPC9idXR0b24+CiAgICAgIDxkaXYgY2xhc3M9ImZvcm0td3JhcHBlciIgaWQ9ImZvcm0tZGFyem8iPgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taW5uZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1wbGFjZWhvbGRlciI+CiAgICAgICAgICAgIFtodWJzcG90IHR5cGU9ImZvcm0iIHBvcnRhbD0iMTQzNDE2NjE1IiBpZD0iZTg4YzRmNDQtOTg2MC00ZjQ3LWEwNDEtOThlYmM4MmE5M2MyIl0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8IS0tIOKUgOKUgCBFVkVOVE8gMjogQ0FOQVpFSSDilIDilIAgLS0+CiAgPGRpdiBjbGFzcz0iZXZlbnRvLWNhcmQiIGlkPSJldmVudG8tY2FuYXplaSI+CiAgICA8ZGl2IGNsYXNzPSJldmVudG8tY2FyZC1oZWFkZXIiPgogICAgICA8ZGl2PgogICAgICAgIDxwIGNsYXNzPSJldmVudG8tdGFnIj5FdmVudCAwMiDCtyBEb2xvbWl0ZXM8L3A+CiAgICAgICAgPGgzIGNsYXNzPSJldmVudG8tbmFtZSI+VHJlZSBQbGFudGluZyBpbiBDYW5hemVpIChQZW5pYSBhcmVhKTwvaDM+CiAgICAgICAgPHAgY2xhc3M9ImV2ZW50by10YXBwYSI+MTl0aCBTdGFnZTogPHN0cm9uZz5GZWx0cmUg4oaSIEFsbGVnaGU8L3N0cm9uZz48L3A+CiAgICAgIDwvZGl2PgogICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLW51bSI+MDI8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImV2ZW50by1jYXJkLWJvZHkiPgogICAgICA8ZGl2IGNsYXNzPSJldmVudG8tbWFwIj4KICAgICAgICA8aWZyYW1lIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkP3BiPSExbTE4ITFtMTIhMW0zITFkMTEwMDAuMCEyZDExLjc3MyEzZDQ2LjQ3NiEybTMhMWYwITJmMCEzZjAhM20yITFpMTAyNCEyaTc2OCE0ZjEzLjEhM20zITFtMiExczB4NDc4MzhlN2Y1YjVlM2E4ZiUzQTB4YWJjZGVmMTIzNDU2Nzg5MCEyc0NhbmF6ZWklMkMrVE4hNWUwITNtMiExc2l0ITJzaXQhNHYxIiBhbGxvd2Z1bGxzY3JlZW49IiIgbG9hZGluZz0ibGF6eSIgcmVmZXJyZXJwb2xpY3k9Im5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIj48L2lmcmFtZT4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1pbmZvIj4KICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tZGV0YWlsIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLWxhYmVsIj5XaGVyZTwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLXZhbHVlIj5QZW5pYSwgQ2FuYXplaSAtIFZhbCBkaSBGYXNzYSAoVE4pPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1kZXRhaWwiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtbGFiZWwiPldoZW48L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC12YWx1ZSI+VGh1cnNkYXkgMjMgQXByaWwgMjAyNiwgYXQgMTA6MzA8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWRldGFpbCI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC1sYWJlbCI+TWVldGluZyBwb2ludDwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLXZhbHVlIj48YSBocmVmPSJodHRwczovL3NoYXJlLmdvb2dsZS9ZOGVKdkp1Y0hvODJUcEhicSIgY2xhc3M9InByb2dyYW1tYS1saW5rIj5QaWMtTmljIEFyZWEgU3RyYWRhIFBhc3NvIEZlZGFpYSDihpc8L2E+PGJyPlRoZSBwbGFudGluZyBhcmVhIGlzIGFib3V0IGEgNS1taW51dGUgd2FsayBmcm9tIHRoZSBwYXJraW5nIGxvdCwgZWFzeSBwYXRoPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxwIGNsYXNzPSJldmVudG8tZGVzYyI+CiAgICAgICAgICBJbiB0aGUgaGVhcnQgb2YgdGhlIFVORVNDTyBEb2xvbWl0ZXMsIFZhbCBkaSBGYXNzYSBpcyBvbmUgb2YgdGhlIHN5bWJvbGljIHRlcnJpdG9yaWVzIG9mIHJlYmlydGggYWZ0ZXIgVmFpYS4gSW4gQ2FuYXplaSB3ZSBwbGFudCB0b2dldGhlciBvbiB0aGUgc2xvcGVzIG1hcmtlZCBieSB0aGUgd2luZCwgaW4gb25lIG9mIHRoZSBtb3N0IGV4dHJhb3JkaW5hcnkgbW91bnRhaW4gbGFuZHNjYXBlcyBpbiBJdGFseS4KICAgICAgICA8L3A+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmb3JtLXNlY3Rpb24iPgogICAgICA8YnV0dG9uIGNsYXNzPSJyZXZlYWwtYnRuIiBvbmNsaWNrPSJ0b2dnbGVGb3JtKCdmb3JtLWNhbmF6ZWknLCB0aGlzKSI+CiAgICAgICAgUmVnaXN0ZXIgZm9yIHRoZSBldmVudAogICAgICAgIDxzcGFuIGNsYXNzPSJhcnJvdyI+4oaTPC9zcGFuPgogICAgICA8L2J1dHRvbj4KICAgICAgPGRpdiBjbGFzcz0iZm9ybS13cmFwcGVyIiBpZD0iZm9ybS1jYW5hemVpIj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWlubmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcGxhY2Vob2xkZXIiPgogICAgICAgICAgICBbaHVic3BvdCB0eXBlPSJmb3JtIiBwb3J0YWw9IjE0MzQxNjYxNSIgaWQ9IjdhNzZkZWI0LThhMzItNGU2MS1hOTAxLWViNGE2NjBhNmY1MyJdCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSDilIDilIAgRVZFTlRPIDM6IENMQVVUIOKUgOKUgCAtLT4KICA8ZGl2IGNsYXNzPSJldmVudG8tY2FyZCIgaWQ9ImV2ZW50by1jbGF1dCI+CiAgICA8ZGl2IGNsYXNzPSJldmVudG8tY2FyZC1oZWFkZXIiPgogICAgICA8ZGl2PgogICAgICAgIDxwIGNsYXNzPSJldmVudG8tdGFnIj5FdmVudCAwMyDCtyBGcml1bGk8L3A+CiAgICAgICAgPGgzIGNsYXNzPSJldmVudG8tbmFtZSI+VHJlZSBQbGFudGluZyBpbiBDbGF1dCAoTGVzaXMgYXJlYSk8L2gzPgogICAgICAgIDxwIGNsYXNzPSJldmVudG8tdGFwcGEiPjIwdGggU3RhZ2U6IDxzdHJvbmc+R2Vtb25hIGRlbCBGcml1bGkg4oaSIFBpYW5jYXZhbGxvPC9zdHJvbmc+PC9wPgogICAgICA8L2Rpdj4KICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1udW0iPjAzPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJldmVudG8tY2FyZC1ib2R5Ij4KICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLW1hcCI+CiAgICAgICAgPGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9lbWJlZD9wYj0hMW0xOCExbTEyITFtMyExZDExMjAwLjAhMmQxMi41MTkhM2Q0Ni4xODYhMm0zITFmMCEyZjAhM2YwITNtMiExaTEwMjQhMmk3NjghNGYxMy4xITNtMyExbTIhMXMweDQ3Nzk1M2Q5YjJmNGU2YTUlM0EweDk4NzY1NDMyMTBmZWRjYmEhMnNDbGF1dCUyQytQTiE1ZTAhM20yITFzaXQhMnNpdCE0djEiIGFsbG93ZnVsbHNjcmVlbj0iIiBsb2FkaW5nPSJsYXp5IiByZWZlcnJlcnBvbGljeT0ibm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiPjwvaWZyYW1lPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWluZm8iPgogICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1kZXRhaWwiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtbGFiZWwiPkxvY2F0aW9uPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtdmFsdWUiPkNsYXV0LCBWYWxjZWxsaW5hIChQTik8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWRldGFpbCI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC1sYWJlbCI+V2hlcmU8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC12YWx1ZSI+TG9jYWxpdMOgIExlc2lzLCBDbGF1dDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tZGV0YWlsIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLWxhYmVsIj5XaGVuPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtdmFsdWUiPkZyaWRheSAyNCBBcHJpbCAyMDI2LCBhdCAxMDozMDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tZGV0YWlsIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLWxhYmVsIj5NZWV0aW5nIHBvaW50PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtdmFsdWUiPjxhIGhyZWY9Imh0dHBzOi8vbWFwcy5hcHAuZ29vLmdsL3RWN3Nwbzh4THFpcnROOUQ3IiBjbGFzcz0icHJvZ3JhbW1hLWxpbmsiPlBhcmtpbmcgYXJlYSDihpc8L2E+PGJyPlRoZSBwbGFudGluZyBhcmVhIGlzIGFib3V0IGEgMTAtbWludXRlIHdhbGsgZnJvbSB0aGUgcGFya2luZyBsb3QsIGVhc3kgcGF0aDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8cCBjbGFzcz0iZXZlbnRvLWRlc2MiPgogICAgICAgICAgVmFsY2VsbGluYSwgaW4gRnJpdWxpLCB3YXMgb25lIG9mIHRoZSBhcmVhcyBtb3N0IGFmZmVjdGVkIGJ5IFN0b3JtIFZhaWEuIENsYXV0IGlzIHRoZSBzdGFydGluZyBwb2ludCBvZiBhIHJlZ2VuZXJhdGlvbiB0aGF0IGludm9sdmVzIGxvY2FsIGNvbW11bml0aWVzLCB0aGUgZm9yZXN0IGFuZCBhbnlvbmUgd2hvIHdhbnRzIHRvIHJldHVybiB0byB0aGUgbW91bnRhaW5zIG5vdCBvbmx5IHRvIGFkbWlyZSBpdHMgYmVhdXR5LCBidXQgdG8gY29udHJpYnV0ZSB0byBpdHMgY2FyZS4KICAgICAgICA8L3A+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmb3JtLXNlY3Rpb24iPgogICAgICA8YnV0dG9uIGNsYXNzPSJyZXZlYWwtYnRuIiBvbmNsaWNrPSJ0b2dnbGVGb3JtKCdmb3JtLWNsYXV0JywgdGhpcykiPgogICAgICAgIFJlZ2lzdGVyIGZvciB0aGUgZXZlbnQKICAgICAgICA8c3BhbiBjbGFzcz0iYXJyb3ciPuKGkzwvc3Bhbj4KICAgICAgPC9idXR0b24+CiAgICAgIDxkaXYgY2xhc3M9ImZvcm0td3JhcHBlciIgaWQ9ImZvcm0tY2xhdXQiPgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taW5uZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1wbGFjZWhvbGRlciI+CiAgICAgICAgICAgW2h1YnNwb3QgdHlwZT0iZm9ybSIgcG9ydGFsPSIxNDM0MTY2MTUiIGlkPSJiNmE3MTk5Ni1jOWNiLTQ0OTgtYmM1YS05MjBjZGQyYjc5MzQiXQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzY3JpcHQ+CiAgZnVuY3Rpb24gdG9nZ2xlRm9ybShpZCwgYnRuKSB7CiAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwogICAgY29uc3QgaXNPcGVuID0gd3JhcHBlci5jbGFzc0xpc3QuY29udGFpbnMoJ29wZW4nKTsKICAgIHdyYXBwZXIuY2xhc3NMaXN0LnRvZ2dsZSgnb3BlbicsICFpc09wZW4pOwogICAgYnRuLmNsYXNzTGlzdC50b2dnbGUoJ29wZW4nLCAhaXNPcGVuKTsKICAgIGJ0bi5xdWVyeVNlbGVjdG9yKCcuYXJyb3cnKS50ZXh0Q29udGVudCA9IGlzT3BlbiA\/ICfihpMnIDogJ+KGkSc7CiAgfQogIGZ1bmN0aW9uIHRvZ2dsZVByb2dyYW1tYShidG4pIHsKICAgIGNvbnN0IHdyYXBwZXIgPSBidG4ubmV4dEVsZW1lbnRTaWJsaW5nOwogICAgY29uc3QgaXNPcGVuID0gd3JhcHBlci5jbGFzc0xpc3QuY29udGFpbnMoJ29wZW4nKTsKICAgIHdyYXBwZXIuY2xhc3NMaXN0LnRvZ2dsZSgnb3BlbicsICFpc09wZW4pOwogICAgYnRuLmNsYXNzTGlzdC50b2dnbGUoJ29wZW4nLCAhaXNPcGVuKTsKICAgIGJ0bi5xdWVyeVNlbGVjdG9yKCcucHJvZ3JhbW1hLWFycm93JykudGV4dENvbnRlbnQgPSBpc09wZW4gPyAn4oaTJyA6ICfihpEnOwogIH0KPC9zY3JpcHQ+e0J54qZSZdAAfbmBrc8OdyQ1YzU2NDJkZi00ZTM2LTQxMmEtODZkNC01MTQyNzY3NmRjODF3JDVhMDZhZGIxLTgzYWMtNDc0MC05ZjYwLTcwNjI1MzlhNmU5MHckNzBjYTRiNzMtMTgxNS00N2Q3LWFiNmMtMmY5NzRiY2EwMWRld\/31AjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgo8dGl0bGU+VkFJQSDDlyBHaXJvIGQnSXRhbGlhIOKAkyBQbGFudGluZyAyMDI2PC90aXRsZT4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj0iIj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1QbGF5ZmFpcitEaXNwbGF5Oml0YWwsd2dodEAwLDQwMDswLDcwMDsxLDQwMCZhbXA7ZmFtaWx5PURNK1NhbnM6d2dodEAzMDA7NDAwOzUwMCZhbXA7ZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiPgo8c3R5bGU+CiAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQoKICA6cm9vdCB7CiAgICAtLWdyZWVuLWRlZXA6ICMxYTNhMmE7CiAgICAtLWdyZWVuLW1pZDogIzJkNWEzZDsKICAgIC0tZ3JlZW4tbGlnaHQ6ICM0YThjNWM7CiAgICAtLWdyZWVuLXBhbGU6ICNlOGYyZWI7CiAgICAtLWdvbGQ6ICNjOWE4NGM7CiAgICAtLWdvbGQtbGlnaHQ6ICNlOGQwOGE7CiAgICAtLWNyZWFtOiAjZjdmNGVlOwogICAgLS1kYXJrOiAjMTExYTE0OwogICAgLS10ZXh0OiAjMmEzNjI4OwogICAgLS10ZXh0LW11dGVkOiAjNmI3YzZlOwogICAgLS13aGl0ZTogI2ZmZmZmZjsKICAgIC0tZm9udC1kaXNwbGF5OiAnUGxheWZhaXIgRGlzcGxheScsIEdlb3JnaWEsIHNlcmlmOwogICAgLS1mb250LWJvZHk6ICdETSBTYW5zJywgc3lzdGVtLXVpLCBzYW5zLXNlcmlmOwogICAgLS1yYWRpdXM6IDRweDsKICAgIC0tcmFkaXVzLWxnOiAxMnB4OwoKICAgIC8qIOKUgOKUgCBNT0RJRklDQSAyOiB2YXJpYWJpbGkgaW1tYWdpbmUgaGVybyDilIDilIAgKi8KICAgIC0taGVyby1iZy1kZXNrdG9wOiB1cmwoJ2h0dHBzOi8vd3d3LnZhaWEuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvVkFJQS1HaXJvLUl0YWxpYS5wbmcnKTsKICAgIC0taGVyby1iZy1tb2JpbGU6ICB1cmwoJ2h0dHBzOi8vd3d3LnZhaWEuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvVkFJQS1HaXJvLUl0YWxpYS5wbmcnKTsKICB9CgogIGh0bWwgeyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgfQoKICBib2R5IHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpOwogICAgY29sb3I6IHZhcigtLXRleHQpOwogICAgYmFja2dyb3VuZDogdmFyKC0tY3JlYW0pOwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtc2l6ZTogMTZweDsKICB9CgogIC8qIOKUgOKUgCBIRVJPIOKUgOKUgCAqLwogIC5oZXJvIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG1pbi1oZWlnaHQ6IDkydmg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuLWRlZXApOwogIH0KCiAgLyogTU9ESUZJQ0EgMjogc2ZvbmRvIGhlcm8gdXNhIHZhcmlhYmlsZSBkZXNrdG9wIGRpIGRlZmF1bHQgKi8KICAuaGVyby1iZyB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogMDsKICAgIGJhY2tncm91bmQ6CiAgICAgIGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMTAsMjUsMTYsMC4zNSkgMCUsIHJnYmEoMTAsMjUsMTYsMC43NSkgMTAwJSksCiAgICAgIHZhcigtLWhlcm8tYmctZGVza3RvcCkgY2VudGVyIDgwJS9jb3ZlciBuby1yZXBlYXQ7CiAgfQoKICAvKiBNT0RJRklDQSAyOiBzdSBtb2JpbGUgdXNhIGxhIHZhcmlhYmlsZSBtb2JpbGUgKi8KICBAbWVkaWEgKG1heC13aWR0aDogNzAwcHgpIHsKICAgIC5oZXJvLWJnIHsKICAgICAgYmFja2dyb3VuZDoKICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDEwLDI1LDE2LDAuMzUpIDAlLCByZ2JhKDEwLDI1LDE2LDAuNzUpIDEwMCUpLAogICAgICAgIHZhcigtLWhlcm8tYmctbW9iaWxlKSBjZW50ZXIgODAlL2NvdmVyIG5vLXJlcGVhdDsKICAgIH0KICB9CgogIC5oZXJvLWJhZGdlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMnJlbTsKICAgIGxlZnQ6IDIuNXJlbTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxLjVyZW07CiAgfQoKICAuaGVyby1iYWRnZS1waWxsIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7CiAgICBjb2xvcjogI2ZmZjsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4xMmVtOwogICAgcGFkZGluZzogNnB4IDE0cHg7CiAgICBib3JkZXItcmFkaXVzOiA5OXB4OwogIH0KCiAgLmhlcm8tYmFkZ2UtcGlsbC5nb2xkIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nb2xkKTsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICB9CgogIC5oZXJvLWNvbnRlbnQgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgei1pbmRleDogMTsKICAgIHBhZGRpbmc6IDRyZW0gMi41cmVtOwogICAgbWF4LXdpZHRoOiA3NjBweDsKICB9CgogIC5oZXJvLWV5ZWJyb3cgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMThlbTsKICAgIGNvbG9yOiB2YXIoLS1nb2xkLWxpZ2h0KTsKICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07CiAgfQoKICAuaGVyby10aXRsZSB7CiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsKICAgIGZvbnQtc2l6ZTogY2xhbXAoMi44cmVtLCA2dncsIDVyZW0pOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICBsaW5lLWhlaWdodDogMS4wODsKICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsKICB9CgogIC5oZXJvLXRpdGxlIGVtIHsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgIGNvbG9yOiB2YXIoLS1nb2xkLWxpZ2h0KTsKICB9CgogIC5oZXJvLXN1YnRpdGxlIHsKICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgZm9udC13ZWlnaHQ6IDMwMDsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuODIpOwogICAgbWF4LXdpZHRoOiA1MjBweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjc7CiAgICBtYXJnaW4tYm90dG9tOiAyLjVyZW07CiAgfQoKICAuaGVyby1wYXJ0bmVycyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMXJlbTsKICAgIGZsZXgtd3JhcDogd3JhcDsKICB9CgogIC5wYXJ0bmVyLXRhZyB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtOwogICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC41KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4yKTsKICAgIHBhZGRpbmc6IDVweCAxMnB4OwogICAgYm9yZGVyLXJhZGl1czogOTlweDsKICB9CgogIC5zY3JvbGwtaGludCB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBib3R0b206IDJyZW07CiAgICByaWdodDogMi41cmVtOwogICAgei1pbmRleDogMTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogOHB4OwogICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC40KTsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTsKICB9CgogIC5zY3JvbGwtbGluZSB7CiAgICB3aWR0aDogMXB4OwogICAgaGVpZ2h0OiA0OHB4OwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTsKICAgIGFuaW1hdGlvbjogc2Nyb2xsUHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgfQoKICBAa2V5ZnJhbWVzIHNjcm9sbFB1bHNlIHsKICAgIDAlLCAxMDAlIHsgb3BhY2l0eTogMC4yNTsgdHJhbnNmb3JtOiBzY2FsZVkoMSk7IH0KICAgIDUwJSB7IG9wYWNpdHk6IDAuNjsgdHJhbnNmb3JtOiBzY2FsZVkoMS4xKTsgfQogIH0KCiAgLyog4pSA4pSAIFBBUlRORVIgTE9HT1Mg4pSA4pSAICovCiAgLnBhcnRuZXItbG9nb3MgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDIwMCwgODAsIDEyMCwgMC4xMik7CiAgICBwYWRkaW5nOiAycmVtIDIuNXJlbTsKICAgIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTsKICB9CgogIC5wYXJ0bmVyLWxvZ29zLWJnIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAwOwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2Y5ZThlZiAwJSwgI2ZjZThmMCAxMDAlKTsKICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjsKICAgIHRyYW5zZm9ybTogc2NhbGVYKDApOwogICAgYW5pbWF0aW9uOiBwYWludExvZ29CZyA1LjFzIGxpbmVhciBmb3J3YXJkczsKICB9CgogIEBrZXlmcmFtZXMgcGFpbnRMb2dvQmcgewogICAgMCUgICB7IHRyYW5zZm9ybTogc2NhbGVYKDApOyB9CiAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZVgoMSk7IH0KICB9CgogIC5wYXJ0bmVyLWxvZ29zLWN5Y2xpc3QgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgaGVpZ2h0OiAzNnB4OwogICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICB9CgogIC5wYXJ0bmVyLWxvZ29zLWN5Y2xpc3QtaWNvbiB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDUwJTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIGxpbmUtaGVpZ2h0OiAxOwogIH0KCiAgQGtleWZyYW1lcyBjeWNsaXN0TG9vcCB7CiAgICAwJSAgIHsgcmlnaHQ6IC00MHB4OyB9CiAgICAxMDAlIHsgcmlnaHQ6IGNhbGMoMTAwJSArIDIwcHgpOyB9CiAgfQoKICAuYzEgewogICAgYW5pbWF0aW9uOiBjeWNsaXN0TG9vcCA1LjFzIGxpbmVhciBpbmZpbml0ZTsKICAgIGFuaW1hdGlvbi1kZWxheTogMHM7CiAgfQoKICAuYzIgewogICAgYW5pbWF0aW9uOiBjeWNsaXN0TG9vcCA1LjFzIGxpbmVhciBpbmZpbml0ZTsKICAgIGFuaW1hdGlvbi1kZWxheTogLTEuN3M7CiAgICBvcGFjaXR5OiAwLjg7CiAgICB0b3A6IDMwJTsKICB9CgogIC5jMyB7CiAgICBhbmltYXRpb246IGN5Y2xpc3RMb29wIDUuMXMgbGluZWFyIGluZmluaXRlOwogICAgYW5pbWF0aW9uLWRlbGF5OiAtMy40czsKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIHRvcDogNzAlOwogIH0KCiAgLnBhcnRuZXItbG9nb3MtaW5uZXIgewogICAgbWF4LXdpZHRoOiAxMTAwcHg7CiAgICBtYXJnaW46IDAgYXV0bzsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGdhcDogM3JlbTsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBmbGV4LXdyYXA6IG5vd3JhcDsKICB9CgogIC5wYXJ0bmVyLWxvZ29zLWxhYmVsIHsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4xOGVtOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBmbGV4LXNocmluazogMDsKICB9CgogIC5wYXJ0bmVyLWxvZ29zLWRpdmlkZXIgewogICAgd2lkdGg6IDFweDsKICAgIGhlaWdodDogMzJweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoNDIsNTQsNDAsMC4xMik7CiAgICBmbGV4LXNocmluazogMDsKICB9CgogIC5wYXJ0bmVyLWxvZ29zLWxpc3QgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGdhcDogM3JlbTsKICAgIGZsZXg6IDE7CiAgICBmbGV4LXdyYXA6IG5vd3JhcDsKICB9CgogIC5wYXJ0bmVyLWxvZ28taXRlbSB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZmxleC1zaHJpbms6IDA7CiAgfQoKICAucGFydG5lci1sb2dvLWl0ZW0gaW1nIHsKICAgIGhlaWdodDogN3ZoOwogICAgd2lkdGg6IGF1dG87CiAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgIGZpbHRlcjogZ3JheXNjYWxlKDMwJSk7CiAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4yczsKICB9CgogIC5wYXJ0bmVyLWxvZ28taXRlbSBpbWc6aG92ZXIgewogICAgZmlsdGVyOiBncmF5c2NhbGUoMCUpOwogIH0KCiAgQG1lZGlhIChtYXgtd2lkdGg6IDcwMHB4KSB7CiAgICAucGFydG5lci1sb2dvcyB7IHBhZGRpbmc6IDEuNXJlbSAxLjVyZW07IH0KICAgIC5wYXJ0bmVyLWxvZ29zLWlubmVyIHsgZ2FwOiAwOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0KICAgIC5wYXJ0bmVyLWxvZ29zLWxhYmVsLCAucGFydG5lci1sb2dvcy1kaXZpZGVyIHsgZGlzcGxheTogbm9uZTsgfQogICAgLnBhcnRuZXItbG9nb3MtbGlzdCB7IGdhcDogMS41cmVtOyB3aWR0aDogMTAwJTsgfQogICAgLnBhcnRuZXItbG9nby1pdGVtIGltZyB7IGhlaWdodDogMTB2aDsgfQogIH0KCiAgLyog4pSA4pSAIElOVFJPIOKUgOKUgCAqLwogIC5pbnRybyB7CiAgICBwYWRkaW5nOiA2cmVtIDIuNXJlbTsKICAgIG1heC13aWR0aDogMTEwMHB4OwogICAgbWFyZ2luOiAwIGF1dG87CiAgfQoKICAuc2VjdGlvbi1sYWJlbCB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMmVtOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1saWdodCk7CiAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEwcHg7CiAgfQoKICAuc2VjdGlvbi1sYWJlbDo6YWZ0ZXIgewogICAgY29udGVudDogJyc7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHdpZHRoOiAzMnB4OwogICAgaGVpZ2h0OiAxcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbi1saWdodCk7CiAgfQoKICAuaW50cm8tdGl0bGUgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7CiAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDR2dywgM3JlbSk7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6IHZhcigtLWdyZWVuLWRlZXApOwogICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIG1hcmdpbi1ib3R0b206IDEuNzVyZW07CiAgfQoKICAuaW50cm8tdGl0bGUgZW0gewogICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgY29sb3I6IHZhcigtLWdyZWVuLWxpZ2h0KTsKICB9CgogIC5pbnRyby1jdGEtYmxvY2sgewogICAgbWFyZ2luLXRvcDogMi41cmVtOwogIH0KCiAgLmludHJvLWN0YS1ibG9jay1pbm5lciB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgfQoKICAuaW50cm8tY3RhLXRpdGxlIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpOwogICAgZm9udC1zaXplOiBjbGFtcCgxLjVyZW0sIDIuNXZ3LCAxLjhyZW0pOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtOwogIH0KCiAgLmludHJvLWN0YS10aXRsZSBlbSB7CiAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICBjb2xvcjogdmFyKC0tZ3JlZW4tbGlnaHQpOwogIH0KCiAgLmludHJvLWN0YS1idG4gewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tZGVlcCk7CiAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsKICAgIHBhZGRpbmc6IDE1cHggMzBweDsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpOwogICAgZm9udC1zaXplOiAxNXB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMsIHRyYW5zZm9ybSAwLjE1czsKICB9CgogIC5pbnRyby1jdGEtYnRuOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuLW1pZCk7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7CiAgfQoKICBAbWVkaWEgKG1pbi13aWR0aDogNzAxcHgpIHsKICAgIC5pbnRyby1jdGEtYmxvY2staW5uZXIgewogICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIGdhcDogMS4yNXJlbTsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tZGVlcCk7CiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7CiAgICAgIHBhZGRpbmc6IDJyZW0gMi41cmVtOwogICAgfQoKICAgIC5pbnRyby1jdGEtdGl0bGUgewogICAgICBmb250LXNpemU6IDEuMnJlbTsKICAgICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIH0KCiAgICAuaW50cm8tY3RhLXRpdGxlIGVtIHsKICAgICAgY29sb3I6IHZhcigtLWdvbGQtbGlnaHQpOwogICAgfQoKICAgIC5pbnRyby1jdGEtYnRuIHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIH0KCiAgICAuaW50cm8tY3RhLWJ0bjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdvbGQtbGlnaHQpOwogICAgfQogIH0KCiAgLmludHJvLWJvZHkgewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgIGdhcDogMnJlbTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgfQoKICAuaW50cm8tYm9keSBwIHsKICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgfQoKICAuaW50cm8tYm9keSBiLCAuaW50cm8tYm9keSBzdHJvbmcgewogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0KTsKICB9CgogIC8qIOKUgOKUgCBFVkVOVEkg4pSA4pSAICovCiAgLmV2ZW50aSB7CiAgICBwYWRkaW5nOiA1cmVtIDAgNnJlbTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuLXBhbGUpOwogIH0KCiAgLmV2ZW50aS1oZWFkZXIgewogICAgcGFkZGluZzogMCAyLjVyZW07CiAgICBtYXgtd2lkdGg6IDExMDBweDsKICAgIG1hcmdpbjogMCBhdXRvIDMuNXJlbTsKICB9CgogIC5ldmVudGktdGl0bGUgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7CiAgICBmb250LXNpemU6IGNsYW1wKDEuOHJlbSwgMy41dncsIDIuNnJlbSk7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6IHZhcigtLWdyZWVuLWRlZXApOwogICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIG1hcmdpbi1ib3R0b206IDAuNzVyZW07CiAgfQoKICAuZXZlbnRpLXN1YiB7CiAgICBmb250LXNpemU6IDFyZW07CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBtYXgtd2lkdGg6IDU2MHB4OwogIH0KCiAgLmV2ZW50aS1jYXJvdXNlbC13cmFwIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQoKICAuZXZlbnRpLWNhcm91c2VsLXRyYWNrIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTsKICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgfQoKICAuZXZlbnRvLXNsaWRlIHsKICAgIG1pbi13aWR0aDogMTAwJTsKICAgIHdpZHRoOiAxMDAlOwogICAgZmxleC1zaHJpbms6IDA7CiAgICBwYWRkaW5nOiAwIDIuNXJlbTsKICB9CgogIC5ldmVudG8tY2FyZCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS13aGl0ZSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDQyLDU0LDQwLDAuMSk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIG1heC13aWR0aDogMTEwMHB4OwogICAgbWFyZ2luOiAwIGF1dG87CiAgfQoKICAuZXZlbnRvLWNhcmQtaGVhZGVyIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuLWRlZXApOwogICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgIHBhZGRpbmc6IDJyZW0gMi41cmVtOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgZ2FwOiAycmVtOwogICAgZmxleC13cmFwOiB3cmFwOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KCiAgLmV2ZW50by1udW0gewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7CiAgICBmb250LXNpemU6IDRyZW07CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICBsaW5lLWhlaWdodDogMTsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHJpZ2h0OiAyLjVyZW07CiAgICB0b3A6IDEuNXJlbTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KCiAgLmV2ZW50by10YWcgewogICAgZm9udC1zaXplOiAxMHB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjE1ZW07CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgY29sb3I6IHZhcigtLWdvbGQtbGlnaHQpOwogICAgbWFyZ2luLWJvdHRvbTogMC41cmVtOwogIH0KCiAgLmV2ZW50by1uYW1lIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXkpOwogICAgZm9udC1zaXplOiAxLjhyZW07CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjE1OwogICAgbWFyZ2luLWJvdHRvbTogMC40cmVtOwogIH0KCiAgLmV2ZW50by10YXBwYSB7CiAgICBmb250LXNpemU6IDAuODVyZW07CiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjUpOwogICAgZm9udC13ZWlnaHQ6IDMwMDsKICB9CgogIC5ldmVudG8tdGFwcGEgc3Ryb25nIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNzUpOwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICB9CgogIC5ldmVudG8tY2FyZC1ib2R5IHsKICAgIHBhZGRpbmc6IDJyZW0gMi41cmVtOwogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgIGdhcDogMnJlbTsKICAgIGFsaWduLWl0ZW1zOiBzdGFydDsKICB9CgogIC5nYWxsZXJ5LXNsaWRlciB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNDIsNTQsNDAsMC4xKTsKICAgIGhlaWdodDogNDIwcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbi1wYWxlKTsKICB9CgogIC5nYWxsZXJ5LXRyYWNrIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTsKICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgfQoKICAuZ2FsbGVyeS1zbGlkZSB7CiAgICBtaW4td2lkdGg6IDEwMCU7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIGZsZXgtc2hyaW5rOiAwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICB9CgogIC5nYWxsZXJ5LXNsaWRlIGltZyB7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgZGlzcGxheTogYmxvY2s7CiAgfQoKICAuZ2FsbGVyeS1idG4gewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiA1MCU7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTgpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjM1KTsKICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig2cHgpOwogICAgY29sb3I6ICNmZmY7CiAgICB3aWR0aDogMzZweDsKICAgIGhlaWdodDogMzZweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMsIG9wYWNpdHkgMC4yczsKICAgIHotaW5kZXg6IDEwOwogICAgb3BhY2l0eTogMC41NTsKICB9CgogIC5nYWxsZXJ5LWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zNSk7IG9wYWNpdHk6IDE7IH0KICAuZ2FsbGVyeS1idG4ucHJldiB7IGxlZnQ6IDEwcHg7IH0KICAuZ2FsbGVyeS1idG4ubmV4dCB7IHJpZ2h0OiAxMHB4OyB9CgogIC5nYWxsZXJ5LWRvdHMgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYm90dG9tOiAxMHB4OwogICAgbGVmdDogNTAlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgZGlzcGxheTogZmxleDsKICAgIGdhcDogNnB4OwogICAgei1pbmRleDogMTA7CiAgfQoKICAuZ2FsbGVyeS1kb3QgewogICAgd2lkdGg6IDZweDsKICAgIGhlaWdodDogNnB4OwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjQ1KTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycywgdHJhbnNmb3JtIDAuMnM7CiAgfQoKICAuZ2FsbGVyeS1kb3QuYWN0aXZlIHsKICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMyk7CiAgfQoKICAuZXZlbnRvLWluZm8gewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBnYXA6IDEuMjVyZW07CiAgfQoKICAuZXZlbnRvLWRldGFpbCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogM3B4OyB9CgogIC5ldmVudG8tZGV0YWlsLWxhYmVsIHsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4xNWVtOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1saWdodCk7CiAgfQoKICAuZXZlbnRvLWRldGFpbC12YWx1ZSB7CiAgICBmb250LXNpemU6IDFyZW07CiAgICBmb250LXdlaWdodDogNDAwOwogICAgY29sb3I6IHZhcigtLXRleHQpOwogIH0KCiAgLmV2ZW50by1kZXNjIHsKICAgIGZvbnQtc2l6ZTogMC45NXJlbTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjc7CiAgICBwYWRkaW5nLXRvcDogMC41cmVtOwogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoNDIsNTQsNDAsMC4wOCk7CiAgfQoKICAuZXZlbnRvLWN0YS1ibG9jayB7CiAgICBtYXJnaW4tdG9wOiAwLjVyZW07CiAgICBwYWRkaW5nOiAxLjI1cmVtOwogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tcGFsZSk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg3NCwxNDAsOTIsMC4xOCk7CiAgfQoKICAuZXZlbnRvLWN0YS1ibG9jayBwLmN0YS1sYWJlbCB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMTJlbTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBjb2xvcjogdmFyKC0tZ3JlZW4tbGlnaHQpOwogICAgbWFyZ2luLWJvdHRvbTogMC4zcmVtOwogIH0KCiAgLmV2ZW50by1jdGEtYmxvY2sgcC5jdGEtYm9keSB7CiAgICBmb250LXNpemU6IDAuODVyZW07CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgbWFyZ2luLWJvdHRvbTogMC45cmVtOwogIH0KCiAgLmN0YS1idG4tc21hbGwgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA4cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOwogICAgcGFkZGluZzogMTBweCAyMHB4OwogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycywgdHJhbnNmb3JtIDAuMTVzOwogIH0KCiAgLmN0YS1idG4tc21hbGw6aG92ZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tbWlkKTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsKICB9CgogIC5mb3JtLXNlY3Rpb24gewogICAgcGFkZGluZzogMS41cmVtIDIuNXJlbSAyLjVyZW07CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSg0Miw1NCw0MCwwLjA3KTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuLXBhbGUpOwogIH0KCiAgLnJldmVhbC1idG4gewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tZGVlcCk7CiAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsKICAgIHBhZGRpbmc6IDE0cHggMjhweDsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJvZHkpOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMsIHRyYW5zZm9ybSAwLjE1czsKICB9CgogIC5yZXZlYWwtYnRuOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tbWlkKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOyB9CiAgLnJldmVhbC1idG46YWN0aXZlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsgfQogIC5yZXZlYWwtYnRuIC5hcnJvdyB7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfQogIC5yZXZlYWwtYnRuLm9wZW4gLmFycm93IHsgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfQoKICAuZm9ybS13cmFwcGVyIHsKICAgIG1heC1oZWlnaHQ6IDA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjVzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpLCBvcGFjaXR5IDAuNHMgZWFzZTsKICAgIG9wYWNpdHk6IDA7CiAgfQoKICAuZm9ybS13cmFwcGVyLm9wZW4geyBtYXgtaGVpZ2h0OiA2MDBweDsgb3BhY2l0eTogMTsgfQoKICAuZm9ybS1pbm5lciB7IHBhZGRpbmctdG9wOiAxLjc1cmVtOyB9CgogIC5mb3JtLWlubmVyIGlmcmFtZSB7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogNDIwcHg7CiAgICBib3JkZXI6IG5vbmU7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDQyLDU0LDQwLDAuMSk7CiAgfQoKICAuZXZlbnRpLW5hdiB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZ2FwOiAxLjVyZW07CiAgICBwYWRkaW5nOiAycmVtIDIuNXJlbSAwOwogICAgbWF4LXdpZHRoOiAxMTAwcHg7CiAgICBtYXJnaW46IDAgYXV0bzsKICB9CgogIC5ldmVudGktbmF2LWJ0biB7CiAgICB3aWR0aDogNDRweDsKICAgIGhlaWdodDogNDRweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNDIsNTQsNDAsMC4xNSk7CiAgICBjb2xvcjogdmFyKC0tZ3JlZW4tZGVlcCk7CiAgICBmb250LXNpemU6IDE4cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzLCBib3JkZXItY29sb3IgMC4ycywgdHJhbnNmb3JtIDAuMTVzOwogICAgZmxleC1zaHJpbms6IDA7CiAgfQoKICAuZXZlbnRpLW5hdi1idG46aG92ZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tZGVlcCk7CiAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgfQoKICAuZXZlbnRpLW5hdi1waWxscyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAwLjVyZW07CiAgfQoKICAuZXZlbnRpLW5hdi1waWxsIHsKICAgIHBhZGRpbmc6IDZweCAxNnB4OwogICAgYm9yZGVyLXJhZGl1czogOTlweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNDIsNTQsNDAsMC4yKTsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICB9CgogIC5ldmVudGktbmF2LXBpbGwuYWN0aXZlIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuLWRlZXApOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgfQoKICAuZXZlbnRpLW5hdi1waWxsOmhvdmVyOm5vdCguYWN0aXZlKSB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLWdyZWVuLWxpZ2h0KTsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICB9CgogIC8qIOKUgOKUgCBCSUNJU0NVT0xBIOKUgOKUgCAqLwogIC5iaWNpc2N1b2xhIHsKICAgIHBhZGRpbmc6IDZyZW0gMi41cmVtOwogICAgbWF4LXdpZHRoOiAxMTAwcHg7CiAgICBtYXJnaW46IDAgYXV0bzsKICB9CgogIC5iaWNpc2N1b2xhLWlubmVyIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICBnYXA6IDRyZW07CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogIH0KCiAgLmJpY2lzY3VvbGEtdGl0bGUgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7CiAgICBmb250LXNpemU6IGNsYW1wKDEuNnJlbSwgM3Z3LCAyLjJyZW0pOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07CiAgfQoKICAuYmljaXNjdW9sYS1ib2R5IHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiAxcmVtOwogIH0KCiAgLmJpY2lzY3VvbGEtYm9keSBwIHsKICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgfQoKICAuYmljaXNjdW9sYS12aXN1YWwgewogICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW4tcGFsZSk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg3NCwxNDAsOTIsMC4xOCk7CiAgICBwYWRkaW5nOiAzcmVtIDJyZW07CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEuNXJlbTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICB9CgogIC5iaWNpc2N1b2xhLWhpZ2hsaWdodCB7CiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTsKICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjM1OwogIH0KCiAgLmJpY2lzY3VvbGEtaGlnaGxpZ2h0IGVtIHsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1saWdodCk7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgfQoKICAuYmljaXNjdW9sYS1wcml6ZSB7CiAgICBmb250LXNpemU6IDAuOXJlbTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSg3NCwxNDAsOTIsMC4xOCk7CiAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTsKICAgIHdpZHRoOiAxMDAlOwogIH0KCiAgLmJpY2lzY3VvbGEtcHJpemUgc3Ryb25nIHsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgfQoKICAvKiDilIDilIAgU0VaSU9ORSBJTVBBVFRPIEZJTkFMRSDilIDilIAgKi8KICAuaW1wYXR0by1zZWN0aW9uIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZWVuLWRlZXApOwogICAgcGFkZGluZzogNnJlbSAyLjVyZW07CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogIH0KCiAgLmltcGF0dG8tc2VjdGlvbjo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICcnOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgaW5zZXQ6IDA7CiAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA3MCUgNTAlLCByZ2JhKDc0LDE0MCw5MiwwLjE4KSAwJSwgdHJhbnNwYXJlbnQgNjUlKTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KCiAgLmltcGF0dG8taW5uZXIgewogICAgbWF4LXdpZHRoOiAxMTAwcHg7CiAgICBtYXJnaW46IDAgYXV0bzsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHotaW5kZXg6IDE7CiAgfQoKICAuaW1wYXR0by1sYWJlbCB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMmVtOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGNvbG9yOiB2YXIoLS1nb2xkLWxpZ2h0KTsKICAgIG1hcmdpbi1ib3R0b206IDFyZW07CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTBweDsKICB9CgogIC5pbXBhdHRvLWxhYmVsOjphZnRlciB7CiAgICBjb250ZW50OiAnJzsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgd2lkdGg6IDMycHg7CiAgICBoZWlnaHQ6IDFweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWdvbGQtbGlnaHQpOwogICAgb3BhY2l0eTogMC41OwogIH0KCiAgLmltcGF0dG8tdGl0bGUgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7CiAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDR2dywgM3JlbSk7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjE1OwogICAgbWFyZ2luLWJvdHRvbTogMy41cmVtOwogICAgbWF4LXdpZHRoOiA2MDBweDsKICB9CgogIC5pbXBhdHRvLXN0YXRzIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpOwogICAgZ2FwOiAycmVtOwogICAgbWFyZ2luLWJvdHRvbTogNHJlbTsKICB9CgogIC5pbXBhdHRvLXN0YXQgewogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7CiAgICBwYWRkaW5nLXRvcDogMS41cmVtOwogIH0KCiAgLmltcGF0dG8tc3RhdC1udW0gewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7CiAgICBmb250LXNpemU6IGNsYW1wKDIuOHJlbSwgNXZ3LCA0LjVyZW0pOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS1nb2xkLWxpZ2h0KTsKICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07CiAgfQoKICAuaW1wYXR0by1zdGF0LWxhYmVsIHsKICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjUpOwogICAgZm9udC13ZWlnaHQ6IDMwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgfQoKICAudHJ1c3QtYmFkZ2VzIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBnYXA6IDFyZW07CiAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICBtYXJnaW4tYm90dG9tOiAzcmVtOwogIH0KCiAgLnRydXN0LWJhZGdlIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMHB4OwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjA2KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7CiAgICBib3JkZXItcmFkaXVzOiA5OXB4OwogICAgcGFkZGluZzogMTBweCAxOHB4OwogICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43NSk7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7CiAgfQoKICAudHJ1c3QtYmFkZ2UgLmJhZGdlLWljb24gewogICAgZm9udC1zaXplOiAxNnB4OwogICAgZmxleC1zaHJpbms6IDA7CiAgfQoKICAuZmluYWwtY3RhLWJveCB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjE0KTsKICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgICBwYWRkaW5nOiAyLjVyZW07CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGdhcDogMnJlbTsKICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOwogIH0KCiAgLmZpbmFsLWN0YS1leWVicm93IHsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4xNWVtOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGNvbG9yOiB2YXIoLS1nb2xkLWxpZ2h0KTsKICAgIG1hcmdpbi1ib3R0b206IDAuNnJlbTsKICB9CgogIC5maW5hbC1jdGEtaGVhZGxpbmUgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7CiAgICBmb250LXNpemU6IGNsYW1wKDEuM3JlbSwgMi41dncsIDEuOHJlbSk7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6IHZhcigtLXdoaXRlKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtOwogIH0KCiAgLmZpbmFsLWN0YS1ib2R5IHsKICAgIGZvbnQtc2l6ZTogMC45NXJlbTsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7CiAgICBsaW5lLWhlaWdodDogMS42NTsKICAgIG1heC13aWR0aDogNTIwcHg7CiAgfQoKICAuZmluYWwtY3RhLWFjdGlvbnMgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIGdhcDogMXJlbTsKICAgIGZsZXgtc2hyaW5rOiAwOwogIH0KCiAgLmN0YS1idG4tcHJpbWFyeSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEwcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkKTsKICAgIGNvbG9yOiB2YXIoLS1ncmVlbi1kZWVwKTsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7CiAgICBwYWRkaW5nOiAxNnB4IDMycHg7CiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1ib2R5KTsKICAgIGZvbnQtc2l6ZTogMTVweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4wM2VtOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzLCB0cmFuc2Zvcm0gMC4xNXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIH0KCiAgLmN0YS1idG4tcHJpbWFyeTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkLWxpZ2h0KTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsKICB9CgogIC8qIOKUgOKUgCBGT09URVIg4pSA4pSAICovCiAgLmZvb3RlciB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXJrKTsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNDUpOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgcGFkZGluZzogMi41cmVtOwogICAgZm9udC1zaXplOiAxM3B4OwogIH0KCiAgLmZvb3RlciBzdHJvbmcgeyBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjcpOyB9CgogIC8qIOKUgOKUgCBSRVNQT05TSVZFIOKUgOKUgCAqLwogIEBtZWRpYSAobWF4LXdpZHRoOiA3MDBweCkgewogICAgLmludHJvLWJvZHkgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfQogICAgLmV2ZW50by1jYXJkLWJvZHkgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfQogICAgLmdhbGxlcnktc2xpZGVyIHsgaGVpZ2h0OiAyNDBweDsgfQogICAgLmhlcm8tYmFkZ2UgeyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogOHB4OyB9CiAgICAuaW1wYXR0by1zdGF0cyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyBnYXA6IDEuNXJlbTsgfQogICAgLmZpbmFsLWN0YS1ib3ggeyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9CiAgICAudHJ1c3QtYmFkZ2VzIHsgZ2FwOiAwLjc1cmVtOyB9CiAgICAuYmljaXNjdW9sYS1pbm5lciB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyBnYXA6IDJyZW07IH0KICAgIC5ldmVudG8tc2xpZGUgeyBwYWRkaW5nOiAwIDFyZW07IH0KICAgIC5ldmVudGktbmF2IHsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDFyZW07IH0KICAgIC5ldmVudGktbmF2LXBpbGxzIHsgZmxleC13cmFwOiB3cmFwOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfQogIH0KCiAgaDEsIGgyLCBoMywgaDQgewogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSkgIWltcG9ydGFudDsKICB9Cjwvc3R5bGU+Cgo8IS0tIOKVkOKVkCBIRVJPIOKVkOKVkCAtLT4KPHNlY3Rpb24gY2xhc3M9Imhlcm8iPgogIDxkaXYgY2xhc3M9Imhlcm8tYmciPjwvZGl2PgogIDxkaXYgY2xhc3M9Imhlcm8tYmFkZ2UiPjwvZGl2PgogIDxkaXYgY2xhc3M9Imhlcm8tY29udGVudCI+CiAgICA8cCBjbGFzcz0iaGVyby1leWVicm93Ij5WQUlBIMOXIEdpcm8gZCdJdGFsaWE8L3A+CiAgICA8aDEgY2xhc3M9Imhlcm8tdGl0bGUiIHN0eWxlPSJmb250LXNpemU6IGNsYW1wKDEuOHJlbSwgMy44dncsIDMuMnJlbSk7IG1heC13aWR0aDogNjgwcHg7Ij5WQUlBIGlzIFN1c3RhaW5hYmlsaXR5IFBhcnRuZXIgb2YgdGhlIEdpcm8gZCdJdGFsaWEgMjAyNjxicj48ZW0+PC9lbT48L2gxPgogICAgPHAgY2xhc3M9Imhlcm8tc3VidGl0bGUiPgogICAgICBUaHJlZSB0ZXJyaXRvcmllcywgMyBkYXlzIG9mIGNvbGxlY3RpdmUgcmVmb3Jlc3RhdGlvbiwgMzAwMCB0cmVlcyBwbGFudGVkOiB0aGlzIGlzIHRoZSBncmVlbiB0cmFpbCBsZWZ0IGJ5IFZBSUEgYW5kIHRoZSBHaXJvIGQnSXRhbGlhIGZvciB0aGUgMTA5dGggZWRpdGlvbiBvZiB0aGUgQ29yc2EgUm9zYS4gQnV0IHdlIGRvbid0IHN0b3AgaGVyZSwgd2UgY2FuIGRvIGV2ZW4gbW9yZS4KICAgIDwvcD4KICAgIDxkaXYgY2xhc3M9Imhlcm8tcGFydG5lcnMiPgogICAgICA8c3BhbiBjbGFzcz0icGFydG5lci10YWciPlN1c3RhaW5hYmxlIFBhcnRuZXI8L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJwYXJ0bmVyLXRhZyI+UmlkZSBHcmVlbjwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InBhcnRuZXItdGFnIj5CaWNpU2N1b2xhPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0icGFydG5lci10YWciPjMgZXZlbnRzIMK3IDIwMjY8L3NwYW4+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJzY3JvbGwtaGludCI+CiAgICA8ZGl2IGNsYXNzPSJzY3JvbGwtbGluZSI+PC9kaXY+CiAgICA8c3Bhbj5EaXNjb3Zlcjwvc3Bhbj4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKPCEtLSDilZDilZAgUEFSVE5FUiBMT0dPUyDilZDilZAgLS0+CjxzZWN0aW9uIGNsYXNzPSJwYXJ0bmVyLWxvZ29zIj4KICA8ZGl2IGNsYXNzPSJwYXJ0bmVyLWxvZ29zLWJnIj48L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYXJ0bmVyLWxvZ29zLWN5Y2xpc3QiPgogICAgPGRpdiBjbGFzcz0icGFydG5lci1sb2dvcy1jeWNsaXN0LWljb24gYzEiPvCfmrQ8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBhcnRuZXItbG9nb3MtY3ljbGlzdC1pY29uIGMyIj7wn5q04oCN4pmC77iPPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYXJ0bmVyLWxvZ29zLWN5Y2xpc3QtaWNvbiBjMyI+8J+atOKAjeKZgO+4jzwvZGl2PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhcnRuZXItbG9nb3MtaW5uZXIiPgogICAgPGRpdiBjbGFzcz0icGFydG5lci1sb2dvcy1saXN0Ij4KICAgICAgPGRpdiBjbGFzcz0icGFydG5lci1sb2dvLWl0ZW0iPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL3d3dy52YWlhLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L2Zkc2ZzZC5wbmciIGFsdD0iUGFydG5lciAyIj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKPCEtLSDilZDilZAgSU5UUk8g4pWQ4pWQIC0tPgo8c2VjdGlvbiBjbGFzcz0iaW50cm8iPgogIDxwIGNsYXNzPSJzZWN0aW9uLWxhYmVsIj5UaGUgUHJvamVjdDwvcD4KICA8aDIgY2xhc3M9ImludHJvLXRpdGxlIiBzdHlsZT0iZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7IGZvbnQtd2VpZ2h0OiA3MDA7Ij4zMDAwIHRyZWVzIHBsYW50ZWQgdG9nZXRoZXIsPGJyPjxlbSBzdHlsZT0iZm9udC1zdHlsZTogbm9ybWFsOyBjb2xvcjogdmFyKC0tZ3JlZW4tbGlnaHQpOyI+dGhlIG5leHQgb25lIGNhbiBiZSB5b3Vycy48L2VtPjwvaDI+CiAgPGRpdiBjbGFzcz0iaW50cm8tYm9keSI+CiAgICA8cD4KICAgICAgVkFJQSB3YXMgYm9ybiBmcm9tIHRoZSBzdG9ybSBvZiB0aGUgc2FtZSBuYW1lIHRoYXQgaW4gMjAxOCBzd2VwdCBhd2F5IDxiPjQyIG1pbGxpb24gdHJlZXMgaW4gdGhlIERvbG9taXRlczwvYj4uIEZyb20gdGhhdCBldmVudCBhIG1pc3Npb24gd2FzIGJvcm46IHRvIGdpdmUgYmFjayB0byB0aGUgbW91bnRhaW5zIHdoYXQgdGhlIHdpbmQgdG9vayBhd2F5LCBvbmUgdHJlZSBhdCBhIHRpbWUuCiAgICA8L3A+CiAgICA8cD5Gcm9tIHRoZXJlIGNhbWUgdGhlIGlkZWEgb2YgcmVjb3ZlcmluZyB0aGUgd29vZCBvZiB0aGUgZmFsbGVuIHRyZWVzLCBhY3RpdmF0aW5nIGxvY2FsIGFydGlzYW4gc3VwcGx5IGNoYWlucyBhbmQgY3JlYXRpbmcgYW4gaWNvbmljIG9iamVjdDogdGhlIDxiPlZBSUEgQ3ViZTwvYj4uIEEgbmF0dXJhbCBzbWFydHBob25lIGFtcGxpZmllciB0aGF0IHNpbmNlIDIwMTkgaGFzIGFsbG93ZWQgdXMgdG8gcGxhbnQgPGI+MjAwLDAwMCBuZXcgdHJlZXM8L2I+IGluIHRoZSBEb2xvbWl0ZXMuPC9wPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJpbnRyby1jdGEtYmxvY2siPgogICAgPGRpdiBjbGFzcz0iaW50cm8tY3RhLWJsb2NrLWlubmVyIj4KICAgICAgPHAgY2xhc3M9ImludHJvLWN0YS10aXRsZSI+QnkgcHVyY2hhc2luZyBhIFZBSUEgQ3ViZSA8ZW0+dGhlIG5leHQgdHJlZSBjYW4gYmUgeW91cnMuPC9lbT48L3A+CiAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnZhaWEuZXUvZW4vcHJvZHVjdC92YWlhLWN1YmUvIiBjbGFzcz0iaW50cm8tY3RhLWJ0biI+QnV5IG5vdyDihpI8L2E+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKPCEtLSDilZDilZAgRVZFTlRJIOKVkOKVkCAtLT4KPHNlY3Rpb24gY2xhc3M9ImV2ZW50aSI+CiAgPGRpdiBjbGFzcz0iZXZlbnRpLWhlYWRlciI+CiAgICA8cCBjbGFzcz0ic2VjdGlvbi1sYWJlbCI+VGhlIEV2ZW50czwvcD4KICAgIDxoMiBjbGFzcz0iZXZlbnRpLXRpdGxlIj5UaHJlZSBkYXlzIG9mIHJlZm9yZXN0YXRpb24sIHRocmVlIGFyZWFzIHJlZ2VuZXJhdGVkIHRvZ2V0aGVyLjwvaDI+CiAgICA8cCBjbGFzcz0iZXZlbnRpLXN1YiI+VGhyZWUgc3RhZ2VzIG9mIHRoZSBHaXJvLiBUaHJlZSB0ZXJyaXRvcmllcyBoaXQgYnkgVmFpYS4gPGI+QSBzaW5nbGUgZ3JlZW4gdHJhaWwgdGhhdCBjb250aW51ZXMgdG8gZ3JvdzwvYj4gdGhhbmtzIHRvIHRob3NlIHdobyBjaG9vc2UgdG8gYmUgcGFydCBvZiBpdC4gRGlzY292ZXIgdGhlIGFyZWFzIHdoZXJlIHdlIHBsYW50ZWQgdG9nZXRoZXIgaW4gQXByaWwuPC9wPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJldmVudGktbmF2Ij4KICAgIDxidXR0b24gY2xhc3M9ImV2ZW50aS1uYXYtYnRuIiBvbmNsaWNrPSJjaGFuZ2VFdmVudG8oLTEpIiBhcmlhLWxhYmVsPSJQcmV2aW91cyBFdmVudCI+4oaQPC9idXR0b24+CiAgICA8ZGl2IGNsYXNzPSJldmVudGktbmF2LXBpbGxzIj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iZXZlbnRpLW5hdi1waWxsIGFjdGl2ZSIgb25jbGljaz0iZ29Ub0V2ZW50bygwKSI+MDEgwrcgRGFyem88L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iZXZlbnRpLW5hdi1waWxsIiBvbmNsaWNrPSJnb1RvRXZlbnRvKDEpIj4wMiDCtyBDYW5hemVpPC9idXR0b24+CiAgICAgIDxidXR0b24gY2xhc3M9ImV2ZW50aS1uYXYtcGlsbCIgb25jbGljaz0iZ29Ub0V2ZW50bygyKSI+MDMgwrcgQ2xhdXQ8L2J1dHRvbj4KICAgIDwvZGl2PgogICAgPGJ1dHRvbiBjbGFzcz0iZXZlbnRpLW5hdi1idG4iIG9uY2xpY2s9ImNoYW5nZUV2ZW50bygxKSIgYXJpYS1sYWJlbD0iTmV4dCBFdmVudCI+4oaSPC9idXR0b24+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9ImV2ZW50aS1jYXJvdXNlbC13cmFwIiBzdHlsZT0ibWFyZ2luLXRvcDogMS41cmVtOyI+CiAgICA8ZGl2IGNsYXNzPSJldmVudGktY2Fyb3VzZWwtdHJhY2siIGlkPSJldmVudGlUcmFjayI+CgogICAgICA8IS0tIFNMSURFIDE6IERBUlpPIC0tPgogICAgICA8ZGl2IGNsYXNzPSJldmVudG8tc2xpZGUiPgogICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1jYXJkIiBpZD0iZXZlbnRvLWRhcnpvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1jYXJkLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPHAgY2xhc3M9ImV2ZW50by10YWciPkV2ZW50IDAxIMK3IFRyZW50aW5vPC9wPgogICAgICAgICAgICAgIDxoMyBjbGFzcz0iZXZlbnRvLW5hbWUiPlBsYW50aW5nIGluIERhcnpvPC9oMz4KICAgICAgICAgICAgICA8cCBjbGFzcz0iZXZlbnRvLXRhcHBhIj4xN3RoIEdpcm8gU3RhZ2U6IDxzdHJvbmc+Q2Fzc2FubyBkJ0FkZGEg4oCTIEFuZGFsbyDihpIgUGxhbnRpbmcgaW4gRGFyem8sIFZhbGRvbmVhIGxvY2FsaXR5PC9zdHJvbmc+PC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1udW0iPjAxPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tY2FyZC1ib2R5Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1zbGlkZXIiIGRhdGEtc2xpZGVyPSIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktdHJhY2siPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1zbGlkZSI+PGltZyBzcmM9Imh0dHBzOi8vd3d3LnZhaWEuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvRGFyem8tMS1zY2FsZWQuanBnP3c9ODAwJmFtcDtxPTgwIiBhbHQ9IkZvcmVzdGEgRGFyem8gMSI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LXNsaWRlIj48aW1nIHNyYz0iaHR0cHM6Ly93d3cudmFpYS5ldS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9EYXJ6by0yLXNjYWxlZC5qcGc\/dz04MDAmYW1wO3E9ODAiIGFsdD0iRm9yZXN0YSBEYXJ6byAyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktc2xpZGUiPjxpbWcgc3JjPSJodHRwczovL3d3dy52YWlhLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L0RTQzA4MDgwLXNjYWxlZC5qcGc\/dz04MDAmYW1wO3E9ODAiIGFsdD0iRm9yZXN0YSBEYXJ6byAzIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktc2xpZGUiPjxpbWcgc3JjPSJodHRwczovL3d3dy52YWlhLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L0RhcnpvLTQtc2NhbGVkLmpwZz93PTgwMCZhbXA7cT04MCIgYWx0PSJGb3Jlc3RhIERhcnpvIDQiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1zbGlkZSI+PGltZyBzcmM9Imh0dHBzOi8vd3d3LnZhaWEuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvRGFyem8tNS1zY2FsZWQuanBnP3c9ODAwJmFtcDtxPTgwIiBhbHQ9IkZvcmVzdGEgRGFyem8gNSI+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZ2FsbGVyeS1idG4gcHJldiIgb25jbGljaz0ic2xpZGVHYWxsZXJ5KHRoaXMsIC0xKSI+4oaQPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZ2FsbGVyeS1idG4gbmV4dCIgb25jbGljaz0ic2xpZGVHYWxsZXJ5KHRoaXMsIDEpIj7ihpI8L2J1dHRvbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LWRvdHMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1kb3QgYWN0aXZlIiBvbmNsaWNrPSJnb1RvU2xpZGUodGhpcywgMCkiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1kb3QiIG9uY2xpY2s9ImdvVG9TbGlkZSh0aGlzLCAxKSI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LWRvdCIgb25jbGljaz0iZ29Ub1NsaWRlKHRoaXMsIDIpIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktZG90IiBvbmNsaWNrPSJnb1RvU2xpZGUodGhpcywgMykiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1kb3QiIG9uY2xpY2s9ImdvVG9TbGlkZSh0aGlzLCA0KSI+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8taW5mbyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWRldGFpbCI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC1sYWJlbCI+SG93IG1hbnkgdHJlZXM8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC12YWx1ZSI+MSwwMDAgdHJlZXMgcGxhbnRlZDwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tZGV0YWlsIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLWxhYmVsIj5XaGVyZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJldmVudG8tZGV0YWlsLXZhbHVlIj5NYWxnYSBTcGluYSwgQ29sbGVjdGl2ZSBQcm9wZXJ0eSBvZiB0aGUgRGFyem8gRnJhY3Rpb24sIE11bmljaXBhbGl0eSBvZiBTdG9ybywgVmFsbGUgZGVsIENoaWVzZSAoVE4pLjwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8cCBjbGFzcz0iZXZlbnRvLWRlc2MiPgogICAgICAgICAgICAgICAgVGhlIENoaWVzZSBWYWxsZXkgaXMgdHVybmluZyBncmVlbiBhZ2Fpbi4gRGFyem8gaXMgb25lIG9mIHRoZSBhcmVhcyB0aGF0IHN0aWxsIGJlYXJzIHRoZSBzaWducyBvZiB0aGUgVmFpYSBzdG9ybSwgYnV0IHRvZGF5IHRoZXNlIHdvb2RzIHRlbGwgYSBuZXcgc3Rvcnkgb2YgcmViaXJ0aC48YnI+PGJyPgogICAgICAgICAgICAgICAgVG9nZXRoZXIgd2l0aCBvdXIgcGFydG5lcnMgYW5kIGxvY2FsIGZhbWlsaWVzLCB3ZSB0dXJuZWQgYSBzeW1ib2xpYyBnZXN0dXJlIGludG8gYSBjb25jcmV0ZSBhY3Rpb246IG5ldyB0cmVlcywgbmV3IHJvb3RzIGFuZCBhIG5ldyBmdXR1cmUgZm9yIHRoZXNlIG1vdW50YWlucy4KICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWN0YS1ibG9jayI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iY3RhLWxhYmVsIj5IZWxwIHRoaXMgZm9yZXN0IGtlZXAgZ3Jvd2luZzwvcD4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjdGEtYm9keSI+RXZlcnkgVkFJQSBwdXJjaGFzZSBjb250cmlidXRlcyB0byBnZW5lcmF0aW5nIGEgcmVhbCBpbXBhY3Qgb24gdGhlIHRlcnJpdG9yeSBhbmQgc3VwcG9ydGluZyBuZXcgcmVmb3Jlc3RhdGlvbiBwcm9qZWN0cyBpbiB0aGUgRG9sb21pdGVzLjwvcD4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnZhaWEuZXUvZW4vc2hvcC8iIGNsYXNzPSJjdGEtYnRuLXNtYWxsIj5EaXNjb3ZlciBWQUlBIHByb2R1Y3RzIOKGkjwvYT4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tc2VjdGlvbiI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InJldmVhbC1idG4iIG9uY2xpY2s9InRvZ2dsZUZvcm0oJ2Zvcm0tZGFyem8nLCB0aGlzKSI+CiAgICAgICAgICAgICAgRGlzY292ZXIgdGhlIHBsYW50aW5nIGFyZWEKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYXJyb3ciPuKGkzwvc3Bhbj4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0td3JhcHBlciIgaWQ9ImZvcm0tZGFyem8iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taW5uZXIiPgogICAgICAgICAgICAgICAgPGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9lbWJlZD9wYj0hMW0xOCExbTEyITFtMyExZDEwNzk5LjAwMDg0OTMwNjQzNCEyZDEwLjU0NTM3NTM3ODI2MjQ5MSEzZDQ1Ljg1NDEyMTc3MDYwMTYxNiEybTMhMWYwITJmMCEzZjAhM20yITFpMTAyNCEyaTc2OCE0ZjEzLjEhM20zITFtMiExczB4NDc4MjI1NDJkNGE2ODhlZiUzQTB4ZjA0M2VjM2MxZmEwYTU4ITJzQWdyaSUyMDkwJTIwLSUyMFNvY2lldCVDMyVBMCUyMENvb3BlcmF0aXZhJTIwQWdyaWNvbGEhNWUwITNtMiExc2l0ITJzaXQhNHYxNzc1ODI0OTUzMjY0ITVtMiExc2l0ITJzaXQiIGFsbG93ZnVsbHNjcmVlbj0iIiBsb2FkaW5nPSJsYXp5IiByZWZlcnJlcnBvbGljeT0ibm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiPjwvaWZyYW1lPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gU0xJREUgMjogQ0FOQVpFSSAtLT4KICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLXNsaWRlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tY2FyZCIgaWQ9ImV2ZW50by1jYW5hemVpIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1jYXJkLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPHAgY2xhc3M9ImV2ZW50by10YWciPkV2ZW50IDAyIMK3IERvbG9taXRlczwvcD4KICAgICAgICAgICAgICA8aDMgY2xhc3M9ImV2ZW50by1uYW1lIj5QbGFudGluZyBpbiBDYW5hemVpIChQZW5pYSBsb2NhbGl0eSk8L2gzPgogICAgICAgICAgICAgIDxwIGNsYXNzPSJldmVudG8tdGFwcGEiPjE5dGggU3RhZ2U6IDxzdHJvbmc+RmVsdHJlIOKGkiBBbGxlZ2hlPC9zdHJvbmc+PC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1udW0iPjAyPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tY2FyZC1ib2R5Ij4KICAgICAgICAgICAgPCEtLSBHYWxsZXJ5IGFuZCBjb250ZW50IGZvciBDYW5hemVpIChzYW1lIHN0cnVjdHVyZSkgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktc2xpZGVyIiBkYXRhLXNsaWRlcj0iIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LXRyYWNrIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktc2xpZGUiPjxpbWcgc3JjPSJodHRwczovL3d3dy52YWlhLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L2NhbmF6ZWktMi1zY2FsZWQuanBnIiBhbHQ9IkNhbmF6ZWkgMSI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LXNsaWRlIj48aW1nIHNyYz0iaHR0cHM6Ly93d3cudmFpYS5ldS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9jYW5hemVpLTQtc2NhbGVkLmpwZz93PTgwMCZhbXA7cT04MCIgYWx0PSJDYW5hemVpIDIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1zbGlkZSI+PGltZyBzcmM9Imh0dHBzOi8vd3d3LnZhaWEuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvY2FuYXplaS01LXNjYWxlZC5qcGc\/dz04MDAmYW1wO3E9ODAiIGFsdD0iQ2FuYXplaSAzIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktc2xpZGUiPjxpbWcgc3JjPSJodHRwczovL3d3dy52YWlhLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L2NhbmF6ZWktMS1zY2FsZWQuanBnP3c9ODAwJmFtcDtxPTgwIiBhbHQ9IkNhbmF6ZWkgNCI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LXNsaWRlIj48aW1nIHNyYz0iaHR0cHM6Ly93d3cudmFpYS5ldS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9jYW5hemVpLTMtc2NhbGVkLmpwZz93PTgwMCZhbXA7cT04MCIgYWx0PSJDYW5hemVpIDUiPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImdhbGxlcnktYnRuIHByZXYiIG9uY2xpY2s9InNsaWRlR2FsbGVyeSh0aGlzLCAtMSkiPuKGkDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImdhbGxlcnktYnRuIG5leHQiIG9uY2xpY2s9InNsaWRlR2FsbGVyeSh0aGlzLCAxKSI+4oaSPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1kb3RzIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktZG90IGFjdGl2ZSIgb25jbGljaz0iZ29Ub1NsaWRlKHRoaXMsIDApIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktZG90IiBvbmNsaWNrPSJnb1RvU2xpZGUodGhpcywgMSkiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1kb3QiIG9uY2xpY2s9ImdvVG9TbGlkZSh0aGlzLCAyKSI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LWRvdCIgb25jbGljaz0iZ29Ub1NsaWRlKHRoaXMsIDMpIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktZG90IiBvbmNsaWNrPSJnb1RvU2xpZGUodGhpcywgNCkiPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWluZm8iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1kZXRhaWwiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtbGFiZWwiPkhvdyBtYW55IHRyZWVzPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtdmFsdWUiPjEsMDAwIHRyZWVzIHBsYW50ZWQ8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWRldGFpbCI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC1sYWJlbCI+V2hlcmU8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC12YWx1ZSI+UGVuaWEsIENhbmF6ZWkgLSBWYWwgZGkgRmFzc2EgKFROKTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8cCBjbGFzcz0iZXZlbnRvLWRlc2MiPgogICAgICAgICAgICAgICAgSW4gdGhlIGhlYXJ0IG9mIHRoZSBEb2xvbWl0ZXMgVU5FU0NPIFdvcmxkIEhlcml0YWdlIFNpdGUsIFZhbCBkaSBGYXNzYSByZXByZXNlbnRzIG9uZSBvZiB0aGUgc3Ryb25nZXN0IHN5bWJvbHMgb2YgcmViaXJ0aCBhZnRlciB0aGUgVmFpYSBzdG9ybS4gSW4gQ2FuYXplaSwgaW4gdGhlIGxvY2FsaXR5IG9mIFBlbmlhLCBhbW9uZyBpY29uaWMgbW91bnRhaW5zIGFuZCBmb3Jlc3RzIHdvdW5kZWQgYnkgdGhlIHdpbmQsIHdlIGhhdmUgYnJvdWdodCB0byBsaWZlIGEgbmV3IGNvbmNyZXRlIHJlZm9yZXN0YXRpb24gYWN0aW9uLjxicj48YnI+CiAgICAgICAgICAgICAgICBUb2dldGhlciB3aXRoIG91ciBwYXJ0bmVycyBhbmQgbG9jYWwgc2Nob29scywgd2UgcGxhbnRlZCBuZXcgdHJlZXMgdG8gZ2l2ZSBiYWNrIGVuZXJneSwgdmFsdWUgYW5kIGZ1dHVyZSB0byBvbmUgb2YgdGhlIG1vc3QgZXh0cmFvcmRpbmFyeSBsYW5kc2NhcGVzIG9mIHRoZSBEb2xvbWl0ZXMuCiAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1jdGEtYmxvY2siPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9ImN0YS1sYWJlbCI+QnJpbmcgcmVhbCBpbXBhY3QgdG8gdGhlIHRlcnJpdG9yeSB0b288L3A+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iY3RhLWJvZHkiPldpdGggZXZlcnkgcHVyY2hhc2UgeW91IHN1cHBvcnQgbmV3IGNvbmNyZXRlIGVudmlyb25tZW50YWwgcmVnZW5lcmF0aW9uIGFjdGlvbnMuPC9wPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cudmFpYS5ldS9lbi9zaG9wLyIgY2xhc3M9ImN0YS1idG4tc21hbGwiPkRpc2NvdmVyIFZBSUEgcHJvZHVjdHMg4oaSPC9hPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1zZWN0aW9uIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmV2ZWFsLWJ0biIgb25jbGljaz0idG9nZ2xlRm9ybSgnZm9ybS1jYW5hemVpJywgdGhpcykiPgogICAgICAgICAgICAgIERpc2NvdmVyIHRoZSBwbGFudGluZyBhcmVhCiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImFycm93Ij7ihpM8L3NwYW4+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXdyYXBwZXIiIGlkPSJmb3JtLWNhbmF6ZWkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0taW5uZXIiPgogICAgICAgICAgICAgICAgPGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9lbWJlZD9wYj0hMW0xOCExbTEyITFtMyExZDExMDAwLjAhMmQxMS43NzMhM2Q0Ni40NzYhMm0zITFmMCEyZjAhM2YwITNtMiExaTEwMjQhMmk3NjghNGYxMy4xITNtMyExbTIhMXMweDQ3ODM4ZTdmNWI1ZTNhOGYlM0EweGFiY2RlZjEyMzQ1Njc4OTAhMnNDYW5hemVpJTJDK1ROITVlMCEzbTIhMXNpdCEyc2l0ITR2MSIgYWxsb3dmdWxsc2NyZWVuPSIiIGxvYWRpbmc9ImxhenkiIHJlZmVycmVycG9saWN5PSJuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSI+PC9pZnJhbWU+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBTTElERSAzOiBDTEFVVCAtLT4KICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLXNsaWRlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tY2FyZCIgaWQ9ImV2ZW50by1jbGF1dCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tY2FyZC1oZWFkZXIiPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxwIGNsYXNzPSJldmVudG8tdGFnIj5FdmVudCAwMyDCtyBGcml1bGk8L3A+CiAgICAgICAgICAgICAgPGgzIGNsYXNzPSJldmVudG8tbmFtZSI+UGxhbnRpbmcgaW4gQ2xhdXQgKExlc2lzIGxvY2FsaXR5KTwvaDM+CiAgICAgICAgICAgICAgPHAgY2xhc3M9ImV2ZW50by10YXBwYSI+MjB0aCBTdGFnZTogPHN0cm9uZz5HZW1vbmEgZGVsIEZyaXVsaSDihpIgUGlhbmNhdmFsbG88L3N0cm9uZz48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLW51bSI+MDM8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1jYXJkLWJvZHkiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LXNsaWRlciIgZGF0YS1zbGlkZXI9IiI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS10cmFjayI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LXNsaWRlIj48aW1nIHNyYz0iaHR0cHM6Ly93d3cudmFpYS5ldS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9DbGF1dF8yNGFwcl8xMTUtc2NhbGVkLmpwZz93PTgwMCZhbXA7cT04MCIgYWx0PSJDbGF1dCAxIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktc2xpZGUiPjxpbWcgc3JjPSJodHRwczovL3d3dy52YWlhLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L0NsYXV0XzI0YXByXzA0OC1zY2FsZWQuanBnP3c9ODAwJmFtcDtxPTgwIiBhbHQ9IkNsYXV0IDIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1zbGlkZSI+PGltZyBzcmM9Imh0dHBzOi8vd3d3LnZhaWEuZXUvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvQ2xhdXRfMjRhcHJfMDgwLXNjYWxlZC5qcGc\/dz04MDAmYW1wO3E9ODAiIGFsdD0iQ2xhdXQgMyI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LXNsaWRlIj48aW1nIHNyYz0iaHR0cHM6Ly93d3cudmFpYS5ldS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9DbGF1dF8yNGFwcl8wMzQtc2NhbGVkLmpwZz93PTgwMCZhbXA7cT04MCIgYWx0PSJDbGF1dCA0Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktc2xpZGUiPjxpbWcgc3JjPSJodHRwczovL3d3dy52YWlhLmV1L3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L0NsYXV0XzI0YXByXzEzOC1zY2FsZWQuanBnP3c9ODAwJmFtcDtxPTgwIiBhbHQ9IkNsYXV0IDUiPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImdhbGxlcnktYnRuIHByZXYiIG9uY2xpY2s9InNsaWRlR2FsbGVyeSh0aGlzLCAtMSkiPuKGkDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImdhbGxlcnktYnRuIG5leHQiIG9uY2xpY2s9InNsaWRlR2FsbGVyeSh0aGlzLCAxKSI+4oaSPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1kb3RzIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktZG90IGFjdGl2ZSIgb25jbGljaz0iZ29Ub1NsaWRlKHRoaXMsIDApIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktZG90IiBvbmNsaWNrPSJnb1RvU2xpZGUodGhpcywgMSkiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2FsbGVyeS1kb3QiIG9uY2xpY2s9ImdvVG9TbGlkZSh0aGlzLCAyKSI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnYWxsZXJ5LWRvdCIgb25jbGljaz0iZ29Ub1NsaWRlKHRoaXMsIDMpIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdhbGxlcnktZG90IiBvbmNsaWNrPSJnb1RvU2xpZGUodGhpcywgNCkiPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWluZm8iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50by1kZXRhaWwiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtbGFiZWwiPkhvdyBtYW55IHRyZWVzPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImV2ZW50by1kZXRhaWwtdmFsdWUiPjEsMDAwIHRyZWVzIHBsYW50ZWQ8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnRvLWRldGFpbCI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC1sYWJlbCI+V2hlcmU8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXZlbnRvLWRldGFpbC12YWx1ZSI+TGVzaXMgbG9jYWxpdHksIENsYXV0PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxwIGNsYXNzPSJldmVudG8tZGVzYyI+CiAgICAgICAgICAgICAgICBUaGUgVmFsY2VsbGluYSwgaW4gRnJpdWxpIFZlbmV6aWEgR2l1bGlhLCB3YXMgb25lIG9mIHRoZSBhcmVhcyBtb3N0IGFmZmVjdGVkIGJ5IHRoZSBWYWlhIHN0b3JtLiBUb2RheSBDbGF1dCBiZWNvbWVzIHRoZSBzeW1ib2wgb2YgYSBuZXcgcmVzdGFydDogYSBwbGFjZSB3aGVyZSB0aGUgZm9yZXN0IGdyb3dzIGFnYWluIHRoYW5rcyB0byB0aGUgc2hhcmVkIGNvbW1pdG1lbnQgb2YgdGhlIGNvbW11bml0eSwgdGhlIHRlcnJpdG9yeSBhbmQgdGhlIHBlb3BsZS48YnI+PGJyPgogICAgICAgICAgICAgICAgVG9nZXRoZXIgd2l0aCBvdXIgcGFydG5lcnMsIHNjaG9vbHMgYW5kIGxvY2FsIGZhbWlsaWVzLCB3ZSBwbGFudGVkIG5ldyB0cmVlcyB0byBjb250cmlidXRlIGNvbmNyZXRlbHkgdG8gdGhlIHJlZ2VuZXJhdGlvbiBvZiB0aGVzZSBtb3VudGFpbnMsIGJ1aWxkaW5nIGEgc3Ryb25nZXIgYW5kIG1vcmUgc3VzdGFpbmFibGUgZnV0dXJlIGZvciB0aGUgdGVycml0b3J5LgogICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudG8tY3RhLWJsb2NrIj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJjdGEtbGFiZWwiPlRoaXMgZ3JlZW4gdHJhaWwgY29udGludWVzIHRoYW5rcyB0byB5b3U8L3A+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iY3RhLWJvZHkiPkNob29zaW5nIFZBSUEgbWVhbnMgY29udHJpYnV0aW5nIHRvIHRoZSByZWJpcnRoIG9mIHRoZSBtb3VudGFpbnMuPC9wPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cudmFpYS5ldS9lbi9zaG9wLyIgY2xhc3M9ImN0YS1idG4tc21hbGwiPkRpc2NvdmVyIFZBSUEgcHJvZHVjdHMg4oaSPC9hPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1zZWN0aW9uIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmV2ZWFsLWJ0biIgb25jbGljaz0idG9nZ2xlRm9ybSgnZm9ybS1jbGF1dCcsIHRoaXMpIj4KICAgICAgICAgICAgICBEaXNjb3ZlciB0aGUgcGxhbnRpbmcgYXJlYQogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhcnJvdyI+4oaTPC9zcGFuPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS13cmFwcGVyIiBpZD0iZm9ybS1jbGF1dCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1pbm5lciI+CiAgICAgICAgICAgICAgICA8aWZyYW1lIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkP3BiPSExbTE4ITFtMTIhMW0zITFkMTEyMDAuMCEyZDEyLjUxOSEzZDQ2LjE4NiEybTMhMWYwITJmMCEzZjAhM20yITFpMTAyNCEyaTc2OCE0ZjEzLjEhM20zITFtMiExczB4NDc3OTUzZDliMmY0ZTZhNSUzQTB4OTg3NjU0MzIxMGZlZGNiYSEyc0NsYXV0JTJDK1BOITVlMCEzbTIhMXNpdCEyc2l0ITR2MSIgYWxsb3dmdWxsc2NyZWVuPSIiIGxvYWRpbmc9ImxhenkiIHJlZmVycmVycG9saWN5PSJuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSI+PC9pZnJhbWU+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgIDwvZGl2PgogIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8IS0tIOKVkOKVkCBCSUNJU0NVT0xBIOKVkOKVkCAtLT4KPHNlY3Rpb24gY2xhc3M9ImJpY2lzY3VvbGEiPgogIDxkaXYgY2xhc3M9ImJpY2lzY3VvbGEtaW5uZXIiPgogICAgPGRpdiBjbGFzcz0iYmljaXNjdW9sYS10ZXh0Ij4KICAgICAgPHAgY2xhc3M9InNlY3Rpb24tbGFiZWwiPkVkdWNhdGlvbmFsIFBhcnRuZXJzaGlwPC9wPgogICAgICA8aDIgY2xhc3M9ImJpY2lzY3VvbGEtdGl0bGUiPlZBSUEgYW5kIEJpY2lTY3VvbGE6IHBlZGFsaW5nIHRvZ2V0aGVyIHRvd2FyZHMgdGhlIGZ1dHVyZTwvaDI+CiAgICAgIDxkaXYgY2xhc3M9ImJpY2lzY3VvbGEtYm9keSI+CiAgICAgICAgPHA+Rm9yIHRoZSAyMDI2IGVkaXRpb24gPGI+VkFJQSBpcyBFZHVjYXRpb25hbCBQYXJ0bmVyPC9iPiBvZiB0aGUgQmljaVNjdW9sYSBwcm9qZWN0LCBicmluZ2luZyBpdHMgY29udHJpYnV0aW9uIHdpdGggZGVkaWNhdGVkIGNvbnRlbnQgYW5kIGEgY29uY3JldGUgZXhwZXJpZW5jZSwgbGlua2VkIHRvIHRoZSByZWZvcmVzdGF0aW9uIGFjdGl2aXRpZXMgcHJvbW90ZWQgYWxvbmcgdGhlIEdpcm8gcm91dGUuPC9wPgogICAgICAgIDxwPkFuIG9wcG9ydHVuaXR5IHRvIDxiPmJyaW5nIHRoZSBuZXcgZ2VuZXJhdGlvbnM8L2I+IGNsb3NlciB0byBjYXJpbmcgZm9yIHRoZSB0ZXJyaXRvcnksIHRyYW5zZm9ybWluZyB2YWx1ZXMgYW5kIGF3YXJlbmVzcyBpbnRvIHJlYWwgYWN0aW9ucy48L3A+CiAgICAgICAgPHA+VG8gY29tcGxldGUgdGhlIHByb2plY3QsIFZBSUEgd2lsbCBhd2FyZCB0aGUgd2lubmluZyBjbGFzc2VzIHdpdGggYSA8c3Ryb25nPlZBSUEgQ3ViZTwvc3Ryb25nPi4gQSB3YXkgdG8gPGI+bGVhdmUgYSB0YW5naWJsZSBtYXJrPC9iPiBhbmQgYnVpbGQsIHRvZ2V0aGVyLCBhIGN1bHR1cmUgb2Ygc3VzdGFpbmFiaWxpdHkuPC9wPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iYmljaXNjdW9sYS12aXN1YWwiPgogICAgICA8aW1nIHNyYz0iaHR0cHM6Ly93d3cudmFpYS5ldS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9CaWNpLXNjdXVsYS5wbmciIGFsdD0iQmljaVNjdW9sYSIgc3R5bGU9IndpZHRoOjIwJTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsgb2JqZWN0LWZpdDogY292ZXI7IGRpc3BsYXk6IGJsb2NrOyI+CiAgICAgIDxwIGNsYXNzPSJiaWNpc2N1b2xhLWhpZ2hsaWdodCI+CiAgICAgICAgVkFJQSBpcyBFZHVjYXRpb25hbCBQYXJ0bmVyPGJyPm9mIEJpY2lTY3VvbGEgMjAyNgogICAgICA8L3A+CiAgICAgIDxkaXYgY2xhc3M9ImJpY2lzY3VvbGEtcHJpemUiPgogICAgICAgIDxzdHJvbmc+8J+PhiBQcml6ZSBmb3IgdGhlIHdpbm5pbmcgY2xhc3Nlczwvc3Ryb25nPjxicj4KICAgICAgICBTY2hvb2xzIHBhcnRpY2lwYXRpbmcgaW4gdGhlIEJpY2lTY3VvbGEgcHJvamVjdCB3aWxsIGhhdmUgdGhlIG9wcG9ydHVuaXR5IHRvIHdpbiBhIFZBSUEgQ3ViZSwgYSBjb25jcmV0ZSBzeW1ib2wgb2YgY29tbWl0bWVudCB0byB0aGUgbW91bnRhaW5zLgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8IS0tIOKVkOKVkCBTRVpJT05FIElNUEFUVE8gRklOQUxFIOKVkOKVkCAtLT4KPHNlY3Rpb24gY2xhc3M9ImltcGF0dG8tc2VjdGlvbiI+CiAgPGRpdiBjbGFzcz0iaW1wYXR0by1pbm5lciI+CiAgICA8cCBjbGFzcz0iaW1wYXR0by1sYWJlbCI+QSByZWFsIGltcGFjdCwgYnVpbHQgdG9nZXRoZXI8L3A+CiAgICA8aDIgY2xhc3M9ImltcGF0dG8tdGl0bGUiPlRoZSBHaXJvIHBhc3Nlcy48YnI+VGhlIGltcGFjdCByZW1haW5zLjwvaDI+CiAgICA8ZGl2IGNsYXNzPSJpbXBhdHRvLXN0YXRzIj4KICAgICAgPGRpdiBjbGFzcz0iaW1wYXR0by1zdGF0Ij4KICAgICAgICA8c3BhbiBjbGFzcz0iaW1wYXR0by1zdGF0LW51bSI+MywwMDA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImltcGF0dG8tc3RhdC1sYWJlbCI+bmV3IHRyZWVzIHBsYW50ZWQgaW4gdGhlIERvbG9taXRlczwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImltcGF0dG8tc3RhdCI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImltcGF0dG8tc3RhdC1udW0iPjM8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImltcGF0dG8tc3RhdC1sYWJlbCI+cmVnZW5lcmF0ZWQgdGVycml0b3JpZXMgYmV0d2VlbiBUcmVudGlubywgVmVuZXRvIGFuZCBGcml1bGk8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJpbXBhdHRvLXN0YXQiPgogICAgICAgIDxzcGFuIGNsYXNzPSJpbXBhdHRvLXN0YXQtbnVtIj4xMDArPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJpbXBhdHRvLXN0YXQtbGFiZWwiPnBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgcGxhbnRpbmcgZGF5czwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InRydXN0LWJhZGdlcyI+CiAgICAgIDxkaXYgY2xhc3M9InRydXN0LWJhZGdlIj4KICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UtaWNvbiI+8J+PlO+4jzwvc3Bhbj4KICAgICAgICA8c3Bhbj5Eb2xvbWl0ZXMgVU5FU0NPIFdvcmxkIEhlcml0YWdlPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idHJ1c3QtYmFkZ2UiPgogICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZS1pY29uIj7imbvvuI88L3NwYW4+CiAgICAgICAgPHNwYW4+UHJvZHVjdHMgbWFkZSB3aXRoIHdvb2QgcmVjb3ZlcmVkIGZyb20gdGhlIHN0b3JtPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idHJ1c3QtYmFkZ2UiPgogICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZS1pY29uIj7wn6SdPC9zcGFuPgogICAgICAgIDxzcGFuPkxvY2FsIGNvbW11bml0aWVzIGludm9sdmVkIGluIGV2ZXJ5IHByb2plY3Q8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmaW5hbC1jdGEtYm94Ij4KICAgICAgPGRpdiBjbGFzcz0iZmluYWwtY3RhLXRleHQiPgogICAgICAgIDxwIGNsYXNzPSJmaW5hbC1jdGEtZXllYnJvdyI+U3VwcG9ydCByZWZvcmVzdGF0aW9uPC9wPgogICAgICAgIDxwIGNsYXNzPSJmaW5hbC1jdGEtaGVhZGxpbmUiPkRvIHlvdXIgcGFydC48YnI+Tm93LjwvcD4KICAgICAgICA8cCBjbGFzcz0iZmluYWwtY3RhLWJvZHkiPkV2ZXJ5IFZBSUEgcHVyY2hhc2UgaGVscHMgcmVnZW5lcmF0ZSB0aGUgZm9yZXN0cyBhZmZlY3RlZCBieSB0aGUgVmFpYSBzdG9ybSBhbmQgYnVpbGQgYSBtb3JlIHN1c3RhaW5hYmxlIGZ1dHVyZSBmb3IgdGhlIERvbG9taXRlcy4gQSBjb25jcmV0ZSBjaG9pY2UsIGEgbWVhc3VyYWJsZSBpbXBhY3QuPC9wPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZmluYWwtY3RhLWFjdGlvbnMiPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnZhaWEuZXUvZW4vc2hvcC8iIGNsYXNzPSJjdGEtYnRuLXByaW1hcnkiPkRpc2NvdmVyIFZBSUEgcHJvZHVjdHMg4oaSPC9hPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2Pgo8L3NlY3Rpb24+Cgo8c2NyaXB0PgogIC8qIOKVkOKVkCBFVkVOVEkgQ0FST1VTRUwg4pWQ4pWQICovCiAgbGV0IGN1cnJlbnRFdmVudG8gPSAwOwogIGNvbnN0IFRPVEFMX0VWRU5USSA9IDM7CiAgbGV0IGV2ZW50b0F1dG9wbGF5OwoKICBmdW5jdGlvbiB1cGRhdGVFdmVudG9DYXJvdXNlbChpZHgpIHsKICAgIGNvbnN0IHRyYWNrID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V2ZW50aVRyYWNrJyk7CiAgICB0cmFjay5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWCgtJHtpZHggKiAxMDB9JSlgOwogICAgY3VycmVudEV2ZW50byA9IGlkeDsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ldmVudGktbmF2LXBpbGwnKS5mb3JFYWNoKChwaWxsLCBpKSA9PiB7CiAgICAgIHBpbGwuY2xhc3NMaXN0LnRvZ2dsZSgnYWN0aXZlJywgaSA9PT0gaWR4KTsKICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gY2hhbmdlRXZlbnRvKGRpcikgewogICAgY29uc3QgbmV4dCA9IChjdXJyZW50RXZlbnRvICsgZGlyICsgVE9UQUxfRVZFTlRJKSAlIFRPVEFMX0VWRU5USTsKICAgIHVwZGF0ZUV2ZW50b0Nhcm91c2VsKG5leHQpOwogICAgcmVzZXRFdmVudG9BdXRvcGxheSgpOwogIH0KCiAgZnVuY3Rpb24gZ29Ub0V2ZW50byhpZHgpIHsKICAgIHVwZGF0ZUV2ZW50b0Nhcm91c2VsKGlkeCk7CiAgICByZXNldEV2ZW50b0F1dG9wbGF5KCk7CiAgfQoKICBmdW5jdGlvbiBzdGFydEV2ZW50b0F1dG9wbGF5KCkgewogICAgZXZlbnRvQXV0b3BsYXkgPSBzZXRJbnRlcnZhbCgoKSA9PiB7CiAgICAgIHVwZGF0ZUV2ZW50b0Nhcm91c2VsKChjdXJyZW50RXZlbnRvICsgMSkgJSBUT1RBTF9FVkVOVEkpOwogICAgfSwgNTAwMCk7CiAgfQoKICBmdW5jdGlvbiByZXNldEV2ZW50b0F1dG9wbGF5KCkgewogICAgY2xlYXJJbnRlcnZhbChldmVudG9BdXRvcGxheSk7CiAgICBzdGFydEV2ZW50b0F1dG9wbGF5KCk7CiAgfQoKICBzdGFydEV2ZW50b0F1dG9wbGF5KCk7CgogIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ldmVudGktY2Fyb3VzZWwtd3JhcCcpLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiBjbGVhckludGVydmFsKGV2ZW50b0F1dG9wbGF5KSk7CiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmV2ZW50aS1jYXJvdXNlbC13cmFwJykuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHN0YXJ0RXZlbnRvQXV0b3BsYXkpOwoKICAvKiDilZDilZAgR0FMTEVSWSBTTElERVIg4pWQ4pWQICovCiAgZnVuY3Rpb24gZ2V0U2xpZGVyU3RhdGUoYnRuKSB7CiAgICBjb25zdCBzbGlkZXIgPSBidG4uY2xvc2VzdCgnW2RhdGEtc2xpZGVyXScpOwogICAgY29uc3QgdHJhY2sgPSBzbGlkZXIucXVlcnlTZWxlY3RvcignLmdhbGxlcnktdHJhY2snKTsKICAgIGNvbnN0IGRvdHMgPSBzbGlkZXIucXVlcnlTZWxlY3RvckFsbCgnLmdhbGxlcnktZG90Jyk7CiAgICBjb25zdCB0b3RhbCA9IHNsaWRlci5xdWVyeVNlbGVjdG9yQWxsKCcuZ2FsbGVyeS1zbGlkZScpLmxlbmd0aDsKICAgIGNvbnN0IGN1cnJlbnQgPSBwYXJzZUludCh0cmFjay5kYXRhc2V0LmN1cnJlbnQgfHwgJzAnKTsKICAgIHJldHVybiB7IHNsaWRlciwgdHJhY2ssIGRvdHMsIHRvdGFsLCBjdXJyZW50IH07CiAgfQoKICBmdW5jdGlvbiB1cGRhdGVTbGlkZXIodHJhY2ssIGRvdHMsIGlkeCkgewogICAgdHJhY2suc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoLSR7aWR4ICogMTAwfSUpYDsKICAgIHRyYWNrLmRhdGFzZXQuY3VycmVudCA9IGlkeDsKICAgIGRvdHMuZm9yRWFjaCgoZCwgaSkgPT4gZC5jbGFzc0xpc3QudG9nZ2xlKCdhY3RpdmUnLCBpID09PSBpZHgpKTsKICB9CgogIGZ1bmN0aW9uIHNsaWRlR2FsbGVyeShidG4sIGRpcikgewogICAgY29uc3QgeyB0cmFjaywgZG90cywgdG90YWwsIGN1cnJlbnQgfSA9IGdldFNsaWRlclN0YXRlKGJ0bik7CiAgICBjb25zdCBuZXh0ID0gKGN1cnJlbnQgKyBkaXIgKyB0b3RhbCkgJSB0b3RhbDsKICAgIHVwZGF0ZVNsaWRlcih0cmFjaywgZG90cywgbmV4dCk7CiAgfQoKICBmdW5jdGlvbiBnb1RvU2xpZGUoZG90LCBpZHgpIHsKICAgIGNvbnN0IHNsaWRlciA9IGRvdC5jbG9zZXN0KCdbZGF0YS1zbGlkZXJdJyk7CiAgICBjb25zdCB0cmFjayA9IHNsaWRlci5xdWVyeVNlbGVjdG9yKCcuZ2FsbGVyeS10cmFjaycpOwogICAgY29uc3QgZG90cyA9IHNsaWRlci5xdWVyeVNlbGVjdG9yQWxsKCcuZ2FsbGVyeS1kb3QnKTsKICAgIHVwZGF0ZVNsaWRlcih0cmFjaywgZG90cywgaWR4KTsKICB9CgogIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXNsaWRlcl0nKS5mb3JFYWNoKHNsaWRlciA9PiB7CiAgICBsZXQgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7CiAgICAgIGNvbnN0IHRyYWNrID0gc2xpZGVyLnF1ZXJ5U2VsZWN0b3IoJy5nYWxsZXJ5LXRyYWNrJyk7CiAgICAgIGNvbnN0IGRvdHMgPSBzbGlkZXIucXVlcnlTZWxlY3RvckFsbCgnLmdhbGxlcnktZG90Jyk7CiAgICAgIGNvbnN0IHRvdGFsID0gc2xpZGVyLnF1ZXJ5U2VsZWN0b3JBbGwoJy5nYWxsZXJ5LXNsaWRlJykubGVuZ3RoOwogICAgICBjb25zdCBjdXJyZW50ID0gcGFyc2VJbnQodHJhY2suZGF0YXNldC5jdXJyZW50IHx8ICcwJyk7CiAgICAgIHVwZGF0ZVNsaWRlcih0cmFjaywgZG90cywgKGN1cnJlbnQgKyAxKSAlIHRvdGFsKTsKICAgIH0sIDM1MDApOwoKICAgIHNsaWRlci5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4gY2xlYXJJbnRlcnZhbChpbnRlcnZhbCkpOwogICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB7CiAgICAgIGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4gewogICAgICAgIGNvbnN0IHRyYWNrID0gc2xpZGVyLnF1ZXJ5U2VsZWN0b3IoJy5nYWxsZXJ5LXRyYWNrJyk7CiAgICAgICAgY29uc3QgZG90cyA9IHNsaWRlci5xdWVyeVNlbGVjdG9yQWxsKCcuZ2FsbGVyeS1kb3QnKTsKICAgICAgICBjb25zdCB0b3RhbCA9IHNsaWRlci5xdWVyeVNlbGVjdG9yQWxsKCcuZ2FsbGVyeS1zbGlkZScpLmxlbmd0aDsKICAgICAgICBjb25zdCBjdXJyZW50ID0gcGFyc2VJbnQodHJhY2suZGF0YXNldC5jdXJyZW50IHx8ICcwJyk7CiAgICAgICAgdXBkYXRlU2xpZGVyKHRyYWNrLCBkb3RzLCAoY3VycmVudCArIDEpICUgdG90YWwpOwogICAgICB9LCAzNTAwKTsKICAgIH0pOwogIH0pOwoKICAvKiDilZDilZAgRk9STSAvIE1BUCBSRVZFQUwg4pWQ4pWQICovCiAgZnVuY3Rpb24gdG9nZ2xlRm9ybShpZCwgYnRuKSB7CiAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwogICAgY29uc3QgaXNPcGVuID0gd3JhcHBlci5jbGFzc0xpc3QuY29udGFpbnMoJ29wZW4nKTsKICAgIHdyYXBwZXIuY2xhc3NMaXN0LnRvZ2dsZSgnb3BlbicsICFpc09wZW4pOwogICAgYnRuLmNsYXNzTGlzdC50b2dnbGUoJ29wZW4nLCAhaXNPcGVuKTsKICAgIGJ0bi5xdWVyeVNlbGVjdG9yKCcuYXJyb3cnKS50ZXh0Q29udGVudCA9IGlzT3BlbiA\/ICfihpMnIDogJ+KGkSc7CiAgfQo8L3NjcmlwdD4B+cDWpwdI\/QE4tAqHAfECGZYDGbsFGYkDHu4IFJcBanlJFxqwAhmUARisCQ95FiMRblOrAyCWBBUEXDFa2gHXASJfBI0BBBUsNjgUFoUBBKEBBOoBBEMELi9cD0kcUSlgBCgWTQRbBIkBBEcbSwRMhQEjUqkBHoQC2gO9ASPBBQnpAY4B9QEK0wMLxwUPpgwVjQIVkwMVpgMVyAJVogNC1wINKAv\/Ag2zCAvTAwrdAg0oC\/0CDeYJGLYD3wKuAlwACAAGAAQA\",\"updateId\":4465827}","content-type":"","footnotes":""},"class_list":["post-55459","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Giro Italia | VAIA<\/title>\n<meta name=\"robots\" content=\"noindex, nofollow\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Giro Italia | VAIA\" \/>\n<meta property=\"og:description\" content=\"VAIA \u00d7 Giro d&#8217;Italia \u2013 Planting 2026 VAIA \u00d7 Giro d&#8217;Italia VAIA is Sustainability Partner of the Giro d&#8217;Italia 2026 Three territories, 3 days of collective reforestation, 3000 trees planted: this is the green trail left by VAIA and the Giro d&#8217;Italia for the 109th edition of the Corsa Rosa. But we don&#8217;t stop here, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vaia.eu\/en\/giro-italia\/\" \/>\n<meta property=\"og:site_name\" content=\"VAIA\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/therealvaia\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-15T06:50:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/fdsfsd.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.vaia.eu\\\/en\\\/giro-italia\\\/\",\"url\":\"https:\\\/\\\/www.vaia.eu\\\/en\\\/giro-italia\\\/\",\"name\":\"Giro Italia | VAIA\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.vaia.eu\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.vaia.eu\\\/en\\\/giro-italia\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vaia.eu\\\/en\\\/giro-italia\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vaia.eu\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/fdsfsd.png\",\"datePublished\":\"2026-04-02T09:32:04+00:00\",\"dateModified\":\"2026-05-15T06:50:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.vaia.eu\\\/en\\\/giro-italia\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.vaia.eu\\\/en\\\/giro-italia\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.vaia.eu\\\/en\\\/giro-italia\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.vaia.eu\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/fdsfsd.png\",\"contentUrl\":\"https:\\\/\\\/www.vaia.eu\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/fdsfsd.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.vaia.eu\\\/en\\\/giro-italia\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.vaia.eu\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Giro Italia\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.vaia.eu\\\/#website\",\"url\":\"https:\\\/\\\/www.vaia.eu\\\/\",\"name\":\"VAIA - Face what matters\",\"description\":\"Face What Matters\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.vaia.eu\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.vaia.eu\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.vaia.eu\\\/#organization\",\"name\":\"VAIA\",\"url\":\"https:\\\/\\\/www.vaia.eu\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.vaia.eu\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.vaia.eu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/logo-vaia.svg\",\"contentUrl\":\"https:\\\/\\\/www.vaia.eu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/logo-vaia.svg\",\"width\":1000,\"height\":1000,\"caption\":\"VAIA\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vaia.eu\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/therealvaia\\\/\",\"https:\\\/\\\/www.instagram.com\\\/therealvaia\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/vaiasrl\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCPtTJEh97yiEMm-vE_Ux3Aw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Giro Italia | VAIA","robots":{"index":"noindex","follow":"nofollow"},"og_locale":"en_US","og_type":"article","og_title":"Giro Italia | VAIA","og_description":"VAIA \u00d7 Giro d&#8217;Italia \u2013 Planting 2026 VAIA \u00d7 Giro d&#8217;Italia VAIA is Sustainability Partner of the Giro d&#8217;Italia 2026 Three territories, 3 days of collective reforestation, 3000 trees planted: this is the green trail left by VAIA and the Giro d&#8217;Italia for the 109th edition of the Corsa Rosa. But we don&#8217;t stop here, [&hellip;]","og_url":"https:\/\/www.vaia.eu\/en\/giro-italia\/","og_site_name":"VAIA","article_publisher":"https:\/\/www.facebook.com\/therealvaia\/","article_modified_time":"2026-05-15T06:50:36+00:00","og_image":[{"url":"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/fdsfsd.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vaia.eu\/en\/giro-italia\/","url":"https:\/\/www.vaia.eu\/en\/giro-italia\/","name":"Giro Italia | VAIA","isPartOf":{"@id":"https:\/\/www.vaia.eu\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.vaia.eu\/en\/giro-italia\/#primaryimage"},"image":{"@id":"https:\/\/www.vaia.eu\/en\/giro-italia\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/fdsfsd.png","datePublished":"2026-04-02T09:32:04+00:00","dateModified":"2026-05-15T06:50:36+00:00","breadcrumb":{"@id":"https:\/\/www.vaia.eu\/en\/giro-italia\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vaia.eu\/en\/giro-italia\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.vaia.eu\/en\/giro-italia\/#primaryimage","url":"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/fdsfsd.png","contentUrl":"https:\/\/www.vaia.eu\/wp-content\/uploads\/2026\/05\/fdsfsd.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.vaia.eu\/en\/giro-italia\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vaia.eu\/en\/"},{"@type":"ListItem","position":2,"name":"Giro Italia"}]},{"@type":"WebSite","@id":"https:\/\/www.vaia.eu\/#website","url":"https:\/\/www.vaia.eu\/","name":"VAIA - Face what matters","description":"Face What Matters","publisher":{"@id":"https:\/\/www.vaia.eu\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vaia.eu\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.vaia.eu\/#organization","name":"VAIA","url":"https:\/\/www.vaia.eu\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.vaia.eu\/#\/schema\/logo\/image\/","url":"https:\/\/www.vaia.eu\/wp-content\/uploads\/2023\/12\/logo-vaia.svg","contentUrl":"https:\/\/www.vaia.eu\/wp-content\/uploads\/2023\/12\/logo-vaia.svg","width":1000,"height":1000,"caption":"VAIA"},"image":{"@id":"https:\/\/www.vaia.eu\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/therealvaia\/","https:\/\/www.instagram.com\/therealvaia\/","https:\/\/www.linkedin.com\/company\/vaiasrl\/","https:\/\/www.youtube.com\/channel\/UCPtTJEh97yiEMm-vE_Ux3Aw"]}]}},"_links":{"self":[{"href":"https:\/\/www.vaia.eu\/en\/wp-json\/wp\/v2\/pages\/55459","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vaia.eu\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.vaia.eu\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.vaia.eu\/en\/wp-json\/wp\/v2\/users\/336"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vaia.eu\/en\/wp-json\/wp\/v2\/comments?post=55459"}],"version-history":[{"count":6,"href":"https:\/\/www.vaia.eu\/en\/wp-json\/wp\/v2\/pages\/55459\/revisions"}],"predecessor-version":[{"id":56484,"href":"https:\/\/www.vaia.eu\/en\/wp-json\/wp\/v2\/pages\/55459\/revisions\/56484"}],"wp:attachment":[{"href":"https:\/\/www.vaia.eu\/en\/wp-json\/wp\/v2\/media?parent=55459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}