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

: CXCAIND02CascadeCompletionLogic - XML Representation

Draft as of 2026-05-14

Raw xml | Download


<Library xmlns="http://hl7.org/fhir">
  <id value="CXCAIND02CascadeCompletionLogic"/>
  <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;">CXCAIND02CascadeCompletionLogic</td>
        </tr>
        

        
        
        <tr>
            <th scope="row"><b>Id: </b></th>
            <td style="padding-left: 4px;">CXCAIND02CascadeCompletionLogic</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-CXCAIND02CascadeCompletionLogic.html">CXCAIND02CascadeCompletionLogic</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>CQL logic library for CXCA.IND.02 — cervical cancer screening cascade completion (NotDone-aware). Distinguishes successful cytology, documented non-occurrence (LTFU), and absent records. Source CQL is at input/cql/CXCAIND02CascadeCompletionLogic.cql.</p>
</div></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>Measurement Period</th><th>Period</th><th>0</th><th>1</th><th>In</th></tr>
              
                <tr><th>PatientHasHPVPositiveInPeriod</th><th>boolean</th><th>0</th><th>1</th><th>In</th></tr>
              
                <tr><th>PatientHasCytologyCompletedInPeriod</th><th>boolean</th><th>0</th><th>1</th><th>In</th></tr>
              
                <tr><th>PatientHasCytologyNotDoneRecordedInPeriod</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>Initial Population</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Denominator</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Numerator</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Numerator Exclusion</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: CXCAIND02CascadeCompletionLogic
 *
 * Indicator: CXCA.IND.02 — Cervical Cancer Screening Cascade Completion (NotDone-aware)
 *
 * METHODOLOGY CONTRIBUTION:
 * This measure uses the CXCAServiceNotRequested profile from Phase 4 to
 * distinguish three states for HPV-positive patients in the measurement period:
 *
 *   1. Cytology completed (Procedure with status=completed)
 *      → &quot;Successful cascade completion&quot;
 *
 *   2. Cytology documented as not occurring (CXCAServiceNotRequested with
 *      reasonCode in CXCA.D — typically DE10 &quot;Lost to follow-up&quot;)
 *      → &quot;Documented non-occurrence&quot; — explicit, traceable, not a system gap
 *
 *   3. Neither (HPV+ patient with no subsequent cytology record at all)
 *      → &quot;Absent / unknown&quot; — visibility gap; programme cannot account for
 *        this patient's downstream care
 *
 * The Numerator counts (1) + (2) — patients who reached cascade *resolution*.
 * The Numerator Exclusion counts (2) alone, surfacing the LTFU sub-rate.
 * Patients in state (3) are correctly excluded from the numerator entirely,
 * accurately reflecting our ignorance of their state rather than conflating
 * them with patients who received zero follow-up.
 *
 * Without the NotDone pattern, a vanilla cascade measure can only compute
 *   &quot;% of HPV+ with cytology&quot; = state (1) / (states (1) + (2) + (3) combined)
 * which conflates documented LTFU with absent records and gives programme
 * managers a false sense of certainty.
 *
 * MOTIVATION (concrete numbers):
 * The April 2026 Khan-Uul HPV-DNA pilot in Mongolia identified 371 HPV+ women.
 * 184 received follow-up cytology; 187 were lost to follow-up; 0 were unknown
 * (the pilot tracked everyone). Under this measure with the NotDone pattern
 * applied:
 *   - Denominator = 371 (all HPV+)
 *   - Numerator = 371 (all reached resolution: 184 cytology + 187 LTFU)
 *   - Numerator Exclusion = 187 (the LTFU sub-rate)
 *   - Cascade resolution % = 100%, with 50% LTFU sub-rate
 *
 * Compare to a vanilla measure (no NotDone profile): 184/371 = 49.6% and
 * the 187 LTFU women are invisible. The methodology improvement is the
 * difference between &quot;we know we have a 50% LTFU problem&quot; and &quot;we have a
 * 49.6% follow-up rate&quot; — same data, different visibility.
 *
 * PLACEHOLDER PATTERN:
 * As with the Phase 2/5 eligibility CQL, this implementation uses Boolean
 * parameters as stand-ins for FHIR queries. Real implementation will replace
 * these with [Observation] / [Procedure] / [ServiceRequest] queries via the
 * shared CXCAElements layer when authored. The Numerator/Denominator
 * structure is identical regardless.
 */

library CXCAIND02CascadeCompletionLogic version '0.0.1'

using FHIR version '4.0.1'

include FHIRHelpers version '4.0.1'

parameter &quot;Measurement Period&quot; Interval&lt;Date&gt; default Interval[@2026-01-01, @2026-12-31]

// Placeholders — to be replaced with FHIR queries via the shared CXCAElements
// layer in a future iteration. Each parameter represents a per-patient fact
// derived from underlying resources.
parameter &quot;PatientHasHPVPositiveInPeriod&quot; Boolean default false
parameter &quot;PatientHasCytologyCompletedInPeriod&quot; Boolean default false
parameter &quot;PatientHasCytologyNotDoneRecordedInPeriod&quot; Boolean default false

context Patient

/*
 * @initialPopulation: as defined by Member State (placeholder — true)
 *   Real implementation: women in target age range alive at start of period
 *   in the jurisdiction.
 */
define &quot;Initial Population&quot;:
  true

/*
 * @denominator: Patients with an HPV+ result during the measurement period.
 *   These are the patients whose cascade we want to track.
 */
define &quot;Denominator&quot;:
  &quot;PatientHasHPVPositiveInPeriod&quot;

/*
 * @numerator: HPV+ patients who reached cascade *resolution* — either by
 *   completing cytology OR by having a documented non-occurrence record.
 */
define &quot;Numerator&quot;:
  &quot;PatientHasHPVPositiveInPeriod&quot;
    and (&quot;PatientHasCytologyCompletedInPeriod&quot;
      or &quot;PatientHasCytologyNotDoneRecordedInPeriod&quot;)

/*
 * @numeratorExclusion: HPV+ patients whose resolution was via documented
 *   non-occurrence (LTFU) rather than actual cytology completion.
 *
 *   FHIR Measure semantics: numerator-exclusion is subtracted from the
 *   numerator when computing the proportion. This lets a single Measure
 *   resource expose three computable views:
 *     - Cascade resolution rate: Numerator / Denominator
 *     - True follow-up rate:     (Numerator − NumeratorExclusion) / Denominator
 *     - Documented LTFU rate:    NumeratorExclusion / Denominator
 *   Together with (Denominator − Numerator) = the absent / unknown count,
 *   this gives programme managers a four-way partition of the HPV+ cohort.
 */
define &quot;Numerator Exclusion&quot;:
  &quot;PatientHasHPVPositiveInPeriod&quot;
    and &quot;PatientHasCytologyNotDoneRecordedInPeriod&quot;
    and not &quot;PatientHasCytologyCompletedInPeriod&quot;
