Draft dQM CMS Content Implementation Guide
2025.1.0 - CI Build
Draft dQM CMS Content Implementation Guide, published by cqframework. This guide is not an authorized publication; it is the continuous build for version 2025.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/dqm-content-cms-2025/ and changes regularly. See the Directory of published versions
| Draft as of 2026-09-19 |
<Library xmlns="http://hl7.org/fhir">
<id value="CMS138FHIRTobaccoScrnCessation"/>
<text>
<status value="extensions"/>
<div xmlns="http://www.w3.org/1999/xhtml">
<table class="narrative-table">
<tbody>
<tr>
<th colspan="2" scope="row" class="row-header"><a name="metadata"> </a>Metadata</th>
</tr>
<tr>
<th scope="row" class="row-header">Version</th>
<td class="content-container">1.1.000</td>
</tr>
<tr>
<th scope="row" class="row-header">Status</th>
<td class="content-container">Draft</td>
</tr>
<tr>
<th scope="row" class="row-header">Type</th>
<td class="content-container">
<a href="http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html">http://terminology.hl7.org/CodeSystem/library-type</a>#logic-library
</td>
</tr>
<tr>
<th colspan="2" scope="row" class="row-header"><a name="parameters"> </a>Parameters</th>
</tr>
<tr>
<th scope="row" class="row-header">Parameter</th>
<td class="content-container">None</td>
</tr>
<tr>
<th colspan="2" scope="row" class="row-header">Library Content</th>
</tr>
<tr>
<th scope="row" class="row-header">CQL Content</th>
<td>
<a name="cql-content"> </a>
<pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">/*
NOTE: For use by March 2026 US Realm Connectathon participants for internal use only. Not for use or distribution in commercial products.
*/
library CMS138FHIRTobaccoScrnCessation version '1.1.000'
using USQualityCore version '0.1.0-cibuild'
using USCore version '6.1.0-derived'
using FHIR version '4.0.1'
include hl7.fhir.uv.cql.FHIRHelpers version '4.0.1' called FHIRHelpers
include hl7.fhir.uv.cql.FHIRCommon version '2.0.0' called FHIRCommon
include hl7.fhir.us.cql.CumulativeMedicationDuration version '2.0.0-ballot' called CMD
include hl7.fhir.us.cql.USCoreCommon version '2.0.0-ballot' called USCoreCommon
include hl7.fhir.us.cql.USCoreElements version '2.0.0-ballot' called USCoreElements
include Hospice version '7.1.000' called Hospice
include CQMCommon version '5.1.000' called CQMCommon
include USQualityCoreCommon version '0.1.0-cibuild' called USQualityCoreCommon
include SupplementalDataElements version '6.1.000' called SDE
include Status version '2.1.000' called Status
codesystem "CPT": 'http://www.ama-assn.org/go/cpt'
codesystem "ICD10CM": 'http://hl7.org/fhir/sid/icd-10-cm'
codesystem "TaskCode": 'http://hl7.org/fhir/CodeSystem/task-code'
valueset "Annual Wellness Visit": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1240'
valueset "Home Healthcare Services": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1016'
valueset "Nutrition Services": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1006'
valueset "Occupational Therapy Evaluation": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1011'
valueset "Office Visit": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001'
valueset "Ophthalmological Services": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1285'
valueset "Physical Therapy Evaluation": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1022'
valueset "Preventive Care Services Established Office Visit, 18 and Up": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1025'
valueset "Preventive Care Services Group Counseling": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1027'
valueset "Preventive Care Services Individual Counseling": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1026'
valueset "Preventive Care Services Initial Office Visit, 18 and Up": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1023'
valueset "Preventive Care Services, Initial Office Visit, 0 to 17": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1022'
valueset "Preventive Care, Established Office Visit, 0 to 17": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1024'
valueset "Psych Visit Diagnostic Evaluation": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1492'
valueset "Psych Visit Psychotherapy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1496'
valueset "Psychoanalysis": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1141'
valueset "Speech and Hearing Evaluation": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1530'
valueset "Telephone Visits": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1080'
valueset "Tobacco Non User": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1189'
valueset "Tobacco Use Cessation Counseling": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.509'
valueset "Tobacco Use Cessation Pharmacotherapy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1190'
valueset "Tobacco Use Screening": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1278'
valueset "Tobacco User": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1170'
valueset "Virtual Encounter": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1089'
code "Health behavior assessment, or re-assessment (ie, health-focused clinical interview, behavioral observations, clinical decision making)": '96156' from "CPT" display 'Health behavior assessment, or re-assessment (ie, health-focused clinical interview, behavioral observations, clinical decision making)'
code "Health behavior intervention, individual, face-to-face; initial 30 minutes": '96158' from "CPT" display 'Health behavior intervention, individual, face-to-face; initial 30 minutes'
code "Postoperative follow-up visit, normally included in the surgical package, to indicate that an evaluation and management service was performed during a postoperative period for a reason(s) related to the original procedure": '99024' from "CPT" display 'Postoperative follow-up visit, normally included in the surgical package, to indicate that an evaluation and management service was performed during a postoperative period for a reason(s) related to the original procedure'
code "Tobacco abuse counseling": 'Z71.6' from "ICD10CM" display 'Tobacco abuse counseling'
code "Unlisted preventive medicine service": '99429' from "CPT" display 'Unlisted preventive medicine service'
code "fulfill": 'fulfill' from "TaskCode" display 'Fulfill the focal request'
parameter "Measurement Period" Interval<DateTime>
default Interval[@2026-01-01T00:00:00.000Z, @2027-01-01T00:00:00.000Z)
context Patient
define "Denominator 1":
"Initial Population"
define "Denominator 2":
"Initial Population"
and "Most Recent Tobacco Use Screening Indicates Tobacco User" is not null
define "Denominator 3":
"Initial Population"
define "Initial Population":
AgeInYearsAt(date from start of "Measurement Period") >= 12
and ( Count("Qualifying Visit During Measurement Period") >= 2
or exists "Preventive Visit During Measurement Period"
)
define "Numerator 1":
"Most Recent Tobacco Use Screening Indicates Tobacco Non User" is not null
or "Most Recent Tobacco Use Screening Indicates Tobacco User" is not null
define "Numerator 2":
exists "Tobacco Cessation Counseling Given"
or exists "Tobacco Cessation Pharmacotherapy Ordered"
or exists "Active Pharmacotherapy for Tobacco Cessation"
define "Numerator 3":
"Most Recent Tobacco Use Screening Indicates Tobacco Non User" is not null
or ( "Most Recent Tobacco Use Screening Indicates Tobacco User" is not null
and ( exists "Tobacco Cessation Counseling Given"
or exists "Tobacco Cessation Pharmacotherapy Ordered"
or exists "Active Pharmacotherapy for Tobacco Cessation"
)
)
define "Most Recent Tobacco Use Screening Indicates Tobacco Non User":
( Last((([USCore.SmokingStatusProfile]).isObservationSmokingStatus()) TobaccoUseScreening
where TobaccoUseScreening.effective.toInterval() during day of "Measurement Period"
sort by start of effective.toInterval()
) ) MostRecentTobaccoUseScreening
where MostRecentTobaccoUseScreening.value as CodeableConcept in "Tobacco Non User"
define "Active Pharmacotherapy for Tobacco Cessation":
( ( [MedicationRequest: "Tobacco Use Cessation Pharmacotherapy"] ).isMedicationActive ( ) ) TakingCessationPharmacotherapy
where TakingCessationPharmacotherapy.medicationRequestPeriod ( ) during day of Interval[start of "Measurement Period" - 6 months, end of "Measurement Period"]
define "Most Recent Tobacco Use Screening Indicates Tobacco User":
( Last((([USCore.SmokingStatusProfile]).isObservationSmokingStatus()) TobaccoUseScreening
where TobaccoUseScreening.effective.toInterval() during day of "Measurement Period"
sort by start of effective.toInterval()
) ) MostRecentTobaccoUseScreening
where MostRecentTobaccoUseScreening.value as CodeableConcept in "Tobacco User"
define "Tobacco Cessation Pharmacotherapy Ordered":
( ( [MedicationRequest: "Tobacco Use Cessation Pharmacotherapy"] ).isMedicationOrder ( ) ) CessationPharmacotherapyOrdered
where CessationPharmacotherapyOrdered.authoredOn during day of Interval[start of "Measurement Period" - 6 months, end of "Measurement Period"]
and not exists ( [TaskRejected] TaskReject
where TaskReject.focus.references ( CessationPharmacotherapyOrdered )
and TaskReject.code ~ "fulfill"
)
define "Tobacco Cessation Counseling Given":
( ( ( [Procedure: "Tobacco Use Cessation Counseling"] ).isInterventionPerformed ( ) ) TobaccoCessationCounseling
where TobaccoCessationCounseling.performed.toInterval ( ) during day of Interval[start of "Measurement Period" - 6 months, end of "Measurement Period"]
)
union ( // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
// Original:
// [ConditionProblemsHealthConcerns: "Tobacco abuse counseling"]
// union [ConditionEncounterDiagnosis: "Tobacco abuse counseling"]
( ( [FHIR.Condition: "Tobacco abuse counseling"] ).verified ( ) ) TobaccoCounseling
where TobaccoCounseling.prevalenceInterval ( ) starts during day of Interval[start of "Measurement Period" - 6 months, end of "Measurement Period"]
)
define "Preventive Visit During Measurement Period":
( ( [Encounter: "Annual Wellness Visit"]
union [Encounter: "Preventive Care Services Established Office Visit, 18 and Up"]
union [Encounter: "Preventive Care Services Initial Office Visit, 18 and Up"]
union [Encounter: "Preventive Care, Established Office Visit, 0 to 17"]
union [Encounter: "Preventive Care Services, Initial Office Visit, 0 to 17"]
union [Encounter: "Preventive Care Services Group Counseling"]
union [Encounter: "Preventive Care Services Individual Counseling"]
union ( [Encounter] E
where exists ( ( E.type ) T
where T ~ "Unlisted preventive medicine service"
)
)
union ( [Encounter] E
where exists ( ( E.type ) T
where T ~ "Postoperative follow-up visit, normally included in the surgical package, to indicate that an evaluation and management service was performed during a postoperative period for a reason(s) related to the original procedure"
)
)
union [Encounter: "Nutrition Services"]
).isEncounterPerformed ( ) ) PreventiveEncounter
where PreventiveEncounter.period during day of "Measurement Period"
define "Qualifying Visit During Measurement Period":
( ( ( [Encounter] E
where exists ( ( E.type ) T
where T ~ "Health behavior intervention, individual, face-to-face; initial 30 minutes"
)
)
union ( [Encounter] E
where exists ( ( E.type ) T
where T ~ "Health behavior assessment, or re-assessment (ie, health-focused clinical interview, behavioral observations, clinical decision making)"
)
)
union [Encounter: "Home Healthcare Services"]
union [Encounter: "Occupational Therapy Evaluation"]
union [Encounter: "Office Visit"]
union [Encounter: "Ophthalmological Services"]
union [Encounter: "Physical Therapy Evaluation"]
union [Encounter: "Psych Visit Diagnostic Evaluation"]
union [Encounter: "Psych Visit Psychotherapy"]
union [Encounter: "Psychoanalysis"]
union [Encounter: "Speech and Hearing Evaluation"]
union [Encounter: "Telephone Visits"]
union [Encounter: "Virtual Encounter"]
).isEncounterPerformed ( ) ) OfficeBasedEncounter
where OfficeBasedEncounter.period during day of "Measurement Period"
define "Denominator Exclusions":
Hospice."Has Hospice Services"
define "SDE Ethnicity":
SDE."SDE Ethnicity"
define "SDE Payer":
SDE."SDE Payer"
define "SDE Race":
SDE."SDE Race"
define "SDE Sex":
SDE."SDE Sex"</code></pre>
</td>
</tr>
<tr>
<th colspan="2" scope="row" class="row-header">Generated using version 0.5.6 of the sample-content-ig Liquid templates</th>
</tr>
</tbody>
</table>
</div>
</text>
<extension
url="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-softwaresystem">
<valueReference>
<reference value="Device/cqf-tooling"/>
</valueReference>
</extension>
<url value="https://madie.cms.gov/Library/CMS138FHIRTobaccoScrnCessation"/>
<version value="1.1.000"/>
<name value="CMS138FHIRTobaccoScrnCessation"/>
<status value="draft"/>
<type>
<coding>
<system value="http://terminology.hl7.org/CodeSystem/library-type"/>
<code value="logic-library"/>
</coding>
</type>
<date value="2026-09-19T16:31:14+00:00"/>
<content>
<contentType value="text/cql"/>
<data
value="LyoKTk9URTogRm9yIHVzZSBieSBNYXJjaCAyMDI2IFVTIFJlYWxtIENvbm5lY3RhdGhvbiBwYXJ0aWNpcGFudHMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBOb3QgZm9yIHVzZSBvciBkaXN0cmlidXRpb24gaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4KKi8KbGlicmFyeSBDTVMxMzhGSElSVG9iYWNjb1Njcm5DZXNzYXRpb24gdmVyc2lvbiAnMS4xLjAwMCcKCnVzaW5nIFVTUXVhbGl0eUNvcmUgdmVyc2lvbiAnMC4xLjAtY2lidWlsZCcKdXNpbmcgVVNDb3JlIHZlcnNpb24gJzYuMS4wLWRlcml2ZWQnCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIGhsNy5maGlyLnV2LmNxbC5GSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScgY2FsbGVkIEZISVJIZWxwZXJzCmluY2x1ZGUgaGw3LmZoaXIudXYuY3FsLkZISVJDb21tb24gdmVyc2lvbiAnMi4wLjAnIGNhbGxlZCBGSElSQ29tbW9uCmluY2x1ZGUgaGw3LmZoaXIudXMuY3FsLkN1bXVsYXRpdmVNZWRpY2F0aW9uRHVyYXRpb24gdmVyc2lvbiAnMi4wLjAtYmFsbG90JyBjYWxsZWQgQ01ECmluY2x1ZGUgaGw3LmZoaXIudXMuY3FsLlVTQ29yZUNvbW1vbiB2ZXJzaW9uICcyLjAuMC1iYWxsb3QnIGNhbGxlZCBVU0NvcmVDb21tb24KaW5jbHVkZSBobDcuZmhpci51cy5jcWwuVVNDb3JlRWxlbWVudHMgdmVyc2lvbiAnMi4wLjAtYmFsbG90JyBjYWxsZWQgVVNDb3JlRWxlbWVudHMKCmluY2x1ZGUgSG9zcGljZSB2ZXJzaW9uICc3LjEuMDAwJyBjYWxsZWQgSG9zcGljZQppbmNsdWRlIENRTUNvbW1vbiB2ZXJzaW9uICc1LjEuMDAwJyBjYWxsZWQgQ1FNQ29tbW9uCmluY2x1ZGUgVVNRdWFsaXR5Q29yZUNvbW1vbiB2ZXJzaW9uICcwLjEuMC1jaWJ1aWxkJyBjYWxsZWQgVVNRdWFsaXR5Q29yZUNvbW1vbgppbmNsdWRlIFN1cHBsZW1lbnRhbERhdGFFbGVtZW50cyB2ZXJzaW9uICc2LjEuMDAwJyBjYWxsZWQgU0RFCmluY2x1ZGUgU3RhdHVzIHZlcnNpb24gJzIuMS4wMDAnIGNhbGxlZCBTdGF0dXMKCmNvZGVzeXN0ZW0gIkNQVCI6ICdodHRwOi8vd3d3LmFtYS1hc3NuLm9yZy9nby9jcHQnCmNvZGVzeXN0ZW0gIklDRDEwQ00iOiAnaHR0cDovL2hsNy5vcmcvZmhpci9zaWQvaWNkLTEwLWNtJwpjb2Rlc3lzdGVtICJUYXNrQ29kZSI6ICdodHRwOi8vaGw3Lm9yZy9maGlyL0NvZGVTeXN0ZW0vdGFzay1jb2RlJwoKdmFsdWVzZXQgIkFubnVhbCBXZWxsbmVzcyBWaXNpdCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy41MjYuMy4xMjQwJwp2YWx1ZXNldCAiSG9tZSBIZWFsdGhjYXJlIFNlcnZpY2VzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDE2Jwp2YWx1ZXNldCAiTnV0cml0aW9uIFNlcnZpY2VzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMDYnCnZhbHVlc2V0ICJPY2N1cGF0aW9uYWwgVGhlcmFweSBFdmFsdWF0aW9uIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjEwMTEnCnZhbHVlc2V0ICJPZmZpY2UgVmlzaXQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwMDEnCnZhbHVlc2V0ICJPcGh0aGFsbW9sb2dpY2FsIFNlcnZpY2VzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjEyODUnCnZhbHVlc2V0ICJQaHlzaWNhbCBUaGVyYXB5IEV2YWx1YXRpb24iOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNTI2LjMuMTAyMicKdmFsdWVzZXQgIlByZXZlbnRpdmUgQ2FyZSBTZXJ2aWNlcyBFc3RhYmxpc2hlZCBPZmZpY2UgVmlzaXQsIDE4IGFuZCBVcCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTAyNScKdmFsdWVzZXQgIlByZXZlbnRpdmUgQ2FyZSBTZXJ2aWNlcyBHcm91cCBDb3Vuc2VsaW5nIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDI3Jwp2YWx1ZXNldCAiUHJldmVudGl2ZSBDYXJlIFNlcnZpY2VzIEluZGl2aWR1YWwgQ291bnNlbGluZyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTAyNicKdmFsdWVzZXQgIlByZXZlbnRpdmUgQ2FyZSBTZXJ2aWNlcyBJbml0aWFsIE9mZmljZSBWaXNpdCwgMTggYW5kIFVwIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDIzJwp2YWx1ZXNldCAiUHJldmVudGl2ZSBDYXJlIFNlcnZpY2VzLCBJbml0aWFsIE9mZmljZSBWaXNpdCwgMCB0byAxNyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTAyMicKdmFsdWVzZXQgIlByZXZlbnRpdmUgQ2FyZSwgRXN0YWJsaXNoZWQgT2ZmaWNlIFZpc2l0LCAwIHRvIDE3IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDI0Jwp2YWx1ZXNldCAiUHN5Y2ggVmlzaXQgRGlhZ25vc3RpYyBFdmFsdWF0aW9uIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjE0OTInCnZhbHVlc2V0ICJQc3ljaCBWaXNpdCBQc3ljaG90aGVyYXB5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjE0OTYnCnZhbHVlc2V0ICJQc3ljaG9hbmFseXNpcyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy41MjYuMy4xMTQxJwp2YWx1ZXNldCAiU3BlZWNoIGFuZCBIZWFyaW5nIEV2YWx1YXRpb24iOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNTI2LjMuMTUzMCcKdmFsdWVzZXQgIlRlbGVwaG9uZSBWaXNpdHMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwODAnCnZhbHVlc2V0ICJUb2JhY2NvIE5vbiBVc2VyIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjExODknCnZhbHVlc2V0ICJUb2JhY2NvIFVzZSBDZXNzYXRpb24gQ291bnNlbGluZyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy41MjYuMy41MDknCnZhbHVlc2V0ICJUb2JhY2NvIFVzZSBDZXNzYXRpb24gUGhhcm1hY290aGVyYXB5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjExOTAnCnZhbHVlc2V0ICJUb2JhY2NvIFVzZSBTY3JlZW5pbmciOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNTI2LjMuMTI3OCcKdmFsdWVzZXQgIlRvYmFjY28gVXNlciI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy41MjYuMy4xMTcwJwp2YWx1ZXNldCAiVmlydHVhbCBFbmNvdW50ZXIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwODknCgpjb2RlICJIZWFsdGggYmVoYXZpb3IgYXNzZXNzbWVudCwgb3IgcmUtYXNzZXNzbWVudCAoaWUsIGhlYWx0aC1mb2N1c2VkIGNsaW5pY2FsIGludGVydmlldywgYmVoYXZpb3JhbCBvYnNlcnZhdGlvbnMsIGNsaW5pY2FsIGRlY2lzaW9uIG1ha2luZykiOiAnOTYxNTYnIGZyb20gIkNQVCIgZGlzcGxheSAnSGVhbHRoIGJlaGF2aW9yIGFzc2Vzc21lbnQsIG9yIHJlLWFzc2Vzc21lbnQgKGllLCBoZWFsdGgtZm9jdXNlZCBjbGluaWNhbCBpbnRlcnZpZXcsIGJlaGF2aW9yYWwgb2JzZXJ2YXRpb25zLCBjbGluaWNhbCBkZWNpc2lvbiBtYWtpbmcpJwpjb2RlICJIZWFsdGggYmVoYXZpb3IgaW50ZXJ2ZW50aW9uLCBpbmRpdmlkdWFsLCBmYWNlLXRvLWZhY2U7IGluaXRpYWwgMzAgbWludXRlcyI6ICc5NjE1OCcgZnJvbSAiQ1BUIiBkaXNwbGF5ICdIZWFsdGggYmVoYXZpb3IgaW50ZXJ2ZW50aW9uLCBpbmRpdmlkdWFsLCBmYWNlLXRvLWZhY2U7IGluaXRpYWwgMzAgbWludXRlcycKY29kZSAiUG9zdG9wZXJhdGl2ZSBmb2xsb3ctdXAgdmlzaXQsIG5vcm1hbGx5IGluY2x1ZGVkIGluIHRoZSBzdXJnaWNhbCBwYWNrYWdlLCB0byBpbmRpY2F0ZSB0aGF0IGFuIGV2YWx1YXRpb24gYW5kIG1hbmFnZW1lbnQgc2VydmljZSB3YXMgcGVyZm9ybWVkIGR1cmluZyBhIHBvc3RvcGVyYXRpdmUgcGVyaW9kIGZvciBhIHJlYXNvbihzKSByZWxhdGVkIHRvIHRoZSBvcmlnaW5hbCBwcm9jZWR1cmUiOiAnOTkwMjQnIGZyb20gIkNQVCIgZGlzcGxheSAnUG9zdG9wZXJhdGl2ZSBmb2xsb3ctdXAgdmlzaXQsIG5vcm1hbGx5IGluY2x1ZGVkIGluIHRoZSBzdXJnaWNhbCBwYWNrYWdlLCB0byBpbmRpY2F0ZSB0aGF0IGFuIGV2YWx1YXRpb24gYW5kIG1hbmFnZW1lbnQgc2VydmljZSB3YXMgcGVyZm9ybWVkIGR1cmluZyBhIHBvc3RvcGVyYXRpdmUgcGVyaW9kIGZvciBhIHJlYXNvbihzKSByZWxhdGVkIHRvIHRoZSBvcmlnaW5hbCBwcm9jZWR1cmUnCmNvZGUgIlRvYmFjY28gYWJ1c2UgY291bnNlbGluZyI6ICdaNzEuNicgZnJvbSAiSUNEMTBDTSIgZGlzcGxheSAnVG9iYWNjbyBhYnVzZSBjb3Vuc2VsaW5nJwpjb2RlICJVbmxpc3RlZCBwcmV2ZW50aXZlIG1lZGljaW5lIHNlcnZpY2UiOiAnOTk0MjknIGZyb20gIkNQVCIgZGlzcGxheSAnVW5saXN0ZWQgcHJldmVudGl2ZSBtZWRpY2luZSBzZXJ2aWNlJwpjb2RlICJmdWxmaWxsIjogJ2Z1bGZpbGwnIGZyb20gIlRhc2tDb2RlIiBkaXNwbGF5ICdGdWxmaWxsIHRoZSBmb2NhbCByZXF1ZXN0JwoKcGFyYW1ldGVyICJNZWFzdXJlbWVudCBQZXJpb2QiIEludGVydmFsPERhdGVUaW1lPgogIGRlZmF1bHQgSW50ZXJ2YWxbQDIwMjYtMDEtMDFUMDA6MDA6MDAuMDAwWiwgQDIwMjctMDEtMDFUMDA6MDA6MDAuMDAwWikKCmNvbnRleHQgUGF0aWVudAoKZGVmaW5lICJEZW5vbWluYXRvciAxIjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIgoKZGVmaW5lICJEZW5vbWluYXRvciAyIjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIgogICAgYW5kICJNb3N0IFJlY2VudCBUb2JhY2NvIFVzZSBTY3JlZW5pbmcgSW5kaWNhdGVzIFRvYmFjY28gVXNlciIgaXMgbm90IG51bGwKCmRlZmluZSAiRGVub21pbmF0b3IgMyI6CiAgIkluaXRpYWwgUG9wdWxhdGlvbiIKCmRlZmluZSAiSW5pdGlhbCBQb3B1bGF0aW9uIjoKICBBZ2VJblllYXJzQXQoZGF0ZSBmcm9tIHN0YXJ0IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiKSA+PSAxMgogICAgYW5kICggQ291bnQoIlF1YWxpZnlpbmcgVmlzaXQgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCIpID49IDIKICAgICAgICBvciBleGlzdHMgIlByZXZlbnRpdmUgVmlzaXQgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCIKICAgICkKCmRlZmluZSAiTnVtZXJhdG9yIDEiOgogICJNb3N0IFJlY2VudCBUb2JhY2NvIFVzZSBTY3JlZW5pbmcgSW5kaWNhdGVzIFRvYmFjY28gTm9uIFVzZXIiIGlzIG5vdCBudWxsCiAgICBvciAiTW9zdCBSZWNlbnQgVG9iYWNjbyBVc2UgU2NyZWVuaW5nIEluZGljYXRlcyBUb2JhY2NvIFVzZXIiIGlzIG5vdCBudWxsCgpkZWZpbmUgIk51bWVyYXRvciAyIjoKICBleGlzdHMgIlRvYmFjY28gQ2Vzc2F0aW9uIENvdW5zZWxpbmcgR2l2ZW4iCiAgICBvciBleGlzdHMgIlRvYmFjY28gQ2Vzc2F0aW9uIFBoYXJtYWNvdGhlcmFweSBPcmRlcmVkIgogICAgb3IgZXhpc3RzICJBY3RpdmUgUGhhcm1hY290aGVyYXB5IGZvciBUb2JhY2NvIENlc3NhdGlvbiIKCmRlZmluZSAiTnVtZXJhdG9yIDMiOgogICJNb3N0IFJlY2VudCBUb2JhY2NvIFVzZSBTY3JlZW5pbmcgSW5kaWNhdGVzIFRvYmFjY28gTm9uIFVzZXIiIGlzIG5vdCBudWxsCiAgICBvciAoICJNb3N0IFJlY2VudCBUb2JhY2NvIFVzZSBTY3JlZW5pbmcgSW5kaWNhdGVzIFRvYmFjY28gVXNlciIgaXMgbm90IG51bGwKICAgICAgICBhbmQgKCBleGlzdHMgIlRvYmFjY28gQ2Vzc2F0aW9uIENvdW5zZWxpbmcgR2l2ZW4iCiAgICAgICAgICAgIG9yIGV4aXN0cyAiVG9iYWNjbyBDZXNzYXRpb24gUGhhcm1hY290aGVyYXB5IE9yZGVyZWQiCiAgICAgICAgICAgIG9yIGV4aXN0cyAiQWN0aXZlIFBoYXJtYWNvdGhlcmFweSBmb3IgVG9iYWNjbyBDZXNzYXRpb24iCiAgICAgICAgKQogICAgKQoKZGVmaW5lICJNb3N0IFJlY2VudCBUb2JhY2NvIFVzZSBTY3JlZW5pbmcgSW5kaWNhdGVzIFRvYmFjY28gTm9uIFVzZXIiOgogICggTGFzdCgoKFtVU0NvcmUuU21va2luZ1N0YXR1c1Byb2ZpbGVdKS5pc09ic2VydmF0aW9uU21va2luZ1N0YXR1cygpKSBUb2JhY2NvVXNlU2NyZWVuaW5nCiAgICAgIHdoZXJlIFRvYmFjY29Vc2VTY3JlZW5pbmcuZWZmZWN0aXZlLnRvSW50ZXJ2YWwoKSBkdXJpbmcgZGF5IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiCiAgICAgIHNvcnQgYnkgc3RhcnQgb2YgZWZmZWN0aXZlLnRvSW50ZXJ2YWwoKQogICkgKSBNb3N0UmVjZW50VG9iYWNjb1VzZVNjcmVlbmluZwogICAgd2hlcmUgTW9zdFJlY2VudFRvYmFjY29Vc2VTY3JlZW5pbmcudmFsdWUgYXMgQ29kZWFibGVDb25jZXB0IGluICJUb2JhY2NvIE5vbiBVc2VyIgoKZGVmaW5lICJBY3RpdmUgUGhhcm1hY290aGVyYXB5IGZvciBUb2JhY2NvIENlc3NhdGlvbiI6CiAgKCAoIFtNZWRpY2F0aW9uUmVxdWVzdDogIlRvYmFjY28gVXNlIENlc3NhdGlvbiBQaGFybWFjb3RoZXJhcHkiXSApLmlzTWVkaWNhdGlvbkFjdGl2ZSAoICkgKSBUYWtpbmdDZXNzYXRpb25QaGFybWFjb3RoZXJhcHkKICAgIHdoZXJlIFRha2luZ0Nlc3NhdGlvblBoYXJtYWNvdGhlcmFweS5tZWRpY2F0aW9uUmVxdWVzdFBlcmlvZCAoICkgZHVyaW5nIGRheSBvZiBJbnRlcnZhbFtzdGFydCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIiAtIDYgbW9udGhzLCBlbmQgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCJdCgpkZWZpbmUgIk1vc3QgUmVjZW50IFRvYmFjY28gVXNlIFNjcmVlbmluZyBJbmRpY2F0ZXMgVG9iYWNjbyBVc2VyIjoKICAoIExhc3QoKChbVVNDb3JlLlNtb2tpbmdTdGF0dXNQcm9maWxlXSkuaXNPYnNlcnZhdGlvblNtb2tpbmdTdGF0dXMoKSkgVG9iYWNjb1VzZVNjcmVlbmluZwogICAgICB3aGVyZSBUb2JhY2NvVXNlU2NyZWVuaW5nLmVmZmVjdGl2ZS50b0ludGVydmFsKCkgZHVyaW5nIGRheSBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgICBzb3J0IGJ5IHN0YXJ0IG9mIGVmZmVjdGl2ZS50b0ludGVydmFsKCkKICApICkgTW9zdFJlY2VudFRvYmFjY29Vc2VTY3JlZW5pbmcKICAgIHdoZXJlIE1vc3RSZWNlbnRUb2JhY2NvVXNlU2NyZWVuaW5nLnZhbHVlIGFzIENvZGVhYmxlQ29uY2VwdCBpbiAiVG9iYWNjbyBVc2VyIgoKZGVmaW5lICJUb2JhY2NvIENlc3NhdGlvbiBQaGFybWFjb3RoZXJhcHkgT3JkZXJlZCI6CiAgKCAoIFtNZWRpY2F0aW9uUmVxdWVzdDogIlRvYmFjY28gVXNlIENlc3NhdGlvbiBQaGFybWFjb3RoZXJhcHkiXSApLmlzTWVkaWNhdGlvbk9yZGVyICggKSApIENlc3NhdGlvblBoYXJtYWNvdGhlcmFweU9yZGVyZWQKICAgIHdoZXJlIENlc3NhdGlvblBoYXJtYWNvdGhlcmFweU9yZGVyZWQuYXV0aG9yZWRPbiBkdXJpbmcgZGF5IG9mIEludGVydmFsW3N0YXJ0IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiIC0gNiBtb250aHMsIGVuZCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIl0KICAgICAgYW5kIG5vdCBleGlzdHMgKCBbVGFza1JlamVjdGVkXSBUYXNrUmVqZWN0CiAgICAgICAgICB3aGVyZSBUYXNrUmVqZWN0LmZvY3VzLnJlZmVyZW5jZXMgKCBDZXNzYXRpb25QaGFybWFjb3RoZXJhcHlPcmRlcmVkICkKICAgICAgICAgICAgYW5kIFRhc2tSZWplY3QuY29kZSB+ICJmdWxmaWxsIgogICAgICApCgpkZWZpbmUgIlRvYmFjY28gQ2Vzc2F0aW9uIENvdW5zZWxpbmcgR2l2ZW4iOgogICggKCAoIFtQcm9jZWR1cmU6ICJUb2JhY2NvIFVzZSBDZXNzYXRpb24gQ291bnNlbGluZyJdICkuaXNJbnRlcnZlbnRpb25QZXJmb3JtZWQgKCApICkgVG9iYWNjb0Nlc3NhdGlvbkNvdW5zZWxpbmcKICAgICAgd2hlcmUgVG9iYWNjb0Nlc3NhdGlvbkNvdW5zZWxpbmcucGVyZm9ybWVkLnRvSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgSW50ZXJ2YWxbc3RhcnQgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCIgLSA2IG1vbnRocywgZW5kIG9mICJNZWFzdXJlbWVudCBQZXJpb2QiXQogICkKICAgIHVuaW9uICggLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgICAgICAgLy8gT3JpZ2luYWw6CiAgICAgICAgLy8gICBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIlRvYmFjY28gYWJ1c2UgY291bnNlbGluZyJdCiAgICAgICAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJUb2JhY2NvIGFidXNlIGNvdW5zZWxpbmciXQogICAgICAgICggKCBbRkhJUi5Db25kaXRpb246ICJUb2JhY2NvIGFidXNlIGNvdW5zZWxpbmciXSApLnZlcmlmaWVkICggKSApIFRvYmFjY29Db3Vuc2VsaW5nCiAgICAgICAgd2hlcmUgVG9iYWNjb0NvdW5zZWxpbmcucHJldmFsZW5jZUludGVydmFsICggKSBzdGFydHMgZHVyaW5nIGRheSBvZiBJbnRlcnZhbFtzdGFydCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIiAtIDYgbW9udGhzLCBlbmQgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCJdCiAgICApCgpkZWZpbmUgIlByZXZlbnRpdmUgVmlzaXQgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCI6CiAgKCAoIFtFbmNvdW50ZXI6ICJBbm51YWwgV2VsbG5lc3MgVmlzaXQiXQogICAgICB1bmlvbiBbRW5jb3VudGVyOiAiUHJldmVudGl2ZSBDYXJlIFNlcnZpY2VzIEVzdGFibGlzaGVkIE9mZmljZSBWaXNpdCwgMTggYW5kIFVwIl0KICAgICAgdW5pb24gW0VuY291bnRlcjogIlByZXZlbnRpdmUgQ2FyZSBTZXJ2aWNlcyBJbml0aWFsIE9mZmljZSBWaXNpdCwgMTggYW5kIFVwIl0KICAgICAgdW5pb24gW0VuY291bnRlcjogIlByZXZlbnRpdmUgQ2FyZSwgRXN0YWJsaXNoZWQgT2ZmaWNlIFZpc2l0LCAwIHRvIDE3Il0KICAgICAgdW5pb24gW0VuY291bnRlcjogIlByZXZlbnRpdmUgQ2FyZSBTZXJ2aWNlcywgSW5pdGlhbCBPZmZpY2UgVmlzaXQsIDAgdG8gMTciXQogICAgICB1bmlvbiBbRW5jb3VudGVyOiAiUHJldmVudGl2ZSBDYXJlIFNlcnZpY2VzIEdyb3VwIENvdW5zZWxpbmciXQogICAgICB1bmlvbiBbRW5jb3VudGVyOiAiUHJldmVudGl2ZSBDYXJlIFNlcnZpY2VzIEluZGl2aWR1YWwgQ291bnNlbGluZyJdCiAgICAgIHVuaW9uICggW0VuY291bnRlcl0gRQogICAgICAgICAgd2hlcmUgZXhpc3RzICggKCBFLnR5cGUgKSBUCiAgICAgICAgICAgICAgd2hlcmUgVCB+ICJVbmxpc3RlZCBwcmV2ZW50aXZlIG1lZGljaW5lIHNlcnZpY2UiCiAgICAgICAgICApCiAgICAgICkKICAgICAgdW5pb24gKCBbRW5jb3VudGVyXSBFCiAgICAgICAgICB3aGVyZSBleGlzdHMgKCAoIEUudHlwZSApIFQKICAgICAgICAgICAgICB3aGVyZSBUIH4gIlBvc3RvcGVyYXRpdmUgZm9sbG93LXVwIHZpc2l0LCBub3JtYWxseSBpbmNsdWRlZCBpbiB0aGUgc3VyZ2ljYWwgcGFja2FnZSwgdG8gaW5kaWNhdGUgdGhhdCBhbiBldmFsdWF0aW9uIGFuZCBtYW5hZ2VtZW50IHNlcnZpY2Ugd2FzIHBlcmZvcm1lZCBkdXJpbmcgYSBwb3N0b3BlcmF0aXZlIHBlcmlvZCBmb3IgYSByZWFzb24ocykgcmVsYXRlZCB0byB0aGUgb3JpZ2luYWwgcHJvY2VkdXJlIgogICAgICAgICAgKQogICAgICApCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJOdXRyaXRpb24gU2VydmljZXMiXQogICkuaXNFbmNvdW50ZXJQZXJmb3JtZWQgKCApICkgUHJldmVudGl2ZUVuY291bnRlcgogICAgd2hlcmUgUHJldmVudGl2ZUVuY291bnRlci5wZXJpb2QgZHVyaW5nIGRheSBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIgoKZGVmaW5lICJRdWFsaWZ5aW5nIFZpc2l0IER1cmluZyBNZWFzdXJlbWVudCBQZXJpb2QiOgogICggKCAoIFtFbmNvdW50ZXJdIEUKICAgICAgICB3aGVyZSBleGlzdHMgKCAoIEUudHlwZSApIFQKICAgICAgICAgICAgd2hlcmUgVCB+ICJIZWFsdGggYmVoYXZpb3IgaW50ZXJ2ZW50aW9uLCBpbmRpdmlkdWFsLCBmYWNlLXRvLWZhY2U7IGluaXRpYWwgMzAgbWludXRlcyIKICAgICAgICApCiAgICApCiAgICAgIHVuaW9uICggW0VuY291bnRlcl0gRQogICAgICAgICAgd2hlcmUgZXhpc3RzICggKCBFLnR5cGUgKSBUCiAgICAgICAgICAgICAgd2hlcmUgVCB+ICJIZWFsdGggYmVoYXZpb3IgYXNzZXNzbWVudCwgb3IgcmUtYXNzZXNzbWVudCAoaWUsIGhlYWx0aC1mb2N1c2VkIGNsaW5pY2FsIGludGVydmlldywgYmVoYXZpb3JhbCBvYnNlcnZhdGlvbnMsIGNsaW5pY2FsIGRlY2lzaW9uIG1ha2luZykiCiAgICAgICAgICApCiAgICAgICkKICAgICAgdW5pb24gW0VuY291bnRlcjogIkhvbWUgSGVhbHRoY2FyZSBTZXJ2aWNlcyJdCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJPY2N1cGF0aW9uYWwgVGhlcmFweSBFdmFsdWF0aW9uIl0KICAgICAgdW5pb24gW0VuY291bnRlcjogIk9mZmljZSBWaXNpdCJdCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJPcGh0aGFsbW9sb2dpY2FsIFNlcnZpY2VzIl0KICAgICAgdW5pb24gW0VuY291bnRlcjogIlBoeXNpY2FsIFRoZXJhcHkgRXZhbHVhdGlvbiJdCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJQc3ljaCBWaXNpdCBEaWFnbm9zdGljIEV2YWx1YXRpb24iXQogICAgICB1bmlvbiBbRW5jb3VudGVyOiAiUHN5Y2ggVmlzaXQgUHN5Y2hvdGhlcmFweSJdCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJQc3ljaG9hbmFseXNpcyJdCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJTcGVlY2ggYW5kIEhlYXJpbmcgRXZhbHVhdGlvbiJdCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJUZWxlcGhvbmUgVmlzaXRzIl0KICAgICAgdW5pb24gW0VuY291bnRlcjogIlZpcnR1YWwgRW5jb3VudGVyIl0KICApLmlzRW5jb3VudGVyUGVyZm9ybWVkICggKSApIE9mZmljZUJhc2VkRW5jb3VudGVyCiAgICB3aGVyZSBPZmZpY2VCYXNlZEVuY291bnRlci5wZXJpb2QgZHVyaW5nIGRheSBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIgoKZGVmaW5lICJEZW5vbWluYXRvciBFeGNsdXNpb25zIjoKICBIb3NwaWNlLiJIYXMgSG9zcGljZSBTZXJ2aWNlcyIKCmRlZmluZSAiU0RFIEV0aG5pY2l0eSI6CiAgU0RFLiJTREUgRXRobmljaXR5IgoKZGVmaW5lICJTREUgUGF5ZXIiOgogIFNERS4iU0RFIFBheWVyIgoKZGVmaW5lICJTREUgUmFjZSI6CiAgU0RFLiJTREUgUmFjZSIKCmRlZmluZSAiU0RFIFNleCI6CiAgU0RFLiJTREUgU2V4Ig=="/>
<url
value="https://madie.cms.gov/Library-CMS138FHIRTobaccoScrnCessation.cql"/>
</content>
</Library>