Quality Measure STU1 for FHIR STU3 Implementation Guide

This page is part of the Quality Measure STU2 for FHIR R4 Implementation Guide (v1.0.0: STU 1) based on FHIR R3. The current version which supercedes this version is 3.0.0. For a full list of available versions, see the Directory of published versions

EXM146_FHIR


<Library xmlns="http://hl7.org/fhir">
  <id value="exm146-fhir"/>
  <meta>
    <versionId value="3"/>
    <lastUpdated value="2019-03-12T04:14:58.026-04:00"/>
    <profile
             value="http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/library-cqfm"/>
  </meta>
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml"><table class="grid dict"><tr><th scope="row"><b>Id: </b></th><td style="padding-left: 25px; padding-right: 25px;">exm146-fhir</td></tr><tr><th scope="row"><b>Type: </b></th><td style="padding-right: 25px;"><span><br/><span><span style="padding-left: 25px;"><b>system: </b><span>http://hl7.org/fhir/library-type</span><br/></span><span style="padding-left: 25px;"><b>code: </b><span>logic-library</span></span></span></span></td></tr><tr><th scope="row"><b>Version: </b></th><td style="padding-left: 25px; padding-right: 25px;">4.0.0</td></tr><tr><th scope="row"><b>Status: </b></th><td style="padding-left: 25px; padding-right: 25px;">active</td></tr><tr style="vertical-align: top;"><th rowspan="2" scope="row"><b>Related: </b></th><td style="padding-left: 25px; padding-right: 25px;"><p style="margin-bottom: 5px;"><b>type: </b><span>depends-on</span></p><p style="margin-bottom: 5px;"><b>Resource: </b><br/><span><span style="padding-left: 25px;"><b>reference: </b><span>Library/fhirhelpers</span></span></span></p></td></tr><tr style="vertical-align: top;"><td style="padding-left: 25px; padding-right: 25px;"><p style="margin-bottom: 5px;"><b>type: </b><span>depends-on</span></p><p style="margin-bottom: 5px;"><b>Resource: </b><br/><span><span style="padding-left: 25px;"><b>reference: </b><span>Library/common-fhir</span></span></span></p></td></tr><tr style="vertical-align: top;"><th rowspan="5" scope="row"><b>Data Requirements: </b></th><td style="padding-left: 25px; padding-right: 25px;"><div xmlns="http://www.w3.org/1999/xhtml"><p style="margin-bottom: 5px;"><b>type: </b><span>MedicationRequest</span></p><p style="margin-bottom: 5px;"><b>code filter:</b><br/><span style="padding-left: 25px;"><b>path: </b><span>medication</span></span><br/><span style="padding-left: 25px;"><b>valueset: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1001</span></span></p></div></td></tr><tr style="vertical-align: top;"><td style="padding-left: 25px; padding-right: 25px;"><div xmlns="http://www.w3.org/1999/xhtml"><p style="margin-bottom: 5px;"><b>type: </b><span>Condition</span></p><p style="margin-bottom: 5px;"><b>code filter:</b><br/><span style="padding-left: 25px;"><b>path: </b><span>code</span></span><br/><span style="padding-left: 25px;"><b>valueset: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1011</span></span></p></div></td></tr><tr style="vertical-align: top;"><td style="padding-left: 25px; padding-right: 25px;"><div xmlns="http://www.w3.org/1999/xhtml"><p style="margin-bottom: 5px;"><b>type: </b><span>Condition</span></p><p style="margin-bottom: 5px;"><b>code filter:</b><br/><span style="padding-left: 25px;"><b>path: </b><span>code</span></span><br/><span style="padding-left: 25px;"><b>valueset: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1012</span></span></p></div></td></tr><tr style="vertical-align: top;"><td style="padding-left: 25px; padding-right: 25px;"><div xmlns="http://www.w3.org/1999/xhtml"><p style="margin-bottom: 5px;"><b>type: </b><span>Encounter</span></p><p style="margin-bottom: 5px;"><b>code filter:</b><br/><span style="padding-left: 25px;"><b>path: </b><span>type</span></span><br/><span style="padding-left: 25px;"><b>valueset: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1061</span></span></p></div></td></tr><tr style="vertical-align: top;"><td style="padding-left: 25px; padding-right: 25px;"><div xmlns="http://www.w3.org/1999/xhtml"><p style="margin-bottom: 5px;"><b>type: </b><span>Observation</span></p><p style="margin-bottom: 5px;"><b>code filter:</b><br/><span style="padding-left: 25px;"><b>path: </b><span>code</span></span><br/><span style="padding-left: 25px;"><b>valueset: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1012</span></span></p></div></td></tr>    <!-- Filter down to human readable content --><tr style="vertical-align: top;"><th scope="row"><b>Content: </b></th><td style="padding-left: 25px; padding-right: 25px;"><b>type: </b><span>text/cql</span></td></tr><tr><td colspan="2" style="padding-left: 25px; padding-right: 25px;"><pre><code class="language-cql">library EXM146_FHIR version '4.0.0'

/*
This example is a work in progress and should not be considered a final specification
or recommendation for guidance. This example will help guide and direct the process
of finding conventions and usage patterns that meet the needs of the various stakeholders
in the measure development community.
*/

using FHIR version '3.0.0'

include FHIRHelpers version '3.0.0' called FHIRHelpers
include Common_FHIR version '2.0.0' called Common

valueset &quot;Acute Pharyngitis&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1011'
valueset &quot;Acute Tonsillitis&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1012'
valueset &quot;Ambulatory/ED Visit&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1061'
valueset &quot;Antibiotic Medications&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1001'
valueset &quot;Group A Streptococcus Test&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1012'

