CDC National Healthcare Safety Network (NHSN) Digital Quality Measures (dQM) Content Package IG
1.0.0 - Release 1
This page is part of the CDC National Healthcare Safety Network (NHSN) Digital Quality Measures (dQM) Content Package IG (v1.0.0: Release) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version. For a full list of available versions, see the Directory of published versions
| Page standards status: Trial-use | Maturity Level: 1 |
{
"resourceType" : "Library",
"id" : "NHSNAcuteCareHospitalMonthlyInitialPopulation",
"text" : {
"status" : "extensions",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n<div>\n <table class=\"grid dict\">\n \n \n\n \n \n <tr>\n <th scope=\"row\"><b>Id: </b></th>\n <td style=\"padding-left: 4px;\">NHSNAcuteCareHospitalMonthlyInitialPopulation</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</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Url: </b></th>\n <td style=\"padding-left: 4px;\"><a href=\"Library-NHSNAcuteCareHospitalMonthlyInitialPopulation.html\">NHSNAcuteCareHospitalMonthlyInitialPopulation</a></td>\n </tr>\n \n\n \n\n \n\n \n <tr>\n <th scope=\"row\"><b>Status: </b></th>\n <td style=\"padding-left: 4px;\">draft</td>\n </tr>\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.5.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-09-15 12:53:39-0400</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Publisher: </b></th>\n <td style=\"padding-left: 4px;\">CDC National Healthcare Safety Network (NHSN)</td>\n </tr>\n \n\n \n\n \n\n \n\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/4.0.1/Library-FHIR-ModelInfo.html\">http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1</a></li>\n \n <li><code>http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/FHIRHelpers|4.0.2</code></li>\n \n <li><code>http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/NHSNHelpers|0.0.002</code></li>\n \n <li><code>http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/SharedResourceCreation|0.1.010</code></li>\n \n <li><a href=\"http://terminology.hl7.org/6.5.0/CodeSystem-v3-ActCode.html\">ActCodeversion: null9.0.0)</a></li>\n \n <li><a href=\"http://terminology.hl7.org/6.5.0/CodeSystem-observation-category.html\">Observation Category Codesversion: null1.0.1)</a></li>\n \n <li><a href=\"http://terminology.hl7.org/6.5.0/CodeSystem-v3-loinc.html\">Logical Observation Identifiers, Names and Codes (LOINC)</a></li>\n \n <li><a href=\"http://terminology.hl7.org/5.0.0/CodeSystem-v2-0074.html\">diagnosticServiceSectionIdversion: null2.5.0)</a></li>\n \n <li><a href=\"http://terminology.hl7.org/6.5.0/CodeSystem-condition-category.html\">Condition Category Codesversion: null1.0.1)</a></li>\n \n <li><a href=\"http://hl7.org/fhir/us/core/STU3.1.1/CodeSystem-condition-category.html\">US Core Condition Category Extension Codes</a></li>\n \n <li><a href=\"http://terminology.hl7.org/6.5.0/CodeSystem-condition-clinical.html\">Condition Clinical Status Codesversion: null3.0.0)</a></li>\n \n <li><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1046.265/expansion\">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.265</a></li>\n \n <li><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.117.1.7.1.292/expansion\">Emergency Department Visit</a></li>\n \n <li><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.666.5.307/expansion\">Encounter Inpatient</a></li>\n \n <li><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1111.143/expansion\">Observation Services</a></li>\n \n <li><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1046.274/expansion\">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274</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>0</th><th>1</th><th>In</th></tr>\n \n <tr><th>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Qualifying Encounters During Measurement Period</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>Encounters</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>Encounters with Patient Hospital Locations</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>Initial Population</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>Conditions</th><th>Condition</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>DiagnosticReports</th><th>DiagnosticReport</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>Observations</th><th>Observation</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>Get Locations from IP Encounters in Measurement Period</th><th>Location</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE Condition</th><th>Condition</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE Device</th><th>Device</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE DiagnosticReport Lab</th><th>DiagnosticReport</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE DiagnosticReport Note</th><th>DiagnosticReport</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE DiagnosticReport Others</th><th>DiagnosticReport</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE Encounter</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE IP Encounters</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE Location</th><th>Location</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE Medication Administration</th><th>MedicationAdministration</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE Medication Request</th><th>MedicationRequest</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE Medication</th><th>Medication</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE Observation Lab Category</th><th>Observation</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE Observation Vital Signs Category</th><th>Observation</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE Observation Category</th><th>Observation</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE Coverage</th><th>Coverage</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE Procedure</th><th>Procedure</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE Specimen</th><th>Specimen</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE Service Request</th><th>ServiceRequest</th><th>0</th><th>*</th><th>Out</th></tr>\n \n <tr><th>SDE Minimal Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</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>MS</b></th><th><b>Code Filter</b></th></tr>\n \n <tr>\n <th>Patient</th>\n <th>http://hl7.org/fhir/StructureDefinition/Patient</th>\n <th/>\n <th>\n \n </th>\n </tr>\n \n <tr>\n <th>Encounter</th>\n <th>http://hl7.org/fhir/StructureDefinition/Encounter</th>\n <th>;;;;;;</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.666.5.307</span>\n </span>\n \n \n \n </th>\n </tr>\n \n <tr>\n <th>Encounter</th>\n <th>http://hl7.org/fhir/StructureDefinition/Encounter</th>\n <th>;;;;;;</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.292</span>\n </span>\n \n \n \n </th>\n </tr>\n \n <tr>\n <th>Encounter</th>\n <th>http://hl7.org/fhir/StructureDefinition/Encounter</th>\n <th>;;;;;;</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.1111.143</span>\n </span>\n \n \n \n </th>\n </tr>\n \n <tr>\n <th>Encounter</th>\n <th>http://hl7.org/fhir/StructureDefinition/Encounter</th>\n <th>;;;;;;</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>class</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.1046.274</span>\n </span>\n \n \n \n </th>\n </tr>\n \n <tr>\n <th>Encounter</th>\n <th>http://hl7.org/fhir/StructureDefinition/Encounter</th>\n <th>;;;;;;</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>class</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.5.0/CodeSystem-v3-ActCode.html\">http://terminology.hl7.org/CodeSystem/v3-ActCode</a></span>\n </p>\n \n \n <p style=\"margin-bottom: 5px;\">\n <b>code: </b> <span>EMER</span>\n </p>\n \n \n <p style=\"margin-bottom: 5px;\">\n <b>display: </b> <span>emergency</span>\n </p>\n \n \n \n </th>\n </tr>\n \n <tr>\n <th>Encounter</th>\n <th>http://hl7.org/fhir/StructureDefinition/Encounter</th>\n <th>;;;;;;</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>class</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.5.0/CodeSystem-v3-ActCode.html\">http://terminology.hl7.org/CodeSystem/v3-ActCode</a></span>\n </p>\n \n \n <p style=\"margin-bottom: 5px;\">\n <b>code: </b> <span>OBSENC</span>\n </p>\n \n \n <p style=\"margin-bottom: 5px;\">\n <b>display: </b> <span>observation encounter</span>\n </p>\n \n \n \n </th>\n </tr>\n \n <tr>\n <th>Encounter</th>\n <th>http://hl7.org/fhir/StructureDefinition/Encounter</th>\n <th>;;;;;</th>\n <th>\n \n </th>\n </tr>\n \n <tr>\n <th>Condition</th>\n <th>http://hl7.org/fhir/StructureDefinition/Condition</th>\n <th>;;;;;;;;;;;;;;;;;</th>\n <th>\n \n </th>\n </tr>\n \n <tr>\n <th>DiagnosticReport</th>\n <th>http://hl7.org/fhir/StructureDefinition/DiagnosticReport</th>\n <th>;;;;;;;;;;;;;;;;</th>\n <th>\n \n </th>\n </tr>\n \n <tr>\n <th>Observation</th>\n <th>http://hl7.org/fhir/StructureDefinition/Observation</th>\n <th>;;;;;;;;;;;;;;;;;;;;;;;;</th>\n <th>\n \n </th>\n </tr>\n \n <tr>\n <th>Device</th>\n <th>http://hl7.org/fhir/StructureDefinition/Device</th>\n <th>;;;;;;;;;;;;;;;;;;;;;;;;;;;</th>\n <th>\n \n </th>\n </tr>\n \n <tr>\n <th>MedicationAdministration</th>\n <th>http://hl7.org/fhir/StructureDefinition/MedicationAdministration</th>\n <th>;</th>\n <th>\n \n </th>\n </tr>\n \n <tr>\n <th>MedicationRequest</th>\n <th>http://hl7.org/fhir/StructureDefinition/MedicationRequest</th>\n <th>;</th>\n <th>\n \n </th>\n </tr>\n \n <tr>\n <th>Medication</th>\n <th>http://hl7.org/fhir/StructureDefinition/Medication</th>\n <th>;</th>\n <th>\n \n </th>\n </tr>\n \n <tr>\n <th>Coverage</th>\n <th>http://hl7.org/fhir/StructureDefinition/Coverage</th>\n <th>;</th>\n <th>\n \n </th>\n </tr>\n \n <tr>\n <th>Procedure</th>\n <th>http://hl7.org/fhir/StructureDefinition/Procedure</th>\n <th>;</th>\n <th>\n \n </th>\n </tr>\n \n <tr>\n <th>Specimen</th>\n <th>http://hl7.org/fhir/StructureDefinition/Specimen</th>\n <th>;;</th>\n <th>\n \n </th>\n </tr>\n \n <tr>\n <th>ServiceRequest</th>\n <th>http://hl7.org/fhir/StructureDefinition/ServiceRequest</th>\n <th>;</th>\n <th>\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 NHSNAcuteCareHospitalMonthlyInitialPopulation version '1.0.1-dev'\r\n\r\nusing FHIR version '4.0.1'\r\n\r\ninclude FHIRHelpers version '4.0.2' called FHIRHelpers\r\ninclude NHSNHelpers version '0.0.002' called NHSNHelpers\r\ninclude SharedResourceCreation version '0.1.010' called SharedResource\r\n\r\ncodesystem "ActCode": 'http://terminology.hl7.org/CodeSystem/v3-ActCode'\r\ncodesystem "Observation Category": 'http://terminology.hl7.org/CodeSystem/observation-category'\r\ncodesystem "LOINC": 'http://loinc.org' \r\ncodesystem "V2-0074": 'http://terminology.hl7.org/CodeSystem/v2-0074'\r\ncodesystem "Condition Category": 'http://terminology.hl7.org/CodeSystem/condition-category'\r\ncodesystem "US Core Condition Category": 'http://hl7.org/fhir/us/core/CodeSystem/condition-category'\r\ncodesystem "Condition Clinical Status": 'http://terminology.hl7.org/CodeSystem/condition-clinical'\r\n\r\nvalueset "Inpatient, Emergency, and Observation Locations": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.265'\r\nvalueset "Emergency Department Visit": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292'\r\nvalueset "Encounter Inpatient": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307'\r\nvalueset "Observation Services": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143'\r\nvalueset "NHSN Inpatient Encounter Class Codes": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274'\r\n\r\n//code for Observation Category\r\ncode "laboratory": 'laboratory' from "Observation Category" display 'Laboratory'\r\ncode "social-history": 'social-history' from "Observation Category" display 'Social History'\r\ncode "vital-signs": 'vital-signs' from "Observation Category" display 'Vital Signs'\r\ncode "imaging": 'imaging' from "Observation Category" display 'Imaging'\r\ncode "procedure": 'procedure' from "Observation Category" display 'Procedure'\r\ncode "survey": 'survey' from "Observation Category" display 'Survey'\r\n\r\n//code for Condition category\r\ncode "problem-list-item": 'problem-list-item' from "Condition Category" display 'Problem List Item'\r\ncode "encounter-diagnosis": 'encounter-diagnosis' from "Condition Category" display 'Encounter Diagnosis'\r\ncode "health-concern": 'health-concern' from "US Core Condition Category" display 'Health Concern'\r\n\r\n//code for Diagnostic Report Category\r\ncode "LAB": 'LAB' from "V2-0074" display 'Laboratory'\r\ncode "Radiology": 'LP29684-5' from "LOINC" display 'Radiology'\r\ncode "Pathology": 'LP7839-6' from "LOINC" display 'Pathology'\r\ncode "Cardiology": 'LP29708-2' from "LOINC" display 'Cardiology'\r\n\r\n//code for Emergency Encounter Class\r\ncode "emergency": 'EMER' from "ActCode" display 'emergency'\r\ncode "observation encounter": 'OBSENC' from "ActCode" display 'observation encounter'\r\n\r\n//code for Condition clinicalStatus\r\ncode "active": 'active' from "Condition Clinical Status" display 'active'\r\n\r\nparameter "Measurement Period" \r\n default Interval[@2024-04-01T00:00:00.0, @2024-04-30T23:59:59.0)\r\n\r\ncontext Patient \r\n\r\ndefine "Qualifying Encounters During Measurement Period":\r\n ( [Encounter: "Encounter Inpatient"]\r\n union [Encounter: "Emergency Department Visit"]\r\n union [Encounter: "Observation Services"]\r\n union [Encounter: class in "NHSN Inpatient Encounter Class Codes"]\r\n union [Encounter: class ~ "emergency"]\r\n union [Encounter: class ~ "observation encounter"]) QualifyingEncounters\r\n where QualifyingEncounters.status in {'in-progress', 'finished', 'triaged', 'onleave', 'entered-in-error'}\r\n and QualifyingEncounters.period overlaps "Measurement Period" \r\n\r\ndefine "Encounters with Patient Hospital Locations":\r\n "Encounters" Encounters\r\n where exists(\r\n Encounters.location EncounterLocation\r\n where NHSNHelpers.GetLocation(EncounterLocation.location).type in "Inpatient, Emergency, and Observation Locations"\r\n and EncounterLocation.period overlaps Encounters.period\r\n )\r\n and Encounters.status in {'in-progress', 'finished', 'triaged', 'onleave', 'entered-in-error'}\r\n and Encounters.period overlaps "Measurement Period"\r\n\r\ndefine "Initial Population":\r\n "Qualifying Encounters During Measurement Period"\r\n union "Encounters with Patient Hospital Locations"\r\n\r\ndefine "Encounters":\r\n [Encounter]\r\n\r\ndefine "Conditions":\r\n [Condition]\r\n\r\ndefine "DiagnosticReports":\r\n [DiagnosticReport]\r\n\r\ndefine "Observations":\r\n [Observation]\r\n\r\ndefine "Get Locations from IP Encounters in Measurement Period":\r\n flatten("Initial Population" IP\r\n let locationElements: IP.location\r\n return\r\n locationElements LE\r\n let locationReference: LE.location\r\n return NHSNHelpers.GetLocation(locationReference))\r\n\r\n//============================================================================\r\n//Supplemental Data Element\r\n//When FHIR.canonical value is present, US Core 3.1.1 profiles are used\r\n//When FHIR.canonical value is not present, FHIR Base profiles are used\r\n//============================================================================\r\ndefine "SDE Condition":\r\n "Conditions" Conditions \r\n where exists(\r\n "Initial Population" IP\r\n //Check for Problem List Conditions that were recorded before or during IP\r\n where (\r\n Conditions.recordedDate before end of IP.period\r\n and exists(Conditions.category categories\r\n where categories ~ "problem-list-item")\r\n and Conditions.clinicalStatus ~ "active"\r\n )\r\n //Check for Encounter Diagnosis Conditions that reference an IP encounter\r\n or (\r\n (exists(IP.diagnosis Diagnoses\r\n where GetCondition(Diagnoses.condition).id = Conditions.id\r\n )\r\n or GetEncounter(Conditions.encounter).id = IP.id\r\n )\r\n and exists (Conditions.category categories\r\n where categories ~ "encounter-diagnosis"\r\n or categories ~ "health-concern")\r\n )\r\n )\r\n return ConditionResource(Conditions,\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-condition'}},\r\n {"problem-list-item", "encounter-diagnosis", "health-concern"})\r\n\r\ndefine "SDE Device":\r\n [Device] Devices \r\n where exists("Initial Population")\r\n return DeviceResource(Devices,\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-device'}})\r\n\r\n//This block collects all DiagnosticReport resources while also marking Lab and Note DiagnosticReports with the appropriate profiles\r\n//#Start DiagnosticReport block\r\ndefine "SDE DiagnosticReport Lab":\r\n "DiagnosticReports" DiagnosticReports\r\n where (exists(DiagnosticReports.category Category where Category ~ "LAB")\r\n and exists(\r\n "Initial Population" IP\r\n where NHSNHelpers."Normalize Interval"(DiagnosticReports.effective) overlaps IP.period))\r\n return SharedResource.DiagnosticReportLabResource(DiagnosticReports,\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-diagnosticreport-lab'}})\r\n \r\ndefine "SDE DiagnosticReport Note":\r\n "DiagnosticReports" DiagnosticReports\r\n where ((exists(DiagnosticReports.category Category where Category ~ "Radiology"))\r\n or exists((DiagnosticReports.category Category where Category ~ "Pathology"))\r\n or exists((DiagnosticReports.category Category where Category ~ "Cardiology")))\r\n and exists(\r\n "Initial Population" IP\r\n where NHSNHelpers."Normalize Interval"(DiagnosticReports.effective) overlaps IP.period)\r\n return DiagnosticReportResource(DiagnosticReports,\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-diagnosticreport-note'}})\r\n\r\ndefine "SDE DiagnosticReport Others":\r\n [DiagnosticReport] DiagnosticReports\r\n where not ((exists(DiagnosticReports.category Category where Category ~ "Radiology"))\r\n or exists((DiagnosticReports.category Category where Category ~ "Pathology"))\r\n or exists((DiagnosticReports.category Category where Category ~ "Cardiology"))\r\n or exists(DiagnosticReports.category Category where Category ~ "LAB"))\r\n and exists("Initial Population" IP\r\n where NHSNHelpers."Normalize Interval"(DiagnosticReports.effective) overlaps IP.period)\r\n return DiagnosticReportResource(DiagnosticReports,\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-diagnosticreport'}})\r\n//#End DiagnosticReport block\r\n\r\ndefine "SDE Encounter": \r\n "Encounters" Encounters\r\n where not CheckIP(Encounters)\r\n and exists(\r\n "Initial Population" IP\r\n where Encounters.period overlaps IP.period)\r\n return SharedResource.EncounterResource(Encounters,\r\n {FHIR.canonical{value: 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter'}})\r\n\r\ndefine "SDE IP Encounters":\r\n "Initial Population" IP\r\n return SharedResource.EncounterResource(IP, \r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-encounter'}})\r\n\r\ndefine "SDE Location":\r\n "Get Locations from IP Encounters in Measurement Period" Locations\r\n where exists("Initial Population")\r\n and Locations is not null\r\n return SharedResource.LocationResource(Locations,\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-location'}})\r\n \r\ndefine "SDE Medication Administration":\r\n [MedicationAdministration] MedicationAdministrations \r\n where exists(\r\n "Initial Population" IP\r\n where NHSNHelpers."Normalize Interval"(MedicationAdministrations.effective) overlaps IP.period)\r\n return SharedResource.MedicationAdministrationResource(MedicationAdministrations,\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-medicationadministration'}})\r\n \r\ndefine "SDE Medication Request":\r\n [MedicationRequest] MedicationRequests \r\n where exists(\r\n "Initial Population" IP\r\n where MedicationRequests.authoredOn during IP.period)\r\n return SharedResource.MedicationRequestResource(MedicationRequests,\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-medicationrequest'}})\r\n\r\ndefine "SDE Medication":\r\n ("SDE Medication Request"\r\n union "SDE Medication Administration") MedReqOrAdmin\r\n where MedReqOrAdmin.medication is FHIR.Reference\r\n and exists("Initial Population") //No longer need to check for timing here because it's checked in SDE Medication Request/Administriation\r\n return SharedResource.MedicationResource(GetMedicationFrom(MedReqOrAdmin.medication),\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-medication'}})\r\n\r\ndefine "SDE Observation Lab Category":\r\n "Observations" Observations \r\n where (exists(Observations.category Category where Category ~ "laboratory"))\r\n and exists(\r\n "Initial Population" IP\r\n where NHSNHelpers."Normalize Interval"(Observations.effective) overlaps IP.period)\r\n return SharedResource.ObservationLabResource(Observations,\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-observation-lab'}})\r\n\r\n//Vital Signs Observation has its own profile in FHIR Base\r\ndefine "SDE Observation Vital Signs Category":\r\n "Observations" Observations \r\n where (exists(Observations.category Category where Category ~ "vital-signs"))\r\n and exists(\r\n "Initial Population" IP\r\n where NHSNHelpers."Normalize Interval"(Observations.effective) overlaps IP.period)\r\n return ObservationVitalSignsResource(Observations,\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-observation-vitals'}})\r\n\r\n//Defaulting to base FHIR profile as there are no individual profiles in US Core 3.1.1 that cover these Observation categories\r\ndefine "SDE Observation Category":\r\n "Observations" Observations \r\n where ((exists(Observations.category Category where Category ~ "social-history"))\r\n or (exists(Observations.category Category where Category ~ "survey"))\r\n or (exists(Observations.category Category where Category ~ "imaging"))\r\n or (exists(Observations.category Category where Category ~ "procedure")))\r\n and exists(\r\n "Initial Population" IP\r\n where NHSNHelpers."Normalize Interval"(Observations.effective) overlaps IP.period)\r\n return ObservationResource(Observations,\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-observation'}})\r\n\r\ndefine "SDE Coverage": \r\n\t[Coverage] Coverages\r\n where exists(\r\n "Initial Population" IP\r\n where Coverages.period overlaps IP.period)\r\n return SharedResource.CoverageResource(Coverages,\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-coverage'}})\r\n\r\ndefine "SDE Procedure":\r\n [Procedure] Procedures \r\n where exists(\r\n "Initial Population" IP\r\n where NHSNHelpers."Normalize Interval"(Procedures.performed) overlaps IP.period)\r\n return SharedResource.ProcedureResource(Procedures,\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-procedure'}})\r\n\r\ndefine "SDE Specimen":\r\n [Specimen] Specimens\r\n where exists(\r\n "Initial Population" IP\r\n where NHSNHelpers."Normalize Interval"(Specimens.collection.collected) overlaps IP.period\r\n )\r\n return SharedResource.SpecimenResource(Specimens,\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-specimen'}})\r\n\r\ndefine "SDE Service Request":\r\n [ServiceRequest] ServiceRequests\r\n where exists("Initial Population" IP\r\n where ServiceRequests.authoredOn during IP.period)\r\n return SharedResource.ServiceRequestResource(ServiceRequests,\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-servicerequest'}})\r\n\r\ndefine "SDE Minimal Patient":\r\n Patient p\r\n return SharedResource.PatientResource(p,\r\n {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/cross-measure-patient'}})\r\n\r\n//\r\n//Functions\r\n//\r\ndefine function "CheckIP"(encounter Encounter):\r\n exists("Initial Population" IP\r\n where encounter.id = IP.id)\r\n\r\ndefine function "GetMedicationFrom"(choice Choice<FHIR.CodeableConcept, FHIR.Reference>):\r\n case\r\n when choice is FHIR.Reference then\r\n GetMedication(choice as FHIR.Reference)\r\n else\r\n null\r\n end\r\n\r\ndefine function "GetMedication"(reference Reference):\r\n singleton from (\r\n [Medication] Medications\r\n where Medications.id = NHSNHelpers.GetId(reference.reference)\r\n )\r\n\r\ndefine function "GetCondition"(reference Reference):\r\n singleton from (\r\n "Conditions" Conditions\r\n where Conditions.id = NHSNHelpers.GetId(reference.reference)\r\n )\r\n\r\ndefine function "GetEncounter"(reference Reference):\r\n singleton from (\r\n "Encounters" Encounters\r\n where Encounters.id = NHSNHelpers.GetId(reference.reference)\r\n )\r\n\r\ndefine function RemoveUnaccepted(codes List<FHIR.CodeableConcept>, accepted List<System.Code>):\r\n\tcodes c\r\n where exists(\r\n accepted a\r\n where c ~ a\r\n )\r\n\r\ndefine function FilterCodeableConcepts(codes List<FHIR.CodeableConcept>, accepted List<System.Code>):\r\n\tif Count(accepted) > 0\r\n\t\tthen RemoveUnaccepted(codes, accepted)\r\n\telse codes\r\n\r\n//\r\n//Measure Specific Resource Creation Functions\r\n//\r\ndefine function ConditionResource(condition Condition, profileURLs List<FHIR.canonical>, acceptedCategories List<System.Code>):\r\n condition c\r\n return Condition{\r\n id: FHIR.id {value: 'LCR-' + c.id},\r\n meta: SharedResource.MetaElement(c, profileURLs),\r\n extension: c.extension,\r\n clinicalStatus: c.clinicalStatus,\r\n verificationStatus: c.verificationStatus,\r\n category: FilterCodeableConcepts(c.category, acceptedCategories),\r\n severity: c.severity,\r\n code: c.code,\r\n bodySite: c.bodySite,\r\n subject: c.subject,\r\n encounter: c.encounter,\r\n onset: c.onset,\r\n abatement: c.abatement,\r\n recordedDate: c.recordedDate,\r\n stage: SharedResource.ConditionStage(c.stage),\r\n evidence: SharedResource.ConditionEvidence(c.evidence),\r\n note: c.note\r\n }\r\n\r\ndefine function DeviceUdiCarrier(udiCarrier List<FHIR.Device.UdiCarrier>):\r\n udiCarrier u\r\n return FHIR.Device.UdiCarrier{\r\n deviceIdentifier: u.deviceIdentifier,\r\n issuer: u.issuer,\r\n jurisdiction: u.jurisdiction,\r\n carrierAIDC: u.carrierAIDC,\r\n carrierHRF: u.carrierHRF,\r\n entryType: u.entryType\r\n }\r\n\r\ndefine function DeviceDeviceName(deviceName List<FHIR.Device.DeviceName>):\r\n deviceName d\r\n return FHIR.Device.DeviceName{\r\n name: d.name,\r\n type: d.type\r\n }\r\n\r\ndefine function DeviceSpecialization(specialization List<FHIR.Device.Specialization>):\r\n specialization s\r\n return FHIR.Device.Specialization{\r\n systemType: s.systemType,\r\n version: s.version\r\n }\r\n\r\ndefine function DeviceVersion(version List<FHIR.Device.Version>):\r\n version v\r\n return FHIR.Device.Version{\r\n type: v.type,\r\n component: v.component,\r\n value: v.value\r\n }\r\n\r\ndefine function DeviceProperty(deviceProperty List<FHIR.Device.Property>):\r\n deviceProperty d\r\n return FHIR.Device.Property{\r\n id: d.id,\r\n type: d.type,\r\n valueQuantity: d.valueQuantity,\r\n valueCode: d.valueCode\r\n }\r\n\r\ndefine function DeviceResource(device Device, profileURLs List<FHIR.canonical>):\r\n device d\r\n return Device{\r\n id: FHIR.id{value: 'LCR-' + d.id},\r\n meta: SharedResource.MetaElement(d, profileURLs),\r\n extension: d.extension,\r\n definition: d.definition,\r\n udiCarrier: DeviceUdiCarrier(d.udiCarrier),\r\n status: d.status,\r\n statusReason: d.statusReason,\r\n distinctIdentifier: d.distinctIdentifier,\r\n manufacturer: d.manufacturer,\r\n manufactureDate: d.manufactureDate,\r\n expirationDate: d.expirationDate,\r\n lotNumber: d.lotNumber,\r\n serialNumber: d.serialNumber,\r\n deviceName: DeviceDeviceName(d.deviceName),\r\n modelNumber: d.modelNumber,\r\n partNumber: d.partNumber,\r\n type: d.type,\r\n specialization: DeviceSpecialization(d.specialization),\r\n version: DeviceVersion(d.version),\r\n property: DeviceProperty(d.property),\r\n patient: d.patient,\r\n owner: d.owner,\r\n contact: d.contact,\r\n location: d.location,\r\n url: d.url,\r\n note: d.note,\r\n safety: d.safety,\r\n parent: d.parent\r\n }\r\n\r\ndefine function DiagnosticReportResource(diagnosticReport DiagnosticReport, profileURLs List<FHIR.canonical>):\r\n diagnosticReport d\r\n return DiagnosticReport{\r\n id: FHIR.id{value: 'LCR-' + d.id},\r\n meta: SharedResource.MetaElement(d, profileURLs),\r\n extension: d.extension,\r\n basedOn: d.basedOn,\r\n status: d.status,\r\n category: d.category,\r\n code: d.code,\r\n subject: d.subject,\r\n encounter: d.encounter,\r\n effective: d.effective,\r\n issued: d.issued,\r\n performer: d.performer,\r\n resultsInterpreter: d.resultsInterpreter,\r\n specimen: d.specimen,\r\n result: d.result,\r\n conclusion: d.conclusion,\r\n conclusionCode: d.conclusionCode\r\n }\r\n\r\ndefine function ObservationResource(observation Observation, profileURLs List<FHIR.canonical>):\r\n observation o\r\n return Observation{\r\n id: FHIR.id {value: 'LCR-' + o.id},\r\n meta: SharedResource.MetaElement(o, profileURLs),\r\n extension: o.extension,\r\n partOf: o.partOf,\r\n status: o.status,\r\n category: o.category,\r\n code: o.code,\r\n subject: o.subject,\r\n focus: o.focus,\r\n encounter: o.encounter,\r\n effective: o.effective,\r\n issued: o.issued,\r\n performer: o.performer,\r\n value: o.value,\r\n dataAbsentReason: o.dataAbsentReason,\r\n interpretation: o.interpretation,\r\n note: o.note,\r\n bodySite: o.bodySite,\r\n method: o.method,\r\n specimen: o.specimen,\r\n device: o.device,\r\n referenceRange: SharedResource.ObservationReferenceRange(o.referenceRange),\r\n hasMember: o.hasMember,\r\n derivedFrom: o.derivedFrom,\r\n component: SharedResource.ObservationComponent(o.component)\r\n }\r\n\r\ndefine function ObservationVitalSignsCoding(coding List<Coding>):\r\n coding c\r\n return Coding{\r\n system: c.system,\r\n version: c.version,\r\n code: c.code,\r\n display: c.display,\r\n userSelected: c.userSelected\r\n }\r\n\r\ndefine function ObservationVitalSignsCategory(category List<CodeableConcept>):\r\n category c\r\n return CodeableConcept{\r\n coding: ObservationVitalSignsCoding(c.coding),\r\n text: c.text\r\n }\r\n\r\ndefine function ObservationVitalSignsComponent(component List<FHIR.Observation.Component>):\r\n component c\r\n return FHIR.Observation.Component{\r\n code: c.code,\r\n value: c.value,\r\n dataAbsentReason: c.dataAbsentReason,\r\n interpretation: c.interpretation,\r\n referenceRange: SharedResource.ObservationReferenceRange(c.referenceRange)\r\n }\r\n\r\ndefine function ObservationVitalSignsResource(observation Observation, profileURLs List<FHIR.canonical>):\r\n observation o\r\n return Observation{\r\n id: FHIR.id {value: 'LCR-' + o.id},\r\n meta: SharedResource.MetaElement(o, profileURLs),\r\n extension: o.extension,\r\n partOf: o.partOf,\r\n status: o.status,\r\n category: ObservationVitalSignsCategory(o.category),\r\n code: o.code,\r\n subject: o.subject,\r\n focus: o.focus,\r\n encounter: o.encounter,\r\n effective: o.effective,\r\n issued: o.issued,\r\n performer: o.performer,\r\n value: o.value,\r\n dataAbsentReason: o.dataAbsentReason,\r\n interpretation: o.interpretation,\r\n note: o.note,\r\n bodySite: o.bodySite,\r\n method: o.method,\r\n specimen: o.specimen,\r\n device: o.device,\r\n referenceRange: SharedResource.ObservationReferenceRange(o.referenceRange),\r\n hasMember: o.hasMember,\r\n derivedFrom: o.derivedFrom,\r\n component: ObservationVitalSignsComponent(o.component)\r\n }</code></pre></td></tr>\n </table>\n </td>\n </tr>\n \n \n \n </table>\n</div>\n</div>"
},
"contained" : [
{
"resourceType" : "Parameters",
"id" : "options",
"parameter" : [
{
"name" : "translatorVersion",
"valueString" : "3.25.0"
},
{
"name" : "option",
"valueString" : "EnableDateRangeOptimization"
},
{
"name" : "option",
"valueString" : "EnableAnnotations"
},
{
"name" : "option",
"valueString" : "EnableLocators"
},
{
"name" : "option",
"valueString" : "DisableListDemotion"
},
{
"name" : "option",
"valueString" : "DisableListPromotion"
},
{
"name" : "analyzeDataRequirements",
"valueBoolean" : false
},
{
"name" : "collapseDataRequirements",
"valueBoolean" : true
},
{
"name" : "compatibilityLevel",
"valueString" : "1.5"
},
{
"name" : "enableCqlOnly",
"valueBoolean" : false
},
{
"name" : "errorLevel",
"valueString" : "Info"
},
{
"name" : "signatureLevel",
"valueString" : "Overloads"
},
{
"name" : "validateUnits",
"valueBoolean" : true
},
{
"name" : "verifyOnly",
"valueBoolean" : false
}
]
}
],
"extension" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/cqf-cqlOptions",
"valueReference" : {
"reference" : "#options"
}
}
],
"url" : "http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/NHSNAcuteCareHospitalMonthlyInitialPopulation",
"version" : "1.0.0",
"name" : "NHSNAcuteCareHospitalMonthlyInitialPopulation",
"status" : "draft",
"type" : {
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/library-type",
"code" : "logic-library"
}
]
},
"date" : "2025-09-15T12:53:39-04:00",
"publisher" : "CDC National Healthcare Safety Network (NHSN)",
"contact" : [
{
"name" : "CDC National Healthcare Safety Network (NHSN)",
"telecom" : [
{
"system" : "url",
"value" : "http://www.cdc.gov/nhsn"
},
{
"system" : "email",
"value" : "nhsn@cdc.gov"
}
]
}
],
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "US"
}
]
}
],
"relatedArtifact" : [
{
"type" : "depends-on",
"display" : "FHIR model information",
"resource" : "http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1"
},
{
"type" : "depends-on",
"display" : "Library FHIRHelpers",
"resource" : "http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/FHIRHelpers|4.0.2"
},
{
"type" : "depends-on",
"display" : "Library NHSNHelpers",
"resource" : "http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/NHSNHelpers|0.0.002"
},
{
"type" : "depends-on",
"display" : "Library SharedResource",
"resource" : "http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/SharedResourceCreation|0.1.010"
},
{
"type" : "depends-on",
"display" : "Code system ActCode",
"resource" : "http://terminology.hl7.org/CodeSystem/v3-ActCode|9.0.0"
},
{
"type" : "depends-on",
"display" : "Code system Observation Category",
"resource" : "http://terminology.hl7.org/CodeSystem/observation-category|1.0.1"
},
{
"type" : "depends-on",
"display" : "Code system LOINC",
"resource" : "http://loinc.org"
},
{
"type" : "depends-on",
"display" : "Code system V2-0074",
"resource" : "http://terminology.hl7.org/CodeSystem/v2-0074|2.5.0"
},
{
"type" : "depends-on",
"display" : "Code system Condition Category",
"resource" : "http://terminology.hl7.org/CodeSystem/condition-category|1.0.1"
},
{
"type" : "depends-on",
"display" : "Code system US Core Condition Category",
"resource" : "http://hl7.org/fhir/us/core/CodeSystem/condition-category"
},
{
"type" : "depends-on",
"display" : "Code system Condition Clinical Status",
"resource" : "http://terminology.hl7.org/CodeSystem/condition-clinical|3.0.0"
},
{
"type" : "depends-on",
"display" : "Value set Inpatient, Emergency, and Observation Locations",
"resource" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.265"
},
{
"type" : "depends-on",
"display" : "Value set Emergency Department Visit",
"resource" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292"
},
{
"type" : "depends-on",
"display" : "Value set Encounter Inpatient",
"resource" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307"
},
{
"type" : "depends-on",
"display" : "Value set Observation Services",
"resource" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143"
},
{
"type" : "depends-on",
"display" : "Value set NHSN Inpatient Encounter Class Codes",
"resource" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274"
}
],
"parameter" : [
{
"name" : "Measurement Period",
"use" : "in",
"min" : 0,
"max" : "1",
"type" : "Period"
},
{
"name" : "Patient",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "Patient"
},
{
"name" : "Qualifying Encounters During Measurement Period",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Encounter"
},
{
"name" : "Encounters",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Encounter"
},
{
"name" : "Encounters with Patient Hospital Locations",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Encounter"
},
{
"name" : "Initial Population",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Encounter"
},
{
"name" : "Conditions",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Condition"
},
{
"name" : "DiagnosticReports",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "DiagnosticReport"
},
{
"name" : "Observations",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Observation"
},
{
"name" : "Get Locations from IP Encounters in Measurement Period",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Location"
},
{
"name" : "SDE Condition",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Condition"
},
{
"name" : "SDE Device",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Device"
},
{
"name" : "SDE DiagnosticReport Lab",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "DiagnosticReport"
},
{
"name" : "SDE DiagnosticReport Note",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "DiagnosticReport"
},
{
"name" : "SDE DiagnosticReport Others",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "DiagnosticReport"
},
{
"name" : "SDE Encounter",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Encounter"
},
{
"name" : "SDE IP Encounters",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Encounter"
},
{
"name" : "SDE Location",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Location"
},
{
"name" : "SDE Medication Administration",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "MedicationAdministration"
},
{
"name" : "SDE Medication Request",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "MedicationRequest"
},
{
"name" : "SDE Medication",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Medication"
},
{
"name" : "SDE Observation Lab Category",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Observation"
},
{
"name" : "SDE Observation Vital Signs Category",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Observation"
},
{
"name" : "SDE Observation Category",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Observation"
},
{
"name" : "SDE Coverage",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Coverage"
},
{
"name" : "SDE Procedure",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Procedure"
},
{
"name" : "SDE Specimen",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "Specimen"
},
{
"name" : "SDE Service Request",
"use" : "out",
"min" : 0,
"max" : "*",
"type" : "ServiceRequest"
},
{
"name" : "SDE Minimal Patient",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "Patient"
}
],
"dataRequirement" : [
{
"type" : "Patient",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Patient"
]
},
{
"type" : "Encounter",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Encounter"
],
"mustSupport" : [
"type",
"status",
"period",
"location",
"diagnosis",
"id"
],
"codeFilter" : [
{
"path" : "type",
"valueSet" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307"
}
]
},
{
"type" : "Encounter",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Encounter"
],
"mustSupport" : [
"type",
"status",
"period",
"location",
"diagnosis",
"id"
],
"codeFilter" : [
{
"path" : "type",
"valueSet" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292"
}
]
},
{
"type" : "Encounter",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Encounter"
],
"mustSupport" : [
"type",
"status",
"period",
"location",
"diagnosis",
"id"
],
"codeFilter" : [
{
"path" : "type",
"valueSet" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143"
}
]
},
{
"type" : "Encounter",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Encounter"
],
"mustSupport" : [
"class",
"status",
"period",
"location",
"diagnosis",
"id"
],
"codeFilter" : [
{
"path" : "class",
"valueSet" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274"
}
]
},
{
"type" : "Encounter",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Encounter"
],
"mustSupport" : [
"class",
"status",
"period",
"location",
"diagnosis",
"id"
],
"codeFilter" : [
{
"path" : "class",
"code" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/v3-ActCode",
"code" : "EMER",
"display" : "emergency"
}
]
}
]
},
{
"type" : "Encounter",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Encounter"
],
"mustSupport" : [
"class",
"status",
"period",
"location",
"diagnosis",
"id"
],
"codeFilter" : [
{
"path" : "class",
"code" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/v3-ActCode",
"code" : "OBSENC",
"display" : "observation encounter"
}
]
}
]
},
{
"type" : "Encounter",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Encounter"
],
"mustSupport" : [
"status",
"period",
"location",
"diagnosis",
"id"
]
},
{
"type" : "Condition",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Condition"
],
"mustSupport" : [
"id",
"extension",
"clinicalStatus",
"verificationStatus",
"category",
"severity",
"code",
"bodySite",
"subject",
"encounter",
"onset",
"abatement",
"recordedDate",
"stage",
"evidence",
"note",
"encounter.id"
]
},
{
"type" : "DiagnosticReport",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/DiagnosticReport"
],
"mustSupport" : [
"id",
"extension",
"basedOn",
"status",
"category",
"code",
"subject",
"encounter",
"effective",
"issued",
"performer",
"resultsInterpreter",
"specimen",
"result",
"conclusion",
"conclusionCode"
]
},
{
"type" : "Observation",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Observation"
],
"mustSupport" : [
"id",
"extension",
"partOf",
"status",
"category",
"code",
"subject",
"focus",
"encounter",
"effective",
"issued",
"performer",
"value",
"dataAbsentReason",
"interpretation",
"note",
"bodySite",
"method",
"specimen",
"device",
"referenceRange",
"hasMember",
"derivedFrom",
"component"
]
},
{
"type" : "Device",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Device"
],
"mustSupport" : [
"id",
"extension",
"definition",
"udiCarrier",
"status",
"statusReason",
"distinctIdentifier",
"manufacturer",
"manufactureDate",
"expirationDate",
"lotNumber",
"serialNumber",
"deviceName",
"modelNumber",
"partNumber",
"type",
"specialization",
"version",
"property",
"patient",
"owner",
"contact",
"location",
"url",
"note",
"safety",
"parent"
]
},
{
"type" : "MedicationAdministration",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/MedicationAdministration"
],
"mustSupport" : [
"effective"
]
},
{
"type" : "MedicationRequest",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/MedicationRequest"
],
"mustSupport" : [
"authoredOn"
]
},
{
"type" : "Medication",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Medication"
],
"mustSupport" : [
"id"
]
},
{
"type" : "Coverage",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Coverage"
],
"mustSupport" : [
"period"
]
},
{
"type" : "Procedure",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Procedure"
],
"mustSupport" : [
"performed"
]
},
{
"type" : "Specimen",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/Specimen"
],
"mustSupport" : [
"collection",
"collection.collected"
]
},
{
"type" : "ServiceRequest",
"profile" : [
🔗 "http://hl7.org/fhir/StructureDefinition/ServiceRequest"
],
"mustSupport" : [
"authoredOn"
]
}
],
"content" : [
{
"contentType" : "text/cql",
"data" : "bGlicmFyeSBOSFNOQWN1dGVDYXJlSG9zcGl0YWxNb250aGx5SW5pdGlhbFBvcHVsYXRpb24gdmVyc2lvbiAnMS4wLjEtZGV2Jw0KDQp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJw0KDQppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4yJyBjYWxsZWQgRkhJUkhlbHBlcnMNCmluY2x1ZGUgTkhTTkhlbHBlcnMgdmVyc2lvbiAnMC4wLjAwMicgY2FsbGVkIE5IU05IZWxwZXJzDQppbmNsdWRlIFNoYXJlZFJlc291cmNlQ3JlYXRpb24gdmVyc2lvbiAnMC4xLjAxMCcgY2FsbGVkIFNoYXJlZFJlc291cmNlDQoNCmNvZGVzeXN0ZW0gIkFjdENvZGUiOiAnaHR0cDovL3Rlcm1pbm9sb2d5LmhsNy5vcmcvQ29kZVN5c3RlbS92My1BY3RDb2RlJw0KY29kZXN5c3RlbSAiT2JzZXJ2YXRpb24gQ2F0ZWdvcnkiOiAnaHR0cDovL3Rlcm1pbm9sb2d5LmhsNy5vcmcvQ29kZVN5c3RlbS9vYnNlcnZhdGlvbi1jYXRlZ29yeScNCmNvZGVzeXN0ZW0gIkxPSU5DIjogJ2h0dHA6Ly9sb2luYy5vcmcnIA0KY29kZXN5c3RlbSAiVjItMDA3NCI6ICdodHRwOi8vdGVybWlub2xvZ3kuaGw3Lm9yZy9Db2RlU3lzdGVtL3YyLTAwNzQnDQpjb2Rlc3lzdGVtICJDb25kaXRpb24gQ2F0ZWdvcnkiOiAnaHR0cDovL3Rlcm1pbm9sb2d5LmhsNy5vcmcvQ29kZVN5c3RlbS9jb25kaXRpb24tY2F0ZWdvcnknDQpjb2Rlc3lzdGVtICJVUyBDb3JlIENvbmRpdGlvbiBDYXRlZ29yeSI6ICdodHRwOi8vaGw3Lm9yZy9maGlyL3VzL2NvcmUvQ29kZVN5c3RlbS9jb25kaXRpb24tY2F0ZWdvcnknDQpjb2Rlc3lzdGVtICJDb25kaXRpb24gQ2xpbmljYWwgU3RhdHVzIjogJ2h0dHA6Ly90ZXJtaW5vbG9neS5obDcub3JnL0NvZGVTeXN0ZW0vY29uZGl0aW9uLWNsaW5pY2FsJw0KDQp2YWx1ZXNldCAiSW5wYXRpZW50LCBFbWVyZ2VuY3ksIGFuZCBPYnNlcnZhdGlvbiBMb2NhdGlvbnMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMDQ2LjI2NScNCnZhbHVlc2V0ICJFbWVyZ2VuY3kgRGVwYXJ0bWVudCBWaXNpdCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4xMTcuMS43LjEuMjkyJw0KdmFsdWVzZXQgIkVuY291bnRlciBJbnBhdGllbnQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNjY2LjUuMzA3Jw0KdmFsdWVzZXQgIk9ic2VydmF0aW9uIFNlcnZpY2VzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTExMS4xNDMnDQp2YWx1ZXNldCAiTkhTTiBJbnBhdGllbnQgRW5jb3VudGVyIENsYXNzIENvZGVzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTA0Ni4yNzQnDQoNCi8vY29kZSBmb3IgT2JzZXJ2YXRpb24gQ2F0ZWdvcnkNCmNvZGUgImxhYm9yYXRvcnkiOiAnbGFib3JhdG9yeScgZnJvbSAiT2JzZXJ2YXRpb24gQ2F0ZWdvcnkiIGRpc3BsYXkgJ0xhYm9yYXRvcnknDQpjb2RlICJzb2NpYWwtaGlzdG9yeSI6ICdzb2NpYWwtaGlzdG9yeScgZnJvbSAiT2JzZXJ2YXRpb24gQ2F0ZWdvcnkiIGRpc3BsYXkgJ1NvY2lhbCBIaXN0b3J5Jw0KY29kZSAidml0YWwtc2lnbnMiOiAndml0YWwtc2lnbnMnIGZyb20gIk9ic2VydmF0aW9uIENhdGVnb3J5IiBkaXNwbGF5ICdWaXRhbCBTaWducycNCmNvZGUgImltYWdpbmciOiAnaW1hZ2luZycgZnJvbSAiT2JzZXJ2YXRpb24gQ2F0ZWdvcnkiIGRpc3BsYXkgJ0ltYWdpbmcnDQpjb2RlICJwcm9jZWR1cmUiOiAncHJvY2VkdXJlJyBmcm9tICJPYnNlcnZhdGlvbiBDYXRlZ29yeSIgZGlzcGxheSAnUHJvY2VkdXJlJw0KY29kZSAic3VydmV5IjogJ3N1cnZleScgZnJvbSAiT2JzZXJ2YXRpb24gQ2F0ZWdvcnkiIGRpc3BsYXkgJ1N1cnZleScNCg0KLy9jb2RlIGZvciBDb25kaXRpb24gY2F0ZWdvcnkNCmNvZGUgInByb2JsZW0tbGlzdC1pdGVtIjogJ3Byb2JsZW0tbGlzdC1pdGVtJyBmcm9tICJDb25kaXRpb24gQ2F0ZWdvcnkiIGRpc3BsYXkgJ1Byb2JsZW0gTGlzdCBJdGVtJw0KY29kZSAiZW5jb3VudGVyLWRpYWdub3NpcyI6ICdlbmNvdW50ZXItZGlhZ25vc2lzJyBmcm9tICJDb25kaXRpb24gQ2F0ZWdvcnkiIGRpc3BsYXkgJ0VuY291bnRlciBEaWFnbm9zaXMnDQpjb2RlICJoZWFsdGgtY29uY2VybiI6ICdoZWFsdGgtY29uY2VybicgZnJvbSAiVVMgQ29yZSBDb25kaXRpb24gQ2F0ZWdvcnkiIGRpc3BsYXkgJ0hlYWx0aCBDb25jZXJuJw0KDQovL2NvZGUgZm9yIERpYWdub3N0aWMgUmVwb3J0IENhdGVnb3J5DQpjb2RlICJMQUIiOiAnTEFCJyBmcm9tICJWMi0wMDc0IiBkaXNwbGF5ICdMYWJvcmF0b3J5Jw0KY29kZSAiUmFkaW9sb2d5IjogJ0xQMjk2ODQtNScgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ1JhZGlvbG9neScNCmNvZGUgIlBhdGhvbG9neSI6ICdMUDc4MzktNicgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ1BhdGhvbG9neScNCmNvZGUgIkNhcmRpb2xvZ3kiOiAnTFAyOTcwOC0yJyBmcm9tICJMT0lOQyIgZGlzcGxheSAnQ2FyZGlvbG9neScNCg0KLy9jb2RlIGZvciBFbWVyZ2VuY3kgRW5jb3VudGVyIENsYXNzDQpjb2RlICJlbWVyZ2VuY3kiOiAnRU1FUicgZnJvbSAiQWN0Q29kZSIgZGlzcGxheSAnZW1lcmdlbmN5Jw0KY29kZSAib2JzZXJ2YXRpb24gZW5jb3VudGVyIjogJ09CU0VOQycgZnJvbSAiQWN0Q29kZSIgZGlzcGxheSAnb2JzZXJ2YXRpb24gZW5jb3VudGVyJw0KDQovL2NvZGUgZm9yIENvbmRpdGlvbiBjbGluaWNhbFN0YXR1cw0KY29kZSAiYWN0aXZlIjogJ2FjdGl2ZScgZnJvbSAiQ29uZGl0aW9uIENsaW5pY2FsIFN0YXR1cyIgZGlzcGxheSAnYWN0aXZlJw0KDQpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgDQogICAgZGVmYXVsdCBJbnRlcnZhbFtAMjAyNC0wNC0wMVQwMDowMDowMC4wLCBAMjAyNC0wNC0zMFQyMzo1OTo1OS4wKQ0KDQpjb250ZXh0IFBhdGllbnQgDQoNCmRlZmluZSAiUXVhbGlmeWluZyBFbmNvdW50ZXJzIER1cmluZyBNZWFzdXJlbWVudCBQZXJpb2QiOg0KICggW0VuY291bnRlcjogIkVuY291bnRlciBJbnBhdGllbnQiXQ0KICB1bmlvbiBbRW5jb3VudGVyOiAiRW1lcmdlbmN5IERlcGFydG1lbnQgVmlzaXQiXQ0KICB1bmlvbiBbRW5jb3VudGVyOiAiT2JzZXJ2YXRpb24gU2VydmljZXMiXQ0KICB1bmlvbiBbRW5jb3VudGVyOiBjbGFzcyBpbiAiTkhTTiBJbnBhdGllbnQgRW5jb3VudGVyIENsYXNzIENvZGVzIl0NCiAgdW5pb24gW0VuY291bnRlcjogY2xhc3MgfiAiZW1lcmdlbmN5Il0NCiAgdW5pb24gW0VuY291bnRlcjogY2xhc3MgfiAib2JzZXJ2YXRpb24gZW5jb3VudGVyIl0pIFF1YWxpZnlpbmdFbmNvdW50ZXJzDQogIHdoZXJlIFF1YWxpZnlpbmdFbmNvdW50ZXJzLnN0YXR1cyBpbiB7J2luLXByb2dyZXNzJywgJ2ZpbmlzaGVkJywgJ3RyaWFnZWQnLCAnb25sZWF2ZScsICdlbnRlcmVkLWluLWVycm9yJ30NCiAgICBhbmQgUXVhbGlmeWluZ0VuY291bnRlcnMucGVyaW9kIG92ZXJsYXBzICJNZWFzdXJlbWVudCBQZXJpb2QiIA0KDQpkZWZpbmUgIkVuY291bnRlcnMgd2l0aCBQYXRpZW50IEhvc3BpdGFsIExvY2F0aW9ucyI6DQogICJFbmNvdW50ZXJzIiBFbmNvdW50ZXJzDQogIHdoZXJlIGV4aXN0cygNCiAgICBFbmNvdW50ZXJzLmxvY2F0aW9uIEVuY291bnRlckxvY2F0aW9uDQogICAgd2hlcmUgTkhTTkhlbHBlcnMuR2V0TG9jYXRpb24oRW5jb3VudGVyTG9jYXRpb24ubG9jYXRpb24pLnR5cGUgaW4gIklucGF0aWVudCwgRW1lcmdlbmN5LCBhbmQgT2JzZXJ2YXRpb24gTG9jYXRpb25zIg0KICAgICAgYW5kIEVuY291bnRlckxvY2F0aW9uLnBlcmlvZCBvdmVybGFwcyBFbmNvdW50ZXJzLnBlcmlvZA0KICApDQogIGFuZCBFbmNvdW50ZXJzLnN0YXR1cyBpbiB7J2luLXByb2dyZXNzJywgJ2ZpbmlzaGVkJywgJ3RyaWFnZWQnLCAnb25sZWF2ZScsICdlbnRlcmVkLWluLWVycm9yJ30NCiAgYW5kIEVuY291bnRlcnMucGVyaW9kIG92ZXJsYXBzICJNZWFzdXJlbWVudCBQZXJpb2QiDQoNCmRlZmluZSAiSW5pdGlhbCBQb3B1bGF0aW9uIjoNCiAgIlF1YWxpZnlpbmcgRW5jb3VudGVycyBEdXJpbmcgTWVhc3VyZW1lbnQgUGVyaW9kIg0KICB1bmlvbiAiRW5jb3VudGVycyB3aXRoIFBhdGllbnQgSG9zcGl0YWwgTG9jYXRpb25zIg0KDQpkZWZpbmUgIkVuY291bnRlcnMiOg0KICBbRW5jb3VudGVyXQ0KDQpkZWZpbmUgIkNvbmRpdGlvbnMiOg0KICBbQ29uZGl0aW9uXQ0KDQpkZWZpbmUgIkRpYWdub3N0aWNSZXBvcnRzIjoNCiAgW0RpYWdub3N0aWNSZXBvcnRdDQoNCmRlZmluZSAiT2JzZXJ2YXRpb25zIjoNCiAgW09ic2VydmF0aW9uXQ0KDQpkZWZpbmUgIkdldCBMb2NhdGlvbnMgZnJvbSBJUCBFbmNvdW50ZXJzIGluIE1lYXN1cmVtZW50IFBlcmlvZCI6DQogIGZsYXR0ZW4oIkluaXRpYWwgUG9wdWxhdGlvbiIgSVANCiAgbGV0IGxvY2F0aW9uRWxlbWVudHM6IElQLmxvY2F0aW9uDQogIHJldHVybg0KICAgIGxvY2F0aW9uRWxlbWVudHMgTEUNCiAgICBsZXQgbG9jYXRpb25SZWZlcmVuY2U6IExFLmxvY2F0aW9uDQogICAgcmV0dXJuIE5IU05IZWxwZXJzLkdldExvY2F0aW9uKGxvY2F0aW9uUmVmZXJlbmNlKSkNCg0KLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQovL1N1cHBsZW1lbnRhbCBEYXRhIEVsZW1lbnQNCi8vV2hlbiBGSElSLmNhbm9uaWNhbCB2YWx1ZSBpcyBwcmVzZW50LCBVUyBDb3JlIDMuMS4xIHByb2ZpbGVzIGFyZSB1c2VkDQovL1doZW4gRkhJUi5jYW5vbmljYWwgdmFsdWUgaXMgbm90IHByZXNlbnQsIEZISVIgQmFzZSBwcm9maWxlcyBhcmUgdXNlZA0KLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpkZWZpbmUgIlNERSBDb25kaXRpb24iOg0KICAiQ29uZGl0aW9ucyIgQ29uZGl0aW9ucyANCiAgd2hlcmUgZXhpc3RzKA0KICAgICJJbml0aWFsIFBvcHVsYXRpb24iIElQDQogICAgLy9DaGVjayBmb3IgUHJvYmxlbSBMaXN0IENvbmRpdGlvbnMgdGhhdCB3ZXJlIHJlY29yZGVkIGJlZm9yZSBvciBkdXJpbmcgSVANCiAgICB3aGVyZSAoDQogICAgICBDb25kaXRpb25zLnJlY29yZGVkRGF0ZSBiZWZvcmUgZW5kIG9mIElQLnBlcmlvZA0KICAgICAgYW5kIGV4aXN0cyhDb25kaXRpb25zLmNhdGVnb3J5IGNhdGVnb3JpZXMNCiAgICAgICAgd2hlcmUgY2F0ZWdvcmllcyB+ICJwcm9ibGVtLWxpc3QtaXRlbSIpDQogICAgICBhbmQgQ29uZGl0aW9ucy5jbGluaWNhbFN0YXR1cyB+ICJhY3RpdmUiDQogICAgKQ0KICAgIC8vQ2hlY2sgZm9yIEVuY291bnRlciBEaWFnbm9zaXMgQ29uZGl0aW9ucyB0aGF0IHJlZmVyZW5jZSBhbiBJUCBlbmNvdW50ZXINCiAgICBvciAoDQogICAgICAoZXhpc3RzKElQLmRpYWdub3NpcyBEaWFnbm9zZXMNCiAgICAgICAgICB3aGVyZSBHZXRDb25kaXRpb24oRGlhZ25vc2VzLmNvbmRpdGlvbikuaWQgPSBDb25kaXRpb25zLmlkDQogICAgICAgICkNCiAgICAgICAgb3IgR2V0RW5jb3VudGVyKENvbmRpdGlvbnMuZW5jb3VudGVyKS5pZCA9IElQLmlkDQogICAgICApDQogICAgICBhbmQgZXhpc3RzIChDb25kaXRpb25zLmNhdGVnb3J5IGNhdGVnb3JpZXMNCiAgICAgICAgd2hlcmUgY2F0ZWdvcmllcyB+ICJlbmNvdW50ZXItZGlhZ25vc2lzIg0KICAgICAgICAgIG9yIGNhdGVnb3JpZXMgfiAiaGVhbHRoLWNvbmNlcm4iKQ0KICAgICkNCiAgKQ0KICByZXR1cm4gQ29uZGl0aW9uUmVzb3VyY2UoQ29uZGl0aW9ucywNCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtbW9udGhseS1jb25kaXRpb24nfX0sDQogIHsicHJvYmxlbS1saXN0LWl0ZW0iLCAiZW5jb3VudGVyLWRpYWdub3NpcyIsICJoZWFsdGgtY29uY2VybiJ9KQ0KDQpkZWZpbmUgIlNERSBEZXZpY2UiOg0KICBbRGV2aWNlXSBEZXZpY2VzIA0KICB3aGVyZSBleGlzdHMoIkluaXRpYWwgUG9wdWxhdGlvbiIpDQogIHJldHVybiBEZXZpY2VSZXNvdXJjZShEZXZpY2VzLA0KICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1tb250aGx5LWRldmljZSd9fSkNCg0KLy9UaGlzIGJsb2NrIGNvbGxlY3RzIGFsbCBEaWFnbm9zdGljUmVwb3J0IHJlc291cmNlcyB3aGlsZSBhbHNvIG1hcmtpbmcgTGFiIGFuZCBOb3RlIERpYWdub3N0aWNSZXBvcnRzIHdpdGggdGhlIGFwcHJvcHJpYXRlIHByb2ZpbGVzDQovLyNTdGFydCBEaWFnbm9zdGljUmVwb3J0IGJsb2NrDQpkZWZpbmUgIlNERSBEaWFnbm9zdGljUmVwb3J0IExhYiI6DQogICJEaWFnbm9zdGljUmVwb3J0cyIgRGlhZ25vc3RpY1JlcG9ydHMNCiAgd2hlcmUgKGV4aXN0cyhEaWFnbm9zdGljUmVwb3J0cy5jYXRlZ29yeSBDYXRlZ29yeSB3aGVyZSBDYXRlZ29yeSB+ICJMQUIiKQ0KICAgIGFuZCBleGlzdHMoDQogICAgICAiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUA0KICAgICAgd2hlcmUgTkhTTkhlbHBlcnMuIk5vcm1hbGl6ZSBJbnRlcnZhbCIoRGlhZ25vc3RpY1JlcG9ydHMuZWZmZWN0aXZlKSBvdmVybGFwcyBJUC5wZXJpb2QpKQ0KICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuRGlhZ25vc3RpY1JlcG9ydExhYlJlc291cmNlKERpYWdub3N0aWNSZXBvcnRzLA0KICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1tb250aGx5LWRpYWdub3N0aWNyZXBvcnQtbGFiJ319KQ0KIA0KZGVmaW5lICJTREUgRGlhZ25vc3RpY1JlcG9ydCBOb3RlIjoNCiAgIkRpYWdub3N0aWNSZXBvcnRzIiBEaWFnbm9zdGljUmVwb3J0cw0KICB3aGVyZSAoKGV4aXN0cyhEaWFnbm9zdGljUmVwb3J0cy5jYXRlZ29yeSBDYXRlZ29yeSB3aGVyZSBDYXRlZ29yeSB+ICJSYWRpb2xvZ3kiKSkNCiAgICBvciBleGlzdHMoKERpYWdub3N0aWNSZXBvcnRzLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gIlBhdGhvbG9neSIpKQ0KICAgIG9yIGV4aXN0cygoRGlhZ25vc3RpY1JlcG9ydHMuY2F0ZWdvcnkgQ2F0ZWdvcnkgd2hlcmUgQ2F0ZWdvcnkgfiAiQ2FyZGlvbG9neSIpKSkNCiAgICBhbmQgZXhpc3RzKA0KICAgICAgIkluaXRpYWwgUG9wdWxhdGlvbiIgSVANCiAgICAgIHdoZXJlIE5IU05IZWxwZXJzLiJOb3JtYWxpemUgSW50ZXJ2YWwiKERpYWdub3N0aWNSZXBvcnRzLmVmZmVjdGl2ZSkgb3ZlcmxhcHMgSVAucGVyaW9kKQ0KICByZXR1cm4gRGlhZ25vc3RpY1JlcG9ydFJlc291cmNlKERpYWdub3N0aWNSZXBvcnRzLA0KICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1tb250aGx5LWRpYWdub3N0aWNyZXBvcnQtbm90ZSd9fSkNCg0KZGVmaW5lICJTREUgRGlhZ25vc3RpY1JlcG9ydCBPdGhlcnMiOg0KICBbRGlhZ25vc3RpY1JlcG9ydF0gRGlhZ25vc3RpY1JlcG9ydHMNCiAgd2hlcmUgbm90ICgoZXhpc3RzKERpYWdub3N0aWNSZXBvcnRzLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gIlJhZGlvbG9neSIpKQ0KICAgIG9yIGV4aXN0cygoRGlhZ25vc3RpY1JlcG9ydHMuY2F0ZWdvcnkgQ2F0ZWdvcnkgd2hlcmUgQ2F0ZWdvcnkgfiAiUGF0aG9sb2d5IikpDQogICAgb3IgZXhpc3RzKChEaWFnbm9zdGljUmVwb3J0cy5jYXRlZ29yeSBDYXRlZ29yeSB3aGVyZSBDYXRlZ29yeSB+ICJDYXJkaW9sb2d5IikpDQogICAgb3IgZXhpc3RzKERpYWdub3N0aWNSZXBvcnRzLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gIkxBQiIpKQ0KICAgIGFuZCBleGlzdHMoIkluaXRpYWwgUG9wdWxhdGlvbiIgSVANCiAgICAgIHdoZXJlIE5IU05IZWxwZXJzLiJOb3JtYWxpemUgSW50ZXJ2YWwiKERpYWdub3N0aWNSZXBvcnRzLmVmZmVjdGl2ZSkgb3ZlcmxhcHMgSVAucGVyaW9kKQ0KICByZXR1cm4gRGlhZ25vc3RpY1JlcG9ydFJlc291cmNlKERpYWdub3N0aWNSZXBvcnRzLA0KICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1tb250aGx5LWRpYWdub3N0aWNyZXBvcnQnfX0pDQovLyNFbmQgRGlhZ25vc3RpY1JlcG9ydCBibG9jaw0KDQpkZWZpbmUgIlNERSBFbmNvdW50ZXIiOiANCiAgIkVuY291bnRlcnMiIEVuY291bnRlcnMNCiAgd2hlcmUgbm90IENoZWNrSVAoRW5jb3VudGVycykNCiAgYW5kIGV4aXN0cygNCiAgICAiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUA0KICAgIHdoZXJlIEVuY291bnRlcnMucGVyaW9kIG92ZXJsYXBzIElQLnBlcmlvZCkNCiAgcmV0dXJuIFNoYXJlZFJlc291cmNlLkVuY291bnRlclJlc291cmNlKEVuY291bnRlcnMsDQogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly9obDcub3JnL2ZoaXIvdXMvY29yZS9TdHJ1Y3R1cmVEZWZpbml0aW9uL3VzLWNvcmUtZW5jb3VudGVyJ319KQ0KDQpkZWZpbmUgIlNERSBJUCBFbmNvdW50ZXJzIjoNCiAgIkluaXRpYWwgUG9wdWxhdGlvbiIgSVANCiAgcmV0dXJuIFNoYXJlZFJlc291cmNlLkVuY291bnRlclJlc291cmNlKElQLCANCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtbW9udGhseS1lbmNvdW50ZXInfX0pDQoNCmRlZmluZSAiU0RFIExvY2F0aW9uIjoNCiAgIkdldCBMb2NhdGlvbnMgZnJvbSBJUCBFbmNvdW50ZXJzIGluIE1lYXN1cmVtZW50IFBlcmlvZCIgTG9jYXRpb25zDQogIHdoZXJlIGV4aXN0cygiSW5pdGlhbCBQb3B1bGF0aW9uIikNCiAgYW5kIExvY2F0aW9ucyBpcyBub3QgbnVsbA0KICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuTG9jYXRpb25SZXNvdXJjZShMb2NhdGlvbnMsDQogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLW1vbnRobHktbG9jYXRpb24nfX0pDQogDQpkZWZpbmUgIlNERSBNZWRpY2F0aW9uIEFkbWluaXN0cmF0aW9uIjoNCiAgW01lZGljYXRpb25BZG1pbmlzdHJhdGlvbl0gTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9ucyANCiAgd2hlcmUgZXhpc3RzKA0KICAgICJJbml0aWFsIFBvcHVsYXRpb24iIElQDQogICAgd2hlcmUgTkhTTkhlbHBlcnMuIk5vcm1hbGl6ZSBJbnRlcnZhbCIoTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9ucy5lZmZlY3RpdmUpIG92ZXJsYXBzIElQLnBlcmlvZCkNCiAgcmV0dXJuIFNoYXJlZFJlc291cmNlLk1lZGljYXRpb25BZG1pbmlzdHJhdGlvblJlc291cmNlKE1lZGljYXRpb25BZG1pbmlzdHJhdGlvbnMsDQogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLW1vbnRobHktbWVkaWNhdGlvbmFkbWluaXN0cmF0aW9uJ319KQ0KIA0KZGVmaW5lICJTREUgTWVkaWNhdGlvbiBSZXF1ZXN0IjoNCiAgW01lZGljYXRpb25SZXF1ZXN0XSBNZWRpY2F0aW9uUmVxdWVzdHMgDQogIHdoZXJlIGV4aXN0cygNCiAgICAiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUA0KICAgIHdoZXJlIE1lZGljYXRpb25SZXF1ZXN0cy5hdXRob3JlZE9uIGR1cmluZyBJUC5wZXJpb2QpDQogIHJldHVybiBTaGFyZWRSZXNvdXJjZS5NZWRpY2F0aW9uUmVxdWVzdFJlc291cmNlKE1lZGljYXRpb25SZXF1ZXN0cywNCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtbW9udGhseS1tZWRpY2F0aW9ucmVxdWVzdCd9fSkNCg0KZGVmaW5lICJTREUgTWVkaWNhdGlvbiI6DQogICgiU0RFIE1lZGljYXRpb24gUmVxdWVzdCINCiAgdW5pb24gIlNERSBNZWRpY2F0aW9uIEFkbWluaXN0cmF0aW9uIikgTWVkUmVxT3JBZG1pbg0KICB3aGVyZSBNZWRSZXFPckFkbWluLm1lZGljYXRpb24gaXMgRkhJUi5SZWZlcmVuY2UNCiAgYW5kIGV4aXN0cygiSW5pdGlhbCBQb3B1bGF0aW9uIikgLy9ObyBsb25nZXIgbmVlZCB0byBjaGVjayBmb3IgdGltaW5nIGhlcmUgYmVjYXVzZSBpdCdzIGNoZWNrZWQgaW4gU0RFIE1lZGljYXRpb24gUmVxdWVzdC9BZG1pbmlzdHJpYXRpb24NCiAgcmV0dXJuIFNoYXJlZFJlc291cmNlLk1lZGljYXRpb25SZXNvdXJjZShHZXRNZWRpY2F0aW9uRnJvbShNZWRSZXFPckFkbWluLm1lZGljYXRpb24pLA0KICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1tb250aGx5LW1lZGljYXRpb24nfX0pDQoNCmRlZmluZSAiU0RFIE9ic2VydmF0aW9uIExhYiBDYXRlZ29yeSI6DQogICJPYnNlcnZhdGlvbnMiIE9ic2VydmF0aW9ucyANCiAgd2hlcmUgKGV4aXN0cyhPYnNlcnZhdGlvbnMuY2F0ZWdvcnkgQ2F0ZWdvcnkgd2hlcmUgQ2F0ZWdvcnkgfiAibGFib3JhdG9yeSIpKQ0KICAgIGFuZCBleGlzdHMoDQogICAgICAiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUA0KICAgICAgd2hlcmUgTkhTTkhlbHBlcnMuIk5vcm1hbGl6ZSBJbnRlcnZhbCIoT2JzZXJ2YXRpb25zLmVmZmVjdGl2ZSkgb3ZlcmxhcHMgSVAucGVyaW9kKQ0KICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuT2JzZXJ2YXRpb25MYWJSZXNvdXJjZShPYnNlcnZhdGlvbnMsDQogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLW1vbnRobHktb2JzZXJ2YXRpb24tbGFiJ319KQ0KDQovL1ZpdGFsIFNpZ25zIE9ic2VydmF0aW9uIGhhcyBpdHMgb3duIHByb2ZpbGUgaW4gRkhJUiBCYXNlDQpkZWZpbmUgIlNERSBPYnNlcnZhdGlvbiBWaXRhbCBTaWducyBDYXRlZ29yeSI6DQogICJPYnNlcnZhdGlvbnMiIE9ic2VydmF0aW9ucyANCiAgd2hlcmUgKGV4aXN0cyhPYnNlcnZhdGlvbnMuY2F0ZWdvcnkgQ2F0ZWdvcnkgd2hlcmUgQ2F0ZWdvcnkgfiAidml0YWwtc2lnbnMiKSkNCiAgICBhbmQgZXhpc3RzKA0KICAgICAgIkluaXRpYWwgUG9wdWxhdGlvbiIgSVANCiAgICAgIHdoZXJlIE5IU05IZWxwZXJzLiJOb3JtYWxpemUgSW50ZXJ2YWwiKE9ic2VydmF0aW9ucy5lZmZlY3RpdmUpIG92ZXJsYXBzIElQLnBlcmlvZCkNCiAgcmV0dXJuIE9ic2VydmF0aW9uVml0YWxTaWduc1Jlc291cmNlKE9ic2VydmF0aW9ucywNCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtbW9udGhseS1vYnNlcnZhdGlvbi12aXRhbHMnfX0pDQoNCi8vRGVmYXVsdGluZyB0byBiYXNlIEZISVIgcHJvZmlsZSBhcyB0aGVyZSBhcmUgbm8gaW5kaXZpZHVhbCBwcm9maWxlcyBpbiBVUyBDb3JlIDMuMS4xIHRoYXQgY292ZXIgdGhlc2UgT2JzZXJ2YXRpb24gY2F0ZWdvcmllcw0KZGVmaW5lICJTREUgT2JzZXJ2YXRpb24gQ2F0ZWdvcnkiOg0KICAiT2JzZXJ2YXRpb25zIiBPYnNlcnZhdGlvbnMgDQogIHdoZXJlICgoZXhpc3RzKE9ic2VydmF0aW9ucy5jYXRlZ29yeSBDYXRlZ29yeSB3aGVyZSBDYXRlZ29yeSB+ICJzb2NpYWwtaGlzdG9yeSIpKQ0KICAgIG9yIChleGlzdHMoT2JzZXJ2YXRpb25zLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gInN1cnZleSIpKQ0KICAgIG9yIChleGlzdHMoT2JzZXJ2YXRpb25zLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gImltYWdpbmciKSkNCiAgICBvciAoZXhpc3RzKE9ic2VydmF0aW9ucy5jYXRlZ29yeSBDYXRlZ29yeSB3aGVyZSBDYXRlZ29yeSB+ICJwcm9jZWR1cmUiKSkpDQogICAgYW5kIGV4aXN0cygNCiAgICAgICJJbml0aWFsIFBvcHVsYXRpb24iIElQDQogICAgICB3aGVyZSBOSFNOSGVscGVycy4iTm9ybWFsaXplIEludGVydmFsIihPYnNlcnZhdGlvbnMuZWZmZWN0aXZlKSBvdmVybGFwcyBJUC5wZXJpb2QpDQogIHJldHVybiBPYnNlcnZhdGlvblJlc291cmNlKE9ic2VydmF0aW9ucywNCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtbW9udGhseS1vYnNlcnZhdGlvbid9fSkNCg0KZGVmaW5lICJTREUgQ292ZXJhZ2UiOiANCglbQ292ZXJhZ2VdIENvdmVyYWdlcw0KICB3aGVyZSBleGlzdHMoDQogICAgIkluaXRpYWwgUG9wdWxhdGlvbiIgSVANCiAgICB3aGVyZSBDb3ZlcmFnZXMucGVyaW9kIG92ZXJsYXBzIElQLnBlcmlvZCkNCiAgcmV0dXJuIFNoYXJlZFJlc291cmNlLkNvdmVyYWdlUmVzb3VyY2UoQ292ZXJhZ2VzLA0KICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1tb250aGx5LWNvdmVyYWdlJ319KQ0KDQpkZWZpbmUgIlNERSBQcm9jZWR1cmUiOg0KICBbUHJvY2VkdXJlXSBQcm9jZWR1cmVzIA0KICB3aGVyZSBleGlzdHMoDQogICAgIkluaXRpYWwgUG9wdWxhdGlvbiIgSVANCiAgICB3aGVyZSBOSFNOSGVscGVycy4iTm9ybWFsaXplIEludGVydmFsIihQcm9jZWR1cmVzLnBlcmZvcm1lZCkgb3ZlcmxhcHMgSVAucGVyaW9kKQ0KICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuUHJvY2VkdXJlUmVzb3VyY2UoUHJvY2VkdXJlcywNCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtbW9udGhseS1wcm9jZWR1cmUnfX0pDQoNCmRlZmluZSAiU0RFIFNwZWNpbWVuIjoNCiAgW1NwZWNpbWVuXSBTcGVjaW1lbnMNCiAgd2hlcmUgZXhpc3RzKA0KICAgICJJbml0aWFsIFBvcHVsYXRpb24iIElQDQogICAgd2hlcmUgTkhTTkhlbHBlcnMuIk5vcm1hbGl6ZSBJbnRlcnZhbCIoU3BlY2ltZW5zLmNvbGxlY3Rpb24uY29sbGVjdGVkKSBvdmVybGFwcyBJUC5wZXJpb2QNCiAgKQ0KICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuU3BlY2ltZW5SZXNvdXJjZShTcGVjaW1lbnMsDQogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLW1vbnRobHktc3BlY2ltZW4nfX0pDQoNCmRlZmluZSAiU0RFIFNlcnZpY2UgUmVxdWVzdCI6DQogIFtTZXJ2aWNlUmVxdWVzdF0gU2VydmljZVJlcXVlc3RzDQogIHdoZXJlIGV4aXN0cygiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUA0KICAgIHdoZXJlIFNlcnZpY2VSZXF1ZXN0cy5hdXRob3JlZE9uIGR1cmluZyBJUC5wZXJpb2QpDQogIHJldHVybiBTaGFyZWRSZXNvdXJjZS5TZXJ2aWNlUmVxdWVzdFJlc291cmNlKFNlcnZpY2VSZXF1ZXN0cywNCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtbW9udGhseS1zZXJ2aWNlcmVxdWVzdCd9fSkNCg0KZGVmaW5lICJTREUgTWluaW1hbCBQYXRpZW50IjoNCiAgUGF0aWVudCBwDQogIHJldHVybiBTaGFyZWRSZXNvdXJjZS5QYXRpZW50UmVzb3VyY2UocCwNCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9jcm9zcy1tZWFzdXJlLXBhdGllbnQnfX0pDQoNCi8vDQovL0Z1bmN0aW9ucw0KLy8NCmRlZmluZSBmdW5jdGlvbiAiQ2hlY2tJUCIoZW5jb3VudGVyIEVuY291bnRlcik6DQogIGV4aXN0cygiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUA0KICB3aGVyZSBlbmNvdW50ZXIuaWQgPSBJUC5pZCkNCg0KZGVmaW5lIGZ1bmN0aW9uICJHZXRNZWRpY2F0aW9uRnJvbSIoY2hvaWNlIENob2ljZTxGSElSLkNvZGVhYmxlQ29uY2VwdCwgRkhJUi5SZWZlcmVuY2U+KToNCiAgY2FzZQ0KICAgIHdoZW4gY2hvaWNlIGlzIEZISVIuUmVmZXJlbmNlIHRoZW4NCiAgICAgIEdldE1lZGljYXRpb24oY2hvaWNlIGFzIEZISVIuUmVmZXJlbmNlKQ0KICAgIGVsc2UNCiAgICAgIG51bGwNCiAgZW5kDQoNCmRlZmluZSBmdW5jdGlvbiAiR2V0TWVkaWNhdGlvbiIocmVmZXJlbmNlIFJlZmVyZW5jZSk6DQogIHNpbmdsZXRvbiBmcm9tICgNCiAgICBbTWVkaWNhdGlvbl0gTWVkaWNhdGlvbnMNCiAgICB3aGVyZSBNZWRpY2F0aW9ucy5pZCA9IE5IU05IZWxwZXJzLkdldElkKHJlZmVyZW5jZS5yZWZlcmVuY2UpDQogICkNCg0KZGVmaW5lIGZ1bmN0aW9uICJHZXRDb25kaXRpb24iKHJlZmVyZW5jZSBSZWZlcmVuY2UpOg0KICBzaW5nbGV0b24gZnJvbSAoDQogICAgIkNvbmRpdGlvbnMiIENvbmRpdGlvbnMNCiAgICB3aGVyZSBDb25kaXRpb25zLmlkID0gTkhTTkhlbHBlcnMuR2V0SWQocmVmZXJlbmNlLnJlZmVyZW5jZSkNCiAgKQ0KDQpkZWZpbmUgZnVuY3Rpb24gIkdldEVuY291bnRlciIocmVmZXJlbmNlIFJlZmVyZW5jZSk6DQogIHNpbmdsZXRvbiBmcm9tICgNCiAgICAiRW5jb3VudGVycyIgRW5jb3VudGVycw0KICAgIHdoZXJlIEVuY291bnRlcnMuaWQgPSBOSFNOSGVscGVycy5HZXRJZChyZWZlcmVuY2UucmVmZXJlbmNlKQ0KICApDQoNCmRlZmluZSBmdW5jdGlvbiBSZW1vdmVVbmFjY2VwdGVkKGNvZGVzIExpc3Q8RkhJUi5Db2RlYWJsZUNvbmNlcHQ+LCBhY2NlcHRlZCBMaXN0PFN5c3RlbS5Db2RlPik6DQoJY29kZXMgYw0KICB3aGVyZSBleGlzdHMoDQogICAgYWNjZXB0ZWQgYQ0KICAgIHdoZXJlIGMgfiBhDQogICkNCg0KZGVmaW5lIGZ1bmN0aW9uIEZpbHRlckNvZGVhYmxlQ29uY2VwdHMoY29kZXMgTGlzdDxGSElSLkNvZGVhYmxlQ29uY2VwdD4sIGFjY2VwdGVkIExpc3Q8U3lzdGVtLkNvZGU+KToNCglpZiBDb3VudChhY2NlcHRlZCkgPiAwDQoJCXRoZW4gUmVtb3ZlVW5hY2NlcHRlZChjb2RlcywgYWNjZXB0ZWQpDQoJZWxzZSBjb2Rlcw0KDQovLw0KLy9NZWFzdXJlIFNwZWNpZmljIFJlc291cmNlIENyZWF0aW9uIEZ1bmN0aW9ucw0KLy8NCmRlZmluZSBmdW5jdGlvbiBDb25kaXRpb25SZXNvdXJjZShjb25kaXRpb24gQ29uZGl0aW9uLCBwcm9maWxlVVJMcyBMaXN0PEZISVIuY2Fub25pY2FsPiwgYWNjZXB0ZWRDYXRlZ29yaWVzIExpc3Q8U3lzdGVtLkNvZGU+KToNCiAgY29uZGl0aW9uIGMNCiAgcmV0dXJuIENvbmRpdGlvbnsNCiAgICBpZDogRkhJUi5pZCB7dmFsdWU6ICdMQ1ItJyArIGMuaWR9LA0KICAgIG1ldGE6IFNoYXJlZFJlc291cmNlLk1ldGFFbGVtZW50KGMsIHByb2ZpbGVVUkxzKSwNCiAgICBleHRlbnNpb246IGMuZXh0ZW5zaW9uLA0KICAgIGNsaW5pY2FsU3RhdHVzOiBjLmNsaW5pY2FsU3RhdHVzLA0KICAgIHZlcmlmaWNhdGlvblN0YXR1czogYy52ZXJpZmljYXRpb25TdGF0dXMsDQogICAgY2F0ZWdvcnk6IEZpbHRlckNvZGVhYmxlQ29uY2VwdHMoYy5jYXRlZ29yeSwgYWNjZXB0ZWRDYXRlZ29yaWVzKSwNCiAgICBzZXZlcml0eTogYy5zZXZlcml0eSwNCiAgICBjb2RlOiBjLmNvZGUsDQogICAgYm9keVNpdGU6IGMuYm9keVNpdGUsDQogICAgc3ViamVjdDogYy5zdWJqZWN0LA0KICAgIGVuY291bnRlcjogYy5lbmNvdW50ZXIsDQogICAgb25zZXQ6IGMub25zZXQsDQogICAgYWJhdGVtZW50OiBjLmFiYXRlbWVudCwNCiAgICByZWNvcmRlZERhdGU6IGMucmVjb3JkZWREYXRlLA0KICAgIHN0YWdlOiBTaGFyZWRSZXNvdXJjZS5Db25kaXRpb25TdGFnZShjLnN0YWdlKSwNCiAgICBldmlkZW5jZTogU2hhcmVkUmVzb3VyY2UuQ29uZGl0aW9uRXZpZGVuY2UoYy5ldmlkZW5jZSksDQogICAgbm90ZTogYy5ub3RlDQogIH0NCg0KZGVmaW5lIGZ1bmN0aW9uIERldmljZVVkaUNhcnJpZXIodWRpQ2FycmllciBMaXN0PEZISVIuRGV2aWNlLlVkaUNhcnJpZXI+KToNCiAgdWRpQ2FycmllciB1DQogIHJldHVybiBGSElSLkRldmljZS5VZGlDYXJyaWVyew0KICAgIGRldmljZUlkZW50aWZpZXI6IHUuZGV2aWNlSWRlbnRpZmllciwNCiAgICBpc3N1ZXI6IHUuaXNzdWVyLA0KICAgIGp1cmlzZGljdGlvbjogdS5qdXJpc2RpY3Rpb24sDQogICAgY2FycmllckFJREM6IHUuY2FycmllckFJREMsDQogICAgY2FycmllckhSRjogdS5jYXJyaWVySFJGLA0KICAgIGVudHJ5VHlwZTogdS5lbnRyeVR5cGUNCiAgfQ0KDQpkZWZpbmUgZnVuY3Rpb24gRGV2aWNlRGV2aWNlTmFtZShkZXZpY2VOYW1lIExpc3Q8RkhJUi5EZXZpY2UuRGV2aWNlTmFtZT4pOg0KICBkZXZpY2VOYW1lIGQNCiAgcmV0dXJuIEZISVIuRGV2aWNlLkRldmljZU5hbWV7DQogICAgbmFtZTogZC5uYW1lLA0KICAgIHR5cGU6IGQudHlwZQ0KICB9DQoNCmRlZmluZSBmdW5jdGlvbiBEZXZpY2VTcGVjaWFsaXphdGlvbihzcGVjaWFsaXphdGlvbiBMaXN0PEZISVIuRGV2aWNlLlNwZWNpYWxpemF0aW9uPik6DQogIHNwZWNpYWxpemF0aW9uIHMNCiAgcmV0dXJuIEZISVIuRGV2aWNlLlNwZWNpYWxpemF0aW9uew0KICAgIHN5c3RlbVR5cGU6IHMuc3lzdGVtVHlwZSwNCiAgICB2ZXJzaW9uOiBzLnZlcnNpb24NCiAgfQ0KDQpkZWZpbmUgZnVuY3Rpb24gRGV2aWNlVmVyc2lvbih2ZXJzaW9uIExpc3Q8RkhJUi5EZXZpY2UuVmVyc2lvbj4pOg0KICB2ZXJzaW9uIHYNCiAgcmV0dXJuIEZISVIuRGV2aWNlLlZlcnNpb257DQogICAgdHlwZTogdi50eXBlLA0KICAgIGNvbXBvbmVudDogdi5jb21wb25lbnQsDQogICAgdmFsdWU6IHYudmFsdWUNCiAgfQ0KDQpkZWZpbmUgZnVuY3Rpb24gRGV2aWNlUHJvcGVydHkoZGV2aWNlUHJvcGVydHkgTGlzdDxGSElSLkRldmljZS5Qcm9wZXJ0eT4pOg0KICBkZXZpY2VQcm9wZXJ0eSBkDQogIHJldHVybiBGSElSLkRldmljZS5Qcm9wZXJ0eXsNCiAgICBpZDogZC5pZCwNCiAgICB0eXBlOiBkLnR5cGUsDQogICAgdmFsdWVRdWFudGl0eTogZC52YWx1ZVF1YW50aXR5LA0KICAgIHZhbHVlQ29kZTogZC52YWx1ZUNvZGUNCiAgfQ0KDQpkZWZpbmUgZnVuY3Rpb24gRGV2aWNlUmVzb3VyY2UoZGV2aWNlIERldmljZSwgcHJvZmlsZVVSTHMgTGlzdDxGSElSLmNhbm9uaWNhbD4pOg0KICBkZXZpY2UgZA0KICByZXR1cm4gRGV2aWNlew0KICAgIGlkOiBGSElSLmlke3ZhbHVlOiAnTENSLScgKyBkLmlkfSwNCiAgICBtZXRhOiBTaGFyZWRSZXNvdXJjZS5NZXRhRWxlbWVudChkLCBwcm9maWxlVVJMcyksDQogICAgZXh0ZW5zaW9uOiBkLmV4dGVuc2lvbiwNCiAgICBkZWZpbml0aW9uOiBkLmRlZmluaXRpb24sDQogICAgdWRpQ2FycmllcjogRGV2aWNlVWRpQ2FycmllcihkLnVkaUNhcnJpZXIpLA0KICAgIHN0YXR1czogZC5zdGF0dXMsDQogICAgc3RhdHVzUmVhc29uOiBkLnN0YXR1c1JlYXNvbiwNCiAgICBkaXN0aW5jdElkZW50aWZpZXI6IGQuZGlzdGluY3RJZGVudGlmaWVyLA0KICAgIG1hbnVmYWN0dXJlcjogZC5tYW51ZmFjdHVyZXIsDQogICAgbWFudWZhY3R1cmVEYXRlOiBkLm1hbnVmYWN0dXJlRGF0ZSwNCiAgICBleHBpcmF0aW9uRGF0ZTogZC5leHBpcmF0aW9uRGF0ZSwNCiAgICBsb3ROdW1iZXI6IGQubG90TnVtYmVyLA0KICAgIHNlcmlhbE51bWJlcjogZC5zZXJpYWxOdW1iZXIsDQogICAgZGV2aWNlTmFtZTogRGV2aWNlRGV2aWNlTmFtZShkLmRldmljZU5hbWUpLA0KICAgIG1vZGVsTnVtYmVyOiBkLm1vZGVsTnVtYmVyLA0KICAgIHBhcnROdW1iZXI6IGQucGFydE51bWJlciwNCiAgICB0eXBlOiBkLnR5cGUsDQogICAgc3BlY2lhbGl6YXRpb246IERldmljZVNwZWNpYWxpemF0aW9uKGQuc3BlY2lhbGl6YXRpb24pLA0KICAgIHZlcnNpb246IERldmljZVZlcnNpb24oZC52ZXJzaW9uKSwNCiAgICBwcm9wZXJ0eTogRGV2aWNlUHJvcGVydHkoZC5wcm9wZXJ0eSksDQogICAgcGF0aWVudDogZC5wYXRpZW50LA0KICAgIG93bmVyOiBkLm93bmVyLA0KICAgIGNvbnRhY3Q6IGQuY29udGFjdCwNCiAgICBsb2NhdGlvbjogZC5sb2NhdGlvbiwNCiAgICB1cmw6IGQudXJsLA0KICAgIG5vdGU6IGQubm90ZSwNCiAgICBzYWZldHk6IGQuc2FmZXR5LA0KICAgIHBhcmVudDogZC5wYXJlbnQNCiAgfQ0KDQpkZWZpbmUgZnVuY3Rpb24gRGlhZ25vc3RpY1JlcG9ydFJlc291cmNlKGRpYWdub3N0aWNSZXBvcnQgRGlhZ25vc3RpY1JlcG9ydCwgcHJvZmlsZVVSTHMgTGlzdDxGSElSLmNhbm9uaWNhbD4pOg0KICBkaWFnbm9zdGljUmVwb3J0IGQNCiAgcmV0dXJuIERpYWdub3N0aWNSZXBvcnR7DQogICAgaWQ6IEZISVIuaWR7dmFsdWU6ICdMQ1ItJyArIGQuaWR9LA0KICAgIG1ldGE6IFNoYXJlZFJlc291cmNlLk1ldGFFbGVtZW50KGQsIHByb2ZpbGVVUkxzKSwNCiAgICBleHRlbnNpb246IGQuZXh0ZW5zaW9uLA0KICAgIGJhc2VkT246IGQuYmFzZWRPbiwNCiAgICBzdGF0dXM6IGQuc3RhdHVzLA0KICAgIGNhdGVnb3J5OiBkLmNhdGVnb3J5LA0KICAgIGNvZGU6IGQuY29kZSwNCiAgICBzdWJqZWN0OiBkLnN1YmplY3QsDQogICAgZW5jb3VudGVyOiBkLmVuY291bnRlciwNCiAgICBlZmZlY3RpdmU6IGQuZWZmZWN0aXZlLA0KICAgIGlzc3VlZDogZC5pc3N1ZWQsDQogICAgcGVyZm9ybWVyOiBkLnBlcmZvcm1lciwNCiAgICByZXN1bHRzSW50ZXJwcmV0ZXI6IGQucmVzdWx0c0ludGVycHJldGVyLA0KICAgIHNwZWNpbWVuOiBkLnNwZWNpbWVuLA0KICAgIHJlc3VsdDogZC5yZXN1bHQsDQogICAgY29uY2x1c2lvbjogZC5jb25jbHVzaW9uLA0KICAgIGNvbmNsdXNpb25Db2RlOiBkLmNvbmNsdXNpb25Db2RlDQogIH0NCg0KZGVmaW5lIGZ1bmN0aW9uIE9ic2VydmF0aW9uUmVzb3VyY2Uob2JzZXJ2YXRpb24gT2JzZXJ2YXRpb24sIHByb2ZpbGVVUkxzIExpc3Q8RkhJUi5jYW5vbmljYWw+KToNCiAgb2JzZXJ2YXRpb24gbw0KICByZXR1cm4gT2JzZXJ2YXRpb257DQogICAgaWQ6IEZISVIuaWQge3ZhbHVlOiAnTENSLScgKyBvLmlkfSwNCiAgICBtZXRhOiBTaGFyZWRSZXNvdXJjZS5NZXRhRWxlbWVudChvLCBwcm9maWxlVVJMcyksDQogICAgZXh0ZW5zaW9uOiBvLmV4dGVuc2lvbiwNCiAgICBwYXJ0T2Y6IG8ucGFydE9mLA0KICAgIHN0YXR1czogby5zdGF0dXMsDQogICAgY2F0ZWdvcnk6IG8uY2F0ZWdvcnksDQogICAgY29kZTogby5jb2RlLA0KICAgIHN1YmplY3Q6IG8uc3ViamVjdCwNCiAgICBmb2N1czogby5mb2N1cywNCiAgICBlbmNvdW50ZXI6IG8uZW5jb3VudGVyLA0KICAgIGVmZmVjdGl2ZTogby5lZmZlY3RpdmUsDQogICAgaXNzdWVkOiBvLmlzc3VlZCwNCiAgICBwZXJmb3JtZXI6IG8ucGVyZm9ybWVyLA0KICAgIHZhbHVlOiBvLnZhbHVlLA0KICAgIGRhdGFBYnNlbnRSZWFzb246IG8uZGF0YUFic2VudFJlYXNvbiwNCiAgICBpbnRlcnByZXRhdGlvbjogby5pbnRlcnByZXRhdGlvbiwNCiAgICBub3RlOiBvLm5vdGUsDQogICAgYm9keVNpdGU6IG8uYm9keVNpdGUsDQogICAgbWV0aG9kOiBvLm1ldGhvZCwNCiAgICBzcGVjaW1lbjogby5zcGVjaW1lbiwNCiAgICBkZXZpY2U6IG8uZGV2aWNlLA0KICAgIHJlZmVyZW5jZVJhbmdlOiBTaGFyZWRSZXNvdXJjZS5PYnNlcnZhdGlvblJlZmVyZW5jZVJhbmdlKG8ucmVmZXJlbmNlUmFuZ2UpLA0KICAgIGhhc01lbWJlcjogby5oYXNNZW1iZXIsDQogICAgZGVyaXZlZEZyb206IG8uZGVyaXZlZEZyb20sDQogICAgY29tcG9uZW50OiBTaGFyZWRSZXNvdXJjZS5PYnNlcnZhdGlvbkNvbXBvbmVudChvLmNvbXBvbmVudCkNCiAgfQ0KDQpkZWZpbmUgZnVuY3Rpb24gT2JzZXJ2YXRpb25WaXRhbFNpZ25zQ29kaW5nKGNvZGluZyBMaXN0PENvZGluZz4pOg0KICBjb2RpbmcgYw0KICByZXR1cm4gQ29kaW5new0KICAgIHN5c3RlbTogYy5zeXN0ZW0sDQogICAgdmVyc2lvbjogYy52ZXJzaW9uLA0KICAgIGNvZGU6IGMuY29kZSwNCiAgICBkaXNwbGF5OiBjLmRpc3BsYXksDQogICAgdXNlclNlbGVjdGVkOiBjLnVzZXJTZWxlY3RlZA0KICB9DQoNCmRlZmluZSBmdW5jdGlvbiBPYnNlcnZhdGlvblZpdGFsU2lnbnNDYXRlZ29yeShjYXRlZ29yeSBMaXN0PENvZGVhYmxlQ29uY2VwdD4pOg0KICBjYXRlZ29yeSBjDQogIHJldHVybiBDb2RlYWJsZUNvbmNlcHR7DQogICAgY29kaW5nOiBPYnNlcnZhdGlvblZpdGFsU2lnbnNDb2RpbmcoYy5jb2RpbmcpLA0KICAgIHRleHQ6IGMudGV4dA0KICB9DQoNCmRlZmluZSBmdW5jdGlvbiBPYnNlcnZhdGlvblZpdGFsU2lnbnNDb21wb25lbnQoY29tcG9uZW50IExpc3Q8RkhJUi5PYnNlcnZhdGlvbi5Db21wb25lbnQ+KToNCiAgY29tcG9uZW50IGMNCiAgcmV0dXJuIEZISVIuT2JzZXJ2YXRpb24uQ29tcG9uZW50ew0KICAgIGNvZGU6IGMuY29kZSwNCiAgICB2YWx1ZTogYy52YWx1ZSwNCiAgICBkYXRhQWJzZW50UmVhc29uOiBjLmRhdGFBYnNlbnRSZWFzb24sDQogICAgaW50ZXJwcmV0YXRpb246IGMuaW50ZXJwcmV0YXRpb24sDQogICAgcmVmZXJlbmNlUmFuZ2U6IFNoYXJlZFJlc291cmNlLk9ic2VydmF0aW9uUmVmZXJlbmNlUmFuZ2UoYy5yZWZlcmVuY2VSYW5nZSkNCiAgfQ0KDQpkZWZpbmUgZnVuY3Rpb24gT2JzZXJ2YXRpb25WaXRhbFNpZ25zUmVzb3VyY2Uob2JzZXJ2YXRpb24gT2JzZXJ2YXRpb24sIHByb2ZpbGVVUkxzIExpc3Q8RkhJUi5jYW5vbmljYWw+KToNCiAgb2JzZXJ2YXRpb24gbw0KICByZXR1cm4gT2JzZXJ2YXRpb257DQogICAgaWQ6IEZISVIuaWQge3ZhbHVlOiAnTENSLScgKyBvLmlkfSwNCiAgICBtZXRhOiBTaGFyZWRSZXNvdXJjZS5NZXRhRWxlbWVudChvLCBwcm9maWxlVVJMcyksDQogICAgZXh0ZW5zaW9uOiBvLmV4dGVuc2lvbiwNCiAgICBwYXJ0T2Y6IG8ucGFydE9mLA0KICAgIHN0YXR1czogby5zdGF0dXMsDQogICAgY2F0ZWdvcnk6IE9ic2VydmF0aW9uVml0YWxTaWduc0NhdGVnb3J5KG8uY2F0ZWdvcnkpLA0KICAgIGNvZGU6IG8uY29kZSwNCiAgICBzdWJqZWN0OiBvLnN1YmplY3QsDQogICAgZm9jdXM6IG8uZm9jdXMsDQogICAgZW5jb3VudGVyOiBvLmVuY291bnRlciwNCiAgICBlZmZlY3RpdmU6IG8uZWZmZWN0aXZlLA0KICAgIGlzc3VlZDogby5pc3N1ZWQsDQogICAgcGVyZm9ybWVyOiBvLnBlcmZvcm1lciwNCiAgICB2YWx1ZTogby52YWx1ZSwNCiAgICBkYXRhQWJzZW50UmVhc29uOiBvLmRhdGFBYnNlbnRSZWFzb24sDQogICAgaW50ZXJwcmV0YXRpb246IG8uaW50ZXJwcmV0YXRpb24sDQogICAgbm90ZTogby5ub3RlLA0KICAgIGJvZHlTaXRlOiBvLmJvZHlTaXRlLA0KICAgIG1ldGhvZDogby5tZXRob2QsDQogICAgc3BlY2ltZW46IG8uc3BlY2ltZW4sDQogICAgZGV2aWNlOiBvLmRldmljZSwNCiAgICByZWZlcmVuY2VSYW5nZTogU2hhcmVkUmVzb3VyY2UuT2JzZXJ2YXRpb25SZWZlcmVuY2VSYW5nZShvLnJlZmVyZW5jZVJhbmdlKSwNCiAgICBoYXNNZW1iZXI6IG8uaGFzTWVtYmVyLA0KICAgIGRlcml2ZWRGcm9tOiBvLmRlcml2ZWRGcm9tLA0KICAgIGNvbXBvbmVudDogT2JzZXJ2YXRpb25WaXRhbFNpZ25zQ29tcG9uZW50KG8uY29tcG9uZW50KQ0KICB9"
}
]
}