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
Draft as of 2024-10-30 |
<Library xmlns="http://hl7.org/fhir">
<id value="HIVIND42Logic"/>
<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 HIVIND42Logic</b></p><a name="HIVIND42Logic"> </a><a name="hcHIVIND42Logic"> </a><a name="HIVIND42Logic-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>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.42 Logic
* Ref No: VER.6
* Short Name: Final outcome of PMTCT
*
* Definition: % of HIV-exposed infants whose final HIV outcome status is known
*
* Numerator: HIV-exposed infants born within the past 12 months (or 24 months in breastfeeding settings) who have known final HIV outcome status
* Numerator Calculation: COUNT of infants who are an "HIV-exposed infant or child" AND [(with an "Infant date of birth" in past 12 months) OR (with an "Infant date of birth" in past 24 months IF mothers are "Breastfeeding")] AND "Registered in birth cohort"=True AND with a "Final diagnosis of HIV-exposed infant" of NOT NULL
* Numerator Exclusions:
*
* Denominator: a) Programme-based/service delivery denominator | Number of HIV-exposed infants who were born within the 12 months (or 24 months in breastfeeding settings) prior to the reporting period and registered in the birth cohort | For example, for the reporting period January to December 2021 the denominator would be the number of HIV-exposed infants born between January to December 2020 in non-breast feeding settings and January to December 2019 in breastfeeding settings. | | b) Population-based denominator | Estimated number of HIV-positive women who delivered within the past 12 months | (or 24 months in breastfeeding settings)
* Denominator Calculation: COUNT of infants who are an "HIV-exposed infant or child" AND [(with an "Infant date of birth" within past 12 months) OR (with an "Infant date of birth" within past 24 months IF mothers are "Breastfeeding")] AND "Registered in birth cohort"=True
* Denominator Exclusions:
*
* Disaggregations:
* • Outcome status (HIV-positive, HIV-negative, no longer breastfeeding)
* • Cities and other administrative regions of epidemiologic importance
*
* Disaggregation Elements: Infant HIV status
*
* Numerator and Denominator Elements:
* Breastfeeding
* Final diagnosis of HIV-exposed infant
* HIV-exposed infant or child
* Infant date of birth
* Registered in birth cohort
*
* Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022
*
* Data Concepts:
* HIV.B.DE32: Breastfeeding | Infant is being breastfed by mother
* HIV.D.DE32: Breastfeeding | Client is giving infant breast milk
* HIV.E.DE87: Infant date of birth | The infant's date of birth (DOB) if known
* HIV.E.DE112: HIV-exposed infant or child | Whether the infant or child was determined to have had HIV exposure
* HIV.E.DE179: Registered in birth cohort | Whether the infant has been registered in a birth cohort
* HIV.E.DE225: Infant HIV status | HIV status reported after applying the HIV testing algorithm. No single HIV test can provide an HIV-positive diagnosis.
* HIV.E.DE226: HIV-positive | Infant is HIV-positive
* HIV.E.DE227: HIV-negative | Infant is HIV-negative
* HIV.E.DE228: Unknown | Infant has unknown HIV status
* HIV.E.DE230: Final diagnosis of HIV-exposed infant | HIV-exposed infant final status at 18 months or 3 months after cessation of breastfeeding (whichever is later).
* HIV.E.DE231: HIV-positive | The infant is HIV-positive
* HIV.E.DE232: HIV-negative and no longer breastfeeding | The infant is HIV-negative and the mother has quit breastfeeding
* HIV.E.DE233: HIV status unknown | The final HIV status of the child is unknown because the infant died, was lost to follow-up or transferred out without ever having an HIV-positive diagnosis or is active in care but was not tested at 18 months
* HIV.SRV.DE20: HIV-exposed infant or child | Whether the infant or child was determined to have had HIV exposure
* HIV.SRV.DE22: Final diagnosis of HIV-exposed infant | HIV-exposed infant final status at 18 months or 3 months after cessation of breastfeeding (whichever is later).
*
* Additional Context
* - what it measures: This indicator measures quality of programme follow-up to track exposed infants and ascertain final HIV status.
* - rationale: • Effective PMTCT programmes must follow HIV-exposed infants until the end of the breastfeeding period to ensure that the full cascade of services and support is provided to HIV-positive mothers and their infants. | • The ability to ascertain final outcome status through routine programme data across multiple points of care is a key challenge.
* - method: This indicator measures quality of programme follow-up to track exposed infants and ascertain final HIV status.
*
* Suggested Scoring Method: proportion | http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm
*/
library HIVIND42Logic
// 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 "Measurement Period" Interval<Date> default Interval[@2023-01-01, @2023-01-30]
context Patient
/* Populations */
/*
*Initial Population
*/
define "Initial Population":
true
/**
* Numerator
*
* Definition: HIV-exposed infants born within the past 12 months (or 24 months in breastfeeding settings) who have known final HIV outcome status
* Calculation: COUNT of infants who are an "HIV-exposed infant or child" AND [(with an "Infant date of birth" in past 12 months) OR (with an "Infant date of birth" in past 24 months IF mothers are "Breastfeeding")] AND "Registered in birth cohort"=True AND with a "Final diagnosis of HIV-exposed infant" of NOT NULL
*/
define "Numerator":
true
/**
* Denominator
*
* Definition: a) Programme-based/service delivery denominator | Number of HIV-exposed infants who were born within the 12 months (or 24 months in breastfeeding settings) prior to the reporting period and registered in the birth cohort | For example, for the reporting period January to December 2021 the denominator would be the number of HIV-exposed infants born between January to December 2020 in non-breast feeding settings and January to December 2019 in breastfeeding settings. | | b) Population-based denominator | Estimated number of HIV-positive women who delivered within the past 12 months | (or 24 months in breastfeeding settings)
* Calculation: COUNT of infants who are an "HIV-exposed infant or child" AND [(with an "Infant date of birth" within past 12 months) OR (with an "Infant date of birth" within past 24 months IF mothers are "Breastfeeding")] AND "Registered in birth cohort"=True
*/
define "Denominator":
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/HIVIND42Logic"/>
<version value="0.3.0"/>
<name value="HIVIND42Logic"/>
<title value="HIV.IND.42 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="% of HIV-exposed infants whose final HIV outcome status is known"/>
<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="Denominator"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<content>
<contentType value="text/cql"/>
<data
value="LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuNDIgTG9naWMKICogUmVmIE5vOiBWRVIuNgogKiBTaG9ydCBOYW1lOiBGaW5hbCBvdXRjb21lIG9mIFBNVENUCiAqCiAqIERlZmluaXRpb246ICUgb2YgSElWLWV4cG9zZWQgaW5mYW50cyB3aG9zZSBmaW5hbCBISVYgb3V0Y29tZSBzdGF0dXMgaXMga25vd24KICoKICogTnVtZXJhdG9yOiBISVYtZXhwb3NlZCBpbmZhbnRzIGJvcm4gd2l0aGluIHRoZSBwYXN0IDEyIG1vbnRocyAob3IgMjQgbW9udGhzIGluIGJyZWFzdGZlZWRpbmcgc2V0dGluZ3MpIHdobyBoYXZlIGtub3duIGZpbmFsIEhJViBvdXRjb21lIHN0YXR1cwogKiBOdW1lcmF0b3IgQ2FsY3VsYXRpb246IENPVU5UIG9mIGluZmFudHMgd2hvIGFyZSBhbiAiSElWLWV4cG9zZWQgaW5mYW50IG9yIGNoaWxkIiBBTkQgWyh3aXRoIGFuICJJbmZhbnQgZGF0ZSBvZiBiaXJ0aCIgaW4gcGFzdCAxMiBtb250aHMpIE9SICh3aXRoIGFuICJJbmZhbnQgZGF0ZSBvZiBiaXJ0aCIgaW4gcGFzdCAyNCBtb250aHMgSUYgbW90aGVycyBhcmUgIkJyZWFzdGZlZWRpbmciKV0gQU5EICJSZWdpc3RlcmVkIGluIGJpcnRoIGNvaG9ydCI9VHJ1ZSBBTkQgd2l0aCBhICJGaW5hbCBkaWFnbm9zaXMgb2YgSElWLWV4cG9zZWQgaW5mYW50IiBvZiBOT1QgTlVMTAogKiBOdW1lcmF0b3IgRXhjbHVzaW9uczogCiAqCiAqIERlbm9taW5hdG9yOiBhKSBQcm9ncmFtbWUtYmFzZWQvc2VydmljZSBkZWxpdmVyeSBkZW5vbWluYXRvciB8IE51bWJlciBvZiBISVYtZXhwb3NlZCBpbmZhbnRzIHdobyB3ZXJlIGJvcm4gd2l0aGluIHRoZSAxMiBtb250aHMgKG9yIDI0IG1vbnRocyBpbiBicmVhc3RmZWVkaW5nIHNldHRpbmdzKSBwcmlvciB0byB0aGUgcmVwb3J0aW5nIHBlcmlvZCBhbmQgcmVnaXN0ZXJlZCBpbiB0aGUgYmlydGggY29ob3J0IHwgRm9yIGV4YW1wbGUsIGZvciB0aGUgcmVwb3J0aW5nIHBlcmlvZCBKYW51YXJ5IHRvIERlY2VtYmVyIDIwMjEgdGhlIGRlbm9taW5hdG9yIHdvdWxkIGJlIHRoZSBudW1iZXIgb2YgSElWLWV4cG9zZWQgaW5mYW50cyBib3JuIGJldHdlZW4gSmFudWFyeSB0byBEZWNlbWJlciAyMDIwIGluIG5vbi1icmVhc3QgZmVlZGluZyBzZXR0aW5ncyBhbmQgSmFudWFyeSB0byBEZWNlbWJlciAyMDE5IGluIGJyZWFzdGZlZWRpbmcgc2V0dGluZ3MuIHwgIHwgYikgUG9wdWxhdGlvbi1iYXNlZCBkZW5vbWluYXRvciB8IEVzdGltYXRlZCBudW1iZXIgb2YgSElWLXBvc2l0aXZlIHdvbWVuIHdobyBkZWxpdmVyZWQgd2l0aGluIHRoZSBwYXN0IDEyIG1vbnRocyB8IChvciAyNCBtb250aHMgaW4gYnJlYXN0ZmVlZGluZyBzZXR0aW5ncykKICogRGVub21pbmF0b3IgQ2FsY3VsYXRpb246IENPVU5UIG9mIGluZmFudHMgd2hvIGFyZSBhbiAiSElWLWV4cG9zZWQgaW5mYW50IG9yIGNoaWxkIiBBTkQgWyh3aXRoIGFuICJJbmZhbnQgZGF0ZSBvZiBiaXJ0aCIgd2l0aGluIHBhc3QgMTIgbW9udGhzKSBPUiAod2l0aCBhbiAiSW5mYW50IGRhdGUgb2YgYmlydGgiIHdpdGhpbiBwYXN0IDI0IG1vbnRocyBJRiBtb3RoZXJzIGFyZSAiQnJlYXN0ZmVlZGluZyIpXSBBTkQgIlJlZ2lzdGVyZWQgaW4gYmlydGggY29ob3J0Ij1UcnVlCiAqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEaXNhZ2dyZWdhdGlvbnM6CiAqIOKAosKgT3V0Y29tZSBzdGF0dXMgKEhJVi1wb3NpdGl2ZSwgSElWLW5lZ2F0aXZlLCBubyBsb25nZXIgYnJlYXN0ZmVlZGluZykgCiAqICDigKLCoENpdGllcyBhbmQgb3RoZXIgYWRtaW5pc3RyYXRpdmUgcmVnaW9ucyBvZiBlcGlkZW1pb2xvZ2ljIGltcG9ydGFuY2UKICoKICogRGlzYWdncmVnYXRpb24gRWxlbWVudHM6IEluZmFudCBISVYgc3RhdHVzCiAqCiAqIE51bWVyYXRvciBhbmQgRGVub21pbmF0b3IgRWxlbWVudHM6CiAqIEJyZWFzdGZlZWRpbmcgCiAqICBGaW5hbCBkaWFnbm9zaXMgb2YgSElWLWV4cG9zZWQgaW5mYW50IAogKiAgSElWLWV4cG9zZWQgaW5mYW50IG9yIGNoaWxkIAogKiAgSW5mYW50IGRhdGUgb2YgYmlydGggCiAqICBSZWdpc3RlcmVkIGluIGJpcnRoIGNvaG9ydAogKgogKiBSZWZlcmVuY2U6IENvbnNvbGlkYXRlZCBndWlkZWxpbmVzIG9uIHBlcnNvbi1jZW50cmVkIEhJViBzdHJhdGVnaWMgaW5mb3JtYXRpb246IHN0cmVuZ3RoZW5pbmcgcm91dGluZSBkYXRhIGZvciBpbXBhY3QuIEdlbmV2YTogV29ybGQgSGVhbHRoIE9yZ2FuaXphdGlvbjsgMjAyMgogKiAKICogRGF0YSBDb25jZXB0czoKICogSElWLkIuREUzMjogQnJlYXN0ZmVlZGluZyB8IEluZmFudCBpcyBiZWluZyBicmVhc3RmZWQgYnkgbW90aGVyCiAqIEhJVi5ELkRFMzI6IEJyZWFzdGZlZWRpbmcgfCBDbGllbnQgaXMgZ2l2aW5nIGluZmFudCBicmVhc3QgbWlsawogKiBISVYuRS5ERTg3OiBJbmZhbnQgZGF0ZSBvZiBiaXJ0aCB8IFRoZSBpbmZhbnQncyBkYXRlIG9mIGJpcnRoIChET0IpIGlmIGtub3duCiAqIEhJVi5FLkRFMTEyOiBISVYtZXhwb3NlZCBpbmZhbnQgb3IgY2hpbGQgfCBXaGV0aGVyIHRoZSBpbmZhbnQgb3IgY2hpbGQgd2FzIGRldGVybWluZWQgdG8gaGF2ZSBoYWQgSElWIGV4cG9zdXJlCiAqIEhJVi5FLkRFMTc5OiBSZWdpc3RlcmVkIGluIGJpcnRoIGNvaG9ydCB8IFdoZXRoZXIgdGhlIGluZmFudCBoYXMgYmVlbiByZWdpc3RlcmVkIGluIGEgYmlydGggY29ob3J0CiAqIEhJVi5FLkRFMjI1OiBJbmZhbnQgSElWIHN0YXR1cyB8IEhJViBzdGF0dXMgcmVwb3J0ZWQgYWZ0ZXIgYXBwbHlpbmcgdGhlIEhJViB0ZXN0aW5nIGFsZ29yaXRobS4gTm8gc2luZ2xlIEhJViB0ZXN0IGNhbiBwcm92aWRlIGFuIEhJVi1wb3NpdGl2ZSBkaWFnbm9zaXMuCiAqIEhJVi5FLkRFMjI2OiBISVYtcG9zaXRpdmUgfCBJbmZhbnQgaXMgSElWLXBvc2l0aXZlCiAqIEhJVi5FLkRFMjI3OiBISVYtbmVnYXRpdmUgfCBJbmZhbnQgaXMgSElWLW5lZ2F0aXZlCiAqIEhJVi5FLkRFMjI4OiBVbmtub3duIHwgSW5mYW50IGhhcyB1bmtub3duIEhJViBzdGF0dXMKICogSElWLkUuREUyMzA6IEZpbmFsIGRpYWdub3NpcyBvZiBISVYtZXhwb3NlZCBpbmZhbnQgfCBISVYtZXhwb3NlZCBpbmZhbnQgZmluYWwgc3RhdHVzIGF0IDE4IG1vbnRocyBvciAzIG1vbnRocyBhZnRlciBjZXNzYXRpb24gb2YgYnJlYXN0ZmVlZGluZyAod2hpY2hldmVyIGlzIGxhdGVyKS4KICogSElWLkUuREUyMzE6IEhJVi1wb3NpdGl2ZSB8IFRoZSBpbmZhbnQgaXMgSElWLXBvc2l0aXZlCiAqIEhJVi5FLkRFMjMyOiBISVYtbmVnYXRpdmUgYW5kIG5vIGxvbmdlciBicmVhc3RmZWVkaW5nIHwgVGhlIGluZmFudCBpcyBISVYtbmVnYXRpdmUgYW5kIHRoZSBtb3RoZXIgaGFzIHF1aXQgYnJlYXN0ZmVlZGluZwogKiBISVYuRS5ERTIzMzogSElWIHN0YXR1cyB1bmtub3duIHwgVGhlIGZpbmFsIEhJViBzdGF0dXMgb2YgdGhlIGNoaWxkIGlzIHVua25vd24gYmVjYXVzZSB0aGUgaW5mYW50IGRpZWQsIHdhcyBsb3N0IHRvIGZvbGxvdy11cCBvciB0cmFuc2ZlcnJlZCBvdXQgd2l0aG91dCBldmVyIGhhdmluZyBhbiBISVYtcG9zaXRpdmUgZGlhZ25vc2lzIG9yIGlzIGFjdGl2ZSBpbiBjYXJlIGJ1dCB3YXMgbm90IHRlc3RlZCBhdCAxOCBtb250aHMKICogSElWLlNSVi5ERTIwOiBISVYtZXhwb3NlZCBpbmZhbnQgb3IgY2hpbGQgfCBXaGV0aGVyIHRoZSBpbmZhbnQgb3IgY2hpbGQgd2FzIGRldGVybWluZWQgdG8gaGF2ZSBoYWQgSElWIGV4cG9zdXJlCiAqIEhJVi5TUlYuREUyMjogRmluYWwgZGlhZ25vc2lzIG9mIEhJVi1leHBvc2VkIGluZmFudCB8IEhJVi1leHBvc2VkIGluZmFudCBmaW5hbCBzdGF0dXMgYXQgMTggbW9udGhzIG9yIDMgbW9udGhzIGFmdGVyIGNlc3NhdGlvbiBvZiBicmVhc3RmZWVkaW5nICh3aGljaGV2ZXIgaXMgbGF0ZXIpLgogKgogKiBBZGRpdGlvbmFsIENvbnRleHQKICogLSB3aGF0IGl0IG1lYXN1cmVzOiBUaGlzIGluZGljYXRvciBtZWFzdXJlcyBxdWFsaXR5IG9mIHByb2dyYW1tZSBmb2xsb3ctdXAgdG8gdHJhY2sgZXhwb3NlZCBpbmZhbnRzIGFuZCBhc2NlcnRhaW4gZmluYWwgSElWIHN0YXR1cy4KICogLSByYXRpb25hbGU6IOKAosKgRWZmZWN0aXZlIFBNVENUIHByb2dyYW1tZXMgbXVzdCBmb2xsb3cgSElWLWV4cG9zZWQgaW5mYW50cyB1bnRpbCB0aGUgZW5kIG9mIHRoZSBicmVhc3RmZWVkaW5nIHBlcmlvZCB0byBlbnN1cmUgdGhhdCB0aGUgZnVsbCBjYXNjYWRlIG9mIHNlcnZpY2VzIGFuZCBzdXBwb3J0IGlzIHByb3ZpZGVkIHRvIEhJVi1wb3NpdGl2ZSBtb3RoZXJzIGFuZCB0aGVpciBpbmZhbnRzLiB8IOKAosKgVGhlIGFiaWxpdHkgdG8gYXNjZXJ0YWluIGZpbmFsIG91dGNvbWUgc3RhdHVzIHRocm91Z2ggcm91dGluZSBwcm9ncmFtbWUgZGF0YSBhY3Jvc3MgbXVsdGlwbGUgcG9pbnRzIG9mIGNhcmUgaXMgYSBrZXkgY2hhbGxlbmdlLgogKiAtIG1ldGhvZDogVGhpcyBpbmRpY2F0b3IgbWVhc3VyZXMgcXVhbGl0eSBvZiBwcm9ncmFtbWUgZm9sbG93LXVwIHRvIHRyYWNrIGV4cG9zZWQgaW5mYW50cyBhbmQgYXNjZXJ0YWluIGZpbmFsIEhJViBzdGF0dXMuCiAqIAogKiBTdWdnZXN0ZWQgU2NvcmluZyBNZXRob2Q6IHByb3BvcnRpb24gfCBodHRwOi8vaGw3Lm9yZy9maGlyL3VzL2NxZm1lYXN1cmVzL1N0cnVjdHVyZURlZmluaXRpb24vcHJvcG9ydGlvbi1tZWFzdXJlLWNxZm0KICovCgpsaWJyYXJ5IEhJVklORDQyTG9naWMKCi8vIEluY2x1ZGVkIExpYnJhcmllcwp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBISVZDb21tb24gdmVyc2lvbiAnMC4wLjEnIGNhbGxlZCBISUMKaW5jbHVkZSBGSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgV0hPQ29tbW9uIGNhbGxlZCBXQ29tCgovLyBJbmRpY2F0b3IgRGVmaW5pdGlvbgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZT4gZGVmYXVsdCBJbnRlcnZhbFtAMjAyMy0wMS0wMSwgQDIwMjMtMDEtMzBdCgpjb250ZXh0IFBhdGllbnQKLyogUG9wdWxhdGlvbnMgKi8KCi8qCiAqSW5pdGlhbCBQb3B1bGF0aW9uCiAqLwoKZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24iOgogIHRydWUKCi8qKgogKiBOdW1lcmF0b3IKICogCiAqIERlZmluaXRpb246IEhJVi1leHBvc2VkIGluZmFudHMgYm9ybiB3aXRoaW4gdGhlIHBhc3QgMTIgbW9udGhzIChvciAyNCBtb250aHMgaW4gYnJlYXN0ZmVlZGluZyBzZXR0aW5ncykgd2hvIGhhdmUga25vd24gZmluYWwgSElWIG91dGNvbWUgc3RhdHVzCiAqIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBpbmZhbnRzIHdobyBhcmUgYW4gIkhJVi1leHBvc2VkIGluZmFudCBvciBjaGlsZCIgQU5EIFsod2l0aCBhbiAiSW5mYW50IGRhdGUgb2YgYmlydGgiIGluIHBhc3QgMTIgbW9udGhzKSBPUiAod2l0aCBhbiAiSW5mYW50IGRhdGUgb2YgYmlydGgiIGluIHBhc3QgMjQgbW9udGhzIElGIG1vdGhlcnMgYXJlICJCcmVhc3RmZWVkaW5nIildIEFORCAiUmVnaXN0ZXJlZCBpbiBiaXJ0aCBjb2hvcnQiPVRydWUgQU5EIHdpdGggYSAiRmluYWwgZGlhZ25vc2lzIG9mIEhJVi1leHBvc2VkIGluZmFudCIgb2YgTk9UIE5VTEwKICovCgpkZWZpbmUgIk51bWVyYXRvciI6CiAgdHJ1ZQoKCi8qKgogKiBEZW5vbWluYXRvcgogKgogKiBEZWZpbml0aW9uOiBhKSBQcm9ncmFtbWUtYmFzZWQvc2VydmljZSBkZWxpdmVyeSBkZW5vbWluYXRvciB8IE51bWJlciBvZiBISVYtZXhwb3NlZCBpbmZhbnRzIHdobyB3ZXJlIGJvcm4gd2l0aGluIHRoZSAxMiBtb250aHMgKG9yIDI0IG1vbnRocyBpbiBicmVhc3RmZWVkaW5nIHNldHRpbmdzKSBwcmlvciB0byB0aGUgcmVwb3J0aW5nIHBlcmlvZCBhbmQgcmVnaXN0ZXJlZCBpbiB0aGUgYmlydGggY29ob3J0IHwgRm9yIGV4YW1wbGUsIGZvciB0aGUgcmVwb3J0aW5nIHBlcmlvZCBKYW51YXJ5IHRvIERlY2VtYmVyIDIwMjEgdGhlIGRlbm9taW5hdG9yIHdvdWxkIGJlIHRoZSBudW1iZXIgb2YgSElWLWV4cG9zZWQgaW5mYW50cyBib3JuIGJldHdlZW4gSmFudWFyeSB0byBEZWNlbWJlciAyMDIwIGluIG5vbi1icmVhc3QgZmVlZGluZyBzZXR0aW5ncyBhbmQgSmFudWFyeSB0byBEZWNlbWJlciAyMDE5IGluIGJyZWFzdGZlZWRpbmcgc2V0dGluZ3MuIHwgIHwgYikgUG9wdWxhdGlvbi1iYXNlZCBkZW5vbWluYXRvciB8IEVzdGltYXRlZCBudW1iZXIgb2YgSElWLXBvc2l0aXZlIHdvbWVuIHdobyBkZWxpdmVyZWQgd2l0aGluIHRoZSBwYXN0IDEyIG1vbnRocyB8IChvciAyNCBtb250aHMgaW4gYnJlYXN0ZmVlZGluZyBzZXR0aW5ncykKICogQ2FsY3VsYXRpb246IENPVU5UIG9mIGluZmFudHMgd2hvIGFyZSBhbiAiSElWLWV4cG9zZWQgaW5mYW50IG9yIGNoaWxkIiBBTkQgWyh3aXRoIGFuICJJbmZhbnQgZGF0ZSBvZiBiaXJ0aCIgd2l0aGluIHBhc3QgMTIgbW9udGhzKSBPUiAod2l0aCBhbiAiSW5mYW50IGRhdGUgb2YgYmlydGgiIHdpdGhpbiBwYXN0IDI0IG1vbnRocyBJRiBtb3RoZXJzIGFyZSAiQnJlYXN0ZmVlZGluZyIpXSBBTkQgIlJlZ2lzdGVyZWQgaW4gYmlydGggY29ob3J0Ij1UcnVlCiAqLwoKZGVmaW5lICJEZW5vbWluYXRvciI6CiAgdHJ1ZQogICAgCgovKiBlbmQgUG9wdWxhdGlvbnMgKi8KCg=="/>
</content>
<content>
<contentType value="application/elm+xml"/>
<data
value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iTm9uZSIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1JbmZvIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICA8YTpzIHI9IjE2Ij4KICAgICAgICAgPGE6cz4vKioKICogTGlicmFyeTogSElWLklORC40MiBMb2dpYwogKiBSZWYgTm86IFZFUi42CiAqIFNob3J0IE5hbWU6IEZpbmFsIG91dGNvbWUgb2YgUE1UQ1QKICoKICogRGVmaW5pdGlvbjogJSBvZiBISVYtZXhwb3NlZCBpbmZhbnRzIHdob3NlIGZpbmFsIEhJViBvdXRjb21lIHN0YXR1cyBpcyBrbm93bgogKgogKiBOdW1lcmF0b3I6IEhJVi1leHBvc2VkIGluZmFudHMgYm9ybiB3aXRoaW4gdGhlIHBhc3QgMTIgbW9udGhzIChvciAyNCBtb250aHMgaW4gYnJlYXN0ZmVlZGluZyBzZXR0aW5ncykgd2hvIGhhdmUga25vd24gZmluYWwgSElWIG91dGNvbWUgc3RhdHVzCiAqIE51bWVyYXRvciBDYWxjdWxhdGlvbjogQ09VTlQgb2YgaW5mYW50cyB3aG8gYXJlIGFuICZxdW90O0hJVi1leHBvc2VkIGluZmFudCBvciBjaGlsZCZxdW90OyBBTkQgWyh3aXRoIGFuICZxdW90O0luZmFudCBkYXRlIG9mIGJpcnRoJnF1b3Q7IGluIHBhc3QgMTIgbW9udGhzKSBPUiAod2l0aCBhbiAmcXVvdDtJbmZhbnQgZGF0ZSBvZiBiaXJ0aCZxdW90OyBpbiBwYXN0IDI0IG1vbnRocyBJRiBtb3RoZXJzIGFyZSAmcXVvdDtCcmVhc3RmZWVkaW5nJnF1b3Q7KV0gQU5EICZxdW90O1JlZ2lzdGVyZWQgaW4gYmlydGggY29ob3J0JnF1b3Q7PVRydWUgQU5EIHdpdGggYSAmcXVvdDtGaW5hbCBkaWFnbm9zaXMgb2YgSElWLWV4cG9zZWQgaW5mYW50JnF1b3Q7IG9mIE5PVCBOVUxMCiAqIE51bWVyYXRvciBFeGNsdXNpb25zOiAKICoKICogRGVub21pbmF0b3I6IGEpIFByb2dyYW1tZS1iYXNlZC9zZXJ2aWNlIGRlbGl2ZXJ5IGRlbm9taW5hdG9yIHwgTnVtYmVyIG9mIEhJVi1leHBvc2VkIGluZmFudHMgd2hvIHdlcmUgYm9ybiB3aXRoaW4gdGhlIDEyIG1vbnRocyAob3IgMjQgbW9udGhzIGluIGJyZWFzdGZlZWRpbmcgc2V0dGluZ3MpIHByaW9yIHRvIHRoZSByZXBvcnRpbmcgcGVyaW9kIGFuZCByZWdpc3RlcmVkIGluIHRoZSBiaXJ0aCBjb2hvcnQgfCBGb3IgZXhhbXBsZSwgZm9yIHRoZSByZXBvcnRpbmcgcGVyaW9kIEphbnVhcnkgdG8gRGVjZW1iZXIgMjAyMSB0aGUgZGVub21pbmF0b3Igd291bGQgYmUgdGhlIG51bWJlciBvZiBISVYtZXhwb3NlZCBpbmZhbnRzIGJvcm4gYmV0d2VlbiBKYW51YXJ5IHRvIERlY2VtYmVyIDIwMjAgaW4gbm9uLWJyZWFzdCBmZWVkaW5nIHNldHRpbmdzIGFuZCBKYW51YXJ5IHRvIERlY2VtYmVyIDIwMTkgaW4gYnJlYXN0ZmVlZGluZyBzZXR0aW5ncy4gfCAgfCBiKSBQb3B1bGF0aW9uLWJhc2VkIGRlbm9taW5hdG9yIHwgRXN0aW1hdGVkIG51bWJlciBvZiBISVYtcG9zaXRpdmUgd29tZW4gd2hvIGRlbGl2ZXJlZCB3aXRoaW4gdGhlIHBhc3QgMTIgbW9udGhzIHwgKG9yIDI0IG1vbnRocyBpbiBicmVhc3RmZWVkaW5nIHNldHRpbmdzKQogKiBEZW5vbWluYXRvciBDYWxjdWxhdGlvbjogQ09VTlQgb2YgaW5mYW50cyB3aG8gYXJlIGFuICZxdW90O0hJVi1leHBvc2VkIGluZmFudCBvciBjaGlsZCZxdW90OyBBTkQgWyh3aXRoIGFuICZxdW90O0luZmFudCBkYXRlIG9mIGJpcnRoJnF1b3Q7IHdpdGhpbiBwYXN0IDEyIG1vbnRocykgT1IgKHdpdGggYW4gJnF1b3Q7SW5mYW50IGRhdGUgb2YgYmlydGgmcXVvdDsgd2l0aGluIHBhc3QgMjQgbW9udGhzIElGIG1vdGhlcnMgYXJlICZxdW90O0JyZWFzdGZlZWRpbmcmcXVvdDspXSBBTkQgJnF1b3Q7UmVnaXN0ZXJlZCBpbiBiaXJ0aCBjb2hvcnQmcXVvdDs9VHJ1ZQogKiBEZW5vbWluYXRvciBFeGNsdXNpb25zOiAKICoKICogRGlzYWdncmVnYXRpb25zOgogKiDigKLCoE91dGNvbWUgc3RhdHVzIChISVYtcG9zaXRpdmUsIEhJVi1uZWdhdGl2ZSwgbm8gbG9uZ2VyIGJyZWFzdGZlZWRpbmcpIAogKiAg4oCiwqBDaXRpZXMgYW5kIG90aGVyIGFkbWluaXN0cmF0aXZlIHJlZ2lvbnMgb2YgZXBpZGVtaW9sb2dpYyBpbXBvcnRhbmNlCiAqCiAqIERpc2FnZ3JlZ2F0aW9uIEVsZW1lbnRzOiBJbmZhbnQgSElWIHN0YXR1cwogKgogKiBOdW1lcmF0b3IgYW5kIERlbm9taW5hdG9yIEVsZW1lbnRzOgogKiBCcmVhc3RmZWVkaW5nIAogKiAgRmluYWwgZGlhZ25vc2lzIG9mIEhJVi1leHBvc2VkIGluZmFudCAKICogIEhJVi1leHBvc2VkIGluZmFudCBvciBjaGlsZCAKICogIEluZmFudCBkYXRlIG9mIGJpcnRoIAogKiAgUmVnaXN0ZXJlZCBpbiBiaXJ0aCBjb2hvcnQKICoKICogUmVmZXJlbmNlOiBDb25zb2xpZGF0ZWQgZ3VpZGVsaW5lcyBvbiBwZXJzb24tY2VudHJlZCBISVYgc3RyYXRlZ2ljIGluZm9ybWF0aW9uOiBzdHJlbmd0aGVuaW5nIHJvdXRpbmUgZGF0YSBmb3IgaW1wYWN0LiBHZW5ldmE6IFdvcmxkIEhlYWx0aCBPcmdhbml6YXRpb247IDIwMjIKICogCiAqIERhdGEgQ29uY2VwdHM6CiAqIEhJVi5CLkRFMzI6IEJyZWFzdGZlZWRpbmcgfCBJbmZhbnQgaXMgYmVpbmcgYnJlYXN0ZmVkIGJ5IG1vdGhlcgogKiBISVYuRC5ERTMyOiBCcmVhc3RmZWVkaW5nIHwgQ2xpZW50IGlzIGdpdmluZyBpbmZhbnQgYnJlYXN0IG1pbGsKICogSElWLkUuREU4NzogSW5mYW50IGRhdGUgb2YgYmlydGggfCBUaGUgaW5mYW50J3MgZGF0ZSBvZiBiaXJ0aCAoRE9CKSBpZiBrbm93bgogKiBISVYuRS5ERTExMjogSElWLWV4cG9zZWQgaW5mYW50IG9yIGNoaWxkIHwgV2hldGhlciB0aGUgaW5mYW50IG9yIGNoaWxkIHdhcyBkZXRlcm1pbmVkIHRvIGhhdmUgaGFkIEhJViBleHBvc3VyZQogKiBISVYuRS5ERTE3OTogUmVnaXN0ZXJlZCBpbiBiaXJ0aCBjb2hvcnQgfCBXaGV0aGVyIHRoZSBpbmZhbnQgaGFzIGJlZW4gcmVnaXN0ZXJlZCBpbiBhIGJpcnRoIGNvaG9ydAogKiBISVYuRS5ERTIyNTogSW5mYW50IEhJViBzdGF0dXMgfCBISVYgc3RhdHVzIHJlcG9ydGVkIGFmdGVyIGFwcGx5aW5nIHRoZSBISVYgdGVzdGluZyBhbGdvcml0aG0uIE5vIHNpbmdsZSBISVYgdGVzdCBjYW4gcHJvdmlkZSBhbiBISVYtcG9zaXRpdmUgZGlhZ25vc2lzLgogKiBISVYuRS5ERTIyNjogSElWLXBvc2l0aXZlIHwgSW5mYW50IGlzIEhJVi1wb3NpdGl2ZQogKiBISVYuRS5ERTIyNzogSElWLW5lZ2F0aXZlIHwgSW5mYW50IGlzIEhJVi1uZWdhdGl2ZQogKiBISVYuRS5ERTIyODogVW5rbm93biB8IEluZmFudCBoYXMgdW5rbm93biBISVYgc3RhdHVzCiAqIEhJVi5FLkRFMjMwOiBGaW5hbCBkaWFnbm9zaXMgb2YgSElWLWV4cG9zZWQgaW5mYW50IHwgSElWLWV4cG9zZWQgaW5mYW50IGZpbmFsIHN0YXR1cyBhdCAxOCBtb250aHMgb3IgMyBtb250aHMgYWZ0ZXIgY2Vzc2F0aW9uIG9mIGJyZWFzdGZlZWRpbmcgKHdoaWNoZXZlciBpcyBsYXRlcikuCiAqIEhJVi5FLkRFMjMxOiBISVYtcG9zaXRpdmUgfCBUaGUgaW5mYW50IGlzIEhJVi1wb3NpdGl2ZQogKiBISVYuRS5ERTIzMjogSElWLW5lZ2F0aXZlIGFuZCBubyBsb25nZXIgYnJlYXN0ZmVlZGluZyB8IFRoZSBpbmZhbnQgaXMgSElWLW5lZ2F0aXZlIGFuZCB0aGUgbW90aGVyIGhhcyBxdWl0IGJyZWFzdGZlZWRpbmcKICogSElWLkUuREUyMzM6IEhJViBzdGF0dXMgdW5rbm93biB8IFRoZSBmaW5hbCBISVYgc3RhdHVzIG9mIHRoZSBjaGlsZCBpcyB1bmtub3duIGJlY2F1c2UgdGhlIGluZmFudCBkaWVkLCB3YXMgbG9zdCB0byBmb2xsb3ctdXAgb3IgdHJhbnNmZXJyZWQgb3V0IHdpdGhvdXQgZXZlciBoYXZpbmcgYW4gSElWLXBvc2l0aXZlIGRpYWdub3NpcyBvciBpcyBhY3RpdmUgaW4gY2FyZSBidXQgd2FzIG5vdCB0ZXN0ZWQgYXQgMTggbW9udGhzCiAqIEhJVi5TUlYuREUyMDogSElWLWV4cG9zZWQgaW5mYW50IG9yIGNoaWxkIHwgV2hldGhlciB0aGUgaW5mYW50IG9yIGNoaWxkIHdhcyBkZXRlcm1pbmVkIHRvIGhhdmUgaGFkIEhJViBleHBvc3VyZQogKiBISVYuU1JWLkRFMjI6IEZpbmFsIGRpYWdub3NpcyBvZiBISVYtZXhwb3NlZCBpbmZhbnQgfCBISVYtZXhwb3NlZCBpbmZhbnQgZmluYWwgc3RhdHVzIGF0IDE4IG1vbnRocyBvciAzIG1vbnRocyBhZnRlciBjZXNzYXRpb24gb2YgYnJlYXN0ZmVlZGluZyAod2hpY2hldmVyIGlzIGxhdGVyKS4KICoKICogQWRkaXRpb25hbCBDb250ZXh0CiAqIC0gd2hhdCBpdCBtZWFzdXJlczogVGhpcyBpbmRpY2F0b3IgbWVhc3VyZXMgcXVhbGl0eSBvZiBwcm9ncmFtbWUgZm9sbG93LXVwIHRvIHRyYWNrIGV4cG9zZWQgaW5mYW50cyBhbmQgYXNjZXJ0YWluIGZpbmFsIEhJViBzdGF0dXMuCiAqIC0gcmF0aW9uYWxlOiDigKLCoEVmZmVjdGl2ZSBQTVRDVCBwcm9ncmFtbWVzIG11c3QgZm9sbG93IEhJVi1leHBvc2VkIGluZmFudHMgdW50aWwgdGhlIGVuZCBvZiB0aGUgYnJlYXN0ZmVlZGluZyBwZXJpb2QgdG8gZW5zdXJlIHRoYXQgdGhlIGZ1bGwgY2FzY2FkZSBvZiBzZXJ2aWNlcyBhbmQgc3VwcG9ydCBpcyBwcm92aWRlZCB0byBISVYtcG9zaXRpdmUgbW90aGVycyBhbmQgdGhlaXIgaW5mYW50cy4gfCDigKLCoFRoZSBhYmlsaXR5IHRvIGFzY2VydGFpbiBmaW5hbCBvdXRjb21lIHN0YXR1cyB0aHJvdWdoIHJvdXRpbmUgcHJvZ3JhbW1lIGRhdGEgYWNyb3NzIG11bHRpcGxlIHBvaW50cyBvZiBjYXJlIGlzIGEga2V5IGNoYWxsZW5nZS4KICogLSBtZXRob2Q6IFRoaXMgaW5kaWNhdG9yIG1lYXN1cmVzIHF1YWxpdHkgb2YgcHJvZ3JhbW1lIGZvbGxvdy11cCB0byB0cmFjayBleHBvc2VkIGluZmFudHMgYW5kIGFzY2VydGFpbiBmaW5hbCBISVYgc3RhdHVzLgogKiAKICogU3VnZ2VzdGVkIFNjb3JpbmcgTWV0aG9kOiBwcm9wb3J0aW9uIHwgaHR0cDovL2hsNy5vcmcvZmhpci91cy9jcWZtZWFzdXJlcy9TdHJ1Y3R1cmVEZWZpbml0aW9uL3Byb3BvcnRpb24tbWVhc3VyZS1jcWZtCiAqLwoKbGlicmFyeSBISVZJTkQ0MkxvZ2ljPC9hOnM+CiAgICAgIDwvYTpzPgogICA8L2Fubm90YXRpb24+CiAgIDxpZGVudGlmaWVyIGlkPSJISVZJTkQ0MkxvZ2ljIiBzeXN0ZW09Imh0dHA6Ly9zbWFydC53aG8uaW50L2hpdiIvPgogICA8c2NoZW1hSWRlbnRpZmllciBpZD0idXJuOmhsNy1vcmc6ZWxtIiB2ZXJzaW9uPSJyMSIvPgogICA8dXNpbmdzPgogICAgICA8ZGVmIGxvY2FsSWRlbnRpZmllcj0iU3lzdGVtIiB1cmk9InVybjpobDctb3JnOmVsbS10eXBlczpyMSIvPgogICAgICA8ZGVmIGxvY2FsSWQ9IjEiIGxvY2F0b3I9IjU5OjEtNTk6MjYiIGxvY2FsSWRlbnRpZmllcj0iRkhJUiIgdXJpPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB2ZXJzaW9uPSI0LjAuMSI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjEiPgogICAgICAgICAgICAgICA8YTpzPi8vIEluY2x1ZGVkIExpYnJhcmllcwp1c2luZyA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5GSElSPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICc0LjAuMSc8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgIDwvdXNpbmdzPgogICA8aW5jbHVkZXM+CiAgICAgIDxkZWYgbG9jYWxJZD0iMiIgbG9jYXRvcj0iNjE6MS02MTo0NCIgbG9jYWxJZGVudGlmaWVyPSJISUMiIHBhdGg9Imh0dHA6Ly9zbWFydC53aG8uaW50L2hpdi9ISVZDb21tb24iIHZlcnNpb249IjAuMC4xIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMiI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5ISVZDb21tb248L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzAuMC4xJyBjYWxsZWQgSElDPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjMiIGxvY2F0b3I9IjYyOjEtNjI6MzUiIGxvY2FsSWRlbnRpZmllcj0iRkhJUkhlbHBlcnMiIHBhdGg9Imh0dHA6Ly9obDcub3JnL2ZoaXIvRkhJUkhlbHBlcnMiIHZlcnNpb249IjQuMC4xIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMyI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5GSElSSGVscGVyczwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gdmVyc2lvbiAnNC4wLjEnPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjQiIGxvY2F0b3I9IjY0OjEtNjQ6MjkiIGxvY2FsSWRlbnRpZmllcj0iV0NvbSIgcGF0aD0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2L1dIT0NvbW1vbiI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjQiPgogICAgICAgICAgICAgICA8YTpzPmluY2x1ZGUgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+V0hPQ29tbW9uPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiBjYWxsZWQgV0NvbTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgPC9pbmNsdWRlcz4KICAgPHBhcmFtZXRlcnM+CiAgICAgIDxkZWYgbG9jYWxJZD0iMTAiIGxvY2F0b3I9IjY3OjEtNjc6ODgiIG5hbWU9Ik1lYXN1cmVtZW50IFBlcmlvZCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjEwIj4KICAgICAgICAgICAgICAgPGE6cz4vLyBJbmRpY2F0b3IgRGVmaW5pdGlvbgpwYXJhbWV0ZXIgJnF1b3Q7TWVhc3VyZW1lbnQgUGVyaW9kJnF1b3Q7IDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjkiPgogICAgICAgICAgICAgICAgICA8YTpzPkludGVydmFsJmx0OzwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjgiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPkRhdGU8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+PjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gZGVmYXVsdCA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSI3Ij4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI1Ij5JbnRlcnZhbFtAMjAyMy0wMS0wMSwgQDIwMjMtMDEtMzBdPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZGVmYXVsdCBsb2NhbElkPSI3IiBsb2NhdG9yPSI2Nzo1NS02Nzo4OCIgbG93Q2xvc2VkPSJ0cnVlIiBoaWdoQ2xvc2VkPSJ0cnVlIiB4c2k6dHlwZT0iSW50ZXJ2YWwiPgogICAgICAgICAgICA8bG93IGxvY2FsSWQ9IjUiIGxvY2F0b3I9IjY3OjY0LTY3Ojc0IiB4c2k6dHlwZT0iRGF0ZSI+CiAgICAgICAgICAgICAgIDx5ZWFyIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMjAyMyIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPG1vbnRoIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPGRheSB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjEiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgIDwvbG93PgogICAgICAgICAgICA8aGlnaCBsb2NhbElkPSI2IiBsb2NhdG9yPSI2Nzo3Ny02Nzo4NyIgeHNpOnR5cGU9IkRhdGUiPgogICAgICAgICAgICAgICA8eWVhciB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjIwMjMiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxtb250aCB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjEiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxkYXkgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIzMCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgPC9oaWdoPgogICAgICAgICA8L2RlZmF1bHQ+CiAgICAgICAgIDxwYXJhbWV0ZXJUeXBlU3BlY2lmaWVyIGxvY2FsSWQ9IjkiIGxvY2F0b3I9IjY3OjMyLTY3OjQ1IiB4c2k6dHlwZT0iSW50ZXJ2YWxUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgPHBvaW50VHlwZSBsb2NhbElkPSI4IiBsb2NhdG9yPSI2Nzo0MS02Nzo0NCIgbmFtZT0idDpEYXRlIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgIDwvcGFyYW1ldGVyVHlwZVNwZWNpZmllcj4KICAgICAgPC9kZWY+CiAgIDwvcGFyYW1ldGVycz4KICAgPGNvbnRleHRzPgogICAgICA8ZGVmIGxvY2F0b3I9IjY5OjEtNjk6MTUiIG5hbWU9IlBhdGllbnQiLz4KICAgPC9jb250ZXh0cz4KICAgPHN0YXRlbWVudHM+CiAgICAgIDxkZWYgbG9jYXRvcj0iNjk6MS02OToxNSIgbmFtZT0iUGF0aWVudCIgY29udGV4dD0iUGF0aWVudCI+CiAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJTaW5nbGV0b25Gcm9tIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYXRvcj0iNjk6MS02OToxNSIgZGF0YVR5cGU9ImZoaXI6UGF0aWVudCIgdGVtcGxhdGVJZD0iaHR0cDovL2hsNy5vcmcvZmhpci9TdHJ1Y3R1cmVEZWZpbml0aW9uL1BhdGllbnQiIHhzaTp0eXBlPSJSZXRyaWV2ZSIvPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjEyIiBsb2NhdG9yPSI3NjoxLTc3OjYiIG5hbWU9IkluaXRpYWwgUG9wdWxhdGlvbiIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjEyIj4KICAgICAgICAgICAgICAgPGE6cyByPSIxMSI+LyogUG9wdWxhdGlvbnMgKi8KCi8qCiAqSW5pdGlhbCBQb3B1bGF0aW9uCiAqLwoKZGVmaW5lICZxdW90O0luaXRpYWwgUG9wdWxhdGlvbiZxdW90OzoKICB0cnVlPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjExIiBsb2NhdG9yPSI3NzozLTc3OjYiIHZhbHVlVHlwZT0idDpCb29sZWFuIiB2YWx1ZT0idHJ1ZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMTQiIGxvY2F0b3I9Ijg2OjEtODc6NiIgbmFtZT0iTnVtZXJhdG9yIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTQiPgogICAgICAgICAgICAgICA8YTpzIHI9IjEzIj4vKioKICogTnVtZXJhdG9yCiAqIAogKiBEZWZpbml0aW9uOiBISVYtZXhwb3NlZCBpbmZhbnRzIGJvcm4gd2l0aGluIHRoZSBwYXN0IDEyIG1vbnRocyAob3IgMjQgbW9udGhzIGluIGJyZWFzdGZlZWRpbmcgc2V0dGluZ3MpIHdobyBoYXZlIGtub3duIGZpbmFsIEhJViBvdXRjb21lIHN0YXR1cwogKiBDYWxjdWxhdGlvbjogQ09VTlQgb2YgaW5mYW50cyB3aG8gYXJlIGFuICZxdW90O0hJVi1leHBvc2VkIGluZmFudCBvciBjaGlsZCZxdW90OyBBTkQgWyh3aXRoIGFuICZxdW90O0luZmFudCBkYXRlIG9mIGJpcnRoJnF1b3Q7IGluIHBhc3QgMTIgbW9udGhzKSBPUiAod2l0aCBhbiAmcXVvdDtJbmZhbnQgZGF0ZSBvZiBiaXJ0aCZxdW90OyBpbiBwYXN0IDI0IG1vbnRocyBJRiBtb3RoZXJzIGFyZSAmcXVvdDtCcmVhc3RmZWVkaW5nJnF1b3Q7KV0gQU5EICZxdW90O1JlZ2lzdGVyZWQgaW4gYmlydGggY29ob3J0JnF1b3Q7PVRydWUgQU5EIHdpdGggYSAmcXVvdDtGaW5hbCBkaWFnbm9zaXMgb2YgSElWLWV4cG9zZWQgaW5mYW50JnF1b3Q7IG9mIE5PVCBOVUxMCiAqLwoKZGVmaW5lICZxdW90O051bWVyYXRvciZxdW90OzoKICB0cnVlPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjEzIiBsb2NhdG9yPSI4NzozLTg3OjYiIHZhbHVlVHlwZT0idDpCb29sZWFuIiB2YWx1ZT0idHJ1ZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMTYiIGxvY2F0b3I9Ijk3OjEtOTg6NiIgbmFtZT0iRGVub21pbmF0b3IiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIxNiI+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMTUiPi8qKgogKiBEZW5vbWluYXRvcgogKgogKiBEZWZpbml0aW9uOiBhKSBQcm9ncmFtbWUtYmFzZWQvc2VydmljZSBkZWxpdmVyeSBkZW5vbWluYXRvciB8IE51bWJlciBvZiBISVYtZXhwb3NlZCBpbmZhbnRzIHdobyB3ZXJlIGJvcm4gd2l0aGluIHRoZSAxMiBtb250aHMgKG9yIDI0IG1vbnRocyBpbiBicmVhc3RmZWVkaW5nIHNldHRpbmdzKSBwcmlvciB0byB0aGUgcmVwb3J0aW5nIHBlcmlvZCBhbmQgcmVnaXN0ZXJlZCBpbiB0aGUgYmlydGggY29ob3J0IHwgRm9yIGV4YW1wbGUsIGZvciB0aGUgcmVwb3J0aW5nIHBlcmlvZCBKYW51YXJ5IHRvIERlY2VtYmVyIDIwMjEgdGhlIGRlbm9taW5hdG9yIHdvdWxkIGJlIHRoZSBudW1iZXIgb2YgSElWLWV4cG9zZWQgaW5mYW50cyBib3JuIGJldHdlZW4gSmFudWFyeSB0byBEZWNlbWJlciAyMDIwIGluIG5vbi1icmVhc3QgZmVlZGluZyBzZXR0aW5ncyBhbmQgSmFudWFyeSB0byBEZWNlbWJlciAyMDE5IGluIGJyZWFzdGZlZWRpbmcgc2V0dGluZ3MuIHwgIHwgYikgUG9wdWxhdGlvbi1iYXNlZCBkZW5vbWluYXRvciB8IEVzdGltYXRlZCBudW1iZXIgb2YgSElWLXBvc2l0aXZlIHdvbWVuIHdobyBkZWxpdmVyZWQgd2l0aGluIHRoZSBwYXN0IDEyIG1vbnRocyB8IChvciAyNCBtb250aHMgaW4gYnJlYXN0ZmVlZGluZyBzZXR0aW5ncykKICogQ2FsY3VsYXRpb246IENPVU5UIG9mIGluZmFudHMgd2hvIGFyZSBhbiAmcXVvdDtISVYtZXhwb3NlZCBpbmZhbnQgb3IgY2hpbGQmcXVvdDsgQU5EIFsod2l0aCBhbiAmcXVvdDtJbmZhbnQgZGF0ZSBvZiBiaXJ0aCZxdW90OyB3aXRoaW4gcGFzdCAxMiBtb250aHMpIE9SICh3aXRoIGFuICZxdW90O0luZmFudCBkYXRlIG9mIGJpcnRoJnF1b3Q7IHdpdGhpbiBwYXN0IDI0IG1vbnRocyBJRiBtb3RoZXJzIGFyZSAmcXVvdDtCcmVhc3RmZWVkaW5nJnF1b3Q7KV0gQU5EICZxdW90O1JlZ2lzdGVyZWQgaW4gYmlydGggY29ob3J0JnF1b3Q7PVRydWUKICovCgpkZWZpbmUgJnF1b3Q7RGVub21pbmF0b3ImcXVvdDs6CiAgdHJ1ZTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIxNSIgbG9jYXRvcj0iOTg6My05ODo2IiB2YWx1ZVR5cGU9InQ6Qm9vbGVhbiIgdmFsdWU9InRydWUiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgIDwvZGVmPgogICA8L3N0YXRlbWVudHM+CjwvbGlicmFyeT4K"/>
</content>
</Library>