WHO SMART Guidelines - HIV
0.3.0 - ci-build

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

: HIV.IND.53 Logic - TTL Representation

Draft as of 2024-08-18

Raw ttl | Download

@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

 a fhir:Library ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "HIVIND53Logic"] ; # 
  fhir:meta [
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary>     ] [
fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary>     ] [
fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library>     ] [
fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module>     ] )
  ] ; # 
  fhir:text [
fhir:status [ fhir:v "generated" ] ;
fhir:div "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: Library HIVIND53Logic</b></p><a name=\"HIVIND53Logic\"> </a><a name=\"hcHIVIND53Logic\"> </a><a name=\"HIVIND53Logic-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 HC</td><td><a href=\"Library-HIVConcepts.html\">HIVConcepts</a></td></tr><tr><td>Depends On</td><td>Library HCC</td><td><a href=\"Library-HIVConceptsCustom.html\">HIVConceptsCustom</a></td></tr><tr><td>Depends On</td><td>Library Common</td><td><a href=\"Library-HIVCommon.html\">HIVCommon</a></td></tr><tr><td>Depends On</td><td>Library HE</td><td><a href=\"Library-HIVElements.html\">HIVElements</a></td></tr><tr><td>Depends On</td><td>Library HIE</td><td><a href=\"Library-HIVIndicatorElements.html\">HIVIndicatorElements</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>Last ART prescribed before end of measurement period</td><td>out</td><td>0</td><td>1</td><td>MedicationRequest</td></tr><tr><td>Initial Population</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Numerator</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Denominator</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><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>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\">/**\n * Library: HIV.IND.53 Logic\n * Ref No: DSD.1\n * Short Name: Multi-month ARV dispensing\n *\n * Definition: % of people living with HIV and On ART who are receiving multi-month dispensing of ARV medicine during the reporting period\n *\n * Numerator: Number of people living with HIV and On ART who received 3-5 or &gt;6 months of ARV medicine at their most recent ARV medicine pick-up. |  | (The number receiving &lt;3 months of ARV supply is also collected, for validation purposes.) |  | If countries cannot report on the number of months of ARV medicine dispensed by the disaggregations described above, they could, as an alternative, report the total number of people currently on ARV therapy and receiving ≥3 months of ARV medicine at their last medicine pick-up.\n * Numerator Calculation: COUNT of clients with &quot;HIV status&quot;='HIV-positive' AND &quot;On ART&quot;=True AND ((&quot;Number of days medications prescribed&quot;&gt;=3months) for last ART prescription\n * Numerator Exclusions: \n *\n * Denominator: Number of people living with HIV and On ART\n * Denominator Calculation: COUNT of clients with &quot;HIV status&quot;='HIV-positive' AND &quot;On ART&quot;=True within the reporting period\n * Denominator Exclusions: \n *\n * Disaggregations:\n * • Gender (female, male, other*) \n *  • Age (0–4, 5–14, 15–24, 25+ years) \n *  • 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)** \n *  • Cities and other administrative regions of epidemiologic importance\n *\n * Disaggregation Elements: Gender | Age | Key population member type | Number of days medications prescribed (3-5 months, &gt;6 months)\n *\n * Numerator and Denominator Elements:\n * HIV status \n *  Number of days medications prescribed \n *  On ART\n *\n * Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022\n * \n * Data Concepts:\n * HIV.A.DE17: Age | Calculated age (number of years) of the client based on date of birth\n * HIV.A.DE18: Gender* | Gender of the client*\n * HIV.A.DE19: Female | Client identifies as female\n * HIV.A.DE20: Male | Client identifies as male\n * HIV.A.DE21: Transgender male | Client identifies as transgender male\n * HIV.A.DE22: Transgender female | Client identifies as transgender female\n * HIV.A.DE23: Other | Additional category\n * HIV.B.DE50: Key population member type* | The type of key population that the client is included in\n * HIV.B.DE51: Sex worker | Client is a sex worker\n * HIV.B.DE52: Men who have sex with men | Client is a man who has sex with men\n * HIV.B.DE53: Trans and gender-diverse people | Client identifies as trans and gender-diverse\n * HIV.B.DE54: People who inject drugs | Client is a person who injects drugs\n * HIV.B.DE55: People living in prisons and other closed settings | Client lives in a prison or another closed setting\n * HIV.B.DE115: HIV status | HIV status reported after applying the national HIV testing algorithm. No single HIV test can provide an HIV-positive diagnosis.\n * HIV.B.DE116: HIV-positive | Client is HIV-positive\n * HIV.B.DE117: HIV-negative | Client is HIV-negative\n * HIV.B.DE118: Unknown | Client has unknown HIV status\n * HIV.D.DE38: On ART | Client is currently taking ART\n * HIV.D.DE460: Number of days medications prescribed | Number of days supply of each medication or regimen prescribed during the visit\n * HIV.E.DE114: Key population member type* | The type of key population that the infant's mother is included in\n * HIV.E.DE115: Sex worker | Infant's mother is a sex worker\n * HIV.E.DE116: People who inject drugs | Infant's mother is a person who injects drugs\n * HIV.E.DE117: Trans and gender-diverse people | Infant's mother identifies as trans and gender-diverse\n * HIV.E.DE118: People living in prisons and other closed setting | Infant's mother is in a prison or closed setting\n * HIV.H.DE47: On ART | Client is currently taking ART \n *\n * Additional Context\n * - what it measures: Percentage of all people living with HIV and On ART who received a multi-month supply of ARV medicine (as specified below) at their most recent ARV medicine pick-up.\n * - rationale: • The recommendation for people living with HIV who are established on ART (see &quot;Definitions,&quot; below) to receive multiple months of ARV medicines is a key component | of care that responds to the needs and preferences of people living with HIV. For people living with HIV who are established on ART, multi-month dispensing has the potential to improve health outcomes and support long-term treatment adherence, while also reducing unnecessary clinic attendance, thus contributing to system efficiency. Broadly, multi-month dispensing can contribute to efforts to achieve the 95–95–95 targets. | • Adoption and rollout of multi-month dispensing as part of national government strategies and plans is increasing. Since 2016 DSD - including the option of multi-month dispensing - is recommended in WHO HIV treatment and public health guidelines. The extent to which these models of care have been scaled up in many countries is uncertain. Reporting on this indicator will support efforts to expand the offer of multi-month dispensing.\n * - method: The data for this indicator are collected at the end of the reporting period from facility ARV therapy registers (including ART dispensed outside the facility, for example, at the community level), programme monitoring tools or other databases such as EMR systems. (If data are available from the private sector, these should be included.) Pharmacy ARV dispensing data can also be used for this indicator if EMR systems cover only a fraction of the total number of people living with HIV on ART. |  | All people currently on ARV therapy should be identified. People who have not received ARV medicine within 28 days of their scheduled medicine pick-up are considered lost to follow-up and should not be counted in the denominator or the numerator. For example, if ARV medicine was provided for three months (12 weeks), the time since the last medicine pick-up should be no longer than 16 weeks (12 weeks plus 28 days). |  | For the numerator: Registers/EMRs should capture the duration of ARV medicine dispensed for each patient currently on ARV therapy at their most recent medicine pick-up visit. |  | If possible, this should be categorized as &lt;3 months, 3–5 or &gt;6 months and summarized for each age/sex group. |  | The denominator should match the total number of people currently on ARV therapy at the end of the reporting period. |  | Note: Multi-month ARV dispensing should not be confused with multi-month prescriptions. Someone who receives a six-month ARV medicine prescription but needs to attend clinic every one or two months for refills would not be counted as receiving multi-month dispensing. |  | Measurement frequency: Annual for national reporting. Quarterly reporting can be considered to monitor progress of implementation, particularly in the early stages of DSD scale-up and implementation, if feasible in country context and existing data systems.\n * \n * Suggested Scoring Method: proportion | http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm\n */\n\nlibrary HIVIND53Logic\n\n// Included Libraries\nusing FHIR version '4.0.1'\n\ninclude HIVCommon version '0.0.1' called HIC\ninclude FHIRHelpers version '4.0.1'\n\ninclude WHOCommon called WCom\ninclude HIVConcepts called HC\ninclude HIVConceptsCustom called HCC\ninclude HIVCommon called Common\ninclude HIVElements called HE\ninclude HIVIndicatorElements called HIE\n\n// Indicator Definition\nparameter &quot;Measurement Period&quot; Interval&lt;Date&gt; default Interval[@2023-01-01, @2023-01-30]\n\ncontext Patient\n/* Populations */\n\ndefine &quot;Last ART prescribed before end of measurement period&quot;:\n  Last([MedicationRequest: HCC.&quot;ART medication&quot;] MR\n  where (MR.authoredOn.toInterval() before end of &quot;Measurement Period&quot;)\n  and Common.MedicationRequestPeriod(MR) overlaps &quot;Measurement Period&quot;\n  sort by start of authoredOn.toInterval())\n\n\n/*\n *Initial Population\n */\n\ndefine &quot;Initial Population&quot;:\n  true\n\n/**\n * Numerator\n * \n * Definition: Number of people living with HIV and On ART who received 3-5 or &gt;6 months of ARV medicine at their most recent ARV medicine pick-up. |  | (The number receiving &lt;3 months of ARV supply is also collected, for validation purposes.) |  | If countries cannot report on the number of months of ARV medicine dispensed by the disaggregations described above, they could, as an alternative, report the total number of people currently on ARV therapy and receiving ≥3 months of ARV medicine at their last medicine pick-up.\n * Calculation: COUNT of clients with &quot;HIV status&quot;='HIV-positive' AND &quot;On ART&quot;=True AND ((&quot;Number of days medications prescribed&quot;&gt;=3months) for last ART prescription\n */\n\ndefine &quot;Numerator&quot;:\n  HIE.&quot;Has HIV-positive Status&quot;\n   and HIE.&quot;On ART H.DE47&quot;\n   and (duration in months of Common.MedicationRequestPeriod(&quot;Last ART prescribed before end of measurement period&quot;) &gt;= 3 months)\n\n\n/**\n * Denominator\n *\n * Definition: Number of people living with HIV and On ART\n * Calculation: COUNT of clients with &quot;HIV status&quot;='HIV-positive' AND &quot;On ART&quot;=True within the reporting period\n */\n\ndefine &quot;Denominator&quot;:\n  HIE.&quot;Has HIV-positive Status&quot;\n   and HIE.&quot;On ART H.DE47&quot;\n    \n\n/* end Populations */\n\n/*\n * Disaggregators\n */\n\ndefine &quot;Administrative Gender Stratifier&quot;:\n	HIE.&quot;By Administrative Gender Stratifier&quot;\n\ndefine &quot;Age Stratifier&quot;:\n	HIE.&quot;By Age Stratifier&quot;\n\ndefine &quot;Geographic Region Stratifier&quot;:\n	HIE.&quot;By Geographic Region Stratifier&quot;\n\ndefine &quot;patientGroups Stratifier&quot;:\n	HIE.&quot;patientGroups&quot;\n\ndefine &quot;Stratification&quot;:\n HIE.&quot;By Administrative Gender Stratifier&quot;.code \n  + ':' + HIE.&quot;By Age Stratifier&quot;\n+ ':' + HIE.&quot;By Geographic Region Stratifier&quot;\n+ Combine(HIE.patientGroups, ':')</code></pre><p><code>Content not shown - (</code><code>application/elm+xml</code>, size = 43Kb )</p></div>"
  ] ; # 
  fhir:extension ( [
fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability"^^xsd:anyURI ] ;
fhir:value [ fhir:v "computable" ]
  ] ) ; # 
  fhir:url [ fhir:v "http://smart.who.int/hiv/Library/HIVIND53Logic"^^xsd:anyURI] ; # 
  fhir:version [ fhir:v "0.3.0"] ; # 
  fhir:name [ fhir:v "HIVIND53Logic"] ; # 
  fhir:title [ fhir:v "HIV.IND.53 Logic"] ; # 
  fhir:status [ fhir:v "draft"] ; # 
  fhir:experimental [ fhir:v "true"^^xsd:boolean] ; # 
  fhir:type [
    ( fhir:coding [
fhir:system [ fhir:v "http://terminology.hl7.org/CodeSystem/library-type"^^xsd:anyURI ] ;
fhir:code [ fhir:v "logic-library" ]     ] )
  ] ; # 
  fhir:date [ fhir:v "2024-08-18T19:14:17+00:00"^^xsd:dateTime] ; # 
  fhir:publisher [ fhir:v "WHO"] ; # 
  fhir:contact ( [
fhir:name [ fhir:v "WHO" ] ;
    ( fhir:telecom [
fhir:system [ fhir:v "url" ] ;
fhir:value [ fhir:v "http://who.int" ]     ] )
  ] ) ; # 
  fhir:description [ fhir:v "% of people living with HIV and On ART who are receiving multi-month dispensing of ARV medicine during the reporting period"] ; # 
  fhir:relatedArtifact ( [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library HIC" ] ;
fhir:resource [
fhir:v "http://smart.who.int/hiv/Library/HIVCommon|0.0.1"^^xsd:anyURI ;
fhir:link <http://smart.who.int/hiv/Library/HIVCommon|0.0.1>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library WCom" ] ;
fhir:resource [
fhir:v "http://smart.who.int/hiv/Library/WHOCommon"^^xsd:anyURI ;
fhir:link <http://smart.who.int/hiv/Library/WHOCommon>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library HC" ] ;
fhir:resource [
fhir:v "http://smart.who.int/hiv/Library/HIVConcepts"^^xsd:anyURI ;
fhir:link <http://smart.who.int/hiv/Library/HIVConcepts>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library HCC" ] ;
fhir:resource [
fhir:v "http://smart.who.int/hiv/Library/HIVConceptsCustom"^^xsd:anyURI ;
fhir:link <http://smart.who.int/hiv/Library/HIVConceptsCustom>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library Common" ] ;
fhir:resource [
fhir:v "http://smart.who.int/hiv/Library/HIVCommon"^^xsd:anyURI ;
fhir:link <http://smart.who.int/hiv/Library/HIVCommon>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library HE" ] ;
fhir:resource [
fhir:v "http://smart.who.int/hiv/Library/HIVElements"^^xsd:anyURI ;
fhir:link <http://smart.who.int/hiv/Library/HIVElements>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library HIE" ] ;
fhir:resource [
fhir:v "http://smart.who.int/hiv/Library/HIVIndicatorElements"^^xsd:anyURI ;
fhir:link <http://smart.who.int/hiv/Library/HIVIndicatorElements>     ]
  ] ) ; # 
  fhir:parameter ( [
fhir:name [ fhir:v "Measurement Period" ] ;
fhir:use [ fhir:v "in" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Period" ]
  ] [
fhir:name [ fhir:v "Patient" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Patient" ]
  ] [
fhir:name [ fhir:v "Last ART prescribed before end of measurement period" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "MedicationRequest" ]
  ] [
fhir:name [ fhir:v "Initial Population" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "boolean" ]
  ] [
fhir:name [ fhir:v "Numerator" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "boolean" ]
  ] [
fhir:name [ fhir:v "Denominator" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "boolean" ]
  ] [
fhir:name [ fhir:v "Administrative Gender Stratifier" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Coding" ]
  ] [
fhir:name [ fhir:v "Age Stratifier" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "string" ]
  ] [
fhir:name [ fhir:v "Geographic Region Stratifier" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "string" ]
  ] [
fhir:name [ fhir:v "patientGroups Stratifier" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "string" ]
  ] [
fhir:name [ fhir:v "Stratification" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "string" ]
  ] ) ; # 
  fhir:content ( [
fhir:contentType [ fhir:v "text/cql" ] ;
fhir:data [ fhir:v "LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuNTMgTG9naWMKICogUmVmIE5vOiBEU0QuMQogKiBTaG9ydCBOYW1lOiBNdWx0aS1tb250aCBBUlYgZGlzcGVuc2luZwogKgogKiBEZWZpbml0aW9uOiAlIG9mIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYgYW5kIE9uIEFSVCB3aG8gYXJlIHJlY2VpdmluZyBtdWx0aS1tb250aCBkaXNwZW5zaW5nIG9mIEFSViBtZWRpY2luZSBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QKICoKICogTnVtZXJhdG9yOiBOdW1iZXIgb2YgcGVvcGxlIGxpdmluZyB3aXRoIEhJViBhbmQgT24gQVJUIHdobyByZWNlaXZlZCAzLTUgb3IgPjYgbW9udGhzIG9mIEFSViBtZWRpY2luZSBhdCB0aGVpciBtb3N0IHJlY2VudCBBUlYgbWVkaWNpbmUgcGljay11cC4gfCAgfCAoVGhlIG51bWJlciByZWNlaXZpbmcgPDMgbW9udGhzIG9mIEFSViBzdXBwbHkgaXMgYWxzbyBjb2xsZWN0ZWQsIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzLikgfCAgfCBJZiBjb3VudHJpZXMgY2Fubm90IHJlcG9ydCBvbiB0aGUgbnVtYmVyIG9mIG1vbnRocyBvZiBBUlYgbWVkaWNpbmUgZGlzcGVuc2VkIGJ5IHRoZSBkaXNhZ2dyZWdhdGlvbnMgZGVzY3JpYmVkIGFib3ZlLCB0aGV5IGNvdWxkLCBhcyBhbiBhbHRlcm5hdGl2ZSwgcmVwb3J0IHRoZSB0b3RhbCBudW1iZXIgb2YgcGVvcGxlIGN1cnJlbnRseSBvbiBBUlYgdGhlcmFweSBhbmQgcmVjZWl2aW5nIOKJpTMgbW9udGhzIG9mIEFSViBtZWRpY2luZSBhdCB0aGVpciBsYXN0IG1lZGljaW5lIHBpY2stdXAuCiAqIE51bWVyYXRvciBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICJISVYgc3RhdHVzIj0nSElWLXBvc2l0aXZlJyBBTkQgIk9uIEFSVCI9VHJ1ZSBBTkQgKCgiTnVtYmVyIG9mIGRheXMgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCI+PTNtb250aHMpIGZvciBsYXN0IEFSVCBwcmVzY3JpcHRpb24KICogTnVtZXJhdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEZW5vbWluYXRvcjogTnVtYmVyIG9mIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYgYW5kIE9uIEFSVAogKiBEZW5vbWluYXRvciBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICJISVYgc3RhdHVzIj0nSElWLXBvc2l0aXZlJyBBTkQgIk9uIEFSVCI9VHJ1ZSB3aXRoaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QKICogRGVub21pbmF0b3IgRXhjbHVzaW9uczogCiAqCiAqIERpc2FnZ3JlZ2F0aW9uczoKICog4oCiwqBHZW5kZXIgKGZlbWFsZSwgbWFsZSwgb3RoZXIqKSAKICogIOKAosKgQWdlICgw4oCTNCwgNeKAkzE0LCAxNeKAkzI0LCAyNSsgeWVhcnMpIAogKiAg4oCiwqBLZXkgcG9wdWxhdGlvbnMgKG1lbiB3aG8gaGF2ZSBzZXggd2l0aCBtZW4sIHBlb3BsZSBsaXZpbmcgaW4gcHJpc29ucyBhbmQgb3RoZXIgY2xvc2VkIHNldHRpbmdzLCBwZW9wbGUgd2hvIGluamVjdCBkcnVncywgc2V4IHdvcmtlcnMsIHRyYW5zIGFuZCBnZW5kZXIgZGl2ZXJzZSBwZW9wbGUpKiogCiAqICDigKLCoENpdGllcyBhbmQgb3RoZXIgYWRtaW5pc3RyYXRpdmUgcmVnaW9ucyBvZiBlcGlkZW1pb2xvZ2ljIGltcG9ydGFuY2UKICoKICogRGlzYWdncmVnYXRpb24gRWxlbWVudHM6IEdlbmRlciB8IEFnZSB8IEtleSBwb3B1bGF0aW9uIG1lbWJlciB0eXBlIHwgTnVtYmVyIG9mIGRheXMgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCAoMy01IG1vbnRocywgPjYgbW9udGhzKQogKgogKiBOdW1lcmF0b3IgYW5kIERlbm9taW5hdG9yIEVsZW1lbnRzOgogKiBISVYgc3RhdHVzIAogKiAgTnVtYmVyIG9mIGRheXMgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCAKICogIE9uIEFSVAogKgogKiBSZWZlcmVuY2U6IENvbnNvbGlkYXRlZCBndWlkZWxpbmVzIG9uIHBlcnNvbi1jZW50cmVkIEhJViBzdHJhdGVnaWMgaW5mb3JtYXRpb246IHN0cmVuZ3RoZW5pbmcgcm91dGluZSBkYXRhIGZvciBpbXBhY3QuIEdlbmV2YTogV29ybGQgSGVhbHRoIE9yZ2FuaXphdGlvbjsgMjAyMgogKiAKICogRGF0YSBDb25jZXB0czoKICogSElWLkEuREUxNzogQWdlIHwgQ2FsY3VsYXRlZCBhZ2UgKG51bWJlciBvZiB5ZWFycykgb2YgdGhlIGNsaWVudCBiYXNlZCBvbiBkYXRlIG9mIGJpcnRoCiAqIEhJVi5BLkRFMTg6IEdlbmRlciogfCBHZW5kZXIgb2YgdGhlIGNsaWVudCoKICogSElWLkEuREUxOTogRmVtYWxlIHwgQ2xpZW50IGlkZW50aWZpZXMgYXMgZmVtYWxlCiAqIEhJVi5BLkRFMjA6IE1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyBtYWxlCiAqIEhJVi5BLkRFMjE6IFRyYW5zZ2VuZGVyIG1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyB0cmFuc2dlbmRlciBtYWxlCiAqIEhJVi5BLkRFMjI6IFRyYW5zZ2VuZGVyIGZlbWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIHRyYW5zZ2VuZGVyIGZlbWFsZQogKiBISVYuQS5ERTIzOiBPdGhlciB8IEFkZGl0aW9uYWwgY2F0ZWdvcnkKICogSElWLkIuREU1MDogS2V5IHBvcHVsYXRpb24gbWVtYmVyIHR5cGUqIHwgVGhlIHR5cGUgb2Yga2V5IHBvcHVsYXRpb24gdGhhdCB0aGUgY2xpZW50IGlzIGluY2x1ZGVkIGluCiAqIEhJVi5CLkRFNTE6IFNleCB3b3JrZXIgfCBDbGllbnQgaXMgYSBzZXggd29ya2VyCiAqIEhJVi5CLkRFNTI6IE1lbiB3aG8gaGF2ZSBzZXggd2l0aCBtZW4gfCBDbGllbnQgaXMgYSBtYW4gd2hvIGhhcyBzZXggd2l0aCBtZW4KICogSElWLkIuREU1MzogVHJhbnMgYW5kIGdlbmRlci1kaXZlcnNlIHBlb3BsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIHRyYW5zIGFuZCBnZW5kZXItZGl2ZXJzZQogKiBISVYuQi5ERTU0OiBQZW9wbGUgd2hvIGluamVjdCBkcnVncyB8IENsaWVudCBpcyBhIHBlcnNvbiB3aG8gaW5qZWN0cyBkcnVncwogKiBISVYuQi5ERTU1OiBQZW9wbGUgbGl2aW5nIGluIHByaXNvbnMgYW5kIG90aGVyIGNsb3NlZCBzZXR0aW5ncyB8IENsaWVudCBsaXZlcyBpbiBhIHByaXNvbiBvciBhbm90aGVyIGNsb3NlZCBzZXR0aW5nCiAqIEhJVi5CLkRFMTE1OiBISVYgc3RhdHVzIHwgSElWIHN0YXR1cyByZXBvcnRlZCBhZnRlciBhcHBseWluZyB0aGUgbmF0aW9uYWwgSElWIHRlc3RpbmcgYWxnb3JpdGhtLiBObyBzaW5nbGUgSElWIHRlc3QgY2FuIHByb3ZpZGUgYW4gSElWLXBvc2l0aXZlIGRpYWdub3Npcy4KICogSElWLkIuREUxMTY6IEhJVi1wb3NpdGl2ZSB8IENsaWVudCBpcyBISVYtcG9zaXRpdmUKICogSElWLkIuREUxMTc6IEhJVi1uZWdhdGl2ZSB8IENsaWVudCBpcyBISVYtbmVnYXRpdmUKICogSElWLkIuREUxMTg6IFVua25vd24gfCBDbGllbnQgaGFzIHVua25vd24gSElWIHN0YXR1cwogKiBISVYuRC5ERTM4OiBPbiBBUlQgfCBDbGllbnQgaXMgY3VycmVudGx5IHRha2luZyBBUlQKICogSElWLkQuREU0NjA6IE51bWJlciBvZiBkYXlzIG1lZGljYXRpb25zIHByZXNjcmliZWQgfCBOdW1iZXIgb2YgZGF5cyBzdXBwbHkgb2YgZWFjaCBtZWRpY2F0aW9uIG9yIHJlZ2ltZW4gcHJlc2NyaWJlZCBkdXJpbmcgdGhlIHZpc2l0CiAqIEhJVi5FLkRFMTE0OiBLZXkgcG9wdWxhdGlvbiBtZW1iZXIgdHlwZSogfCBUaGUgdHlwZSBvZiBrZXkgcG9wdWxhdGlvbiB0aGF0IHRoZSBpbmZhbnQncyBtb3RoZXIgaXMgaW5jbHVkZWQgaW4KICogSElWLkUuREUxMTU6IFNleCB3b3JrZXIgfCBJbmZhbnQncyBtb3RoZXIgaXMgYSBzZXggd29ya2VyCiAqIEhJVi5FLkRFMTE2OiBQZW9wbGUgd2hvIGluamVjdCBkcnVncyB8IEluZmFudCdzIG1vdGhlciBpcyBhIHBlcnNvbiB3aG8gaW5qZWN0cyBkcnVncwogKiBISVYuRS5ERTExNzogVHJhbnMgYW5kIGdlbmRlci1kaXZlcnNlIHBlb3BsZSB8IEluZmFudCdzIG1vdGhlciBpZGVudGlmaWVzIGFzIHRyYW5zIGFuZCBnZW5kZXItZGl2ZXJzZQogKiBISVYuRS5ERTExODogUGVvcGxlIGxpdmluZyBpbiBwcmlzb25zIGFuZCBvdGhlciBjbG9zZWQgc2V0dGluZyB8IEluZmFudCdzIG1vdGhlciBpcyBpbiBhIHByaXNvbiBvciBjbG9zZWQgc2V0dGluZwogKiBISVYuSC5ERTQ3OiBPbiBBUlQgfCBDbGllbnQgaXMgY3VycmVudGx5IHRha2luZyBBUlQgCiAqCiAqIEFkZGl0aW9uYWwgQ29udGV4dAogKiAtIHdoYXQgaXQgbWVhc3VyZXM6IFBlcmNlbnRhZ2Ugb2YgYWxsIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYgYW5kIE9uIEFSVCB3aG8gcmVjZWl2ZWQgYSBtdWx0aS1tb250aCBzdXBwbHkgb2YgQVJWIG1lZGljaW5lIChhcyBzcGVjaWZpZWQgYmVsb3cpIGF0IHRoZWlyIG1vc3QgcmVjZW50IEFSViBtZWRpY2luZSBwaWNrLXVwLgogKiAtIHJhdGlvbmFsZTog4oCiwqBUaGUgcmVjb21tZW5kYXRpb24gZm9yIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYgd2hvIGFyZSBlc3RhYmxpc2hlZCBvbiBBUlQgKHNlZSAiRGVmaW5pdGlvbnMsIiBiZWxvdykgdG8gcmVjZWl2ZSBtdWx0aXBsZSBtb250aHMgb2YgQVJWIG1lZGljaW5lcyBpcyBhIGtleSBjb21wb25lbnQgfCBvZiBjYXJlIHRoYXQgcmVzcG9uZHMgdG8gdGhlIG5lZWRzIGFuZCBwcmVmZXJlbmNlcyBvZiBwZW9wbGUgbGl2aW5nIHdpdGggSElWLiBGb3IgcGVvcGxlIGxpdmluZyB3aXRoIEhJViB3aG8gYXJlIGVzdGFibGlzaGVkIG9uIEFSVCwgbXVsdGktbW9udGggZGlzcGVuc2luZyBoYXMgdGhlIHBvdGVudGlhbCB0byBpbXByb3ZlIGhlYWx0aCBvdXRjb21lcyBhbmQgc3VwcG9ydCBsb25nLXRlcm0gdHJlYXRtZW50IGFkaGVyZW5jZSwgd2hpbGUgYWxzbyByZWR1Y2luZyB1bm5lY2Vzc2FyeSBjbGluaWMgYXR0ZW5kYW5jZSwgdGh1cyBjb250cmlidXRpbmcgdG8gc3lzdGVtIGVmZmljaWVuY3kuIEJyb2FkbHksIG11bHRpLW1vbnRoIGRpc3BlbnNpbmcgY2FuIGNvbnRyaWJ1dGUgdG8gZWZmb3J0cyB0byBhY2hpZXZlIHRoZSA5NeKAkzk14oCTOTUgdGFyZ2V0cy4gfCDigKLCoEFkb3B0aW9uIGFuZCByb2xsb3V0IG9mIG11bHRpLW1vbnRoIGRpc3BlbnNpbmcgYXMgcGFydCBvZiBuYXRpb25hbCBnb3Zlcm5tZW50IHN0cmF0ZWdpZXMgYW5kIHBsYW5zIGlzIGluY3JlYXNpbmcuIFNpbmNlIDIwMTYgRFNEIC0gaW5jbHVkaW5nIHRoZSBvcHRpb24gb2YgbXVsdGktbW9udGggZGlzcGVuc2luZyAtIGlzIHJlY29tbWVuZGVkIGluIFdITyBISVYgdHJlYXRtZW50IGFuZCBwdWJsaWMgaGVhbHRoIGd1aWRlbGluZXMuIFRoZSBleHRlbnQgdG8gd2hpY2ggdGhlc2UgbW9kZWxzIG9mIGNhcmUgaGF2ZSBiZWVuIHNjYWxlZCB1cCBpbiBtYW55IGNvdW50cmllcyBpcyB1bmNlcnRhaW4uIFJlcG9ydGluZyBvbiB0aGlzIGluZGljYXRvciB3aWxsIHN1cHBvcnQgZWZmb3J0cyB0byBleHBhbmQgdGhlIG9mZmVyIG9mIG11bHRpLW1vbnRoIGRpc3BlbnNpbmcuCiAqIC0gbWV0aG9kOiBUaGUgZGF0YSBmb3IgdGhpcyBpbmRpY2F0b3IgYXJlIGNvbGxlY3RlZCBhdCB0aGUgZW5kIG9mIHRoZSByZXBvcnRpbmcgcGVyaW9kIGZyb20gZmFjaWxpdHkgQVJWIHRoZXJhcHkgcmVnaXN0ZXJzIChpbmNsdWRpbmcgQVJUIGRpc3BlbnNlZCBvdXRzaWRlIHRoZSBmYWNpbGl0eSwgZm9yIGV4YW1wbGUsIGF0IHRoZSBjb21tdW5pdHkgbGV2ZWwpLCBwcm9ncmFtbWUgbW9uaXRvcmluZyB0b29scyBvciBvdGhlciBkYXRhYmFzZXMgc3VjaCBhcyBFTVIgc3lzdGVtcy4gKElmIGRhdGEgYXJlIGF2YWlsYWJsZSBmcm9tIHRoZSBwcml2YXRlIHNlY3RvciwgdGhlc2Ugc2hvdWxkIGJlIGluY2x1ZGVkLikgUGhhcm1hY3kgQVJWIGRpc3BlbnNpbmcgZGF0YSBjYW4gYWxzbyBiZSB1c2VkIGZvciB0aGlzIGluZGljYXRvciBpZiBFTVIgc3lzdGVtcyBjb3ZlciBvbmx5IGEgZnJhY3Rpb24gb2YgdGhlIHRvdGFsIG51bWJlciBvZiBwZW9wbGUgbGl2aW5nIHdpdGggSElWIG9uIEFSVC4gfCAgfCBBbGwgcGVvcGxlIGN1cnJlbnRseSBvbiBBUlYgdGhlcmFweSBzaG91bGQgYmUgaWRlbnRpZmllZC4gUGVvcGxlIHdobyBoYXZlIG5vdCByZWNlaXZlZCBBUlYgbWVkaWNpbmUgd2l0aGluIDI4IGRheXMgb2YgdGhlaXIgc2NoZWR1bGVkIG1lZGljaW5lIHBpY2stdXAgYXJlIGNvbnNpZGVyZWQgbG9zdCB0byBmb2xsb3ctdXAgYW5kIHNob3VsZCBub3QgYmUgY291bnRlZCBpbiB0aGUgZGVub21pbmF0b3Igb3IgdGhlIG51bWVyYXRvci4gRm9yIGV4YW1wbGUsIGlmIEFSViBtZWRpY2luZSB3YXMgcHJvdmlkZWQgZm9yIHRocmVlIG1vbnRocyAoMTIgd2Vla3MpLCB0aGUgdGltZSBzaW5jZSB0aGUgbGFzdCBtZWRpY2luZSBwaWNrLXVwIHNob3VsZCBiZSBubyBsb25nZXIgdGhhbiAxNiB3ZWVrcyAoMTIgd2Vla3MgcGx1cyAyOCBkYXlzKS4gfCAgfCBGb3IgdGhlIG51bWVyYXRvcjogUmVnaXN0ZXJzL0VNUnMgc2hvdWxkIGNhcHR1cmUgdGhlIGR1cmF0aW9uIG9mIEFSViBtZWRpY2luZSBkaXNwZW5zZWQgZm9yIGVhY2ggcGF0aWVudCBjdXJyZW50bHkgb24gQVJWIHRoZXJhcHkgYXQgdGhlaXIgbW9zdCByZWNlbnQgbWVkaWNpbmUgcGljay11cCB2aXNpdC4gfCAgfCBJZiBwb3NzaWJsZSwgdGhpcyBzaG91bGQgYmUgY2F0ZWdvcml6ZWQgYXMgPDMgbW9udGhzLCAz4oCTNSBvciA+NiBtb250aHMgYW5kIHN1bW1hcml6ZWQgZm9yIGVhY2ggYWdlL3NleCBncm91cC4gfCAgfCBUaGUgZGVub21pbmF0b3Igc2hvdWxkIG1hdGNoIHRoZSB0b3RhbCBudW1iZXIgb2YgcGVvcGxlIGN1cnJlbnRseSBvbiBBUlYgdGhlcmFweSBhdCB0aGUgZW5kIG9mIHRoZSByZXBvcnRpbmcgcGVyaW9kLiB8ICB8IE5vdGU6IE11bHRpLW1vbnRoIEFSViBkaXNwZW5zaW5nIHNob3VsZCBub3QgYmUgY29uZnVzZWQgd2l0aCBtdWx0aS1tb250aCBwcmVzY3JpcHRpb25zLiBTb21lb25lIHdobyByZWNlaXZlcyBhIHNpeC1tb250aCBBUlYgbWVkaWNpbmUgcHJlc2NyaXB0aW9uIGJ1dCBuZWVkcyB0byBhdHRlbmQgY2xpbmljIGV2ZXJ5IG9uZSBvciB0d28gbW9udGhzIGZvciByZWZpbGxzIHdvdWxkIG5vdCBiZSBjb3VudGVkIGFzIHJlY2VpdmluZyBtdWx0aS1tb250aCBkaXNwZW5zaW5nLiB8ICB8IE1lYXN1cmVtZW50IGZyZXF1ZW5jeTogQW5udWFsIGZvciBuYXRpb25hbCByZXBvcnRpbmcuIFF1YXJ0ZXJseSByZXBvcnRpbmcgY2FuIGJlIGNvbnNpZGVyZWQgdG8gbW9uaXRvciBwcm9ncmVzcyBvZiBpbXBsZW1lbnRhdGlvbiwgcGFydGljdWxhcmx5IGluIHRoZSBlYXJseSBzdGFnZXMgb2YgRFNEIHNjYWxlLXVwIGFuZCBpbXBsZW1lbnRhdGlvbiwgaWYgZmVhc2libGUgaW4gY291bnRyeSBjb250ZXh0IGFuZCBleGlzdGluZyBkYXRhIHN5c3RlbXMuCiAqIAogKiBTdWdnZXN0ZWQgU2NvcmluZyBNZXRob2Q6IHByb3BvcnRpb24gfCBodHRwOi8vaGw3Lm9yZy9maGlyL3VzL2NxZm1lYXN1cmVzL1N0cnVjdHVyZURlZmluaXRpb24vcHJvcG9ydGlvbi1tZWFzdXJlLWNxZm0KICovCgpsaWJyYXJ5IEhJVklORDUzTG9naWMKCi8vIEluY2x1ZGVkIExpYnJhcmllcwp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBISVZDb21tb24gdmVyc2lvbiAnMC4wLjEnIGNhbGxlZCBISUMKaW5jbHVkZSBGSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgV0hPQ29tbW9uIGNhbGxlZCBXQ29tCmluY2x1ZGUgSElWQ29uY2VwdHMgY2FsbGVkIEhDCmluY2x1ZGUgSElWQ29uY2VwdHNDdXN0b20gY2FsbGVkIEhDQwppbmNsdWRlIEhJVkNvbW1vbiBjYWxsZWQgQ29tbW9uCmluY2x1ZGUgSElWRWxlbWVudHMgY2FsbGVkIEhFCmluY2x1ZGUgSElWSW5kaWNhdG9yRWxlbWVudHMgY2FsbGVkIEhJRQoKLy8gSW5kaWNhdG9yIERlZmluaXRpb24KcGFyYW1ldGVyICJNZWFzdXJlbWVudCBQZXJpb2QiIEludGVydmFsPERhdGU+IGRlZmF1bHQgSW50ZXJ2YWxbQDIwMjMtMDEtMDEsIEAyMDIzLTAxLTMwXQoKY29udGV4dCBQYXRpZW50Ci8qIFBvcHVsYXRpb25zICovCgpkZWZpbmUgIkxhc3QgQVJUIHByZXNjcmliZWQgYmVmb3JlIGVuZCBvZiBtZWFzdXJlbWVudCBwZXJpb2QiOgogIExhc3QoW01lZGljYXRpb25SZXF1ZXN0OiBIQ0MuIkFSVCBtZWRpY2F0aW9uIl0gTVIKICB3aGVyZSAoTVIuYXV0aG9yZWRPbi50b0ludGVydmFsKCkgYmVmb3JlIGVuZCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIikKICBhbmQgQ29tbW9uLk1lZGljYXRpb25SZXF1ZXN0UGVyaW9kKE1SKSBvdmVybGFwcyAiTWVhc3VyZW1lbnQgUGVyaW9kIgogIHNvcnQgYnkgc3RhcnQgb2YgYXV0aG9yZWRPbi50b0ludGVydmFsKCkpCgoKLyoKICpJbml0aWFsIFBvcHVsYXRpb24KICovCgpkZWZpbmUgIkluaXRpYWwgUG9wdWxhdGlvbiI6CiAgdHJ1ZQoKLyoqCiAqIE51bWVyYXRvcgogKiAKICogRGVmaW5pdGlvbjogTnVtYmVyIG9mIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYgYW5kIE9uIEFSVCB3aG8gcmVjZWl2ZWQgMy01IG9yID42IG1vbnRocyBvZiBBUlYgbWVkaWNpbmUgYXQgdGhlaXIgbW9zdCByZWNlbnQgQVJWIG1lZGljaW5lIHBpY2stdXAuIHwgIHwgKFRoZSBudW1iZXIgcmVjZWl2aW5nIDwzIG1vbnRocyBvZiBBUlYgc3VwcGx5IGlzIGFsc28gY29sbGVjdGVkLCBmb3IgdmFsaWRhdGlvbiBwdXJwb3Nlcy4pIHwgIHwgSWYgY291bnRyaWVzIGNhbm5vdCByZXBvcnQgb24gdGhlIG51bWJlciBvZiBtb250aHMgb2YgQVJWIG1lZGljaW5lIGRpc3BlbnNlZCBieSB0aGUgZGlzYWdncmVnYXRpb25zIGRlc2NyaWJlZCBhYm92ZSwgdGhleSBjb3VsZCwgYXMgYW4gYWx0ZXJuYXRpdmUsIHJlcG9ydCB0aGUgdG90YWwgbnVtYmVyIG9mIHBlb3BsZSBjdXJyZW50bHkgb24gQVJWIHRoZXJhcHkgYW5kIHJlY2VpdmluZyDiiaUzIG1vbnRocyBvZiBBUlYgbWVkaWNpbmUgYXQgdGhlaXIgbGFzdCBtZWRpY2luZSBwaWNrLXVwLgogKiBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICJISVYgc3RhdHVzIj0nSElWLXBvc2l0aXZlJyBBTkQgIk9uIEFSVCI9VHJ1ZSBBTkQgKCgiTnVtYmVyIG9mIGRheXMgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCI+PTNtb250aHMpIGZvciBsYXN0IEFSVCBwcmVzY3JpcHRpb24KICovCgpkZWZpbmUgIk51bWVyYXRvciI6CiAgSElFLiJIYXMgSElWLXBvc2l0aXZlIFN0YXR1cyIKICAgYW5kIEhJRS4iT24gQVJUIEguREU0NyIKICAgYW5kIChkdXJhdGlvbiBpbiBtb250aHMgb2YgQ29tbW9uLk1lZGljYXRpb25SZXF1ZXN0UGVyaW9kKCJMYXN0IEFSVCBwcmVzY3JpYmVkIGJlZm9yZSBlbmQgb2YgbWVhc3VyZW1lbnQgcGVyaW9kIikgPj0gMyBtb250aHMpCgoKLyoqCiAqIERlbm9taW5hdG9yCiAqCiAqIERlZmluaXRpb246IE51bWJlciBvZiBwZW9wbGUgbGl2aW5nIHdpdGggSElWIGFuZCBPbiBBUlQKICogQ2FsY3VsYXRpb246IENPVU5UIG9mIGNsaWVudHMgd2l0aCAiSElWIHN0YXR1cyI9J0hJVi1wb3NpdGl2ZScgQU5EICJPbiBBUlQiPVRydWUgd2l0aGluIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqLwoKZGVmaW5lICJEZW5vbWluYXRvciI6CiAgSElFLiJIYXMgSElWLXBvc2l0aXZlIFN0YXR1cyIKICAgYW5kIEhJRS4iT24gQVJUIEguREU0NyIKICAgIAoKLyogZW5kIFBvcHVsYXRpb25zICovCgovKgogKiBEaXNhZ2dyZWdhdG9ycwogKi8KCmRlZmluZSAiQWRtaW5pc3RyYXRpdmUgR2VuZGVyIFN0cmF0aWZpZXIiOgoJSElFLiJCeSBBZG1pbmlzdHJhdGl2ZSBHZW5kZXIgU3RyYXRpZmllciIKCmRlZmluZSAiQWdlIFN0cmF0aWZpZXIiOgoJSElFLiJCeSBBZ2UgU3RyYXRpZmllciIKCmRlZmluZSAiR2VvZ3JhcGhpYyBSZWdpb24gU3RyYXRpZmllciI6CglISUUuIkJ5IEdlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXIiCgpkZWZpbmUgInBhdGllbnRHcm91cHMgU3RyYXRpZmllciI6CglISUUuInBhdGllbnRHcm91cHMiCgpkZWZpbmUgIlN0cmF0aWZpY2F0aW9uIjoKIEhJRS4iQnkgQWRtaW5pc3RyYXRpdmUgR2VuZGVyIFN0cmF0aWZpZXIiLmNvZGUgCiAgKyAnOicgKyBISUUuIkJ5IEFnZSBTdHJhdGlmaWVyIgorICc6JyArIEhJRS4iQnkgR2VvZ3JhcGhpYyBSZWdpb24gU3RyYXRpZmllciIKKyBDb21iaW5lKEhJRS5wYXRpZW50R3JvdXBzLCAnOicp"^^xsd:base64Binary ]
  ] [
fhir:contentType [ fhir:v "application/elm+xml" ] ;
fhir:data [ fhir:v "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iTm9uZSIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1JbmZvIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub1N0cmluZyBoYXMgbXVsdGlwbGUgb3ZlcmxvYWRzIGFuZCBkdWUgdG8gdGhlIFNpZ25hdHVyZUxldmVsIHNldHRpbmcgKE5vbmUpLCB0aGUgb3ZlcmxvYWQgc2lnbmF0dXJlIGlzIG5vdCBiZWluZyBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LiBUaGlzIG1heSByZXN1bHQgaW4gYW1iaWd1b3VzIGZ1bmN0aW9uIHJlc29sdXRpb24gYXQgcnVudGltZSwgY29uc2lkZXIgc2V0dGluZyB0aGUgU2lnbmF0dXJlTGV2ZWwgdG8gT3ZlcmxvYWRzIG9yIEFsbCB0byBlbnN1cmUgdGhhdCB0aGUgb3V0cHV0IGluY2x1ZGVzIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gc3VwcG9ydCBjb3JyZWN0IG92ZXJsb2FkIHNlbGVjdGlvbiBhdCBydW50aW1lLiIgZXJyb3JUeXBlPSJzZW1hbnRpYyIgZXJyb3JTZXZlcml0eT0id2FybmluZyIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1FcnJvciIvPgogICA8YW5ub3RhdGlvbiBtZXNzYWdlPSJUaGUgZnVuY3Rpb24gRkhJUkhlbHBlcnMuVG9TdHJpbmcgaGFzIG11bHRpcGxlIG92ZXJsb2FkcyBhbmQgZHVlIHRvIHRoZSBTaWduYXR1cmVMZXZlbCBzZXR0aW5nIChOb25lKSwgdGhlIG92ZXJsb2FkIHNpZ25hdHVyZSBpcyBub3QgYmVpbmcgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC4gVGhpcyBtYXkgcmVzdWx0IGluIGFtYmlndW91cyBmdW5jdGlvbiByZXNvbHV0aW9uIGF0IHJ1bnRpbWUsIGNvbnNpZGVyIHNldHRpbmcgdGhlIFNpZ25hdHVyZUxldmVsIHRvIE92ZXJsb2FkcyBvciBBbGwgdG8gZW5zdXJlIHRoYXQgdGhlIG91dHB1dCBpbmNsdWRlcyBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHN1cHBvcnQgY29ycmVjdCBvdmVybG9hZCBzZWxlY3Rpb24gYXQgcnVudGltZS4iIGVycm9yVHlwZT0ic2VtYW50aWMiIGVycm9yU2V2ZXJpdHk9Indhcm5pbmciIHhzaTp0eXBlPSJhOkNxbFRvRWxtRXJyb3IiLz4KICAgPGFubm90YXRpb24gbWVzc2FnZT0iVGhlIGZ1bmN0aW9uIEZISVJIZWxwZXJzLlRvU3RyaW5nIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICA8YTpzIHI9Ijg5Ij4KICAgICAgICAgPGE6cz4vKioKICogTGlicmFyeTogSElWLklORC41MyBMb2dpYwogKiBSZWYgTm86IERTRC4xCiAqIFNob3J0IE5hbWU6IE11bHRpLW1vbnRoIEFSViBkaXNwZW5zaW5nCiAqCiAqIERlZmluaXRpb246ICUgb2YgcGVvcGxlIGxpdmluZyB3aXRoIEhJViBhbmQgT24gQVJUIHdobyBhcmUgcmVjZWl2aW5nIG11bHRpLW1vbnRoIGRpc3BlbnNpbmcgb2YgQVJWIG1lZGljaW5lIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKgogKiBOdW1lcmF0b3I6IE51bWJlciBvZiBwZW9wbGUgbGl2aW5nIHdpdGggSElWIGFuZCBPbiBBUlQgd2hvIHJlY2VpdmVkIDMtNSBvciA+NiBtb250aHMgb2YgQVJWIG1lZGljaW5lIGF0IHRoZWlyIG1vc3QgcmVjZW50IEFSViBtZWRpY2luZSBwaWNrLXVwLiB8ICB8IChUaGUgbnVtYmVyIHJlY2VpdmluZyAmbHQ7MyBtb250aHMgb2YgQVJWIHN1cHBseSBpcyBhbHNvIGNvbGxlY3RlZCwgZm9yIHZhbGlkYXRpb24gcHVycG9zZXMuKSB8ICB8IElmIGNvdW50cmllcyBjYW5ub3QgcmVwb3J0IG9uIHRoZSBudW1iZXIgb2YgbW9udGhzIG9mIEFSViBtZWRpY2luZSBkaXNwZW5zZWQgYnkgdGhlIGRpc2FnZ3JlZ2F0aW9ucyBkZXNjcmliZWQgYWJvdmUsIHRoZXkgY291bGQsIGFzIGFuIGFsdGVybmF0aXZlLCByZXBvcnQgdGhlIHRvdGFsIG51bWJlciBvZiBwZW9wbGUgY3VycmVudGx5IG9uIEFSViB0aGVyYXB5IGFuZCByZWNlaXZpbmcg4omlMyBtb250aHMgb2YgQVJWIG1lZGljaW5lIGF0IHRoZWlyIGxhc3QgbWVkaWNpbmUgcGljay11cC4KICogTnVtZXJhdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggJnF1b3Q7SElWIHN0YXR1cyZxdW90Oz0nSElWLXBvc2l0aXZlJyBBTkQgJnF1b3Q7T24gQVJUJnF1b3Q7PVRydWUgQU5EICgoJnF1b3Q7TnVtYmVyIG9mIGRheXMgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCZxdW90Oz49M21vbnRocykgZm9yIGxhc3QgQVJUIHByZXNjcmlwdGlvbgogKiBOdW1lcmF0b3IgRXhjbHVzaW9uczogCiAqCiAqIERlbm9taW5hdG9yOiBOdW1iZXIgb2YgcGVvcGxlIGxpdmluZyB3aXRoIEhJViBhbmQgT24gQVJUCiAqIERlbm9taW5hdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggJnF1b3Q7SElWIHN0YXR1cyZxdW90Oz0nSElWLXBvc2l0aXZlJyBBTkQgJnF1b3Q7T24gQVJUJnF1b3Q7PVRydWUgd2l0aGluIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEaXNhZ2dyZWdhdGlvbnM6CiAqIOKAosKgR2VuZGVyIChmZW1hbGUsIG1hbGUsIG90aGVyKikgCiAqICDigKLCoEFnZSAoMOKAkzQsIDXigJMxNCwgMTXigJMyNCwgMjUrIHllYXJzKSAKICogIOKAosKgS2V5IHBvcHVsYXRpb25zIChtZW4gd2hvIGhhdmUgc2V4IHdpdGggbWVuLCBwZW9wbGUgbGl2aW5nIGluIHByaXNvbnMgYW5kIG90aGVyIGNsb3NlZCBzZXR0aW5ncywgcGVvcGxlIHdobyBpbmplY3QgZHJ1Z3MsIHNleCB3b3JrZXJzLCB0cmFucyBhbmQgZ2VuZGVyIGRpdmVyc2UgcGVvcGxlKSoqIAogKiAg4oCiwqBDaXRpZXMgYW5kIG90aGVyIGFkbWluaXN0cmF0aXZlIHJlZ2lvbnMgb2YgZXBpZGVtaW9sb2dpYyBpbXBvcnRhbmNlCiAqCiAqIERpc2FnZ3JlZ2F0aW9uIEVsZW1lbnRzOiBHZW5kZXIgfCBBZ2UgfCBLZXkgcG9wdWxhdGlvbiBtZW1iZXIgdHlwZSB8IE51bWJlciBvZiBkYXlzIG1lZGljYXRpb25zIHByZXNjcmliZWQgKDMtNSBtb250aHMsID42IG1vbnRocykKICoKICogTnVtZXJhdG9yIGFuZCBEZW5vbWluYXRvciBFbGVtZW50czoKICogSElWIHN0YXR1cyAKICogIE51bWJlciBvZiBkYXlzIG1lZGljYXRpb25zIHByZXNjcmliZWQgCiAqICBPbiBBUlQKICoKICogUmVmZXJlbmNlOiBDb25zb2xpZGF0ZWQgZ3VpZGVsaW5lcyBvbiBwZXJzb24tY2VudHJlZCBISVYgc3RyYXRlZ2ljIGluZm9ybWF0aW9uOiBzdHJlbmd0aGVuaW5nIHJvdXRpbmUgZGF0YSBmb3IgaW1wYWN0LiBHZW5ldmE6IFdvcmxkIEhlYWx0aCBPcmdhbml6YXRpb247IDIwMjIKICogCiAqIERhdGEgQ29uY2VwdHM6CiAqIEhJVi5BLkRFMTc6IEFnZSB8IENhbGN1bGF0ZWQgYWdlIChudW1iZXIgb2YgeWVhcnMpIG9mIHRoZSBjbGllbnQgYmFzZWQgb24gZGF0ZSBvZiBiaXJ0aAogKiBISVYuQS5ERTE4OiBHZW5kZXIqIHwgR2VuZGVyIG9mIHRoZSBjbGllbnQqCiAqIEhJVi5BLkRFMTk6IEZlbWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIGZlbWFsZQogKiBISVYuQS5ERTIwOiBNYWxlIHwgQ2xpZW50IGlkZW50aWZpZXMgYXMgbWFsZQogKiBISVYuQS5ERTIxOiBUcmFuc2dlbmRlciBtYWxlIHwgQ2xpZW50IGlkZW50aWZpZXMgYXMgdHJhbnNnZW5kZXIgbWFsZQogKiBISVYuQS5ERTIyOiBUcmFuc2dlbmRlciBmZW1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyB0cmFuc2dlbmRlciBmZW1hbGUKICogSElWLkEuREUyMzogT3RoZXIgfCBBZGRpdGlvbmFsIGNhdGVnb3J5CiAqIEhJVi5CLkRFNTA6IEtleSBwb3B1bGF0aW9uIG1lbWJlciB0eXBlKiB8IFRoZSB0eXBlIG9mIGtleSBwb3B1bGF0aW9uIHRoYXQgdGhlIGNsaWVudCBpcyBpbmNsdWRlZCBpbgogKiBISVYuQi5ERTUxOiBTZXggd29ya2VyIHwgQ2xpZW50IGlzIGEgc2V4IHdvcmtlcgogKiBISVYuQi5ERTUyOiBNZW4gd2hvIGhhdmUgc2V4IHdpdGggbWVuIHwgQ2xpZW50IGlzIGEgbWFuIHdobyBoYXMgc2V4IHdpdGggbWVuCiAqIEhJVi5CLkRFNTM6IFRyYW5zIGFuZCBnZW5kZXItZGl2ZXJzZSBwZW9wbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyB0cmFucyBhbmQgZ2VuZGVyLWRpdmVyc2UKICogSElWLkIuREU1NDogUGVvcGxlIHdobyBpbmplY3QgZHJ1Z3MgfCBDbGllbnQgaXMgYSBwZXJzb24gd2hvIGluamVjdHMgZHJ1Z3MKICogSElWLkIuREU1NTogUGVvcGxlIGxpdmluZyBpbiBwcmlzb25zIGFuZCBvdGhlciBjbG9zZWQgc2V0dGluZ3MgfCBDbGllbnQgbGl2ZXMgaW4gYSBwcmlzb24gb3IgYW5vdGhlciBjbG9zZWQgc2V0dGluZwogKiBISVYuQi5ERTExNTogSElWIHN0YXR1cyB8IEhJViBzdGF0dXMgcmVwb3J0ZWQgYWZ0ZXIgYXBwbHlpbmcgdGhlIG5hdGlvbmFsIEhJViB0ZXN0aW5nIGFsZ29yaXRobS4gTm8gc2luZ2xlIEhJViB0ZXN0IGNhbiBwcm92aWRlIGFuIEhJVi1wb3NpdGl2ZSBkaWFnbm9zaXMuCiAqIEhJVi5CLkRFMTE2OiBISVYtcG9zaXRpdmUgfCBDbGllbnQgaXMgSElWLXBvc2l0aXZlCiAqIEhJVi5CLkRFMTE3OiBISVYtbmVnYXRpdmUgfCBDbGllbnQgaXMgSElWLW5lZ2F0aXZlCiAqIEhJVi5CLkRFMTE4OiBVbmtub3duIHwgQ2xpZW50IGhhcyB1bmtub3duIEhJViBzdGF0dXMKICogSElWLkQuREUzODogT24gQVJUIHwgQ2xpZW50IGlzIGN1cnJlbnRseSB0YWtpbmcgQVJUCiAqIEhJVi5ELkRFNDYwOiBOdW1iZXIgb2YgZGF5cyBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkIHwgTnVtYmVyIG9mIGRheXMgc3VwcGx5IG9mIGVhY2ggbWVkaWNhdGlvbiBvciByZWdpbWVuIHByZXNjcmliZWQgZHVyaW5nIHRoZSB2aXNpdAogKiBISVYuRS5ERTExNDogS2V5IHBvcHVsYXRpb24gbWVtYmVyIHR5cGUqIHwgVGhlIHR5cGUgb2Yga2V5IHBvcHVsYXRpb24gdGhhdCB0aGUgaW5mYW50J3MgbW90aGVyIGlzIGluY2x1ZGVkIGluCiAqIEhJVi5FLkRFMTE1OiBTZXggd29ya2VyIHwgSW5mYW50J3MgbW90aGVyIGlzIGEgc2V4IHdvcmtlcgogKiBISVYuRS5ERTExNjogUGVvcGxlIHdobyBpbmplY3QgZHJ1Z3MgfCBJbmZhbnQncyBtb3RoZXIgaXMgYSBwZXJzb24gd2hvIGluamVjdHMgZHJ1Z3MKICogSElWLkUuREUxMTc6IFRyYW5zIGFuZCBnZW5kZXItZGl2ZXJzZSBwZW9wbGUgfCBJbmZhbnQncyBtb3RoZXIgaWRlbnRpZmllcyBhcyB0cmFucyBhbmQgZ2VuZGVyLWRpdmVyc2UKICogSElWLkUuREUxMTg6IFBlb3BsZSBsaXZpbmcgaW4gcHJpc29ucyBhbmQgb3RoZXIgY2xvc2VkIHNldHRpbmcgfCBJbmZhbnQncyBtb3RoZXIgaXMgaW4gYSBwcmlzb24gb3IgY2xvc2VkIHNldHRpbmcKICogSElWLkguREU0NzogT24gQVJUIHwgQ2xpZW50IGlzIGN1cnJlbnRseSB0YWtpbmcgQVJUIAogKgogKiBBZGRpdGlvbmFsIENvbnRleHQKICogLSB3aGF0IGl0IG1lYXN1cmVzOiBQZXJjZW50YWdlIG9mIGFsbCBwZW9wbGUgbGl2aW5nIHdpdGggSElWIGFuZCBPbiBBUlQgd2hvIHJlY2VpdmVkIGEgbXVsdGktbW9udGggc3VwcGx5IG9mIEFSViBtZWRpY2luZSAoYXMgc3BlY2lmaWVkIGJlbG93KSBhdCB0aGVpciBtb3N0IHJlY2VudCBBUlYgbWVkaWNpbmUgcGljay11cC4KICogLSByYXRpb25hbGU6IOKAosKgVGhlIHJlY29tbWVuZGF0aW9uIGZvciBwZW9wbGUgbGl2aW5nIHdpdGggSElWIHdobyBhcmUgZXN0YWJsaXNoZWQgb24gQVJUIChzZWUgJnF1b3Q7RGVmaW5pdGlvbnMsJnF1b3Q7IGJlbG93KSB0byByZWNlaXZlIG11bHRpcGxlIG1vbnRocyBvZiBBUlYgbWVkaWNpbmVzIGlzIGEga2V5IGNvbXBvbmVudCB8IG9mIGNhcmUgdGhhdCByZXNwb25kcyB0byB0aGUgbmVlZHMgYW5kIHByZWZlcmVuY2VzIG9mIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYuIEZvciBwZW9wbGUgbGl2aW5nIHdpdGggSElWIHdobyBhcmUgZXN0YWJsaXNoZWQgb24gQVJULCBtdWx0aS1tb250aCBkaXNwZW5zaW5nIGhhcyB0aGUgcG90ZW50aWFsIHRvIGltcHJvdmUgaGVhbHRoIG91dGNvbWVzIGFuZCBzdXBwb3J0IGxvbmctdGVybSB0cmVhdG1lbnQgYWRoZXJlbmNlLCB3aGlsZSBhbHNvIHJlZHVjaW5nIHVubmVjZXNzYXJ5IGNsaW5pYyBhdHRlbmRhbmNlLCB0aHVzIGNvbnRyaWJ1dGluZyB0byBzeXN0ZW0gZWZmaWNpZW5jeS4gQnJvYWRseSwgbXVsdGktbW9udGggZGlzcGVuc2luZyBjYW4gY29udHJpYnV0ZSB0byBlZmZvcnRzIHRvIGFjaGlldmUgdGhlIDk14oCTOTXigJM5NSB0YXJnZXRzLiB8IOKAosKgQWRvcHRpb24gYW5kIHJvbGxvdXQgb2YgbXVsdGktbW9udGggZGlzcGVuc2luZyBhcyBwYXJ0IG9mIG5hdGlvbmFsIGdvdmVybm1lbnQgc3RyYXRlZ2llcyBhbmQgcGxhbnMgaXMgaW5jcmVhc2luZy4gU2luY2UgMjAxNiBEU0QgLSBpbmNsdWRpbmcgdGhlIG9wdGlvbiBvZiBtdWx0aS1tb250aCBkaXNwZW5zaW5nIC0gaXMgcmVjb21tZW5kZWQgaW4gV0hPIEhJViB0cmVhdG1lbnQgYW5kIHB1YmxpYyBoZWFsdGggZ3VpZGVsaW5lcy4gVGhlIGV4dGVudCB0byB3aGljaCB0aGVzZSBtb2RlbHMgb2YgY2FyZSBoYXZlIGJlZW4gc2NhbGVkIHVwIGluIG1hbnkgY291bnRyaWVzIGlzIHVuY2VydGFpbi4gUmVwb3J0aW5nIG9uIHRoaXMgaW5kaWNhdG9yIHdpbGwgc3VwcG9ydCBlZmZvcnRzIHRvIGV4cGFuZCB0aGUgb2ZmZXIgb2YgbXVsdGktbW9udGggZGlzcGVuc2luZy4KICogLSBtZXRob2Q6IFRoZSBkYXRhIGZvciB0aGlzIGluZGljYXRvciBhcmUgY29sbGVjdGVkIGF0IHRoZSBlbmQgb2YgdGhlIHJlcG9ydGluZyBwZXJpb2QgZnJvbSBmYWNpbGl0eSBBUlYgdGhlcmFweSByZWdpc3RlcnMgKGluY2x1ZGluZyBBUlQgZGlzcGVuc2VkIG91dHNpZGUgdGhlIGZhY2lsaXR5LCBmb3IgZXhhbXBsZSwgYXQgdGhlIGNvbW11bml0eSBsZXZlbCksIHByb2dyYW1tZSBtb25pdG9yaW5nIHRvb2xzIG9yIG90aGVyIGRhdGFiYXNlcyBzdWNoIGFzIEVNUiBzeXN0ZW1zLiAoSWYgZGF0YSBhcmUgYXZhaWxhYmxlIGZyb20gdGhlIHByaXZhdGUgc2VjdG9yLCB0aGVzZSBzaG91bGQgYmUgaW5jbHVkZWQuKSBQaGFybWFjeSBBUlYgZGlzcGVuc2luZyBkYXRhIGNhbiBhbHNvIGJlIHVzZWQgZm9yIHRoaXMgaW5kaWNhdG9yIGlmIEVNUiBzeXN0ZW1zIGNvdmVyIG9ubHkgYSBmcmFjdGlvbiBvZiB0aGUgdG90YWwgbnVtYmVyIG9mIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYgb24gQVJULiB8ICB8IEFsbCBwZW9wbGUgY3VycmVudGx5IG9uIEFSViB0aGVyYXB5IHNob3VsZCBiZSBpZGVudGlmaWVkLiBQZW9wbGUgd2hvIGhhdmUgbm90IHJlY2VpdmVkIEFSViBtZWRpY2luZSB3aXRoaW4gMjggZGF5cyBvZiB0aGVpciBzY2hlZHVsZWQgbWVkaWNpbmUgcGljay11cCBhcmUgY29uc2lkZXJlZCBsb3N0IHRvIGZvbGxvdy11cCBhbmQgc2hvdWxkIG5vdCBiZSBjb3VudGVkIGluIHRoZSBkZW5vbWluYXRvciBvciB0aGUgbnVtZXJhdG9yLiBGb3IgZXhhbXBsZSwgaWYgQVJWIG1lZGljaW5lIHdhcyBwcm92aWRlZCBmb3IgdGhyZWUgbW9udGhzICgxMiB3ZWVrcyksIHRoZSB0aW1lIHNpbmNlIHRoZSBsYXN0IG1lZGljaW5lIHBpY2stdXAgc2hvdWxkIGJlIG5vIGxvbmdlciB0aGFuIDE2IHdlZWtzICgxMiB3ZWVrcyBwbHVzIDI4IGRheXMpLiB8ICB8IEZvciB0aGUgbnVtZXJhdG9yOiBSZWdpc3RlcnMvRU1ScyBzaG91bGQgY2FwdHVyZSB0aGUgZHVyYXRpb24gb2YgQVJWIG1lZGljaW5lIGRpc3BlbnNlZCBmb3IgZWFjaCBwYXRpZW50IGN1cnJlbnRseSBvbiBBUlYgdGhlcmFweSBhdCB0aGVpciBtb3N0IHJlY2VudCBtZWRpY2luZSBwaWNrLXVwIHZpc2l0LiB8ICB8IElmIHBvc3NpYmxlLCB0aGlzIHNob3VsZCBiZSBjYXRlZ29yaXplZCBhcyAmbHQ7MyBtb250aHMsIDPigJM1IG9yID42IG1vbnRocyBhbmQgc3VtbWFyaXplZCBmb3IgZWFjaCBhZ2Uvc2V4IGdyb3VwLiB8ICB8IFRoZSBkZW5vbWluYXRvciBzaG91bGQgbWF0Y2ggdGhlIHRvdGFsIG51bWJlciBvZiBwZW9wbGUgY3VycmVudGx5IG9uIEFSViB0aGVyYXB5IGF0IHRoZSBlbmQgb2YgdGhlIHJlcG9ydGluZyBwZXJpb2QuIHwgIHwgTm90ZTogTXVsdGktbW9udGggQVJWIGRpc3BlbnNpbmcgc2hvdWxkIG5vdCBiZSBjb25mdXNlZCB3aXRoIG11bHRpLW1vbnRoIHByZXNjcmlwdGlvbnMuIFNvbWVvbmUgd2hvIHJlY2VpdmVzIGEgc2l4LW1vbnRoIEFSViBtZWRpY2luZSBwcmVzY3JpcHRpb24gYnV0IG5lZWRzIHRvIGF0dGVuZCBjbGluaWMgZXZlcnkgb25lIG9yIHR3byBtb250aHMgZm9yIHJlZmlsbHMgd291bGQgbm90IGJlIGNvdW50ZWQgYXMgcmVjZWl2aW5nIG11bHRpLW1vbnRoIGRpc3BlbnNpbmcuIHwgIHwgTWVhc3VyZW1lbnQgZnJlcXVlbmN5OiBBbm51YWwgZm9yIG5hdGlvbmFsIHJlcG9ydGluZy4gUXVhcnRlcmx5IHJlcG9ydGluZyBjYW4gYmUgY29uc2lkZXJlZCB0byBtb25pdG9yIHByb2dyZXNzIG9mIGltcGxlbWVudGF0aW9uLCBwYXJ0aWN1bGFybHkgaW4gdGhlIGVhcmx5IHN0YWdlcyBvZiBEU0Qgc2NhbGUtdXAgYW5kIGltcGxlbWVudGF0aW9uLCBpZiBmZWFzaWJsZSBpbiBjb3VudHJ5IGNvbnRleHQgYW5kIGV4aXN0aW5nIGRhdGEgc3lzdGVtcy4KICogCiAqIFN1Z2dlc3RlZCBTY29yaW5nIE1ldGhvZDogcHJvcG9ydGlvbiB8IGh0dHA6Ly9obDcub3JnL2ZoaXIvdXMvY3FmbWVhc3VyZXMvU3RydWN0dXJlRGVmaW5pdGlvbi9wcm9wb3J0aW9uLW1lYXN1cmUtY3FmbQogKi8KCmxpYnJhcnkgSElWSU5ENTNMb2dpYzwvYTpzPgogICAgICA8L2E6cz4KICAgPC9hbm5vdGF0aW9uPgogICA8aWRlbnRpZmllciBpZD0iSElWSU5ENTNMb2dpYyIgc3lzdGVtPSJodHRwOi8vc21hcnQud2hvLmludC9oaXYiLz4KICAgPHNjaGVtYUlkZW50aWZpZXIgaWQ9InVybjpobDctb3JnOmVsbSIgdmVyc2lvbj0icjEiLz4KICAgPHVzaW5ncz4KICAgICAgPGRlZiBsb2NhbElkZW50aWZpZXI9IlN5c3RlbSIgdXJpPSJ1cm46aGw3LW9yZzplbG0tdHlwZXM6cjEiLz4KICAgICAgPGRlZiBsb2NhbElkPSIxIiBsb2NhdG9yPSI2OToxLTY5OjI2IiBsb2NhbElkZW50aWZpZXI9IkZISVIiIHVyaT0iaHR0cDovL2hsNy5vcmcvZmhpciIgdmVyc2lvbj0iNC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIxIj4KICAgICAgICAgICAgICAgPGE6cz4vLyBJbmNsdWRlZCBMaWJyYXJpZXMKdXNpbmcgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+RkhJUjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gdmVyc2lvbiAnNC4wLjEnPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICA8L3VzaW5ncz4KICAgPGluY2x1ZGVzPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIiIGxvY2F0b3I9IjcxOjEtNzE6NDQiIGxvY2FsSWRlbnRpZmllcj0iSElDIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9oaXYvSElWQ29tbW9uIiB2ZXJzaW9uPSIwLjAuMSI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjIiPgogICAgICAgICAgICAgICA8YTpzPmluY2x1ZGUgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+SElWQ29tbW9uPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICcwLjAuMScgY2FsbGVkIEhJQzwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIzIiBsb2NhdG9yPSI3MjoxLTcyOjM1IiBsb2NhbElkZW50aWZpZXI9IkZISVJIZWxwZXJzIiBwYXRoPSJodHRwOi8vaGw3Lm9yZy9maGlyL0ZISVJIZWxwZXJzIiB2ZXJzaW9uPSI0LjAuMSI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjMiPgogICAgICAgICAgICAgICA8YTpzPmluY2x1ZGUgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+RkhJUkhlbHBlcnM8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzQuMC4xJzwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSI0IiBsb2NhdG9yPSI3NDoxLTc0OjI5IiBsb2NhbElkZW50aWZpZXI9IldDb20iIHBhdGg9Imh0dHA6Ly9zbWFydC53aG8uaW50L2hpdi9XSE9Db21tb24iPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSI0Ij4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPldIT0NvbW1vbjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gY2FsbGVkIFdDb208L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNSIgbG9jYXRvcj0iNzU6MS03NToyOSIgbG9jYWxJZGVudGlmaWVyPSJIQyIgcGF0aD0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2L0hJVkNvbmNlcHRzIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNSI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5ISVZDb25jZXB0czwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gY2FsbGVkIEhDPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjYiIGxvY2F0b3I9Ijc2OjEtNzY6MzYiIGxvY2FsSWRlbnRpZmllcj0iSENDIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9oaXYvSElWQ29uY2VwdHNDdXN0b20iPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSI2Ij4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkhJVkNvbmNlcHRzQ3VzdG9tPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiBjYWxsZWQgSENDPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjciIGxvY2F0b3I9Ijc3OjEtNzc6MzEiIGxvY2FsSWRlbnRpZmllcj0iQ29tbW9uIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9oaXYvSElWQ29tbW9uIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNyI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5ISVZDb21tb248L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IGNhbGxlZCBDb21tb248L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iOCIgbG9jYXRvcj0iNzg6MS03ODoyOSIgbG9jYWxJZGVudGlmaWVyPSJIRSIgcGF0aD0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2L0hJVkVsZW1lbnRzIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iOCI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5ISVZFbGVtZW50czwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gY2FsbGVkIEhFPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjkiIGxvY2F0b3I9Ijc5OjEtNzk6MzkiIGxvY2FsSWRlbnRpZmllcj0iSElFIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9oaXYvSElWSW5kaWNhdG9yRWxlbWVudHMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSI5Ij4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkhJVkluZGljYXRvckVsZW1lbnRzPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiBjYWxsZWQgSElFPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICA8L2luY2x1ZGVzPgogICA8cGFyYW1ldGVycz4KICAgICAgPGRlZiBsb2NhbElkPSIxNSIgbG9jYXRvcj0iODI6MS04Mjo4OCIgbmFtZT0iTWVhc3VyZW1lbnQgUGVyaW9kIiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTUiPgogICAgICAgICAgICAgICA8YTpzPi8vIEluZGljYXRvciBEZWZpbml0aW9uCnBhcmFtZXRlciAmcXVvdDtNZWFzdXJlbWVudCBQZXJpb2QmcXVvdDsgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMTQiPgogICAgICAgICAgICAgICAgICA8YTpzPkludGVydmFsJmx0OzwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjEzIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5EYXRlPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPj48L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IGRlZmF1bHQgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMTIiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjEwIj5JbnRlcnZhbFtAMjAyMy0wMS0wMSwgQDIwMjMtMDEtMzBdPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZGVmYXVsdCBsb2NhbElkPSIxMiIgbG9jYXRvcj0iODI6NTUtODI6ODgiIGxvd0Nsb3NlZD0idHJ1ZSIgaGlnaENsb3NlZD0idHJ1ZSIgeHNpOnR5cGU9IkludGVydmFsIj4KICAgICAgICAgICAgPGxvdyBsb2NhbElkPSIxMCIgbG9jYXRvcj0iODI6NjQtODI6NzQiIHhzaTp0eXBlPSJEYXRlIj4KICAgICAgICAgICAgICAgPHllYXIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIyMDIzIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8bW9udGggdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8ZGF5IHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgPC9sb3c+CiAgICAgICAgICAgIDxoaWdoIGxvY2FsSWQ9IjExIiBsb2NhdG9yPSI4Mjo3Ny04Mjo4NyIgeHNpOnR5cGU9IkRhdGUiPgogICAgICAgICAgICAgICA8eWVhciB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjIwMjMiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxtb250aCB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjEiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxkYXkgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIzMCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgPC9oaWdoPgogICAgICAgICA8L2RlZmF1bHQ+CiAgICAgICAgIDxwYXJhbWV0ZXJUeXBlU3BlY2lmaWVyIGxvY2FsSWQ9IjE0IiBsb2NhdG9yPSI4MjozMi04Mjo0NSIgeHNpOnR5cGU9IkludGVydmFsVHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgIDxwb2ludFR5cGUgbG9jYWxJZD0iMTMiIGxvY2F0b3I9IjgyOjQxLTgyOjQ0IiBuYW1lPSJ0OkRhdGUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgPC9wYXJhbWV0ZXJUeXBlU3BlY2lmaWVyPgogICAgICA8L2RlZj4KICAgPC9wYXJhbWV0ZXJzPgogICA8Y29udGV4dHM+CiAgICAgIDxkZWYgbG9jYXRvcj0iODQ6MS04NDoxNSIgbmFtZT0iUGF0aWVudCIvPgogICA8L2NvbnRleHRzPgogICA8c3RhdGVtZW50cz4KICAgICAgPGRlZiBsb2NhdG9yPSI4NDoxLTg0OjE1IiBuYW1lPSJQYXRpZW50IiBjb250ZXh0PSJQYXRpZW50Ij4KICAgICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9IlNpbmdsZXRvbkZyb20iPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhdG9yPSI4NDoxLTg0OjE1IiBkYXRhVHlwZT0iZmhpcjpQYXRpZW50IiB0ZW1wbGF0ZUlkPSJodHRwOi8vaGw3Lm9yZy9maGlyL1N0cnVjdHVyZURlZmluaXRpb24vUGF0aWVudCIgeHNpOnR5cGU9IlJldHJpZXZlIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMzciIGxvY2F0b3I9Ijg3OjEtOTE6NDMiIG5hbWU9Ikxhc3QgQVJUIHByZXNjcmliZWQgYmVmb3JlIGVuZCBvZiBtZWFzdXJlbWVudCBwZXJpb2QiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzNyI+CiAgICAgICAgICAgICAgIDxhOnM+LyogUG9wdWxhdGlvbnMgKi8KCmRlZmluZSAmcXVvdDtMYXN0IEFSVCBwcmVzY3JpYmVkIGJlZm9yZSBlbmQgb2YgbWVhc3VyZW1lbnQgcGVyaW9kJnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjM2Ij4KICAgICAgICAgICAgICAgICAgPGE6cz5MYXN0KDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjM1Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxNyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjE2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5bTWVkaWNhdGlvblJlcXVlc3Q6IDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhDQy4mcXVvdDtBUlQgbWVkaWNhdGlvbiZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5dPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gTVI8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPgogIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz53aGVyZSA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyOSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPig8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjE5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxOCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+TVI8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjE5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5hdXRob3JlZE9uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPnRvSW50ZXJ2YWwoKTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjMiPiBiZWZvcmUgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPmVuZCBvZiA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7TWVhc3VyZW1lbnQgUGVyaW9kJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+KTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICBhbmQgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+Q29tbW9uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+TWVkaWNhdGlvblJlcXVlc3RQZXJpb2QoPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPk1SPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPik8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI4Ij4gb3ZlcmxhcHMgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O01lYXN1cmVtZW50IFBlcmlvZCZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzNCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+c29ydCBieSA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPnN0YXJ0IG9mIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjMxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+YXV0aG9yZWRPbjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPnRvSW50ZXJ2YWwoKTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPik8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjM2IiBsb2NhdG9yPSI4ODozLTkxOjQzIiB4c2k6dHlwZT0iTGFzdCI+CiAgICAgICAgICAgIDxzb3VyY2UgbG9jYWxJZD0iMzUiIGxvY2F0b3I9Ijg4OjgtOTE6NDIiIHhzaTp0eXBlPSJRdWVyeSI+CiAgICAgICAgICAgICAgIDxzb3VyY2UgbG9jYWxJZD0iMTciIGxvY2F0b3I9Ijg4OjgtODg6NTEiIGFsaWFzPSJNUiI+CiAgICAgICAgICAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjE2IiBsb2NhdG9yPSI4ODo4LTg4OjQ4IiB4c2k6dHlwZT0iVW5pb24iPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBkYXRhVHlwZT0iZmhpcjpNZWRpY2F0aW9uUmVxdWVzdCIgdGVtcGxhdGVJZD0iaHR0cDovL2hsNy5vcmcvZmhpci9TdHJ1Y3R1cmVEZWZpbml0aW9uL01lZGljYXRpb25SZXF1ZXN0IiBjb2RlUHJvcGVydHk9Im1lZGljYXRpb24iIGNvZGVDb21wYXJhdG9yPSJ+IiB4c2k6dHlwZT0iUmV0cmlldmUiPgogICAgICAgICAgICAgICAgICAgICAgICA8Y29kZXMgeHNpOnR5cGU9IlRvTGlzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2F0b3I9Ijg4OjI4LTg4OjQ3IiBuYW1lPSJBUlQgbWVkaWNhdGlvbiIgbGlicmFyeU5hbWU9IkhDQyIgeHNpOnR5cGU9IkNvZGVSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9jb2Rlcz4KICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhdG9yPSI4ODo4LTg4OjQ4IiB4c2k6dHlwZT0iUXVlcnkiPgogICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIGxvY2F0b3I9Ijg4OjgtODg6NDgiIGFsaWFzPSJNUiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxleHByZXNzaW9uIGRhdGFUeXBlPSJmaGlyOk1lZGljYXRpb25SZXF1ZXN0IiB0ZW1wbGF0ZUlkPSJodHRwOi8vaGw3Lm9yZy9maGlyL1N0cnVjdHVyZURlZmluaXRpb24vTWVkaWNhdGlvblJlcXVlc3QiIHhzaTp0eXBlPSJSZXRyaWV2ZSIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgICAgICAgPHJlbGF0aW9uc2hpcCBsb2NhdG9yPSI4ODo4LTg4OjQ4IiBhbGlhcz0iTSIgeHNpOnR5cGU9IldpdGgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiBkYXRhVHlwZT0iZmhpcjpNZWRpY2F0aW9uIiB0ZW1wbGF0ZUlkPSJodHRwOi8vaGw3Lm9yZy9maGlyL1N0cnVjdHVyZURlZmluaXRpb24vTWVkaWNhdGlvbiIgeHNpOnR5cGU9IlJldHJpZXZlIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdWNoVGhhdCB4c2k6dHlwZT0iQW5kIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IkVxdWFsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iVG9TdHJpbmciIGxpYnJhcnlOYW1lPSJGSElSSGVscGVycyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0iaWQiIHNjb3BlPSJNIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iTGFzdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9IlNwbGl0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ1RvU3BsaXQgbmFtZT0iVG9TdHJpbmciIGxpYnJhcnlOYW1lPSJGSElSSGVscGVycyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0ibWVkaWNhdGlvbi5yZWZlcmVuY2UiIHNjb3BlPSJNUiIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3RyaW5nVG9TcGxpdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlcGFyYXRvciB2YWx1ZVR5cGU9InQ6U3RyaW5nIiB2YWx1ZT0iLyIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iRXF1aXZhbGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9IlRvQ29uY2VwdCIgbGlicmFyeU5hbWU9IkZISVJIZWxwZXJzIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJjb2RlIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iVG9Db25jZXB0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYXRvcj0iODg6MjgtODg6NDciIG5hbWU9IkFSVCBtZWRpY2F0aW9uIiBsaWJyYXJ5TmFtZT0iSENDIiB4c2k6dHlwZT0iQ29kZVJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdWNoVGhhdD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWxhdGlvbnNoaXA+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgPHdoZXJlIGxvY2FsSWQ9IjI5IiBsb2NhdG9yPSI4OTozLTkwOjcwIiB4c2k6dHlwZT0iQW5kIj4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjMiIGxvY2F0b3I9Ijg5OjktODk6NzEiIHhzaTp0eXBlPSJCZWZvcmUiPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyMCIgbG9jYXRvcj0iODk6MTAtODk6MzUiIG5hbWU9InRvSW50ZXJ2YWwiIGxpYnJhcnlOYW1lPSJXQ29tIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iQXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIxOSIgbG9jYXRvcj0iODk6MTAtODk6MjIiIHBhdGg9ImF1dGhvcmVkT24iIHNjb3BlPSJNUiIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhc1R5cGVTcGVjaWZpZXIgeHNpOnR5cGU9IkNob2ljZVR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2hvaWNlIG5hbWU9ImZoaXI6ZGF0ZVRpbWUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNob2ljZSBuYW1lPSJmaGlyOlBlcmlvZCIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2hvaWNlIG5hbWU9ImZoaXI6VGltaW5nIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaG9pY2UgbmFtZT0iZmhpcjppbnN0YW50IiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaG9pY2UgbmFtZT0iZmhpcjpzdHJpbmciIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNob2ljZSBuYW1lPSJmaGlyOkFnZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2hvaWNlIG5hbWU9ImZoaXI6UmFuZ2UiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hc1R5cGVTcGVjaWZpZXI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iSWYiPgogICAgICAgICAgICAgICAgICAgICAgICA8Y29uZGl0aW9uIHhzaTp0eXBlPSJJc051bGwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iVG9EYXRlVGltZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjIyIiBsb2NhdG9yPSI4OTo0NC04OTo3MCIgeHNpOnR5cGU9IkVuZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjIxIiBsb2NhdG9yPSI4OTo1MS04OTo3MCIgbmFtZT0iTWVhc3VyZW1lbnQgUGVyaW9kIiB4c2k6dHlwZT0iUGFyYW1ldGVyUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICA8L2NvbmRpdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZW4geHNpOnR5cGU9Ik51bGwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVzdWx0VHlwZVNwZWNpZmllciB4c2k6dHlwZT0iSW50ZXJ2YWxUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBvaW50VHlwZSBuYW1lPSJ0OkRhdGVUaW1lIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVzdWx0VHlwZVNwZWNpZmllcj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVuPgogICAgICAgICAgICAgICAgICAgICAgICA8ZWxzZSBsb3dDbG9zZWQ9InRydWUiIGhpZ2hDbG9zZWQ9InRydWUiIHhzaTp0eXBlPSJJbnRlcnZhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsb3cgeHNpOnR5cGU9IlRvRGF0ZVRpbWUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyMiIgbG9jYXRvcj0iODk6NDQtODk6NzAiIHhzaTp0eXBlPSJFbmQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyMSIgbG9jYXRvcj0iODk6NTEtODk6NzAiIG5hbWU9Ik1lYXN1cmVtZW50IFBlcmlvZCIgeHNpOnR5cGU9IlBhcmFtZXRlclJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbG93PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8aGlnaCB4c2k6dHlwZT0iVG9EYXRlVGltZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjIyIiBsb2NhdG9yPSI4OTo0NC04OTo3MCIgeHNpOnR5cGU9IkVuZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjIxIiBsb2NhdG9yPSI4OTo1MS04OTo3MCIgbmFtZT0iTWVhc3VyZW1lbnQgUGVyaW9kIiB4c2k6dHlwZT0iUGFyYW1ldGVyUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oaWdoPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Vsc2U+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyOCIgbG9jYXRvcj0iOTA6Ny05MDo3MCIgeHNpOnR5cGU9Ik92ZXJsYXBzIj4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjYiIGxvY2F0b3I9IjkwOjctOTA6NDAiIG5hbWU9Ik1lZGljYXRpb25SZXF1ZXN0UGVyaW9kIiBsaWJyYXJ5TmFtZT0iSElDIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyNSIgbG9jYXRvcj0iOTA6MzgtOTA6MzkiIG5hbWU9Ik1SIiB4c2k6dHlwZT0iQWxpYXNSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iSW50ZXJ2YWwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bG93IHhzaTp0eXBlPSJUb0RhdGVUaW1lIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0ibG93IiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIGxvY2FsSWQ9IjI3IiBsb2NhdG9yPSI5MDo1MS05MDo3MCIgbmFtZT0iTWVhc3VyZW1lbnQgUGVyaW9kIiB4c2k6dHlwZT0iUGFyYW1ldGVyUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9sb3c+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsb3dDbG9zZWRFeHByZXNzaW9uIHBhdGg9Imxvd0Nsb3NlZCIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBsb2NhbElkPSIyNyIgbG9jYXRvcj0iOTA6NTEtOTA6NzAiIG5hbWU9Ik1lYXN1cmVtZW50IFBlcmlvZCIgeHNpOnR5cGU9IlBhcmFtZXRlclJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xvd0Nsb3NlZEV4cHJlc3Npb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoaWdoIHhzaTp0eXBlPSJUb0RhdGVUaW1lIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0iaGlnaCIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBsb2NhbElkPSIyNyIgbG9jYXRvcj0iOTA6NTEtOTA6NzAiIG5hbWU9Ik1lYXN1cmVtZW50IFBlcmlvZCIgeHNpOnR5cGU9IlBhcmFtZXRlclJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvaGlnaD4KICAgICAgICAgICAgICAgICAgICAgICAgPGhpZ2hDbG9zZWRFeHByZXNzaW9uIHBhdGg9ImhpZ2hDbG9zZWQiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgbG9jYWxJZD0iMjciIGxvY2F0b3I9IjkwOjUxLTkwOjcwIiBuYW1lPSJNZWFzdXJlbWVudCBQZXJpb2QiIHhzaTp0eXBlPSJQYXJhbWV0ZXJSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9oaWdoQ2xvc2VkRXhwcmVzc2lvbj4KICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgIDwvd2hlcmU+CiAgICAgICAgICAgICAgIDxzb3J0IGxvY2FsSWQ9IjM0IiBsb2NhdG9yPSI5MTozLTkxOjQyIj4KICAgICAgICAgICAgICAgICAgPGJ5IGxvY2FsSWQ9IjMzIiBsb2NhdG9yPSI5MToxMS05MTo0MiIgZGlyZWN0aW9uPSJhc2MiIHhzaTp0eXBlPSJCeUV4cHJlc3Npb24iPgogICAgICAgICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIzMiIgbG9jYXRvcj0iOTE6MTEtOTE6NDIiIHhzaTp0eXBlPSJTdGFydCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjMxIiBsb2NhdG9yPSI5MToyMC05MTo0MiIgbmFtZT0idG9JbnRlcnZhbCIgbGlicmFyeU5hbWU9IldDb20iIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJBcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjMwIiBsb2NhdG9yPSI5MToyMC05MToyOSIgbmFtZT0iYXV0aG9yZWRPbiIgeHNpOnR5cGU9IklkZW50aWZpZXJSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFzVHlwZVNwZWNpZmllciB4c2k6dHlwZT0iQ2hvaWNlVHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaG9pY2UgbmFtZT0iZmhpcjpkYXRlVGltZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2hvaWNlIG5hbWU9ImZoaXI6UGVyaW9kIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaG9pY2UgbmFtZT0iZmhpcjpUaW1pbmciIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNob2ljZSBuYW1lPSJmaGlyOmluc3RhbnQiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNob2ljZSBuYW1lPSJmaGlyOnN0cmluZyIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2hvaWNlIG5hbWU9ImZoaXI6QWdlIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaG9pY2UgbmFtZT0iZmhpcjpSYW5nZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FzVHlwZVNwZWNpZmllcj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgICAgICAgICAgPC9ieT4KICAgICAgICAgICAgICAgPC9zb3J0PgogICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIzOSIgbG9jYXRvcj0iOTg6MS05OTo2IiBuYW1lPSJJbml0aWFsIFBvcHVsYXRpb24iIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzOSI+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMzgiPi8qCiAqSW5pdGlhbCBQb3B1bGF0aW9uCiAqLwoKZGVmaW5lICZxdW90O0luaXRpYWwgUG9wdWxhdGlvbiZxdW90OzoKICB0cnVlPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjM4IiBsb2NhdG9yPSI5OTozLTk5OjYiIHZhbHVlVHlwZT0idDpCb29sZWFuIiB2YWx1ZT0idHJ1ZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNTIiIGxvY2F0b3I9IjEwODoxLTExMToxMjkiIG5hbWU9Ik51bWVyYXRvciIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjUyIj4KICAgICAgICAgICAgICAgPGE6cz4vKioKICogTnVtZXJhdG9yCiAqIAogKiBEZWZpbml0aW9uOiBOdW1iZXIgb2YgcGVvcGxlIGxpdmluZyB3aXRoIEhJViBhbmQgT24gQVJUIHdobyByZWNlaXZlZCAzLTUgb3IgPjYgbW9udGhzIG9mIEFSViBtZWRpY2luZSBhdCB0aGVpciBtb3N0IHJlY2VudCBBUlYgbWVkaWNpbmUgcGljay11cC4gfCAgfCAoVGhlIG51bWJlciByZWNlaXZpbmcgJmx0OzMgbW9udGhzIG9mIEFSViBzdXBwbHkgaXMgYWxzbyBjb2xsZWN0ZWQsIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzLikgfCAgfCBJZiBjb3VudHJpZXMgY2Fubm90IHJlcG9ydCBvbiB0aGUgbnVtYmVyIG9mIG1vbnRocyBvZiBBUlYgbWVkaWNpbmUgZGlzcGVuc2VkIGJ5IHRoZSBkaXNhZ2dyZWdhdGlvbnMgZGVzY3JpYmVkIGFib3ZlLCB0aGV5IGNvdWxkLCBhcyBhbiBhbHRlcm5hdGl2ZSwgcmVwb3J0IHRoZSB0b3RhbCBudW1iZXIgb2YgcGVvcGxlIGN1cnJlbnRseSBvbiBBUlYgdGhlcmFweSBhbmQgcmVjZWl2aW5nIOKJpTMgbW9udGhzIG9mIEFSViBtZWRpY2luZSBhdCB0aGVpciBsYXN0IG1lZGljaW5lIHBpY2stdXAuCiAqIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggJnF1b3Q7SElWIHN0YXR1cyZxdW90Oz0nSElWLXBvc2l0aXZlJyBBTkQgJnF1b3Q7T24gQVJUJnF1b3Q7PVRydWUgQU5EICgoJnF1b3Q7TnVtYmVyIG9mIGRheXMgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCZxdW90Oz49M21vbnRocykgZm9yIGxhc3QgQVJUIHByZXNjcmlwdGlvbgogKi8KCmRlZmluZSAmcXVvdDtOdW1lcmF0b3ImcXVvdDs6CiAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iNTEiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjQ0Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI0MSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0hhcyBISVYtcG9zaXRpdmUgU3RhdHVzJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgYW5kIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjQzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI0MiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElFPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI0MyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7T24gQVJUIEguREU0NyZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPgogICBhbmQgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTAiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPig8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1MCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPmR1cmF0aW9uIGluIG1vbnRocyBvZiA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI0NyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkNvbW1vbjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPk1lZGljYXRpb25SZXF1ZXN0UGVyaW9kKDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjQ2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtMYXN0IEFSVCBwcmVzY3JpYmVkIGJlZm9yZSBlbmQgb2YgbWVhc3VyZW1lbnQgcGVyaW9kJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPik8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gPj0gPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPjMgbW9udGhzPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4pPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iNTEiIGxvY2F0b3I9IjEwOTozLTExMToxMjkiIHhzaTp0eXBlPSJBbmQiPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI0NCIgbG9jYXRvcj0iMTA5OjMtMTEwOjI2IiB4c2k6dHlwZT0iQW5kIj4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNDEiIGxvY2F0b3I9IjEwOTozLTEwOTozMSIgbmFtZT0iSGFzIEhJVi1wb3NpdGl2ZSBTdGF0dXMiIGxpYnJhcnlOYW1lPSJISUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjQzIiBsb2NhdG9yPSIxMTA6OC0xMTA6MjYiIG5hbWU9Ik9uIEFSVCBILkRFNDciIGxpYnJhcnlOYW1lPSJISUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNTAiIGxvY2F0b3I9IjExMTo4LTExMToxMjkiIHhzaTp0eXBlPSJHcmVhdGVyT3JFcXVhbCI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJUb1F1YW50aXR5Ij4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNDgiIGxvY2F0b3I9IjExMTo5LTExMToxMTYiIHByZWNpc2lvbj0iTW9udGgiIHhzaTp0eXBlPSJEdXJhdGlvbkJldHdlZW4iPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iU3RhcnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI0NyIgbG9jYXRvcj0iMTExOjMxLTExMToxMTYiIG5hbWU9Ik1lZGljYXRpb25SZXF1ZXN0UGVyaW9kIiBsaWJyYXJ5TmFtZT0iSElDIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI0NiIgbG9jYXRvcj0iMTExOjYyLTExMToxMTUiIG5hbWU9Ikxhc3QgQVJUIHByZXNjcmliZWQgYmVmb3JlIGVuZCBvZiBtZWFzdXJlbWVudCBwZXJpb2QiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iRW5kIj4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNDciIGxvY2F0b3I9IjExMTozMS0xMTE6MTE2IiBuYW1lPSJNZWRpY2F0aW9uUmVxdWVzdFBlcmlvZCIgbGlicmFyeU5hbWU9IkhJQyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNDYiIGxvY2F0b3I9IjExMTo2Mi0xMTE6MTE1IiBuYW1lPSJMYXN0IEFSVCBwcmVzY3JpYmVkIGJlZm9yZSBlbmQgb2YgbWVhc3VyZW1lbnQgcGVyaW9kIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjQ5IiBsb2NhdG9yPSIxMTE6MTIxLTExMToxMjgiIHZhbHVlPSIzIiB1bml0PSJtb250aHMiIHhzaTp0eXBlPSJRdWFudGl0eSIvPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNTgiIGxvY2F0b3I9IjEyMToxLTEyMzoyNiIgbmFtZT0iRGVub21pbmF0b3IiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSI1OCI+CiAgICAgICAgICAgICAgIDxhOnM+LyoqCiAqIERlbm9taW5hdG9yCiAqCiAqIERlZmluaXRpb246IE51bWJlciBvZiBwZW9wbGUgbGl2aW5nIHdpdGggSElWIGFuZCBPbiBBUlQKICogQ2FsY3VsYXRpb246IENPVU5UIG9mIGNsaWVudHMgd2l0aCAmcXVvdDtISVYgc3RhdHVzJnF1b3Q7PSdISVYtcG9zaXRpdmUnIEFORCAmcXVvdDtPbiBBUlQmcXVvdDs9VHJ1ZSB3aXRoaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QKICovCgpkZWZpbmUgJnF1b3Q7RGVub21pbmF0b3ImcXVvdDs6CiAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iNTciPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjU0Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1MyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElFPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1NCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7SGFzIEhJVi1wb3NpdGl2ZSBTdGF0dXMmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPgogICBhbmQgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTYiPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjU1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5ISUU8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjU2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtPbiBBUlQgSC5ERTQ3JnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjU3IiBsb2NhdG9yPSIxMjI6My0xMjM6MjYiIHhzaTp0eXBlPSJBbmQiPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI1NCIgbG9jYXRvcj0iMTIyOjMtMTIyOjMxIiBuYW1lPSJIYXMgSElWLXBvc2l0aXZlIFN0YXR1cyIgbGlicmFyeU5hbWU9IkhJRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNTYiIGxvY2F0b3I9IjEyMzo4LTEyMzoyNiIgbmFtZT0iT24gQVJUIEguREU0NyIgbGlicmFyeU5hbWU9IkhJRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSI2MSIgbG9jYXRvcj0iMTMyOjEtMTMzOjQyIiBuYW1lPSJBZG1pbmlzdHJhdGl2ZSBHZW5kZXIgU3RyYXRpZmllciIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjYxIj4KICAgICAgICAgICAgICAgPGE6cz4vKiBlbmQgUG9wdWxhdGlvbnMgKi8KCi8qCiAqIERpc2FnZ3JlZ2F0b3JzCiAqLwoKZGVmaW5lICZxdW90O0FkbWluaXN0cmF0aXZlIEdlbmRlciBTdHJhdGlmaWVyJnF1b3Q7OgoJPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iNjAiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjU5Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5ISUU8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjYwIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtCeSBBZG1pbmlzdHJhdGl2ZSBHZW5kZXIgU3RyYXRpZmllciZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjYwIiBsb2NhdG9yPSIxMzM6Mi0xMzM6NDIiIG5hbWU9IkJ5IEFkbWluaXN0cmF0aXZlIEdlbmRlciBTdHJhdGlmaWVyIiBsaWJyYXJ5TmFtZT0iSElFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSI2NCIgbG9jYXRvcj0iMTM1OjEtMTM2OjI0IiBuYW1lPSJBZ2UgU3RyYXRpZmllciIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjY0Ij4KICAgICAgICAgICAgICAgPGE6cz5kZWZpbmUgJnF1b3Q7QWdlIFN0cmF0aWZpZXImcXVvdDs6Cgk8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSI2MyI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNjIiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNjMiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0J5IEFnZSBTdHJhdGlmaWVyJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iNjMiIGxvY2F0b3I9IjEzNjoyLTEzNjoyNCIgbmFtZT0iQnkgQWdlIFN0cmF0aWZpZXIiIGxpYnJhcnlOYW1lPSJISUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjY3IiBsb2NhdG9yPSIxMzg6MS0xMzk6MzgiIG5hbWU9Ikdlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXIiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSI2NyI+CiAgICAgICAgICAgICAgIDxhOnM+ZGVmaW5lICZxdW90O0dlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXImcXVvdDs6Cgk8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSI2NiI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNjUiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNjYiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0J5IEdlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXImcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSI2NiIgbG9jYXRvcj0iMTM5OjItMTM5OjM4IiBuYW1lPSJCeSBHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyIiBsaWJyYXJ5TmFtZT0iSElFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSI3MCIgbG9jYXRvcj0iMTQxOjEtMTQyOjIwIiBuYW1lPSJwYXRpZW50R3JvdXBzIFN0cmF0aWZpZXIiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSI3MCI+CiAgICAgICAgICAgICAgIDxhOnM+ZGVmaW5lICZxdW90O3BhdGllbnRHcm91cHMgU3RyYXRpZmllciZxdW90OzoKCTwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjY5Ij4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI2OCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElFPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI2OSI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7cGF0aWVudEdyb3VwcyZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjY5IiBsb2NhdG9yPSIxNDI6Mi0xNDI6MjAiIG5hbWU9InBhdGllbnRHcm91cHMiIGxpYnJhcnlOYW1lPSJISUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9Ijg5IiBsb2NhdG9yPSIxNDQ6MS0xNDg6MzMiIG5hbWU9IlN0cmF0aWZpY2F0aW9uIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iODkiPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSAmcXVvdDtTdHJhdGlmaWNhdGlvbiZxdW90OzoKIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9Ijg4Ij4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI4MyI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iODAiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9Ijc4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI3NSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNzMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjcyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI3MSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElFPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI3MiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7QnkgQWRtaW5pc3RyYXRpdmUgR2VuZGVyIFN0cmF0aWZpZXImcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI3MyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+Y29kZTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+IAogICsgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNzQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPic6JzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+ICsgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNzciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9Ijc2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5ISUU8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9Ijc3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtCeSBBZ2UgU3RyYXRpZmllciZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgorIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9Ijc5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4nOic8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPiArIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjgyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI4MSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElFPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI4MiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7QnkgR2VvZ3JhcGhpYyBSZWdpb24gU3RyYXRpZmllciZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPgorIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9Ijg3Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5Db21iaW5lKDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9Ijg1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI4NCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElFPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI4NSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+cGF0aWVudEdyb3VwczwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+LCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI4NiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JzonPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPik8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSI4OCIgbG9jYXRvcj0iMTQ1OjItMTQ4OjMzIiB4c2k6dHlwZT0iQ29uY2F0ZW5hdGUiPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI4MyIgbG9jYXRvcj0iMTQ1OjItMTQ3OjQ1IiB4c2k6dHlwZT0iQ29uY2F0ZW5hdGUiPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI4MCIgbG9jYXRvcj0iMTQ1OjItMTQ3OjUiIHhzaTp0eXBlPSJDb25jYXRlbmF0ZSI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9Ijc4IiBsb2NhdG9yPSIxNDU6Mi0xNDY6MzMiIHhzaTp0eXBlPSJDb25jYXRlbmF0ZSI+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9Ijc1IiBsb2NhdG9yPSIxNDU6Mi0xNDY6NyIgeHNpOnR5cGU9IkNvbmNhdGVuYXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNzMiIGxvY2F0b3I9IjE0NToyLTE0NTo0NyIgcGF0aD0iY29kZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBsb2NhbElkPSI3MiIgbG9jYXRvcj0iMTQ1OjItMTQ1OjQyIiBuYW1lPSJCeSBBZG1pbmlzdHJhdGl2ZSBHZW5kZXIgU3RyYXRpZmllciIgbGlicmFyeU5hbWU9IkhJRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI3NCIgbG9jYXRvcj0iMTQ2OjUtMTQ2OjciIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSI6IiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9Ijc3IiBsb2NhdG9yPSIxNDY6MTEtMTQ2OjMzIiBuYW1lPSJCeSBBZ2UgU3RyYXRpZmllciIgbGlicmFyeU5hbWU9IkhJRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI3OSIgbG9jYXRvcj0iMTQ3OjMtMTQ3OjUiIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSI6IiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9IlRvU3RyaW5nIiBsaWJyYXJ5TmFtZT0iRkhJUkhlbHBlcnMiIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjgyIiBsb2NhdG9yPSIxNDc6OS0xNDc6NDUiIG5hbWU9IkJ5IEdlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXIiIGxpYnJhcnlOYW1lPSJISUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI4NyIgbG9jYXRvcj0iMTQ4OjMtMTQ4OjMzIiB4c2k6dHlwZT0iQ29tYmluZSI+CiAgICAgICAgICAgICAgIDxzb3VyY2UgbG9jYWxJZD0iODUiIGxvY2F0b3I9IjE0ODoxMS0xNDg6MjciIG5hbWU9InBhdGllbnRHcm91cHMiIGxpYnJhcnlOYW1lPSJISUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgIDxzZXBhcmF0b3IgbG9jYWxJZD0iODYiIGxvY2F0b3I9IjE0ODozMC0xNDg6MzIiIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSI6IiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgIDwvc3RhdGVtZW50cz4KPC9saWJyYXJ5Pgo="^^xsd:base64Binary ]
  ] ) . #