Cervical Cancer Screening CDS for OpenMRS
0.1.0 - ci-build International flag

Cervical Cancer Screening CDS for OpenMRS, published by Hopena Health. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/dhes/cervical-cancer-cds/tree/main and changes regularly. See the Directory of published versions

: Cervical Cancer Triage Decision Logic - JSON Representation

Draft as of 2026-04-21

Raw json | Download

{
  "resourceType" : "Library",
  "id" : "CervicalCancerTriageDecision",
  "text" : {
    "status" : "extensions",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n<div>\n    <table class=\"grid dict\">\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Title: </b></th>\n            <td style=\"padding-left: 4px;\">Cervical Cancer Triage Decision Logic</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Id: </b></th>\n            <td style=\"padding-left: 4px;\">CervicalCancerTriageDecision</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Version: </b></th>\n            <td style=\"padding-left: 4px;\">0.1.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-CervicalCancerTriageDecision.html\">Cervical Cancer Triage Decision Logic</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        <tr>\n            <th scope=\"row\"><b>Experimental: </b></th>\n            <td style=\"padding-left: 4px;\">true</td>\n        </tr>\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-04-21 19:55:49+0000</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Publisher: </b></th>\n            <td style=\"padding-left: 4px;\">Hopena Health</td>\n        </tr>\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Jurisdiction: </b></th>\n            <td style=\"padding-left: 4px;\">001</td>\n        </tr>\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Related Artifacts: </b></th>\n            <td style=\"padding-left: 4px;\">\n                \n                \n                \n                <p><b>Dependencies</b></p>\n                <ul>\n                  \n                    <li><a href=\"Library-CervicalCancerScreeningCommon.html\">Cervical Cancer Screening Common Definitions</a> version: 0.1.0</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>Triage Is Indicated</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Triage Has Been Performed</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>VIA Triage Is Positive</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>VIA Triage Is Negative</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Suspicious For Cancer</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Proceed To Treatment</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Proceed To Follow Up Retest</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Needs Referral</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Triage Recommended Action</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Triage Status</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Active Triage Algorithm</th><th>string</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 * CervicalCancerTriageDecision\n *\n * Triage pathway logic for HPV-positive women, implementing\n * WHO guideline Algorithm 5 (HPV DNA + VIA triage) with\n * extension points for Algorithms 3, 4, 6, 7.\n *\n * This library determines:\n *   - Whether triage is indicated\n *   - The appropriate triage method for the active algorithm\n *   - Interpretation of triage results\n *   - Routing to treatment vs follow-up vs referral\n *\n * Algorithm 5 cascade after HPV+:\n *   HPV positive → VIA triage\n *     ├── VIA positive → Treat (→ TreatmentDecision)\n *     ├── VIA negative → Retest at 12/24 months (→ FollowUpDecision)\n *     └── Suspicious for cancer → Refer to oncology\n *\n * WHO Recommendations covered:\n *   General population: 3b (screen-triage-treat), 11 (post-triage-negative retest)\n *   WLHIV: 22 (triage recommended), 23 (screen-triage-treat), 31 (retest timing)\n *\n * @author  Dan Heslinga / Hopena Health\n * @version 0.1.0\n * @date    2026-03-08\n */\n\nlibrary CervicalCancerTriageDecision version '0.1.0'\n\nusing FHIR version '4.0.1'\n\ninclude FHIRHelpers version '4.0.1'\ninclude CervicalCancerScreeningCommon version '0.1.0' called Common\n\ncontext Patient\n\n/*\n * =============================================================================\n * TRIAGE INDICATION\n * =============================================================================\n *\n * @guidance Triage is indicated when the primary HPV DNA test is positive.\n *           In Algorithm 5, VIA is the triage method.\n *           In screen-and-treat approaches (Algorithm 2), VIA is still done\n *           but for treatment modality selection rather than triage.\n */\n\n/*\n * @output Boolean — true if triage is indicated (HPV+ without subsequent triage)\n * @pseudocode HPV test positive AND no VIA result after the HPV test\n */\ndefine &quot;Triage Is Indicated&quot;:\n  Common.&quot;Most Recent HPV Test Is Positive&quot;\n    and (\n      not exists(Common.&quot;VIA Screening Results&quot;)\n      or Common.&quot;Date Of Most Recent VIA&quot; before Common.&quot;Date Of Most Recent HPV Test&quot;\n    )\n\n/*\n * @output Boolean — true if triage has been performed (VIA done after HPV+ result)\n */\ndefine &quot;Triage Has Been Performed&quot;:\n  Common.&quot;Most Recent HPV Test Is Positive&quot;\n    and exists(Common.&quot;VIA Screening Results&quot;)\n    and Common.&quot;Date Of Most Recent VIA&quot; on or after Common.&quot;Date Of Most Recent HPV Test&quot;\n\n/*\n * =============================================================================\n * TRIAGE RESULT INTERPRETATION\n * =============================================================================\n */\n\n/*\n * @output Boolean — true if VIA triage was positive\n * @guidance VIA positive → proceed to treatment assessment\n */\ndefine &quot;VIA Triage Is Positive&quot;:\n  &quot;Triage Has Been Performed&quot;\n    and Common.&quot;Most Recent VIA Is Positive&quot;\n\n/*\n * @output Boolean — true if VIA triage was negative\n * @guidance VIA negative → schedule follow-up HPV retest\n *           General: 24 months (WHO Rec 11)\n *           WLHIV: 12 months (WHO Rec 31)\n */\ndefine &quot;VIA Triage Is Negative&quot;:\n  &quot;Triage Has Been Performed&quot;\n    and not Common.&quot;Most Recent VIA Is Positive&quot;\n\n/*\n * =============================================================================\n * SUSPICIOUS FOR CANCER — Referral pathway\n * =============================================================================\n *\n * @guidance In all algorithms, if VIA or colposcopy reveals findings\n *           suspicious for invasive cancer, the patient must be referred\n *           for definitive diagnosis and staging. This bypasses triage/treatment.\n *\n * Note: &quot;Suspicious for cancer&quot; is a clinical judgment during VIA. In OpenMRS,\n * this would be recorded as a separate observation or as a specific coded value\n * on the VIA result. We model it as a distinct observation concept.\n *\n * CIEL concept needed (not yet loaded):\n *   - CIEL 159393: Cervical cancer screening outcome\n *     or a custom concept for &quot;suspicious for cancer&quot; finding\n *\n * For now, we check for an active cervical cancer condition as a proxy.\n * When the concept is loaded, this definition will be updated to check\n * the VIA observation value directly.\n */\n\n/*\n * @output Boolean — true if findings are suspicious for cancer\n * @pseudocode Currently uses cervical cancer diagnosis as proxy;\n *             will be refined when suspicious-for-cancer observation concept is loaded\n */\ndefine &quot;Suspicious For Cancer&quot;:\n  Common.&quot;Has Cervical Cancer Diagnosis&quot;\n\n/*\n * =============================================================================\n * TRIAGE ROUTING — Where does the patient go next?\n * =============================================================================\n */\n\n/*\n * @output Boolean — true if patient should proceed to treatment assessment\n * @pseudocode VIA triage positive AND not suspicious for cancer\n */\ndefine &quot;Proceed To Treatment&quot;:\n  &quot;VIA Triage Is Positive&quot;\n    and not &quot;Suspicious For Cancer&quot;\n\n/*\n * @output Boolean — true if patient should be scheduled for follow-up retest\n * @pseudocode VIA triage negative AND not suspicious for cancer\n */\ndefine &quot;Proceed To Follow Up Retest&quot;:\n  &quot;VIA Triage Is Negative&quot;\n    and not &quot;Suspicious For Cancer&quot;\n\n/*\n * @output Boolean — true if patient needs oncology referral\n */\ndefine &quot;Needs Referral&quot;:\n  &quot;Suspicious For Cancer&quot;\n\n/*\n * =============================================================================\n * RECOMMENDED ACTION — Triage-specific guidance\n * =============================================================================\n */\n\n/*\n * @output String — the recommended triage action\n */\ndefine &quot;Triage Recommended Action&quot;:\n  case\n    when &quot;Suspicious For Cancer&quot;\n      then 'Findings suspicious for invasive cancer — refer for diagnosis and staging'\n\n    when &quot;Triage Is Indicated&quot;\n      then 'Perform VIA triage assessment'\n\n    when &quot;Proceed To Treatment&quot;\n      then 'VIA positive — proceed to treatment eligibility assessment (see TreatmentDecision)'\n\n    when &quot;Proceed To Follow Up Retest&quot;\n      then 'VIA negative — schedule HPV DNA retest in '\n           + ToString(Common.&quot;Post Triage Negative Retest Months&quot;)\n           + ' months'\n\n    when not Common.&quot;Most Recent HPV Test Is Positive&quot;\n      then 'No triage indicated — HPV test is not positive'\n\n    else 'Unable to determine triage recommendation'\n  end\n\n/*\n * @output String — triage status for downstream routing\n */\ndefine &quot;Triage Status&quot;:\n  case\n    when &quot;Suspicious For Cancer&quot; then 'refer-oncology'\n    when &quot;Triage Is Indicated&quot; then 'awaiting-triage'\n    when &quot;Proceed To Treatment&quot; then 'triage-positive'\n    when &quot;Proceed To Follow Up Retest&quot; then 'triage-negative'\n    when not Common.&quot;Most Recent HPV Test Is Positive&quot; then 'not-indicated'\n    else 'unknown'\n  end\n\n/*\n * =============================================================================\n * ALGORITHM EXTENSION POINTS\n * =============================================================================\n *\n * The following definitions are stubs for future multi-algorithm support.\n * Currently only Algorithm 5 (VIA triage) is implemented.\n *\n * Algorithm 4: HPV16/18 genotyping triage\n *   - Requires: HPV genotyping observation concepts\n *   - Logic: HPV16/18+ → treat directly; other HPV+ → VIA triage\n *\n * Algorithm 6: Colposcopy triage\n *   - Requires: Colposcopy finding observation concepts\n *   - Logic: CIN1+ → treat; normal colposcopy → retest at 12 months\n *\n * Algorithm 7: Cytology + colposcopy triage\n *   - Requires: Cytology result concepts (ASCUS, LSIL, HSIL+)\n *   - Logic: HSIL+ → colposcopy → CIN1+ → treat\n */\n\n/*\n * @output String — which triage algorithm is active\n * @guidance Currently hardcoded to Algorithm 5; will be parameterized\n *           when multi-algorithm support is added\n */\ndefine &quot;Active Triage Algorithm&quot;:\n  'Algorithm 5 — HPV DNA + VIA Triage'\n</code></pre></td></tr>\n            </table>\n          </td>\n        </tr>\n        \n        \n        \n        \n        \n        <tr>\n          <td colspan=\"2\">\n            <table>\n              <tr><th><b>Content: </b> application/elm+json</th></tr>\n              <tr><td><pre><code>Encoded data (32196 characters)</code></pre></td></tr>\n            </table>\n          </td>\n        </tr>\n        \n        \n    </table>\n</div>\n</div>"
  },
  "url" : "https://hopenahealth.com/fhir/cervical-cancer-cds/Library/CervicalCancerTriageDecision",
  "version" : "0.1.0",
  "name" : "CervicalCancerTriageDecision",
  "title" : "Cervical Cancer Triage Decision Logic",
  "status" : "draft",
  "experimental" : true,
  "type" : {
    "coding" : [
      {
        "system" : "http://terminology.hl7.org/CodeSystem/library-type",
        "code" : "logic-library"
      }
    ]
  },
  "date" : "2026-04-21T19:55:49+00:00",
  "publisher" : "Hopena Health",
  "contact" : [
    {
      "name" : "Hopena Health",
      "telecom" : [
        {
          "system" : "url",
          "value" : "https://hopenahealth.com"
        }
      ]
    },
    {
      "name" : "Dan Heslinga",
      "telecom" : [
        {
          "system" : "url",
          "value" : "https://hopenahealth.com"
        }
      ]
    }
  ],
  "jurisdiction" : [
    {
      "coding" : [
        {
          "system" : "http://unstats.un.org/unsd/methods/m49/m49.htm",
          "code" : "001"
        }
      ]
    }
  ],
  "relatedArtifact" : [
    {
      "type" : "depends-on",
      "display" : "Library Common",
      "resource" : "https://hopenahealth.com/fhir/cervical-cancer-cds/Library/CervicalCancerScreeningCommon|0.1.0"
    }
  ],
  "parameter" : [
    {
      "name" : "Patient",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "Patient"
    },
    {
      "name" : "Triage Is Indicated",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "boolean"
    },
    {
      "name" : "Triage Has Been Performed",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "boolean"
    },
    {
      "name" : "VIA Triage Is Positive",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "boolean"
    },
    {
      "name" : "VIA Triage Is Negative",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "boolean"
    },
    {
      "name" : "Suspicious For Cancer",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "boolean"
    },
    {
      "name" : "Proceed To Treatment",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "boolean"
    },
    {
      "name" : "Proceed To Follow Up Retest",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "boolean"
    },
    {
      "name" : "Needs Referral",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "boolean"
    },
    {
      "name" : "Triage Recommended Action",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "string"
    },
    {
      "name" : "Triage Status",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "string"
    },
    {
      "name" : "Active Triage Algorithm",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "string"
    }
  ],
  "content" : [
    {
      "contentType" : "text/cql",
      "data" : "LyoKICogQ2VydmljYWxDYW5jZXJUcmlhZ2VEZWNpc2lvbgogKgogKiBUcmlhZ2UgcGF0aHdheSBsb2dpYyBmb3IgSFBWLXBvc2l0aXZlIHdvbWVuLCBpbXBsZW1lbnRpbmcKICogV0hPIGd1aWRlbGluZSBBbGdvcml0aG0gNSAoSFBWIEROQSArIFZJQSB0cmlhZ2UpIHdpdGgKICogZXh0ZW5zaW9uIHBvaW50cyBmb3IgQWxnb3JpdGhtcyAzLCA0LCA2LCA3LgogKgogKiBUaGlzIGxpYnJhcnkgZGV0ZXJtaW5lczoKICogICAtIFdoZXRoZXIgdHJpYWdlIGlzIGluZGljYXRlZAogKiAgIC0gVGhlIGFwcHJvcHJpYXRlIHRyaWFnZSBtZXRob2QgZm9yIHRoZSBhY3RpdmUgYWxnb3JpdGhtCiAqICAgLSBJbnRlcnByZXRhdGlvbiBvZiB0cmlhZ2UgcmVzdWx0cwogKiAgIC0gUm91dGluZyB0byB0cmVhdG1lbnQgdnMgZm9sbG93LXVwIHZzIHJlZmVycmFsCiAqCiAqIEFsZ29yaXRobSA1IGNhc2NhZGUgYWZ0ZXIgSFBWKzoKICogICBIUFYgcG9zaXRpdmUg4oaSIFZJQSB0cmlhZ2UKICogICAgIOKUnOKUgOKUgCBWSUEgcG9zaXRpdmUg4oaSIFRyZWF0ICjihpIgVHJlYXRtZW50RGVjaXNpb24pCiAqICAgICDilJzilIDilIAgVklBIG5lZ2F0aXZlIOKGkiBSZXRlc3QgYXQgMTIvMjQgbW9udGhzICjihpIgRm9sbG93VXBEZWNpc2lvbikKICogICAgIOKUlOKUgOKUgCBTdXNwaWNpb3VzIGZvciBjYW5jZXIg4oaSIFJlZmVyIHRvIG9uY29sb2d5CiAqCiAqIFdITyBSZWNvbW1lbmRhdGlvbnMgY292ZXJlZDoKICogICBHZW5lcmFsIHBvcHVsYXRpb246IDNiIChzY3JlZW4tdHJpYWdlLXRyZWF0KSwgMTEgKHBvc3QtdHJpYWdlLW5lZ2F0aXZlIHJldGVzdCkKICogICBXTEhJVjogMjIgKHRyaWFnZSByZWNvbW1lbmRlZCksIDIzIChzY3JlZW4tdHJpYWdlLXRyZWF0KSwgMzEgKHJldGVzdCB0aW1pbmcpCiAqCiAqIEBhdXRob3IgIERhbiBIZXNsaW5nYSAvIEhvcGVuYSBIZWFsdGgKICogQHZlcnNpb24gMC4xLjAKICogQGRhdGUgICAgMjAyNi0wMy0wOAogKi8KCmxpYnJhcnkgQ2VydmljYWxDYW5jZXJUcmlhZ2VEZWNpc2lvbiB2ZXJzaW9uICcwLjEuMCcKCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJwppbmNsdWRlIENlcnZpY2FsQ2FuY2VyU2NyZWVuaW5nQ29tbW9uIHZlcnNpb24gJzAuMS4wJyBjYWxsZWQgQ29tbW9uCgpjb250ZXh0IFBhdGllbnQKCi8qCiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIFRSSUFHRSBJTkRJQ0FUSU9OCiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqCiAqIEBndWlkYW5jZSBUcmlhZ2UgaXMgaW5kaWNhdGVkIHdoZW4gdGhlIHByaW1hcnkgSFBWIEROQSB0ZXN0IGlzIHBvc2l0aXZlLgogKiAgICAgICAgICAgSW4gQWxnb3JpdGhtIDUsIFZJQSBpcyB0aGUgdHJpYWdlIG1ldGhvZC4KICogICAgICAgICAgIEluIHNjcmVlbi1hbmQtdHJlYXQgYXBwcm9hY2hlcyAoQWxnb3JpdGhtIDIpLCBWSUEgaXMgc3RpbGwgZG9uZQogKiAgICAgICAgICAgYnV0IGZvciB0cmVhdG1lbnQgbW9kYWxpdHkgc2VsZWN0aW9uIHJhdGhlciB0aGFuIHRyaWFnZS4KICovCgovKgogKiBAb3V0cHV0IEJvb2xlYW4g4oCUIHRydWUgaWYgdHJpYWdlIGlzIGluZGljYXRlZCAoSFBWKyB3aXRob3V0IHN1YnNlcXVlbnQgdHJpYWdlKQogKiBAcHNldWRvY29kZSBIUFYgdGVzdCBwb3NpdGl2ZSBBTkQgbm8gVklBIHJlc3VsdCBhZnRlciB0aGUgSFBWIHRlc3QKICovCmRlZmluZSAiVHJpYWdlIElzIEluZGljYXRlZCI6CiAgQ29tbW9uLiJNb3N0IFJlY2VudCBIUFYgVGVzdCBJcyBQb3NpdGl2ZSIKICAgIGFuZCAoCiAgICAgIG5vdCBleGlzdHMoQ29tbW9uLiJWSUEgU2NyZWVuaW5nIFJlc3VsdHMiKQogICAgICBvciBDb21tb24uIkRhdGUgT2YgTW9zdCBSZWNlbnQgVklBIiBiZWZvcmUgQ29tbW9uLiJEYXRlIE9mIE1vc3QgUmVjZW50IEhQViBUZXN0IgogICAgKQoKLyoKICogQG91dHB1dCBCb29sZWFuIOKAlCB0cnVlIGlmIHRyaWFnZSBoYXMgYmVlbiBwZXJmb3JtZWQgKFZJQSBkb25lIGFmdGVyIEhQVisgcmVzdWx0KQogKi8KZGVmaW5lICJUcmlhZ2UgSGFzIEJlZW4gUGVyZm9ybWVkIjoKICBDb21tb24uIk1vc3QgUmVjZW50IEhQViBUZXN0IElzIFBvc2l0aXZlIgogICAgYW5kIGV4aXN0cyhDb21tb24uIlZJQSBTY3JlZW5pbmcgUmVzdWx0cyIpCiAgICBhbmQgQ29tbW9uLiJEYXRlIE9mIE1vc3QgUmVjZW50IFZJQSIgb24gb3IgYWZ0ZXIgQ29tbW9uLiJEYXRlIE9mIE1vc3QgUmVjZW50IEhQViBUZXN0IgoKLyoKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogVFJJQUdFIFJFU1VMVCBJTlRFUlBSRVRBVElPTgogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKi8KCi8qCiAqIEBvdXRwdXQgQm9vbGVhbiDigJQgdHJ1ZSBpZiBWSUEgdHJpYWdlIHdhcyBwb3NpdGl2ZQogKiBAZ3VpZGFuY2UgVklBIHBvc2l0aXZlIOKGkiBwcm9jZWVkIHRvIHRyZWF0bWVudCBhc3Nlc3NtZW50CiAqLwpkZWZpbmUgIlZJQSBUcmlhZ2UgSXMgUG9zaXRpdmUiOgogICJUcmlhZ2UgSGFzIEJlZW4gUGVyZm9ybWVkIgogICAgYW5kIENvbW1vbi4iTW9zdCBSZWNlbnQgVklBIElzIFBvc2l0aXZlIgoKLyoKICogQG91dHB1dCBCb29sZWFuIOKAlCB0cnVlIGlmIFZJQSB0cmlhZ2Ugd2FzIG5lZ2F0aXZlCiAqIEBndWlkYW5jZSBWSUEgbmVnYXRpdmUg4oaSIHNjaGVkdWxlIGZvbGxvdy11cCBIUFYgcmV0ZXN0CiAqICAgICAgICAgICBHZW5lcmFsOiAyNCBtb250aHMgKFdITyBSZWMgMTEpCiAqICAgICAgICAgICBXTEhJVjogMTIgbW9udGhzIChXSE8gUmVjIDMxKQogKi8KZGVmaW5lICJWSUEgVHJpYWdlIElzIE5lZ2F0aXZlIjoKICAiVHJpYWdlIEhhcyBCZWVuIFBlcmZvcm1lZCIKICAgIGFuZCBub3QgQ29tbW9uLiJNb3N0IFJlY2VudCBWSUEgSXMgUG9zaXRpdmUiCgovKgogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBTVVNQSUNJT1VTIEZPUiBDQU5DRVIg4oCUIFJlZmVycmFsIHBhdGh3YXkKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICoKICogQGd1aWRhbmNlIEluIGFsbCBhbGdvcml0aG1zLCBpZiBWSUEgb3IgY29scG9zY29weSByZXZlYWxzIGZpbmRpbmdzCiAqICAgICAgICAgICBzdXNwaWNpb3VzIGZvciBpbnZhc2l2ZSBjYW5jZXIsIHRoZSBwYXRpZW50IG11c3QgYmUgcmVmZXJyZWQKICogICAgICAgICAgIGZvciBkZWZpbml0aXZlIGRpYWdub3NpcyBhbmQgc3RhZ2luZy4gVGhpcyBieXBhc3NlcyB0cmlhZ2UvdHJlYXRtZW50LgogKgogKiBOb3RlOiAiU3VzcGljaW91cyBmb3IgY2FuY2VyIiBpcyBhIGNsaW5pY2FsIGp1ZGdtZW50IGR1cmluZyBWSUEuIEluIE9wZW5NUlMsCiAqIHRoaXMgd291bGQgYmUgcmVjb3JkZWQgYXMgYSBzZXBhcmF0ZSBvYnNlcnZhdGlvbiBvciBhcyBhIHNwZWNpZmljIGNvZGVkIHZhbHVlCiAqIG9uIHRoZSBWSUEgcmVzdWx0LiBXZSBtb2RlbCBpdCBhcyBhIGRpc3RpbmN0IG9ic2VydmF0aW9uIGNvbmNlcHQuCiAqCiAqIENJRUwgY29uY2VwdCBuZWVkZWQgKG5vdCB5ZXQgbG9hZGVkKToKICogICAtIENJRUwgMTU5MzkzOiBDZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIG91dGNvbWUKICogICAgIG9yIGEgY3VzdG9tIGNvbmNlcHQgZm9yICJzdXNwaWNpb3VzIGZvciBjYW5jZXIiIGZpbmRpbmcKICoKICogRm9yIG5vdywgd2UgY2hlY2sgZm9yIGFuIGFjdGl2ZSBjZXJ2aWNhbCBjYW5jZXIgY29uZGl0aW9uIGFzIGEgcHJveHkuCiAqIFdoZW4gdGhlIGNvbmNlcHQgaXMgbG9hZGVkLCB0aGlzIGRlZmluaXRpb24gd2lsbCBiZSB1cGRhdGVkIHRvIGNoZWNrCiAqIHRoZSBWSUEgb2JzZXJ2YXRpb24gdmFsdWUgZGlyZWN0bHkuCiAqLwoKLyoKICogQG91dHB1dCBCb29sZWFuIOKAlCB0cnVlIGlmIGZpbmRpbmdzIGFyZSBzdXNwaWNpb3VzIGZvciBjYW5jZXIKICogQHBzZXVkb2NvZGUgQ3VycmVudGx5IHVzZXMgY2VydmljYWwgY2FuY2VyIGRpYWdub3NpcyBhcyBwcm94eTsKICogICAgICAgICAgICAgd2lsbCBiZSByZWZpbmVkIHdoZW4gc3VzcGljaW91cy1mb3ItY2FuY2VyIG9ic2VydmF0aW9uIGNvbmNlcHQgaXMgbG9hZGVkCiAqLwpkZWZpbmUgIlN1c3BpY2lvdXMgRm9yIENhbmNlciI6CiAgQ29tbW9uLiJIYXMgQ2VydmljYWwgQ2FuY2VyIERpYWdub3NpcyIKCi8qCiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIFRSSUFHRSBST1VUSU5HIOKAlCBXaGVyZSBkb2VzIHRoZSBwYXRpZW50IGdvIG5leHQ/CiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqLwoKLyoKICogQG91dHB1dCBCb29sZWFuIOKAlCB0cnVlIGlmIHBhdGllbnQgc2hvdWxkIHByb2NlZWQgdG8gdHJlYXRtZW50IGFzc2Vzc21lbnQKICogQHBzZXVkb2NvZGUgVklBIHRyaWFnZSBwb3NpdGl2ZSBBTkQgbm90IHN1c3BpY2lvdXMgZm9yIGNhbmNlcgogKi8KZGVmaW5lICJQcm9jZWVkIFRvIFRyZWF0bWVudCI6CiAgIlZJQSBUcmlhZ2UgSXMgUG9zaXRpdmUiCiAgICBhbmQgbm90ICJTdXNwaWNpb3VzIEZvciBDYW5jZXIiCgovKgogKiBAb3V0cHV0IEJvb2xlYW4g4oCUIHRydWUgaWYgcGF0aWVudCBzaG91bGQgYmUgc2NoZWR1bGVkIGZvciBmb2xsb3ctdXAgcmV0ZXN0CiAqIEBwc2V1ZG9jb2RlIFZJQSB0cmlhZ2UgbmVnYXRpdmUgQU5EIG5vdCBzdXNwaWNpb3VzIGZvciBjYW5jZXIKICovCmRlZmluZSAiUHJvY2VlZCBUbyBGb2xsb3cgVXAgUmV0ZXN0IjoKICAiVklBIFRyaWFnZSBJcyBOZWdhdGl2ZSIKICAgIGFuZCBub3QgIlN1c3BpY2lvdXMgRm9yIENhbmNlciIKCi8qCiAqIEBvdXRwdXQgQm9vbGVhbiDigJQgdHJ1ZSBpZiBwYXRpZW50IG5lZWRzIG9uY29sb2d5IHJlZmVycmFsCiAqLwpkZWZpbmUgIk5lZWRzIFJlZmVycmFsIjoKICAiU3VzcGljaW91cyBGb3IgQ2FuY2VyIgoKLyoKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogUkVDT01NRU5ERUQgQUNUSU9OIOKAlCBUcmlhZ2Utc3BlY2lmaWMgZ3VpZGFuY2UKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICovCgovKgogKiBAb3V0cHV0IFN0cmluZyDigJQgdGhlIHJlY29tbWVuZGVkIHRyaWFnZSBhY3Rpb24KICovCmRlZmluZSAiVHJpYWdlIFJlY29tbWVuZGVkIEFjdGlvbiI6CiAgY2FzZQogICAgd2hlbiAiU3VzcGljaW91cyBGb3IgQ2FuY2VyIgogICAgICB0aGVuICdGaW5kaW5ncyBzdXNwaWNpb3VzIGZvciBpbnZhc2l2ZSBjYW5jZXIg4oCUIHJlZmVyIGZvciBkaWFnbm9zaXMgYW5kIHN0YWdpbmcnCgogICAgd2hlbiAiVHJpYWdlIElzIEluZGljYXRlZCIKICAgICAgdGhlbiAnUGVyZm9ybSBWSUEgdHJpYWdlIGFzc2Vzc21lbnQnCgogICAgd2hlbiAiUHJvY2VlZCBUbyBUcmVhdG1lbnQiCiAgICAgIHRoZW4gJ1ZJQSBwb3NpdGl2ZSDigJQgcHJvY2VlZCB0byB0cmVhdG1lbnQgZWxpZ2liaWxpdHkgYXNzZXNzbWVudCAoc2VlIFRyZWF0bWVudERlY2lzaW9uKScKCiAgICB3aGVuICJQcm9jZWVkIFRvIEZvbGxvdyBVcCBSZXRlc3QiCiAgICAgIHRoZW4gJ1ZJQSBuZWdhdGl2ZSDigJQgc2NoZWR1bGUgSFBWIEROQSByZXRlc3QgaW4gJwogICAgICAgICAgICsgVG9TdHJpbmcoQ29tbW9uLiJQb3N0IFRyaWFnZSBOZWdhdGl2ZSBSZXRlc3QgTW9udGhzIikKICAgICAgICAgICArICcgbW9udGhzJwoKICAgIHdoZW4gbm90IENvbW1vbi4iTW9zdCBSZWNlbnQgSFBWIFRlc3QgSXMgUG9zaXRpdmUiCiAgICAgIHRoZW4gJ05vIHRyaWFnZSBpbmRpY2F0ZWQg4oCUIEhQViB0ZXN0IGlzIG5vdCBwb3NpdGl2ZScKCiAgICBlbHNlICdVbmFibGUgdG8gZGV0ZXJtaW5lIHRyaWFnZSByZWNvbW1lbmRhdGlvbicKICBlbmQKCi8qCiAqIEBvdXRwdXQgU3RyaW5nIOKAlCB0cmlhZ2Ugc3RhdHVzIGZvciBkb3duc3RyZWFtIHJvdXRpbmcKICovCmRlZmluZSAiVHJpYWdlIFN0YXR1cyI6CiAgY2FzZQogICAgd2hlbiAiU3VzcGljaW91cyBGb3IgQ2FuY2VyIiB0aGVuICdyZWZlci1vbmNvbG9neScKICAgIHdoZW4gIlRyaWFnZSBJcyBJbmRpY2F0ZWQiIHRoZW4gJ2F3YWl0aW5nLXRyaWFnZScKICAgIHdoZW4gIlByb2NlZWQgVG8gVHJlYXRtZW50IiB0aGVuICd0cmlhZ2UtcG9zaXRpdmUnCiAgICB3aGVuICJQcm9jZWVkIFRvIEZvbGxvdyBVcCBSZXRlc3QiIHRoZW4gJ3RyaWFnZS1uZWdhdGl2ZScKICAgIHdoZW4gbm90IENvbW1vbi4iTW9zdCBSZWNlbnQgSFBWIFRlc3QgSXMgUG9zaXRpdmUiIHRoZW4gJ25vdC1pbmRpY2F0ZWQnCiAgICBlbHNlICd1bmtub3duJwogIGVuZAoKLyoKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogQUxHT1JJVEhNIEVYVEVOU0lPTiBQT0lOVFMKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICoKICogVGhlIGZvbGxvd2luZyBkZWZpbml0aW9ucyBhcmUgc3R1YnMgZm9yIGZ1dHVyZSBtdWx0aS1hbGdvcml0aG0gc3VwcG9ydC4KICogQ3VycmVudGx5IG9ubHkgQWxnb3JpdGhtIDUgKFZJQSB0cmlhZ2UpIGlzIGltcGxlbWVudGVkLgogKgogKiBBbGdvcml0aG0gNDogSFBWMTYvMTggZ2Vub3R5cGluZyB0cmlhZ2UKICogICAtIFJlcXVpcmVzOiBIUFYgZ2Vub3R5cGluZyBvYnNlcnZhdGlvbiBjb25jZXB0cwogKiAgIC0gTG9naWM6IEhQVjE2LzE4KyDihpIgdHJlYXQgZGlyZWN0bHk7IG90aGVyIEhQVisg4oaSIFZJQSB0cmlhZ2UKICoKICogQWxnb3JpdGhtIDY6IENvbHBvc2NvcHkgdHJpYWdlCiAqICAgLSBSZXF1aXJlczogQ29scG9zY29weSBmaW5kaW5nIG9ic2VydmF0aW9uIGNvbmNlcHRzCiAqICAgLSBMb2dpYzogQ0lOMSsg4oaSIHRyZWF0OyBub3JtYWwgY29scG9zY29weSDihpIgcmV0ZXN0IGF0IDEyIG1vbnRocwogKgogKiBBbGdvcml0aG0gNzogQ3l0b2xvZ3kgKyBjb2xwb3Njb3B5IHRyaWFnZQogKiAgIC0gUmVxdWlyZXM6IEN5dG9sb2d5IHJlc3VsdCBjb25jZXB0cyAoQVNDVVMsIExTSUwsIEhTSUwrKQogKiAgIC0gTG9naWM6IEhTSUwrIOKGkiBjb2xwb3Njb3B5IOKGkiBDSU4xKyDihpIgdHJlYXQKICovCgovKgogKiBAb3V0cHV0IFN0cmluZyDigJQgd2hpY2ggdHJpYWdlIGFsZ29yaXRobSBpcyBhY3RpdmUKICogQGd1aWRhbmNlIEN1cnJlbnRseSBoYXJkY29kZWQgdG8gQWxnb3JpdGhtIDU7IHdpbGwgYmUgcGFyYW1ldGVyaXplZAogKiAgICAgICAgICAgd2hlbiBtdWx0aS1hbGdvcml0aG0gc3VwcG9ydCBpcyBhZGRlZAogKi8KZGVmaW5lICJBY3RpdmUgVHJpYWdlIEFsZ29yaXRobSI6CiAgJ0FsZ29yaXRobSA1IOKAlCBIUFYgRE5BICsgVklBIFRyaWFnZScK"
    },
    {
      "contentType" : "application/elm+json",
      "data" : "ewogICAibGlicmFyeSIgOiB7CiAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAidHJhbnNsYXRvck9wdGlvbnMiIDogIkVuYWJsZUxvY2F0b3JzLERpc2FibGVMaXN0RGVtb3Rpb24sRGlzYWJsZUxpc3RQcm9tb3Rpb24iLAogICAgICAgICAic2lnbmF0dXJlTGV2ZWwiIDogIk5vbmUiLAogICAgICAgICAidHlwZSIgOiAiQ3FsVG9FbG1JbmZvIgogICAgICB9LCB7CiAgICAgICAgICJtZXNzYWdlIiA6ICJBbiBvcGVyYW5kIGlkZW50aWZpZXIgcmVmZXJlbmNlIGlzIGhpZGluZyBhbm90aGVyIGlkZW50aWZpZXIgb2YgdGhlIHNhbWUgbmFtZS4iLAogICAgICAgICAiZXJyb3JUeXBlIiA6ICJzZW1hbnRpYyIsCiAgICAgICAgICJlcnJvclNldmVyaXR5IiA6ICJ3YXJuaW5nIiwKICAgICAgICAgInR5cGUiIDogIkNxbFRvRWxtRXJyb3IiCiAgICAgIH0sIHsKICAgICAgICAgIm1lc3NhZ2UiIDogIlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiwKICAgICAgICAgImVycm9yVHlwZSIgOiAic2VtYW50aWMiLAogICAgICAgICAiZXJyb3JTZXZlcml0eSIgOiAid2FybmluZyIsCiAgICAgICAgICJ0eXBlIiA6ICJDcWxUb0VsbUVycm9yIgogICAgICB9LCB7CiAgICAgICAgICJtZXNzYWdlIiA6ICJUaGUgZnVuY3Rpb24gRkhJUkhlbHBlcnMuVG9JbnRlcnZhbCBoYXMgbXVsdGlwbGUgb3ZlcmxvYWRzIGFuZCBkdWUgdG8gdGhlIFNpZ25hdHVyZUxldmVsIHNldHRpbmcgKE5vbmUpLCB0aGUgb3ZlcmxvYWQgc2lnbmF0dXJlIGlzIG5vdCBiZWluZyBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LiBUaGlzIG1heSByZXN1bHQgaW4gYW1iaWd1b3VzIGZ1bmN0aW9uIHJlc29sdXRpb24gYXQgcnVudGltZSwgY29uc2lkZXIgc2V0dGluZyB0aGUgU2lnbmF0dXJlTGV2ZWwgdG8gT3ZlcmxvYWRzIG9yIEFsbCB0byBlbnN1cmUgdGhhdCB0aGUgb3V0cHV0IGluY2x1ZGVzIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gc3VwcG9ydCBjb3JyZWN0IG92ZXJsb2FkIHNlbGVjdGlvbiBhdCBydW50aW1lLiIsCiAgICAgICAgICJlcnJvclR5cGUiIDogInNlbWFudGljIiwKICAgICAgICAgImVycm9yU2V2ZXJpdHkiIDogIndhcm5pbmciLAogICAgICAgICAidHlwZSIgOiAiQ3FsVG9FbG1FcnJvciIKICAgICAgfSwgewogICAgICAgICAibWVzc2FnZSIgOiAiQW4gb3BlcmFuZCBpZGVudGlmaWVyIHJlZmVyZW5jZSBpcyBoaWRpbmcgYW5vdGhlciBpZGVudGlmaWVyIG9mIHRoZSBzYW1lIG5hbWUuIiwKICAgICAgICAgImVycm9yVHlwZSIgOiAic2VtYW50aWMiLAogICAgICAgICAiZXJyb3JTZXZlcml0eSIgOiAid2FybmluZyIsCiAgICAgICAgICJ0eXBlIiA6ICJDcWxUb0VsbUVycm9yIgogICAgICB9LCB7CiAgICAgICAgICJtZXNzYWdlIiA6ICJBbiBvcGVyYW5kIGlkZW50aWZpZXIgcmVmZXJlbmNlIGlzIGhpZGluZyBhbm90aGVyIGlkZW50aWZpZXIgb2YgdGhlIHNhbWUgbmFtZS4iLAogICAgICAgICAiZXJyb3JUeXBlIiA6ICJzZW1hbnRpYyIsCiAgICAgICAgICJlcnJvclNldmVyaXR5IiA6ICJ3YXJuaW5nIiwKICAgICAgICAgInR5cGUiIDogIkNxbFRvRWxtRXJyb3IiCiAgICAgIH0gXSwKICAgICAgImlkZW50aWZpZXIiIDogewogICAgICAgICAiaWQiIDogIkNlcnZpY2FsQ2FuY2VyVHJpYWdlRGVjaXNpb24iLAogICAgICAgICAic3lzdGVtIiA6ICJodHRwczovL2hvcGVuYWhlYWx0aC5jb20vZmhpci9jZXJ2aWNhbC1jYW5jZXItY2RzIiwKICAgICAgICAgInZlcnNpb24iIDogIjAuMS4wIgogICAgICB9LAogICAgICAic2NoZW1hSWRlbnRpZmllciIgOiB7CiAgICAgICAgICJpZCIgOiAidXJuOmhsNy1vcmc6ZWxtIiwKICAgICAgICAgInZlcnNpb24iIDogInIxIgogICAgICB9LAogICAgICAidXNpbmdzIiA6IHsKICAgICAgICAgImRlZiIgOiBbIHsKICAgICAgICAgICAgImxvY2FsSWRlbnRpZmllciIgOiAiU3lzdGVtIiwKICAgICAgICAgICAgInVyaSIgOiAidXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiwKICAgICAgICAgICAgInZlcnNpb24iIDogIjEuMC4wIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjMxOjEtMzE6MjYiLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJGSElSIiwKICAgICAgICAgICAgInVyaSIgOiAiaHR0cDovL2hsNy5vcmcvZmhpciIsCiAgICAgICAgICAgICJ2ZXJzaW9uIiA6ICI0LjAuMSIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICB9IF0KICAgICAgfSwKICAgICAgImluY2x1ZGVzIiA6IHsKICAgICAgICAgImRlZiIgOiBbIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjMzOjEtMzM6MzUiLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJGSElSSGVscGVycyIsCiAgICAgICAgICAgICJwYXRoIiA6ICJodHRwOi8vaGw3Lm9yZy9maGlyL0ZISVJIZWxwZXJzIiwKICAgICAgICAgICAgInZlcnNpb24iIDogIjQuMC4xIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjM0OjEtMzQ6NjciLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJDb21tb24iLAogICAgICAgICAgICAicGF0aCIgOiAiaHR0cHM6Ly9ob3BlbmFoZWFsdGguY29tL2ZoaXIvY2VydmljYWwtY2FuY2VyLWNkcy9DZXJ2aWNhbENhbmNlclNjcmVlbmluZ0NvbW1vbiIsCiAgICAgICAgICAgICJ2ZXJzaW9uIiA6ICIwLjEuMCIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICB9IF0KICAgICAgfSwKICAgICAgImNvbnRleHRzIiA6IHsKICAgICAgICAgImRlZiIgOiBbIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjM2OjEtMzY6MTUiLAogICAgICAgICAgICAibmFtZSIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICB9IF0KICAgICAgfSwKICAgICAgInN0YXRlbWVudHMiIDogewogICAgICAgICAiZGVmIiA6IFsgewogICAgICAgICAgICAibG9jYXRvciIgOiAiMzY6MS0zNjoxNSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgInR5cGUiIDogIlNpbmdsZXRvbkZyb20iLAogICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAib3BlcmFuZCIgOiB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIzNjoxLTM2OjE1IiwKICAgICAgICAgICAgICAgICAgImRhdGFUeXBlIiA6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1QYXRpZW50IiwKICAgICAgICAgICAgICAgICAgInRlbXBsYXRlSWQiIDogImh0dHA6Ly9obDcub3JnL2ZoaXIvU3RydWN0dXJlRGVmaW5pdGlvbi9QYXRpZW50IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIlJldHJpZXZlIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAiaW5jbHVkZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJjb2RlRmlsdGVyIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgImRhdGVGaWx0ZXIiIDogWyBdLAogICAgICAgICAgICAgICAgICAib3RoZXJGaWx0ZXIiIDogWyBdCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI1MzoxLTU4OjUiLAogICAgICAgICAgICAibmFtZSIgOiAiVHJpYWdlIElzIEluZGljYXRlZCIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjU0OjMtNTg6NSIsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbmQiLAogICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjU0OjMtNTQ6NDMiLAogICAgICAgICAgICAgICAgICAibmFtZSIgOiAiTW9zdCBSZWNlbnQgSFBWIFRlc3QgSXMgUG9zaXRpdmUiLAogICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjU1OjktNTg6NSIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJPciIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNTY6Ny01Njo0OCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJOb3QiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI1NjoxMS01Njo0OCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeGlzdHMiLAogICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI1NjoxNy01Njo0OCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJWSUEgU2NyZWVuaW5nIFJlc3VsdHMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI1NzoxMC01Nzo4NiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJCZWZvcmUiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjU3OjEwLTU3OjQxIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkRhdGUgT2YgTW9zdCBSZWNlbnQgVklBIiwKICAgICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI1Nzo1MC01Nzo4NiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJEYXRlIE9mIE1vc3QgUmVjZW50IEhQViBUZXN0IiwKICAgICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjYzOjEtNjY6OTAiLAogICAgICAgICAgICAibmFtZSIgOiAiVHJpYWdlIEhhcyBCZWVuIFBlcmZvcm1lZCIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjY0OjMtNjY6OTAiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5kIiwKICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI2NDozLTY1OjQ2IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkFuZCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNjQ6My02NDo0MyIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJNb3N0IFJlY2VudCBIUFYgVGVzdCBJcyBQb3NpdGl2ZSIsCiAgICAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNjU6OS02NTo0NiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeGlzdHMiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI2NToxNS02NTo0NiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJWSUEgU2NyZWVuaW5nIFJlc3VsdHMiLAogICAgICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjY2OjktNjY6OTAiLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiU2FtZU9yQWZ0ZXIiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjY2OjktNjY6NDAiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiRGF0ZSBPZiBNb3N0IFJlY2VudCBWSUEiLAogICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjY2OjU0LTY2OjkwIiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkRhdGUgT2YgTW9zdCBSZWNlbnQgSFBWIFRlc3QiLAogICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI3ODoxLTgwOjQ0IiwKICAgICAgICAgICAgIm5hbWUiIDogIlZJQSBUcmlhZ2UgSXMgUG9zaXRpdmUiLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAiZXhwcmVzc2lvbiIgOiB7CiAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI3OTozLTgwOjQ0IiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkFuZCIsCiAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNzk6My03OToyOSIsCiAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJUcmlhZ2UgSGFzIEJlZW4gUGVyZm9ybWVkIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiODA6OS04MDo0NCIsCiAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJNb3N0IFJlY2VudCBWSUEgSXMgUG9zaXRpdmUiLAogICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjg4OjEtOTA6NDgiLAogICAgICAgICAgICAibmFtZSIgOiAiVklBIFRyaWFnZSBJcyBOZWdhdGl2ZSIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjg5OjMtOTA6NDgiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5kIiwKICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI4OTozLTg5OjI5IiwKICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIlRyaWFnZSBIYXMgQmVlbiBQZXJmb3JtZWQiLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI5MDo5LTkwOjQ4IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIk5vdCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjkwOjEzLTkwOjQ4IiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIk1vc3QgUmVjZW50IFZJQSBJcyBQb3NpdGl2ZSIsCiAgICAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMTk6MS0xMjA6NDAiLAogICAgICAgICAgICAibmFtZSIgOiAiU3VzcGljaW91cyBGb3IgQ2FuY2VyIiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTIwOjMtMTIwOjQwIiwKICAgICAgICAgICAgICAgIm5hbWUiIDogIkhhcyBDZXJ2aWNhbCBDYW5jZXIgRGlhZ25vc2lzIiwKICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjEzMjoxLTEzNDozNSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJQcm9jZWVkIFRvIFRyZWF0bWVudCIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjEzMzozLTEzNDozNSIsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbmQiLAogICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjEzMzozLTEzMzoyNiIsCiAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJWSUEgVHJpYWdlIElzIFBvc2l0aXZlIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTM0OjktMTM0OjM1IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIk5vdCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjEzNDoxMy0xMzQ6MzUiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiU3VzcGljaW91cyBGb3IgQ2FuY2VyIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNDA6MS0xNDI6MzUiLAogICAgICAgICAgICAibmFtZSIgOiAiUHJvY2VlZCBUbyBGb2xsb3cgVXAgUmV0ZXN0IiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTQxOjMtMTQyOjM1IiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkFuZCIsCiAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTQxOjMtMTQxOjI2IiwKICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIlZJQSBUcmlhZ2UgSXMgTmVnYXRpdmUiLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNDI6OS0xNDI6MzUiLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTm90IiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTQyOjEzLTE0MjozNSIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJTdXNwaWNpb3VzIEZvciBDYW5jZXIiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjE0NzoxLTE0ODoyNSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJOZWVkcyBSZWZlcnJhbCIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE0ODozLTE0ODoyNSIsCiAgICAgICAgICAgICAgICJuYW1lIiA6ICJTdXNwaWNpb3VzIEZvciBDYW5jZXIiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjE1OToxLTE3OTo1IiwKICAgICAgICAgICAgIm5hbWUiIDogIlRyaWFnZSBSZWNvbW1lbmRlZCBBY3Rpb24iLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAiZXhwcmVzc2lvbiIgOiB7CiAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNjA6My0xNzk6NSIsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJDYXNlIiwKICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAiY2FzZUl0ZW0iIDogWyB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNjE6NS0xNjI6ODYiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJ3aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE2MToxMC0xNjE6MzIiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiU3VzcGljaW91cyBGb3IgQ2FuY2VyIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTYyOjEyLTE2Mjo4NiIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJGaW5kaW5ncyBzdXNwaWNpb3VzIGZvciBpbnZhc2l2ZSBjYW5jZXIg4oCUIHJlZmVyIGZvciBkaWFnbm9zaXMgYW5kIHN0YWdpbmciLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE2NDo1LTE2NTo0MiIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTY0OjEwLTE2NDozMCIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJUcmlhZ2UgSXMgSW5kaWNhdGVkIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTY1OjEyLTE2NTo0MiIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJQZXJmb3JtIFZJQSB0cmlhZ2UgYXNzZXNzbWVudCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTY3OjUtMTY4Ojk1IiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAid2hlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNjc6MTAtMTY3OjMxIiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIlByb2NlZWQgVG8gVHJlYXRtZW50IiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTY4OjEyLTE2ODo5NSIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJWSUEgcG9zaXRpdmUg4oCUIHByb2NlZWQgdG8gdHJlYXRtZW50IGVsaWdpYmlsaXR5IGFzc2Vzc21lbnQgKHNlZSBUcmVhdG1lbnREZWNpc2lvbikiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE3MDo1LTE3MzoyMiIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTcwOjEwLTE3MDozOCIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJQcm9jZWVkIFRvIEZvbGxvdyBVcCBSZXRlc3QiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAidGhlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNzE6MTItMTczOjIyIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkNvbmNhdGVuYXRlIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNzE6MTItMTcyOjY2IiwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkNvbmNhdGVuYXRlIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNzE6MTItMTcxOjU1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogIlZJQSBuZWdhdGl2ZSDigJQgc2NoZWR1bGUgSFBWIEROQSByZXRlc3QgaW4gIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTcyOjE0LTE3Mjo2NiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJUb1N0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE3MjoyMy0xNzI6NjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiUG9zdCBUcmlhZ2UgTmVnYXRpdmUgUmV0ZXN0IE1vbnRocyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTczOjE0LTE3MzoyMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICIgbW9udGhzIiwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiLAogICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTc1OjUtMTc2OjU5IiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAid2hlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNzU6MTAtMTc1OjU0IiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIk5vdCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE3NToxNC0xNzU6NTQiLAogICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiTW9zdCBSZWNlbnQgSFBWIFRlc3QgSXMgUG9zaXRpdmUiLAogICAgICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTc2OjEyLTE3Njo1OSIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJObyB0cmlhZ2UgaW5kaWNhdGVkIOKAlCBIUFYgdGVzdCBpcyBub3QgcG9zaXRpdmUiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgICAgImVsc2UiIDogewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTc4OjEwLTE3ODo1MiIsCiAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJVbmFibGUgdG8gZGV0ZXJtaW5lIHRyaWFnZSByZWNvbW1lbmRhdGlvbiIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxODQ6MS0xOTI6NSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJUcmlhZ2UgU3RhdHVzIiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTg1OjMtMTkyOjUiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiQ2FzZSIsCiAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgImNhc2VJdGVtIiA6IFsgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTg2OjUtMTg2OjU0IiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAid2hlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxODY6MTAtMTg2OjMyIiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIlN1c3BpY2lvdXMgRm9yIENhbmNlciIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE4NjozOS0xODY6NTQiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAicmVmZXItb25jb2xvZ3kiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE4Nzo1LTE4Nzo1MyIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTg3OjEwLTE4NzozMCIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJUcmlhZ2UgSXMgSW5kaWNhdGVkIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTg3OjM3LTE4Nzo1MyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJhd2FpdGluZy10cmlhZ2UiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE4ODo1LTE4ODo1NCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTg4OjEwLTE4ODozMSIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJQcm9jZWVkIFRvIFRyZWF0bWVudCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE4ODozOC0xODg6NTQiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAidHJpYWdlLXBvc2l0aXZlIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxODk6NS0xODk6NjEiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJ3aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE4OToxMC0xODk6MzgiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiUHJvY2VlZCBUbyBGb2xsb3cgVXAgUmV0ZXN0IiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTg5OjQ1LTE4OTo2MSIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJ0cmlhZ2UtbmVnYXRpdmUiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE5MDo1LTE5MDo3NSIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTkwOjEwLTE5MDo1NCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJOb3QiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxOTA6MTQtMTkwOjU0IiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIk1vc3QgUmVjZW50IEhQViBUZXN0IElzIFBvc2l0aXZlIiwKICAgICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE5MDo2MS0xOTA6NzUiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAibm90LWluZGljYXRlZCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfSBdLAogICAgICAgICAgICAgICAiZWxzZSIgOiB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxOTE6MTAtMTkxOjE4IiwKICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAgICAidmFsdWUiIDogInVua25vd24iLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfSwgewogICAgICAgICAgICAibG9jYXRvciIgOiAiMjIwOjEtMjIxOjM4IiwKICAgICAgICAgICAgIm5hbWUiIDogIkFjdGl2ZSBUcmlhZ2UgQWxnb3JpdGhtIiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjIxOjMtMjIxOjM4IiwKICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAidmFsdWUiIDogIkFsZ29yaXRobSA1IOKAlCBIUFYgRE5BICsgVklBIFRyaWFnZSIsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIiwKICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgIH0KICAgICAgICAgfSBdCiAgICAgIH0KICAgfQp9"
    }
  ]
}