SMART DAK Cervical Cancer Screening
0.0.1 - ci-build

SMART DAK Cervical Cancer Screening, published by Dan Heslinga (independent contributor). This guide is not an authorized publication; it is the continuous build for version 0.0.1 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/dhes/smart-dak-cxca/ and changes regularly. See the Directory of published versions

: CXCAD2DTScreeningEligibilityLogic - XML Representation

Draft as of 2026-05-14

Raw xml | Download


<Library xmlns="http://hl7.org/fhir">
  <id value="CXCAD2DTScreeningEligibilityLogic"/>
  <meta>
    <profile
             value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"/>
    <profile
             value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"/>
    <profile
             value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"/>
    <profile
             value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"/>
  </meta>
  <text>
    <status value="extensions"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
<div>
    <table class="grid dict">
        
        
        <tr>
            <th scope="row"><b>Title: </b></th>
            <td style="padding-left: 4px;">CXCAD2DTScreeningEligibilityLogic</td>
        </tr>
        

        
        
        <tr>
            <th scope="row"><b>Id: </b></th>
            <td style="padding-left: 4px;">CXCAD2DTScreeningEligibilityLogic</td>
        </tr>
        

        
        
        <tr>
            <th scope="row"><b>Version: </b></th>
            <td style="padding-left: 4px;">0.0.1</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Url: </b></th>
            <td style="padding-left: 4px;"><a href="Library-CXCAD2DTScreeningEligibilityLogic.html">CXCAD2DTScreeningEligibilityLogic</a></td>
        </tr>
        

        

        

        
        <tr>
            <th scope="row"><b>Status: </b></th>
            <td style="padding-left: 4px;">draft</td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Type: </b></th>
            <td style="padding-left: 4px;">
                
                    
                        
                        <p style="margin-bottom: 5px;">
                            <b>system: </b> <span><a href="http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html">http://terminology.hl7.org/CodeSystem/library-type</a></span>
                        </p>
                        
                        
                        <p style="margin-bottom: 5px;">
                            <b>code: </b> <span>logic-library</span>
                        </p>
                        
                        
                    
                
                
            </td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Date: </b></th>
            <td style="padding-left: 4px;">2026-05-14 00:50:23+0000</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Publisher: </b></th>
            <td style="padding-left: 4px;">Dan Heslinga (independent contributor)</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Description: </b></th>
            <td style="padding-left: 4px;"><div><p>Decision support logic for cervical cancer screening eligibility (CXCA.D2). Encodes the binding eligibility rules from Mongolia MOH Order A/641 (2020) section 2.2. Source CQL is at input/cql/CXCAD2DTScreeningEligibilityLogic.cql.</p>
</div></td>
        </tr>
        

        

        

        

        

        

        

        

        

        

        

        
        <tr>
            <th scope="row"><b>Related Artifacts: </b></th>
            <td style="padding-left: 4px;">
                
                
                
                <p><b>Dependencies</b></p>
                <ul>
                  
                    <li><a href="Library-CXCAElements.html">CXCAElements</a></li>
                  
                </ul>
                
                
                
                
                
            </td>
        </tr>
        

        
        <tr>
          <th scope="row"><b>Parameters: </b></th>
          <td style="padding-left: 4px;">
            <table class="grid-dict">
              <tr><th><b>Name</b></th><th><b>Type</b></th><th><b>Min</b></th><th><b>Max</b></th><th><b>In/Out</b></th></tr>
              
                <tr><th>Today</th><th>date</th><th>0</th><th>1</th><th>In</th></tr>
              
                <tr><th>HasRecentHPVScreening</th><th>boolean</th><th>0</th><th>1</th><th>In</th></tr>
              
                <tr><th>HasRecentCytologyScreening</th><th>boolean</th><th>0</th><th>1</th><th>In</th></tr>
              
                <tr><th>FacilityHasHPVCapability</th><th>boolean</th><th>0</th><th>1</th><th>In</th></tr>
              
                <tr><th>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client age</th><th>integer</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client is at binding target age (35 or 45)</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client is at programmatic target age (30 or 40)</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client is due for HPV screening (legal binding)</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client not due — already screened in current cycle (legal binding)</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client excluded — outside target age range (legal binding)</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client excluded — prior hysterectomy (legal binding)</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client is at cytology pathway target age</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client is due for cytology screening (legal binding)</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client is due for HPV screening (programmatic)</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client is due for HPV screening at age 35</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client is due for HPV screening at age 30</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
            </table>
          </td>
        </tr>
        

        

        
        
        <tr>
          <td colspan="2">
            <table>
              <tr><th><a id="cql-content"><b>Content: </b></a> text/cql</th></tr>
              <tr><td><pre><code class="language-cql">/*
 * Library: CXCAD2DTScreeningEligibilityLogic
 *
 * Decision: Cervical cancer screening eligibility (HPV pathway)
 * L2 Source: A/641 (2020) section 2.2 — Mongolia binding screening eligibility rules
 * Trigger: CXCA.D2 — encounter with a woman in primary-care setting
 *
 * Phase 5 expansion: implements the full four-outcome eligibility tree
 *   (Due, Not Due in Cycle, Outside Age Range, Excluded - Hysterectomy)
 *   across both binding ages 35 and 45, plus a parallel programmatic-overlay
 *   tree for the April 2025 launch's announced 30 and 40 ages.
 *
 * Each outcome is encoded as a separate CQL define so PlanDefinition actions
 * can fire on them individually — this lets a CDS engine surface different
 * guidance text per outcome rather than collapsing all branches into a
 * single boolean.
 *
 * PLACEHOLDER PATTERN — read carefully:
 *   This rule references four predicates. One has been migrated to a real
 *   FHIR query in the shared CXCAElements layer; three remain as Boolean
 *   parameters that the CDS client must supply at evaluation time.
 *
 *     ✓ Migrated   Elements.&quot;Has Had Hysterectomy&quot;
 *                  → real query against [Procedure] with code CXCA.D#DE45
 *
 *     ⏸ Placeholder &quot;HasRecentHPVScreening&quot;, &quot;HasRecentCytologyScreening&quot;
 *                  → straightforward queries in shape, but require a design
 *                    decision on the recall window: parameterize the interval
 *                    (one define for both pathways) or author sibling defines
 *                    (HPV-recent at 10y, cytology-recent at 3y per A/641 §2.2)?
 *                    Held until the design call is made.
 *
 *     ⏸ Placeholder &quot;FacilityHasHPVCapability&quot;
 *                  → not actually a per-patient FHIR query — this is facility
 *                    configuration. Real implementation could derive it from a
 *                    Location/Organization extension OR keep it as a parameter
 *                    the CDS client supplies. Both are defensible; left as a
 *                    parameter for now.
 *
 *   The migration is structurally trivial: replacing a parameter read with
 *   `Elements.&quot;&lt;name&gt;&quot;` only changes the body of the consuming define. The
 *   define's name, signature, and PlanDefinition wiring all stay intact, so
 *   downstream consumers (the PlanDefinition actions, ActivityDefinitions,
 *   fixtures) are unaffected.
 */

library CXCAD2DTScreeningEligibilityLogic version '0.0.1'

using FHIR version '4.0.1'

include FHIRHelpers version '4.0.1'

// Shared elements layer — the harmonization substrate. Provides
// `Has Had Hysterectomy` (a real FHIR query against [Procedure]); other
// per-period predicates can be added here as they are authored.
include CXCAElements called Elements

parameter Today Date default Today()

// Placeholder parameters — see PLACEHOLDER PATTERN in the file header for
// the per-parameter rationale on why these remain as parameters rather than
// migrating to CXCAElements queries.
parameter &quot;HasRecentHPVScreening&quot; Boolean default false
parameter &quot;HasRecentCytologyScreening&quot; Boolean default false

// Facility lab-capacity selector — A/641 section 2.2 specifies different age cycles
// based on whether the facility can run HPV high-risk DNA tests in-house.
//   true  → HPV pathway (ages 35 and 45 only)
//   false → cytology pathway (the 11-age 3-year cycle: 30, 33, 36, 39, 42,
//           45, 48, 51, 54, 57, 60)
// Real implementation will derive this from a Location/Organization extension
// or from a facility-registry lookup; in this iteration it is a parameter
// the CDS client supplies.
parameter &quot;FacilityHasHPVCapability&quot; Boolean default true

context Patient

// =============================================================================
// Helper definitions
// =============================================================================

/*
 * Client age in years at the encounter date.
 */
define &quot;Client age&quot;:
  AgeInYearsAt(Today)

/*
 * The client is at one of the binding target ages per A/641 section 2.2
 * (HPV-test-capable facilities: ages 35 and 45 only).
 */
define &quot;Client is at binding target age (35 or 45)&quot;:
  &quot;Client age&quot; = 35 or &quot;Client age&quot; = 45

/*
 * The client is at one of the programmatic-overlay target ages per the
 * April 2025 Cervical Cancer Elimination Programme launch announcement
 * (ages 30 and 40).
 */
define &quot;Client is at programmatic target age (30 or 40)&quot;:
  &quot;Client age&quot; = 30 or &quot;Client age&quot; = 40

// =============================================================================
// Legal-binding eligibility tree — A/641 section 2.2 (HPV at ages 35 and 45)
// Bindingness: legal
// =============================================================================

/*
 * @output: CXCA.D#DE4 &quot;Due for HPV screening&quot;
 * @bindingness: legal
 * Client is due if at a binding target age, has not had a hysterectomy,
 * and has not been screened in the current cycle.
 */
define &quot;Client is due for HPV screening (legal binding)&quot;:
  &quot;Client is at binding target age (35 or 45)&quot;
    and not Elements.&quot;Has Had Hysterectomy&quot;
    and not &quot;HasRecentHPVScreening&quot;

/*
 * @output: CXCA.D#DE5 &quot;Not due — already screened in current cycle&quot;
 * @bindingness: legal
 * Client is at a target age but has had a recent valid HPV screening result.
 */
define &quot;Client not due — already screened in current cycle (legal binding)&quot;:
  &quot;Client is at binding target age (35 or 45)&quot;
    and &quot;HasRecentHPVScreening&quot;
    and not Elements.&quot;Has Had Hysterectomy&quot;

/*
 * @output: CXCA.D#DE6 &quot;Excluded — outside target age range&quot;
 * @bindingness: legal
 * Client is not at a binding target age (35 or 45 only for HPV-capable facilities).
 */
define &quot;Client excluded — outside target age range (legal binding)&quot;:
  not &quot;Client is at binding target age (35 or 45)&quot;
    and not Elements.&quot;Has Had Hysterectomy&quot;

/*
 * @output: CXCA.D#DE7 &quot;Excluded — prior hysterectomy&quot;
 * @bindingness: legal
 * Client has had a hysterectomy for non-cervical-cancer indication and is
 * therefore exempt from cervical cancer screening per A/641 section 2.2.
 */
define &quot;Client excluded — prior hysterectomy (legal binding)&quot;:
  Elements.&quot;Has Had Hysterectomy&quot;

// =============================================================================
// Cytology-pathway eligibility — A/641 section 2.2 (cytology-only facilities)
// Bindingness: legal — binding to cytology-only facilities under A/641
//
// Eleven binding ages on a 3-year cycle: 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60.
// Applied when the facility has no HPV DNA testing capability.
// =============================================================================

/*
 * The client is at one of the 11 binding cytology-pathway target ages
 * per A/641 section 2.2 (cytology-only facilities, 3-year cycle from 30 to 60).
 */
define &quot;Client is at cytology pathway target age&quot;:
  &quot;Client age&quot; in { 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60 }

/*
 * @output: CXCA.D#DE4 &quot;Due for HPV screening&quot; — but the test recommended is
 *   cytology, not HPV (the screening name in CXCA.D#DE4 reflects the WHO
 *   target test; both pathways are flavors of &quot;cervical cancer screening&quot;).
 * @bindingness: legal
 * Cytology-pathway client is due if at one of the 11 target ages, the facility
 * lacks HPV capability, no hysterectomy, and no recent valid cytology screening.
 */
define &quot;Client is due for cytology screening (legal binding)&quot;:
  &quot;Client is at cytology pathway target age&quot;
    and not &quot;FacilityHasHPVCapability&quot;
    and not Elements.&quot;Has Had Hysterectomy&quot;
    and not &quot;HasRecentCytologyScreening&quot;