</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 (21832 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/CXCAIND02CascadeCompletionLogic"/>
  <version value="0.0.1"/>
  <name value="CXCAIND02CascadeCompletionLogic"/>
  <title value="CXCAIND02CascadeCompletionLogic"/>
  <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="CQL logic library for CXCA.IND.02 — cervical cancer screening cascade completion (NotDone-aware). Distinguishes successful cytology, documented non-occurrence (LTFU), and absent records. Source CQL is at input/cql/CXCAIND02CascadeCompletionLogic.cql."/>
  <parameter>
    <name value="Measurement Period"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Period"/>
  </parameter>
  <parameter>
    <name value="PatientHasHPVPositiveInPeriod"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="PatientHasCytologyCompletedInPeriod"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="PatientHasCytologyNotDoneRecordedInPeriod"/>
    <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="Initial Population"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Denominator"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Numerator"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Numerator Exclusion"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <content>
    <contentType value="text/cql"/>
    <data
          value="LyoKICogTGlicmFyeTogQ1hDQUlORDAyQ2FzY2FkZUNvbXBsZXRpb25Mb2dpYwogKgogKiBJbmRpY2F0b3I6IENYQ0EuSU5ELjAyIOKAlCBDZXJ2aWNhbCBDYW5jZXIgU2NyZWVuaW5nIENhc2NhZGUgQ29tcGxldGlvbiAoTm90RG9uZS1hd2FyZSkKICoKICogTUVUSE9ET0xPR1kgQ09OVFJJQlVUSU9OOgogKiBUaGlzIG1lYXN1cmUgdXNlcyB0aGUgQ1hDQVNlcnZpY2VOb3RSZXF1ZXN0ZWQgcHJvZmlsZSBmcm9tIFBoYXNlIDQgdG8KICogZGlzdGluZ3Vpc2ggdGhyZWUgc3RhdGVzIGZvciBIUFYtcG9zaXRpdmUgcGF0aWVudHMgaW4gdGhlIG1lYXN1cmVtZW50IHBlcmlvZDoKICoKICogICAxLiBDeXRvbG9neSBjb21wbGV0ZWQgKFByb2NlZHVyZSB3aXRoIHN0YXR1cz1jb21wbGV0ZWQpCiAqICAgICAg4oaSICJTdWNjZXNzZnVsIGNhc2NhZGUgY29tcGxldGlvbiIKICoKICogICAyLiBDeXRvbG9neSBkb2N1bWVudGVkIGFzIG5vdCBvY2N1cnJpbmcgKENYQ0FTZXJ2aWNlTm90UmVxdWVzdGVkIHdpdGgKICogICAgICByZWFzb25Db2RlIGluIENYQ0EuRCDigJQgdHlwaWNhbGx5IERFMTAgIkxvc3QgdG8gZm9sbG93LXVwIikKICogICAgICDihpIgIkRvY3VtZW50ZWQgbm9uLW9jY3VycmVuY2UiIOKAlCBleHBsaWNpdCwgdHJhY2VhYmxlLCBub3QgYSBzeXN0ZW0gZ2FwCiAqCiAqICAgMy4gTmVpdGhlciAoSFBWKyBwYXRpZW50IHdpdGggbm8gc3Vic2VxdWVudCBjeXRvbG9neSByZWNvcmQgYXQgYWxsKQogKiAgICAgIOKGkiAiQWJzZW50IC8gdW5rbm93biIg4oCUIHZpc2liaWxpdHkgZ2FwOyBwcm9ncmFtbWUgY2Fubm90IGFjY291bnQgZm9yCiAqICAgICAgICB0aGlzIHBhdGllbnQncyBkb3duc3RyZWFtIGNhcmUKICoKICogVGhlIE51bWVyYXRvciBjb3VudHMgKDEpICsgKDIpIOKAlCBwYXRpZW50cyB3aG8gcmVhY2hlZCBjYXNjYWRlICpyZXNvbHV0aW9uKi4KICogVGhlIE51bWVyYXRvciBFeGNsdXNpb24gY291bnRzICgyKSBhbG9uZSwgc3VyZmFjaW5nIHRoZSBMVEZVIHN1Yi1yYXRlLgogKiBQYXRpZW50cyBpbiBzdGF0ZSAoMykgYXJlIGNvcnJlY3RseSBleGNsdWRlZCBmcm9tIHRoZSBudW1lcmF0b3IgZW50aXJlbHksCiAqIGFjY3VyYXRlbHkgcmVmbGVjdGluZyBvdXIgaWdub3JhbmNlIG9mIHRoZWlyIHN0YXRlIHJhdGhlciB0aGFuIGNvbmZsYXRpbmcKICogdGhlbSB3aXRoIHBhdGllbnRzIHdobyByZWNlaXZlZCB6ZXJvIGZvbGxvdy11cC4KICoKICogV2l0aG91dCB0aGUgTm90RG9uZSBwYXR0ZXJuLCBhIHZhbmlsbGEgY2FzY2FkZSBtZWFzdXJlIGNhbiBvbmx5IGNvbXB1dGUKICogICAiJSBvZiBIUFYrIHdpdGggY3l0b2xvZ3kiID0gc3RhdGUgKDEpIC8gKHN0YXRlcyAoMSkgKyAoMikgKyAoMykgY29tYmluZWQpCiAqIHdoaWNoIGNvbmZsYXRlcyBkb2N1bWVudGVkIExURlUgd2l0aCBhYnNlbnQgcmVjb3JkcyBhbmQgZ2l2ZXMgcHJvZ3JhbW1lCiAqIG1hbmFnZXJzIGEgZmFsc2Ugc2Vuc2Ugb2YgY2VydGFpbnR5LgogKgogKiBNT1RJVkFUSU9OIChjb25jcmV0ZSBudW1iZXJzKToKICogVGhlIEFwcmlsIDIwMjYgS2hhbi1VdWwgSFBWLUROQSBwaWxvdCBpbiBNb25nb2xpYSBpZGVudGlmaWVkIDM3MSBIUFYrIHdvbWVuLgogKiAxODQgcmVjZWl2ZWQgZm9sbG93LXVwIGN5dG9sb2d5OyAxODcgd2VyZSBsb3N0IHRvIGZvbGxvdy11cDsgMCB3ZXJlIHVua25vd24KICogKHRoZSBwaWxvdCB0cmFja2VkIGV2ZXJ5b25lKS4gVW5kZXIgdGhpcyBtZWFzdXJlIHdpdGggdGhlIE5vdERvbmUgcGF0dGVybgogKiBhcHBsaWVkOgogKiAgIC0gRGVub21pbmF0b3IgPSAzNzEgKGFsbCBIUFYrKQogKiAgIC0gTnVtZXJhdG9yID0gMzcxIChhbGwgcmVhY2hlZCByZXNvbHV0aW9uOiAxODQgY3l0b2xvZ3kgKyAxODcgTFRGVSkKICogICAtIE51bWVyYXRvciBFeGNsdXNpb24gPSAxODcgKHRoZSBMVEZVIHN1Yi1yYXRlKQogKiAgIC0gQ2FzY2FkZSByZXNvbHV0aW9uICUgPSAxMDAlLCB3aXRoIDUwJSBMVEZVIHN1Yi1yYXRlCiAqCiAqIENvbXBhcmUgdG8gYSB2YW5pbGxhIG1lYXN1cmUgKG5vIE5vdERvbmUgcHJvZmlsZSk6IDE4NC8zNzEgPSA0OS42JSBhbmQKICogdGhlIDE4NyBMVEZVIHdvbWVuIGFyZSBpbnZpc2libGUuIFRoZSBtZXRob2RvbG9neSBpbXByb3ZlbWVudCBpcyB0aGUKICogZGlmZmVyZW5jZSBiZXR3ZWVuICJ3ZSBrbm93IHdlIGhhdmUgYSA1MCUgTFRGVSBwcm9ibGVtIiBhbmQgIndlIGhhdmUgYQogKiA0OS42JSBmb2xsb3ctdXAgcmF0ZSIg4oCUIHNhbWUgZGF0YSwgZGlmZmVyZW50IHZpc2liaWxpdHkuCiAqCiAqIFBMQUNFSE9MREVSIFBBVFRFUk46CiAqIEFzIHdpdGggdGhlIFBoYXNlIDIvNSBlbGlnaWJpbGl0eSBDUUwsIHRoaXMgaW1wbGVtZW50YXRpb24gdXNlcyBCb29sZWFuCiAqIHBhcmFtZXRlcnMgYXMgc3RhbmQtaW5zIGZvciBGSElSIHF1ZXJpZXMuIFJlYWwgaW1wbGVtZW50YXRpb24gd2lsbCByZXBsYWNlCiAqIHRoZXNlIHdpdGggW09ic2VydmF0aW9uXSAvIFtQcm9jZWR1cmVdIC8gW1NlcnZpY2VSZXF1ZXN0XSBxdWVyaWVzIHZpYSB0aGUKICogc2hhcmVkIENYQ0FFbGVtZW50cyBsYXllciB3aGVuIGF1dGhvcmVkLiBUaGUgTnVtZXJhdG9yL0Rlbm9taW5hdG9yCiAqIHN0cnVjdHVyZSBpcyBpZGVudGljYWwgcmVnYXJkbGVzcy4KICovCgpsaWJyYXJ5IENYQ0FJTkQwMkNhc2NhZGVDb21wbGV0aW9uTG9naWMgdmVyc2lvbiAnMC4wLjEnCgp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBGSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKCnBhcmFtZXRlciAiTWVhc3VyZW1lbnQgUGVyaW9kIiBJbnRlcnZhbDxEYXRlPiBkZWZhdWx0IEludGVydmFsW0AyMDI2LTAxLTAxLCBAMjAyNi0xMi0zMV0KCi8vIFBsYWNlaG9sZGVycyDigJQgdG8gYmUgcmVwbGFjZWQgd2l0aCBGSElSIHF1ZXJpZXMgdmlhIHRoZSBzaGFyZWQgQ1hDQUVsZW1lbnRzCi8vIGxheWVyIGluIGEgZnV0dXJlIGl0ZXJhdGlvbi4gRWFjaCBwYXJhbWV0ZXIgcmVwcmVzZW50cyBhIHBlci1wYXRpZW50IGZhY3QKLy8gZGVyaXZlZCBmcm9tIHVuZGVybHlpbmcgcmVzb3VyY2VzLgpwYXJhbWV0ZXIgIlBhdGllbnRIYXNIUFZQb3NpdGl2ZUluUGVyaW9kIiBCb29sZWFuIGRlZmF1bHQgZmFsc2UKcGFyYW1ldGVyICJQYXRpZW50SGFzQ3l0b2xvZ3lDb21wbGV0ZWRJblBlcmlvZCIgQm9vbGVhbiBkZWZhdWx0IGZhbHNlCnBhcmFtZXRlciAiUGF0aWVudEhhc0N5dG9sb2d5Tm90RG9uZVJlY29yZGVkSW5QZXJpb2QiIEJvb2xlYW4gZGVmYXVsdCBmYWxzZQoKY29udGV4dCBQYXRpZW50CgovKgogKiBAaW5pdGlhbFBvcHVsYXRpb246IGFzIGRlZmluZWQgYnkgTWVtYmVyIFN0YXRlIChwbGFjZWhvbGRlciDigJQgdHJ1ZSkKICogICBSZWFsIGltcGxlbWVudGF0aW9uOiB3b21lbiBpbiB0YXJnZXQgYWdlIHJhbmdlIGFsaXZlIGF0IHN0YXJ0IG9mIHBlcmlvZAogKiAgIGluIHRoZSBqdXJpc2RpY3Rpb24uCiAqLwpkZWZpbmUgIkluaXRpYWwgUG9wdWxhdGlvbiI6CiAgdHJ1ZQoKLyoKICogQGRlbm9taW5hdG9yOiBQYXRpZW50cyB3aXRoIGFuIEhQVisgcmVzdWx0IGR1cmluZyB0aGUgbWVhc3VyZW1lbnQgcGVyaW9kLgogKiAgIFRoZXNlIGFyZSB0aGUgcGF0aWVudHMgd2hvc2UgY2FzY2FkZSB3ZSB3YW50IHRvIHRyYWNrLgogKi8KZGVmaW5lICJEZW5vbWluYXRvciI6CiAgIlBhdGllbnRIYXNIUFZQb3NpdGl2ZUluUGVyaW9kIgoKLyoKICogQG51bWVyYXRvcjogSFBWKyBwYXRpZW50cyB3aG8gcmVhY2hlZCBjYXNjYWRlICpyZXNvbHV0aW9uKiDigJQgZWl0aGVyIGJ5CiAqICAgY29tcGxldGluZyBjeXRvbG9neSBPUiBieSBoYXZpbmcgYSBkb2N1bWVudGVkIG5vbi1vY2N1cnJlbmNlIHJlY29yZC4KICovCmRlZmluZSAiTnVtZXJhdG9yIjoKICAiUGF0aWVudEhhc0hQVlBvc2l0aXZlSW5QZXJpb2QiCiAgICBhbmQgKCJQYXRpZW50SGFzQ3l0b2xvZ3lDb21wbGV0ZWRJblBlcmlvZCIKICAgICAgb3IgIlBhdGllbnRIYXNDeXRvbG9neU5vdERvbmVSZWNvcmRlZEluUGVyaW9kIikKCi8qCiAqIEBudW1lcmF0b3JFeGNsdXNpb246IEhQVisgcGF0aWVudHMgd2hvc2UgcmVzb2x1dGlvbiB3YXMgdmlhIGRvY3VtZW50ZWQKICogICBub24tb2NjdXJyZW5jZSAoTFRGVSkgcmF0aGVyIHRoYW4gYWN0dWFsIGN5dG9sb2d5IGNvbXBsZXRpb24uCiAqCiAqICAgRkhJUiBNZWFzdXJlIHNlbWFudGljczogbnVtZXJhdG9yLWV4Y2x1c2lvbiBpcyBzdWJ0cmFjdGVkIGZyb20gdGhlCiAqICAgbnVtZXJhdG9yIHdoZW4gY29tcHV0aW5nIHRoZSBwcm9wb3J0aW9uLiBUaGlzIGxldHMgYSBzaW5nbGUgTWVhc3VyZQogKiAgIHJlc291cmNlIGV4cG9zZSB0aHJlZSBjb21wdXRhYmxlIHZpZXdzOgogKiAgICAgLSBDYXNjYWRlIHJlc29sdXRpb24gcmF0ZTogTnVtZXJhdG9yIC8gRGVub21pbmF0b3IKICogICAgIC0gVHJ1ZSBmb2xsb3ctdXAgcmF0ZTogICAgIChOdW1lcmF0b3Ig4oiSIE51bWVyYXRvckV4Y2x1c2lvbikgLyBEZW5vbWluYXRvcgogKiAgICAgLSBEb2N1bWVudGVkIExURlUgcmF0ZTogICAgTnVtZXJhdG9yRXhjbHVzaW9uIC8gRGVub21pbmF0b3IKICogICBUb2dldGhlciB3aXRoIChEZW5vbWluYXRvciDiiJIgTnVtZXJhdG9yKSA9IHRoZSBhYnNlbnQgLyB1bmtub3duIGNvdW50LAogKiAgIHRoaXMgZ2l2ZXMgcHJvZ3JhbW1lIG1hbmFnZXJzIGEgZm91ci13YXkgcGFydGl0aW9uIG9mIHRoZSBIUFYrIGNvaG9ydC4KICovCmRlZmluZSAiTnVtZXJhdG9yIEV4Y2x1c2lvbiI6CiAgIlBhdGllbnRIYXNIUFZQb3NpdGl2ZUluUGVyaW9kIgogICAgYW5kICJQYXRpZW50SGFzQ3l0b2xvZ3lOb3REb25lUmVjb3JkZWRJblBlcmlvZCIKICAgIGFuZCBub3QgIlBhdGllbnRIYXNDeXRvbG9neUNvbXBsZXRlZEluUGVyaW9kIgo="/>
  </content>
  <content>
    <contentType value="application/elm+xml"/>
    <data
          value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSIgbG9jYWxJZD0iMCI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iT3ZlcmxvYWRzIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUluZm8iLz4KICAgPGFubm90YXRpb24gbWVzc2FnZT0iQW4gb3BlcmFuZCBpZGVudGlmaWVyIHJlZmVyZW5jZSBpcyBoaWRpbmcgYW5vdGhlciBpZGVudGlmaWVyIG9mIHRoZSBzYW1lIG5hbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IkFuIG9wZXJhbmQgaWRlbnRpZmllciByZWZlcmVuY2UgaXMgaGlkaW5nIGFub3RoZXIgaWRlbnRpZmllciBvZiB0aGUgc2FtZSBuYW1lLiIgZXJyb3JUeXBlPSJzZW1hbnRpYyIgZXJyb3JTZXZlcml0eT0id2FybmluZyIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1FcnJvciIvPgogICA8YW5ub3RhdGlvbiBtZXNzYWdlPSJBbiBvcGVyYW5kIGlkZW50aWZpZXIgcmVmZXJlbmNlIGlzIGhpZGluZyBhbm90aGVyIGlkZW50aWZpZXIgb2YgdGhlIHNhbWUgbmFtZS4iIGVycm9yVHlwZT0ic2VtYW50aWMiIGVycm9yU2V2ZXJpdHk9Indhcm5pbmciIHhzaTp0eXBlPSJhOkNxbFRvRWxtRXJyb3IiLz4KICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgIDxhOnMgcj0iMjU5Ij4KICAgICAgICAgPGE6cz4vKgogKiBMaWJyYXJ5OiBDWENBSU5EMDJDYXNjYWRlQ29tcGxldGlvbkxvZ2ljCiAqCiAqIEluZGljYXRvcjogQ1hDQS5JTkQuMDIg4oCUIENlcnZpY2FsIENhbmNlciBTY3JlZW5pbmcgQ2FzY2FkZSBDb21wbGV0aW9uIChOb3REb25lLWF3YXJlKQogKgogKiBNRVRIT0RPTE9HWSBDT05UUklCVVRJT046CiAqIFRoaXMgbWVhc3VyZSB1c2VzIHRoZSBDWENBU2VydmljZU5vdFJlcXVlc3RlZCBwcm9maWxlIGZyb20gUGhhc2UgNCB0bwogKiBkaXN0aW5ndWlzaCB0aHJlZSBzdGF0ZXMgZm9yIEhQVi1wb3NpdGl2ZSBwYXRpZW50cyBpbiB0aGUgbWVhc3VyZW1lbnQgcGVyaW9kOgogKgogKiAgIDEuIEN5dG9sb2d5IGNvbXBsZXRlZCAoUHJvY2VkdXJlIHdpdGggc3RhdHVzPWNvbXBsZXRlZCkKICogICAgICDihpIgJnF1b3Q7U3VjY2Vzc2Z1bCBjYXNjYWRlIGNvbXBsZXRpb24mcXVvdDsKICoKICogICAyLiBDeXRvbG9neSBkb2N1bWVudGVkIGFzIG5vdCBvY2N1cnJpbmcgKENYQ0FTZXJ2aWNlTm90UmVxdWVzdGVkIHdpdGgKICogICAgICByZWFzb25Db2RlIGluIENYQ0EuRCDigJQgdHlwaWNhbGx5IERFMTAgJnF1b3Q7TG9zdCB0byBmb2xsb3ctdXAmcXVvdDspCiAqICAgICAg4oaSICZxdW90O0RvY3VtZW50ZWQgbm9uLW9jY3VycmVuY2UmcXVvdDsg4oCUIGV4cGxpY2l0LCB0cmFjZWFibGUsIG5vdCBhIHN5c3RlbSBnYXAKICoKICogICAzLiBOZWl0aGVyIChIUFYrIHBhdGllbnQgd2l0aCBubyBzdWJzZXF1ZW50IGN5dG9sb2d5IHJlY29yZCBhdCBhbGwpCiAqICAgICAg4oaSICZxdW90O0Fic2VudCAvIHVua25vd24mcXVvdDsg4oCUIHZpc2liaWxpdHkgZ2FwOyBwcm9ncmFtbWUgY2Fubm90IGFjY291bnQgZm9yCiAqICAgICAgICB0aGlzIHBhdGllbnQncyBkb3duc3RyZWFtIGNhcmUKICoKICogVGhlIE51bWVyYXRvciBjb3VudHMgKDEpICsgKDIpIOKAlCBwYXRpZW50cyB3aG8gcmVhY2hlZCBjYXNjYWRlICpyZXNvbHV0aW9uKi4KICogVGhlIE51bWVyYXRvciBFeGNsdXNpb24gY291bnRzICgyKSBhbG9uZSwgc3VyZmFjaW5nIHRoZSBMVEZVIHN1Yi1yYXRlLgogKiBQYXRpZW50cyBpbiBzdGF0ZSAoMykgYXJlIGNvcnJlY3RseSBleGNsdWRlZCBmcm9tIHRoZSBudW1lcmF0b3IgZW50aXJlbHksCiAqIGFjY3VyYXRlbHkgcmVmbGVjdGluZyBvdXIgaWdub3JhbmNlIG9mIHRoZWlyIHN0YXRlIHJhdGhlciB0aGFuIGNvbmZsYXRpbmcKICogdGhlbSB3aXRoIHBhdGllbnRzIHdobyByZWNlaXZlZCB6ZXJvIGZvbGxvdy11cC4KICoKICogV2l0aG91dCB0aGUgTm90RG9uZSBwYXR0ZXJuLCBhIHZhbmlsbGEgY2FzY2FkZSBtZWFzdXJlIGNhbiBvbmx5IGNvbXB1dGUKICogICAmcXVvdDslIG9mIEhQVisgd2l0aCBjeXRvbG9neSZxdW90OyA9IHN0YXRlICgxKSAvIChzdGF0ZXMgKDEpICsgKDIpICsgKDMpIGNvbWJpbmVkKQogKiB3aGljaCBjb25mbGF0ZXMgZG9jdW1lbnRlZCBMVEZVIHdpdGggYWJzZW50IHJlY29yZHMgYW5kIGdpdmVzIHByb2dyYW1tZQogKiBtYW5hZ2VycyBhIGZhbHNlIHNlbnNlIG9mIGNlcnRhaW50eS4KICoKICogTU9USVZBVElPTiAoY29uY3JldGUgbnVtYmVycyk6CiAqIFRoZSBBcHJpbCAyMDI2IEtoYW4tVXVsIEhQVi1ETkEgcGlsb3QgaW4gTW9uZ29saWEgaWRlbnRpZmllZCAzNzEgSFBWKyB3b21lbi4KICogMTg0IHJlY2VpdmVkIGZvbGxvdy11cCBjeXRvbG9neTsgMTg3IHdlcmUgbG9zdCB0byBmb2xsb3ctdXA7IDAgd2VyZSB1bmtub3duCiAqICh0aGUgcGlsb3QgdHJhY2tlZCBldmVyeW9uZSkuIFVuZGVyIHRoaXMgbWVhc3VyZSB3aXRoIHRoZSBOb3REb25lIHBhdHRlcm4KICogYXBwbGllZDoKICogICAtIERlbm9taW5hdG9yID0gMzcxIChhbGwgSFBWKykKICogICAtIE51bWVyYXRvciA9IDM3MSAoYWxsIHJlYWNoZWQgcmVzb2x1dGlvbjogMTg0IGN5dG9sb2d5ICsgMTg3IExURlUpCiAqICAgLSBOdW1lcmF0b3IgRXhjbHVzaW9uID0gMTg3ICh0aGUgTFRGVSBzdWItcmF0ZSkKICogICAtIENhc2NhZGUgcmVzb2x1dGlvbiAlID0gMTAwJSwgd2l0aCA1MCUgTFRGVSBzdWItcmF0ZQogKgogKiBDb21wYXJlIHRvIGEgdmFuaWxsYSBtZWFzdXJlIChubyBOb3REb25lIHByb2ZpbGUpOiAxODQvMzcxID0gNDkuNiUgYW5kCiAqIHRoZSAxODcgTFRGVSB3b21lbiBhcmUgaW52aXNpYmxlLiBUaGUgbWV0aG9kb2xvZ3kgaW1wcm92ZW1lbnQgaXMgdGhlCiAqIGRpZmZlcmVuY2UgYmV0d2VlbiAmcXVvdDt3ZSBrbm93IHdlIGhhdmUgYSA1MCUgTFRGVSBwcm9ibGVtJnF1b3Q7IGFuZCAmcXVvdDt3ZSBoYXZlIGEKICogNDkuNiUgZm9sbG93LXVwIHJhdGUmcXVvdDsg4oCUIHNhbWUgZGF0YSwgZGlmZmVyZW50IHZpc2liaWxpdHkuCiAqCiAqIFBMQUNFSE9MREVSIFBBVFRFUk46CiAqIEFzIHdpdGggdGhlIFBoYXNlIDIvNSBlbGlnaWJpbGl0eSBDUUwsIHRoaXMgaW1wbGVtZW50YXRpb24gdXNlcyBCb29sZWFuCiAqIHBhcmFtZXRlcnMgYXMgc3RhbmQtaW5zIGZvciBGSElSIHF1ZXJpZXMuIFJlYWwgaW1wbGVtZW50YXRpb24gd2lsbCByZXBsYWNlCiAqIHRoZXNlIHdpdGggW09ic2VydmF0aW9uXSAvIFtQcm9jZWR1cmVdIC8gW1NlcnZpY2VSZXF1ZXN0XSBxdWVyaWVzIHZpYSB0aGUKICogc2hhcmVkIENYQ0FFbGVtZW50cyBsYXllciB3aGVuIGF1dGhvcmVkLiBUaGUgTnVtZXJhdG9yL0Rlbm9taW5hdG9yCiAqIHN0cnVjdHVyZSBpcyBpZGVudGljYWwgcmVnYXJkbGVzcy4KICovCgpsaWJyYXJ5IENYQ0FJTkQwMkNhc2NhZGVDb21wbGV0aW9uTG9naWMgdmVyc2lvbiAnMC4wLjEnPC9hOnM+CiAgICAgIDwvYTpzPgogICA8L2Fubm90YXRpb24+CiAgIDxpZGVudGlmaWVyIGlkPSJDWENBSU5EMDJDYXNjYWRlQ29tcGxldGlvbkxvZ2ljIiBzeXN0ZW09Imh0dHA6Ly9zbWFydC53aG8uaW50L2N4Y2EiIHZlcnNpb249IjAuMC4xIi8+CiAgIDxzY2hlbWFJZGVudGlmaWVyIGlkPSJ1cm46aGw3LW9yZzplbG0iIHZlcnNpb249InIxIi8+CiAgIDx1c2luZ3M+CiAgICAgIDxkZWYgbG9jYWxJZD0iMSIgbG9jYWxJZGVudGlmaWVyPSJTeXN0ZW0iIHVyaT0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB2ZXJzaW9uPSIxLjAuMCIvPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIwNiIgbG9jYXRvcj0iNTc6MS01NzoyNiIgbG9jYWxJZGVudGlmaWVyPSJGSElSIiB1cmk9Imh0dHA6Ly9obDcub3JnL2ZoaXIiIHZlcnNpb249IjQuMC4xIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMjA2Ij4KICAgICAgICAgICAgICAgPGE6cz51c2luZyA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5GSElSPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICc0LjAuMSc8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgIDwvdXNpbmdzPgogICA8aW5jbHVkZXM+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjA4IiBsb2NhdG9yPSI1OToxLTU5OjM1IiBsb2NhbElkZW50aWZpZXI9IkZISVJIZWxwZXJzIiBwYXRoPSJodHRwOi8vaGw3Lm9yZy9maGlyL0ZISVJIZWxwZXJzIiB2ZXJzaW9uPSI0LjAuMSI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjIwOCI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5GSElSSGVscGVyczwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gdmVyc2lvbiAnNC4wLjEnPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICA8L2luY2x1ZGVzPgogICA8cGFyYW1ldGVycz4KICAgICAgPGRlZiBsb2NhbElkPSIyMTAiIGxvY2F0b3I9IjYxOjEtNjE6ODgiIG5hbWU9Ik1lYXN1cmVtZW50IFBlcmlvZCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjIxMCI+CiAgICAgICAgICAgICAgIDxhOnM+cGFyYW1ldGVyICZxdW90O01lYXN1cmVtZW50IFBlcmlvZCZxdW90OyA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyMjIiPgogICAgICAgICAgICAgICAgICA8YTpzPkludGVydmFsJmx0OzwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjIyMyI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+RGF0ZTwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4+PC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiBkZWZhdWx0IDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjIyMSI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjE1Ij5JbnRlcnZhbFtAMjAyNi0wMS0wMSwgQDIwMjYtMTItMzFdPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZGVmYXVsdCBsb2NhbElkPSIyMjEiIGxvY2F0b3I9IjYxOjU1LTYxOjg4IiBsb3dDbG9zZWQ9InRydWUiIGhpZ2hDbG9zZWQ9InRydWUiIHhzaTp0eXBlPSJJbnRlcnZhbCI+CiAgICAgICAgICAgIDxsb3cgbG9jYWxJZD0iMjE1IiBsb2NhdG9yPSI2MTo2NC02MTo3NCIgeHNpOnR5cGU9IkRhdGUiPgogICAgICAgICAgICAgICA8eWVhciBsb2NhbElkPSIyMTIiIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMjAyNiIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPG1vbnRoIGxvY2FsSWQ9IjIxMyIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8ZGF5IGxvY2FsSWQ9IjIxNCIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L2xvdz4KICAgICAgICAgICAgPGhpZ2ggbG9jYWxJZD0iMjIwIiBsb2NhdG9yPSI2MTo3Ny02MTo4NyIgeHNpOnR5cGU9IkRhdGUiPgogICAgICAgICAgICAgICA8eWVhciBsb2NhbElkPSIyMTciIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMjAyNiIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPG1vbnRoIGxvY2FsSWQ9IjIxOCIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxMiIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPGRheSBsb2NhbElkPSIyMTkiIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMzEiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgIDwvaGlnaD4KICAgICAgICAgPC9kZWZhdWx0PgogICAgICAgICA8cGFyYW1ldGVyVHlwZVNwZWNpZmllciBsb2NhbElkPSIyMjIiIGxvY2F0b3I9IjYxOjMyLTYxOjQ1IiB4c2k6dHlwZT0iSW50ZXJ2YWxUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgPHBvaW50VHlwZSBsb2NhbElkPSIyMjMiIGxvY2F0b3I9IjYxOjQxLTYxOjQ0IiBuYW1lPSJ0OkRhdGUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgPC9wYXJhbWV0ZXJUeXBlU3BlY2lmaWVyPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyMjUiIGxvY2F0b3I9IjY2OjEtNjY6NjMiIG5hbWU9IlBhdGllbnRIYXNIUFZQb3NpdGl2ZUluUGVyaW9kIiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMjI1Ij4KICAgICAgICAgICAgICAgPGE6cz4vLyBQbGFjZWhvbGRlcnMg4oCUIHRvIGJlIHJlcGxhY2VkIHdpdGggRkhJUiBxdWVyaWVzIHZpYSB0aGUgc2hhcmVkIENYQ0FFbGVtZW50cwovLyBsYXllciBpbiBhIGZ1dHVyZSBpdGVyYXRpb24uIEVhY2ggcGFyYW1ldGVyIHJlcHJlc2VudHMgYSBwZXItcGF0aWVudCBmYWN0Ci8vIGRlcml2ZWQgZnJvbSB1bmRlcmx5aW5nIHJlc291cmNlcy4KcGFyYW1ldGVyICZxdW90O1BhdGllbnRIYXNIUFZQb3NpdGl2ZUluUGVyaW9kJnF1b3Q7IDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjIyNyI+CiAgICAgICAgICAgICAgICAgIDxhOnM+Qm9vbGVhbjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyMjYiPiBkZWZhdWx0IGZhbHNlPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxkZWZhdWx0IGxvY2FsSWQ9IjIyNiIgbG9jYXRvcj0iNjY6NTktNjY6NjMiIHZhbHVlVHlwZT0idDpCb29sZWFuIiB2YWx1ZT0iZmFsc2UiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgIDxwYXJhbWV0ZXJUeXBlU3BlY2lmaWVyIGxvY2FsSWQ9IjIyNyIgbG9jYXRvcj0iNjY6NDMtNjY6NDkiIG5hbWU9InQ6Qm9vbGVhbiIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyMjkiIGxvY2F0b3I9IjY3OjEtNjc6NjkiIG5hbWU9IlBhdGllbnRIYXNDeXRvbG9neUNvbXBsZXRlZEluUGVyaW9kIiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMjI5Ij4KICAgICAgICAgICAgICAgPGE6cz5wYXJhbWV0ZXIgJnF1b3Q7UGF0aWVudEhhc0N5dG9sb2d5Q29tcGxldGVkSW5QZXJpb2QmcXVvdDsgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMjMxIj4KICAgICAgICAgICAgICAgICAgPGE6cz5Cb29sZWFuPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjIzMCI+IGRlZmF1bHQgZmFsc2U8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGRlZmF1bHQgbG9jYWxJZD0iMjMwIiBsb2NhdG9yPSI2Nzo2NS02Nzo2OSIgdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJmYWxzZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgPHBhcmFtZXRlclR5cGVTcGVjaWZpZXIgbG9jYWxJZD0iMjMxIiBsb2NhdG9yPSI2Nzo0OS02Nzo1NSIgbmFtZT0idDpCb29sZWFuIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIzMyIgbG9jYXRvcj0iNjg6MS02ODo3NSIgbmFtZT0iUGF0aWVudEhhc0N5dG9sb2d5Tm90RG9uZVJlY29yZGVkSW5QZXJpb2QiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyMzMiPgogICAgICAgICAgICAgICA8YTpzPnBhcmFtZXRlciAmcXVvdDtQYXRpZW50SGFzQ3l0b2xvZ3lOb3REb25lUmVjb3JkZWRJblBlcmlvZCZxdW90OyA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyMzUiPgogICAgICAgICAgICAgICAgICA8YTpzPkJvb2xlYW48L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMjM0Ij4gZGVmYXVsdCBmYWxzZTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZGVmYXVsdCBsb2NhbElkPSIyMzQiIGxvY2F0b3I9IjY4OjcxLTY4Ojc1IiB2YWx1ZVR5cGU9InQ6Qm9vbGVhbiIgdmFsdWU9ImZhbHNlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICA8cGFyYW1ldGVyVHlwZVNwZWNpZmllciBsb2NhbElkPSIyMzUiIGxvY2F0b3I9IjY4OjU1LTY4OjYxIiBuYW1lPSJ0OkJvb2xlYW4iIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgPC9kZWY+CiAgIDwvcGFyYW1ldGVycz4KICAgPGNvbnRleHRzPgogICAgICA8ZGVmIGxvY2FsSWQ9IjI0MCIgbG9jYXRvcj0iNzA6MS03MDoxNSIgbmFtZT0iUGF0aWVudCIvPgogICA8L2NvbnRleHRzPgogICA8c3RhdGVtZW50cz4KICAgICAgPGRlZiBsb2NhbElkPSIyMzgiIGxvY2F0b3I9IjcwOjEtNzA6MTUiIG5hbWU9IlBhdGllbnQiIGNvbnRleHQ9IlBhdGllbnQiPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIyMzkiIHhzaTp0eXBlPSJTaW5nbGV0b25Gcm9tIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjM3IiBsb2NhdG9yPSI3MDoxLTcwOjE1IiBkYXRhVHlwZT0iZmhpcjpQYXRpZW50IiB0ZW1wbGF0ZUlkPSJodHRwOi8vaGw3Lm9yZy9maGlyL1N0cnVjdHVyZURlZmluaXRpb24vUGF0aWVudCIgeHNpOnR5cGU9IlJldHJpZXZlIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjQzIiBsb2NhdG9yPSI3NzoxLTc4OjYiIG5hbWU9IkluaXRpYWwgUG9wdWxhdGlvbiIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTp0IG5hbWU9ImluaXRpYWxQb3B1bGF0aW9uIiB2YWx1ZT0iYXMgZGVmaW5lZCBieSBNZW1iZXIgU3RhdGUgKHBsYWNlaG9sZGVyIOKAlCB0cnVlKSYjeGE7UmVhbCBpbXBsZW1lbnRhdGlvbjogd29tZW4gaW4gdGFyZ2V0IGFnZSByYW5nZSBhbGl2ZSBhdCBzdGFydCBvZiBwZXJpb2QmI3hhO2luIHRoZSBqdXJpc2RpY3Rpb24uIi8+CiAgICAgICAgICAgIDxhOnMgcj0iMjQzIj4KICAgICAgICAgICAgICAgPGE6cyByPSIyNDQiPi8qCiAqIEBpbml0aWFsUG9wdWxhdGlvbjogYXMgZGVmaW5lZCBieSBNZW1iZXIgU3RhdGUgKHBsYWNlaG9sZGVyIOKAlCB0cnVlKQogKiAgIFJlYWwgaW1wbGVtZW50YXRpb246IHdvbWVuIGluIHRhcmdldCBhZ2UgcmFuZ2UgYWxpdmUgYXQgc3RhcnQgb2YgcGVyaW9kCiAqICAgaW4gdGhlIGp1cmlzZGljdGlvbi4KICovCmRlZmluZSAmcXVvdDtJbml0aWFsIFBvcHVsYXRpb24mcXVvdDs6CiAgdHJ1ZTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIyNDQiIGxvY2F0b3I9Ijc4OjMtNzg6NiIgdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJ0cnVlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyNDciIGxvY2F0b3I9Ijg0OjEtODU6MzMiIG5hbWU9IkRlbm9taW5hdG9yIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnQgbmFtZT0iZGVub21pbmF0b3IiIHZhbHVlPSJQYXRpZW50cyB3aXRoIGFuIEhQVisgcmVzdWx0IGR1cmluZyB0aGUgbWVhc3VyZW1lbnQgcGVyaW9kLiYjeGE7VGhlc2UgYXJlIHRoZSBwYXRpZW50cyB3aG9zZSBjYXNjYWRlIHdlIHdhbnQgdG8gdHJhY2suIi8+CiAgICAgICAgICAgIDxhOnMgcj0iMjQ3Ij4KICAgICAgICAgICAgICAgPGE6cz4vKgogKiBAZGVub21pbmF0b3I6IFBhdGllbnRzIHdpdGggYW4gSFBWKyByZXN1bHQgZHVyaW5nIHRoZSBtZWFzdXJlbWVudCBwZXJpb2QuCiAqICAgVGhlc2UgYXJlIHRoZSBwYXRpZW50cyB3aG9zZSBjYXNjYWRlIHdlIHdhbnQgdG8gdHJhY2suCiAqLwpkZWZpbmUgJnF1b3Q7RGVub21pbmF0b3ImcXVvdDs6CiAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMjQ4Ij4KICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtQYXRpZW50SGFzSFBWUG9zaXRpdmVJblBlcmlvZCZxdW90OzwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMjQ4IiBsb2NhdG9yPSI4NTozLTg1OjMzIiBuYW1lPSJQYXRpZW50SGFzSFBWUG9zaXRpdmVJblBlcmlvZCIgeHNpOnR5cGU9IlBhcmFtZXRlclJlZiIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyNTEiIGxvY2F0b3I9IjkxOjEtOTQ6NTMiIG5hbWU9Ik51bWVyYXRvciIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTp0IG5hbWU9Im51bWVyYXRvciIgdmFsdWU9IkhQVisgcGF0aWVudHMgd2hvIHJlYWNoZWQgY2FzY2FkZSAqcmVzb2x1dGlvbiog4oCUIGVpdGhlciBieSYjeGE7Y29tcGxldGluZyBjeXRvbG9neSBPUiBieSBoYXZpbmcgYSBkb2N1bWVudGVkIG5vbi1vY2N1cnJlbmNlIHJlY29yZC4iLz4KICAgICAgICAgICAgPGE6cyByPSIyNTEiPgogICAgICAgICAgICAgICA8YTpzPi8qCiAqIEBudW1lcmF0b3I6IEhQVisgcGF0aWVudHMgd2hvIHJlYWNoZWQgY2FzY2FkZSAqcmVzb2x1dGlvbiog4oCUIGVpdGhlciBieQogKiAgIGNvbXBsZXRpbmcgY3l0b2xvZ3kgT1IgYnkgaGF2aW5nIGEgZG9jdW1lbnRlZCBub24tb2NjdXJyZW5jZSByZWNvcmQuCiAqLwpkZWZpbmUgJnF1b3Q7TnVtZXJhdG9yJnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjI1MiI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjUzIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtQYXRpZW50SGFzSFBWUG9zaXRpdmVJblBlcmlvZCZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4KICAgIGFuZCA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNTQiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPig8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNTQiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI1NSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7UGF0aWVudEhhc0N5dG9sb2d5Q29tcGxldGVkSW5QZXJpb2QmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICAgIG9yIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI1NiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7UGF0aWVudEhhc0N5dG9sb2d5Tm90RG9uZVJlY29yZGVkSW5QZXJpb2QmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPik8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIyNTIiIGxvY2F0b3I9IjkyOjMtOTQ6NTMiIHhzaTp0eXBlPSJBbmQiPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyNTMiIGxvY2F0b3I9IjkyOjMtOTI6MzMiIG5hbWU9IlBhdGllbnRIYXNIUFZQb3NpdGl2ZUluUGVyaW9kIiB4c2k6dHlwZT0iUGFyYW1ldGVyUmVmIi8+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI1NCIgbG9jYXRvcj0iOTM6OS05NDo1MyIgeHNpOnR5cGU9Ik9yIj4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjU1IiBsb2NhdG9yPSI5MzoxMC05Mzo0NiIgbmFtZT0iUGF0aWVudEhhc0N5dG9sb2d5Q29tcGxldGVkSW5QZXJpb2QiIHhzaTp0eXBlPSJQYXJhbWV0ZXJSZWYiLz4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjU2IiBsb2NhdG9yPSI5NDoxMC05NDo1MiIgbmFtZT0iUGF0aWVudEhhc0N5dG9sb2d5Tm90RG9uZVJlY29yZGVkSW5QZXJpb2QiIHhzaTp0eXBlPSJQYXJhbWV0ZXJSZWYiLz4KICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjI1OSIgbG9jYXRvcj0iMTA5OjEtMTEyOjQ5IiBuYW1lPSJOdW1lcmF0b3IgRXhjbHVzaW9uIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnQgbmFtZT0ibnVtZXJhdG9yRXhjbHVzaW9uIiB2YWx1ZT0iSFBWKyBwYXRpZW50cyB3aG9zZSByZXNvbHV0aW9uIHdhcyB2aWEgZG9jdW1lbnRlZCYjeGE7bm9uLW9jY3VycmVuY2UgKExURlUpIHJhdGhlciB0aGFuIGFjdHVhbCBjeXRvbG9neSBjb21wbGV0aW9uLiYjeGE7JiN4YTtGSElSIE1lYXN1cmUgc2VtYW50aWNzOiBudW1lcmF0b3ItZXhjbHVzaW9uIGlzIHN1YnRyYWN0ZWQgZnJvbSB0aGUmI3hhO251bWVyYXRvciB3aGVuIGNvbXB1dGluZyB0aGUgcHJvcG9ydGlvbi4gVGhpcyBsZXRzIGEgc2luZ2xlIE1lYXN1cmUmI3hhO3Jlc291cmNlIGV4cG9zZSB0aHJlZSBjb21wdXRhYmxlIHZpZXdzOiYjeGE7LSBDYXNjYWRlIHJlc29sdXRpb24gcmF0ZTogTnVtZXJhdG9yIC8gRGVub21pbmF0b3ImI3hhOy0gVHJ1ZSBmb2xsb3ctdXAgcmF0ZTogICAgIChOdW1lcmF0b3Ig4oiSIE51bWVyYXRvckV4Y2x1c2lvbikgLyBEZW5vbWluYXRvciYjeGE7LSBEb2N1bWVudGVkIExURlUgcmF0ZTogICAgTnVtZXJhdG9yRXhjbHVzaW9uIC8gRGVub21pbmF0b3ImI3hhO1RvZ2V0aGVyIHdpdGggKERlbm9taW5hdG9yIOKIkiBOdW1lcmF0b3IpID0gdGhlIGFic2VudCAvIHVua25vd24gY291bnQsJiN4YTt0aGlzIGdpdmVzIHByb2dyYW1tZSBtYW5hZ2VycyBhIGZvdXItd2F5IHBhcnRpdGlvbiBvZiB0aGUgSFBWKyBjb2hvcnQuIi8+CiAgICAgICAgICAgIDxhOnMgcj0iMjU5Ij4KICAgICAgICAgICAgICAgPGE6cz4vKgogKiBAbnVtZXJhdG9yRXhjbHVzaW9uOiBIUFYrIHBhdGllbnRzIHdob3NlIHJlc29sdXRpb24gd2FzIHZpYSBkb2N1bWVudGVkCiAqICAgbm9uLW9jY3VycmVuY2UgKExURlUpIHJhdGhlciB0aGFuIGFjdHVhbCBjeXRvbG9neSBjb21wbGV0aW9uLgogKgogKiAgIEZISVIgTWVhc3VyZSBzZW1hbnRpY3M6IG51bWVyYXRvci1leGNsdXNpb24gaXMgc3VidHJhY3RlZCBmcm9tIHRoZQogKiAgIG51bWVyYXRvciB3aGVuIGNvbXB1dGluZyB0aGUgcHJvcG9ydGlvbi4gVGhpcyBsZXRzIGEgc2luZ2xlIE1lYXN1cmUKICogICByZXNvdXJjZSBleHBvc2UgdGhyZWUgY29tcHV0YWJsZSB2aWV3czoKICogICAgIC0gQ2FzY2FkZSByZXNvbHV0aW9uIHJhdGU6IE51bWVyYXRvciAvIERlbm9taW5hdG9yCiAqICAgICAtIFRydWUgZm9sbG93LXVwIHJhdGU6ICAgICAoTnVtZXJhdG9yIOKIkiBOdW1lcmF0b3JFeGNsdXNpb24pIC8gRGVub21pbmF0b3IKICogICAgIC0gRG9jdW1lbnRlZCBMVEZVIHJhdGU6ICAgIE51bWVyYXRvckV4Y2x1c2lvbiAvIERlbm9taW5hdG9yCiAqICAgVG9nZXRoZXIgd2l0aCAoRGVub21pbmF0b3Ig4oiSIE51bWVyYXRvcikgPSB0aGUgYWJzZW50IC8gdW5rbm93biBjb3VudCwKICogICB0aGlzIGdpdmVzIHByb2dyYW1tZSBtYW5hZ2VycyBhIGZvdXItd2F5IHBhcnRpdGlvbiBvZiB0aGUgSFBWKyBjb2hvcnQuCiAqLwpkZWZpbmUgJnF1b3Q7TnVtZXJhdG9yIEV4Y2x1c2lvbiZxdW90OzoKICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyNjAiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjI2MSI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjYyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtQYXRpZW50SGFzSFBWUG9zaXRpdmVJblBlcmlvZCZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgIGFuZCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNjMiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O1BhdGllbnRIYXNDeXRvbG9neU5vdERvbmVSZWNvcmRlZEluUGVyaW9kJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4KICAgIGFuZCA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNjQiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPm5vdCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNjUiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O1BhdGllbnRIYXNDeXRvbG9neUNvbXBsZXRlZEluUGVyaW9kJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjI2MCIgbG9jYXRvcj0iMTEwOjMtMTEyOjQ5IiB4c2k6dHlwZT0iQW5kIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjYxIiBsb2NhdG9yPSIxMTA6My0xMTE6NTEiIHhzaTp0eXBlPSJBbmQiPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyNjIiIGxvY2F0b3I9IjExMDozLTExMDozMyIgbmFtZT0iUGF0aWVudEhhc0hQVlBvc2l0aXZlSW5QZXJpb2QiIHhzaTp0eXBlPSJQYXJhbWV0ZXJSZWYiLz4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjYzIiBsb2NhdG9yPSIxMTE6OS0xMTE6NTEiIG5hbWU9IlBhdGllbnRIYXNDeXRvbG9neU5vdERvbmVSZWNvcmRlZEluUGVyaW9kIiB4c2k6dHlwZT0iUGFyYW1ldGVyUmVmIi8+CiAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjY0IiBsb2NhdG9yPSIxMTI6OS0xMTI6NDkiIHhzaTp0eXBlPSJOb3QiPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyNjUiIGxvY2F0b3I9IjExMjoxMy0xMTI6NDkiIG5hbWU9IlBhdGllbnRIYXNDeXRvbG9neUNvbXBsZXRlZEluUGVyaW9kIiB4c2k6dHlwZT0iUGFyYW1ldGVyUmVmIi8+CiAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgPC9zdGF0ZW1lbnRzPgo8L2xpYnJhcnk+Cg=="/>
  </content>
</Library>