WHO Clinical Care in Crisis Implementation Guide for Children
0.1.0 - ci-build

WHO Clinical Care in Crisis Implementation Guide for Children - Local Development build (v0.1.0). See the Directory of published versions

: tricepsSkinfoldForAge - TTL Representation

Active as of 2023-10-04

Raw ttl | Download

@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

 a fhir:Library ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "tricepsSkinfoldForAge"] ; # 
  fhir:text [
fhir:status [ fhir:v "generated" ] ;
fhir:div "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h2>Related Artifacts</h2><table class=\"grid\"><tr><td>depends-on</td><td><a href=\"Library-anthrobase.html\">anthrobase</a></td></tr><tr><td>depends-on</td><td><code>http://fhir.org/guides/who/anc-cds/Library/FHIRHelpers</code></td></tr></table><h2>Parameters</h2><table class=\"grid\"><tr><td>zscore</td><td>in</td><td/><td/><td>decimal</td></tr><tr><td>Age</td><td>in</td><td/><td/><td>decimal</td></tr><tr><td>sex</td><td>in</td><td/><td/><td>decimal</td></tr><tr><td>generatetricepsSkinfoldFromAge</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>generateZScoretricepsSkinfoldForAge</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>ZscoretricepsSkinfoldForAgetables_s</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>ZscoretricepsSkinfoldForAgetables_m</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>ZscoretricepsSkinfoldForAgetables_l</td><td>out</td><td/><td/><td>decimal</td></tr></table><h2>Data Requirements</h2><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/patient.html\">Patient</a> (<a href=\"http://hl7.org/fhir/R4/patient.html\">Patient</a>)</td></tr></table><h2>Contents</h2><p><code>text/cql</code></p><pre><code class=\"language-sql\">\nlibrary tricepsSkinfoldForAge version '1.0.4'\nusing FHIR version '4.0.1'\ninclude anthrobase version '1.0.4' called base\ninclude FHIRHelpers version '4.0.1' called FHIRHelpers\n\n// Antrho library for tricepsSkinfoldForAge  Z-Score from the tsanthro files\ncodesystem &quot;administrative-gender&quot;: 'http://hl7.org/fhir/administrative-gender'\n//code &quot;Female&quot; : 'female' from &quot;administrative-gender&quot;  display 'Female'\n\n\ndefine tricepsSkinfoldForAgeFemale:\n{\n	{y:91.0,l:0.1882,s:0.17525,m:9.7533},\n	{y:98.0,l:0.1725,s:0.17725,m:9.7169},\n	{y:105.0,l:0.1578,s:0.17914,m:9.6809},\n	{y:112.0,l:0.1438,s:0.18096,m:9.6434},\n	{y:119.0,l:0.1306,s:0.18271,m:9.6033},\n	{y:126.0,l:0.1181,s:0.18439,m:9.5598},\n	{y:133.0,l:0.1062,s:0.186,m:9.5132},\n	{y:140.0,l:0.0948,s:0.18755,m:9.4638},\n	{y:147.0,l:0.0839,s:0.18902,m:9.4118},\n	{y:154.0,l:0.0734,s:0.19042,m:9.3572},\n	{y:161.0,l:0.0635,s:0.19175,m:9.3008},\n	{y:168.0,l:0.0539,s:0.19301,m:9.2429},\n	{y:175.0,l:0.0446,s:0.19419,m:9.1842},\n	{y:182.0,l:0.0357,s:0.1953,m:9.1247},\n	{y:197.0,l:0.0176,s:0.19743,m:8.9969},\n	{y:227.0,l:-0.0148,s:0.20068,m:8.7491},\n	{y:257.0,l:-0.0429,s:0.20268,m:8.5268},\n	{y:287.0,l:-0.0674,s:0.20377,m:8.3391},\n	{y:317.0,l:-0.0884,s:0.20429,m:8.1869},\n	{y:347.0,l:-0.1065,s:0.20446,m:8.0654},\n	{y:377.0,l:-0.1219,s:0.20441,m:7.9691},\n	{y:407.0,l:-0.135,s:0.20424,m:7.8932},\n	{y:437.0,l:-0.1463,s:0.204,m:7.8344},\n	{y:467.0,l:-0.1559,s:0.20376,m:7.7903},\n	{y:497.0,l:-0.1641,s:0.20357,m:7.759},\n	{y:527.0,l:-0.1712,s:0.20349,m:7.7392},\n	{y:557.0,l:-0.1773,s:0.20353,m:7.7296},\n	{y:587.0,l:-0.1825,s:0.20371,m:7.7295},\n	{y:617.0,l:-0.1871,s:0.20403,m:7.7377},\n	{y:647.0,l:-0.1911,s:0.20451,m:7.7531},\n	{y:677.0,l:-0.1948,s:0.20513,m:7.7751},\n	{y:707.0,l:-0.198,s:0.20586,m:7.8026},\n	{y:737.0,l:-0.201,s:0.20672,m:7.8346},\n	{y:767.0,l:-0.2037,s:0.20769,m:7.8701},\n	{y:797.0,l:-0.2062,s:0.20876,m:7.9078},\n	{y:827.0,l:-0.2085,s:0.20992,m:7.9463},\n	{y:857.0,l:-0.2106,s:0.21116,m:7.9846},\n	{y:887.0,l:-0.2125,s:0.21247,m:8.022},\n	{y:917.0,l:-0.2142,s:0.21384,m:8.0581},\n	{y:947.0,l:-0.2157,s:0.21526,m:8.0926},\n	{y:977.0,l:-0.2171,s:0.21672,m:8.1256},\n	{y:1007.0,l:-0.2184,s:0.21822,m:8.1572},\n	{y:1037.0,l:-0.2196,s:0.21975,m:8.1876},\n	{y:1067.0,l:-0.2207,s:0.22131,m:8.2172},\n	{y:1097.0,l:-0.2218,s:0.22289,m:8.2462},\n	{y:1127.0,l:-0.2228,s:0.22449,m:8.2745},\n	{y:1157.0,l:-0.2237,s:0.2261,m:8.3023},\n	{y:1187.0,l:-0.2246,s:0.22772,m:8.3293},\n	{y:1217.0,l:-0.2254,s:0.22934,m:8.3555},\n	{y:1247.0,l:-0.2262,s:0.23096,m:8.381},\n	{y:1277.0,l:-0.227,s:0.23257,m:8.4057},\n	{y:1307.0,l:-0.2277,s:0.23417,m:8.4297},\n	{y:1337.0,l:-0.2284,s:0.23576,m:8.4533},\n	{y:1367.0,l:-0.2291,s:0.23733,m:8.4765},\n	{y:1397.0,l:-0.2297,s:0.23888,m:8.4995},\n	{y:1427.0,l:-0.2303,s:0.24042,m:8.5223},\n	{y:1457.0,l:-0.2309,s:0.24194,m:8.5451},\n	{y:1487.0,l:-0.2315,s:0.24345,m:8.5678},\n	{y:1517.0,l:-0.232,s:0.24493,m:8.5905},\n	{y:1547.0,l:-0.2325,s:0.24639,m:8.6133},\n	{y:1577.0,l:-0.233,s:0.24783,m:8.6362},\n	{y:1607.0,l:-0.2335,s:0.24925,m:8.6593},\n	{y:1637.0,l:-0.234,s:0.25064,m:8.6824},\n	{y:1667.0,l:-0.2345,s:0.25201,m:8.7057},\n	{y:1697.0,l:-0.2349,s:0.25336,m:8.7291},\n	{y:1727.0,l:-0.2354,s:0.25468,m:8.7524},\n	{y:1757.0,l:-0.2358,s:0.25597,m:8.7758},\n	{y:1787.0,l:-0.2362,s:0.25724,m:8.7992},\n	{y:1817.0,l:-0.2366,s:0.25849,m:8.8226},\n	{y:1847.0,l:-0.237,s:0.25972,m:8.8458}\n}\n\ndefine tricepsSkinfoldForAgeMale:\n{\n	{y:91.0,l:0.003,s:0.16611,m:9.7658},\n	{y:98.0,l:-0.0018,s:0.1677,m:9.7236},\n	{y:105.0,l:-0.0064,s:0.16922,m:9.6826},\n	{y:112.0,l:-0.0107,s:0.17069,m:9.6418},\n	{y:119.0,l:-0.0149,s:0.1721,m:9.6005},\n	{y:126.0,l:-0.0189,s:0.17347,m:9.5581},\n	{y:133.0,l:-0.0227,s:0.1748,m:9.5145},\n	{y:140.0,l:-0.0265,s:0.17609,m:9.4697},\n	{y:147.0,l:-0.03,s:0.17734,m:9.4235},\n	{y:154.0,l:-0.0335,s:0.17855,m:9.3761},\n	{y:161.0,l:-0.0368,s:0.17972,m:9.3275},\n	{y:168.0,l:-0.0401,s:0.18085,m:9.278},\n	{y:175.0,l:-0.0433,s:0.18192,m:9.2279},\n	{y:182.0,l:-0.0463,s:0.18295,m:9.1775},\n	{y:197.0,l:-0.0526,s:0.18496,m:9.0689},\n	{y:227.0,l:-0.0643,s:0.18826,m:8.8555},\n	{y:257.0,l:-0.075,s:0.19065,m:8.656},\n	{y:287.0,l:-0.0848,s:0.19231,m:8.4759},\n	{y:317.0,l:-0.0939,s:0.19342,m:8.3169},\n	{y:347.0,l:-0.1024,s:0.19416,m:8.1785},\n	{y:377.0,l:-0.1104,s:0.19474,m:8.06},\n	{y:407.0,l:-0.118,s:0.19526,m:7.9605},\n	{y:437.0,l:-0.1252,s:0.19577,m:7.8788},\n	{y:467.0,l:-0.1321,s:0.19631,m:7.8135},\n	{y:497.0,l:-0.1387,s:0.19688,m:7.7626},\n	{y:527.0,l:-0.145,s:0.19748,m:7.724},\n	{y:557.0,l:-0.151,s:0.19813,m:7.6961},\n	{y:587.0,l:-0.1568,s:0.19883,m:7.6776},\n	{y:617.0,l:-0.1625,s:0.19958,m:7.6677},\n	{y:647.0,l:-0.1679,s:0.2004,m:7.6653},\n	{y:677.0,l:-0.1731,s:0.20126,m:7.6689},\n	{y:707.0,l:-0.1782,s:0.20218,m:7.6773},\n	{y:737.0,l:-0.1832,s:0.20314,m:7.6891},\n	{y:767.0,l:-0.188,s:0.20414,m:7.7033},\n	{y:797.0,l:-0.1927,s:0.20517,m:7.7185},\n	{y:827.0,l:-0.1972,s:0.20621,m:7.7338},\n	{y:857.0,l:-0.2017,s:0.20727,m:7.7486},\n	{y:887.0,l:-0.206,s:0.20833,m:7.7621},\n	{y:917.0,l:-0.2102,s:0.20942,m:7.7741},\n	{y:947.0,l:-0.2144,s:0.21052,m:7.7843},\n	{y:977.0,l:-0.2184,s:0.21164,m:7.7928},\n	{y:1007.0,l:-0.2224,s:0.21279,m:7.7994},\n	{y:1037.0,l:-0.2263,s:0.21398,m:7.8043},\n	{y:1067.0,l:-0.2301,s:0.2152,m:7.8076},\n	{y:1097.0,l:-0.2338,s:0.21646,m:7.8094},\n	{y:1127.0,l:-0.2375,s:0.21776,m:7.8101},\n	{y:1157.0,l:-0.241,s:0.21911,m:7.8096},\n	{y:1187.0,l:-0.2446,s:0.22049,m:7.808},\n	{y:1217.0,l:-0.248,s:0.22192,m:7.8051},\n	{y:1247.0,l:-0.2514,s:0.22339,m:7.801},\n	{y:1277.0,l:-0.2548,s:0.22489,m:7.7956},\n	{y:1307.0,l:-0.2581,s:0.22644,m:7.789},\n	{y:1337.0,l:-0.2613,s:0.22801,m:7.781},\n	{y:1367.0,l:-0.2645,s:0.22961,m:7.7719},\n	{y:1397.0,l:-0.2676,s:0.23123,m:7.7616},\n	{y:1427.0,l:-0.2707,s:0.23286,m:7.7503},\n	{y:1457.0,l:-0.2738,s:0.23451,m:7.7381},\n	{y:1487.0,l:-0.2768,s:0.23617,m:7.7252},\n	{y:1517.0,l:-0.2798,s:0.23784,m:7.7118},\n	{y:1547.0,l:-0.2827,s:0.23951,m:7.698},\n	{y:1577.0,l:-0.2856,s:0.24119,m:7.6839},\n	{y:1607.0,l:-0.2884,s:0.24287,m:7.6698},\n	{y:1637.0,l:-0.2912,s:0.24457,m:7.6557},\n	{y:1667.0,l:-0.294,s:0.24626,m:7.6416},\n	{y:1697.0,l:-0.2967,s:0.24797,m:7.6277},\n	{y:1727.0,l:-0.2994,s:0.24967,m:7.6139},\n	{y:1757.0,l:-0.3021,s:0.25138,m:7.6005},\n	{y:1787.0,l:-0.3047,s:0.25309,m:7.5873},\n	{y:1817.0,l:-0.3073,s:0.2548,m:7.5745},\n	{y:1847.0,l:-0.3099,s:0.25651,m:7.562}\n}\n\n\n\n\ndefine function ZscoretricepsSkinfoldForAgetables(sex String, age Decimal):\n	if sex = 'female' then  \n        First(tricepsSkinfoldForAgeFemale c where c.y = base.AgeToMini(age) )\n	else \n        First(tricepsSkinfoldForAgeMale c where  c.y = base.AgeToMini(age))\n            \ndefine function generateZScoretricepsSkinfoldForAge(sex System.String, age System.Decimal, weight  System.Decimal)  : \n	 generateZScoretricepsSkinfoldForAgedet(ZscoretricepsSkinfoldForAgetables(sex,age), weight )\n\ndefine function generateZScoretricepsSkinfoldForAgedet(row Tuple {y System.Decimal,l System.Decimal,s System.Decimal,m System.Decimal}, weight  System.Decimal):\n    if row is not null then \n        base.computeZScore(\n            weight,\n            row.m , \n            row.l ,\n            row.s \n        )\n    else null\n\n\ndefine function generatetricepsSkinfoldFromAge(sex System.String, age System.Decimal, zscore  System.Decimal) : \n	 generatetricepsSkinfoldFromAgedet(ZscoretricepsSkinfoldForAgetables(sex,age),zscore  )\n\ndefine function generatetricepsSkinfoldFromAgedet(row Tuple {y System.Decimal,l System.Decimal,s System.Decimal,m System.Decimal},zscore  System.Decimal) : \n    if row is not null then \n        base.computeReverseZScore(\n            zscore,\n            row.m , \n            row.l ,\n            row.s \n        )\n    else null    \n\n    \n</code></pre></div>"
  ] ; # 
  fhir:url [ fhir:v "https://fhir.dk.swisstph-mis.ch/matchbox/fhir/Library/tricepsSkinfoldForAge"^^xsd:anyURI] ; # 
  fhir:version [ fhir:v "0.1.0"] ; # 
  fhir:name [ fhir:v "tricepsSkinfoldForAge"] ; # 
  fhir:status [ fhir:v "active"] ; # 
  fhir:type [
    ( fhir:coding [
fhir:system [ fhir:v "http://hl7.org/fhir/ValueSet/library-type"^^xsd:anyURI ] ;
fhir:code [ fhir:v "logic-library" ]     ] )
  ] ; # 
  fhir:date [ fhir:v "2023-10-04T12:32:21+00:00"^^xsd:dateTime] ; # 
  fhir:publisher [ fhir:v "WHO"] ; # 
  fhir:contact ( [
fhir:name [ fhir:v "WHO" ] ;
    ( fhir:telecom [
fhir:system [ fhir:v "url" ] ;
fhir:value [ fhir:v "http://who.int" ]     ] )
  ] ) ; # 
  fhir:relatedArtifact ( [
fhir:type [ fhir:v "depends-on" ] ;
fhir:resource [
fhir:v "https://fhir.dk.swisstph-mis.ch/matchbox/fhir/Library/anthrobase"^^xsd:anyURI ;
fhir:link <https://fhir.dk.swisstph-mis.ch/matchbox/fhir/Library/anthrobase>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:resource [
fhir:v "http://fhir.org/guides/who/anc-cds/Library/FHIRHelpers"^^xsd:anyURI ;
fhir:link <http://fhir.org/guides/who/anc-cds/Library/FHIRHelpers>     ]
  ] ) ; # 
  fhir:parameter ( [
fhir:name [ fhir:v "zscore" ] ;
fhir:use [ fhir:v "in" ] ;
fhir:type [ fhir:v "decimal" ]
  ] [
fhir:name [ fhir:v "Age" ] ;
fhir:use [ fhir:v "in" ] ;
fhir:type [ fhir:v "decimal" ]
  ] [
fhir:name [ fhir:v "sex" ] ;
fhir:use [ fhir:v "in" ] ;
fhir:type [ fhir:v "decimal" ]
  ] [
fhir:name [ fhir:v "generatetricepsSkinfoldFromAge" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:type [ fhir:v "decimal" ]
  ] [
fhir:name [ fhir:v "generateZScoretricepsSkinfoldForAge" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:type [ fhir:v "decimal" ]
  ] [
fhir:name [ fhir:v "ZscoretricepsSkinfoldForAgetables_s" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:type [ fhir:v "decimal" ]
  ] [
fhir:name [ fhir:v "ZscoretricepsSkinfoldForAgetables_m" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:type [ fhir:v "decimal" ]
  ] [
fhir:name [ fhir:v "ZscoretricepsSkinfoldForAgetables_l" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:type [ fhir:v "decimal" ]
  ] ) ; # 
  fhir:dataRequirement ( [
fhir:type [ fhir:v "Patient" ] ;
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/StructureDefinition/Patient"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/StructureDefinition/Patient>     ] )
  ] ) ; # 
  fhir:content ( [
fhir:id [ fhir:v "ig-loader-tricepsSkinfoldForAge.cql" ] ;
fhir:contentType [ fhir:v "text/cql" ] ;
fhir:data [ fhir:v "CmxpYnJhcnkgdHJpY2Vwc1NraW5mb2xkRm9yQWdlIHZlcnNpb24gJzEuMC40Jwp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwppbmNsdWRlIGFudGhyb2Jhc2UgdmVyc2lvbiAnMS4wLjQnIGNhbGxlZCBiYXNlCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnIGNhbGxlZCBGSElSSGVscGVycwoKLy8gQW50cmhvIGxpYnJhcnkgZm9yIHRyaWNlcHNTa2luZm9sZEZvckFnZSAgWi1TY29yZSBmcm9tIHRoZSB0c2FudGhybyBmaWxlcwpjb2Rlc3lzdGVtICJhZG1pbmlzdHJhdGl2ZS1nZW5kZXIiOiAnaHR0cDovL2hsNy5vcmcvZmhpci9hZG1pbmlzdHJhdGl2ZS1nZW5kZXInCi8vY29kZSAiRmVtYWxlIiA6ICdmZW1hbGUnIGZyb20gImFkbWluaXN0cmF0aXZlLWdlbmRlciIgIGRpc3BsYXkgJ0ZlbWFsZScKCgpkZWZpbmUgdHJpY2Vwc1NraW5mb2xkRm9yQWdlRmVtYWxlOgp7Cgl7eTo5MS4wLGw6MC4xODgyLHM6MC4xNzUyNSxtOjkuNzUzM30sCgl7eTo5OC4wLGw6MC4xNzI1LHM6MC4xNzcyNSxtOjkuNzE2OX0sCgl7eToxMDUuMCxsOjAuMTU3OCxzOjAuMTc5MTQsbTo5LjY4MDl9LAoJe3k6MTEyLjAsbDowLjE0MzgsczowLjE4MDk2LG06OS42NDM0fSwKCXt5OjExOS4wLGw6MC4xMzA2LHM6MC4xODI3MSxtOjkuNjAzM30sCgl7eToxMjYuMCxsOjAuMTE4MSxzOjAuMTg0MzksbTo5LjU1OTh9LAoJe3k6MTMzLjAsbDowLjEwNjIsczowLjE4NixtOjkuNTEzMn0sCgl7eToxNDAuMCxsOjAuMDk0OCxzOjAuMTg3NTUsbTo5LjQ2Mzh9LAoJe3k6MTQ3LjAsbDowLjA4MzksczowLjE4OTAyLG06OS40MTE4fSwKCXt5OjE1NC4wLGw6MC4wNzM0LHM6MC4xOTA0MixtOjkuMzU3Mn0sCgl7eToxNjEuMCxsOjAuMDYzNSxzOjAuMTkxNzUsbTo5LjMwMDh9LAoJe3k6MTY4LjAsbDowLjA1MzksczowLjE5MzAxLG06OS4yNDI5fSwKCXt5OjE3NS4wLGw6MC4wNDQ2LHM6MC4xOTQxOSxtOjkuMTg0Mn0sCgl7eToxODIuMCxsOjAuMDM1NyxzOjAuMTk1MyxtOjkuMTI0N30sCgl7eToxOTcuMCxsOjAuMDE3NixzOjAuMTk3NDMsbTo4Ljk5Njl9LAoJe3k6MjI3LjAsbDotMC4wMTQ4LHM6MC4yMDA2OCxtOjguNzQ5MX0sCgl7eToyNTcuMCxsOi0wLjA0MjksczowLjIwMjY4LG06OC41MjY4fSwKCXt5OjI4Ny4wLGw6LTAuMDY3NCxzOjAuMjAzNzcsbTo4LjMzOTF9LAoJe3k6MzE3LjAsbDotMC4wODg0LHM6MC4yMDQyOSxtOjguMTg2OX0sCgl7eTozNDcuMCxsOi0wLjEwNjUsczowLjIwNDQ2LG06OC4wNjU0fSwKCXt5OjM3Ny4wLGw6LTAuMTIxOSxzOjAuMjA0NDEsbTo3Ljk2OTF9LAoJe3k6NDA3LjAsbDotMC4xMzUsczowLjIwNDI0LG06Ny44OTMyfSwKCXt5OjQzNy4wLGw6LTAuMTQ2MyxzOjAuMjA0LG06Ny44MzQ0fSwKCXt5OjQ2Ny4wLGw6LTAuMTU1OSxzOjAuMjAzNzYsbTo3Ljc5MDN9LAoJe3k6NDk3LjAsbDotMC4xNjQxLHM6MC4yMDM1NyxtOjcuNzU5fSwKCXt5OjUyNy4wLGw6LTAuMTcxMixzOjAuMjAzNDksbTo3LjczOTJ9LAoJe3k6NTU3LjAsbDotMC4xNzczLHM6MC4yMDM1MyxtOjcuNzI5Nn0sCgl7eTo1ODcuMCxsOi0wLjE4MjUsczowLjIwMzcxLG06Ny43Mjk1fSwKCXt5OjYxNy4wLGw6LTAuMTg3MSxzOjAuMjA0MDMsbTo3LjczNzd9LAoJe3k6NjQ3LjAsbDotMC4xOTExLHM6MC4yMDQ1MSxtOjcuNzUzMX0sCgl7eTo2NzcuMCxsOi0wLjE5NDgsczowLjIwNTEzLG06Ny43NzUxfSwKCXt5OjcwNy4wLGw6LTAuMTk4LHM6MC4yMDU4NixtOjcuODAyNn0sCgl7eTo3MzcuMCxsOi0wLjIwMSxzOjAuMjA2NzIsbTo3LjgzNDZ9LAoJe3k6NzY3LjAsbDotMC4yMDM3LHM6MC4yMDc2OSxtOjcuODcwMX0sCgl7eTo3OTcuMCxsOi0wLjIwNjIsczowLjIwODc2LG06Ny45MDc4fSwKCXt5OjgyNy4wLGw6LTAuMjA4NSxzOjAuMjA5OTIsbTo3Ljk0NjN9LAoJe3k6ODU3LjAsbDotMC4yMTA2LHM6MC4yMTExNixtOjcuOTg0Nn0sCgl7eTo4ODcuMCxsOi0wLjIxMjUsczowLjIxMjQ3LG06OC4wMjJ9LAoJe3k6OTE3LjAsbDotMC4yMTQyLHM6MC4yMTM4NCxtOjguMDU4MX0sCgl7eTo5NDcuMCxsOi0wLjIxNTcsczowLjIxNTI2LG06OC4wOTI2fSwKCXt5Ojk3Ny4wLGw6LTAuMjE3MSxzOjAuMjE2NzIsbTo4LjEyNTZ9LAoJe3k6MTAwNy4wLGw6LTAuMjE4NCxzOjAuMjE4MjIsbTo4LjE1NzJ9LAoJe3k6MTAzNy4wLGw6LTAuMjE5NixzOjAuMjE5NzUsbTo4LjE4NzZ9LAoJe3k6MTA2Ny4wLGw6LTAuMjIwNyxzOjAuMjIxMzEsbTo4LjIxNzJ9LAoJe3k6MTA5Ny4wLGw6LTAuMjIxOCxzOjAuMjIyODksbTo4LjI0NjJ9LAoJe3k6MTEyNy4wLGw6LTAuMjIyOCxzOjAuMjI0NDksbTo4LjI3NDV9LAoJe3k6MTE1Ny4wLGw6LTAuMjIzNyxzOjAuMjI2MSxtOjguMzAyM30sCgl7eToxMTg3LjAsbDotMC4yMjQ2LHM6MC4yMjc3MixtOjguMzI5M30sCgl7eToxMjE3LjAsbDotMC4yMjU0LHM6MC4yMjkzNCxtOjguMzU1NX0sCgl7eToxMjQ3LjAsbDotMC4yMjYyLHM6MC4yMzA5NixtOjguMzgxfSwKCXt5OjEyNzcuMCxsOi0wLjIyNyxzOjAuMjMyNTcsbTo4LjQwNTd9LAoJe3k6MTMwNy4wLGw6LTAuMjI3NyxzOjAuMjM0MTcsbTo4LjQyOTd9LAoJe3k6MTMzNy4wLGw6LTAuMjI4NCxzOjAuMjM1NzYsbTo4LjQ1MzN9LAoJe3k6MTM2Ny4wLGw6LTAuMjI5MSxzOjAuMjM3MzMsbTo4LjQ3NjV9LAoJe3k6MTM5Ny4wLGw6LTAuMjI5NyxzOjAuMjM4ODgsbTo4LjQ5OTV9LAoJe3k6MTQyNy4wLGw6LTAuMjMwMyxzOjAuMjQwNDIsbTo4LjUyMjN9LAoJe3k6MTQ1Ny4wLGw6LTAuMjMwOSxzOjAuMjQxOTQsbTo4LjU0NTF9LAoJe3k6MTQ4Ny4wLGw6LTAuMjMxNSxzOjAuMjQzNDUsbTo4LjU2Nzh9LAoJe3k6MTUxNy4wLGw6LTAuMjMyLHM6MC4yNDQ5MyxtOjguNTkwNX0sCgl7eToxNTQ3LjAsbDotMC4yMzI1LHM6MC4yNDYzOSxtOjguNjEzM30sCgl7eToxNTc3LjAsbDotMC4yMzMsczowLjI0NzgzLG06OC42MzYyfSwKCXt5OjE2MDcuMCxsOi0wLjIzMzUsczowLjI0OTI1LG06OC42NTkzfSwKCXt5OjE2MzcuMCxsOi0wLjIzNCxzOjAuMjUwNjQsbTo4LjY4MjR9LAoJe3k6MTY2Ny4wLGw6LTAuMjM0NSxzOjAuMjUyMDEsbTo4LjcwNTd9LAoJe3k6MTY5Ny4wLGw6LTAuMjM0OSxzOjAuMjUzMzYsbTo4LjcyOTF9LAoJe3k6MTcyNy4wLGw6LTAuMjM1NCxzOjAuMjU0NjgsbTo4Ljc1MjR9LAoJe3k6MTc1Ny4wLGw6LTAuMjM1OCxzOjAuMjU1OTcsbTo4Ljc3NTh9LAoJe3k6MTc4Ny4wLGw6LTAuMjM2MixzOjAuMjU3MjQsbTo4Ljc5OTJ9LAoJe3k6MTgxNy4wLGw6LTAuMjM2NixzOjAuMjU4NDksbTo4LjgyMjZ9LAoJe3k6MTg0Ny4wLGw6LTAuMjM3LHM6MC4yNTk3MixtOjguODQ1OH0KfQoKZGVmaW5lIHRyaWNlcHNTa2luZm9sZEZvckFnZU1hbGU6CnsKCXt5OjkxLjAsbDowLjAwMyxzOjAuMTY2MTEsbTo5Ljc2NTh9LAoJe3k6OTguMCxsOi0wLjAwMTgsczowLjE2NzcsbTo5LjcyMzZ9LAoJe3k6MTA1LjAsbDotMC4wMDY0LHM6MC4xNjkyMixtOjkuNjgyNn0sCgl7eToxMTIuMCxsOi0wLjAxMDcsczowLjE3MDY5LG06OS42NDE4fSwKCXt5OjExOS4wLGw6LTAuMDE0OSxzOjAuMTcyMSxtOjkuNjAwNX0sCgl7eToxMjYuMCxsOi0wLjAxODksczowLjE3MzQ3LG06OS41NTgxfSwKCXt5OjEzMy4wLGw6LTAuMDIyNyxzOjAuMTc0OCxtOjkuNTE0NX0sCgl7eToxNDAuMCxsOi0wLjAyNjUsczowLjE3NjA5LG06OS40Njk3fSwKCXt5OjE0Ny4wLGw6LTAuMDMsczowLjE3NzM0LG06OS40MjM1fSwKCXt5OjE1NC4wLGw6LTAuMDMzNSxzOjAuMTc4NTUsbTo5LjM3NjF9LAoJe3k6MTYxLjAsbDotMC4wMzY4LHM6MC4xNzk3MixtOjkuMzI3NX0sCgl7eToxNjguMCxsOi0wLjA0MDEsczowLjE4MDg1LG06OS4yNzh9LAoJe3k6MTc1LjAsbDotMC4wNDMzLHM6MC4xODE5MixtOjkuMjI3OX0sCgl7eToxODIuMCxsOi0wLjA0NjMsczowLjE4Mjk1LG06OS4xNzc1fSwKCXt5OjE5Ny4wLGw6LTAuMDUyNixzOjAuMTg0OTYsbTo5LjA2ODl9LAoJe3k6MjI3LjAsbDotMC4wNjQzLHM6MC4xODgyNixtOjguODU1NX0sCgl7eToyNTcuMCxsOi0wLjA3NSxzOjAuMTkwNjUsbTo4LjY1Nn0sCgl7eToyODcuMCxsOi0wLjA4NDgsczowLjE5MjMxLG06OC40NzU5fSwKCXt5OjMxNy4wLGw6LTAuMDkzOSxzOjAuMTkzNDIsbTo4LjMxNjl9LAoJe3k6MzQ3LjAsbDotMC4xMDI0LHM6MC4xOTQxNixtOjguMTc4NX0sCgl7eTozNzcuMCxsOi0wLjExMDQsczowLjE5NDc0LG06OC4wNn0sCgl7eTo0MDcuMCxsOi0wLjExOCxzOjAuMTk1MjYsbTo3Ljk2MDV9LAoJe3k6NDM3LjAsbDotMC4xMjUyLHM6MC4xOTU3NyxtOjcuODc4OH0sCgl7eTo0NjcuMCxsOi0wLjEzMjEsczowLjE5NjMxLG06Ny44MTM1fSwKCXt5OjQ5Ny4wLGw6LTAuMTM4NyxzOjAuMTk2ODgsbTo3Ljc2MjZ9LAoJe3k6NTI3LjAsbDotMC4xNDUsczowLjE5NzQ4LG06Ny43MjR9LAoJe3k6NTU3LjAsbDotMC4xNTEsczowLjE5ODEzLG06Ny42OTYxfSwKCXt5OjU4Ny4wLGw6LTAuMTU2OCxzOjAuMTk4ODMsbTo3LjY3NzZ9LAoJe3k6NjE3LjAsbDotMC4xNjI1LHM6MC4xOTk1OCxtOjcuNjY3N30sCgl7eTo2NDcuMCxsOi0wLjE2NzksczowLjIwMDQsbTo3LjY2NTN9LAoJe3k6Njc3LjAsbDotMC4xNzMxLHM6MC4yMDEyNixtOjcuNjY4OX0sCgl7eTo3MDcuMCxsOi0wLjE3ODIsczowLjIwMjE4LG06Ny42NzczfSwKCXt5OjczNy4wLGw6LTAuMTgzMixzOjAuMjAzMTQsbTo3LjY4OTF9LAoJe3k6NzY3LjAsbDotMC4xODgsczowLjIwNDE0LG06Ny43MDMzfSwKCXt5Ojc5Ny4wLGw6LTAuMTkyNyxzOjAuMjA1MTcsbTo3LjcxODV9LAoJe3k6ODI3LjAsbDotMC4xOTcyLHM6MC4yMDYyMSxtOjcuNzMzOH0sCgl7eTo4NTcuMCxsOi0wLjIwMTcsczowLjIwNzI3LG06Ny43NDg2fSwKCXt5Ojg4Ny4wLGw6LTAuMjA2LHM6MC4yMDgzMyxtOjcuNzYyMX0sCgl7eTo5MTcuMCxsOi0wLjIxMDIsczowLjIwOTQyLG06Ny43NzQxfSwKCXt5Ojk0Ny4wLGw6LTAuMjE0NCxzOjAuMjEwNTIsbTo3Ljc4NDN9LAoJe3k6OTc3LjAsbDotMC4yMTg0LHM6MC4yMTE2NCxtOjcuNzkyOH0sCgl7eToxMDA3LjAsbDotMC4yMjI0LHM6MC4yMTI3OSxtOjcuNzk5NH0sCgl7eToxMDM3LjAsbDotMC4yMjYzLHM6MC4yMTM5OCxtOjcuODA0M30sCgl7eToxMDY3LjAsbDotMC4yMzAxLHM6MC4yMTUyLG06Ny44MDc2fSwKCXt5OjEwOTcuMCxsOi0wLjIzMzgsczowLjIxNjQ2LG06Ny44MDk0fSwKCXt5OjExMjcuMCxsOi0wLjIzNzUsczowLjIxNzc2LG06Ny44MTAxfSwKCXt5OjExNTcuMCxsOi0wLjI0MSxzOjAuMjE5MTEsbTo3LjgwOTZ9LAoJe3k6MTE4Ny4wLGw6LTAuMjQ0NixzOjAuMjIwNDksbTo3LjgwOH0sCgl7eToxMjE3LjAsbDotMC4yNDgsczowLjIyMTkyLG06Ny44MDUxfSwKCXt5OjEyNDcuMCxsOi0wLjI1MTQsczowLjIyMzM5LG06Ny44MDF9LAoJe3k6MTI3Ny4wLGw6LTAuMjU0OCxzOjAuMjI0ODksbTo3Ljc5NTZ9LAoJe3k6MTMwNy4wLGw6LTAuMjU4MSxzOjAuMjI2NDQsbTo3Ljc4OX0sCgl7eToxMzM3LjAsbDotMC4yNjEzLHM6MC4yMjgwMSxtOjcuNzgxfSwKCXt5OjEzNjcuMCxsOi0wLjI2NDUsczowLjIyOTYxLG06Ny43NzE5fSwKCXt5OjEzOTcuMCxsOi0wLjI2NzYsczowLjIzMTIzLG06Ny43NjE2fSwKCXt5OjE0MjcuMCxsOi0wLjI3MDcsczowLjIzMjg2LG06Ny43NTAzfSwKCXt5OjE0NTcuMCxsOi0wLjI3MzgsczowLjIzNDUxLG06Ny43MzgxfSwKCXt5OjE0ODcuMCxsOi0wLjI3NjgsczowLjIzNjE3LG06Ny43MjUyfSwKCXt5OjE1MTcuMCxsOi0wLjI3OTgsczowLjIzNzg0LG06Ny43MTE4fSwKCXt5OjE1NDcuMCxsOi0wLjI4MjcsczowLjIzOTUxLG06Ny42OTh9LAoJe3k6MTU3Ny4wLGw6LTAuMjg1NixzOjAuMjQxMTksbTo3LjY4Mzl9LAoJe3k6MTYwNy4wLGw6LTAuMjg4NCxzOjAuMjQyODcsbTo3LjY2OTh9LAoJe3k6MTYzNy4wLGw6LTAuMjkxMixzOjAuMjQ0NTcsbTo3LjY1NTd9LAoJe3k6MTY2Ny4wLGw6LTAuMjk0LHM6MC4yNDYyNixtOjcuNjQxNn0sCgl7eToxNjk3LjAsbDotMC4yOTY3LHM6MC4yNDc5NyxtOjcuNjI3N30sCgl7eToxNzI3LjAsbDotMC4yOTk0LHM6MC4yNDk2NyxtOjcuNjEzOX0sCgl7eToxNzU3LjAsbDotMC4zMDIxLHM6MC4yNTEzOCxtOjcuNjAwNX0sCgl7eToxNzg3LjAsbDotMC4zMDQ3LHM6MC4yNTMwOSxtOjcuNTg3M30sCgl7eToxODE3LjAsbDotMC4zMDczLHM6MC4yNTQ4LG06Ny41NzQ1fSwKCXt5OjE4NDcuMCxsOi0wLjMwOTksczowLjI1NjUxLG06Ny41NjJ9Cn0KCgoKCmRlZmluZSBmdW5jdGlvbiBac2NvcmV0cmljZXBzU2tpbmZvbGRGb3JBZ2V0YWJsZXMoc2V4IFN0cmluZywgYWdlIERlY2ltYWwpOgoJaWYgc2V4ID0gJ2ZlbWFsZScgdGhlbiAgCiAgICAgICAgRmlyc3QodHJpY2Vwc1NraW5mb2xkRm9yQWdlRmVtYWxlIGMgd2hlcmUgYy55ID0gYmFzZS5BZ2VUb01pbmkoYWdlKSApCgllbHNlIAogICAgICAgIEZpcnN0KHRyaWNlcHNTa2luZm9sZEZvckFnZU1hbGUgYyB3aGVyZSAgYy55ID0gYmFzZS5BZ2VUb01pbmkoYWdlKSkKICAgICAgICAgICAgCmRlZmluZSBmdW5jdGlvbiBnZW5lcmF0ZVpTY29yZXRyaWNlcHNTa2luZm9sZEZvckFnZShzZXggU3lzdGVtLlN0cmluZywgYWdlIFN5c3RlbS5EZWNpbWFsLCB3ZWlnaHQgIFN5c3RlbS5EZWNpbWFsKSAgOiAKCSBnZW5lcmF0ZVpTY29yZXRyaWNlcHNTa2luZm9sZEZvckFnZWRldChac2NvcmV0cmljZXBzU2tpbmZvbGRGb3JBZ2V0YWJsZXMoc2V4LGFnZSksIHdlaWdodCApCgpkZWZpbmUgZnVuY3Rpb24gZ2VuZXJhdGVaU2NvcmV0cmljZXBzU2tpbmZvbGRGb3JBZ2VkZXQocm93IFR1cGxlIHt5IFN5c3RlbS5EZWNpbWFsLGwgU3lzdGVtLkRlY2ltYWwscyBTeXN0ZW0uRGVjaW1hbCxtIFN5c3RlbS5EZWNpbWFsfSwgd2VpZ2h0ICBTeXN0ZW0uRGVjaW1hbCk6CiAgICBpZiByb3cgaXMgbm90IG51bGwgdGhlbiAKICAgICAgICBiYXNlLmNvbXB1dGVaU2NvcmUoCiAgICAgICAgICAgIHdlaWdodCwKICAgICAgICAgICAgcm93Lm0gLCAKICAgICAgICAgICAgcm93LmwgLAogICAgICAgICAgICByb3cucyAKICAgICAgICApCiAgICBlbHNlIG51bGwKCgpkZWZpbmUgZnVuY3Rpb24gZ2VuZXJhdGV0cmljZXBzU2tpbmZvbGRGcm9tQWdlKHNleCBTeXN0ZW0uU3RyaW5nLCBhZ2UgU3lzdGVtLkRlY2ltYWwsIHpzY29yZSAgU3lzdGVtLkRlY2ltYWwpIDogCgkgZ2VuZXJhdGV0cmljZXBzU2tpbmZvbGRGcm9tQWdlZGV0KFpzY29yZXRyaWNlcHNTa2luZm9sZEZvckFnZXRhYmxlcyhzZXgsYWdlKSx6c2NvcmUgICkKCmRlZmluZSBmdW5jdGlvbiBnZW5lcmF0ZXRyaWNlcHNTa2luZm9sZEZyb21BZ2VkZXQocm93IFR1cGxlIHt5IFN5c3RlbS5EZWNpbWFsLGwgU3lzdGVtLkRlY2ltYWwscyBTeXN0ZW0uRGVjaW1hbCxtIFN5c3RlbS5EZWNpbWFsfSx6c2NvcmUgIFN5c3RlbS5EZWNpbWFsKSA6IAogICAgaWYgcm93IGlzIG5vdCBudWxsIHRoZW4gCiAgICAgICAgYmFzZS5jb21wdXRlUmV2ZXJzZVpTY29yZSgKICAgICAgICAgICAgenNjb3JlLAogICAgICAgICAgICByb3cubSAsIAogICAgICAgICAgICByb3cubCAsCiAgICAgICAgICAgIHJvdy5zIAogICAgICAgICkKICAgIGVsc2UgbnVsbCAgICAKCiAgICAK"^^xsd:base64Binary ]
  ] ) . #