@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

<http://smart.who.int/immunizations/Library/IMMZD2DTDTPElements> a fhir:Library ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "IMMZD2DTDTPElements"] ; # 
  fhir:meta [
     fhir:profile ( [
       fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"^^xsd:anyURI ;
       fhir:l <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary>
     ] [
       fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"^^xsd:anyURI ;
       fhir:l <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary>
     ] [
       fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"^^xsd:anyURI ;
       fhir:l <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library>
     ] [
       fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"^^xsd:anyURI ;
       fhir:l <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module>
     ] )
  ] ; # 
  fhir:text [
     fhir:status [ fhir:v "extensions" ] ;
     fhir:div [ fhir:v "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n<div>\n    <table class=\"grid dict\">\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Title: </b></th>\n            <td style=\"padding-left: 4px;\">IMMZD2DTDTPElements</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Id: </b></th>\n            <td style=\"padding-left: 4px;\">IMMZD2DTDTPElements</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Version: </b></th>\n            <td style=\"padding-left: 4px;\">1.0.0</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Url: </b></th>\n            <td style=\"padding-left: 4px;\"><a href=\"Library-IMMZD2DTDTPElements.html\">IMMZD2DTDTPElements</a></td>\n        </tr>\n        \n\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Status: </b></th>\n            <td style=\"padding-left: 4px;\">draft</td>\n        </tr>\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Type: </b></th>\n            <td style=\"padding-left: 4px;\">\n                \n                    \n                        \n                        <p style=\"margin-bottom: 5px;\">\n                            <b>system: </b> <span><a href=\"http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html\">http://terminology.hl7.org/CodeSystem/library-type</a></span>\n                        </p>\n                        \n                        \n                        <p style=\"margin-bottom: 5px;\">\n                            <b>code: </b> <span>logic-library</span>\n                        </p>\n                        \n                        \n                    \n                \n                \n            </td>\n        </tr>\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Date: </b></th>\n            <td style=\"padding-left: 4px;\">2026-03-31 13:54:17+0000</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Publisher: </b></th>\n            <td style=\"padding-left: 4px;\">WHO</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Description: </b></th>\n            <td style=\"padding-left: 4px;\"><div><p>This library defines context-independent elements for DTP used throughout the Immunization CPG</p>\n</div></td>\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        <tr>\n            <th scope=\"row\"><b>Related Artifacts: </b></th>\n            <td style=\"padding-left: 4px;\">\n                \n                \n                \n                <p><b>Dependencies</b></p>\n                <ul>\n                  \n                    <li><a href=\"Library-WHOConcepts.html\">WHOConcepts</a></li>\n                  \n                    <li><a href=\"Library-WHOCommon.html\">WHOCommon</a></li>\n                  \n                    <li><a href=\"Library-WHOElements.html\">WHOElements</a></li>\n                  \n                    <li><a href=\"Library-IMMZCommon.html\">IMMZCommon</a></li>\n                  \n                    <li><a href=\"Library-IMMZConcepts.html\">IMMZConcepts</a></li>\n                  \n                    <li><a href=\"Library-IMMZElements.html\">IMMZElements</a></li>\n                  \n                </ul>\n                \n                \n                \n                \n                \n            </td>\n        </tr>\n        \n\n        \n        <tr>\n          <th scope=\"row\"><b>Parameters: </b></th>\n          <td style=\"padding-left: 4px;\">\n            <table class=\"grid-dict\">\n              <tr><th><b>Name</b></th><th><b>Type</b></th><th><b>Min</b></th><th><b>Max</b></th><th><b>In/Out</b></th></tr>\n              \n                <tr><th>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>DTP Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>DTP Primary Series Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>Number of DTP Primary Series Doses Administered</th><th>integer</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Client's age is less than 6 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>No DTP primary series doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Client's age is between 6 weeks and 1 year</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>One DTP primary series dose was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Date of Latest DTP Dose</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>The latest DTP dose was administered less than 4 weeks ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>The latest DTP dose was administered more than 4 weeks ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Two DTP primary series doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Three DTP primary series doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Td Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>Td Booster Series Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>Number of Td Booster Series Doses Administered</th><th>integer</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>No tetanus and diphtheria booster doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Client's age is less than 12 months</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Client's age is more than or equal to 12 months</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>One tetanus and diphtheria booster dose was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Client's age is less than 4 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Client's age is more than or equal to 4 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Two tetanus and diphtheria booster doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Client's age is less than 9 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Client's age is more than or equal to 9 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Three tetanus and diphtheria booster doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Pertussis Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>Pertussis Booster Series Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>Number of Pertussis Booster Series Doses Administered</th><th>integer</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>No pertussis booster doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Client's age is less than 1 year</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Client's age is between 1 year and 6 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>The latest DTP dose was administered less than 6 months ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>The latest DTP dose was administered more than 6 months ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Client's age is more than 6 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>One pertussis booster dose was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Client's age is more than 1 year</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>The latest DTP dose was administered less than 1 year ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>The latest DTP dose was administered more than 1 year ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Date of Latest Td Dose</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>The latest tetanus and diphtheria dose was administered less than 1 year ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>The latest tetanus and diphtheria dose was administered more than 1 year ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Client is currently pregnant</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>No tetanus and diphtheria booster dose was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>One tetanus and diphtheria booster doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>The latest tetanus and diphtheria dose was administered less than 4 weeks ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>The latest tetanus and diphtheria dose was administered more than 4 weeks ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n            </table>\n          </td>\n        </tr>\n        \n\n        \n\n        \n        \n        <tr>\n          <td colspan=\"2\">\n            <table>\n              <tr><th><a id=\"cql-content\"><b>Content: </b></a> text/cql</th></tr>\n              <tr><td><pre><code class=\"language-cql\">\n/*\n  * Library: IMMZD2DTDTPElements\n  */\nlibrary IMMZD2DTDTPElements\n\nusing FHIR version '4.0.1'\ninclude FHIRHelpers version '4.0.1'\n\ninclude WHOConcepts\ninclude WHOCommon called WC\ninclude WHOElements called WE\n\ninclude IMMZCommon called Common\ninclude IMMZConcepts called Concepts\ninclude IMMZElements called Elements\n\n\ncontext Patient\n\n/*\n@internal: DTP containing Doses Administered to Patient\n*/\ndefine \"DTP Doses Administered to Patient\":\n  Elements.\"Doses Administered to Patient\" I\n  where\n    I.vaccineCode in Concepts.\"DTP-containing vaccines\"\n\n/*\n@internal: DTP containing Doses Administered to Patient that are in the Primary series\n*/\ndefine \"DTP Primary Series Doses Administered to Patient\":\n  \"DTP Doses Administered to Patient\".seriesPrimary()\n\n/*\n@internal: Number of DTP Primary Series doses\n*/\ndefine \"Number of DTP Primary Series Doses Administered\":\n  Count(\"DTP Primary Series Doses Administered to Patient\")\n\n/*\n@input: Client's age is less than 6 weeks\n@pseudocode: Today's date − \"Date of birth\" &lt; 6 weeks\n@code: Client's age is less than 6 weeks-40\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n*/\ndefine \"Client's age is less than 6 weeks\":\n  Elements.\"Current Patient Age In Weeks\" &lt; 6\n\n/*\n@input: No DTP primary series doses were administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"DTP-containing vaccines\" and \"Type of dose\" = \"Primary series\") = 0\n@code: No DTP primary series doses were administered-123\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n@decision: IMMZ.D2.DT.DTP.Pregnancy: Determine whether DTP-containing vaccines are needed for pregnant women\n*/\ndefine \"No DTP primary series doses were administered\":\n  \"Number of DTP Primary Series Doses Administered\" = 0\n\n/*\n@input: Client's age is between 6 weeks and 1 year\n@pseudocode: 6 weeks ≤ Today's date − \"Date of birth\" &lt; 1 year\n@code: Client's age is between 6 weeks and 1 year-49\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n*/\ndefine \"Client's age is between 6 weeks and 1 year\":\n  6 &lt;= Elements.\"Current Patient Age In Weeks\"\n  and Elements.\"Current Patient Age In Years\" &lt; 1\n\n/*\n@input: One DTP primary series dose was administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"DTP-containing vaccines\" and \"Type of dose\" = \"Primary series\") = 1\n@code: One DTP primary series dose was administered-123\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n*/\ndefine \"One DTP primary series dose was administered\":\n  \"Number of DTP Primary Series Doses Administered\" = 1\n\n/*\n@input: The latest DTP dose was administered less than 4 weeks ago\n@pseudocode: Today's date − latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"DTP-containing vaccines\") &lt; 4 weeks\n@code: The latest DTP dose was administered less than 4 weeks ago-113\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n*/\ndefine \"The latest DTP dose was administered less than 4 weeks ago\":\n  \"Date of Latest DTP Dose\" is not null\n    and duration in weeks between \"Date of Latest DTP Dose\" and Now() &lt; 4\n\n/*\n@input: The latest DTP dose was administered more than 4 weeks ago\n@pseudocode: Today's date − latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"DTP-containing vaccines\") ≥ 4 weeks\n@code: The latest DTP dose was administered more than 4 weeks ago-113\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n*/\ndefine \"The latest DTP dose was administered more than 4 weeks ago\":\n  not(\"The latest DTP dose was administered less than 4 weeks ago\")\n\n/*\n@input: Two DTP primary series doses were administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"DTP-containing vaccines\" and \"Type of dose\" = \"Primary series\") = 2\n@code: Two DTP primary series doses were administered-123\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n*/\ndefine \"Two DTP primary series doses were administered\":\n  \"Number of DTP Primary Series Doses Administered\" = 2\n\n/*\n@input: Three DTP primary series doses were administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"DTP-containing vaccines\" and \"Type of dose\" = \"Primary series\") = 3\n@code: Three DTP primary series doses were administered-123\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n@decision: IMMZ.D2.DT.DTP.Pregnancy: Determine whether DTP-containing vaccines are needed for pregnant women\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 3 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood DTP doses\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 4 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 4 childhood DTP doses\n*/\ndefine \"Three DTP primary series doses were administered\":\n  \"Number of DTP Primary Series Doses Administered\" = 3\n\n/*\n@input: No tetanus and diphtheria booster doses were administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"Tetanus and diphtheria-containing vaccines\" and \"Type of dose\" = \"Booster dose\") = 0\n@code: No tetanus and diphtheria booster doses were administered-140\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 3 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood DTP doses\n*/\ndefine \"No tetanus and diphtheria booster doses were administered\":\n  \"Number of Td Booster Series Doses Administered\" = 0\n\n/*\n@input: Client's age is less than 12 months\n@pseudocode: Today's date − \"Date of birth\" &lt; 12 months\n@code: Client's age is less than 12 months-42\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n*/\ndefine \"Client's age is less than 12 months\":\n  Elements.\"Current Patient Age In Months\" &lt; 12\n\n/*\n@input: Client's age is more than or equal to 12 months\n@pseudocode: Today's date − \"Date of birth\" ≥ 12 months\n@code: Client's age is more than or equal to 12 months-42\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n*/\ndefine \"Client's age is more than or equal to 12 months\":\n  Elements.\"Current Patient Age In Months\" &gt;= 12\n\n/*\n@input: One tetanus and diphtheria booster dose was administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"Tetanus and diphtheria-containing vaccines\" and \"Type of dose\" = \"Booster dose\") = 1\n@code: One tetanus and diphtheria booster dose was administered-140\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n@decision: IMMZ.D2.DT.DTP.Pregnancy: Determine whether DTP-containing vaccines are needed for pregnant women\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 4 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 4 childhood DTP doses\n*/\ndefine \"One tetanus and diphtheria booster dose was administered\":\n  \"Number of Td Booster Series Doses Administered\" = 1\n\n/*\n@input: Client's age is less than 4 years\n@pseudocode: Today's date − \"Date of birth\" &lt; 4 years\n@code: Client's age is less than 4 years-40\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n*/\ndefine \"Client's age is less than 4 years\":\n  Elements.\"Current Patient Age In Years\" &lt; 4\n\n/*\n@input: Client's age is more than or equal to 4 years\n@pseudocode: Today's date − \"Date of birth\" ≥ 4 years\n@code: Client's age is more than or equal to 4 years-40\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n*/\ndefine \"Client's age is more than or equal to 4 years\":\n  Elements.\"Current Patient Age In Years\" &gt;= 4\n\n/*\n@input: Two tetanus and diphtheria booster doses were administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"Tetanus and diphtheria-containing vaccines\" and \"Type of dose\" = \"Booster dose\") = 2\n@code: Two tetanus and diphtheria booster doses were administered-140\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n@decision: IMMZ.D2.DT.DTP.Pregnancy: Determine whether DTP-containing vaccines are needed for pregnant women\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 3 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood DTP doses\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 4 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 4 childhood DTP doses\n*/\ndefine \"Two tetanus and diphtheria booster doses were administered\":\n  \"Number of Td Booster Series Doses Administered\" = 2\n\n/*\n@input: Client's age is less than 9 years\n@pseudocode: Today's date − \"Date of birth\" &lt; 9 years\n@code: Client's age is less than 9 years-40\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n*/\ndefine \"Client's age is less than 9 years\":\n  Elements.\"Current Patient Age In Years\" &lt; 9\n\n/*\n@input: Client's age is more than or equal to 9 years\n@pseudocode: Today's date − \"Date of birth\" ≥ 9 years\n@code: Client's age is more than or equal to 9 years-40\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n*/\ndefine \"Client's age is more than or equal to 9 years\":\n  Elements.\"Current Patient Age In Years\" &gt;= 9\n\n/*\n@input: Three tetanus and diphtheria booster doses were administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"Tetanus and diphtheria-containing vaccines\" and \"Type of dose\" = \"Booster dose\") = 3\n@code: Three tetanus and diphtheria booster doses were administered-140\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n@decision: IMMZ.D2.DT.DTP.Pregnancy: Determine whether DTP-containing vaccines are needed for pregnant women\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 3 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood DTP doses\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 4 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 4 childhood DTP doses\n*/\ndefine \"Three tetanus and diphtheria booster doses were administered\":\n  \"Number of Td Booster Series Doses Administered\" = 3\n\n/*\n@input: No pertussis booster doses were administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"Pertussis-containing vaccines\" and \"Type of dose\" = \"Booster dose\") = 0\n@code: No pertussis booster doses were administered-127\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n*/\ndefine \"No pertussis booster doses were administered\":\n  \"Number of Pertussis Booster Series Doses Administered\" = 0\n\n/*\n@input: Client's age is less than 1 year\n@pseudocode: Today's date − \"Date of birth\" &lt; 1 year\n@code: Client's age is less than 1 year-39\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n*/\ndefine \"Client's age is less than 1 year\":\n  Elements.\"Current Patient Age In Years\" &lt; 1\n\n/*\n@input: Client's age is between 1 year and 6 years\n@pseudocode: 1 year ≤ Today's date − \"Date of birth\" ≤ 6 years\n@code: Client's age is between 1 year and 6 years-49\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n*/\ndefine \"Client's age is between 1 year and 6 years\":\n  1 &lt;= Elements.\"Current Patient Age In Years\"\n  and Elements.\"Current Patient Age In Years\" &lt;= 6\n\n/*\n@input: The latest DTP dose was administered less than 6 months ago\n@pseudocode: Today's date − latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"DTP-containing vaccines\") &lt; 6 months\n@code: The latest DTP dose was administered less than 6 months ago-114\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n*/\ndefine \"The latest DTP dose was administered less than 6 months ago\":\n  \"Date of Latest DTP Dose\" is not null\n    and duration in months between \"Date of Latest DTP Dose\" and Now() &lt; 6\n\n/*\n@input: The latest DTP dose was administered more than 6 months ago\n@pseudocode: Today's date − latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"DTP-containing vaccines\") ≥ 6 months\n@code: The latest DTP dose was administered more than 6 months ago-114\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n*/\ndefine \"The latest DTP dose was administered more than 6 months ago\":\n  not(\"The latest DTP dose was administered less than 6 months ago\")\n\n/*\n@input: Client's age is more than 6 years\n@pseudocode: Today's date − \"Date of birth\" &gt; 6 years\n@code: Client's age is more than 6 years-40\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n*/\ndefine \"Client's age is more than 6 years\":\n  Elements.\"Current Patient Age In Years\" &gt; 6\n\n/*\n@input: One pertussis booster dose was administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"Pertussis-containing vaccines\" and \"Type of dose\" = \"Booster dose\") = 1\n@code: One pertussis booster dose was administered-127\n@decision: IMMZ.D2.DT.DTP.On-time start: DTP vaccination schedule, on-time start (at ≤ 12 months of age)\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n*/\ndefine \"One pertussis booster dose was administered\":\n  \"Number of Pertussis Booster Series Doses Administered\" = 1\n\n/*\n@input: Client's age is more than 1 year\n@pseudocode: Today's date − \"Date of birth\" &gt; 1 year\n@code: Client's age is more than 1 year-39\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n*/\ndefine \"Client's age is more than 1 year\":\n  Elements.\"Current Patient Age In Years\" &gt;= 1\n\n/*\n@input: The latest DTP dose was administered less than 1 year ago\n@pseudocode: Today's date − latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"DTP-containing vaccines\") &lt; 1 year\n@code: The latest DTP dose was administered less than 1 year ago-112\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n*/\ndefine \"The latest DTP dose was administered less than 1 year ago\":\n  \"Date of Latest DTP Dose\" is not null\n    and duration in years between \"Date of Latest DTP Dose\" and Now() &lt; 1\n\n/*\n@input: The latest DTP dose was administered more than 1 year ago\n@pseudocode: Today's date − latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"DTP-containing vaccines\") ≥ 1 year\n@code: The latest DTP dose was administered more than 1 year ago-112\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n*/\ndefine \"The latest DTP dose was administered more than 1 year ago\":\n  not(\"The latest DTP dose was administered less than 1 year ago\")\n\n/*\n@input: The latest tetanus and diphtheria dose was administered less than 1 year ago\n@pseudocode: Today's date − latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"Tetanus and diphtheria-containing vaccines\") &lt; 1 year\n@code: The latest tetanus and diphtheria dose was administered less than 1 year ago-131\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 3 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood DTP doses\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 4 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 4 childhood DTP doses\n*/\ndefine \"The latest tetanus and diphtheria dose was administered less than 1 year ago\":\n  \"Date of Latest Td Dose\" is not null\n    and duration in years between \"Date of Latest Td Dose\" and Now() &lt; 1\n\n/*\n@input: The latest tetanus and diphtheria dose was administered more than 1 year ago\n@pseudocode: Today's date − latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"Tetanus and diphtheria-containing vaccines\") ≥ 1 year\n@code: The latest tetanus and diphtheria dose was administered more than 1 year ago-131\n@decision: IMMZ.D2.DT.DTP.Delayed or interrupted series: DTP vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 3 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood DTP doses\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 4 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 4 childhood DTP doses\n*/\ndefine \"The latest tetanus and diphtheria dose was administered more than 1 year ago\":\n  not(\"The latest tetanus and diphtheria dose was administered less than 1 year ago\")\n\n/*\n@input: Client is currently pregnant\n@pseudocode: \"Currently pregnant\" = TRUE\n@code: Client is currently pregnant-27\n@decision: IMMZ.D2.DT.DTP.Pregnancy: Determine whether DTP-containing vaccines are needed for pregnant women\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 3 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood DTP doses\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 4 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 4 childhood DTP doses\n*/\ndefine \"Client is currently pregnant\":\n  Elements.\"The client is pregnant\"\n\n/*\n@input: No tetanus and diphtheria booster dose was administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"Tetanus and diphtheria-containing vaccines\" and \"Type of dose\" = \"Booster dose\") = 0\n@code: No tetanus and diphtheria booster dose was administered-140\n@decision: IMMZ.D2.DT.DTP.Pregnancy: Determine whether DTP-containing vaccines are needed for pregnant women\n*/\ndefine \"No tetanus and diphtheria booster dose was administered\":\n  \"No tetanus and diphtheria booster doses were administered\"\n\n/*\n@input: One tetanus and diphtheria booster doses were administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"Tetanus and diphtheria-containing vaccines\" and \"Type of dose\" = \"Booster dose\") = 1\n@code: One tetanus and diphtheria booster doses were administered-140\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 3 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood DTP doses\n*/\ndefine \"One tetanus and diphtheria booster doses were administered\":\n  \"One tetanus and diphtheria booster dose was administered\"\n\n/*\n@input: The latest tetanus and diphtheria dose was administered less than 4 weeks ago\n@pseudocode: Today's date − latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"Tetanus and diphtheria-containing vaccines\") &lt; 4 weeks\n@code: The latest tetanus and diphtheria dose was administered less than 4 weeks ago-132\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 3 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood DTP doses\n*/\ndefine \"The latest tetanus and diphtheria dose was administered less than 4 weeks ago\":\n  \"Date of Latest Td Dose\" is not null\n    and duration in weeks between \"Date of Latest Td Dose\" and Now() &lt; 4\n\n/*\n@input: The latest tetanus and diphtheria dose was administered more than 4 weeks ago\n@pseudocode: Today's date − latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"Tetanus and diphtheria-containing vaccines\") &gt; 4 weeks\n@code: The latest tetanus and diphtheria dose was administered more than 4 weeks ago-132\n@decision: IMMZ.D2.DT.DTP.Pregnancy starting with 3 doses: Diphtheria and tetanus vaccination schedule in pregnant women who received 3 childhood DTP doses\n*/\ndefine \"The latest tetanus and diphtheria dose was administered more than 4 weeks ago\":\n  not(\"The latest tetanus and diphtheria dose was administered less than 4 weeks ago\")\n\n/*\n@internal: Td Doses Administered to Patient\n*/\ndefine \"Td Doses Administered to Patient\":\n  Elements.\"Doses Administered to Patient\" I\n  where\n    I.vaccineCode in Concepts.\"Tetanus and diphtheria-containing vaccines\"\n\n/*\n@internal: Pertussis Doses Administered to Patient\n*/\ndefine \"Pertussis Doses Administered to Patient\":\n  Elements.\"Doses Administered to Patient\" I\n  where\n    I.vaccineCode in Concepts.\"Pertussis-containing vaccines\"\n\n/*\n@internal: Date of Latest DTP Dose\n*/\ndefine \"Date of Latest DTP Dose\":\n  date from start of \"DTP Doses Administered to Patient\".mostRecent().occurrence.toInterval()\n\n/*\n@internal: Date of Latest Td Dose\n*/\ndefine \"Date of Latest Td Dose\":\n  date from start of \"Td Doses Administered to Patient\".mostRecent().occurrence.toInterval()\n\n/*\n@internal: Td Booster Series Doses Administered to Patient\n*/\ndefine \"Td Booster Series Doses Administered to Patient\":\n  \"Td Doses Administered to Patient\".seriesBooster()\n\n/*\n@internal: Number of Td Booster Series Doses Administered\n*/\ndefine \"Number of Td Booster Series Doses Administered\":\n  Count(\"Td Booster Series Doses Administered to Patient\")\n\n/*\n@internal: Pertussis Booster Series Doses Administered to Patient\n*/\ndefine \"Pertussis Booster Series Doses Administered to Patient\":\n  \"Pertussis Doses Administered to Patient\".seriesBooster()\n\n/*\n@internal: Number of Pertussis Booster Series Doses Administered\n*/\ndefine \"Number of Pertussis Booster Series Doses Administered\":\n  Count(\"Pertussis Booster Series Doses Administered to Patient\")\n</code></pre></td></tr>\n            </table>\n          </td>\n        </tr>\n        \n        \n        \n    </table>\n</div>\n</div>"^^rdf:XMLLiteral ]
  ] ; # 
  fhir:extension ( [
     fhir:url [
       fhir:v "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability"^^xsd:anyURI ;
       fhir:l <http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability>
     ] ;
     fhir:value [
       a fhir:Code ;
       fhir:v "computable"
     ]
  ] ) ; # 
  fhir:url [
     fhir:v "http://smart.who.int/immunizations/Library/IMMZD2DTDTPElements"^^xsd:anyURI ;
     fhir:l <http://smart.who.int/immunizations/Library/IMMZD2DTDTPElements>
  ] ; # 
  fhir:version [ fhir:v "1.0.0"] ; # 
  fhir:name [ fhir:v "IMMZD2DTDTPElements"] ; # 
  fhir:title [ fhir:v "IMMZD2DTDTPElements"] ; # 
  fhir:status [ fhir:v "draft"] ; # 
  fhir:experimental [ fhir:v false] ; # 
  fhir:type [
     fhir:coding ( [
       fhir:system [
         fhir:v "http://terminology.hl7.org/CodeSystem/library-type"^^xsd:anyURI ;
         fhir:l <http://terminology.hl7.org/CodeSystem/library-type>
       ] ;
       fhir:code [ fhir:v "logic-library" ]
     ] )
  ] ; # 
  fhir:date [ fhir:v "2026-03-31T13:54:17+00:00"^^xsd:dateTime] ; # 
  fhir:publisher [ fhir:v "WHO"] ; # 
  fhir:contact ( [
     fhir:name [ fhir:v "WHO" ] ;
     fhir:telecom ( [
       fhir:system [ fhir:v "url" ] ;
       fhir:value [ fhir:v "http://who.int" ]
     ] )
  ] ) ; # 
  fhir:description [ fhir:v "This library defines context-independent elements for DTP used throughout the Immunization CPG"] ; # 
  fhir:relatedArtifact ( [
     fhir:type [ fhir:v "depends-on" ] ;
     fhir:display [ fhir:v "Library WHOConcepts" ] ;
     fhir:resource [
       fhir:v "http://smart.who.int/immunizations/Library/WHOConcepts"^^xsd:anyURI ;
       fhir:l <http://smart.who.int/immunizations/Library/WHOConcepts>
     ]
  ] [
     fhir:type [ fhir:v "depends-on" ] ;
     fhir:display [ fhir:v "Library WC" ] ;
     fhir:resource [
       fhir:v "http://smart.who.int/immunizations/Library/WHOCommon"^^xsd:anyURI ;
       fhir:l <http://smart.who.int/immunizations/Library/WHOCommon>
     ]
  ] [
     fhir:type [ fhir:v "depends-on" ] ;
     fhir:display [ fhir:v "Library WE" ] ;
     fhir:resource [
       fhir:v "http://smart.who.int/immunizations/Library/WHOElements"^^xsd:anyURI ;
       fhir:l <http://smart.who.int/immunizations/Library/WHOElements>
     ]
  ] [
     fhir:type [ fhir:v "depends-on" ] ;
     fhir:display [ fhir:v "Library Common" ] ;
     fhir:resource [
       fhir:v "http://smart.who.int/immunizations/Library/IMMZCommon"^^xsd:anyURI ;
       fhir:l <http://smart.who.int/immunizations/Library/IMMZCommon>
     ]
  ] [
     fhir:type [ fhir:v "depends-on" ] ;
     fhir:display [ fhir:v "Library Concepts" ] ;
     fhir:resource [
       fhir:v "http://smart.who.int/immunizations/Library/IMMZConcepts"^^xsd:anyURI ;
       fhir:l <http://smart.who.int/immunizations/Library/IMMZConcepts>
     ]
  ] [
     fhir:type [ fhir:v "depends-on" ] ;
     fhir:display [ fhir:v "Library Elements" ] ;
     fhir:resource [
       fhir:v "http://smart.who.int/immunizations/Library/IMMZElements"^^xsd:anyURI ;
       fhir:l <http://smart.who.int/immunizations/Library/IMMZElements>
     ]
  ] ) ; # 
  fhir:parameter ( [
     fhir:name [ fhir:v "Patient" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "Patient" ]
  ] [
     fhir:name [ fhir:v "DTP Doses Administered to Patient" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "*" ] ;
     fhir:type [ fhir:v "Immunization" ]
  ] [
     fhir:name [ fhir:v "DTP Primary Series Doses Administered to Patient" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "*" ] ;
     fhir:type [ fhir:v "Immunization" ]
  ] [
     fhir:name [ fhir:v "Number of DTP Primary Series Doses Administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "integer" ]
  ] [
     fhir:name [ fhir:v "Client's age is less than 6 weeks" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "No DTP primary series doses were administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is between 6 weeks and 1 year" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "One DTP primary series dose was administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Date of Latest DTP Dose" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "date" ]
  ] [
     fhir:name [ fhir:v "The latest DTP dose was administered less than 4 weeks ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The latest DTP dose was administered more than 4 weeks ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Two DTP primary series doses were administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Three DTP primary series doses were administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Td Doses Administered to Patient" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "*" ] ;
     fhir:type [ fhir:v "Immunization" ]
  ] [
     fhir:name [ fhir:v "Td Booster Series Doses Administered to Patient" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "*" ] ;
     fhir:type [ fhir:v "Immunization" ]
  ] [
     fhir:name [ fhir:v "Number of Td Booster Series Doses Administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "integer" ]
  ] [
     fhir:name [ fhir:v "No tetanus and diphtheria booster doses were administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is less than 12 months" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is more than or equal to 12 months" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "One tetanus and diphtheria booster dose was administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is less than 4 years" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is more than or equal to 4 years" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Two tetanus and diphtheria booster doses were administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is less than 9 years" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is more than or equal to 9 years" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Three tetanus and diphtheria booster doses were administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Pertussis Doses Administered to Patient" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "*" ] ;
     fhir:type [ fhir:v "Immunization" ]
  ] [
     fhir:name [ fhir:v "Pertussis Booster Series Doses Administered to Patient" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "*" ] ;
     fhir:type [ fhir:v "Immunization" ]
  ] [
     fhir:name [ fhir:v "Number of Pertussis Booster Series Doses Administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "integer" ]
  ] [
     fhir:name [ fhir:v "No pertussis booster doses were administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is less than 1 year" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is between 1 year and 6 years" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The latest DTP dose was administered less than 6 months ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The latest DTP dose was administered more than 6 months ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is more than 6 years" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "One pertussis booster dose was administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client's age is more than 1 year" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The latest DTP dose was administered less than 1 year ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The latest DTP dose was administered more than 1 year ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Date of Latest Td Dose" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "date" ]
  ] [
     fhir:name [ fhir:v "The latest tetanus and diphtheria dose was administered less than 1 year ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The latest tetanus and diphtheria dose was administered more than 1 year ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Client is currently pregnant" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "No tetanus and diphtheria booster dose was administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "One tetanus and diphtheria booster doses were administered" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The latest tetanus and diphtheria dose was administered less than 4 weeks ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "The latest tetanus and diphtheria dose was administered more than 4 weeks ago" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] ) ; # 
  fhir:content ( [
     fhir:contentType [ fhir:v "text/cql" ] ;
     fhir:data [ fhir:v "Ci8qCiAgKiBMaWJyYXJ5OiBJTU1aRDJEVERUUEVsZW1lbnRzCiAgKi8KbGlicmFyeSBJTU1aRDJEVERUUEVsZW1lbnRzCgp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBXSE9Db25jZXB0cwppbmNsdWRlIFdIT0NvbW1vbiBjYWxsZWQgV0MKaW5jbHVkZSBXSE9FbGVtZW50cyBjYWxsZWQgV0UKCmluY2x1ZGUgSU1NWkNvbW1vbiBjYWxsZWQgQ29tbW9uCmluY2x1ZGUgSU1NWkNvbmNlcHRzIGNhbGxlZCBDb25jZXB0cwppbmNsdWRlIElNTVpFbGVtZW50cyBjYWxsZWQgRWxlbWVudHMKCgpjb250ZXh0IFBhdGllbnQKCi8qCkBpbnRlcm5hbDogRFRQIGNvbnRhaW5pbmcgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQKKi8KZGVmaW5lICJEVFAgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiOgogIEVsZW1lbnRzLiJEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIgSQogIHdoZXJlCiAgICBJLnZhY2NpbmVDb2RlIGluIENvbmNlcHRzLiJEVFAtY29udGFpbmluZyB2YWNjaW5lcyIKCi8qCkBpbnRlcm5hbDogRFRQIGNvbnRhaW5pbmcgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQgdGhhdCBhcmUgaW4gdGhlIFByaW1hcnkgc2VyaWVzCiovCmRlZmluZSAiRFRQIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IjoKICAiRFRQIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50Ii5zZXJpZXNQcmltYXJ5KCkKCi8qCkBpbnRlcm5hbDogTnVtYmVyIG9mIERUUCBQcmltYXJ5IFNlcmllcyBkb3NlcwoqLwpkZWZpbmUgIk51bWJlciBvZiBEVFAgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIjoKICBDb3VudCgiRFRQIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IikKCi8qCkBpbnB1dDogQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiA2IHdlZWtzCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSICJEYXRlIG9mIGJpcnRoIiA8IDYgd2Vla3MKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gNiB3ZWVrcy00MApAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLk9uLXRpbWUgc3RhcnQ6IERUUCB2YWNjaW5hdGlvbiBzY2hlZHVsZSwgb24tdGltZSBzdGFydCAoYXQg4omkIDEyIG1vbnRocyBvZiBhZ2UpCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiA2IHdlZWtzIjoKICBFbGVtZW50cy4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBXZWVrcyIgPCA2CgovKgpAaW5wdXQ6IE5vIERUUCBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJEVFAtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAwCkBjb2RlOiBObyBEVFAgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQtMTIzCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuT24tdGltZSBzdGFydDogRFRQIHZhY2NpbmF0aW9uIHNjaGVkdWxlLCBvbi10aW1lIHN0YXJ0IChhdCDiiaQgMTIgbW9udGhzIG9mIGFnZSkKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5EZWxheWVkIG9yIGludGVycnVwdGVkIHNlcmllczogRFRQIHZhY2NpbmF0aW9uIHNjaGVkdWxlIGZvciB0aGUgZm9sbG93aW5nIGdyb3VwczogY2hpbGRyZW4g4omlIDEgeWVhciBvZiBhZ2Ugd2l0aCBubyBwcmV2aW91cyBpbW11bml6YXRpb24sIGFkb2xlc2NlbnRzIGFuZCBhZHVsdHMgd2l0aCBubyBwcmV2aW91cyBpbW11bml6YXRpb24gKGluY2x1ZGluZyBwcmVnbmFudCB3b21lbikgYW5kIHN1cHBsZW1lbnRhcnkgaW1tdW5pemF0aW9uIGFjdGl2aXRpZXMgaW4gaGlnaC1yaXNrIGFyZWFzLCBmb3Igd29tZW4gb2YgcmVwcm9kdWN0aXZlIGFnZQpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLlByZWduYW5jeTogRGV0ZXJtaW5lIHdoZXRoZXIgRFRQLWNvbnRhaW5pbmcgdmFjY2luZXMgYXJlIG5lZWRlZCBmb3IgcHJlZ25hbnQgd29tZW4KKi8KZGVmaW5lICJObyBEVFAgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQiOgogICJOdW1iZXIgb2YgRFRQIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAwCgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBiZXR3ZWVuIDYgd2Vla3MgYW5kIDEgeWVhcgpAcHNldWRvY29kZTogNiB3ZWVrcyDiiaQgVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIgPCAxIHllYXIKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBiZXR3ZWVuIDYgd2Vla3MgYW5kIDEgeWVhci00OQpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLk9uLXRpbWUgc3RhcnQ6IERUUCB2YWNjaW5hdGlvbiBzY2hlZHVsZSwgb24tdGltZSBzdGFydCAoYXQg4omkIDEyIG1vbnRocyBvZiBhZ2UpCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIGJldHdlZW4gNiB3ZWVrcyBhbmQgMSB5ZWFyIjoKICA2IDw9IEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFdlZWtzIgogIGFuZCBFbGVtZW50cy4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBZZWFycyIgPCAxCgovKgpAaW5wdXQ6IE9uZSBEVFAgcHJpbWFyeSBzZXJpZXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIkRUUC1jb250YWluaW5nIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDEKQGNvZGU6IE9uZSBEVFAgcHJpbWFyeSBzZXJpZXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkLTEyMwpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLk9uLXRpbWUgc3RhcnQ6IERUUCB2YWNjaW5hdGlvbiBzY2hlZHVsZSwgb24tdGltZSBzdGFydCAoYXQg4omkIDEyIG1vbnRocyBvZiBhZ2UpCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuRGVsYXllZCBvciBpbnRlcnJ1cHRlZCBzZXJpZXM6IERUUCB2YWNjaW5hdGlvbiBzY2hlZHVsZSBmb3IgdGhlIGZvbGxvd2luZyBncm91cHM6IGNoaWxkcmVuIOKJpSAxIHllYXIgb2YgYWdlIHdpdGggbm8gcHJldmlvdXMgaW1tdW5pemF0aW9uLCBhZG9sZXNjZW50cyBhbmQgYWR1bHRzIHdpdGggbm8gcHJldmlvdXMgaW1tdW5pemF0aW9uIChpbmNsdWRpbmcgcHJlZ25hbnQgd29tZW4pIGFuZCBzdXBwbGVtZW50YXJ5IGltbXVuaXphdGlvbiBhY3Rpdml0aWVzIGluIGhpZ2gtcmlzayBhcmVhcywgZm9yIHdvbWVuIG9mIHJlcHJvZHVjdGl2ZSBhZ2UKKi8KZGVmaW5lICJPbmUgRFRQIHByaW1hcnkgc2VyaWVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCI6CiAgIk51bWJlciBvZiBEVFAgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDEKCi8qCkBpbnB1dDogVGhlIGxhdGVzdCBEVFAgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiA0IHdlZWtzIGFnbwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiBsYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJEVFAtY29udGFpbmluZyB2YWNjaW5lcyIpIDwgNCB3ZWVrcwpAY29kZTogVGhlIGxhdGVzdCBEVFAgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiA0IHdlZWtzIGFnby0xMTMKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5Pbi10aW1lIHN0YXJ0OiBEVFAgdmFjY2luYXRpb24gc2NoZWR1bGUsIG9uLXRpbWUgc3RhcnQgKGF0IOKJpCAxMiBtb250aHMgb2YgYWdlKQpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLkRlbGF5ZWQgb3IgaW50ZXJydXB0ZWQgc2VyaWVzOiBEVFAgdmFjY2luYXRpb24gc2NoZWR1bGUgZm9yIHRoZSBmb2xsb3dpbmcgZ3JvdXBzOiBjaGlsZHJlbiDiiaUgMSB5ZWFyIG9mIGFnZSB3aXRoIG5vIHByZXZpb3VzIGltbXVuaXphdGlvbiwgYWRvbGVzY2VudHMgYW5kIGFkdWx0cyB3aXRoIG5vIHByZXZpb3VzIGltbXVuaXphdGlvbiAoaW5jbHVkaW5nIHByZWduYW50IHdvbWVuKSBhbmQgc3VwcGxlbWVudGFyeSBpbW11bml6YXRpb24gYWN0aXZpdGllcyBpbiBoaWdoLXJpc2sgYXJlYXMsIGZvciB3b21lbiBvZiByZXByb2R1Y3RpdmUgYWdlCiovCmRlZmluZSAiVGhlIGxhdGVzdCBEVFAgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiA0IHdlZWtzIGFnbyI6CiAgIkRhdGUgb2YgTGF0ZXN0IERUUCBEb3NlIiBpcyBub3QgbnVsbAogICAgYW5kIGR1cmF0aW9uIGluIHdlZWtzIGJldHdlZW4gIkRhdGUgb2YgTGF0ZXN0IERUUCBEb3NlIiBhbmQgTm93KCkgPCA0CgovKgpAaW5wdXQ6IFRoZSBsYXRlc3QgRFRQIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gNCB3ZWVrcyBhZ28KQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgbGF0ZXN0ICJEYXRlIGFuZCB0aW1lIG9mIHZhY2NpbmF0aW9uIiAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiRFRQLWNvbnRhaW5pbmcgdmFjY2luZXMiKSDiiaUgNCB3ZWVrcwpAY29kZTogVGhlIGxhdGVzdCBEVFAgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiA0IHdlZWtzIGFnby0xMTMKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5Pbi10aW1lIHN0YXJ0OiBEVFAgdmFjY2luYXRpb24gc2NoZWR1bGUsIG9uLXRpbWUgc3RhcnQgKGF0IOKJpCAxMiBtb250aHMgb2YgYWdlKQpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLkRlbGF5ZWQgb3IgaW50ZXJydXB0ZWQgc2VyaWVzOiBEVFAgdmFjY2luYXRpb24gc2NoZWR1bGUgZm9yIHRoZSBmb2xsb3dpbmcgZ3JvdXBzOiBjaGlsZHJlbiDiiaUgMSB5ZWFyIG9mIGFnZSB3aXRoIG5vIHByZXZpb3VzIGltbXVuaXphdGlvbiwgYWRvbGVzY2VudHMgYW5kIGFkdWx0cyB3aXRoIG5vIHByZXZpb3VzIGltbXVuaXphdGlvbiAoaW5jbHVkaW5nIHByZWduYW50IHdvbWVuKSBhbmQgc3VwcGxlbWVudGFyeSBpbW11bml6YXRpb24gYWN0aXZpdGllcyBpbiBoaWdoLXJpc2sgYXJlYXMsIGZvciB3b21lbiBvZiByZXByb2R1Y3RpdmUgYWdlCiovCmRlZmluZSAiVGhlIGxhdGVzdCBEVFAgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiA0IHdlZWtzIGFnbyI6CiAgbm90KCJUaGUgbGF0ZXN0IERUUCBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDQgd2Vla3MgYWdvIikKCi8qCkBpbnB1dDogVHdvIERUUCBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJEVFAtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAyCkBjb2RlOiBUd28gRFRQIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkLTEyMwpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLk9uLXRpbWUgc3RhcnQ6IERUUCB2YWNjaW5hdGlvbiBzY2hlZHVsZSwgb24tdGltZSBzdGFydCAoYXQg4omkIDEyIG1vbnRocyBvZiBhZ2UpCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuRGVsYXllZCBvciBpbnRlcnJ1cHRlZCBzZXJpZXM6IERUUCB2YWNjaW5hdGlvbiBzY2hlZHVsZSBmb3IgdGhlIGZvbGxvd2luZyBncm91cHM6IGNoaWxkcmVuIOKJpSAxIHllYXIgb2YgYWdlIHdpdGggbm8gcHJldmlvdXMgaW1tdW5pemF0aW9uLCBhZG9sZXNjZW50cyBhbmQgYWR1bHRzIHdpdGggbm8gcHJldmlvdXMgaW1tdW5pemF0aW9uIChpbmNsdWRpbmcgcHJlZ25hbnQgd29tZW4pIGFuZCBzdXBwbGVtZW50YXJ5IGltbXVuaXphdGlvbiBhY3Rpdml0aWVzIGluIGhpZ2gtcmlzayBhcmVhcywgZm9yIHdvbWVuIG9mIHJlcHJvZHVjdGl2ZSBhZ2UKKi8KZGVmaW5lICJUd28gRFRQIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkIjoKICAiTnVtYmVyIG9mIERUUCBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMgoKLyoKQGlucHV0OiBUaHJlZSBEVFAgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiRFRQLWNvbnRhaW5pbmcgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMwpAY29kZTogVGhyZWUgRFRQIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkLTEyMwpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLk9uLXRpbWUgc3RhcnQ6IERUUCB2YWNjaW5hdGlvbiBzY2hlZHVsZSwgb24tdGltZSBzdGFydCAoYXQg4omkIDEyIG1vbnRocyBvZiBhZ2UpCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuRGVsYXllZCBvciBpbnRlcnJ1cHRlZCBzZXJpZXM6IERUUCB2YWNjaW5hdGlvbiBzY2hlZHVsZSBmb3IgdGhlIGZvbGxvd2luZyBncm91cHM6IGNoaWxkcmVuIOKJpSAxIHllYXIgb2YgYWdlIHdpdGggbm8gcHJldmlvdXMgaW1tdW5pemF0aW9uLCBhZG9sZXNjZW50cyBhbmQgYWR1bHRzIHdpdGggbm8gcHJldmlvdXMgaW1tdW5pemF0aW9uIChpbmNsdWRpbmcgcHJlZ25hbnQgd29tZW4pIGFuZCBzdXBwbGVtZW50YXJ5IGltbXVuaXphdGlvbiBhY3Rpdml0aWVzIGluIGhpZ2gtcmlzayBhcmVhcywgZm9yIHdvbWVuIG9mIHJlcHJvZHVjdGl2ZSBhZ2UKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5QcmVnbmFuY3k6IERldGVybWluZSB3aGV0aGVyIERUUC1jb250YWluaW5nIHZhY2NpbmVzIGFyZSBuZWVkZWQgZm9yIHByZWduYW50IHdvbWVuCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuUHJlZ25hbmN5IHN0YXJ0aW5nIHdpdGggMyBkb3NlczogRGlwaHRoZXJpYSBhbmQgdGV0YW51cyB2YWNjaW5hdGlvbiBzY2hlZHVsZSBpbiBwcmVnbmFudCB3b21lbiB3aG8gcmVjZWl2ZWQgMyBjaGlsZGhvb2QgRFRQIGRvc2VzCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuUHJlZ25hbmN5IHN0YXJ0aW5nIHdpdGggNCBkb3NlczogRGlwaHRoZXJpYSBhbmQgdGV0YW51cyB2YWNjaW5hdGlvbiBzY2hlZHVsZSBpbiBwcmVnbmFudCB3b21lbiB3aG8gcmVjZWl2ZWQgNCBjaGlsZGhvb2QgRFRQIGRvc2VzCiovCmRlZmluZSAiVGhyZWUgRFRQIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkIjoKICAiTnVtYmVyIG9mIERUUCBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMwoKLyoKQGlucHV0OiBObyB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGJvb3N0ZXIgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiQm9vc3RlciBkb3NlIikgPSAwCkBjb2RlOiBObyB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGJvb3N0ZXIgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQtMTQwCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuT24tdGltZSBzdGFydDogRFRQIHZhY2NpbmF0aW9uIHNjaGVkdWxlLCBvbi10aW1lIHN0YXJ0IChhdCDiiaQgMTIgbW9udGhzIG9mIGFnZSkKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5EZWxheWVkIG9yIGludGVycnVwdGVkIHNlcmllczogRFRQIHZhY2NpbmF0aW9uIHNjaGVkdWxlIGZvciB0aGUgZm9sbG93aW5nIGdyb3VwczogY2hpbGRyZW4g4omlIDEgeWVhciBvZiBhZ2Ugd2l0aCBubyBwcmV2aW91cyBpbW11bml6YXRpb24sIGFkb2xlc2NlbnRzIGFuZCBhZHVsdHMgd2l0aCBubyBwcmV2aW91cyBpbW11bml6YXRpb24gKGluY2x1ZGluZyBwcmVnbmFudCB3b21lbikgYW5kIHN1cHBsZW1lbnRhcnkgaW1tdW5pemF0aW9uIGFjdGl2aXRpZXMgaW4gaGlnaC1yaXNrIGFyZWFzLCBmb3Igd29tZW4gb2YgcmVwcm9kdWN0aXZlIGFnZQpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLlByZWduYW5jeSBzdGFydGluZyB3aXRoIDMgZG9zZXM6IERpcGh0aGVyaWEgYW5kIHRldGFudXMgdmFjY2luYXRpb24gc2NoZWR1bGUgaW4gcHJlZ25hbnQgd29tZW4gd2hvIHJlY2VpdmVkIDMgY2hpbGRob29kIERUUCBkb3NlcwoqLwpkZWZpbmUgIk5vIHRldGFudXMgYW5kIGRpcGh0aGVyaWEgYm9vc3RlciBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZCI6CiAgIk51bWJlciBvZiBUZCBCb29zdGVyIFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMAoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDEyIG1vbnRocwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIgPCAxMiBtb250aHMKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gMTIgbW9udGhzLTQyCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuT24tdGltZSBzdGFydDogRFRQIHZhY2NpbmF0aW9uIHNjaGVkdWxlLCBvbi10aW1lIHN0YXJ0IChhdCDiiaQgMTIgbW9udGhzIG9mIGFnZSkKKi8KZGVmaW5lICJDbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDEyIG1vbnRocyI6CiAgRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gTW9udGhzIiA8IDEyCgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gMTIgbW9udGhzCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSICJEYXRlIG9mIGJpcnRoIiDiiaUgMTIgbW9udGhzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDEyIG1vbnRocy00MgpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLk9uLXRpbWUgc3RhcnQ6IERUUCB2YWNjaW5hdGlvbiBzY2hlZHVsZSwgb24tdGltZSBzdGFydCAoYXQg4omkIDEyIG1vbnRocyBvZiBhZ2UpCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIG1vcmUgdGhhbiBvciBlcXVhbCB0byAxMiBtb250aHMiOgogIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIE1vbnRocyIgPj0gMTIKCi8qCkBpbnB1dDogT25lIHRldGFudXMgYW5kIGRpcGh0aGVyaWEgYm9vc3RlciBkb3NlIHdhcyBhZG1pbmlzdGVyZWQKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiQm9vc3RlciBkb3NlIikgPSAxCkBjb2RlOiBPbmUgdGV0YW51cyBhbmQgZGlwaHRoZXJpYSBib29zdGVyIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZC0xNDAKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5Pbi10aW1lIHN0YXJ0OiBEVFAgdmFjY2luYXRpb24gc2NoZWR1bGUsIG9uLXRpbWUgc3RhcnQgKGF0IOKJpCAxMiBtb250aHMgb2YgYWdlKQpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLkRlbGF5ZWQgb3IgaW50ZXJydXB0ZWQgc2VyaWVzOiBEVFAgdmFjY2luYXRpb24gc2NoZWR1bGUgZm9yIHRoZSBmb2xsb3dpbmcgZ3JvdXBzOiBjaGlsZHJlbiDiiaUgMSB5ZWFyIG9mIGFnZSB3aXRoIG5vIHByZXZpb3VzIGltbXVuaXphdGlvbiwgYWRvbGVzY2VudHMgYW5kIGFkdWx0cyB3aXRoIG5vIHByZXZpb3VzIGltbXVuaXphdGlvbiAoaW5jbHVkaW5nIHByZWduYW50IHdvbWVuKSBhbmQgc3VwcGxlbWVudGFyeSBpbW11bml6YXRpb24gYWN0aXZpdGllcyBpbiBoaWdoLXJpc2sgYXJlYXMsIGZvciB3b21lbiBvZiByZXByb2R1Y3RpdmUgYWdlCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuUHJlZ25hbmN5OiBEZXRlcm1pbmUgd2hldGhlciBEVFAtY29udGFpbmluZyB2YWNjaW5lcyBhcmUgbmVlZGVkIGZvciBwcmVnbmFudCB3b21lbgpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLlByZWduYW5jeSBzdGFydGluZyB3aXRoIDQgZG9zZXM6IERpcGh0aGVyaWEgYW5kIHRldGFudXMgdmFjY2luYXRpb24gc2NoZWR1bGUgaW4gcHJlZ25hbnQgd29tZW4gd2hvIHJlY2VpdmVkIDQgY2hpbGRob29kIERUUCBkb3NlcwoqLwpkZWZpbmUgIk9uZSB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIjoKICAiTnVtYmVyIG9mIFRkIEJvb3N0ZXIgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAxCgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gNCB5ZWFycwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIgPCA0IHllYXJzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDQgeWVhcnMtNDAKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5Pbi10aW1lIHN0YXJ0OiBEVFAgdmFjY2luYXRpb24gc2NoZWR1bGUsIG9uLXRpbWUgc3RhcnQgKGF0IOKJpCAxMiBtb250aHMgb2YgYWdlKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gNCB5ZWFycyI6CiAgRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gWWVhcnMiIDwgNAoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDQgeWVhcnMKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgIkRhdGUgb2YgYmlydGgiIOKJpSA0IHllYXJzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDQgeWVhcnMtNDAKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5Pbi10aW1lIHN0YXJ0OiBEVFAgdmFjY2luYXRpb24gc2NoZWR1bGUsIG9uLXRpbWUgc3RhcnQgKGF0IOKJpCAxMiBtb250aHMgb2YgYWdlKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gNCB5ZWFycyI6CiAgRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gWWVhcnMiID49IDQKCi8qCkBpbnB1dDogVHdvIHRldGFudXMgYW5kIGRpcGh0aGVyaWEgYm9vc3RlciBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJUZXRhbnVzIGFuZCBkaXBodGhlcmlhLWNvbnRhaW5pbmcgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJCb29zdGVyIGRvc2UiKSA9IDIKQGNvZGU6IFR3byB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGJvb3N0ZXIgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQtMTQwCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuT24tdGltZSBzdGFydDogRFRQIHZhY2NpbmF0aW9uIHNjaGVkdWxlLCBvbi10aW1lIHN0YXJ0IChhdCDiiaQgMTIgbW9udGhzIG9mIGFnZSkKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5EZWxheWVkIG9yIGludGVycnVwdGVkIHNlcmllczogRFRQIHZhY2NpbmF0aW9uIHNjaGVkdWxlIGZvciB0aGUgZm9sbG93aW5nIGdyb3VwczogY2hpbGRyZW4g4omlIDEgeWVhciBvZiBhZ2Ugd2l0aCBubyBwcmV2aW91cyBpbW11bml6YXRpb24sIGFkb2xlc2NlbnRzIGFuZCBhZHVsdHMgd2l0aCBubyBwcmV2aW91cyBpbW11bml6YXRpb24gKGluY2x1ZGluZyBwcmVnbmFudCB3b21lbikgYW5kIHN1cHBsZW1lbnRhcnkgaW1tdW5pemF0aW9uIGFjdGl2aXRpZXMgaW4gaGlnaC1yaXNrIGFyZWFzLCBmb3Igd29tZW4gb2YgcmVwcm9kdWN0aXZlIGFnZQpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLlByZWduYW5jeTogRGV0ZXJtaW5lIHdoZXRoZXIgRFRQLWNvbnRhaW5pbmcgdmFjY2luZXMgYXJlIG5lZWRlZCBmb3IgcHJlZ25hbnQgd29tZW4KQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5QcmVnbmFuY3kgc3RhcnRpbmcgd2l0aCAzIGRvc2VzOiBEaXBodGhlcmlhIGFuZCB0ZXRhbnVzIHZhY2NpbmF0aW9uIHNjaGVkdWxlIGluIHByZWduYW50IHdvbWVuIHdobyByZWNlaXZlZCAzIGNoaWxkaG9vZCBEVFAgZG9zZXMKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5QcmVnbmFuY3kgc3RhcnRpbmcgd2l0aCA0IGRvc2VzOiBEaXBodGhlcmlhIGFuZCB0ZXRhbnVzIHZhY2NpbmF0aW9uIHNjaGVkdWxlIGluIHByZWduYW50IHdvbWVuIHdobyByZWNlaXZlZCA0IGNoaWxkaG9vZCBEVFAgZG9zZXMKKi8KZGVmaW5lICJUd28gdGV0YW51cyBhbmQgZGlwaHRoZXJpYSBib29zdGVyIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkIjoKICAiTnVtYmVyIG9mIFRkIEJvb3N0ZXIgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAyCgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gOSB5ZWFycwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIgPCA5IHllYXJzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDkgeWVhcnMtNDAKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5Pbi10aW1lIHN0YXJ0OiBEVFAgdmFjY2luYXRpb24gc2NoZWR1bGUsIG9uLXRpbWUgc3RhcnQgKGF0IOKJpCAxMiBtb250aHMgb2YgYWdlKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gOSB5ZWFycyI6CiAgRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gWWVhcnMiIDwgOQoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDkgeWVhcnMKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgIkRhdGUgb2YgYmlydGgiIOKJpSA5IHllYXJzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDkgeWVhcnMtNDAKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5Pbi10aW1lIHN0YXJ0OiBEVFAgdmFjY2luYXRpb24gc2NoZWR1bGUsIG9uLXRpbWUgc3RhcnQgKGF0IOKJpCAxMiBtb250aHMgb2YgYWdlKQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gOSB5ZWFycyI6CiAgRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gWWVhcnMiID49IDkKCi8qCkBpbnB1dDogVGhyZWUgdGV0YW51cyBhbmQgZGlwaHRoZXJpYSBib29zdGVyIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlRldGFudXMgYW5kIGRpcGh0aGVyaWEtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIkJvb3N0ZXIgZG9zZSIpID0gMwpAY29kZTogVGhyZWUgdGV0YW51cyBhbmQgZGlwaHRoZXJpYSBib29zdGVyIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkLTE0MApAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLk9uLXRpbWUgc3RhcnQ6IERUUCB2YWNjaW5hdGlvbiBzY2hlZHVsZSwgb24tdGltZSBzdGFydCAoYXQg4omkIDEyIG1vbnRocyBvZiBhZ2UpCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuUHJlZ25hbmN5OiBEZXRlcm1pbmUgd2hldGhlciBEVFAtY29udGFpbmluZyB2YWNjaW5lcyBhcmUgbmVlZGVkIGZvciBwcmVnbmFudCB3b21lbgpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLlByZWduYW5jeSBzdGFydGluZyB3aXRoIDMgZG9zZXM6IERpcGh0aGVyaWEgYW5kIHRldGFudXMgdmFjY2luYXRpb24gc2NoZWR1bGUgaW4gcHJlZ25hbnQgd29tZW4gd2hvIHJlY2VpdmVkIDMgY2hpbGRob29kIERUUCBkb3NlcwpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLlByZWduYW5jeSBzdGFydGluZyB3aXRoIDQgZG9zZXM6IERpcGh0aGVyaWEgYW5kIHRldGFudXMgdmFjY2luYXRpb24gc2NoZWR1bGUgaW4gcHJlZ25hbnQgd29tZW4gd2hvIHJlY2VpdmVkIDQgY2hpbGRob29kIERUUCBkb3NlcwoqLwpkZWZpbmUgIlRocmVlIHRldGFudXMgYW5kIGRpcGh0aGVyaWEgYm9vc3RlciBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZCI6CiAgIk51bWJlciBvZiBUZCBCb29zdGVyIFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMwoKLyoKQGlucHV0OiBObyBwZXJ0dXNzaXMgYm9vc3RlciBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQZXJ0dXNzaXMtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIkJvb3N0ZXIgZG9zZSIpID0gMApAY29kZTogTm8gcGVydHVzc2lzIGJvb3N0ZXIgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQtMTI3CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuT24tdGltZSBzdGFydDogRFRQIHZhY2NpbmF0aW9uIHNjaGVkdWxlLCBvbi10aW1lIHN0YXJ0IChhdCDiiaQgMTIgbW9udGhzIG9mIGFnZSkKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5EZWxheWVkIG9yIGludGVycnVwdGVkIHNlcmllczogRFRQIHZhY2NpbmF0aW9uIHNjaGVkdWxlIGZvciB0aGUgZm9sbG93aW5nIGdyb3VwczogY2hpbGRyZW4g4omlIDEgeWVhciBvZiBhZ2Ugd2l0aCBubyBwcmV2aW91cyBpbW11bml6YXRpb24sIGFkb2xlc2NlbnRzIGFuZCBhZHVsdHMgd2l0aCBubyBwcmV2aW91cyBpbW11bml6YXRpb24gKGluY2x1ZGluZyBwcmVnbmFudCB3b21lbikgYW5kIHN1cHBsZW1lbnRhcnkgaW1tdW5pemF0aW9uIGFjdGl2aXRpZXMgaW4gaGlnaC1yaXNrIGFyZWFzLCBmb3Igd29tZW4gb2YgcmVwcm9kdWN0aXZlIGFnZQoqLwpkZWZpbmUgIk5vIHBlcnR1c3NpcyBib29zdGVyIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkIjoKICAiTnVtYmVyIG9mIFBlcnR1c3NpcyBCb29zdGVyIFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMAoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDEgeWVhcgpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIgPCAxIHllYXIKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gMSB5ZWFyLTM5CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuT24tdGltZSBzdGFydDogRFRQIHZhY2NpbmF0aW9uIHNjaGVkdWxlLCBvbi10aW1lIHN0YXJ0IChhdCDiiaQgMTIgbW9udGhzIG9mIGFnZSkKKi8KZGVmaW5lICJDbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDEgeWVhciI6CiAgRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gWWVhcnMiIDwgMQoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgYmV0d2VlbiAxIHllYXIgYW5kIDYgeWVhcnMKQHBzZXVkb2NvZGU6IDEgeWVhciDiiaQgVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIg4omkIDYgeWVhcnMKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBiZXR3ZWVuIDEgeWVhciBhbmQgNiB5ZWFycy00OQpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLk9uLXRpbWUgc3RhcnQ6IERUUCB2YWNjaW5hdGlvbiBzY2hlZHVsZSwgb24tdGltZSBzdGFydCAoYXQg4omkIDEyIG1vbnRocyBvZiBhZ2UpCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuRGVsYXllZCBvciBpbnRlcnJ1cHRlZCBzZXJpZXM6IERUUCB2YWNjaW5hdGlvbiBzY2hlZHVsZSBmb3IgdGhlIGZvbGxvd2luZyBncm91cHM6IGNoaWxkcmVuIOKJpSAxIHllYXIgb2YgYWdlIHdpdGggbm8gcHJldmlvdXMgaW1tdW5pemF0aW9uLCBhZG9sZXNjZW50cyBhbmQgYWR1bHRzIHdpdGggbm8gcHJldmlvdXMgaW1tdW5pemF0aW9uIChpbmNsdWRpbmcgcHJlZ25hbnQgd29tZW4pIGFuZCBzdXBwbGVtZW50YXJ5IGltbXVuaXphdGlvbiBhY3Rpdml0aWVzIGluIGhpZ2gtcmlzayBhcmVhcywgZm9yIHdvbWVuIG9mIHJlcHJvZHVjdGl2ZSBhZ2UKKi8KZGVmaW5lICJDbGllbnQncyBhZ2UgaXMgYmV0d2VlbiAxIHllYXIgYW5kIDYgeWVhcnMiOgogIDEgPD0gRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gWWVhcnMiCiAgYW5kIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFllYXJzIiA8PSA2CgovKgpAaW5wdXQ6IFRoZSBsYXRlc3QgRFRQIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gNiBtb250aHMgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIGxhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIkRUUC1jb250YWluaW5nIHZhY2NpbmVzIikgPCA2IG1vbnRocwpAY29kZTogVGhlIGxhdGVzdCBEVFAgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiA2IG1vbnRocyBhZ28tMTE0CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuT24tdGltZSBzdGFydDogRFRQIHZhY2NpbmF0aW9uIHNjaGVkdWxlLCBvbi10aW1lIHN0YXJ0IChhdCDiiaQgMTIgbW9udGhzIG9mIGFnZSkKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5EZWxheWVkIG9yIGludGVycnVwdGVkIHNlcmllczogRFRQIHZhY2NpbmF0aW9uIHNjaGVkdWxlIGZvciB0aGUgZm9sbG93aW5nIGdyb3VwczogY2hpbGRyZW4g4omlIDEgeWVhciBvZiBhZ2Ugd2l0aCBubyBwcmV2aW91cyBpbW11bml6YXRpb24sIGFkb2xlc2NlbnRzIGFuZCBhZHVsdHMgd2l0aCBubyBwcmV2aW91cyBpbW11bml6YXRpb24gKGluY2x1ZGluZyBwcmVnbmFudCB3b21lbikgYW5kIHN1cHBsZW1lbnRhcnkgaW1tdW5pemF0aW9uIGFjdGl2aXRpZXMgaW4gaGlnaC1yaXNrIGFyZWFzLCBmb3Igd29tZW4gb2YgcmVwcm9kdWN0aXZlIGFnZQoqLwpkZWZpbmUgIlRoZSBsYXRlc3QgRFRQIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gNiBtb250aHMgYWdvIjoKICAiRGF0ZSBvZiBMYXRlc3QgRFRQIERvc2UiIGlzIG5vdCBudWxsCiAgICBhbmQgZHVyYXRpb24gaW4gbW9udGhzIGJldHdlZW4gIkRhdGUgb2YgTGF0ZXN0IERUUCBEb3NlIiBhbmQgTm93KCkgPCA2CgovKgpAaW5wdXQ6IFRoZSBsYXRlc3QgRFRQIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gNiBtb250aHMgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIGxhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIkRUUC1jb250YWluaW5nIHZhY2NpbmVzIikg4omlIDYgbW9udGhzCkBjb2RlOiBUaGUgbGF0ZXN0IERUUCBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbW9yZSB0aGFuIDYgbW9udGhzIGFnby0xMTQKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5Pbi10aW1lIHN0YXJ0OiBEVFAgdmFjY2luYXRpb24gc2NoZWR1bGUsIG9uLXRpbWUgc3RhcnQgKGF0IOKJpCAxMiBtb250aHMgb2YgYWdlKQpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLkRlbGF5ZWQgb3IgaW50ZXJydXB0ZWQgc2VyaWVzOiBEVFAgdmFjY2luYXRpb24gc2NoZWR1bGUgZm9yIHRoZSBmb2xsb3dpbmcgZ3JvdXBzOiBjaGlsZHJlbiDiiaUgMSB5ZWFyIG9mIGFnZSB3aXRoIG5vIHByZXZpb3VzIGltbXVuaXphdGlvbiwgYWRvbGVzY2VudHMgYW5kIGFkdWx0cyB3aXRoIG5vIHByZXZpb3VzIGltbXVuaXphdGlvbiAoaW5jbHVkaW5nIHByZWduYW50IHdvbWVuKSBhbmQgc3VwcGxlbWVudGFyeSBpbW11bml6YXRpb24gYWN0aXZpdGllcyBpbiBoaWdoLXJpc2sgYXJlYXMsIGZvciB3b21lbiBvZiByZXByb2R1Y3RpdmUgYWdlCiovCmRlZmluZSAiVGhlIGxhdGVzdCBEVFAgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiA2IG1vbnRocyBhZ28iOgogIG5vdCgiVGhlIGxhdGVzdCBEVFAgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiA2IG1vbnRocyBhZ28iKQoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIDYgeWVhcnMKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgIkRhdGUgb2YgYmlydGgiID4gNiB5ZWFycwpAY29kZTogQ2xpZW50J3MgYWdlIGlzIG1vcmUgdGhhbiA2IHllYXJzLTQwCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuT24tdGltZSBzdGFydDogRFRQIHZhY2NpbmF0aW9uIHNjaGVkdWxlLCBvbi10aW1lIHN0YXJ0IChhdCDiiaQgMTIgbW9udGhzIG9mIGFnZSkKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5EZWxheWVkIG9yIGludGVycnVwdGVkIHNlcmllczogRFRQIHZhY2NpbmF0aW9uIHNjaGVkdWxlIGZvciB0aGUgZm9sbG93aW5nIGdyb3VwczogY2hpbGRyZW4g4omlIDEgeWVhciBvZiBhZ2Ugd2l0aCBubyBwcmV2aW91cyBpbW11bml6YXRpb24sIGFkb2xlc2NlbnRzIGFuZCBhZHVsdHMgd2l0aCBubyBwcmV2aW91cyBpbW11bml6YXRpb24gKGluY2x1ZGluZyBwcmVnbmFudCB3b21lbikgYW5kIHN1cHBsZW1lbnRhcnkgaW1tdW5pemF0aW9uIGFjdGl2aXRpZXMgaW4gaGlnaC1yaXNrIGFyZWFzLCBmb3Igd29tZW4gb2YgcmVwcm9kdWN0aXZlIGFnZQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gNiB5ZWFycyI6CiAgRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gWWVhcnMiID4gNgoKLyoKQGlucHV0OiBPbmUgcGVydHVzc2lzIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBlcnR1c3Npcy1jb250YWluaW5nIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiQm9vc3RlciBkb3NlIikgPSAxCkBjb2RlOiBPbmUgcGVydHVzc2lzIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkLTEyNwpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLk9uLXRpbWUgc3RhcnQ6IERUUCB2YWNjaW5hdGlvbiBzY2hlZHVsZSwgb24tdGltZSBzdGFydCAoYXQg4omkIDEyIG1vbnRocyBvZiBhZ2UpCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuRGVsYXllZCBvciBpbnRlcnJ1cHRlZCBzZXJpZXM6IERUUCB2YWNjaW5hdGlvbiBzY2hlZHVsZSBmb3IgdGhlIGZvbGxvd2luZyBncm91cHM6IGNoaWxkcmVuIOKJpSAxIHllYXIgb2YgYWdlIHdpdGggbm8gcHJldmlvdXMgaW1tdW5pemF0aW9uLCBhZG9sZXNjZW50cyBhbmQgYWR1bHRzIHdpdGggbm8gcHJldmlvdXMgaW1tdW5pemF0aW9uIChpbmNsdWRpbmcgcHJlZ25hbnQgd29tZW4pIGFuZCBzdXBwbGVtZW50YXJ5IGltbXVuaXphdGlvbiBhY3Rpdml0aWVzIGluIGhpZ2gtcmlzayBhcmVhcywgZm9yIHdvbWVuIG9mIHJlcHJvZHVjdGl2ZSBhZ2UKKi8KZGVmaW5lICJPbmUgcGVydHVzc2lzIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIjoKICAiTnVtYmVyIG9mIFBlcnR1c3NpcyBCb29zdGVyIFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMQoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIDEgeWVhcgpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIgPiAxIHllYXIKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gMSB5ZWFyLTM5CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuRGVsYXllZCBvciBpbnRlcnJ1cHRlZCBzZXJpZXM6IERUUCB2YWNjaW5hdGlvbiBzY2hlZHVsZSBmb3IgdGhlIGZvbGxvd2luZyBncm91cHM6IGNoaWxkcmVuIOKJpSAxIHllYXIgb2YgYWdlIHdpdGggbm8gcHJldmlvdXMgaW1tdW5pemF0aW9uLCBhZG9sZXNjZW50cyBhbmQgYWR1bHRzIHdpdGggbm8gcHJldmlvdXMgaW1tdW5pemF0aW9uIChpbmNsdWRpbmcgcHJlZ25hbnQgd29tZW4pIGFuZCBzdXBwbGVtZW50YXJ5IGltbXVuaXphdGlvbiBhY3Rpdml0aWVzIGluIGhpZ2gtcmlzayBhcmVhcywgZm9yIHdvbWVuIG9mIHJlcHJvZHVjdGl2ZSBhZ2UKKi8KZGVmaW5lICJDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIDEgeWVhciI6CiAgRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gWWVhcnMiID49IDEKCi8qCkBpbnB1dDogVGhlIGxhdGVzdCBEVFAgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiAxIHllYXIgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIGxhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIkRUUC1jb250YWluaW5nIHZhY2NpbmVzIikgPCAxIHllYXIKQGNvZGU6IFRoZSBsYXRlc3QgRFRQIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gMSB5ZWFyIGFnby0xMTIKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5EZWxheWVkIG9yIGludGVycnVwdGVkIHNlcmllczogRFRQIHZhY2NpbmF0aW9uIHNjaGVkdWxlIGZvciB0aGUgZm9sbG93aW5nIGdyb3VwczogY2hpbGRyZW4g4omlIDEgeWVhciBvZiBhZ2Ugd2l0aCBubyBwcmV2aW91cyBpbW11bml6YXRpb24sIGFkb2xlc2NlbnRzIGFuZCBhZHVsdHMgd2l0aCBubyBwcmV2aW91cyBpbW11bml6YXRpb24gKGluY2x1ZGluZyBwcmVnbmFudCB3b21lbikgYW5kIHN1cHBsZW1lbnRhcnkgaW1tdW5pemF0aW9uIGFjdGl2aXRpZXMgaW4gaGlnaC1yaXNrIGFyZWFzLCBmb3Igd29tZW4gb2YgcmVwcm9kdWN0aXZlIGFnZQoqLwpkZWZpbmUgIlRoZSBsYXRlc3QgRFRQIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gMSB5ZWFyIGFnbyI6CiAgIkRhdGUgb2YgTGF0ZXN0IERUUCBEb3NlIiBpcyBub3QgbnVsbAogICAgYW5kIGR1cmF0aW9uIGluIHllYXJzIGJldHdlZW4gIkRhdGUgb2YgTGF0ZXN0IERUUCBEb3NlIiBhbmQgTm93KCkgPCAxCgovKgpAaW5wdXQ6IFRoZSBsYXRlc3QgRFRQIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gMSB5ZWFyIGFnbwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiBsYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJEVFAtY29udGFpbmluZyB2YWNjaW5lcyIpIOKJpSAxIHllYXIKQGNvZGU6IFRoZSBsYXRlc3QgRFRQIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gMSB5ZWFyIGFnby0xMTIKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5EZWxheWVkIG9yIGludGVycnVwdGVkIHNlcmllczogRFRQIHZhY2NpbmF0aW9uIHNjaGVkdWxlIGZvciB0aGUgZm9sbG93aW5nIGdyb3VwczogY2hpbGRyZW4g4omlIDEgeWVhciBvZiBhZ2Ugd2l0aCBubyBwcmV2aW91cyBpbW11bml6YXRpb24sIGFkb2xlc2NlbnRzIGFuZCBhZHVsdHMgd2l0aCBubyBwcmV2aW91cyBpbW11bml6YXRpb24gKGluY2x1ZGluZyBwcmVnbmFudCB3b21lbikgYW5kIHN1cHBsZW1lbnRhcnkgaW1tdW5pemF0aW9uIGFjdGl2aXRpZXMgaW4gaGlnaC1yaXNrIGFyZWFzLCBmb3Igd29tZW4gb2YgcmVwcm9kdWN0aXZlIGFnZQoqLwpkZWZpbmUgIlRoZSBsYXRlc3QgRFRQIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gMSB5ZWFyIGFnbyI6CiAgbm90KCJUaGUgbGF0ZXN0IERUUCBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDEgeWVhciBhZ28iKQoKLyoKQGlucHV0OiBUaGUgbGF0ZXN0IHRldGFudXMgYW5kIGRpcGh0aGVyaWEgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiAxIHllYXIgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIGxhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlRldGFudXMgYW5kIGRpcGh0aGVyaWEtY29udGFpbmluZyB2YWNjaW5lcyIpIDwgMSB5ZWFyCkBjb2RlOiBUaGUgbGF0ZXN0IHRldGFudXMgYW5kIGRpcGh0aGVyaWEgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiAxIHllYXIgYWdvLTEzMQpAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLkRlbGF5ZWQgb3IgaW50ZXJydXB0ZWQgc2VyaWVzOiBEVFAgdmFjY2luYXRpb24gc2NoZWR1bGUgZm9yIHRoZSBmb2xsb3dpbmcgZ3JvdXBzOiBjaGlsZHJlbiDiiaUgMSB5ZWFyIG9mIGFnZSB3aXRoIG5vIHByZXZpb3VzIGltbXVuaXphdGlvbiwgYWRvbGVzY2VudHMgYW5kIGFkdWx0cyB3aXRoIG5vIHByZXZpb3VzIGltbXVuaXphdGlvbiAoaW5jbHVkaW5nIHByZWduYW50IHdvbWVuKSBhbmQgc3VwcGxlbWVudGFyeSBpbW11bml6YXRpb24gYWN0aXZpdGllcyBpbiBoaWdoLXJpc2sgYXJlYXMsIGZvciB3b21lbiBvZiByZXByb2R1Y3RpdmUgYWdlCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuUHJlZ25hbmN5IHN0YXJ0aW5nIHdpdGggMyBkb3NlczogRGlwaHRoZXJpYSBhbmQgdGV0YW51cyB2YWNjaW5hdGlvbiBzY2hlZHVsZSBpbiBwcmVnbmFudCB3b21lbiB3aG8gcmVjZWl2ZWQgMyBjaGlsZGhvb2QgRFRQIGRvc2VzCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuUHJlZ25hbmN5IHN0YXJ0aW5nIHdpdGggNCBkb3NlczogRGlwaHRoZXJpYSBhbmQgdGV0YW51cyB2YWNjaW5hdGlvbiBzY2hlZHVsZSBpbiBwcmVnbmFudCB3b21lbiB3aG8gcmVjZWl2ZWQgNCBjaGlsZGhvb2QgRFRQIGRvc2VzCiovCmRlZmluZSAiVGhlIGxhdGVzdCB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gMSB5ZWFyIGFnbyI6CiAgIkRhdGUgb2YgTGF0ZXN0IFRkIERvc2UiIGlzIG5vdCBudWxsCiAgICBhbmQgZHVyYXRpb24gaW4geWVhcnMgYmV0d2VlbiAiRGF0ZSBvZiBMYXRlc3QgVGQgRG9zZSIgYW5kIE5vdygpIDwgMQoKLyoKQGlucHV0OiBUaGUgbGF0ZXN0IHRldGFudXMgYW5kIGRpcGh0aGVyaWEgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiAxIHllYXIgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIGxhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlRldGFudXMgYW5kIGRpcGh0aGVyaWEtY29udGFpbmluZyB2YWNjaW5lcyIpIOKJpSAxIHllYXIKQGNvZGU6IFRoZSBsYXRlc3QgdGV0YW51cyBhbmQgZGlwaHRoZXJpYSBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbW9yZSB0aGFuIDEgeWVhciBhZ28tMTMxCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuRGVsYXllZCBvciBpbnRlcnJ1cHRlZCBzZXJpZXM6IERUUCB2YWNjaW5hdGlvbiBzY2hlZHVsZSBmb3IgdGhlIGZvbGxvd2luZyBncm91cHM6IGNoaWxkcmVuIOKJpSAxIHllYXIgb2YgYWdlIHdpdGggbm8gcHJldmlvdXMgaW1tdW5pemF0aW9uLCBhZG9sZXNjZW50cyBhbmQgYWR1bHRzIHdpdGggbm8gcHJldmlvdXMgaW1tdW5pemF0aW9uIChpbmNsdWRpbmcgcHJlZ25hbnQgd29tZW4pIGFuZCBzdXBwbGVtZW50YXJ5IGltbXVuaXphdGlvbiBhY3Rpdml0aWVzIGluIGhpZ2gtcmlzayBhcmVhcywgZm9yIHdvbWVuIG9mIHJlcHJvZHVjdGl2ZSBhZ2UKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5QcmVnbmFuY3kgc3RhcnRpbmcgd2l0aCAzIGRvc2VzOiBEaXBodGhlcmlhIGFuZCB0ZXRhbnVzIHZhY2NpbmF0aW9uIHNjaGVkdWxlIGluIHByZWduYW50IHdvbWVuIHdobyByZWNlaXZlZCAzIGNoaWxkaG9vZCBEVFAgZG9zZXMKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5QcmVnbmFuY3kgc3RhcnRpbmcgd2l0aCA0IGRvc2VzOiBEaXBodGhlcmlhIGFuZCB0ZXRhbnVzIHZhY2NpbmF0aW9uIHNjaGVkdWxlIGluIHByZWduYW50IHdvbWVuIHdobyByZWNlaXZlZCA0IGNoaWxkaG9vZCBEVFAgZG9zZXMKKi8KZGVmaW5lICJUaGUgbGF0ZXN0IHRldGFudXMgYW5kIGRpcGh0aGVyaWEgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiAxIHllYXIgYWdvIjoKICBub3QoIlRoZSBsYXRlc3QgdGV0YW51cyBhbmQgZGlwaHRoZXJpYSBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDEgeWVhciBhZ28iKQoKLyoKQGlucHV0OiBDbGllbnQgaXMgY3VycmVudGx5IHByZWduYW50CkBwc2V1ZG9jb2RlOiAiQ3VycmVudGx5IHByZWduYW50IiA9IFRSVUUKQGNvZGU6IENsaWVudCBpcyBjdXJyZW50bHkgcHJlZ25hbnQtMjcKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5QcmVnbmFuY3k6IERldGVybWluZSB3aGV0aGVyIERUUC1jb250YWluaW5nIHZhY2NpbmVzIGFyZSBuZWVkZWQgZm9yIHByZWduYW50IHdvbWVuCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuUHJlZ25hbmN5IHN0YXJ0aW5nIHdpdGggMyBkb3NlczogRGlwaHRoZXJpYSBhbmQgdGV0YW51cyB2YWNjaW5hdGlvbiBzY2hlZHVsZSBpbiBwcmVnbmFudCB3b21lbiB3aG8gcmVjZWl2ZWQgMyBjaGlsZGhvb2QgRFRQIGRvc2VzCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuUHJlZ25hbmN5IHN0YXJ0aW5nIHdpdGggNCBkb3NlczogRGlwaHRoZXJpYSBhbmQgdGV0YW51cyB2YWNjaW5hdGlvbiBzY2hlZHVsZSBpbiBwcmVnbmFudCB3b21lbiB3aG8gcmVjZWl2ZWQgNCBjaGlsZGhvb2QgRFRQIGRvc2VzCiovCmRlZmluZSAiQ2xpZW50IGlzIGN1cnJlbnRseSBwcmVnbmFudCI6CiAgRWxlbWVudHMuIlRoZSBjbGllbnQgaXMgcHJlZ25hbnQiCgovKgpAaW5wdXQ6IE5vIHRldGFudXMgYW5kIGRpcGh0aGVyaWEgYm9vc3RlciBkb3NlIHdhcyBhZG1pbmlzdGVyZWQKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiQm9vc3RlciBkb3NlIikgPSAwCkBjb2RlOiBObyB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkLTE0MApAZGVjaXNpb246IElNTVouRDIuRFQuRFRQLlByZWduYW5jeTogRGV0ZXJtaW5lIHdoZXRoZXIgRFRQLWNvbnRhaW5pbmcgdmFjY2luZXMgYXJlIG5lZWRlZCBmb3IgcHJlZ25hbnQgd29tZW4KKi8KZGVmaW5lICJObyB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIjoKICAiTm8gdGV0YW51cyBhbmQgZGlwaHRoZXJpYSBib29zdGVyIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkIgoKLyoKQGlucHV0OiBPbmUgdGV0YW51cyBhbmQgZGlwaHRoZXJpYSBib29zdGVyIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlRldGFudXMgYW5kIGRpcGh0aGVyaWEtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIkJvb3N0ZXIgZG9zZSIpID0gMQpAY29kZTogT25lIHRldGFudXMgYW5kIGRpcGh0aGVyaWEgYm9vc3RlciBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZC0xNDAKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5QcmVnbmFuY3kgc3RhcnRpbmcgd2l0aCAzIGRvc2VzOiBEaXBodGhlcmlhIGFuZCB0ZXRhbnVzIHZhY2NpbmF0aW9uIHNjaGVkdWxlIGluIHByZWduYW50IHdvbWVuIHdobyByZWNlaXZlZCAzIGNoaWxkaG9vZCBEVFAgZG9zZXMKKi8KZGVmaW5lICJPbmUgdGV0YW51cyBhbmQgZGlwaHRoZXJpYSBib29zdGVyIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkIjoKICAiT25lIHRldGFudXMgYW5kIGRpcGh0aGVyaWEgYm9vc3RlciBkb3NlIHdhcyBhZG1pbmlzdGVyZWQiCgovKgpAaW5wdXQ6IFRoZSBsYXRlc3QgdGV0YW51cyBhbmQgZGlwaHRoZXJpYSBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbGVzcyB0aGFuIDQgd2Vla3MgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIGxhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlRldGFudXMgYW5kIGRpcGh0aGVyaWEtY29udGFpbmluZyB2YWNjaW5lcyIpIDwgNCB3ZWVrcwpAY29kZTogVGhlIGxhdGVzdCB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gNCB3ZWVrcyBhZ28tMTMyCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5EVFAuUHJlZ25hbmN5IHN0YXJ0aW5nIHdpdGggMyBkb3NlczogRGlwaHRoZXJpYSBhbmQgdGV0YW51cyB2YWNjaW5hdGlvbiBzY2hlZHVsZSBpbiBwcmVnbmFudCB3b21lbiB3aG8gcmVjZWl2ZWQgMyBjaGlsZGhvb2QgRFRQIGRvc2VzCiovCmRlZmluZSAiVGhlIGxhdGVzdCB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gNCB3ZWVrcyBhZ28iOgogICJEYXRlIG9mIExhdGVzdCBUZCBEb3NlIiBpcyBub3QgbnVsbAogICAgYW5kIGR1cmF0aW9uIGluIHdlZWtzIGJldHdlZW4gIkRhdGUgb2YgTGF0ZXN0IFRkIERvc2UiIGFuZCBOb3coKSA8IDQKCi8qCkBpbnB1dDogVGhlIGxhdGVzdCB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gNCB3ZWVrcyBhZ28KQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgbGF0ZXN0ICJEYXRlIGFuZCB0aW1lIG9mIHZhY2NpbmF0aW9uIiAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmVzIikgPiA0IHdlZWtzCkBjb2RlOiBUaGUgbGF0ZXN0IHRldGFudXMgYW5kIGRpcGh0aGVyaWEgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiA0IHdlZWtzIGFnby0xMzIKQGRlY2lzaW9uOiBJTU1aLkQyLkRULkRUUC5QcmVnbmFuY3kgc3RhcnRpbmcgd2l0aCAzIGRvc2VzOiBEaXBodGhlcmlhIGFuZCB0ZXRhbnVzIHZhY2NpbmF0aW9uIHNjaGVkdWxlIGluIHByZWduYW50IHdvbWVuIHdobyByZWNlaXZlZCAzIGNoaWxkaG9vZCBEVFAgZG9zZXMKKi8KZGVmaW5lICJUaGUgbGF0ZXN0IHRldGFudXMgYW5kIGRpcGh0aGVyaWEgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIG1vcmUgdGhhbiA0IHdlZWtzIGFnbyI6CiAgbm90KCJUaGUgbGF0ZXN0IHRldGFudXMgYW5kIGRpcGh0aGVyaWEgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIGxlc3MgdGhhbiA0IHdlZWtzIGFnbyIpCgovKgpAaW50ZXJuYWw6IFRkIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50CiovCmRlZmluZSAiVGQgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiOgogIEVsZW1lbnRzLiJEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIgSQogIHdoZXJlCiAgICBJLnZhY2NpbmVDb2RlIGluIENvbmNlcHRzLiJUZXRhbnVzIGFuZCBkaXBodGhlcmlhLWNvbnRhaW5pbmcgdmFjY2luZXMiCgovKgpAaW50ZXJuYWw6IFBlcnR1c3NpcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudAoqLwpkZWZpbmUgIlBlcnR1c3NpcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCI6CiAgRWxlbWVudHMuIkRvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IiBJCiAgd2hlcmUKICAgIEkudmFjY2luZUNvZGUgaW4gQ29uY2VwdHMuIlBlcnR1c3Npcy1jb250YWluaW5nIHZhY2NpbmVzIgoKLyoKQGludGVybmFsOiBEYXRlIG9mIExhdGVzdCBEVFAgRG9zZQoqLwpkZWZpbmUgIkRhdGUgb2YgTGF0ZXN0IERUUCBEb3NlIjoKICBkYXRlIGZyb20gc3RhcnQgb2YgIkRUUCBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIubW9zdFJlY2VudCgpLm9jY3VycmVuY2UudG9JbnRlcnZhbCgpCgovKgpAaW50ZXJuYWw6IERhdGUgb2YgTGF0ZXN0IFRkIERvc2UKKi8KZGVmaW5lICJEYXRlIG9mIExhdGVzdCBUZCBEb3NlIjoKICBkYXRlIGZyb20gc3RhcnQgb2YgIlRkIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50Ii5tb3N0UmVjZW50KCkub2NjdXJyZW5jZS50b0ludGVydmFsKCkKCi8qCkBpbnRlcm5hbDogVGQgQm9vc3RlciBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQKKi8KZGVmaW5lICJUZCBCb29zdGVyIFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCI6CiAgIlRkIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50Ii5zZXJpZXNCb29zdGVyKCkKCi8qCkBpbnRlcm5hbDogTnVtYmVyIG9mIFRkIEJvb3N0ZXIgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZAoqLwpkZWZpbmUgIk51bWJlciBvZiBUZCBCb29zdGVyIFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiOgogIENvdW50KCJUZCBCb29zdGVyIFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIpCgovKgpAaW50ZXJuYWw6IFBlcnR1c3NpcyBCb29zdGVyIFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudAoqLwpkZWZpbmUgIlBlcnR1c3NpcyBCb29zdGVyIFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCI6CiAgIlBlcnR1c3NpcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIuc2VyaWVzQm9vc3RlcigpCgovKgpAaW50ZXJuYWw6IE51bWJlciBvZiBQZXJ0dXNzaXMgQm9vc3RlciBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkCiovCmRlZmluZSAiTnVtYmVyIG9mIFBlcnR1c3NpcyBCb29zdGVyIFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiOgogIENvdW50KCJQZXJ0dXNzaXMgQm9vc3RlciBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiKQo="^^xsd:base64Binary ]
  ] ) . # 

# -------------------------------------------------------------------------------------

