WHO SMART Guidelines - HIV
0.3.0 - ci-build

WHO SMART Guidelines - HIV - Local Development build (v0.3.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

: HIV.IND.14 Logic - JSON Representation

Draft as of 2024-12-06

Raw json | Download

{
  "resourceType" : "Library",
  "id" : "HIVIND14Logic",
  "meta" : {
    "profile" : [
      🔗 "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"🔗 ,
      "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"🔗 ,
      "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"🔗 ,
      "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"
    ]
  },
  "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;\">HIV.IND.14 Logic</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Id: </b></th>\n            <td style=\"padding-left: 4px;\">HIVIND14Logic</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Version: </b></th>\n            <td style=\"padding-left: 4px;\">0.3.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-HIVIND14Logic.html\">HIV.IND.14 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://hl7.org/fhir/R4/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;\">2024-12-06 22:28:12+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>% of OAMT recipients receiving a maintenance dose greater than or equal to the recommended minimum dose</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><code>http://smart.who.int/hiv/Library/HIVCommon|0.0.1</code></li>\n                  \n                    <li><a href=\"Library-WHOCommon.html\">WHOCommon</a></li>\n                  \n                </ul>\n                \n                \n                \n                \n                \n            </td>\n        </tr>\n        \n\n        \n        <tr>\n          <th scope=\"row\"><b>Parameters: </b></th>\n          <td style=\"padding-left: 4px;\">\n            <table class=\"grid-dict\">\n              <tr><th><b>Name</b></th><th><b>Type</b></th><th><b>Min</b></th><th><b>Max</b></th><th><b>In/Out</b></th></tr>\n              \n                <tr><th>Measurement Period</th><th>Period</th><th>0</th><th>1</th><th>In</th></tr>\n              \n                <tr><th>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Initial Population</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Numerator</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Numerator Exclusions</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Denominator</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Denominator Exclusions</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 * Library: HIV.IND.14 Logic\n * Ref No: PRV.14\n * Short Name: OAMT minimum dose\n *\n * Definition: % of OAMT recipients receiving a maintenance dose greater than or equal to the recommended minimum dose\n *\n * Numerator: Number of people, at a specified date, maintained on methadone or buprenorphine receiving recommended minimum maintenance dose (WHO guidance recommends doses of ≥60 mg of methadone or ≥8 mg of buprenorphine*)\n * Numerator Calculation: COUNT of clients with (&quot;Medications prescribed&quot;='Methadone' AND &quot;Dose of medications prescribed&quot; GREATER THAN OR EQUAL TO 60mg) OR (&quot;Medications prescribed&quot;='Buprenorphine' AND &quot;Dose of medications prescribed&quot; GREATER THAN OR EQUAL TO 8mg) for a specified &quot;Reporting date&quot;\n * Numerator Exclusions: &quot;Client being inducted on OAMT&quot; OR &quot;Client on reducing doses of OAMT&quot;\n *\n * Denominator: Number of people receiving maintenance dose of methadone or buprenorphine at a specified date, excluding: a) individuals currently being inducted on OAMT and yet to reach the maintenance dose and b) individuals on reducing doses of OAMT.\n * Denominator Calculation: COUNT of clients with &quot;Medications prescribed&quot; IN 'Methadone', 'Buprenorphine' for a specified &quot;Reporting date&quot;\n * Denominator Exclusions: &quot;Client being inducted on OAMT&quot; OR &quot;Client on reducing doses of OAMT&quot;\n *\n * Disaggregations:\n * • Gender (female, male, other**) \n *  • Age (15–19, 20–24, 25–49, 50+ years) \n *  • Provider type (key population-led or community-led organization, public sector provider, other entities such as private for-profit and not-for-profit organizations, including faith-based, international, nongovernmental) \n *  • Setting: facility-based service (including hospitals, health clinics, general practice offices, etc.) or community-based service (including drop-in centres, community service delivery points, mobile clinics or vans, outreach teams, community support groups, etc.) \n *  •\u00a0Cities and other administrative regions of epidemiologic importance\n *\n * Disaggregation Elements: Gender | Age\n *\n * Numerator and Denominator Elements:\n * Dose of medications prescribed \n *  Medications prescribed \n *  Reporting date\n *\n * Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022\n * \n * Data Concepts:\n * HIV.A.DE17: Age | Calculated age (number of years) of the client based on date of birth\n * HIV.A.DE18: Gender* | Gender of the client*\n * HIV.A.DE19: Female | Client identifies as female\n * HIV.A.DE20: Male | Client identifies as male\n * HIV.A.DE21: Transgender male | Client identifies as transgender male\n * HIV.A.DE22: Transgender female | Client identifies as transgender female\n * HIV.A.DE23: Other | Additional category\n * HIV.C.DE75: Medications prescribed | Medications the client was prescribed\n * HIV.C.DE76: PrEP for HIV prevention | Client was prescribed pre-exposure prophylaxis (PrEP) for HIV prevention\n * HIV.C.DE77: PEP for HIV prevention | Client was prescribed post-exposure prophylaxis (PEP) for HIV prevention\n * HIV.C.DE78: Other | Client was prescribed other medications\n * HIV.D.DE457: Medications prescribed | Name or regimen code of all other medications prescribed during the visit\n * HIV.D.DE459: Dose of medications prescribed | Number of doses (quantity taken at a single point in time) of drugs prescribed/dispensed\n * HIV.Config.DE22: Reporting date | Reporting date, for surveys performed on a specific date\n *\n * Additional Context\n * - what it measures: Measures the proportion of OAMT recipients receiving the recommended minimum maintenance dose.\n * - rationale: Evidence demonstrates that maximum benefit from OAMT is gained when individuals receive at least the recommended minimum maintenance dose.\n * - method: Individual-level data obtained from programme records\n * \n * Suggested Scoring Method: proportion | http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm\n */\n\nlibrary HIVIND14Logic\n\n// Included Libraries\nusing FHIR version '4.0.1'\n\ninclude HIVCommon version '0.0.1' called HIC\ninclude FHIRHelpers version '4.0.1'\ninclude WHOCommon called WCom\n\n// Indicator Definition\nparameter &quot;Measurement Period&quot; Interval&lt;Date&gt; default Interval[@2023-01-01, @2023-01-30]\n\ncontext Patient\n/* Populations */\n\n/*\n *Initial Population\n */\n\ndefine &quot;Initial Population&quot;:\n  true\n\n/**\n * Numerator\n * \n * Definition: Number of people, at a specified date, maintained on methadone or buprenorphine receiving recommended minimum maintenance dose (WHO guidance recommends doses of ≥60 mg of methadone or ≥8 mg of buprenorphine*)\n * Calculation: COUNT of clients with (&quot;Medications prescribed&quot;='Methadone' AND &quot;Dose of medications prescribed&quot; GREATER THAN OR EQUAL TO 60mg) OR (&quot;Medications prescribed&quot;='Buprenorphine' AND &quot;Dose of medications prescribed&quot; GREATER THAN OR EQUAL TO 8mg) for a specified &quot;Reporting date&quot;\n */\n\ndefine &quot;Numerator&quot;:\n  true\n\n/**\n * Numerator Exclusions\n *\n * Calculation: &quot;Client being inducted on OAMT&quot; OR &quot;Client on reducing doses of OAMT&quot;\n */\n    \ndefine &quot;Numerator Exclusions&quot;:\n  false\n\n/**\n * Denominator\n *\n * Definition: Number of people receiving maintenance dose of methadone or buprenorphine at a specified date, excluding: a) individuals currently being inducted on OAMT and yet to reach the maintenance dose and b) individuals on reducing doses of OAMT.\n * Calculation: COUNT of clients with &quot;Medications prescribed&quot; IN 'Methadone', 'Buprenorphine' for a specified &quot;Reporting date&quot;\n */\n\ndefine &quot;Denominator&quot;:\n  true\n    \n/**\n* Denominator Exclusions\n*\n* Calculation: &quot;Client being inducted on OAMT&quot; OR &quot;Client on reducing doses of OAMT&quot;\n*/\n\ndefine &quot;Denominator Exclusions&quot;:\n  false\n\n/* end Populations */\n\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+xml</th></tr>\n              <tr><td><pre><code>Encoded data (16360 characters)</code></pre></td></tr>\n            </table>\n          </td>\n        </tr>\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 (22412 characters)</code></pre></td></tr>\n            </table>\n          </td>\n        </tr>\n        \n        \n    </table>\n</div>\n</div>"
  },
  "extension" : [
    {
      "url" : "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability",
      "valueCode" : "computable"
    }
  ],
  "url" : "http://smart.who.int/hiv/Library/HIVIND14Logic",
  "version" : "0.3.0",
  "name" : "HIVIND14Logic",
  "title" : "HIV.IND.14 Logic",
  "status" : "draft",
  "experimental" : true,
  "type" : {
    "coding" : [
      {
        "system" : "http://terminology.hl7.org/CodeSystem/library-type",
        "code" : "logic-library"
      }
    ]
  },
  "date" : "2024-12-06T22:28:12+00:00",
  "publisher" : "WHO",
  "contact" : [
    {
      "name" : "WHO",
      "telecom" : [
        {
          "system" : "url",
          "value" : "http://who.int"
        }
      ]
    }
  ],
  "description" : "% of OAMT recipients receiving a maintenance dose greater than or equal to the recommended minimum dose",
  "relatedArtifact" : [
    {
      "type" : "depends-on",
      "display" : "Library HIC",
      "resource" : "http://smart.who.int/hiv/Library/HIVCommon|0.0.1"
    },
    {
      "type" : "depends-on",
      "display" : "Library WCom",
      "resource" : "http://smart.who.int/hiv/Library/WHOCommon"
    }
  ],
  "parameter" : [
    {
      "name" : "Measurement Period",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "type" : "Period"
    },
    {
      "name" : "Patient",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "Patient"
    },
    {
      "name" : "Initial Population",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "boolean"
    },
    {
      "name" : "Numerator",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "boolean"
    },
    {
      "name" : "Numerator Exclusions",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "boolean"
    },
    {
      "name" : "Denominator",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "boolean"
    },
    {
      "name" : "Denominator Exclusions",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "boolean"
    }
  ],
  "content" : [
    {
      "contentType" : "text/cql",
      "data" : "LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuMTQgTG9naWMKICogUmVmIE5vOiBQUlYuMTQKICogU2hvcnQgTmFtZTogT0FNVCBtaW5pbXVtIGRvc2UKICoKICogRGVmaW5pdGlvbjogJSBvZiBPQU1UIHJlY2lwaWVudHMgcmVjZWl2aW5nIGEgbWFpbnRlbmFuY2UgZG9zZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHJlY29tbWVuZGVkIG1pbmltdW0gZG9zZQogKgogKiBOdW1lcmF0b3I6IE51bWJlciBvZiBwZW9wbGUsIGF0IGEgc3BlY2lmaWVkIGRhdGUsIG1haW50YWluZWQgb24gbWV0aGFkb25lIG9yIGJ1cHJlbm9ycGhpbmUgcmVjZWl2aW5nIHJlY29tbWVuZGVkIG1pbmltdW0gbWFpbnRlbmFuY2UgZG9zZSAoV0hPIGd1aWRhbmNlIHJlY29tbWVuZHMgZG9zZXMgb2Yg4omlNjAgbWcgb2YgbWV0aGFkb25lIG9yIOKJpTggbWcgb2YgYnVwcmVub3JwaGluZSopCiAqIE51bWVyYXRvciBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICgiTWVkaWNhdGlvbnMgcHJlc2NyaWJlZCI9J01ldGhhZG9uZScgQU5EICJEb3NlIG9mIG1lZGljYXRpb25zIHByZXNjcmliZWQiIEdSRUFURVIgVEhBTiBPUiBFUVVBTCBUTyA2MG1nKSBPUiAoIk1lZGljYXRpb25zIHByZXNjcmliZWQiPSdCdXByZW5vcnBoaW5lJyBBTkQgIkRvc2Ugb2YgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCIgR1JFQVRFUiBUSEFOIE9SIEVRVUFMIFRPIDhtZykgZm9yIGEgc3BlY2lmaWVkICJSZXBvcnRpbmcgZGF0ZSIKICogTnVtZXJhdG9yIEV4Y2x1c2lvbnM6ICJDbGllbnQgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCIgT1IgIkNsaWVudCBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1UIgogKgogKiBEZW5vbWluYXRvcjogTnVtYmVyIG9mIHBlb3BsZSByZWNlaXZpbmcgbWFpbnRlbmFuY2UgZG9zZSBvZiBtZXRoYWRvbmUgb3IgYnVwcmVub3JwaGluZSBhdCBhIHNwZWNpZmllZCBkYXRlLCBleGNsdWRpbmc6IGEpIGluZGl2aWR1YWxzIGN1cnJlbnRseSBiZWluZyBpbmR1Y3RlZCBvbiBPQU1UIGFuZCB5ZXQgdG8gcmVhY2ggdGhlIG1haW50ZW5hbmNlIGRvc2UgYW5kIGIpIGluZGl2aWR1YWxzIG9uIHJlZHVjaW5nIGRvc2VzIG9mIE9BTVQuCiAqIERlbm9taW5hdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggIk1lZGljYXRpb25zIHByZXNjcmliZWQiIElOICdNZXRoYWRvbmUnLCAnQnVwcmVub3JwaGluZScgZm9yIGEgc3BlY2lmaWVkICJSZXBvcnRpbmcgZGF0ZSIKICogRGVub21pbmF0b3IgRXhjbHVzaW9uczogIkNsaWVudCBiZWluZyBpbmR1Y3RlZCBvbiBPQU1UIiBPUiAiQ2xpZW50IG9uIHJlZHVjaW5nIGRvc2VzIG9mIE9BTVQiCiAqCiAqIERpc2FnZ3JlZ2F0aW9uczoKICog4oCiIEdlbmRlciAoZmVtYWxlLCBtYWxlLCBvdGhlcioqKSAKICogIOKAoiBBZ2UgKDE14oCTMTksIDIw4oCTMjQsIDI14oCTNDksIDUwKyB5ZWFycykgCiAqICDigKIgUHJvdmlkZXIgdHlwZSAoa2V5IHBvcHVsYXRpb24tbGVkIG9yIGNvbW11bml0eS1sZWQgb3JnYW5pemF0aW9uLCBwdWJsaWMgc2VjdG9yIHByb3ZpZGVyLCBvdGhlciBlbnRpdGllcyBzdWNoIGFzIHByaXZhdGUgZm9yLXByb2ZpdCBhbmQgbm90LWZvci1wcm9maXQgb3JnYW5pemF0aW9ucywgaW5jbHVkaW5nIGZhaXRoLWJhc2VkLCBpbnRlcm5hdGlvbmFsLCBub25nb3Zlcm5tZW50YWwpIAogKiAg4oCiIFNldHRpbmc6IGZhY2lsaXR5LWJhc2VkIHNlcnZpY2UgKGluY2x1ZGluZyBob3NwaXRhbHMsIGhlYWx0aCBjbGluaWNzLCBnZW5lcmFsIHByYWN0aWNlIG9mZmljZXMsIGV0Yy4pIG9yIGNvbW11bml0eS1iYXNlZCBzZXJ2aWNlIChpbmNsdWRpbmcgZHJvcC1pbiBjZW50cmVzLCBjb21tdW5pdHkgc2VydmljZSBkZWxpdmVyeSBwb2ludHMsIG1vYmlsZSBjbGluaWNzIG9yIHZhbnMsIG91dHJlYWNoIHRlYW1zLCBjb21tdW5pdHkgc3VwcG9ydCBncm91cHMsIGV0Yy4pIAogKiAg4oCiwqBDaXRpZXMgYW5kIG90aGVyIGFkbWluaXN0cmF0aXZlIHJlZ2lvbnMgb2YgZXBpZGVtaW9sb2dpYyBpbXBvcnRhbmNlCiAqCiAqIERpc2FnZ3JlZ2F0aW9uIEVsZW1lbnRzOiBHZW5kZXIgfCBBZ2UKICoKICogTnVtZXJhdG9yIGFuZCBEZW5vbWluYXRvciBFbGVtZW50czoKICogRG9zZSBvZiBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkIAogKiAgTWVkaWNhdGlvbnMgcHJlc2NyaWJlZCAKICogIFJlcG9ydGluZyBkYXRlCiAqCiAqIFJlZmVyZW5jZTogQ29uc29saWRhdGVkIGd1aWRlbGluZXMgb24gcGVyc29uLWNlbnRyZWQgSElWIHN0cmF0ZWdpYyBpbmZvcm1hdGlvbjogc3RyZW5ndGhlbmluZyByb3V0aW5lIGRhdGEgZm9yIGltcGFjdC4gR2VuZXZhOiBXb3JsZCBIZWFsdGggT3JnYW5pemF0aW9uOyAyMDIyCiAqIAogKiBEYXRhIENvbmNlcHRzOgogKiBISVYuQS5ERTE3OiBBZ2UgfCBDYWxjdWxhdGVkIGFnZSAobnVtYmVyIG9mIHllYXJzKSBvZiB0aGUgY2xpZW50IGJhc2VkIG9uIGRhdGUgb2YgYmlydGgKICogSElWLkEuREUxODogR2VuZGVyKiB8IEdlbmRlciBvZiB0aGUgY2xpZW50KgogKiBISVYuQS5ERTE5OiBGZW1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyBmZW1hbGUKICogSElWLkEuREUyMDogTWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIG1hbGUKICogSElWLkEuREUyMTogVHJhbnNnZW5kZXIgbWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIHRyYW5zZ2VuZGVyIG1hbGUKICogSElWLkEuREUyMjogVHJhbnNnZW5kZXIgZmVtYWxlIHwgQ2xpZW50IGlkZW50aWZpZXMgYXMgdHJhbnNnZW5kZXIgZmVtYWxlCiAqIEhJVi5BLkRFMjM6IE90aGVyIHwgQWRkaXRpb25hbCBjYXRlZ29yeQogKiBISVYuQy5ERTc1OiBNZWRpY2F0aW9ucyBwcmVzY3JpYmVkIHwgTWVkaWNhdGlvbnMgdGhlIGNsaWVudCB3YXMgcHJlc2NyaWJlZAogKiBISVYuQy5ERTc2OiBQckVQIGZvciBISVYgcHJldmVudGlvbiB8IENsaWVudCB3YXMgcHJlc2NyaWJlZCBwcmUtZXhwb3N1cmUgcHJvcGh5bGF4aXMgKFByRVApIGZvciBISVYgcHJldmVudGlvbgogKiBISVYuQy5ERTc3OiBQRVAgZm9yIEhJViBwcmV2ZW50aW9uIHwgQ2xpZW50IHdhcyBwcmVzY3JpYmVkIHBvc3QtZXhwb3N1cmUgcHJvcGh5bGF4aXMgKFBFUCkgZm9yIEhJViBwcmV2ZW50aW9uCiAqIEhJVi5DLkRFNzg6IE90aGVyIHwgQ2xpZW50IHdhcyBwcmVzY3JpYmVkIG90aGVyIG1lZGljYXRpb25zCiAqIEhJVi5ELkRFNDU3OiBNZWRpY2F0aW9ucyBwcmVzY3JpYmVkIHwgTmFtZSBvciByZWdpbWVuIGNvZGUgb2YgYWxsIG90aGVyIG1lZGljYXRpb25zIHByZXNjcmliZWQgZHVyaW5nIHRoZSB2aXNpdAogKiBISVYuRC5ERTQ1OTogRG9zZSBvZiBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkIHwgTnVtYmVyIG9mIGRvc2VzIChxdWFudGl0eSB0YWtlbiBhdCBhIHNpbmdsZSBwb2ludCBpbiB0aW1lKSBvZiBkcnVncyBwcmVzY3JpYmVkL2Rpc3BlbnNlZAogKiBISVYuQ29uZmlnLkRFMjI6IFJlcG9ydGluZyBkYXRlIHwgUmVwb3J0aW5nIGRhdGUsIGZvciBzdXJ2ZXlzIHBlcmZvcm1lZCBvbiBhIHNwZWNpZmljIGRhdGUKICoKICogQWRkaXRpb25hbCBDb250ZXh0CiAqIC0gd2hhdCBpdCBtZWFzdXJlczogTWVhc3VyZXMgdGhlIHByb3BvcnRpb24gb2YgT0FNVCByZWNpcGllbnRzIHJlY2VpdmluZyB0aGUgcmVjb21tZW5kZWQgbWluaW11bSBtYWludGVuYW5jZSBkb3NlLgogKiAtIHJhdGlvbmFsZTogRXZpZGVuY2UgZGVtb25zdHJhdGVzIHRoYXQgbWF4aW11bSBiZW5lZml0IGZyb20gT0FNVCBpcyBnYWluZWQgd2hlbiBpbmRpdmlkdWFscyByZWNlaXZlIGF0IGxlYXN0IHRoZSByZWNvbW1lbmRlZCBtaW5pbXVtIG1haW50ZW5hbmNlIGRvc2UuCiAqIC0gbWV0aG9kOiBJbmRpdmlkdWFsLWxldmVsIGRhdGEgb2J0YWluZWQgZnJvbSBwcm9ncmFtbWUgcmVjb3JkcwogKiAKICogU3VnZ2VzdGVkIFNjb3JpbmcgTWV0aG9kOiBwcm9wb3J0aW9uIHwgaHR0cDovL2hsNy5vcmcvZmhpci91cy9jcWZtZWFzdXJlcy9TdHJ1Y3R1cmVEZWZpbml0aW9uL3Byb3BvcnRpb24tbWVhc3VyZS1jcWZtCiAqLwoKbGlicmFyeSBISVZJTkQxNExvZ2ljCgovLyBJbmNsdWRlZCBMaWJyYXJpZXMKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgSElWQ29tbW9uIHZlcnNpb24gJzAuMC4xJyBjYWxsZWQgSElDCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCmluY2x1ZGUgV0hPQ29tbW9uIGNhbGxlZCBXQ29tCgovLyBJbmRpY2F0b3IgRGVmaW5pdGlvbgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZT4gZGVmYXVsdCBJbnRlcnZhbFtAMjAyMy0wMS0wMSwgQDIwMjMtMDEtMzBdCgpjb250ZXh0IFBhdGllbnQKLyogUG9wdWxhdGlvbnMgKi8KCi8qCiAqSW5pdGlhbCBQb3B1bGF0aW9uCiAqLwoKZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24iOgogIHRydWUKCi8qKgogKiBOdW1lcmF0b3IKICogCiAqIERlZmluaXRpb246IE51bWJlciBvZiBwZW9wbGUsIGF0IGEgc3BlY2lmaWVkIGRhdGUsIG1haW50YWluZWQgb24gbWV0aGFkb25lIG9yIGJ1cHJlbm9ycGhpbmUgcmVjZWl2aW5nIHJlY29tbWVuZGVkIG1pbmltdW0gbWFpbnRlbmFuY2UgZG9zZSAoV0hPIGd1aWRhbmNlIHJlY29tbWVuZHMgZG9zZXMgb2Yg4omlNjAgbWcgb2YgbWV0aGFkb25lIG9yIOKJpTggbWcgb2YgYnVwcmVub3JwaGluZSopCiAqIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggKCJNZWRpY2F0aW9ucyBwcmVzY3JpYmVkIj0nTWV0aGFkb25lJyBBTkQgIkRvc2Ugb2YgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCIgR1JFQVRFUiBUSEFOIE9SIEVRVUFMIFRPIDYwbWcpIE9SICgiTWVkaWNhdGlvbnMgcHJlc2NyaWJlZCI9J0J1cHJlbm9ycGhpbmUnIEFORCAiRG9zZSBvZiBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkIiBHUkVBVEVSIFRIQU4gT1IgRVFVQUwgVE8gOG1nKSBmb3IgYSBzcGVjaWZpZWQgIlJlcG9ydGluZyBkYXRlIgogKi8KCmRlZmluZSAiTnVtZXJhdG9yIjoKICB0cnVlCgovKioKICogTnVtZXJhdG9yIEV4Y2x1c2lvbnMKICoKICogQ2FsY3VsYXRpb246ICJDbGllbnQgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCIgT1IgIkNsaWVudCBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1UIgogKi8KICAgIApkZWZpbmUgIk51bWVyYXRvciBFeGNsdXNpb25zIjoKICBmYWxzZQoKLyoqCiAqIERlbm9taW5hdG9yCiAqCiAqIERlZmluaXRpb246IE51bWJlciBvZiBwZW9wbGUgcmVjZWl2aW5nIG1haW50ZW5hbmNlIGRvc2Ugb2YgbWV0aGFkb25lIG9yIGJ1cHJlbm9ycGhpbmUgYXQgYSBzcGVjaWZpZWQgZGF0ZSwgZXhjbHVkaW5nOiBhKSBpbmRpdmlkdWFscyBjdXJyZW50bHkgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCBhbmQgeWV0IHRvIHJlYWNoIHRoZSBtYWludGVuYW5jZSBkb3NlIGFuZCBiKSBpbmRpdmlkdWFscyBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1ULgogKiBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICJNZWRpY2F0aW9ucyBwcmVzY3JpYmVkIiBJTiAnTWV0aGFkb25lJywgJ0J1cHJlbm9ycGhpbmUnIGZvciBhIHNwZWNpZmllZCAiUmVwb3J0aW5nIGRhdGUiCiAqLwoKZGVmaW5lICJEZW5vbWluYXRvciI6CiAgdHJ1ZQogICAgCi8qKgoqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnMKKgoqIENhbGN1bGF0aW9uOiAiQ2xpZW50IGJlaW5nIGluZHVjdGVkIG9uIE9BTVQiIE9SICJDbGllbnQgb24gcmVkdWNpbmcgZG9zZXMgb2YgT0FNVCIKKi8KCmRlZmluZSAiRGVub21pbmF0b3IgRXhjbHVzaW9ucyI6CiAgZmFsc2UKCi8qIGVuZCBQb3B1bGF0aW9ucyAqLwoK"
    },
    {
      "contentType" : "application/elm+xml",
      "data" : "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iT3ZlcmxvYWRzIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUluZm8iLz4KICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgIDxhOnMgcj0iMjAiPgogICAgICAgICA8YTpzPi8qKgogKiBMaWJyYXJ5OiBISVYuSU5ELjE0IExvZ2ljCiAqIFJlZiBObzogUFJWLjE0CiAqIFNob3J0IE5hbWU6IE9BTVQgbWluaW11bSBkb3NlCiAqCiAqIERlZmluaXRpb246ICUgb2YgT0FNVCByZWNpcGllbnRzIHJlY2VpdmluZyBhIG1haW50ZW5hbmNlIGRvc2UgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSByZWNvbW1lbmRlZCBtaW5pbXVtIGRvc2UKICoKICogTnVtZXJhdG9yOiBOdW1iZXIgb2YgcGVvcGxlLCBhdCBhIHNwZWNpZmllZCBkYXRlLCBtYWludGFpbmVkIG9uIG1ldGhhZG9uZSBvciBidXByZW5vcnBoaW5lIHJlY2VpdmluZyByZWNvbW1lbmRlZCBtaW5pbXVtIG1haW50ZW5hbmNlIGRvc2UgKFdITyBndWlkYW5jZSByZWNvbW1lbmRzIGRvc2VzIG9mIOKJpTYwIG1nIG9mIG1ldGhhZG9uZSBvciDiiaU4IG1nIG9mIGJ1cHJlbm9ycGhpbmUqKQogKiBOdW1lcmF0b3IgQ2FsY3VsYXRpb246IENPVU5UIG9mIGNsaWVudHMgd2l0aCAoJnF1b3Q7TWVkaWNhdGlvbnMgcHJlc2NyaWJlZCZxdW90Oz0nTWV0aGFkb25lJyBBTkQgJnF1b3Q7RG9zZSBvZiBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkJnF1b3Q7IEdSRUFURVIgVEhBTiBPUiBFUVVBTCBUTyA2MG1nKSBPUiAoJnF1b3Q7TWVkaWNhdGlvbnMgcHJlc2NyaWJlZCZxdW90Oz0nQnVwcmVub3JwaGluZScgQU5EICZxdW90O0Rvc2Ugb2YgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCZxdW90OyBHUkVBVEVSIFRIQU4gT1IgRVFVQUwgVE8gOG1nKSBmb3IgYSBzcGVjaWZpZWQgJnF1b3Q7UmVwb3J0aW5nIGRhdGUmcXVvdDsKICogTnVtZXJhdG9yIEV4Y2x1c2lvbnM6ICZxdW90O0NsaWVudCBiZWluZyBpbmR1Y3RlZCBvbiBPQU1UJnF1b3Q7IE9SICZxdW90O0NsaWVudCBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1UJnF1b3Q7CiAqCiAqIERlbm9taW5hdG9yOiBOdW1iZXIgb2YgcGVvcGxlIHJlY2VpdmluZyBtYWludGVuYW5jZSBkb3NlIG9mIG1ldGhhZG9uZSBvciBidXByZW5vcnBoaW5lIGF0IGEgc3BlY2lmaWVkIGRhdGUsIGV4Y2x1ZGluZzogYSkgaW5kaXZpZHVhbHMgY3VycmVudGx5IGJlaW5nIGluZHVjdGVkIG9uIE9BTVQgYW5kIHlldCB0byByZWFjaCB0aGUgbWFpbnRlbmFuY2UgZG9zZSBhbmQgYikgaW5kaXZpZHVhbHMgb24gcmVkdWNpbmcgZG9zZXMgb2YgT0FNVC4KICogRGVub21pbmF0b3IgQ2FsY3VsYXRpb246IENPVU5UIG9mIGNsaWVudHMgd2l0aCAmcXVvdDtNZWRpY2F0aW9ucyBwcmVzY3JpYmVkJnF1b3Q7IElOICdNZXRoYWRvbmUnLCAnQnVwcmVub3JwaGluZScgZm9yIGEgc3BlY2lmaWVkICZxdW90O1JlcG9ydGluZyBkYXRlJnF1b3Q7CiAqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnM6ICZxdW90O0NsaWVudCBiZWluZyBpbmR1Y3RlZCBvbiBPQU1UJnF1b3Q7IE9SICZxdW90O0NsaWVudCBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1UJnF1b3Q7CiAqCiAqIERpc2FnZ3JlZ2F0aW9uczoKICog4oCiIEdlbmRlciAoZmVtYWxlLCBtYWxlLCBvdGhlcioqKSAKICogIOKAoiBBZ2UgKDE14oCTMTksIDIw4oCTMjQsIDI14oCTNDksIDUwKyB5ZWFycykgCiAqICDigKIgUHJvdmlkZXIgdHlwZSAoa2V5IHBvcHVsYXRpb24tbGVkIG9yIGNvbW11bml0eS1sZWQgb3JnYW5pemF0aW9uLCBwdWJsaWMgc2VjdG9yIHByb3ZpZGVyLCBvdGhlciBlbnRpdGllcyBzdWNoIGFzIHByaXZhdGUgZm9yLXByb2ZpdCBhbmQgbm90LWZvci1wcm9maXQgb3JnYW5pemF0aW9ucywgaW5jbHVkaW5nIGZhaXRoLWJhc2VkLCBpbnRlcm5hdGlvbmFsLCBub25nb3Zlcm5tZW50YWwpIAogKiAg4oCiIFNldHRpbmc6IGZhY2lsaXR5LWJhc2VkIHNlcnZpY2UgKGluY2x1ZGluZyBob3NwaXRhbHMsIGhlYWx0aCBjbGluaWNzLCBnZW5lcmFsIHByYWN0aWNlIG9mZmljZXMsIGV0Yy4pIG9yIGNvbW11bml0eS1iYXNlZCBzZXJ2aWNlIChpbmNsdWRpbmcgZHJvcC1pbiBjZW50cmVzLCBjb21tdW5pdHkgc2VydmljZSBkZWxpdmVyeSBwb2ludHMsIG1vYmlsZSBjbGluaWNzIG9yIHZhbnMsIG91dHJlYWNoIHRlYW1zLCBjb21tdW5pdHkgc3VwcG9ydCBncm91cHMsIGV0Yy4pIAogKiAg4oCiwqBDaXRpZXMgYW5kIG90aGVyIGFkbWluaXN0cmF0aXZlIHJlZ2lvbnMgb2YgZXBpZGVtaW9sb2dpYyBpbXBvcnRhbmNlCiAqCiAqIERpc2FnZ3JlZ2F0aW9uIEVsZW1lbnRzOiBHZW5kZXIgfCBBZ2UKICoKICogTnVtZXJhdG9yIGFuZCBEZW5vbWluYXRvciBFbGVtZW50czoKICogRG9zZSBvZiBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkIAogKiAgTWVkaWNhdGlvbnMgcHJlc2NyaWJlZCAKICogIFJlcG9ydGluZyBkYXRlCiAqCiAqIFJlZmVyZW5jZTogQ29uc29saWRhdGVkIGd1aWRlbGluZXMgb24gcGVyc29uLWNlbnRyZWQgSElWIHN0cmF0ZWdpYyBpbmZvcm1hdGlvbjogc3RyZW5ndGhlbmluZyByb3V0aW5lIGRhdGEgZm9yIGltcGFjdC4gR2VuZXZhOiBXb3JsZCBIZWFsdGggT3JnYW5pemF0aW9uOyAyMDIyCiAqIAogKiBEYXRhIENvbmNlcHRzOgogKiBISVYuQS5ERTE3OiBBZ2UgfCBDYWxjdWxhdGVkIGFnZSAobnVtYmVyIG9mIHllYXJzKSBvZiB0aGUgY2xpZW50IGJhc2VkIG9uIGRhdGUgb2YgYmlydGgKICogSElWLkEuREUxODogR2VuZGVyKiB8IEdlbmRlciBvZiB0aGUgY2xpZW50KgogKiBISVYuQS5ERTE5OiBGZW1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyBmZW1hbGUKICogSElWLkEuREUyMDogTWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIG1hbGUKICogSElWLkEuREUyMTogVHJhbnNnZW5kZXIgbWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIHRyYW5zZ2VuZGVyIG1hbGUKICogSElWLkEuREUyMjogVHJhbnNnZW5kZXIgZmVtYWxlIHwgQ2xpZW50IGlkZW50aWZpZXMgYXMgdHJhbnNnZW5kZXIgZmVtYWxlCiAqIEhJVi5BLkRFMjM6IE90aGVyIHwgQWRkaXRpb25hbCBjYXRlZ29yeQogKiBISVYuQy5ERTc1OiBNZWRpY2F0aW9ucyBwcmVzY3JpYmVkIHwgTWVkaWNhdGlvbnMgdGhlIGNsaWVudCB3YXMgcHJlc2NyaWJlZAogKiBISVYuQy5ERTc2OiBQckVQIGZvciBISVYgcHJldmVudGlvbiB8IENsaWVudCB3YXMgcHJlc2NyaWJlZCBwcmUtZXhwb3N1cmUgcHJvcGh5bGF4aXMgKFByRVApIGZvciBISVYgcHJldmVudGlvbgogKiBISVYuQy5ERTc3OiBQRVAgZm9yIEhJViBwcmV2ZW50aW9uIHwgQ2xpZW50IHdhcyBwcmVzY3JpYmVkIHBvc3QtZXhwb3N1cmUgcHJvcGh5bGF4aXMgKFBFUCkgZm9yIEhJViBwcmV2ZW50aW9uCiAqIEhJVi5DLkRFNzg6IE90aGVyIHwgQ2xpZW50IHdhcyBwcmVzY3JpYmVkIG90aGVyIG1lZGljYXRpb25zCiAqIEhJVi5ELkRFNDU3OiBNZWRpY2F0aW9ucyBwcmVzY3JpYmVkIHwgTmFtZSBvciByZWdpbWVuIGNvZGUgb2YgYWxsIG90aGVyIG1lZGljYXRpb25zIHByZXNjcmliZWQgZHVyaW5nIHRoZSB2aXNpdAogKiBISVYuRC5ERTQ1OTogRG9zZSBvZiBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkIHwgTnVtYmVyIG9mIGRvc2VzIChxdWFudGl0eSB0YWtlbiBhdCBhIHNpbmdsZSBwb2ludCBpbiB0aW1lKSBvZiBkcnVncyBwcmVzY3JpYmVkL2Rpc3BlbnNlZAogKiBISVYuQ29uZmlnLkRFMjI6IFJlcG9ydGluZyBkYXRlIHwgUmVwb3J0aW5nIGRhdGUsIGZvciBzdXJ2ZXlzIHBlcmZvcm1lZCBvbiBhIHNwZWNpZmljIGRhdGUKICoKICogQWRkaXRpb25hbCBDb250ZXh0CiAqIC0gd2hhdCBpdCBtZWFzdXJlczogTWVhc3VyZXMgdGhlIHByb3BvcnRpb24gb2YgT0FNVCByZWNpcGllbnRzIHJlY2VpdmluZyB0aGUgcmVjb21tZW5kZWQgbWluaW11bSBtYWludGVuYW5jZSBkb3NlLgogKiAtIHJhdGlvbmFsZTogRXZpZGVuY2UgZGVtb25zdHJhdGVzIHRoYXQgbWF4aW11bSBiZW5lZml0IGZyb20gT0FNVCBpcyBnYWluZWQgd2hlbiBpbmRpdmlkdWFscyByZWNlaXZlIGF0IGxlYXN0IHRoZSByZWNvbW1lbmRlZCBtaW5pbXVtIG1haW50ZW5hbmNlIGRvc2UuCiAqIC0gbWV0aG9kOiBJbmRpdmlkdWFsLWxldmVsIGRhdGEgb2J0YWluZWQgZnJvbSBwcm9ncmFtbWUgcmVjb3JkcwogKiAKICogU3VnZ2VzdGVkIFNjb3JpbmcgTWV0aG9kOiBwcm9wb3J0aW9uIHwgaHR0cDovL2hsNy5vcmcvZmhpci91cy9jcWZtZWFzdXJlcy9TdHJ1Y3R1cmVEZWZpbml0aW9uL3Byb3BvcnRpb24tbWVhc3VyZS1jcWZtCiAqLwoKbGlicmFyeSBISVZJTkQxNExvZ2ljPC9hOnM+CiAgICAgIDwvYTpzPgogICA8L2Fubm90YXRpb24+CiAgIDxpZGVudGlmaWVyIGlkPSJISVZJTkQxNExvZ2ljIiBzeXN0ZW09Imh0dHA6Ly9zbWFydC53aG8uaW50L2hpdiIvPgogICA8c2NoZW1hSWRlbnRpZmllciBpZD0idXJuOmhsNy1vcmc6ZWxtIiB2ZXJzaW9uPSJyMSIvPgogICA8dXNpbmdzPgogICAgICA8ZGVmIGxvY2FsSWRlbnRpZmllcj0iU3lzdGVtIiB1cmk9InVybjpobDctb3JnOmVsbS10eXBlczpyMSIvPgogICAgICA8ZGVmIGxvY2FsSWQ9IjEiIGxvY2F0b3I9IjU5OjEtNTk6MjYiIGxvY2FsSWRlbnRpZmllcj0iRkhJUiIgdXJpPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB2ZXJzaW9uPSI0LjAuMSI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjEiPgogICAgICAgICAgICAgICA8YTpzPi8vIEluY2x1ZGVkIExpYnJhcmllcwp1c2luZyA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5GSElSPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICc0LjAuMSc8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgIDwvdXNpbmdzPgogICA8aW5jbHVkZXM+CiAgICAgIDxkZWYgbG9jYWxJZD0iMiIgbG9jYXRvcj0iNjE6MS02MTo0NCIgbG9jYWxJZGVudGlmaWVyPSJISUMiIHBhdGg9Imh0dHA6Ly9zbWFydC53aG8uaW50L2hpdi9ISVZDb21tb24iIHZlcnNpb249IjAuMC4xIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMiI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5ISVZDb21tb248L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzAuMC4xJyBjYWxsZWQgSElDPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjMiIGxvY2F0b3I9IjYyOjEtNjI6MzUiIGxvY2FsSWRlbnRpZmllcj0iRkhJUkhlbHBlcnMiIHBhdGg9Imh0dHA6Ly9obDcub3JnL2ZoaXIvRkhJUkhlbHBlcnMiIHZlcnNpb249IjQuMC4xIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMyI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5GSElSSGVscGVyczwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gdmVyc2lvbiAnNC4wLjEnPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjQiIGxvY2F0b3I9IjYzOjEtNjM6MjkiIGxvY2FsSWRlbnRpZmllcj0iV0NvbSIgcGF0aD0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2L1dIT0NvbW1vbiI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjQiPgogICAgICAgICAgICAgICA8YTpzPmluY2x1ZGUgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+V0hPQ29tbW9uPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiBjYWxsZWQgV0NvbTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgPC9pbmNsdWRlcz4KICAgPHBhcmFtZXRlcnM+CiAgICAgIDxkZWYgbG9jYWxJZD0iMTAiIGxvY2F0b3I9IjY2OjEtNjY6ODgiIG5hbWU9Ik1lYXN1cmVtZW50IFBlcmlvZCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjEwIj4KICAgICAgICAgICAgICAgPGE6cz4vLyBJbmRpY2F0b3IgRGVmaW5pdGlvbgpwYXJhbWV0ZXIgJnF1b3Q7TWVhc3VyZW1lbnQgUGVyaW9kJnF1b3Q7IDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjkiPgogICAgICAgICAgICAgICAgICA8YTpzPkludGVydmFsJmx0OzwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjgiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPkRhdGU8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+PjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gZGVmYXVsdCA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSI3Ij4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI1Ij5JbnRlcnZhbFtAMjAyMy0wMS0wMSwgQDIwMjMtMDEtMzBdPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZGVmYXVsdCBsb2NhbElkPSI3IiBsb2NhdG9yPSI2Njo1NS02Njo4OCIgbG93Q2xvc2VkPSJ0cnVlIiBoaWdoQ2xvc2VkPSJ0cnVlIiB4c2k6dHlwZT0iSW50ZXJ2YWwiPgogICAgICAgICAgICA8bG93IGxvY2FsSWQ9IjUiIGxvY2F0b3I9IjY2OjY0LTY2Ojc0IiB4c2k6dHlwZT0iRGF0ZSI+CiAgICAgICAgICAgICAgIDx5ZWFyIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMjAyMyIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPG1vbnRoIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPGRheSB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjEiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgIDwvbG93PgogICAgICAgICAgICA8aGlnaCBsb2NhbElkPSI2IiBsb2NhdG9yPSI2Njo3Ny02Njo4NyIgeHNpOnR5cGU9IkRhdGUiPgogICAgICAgICAgICAgICA8eWVhciB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjIwMjMiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxtb250aCB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjEiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxkYXkgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIzMCIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgPC9oaWdoPgogICAgICAgICA8L2RlZmF1bHQ+CiAgICAgICAgIDxwYXJhbWV0ZXJUeXBlU3BlY2lmaWVyIGxvY2FsSWQ9IjkiIGxvY2F0b3I9IjY2OjMyLTY2OjQ1IiB4c2k6dHlwZT0iSW50ZXJ2YWxUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgPHBvaW50VHlwZSBsb2NhbElkPSI4IiBsb2NhdG9yPSI2Njo0MS02Njo0NCIgbmFtZT0idDpEYXRlIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgIDwvcGFyYW1ldGVyVHlwZVNwZWNpZmllcj4KICAgICAgPC9kZWY+CiAgIDwvcGFyYW1ldGVycz4KICAgPGNvbnRleHRzPgogICAgICA8ZGVmIGxvY2F0b3I9IjY4OjEtNjg6MTUiIG5hbWU9IlBhdGllbnQiLz4KICAgPC9jb250ZXh0cz4KICAgPHN0YXRlbWVudHM+CiAgICAgIDxkZWYgbG9jYXRvcj0iNjg6MS02ODoxNSIgbmFtZT0iUGF0aWVudCIgY29udGV4dD0iUGF0aWVudCI+CiAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJTaW5nbGV0b25Gcm9tIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYXRvcj0iNjg6MS02ODoxNSIgZGF0YVR5cGU9ImZoaXI6UGF0aWVudCIgdGVtcGxhdGVJZD0iaHR0cDovL2hsNy5vcmcvZmhpci9TdHJ1Y3R1cmVEZWZpbml0aW9uL1BhdGllbnQiIHhzaTp0eXBlPSJSZXRyaWV2ZSIvPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjEyIiBsb2NhdG9yPSI3NToxLTc2OjYiIG5hbWU9IkluaXRpYWwgUG9wdWxhdGlvbiIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjEyIj4KICAgICAgICAgICAgICAgPGE6cyByPSIxMSI+LyogUG9wdWxhdGlvbnMgKi8KCi8qCiAqSW5pdGlhbCBQb3B1bGF0aW9uCiAqLwoKZGVmaW5lICZxdW90O0luaXRpYWwgUG9wdWxhdGlvbiZxdW90OzoKICB0cnVlPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjExIiBsb2NhdG9yPSI3NjozLTc2OjYiIHZhbHVlVHlwZT0idDpCb29sZWFuIiB2YWx1ZT0idHJ1ZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMTQiIGxvY2F0b3I9Ijg1OjEtODY6NiIgbmFtZT0iTnVtZXJhdG9yIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTQiPgogICAgICAgICAgICAgICA8YTpzIHI9IjEzIj4vKioKICogTnVtZXJhdG9yCiAqIAogKiBEZWZpbml0aW9uOiBOdW1iZXIgb2YgcGVvcGxlLCBhdCBhIHNwZWNpZmllZCBkYXRlLCBtYWludGFpbmVkIG9uIG1ldGhhZG9uZSBvciBidXByZW5vcnBoaW5lIHJlY2VpdmluZyByZWNvbW1lbmRlZCBtaW5pbXVtIG1haW50ZW5hbmNlIGRvc2UgKFdITyBndWlkYW5jZSByZWNvbW1lbmRzIGRvc2VzIG9mIOKJpTYwIG1nIG9mIG1ldGhhZG9uZSBvciDiiaU4IG1nIG9mIGJ1cHJlbm9ycGhpbmUqKQogKiBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICgmcXVvdDtNZWRpY2F0aW9ucyBwcmVzY3JpYmVkJnF1b3Q7PSdNZXRoYWRvbmUnIEFORCAmcXVvdDtEb3NlIG9mIG1lZGljYXRpb25zIHByZXNjcmliZWQmcXVvdDsgR1JFQVRFUiBUSEFOIE9SIEVRVUFMIFRPIDYwbWcpIE9SICgmcXVvdDtNZWRpY2F0aW9ucyBwcmVzY3JpYmVkJnF1b3Q7PSdCdXByZW5vcnBoaW5lJyBBTkQgJnF1b3Q7RG9zZSBvZiBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkJnF1b3Q7IEdSRUFURVIgVEhBTiBPUiBFUVVBTCBUTyA4bWcpIGZvciBhIHNwZWNpZmllZCAmcXVvdDtSZXBvcnRpbmcgZGF0ZSZxdW90OwogKi8KCmRlZmluZSAmcXVvdDtOdW1lcmF0b3ImcXVvdDs6CiAgdHJ1ZTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIxMyIgbG9jYXRvcj0iODY6My04Njo2IiB2YWx1ZVR5cGU9InQ6Qm9vbGVhbiIgdmFsdWU9InRydWUiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjE2IiBsb2NhdG9yPSI5NDoxLTk1OjciIG5hbWU9Ik51bWVyYXRvciBFeGNsdXNpb25zIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTYiPgogICAgICAgICAgICAgICA8YTpzIHI9IjE1Ij4vKioKICogTnVtZXJhdG9yIEV4Y2x1c2lvbnMKICoKICogQ2FsY3VsYXRpb246ICZxdW90O0NsaWVudCBiZWluZyBpbmR1Y3RlZCBvbiBPQU1UJnF1b3Q7IE9SICZxdW90O0NsaWVudCBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1UJnF1b3Q7CiAqLwogICAgCmRlZmluZSAmcXVvdDtOdW1lcmF0b3IgRXhjbHVzaW9ucyZxdW90OzoKICBmYWxzZTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIxNSIgbG9jYXRvcj0iOTU6My05NTo3IiB2YWx1ZVR5cGU9InQ6Qm9vbGVhbiIgdmFsdWU9ImZhbHNlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIxOCIgbG9jYXRvcj0iMTA0OjEtMTA1OjYiIG5hbWU9IkRlbm9taW5hdG9yIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTgiPgogICAgICAgICAgICAgICA8YTpzIHI9IjE3Ij4vKioKICogRGVub21pbmF0b3IKICoKICogRGVmaW5pdGlvbjogTnVtYmVyIG9mIHBlb3BsZSByZWNlaXZpbmcgbWFpbnRlbmFuY2UgZG9zZSBvZiBtZXRoYWRvbmUgb3IgYnVwcmVub3JwaGluZSBhdCBhIHNwZWNpZmllZCBkYXRlLCBleGNsdWRpbmc6IGEpIGluZGl2aWR1YWxzIGN1cnJlbnRseSBiZWluZyBpbmR1Y3RlZCBvbiBPQU1UIGFuZCB5ZXQgdG8gcmVhY2ggdGhlIG1haW50ZW5hbmNlIGRvc2UgYW5kIGIpIGluZGl2aWR1YWxzIG9uIHJlZHVjaW5nIGRvc2VzIG9mIE9BTVQuCiAqIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggJnF1b3Q7TWVkaWNhdGlvbnMgcHJlc2NyaWJlZCZxdW90OyBJTiAnTWV0aGFkb25lJywgJ0J1cHJlbm9ycGhpbmUnIGZvciBhIHNwZWNpZmllZCAmcXVvdDtSZXBvcnRpbmcgZGF0ZSZxdW90OwogKi8KCmRlZmluZSAmcXVvdDtEZW5vbWluYXRvciZxdW90OzoKICB0cnVlPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjE3IiBsb2NhdG9yPSIxMDU6My0xMDU6NiIgdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJ0cnVlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyMCIgbG9jYXRvcj0iMTEzOjEtMTE0OjciIG5hbWU9IkRlbm9taW5hdG9yIEV4Y2x1c2lvbnMiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyMCI+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMTkiPi8qKgoqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnMKKgoqIENhbGN1bGF0aW9uOiAmcXVvdDtDbGllbnQgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCZxdW90OyBPUiAmcXVvdDtDbGllbnQgb24gcmVkdWNpbmcgZG9zZXMgb2YgT0FNVCZxdW90OwoqLwoKZGVmaW5lICZxdW90O0Rlbm9taW5hdG9yIEV4Y2x1c2lvbnMmcXVvdDs6CiAgZmFsc2U8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMTkiIGxvY2F0b3I9IjExNDozLTExNDo3IiB2YWx1ZVR5cGU9InQ6Qm9vbGVhbiIgdmFsdWU9ImZhbHNlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICA8L2RlZj4KICAgPC9zdGF0ZW1lbnRzPgo8L2xpYnJhcnk+Cg=="
    },
    {
      "contentType" : "application/elm+json",
      "data" : "ewogICAibGlicmFyeSIgOiB7CiAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAidHJhbnNsYXRvck9wdGlvbnMiIDogIkVuYWJsZUFubm90YXRpb25zLEVuYWJsZUxvY2F0b3JzLERpc2FibGVMaXN0RGVtb3Rpb24sRGlzYWJsZUxpc3RQcm9tb3Rpb24iLAogICAgICAgICAic2lnbmF0dXJlTGV2ZWwiIDogIk92ZXJsb2FkcyIsCiAgICAgICAgICJ0eXBlIiA6ICJDcWxUb0VsbUluZm8iCiAgICAgIH0sIHsKICAgICAgICAgInR5cGUiIDogIkFubm90YXRpb24iLAogICAgICAgICAicyIgOiB7CiAgICAgICAgICAgICJyIiA6ICIyMCIsCiAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAidmFsdWUiIDogWyAiLyoqXG4gKiBMaWJyYXJ5OiBISVYuSU5ELjE0IExvZ2ljXG4gKiBSZWYgTm86IFBSVi4xNFxuICogU2hvcnQgTmFtZTogT0FNVCBtaW5pbXVtIGRvc2VcbiAqXG4gKiBEZWZpbml0aW9uOiAlIG9mIE9BTVQgcmVjaXBpZW50cyByZWNlaXZpbmcgYSBtYWludGVuYW5jZSBkb3NlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgcmVjb21tZW5kZWQgbWluaW11bSBkb3NlXG4gKlxuICogTnVtZXJhdG9yOiBOdW1iZXIgb2YgcGVvcGxlLCBhdCBhIHNwZWNpZmllZCBkYXRlLCBtYWludGFpbmVkIG9uIG1ldGhhZG9uZSBvciBidXByZW5vcnBoaW5lIHJlY2VpdmluZyByZWNvbW1lbmRlZCBtaW5pbXVtIG1haW50ZW5hbmNlIGRvc2UgKFdITyBndWlkYW5jZSByZWNvbW1lbmRzIGRvc2VzIG9mIOKJpTYwIG1nIG9mIG1ldGhhZG9uZSBvciDiiaU4IG1nIG9mIGJ1cHJlbm9ycGhpbmUqKVxuICogTnVtZXJhdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggKFwiTWVkaWNhdGlvbnMgcHJlc2NyaWJlZFwiPSdNZXRoYWRvbmUnIEFORCBcIkRvc2Ugb2YgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZFwiIEdSRUFURVIgVEhBTiBPUiBFUVVBTCBUTyA2MG1nKSBPUiAoXCJNZWRpY2F0aW9ucyBwcmVzY3JpYmVkXCI9J0J1cHJlbm9ycGhpbmUnIEFORCBcIkRvc2Ugb2YgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZFwiIEdSRUFURVIgVEhBTiBPUiBFUVVBTCBUTyA4bWcpIGZvciBhIHNwZWNpZmllZCBcIlJlcG9ydGluZyBkYXRlXCJcbiAqIE51bWVyYXRvciBFeGNsdXNpb25zOiBcIkNsaWVudCBiZWluZyBpbmR1Y3RlZCBvbiBPQU1UXCIgT1IgXCJDbGllbnQgb24gcmVkdWNpbmcgZG9zZXMgb2YgT0FNVFwiXG4gKlxuICogRGVub21pbmF0b3I6IE51bWJlciBvZiBwZW9wbGUgcmVjZWl2aW5nIG1haW50ZW5hbmNlIGRvc2Ugb2YgbWV0aGFkb25lIG9yIGJ1cHJlbm9ycGhpbmUgYXQgYSBzcGVjaWZpZWQgZGF0ZSwgZXhjbHVkaW5nOiBhKSBpbmRpdmlkdWFscyBjdXJyZW50bHkgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCBhbmQgeWV0IHRvIHJlYWNoIHRoZSBtYWludGVuYW5jZSBkb3NlIGFuZCBiKSBpbmRpdmlkdWFscyBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1ULlxuICogRGVub21pbmF0b3IgQ2FsY3VsYXRpb246IENPVU5UIG9mIGNsaWVudHMgd2l0aCBcIk1lZGljYXRpb25zIHByZXNjcmliZWRcIiBJTiAnTWV0aGFkb25lJywgJ0J1cHJlbm9ycGhpbmUnIGZvciBhIHNwZWNpZmllZCBcIlJlcG9ydGluZyBkYXRlXCJcbiAqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnM6IFwiQ2xpZW50IGJlaW5nIGluZHVjdGVkIG9uIE9BTVRcIiBPUiBcIkNsaWVudCBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1UXCJcbiAqXG4gKiBEaXNhZ2dyZWdhdGlvbnM6XG4gKiDigKIgR2VuZGVyIChmZW1hbGUsIG1hbGUsIG90aGVyKiopIFxuICogIOKAoiBBZ2UgKDE14oCTMTksIDIw4oCTMjQsIDI14oCTNDksIDUwKyB5ZWFycykgXG4gKiAg4oCiIFByb3ZpZGVyIHR5cGUgKGtleSBwb3B1bGF0aW9uLWxlZCBvciBjb21tdW5pdHktbGVkIG9yZ2FuaXphdGlvbiwgcHVibGljIHNlY3RvciBwcm92aWRlciwgb3RoZXIgZW50aXRpZXMgc3VjaCBhcyBwcml2YXRlIGZvci1wcm9maXQgYW5kIG5vdC1mb3ItcHJvZml0IG9yZ2FuaXphdGlvbnMsIGluY2x1ZGluZyBmYWl0aC1iYXNlZCwgaW50ZXJuYXRpb25hbCwgbm9uZ292ZXJubWVudGFsKSBcbiAqICDigKIgU2V0dGluZzogZmFjaWxpdHktYmFzZWQgc2VydmljZSAoaW5jbHVkaW5nIGhvc3BpdGFscywgaGVhbHRoIGNsaW5pY3MsIGdlbmVyYWwgcHJhY3RpY2Ugb2ZmaWNlcywgZXRjLikgb3IgY29tbXVuaXR5LWJhc2VkIHNlcnZpY2UgKGluY2x1ZGluZyBkcm9wLWluIGNlbnRyZXMsIGNvbW11bml0eSBzZXJ2aWNlIGRlbGl2ZXJ5IHBvaW50cywgbW9iaWxlIGNsaW5pY3Mgb3IgdmFucywgb3V0cmVhY2ggdGVhbXMsIGNvbW11bml0eSBzdXBwb3J0IGdyb3VwcywgZXRjLikgXG4gKiAg4oCiwqBDaXRpZXMgYW5kIG90aGVyIGFkbWluaXN0cmF0aXZlIHJlZ2lvbnMgb2YgZXBpZGVtaW9sb2dpYyBpbXBvcnRhbmNlXG4gKlxuICogRGlzYWdncmVnYXRpb24gRWxlbWVudHM6IEdlbmRlciB8IEFnZVxuICpcbiAqIE51bWVyYXRvciBhbmQgRGVub21pbmF0b3IgRWxlbWVudHM6XG4gKiBEb3NlIG9mIG1lZGljYXRpb25zIHByZXNjcmliZWQgXG4gKiAgTWVkaWNhdGlvbnMgcHJlc2NyaWJlZCBcbiAqICBSZXBvcnRpbmcgZGF0ZVxuICpcbiAqIFJlZmVyZW5jZTogQ29uc29saWRhdGVkIGd1aWRlbGluZXMgb24gcGVyc29uLWNlbnRyZWQgSElWIHN0cmF0ZWdpYyBpbmZvcm1hdGlvbjogc3RyZW5ndGhlbmluZyByb3V0aW5lIGRhdGEgZm9yIGltcGFjdC4gR2VuZXZhOiBXb3JsZCBIZWFsdGggT3JnYW5pemF0aW9uOyAyMDIyXG4gKiBcbiAqIERhdGEgQ29uY2VwdHM6XG4gKiBISVYuQS5ERTE3OiBBZ2UgfCBDYWxjdWxhdGVkIGFnZSAobnVtYmVyIG9mIHllYXJzKSBvZiB0aGUgY2xpZW50IGJhc2VkIG9uIGRhdGUgb2YgYmlydGhcbiAqIEhJVi5BLkRFMTg6IEdlbmRlciogfCBHZW5kZXIgb2YgdGhlIGNsaWVudCpcbiAqIEhJVi5BLkRFMTk6IEZlbWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIGZlbWFsZVxuICogSElWLkEuREUyMDogTWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIG1hbGVcbiAqIEhJVi5BLkRFMjE6IFRyYW5zZ2VuZGVyIG1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyB0cmFuc2dlbmRlciBtYWxlXG4gKiBISVYuQS5ERTIyOiBUcmFuc2dlbmRlciBmZW1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyB0cmFuc2dlbmRlciBmZW1hbGVcbiAqIEhJVi5BLkRFMjM6IE90aGVyIHwgQWRkaXRpb25hbCBjYXRlZ29yeVxuICogSElWLkMuREU3NTogTWVkaWNhdGlvbnMgcHJlc2NyaWJlZCB8IE1lZGljYXRpb25zIHRoZSBjbGllbnQgd2FzIHByZXNjcmliZWRcbiAqIEhJVi5DLkRFNzY6IFByRVAgZm9yIEhJViBwcmV2ZW50aW9uIHwgQ2xpZW50IHdhcyBwcmVzY3JpYmVkIHByZS1leHBvc3VyZSBwcm9waHlsYXhpcyAoUHJFUCkgZm9yIEhJViBwcmV2ZW50aW9uXG4gKiBISVYuQy5ERTc3OiBQRVAgZm9yIEhJViBwcmV2ZW50aW9uIHwgQ2xpZW50IHdhcyBwcmVzY3JpYmVkIHBvc3QtZXhwb3N1cmUgcHJvcGh5bGF4aXMgKFBFUCkgZm9yIEhJViBwcmV2ZW50aW9uXG4gKiBISVYuQy5ERTc4OiBPdGhlciB8IENsaWVudCB3YXMgcHJlc2NyaWJlZCBvdGhlciBtZWRpY2F0aW9uc1xuICogSElWLkQuREU0NTc6IE1lZGljYXRpb25zIHByZXNjcmliZWQgfCBOYW1lIG9yIHJlZ2ltZW4gY29kZSBvZiBhbGwgb3RoZXIgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCBkdXJpbmcgdGhlIHZpc2l0XG4gKiBISVYuRC5ERTQ1OTogRG9zZSBvZiBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkIHwgTnVtYmVyIG9mIGRvc2VzIChxdWFudGl0eSB0YWtlbiBhdCBhIHNpbmdsZSBwb2ludCBpbiB0aW1lKSBvZiBkcnVncyBwcmVzY3JpYmVkL2Rpc3BlbnNlZFxuICogSElWLkNvbmZpZy5ERTIyOiBSZXBvcnRpbmcgZGF0ZSB8IFJlcG9ydGluZyBkYXRlLCBmb3Igc3VydmV5cyBwZXJmb3JtZWQgb24gYSBzcGVjaWZpYyBkYXRlXG4gKlxuICogQWRkaXRpb25hbCBDb250ZXh0XG4gKiAtIHdoYXQgaXQgbWVhc3VyZXM6IE1lYXN1cmVzIHRoZSBwcm9wb3J0aW9uIG9mIE9BTVQgcmVjaXBpZW50cyByZWNlaXZpbmcgdGhlIHJlY29tbWVuZGVkIG1pbmltdW0gbWFpbnRlbmFuY2UgZG9zZS5cbiAqIC0gcmF0aW9uYWxlOiBFdmlkZW5jZSBkZW1vbnN0cmF0ZXMgdGhhdCBtYXhpbXVtIGJlbmVmaXQgZnJvbSBPQU1UIGlzIGdhaW5lZCB3aGVuIGluZGl2aWR1YWxzIHJlY2VpdmUgYXQgbGVhc3QgdGhlIHJlY29tbWVuZGVkIG1pbmltdW0gbWFpbnRlbmFuY2UgZG9zZS5cbiAqIC0gbWV0aG9kOiBJbmRpdmlkdWFsLWxldmVsIGRhdGEgb2J0YWluZWQgZnJvbSBwcm9ncmFtbWUgcmVjb3Jkc1xuICogXG4gKiBTdWdnZXN0ZWQgU2NvcmluZyBNZXRob2Q6IHByb3BvcnRpb24gfCBodHRwOi8vaGw3Lm9yZy9maGlyL3VzL2NxZm1lYXN1cmVzL1N0cnVjdHVyZURlZmluaXRpb24vcHJvcG9ydGlvbi1tZWFzdXJlLWNxZm1cbiAqL1xuXG4iLCJsaWJyYXJ5IEhJVklORDE0TG9naWMiIF0KICAgICAgICAgICAgfSBdCiAgICAgICAgIH0KICAgICAgfSBdLAogICAgICAiaWRlbnRpZmllciIgOiB7CiAgICAgICAgICJpZCIgOiAiSElWSU5EMTRMb2dpYyIsCiAgICAgICAgICJzeXN0ZW0iIDogImh0dHA6Ly9zbWFydC53aG8uaW50L2hpdiIKICAgICAgfSwKICAgICAgInNjaGVtYUlkZW50aWZpZXIiIDogewogICAgICAgICAiaWQiIDogInVybjpobDctb3JnOmVsbSIsCiAgICAgICAgICJ2ZXJzaW9uIiA6ICJyMSIKICAgICAgfSwKICAgICAgInVzaW5ncyIgOiB7CiAgICAgICAgICJkZWYiIDogWyB7CiAgICAgICAgICAgICJsb2NhbElkZW50aWZpZXIiIDogIlN5c3RlbSIsCiAgICAgICAgICAgICJ1cmkiIDogInVybjpobDctb3JnOmVsbS10eXBlczpyMSIKICAgICAgICAgfSwgewogICAgICAgICAgICAibG9jYWxJZCIgOiAiMSIsCiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI1OToxLTU5OjI2IiwKICAgICAgICAgICAgImxvY2FsSWRlbnRpZmllciIgOiAiRkhJUiIsCiAgICAgICAgICAgICJ1cmkiIDogImh0dHA6Ly9obDcub3JnL2ZoaXIiLAogICAgICAgICAgICAidmVyc2lvbiIgOiAiNC4wLjEiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIHsKICAgICAgICAgICAgICAgInR5cGUiIDogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICAicyIgOiB7CiAgICAgICAgICAgICAgICAgICJyIiA6ICIxIiwKICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIvLyBJbmNsdWRlZCBMaWJyYXJpZXNcbiIsInVzaW5nICIgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiRkhJUiIgXQogICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIHZlcnNpb24gJzQuMC4xJyIgXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0KICAgICAgICAgfSBdCiAgICAgIH0sCiAgICAgICJpbmNsdWRlcyIgOiB7CiAgICAgICAgICJkZWYiIDogWyB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIyIiwKICAgICAgICAgICAgImxvY2F0b3IiIDogIjYxOjEtNjE6NDQiLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJISUMiLAogICAgICAgICAgICAicGF0aCIgOiAiaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2L0hJVkNvbW1vbiIsCiAgICAgICAgICAgICJ2ZXJzaW9uIiA6ICIwLjAuMSIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5ub3RhdGlvbiIsCiAgICAgICAgICAgICAgICJzIiA6IHsKICAgICAgICAgICAgICAgICAgInIiIDogIjIiLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiIsImluY2x1ZGUgIiBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJISVZDb21tb24iIF0KICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiB2ZXJzaW9uICIsIicwLjAuMSciLCIgY2FsbGVkICIsIkhJQyIgXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0KICAgICAgICAgfSwgewogICAgICAgICAgICAibG9jYWxJZCIgOiAiMyIsCiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI2MjoxLTYyOjM1IiwKICAgICAgICAgICAgImxvY2FsSWRlbnRpZmllciIgOiAiRkhJUkhlbHBlcnMiLAogICAgICAgICAgICAicGF0aCIgOiAiaHR0cDovL2hsNy5vcmcvZmhpci9GSElSSGVscGVycyIsCiAgICAgICAgICAgICJ2ZXJzaW9uIiA6ICI0LjAuMSIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5ub3RhdGlvbiIsCiAgICAgICAgICAgICAgICJzIiA6IHsKICAgICAgICAgICAgICAgICAgInIiIDogIjMiLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiIsImluY2x1ZGUgIiBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJGSElSSGVscGVycyIgXQogICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIHZlcnNpb24gIiwiJzQuMC4xJyIgXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0KICAgICAgICAgfSwgewogICAgICAgICAgICAibG9jYWxJZCIgOiAiNCIsCiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI2MzoxLTYzOjI5IiwKICAgICAgICAgICAgImxvY2FsSWRlbnRpZmllciIgOiAiV0NvbSIsCiAgICAgICAgICAgICJwYXRoIiA6ICJodHRwOi8vc21hcnQud2hvLmludC9oaXYvV0hPQ29tbW9uIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAgInMiIDogewogICAgICAgICAgICAgICAgICAiciIgOiAiNCIsCiAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIiwiaW5jbHVkZSAiIF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIldIT0NvbW1vbiIgXQogICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIGNhbGxlZCAiLCJXQ29tIiBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gXQogICAgICAgICB9IF0KICAgICAgfSwKICAgICAgInBhcmFtZXRlcnMiIDogewogICAgICAgICAiZGVmIiA6IFsgewogICAgICAgICAgICAibG9jYWxJZCIgOiAiMTAiLAogICAgICAgICAgICAibG9jYXRvciIgOiAiNjY6MS02Njo4OCIsCiAgICAgICAgICAgICJuYW1lIiA6ICJNZWFzdXJlbWVudCBQZXJpb2QiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5ub3RhdGlvbiIsCiAgICAgICAgICAgICAgICJzIiA6IHsKICAgICAgICAgICAgICAgICAgInIiIDogIjEwIiwKICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIvLyBJbmRpY2F0b3IgRGVmaW5pdGlvblxuIiwicGFyYW1ldGVyICIsIlwiTWVhc3VyZW1lbnQgUGVyaW9kXCIiLCIgIiBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgInIiIDogIjkiLAogICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIkludGVydmFsPCIgXQogICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJEYXRlIiBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICI+IiBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIgZGVmYXVsdCAiIF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAiciIgOiAiNyIsCiAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJJbnRlcnZhbFsiLCJAMjAyMy0wMS0wMSIsIiwgIiwiQDIwMjMtMDEtMzAiLCJdIiBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0sCiAgICAgICAgICAgICJkZWZhdWx0IiA6IHsKICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjciLAogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNjY6NTUtNjY6ODgiLAogICAgICAgICAgICAgICAibG93Q2xvc2VkIiA6IHRydWUsCiAgICAgICAgICAgICAgICJoaWdoQ2xvc2VkIiA6IHRydWUsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJJbnRlcnZhbCIsCiAgICAgICAgICAgICAgICJsb3ciIDogewogICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiNSIsCiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI2Njo2NC02Njo3NCIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJEYXRlIiwKICAgICAgICAgICAgICAgICAgInllYXIiIDogewogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfUludGVnZXIiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogIjIwMjMiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgIm1vbnRoIiA6IHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1JbnRlZ2VyIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICIxIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJkYXkiIDogewogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfUludGVnZXIiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogIjEiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAiaGlnaCIgOiB7CiAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICI2IiwKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjY2Ojc3LTY2Ojg3IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkRhdGUiLAogICAgICAgICAgICAgICAgICAieWVhciIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9SW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAiMjAyMyIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIgogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAibW9udGgiIDogewogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfUludGVnZXIiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogIjEiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgImRheSIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9SW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAiMzAiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJwYXJhbWV0ZXJUeXBlU3BlY2lmaWVyIiA6IHsKICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjkiLAogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNjY6MzItNjY6NDUiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiSW50ZXJ2YWxUeXBlU3BlY2lmaWVyIiwKICAgICAgICAgICAgICAgInBvaW50VHlwZSIgOiB7CiAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICI4IiwKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjY2OjQxLTY2OjQ0IiwKICAgICAgICAgICAgICAgICAgIm5hbWUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9RGF0ZSIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJOYW1lZFR5cGVTcGVjaWZpZXIiCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9IF0KICAgICAgfSwKICAgICAgImNvbnRleHRzIiA6IHsKICAgICAgICAgImRlZiIgOiBbIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjY4OjEtNjg6MTUiLAogICAgICAgICAgICAibmFtZSIgOiAiUGF0aWVudCIKICAgICAgICAgfSBdCiAgICAgIH0sCiAgICAgICJzdGF0ZW1lbnRzIiA6IHsKICAgICAgICAgImRlZiIgOiBbIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjY4OjEtNjg6MTUiLAogICAgICAgICAgICAibmFtZSIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAidHlwZSIgOiAiU2luZ2xldG9uRnJvbSIsCiAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjY4OjEtNjg6MTUiLAogICAgICAgICAgICAgICAgICAiZGF0YVR5cGUiIDogIntodHRwOi8vaGw3Lm9yZy9maGlyfVBhdGllbnQiLAogICAgICAgICAgICAgICAgICAidGVtcGxhdGVJZCIgOiAiaHR0cDovL2hsNy5vcmcvZmhpci9TdHJ1Y3R1cmVEZWZpbml0aW9uL1BhdGllbnQiLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiUmV0cmlldmUiCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIxMiIsCiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI3NToxLTc2OjYiLAogICAgICAgICAgICAibmFtZSIgOiAiSW5pdGlhbCBQb3B1bGF0aW9uIiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5ub3RhdGlvbiIsCiAgICAgICAgICAgICAgICJzIiA6IHsKICAgICAgICAgICAgICAgICAgInIiIDogIjEyIiwKICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIxMSIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIvKiBQb3B1bGF0aW9ucyAqL1xuXG4vKlxuICpJbml0aWFsIFBvcHVsYXRpb25cbiAqL1xuXG4iLCJkZWZpbmUgIiwiXCJJbml0aWFsIFBvcHVsYXRpb25cIiIsIjpcbiAgIiwidHJ1ZSIgXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjExIiwKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjc2OjMtNzY6NiIsCiAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9Qm9vbGVhbiIsCiAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAidHJ1ZSIsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIgogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2FsSWQiIDogIjE0IiwKICAgICAgICAgICAgImxvY2F0b3IiIDogIjg1OjEtODY6NiIsCiAgICAgICAgICAgICJuYW1lIiA6ICJOdW1lcmF0b3IiLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAgInMiIDogewogICAgICAgICAgICAgICAgICAiciIgOiAiMTQiLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInIiIDogIjEzIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIi8qKlxuICogTnVtZXJhdG9yXG4gKiBcbiAqIERlZmluaXRpb246IE51bWJlciBvZiBwZW9wbGUsIGF0IGEgc3BlY2lmaWVkIGRhdGUsIG1haW50YWluZWQgb24gbWV0aGFkb25lIG9yIGJ1cHJlbm9ycGhpbmUgcmVjZWl2aW5nIHJlY29tbWVuZGVkIG1pbmltdW0gbWFpbnRlbmFuY2UgZG9zZSAoV0hPIGd1aWRhbmNlIHJlY29tbWVuZHMgZG9zZXMgb2Yg4omlNjAgbWcgb2YgbWV0aGFkb25lIG9yIOKJpTggbWcgb2YgYnVwcmVub3JwaGluZSopXG4gKiBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoIChcIk1lZGljYXRpb25zIHByZXNjcmliZWRcIj0nTWV0aGFkb25lJyBBTkQgXCJEb3NlIG9mIG1lZGljYXRpb25zIHByZXNjcmliZWRcIiBHUkVBVEVSIFRIQU4gT1IgRVFVQUwgVE8gNjBtZykgT1IgKFwiTWVkaWNhdGlvbnMgcHJlc2NyaWJlZFwiPSdCdXByZW5vcnBoaW5lJyBBTkQgXCJEb3NlIG9mIG1lZGljYXRpb25zIHByZXNjcmliZWRcIiBHUkVBVEVSIFRIQU4gT1IgRVFVQUwgVE8gOG1nKSBmb3IgYSBzcGVjaWZpZWQgXCJSZXBvcnRpbmcgZGF0ZVwiXG4gKi9cblxuIiwiZGVmaW5lICIsIlwiTnVtZXJhdG9yXCIiLCI6XG4gICIsInRydWUiIF0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBdLAogICAgICAgICAgICAiZXhwcmVzc2lvbiIgOiB7CiAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIxMyIsCiAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI4NjozLTg2OjYiLAogICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfUJvb2xlYW4iLAogICAgICAgICAgICAgICAidmFsdWUiIDogInRydWUiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIKICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIxNiIsCiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI5NDoxLTk1OjciLAogICAgICAgICAgICAibmFtZSIgOiAiTnVtZXJhdG9yIEV4Y2x1c2lvbnMiLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAgInMiIDogewogICAgICAgICAgICAgICAgICAiciIgOiAiMTYiLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInIiIDogIjE1IiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIi8qKlxuICogTnVtZXJhdG9yIEV4Y2x1c2lvbnNcbiAqXG4gKiBDYWxjdWxhdGlvbjogXCJDbGllbnQgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVFwiIE9SIFwiQ2xpZW50IG9uIHJlZHVjaW5nIGRvc2VzIG9mIE9BTVRcIlxuICovXG4gICAgXG4iLCJkZWZpbmUgIiwiXCJOdW1lcmF0b3IgRXhjbHVzaW9uc1wiIiwiOlxuICAiLCJmYWxzZSIgXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjE1IiwKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjk1OjMtOTU6NyIsCiAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9Qm9vbGVhbiIsCiAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAiZmFsc2UiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIKICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIxOCIsCiAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMDQ6MS0xMDU6NiIsCiAgICAgICAgICAgICJuYW1lIiA6ICJEZW5vbWluYXRvciIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIHsKICAgICAgICAgICAgICAgInR5cGUiIDogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICAicyIgOiB7CiAgICAgICAgICAgICAgICAgICJyIiA6ICIxOCIsCiAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAiciIgOiAiMTciLAogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiLyoqXG4gKiBEZW5vbWluYXRvclxuICpcbiAqIERlZmluaXRpb246IE51bWJlciBvZiBwZW9wbGUgcmVjZWl2aW5nIG1haW50ZW5hbmNlIGRvc2Ugb2YgbWV0aGFkb25lIG9yIGJ1cHJlbm9ycGhpbmUgYXQgYSBzcGVjaWZpZWQgZGF0ZSwgZXhjbHVkaW5nOiBhKSBpbmRpdmlkdWFscyBjdXJyZW50bHkgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCBhbmQgeWV0IHRvIHJlYWNoIHRoZSBtYWludGVuYW5jZSBkb3NlIGFuZCBiKSBpbmRpdmlkdWFscyBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1ULlxuICogQ2FsY3VsYXRpb246IENPVU5UIG9mIGNsaWVudHMgd2l0aCBcIk1lZGljYXRpb25zIHByZXNjcmliZWRcIiBJTiAnTWV0aGFkb25lJywgJ0J1cHJlbm9ycGhpbmUnIGZvciBhIHNwZWNpZmllZCBcIlJlcG9ydGluZyBkYXRlXCJcbiAqL1xuXG4iLCJkZWZpbmUgIiwiXCJEZW5vbWluYXRvclwiIiwiOlxuICAiLCJ0cnVlIiBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMTciLAogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTA1OjMtMTA1OjYiLAogICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfUJvb2xlYW4iLAogICAgICAgICAgICAgICAidmFsdWUiIDogInRydWUiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIKICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIyMCIsCiAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMTM6MS0xMTQ6NyIsCiAgICAgICAgICAgICJuYW1lIiA6ICJEZW5vbWluYXRvciBFeGNsdXNpb25zIiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5ub3RhdGlvbiIsCiAgICAgICAgICAgICAgICJzIiA6IHsKICAgICAgICAgICAgICAgICAgInIiIDogIjIwIiwKICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIxOSIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIvKipcbiogRGVub21pbmF0b3IgRXhjbHVzaW9uc1xuKlxuKiBDYWxjdWxhdGlvbjogXCJDbGllbnQgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVFwiIE9SIFwiQ2xpZW50IG9uIHJlZHVjaW5nIGRvc2VzIG9mIE9BTVRcIlxuKi9cblxuIiwiZGVmaW5lICIsIlwiRGVub21pbmF0b3IgRXhjbHVzaW9uc1wiIiwiOlxuICAiLCJmYWxzZSIgXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjE5IiwKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjExNDozLTExNDo3IiwKICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1Cb29sZWFuIiwKICAgICAgICAgICAgICAgInZhbHVlIiA6ICJmYWxzZSIsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIgogICAgICAgICAgICB9CiAgICAgICAgIH0gXQogICAgICB9CiAgIH0KfQ=="
    }
  ]
}