parameter &quot;Measurement Period&quot; Interval&lt;DateTime&gt;

context Patient

// Region: Initial Population

define &quot;Is Between 2 and 17 Years of Age at Start of Measurement Period&quot;:
   AgeInYearsAt(start of &quot;Measurement Period&quot;) &gt;= 2
      and AgeInYearsAt(start of &quot;Measurement Period&quot;) &lt;= 17

define &quot;Antibiotics&quot;:
   [MedicationRequest: medication in &quot;Antibiotic Medications&quot;] Prescription
     where Prescription.status = 'active'
       and Prescription.intent = 'order'

define &quot;Pharyngitis&quot;:
   ([Condition: code in &quot;Acute Pharyngitis&quot;]
     union [Condition: code in &quot;Acute Tonsillitis&quot;]) Pharyngitis
     where Pharyngitis.clinicalStatus = 'active'
       and Pharyngitis.verificationStatus = 'confirmed'

define &quot;Measurement Period Encounters&quot;:
   [Encounter: &quot;Ambulatory/ED Visit&quot;] Encounter
      where Encounter.period during &quot;Measurement Period&quot;
        and Encounter.status = 'finished'
        and &quot;Is Between 2 and 17 Years of Age at Start of Measurement Period&quot;

define &quot;Pharyngitis Encounters With Antibiotics&quot;:
   &quot;Measurement Period Encounters&quot; Encounters
      with &quot;Pharyngitis&quot; Pharyngitis such that
         Common.&quot;Includes Or Starts During&quot;(Pharyngitis, Encounters)
      with &quot;Antibiotics&quot; Antibiotics such that Antibiotics.authoredOn
         3 days or less after FHIRHelpers.ToInterval(Encounters.period)

define &quot;Initial Population&quot;:
   &quot;Pharyngitis Encounters With Antibiotics&quot;

// EndRegion: Initial Population

// Region: Denominator

// None

// EndRegion: Denominator

// Region: Denominator Exclusions

define &quot;Pharyngitis With Prior Antibiotics&quot;:
   &quot;Pharyngitis&quot; Pharyngitis
      with &quot;Antibiotics&quot; Antibiotics such that
         Antibiotics.authoredOn 30 days or less before Pharyngitis.onset

define &quot;Excluded Encounters&quot;:
   &quot;Pharyngitis Encounters With Antibiotics&quot; Encounters
      with &quot;Pharyngitis With Prior Antibiotics&quot; Pharyngitis such that
         Common.&quot;Includes Or Starts During&quot;(Pharyngitis, Encounters)

define &quot;Denominator Exclusions&quot;:
  &quot;Excluded Encounters&quot;

// EndRegion: Denominator Exclusions

// Region: Denominator Exceptions

// None

// EndRegion: Denominator Exceptions

// Region: Numerator

define &quot;Strep Test Encounters&quot;:
   &quot;Pharyngitis Encounters With Antibiotics&quot; Encounters
      with [Observation: code in &quot;Group A Streptococcus Test&quot;] Tests
         such that Tests.value is not null
            and Tests.effective starts during
               Interval[start of FHIRHelpers.ToInterval(Encounters.period) - 3 days,
                 end of FHIRHelpers.ToInterval(Encounters.period) + 3 days]

define &quot;Numerator&quot;:
   &quot;Strep Test Encounters&quot;

// EndRegion: Numerator

// Region: Numerator Exclusion

// None

// EndRegion: Numerator Exclusion
</code></pre>
                    
                    
                </td>
            </tr>
        
    </table>
