WHO SMART Guidelines - HIV
0.3.0 - ci-build

WHO SMART Guidelines - HIV - Local Development build (v0.3.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

: HIV.IND.96 Logic - XML Representation

Draft as of 2024-10-30

Raw xml | Download


<Library xmlns="http://hl7.org/fhir">
  <id value="HIVIND96Logic"/>
  <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="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: Library HIVIND96Logic</b></p><a name="HIVIND96Logic"> </a><a name="hcHIVIND96Logic"> </a><a name="HIVIND96Logic-en-US"> </a><h2>Related Artifacts</h2><table class="grid"><tr><td>Depends On</td><td>Library HIC</td><td><code>http://smart.who.int/hiv/Library/HIVCommon|0.0.1</code></td></tr><tr><td>Depends On</td><td>Library WCom</td><td><a href="Library-WHOCommon.html">WHOCommon</a></td></tr></table><h2>Parameters</h2><table class="grid"><tr><td>Measurement Period</td><td>in</td><td>0</td><td>1</td><td>Period</td></tr><tr><td>Patient</td><td>out</td><td>0</td><td>1</td><td>Patient</td></tr><tr><td>Initial Population</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Numerator</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Numerator Exclusions</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Denominator</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr></table><h2>Contents</h2><p><code>text/cql</code></p><pre><code class="language-sql">/**
 * Library: HIV.IND.96 Logic
 * Ref No: CCA.4
 * Short Name: Cervical cancer survival
 *
 * Definition: Crude probability of surviving 1 year after a diagnosis of cervical cancer
 *
 * Numerator: Number of women living with HIV still alive 12 months after receiving a diagnosis of invasive cervical cancer
 * Numerator Calculation: COUNT of women with &quot;HIV status&quot;='HIV-positive' AND &quot;Cervical cancer diagnosis&quot;='Invasive cervical cancer' for a &quot;Date of diagnosis of cervical precancer lesions or invasive cervical cancer&quot; in previous 12 month reporting period
 * Numerator Exclusions: &quot;Date of death&quot; less than 12 months after &quot;Date of diagnosis of cervical precancer lesions or invasive cervical cancer&quot; for &quot;Cervical cancer diagnosis&quot;='Invasive cervical cancer'
 *
 * Denominator: Number of women living with HIV who received a diagnosis of invasive cervical cancer within a 12-month cohort observation period
 * Denominator Calculation: COUNT of women with &quot;HIV status&quot;='HIV-positive' AND &quot;Cervical cancer diagnosis&quot;='Invasive cervical cancer' for a &quot;Date of diagnosis of cervical precancer lesions or invasive cervical cancer&quot; in previous 12 month reporting period
 * Denominator Exclusions: 
 *
 * Disaggregations:
 * • Age (15–19, 20–24, 25–29, 30–49, 50+ years) 
 *  • Cervical cancer stage at diagnosis (0, I, II, III, IV) 
 *  • Cities and other administrative areas of epidemiologic importance
 *
 * Disaggregation Elements: Age | Cervical cancer stage at diagnosis
 *
 * Numerator and Denominator Elements:
 * Cervical cancer diagnosis 
 *  Date of diagnosis of cervical precancer lesions or invasive cervical cancer 
 *  HIV status
 *
 * Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022
 * 
 * Data Concepts:
 * HIV.A.DE17: Age | Calculated age (number of years) of the client based on date of birth
 * HIV.B.DE115: HIV status | HIV status reported after applying the national HIV testing algorithm. No single HIV test can provide an HIV-positive diagnosis.
 * HIV.B.DE116: HIV-positive | Client is HIV-positive
 * HIV.B.DE117: HIV-negative | Client is HIV-negative
 * HIV.B.DE118: Unknown | Client has unknown HIV status
 * HIV.D.DE705: Date of diagnosis of cervical precancer lesions or invasive cervical cancer | Date of diagnosis of cervical precancer lesions or invasive cervical cancer
 * HIV.D.DE709: Cervical cancer diagnosis | Type of cervical cancer diagnosis
 * HIV.D.DE710: Cervical precancer lesions | Client is diagnosed with cervical precancer lesions
 * HIV.D.DE711: Invasive cervical cancer | Client is diagnosed with invasive cervical cancer disease
 * HIV.D.DE712: Cervical cancer stage at diagnosis | Cervical cancer stage at diagnosis of cervical cancer
 * HIV.D.DE713: Stage 0 | Stage 0 cervical cancer at diagnosis of cervical cancer
 * HIV.D.DE714: Stage I | Stage I cervical cancer at diagnosis of cervical cancer
 * HIV.D.DE715: Stage II | Stage II cervical cancer at diagnosis of cervical cancer
 * HIV.D.DE716: Stage III | Stage III cervical cancer at diagnosis of cervical cancer
 * HIV.D.DE717: Stage IV | Stage IV cervical cancer at diagnosis of cervical cancer
 *
 * Additional Context
 * - what it measures: This indicator measures the effectiveness of cervical cancer treatment for women diagnosed with cervical cancer.
 * - rationale: • Surveillance of cervical cancer survival among women living with HIV is essential in monitoring the access and effectiveness of treatment and follow-up to support the needs of cancer survivors. Adequate and complete follow-up is a prerequisite to conducting a survival study. | • It is calculated by assessing the percentage of women living with HIV who were diagnosed with invasive cervical cancer who were still alive 12 months after their cervical cancer diagnosis. It excludes those who were not followed for the 12-month period. In places with good retention and follow-up, 5-year survival can also be calculated, including only those individuals under observation with complete follow-up five years after their diagnosis of cervical cancer.
 * - method: This indicator uses a cohort analysis to measure the proportion of women living with HIV who are still alive 12 months after their diagnosis with cervical cancer. |  | The source of data is Individual-level data obtained from programme records.
 * 
 * Suggested Scoring Method: proportion | http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm
 */

library HIVIND96Logic

// Included Libraries
using FHIR version '4.0.1'

include HIVCommon version '0.0.1' called HIC
include FHIRHelpers version '4.0.1'

include WHOCommon called WCom

// Indicator Definition
parameter &quot;Measurement Period&quot; Interval&lt;Date&gt; default Interval[@2023-01-01, @2023-01-30]

context Patient
/* Populations */

/*
 *Initial Population
 */

define &quot;Initial Population&quot;:
  true

/**
 * Numerator
 * 
 * Definition: Number of women living with HIV still alive 12 months after receiving a diagnosis of invasive cervical cancer
 * Calculation: COUNT of women with &quot;HIV status&quot;='HIV-positive' AND &quot;Cervical cancer diagnosis&quot;='Invasive cervical cancer' for a &quot;Date of diagnosis of cervical precancer lesions or invasive cervical cancer&quot; in previous 12 month reporting period
 */

define &quot;Numerator&quot;:
  true

/**
 * Numerator Exclusions
 *
 * Calculation: &quot;Date of death&quot; less than 12 months after &quot;Date of diagnosis of cervical precancer lesions or invasive cervical cancer&quot; for &quot;Cervical cancer diagnosis&quot;='Invasive cervical cancer'
 */
    
define &quot;Numerator Exclusions&quot;:
  false

/**
 * Denominator
 *
 * Definition: Number of women living with HIV who received a diagnosis of invasive cervical cancer within a 12-month cohort observation period
 * Calculation: COUNT of women with &quot;HIV status&quot;='HIV-positive' AND &quot;Cervical cancer diagnosis&quot;='Invasive cervical cancer' for a &quot;Date of diagnosis of cervical precancer lesions or invasive cervical cancer&quot; in previous 12 month reporting period
 */

define &quot;Denominator&quot;:
  true
    

/* end Populations */

</code></pre><p><code>Content not shown - (</code><code>application/elm+xml</code>, size = 12Kb )</p></div>
  </text>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability">
    <valueCode value="computable"/>
  </extension>
  <url value="http://smart.who.int/hiv/Library/HIVIND96Logic"/>
  <version value="0.3.0"/>
  <name value="HIVIND96Logic"/>
  <title value="HIV.IND.96 Logic"/>
  <status value="draft"/>
  <experimental value="true"/>
  <type>
    <coding>
      <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
      <code value="logic-library"/>
    </coding>
  </type>
  <date value="2024-10-30T19:04:31+00:00"/>
  <publisher value="WHO"/>
  <contact>
    <name value="WHO"/>
    <telecom>
      <system value="url"/>
      <value value="http://who.int"/>
    </telecom>
  </contact>
  <description
               value="Crude probability of surviving 1 year after a diagnosis of cervical cancer"/>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library HIC"/>
    <resource value="http://smart.who.int/hiv/Library/HIVCommon|0.0.1"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library WCom"/>
    <resource value="http://smart.who.int/hiv/Library/WHOCommon"/>
  </relatedArtifact>
  <parameter>
    <name value="Measurement Period"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Period"/>
  </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="Numerator"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Numerator Exclusions"/>
    <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>
  <content>
    <contentType value="text/cql"/>
    <data
          value="LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuOTYgTG9naWMKICogUmVmIE5vOiBDQ0EuNAogKiBTaG9ydCBOYW1lOiBDZXJ2aWNhbCBjYW5jZXIgc3Vydml2YWwKICoKICogRGVmaW5pdGlvbjogQ3J1ZGUgcHJvYmFiaWxpdHkgb2Ygc3Vydml2aW5nIDEgeWVhciBhZnRlciBhIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBjYW5jZXIKICoKICogTnVtZXJhdG9yOiBOdW1iZXIgb2Ygd29tZW4gbGl2aW5nIHdpdGggSElWIHN0aWxsIGFsaXZlIDEyIG1vbnRocyBhZnRlciByZWNlaXZpbmcgYSBkaWFnbm9zaXMgb2YgaW52YXNpdmUgY2VydmljYWwgY2FuY2VyCiAqIE51bWVyYXRvciBDYWxjdWxhdGlvbjogQ09VTlQgb2Ygd29tZW4gd2l0aCAiSElWIHN0YXR1cyI9J0hJVi1wb3NpdGl2ZScgQU5EICJDZXJ2aWNhbCBjYW5jZXIgZGlhZ25vc2lzIj0nSW52YXNpdmUgY2VydmljYWwgY2FuY2VyJyBmb3IgYSAiRGF0ZSBvZiBkaWFnbm9zaXMgb2YgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMgb3IgaW52YXNpdmUgY2VydmljYWwgY2FuY2VyIiBpbiBwcmV2aW91cyAxMiBtb250aCByZXBvcnRpbmcgcGVyaW9kCiAqIE51bWVyYXRvciBFeGNsdXNpb25zOiAiRGF0ZSBvZiBkZWF0aCIgbGVzcyB0aGFuIDEyIG1vbnRocyBhZnRlciAiRGF0ZSBvZiBkaWFnbm9zaXMgb2YgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMgb3IgaW52YXNpdmUgY2VydmljYWwgY2FuY2VyIiBmb3IgIkNlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMiPSdJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXInCiAqCiAqIERlbm9taW5hdG9yOiBOdW1iZXIgb2Ygd29tZW4gbGl2aW5nIHdpdGggSElWIHdobyByZWNlaXZlZCBhIGRpYWdub3NpcyBvZiBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgd2l0aGluIGEgMTItbW9udGggY29ob3J0IG9ic2VydmF0aW9uIHBlcmlvZAogKiBEZW5vbWluYXRvciBDYWxjdWxhdGlvbjogQ09VTlQgb2Ygd29tZW4gd2l0aCAiSElWIHN0YXR1cyI9J0hJVi1wb3NpdGl2ZScgQU5EICJDZXJ2aWNhbCBjYW5jZXIgZGlhZ25vc2lzIj0nSW52YXNpdmUgY2VydmljYWwgY2FuY2VyJyBmb3IgYSAiRGF0ZSBvZiBkaWFnbm9zaXMgb2YgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMgb3IgaW52YXNpdmUgY2VydmljYWwgY2FuY2VyIiBpbiBwcmV2aW91cyAxMiBtb250aCByZXBvcnRpbmcgcGVyaW9kCiAqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEaXNhZ2dyZWdhdGlvbnM6CiAqIOKAosKgQWdlICgxNeKAkzE5LCAyMOKAkzI0LCAyNeKAkzI5LCAzMOKAkzQ5LCA1MCsgeWVhcnMpIAogKiAg4oCiwqBDZXJ2aWNhbCBjYW5jZXIgc3RhZ2UgYXQgZGlhZ25vc2lzICgwLCBJLCBJSSwgSUlJLCBJVikgCiAqICDigKLCoENpdGllcyBhbmQgb3RoZXIgYWRtaW5pc3RyYXRpdmUgYXJlYXMgb2YgZXBpZGVtaW9sb2dpYyBpbXBvcnRhbmNlCiAqCiAqIERpc2FnZ3JlZ2F0aW9uIEVsZW1lbnRzOiBBZ2UgfCBDZXJ2aWNhbCBjYW5jZXIgc3RhZ2UgYXQgZGlhZ25vc2lzCiAqCiAqIE51bWVyYXRvciBhbmQgRGVub21pbmF0b3IgRWxlbWVudHM6CiAqIENlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMgCiAqICBEYXRlIG9mIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgCiAqICBISVYgc3RhdHVzCiAqCiAqIFJlZmVyZW5jZTogQ29uc29saWRhdGVkIGd1aWRlbGluZXMgb24gcGVyc29uLWNlbnRyZWQgSElWIHN0cmF0ZWdpYyBpbmZvcm1hdGlvbjogc3RyZW5ndGhlbmluZyByb3V0aW5lIGRhdGEgZm9yIGltcGFjdC4gR2VuZXZhOiBXb3JsZCBIZWFsdGggT3JnYW5pemF0aW9uOyAyMDIyCiAqIAogKiBEYXRhIENvbmNlcHRzOgogKiBISVYuQS5ERTE3OiBBZ2UgfCBDYWxjdWxhdGVkIGFnZSAobnVtYmVyIG9mIHllYXJzKSBvZiB0aGUgY2xpZW50IGJhc2VkIG9uIGRhdGUgb2YgYmlydGgKICogSElWLkIuREUxMTU6IEhJViBzdGF0dXMgfCBISVYgc3RhdHVzIHJlcG9ydGVkIGFmdGVyIGFwcGx5aW5nIHRoZSBuYXRpb25hbCBISVYgdGVzdGluZyBhbGdvcml0aG0uIE5vIHNpbmdsZSBISVYgdGVzdCBjYW4gcHJvdmlkZSBhbiBISVYtcG9zaXRpdmUgZGlhZ25vc2lzLgogKiBISVYuQi5ERTExNjogSElWLXBvc2l0aXZlIHwgQ2xpZW50IGlzIEhJVi1wb3NpdGl2ZQogKiBISVYuQi5ERTExNzogSElWLW5lZ2F0aXZlIHwgQ2xpZW50IGlzIEhJVi1uZWdhdGl2ZQogKiBISVYuQi5ERTExODogVW5rbm93biB8IENsaWVudCBoYXMgdW5rbm93biBISVYgc3RhdHVzCiAqIEhJVi5ELkRFNzA1OiBEYXRlIG9mIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgfCBEYXRlIG9mIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIKICogSElWLkQuREU3MDk6IENlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMgfCBUeXBlIG9mIGNlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMKICogSElWLkQuREU3MTA6IENlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIHwgQ2xpZW50IGlzIGRpYWdub3NlZCB3aXRoIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zCiAqIEhJVi5ELkRFNzExOiBJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgfCBDbGllbnQgaXMgZGlhZ25vc2VkIHdpdGggaW52YXNpdmUgY2VydmljYWwgY2FuY2VyIGRpc2Vhc2UKICogSElWLkQuREU3MTI6IENlcnZpY2FsIGNhbmNlciBzdGFnZSBhdCBkaWFnbm9zaXMgfCBDZXJ2aWNhbCBjYW5jZXIgc3RhZ2UgYXQgZGlhZ25vc2lzIG9mIGNlcnZpY2FsIGNhbmNlcgogKiBISVYuRC5ERTcxMzogU3RhZ2UgMCB8IFN0YWdlIDAgY2VydmljYWwgY2FuY2VyIGF0IGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBjYW5jZXIKICogSElWLkQuREU3MTQ6IFN0YWdlIEkgfCBTdGFnZSBJIGNlcnZpY2FsIGNhbmNlciBhdCBkaWFnbm9zaXMgb2YgY2VydmljYWwgY2FuY2VyCiAqIEhJVi5ELkRFNzE1OiBTdGFnZSBJSSB8IFN0YWdlIElJIGNlcnZpY2FsIGNhbmNlciBhdCBkaWFnbm9zaXMgb2YgY2VydmljYWwgY2FuY2VyCiAqIEhJVi5ELkRFNzE2OiBTdGFnZSBJSUkgfCBTdGFnZSBJSUkgY2VydmljYWwgY2FuY2VyIGF0IGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBjYW5jZXIKICogSElWLkQuREU3MTc6IFN0YWdlIElWIHwgU3RhZ2UgSVYgY2VydmljYWwgY2FuY2VyIGF0IGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBjYW5jZXIKICoKICogQWRkaXRpb25hbCBDb250ZXh0CiAqIC0gd2hhdCBpdCBtZWFzdXJlczogVGhpcyBpbmRpY2F0b3IgbWVhc3VyZXMgdGhlIGVmZmVjdGl2ZW5lc3Mgb2YgY2VydmljYWwgY2FuY2VyIHRyZWF0bWVudCBmb3Igd29tZW4gZGlhZ25vc2VkIHdpdGggY2VydmljYWwgY2FuY2VyLgogKiAtIHJhdGlvbmFsZTog4oCiwqBTdXJ2ZWlsbGFuY2Ugb2YgY2VydmljYWwgY2FuY2VyIHN1cnZpdmFsIGFtb25nIHdvbWVuIGxpdmluZyB3aXRoIEhJViBpcyBlc3NlbnRpYWwgaW4gbW9uaXRvcmluZyB0aGUgYWNjZXNzIGFuZCBlZmZlY3RpdmVuZXNzIG9mIHRyZWF0bWVudCBhbmQgZm9sbG93LXVwIHRvIHN1cHBvcnQgdGhlIG5lZWRzIG9mIGNhbmNlciBzdXJ2aXZvcnMuIEFkZXF1YXRlIGFuZCBjb21wbGV0ZSBmb2xsb3ctdXAgaXMgYSBwcmVyZXF1aXNpdGUgdG8gY29uZHVjdGluZyBhIHN1cnZpdmFsIHN0dWR5LiB8IOKAosKgSXQgaXMgY2FsY3VsYXRlZCBieSBhc3Nlc3NpbmcgdGhlIHBlcmNlbnRhZ2Ugb2Ygd29tZW4gbGl2aW5nIHdpdGggSElWIHdobyB3ZXJlIGRpYWdub3NlZCB3aXRoIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB3aG8gd2VyZSBzdGlsbCBhbGl2ZSAxMiBtb250aHMgYWZ0ZXIgdGhlaXIgY2VydmljYWwgY2FuY2VyIGRpYWdub3Npcy4gSXQgZXhjbHVkZXMgdGhvc2Ugd2hvIHdlcmUgbm90IGZvbGxvd2VkIGZvciB0aGUgMTItbW9udGggcGVyaW9kLiBJbiBwbGFjZXMgd2l0aCBnb29kIHJldGVudGlvbiBhbmQgZm9sbG93LXVwLCA1LXllYXIgc3Vydml2YWwgY2FuIGFsc28gYmUgY2FsY3VsYXRlZCwgaW5jbHVkaW5nIG9ubHkgdGhvc2UgaW5kaXZpZHVhbHMgdW5kZXIgb2JzZXJ2YXRpb24gd2l0aCBjb21wbGV0ZSBmb2xsb3ctdXAgZml2ZSB5ZWFycyBhZnRlciB0aGVpciBkaWFnbm9zaXMgb2YgY2VydmljYWwgY2FuY2VyLgogKiAtIG1ldGhvZDogVGhpcyBpbmRpY2F0b3IgdXNlcyBhIGNvaG9ydCBhbmFseXNpcyB0byBtZWFzdXJlIHRoZSBwcm9wb3J0aW9uIG9mIHdvbWVuIGxpdmluZyB3aXRoIEhJViB3aG8gYXJlIHN0aWxsIGFsaXZlIDEyIG1vbnRocyBhZnRlciB0aGVpciBkaWFnbm9zaXMgd2l0aCBjZXJ2aWNhbCBjYW5jZXIuIHwgIHwgVGhlIHNvdXJjZSBvZiBkYXRhIGlzIEluZGl2aWR1YWwtbGV2ZWwgZGF0YSBvYnRhaW5lZCBmcm9tIHByb2dyYW1tZSByZWNvcmRzLgogKiAKICogU3VnZ2VzdGVkIFNjb3JpbmcgTWV0aG9kOiBwcm9wb3J0aW9uIHwgaHR0cDovL2hsNy5vcmcvZmhpci91cy9jcWZtZWFzdXJlcy9TdHJ1Y3R1cmVEZWZpbml0aW9uL3Byb3BvcnRpb24tbWVhc3VyZS1jcWZtCiAqLwoKbGlicmFyeSBISVZJTkQ5NkxvZ2ljCgovLyBJbmNsdWRlZCBMaWJyYXJpZXMKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgSElWQ29tbW9uIHZlcnNpb24gJzAuMC4xJyBjYWxsZWQgSElDCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIFdIT0NvbW1vbiBjYWxsZWQgV0NvbQoKLy8gSW5kaWNhdG9yIERlZmluaXRpb24KcGFyYW1ldGVyICJNZWFzdXJlbWVudCBQZXJpb2QiIEludGVydmFsPERhdGU+IGRlZmF1bHQgSW50ZXJ2YWxbQDIwMjMtMDEtMDEsIEAyMDIzLTAxLTMwXQoKY29udGV4dCBQYXRpZW50Ci8qIFBvcHVsYXRpb25zICovCgovKgogKkluaXRpYWwgUG9wdWxhdGlvbgogKi8KCmRlZmluZSAiSW5pdGlhbCBQb3B1bGF0aW9uIjoKICB0cnVlCgovKioKICogTnVtZXJhdG9yCiAqIAogKiBEZWZpbml0aW9uOiBOdW1iZXIgb2Ygd29tZW4gbGl2aW5nIHdpdGggSElWIHN0aWxsIGFsaXZlIDEyIG1vbnRocyBhZnRlciByZWNlaXZpbmcgYSBkaWFnbm9zaXMgb2YgaW52YXNpdmUgY2VydmljYWwgY2FuY2VyCiAqIENhbGN1bGF0aW9uOiBDT1VOVCBvZiB3b21lbiB3aXRoICJISVYgc3RhdHVzIj0nSElWLXBvc2l0aXZlJyBBTkQgIkNlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMiPSdJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXInIGZvciBhICJEYXRlIG9mIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIiIGluIHByZXZpb3VzIDEyIG1vbnRoIHJlcG9ydGluZyBwZXJpb2QKICovCgpkZWZpbmUgIk51bWVyYXRvciI6CiAgdHJ1ZQoKLyoqCiAqIE51bWVyYXRvciBFeGNsdXNpb25zCiAqCiAqIENhbGN1bGF0aW9uOiAiRGF0ZSBvZiBkZWF0aCIgbGVzcyB0aGFuIDEyIG1vbnRocyBhZnRlciAiRGF0ZSBvZiBkaWFnbm9zaXMgb2YgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMgb3IgaW52YXNpdmUgY2VydmljYWwgY2FuY2VyIiBmb3IgIkNlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMiPSdJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXInCiAqLwogICAgCmRlZmluZSAiTnVtZXJhdG9yIEV4Y2x1c2lvbnMiOgogIGZhbHNlCgovKioKICogRGVub21pbmF0b3IKICoKICogRGVmaW5pdGlvbjogTnVtYmVyIG9mIHdvbWVuIGxpdmluZyB3aXRoIEhJViB3aG8gcmVjZWl2ZWQgYSBkaWFnbm9zaXMgb2YgaW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHdpdGhpbiBhIDEyLW1vbnRoIGNvaG9ydCBvYnNlcnZhdGlvbiBwZXJpb2QKICogQ2FsY3VsYXRpb246IENPVU5UIG9mIHdvbWVuIHdpdGggIkhJViBzdGF0dXMiPSdISVYtcG9zaXRpdmUnIEFORCAiQ2VydmljYWwgY2FuY2VyIGRpYWdub3NpcyI9J0ludmFzaXZlIGNlcnZpY2FsIGNhbmNlcicgZm9yIGEgIkRhdGUgb2YgZGlhZ25vc2lzIG9mIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIG9yIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlciIgaW4gcHJldmlvdXMgMTIgbW9udGggcmVwb3J0aW5nIHBlcmlvZAogKi8KCmRlZmluZSAiRGVub21pbmF0b3IiOgogIHRydWUKICAgIAoKLyogZW5kIFBvcHVsYXRpb25zICovCgo="/>
  </content>
  <content>
    <contentType value="application/elm+xml"/>
    <data
          value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iTm9uZSIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1JbmZvIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICA8YTpzIHI9IjE4Ij4KICAgICAgICAgPGE6cz4vKioKICogTGlicmFyeTogSElWLklORC45NiBMb2dpYwogKiBSZWYgTm86IENDQS40CiAqIFNob3J0IE5hbWU6IENlcnZpY2FsIGNhbmNlciBzdXJ2aXZhbAogKgogKiBEZWZpbml0aW9uOiBDcnVkZSBwcm9iYWJpbGl0eSBvZiBzdXJ2aXZpbmcgMSB5ZWFyIGFmdGVyIGEgZGlhZ25vc2lzIG9mIGNlcnZpY2FsIGNhbmNlcgogKgogKiBOdW1lcmF0b3I6IE51bWJlciBvZiB3b21lbiBsaXZpbmcgd2l0aCBISVYgc3RpbGwgYWxpdmUgMTIgbW9udGhzIGFmdGVyIHJlY2VpdmluZyBhIGRpYWdub3NpcyBvZiBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIKICogTnVtZXJhdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiB3b21lbiB3aXRoICZxdW90O0hJViBzdGF0dXMmcXVvdDs9J0hJVi1wb3NpdGl2ZScgQU5EICZxdW90O0NlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMmcXVvdDs9J0ludmFzaXZlIGNlcnZpY2FsIGNhbmNlcicgZm9yIGEgJnF1b3Q7RGF0ZSBvZiBkaWFnbm9zaXMgb2YgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMgb3IgaW52YXNpdmUgY2VydmljYWwgY2FuY2VyJnF1b3Q7IGluIHByZXZpb3VzIDEyIG1vbnRoIHJlcG9ydGluZyBwZXJpb2QKICogTnVtZXJhdG9yIEV4Y2x1c2lvbnM6ICZxdW90O0RhdGUgb2YgZGVhdGgmcXVvdDsgbGVzcyB0aGFuIDEyIG1vbnRocyBhZnRlciAmcXVvdDtEYXRlIG9mIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXImcXVvdDsgZm9yICZxdW90O0NlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMmcXVvdDs9J0ludmFzaXZlIGNlcnZpY2FsIGNhbmNlcicKICoKICogRGVub21pbmF0b3I6IE51bWJlciBvZiB3b21lbiBsaXZpbmcgd2l0aCBISVYgd2hvIHJlY2VpdmVkIGEgZGlhZ25vc2lzIG9mIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB3aXRoaW4gYSAxMi1tb250aCBjb2hvcnQgb2JzZXJ2YXRpb24gcGVyaW9kCiAqIERlbm9taW5hdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiB3b21lbiB3aXRoICZxdW90O0hJViBzdGF0dXMmcXVvdDs9J0hJVi1wb3NpdGl2ZScgQU5EICZxdW90O0NlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMmcXVvdDs9J0ludmFzaXZlIGNlcnZpY2FsIGNhbmNlcicgZm9yIGEgJnF1b3Q7RGF0ZSBvZiBkaWFnbm9zaXMgb2YgY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMgb3IgaW52YXNpdmUgY2VydmljYWwgY2FuY2VyJnF1b3Q7IGluIHByZXZpb3VzIDEyIG1vbnRoIHJlcG9ydGluZyBwZXJpb2QKICogRGVub21pbmF0b3IgRXhjbHVzaW9uczogCiAqCiAqIERpc2FnZ3JlZ2F0aW9uczoKICog4oCiwqBBZ2UgKDE14oCTMTksIDIw4oCTMjQsIDI14oCTMjksIDMw4oCTNDksIDUwKyB5ZWFycykgCiAqICDigKLCoENlcnZpY2FsIGNhbmNlciBzdGFnZSBhdCBkaWFnbm9zaXMgKDAsIEksIElJLCBJSUksIElWKSAKICogIOKAosKgQ2l0aWVzIGFuZCBvdGhlciBhZG1pbmlzdHJhdGl2ZSBhcmVhcyBvZiBlcGlkZW1pb2xvZ2ljIGltcG9ydGFuY2UKICoKICogRGlzYWdncmVnYXRpb24gRWxlbWVudHM6IEFnZSB8IENlcnZpY2FsIGNhbmNlciBzdGFnZSBhdCBkaWFnbm9zaXMKICoKICogTnVtZXJhdG9yIGFuZCBEZW5vbWluYXRvciBFbGVtZW50czoKICogQ2VydmljYWwgY2FuY2VyIGRpYWdub3NpcyAKICogIERhdGUgb2YgZGlhZ25vc2lzIG9mIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIG9yIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlciAKICogIEhJViBzdGF0dXMKICoKICogUmVmZXJlbmNlOiBDb25zb2xpZGF0ZWQgZ3VpZGVsaW5lcyBvbiBwZXJzb24tY2VudHJlZCBISVYgc3RyYXRlZ2ljIGluZm9ybWF0aW9uOiBzdHJlbmd0aGVuaW5nIHJvdXRpbmUgZGF0YSBmb3IgaW1wYWN0LiBHZW5ldmE6IFdvcmxkIEhlYWx0aCBPcmdhbml6YXRpb247IDIwMjIKICogCiAqIERhdGEgQ29uY2VwdHM6CiAqIEhJVi5BLkRFMTc6IEFnZSB8IENhbGN1bGF0ZWQgYWdlIChudW1iZXIgb2YgeWVhcnMpIG9mIHRoZSBjbGllbnQgYmFzZWQgb24gZGF0ZSBvZiBiaXJ0aAogKiBISVYuQi5ERTExNTogSElWIHN0YXR1cyB8IEhJViBzdGF0dXMgcmVwb3J0ZWQgYWZ0ZXIgYXBwbHlpbmcgdGhlIG5hdGlvbmFsIEhJViB0ZXN0aW5nIGFsZ29yaXRobS4gTm8gc2luZ2xlIEhJViB0ZXN0IGNhbiBwcm92aWRlIGFuIEhJVi1wb3NpdGl2ZSBkaWFnbm9zaXMuCiAqIEhJVi5CLkRFMTE2OiBISVYtcG9zaXRpdmUgfCBDbGllbnQgaXMgSElWLXBvc2l0aXZlCiAqIEhJVi5CLkRFMTE3OiBISVYtbmVnYXRpdmUgfCBDbGllbnQgaXMgSElWLW5lZ2F0aXZlCiAqIEhJVi5CLkRFMTE4OiBVbmtub3duIHwgQ2xpZW50IGhhcyB1bmtub3duIEhJViBzdGF0dXMKICogSElWLkQuREU3MDU6IERhdGUgb2YgZGlhZ25vc2lzIG9mIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIG9yIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB8IERhdGUgb2YgZGlhZ25vc2lzIG9mIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIG9yIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlcgogKiBISVYuRC5ERTcwOTogQ2VydmljYWwgY2FuY2VyIGRpYWdub3NpcyB8IFR5cGUgb2YgY2VydmljYWwgY2FuY2VyIGRpYWdub3NpcwogKiBISVYuRC5ERTcxMDogQ2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMgfCBDbGllbnQgaXMgZGlhZ25vc2VkIHdpdGggY2VydmljYWwgcHJlY2FuY2VyIGxlc2lvbnMKICogSElWLkQuREU3MTE6IEludmFzaXZlIGNlcnZpY2FsIGNhbmNlciB8IENsaWVudCBpcyBkaWFnbm9zZWQgd2l0aCBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgZGlzZWFzZQogKiBISVYuRC5ERTcxMjogQ2VydmljYWwgY2FuY2VyIHN0YWdlIGF0IGRpYWdub3NpcyB8IENlcnZpY2FsIGNhbmNlciBzdGFnZSBhdCBkaWFnbm9zaXMgb2YgY2VydmljYWwgY2FuY2VyCiAqIEhJVi5ELkRFNzEzOiBTdGFnZSAwIHwgU3RhZ2UgMCBjZXJ2aWNhbCBjYW5jZXIgYXQgZGlhZ25vc2lzIG9mIGNlcnZpY2FsIGNhbmNlcgogKiBISVYuRC5ERTcxNDogU3RhZ2UgSSB8IFN0YWdlIEkgY2VydmljYWwgY2FuY2VyIGF0IGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBjYW5jZXIKICogSElWLkQuREU3MTU6IFN0YWdlIElJIHwgU3RhZ2UgSUkgY2VydmljYWwgY2FuY2VyIGF0IGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBjYW5jZXIKICogSElWLkQuREU3MTY6IFN0YWdlIElJSSB8IFN0YWdlIElJSSBjZXJ2aWNhbCBjYW5jZXIgYXQgZGlhZ25vc2lzIG9mIGNlcnZpY2FsIGNhbmNlcgogKiBISVYuRC5ERTcxNzogU3RhZ2UgSVYgfCBTdGFnZSBJViBjZXJ2aWNhbCBjYW5jZXIgYXQgZGlhZ25vc2lzIG9mIGNlcnZpY2FsIGNhbmNlcgogKgogKiBBZGRpdGlvbmFsIENvbnRleHQKICogLSB3aGF0IGl0IG1lYXN1cmVzOiBUaGlzIGluZGljYXRvciBtZWFzdXJlcyB0aGUgZWZmZWN0aXZlbmVzcyBvZiBjZXJ2aWNhbCBjYW5jZXIgdHJlYXRtZW50IGZvciB3b21lbiBkaWFnbm9zZWQgd2l0aCBjZXJ2aWNhbCBjYW5jZXIuCiAqIC0gcmF0aW9uYWxlOiDigKLCoFN1cnZlaWxsYW5jZSBvZiBjZXJ2aWNhbCBjYW5jZXIgc3Vydml2YWwgYW1vbmcgd29tZW4gbGl2aW5nIHdpdGggSElWIGlzIGVzc2VudGlhbCBpbiBtb25pdG9yaW5nIHRoZSBhY2Nlc3MgYW5kIGVmZmVjdGl2ZW5lc3Mgb2YgdHJlYXRtZW50IGFuZCBmb2xsb3ctdXAgdG8gc3VwcG9ydCB0aGUgbmVlZHMgb2YgY2FuY2VyIHN1cnZpdm9ycy4gQWRlcXVhdGUgYW5kIGNvbXBsZXRlIGZvbGxvdy11cCBpcyBhIHByZXJlcXVpc2l0ZSB0byBjb25kdWN0aW5nIGEgc3Vydml2YWwgc3R1ZHkuIHwg4oCiwqBJdCBpcyBjYWxjdWxhdGVkIGJ5IGFzc2Vzc2luZyB0aGUgcGVyY2VudGFnZSBvZiB3b21lbiBsaXZpbmcgd2l0aCBISVYgd2hvIHdlcmUgZGlhZ25vc2VkIHdpdGggaW52YXNpdmUgY2VydmljYWwgY2FuY2VyIHdobyB3ZXJlIHN0aWxsIGFsaXZlIDEyIG1vbnRocyBhZnRlciB0aGVpciBjZXJ2aWNhbCBjYW5jZXIgZGlhZ25vc2lzLiBJdCBleGNsdWRlcyB0aG9zZSB3aG8gd2VyZSBub3QgZm9sbG93ZWQgZm9yIHRoZSAxMi1tb250aCBwZXJpb2QuIEluIHBsYWNlcyB3aXRoIGdvb2QgcmV0ZW50aW9uIGFuZCBmb2xsb3ctdXAsIDUteWVhciBzdXJ2aXZhbCBjYW4gYWxzbyBiZSBjYWxjdWxhdGVkLCBpbmNsdWRpbmcgb25seSB0aG9zZSBpbmRpdmlkdWFscyB1bmRlciBvYnNlcnZhdGlvbiB3aXRoIGNvbXBsZXRlIGZvbGxvdy11cCBmaXZlIHllYXJzIGFmdGVyIHRoZWlyIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBjYW5jZXIuCiAqIC0gbWV0aG9kOiBUaGlzIGluZGljYXRvciB1c2VzIGEgY29ob3J0IGFuYWx5c2lzIHRvIG1lYXN1cmUgdGhlIHByb3BvcnRpb24gb2Ygd29tZW4gbGl2aW5nIHdpdGggSElWIHdobyBhcmUgc3RpbGwgYWxpdmUgMTIgbW9udGhzIGFmdGVyIHRoZWlyIGRpYWdub3NpcyB3aXRoIGNlcnZpY2FsIGNhbmNlci4gfCAgfCBUaGUgc291cmNlIG9mIGRhdGEgaXMgSW5kaXZpZHVhbC1sZXZlbCBkYXRhIG9idGFpbmVkIGZyb20gcHJvZ3JhbW1lIHJlY29yZHMuCiAqIAogKiBTdWdnZXN0ZWQgU2NvcmluZyBNZXRob2Q6IHByb3BvcnRpb24gfCBodHRwOi8vaGw3Lm9yZy9maGlyL3VzL2NxZm1lYXN1cmVzL1N0cnVjdHVyZURlZmluaXRpb24vcHJvcG9ydGlvbi1tZWFzdXJlLWNxZm0KICovCgpsaWJyYXJ5IEhJVklORDk2TG9naWM8L2E6cz4KICAgICAgPC9hOnM+CiAgIDwvYW5ub3RhdGlvbj4KICAgPGlkZW50aWZpZXIgaWQ9IkhJVklORDk2TG9naWMiIHN5c3RlbT0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2Ii8+CiAgIDxzY2hlbWFJZGVudGlmaWVyIGlkPSJ1cm46aGw3LW9yZzplbG0iIHZlcnNpb249InIxIi8+CiAgIDx1c2luZ3M+CiAgICAgIDxkZWYgbG9jYWxJZGVudGlmaWVyPSJTeXN0ZW0iIHVyaT0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIi8+CiAgICAgIDxkZWYgbG9jYWxJZD0iMSIgbG9jYXRvcj0iNTg6MS01ODoyNiIgbG9jYWxJZGVudGlmaWVyPSJGSElSIiB1cmk9Imh0dHA6Ly9obDcub3JnL2ZoaXIiIHZlcnNpb249IjQuMC4xIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMSI+CiAgICAgICAgICAgICAgIDxhOnM+Ly8gSW5jbHVkZWQgTGlicmFyaWVzCnVzaW5nIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVI8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzQuMC4xJzwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgPC91c2luZ3M+CiAgIDxpbmNsdWRlcz4KICAgICAgPGRlZiBsb2NhbElkPSIyIiBsb2NhdG9yPSI2MDoxLTYwOjQ0IiBsb2NhbElkZW50aWZpZXI9IkhJQyIgcGF0aD0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2L0hJVkNvbW1vbiIgdmVyc2lvbj0iMC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyIj4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkhJVkNvbW1vbjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gdmVyc2lvbiAnMC4wLjEnIGNhbGxlZCBISUM8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMyIgbG9jYXRvcj0iNjE6MS02MTozNSIgbG9jYWxJZGVudGlmaWVyPSJGSElSSGVscGVycyIgcGF0aD0iaHR0cDovL2hsNy5vcmcvZmhpci9GSElSSGVscGVycyIgdmVyc2lvbj0iNC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzIj4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVJIZWxwZXJzPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICc0LjAuMSc8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNCIgbG9jYXRvcj0iNjM6MS02MzoyOSIgbG9jYWxJZGVudGlmaWVyPSJXQ29tIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9oaXYvV0hPQ29tbW9uIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNCI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5XSE9Db21tb248L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IGNhbGxlZCBXQ29tPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICA8L2luY2x1ZGVzPgogICA8cGFyYW1ldGVycz4KICAgICAgPGRlZiBsb2NhbElkPSIxMCIgbG9jYXRvcj0iNjY6MS02Njo4OCIgbmFtZT0iTWVhc3VyZW1lbnQgUGVyaW9kIiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTAiPgogICAgICAgICAgICAgICA8YTpzPi8vIEluZGljYXRvciBEZWZpbml0aW9uCnBhcmFtZXRlciAmcXVvdDtNZWFzdXJlbWVudCBQZXJpb2QmcXVvdDsgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iOSI+CiAgICAgICAgICAgICAgICAgIDxhOnM+SW50ZXJ2YWwmbHQ7PC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iOCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+RGF0ZTwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4+PC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiBkZWZhdWx0IDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjciPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjUiPkludGVydmFsW0AyMDIzLTAxLTAxLCBAMjAyMy0wMS0zMF08L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxkZWZhdWx0IGxvY2FsSWQ9IjciIGxvY2F0b3I9IjY2OjU1LTY2Ojg4IiBsb3dDbG9zZWQ9InRydWUiIGhpZ2hDbG9zZWQ9InRydWUiIHhzaTp0eXBlPSJJbnRlcnZhbCI+CiAgICAgICAgICAgIDxsb3cgbG9jYWxJZD0iNSIgbG9jYXRvcj0iNjY6NjQtNjY6NzQiIHhzaTp0eXBlPSJEYXRlIj4KICAgICAgICAgICAgICAgPHllYXIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIyMDIzIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8bW9udGggdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8ZGF5IHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgPC9sb3c+CiAgICAgICAgICAgIDxoaWdoIGxvY2FsSWQ9IjYiIGxvY2F0b3I9IjY2Ojc3LTY2Ojg3IiB4c2k6dHlwZT0iRGF0ZSI+CiAgICAgICAgICAgICAgIDx5ZWFyIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMjAyMyIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPG1vbnRoIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPGRheSB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjMwIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L2hpZ2g+CiAgICAgICAgIDwvZGVmYXVsdD4KICAgICAgICAgPHBhcmFtZXRlclR5cGVTcGVjaWZpZXIgbG9jYWxJZD0iOSIgbG9jYXRvcj0iNjY6MzItNjY6NDUiIHhzaTp0eXBlPSJJbnRlcnZhbFR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICA8cG9pbnRUeXBlIGxvY2FsSWQ9IjgiIGxvY2F0b3I9IjY2OjQxLTY2OjQ0IiBuYW1lPSJ0OkRhdGUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgPC9wYXJhbWV0ZXJUeXBlU3BlY2lmaWVyPgogICAgICA8L2RlZj4KICAgPC9wYXJhbWV0ZXJzPgogICA8Y29udGV4dHM+CiAgICAgIDxkZWYgbG9jYXRvcj0iNjg6MS02ODoxNSIgbmFtZT0iUGF0aWVudCIvPgogICA8L2NvbnRleHRzPgogICA8c3RhdGVtZW50cz4KICAgICAgPGRlZiBsb2NhdG9yPSI2ODoxLTY4OjE1IiBuYW1lPSJQYXRpZW50IiBjb250ZXh0PSJQYXRpZW50Ij4KICAgICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9IlNpbmdsZXRvbkZyb20iPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhdG9yPSI2ODoxLTY4OjE1IiBkYXRhVHlwZT0iZmhpcjpQYXRpZW50IiB0ZW1wbGF0ZUlkPSJodHRwOi8vaGw3Lm9yZy9maGlyL1N0cnVjdHVyZURlZmluaXRpb24vUGF0aWVudCIgeHNpOnR5cGU9IlJldHJpZXZlIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMTIiIGxvY2F0b3I9Ijc1OjEtNzY6NiIgbmFtZT0iSW5pdGlhbCBQb3B1bGF0aW9uIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTIiPgogICAgICAgICAgICAgICA8YTpzIHI9IjExIj4vKiBQb3B1bGF0aW9ucyAqLwoKLyoKICpJbml0aWFsIFBvcHVsYXRpb24KICovCgpkZWZpbmUgJnF1b3Q7SW5pdGlhbCBQb3B1bGF0aW9uJnF1b3Q7OgogIHRydWU8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMTEiIGxvY2F0b3I9Ijc2OjMtNzY6NiIgdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJ0cnVlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIxNCIgbG9jYXRvcj0iODU6MS04Njo2IiBuYW1lPSJOdW1lcmF0b3IiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIxNCI+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMTMiPi8qKgogKiBOdW1lcmF0b3IKICogCiAqIERlZmluaXRpb246IE51bWJlciBvZiB3b21lbiBsaXZpbmcgd2l0aCBISVYgc3RpbGwgYWxpdmUgMTIgbW9udGhzIGFmdGVyIHJlY2VpdmluZyBhIGRpYWdub3NpcyBvZiBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIKICogQ2FsY3VsYXRpb246IENPVU5UIG9mIHdvbWVuIHdpdGggJnF1b3Q7SElWIHN0YXR1cyZxdW90Oz0nSElWLXBvc2l0aXZlJyBBTkQgJnF1b3Q7Q2VydmljYWwgY2FuY2VyIGRpYWdub3NpcyZxdW90Oz0nSW52YXNpdmUgY2VydmljYWwgY2FuY2VyJyBmb3IgYSAmcXVvdDtEYXRlIG9mIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXImcXVvdDsgaW4gcHJldmlvdXMgMTIgbW9udGggcmVwb3J0aW5nIHBlcmlvZAogKi8KCmRlZmluZSAmcXVvdDtOdW1lcmF0b3ImcXVvdDs6CiAgdHJ1ZTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIxMyIgbG9jYXRvcj0iODY6My04Njo2IiB2YWx1ZVR5cGU9InQ6Qm9vbGVhbiIgdmFsdWU9InRydWUiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjE2IiBsb2NhdG9yPSI5NDoxLTk1OjciIG5hbWU9Ik51bWVyYXRvciBFeGNsdXNpb25zIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTYiPgogICAgICAgICAgICAgICA8YTpzIHI9IjE1Ij4vKioKICogTnVtZXJhdG9yIEV4Y2x1c2lvbnMKICoKICogQ2FsY3VsYXRpb246ICZxdW90O0RhdGUgb2YgZGVhdGgmcXVvdDsgbGVzcyB0aGFuIDEyIG1vbnRocyBhZnRlciAmcXVvdDtEYXRlIG9mIGRpYWdub3NpcyBvZiBjZXJ2aWNhbCBwcmVjYW5jZXIgbGVzaW9ucyBvciBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXImcXVvdDsgZm9yICZxdW90O0NlcnZpY2FsIGNhbmNlciBkaWFnbm9zaXMmcXVvdDs9J0ludmFzaXZlIGNlcnZpY2FsIGNhbmNlcicKICovCiAgICAKZGVmaW5lICZxdW90O051bWVyYXRvciBFeGNsdXNpb25zJnF1b3Q7OgogIGZhbHNlPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjE1IiBsb2NhdG9yPSI5NTozLTk1OjciIHZhbHVlVHlwZT0idDpCb29sZWFuIiB2YWx1ZT0iZmFsc2UiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjE4IiBsb2NhdG9yPSIxMDQ6MS0xMDU6NiIgbmFtZT0iRGVub21pbmF0b3IiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIxOCI+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMTciPi8qKgogKiBEZW5vbWluYXRvcgogKgogKiBEZWZpbml0aW9uOiBOdW1iZXIgb2Ygd29tZW4gbGl2aW5nIHdpdGggSElWIHdobyByZWNlaXZlZCBhIGRpYWdub3NpcyBvZiBpbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXIgd2l0aGluIGEgMTItbW9udGggY29ob3J0IG9ic2VydmF0aW9uIHBlcmlvZAogKiBDYWxjdWxhdGlvbjogQ09VTlQgb2Ygd29tZW4gd2l0aCAmcXVvdDtISVYgc3RhdHVzJnF1b3Q7PSdISVYtcG9zaXRpdmUnIEFORCAmcXVvdDtDZXJ2aWNhbCBjYW5jZXIgZGlhZ25vc2lzJnF1b3Q7PSdJbnZhc2l2ZSBjZXJ2aWNhbCBjYW5jZXInIGZvciBhICZxdW90O0RhdGUgb2YgZGlhZ25vc2lzIG9mIGNlcnZpY2FsIHByZWNhbmNlciBsZXNpb25zIG9yIGludmFzaXZlIGNlcnZpY2FsIGNhbmNlciZxdW90OyBpbiBwcmV2aW91cyAxMiBtb250aCByZXBvcnRpbmcgcGVyaW9kCiAqLwoKZGVmaW5lICZxdW90O0Rlbm9taW5hdG9yJnF1b3Q7OgogIHRydWU8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMTciIGxvY2F0b3I9IjEwNTozLTEwNTo2IiB2YWx1ZVR5cGU9InQ6Qm9vbGVhbiIgdmFsdWU9InRydWUiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgIDwvZGVmPgogICA8L3N0YXRlbWVudHM+CjwvbGlicmFyeT4K"/>
  </content>
</Library>