<?xml version="1.0" encoding="UTF-8"?>

<Library xmlns="http://hl7.org/fhir">
  <id value="CMS117FHIRChildImmunStatus"/>
  <text>
    <status value="extensions"/><div xmlns="http://www.w3.org/1999/xhtml">
  <table class="narrative-table">
    <tbody>
<tr>


<th colspan="2" scope="row" class="row-header"><a name="metadata"> </a>Metadata</th>


</tr>







<tr>


<th scope="row" class="row-header">Version</th>



<td class="content-container">1.1.000</td>


</tr>
















<tr>


<th scope="row" class="row-header">Status</th>



<td class="content-container">Draft</td>


</tr>







































<tr>


<th scope="row" class="row-header">Type</th>



<td class="content-container">
    <a href="http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html">http://terminology.hl7.org/CodeSystem/library-type</a>#logic-library


</td>


</tr>













<tr>


<th colspan="2" scope="row" class="row-header"><a name="parameters"> </a>Parameters</th>


</tr>


<tr>


<th scope="row" class="row-header">Parameter</th>



<td class="content-container">None</td>


</tr>








  <tr>


<th colspan="2" scope="row" class="row-header">Library Content</th>


</tr>
  
    
    <tr>
      <th scope="row" class="row-header">CQL Content</th>
      <td>
        <a name="cql-content"> </a>
        <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">/*
NOTE: For use by March 2026 US Realm Connectathon participants for internal use only. Not for use or distribution in commercial products.
*/
library CMS117FHIRChildImmunStatus version '1.1.000'

using USQualityCore version '0.1.0-cibuild'
using USCore version '6.1.0-derived'
using FHIR version '4.0.1'

include hl7.fhir.uv.cql.FHIRHelpers version '4.0.1' called FHIRHelpers
include hl7.fhir.uv.cql.FHIRCommon version '2.0.0' called FHIRCommon
include hl7.fhir.us.cql.USCoreCommon version '2.0.0-ballot' called USCoreCommon
include hl7.fhir.us.cql.USCoreElements version '2.0.0-ballot' called USCoreElements

include CQMCommon version '5.1.000' called CQMCommon
include USQualityCoreCommon version '0.1.0-cibuild' called USQualityCoreCommon
include SupplementalDataElements version '6.1.000' called SDE
include Status version '2.1.000' called Status

include TJCOverall version '9.1.000' called TJC
include Hospice version '7.1.000' called Hospice

codesystem &quot;SNOMEDCT&quot;: 'http://snomed.info/sct'
codesystem &quot;CPT&quot;: 'http://www.ama-assn.org/go/cpt'
codesystem &quot;CVX&quot;: 'http://hl7.org/fhir/sid/cvx'
codesystem &quot;ICD10&quot;: 'http://www.cms.gov/Medicare/Coding/ICD10'

valueset &quot;Anaphylactic Reaction to DTaP Vaccine&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.199.12.1031'
valueset &quot;Disorders of the Immune System&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.120.12.1001'
valueset &quot;DTaP Vaccine&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1214'
valueset &quot;DTaP Vaccine Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1022'
valueset &quot;Encephalitis Due to Diphtheria, Tetanus or Pertussis Vaccine&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1164'
valueset &quot;Hepatitis A&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1024'
valueset &quot;Hepatitis A Vaccine&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1215'
valueset &quot;Hepatitis A Vaccine Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1041'
valueset &quot;Hepatitis B&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1025'
valueset &quot;Hepatitis B Vaccine&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1216'
valueset &quot;Hepatitis B Vaccine Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1042'
valueset &quot;Hib Vaccine (3 dose schedule)&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1083'
valueset &quot;Hib Vaccine (3 dose schedule) Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1084'
valueset &quot;Hib Vaccine (4 dose schedule)&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1085'
valueset &quot;Hib Vaccine (4 dose schedule) Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1086'
valueset &quot;HIV&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.120.12.1003'
valueset &quot;Home Healthcare Services&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1016'
valueset &quot;Inactivated Polio Vaccine (IPV)&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1219'
valueset &quot;Inactivated Polio Vaccine (IPV) Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1045'
valueset &quot;Child Influenza Vaccine&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1218'
valueset &quot;Child Influenza Vaccine Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1044'
valueset &quot;Influenza Virus LAIV Vaccine&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1087'
valueset &quot;Influenza Virus LAIV Vaccine Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1088'
valueset &quot;Intussusception&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.199.12.1056'
valueset &quot;Malignant Neoplasm of Lymphatic and Hematopoietic Tissue&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.108.12.1009'
valueset &quot;Measles&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1053'
valueset &quot;Measles, Mumps and Rubella (MMR) Vaccine&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1224'
valueset &quot;Measles, Mumps and Rubella (MMR) Vaccine Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1031'
valueset &quot;Mumps&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1032'
valueset &quot;Office Visit&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001'
valueset &quot;Virtual Encounter&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1089'
valueset &quot;Pneumococcal Conjugate Vaccine&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1221'
valueset &quot;Pneumococcal Conjugate Vaccine Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1046'
valueset &quot;Preventive Care Services, Initial Office Visit, 0 to 17&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1022'
valueset &quot;Preventive Care, Established Office Visit, 0 to 17&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1024'
valueset &quot;Rotavirus Vaccine (2 dose schedule) Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1048'
valueset &quot;Rotavirus Vaccine (3 dose schedule)&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1223'
valueset &quot;Rotavirus Vaccine (3 dose schedule) Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1047'
valueset &quot;Rubella&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1037'
valueset &quot;Severe Combined Immunodeficiency&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.120.12.1007'
valueset &quot;Telephone Visits&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1080'
valueset &quot;Varicella Zoster&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1039'
valueset &quot;Varicella Zoster Vaccine (VZV)&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1170'
valueset &quot;Varicella Zoster Vaccine (VZV) Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1040'

code &quot;Anaphylaxis caused by vaccine product containing only Haemophilus influenzae type b antigen (disorder)&quot;: '433621000124101' from &quot;SNOMEDCT&quot; display 'Anaphylaxis caused by vaccine product containing only Haemophilus influenzae type b antigen (disorder)'
code &quot;Anaphylaxis caused by vaccine product containing Hepatitis B virus antigen (disorder)&quot;: '428321000124101' from &quot;SNOMEDCT&quot; display 'Anaphylaxis caused by vaccine product containing Hepatitis B virus antigen (disorder)'
code &quot;Anaphylaxis caused by rotavirus vaccine (disorder)&quot;: '428331000124103' from &quot;SNOMEDCT&quot; display 'Anaphylaxis caused by rotavirus vaccine (disorder)'
code &quot;Office or other outpatient visit for the evaluation and management of an established patient that may not require the presence of a physician or other qualified health care professional&quot;: '99211' from &quot;CPT&quot; display 'Office or other outpatient visit for the evaluation and management of an established patient that may not require the presence of a physician or other qualified health care professional'
code &quot;rotavirus, live, monovalent vaccine&quot;: '119' from &quot;CVX&quot; display 'rotavirus, live, monovalent vaccine'
code &quot;Anaphylaxis caused by vaccine product containing Hepatitis A virus antigen (disorder)&quot;: '471311000124103' from &quot;SNOMEDCT&quot; display 'Anaphylaxis caused by vaccine product containing Hepatitis A virus antigen (disorder)'
code &quot;Introduction of Serum, Toxoid and Vaccine into Muscle, Percutaneous Approach&quot;: '3E0234Z' from &quot;ICD10&quot; display 'Introduction of Serum, Toxoid and Vaccine into Muscle, Percutaneous Approach'
code &quot;Anaphylaxis caused by vaccine product containing Influenza virus antigen (disorder)&quot;: '471361000124100' from &quot;SNOMEDCT&quot; display 'Anaphylaxis caused by vaccine product containing Influenza virus antigen (disorder)'
code &quot;Anaphylaxis caused by vaccine product containing Measles morbillivirus and Mumps orthorubulavirus and Rubella virus antigens (disorder)&quot;: '471331000124109' from &quot;SNOMEDCT&quot; display 'Anaphylaxis caused by vaccine product containing Measles morbillivirus and Mumps orthorubulavirus and Rubella virus antigens (disorder)'
code &quot;Anaphylaxis caused by vaccine product containing Streptococcus pneumoniae antigen (disorder)&quot;: '471141000124102' from &quot;SNOMEDCT&quot; display 'Anaphylaxis caused by vaccine product containing Streptococcus pneumoniae antigen (disorder)'
code &quot;Anaphylaxis caused by vaccine product containing human poliovirus antigen (disorder)&quot;: '471321000124106' from &quot;SNOMEDCT&quot; display 'Anaphylaxis caused by vaccine product containing human poliovirus antigen (disorder)'
code &quot;Anaphylaxis caused by vaccine containing Human alphaherpesvirus 3 antigen (disorder)&quot;: '471341000124104' from &quot;SNOMEDCT&quot; display 'Anaphylaxis caused by vaccine containing Human alphaherpesvirus 3 antigen (disorder)'

parameter &quot;Measurement Period&quot; Interval&lt;DateTime&gt;
  default Interval[@2026-01-01T00:00:00.000Z, @2027-01-01T00:00:00.000Z)

context Patient

define &quot;Initial Population&quot;:
  AgeInYearsAt(date from 
    end of &quot;Measurement Period&quot;
  ) = 2
    and exists ( &quot;Qualifying Encounters&quot; )

define &quot;Qualifying Encounters&quot;:
  ( ( [Encounter: &quot;Office Visit&quot;]
      union [Encounter: &quot;Home Healthcare Services&quot;]
      union [Encounter: &quot;Preventive Care, Established Office Visit, 0 to 17&quot;]
      union [Encounter: &quot;Preventive Care Services, Initial Office Visit, 0 to 17&quot;]
      union ( [Encounter] E
          where exists ( ( E.type ) T
              where T ~ &quot;Office or other outpatient visit for the evaluation and management of an established patient that may not require the presence of a physician or other qualified health care professional&quot;
          )
      )
      union [Encounter: &quot;Virtual Encounter&quot;]
      union [Encounter: &quot;Telephone Visits&quot;]
  ).isEncounterPerformed ( ) ) ValidEncounters
    where ValidEncounters.period during day of &quot;Measurement Period&quot;

define &quot;Denominator&quot;:
  &quot;Initial Population&quot;

define &quot;Denominator Exclusions&quot;:
  Hospice.&quot;Has Hospice Services&quot;
    or &quot;Has Severe Combined Immunodeficiency&quot;
    or &quot;Has Immunodeficiency&quot;
    or &quot;Has HIV&quot;
    or &quot;Has Lymphoreticular Cancer, Multiple Myeloma or Leukemia&quot;
    or &quot;Has Intussusception&quot;

define &quot;Has Severe Combined Immunodeficiency&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;Severe Combined Immunodeficiency&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Severe Combined Immunodeficiency&quot;]
  exists ( ( ( [FHIR.Condition: &quot;Severe Combined Immunodeficiency&quot;] ).verified ( ) ) SevereImmuneDisorder
      where date from start of SevereImmuneDisorder.prevalenceInterval ( ) during day of &quot;First Two Years&quot;
  )

define &quot;Has Immunodeficiency&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;Disorders of the Immune System&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Disorders of the Immune System&quot;]
  exists ( ( ( [FHIR.Condition: &quot;Disorders of the Immune System&quot;] ).verified ( ) ) ImmuneDisorder
      where date from start of ImmuneDisorder.prevalenceInterval ( ) during day of &quot;First Two Years&quot;
  )

define &quot;Has HIV&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;HIV&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;HIV&quot;]
  exists ( ( ( [FHIR.Condition: &quot;HIV&quot;] ).verified ( ) ) HIVDiagnosis
      where date from start of HIVDiagnosis.prevalenceInterval ( ) during day of &quot;First Two Years&quot;
  )

define &quot;Has Lymphoreticular Cancer, Multiple Myeloma or Leukemia&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;Malignant Neoplasm of Lymphatic and Hematopoietic Tissue&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Malignant Neoplasm of Lymphatic and Hematopoietic Tissue&quot;]
  exists ( ( ( [FHIR.Condition: &quot;Malignant Neoplasm of Lymphatic and Hematopoietic Tissue&quot;] ).verified ( ) ) LymphaticMalignantNeoplasm
      where date from start of LymphaticMalignantNeoplasm.prevalenceInterval ( ) during day of &quot;First Two Years&quot;
  )

define &quot;Has Intussusception&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;Intussusception&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Intussusception&quot;]
  exists ( ( ( [FHIR.Condition: &quot;Intussusception&quot;] ).verified ( ) ) IntussusceptionDisorder
      where date from start of IntussusceptionDisorder.prevalenceInterval ( ) during day of &quot;First Two Years&quot;
  )

define &quot;Numerator&quot;:
  ( exists ( &quot;Four DTaP Vaccinations&quot; )
      or exists ( &quot;DTaP Numerator Inclusion Conditions&quot; )
  )
    and ( exists ( &quot;Three Polio Vaccinations&quot; )
        or exists ( &quot;Polio Numerator Inclusion Conditions&quot; )
    )
    and ( exists ( &quot;One MMR Vaccination&quot; )
        or exists ( &quot;MMR Numerator Inclusion Conditions&quot; )
        or ( exists ( &quot;Measles Indicators&quot; )
            and exists ( &quot;Mumps Indicators&quot; )
            and exists ( &quot;Rubella Indicators&quot; )
        )
    )
    and ( &quot;Has Appropriate Number of Hib Immunizations&quot;
        or exists ( &quot;Hib Numerator Inclusion Conditions&quot; )
    )
    and ( exists ( &quot;Three Hepatitis B Vaccinations&quot; )
        or ( exists ( &quot;Meets HepB Vaccination Requirement&quot; )
            or exists ( &quot;Hepatitis B Numerator Inclusion Conditions&quot; )
        )
    )
    and ( exists ( &quot;One Chicken Pox Vaccination&quot; )
        or exists ( &quot;Varicella Zoster Numerator Inclusion Conditions&quot; )
    )
    and ( exists ( &quot;Four Pneumococcal Conjugate Vaccinations&quot; )
        or exists ( &quot;Pneumococcal Conjugate Numerator Inclusion Conditions&quot; )
    )
    and ( exists ( &quot;One Hepatitis A Vaccinations&quot; )
        or exists ( &quot;Hepatitis A Numerator Inclusion Conditions&quot; )
    )
    and ( &quot;Has Appropriate Number of Rotavirus Immunizations&quot;
        or exists ( &quot;Rotavirus Numerator Inclusion Conditions&quot; )
    )
    and ( exists ( &quot;Two Influenza Vaccinations&quot; )
        or ( &quot;Two Influenza Vaccinations Including One LAIV Vaccination&quot; )
        or exists ( &quot;Influenza Numerator Inclusion Conditions&quot; )
    )

define &quot;Vaccine Administration Interval - 180 Days up to 2 Years Old&quot;:
  Interval[Patient.birthDate + 180 days, &quot;Date of Second Birthday&quot;]

define &quot;First Two Years&quot;:
  Interval[Patient.birthDate, &quot;Date of Second Birthday&quot;]

define &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;:
  Interval[Patient.birthDate + 42 days, &quot;Date of Second Birthday&quot;]

define &quot;Date of Second Birthday&quot;:
  Patient.birthDate + 2 years

define &quot;Date of First Birthday&quot;:
  Patient.birthDate + 1 year

define &quot;Date of First Birthday to Date of Second Birthday&quot;:
  Interval[&quot;Date of First Birthday&quot;, &quot;Date of Second Birthday&quot;]

//DTaP


