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-11-07 |
<Library xmlns="http://hl7.org/fhir">
<id value="HIVIND22Logic"/>
<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 HIVIND22Logic</b></p><a name="HIVIND22Logic"> </a><a name="hcHIVIND22Logic"> </a><a name="HIVIND22Logic-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><tr><td>Depends On</td><td>Library HIE</td><td><a href="Library-HIVIndicatorElements.html">HIVIndicatorElements</a></td></tr><tr><td>Depends On</td><td>Library HE</td><td><a href="Library-HIVElements.html">HIVElements</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>Measure Population</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Administrative Gender Stratifier</td><td>out</td><td>0</td><td>1</td><td>Coding</td></tr><tr><td>Age Stratifier</td><td>out</td><td>0</td><td>1</td><td>string</td></tr><tr><td>Geographic Region Stratifier</td><td>out</td><td>0</td><td>1</td><td>string</td></tr><tr><td>patientGroups Stratifier</td><td>out</td><td>0</td><td>*</td><td>string</td></tr><tr><td>HIV status of partner or contact</td><td>out</td><td>0</td><td>1</td><td>Coding</td></tr><tr><td>Stratification</td><td>out</td><td>0</td><td>1</td><td>string</td></tr></table><h2>Contents</h2><p><code>text/cql</code></p><pre><code class="language-sql">/**
* Library: HIV.IND.22 Logic
* Ref No: HTS.5
* Short Name: HTS partner services
*
* Definition: Number of people who were identified and tested using partner testing services and who received their results
*
* Numerator: For the general population: Number of elicited partners and other contacts* of people diagnosed with HIV who received HTS | | Additional cascade data collected: | • Number of people diagnosed with HIV (index cases) offered partner services | • Number of people diagnosed with HIV (index cases) accepting partner services | • Number of contacts/partners of people living with HIV whose information is elicited from people diagnosed with HIV (index cases) | | For key populations: Number of elicited contacts1 of members of key populations who received HTS. | Additional cascade data collected: | • Number of key population members offered social network-based/partner services | • Number of key population members accepting social network-based/partner services | • Number of contacts of key population members elicited
* Numerator Calculation: COUNT of clients "Referred through partner services" that are a 'Partner or contact of an index case' AND "Type of contact or partner for partner services" IN 'Sexual partner', 'Drug-injecting partner' with "HIV test date" AND "Date HIV test results returned" in the reporting period
* Numerator Exclusions:
*
* Denominator: 1
* Denominator Calculation: 1
* Denominator Exclusions:
*
* Disaggregations:
* • By index case gender (male, female, other**)
* • Age (0–4, 5–9, 10–14, 15–19, 20–24, 25–49, 50+ years)***
* • HIV status of partner or contact (already known positive, newly diagnosed positive, negative)
* • Key populations (men who have sex with men, people living in prisons and other closed settings, people who inject drugs, sex workers, trans and gender diverse people)****
* • Cities and other administrative regions of epidemiologic importance
*
* Disaggregation Elements: *Gender [of index case] | Age | Partner HIV status (reported) | HIV status of contact | Key population member type
*
* Numerator and Denominator Elements:
* Date HIV test results returned
* HIV test date
* Referred through partner services
* Type of contact or partner for partner services
*
* 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.DE5: Referred through partner services | Client reported coming to the facility after receiving a provider-assisted referral or patient referral from a contact or partner
* HIV.B.DE6: Partner or contact of an index case | The client is a contact or partner of a person diagnosed with HIV (an index case)
* HIV.B.DE7: Partner or contact of an HIV testing client (non-index case) | The client is a contact or partner identified through partner or social network services, but is not known to be a partner of an index-case
* HIV.B.DE8: Type of contact or partner for partner services | Client's relationship to the person that referred the client for partner services or family services
* HIV.B.DE9: Biological child | Client is the biological child of the person that referred the client for family services
* HIV.B.DE10: Drug-injecting partner | Client is a drug-injecting partner of the person that referred the client for partner services
* HIV.B.DE11: Sexual partner | Client is a sexual partner of the person that referred the client for partner services
* HIV.B.DE12: Social contact | Client is a social contact of the person that referred the client for social-network services
* HIV.B.DE33: Partner HIV status (reported) | The HIV status of the client's partner.
* HIV.B.DE34: HIV-positive | Client's partner is HIV-positive
* HIV.B.DE35: HIV-negative | Client's partner is HIV-negative
* HIV.B.DE36: Unknown | Don't know HIV status - client does not know partner's HIV status
* HIV.B.DE50: Key population member type* | The type of key population that the client is included in
* HIV.B.DE51: Sex worker | Client is a sex worker
* HIV.B.DE52: Men who have sex with men | Client is a man who has sex with men
* HIV.B.DE53: Trans and gender-diverse people | Client identifies as trans and gender-diverse
* HIV.B.DE54: People who inject drugs | Client is a person who injects drugs
* HIV.B.DE55: People living in prisons and other closed settings | Client lives in a prison or another closed setting
* HIV.B.DE60: Date HIV test results returned | Date HIV test result returned to client
* HIV.B.DE110: HIV test date | Date of the HIV test
* HIV.E.DE114: Key population member type* | The type of key population that the infant's mother is included in
* HIV.E.DE115: Sex worker | Infant's mother is a sex worker
* HIV.E.DE116: People who inject drugs | Infant's mother is a person who injects drugs
* HIV.E.DE117: Trans and gender-diverse people | Infant's mother identifies as trans and gender-diverse
* HIV.E.DE118: People living in prisons and other closed setting | Infant's mother is in a prison or closed setting
* HIV.E.DE224: HIV test date | Date of the HIV test
* HIV.PRV.DE11: HIV status of contact | The HIV status of the client's contact
* HIV.PRV.DE12: HIV-positive | Client's contact is HIV-positive
* HIV.PRV.DE13: HIV-negative | Client's contact is HIV-negative
* HIV.PRV.DE14: Unknown | Client does not know contact's HIV status
* HIV.SRV.DE1: HIV test date | Date of the HIV test
*
* Additional Context
* - what it measures: This measures the coverage and impact of the testing cascade of services for partners and other contacts* of people living with HIV, including key population members.
* - rationale: • Contact testing, including among sexual partners, has been shown to increase the diagnosis of already-infected contacts and partners of newly identified HIV cases. | • Among serodiscordant couples, partner notification and testing can be a critical step in preventing infection of the uninfected partner. | • Contact and/or partner notification and testing should be voluntary and provided with supportive services.
* - method: Patient monitoring data (HIV index testing services register or logbook, HTS registers or reporting forms) or EMR
*
* Suggested Scoring Method: continuous-variable | http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cv-measure-cqfm
*/
library HIVIND22Logic
// 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
include HIVIndicatorElements called HIE
include HIVElements called HE
// Indicator Definition
parameter "Measurement Period" Interval<Date> default Interval[@2023-01-01, @2023-01-30]
context Patient
/* Populations */
/*
*Initial Population
*/
define "Initial Population":
true
/**
* Measure Population
*
* Definition: For the general population: Number of elicited partners and other contacts* of people diagnosed with HIV who received HTS | | Additional cascade data collected: | • Number of people diagnosed with HIV (index cases) offered partner services | • Number of people diagnosed with HIV (index cases) accepting partner services | • Number of contacts/partners of people living with HIV whose information is elicited from people diagnosed with HIV (index cases) | | For key populations: Number of elicited contacts1 of members of key populations who received HTS. | Additional cascade data collected: | • Number of key population members offered social network-based/partner services | • Number of key population members accepting social network-based/partner services | • Number of contacts of key population members elicited
* Calculation: For the general population: Number of elicited partners and other contacts* of people diagnosed with HIV who received HTS | | Additional cascade data collected: | • Number of people diagnosed with HIV (index cases) offered partner services | • Number of people diagnosed with HIV (index cases) accepting partner services | • Number of contacts/partners of people living with HIV whose information is elicited from people diagnosed with HIV (index cases) | | For key populations: Number of elicited contacts1 of members of key populations who received HTS. | Additional cascade data collected: | • Number of key population members offered social network-based/partner services | • Number of key population members accepting social network-based/partner services | • Number of contacts of key population members elicited
*/
define "Measure Population":
exists(HE."Partner or contact of an index case" IC
with HE."Drug-injecting partner" DIP
such that IC.hasMember.references(DIP)
with HIE."HIV test results returned in measurement period" HIV
such that IC.hasMember.references(HIV)
and HIV.issued after start of "Measurement Period"
and HIV.issued before end of "Measurement Period")
or
exists(HE."Partner or contact of an index case" IC
with HE."Sexual partner" SP
such that IC.hasMember.references(SP)
with HIE."HIV test results returned in measurement period" HIV
such that IC.hasMember.references(HIV)
and HIV.issued after start of "Measurement Period"
and HIV.issued before end of "Measurement Period")
/**
* Measure Observation
* Definition: For the general population: Number of elicited partners and other contacts* of people diagnosed with HIV who received HTS | | Additional cascade data collected: | • Number of people diagnosed with HIV (index cases) offered partner services | • Number of people diagnosed with HIV (index cases) accepting partner services | • Number of contacts/partners of people living with HIV whose information is elicited from people diagnosed with HIV (index cases) | | For key populations: Number of elicited contacts1 of members of key populations who received HTS. | Additional cascade data collected: | • Number of key population members offered social network-based/partner services | • Number of key population members accepting social network-based/partner services | • Number of contacts of key population members elicited
* Calculation: For the general population: Number of elicited partners and other contacts* of people diagnosed with HIV who received HTS | | Additional cascade data collected: | • Number of people diagnosed with HIV (index cases) offered partner services | • Number of people diagnosed with HIV (index cases) accepting partner services | • Number of contacts/partners of people living with HIV whose information is elicited from people diagnosed with HIV (index cases) | | For key populations: Number of elicited contacts1 of members of key populations who received HTS. | Additional cascade data collected: | • Number of key population members offered social network-based/partner services | • Number of key population members accepting social network-based/partner services | • Number of contacts of key population members elicited
*/
define function "Measure Observation"(Patient "Patient"):
1
/* end Populations */
/*
* Disaggregators
*/
define "Administrative Gender Stratifier":
HIE."By Administrative Gender Stratifier"
define "Age Stratifier":
HIE."By Age Stratifier 2"
define "Geographic Region Stratifier":
HIE."By Geographic Region Stratifier"
define "patientGroups Stratifier":
HIE."patientGroups"
define "HIV status of partner or contact":
HIE."HIV status of partner or contact"
define "Stratification":
HIE."By Administrative Gender Stratifier".code
+ ':' + HIE."HIV status of partner or contact".code
+ ':' + HIE."By Age Stratifier 2"
+ ':' + HIE."By Geographic Region Stratifier"
+ Combine(HIE.patientGroups, ':')
</code></pre><p><code>Content not shown - (</code><code>application/elm+xml</code>, size = 51Kb )</p></div>
</text>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability">
<valueCode value="computable"/>
</extension>
<url value="http://smart.who.int/hiv/Library/HIVIND22Logic"/>
<version value="0.3.0"/>
<name value="HIVIND22Logic"/>
<title value="HIV.IND.22 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-11-07T21:07:17+00:00"/>
<publisher value="WHO"/>
<contact>
<name value="WHO"/>
<telecom>
<system value="url"/>
<value value="http://who.int"/>
</telecom>
</contact>
<description
value="Number of people who were identified and tested using partner testing services and who received their results"/>
<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>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library HIE"/>
<resource value="http://smart.who.int/hiv/Library/HIVIndicatorElements"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library HE"/>
<resource value="http://smart.who.int/hiv/Library/HIVElements"/>
</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="Measure Population"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="Administrative Gender Stratifier"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Coding"/>
</parameter>
<parameter>
<name value="Age Stratifier"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="string"/>
</parameter>
<parameter>
<name value="Geographic Region Stratifier"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="string"/>
</parameter>
<parameter>
<name value="patientGroups Stratifier"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="string"/>
</parameter>
<parameter>
<name value="HIV status of partner or contact"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Coding"/>
</parameter>
<parameter>
<name value="Stratification"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="string"/>
</parameter>
<content>
<contentType value="text/cql"/>
<data
value="LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuMjIgTG9naWMKICogUmVmIE5vOiBIVFMuNQogKiBTaG9ydCBOYW1lOiBIVFMgcGFydG5lciBzZXJ2aWNlcwogKgogKiBEZWZpbml0aW9uOiBOdW1iZXIgb2YgcGVvcGxlIHdobyB3ZXJlIGlkZW50aWZpZWQgYW5kIHRlc3RlZCB1c2luZyBwYXJ0bmVyIHRlc3Rpbmcgc2VydmljZXMgYW5kIHdobyByZWNlaXZlZCB0aGVpciByZXN1bHRzCiAqCiAqIE51bWVyYXRvcjogRm9yIHRoZSBnZW5lcmFsIHBvcHVsYXRpb246IE51bWJlciBvZiBlbGljaXRlZCBwYXJ0bmVycyBhbmQgb3RoZXIgY29udGFjdHMqIG9mIHBlb3BsZSBkaWFnbm9zZWQgd2l0aCBISVYgd2hvIHJlY2VpdmVkIEhUUyB8ICB8IEFkZGl0aW9uYWwgY2FzY2FkZSBkYXRhIGNvbGxlY3RlZDogfCDigKIgTnVtYmVyIG9mIHBlb3BsZSBkaWFnbm9zZWQgd2l0aCBISVYgKGluZGV4IGNhc2VzKSBvZmZlcmVkIHBhcnRuZXIgc2VydmljZXMgfCDigKIgTnVtYmVyIG9mIHBlb3BsZSBkaWFnbm9zZWQgd2l0aCBISVYgKGluZGV4IGNhc2VzKSBhY2NlcHRpbmcgcGFydG5lciBzZXJ2aWNlcyB8IOKAosKgTnVtYmVyIG9mIGNvbnRhY3RzL3BhcnRuZXJzIG9mIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYgd2hvc2UgaW5mb3JtYXRpb24gaXMgZWxpY2l0ZWQgZnJvbSBwZW9wbGUgZGlhZ25vc2VkIHdpdGggSElWIChpbmRleCBjYXNlcykgfCAgfCBGb3Iga2V5IHBvcHVsYXRpb25zOiBOdW1iZXIgb2YgZWxpY2l0ZWQgY29udGFjdHMxIG9mIG1lbWJlcnMgb2Yga2V5IHBvcHVsYXRpb25zIHdobyByZWNlaXZlZCBIVFMuIHwgQWRkaXRpb25hbCBjYXNjYWRlIGRhdGEgY29sbGVjdGVkOiB8IOKAosKgTnVtYmVyIG9mIGtleSBwb3B1bGF0aW9uIG1lbWJlcnMgb2ZmZXJlZCBzb2NpYWwgbmV0d29yay1iYXNlZC9wYXJ0bmVyIHNlcnZpY2VzIHwg4oCiIE51bWJlciBvZiBrZXkgcG9wdWxhdGlvbiBtZW1iZXJzIGFjY2VwdGluZyBzb2NpYWwgbmV0d29yay1iYXNlZC9wYXJ0bmVyIHNlcnZpY2VzIHwg4oCiIE51bWJlciBvZiBjb250YWN0cyBvZiBrZXkgcG9wdWxhdGlvbiBtZW1iZXJzIGVsaWNpdGVkCiAqIE51bWVyYXRvciBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyAiUmVmZXJyZWQgdGhyb3VnaCBwYXJ0bmVyIHNlcnZpY2VzIiB0aGF0IGFyZSBhICdQYXJ0bmVyIG9yIGNvbnRhY3Qgb2YgYW4gaW5kZXggY2FzZScgQU5EICJUeXBlIG9mIGNvbnRhY3Qgb3IgcGFydG5lciBmb3IgcGFydG5lciBzZXJ2aWNlcyIgSU4gJ1NleHVhbCBwYXJ0bmVyJywgJ0RydWctaW5qZWN0aW5nIHBhcnRuZXInIHdpdGggIkhJViB0ZXN0IGRhdGUiIEFORCAiRGF0ZSBISVYgdGVzdCByZXN1bHRzIHJldHVybmVkIiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiBOdW1lcmF0b3IgRXhjbHVzaW9uczogCiAqCiAqIERlbm9taW5hdG9yOiAxCiAqIERlbm9taW5hdG9yIENhbGN1bGF0aW9uOiAxCiAqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEaXNhZ2dyZWdhdGlvbnM6CiAqIOKAosKgQnkgaW5kZXggY2FzZSBnZW5kZXIgKG1hbGUsIGZlbWFsZSwgb3RoZXIqKikgCiAqICDigKLCoEFnZSAoMOKAkzQsIDXigJM5LCAxMOKAkzE0LCAxNeKAkzE5LCAyMOKAkzI0LCAyNeKAkzQ5LCA1MCsgeWVhcnMpKioqIAogKiAg4oCiIEhJViBzdGF0dXMgb2YgcGFydG5lciBvciBjb250YWN0IChhbHJlYWR5IGtub3duIHBvc2l0aXZlLCBuZXdseSBkaWFnbm9zZWQgcG9zaXRpdmUsIG5lZ2F0aXZlKSAKICogIOKAosKgS2V5IHBvcHVsYXRpb25zIChtZW4gd2hvIGhhdmUgc2V4IHdpdGggbWVuLCBwZW9wbGUgbGl2aW5nIGluIHByaXNvbnMgYW5kIG90aGVyIGNsb3NlZCBzZXR0aW5ncywgcGVvcGxlIHdobyBpbmplY3QgZHJ1Z3MsIHNleCB3b3JrZXJzLCB0cmFucyBhbmQgZ2VuZGVyIGRpdmVyc2UgcGVvcGxlKSoqKiogCiAqICDigKLCoENpdGllcyBhbmQgb3RoZXIgYWRtaW5pc3RyYXRpdmUgcmVnaW9ucyBvZiBlcGlkZW1pb2xvZ2ljIGltcG9ydGFuY2UKICoKICogRGlzYWdncmVnYXRpb24gRWxlbWVudHM6ICpHZW5kZXIgW29mIGluZGV4IGNhc2VdIHwgQWdlIHwgUGFydG5lciBISVYgc3RhdHVzIChyZXBvcnRlZCkgfCBISVYgc3RhdHVzIG9mIGNvbnRhY3QgfCBLZXkgcG9wdWxhdGlvbiBtZW1iZXIgdHlwZQogKgogKiBOdW1lcmF0b3IgYW5kIERlbm9taW5hdG9yIEVsZW1lbnRzOgogKiBEYXRlIEhJViB0ZXN0IHJlc3VsdHMgcmV0dXJuZWQgCiAqICBISVYgdGVzdCBkYXRlIAogKiAgUmVmZXJyZWQgdGhyb3VnaCBwYXJ0bmVyIHNlcnZpY2VzIAogKiAgVHlwZSBvZiBjb250YWN0IG9yIHBhcnRuZXIgZm9yIHBhcnRuZXIgc2VydmljZXMKICoKICogUmVmZXJlbmNlOiBDb25zb2xpZGF0ZWQgZ3VpZGVsaW5lcyBvbiBwZXJzb24tY2VudHJlZCBISVYgc3RyYXRlZ2ljIGluZm9ybWF0aW9uOiBzdHJlbmd0aGVuaW5nIHJvdXRpbmUgZGF0YSBmb3IgaW1wYWN0LiBHZW5ldmE6IFdvcmxkIEhlYWx0aCBPcmdhbml6YXRpb247IDIwMjIKICogCiAqIERhdGEgQ29uY2VwdHM6CiAqIEhJVi5BLkRFMTc6IEFnZSB8IENhbGN1bGF0ZWQgYWdlIChudW1iZXIgb2YgeWVhcnMpIG9mIHRoZSBjbGllbnQgYmFzZWQgb24gZGF0ZSBvZiBiaXJ0aAogKiBISVYuQi5ERTU6IFJlZmVycmVkIHRocm91Z2ggcGFydG5lciBzZXJ2aWNlcyB8IENsaWVudCByZXBvcnRlZCBjb21pbmcgdG8gdGhlIGZhY2lsaXR5IGFmdGVyIHJlY2VpdmluZyBhIHByb3ZpZGVyLWFzc2lzdGVkIHJlZmVycmFsIG9yIHBhdGllbnQgcmVmZXJyYWwgZnJvbSBhIGNvbnRhY3Qgb3IgcGFydG5lcgogKiBISVYuQi5ERTY6IFBhcnRuZXIgb3IgY29udGFjdCBvZiBhbiBpbmRleCBjYXNlIHwgVGhlIGNsaWVudCBpcyBhIGNvbnRhY3Qgb3IgcGFydG5lciBvZiBhIHBlcnNvbiBkaWFnbm9zZWQgd2l0aCBISVYgKGFuIGluZGV4IGNhc2UpCiAqIEhJVi5CLkRFNzogUGFydG5lciBvciBjb250YWN0IG9mIGFuIEhJViB0ZXN0aW5nIGNsaWVudCAobm9uLWluZGV4IGNhc2UpIHwgVGhlIGNsaWVudCBpcyBhIGNvbnRhY3Qgb3IgcGFydG5lciBpZGVudGlmaWVkIHRocm91Z2ggcGFydG5lciBvciBzb2NpYWwgbmV0d29yayBzZXJ2aWNlcywgYnV0IGlzIG5vdCBrbm93biB0byBiZSBhIHBhcnRuZXIgb2YgYW4gaW5kZXgtY2FzZQogKiBISVYuQi5ERTg6IFR5cGUgb2YgY29udGFjdCBvciBwYXJ0bmVyIGZvciBwYXJ0bmVyIHNlcnZpY2VzIHwgQ2xpZW50J3MgcmVsYXRpb25zaGlwIHRvIHRoZSBwZXJzb24gdGhhdCByZWZlcnJlZCB0aGUgY2xpZW50IGZvciBwYXJ0bmVyIHNlcnZpY2VzIG9yIGZhbWlseSBzZXJ2aWNlcwogKiBISVYuQi5ERTk6IEJpb2xvZ2ljYWwgY2hpbGQgfCBDbGllbnQgaXMgdGhlIGJpb2xvZ2ljYWwgY2hpbGQgb2YgdGhlIHBlcnNvbiB0aGF0IHJlZmVycmVkIHRoZSBjbGllbnQgZm9yIGZhbWlseSBzZXJ2aWNlcwogKiBISVYuQi5ERTEwOiBEcnVnLWluamVjdGluZyBwYXJ0bmVyIHwgQ2xpZW50IGlzIGEgZHJ1Zy1pbmplY3RpbmcgcGFydG5lciBvZiB0aGUgcGVyc29uIHRoYXQgcmVmZXJyZWQgdGhlIGNsaWVudCBmb3IgcGFydG5lciBzZXJ2aWNlcwogKiBISVYuQi5ERTExOiBTZXh1YWwgcGFydG5lciB8IENsaWVudCBpcyBhIHNleHVhbCBwYXJ0bmVyIG9mIHRoZSBwZXJzb24gdGhhdCByZWZlcnJlZCB0aGUgY2xpZW50IGZvciBwYXJ0bmVyIHNlcnZpY2VzCiAqIEhJVi5CLkRFMTI6IFNvY2lhbCBjb250YWN0IHwgQ2xpZW50IGlzIGEgc29jaWFsIGNvbnRhY3Qgb2YgdGhlIHBlcnNvbiB0aGF0IHJlZmVycmVkIHRoZSBjbGllbnQgZm9yIHNvY2lhbC1uZXR3b3JrIHNlcnZpY2VzCiAqIEhJVi5CLkRFMzM6IFBhcnRuZXIgSElWIHN0YXR1cyAocmVwb3J0ZWQpIHwgVGhlIEhJViBzdGF0dXMgb2YgdGhlIGNsaWVudCdzIHBhcnRuZXIuCiAqIEhJVi5CLkRFMzQ6IEhJVi1wb3NpdGl2ZSB8IENsaWVudCdzIHBhcnRuZXIgaXMgSElWLXBvc2l0aXZlCiAqIEhJVi5CLkRFMzU6IEhJVi1uZWdhdGl2ZSB8IENsaWVudCdzIHBhcnRuZXIgaXMgSElWLW5lZ2F0aXZlCiAqIEhJVi5CLkRFMzY6IFVua25vd24gfCBEb24ndCBrbm93IEhJViBzdGF0dXMgLSBjbGllbnQgZG9lcyBub3Qga25vdyBwYXJ0bmVyJ3MgSElWIHN0YXR1cwogKiBISVYuQi5ERTUwOiBLZXkgcG9wdWxhdGlvbiBtZW1iZXIgdHlwZSogfCBUaGUgdHlwZSBvZiBrZXkgcG9wdWxhdGlvbiB0aGF0IHRoZSBjbGllbnQgaXMgaW5jbHVkZWQgaW4KICogSElWLkIuREU1MTogU2V4IHdvcmtlciB8IENsaWVudCBpcyBhIHNleCB3b3JrZXIKICogSElWLkIuREU1MjogTWVuIHdobyBoYXZlIHNleCB3aXRoIG1lbiB8IENsaWVudCBpcyBhIG1hbiB3aG8gaGFzIHNleCB3aXRoIG1lbgogKiBISVYuQi5ERTUzOiBUcmFucyBhbmQgZ2VuZGVyLWRpdmVyc2UgcGVvcGxlIHwgQ2xpZW50IGlkZW50aWZpZXMgYXMgdHJhbnMgYW5kIGdlbmRlci1kaXZlcnNlCiAqIEhJVi5CLkRFNTQ6IFBlb3BsZSB3aG8gaW5qZWN0IGRydWdzIHwgQ2xpZW50IGlzIGEgcGVyc29uIHdobyBpbmplY3RzIGRydWdzCiAqIEhJVi5CLkRFNTU6IFBlb3BsZSBsaXZpbmcgaW4gcHJpc29ucyBhbmQgb3RoZXIgY2xvc2VkIHNldHRpbmdzIHwgQ2xpZW50IGxpdmVzIGluIGEgcHJpc29uIG9yIGFub3RoZXIgY2xvc2VkIHNldHRpbmcKICogSElWLkIuREU2MDogRGF0ZSBISVYgdGVzdCByZXN1bHRzIHJldHVybmVkIHwgRGF0ZSBISVYgdGVzdCByZXN1bHQgcmV0dXJuZWQgdG8gY2xpZW50CiAqIEhJVi5CLkRFMTEwOiBISVYgdGVzdCBkYXRlIHwgRGF0ZSBvZiB0aGUgSElWIHRlc3QKICogSElWLkUuREUxMTQ6IEtleSBwb3B1bGF0aW9uIG1lbWJlciB0eXBlKiB8IFRoZSB0eXBlIG9mIGtleSBwb3B1bGF0aW9uIHRoYXQgdGhlIGluZmFudCdzIG1vdGhlciBpcyBpbmNsdWRlZCBpbgogKiBISVYuRS5ERTExNTogU2V4IHdvcmtlciB8IEluZmFudCdzIG1vdGhlciBpcyBhIHNleCB3b3JrZXIKICogSElWLkUuREUxMTY6IFBlb3BsZSB3aG8gaW5qZWN0IGRydWdzIHwgSW5mYW50J3MgbW90aGVyIGlzIGEgcGVyc29uIHdobyBpbmplY3RzIGRydWdzCiAqIEhJVi5FLkRFMTE3OiBUcmFucyBhbmQgZ2VuZGVyLWRpdmVyc2UgcGVvcGxlIHwgSW5mYW50J3MgbW90aGVyIGlkZW50aWZpZXMgYXMgdHJhbnMgYW5kIGdlbmRlci1kaXZlcnNlCiAqIEhJVi5FLkRFMTE4OiBQZW9wbGUgbGl2aW5nIGluIHByaXNvbnMgYW5kIG90aGVyIGNsb3NlZCBzZXR0aW5nIHwgSW5mYW50J3MgbW90aGVyIGlzIGluIGEgcHJpc29uIG9yIGNsb3NlZCBzZXR0aW5nCiAqIEhJVi5FLkRFMjI0OiBISVYgdGVzdCBkYXRlIHwgRGF0ZSBvZiB0aGUgSElWIHRlc3QKICogSElWLlBSVi5ERTExOiBISVYgc3RhdHVzIG9mIGNvbnRhY3QgfCBUaGUgSElWIHN0YXR1cyBvZiB0aGUgY2xpZW50J3MgY29udGFjdAogKiBISVYuUFJWLkRFMTI6IEhJVi1wb3NpdGl2ZSB8IENsaWVudCdzIGNvbnRhY3QgaXMgSElWLXBvc2l0aXZlCiAqIEhJVi5QUlYuREUxMzogSElWLW5lZ2F0aXZlIHwgQ2xpZW50J3MgY29udGFjdCBpcyBISVYtbmVnYXRpdmUKICogSElWLlBSVi5ERTE0OiBVbmtub3duIHwgQ2xpZW50IGRvZXMgbm90IGtub3cgY29udGFjdCdzIEhJViBzdGF0dXMKICogSElWLlNSVi5ERTE6IEhJViB0ZXN0IGRhdGUgfCBEYXRlIG9mIHRoZSBISVYgdGVzdAogKgogKiBBZGRpdGlvbmFsIENvbnRleHQKICogLSB3aGF0IGl0IG1lYXN1cmVzOiBUaGlzIG1lYXN1cmVzIHRoZSBjb3ZlcmFnZSBhbmQgaW1wYWN0IG9mIHRoZSB0ZXN0aW5nIGNhc2NhZGUgb2Ygc2VydmljZXMgZm9yIHBhcnRuZXJzIGFuZCBvdGhlciBjb250YWN0cyogb2YgcGVvcGxlIGxpdmluZyB3aXRoIEhJViwgaW5jbHVkaW5nIGtleSBwb3B1bGF0aW9uIG1lbWJlcnMuCiAqIC0gcmF0aW9uYWxlOiDigKLCoENvbnRhY3QgdGVzdGluZywgaW5jbHVkaW5nIGFtb25nIHNleHVhbCBwYXJ0bmVycywgaGFzIGJlZW4gc2hvd24gdG8gaW5jcmVhc2UgdGhlIGRpYWdub3NpcyBvZiBhbHJlYWR5LWluZmVjdGVkIGNvbnRhY3RzIGFuZCBwYXJ0bmVycyBvZiBuZXdseSBpZGVudGlmaWVkIEhJViBjYXNlcy4gfCDigKLCoEFtb25nIHNlcm9kaXNjb3JkYW50IGNvdXBsZXMsIHBhcnRuZXIgbm90aWZpY2F0aW9uIGFuZCB0ZXN0aW5nIGNhbiBiZSBhIGNyaXRpY2FsIHN0ZXAgaW4gcHJldmVudGluZyBpbmZlY3Rpb24gb2YgdGhlIHVuaW5mZWN0ZWQgcGFydG5lci4gfCDigKIgQ29udGFjdCBhbmQvb3IgcGFydG5lciBub3RpZmljYXRpb24gYW5kIHRlc3Rpbmcgc2hvdWxkIGJlIHZvbHVudGFyeSBhbmQgcHJvdmlkZWQgd2l0aCBzdXBwb3J0aXZlIHNlcnZpY2VzLgogKiAtIG1ldGhvZDogUGF0aWVudCBtb25pdG9yaW5nIGRhdGEgKEhJViBpbmRleCB0ZXN0aW5nIHNlcnZpY2VzIHJlZ2lzdGVyIG9yIGxvZ2Jvb2ssIEhUUyByZWdpc3RlcnMgb3IgcmVwb3J0aW5nIGZvcm1zKSBvciBFTVIKICogCiAqIFN1Z2dlc3RlZCBTY29yaW5nIE1ldGhvZDogY29udGludW91cy12YXJpYWJsZSB8IGh0dHA6Ly9obDcub3JnL2ZoaXIvdXMvY3FmbWVhc3VyZXMvU3RydWN0dXJlRGVmaW5pdGlvbi9jdi1tZWFzdXJlLWNxZm0KICovCgpsaWJyYXJ5IEhJVklORDIyTG9naWMKCi8vIEluY2x1ZGVkIExpYnJhcmllcwp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBISVZDb21tb24gdmVyc2lvbiAnMC4wLjEnIGNhbGxlZCBISUMKaW5jbHVkZSBGSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKaW5jbHVkZSBXSE9Db21tb24gY2FsbGVkIFdDb20KaW5jbHVkZSBISVZJbmRpY2F0b3JFbGVtZW50cyBjYWxsZWQgSElFCmluY2x1ZGUgSElWRWxlbWVudHMgY2FsbGVkIEhFCgovLyBJbmRpY2F0b3IgRGVmaW5pdGlvbgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZT4gZGVmYXVsdCBJbnRlcnZhbFtAMjAyMy0wMS0wMSwgQDIwMjMtMDEtMzBdCgpjb250ZXh0IFBhdGllbnQKLyogUG9wdWxhdGlvbnMgKi8KCi8qCiAqSW5pdGlhbCBQb3B1bGF0aW9uCiAqLwoKZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24iOgogIHRydWUKCi8qKgogKiBNZWFzdXJlIFBvcHVsYXRpb24KICoKICogRGVmaW5pdGlvbjogRm9yIHRoZSBnZW5lcmFsIHBvcHVsYXRpb246IE51bWJlciBvZiBlbGljaXRlZCBwYXJ0bmVycyBhbmQgb3RoZXIgY29udGFjdHMqIG9mIHBlb3BsZSBkaWFnbm9zZWQgd2l0aCBISVYgd2hvIHJlY2VpdmVkIEhUUyB8ICB8IEFkZGl0aW9uYWwgY2FzY2FkZSBkYXRhIGNvbGxlY3RlZDogfCDigKIgTnVtYmVyIG9mIHBlb3BsZSBkaWFnbm9zZWQgd2l0aCBISVYgKGluZGV4IGNhc2VzKSBvZmZlcmVkIHBhcnRuZXIgc2VydmljZXMgfCDigKIgTnVtYmVyIG9mIHBlb3BsZSBkaWFnbm9zZWQgd2l0aCBISVYgKGluZGV4IGNhc2VzKSBhY2NlcHRpbmcgcGFydG5lciBzZXJ2aWNlcyB8IOKAosKgTnVtYmVyIG9mIGNvbnRhY3RzL3BhcnRuZXJzIG9mIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYgd2hvc2UgaW5mb3JtYXRpb24gaXMgZWxpY2l0ZWQgZnJvbSBwZW9wbGUgZGlhZ25vc2VkIHdpdGggSElWIChpbmRleCBjYXNlcykgfCAgfCBGb3Iga2V5IHBvcHVsYXRpb25zOiBOdW1iZXIgb2YgZWxpY2l0ZWQgY29udGFjdHMxIG9mIG1lbWJlcnMgb2Yga2V5IHBvcHVsYXRpb25zIHdobyByZWNlaXZlZCBIVFMuIHwgQWRkaXRpb25hbCBjYXNjYWRlIGRhdGEgY29sbGVjdGVkOiB8IOKAosKgTnVtYmVyIG9mIGtleSBwb3B1bGF0aW9uIG1lbWJlcnMgb2ZmZXJlZCBzb2NpYWwgbmV0d29yay1iYXNlZC9wYXJ0bmVyIHNlcnZpY2VzIHwg4oCiIE51bWJlciBvZiBrZXkgcG9wdWxhdGlvbiBtZW1iZXJzIGFjY2VwdGluZyBzb2NpYWwgbmV0d29yay1iYXNlZC9wYXJ0bmVyIHNlcnZpY2VzIHwg4oCiIE51bWJlciBvZiBjb250YWN0cyBvZiBrZXkgcG9wdWxhdGlvbiBtZW1iZXJzIGVsaWNpdGVkCiAqIENhbGN1bGF0aW9uOiBGb3IgdGhlIGdlbmVyYWwgcG9wdWxhdGlvbjogTnVtYmVyIG9mIGVsaWNpdGVkIHBhcnRuZXJzIGFuZCBvdGhlciBjb250YWN0cyogb2YgcGVvcGxlIGRpYWdub3NlZCB3aXRoIEhJViB3aG8gcmVjZWl2ZWQgSFRTIHwgIHwgQWRkaXRpb25hbCBjYXNjYWRlIGRhdGEgY29sbGVjdGVkOiB8IOKAoiBOdW1iZXIgb2YgcGVvcGxlIGRpYWdub3NlZCB3aXRoIEhJViAoaW5kZXggY2FzZXMpIG9mZmVyZWQgcGFydG5lciBzZXJ2aWNlcyB8IOKAoiBOdW1iZXIgb2YgcGVvcGxlIGRpYWdub3NlZCB3aXRoIEhJViAoaW5kZXggY2FzZXMpIGFjY2VwdGluZyBwYXJ0bmVyIHNlcnZpY2VzIHwg4oCiwqBOdW1iZXIgb2YgY29udGFjdHMvcGFydG5lcnMgb2YgcGVvcGxlIGxpdmluZyB3aXRoIEhJViB3aG9zZSBpbmZvcm1hdGlvbiBpcyBlbGljaXRlZCBmcm9tIHBlb3BsZSBkaWFnbm9zZWQgd2l0aCBISVYgKGluZGV4IGNhc2VzKSB8ICB8IEZvciBrZXkgcG9wdWxhdGlvbnM6IE51bWJlciBvZiBlbGljaXRlZCBjb250YWN0czEgb2YgbWVtYmVycyBvZiBrZXkgcG9wdWxhdGlvbnMgd2hvIHJlY2VpdmVkIEhUUy4gfCBBZGRpdGlvbmFsIGNhc2NhZGUgZGF0YSBjb2xsZWN0ZWQ6IHwg4oCiwqBOdW1iZXIgb2Yga2V5IHBvcHVsYXRpb24gbWVtYmVycyBvZmZlcmVkIHNvY2lhbCBuZXR3b3JrLWJhc2VkL3BhcnRuZXIgc2VydmljZXMgfCDigKIgTnVtYmVyIG9mIGtleSBwb3B1bGF0aW9uIG1lbWJlcnMgYWNjZXB0aW5nIHNvY2lhbCBuZXR3b3JrLWJhc2VkL3BhcnRuZXIgc2VydmljZXMgfCDigKIgTnVtYmVyIG9mIGNvbnRhY3RzIG9mIGtleSBwb3B1bGF0aW9uIG1lbWJlcnMgZWxpY2l0ZWQKICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKZGVmaW5lICJNZWFzdXJlIFBvcHVsYXRpb24iOgogICAgZXhpc3RzKEhFLiJQYXJ0bmVyIG9yIGNvbnRhY3Qgb2YgYW4gaW5kZXggY2FzZSIgSUMKICAgIHdpdGggSEUuIkRydWctaW5qZWN0aW5nIHBhcnRuZXIiIERJUAogICAgICBzdWNoIHRoYXQgSUMuaGFzTWVtYmVyLnJlZmVyZW5jZXMoRElQKQogICAgd2l0aCBISUUuIkhJViB0ZXN0IHJlc3VsdHMgcmV0dXJuZWQgaW4gbWVhc3VyZW1lbnQgcGVyaW9kIiBISVYKICAgICAgc3VjaCB0aGF0IElDLmhhc01lbWJlci5yZWZlcmVuY2VzKEhJVikKICAgICAgYW5kIEhJVi5pc3N1ZWQgYWZ0ZXIgc3RhcnQgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCIKICAgICAgYW5kIEhJVi5pc3N1ZWQgYmVmb3JlIGVuZCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIikKICAgIG9yIAogICAgZXhpc3RzKEhFLiJQYXJ0bmVyIG9yIGNvbnRhY3Qgb2YgYW4gaW5kZXggY2FzZSIgSUMKICAgIHdpdGggSEUuIlNleHVhbCBwYXJ0bmVyIiBTUAogICAgICBzdWNoIHRoYXQgSUMuaGFzTWVtYmVyLnJlZmVyZW5jZXMoU1ApCiAgICAgIHdpdGggSElFLiJISVYgdGVzdCByZXN1bHRzIHJldHVybmVkIGluIG1lYXN1cmVtZW50IHBlcmlvZCIgSElWCiAgICAgIHN1Y2ggdGhhdCBJQy5oYXNNZW1iZXIucmVmZXJlbmNlcyhISVYpCiAgICAgIGFuZCBISVYuaXNzdWVkIGFmdGVyIHN0YXJ0IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiCiAgICAgIGFuZCBISVYuaXNzdWVkIGJlZm9yZSBlbmQgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCIpCgoKCi8qKgogKiBNZWFzdXJlIE9ic2VydmF0aW9uCiAqIERlZmluaXRpb246IEZvciB0aGUgZ2VuZXJhbCBwb3B1bGF0aW9uOiBOdW1iZXIgb2YgZWxpY2l0ZWQgcGFydG5lcnMgYW5kIG90aGVyIGNvbnRhY3RzKiBvZiBwZW9wbGUgZGlhZ25vc2VkIHdpdGggSElWIHdobyByZWNlaXZlZCBIVFMgfCAgfCBBZGRpdGlvbmFsIGNhc2NhZGUgZGF0YSBjb2xsZWN0ZWQ6IHwg4oCiIE51bWJlciBvZiBwZW9wbGUgZGlhZ25vc2VkIHdpdGggSElWIChpbmRleCBjYXNlcykgb2ZmZXJlZCBwYXJ0bmVyIHNlcnZpY2VzIHwg4oCiIE51bWJlciBvZiBwZW9wbGUgZGlhZ25vc2VkIHdpdGggSElWIChpbmRleCBjYXNlcykgYWNjZXB0aW5nIHBhcnRuZXIgc2VydmljZXMgfCDigKLCoE51bWJlciBvZiBjb250YWN0cy9wYXJ0bmVycyBvZiBwZW9wbGUgbGl2aW5nIHdpdGggSElWIHdob3NlIGluZm9ybWF0aW9uIGlzIGVsaWNpdGVkIGZyb20gcGVvcGxlIGRpYWdub3NlZCB3aXRoIEhJViAoaW5kZXggY2FzZXMpIHwgIHwgRm9yIGtleSBwb3B1bGF0aW9uczogTnVtYmVyIG9mIGVsaWNpdGVkIGNvbnRhY3RzMSBvZiBtZW1iZXJzIG9mIGtleSBwb3B1bGF0aW9ucyB3aG8gcmVjZWl2ZWQgSFRTLiB8IEFkZGl0aW9uYWwgY2FzY2FkZSBkYXRhIGNvbGxlY3RlZDogfCDigKLCoE51bWJlciBvZiBrZXkgcG9wdWxhdGlvbiBtZW1iZXJzIG9mZmVyZWQgc29jaWFsIG5ldHdvcmstYmFzZWQvcGFydG5lciBzZXJ2aWNlcyB8IOKAoiBOdW1iZXIgb2Yga2V5IHBvcHVsYXRpb24gbWVtYmVycyBhY2NlcHRpbmcgc29jaWFsIG5ldHdvcmstYmFzZWQvcGFydG5lciBzZXJ2aWNlcyB8IOKAoiBOdW1iZXIgb2YgY29udGFjdHMgb2Yga2V5IHBvcHVsYXRpb24gbWVtYmVycyBlbGljaXRlZAogKiBDYWxjdWxhdGlvbjogRm9yIHRoZSBnZW5lcmFsIHBvcHVsYXRpb246IE51bWJlciBvZiBlbGljaXRlZCBwYXJ0bmVycyBhbmQgb3RoZXIgY29udGFjdHMqIG9mIHBlb3BsZSBkaWFnbm9zZWQgd2l0aCBISVYgd2hvIHJlY2VpdmVkIEhUUyB8ICB8IEFkZGl0aW9uYWwgY2FzY2FkZSBkYXRhIGNvbGxlY3RlZDogfCDigKIgTnVtYmVyIG9mIHBlb3BsZSBkaWFnbm9zZWQgd2l0aCBISVYgKGluZGV4IGNhc2VzKSBvZmZlcmVkIHBhcnRuZXIgc2VydmljZXMgfCDigKIgTnVtYmVyIG9mIHBlb3BsZSBkaWFnbm9zZWQgd2l0aCBISVYgKGluZGV4IGNhc2VzKSBhY2NlcHRpbmcgcGFydG5lciBzZXJ2aWNlcyB8IOKAosKgTnVtYmVyIG9mIGNvbnRhY3RzL3BhcnRuZXJzIG9mIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYgd2hvc2UgaW5mb3JtYXRpb24gaXMgZWxpY2l0ZWQgZnJvbSBwZW9wbGUgZGlhZ25vc2VkIHdpdGggSElWIChpbmRleCBjYXNlcykgfCAgfCBGb3Iga2V5IHBvcHVsYXRpb25zOiBOdW1iZXIgb2YgZWxpY2l0ZWQgY29udGFjdHMxIG9mIG1lbWJlcnMgb2Yga2V5IHBvcHVsYXRpb25zIHdobyByZWNlaXZlZCBIVFMuIHwgQWRkaXRpb25hbCBjYXNjYWRlIGRhdGEgY29sbGVjdGVkOiB8IOKAosKgTnVtYmVyIG9mIGtleSBwb3B1bGF0aW9uIG1lbWJlcnMgb2ZmZXJlZCBzb2NpYWwgbmV0d29yay1iYXNlZC9wYXJ0bmVyIHNlcnZpY2VzIHwg4oCiIE51bWJlciBvZiBrZXkgcG9wdWxhdGlvbiBtZW1iZXJzIGFjY2VwdGluZyBzb2NpYWwgbmV0d29yay1iYXNlZC9wYXJ0bmVyIHNlcnZpY2VzIHwg4oCiIE51bWJlciBvZiBjb250YWN0cyBvZiBrZXkgcG9wdWxhdGlvbiBtZW1iZXJzIGVsaWNpdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAqLyAgICAgCgpkZWZpbmUgZnVuY3Rpb24gIk1lYXN1cmUgT2JzZXJ2YXRpb24iKFBhdGllbnQgIlBhdGllbnQiKToKICAxCi8qIGVuZCBQb3B1bGF0aW9ucyAqLwoKLyoKICogRGlzYWdncmVnYXRvcnMKICovCgpkZWZpbmUgIkFkbWluaXN0cmF0aXZlIEdlbmRlciBTdHJhdGlmaWVyIjoKCUhJRS4iQnkgQWRtaW5pc3RyYXRpdmUgR2VuZGVyIFN0cmF0aWZpZXIiCgpkZWZpbmUgIkFnZSBTdHJhdGlmaWVyIjoKCUhJRS4iQnkgQWdlIFN0cmF0aWZpZXIgMiIKCmRlZmluZSAiR2VvZ3JhcGhpYyBSZWdpb24gU3RyYXRpZmllciI6CglISUUuIkJ5IEdlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXIiCgpkZWZpbmUgInBhdGllbnRHcm91cHMgU3RyYXRpZmllciI6CglISUUuInBhdGllbnRHcm91cHMiCgpkZWZpbmUgIkhJViBzdGF0dXMgb2YgcGFydG5lciBvciBjb250YWN0IjoKICBISUUuIkhJViBzdGF0dXMgb2YgcGFydG5lciBvciBjb250YWN0IgoKZGVmaW5lICJTdHJhdGlmaWNhdGlvbiI6CiBISUUuIkJ5IEFkbWluaXN0cmF0aXZlIEdlbmRlciBTdHJhdGlmaWVyIi5jb2RlIAogKyAnOicgKyBISUUuIkhJViBzdGF0dXMgb2YgcGFydG5lciBvciBjb250YWN0Ii5jb2RlCiAgKyAnOicgKyBISUUuIkJ5IEFnZSBTdHJhdGlmaWVyIDIiCisgJzonICsgSElFLiJCeSBHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyIgorIENvbWJpbmUoSElFLnBhdGllbnRHcm91cHMsICc6JykK"/>
</content>
<content>
<contentType value="application/elm+xml"/>
<data
value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iTm9uZSIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1JbmZvIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBXSE9Db21tb24ucmVmZXJlbmNlcyBoYXMgbXVsdGlwbGUgb3ZlcmxvYWRzIGFuZCBkdWUgdG8gdGhlIFNpZ25hdHVyZUxldmVsIHNldHRpbmcgKE5vbmUpLCB0aGUgb3ZlcmxvYWQgc2lnbmF0dXJlIGlzIG5vdCBiZWluZyBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LiBUaGlzIG1heSByZXN1bHQgaW4gYW1iaWd1b3VzIGZ1bmN0aW9uIHJlc29sdXRpb24gYXQgcnVudGltZSwgY29uc2lkZXIgc2V0dGluZyB0aGUgU2lnbmF0dXJlTGV2ZWwgdG8gT3ZlcmxvYWRzIG9yIEFsbCB0byBlbnN1cmUgdGhhdCB0aGUgb3V0cHV0IGluY2x1ZGVzIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gc3VwcG9ydCBjb3JyZWN0IG92ZXJsb2FkIHNlbGVjdGlvbiBhdCBydW50aW1lLiIgZXJyb3JUeXBlPSJzZW1hbnRpYyIgZXJyb3JTZXZlcml0eT0id2FybmluZyIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1FcnJvciIvPgogICA8YW5ub3RhdGlvbiBtZXNzYWdlPSJUaGUgZnVuY3Rpb24gV0hPQ29tbW9uLnJlZmVyZW5jZXMgaGFzIG11bHRpcGxlIG92ZXJsb2FkcyBhbmQgZHVlIHRvIHRoZSBTaWduYXR1cmVMZXZlbCBzZXR0aW5nIChOb25lKSwgdGhlIG92ZXJsb2FkIHNpZ25hdHVyZSBpcyBub3QgYmVpbmcgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC4gVGhpcyBtYXkgcmVzdWx0IGluIGFtYmlndW91cyBmdW5jdGlvbiByZXNvbHV0aW9uIGF0IHJ1bnRpbWUsIGNvbnNpZGVyIHNldHRpbmcgdGhlIFNpZ25hdHVyZUxldmVsIHRvIE92ZXJsb2FkcyBvciBBbGwgdG8gZW5zdXJlIHRoYXQgdGhlIG91dHB1dCBpbmNsdWRlcyBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHN1cHBvcnQgY29ycmVjdCBvdmVybG9hZCBzZWxlY3Rpb24gYXQgcnVudGltZS4iIGVycm9yVHlwZT0ic2VtYW50aWMiIGVycm9yU2V2ZXJpdHk9Indhcm5pbmciIHhzaTp0eXBlPSJhOkNxbFRvRWxtRXJyb3IiLz4KICAgPGFubm90YXRpb24gbWVzc2FnZT0iVGhlIGZ1bmN0aW9uIEZISVJIZWxwZXJzLlRvRGF0ZVRpbWUgaGFzIG11bHRpcGxlIG92ZXJsb2FkcyBhbmQgZHVlIHRvIHRoZSBTaWduYXR1cmVMZXZlbCBzZXR0aW5nIChOb25lKSwgdGhlIG92ZXJsb2FkIHNpZ25hdHVyZSBpcyBub3QgYmVpbmcgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC4gVGhpcyBtYXkgcmVzdWx0IGluIGFtYmlndW91cyBmdW5jdGlvbiByZXNvbHV0aW9uIGF0IHJ1bnRpbWUsIGNvbnNpZGVyIHNldHRpbmcgdGhlIFNpZ25hdHVyZUxldmVsIHRvIE92ZXJsb2FkcyBvciBBbGwgdG8gZW5zdXJlIHRoYXQgdGhlIG91dHB1dCBpbmNsdWRlcyBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHN1cHBvcnQgY29ycmVjdCBvdmVybG9hZCBzZWxlY3Rpb24gYXQgcnVudGltZS4iIGVycm9yVHlwZT0ic2VtYW50aWMiIGVycm9yU2V2ZXJpdHk9Indhcm5pbmciIHhzaTp0eXBlPSJhOkNxbFRvRWxtRXJyb3IiLz4KICAgPGFubm90YXRpb24gbWVzc2FnZT0iVGhlIGZ1bmN0aW9uIEZISVJIZWxwZXJzLlRvRGF0ZVRpbWUgaGFzIG11bHRpcGxlIG92ZXJsb2FkcyBhbmQgZHVlIHRvIHRoZSBTaWduYXR1cmVMZXZlbCBzZXR0aW5nIChOb25lKSwgdGhlIG92ZXJsb2FkIHNpZ25hdHVyZSBpcyBub3QgYmVpbmcgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC4gVGhpcyBtYXkgcmVzdWx0IGluIGFtYmlndW91cyBmdW5jdGlvbiByZXNvbHV0aW9uIGF0IHJ1bnRpbWUsIGNvbnNpZGVyIHNldHRpbmcgdGhlIFNpZ25hdHVyZUxldmVsIHRvIE92ZXJsb2FkcyBvciBBbGwgdG8gZW5zdXJlIHRoYXQgdGhlIG91dHB1dCBpbmNsdWRlcyBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHN1cHBvcnQgY29ycmVjdCBvdmVybG9hZCBzZWxlY3Rpb24gYXQgcnVudGltZS4iIGVycm9yVHlwZT0ic2VtYW50aWMiIGVycm9yU2V2ZXJpdHk9Indhcm5pbmciIHhzaTp0eXBlPSJhOkNxbFRvRWxtRXJyb3IiLz4KICAgPGFubm90YXRpb24gbWVzc2FnZT0iVGhlIGZ1bmN0aW9uIFdIT0NvbW1vbi5yZWZlcmVuY2VzIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBXSE9Db21tb24ucmVmZXJlbmNlcyBoYXMgbXVsdGlwbGUgb3ZlcmxvYWRzIGFuZCBkdWUgdG8gdGhlIFNpZ25hdHVyZUxldmVsIHNldHRpbmcgKE5vbmUpLCB0aGUgb3ZlcmxvYWQgc2lnbmF0dXJlIGlzIG5vdCBiZWluZyBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LiBUaGlzIG1heSByZXN1bHQgaW4gYW1iaWd1b3VzIGZ1bmN0aW9uIHJlc29sdXRpb24gYXQgcnVudGltZSwgY29uc2lkZXIgc2V0dGluZyB0aGUgU2lnbmF0dXJlTGV2ZWwgdG8gT3ZlcmxvYWRzIG9yIEFsbCB0byBlbnN1cmUgdGhhdCB0aGUgb3V0cHV0IGluY2x1ZGVzIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gc3VwcG9ydCBjb3JyZWN0IG92ZXJsb2FkIHNlbGVjdGlvbiBhdCBydW50aW1lLiIgZXJyb3JUeXBlPSJzZW1hbnRpYyIgZXJyb3JTZXZlcml0eT0id2FybmluZyIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1FcnJvciIvPgogICA8YW5ub3RhdGlvbiBtZXNzYWdlPSJUaGUgZnVuY3Rpb24gRkhJUkhlbHBlcnMuVG9EYXRlVGltZSBoYXMgbXVsdGlwbGUgb3ZlcmxvYWRzIGFuZCBkdWUgdG8gdGhlIFNpZ25hdHVyZUxldmVsIHNldHRpbmcgKE5vbmUpLCB0aGUgb3ZlcmxvYWQgc2lnbmF0dXJlIGlzIG5vdCBiZWluZyBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LiBUaGlzIG1heSByZXN1bHQgaW4gYW1iaWd1b3VzIGZ1bmN0aW9uIHJlc29sdXRpb24gYXQgcnVudGltZSwgY29uc2lkZXIgc2V0dGluZyB0aGUgU2lnbmF0dXJlTGV2ZWwgdG8gT3ZlcmxvYWRzIG9yIEFsbCB0byBlbnN1cmUgdGhhdCB0aGUgb3V0cHV0IGluY2x1ZGVzIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gc3VwcG9ydCBjb3JyZWN0IG92ZXJsb2FkIHNlbGVjdGlvbiBhdCBydW50aW1lLiIgZXJyb3JUeXBlPSJzZW1hbnRpYyIgZXJyb3JTZXZlcml0eT0id2FybmluZyIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1FcnJvciIvPgogICA8YW5ub3RhdGlvbiBtZXNzYWdlPSJUaGUgZnVuY3Rpb24gRkhJUkhlbHBlcnMuVG9EYXRlVGltZSBoYXMgbXVsdGlwbGUgb3ZlcmxvYWRzIGFuZCBkdWUgdG8gdGhlIFNpZ25hdHVyZUxldmVsIHNldHRpbmcgKE5vbmUpLCB0aGUgb3ZlcmxvYWQgc2lnbmF0dXJlIGlzIG5vdCBiZWluZyBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LiBUaGlzIG1heSByZXN1bHQgaW4gYW1iaWd1b3VzIGZ1bmN0aW9uIHJlc29sdXRpb24gYXQgcnVudGltZSwgY29uc2lkZXIgc2V0dGluZyB0aGUgU2lnbmF0dXJlTGV2ZWwgdG8gT3ZlcmxvYWRzIG9yIEFsbCB0byBlbnN1cmUgdGhhdCB0aGUgb3V0cHV0IGluY2x1ZGVzIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gc3VwcG9ydCBjb3JyZWN0IG92ZXJsb2FkIHNlbGVjdGlvbiBhdCBydW50aW1lLiIgZXJyb3JUeXBlPSJzZW1hbnRpYyIgZXJyb3JTZXZlcml0eT0id2FybmluZyIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1FcnJvciIvPgogICA8YW5ub3RhdGlvbiBtZXNzYWdlPSJUaGUgZnVuY3Rpb24gRkhJUkhlbHBlcnMuVG9TdHJpbmcgaGFzIG11bHRpcGxlIG92ZXJsb2FkcyBhbmQgZHVlIHRvIHRoZSBTaWduYXR1cmVMZXZlbCBzZXR0aW5nIChOb25lKSwgdGhlIG92ZXJsb2FkIHNpZ25hdHVyZSBpcyBub3QgYmVpbmcgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC4gVGhpcyBtYXkgcmVzdWx0IGluIGFtYmlndW91cyBmdW5jdGlvbiByZXNvbHV0aW9uIGF0IHJ1bnRpbWUsIGNvbnNpZGVyIHNldHRpbmcgdGhlIFNpZ25hdHVyZUxldmVsIHRvIE92ZXJsb2FkcyBvciBBbGwgdG8gZW5zdXJlIHRoYXQgdGhlIG91dHB1dCBpbmNsdWRlcyBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHN1cHBvcnQgY29ycmVjdCBvdmVybG9hZCBzZWxlY3Rpb24gYXQgcnVudGltZS4iIGVycm9yVHlwZT0ic2VtYW50aWMiIGVycm9yU2V2ZXJpdHk9Indhcm5pbmciIHhzaTp0eXBlPSJhOkNxbFRvRWxtRXJyb3IiLz4KICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgIDxhOnMgcj0iMTE5Ij4KICAgICAgICAgPGE6cz4vKioKICogTGlicmFyeTogSElWLklORC4yMiBMb2dpYwogKiBSZWYgTm86IEhUUy41CiAqIFNob3J0IE5hbWU6IEhUUyBwYXJ0bmVyIHNlcnZpY2VzCiAqCiAqIERlZmluaXRpb246IE51bWJlciBvZiBwZW9wbGUgd2hvIHdlcmUgaWRlbnRpZmllZCBhbmQgdGVzdGVkIHVzaW5nIHBhcnRuZXIgdGVzdGluZyBzZXJ2aWNlcyBhbmQgd2hvIHJlY2VpdmVkIHRoZWlyIHJlc3VsdHMKICoKICogTnVtZXJhdG9yOiBGb3IgdGhlIGdlbmVyYWwgcG9wdWxhdGlvbjogTnVtYmVyIG9mIGVsaWNpdGVkIHBhcnRuZXJzIGFuZCBvdGhlciBjb250YWN0cyogb2YgcGVvcGxlIGRpYWdub3NlZCB3aXRoIEhJViB3aG8gcmVjZWl2ZWQgSFRTIHwgIHwgQWRkaXRpb25hbCBjYXNjYWRlIGRhdGEgY29sbGVjdGVkOiB8IOKAoiBOdW1iZXIgb2YgcGVvcGxlIGRpYWdub3NlZCB3aXRoIEhJViAoaW5kZXggY2FzZXMpIG9mZmVyZWQgcGFydG5lciBzZXJ2aWNlcyB8IOKAoiBOdW1iZXIgb2YgcGVvcGxlIGRpYWdub3NlZCB3aXRoIEhJViAoaW5kZXggY2FzZXMpIGFjY2VwdGluZyBwYXJ0bmVyIHNlcnZpY2VzIHwg4oCiwqBOdW1iZXIgb2YgY29udGFjdHMvcGFydG5lcnMgb2YgcGVvcGxlIGxpdmluZyB3aXRoIEhJViB3aG9zZSBpbmZvcm1hdGlvbiBpcyBlbGljaXRlZCBmcm9tIHBlb3BsZSBkaWFnbm9zZWQgd2l0aCBISVYgKGluZGV4IGNhc2VzKSB8ICB8IEZvciBrZXkgcG9wdWxhdGlvbnM6IE51bWJlciBvZiBlbGljaXRlZCBjb250YWN0czEgb2YgbWVtYmVycyBvZiBrZXkgcG9wdWxhdGlvbnMgd2hvIHJlY2VpdmVkIEhUUy4gfCBBZGRpdGlvbmFsIGNhc2NhZGUgZGF0YSBjb2xsZWN0ZWQ6IHwg4oCiwqBOdW1iZXIgb2Yga2V5IHBvcHVsYXRpb24gbWVtYmVycyBvZmZlcmVkIHNvY2lhbCBuZXR3b3JrLWJhc2VkL3BhcnRuZXIgc2VydmljZXMgfCDigKIgTnVtYmVyIG9mIGtleSBwb3B1bGF0aW9uIG1lbWJlcnMgYWNjZXB0aW5nIHNvY2lhbCBuZXR3b3JrLWJhc2VkL3BhcnRuZXIgc2VydmljZXMgfCDigKIgTnVtYmVyIG9mIGNvbnRhY3RzIG9mIGtleSBwb3B1bGF0aW9uIG1lbWJlcnMgZWxpY2l0ZWQKICogTnVtZXJhdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzICZxdW90O1JlZmVycmVkIHRocm91Z2ggcGFydG5lciBzZXJ2aWNlcyZxdW90OyB0aGF0IGFyZSBhICdQYXJ0bmVyIG9yIGNvbnRhY3Qgb2YgYW4gaW5kZXggY2FzZScgQU5EICZxdW90O1R5cGUgb2YgY29udGFjdCBvciBwYXJ0bmVyIGZvciBwYXJ0bmVyIHNlcnZpY2VzJnF1b3Q7IElOICdTZXh1YWwgcGFydG5lcicsICdEcnVnLWluamVjdGluZyBwYXJ0bmVyJyB3aXRoICZxdW90O0hJViB0ZXN0IGRhdGUmcXVvdDsgQU5EICZxdW90O0RhdGUgSElWIHRlc3QgcmVzdWx0cyByZXR1cm5lZCZxdW90OyBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiBOdW1lcmF0b3IgRXhjbHVzaW9uczogCiAqCiAqIERlbm9taW5hdG9yOiAxCiAqIERlbm9taW5hdG9yIENhbGN1bGF0aW9uOiAxCiAqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEaXNhZ2dyZWdhdGlvbnM6CiAqIOKAosKgQnkgaW5kZXggY2FzZSBnZW5kZXIgKG1hbGUsIGZlbWFsZSwgb3RoZXIqKikgCiAqICDigKLCoEFnZSAoMOKAkzQsIDXigJM5LCAxMOKAkzE0LCAxNeKAkzE5LCAyMOKAkzI0LCAyNeKAkzQ5LCA1MCsgeWVhcnMpKioqIAogKiAg4oCiIEhJViBzdGF0dXMgb2YgcGFydG5lciBvciBjb250YWN0IChhbHJlYWR5IGtub3duIHBvc2l0aXZlLCBuZXdseSBkaWFnbm9zZWQgcG9zaXRpdmUsIG5lZ2F0aXZlKSAKICogIOKAosKgS2V5IHBvcHVsYXRpb25zIChtZW4gd2hvIGhhdmUgc2V4IHdpdGggbWVuLCBwZW9wbGUgbGl2aW5nIGluIHByaXNvbnMgYW5kIG90aGVyIGNsb3NlZCBzZXR0aW5ncywgcGVvcGxlIHdobyBpbmplY3QgZHJ1Z3MsIHNleCB3b3JrZXJzLCB0cmFucyBhbmQgZ2VuZGVyIGRpdmVyc2UgcGVvcGxlKSoqKiogCiAqICDigKLCoENpdGllcyBhbmQgb3RoZXIgYWRtaW5pc3RyYXRpdmUgcmVnaW9ucyBvZiBlcGlkZW1pb2xvZ2ljIGltcG9ydGFuY2UKICoKICogRGlzYWdncmVnYXRpb24gRWxlbWVudHM6ICpHZW5kZXIgW29mIGluZGV4IGNhc2VdIHwgQWdlIHwgUGFydG5lciBISVYgc3RhdHVzIChyZXBvcnRlZCkgfCBISVYgc3RhdHVzIG9mIGNvbnRhY3QgfCBLZXkgcG9wdWxhdGlvbiBtZW1iZXIgdHlwZQogKgogKiBOdW1lcmF0b3IgYW5kIERlbm9taW5hdG9yIEVsZW1lbnRzOgogKiBEYXRlIEhJViB0ZXN0IHJlc3VsdHMgcmV0dXJuZWQgCiAqICBISVYgdGVzdCBkYXRlIAogKiAgUmVmZXJyZWQgdGhyb3VnaCBwYXJ0bmVyIHNlcnZpY2VzIAogKiAgVHlwZSBvZiBjb250YWN0IG9yIHBhcnRuZXIgZm9yIHBhcnRuZXIgc2VydmljZXMKICoKICogUmVmZXJlbmNlOiBDb25zb2xpZGF0ZWQgZ3VpZGVsaW5lcyBvbiBwZXJzb24tY2VudHJlZCBISVYgc3RyYXRlZ2ljIGluZm9ybWF0aW9uOiBzdHJlbmd0aGVuaW5nIHJvdXRpbmUgZGF0YSBmb3IgaW1wYWN0LiBHZW5ldmE6IFdvcmxkIEhlYWx0aCBPcmdhbml6YXRpb247IDIwMjIKICogCiAqIERhdGEgQ29uY2VwdHM6CiAqIEhJVi5BLkRFMTc6IEFnZSB8IENhbGN1bGF0ZWQgYWdlIChudW1iZXIgb2YgeWVhcnMpIG9mIHRoZSBjbGllbnQgYmFzZWQgb24gZGF0ZSBvZiBiaXJ0aAogKiBISVYuQi5ERTU6IFJlZmVycmVkIHRocm91Z2ggcGFydG5lciBzZXJ2aWNlcyB8IENsaWVudCByZXBvcnRlZCBjb21pbmcgdG8gdGhlIGZhY2lsaXR5IGFmdGVyIHJlY2VpdmluZyBhIHByb3ZpZGVyLWFzc2lzdGVkIHJlZmVycmFsIG9yIHBhdGllbnQgcmVmZXJyYWwgZnJvbSBhIGNvbnRhY3Qgb3IgcGFydG5lcgogKiBISVYuQi5ERTY6IFBhcnRuZXIgb3IgY29udGFjdCBvZiBhbiBpbmRleCBjYXNlIHwgVGhlIGNsaWVudCBpcyBhIGNvbnRhY3Qgb3IgcGFydG5lciBvZiBhIHBlcnNvbiBkaWFnbm9zZWQgd2l0aCBISVYgKGFuIGluZGV4IGNhc2UpCiAqIEhJVi5CLkRFNzogUGFydG5lciBvciBjb250YWN0IG9mIGFuIEhJViB0ZXN0aW5nIGNsaWVudCAobm9uLWluZGV4IGNhc2UpIHwgVGhlIGNsaWVudCBpcyBhIGNvbnRhY3Qgb3IgcGFydG5lciBpZGVudGlmaWVkIHRocm91Z2ggcGFydG5lciBvciBzb2NpYWwgbmV0d29yayBzZXJ2aWNlcywgYnV0IGlzIG5vdCBrbm93biB0byBiZSBhIHBhcnRuZXIgb2YgYW4gaW5kZXgtY2FzZQogKiBISVYuQi5ERTg6IFR5cGUgb2YgY29udGFjdCBvciBwYXJ0bmVyIGZvciBwYXJ0bmVyIHNlcnZpY2VzIHwgQ2xpZW50J3MgcmVsYXRpb25zaGlwIHRvIHRoZSBwZXJzb24gdGhhdCByZWZlcnJlZCB0aGUgY2xpZW50IGZvciBwYXJ0bmVyIHNlcnZpY2VzIG9yIGZhbWlseSBzZXJ2aWNlcwogKiBISVYuQi5ERTk6IEJpb2xvZ2ljYWwgY2hpbGQgfCBDbGllbnQgaXMgdGhlIGJpb2xvZ2ljYWwgY2hpbGQgb2YgdGhlIHBlcnNvbiB0aGF0IHJlZmVycmVkIHRoZSBjbGllbnQgZm9yIGZhbWlseSBzZXJ2aWNlcwogKiBISVYuQi5ERTEwOiBEcnVnLWluamVjdGluZyBwYXJ0bmVyIHwgQ2xpZW50IGlzIGEgZHJ1Zy1pbmplY3RpbmcgcGFydG5lciBvZiB0aGUgcGVyc29uIHRoYXQgcmVmZXJyZWQgdGhlIGNsaWVudCBmb3IgcGFydG5lciBzZXJ2aWNlcwogKiBISVYuQi5ERTExOiBTZXh1YWwgcGFydG5lciB8IENsaWVudCBpcyBhIHNleHVhbCBwYXJ0bmVyIG9mIHRoZSBwZXJzb24gdGhhdCByZWZlcnJlZCB0aGUgY2xpZW50IGZvciBwYXJ0bmVyIHNlcnZpY2VzCiAqIEhJVi5CLkRFMTI6IFNvY2lhbCBjb250YWN0IHwgQ2xpZW50IGlzIGEgc29jaWFsIGNvbnRhY3Qgb2YgdGhlIHBlcnNvbiB0aGF0IHJlZmVycmVkIHRoZSBjbGllbnQgZm9yIHNvY2lhbC1uZXR3b3JrIHNlcnZpY2VzCiAqIEhJVi5CLkRFMzM6IFBhcnRuZXIgSElWIHN0YXR1cyAocmVwb3J0ZWQpIHwgVGhlIEhJViBzdGF0dXMgb2YgdGhlIGNsaWVudCdzIHBhcnRuZXIuCiAqIEhJVi5CLkRFMzQ6IEhJVi1wb3NpdGl2ZSB8IENsaWVudCdzIHBhcnRuZXIgaXMgSElWLXBvc2l0aXZlCiAqIEhJVi5CLkRFMzU6IEhJVi1uZWdhdGl2ZSB8IENsaWVudCdzIHBhcnRuZXIgaXMgSElWLW5lZ2F0aXZlCiAqIEhJVi5CLkRFMzY6IFVua25vd24gfCBEb24ndCBrbm93IEhJViBzdGF0dXMgLSBjbGllbnQgZG9lcyBub3Qga25vdyBwYXJ0bmVyJ3MgSElWIHN0YXR1cwogKiBISVYuQi5ERTUwOiBLZXkgcG9wdWxhdGlvbiBtZW1iZXIgdHlwZSogfCBUaGUgdHlwZSBvZiBrZXkgcG9wdWxhdGlvbiB0aGF0IHRoZSBjbGllbnQgaXMgaW5jbHVkZWQgaW4KICogSElWLkIuREU1MTogU2V4IHdvcmtlciB8IENsaWVudCBpcyBhIHNleCB3b3JrZXIKICogSElWLkIuREU1MjogTWVuIHdobyBoYXZlIHNleCB3aXRoIG1lbiB8IENsaWVudCBpcyBhIG1hbiB3aG8gaGFzIHNleCB3aXRoIG1lbgogKiBISVYuQi5ERTUzOiBUcmFucyBhbmQgZ2VuZGVyLWRpdmVyc2UgcGVvcGxlIHwgQ2xpZW50IGlkZW50aWZpZXMgYXMgdHJhbnMgYW5kIGdlbmRlci1kaXZlcnNlCiAqIEhJVi5CLkRFNTQ6IFBlb3BsZSB3aG8gaW5qZWN0IGRydWdzIHwgQ2xpZW50IGlzIGEgcGVyc29uIHdobyBpbmplY3RzIGRydWdzCiAqIEhJVi5CLkRFNTU6IFBlb3BsZSBsaXZpbmcgaW4gcHJpc29ucyBhbmQgb3RoZXIgY2xvc2VkIHNldHRpbmdzIHwgQ2xpZW50IGxpdmVzIGluIGEgcHJpc29uIG9yIGFub3RoZXIgY2xvc2VkIHNldHRpbmcKICogSElWLkIuREU2MDogRGF0ZSBISVYgdGVzdCByZXN1bHRzIHJldHVybmVkIHwgRGF0ZSBISVYgdGVzdCByZXN1bHQgcmV0dXJuZWQgdG8gY2xpZW50CiAqIEhJVi5CLkRFMTEwOiBISVYgdGVzdCBkYXRlIHwgRGF0ZSBvZiB0aGUgSElWIHRlc3QKICogSElWLkUuREUxMTQ6IEtleSBwb3B1bGF0aW9uIG1lbWJlciB0eXBlKiB8IFRoZSB0eXBlIG9mIGtleSBwb3B1bGF0aW9uIHRoYXQgdGhlIGluZmFudCdzIG1vdGhlciBpcyBpbmNsdWRlZCBpbgogKiBISVYuRS5ERTExNTogU2V4IHdvcmtlciB8IEluZmFudCdzIG1vdGhlciBpcyBhIHNleCB3b3JrZXIKICogSElWLkUuREUxMTY6IFBlb3BsZSB3aG8gaW5qZWN0IGRydWdzIHwgSW5mYW50J3MgbW90aGVyIGlzIGEgcGVyc29uIHdobyBpbmplY3RzIGRydWdzCiAqIEhJVi5FLkRFMTE3OiBUcmFucyBhbmQgZ2VuZGVyLWRpdmVyc2UgcGVvcGxlIHwgSW5mYW50J3MgbW90aGVyIGlkZW50aWZpZXMgYXMgdHJhbnMgYW5kIGdlbmRlci1kaXZlcnNlCiAqIEhJVi5FLkRFMTE4OiBQZW9wbGUgbGl2aW5nIGluIHByaXNvbnMgYW5kIG90aGVyIGNsb3NlZCBzZXR0aW5nIHwgSW5mYW50J3MgbW90aGVyIGlzIGluIGEgcHJpc29uIG9yIGNsb3NlZCBzZXR0aW5nCiAqIEhJVi5FLkRFMjI0OiBISVYgdGVzdCBkYXRlIHwgRGF0ZSBvZiB0aGUgSElWIHRlc3QKICogSElWLlBSVi5ERTExOiBISVYgc3RhdHVzIG9mIGNvbnRhY3QgfCBUaGUgSElWIHN0YXR1cyBvZiB0aGUgY2xpZW50J3MgY29udGFjdAogKiBISVYuUFJWLkRFMTI6IEhJVi1wb3NpdGl2ZSB8IENsaWVudCdzIGNvbnRhY3QgaXMgSElWLXBvc2l0aXZlCiAqIEhJVi5QUlYuREUxMzogSElWLW5lZ2F0aXZlIHwgQ2xpZW50J3MgY29udGFjdCBpcyBISVYtbmVnYXRpdmUKICogSElWLlBSVi5ERTE0OiBVbmtub3duIHwgQ2xpZW50IGRvZXMgbm90IGtub3cgY29udGFjdCdzIEhJViBzdGF0dXMKICogSElWLlNSVi5ERTE6IEhJViB0ZXN0IGRhdGUgfCBEYXRlIG9mIHRoZSBISVYgdGVzdAogKgogKiBBZGRpdGlvbmFsIENvbnRleHQKICogLSB3aGF0IGl0IG1lYXN1cmVzOiBUaGlzIG1lYXN1cmVzIHRoZSBjb3ZlcmFnZSBhbmQgaW1wYWN0IG9mIHRoZSB0ZXN0aW5nIGNhc2NhZGUgb2Ygc2VydmljZXMgZm9yIHBhcnRuZXJzIGFuZCBvdGhlciBjb250YWN0cyogb2YgcGVvcGxlIGxpdmluZyB3aXRoIEhJViwgaW5jbHVkaW5nIGtleSBwb3B1bGF0aW9uIG1lbWJlcnMuCiAqIC0gcmF0aW9uYWxlOiDigKLCoENvbnRhY3QgdGVzdGluZywgaW5jbHVkaW5nIGFtb25nIHNleHVhbCBwYXJ0bmVycywgaGFzIGJlZW4gc2hvd24gdG8gaW5jcmVhc2UgdGhlIGRpYWdub3NpcyBvZiBhbHJlYWR5LWluZmVjdGVkIGNvbnRhY3RzIGFuZCBwYXJ0bmVycyBvZiBuZXdseSBpZGVudGlmaWVkIEhJViBjYXNlcy4gfCDigKLCoEFtb25nIHNlcm9kaXNjb3JkYW50IGNvdXBsZXMsIHBhcnRuZXIgbm90aWZpY2F0aW9uIGFuZCB0ZXN0aW5nIGNhbiBiZSBhIGNyaXRpY2FsIHN0ZXAgaW4gcHJldmVudGluZyBpbmZlY3Rpb24gb2YgdGhlIHVuaW5mZWN0ZWQgcGFydG5lci4gfCDigKIgQ29udGFjdCBhbmQvb3IgcGFydG5lciBub3RpZmljYXRpb24gYW5kIHRlc3Rpbmcgc2hvdWxkIGJlIHZvbHVudGFyeSBhbmQgcHJvdmlkZWQgd2l0aCBzdXBwb3J0aXZlIHNlcnZpY2VzLgogKiAtIG1ldGhvZDogUGF0aWVudCBtb25pdG9yaW5nIGRhdGEgKEhJViBpbmRleCB0ZXN0aW5nIHNlcnZpY2VzIHJlZ2lzdGVyIG9yIGxvZ2Jvb2ssIEhUUyByZWdpc3RlcnMgb3IgcmVwb3J0aW5nIGZvcm1zKSBvciBFTVIKICogCiAqIFN1Z2dlc3RlZCBTY29yaW5nIE1ldGhvZDogY29udGludW91cy12YXJpYWJsZSB8IGh0dHA6Ly9obDcub3JnL2ZoaXIvdXMvY3FmbWVhc3VyZXMvU3RydWN0dXJlRGVmaW5pdGlvbi9jdi1tZWFzdXJlLWNxZm0KICovCgpsaWJyYXJ5IEhJVklORDIyTG9naWM8L2E6cz4KICAgICAgPC9hOnM+CiAgIDwvYW5ub3RhdGlvbj4KICAgPGlkZW50aWZpZXIgaWQ9IkhJVklORDIyTG9naWMiIHN5c3RlbT0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2Ii8+CiAgIDxzY2hlbWFJZGVudGlmaWVyIGlkPSJ1cm46aGw3LW9yZzplbG0iIHZlcnNpb249InIxIi8+CiAgIDx1c2luZ3M+CiAgICAgIDxkZWYgbG9jYWxJZGVudGlmaWVyPSJTeXN0ZW0iIHVyaT0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIi8+CiAgICAgIDxkZWYgbG9jYWxJZD0iMSIgbG9jYXRvcj0iNzg6MS03ODoyNiIgbG9jYWxJZGVudGlmaWVyPSJGSElSIiB1cmk9Imh0dHA6Ly9obDcub3JnL2ZoaXIiIHZlcnNpb249IjQuMC4xIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMSI+CiAgICAgICAgICAgICAgIDxhOnM+Ly8gSW5jbHVkZWQgTGlicmFyaWVzCnVzaW5nIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVI8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzQuMC4xJzwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgPC91c2luZ3M+CiAgIDxpbmNsdWRlcz4KICAgICAgPGRlZiBsb2NhbElkPSIyIiBsb2NhdG9yPSI4MDoxLTgwOjQ0IiBsb2NhbElkZW50aWZpZXI9IkhJQyIgcGF0aD0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2L0hJVkNvbW1vbiIgdmVyc2lvbj0iMC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyIj4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkhJVkNvbW1vbjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gdmVyc2lvbiAnMC4wLjEnIGNhbGxlZCBISUM8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMyIgbG9jYXRvcj0iODE6MS04MTozNSIgbG9jYWxJZGVudGlmaWVyPSJGSElSSGVscGVycyIgcGF0aD0iaHR0cDovL2hsNy5vcmcvZmhpci9GSElSSGVscGVycyIgdmVyc2lvbj0iNC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzIj4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVJIZWxwZXJzPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICc0LjAuMSc8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNCIgbG9jYXRvcj0iODI6MS04MjoyOSIgbG9jYWxJZGVudGlmaWVyPSJXQ29tIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9oaXYvV0hPQ29tbW9uIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNCI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5XSE9Db21tb248L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IGNhbGxlZCBXQ29tPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjUiIGxvY2F0b3I9IjgzOjEtODM6MzkiIGxvY2FsSWRlbnRpZmllcj0iSElFIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9oaXYvSElWSW5kaWNhdG9yRWxlbWVudHMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSI1Ij4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkhJVkluZGljYXRvckVsZW1lbnRzPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiBjYWxsZWQgSElFPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjYiIGxvY2F0b3I9Ijg0OjEtODQ6MjkiIGxvY2FsSWRlbnRpZmllcj0iSEUiIHBhdGg9Imh0dHA6Ly9zbWFydC53aG8uaW50L2hpdi9ISVZFbGVtZW50cyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjYiPgogICAgICAgICAgICAgICA8YTpzPmluY2x1ZGUgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+SElWRWxlbWVudHM8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IGNhbGxlZCBIRTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgPC9pbmNsdWRlcz4KICAgPHBhcmFtZXRlcnM+CiAgICAgIDxkZWYgbG9jYWxJZD0iMTIiIGxvY2F0b3I9Ijg3OjEtODc6ODgiIG5hbWU9Ik1lYXN1cmVtZW50IFBlcmlvZCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjEyIj4KICAgICAgICAgICAgICAgPGE6cz4vLyBJbmRpY2F0b3IgRGVmaW5pdGlvbgpwYXJhbWV0ZXIgJnF1b3Q7TWVhc3VyZW1lbnQgUGVyaW9kJnF1b3Q7IDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjExIj4KICAgICAgICAgICAgICAgICAgPGE6cz5JbnRlcnZhbCZsdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIxMCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+RGF0ZTwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4+PC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiBkZWZhdWx0IDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjkiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjciPkludGVydmFsW0AyMDIzLTAxLTAxLCBAMjAyMy0wMS0zMF08L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxkZWZhdWx0IGxvY2FsSWQ9IjkiIGxvY2F0b3I9Ijg3OjU1LTg3Ojg4IiBsb3dDbG9zZWQ9InRydWUiIGhpZ2hDbG9zZWQ9InRydWUiIHhzaTp0eXBlPSJJbnRlcnZhbCI+CiAgICAgICAgICAgIDxsb3cgbG9jYWxJZD0iNyIgbG9jYXRvcj0iODc6NjQtODc6NzQiIHhzaTp0eXBlPSJEYXRlIj4KICAgICAgICAgICAgICAgPHllYXIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIyMDIzIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8bW9udGggdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8ZGF5IHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgPC9sb3c+CiAgICAgICAgICAgIDxoaWdoIGxvY2FsSWQ9IjgiIGxvY2F0b3I9Ijg3Ojc3LTg3Ojg3IiB4c2k6dHlwZT0iRGF0ZSI+CiAgICAgICAgICAgICAgIDx5ZWFyIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMjAyMyIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPG1vbnRoIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPGRheSB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjMwIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L2hpZ2g+CiAgICAgICAgIDwvZGVmYXVsdD4KICAgICAgICAgPHBhcmFtZXRlclR5cGVTcGVjaWZpZXIgbG9jYWxJZD0iMTEiIGxvY2F0b3I9Ijg3OjMyLTg3OjQ1IiB4c2k6dHlwZT0iSW50ZXJ2YWxUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgPHBvaW50VHlwZSBsb2NhbElkPSIxMCIgbG9jYXRvcj0iODc6NDEtODc6NDQiIG5hbWU9InQ6RGF0ZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICA8L3BhcmFtZXRlclR5cGVTcGVjaWZpZXI+CiAgICAgIDwvZGVmPgogICA8L3BhcmFtZXRlcnM+CiAgIDxjb250ZXh0cz4KICAgICAgPGRlZiBsb2NhdG9yPSI4OToxLTg5OjE1IiBuYW1lPSJQYXRpZW50Ii8+CiAgIDwvY29udGV4dHM+CiAgIDxzdGF0ZW1lbnRzPgogICAgICA8ZGVmIGxvY2F0b3I9Ijg5OjEtODk6MTUiIG5hbWU9IlBhdGllbnQiIGNvbnRleHQ9IlBhdGllbnQiPgogICAgICAgICA8ZXhwcmVzc2lvbiB4c2k6dHlwZT0iU2luZ2xldG9uRnJvbSI+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2F0b3I9Ijg5OjEtODk6MTUiIGRhdGFUeXBlPSJmaGlyOlBhdGllbnQiIHRlbXBsYXRlSWQ9Imh0dHA6Ly9obDcub3JnL2ZoaXIvU3RydWN0dXJlRGVmaW5pdGlvbi9QYXRpZW50IiB4c2k6dHlwZT0iUmV0cmlldmUiLz4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIxNCIgbG9jYXRvcj0iOTY6MS05Nzo2IiBuYW1lPSJJbml0aWFsIFBvcHVsYXRpb24iIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIxNCI+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMTMiPi8qIFBvcHVsYXRpb25zICovCgovKgogKkluaXRpYWwgUG9wdWxhdGlvbgogKi8KCmRlZmluZSAmcXVvdDtJbml0aWFsIFBvcHVsYXRpb24mcXVvdDs6CiAgdHJ1ZTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIxMyIgbG9jYXRvcj0iOTc6My05Nzo2IiB2YWx1ZVR5cGU9InQ6Qm9vbGVhbiIgdmFsdWU9InRydWUiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9Ijc2IiBsb2NhdG9yPSIxMDY6MS0xMjE6NTYiIG5hbWU9Ik1lYXN1cmUgUG9wdWxhdGlvbiIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9Ijc2Ij4KICAgICAgICAgICAgICAgPGE6cz4vKioKICogTWVhc3VyZSBQb3B1bGF0aW9uCiAqCiAqIERlZmluaXRpb246IEZvciB0aGUgZ2VuZXJhbCBwb3B1bGF0aW9uOiBOdW1iZXIgb2YgZWxpY2l0ZWQgcGFydG5lcnMgYW5kIG90aGVyIGNvbnRhY3RzKiBvZiBwZW9wbGUgZGlhZ25vc2VkIHdpdGggSElWIHdobyByZWNlaXZlZCBIVFMgfCAgfCBBZGRpdGlvbmFsIGNhc2NhZGUgZGF0YSBjb2xsZWN0ZWQ6IHwg4oCiIE51bWJlciBvZiBwZW9wbGUgZGlhZ25vc2VkIHdpdGggSElWIChpbmRleCBjYXNlcykgb2ZmZXJlZCBwYXJ0bmVyIHNlcnZpY2VzIHwg4oCiIE51bWJlciBvZiBwZW9wbGUgZGlhZ25vc2VkIHdpdGggSElWIChpbmRleCBjYXNlcykgYWNjZXB0aW5nIHBhcnRuZXIgc2VydmljZXMgfCDigKLCoE51bWJlciBvZiBjb250YWN0cy9wYXJ0bmVycyBvZiBwZW9wbGUgbGl2aW5nIHdpdGggSElWIHdob3NlIGluZm9ybWF0aW9uIGlzIGVsaWNpdGVkIGZyb20gcGVvcGxlIGRpYWdub3NlZCB3aXRoIEhJViAoaW5kZXggY2FzZXMpIHwgIHwgRm9yIGtleSBwb3B1bGF0aW9uczogTnVtYmVyIG9mIGVsaWNpdGVkIGNvbnRhY3RzMSBvZiBtZW1iZXJzIG9mIGtleSBwb3B1bGF0aW9ucyB3aG8gcmVjZWl2ZWQgSFRTLiB8IEFkZGl0aW9uYWwgY2FzY2FkZSBkYXRhIGNvbGxlY3RlZDogfCDigKLCoE51bWJlciBvZiBrZXkgcG9wdWxhdGlvbiBtZW1iZXJzIG9mZmVyZWQgc29jaWFsIG5ldHdvcmstYmFzZWQvcGFydG5lciBzZXJ2aWNlcyB8IOKAoiBOdW1iZXIgb2Yga2V5IHBvcHVsYXRpb24gbWVtYmVycyBhY2NlcHRpbmcgc29jaWFsIG5ldHdvcmstYmFzZWQvcGFydG5lciBzZXJ2aWNlcyB8IOKAoiBOdW1iZXIgb2YgY29udGFjdHMgb2Yga2V5IHBvcHVsYXRpb24gbWVtYmVycyBlbGljaXRlZAogKiBDYWxjdWxhdGlvbjogRm9yIHRoZSBnZW5lcmFsIHBvcHVsYXRpb246IE51bWJlciBvZiBlbGljaXRlZCBwYXJ0bmVycyBhbmQgb3RoZXIgY29udGFjdHMqIG9mIHBlb3BsZSBkaWFnbm9zZWQgd2l0aCBISVYgd2hvIHJlY2VpdmVkIEhUUyB8ICB8IEFkZGl0aW9uYWwgY2FzY2FkZSBkYXRhIGNvbGxlY3RlZDogfCDigKIgTnVtYmVyIG9mIHBlb3BsZSBkaWFnbm9zZWQgd2l0aCBISVYgKGluZGV4IGNhc2VzKSBvZmZlcmVkIHBhcnRuZXIgc2VydmljZXMgfCDigKIgTnVtYmVyIG9mIHBlb3BsZSBkaWFnbm9zZWQgd2l0aCBISVYgKGluZGV4IGNhc2VzKSBhY2NlcHRpbmcgcGFydG5lciBzZXJ2aWNlcyB8IOKAosKgTnVtYmVyIG9mIGNvbnRhY3RzL3BhcnRuZXJzIG9mIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYgd2hvc2UgaW5mb3JtYXRpb24gaXMgZWxpY2l0ZWQgZnJvbSBwZW9wbGUgZGlhZ25vc2VkIHdpdGggSElWIChpbmRleCBjYXNlcykgfCAgfCBGb3Iga2V5IHBvcHVsYXRpb25zOiBOdW1iZXIgb2YgZWxpY2l0ZWQgY29udGFjdHMxIG9mIG1lbWJlcnMgb2Yga2V5IHBvcHVsYXRpb25zIHdobyByZWNlaXZlZCBIVFMuIHwgQWRkaXRpb25hbCBjYXNjYWRlIGRhdGEgY29sbGVjdGVkOiB8IOKAosKgTnVtYmVyIG9mIGtleSBwb3B1bGF0aW9uIG1lbWJlcnMgb2ZmZXJlZCBzb2NpYWwgbmV0d29yay1iYXNlZC9wYXJ0bmVyIHNlcnZpY2VzIHwg4oCiIE51bWJlciBvZiBrZXkgcG9wdWxhdGlvbiBtZW1iZXJzIGFjY2VwdGluZyBzb2NpYWwgbmV0d29yay1iYXNlZC9wYXJ0bmVyIHNlcnZpY2VzIHwg4oCiIE51bWJlciBvZiBjb250YWN0cyBvZiBrZXkgcG9wdWxhdGlvbiBtZW1iZXJzIGVsaWNpdGVkCiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCmRlZmluZSAmcXVvdDtNZWFzdXJlIFBvcHVsYXRpb24mcXVvdDs6CiAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSI3NSI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDQiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPmV4aXN0czwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjQzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4oPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjE2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SEUuJnF1b3Q7UGFydG5lciBvciBjb250YWN0IG9mIGFuIGluZGV4IGNhc2UmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiBJQzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+d2l0aCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxOCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhFLiZxdW90O0RydWctaW5qZWN0aW5nIHBhcnRuZXImcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiBESVA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICAgIHN1Y2ggdGhhdCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjE5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5JQzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPmhhc01lbWJlcjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjIyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5yZWZlcmVuY2VzKDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjIxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5ESVA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+KTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPndpdGggPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5ISUUuJnF1b3Q7SElWIHRlc3QgcmVzdWx0cyByZXR1cm5lZCBpbiBtZWFzdXJlbWVudCBwZXJpb2QmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiBISVY8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICAgIHN1Y2ggdGhhdCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI0MSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPklDPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+aGFzTWVtYmVyPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPnJlZmVyZW5jZXMoPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhJVjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4pPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgICAgYW5kIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjM0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhJVjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPmlzc3VlZDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzQiPiBhZnRlciA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+c3RhcnQgb2YgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O01lYXN1cmVtZW50IFBlcmlvZCZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgICAgYW5kIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjQwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzNyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhJVjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPmlzc3VlZDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDAiPiBiZWZvcmUgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPmVuZCBvZiA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzOCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7TWVhc3VyZW1lbnQgUGVyaW9kJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+KTwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICBvciAKICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9Ijc0Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5leGlzdHM8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI3MyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+KDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjczIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI0NiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhFLiZxdW90O1BhcnRuZXIgb3IgY29udGFjdCBvZiBhbiBpbmRleCBjYXNlJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gSUM8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPndpdGggPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjQ3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5IRS4mcXVvdDtTZXh1YWwgcGFydG5lciZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+IFNQPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgICBzdWNoIHRoYXQgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjUwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI0OSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SUM8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjUwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5oYXNNZW1iZXI8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1MiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+cmVmZXJlbmNlcyg8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1MSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+U1A8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+KTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI3MiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+d2l0aCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1NSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRS4mcXVvdDtISVYgdGVzdCByZXN1bHRzIHJldHVybmVkIGluIG1lYXN1cmVtZW50IHBlcmlvZCZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+IEhJVjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgICAgc3VjaCB0aGF0IDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjcxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI2NSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjU3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1NiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SUM8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjU3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5oYXNNZW1iZXI8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1OSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+cmVmZXJlbmNlcyg8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1OCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElWPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPik8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgICBhbmQgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjYxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI2MCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElWPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI2MSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+aXNzdWVkPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI2NCI+IGFmdGVyIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjYzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5zdGFydCBvZiA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI2MiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7TWVhc3VyZW1lbnQgUGVyaW9kJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgICBhbmQgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNzAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjY3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI2NiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElWPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI2NyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+aXNzdWVkPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI3MCI+IGJlZm9yZSA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI2OSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+ZW5kIG9mIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjY4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtNZWFzdXJlbWVudCBQZXJpb2QmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4pPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9Ijc1IiBsb2NhdG9yPSIxMDc6NS0xMjE6NTYiIHhzaTp0eXBlPSJPciI+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjQ0IiBsb2NhdG9yPSIxMDc6NS0xMTM6NTYiIHhzaTp0eXBlPSJFeGlzdHMiPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI0MyIgbG9jYXRvcj0iMTA3OjExLTExMzo1NiIgeHNpOnR5cGU9IlF1ZXJ5Ij4KICAgICAgICAgICAgICAgICAgPHNvdXJjZSBsb2NhbElkPSIxNiIgbG9jYXRvcj0iMTA3OjEyLTEwNzo1NCIgYWxpYXM9IklDIj4KICAgICAgICAgICAgICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMTUiIGxvY2F0b3I9IjEwNzoxMi0xMDc6NTEiIG5hbWU9IlBhcnRuZXIgb3IgY29udGFjdCBvZiBhbiBpbmRleCBjYXNlIiBsaWJyYXJ5TmFtZT0iSEUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICAgICA8cmVsYXRpb25zaGlwIGxvY2FsSWQ9IjIzIiBsb2NhdG9yPSIxMDg6NS0xMDk6NDQiIGFsaWFzPSJESVAiIHhzaTp0eXBlPSJXaXRoIj4KICAgICAgICAgICAgICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMTciIGxvY2F0b3I9IjEwODoxMC0xMDg6MzYiIG5hbWU9IkRydWctaW5qZWN0aW5nIHBhcnRuZXIiIGxpYnJhcnlOYW1lPSJIRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgICAgICAgPHN1Y2hUaGF0IGxvY2FsSWQ9IjIyIiBsb2NhdG9yPSIxMDk6MTctMTA5OjQ0IiBuYW1lPSJyZWZlcmVuY2VzIiBsaWJyYXJ5TmFtZT0iV0NvbSIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjAiIGxvY2F0b3I9IjEwOToxNy0xMDk6MjgiIHBhdGg9Imhhc01lbWJlciIgc2NvcGU9IklDIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjEiIGxvY2F0b3I9IjEwOTo0MS0xMDk6NDMiIG5hbWU9IkRJUCIgeHNpOnR5cGU9IkFsaWFzUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgIDwvc3VjaFRoYXQ+CiAgICAgICAgICAgICAgICAgIDwvcmVsYXRpb25zaGlwPgogICAgICAgICAgICAgICAgICA8cmVsYXRpb25zaGlwIGxvY2FsSWQ9IjQyIiBsb2NhdG9yPSIxMTA6NS0xMTM6NTUiIGFsaWFzPSJISVYiIHhzaTp0eXBlPSJXaXRoIj4KICAgICAgICAgICAgICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMjQiIGxvY2F0b3I9IjExMDoxMC0xMTA6NjIiIG5hbWU9IkhJViB0ZXN0IHJlc3VsdHMgcmV0dXJuZWQgaW4gbWVhc3VyZW1lbnQgcGVyaW9kIiBsaWJyYXJ5TmFtZT0iSElFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICAgICAgICAgICA8c3VjaFRoYXQgbG9jYWxJZD0iNDEiIGxvY2F0b3I9IjExMToxNy0xMTM6NTUiIHhzaTp0eXBlPSJBbmQiPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzNSIgbG9jYXRvcj0iMTExOjE3LTExMjo1NiIgeHNpOnR5cGU9IkFuZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI5IiBsb2NhdG9yPSIxMTE6MTctMTExOjQ0IiBuYW1lPSJyZWZlcmVuY2VzIiBsaWJyYXJ5TmFtZT0iV0NvbSIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjciIGxvY2F0b3I9IjExMToxNy0xMTE6MjgiIHBhdGg9Imhhc01lbWJlciIgc2NvcGU9IklDIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjgiIGxvY2F0b3I9IjExMTo0MS0xMTE6NDMiIG5hbWU9IkhJViIgeHNpOnR5cGU9IkFsaWFzUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMzQiIGxvY2F0b3I9IjExMjoxMS0xMTI6NTYiIHhzaTp0eXBlPSJBZnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9IlRvRGF0ZVRpbWUiIGxpYnJhcnlOYW1lPSJGSElSSGVscGVycyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMzEiIGxvY2F0b3I9IjExMjoxMS0xMTI6MjAiIHBhdGg9Imlzc3VlZCIgc2NvcGU9IkhJViIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IlRvRGF0ZVRpbWUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzMyIgbG9jYXRvcj0iMTEyOjI4LTExMjo1NiIgeHNpOnR5cGU9IlN0YXJ0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMzIiIGxvY2F0b3I9IjExMjozNy0xMTI6NTYiIG5hbWU9Ik1lYXN1cmVtZW50IFBlcmlvZCIgeHNpOnR5cGU9IlBhcmFtZXRlclJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjQwIiBsb2NhdG9yPSIxMTM6MTEtMTEzOjU1IiB4c2k6dHlwZT0iQmVmb3JlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iVG9EYXRlVGltZSIgbGlicmFyeU5hbWU9IkZISVJIZWxwZXJzIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIzNyIgbG9jYXRvcj0iMTEzOjExLTExMzoyMCIgcGF0aD0iaXNzdWVkIiBzY29wZT0iSElWIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iVG9EYXRlVGltZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjM5IiBsb2NhdG9yPSIxMTM6MjktMTEzOjU1IiB4c2k6dHlwZT0iRW5kIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMzgiIGxvY2F0b3I9IjExMzozNi0xMTM6NTUiIG5hbWU9Ik1lYXN1cmVtZW50IFBlcmlvZCIgeHNpOnR5cGU9IlBhcmFtZXRlclJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICA8L3N1Y2hUaGF0PgogICAgICAgICAgICAgICAgICA8L3JlbGF0aW9uc2hpcD4KICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9Ijc0IiBsb2NhdG9yPSIxMTU6NS0xMjE6NTYiIHhzaTp0eXBlPSJFeGlzdHMiPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI3MyIgbG9jYXRvcj0iMTE1OjExLTEyMTo1NiIgeHNpOnR5cGU9IlF1ZXJ5Ij4KICAgICAgICAgICAgICAgICAgPHNvdXJjZSBsb2NhbElkPSI0NiIgbG9jYXRvcj0iMTE1OjEyLTExNTo1NCIgYWxpYXM9IklDIj4KICAgICAgICAgICAgICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iNDUiIGxvY2F0b3I9IjExNToxMi0xMTU6NTEiIG5hbWU9IlBhcnRuZXIgb3IgY29udGFjdCBvZiBhbiBpbmRleCBjYXNlIiBsaWJyYXJ5TmFtZT0iSEUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICAgICA8cmVsYXRpb25zaGlwIGxvY2FsSWQ9IjUzIiBsb2NhdG9yPSIxMTY6NS0xMTc6NDMiIGFsaWFzPSJTUCIgeHNpOnR5cGU9IldpdGgiPgogICAgICAgICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSI0NyIgbG9jYXRvcj0iMTE2OjEwLTExNjoyOCIgbmFtZT0iU2V4dWFsIHBhcnRuZXIiIGxpYnJhcnlOYW1lPSJIRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgICAgICAgPHN1Y2hUaGF0IGxvY2FsSWQ9IjUyIiBsb2NhdG9yPSIxMTc6MTctMTE3OjQzIiBuYW1lPSJyZWZlcmVuY2VzIiBsaWJyYXJ5TmFtZT0iV0NvbSIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNTAiIGxvY2F0b3I9IjExNzoxNy0xMTc6MjgiIHBhdGg9Imhhc01lbWJlciIgc2NvcGU9IklDIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNTEiIGxvY2F0b3I9IjExNzo0MS0xMTc6NDIiIG5hbWU9IlNQIiB4c2k6dHlwZT0iQWxpYXNSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgPC9zdWNoVGhhdD4KICAgICAgICAgICAgICAgICAgPC9yZWxhdGlvbnNoaXA+CiAgICAgICAgICAgICAgICAgIDxyZWxhdGlvbnNoaXAgbG9jYWxJZD0iNzIiIGxvY2F0b3I9IjExODo3LTEyMTo1NSIgYWxpYXM9IkhJViIgeHNpOnR5cGU9IldpdGgiPgogICAgICAgICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSI1NCIgbG9jYXRvcj0iMTE4OjEyLTExODo2NCIgbmFtZT0iSElWIHRlc3QgcmVzdWx0cyByZXR1cm5lZCBpbiBtZWFzdXJlbWVudCBwZXJpb2QiIGxpYnJhcnlOYW1lPSJISUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgIDxzdWNoVGhhdCBsb2NhbElkPSI3MSIgbG9jYXRvcj0iMTE5OjE3LTEyMTo1NSIgeHNpOnR5cGU9IkFuZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjY1IiBsb2NhdG9yPSIxMTk6MTctMTIwOjU2IiB4c2k6dHlwZT0iQW5kIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNTkiIGxvY2F0b3I9IjExOToxNy0xMTk6NDQiIG5hbWU9InJlZmVyZW5jZXMiIGxpYnJhcnlOYW1lPSJXQ29tIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI1NyIgbG9jYXRvcj0iMTE5OjE3LTExOToyOCIgcGF0aD0iaGFzTWVtYmVyIiBzY29wZT0iSUMiIHhzaTp0eXBlPSJQcm9wZXJ0eSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI1OCIgbG9jYXRvcj0iMTE5OjQxLTExOTo0MyIgbmFtZT0iSElWIiB4c2k6dHlwZT0iQWxpYXNSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI2NCIgbG9jYXRvcj0iMTIwOjExLTEyMDo1NiIgeHNpOnR5cGU9IkFmdGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iVG9EYXRlVGltZSIgbGlicmFyeU5hbWU9IkZISVJIZWxwZXJzIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI2MSIgbG9jYXRvcj0iMTIwOjExLTEyMDoyMCIgcGF0aD0iaXNzdWVkIiBzY29wZT0iSElWIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iVG9EYXRlVGltZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjYzIiBsb2NhdG9yPSIxMjA6MjgtMTIwOjU2IiB4c2k6dHlwZT0iU3RhcnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI2MiIgbG9jYXRvcj0iMTIwOjM3LTEyMDo1NiIgbmFtZT0iTWVhc3VyZW1lbnQgUGVyaW9kIiB4c2k6dHlwZT0iUGFyYW1ldGVyUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNzAiIGxvY2F0b3I9IjEyMToxMS0xMjE6NTUiIHhzaTp0eXBlPSJCZWZvcmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBuYW1lPSJUb0RhdGVUaW1lIiBsaWJyYXJ5TmFtZT0iRkhJUkhlbHBlcnMiIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjY3IiBsb2NhdG9yPSIxMjE6MTEtMTIxOjIwIiBwYXRoPSJpc3N1ZWQiIHNjb3BlPSJISVYiIHhzaTp0eXBlPSJQcm9wZXJ0eSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJUb0RhdGVUaW1lIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNjkiIGxvY2F0b3I9IjEyMToyOS0xMjE6NTUiIHhzaTp0eXBlPSJFbmQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI2OCIgbG9jYXRvcj0iMTIxOjM2LTEyMTo1NSIgbmFtZT0iTWVhc3VyZW1lbnQgUGVyaW9kIiB4c2k6dHlwZT0iUGFyYW1ldGVyUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgIDwvc3VjaFRoYXQ+CiAgICAgICAgICAgICAgICAgIDwvcmVsYXRpb25zaGlwPgogICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSI3OSIgbG9jYXRvcj0iMTMxOjEtMTMyOjMiIG5hbWU9Ik1lYXN1cmUgT2JzZXJ2YXRpb24iIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiIHhzaTp0eXBlPSJGdW5jdGlvbkRlZiI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9Ijc5Ij4KICAgICAgICAgICAgICAgPGE6cz4vKioKICogTWVhc3VyZSBPYnNlcnZhdGlvbgogKiBEZWZpbml0aW9uOiBGb3IgdGhlIGdlbmVyYWwgcG9wdWxhdGlvbjogTnVtYmVyIG9mIGVsaWNpdGVkIHBhcnRuZXJzIGFuZCBvdGhlciBjb250YWN0cyogb2YgcGVvcGxlIGRpYWdub3NlZCB3aXRoIEhJViB3aG8gcmVjZWl2ZWQgSFRTIHwgIHwgQWRkaXRpb25hbCBjYXNjYWRlIGRhdGEgY29sbGVjdGVkOiB8IOKAoiBOdW1iZXIgb2YgcGVvcGxlIGRpYWdub3NlZCB3aXRoIEhJViAoaW5kZXggY2FzZXMpIG9mZmVyZWQgcGFydG5lciBzZXJ2aWNlcyB8IOKAoiBOdW1iZXIgb2YgcGVvcGxlIGRpYWdub3NlZCB3aXRoIEhJViAoaW5kZXggY2FzZXMpIGFjY2VwdGluZyBwYXJ0bmVyIHNlcnZpY2VzIHwg4oCiwqBOdW1iZXIgb2YgY29udGFjdHMvcGFydG5lcnMgb2YgcGVvcGxlIGxpdmluZyB3aXRoIEhJViB3aG9zZSBpbmZvcm1hdGlvbiBpcyBlbGljaXRlZCBmcm9tIHBlb3BsZSBkaWFnbm9zZWQgd2l0aCBISVYgKGluZGV4IGNhc2VzKSB8ICB8IEZvciBrZXkgcG9wdWxhdGlvbnM6IE51bWJlciBvZiBlbGljaXRlZCBjb250YWN0czEgb2YgbWVtYmVycyBvZiBrZXkgcG9wdWxhdGlvbnMgd2hvIHJlY2VpdmVkIEhUUy4gfCBBZGRpdGlvbmFsIGNhc2NhZGUgZGF0YSBjb2xsZWN0ZWQ6IHwg4oCiwqBOdW1iZXIgb2Yga2V5IHBvcHVsYXRpb24gbWVtYmVycyBvZmZlcmVkIHNvY2lhbCBuZXR3b3JrLWJhc2VkL3BhcnRuZXIgc2VydmljZXMgfCDigKIgTnVtYmVyIG9mIGtleSBwb3B1bGF0aW9uIG1lbWJlcnMgYWNjZXB0aW5nIHNvY2lhbCBuZXR3b3JrLWJhc2VkL3BhcnRuZXIgc2VydmljZXMgfCDigKIgTnVtYmVyIG9mIGNvbnRhY3RzIG9mIGtleSBwb3B1bGF0aW9uIG1lbWJlcnMgZWxpY2l0ZWQKICogQ2FsY3VsYXRpb246IEZvciB0aGUgZ2VuZXJhbCBwb3B1bGF0aW9uOiBOdW1iZXIgb2YgZWxpY2l0ZWQgcGFydG5lcnMgYW5kIG90aGVyIGNvbnRhY3RzKiBvZiBwZW9wbGUgZGlhZ25vc2VkIHdpdGggSElWIHdobyByZWNlaXZlZCBIVFMgfCAgfCBBZGRpdGlvbmFsIGNhc2NhZGUgZGF0YSBjb2xsZWN0ZWQ6IHwg4oCiIE51bWJlciBvZiBwZW9wbGUgZGlhZ25vc2VkIHdpdGggSElWIChpbmRleCBjYXNlcykgb2ZmZXJlZCBwYXJ0bmVyIHNlcnZpY2VzIHwg4oCiIE51bWJlciBvZiBwZW9wbGUgZGlhZ25vc2VkIHdpdGggSElWIChpbmRleCBjYXNlcykgYWNjZXB0aW5nIHBhcnRuZXIgc2VydmljZXMgfCDigKLCoE51bWJlciBvZiBjb250YWN0cy9wYXJ0bmVycyBvZiBwZW9wbGUgbGl2aW5nIHdpdGggSElWIHdob3NlIGluZm9ybWF0aW9uIGlzIGVsaWNpdGVkIGZyb20gcGVvcGxlIGRpYWdub3NlZCB3aXRoIEhJViAoaW5kZXggY2FzZXMpIHwgIHwgRm9yIGtleSBwb3B1bGF0aW9uczogTnVtYmVyIG9mIGVsaWNpdGVkIGNvbnRhY3RzMSBvZiBtZW1iZXJzIG9mIGtleSBwb3B1bGF0aW9ucyB3aG8gcmVjZWl2ZWQgSFRTLiB8IEFkZGl0aW9uYWwgY2FzY2FkZSBkYXRhIGNvbGxlY3RlZDogfCDigKLCoE51bWJlciBvZiBrZXkgcG9wdWxhdGlvbiBtZW1iZXJzIG9mZmVyZWQgc29jaWFsIG5ldHdvcmstYmFzZWQvcGFydG5lciBzZXJ2aWNlcyB8IOKAoiBOdW1iZXIgb2Yga2V5IHBvcHVsYXRpb24gbWVtYmVycyBhY2NlcHRpbmcgc29jaWFsIG5ldHdvcmstYmFzZWQvcGFydG5lciBzZXJ2aWNlcyB8IOKAoiBOdW1iZXIgb2YgY29udGFjdHMgb2Yga2V5IHBvcHVsYXRpb24gbWVtYmVycyBlbGljaXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogKi8gICAgIAoKZGVmaW5lIGZ1bmN0aW9uICZxdW90O01lYXN1cmUgT2JzZXJ2YXRpb24mcXVvdDsoUGF0aWVudCAmcXVvdDtQYXRpZW50JnF1b3Q7KToKICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSI3OCI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNzgiPjE8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9Ijc4IiBsb2NhdG9yPSIxMzI6MyIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICA8b3BlcmFuZCBuYW1lPSJQYXRpZW50Ij4KICAgICAgICAgICAgPG9wZXJhbmRUeXBlU3BlY2lmaWVyIGxvY2FsSWQ9Ijc3IiBsb2NhdG9yPSIxMzE6NDctMTMxOjU1IiBuYW1lPSJmaGlyOlBhdGllbnQiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgPC9vcGVyYW5kPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSI4MiIgbG9jYXRvcj0iMTM5OjEtMTQwOjQyIiBuYW1lPSJBZG1pbmlzdHJhdGl2ZSBHZW5kZXIgU3RyYXRpZmllciIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjgyIj4KICAgICAgICAgICAgICAgPGE6cz4vKiBlbmQgUG9wdWxhdGlvbnMgKi8KCi8qCiAqIERpc2FnZ3JlZ2F0b3JzCiAqLwoKZGVmaW5lICZxdW90O0FkbWluaXN0cmF0aXZlIEdlbmRlciBTdHJhdGlmaWVyJnF1b3Q7OgoJPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iODEiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjgwIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5ISUU8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjgxIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtCeSBBZG1pbmlzdHJhdGl2ZSBHZW5kZXIgU3RyYXRpZmllciZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjgxIiBsb2NhdG9yPSIxNDA6Mi0xNDA6NDIiIG5hbWU9IkJ5IEFkbWluaXN0cmF0aXZlIEdlbmRlciBTdHJhdGlmaWVyIiBsaWJyYXJ5TmFtZT0iSElFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSI4NSIgbG9jYXRvcj0iMTQyOjEtMTQzOjI2IiBuYW1lPSJBZ2UgU3RyYXRpZmllciIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9Ijg1Ij4KICAgICAgICAgICAgICAgPGE6cz5kZWZpbmUgJnF1b3Q7QWdlIFN0cmF0aWZpZXImcXVvdDs6Cgk8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSI4NCI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iODMiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iODQiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0J5IEFnZSBTdHJhdGlmaWVyIDImcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSI4NCIgbG9jYXRvcj0iMTQzOjItMTQzOjI2IiBuYW1lPSJCeSBBZ2UgU3RyYXRpZmllciAyIiBsaWJyYXJ5TmFtZT0iSElFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSI4OCIgbG9jYXRvcj0iMTQ1OjEtMTQ2OjM4IiBuYW1lPSJHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iODgiPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSAmcXVvdDtHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyJnF1b3Q7OgoJPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iODciPgogICAgICAgICAgICAgICAgICA8YTpzIHI9Ijg2Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5ISUU8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9Ijg3Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtCeSBHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iODciIGxvY2F0b3I9IjE0NjoyLTE0NjozOCIgbmFtZT0iQnkgR2VvZ3JhcGhpYyBSZWdpb24gU3RyYXRpZmllciIgbGlicmFyeU5hbWU9IkhJRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iOTEiIGxvY2F0b3I9IjE0ODoxLTE0OToyMCIgbmFtZT0icGF0aWVudEdyb3VwcyBTdHJhdGlmaWVyIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iOTEiPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSAmcXVvdDtwYXRpZW50R3JvdXBzIFN0cmF0aWZpZXImcXVvdDs6Cgk8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSI5MCI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iODkiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iOTAiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O3BhdGllbnRHcm91cHMmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSI5MCIgbG9jYXRvcj0iMTQ5OjItMTQ5OjIwIiBuYW1lPSJwYXRpZW50R3JvdXBzIiBsaWJyYXJ5TmFtZT0iSElFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSI5NCIgbG9jYXRvcj0iMTUxOjEtMTUyOjQwIiBuYW1lPSJISVYgc3RhdHVzIG9mIHBhcnRuZXIgb3IgY29udGFjdCIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9Ijk0Ij4KICAgICAgICAgICAgICAgPGE6cz5kZWZpbmUgJnF1b3Q7SElWIHN0YXR1cyBvZiBwYXJ0bmVyIG9yIGNvbnRhY3QmcXVvdDs6CiAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iOTMiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjkyIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5ISUU8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjkzIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtISVYgc3RhdHVzIG9mIHBhcnRuZXIgb3IgY29udGFjdCZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjkzIiBsb2NhdG9yPSIxNTI6My0xNTI6NDAiIG5hbWU9IkhJViBzdGF0dXMgb2YgcGFydG5lciBvciBjb250YWN0IiBsaWJyYXJ5TmFtZT0iSElFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIxMTkiIGxvY2F0b3I9IjE1NDoxLTE1OTozMyIgbmFtZT0iU3RyYXRpZmljYXRpb24iIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIxMTkiPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSAmcXVvdDtTdHJhdGlmaWNhdGlvbiZxdW90OzoKIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjExOCI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTEzIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxMTAiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjEwOCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTA1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxMDMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9Ijk5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI5NyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iOTYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9Ijk1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5ISUU8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9Ijk2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtCeSBBZG1pbmlzdHJhdGl2ZSBHZW5kZXIgU3RyYXRpZmllciZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9Ijk3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5jb2RlPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gCiArIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9Ijk4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4nOic8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiArIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjEwMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTAxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxMDAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTAxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtISVYgc3RhdHVzIG9mIHBhcnRuZXIgb3IgY29udGFjdCZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjEwMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+Y29kZTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICsgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTA0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4nOic8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiArIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjEwNyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTA2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5ISUU8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjEwNyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7QnkgQWdlIFN0cmF0aWZpZXIgMiZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgorIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjEwOSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JzonPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4gKyA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxMTIiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjExMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElFPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxMTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0J5IEdlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXImcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4KKyA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIxMTciPgogICAgICAgICAgICAgICAgICAgICA8YTpzPkNvbWJpbmUoPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTE1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxMTQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTE1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5wYXRpZW50R3JvdXBzPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4sIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjExNiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JzonPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPik8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIxMTgiIGxvY2F0b3I9IjE1NToyLTE1OTozMyIgeHNpOnR5cGU9IkNvbmNhdGVuYXRlIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMTEzIiBsb2NhdG9yPSIxNTU6Mi0xNTg6NDUiIHhzaTp0eXBlPSJDb25jYXRlbmF0ZSI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjExMCIgbG9jYXRvcj0iMTU1OjItMTU4OjUiIHhzaTp0eXBlPSJDb25jYXRlbmF0ZSI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjEwOCIgbG9jYXRvcj0iMTU1OjItMTU3OjM1IiB4c2k6dHlwZT0iQ29uY2F0ZW5hdGUiPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIxMDUiIGxvY2F0b3I9IjE1NToyLTE1Nzo3IiB4c2k6dHlwZT0iQ29uY2F0ZW5hdGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIxMDMiIGxvY2F0b3I9IjE1NToyLTE1Njo1MiIgeHNpOnR5cGU9IkNvbmNhdGVuYXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iOTkiIGxvY2F0b3I9IjE1NToyLTE1Njo2IiB4c2k6dHlwZT0iQ29uY2F0ZW5hdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI5NyIgbG9jYXRvcj0iMTU1OjItMTU1OjQ3IiBwYXRoPSJjb2RlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIGxvY2FsSWQ9Ijk2IiBsb2NhdG9yPSIxNTU6Mi0xNTU6NDIiIG5hbWU9IkJ5IEFkbWluaXN0cmF0aXZlIEdlbmRlciBTdHJhdGlmaWVyIiBsaWJyYXJ5TmFtZT0iSElFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9Ijk4IiBsb2NhdG9yPSIxNTY6NC0xNTY6NiIgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9IjoiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMTAyIiBsb2NhdG9yPSIxNTY6MTAtMTU2OjUyIiBwYXRoPSJjb2RlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIGxvY2FsSWQ9IjEwMSIgbG9jYXRvcj0iMTU2OjEwLTE1Njo0NyIgbmFtZT0iSElWIHN0YXR1cyBvZiBwYXJ0bmVyIG9yIGNvbnRhY3QiIGxpYnJhcnlOYW1lPSJISUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIxMDQiIGxvY2F0b3I9IjE1Nzo1LTE1Nzo3IiB2YWx1ZVR5cGU9InQ6U3RyaW5nIiB2YWx1ZT0iOiIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIxMDciIGxvY2F0b3I9IjE1NzoxMS0xNTc6MzUiIG5hbWU9IkJ5IEFnZSBTdHJhdGlmaWVyIDIiIGxpYnJhcnlOYW1lPSJISUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMTA5IiBsb2NhdG9yPSIxNTg6My0xNTg6NSIgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9IjoiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iVG9TdHJpbmciIGxpYnJhcnlOYW1lPSJGSElSSGVscGVycyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMTEyIiBsb2NhdG9yPSIxNTg6OS0xNTg6NDUiIG5hbWU9IkJ5IEdlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXIiIGxpYnJhcnlOYW1lPSJISUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIxMTciIGxvY2F0b3I9IjE1OTozLTE1OTozMyIgeHNpOnR5cGU9IkNvbWJpbmUiPgogICAgICAgICAgICAgICA8c291cmNlIGxvY2FsSWQ9IjExNSIgbG9jYXRvcj0iMTU5OjExLTE1OToyNyIgbmFtZT0icGF0aWVudEdyb3VwcyIgbGlicmFyeU5hbWU9IkhJRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgPHNlcGFyYXRvciBsb2NhbElkPSIxMTYiIGxvY2F0b3I9IjE1OTozMC0xNTk6MzIiIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSI6IiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgIDwvc3RhdGVtZW50cz4KPC9saWJyYXJ5Pgo="/>
</content>
</Library>