// =============================================================================
// Programmatic-overlay eligibility — April 2025 launch's 30/40 announcement
// Bindingness: programmatic (Mongolia overlay)
// =============================================================================

/*
 * @output: CXCA.D#DE4 &quot;Due for HPV screening&quot;
 * @bindingness: programmatic — Mongolia overlay
 * @source: WHO Mongolia news release, 22 April 2025.
 */
define &quot;Client is due for HPV screening (programmatic)&quot;:
  &quot;Client is at programmatic target age (30 or 40)&quot;
    and not Elements.&quot;Has Had Hysterectomy&quot;
    and not &quot;HasRecentHPVScreening&quot;

// =============================================================================
// Backward-compatibility shims — preserve Phase 2/3 define names so existing
// PlanDefinition references continue to fire.
// (These aliases will be removed once all references migrate to the
// expanded define names above.)
// =============================================================================

define &quot;Client is due for HPV screening at age 35&quot;:
  &quot;Client age&quot; = 35

define &quot;Client is due for HPV screening at age 30&quot;:
  &quot;Client age&quot; = 30
</code></pre></td></tr>
            </table>
          </td>
        </tr>
        
        
        
        
        
        <tr>
          <td colspan="2">
            <table>
              <tr><th><b>Content: </b> application/elm+xml</th></tr>
              <tr><td><pre><code>Encoded data (47772 characters)</code></pre></td></tr>
            </table>
          </td>
        </tr>
        
        
    </table>