define &quot;Four DTaP Vaccinations&quot;:
  from
    &quot;DTaP Immunizations or Procedures&quot; DTaPVaccination1,
    &quot;DTaP Immunizations or Procedures&quot; DTaPVaccination2,
    &quot;DTaP Immunizations or Procedures&quot; DTaPVaccination3,
    &quot;DTaP Immunizations or Procedures&quot; DTaPVaccination4
    where date from DTaPVaccination2.earliest ( ) 1 day or more after day of date from DTaPVaccination1.earliest ( )
      and date from DTaPVaccination3.earliest ( ) 1 day or more after day of DTaPVaccination2.earliest ( )
      and date from DTaPVaccination4.earliest ( ) 1 day or more after day of DTaPVaccination3.earliest ( )
    return all DTaPVaccination1

define &quot;DTaP Numerator Inclusion Conditions&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;Anaphylactic Reaction to DTaP Vaccine&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylactic Reaction to DTaP Vaccine&quot;]
  //     union [ConditionEncounterDiagnosis: &quot;Encephalitis Due to Diphtheria, Tetanus or Pertussis Vaccine&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Encephalitis Due to Diphtheria, Tetanus or Pertussis Vaccine&quot;]
  ( ( [FHIR.Condition: &quot;Anaphylactic Reaction to DTaP Vaccine&quot;]
      union [FHIR.Condition: &quot;Encephalitis Due to Diphtheria, Tetanus or Pertussis Vaccine&quot;]
  ).verified ( ) ) DTaPConditions
    where date from start of DTaPConditions.prevalenceInterval ( ) during day of &quot;First Two Years&quot;

define &quot;DTaP Immunizations or Procedures&quot;:
  ( ( ( [Immunization: &quot;DTaP Vaccine&quot;] ).isImmunizationAdministered ( ) ) DTaPVaccination
      where date from DTaPVaccination.occurrence.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;
      return DTaPVaccination.occurrence
  )
    union ( ( ( [Procedure: &quot;DTaP Vaccine Administered&quot;] ).isProcedurePerformed ( ) ) DTaPProcedure
        where date from DTaPProcedure.performed.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;
        return DTaPProcedure.performed
    )

//Polio

define &quot;Polio Immunizations or Procedures&quot;:
  ( ( ( [Immunization: &quot;Inactivated Polio Vaccine (IPV)&quot;] ).isImmunizationAdministered ( ) ) PolioVaccination
      where date from PolioVaccination.occurrence.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;
      return PolioVaccination.occurrence
    )
    union ( ( ( [Procedure: &quot;Inactivated Polio Vaccine (IPV) Administered&quot;] ).isProcedurePerformed ( ) ) PolioProcedure
        where date from PolioProcedure.performed.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;
        return PolioProcedure.performed
    )

define &quot;Three Polio Vaccinations&quot;:
  from
    &quot;Polio Immunizations or Procedures&quot; PolioVaccination1,
    &quot;Polio Immunizations or Procedures&quot; PolioVaccination2,
    &quot;Polio Immunizations or Procedures&quot; PolioVaccination3
    where date from PolioVaccination2.earliest ( ) 1 day or more after date from PolioVaccination1.earliest ( )
      and date from PolioVaccination3.earliest ( ) 1 day or more after date from PolioVaccination2.earliest ( )
    return date from PolioVaccination1.earliest ( )


define &quot;Polio Numerator Inclusion Conditions&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by vaccine product containing human poliovirus antigen (disorder)&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by vaccine product containing human poliovirus antigen (disorder)&quot;]
  ( ( [FHIR.Condition: &quot;Anaphylaxis caused by vaccine product containing human poliovirus antigen (disorder)&quot;] ).verified ( ) ) PolioConditions
    where date from start of PolioConditions.prevalenceInterval ( ) during day of &quot;First Two Years&quot;

//MMR


define &quot;One MMR Vaccination&quot;:
  ( ( ( [Immunization: &quot;Measles, Mumps and Rubella (MMR) Vaccine&quot;] ).isImmunizationAdministered ( ) ) MMRVaccination
      where date from MMRVaccination.occurrence.earliest ( ) during &quot;Date of First Birthday to Date of Second Birthday&quot;
      return date from MMRVaccination.occurrence.earliest ( )
  )
    union ( ( ( [Procedure: &quot;Measles, Mumps and Rubella (MMR) Vaccine Administered&quot;] ).isProcedurePerformed ( ) ) MMRProcedure
        where date from MMRProcedure.performed.earliest ( ) during &quot;Date of First Birthday to Date of Second Birthday&quot;
        return date from MMRProcedure.performed.earliest ( )
    )

define &quot;Measles Indicators&quot;:
  ( ( [ConditionEncounterDiagnosis: &quot;Measles&quot;]
      union [ConditionEncounterDiagnosis: &quot;Measles&quot;]
  ).verified ( ) ) MeaslesDiagnosis
    where date from start of MeaslesDiagnosis.prevalenceInterval ( ) during day of &quot;First Two Years&quot;

define &quot;Mumps Indicators&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;Mumps&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Mumps&quot;]
  ( ( [FHIR.Condition: &quot;Mumps&quot;] ).verified ( ) ) MumpsDiagnosis
    where date from start of MumpsDiagnosis.prevalenceInterval ( ) during day of &quot;First Two Years&quot;

define &quot;Rubella Indicators&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;Rubella&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Rubella&quot;]
  ( ( [FHIR.Condition: &quot;Rubella&quot;] ).verified ( ) ) RubellaDiagnosis
    where date from start of RubellaDiagnosis.prevalenceInterval ( ) during day of &quot;First Two Years&quot;

define &quot;MMR Numerator Inclusion Conditions&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by vaccine product containing Measles morbillivirus and Mumps orthorubulavirus and Rubella virus antigens (disorder)&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by vaccine product containing Measles morbillivirus and Mumps orthorubulavirus and Rubella virus antigens (disorder)&quot;]
  ( ( [FHIR.Condition: &quot;Anaphylaxis caused by vaccine product containing Measles morbillivirus and Mumps orthorubulavirus and Rubella virus antigens (disorder)&quot;] ).verified ( ) ) MMRConditions
    where date from start of MMRConditions.prevalenceInterval ( ) during day of &quot;First Two Years&quot;

//HiB


define &quot;Has Appropriate Number of Hib Immunizations&quot;:
  exists ( &quot;Hib 3 or 4 Dose Immunizations&quot; HibImmunization //4 dose test
      
      let HasFourDose: Count(&quot;Hib 4 Dose Immunizations or Procedures&quot;) &gt; 0
      where ( HasFourDose //if pt had at least one 4 dose code
          
          and Count(distinct(&quot;Hib 3 or 4 Dose Immunizations&quot; HibVaccinations
                return date from HibVaccinations.earliest()
            )
          ) &gt;= 4 //pt must have 4 regimens (e.g., 3,3,4,4 or 4,3,4,4)
      
      )
        or ( HasFourDose is false //if pt did not have at least one 4 dose code
            
            and Count(distinct(&quot;Hib 3 or 4 Dose Immunizations&quot; HibVaccinations
                  return date from HibVaccinations.earliest()
              )
            ) &gt;= 3 //pt must have 3 regimens of 3 dose codes
        
        )
  )

define &quot;Hib Numerator Inclusion Conditions&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by vaccine product containing only Haemophilus influenzae type b antigen (disorder)&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by vaccine product containing only Haemophilus influenzae type b antigen (disorder)&quot;]
  ( ( [FHIR.Condition: &quot;Anaphylaxis caused by vaccine product containing only Haemophilus influenzae type b antigen (disorder)&quot;] ).verified ( ) ) HibReaction
    where date from start of HibReaction.prevalenceInterval ( ) during day of &quot;First Two Years&quot;

define &quot;Hib 3 Dose Immunizations or Procedures&quot;:
  ( ( ( [Immunization: &quot;Hib Vaccine (3 dose schedule)&quot;] ).isImmunizationAdministered ( ) ) ThreeDoseHibVaccine
      where date from ThreeDoseHibVaccine.occurrence.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;
      return ThreeDoseHibVaccine.occurrence
  )
    union ( ( ( [Procedure: &quot;Hib Vaccine (3 dose schedule) Administered&quot;] ).isProcedurePerformed ( ) ) ThreeDoseHibProcedure
        where date from ThreeDoseHibProcedure.performed.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;
        return ThreeDoseHibProcedure.performed
    )

define &quot;Hib 3 or 4 Dose Immunizations&quot;:
  &quot;Hib 3 Dose Immunizations or Procedures&quot;
    union &quot;Hib 4 Dose Immunizations or Procedures&quot;

define &quot;Hib 4 Dose Immunizations or Procedures&quot;:
  ( ( ( [Immunization: &quot;Hib Vaccine (4 dose schedule)&quot;] ).isImmunizationAdministered ( ) ) HibVaccine
      where date from HibVaccine.occurrence.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;
      return HibVaccine.occurrence
  )
    union ( ( ( [Procedure: &quot;Hib Vaccine (4 dose schedule) Administered&quot;] ).isProcedurePerformed ( ) ) HibProcedure
        where date from HibProcedure.performed.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;
        return HibProcedure.performed
    )

//HepB


define &quot;Hepatitis B Numerator Inclusion Conditions&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by vaccine product containing Hepatitis B virus antigen (disorder)&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by vaccine product containing Hepatitis B virus antigen (disorder)&quot;]
  //     union [ConditionEncounterDiagnosis: &quot;Hepatitis B&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Hepatitis B&quot;]
  ( ( [FHIR.Condition: &quot;Anaphylaxis caused by vaccine product containing Hepatitis B virus antigen (disorder)&quot;]
      union [FHIR.Condition: &quot;Hepatitis B&quot;]
  ).verified ( ) ) HepBConditions
    where date from start of HepBConditions.prevalenceInterval ( ) during day of &quot;First Two Years&quot;

define &quot;Three Hepatitis B Vaccinations&quot;:
  from
    &quot;Hepatitis B Immunizations or Procedures&quot; HepatitisBVaccination1,
    &quot;Hepatitis B Immunizations or Procedures&quot; HepatitisBVaccination2,
    &quot;Hepatitis B Immunizations or Procedures&quot; HepatitisBVaccination3
    where date from HepatitisBVaccination2.earliest ( ) 1 day or more after date from HepatitisBVaccination1.earliest ( )
      and date from HepatitisBVaccination3.earliest ( ) 1 day or more after date from HepatitisBVaccination2.earliest ( )
    return date from HepatitisBVaccination1.earliest ( )

define &quot;Hepatitis B Immunizations or Procedures&quot;:
  ( ( ( [Immunization: &quot;Hepatitis B Vaccine&quot;] ).isImmunizationAdministered ( ) ) HepatitisBVaccination
      where date from HepatitisBVaccination.occurrence.earliest ( ) during day of &quot;First Two Years&quot;
      return HepatitisBVaccination.occurrence
  )
    union ( ( ( [Procedure: &quot;Hepatitis B Vaccine Administered&quot;] ).isProcedurePerformed ( ) ) HepatitisBProcedure
        where date from HepatitisBProcedure.performed.earliest ( ) during day of &quot;First Two Years&quot;
        return HepatitisBProcedure.performed
    )

define &quot;Meets HepB Vaccination Requirement&quot;:
  from
    &quot;Hepatitis B Immunizations or Procedures&quot; HepatitisBVaccination1,
    &quot;Hepatitis B Immunizations or Procedures&quot; HepatitisBVaccination2,
    &quot;NewBorn Vaccine Requirement&quot; NewBornVaccine3
    where date from HepatitisBVaccination2.earliest ( ) 1 day or more after date from HepatitisBVaccination1.earliest ( )
      and date from HepatitisBVaccination1.earliest ( ) 1 day or more after date from NewBornVaccine3.earliest ( )
      and date from HepatitisBVaccination2.earliest ( ) 1 day or more after date from NewBornVaccine3.earliest ( )
    return date from HepatitisBVaccination1.earliest ( )

define &quot;NewBorn Vaccine Requirement&quot;:
  ( ( [Procedure: &quot;Introduction of Serum, Toxoid and Vaccine into Muscle, Percutaneous Approach&quot;] ).isProcedurePerformed ( ) ) NewBornVaccine
    where date from NewBornVaccine.performed.earliest ( ) during day of Interval[Patient.birthDate, Patient.birthDate + 7 days]
    return NewBornVaccine.performed

//VZV


define &quot;One Chicken Pox Vaccination&quot;:
  ( ( ( [Immunization: &quot;Varicella Zoster Vaccine (VZV)&quot;] ).isImmunizationAdministered ( ) ) ChickenPoxVaccination
      where date from ChickenPoxVaccination.occurrence.earliest ( ) during &quot;Date of First Birthday to Date of Second Birthday&quot;
      return date from ChickenPoxVaccination.occurrence.earliest ( )
  )
    union ( ( ( [Procedure: &quot;Varicella Zoster Vaccine (VZV) Administered&quot;] ).isProcedurePerformed ( ) ) ChickenPoxProcedure
        where date from ChickenPoxProcedure.performed.earliest ( ) during &quot;Date of First Birthday to Date of Second Birthday&quot;
        return date from ChickenPoxProcedure.performed.earliest ( )
    )

define &quot;Varicella Zoster Numerator Inclusion Conditions&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;Varicella Zoster&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Varicella Zoster&quot;]
  //     union [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by vaccine containing Human alphaherpesvirus 3 antigen (disorder)&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by vaccine containing Human alphaherpesvirus 3 antigen (disorder)&quot;]
  ( ( [FHIR.Condition: &quot;Varicella Zoster&quot;]
      union [FHIR.Condition: &quot;Anaphylaxis caused by vaccine containing Human alphaherpesvirus 3 antigen (disorder)&quot;]
  ).verified ( ) ) VaricellaZoster
    where date from start of VaricellaZoster.prevalenceInterval ( ) during day of &quot;First Two Years&quot;

//PCV


define &quot;Four Pneumococcal Conjugate Vaccinations&quot;:
  from
    &quot;Pneumococcal Conjugate Immunizations or Procedures&quot; PneumococcalVaccination1,
    &quot;Pneumococcal Conjugate Immunizations or Procedures&quot; PneumococcalVaccination2,
    &quot;Pneumococcal Conjugate Immunizations or Procedures&quot; PneumococcalVaccination3,
    &quot;Pneumococcal Conjugate Immunizations or Procedures&quot; PneumococcalVaccination4
    where date from PneumococcalVaccination2.earliest ( ) 1 day or more after date from PneumococcalVaccination1.earliest ( )
      and date from PneumococcalVaccination3.earliest ( ) 1 day or more after date from PneumococcalVaccination2.earliest ( )
      and date from PneumococcalVaccination4.earliest ( ) 1 day or more after date from PneumococcalVaccination3.earliest ( )
    return date from PneumococcalVaccination1.earliest ( )

define &quot;Pneumococcal Conjugate Immunizations or Procedures&quot;:
  ( ( ( [Immunization: &quot;Pneumococcal Conjugate Vaccine&quot;] ).isImmunizationAdministered ( ) ) PneumococcalVaccination
      where date from PneumococcalVaccination.occurrence.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;
      return PneumococcalVaccination.occurrence
  )
    union ( ( ( [Procedure: &quot;Pneumococcal Conjugate Vaccine Administered&quot;] ).isProcedurePerformed ( ) ) PneumococcalProcedure
        where date from PneumococcalProcedure.performed.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;
        return PneumococcalProcedure.performed
    )

define &quot;Pneumococcal Conjugate Numerator Inclusion Conditions&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by vaccine product containing Streptococcus pneumoniae antigen (disorder)&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by vaccine product containing Streptococcus pneumoniae antigen (disorder)&quot;]
  ( ( [FHIR.Condition: &quot;Anaphylaxis caused by vaccine product containing Streptococcus pneumoniae antigen (disorder)&quot;] ).verified ( ) ) PneumococcalReaction
    where date from start of PneumococcalReaction.prevalenceInterval ( ) during day of &quot;First Two Years&quot;

