{
  "resourceType" : "Library",
  "id" : "CMS117FHIRChildImmunStatus",
  "text" : {
    "status" : "extensions",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n  <table class=\"narrative-table\">\n    <tbody>\n<tr>\n\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\"><a name=\"metadata\"> </a>Metadata</th>\n\n\n</tr>\n\n\n\n\n\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Version</th>\n\n\n\n<td class=\"content-container\">1.1.000</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Status</th>\n\n\n\n<td class=\"content-container\">Draft</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Type</th>\n\n\n\n<td class=\"content-container\">\n    <a href=\"http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html\">http://terminology.hl7.org/CodeSystem/library-type</a>#logic-library\n\n\n</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n\n\n\n\n\n<tr>\n\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\"><a name=\"parameters\"> </a>Parameters</th>\n\n\n</tr>\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Parameter</th>\n\n\n\n<td class=\"content-container\">None</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n  <tr>\n\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\">Library Content</th>\n\n\n</tr>\n  \n    \n    <tr>\n      <th scope=\"row\" class=\"row-header\">CQL Content</th>\n      <td>\n        <a name=\"cql-content\"> </a>\n        <pre style=\"border: none;\" class=\"content-container highlight language-cql\"><code class=\"language-cql\">/*\nNOTE: For use by March 2026 US Realm Connectathon participants for internal use only. Not for use or distribution in commercial products.\n*/\nlibrary CMS117FHIRChildImmunStatus version '1.1.000'\n\nusing USQualityCore version '0.1.0-cibuild'\nusing USCore version '6.1.0-derived'\nusing FHIR version '4.0.1'\n\ninclude hl7.fhir.uv.cql.FHIRHelpers version '4.0.1' called FHIRHelpers\ninclude hl7.fhir.uv.cql.FHIRCommon version '2.0.0' called FHIRCommon\ninclude hl7.fhir.us.cql.USCoreCommon version '2.0.0-ballot' called USCoreCommon\ninclude hl7.fhir.us.cql.USCoreElements version '2.0.0-ballot' called USCoreElements\n\ninclude CQMCommon version '5.1.000' called CQMCommon\ninclude USQualityCoreCommon version '0.1.0-cibuild' called USQualityCoreCommon\ninclude SupplementalDataElements version '6.1.000' called SDE\ninclude Status version '2.1.000' called Status\n\ninclude TJCOverall version '9.1.000' called TJC\ninclude Hospice version '7.1.000' called Hospice\n\ncodesystem &quot;SNOMEDCT&quot;: 'http://snomed.info/sct'\ncodesystem &quot;CPT&quot;: 'http://www.ama-assn.org/go/cpt'\ncodesystem &quot;CVX&quot;: 'http://hl7.org/fhir/sid/cvx'\ncodesystem &quot;ICD10&quot;: 'http://www.cms.gov/Medicare/Coding/ICD10'\n\nvalueset &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'\nvalueset &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'\nvalueset &quot;DTaP Vaccine&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1214'\nvalueset &quot;DTaP Vaccine Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1022'\nvalueset &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'\nvalueset &quot;Hepatitis A&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1024'\nvalueset &quot;Hepatitis A Vaccine&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1215'\nvalueset &quot;Hepatitis A Vaccine Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1041'\nvalueset &quot;Hepatitis B&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1025'\nvalueset &quot;Hepatitis B Vaccine&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1216'\nvalueset &quot;Hepatitis B Vaccine Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1042'\nvalueset &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'\nvalueset &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'\nvalueset &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'\nvalueset &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'\nvalueset &quot;HIV&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.120.12.1003'\nvalueset &quot;Home Healthcare Services&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1016'\nvalueset &quot;Inactivated Polio Vaccine (IPV)&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1219'\nvalueset &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'\nvalueset &quot;Child Influenza Vaccine&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1218'\nvalueset &quot;Child Influenza Vaccine Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1044'\nvalueset &quot;Influenza Virus LAIV Vaccine&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1087'\nvalueset &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'\nvalueset &quot;Intussusception&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.199.12.1056'\nvalueset &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'\nvalueset &quot;Measles&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1053'\nvalueset &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'\nvalueset &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'\nvalueset &quot;Mumps&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1032'\nvalueset &quot;Office Visit&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001'\nvalueset &quot;Virtual Encounter&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1089'\nvalueset &quot;Pneumococcal Conjugate Vaccine&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1221'\nvalueset &quot;Pneumococcal Conjugate Vaccine Administered&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1046'\nvalueset &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'\nvalueset &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'\nvalueset &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'\nvalueset &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'\nvalueset &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'\nvalueset &quot;Rubella&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1037'\nvalueset &quot;Severe Combined Immunodeficiency&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.120.12.1007'\nvalueset &quot;Telephone Visits&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1080'\nvalueset &quot;Varicella Zoster&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1039'\nvalueset &quot;Varicella Zoster Vaccine (VZV)&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.196.12.1170'\nvalueset &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'\n\ncode &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)'\ncode &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)'\ncode &quot;Anaphylaxis caused by rotavirus vaccine (disorder)&quot;: '428331000124103' from &quot;SNOMEDCT&quot; display 'Anaphylaxis caused by rotavirus vaccine (disorder)'\ncode &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'\ncode &quot;rotavirus, live, monovalent vaccine&quot;: '119' from &quot;CVX&quot; display 'rotavirus, live, monovalent vaccine'\ncode &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)'\ncode &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'\ncode &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)'\ncode &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)'\ncode &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)'\ncode &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)'\ncode &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)'\n\nparameter &quot;Measurement Period&quot; Interval&lt;DateTime&gt;\n  default Interval[@2026-01-01T00:00:00.000Z, @2027-01-01T00:00:00.000Z)\n\ncontext Patient\n\ndefine &quot;Initial Population&quot;:\n  AgeInYearsAt(date from \n    end of &quot;Measurement Period&quot;\n  ) = 2\n    and exists ( &quot;Qualifying Encounters&quot; )\n\ndefine &quot;Qualifying Encounters&quot;:\n  ( ( [Encounter: &quot;Office Visit&quot;]\n      union [Encounter: &quot;Home Healthcare Services&quot;]\n      union [Encounter: &quot;Preventive Care, Established Office Visit, 0 to 17&quot;]\n      union [Encounter: &quot;Preventive Care Services, Initial Office Visit, 0 to 17&quot;]\n      union ( [Encounter] E\n          where exists ( ( E.type ) T\n              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;\n          )\n      )\n      union [Encounter: &quot;Virtual Encounter&quot;]\n      union [Encounter: &quot;Telephone Visits&quot;]\n  ).isEncounterPerformed ( ) ) ValidEncounters\n    where ValidEncounters.period during day of &quot;Measurement Period&quot;\n\ndefine &quot;Denominator&quot;:\n  &quot;Initial Population&quot;\n\ndefine &quot;Denominator Exclusions&quot;:\n  Hospice.&quot;Has Hospice Services&quot;\n    or &quot;Has Severe Combined Immunodeficiency&quot;\n    or &quot;Has Immunodeficiency&quot;\n    or &quot;Has HIV&quot;\n    or &quot;Has Lymphoreticular Cancer, Multiple Myeloma or Leukemia&quot;\n    or &quot;Has Intussusception&quot;\n\ndefine &quot;Has Severe Combined Immunodeficiency&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;Severe Combined Immunodeficiency&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Severe Combined Immunodeficiency&quot;]\n  exists ( ( ( [FHIR.Condition: &quot;Severe Combined Immunodeficiency&quot;] ).verified ( ) ) SevereImmuneDisorder\n      where date from start of SevereImmuneDisorder.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n  )\n\ndefine &quot;Has Immunodeficiency&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;Disorders of the Immune System&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Disorders of the Immune System&quot;]\n  exists ( ( ( [FHIR.Condition: &quot;Disorders of the Immune System&quot;] ).verified ( ) ) ImmuneDisorder\n      where date from start of ImmuneDisorder.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n  )\n\ndefine &quot;Has HIV&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;HIV&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;HIV&quot;]\n  exists ( ( ( [FHIR.Condition: &quot;HIV&quot;] ).verified ( ) ) HIVDiagnosis\n      where date from start of HIVDiagnosis.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n  )\n\ndefine &quot;Has Lymphoreticular Cancer, Multiple Myeloma or Leukemia&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;Malignant Neoplasm of Lymphatic and Hematopoietic Tissue&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Malignant Neoplasm of Lymphatic and Hematopoietic Tissue&quot;]\n  exists ( ( ( [FHIR.Condition: &quot;Malignant Neoplasm of Lymphatic and Hematopoietic Tissue&quot;] ).verified ( ) ) LymphaticMalignantNeoplasm\n      where date from start of LymphaticMalignantNeoplasm.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n  )\n\ndefine &quot;Has Intussusception&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;Intussusception&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Intussusception&quot;]\n  exists ( ( ( [FHIR.Condition: &quot;Intussusception&quot;] ).verified ( ) ) IntussusceptionDisorder\n      where date from start of IntussusceptionDisorder.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n  )\n\ndefine &quot;Numerator&quot;:\n  ( exists ( &quot;Four DTaP Vaccinations&quot; )\n      or exists ( &quot;DTaP Numerator Inclusion Conditions&quot; )\n  )\n    and ( exists ( &quot;Three Polio Vaccinations&quot; )\n        or exists ( &quot;Polio Numerator Inclusion Conditions&quot; )\n    )\n    and ( exists ( &quot;One MMR Vaccination&quot; )\n        or exists ( &quot;MMR Numerator Inclusion Conditions&quot; )\n        or ( exists ( &quot;Measles Indicators&quot; )\n            and exists ( &quot;Mumps Indicators&quot; )\n            and exists ( &quot;Rubella Indicators&quot; )\n        )\n    )\n    and ( &quot;Has Appropriate Number of Hib Immunizations&quot;\n        or exists ( &quot;Hib Numerator Inclusion Conditions&quot; )\n    )\n    and ( exists ( &quot;Three Hepatitis B Vaccinations&quot; )\n        or ( exists ( &quot;Meets HepB Vaccination Requirement&quot; )\n            or exists ( &quot;Hepatitis B Numerator Inclusion Conditions&quot; )\n        )\n    )\n    and ( exists ( &quot;One Chicken Pox Vaccination&quot; )\n        or exists ( &quot;Varicella Zoster Numerator Inclusion Conditions&quot; )\n    )\n    and ( exists ( &quot;Four Pneumococcal Conjugate Vaccinations&quot; )\n        or exists ( &quot;Pneumococcal Conjugate Numerator Inclusion Conditions&quot; )\n    )\n    and ( exists ( &quot;One Hepatitis A Vaccinations&quot; )\n        or exists ( &quot;Hepatitis A Numerator Inclusion Conditions&quot; )\n    )\n    and ( &quot;Has Appropriate Number of Rotavirus Immunizations&quot;\n        or exists ( &quot;Rotavirus Numerator Inclusion Conditions&quot; )\n    )\n    and ( exists ( &quot;Two Influenza Vaccinations&quot; )\n        or ( &quot;Two Influenza Vaccinations Including One LAIV Vaccination&quot; )\n        or exists ( &quot;Influenza Numerator Inclusion Conditions&quot; )\n    )\n\ndefine &quot;Vaccine Administration Interval - 180 Days up to 2 Years Old&quot;:\n  Interval[Patient.birthDate + 180 days, &quot;Date of Second Birthday&quot;]\n\ndefine &quot;First Two Years&quot;:\n  Interval[Patient.birthDate, &quot;Date of Second Birthday&quot;]\n\ndefine &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;:\n  Interval[Patient.birthDate + 42 days, &quot;Date of Second Birthday&quot;]\n\ndefine &quot;Date of Second Birthday&quot;:\n  Patient.birthDate + 2 years\n\ndefine &quot;Date of First Birthday&quot;:\n  Patient.birthDate + 1 year\n\ndefine &quot;Date of First Birthday to Date of Second Birthday&quot;:\n  Interval[&quot;Date of First Birthday&quot;, &quot;Date of Second Birthday&quot;]\n\n//DTaP\n\n\ndefine &quot;Four DTaP Vaccinations&quot;:\n  from\n    &quot;DTaP Immunizations or Procedures&quot; DTaPVaccination1,\n    &quot;DTaP Immunizations or Procedures&quot; DTaPVaccination2,\n    &quot;DTaP Immunizations or Procedures&quot; DTaPVaccination3,\n    &quot;DTaP Immunizations or Procedures&quot; DTaPVaccination4\n    where date from DTaPVaccination2.earliest ( ) 1 day or more after day of date from DTaPVaccination1.earliest ( )\n      and date from DTaPVaccination3.earliest ( ) 1 day or more after day of DTaPVaccination2.earliest ( )\n      and date from DTaPVaccination4.earliest ( ) 1 day or more after day of DTaPVaccination3.earliest ( )\n    return all DTaPVaccination1\n\ndefine &quot;DTaP Numerator Inclusion Conditions&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;Anaphylactic Reaction to DTaP Vaccine&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylactic Reaction to DTaP Vaccine&quot;]\n  //     union [ConditionEncounterDiagnosis: &quot;Encephalitis Due to Diphtheria, Tetanus or Pertussis Vaccine&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Encephalitis Due to Diphtheria, Tetanus or Pertussis Vaccine&quot;]\n  ( ( [FHIR.Condition: &quot;Anaphylactic Reaction to DTaP Vaccine&quot;]\n      union [FHIR.Condition: &quot;Encephalitis Due to Diphtheria, Tetanus or Pertussis Vaccine&quot;]\n  ).verified ( ) ) DTaPConditions\n    where date from start of DTaPConditions.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n\ndefine &quot;DTaP Immunizations or Procedures&quot;:\n  ( ( ( [Immunization: &quot;DTaP Vaccine&quot;] ).isImmunizationAdministered ( ) ) DTaPVaccination\n      where date from DTaPVaccination.occurrence.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;\n      return DTaPVaccination.occurrence\n  )\n    union ( ( ( [Procedure: &quot;DTaP Vaccine Administered&quot;] ).isProcedurePerformed ( ) ) DTaPProcedure\n        where date from DTaPProcedure.performed.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;\n        return DTaPProcedure.performed\n    )\n\n//Polio\n\ndefine &quot;Polio Immunizations or Procedures&quot;:\n  ( ( ( [Immunization: &quot;Inactivated Polio Vaccine (IPV)&quot;] ).isImmunizationAdministered ( ) ) PolioVaccination\n      where date from PolioVaccination.occurrence.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;\n      return PolioVaccination.occurrence\n    )\n    union ( ( ( [Procedure: &quot;Inactivated Polio Vaccine (IPV) Administered&quot;] ).isProcedurePerformed ( ) ) PolioProcedure\n        where date from PolioProcedure.performed.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;\n        return PolioProcedure.performed\n    )\n\ndefine &quot;Three Polio Vaccinations&quot;:\n  from\n    &quot;Polio Immunizations or Procedures&quot; PolioVaccination1,\n    &quot;Polio Immunizations or Procedures&quot; PolioVaccination2,\n    &quot;Polio Immunizations or Procedures&quot; PolioVaccination3\n    where date from PolioVaccination2.earliest ( ) 1 day or more after date from PolioVaccination1.earliest ( )\n      and date from PolioVaccination3.earliest ( ) 1 day or more after date from PolioVaccination2.earliest ( )\n    return date from PolioVaccination1.earliest ( )\n\n\ndefine &quot;Polio Numerator Inclusion Conditions&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by vaccine product containing human poliovirus antigen (disorder)&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by vaccine product containing human poliovirus antigen (disorder)&quot;]\n  ( ( [FHIR.Condition: &quot;Anaphylaxis caused by vaccine product containing human poliovirus antigen (disorder)&quot;] ).verified ( ) ) PolioConditions\n    where date from start of PolioConditions.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n\n//MMR\n\n\ndefine &quot;One MMR Vaccination&quot;:\n  ( ( ( [Immunization: &quot;Measles, Mumps and Rubella (MMR) Vaccine&quot;] ).isImmunizationAdministered ( ) ) MMRVaccination\n      where date from MMRVaccination.occurrence.earliest ( ) during &quot;Date of First Birthday to Date of Second Birthday&quot;\n      return date from MMRVaccination.occurrence.earliest ( )\n  )\n    union ( ( ( [Procedure: &quot;Measles, Mumps and Rubella (MMR) Vaccine Administered&quot;] ).isProcedurePerformed ( ) ) MMRProcedure\n        where date from MMRProcedure.performed.earliest ( ) during &quot;Date of First Birthday to Date of Second Birthday&quot;\n        return date from MMRProcedure.performed.earliest ( )\n    )\n\ndefine &quot;Measles Indicators&quot;:\n  ( ( [ConditionEncounterDiagnosis: &quot;Measles&quot;]\n      union [ConditionEncounterDiagnosis: &quot;Measles&quot;]\n  ).verified ( ) ) MeaslesDiagnosis\n    where date from start of MeaslesDiagnosis.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n\ndefine &quot;Mumps Indicators&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;Mumps&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Mumps&quot;]\n  ( ( [FHIR.Condition: &quot;Mumps&quot;] ).verified ( ) ) MumpsDiagnosis\n    where date from start of MumpsDiagnosis.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n\ndefine &quot;Rubella Indicators&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;Rubella&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Rubella&quot;]\n  ( ( [FHIR.Condition: &quot;Rubella&quot;] ).verified ( ) ) RubellaDiagnosis\n    where date from start of RubellaDiagnosis.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n\ndefine &quot;MMR Numerator Inclusion Conditions&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by vaccine product containing Measles morbillivirus and Mumps orthorubulavirus and Rubella virus antigens (disorder)&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by vaccine product containing Measles morbillivirus and Mumps orthorubulavirus and Rubella virus antigens (disorder)&quot;]\n  ( ( [FHIR.Condition: &quot;Anaphylaxis caused by vaccine product containing Measles morbillivirus and Mumps orthorubulavirus and Rubella virus antigens (disorder)&quot;] ).verified ( ) ) MMRConditions\n    where date from start of MMRConditions.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n\n//HiB\n\n\ndefine &quot;Has Appropriate Number of Hib Immunizations&quot;:\n  exists ( &quot;Hib 3 or 4 Dose Immunizations&quot; HibImmunization //4 dose test\n      \n      let HasFourDose: Count(&quot;Hib 4 Dose Immunizations or Procedures&quot;) &gt; 0\n      where ( HasFourDose //if pt had at least one 4 dose code\n          \n          and Count(distinct(&quot;Hib 3 or 4 Dose Immunizations&quot; HibVaccinations\n                return date from HibVaccinations.earliest()\n            )\n          ) &gt;= 4 //pt must have 4 regimens (e.g., 3,3,4,4 or 4,3,4,4)\n      \n      )\n        or ( HasFourDose is false //if pt did not have at least one 4 dose code\n            \n            and Count(distinct(&quot;Hib 3 or 4 Dose Immunizations&quot; HibVaccinations\n                  return date from HibVaccinations.earliest()\n              )\n            ) &gt;= 3 //pt must have 3 regimens of 3 dose codes\n        \n        )\n  )\n\ndefine &quot;Hib Numerator Inclusion Conditions&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by vaccine product containing only Haemophilus influenzae type b antigen (disorder)&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by vaccine product containing only Haemophilus influenzae type b antigen (disorder)&quot;]\n  ( ( [FHIR.Condition: &quot;Anaphylaxis caused by vaccine product containing only Haemophilus influenzae type b antigen (disorder)&quot;] ).verified ( ) ) HibReaction\n    where date from start of HibReaction.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n\ndefine &quot;Hib 3 Dose Immunizations or Procedures&quot;:\n  ( ( ( [Immunization: &quot;Hib Vaccine (3 dose schedule)&quot;] ).isImmunizationAdministered ( ) ) ThreeDoseHibVaccine\n      where date from ThreeDoseHibVaccine.occurrence.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;\n      return ThreeDoseHibVaccine.occurrence\n  )\n    union ( ( ( [Procedure: &quot;Hib Vaccine (3 dose schedule) Administered&quot;] ).isProcedurePerformed ( ) ) ThreeDoseHibProcedure\n        where date from ThreeDoseHibProcedure.performed.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;\n        return ThreeDoseHibProcedure.performed\n    )\n\ndefine &quot;Hib 3 or 4 Dose Immunizations&quot;:\n  &quot;Hib 3 Dose Immunizations or Procedures&quot;\n    union &quot;Hib 4 Dose Immunizations or Procedures&quot;\n\ndefine &quot;Hib 4 Dose Immunizations or Procedures&quot;:\n  ( ( ( [Immunization: &quot;Hib Vaccine (4 dose schedule)&quot;] ).isImmunizationAdministered ( ) ) HibVaccine\n      where date from HibVaccine.occurrence.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;\n      return HibVaccine.occurrence\n  )\n    union ( ( ( [Procedure: &quot;Hib Vaccine (4 dose schedule) Administered&quot;] ).isProcedurePerformed ( ) ) HibProcedure\n        where date from HibProcedure.performed.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;\n        return HibProcedure.performed\n    )\n\n//HepB\n\n\ndefine &quot;Hepatitis B Numerator Inclusion Conditions&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by vaccine product containing Hepatitis B virus antigen (disorder)&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by vaccine product containing Hepatitis B virus antigen (disorder)&quot;]\n  //     union [ConditionEncounterDiagnosis: &quot;Hepatitis B&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Hepatitis B&quot;]\n  ( ( [FHIR.Condition: &quot;Anaphylaxis caused by vaccine product containing Hepatitis B virus antigen (disorder)&quot;]\n      union [FHIR.Condition: &quot;Hepatitis B&quot;]\n  ).verified ( ) ) HepBConditions\n    where date from start of HepBConditions.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n\ndefine &quot;Three Hepatitis B Vaccinations&quot;:\n  from\n    &quot;Hepatitis B Immunizations or Procedures&quot; HepatitisBVaccination1,\n    &quot;Hepatitis B Immunizations or Procedures&quot; HepatitisBVaccination2,\n    &quot;Hepatitis B Immunizations or Procedures&quot; HepatitisBVaccination3\n    where date from HepatitisBVaccination2.earliest ( ) 1 day or more after date from HepatitisBVaccination1.earliest ( )\n      and date from HepatitisBVaccination3.earliest ( ) 1 day or more after date from HepatitisBVaccination2.earliest ( )\n    return date from HepatitisBVaccination1.earliest ( )\n\ndefine &quot;Hepatitis B Immunizations or Procedures&quot;:\n  ( ( ( [Immunization: &quot;Hepatitis B Vaccine&quot;] ).isImmunizationAdministered ( ) ) HepatitisBVaccination\n      where date from HepatitisBVaccination.occurrence.earliest ( ) during day of &quot;First Two Years&quot;\n      return HepatitisBVaccination.occurrence\n  )\n    union ( ( ( [Procedure: &quot;Hepatitis B Vaccine Administered&quot;] ).isProcedurePerformed ( ) ) HepatitisBProcedure\n        where date from HepatitisBProcedure.performed.earliest ( ) during day of &quot;First Two Years&quot;\n        return HepatitisBProcedure.performed\n    )\n\ndefine &quot;Meets HepB Vaccination Requirement&quot;:\n  from\n    &quot;Hepatitis B Immunizations or Procedures&quot; HepatitisBVaccination1,\n    &quot;Hepatitis B Immunizations or Procedures&quot; HepatitisBVaccination2,\n    &quot;NewBorn Vaccine Requirement&quot; NewBornVaccine3\n    where date from HepatitisBVaccination2.earliest ( ) 1 day or more after date from HepatitisBVaccination1.earliest ( )\n      and date from HepatitisBVaccination1.earliest ( ) 1 day or more after date from NewBornVaccine3.earliest ( )\n      and date from HepatitisBVaccination2.earliest ( ) 1 day or more after date from NewBornVaccine3.earliest ( )\n    return date from HepatitisBVaccination1.earliest ( )\n\ndefine &quot;NewBorn Vaccine Requirement&quot;:\n  ( ( [Procedure: &quot;Introduction of Serum, Toxoid and Vaccine into Muscle, Percutaneous Approach&quot;] ).isProcedurePerformed ( ) ) NewBornVaccine\n    where date from NewBornVaccine.performed.earliest ( ) during day of Interval[Patient.birthDate, Patient.birthDate + 7 days]\n    return NewBornVaccine.performed\n\n//VZV\n\n\ndefine &quot;One Chicken Pox Vaccination&quot;:\n  ( ( ( [Immunization: &quot;Varicella Zoster Vaccine (VZV)&quot;] ).isImmunizationAdministered ( ) ) ChickenPoxVaccination\n      where date from ChickenPoxVaccination.occurrence.earliest ( ) during &quot;Date of First Birthday to Date of Second Birthday&quot;\n      return date from ChickenPoxVaccination.occurrence.earliest ( )\n  )\n    union ( ( ( [Procedure: &quot;Varicella Zoster Vaccine (VZV) Administered&quot;] ).isProcedurePerformed ( ) ) ChickenPoxProcedure\n        where date from ChickenPoxProcedure.performed.earliest ( ) during &quot;Date of First Birthday to Date of Second Birthday&quot;\n        return date from ChickenPoxProcedure.performed.earliest ( )\n    )\n\ndefine &quot;Varicella Zoster Numerator Inclusion Conditions&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;Varicella Zoster&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Varicella Zoster&quot;]\n  //     union [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by vaccine containing Human alphaherpesvirus 3 antigen (disorder)&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by vaccine containing Human alphaherpesvirus 3 antigen (disorder)&quot;]\n  ( ( [FHIR.Condition: &quot;Varicella Zoster&quot;]\n      union [FHIR.Condition: &quot;Anaphylaxis caused by vaccine containing Human alphaherpesvirus 3 antigen (disorder)&quot;]\n  ).verified ( ) ) VaricellaZoster\n    where date from start of VaricellaZoster.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n\n//PCV\n\n\ndefine &quot;Four Pneumococcal Conjugate Vaccinations&quot;:\n  from\n    &quot;Pneumococcal Conjugate Immunizations or Procedures&quot; PneumococcalVaccination1,\n    &quot;Pneumococcal Conjugate Immunizations or Procedures&quot; PneumococcalVaccination2,\n    &quot;Pneumococcal Conjugate Immunizations or Procedures&quot; PneumococcalVaccination3,\n    &quot;Pneumococcal Conjugate Immunizations or Procedures&quot; PneumococcalVaccination4\n    where date from PneumococcalVaccination2.earliest ( ) 1 day or more after date from PneumococcalVaccination1.earliest ( )\n      and date from PneumococcalVaccination3.earliest ( ) 1 day or more after date from PneumococcalVaccination2.earliest ( )\n      and date from PneumococcalVaccination4.earliest ( ) 1 day or more after date from PneumococcalVaccination3.earliest ( )\n    return date from PneumococcalVaccination1.earliest ( )\n\ndefine &quot;Pneumococcal Conjugate Immunizations or Procedures&quot;:\n  ( ( ( [Immunization: &quot;Pneumococcal Conjugate Vaccine&quot;] ).isImmunizationAdministered ( ) ) PneumococcalVaccination\n      where date from PneumococcalVaccination.occurrence.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;\n      return PneumococcalVaccination.occurrence\n  )\n    union ( ( ( [Procedure: &quot;Pneumococcal Conjugate Vaccine Administered&quot;] ).isProcedurePerformed ( ) ) PneumococcalProcedure\n        where date from PneumococcalProcedure.performed.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;\n        return PneumococcalProcedure.performed\n    )\n\ndefine &quot;Pneumococcal Conjugate Numerator Inclusion Conditions&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by vaccine product containing Streptococcus pneumoniae antigen (disorder)&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by vaccine product containing Streptococcus pneumoniae antigen (disorder)&quot;]\n  ( ( [FHIR.Condition: &quot;Anaphylaxis caused by vaccine product containing Streptococcus pneumoniae antigen (disorder)&quot;] ).verified ( ) ) PneumococcalReaction\n    where date from start of PneumococcalReaction.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n\n//HepA\n\n\ndefine &quot;One Hepatitis A Vaccinations&quot;:\n  ( ( ( [Immunization: &quot;Hepatitis A Vaccine&quot;] ).isImmunizationAdministered ( ) ) HepatitisAVaccination\n      where date from HepatitisAVaccination.occurrence.earliest ( ) during &quot;Date of First Birthday to Date of Second Birthday&quot;\n      return date from HepatitisAVaccination.occurrence.earliest ( )\n  )\n    union ( ( ( [Procedure: &quot;Hepatitis A Vaccine Administered&quot;] ).isProcedurePerformed ( ) ) HepatitisAProcedure\n        where date from HepatitisAProcedure.performed.earliest ( ) during &quot;Date of First Birthday to Date of Second Birthday&quot;\n        return date from HepatitisAProcedure.performed.earliest ( )\n    )\n\ndefine &quot;Hepatitis A Numerator Inclusion Conditions&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;Hepatitis A&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Hepatitis A&quot;]\n  //     union [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by vaccine product containing Hepatitis A virus antigen (disorder)&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by vaccine product containing Hepatitis A virus antigen (disorder)&quot;]\n  ( ( [FHIR.Condition: &quot;Hepatitis A&quot;]\n      union [FHIR.Condition: &quot;Anaphylaxis caused by vaccine product containing Hepatitis A virus antigen (disorder)&quot;]\n  ).verified ( ) ) HepatitisADiagnosis\n    where date from start of HepatitisADiagnosis.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n\n//RV\n\n\ndefine &quot;Has Appropriate Number of Rotavirus Immunizations&quot;:\n  exists ( &quot;Rotavirus 2 or 3 Dose Immunizations&quot; RotavirusImmunization\n      let HasThreeDose: Count(&quot;Rotavirus 3 Dose Immunizations or Procedures&quot;) &gt; 0\n      where ( HasThreeDose\n          and Count(distinct(&quot;Rotavirus 2 or 3 Dose Immunizations&quot; RotavirusVaccinations\n                return date from RotavirusVaccinations.earliest()\n            )\n          ) &gt;= 3\n      )\n        or ( HasThreeDose is false\n            and Count(distinct(&quot;Rotavirus 2 or 3 Dose Immunizations&quot; RotavirusVaccinations\n                  return date from RotavirusVaccinations.earliest()\n              )\n            ) &gt;= 2\n        )\n  )\n\ndefine &quot;Rotavirus 2 Dose Immunizations or Procedures&quot;:\n  ( ( ( [Immunization: &quot;rotavirus, live, monovalent vaccine&quot;] ).isImmunizationAdministered ( ) ) TwoDoseRotavirusVaccine\n      where date from TwoDoseRotavirusVaccine.occurrence.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;\n      return TwoDoseRotavirusVaccine.occurrence\n  )\n    union ( ( ( [Procedure: &quot;Rotavirus Vaccine (2 dose schedule) Administered&quot;] ).isProcedurePerformed ( ) ) TwoDoseRotavirusProcedure\n        where date from TwoDoseRotavirusProcedure.performed.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;\n        return TwoDoseRotavirusProcedure.performed\n    )\n\ndefine &quot;Rotavirus 2 or 3 Dose Immunizations&quot;:\n  &quot;Rotavirus 2 Dose Immunizations or Procedures&quot;\n    union &quot;Rotavirus 3 Dose Immunizations or Procedures&quot;\n\ndefine &quot;Rotavirus Numerator Inclusion Conditions&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by rotavirus vaccine (disorder)&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by rotavirus vaccine (disorder)&quot;]\n  ( ( [FHIR.Condition: &quot;Anaphylaxis caused by rotavirus vaccine (disorder)&quot;] ).verified ( ) ) RotavirusConditions\n    where date from start of RotavirusConditions.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n\ndefine &quot;Rotavirus 3 Dose Immunizations or Procedures&quot;:\n  ( ( ( [Immunization: &quot;Rotavirus Vaccine (3 dose schedule)&quot;] ).isImmunizationAdministered ( ) ) ThreeDoseRotavirusVaccine\n      where date from ThreeDoseRotavirusVaccine.occurrence.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;\n      return ThreeDoseRotavirusVaccine.occurrence\n  )\n    union ( ( ( [Procedure: &quot;Rotavirus Vaccine (3 dose schedule) Administered&quot;] ).isProcedurePerformed ( ) ) ThreeDoseRotavirusAdministered\n        where date from ThreeDoseRotavirusAdministered.performed.earliest ( ) during day of &quot;Vaccine Administration Interval - 42 Days up to 2 Years Old&quot;\n        return ThreeDoseRotavirusAdministered.performed\n    )\n\n//Flu\n\n\ndefine &quot;Influenza Immunizations or Procedures&quot;:\n  ( ( ( [Immunization: &quot;Child Influenza Vaccine&quot;] ).isImmunizationAdministered ( ) ) InfluenzaVaccine\n      where date from InfluenzaVaccine.occurrence.earliest ( ) during day of &quot;Vaccine Administration Interval - 180 Days up to 2 Years Old&quot;\n      return InfluenzaVaccine.occurrence\n  )\n    union ( ( ( [Procedure: &quot;Child Influenza Vaccine Administered&quot;] ).isProcedurePerformed ( ) ) InfluenzaAdministration\n        where date from InfluenzaAdministration.performed.earliest ( ) during day of &quot;Vaccine Administration Interval - 180 Days up to 2 Years Old&quot;\n        return InfluenzaAdministration.performed\n    )\n\ndefine &quot;Two Influenza Vaccinations&quot;:\n  from\n    &quot;Influenza Immunizations or Procedures&quot; FluVaccination1,\n    &quot;Influenza Immunizations or Procedures&quot; FluVaccination2\n    where date from FluVaccination2.earliest ( ) 1 day or more after date from FluVaccination1.earliest ( )\n    return date from FluVaccination1.earliest ( )\n\ndefine &quot;Influenza Numerator Inclusion Conditions&quot;:\n  // [E-13] base FHIR.Condition retrieve (defect-tracking/engine-issues.md E-13)\n  // Original:\n  //   [ConditionEncounterDiagnosis: &quot;Anaphylaxis caused by vaccine product containing Influenza virus antigen (disorder)&quot;]\n  //     union [ConditionProblemsHealthConcerns: &quot;Anaphylaxis caused by vaccine product containing Influenza virus antigen (disorder)&quot;]\n  ( ( [FHIR.Condition: &quot;Anaphylaxis caused by vaccine product containing Influenza virus antigen (disorder)&quot;] ).verified ( ) ) InfluenzaConditions\n    where date from start of InfluenzaConditions.prevalenceInterval ( ) during day of &quot;First Two Years&quot;\n\ndefine &quot;Two Influenza Vaccinations Including One LAIV Vaccination&quot;:\n  exists &quot;LAIV Vaccinations&quot;\n    and exists &quot;Influenza Immunizations or Procedures&quot;\n\ndefine &quot;LAIV Vaccinations&quot;:\n  ( ( ( [Immunization: &quot;Influenza Virus LAIV Vaccine&quot;] ).isImmunizationAdministered ( ) ) LAIVVaccine\n      where date from LAIVVaccine.occurrence.earliest ( ) during day of Interval[&quot;Date of Second Birthday&quot;, &quot;Date of Second Birthday&quot;]\n      return date from LAIVVaccine.occurrence.earliest ( )\n  )\n    union ( ( ( [Procedure: &quot;Influenza Virus LAIV Vaccine Administered&quot;] ).isProcedurePerformed ( ) ) InfluenzaAdministration\n        where date from InfluenzaAdministration.performed.earliest ( ) during day of Interval[&quot;Date of Second Birthday&quot;, &quot;Date of Second Birthday&quot;]\n        return date from InfluenzaAdministration.performed.earliest ( )\n    )\n\ndefine &quot;SDE Ethnicity&quot;:\n  SDE.&quot;SDE Ethnicity&quot;\n\ndefine &quot;SDE Payer&quot;:\n  SDE.&quot;SDE Payer&quot;\n\ndefine &quot;SDE Race&quot;:\n  SDE.&quot;SDE Race&quot;\n\ndefine &quot;SDE Sex&quot;:\n  SDE.&quot;SDE Sex&quot;</code></pre>\n      </td>\n    </tr>\n    \n  \n\n\n\n<tr>\n  <th colspan=\"2\" scope=\"row\" class=\"row-header\">Generated using version 0.5.6 of the sample-content-ig Liquid templates</th>\n</tr>\n\n    </tbody>\n  </table>\n</div>"
  },
  "extension" : [{
    "url" : "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-softwaresystem",
    "valueReference" : {
      "reference" : "Device/cqf-tooling"
    }
  }],
  "url" : "https://madie.cms.gov/Library/CMS117FHIRChildImmunStatus",
  "version" : "1.1.000",
  "name" : "CMS117FHIRChildImmunStatus",
  "status" : "draft",
  "type" : {
    "coding" : [{
      "system" : "http://terminology.hl7.org/CodeSystem/library-type",
      "code" : "logic-library"
    }]
  },
  "date" : "2026-09-19T16:31:14+00:00",
  "content" : [{
    "contentType" : "text/cql",
    "data" : "LyoKTk9URTogRm9yIHVzZSBieSBNYXJjaCAyMDI2IFVTIFJlYWxtIENvbm5lY3RhdGhvbiBwYXJ0aWNpcGFudHMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBOb3QgZm9yIHVzZSBvciBkaXN0cmlidXRpb24gaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4KKi8KbGlicmFyeSBDTVMxMTdGSElSQ2hpbGRJbW11blN0YXR1cyB2ZXJzaW9uICcxLjEuMDAwJwoKdXNpbmcgVVNRdWFsaXR5Q29yZSB2ZXJzaW9uICcwLjEuMC1jaWJ1aWxkJwp1c2luZyBVU0NvcmUgdmVyc2lvbiAnNi4xLjAtZGVyaXZlZCcKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgaGw3LmZoaXIudXYuY3FsLkZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJyBjYWxsZWQgRkhJUkhlbHBlcnMKaW5jbHVkZSBobDcuZmhpci51di5jcWwuRkhJUkNvbW1vbiB2ZXJzaW9uICcyLjAuMCcgY2FsbGVkIEZISVJDb21tb24KaW5jbHVkZSBobDcuZmhpci51cy5jcWwuVVNDb3JlQ29tbW9uIHZlcnNpb24gJzIuMC4wLWJhbGxvdCcgY2FsbGVkIFVTQ29yZUNvbW1vbgppbmNsdWRlIGhsNy5maGlyLnVzLmNxbC5VU0NvcmVFbGVtZW50cyB2ZXJzaW9uICcyLjAuMC1iYWxsb3QnIGNhbGxlZCBVU0NvcmVFbGVtZW50cwoKaW5jbHVkZSBDUU1Db21tb24gdmVyc2lvbiAnNS4xLjAwMCcgY2FsbGVkIENRTUNvbW1vbgppbmNsdWRlIFVTUXVhbGl0eUNvcmVDb21tb24gdmVyc2lvbiAnMC4xLjAtY2lidWlsZCcgY2FsbGVkIFVTUXVhbGl0eUNvcmVDb21tb24KaW5jbHVkZSBTdXBwbGVtZW50YWxEYXRhRWxlbWVudHMgdmVyc2lvbiAnNi4xLjAwMCcgY2FsbGVkIFNERQppbmNsdWRlIFN0YXR1cyB2ZXJzaW9uICcyLjEuMDAwJyBjYWxsZWQgU3RhdHVzCgppbmNsdWRlIFRKQ092ZXJhbGwgdmVyc2lvbiAnOS4xLjAwMCcgY2FsbGVkIFRKQwppbmNsdWRlIEhvc3BpY2UgdmVyc2lvbiAnNy4xLjAwMCcgY2FsbGVkIEhvc3BpY2UKCmNvZGVzeXN0ZW0gIlNOT01FRENUIjogJ2h0dHA6Ly9zbm9tZWQuaW5mby9zY3QnCmNvZGVzeXN0ZW0gIkNQVCI6ICdodHRwOi8vd3d3LmFtYS1hc3NuLm9yZy9nby9jcHQnCmNvZGVzeXN0ZW0gIkNWWCI6ICdodHRwOi8vaGw3Lm9yZy9maGlyL3NpZC9jdngnCmNvZGVzeXN0ZW0gIklDRDEwIjogJ2h0dHA6Ly93d3cuY21zLmdvdi9NZWRpY2FyZS9Db2RpbmcvSUNEMTAnCgp2YWx1ZXNldCAiQW5hcGh5bGFjdGljIFJlYWN0aW9uIHRvIERUYVAgVmFjY2luZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xOTkuMTIuMTAzMScKdmFsdWVzZXQgIkRpc29yZGVycyBvZiB0aGUgSW1tdW5lIFN5c3RlbSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMjAuMTIuMTAwMScKdmFsdWVzZXQgIkRUYVAgVmFjY2luZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xOTYuMTIuMTIxNCcKdmFsdWVzZXQgIkRUYVAgVmFjY2luZSBBZG1pbmlzdGVyZWQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwMjInCnZhbHVlc2V0ICJFbmNlcGhhbGl0aXMgRHVlIHRvIERpcGh0aGVyaWEsIFRldGFudXMgb3IgUGVydHVzc2lzIFZhY2NpbmUiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTE2NCcKdmFsdWVzZXQgIkhlcGF0aXRpcyBBIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExMC4xMi4xMDI0Jwp2YWx1ZXNldCAiSGVwYXRpdGlzIEEgVmFjY2luZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xOTYuMTIuMTIxNScKdmFsdWVzZXQgIkhlcGF0aXRpcyBBIFZhY2NpbmUgQWRtaW5pc3RlcmVkIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExMC4xMi4xMDQxJwp2YWx1ZXNldCAiSGVwYXRpdGlzIEIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwMjUnCnZhbHVlc2V0ICJIZXBhdGl0aXMgQiBWYWNjaW5lIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjE5Ni4xMi4xMjE2Jwp2YWx1ZXNldCAiSGVwYXRpdGlzIEIgVmFjY2luZSBBZG1pbmlzdGVyZWQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwNDInCnZhbHVlc2V0ICJIaWIgVmFjY2luZSAoMyBkb3NlIHNjaGVkdWxlKSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMTAuMTIuMTA4MycKdmFsdWVzZXQgIkhpYiBWYWNjaW5lICgzIGRvc2Ugc2NoZWR1bGUpIEFkbWluaXN0ZXJlZCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMTAuMTIuMTA4NCcKdmFsdWVzZXQgIkhpYiBWYWNjaW5lICg0IGRvc2Ugc2NoZWR1bGUpIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExMC4xMi4xMDg1Jwp2YWx1ZXNldCAiSGliIFZhY2NpbmUgKDQgZG9zZSBzY2hlZHVsZSkgQWRtaW5pc3RlcmVkIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExMC4xMi4xMDg2Jwp2YWx1ZXNldCAiSElWIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEyMC4xMi4xMDAzJwp2YWx1ZXNldCAiSG9tZSBIZWFsdGhjYXJlIFNlcnZpY2VzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDE2Jwp2YWx1ZXNldCAiSW5hY3RpdmF0ZWQgUG9saW8gVmFjY2luZSAoSVBWKSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xOTYuMTIuMTIxOScKdmFsdWVzZXQgIkluYWN0aXZhdGVkIFBvbGlvIFZhY2NpbmUgKElQVikgQWRtaW5pc3RlcmVkIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExMC4xMi4xMDQ1Jwp2YWx1ZXNldCAiQ2hpbGQgSW5mbHVlbnphIFZhY2NpbmUiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTk2LjEyLjEyMTgnCnZhbHVlc2V0ICJDaGlsZCBJbmZsdWVuemEgVmFjY2luZSBBZG1pbmlzdGVyZWQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwNDQnCnZhbHVlc2V0ICJJbmZsdWVuemEgVmlydXMgTEFJViBWYWNjaW5lIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExMC4xMi4xMDg3Jwp2YWx1ZXNldCAiSW5mbHVlbnphIFZpcnVzIExBSVYgVmFjY2luZSBBZG1pbmlzdGVyZWQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwODgnCnZhbHVlc2V0ICJJbnR1c3N1c2NlcHRpb24iOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTk5LjEyLjEwNTYnCnZhbHVlc2V0ICJNYWxpZ25hbnQgTmVvcGxhc20gb2YgTHltcGhhdGljIGFuZCBIZW1hdG9wb2lldGljIFRpc3N1ZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDguMTIuMTAwOScKdmFsdWVzZXQgIk1lYXNsZXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwNTMnCnZhbHVlc2V0ICJNZWFzbGVzLCBNdW1wcyBhbmQgUnViZWxsYSAoTU1SKSBWYWNjaW5lIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjE5Ni4xMi4xMjI0Jwp2YWx1ZXNldCAiTWVhc2xlcywgTXVtcHMgYW5kIFJ1YmVsbGEgKE1NUikgVmFjY2luZSBBZG1pbmlzdGVyZWQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwMzEnCnZhbHVlc2V0ICJNdW1wcyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMTAuMTIuMTAzMicKdmFsdWVzZXQgIk9mZmljZSBWaXNpdCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTAwMScKdmFsdWVzZXQgIlZpcnR1YWwgRW5jb3VudGVyIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDg5Jwp2YWx1ZXNldCAiUG5ldW1vY29jY2FsIENvbmp1Z2F0ZSBWYWNjaW5lIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjE5Ni4xMi4xMjIxJwp2YWx1ZXNldCAiUG5ldW1vY29jY2FsIENvbmp1Z2F0ZSBWYWNjaW5lIEFkbWluaXN0ZXJlZCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMTAuMTIuMTA0NicKdmFsdWVzZXQgIlByZXZlbnRpdmUgQ2FyZSBTZXJ2aWNlcywgSW5pdGlhbCBPZmZpY2UgVmlzaXQsIDAgdG8gMTciOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwMjInCnZhbHVlc2V0ICJQcmV2ZW50aXZlIENhcmUsIEVzdGFibGlzaGVkIE9mZmljZSBWaXNpdCwgMCB0byAxNyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTAyNCcKdmFsdWVzZXQgIlJvdGF2aXJ1cyBWYWNjaW5lICgyIGRvc2Ugc2NoZWR1bGUpIEFkbWluaXN0ZXJlZCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMTAuMTIuMTA0OCcKdmFsdWVzZXQgIlJvdGF2aXJ1cyBWYWNjaW5lICgzIGRvc2Ugc2NoZWR1bGUpIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjE5Ni4xMi4xMjIzJwp2YWx1ZXNldCAiUm90YXZpcnVzIFZhY2NpbmUgKDMgZG9zZSBzY2hlZHVsZSkgQWRtaW5pc3RlcmVkIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExMC4xMi4xMDQ3Jwp2YWx1ZXNldCAiUnViZWxsYSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMTAuMTIuMTAzNycKdmFsdWVzZXQgIlNldmVyZSBDb21iaW5lZCBJbW11bm9kZWZpY2llbmN5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEyMC4xMi4xMDA3Jwp2YWx1ZXNldCAiVGVsZXBob25lIFZpc2l0cyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTA4MCcKdmFsdWVzZXQgIlZhcmljZWxsYSBab3N0ZXIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwMzknCnZhbHVlc2V0ICJWYXJpY2VsbGEgWm9zdGVyIFZhY2NpbmUgKFZaVikiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTk2LjEyLjExNzAnCnZhbHVlc2V0ICJWYXJpY2VsbGEgWm9zdGVyIFZhY2NpbmUgKFZaVikgQWRtaW5pc3RlcmVkIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExMC4xMi4xMDQwJwoKY29kZSAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIG9ubHkgSGFlbW9waGlsdXMgaW5mbHVlbnphZSB0eXBlIGIgYW50aWdlbiAoZGlzb3JkZXIpIjogJzQzMzYyMTAwMDEyNDEwMScgZnJvbSAiU05PTUVEQ1QiIGRpc3BsYXkgJ0FuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBvbmx5IEhhZW1vcGhpbHVzIGluZmx1ZW56YWUgdHlwZSBiIGFudGlnZW4gKGRpc29yZGVyKScKY29kZSAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEhlcGF0aXRpcyBCIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSI6ICc0MjgzMjEwMDAxMjQxMDEnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgSGVwYXRpdGlzIEIgdmlydXMgYW50aWdlbiAoZGlzb3JkZXIpJwpjb2RlICJBbmFwaHlsYXhpcyBjYXVzZWQgYnkgcm90YXZpcnVzIHZhY2NpbmUgKGRpc29yZGVyKSI6ICc0MjgzMzEwMDAxMjQxMDMnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdBbmFwaHlsYXhpcyBjYXVzZWQgYnkgcm90YXZpcnVzIHZhY2NpbmUgKGRpc29yZGVyKScKY29kZSAiT2ZmaWNlIG9yIG90aGVyIG91dHBhdGllbnQgdmlzaXQgZm9yIHRoZSBldmFsdWF0aW9uIGFuZCBtYW5hZ2VtZW50IG9mIGFuIGVzdGFibGlzaGVkIHBhdGllbnQgdGhhdCBtYXkgbm90IHJlcXVpcmUgdGhlIHByZXNlbmNlIG9mIGEgcGh5c2ljaWFuIG9yIG90aGVyIHF1YWxpZmllZCBoZWFsdGggY2FyZSBwcm9mZXNzaW9uYWwiOiAnOTkyMTEnIGZyb20gIkNQVCIgZGlzcGxheSAnT2ZmaWNlIG9yIG90aGVyIG91dHBhdGllbnQgdmlzaXQgZm9yIHRoZSBldmFsdWF0aW9uIGFuZCBtYW5hZ2VtZW50IG9mIGFuIGVzdGFibGlzaGVkIHBhdGllbnQgdGhhdCBtYXkgbm90IHJlcXVpcmUgdGhlIHByZXNlbmNlIG9mIGEgcGh5c2ljaWFuIG9yIG90aGVyIHF1YWxpZmllZCBoZWFsdGggY2FyZSBwcm9mZXNzaW9uYWwnCmNvZGUgInJvdGF2aXJ1cywgbGl2ZSwgbW9ub3ZhbGVudCB2YWNjaW5lIjogJzExOScgZnJvbSAiQ1ZYIiBkaXNwbGF5ICdyb3RhdmlydXMsIGxpdmUsIG1vbm92YWxlbnQgdmFjY2luZScKY29kZSAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEhlcGF0aXRpcyBBIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSI6ICc0NzEzMTEwMDAxMjQxMDMnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgSGVwYXRpdGlzIEEgdmlydXMgYW50aWdlbiAoZGlzb3JkZXIpJwpjb2RlICJJbnRyb2R1Y3Rpb24gb2YgU2VydW0sIFRveG9pZCBhbmQgVmFjY2luZSBpbnRvIE11c2NsZSwgUGVyY3V0YW5lb3VzIEFwcHJvYWNoIjogJzNFMDIzNFonIGZyb20gIklDRDEwIiBkaXNwbGF5ICdJbnRyb2R1Y3Rpb24gb2YgU2VydW0sIFRveG9pZCBhbmQgVmFjY2luZSBpbnRvIE11c2NsZSwgUGVyY3V0YW5lb3VzIEFwcHJvYWNoJwpjb2RlICJBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgSW5mbHVlbnphIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSI6ICc0NzEzNjEwMDAxMjQxMDAnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgSW5mbHVlbnphIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKScKY29kZSAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIE1lYXNsZXMgbW9yYmlsbGl2aXJ1cyBhbmQgTXVtcHMgb3J0aG9ydWJ1bGF2aXJ1cyBhbmQgUnViZWxsYSB2aXJ1cyBhbnRpZ2VucyAoZGlzb3JkZXIpIjogJzQ3MTMzMTAwMDEyNDEwOScgZnJvbSAiU05PTUVEQ1QiIGRpc3BsYXkgJ0FuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBNZWFzbGVzIG1vcmJpbGxpdmlydXMgYW5kIE11bXBzIG9ydGhvcnVidWxhdmlydXMgYW5kIFJ1YmVsbGEgdmlydXMgYW50aWdlbnMgKGRpc29yZGVyKScKY29kZSAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIFN0cmVwdG9jb2NjdXMgcG5ldW1vbmlhZSBhbnRpZ2VuIChkaXNvcmRlcikiOiAnNDcxMTQxMDAwMTI0MTAyJyBmcm9tICJTTk9NRURDVCIgZGlzcGxheSAnQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIFN0cmVwdG9jb2NjdXMgcG5ldW1vbmlhZSBhbnRpZ2VuIChkaXNvcmRlciknCmNvZGUgIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBodW1hbiBwb2xpb3ZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSI6ICc0NzEzMjEwMDAxMjQxMDYnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgaHVtYW4gcG9saW92aXJ1cyBhbnRpZ2VuIChkaXNvcmRlciknCmNvZGUgIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIGNvbnRhaW5pbmcgSHVtYW4gYWxwaGFoZXJwZXN2aXJ1cyAzIGFudGlnZW4gKGRpc29yZGVyKSI6ICc0NzEzNDEwMDAxMjQxMDQnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBjb250YWluaW5nIEh1bWFuIGFscGhhaGVycGVzdmlydXMgMyBhbnRpZ2VuIChkaXNvcmRlciknCgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZVRpbWU+CiAgZGVmYXVsdCBJbnRlcnZhbFtAMjAyNi0wMS0wMVQwMDowMDowMC4wMDBaLCBAMjAyNy0wMS0wMVQwMDowMDowMC4wMDBaKQoKY29udGV4dCBQYXRpZW50CgpkZWZpbmUgIkluaXRpYWwgUG9wdWxhdGlvbiI6CiAgQWdlSW5ZZWFyc0F0KGRhdGUgZnJvbSAKICAgIGVuZCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICkgPSAyCiAgICBhbmQgZXhpc3RzICggIlF1YWxpZnlpbmcgRW5jb3VudGVycyIgKQoKZGVmaW5lICJRdWFsaWZ5aW5nIEVuY291bnRlcnMiOgogICggKCBbRW5jb3VudGVyOiAiT2ZmaWNlIFZpc2l0Il0KICAgICAgdW5pb24gW0VuY291bnRlcjogIkhvbWUgSGVhbHRoY2FyZSBTZXJ2aWNlcyJdCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJQcmV2ZW50aXZlIENhcmUsIEVzdGFibGlzaGVkIE9mZmljZSBWaXNpdCwgMCB0byAxNyJdCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJQcmV2ZW50aXZlIENhcmUgU2VydmljZXMsIEluaXRpYWwgT2ZmaWNlIFZpc2l0LCAwIHRvIDE3Il0KICAgICAgdW5pb24gKCBbRW5jb3VudGVyXSBFCiAgICAgICAgICB3aGVyZSBleGlzdHMgKCAoIEUudHlwZSApIFQKICAgICAgICAgICAgICB3aGVyZSBUIH4gIk9mZmljZSBvciBvdGhlciBvdXRwYXRpZW50IHZpc2l0IGZvciB0aGUgZXZhbHVhdGlvbiBhbmQgbWFuYWdlbWVudCBvZiBhbiBlc3RhYmxpc2hlZCBwYXRpZW50IHRoYXQgbWF5IG5vdCByZXF1aXJlIHRoZSBwcmVzZW5jZSBvZiBhIHBoeXNpY2lhbiBvciBvdGhlciBxdWFsaWZpZWQgaGVhbHRoIGNhcmUgcHJvZmVzc2lvbmFsIgogICAgICAgICAgKQogICAgICApCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJWaXJ0dWFsIEVuY291bnRlciJdCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJUZWxlcGhvbmUgVmlzaXRzIl0KICApLmlzRW5jb3VudGVyUGVyZm9ybWVkICggKSApIFZhbGlkRW5jb3VudGVycwogICAgd2hlcmUgVmFsaWRFbmNvdW50ZXJzLnBlcmlvZCBkdXJpbmcgZGF5IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiCgpkZWZpbmUgIkRlbm9taW5hdG9yIjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIgoKZGVmaW5lICJEZW5vbWluYXRvciBFeGNsdXNpb25zIjoKICBIb3NwaWNlLiJIYXMgSG9zcGljZSBTZXJ2aWNlcyIKICAgIG9yICJIYXMgU2V2ZXJlIENvbWJpbmVkIEltbXVub2RlZmljaWVuY3kiCiAgICBvciAiSGFzIEltbXVub2RlZmljaWVuY3kiCiAgICBvciAiSGFzIEhJViIKICAgIG9yICJIYXMgTHltcGhvcmV0aWN1bGFyIENhbmNlciwgTXVsdGlwbGUgTXllbG9tYSBvciBMZXVrZW1pYSIKICAgIG9yICJIYXMgSW50dXNzdXNjZXB0aW9uIgoKZGVmaW5lICJIYXMgU2V2ZXJlIENvbWJpbmVkIEltbXVub2RlZmljaWVuY3kiOgogIC8vIFtFLTEzXSBiYXNlIEZISVIuQ29uZGl0aW9uIHJldHJpZXZlIChkZWZlY3QtdHJhY2tpbmcvZW5naW5lLWlzc3Vlcy5tZCBFLTEzKQogIC8vIE9yaWdpbmFsOgogIC8vICAgW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIlNldmVyZSBDb21iaW5lZCBJbW11bm9kZWZpY2llbmN5Il0KICAvLyAgICAgdW5pb24gW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJTZXZlcmUgQ29tYmluZWQgSW1tdW5vZGVmaWNpZW5jeSJdCiAgZXhpc3RzICggKCAoIFtGSElSLkNvbmRpdGlvbjogIlNldmVyZSBDb21iaW5lZCBJbW11bm9kZWZpY2llbmN5Il0gKS52ZXJpZmllZCAoICkgKSBTZXZlcmVJbW11bmVEaXNvcmRlcgogICAgICB3aGVyZSBkYXRlIGZyb20gc3RhcnQgb2YgU2V2ZXJlSW1tdW5lRGlzb3JkZXIucHJldmFsZW5jZUludGVydmFsICggKSBkdXJpbmcgZGF5IG9mICJGaXJzdCBUd28gWWVhcnMiCiAgKQoKZGVmaW5lICJIYXMgSW1tdW5vZGVmaWNpZW5jeSI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiRGlzb3JkZXJzIG9mIHRoZSBJbW11bmUgU3lzdGVtIl0KICAvLyAgICAgdW5pb24gW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJEaXNvcmRlcnMgb2YgdGhlIEltbXVuZSBTeXN0ZW0iXQogIGV4aXN0cyAoICggKCBbRkhJUi5Db25kaXRpb246ICJEaXNvcmRlcnMgb2YgdGhlIEltbXVuZSBTeXN0ZW0iXSApLnZlcmlmaWVkICggKSApIEltbXVuZURpc29yZGVyCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBzdGFydCBvZiBJbW11bmVEaXNvcmRlci5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKICApCgpkZWZpbmUgIkhhcyBISVYiOgogIC8vIFtFLTEzXSBiYXNlIEZISVIuQ29uZGl0aW9uIHJldHJpZXZlIChkZWZlY3QtdHJhY2tpbmcvZW5naW5lLWlzc3Vlcy5tZCBFLTEzKQogIC8vIE9yaWdpbmFsOgogIC8vICAgW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIkhJViJdCiAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiSElWIl0KICBleGlzdHMgKCAoICggW0ZISVIuQ29uZGl0aW9uOiAiSElWIl0gKS52ZXJpZmllZCAoICkgKSBISVZEaWFnbm9zaXMKICAgICAgd2hlcmUgZGF0ZSBmcm9tIHN0YXJ0IG9mIEhJVkRpYWdub3Npcy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKICApCgpkZWZpbmUgIkhhcyBMeW1waG9yZXRpY3VsYXIgQ2FuY2VyLCBNdWx0aXBsZSBNeWVsb21hIG9yIExldWtlbWlhIjoKICAvLyBbRS0xM10gYmFzZSBGSElSLkNvbmRpdGlvbiByZXRyaWV2ZSAoZGVmZWN0LXRyYWNraW5nL2VuZ2luZS1pc3N1ZXMubWQgRS0xMykKICAvLyBPcmlnaW5hbDoKICAvLyAgIFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJNYWxpZ25hbnQgTmVvcGxhc20gb2YgTHltcGhhdGljIGFuZCBIZW1hdG9wb2lldGljIFRpc3N1ZSJdCiAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiTWFsaWduYW50IE5lb3BsYXNtIG9mIEx5bXBoYXRpYyBhbmQgSGVtYXRvcG9pZXRpYyBUaXNzdWUiXQogIGV4aXN0cyAoICggKCBbRkhJUi5Db25kaXRpb246ICJNYWxpZ25hbnQgTmVvcGxhc20gb2YgTHltcGhhdGljIGFuZCBIZW1hdG9wb2lldGljIFRpc3N1ZSJdICkudmVyaWZpZWQgKCApICkgTHltcGhhdGljTWFsaWduYW50TmVvcGxhc20KICAgICAgd2hlcmUgZGF0ZSBmcm9tIHN0YXJ0IG9mIEx5bXBoYXRpY01hbGlnbmFudE5lb3BsYXNtLnByZXZhbGVuY2VJbnRlcnZhbCAoICkgZHVyaW5nIGRheSBvZiAiRmlyc3QgVHdvIFllYXJzIgogICkKCmRlZmluZSAiSGFzIEludHVzc3VzY2VwdGlvbiI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiSW50dXNzdXNjZXB0aW9uIl0KICAvLyAgICAgdW5pb24gW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJJbnR1c3N1c2NlcHRpb24iXQogIGV4aXN0cyAoICggKCBbRkhJUi5Db25kaXRpb246ICJJbnR1c3N1c2NlcHRpb24iXSApLnZlcmlmaWVkICggKSApIEludHVzc3VzY2VwdGlvbkRpc29yZGVyCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBzdGFydCBvZiBJbnR1c3N1c2NlcHRpb25EaXNvcmRlci5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKICApCgpkZWZpbmUgIk51bWVyYXRvciI6CiAgKCBleGlzdHMgKCAiRm91ciBEVGFQIFZhY2NpbmF0aW9ucyIgKQogICAgICBvciBleGlzdHMgKCAiRFRhUCBOdW1lcmF0b3IgSW5jbHVzaW9uIENvbmRpdGlvbnMiICkKICApCiAgICBhbmQgKCBleGlzdHMgKCAiVGhyZWUgUG9saW8gVmFjY2luYXRpb25zIiApCiAgICAgICAgb3IgZXhpc3RzICggIlBvbGlvIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyIgKQogICAgKQogICAgYW5kICggZXhpc3RzICggIk9uZSBNTVIgVmFjY2luYXRpb24iICkKICAgICAgICBvciBleGlzdHMgKCAiTU1SIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyIgKQogICAgICAgIG9yICggZXhpc3RzICggIk1lYXNsZXMgSW5kaWNhdG9ycyIgKQogICAgICAgICAgICBhbmQgZXhpc3RzICggIk11bXBzIEluZGljYXRvcnMiICkKICAgICAgICAgICAgYW5kIGV4aXN0cyAoICJSdWJlbGxhIEluZGljYXRvcnMiICkKICAgICAgICApCiAgICApCiAgICBhbmQgKCAiSGFzIEFwcHJvcHJpYXRlIE51bWJlciBvZiBIaWIgSW1tdW5pemF0aW9ucyIKICAgICAgICBvciBleGlzdHMgKCAiSGliIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyIgKQogICAgKQogICAgYW5kICggZXhpc3RzICggIlRocmVlIEhlcGF0aXRpcyBCIFZhY2NpbmF0aW9ucyIgKQogICAgICAgIG9yICggZXhpc3RzICggIk1lZXRzIEhlcEIgVmFjY2luYXRpb24gUmVxdWlyZW1lbnQiICkKICAgICAgICAgICAgb3IgZXhpc3RzICggIkhlcGF0aXRpcyBCIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyIgKQogICAgICAgICkKICAgICkKICAgIGFuZCAoIGV4aXN0cyAoICJPbmUgQ2hpY2tlbiBQb3ggVmFjY2luYXRpb24iICkKICAgICAgICBvciBleGlzdHMgKCAiVmFyaWNlbGxhIFpvc3RlciBOdW1lcmF0b3IgSW5jbHVzaW9uIENvbmRpdGlvbnMiICkKICAgICkKICAgIGFuZCAoIGV4aXN0cyAoICJGb3VyIFBuZXVtb2NvY2NhbCBDb25qdWdhdGUgVmFjY2luYXRpb25zIiApCiAgICAgICAgb3IgZXhpc3RzICggIlBuZXVtb2NvY2NhbCBDb25qdWdhdGUgTnVtZXJhdG9yIEluY2x1c2lvbiBDb25kaXRpb25zIiApCiAgICApCiAgICBhbmQgKCBleGlzdHMgKCAiT25lIEhlcGF0aXRpcyBBIFZhY2NpbmF0aW9ucyIgKQogICAgICAgIG9yIGV4aXN0cyAoICJIZXBhdGl0aXMgQSBOdW1lcmF0b3IgSW5jbHVzaW9uIENvbmRpdGlvbnMiICkKICAgICkKICAgIGFuZCAoICJIYXMgQXBwcm9wcmlhdGUgTnVtYmVyIG9mIFJvdGF2aXJ1cyBJbW11bml6YXRpb25zIgogICAgICAgIG9yIGV4aXN0cyAoICJSb3RhdmlydXMgTnVtZXJhdG9yIEluY2x1c2lvbiBDb25kaXRpb25zIiApCiAgICApCiAgICBhbmQgKCBleGlzdHMgKCAiVHdvIEluZmx1ZW56YSBWYWNjaW5hdGlvbnMiICkKICAgICAgICBvciAoICJUd28gSW5mbHVlbnphIFZhY2NpbmF0aW9ucyBJbmNsdWRpbmcgT25lIExBSVYgVmFjY2luYXRpb24iICkKICAgICAgICBvciBleGlzdHMgKCAiSW5mbHVlbnphIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyIgKQogICAgKQoKZGVmaW5lICJWYWNjaW5lIEFkbWluaXN0cmF0aW9uIEludGVydmFsIC0gMTgwIERheXMgdXAgdG8gMiBZZWFycyBPbGQiOgogIEludGVydmFsW1BhdGllbnQuYmlydGhEYXRlICsgMTgwIGRheXMsICJEYXRlIG9mIFNlY29uZCBCaXJ0aGRheSJdCgpkZWZpbmUgIkZpcnN0IFR3byBZZWFycyI6CiAgSW50ZXJ2YWxbUGF0aWVudC5iaXJ0aERhdGUsICJEYXRlIG9mIFNlY29uZCBCaXJ0aGRheSJdCgpkZWZpbmUgIlZhY2NpbmUgQWRtaW5pc3RyYXRpb24gSW50ZXJ2YWwgLSA0MiBEYXlzIHVwIHRvIDIgWWVhcnMgT2xkIjoKICBJbnRlcnZhbFtQYXRpZW50LmJpcnRoRGF0ZSArIDQyIGRheXMsICJEYXRlIG9mIFNlY29uZCBCaXJ0aGRheSJdCgpkZWZpbmUgIkRhdGUgb2YgU2Vjb25kIEJpcnRoZGF5IjoKICBQYXRpZW50LmJpcnRoRGF0ZSArIDIgeWVhcnMKCmRlZmluZSAiRGF0ZSBvZiBGaXJzdCBCaXJ0aGRheSI6CiAgUGF0aWVudC5iaXJ0aERhdGUgKyAxIHllYXIKCmRlZmluZSAiRGF0ZSBvZiBGaXJzdCBCaXJ0aGRheSB0byBEYXRlIG9mIFNlY29uZCBCaXJ0aGRheSI6CiAgSW50ZXJ2YWxbIkRhdGUgb2YgRmlyc3QgQmlydGhkYXkiLCAiRGF0ZSBvZiBTZWNvbmQgQmlydGhkYXkiXQoKLy9EVGFQCgoKZGVmaW5lICJGb3VyIERUYVAgVmFjY2luYXRpb25zIjoKICBmcm9tCiAgICAiRFRhUCBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIERUYVBWYWNjaW5hdGlvbjEsCiAgICAiRFRhUCBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIERUYVBWYWNjaW5hdGlvbjIsCiAgICAiRFRhUCBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIERUYVBWYWNjaW5hdGlvbjMsCiAgICAiRFRhUCBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIERUYVBWYWNjaW5hdGlvbjQKICAgIHdoZXJlIGRhdGUgZnJvbSBEVGFQVmFjY2luYXRpb24yLmVhcmxpZXN0ICggKSAxIGRheSBvciBtb3JlIGFmdGVyIGRheSBvZiBkYXRlIGZyb20gRFRhUFZhY2NpbmF0aW9uMS5lYXJsaWVzdCAoICkKICAgICAgYW5kIGRhdGUgZnJvbSBEVGFQVmFjY2luYXRpb24zLmVhcmxpZXN0ICggKSAxIGRheSBvciBtb3JlIGFmdGVyIGRheSBvZiBEVGFQVmFjY2luYXRpb24yLmVhcmxpZXN0ICggKQogICAgICBhbmQgZGF0ZSBmcm9tIERUYVBWYWNjaW5hdGlvbjQuZWFybGllc3QgKCApIDEgZGF5IG9yIG1vcmUgYWZ0ZXIgZGF5IG9mIERUYVBWYWNjaW5hdGlvbjMuZWFybGllc3QgKCApCiAgICByZXR1cm4gYWxsIERUYVBWYWNjaW5hdGlvbjEKCmRlZmluZSAiRFRhUCBOdW1lcmF0b3IgSW5jbHVzaW9uIENvbmRpdGlvbnMiOgogIC8vIFtFLTEzXSBiYXNlIEZISVIuQ29uZGl0aW9uIHJldHJpZXZlIChkZWZlY3QtdHJhY2tpbmcvZW5naW5lLWlzc3Vlcy5tZCBFLTEzKQogIC8vIE9yaWdpbmFsOgogIC8vICAgW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIkFuYXBoeWxhY3RpYyBSZWFjdGlvbiB0byBEVGFQIFZhY2NpbmUiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkFuYXBoeWxhY3RpYyBSZWFjdGlvbiB0byBEVGFQIFZhY2NpbmUiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiRW5jZXBoYWxpdGlzIER1ZSB0byBEaXBodGhlcmlhLCBUZXRhbnVzIG9yIFBlcnR1c3NpcyBWYWNjaW5lIl0KICAvLyAgICAgdW5pb24gW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJFbmNlcGhhbGl0aXMgRHVlIHRvIERpcGh0aGVyaWEsIFRldGFudXMgb3IgUGVydHVzc2lzIFZhY2NpbmUiXQogICggKCBbRkhJUi5Db25kaXRpb246ICJBbmFwaHlsYWN0aWMgUmVhY3Rpb24gdG8gRFRhUCBWYWNjaW5lIl0KICAgICAgdW5pb24gW0ZISVIuQ29uZGl0aW9uOiAiRW5jZXBoYWxpdGlzIER1ZSB0byBEaXBodGhlcmlhLCBUZXRhbnVzIG9yIFBlcnR1c3NpcyBWYWNjaW5lIl0KICApLnZlcmlmaWVkICggKSApIERUYVBDb25kaXRpb25zCiAgICB3aGVyZSBkYXRlIGZyb20gc3RhcnQgb2YgRFRhUENvbmRpdGlvbnMucHJldmFsZW5jZUludGVydmFsICggKSBkdXJpbmcgZGF5IG9mICJGaXJzdCBUd28gWWVhcnMiCgpkZWZpbmUgIkRUYVAgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIjoKICAoICggKCBbSW1tdW5pemF0aW9uOiAiRFRhUCBWYWNjaW5lIl0gKS5pc0ltbXVuaXphdGlvbkFkbWluaXN0ZXJlZCAoICkgKSBEVGFQVmFjY2luYXRpb24KICAgICAgd2hlcmUgZGF0ZSBmcm9tIERUYVBWYWNjaW5hdGlvbi5vY2N1cnJlbmNlLmVhcmxpZXN0ICggKSBkdXJpbmcgZGF5IG9mICJWYWNjaW5lIEFkbWluaXN0cmF0aW9uIEludGVydmFsIC0gNDIgRGF5cyB1cCB0byAyIFllYXJzIE9sZCIKICAgICAgcmV0dXJuIERUYVBWYWNjaW5hdGlvbi5vY2N1cnJlbmNlCiAgKQogICAgdW5pb24gKCAoICggW1Byb2NlZHVyZTogIkRUYVAgVmFjY2luZSBBZG1pbmlzdGVyZWQiXSApLmlzUHJvY2VkdXJlUGVyZm9ybWVkICggKSApIERUYVBQcm9jZWR1cmUKICAgICAgICB3aGVyZSBkYXRlIGZyb20gRFRhUFByb2NlZHVyZS5wZXJmb3JtZWQuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgIlZhY2NpbmUgQWRtaW5pc3RyYXRpb24gSW50ZXJ2YWwgLSA0MiBEYXlzIHVwIHRvIDIgWWVhcnMgT2xkIgogICAgICAgIHJldHVybiBEVGFQUHJvY2VkdXJlLnBlcmZvcm1lZAogICAgKQoKLy9Qb2xpbwoKZGVmaW5lICJQb2xpbyBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiOgogICggKCAoIFtJbW11bml6YXRpb246ICJJbmFjdGl2YXRlZCBQb2xpbyBWYWNjaW5lIChJUFYpIl0gKS5pc0ltbXVuaXphdGlvbkFkbWluaXN0ZXJlZCAoICkgKSBQb2xpb1ZhY2NpbmF0aW9uCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBQb2xpb1ZhY2NpbmF0aW9uLm9jY3VycmVuY2UuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgIlZhY2NpbmUgQWRtaW5pc3RyYXRpb24gSW50ZXJ2YWwgLSA0MiBEYXlzIHVwIHRvIDIgWWVhcnMgT2xkIgogICAgICByZXR1cm4gUG9saW9WYWNjaW5hdGlvbi5vY2N1cnJlbmNlCiAgICApCiAgICB1bmlvbiAoICggKCBbUHJvY2VkdXJlOiAiSW5hY3RpdmF0ZWQgUG9saW8gVmFjY2luZSAoSVBWKSBBZG1pbmlzdGVyZWQiXSApLmlzUHJvY2VkdXJlUGVyZm9ybWVkICggKSApIFBvbGlvUHJvY2VkdXJlCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIFBvbGlvUHJvY2VkdXJlLnBlcmZvcm1lZC5lYXJsaWVzdCAoICkgZHVyaW5nIGRheSBvZiAiVmFjY2luZSBBZG1pbmlzdHJhdGlvbiBJbnRlcnZhbCAtIDQyIERheXMgdXAgdG8gMiBZZWFycyBPbGQiCiAgICAgICAgcmV0dXJuIFBvbGlvUHJvY2VkdXJlLnBlcmZvcm1lZAogICAgKQoKZGVmaW5lICJUaHJlZSBQb2xpbyBWYWNjaW5hdGlvbnMiOgogIGZyb20KICAgICJQb2xpbyBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIFBvbGlvVmFjY2luYXRpb24xLAogICAgIlBvbGlvIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyIgUG9saW9WYWNjaW5hdGlvbjIsCiAgICAiUG9saW8gSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIiBQb2xpb1ZhY2NpbmF0aW9uMwogICAgd2hlcmUgZGF0ZSBmcm9tIFBvbGlvVmFjY2luYXRpb24yLmVhcmxpZXN0ICggKSAxIGRheSBvciBtb3JlIGFmdGVyIGRhdGUgZnJvbSBQb2xpb1ZhY2NpbmF0aW9uMS5lYXJsaWVzdCAoICkKICAgICAgYW5kIGRhdGUgZnJvbSBQb2xpb1ZhY2NpbmF0aW9uMy5lYXJsaWVzdCAoICkgMSBkYXkgb3IgbW9yZSBhZnRlciBkYXRlIGZyb20gUG9saW9WYWNjaW5hdGlvbjIuZWFybGllc3QgKCApCiAgICByZXR1cm4gZGF0ZSBmcm9tIFBvbGlvVmFjY2luYXRpb24xLmVhcmxpZXN0ICggKQoKCmRlZmluZSAiUG9saW8gTnVtZXJhdG9yIEluY2x1c2lvbiBDb25kaXRpb25zIjoKICAvLyBbRS0xM10gYmFzZSBGSElSLkNvbmRpdGlvbiByZXRyaWV2ZSAoZGVmZWN0LXRyYWNraW5nL2VuZ2luZS1pc3N1ZXMubWQgRS0xMykKICAvLyBPcmlnaW5hbDoKICAvLyAgIFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgaHVtYW4gcG9saW92aXJ1cyBhbnRpZ2VuIChkaXNvcmRlcikiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBodW1hbiBwb2xpb3ZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSJdCiAgKCAoIFtGSElSLkNvbmRpdGlvbjogIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBodW1hbiBwb2xpb3ZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSJdICkudmVyaWZpZWQgKCApICkgUG9saW9Db25kaXRpb25zCiAgICB3aGVyZSBkYXRlIGZyb20gc3RhcnQgb2YgUG9saW9Db25kaXRpb25zLnByZXZhbGVuY2VJbnRlcnZhbCAoICkgZHVyaW5nIGRheSBvZiAiRmlyc3QgVHdvIFllYXJzIgoKLy9NTVIKCgpkZWZpbmUgIk9uZSBNTVIgVmFjY2luYXRpb24iOgogICggKCAoIFtJbW11bml6YXRpb246ICJNZWFzbGVzLCBNdW1wcyBhbmQgUnViZWxsYSAoTU1SKSBWYWNjaW5lIl0gKS5pc0ltbXVuaXphdGlvbkFkbWluaXN0ZXJlZCAoICkgKSBNTVJWYWNjaW5hdGlvbgogICAgICB3aGVyZSBkYXRlIGZyb20gTU1SVmFjY2luYXRpb24ub2NjdXJyZW5jZS5lYXJsaWVzdCAoICkgZHVyaW5nICJEYXRlIG9mIEZpcnN0IEJpcnRoZGF5IHRvIERhdGUgb2YgU2Vjb25kIEJpcnRoZGF5IgogICAgICByZXR1cm4gZGF0ZSBmcm9tIE1NUlZhY2NpbmF0aW9uLm9jY3VycmVuY2UuZWFybGllc3QgKCApCiAgKQogICAgdW5pb24gKCAoICggW1Byb2NlZHVyZTogIk1lYXNsZXMsIE11bXBzIGFuZCBSdWJlbGxhIChNTVIpIFZhY2NpbmUgQWRtaW5pc3RlcmVkIl0gKS5pc1Byb2NlZHVyZVBlcmZvcm1lZCAoICkgKSBNTVJQcm9jZWR1cmUKICAgICAgICB3aGVyZSBkYXRlIGZyb20gTU1SUHJvY2VkdXJlLnBlcmZvcm1lZC5lYXJsaWVzdCAoICkgZHVyaW5nICJEYXRlIG9mIEZpcnN0IEJpcnRoZGF5IHRvIERhdGUgb2YgU2Vjb25kIEJpcnRoZGF5IgogICAgICAgIHJldHVybiBkYXRlIGZyb20gTU1SUHJvY2VkdXJlLnBlcmZvcm1lZC5lYXJsaWVzdCAoICkKICAgICkKCmRlZmluZSAiTWVhc2xlcyBJbmRpY2F0b3JzIjoKICAoICggW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIk1lYXNsZXMiXQogICAgICB1bmlvbiBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiTWVhc2xlcyJdCiAgKS52ZXJpZmllZCAoICkgKSBNZWFzbGVzRGlhZ25vc2lzCiAgICB3aGVyZSBkYXRlIGZyb20gc3RhcnQgb2YgTWVhc2xlc0RpYWdub3Npcy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKCmRlZmluZSAiTXVtcHMgSW5kaWNhdG9ycyI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiTXVtcHMiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIk11bXBzIl0KICAoICggW0ZISVIuQ29uZGl0aW9uOiAiTXVtcHMiXSApLnZlcmlmaWVkICggKSApIE11bXBzRGlhZ25vc2lzCiAgICB3aGVyZSBkYXRlIGZyb20gc3RhcnQgb2YgTXVtcHNEaWFnbm9zaXMucHJldmFsZW5jZUludGVydmFsICggKSBkdXJpbmcgZGF5IG9mICJGaXJzdCBUd28gWWVhcnMiCgpkZWZpbmUgIlJ1YmVsbGEgSW5kaWNhdG9ycyI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiUnViZWxsYSJdCiAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiUnViZWxsYSJdCiAgKCAoIFtGSElSLkNvbmRpdGlvbjogIlJ1YmVsbGEiXSApLnZlcmlmaWVkICggKSApIFJ1YmVsbGFEaWFnbm9zaXMKICAgIHdoZXJlIGRhdGUgZnJvbSBzdGFydCBvZiBSdWJlbGxhRGlhZ25vc2lzLnByZXZhbGVuY2VJbnRlcnZhbCAoICkgZHVyaW5nIGRheSBvZiAiRmlyc3QgVHdvIFllYXJzIgoKZGVmaW5lICJNTVIgTnVtZXJhdG9yIEluY2x1c2lvbiBDb25kaXRpb25zIjoKICAvLyBbRS0xM10gYmFzZSBGSElSLkNvbmRpdGlvbiByZXRyaWV2ZSAoZGVmZWN0LXRyYWNraW5nL2VuZ2luZS1pc3N1ZXMubWQgRS0xMykKICAvLyBPcmlnaW5hbDoKICAvLyAgIFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgTWVhc2xlcyBtb3JiaWxsaXZpcnVzIGFuZCBNdW1wcyBvcnRob3J1YnVsYXZpcnVzIGFuZCBSdWJlbGxhIHZpcnVzIGFudGlnZW5zIChkaXNvcmRlcikiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBNZWFzbGVzIG1vcmJpbGxpdmlydXMgYW5kIE11bXBzIG9ydGhvcnVidWxhdmlydXMgYW5kIFJ1YmVsbGEgdmlydXMgYW50aWdlbnMgKGRpc29yZGVyKSJdCiAgKCAoIFtGSElSLkNvbmRpdGlvbjogIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBNZWFzbGVzIG1vcmJpbGxpdmlydXMgYW5kIE11bXBzIG9ydGhvcnVidWxhdmlydXMgYW5kIFJ1YmVsbGEgdmlydXMgYW50aWdlbnMgKGRpc29yZGVyKSJdICkudmVyaWZpZWQgKCApICkgTU1SQ29uZGl0aW9ucwogICAgd2hlcmUgZGF0ZSBmcm9tIHN0YXJ0IG9mIE1NUkNvbmRpdGlvbnMucHJldmFsZW5jZUludGVydmFsICggKSBkdXJpbmcgZGF5IG9mICJGaXJzdCBUd28gWWVhcnMiCgovL0hpQgoKCmRlZmluZSAiSGFzIEFwcHJvcHJpYXRlIE51bWJlciBvZiBIaWIgSW1tdW5pemF0aW9ucyI6CiAgZXhpc3RzICggIkhpYiAzIG9yIDQgRG9zZSBJbW11bml6YXRpb25zIiBIaWJJbW11bml6YXRpb24gLy80IGRvc2UgdGVzdAogICAgICAKICAgICAgbGV0IEhhc0ZvdXJEb3NlOiBDb3VudCgiSGliIDQgRG9zZSBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiKSA+IDAKICAgICAgd2hlcmUgKCBIYXNGb3VyRG9zZSAvL2lmIHB0IGhhZCBhdCBsZWFzdCBvbmUgNCBkb3NlIGNvZGUKICAgICAgICAgIAogICAgICAgICAgYW5kIENvdW50KGRpc3RpbmN0KCJIaWIgMyBvciA0IERvc2UgSW1tdW5pemF0aW9ucyIgSGliVmFjY2luYXRpb25zCiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZSBmcm9tIEhpYlZhY2NpbmF0aW9ucy5lYXJsaWVzdCgpCiAgICAgICAgICAgICkKICAgICAgICAgICkgPj0gNCAvL3B0IG11c3QgaGF2ZSA0IHJlZ2ltZW5zIChlLmcuLCAzLDMsNCw0IG9yIDQsMyw0LDQpCiAgICAgIAogICAgICApCiAgICAgICAgb3IgKCBIYXNGb3VyRG9zZSBpcyBmYWxzZSAvL2lmIHB0IGRpZCBub3QgaGF2ZSBhdCBsZWFzdCBvbmUgNCBkb3NlIGNvZGUKICAgICAgICAgICAgCiAgICAgICAgICAgIGFuZCBDb3VudChkaXN0aW5jdCgiSGliIDMgb3IgNCBEb3NlIEltbXVuaXphdGlvbnMiIEhpYlZhY2NpbmF0aW9ucwogICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZSBmcm9tIEhpYlZhY2NpbmF0aW9ucy5lYXJsaWVzdCgpCiAgICAgICAgICAgICAgKQogICAgICAgICAgICApID49IDMgLy9wdCBtdXN0IGhhdmUgMyByZWdpbWVucyBvZiAzIGRvc2UgY29kZXMKICAgICAgICAKICAgICAgICApCiAgKQoKZGVmaW5lICJIaWIgTnVtZXJhdG9yIEluY2x1c2lvbiBDb25kaXRpb25zIjoKICAvLyBbRS0xM10gYmFzZSBGSElSLkNvbmRpdGlvbiByZXRyaWV2ZSAoZGVmZWN0LXRyYWNraW5nL2VuZ2luZS1pc3N1ZXMubWQgRS0xMykKICAvLyBPcmlnaW5hbDoKICAvLyAgIFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgb25seSBIYWVtb3BoaWx1cyBpbmZsdWVuemFlIHR5cGUgYiBhbnRpZ2VuIChkaXNvcmRlcikiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBvbmx5IEhhZW1vcGhpbHVzIGluZmx1ZW56YWUgdHlwZSBiIGFudGlnZW4gKGRpc29yZGVyKSJdCiAgKCAoIFtGSElSLkNvbmRpdGlvbjogIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBvbmx5IEhhZW1vcGhpbHVzIGluZmx1ZW56YWUgdHlwZSBiIGFudGlnZW4gKGRpc29yZGVyKSJdICkudmVyaWZpZWQgKCApICkgSGliUmVhY3Rpb24KICAgIHdoZXJlIGRhdGUgZnJvbSBzdGFydCBvZiBIaWJSZWFjdGlvbi5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKCmRlZmluZSAiSGliIDMgRG9zZSBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiOgogICggKCAoIFtJbW11bml6YXRpb246ICJIaWIgVmFjY2luZSAoMyBkb3NlIHNjaGVkdWxlKSJdICkuaXNJbW11bml6YXRpb25BZG1pbmlzdGVyZWQgKCApICkgVGhyZWVEb3NlSGliVmFjY2luZQogICAgICB3aGVyZSBkYXRlIGZyb20gVGhyZWVEb3NlSGliVmFjY2luZS5vY2N1cnJlbmNlLmVhcmxpZXN0ICggKSBkdXJpbmcgZGF5IG9mICJWYWNjaW5lIEFkbWluaXN0cmF0aW9uIEludGVydmFsIC0gNDIgRGF5cyB1cCB0byAyIFllYXJzIE9sZCIKICAgICAgcmV0dXJuIFRocmVlRG9zZUhpYlZhY2NpbmUub2NjdXJyZW5jZQogICkKICAgIHVuaW9uICggKCAoIFtQcm9jZWR1cmU6ICJIaWIgVmFjY2luZSAoMyBkb3NlIHNjaGVkdWxlKSBBZG1pbmlzdGVyZWQiXSApLmlzUHJvY2VkdXJlUGVyZm9ybWVkICggKSApIFRocmVlRG9zZUhpYlByb2NlZHVyZQogICAgICAgIHdoZXJlIGRhdGUgZnJvbSBUaHJlZURvc2VIaWJQcm9jZWR1cmUucGVyZm9ybWVkLmVhcmxpZXN0ICggKSBkdXJpbmcgZGF5IG9mICJWYWNjaW5lIEFkbWluaXN0cmF0aW9uIEludGVydmFsIC0gNDIgRGF5cyB1cCB0byAyIFllYXJzIE9sZCIKICAgICAgICByZXR1cm4gVGhyZWVEb3NlSGliUHJvY2VkdXJlLnBlcmZvcm1lZAogICAgKQoKZGVmaW5lICJIaWIgMyBvciA0IERvc2UgSW1tdW5pemF0aW9ucyI6CiAgIkhpYiAzIERvc2UgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIgogICAgdW5pb24gIkhpYiA0IERvc2UgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIgoKZGVmaW5lICJIaWIgNCBEb3NlIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyI6CiAgKCAoICggW0ltbXVuaXphdGlvbjogIkhpYiBWYWNjaW5lICg0IGRvc2Ugc2NoZWR1bGUpIl0gKS5pc0ltbXVuaXphdGlvbkFkbWluaXN0ZXJlZCAoICkgKSBIaWJWYWNjaW5lCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBIaWJWYWNjaW5lLm9jY3VycmVuY2UuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgIlZhY2NpbmUgQWRtaW5pc3RyYXRpb24gSW50ZXJ2YWwgLSA0MiBEYXlzIHVwIHRvIDIgWWVhcnMgT2xkIgogICAgICByZXR1cm4gSGliVmFjY2luZS5vY2N1cnJlbmNlCiAgKQogICAgdW5pb24gKCAoICggW1Byb2NlZHVyZTogIkhpYiBWYWNjaW5lICg0IGRvc2Ugc2NoZWR1bGUpIEFkbWluaXN0ZXJlZCJdICkuaXNQcm9jZWR1cmVQZXJmb3JtZWQgKCApICkgSGliUHJvY2VkdXJlCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIEhpYlByb2NlZHVyZS5wZXJmb3JtZWQuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgIlZhY2NpbmUgQWRtaW5pc3RyYXRpb24gSW50ZXJ2YWwgLSA0MiBEYXlzIHVwIHRvIDIgWWVhcnMgT2xkIgogICAgICAgIHJldHVybiBIaWJQcm9jZWR1cmUucGVyZm9ybWVkCiAgICApCgovL0hlcEIKCgpkZWZpbmUgIkhlcGF0aXRpcyBCIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEhlcGF0aXRpcyBCIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSJdCiAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEhlcGF0aXRpcyBCIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSJdCiAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJIZXBhdGl0aXMgQiJdCiAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiSGVwYXRpdGlzIEIiXQogICggKCBbRkhJUi5Db25kaXRpb246ICJBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBwcm9kdWN0IGNvbnRhaW5pbmcgSGVwYXRpdGlzIEIgdmlydXMgYW50aWdlbiAoZGlzb3JkZXIpIl0KICAgICAgdW5pb24gW0ZISVIuQ29uZGl0aW9uOiAiSGVwYXRpdGlzIEIiXQogICkudmVyaWZpZWQgKCApICkgSGVwQkNvbmRpdGlvbnMKICAgIHdoZXJlIGRhdGUgZnJvbSBzdGFydCBvZiBIZXBCQ29uZGl0aW9ucy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKCmRlZmluZSAiVGhyZWUgSGVwYXRpdGlzIEIgVmFjY2luYXRpb25zIjoKICBmcm9tCiAgICAiSGVwYXRpdGlzIEIgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIiBIZXBhdGl0aXNCVmFjY2luYXRpb24xLAogICAgIkhlcGF0aXRpcyBCIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyIgSGVwYXRpdGlzQlZhY2NpbmF0aW9uMiwKICAgICJIZXBhdGl0aXMgQiBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIEhlcGF0aXRpc0JWYWNjaW5hdGlvbjMKICAgIHdoZXJlIGRhdGUgZnJvbSBIZXBhdGl0aXNCVmFjY2luYXRpb24yLmVhcmxpZXN0ICggKSAxIGRheSBvciBtb3JlIGFmdGVyIGRhdGUgZnJvbSBIZXBhdGl0aXNCVmFjY2luYXRpb24xLmVhcmxpZXN0ICggKQogICAgICBhbmQgZGF0ZSBmcm9tIEhlcGF0aXRpc0JWYWNjaW5hdGlvbjMuZWFybGllc3QgKCApIDEgZGF5IG9yIG1vcmUgYWZ0ZXIgZGF0ZSBmcm9tIEhlcGF0aXRpc0JWYWNjaW5hdGlvbjIuZWFybGllc3QgKCApCiAgICByZXR1cm4gZGF0ZSBmcm9tIEhlcGF0aXRpc0JWYWNjaW5hdGlvbjEuZWFybGllc3QgKCApCgpkZWZpbmUgIkhlcGF0aXRpcyBCIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyI6CiAgKCAoICggW0ltbXVuaXphdGlvbjogIkhlcGF0aXRpcyBCIFZhY2NpbmUiXSApLmlzSW1tdW5pemF0aW9uQWRtaW5pc3RlcmVkICggKSApIEhlcGF0aXRpc0JWYWNjaW5hdGlvbgogICAgICB3aGVyZSBkYXRlIGZyb20gSGVwYXRpdGlzQlZhY2NpbmF0aW9uLm9jY3VycmVuY2UuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKICAgICAgcmV0dXJuIEhlcGF0aXRpc0JWYWNjaW5hdGlvbi5vY2N1cnJlbmNlCiAgKQogICAgdW5pb24gKCAoICggW1Byb2NlZHVyZTogIkhlcGF0aXRpcyBCIFZhY2NpbmUgQWRtaW5pc3RlcmVkIl0gKS5pc1Byb2NlZHVyZVBlcmZvcm1lZCAoICkgKSBIZXBhdGl0aXNCUHJvY2VkdXJlCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIEhlcGF0aXRpc0JQcm9jZWR1cmUucGVyZm9ybWVkLmVhcmxpZXN0ICggKSBkdXJpbmcgZGF5IG9mICJGaXJzdCBUd28gWWVhcnMiCiAgICAgICAgcmV0dXJuIEhlcGF0aXRpc0JQcm9jZWR1cmUucGVyZm9ybWVkCiAgICApCgpkZWZpbmUgIk1lZXRzIEhlcEIgVmFjY2luYXRpb24gUmVxdWlyZW1lbnQiOgogIGZyb20KICAgICJIZXBhdGl0aXMgQiBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIEhlcGF0aXRpc0JWYWNjaW5hdGlvbjEsCiAgICAiSGVwYXRpdGlzIEIgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIiBIZXBhdGl0aXNCVmFjY2luYXRpb24yLAogICAgIk5ld0Jvcm4gVmFjY2luZSBSZXF1aXJlbWVudCIgTmV3Qm9yblZhY2NpbmUzCiAgICB3aGVyZSBkYXRlIGZyb20gSGVwYXRpdGlzQlZhY2NpbmF0aW9uMi5lYXJsaWVzdCAoICkgMSBkYXkgb3IgbW9yZSBhZnRlciBkYXRlIGZyb20gSGVwYXRpdGlzQlZhY2NpbmF0aW9uMS5lYXJsaWVzdCAoICkKICAgICAgYW5kIGRhdGUgZnJvbSBIZXBhdGl0aXNCVmFjY2luYXRpb24xLmVhcmxpZXN0ICggKSAxIGRheSBvciBtb3JlIGFmdGVyIGRhdGUgZnJvbSBOZXdCb3JuVmFjY2luZTMuZWFybGllc3QgKCApCiAgICAgIGFuZCBkYXRlIGZyb20gSGVwYXRpdGlzQlZhY2NpbmF0aW9uMi5lYXJsaWVzdCAoICkgMSBkYXkgb3IgbW9yZSBhZnRlciBkYXRlIGZyb20gTmV3Qm9yblZhY2NpbmUzLmVhcmxpZXN0ICggKQogICAgcmV0dXJuIGRhdGUgZnJvbSBIZXBhdGl0aXNCVmFjY2luYXRpb24xLmVhcmxpZXN0ICggKQoKZGVmaW5lICJOZXdCb3JuIFZhY2NpbmUgUmVxdWlyZW1lbnQiOgogICggKCBbUHJvY2VkdXJlOiAiSW50cm9kdWN0aW9uIG9mIFNlcnVtLCBUb3hvaWQgYW5kIFZhY2NpbmUgaW50byBNdXNjbGUsIFBlcmN1dGFuZW91cyBBcHByb2FjaCJdICkuaXNQcm9jZWR1cmVQZXJmb3JtZWQgKCApICkgTmV3Qm9yblZhY2NpbmUKICAgIHdoZXJlIGRhdGUgZnJvbSBOZXdCb3JuVmFjY2luZS5wZXJmb3JtZWQuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgSW50ZXJ2YWxbUGF0aWVudC5iaXJ0aERhdGUsIFBhdGllbnQuYmlydGhEYXRlICsgNyBkYXlzXQogICAgcmV0dXJuIE5ld0Jvcm5WYWNjaW5lLnBlcmZvcm1lZAoKLy9WWlYKCgpkZWZpbmUgIk9uZSBDaGlja2VuIFBveCBWYWNjaW5hdGlvbiI6CiAgKCAoICggW0ltbXVuaXphdGlvbjogIlZhcmljZWxsYSBab3N0ZXIgVmFjY2luZSAoVlpWKSJdICkuaXNJbW11bml6YXRpb25BZG1pbmlzdGVyZWQgKCApICkgQ2hpY2tlblBveFZhY2NpbmF0aW9uCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBDaGlja2VuUG94VmFjY2luYXRpb24ub2NjdXJyZW5jZS5lYXJsaWVzdCAoICkgZHVyaW5nICJEYXRlIG9mIEZpcnN0IEJpcnRoZGF5IHRvIERhdGUgb2YgU2Vjb25kIEJpcnRoZGF5IgogICAgICByZXR1cm4gZGF0ZSBmcm9tIENoaWNrZW5Qb3hWYWNjaW5hdGlvbi5vY2N1cnJlbmNlLmVhcmxpZXN0ICggKQogICkKICAgIHVuaW9uICggKCAoIFtQcm9jZWR1cmU6ICJWYXJpY2VsbGEgWm9zdGVyIFZhY2NpbmUgKFZaVikgQWRtaW5pc3RlcmVkIl0gKS5pc1Byb2NlZHVyZVBlcmZvcm1lZCAoICkgKSBDaGlja2VuUG94UHJvY2VkdXJlCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIENoaWNrZW5Qb3hQcm9jZWR1cmUucGVyZm9ybWVkLmVhcmxpZXN0ICggKSBkdXJpbmcgIkRhdGUgb2YgRmlyc3QgQmlydGhkYXkgdG8gRGF0ZSBvZiBTZWNvbmQgQmlydGhkYXkiCiAgICAgICAgcmV0dXJuIGRhdGUgZnJvbSBDaGlja2VuUG94UHJvY2VkdXJlLnBlcmZvcm1lZC5lYXJsaWVzdCAoICkKICAgICkKCmRlZmluZSAiVmFyaWNlbGxhIFpvc3RlciBOdW1lcmF0b3IgSW5jbHVzaW9uIENvbmRpdGlvbnMiOgogIC8vIFtFLTEzXSBiYXNlIEZISVIuQ29uZGl0aW9uIHJldHJpZXZlIChkZWZlY3QtdHJhY2tpbmcvZW5naW5lLWlzc3Vlcy5tZCBFLTEzKQogIC8vIE9yaWdpbmFsOgogIC8vICAgW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIlZhcmljZWxsYSBab3N0ZXIiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIlZhcmljZWxsYSBab3N0ZXIiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgY29udGFpbmluZyBIdW1hbiBhbHBoYWhlcnBlc3ZpcnVzIDMgYW50aWdlbiAoZGlzb3JkZXIpIl0KICAvLyAgICAgdW5pb24gW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJBbmFwaHlsYXhpcyBjYXVzZWQgYnkgdmFjY2luZSBjb250YWluaW5nIEh1bWFuIGFscGhhaGVycGVzdmlydXMgMyBhbnRpZ2VuIChkaXNvcmRlcikiXQogICggKCBbRkhJUi5Db25kaXRpb246ICJWYXJpY2VsbGEgWm9zdGVyIl0KICAgICAgdW5pb24gW0ZISVIuQ29uZGl0aW9uOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgY29udGFpbmluZyBIdW1hbiBhbHBoYWhlcnBlc3ZpcnVzIDMgYW50aWdlbiAoZGlzb3JkZXIpIl0KICApLnZlcmlmaWVkICggKSApIFZhcmljZWxsYVpvc3RlcgogICAgd2hlcmUgZGF0ZSBmcm9tIHN0YXJ0IG9mIFZhcmljZWxsYVpvc3Rlci5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKCi8vUENWCgoKZGVmaW5lICJGb3VyIFBuZXVtb2NvY2NhbCBDb25qdWdhdGUgVmFjY2luYXRpb25zIjoKICBmcm9tCiAgICAiUG5ldW1vY29jY2FsIENvbmp1Z2F0ZSBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIFBuZXVtb2NvY2NhbFZhY2NpbmF0aW9uMSwKICAgICJQbmV1bW9jb2NjYWwgQ29uanVnYXRlIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyIgUG5ldW1vY29jY2FsVmFjY2luYXRpb24yLAogICAgIlBuZXVtb2NvY2NhbCBDb25qdWdhdGUgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIiBQbmV1bW9jb2NjYWxWYWNjaW5hdGlvbjMsCiAgICAiUG5ldW1vY29jY2FsIENvbmp1Z2F0ZSBJbW11bml6YXRpb25zIG9yIFByb2NlZHVyZXMiIFBuZXVtb2NvY2NhbFZhY2NpbmF0aW9uNAogICAgd2hlcmUgZGF0ZSBmcm9tIFBuZXVtb2NvY2NhbFZhY2NpbmF0aW9uMi5lYXJsaWVzdCAoICkgMSBkYXkgb3IgbW9yZSBhZnRlciBkYXRlIGZyb20gUG5ldW1vY29jY2FsVmFjY2luYXRpb24xLmVhcmxpZXN0ICggKQogICAgICBhbmQgZGF0ZSBmcm9tIFBuZXVtb2NvY2NhbFZhY2NpbmF0aW9uMy5lYXJsaWVzdCAoICkgMSBkYXkgb3IgbW9yZSBhZnRlciBkYXRlIGZyb20gUG5ldW1vY29jY2FsVmFjY2luYXRpb24yLmVhcmxpZXN0ICggKQogICAgICBhbmQgZGF0ZSBmcm9tIFBuZXVtb2NvY2NhbFZhY2NpbmF0aW9uNC5lYXJsaWVzdCAoICkgMSBkYXkgb3IgbW9yZSBhZnRlciBkYXRlIGZyb20gUG5ldW1vY29jY2FsVmFjY2luYXRpb24zLmVhcmxpZXN0ICggKQogICAgcmV0dXJuIGRhdGUgZnJvbSBQbmV1bW9jb2NjYWxWYWNjaW5hdGlvbjEuZWFybGllc3QgKCApCgpkZWZpbmUgIlBuZXVtb2NvY2NhbCBDb25qdWdhdGUgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIjoKICAoICggKCBbSW1tdW5pemF0aW9uOiAiUG5ldW1vY29jY2FsIENvbmp1Z2F0ZSBWYWNjaW5lIl0gKS5pc0ltbXVuaXphdGlvbkFkbWluaXN0ZXJlZCAoICkgKSBQbmV1bW9jb2NjYWxWYWNjaW5hdGlvbgogICAgICB3aGVyZSBkYXRlIGZyb20gUG5ldW1vY29jY2FsVmFjY2luYXRpb24ub2NjdXJyZW5jZS5lYXJsaWVzdCAoICkgZHVyaW5nIGRheSBvZiAiVmFjY2luZSBBZG1pbmlzdHJhdGlvbiBJbnRlcnZhbCAtIDQyIERheXMgdXAgdG8gMiBZZWFycyBPbGQiCiAgICAgIHJldHVybiBQbmV1bW9jb2NjYWxWYWNjaW5hdGlvbi5vY2N1cnJlbmNlCiAgKQogICAgdW5pb24gKCAoICggW1Byb2NlZHVyZTogIlBuZXVtb2NvY2NhbCBDb25qdWdhdGUgVmFjY2luZSBBZG1pbmlzdGVyZWQiXSApLmlzUHJvY2VkdXJlUGVyZm9ybWVkICggKSApIFBuZXVtb2NvY2NhbFByb2NlZHVyZQogICAgICAgIHdoZXJlIGRhdGUgZnJvbSBQbmV1bW9jb2NjYWxQcm9jZWR1cmUucGVyZm9ybWVkLmVhcmxpZXN0ICggKSBkdXJpbmcgZGF5IG9mICJWYWNjaW5lIEFkbWluaXN0cmF0aW9uIEludGVydmFsIC0gNDIgRGF5cyB1cCB0byAyIFllYXJzIE9sZCIKICAgICAgICByZXR1cm4gUG5ldW1vY29jY2FsUHJvY2VkdXJlLnBlcmZvcm1lZAogICAgKQoKZGVmaW5lICJQbmV1bW9jb2NjYWwgQ29uanVnYXRlIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIFN0cmVwdG9jb2NjdXMgcG5ldW1vbmlhZSBhbnRpZ2VuIChkaXNvcmRlcikiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBTdHJlcHRvY29jY3VzIHBuZXVtb25pYWUgYW50aWdlbiAoZGlzb3JkZXIpIl0KICAoICggW0ZISVIuQ29uZGl0aW9uOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIFN0cmVwdG9jb2NjdXMgcG5ldW1vbmlhZSBhbnRpZ2VuIChkaXNvcmRlcikiXSApLnZlcmlmaWVkICggKSApIFBuZXVtb2NvY2NhbFJlYWN0aW9uCiAgICB3aGVyZSBkYXRlIGZyb20gc3RhcnQgb2YgUG5ldW1vY29jY2FsUmVhY3Rpb24ucHJldmFsZW5jZUludGVydmFsICggKSBkdXJpbmcgZGF5IG9mICJGaXJzdCBUd28gWWVhcnMiCgovL0hlcEEKCgpkZWZpbmUgIk9uZSBIZXBhdGl0aXMgQSBWYWNjaW5hdGlvbnMiOgogICggKCAoIFtJbW11bml6YXRpb246ICJIZXBhdGl0aXMgQSBWYWNjaW5lIl0gKS5pc0ltbXVuaXphdGlvbkFkbWluaXN0ZXJlZCAoICkgKSBIZXBhdGl0aXNBVmFjY2luYXRpb24KICAgICAgd2hlcmUgZGF0ZSBmcm9tIEhlcGF0aXRpc0FWYWNjaW5hdGlvbi5vY2N1cnJlbmNlLmVhcmxpZXN0ICggKSBkdXJpbmcgIkRhdGUgb2YgRmlyc3QgQmlydGhkYXkgdG8gRGF0ZSBvZiBTZWNvbmQgQmlydGhkYXkiCiAgICAgIHJldHVybiBkYXRlIGZyb20gSGVwYXRpdGlzQVZhY2NpbmF0aW9uLm9jY3VycmVuY2UuZWFybGllc3QgKCApCiAgKQogICAgdW5pb24gKCAoICggW1Byb2NlZHVyZTogIkhlcGF0aXRpcyBBIFZhY2NpbmUgQWRtaW5pc3RlcmVkIl0gKS5pc1Byb2NlZHVyZVBlcmZvcm1lZCAoICkgKSBIZXBhdGl0aXNBUHJvY2VkdXJlCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIEhlcGF0aXRpc0FQcm9jZWR1cmUucGVyZm9ybWVkLmVhcmxpZXN0ICggKSBkdXJpbmcgIkRhdGUgb2YgRmlyc3QgQmlydGhkYXkgdG8gRGF0ZSBvZiBTZWNvbmQgQmlydGhkYXkiCiAgICAgICAgcmV0dXJuIGRhdGUgZnJvbSBIZXBhdGl0aXNBUHJvY2VkdXJlLnBlcmZvcm1lZC5lYXJsaWVzdCAoICkKICAgICkKCmRlZmluZSAiSGVwYXRpdGlzIEEgTnVtZXJhdG9yIEluY2x1c2lvbiBDb25kaXRpb25zIjoKICAvLyBbRS0xM10gYmFzZSBGSElSLkNvbmRpdGlvbiByZXRyaWV2ZSAoZGVmZWN0LXRyYWNraW5nL2VuZ2luZS1pc3N1ZXMubWQgRS0xMykKICAvLyBPcmlnaW5hbDoKICAvLyAgIFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJIZXBhdGl0aXMgQSJdCiAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiSGVwYXRpdGlzIEEiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEhlcGF0aXRpcyBBIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSJdCiAgLy8gICAgIHVuaW9uIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEhlcGF0aXRpcyBBIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSJdCiAgKCAoIFtGSElSLkNvbmRpdGlvbjogIkhlcGF0aXRpcyBBIl0KICAgICAgdW5pb24gW0ZISVIuQ29uZGl0aW9uOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEhlcGF0aXRpcyBBIHZpcnVzIGFudGlnZW4gKGRpc29yZGVyKSJdCiAgKS52ZXJpZmllZCAoICkgKSBIZXBhdGl0aXNBRGlhZ25vc2lzCiAgICB3aGVyZSBkYXRlIGZyb20gc3RhcnQgb2YgSGVwYXRpdGlzQURpYWdub3Npcy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIGR1cmluZyBkYXkgb2YgIkZpcnN0IFR3byBZZWFycyIKCi8vUlYKCgpkZWZpbmUgIkhhcyBBcHByb3ByaWF0ZSBOdW1iZXIgb2YgUm90YXZpcnVzIEltbXVuaXphdGlvbnMiOgogIGV4aXN0cyAoICJSb3RhdmlydXMgMiBvciAzIERvc2UgSW1tdW5pemF0aW9ucyIgUm90YXZpcnVzSW1tdW5pemF0aW9uCiAgICAgIGxldCBIYXNUaHJlZURvc2U6IENvdW50KCJSb3RhdmlydXMgMyBEb3NlIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyIpID4gMAogICAgICB3aGVyZSAoIEhhc1RocmVlRG9zZQogICAgICAgICAgYW5kIENvdW50KGRpc3RpbmN0KCJSb3RhdmlydXMgMiBvciAzIERvc2UgSW1tdW5pemF0aW9ucyIgUm90YXZpcnVzVmFjY2luYXRpb25zCiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZSBmcm9tIFJvdGF2aXJ1c1ZhY2NpbmF0aW9ucy5lYXJsaWVzdCgpCiAgICAgICAgICAgICkKICAgICAgICAgICkgPj0gMwogICAgICApCiAgICAgICAgb3IgKCBIYXNUaHJlZURvc2UgaXMgZmFsc2UKICAgICAgICAgICAgYW5kIENvdW50KGRpc3RpbmN0KCJSb3RhdmlydXMgMiBvciAzIERvc2UgSW1tdW5pemF0aW9ucyIgUm90YXZpcnVzVmFjY2luYXRpb25zCiAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRlIGZyb20gUm90YXZpcnVzVmFjY2luYXRpb25zLmVhcmxpZXN0KCkKICAgICAgICAgICAgICApCiAgICAgICAgICAgICkgPj0gMgogICAgICAgICkKICApCgpkZWZpbmUgIlJvdGF2aXJ1cyAyIERvc2UgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIjoKICAoICggKCBbSW1tdW5pemF0aW9uOiAicm90YXZpcnVzLCBsaXZlLCBtb25vdmFsZW50IHZhY2NpbmUiXSApLmlzSW1tdW5pemF0aW9uQWRtaW5pc3RlcmVkICggKSApIFR3b0Rvc2VSb3RhdmlydXNWYWNjaW5lCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBUd29Eb3NlUm90YXZpcnVzVmFjY2luZS5vY2N1cnJlbmNlLmVhcmxpZXN0ICggKSBkdXJpbmcgZGF5IG9mICJWYWNjaW5lIEFkbWluaXN0cmF0aW9uIEludGVydmFsIC0gNDIgRGF5cyB1cCB0byAyIFllYXJzIE9sZCIKICAgICAgcmV0dXJuIFR3b0Rvc2VSb3RhdmlydXNWYWNjaW5lLm9jY3VycmVuY2UKICApCiAgICB1bmlvbiAoICggKCBbUHJvY2VkdXJlOiAiUm90YXZpcnVzIFZhY2NpbmUgKDIgZG9zZSBzY2hlZHVsZSkgQWRtaW5pc3RlcmVkIl0gKS5pc1Byb2NlZHVyZVBlcmZvcm1lZCAoICkgKSBUd29Eb3NlUm90YXZpcnVzUHJvY2VkdXJlCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIFR3b0Rvc2VSb3RhdmlydXNQcm9jZWR1cmUucGVyZm9ybWVkLmVhcmxpZXN0ICggKSBkdXJpbmcgZGF5IG9mICJWYWNjaW5lIEFkbWluaXN0cmF0aW9uIEludGVydmFsIC0gNDIgRGF5cyB1cCB0byAyIFllYXJzIE9sZCIKICAgICAgICByZXR1cm4gVHdvRG9zZVJvdGF2aXJ1c1Byb2NlZHVyZS5wZXJmb3JtZWQKICAgICkKCmRlZmluZSAiUm90YXZpcnVzIDIgb3IgMyBEb3NlIEltbXVuaXphdGlvbnMiOgogICJSb3RhdmlydXMgMiBEb3NlIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyIKICAgIHVuaW9uICJSb3RhdmlydXMgMyBEb3NlIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyIKCmRlZmluZSAiUm90YXZpcnVzIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHJvdGF2aXJ1cyB2YWNjaW5lIChkaXNvcmRlcikiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkFuYXBoeWxheGlzIGNhdXNlZCBieSByb3RhdmlydXMgdmFjY2luZSAoZGlzb3JkZXIpIl0KICAoICggW0ZISVIuQ29uZGl0aW9uOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHJvdGF2aXJ1cyB2YWNjaW5lIChkaXNvcmRlcikiXSApLnZlcmlmaWVkICggKSApIFJvdGF2aXJ1c0NvbmRpdGlvbnMKICAgIHdoZXJlIGRhdGUgZnJvbSBzdGFydCBvZiBSb3RhdmlydXNDb25kaXRpb25zLnByZXZhbGVuY2VJbnRlcnZhbCAoICkgZHVyaW5nIGRheSBvZiAiRmlyc3QgVHdvIFllYXJzIgoKZGVmaW5lICJSb3RhdmlydXMgMyBEb3NlIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyI6CiAgKCAoICggW0ltbXVuaXphdGlvbjogIlJvdGF2aXJ1cyBWYWNjaW5lICgzIGRvc2Ugc2NoZWR1bGUpIl0gKS5pc0ltbXVuaXphdGlvbkFkbWluaXN0ZXJlZCAoICkgKSBUaHJlZURvc2VSb3RhdmlydXNWYWNjaW5lCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBUaHJlZURvc2VSb3RhdmlydXNWYWNjaW5lLm9jY3VycmVuY2UuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgIlZhY2NpbmUgQWRtaW5pc3RyYXRpb24gSW50ZXJ2YWwgLSA0MiBEYXlzIHVwIHRvIDIgWWVhcnMgT2xkIgogICAgICByZXR1cm4gVGhyZWVEb3NlUm90YXZpcnVzVmFjY2luZS5vY2N1cnJlbmNlCiAgKQogICAgdW5pb24gKCAoICggW1Byb2NlZHVyZTogIlJvdGF2aXJ1cyBWYWNjaW5lICgzIGRvc2Ugc2NoZWR1bGUpIEFkbWluaXN0ZXJlZCJdICkuaXNQcm9jZWR1cmVQZXJmb3JtZWQgKCApICkgVGhyZWVEb3NlUm90YXZpcnVzQWRtaW5pc3RlcmVkCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIFRocmVlRG9zZVJvdGF2aXJ1c0FkbWluaXN0ZXJlZC5wZXJmb3JtZWQuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgIlZhY2NpbmUgQWRtaW5pc3RyYXRpb24gSW50ZXJ2YWwgLSA0MiBEYXlzIHVwIHRvIDIgWWVhcnMgT2xkIgogICAgICAgIHJldHVybiBUaHJlZURvc2VSb3RhdmlydXNBZG1pbmlzdGVyZWQucGVyZm9ybWVkCiAgICApCgovL0ZsdQoKCmRlZmluZSAiSW5mbHVlbnphIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyI6CiAgKCAoICggW0ltbXVuaXphdGlvbjogIkNoaWxkIEluZmx1ZW56YSBWYWNjaW5lIl0gKS5pc0ltbXVuaXphdGlvbkFkbWluaXN0ZXJlZCAoICkgKSBJbmZsdWVuemFWYWNjaW5lCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBJbmZsdWVuemFWYWNjaW5lLm9jY3VycmVuY2UuZWFybGllc3QgKCApIGR1cmluZyBkYXkgb2YgIlZhY2NpbmUgQWRtaW5pc3RyYXRpb24gSW50ZXJ2YWwgLSAxODAgRGF5cyB1cCB0byAyIFllYXJzIE9sZCIKICAgICAgcmV0dXJuIEluZmx1ZW56YVZhY2NpbmUub2NjdXJyZW5jZQogICkKICAgIHVuaW9uICggKCAoIFtQcm9jZWR1cmU6ICJDaGlsZCBJbmZsdWVuemEgVmFjY2luZSBBZG1pbmlzdGVyZWQiXSApLmlzUHJvY2VkdXJlUGVyZm9ybWVkICggKSApIEluZmx1ZW56YUFkbWluaXN0cmF0aW9uCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIEluZmx1ZW56YUFkbWluaXN0cmF0aW9uLnBlcmZvcm1lZC5lYXJsaWVzdCAoICkgZHVyaW5nIGRheSBvZiAiVmFjY2luZSBBZG1pbmlzdHJhdGlvbiBJbnRlcnZhbCAtIDE4MCBEYXlzIHVwIHRvIDIgWWVhcnMgT2xkIgogICAgICAgIHJldHVybiBJbmZsdWVuemFBZG1pbmlzdHJhdGlvbi5wZXJmb3JtZWQKICAgICkKCmRlZmluZSAiVHdvIEluZmx1ZW56YSBWYWNjaW5hdGlvbnMiOgogIGZyb20KICAgICJJbmZsdWVuemEgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIiBGbHVWYWNjaW5hdGlvbjEsCiAgICAiSW5mbHVlbnphIEltbXVuaXphdGlvbnMgb3IgUHJvY2VkdXJlcyIgRmx1VmFjY2luYXRpb24yCiAgICB3aGVyZSBkYXRlIGZyb20gRmx1VmFjY2luYXRpb24yLmVhcmxpZXN0ICggKSAxIGRheSBvciBtb3JlIGFmdGVyIGRhdGUgZnJvbSBGbHVWYWNjaW5hdGlvbjEuZWFybGllc3QgKCApCiAgICByZXR1cm4gZGF0ZSBmcm9tIEZsdVZhY2NpbmF0aW9uMS5lYXJsaWVzdCAoICkKCmRlZmluZSAiSW5mbHVlbnphIE51bWVyYXRvciBJbmNsdXNpb24gQ29uZGl0aW9ucyI6CiAgLy8gW0UtMTNdIGJhc2UgRkhJUi5Db25kaXRpb24gcmV0cmlldmUgKGRlZmVjdC10cmFja2luZy9lbmdpbmUtaXNzdWVzLm1kIEUtMTMpCiAgLy8gT3JpZ2luYWw6CiAgLy8gICBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEluZmx1ZW56YSB2aXJ1cyBhbnRpZ2VuIChkaXNvcmRlcikiXQogIC8vICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkFuYXBoeWxheGlzIGNhdXNlZCBieSB2YWNjaW5lIHByb2R1Y3QgY29udGFpbmluZyBJbmZsdWVuemEgdmlydXMgYW50aWdlbiAoZGlzb3JkZXIpIl0KICAoICggW0ZISVIuQ29uZGl0aW9uOiAiQW5hcGh5bGF4aXMgY2F1c2VkIGJ5IHZhY2NpbmUgcHJvZHVjdCBjb250YWluaW5nIEluZmx1ZW56YSB2aXJ1cyBhbnRpZ2VuIChkaXNvcmRlcikiXSApLnZlcmlmaWVkICggKSApIEluZmx1ZW56YUNvbmRpdGlvbnMKICAgIHdoZXJlIGRhdGUgZnJvbSBzdGFydCBvZiBJbmZsdWVuemFDb25kaXRpb25zLnByZXZhbGVuY2VJbnRlcnZhbCAoICkgZHVyaW5nIGRheSBvZiAiRmlyc3QgVHdvIFllYXJzIgoKZGVmaW5lICJUd28gSW5mbHVlbnphIFZhY2NpbmF0aW9ucyBJbmNsdWRpbmcgT25lIExBSVYgVmFjY2luYXRpb24iOgogIGV4aXN0cyAiTEFJViBWYWNjaW5hdGlvbnMiCiAgICBhbmQgZXhpc3RzICJJbmZsdWVuemEgSW1tdW5pemF0aW9ucyBvciBQcm9jZWR1cmVzIgoKZGVmaW5lICJMQUlWIFZhY2NpbmF0aW9ucyI6CiAgKCAoICggW0ltbXVuaXphdGlvbjogIkluZmx1ZW56YSBWaXJ1cyBMQUlWIFZhY2NpbmUiXSApLmlzSW1tdW5pemF0aW9uQWRtaW5pc3RlcmVkICggKSApIExBSVZWYWNjaW5lCiAgICAgIHdoZXJlIGRhdGUgZnJvbSBMQUlWVmFjY2luZS5vY2N1cnJlbmNlLmVhcmxpZXN0ICggKSBkdXJpbmcgZGF5IG9mIEludGVydmFsWyJEYXRlIG9mIFNlY29uZCBCaXJ0aGRheSIsICJEYXRlIG9mIFNlY29uZCBCaXJ0aGRheSJdCiAgICAgIHJldHVybiBkYXRlIGZyb20gTEFJVlZhY2NpbmUub2NjdXJyZW5jZS5lYXJsaWVzdCAoICkKICApCiAgICB1bmlvbiAoICggKCBbUHJvY2VkdXJlOiAiSW5mbHVlbnphIFZpcnVzIExBSVYgVmFjY2luZSBBZG1pbmlzdGVyZWQiXSApLmlzUHJvY2VkdXJlUGVyZm9ybWVkICggKSApIEluZmx1ZW56YUFkbWluaXN0cmF0aW9uCiAgICAgICAgd2hlcmUgZGF0ZSBmcm9tIEluZmx1ZW56YUFkbWluaXN0cmF0aW9uLnBlcmZvcm1lZC5lYXJsaWVzdCAoICkgZHVyaW5nIGRheSBvZiBJbnRlcnZhbFsiRGF0ZSBvZiBTZWNvbmQgQmlydGhkYXkiLCAiRGF0ZSBvZiBTZWNvbmQgQmlydGhkYXkiXQogICAgICAgIHJldHVybiBkYXRlIGZyb20gSW5mbHVlbnphQWRtaW5pc3RyYXRpb24ucGVyZm9ybWVkLmVhcmxpZXN0ICggKQogICAgKQoKZGVmaW5lICJTREUgRXRobmljaXR5IjoKICBTREUuIlNERSBFdGhuaWNpdHkiCgpkZWZpbmUgIlNERSBQYXllciI6CiAgU0RFLiJTREUgUGF5ZXIiCgpkZWZpbmUgIlNERSBSYWNlIjoKICBTREUuIlNERSBSYWNlIgoKZGVmaW5lICJTREUgU2V4IjoKICBTREUuIlNERSBTZXgi",
    "url" : "https://madie.cms.gov/Library-CMS117FHIRChildImmunStatus.cql"
  }]
}