</div>
  </text>
  <url value="http://hl7.org/fhir/us/cqfmeasures/Library/exm146-fhir"/>
  <identifier>
    <use value="official"/>
    <system value="http://example.org/fhir/cqi/ecqm/Library/Identifier"/>
    <value value="EXM146"/>
  </identifier>
  <version value="1.0.0"/>
  <name value="EXM146_FHIR"/>
  <title value="EXM146 - Example Proportion Measure Library"/>
  <status value="active"/>
  <experimental value="true"/>
  <type>
    <coding>
      <system value="http://hl7.org/fhir/library-type"/>
      <code value="logic-library"/>
    </coding>
  </type>
  <date value="2019-09-03T00:00:00-04:00"/>
  <publisher
             value="Health Level 7 International - Clinical Quality Information Work Group"/>
  <description
               value="This library is used as an example in the FHIR Quality Measure Implementation Guide"/>
  <approvalDate value="2019-08-03"/>
  <lastReviewDate value="2019-08-03"/>
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166"/>
      <code value="US"/>
      <display value="United States of America"/>
    </coding>
  </jurisdiction>
  <contact>
    <telecom>
      <system value="url"/>
      <value value="http://www.hl7.org/Special/committees/cqi/index.cfm"/>
    </telecom>
  </contact>
  <relatedArtifact>
    <type value="depends-on"/>
    <resource>
      <reference value="Library/fhirhelpers"/>
    </resource>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <resource>
      <reference value="Library/common-fhir"/>
    </resource>
  </relatedArtifact>
  <dataRequirement>
    <type value="MedicationRequest"/>
    <codeFilter>
      <path value="medication"/>
      <valueSetReference>
        <reference
                   value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1001"/>
      </valueSetReference>
    </codeFilter>
  </dataRequirement>
  <dataRequirement>
    <type value="Condition"/>
    <codeFilter>
      <path value="code"/>
      <valueSetReference>
        <reference
                   value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1011"/>
      </valueSetReference>
    </codeFilter>
  </dataRequirement>
  <dataRequirement>
    <type value="Condition"/>
    <codeFilter>
      <path value="code"/>
      <valueSetReference>
        <reference
                   value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1012"/>
      </valueSetReference>
    </codeFilter>
  </dataRequirement>
  <dataRequirement>
    <type value="Encounter"/>
    <codeFilter>
      <path value="type"/>
      <valueSetReference>
        <reference
                   value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1061"/>
      </valueSetReference>
    </codeFilter>
  </dataRequirement>
  <dataRequirement>
    <type value="Observation"/>
    <codeFilter>
      <path value="code"/>
      <valueSetReference>
        <reference
                   value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.198.12.1012"/>
      </valueSetReference>
    </codeFilter>
  </dataRequirement>
  <content>
    <contentType value="application/elm+xml"/>
    <data
          value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSI+CiAgIDxpZGVudGlmaWVyIGlkPSJFWE0xNDZfRkhJUiIgdmVyc2lvbj0iNC4wLjAiLz4KICAgPHNjaGVtYUlkZW50aWZpZXIgaWQ9InVybjpobDctb3JnOmVsbSIgdmVyc2lvbj0icjEiLz4KICAgPHVzaW5ncz4KICAgICAgPGRlZiBsb2NhbElkZW50aWZpZXI9IlN5c3RlbSIgdXJpPSJ1cm46aGw3LW9yZzplbG0tdHlwZXM6cjEiLz4KICAgICAgPGRlZiBsb2NhbElkZW50aWZpZXI9IkZISVIiIHVyaT0iaHR0cDovL2hsNy5vcmcvZmhpciIgdmVyc2lvbj0iMy4wLjAiLz4KICAgPC91c2luZ3M+CiAgIDxpbmNsdWRlcz4KICAgICAgPGRlZiBsb2NhbElkZW50aWZpZXI9IkZISVJIZWxwZXJzIiBwYXRoPSJGSElSSGVscGVycyIgdmVyc2lvbj0iMy4wLjAiLz4KICAgICAgPGRlZiBsb2NhbElkZW50aWZpZXI9IkNvbW1vbiIgcGF0aD0iQ29tbW9uX0ZISVIiIHZlcnNpb249IjIuMC4wIi8+CiAgIDwvaW5jbHVkZXM+CiAgIDxwYXJhbWV0ZXJzPgogICAgICA8ZGVmIG5hbWU9Ik1lYXN1cmVtZW50IFBlcmlvZCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxwYXJhbWV0ZXJUeXBlU3BlY2lmaWVyIHhzaTp0eXBlPSJJbnRlcnZhbFR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICA8cG9pbnRUeXBlIG5hbWU9InQ6RGF0ZVRpbWUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgPC9wYXJhbWV0ZXJUeXBlU3BlY2lmaWVyPgogICAgICA8L2RlZj4KICAgPC9wYXJhbWV0ZXJzPgogICA8dmFsdWVTZXRzPgogICAgICA8ZGVmIG5hbWU9IkFjdXRlIFBoYXJ5bmdpdGlzIiBpZD0iaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAyLjEyLjEwMTEiIGFjY2Vzc0xldmVsPSJQdWJsaWMiLz4KICAgICAgPGRlZiBuYW1lPSJBY3V0ZSBUb25zaWxsaXRpcyIgaWQ9Imh0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMi4xMi4xMDEyIiBhY2Nlc3NMZXZlbD0iUHVibGljIi8+CiAgICAgIDxkZWYgbmFtZT0iQW1idWxhdG9yeS9FRCBWaXNpdCIgaWQ9Imh0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDYxIiBhY2Nlc3NMZXZlbD0iUHVibGljIi8+CiAgICAgIDxkZWYgbmFtZT0iQW50aWJpb3RpYyBNZWRpY2F0aW9ucyIgaWQ9Imh0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjE5Ni4xMi4xMDAxIiBhY2Nlc3NMZXZlbD0iUHVibGljIi8+CiAgICAgIDxkZWYgbmFtZT0iR3JvdXAgQSBTdHJlcHRvY29jY3VzIFRlc3QiIGlkPSJodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xOTguMTIuMTAxMiIgYWNjZXNzTGV2ZWw9IlB1YmxpYyIvPgogICA8L3ZhbHVlU2V0cz4KICAgPHN0YXRlbWVudHM+CiAgICAgIDxkZWYgbmFtZT0iUGF0aWVudCIgY29udGV4dD0iUGF0aWVudCI+CiAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJTaW5nbGV0b25Gcm9tIj4KICAgICAgICAgICAgPG9wZXJhbmQgZGF0YVR5cGU9ImZoaXI6UGF0aWVudCIgeHNpOnR5cGU9IlJldHJpZXZlIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbmFtZT0iSXMgQmV0d2VlbiAyIGFuZCAxNyBZZWFycyBvZiBBZ2UgYXQgU3RhcnQgb2YgTWVhc3VyZW1lbnQgUGVyaW9kIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9IkFuZCI+CiAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJHcmVhdGVyT3JFcXVhbCI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIHByZWNpc2lvbj0iWWVhciIgeHNpOnR5cGU9IkNhbGN1bGF0ZUFnZUF0Ij4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IlRvRGF0ZVRpbWUiPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJiaXJ0aERhdGUudmFsdWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgbmFtZT0iUGF0aWVudCIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJTdGFydCI+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9Ik1lYXN1cmVtZW50IFBlcmlvZCIgeHNpOnR5cGU9IlBhcmFtZXRlclJlZiIvPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgPG9wZXJhbmQgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIyIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJMZXNzT3JFcXVhbCI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIHByZWNpc2lvbj0iWWVhciIgeHNpOnR5cGU9IkNhbGN1bGF0ZUFnZUF0Ij4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IlRvRGF0ZVRpbWUiPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJiaXJ0aERhdGUudmFsdWUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgbmFtZT0iUGF0aWVudCIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJTdGFydCI+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9Ik1lYXN1cmVtZW50IFBlcmlvZCIgeHNpOnR5cGU9IlBhcmFtZXRlclJlZiIvPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgPG9wZXJhbmQgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxNyIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIG5hbWU9IkFudGliaW90aWNzIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9IlF1ZXJ5Ij4KICAgICAgICAgICAgPHNvdXJjZSBhbGlhcz0iUHJlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICAgPGV4cHJlc3Npb24gZGF0YVR5cGU9ImZoaXI6TWVkaWNhdGlvblJlcXVlc3QiIGNvZGVQcm9wZXJ0eT0ibWVkaWNhdGlvbiIgeHNpOnR5cGU9IlJldHJpZXZlIj4KICAgICAgICAgICAgICAgICAgPGNvZGVzIG5hbWU9IkFudGliaW90aWMgTWVkaWNhdGlvbnMiIHhzaTp0eXBlPSJWYWx1ZVNldFJlZiIvPgogICAgICAgICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICA8d2hlcmUgeHNpOnR5cGU9IkFuZCI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJFcXVhbCI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9IlRvU3RyaW5nIiBsaWJyYXJ5TmFtZT0iRkhJUkhlbHBlcnMiIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHBhdGg9InN0YXR1cyIgc2NvcGU9IlByZXNjcmlwdGlvbiIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9ImFjdGl2ZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iRXF1YWwiPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBuYW1lPSJUb1N0cmluZyIgbGlicmFyeU5hbWU9IkZISVJIZWxwZXJzIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJpbnRlbnQiIHNjb3BlPSJQcmVzY3JpcHRpb24iIHhzaTp0eXBlPSJQcm9wZXJ0eSIvPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSJvcmRlciIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICA8L3doZXJlPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIG5hbWU9IlBoYXJ5bmdpdGlzIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9IlF1ZXJ5Ij4KICAgICAgICAgICAgPHNvdXJjZSBhbGlhcz0iUGhhcnluZ2l0aXMiPgogICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiB4c2k6dHlwZT0iVW5pb24iPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBkYXRhVHlwZT0iZmhpcjpDb25kaXRpb24iIGNvZGVQcm9wZXJ0eT0iY29kZSIgeHNpOnR5cGU9IlJldHJpZXZlIj4KICAgICAgICAgICAgICAgICAgICAgPGNvZGVzIG5hbWU9IkFjdXRlIFBoYXJ5bmdpdGlzIiB4c2k6dHlwZT0iVmFsdWVTZXRSZWYiLz4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBkYXRhVHlwZT0iZmhpcjpDb25kaXRpb24iIGNvZGVQcm9wZXJ0eT0iY29kZSIgeHNpOnR5cGU9IlJldHJpZXZlIj4KICAgICAgICAgICAgICAgICAgICAgPGNvZGVzIG5hbWU9IkFjdXRlIFRvbnNpbGxpdGlzIiB4c2k6dHlwZT0iVmFsdWVTZXRSZWYiLz4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICA8d2hlcmUgeHNpOnR5cGU9IkFuZCI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJFcXVhbCI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9IlRvU3RyaW5nIiBsaWJyYXJ5TmFtZT0iRkhJUkhlbHBlcnMiIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHBhdGg9ImNsaW5pY2FsU3RhdHVzIiBzY29wZT0iUGhhcnluZ2l0aXMiIHhzaTp0eXBlPSJQcm9wZXJ0eSIvPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSJhY3RpdmUiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IkVxdWFsIj4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iVG9TdHJpbmciIGxpYnJhcnlOYW1lPSJGSElSSGVscGVycyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0idmVyaWZpY2F0aW9uU3RhdHVzIiBzY29wZT0iUGhhcnluZ2l0aXMiIHhzaTp0eXBlPSJQcm9wZXJ0eSIvPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHZhbHVlVHlwZT0idDpTdHJpbmciIHZhbHVlPSJjb25maXJtZWQiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgPC93aGVyZT4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBuYW1lPSJNZWFzdXJlbWVudCBQZXJpb2QgRW5jb3VudGVycyIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJRdWVyeSI+CiAgICAgICAgICAgIDxzb3VyY2UgYWxpYXM9IkVuY291bnRlciI+CiAgICAgICAgICAgICAgIDxleHByZXNzaW9uIGRhdGFUeXBlPSJmaGlyOkVuY291bnRlciIgY29kZVByb3BlcnR5PSJ0eXBlIiB4c2k6dHlwZT0iUmV0cmlldmUiPgogICAgICAgICAgICAgICAgICA8Y29kZXMgbmFtZT0iQW1idWxhdG9yeS9FRCBWaXNpdCIgeHNpOnR5cGU9IlZhbHVlU2V0UmVmIi8+CiAgICAgICAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgIDx3aGVyZSB4c2k6dHlwZT0iQW5kIj4KICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IkFuZCI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJJbmNsdWRlZEluIj4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iVG9JbnRlcnZhbCIgbGlicmFyeU5hbWU9IkZISVJIZWxwZXJzIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJwZXJpb2QiIHNjb3BlPSJFbmNvdW50ZXIiIHhzaTp0eXBlPSJQcm9wZXJ0eSIvPgogICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9Ik1lYXN1cmVtZW50IFBlcmlvZCIgeHNpOnR5cGU9IlBhcmFtZXRlclJlZiIvPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJFcXVhbCI+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9IlRvU3RyaW5nIiBsaWJyYXJ5TmFtZT0iRkhJUkhlbHBlcnMiIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHBhdGg9InN0YXR1cyIgc2NvcGU9IkVuY291bnRlciIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9ImZpbmlzaGVkIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iSXMgQmV0d2VlbiAyIGFuZCAxNyBZZWFycyBvZiBBZ2UgYXQgU3RhcnQgb2YgTWVhc3VyZW1lbnQgUGVyaW9kIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICA8L3doZXJlPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIG5hbWU9IlBoYXJ5bmdpdGlzIEVuY291bnRlcnMgV2l0aCBBbnRpYmlvdGljcyIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJRdWVyeSI+CiAgICAgICAgICAgIDxzb3VyY2UgYWxpYXM9IkVuY291bnRlcnMiPgogICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiBuYW1lPSJNZWFzdXJlbWVudCBQZXJpb2QgRW5jb3VudGVycyIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgPC9zb3VyY2U+CiAgICAgICAgICAgIDxyZWxhdGlvbnNoaXAgYWxpYXM9IlBoYXJ5bmdpdGlzIiB4c2k6dHlwZT0iV2l0aCI+CiAgICAgICAgICAgICAgIDxleHByZXNzaW9uIG5hbWU9IlBoYXJ5bmdpdGlzIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICAgICA8c3VjaFRoYXQgbmFtZT0iSW5jbHVkZXMgT3IgU3RhcnRzIER1cmluZyIgbGlicmFyeU5hbWU9IkNvbW1vbiIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iUGhhcnluZ2l0aXMiIHhzaTp0eXBlPSJBbGlhc1JlZiIvPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBuYW1lPSJFbmNvdW50ZXJzIiB4c2k6dHlwZT0iQWxpYXNSZWYiLz4KICAgICAgICAgICAgICAgPC9zdWNoVGhhdD4KICAgICAgICAgICAgPC9yZWxhdGlvbnNoaXA+CiAgICAgICAgICAgIDxyZWxhdGlvbnNoaXAgYWxpYXM9IkFudGliaW90aWNzIiB4c2k6dHlwZT0iV2l0aCI+CiAgICAgICAgICAgICAgIDxleHByZXNzaW9uIG5hbWU9IkFudGliaW90aWNzIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICAgICA8c3VjaFRoYXQgeHNpOnR5cGU9IkluIj4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iVG9EYXRlVGltZSIgbGlicmFyeU5hbWU9IkZISVJIZWxwZXJzIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJhdXRob3JlZE9uIiBzY29wZT0iQW50aWJpb3RpY3MiIHhzaTp0eXBlPSJQcm9wZXJ0eSIvPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvd0Nsb3NlZD0iZmFsc2UiIGhpZ2hDbG9zZWQ9InRydWUiIHhzaTp0eXBlPSJJbnRlcnZhbCI+CiAgICAgICAgICAgICAgICAgICAgIDxsb3cgeHNpOnR5cGU9IkVuZCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9IlRvSW50ZXJ2YWwiIGxpYnJhcnlOYW1lPSJGSElSSGVscGVycyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0icGVyaW9kIiBzY29wZT0iRW5jb3VudGVycyIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgPC9sb3c+CiAgICAgICAgICAgICAgICAgICAgIDxoaWdoIHhzaTp0eXBlPSJBZGQiPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iRW5kIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iVG9JbnRlcnZhbCIgbGlicmFyeU5hbWU9IkZISVJIZWxwZXJzIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJwZXJpb2QiIHNjb3BlPSJFbmNvdW50ZXJzIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHZhbHVlPSIzIiB1bml0PSJkYXlzIiB4c2k6dHlwZT0iUXVhbnRpdHkiLz4KICAgICAgICAgICAgICAgICAgICAgPC9oaWdoPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgIDwvc3VjaFRoYXQ+CiAgICAgICAgICAgIDwvcmVsYXRpb25zaGlwPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIG5hbWU9IkluaXRpYWwgUG9wdWxhdGlvbiIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxleHByZXNzaW9uIG5hbWU9IlBoYXJ5bmdpdGlzIEVuY291bnRlcnMgV2l0aCBBbnRpYmlvdGljcyIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbmFtZT0iUGhhcnluZ2l0aXMgV2l0aCBQcmlvciBBbnRpYmlvdGljcyIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJRdWVyeSI+CiAgICAgICAgICAgIDxzb3VyY2UgYWxpYXM9IlBoYXJ5bmdpdGlzIj4KICAgICAgICAgICAgICAgPGV4cHJlc3Npb24gbmFtZT0iUGhhcnluZ2l0aXMiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICA8cmVsYXRpb25zaGlwIGFsaWFzPSJBbnRpYmlvdGljcyIgeHNpOnR5cGU9IldpdGgiPgogICAgICAgICAgICAgICA8ZXhwcmVzc2lvbiBuYW1lPSJBbnRpYmlvdGljcyIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgPHN1Y2hUaGF0IHhzaTp0eXBlPSJJbiI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9IlRvRGF0ZVRpbWUiIGxpYnJhcnlOYW1lPSJGSElSSGVscGVycyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0iYXV0aG9yZWRPbiIgc2NvcGU9IkFudGliaW90aWNzIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb3dDbG9zZWQ9InRydWUiIGhpZ2hDbG9zZWQ9ImZhbHNlIiB4c2k6dHlwZT0iSW50ZXJ2YWwiPgogICAgICAgICAgICAgICAgICAgICA8bG93IHhzaTp0eXBlPSJTdWJ0cmFjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9IlRvRGF0ZVRpbWUiIGxpYnJhcnlOYW1lPSJGSElSSGVscGVycyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgYXNUeXBlPSJmaGlyOmRhdGVUaW1lIiB4c2k6dHlwZT0iQXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBwYXRoPSJvbnNldCIgc2NvcGU9IlBoYXJ5bmdpdGlzIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHZhbHVlPSIzMCIgdW5pdD0iZGF5cyIgeHNpOnR5cGU9IlF1YW50aXR5Ii8+CiAgICAgICAgICAgICAgICAgICAgIDwvbG93PgogICAgICAgICAgICAgICAgICAgICA8aGlnaCBuYW1lPSJUb0RhdGVUaW1lIiBsaWJyYXJ5TmFtZT0iRkhJUkhlbHBlcnMiIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGFzVHlwZT0iZmhpcjpkYXRlVGltZSIgeHNpOnR5cGU9IkFzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0ib25zZXQiIHNjb3BlPSJQaGFyeW5naXRpcyIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgPC9oaWdoPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgIDwvc3VjaFRoYXQ+CiAgICAgICAgICAgIDwvcmVsYXRpb25zaGlwPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIG5hbWU9IkV4Y2x1ZGVkIEVuY291bnRlcnMiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8ZXhwcmVzc2lvbiB4c2k6dHlwZT0iUXVlcnkiPgogICAgICAgICAgICA8c291cmNlIGFsaWFzPSJFbmNvdW50ZXJzIj4KICAgICAgICAgICAgICAgPGV4cHJlc3Npb24gbmFtZT0iUGhhcnluZ2l0aXMgRW5jb3VudGVycyBXaXRoIEFudGliaW90aWNzIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgPHJlbGF0aW9uc2hpcCBhbGlhcz0iUGhhcnluZ2l0aXMiIHhzaTp0eXBlPSJXaXRoIj4KICAgICAgICAgICAgICAgPGV4cHJlc3Npb24gbmFtZT0iUGhhcnluZ2l0aXMgV2l0aCBQcmlvciBBbnRpYmlvdGljcyIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgPHN1Y2hUaGF0IG5hbWU9IkluY2x1ZGVzIE9yIFN0YXJ0cyBEdXJpbmciIGxpYnJhcnlOYW1lPSJDb21tb24iIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9IlBoYXJ5bmdpdGlzIiB4c2k6dHlwZT0iQWxpYXNSZWYiLz4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbmFtZT0iRW5jb3VudGVycyIgeHNpOnR5cGU9IkFsaWFzUmVmIi8+CiAgICAgICAgICAgICAgIDwvc3VjaFRoYXQ+CiAgICAgICAgICAgIDwvcmVsYXRpb25zaGlwPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIG5hbWU9IkRlbm9taW5hdG9yIEV4Y2x1c2lvbnMiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8ZXhwcmVzc2lvbiBuYW1lPSJFeGNsdWRlZCBFbmNvdW50ZXJzIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBuYW1lPSJTdHJlcCBUZXN0IEVuY291bnRlcnMiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8ZXhwcmVzc2lvbiB4c2k6dHlwZT0iUXVlcnkiPgogICAgICAgICAgICA8c291cmNlIGFsaWFzPSJFbmNvdW50ZXJzIj4KICAgICAgICAgICAgICAgPGV4cHJlc3Npb24gbmFtZT0iUGhhcnluZ2l0aXMgRW5jb3VudGVycyBXaXRoIEFudGliaW90aWNzIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgPHJlbGF0aW9uc2hpcCBhbGlhcz0iVGVzdHMiIHhzaTp0eXBlPSJXaXRoIj4KICAgICAgICAgICAgICAgPGV4cHJlc3Npb24gZGF0YVR5cGU9ImZoaXI6T2JzZXJ2YXRpb24iIGNvZGVQcm9wZXJ0eT0iY29kZSIgeHNpOnR5cGU9IlJldHJpZXZlIj4KICAgICAgICAgICAgICAgICAgPGNvZGVzIG5hbWU9Ikdyb3VwIEEgU3RyZXB0b2NvY2N1cyBUZXN0IiB4c2k6dHlwZT0iVmFsdWVTZXRSZWYiLz4KICAgICAgICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICAgICAgICAgICA8c3VjaFRoYXQgeHNpOnR5cGU9IkFuZCI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJOb3QiPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iSXNOdWxsIj4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0idmFsdWUiIHNjb3BlPSJUZXN0cyIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iSW4iPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iU3RhcnQiPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBuYW1lPSJUb0ludGVydmFsIiBsaWJyYXJ5TmFtZT0iRkhJUkhlbHBlcnMiIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGFzVHlwZT0iZmhpcjpQZXJpb2QiIHhzaTp0eXBlPSJBcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHBhdGg9ImVmZmVjdGl2ZSIgc2NvcGU9IlRlc3RzIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG93Q2xvc2VkPSJ0cnVlIiBoaWdoQ2xvc2VkPSJ0cnVlIiB4c2k6dHlwZT0iSW50ZXJ2YWwiPgogICAgICAgICAgICAgICAgICAgICAgICA8bG93IHhzaTp0eXBlPSJTdWJ0cmFjdCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJTdGFydCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9IlRvSW50ZXJ2YWwiIGxpYnJhcnlOYW1lPSJGSElSSGVscGVycyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0icGVyaW9kIiBzY29wZT0iRW5jb3VudGVycyIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB2YWx1ZT0iMyIgdW5pdD0iZGF5cyIgeHNpOnR5cGU9IlF1YW50aXR5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbG93PgogICAgICAgICAgICAgICAgICAgICAgICA8aGlnaCB4c2k6dHlwZT0iQWRkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgeHNpOnR5cGU9IkVuZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9IlRvSW50ZXJ2YWwiIGxpYnJhcnlOYW1lPSJGSElSSGVscGVycyIgeHNpOnR5cGU9IkZ1bmN0aW9uUmVmIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgcGF0aD0icGVyaW9kIiBzY29wZT0iRW5jb3VudGVycyIgeHNpOnR5cGU9IlByb3BlcnR5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB2YWx1ZT0iMyIgdW5pdD0iZGF5cyIgeHNpOnR5cGU9IlF1YW50aXR5Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvaGlnaD4KICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgIDwvc3VjaFRoYXQ+CiAgICAgICAgICAgIDwvcmVsYXRpb25zaGlwPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIG5hbWU9Ik51bWVyYXRvciIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxleHByZXNzaW9uIG5hbWU9IlN0cmVwIFRlc3QgRW5jb3VudGVycyIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgPC9kZWY+CiAgIDwvc3RhdGVtZW50cz4KPC9saWJyYXJ5Pgo="/>
  </content>
  <content>
    <contentType value="text/cql"/>
    <data
          value="bGlicmFyeSBFWE0xNDZfRkhJUiB2ZXJzaW9uICc0LjAuMCcKCi8qClRoaXMgZXhhbXBsZSBpcyBhIHdvcmsgaW4gcHJvZ3Jlc3MgYW5kIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhIGZpbmFsIHNwZWNpZmljYXRpb24Kb3IgcmVjb21tZW5kYXRpb24gZm9yIGd1aWRhbmNlLiBUaGlzIGV4YW1wbGUgd2lsbCBoZWxwIGd1aWRlIGFuZCBkaXJlY3QgdGhlIHByb2Nlc3MKb2YgZmluZGluZyBjb252ZW50aW9ucyBhbmQgdXNhZ2UgcGF0dGVybnMgdGhhdCBtZWV0IHRoZSBuZWVkcyBvZiB0aGUgdmFyaW91cyBzdGFrZWhvbGRlcnMKaW4gdGhlIG1lYXN1cmUgZGV2ZWxvcG1lbnQgY29tbXVuaXR5LgoqLwoKdXNpbmcgRkhJUiB2ZXJzaW9uICczLjAuMCcKCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnMy4wLjAnIGNhbGxlZCBGSElSSGVscGVycwppbmNsdWRlIENvbW1vbl9GSElSIHZlcnNpb24gJzIuMC4wJyBjYWxsZWQgQ29tbW9uCgp2YWx1ZXNldCAiQWN1dGUgUGhhcnluZ2l0aXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAyLjEyLjEwMTEnCnZhbHVlc2V0ICJBY3V0ZSBUb25zaWxsaXRpcyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDIuMTIuMTAxMicKdmFsdWVzZXQgIkFtYnVsYXRvcnkvRUQgVmlzaXQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwNjEnCnZhbHVlc2V0ICJBbnRpYmlvdGljIE1lZGljYXRpb25zIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjE5Ni4xMi4xMDAxJwp2YWx1ZXNldCAiR3JvdXAgQSBTdHJlcHRvY29jY3VzIFRlc3QiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTk4LjEyLjEwMTInCgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZVRpbWU+Cgpjb250ZXh0IFBhdGllbnQKCi8vIFJlZ2lvbjogSW5pdGlhbCBQb3B1bGF0aW9uCgpkZWZpbmUgIklzIEJldHdlZW4gMiBhbmQgMTcgWWVhcnMgb2YgQWdlIGF0IFN0YXJ0IG9mIE1lYXN1cmVtZW50IFBlcmlvZCI6CiAgIEFnZUluWWVhcnNBdChzdGFydCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIikgPj0gMgogICAgICBhbmQgQWdlSW5ZZWFyc0F0KHN0YXJ0IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiKSA8PSAxNwoKZGVmaW5lICJBbnRpYmlvdGljcyI6CiAgIFtNZWRpY2F0aW9uUmVxdWVzdDogbWVkaWNhdGlvbiBpbiAiQW50aWJpb3RpYyBNZWRpY2F0aW9ucyJdIFByZXNjcmlwdGlvbgogICAgIHdoZXJlIFByZXNjcmlwdGlvbi5zdGF0dXMgPSAnYWN0aXZlJwogICAgICAgYW5kIFByZXNjcmlwdGlvbi5pbnRlbnQgPSAnb3JkZXInCgpkZWZpbmUgIlBoYXJ5bmdpdGlzIjoKICAgKFtDb25kaXRpb246IGNvZGUgaW4gIkFjdXRlIFBoYXJ5bmdpdGlzIl0KICAgICB1bmlvbiBbQ29uZGl0aW9uOiBjb2RlIGluICJBY3V0ZSBUb25zaWxsaXRpcyJdKSBQaGFyeW5naXRpcwogICAgIHdoZXJlIFBoYXJ5bmdpdGlzLmNsaW5pY2FsU3RhdHVzID0gJ2FjdGl2ZScKICAgICAgIGFuZCBQaGFyeW5naXRpcy52ZXJpZmljYXRpb25TdGF0dXMgPSAnY29uZmlybWVkJwoKZGVmaW5lICJNZWFzdXJlbWVudCBQZXJpb2QgRW5jb3VudGVycyI6CiAgIFtFbmNvdW50ZXI6ICJBbWJ1bGF0b3J5L0VEIFZpc2l0Il0gRW5jb3VudGVyCiAgICAgIHdoZXJlIEVuY291bnRlci5wZXJpb2QgZHVyaW5nICJNZWFzdXJlbWVudCBQZXJpb2QiCiAgICAgICAgYW5kIEVuY291bnRlci5zdGF0dXMgPSAnZmluaXNoZWQnCiAgICAgICAgYW5kICJJcyBCZXR3ZWVuIDIgYW5kIDE3IFllYXJzIG9mIEFnZSBhdCBTdGFydCBvZiBNZWFzdXJlbWVudCBQZXJpb2QiCgpkZWZpbmUgIlBoYXJ5bmdpdGlzIEVuY291bnRlcnMgV2l0aCBBbnRpYmlvdGljcyI6CiAgICJNZWFzdXJlbWVudCBQZXJpb2QgRW5jb3VudGVycyIgRW5jb3VudGVycwogICAgICB3aXRoICJQaGFyeW5naXRpcyIgUGhhcnluZ2l0aXMgc3VjaCB0aGF0CiAgICAgICAgIENvbW1vbi4iSW5jbHVkZXMgT3IgU3RhcnRzIER1cmluZyIoUGhhcnluZ2l0aXMsIEVuY291bnRlcnMpCiAgICAgIHdpdGggIkFudGliaW90aWNzIiBBbnRpYmlvdGljcyBzdWNoIHRoYXQgQW50aWJpb3RpY3MuYXV0aG9yZWRPbgogICAgICAgICAzIGRheXMgb3IgbGVzcyBhZnRlciBGSElSSGVscGVycy5Ub0ludGVydmFsKEVuY291bnRlcnMucGVyaW9kKQoKZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24iOgogICAiUGhhcnluZ2l0aXMgRW5jb3VudGVycyBXaXRoIEFudGliaW90aWNzIgoKLy8gRW5kUmVnaW9uOiBJbml0aWFsIFBvcHVsYXRpb24KCi8vIFJlZ2lvbjogRGVub21pbmF0b3IKCi8vIE5vbmUKCi8vIEVuZFJlZ2lvbjogRGVub21pbmF0b3IKCi8vIFJlZ2lvbjogRGVub21pbmF0b3IgRXhjbHVzaW9ucwoKZGVmaW5lICJQaGFyeW5naXRpcyBXaXRoIFByaW9yIEFudGliaW90aWNzIjoKICAgIlBoYXJ5bmdpdGlzIiBQaGFyeW5naXRpcwogICAgICB3aXRoICJBbnRpYmlvdGljcyIgQW50aWJpb3RpY3Mgc3VjaCB0aGF0CiAgICAgICAgIEFudGliaW90aWNzLmF1dGhvcmVkT24gMzAgZGF5cyBvciBsZXNzIGJlZm9yZSBQaGFyeW5naXRpcy5vbnNldAoKZGVmaW5lICJFeGNsdWRlZCBFbmNvdW50ZXJzIjoKICAgIlBoYXJ5bmdpdGlzIEVuY291bnRlcnMgV2l0aCBBbnRpYmlvdGljcyIgRW5jb3VudGVycwogICAgICB3aXRoICJQaGFyeW5naXRpcyBXaXRoIFByaW9yIEFudGliaW90aWNzIiBQaGFyeW5naXRpcyBzdWNoIHRoYXQKICAgICAgICAgQ29tbW9uLiJJbmNsdWRlcyBPciBTdGFydHMgRHVyaW5nIihQaGFyeW5naXRpcywgRW5jb3VudGVycykKCmRlZmluZSAiRGVub21pbmF0b3IgRXhjbHVzaW9ucyI6CiAgIkV4Y2x1ZGVkIEVuY291bnRlcnMiCgovLyBFbmRSZWdpb246IERlbm9taW5hdG9yIEV4Y2x1c2lvbnMKCi8vIFJlZ2lvbjogRGVub21pbmF0b3IgRXhjZXB0aW9ucwoKLy8gTm9uZQoKLy8gRW5kUmVnaW9uOiBEZW5vbWluYXRvciBFeGNlcHRpb25zCgovLyBSZWdpb246IE51bWVyYXRvcgoKZGVmaW5lICJTdHJlcCBUZXN0IEVuY291bnRlcnMiOgogICAiUGhhcnluZ2l0aXMgRW5jb3VudGVycyBXaXRoIEFudGliaW90aWNzIiBFbmNvdW50ZXJzCiAgICAgIHdpdGggW09ic2VydmF0aW9uOiBjb2RlIGluICJHcm91cCBBIFN0cmVwdG9jb2NjdXMgVGVzdCJdIFRlc3RzCiAgICAgICAgIHN1Y2ggdGhhdCBUZXN0cy52YWx1ZSBpcyBub3QgbnVsbAogICAgICAgICAgICBhbmQgVGVzdHMuZWZmZWN0aXZlIHN0YXJ0cyBkdXJpbmcKICAgICAgICAgICAgICAgSW50ZXJ2YWxbc3RhcnQgb2YgRkhJUkhlbHBlcnMuVG9JbnRlcnZhbChFbmNvdW50ZXJzLnBlcmlvZCkgLSAzIGRheXMsCiAgICAgICAgICAgICAgICAgZW5kIG9mIEZISVJIZWxwZXJzLlRvSW50ZXJ2YWwoRW5jb3VudGVycy5wZXJpb2QpICsgMyBkYXlzXQoKZGVmaW5lICJOdW1lcmF0b3IiOgogICAiU3RyZXAgVGVzdCBFbmNvdW50ZXJzIgoKLy8gRW5kUmVnaW9uOiBOdW1lcmF0b3IKCi8vIFJlZ2lvbjogTnVtZXJhdG9yIEV4Y2x1c2lvbgoKLy8gTm9uZQoKLy8gRW5kUmVnaW9uOiBOdW1lcmF0b3IgRXhjbHVzaW9uCg=="/>
  </content>
</Library>