//HepA


define &quot;One Hepatitis A Vaccinations&quot;:
  ( ( ( [Immunization: &quot;Hepatitis A Vaccine&quot;] ).isImmunizationAdministered ( ) ) HepatitisAVaccination
      where date from HepatitisAVaccination.occurrence.earliest ( ) during &quot;Date of First Birthday to Date of Second Birthday&quot;
      return date from HepatitisAVaccination.occurrence.earliest ( )
  )
    union ( ( ( [Procedure: &quot;Hepatitis A Vaccine Administered&quot;] ).isProcedurePerformed ( ) ) HepatitisAProcedure
        where date from HepatitisAProcedure.performed.earliest ( ) during &quot;Date of First Birthday to Date of Second Birthday&quot;
        return date from HepatitisAProcedure.performed.earliest ( )
    )

define &quot;Hepatitis A Numerator Inclusion Conditions&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;Hepatitis A&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Hepatitis A&quot;]
  //     union [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by vaccine product containing Hepatitis A virus antigen (disorder)&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by vaccine product containing Hepatitis A virus antigen (disorder)&quot;]
  ( ( [FHIR.Condition: &quot;Hepatitis A&quot;]
      union [FHIR.Condition: &quot;Anaphylaxis caused by vaccine product containing Hepatitis A virus antigen (disorder)&quot;]
  ).verified ( ) ) HepatitisADiagnosis
    where date from start of HepatitisADiagnosis.prevalenceInterval ( ) during day of &quot;First Two Years&quot;

//RV


define &quot;Has Appropriate Number of Rotavirus Immunizations&quot;:
  exists ( &quot;Rotavirus 2 or 3 Dose Immunizations&quot; RotavirusImmunization
      let HasThreeDose: Count(&quot;Rotavirus 3 Dose Immunizations or Procedures&quot;) &gt; 0
      where ( HasThreeDose
          and Count(distinct(&quot;Rotavirus 2 or 3 Dose Immunizations&quot; RotavirusVaccinations
                return date from RotavirusVaccinations.earliest()
            )
          ) &gt;= 3
      )
        or ( HasThreeDose is false
            and Count(distinct(&quot;Rotavirus 2 or 3 Dose Immunizations&quot; RotavirusVaccinations
                  return date from RotavirusVaccinations.earliest()
              )
            ) &gt;= 2
        )
  )

define &quot;Rotavirus 2 Dose Immunizations or Procedures&quot;:
  ( ( ( [Immunization: &quot;rotavirus, live, monovalent vaccine&quot;] ).isImmunizationAdministered ( ) ) TwoDoseRotavirusVaccine
      where date from TwoDoseRotavirusVaccine.occurrence.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;
      return TwoDoseRotavirusVaccine.occurrence
  )
    union ( ( ( [Procedure: &quot;Rotavirus Vaccine (2 dose schedule) Administered&quot;] ).isProcedurePerformed ( ) ) TwoDoseRotavirusProcedure
        where date from TwoDoseRotavirusProcedure.performed.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;
        return TwoDoseRotavirusProcedure.performed
    )

define &quot;Rotavirus 2 or 3 Dose Immunizations&quot;:
  &quot;Rotavirus 2 Dose Immunizations or Procedures&quot;
    union &quot;Rotavirus 3 Dose Immunizations or Procedures&quot;

define &quot;Rotavirus Numerator Inclusion Conditions&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by rotavirus vaccine (disorder)&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by rotavirus vaccine (disorder)&quot;]
  ( ( [FHIR.Condition: &quot;Anaphylaxis caused by rotavirus vaccine (disorder)&quot;] ).verified ( ) ) RotavirusConditions
    where date from start of RotavirusConditions.prevalenceInterval ( ) during day of &quot;First Two Years&quot;

define &quot;Rotavirus 3 Dose Immunizations or Procedures&quot;:
  ( ( ( [Immunization: &quot;Rotavirus Vaccine (3 dose schedule)&quot;] ).isImmunizationAdministered ( ) ) ThreeDoseRotavirusVaccine
      where date from ThreeDoseRotavirusVaccine.occurrence.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;
      return ThreeDoseRotavirusVaccine.occurrence
  )
    union ( ( ( [Procedure: &quot;Rotavirus Vaccine (3 dose schedule) Administered&quot;] ).isProcedurePerformed ( ) ) ThreeDoseRotavirusAdministered
        where date from ThreeDoseRotavirusAdministered.performed.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;
        return ThreeDoseRotavirusAdministered.performed
    )

//Flu


define &quot;Influenza Immunizations or Procedures&quot;:
  ( ( ( [Immunization: &quot;Child Influenza Vaccine&quot;] ).isImmunizationAdministered ( ) ) InfluenzaVaccine
      where date from InfluenzaVaccine.occurrence.earliest ( ) during day of &quot;Vaccine Administration Interval - 180 Days up to 2 Years Old&quot;
      return InfluenzaVaccine.occurrence
  )
    union ( ( ( [Procedure: &quot;Child Influenza Vaccine Administered&quot;] ).isProcedurePerformed ( ) ) InfluenzaAdministration
        where date from InfluenzaAdministration.performed.earliest ( ) during day of &quot;Vaccine Administration Interval - 180 Days up to 2 Years Old&quot;
        return InfluenzaAdministration.performed
    )

define &quot;Two Influenza Vaccinations&quot;:
  from
    &quot;Influenza Immunizations or Procedures&quot; FluVaccination1,
    &quot;Influenza Immunizations or Procedures&quot; FluVaccination2
    where date from FluVaccination2.earliest ( ) 1 day or more after date from FluVaccination1.earliest ( )
    return date from FluVaccination1.earliest ( )

define &quot;Influenza Numerator Inclusion Conditions&quot;:
  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)
  // Original:
  //   [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by vaccine product containing Influenza virus antigen (disorder)&quot;]
  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by vaccine product containing Influenza virus antigen (disorder)&quot;]
  ( ( [FHIR.Condition: &quot;Anaphylaxis caused by vaccine product containing Influenza virus antigen (disorder)&quot;] ).verified ( ) ) InfluenzaConditions
    where date from start of InfluenzaConditions.prevalenceInterval ( ) during day of &quot;First Two Years&quot;

define &quot;Two Influenza Vaccinations Including One LAIV Vaccination&quot;:
  exists &quot;LAIV Vaccinations&quot;
    and exists &quot;Influenza Immunizations or Procedures&quot;

define &quot;LAIV Vaccinations&quot;:
  ( ( ( [Immunization: &quot;Influenza Virus LAIV Vaccine&quot;] ).isImmunizationAdministered ( ) ) LAIVVaccine
      where date from LAIVVaccine.occurrence.earliest ( ) during day of Interval[&quot;Date of Second Birthday&quot;, &quot;Date of Second Birthday&quot;]
      return date from LAIVVaccine.occurrence.earliest ( )
  )
    union ( ( ( [Procedure: &quot;Influenza Virus LAIV Vaccine Administered&quot;] ).isProcedurePerformed ( ) ) InfluenzaAdministration
        where date from InfluenzaAdministration.performed.earliest ( ) during day of Interval[&quot;Date of Second Birthday&quot;, &quot;Date of Second Birthday&quot;]
        return date from InfluenzaAdministration.performed.earliest ( )
    )

define &quot;SDE Ethnicity&quot;:
  SDE.&quot;SDE Ethnicity&quot;

define &quot;SDE Payer&quot;:
  SDE.&quot;SDE Payer&quot;

define &quot;SDE Race&quot;:
  SDE.&quot;SDE Race&quot;

define &quot;SDE Sex&quot;:
  SDE.&quot;SDE Sex&quot;</code></pre>
      </td>
    </tr>
    
  



<tr>
  <th colspan="2" scope="row" class="row-header">Generated using version 0.5.6 of the sample-content-ig Liquid templates</th>
</tr>

    </tbody>
  </table>
