Release 5 Ballot

This page is part of the FHIR Specification (v5.0.0-ballot: R5 Ballot - see ballot notes). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4

Example Library/opioidcds-common (Turtle)

Clinical Decision Support Work GroupMaturity Level: N/AStandards Status: InformativeCompartments: Not linked to any defined compartments

Raw Turtle (+ also see Turtle/RDF Format Specification)

Opioid CDS Common Library

@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 sct: <http://snomed.info/id/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

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

[a fhir:Library;
  fhir:nodeRole fhir:treeRoot;
  fhir:Resource.id [ fhir:value "opioidcds-common"];
  fhir:DomainResource.text [
     fhir:Narrative.status [ fhir:value "generated" ];
     fhir:Narrative.div "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n      <h2>Participants</h2>\n      <table class=\"grid\">\n        <tr>\n          <td>Author</td>\n          <td>Kensaku Kawamoto, MD, PhD, MHS</td>\n        </tr>\n        <tr>\n          <td>Author</td>\n          <td>Bryn Rhodes</td>\n        </tr>\n        <tr>\n          <td>Author</td>\n          <td>Floyd Eisenberg, MD, MPH</td>\n        </tr>\n        <tr>\n          <td>Author</td>\n          <td>Robert McClure, MD, MPH</td>\n        </tr>\n      </table>\n      <h2>Related Artifacts</h2>\n      <table class=\"grid\">\n        <tr>\n          <td>Documentation</td>\n          <td>CDC guideline for prescribing opioids for chronic pain</td>\n          <td>\n            <p>\n              <code>\n                <a href=\"https://guidelines.gov/summaries/summary/50153/cdc-guideline-for-prescribing-opioids-for-chronic-pain---united-states-2016#420\">https://guidelines.gov/summaries/summary/50153/cdc-guideline-for-prescribing-opioids-for-chronic-pain---united-states-2016#420</a>\n              </code> (\n              <code/>)\n            </p>\n          </td>\n        </tr>\n        <tr>\n          <td>Depends On</td>\n          <td/>\n          <td>\n            <code>http://example.org/fhir/Library/omtk-logic</code>\n          </td>\n        </tr>\n        <tr>\n          <td>Documentation</td>\n          <td>MME Conversion Tables</td>\n          <td>\n            <p>\n              <code>\n                <a href=\"https://www.cdc.gov/drugoverdose/pdf/calculating_total_daily_dose-a.pdf\">https://www.cdc.gov/drugoverdose/pdf/calculating_total_daily_dose-a.pdf</a>\n              </code> (\n              <code/>)\n            </p>\n          </td>\n        </tr>\n      </table>\n      <h2>Contents</h2>\n      <p>\n        <code>application/elm+xml</code>\n      </p>\n      <pre>\n        <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\n&lt;library xmlns=&quot;urn:hl7-org:elm:r1&quot; xmlns:t=&quot;urn:hl7-org:elm-types:r1&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:fhir=&quot;http://hl7.org/fhir&quot; xmlns:qdm43=&quot;urn:healthit-gov:qdm:v4_3&quot; xmlns:qdm53=&quot;urn:healthit-gov:qdm:v5_3&quot; xmlns:a=&quot;urn:hl7-org:cql-annotations:r1&quot;&gt;\n   &lt;identifier id=&quot;OpioidCDS_STU4_Common&quot; version=&quot;0.1.0&quot;/&gt;\n   &lt;schemaIdentifier id=&quot;urn:hl7-org:elm&quot; version=&quot;r1&quot;/&gt;\n   &lt;usings&gt;\n      &lt;def localIdentifier=&quot;System&quot; uri=&quot;urn:hl7-org:elm-types:r1&quot;/&gt;\n      &lt;def localIdentifier=&quot;FHIR&quot; uri=&quot;http://hl7.org/fhir&quot; version=&quot;3.2.0&quot;/&gt;\n   &lt;/usings&gt;\n   &lt;includes&gt;\n      &lt;def localIdentifier=&quot;OMTKLogic&quot; path=&quot;OMTKLogic&quot; version=&quot;0.1.0&quot;/&gt;\n   &lt;/includes&gt;\n   &lt;valueSets&gt;\n      &lt;def name=&quot;Benzodiazepines&quot; id=&quot;benzodiazepines&quot; accessLevel=&quot;Public&quot;/&gt;\n      &lt;def name=&quot;Naloxone&quot; id=&quot;naloxone&quot; accessLevel=&quot;Public&quot;/&gt;\n      &lt;def name=&quot;Ambulatory Abuse Potential Opioids&quot; id=&quot;opioids-abused-in-ambulatory-care&quot; accessLevel=&quot;Public&quot;/&gt;\n      &lt;def name=&quot;End Of Life Opioids&quot; id=&quot;opioids-indicating-end-of-life&quot; accessLevel=&quot;Public&quot;/&gt;\n      &lt;def name=&quot;Long Acting Opioids&quot; id=&quot;long-acting-opioids&quot; accessLevel=&quot;Public&quot;/&gt;\n      &lt;def name=&quot;Illicit Drug Screening&quot; id=&quot;illicit-drug-urine-screening&quot; accessLevel=&quot;Public&quot;/&gt;\n      &lt;def name=&quot;Opioid Drug Screening&quot; id=&quot;opioid-urine-screening&quot; accessLevel=&quot;Public&quot;/&gt;\n      &lt;def name=&quot;Opioids&quot; id=&quot;opioids&quot; accessLevel=&quot;Public&quot;/&gt;\n      &lt;def name=&quot;Codeine Cough Meds&quot; id=&quot;opioids-codeine-cough-meds&quot; accessLevel=&quot;Public&quot;/&gt;\n      &lt;def name=&quot;Short Acting Opioids&quot; id=&quot;short-acting-opioids&quot; accessLevel=&quot;Public&quot;/&gt;\n   &lt;/valueSets&gt;\n   &lt;statements&gt;\n      &lt;def name=&quot;IsForChronicPain&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot;&gt;\n         &lt;expression valueType=&quot;t:Boolean&quot; value=&quot;true&quot; xsi:type=&quot;Literal&quot;/&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;HasMetastaticCancer&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot;&gt;\n         &lt;expression valueType=&quot;t:Boolean&quot; value=&quot;false&quot; xsi:type=&quot;Literal&quot;/&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;ToCode&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot; xsi:type=&quot;FunctionDef&quot;&gt;\n         &lt;expression classType=&quot;t:Code&quot; xsi:type=&quot;Instance&quot;&gt;\n            &lt;element name=&quot;code&quot;&gt;\n               &lt;value path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                  &lt;source path=&quot;code&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source name=&quot;coding&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                  &lt;/source&gt;\n               &lt;/value&gt;\n            &lt;/element&gt;\n            &lt;element name=&quot;system&quot;&gt;\n               &lt;value path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                  &lt;source path=&quot;system&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source name=&quot;coding&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                  &lt;/source&gt;\n               &lt;/value&gt;\n            &lt;/element&gt;\n            &lt;element name=&quot;version&quot;&gt;\n               &lt;value path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                  &lt;source path=&quot;version&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source name=&quot;coding&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                  &lt;/source&gt;\n               &lt;/value&gt;\n            &lt;/element&gt;\n            &lt;element name=&quot;display&quot;&gt;\n               &lt;value path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                  &lt;source path=&quot;display&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source name=&quot;coding&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                  &lt;/source&gt;\n               &lt;/value&gt;\n            &lt;/element&gt;\n         &lt;/expression&gt;\n         &lt;operand name=&quot;coding&quot;&gt;\n            &lt;operandTypeSpecifier name=&quot;fhir:Coding&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n         &lt;/operand&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;ToQuantity&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot; xsi:type=&quot;FunctionDef&quot;&gt;\n         &lt;expression classType=&quot;t:Quantity&quot; xsi:type=&quot;Instance&quot;&gt;\n            &lt;element name=&quot;value&quot;&gt;\n               &lt;value path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                  &lt;source path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source name=&quot;quantity&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                  &lt;/source&gt;\n               &lt;/value&gt;\n            &lt;/element&gt;\n            &lt;element name=&quot;unit&quot;&gt;\n               &lt;value path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                  &lt;source path=&quot;unit&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source name=&quot;quantity&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                  &lt;/source&gt;\n               &lt;/value&gt;\n            &lt;/element&gt;\n         &lt;/expression&gt;\n         &lt;operand name=&quot;quantity&quot;&gt;\n            &lt;operandTypeSpecifier name=&quot;fhir:Quantity&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n         &lt;/operand&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;Prescriptions&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot; xsi:type=&quot;FunctionDef&quot;&gt;\n         &lt;expression xsi:type=&quot;Query&quot;&gt;\n            &lt;source alias=&quot;O&quot;&gt;\n               &lt;expression name=&quot;Orders&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n            &lt;/source&gt;\n            &lt;let identifier=&quot;rxNormCode&quot;&gt;\n               &lt;expression name=&quot;ToCode&quot; xsi:type=&quot;FunctionRef&quot;&gt;\n                  &lt;operand xsi:type=&quot;Indexer&quot;&gt;\n                     &lt;operand path=&quot;coding&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source path=&quot;medication&quot; scope=&quot;O&quot; xsi:type=&quot;Property&quot;/&gt;\n                     &lt;/operand&gt;\n                     &lt;operand valueType=&quot;t:Integer&quot; value=&quot;0&quot; xsi:type=&quot;Literal&quot;/&gt;\n                  &lt;/operand&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;let identifier=&quot;medicationName&quot;&gt;\n               &lt;expression name=&quot;GetMedicationName&quot; libraryName=&quot;OMTKLogic&quot; xsi:type=&quot;FunctionRef&quot;&gt;\n                  &lt;operand name=&quot;rxNormCode&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;let identifier=&quot;dosageInstruction&quot;&gt;\n               &lt;expression xsi:type=&quot;Indexer&quot;&gt;\n                  &lt;operand path=&quot;dosageInstruction&quot; scope=&quot;O&quot; xsi:type=&quot;Property&quot;/&gt;\n                  &lt;operand valueType=&quot;t:Integer&quot; value=&quot;0&quot; xsi:type=&quot;Literal&quot;/&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;let identifier=&quot;repeat&quot;&gt;\n               &lt;expression path=&quot;repeat&quot; xsi:type=&quot;Property&quot;&gt;\n                  &lt;source path=&quot;timing&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source name=&quot;dosageInstruction&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                  &lt;/source&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;let identifier=&quot;frequency&quot;&gt;\n               &lt;expression xsi:type=&quot;Coalesce&quot;&gt;\n                  &lt;operand path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source path=&quot;frequencyMax&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source name=&quot;repeat&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                     &lt;/source&gt;\n                  &lt;/operand&gt;\n                  &lt;operand path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source path=&quot;frequency&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source name=&quot;repeat&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                     &lt;/source&gt;\n                  &lt;/operand&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;let identifier=&quot;period&quot;&gt;\n               &lt;expression classType=&quot;t:Quantity&quot; xsi:type=&quot;Instance&quot;&gt;\n                  &lt;element name=&quot;value&quot;&gt;\n                     &lt;value path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source path=&quot;period&quot; xsi:type=&quot;Property&quot;&gt;\n                           &lt;source name=&quot;repeat&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                        &lt;/source&gt;\n                     &lt;/value&gt;\n                  &lt;/element&gt;\n                  &lt;element name=&quot;unit&quot;&gt;\n                     &lt;value path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source path=&quot;periodUnit&quot; xsi:type=&quot;Property&quot;&gt;\n                           &lt;source name=&quot;repeat&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                        &lt;/source&gt;\n                     &lt;/value&gt;\n                  &lt;/element&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;let identifier=&quot;doseDescription&quot;&gt;\n               &lt;expression xsi:type=&quot;Coalesce&quot;&gt;\n                  &lt;operand xsi:type=&quot;ToList&quot;&gt;\n                     &lt;operand xsi:type=&quot;If&quot;&gt;\n                        &lt;condition asType=&quot;t:Boolean&quot; xsi:type=&quot;As&quot;&gt;\n                           &lt;operand xsi:type=&quot;Is&quot;&gt;\n                              &lt;operand path=&quot;dose&quot; xsi:type=&quot;Property&quot;&gt;\n                                 &lt;source name=&quot;dosageInstruction&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                              &lt;/operand&gt;\n                              &lt;isTypeSpecifier name=&quot;fhir:Range&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n                           &lt;/operand&gt;\n                        &lt;/condition&gt;\n                        &lt;then xsi:type=&quot;Concatenate&quot;&gt;\n                           &lt;operand xsi:type=&quot;Concatenate&quot;&gt;\n                              &lt;operand xsi:type=&quot;Concatenate&quot;&gt;\n                                 &lt;operand xsi:type=&quot;ToString&quot;&gt;\n                                    &lt;operand name=&quot;ToQuantity&quot; xsi:type=&quot;FunctionRef&quot;&gt;\n                                       &lt;operand path=&quot;low&quot; xsi:type=&quot;Property&quot;&gt;\n                                          &lt;source path=&quot;dose&quot; xsi:type=&quot;Property&quot;&gt;\n                                             &lt;source name=&quot;dosageInstruction&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                                          &lt;/source&gt;\n                                       &lt;/operand&gt;\n                                    &lt;/operand&gt;\n                                 &lt;/operand&gt;\n                                 &lt;operand valueType=&quot;t:String&quot; value=&quot;-&quot; xsi:type=&quot;Literal&quot;/&gt;\n                              &lt;/operand&gt;\n                              &lt;operand xsi:type=&quot;ToString&quot;&gt;\n                                 &lt;operand name=&quot;ToQuantity&quot; xsi:type=&quot;FunctionRef&quot;&gt;\n                                    &lt;operand path=&quot;high&quot; xsi:type=&quot;Property&quot;&gt;\n                                       &lt;source path=&quot;dose&quot; xsi:type=&quot;Property&quot;&gt;\n                                          &lt;source name=&quot;dosageInstruction&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                                       &lt;/source&gt;\n                                    &lt;/operand&gt;\n                                 &lt;/operand&gt;\n                              &lt;/operand&gt;\n                           &lt;/operand&gt;\n                           &lt;operand path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                              &lt;source path=&quot;unit&quot; xsi:type=&quot;Property&quot;&gt;\n                                 &lt;source path=&quot;high&quot; xsi:type=&quot;Property&quot;&gt;\n                                    &lt;source path=&quot;dose&quot; xsi:type=&quot;Property&quot;&gt;\n                                       &lt;source name=&quot;dosageInstruction&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                                    &lt;/source&gt;\n                                 &lt;/source&gt;\n                              &lt;/source&gt;\n                           &lt;/operand&gt;\n                        &lt;/then&gt;\n                        &lt;else xsi:type=&quot;ToString&quot;&gt;\n                           &lt;operand name=&quot;ToQuantity&quot; xsi:type=&quot;FunctionRef&quot;&gt;\n                              &lt;operand asType=&quot;fhir:Quantity&quot; xsi:type=&quot;As&quot;&gt;\n                                 &lt;operand path=&quot;dose&quot; xsi:type=&quot;Property&quot;&gt;\n                                    &lt;source name=&quot;dosageInstruction&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                                 &lt;/operand&gt;\n                              &lt;/operand&gt;\n                           &lt;/operand&gt;\n                        &lt;/else&gt;\n                     &lt;/operand&gt;\n                  &lt;/operand&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;let identifier=&quot;frequencyDescription&quot;&gt;\n               &lt;expression xsi:type=&quot;Concatenate&quot;&gt;\n                  &lt;operand xsi:type=&quot;ToString&quot;&gt;\n                     &lt;operand path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source path=&quot;frequency&quot; xsi:type=&quot;Property&quot;&gt;\n                           &lt;source path=&quot;repeat&quot; xsi:type=&quot;Property&quot;&gt;\n                              &lt;source path=&quot;timing&quot; xsi:type=&quot;Property&quot;&gt;\n                                 &lt;source name=&quot;dosageInstruction&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                              &lt;/source&gt;\n                           &lt;/source&gt;\n                        &lt;/source&gt;\n                     &lt;/operand&gt;\n                  &lt;/operand&gt;\n                  &lt;operand xsi:type=&quot;Coalesce&quot;&gt;\n                     &lt;operand xsi:type=&quot;Concatenate&quot;&gt;\n                        &lt;operand valueType=&quot;t:String&quot; value=&quot;-&quot; xsi:type=&quot;Literal&quot;/&gt;\n                        &lt;operand xsi:type=&quot;ToString&quot;&gt;\n                           &lt;operand path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                              &lt;source path=&quot;frequencyMax&quot; xsi:type=&quot;Property&quot;&gt;\n                                 &lt;source path=&quot;repeat&quot; xsi:type=&quot;Property&quot;&gt;\n                                    &lt;source path=&quot;timing&quot; xsi:type=&quot;Property&quot;&gt;\n                                       &lt;source name=&quot;dosageInstruction&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                                    &lt;/source&gt;\n                                 &lt;/source&gt;\n                              &lt;/source&gt;\n                           &lt;/operand&gt;\n                        &lt;/operand&gt;\n                     &lt;/operand&gt;\n                     &lt;operand valueType=&quot;t:String&quot; value=&quot;&quot; xsi:type=&quot;Literal&quot;/&gt;\n                  &lt;/operand&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;return&gt;\n               &lt;expression xsi:type=&quot;Tuple&quot;&gt;\n                  &lt;element name=&quot;rxNormCode&quot;&gt;\n                     &lt;value name=&quot;rxNormCode&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                  &lt;/element&gt;\n                  &lt;element name=&quot;isDraft&quot;&gt;\n                     &lt;value xsi:type=&quot;Equal&quot;&gt;\n                        &lt;operand path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                           &lt;source path=&quot;status&quot; scope=&quot;O&quot; xsi:type=&quot;Property&quot;/&gt;\n                        &lt;/operand&gt;\n                        &lt;operand valueType=&quot;t:String&quot; value=&quot;draft&quot; xsi:type=&quot;Literal&quot;/&gt;\n                     &lt;/value&gt;\n                  &lt;/element&gt;\n                  &lt;element name=&quot;isPRN&quot;&gt;\n                     &lt;value path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source path=&quot;asNeeded&quot; xsi:type=&quot;Property&quot;&gt;\n                           &lt;source name=&quot;dosageInstruction&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                        &lt;/source&gt;\n                     &lt;/value&gt;\n                  &lt;/element&gt;\n                  &lt;element name=&quot;prescription&quot;&gt;\n                     &lt;value xsi:type=&quot;If&quot;&gt;\n                        &lt;condition asType=&quot;t:Boolean&quot; xsi:type=&quot;As&quot;&gt;\n                           &lt;operand xsi:type=&quot;Not&quot;&gt;\n                              &lt;operand xsi:type=&quot;IsNull&quot;&gt;\n                                 &lt;operand path=&quot;text&quot; xsi:type=&quot;Property&quot;&gt;\n                                    &lt;source name=&quot;dosageInstruction&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                                 &lt;/operand&gt;\n                              &lt;/operand&gt;\n                           &lt;/operand&gt;\n                        &lt;/condition&gt;\n                        &lt;then xsi:type=&quot;Concatenate&quot;&gt;\n                           &lt;operand xsi:type=&quot;Concatenate&quot;&gt;\n                              &lt;operand name=&quot;medicationName&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                              &lt;operand valueType=&quot;t:String&quot; value=&quot; &quot; xsi:type=&quot;Literal&quot;/&gt;\n                           &lt;/operand&gt;\n                           &lt;operand path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                              &lt;source path=&quot;text&quot; xsi:type=&quot;Property&quot;&gt;\n                                 &lt;source name=&quot;dosageInstruction&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                              &lt;/source&gt;\n                           &lt;/operand&gt;\n                        &lt;/then&gt;\n                        &lt;else xsi:type=&quot;Concatenate&quot;&gt;\n                           &lt;operand xsi:type=&quot;Concatenate&quot;&gt;\n                              &lt;operand xsi:type=&quot;Concatenate&quot;&gt;\n                                 &lt;operand xsi:type=&quot;Concatenate&quot;&gt;\n                                    &lt;operand xsi:type=&quot;Concatenate&quot;&gt;\n                                       &lt;operand name=&quot;medicationName&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                                       &lt;operand valueType=&quot;t:String&quot; value=&quot; &quot; xsi:type=&quot;Literal&quot;/&gt;\n                                    &lt;/operand&gt;\n                                    &lt;operand name=&quot;doseDescription&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                                 &lt;/operand&gt;\n                                 &lt;operand valueType=&quot;t:String&quot; value=&quot; q&quot; xsi:type=&quot;Literal&quot;/&gt;\n                              &lt;/operand&gt;\n                              &lt;operand name=&quot;frequencyDescription&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                           &lt;/operand&gt;\n                           &lt;operand xsi:type=&quot;If&quot;&gt;\n                              &lt;condition asType=&quot;t:Boolean&quot; xsi:type=&quot;As&quot;&gt;\n                                 &lt;operand path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                                    &lt;source path=&quot;asNeeded&quot; xsi:type=&quot;Property&quot;&gt;\n                                       &lt;source name=&quot;dosageInstruction&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                                    &lt;/source&gt;\n                                 &lt;/operand&gt;\n                              &lt;/condition&gt;\n                              &lt;then valueType=&quot;t:String&quot; value=&quot; PRN&quot; xsi:type=&quot;Literal&quot;/&gt;\n                              &lt;else valueType=&quot;t:String&quot; value=&quot;&quot; xsi:type=&quot;Literal&quot;/&gt;\n                           &lt;/operand&gt;\n                        &lt;/else&gt;\n                     &lt;/value&gt;\n                  &lt;/element&gt;\n                  &lt;element name=&quot;dose&quot;&gt;\n                     &lt;value xsi:type=&quot;If&quot;&gt;\n                        &lt;condition asType=&quot;t:Boolean&quot; xsi:type=&quot;As&quot;&gt;\n                           &lt;operand xsi:type=&quot;Is&quot;&gt;\n                              &lt;operand path=&quot;dose&quot; xsi:type=&quot;Property&quot;&gt;\n                                 &lt;source name=&quot;dosageInstruction&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                              &lt;/operand&gt;\n                              &lt;isTypeSpecifier name=&quot;fhir:Range&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n                           &lt;/operand&gt;\n                        &lt;/condition&gt;\n                        &lt;then name=&quot;ToQuantity&quot; xsi:type=&quot;FunctionRef&quot;&gt;\n                           &lt;operand path=&quot;high&quot; xsi:type=&quot;Property&quot;&gt;\n                              &lt;source path=&quot;dose&quot; xsi:type=&quot;Property&quot;&gt;\n                                 &lt;source name=&quot;dosageInstruction&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                              &lt;/source&gt;\n                           &lt;/operand&gt;\n                        &lt;/then&gt;\n                        &lt;else name=&quot;ToQuantity&quot; xsi:type=&quot;FunctionRef&quot;&gt;\n                           &lt;operand asType=&quot;fhir:Quantity&quot; xsi:type=&quot;As&quot;&gt;\n                              &lt;operand path=&quot;dose&quot; xsi:type=&quot;Property&quot;&gt;\n                                 &lt;source name=&quot;dosageInstruction&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                              &lt;/operand&gt;\n                           &lt;/operand&gt;\n                        &lt;/else&gt;\n                     &lt;/value&gt;\n                  &lt;/element&gt;\n                  &lt;element name=&quot;dosesPerDay&quot;&gt;\n                     &lt;value xsi:type=&quot;Coalesce&quot;&gt;\n                        &lt;operand name=&quot;ToDaily&quot; libraryName=&quot;OMTKLogic&quot; xsi:type=&quot;FunctionRef&quot;&gt;\n                           &lt;operand name=&quot;frequency&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                           &lt;operand name=&quot;period&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                        &lt;/operand&gt;\n                        &lt;operand valueType=&quot;t:Decimal&quot; value=&quot;1.0&quot; xsi:type=&quot;Literal&quot;/&gt;\n                     &lt;/value&gt;\n                  &lt;/element&gt;\n               &lt;/expression&gt;\n            &lt;/return&gt;\n         &lt;/expression&gt;\n         &lt;operand name=&quot;Orders&quot;&gt;\n            &lt;operandTypeSpecifier xsi:type=&quot;ListTypeSpecifier&quot;&gt;\n               &lt;elementType name=&quot;fhir:MedicationRequest&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n            &lt;/operandTypeSpecifier&gt;\n         &lt;/operand&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;MME&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot; xsi:type=&quot;FunctionDef&quot;&gt;\n         &lt;expression xsi:type=&quot;Query&quot;&gt;\n            &lt;source alias=&quot;P&quot;&gt;\n               &lt;expression name=&quot;Prescriptions&quot; xsi:type=&quot;FunctionRef&quot;&gt;\n                  &lt;operand name=&quot;prescriptions&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n               &lt;/expression&gt;\n            &lt;/source&gt;\n            &lt;let identifier=&quot;mme&quot;&gt;\n               &lt;expression xsi:type=&quot;SingletonFrom&quot;&gt;\n                  &lt;operand name=&quot;CalculateMMEs&quot; libraryName=&quot;OMTKLogic&quot; xsi:type=&quot;FunctionRef&quot;&gt;\n                     &lt;operand xsi:type=&quot;List&quot;&gt;\n                        &lt;element xsi:type=&quot;Tuple&quot;&gt;\n                           &lt;element name=&quot;rxNormCode&quot;&gt;\n                              &lt;value path=&quot;rxNormCode&quot; scope=&quot;P&quot; xsi:type=&quot;Property&quot;/&gt;\n                           &lt;/element&gt;\n                           &lt;element name=&quot;doseQuantity&quot;&gt;\n                              &lt;value path=&quot;dose&quot; scope=&quot;P&quot; xsi:type=&quot;Property&quot;/&gt;\n                           &lt;/element&gt;\n                           &lt;element name=&quot;dosesPerDay&quot;&gt;\n                              &lt;value path=&quot;dosesPerDay&quot; scope=&quot;P&quot; xsi:type=&quot;Property&quot;/&gt;\n                           &lt;/element&gt;\n                        &lt;/element&gt;\n                     &lt;/operand&gt;\n                  &lt;/operand&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;return&gt;\n               &lt;expression xsi:type=&quot;Tuple&quot;&gt;\n                  &lt;element name=&quot;rxNormCode&quot;&gt;\n                     &lt;value path=&quot;rxNormCode&quot; scope=&quot;P&quot; xsi:type=&quot;Property&quot;/&gt;\n                  &lt;/element&gt;\n                  &lt;element name=&quot;isDraft&quot;&gt;\n                     &lt;value path=&quot;isDraft&quot; scope=&quot;P&quot; xsi:type=&quot;Property&quot;/&gt;\n                  &lt;/element&gt;\n                  &lt;element name=&quot;isPRN&quot;&gt;\n                     &lt;value path=&quot;isPRN&quot; scope=&quot;P&quot; xsi:type=&quot;Property&quot;/&gt;\n                  &lt;/element&gt;\n                  &lt;element name=&quot;prescription&quot;&gt;\n                     &lt;value path=&quot;prescription&quot; scope=&quot;P&quot; xsi:type=&quot;Property&quot;/&gt;\n                  &lt;/element&gt;\n                  &lt;element name=&quot;dailyDose&quot;&gt;\n                     &lt;value path=&quot;dailyDoseDescription&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source name=&quot;mme&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                     &lt;/value&gt;\n                  &lt;/element&gt;\n                  &lt;element name=&quot;conversionFactor&quot;&gt;\n                     &lt;value path=&quot;conversionFactor&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source name=&quot;mme&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                     &lt;/value&gt;\n                  &lt;/element&gt;\n                  &lt;element name=&quot;mme&quot;&gt;\n                     &lt;value path=&quot;mme&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source name=&quot;mme&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                     &lt;/value&gt;\n                  &lt;/element&gt;\n               &lt;/expression&gt;\n            &lt;/return&gt;\n         &lt;/expression&gt;\n         &lt;operand name=&quot;prescriptions&quot;&gt;\n            &lt;operandTypeSpecifier xsi:type=&quot;ListTypeSpecifier&quot;&gt;\n               &lt;elementType name=&quot;fhir:MedicationRequest&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n            &lt;/operandTypeSpecifier&gt;\n         &lt;/operand&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;TotalMME&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot; xsi:type=&quot;FunctionDef&quot;&gt;\n         &lt;expression classType=&quot;t:Quantity&quot; xsi:type=&quot;Instance&quot;&gt;\n            &lt;element name=&quot;value&quot;&gt;\n               &lt;value xsi:type=&quot;Sum&quot;&gt;\n                  &lt;source xsi:type=&quot;Query&quot;&gt;\n                     &lt;source alias=&quot;M&quot;&gt;\n                        &lt;expression name=&quot;MME&quot; xsi:type=&quot;FunctionRef&quot;&gt;\n                           &lt;operand name=&quot;prescriptions&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                        &lt;/expression&gt;\n                     &lt;/source&gt;\n                     &lt;return&gt;\n                        &lt;expression path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                           &lt;source path=&quot;mme&quot; scope=&quot;M&quot; xsi:type=&quot;Property&quot;/&gt;\n                        &lt;/expression&gt;\n                     &lt;/return&gt;\n                  &lt;/source&gt;\n               &lt;/value&gt;\n            &lt;/element&gt;\n            &lt;element name=&quot;unit&quot;&gt;\n               &lt;value valueType=&quot;t:String&quot; value=&quot;mg/d&quot; xsi:type=&quot;Literal&quot;/&gt;\n            &lt;/element&gt;\n         &lt;/expression&gt;\n         &lt;operand name=&quot;prescriptions&quot;&gt;\n            &lt;operandTypeSpecifier xsi:type=&quot;ListTypeSpecifier&quot;&gt;\n               &lt;elementType name=&quot;fhir:MedicationRequest&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n            &lt;/operandTypeSpecifier&gt;\n         &lt;/operand&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;GetPeriodDays&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot; xsi:type=&quot;FunctionDef&quot;&gt;\n         &lt;expression xsi:type=&quot;Case&quot;&gt;\n            &lt;caseItem&gt;\n               &lt;when xsi:type=&quot;StartsWith&quot;&gt;\n                  &lt;operand name=&quot;value&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                  &lt;operand valueType=&quot;t:String&quot; value=&quot;year&quot; xsi:type=&quot;Literal&quot;/&gt;\n               &lt;/when&gt;\n               &lt;then valueType=&quot;t:Decimal&quot; value=&quot;365.0&quot; xsi:type=&quot;Literal&quot;/&gt;\n            &lt;/caseItem&gt;\n            &lt;caseItem&gt;\n               &lt;when xsi:type=&quot;StartsWith&quot;&gt;\n                  &lt;operand name=&quot;value&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                  &lt;operand valueType=&quot;t:String&quot; value=&quot;month&quot; xsi:type=&quot;Literal&quot;/&gt;\n               &lt;/when&gt;\n               &lt;then valueType=&quot;t:Decimal&quot; value=&quot;30.0&quot; xsi:type=&quot;Literal&quot;/&gt;\n            &lt;/caseItem&gt;\n            &lt;caseItem&gt;\n               &lt;when xsi:type=&quot;StartsWith&quot;&gt;\n                  &lt;operand name=&quot;value&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                  &lt;operand valueType=&quot;t:String&quot; value=&quot;hour&quot; xsi:type=&quot;Literal&quot;/&gt;\n               &lt;/when&gt;\n               &lt;then xsi:type=&quot;Divide&quot;&gt;\n                  &lt;operand valueType=&quot;t:Decimal&quot; value=&quot;1.0&quot; xsi:type=&quot;Literal&quot;/&gt;\n                  &lt;operand valueType=&quot;t:Decimal&quot; value=&quot;24.0&quot; xsi:type=&quot;Literal&quot;/&gt;\n               &lt;/then&gt;\n            &lt;/caseItem&gt;\n            &lt;caseItem&gt;\n               &lt;when xsi:type=&quot;StartsWith&quot;&gt;\n                  &lt;operand name=&quot;value&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                  &lt;operand valueType=&quot;t:String&quot; value=&quot;minute&quot; xsi:type=&quot;Literal&quot;/&gt;\n               &lt;/when&gt;\n               &lt;then xsi:type=&quot;Multiply&quot;&gt;\n                  &lt;operand xsi:type=&quot;Divide&quot;&gt;\n                     &lt;operand valueType=&quot;t:Decimal&quot; value=&quot;1.0&quot; xsi:type=&quot;Literal&quot;/&gt;\n                     &lt;operand valueType=&quot;t:Decimal&quot; value=&quot;24.0&quot; xsi:type=&quot;Literal&quot;/&gt;\n                  &lt;/operand&gt;\n                  &lt;operand valueType=&quot;t:Decimal&quot; value=&quot;60.0&quot; xsi:type=&quot;Literal&quot;/&gt;\n               &lt;/then&gt;\n            &lt;/caseItem&gt;\n            &lt;else valueType=&quot;t:Decimal&quot; value=&quot;1.0&quot; xsi:type=&quot;Literal&quot;/&gt;\n         &lt;/expression&gt;\n         &lt;operand name=&quot;value&quot;&gt;\n            &lt;operandTypeSpecifier name=&quot;t:String&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n         &lt;/operand&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;GetDurationInDays&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot; xsi:type=&quot;FunctionDef&quot;&gt;\n         &lt;expression xsi:type=&quot;Case&quot;&gt;\n            &lt;caseItem&gt;\n               &lt;when xsi:type=&quot;StartsWith&quot;&gt;\n                  &lt;operand path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source path=&quot;unit&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source name=&quot;value&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                     &lt;/source&gt;\n                  &lt;/operand&gt;\n                  &lt;operand valueType=&quot;t:String&quot; value=&quot;year&quot; xsi:type=&quot;Literal&quot;/&gt;\n               &lt;/when&gt;\n               &lt;then xsi:type=&quot;Multiply&quot;&gt;\n                  &lt;operand path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source name=&quot;value&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                     &lt;/source&gt;\n                  &lt;/operand&gt;\n                  &lt;operand valueType=&quot;t:Decimal&quot; value=&quot;365.0&quot; xsi:type=&quot;Literal&quot;/&gt;\n               &lt;/then&gt;\n            &lt;/caseItem&gt;\n            &lt;caseItem&gt;\n               &lt;when xsi:type=&quot;StartsWith&quot;&gt;\n                  &lt;operand path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source path=&quot;unit&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source name=&quot;value&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                     &lt;/source&gt;\n                  &lt;/operand&gt;\n                  &lt;operand valueType=&quot;t:String&quot; value=&quot;month&quot; xsi:type=&quot;Literal&quot;/&gt;\n               &lt;/when&gt;\n               &lt;then xsi:type=&quot;Multiply&quot;&gt;\n                  &lt;operand path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source name=&quot;value&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                     &lt;/source&gt;\n                  &lt;/operand&gt;\n                  &lt;operand valueType=&quot;t:Decimal&quot; value=&quot;30.0&quot; xsi:type=&quot;Literal&quot;/&gt;\n               &lt;/then&gt;\n            &lt;/caseItem&gt;\n            &lt;else path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n               &lt;source path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                  &lt;source name=&quot;value&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n               &lt;/source&gt;\n            &lt;/else&gt;\n         &lt;/expression&gt;\n         &lt;operand name=&quot;value&quot;&gt;\n            &lt;operandTypeSpecifier name=&quot;fhir:Duration&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n         &lt;/operand&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;ProbableDaysInRange&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot; xsi:type=&quot;FunctionDef&quot;&gt;\n         &lt;expression xsi:type=&quot;Query&quot;&gt;\n            &lt;source alias=&quot;orders&quot;&gt;\n               &lt;expression name=&quot;Orders&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n            &lt;/source&gt;\n            &lt;let identifier=&quot;frequency&quot;&gt;\n               &lt;expression path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                  &lt;source path=&quot;frequency&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source path=&quot;repeat&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source path=&quot;timing&quot; xsi:type=&quot;Property&quot;&gt;\n                           &lt;source xsi:type=&quot;Indexer&quot;&gt;\n                              &lt;operand path=&quot;dosageInstruction&quot; scope=&quot;orders&quot; xsi:type=&quot;Property&quot;/&gt;\n                              &lt;operand valueType=&quot;t:Integer&quot; value=&quot;0&quot; xsi:type=&quot;Literal&quot;/&gt;\n                           &lt;/source&gt;\n                        &lt;/source&gt;\n                     &lt;/source&gt;\n                  &lt;/source&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;let identifier=&quot;period&quot;&gt;\n               &lt;expression path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                  &lt;source path=&quot;period&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source path=&quot;repeat&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source path=&quot;timing&quot; xsi:type=&quot;Property&quot;&gt;\n                           &lt;source xsi:type=&quot;Indexer&quot;&gt;\n                              &lt;operand path=&quot;dosageInstruction&quot; scope=&quot;orders&quot; xsi:type=&quot;Property&quot;/&gt;\n                              &lt;operand valueType=&quot;t:Integer&quot; value=&quot;0&quot; xsi:type=&quot;Literal&quot;/&gt;\n                           &lt;/source&gt;\n                        &lt;/source&gt;\n                     &lt;/source&gt;\n                  &lt;/source&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;let identifier=&quot;periodDays&quot;&gt;\n               &lt;expression name=&quot;GetPeriodDays&quot; xsi:type=&quot;FunctionRef&quot;&gt;\n                  &lt;operand path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source path=&quot;periodUnit&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source path=&quot;repeat&quot; xsi:type=&quot;Property&quot;&gt;\n                           &lt;source path=&quot;timing&quot; xsi:type=&quot;Property&quot;&gt;\n                              &lt;source xsi:type=&quot;Indexer&quot;&gt;\n                                 &lt;operand path=&quot;dosageInstruction&quot; scope=&quot;orders&quot; xsi:type=&quot;Property&quot;/&gt;\n                                 &lt;operand valueType=&quot;t:Integer&quot; value=&quot;0&quot; xsi:type=&quot;Literal&quot;/&gt;\n                              &lt;/source&gt;\n                           &lt;/source&gt;\n                        &lt;/source&gt;\n                     &lt;/source&gt;\n                  &lt;/operand&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;let identifier=&quot;dosesPerDay&quot;&gt;\n               &lt;expression xsi:type=&quot;If&quot;&gt;\n                  &lt;condition asType=&quot;t:Boolean&quot; xsi:type=&quot;As&quot;&gt;\n                     &lt;operand xsi:type=&quot;GreaterOrEqual&quot;&gt;\n                        &lt;operand xsi:type=&quot;Divide&quot;&gt;\n                           &lt;operand xsi:type=&quot;ToDecimal&quot;&gt;\n                              &lt;operand name=&quot;frequency&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                           &lt;/operand&gt;\n                           &lt;operand xsi:type=&quot;Multiply&quot;&gt;\n                              &lt;operand name=&quot;period&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                              &lt;operand name=&quot;periodDays&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                           &lt;/operand&gt;\n                        &lt;/operand&gt;\n                        &lt;operand valueType=&quot;t:Decimal&quot; value=&quot;1.0&quot; xsi:type=&quot;Literal&quot;/&gt;\n                     &lt;/operand&gt;\n                  &lt;/condition&gt;\n                  &lt;then valueType=&quot;t:Decimal&quot; value=&quot;1.0&quot; xsi:type=&quot;Literal&quot;/&gt;\n                  &lt;else xsi:type=&quot;Divide&quot;&gt;\n                     &lt;operand xsi:type=&quot;ToDecimal&quot;&gt;\n                        &lt;operand name=&quot;frequency&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                     &lt;/operand&gt;\n                     &lt;operand xsi:type=&quot;Multiply&quot;&gt;\n                        &lt;operand name=&quot;period&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                        &lt;operand name=&quot;periodDays&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                     &lt;/operand&gt;\n                  &lt;/else&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;let identifier=&quot;repeat&quot;&gt;\n               &lt;expression path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                  &lt;source path=&quot;numberOfRepeatsAllowed&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source path=&quot;dispenseRequest&quot; scope=&quot;orders&quot; xsi:type=&quot;Property&quot;/&gt;\n                  &lt;/source&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;let identifier=&quot;supplyDuration&quot;&gt;\n               &lt;expression name=&quot;GetDurationInDays&quot; xsi:type=&quot;FunctionRef&quot;&gt;\n                  &lt;operand path=&quot;expectedSupplyDuration&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source path=&quot;dispenseRequest&quot; scope=&quot;orders&quot; xsi:type=&quot;Property&quot;/&gt;\n                  &lt;/operand&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;let identifier=&quot;validityPeriod&quot;&gt;\n               &lt;expression precision=&quot;Day&quot; xsi:type=&quot;DurationBetween&quot;&gt;\n                  &lt;operand path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source path=&quot;start&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source path=&quot;validityPeriod&quot; xsi:type=&quot;Property&quot;&gt;\n                           &lt;source path=&quot;dispenseRequest&quot; scope=&quot;orders&quot; xsi:type=&quot;Property&quot;/&gt;\n                        &lt;/source&gt;\n                     &lt;/source&gt;\n                  &lt;/operand&gt;\n                  &lt;operand xsi:type=&quot;Today&quot;/&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;let identifier=&quot;endDifference&quot;&gt;\n               &lt;expression xsi:type=&quot;If&quot;&gt;\n                  &lt;condition asType=&quot;t:Boolean&quot; xsi:type=&quot;As&quot;&gt;\n                     &lt;operand xsi:type=&quot;Less&quot;&gt;\n                        &lt;operand path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                           &lt;source path=&quot;end&quot; xsi:type=&quot;Property&quot;&gt;\n                              &lt;source path=&quot;validityPeriod&quot; xsi:type=&quot;Property&quot;&gt;\n                                 &lt;source path=&quot;dispenseRequest&quot; scope=&quot;orders&quot; xsi:type=&quot;Property&quot;/&gt;\n                              &lt;/source&gt;\n                           &lt;/source&gt;\n                        &lt;/operand&gt;\n                        &lt;operand xsi:type=&quot;Today&quot;/&gt;\n                     &lt;/operand&gt;\n                  &lt;/condition&gt;\n                  &lt;then precision=&quot;Day&quot; xsi:type=&quot;DurationBetween&quot;&gt;\n                     &lt;operand path=&quot;value&quot; xsi:type=&quot;Property&quot;&gt;\n                        &lt;source path=&quot;end&quot; xsi:type=&quot;Property&quot;&gt;\n                           &lt;source path=&quot;validityPeriod&quot; xsi:type=&quot;Property&quot;&gt;\n                              &lt;source path=&quot;dispenseRequest&quot; scope=&quot;orders&quot; xsi:type=&quot;Property&quot;/&gt;\n                           &lt;/source&gt;\n                        &lt;/source&gt;\n                     &lt;/operand&gt;\n                     &lt;operand xsi:type=&quot;Today&quot;/&gt;\n                  &lt;/then&gt;\n                  &lt;else valueType=&quot;t:Integer&quot; value=&quot;0&quot; xsi:type=&quot;Literal&quot;/&gt;\n               &lt;/expression&gt;\n            &lt;/let&gt;\n            &lt;return&gt;\n               &lt;expression xsi:type=&quot;GreaterOrEqual&quot;&gt;\n                  &lt;operand xsi:type=&quot;Multiply&quot;&gt;\n                     &lt;operand xsi:type=&quot;Multiply&quot;&gt;\n                        &lt;operand name=&quot;dosesPerDay&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                        &lt;operand xsi:type=&quot;Divide&quot;&gt;\n                           &lt;operand xsi:type=&quot;Multiply&quot;&gt;\n                              &lt;operand xsi:type=&quot;ToDecimal&quot;&gt;\n                                 &lt;operand name=&quot;repeat&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                              &lt;/operand&gt;\n                              &lt;operand name=&quot;supplyDuration&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                           &lt;/operand&gt;\n                           &lt;operand xsi:type=&quot;ToDecimal&quot;&gt;\n                              &lt;operand name=&quot;validityPeriod&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                           &lt;/operand&gt;\n                        &lt;/operand&gt;\n                     &lt;/operand&gt;\n                     &lt;operand xsi:type=&quot;ToDecimal&quot;&gt;\n                        &lt;operand xsi:type=&quot;Subtract&quot;&gt;\n                           &lt;operand name=&quot;daysPast&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                           &lt;operand name=&quot;endDifference&quot; xsi:type=&quot;QueryLetRef&quot;/&gt;\n                        &lt;/operand&gt;\n                     &lt;/operand&gt;\n                  &lt;/operand&gt;\n                  &lt;operand xsi:type=&quot;ToDecimal&quot;&gt;\n                     &lt;operand name=&quot;numDaysInDaysPast&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n                  &lt;/operand&gt;\n               &lt;/expression&gt;\n            &lt;/return&gt;\n         &lt;/expression&gt;\n         &lt;operand name=&quot;Orders&quot;&gt;\n            &lt;operandTypeSpecifier xsi:type=&quot;ListTypeSpecifier&quot;&gt;\n               &lt;elementType name=&quot;fhir:MedicationRequest&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n            &lt;/operandTypeSpecifier&gt;\n         &lt;/operand&gt;\n         &lt;operand name=&quot;daysPast&quot;&gt;\n            &lt;operandTypeSpecifier name=&quot;t:Integer&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n         &lt;/operand&gt;\n         &lt;operand name=&quot;numDaysInDaysPast&quot;&gt;\n            &lt;operandTypeSpecifier name=&quot;t:Integer&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n         &lt;/operand&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;IsNaloxone&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot; xsi:type=&quot;FunctionDef&quot;&gt;\n         &lt;expression xsi:type=&quot;InValueSet&quot;&gt;\n            &lt;code name=&quot;rxNormCode&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n            &lt;valueset name=&quot;Naloxone&quot;/&gt;\n         &lt;/expression&gt;\n         &lt;operand name=&quot;rxNormCode&quot;&gt;\n            &lt;operandTypeSpecifier name=&quot;t:Code&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n         &lt;/operand&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;IsBenzodiazepine&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot; xsi:type=&quot;FunctionDef&quot;&gt;\n         &lt;expression xsi:type=&quot;InValueSet&quot;&gt;\n            &lt;code name=&quot;rxNormCode&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n            &lt;valueset name=&quot;Benzodiazepines&quot;/&gt;\n         &lt;/expression&gt;\n         &lt;operand name=&quot;rxNormCode&quot;&gt;\n            &lt;operandTypeSpecifier name=&quot;t:Code&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n         &lt;/operand&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;IsOpioidWithAmbulatoryAbusePotential&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot; xsi:type=&quot;FunctionDef&quot;&gt;\n         &lt;expression xsi:type=&quot;InValueSet&quot;&gt;\n            &lt;code name=&quot;rxNormCode&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n            &lt;valueset name=&quot;Ambulatory Abuse Potential Opioids&quot;/&gt;\n         &lt;/expression&gt;\n         &lt;operand name=&quot;rxNormCode&quot;&gt;\n            &lt;operandTypeSpecifier name=&quot;t:Code&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n         &lt;/operand&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;IsLongActingOpioid&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot; xsi:type=&quot;FunctionDef&quot;&gt;\n         &lt;expression xsi:type=&quot;InValueSet&quot;&gt;\n            &lt;code name=&quot;rxNormCode&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n            &lt;valueset name=&quot;Long Acting Opioids&quot;/&gt;\n         &lt;/expression&gt;\n         &lt;operand name=&quot;rxNormCode&quot;&gt;\n            &lt;operandTypeSpecifier name=&quot;t:Code&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n         &lt;/operand&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;IsEndOfLifeOpioid&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot; xsi:type=&quot;FunctionDef&quot;&gt;\n         &lt;expression xsi:type=&quot;InValueSet&quot;&gt;\n            &lt;code name=&quot;rxNormCode&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n            &lt;valueset name=&quot;End Of Life Opioids&quot;/&gt;\n         &lt;/expression&gt;\n         &lt;operand name=&quot;rxNormCode&quot;&gt;\n            &lt;operandTypeSpecifier name=&quot;t:Code&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n         &lt;/operand&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;IsOpioidDrugScreen&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot; xsi:type=&quot;FunctionDef&quot;&gt;\n         &lt;expression xsi:type=&quot;InValueSet&quot;&gt;\n            &lt;code name=&quot;observationCode&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n            &lt;valueset name=&quot;Opioid Drug Screening&quot;/&gt;\n         &lt;/expression&gt;\n         &lt;operand name=&quot;observationCode&quot;&gt;\n            &lt;operandTypeSpecifier name=&quot;t:Code&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n         &lt;/operand&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;IsIllicitDrugScreen&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot; xsi:type=&quot;FunctionDef&quot;&gt;\n         &lt;expression xsi:type=&quot;InValueSet&quot;&gt;\n            &lt;code name=&quot;observationCode&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n            &lt;valueset name=&quot;Illicit Drug Screening&quot;/&gt;\n         &lt;/expression&gt;\n         &lt;operand name=&quot;observationCode&quot;&gt;\n            &lt;operandTypeSpecifier name=&quot;t:Code&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n         &lt;/operand&gt;\n      &lt;/def&gt;\n      &lt;def name=&quot;GetIngredient&quot; context=&quot;Patient&quot; accessLevel=&quot;Public&quot; xsi:type=&quot;FunctionDef&quot;&gt;\n         &lt;expression xsi:type=&quot;Query&quot;&gt;\n            &lt;source alias=&quot;$this&quot;&gt;\n               &lt;expression name=&quot;GetIngredients&quot; libraryName=&quot;OMTKLogic&quot; xsi:type=&quot;FunctionRef&quot;&gt;\n                  &lt;operand name=&quot;rxNormCode&quot; xsi:type=&quot;OperandRef&quot;/&gt;\n               &lt;/expression&gt;\n            &lt;/source&gt;\n            &lt;where xsi:type=&quot;Not&quot;&gt;\n               &lt;operand xsi:type=&quot;IsNull&quot;&gt;\n                  &lt;operand path=&quot;ingredientName&quot; xsi:type=&quot;Property&quot;&gt;\n                     &lt;source name=&quot;$this&quot; xsi:type=&quot;AliasRef&quot;/&gt;\n                  &lt;/operand&gt;\n               &lt;/operand&gt;\n            &lt;/where&gt;\n            &lt;return&gt;\n               &lt;expression path=&quot;ingredientName&quot; xsi:type=&quot;Property&quot;&gt;\n                  &lt;source name=&quot;$this&quot; xsi:type=&quot;AliasRef&quot;/&gt;\n               &lt;/expression&gt;\n            &lt;/return&gt;\n         &lt;/expression&gt;\n         &lt;operand name=&quot;rxNormCode&quot;&gt;\n            &lt;operandTypeSpecifier name=&quot;t:Code&quot; xsi:type=&quot;NamedTypeSpecifier&quot;/&gt;\n         &lt;/operand&gt;\n      &lt;/def&gt;\n   &lt;/statements&gt;\n&lt;/library&gt;\n</code>\n      </pre>\n    </div>"
  ];
  fhir:Library.identifier [
     fhir:index 0;
     fhir:Identifier.use [ fhir:value "official" ];
     fhir:Identifier.value [ fhir:value "OpioidCDS_Common" ]
  ];
  fhir:Library.version [ fhir:value "0.1.0"];
  fhir:Library.title [ fhir:value "Opioid CDS Common Logic"];
  fhir:Library.status [ fhir:value "active"];
  fhir:Library.experimental [ fhir:value "false"^^xsd:boolean];
  fhir:Library.type [
     fhir:CodeableConcept.coding [
       fhir:index 0;
       fhir:Coding.system [ fhir:value "http://terminology.hl7.org/CodeSystem/library-type" ];
       fhir:Coding.code [ fhir:value "logic-library" ];
       fhir:Coding.display [ fhir:value "Logic Library" ]
     ]
  ];
  fhir:Library.date [ fhir:value "2018-03-25T13:49:09-06:00"^^xsd:dateTime];
  fhir:Library.publisher [ fhir:value "Centers for Disease Control and Prevention (CDC)"];
  fhir:Library.description [ fhir:value "Common Opioid Decision Support Logic for use in implementing CDC Opioid Prescribing Guidelines."];
  fhir:Library.useContext [
     fhir:index 0;
     fhir:UsageContext.code [
       fhir:Coding.system [ fhir:value "http://terminology.hl7.org/CodeSystem/usage-context-type" ];
       fhir:Coding.code [ fhir:value "focus" ];
       fhir:Coding.display [ fhir:value "Clinical Focus" ]
     ];
     fhir:UsageContext.valueCodeableConcept [
       fhir:CodeableConcept.coding [
         fhir:index 0;
         a sct:182888003;
         fhir:Coding.system [ fhir:value "http://snomed.info/sct" ];
         fhir:Coding.code [ fhir:value "182888003" ];
         fhir:Coding.display [ fhir:value "Medication requested (situation)" ]
       ]
     ]
  ], [
     fhir:index 1;
     fhir:UsageContext.code [
       fhir:Coding.system [ fhir:value "http://terminology.hl7.org/CodeSystem/usage-context-type" ];
       fhir:Coding.code [ fhir:value "focus" ];
       fhir:Coding.display [ fhir:value "Clinical Focus" ]
     ];
     fhir:UsageContext.valueCodeableConcept [
       fhir:CodeableConcept.coding [
         fhir:index 0;
         a sct:82423001;
         fhir:Coding.system [ fhir:value "http://snomed.info/sct" ];
         fhir:Coding.code [ fhir:value "82423001" ];
         fhir:Coding.display [ fhir:value "Chronic pain (finding)" ]
       ]
     ]
  ];
  fhir:Library.jurisdiction [
     fhir:index 0;
     fhir:CodeableConcept.coding [
       fhir:index 0;
       fhir:Coding.system [ fhir:value "urn:iso:std:iso:3166" ];
       fhir:Coding.code [ fhir:value "US" ];
       fhir:Coding.display [ fhir:value "United States of America" ]
     ]
  ];
  fhir:Library.purpose [ fhir:value "This library contains common logic across recommendations including MME calculations, conversions, and looking up codes in valuesets."];
  fhir:Library.usage [ fhir:value "This library is used for decision support for opioid guideline recommendations when applying PlanDefinitions."];
  fhir:Library.copyright [ fhir:value "© CDC 2016+."];
  fhir:Library.topic [
     fhir:index 0;
     fhir:CodeableConcept.text [ fhir:value "Opioid Prescribing" ]
  ];
  fhir:Library.author [
     fhir:index 0;
     fhir:ContactDetail.name [ fhir:value "Kensaku Kawamoto, MD, PhD, MHS" ]
  ], [
     fhir:index 1;
     fhir:ContactDetail.name [ fhir:value "Bryn Rhodes" ]
  ], [
     fhir:index 2;
     fhir:ContactDetail.name [ fhir:value "Floyd Eisenberg, MD, MPH" ]
  ], [
     fhir:index 3;
     fhir:ContactDetail.name [ fhir:value "Robert McClure, MD, MPH" ]
  ];
  fhir:Library.relatedArtifact [
     fhir:index 0;
     fhir:RelatedArtifact.type [ fhir:value "documentation" ];
     fhir:RelatedArtifact.display [ fhir:value "CDC guideline for prescribing opioids for chronic pain" ];
     fhir:RelatedArtifact.document [
       fhir:Attachment.url [ fhir:value "https://guidelines.gov/summaries/summary/50153/cdc-guideline-for-prescribing-opioids-for-chronic-pain---united-states-2016#420" ]
     ]
  ], [
     fhir:index 1;
     fhir:RelatedArtifact.type [ fhir:value "depends-on" ];
     fhir:RelatedArtifact.resource [
       fhir:value "http://example.org/fhir/Library/omtk-logic";
       fhir:link <http://example.org/fhir/Library/omtk-logic>
     ]
  ], [
     fhir:index 2;
     fhir:RelatedArtifact.type [ fhir:value "documentation" ];
     fhir:RelatedArtifact.display [ fhir:value "MME Conversion Tables" ];
     fhir:RelatedArtifact.document [
       fhir:Attachment.url [ fhir:value "https://www.cdc.gov/drugoverdose/pdf/calculating_total_daily_dose-a.pdf" ]
     ]
  ];
  fhir:Library.content [
     fhir:index 0;
     fhir:Attachment.contentType [ fhir:value "application/elm+xml" ];
     fhir:Attachment.data [ fhir:value "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSI+CiAgIDxpZGVudGlmaWVyIGlkPSJPcGlvaWRDRFNfU1RVNF9Db21tb24iIHZlcnNpb249IjAuMS4wIi8+CiAgIDxzY2hlbWFJZGVudGlmaWVyIGlkPSJ1cm46aGw3LW9yZzplbG0iIHZlcnNpb249InIxIi8+CiAgIDx1c2luZ3M+CiAgICAgIDxkZWYgbG9jYWxJZGVudGlmaWVyPSJTeXN0ZW0iIHVyaT0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIi8+CiAgICAgIDxkZWYgbG9jYWxJZGVudGlmaWVyPSJGSElSIiB1cmk9Imh0dHA6Ly9obDcub3JnL2ZoaXIiIHZlcnNpb249IjMuMi4wIi8+CiAgIDwvdXNpbmdzPgogICA8aW5jbHVkZXM+CiAgICAgIDxkZWYgbG9jYWxJZGVudGlmaWVyPSJPTVRLTG9naWMiIHBhdGg9Ik9NVEtMb2dpYyIgdmVyc2lvbj0iMC4xLjAiLz4KICAgPC9pbmNsdWRlcz4KICAgPHZhbHVlU2V0cz4KICAgICAgPGRlZiBuYW1lPSJCZW56b2RpYXplcGluZXMiIGlkPSJiZW56b2RpYXplcGluZXMiIGFjY2Vzc0xldmVsPSJQdWJsaWMiLz4KICAgICAgPGRlZiBuYW1lPSJOYWxveG9uZSIgaWQ9Im5hbG94b25lIiBhY2Nlc3NMZXZlbD0iUHVibGljIi8+CiAgICAgIDxkZWYgbmFtZT0iQW1idWxhdG9yeSBBYnVzZSBQb3RlbnRpYWwgT3Bpb2lkcyIgaWQ9Im9waW9pZHMtYWJ1c2VkLWluLWFtYnVsYXRvcnktY2FyZSIgYWNjZXNzTGV2ZWw9IlB1YmxpYyIvPgogICAgICA8ZGVmIG5hbWU9IkVuZCBPZiBMaWZlIE9waW9pZHMiIGlkPSJvcGlvaWRzLWluZGljYXRpbmctZW5kLW9mLWxpZmUiIGFjY2Vzc0xldmVsPSJQdWJsaWMiLz4KICAgICAgPGRlZiBuYW1lPSJMb25nIEFjdGluZyBPcGlvaWRzIiBpZD0ibG9uZy1hY3Rpbmctb3Bpb2lkcyIgYWNjZXNzTGV2ZWw9IlB1YmxpYyIvPgogICAgICA8ZGVmIG5hbWU9IklsbGljaXQgRHJ1ZyBTY3JlZW5pbmciIGlkPSJpbGxpY2l0LWRydWctdXJpbmUtc2NyZWVuaW5nIiBhY2Nlc3NMZXZlbD0iUHVibGljIi8+CiAgICAgIDxkZWYgbmFtZT0iT3Bpb2lkIERydWcgU2NyZWVuaW5nIiBpZD0ib3Bpb2lkLXVyaW5lLXNjcmVlbmluZyIgYWNjZXNzTGV2ZWw9IlB1YmxpYyIvPgogICAgICA8ZGVmIG5hbWU9Ik9waW9pZHMiIGlkPSJvcGlvaWRzIiBhY2Nlc3NMZXZlbD0iUHVibGljIi8+CiAgICAgIDxkZWYgbmFtZT0iQ29kZWluZSBDb3VnaCBNZWRzIiBpZD0ib3Bpb2lkcy1jb2RlaW5lLWNvdWdoLW1lZHMiIGFjY2Vzc0xldmVsPSJQdWJsaWMiLz4KICAgICAgPGRlZiBuYW1lPSJTaG9ydCBBY3RpbmcgT3Bpb2lkcyIgaWQ9InNob3J0LWFjdGluZy1vcGlvaWRzIiBhY2Nlc3NMZXZlbD0iUHVibGljIi8+CiAgIDwvdmFsdWVTZXRzPgogICA8c3RhdGVtZW50cz4KICAgICAgPGRlZiBuYW1lPSJJc0ZvckNocm9uaWNQYWluIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGV4cHJlc3Npb24gdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJ0cnVlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBuYW1lPSJIYXNNZXRhc3RhdGljQ2FuY2VyIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGV4cHJlc3Npb24gdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJmYWxzZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbmFtZT0iVG9Db2RlIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIiB4c2k6dHlwZT0iRnVuY3Rpb25EZWYiPgogICAgICAgICA8ZXhwcmVzc2lvbiBjbGFzc1R5cGU9InQ6Q29kZSIgeHNpOnR5cGU9Ikluc3RhbmNlIj4KICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0iY29kZSI+CiAgICAgICAgICAgICAgIDx2YWx1ZSBwYXRoPSJ2YWx1ZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJjb2RlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9ImNvZGluZyIgeHNpOnR5cGU9Ik9wZXJhbmRSZWYiLz4KICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgIDwvdmFsdWU+CiAgICAgICAgICAgIDwvZWxlbWVudD4KICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0ic3lzdGVtIj4KICAgICAgICAgICAgICAgPHZhbHVlIHBhdGg9InZhbHVlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9InN5c3RlbSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBuYW1lPSJjb2RpbmciIHhzaTp0eXBlPSJPcGVyYW5kUmVmIi8+CiAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICA8L3ZhbHVlPgogICAgICAgICAgICA8L2VsZW1lbnQ+CiAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9InZlcnNpb24iPgogICAgICAgICAgICAgICA8dmFsdWUgcGF0aD0idmFsdWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0idmVyc2lvbiIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBuYW1lPSJjb2RpbmciIHhzaTp0eXBlPSJPcGVyYW5kUmVmIi8+CiAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICA8L3ZhbHVlPgogICAgICAgICAgICA8L2VsZW1lbnQ+CiAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9ImRpc3BsYXkiPgogICAgICAgICAgICAgICA8dmFsdWUgcGF0aD0idmFsdWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0iZGlzcGxheSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBuYW1lPSJjb2RpbmciIHhzaTp0eXBlPSJPcGVyYW5kUmVmIi8+CiAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICA8L3ZhbHVlPgogICAgICAgICAgICA8L2VsZW1lbnQ+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgPG9wZXJhbmQgbmFtZT0iY29kaW5nIj4KICAgICAgICAgICAgPG9wZXJhbmRUeXBlU3BlY2lmaWVyIG5hbWU9ImZoaXI6Q29kaW5nIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbmFtZT0iVG9RdWFudGl0eSIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyIgeHNpOnR5cGU9IkZ1bmN0aW9uRGVmIj4KICAgICAgICAgPGV4cHJlc3Npb24gY2xhc3NUeXBlPSJ0OlF1YW50aXR5IiB4c2k6dHlwZT0iSW5zdGFuY2UiPgogICAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJ2YWx1ZSI+CiAgICAgICAgICAgICAgIDx2YWx1ZSBwYXRoPSJ2YWx1ZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJ2YWx1ZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBuYW1lPSJxdWFudGl0eSIgeHNpOnR5cGU9Ik9wZXJhbmRSZWYiLz4KICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgIDwvdmFsdWU+CiAgICAgICAgICAgIDwvZWxlbWVudD4KICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0idW5pdCI+CiAgICAgICAgICAgICAgIDx2YWx1ZSBwYXRoPSJ2YWx1ZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJ1bml0IiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9InF1YW50aXR5IiB4c2k6dHlwZT0iT3BlcmFuZFJlZiIvPgogICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgPC92YWx1ZT4KICAgICAgICAgICAgPC9lbGVtZW50PgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgICAgIDxvcGVyYW5kIG5hbWU9InF1YW50aXR5Ij4KICAgICAgICAgICAgPG9wZXJhbmRUeXBlU3BlY2lmaWVyIG5hbWU9ImZoaXI6UXVhbnRpdHkiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgPC9vcGVyYW5kPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBuYW1lPSJQcmVzY3JpcHRpb25zIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIiB4c2k6dHlwZT0iRnVuY3Rpb25EZWYiPgogICAgICAgICA8ZXhwcmVzc2lvbiB4c2k6dHlwZT0iUXVlcnkiPgogICAgICAgICAgICA8c291cmNlIGFsaWFzPSJPIj4KICAgICAgICAgICAgICAgPGV4cHJlc3Npb24gbmFtZT0iT3JkZXJzIiB4c2k6dHlwZT0iT3BlcmFuZFJlZiIvPgogICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgPGxldCBpZGVudGlmaWVyPSJyeE5vcm1Db2RlIj4KICAgICAgICAgICAgICAgPGV4cHJlc3Npb24gbmFtZT0iVG9Db2RlIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iSW5kZXhlciI+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHBhdGg9ImNvZGluZyIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJtZWRpY2F0aW9uIiBzY29wZT0iTyIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIwIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgICAgPC9sZXQ+CiAgICAgICAgICAgIDxsZXQgaWRlbnRpZmllcj0ibWVkaWNhdGlvbk5hbWUiPgogICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiBuYW1lPSJHZXRNZWRpY2F0aW9uTmFtZSIgbGlicmFyeU5hbWU9Ik9NVEtMb2dpYyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0icnhOb3JtQ29kZSIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgICAgPC9sZXQ+CiAgICAgICAgICAgIDxsZXQgaWRlbnRpZmllcj0iZG9zYWdlSW5zdHJ1Y3Rpb24iPgogICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiB4c2k6dHlwZT0iSW5kZXhlciI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHBhdGg9ImRvc2FnZUluc3RydWN0aW9uIiBzY29wZT0iTyIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICAgICAgICA8L2xldD4KICAgICAgICAgICAgPGxldCBpZGVudGlmaWVyPSJyZXBlYXQiPgogICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiBwYXRoPSJyZXBlYXQiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0idGltaW5nIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9ImRvc2FnZUluc3RydWN0aW9uIiB4c2k6dHlwZT0iUXVlcnlMZXRSZWYiLz4KICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgICAgPC9sZXQ+CiAgICAgICAgICAgIDxsZXQgaWRlbnRpZmllcj0iZnJlcXVlbmN5Ij4KICAgICAgICAgICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9IkNvYWxlc2NlIj4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0idmFsdWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0iZnJlcXVlbmN5TWF4IiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9InJlcGVhdCIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHBhdGg9InZhbHVlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9ImZyZXF1ZW5jeSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBuYW1lPSJyZXBlYXQiIHhzaTp0eXBlPSJRdWVyeUxldFJlZiIvPgogICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgICAgICAgIDwvbGV0PgogICAgICAgICAgICA8bGV0IGlkZW50aWZpZXI9InBlcmlvZCI+CiAgICAgICAgICAgICAgIDxleHByZXNzaW9uIGNsYXNzVHlwZT0idDpRdWFudGl0eSIgeHNpOnR5cGU9Ikluc3RhbmNlIj4KICAgICAgICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0idmFsdWUiPgogICAgICAgICAgICAgICAgICAgICA8dmFsdWUgcGF0aD0idmFsdWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0icGVyaW9kIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9InJlcGVhdCIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICAgICAgICA8L3ZhbHVlPgogICAgICAgICAgICAgICAgICA8L2VsZW1lbnQ+CiAgICAgICAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9InVuaXQiPgogICAgICAgICAgICAgICAgICAgICA8dmFsdWUgcGF0aD0idmFsdWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0icGVyaW9kVW5pdCIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBuYW1lPSJyZXBlYXQiIHhzaTp0eXBlPSJRdWVyeUxldFJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgICAgPC92YWx1ZT4KICAgICAgICAgICAgICAgICAgPC9lbGVtZW50PgogICAgICAgICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgICAgICAgIDwvbGV0PgogICAgICAgICAgICA8bGV0IGlkZW50aWZpZXI9ImRvc2VEZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJDb2FsZXNjZSI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJUb0xpc3QiPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iSWYiPgogICAgICAgICAgICAgICAgICAgICAgICA8Y29uZGl0aW9uIGFzVHlwZT0idDpCb29sZWFuIiB4c2k6dHlwZT0iQXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iSXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJkb3NlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9ImRvc2FnZUluc3RydWN0aW9uIiB4c2k6dHlwZT0iUXVlcnlMZXRSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aXNUeXBlU3BlY2lmaWVyIG5hbWU9ImZoaXI6UmFuZ2UiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICA8L2NvbmRpdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZW4geHNpOnR5cGU9IkNvbmNhdGVuYXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IkNvbmNhdGVuYXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IkNvbmNhdGVuYXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IlRvU3RyaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iVG9RdWFudGl0eSIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0ibG93IiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9ImRvc2UiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgbmFtZT0iZG9zYWdlSW5zdHJ1Y3Rpb24iIHhzaTp0eXBlPSJRdWVyeUxldFJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9Ii0iIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IlRvU3RyaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iVG9RdWFudGl0eSIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0iaGlnaCIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJkb3NlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9ImRvc2FnZUluc3RydWN0aW9uIiB4c2k6dHlwZT0iUXVlcnlMZXRSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0idmFsdWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0idW5pdCIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJoaWdoIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9ImRvc2UiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgbmFtZT0iZG9zYWdlSW5zdHJ1Y3Rpb24iIHhzaTp0eXBlPSJRdWVyeUxldFJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGVsc2UgeHNpOnR5cGU9IlRvU3RyaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iVG9RdWFudGl0eSIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgYXNUeXBlPSJmaGlyOlF1YW50aXR5IiB4c2k6dHlwZT0iQXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJkb3NlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9ImRvc2FnZUluc3RydWN0aW9uIiB4c2k6dHlwZT0iUXVlcnlMZXRSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9lbHNlPgogICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICAgICAgICA8L2xldD4KICAgICAgICAgICAgPGxldCBpZGVudGlmaWVyPSJmcmVxdWVuY3lEZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJDb25jYXRlbmF0ZSI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJUb1N0cmluZyI+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHBhdGg9InZhbHVlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9ImZyZXF1ZW5jeSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJyZXBlYXQiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0idGltaW5nIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9ImRvc2FnZUluc3RydWN0aW9uIiB4c2k6dHlwZT0iUXVlcnlMZXRSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJDb2FsZXNjZSI+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJDb25jYXRlbmF0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSItIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iVG9TdHJpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJ2YWx1ZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJmcmVxdWVuY3lNYXgiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0icmVwZWF0IiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9InRpbWluZyIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBuYW1lPSJkb3NhZ2VJbnN0cnVjdGlvbiIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSIiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICAgICAgICA8L2xldD4KICAgICAgICAgICAgPHJldHVybj4KICAgICAgICAgICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9IlR1cGxlIj4KICAgICAgICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0icnhOb3JtQ29kZSI+CiAgICAgICAgICAgICAgICAgICAgIDx2YWx1ZSBuYW1lPSJyeE5vcm1Db2RlIiB4c2k6dHlwZT0iUXVlcnlMZXRSZWYiLz4KICAgICAgICAgICAgICAgICAgPC9lbGVtZW50PgogICAgICAgICAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJpc0RyYWZ0Ij4KICAgICAgICAgICAgICAgICAgICAgPHZhbHVlIHhzaTp0eXBlPSJFcXVhbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHBhdGg9InZhbHVlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9InN0YXR1cyIgc2NvcGU9Ik8iIHhzaTp0eXBlPSJQcm9wZXJ0eSIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSJkcmFmdCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgICAgICAgPC92YWx1ZT4KICAgICAgICAgICAgICAgICAgPC9lbGVtZW50PgogICAgICAgICAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJpc1BSTiI+CiAgICAgICAgICAgICAgICAgICAgIDx2YWx1ZSBwYXRoPSJ2YWx1ZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJhc05lZWRlZCIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBuYW1lPSJkb3NhZ2VJbnN0cnVjdGlvbiIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICAgICAgICA8L3ZhbHVlPgogICAgICAgICAgICAgICAgICA8L2VsZW1lbnQ+CiAgICAgICAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9InByZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgIDx2YWx1ZSB4c2k6dHlwZT0iSWYiPgogICAgICAgICAgICAgICAgICAgICAgICA8Y29uZGl0aW9uIGFzVHlwZT0idDpCb29sZWFuIiB4c2k6dHlwZT0iQXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iTm90Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IklzTnVsbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHBhdGg9InRleHQiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgbmFtZT0iZG9zYWdlSW5zdHJ1Y3Rpb24iIHhzaTp0eXBlPSJRdWVyeUxldFJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICA8L2NvbmRpdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZW4geHNpOnR5cGU9IkNvbmNhdGVuYXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IkNvbmNhdGVuYXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0ibWVkaWNhdGlvbk5hbWUiIHhzaTp0eXBlPSJRdWVyeUxldFJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB2YWx1ZVR5cGU9InQ6U3RyaW5nIiB2YWx1ZT0iICIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJ2YWx1ZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJ0ZXh0IiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9ImRvc2FnZUluc3RydWN0aW9uIiB4c2k6dHlwZT0iUXVlcnlMZXRSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVuPgogICAgICAgICAgICAgICAgICAgICAgICA8ZWxzZSB4c2k6dHlwZT0iQ29uY2F0ZW5hdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iQ29uY2F0ZW5hdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iQ29uY2F0ZW5hdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iQ29uY2F0ZW5hdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iQ29uY2F0ZW5hdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBuYW1lPSJtZWRpY2F0aW9uTmFtZSIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSIgIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9ImRvc2VEZXNjcmlwdGlvbiIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9IiBxIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9ImZyZXF1ZW5jeURlc2NyaXB0aW9uIiB4c2k6dHlwZT0iUXVlcnlMZXRSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iSWYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29uZGl0aW9uIGFzVHlwZT0idDpCb29sZWFuIiB4c2k6dHlwZT0iQXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJ2YWx1ZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJhc05lZWRlZCIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBuYW1lPSJkb3NhZ2VJbnN0cnVjdGlvbiIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29uZGl0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGhlbiB2YWx1ZVR5cGU9InQ6U3RyaW5nIiB2YWx1ZT0iIFBSTiIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVsc2UgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9IiIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Vsc2U+CiAgICAgICAgICAgICAgICAgICAgIDwvdmFsdWU+CiAgICAgICAgICAgICAgICAgIDwvZWxlbWVudD4KICAgICAgICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0iZG9zZSI+CiAgICAgICAgICAgICAgICAgICAgIDx2YWx1ZSB4c2k6dHlwZT0iSWYiPgogICAgICAgICAgICAgICAgICAgICAgICA8Y29uZGl0aW9uIGFzVHlwZT0idDpCb29sZWFuIiB4c2k6dHlwZT0iQXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iSXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJkb3NlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9ImRvc2FnZUluc3RydWN0aW9uIiB4c2k6dHlwZT0iUXVlcnlMZXRSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aXNUeXBlU3BlY2lmaWVyIG5hbWU9ImZoaXI6UmFuZ2UiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICA8L2NvbmRpdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZW4gbmFtZT0iVG9RdWFudGl0eSIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0iaGlnaCIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJkb3NlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9ImRvc2FnZUluc3RydWN0aW9uIiB4c2k6dHlwZT0iUXVlcnlMZXRSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVuPgogICAgICAgICAgICAgICAgICAgICAgICA8ZWxzZSBuYW1lPSJUb1F1YW50aXR5IiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBhc1R5cGU9ImZoaXI6UXVhbnRpdHkiIHhzaTp0eXBlPSJBcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHBhdGg9ImRvc2UiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgbmFtZT0iZG9zYWdlSW5zdHJ1Y3Rpb24iIHhzaTp0eXBlPSJRdWVyeUxldFJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9lbHNlPgogICAgICAgICAgICAgICAgICAgICA8L3ZhbHVlPgogICAgICAgICAgICAgICAgICA8L2VsZW1lbnQ+CiAgICAgICAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9ImRvc2VzUGVyRGF5Ij4KICAgICAgICAgICAgICAgICAgICAgPHZhbHVlIHhzaTp0eXBlPSJDb2FsZXNjZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9IlRvRGFpbHkiIGxpYnJhcnlOYW1lPSJPTVRLTG9naWMiIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9ImZyZXF1ZW5jeSIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9InBlcmlvZCIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgdmFsdWVUeXBlPSJ0OkRlY2ltYWwiIHZhbHVlPSIxLjAiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgICAgICAgIDwvdmFsdWU+CiAgICAgICAgICAgICAgICAgIDwvZWxlbWVudD4KICAgICAgICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICAgICAgICA8L3JldHVybj4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICAgICA8b3BlcmFuZCBuYW1lPSJPcmRlcnMiPgogICAgICAgICAgICA8b3BlcmFuZFR5cGVTcGVjaWZpZXIgeHNpOnR5cGU9Ikxpc3RUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgICAgPGVsZW1lbnRUeXBlIG5hbWU9ImZoaXI6TWVkaWNhdGlvblJlcXVlc3QiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgPC9vcGVyYW5kVHlwZVNwZWNpZmllcj4KICAgICAgICAgPC9vcGVyYW5kPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBuYW1lPSJNTUUiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiIHhzaTp0eXBlPSJGdW5jdGlvbkRlZiI+CiAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJRdWVyeSI+CiAgICAgICAgICAgIDxzb3VyY2UgYWxpYXM9IlAiPgogICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiBuYW1lPSJQcmVzY3JpcHRpb25zIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBuYW1lPSJwcmVzY3JpcHRpb25zIiB4c2k6dHlwZT0iT3BlcmFuZFJlZiIvPgogICAgICAgICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICA8bGV0IGlkZW50aWZpZXI9Im1tZSI+CiAgICAgICAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJTaW5nbGV0b25Gcm9tIj4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iQ2FsY3VsYXRlTU1FcyIgbGlicmFyeU5hbWU9Ik9NVEtMb2dpYyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9Ikxpc3QiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZWxlbWVudCB4c2k6dHlwZT0iVHVwbGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJyeE5vcm1Db2RlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZhbHVlIHBhdGg9InJ4Tm9ybUNvZGUiIHNjb3BlPSJQIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbGVtZW50PgogICAgICAgICAgICAgICAgICAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJkb3NlUXVhbnRpdHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmFsdWUgcGF0aD0iZG9zZSIgc2NvcGU9IlAiIHhzaTp0eXBlPSJQcm9wZXJ0eSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VsZW1lbnQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9ImRvc2VzUGVyRGF5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZhbHVlIHBhdGg9ImRvc2VzUGVyRGF5IiBzY29wZT0iUCIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZWxlbWVudD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9lbGVtZW50PgogICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICAgICAgICA8L2xldD4KICAgICAgICAgICAgPHJldHVybj4KICAgICAgICAgICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9IlR1cGxlIj4KICAgICAgICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0icnhOb3JtQ29kZSI+CiAgICAgICAgICAgICAgICAgICAgIDx2YWx1ZSBwYXRoPSJyeE5vcm1Db2RlIiBzY29wZT0iUCIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgIDwvZWxlbWVudD4KICAgICAgICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0iaXNEcmFmdCI+CiAgICAgICAgICAgICAgICAgICAgIDx2YWx1ZSBwYXRoPSJpc0RyYWZ0IiBzY29wZT0iUCIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgIDwvZWxlbWVudD4KICAgICAgICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0iaXNQUk4iPgogICAgICAgICAgICAgICAgICAgICA8dmFsdWUgcGF0aD0iaXNQUk4iIHNjb3BlPSJQIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgPC9lbGVtZW50PgogICAgICAgICAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJwcmVzY3JpcHRpb24iPgogICAgICAgICAgICAgICAgICAgICA8dmFsdWUgcGF0aD0icHJlc2NyaXB0aW9uIiBzY29wZT0iUCIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgIDwvZWxlbWVudD4KICAgICAgICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0iZGFpbHlEb3NlIj4KICAgICAgICAgICAgICAgICAgICAgPHZhbHVlIHBhdGg9ImRhaWx5RG9zZURlc2NyaXB0aW9uIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9Im1tZSIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgICAgICAgIDwvdmFsdWU+CiAgICAgICAgICAgICAgICAgIDwvZWxlbWVudD4KICAgICAgICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0iY29udmVyc2lvbkZhY3RvciI+CiAgICAgICAgICAgICAgICAgICAgIDx2YWx1ZSBwYXRoPSJjb252ZXJzaW9uRmFjdG9yIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9Im1tZSIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgICAgICAgIDwvdmFsdWU+CiAgICAgICAgICAgICAgICAgIDwvZWxlbWVudD4KICAgICAgICAgICAgICAgICAgPGVsZW1lbnQgbmFtZT0ibW1lIj4KICAgICAgICAgICAgICAgICAgICAgPHZhbHVlIHBhdGg9Im1tZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBuYW1lPSJtbWUiIHhzaTp0eXBlPSJRdWVyeUxldFJlZiIvPgogICAgICAgICAgICAgICAgICAgICA8L3ZhbHVlPgogICAgICAgICAgICAgICAgICA8L2VsZW1lbnQ+CiAgICAgICAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgICAgPC9yZXR1cm4+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgPG9wZXJhbmQgbmFtZT0icHJlc2NyaXB0aW9ucyI+CiAgICAgICAgICAgIDxvcGVyYW5kVHlwZVNwZWNpZmllciB4c2k6dHlwZT0iTGlzdFR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICAgICA8ZWxlbWVudFR5cGUgbmFtZT0iZmhpcjpNZWRpY2F0aW9uUmVxdWVzdCIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICA8L29wZXJhbmRUeXBlU3BlY2lmaWVyPgogICAgICAgICA8L29wZXJhbmQ+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIG5hbWU9IlRvdGFsTU1FIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIiB4c2k6dHlwZT0iRnVuY3Rpb25EZWYiPgogICAgICAgICA8ZXhwcmVzc2lvbiBjbGFzc1R5cGU9InQ6UXVhbnRpdHkiIHhzaTp0eXBlPSJJbnN0YW5jZSI+CiAgICAgICAgICAgIDxlbGVtZW50IG5hbWU9InZhbHVlIj4KICAgICAgICAgICAgICAgPHZhbHVlIHhzaTp0eXBlPSJTdW0iPgogICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJRdWVyeSI+CiAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgYWxpYXM9Ik0iPgogICAgICAgICAgICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiBuYW1lPSJNTUUiIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9InByZXNjcmlwdGlvbnMiIHhzaTp0eXBlPSJPcGVyYW5kUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgICAgICAgIDxyZXR1cm4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxleHByZXNzaW9uIHBhdGg9InZhbHVlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9Im1tZSIgc2NvcGU9Ik0iIHhzaTp0eXBlPSJQcm9wZXJ0eSIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgICAgICAgICAgICAgICAgIDwvcmV0dXJuPgogICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgPC92YWx1ZT4KICAgICAgICAgICAgPC9lbGVtZW50PgogICAgICAgICAgICA8ZWxlbWVudCBuYW1lPSJ1bml0Ij4KICAgICAgICAgICAgICAgPHZhbHVlIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSJtZy9kIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L2VsZW1lbnQ+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgPG9wZXJhbmQgbmFtZT0icHJlc2NyaXB0aW9ucyI+CiAgICAgICAgICAgIDxvcGVyYW5kVHlwZVNwZWNpZmllciB4c2k6dHlwZT0iTGlzdFR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICAgICA8ZWxlbWVudFR5cGUgbmFtZT0iZmhpcjpNZWRpY2F0aW9uUmVxdWVzdCIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICA8L29wZXJhbmRUeXBlU3BlY2lmaWVyPgogICAgICAgICA8L29wZXJhbmQ+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIG5hbWU9IkdldFBlcmlvZERheXMiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiIHhzaTp0eXBlPSJGdW5jdGlvbkRlZiI+CiAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJDYXNlIj4KICAgICAgICAgICAgPGNhc2VJdGVtPgogICAgICAgICAgICAgICA8d2hlbiB4c2k6dHlwZT0iU3RhcnRzV2l0aCI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9InZhbHVlIiB4c2k6dHlwZT0iT3BlcmFuZFJlZiIvPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCB2YWx1ZVR5cGU9InQ6U3RyaW5nIiB2YWx1ZT0ieWVhciIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPC93aGVuPgogICAgICAgICAgICAgICA8dGhlbiB2YWx1ZVR5cGU9InQ6RGVjaW1hbCIgdmFsdWU9IjM2NS4wIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L2Nhc2VJdGVtPgogICAgICAgICAgICA8Y2FzZUl0ZW0+CiAgICAgICAgICAgICAgIDx3aGVuIHhzaTp0eXBlPSJTdGFydHNXaXRoIj4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0idmFsdWUiIHhzaTp0eXBlPSJPcGVyYW5kUmVmIi8+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSJtb250aCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPC93aGVuPgogICAgICAgICAgICAgICA8dGhlbiB2YWx1ZVR5cGU9InQ6RGVjaW1hbCIgdmFsdWU9IjMwLjAiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgIDwvY2FzZUl0ZW0+CiAgICAgICAgICAgIDxjYXNlSXRlbT4KICAgICAgICAgICAgICAgPHdoZW4geHNpOnR5cGU9IlN0YXJ0c1dpdGgiPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBuYW1lPSJ2YWx1ZSIgeHNpOnR5cGU9Ik9wZXJhbmRSZWYiLz4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9ImhvdXIiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDwvd2hlbj4KICAgICAgICAgICAgICAgPHRoZW4geHNpOnR5cGU9IkRpdmlkZSI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHZhbHVlVHlwZT0idDpEZWNpbWFsIiB2YWx1ZT0iMS4wIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCB2YWx1ZVR5cGU9InQ6RGVjaW1hbCIgdmFsdWU9IjI0LjAiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDwvdGhlbj4KICAgICAgICAgICAgPC9jYXNlSXRlbT4KICAgICAgICAgICAgPGNhc2VJdGVtPgogICAgICAgICAgICAgICA8d2hlbiB4c2k6dHlwZT0iU3RhcnRzV2l0aCI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9InZhbHVlIiB4c2k6dHlwZT0iT3BlcmFuZFJlZiIvPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCB2YWx1ZVR5cGU9InQ6U3RyaW5nIiB2YWx1ZT0ibWludXRlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8L3doZW4+CiAgICAgICAgICAgICAgIDx0aGVuIHhzaTp0eXBlPSJNdWx0aXBseSI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJEaXZpZGUiPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB2YWx1ZVR5cGU9InQ6RGVjaW1hbCIgdmFsdWU9IjEuMCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgdmFsdWVUeXBlPSJ0OkRlY2ltYWwiIHZhbHVlPSIyNC4wIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHZhbHVlVHlwZT0idDpEZWNpbWFsIiB2YWx1ZT0iNjAuMCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPC90aGVuPgogICAgICAgICAgICA8L2Nhc2VJdGVtPgogICAgICAgICAgICA8ZWxzZSB2YWx1ZVR5cGU9InQ6RGVjaW1hbCIgdmFsdWU9IjEuMCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICAgICA8b3BlcmFuZCBuYW1lPSJ2YWx1ZSI+CiAgICAgICAgICAgIDxvcGVyYW5kVHlwZVNwZWNpZmllciBuYW1lPSJ0OlN0cmluZyIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICA8L29wZXJhbmQ+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIG5hbWU9IkdldER1cmF0aW9uSW5EYXlzIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIiB4c2k6dHlwZT0iRnVuY3Rpb25EZWYiPgogICAgICAgICA8ZXhwcmVzc2lvbiB4c2k6dHlwZT0iQ2FzZSI+CiAgICAgICAgICAgIDxjYXNlSXRlbT4KICAgICAgICAgICAgICAgPHdoZW4geHNpOnR5cGU9IlN0YXJ0c1dpdGgiPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJ2YWx1ZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJ1bml0IiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9InZhbHVlIiB4c2k6dHlwZT0iT3BlcmFuZFJlZiIvPgogICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCB2YWx1ZVR5cGU9InQ6U3RyaW5nIiB2YWx1ZT0ieWVhciIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPC93aGVuPgogICAgICAgICAgICAgICA8dGhlbiB4c2k6dHlwZT0iTXVsdGlwbHkiPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJ2YWx1ZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJ2YWx1ZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBuYW1lPSJ2YWx1ZSIgeHNpOnR5cGU9Ik9wZXJhbmRSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgdmFsdWVUeXBlPSJ0OkRlY2ltYWwiIHZhbHVlPSIzNjUuMCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPC90aGVuPgogICAgICAgICAgICA8L2Nhc2VJdGVtPgogICAgICAgICAgICA8Y2FzZUl0ZW0+CiAgICAgICAgICAgICAgIDx3aGVuIHhzaTp0eXBlPSJTdGFydHNXaXRoIj4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0idmFsdWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0idW5pdCIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBuYW1lPSJ2YWx1ZSIgeHNpOnR5cGU9Ik9wZXJhbmRSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9Im1vbnRoIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8L3doZW4+CiAgICAgICAgICAgICAgIDx0aGVuIHhzaTp0eXBlPSJNdWx0aXBseSI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHBhdGg9InZhbHVlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9InZhbHVlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIG5hbWU9InZhbHVlIiB4c2k6dHlwZT0iT3BlcmFuZFJlZiIvPgogICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCB2YWx1ZVR5cGU9InQ6RGVjaW1hbCIgdmFsdWU9IjMwLjAiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDwvdGhlbj4KICAgICAgICAgICAgPC9jYXNlSXRlbT4KICAgICAgICAgICAgPGVsc2UgcGF0aD0idmFsdWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0idmFsdWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgIDxzb3VyY2UgbmFtZT0idmFsdWUiIHhzaTp0eXBlPSJPcGVyYW5kUmVmIi8+CiAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICA8L2Vsc2U+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgPG9wZXJhbmQgbmFtZT0idmFsdWUiPgogICAgICAgICAgICA8b3BlcmFuZFR5cGVTcGVjaWZpZXIgbmFtZT0iZmhpcjpEdXJhdGlvbiIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICA8L29wZXJhbmQ+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIG5hbWU9IlByb2JhYmxlRGF5c0luUmFuZ2UiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiIHhzaTp0eXBlPSJGdW5jdGlvbkRlZiI+CiAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJRdWVyeSI+CiAgICAgICAgICAgIDxzb3VyY2UgYWxpYXM9Im9yZGVycyI+CiAgICAgICAgICAgICAgIDxleHByZXNzaW9uIG5hbWU9Ik9yZGVycyIgeHNpOnR5cGU9Ik9wZXJhbmRSZWYiLz4KICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgIDxsZXQgaWRlbnRpZmllcj0iZnJlcXVlbmN5Ij4KICAgICAgICAgICAgICAgPGV4cHJlc3Npb24gcGF0aD0idmFsdWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0iZnJlcXVlbmN5IiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9InJlcGVhdCIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJ0aW1pbmciIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9IkluZGV4ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJkb3NhZ2VJbnN0cnVjdGlvbiIgc2NvcGU9Im9yZGVycyIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgICAgPC9sZXQ+CiAgICAgICAgICAgIDxsZXQgaWRlbnRpZmllcj0icGVyaW9kIj4KICAgICAgICAgICAgICAgPGV4cHJlc3Npb24gcGF0aD0idmFsdWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0icGVyaW9kIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9InJlcGVhdCIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJ0aW1pbmciIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9IkluZGV4ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJkb3NhZ2VJbnN0cnVjdGlvbiIgc2NvcGU9Im9yZGVycyIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgICAgPC9sZXQ+CiAgICAgICAgICAgIDxsZXQgaWRlbnRpZmllcj0icGVyaW9kRGF5cyI+CiAgICAgICAgICAgICAgIDxleHByZXNzaW9uIG5hbWU9IkdldFBlcmlvZERheXMiIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHBhdGg9InZhbHVlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9InBlcmlvZFVuaXQiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0icmVwZWF0IiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9InRpbWluZyIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0iSW5kZXhlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHBhdGg9ImRvc2FnZUluc3RydWN0aW9uIiBzY29wZT0ib3JkZXJzIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIwIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgICAgICAgIDwvbGV0PgogICAgICAgICAgICA8bGV0IGlkZW50aWZpZXI9ImRvc2VzUGVyRGF5Ij4KICAgICAgICAgICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9IklmIj4KICAgICAgICAgICAgICAgICAgPGNvbmRpdGlvbiBhc1R5cGU9InQ6Qm9vbGVhbiIgeHNpOnR5cGU9IkFzIj4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IkdyZWF0ZXJPckVxdWFsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IkRpdmlkZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJUb0RlY2ltYWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBuYW1lPSJmcmVxdWVuY3kiIHhzaTp0eXBlPSJRdWVyeUxldFJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJNdWx0aXBseSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9InBlcmlvZCIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9InBlcmlvZERheXMiIHhzaTp0eXBlPSJRdWVyeUxldFJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgdmFsdWVUeXBlPSJ0OkRlY2ltYWwiIHZhbHVlPSIxLjAiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPC9jb25kaXRpb24+CiAgICAgICAgICAgICAgICAgIDx0aGVuIHZhbHVlVHlwZT0idDpEZWNpbWFsIiB2YWx1ZT0iMS4wIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICAgICA8ZWxzZSB4c2k6dHlwZT0iRGl2aWRlIj4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IlRvRGVjaW1hbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9ImZyZXF1ZW5jeSIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9Ik11bHRpcGx5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0icGVyaW9kIiB4c2k6dHlwZT0iUXVlcnlMZXRSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0icGVyaW9kRGF5cyIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPC9lbHNlPgogICAgICAgICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgICAgICAgIDwvbGV0PgogICAgICAgICAgICA8bGV0IGlkZW50aWZpZXI9InJlcGVhdCI+CiAgICAgICAgICAgICAgIDxleHByZXNzaW9uIHBhdGg9InZhbHVlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9Im51bWJlck9mUmVwZWF0c0FsbG93ZWQiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0iZGlzcGVuc2VSZXF1ZXN0IiBzY29wZT0ib3JkZXJzIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgICAgPC9sZXQ+CiAgICAgICAgICAgIDxsZXQgaWRlbnRpZmllcj0ic3VwcGx5RHVyYXRpb24iPgogICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiBuYW1lPSJHZXREdXJhdGlvbkluRGF5cyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0iZXhwZWN0ZWRTdXBwbHlEdXJhdGlvbiIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJkaXNwZW5zZVJlcXVlc3QiIHNjb3BlPSJvcmRlcnMiIHhzaTp0eXBlPSJQcm9wZXJ0eSIvPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgICAgPC9sZXQ+CiAgICAgICAgICAgIDxsZXQgaWRlbnRpZmllcj0idmFsaWRpdHlQZXJpb2QiPgogICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiBwcmVjaXNpb249IkRheSIgeHNpOnR5cGU9IkR1cmF0aW9uQmV0d2VlbiI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHBhdGg9InZhbHVlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9InN0YXJ0IiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9InZhbGlkaXR5UGVyaW9kIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9ImRpc3BlbnNlUmVxdWVzdCIgc2NvcGU9Im9yZGVycyIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iVG9kYXkiLz4KICAgICAgICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICAgICAgICA8L2xldD4KICAgICAgICAgICAgPGxldCBpZGVudGlmaWVyPSJlbmREaWZmZXJlbmNlIj4KICAgICAgICAgICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9IklmIj4KICAgICAgICAgICAgICAgICAgPGNvbmRpdGlvbiBhc1R5cGU9InQ6Qm9vbGVhbiIgeHNpOnR5cGU9IkFzIj4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9Ikxlc3MiPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJ2YWx1ZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJlbmQiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0idmFsaWRpdHlQZXJpb2QiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgcGF0aD0iZGlzcGVuc2VSZXF1ZXN0IiBzY29wZT0ib3JkZXJzIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJUb2RheSIvPgogICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgIDwvY29uZGl0aW9uPgogICAgICAgICAgICAgICAgICA8dGhlbiBwcmVjaXNpb249IkRheSIgeHNpOnR5cGU9IkR1cmF0aW9uQmV0d2VlbiI+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHBhdGg9InZhbHVlIiB4c2k6dHlwZT0iUHJvcGVydHkiPgogICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHBhdGg9ImVuZCIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJ2YWxpZGl0eVBlcmlvZCIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBwYXRoPSJkaXNwZW5zZVJlcXVlc3QiIHNjb3BlPSJvcmRlcnMiIHhzaTp0eXBlPSJQcm9wZXJ0eSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IlRvZGF5Ii8+CiAgICAgICAgICAgICAgICAgIDwvdGhlbj4KICAgICAgICAgICAgICAgICAgPGVsc2UgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIwIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgICAgICAgIDwvbGV0PgogICAgICAgICAgICA8cmV0dXJuPgogICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiB4c2k6dHlwZT0iR3JlYXRlck9yRXF1YWwiPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iTXVsdGlwbHkiPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iTXVsdGlwbHkiPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBuYW1lPSJkb3Nlc1BlckRheSIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJEaXZpZGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iTXVsdGlwbHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iVG9EZWNpbWFsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0icmVwZWF0IiB4c2k6dHlwZT0iUXVlcnlMZXRSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBuYW1lPSJzdXBwbHlEdXJhdGlvbiIgeHNpOnR5cGU9IlF1ZXJ5TGV0UmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IlRvRGVjaW1hbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9InZhbGlkaXR5UGVyaW9kIiB4c2k6dHlwZT0iUXVlcnlMZXRSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IlRvRGVjaW1hbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJTdWJ0cmFjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9ImRheXNQYXN0IiB4c2k6dHlwZT0iT3BlcmFuZFJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBuYW1lPSJlbmREaWZmZXJlbmNlIiB4c2k6dHlwZT0iUXVlcnlMZXRSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IlRvRGVjaW1hbCI+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9Im51bURheXNJbkRheXNQYXN0IiB4c2k6dHlwZT0iT3BlcmFuZFJlZiIvPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgICAgPC9yZXR1cm4+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgPG9wZXJhbmQgbmFtZT0iT3JkZXJzIj4KICAgICAgICAgICAgPG9wZXJhbmRUeXBlU3BlY2lmaWVyIHhzaTp0eXBlPSJMaXN0VHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgICAgIDxlbGVtZW50VHlwZSBuYW1lPSJmaGlyOk1lZGljYXRpb25SZXF1ZXN0IiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgIDwvb3BlcmFuZFR5cGVTcGVjaWZpZXI+CiAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgPG9wZXJhbmQgbmFtZT0iZGF5c1Bhc3QiPgogICAgICAgICAgICA8b3BlcmFuZFR5cGVTcGVjaWZpZXIgbmFtZT0idDpJbnRlZ2VyIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgPG9wZXJhbmQgbmFtZT0ibnVtRGF5c0luRGF5c1Bhc3QiPgogICAgICAgICAgICA8b3BlcmFuZFR5cGVTcGVjaWZpZXIgbmFtZT0idDpJbnRlZ2VyIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbmFtZT0iSXNOYWxveG9uZSIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyIgeHNpOnR5cGU9IkZ1bmN0aW9uRGVmIj4KICAgICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9IkluVmFsdWVTZXQiPgogICAgICAgICAgICA8Y29kZSBuYW1lPSJyeE5vcm1Db2RlIiB4c2k6dHlwZT0iT3BlcmFuZFJlZiIvPgogICAgICAgICAgICA8dmFsdWVzZXQgbmFtZT0iTmFsb3hvbmUiLz4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICAgICA8b3BlcmFuZCBuYW1lPSJyeE5vcm1Db2RlIj4KICAgICAgICAgICAgPG9wZXJhbmRUeXBlU3BlY2lmaWVyIG5hbWU9InQ6Q29kZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICA8L29wZXJhbmQ+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIG5hbWU9IklzQmVuem9kaWF6ZXBpbmUiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiIHhzaTp0eXBlPSJGdW5jdGlvbkRlZiI+CiAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJJblZhbHVlU2V0Ij4KICAgICAgICAgICAgPGNvZGUgbmFtZT0icnhOb3JtQ29kZSIgeHNpOnR5cGU9Ik9wZXJhbmRSZWYiLz4KICAgICAgICAgICAgPHZhbHVlc2V0IG5hbWU9IkJlbnpvZGlhemVwaW5lcyIvPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgICAgIDxvcGVyYW5kIG5hbWU9InJ4Tm9ybUNvZGUiPgogICAgICAgICAgICA8b3BlcmFuZFR5cGVTcGVjaWZpZXIgbmFtZT0idDpDb2RlIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbmFtZT0iSXNPcGlvaWRXaXRoQW1idWxhdG9yeUFidXNlUG90ZW50aWFsIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIiB4c2k6dHlwZT0iRnVuY3Rpb25EZWYiPgogICAgICAgICA8ZXhwcmVzc2lvbiB4c2k6dHlwZT0iSW5WYWx1ZVNldCI+CiAgICAgICAgICAgIDxjb2RlIG5hbWU9InJ4Tm9ybUNvZGUiIHhzaTp0eXBlPSJPcGVyYW5kUmVmIi8+CiAgICAgICAgICAgIDx2YWx1ZXNldCBuYW1lPSJBbWJ1bGF0b3J5IEFidXNlIFBvdGVudGlhbCBPcGlvaWRzIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgPG9wZXJhbmQgbmFtZT0icnhOb3JtQ29kZSI+CiAgICAgICAgICAgIDxvcGVyYW5kVHlwZVNwZWNpZmllciBuYW1lPSJ0OkNvZGUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgPC9vcGVyYW5kPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBuYW1lPSJJc0xvbmdBY3RpbmdPcGlvaWQiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiIHhzaTp0eXBlPSJGdW5jdGlvbkRlZiI+CiAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJJblZhbHVlU2V0Ij4KICAgICAgICAgICAgPGNvZGUgbmFtZT0icnhOb3JtQ29kZSIgeHNpOnR5cGU9Ik9wZXJhbmRSZWYiLz4KICAgICAgICAgICAgPHZhbHVlc2V0IG5hbWU9IkxvbmcgQWN0aW5nIE9waW9pZHMiLz4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICAgICA8b3BlcmFuZCBuYW1lPSJyeE5vcm1Db2RlIj4KICAgICAgICAgICAgPG9wZXJhbmRUeXBlU3BlY2lmaWVyIG5hbWU9InQ6Q29kZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICA8L29wZXJhbmQ+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIG5hbWU9IklzRW5kT2ZMaWZlT3Bpb2lkIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIiB4c2k6dHlwZT0iRnVuY3Rpb25EZWYiPgogICAgICAgICA8ZXhwcmVzc2lvbiB4c2k6dHlwZT0iSW5WYWx1ZVNldCI+CiAgICAgICAgICAgIDxjb2RlIG5hbWU9InJ4Tm9ybUNvZGUiIHhzaTp0eXBlPSJPcGVyYW5kUmVmIi8+CiAgICAgICAgICAgIDx2YWx1ZXNldCBuYW1lPSJFbmQgT2YgTGlmZSBPcGlvaWRzIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgPG9wZXJhbmQgbmFtZT0icnhOb3JtQ29kZSI+CiAgICAgICAgICAgIDxvcGVyYW5kVHlwZVNwZWNpZmllciBuYW1lPSJ0OkNvZGUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgPC9vcGVyYW5kPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBuYW1lPSJJc09waW9pZERydWdTY3JlZW4iIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiIHhzaTp0eXBlPSJGdW5jdGlvbkRlZiI+CiAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJJblZhbHVlU2V0Ij4KICAgICAgICAgICAgPGNvZGUgbmFtZT0ib2JzZXJ2YXRpb25Db2RlIiB4c2k6dHlwZT0iT3BlcmFuZFJlZiIvPgogICAgICAgICAgICA8dmFsdWVzZXQgbmFtZT0iT3Bpb2lkIERydWcgU2NyZWVuaW5nIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgPG9wZXJhbmQgbmFtZT0ib2JzZXJ2YXRpb25Db2RlIj4KICAgICAgICAgICAgPG9wZXJhbmRUeXBlU3BlY2lmaWVyIG5hbWU9InQ6Q29kZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICA8L29wZXJhbmQ+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIG5hbWU9IklzSWxsaWNpdERydWdTY3JlZW4iIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiIHhzaTp0eXBlPSJGdW5jdGlvbkRlZiI+CiAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJJblZhbHVlU2V0Ij4KICAgICAgICAgICAgPGNvZGUgbmFtZT0ib2JzZXJ2YXRpb25Db2RlIiB4c2k6dHlwZT0iT3BlcmFuZFJlZiIvPgogICAgICAgICAgICA8dmFsdWVzZXQgbmFtZT0iSWxsaWNpdCBEcnVnIFNjcmVlbmluZyIvPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgICAgIDxvcGVyYW5kIG5hbWU9Im9ic2VydmF0aW9uQ29kZSI+CiAgICAgICAgICAgIDxvcGVyYW5kVHlwZVNwZWNpZmllciBuYW1lPSJ0OkNvZGUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgPC9vcGVyYW5kPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBuYW1lPSJHZXRJbmdyZWRpZW50IiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIiB4c2k6dHlwZT0iRnVuY3Rpb25EZWYiPgogICAgICAgICA8ZXhwcmVzc2lvbiB4c2k6dHlwZT0iUXVlcnkiPgogICAgICAgICAgICA8c291cmNlIGFsaWFzPSIkdGhpcyI+CiAgICAgICAgICAgICAgIDxleHByZXNzaW9uIG5hbWU9IkdldEluZ3JlZGllbnRzIiBsaWJyYXJ5TmFtZT0iT01US0xvZ2ljIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBuYW1lPSJyeE5vcm1Db2RlIiB4c2k6dHlwZT0iT3BlcmFuZFJlZiIvPgogICAgICAgICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICA8d2hlcmUgeHNpOnR5cGU9Ik5vdCI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJJc051bGwiPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJpbmdyZWRpZW50TmFtZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBuYW1lPSIkdGhpcyIgeHNpOnR5cGU9IkFsaWFzUmVmIi8+CiAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICA8L3doZXJlPgogICAgICAgICAgICA8cmV0dXJuPgogICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiBwYXRoPSJpbmdyZWRpZW50TmFtZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgPHNvdXJjZSBuYW1lPSIkdGhpcyIgeHNpOnR5cGU9IkFsaWFzUmVmIi8+CiAgICAgICAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgICAgPC9yZXR1cm4+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgPG9wZXJhbmQgbmFtZT0icnhOb3JtQ29kZSI+CiAgICAgICAgICAgIDxvcGVyYW5kVHlwZVNwZWNpZmllciBuYW1lPSJ0OkNvZGUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgPC9vcGVyYW5kPgogICAgICA8L2RlZj4KICAgPC9zdGF0ZW1lbnRzPgo8L2xpYnJhcnk+Cg=="^^xsd:base64Binary ]
  ]] .

# - ontology header ------------------------------------------------------------

[a owl:Ontology;
  owl:imports fhir:fhir.ttl] .

# -------------------------------------------------------------------------------------


Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.