CPG Opioid Prescribing Guideline Examples
1.0.0 - ci-build International flag

CPG Opioid Prescribing Guideline Examples, published by HL7 International - Clinical Decision Support WG. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/cpg-example-opioids/ and changes regularly. See the Directory of published versions

: Opioid CDS R4 Logic for recommendation #5 - TTL Representation

Draft as of 2024-08-23

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 "OpioidCDSR4Recommendation05"] ; # 
  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 OpioidCDSR4Recommendation05</b></p><a name=\"OpioidCDSR4Recommendation05\"> </a><a name=\"hcOpioidCDSR4Recommendation05\"> </a><a name=\"OpioidCDSR4Recommendation05-en-US\"> </a><h2>Participants</h2><table class=\"grid\"><tr><td>Author</td><td>Kensaku Kawamoto, MD, PhD, MHS</td></tr><tr><td>Author</td><td>Bryn Rhodes</td></tr><tr><td>Author</td><td>Floyd Eisenberg, MD, MPH</td></tr><tr><td>Author</td><td>Robert McClure, MD, MPH</td></tr></table><h2>Related Artifacts</h2><table class=\"grid\"><tr><td>Documentation</td><td>CDC guideline for prescribing opioids for chronic pain</td><td>https://www.cdc.gov/mmwr/volumes/65/rr/rr6501e1.htm?CDC_AA_refVal=https%3A%2F%2Fwww.cdc.gov%2Fmmwr%2Fvolumes%2F65%2Frr%2Frr6501e1er.htm</td></tr><tr><td>Documentation</td><td>MME Conversion Tables</td><td>https://www.cdc.gov/drugoverdose/pdf/calculating_total_daily_dose-a.pdf</td></tr><tr><td>Depends On</td><td>Library Common</td><td><code>http://hl7.org/fhir/uv/cpg/opioids/Library/OpioidCDSR4Common|0.1.0</code></td></tr></table><h2>Parameters</h2><table class=\"grid\"><tr><td>ContextPrescriptions</td><td>in</td><td>0</td><td>1</td><td>MedicationRequest</td></tr><tr><td>Patient</td><td>out</td><td>0</td><td>1</td><td>Patient</td></tr><tr><td>Exclusion Criteria</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Total MME</td><td>out</td><td>0</td><td>1</td><td>Quantity</td></tr><tr><td>Inclusion Criteria</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Taper Now</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Consider Tapering</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Get Indicator</td><td>out</td><td>0</td><td>1</td><td>string</td></tr><tr><td>Get Summary</td><td>out</td><td>0</td><td>1</td><td>string</td></tr><tr><td>Get Detail</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 OpioidCDSR4Recommendation05 version '0.1.0'\n\nusing FHIR version '4.0.0'\n\ninclude OpioidCDSR4Common version '0.1.0' called Common\n\n/*\n**\n** Recommendation #5\n**\n*/\n\n/*\n  Plan Definition:\n	http://build.fhir.org/ig/cqframework/opioid-cds/PlanDefinition-opioidcds-r4-recommendation-05.html\n*/\n\nparameter ContextPrescriptions List&lt;MedicationRequest&gt;\n\ncontext Patient\n\ndefine &quot;Inclusion Criteria&quot;:\n  AgeInYears() &gt;= 18\n    and not &quot;Exclusion Criteria&quot;\n    and &quot;Total MME&quot; &gt;= 50 'mg/d'\n\ndefine &quot;Exclusion Criteria&quot;:\n  Common.&quot;End of Life Assessment&quot;\n\ndefine &quot;Total MME&quot;:\n  Common.TotalMME(ContextPrescriptions union Common.&quot;Active Ambulatory Opioid Rx&quot;)\n\ndefine &quot;Taper Now&quot;: &quot;Total MME&quot;.value &gt;= 90\n\ndefine &quot;Consider Tapering&quot;: &quot;Total MME&quot;.value &lt; 90\n\ndefine &quot;Get Indicator&quot;:\n  if &quot;Inclusion Criteria&quot;\n    then 'warning'\n  else null\n\ndefine &quot;Get Summary&quot;:\n  if &quot;Inclusion Criteria&quot;\n    then\n      'High risk for opioid overdose - '\n        + case when &quot;Taper Now&quot;\n           then 'taper now'\n           else 'consider tapering'\n         end\n  else null\n\ndefine &quot;Get Detail&quot;:\n  if &quot;Inclusion Criteria&quot;\n    then'Total morphine milligram equivalent (MME) is ' + ToString(&quot;Total MME&quot;) + '. Taper to less than 50.'\n  else null\n</code></pre><p><code>Content not shown - (</code><code>application/elm+xml</code>, size = 16Kb )</p></div>"
  ] ; # 
  fhir:url [ fhir:v "http://hl7.org/fhir/uv/cpg/opiods/Library/OpioidCDSR4Recommendation05"^^xsd:anyURI] ; # 
  fhir:version [ fhir:v "1.0.0"] ; # 
  fhir:name [ fhir:v "OpioidCDSR4Recommendation05"] ; # 
  fhir:title [ fhir:v "Opioid CDS R4 Logic for recommendation #5"] ; # 
  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:display [ fhir:v "Logic Library" ]     ] )
  ] ; # 
  fhir:date [ fhir:v "2024-08-23T15:50:14+00:00"^^xsd:dateTime] ; # 
  fhir:publisher [ fhir:v "HL7 International - Clinical Decision Support WG"] ; # 
  fhir:contact ( [
fhir:name [ fhir:v "HL7 International - Clinical Decision Support WG" ] ;
    ( fhir:telecom [
fhir:system [ fhir:v "url" ] ;
fhir:value [ fhir:v "http://www.hl7.org/Special/committees/dss/index.cfm" ]     ] )
  ] ) ; # 
  fhir:description [ fhir:v "Opioid Decision Support Logic for use in implementing CDC Opioid Prescribing Guidelines."] ; # 
  fhir:jurisdiction ( [
    ( fhir:coding [
fhir:system [ fhir:v "http://unstats.un.org/unsd/methods/m49/m49.htm"^^xsd:anyURI ] ;
fhir:code [ fhir:v "001" ] ;
fhir:display [ fhir:v "World" ]     ] )
  ] ) ; # 
  fhir:purpose [ fhir:v "This library works in concert with the OMTK logic library to provide decision support for Morphine Milligram Equivalence calculations and dynamic value resolution."] ; # 
  fhir:usage [ fhir:v "This library is to notify the prescriber/user whether the current prescription exceeds the recommended MME."] ; # 
  fhir:copyright [ fhir:v "CDC 2016+"] ; # 
  fhir:author ( [
fhir:name [ fhir:v "Kensaku Kawamoto, MD, PhD, MHS" ]
  ] [
fhir:name [ fhir:v "Bryn Rhodes" ]
  ] [
fhir:name [ fhir:v "Floyd Eisenberg, MD, MPH" ]
  ] [
fhir:name [ fhir:v "Robert McClure, MD, MPH" ]
  ] ) ; # 
  fhir:relatedArtifact ( [
fhir:type [ fhir:v "documentation" ] ;
fhir:display [ fhir:v "CDC guideline for prescribing opioids for chronic pain" ] ;
fhir:url [ fhir:v "https://www.cdc.gov/mmwr/volumes/65/rr/rr6501e1.htm?CDC_AA_refVal=https%3A%2F%2Fwww.cdc.gov%2Fmmwr%2Fvolumes%2F65%2Frr%2Frr6501e1er.htm"^^xsd:anyURI ] ;
fhir:document [
fhir:url [ fhir:v "https://www.cdc.gov/mmwr/volumes/65/rr/rr6501e1.htm?CDC_AA_refVal=https%3A%2F%2Fwww.cdc.gov%2Fmmwr%2Fvolumes%2F65%2Frr%2Frr6501e1er.htm"^^xsd:anyURI ]     ]
  ] [
fhir:type [ fhir:v "documentation" ] ;
fhir:display [ fhir:v "MME Conversion Tables" ] ;
fhir:url [ fhir:v "https://www.cdc.gov/drugoverdose/pdf/calculating_total_daily_dose-a.pdf"^^xsd:anyURI ] ;
fhir:document [
fhir:url [ fhir:v "https://www.cdc.gov/drugoverdose/pdf/calculating_total_daily_dose-a.pdf"^^xsd:anyURI ]     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library Common" ] ;
fhir:resource [
fhir:v "http://hl7.org/fhir/uv/cpg/opioids/Library/OpioidCDSR4Common|0.1.0"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/cpg/opioids/Library/OpioidCDSR4Common|0.1.0>     ]
  ] ) ; # 
  fhir:parameter ( [
fhir:name [ fhir:v "ContextPrescriptions" ] ;
fhir:use [ fhir:v "in" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "MedicationRequest" ]
  ] [
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 "Exclusion Criteria" ] ;
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 "Total MME" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Quantity" ]
  ] [
fhir:name [ fhir:v "Inclusion Criteria" ] ;
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 "Taper Now" ] ;
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 "Consider Tapering" ] ;
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 "Get Indicator" ] ;
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 "Get Summary" ] ;
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 "Get Detail" ] ;
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 "bGlicmFyeSBPcGlvaWRDRFNSNFJlY29tbWVuZGF0aW9uMDUgdmVyc2lvbiAnMC4xLjAnCgp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4wJwoKaW5jbHVkZSBPcGlvaWRDRFNSNENvbW1vbiB2ZXJzaW9uICcwLjEuMCcgY2FsbGVkIENvbW1vbgoKLyoKKioKKiogUmVjb21tZW5kYXRpb24gIzUKKioKKi8KCi8qCiAgUGxhbiBEZWZpbml0aW9uOgoJaHR0cDovL2J1aWxkLmZoaXIub3JnL2lnL2NxZnJhbWV3b3JrL29waW9pZC1jZHMvUGxhbkRlZmluaXRpb24tb3Bpb2lkY2RzLXI0LXJlY29tbWVuZGF0aW9uLTA1Lmh0bWwKKi8KCnBhcmFtZXRlciBDb250ZXh0UHJlc2NyaXB0aW9ucyBMaXN0PE1lZGljYXRpb25SZXF1ZXN0PgoKY29udGV4dCBQYXRpZW50CgpkZWZpbmUgIkluY2x1c2lvbiBDcml0ZXJpYSI6CiAgQWdlSW5ZZWFycygpID49IDE4CiAgICBhbmQgbm90ICJFeGNsdXNpb24gQ3JpdGVyaWEiCiAgICBhbmQgIlRvdGFsIE1NRSIgPj0gNTAgJ21nL2QnCgpkZWZpbmUgIkV4Y2x1c2lvbiBDcml0ZXJpYSI6CiAgQ29tbW9uLiJFbmQgb2YgTGlmZSBBc3Nlc3NtZW50IgoKZGVmaW5lICJUb3RhbCBNTUUiOgogIENvbW1vbi5Ub3RhbE1NRShDb250ZXh0UHJlc2NyaXB0aW9ucyB1bmlvbiBDb21tb24uIkFjdGl2ZSBBbWJ1bGF0b3J5IE9waW9pZCBSeCIpCgpkZWZpbmUgIlRhcGVyIE5vdyI6ICJUb3RhbCBNTUUiLnZhbHVlID49IDkwCgpkZWZpbmUgIkNvbnNpZGVyIFRhcGVyaW5nIjogIlRvdGFsIE1NRSIudmFsdWUgPCA5MAoKZGVmaW5lICJHZXQgSW5kaWNhdG9yIjoKICBpZiAiSW5jbHVzaW9uIENyaXRlcmlhIgogICAgdGhlbiAnd2FybmluZycKICBlbHNlIG51bGwKCmRlZmluZSAiR2V0IFN1bW1hcnkiOgogIGlmICJJbmNsdXNpb24gQ3JpdGVyaWEiCiAgICB0aGVuCiAgICAgICdIaWdoIHJpc2sgZm9yIG9waW9pZCBvdmVyZG9zZSAtICcKICAgICAgICArIGNhc2Ugd2hlbiAiVGFwZXIgTm93IgogICAgICAgICAgIHRoZW4gJ3RhcGVyIG5vdycKICAgICAgICAgICBlbHNlICdjb25zaWRlciB0YXBlcmluZycKICAgICAgICAgZW5kCiAgZWxzZSBudWxsCgpkZWZpbmUgIkdldCBEZXRhaWwiOgogIGlmICJJbmNsdXNpb24gQ3JpdGVyaWEiCiAgICB0aGVuJ1RvdGFsIG1vcnBoaW5lIG1pbGxpZ3JhbSBlcXVpdmFsZW50IChNTUUpIGlzICcgKyBUb1N0cmluZygiVG90YWwgTU1FIikgKyAnLiBUYXBlciB0byBsZXNzIHRoYW4gNTAuJwogIGVsc2UgbnVsbAo="^^xsd:base64Binary ]
  ] [
fhir:contentType [ fhir:v "application/elm+xml" ] ;
fhir:data [ fhir:v "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iTm9uZSIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1JbmZvIi8+CiAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICA8YTpzIHI9IjYyIj4KICAgICAgICAgPGE6cz5saWJyYXJ5IE9waW9pZENEU1I0UmVjb21tZW5kYXRpb24wNSB2ZXJzaW9uICcwLjEuMCc8L2E6cz4KICAgICAgPC9hOnM+CiAgIDwvYW5ub3RhdGlvbj4KICAgPGlkZW50aWZpZXIgaWQ9Ik9waW9pZENEU1I0UmVjb21tZW5kYXRpb24wNSIgc3lzdGVtPSJodHRwOi8vaGw3Lm9yZy9maGlyL3V2L2NwZy9vcGlvaWRzIiB2ZXJzaW9uPSIwLjEuMCIvPgogICA8c2NoZW1hSWRlbnRpZmllciBpZD0idXJuOmhsNy1vcmc6ZWxtIiB2ZXJzaW9uPSJyMSIvPgogICA8dXNpbmdzPgogICAgICA8ZGVmIGxvY2FsSWRlbnRpZmllcj0iU3lzdGVtIiB1cmk9InVybjpobDctb3JnOmVsbS10eXBlczpyMSIvPgogICAgICA8ZGVmIGxvY2FsSWQ9IjEiIGxvY2F0b3I9IjM6MS0zOjI2IiBsb2NhbElkZW50aWZpZXI9IkZISVIiIHVyaT0iaHR0cDovL2hsNy5vcmcvZmhpciIgdmVyc2lvbj0iNC4wLjAiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIxIj4KICAgICAgICAgICAgICAgPGE6cz51c2luZyA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5GSElSPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICc0LjAuMCc8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgIDwvdXNpbmdzPgogICA8aW5jbHVkZXM+CiAgICAgIDxkZWYgbG9jYWxJZD0iMiIgbG9jYXRvcj0iNToxLTU6NTUiIGxvY2FsSWRlbnRpZmllcj0iQ29tbW9uIiBwYXRoPSJodHRwOi8vaGw3Lm9yZy9maGlyL3V2L2NwZy9vcGlvaWRzL09waW9pZENEU1I0Q29tbW9uIiB2ZXJzaW9uPSIwLjEuMCI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjIiPgogICAgICAgICAgICAgICA8YTpzPmluY2x1ZGUgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+T3Bpb2lkQ0RTUjRDb21tb248L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzAuMS4wJyBjYWxsZWQgQ29tbW9uPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICA8L2luY2x1ZGVzPgogICA8cGFyYW1ldGVycz4KICAgICAgPGRlZiBsb2NhbElkPSI1IiBsb2NhdG9yPSIxODoxLTE4OjU0IiBuYW1lPSJDb250ZXh0UHJlc2NyaXB0aW9ucyIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjUiPgogICAgICAgICAgICAgICA8YTpzPi8qCioqCioqIFJlY29tbWVuZGF0aW9uICM1CioqCiovCgovKgogIFBsYW4gRGVmaW5pdGlvbjoKCWh0dHA6Ly9idWlsZC5maGlyLm9yZy9pZy9jcWZyYW1ld29yay9vcGlvaWQtY2RzL1BsYW5EZWZpbml0aW9uLW9waW9pZGNkcy1yNC1yZWNvbW1lbmRhdGlvbi0wNS5odG1sCiovCgpwYXJhbWV0ZXIgQ29udGV4dFByZXNjcmlwdGlvbnMgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iNCI+CiAgICAgICAgICAgICAgICAgIDxhOnM+TGlzdCZsdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIzIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5NZWRpY2F0aW9uUmVxdWVzdDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4+PC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8cGFyYW1ldGVyVHlwZVNwZWNpZmllciBsb2NhbElkPSI0IiBsb2NhdG9yPSIxODozMi0xODo1NCIgeHNpOnR5cGU9Ikxpc3RUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgPGVsZW1lbnRUeXBlIGxvY2FsSWQ9IjMiIGxvY2F0b3I9IjE4OjM3LTE4OjUzIiBuYW1lPSJmaGlyOk1lZGljYXRpb25SZXF1ZXN0IiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgIDwvcGFyYW1ldGVyVHlwZVNwZWNpZmllcj4KICAgICAgPC9kZWY+CiAgIDwvcGFyYW1ldGVycz4KICAgPGNvbnRleHRzPgogICAgICA8ZGVmIGxvY2F0b3I9IjIwOjEtMjA6MTUiIG5hbWU9IlBhdGllbnQiLz4KICAgPC9jb250ZXh0cz4KICAgPHN0YXRlbWVudHM+CiAgICAgIDxkZWYgbG9jYXRvcj0iMjA6MS0yMDoxNSIgbmFtZT0iUGF0aWVudCIgY29udGV4dD0iUGF0aWVudCI+CiAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJTaW5nbGV0b25Gcm9tIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYXRvcj0iMjA6MS0yMDoxNSIgZGF0YVR5cGU9ImZoaXI6UGF0aWVudCIgeHNpOnR5cGU9IlJldHJpZXZlIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMTEiIGxvY2F0b3I9IjI3OjEtMjg6MzMiIG5hbWU9IkV4Y2x1c2lvbiBDcml0ZXJpYSIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjExIj4KICAgICAgICAgICAgICAgPGE6cz5kZWZpbmUgJnF1b3Q7RXhjbHVzaW9uIENyaXRlcmlhJnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjEwIj4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI5Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5Db21tb248L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjEwIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtFbmQgb2YgTGlmZSBBc3Nlc3NtZW50JnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMTAiIGxvY2F0b3I9IjI4OjMtMjg6MzMiIG5hbWU9IkVuZCBvZiBMaWZlIEFzc2Vzc21lbnQiIGxpYnJhcnlOYW1lPSJDb21tb24iIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIxIiBsb2NhdG9yPSIzMDoxLTMxOjgyIiBuYW1lPSJUb3RhbCBNTUUiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyMSI+CiAgICAgICAgICAgICAgIDxhOnM+ZGVmaW5lICZxdW90O1RvdGFsIE1NRSZxdW90OzoKICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyMCI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTUiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPkNvbW1vbjwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjAiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPlRvdGFsTU1FKDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjE5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxNiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+Q29udGV4dFByZXNjcmlwdGlvbnM8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+IHVuaW9uIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjE4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxNyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+Q29tbW9uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxOCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7QWN0aXZlIEFtYnVsYXRvcnkgT3Bpb2lkIFJ4JnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+KTwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjIwIiBsb2NhdG9yPSIzMTozLTMxOjgyIiBuYW1lPSJUb3RhbE1NRSIgbGlicmFyeU5hbWU9IkNvbW1vbiIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMTkiIGxvY2F0b3I9IjMxOjE5LTMxOjgxIiB4c2k6dHlwZT0iVW5pb24iPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIxNiIgbG9jYXRvcj0iMzE6MTktMzE6MzgiIG5hbWU9IkNvbnRleHRQcmVzY3JpcHRpb25zIiB4c2k6dHlwZT0iUGFyYW1ldGVyUmVmIi8+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjE4IiBsb2NhdG9yPSIzMTo0Ni0zMTo4MSIgbmFtZT0iQWN0aXZlIEFtYnVsYXRvcnkgT3Bpb2lkIFJ4IiBsaWJyYXJ5TmFtZT0iQ29tbW9uIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjYiIGxvY2F0b3I9IjIyOjEtMjU6MzIiIG5hbWU9IkluY2x1c2lvbiBDcml0ZXJpYSIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjI2Ij4KICAgICAgICAgICAgICAgPGE6cz5kZWZpbmUgJnF1b3Q7SW5jbHVzaW9uIENyaXRlcmlhJnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjI1Ij4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIxNCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iOCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+QWdlSW5ZZWFycygpPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjciPiA+PSAxODwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgIGFuZCA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxMyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+bm90IDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjEyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtFeGNsdXNpb24gQ3JpdGVyaWEmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4KICAgIGFuZCA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjIiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O1RvdGFsIE1NRSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4gPj0gPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjMiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPjUwICdtZy9kJzwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIyNSIgbG9jYXRvcj0iMjM6My0yNTozMiIgeHNpOnR5cGU9IkFuZCI+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjE0IiBsb2NhdG9yPSIyMzozLTI0OjMyIiB4c2k6dHlwZT0iQW5kIj4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iOCIgbG9jYXRvcj0iMjM6My0yMzoyMCIgeHNpOnR5cGU9IkdyZWF0ZXJPckVxdWFsIj4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNiIgbG9jYXRvcj0iMjM6My0yMzoxNCIgcHJlY2lzaW9uPSJZZWFyIiB4c2k6dHlwZT0iQ2FsY3VsYXRlQWdlIj4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0iYmlydGhEYXRlLnZhbHVlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9IlBhdGllbnQiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI3IiBsb2NhdG9yPSIyMzoxOS0yMzoyMCIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxOCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIxMyIgbG9jYXRvcj0iMjQ6OS0yNDozMiIgeHNpOnR5cGU9Ik5vdCI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjEyIiBsb2NhdG9yPSIyNDoxMy0yNDozMiIgbmFtZT0iRXhjbHVzaW9uIENyaXRlcmlhIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjQiIGxvY2F0b3I9IjI1OjktMjU6MzIiIHhzaTp0eXBlPSJHcmVhdGVyT3JFcXVhbCI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjIyIiBsb2NhdG9yPSIyNTo5LTI1OjE5IiBuYW1lPSJUb3RhbCBNTUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjIzIiBsb2NhdG9yPSIyNToyNC0yNTozMiIgdmFsdWU9IjUwIiB1bml0PSJtZy9kIiB4c2k6dHlwZT0iUXVhbnRpdHkiLz4KICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjMxIiBsb2NhdG9yPSIzMzoxLTMzOjQzIiBuYW1lPSJUYXBlciBOb3ciIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzMSI+CiAgICAgICAgICAgICAgIDxhOnM+ZGVmaW5lICZxdW90O1RhcGVyIE5vdyZxdW90OzogPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMzAiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjI4Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7VG90YWwgTU1FJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyOCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+dmFsdWU8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjI5Ij4gPj0gOTA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjMwIiBsb2NhdG9yPSIzMzoyMS0zMzo0MyIgeHNpOnR5cGU9IkdyZWF0ZXJPckVxdWFsIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjgiIGxvY2F0b3I9IjMzOjIxLTMzOjM3IiBwYXRoPSJ2YWx1ZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgPHNvdXJjZSBsb2NhbElkPSIyNyIgbG9jYXRvcj0iMzM6MjEtMzM6MzEiIG5hbWU9IlRvdGFsIE1NRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iVG9EZWNpbWFsIj4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjkiIGxvY2F0b3I9IjMzOjQyLTMzOjQzIiB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjkwIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMzYiIGxvY2F0b3I9IjM1OjEtMzU6NTAiIG5hbWU9IkNvbnNpZGVyIFRhcGVyaW5nIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMzYiPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSAmcXVvdDtDb25zaWRlciBUYXBlcmluZyZxdW90OzogPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMzUiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjMzIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7VG90YWwgTU1FJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIzMyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+dmFsdWU8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjM0Ij4gJmx0OyA5MDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMzUiIGxvY2F0b3I9IjM1OjI5LTM1OjUwIiB4c2k6dHlwZT0iTGVzcyI+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjMzIiBsb2NhdG9yPSIzNToyOS0zNTo0NSIgcGF0aD0idmFsdWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgIDxzb3VyY2UgbG9jYWxJZD0iMzIiIGxvY2F0b3I9IjM1OjI5LTM1OjM5IiBuYW1lPSJUb3RhbCBNTUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IlRvRGVjaW1hbCI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjM0IiBsb2NhdG9yPSIzNTo0OS0zNTo1MCIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSI5MCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjQxIiBsb2NhdG9yPSIzNzoxLTQwOjExIiBuYW1lPSJHZXQgSW5kaWNhdG9yIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNDEiPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSAmcXVvdDtHZXQgSW5kaWNhdG9yJnF1b3Q7OgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjQwIj4KICAgICAgICAgICAgICAgICAgPGE6cz5pZiA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIzNyI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7SW5jbHVzaW9uIENyaXRlcmlhJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPgogICAgdGhlbiA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIzOCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+J3dhcm5pbmcnPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjM5Ij4KICBlbHNlIG51bGw8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjQwIiBsb2NhdG9yPSIzODozLTQwOjExIiB4c2k6dHlwZT0iSWYiPgogICAgICAgICAgICA8Y29uZGl0aW9uIGxvY2FsSWQ9IjM3IiBsb2NhdG9yPSIzODo2LTM4OjI1IiBuYW1lPSJJbmNsdXNpb24gQ3JpdGVyaWEiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgIDx0aGVuIGxvY2FsSWQ9IjM4IiBsb2NhdG9yPSIzOToxMC0zOToxOCIgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9Indhcm5pbmciIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgIDxlbHNlIGFzVHlwZT0idDpTdHJpbmciIHhzaTp0eXBlPSJBcyI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjM5IiBsb2NhdG9yPSI0MDo4LTQwOjExIiB4c2k6dHlwZT0iTnVsbCIvPgogICAgICAgICAgICA8L2Vsc2U+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNTIiIGxvY2F0b3I9IjQyOjEtNTA6MTEiIG5hbWU9IkdldCBTdW1tYXJ5IiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNTIiPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSAmcXVvdDtHZXQgU3VtbWFyeSZxdW90OzoKICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSI1MSI+CiAgICAgICAgICAgICAgICAgIDxhOnM+aWYgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDIiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0luY2x1c2lvbiBDcml0ZXJpYSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4KICAgIHRoZW4KICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDkiPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjQzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4nSGlnaCByaXNrIGZvciBvcGlvaWQgb3ZlcmRvc2UgLSAnPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgICAgICsgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDgiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPmNhc2UgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPndoZW4gPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNDQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O1RhcGVyIE5vdyZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICB0aGVuIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjQ1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4ndGFwZXIgbm93JzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgZWxzZSA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI0NyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+J2NvbnNpZGVyIHRhcGVyaW5nJzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgZW5kPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI1MCI+CiAgZWxzZSBudWxsPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSI1MSIgbG9jYXRvcj0iNDM6My01MDoxMSIgeHNpOnR5cGU9IklmIj4KICAgICAgICAgICAgPGNvbmRpdGlvbiBsb2NhbElkPSI0MiIgbG9jYXRvcj0iNDM6Ni00MzoyNSIgbmFtZT0iSW5jbHVzaW9uIENyaXRlcmlhIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICA8dGhlbiBsb2NhbElkPSI0OSIgbG9jYXRvcj0iNDU6Ny00OToxMiIgeHNpOnR5cGU9IkNvbmNhdGVuYXRlIj4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNDMiIGxvY2F0b3I9IjQ1OjctNDU6NDAiIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSJIaWdoIHJpc2sgZm9yIG9waW9pZCBvdmVyZG9zZSAtICIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNDgiIGxvY2F0b3I9IjQ2OjExLTQ5OjEyIiB4c2k6dHlwZT0iQ2FzZSI+CiAgICAgICAgICAgICAgICAgIDxjYXNlSXRlbSBsb2NhbElkPSI0NiIgbG9jYXRvcj0iNDY6MTYtNDc6MjciPgogICAgICAgICAgICAgICAgICAgICA8d2hlbiBsb2NhbElkPSI0NCIgbG9jYXRvcj0iNDY6MjEtNDY6MzEiIG5hbWU9IlRhcGVyIE5vdyIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgICAgICAgPHRoZW4gbG9jYWxJZD0iNDUiIGxvY2F0b3I9IjQ3OjE3LTQ3OjI3IiB2YWx1ZVR5cGU9InQ6U3RyaW5nIiB2YWx1ZT0idGFwZXIgbm93IiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICAgICA8L2Nhc2VJdGVtPgogICAgICAgICAgICAgICAgICA8ZWxzZSBsb2NhbElkPSI0NyIgbG9jYXRvcj0iNDg6MTctNDg6MzUiIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSJjb25zaWRlciB0YXBlcmluZyIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICA8L3RoZW4+CiAgICAgICAgICAgIDxlbHNlIGFzVHlwZT0idDpTdHJpbmciIHhzaTp0eXBlPSJBcyI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjUwIiBsb2NhdG9yPSI1MDo4LTUwOjExIiB4c2k6dHlwZT0iTnVsbCIvPgogICAgICAgICAgICA8L2Vsc2U+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNjIiIGxvY2F0b3I9IjUyOjEtNTU6MTEiIG5hbWU9IkdldCBEZXRhaWwiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSI2MiI+CiAgICAgICAgICAgICAgIDxhOnM+ZGVmaW5lICZxdW90O0dldCBEZXRhaWwmcXVvdDs6CiAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iNjEiPgogICAgICAgICAgICAgICAgICA8YTpzPmlmIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjUzIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtJbmNsdXNpb24gQ3JpdGVyaWEmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICB0aGVuPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTkiPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjU3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1NCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+J1RvdGFsIG1vcnBoaW5lIG1pbGxpZ3JhbSBlcXVpdmFsZW50IChNTUUpIGlzICc8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+ICsgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPlRvU3RyaW5nKDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjU1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtUb3RhbCBNTUUmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+KTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+ICsgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTgiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPicuIFRhcGVyIHRvIGxlc3MgdGhhbiA1MC4nPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI2MCI+CiAgZWxzZSBudWxsPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSI2MSIgbG9jYXRvcj0iNTM6My01NToxMSIgeHNpOnR5cGU9IklmIj4KICAgICAgICAgICAgPGNvbmRpdGlvbiBsb2NhbElkPSI1MyIgbG9jYXRvcj0iNTM6Ni01MzoyNSIgbmFtZT0iSW5jbHVzaW9uIENyaXRlcmlhIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICA8dGhlbiBsb2NhbElkPSI1OSIgbG9jYXRvcj0iNTQ6OS01NDoxMDgiIHhzaTp0eXBlPSJDb25jYXRlbmF0ZSI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjU3IiBsb2NhdG9yPSI1NDo5LTU0Ojc5IiB4c2k6dHlwZT0iQ29uY2F0ZW5hdGUiPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI1NCIgbG9jYXRvcj0iNTQ6OS01NDo1NSIgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9IlRvdGFsIG1vcnBoaW5lIG1pbGxpZ3JhbSBlcXVpdmFsZW50IChNTUUpIGlzICIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNTYiIGxvY2F0b3I9IjU0OjU5LTU0Ojc5IiB4c2k6dHlwZT0iVG9TdHJpbmciPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI1NSIgbG9jYXRvcj0iNTQ6NjgtNTQ6NzgiIG5hbWU9IlRvdGFsIE1NRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjU4IiBsb2NhdG9yPSI1NDo4My01NDoxMDgiIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSIuIFRhcGVyIHRvIGxlc3MgdGhhbiA1MC4iIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgIDwvdGhlbj4KICAgICAgICAgICAgPGVsc2UgYXNUeXBlPSJ0OlN0cmluZyIgeHNpOnR5cGU9IkFzIj4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNjAiIGxvY2F0b3I9IjU1OjgtNTU6MTEiIHhzaTp0eXBlPSJOdWxsIi8+CiAgICAgICAgICAgIDwvZWxzZT4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgPC9zdGF0ZW1lbnRzPgo8L2xpYnJhcnk+Cg=="^^xsd:base64Binary ]
  ] ) . #