This page is part of the US Situational Awareness Framework for Reporting (US SAFR) Implementation Guide (v1.0.0-ballot: STU 1 Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. No current official version has been published yet. For a full list of available versions, see the Directory of published versions
Page standards status: Informative |
{
"resourceType" : "Library",
"id" : "HRDMeasureLibrary",
"meta" : {
"profile" : [
🔗 "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-computablelibrary|1.0.0"
]
},
"text" : {
"status" : "extensions",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n<div>\n <table class=\"grid dict\">\n \n \n <tr>\n <th scope=\"row\"><b>Title: </b></th>\n <td style=\"padding-left: 4px;\">Library - HRD Measure Example</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Id: </b></th>\n <td style=\"padding-left: 4px;\">HRDMeasureLibrary</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Version: </b></th>\n <td style=\"padding-left: 4px;\">1.0.0-ballot</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Url: </b></th>\n <td style=\"padding-left: 4px;\"><code>http://example.org/fhir/Library/HRDMeasureLibrary</code></td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\">\n <b>\n \n \n \n </b>\n </th>\n <td style=\"padding-left: 4px;\">\n \n <p style=\"margin-bottom: 5px;\">\n <span>urn:oid:2.16.840.1.113883.4.642.40.53.28.3</span>\n </p>\n \n </td>\n </tr>\n \n\n \n\n \n\n \n\n \n <tr>\n <th scope=\"row\"><b>Type: </b></th>\n <td style=\"padding-left: 4px;\">\n \n \n \n <p style=\"margin-bottom: 5px;\">\n <b>system: </b> <span><a href=\"http://terminology.hl7.org/6.2.0/CodeSystem-library-type.html\">http://terminology.hl7.org/CodeSystem/library-type</a></span>\n </p>\n \n \n <p style=\"margin-bottom: 5px;\">\n <b>code: </b> <span>logic-library</span>\n </p>\n \n \n \n \n \n </td>\n </tr>\n \n\n \n\n \n <tr>\n <th scope=\"row\"><b>Date: </b></th>\n <td style=\"padding-left: 4px;\">2025-03-13</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Publisher: </b></th>\n <td style=\"padding-left: 4px;\">HL7 International / Public Health</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Description: </b></th>\n <td style=\"padding-left: 4px;\"><div><p>This library contains CQL logic for evaluating structural measures related to hospital respiratory disease reporting capabilities</p>\n</div></td>\n </tr>\n \n\n \n\n \n\n \n <tr>\n <th scope=\"row\"><b>Use Context: </b></th>\n <td style=\"padding-left: 4px;\">\n <table class=\"grid-dict\">\n <tr>\n <th><b>code</b></th>\n <th><b>value</b></th>\n </tr>\n \n <tr>\n <td>focus</td>\n <td/>\n </tr>\n \n </table>\n </td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Jurisdiction: </b></th>\n <td style=\"padding-left: 4px;\">US</td>\n </tr>\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n <tr>\n <th scope=\"row\"><b>Related Artifacts: </b></th>\n <td style=\"padding-left: 4px;\">\n \n \n \n <p><b>Dependencies</b></p>\n <ul>\n \n <li><a href=\"http://fhir.org/guides/cqf/common/4.0.1/Library-FHIRHelpers.html\">http://fhir.org/guides/cqf/common/Library/FHIRHelpers</a></li>\n \n <li><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1146.1123/expansion\">COVID_19 (Disorders) (ICD10CM)</a></li>\n \n <li><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.102.12.1012/expansion\">Acute Tonsillitis</a></li>\n \n <li><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1146.1124/expansion\">COVID_19 (Disorders) (SNOMED)version: null20240123)</a></li>\n \n <li><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1146.1125/expansion\">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1125</a></li>\n \n <li><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.117.1.7.1.87/expansion\">Discharge To Acute Care Facility</a></li>\n \n <li><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.5.1001/expansion\">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.5.1001</a></li>\n \n <li><code>http://loinc.org|11516-2</code></li>\n \n <li><a href=\"http://hl7.org/fhir/R4/valueset-communication-category.html\">CommunicationCategory</a></li>\n \n </ul>\n \n \n \n \n \n </td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Parameters: </b></th>\n <td style=\"padding-left: 4px;\">\n <table class=\"grid-dict\">\n <tr><th><b>Name</b></th><th><b>Type</b></th><th><b>Min</b></th><th><b>Max</b></th><th><b>In/Out</b></th></tr>\n \n <tr><th>Measurement Period</th><th>Period</th><th>1</th><th>1</th><th>In</th></tr>\n \n </table>\n </td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Data Requirements:</b></th>\n <td style=\"padding-left: 4px;\">\n <table class=\"grid-dict\">\n <tr><th><b>Type</b></th><th><b>Profile</b></th><th><b>Must Support</b></th><th><b>Code Filter</b></th></tr>\n \n <tr>\n <th>Device</th>\n <th><a href=\"http://hl7.org/fhir/R4/device.html\">Device</a></th>\n <th/>\n <th>\n \n <b>code filter: </b>\n \n <br/>\n \n \n <span style=\"padding-left: 4px;\">\n <b>path: </b><span>type</span>\n </span>\n \n <br/>\n \n \n \n <span style=\"padding-left: 4px;\">\n <b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1123</span>\n </span>\n \n \n \n </th>\n </tr>\n \n <tr>\n <th>Device</th>\n <th><a href=\"http://hl7.org/fhir/R4/device.html\">Device</a></th>\n <th/>\n <th>\n \n <b>code filter: </b>\n \n <br/>\n \n \n <span style=\"padding-left: 4px;\">\n <b>path: </b><span>type</span>\n </span>\n \n <br/>\n \n \n \n <span style=\"padding-left: 4px;\">\n <b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1012</span>\n </span>\n \n \n \n </th>\n </tr>\n \n <tr>\n <th>Device</th>\n <th><a href=\"http://hl7.org/fhir/R4/device.html\">Device</a></th>\n <th/>\n <th>\n \n <b>code filter: </b>\n \n <br/>\n \n \n <span style=\"padding-left: 4px;\">\n <b>path: </b><span>type</span>\n </span>\n \n <br/>\n \n \n \n <span style=\"padding-left: 4px;\">\n <b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1124|20240123</span>\n </span>\n \n \n \n </th>\n </tr>\n \n <tr>\n <th>Device</th>\n <th><a href=\"http://hl7.org/fhir/R4/device.html\">Device</a></th>\n <th/>\n <th>\n \n <b>code filter: </b>\n \n <br/>\n \n \n <span style=\"padding-left: 4px;\">\n <b>path: </b><span>type</span>\n </span>\n \n <br/>\n \n \n \n <span style=\"padding-left: 4px;\">\n <b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1125</span>\n </span>\n \n \n \n </th>\n </tr>\n \n <tr>\n <th>Device</th>\n <th><a href=\"http://hl7.org/fhir/R4/device.html\">Device</a></th>\n <th/>\n <th>\n \n <b>code filter: </b>\n \n <br/>\n \n \n <span style=\"padding-left: 4px;\">\n <b>path: </b><span>type</span>\n </span>\n \n <br/>\n \n \n \n <span style=\"padding-left: 4px;\">\n <b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.5.1001</span>\n </span>\n \n \n \n </th>\n </tr>\n \n <tr>\n <th>Location</th>\n <th><a href=\"http://hl7.org/fhir/R4/location.html\">Location</a></th>\n <th/>\n <th>\n \n <b>code filter: </b>\n \n <br/>\n \n \n <span style=\"padding-left: 4px;\">\n <b>path: </b><span>type</span>\n </span>\n \n <br/>\n \n \n \n <span style=\"padding-left: 4px;\">\n <b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.87</span>\n </span>\n \n \n \n </th>\n </tr>\n \n <tr>\n <th>Location</th>\n <th><a href=\"http://hl7.org/fhir/R4/location.html\">Location</a></th>\n <th/>\n <th>\n \n <b>code filter: </b>\n \n <br/>\n \n \n <span style=\"padding-left: 4px;\">\n <b>path: </b><span>physicalType.coding.code</span>\n </span>\n \n <br/>\n \n \n \n \n \n <p style=\"margin-bottom: 5px;\">\n <b>system: </b> <span><a href=\"http://terminology.hl7.org/6.2.0/CodeSystem-location-physical-type.html\">http://terminology.hl7.org/CodeSystem/location-physical-type</a></span>\n </p>\n \n \n <p style=\"margin-bottom: 5px;\">\n <b>code: </b> <span>bd</span>\n </p>\n \n \n \n \n </th>\n </tr>\n \n <tr>\n <th>DocumentReference</th>\n <th><a href=\"http://hl7.org/fhir/R4/documentreference.html\">DocumentReference</a></th>\n <th/>\n <th>\n \n <b>code filter: </b>\n \n <br/>\n \n \n <span style=\"padding-left: 4px;\">\n <b>path: </b><span>type.coding.code</span>\n </span>\n \n <br/>\n \n \n \n \n \n <p style=\"margin-bottom: 5px;\">\n <b>system: </b> <span><a href=\"https://loinc.org/\">http://loinc.org</a></span>\n </p>\n \n \n <p style=\"margin-bottom: 5px;\">\n <b>code: </b> <span>11516-2</span>\n </p>\n \n \n \n \n </th>\n </tr>\n \n <tr>\n <th>Communication</th>\n <th><a href=\"http://hl7.org/fhir/R4/communication.html\">Communication</a></th>\n <th/>\n <th>\n \n <b>code filter: </b>\n \n <br/>\n \n \n <span style=\"padding-left: 4px;\">\n <b>path: </b><span>category.coding.code</span>\n </span>\n \n <br/>\n \n \n \n \n \n <p style=\"margin-bottom: 5px;\">\n <b>system: </b> <span><a href=\"http://terminology.hl7.org/6.2.0/CodeSystem-communication-category.html\">http://terminology.hl7.org/CodeSystem/communication-category</a></span>\n </p>\n \n \n <p style=\"margin-bottom: 5px;\">\n <b>code: </b> <span>notification</span>\n </p>\n \n \n \n \n </th>\n </tr>\n \n </table>\n </td>\n </tr>\n \n\n \n \n <tr>\n <td colspan=\"2\">\n <table>\n <tr><th><a id=\"cql-content\"><b>Content: </b></a> text/cql</th></tr>\n <tr><td><pre><code class=\"language-cql\">library HRDMeasureStructureLibrary version '1.0.0'\n\nusing FHIR version '4.0.1'\n\ninclude FHIRHelpers version '4.0.1' called FHIRHelpers\n\n// Terminology definitions\ncodesystem "LOINC": 'http://loinc.org'\ncodesystem "SNOMED CT": 'http://snomed.info/sct&\ncodesystem "ICD-10-CM": 'http://hl7.org/fhir/sid/icd-10-cm'\n\n// Value sets\nvalueset "Respiratory Specimen Collection Devices": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1125'\nvalueset "COVID-19 Tests": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1123'\nvalueset "Influenza Tests": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1012'\nvalueset "RSV Tests": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1124'\nvalueset "ICU Location Types": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.87'\nvalueset "Ventilator Device Types": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.5.1001'\n\n// Parameter for measurement period\nparameter "Measurement Period" Interval<Date>\n default Interval[@2025-03-01, @2025-03-07]\n\ncontext Patient\n\n// STRUCTURE MEASURE COMPONENTS\n// For a structure measure, we assess capabilities, resources and organizational structures\n\n// 1. Test for the presence of respiratory testing capabilities\ndefine "Has COVID-19 Testing Capability":\n exists (\n [Device] Device\n where Device.type.coding in "COVID-19 Tests"\n and Device.status = 'active'\n )\n\ndefine "Has Influenza Testing Capability":\n exists (\n [Device] Device\n where Device.type.coding in "Influenza Tests"\n and Device.status = 'active'\n )\n\ndefine "Has RSV Testing Capability":\n exists (\n [Device] Device\n where Device.type.coding in "RSV Tests"\n and Device.status = 'active'\n )\n\ndefine "Has Specimen Collection Capabilities":\n exists (\n [Device] Device\n where Device.type.coding in "Respiratory Specimen Collection Devices"\n and Device.status = 'active'\n )\n\ndefine "Has ICU Locations":\n exists (\n [Location] Location\n where Location.type.coding in "ICU Location Types"\n and Location.status = 'active'\n )\n\ndefine "Has Ventilator Resources":\n exists (\n [Device] Device\n where Device.type.coding in "Ventilator Device Types"\n and Device.status = 'active'\n )\n\ndefine "Has HRD Reporting Protocol":\n exists (\n [DocumentReference] D\n where D.type.coding.code in {'11516-2'} // LOINC for infection control protocol\n and D.status = 'current'\n and D.description contains 'NHSN'\n and D.description contains 'HRD'\n )\n\n// CONTINUOUS VARIABLE CALCULATIONS\n\n// Hospital capacity metrics\ndefine "Total Bed Capacity":\n Sum(\n [Location] Location\n where Location.status = 'active'\n and Location.physicalType.coding.code = 'bd'\n return (\n Location.extension E\n where E.url = 'http://hl7.org/fhir/StructureDefinition/location-bed-count'\n return E.valueInteger\n ).valueInteger\n )\n\ndefine "ICU Bed Capacity":\n Sum(\n [Location] Location\n where Location.status = 'active'\n and Location.type.coding in "ICU Location Types"\n and Location.physicalType.coding.code = 'bd'\n return (\n Location.extension E\n where E.url = 'http://hl7.org/fhir/StructureDefinition/location-bed-count'\n return E.valueInteger\n ).valueInteger\n )\n\ndefine "Ventilator Count":\n Count(\n [Device] Device\n where Device.type.coding in "Ventilator Device Types"\n and Device.status = 'active'\n )\n\n// Weekly reporting compliance and metrics\ndefine "Reporting Weeks in Measurement Period":\n Count(\n expand{2025-03-01, @2025-03-07, week}\n )\n\ndefine "HRD Reports Submitted During Period":\n Count(\n [Communication] C\n where C.category.coding.code in {'notification'}\n and C.topic.text contains 'NHSN'\n and C.topic.text contains 'HRD'\n and C.sent during "Measurement Period"\n )\n\ndefine "Weekly Reporting Compliance":\n "HRD Reports Submitted During Period" / "Reporting Weeks in Measurement Period"\n\n// Structural readiness scores\ndefine "Has All Testing Capabilities":\n if ("Has COVID-19 Testing Capability" and "Has Influenza Testing Capability" and "Has RSV Testing Capability")\n then 1\n else 0\n\ndefine "Has Required Reporting Structure":\n if ("Has HRD Reporting Protocol") \n then 1\n else 0\n\n// Continuous variable for structural measure assessment\ndefine "Structural Readiness Score":\n ("Has COVID-19 Testing Capability" as Integer +\n "Has Influenza Testing Capability" as Integer +\n "Has RSV Testing Capability" as Integer +\n "Has Specimen Collection Capabilities" as Integer +\n "Has ICU Locations" as Integer +\n "Has Ventilator Resources" as Integer +\n "Has HRD Reporting Protocol" as Integer) / 7.0 * 100.0\n\n// Main measure calculation - now focusing on structural components and their ratings\ndefine "Measure Population":\n true\n\ndefine "Measure Observation":\n "Structural Readiness Score"</code></pre></td></tr>\n </table>\n </td>\n </tr>\n \n \n \n </table>\n</div>\n</div>"
},
"url" : "http://example.org/fhir/Library/HRDMeasureLibrary",
"identifier" : [
{
"system" : "urn:ietf:rfc:3986",
"value" : "urn:oid:2.16.840.1.113883.4.642.40.53.28.3"
}
],
"version" : "1.0.0-ballot",
"name" : "HRDMeasureLibrary",
"title" : "Library - HRD Measure Example",
"status" : "active",
"experimental" : false,
"type" : {
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/library-type",
"code" : "logic-library"
}
]
},
"date" : "2025-03-13",
"publisher" : "HL7 International / Public Health",
"contact" : [
{
"name" : "HL7 International / Public Health",
"telecom" : [
{
"system" : "url",
"value" : "http://www.hl7.org/Special/committees/pher"
}
]
}
],
"description" : "This library contains CQL logic for evaluating structural measures related to hospital respiratory disease reporting capabilities",
"useContext" : [
{
"code" : {
"system" : "http://terminology.hl7.org/CodeSystem/usage-context-type",
"code" : "focus"
},
"valueCodeableConcept" : {
"coding" : [
{
"system" : "http://snomed.info/sct",
"code" : "64572001",
"display" : "Disease"
}
]
}
}
],
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "US",
"display" : "United States of America"
}
]
}
],
"relatedArtifact" : [
{
"type" : "depends-on",
"display" : "FHIR Helpers",
"resource" : "http://fhir.org/guides/cqf/common/Library/FHIRHelpers"
},
{
"type" : "depends-on",
"display" : "COVID-19 Tests ValueSet",
"resource" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1123"
},
{
"type" : "depends-on",
"display" : "Influenza Tests ValueSet",
"resource" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1012"
},
{
"type" : "depends-on",
"display" : "RSV Tests ValueSet",
"resource" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1124|20240123"
},
{
"type" : "depends-on",
"display" : "Respiratory Specimen Collection Devices ValueSet",
"resource" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1125"
},
{
"type" : "depends-on",
"display" : "ICU Location Types ValueSet",
"resource" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.87"
},
{
"type" : "depends-on",
"display" : "Ventilator Device Types ValueSet",
"resource" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.5.1001"
},
{
"type" : "depends-on",
"display" : "DocumentReference Type ValueSet",
"resource" : "http://loinc.org|11516-2"
},
{
"type" : "depends-on",
"display" : "Notification Communication Category",
"resource" : "http://hl7.org/fhir/ValueSet/communication-category"
}
],
"parameter" : [
{
"name" : "Measurement Period",
"use" : "in",
"min" : 1,
"max" : "1",
"type" : "Period"
}
],
"dataRequirement" : [
{
"type" : "Device",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Device"
],
"codeFilter" : [
{
"path" : "type",
"valueSet" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1123"
}
]
},
{
"type" : "Device",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Device"
],
"codeFilter" : [
{
"path" : "type",
"valueSet" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1012"
}
]
},
{
"type" : "Device",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Device"
],
"codeFilter" : [
{
"path" : "type",
"valueSet" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1124|20240123"
}
]
},
{
"type" : "Device",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Device"
],
"codeFilter" : [
{
"path" : "type",
"valueSet" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1125"
}
]
},
{
"type" : "Device",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Device"
],
"codeFilter" : [
{
"path" : "type",
"valueSet" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.5.1001"
}
]
},
{
"type" : "Location",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Location"
],
"codeFilter" : [
{
"path" : "type",
"valueSet" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.87"
}
]
},
{
"type" : "Location",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Location"
],
"codeFilter" : [
{
"path" : "physicalType.coding.code",
"code" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/location-physical-type",
"version" : "2.0.1",
"code" : "bd"
}
]
}
]
},
{
"type" : "DocumentReference",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/DocumentReference"
],
"codeFilter" : [
{
"path" : "type.coding.code",
"code" : [
{
"system" : "http://loinc.org",
"code" : "11516-2"
}
]
}
]
},
{
"type" : "Communication",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Communication"
],
"codeFilter" : [
{
"path" : "category.coding.code",
"code" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/communication-category",
"code" : "notification"
}
]
}
],
"dateFilter" : [
{
"searchParam" : "date"
}
]
}
],
"content" : [
{
"contentType" : "text/cql",
"data" : "bGlicmFyeSBIUkRNZWFzdXJlU3RydWN0dXJlTGlicmFyeSB2ZXJzaW9uICcxLjAuMCcKCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJyBjYWxsZWQgRkhJUkhlbHBlcnMKCi8vIFRlcm1pbm9sb2d5IGRlZmluaXRpb25zCmNvZGVzeXN0ZW0gIkxPSU5DIjogJ2h0dHA6Ly9sb2luYy5vcmcnCmNvZGVzeXN0ZW0gIlNOT01FRCBDVCI6ICdodHRwOi8vc25vbWVkLmluZm8vc2N0Jgpjb2Rlc3lzdGVtICJJQ0QtMTAtQ00iOiAnaHR0cDovL2hsNy5vcmcvZmhpci9zaWQvaWNkLTEwLWNtJwoKLy8gVmFsdWUgc2V0cwp2YWx1ZXNldCAiUmVzcGlyYXRvcnkgU3BlY2ltZW4gQ29sbGVjdGlvbiBEZXZpY2VzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTE0Ni4xMTI1Jwp2YWx1ZXNldCAiQ09WSUQtMTkgVGVzdHMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTQ2LjExMjMnCnZhbHVlc2V0ICJJbmZsdWVuemEgVGVzdHMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAyLjEyLjEwMTInCnZhbHVlc2V0ICJSU1YgVGVzdHMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTQ2LjExMjQnCnZhbHVlc2V0ICJJQ1UgTG9jYXRpb24gVHlwZXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjg3Jwp2YWx1ZXNldCAiVmVudGlsYXRvciBEZXZpY2UgVHlwZXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNS4xMDAxJwoKLy8gUGFyYW1ldGVyIGZvciBtZWFzdXJlbWVudCBwZXJpb2QKcGFyYW1ldGVyICJNZWFzdXJlbWVudCBQZXJpb2QiIEludGVydmFsPERhdGU+CiAgZGVmYXVsdCBJbnRlcnZhbFtAMjAyNS0wMy0wMSwgQDIwMjUtMDMtMDddCgpjb250ZXh0IFBhdGllbnQKCi8vIFNUUlVDVFVSRSBNRUFTVVJFIENPTVBPTkVOVFMKLy8gRm9yIGEgc3RydWN0dXJlIG1lYXN1cmUsIHdlIGFzc2VzcyBjYXBhYmlsaXRpZXMsIHJlc291cmNlcyBhbmQgb3JnYW5pemF0aW9uYWwgc3RydWN0dXJlcwoKLy8gMS4gVGVzdCBmb3IgdGhlIHByZXNlbmNlIG9mIHJlc3BpcmF0b3J5IHRlc3RpbmcgY2FwYWJpbGl0aWVzCmRlZmluZSAiSGFzIENPVklELTE5IFRlc3RpbmcgQ2FwYWJpbGl0eSI6CiAgZXhpc3RzICgKICAgIFtEZXZpY2VdIERldmljZQogICAgICB3aGVyZSBEZXZpY2UudHlwZS5jb2RpbmcgaW4gIkNPVklELTE5IFRlc3RzIgogICAgICAgIGFuZCBEZXZpY2Uuc3RhdHVzID0gJ2FjdGl2ZScKICApCgpkZWZpbmUgIkhhcyBJbmZsdWVuemEgVGVzdGluZyBDYXBhYmlsaXR5IjoKICBleGlzdHMgKAogICAgW0RldmljZV0gRGV2aWNlCiAgICAgIHdoZXJlIERldmljZS50eXBlLmNvZGluZyBpbiAiSW5mbHVlbnphIFRlc3RzIgogICAgICAgIGFuZCBEZXZpY2Uuc3RhdHVzID0gJ2FjdGl2ZScKICApCgpkZWZpbmUgIkhhcyBSU1YgVGVzdGluZyBDYXBhYmlsaXR5IjoKICBleGlzdHMgKAogICAgW0RldmljZV0gRGV2aWNlCiAgICAgIHdoZXJlIERldmljZS50eXBlLmNvZGluZyBpbiAiUlNWIFRlc3RzIgogICAgICAgIGFuZCBEZXZpY2Uuc3RhdHVzID0gJ2FjdGl2ZScKICApCgpkZWZpbmUgIkhhcyBTcGVjaW1lbiBDb2xsZWN0aW9uIENhcGFiaWxpdGllcyI6CiAgZXhpc3RzICgKICAgIFtEZXZpY2VdIERldmljZQogICAgICB3aGVyZSBEZXZpY2UudHlwZS5jb2RpbmcgaW4gIlJlc3BpcmF0b3J5IFNwZWNpbWVuIENvbGxlY3Rpb24gRGV2aWNlcyIKICAgICAgICBhbmQgRGV2aWNlLnN0YXR1cyA9ICdhY3RpdmUnCiAgKQoKZGVmaW5lICJIYXMgSUNVIExvY2F0aW9ucyI6CiAgZXhpc3RzICgKICAgIFtMb2NhdGlvbl0gTG9jYXRpb24KICAgICAgd2hlcmUgTG9jYXRpb24udHlwZS5jb2RpbmcgaW4gIklDVSBMb2NhdGlvbiBUeXBlcyIKICAgICAgICBhbmQgTG9jYXRpb24uc3RhdHVzID0gJ2FjdGl2ZScKICApCgpkZWZpbmUgIkhhcyBWZW50aWxhdG9yIFJlc291cmNlcyI6CiAgZXhpc3RzICgKICAgIFtEZXZpY2VdIERldmljZQogICAgICB3aGVyZSBEZXZpY2UudHlwZS5jb2RpbmcgaW4gIlZlbnRpbGF0b3IgRGV2aWNlIFR5cGVzIgogICAgICAgIGFuZCBEZXZpY2Uuc3RhdHVzID0gJ2FjdGl2ZScKICApCgpkZWZpbmUgIkhhcyBIUkQgUmVwb3J0aW5nIFByb3RvY29sIjoKICBleGlzdHMgKAogICAgW0RvY3VtZW50UmVmZXJlbmNlXSBECiAgICAgIHdoZXJlIEQudHlwZS5jb2RpbmcuY29kZSBpbiB7JzExNTE2LTInfSAvLyBMT0lOQyBmb3IgaW5mZWN0aW9uIGNvbnRyb2wgcHJvdG9jb2wKICAgICAgICBhbmQgRC5zdGF0dXMgPSAnY3VycmVudCcKICAgICAgICBhbmQgRC5kZXNjcmlwdGlvbiBjb250YWlucyAnTkhTTicKICAgICAgICBhbmQgRC5kZXNjcmlwdGlvbiBjb250YWlucyAnSFJEJwogICkKCi8vIENPTlRJTlVPVVMgVkFSSUFCTEUgQ0FMQ1VMQVRJT05TCgovLyBIb3NwaXRhbCBjYXBhY2l0eSBtZXRyaWNzCmRlZmluZSAiVG90YWwgQmVkIENhcGFjaXR5IjoKICBTdW0oCiAgICBbTG9jYXRpb25dIExvY2F0aW9uCiAgICAgIHdoZXJlIExvY2F0aW9uLnN0YXR1cyA9ICdhY3RpdmUnCiAgICAgICAgYW5kIExvY2F0aW9uLnBoeXNpY2FsVHlwZS5jb2RpbmcuY29kZSA9ICdiZCcKICAgICAgcmV0dXJuICgKICAgICAgICBMb2NhdGlvbi5leHRlbnNpb24gRQogICAgICAgICAgd2hlcmUgRS51cmwgPSAnaHR0cDovL2hsNy5vcmcvZmhpci9TdHJ1Y3R1cmVEZWZpbml0aW9uL2xvY2F0aW9uLWJlZC1jb3VudCcKICAgICAgICAgIHJldHVybiBFLnZhbHVlSW50ZWdlcgogICAgICApLnZhbHVlSW50ZWdlcgogICkKCmRlZmluZSAiSUNVIEJlZCBDYXBhY2l0eSI6CiAgU3VtKAogICAgW0xvY2F0aW9uXSBMb2NhdGlvbgogICAgICB3aGVyZSBMb2NhdGlvbi5zdGF0dXMgPSAnYWN0aXZlJwogICAgICAgIGFuZCBMb2NhdGlvbi50eXBlLmNvZGluZyBpbiAiSUNVIExvY2F0aW9uIFR5cGVzIgogICAgICAgIGFuZCBMb2NhdGlvbi5waHlzaWNhbFR5cGUuY29kaW5nLmNvZGUgPSAnYmQnCiAgICAgIHJldHVybiAoCiAgICAgICAgTG9jYXRpb24uZXh0ZW5zaW9uIEUKICAgICAgICAgIHdoZXJlIEUudXJsID0gJ2h0dHA6Ly9obDcub3JnL2ZoaXIvU3RydWN0dXJlRGVmaW5pdGlvbi9sb2NhdGlvbi1iZWQtY291bnQnCiAgICAgICAgICByZXR1cm4gRS52YWx1ZUludGVnZXIKICAgICAgKS52YWx1ZUludGVnZXIKICApCgpkZWZpbmUgIlZlbnRpbGF0b3IgQ291bnQiOgogIENvdW50KAogICAgW0RldmljZV0gRGV2aWNlCiAgICAgIHdoZXJlIERldmljZS50eXBlLmNvZGluZyBpbiAiVmVudGlsYXRvciBEZXZpY2UgVHlwZXMiCiAgICAgICAgYW5kIERldmljZS5zdGF0dXMgPSAnYWN0aXZlJwogICkKCi8vIFdlZWtseSByZXBvcnRpbmcgY29tcGxpYW5jZSBhbmQgbWV0cmljcwpkZWZpbmUgIlJlcG9ydGluZyBXZWVrcyBpbiBNZWFzdXJlbWVudCBQZXJpb2QiOgogIENvdW50KAogICAgZXhwYW5kezIwMjUtMDMtMDEsIEAyMDI1LTAzLTA3LCB3ZWVrfQogICkKCmRlZmluZSAiSFJEIFJlcG9ydHMgU3VibWl0dGVkIER1cmluZyBQZXJpb2QiOgogIENvdW50KAogICAgW0NvbW11bmljYXRpb25dIEMKICAgICAgd2hlcmUgQy5jYXRlZ29yeS5jb2RpbmcuY29kZSBpbiB7J25vdGlmaWNhdGlvbid9CiAgICAgICAgYW5kIEMudG9waWMudGV4dCBjb250YWlucyAnTkhTTicKICAgICAgICBhbmQgQy50b3BpYy50ZXh0IGNvbnRhaW5zICdIUkQnCiAgICAgICAgYW5kIEMuc2VudCBkdXJpbmcgIk1lYXN1cmVtZW50IFBlcmlvZCIKICApCgpkZWZpbmUgIldlZWtseSBSZXBvcnRpbmcgQ29tcGxpYW5jZSI6CiAgIkhSRCBSZXBvcnRzIFN1Ym1pdHRlZCBEdXJpbmcgUGVyaW9kIiAvICJSZXBvcnRpbmcgV2Vla3MgaW4gTWVhc3VyZW1lbnQgUGVyaW9kIgoKLy8gU3RydWN0dXJhbCByZWFkaW5lc3Mgc2NvcmVzCmRlZmluZSAiSGFzIEFsbCBUZXN0aW5nIENhcGFiaWxpdGllcyI6CiAgaWYgKCJIYXMgQ09WSUQtMTkgVGVzdGluZyBDYXBhYmlsaXR5IiBhbmQgIkhhcyBJbmZsdWVuemEgVGVzdGluZyBDYXBhYmlsaXR5IiBhbmQgIkhhcyBSU1YgVGVzdGluZyBDYXBhYmlsaXR5IikKICAgIHRoZW4gMQogICAgZWxzZSAwCgpkZWZpbmUgIkhhcyBSZXF1aXJlZCBSZXBvcnRpbmcgU3RydWN0dXJlIjoKICBpZiAoIkhhcyBIUkQgUmVwb3J0aW5nIFByb3RvY29sIikgCiAgICB0aGVuIDEKICAgIGVsc2UgMAoKLy8gQ29udGludW91cyB2YXJpYWJsZSBmb3Igc3RydWN0dXJhbCBtZWFzdXJlIGFzc2Vzc21lbnQKZGVmaW5lICJTdHJ1Y3R1cmFsIFJlYWRpbmVzcyBTY29yZSI6CiAgKCJIYXMgQ09WSUQtMTkgVGVzdGluZyBDYXBhYmlsaXR5IiBhcyBJbnRlZ2VyICsKICAgIkhhcyBJbmZsdWVuemEgVGVzdGluZyBDYXBhYmlsaXR5IiBhcyBJbnRlZ2VyICsKICAgIkhhcyBSU1YgVGVzdGluZyBDYXBhYmlsaXR5IiBhcyBJbnRlZ2VyICsKICAgIkhhcyBTcGVjaW1lbiBDb2xsZWN0aW9uIENhcGFiaWxpdGllcyIgYXMgSW50ZWdlciArCiAgICJIYXMgSUNVIExvY2F0aW9ucyIgYXMgSW50ZWdlciArCiAgICJIYXMgVmVudGlsYXRvciBSZXNvdXJjZXMiIGFzIEludGVnZXIgKwogICAgIkhhcyBIUkQgUmVwb3J0aW5nIFByb3RvY29sIiBhcyBJbnRlZ2VyKSAvIDcuMCAqIDEwMC4wCgovLyBNYWluIG1lYXN1cmUgY2FsY3VsYXRpb24gLSBub3cgZm9jdXNpbmcgb24gc3RydWN0dXJhbCBjb21wb25lbnRzIGFuZCB0aGVpciByYXRpbmdzCmRlZmluZSAiTWVhc3VyZSBQb3B1bGF0aW9uIjoKICB0cnVlCgpkZWZpbmUgIk1lYXN1cmUgT2JzZXJ2YXRpb24iOgogICJTdHJ1Y3R1cmFsIFJlYWRpbmVzcyBTY29yZSI="
}
]
}