</div>
  </text>
  <extension url="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-softwaresystem">
    <valueReference>
      <reference value="Device/cqf-tooling"/>
    </valueReference>
  </extension>
  <url value="https://madie.cms.gov/Library/CMS117FHIRChildImmunStatus"/>
  <version value="1.1.000"/>
  <name value="CMS117FHIRChildImmunStatus"/>
  <status value="draft"/>
  <type>
    <coding>
      <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
      <code value="logic-library"/>
    </coding>
  </type>
  <date value="2026-09-19T16:31:14+00:00"/>
  <content>
    <contentType value="text/cql"/>
    <data value="LyoKTk9URTogRm9yIHVzZSBieSBNYXJjaCAyMDI2IFVTIFJlYWxtIENvbm5lY3RhdGhvbiBwYXJ0aWNpcGFudHMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBOb3QgZm9yIHVzZSBvciBkaXN0cmlidXRpb24gaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4KKi8KbGlicmFyeSBDTVMxMTdGSElSQ2hpbGRJbW11blN0YXR1cyB2ZXJzaW9uICcxLjEuMDAwJwoKdXNpbmcgVVNRdWFsaXR5Q29yZSB2ZXJzaW9uICcwLjEuMC1jaWJ1aWxkJwp1c2luZyBVU0NvcmUgdmVyc2lvbiAnNi4xLjAtZGVyaXZlZCcKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgaGw3LmZoaXIudXYuY3FsLkZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJyBjYWxsZWQgRkhJUkhlbHBlcnMKaW5jbHVkZSBobDcuZmhpci51di5jcWwuRkhJUkNvbW1vbiB2ZXJzaW9uICcyLjAuMCcgY2FsbGVkIEZISVJDb21tb24KaW5jbHVkZSBobDcuZmhpci51cy5jcWwuVVNDb3JlQ29tbW9uIHZlcnNpb24gJzIuMC4wLWJhbGxvdCcgY2FsbGVkIFVTQ29yZUNvbW1vbgppbmNsdWRlIGhsNy5maGlyLnVzLmNxbC5VU0NvcmVFbGVtZW50cyB2ZXJzaW9uICcyLjAuMC1iYWxsb3QnIGNhbGxlZCBVU0NvcmVFbGVtZW50cwoKaW5jbHVkZSBDUU1Db21tb24gdmVyc2lvbiAnNS4xLjAwMCcgY2FsbGVkIENRTUNvbW1vbgppbmNsdWRlIFVTUXVhbGl0eUNvcmVDb21tb24gdmVyc2lvbiAnMC4xLjAtY2lidWlsZCcgY2FsbGVkIFVTUXVhbGl0eUNvcmVDb21tb24KaW5jbHVkZSBTdXBwbGVtZW50YWxEYXRhRWxlbWVudHMgdmVyc2lvbiAnNi4xLjAwMCcgY2FsbGVkIFNERQppbmNsdWRlIFN0YXR1cyB2ZXJzaW9uICcyLjEuMDAwJyBjYWxsZWQgU3RhdHVzCgppbmNsdWRlIFRKQ092ZXJhbGwgdmVyc2lvbiAnOS4xLjAwMCcgY2FsbGVkIFRKQwppbmNsdWRlIEhvc3BpY2UgdmVyc2lvbiAnNy4xLjAwMCcgY2FsbGVkIEhvc3BpY2UKCmNvZGVzeXN0ZW0gIlNOT01FRENUIjogJ2h0dHA6Ly9zbm9tZWQuaW5mby9zY3QnCmNvZGVzeXN0ZW0gIkNQVCI6ICdodHRwOi8vd3d3LmFtYS1hc3NuLm9yZy9nby9jcHQnCmNvZGVzeXN0ZW0gIkNWWCI6ICdodHRwOi8vaGw3Lm9yZy9maGlyL3NpZC9jdngnCmNvZGVzeXN0ZW0gIklDRDEwIjogJ2h0dHA6Ly93d3cuY21zLmdvdi9NZWRpY2FyZS9Db2RpbmcvSUNEMTAnCgp2YWx1ZXNldCAiQW5hcGh5bGFjdGljIFJlYWN0aW9uIHRvIERUYVAgVmFjY2luZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xOTkuMTIuMTAzMScKdmFsdWVzZXQgIkRpc29yZGVycyBvZiB0aGUgSW1tdW5lIFN5c3RlbSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMjAuMTIuMTAwMScKdmFsdWVzZXQgIkRUYVAgVmFjY2luZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xOTYuMTIuMTIxNCcKdmFsdWVzZXQgIkRUYVAgVmFjY2luZSBBZG1pbmlzdGVyZWQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwMjInCnZhbHVlc2V0ICJFbmNlcGhhbGl0aXMgRHVlIHRvIERpcGh0aGVyaWEsIFRldGFudXMgb3IgUGVydHVzc2lzIFZhY2NpbmUiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTE2NCcKdmFsdWVzZXQgIkhlcGF0aXRpcyBBIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExMC4xMi4xMDI0Jwp2YWx1ZXNldCAiSGVwYXRpdGlzIEEgVmFjY2luZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xOTYuMTIuMTIxNScKdmFsdWVzZXQgIkhlcGF0aXRpcyBBIFZhY2NpbmUgQWRtaW5pc3RlcmVkIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExMC4xMi4xMDQxJwp2YWx1ZXNldCAiSGVwYXRpdGlzIEIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwMjUnCnZhbHVlc2V0ICJIZXBhdGl0aXMgQiBWYWNjaW5lIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjE5Ni4xMi4xMjE2Jwp2YWx1ZXNldCAiSGVwYXRpdGlzIEIgVmFjY2luZSBBZG1pbmlzdGVyZWQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwNDInCnZhbHVlc2V0ICJIaWIgVmFjY2luZSAoMyBkb3NlIHNjaGVkdWxlKSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMTAuMTIuMTA4MycKdmFsdWVzZXQgIkhpYiBWYWNjaW5lICgzIGRvc2Ugc2NoZWR1bGUpIEFkbWluaXN0ZXJlZCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMTAuMTIuMTA4NCcKdmFsdWVzZXQgIkhpYiBWYWNjaW5lICg0IGRvc2Ugc2NoZWR1bGUpIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExMC4xMi4xMDg1Jwp2YWx1ZXNldCAiSGliIFZhY2NpbmUgKDQgZG9zZSBzY2hlZHVsZSkgQWRtaW5pc3RlcmVkIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExMC4xMi4xMDg2Jwp2YWx1ZXNldCAiSElWIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEyMC4xMi4xMDAzJwp2YWx1ZXNldCAiSG9tZSBIZWFsdGhjYXJlIFNlcnZpY2VzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDE2Jwp2YWx1ZXNldCAiSW5hY3RpdmF0ZWQgUG9saW8gVmFjY2luZSAoSVBWKSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xOTYuMTIuMTIxOScKdmFsdWVzZXQgIkluYWN0aXZhdGVkIFBvbGlvIFZhY2NpbmUgKElQVikgQWRtaW5pc3RlcmVkIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExMC4xMi4xMDQ1Jwp2YWx1ZXNldCAiQ2hpbGQgSW5mbHVlbnphIFZhY2NpbmUiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTk2LjEyLjEyMTgnCnZhbHVlc2V0ICJDaGlsZCBJbmZsdWVuemEgVmFjY2luZSBBZG1pbmlzdGVyZWQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwNDQnCnZhbHVlc2V0ICJJbmZsdWVuemEgVmlydXMgTEFJViBWYWNjaW5lIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExMC4xMi4xMDg3Jwp2YWx1ZXNldCAiSW5mbHVlbnphIFZpcnVzIExBSVYgVmFjY2luZSBBZG1pbmlzdGVyZWQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwODgnCnZhbHVlc2V0ICJJbnR1c3N1c2NlcHRpb24iOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTk5LjEyLjEwNTYnCnZhbHVlc2V0ICJNYWxpZ25hbnQgTmVvcGxhc20gb2YgTHltcGhhdGljIGFuZCBIZW1hdG9wb2lldGljIFRpc3N1ZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDguMTIuMTAwOScKdmFsdWVzZXQgIk1lYXNsZXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwNTMnCnZhbHVlc2V0ICJNZWFzbGVzLCBNdW1wcyBhbmQgUnViZWxsYSAoTU1SKSBWYWNjaW5lIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjE5Ni4xMi4xMjI0Jwp2YWx1ZXNldCAiTWVhc2xlcywgTXVtcHMgYW5kIFJ1YmVsbGEgKE1NUikgVmFjY2luZSBBZG1pbmlzdGVyZWQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwMzEnCnZhbHVlc2V0ICJNdW1wcyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMTAuMTIuMTAzMicKdmFsdWVzZXQgIk9mZmljZSBWaXNpdCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTAwMScKdmFsdWVzZXQgIlZpcnR1YWwgRW5jb3VudGVyIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDg5Jwp2YWx1ZXNldCAiUG5ldW1vY29jY2FsIENvbmp1Z2F0ZSBWYWNjaW5lIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjE5Ni4xMi4xMjIxJwp2YWx1ZXNldCAiUG5ldW1vY29jY2FsIENvbmp1Z2F0ZSBWYWNjaW5lIEFkbWluaXN0ZXJlZCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMTAuMTIuMTA0NicKdmFsdWVzZXQgIlByZXZlbnRpdmUgQ2FyZSBTZXJ2aWNlcywgSW5pdGlhbCBPZmZpY2UgVmlzaXQsIDAgdG8gMTciOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwMjInCnZhbHVlc2V0ICJQcmV2ZW50aXZlIENhcmUsIEVzdGFibGlzaGVkIE9mZmljZSBWaXNpdCwgMCB0byAxNyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTAyNCcKdmFsdWVzZXQgIlJvdGF2aXJ1cyBWYWNjaW5lICgyIGRvc2Ugc2NoZWR1bGUpIEFkbWluaXN0ZXJlZCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMTAuMTIuMTA0OCcKdmFsdWVzZXQgIlJvdGF2aXJ1cyBWYWNjaW5lICgzIGRvc2Ugc2NoZWR1bGUpIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjE5Ni4xMi4xMjIzJwp2YWx1ZXNldCAiUm90YXZpcnVzIFZhY2NpbmUgKDMgZG9zZSBzY2hlZHVsZSkgQWRtaW5pc3RlcmVkIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExMC4xMi4xMDQ3Jwp2YWx1ZXNldCAiUnViZWxsYSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMTAuMTIuMTAzNycKdmFsdWVzZXQgIlNldmVyZSBDb21iaW5lZCBJbW11bm9kZWZpY2llbmN5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEyMC4xMi4xMDA3Jwp2YWx1ZXNldCAiVGVsZXBob25lIFZpc2l0cyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTA4MCcKdmFsdWVzZXQgIlZhcmljZWxsYSBab3N0ZXIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwMzknCnZhbHVlc2V0ICJWYXJpY2VsbGEgWm9zdGVyIFZhY2NpbmUgKFZaVikiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTk2LjEyLjExNzAnCnZhbHVlc2V0ICJWYXJpY2VsbGEgWm9zdGVyIFZhY2NpbmUgKFZaVikgQWRtaW5pc3RlcmVkIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExMC4xMi4xMDQwJwoKY29kZSAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIG9ubHkgSGFlbW9waGlsdXMgaW5mbHVlbnphZSB0eXBlIGIgYW50aWdlbiAoZGlzb3JkZXIpIjogJzQzMzYyMTAwMDEyNDEwMScgZnJvbSAiU05PTUVEQ1QiIGRpc3BsYXkgJ0FuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBvbmx5IEhhZW1vcGhpbHVzIGluZmx1ZW56YWUgdHlwZSBiIGFudGlnZW4gKGRpc29yZGVyKScKY29kZSAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEhlcGF0aXRpcyBCIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSI6ICc0MjgzMjEwMDAxMjQxMDEnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgSGVwYXRpdGlzIEIgdmlydXMgYW50aWdlbiAoZGlzb3JkZXIpJwpjb2RlICJBbmFwaHlsYXhpcyBjYXVzZWQgYnkgcm90YXZpcnVzIHZhY2NpbmUgKGRpc29yZGVyKSI6ICc0MjgzMzEwMDAxMjQxMDMnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdBbmFwaHlsYXhpcyBjYXVzZWQgYnkgcm90YXZpcnVzIHZhY2NpbmUgKGRpc29yZGVyKScKY29kZSAiT2ZmaWNlIG9yIG90aGVyIG91dHBhdGllbnQgdmlzaXQgZm9yIHRoZSBldmFsdWF0aW9uIGFuZCBtYW5hZ2VtZW50IG9mIGFuIGVzdGFibGlzaGVkIHBhdGllbnQgdGhhdCBtYXkgbm90IHJlcXVpcmUgdGhlIHByZXNlbmNlIG9mIGEgcGh5c2ljaWFuIG9yIG90aGVyIHF1YWxpZmllZCBoZWFsdGggY2FyZSBwcm9mZXNzaW9uYWwiOiAnOTkyMTEnIGZyb20gIkNQVCIgZGlzcGxheSAnT2ZmaWNlIG9yIG90aGVyIG91dHBhdGllbnQgdmlzaXQgZm9yIHRoZSBldmFsdWF0aW9uIGFuZCBtYW5hZ2VtZW50IG9mIGFuIGVzdGFibGlzaGVkIHBhdGllbnQgdGhhdCBtYXkgbm90IHJlcXVpcmUgdGhlIHByZXNlbmNlIG9mIGEgcGh5c2ljaWFuIG9yIG90aGVyIHF1YWxpZmllZCBoZWFsdGggY2FyZSBwcm9mZXNzaW9uYWwnCmNvZGUgInJvdGF2aXJ1cywgbGl2ZSwgbW9ub3ZhbGVudCB2YWNjaW5lIjogJzExOScgZnJvbSAiQ1ZYIiBkaXNwbGF5ICdyb3RhdmlydXMsIGxpdmUsIG1vbm92YWxlbnQgdmFjY2luZScKY29kZSAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEhlcGF0aXRpcyBBIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSI6ICc0NzEzMTEwMDAxMjQxMDMnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgSGVwYXRpdGlzIEEgdmlydXMgYW50aWdlbiAoZGlzb3JkZXIpJwpjb2RlICJJbnRyb2R1Y3Rpb24gb2YgU2VydW0sIFRveG9pZCBhbmQgVmFjY2luZSBpbnRvIE11c2NsZSwgUGVyY3V0YW5lb3VzIEFwcHJvYWNoIjogJzNFMDIzNFonIGZyb20gIklDRDEwIiBkaXNwbGF5ICdJbnRyb2R1Y3Rpb24gb2YgU2VydW0sIFRveG9pZCBhbmQgVmFjY2luZSBpbnRvIE11c2NsZSwgUGVyY3V0YW5lb3VzIEFwcHJvYWNoJwpjb2RlICJBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgSW5mbHVlbnphIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSI6ICc0NzEzNjEwMDAxMjQxMDAnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgSW5mbHVlbnphIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKScKY29kZSAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIE1lYXNsZXMgbW9yYmlsbGl2aXJ1cyBhbmQgTXVtcHMgb3J0aG9ydWJ1bGF2aXJ1cyBhbmQgUnViZWxsYSB2aXJ1cyBhbnRpZ2VucyAoZGlzb3JkZXIpIjogJzQ3MTMzMTAwMDEyNDEwOScgZnJvbSAiU05PTUVEQ1QiIGRpc3BsYXkgJ0FuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBNZWFzbGVzIG1vcmJpbGxpdmlydXMgYW5kIE11bXBzIG9ydGhvcnVidWxhdmlydXMgYW5kIFJ1YmVsbGEgdmlydXMgYW50aWdlbnMgKGRpc29yZGVyKScKY29kZSAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIFN0cmVwdG9jb2NjdXMgcG5ldW1vbmlhZSBhbnRpZ2VuIChkaXNvcmRlcikiOiAnNDcxMTQxMDAwMTI0MTAyJyBmcm9tICJTTk9NRURDVCIgZGlzcGxheSAnQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIFN0cmVwdG9jb2NjdXMgcG5ldW1vbmlhZSBhbnRpZ2VuIChkaXNvcmRlciknCmNvZGUgIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBodW1hbiBwb2xpb3ZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSI6ICc0NzEzMjEwMDAxMjQxMDYnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgaHVtYW4gcG9saW92aXJ1cyBhbnRpZ2VuIChkaXNvcmRlciknCmNvZGUgIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIGNvbnRhaW5pbmcgSHVtYW4gYWxwaGFoZXJwZXN2aXJ1cyAzIGFudGlnZW4gKGRpc29yZGVyKSI6ICc0NzEzNDEwMDAxMjQxMDQnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBjb250YWluaW5nIEh1bWFuIGFscGhhaGVycGVzdmlydXMgMyBhbnRpZ2VuIChkaXNvcmRlciknCgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZVRpbWU+CiAgZGVmYXVsdCBJbnRlcnZhbFtAMjAyNi0wMS0wMVQwMDowMDowMC4wMDBaLCBAMjAyNy0wMS0wMVQwMDowMDowMC4wMDBaKQoKY29udGV4dCBQYXRpZW50CgpkZWZpbmUgIkluaXRpYWwgUG9wdWxhdGlvbiI6CiAgQWdlSW5ZZWFyc0F0KGRhdGUgZnJvbSAKICAgIGVuZCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICkgPSAyCiAgICBhbmQgZXhpc3RzICggIlF1YWxpZnlpbmcgRW5jb3VudGVycyIgKQoKZGVmaW5lICJRdWFsaWZ5aW5nIEVuY291bnRlcnMiOgogICggKCBbRW5jb3VudGVyOiAiT2ZmaWNlIFZpc2l0Il0KICAgICAgdW5pb24gW0VuY291bnRlcjogIkhvbWUgSGVhbHRoY2FyZSBTZXJ2aWNlcyJdCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJQcmV2ZW50aXZlIENhcmUsIEVzdGFibGlzaGVkIE9mZmljZSBWaXNpdCwgMCB0byAxNyJdCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJQcmV2ZW50aXZlIENhcmUgU2VydmljZXMsIEluaXRpYWwgT2ZmaWNlIFZpc2l0LCAwIHRvIDE3Il0KICAgICAgdW5pb24gKCBbRW5jb3VudGVyXSBFCiAgICAgICAgICB3aGVyZSBleGlzdHMgKCAoIEUudHlwZSApIFQKICAgICAgICAgICAgICB3aGVyZSBUIH4gIk9mZmljZSBvciBvdGhlciBvdXRwYXRpZW50IHZpc2l0IGZvciB0aGUgZXZhbHVhdGlvbiBhbmQgbWFuYWdlbWVudCBvZiBhbiBlc3RhYmxpc2hlZCBwYXRpZW50IHRoYXQgbWF5IG5vdCByZXF1aXJlIHRoZSBwcmVzZW5jZSBvZiBhIHBoeXNpY2lhbiBvciBvdGhlciBxdWFsaWZpZWQgaGVhbHRoIGNhcmUgcHJvZmVzc2lvbmFsIgogICAgICAgICAgKQogICAgICApCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJWaXJ0dWFsIEVuY291bnRlciJdCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJUZWxlcGhvbmUgVmlzaXRzIl0KICApLmlzRW5jb3VudGVyUGVyZm9ybWVkICggKSApIFZhbGlkRW5jb3VudGVycwogICAgd2hlcmUgVmFsaWRFbmNvdW50ZXJzLnBlcmlvZCBkdXJpbmcgZGF5IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiCgpkZWZpbmUgIkRlbm9taW5hdG9yIjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIgoKZGVmaW5lICJEZW5vbWluYXRvciBFeGNsdXNpb25zIjoKICBIb3NwaWNlLiJIYXMgSG9zcGljZSBTZXJ2aWNlcyIKICAgIG9yICJIYXMgU2V2ZXJlIENvbWJpbmVkIEltbXVub2RlZmljaWVuY3kiCiAgICBvciAiSGFzIEltbXVub2RlZmljaWVuY3kiCiAgICBvciAiSGFzIEhJViIKICAgIG9yICJIYXMgTHltcGhvcmV0aWN1bGFyIENhbmNlciwgTXVsdGlwbGUgTXllbG9tYSBvciBMZXVrZW1pYSIKICAgIG9yICJIYXMgSW50dXNzdXNjZXB0aW9uIgoKZGVmaW5lICJIYXMgU2V2ZXJlIENvbWJpbmVkIEltbXVub2RlZmljaWVuY3kiOgogIC8vIFtFLTEzXSBiYXNlIEZISVIuQ29uZGl0aW9uIHJldHJpZXZlIChkZWZlY3QtdHJhY2tpbmcvZW5naW5lLWlzc3Vlcy5tZCBFLTEzKQogIC8vIE9yaWdpbmFsOgogIC8vICAgW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIlNldmVyZSBDb21iaW5lZCBJbW11bm9kZWZpY2llbmN5Il0KICAvLyAgICAgdW5pb24gW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJTZXZlcmUgQ29tYmluZWQgSW1tdW5vZGVmaWNpZW5jeSJdCiAgZXhpc3RzICggKCAoIFtGSElSLkNvbmRpdGlvbjogIlNldmVyZSBDb21iaW5lZCBJbW11bm9kZWZpY2llbmN5Il0gKS52ZXJpZmllZCAoICkgKSBTZXZlcmVJbW11bmVEaXNvcmRlcgogICAgICB3aGVyZSBkYXRlIGZyb20gc3RhcnQgb2YgU2V2ZXJlSW1tdW5lRGlzb3JkZXIucHJldmFsZW5jZUludGVydmFsICggKSBkdXJpbmcgZGF5IG9mICJGaXJzdCBUd28gWWVhcnMiCiAgKQoKZGVmaW5lICJIYXMgSW1tdW5vZGVmaWNpZW5jeSI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiRGlzb3JkZXJzIG9mIHRoZSBJbW11bmUgU3lzdGVtIl0KICAvLyAgICAgdW5pb24gW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJEaXNvcmRlcnMgb2YgdGhlIEltbXVuZSBTeXN0ZW0iXQogIGV4aXN0cyAoICggKCBbRkhJUi5Db25kaXRpb246ICJEaXNvcmRlcnMgb2YgdGhlIEltbXVuZSBTeXN0ZW0iXSApLnZlcmlmaWVkICggKSApIEltbXVuZURpc29yZGVyCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBzdGFydCBvZiBJbW11bmVEaXNvcmRlci5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKICApCgpkZWZpbmUgIkhhcyBISVYiOgogIC8vIFtFLTEzXSBiYXNlIEZISVIuQ29uZGl0aW9uIHJldHJpZXZlIChkZWZlY3QtdHJhY2tpbmcvZW5naW5lLWlzc3Vlcy5tZCBFLTEzKQogIC8vIE9yaWdpbmFsOgogIC8vICAgW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIkhJViJdCiAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiSElWIl0KICBleGlzdHMgKCAoICggW0ZISVIuQ29uZGl0aW9uOiAiSElWIl0gKS52ZXJpZmllZCAoICkgKSBISVZEaWFnbm9zaXMKICAgICAgd2hlcmUgZGF0ZSBmcm9tIHN0YXJ0IG9mIEhJVkRpYWdub3Npcy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKICApCgpkZWZpbmUgIkhhcyBMeW1waG9yZXRpY3VsYXIgQ2FuY2VyLCBNdWx0aXBsZSBNeWVsb21hIG9yIExldWtlbWlhIjoKICAvLyBbRS0xM10gYmFzZSBGSElSLkNvbmRpdGlvbiByZXRyaWV2ZSAoZGVmZWN0LXRyYWNraW5nL2VuZ2luZS1pc3N1ZXMubWQgRS0xMykKICAvLyBPcmlnaW5hbDoKICAvLyAgIFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJNYWxpZ25hbnQgTmVvcGxhc20gb2YgTHltcGhhdGljIGFuZCBIZW1hdG9wb2lldGljIFRpc3N1ZSJdCiAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiTWFsaWduYW50IE5lb3BsYXNtIG9mIEx5bXBoYXRpYyBhbmQgSGVtYXRvcG9pZXRpYyBUaXNzdWUiXQogIGV4aXN0cyAoICggKCBbRkhJUi5Db25kaXRpb246ICJNYWxpZ25hbnQgTmVvcGxhc20gb2YgTHltcGhhdGljIGFuZCBIZW1hdG9wb2lldGljIFRpc3N1ZSJdICkudmVyaWZpZWQgKCApICkgTHltcGhhdGljTWFsaWduYW50TmVvcGxhc20KICAgICAgd2hlcmUgZGF0ZSBmcm9tIHN0YXJ0IG9mIEx5bXBoYXRpY01hbGlnbmFudE5lb3BsYXNtLnByZXZhbGVuY2VJbnRlcnZhbCAoICkgZHVyaW5nIGRheSBvZiAiRmlyc3QgVHdvIFllYXJzIgogICkKCmRlZmluZSAiSGFzIEludHVzc3VzY2VwdGlvbiI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiSW50dXNzdXNjZXB0aW9uIl0KICAvLyAgICAgdW5pb24gW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJJbnR1c3N1c2NlcHRpb24iXQogIGV4aXN0cyAoICggKCBbRkhJUi5Db25kaXRpb246ICJJbnR1c3N1c2NlcHRpb24iXSApLnZlcmlmaWVkICggKSApIEludHVzc3VzY2VwdGlvbkRpc29yZGVyCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBzdGFydCBvZiBJbnR1c3N1c2NlcHRpb25EaXNvcmRlci5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKICApCgpkZWZpbmUgIk51bWVyYXRvciI6CiAgKCBleGlzdHMgKCAiRm91ciBEVGFQIFZhY2NpbmF0aW9ucyIgKQogICAgICBvciBleGlzdHMgKCAiRFRhUCBOdW1lcmF0b3IgSW5jbHVzaW9uIENvbmRpdGlvbnMiICkKICApCiAgICBhbmQgKCBleGlzdHMgKCAiVGhyZWUgUG9saW8gVmFjY2luYXRpb25zIiApCiAgICAgICAgb3IgZXhpc3RzICggIlBvbGlvIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyIgKQogICAgKQogICAgYW5kICggZXhpc3RzICggIk9uZSBNTVIgVmFjY2luYXRpb24iICkKICAgICAgICBvciBleGlzdHMgKCAiTU1SIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyIgKQogICAgICAgIG9yICggZXhpc3RzICggIk1lYXNsZXMgSW5kaWNhdG9ycyIgKQogICAgICAgICAgICBhbmQgZXhpc3RzICggIk11bXBzIEluZGljYXRvcnMiICkKICAgICAgICAgICAgYW5kIGV4aXN0cyAoICJSdWJlbGxhIEluZGljYXRvcnMiICkKICAgICAgICApCiAgICApCiAgICBhbmQgKCAiSGFzIEFwcHJvcHJpYXRlIE51bWJlciBvZiBIaWIgSW1tdW5pemF0aW9ucyIKICAgICAgICBvciBleGlzdHMgKCAiSGliIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyIgKQogICAgKQogICAgYW5kICggZXhpc3RzICggIlRocmVlIEhlcGF0aXRpcyBCIFZhY2NpbmF0aW9ucyIgKQogICAgICAgIG9yICggZXhpc3RzICggIk1lZXRzIEhlcEIgVmFjY2luYXRpb24gUmVxdWlyZW1lbnQiICkKICAgICAgICAgICAgb3IgZXhpc3RzICggIkhlcGF0aXRpcyBCIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyIgKQogICAgICAgICkKICAgICkKICAgIGFuZCAoIGV4aXN0cyAoICJPbmUgQ2hpY2tlbiBQb3ggVmFjY2luYXRpb24iICkKICAgICAgICBvciBleGlzdHMgKCAiVmFyaWNlbGxhIFpvc3RlciBOdW1lcmF0b3IgSW5jbHVzaW9uIENvbmRpdGlvbnMiICkKICAgICkKICAgIGFuZCAoIGV4aXN0cyAoICJGb3VyIFBuZXVtb2NvY2NhbCBDb25qdWdhdGUgVmFjY2luYXRpb25zIiApCiAgICAgICAgb3IgZXhpc3RzICggIlBuZXVtb2NvY2NhbCBDb25qdWdhdGUgTnVtZXJhdG9yIEluY2x1c2lvbiBDb25kaXRpb25zIiApCiAgICApCiAgICBhbmQgKCBleGlzdHMgKCAiT25lIEhlcGF0aXRpcyBBIFZhY2NpbmF0aW9ucyIgKQogICAgICAgIG9yIGV4aXN0cyAoICJIZXBhdGl0aXMgQSBOdW1lcmF0b3IgSW5jbHVzaW9uIENvbmRpdGlvbnMiICkKICAgICkKICAgIGFuZCAoICJIYXMgQXBwcm9wcmlhdGUgTnVtYmVyIG9mIFJvdGF2aXJ1cyBJbW11bml6YXRpb25zIgogICAgICAgIG9yIGV4aXN0cyAoICJSb3RhdmlydXMgTnVtZXJhdG9yIEluY2x1c2lvbiBDb25kaXRpb25zIiApCiAgICApCiAgICBhbmQgKCBleGlzdHMgKCAiVHdvIEluZmx1ZW56YSBWYWNjaW5hdGlvbnMiICkKICAgICAgICBvciAoICJUd28gSW5mbHVlbnphIFZhY2NpbmF0aW9ucyBJbmNsdWRpbmcgT25lIExBSVYgVmFjY2luYXRpb24iICkKICAgICAgICBvciBleGlzdHMgKCAiSW5mbHVlbnphIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyIgKQogICAgKQoKZGVmaW5lICJWYWNjaW5lIEFkbWluaXN0cmF0aW9uIEludGVydmFsIC0gMTgwIERheXMgdXAgdG8gMiBZZWFycyBPbGQiOgogIEludGVydmFsW1BhdGllbnQuYmlydGhEYXRlICsgMTgwIGRheXMsICJEYXRlIG9mIFNlY29uZCBCaXJ0aGRheSJdCgpkZWZpbmUgIkZpcnN0IFR3byBZZWFycyI6CiAgSW50ZXJ2YWxbUGF0aWVudC5iaXJ0aERhdGUsICJEYXRlIG9mIFNlY29uZCBCaXJ0aGRheSJdCgpkZWZpbmUgIlZhY2NpbmUgQWRtaW5pc3RyYXRpb24gSW50ZXJ2YWwgLSA0MiBEYXlzIHVwIHRvIDIgWWVhcnMgT2xkIjoKICBJbnRlcnZhbFtQYXRpZW50LmJpcnRoRGF0ZSArIDQyIGRheXMsICJEYXRlIG9mIFNlY29uZCBCaXJ0aGRheSJdCgpkZWZpbmUgIkRhdGUgb2YgU2Vjb25kIEJpcnRoZGF5IjoKICBQYXRpZW50LmJpcnRoRGF0ZSArIDIgeWVhcnMKCmRlZmluZSAiRGF0ZSBvZiBGaXJzdCBCaXJ0aGRheSI6CiAgUGF0aWVudC5iaXJ0aERhdGUgKyAxIHllYXIKCmRlZmluZSAiRGF0ZSBvZiBGaXJzdCBCaXJ0aGRheSB0byBEYXRlIG9mIFNlY29uZCBCaXJ0aGRheSI6CiAgSW50ZXJ2YWxbIkRhdGUgb2YgRmlyc3QgQmlydGhkYXkiLCAiRGF0ZSBvZiBTZWNvbmQgQmlydGhkYXkiXQoKLy9EVGFQCgoKZGVmaW5lICJGb3VyIERUYVAgVmFjY2luYXRpb25zIjoKICBmcm9tCiAgICAiRFRhUCBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIERUYVBWYWNjaW5hdGlvbjEsCiAgICAiRFRhUCBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIERUYVBWYWNjaW5hdGlvbjIsCiAgICAiRFRhUCBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIERUYVBWYWNjaW5hdGlvbjMsCiAgICAiRFRhUCBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIERUYVBWYWNjaW5hdGlvbjQKICAgIHdoZXJlIGRhdGUgZnJvbSBEVGFQVmFjY2luYXRpb24yLmVhcmxpZXN0ICggKSAxIGRheSBvciBtb3JlIGFmdGVyIGRheSBvZiBkYXRlIGZyb20gRFRhUFZhY2NpbmF0aW9uMS5lYXJsaWVzdCAoICkKICAgICAgYW5kIGRhdGUgZnJvbSBEVGFQVmFjY2luYXRpb24zLmVhcmxpZXN0ICggKSAxIGRheSBvciBtb3JlIGFmdGVyIGRheSBvZiBEVGFQVmFjY2luYXRpb24yLmVhcmxpZXN0ICggKQogICAgICBhbmQgZGF0ZSBmcm9tIERUYVBWYWNjaW5hdGlvbjQuZWFybGllc3QgKCApIDEgZGF5IG9yIG1vcmUgYWZ0ZXIgZGF5IG9mIERUYVBWYWNjaW5hdGlvbjMuZWFybGllc3QgKCApCiAgICByZXR1cm4gYWxsIERUYVBWYWNjaW5hdGlvbjEKCmRlZmluZSAiRFRhUCBOdW1lcmF0b3IgSW5jbHVzaW9uIENvbmRpdGlvbnMiOgogIC8vIFtFLTEzXSBiYXNlIEZISVIuQ29uZGl0aW9uIHJldHJpZXZlIChkZWZlY3QtdHJhY2tpbmcvZW5naW5lLWlzc3Vlcy5tZCBFLTEzKQogIC8vIE9yaWdpbmFsOgogIC8vICAgW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIkFuYXBoeWxhY3RpYyBSZWFjdGlvbiB0byBEVGFQIFZhY2NpbmUiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkFuYXBoeWxhY3RpYyBSZWFjdGlvbiB0byBEVGFQIFZhY2NpbmUiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiRW5jZXBoYWxpdGlzIER1ZSB0byBEaXBodGhlcmlhLCBUZXRhbnVzIG9yIFBlcnR1c3NpcyBWYWNjaW5lIl0KICAvLyAgICAgdW5pb24gW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJFbmNlcGhhbGl0aXMgRHVlIHRvIERpcGh0aGVyaWEsIFRldGFudXMgb3IgUGVydHVzc2lzIFZhY2NpbmUiXQogICggKCBbRkhJUi5Db25kaXRpb246ICJBbmFwaHlsYWN0aWMgUmVhY3Rpb24gdG8gRFRhUCBWYWNjaW5lIl0KICAgICAgdW5pb24gW0ZISVIuQ29uZGl0aW9uOiAiRW5jZXBoYWxpdGlzIER1ZSB0byBEaXBodGhlcmlhLCBUZXRhbnVzIG9yIFBlcnR1c3NpcyBWYWNjaW5lIl0KICApLnZlcmlmaWVkICggKSApIERUYVBDb25kaXRpb25zCiAgICB3aGVyZSBkYXRlIGZyb20gc3RhcnQgb2YgRFRhUENvbmRpdGlvbnMucHJldmFsZW5jZUludGVydmFsICggKSBkdXJpbmcgZGF5IG9mICJGaXJzdCBUd28gWWVhcnMiCgpkZWZpbmUgIkRUYVAgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIjoKICAoICggKCBbSW1tdW5pemF0aW9uOiAiRFRhUCBWYWNjaW5lIl0gKS5pc0ltbXVuaXphdGlvbkFkbWluaXN0ZXJlZCAoICkgKSBEVGFQVmFjY2luYXRpb24KICAgICAgd2hlcmUgZGF0ZSBmcm9tIERUYVBWYWNjaW5hdGlvbi5vY2N1cnJlbmNlLmVhcmxpZXN0ICggKSBkdXJpbmcgZGF5IG9mICJWYWNjaW5lIEFkbWluaXN0cmF0aW9uIEludGVydmFsIC0gNDIgRGF5cyB1cCB0byAyIFllYXJzIE9sZCIKICAgICAgcmV0dXJuIERUYVBWYWNjaW5hdGlvbi5vY2N1cnJlbmNlCiAgKQogICAgdW5pb24gKCAoICggW1Byb2NlZHVyZTogIkRUYVAgVmFjY2luZSBBZG1pbmlzdGVyZWQiXSApLmlzUHJvY2VkdXJlUGVyZm9ybWVkICggKSApIERUYVBQcm9jZWR1cmUKICAgICAgICB3aGVyZSBkYXRlIGZyb20gRFRhUFByb2NlZHVyZS5wZXJmb3JtZWQuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgIlZhY2NpbmUgQWRtaW5pc3RyYXRpb24gSW50ZXJ2YWwgLSA0MiBEYXlzIHVwIHRvIDIgWWVhcnMgT2xkIgogICAgICAgIHJldHVybiBEVGFQUHJvY2VkdXJlLnBlcmZvcm1lZAogICAgKQoKLy9Qb2xpbwoKZGVmaW5lICJQb2xpbyBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiOgogICggKCAoIFtJbW11bml6YXRpb246ICJJbmFjdGl2YXRlZCBQb2xpbyBWYWNjaW5lIChJUFYpIl0gKS5pc0ltbXVuaXphdGlvbkFkbWluaXN0ZXJlZCAoICkgKSBQb2xpb1ZhY2NpbmF0aW9uCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBQb2xpb1ZhY2NpbmF0aW9uLm9jY3VycmVuY2UuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgIlZhY2NpbmUgQWRtaW5pc3RyYXRpb24gSW50ZXJ2YWwgLSA0MiBEYXlzIHVwIHRvIDIgWWVhcnMgT2xkIgogICAgICByZXR1cm4gUG9saW9WYWNjaW5hdGlvbi5vY2N1cnJlbmNlCiAgICApCiAgICB1bmlvbiAoICggKCBbUHJvY2VkdXJlOiAiSW5hY3RpdmF0ZWQgUG9saW8gVmFjY2luZSAoSVBWKSBBZG1pbmlzdGVyZWQiXSApLmlzUHJvY2VkdXJlUGVyZm9ybWVkICggKSApIFBvbGlvUHJvY2VkdXJlCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIFBvbGlvUHJvY2VkdXJlLnBlcmZvcm1lZC5lYXJsaWVzdCAoICkgZHVyaW5nIGRheSBvZiAiVmFjY2luZSBBZG1pbmlzdHJhdGlvbiBJbnRlcnZhbCAtIDQyIERheXMgdXAgdG8gMiBZZWFycyBPbGQiCiAgICAgICAgcmV0dXJuIFBvbGlvUHJvY2VkdXJlLnBlcmZvcm1lZAogICAgKQoKZGVmaW5lICJUaHJlZSBQb2xpbyBWYWNjaW5hdGlvbnMiOgogIGZyb20KICAgICJQb2xpbyBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIFBvbGlvVmFjY2luYXRpb24xLAogICAgIlBvbGlvIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyIgUG9saW9WYWNjaW5hdGlvbjIsCiAgICAiUG9saW8gSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIiBQb2xpb1ZhY2NpbmF0aW9uMwogICAgd2hlcmUgZGF0ZSBmcm9tIFBvbGlvVmFjY2luYXRpb24yLmVhcmxpZXN0ICggKSAxIGRheSBvciBtb3JlIGFmdGVyIGRhdGUgZnJvbSBQb2xpb1ZhY2NpbmF0aW9uMS5lYXJsaWVzdCAoICkKICAgICAgYW5kIGRhdGUgZnJvbSBQb2xpb1ZhY2NpbmF0aW9uMy5lYXJsaWVzdCAoICkgMSBkYXkgb3IgbW9yZSBhZnRlciBkYXRlIGZyb20gUG9saW9WYWNjaW5hdGlvbjIuZWFybGllc3QgKCApCiAgICByZXR1cm4gZGF0ZSBmcm9tIFBvbGlvVmFjY2luYXRpb24xLmVhcmxpZXN0ICggKQoKCmRlZmluZSAiUG9saW8gTnVtZXJhdG9yIEluY2x1c2lvbiBDb25kaXRpb25zIjoKICAvLyBbRS0xM10gYmFzZSBGSElSLkNvbmRpdGlvbiByZXRyaWV2ZSAoZGVmZWN0LXRyYWNraW5nL2VuZ2luZS1pc3N1ZXMubWQgRS0xMykKICAvLyBPcmlnaW5hbDoKICAvLyAgIFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgaHVtYW4gcG9saW92aXJ1cyBhbnRpZ2VuIChkaXNvcmRlcikiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBodW1hbiBwb2xpb3ZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSJdCiAgKCAoIFtGSElSLkNvbmRpdGlvbjogIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBodW1hbiBwb2xpb3ZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSJdICkudmVyaWZpZWQgKCApICkgUG9saW9Db25kaXRpb25zCiAgICB3aGVyZSBkYXRlIGZyb20gc3RhcnQgb2YgUG9saW9Db25kaXRpb25zLnByZXZhbGVuY2VJbnRlcnZhbCAoICkgZHVyaW5nIGRheSBvZiAiRmlyc3QgVHdvIFllYXJzIgoKLy9NTVIKCgpkZWZpbmUgIk9uZSBNTVIgVmFjY2luYXRpb24iOgogICggKCAoIFtJbW11bml6YXRpb246ICJNZWFzbGVzLCBNdW1wcyBhbmQgUnViZWxsYSAoTU1SKSBWYWNjaW5lIl0gKS5pc0ltbXVuaXphdGlvbkFkbWluaXN0ZXJlZCAoICkgKSBNTVJWYWNjaW5hdGlvbgogICAgICB3aGVyZSBkYXRlIGZyb20gTU1SVmFjY2luYXRpb24ub2NjdXJyZW5jZS5lYXJsaWVzdCAoICkgZHVyaW5nICJEYXRlIG9mIEZpcnN0IEJpcnRoZGF5IHRvIERhdGUgb2YgU2Vjb25kIEJpcnRoZGF5IgogICAgICByZXR1cm4gZGF0ZSBmcm9tIE1NUlZhY2NpbmF0aW9uLm9jY3VycmVuY2UuZWFybGllc3QgKCApCiAgKQogICAgdW5pb24gKCAoICggW1Byb2NlZHVyZTogIk1lYXNsZXMsIE11bXBzIGFuZCBSdWJlbGxhIChNTVIpIFZhY2NpbmUgQWRtaW5pc3RlcmVkIl0gKS5pc1Byb2NlZHVyZVBlcmZvcm1lZCAoICkgKSBNTVJQcm9jZWR1cmUKICAgICAgICB3aGVyZSBkYXRlIGZyb20gTU1SUHJvY2VkdXJlLnBlcmZvcm1lZC5lYXJsaWVzdCAoICkgZHVyaW5nICJEYXRlIG9mIEZpcnN0IEJpcnRoZGF5IHRvIERhdGUgb2YgU2Vjb25kIEJpcnRoZGF5IgogICAgICAgIHJldHVybiBkYXRlIGZyb20gTU1SUHJvY2VkdXJlLnBlcmZvcm1lZC5lYXJsaWVzdCAoICkKICAgICkKCmRlZmluZSAiTWVhc2xlcyBJbmRpY2F0b3JzIjoKICAoICggW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIk1lYXNsZXMiXQogICAgICB1bmlvbiBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiTWVhc2xlcyJdCiAgKS52ZXJpZmllZCAoICkgKSBNZWFzbGVzRGlhZ25vc2lzCiAgICB3aGVyZSBkYXRlIGZyb20gc3RhcnQgb2YgTWVhc2xlc0RpYWdub3Npcy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKCmRlZmluZSAiTXVtcHMgSW5kaWNhdG9ycyI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiTXVtcHMiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIk11bXBzIl0KICAoICggW0ZISVIuQ29uZGl0aW9uOiAiTXVtcHMiXSApLnZlcmlmaWVkICggKSApIE11bXBzRGlhZ25vc2lzCiAgICB3aGVyZSBkYXRlIGZyb20gc3RhcnQgb2YgTXVtcHNEaWFnbm9zaXMucHJldmFsZW5jZUludGVydmFsICggKSBkdXJpbmcgZGF5IG9mICJGaXJzdCBUd28gWWVhcnMiCgpkZWZpbmUgIlJ1YmVsbGEgSW5kaWNhdG9ycyI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiUnViZWxsYSJdCiAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiUnViZWxsYSJdCiAgKCAoIFtGSElSLkNvbmRpdGlvbjogIlJ1YmVsbGEiXSApLnZlcmlmaWVkICggKSApIFJ1YmVsbGFEaWFnbm9zaXMKICAgIHdoZXJlIGRhdGUgZnJvbSBzdGFydCBvZiBSdWJlbGxhRGlhZ25vc2lzLnByZXZhbGVuY2VJbnRlcnZhbCAoICkgZHVyaW5nIGRheSBvZiAiRmlyc3QgVHdvIFllYXJzIgoKZGVmaW5lICJNTVIgTnVtZXJhdG9yIEluY2x1c2lvbiBDb25kaXRpb25zIjoKICAvLyBbRS0xM10gYmFzZSBGSElSLkNvbmRpdGlvbiByZXRyaWV2ZSAoZGVmZWN0LXRyYWNraW5nL2VuZ2luZS1pc3N1ZXMubWQgRS0xMykKICAvLyBPcmlnaW5hbDoKICAvLyAgIFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgTWVhc2xlcyBtb3JiaWxsaXZpcnVzIGFuZCBNdW1wcyBvcnRob3J1YnVsYXZpcnVzIGFuZCBSdWJlbGxhIHZpcnVzIGFudGlnZW5zIChkaXNvcmRlcikiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBNZWFzbGVzIG1vcmJpbGxpdmlydXMgYW5kIE11bXBzIG9ydGhvcnVidWxhdmlydXMgYW5kIFJ1YmVsbGEgdmlydXMgYW50aWdlbnMgKGRpc29yZGVyKSJdCiAgKCAoIFtGSElSLkNvbmRpdGlvbjogIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBNZWFzbGVzIG1vcmJpbGxpdmlydXMgYW5kIE11bXBzIG9ydGhvcnVidWxhdmlydXMgYW5kIFJ1YmVsbGEgdmlydXMgYW50aWdlbnMgKGRpc29yZGVyKSJdICkudmVyaWZpZWQgKCApICkgTU1SQ29uZGl0aW9ucwogICAgd2hlcmUgZGF0ZSBmcm9tIHN0YXJ0IG9mIE1NUkNvbmRpdGlvbnMucHJldmFsZW5jZUludGVydmFsICggKSBkdXJpbmcgZGF5IG9mICJGaXJzdCBUd28gWWVhcnMiCgovL0hpQgoKCmRlZmluZSAiSGFzIEFwcHJvcHJpYXRlIE51bWJlciBvZiBIaWIgSW1tdW5pemF0aW9ucyI6CiAgZXhpc3RzICggIkhpYiAzIG9yIDQgRG9zZSBJbW11bml6YXRpb25zIiBIaWJJbW11bml6YXRpb24gLy80IGRvc2UgdGVzdAogICAgICAKICAgICAgbGV0IEhhc0ZvdXJEb3NlOiBDb3VudCgiSGliIDQgRG9zZSBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiKSA+IDAKICAgICAgd2hlcmUgKCBIYXNGb3VyRG9zZSAvL2lmIHB0IGhhZCBhdCBsZWFzdCBvbmUgNCBkb3NlIGNvZGUKICAgICAgICAgIAogICAgICAgICAgYW5kIENvdW50KGRpc3RpbmN0KCJIaWIgMyBvciA0IERvc2UgSW1tdW5pemF0aW9ucyIgSGliVmFjY2luYXRpb25zCiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZSBmcm9tIEhpYlZhY2NpbmF0aW9ucy5lYXJsaWVzdCgpCiAgICAgICAgICAgICkKICAgICAgICAgICkgPj0gNCAvL3B0IG11c3QgaGF2ZSA0IHJlZ2ltZW5zIChlLmcuLCAzLDMsNCw0IG9yIDQsMyw0LDQpCiAgICAgIAogICAgICApCiAgICAgICAgb3IgKCBIYXNGb3VyRG9zZSBpcyBmYWxzZSAvL2lmIHB0IGRpZCBub3QgaGF2ZSBhdCBsZWFzdCBvbmUgNCBkb3NlIGNvZGUKICAgICAgICAgICAgCiAgICAgICAgICAgIGFuZCBDb3VudChkaXN0aW5jdCgiSGliIDMgb3IgNCBEb3NlIEltbXVuaXphdGlvbnMiIEhpYlZhY2NpbmF0aW9ucwogICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZSBmcm9tIEhpYlZhY2NpbmF0aW9ucy5lYXJsaWVzdCgpCiAgICAgICAgICAgICAgKQogICAgICAgICAgICApID49IDMgLy9wdCBtdXN0IGhhdmUgMyByZWdpbWVucyBvZiAzIGRvc2UgY29kZXMKICAgICAgICAKICAgICAgICApCiAgKQoKZGVmaW5lICJIaWIgTnVtZXJhdG9yIEluY2x1c2lvbiBDb25kaXRpb25zIjoKICAvLyBbRS0xM10gYmFzZSBGSElSLkNvbmRpdGlvbiByZXRyaWV2ZSAoZGVmZWN0LXRyYWNraW5nL2VuZ2luZS1pc3N1ZXMubWQgRS0xMykKICAvLyBPcmlnaW5hbDoKICAvLyAgIFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgb25seSBIYWVtb3BoaWx1cyBpbmZsdWVuemFlIHR5cGUgYiBhbnRpZ2VuIChkaXNvcmRlcikiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBvbmx5IEhhZW1vcGhpbHVzIGluZmx1ZW56YWUgdHlwZSBiIGFudGlnZW4gKGRpc29yZGVyKSJdCiAgKCAoIFtGSElSLkNvbmRpdGlvbjogIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBvbmx5IEhhZW1vcGhpbHVzIGluZmx1ZW56YWUgdHlwZSBiIGFudGlnZW4gKGRpc29yZGVyKSJdICkudmVyaWZpZWQgKCApICkgSGliUmVhY3Rpb24KICAgIHdoZXJlIGRhdGUgZnJvbSBzdGFydCBvZiBIaWJSZWFjdGlvbi5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKCmRlZmluZSAiSGliIDMgRG9zZSBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiOgogICggKCAoIFtJbW11bml6YXRpb246ICJIaWIgVmFjY2luZSAoMyBkb3NlIHNjaGVkdWxlKSJdICkuaXNJbW11bml6YXRpb25BZG1pbmlzdGVyZWQgKCApICkgVGhyZWVEb3NlSGliVmFjY2luZQogICAgICB3aGVyZSBkYXRlIGZyb20gVGhyZWVEb3NlSGliVmFjY2luZS5vY2N1cnJlbmNlLmVhcmxpZXN0ICggKSBkdXJpbmcgZGF5IG9mICJWYWNjaW5lIEFkbWluaXN0cmF0aW9uIEludGVydmFsIC0gNDIgRGF5cyB1cCB0byAyIFllYXJzIE9sZCIKICAgICAgcmV0dXJuIFRocmVlRG9zZUhpYlZhY2NpbmUub2NjdXJyZW5jZQogICkKICAgIHVuaW9uICggKCAoIFtQcm9jZWR1cmU6ICJIaWIgVmFjY2luZSAoMyBkb3NlIHNjaGVkdWxlKSBBZG1pbmlzdGVyZWQiXSApLmlzUHJvY2VkdXJlUGVyZm9ybWVkICggKSApIFRocmVlRG9zZUhpYlByb2NlZHVyZQogICAgICAgIHdoZXJlIGRhdGUgZnJvbSBUaHJlZURvc2VIaWJQcm9jZWR1cmUucGVyZm9ybWVkLmVhcmxpZXN0ICggKSBkdXJpbmcgZGF5IG9mICJWYWNjaW5lIEFkbWluaXN0cmF0aW9uIEludGVydmFsIC0gNDIgRGF5cyB1cCB0byAyIFllYXJzIE9sZCIKICAgICAgICByZXR1cm4gVGhyZWVEb3NlSGliUHJvY2VkdXJlLnBlcmZvcm1lZAogICAgKQoKZGVmaW5lICJIaWIgMyBvciA0IERvc2UgSW1tdW5pemF0aW9ucyI6CiAgIkhpYiAzIERvc2UgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIgogICAgdW5pb24gIkhpYiA0IERvc2UgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIgoKZGVmaW5lICJIaWIgNCBEb3NlIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyI6CiAgKCAoICggW0ltbXVuaXphdGlvbjogIkhpYiBWYWNjaW5lICg0IGRvc2Ugc2NoZWR1bGUpIl0gKS5pc0ltbXVuaXphdGlvbkFkbWluaXN0ZXJlZCAoICkgKSBIaWJWYWNjaW5lCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBIaWJWYWNjaW5lLm9jY3VycmVuY2UuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgIlZhY2NpbmUgQWRtaW5pc3RyYXRpb24gSW50ZXJ2YWwgLSA0MiBEYXlzIHVwIHRvIDIgWWVhcnMgT2xkIgogICAgICByZXR1cm4gSGliVmFjY2luZS5vY2N1cnJlbmNlCiAgKQogICAgdW5pb24gKCAoICggW1Byb2NlZHVyZTogIkhpYiBWYWNjaW5lICg0IGRvc2Ugc2NoZWR1bGUpIEFkbWluaXN0ZXJlZCJdICkuaXNQcm9jZWR1cmVQZXJmb3JtZWQgKCApICkgSGliUHJvY2VkdXJlCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIEhpYlByb2NlZHVyZS5wZXJmb3JtZWQuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgIlZhY2NpbmUgQWRtaW5pc3RyYXRpb24gSW50ZXJ2YWwgLSA0MiBEYXlzIHVwIHRvIDIgWWVhcnMgT2xkIgogICAgICAgIHJldHVybiBIaWJQcm9jZWR1cmUucGVyZm9ybWVkCiAgICApCgovL0hlcEIKCgpkZWZpbmUgIkhlcGF0aXRpcyBCIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEhlcGF0aXRpcyBCIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSJdCiAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEhlcGF0aXRpcyBCIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSJdCiAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJIZXBhdGl0aXMgQiJdCiAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiSGVwYXRpdGlzIEIiXQogICggKCBbRkhJUi5Db25kaXRpb246ICJBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgSGVwYXRpdGlzIEIgdmlydXMgYW50aWdlbiAoZGlzb3JkZXIpIl0KICAgICAgdW5pb24gW0ZISVIuQ29uZGl0aW9uOiAiSGVwYXRpdGlzIEIiXQogICkudmVyaWZpZWQgKCApICkgSGVwQkNvbmRpdGlvbnMKICAgIHdoZXJlIGRhdGUgZnJvbSBzdGFydCBvZiBIZXBCQ29uZGl0aW9ucy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKCmRlZmluZSAiVGhyZWUgSGVwYXRpdGlzIEIgVmFjY2luYXRpb25zIjoKICBmcm9tCiAgICAiSGVwYXRpdGlzIEIgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIiBIZXBhdGl0aXNCVmFjY2luYXRpb24xLAogICAgIkhlcGF0aXRpcyBCIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyIgSGVwYXRpdGlzQlZhY2NpbmF0aW9uMiwKICAgICJIZXBhdGl0aXMgQiBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIEhlcGF0aXRpc0JWYWNjaW5hdGlvbjMKICAgIHdoZXJlIGRhdGUgZnJvbSBIZXBhdGl0aXNCVmFjY2luYXRpb24yLmVhcmxpZXN0ICggKSAxIGRheSBvciBtb3JlIGFmdGVyIGRhdGUgZnJvbSBIZXBhdGl0aXNCVmFjY2luYXRpb24xLmVhcmxpZXN0ICggKQogICAgICBhbmQgZGF0ZSBmcm9tIEhlcGF0aXRpc0JWYWNjaW5hdGlvbjMuZWFybGllc3QgKCApIDEgZGF5IG9yIG1vcmUgYWZ0ZXIgZGF0ZSBmcm9tIEhlcGF0aXRpc0JWYWNjaW5hdGlvbjIuZWFybGllc3QgKCApCiAgICByZXR1cm4gZGF0ZSBmcm9tIEhlcGF0aXRpc0JWYWNjaW5hdGlvbjEuZWFybGllc3QgKCApCgpkZWZpbmUgIkhlcGF0aXRpcyBCIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyI6CiAgKCAoICggW0ltbXVuaXphdGlvbjogIkhlcGF0aXRpcyBCIFZhY2NpbmUiXSApLmlzSW1tdW5pemF0aW9uQWRtaW5pc3RlcmVkICggKSApIEhlcGF0aXRpc0JWYWNjaW5hdGlvbgogICAgICB3aGVyZSBkYXRlIGZyb20gSGVwYXRpdGlzQlZhY2NpbmF0aW9uLm9jY3VycmVuY2UuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKICAgICAgcmV0dXJuIEhlcGF0aXRpc0JWYWNjaW5hdGlvbi5vY2N1cnJlbmNlCiAgKQogICAgdW5pb24gKCAoICggW1Byb2NlZHVyZTogIkhlcGF0aXRpcyBCIFZhY2NpbmUgQWRtaW5pc3RlcmVkIl0gKS5pc1Byb2NlZHVyZVBlcmZvcm1lZCAoICkgKSBIZXBhdGl0aXNCUHJvY2VkdXJlCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIEhlcGF0aXRpc0JQcm9jZWR1cmUucGVyZm9ybWVkLmVhcmxpZXN0ICggKSBkdXJpbmcgZGF5IG9mICJGaXJzdCBUd28gWWVhcnMiCiAgICAgICAgcmV0dXJuIEhlcGF0aXRpc0JQcm9jZWR1cmUucGVyZm9ybWVkCiAgICApCgpkZWZpbmUgIk1lZXRzIEhlcEIgVmFjY2luYXRpb24gUmVxdWlyZW1lbnQiOgogIGZyb20KICAgICJIZXBhdGl0aXMgQiBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIEhlcGF0aXRpc0JWYWNjaW5hdGlvbjEsCiAgICAiSGVwYXRpdGlzIEIgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIiBIZXBhdGl0aXNCVmFjY2luYXRpb24yLAogICAgIk5ld0Jvcm4gVmFjY2luZSBSZXF1aXJlbWVudCIgTmV3Qm9yblZhY2NpbmUzCiAgICB3aGVyZSBkYXRlIGZyb20gSGVwYXRpdGlzQlZhY2NpbmF0aW9uMi5lYXJsaWVzdCAoICkgMSBkYXkgb3IgbW9yZSBhZnRlciBkYXRlIGZyb20gSGVwYXRpdGlzQlZhY2NpbmF0aW9uMS5lYXJsaWVzdCAoICkKICAgICAgYW5kIGRhdGUgZnJvbSBIZXBhdGl0aXNCVmFjY2luYXRpb24xLmVhcmxpZXN0ICggKSAxIGRheSBvciBtb3JlIGFmdGVyIGRhdGUgZnJvbSBOZXdCb3JuVmFjY2luZTMuZWFybGllc3QgKCApCiAgICAgIGFuZCBkYXRlIGZyb20gSGVwYXRpdGlzQlZhY2NpbmF0aW9uMi5lYXJsaWVzdCAoICkgMSBkYXkgb3IgbW9yZSBhZnRlciBkYXRlIGZyb20gTmV3Qm9yblZhY2NpbmUzLmVhcmxpZXN0ICggKQogICAgcmV0dXJuIGRhdGUgZnJvbSBIZXBhdGl0aXNCVmFjY2luYXRpb24xLmVhcmxpZXN0ICggKQoKZGVmaW5lICJOZXdCb3JuIFZhY2NpbmUgUmVxdWlyZW1lbnQiOgogICggKCBbUHJvY2VkdXJlOiAiSW50cm9kdWN0aW9uIG9mIFNlcnVtLCBUb3hvaWQgYW5kIFZhY2NpbmUgaW50byBNdXNjbGUsIFBlcmN1dGFuZW91cyBBcHByb2FjaCJdICkuaXNQcm9jZWR1cmVQZXJmb3JtZWQgKCApICkgTmV3Qm9yblZhY2NpbmUKICAgIHdoZXJlIGRhdGUgZnJvbSBOZXdCb3JuVmFjY2luZS5wZXJmb3JtZWQuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgSW50ZXJ2YWxbUGF0aWVudC5iaXJ0aERhdGUsIFBhdGllbnQuYmlydGhEYXRlICsgNyBkYXlzXQogICAgcmV0dXJuIE5ld0Jvcm5WYWNjaW5lLnBlcmZvcm1lZAoKLy9WWlYKCgpkZWZpbmUgIk9uZSBDaGlja2VuIFBveCBWYWNjaW5hdGlvbiI6CiAgKCAoICggW0ltbXVuaXphdGlvbjogIlZhcmljZWxsYSBab3N0ZXIgVmFjY2luZSAoVlpWKSJdICkuaXNJbW11bml6YXRpb25BZG1pbmlzdGVyZWQgKCApICkgQ2hpY2tlblBveFZhY2NpbmF0aW9uCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBDaGlja2VuUG94VmFjY2luYXRpb24ub2NjdXJyZW5jZS5lYXJsaWVzdCAoICkgZHVyaW5nICJEYXRlIG9mIEZpcnN0IEJpcnRoZGF5IHRvIERhdGUgb2YgU2Vjb25kIEJpcnRoZGF5IgogICAgICByZXR1cm4gZGF0ZSBmcm9tIENoaWNrZW5Qb3hWYWNjaW5hdGlvbi5vY2N1cnJlbmNlLmVhcmxpZXN0ICggKQogICkKICAgIHVuaW9uICggKCAoIFtQcm9jZWR1cmU6ICJWYXJpY2VsbGEgWm9zdGVyIFZhY2NpbmUgKFZaVikgQWRtaW5pc3RlcmVkIl0gKS5pc1Byb2NlZHVyZVBlcmZvcm1lZCAoICkgKSBDaGlja2VuUG94UHJvY2VkdXJlCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIENoaWNrZW5Qb3hQcm9jZWR1cmUucGVyZm9ybWVkLmVhcmxpZXN0ICggKSBkdXJpbmcgIkRhdGUgb2YgRmlyc3QgQmlydGhkYXkgdG8gRGF0ZSBvZiBTZWNvbmQgQmlydGhkYXkiCiAgICAgICAgcmV0dXJuIGRhdGUgZnJvbSBDaGlja2VuUG94UHJvY2VkdXJlLnBlcmZvcm1lZC5lYXJsaWVzdCAoICkKICAgICkKCmRlZmluZSAiVmFyaWNlbGxhIFpvc3RlciBOdW1lcmF0b3IgSW5jbHVzaW9uIENvbmRpdGlvbnMiOgogIC8vIFtFLTEzXSBiYXNlIEZISVIuQ29uZGl0aW9uIHJldHJpZXZlIChkZWZlY3QtdHJhY2tpbmcvZW5naW5lLWlzc3Vlcy5tZCBFLTEzKQogIC8vIE9yaWdpbmFsOgogIC8vICAgW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIlZhcmljZWxsYSBab3N0ZXIiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIlZhcmljZWxsYSBab3N0ZXIiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgY29udGFpbmluZyBIdW1hbiBhbHBoYWhlcnBlc3ZpcnVzIDMgYW50aWdlbiAoZGlzb3JkZXIpIl0KICAvLyAgICAgdW5pb24gW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBjb250YWluaW5nIEh1bWFuIGFscGhhaGVycGVzdmlydXMgMyBhbnRpZ2VuIChkaXNvcmRlcikiXQogICggKCBbRkhJUi5Db25kaXRpb246ICJWYXJpY2VsbGEgWm9zdGVyIl0KICAgICAgdW5pb24gW0ZISVIuQ29uZGl0aW9uOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgY29udGFpbmluZyBIdW1hbiBhbHBoYWhlcnBlc3ZpcnVzIDMgYW50aWdlbiAoZGlzb3JkZXIpIl0KICApLnZlcmlmaWVkICggKSApIFZhcmljZWxsYVpvc3RlcgogICAgd2hlcmUgZGF0ZSBmcm9tIHN0YXJ0IG9mIFZhcmljZWxsYVpvc3Rlci5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKCi8vUENWCgoKZGVmaW5lICJGb3VyIFBuZXVtb2NvY2NhbCBDb25qdWdhdGUgVmFjY2luYXRpb25zIjoKICBmcm9tCiAgICAiUG5ldW1vY29jY2FsIENvbmp1Z2F0ZSBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIFBuZXVtb2NvY2NhbFZhY2NpbmF0aW9uMSwKICAgICJQbmV1bW9jb2NjYWwgQ29uanVnYXRlIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyIgUG5ldW1vY29jY2FsVmFjY2luYXRpb24yLAogICAgIlBuZXVtb2NvY2NhbCBDb25qdWdhdGUgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIiBQbmV1bW9jb2NjYWxWYWNjaW5hdGlvbjMsCiAgICAiUG5ldW1vY29jY2FsIENvbmp1Z2F0ZSBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIFBuZXVtb2NvY2NhbFZhY2NpbmF0aW9uNAogICAgd2hlcmUgZGF0ZSBmcm9tIFBuZXVtb2NvY2NhbFZhY2NpbmF0aW9uMi5lYXJsaWVzdCAoICkgMSBkYXkgb3IgbW9yZSBhZnRlciBkYXRlIGZyb20gUG5ldW1vY29jY2FsVmFjY2luYXRpb24xLmVhcmxpZXN0ICggKQogICAgICBhbmQgZGF0ZSBmcm9tIFBuZXVtb2NvY2NhbFZhY2NpbmF0aW9uMy5lYXJsaWVzdCAoICkgMSBkYXkgb3IgbW9yZSBhZnRlciBkYXRlIGZyb20gUG5ldW1vY29jY2FsVmFjY2luYXRpb24yLmVhcmxpZXN0ICggKQogICAgICBhbmQgZGF0ZSBmcm9tIFBuZXVtb2NvY2NhbFZhY2NpbmF0aW9uNC5lYXJsaWVzdCAoICkgMSBkYXkgb3IgbW9yZSBhZnRlciBkYXRlIGZyb20gUG5ldW1vY29jY2FsVmFjY2luYXRpb24zLmVhcmxpZXN0ICggKQogICAgcmV0dXJuIGRhdGUgZnJvbSBQbmV1bW9jb2NjYWxWYWNjaW5hdGlvbjEuZWFybGllc3QgKCApCgpkZWZpbmUgIlBuZXVtb2NvY2NhbCBDb25qdWdhdGUgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIjoKICAoICggKCBbSW1tdW5pemF0aW9uOiAiUG5ldW1vY29jY2FsIENvbmp1Z2F0ZSBWYWNjaW5lIl0gKS5pc0ltbXVuaXphdGlvbkFkbWluaXN0ZXJlZCAoICkgKSBQbmV1bW9jb2NjYWxWYWNjaW5hdGlvbgogICAgICB3aGVyZSBkYXRlIGZyb20gUG5ldW1vY29jY2FsVmFjY2luYXRpb24ub2NjdXJyZW5jZS5lYXJsaWVzdCAoICkgZHVyaW5nIGRheSBvZiAiVmFjY2luZSBBZG1pbmlzdHJhdGlvbiBJbnRlcnZhbCAtIDQyIERheXMgdXAgdG8gMiBZZWFycyBPbGQiCiAgICAgIHJldHVybiBQbmV1bW9jb2NjYWxWYWNjaW5hdGlvbi5vY2N1cnJlbmNlCiAgKQogICAgdW5pb24gKCAoICggW1Byb2NlZHVyZTogIlBuZXVtb2NvY2NhbCBDb25qdWdhdGUgVmFjY2luZSBBZG1pbmlzdGVyZWQiXSApLmlzUHJvY2VkdXJlUGVyZm9ybWVkICggKSApIFBuZXVtb2NvY2NhbFByb2NlZHVyZQogICAgICAgIHdoZXJlIGRhdGUgZnJvbSBQbmV1bW9jb2NjYWxQcm9jZWR1cmUucGVyZm9ybWVkLmVhcmxpZXN0ICggKSBkdXJpbmcgZGF5IG9mICJWYWNjaW5lIEFkbWluaXN0cmF0aW9uIEludGVydmFsIC0gNDIgRGF5cyB1cCB0byAyIFllYXJzIE9sZCIKICAgICAgICByZXR1cm4gUG5ldW1vY29jY2FsUHJvY2VkdXJlLnBlcmZvcm1lZAogICAgKQoKZGVmaW5lICJQbmV1bW9jb2NjYWwgQ29uanVnYXRlIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIFN0cmVwdG9jb2NjdXMgcG5ldW1vbmlhZSBhbnRpZ2VuIChkaXNvcmRlcikiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBTdHJlcHRvY29jY3VzIHBuZXVtb25pYWUgYW50aWdlbiAoZGlzb3JkZXIpIl0KICAoICggW0ZISVIuQ29uZGl0aW9uOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIFN0cmVwdG9jb2NjdXMgcG5ldW1vbmlhZSBhbnRpZ2VuIChkaXNvcmRlcikiXSApLnZlcmlmaWVkICggKSApIFBuZXVtb2NvY2NhbFJlYWN0aW9uCiAgICB3aGVyZSBkYXRlIGZyb20gc3RhcnQgb2YgUG5ldW1vY29jY2FsUmVhY3Rpb24ucHJldmFsZW5jZUludGVydmFsICggKSBkdXJpbmcgZGF5IG9mICJGaXJzdCBUd28gWWVhcnMiCgovL0hlcEEKCgpkZWZpbmUgIk9uZSBIZXBhdGl0aXMgQSBWYWNjaW5hdGlvbnMiOgogICggKCAoIFtJbW11bml6YXRpb246ICJIZXBhdGl0aXMgQSBWYWNjaW5lIl0gKS5pc0ltbXVuaXphdGlvbkFkbWluaXN0ZXJlZCAoICkgKSBIZXBhdGl0aXNBVmFjY2luYXRpb24KICAgICAgd2hlcmUgZGF0ZSBmcm9tIEhlcGF0aXRpc0FWYWNjaW5hdGlvbi5vY2N1cnJlbmNlLmVhcmxpZXN0ICggKSBkdXJpbmcgIkRhdGUgb2YgRmlyc3QgQmlydGhkYXkgdG8gRGF0ZSBvZiBTZWNvbmQgQmlydGhkYXkiCiAgICAgIHJldHVybiBkYXRlIGZyb20gSGVwYXRpdGlzQVZhY2NpbmF0aW9uLm9jY3VycmVuY2UuZWFybGllc3QgKCApCiAgKQogICAgdW5pb24gKCAoICggW1Byb2NlZHVyZTogIkhlcGF0aXRpcyBBIFZhY2NpbmUgQWRtaW5pc3RlcmVkIl0gKS5pc1Byb2NlZHVyZVBlcmZvcm1lZCAoICkgKSBIZXBhdGl0aXNBUHJvY2VkdXJlCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIEhlcGF0aXRpc0FQcm9jZWR1cmUucGVyZm9ybWVkLmVhcmxpZXN0ICggKSBkdXJpbmcgIkRhdGUgb2YgRmlyc3QgQmlydGhkYXkgdG8gRGF0ZSBvZiBTZWNvbmQgQmlydGhkYXkiCiAgICAgICAgcmV0dXJuIGRhdGUgZnJvbSBIZXBhdGl0aXNBUHJvY2VkdXJlLnBlcmZvcm1lZC5lYXJsaWVzdCAoICkKICAgICkKCmRlZmluZSAiSGVwYXRpdGlzIEEgTnVtZXJhdG9yIEluY2x1c2lvbiBDb25kaXRpb25zIjoKICAvLyBbRS0xM10gYmFzZSBGSElSLkNvbmRpdGlvbiByZXRyaWV2ZSAoZGVmZWN0LXRyYWNraW5nL2VuZ2luZS1pc3N1ZXMubWQgRS0xMykKICAvLyBPcmlnaW5hbDoKICAvLyAgIFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJIZXBhdGl0aXMgQSJdCiAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiSGVwYXRpdGlzIEEiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEhlcGF0aXRpcyBBIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSJdCiAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEhlcGF0aXRpcyBBIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSJdCiAgKCAoIFtGSElSLkNvbmRpdGlvbjogIkhlcGF0aXRpcyBBIl0KICAgICAgdW5pb24gW0ZISVIuQ29uZGl0aW9uOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEhlcGF0aXRpcyBBIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSJdCiAgKS52ZXJpZmllZCAoICkgKSBIZXBhdGl0aXNBRGlhZ25vc2lzCiAgICB3aGVyZSBkYXRlIGZyb20gc3RhcnQgb2YgSGVwYXRpdGlzQURpYWdub3Npcy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKCi8vUlYKCgpkZWZpbmUgIkhhcyBBcHByb3ByaWF0ZSBOdW1iZXIgb2YgUm90YXZpcnVzIEltbXVuaXphdGlvbnMiOgogIGV4aXN0cyAoICJSb3RhdmlydXMgMiBvciAzIERvc2UgSW1tdW5pemF0aW9ucyIgUm90YXZpcnVzSW1tdW5pemF0aW9uCiAgICAgIGxldCBIYXNUaHJlZURvc2U6IENvdW50KCJSb3RhdmlydXMgMyBEb3NlIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyIpID4gMAogICAgICB3aGVyZSAoIEhhc1RocmVlRG9zZQogICAgICAgICAgYW5kIENvdW50KGRpc3RpbmN0KCJSb3RhdmlydXMgMiBvciAzIERvc2UgSW1tdW5pemF0aW9ucyIgUm90YXZpcnVzVmFjY2luYXRpb25zCiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZSBmcm9tIFJvdGF2aXJ1c1ZhY2NpbmF0aW9ucy5lYXJsaWVzdCgpCiAgICAgICAgICAgICkKICAgICAgICAgICkgPj0gMwogICAgICApCiAgICAgICAgb3IgKCBIYXNUaHJlZURvc2UgaXMgZmFsc2UKICAgICAgICAgICAgYW5kIENvdW50KGRpc3RpbmN0KCJSb3RhdmlydXMgMiBvciAzIERvc2UgSW1tdW5pemF0aW9ucyIgUm90YXZpcnVzVmFjY2luYXRpb25zCiAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRlIGZyb20gUm90YXZpcnVzVmFjY2luYXRpb25zLmVhcmxpZXN0KCkKICAgICAgICAgICAgICApCiAgICAgICAgICAgICkgPj0gMgogICAgICAgICkKICApCgpkZWZpbmUgIlJvdGF2aXJ1cyAyIERvc2UgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIjoKICAoICggKCBbSW1tdW5pemF0aW9uOiAicm90YXZpcnVzLCBsaXZlLCBtb25vdmFsZW50IHZhY2NpbmUiXSApLmlzSW1tdW5pemF0aW9uQWRtaW5pc3RlcmVkICggKSApIFR3b0Rvc2VSb3RhdmlydXNWYWNjaW5lCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBUd29Eb3NlUm90YXZpcnVzVmFjY2luZS5vY2N1cnJlbmNlLmVhcmxpZXN0ICggKSBkdXJpbmcgZGF5IG9mICJWYWNjaW5lIEFkbWluaXN0cmF0aW9uIEludGVydmFsIC0gNDIgRGF5cyB1cCB0byAyIFllYXJzIE9sZCIKICAgICAgcmV0dXJuIFR3b0Rvc2VSb3RhdmlydXNWYWNjaW5lLm9jY3VycmVuY2UKICApCiAgICB1bmlvbiAoICggKCBbUHJvY2VkdXJlOiAiUm90YXZpcnVzIFZhY2NpbmUgKDIgZG9zZSBzY2hlZHVsZSkgQWRtaW5pc3RlcmVkIl0gKS5pc1Byb2NlZHVyZVBlcmZvcm1lZCAoICkgKSBUd29Eb3NlUm90YXZpcnVzUHJvY2VkdXJlCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIFR3b0Rvc2VSb3RhdmlydXNQcm9jZWR1cmUucGVyZm9ybWVkLmVhcmxpZXN0ICggKSBkdXJpbmcgZGF5IG9mICJWYWNjaW5lIEFkbWluaXN0cmF0aW9uIEludGVydmFsIC0gNDIgRGF5cyB1cCB0byAyIFllYXJzIE9sZCIKICAgICAgICByZXR1cm4gVHdvRG9zZVJvdGF2aXJ1c1Byb2NlZHVyZS5wZXJmb3JtZWQKICAgICkKCmRlZmluZSAiUm90YXZpcnVzIDIgb3IgMyBEb3NlIEltbXVuaXphdGlvbnMiOgogICJSb3RhdmlydXMgMiBEb3NlIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyIKICAgIHVuaW9uICJSb3RhdmlydXMgMyBEb3NlIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyIKCmRlZmluZSAiUm90YXZpcnVzIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHJvdGF2aXJ1cyB2YWNjaW5lIChkaXNvcmRlcikiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkFuYXBoeWxheGlzIGNhdXNlZCBieSByb3RhdmlydXMgdmFjY2luZSAoZGlzb3JkZXIpIl0KICAoICggW0ZISVIuQ29uZGl0aW9uOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHJvdGF2aXJ1cyB2YWNjaW5lIChkaXNvcmRlcikiXSApLnZlcmlmaWVkICggKSApIFJvdGF2aXJ1c0NvbmRpdGlvbnMKICAgIHdoZXJlIGRhdGUgZnJvbSBzdGFydCBvZiBSb3RhdmlydXNDb25kaXRpb25zLnByZXZhbGVuY2VJbnRlcnZhbCAoICkgZHVyaW5nIGRheSBvZiAiRmlyc3QgVHdvIFllYXJzIgoKZGVmaW5lICJSb3RhdmlydXMgMyBEb3NlIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyI6CiAgKCAoICggW0ltbXVuaXphdGlvbjogIlJvdGF2aXJ1cyBWYWNjaW5lICgzIGRvc2Ugc2NoZWR1bGUpIl0gKS5pc0ltbXVuaXphdGlvbkFkbWluaXN0ZXJlZCAoICkgKSBUaHJlZURvc2VSb3RhdmlydXNWYWNjaW5lCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBUaHJlZURvc2VSb3RhdmlydXNWYWNjaW5lLm9jY3VycmVuY2UuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgIlZhY2NpbmUgQWRtaW5pc3RyYXRpb24gSW50ZXJ2YWwgLSA0MiBEYXlzIHVwIHRvIDIgWWVhcnMgT2xkIgogICAgICByZXR1cm4gVGhyZWVEb3NlUm90YXZpcnVzVmFjY2luZS5vY2N1cnJlbmNlCiAgKQogICAgdW5pb24gKCAoICggW1Byb2NlZHVyZTogIlJvdGF2aXJ1cyBWYWNjaW5lICgzIGRvc2Ugc2NoZWR1bGUpIEFkbWluaXN0ZXJlZCJdICkuaXNQcm9jZWR1cmVQZXJmb3JtZWQgKCApICkgVGhyZWVEb3NlUm90YXZpcnVzQWRtaW5pc3RlcmVkCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIFRocmVlRG9zZVJvdGF2aXJ1c0FkbWluaXN0ZXJlZC5wZXJmb3JtZWQuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgIlZhY2NpbmUgQWRtaW5pc3RyYXRpb24gSW50ZXJ2YWwgLSA0MiBEYXlzIHVwIHRvIDIgWWVhcnMgT2xkIgogICAgICAgIHJldHVybiBUaHJlZURvc2VSb3RhdmlydXNBZG1pbmlzdGVyZWQucGVyZm9ybWVkCiAgICApCgovL0ZsdQoKCmRlZmluZSAiSW5mbHVlbnphIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyI6CiAgKCAoICggW0ltbXVuaXphdGlvbjogIkNoaWxkIEluZmx1ZW56YSBWYWNjaW5lIl0gKS5pc0ltbXVuaXphdGlvbkFkbWluaXN0ZXJlZCAoICkgKSBJbmZsdWVuemFWYWNjaW5lCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBJbmZsdWVuemFWYWNjaW5lLm9jY3VycmVuY2UuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgIlZhY2NpbmUgQWRtaW5pc3RyYXRpb24gSW50ZXJ2YWwgLSAxODAgRGF5cyB1cCB0byAyIFllYXJzIE9sZCIKICAgICAgcmV0dXJuIEluZmx1ZW56YVZhY2NpbmUub2NjdXJyZW5jZQogICkKICAgIHVuaW9uICggKCAoIFtQcm9jZWR1cmU6ICJDaGlsZCBJbmZsdWVuemEgVmFjY2luZSBBZG1pbmlzdGVyZWQiXSApLmlzUHJvY2VkdXJlUGVyZm9ybWVkICggKSApIEluZmx1ZW56YUFkbWluaXN0cmF0aW9uCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIEluZmx1ZW56YUFkbWluaXN0cmF0aW9uLnBlcmZvcm1lZC5lYXJsaWVzdCAoICkgZHVyaW5nIGRheSBvZiAiVmFjY2luZSBBZG1pbmlzdHJhdGlvbiBJbnRlcnZhbCAtIDE4MCBEYXlzIHVwIHRvIDIgWWVhcnMgT2xkIgogICAgICAgIHJldHVybiBJbmZsdWVuemFBZG1pbmlzdHJhdGlvbi5wZXJmb3JtZWQKICAgICkKCmRlZmluZSAiVHdvIEluZmx1ZW56YSBWYWNjaW5hdGlvbnMiOgogIGZyb20KICAgICJJbmZsdWVuemEgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIiBGbHVWYWNjaW5hdGlvbjEsCiAgICAiSW5mbHVlbnphIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyIgRmx1VmFjY2luYXRpb24yCiAgICB3aGVyZSBkYXRlIGZyb20gRmx1VmFjY2luYXRpb24yLmVhcmxpZXN0ICggKSAxIGRheSBvciBtb3JlIGFmdGVyIGRhdGUgZnJvbSBGbHVWYWNjaW5hdGlvbjEuZWFybGllc3QgKCApCiAgICByZXR1cm4gZGF0ZSBmcm9tIEZsdVZhY2NpbmF0aW9uMS5lYXJsaWVzdCAoICkKCmRlZmluZSAiSW5mbHVlbnphIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEluZmx1ZW56YSB2aXJ1cyBhbnRpZ2VuIChkaXNvcmRlcikiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBJbmZsdWVuemEgdmlydXMgYW50aWdlbiAoZGlzb3JkZXIpIl0KICAoICggW0ZISVIuQ29uZGl0aW9uOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEluZmx1ZW56YSB2aXJ1cyBhbnRpZ2VuIChkaXNvcmRlcikiXSApLnZlcmlmaWVkICggKSApIEluZmx1ZW56YUNvbmRpdGlvbnMKICAgIHdoZXJlIGRhdGUgZnJvbSBzdGFydCBvZiBJbmZsdWVuemFDb25kaXRpb25zLnByZXZhbGVuY2VJbnRlcnZhbCAoICkgZHVyaW5nIGRheSBvZiAiRmlyc3QgVHdvIFllYXJzIgoKZGVmaW5lICJUd28gSW5mbHVlbnphIFZhY2NpbmF0aW9ucyBJbmNsdWRpbmcgT25lIExBSVYgVmFjY2luYXRpb24iOgogIGV4aXN0cyAiTEFJViBWYWNjaW5hdGlvbnMiCiAgICBhbmQgZXhpc3RzICJJbmZsdWVuemEgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIgoKZGVmaW5lICJMQUlWIFZhY2NpbmF0aW9ucyI6CiAgKCAoICggW0ltbXVuaXphdGlvbjogIkluZmx1ZW56YSBWaXJ1cyBMQUlWIFZhY2NpbmUiXSApLmlzSW1tdW5pemF0aW9uQWRtaW5pc3RlcmVkICggKSApIExBSVZWYWNjaW5lCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBMQUlWVmFjY2luZS5vY2N1cnJlbmNlLmVhcmxpZXN0ICggKSBkdXJpbmcgZGF5IG9mIEludGVydmFsWyJEYXRlIG9mIFNlY29uZCBCaXJ0aGRheSIsICJEYXRlIG9mIFNlY29uZCBCaXJ0aGRheSJdCiAgICAgIHJldHVybiBkYXRlIGZyb20gTEFJVlZhY2NpbmUub2NjdXJyZW5jZS5lYXJsaWVzdCAoICkKICApCiAgICB1bmlvbiAoICggKCBbUHJvY2VkdXJlOiAiSW5mbHVlbnphIFZpcnVzIExBSVYgVmFjY2luZSBBZG1pbmlzdGVyZWQiXSApLmlzUHJvY2VkdXJlUGVyZm9ybWVkICggKSApIEluZmx1ZW56YUFkbWluaXN0cmF0aW9uCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIEluZmx1ZW56YUFkbWluaXN0cmF0aW9uLnBlcmZvcm1lZC5lYXJsaWVzdCAoICkgZHVyaW5nIGRheSBvZiBJbnRlcnZhbFsiRGF0ZSBvZiBTZWNvbmQgQmlydGhkYXkiLCAiRGF0ZSBvZiBTZWNvbmQgQmlydGhkYXkiXQogICAgICAgIHJldHVybiBkYXRlIGZyb20gSW5mbHVlbnphQWRtaW5pc3RyYXRpb24ucGVyZm9ybWVkLmVhcmxpZXN0ICggKQogICAgKQoKZGVmaW5lICJTREUgRXRobmljaXR5IjoKICBTREUuIlNERSBFdGhuaWNpdHkiCgpkZWZpbmUgIlNERSBQYXllciI6CiAgU0RFLiJTREUgUGF5ZXIiCgpkZWZpbmUgIlNERSBSYWNlIjoKICBTREUuIlNERSBSYWNlIgoKZGVmaW5lICJTREUgU2V4IjoKICBTREUuIlNERSBTZXgi"/>
    <url value="https://madie.cms.gov/Library-CMS117FHIRChildImmunStatus.cql"/>
  </content>
</Library>