</div>
</div>
  </text>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability">
    <valueCode value="computable"/>
  </extension>
  <url
       value="http://smart.who.int/cxca/Library/CXCAD2DTScreeningEligibilityLogic"/>
  <version value="0.0.1"/>
  <name value="CXCAD2DTScreeningEligibilityLogic"/>
  <title value="CXCAD2DTScreeningEligibilityLogic"/>
  <status value="draft"/>
  <experimental value="false"/>
  <type>
    <coding>
      <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
      <code value="logic-library"/>
    </coding>
  </type>
  <date value="2026-05-14T00:50:23+00:00"/>
  <publisher value="Dan Heslinga (independent contributor)"/>
  <contact>
    <name value="Dan Heslinga (independent contributor)"/>
    <telecom>
      <system value="url"/>
      <value value="https://github.com/dhes"/>
    </telecom>
  </contact>
  <description
               value="Decision support logic for cervical cancer screening eligibility (CXCA.D2). Encodes the binding eligibility rules from Mongolia MOH Order A/641 (2020) section 2.2. Source CQL is at input/cql/CXCAD2DTScreeningEligibilityLogic.cql."/>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library Elements"/>
    <resource value="http://smart.who.int/cxca/Library/CXCAElements"/>
  </relatedArtifact>
  <parameter>
    <name value="Today"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <type value="date"/>
  </parameter>
  <parameter>
    <name value="HasRecentHPVScreening"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="HasRecentCytologyScreening"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="FacilityHasHPVCapability"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Patient"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Patient"/>
  </parameter>
  <parameter>
    <name value="Client age"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="integer"/>
  </parameter>
  <parameter>
    <name value="Client is at binding target age (35 or 45)"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client is at programmatic target age (30 or 40)"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client is due for HPV screening (legal binding)"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name
          value="Client not due — already screened in current cycle (legal binding)"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client excluded — outside target age range (legal binding)"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client excluded — prior hysterectomy (legal binding)"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client is at cytology pathway target age"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client is due for cytology screening (legal binding)"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client is due for HPV screening (programmatic)"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client is due for HPV screening at age 35"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client is due for HPV screening at age 30"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <content>
    <contentType value="text/cql"/>
    <data
          value="LyoKICogTGlicmFyeTogQ1hDQUQyRFRTY3JlZW5pbmdFbGlnaWJpbGl0eUxvZ2ljCiAqCiAqIERlY2lzaW9uOiBDZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIGVsaWdpYmlsaXR5IChIUFYgcGF0aHdheSkKICogTDIgU291cmNlOiBBLzY0MSAoMjAyMCkgc2VjdGlvbiAyLjIg4oCUIE1vbmdvbGlhIGJpbmRpbmcgc2NyZWVuaW5nIGVsaWdpYmlsaXR5IHJ1bGVzCiAqIFRyaWdnZXI6IENYQ0EuRDIg4oCUIGVuY291bnRlciB3aXRoIGEgd29tYW4gaW4gcHJpbWFyeS1jYXJlIHNldHRpbmcKICoKICogUGhhc2UgNSBleHBhbnNpb246IGltcGxlbWVudHMgdGhlIGZ1bGwgZm91ci1vdXRjb21lIGVsaWdpYmlsaXR5IHRyZWUKICogICAoRHVlLCBOb3QgRHVlIGluIEN5Y2xlLCBPdXRzaWRlIEFnZSBSYW5nZSwgRXhjbHVkZWQgLSBIeXN0ZXJlY3RvbXkpCiAqICAgYWNyb3NzIGJvdGggYmluZGluZyBhZ2VzIDM1IGFuZCA0NSwgcGx1cyBhIHBhcmFsbGVsIHByb2dyYW1tYXRpYy1vdmVybGF5CiAqICAgdHJlZSBmb3IgdGhlIEFwcmlsIDIwMjUgbGF1bmNoJ3MgYW5ub3VuY2VkIDMwIGFuZCA0MCBhZ2VzLgogKgogKiBFYWNoIG91dGNvbWUgaXMgZW5jb2RlZCBhcyBhIHNlcGFyYXRlIENRTCBkZWZpbmUgc28gUGxhbkRlZmluaXRpb24gYWN0aW9ucwogKiBjYW4gZmlyZSBvbiB0aGVtIGluZGl2aWR1YWxseSDigJQgdGhpcyBsZXRzIGEgQ0RTIGVuZ2luZSBzdXJmYWNlIGRpZmZlcmVudAogKiBndWlkYW5jZSB0ZXh0IHBlciBvdXRjb21lIHJhdGhlciB0aGFuIGNvbGxhcHNpbmcgYWxsIGJyYW5jaGVzIGludG8gYQogKiBzaW5nbGUgYm9vbGVhbi4KICoKICogUExBQ0VIT0xERVIgUEFUVEVSTiDigJQgcmVhZCBjYXJlZnVsbHk6CiAqICAgVGhpcyBydWxlIHJlZmVyZW5jZXMgZm91ciBwcmVkaWNhdGVzLiBPbmUgaGFzIGJlZW4gbWlncmF0ZWQgdG8gYSByZWFsCiAqICAgRkhJUiBxdWVyeSBpbiB0aGUgc2hhcmVkIENYQ0FFbGVtZW50cyBsYXllcjsgdGhyZWUgcmVtYWluIGFzIEJvb2xlYW4KICogICBwYXJhbWV0ZXJzIHRoYXQgdGhlIENEUyBjbGllbnQgbXVzdCBzdXBwbHkgYXQgZXZhbHVhdGlvbiB0aW1lLgogKgogKiAgICAg4pyTIE1pZ3JhdGVkICAgRWxlbWVudHMuIkhhcyBIYWQgSHlzdGVyZWN0b215IgogKiAgICAgICAgICAgICAgICAgIOKGkiByZWFsIHF1ZXJ5IGFnYWluc3QgW1Byb2NlZHVyZV0gd2l0aCBjb2RlIENYQ0EuRCNERTQ1CiAqCiAqICAgICDij7ggUGxhY2Vob2xkZXIgIkhhc1JlY2VudEhQVlNjcmVlbmluZyIsICJIYXNSZWNlbnRDeXRvbG9neVNjcmVlbmluZyIKICogICAgICAgICAgICAgICAgICDihpIgc3RyYWlnaHRmb3J3YXJkIHF1ZXJpZXMgaW4gc2hhcGUsIGJ1dCByZXF1aXJlIGEgZGVzaWduCiAqICAgICAgICAgICAgICAgICAgICBkZWNpc2lvbiBvbiB0aGUgcmVjYWxsIHdpbmRvdzogcGFyYW1ldGVyaXplIHRoZSBpbnRlcnZhbAogKiAgICAgICAgICAgICAgICAgICAgKG9uZSBkZWZpbmUgZm9yIGJvdGggcGF0aHdheXMpIG9yIGF1dGhvciBzaWJsaW5nIGRlZmluZXMKICogICAgICAgICAgICAgICAgICAgIChIUFYtcmVjZW50IGF0IDEweSwgY3l0b2xvZ3ktcmVjZW50IGF0IDN5IHBlciBBLzY0MSDCpzIuMik/CiAqICAgICAgICAgICAgICAgICAgICBIZWxkIHVudGlsIHRoZSBkZXNpZ24gY2FsbCBpcyBtYWRlLgogKgogKiAgICAg4o+4IFBsYWNlaG9sZGVyICJGYWNpbGl0eUhhc0hQVkNhcGFiaWxpdHkiCiAqICAgICAgICAgICAgICAgICAg4oaSIG5vdCBhY3R1YWxseSBhIHBlci1wYXRpZW50IEZISVIgcXVlcnkg4oCUIHRoaXMgaXMgZmFjaWxpdHkKICogICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24uIFJlYWwgaW1wbGVtZW50YXRpb24gY291bGQgZGVyaXZlIGl0IGZyb20gYQogKiAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24vT3JnYW5pemF0aW9uIGV4dGVuc2lvbiBPUiBrZWVwIGl0IGFzIGEgcGFyYW1ldGVyCiAqICAgICAgICAgICAgICAgICAgICB0aGUgQ0RTIGNsaWVudCBzdXBwbGllcy4gQm90aCBhcmUgZGVmZW5zaWJsZTsgbGVmdCBhcyBhCiAqICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgZm9yIG5vdy4KICoKICogICBUaGUgbWlncmF0aW9uIGlzIHN0cnVjdHVyYWxseSB0cml2aWFsOiByZXBsYWNpbmcgYSBwYXJhbWV0ZXIgcmVhZCB3aXRoCiAqICAgYEVsZW1lbnRzLiI8bmFtZT4iYCBvbmx5IGNoYW5nZXMgdGhlIGJvZHkgb2YgdGhlIGNvbnN1bWluZyBkZWZpbmUuIFRoZQogKiAgIGRlZmluZSdzIG5hbWUsIHNpZ25hdHVyZSwgYW5kIFBsYW5EZWZpbml0aW9uIHdpcmluZyBhbGwgc3RheSBpbnRhY3QsIHNvCiAqICAgZG93bnN0cmVhbSBjb25zdW1lcnMgKHRoZSBQbGFuRGVmaW5pdGlvbiBhY3Rpb25zLCBBY3Rpdml0eURlZmluaXRpb25zLAogKiAgIGZpeHR1cmVzKSBhcmUgdW5hZmZlY3RlZC4KICovCgpsaWJyYXJ5IENYQ0FEMkRUU2NyZWVuaW5nRWxpZ2liaWxpdHlMb2dpYyB2ZXJzaW9uICcwLjAuMScKCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJwoKLy8gU2hhcmVkIGVsZW1lbnRzIGxheWVyIOKAlCB0aGUgaGFybW9uaXphdGlvbiBzdWJzdHJhdGUuIFByb3ZpZGVzCi8vIGBIYXMgSGFkIEh5c3RlcmVjdG9teWAgKGEgcmVhbCBGSElSIHF1ZXJ5IGFnYWluc3QgW1Byb2NlZHVyZV0pOyBvdGhlcgovLyBwZXItcGVyaW9kIHByZWRpY2F0ZXMgY2FuIGJlIGFkZGVkIGhlcmUgYXMgdGhleSBhcmUgYXV0aG9yZWQuCmluY2x1ZGUgQ1hDQUVsZW1lbnRzIGNhbGxlZCBFbGVtZW50cwoKcGFyYW1ldGVyIFRvZGF5IERhdGUgZGVmYXVsdCBUb2RheSgpCgovLyBQbGFjZWhvbGRlciBwYXJhbWV0ZXJzIOKAlCBzZWUgUExBQ0VIT0xERVIgUEFUVEVSTiBpbiB0aGUgZmlsZSBoZWFkZXIgZm9yCi8vIHRoZSBwZXItcGFyYW1ldGVyIHJhdGlvbmFsZSBvbiB3aHkgdGhlc2UgcmVtYWluIGFzIHBhcmFtZXRlcnMgcmF0aGVyIHRoYW4KLy8gbWlncmF0aW5nIHRvIENYQ0FFbGVtZW50cyBxdWVyaWVzLgpwYXJhbWV0ZXIgIkhhc1JlY2VudEhQVlNjcmVlbmluZyIgQm9vbGVhbiBkZWZhdWx0IGZhbHNlCnBhcmFtZXRlciAiSGFzUmVjZW50Q3l0b2xvZ3lTY3JlZW5pbmciIEJvb2xlYW4gZGVmYXVsdCBmYWxzZQoKLy8gRmFjaWxpdHkgbGFiLWNhcGFjaXR5IHNlbGVjdG9yIOKAlCBBLzY0MSBzZWN0aW9uIDIuMiBzcGVjaWZpZXMgZGlmZmVyZW50IGFnZSBjeWNsZXMKLy8gYmFzZWQgb24gd2hldGhlciB0aGUgZmFjaWxpdHkgY2FuIHJ1biBIUFYgaGlnaC1yaXNrIEROQSB0ZXN0cyBpbi1ob3VzZS4KLy8gICB0cnVlICDihpIgSFBWIHBhdGh3YXkgKGFnZXMgMzUgYW5kIDQ1IG9ubHkpCi8vICAgZmFsc2Ug4oaSIGN5dG9sb2d5IHBhdGh3YXkgKHRoZSAxMS1hZ2UgMy15ZWFyIGN5Y2xlOiAzMCwgMzMsIDM2LCAzOSwgNDIsCi8vICAgICAgICAgICA0NSwgNDgsIDUxLCA1NCwgNTcsIDYwKQovLyBSZWFsIGltcGxlbWVudGF0aW9uIHdpbGwgZGVyaXZlIHRoaXMgZnJvbSBhIExvY2F0aW9uL09yZ2FuaXphdGlvbiBleHRlbnNpb24KLy8gb3IgZnJvbSBhIGZhY2lsaXR5LXJlZ2lzdHJ5IGxvb2t1cDsgaW4gdGhpcyBpdGVyYXRpb24gaXQgaXMgYSBwYXJhbWV0ZXIKLy8gdGhlIENEUyBjbGllbnQgc3VwcGxpZXMuCnBhcmFtZXRlciAiRmFjaWxpdHlIYXNIUFZDYXBhYmlsaXR5IiBCb29sZWFuIGRlZmF1bHQgdHJ1ZQoKY29udGV4dCBQYXRpZW50CgovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQovLyBIZWxwZXIgZGVmaW5pdGlvbnMKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCi8qCiAqIENsaWVudCBhZ2UgaW4geWVhcnMgYXQgdGhlIGVuY291bnRlciBkYXRlLgogKi8KZGVmaW5lICJDbGllbnQgYWdlIjoKICBBZ2VJblllYXJzQXQoVG9kYXkpCgovKgogKiBUaGUgY2xpZW50IGlzIGF0IG9uZSBvZiB0aGUgYmluZGluZyB0YXJnZXQgYWdlcyBwZXIgQS82NDEgc2VjdGlvbiAyLjIKICogKEhQVi10ZXN0LWNhcGFibGUgZmFjaWxpdGllczogYWdlcyAzNSBhbmQgNDUgb25seSkuCiAqLwpkZWZpbmUgIkNsaWVudCBpcyBhdCBiaW5kaW5nIHRhcmdldCBhZ2UgKDM1IG9yIDQ1KSI6CiAgIkNsaWVudCBhZ2UiID0gMzUgb3IgIkNsaWVudCBhZ2UiID0gNDUKCi8qCiAqIFRoZSBjbGllbnQgaXMgYXQgb25lIG9mIHRoZSBwcm9ncmFtbWF0aWMtb3ZlcmxheSB0YXJnZXQgYWdlcyBwZXIgdGhlCiAqIEFwcmlsIDIwMjUgQ2VydmljYWwgQ2FuY2VyIEVsaW1pbmF0aW9uIFByb2dyYW1tZSBsYXVuY2ggYW5ub3VuY2VtZW50CiAqIChhZ2VzIDMwIGFuZCA0MCkuCiAqLwpkZWZpbmUgIkNsaWVudCBpcyBhdCBwcm9ncmFtbWF0aWMgdGFyZ2V0IGFnZSAoMzAgb3IgNDApIjoKICAiQ2xpZW50IGFnZSIgPSAzMCBvciAiQ2xpZW50IGFnZSIgPSA0MAoKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8gTGVnYWwtYmluZGluZyBlbGlnaWJpbGl0eSB0cmVlIOKAlCBBLzY0MSBzZWN0aW9uIDIuMiAoSFBWIGF0IGFnZXMgMzUgYW5kIDQ1KQovLyBCaW5kaW5nbmVzczogbGVnYWwKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCi8qCiAqIEBvdXRwdXQ6IENYQ0EuRCNERTQgIkR1ZSBmb3IgSFBWIHNjcmVlbmluZyIKICogQGJpbmRpbmduZXNzOiBsZWdhbAogKiBDbGllbnQgaXMgZHVlIGlmIGF0IGEgYmluZGluZyB0YXJnZXQgYWdlLCBoYXMgbm90IGhhZCBhIGh5c3RlcmVjdG9teSwKICogYW5kIGhhcyBub3QgYmVlbiBzY3JlZW5lZCBpbiB0aGUgY3VycmVudCBjeWNsZS4KICovCmRlZmluZSAiQ2xpZW50IGlzIGR1ZSBmb3IgSFBWIHNjcmVlbmluZyAobGVnYWwgYmluZGluZykiOgogICJDbGllbnQgaXMgYXQgYmluZGluZyB0YXJnZXQgYWdlICgzNSBvciA0NSkiCiAgICBhbmQgbm90IEVsZW1lbnRzLiJIYXMgSGFkIEh5c3RlcmVjdG9teSIKICAgIGFuZCBub3QgIkhhc1JlY2VudEhQVlNjcmVlbmluZyIKCi8qCiAqIEBvdXRwdXQ6IENYQ0EuRCNERTUgIk5vdCBkdWUg4oCUIGFscmVhZHkgc2NyZWVuZWQgaW4gY3VycmVudCBjeWNsZSIKICogQGJpbmRpbmduZXNzOiBsZWdhbAogKiBDbGllbnQgaXMgYXQgYSB0YXJnZXQgYWdlIGJ1dCBoYXMgaGFkIGEgcmVjZW50IHZhbGlkIEhQViBzY3JlZW5pbmcgcmVzdWx0LgogKi8KZGVmaW5lICJDbGllbnQgbm90IGR1ZSDigJQgYWxyZWFkeSBzY3JlZW5lZCBpbiBjdXJyZW50IGN5Y2xlIChsZWdhbCBiaW5kaW5nKSI6CiAgIkNsaWVudCBpcyBhdCBiaW5kaW5nIHRhcmdldCBhZ2UgKDM1IG9yIDQ1KSIKICAgIGFuZCAiSGFzUmVjZW50SFBWU2NyZWVuaW5nIgogICAgYW5kIG5vdCBFbGVtZW50cy4iSGFzIEhhZCBIeXN0ZXJlY3RvbXkiCgovKgogKiBAb3V0cHV0OiBDWENBLkQjREU2ICJFeGNsdWRlZCDigJQgb3V0c2lkZSB0YXJnZXQgYWdlIHJhbmdlIgogKiBAYmluZGluZ25lc3M6IGxlZ2FsCiAqIENsaWVudCBpcyBub3QgYXQgYSBiaW5kaW5nIHRhcmdldCBhZ2UgKDM1IG9yIDQ1IG9ubHkgZm9yIEhQVi1jYXBhYmxlIGZhY2lsaXRpZXMpLgogKi8KZGVmaW5lICJDbGllbnQgZXhjbHVkZWQg4oCUIG91dHNpZGUgdGFyZ2V0IGFnZSByYW5nZSAobGVnYWwgYmluZGluZykiOgogIG5vdCAiQ2xpZW50IGlzIGF0IGJpbmRpbmcgdGFyZ2V0IGFnZSAoMzUgb3IgNDUpIgogICAgYW5kIG5vdCBFbGVtZW50cy4iSGFzIEhhZCBIeXN0ZXJlY3RvbXkiCgovKgogKiBAb3V0cHV0OiBDWENBLkQjREU3ICJFeGNsdWRlZCDigJQgcHJpb3IgaHlzdGVyZWN0b215IgogKiBAYmluZGluZ25lc3M6IGxlZ2FsCiAqIENsaWVudCBoYXMgaGFkIGEgaHlzdGVyZWN0b215IGZvciBub24tY2VydmljYWwtY2FuY2VyIGluZGljYXRpb24gYW5kIGlzCiAqIHRoZXJlZm9yZSBleGVtcHQgZnJvbSBjZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIHBlciBBLzY0MSBzZWN0aW9uIDIuMi4KICovCmRlZmluZSAiQ2xpZW50IGV4Y2x1ZGVkIOKAlCBwcmlvciBoeXN0ZXJlY3RvbXkgKGxlZ2FsIGJpbmRpbmcpIjoKICBFbGVtZW50cy4iSGFzIEhhZCBIeXN0ZXJlY3RvbXkiCgovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQovLyBDeXRvbG9neS1wYXRod2F5IGVsaWdpYmlsaXR5IOKAlCBBLzY0MSBzZWN0aW9uIDIuMiAoY3l0b2xvZ3ktb25seSBmYWNpbGl0aWVzKQovLyBCaW5kaW5nbmVzczogbGVnYWwg4oCUIGJpbmRpbmcgdG8gY3l0b2xvZ3ktb25seSBmYWNpbGl0aWVzIHVuZGVyIEEvNjQxCi8vCi8vIEVsZXZlbiBiaW5kaW5nIGFnZXMgb24gYSAzLXllYXIgY3ljbGU6IDMwLCAzMywgMzYsIDM5LCA0MiwgNDUsIDQ4LCA1MSwgNTQsIDU3LCA2MC4KLy8gQXBwbGllZCB3aGVuIHRoZSBmYWNpbGl0eSBoYXMgbm8gSFBWIEROQSB0ZXN0aW5nIGNhcGFiaWxpdHkuCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgovKgogKiBUaGUgY2xpZW50IGlzIGF0IG9uZSBvZiB0aGUgMTEgYmluZGluZyBjeXRvbG9neS1wYXRod2F5IHRhcmdldCBhZ2VzCiAqIHBlciBBLzY0MSBzZWN0aW9uIDIuMiAoY3l0b2xvZ3ktb25seSBmYWNpbGl0aWVzLCAzLXllYXIgY3ljbGUgZnJvbSAzMCB0byA2MCkuCiAqLwpkZWZpbmUgIkNsaWVudCBpcyBhdCBjeXRvbG9neSBwYXRod2F5IHRhcmdldCBhZ2UiOgogICJDbGllbnQgYWdlIiBpbiB7IDMwLCAzMywgMzYsIDM5LCA0MiwgNDUsIDQ4LCA1MSwgNTQsIDU3LCA2MCB9CgovKgogKiBAb3V0cHV0OiBDWENBLkQjREU0ICJEdWUgZm9yIEhQViBzY3JlZW5pbmciIOKAlCBidXQgdGhlIHRlc3QgcmVjb21tZW5kZWQgaXMKICogICBjeXRvbG9neSwgbm90IEhQViAodGhlIHNjcmVlbmluZyBuYW1lIGluIENYQ0EuRCNERTQgcmVmbGVjdHMgdGhlIFdITwogKiAgIHRhcmdldCB0ZXN0OyBib3RoIHBhdGh3YXlzIGFyZSBmbGF2b3JzIG9mICJjZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIikuCiAqIEBiaW5kaW5nbmVzczogbGVnYWwKICogQ3l0b2xvZ3ktcGF0aHdheSBjbGllbnQgaXMgZHVlIGlmIGF0IG9uZSBvZiB0aGUgMTEgdGFyZ2V0IGFnZXMsIHRoZSBmYWNpbGl0eQogKiBsYWNrcyBIUFYgY2FwYWJpbGl0eSwgbm8gaHlzdGVyZWN0b215LCBhbmQgbm8gcmVjZW50IHZhbGlkIGN5dG9sb2d5IHNjcmVlbmluZy4KICovCmRlZmluZSAiQ2xpZW50IGlzIGR1ZSBmb3IgY3l0b2xvZ3kgc2NyZWVuaW5nIChsZWdhbCBiaW5kaW5nKSI6CiAgIkNsaWVudCBpcyBhdCBjeXRvbG9neSBwYXRod2F5IHRhcmdldCBhZ2UiCiAgICBhbmQgbm90ICJGYWNpbGl0eUhhc0hQVkNhcGFiaWxpdHkiCiAgICBhbmQgbm90IEVsZW1lbnRzLiJIYXMgSGFkIEh5c3RlcmVjdG9teSIKICAgIGFuZCBub3QgIkhhc1JlY2VudEN5dG9sb2d5U2NyZWVuaW5nIgoKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8gUHJvZ3JhbW1hdGljLW92ZXJsYXkgZWxpZ2liaWxpdHkg4oCUIEFwcmlsIDIwMjUgbGF1bmNoJ3MgMzAvNDAgYW5ub3VuY2VtZW50Ci8vIEJpbmRpbmduZXNzOiBwcm9ncmFtbWF0aWMgKE1vbmdvbGlhIG92ZXJsYXkpCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgovKgogKiBAb3V0cHV0OiBDWENBLkQjREU0ICJEdWUgZm9yIEhQViBzY3JlZW5pbmciCiAqIEBiaW5kaW5nbmVzczogcHJvZ3JhbW1hdGljIOKAlCBNb25nb2xpYSBvdmVybGF5CiAqIEBzb3VyY2U6IFdITyBNb25nb2xpYSBuZXdzIHJlbGVhc2UsIDIyIEFwcmlsIDIwMjUuCiAqLwpkZWZpbmUgIkNsaWVudCBpcyBkdWUgZm9yIEhQViBzY3JlZW5pbmcgKHByb2dyYW1tYXRpYykiOgogICJDbGllbnQgaXMgYXQgcHJvZ3JhbW1hdGljIHRhcmdldCBhZ2UgKDMwIG9yIDQwKSIKICAgIGFuZCBub3QgRWxlbWVudHMuIkhhcyBIYWQgSHlzdGVyZWN0b215IgogICAgYW5kIG5vdCAiSGFzUmVjZW50SFBWU2NyZWVuaW5nIgoKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8gQmFja3dhcmQtY29tcGF0aWJpbGl0eSBzaGltcyDigJQgcHJlc2VydmUgUGhhc2UgMi8zIGRlZmluZSBuYW1lcyBzbyBleGlzdGluZwovLyBQbGFuRGVmaW5pdGlvbiByZWZlcmVuY2VzIGNvbnRpbnVlIHRvIGZpcmUuCi8vIChUaGVzZSBhbGlhc2VzIHdpbGwgYmUgcmVtb3ZlZCBvbmNlIGFsbCByZWZlcmVuY2VzIG1pZ3JhdGUgdG8gdGhlCi8vIGV4cGFuZGVkIGRlZmluZSBuYW1lcyBhYm92ZS4pCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpkZWZpbmUgIkNsaWVudCBpcyBkdWUgZm9yIEhQViBzY3JlZW5pbmcgYXQgYWdlIDM1IjoKICAiQ2xpZW50IGFnZSIgPSAzNQoKZGVmaW5lICJDbGllbnQgaXMgZHVlIGZvciBIUFYgc2NyZWVuaW5nIGF0IGFnZSAzMCI6CiAgIkNsaWVudCBhZ2UiID0gMzAK"/>
  </content>
  <content>
    <contentType value="application/elm+xml"/>
    <data
          value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSIgbG9jYWxJZD0iMCI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iT3ZlcmxvYWRzIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUluZm8iLz4KICAgPGFubm90YXRpb24gbWVzc2FnZT0iQW4gb3BlcmFuZCBpZGVudGlmaWVyIHJlZmVyZW5jZSBpcyBoaWRpbmcgYW5vdGhlciBpZGVudGlmaWVyIG9mIHRoZSBzYW1lIG5hbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IkFuIG9wZXJhbmQgaWRlbnRpZmllciByZWZlcmVuY2UgaXMgaGlkaW5nIGFub3RoZXIgaWRlbnRpZmllciBvZiB0aGUgc2FtZSBuYW1lLiIgZXJyb3JUeXBlPSJzZW1hbnRpYyIgZXJyb3JTZXZlcml0eT0id2FybmluZyIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1FcnJvciIvPgogICA8YW5ub3RhdGlvbiBtZXNzYWdlPSJBbiBvcGVyYW5kIGlkZW50aWZpZXIgcmVmZXJlbmNlIGlzIGhpZGluZyBhbm90aGVyIGlkZW50aWZpZXIgb2YgdGhlIHNhbWUgbmFtZS4iIGVycm9yVHlwZT0ic2VtYW50aWMiIGVycm9yU2V2ZXJpdHk9Indhcm5pbmciIHhzaTp0eXBlPSJhOkNxbFRvRWxtRXJyb3IiLz4KICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgIDxhOnMgcj0iMzYwIj4KICAgICAgICAgPGE6cz4vKgogKiBMaWJyYXJ5OiBDWENBRDJEVFNjcmVlbmluZ0VsaWdpYmlsaXR5TG9naWMKICoKICogRGVjaXNpb246IENlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgZWxpZ2liaWxpdHkgKEhQViBwYXRod2F5KQogKiBMMiBTb3VyY2U6IEEvNjQxICgyMDIwKSBzZWN0aW9uIDIuMiDigJQgTW9uZ29saWEgYmluZGluZyBzY3JlZW5pbmcgZWxpZ2liaWxpdHkgcnVsZXMKICogVHJpZ2dlcjogQ1hDQS5EMiDigJQgZW5jb3VudGVyIHdpdGggYSB3b21hbiBpbiBwcmltYXJ5LWNhcmUgc2V0dGluZwogKgogKiBQaGFzZSA1IGV4cGFuc2lvbjogaW1wbGVtZW50cyB0aGUgZnVsbCBmb3VyLW91dGNvbWUgZWxpZ2liaWxpdHkgdHJlZQogKiAgIChEdWUsIE5vdCBEdWUgaW4gQ3ljbGUsIE91dHNpZGUgQWdlIFJhbmdlLCBFeGNsdWRlZCAtIEh5c3RlcmVjdG9teSkKICogICBhY3Jvc3MgYm90aCBiaW5kaW5nIGFnZXMgMzUgYW5kIDQ1LCBwbHVzIGEgcGFyYWxsZWwgcHJvZ3JhbW1hdGljLW92ZXJsYXkKICogICB0cmVlIGZvciB0aGUgQXByaWwgMjAyNSBsYXVuY2gncyBhbm5vdW5jZWQgMzAgYW5kIDQwIGFnZXMuCiAqCiAqIEVhY2ggb3V0Y29tZSBpcyBlbmNvZGVkIGFzIGEgc2VwYXJhdGUgQ1FMIGRlZmluZSBzbyBQbGFuRGVmaW5pdGlvbiBhY3Rpb25zCiAqIGNhbiBmaXJlIG9uIHRoZW0gaW5kaXZpZHVhbGx5IOKAlCB0aGlzIGxldHMgYSBDRFMgZW5naW5lIHN1cmZhY2UgZGlmZmVyZW50CiAqIGd1aWRhbmNlIHRleHQgcGVyIG91dGNvbWUgcmF0aGVyIHRoYW4gY29sbGFwc2luZyBhbGwgYnJhbmNoZXMgaW50byBhCiAqIHNpbmdsZSBib29sZWFuLgogKgogKiBQTEFDRUhPTERFUiBQQVRURVJOIOKAlCByZWFkIGNhcmVmdWxseToKICogICBUaGlzIHJ1bGUgcmVmZXJlbmNlcyBmb3VyIHByZWRpY2F0ZXMuIE9uZSBoYXMgYmVlbiBtaWdyYXRlZCB0byBhIHJlYWwKICogICBGSElSIHF1ZXJ5IGluIHRoZSBzaGFyZWQgQ1hDQUVsZW1lbnRzIGxheWVyOyB0aHJlZSByZW1haW4gYXMgQm9vbGVhbgogKiAgIHBhcmFtZXRlcnMgdGhhdCB0aGUgQ0RTIGNsaWVudCBtdXN0IHN1cHBseSBhdCBldmFsdWF0aW9uIHRpbWUuCiAqCiAqICAgICDinJMgTWlncmF0ZWQgICBFbGVtZW50cy4mcXVvdDtIYXMgSGFkIEh5c3RlcmVjdG9teSZxdW90OwogKiAgICAgICAgICAgICAgICAgIOKGkiByZWFsIHF1ZXJ5IGFnYWluc3QgW1Byb2NlZHVyZV0gd2l0aCBjb2RlIENYQ0EuRCNERTQ1CiAqCiAqICAgICDij7ggUGxhY2Vob2xkZXIgJnF1b3Q7SGFzUmVjZW50SFBWU2NyZWVuaW5nJnF1b3Q7LCAmcXVvdDtIYXNSZWNlbnRDeXRvbG9neVNjcmVlbmluZyZxdW90OwogKiAgICAgICAgICAgICAgICAgIOKGkiBzdHJhaWdodGZvcndhcmQgcXVlcmllcyBpbiBzaGFwZSwgYnV0IHJlcXVpcmUgYSBkZXNpZ24KICogICAgICAgICAgICAgICAgICAgIGRlY2lzaW9uIG9uIHRoZSByZWNhbGwgd2luZG93OiBwYXJhbWV0ZXJpemUgdGhlIGludGVydmFsCiAqICAgICAgICAgICAgICAgICAgICAob25lIGRlZmluZSBmb3IgYm90aCBwYXRod2F5cykgb3IgYXV0aG9yIHNpYmxpbmcgZGVmaW5lcwogKiAgICAgICAgICAgICAgICAgICAgKEhQVi1yZWNlbnQgYXQgMTB5LCBjeXRvbG9neS1yZWNlbnQgYXQgM3kgcGVyIEEvNjQxIMKnMi4yKT8KICogICAgICAgICAgICAgICAgICAgIEhlbGQgdW50aWwgdGhlIGRlc2lnbiBjYWxsIGlzIG1hZGUuCiAqCiAqICAgICDij7ggUGxhY2Vob2xkZXIgJnF1b3Q7RmFjaWxpdHlIYXNIUFZDYXBhYmlsaXR5JnF1b3Q7CiAqICAgICAgICAgICAgICAgICAg4oaSIG5vdCBhY3R1YWxseSBhIHBlci1wYXRpZW50IEZISVIgcXVlcnkg4oCUIHRoaXMgaXMgZmFjaWxpdHkKICogICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24uIFJlYWwgaW1wbGVtZW50YXRpb24gY291bGQgZGVyaXZlIGl0IGZyb20gYQogKiAgICAgICAgICAgICAgICAgICAgTG9jYXRpb24vT3JnYW5pemF0aW9uIGV4dGVuc2lvbiBPUiBrZWVwIGl0IGFzIGEgcGFyYW1ldGVyCiAqICAgICAgICAgICAgICAgICAgICB0aGUgQ0RTIGNsaWVudCBzdXBwbGllcy4gQm90aCBhcmUgZGVmZW5zaWJsZTsgbGVmdCBhcyBhCiAqICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgZm9yIG5vdy4KICoKICogICBUaGUgbWlncmF0aW9uIGlzIHN0cnVjdHVyYWxseSB0cml2aWFsOiByZXBsYWNpbmcgYSBwYXJhbWV0ZXIgcmVhZCB3aXRoCiAqICAgYEVsZW1lbnRzLiZxdW90OyZsdDtuYW1lPiZxdW90O2Agb25seSBjaGFuZ2VzIHRoZSBib2R5IG9mIHRoZSBjb25zdW1pbmcgZGVmaW5lLiBUaGUKICogICBkZWZpbmUncyBuYW1lLCBzaWduYXR1cmUsIGFuZCBQbGFuRGVmaW5pdGlvbiB3aXJpbmcgYWxsIHN0YXkgaW50YWN0LCBzbwogKiAgIGRvd25zdHJlYW0gY29uc3VtZXJzICh0aGUgUGxhbkRlZmluaXRpb24gYWN0aW9ucywgQWN0aXZpdHlEZWZpbml0aW9ucywKICogICBmaXh0dXJlcykgYXJlIHVuYWZmZWN0ZWQuCiAqLwoKbGlicmFyeSBDWENBRDJEVFNjcmVlbmluZ0VsaWdpYmlsaXR5TG9naWMgdmVyc2lvbiAnMC4wLjEnPC9hOnM+CiAgICAgIDwvYTpzPgogICA8L2Fubm90YXRpb24+CiAgIDxpZGVudGlmaWVyIGlkPSJDWENBRDJEVFNjcmVlbmluZ0VsaWdpYmlsaXR5TG9naWMiIHN5c3RlbT0iaHR0cDovL3NtYXJ0Lndoby5pbnQvY3hjYSIgdmVyc2lvbj0iMC4wLjEiLz4KICAgPHNjaGVtYUlkZW50aWZpZXIgaWQ9InVybjpobDctb3JnOmVsbSIgdmVyc2lvbj0icjEiLz4KICAgPHVzaW5ncz4KICAgICAgPGRlZiBsb2NhbElkPSIxIiBsb2NhbElkZW50aWZpZXI9IlN5c3RlbSIgdXJpPSJ1cm46aGw3LW9yZzplbG0tdHlwZXM6cjEiIHZlcnNpb249IjEuMC4wIi8+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjA2IiBsb2NhdG9yPSI0OToxLTQ5OjI2IiBsb2NhbElkZW50aWZpZXI9IkZISVIiIHVyaT0iaHR0cDovL2hsNy5vcmcvZmhpciIgdmVyc2lvbj0iNC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyMDYiPgogICAgICAgICAgICAgICA8YTpzPnVzaW5nIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVI8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzQuMC4xJzwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgPC91c2luZ3M+CiAgIDxpbmNsdWRlcz4KICAgICAgPGRlZiBsb2NhbElkPSIyMDgiIGxvY2F0b3I9IjUxOjEtNTE6MzUiIGxvY2FsSWRlbnRpZmllcj0iRkhJUkhlbHBlcnMiIHBhdGg9Imh0dHA6Ly9obDcub3JnL2ZoaXIvRkhJUkhlbHBlcnMiIHZlcnNpb249IjQuMC4xIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMjA4Ij4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVJIZWxwZXJzPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICc0LjAuMSc8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjEwIiBsb2NhdG9yPSI1NjoxLTU2OjM2IiBsb2NhbElkZW50aWZpZXI9IkVsZW1lbnRzIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9jeGNhL0NYQ0FFbGVtZW50cyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjIxMCI+CiAgICAgICAgICAgICAgIDxhOnM+Ly8gU2hhcmVkIGVsZW1lbnRzIGxheWVyIOKAlCB0aGUgaGFybW9uaXphdGlvbiBzdWJzdHJhdGUuIFByb3ZpZGVzCi8vIGBIYXMgSGFkIEh5c3RlcmVjdG9teWAgKGEgcmVhbCBGSElSIHF1ZXJ5IGFnYWluc3QgW1Byb2NlZHVyZV0pOyBvdGhlcgovLyBwZXItcGVyaW9kIHByZWRpY2F0ZXMgY2FuIGJlIGFkZGVkIGhlcmUgYXMgdGhleSBhcmUgYXV0aG9yZWQuCmluY2x1ZGUgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+Q1hDQUVsZW1lbnRzPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiBjYWxsZWQgRWxlbWVudHM8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgIDwvaW5jbHVkZXM+CiAgIDxwYXJhbWV0ZXJzPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIxMiIgbG9jYXRvcj0iNTg6MS01ODozNiIgbmFtZT0iVG9kYXkiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyMTIiPgogICAgICAgICAgICAgICA8YTpzPnBhcmFtZXRlciBUb2RheSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyMTYiPgogICAgICAgICAgICAgICAgICA8YTpzPkRhdGU8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IGRlZmF1bHQgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMjE1Ij4KICAgICAgICAgICAgICAgICAgPGE6cz5Ub2RheSgpPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZGVmYXVsdCBsb2NhbElkPSIyMTUiIGxvY2F0b3I9IjU4OjMwLTU4OjM2IiB4c2k6dHlwZT0iVG9kYXkiLz4KICAgICAgICAgPHBhcmFtZXRlclR5cGVTcGVjaWZpZXIgbG9jYWxJZD0iMjE2IiBsb2NhdG9yPSI1ODoxNy01ODoyMCIgbmFtZT0idDpEYXRlIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIxOCIgbG9jYXRvcj0iNjM6MS02Mzo1NSIgbmFtZT0iSGFzUmVjZW50SFBWU2NyZWVuaW5nIiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMjE4Ij4KICAgICAgICAgICAgICAgPGE6cz4vLyBQbGFjZWhvbGRlciBwYXJhbWV0ZXJzIOKAlCBzZWUgUExBQ0VIT0xERVIgUEFUVEVSTiBpbiB0aGUgZmlsZSBoZWFkZXIgZm9yCi8vIHRoZSBwZXItcGFyYW1ldGVyIHJhdGlvbmFsZSBvbiB3aHkgdGhlc2UgcmVtYWluIGFzIHBhcmFtZXRlcnMgcmF0aGVyIHRoYW4KLy8gbWlncmF0aW5nIHRvIENYQ0FFbGVtZW50cyBxdWVyaWVzLgpwYXJhbWV0ZXIgJnF1b3Q7SGFzUmVjZW50SFBWU2NyZWVuaW5nJnF1b3Q7IDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjIyMCI+CiAgICAgICAgICAgICAgICAgIDxhOnM+Qm9vbGVhbjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyMTkiPiBkZWZhdWx0IGZhbHNlPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxkZWZhdWx0IGxvY2FsSWQ9IjIxOSIgbG9jYXRvcj0iNjM6NTEtNjM6NTUiIHZhbHVlVHlwZT0idDpCb29sZWFuIiB2YWx1ZT0iZmFsc2UiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgIDxwYXJhbWV0ZXJUeXBlU3BlY2lmaWVyIGxvY2FsSWQ9IjIyMCIgbG9jYXRvcj0iNjM6MzUtNjM6NDEiIG5hbWU9InQ6Qm9vbGVhbiIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyMjIiIGxvY2F0b3I9IjY0OjEtNjQ6NjAiIG5hbWU9Ikhhc1JlY2VudEN5dG9sb2d5U2NyZWVuaW5nIiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMjIyIj4KICAgICAgICAgICAgICAgPGE6cz5wYXJhbWV0ZXIgJnF1b3Q7SGFzUmVjZW50Q3l0b2xvZ3lTY3JlZW5pbmcmcXVvdDsgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMjI0Ij4KICAgICAgICAgICAgICAgICAgPGE6cz5Cb29sZWFuPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjIyMyI+IGRlZmF1bHQgZmFsc2U8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGRlZmF1bHQgbG9jYWxJZD0iMjIzIiBsb2NhdG9yPSI2NDo1Ni02NDo2MCIgdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJmYWxzZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgPHBhcmFtZXRlclR5cGVTcGVjaWZpZXIgbG9jYWxJZD0iMjI0IiBsb2NhdG9yPSI2NDo0MC02NDo0NiIgbmFtZT0idDpCb29sZWFuIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIyNiIgbG9jYXRvcj0iNzQ6MS03NDo1NyIgbmFtZT0iRmFjaWxpdHlIYXNIUFZDYXBhYmlsaXR5IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMjI2Ij4KICAgICAgICAgICAgICAgPGE6cz4vLyBGYWNpbGl0eSBsYWItY2FwYWNpdHkgc2VsZWN0b3Ig4oCUIEEvNjQxIHNlY3Rpb24gMi4yIHNwZWNpZmllcyBkaWZmZXJlbnQgYWdlIGN5Y2xlcwovLyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBmYWNpbGl0eSBjYW4gcnVuIEhQViBoaWdoLXJpc2sgRE5BIHRlc3RzIGluLWhvdXNlLgovLyAgIHRydWUgIOKGkiBIUFYgcGF0aHdheSAoYWdlcyAzNSBhbmQgNDUgb25seSkKLy8gICBmYWxzZSDihpIgY3l0b2xvZ3kgcGF0aHdheSAodGhlIDExLWFnZSAzLXllYXIgY3ljbGU6IDMwLCAzMywgMzYsIDM5LCA0MiwKLy8gICAgICAgICAgIDQ1LCA0OCwgNTEsIDU0LCA1NywgNjApCi8vIFJlYWwgaW1wbGVtZW50YXRpb24gd2lsbCBkZXJpdmUgdGhpcyBmcm9tIGEgTG9jYXRpb24vT3JnYW5pemF0aW9uIGV4dGVuc2lvbgovLyBvciBmcm9tIGEgZmFjaWxpdHktcmVnaXN0cnkgbG9va3VwOyBpbiB0aGlzIGl0ZXJhdGlvbiBpdCBpcyBhIHBhcmFtZXRlcgovLyB0aGUgQ0RTIGNsaWVudCBzdXBwbGllcy4KcGFyYW1ldGVyICZxdW90O0ZhY2lsaXR5SGFzSFBWQ2FwYWJpbGl0eSZxdW90OyA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyMjgiPgogICAgICAgICAgICAgICAgICA8YTpzPkJvb2xlYW48L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMjI3Ij4gZGVmYXVsdCB0cnVlPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxkZWZhdWx0IGxvY2FsSWQ9IjIyNyIgbG9jYXRvcj0iNzQ6NTQtNzQ6NTciIHZhbHVlVHlwZT0idDpCb29sZWFuIiB2YWx1ZT0idHJ1ZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgPHBhcmFtZXRlclR5cGVTcGVjaWZpZXIgbG9jYWxJZD0iMjI4IiBsb2NhdG9yPSI3NDozOC03NDo0NCIgbmFtZT0idDpCb29sZWFuIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgIDwvZGVmPgogICA8L3BhcmFtZXRlcnM+CiAgIDxjb250ZXh0cz4KICAgICAgPGRlZiBsb2NhbElkPSIyMzMiIGxvY2F0b3I9Ijc2OjEtNzY6MTUiIG5hbWU9IlBhdGllbnQiLz4KICAgPC9jb250ZXh0cz4KICAgPHN0YXRlbWVudHM+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjMxIiBsb2NhdG9yPSI3NjoxLTc2OjE1IiBuYW1lPSJQYXRpZW50IiBjb250ZXh0PSJQYXRpZW50Ij4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMjMyIiB4c2k6dHlwZT0iU2luZ2xldG9uRnJvbSI+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjIzMCIgbG9jYXRvcj0iNzY6MS03NjoxNSIgZGF0YVR5cGU9ImZoaXI6UGF0aWVudCIgdGVtcGxhdGVJZD0iaHR0cDovL2hsNy5vcmcvZmhpci9TdHJ1Y3R1cmVEZWZpbml0aW9uL1BhdGllbnQiIHhzaTp0eXBlPSJSZXRyaWV2ZSIvPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIzNiIgbG9jYXRvcj0iODU6MS04NjoyMSIgbmFtZT0iQ2xpZW50IGFnZSIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjIzNiI+CiAgICAgICAgICAgICAgIDxhOnM+Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8gSGVscGVyIGRlZmluaXRpb25zCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgovKgogKiBDbGllbnQgYWdlIGluIHllYXJzIGF0IHRoZSBlbmNvdW50ZXIgZGF0ZS4KICovCmRlZmluZSAmcXVvdDtDbGllbnQgYWdlJnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjI0MiI+CiAgICAgICAgICAgICAgICAgIDxhOnM+QWdlSW5ZZWFyc0F0KDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjIzNyI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+VG9kYXk8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+KTwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMjQyIiBsb2NhdG9yPSI4NjozLTg2OjIxIiBwcmVjaXNpb249IlllYXIiIHhzaTp0eXBlPSJDYWxjdWxhdGVBZ2VBdCI+CiAgICAgICAgICAgIDxzaWduYXR1cmUgbG9jYWxJZD0iMjQzIiBuYW1lPSJ0OkRhdGUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgPHNpZ25hdHVyZSBsb2NhbElkPSIyNDQiIG5hbWU9InQ6RGF0ZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyNDEiIHBhdGg9ImJpcnRoRGF0ZS52YWx1ZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgPHNvdXJjZSBsb2NhbElkPSIyNDAiIG5hbWU9IlBhdGllbnQiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjM3IiBsb2NhdG9yPSI4NjoxNi04NjoyMCIgbmFtZT0iVG9kYXkiIHhzaTp0eXBlPSJQYXJhbWV0ZXJSZWYiLz4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyNDciIGxvY2F0b3I9IjkyOjEtOTM6NDAiIG5hbWU9IkNsaWVudCBpcyBhdCBiaW5kaW5nIHRhcmdldCBhZ2UgKDM1IG9yIDQ1KSIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjI0NyI+CiAgICAgICAgICAgICAgIDxhOnM+LyoKICogVGhlIGNsaWVudCBpcyBhdCBvbmUgb2YgdGhlIGJpbmRpbmcgdGFyZ2V0IGFnZXMgcGVyIEEvNjQxIHNlY3Rpb24gMi4yCiAqIChIUFYtdGVzdC1jYXBhYmxlIGZhY2lsaXRpZXM6IGFnZXMgMzUgYW5kIDQ1IG9ubHkpLgogKi8KZGVmaW5lICZxdW90O0NsaWVudCBpcyBhdCBiaW5kaW5nIHRhcmdldCBhZ2UgKDM1IG9yIDQ1KSZxdW90OzoKICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyNDgiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjI0OSI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjUwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtDbGllbnQgYWdlJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI1MSI+ID0gMzU8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+IG9yIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjI1NCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjU1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtDbGllbnQgYWdlJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI1NiI+ID0gNDU8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIyNDgiIGxvY2F0b3I9IjkzOjMtOTM6NDAiIHhzaTp0eXBlPSJPciI+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI0OSIgbG9jYXRvcj0iOTM6My05MzoxOSIgeHNpOnR5cGU9IkVxdWFsIj4KICAgICAgICAgICAgICAgPHNpZ25hdHVyZSBsb2NhbElkPSIyNTIiIG5hbWU9InQ6SW50ZWdlciIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICA8c2lnbmF0dXJlIGxvY2FsSWQ9IjI1MyIgbmFtZT0idDpJbnRlZ2VyIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI1MCIgbG9jYXRvcj0iOTM6My05MzoxNCIgbmFtZT0iQ2xpZW50IGFnZSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjUxIiBsb2NhdG9yPSI5MzoxOC05MzoxOSIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIzNSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyNTQiIGxvY2F0b3I9IjkzOjI0LTkzOjQwIiB4c2k6dHlwZT0iRXF1YWwiPgogICAgICAgICAgICAgICA8c2lnbmF0dXJlIGxvY2FsSWQ9IjI1NyIgbmFtZT0idDpJbnRlZ2VyIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgIDxzaWduYXR1cmUgbG9jYWxJZD0iMjU4IiBuYW1lPSJ0OkludGVnZXIiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjU1IiBsb2NhdG9yPSI5MzoyNC05MzozNSIgbmFtZT0iQ2xpZW50IGFnZSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjU2IiBsb2NhdG9yPSI5MzozOS05Mzo0MCIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSI0NSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjI2MSIgbG9jYXRvcj0iMTAwOjEtMTAxOjQwIiBuYW1lPSJDbGllbnQgaXMgYXQgcHJvZ3JhbW1hdGljIHRhcmdldCBhZ2UgKDMwIG9yIDQwKSIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjI2MSI+CiAgICAgICAgICAgICAgIDxhOnM+LyoKICogVGhlIGNsaWVudCBpcyBhdCBvbmUgb2YgdGhlIHByb2dyYW1tYXRpYy1vdmVybGF5IHRhcmdldCBhZ2VzIHBlciB0aGUKICogQXByaWwgMjAyNSBDZXJ2aWNhbCBDYW5jZXIgRWxpbWluYXRpb24gUHJvZ3JhbW1lIGxhdW5jaCBhbm5vdW5jZW1lbnQKICogKGFnZXMgMzAgYW5kIDQwKS4KICovCmRlZmluZSAmcXVvdDtDbGllbnQgaXMgYXQgcHJvZ3JhbW1hdGljIHRhcmdldCBhZ2UgKDMwIG9yIDQwKSZxdW90OzoKICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyNjIiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjI2MyI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjY0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtDbGllbnQgYWdlJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI2NSI+ID0gMzA8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+IG9yIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjI2OCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjY5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtDbGllbnQgYWdlJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI3MCI+ID0gNDA8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIyNjIiIGxvY2F0b3I9IjEwMTozLTEwMTo0MCIgeHNpOnR5cGU9Ik9yIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjYzIiBsb2NhdG9yPSIxMDE6My0xMDE6MTkiIHhzaTp0eXBlPSJFcXVhbCI+CiAgICAgICAgICAgICAgIDxzaWduYXR1cmUgbG9jYWxJZD0iMjY2IiBuYW1lPSJ0OkludGVnZXIiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgPHNpZ25hdHVyZSBsb2NhbElkPSIyNjciIG5hbWU9InQ6SW50ZWdlciIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyNjQiIGxvY2F0b3I9IjEwMTozLTEwMToxNCIgbmFtZT0iQ2xpZW50IGFnZSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjY1IiBsb2NhdG9yPSIxMDE6MTgtMTAxOjE5IiB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjMwIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI2OCIgbG9jYXRvcj0iMTAxOjI0LTEwMTo0MCIgeHNpOnR5cGU9IkVxdWFsIj4KICAgICAgICAgICAgICAgPHNpZ25hdHVyZSBsb2NhbElkPSIyNzEiIG5hbWU9InQ6SW50ZWdlciIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICA8c2lnbmF0dXJlIGxvY2FsSWQ9IjI3MiIgbmFtZT0idDpJbnRlZ2VyIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI2OSIgbG9jYXRvcj0iMTAxOjI0LTEwMTozNSIgbmFtZT0iQ2xpZW50IGFnZSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjcwIiBsb2NhdG9yPSIxMDE6MzktMTAxOjQwIiB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjQwIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjc1IiBsb2NhdG9yPSIxMTQ6MS0xMTc6MzUiIG5hbWU9IkNsaWVudCBpcyBkdWUgZm9yIEhQViBzY3JlZW5pbmcgKGxlZ2FsIGJpbmRpbmcpIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnQgbmFtZT0ib3V0cHV0IiB2YWx1ZT0iJnF1b3Q7RHVlIGZvciBIUFYgc2NyZWVuaW5nJnF1b3Q7Ii8+CiAgICAgICAgICAgIDxhOnQgbmFtZT0iYmluZGluZ25lc3MiIHZhbHVlPSJsZWdhbCYjeGE7Q2xpZW50IGlzIGR1ZSBpZiBhdCBhIGJpbmRpbmcgdGFyZ2V0IGFnZSwgaGFzIG5vdCBoYWQgYSBoeXN0ZXJlY3RvbXksJiN4YTthbmQgaGFzIG5vdCBiZWVuIHNjcmVlbmVkIGluIHRoZSBjdXJyZW50IGN5Y2xlLiIvPgogICAgICAgICAgICA8YTpzIHI9IjI3NSI+CiAgICAgICAgICAgICAgIDxhOnM+Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8gTGVnYWwtYmluZGluZyBlbGlnaWJpbGl0eSB0cmVlIOKAlCBBLzY0MSBzZWN0aW9uIDIuMiAoSFBWIGF0IGFnZXMgMzUgYW5kIDQ1KQovLyBCaW5kaW5nbmVzczogbGVnYWwKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCi8qCiAqIEBvdXRwdXQ6IENYQ0EuRCNERTQgJnF1b3Q7RHVlIGZvciBIUFYgc2NyZWVuaW5nJnF1b3Q7CiAqIEBiaW5kaW5nbmVzczogbGVnYWwKICogQ2xpZW50IGlzIGR1ZSBpZiBhdCBhIGJpbmRpbmcgdGFyZ2V0IGFnZSwgaGFzIG5vdCBoYWQgYSBoeXN0ZXJlY3RvbXksCiAqIGFuZCBoYXMgbm90IGJlZW4gc2NyZWVuZWQgaW4gdGhlIGN1cnJlbnQgY3ljbGUuCiAqLwpkZWZpbmUgJnF1b3Q7Q2xpZW50IGlzIGR1ZSBmb3IgSFBWIHNjcmVlbmluZyAobGVnYWwgYmluZGluZykmcXVvdDs6CiAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMjc2Ij4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNzciPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI3OCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7Q2xpZW50IGlzIGF0IGJpbmRpbmcgdGFyZ2V0IGFnZSAoMzUgb3IgNDUpJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgYW5kIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI3OSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+bm90IDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI4MSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjgwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5FbGVtZW50czwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjgxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtIYXMgSGFkIEh5c3RlcmVjdG9teSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4KICAgIGFuZCA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIyODIiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPm5vdCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyODMiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0hhc1JlY2VudEhQVlNjcmVlbmluZyZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIyNzYiIGxvY2F0b3I9IjExNTozLTExNzozNSIgeHNpOnR5cGU9IkFuZCI+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI3NyIgbG9jYXRvcj0iMTE1OjMtMTE2OjQzIiB4c2k6dHlwZT0iQW5kIj4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjc4IiBsb2NhdG9yPSIxMTU6My0xMTU6NDYiIG5hbWU9IkNsaWVudCBpcyBhdCBiaW5kaW5nIHRhcmdldCBhZ2UgKDM1IG9yIDQ1KSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjc5IiBsb2NhdG9yPSIxMTY6OS0xMTY6NDMiIHhzaTp0eXBlPSJOb3QiPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyODEiIGxvY2F0b3I9IjExNjoxMy0xMTY6NDMiIG5hbWU9IkhhcyBIYWQgSHlzdGVyZWN0b215IiBsaWJyYXJ5TmFtZT0iRWxlbWVudHMiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyODIiIGxvY2F0b3I9IjExNzo5LTExNzozNSIgeHNpOnR5cGU9Ik5vdCI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI4MyIgbG9jYXRvcj0iMTE3OjEzLTExNzozNSIgbmFtZT0iSGFzUmVjZW50SFBWU2NyZWVuaW5nIiB4c2k6dHlwZT0iUGFyYW1ldGVyUmVmIi8+CiAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyODYiIGxvY2F0b3I9IjEyNDoxLTEyNzo0MyIgbmFtZT0iQ2xpZW50IG5vdCBkdWUg4oCUIGFscmVhZHkgc2NyZWVuZWQgaW4gY3VycmVudCBjeWNsZSAobGVnYWwgYmluZGluZykiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6dCBuYW1lPSJvdXRwdXQiIHZhbHVlPSImcXVvdDtOb3QgZHVlIOKAlCBhbHJlYWR5IHNjcmVlbmVkIGluIGN1cnJlbnQgY3ljbGUmcXVvdDsiLz4KICAgICAgICAgICAgPGE6dCBuYW1lPSJiaW5kaW5nbmVzcyIgdmFsdWU9ImxlZ2FsJiN4YTtDbGllbnQgaXMgYXQgYSB0YXJnZXQgYWdlIGJ1dCBoYXMgaGFkIGEgcmVjZW50IHZhbGlkIEhQViBzY3JlZW5pbmcgcmVzdWx0LiIvPgogICAgICAgICAgICA8YTpzIHI9IjI4NiI+CiAgICAgICAgICAgICAgIDxhOnM+LyoKICogQG91dHB1dDogQ1hDQS5EI0RFNSAmcXVvdDtOb3QgZHVlIOKAlCBhbHJlYWR5IHNjcmVlbmVkIGluIGN1cnJlbnQgY3ljbGUmcXVvdDsKICogQGJpbmRpbmduZXNzOiBsZWdhbAogKiBDbGllbnQgaXMgYXQgYSB0YXJnZXQgYWdlIGJ1dCBoYXMgaGFkIGEgcmVjZW50IHZhbGlkIEhQViBzY3JlZW5pbmcgcmVzdWx0LgogKi8KZGVmaW5lICZxdW90O0NsaWVudCBub3QgZHVlIOKAlCBhbHJlYWR5IHNjcmVlbmVkIGluIGN1cnJlbnQgY3ljbGUgKGxlZ2FsIGJpbmRpbmcpJnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjI4NyI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjg4Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyODkiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0NsaWVudCBpcyBhdCBiaW5kaW5nIHRhcmdldCBhZ2UgKDM1IG9yIDQ1KSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgIGFuZCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyOTAiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0hhc1JlY2VudEhQVlNjcmVlbmluZyZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICBhbmQgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjkxIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5ub3QgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjkzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyOTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkVsZW1lbnRzPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyOTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0hhcyBIYWQgSHlzdGVyZWN0b215JnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIyODciIGxvY2F0b3I9IjEyNTozLTEyNzo0MyIgeHNpOnR5cGU9IkFuZCI+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI4OCIgbG9jYXRvcj0iMTI1OjMtMTI2OjMxIiB4c2k6dHlwZT0iQW5kIj4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjg5IiBsb2NhdG9yPSIxMjU6My0xMjU6NDYiIG5hbWU9IkNsaWVudCBpcyBhdCBiaW5kaW5nIHRhcmdldCBhZ2UgKDM1IG9yIDQ1KSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjkwIiBsb2NhdG9yPSIxMjY6OS0xMjY6MzEiIG5hbWU9Ikhhc1JlY2VudEhQVlNjcmVlbmluZyIgeHNpOnR5cGU9IlBhcmFtZXRlclJlZiIvPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI5MSIgbG9jYXRvcj0iMTI3OjktMTI3OjQzIiB4c2k6dHlwZT0iTm90Ij4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjkzIiBsb2NhdG9yPSIxMjc6MTMtMTI3OjQzIiBuYW1lPSJIYXMgSGFkIEh5c3RlcmVjdG9teSIgbGlicmFyeU5hbWU9IkVsZW1lbnRzIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjk2IiBsb2NhdG9yPSIxMzQ6MS0xMzY6NDMiIG5hbWU9IkNsaWVudCBleGNsdWRlZCDigJQgb3V0c2lkZSB0YXJnZXQgYWdlIHJhbmdlIChsZWdhbCBiaW5kaW5nKSIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTp0IG5hbWU9Im91dHB1dCIgdmFsdWU9IiZxdW90O0V4Y2x1ZGVkIOKAlCBvdXRzaWRlIHRhcmdldCBhZ2UgcmFuZ2UmcXVvdDsiLz4KICAgICAgICAgICAgPGE6dCBuYW1lPSJiaW5kaW5nbmVzcyIgdmFsdWU9ImxlZ2FsJiN4YTtDbGllbnQgaXMgbm90IGF0IGEgYmluZGluZyB0YXJnZXQgYWdlICgzNSBvciA0NSBvbmx5IGZvciBIUFYtY2FwYWJsZSBmYWNpbGl0aWVzKS4iLz4KICAgICAgICAgICAgPGE6cyByPSIyOTYiPgogICAgICAgICAgICAgICA8YTpzPi8qCiAqIEBvdXRwdXQ6IENYQ0EuRCNERTYgJnF1b3Q7RXhjbHVkZWQg4oCUIG91dHNpZGUgdGFyZ2V0IGFnZSByYW5nZSZxdW90OwogKiBAYmluZGluZ25lc3M6IGxlZ2FsCiAqIENsaWVudCBpcyBub3QgYXQgYSBiaW5kaW5nIHRhcmdldCBhZ2UgKDM1IG9yIDQ1IG9ubHkgZm9yIEhQVi1jYXBhYmxlIGZhY2lsaXRpZXMpLgogKi8KZGVmaW5lICZxdW90O0NsaWVudCBleGNsdWRlZCDigJQgb3V0c2lkZSB0YXJnZXQgYWdlIHJhbmdlIChsZWdhbCBiaW5kaW5nKSZxdW90OzoKICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyOTciPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjI5OCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+bm90IDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI5OSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7Q2xpZW50IGlzIGF0IGJpbmRpbmcgdGFyZ2V0IGFnZSAoMzUgb3IgNDUpJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4KICAgIGFuZCA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMDAiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPm5vdCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMDIiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjMwMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+RWxlbWVudHM8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjMwMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7SGFzIEhhZCBIeXN0ZXJlY3RvbXkmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjI5NyIgbG9jYXRvcj0iMTM1OjMtMTM2OjQzIiB4c2k6dHlwZT0iQW5kIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjk4IiBsb2NhdG9yPSIxMzU6My0xMzU6NTAiIHhzaTp0eXBlPSJOb3QiPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyOTkiIGxvY2F0b3I9IjEzNTo3LTEzNTo1MCIgbmFtZT0iQ2xpZW50IGlzIGF0IGJpbmRpbmcgdGFyZ2V0IGFnZSAoMzUgb3IgNDUpIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjMwMCIgbG9jYXRvcj0iMTM2OjktMTM2OjQzIiB4c2k6dHlwZT0iTm90Ij4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMzAyIiBsb2NhdG9yPSIxMzY6MTMtMTM2OjQzIiBuYW1lPSJIYXMgSGFkIEh5c3RlcmVjdG9teSIgbGlicmFyeU5hbWU9IkVsZW1lbnRzIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMzA1IiBsb2NhdG9yPSIxNDQ6MS0xNDU6MzMiIG5hbWU9IkNsaWVudCBleGNsdWRlZCDigJQgcHJpb3IgaHlzdGVyZWN0b215IChsZWdhbCBiaW5kaW5nKSIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTp0IG5hbWU9Im91dHB1dCIgdmFsdWU9IiZxdW90O0V4Y2x1ZGVkIOKAlCBwcmlvciBoeXN0ZXJlY3RvbXkmcXVvdDsiLz4KICAgICAgICAgICAgPGE6dCBuYW1lPSJiaW5kaW5nbmVzcyIgdmFsdWU9ImxlZ2FsJiN4YTtDbGllbnQgaGFzIGhhZCBhIGh5c3RlcmVjdG9teSBmb3Igbm9uLWNlcnZpY2FsLWNhbmNlciBpbmRpY2F0aW9uIGFuZCBpcyYjeGE7dGhlcmVmb3JlIGV4ZW1wdCBmcm9tIGNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgcGVyIEEvNjQxIHNlY3Rpb24gMi4yLiIvPgogICAgICAgICAgICA8YTpzIHI9IjMwNSI+CiAgICAgICAgICAgICAgIDxhOnM+LyoKICogQG91dHB1dDogQ1hDQS5EI0RFNyAmcXVvdDtFeGNsdWRlZCDigJQgcHJpb3IgaHlzdGVyZWN0b215JnF1b3Q7CiAqIEBiaW5kaW5nbmVzczogbGVnYWwKICogQ2xpZW50IGhhcyBoYWQgYSBoeXN0ZXJlY3RvbXkgZm9yIG5vbi1jZXJ2aWNhbC1jYW5jZXIgaW5kaWNhdGlvbiBhbmQgaXMKICogdGhlcmVmb3JlIGV4ZW1wdCBmcm9tIGNlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgcGVyIEEvNjQxIHNlY3Rpb24gMi4yLgogKi8KZGVmaW5lICZxdW90O0NsaWVudCBleGNsdWRlZCDigJQgcHJpb3IgaHlzdGVyZWN0b215IChsZWdhbCBiaW5kaW5nKSZxdW90OzoKICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIzMDciPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjMwNiI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+RWxlbWVudHM8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjMwNyI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7SGFzIEhhZCBIeXN0ZXJlY3RvbXkmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIzMDciIGxvY2F0b3I9IjE0NTozLTE0NTozMyIgbmFtZT0iSGFzIEhhZCBIeXN0ZXJlY3RvbXkiIGxpYnJhcnlOYW1lPSJFbGVtZW50cyIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMzEwIiBsb2NhdG9yPSIxNTk6MS0xNjA6NjQiIG5hbWU9IkNsaWVudCBpcyBhdCBjeXRvbG9neSBwYXRod2F5IHRhcmdldCBhZ2UiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzMTAiPgogICAgICAgICAgICAgICA8YTpzPi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vIEN5dG9sb2d5LXBhdGh3YXkgZWxpZ2liaWxpdHkg4oCUIEEvNjQxIHNlY3Rpb24gMi4yIChjeXRvbG9neS1vbmx5IGZhY2lsaXRpZXMpCi8vIEJpbmRpbmduZXNzOiBsZWdhbCDigJQgYmluZGluZyB0byBjeXRvbG9neS1vbmx5IGZhY2lsaXRpZXMgdW5kZXIgQS82NDEKLy8KLy8gRWxldmVuIGJpbmRpbmcgYWdlcyBvbiBhIDMteWVhciBjeWNsZTogMzAsIDMzLCAzNiwgMzksIDQyLCA0NSwgNDgsIDUxLCA1NCwgNTcsIDYwLgovLyBBcHBsaWVkIHdoZW4gdGhlIGZhY2lsaXR5IGhhcyBubyBIUFYgRE5BIHRlc3RpbmcgY2FwYWJpbGl0eS4KLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCi8qCiAqIFRoZSBjbGllbnQgaXMgYXQgb25lIG9mIHRoZSAxMSBiaW5kaW5nIGN5dG9sb2d5LXBhdGh3YXkgdGFyZ2V0IGFnZXMKICogcGVyIEEvNjQxIHNlY3Rpb24gMi4yIChjeXRvbG9neS1vbmx5IGZhY2lsaXRpZXMsIDMteWVhciBjeWNsZSBmcm9tIDMwIHRvIDYwKS4KICovCmRlZmluZSAmcXVvdDtDbGllbnQgaXMgYXQgY3l0b2xvZ3kgcGF0aHdheSB0YXJnZXQgYWdlJnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjMyNCI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzExIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtDbGllbnQgYWdlJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPiBpbiA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMTIiPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjMxMyI+eyAzMCwgMzMsIDM2LCAzOSwgNDIsIDQ1LCA0OCwgNTEsIDU0LCA1NywgNjAgfTwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjMyNCIgbG9jYXRvcj0iMTYwOjMtMTYwOjY0IiB4c2k6dHlwZT0iSW4iPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzMTEiIGxvY2F0b3I9IjE2MDozLTE2MDoxNCIgbmFtZT0iQ2xpZW50IGFnZSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMzEyIiBsb2NhdG9yPSIxNjA6MTktMTYwOjY0IiB4c2k6dHlwZT0iTGlzdCI+CiAgICAgICAgICAgICAgIDxlbGVtZW50IGxvY2FsSWQ9IjMxMyIgbG9jYXRvcj0iMTYwOjIxLTE2MDoyMiIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIzMCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPGVsZW1lbnQgbG9jYWxJZD0iMzE0IiBsb2NhdG9yPSIxNjA6MjUtMTYwOjI2IiB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjMzIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8ZWxlbWVudCBsb2NhbElkPSIzMTUiIGxvY2F0b3I9IjE2MDoyOS0xNjA6MzAiIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMzYiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxlbGVtZW50IGxvY2FsSWQ9IjMxNiIgbG9jYXRvcj0iMTYwOjMzLTE2MDozNCIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIzOSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPGVsZW1lbnQgbG9jYWxJZD0iMzE3IiBsb2NhdG9yPSIxNjA6MzctMTYwOjM4IiB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjQyIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8ZWxlbWVudCBsb2NhbElkPSIzMTgiIGxvY2F0b3I9IjE2MDo0MS0xNjA6NDIiIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iNDUiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxlbGVtZW50IGxvY2FsSWQ9IjMxOSIgbG9jYXRvcj0iMTYwOjQ1LTE2MDo0NiIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSI0OCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPGVsZW1lbnQgbG9jYWxJZD0iMzIwIiBsb2NhdG9yPSIxNjA6NDktMTYwOjUwIiB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjUxIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8ZWxlbWVudCBsb2NhbElkPSIzMjEiIGxvY2F0b3I9IjE2MDo1My0xNjA6NTQiIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iNTQiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxlbGVtZW50IGxvY2FsSWQ9IjMyMiIgbG9jYXRvcj0iMTYwOjU3LTE2MDo1OCIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSI1NyIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPGVsZW1lbnQgbG9jYWxJZD0iMzIzIiBsb2NhdG9yPSIxNjA6NjEtMTYwOjYyIiB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjYwIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMzI3IiBsb2NhdG9yPSIxNzA6MS0xNzQ6NDAiIG5hbWU9IkNsaWVudCBpcyBkdWUgZm9yIGN5dG9sb2d5IHNjcmVlbmluZyAobGVnYWwgYmluZGluZykiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6dCBuYW1lPSJvdXRwdXQiIHZhbHVlPSImcXVvdDtEdWUgZm9yIEhQViBzY3JlZW5pbmcmcXVvdDsg4oCUIGJ1dCB0aGUgdGVzdCByZWNvbW1lbmRlZCBpcyIvPgogICAgICAgICAgICA8YTp0IG5hbWU9ImJpbmRpbmduZXNzIiB2YWx1ZT0ibGVnYWwmI3hhO0N5dG9sb2d5LXBhdGh3YXkgY2xpZW50IGlzIGR1ZSBpZiBhdCBvbmUgb2YgdGhlIDExIHRhcmdldCBhZ2VzLCB0aGUgZmFjaWxpdHkmI3hhO2xhY2tzIEhQViBjYXBhYmlsaXR5LCBubyBoeXN0ZXJlY3RvbXksIGFuZCBubyByZWNlbnQgdmFsaWQgY3l0b2xvZ3kgc2NyZWVuaW5nLiIvPgogICAgICAgICAgICA8YTpzIHI9IjMyNyI+CiAgICAgICAgICAgICAgIDxhOnM+LyoKICogQG91dHB1dDogQ1hDQS5EI0RFNCAmcXVvdDtEdWUgZm9yIEhQViBzY3JlZW5pbmcmcXVvdDsg4oCUIGJ1dCB0aGUgdGVzdCByZWNvbW1lbmRlZCBpcwogKiAgIGN5dG9sb2d5LCBub3QgSFBWICh0aGUgc2NyZWVuaW5nIG5hbWUgaW4gQ1hDQS5EI0RFNCByZWZsZWN0cyB0aGUgV0hPCiAqICAgdGFyZ2V0IHRlc3Q7IGJvdGggcGF0aHdheXMgYXJlIGZsYXZvcnMgb2YgJnF1b3Q7Y2VydmljYWwgY2FuY2VyIHNjcmVlbmluZyZxdW90OykuCiAqIEBiaW5kaW5nbmVzczogbGVnYWwKICogQ3l0b2xvZ3ktcGF0aHdheSBjbGllbnQgaXMgZHVlIGlmIGF0IG9uZSBvZiB0aGUgMTEgdGFyZ2V0IGFnZXMsIHRoZSBmYWNpbGl0eQogKiBsYWNrcyBIUFYgY2FwYWJpbGl0eSwgbm8gaHlzdGVyZWN0b215LCBhbmQgbm8gcmVjZW50IHZhbGlkIGN5dG9sb2d5IHNjcmVlbmluZy4KICovCmRlZmluZSAmcXVvdDtDbGllbnQgaXMgZHVlIGZvciBjeXRvbG9neSBzY3JlZW5pbmcgKGxlZ2FsIGJpbmRpbmcpJnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjMyOCI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzI5Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMzAiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjMzMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7Q2xpZW50IGlzIGF0IGN5dG9sb2d5IHBhdGh3YXkgdGFyZ2V0IGFnZSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgIGFuZCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMzIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPm5vdCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMzMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0ZhY2lsaXR5SGFzSFBWQ2FwYWJpbGl0eSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgYW5kIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjMzNCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+bm90IDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjMzNiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzM1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5FbGVtZW50czwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzM2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtIYXMgSGFkIEh5c3RlcmVjdG9teSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4KICAgIGFuZCA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMzciPgogICAgICAgICAgICAgICAgICAgICA8YTpzPm5vdCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMzgiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0hhc1JlY2VudEN5dG9sb2d5U2NyZWVuaW5nJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjMyOCIgbG9jYXRvcj0iMTcxOjMtMTc0OjQwIiB4c2k6dHlwZT0iQW5kIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMzI5IiBsb2NhdG9yPSIxNzE6My0xNzM6NDMiIHhzaTp0eXBlPSJBbmQiPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzMzAiIGxvY2F0b3I9IjE3MTozLTE3MjozOCIgeHNpOnR5cGU9IkFuZCI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjMzMSIgbG9jYXRvcj0iMTcxOjMtMTcxOjQ0IiBuYW1lPSJDbGllbnQgaXMgYXQgY3l0b2xvZ3kgcGF0aHdheSB0YXJnZXQgYWdlIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzMzIiIGxvY2F0b3I9IjE3Mjo5LTE3MjozOCIgeHNpOnR5cGU9Ik5vdCI+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjMzMyIgbG9jYXRvcj0iMTcyOjEzLTE3MjozOCIgbmFtZT0iRmFjaWxpdHlIYXNIUFZDYXBhYmlsaXR5IiB4c2k6dHlwZT0iUGFyYW1ldGVyUmVmIi8+CiAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzMzQiIGxvY2F0b3I9IjE3Mzo5LTE3Mzo0MyIgeHNpOnR5cGU9Ik5vdCI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjMzNiIgbG9jYXRvcj0iMTczOjEzLTE3Mzo0MyIgbmFtZT0iSGFzIEhhZCBIeXN0ZXJlY3RvbXkiIGxpYnJhcnlOYW1lPSJFbGVtZW50cyIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjMzNyIgbG9jYXRvcj0iMTc0OjktMTc0OjQwIiB4c2k6dHlwZT0iTm90Ij4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMzM4IiBsb2NhdG9yPSIxNzQ6MTMtMTc0OjQwIiBuYW1lPSJIYXNSZWNlbnRDeXRvbG9neVNjcmVlbmluZyIgeHNpOnR5cGU9IlBhcmFtZXRlclJlZiIvPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMzQxIiBsb2NhdG9yPSIxODY6MS0xODk6MzUiIG5hbWU9IkNsaWVudCBpcyBkdWUgZm9yIEhQViBzY3JlZW5pbmcgKHByb2dyYW1tYXRpYykiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6dCBuYW1lPSJvdXRwdXQiIHZhbHVlPSImcXVvdDtEdWUgZm9yIEhQViBzY3JlZW5pbmcmcXVvdDsiLz4KICAgICAgICAgICAgPGE6dCBuYW1lPSJiaW5kaW5nbmVzcyIgdmFsdWU9InByb2dyYW1tYXRpYyDigJQgTW9uZ29saWEgb3ZlcmxheSIvPgogICAgICAgICAgICA8YTp0IG5hbWU9InNvdXJjZSIgdmFsdWU9IldITyBNb25nb2xpYSBuZXdzIHJlbGVhc2UsIDIyIEFwcmlsIDIwMjUuIi8+CiAgICAgICAgICAgIDxhOnMgcj0iMzQxIj4KICAgICAgICAgICAgICAgPGE6cz4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQovLyBQcm9ncmFtbWF0aWMtb3ZlcmxheSBlbGlnaWJpbGl0eSDigJQgQXByaWwgMjAyNSBsYXVuY2gncyAzMC80MCBhbm5vdW5jZW1lbnQKLy8gQmluZGluZ25lc3M6IHByb2dyYW1tYXRpYyAoTW9uZ29saWEgb3ZlcmxheSkKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCi8qCiAqIEBvdXRwdXQ6IENYQ0EuRCNERTQgJnF1b3Q7RHVlIGZvciBIUFYgc2NyZWVuaW5nJnF1b3Q7CiAqIEBiaW5kaW5nbmVzczogcHJvZ3JhbW1hdGljIOKAlCBNb25nb2xpYSBvdmVybGF5CiAqIEBzb3VyY2U6IFdITyBNb25nb2xpYSBuZXdzIHJlbGVhc2UsIDIyIEFwcmlsIDIwMjUuCiAqLwpkZWZpbmUgJnF1b3Q7Q2xpZW50IGlzIGR1ZSBmb3IgSFBWIHNjcmVlbmluZyAocHJvZ3JhbW1hdGljKSZxdW90OzoKICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIzNDIiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjM0MyI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzQ0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtDbGllbnQgaXMgYXQgcHJvZ3JhbW1hdGljIHRhcmdldCBhZ2UgKDMwIG9yIDQwKSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgIGFuZCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzNDUiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPm5vdCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzNDciPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjM0NiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+RWxlbWVudHM8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjM0NyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7SGFzIEhhZCBIeXN0ZXJlY3RvbXkmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICBhbmQgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzQ4Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5ub3QgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzQ5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtIYXNSZWNlbnRIUFZTY3JlZW5pbmcmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMzQyIiBsb2NhdG9yPSIxODc6My0xODk6MzUiIHhzaTp0eXBlPSJBbmQiPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzNDMiIGxvY2F0b3I9IjE4NzozLTE4ODo0MyIgeHNpOnR5cGU9IkFuZCI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjM0NCIgbG9jYXRvcj0iMTg3OjMtMTg3OjUxIiBuYW1lPSJDbGllbnQgaXMgYXQgcHJvZ3JhbW1hdGljIHRhcmdldCBhZ2UgKDMwIG9yIDQwKSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMzQ1IiBsb2NhdG9yPSIxODg6OS0xODg6NDMiIHhzaTp0eXBlPSJOb3QiPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzNDciIGxvY2F0b3I9IjE4ODoxMy0xODg6NDMiIG5hbWU9IkhhcyBIYWQgSHlzdGVyZWN0b215IiBsaWJyYXJ5TmFtZT0iRWxlbWVudHMiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzNDgiIGxvY2F0b3I9IjE4OTo5LTE4OTozNSIgeHNpOnR5cGU9Ik5vdCI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjM0OSIgbG9jYXRvcj0iMTg5OjEzLTE4OTozNSIgbmFtZT0iSGFzUmVjZW50SFBWU2NyZWVuaW5nIiB4c2k6dHlwZT0iUGFyYW1ldGVyUmVmIi8+CiAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIzNTIiIGxvY2F0b3I9IjE5ODoxLTE5OToxOSIgbmFtZT0iQ2xpZW50IGlzIGR1ZSBmb3IgSFBWIHNjcmVlbmluZyBhdCBhZ2UgMzUiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzNTIiPgogICAgICAgICAgICAgICA8YTpzPi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vIEJhY2t3YXJkLWNvbXBhdGliaWxpdHkgc2hpbXMg4oCUIHByZXNlcnZlIFBoYXNlIDIvMyBkZWZpbmUgbmFtZXMgc28gZXhpc3RpbmcKLy8gUGxhbkRlZmluaXRpb24gcmVmZXJlbmNlcyBjb250aW51ZSB0byBmaXJlLgovLyAoVGhlc2UgYWxpYXNlcyB3aWxsIGJlIHJlbW92ZWQgb25jZSBhbGwgcmVmZXJlbmNlcyBtaWdyYXRlIHRvIHRoZQovLyBleHBhbmRlZCBkZWZpbmUgbmFtZXMgYWJvdmUuKQovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZGVmaW5lICZxdW90O0NsaWVudCBpcyBkdWUgZm9yIEhQViBzY3JlZW5pbmcgYXQgYWdlIDM1JnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjM1MyI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzU0Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtDbGllbnQgYWdlJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjM1NSI+ID0gMzU8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjM1MyIgbG9jYXRvcj0iMTk5OjMtMTk5OjE5IiB4c2k6dHlwZT0iRXF1YWwiPgogICAgICAgICAgICA8c2lnbmF0dXJlIGxvY2FsSWQ9IjM1NiIgbmFtZT0idDpJbnRlZ2VyIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgIDxzaWduYXR1cmUgbG9jYWxJZD0iMzU3IiBuYW1lPSJ0OkludGVnZXIiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMzU0IiBsb2NhdG9yPSIxOTk6My0xOTk6MTQiIG5hbWU9IkNsaWVudCBhZ2UiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjM1NSIgbG9jYXRvcj0iMTk5OjE4LTE5OToxOSIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIzNSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIzNjAiIGxvY2F0b3I9IjIwMToxLTIwMjoxOSIgbmFtZT0iQ2xpZW50IGlzIGR1ZSBmb3IgSFBWIHNjcmVlbmluZyBhdCBhZ2UgMzAiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzNjAiPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSAmcXVvdDtDbGllbnQgaXMgZHVlIGZvciBIUFYgc2NyZWVuaW5nIGF0IGFnZSAzMCZxdW90OzoKICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIzNjEiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjM2MiI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7Q2xpZW50IGFnZSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIzNjMiPiA9IDMwPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIzNjEiIGxvY2F0b3I9IjIwMjozLTIwMjoxOSIgeHNpOnR5cGU9IkVxdWFsIj4KICAgICAgICAgICAgPHNpZ25hdHVyZSBsb2NhbElkPSIzNjQiIG5hbWU9InQ6SW50ZWdlciIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICA8c2lnbmF0dXJlIGxvY2FsSWQ9IjM2NSIgbmFtZT0idDpJbnRlZ2VyIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjM2MiIgbG9jYXRvcj0iMjAyOjMtMjAyOjE0IiBuYW1lPSJDbGllbnQgYWdlIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzNjMiIGxvY2F0b3I9IjIwMjoxOC0yMDI6MTkiIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMzAiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgIDwvc3RhdGVtZW50cz4KPC9saWJyYXJ5Pgo="/>
  </content>
</Library>