From bfab753e0a937d93d02eef691f55ad5879df2aae Mon Sep 17 00:00:00 2001
From: GitHub Actions Bot <>
Date: Thu, 5 Dec 2024 14:13:17 +0000
Subject: [PATCH] Built from commit 'fe2a52e'
---
.nojekyll | 0
404.html | 13 +
assets/css/styles.c56e74c6.css | 1 +
...hema-d910dbf0482722be733110958da420f0.json | 4413 ++
...cling-8cbf643933baa1262460838cc4b483ae.png | Bin 0 -> 44134 bytes
...pling-1618c246583304921e59eced813219f2.png | Bin 0 -> 237031 bytes
..._line-98e32f3b0d5332a371ec4bb2dbc66da8.png | Bin 0 -> 43526 bytes
...chart-74501f10294f5dd339dba1a305bbe3f6.png | Bin 0 -> 31408 bytes
...oking-e0ac6b7a8379c76a8f29199d7aa9086c.png | Bin 0 -> 45513 bytes
...ssure-c971bb4cd1ee2f4d1cd9827d6231364c.png | Bin 0 -> 157773 bytes
...rview-26f2e87a69f9a685f123b818e6bed313.png | Bin 0 -> 38869 bytes
...ation-9c9342f8d3a926d760096a17ccb76556.svg | 4330 ++
...chart-ba6f49b5df22923cfcbe4d5d2aa4525b.png | Bin 0 -> 43536 bytes
..._plot-d4eee4126032e046bf374ef66ceb9946.png | Bin 0 -> 16617 bytes
..._plot-527cac79a8c53527147492b170308459.png | Bin 0 -> 14318 bytes
...essor-3493b127c832898d93b5231594efa8d3.png | Bin 0 -> 69926 bytes
...chart-28c5f110972461aba840e82b0962c3d2.png | Bin 0 -> 66545 bytes
...reams-415751902a6078520845f70740eaa1af.png | Bin 0 -> 59154 bytes
...t_eff-136e9a9dd1af0700084ddf17be0d4453.PNG | Bin 0 -> 12910 bytes
..._head-ec0fc7f624752c8c95bd7c3f828090a3.PNG | Bin 0 -> 14284 bytes
...arity-3e43516a1e0246a2e125d4980006b137.png | Bin 0 -> 19396 bytes
...y_pfd-ad59578d69ea3d3267f646b9d8141822.jpg | Bin 0 -> 1261426 bytes
...oking-dc5aedeb280843ea22445ce83731b8dc.png | Bin 0 -> 46036 bytes
...ample-5b8c9832693a18b6500cf408c0b4873b.png | Bin 0 -> 150701 bytes
...chart-3363c0ba3fb148d87fb7af7b3163f6eb.png | Bin 0 -> 292458 bytes
assets/js/00bdc23f.66d5f21c.js | 1 +
assets/js/017b0cbc.b15c597b.js | 1 +
assets/js/03dfed1e.567e449b.js | 1 +
assets/js/0425b884.72278814.js | 1 +
assets/js/058ad5bf.0c0d810d.js | 1 +
assets/js/06543a48.5310234a.js | 1 +
assets/js/0673f3d8.5a6cdc86.js | 1 +
assets/js/0745e7f0.1a08a580.js | 1 +
assets/js/09bd96eb.86e1b386.js | 1 +
assets/js/0a776dcb.a4df551c.js | 1 +
assets/js/0c22fffd.17c55f18.js | 1 +
assets/js/0fd76486.3776b2de.js | 1 +
assets/js/0ffabbb0.2d4eff62.js | 1 +
assets/js/104.f537a977.js | 23923 +++++++
assets/js/1169.f5af047e.js | 1 +
assets/js/1176.ef72ee50.js | 1 +
assets/js/130.def7e228.js | 18473 ++++++
assets/js/1329.ddd40c79.js | 1 +
assets/js/138e0e15.7676a675.js | 1 +
assets/js/141.07a41e87.js | 26093 ++++++++
assets/js/141.66a6bac6.js | 1 +
assets/js/144.5bfdb681.js | 1323 +
assets/js/147b5d1b.11846856.js | 1 +
assets/js/14eb3368.450e3902.js | 1 +
assets/js/151edf84.8337283a.js | 1 +
assets/js/155359f6.f5f625c3.js | 1 +
assets/js/16059610.c4c04ce2.js | 1 +
assets/js/163.6fc638f7.js | 10814 ++++
assets/js/163041ea.383f62ba.js | 1 +
assets/js/1689.b7c1e40a.js | 1 +
assets/js/17896441.76e45139.js | 2 +
assets/js/17896441.76e45139.js.LICENSE.txt | 9 +
assets/js/18b0ec42.2ac73a22.js | 1 +
assets/js/1987.f09f6aaa.js | 1 +
assets/js/1a4e3797.df845592.js | 1 +
assets/js/1c663d3d.d38f16f7.js | 1 +
assets/js/1d55f518.ed9ff422.js | 1 +
assets/js/1df93b7f.7976f793.js | 1 +
assets/js/1eb7400c.99dbd36c.js | 1 +
assets/js/1f60d0d4.22494f28.js | 1 +
assets/js/1f7805b6.29cce52e.js | 1 +
assets/js/20703393.b1647309.js | 1 +
assets/js/2121587b.6744d348.js | 1 +
assets/js/2130.c5e4f4c2.js | 1 +
assets/js/2144.04bef282.js | 1 +
assets/js/218ce29d.b7d66088.js | 1 +
assets/js/2237.308b3350.js | 1 +
assets/js/2315.c38004ef.js | 1 +
assets/js/277de022.18fd3489.js | 1 +
assets/js/27b97f54.4c21a317.js | 1 +
assets/js/281e4beb.dea8f301.js | 1 +
assets/js/282c1cc9.73879b24.js | 1 +
assets/js/292.857c4588.js | 2605 +
assets/js/2924e06f.4213d1b7.js | 1 +
assets/js/2b2be347.21292636.js | 1 +
assets/js/2b47973a.d76292a7.js | 1 +
assets/js/2b572af2.2a5b2378.js | 1 +
assets/js/2ce3b5da.74f40356.js | 1 +
assets/js/2cedaf2f.7266b378.js | 1 +
assets/js/2fdfb4de.b265933e.js | 1 +
assets/js/315.b7a4b027.js | 28500 +++++++++
assets/js/32311569.ecdf1b16.js | 1 +
assets/js/329.caf89843.js | 14571 +++++
assets/js/3292.9f8d4611.js | 1 +
assets/js/33498b04.24d4ee8e.js | 1 +
assets/js/3390a8e0.280e220b.js | 1 +
assets/js/33fb585a.0eed8140.js | 1 +
assets/js/3409ab5c.07103752.js | 1 +
assets/js/3417.86c7c365.js | 1 +
assets/js/3451a9ae.a366cef9.js | 1 +
assets/js/34864e1f.78d111db.js | 1 +
assets/js/3687.39ae53e0.js | 1 +
assets/js/3720c009.784ce305.js | 1 +
assets/js/386ea0a5.a59c5988.js | 1 +
assets/js/38d592cf.4449eff9.js | 1 +
assets/js/3ac409ea.7672fae2.js | 1 +
assets/js/3be812e9.2ce31a7e.js | 1 +
assets/js/3d5bbd33.c1ee4223.js | 1 +
assets/js/3e38e310.5f46b2fe.js | 1 +
assets/js/4073.7922f135.js | 1 +
assets/js/40912a5c.b11b4ca5.js | 1 +
assets/js/40d6382c.51be8feb.js | 1 +
assets/js/4104.f910d614.js | 1 +
assets/js/417.24cbf29e.js | 10065 +++
assets/js/41ab033f.7482b62d.js | 1 +
assets/js/428320b6.4cd048f4.js | 1 +
assets/js/42b1e060.c0b5850f.js | 1 +
assets/js/4358a0b2.1cc97b8a.js | 1 +
assets/js/43a1031a.0a2d738e.js | 1 +
assets/js/43a26e71.dd67e435.js | 1 +
assets/js/4424673c.34b787c0.js | 1 +
assets/js/4529.1f834603.js | 1 +
assets/js/4564.1dd843c5.js | 1 +
assets/js/45c974ba.0b665fc2.js | 1 +
assets/js/465c5577.777fdbe2.js | 1 +
assets/js/46613219.210a2a47.js | 1 +
assets/js/469.7a9e2f6f.js | 10323 ++++
assets/js/46d94f2f.f31ef3b8.js | 1 +
assets/js/47daf389.a34e589e.js | 1 +
assets/js/489.5e628191.js | 2 +
assets/js/489.5e628191.js.LICENSE.txt | 1 +
assets/js/495.21267086.js | 2 +
assets/js/495.21267086.js.LICENSE.txt | 9 +
assets/js/495.a8d47168.js | 51571 ++++++++++++++++
assets/js/496ed8d5.f95fcc04.js | 1 +
assets/js/498bfcff.79dc88fb.js | 1 +
assets/js/4aa4fc36.e9e47236.js | 1 +
assets/js/4b5a01f9.6ef3d6d0.js | 1 +
assets/js/4b80f681.b7e2b496.js | 1 +
assets/js/4d8633af.c131feaf.js | 1 +
assets/js/4ee97ba8.9f4c6982.js | 1 +
assets/js/5163.6c850069.js | 1 +
assets/js/529.287c6ecb.js | 1410 +
assets/js/5394.ec8f3b81.js | 1 +
assets/js/5628.5b37a687.js | 1 +
assets/js/564.d069b264.js | 1227 +
assets/js/56baec0c.15385c7f.js | 1 +
assets/js/5741.3f175718.js | 1 +
assets/js/5785ef4b.5a8eff10.js | 1 +
assets/js/5857.7495e89d.js | 1 +
assets/js/5860.05504350.js | 1 +
assets/js/5920dbec.865006f6.js | 1 +
assets/js/5b24544a.354ee6cb.js | 1 +
assets/js/5bfc86d7.32a3926b.js | 1 +
assets/js/5c08a402.656b6c7e.js | 1 +
assets/js/5c8ec56d.16d6c1af.js | 1 +
assets/js/5da39e49.02bbf67e.js | 1 +
assets/js/5e10e9e1.8733fcd6.js | 1 +
assets/js/5e95c892.084f3624.js | 1 +
assets/js/5f3f5785.ffeee995.js | 1 +
assets/js/60c8c0f3.1229e49d.js | 1 +
assets/js/625.7c210cc1.js | 20438 ++++++
assets/js/6268ac32.86d2733f.js | 1 +
assets/js/628.f908b292.js | 26180 ++++++++
assets/js/62f9a98c.23d094ad.js | 1 +
assets/js/63091997.747d23e4.js | 1 +
assets/js/637c67a5.a02e564b.js | 1 +
assets/js/63ecd22d.0a5816d7.js | 1 +
assets/js/63f63b83.bc4fafbb.js | 1 +
assets/js/6406f263.f9be9ff7.js | 1 +
assets/js/64d2b91f.dbbe6108.js | 1 +
assets/js/6625.5d9eafb1.js | 1 +
assets/js/66286265.39cf8098.js | 1 +
assets/js/6711f262.25b663bb.js | 1 +
assets/js/6770.6224bf21.js | 1 +
assets/js/682b2100.74c56514.js | 1 +
assets/js/687.1f45b64b.js | 3478 ++
assets/js/689.95bbd132.js | 26805 ++++++++
assets/js/69fd9be6.cbada077.js | 1 +
assets/js/6a04e9fa.56795369.js | 1 +
assets/js/6a216250.bfc7f6f2.js | 1 +
assets/js/6adcc868.4aa146e1.js | 1 +
assets/js/6b1cdc5e.23acb505.js | 1 +
assets/js/6b8f95a4.fd5cf9c9.js | 1 +
assets/js/6bf1c518.a41f29cd.js | 1 +
assets/js/6bf367cb.6058d350.js | 1 +
assets/js/6eb500eb.c1ddc254.js | 1 +
assets/js/6f2c9828.e0006080.js | 1 +
assets/js/70bbd824.a5ac8cee.js | 1 +
assets/js/711.19940302.js | 1 +
assets/js/721cfe60.f1ac0539.js | 1 +
assets/js/73.5c54446f.js | 1820 +
assets/js/741de8b7.b0766c91.js | 1 +
assets/js/7557b935.6b6bffb7.js | 1 +
assets/js/75df07ec.a7ff5f37.js | 1 +
assets/js/770.feedd412.js | 10825 ++++
assets/js/78771141.542d28f0.js | 1 +
assets/js/7899.81ee6753.js | 1 +
assets/js/7b02141e.324a3fad.js | 1 +
assets/js/7be299fb.e0a783e4.js | 1 +
assets/js/7d3b81bb.c327fe31.js | 1 +
assets/js/7d9552c0.fff8bb86.js | 1 +
assets/js/7db788f5.cdf881d0.js | 1 +
assets/js/7e6991bb.03ac52ca.js | 1 +
assets/js/7eb3a421.4f947033.js | 1 +
assets/js/8146.38f902ca.js | 1 +
assets/js/81dd00c5.bdfc871f.js | 1 +
assets/js/83ed74d7.558311cb.js | 1 +
assets/js/841adc37.26b5c8c8.js | 1 +
assets/js/846.7ce979e9.js | 742 +
assets/js/857.4dc6b3f4.js | 540 +
assets/js/85cb5dc7.4db0a746.js | 1 +
assets/js/8846.e65b3b4d.js | 1 +
assets/js/8859d7a9.7d814690.js | 1 +
assets/js/8961bfac.95578cae.js | 1 +
assets/js/8989.d1ab2708.js | 1 +
assets/js/8995.927f5d68.js | 1 +
assets/js/8a4fc9f1.6a8ce834.js | 1 +
assets/js/8abfe720.417e7671.js | 1 +
assets/js/8bcf6c84.bdd49444.js | 1 +
assets/js/8d2ce0de.05db6a6e.js | 1 +
assets/js/908e0101.9f66b67f.js | 1 +
assets/js/9312.a4899f67.js | 1 +
assets/js/95bf0c8c.21e11369.js | 1 +
assets/js/96533a10.b3a8cad4.js | 1 +
assets/js/9680e89f.4f53056e.js | 1 +
assets/js/971.cfbbdca8.js | 1242 +
assets/js/971.e694b620.js | 1 +
assets/js/989.c9a87419.js | 2105 +
assets/js/9a118db7.e0e710f7.js | 1 +
assets/js/9a7150ac.cceeda90.js | 1 +
assets/js/9ac5a6f1.75350006.js | 1 +
assets/js/9bc42851.412baac7.js | 1 +
assets/js/9caa4dca.f5d5fbe0.js | 1 +
assets/js/9d1a436a.074df0a4.js | 1 +
assets/js/9d87d0ad.73800669.js | 1 +
assets/js/9df3a417.4468ca67.js | 1 +
assets/js/9e136365.0ca05f05.js | 1 +
assets/js/9e91bf8d.3f92c5f9.js | 1 +
assets/js/9f62981a.5e92dfad.js | 1 +
assets/js/9fe770c0.123911d0.js | 1 +
assets/js/a1e1f72e.a12161b6.js | 1 +
assets/js/a2e97e20.bf98d1ec.js | 1 +
assets/js/a359a99b.b9879044.js | 1 +
assets/js/a592ae15.2b39f39d.js | 1 +
assets/js/a5dcc804.396480f9.js | 1 +
assets/js/a7456010.6958eccd.js | 1 +
assets/js/a7bd4aaa.ac02ed0d.js | 1 +
assets/js/a89a20bc.e0dbdb35.js | 1 +
assets/js/a94703ab.77575623.js | 1 +
assets/js/aae5f4ca.bb5e530c.js | 1 +
assets/js/aba21aa0.c774b9b6.js | 1 +
assets/js/ad129716.3e146e2e.js | 1 +
assets/js/aedaac15.264095c6.js | 1 +
assets/js/af105519.56e01e4d.js | 1 +
assets/js/b2f67940.613a0d26.js | 1 +
assets/js/b3a1f60f.9e9e20e1.js | 1 +
assets/js/b9581e7f.d87aa9cc.js | 1 +
assets/js/ba0ab229.81ad1631.js | 1 +
assets/js/bb45b332.933ee4bf.js | 1 +
assets/js/bc72d23a.6aa5c10d.js | 1 +
assets/js/bdf25f4c.7ae1f63d.js | 1 +
assets/js/bf562633.864aa652.js | 1 +
assets/js/bfdf430b.21810c64.js | 1 +
assets/js/bffc9314.71323be9.js | 1 +
assets/js/c127897d.80dabf97.js | 1 +
assets/js/c1f3bf99.6a3b4b8d.js | 1 +
assets/js/c240171b.ba77aa57.js | 1 +
assets/js/c90bf1e8.4616fd83.js | 1 +
assets/js/cbac54c5.746e1d32.js | 1 +
assets/js/cbf35f3a.89e1e3fa.js | 1 +
assets/js/cda37ba5.0a01ec17.js | 1 +
assets/js/ce0c4b55.d9f7da32.js | 1 +
assets/js/d20656b7.4d9e502c.js | 1 +
assets/js/d2279440.c199f0c6.js | 1 +
assets/js/d3d733e5.c16c0a33.js | 1 +
assets/js/d5cd246e.5d533a23.js | 1 +
assets/js/d708d793.49998533.js | 1 +
assets/js/d857f50e.ac4e457f.js | 1 +
assets/js/d8846ffb.084e4a37.js | 1 +
assets/js/d8c9bd2d.6105424d.js | 1 +
assets/js/d90d1a18.bd7b0cd9.js | 1 +
assets/js/d9a6ba4c.f573b5d9.js | 1 +
assets/js/dcab5fea.bd7ad1bd.js | 1 +
assets/js/de3649f0.2d88cccf.js | 1 +
assets/js/df203c0f.f449b894.js | 1 +
assets/js/dfbab2f3.901bcaba.js | 1 +
assets/js/e1df8231.b1244533.js | 1 +
assets/js/e2712b99.282d782f.js | 1 +
assets/js/e5622214.ad407cb7.js | 1 +
assets/js/e64a1018.1f5145d5.js | 1 +
assets/js/e8ebc025.a7473e7b.js | 1 +
assets/js/e9e63826.0a978166.js | 1 +
assets/js/ea18955c.e08b7ef2.js | 1 +
assets/js/eab951c7.d3aa6a07.js | 1 +
assets/js/eb609ab0.658fa422.js | 1 +
assets/js/eb949326.e491ee79.js | 1 +
assets/js/ebdd570f.12240552.js | 1 +
assets/js/ed5b25aa.7bc95883.js | 1 +
assets/js/ed6dee8b.168a500a.js | 1 +
assets/js/edb3a98b.a789225f.js | 1 +
assets/js/eee46244.5cdfbdd9.js | 1 +
assets/js/f054b415.ddae0d3b.js | 1 +
assets/js/f256795b.08d49ac5.js | 1 +
assets/js/f469c95f.d43928c8.js | 1 +
assets/js/f4c60d9f.0b33cb43.js | 1 +
assets/js/f52ed7e3.e35d875f.js | 1 +
assets/js/f577f5c2.14b35249.js | 1 +
assets/js/f92867ed.7e67b420.js | 1 +
assets/js/fa0b6059.2f627b0c.js | 1 +
assets/js/fa3d98bd.76d300f3.js | 1 +
assets/js/fba8a418.751544b2.js | 1 +
assets/js/fcc523f6.067010b7.js | 1 +
assets/js/fe44757f.0c0de2c3.js | 1 +
assets/js/fedb6237.5b3f7f78.js | 1 +
assets/js/main.37ac598c.js | 2 +
assets/js/main.37ac598c.js.LICENSE.txt | 126 +
assets/js/runtime~main.b6a7ada0.js | 1 +
docs/about/getting_started/api/index.html | 14 +
docs/about/getting_started/api/libecalc.html | 239 +
.../getting_started/api/libecalc/common.html | 279 +
.../api/libecalc/common/chart_type.html | 408 +
.../api/libecalc/common/component_info.html | 238 +
.../component_info/component_level.html | 442 +
.../common/component_info/compressor.html | 374 +
.../api/libecalc/common/component_type.html | 585 +
.../api/libecalc/common/consumer_type.html | 459 +
.../api/libecalc/common/consumption_type.html | 374 +
.../api/libecalc/common/datetime.html | 237 +
.../api/libecalc/common/datetime/utils.html | 472 +
.../api/libecalc/common/decorators.html | 238 +
.../libecalc/common/decorators/capturer.html | 627 +
.../common/decorators/feature_flags.html | 608 +
.../common/discriminator_fallback.html | 320 +
.../libecalc/common/energy_model_type.html | 536 +
.../libecalc/common/energy_usage_type.html | 374 +
.../api/libecalc/common/errors.html | 237 +
.../libecalc/common/errors/exceptions.html | 1425 +
.../common/fixed_speed_pressure_control.html | 425 +
.../api/libecalc/common/fluid.html | 1601 +
.../libecalc/common/fluid_stream_type.html | 374 +
.../api/libecalc/common/graph.html | 838 +
.../api/libecalc/common/list.html | 238 +
.../api/libecalc/common/list/adjustment.html | 292 +
.../api/libecalc/common/list/list_utils.html | 624 +
.../api/libecalc/common/logger.html | 273 +
.../api/libecalc/common/math.html | 238 +
.../api/libecalc/common/math/math_utils.html | 409 +
.../api/libecalc/common/math/numbers.html | 598 +
.../api/libecalc/common/priorities.html | 278 +
.../libecalc/common/priority_optimizer.html | 646 +
.../api/libecalc/common/run_info.html | 429 +
.../libecalc/common/serializable_chart.html | 1345 +
.../libecalc/common/stream_conditions.html | 912 +
.../api/libecalc/common/string.html | 237 +
.../libecalc/common/string/string_utils.html | 399 +
.../libecalc/common/tabular_time_series.html | 638 +
.../api/libecalc/common/temporal_model.html | 536 +
.../api/libecalc/common/time_utils.html | 1986 +
.../api/libecalc/common/units.html | 1505 +
.../api/libecalc/common/variables.html | 1317 +
.../api/libecalc/common/version.html | 708 +
.../getting_started/api/libecalc/domain.html | 238 +
.../libecalc/domain/stream_conditions.html | 962 +
.../api/libecalc/domain/tabular.html | 238 +
.../libecalc/domain/tabular/exceptions.html | 461 +
.../api/libecalc/domain/tabular/tabular.html | 573 +
.../getting_started/api/libecalc/dto.html | 301 +
.../api/libecalc/dto/base.html | 397 +
.../api/libecalc/dto/component_graph.html | 626 +
.../api/libecalc/dto/components.html | 7634 +++
.../api/libecalc/dto/core_specs.html | 240 +
.../api/libecalc/dto/core_specs/base.html | 237 +
.../core_specs/base/operational_settings.html | 391 +
.../libecalc/dto/core_specs/compressor.html | 237 +
.../compressor/operational_settings.html | 493 +
.../api/libecalc/dto/core_specs/pump.html | 237 +
.../core_specs/pump/operational_settings.html | 489 +
.../api/libecalc/dto/core_specs/system.html | 233 +
.../api/libecalc/dto/emission.html | 462 +
.../api/libecalc/dto/fuel_type.html | 512 +
.../api/libecalc/dto/models.html | 372 +
.../api/libecalc/dto/models/base.html | 606 +
.../api/libecalc/dto/models/chart.html | 631 +
.../api/libecalc/dto/models/compressor.html | 292 +
.../libecalc/dto/models/compressor/base.html | 764 +
.../libecalc/dto/models/compressor/chart.html | 276 +
.../dto/models/compressor/sampled.html | 613 +
.../libecalc/dto/models/compressor/stage.html | 855 +
.../libecalc/dto/models/compressor/train.html | 1792 +
.../libecalc/dto/models/consumer_system.html | 1833 +
.../api/libecalc/dto/models/direct.html | 528 +
.../libecalc/dto/models/generator_set.html | 537 +
.../api/libecalc/dto/models/pump.html | 719 +
.../api/libecalc/dto/models/sampled.html | 402 +
.../api/libecalc/dto/models/tabulated.html | 840 +
.../api/libecalc/dto/models/turbine.html | 494 +
.../api/libecalc/dto/node_info.html | 454 +
.../api/libecalc/dto/result_options.html | 440 +
.../api/libecalc/dto/types.html | 1551 +
.../api/libecalc/dto/utils.html | 237 +
.../api/libecalc/dto/utils/validators.html | 511 +
.../api/libecalc/examples.html | 244 +
.../api/libecalc/examples/advanced.html | 304 +
.../api/libecalc/examples/simple.html | 357 +
.../api/libecalc/expression.html | 243 +
.../api/libecalc/expression/expression.html | 970 +
.../expression/expression_evaluator.html | 1692 +
.../api/libecalc/infrastructure.html | 238 +
.../api/libecalc/infrastructure/file_io.html | 2630 +
.../libecalc/infrastructure/file_utils.html | 642 +
.../getting_started/api/libecalc/testing.html | 238 +
.../libecalc/testing/dto_energy_model.html | 413 +
.../api/libecalc/testing/yaml_builder.html | 4945 ++
.../getting_started/api/libecalc/version.html | 285 +
.../cli/cli_reference/index.html | 99 +
docs/about/getting_started/cli/faq/index.html | 43 +
docs/about/getting_started/cli/index.html | 38 +
docs/about/getting_started/index.html | 35 +
docs/about/getting_started/library/index.html | 17 +
docs/about/getting_started/yaml/index.html | 20 +
docs/about/index.html | 25 +
docs/about/migration_guides/index.html | 13 +
.../migration_guides/v7_to_v8/index.html | 109 +
.../migration_guides/v8-1_to_v8-2/index.html | 62 +
.../migration_guides/v8-2_to_v8-3/index.html | 14 +
.../migration_guides/v8-3_to_v8-4/index.html | 14 +
.../migration_guides/v8-5_to_v8-6/index.html | 17 +
.../migration_guides/v8-6_to_v8-7/index.html | 14 +
.../v8.12_to_v8.13/index.html | 41 +
.../v8.13_to_v8.14/index.html | 29 +
.../v8.15_to_v8.16/index.html | 27 +
.../v8.22_to_v8.23/index.html | 26 +
.../migration_guides/v8.26_to_v9.0/index.html | 40 +
.../migration_guides/v8.7_to_v8.8/index.html | 35 +
.../migration_guides/v8_to_v81/index.html | 64 +
docs/about/miscellaneous/index.html | 43 +
.../advanced_invalid_timesteps/index.html | 144 +
.../modelling/course_material/index.html | 19 +
.../simple_invalid_timesteps/index.html | 130 +
.../modelling/examples/advanced/index.html | 145 +
.../modelling/examples/drogon/index.html | 73 +
docs/about/modelling/examples/index.html | 20 +
.../modelling/examples/simple/index.html | 130 +
docs/about/modelling/index.html | 17 +
.../generator_modelling/index.html | 29 +
.../setup/facility_inputs/index.html | 43 +
.../facility_inputs/pump_modelling/index.html | 19 +
.../pump_modelling/pump_charts/index.html | 67 +
.../sampled_compressor_model/index.html | 67 +
.../setup/facility_inputs/tabular/index.html | 37 +
.../expressions/index.html | 50 +
.../setup/file_format_and_syntax/index.html | 55 +
.../modelling/setup/fuel_types/index.html | 24 +
docs/about/modelling/setup/index.html | 17 +
.../compressor/index.html | 22 +
.../compressor_system/index.html | 25 +
.../index.html | 22 +
.../index.html | 22 +
.../installations/direct_consumers/index.html | 25 +
.../generator_sets_in_calculations/index.html | 63 +
.../modelling/setup/installations/index.html | 62 +
.../pump_models_in_calculations/index.html | 37 +
.../tabular_models_in_calculations/index.html | 25 +
.../compressor_charts/index.html | 99 +
.../compressor_models_types/index.html | 20 +
.../index.html | 46 +
.../index.html | 37 +
.../index.html | 40 +
.../index.html | 82 +
.../fixed_speed_pressure_control/index.html | 103 +
.../models/compressor_modelling/index.html | 36 +
.../setup/models/fluid_model/index.html | 79 +
docs/about/modelling/setup/models/index.html | 28 +
.../setup/models/turbine_modeling/index.html | 38 +
.../modelling/setup/time_series/index.html | 42 +
.../modelling/setup/variables/index.html | 30 +
.../theory/compressor_modelling/index.html | 55 +
docs/about/modelling/theory/index.html | 13 +
.../theory/pump_modelling/index.html | 21 +
.../workflow/generic_workflow/index.html | 56 +
docs/about/modelling/workflow/index.html | 13 +
docs/about/references/ADJUSTMENT/index.html | 35 +
docs/about/references/CABLE_LOSS/index.html | 24 +
.../references/CALCULATE_MAX_RATE/index.html | 32 +
docs/about/references/CATEGORY/index.html | 37 +
docs/about/references/CHART_TYPE/index.html | 27 +
docs/about/references/COMPOSITION/index.html | 38 +
.../references/COMPRESSOR_CHART/index.html | 24 +
.../references/COMPRESSOR_MODEL/index.html | 22 +
.../references/COMPRESSOR_SYSTEM/index.html | 31 +
.../references/COMPRESSOR_TRAIN/index.html | 18 +
.../COMPRESSOR_TRAIN_MODEL/index.html | 26 +
docs/about/references/CONDITION/index.html | 32 +
docs/about/references/CONDITIONS/index.html | 22 +
docs/about/references/CONSTANT/index.html | 28 +
docs/about/references/CONSUMERS/index.html | 25 +
.../CONSUMPTION_RATE_TYPE/index.html | 42 +
.../references/CONTROL_MARGIN/index.html | 54 +
.../references/CONTROL_MARGIN_UNIT/index.html | 27 +
docs/about/references/CROSSOVER/index.html | 24 +
docs/about/references/CURVE/index.html | 20 +
docs/about/references/CURVES/index.html | 20 +
docs/about/references/DESIGN_HEAD/index.html | 21 +
docs/about/references/DESIGN_RATE/index.html | 21 +
.../references/DIRECT_EMITTERS/index.html | 30 +
.../references/DISCHARGE_PRESSURE/index.html | 26 +
.../DOWNSTREAM_PRESSURE_CONTROL/index.html | 25 +
docs/about/references/EFFICIENCY/index.html | 29 +
.../references/ELECTRICITY2FUEL/index.html | 36 +
docs/about/references/EMISSION/index.html | 30 +
docs/about/references/EMISSIONS/index.html | 52 +
.../about/references/EMISSION_NAME/index.html | 30 +
.../about/references/EMISSION_RATE/index.html | 27 +
.../about/references/EMITTER_MODEL/index.html | 32 +
docs/about/references/END/index.html | 28 +
.../references/ENERGYFUNCTION/index.html | 30 +
.../references/ENERGY_USAGE_MODEL/index.html | 38 +
docs/about/references/EOS_MODEL/index.html | 28 +
docs/about/references/EXPRESSION/index.html | 25 +
.../about/references/EXTRAPOLATION/index.html | 27 +
.../references/FACILITY_INPUTS/index.html | 34 +
docs/about/references/FACTOR/index.html | 39 +
docs/about/references/FILE/index.html | 22 +
.../about/references/FLUID_DENSITY/index.html | 24 +
docs/about/references/FLUID_MODEL/index.html | 19 +
.../references/FLUID_MODEL_TYPE/index.html | 21 +
docs/about/references/FUEL/index.html | 29 +
.../about/references/FUELCONSUMERS/index.html | 26 +
docs/about/references/FUELRATE/index.html | 28 +
docs/about/references/FUEL_TYPES/index.html | 21 +
docs/about/references/GAS_TYPE/index.html | 29 +
.../about/references/GENERATORSETS/index.html | 24 +
docs/about/references/HCEXPORT/index.html | 36 +
docs/about/references/HEAD/index.html | 30 +
docs/about/references/HEAD_MARGIN/index.html | 29 +
.../INFLUENCE_TIME_VECTOR/index.html | 23 +
.../references/INLET_TEMPERATURE/index.html | 23 +
.../about/references/INSTALLATIONS/index.html | 19 +
.../references/INTERPOLATION_TYPE/index.html | 47 +
.../INTERSTAGE_CONTROL_PRESSURE/index.html | 37 +
docs/about/references/LOAD/index.html | 24 +
.../references/LOWER_HEATING_VALUE/index.html | 21 +
.../MAXIMUM_DISCHARGE_PRESSURE/index.html | 27 +
.../about/references/MAXIMUM_POWER/index.html | 21 +
.../index.html | 26 +
.../MAX_USAGE_FROM_SHORE/index.html | 22 +
docs/about/references/MODELS/index.html | 35 +
docs/about/references/NAME/index.html | 25 +
.../OPERATIONAL_SETTINGS/index.html | 83 +
.../POLYTROPIC_EFFICIENCY/index.html | 22 +
.../references/POWERLOSSFACTOR/index.html | 28 +
.../POWER_ADJUSTMENT_CONSTANT/index.html | 21 +
.../references/PRESSURE_CONTROL/index.html | 34 +
.../PRESSURE_DROP_AHEAD_OF_STAGE/index.html | 25 +
docs/about/references/PUMPS/index.html | 25 +
docs/about/references/RATE/index.html | 42 +
.../references/RATE_FRACTIONS/index.html | 21 +
.../references/RATE_PER_STREAM/index.html | 24 +
docs/about/references/REGULARITY/index.html | 60 +
docs/about/references/STAGES/index.html | 53 +
docs/about/references/START/index.html | 32 +
docs/about/references/STREAM/index.html | 24 +
docs/about/references/STREAMS/index.html | 27 +
.../references/SUCTION_PRESSURE/index.html | 27 +
docs/about/references/TIME_SERIES/index.html | 32 +
.../references/TOTAL_SYSTEM_RATE/index.html | 25 +
.../TURBINE_EFFICIENCIES/index.html | 20 +
.../about/references/TURBINE_LOADS/index.html | 20 +
.../about/references/TURBINE_MODEL/index.html | 20 +
docs/about/references/TYPE/index.html | 58 +
docs/about/references/UNIT/index.html | 27 +
docs/about/references/UNITS/index.html | 26 +
.../UPSTREAM_PRESSURE_CONTROL/index.html | 25 +
docs/about/references/VARIABLES/index.html | 18 +
.../references/VENTING_EMITTERS/index.html | 53 +
docs/about/references/VOLUME/index.html | 24 +
docs/about/references/include/index.html | 37 +
docs/about/references/index.html | 18 +
docs/category/documentation/index.html | 13 +
docs/category/guides/index.html | 13 +
docs/changelog/index.html | 1110 +
docs/changelog/v7-0-release/index.html | 65 +
docs/changelog/v7-1-release/index.html | 63 +
docs/changelog/v7-2-release/index.html | 59 +
docs/changelog/v7-3-release/index.html | 33 +
docs/changelog/v7-4-release/index.html | 64 +
docs/changelog/v7-5-release/index.html | 66 +
docs/changelog/v7-6-release/index.html | 18 +
docs/changelog/v8.0-release/index.html | 62 +
docs/changelog/v8.1-release/index.html | 32 +
docs/changelog/v8.10-release/index.html | 21 +
docs/changelog/v8.11-release/index.html | 19 +
docs/changelog/v8.12-release/index.html | 22 +
docs/changelog/v8.13-release/index.html | 36 +
docs/changelog/v8.14-release/index.html | 17 +
docs/changelog/v8.15-release/index.html | 23 +
docs/changelog/v8.16-release/index.html | 38 +
docs/changelog/v8.17-release/index.html | 17 +
docs/changelog/v8.18-release/index.html | 32 +
docs/changelog/v8.19-release/index.html | 23 +
docs/changelog/v8.2-release/index.html | 28 +
docs/changelog/v8.20-release/index.html | 17 +
docs/changelog/v8.21-release/index.html | 23 +
docs/changelog/v8.22-release/index.html | 38 +
docs/changelog/v8.23-release/index.html | 27 +
docs/changelog/v8.24-release/index.html | 17 +
docs/changelog/v8.25-release/index.html | 19 +
docs/changelog/v8.26-release/index.html | 21 +
docs/changelog/v8.3-release/index.html | 29 +
docs/changelog/v8.4-release/index.html | 29 +
docs/changelog/v8.5-release/index.html | 28 +
docs/changelog/v8.6-release/index.html | 28 +
docs/changelog/v8.7-release/index.html | 29 +
docs/changelog/v8.8-release/index.html | 21 +
docs/changelog/v9-1-release/index.html | 25 +
docs/changelog/v9.0-release/index.html | 23 +
.../documentation/index.html | 44 +
.../documentation-guide/markdown/index.html | 21 +
docs/contribute/get_started/index.html | 92 +
.../guides/conventional_commits/index.html | 24 +
docs/contribute/guides/git/index.html | 135 +
docs/tags/e-calc/index.html | 13 +
docs/tags/index.html | 13 +
docs/tags/release/index.html | 13 +
img/docs/asgb/asgb_lpp3_pd.png | Bin 0 -> 8296 bytes
...sgb_lpp3_predef_fuel_result_comparison.png | Bin 0 -> 150658 bytes
img/docs/asgb/asgb_lpp3_predef_stage1.png | Bin 0 -> 19860 bytes
.../asgb/asgb_lpp3_predef_stage1_2031.png | Bin 0 -> 19734 bytes
img/docs/asgb/asgb_lpp3_predef_stage2.png | Bin 0 -> 18719 bytes
.../asgb/asgb_lpp3_predef_stage2_2031.png | Bin 0 -> 16372 bytes
img/docs/asgb/asgb_lpp3_ps.png | Bin 0 -> 9080 bytes
img/docs/asgb/asgb_lpp3_sketch.png | Bin 0 -> 62437 bytes
.../asgb_lpp3_sys26_capacity_and_rate.png | Bin 0 -> 11469 bytes
.../asgb_lpp3_sys26_maxcapacity_at_pd200.png | Bin 0 -> 7903 bytes
.../asgb_lpp3_sys26_maxcapacity_at_pd250.png | Bin 0 -> 6555 bytes
...gb_lpp3_sys26_maxcapacity_at_pdsurface.png | Bin 0 -> 25407 bytes
.../asgb_lpp3_sys26_stage1_at_ps31pd250.png | Bin 0 -> 40153 bytes
.../asgb_lpp3_sys26_stage2_at_ps31pd250.png | Bin 0 -> 50587 bytes
.../asgb_lpp3_sys27_capacity_and_rate.png | Bin 0 -> 13313 bytes
.../asgb_lpp3_sys27_crossover_and_mode.png | Bin 0 -> 12063 bytes
img/docs/asgb/asgb_lpp3_sys27_gasrate.png | Bin 0 -> 12245 bytes
.../asgb/asgb_lpp3_sys27_rate_and_mode.png | Bin 0 -> 16959 bytes
img/docs/asgb/asgb_lpp3_timeline.png | Bin 0 -> 12064 bytes
img/docs/asgb/asgb_lpp3_unisim_stage1.png | Bin 0 -> 40526 bytes
.../asgb/asgb_lpp3_unisim_stage1_filtered.png | Bin 0 -> 28371 bytes
img/docs/asgb/asgb_lpp3_unisim_stage2.png | Bin 0 -> 46287 bytes
.../asgb/asgb_lpp3_unisim_stage2_filtered.png | Bin 0 -> 40488 bytes
img/docs/asgb/asgb_sys27a_unisim_model.png | Bin 0 -> 11965 bytes
.../asgb_sys27a_unisim_model_filtered.png | Bin 0 -> 7718 bytes
.../asgb/ecalc_generic_chart_normalized.png | Bin 0 -> 21903 bytes
.../asgb/ecalc_generic_chart_original.png | Bin 0 -> 26035 bytes
img/docs/changed_rate_resampling.png | Bin 0 -> 237031 bytes
img/docs/interpolation_plot.png | Bin 0 -> 16617 bytes
img/docusaurus.png | Bin 0 -> 5142 bytes
img/favicon.svg | 3 +
img/logo.svg | 16 +
img/undraw_docusaurus_mountain.svg | 171 +
img/undraw_docusaurus_react.svg | 170 +
img/undraw_docusaurus_tree.svg | 40 +
index.html | 13 +
search-index.json | 1 +
search/index.html | 13 +
sitemap.xml | 1 +
659 files changed, 381419 insertions(+)
create mode 100644 .nojekyll
create mode 100644 404.html
create mode 100644 assets/css/styles.c56e74c6.css
create mode 100644 assets/files/ecalc_json_schema-d910dbf0482722be733110958da420f0.json
create mode 100644 assets/images/asv_recycling-8cbf643933baa1262460838cc4b483ae.png
create mode 100644 assets/images/changed_rate_resampling-1618c246583304921e59eced813219f2.png
create mode 100644 assets/images/compressor_chart_surge_control_margin_line-98e32f3b0d5332a371ec4bb2dbc66da8.png
create mode 100644 assets/images/control_mechanisms_variable_speed_compressor_chart-74501f10294f5dd339dba1a305bbe3f6.png
create mode 100644 assets/images/downstream_choking-e0ac6b7a8379c76a8f29199d7aa9086c.png
create mode 100644 assets/images/ecalc_compressor_train_common_shaft_with_turbine_additional_pressure-c971bb4cd1ee2f4d1cd9827d6231364c.png
create mode 100644 assets/images/ecalc_general_consumer_overview-26f2e87a69f9a685f123b818e6bed313.png
create mode 100644 assets/images/ecalc_illustration-9c9342f8d3a926d760096a17ccb76556.svg
create mode 100644 assets/images/generic_unified_compressor_chart-ba6f49b5df22923cfcbe4d5d2aa4525b.png
create mode 100644 assets/images/interpolation_plot-d4eee4126032e046bf374ef66ceb9946.png
create mode 100644 assets/images/make_recirculation_pressure_control_plot-527cac79a8c53527147492b170308459.png
create mode 100644 assets/images/process_compressor-3493b127c832898d93b5231594efa8d3.png
create mode 100644 assets/images/process_compressor_chart-28c5f110972461aba840e82b0962c3d2.png
create mode 100644 assets/images/process_compressor_train_multiple_streams-415751902a6078520845f70740eaa1af.png
create mode 100644 assets/images/pumpchart_eff-136e9a9dd1af0700084ddf17be0d4453.PNG
create mode 100644 assets/images/pumpchart_head-ec0fc7f624752c8c95bd7c3f828090a3.PNG
create mode 100644 assets/images/regularity-3e43516a1e0246a2e125d4980006b137.png
create mode 100644 assets/images/simple_facility_pfd-ad59578d69ea3d3267f646b9d8141822.jpg
create mode 100644 assets/images/upstream_choking-dc5aedeb280843ea22445ce83731b8dc.png
create mode 100644 assets/images/validity_flag_example-5b8c9832693a18b6500cf408c0b4873b.png
create mode 100644 assets/images/variable_speed_compressor_chart-3363c0ba3fb148d87fb7af7b3163f6eb.png
create mode 100644 assets/js/00bdc23f.66d5f21c.js
create mode 100644 assets/js/017b0cbc.b15c597b.js
create mode 100644 assets/js/03dfed1e.567e449b.js
create mode 100644 assets/js/0425b884.72278814.js
create mode 100644 assets/js/058ad5bf.0c0d810d.js
create mode 100644 assets/js/06543a48.5310234a.js
create mode 100644 assets/js/0673f3d8.5a6cdc86.js
create mode 100644 assets/js/0745e7f0.1a08a580.js
create mode 100644 assets/js/09bd96eb.86e1b386.js
create mode 100644 assets/js/0a776dcb.a4df551c.js
create mode 100644 assets/js/0c22fffd.17c55f18.js
create mode 100644 assets/js/0fd76486.3776b2de.js
create mode 100644 assets/js/0ffabbb0.2d4eff62.js
create mode 100644 assets/js/104.f537a977.js
create mode 100644 assets/js/1169.f5af047e.js
create mode 100644 assets/js/1176.ef72ee50.js
create mode 100644 assets/js/130.def7e228.js
create mode 100644 assets/js/1329.ddd40c79.js
create mode 100644 assets/js/138e0e15.7676a675.js
create mode 100644 assets/js/141.07a41e87.js
create mode 100644 assets/js/141.66a6bac6.js
create mode 100644 assets/js/144.5bfdb681.js
create mode 100644 assets/js/147b5d1b.11846856.js
create mode 100644 assets/js/14eb3368.450e3902.js
create mode 100644 assets/js/151edf84.8337283a.js
create mode 100644 assets/js/155359f6.f5f625c3.js
create mode 100644 assets/js/16059610.c4c04ce2.js
create mode 100644 assets/js/163.6fc638f7.js
create mode 100644 assets/js/163041ea.383f62ba.js
create mode 100644 assets/js/1689.b7c1e40a.js
create mode 100644 assets/js/17896441.76e45139.js
create mode 100644 assets/js/17896441.76e45139.js.LICENSE.txt
create mode 100644 assets/js/18b0ec42.2ac73a22.js
create mode 100644 assets/js/1987.f09f6aaa.js
create mode 100644 assets/js/1a4e3797.df845592.js
create mode 100644 assets/js/1c663d3d.d38f16f7.js
create mode 100644 assets/js/1d55f518.ed9ff422.js
create mode 100644 assets/js/1df93b7f.7976f793.js
create mode 100644 assets/js/1eb7400c.99dbd36c.js
create mode 100644 assets/js/1f60d0d4.22494f28.js
create mode 100644 assets/js/1f7805b6.29cce52e.js
create mode 100644 assets/js/20703393.b1647309.js
create mode 100644 assets/js/2121587b.6744d348.js
create mode 100644 assets/js/2130.c5e4f4c2.js
create mode 100644 assets/js/2144.04bef282.js
create mode 100644 assets/js/218ce29d.b7d66088.js
create mode 100644 assets/js/2237.308b3350.js
create mode 100644 assets/js/2315.c38004ef.js
create mode 100644 assets/js/277de022.18fd3489.js
create mode 100644 assets/js/27b97f54.4c21a317.js
create mode 100644 assets/js/281e4beb.dea8f301.js
create mode 100644 assets/js/282c1cc9.73879b24.js
create mode 100644 assets/js/292.857c4588.js
create mode 100644 assets/js/2924e06f.4213d1b7.js
create mode 100644 assets/js/2b2be347.21292636.js
create mode 100644 assets/js/2b47973a.d76292a7.js
create mode 100644 assets/js/2b572af2.2a5b2378.js
create mode 100644 assets/js/2ce3b5da.74f40356.js
create mode 100644 assets/js/2cedaf2f.7266b378.js
create mode 100644 assets/js/2fdfb4de.b265933e.js
create mode 100644 assets/js/315.b7a4b027.js
create mode 100644 assets/js/32311569.ecdf1b16.js
create mode 100644 assets/js/329.caf89843.js
create mode 100644 assets/js/3292.9f8d4611.js
create mode 100644 assets/js/33498b04.24d4ee8e.js
create mode 100644 assets/js/3390a8e0.280e220b.js
create mode 100644 assets/js/33fb585a.0eed8140.js
create mode 100644 assets/js/3409ab5c.07103752.js
create mode 100644 assets/js/3417.86c7c365.js
create mode 100644 assets/js/3451a9ae.a366cef9.js
create mode 100644 assets/js/34864e1f.78d111db.js
create mode 100644 assets/js/3687.39ae53e0.js
create mode 100644 assets/js/3720c009.784ce305.js
create mode 100644 assets/js/386ea0a5.a59c5988.js
create mode 100644 assets/js/38d592cf.4449eff9.js
create mode 100644 assets/js/3ac409ea.7672fae2.js
create mode 100644 assets/js/3be812e9.2ce31a7e.js
create mode 100644 assets/js/3d5bbd33.c1ee4223.js
create mode 100644 assets/js/3e38e310.5f46b2fe.js
create mode 100644 assets/js/4073.7922f135.js
create mode 100644 assets/js/40912a5c.b11b4ca5.js
create mode 100644 assets/js/40d6382c.51be8feb.js
create mode 100644 assets/js/4104.f910d614.js
create mode 100644 assets/js/417.24cbf29e.js
create mode 100644 assets/js/41ab033f.7482b62d.js
create mode 100644 assets/js/428320b6.4cd048f4.js
create mode 100644 assets/js/42b1e060.c0b5850f.js
create mode 100644 assets/js/4358a0b2.1cc97b8a.js
create mode 100644 assets/js/43a1031a.0a2d738e.js
create mode 100644 assets/js/43a26e71.dd67e435.js
create mode 100644 assets/js/4424673c.34b787c0.js
create mode 100644 assets/js/4529.1f834603.js
create mode 100644 assets/js/4564.1dd843c5.js
create mode 100644 assets/js/45c974ba.0b665fc2.js
create mode 100644 assets/js/465c5577.777fdbe2.js
create mode 100644 assets/js/46613219.210a2a47.js
create mode 100644 assets/js/469.7a9e2f6f.js
create mode 100644 assets/js/46d94f2f.f31ef3b8.js
create mode 100644 assets/js/47daf389.a34e589e.js
create mode 100644 assets/js/489.5e628191.js
create mode 100644 assets/js/489.5e628191.js.LICENSE.txt
create mode 100644 assets/js/495.21267086.js
create mode 100644 assets/js/495.21267086.js.LICENSE.txt
create mode 100644 assets/js/495.a8d47168.js
create mode 100644 assets/js/496ed8d5.f95fcc04.js
create mode 100644 assets/js/498bfcff.79dc88fb.js
create mode 100644 assets/js/4aa4fc36.e9e47236.js
create mode 100644 assets/js/4b5a01f9.6ef3d6d0.js
create mode 100644 assets/js/4b80f681.b7e2b496.js
create mode 100644 assets/js/4d8633af.c131feaf.js
create mode 100644 assets/js/4ee97ba8.9f4c6982.js
create mode 100644 assets/js/5163.6c850069.js
create mode 100644 assets/js/529.287c6ecb.js
create mode 100644 assets/js/5394.ec8f3b81.js
create mode 100644 assets/js/5628.5b37a687.js
create mode 100644 assets/js/564.d069b264.js
create mode 100644 assets/js/56baec0c.15385c7f.js
create mode 100644 assets/js/5741.3f175718.js
create mode 100644 assets/js/5785ef4b.5a8eff10.js
create mode 100644 assets/js/5857.7495e89d.js
create mode 100644 assets/js/5860.05504350.js
create mode 100644 assets/js/5920dbec.865006f6.js
create mode 100644 assets/js/5b24544a.354ee6cb.js
create mode 100644 assets/js/5bfc86d7.32a3926b.js
create mode 100644 assets/js/5c08a402.656b6c7e.js
create mode 100644 assets/js/5c8ec56d.16d6c1af.js
create mode 100644 assets/js/5da39e49.02bbf67e.js
create mode 100644 assets/js/5e10e9e1.8733fcd6.js
create mode 100644 assets/js/5e95c892.084f3624.js
create mode 100644 assets/js/5f3f5785.ffeee995.js
create mode 100644 assets/js/60c8c0f3.1229e49d.js
create mode 100644 assets/js/625.7c210cc1.js
create mode 100644 assets/js/6268ac32.86d2733f.js
create mode 100644 assets/js/628.f908b292.js
create mode 100644 assets/js/62f9a98c.23d094ad.js
create mode 100644 assets/js/63091997.747d23e4.js
create mode 100644 assets/js/637c67a5.a02e564b.js
create mode 100644 assets/js/63ecd22d.0a5816d7.js
create mode 100644 assets/js/63f63b83.bc4fafbb.js
create mode 100644 assets/js/6406f263.f9be9ff7.js
create mode 100644 assets/js/64d2b91f.dbbe6108.js
create mode 100644 assets/js/6625.5d9eafb1.js
create mode 100644 assets/js/66286265.39cf8098.js
create mode 100644 assets/js/6711f262.25b663bb.js
create mode 100644 assets/js/6770.6224bf21.js
create mode 100644 assets/js/682b2100.74c56514.js
create mode 100644 assets/js/687.1f45b64b.js
create mode 100644 assets/js/689.95bbd132.js
create mode 100644 assets/js/69fd9be6.cbada077.js
create mode 100644 assets/js/6a04e9fa.56795369.js
create mode 100644 assets/js/6a216250.bfc7f6f2.js
create mode 100644 assets/js/6adcc868.4aa146e1.js
create mode 100644 assets/js/6b1cdc5e.23acb505.js
create mode 100644 assets/js/6b8f95a4.fd5cf9c9.js
create mode 100644 assets/js/6bf1c518.a41f29cd.js
create mode 100644 assets/js/6bf367cb.6058d350.js
create mode 100644 assets/js/6eb500eb.c1ddc254.js
create mode 100644 assets/js/6f2c9828.e0006080.js
create mode 100644 assets/js/70bbd824.a5ac8cee.js
create mode 100644 assets/js/711.19940302.js
create mode 100644 assets/js/721cfe60.f1ac0539.js
create mode 100644 assets/js/73.5c54446f.js
create mode 100644 assets/js/741de8b7.b0766c91.js
create mode 100644 assets/js/7557b935.6b6bffb7.js
create mode 100644 assets/js/75df07ec.a7ff5f37.js
create mode 100644 assets/js/770.feedd412.js
create mode 100644 assets/js/78771141.542d28f0.js
create mode 100644 assets/js/7899.81ee6753.js
create mode 100644 assets/js/7b02141e.324a3fad.js
create mode 100644 assets/js/7be299fb.e0a783e4.js
create mode 100644 assets/js/7d3b81bb.c327fe31.js
create mode 100644 assets/js/7d9552c0.fff8bb86.js
create mode 100644 assets/js/7db788f5.cdf881d0.js
create mode 100644 assets/js/7e6991bb.03ac52ca.js
create mode 100644 assets/js/7eb3a421.4f947033.js
create mode 100644 assets/js/8146.38f902ca.js
create mode 100644 assets/js/81dd00c5.bdfc871f.js
create mode 100644 assets/js/83ed74d7.558311cb.js
create mode 100644 assets/js/841adc37.26b5c8c8.js
create mode 100644 assets/js/846.7ce979e9.js
create mode 100644 assets/js/857.4dc6b3f4.js
create mode 100644 assets/js/85cb5dc7.4db0a746.js
create mode 100644 assets/js/8846.e65b3b4d.js
create mode 100644 assets/js/8859d7a9.7d814690.js
create mode 100644 assets/js/8961bfac.95578cae.js
create mode 100644 assets/js/8989.d1ab2708.js
create mode 100644 assets/js/8995.927f5d68.js
create mode 100644 assets/js/8a4fc9f1.6a8ce834.js
create mode 100644 assets/js/8abfe720.417e7671.js
create mode 100644 assets/js/8bcf6c84.bdd49444.js
create mode 100644 assets/js/8d2ce0de.05db6a6e.js
create mode 100644 assets/js/908e0101.9f66b67f.js
create mode 100644 assets/js/9312.a4899f67.js
create mode 100644 assets/js/95bf0c8c.21e11369.js
create mode 100644 assets/js/96533a10.b3a8cad4.js
create mode 100644 assets/js/9680e89f.4f53056e.js
create mode 100644 assets/js/971.cfbbdca8.js
create mode 100644 assets/js/971.e694b620.js
create mode 100644 assets/js/989.c9a87419.js
create mode 100644 assets/js/9a118db7.e0e710f7.js
create mode 100644 assets/js/9a7150ac.cceeda90.js
create mode 100644 assets/js/9ac5a6f1.75350006.js
create mode 100644 assets/js/9bc42851.412baac7.js
create mode 100644 assets/js/9caa4dca.f5d5fbe0.js
create mode 100644 assets/js/9d1a436a.074df0a4.js
create mode 100644 assets/js/9d87d0ad.73800669.js
create mode 100644 assets/js/9df3a417.4468ca67.js
create mode 100644 assets/js/9e136365.0ca05f05.js
create mode 100644 assets/js/9e91bf8d.3f92c5f9.js
create mode 100644 assets/js/9f62981a.5e92dfad.js
create mode 100644 assets/js/9fe770c0.123911d0.js
create mode 100644 assets/js/a1e1f72e.a12161b6.js
create mode 100644 assets/js/a2e97e20.bf98d1ec.js
create mode 100644 assets/js/a359a99b.b9879044.js
create mode 100644 assets/js/a592ae15.2b39f39d.js
create mode 100644 assets/js/a5dcc804.396480f9.js
create mode 100644 assets/js/a7456010.6958eccd.js
create mode 100644 assets/js/a7bd4aaa.ac02ed0d.js
create mode 100644 assets/js/a89a20bc.e0dbdb35.js
create mode 100644 assets/js/a94703ab.77575623.js
create mode 100644 assets/js/aae5f4ca.bb5e530c.js
create mode 100644 assets/js/aba21aa0.c774b9b6.js
create mode 100644 assets/js/ad129716.3e146e2e.js
create mode 100644 assets/js/aedaac15.264095c6.js
create mode 100644 assets/js/af105519.56e01e4d.js
create mode 100644 assets/js/b2f67940.613a0d26.js
create mode 100644 assets/js/b3a1f60f.9e9e20e1.js
create mode 100644 assets/js/b9581e7f.d87aa9cc.js
create mode 100644 assets/js/ba0ab229.81ad1631.js
create mode 100644 assets/js/bb45b332.933ee4bf.js
create mode 100644 assets/js/bc72d23a.6aa5c10d.js
create mode 100644 assets/js/bdf25f4c.7ae1f63d.js
create mode 100644 assets/js/bf562633.864aa652.js
create mode 100644 assets/js/bfdf430b.21810c64.js
create mode 100644 assets/js/bffc9314.71323be9.js
create mode 100644 assets/js/c127897d.80dabf97.js
create mode 100644 assets/js/c1f3bf99.6a3b4b8d.js
create mode 100644 assets/js/c240171b.ba77aa57.js
create mode 100644 assets/js/c90bf1e8.4616fd83.js
create mode 100644 assets/js/cbac54c5.746e1d32.js
create mode 100644 assets/js/cbf35f3a.89e1e3fa.js
create mode 100644 assets/js/cda37ba5.0a01ec17.js
create mode 100644 assets/js/ce0c4b55.d9f7da32.js
create mode 100644 assets/js/d20656b7.4d9e502c.js
create mode 100644 assets/js/d2279440.c199f0c6.js
create mode 100644 assets/js/d3d733e5.c16c0a33.js
create mode 100644 assets/js/d5cd246e.5d533a23.js
create mode 100644 assets/js/d708d793.49998533.js
create mode 100644 assets/js/d857f50e.ac4e457f.js
create mode 100644 assets/js/d8846ffb.084e4a37.js
create mode 100644 assets/js/d8c9bd2d.6105424d.js
create mode 100644 assets/js/d90d1a18.bd7b0cd9.js
create mode 100644 assets/js/d9a6ba4c.f573b5d9.js
create mode 100644 assets/js/dcab5fea.bd7ad1bd.js
create mode 100644 assets/js/de3649f0.2d88cccf.js
create mode 100644 assets/js/df203c0f.f449b894.js
create mode 100644 assets/js/dfbab2f3.901bcaba.js
create mode 100644 assets/js/e1df8231.b1244533.js
create mode 100644 assets/js/e2712b99.282d782f.js
create mode 100644 assets/js/e5622214.ad407cb7.js
create mode 100644 assets/js/e64a1018.1f5145d5.js
create mode 100644 assets/js/e8ebc025.a7473e7b.js
create mode 100644 assets/js/e9e63826.0a978166.js
create mode 100644 assets/js/ea18955c.e08b7ef2.js
create mode 100644 assets/js/eab951c7.d3aa6a07.js
create mode 100644 assets/js/eb609ab0.658fa422.js
create mode 100644 assets/js/eb949326.e491ee79.js
create mode 100644 assets/js/ebdd570f.12240552.js
create mode 100644 assets/js/ed5b25aa.7bc95883.js
create mode 100644 assets/js/ed6dee8b.168a500a.js
create mode 100644 assets/js/edb3a98b.a789225f.js
create mode 100644 assets/js/eee46244.5cdfbdd9.js
create mode 100644 assets/js/f054b415.ddae0d3b.js
create mode 100644 assets/js/f256795b.08d49ac5.js
create mode 100644 assets/js/f469c95f.d43928c8.js
create mode 100644 assets/js/f4c60d9f.0b33cb43.js
create mode 100644 assets/js/f52ed7e3.e35d875f.js
create mode 100644 assets/js/f577f5c2.14b35249.js
create mode 100644 assets/js/f92867ed.7e67b420.js
create mode 100644 assets/js/fa0b6059.2f627b0c.js
create mode 100644 assets/js/fa3d98bd.76d300f3.js
create mode 100644 assets/js/fba8a418.751544b2.js
create mode 100644 assets/js/fcc523f6.067010b7.js
create mode 100644 assets/js/fe44757f.0c0de2c3.js
create mode 100644 assets/js/fedb6237.5b3f7f78.js
create mode 100644 assets/js/main.37ac598c.js
create mode 100644 assets/js/main.37ac598c.js.LICENSE.txt
create mode 100644 assets/js/runtime~main.b6a7ada0.js
create mode 100644 docs/about/getting_started/api/index.html
create mode 100644 docs/about/getting_started/api/libecalc.html
create mode 100644 docs/about/getting_started/api/libecalc/common.html
create mode 100644 docs/about/getting_started/api/libecalc/common/chart_type.html
create mode 100644 docs/about/getting_started/api/libecalc/common/component_info.html
create mode 100644 docs/about/getting_started/api/libecalc/common/component_info/component_level.html
create mode 100644 docs/about/getting_started/api/libecalc/common/component_info/compressor.html
create mode 100644 docs/about/getting_started/api/libecalc/common/component_type.html
create mode 100644 docs/about/getting_started/api/libecalc/common/consumer_type.html
create mode 100644 docs/about/getting_started/api/libecalc/common/consumption_type.html
create mode 100644 docs/about/getting_started/api/libecalc/common/datetime.html
create mode 100644 docs/about/getting_started/api/libecalc/common/datetime/utils.html
create mode 100644 docs/about/getting_started/api/libecalc/common/decorators.html
create mode 100644 docs/about/getting_started/api/libecalc/common/decorators/capturer.html
create mode 100644 docs/about/getting_started/api/libecalc/common/decorators/feature_flags.html
create mode 100644 docs/about/getting_started/api/libecalc/common/discriminator_fallback.html
create mode 100644 docs/about/getting_started/api/libecalc/common/energy_model_type.html
create mode 100644 docs/about/getting_started/api/libecalc/common/energy_usage_type.html
create mode 100644 docs/about/getting_started/api/libecalc/common/errors.html
create mode 100644 docs/about/getting_started/api/libecalc/common/errors/exceptions.html
create mode 100644 docs/about/getting_started/api/libecalc/common/fixed_speed_pressure_control.html
create mode 100644 docs/about/getting_started/api/libecalc/common/fluid.html
create mode 100644 docs/about/getting_started/api/libecalc/common/fluid_stream_type.html
create mode 100644 docs/about/getting_started/api/libecalc/common/graph.html
create mode 100644 docs/about/getting_started/api/libecalc/common/list.html
create mode 100644 docs/about/getting_started/api/libecalc/common/list/adjustment.html
create mode 100644 docs/about/getting_started/api/libecalc/common/list/list_utils.html
create mode 100644 docs/about/getting_started/api/libecalc/common/logger.html
create mode 100644 docs/about/getting_started/api/libecalc/common/math.html
create mode 100644 docs/about/getting_started/api/libecalc/common/math/math_utils.html
create mode 100644 docs/about/getting_started/api/libecalc/common/math/numbers.html
create mode 100644 docs/about/getting_started/api/libecalc/common/priorities.html
create mode 100644 docs/about/getting_started/api/libecalc/common/priority_optimizer.html
create mode 100644 docs/about/getting_started/api/libecalc/common/run_info.html
create mode 100644 docs/about/getting_started/api/libecalc/common/serializable_chart.html
create mode 100644 docs/about/getting_started/api/libecalc/common/stream_conditions.html
create mode 100644 docs/about/getting_started/api/libecalc/common/string.html
create mode 100644 docs/about/getting_started/api/libecalc/common/string/string_utils.html
create mode 100644 docs/about/getting_started/api/libecalc/common/tabular_time_series.html
create mode 100644 docs/about/getting_started/api/libecalc/common/temporal_model.html
create mode 100644 docs/about/getting_started/api/libecalc/common/time_utils.html
create mode 100644 docs/about/getting_started/api/libecalc/common/units.html
create mode 100644 docs/about/getting_started/api/libecalc/common/variables.html
create mode 100644 docs/about/getting_started/api/libecalc/common/version.html
create mode 100644 docs/about/getting_started/api/libecalc/domain.html
create mode 100644 docs/about/getting_started/api/libecalc/domain/stream_conditions.html
create mode 100644 docs/about/getting_started/api/libecalc/domain/tabular.html
create mode 100644 docs/about/getting_started/api/libecalc/domain/tabular/exceptions.html
create mode 100644 docs/about/getting_started/api/libecalc/domain/tabular/tabular.html
create mode 100644 docs/about/getting_started/api/libecalc/dto.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/base.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/component_graph.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/components.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/core_specs.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/core_specs/base.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/core_specs/base/operational_settings.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/core_specs/compressor.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/core_specs/compressor/operational_settings.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/core_specs/pump.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/core_specs/pump/operational_settings.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/core_specs/system.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/emission.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/fuel_type.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/models.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/models/base.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/models/chart.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/models/compressor.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/models/compressor/base.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/models/compressor/chart.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/models/compressor/sampled.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/models/compressor/stage.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/models/compressor/train.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/models/consumer_system.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/models/direct.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/models/generator_set.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/models/pump.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/models/sampled.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/models/tabulated.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/models/turbine.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/node_info.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/result_options.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/types.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/utils.html
create mode 100644 docs/about/getting_started/api/libecalc/dto/utils/validators.html
create mode 100644 docs/about/getting_started/api/libecalc/examples.html
create mode 100644 docs/about/getting_started/api/libecalc/examples/advanced.html
create mode 100644 docs/about/getting_started/api/libecalc/examples/simple.html
create mode 100644 docs/about/getting_started/api/libecalc/expression.html
create mode 100644 docs/about/getting_started/api/libecalc/expression/expression.html
create mode 100644 docs/about/getting_started/api/libecalc/expression/expression_evaluator.html
create mode 100644 docs/about/getting_started/api/libecalc/infrastructure.html
create mode 100644 docs/about/getting_started/api/libecalc/infrastructure/file_io.html
create mode 100644 docs/about/getting_started/api/libecalc/infrastructure/file_utils.html
create mode 100644 docs/about/getting_started/api/libecalc/testing.html
create mode 100644 docs/about/getting_started/api/libecalc/testing/dto_energy_model.html
create mode 100644 docs/about/getting_started/api/libecalc/testing/yaml_builder.html
create mode 100644 docs/about/getting_started/api/libecalc/version.html
create mode 100644 docs/about/getting_started/cli/cli_reference/index.html
create mode 100644 docs/about/getting_started/cli/faq/index.html
create mode 100644 docs/about/getting_started/cli/index.html
create mode 100644 docs/about/getting_started/index.html
create mode 100644 docs/about/getting_started/library/index.html
create mode 100644 docs/about/getting_started/yaml/index.html
create mode 100644 docs/about/index.html
create mode 100644 docs/about/migration_guides/index.html
create mode 100644 docs/about/migration_guides/v7_to_v8/index.html
create mode 100644 docs/about/migration_guides/v8-1_to_v8-2/index.html
create mode 100644 docs/about/migration_guides/v8-2_to_v8-3/index.html
create mode 100644 docs/about/migration_guides/v8-3_to_v8-4/index.html
create mode 100644 docs/about/migration_guides/v8-5_to_v8-6/index.html
create mode 100644 docs/about/migration_guides/v8-6_to_v8-7/index.html
create mode 100644 docs/about/migration_guides/v8.12_to_v8.13/index.html
create mode 100644 docs/about/migration_guides/v8.13_to_v8.14/index.html
create mode 100644 docs/about/migration_guides/v8.15_to_v8.16/index.html
create mode 100644 docs/about/migration_guides/v8.22_to_v8.23/index.html
create mode 100644 docs/about/migration_guides/v8.26_to_v9.0/index.html
create mode 100644 docs/about/migration_guides/v8.7_to_v8.8/index.html
create mode 100644 docs/about/migration_guides/v8_to_v81/index.html
create mode 100644 docs/about/miscellaneous/index.html
create mode 100644 docs/about/modelling/course_material/advanced_invalid_timesteps/index.html
create mode 100644 docs/about/modelling/course_material/index.html
create mode 100644 docs/about/modelling/course_material/simple_invalid_timesteps/index.html
create mode 100644 docs/about/modelling/examples/advanced/index.html
create mode 100644 docs/about/modelling/examples/drogon/index.html
create mode 100644 docs/about/modelling/examples/index.html
create mode 100644 docs/about/modelling/examples/simple/index.html
create mode 100644 docs/about/modelling/index.html
create mode 100644 docs/about/modelling/setup/facility_inputs/generator_modelling/index.html
create mode 100644 docs/about/modelling/setup/facility_inputs/index.html
create mode 100644 docs/about/modelling/setup/facility_inputs/pump_modelling/index.html
create mode 100644 docs/about/modelling/setup/facility_inputs/pump_modelling/pump_charts/index.html
create mode 100644 docs/about/modelling/setup/facility_inputs/sampled_compressor_model/index.html
create mode 100644 docs/about/modelling/setup/facility_inputs/tabular/index.html
create mode 100644 docs/about/modelling/setup/file_format_and_syntax/expressions/index.html
create mode 100644 docs/about/modelling/setup/file_format_and_syntax/index.html
create mode 100644 docs/about/modelling/setup/fuel_types/index.html
create mode 100644 docs/about/modelling/setup/index.html
create mode 100644 docs/about/modelling/setup/installations/compressor_models_in_calculations/compressor/index.html
create mode 100644 docs/about/modelling/setup/installations/compressor_models_in_calculations/compressor_system/index.html
create mode 100644 docs/about/modelling/setup/installations/compressor_models_in_calculations/index.html
create mode 100644 docs/about/modelling/setup/installations/compressor_models_in_calculations/variable_speed_compressor_train_model_with_multiple_streams_and_pressures/index.html
create mode 100644 docs/about/modelling/setup/installations/direct_consumers/index.html
create mode 100644 docs/about/modelling/setup/installations/generator_sets_in_calculations/index.html
create mode 100644 docs/about/modelling/setup/installations/index.html
create mode 100644 docs/about/modelling/setup/installations/pump_models_in_calculations/index.html
create mode 100644 docs/about/modelling/setup/installations/tabular_models_in_calculations/index.html
create mode 100644 docs/about/modelling/setup/models/compressor_modelling/compressor_charts/index.html
create mode 100644 docs/about/modelling/setup/models/compressor_modelling/compressor_models_types/index.html
create mode 100644 docs/about/modelling/setup/models/compressor_modelling/compressor_models_types/simplified_variable_speed_compressor_train_model/index.html
create mode 100644 docs/about/modelling/setup/models/compressor_modelling/compressor_models_types/single_speed_compressor_train_model/index.html
create mode 100644 docs/about/modelling/setup/models/compressor_modelling/compressor_models_types/variable_speed_compressor_train_model/index.html
create mode 100644 docs/about/modelling/setup/models/compressor_modelling/compressor_models_types/variable_speed_compressor_train_model_with_multiple_streams_and_pressures/index.html
create mode 100644 docs/about/modelling/setup/models/compressor_modelling/fixed_speed_pressure_control/index.html
create mode 100644 docs/about/modelling/setup/models/compressor_modelling/index.html
create mode 100644 docs/about/modelling/setup/models/fluid_model/index.html
create mode 100644 docs/about/modelling/setup/models/index.html
create mode 100644 docs/about/modelling/setup/models/turbine_modeling/index.html
create mode 100644 docs/about/modelling/setup/time_series/index.html
create mode 100644 docs/about/modelling/setup/variables/index.html
create mode 100644 docs/about/modelling/theory/compressor_modelling/index.html
create mode 100644 docs/about/modelling/theory/index.html
create mode 100644 docs/about/modelling/theory/pump_modelling/index.html
create mode 100644 docs/about/modelling/workflow/generic_workflow/index.html
create mode 100644 docs/about/modelling/workflow/index.html
create mode 100644 docs/about/references/ADJUSTMENT/index.html
create mode 100644 docs/about/references/CABLE_LOSS/index.html
create mode 100644 docs/about/references/CALCULATE_MAX_RATE/index.html
create mode 100644 docs/about/references/CATEGORY/index.html
create mode 100644 docs/about/references/CHART_TYPE/index.html
create mode 100644 docs/about/references/COMPOSITION/index.html
create mode 100644 docs/about/references/COMPRESSOR_CHART/index.html
create mode 100644 docs/about/references/COMPRESSOR_MODEL/index.html
create mode 100644 docs/about/references/COMPRESSOR_SYSTEM/index.html
create mode 100644 docs/about/references/COMPRESSOR_TRAIN/index.html
create mode 100644 docs/about/references/COMPRESSOR_TRAIN_MODEL/index.html
create mode 100644 docs/about/references/CONDITION/index.html
create mode 100644 docs/about/references/CONDITIONS/index.html
create mode 100644 docs/about/references/CONSTANT/index.html
create mode 100644 docs/about/references/CONSUMERS/index.html
create mode 100644 docs/about/references/CONSUMPTION_RATE_TYPE/index.html
create mode 100644 docs/about/references/CONTROL_MARGIN/index.html
create mode 100644 docs/about/references/CONTROL_MARGIN_UNIT/index.html
create mode 100644 docs/about/references/CROSSOVER/index.html
create mode 100644 docs/about/references/CURVE/index.html
create mode 100644 docs/about/references/CURVES/index.html
create mode 100644 docs/about/references/DESIGN_HEAD/index.html
create mode 100644 docs/about/references/DESIGN_RATE/index.html
create mode 100644 docs/about/references/DIRECT_EMITTERS/index.html
create mode 100644 docs/about/references/DISCHARGE_PRESSURE/index.html
create mode 100644 docs/about/references/DOWNSTREAM_PRESSURE_CONTROL/index.html
create mode 100644 docs/about/references/EFFICIENCY/index.html
create mode 100644 docs/about/references/ELECTRICITY2FUEL/index.html
create mode 100644 docs/about/references/EMISSION/index.html
create mode 100644 docs/about/references/EMISSIONS/index.html
create mode 100644 docs/about/references/EMISSION_NAME/index.html
create mode 100644 docs/about/references/EMISSION_RATE/index.html
create mode 100644 docs/about/references/EMITTER_MODEL/index.html
create mode 100644 docs/about/references/END/index.html
create mode 100644 docs/about/references/ENERGYFUNCTION/index.html
create mode 100644 docs/about/references/ENERGY_USAGE_MODEL/index.html
create mode 100644 docs/about/references/EOS_MODEL/index.html
create mode 100644 docs/about/references/EXPRESSION/index.html
create mode 100644 docs/about/references/EXTRAPOLATION/index.html
create mode 100644 docs/about/references/FACILITY_INPUTS/index.html
create mode 100644 docs/about/references/FACTOR/index.html
create mode 100644 docs/about/references/FILE/index.html
create mode 100644 docs/about/references/FLUID_DENSITY/index.html
create mode 100644 docs/about/references/FLUID_MODEL/index.html
create mode 100644 docs/about/references/FLUID_MODEL_TYPE/index.html
create mode 100644 docs/about/references/FUEL/index.html
create mode 100644 docs/about/references/FUELCONSUMERS/index.html
create mode 100644 docs/about/references/FUELRATE/index.html
create mode 100644 docs/about/references/FUEL_TYPES/index.html
create mode 100644 docs/about/references/GAS_TYPE/index.html
create mode 100644 docs/about/references/GENERATORSETS/index.html
create mode 100644 docs/about/references/HCEXPORT/index.html
create mode 100644 docs/about/references/HEAD/index.html
create mode 100644 docs/about/references/HEAD_MARGIN/index.html
create mode 100644 docs/about/references/INFLUENCE_TIME_VECTOR/index.html
create mode 100644 docs/about/references/INLET_TEMPERATURE/index.html
create mode 100644 docs/about/references/INSTALLATIONS/index.html
create mode 100644 docs/about/references/INTERPOLATION_TYPE/index.html
create mode 100644 docs/about/references/INTERSTAGE_CONTROL_PRESSURE/index.html
create mode 100644 docs/about/references/LOAD/index.html
create mode 100644 docs/about/references/LOWER_HEATING_VALUE/index.html
create mode 100644 docs/about/references/MAXIMUM_DISCHARGE_PRESSURE/index.html
create mode 100644 docs/about/references/MAXIMUM_POWER/index.html
create mode 100644 docs/about/references/MAXIMUM_PRESSURE_RATIO_PER_STAGE/index.html
create mode 100644 docs/about/references/MAX_USAGE_FROM_SHORE/index.html
create mode 100644 docs/about/references/MODELS/index.html
create mode 100644 docs/about/references/NAME/index.html
create mode 100644 docs/about/references/OPERATIONAL_SETTINGS/index.html
create mode 100644 docs/about/references/POLYTROPIC_EFFICIENCY/index.html
create mode 100644 docs/about/references/POWERLOSSFACTOR/index.html
create mode 100644 docs/about/references/POWER_ADJUSTMENT_CONSTANT/index.html
create mode 100644 docs/about/references/PRESSURE_CONTROL/index.html
create mode 100644 docs/about/references/PRESSURE_DROP_AHEAD_OF_STAGE/index.html
create mode 100644 docs/about/references/PUMPS/index.html
create mode 100644 docs/about/references/RATE/index.html
create mode 100644 docs/about/references/RATE_FRACTIONS/index.html
create mode 100644 docs/about/references/RATE_PER_STREAM/index.html
create mode 100644 docs/about/references/REGULARITY/index.html
create mode 100644 docs/about/references/STAGES/index.html
create mode 100644 docs/about/references/START/index.html
create mode 100644 docs/about/references/STREAM/index.html
create mode 100644 docs/about/references/STREAMS/index.html
create mode 100644 docs/about/references/SUCTION_PRESSURE/index.html
create mode 100644 docs/about/references/TIME_SERIES/index.html
create mode 100644 docs/about/references/TOTAL_SYSTEM_RATE/index.html
create mode 100644 docs/about/references/TURBINE_EFFICIENCIES/index.html
create mode 100644 docs/about/references/TURBINE_LOADS/index.html
create mode 100644 docs/about/references/TURBINE_MODEL/index.html
create mode 100644 docs/about/references/TYPE/index.html
create mode 100644 docs/about/references/UNIT/index.html
create mode 100644 docs/about/references/UNITS/index.html
create mode 100644 docs/about/references/UPSTREAM_PRESSURE_CONTROL/index.html
create mode 100644 docs/about/references/VARIABLES/index.html
create mode 100644 docs/about/references/VENTING_EMITTERS/index.html
create mode 100644 docs/about/references/VOLUME/index.html
create mode 100644 docs/about/references/include/index.html
create mode 100644 docs/about/references/index.html
create mode 100644 docs/category/documentation/index.html
create mode 100644 docs/category/guides/index.html
create mode 100644 docs/changelog/index.html
create mode 100644 docs/changelog/v7-0-release/index.html
create mode 100644 docs/changelog/v7-1-release/index.html
create mode 100644 docs/changelog/v7-2-release/index.html
create mode 100644 docs/changelog/v7-3-release/index.html
create mode 100644 docs/changelog/v7-4-release/index.html
create mode 100644 docs/changelog/v7-5-release/index.html
create mode 100644 docs/changelog/v7-6-release/index.html
create mode 100644 docs/changelog/v8.0-release/index.html
create mode 100644 docs/changelog/v8.1-release/index.html
create mode 100644 docs/changelog/v8.10-release/index.html
create mode 100644 docs/changelog/v8.11-release/index.html
create mode 100644 docs/changelog/v8.12-release/index.html
create mode 100644 docs/changelog/v8.13-release/index.html
create mode 100644 docs/changelog/v8.14-release/index.html
create mode 100644 docs/changelog/v8.15-release/index.html
create mode 100644 docs/changelog/v8.16-release/index.html
create mode 100644 docs/changelog/v8.17-release/index.html
create mode 100644 docs/changelog/v8.18-release/index.html
create mode 100644 docs/changelog/v8.19-release/index.html
create mode 100644 docs/changelog/v8.2-release/index.html
create mode 100644 docs/changelog/v8.20-release/index.html
create mode 100644 docs/changelog/v8.21-release/index.html
create mode 100644 docs/changelog/v8.22-release/index.html
create mode 100644 docs/changelog/v8.23-release/index.html
create mode 100644 docs/changelog/v8.24-release/index.html
create mode 100644 docs/changelog/v8.25-release/index.html
create mode 100644 docs/changelog/v8.26-release/index.html
create mode 100644 docs/changelog/v8.3-release/index.html
create mode 100644 docs/changelog/v8.4-release/index.html
create mode 100644 docs/changelog/v8.5-release/index.html
create mode 100644 docs/changelog/v8.6-release/index.html
create mode 100644 docs/changelog/v8.7-release/index.html
create mode 100644 docs/changelog/v8.8-release/index.html
create mode 100644 docs/changelog/v9-1-release/index.html
create mode 100644 docs/changelog/v9.0-release/index.html
create mode 100644 docs/contribute/documentation-guide/documentation/index.html
create mode 100644 docs/contribute/documentation-guide/markdown/index.html
create mode 100644 docs/contribute/get_started/index.html
create mode 100644 docs/contribute/guides/conventional_commits/index.html
create mode 100644 docs/contribute/guides/git/index.html
create mode 100644 docs/tags/e-calc/index.html
create mode 100644 docs/tags/index.html
create mode 100644 docs/tags/release/index.html
create mode 100644 img/docs/asgb/asgb_lpp3_pd.png
create mode 100644 img/docs/asgb/asgb_lpp3_predef_fuel_result_comparison.png
create mode 100644 img/docs/asgb/asgb_lpp3_predef_stage1.png
create mode 100644 img/docs/asgb/asgb_lpp3_predef_stage1_2031.png
create mode 100644 img/docs/asgb/asgb_lpp3_predef_stage2.png
create mode 100644 img/docs/asgb/asgb_lpp3_predef_stage2_2031.png
create mode 100644 img/docs/asgb/asgb_lpp3_ps.png
create mode 100644 img/docs/asgb/asgb_lpp3_sketch.png
create mode 100644 img/docs/asgb/asgb_lpp3_sys26_capacity_and_rate.png
create mode 100644 img/docs/asgb/asgb_lpp3_sys26_maxcapacity_at_pd200.png
create mode 100644 img/docs/asgb/asgb_lpp3_sys26_maxcapacity_at_pd250.png
create mode 100644 img/docs/asgb/asgb_lpp3_sys26_maxcapacity_at_pdsurface.png
create mode 100644 img/docs/asgb/asgb_lpp3_sys26_stage1_at_ps31pd250.png
create mode 100644 img/docs/asgb/asgb_lpp3_sys26_stage2_at_ps31pd250.png
create mode 100644 img/docs/asgb/asgb_lpp3_sys27_capacity_and_rate.png
create mode 100644 img/docs/asgb/asgb_lpp3_sys27_crossover_and_mode.png
create mode 100644 img/docs/asgb/asgb_lpp3_sys27_gasrate.png
create mode 100644 img/docs/asgb/asgb_lpp3_sys27_rate_and_mode.png
create mode 100644 img/docs/asgb/asgb_lpp3_timeline.png
create mode 100644 img/docs/asgb/asgb_lpp3_unisim_stage1.png
create mode 100644 img/docs/asgb/asgb_lpp3_unisim_stage1_filtered.png
create mode 100644 img/docs/asgb/asgb_lpp3_unisim_stage2.png
create mode 100644 img/docs/asgb/asgb_lpp3_unisim_stage2_filtered.png
create mode 100644 img/docs/asgb/asgb_sys27a_unisim_model.png
create mode 100644 img/docs/asgb/asgb_sys27a_unisim_model_filtered.png
create mode 100644 img/docs/asgb/ecalc_generic_chart_normalized.png
create mode 100644 img/docs/asgb/ecalc_generic_chart_original.png
create mode 100644 img/docs/changed_rate_resampling.png
create mode 100644 img/docs/interpolation_plot.png
create mode 100644 img/docusaurus.png
create mode 100644 img/favicon.svg
create mode 100644 img/logo.svg
create mode 100644 img/undraw_docusaurus_mountain.svg
create mode 100644 img/undraw_docusaurus_react.svg
create mode 100644 img/undraw_docusaurus_tree.svg
create mode 100644 index.html
create mode 100644 search-index.json
create mode 100644 search/index.html
create mode 100644 sitemap.xml
diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/404.html b/404.html
new file mode 100644
index 0000000000..7abd0c22f8
--- /dev/null
+++ b/404.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+Page Not Found | eCalc™ Docs
+
+
+
+
+Page Not Found
We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
+
+
\ No newline at end of file
diff --git a/assets/css/styles.c56e74c6.css b/assets/css/styles.c56e74c6.css
new file mode 100644
index 0000000000..8db2ff5151
--- /dev/null
+++ b/assets/css/styles.c56e74c6.css
@@ -0,0 +1 @@
+.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.loadingRing_RJI3 div{box-sizing:border-box}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#2e8555;--ifm-color-primary-dark:#29784c;--ifm-color-primary-darker:#277148;--ifm-color-primary-darkest:#205d3b;--ifm-color-primary-light:#33925d;--ifm-color-primary-lighter:#359962;--ifm-color-primary-lightest:#3cad6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}.container_lyt7,.container_lyt7>svg,img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_Gvgb,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.searchBarContainer_NW3z.searchIndexLoading_EJ1f .searchBarLoadingRing_YnHq{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.content_knG7 a,.hitFooter_E9YW a,.suggestion_fB_2.cursor_eG29 mark{text-decoration:underline}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;pointer-events:none;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_BuS1>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items,.searchResultItem_U687>h2{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;top:0;visibility:hidden;left:0}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);position:fixed;transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;position:fixed;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{display:grid;grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.changed-from-version,.code-block-new-line,.code-block-old-line,.major-change-deprecation,.major-change-new-feature{margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding);display:block}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#25c2a0;--ifm-color-primary-dark:#21af90;--ifm-color-primary-darker:#1fa588;--ifm-color-primary-darkest:#1a8870;--ifm-color-primary-light:#29d5b0;--ifm-color-primary-lighter:#32d8b4;--ifm-color-primary-lightest:#4fddbf;--docusaurus-highlighted-code-line-bg:#0000004d}.code-block-old-line{background-color:#ff000020;border-left:3px solid #ff000080}.code-block-new-line{background-color:#0d8a0940;border-left:3px solid #0ec929e0}.major-change-deprecation{background-color:#ff000020;border-left:3px solid #ff000080}.major-change-new-feature{background-color:#0d8a0940}.changed-from-version,.major-change-new-feature{border-left:3px solid #0ec929e0}.changed-from-version{background-color:#64646400}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.lastUpdated_JAkA{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.cursor_eG29 .hideAction_vcyE>svg,.tocCollapsibleContent_vkbj a{display:block}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{left:0;position:absolute;top:0;fill:currentColor;height:inherit;opacity:inherit;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{display:inline-block;height:1.6em;width:1.6em;fill:var(--ifm-alert-foreground-color)}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.docSidebarContainer_YfHR,.hideAction_vcyE>svg,.sidebarLogo_isFc,.themedComponent_mlkZ,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.iconExternalLink_nPIU{margin-left:.3rem}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.dropdownNavbarItemMobile_S0Fm{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,#f5f6f7);border-radius:6px;box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64);left:auto!important;margin-top:8px;padding:var(--search-local-spacing,12px);position:relative;right:0!important;width:var(--search-local-modal-width,560px)}html[data-theme=dark] .searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,var(--ifm-background-color));box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309)}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2{align-items:center;background:var(--search-local-hit-background,#fff);border-radius:4px;box-shadow:var(--search-local-hit-shadow,0 1px 3px 0 #d4d9e1);color:var(--search-local-hit-color,#444950);cursor:pointer;display:flex;flex-direction:row;height:var(--search-local-hit-height,56px);padding:0 var(--search-local-spacing,12px);width:100%}.hitTree_kk6K,.noResults_l6Q3{align-items:center;display:flex}html[data-theme=dark] .dropdownMenu_qbY6 .suggestion_fB_2{background:var(--search-local-hit-background,var(--ifm-color-emphasis-100));box-shadow:var(--search-local-hit-shadow,none);color:var(--search-local-hit-color,var(--ifm-font-color-base))}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2:not(:last-child){margin-bottom:4px}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2.cursor_eG29{background-color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitFooter_E9YW a,.hitIcon_a7Zy,.hitPath_ieM4,.hitTree_kk6K,.noResultsIcon_EBY5{color:var(--search-local-muted-color,#969faf)}html[data-theme=dark] .hitIcon_a7Zy,html[data-theme=dark] .hitPath_ieM4,html[data-theme=dark] .hitTree_kk6K,html[data-theme=dark] .noResultsIcon_EBY5{color:var(--search-local-muted-color,var(--ifm-color-secondary-darkest))}.hitTree_kk6K>svg{height:var(--search-local-hit-height,56px);opacity:.5;width:24px}.hitIcon_a7Zy,.hitTree_kk6K>svg{stroke-width:var(--search-local-icon-stroke-width,1.4)}.hitAction_NqkB,.hitIcon_a7Zy{height:20px;width:20px}.hitWrapper_sAK8{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;margin:0 8px;overflow-x:hidden;width:80%}.hitWrapper_sAK8 mark{background:none;color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitTitle_vyVt{font-size:.9em}.hitPath_ieM4{font-size:.75em}.hitPath_ieM4,.hitTitle_vyVt{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.noResults_l6Q3{flex-direction:column;justify-content:center;padding:var(--search-local-spacing,12px) 0}.noResultsIcon_EBY5{margin-bottom:var(--search-local-spacing,12px)}.hitFooter_E9YW{font-size:.85em;margin-top:var(--search-local-spacing,12px);text-align:center}.suggestion_fB_2.cursor_eG29,.suggestion_fB_2.cursor_eG29 .hitIcon_a7Zy,.suggestion_fB_2.cursor_eG29 .hitPath_ieM4,.suggestion_fB_2.cursor_eG29 .hitTree_kk6K,.suggestion_fB_2.cursor_eG29 mark{color:var(--search-local-hit-active-color,var(--ifm-color-white))!important}.searchBarContainer_NW3z{margin-left:16px}.searchBarContainer_NW3z .searchBarLoadingRing_YnHq{display:none;left:10px;position:absolute;top:6px}.searchBarContainer_NW3z .searchClearButton_qk4g{background:none;border:none;line-height:1rem;padding:0;position:absolute;right:.8rem;top:50%;transform:translateY(-50%)}.navbar__search{position:relative}.searchIndexLoading_EJ1f .navbar__search-input{background-image:none}.searchHintContainer_Pkmr{align-items:center;display:flex;gap:4px;height:100%;justify-content:center;pointer-events:none;position:absolute;right:10px;top:0}.searchHint_iIMx{background-color:var(--ifm-navbar-search-input-background-color);border:1px solid var(--ifm-color-emphasis-500);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-500);color:var(--ifm-navbar-search-input-placeholder-color)}.loadingRing_RJI3{display:inline-block;height:20px;opacity:var(--search-local-loading-icon-opacity,.5);position:relative;width:20px}.loadingRing_RJI3 div{animation:1.2s cubic-bezier(.5,0,.5,1) infinite a;border:2px solid var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color));border-color:var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color)) #0000 #0000 #0000;border-radius:50%;display:block;height:16px;margin:2px;position:absolute;width:16px}.loadingRing_RJI3 div:first-child{animation-delay:-.45s}.loadingRing_RJI3 div:nth-child(2){animation-delay:-.3s}.loadingRing_RJI3 div:nth-child(3){animation-delay:-.15s}@keyframes a{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.img_ev3q{height:auto}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}#__docusaurus-base-url-issue-banner-container,.navbarSearchContainer_Bca1:empty{display:none}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}.searchContextInput_mXoe,.searchQueryInput_CFBF{background:var(--ifm-background-color);border:var(--ifm-global-border-width) solid var(--ifm-color-content-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-font-color-base);font-size:var(--ifm-font-size-base);margin-bottom:1rem;padding:.5rem;width:100%}.searchResultItem_U687{border-bottom:1px solid #dfe3e8;padding:1rem 0}.searchResultItemPath_uIbk{color:var(--ifm-color-content-secondary);font-size:.8rem;margin:.5rem 0 0}.searchResultItemSummary_oZHr{font-style:italic;margin:.5rem 0 0}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}.lastUpdated_JAkA{text-align:right}.tocMobile_ITEo{display:none}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.docItemContainer_F8PC{padding:0 .3rem}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}}@media not (max-width:996px){.searchBar_RVTs.searchBarLeft_MXDe .dropdownMenu_qbY6{left:0!important;right:auto!important}}@media only screen and (max-width:996px){.searchQueryColumn_q7nx{max-width:60%!important}.searchContextColumn_oWAF{max-width:40%!important}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.navbar__search-input:not(:focus){width:2rem}.searchBar_RVTs .dropdownMenu_qbY6{max-width:calc(100vw - var(--ifm-navbar-padding-horizontal)*2);width:var(--search-local-modal-width-sm,340px)}.searchBarContainer_NW3z:not(.focused_OWtg) .searchClearButton_qk4g,.searchHintContainer_Pkmr{display:none}}@media screen and (max-width:576px){.searchQueryColumn_q7nx{max-width:100%!important}.searchContextColumn_oWAF{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}}
\ No newline at end of file
diff --git a/assets/files/ecalc_json_schema-d910dbf0482722be733110958da420f0.json b/assets/files/ecalc_json_schema-d910dbf0482722be733110958da420f0.json
new file mode 100644
index 0000000000..8259f2c91c
--- /dev/null
+++ b/assets/files/ecalc_json_schema-d910dbf0482722be733110958da420f0.json
@@ -0,0 +1,4413 @@
+{
+ "$defs": {
+ "ConsumerUserDefinedCategoryType": {
+ "description": "Consumer category",
+ "enum": [
+ "BASE-LOAD",
+ "COLD-VENTING-FUGITIVE",
+ "COMPRESSOR",
+ "FIXED-PRODUCTION-LOAD",
+ "FLARE",
+ "MISCELLANEOUS",
+ "PUMP",
+ "GAS-DRIVEN-COMPRESSOR",
+ "TURBINE-GENERATOR",
+ "POWER-FROM-SHORE",
+ "OFFSHORE-WIND",
+ "LOADING",
+ "STORAGE",
+ "STEAM-TURBINE-GENERATOR",
+ "BOILER",
+ "HEATER"
+ ],
+ "title": "ConsumerUserDefinedCategoryType",
+ "type": "string"
+ },
+ "ConsumptionRateType": {
+ "enum": [
+ "STREAM_DAY",
+ "CALENDAR_DAY"
+ ],
+ "title": "ConsumptionRateType",
+ "type": "string"
+ },
+ "FuelTypeUserDefinedCategoryType": {
+ "enum": [
+ "FUEL-GAS",
+ "DIESEL"
+ ],
+ "title": "FuelTypeUserDefinedCategoryType",
+ "type": "string"
+ },
+ "InstallationUserDefinedCategoryType": {
+ "description": "Installation category",
+ "enum": [
+ "FIXED",
+ "MOBILE"
+ ],
+ "title": "InstallationUserDefinedCategoryType",
+ "type": "string"
+ },
+ "Unit": {
+ "description": "A very simple unit registry to convert between common eCalc units.",
+ "enum": [
+ "N/A",
+ "kg/BOE",
+ "kg/Sm3",
+ "kg/m3",
+ "Sm3",
+ "BOE",
+ "t/d",
+ "t",
+ "kg/d",
+ "kg/h",
+ "kg",
+ "L/d",
+ "L",
+ "MWd",
+ "GWh",
+ "MW",
+ "Y",
+ "bara",
+ "kPa",
+ "Pa",
+ "C",
+ "K",
+ "frac",
+ "%",
+ "kJ/kg",
+ "J/kg",
+ "N.m/kg",
+ "Am3/h",
+ "Sm3/d",
+ "RPM"
+ ],
+ "title": "Unit",
+ "type": "string"
+ },
+ "YamlComposition": {
+ "additionalProperties": false,
+ "properties": {
+ "CO2": {
+ "default": 0.0,
+ "title": "Co2",
+ "type": "number"
+ },
+ "ethane": {
+ "default": 0.0,
+ "title": "Ethane",
+ "type": "number"
+ },
+ "i_butane": {
+ "default": 0.0,
+ "title": "I Butane",
+ "type": "number"
+ },
+ "i_pentane": {
+ "default": 0.0,
+ "title": "I Pentane",
+ "type": "number"
+ },
+ "methane": {
+ "title": "Methane",
+ "type": "number"
+ },
+ "n_butane": {
+ "default": 0.0,
+ "title": "N Butane",
+ "type": "number"
+ },
+ "n_hexane": {
+ "default": 0.0,
+ "title": "N Hexane",
+ "type": "number"
+ },
+ "n_pentane": {
+ "default": 0.0,
+ "title": "N Pentane",
+ "type": "number"
+ },
+ "nitrogen": {
+ "default": 0.0,
+ "title": "Nitrogen",
+ "type": "number"
+ },
+ "propane": {
+ "default": 0.0,
+ "title": "Propane",
+ "type": "number"
+ },
+ "water": {
+ "default": 0.0,
+ "title": "Water",
+ "type": "number"
+ }
+ },
+ "required": [
+ "methane"
+ ],
+ "title": "YamlComposition",
+ "type": "object"
+ },
+ "YamlCompositionFluidModel": {
+ "additionalProperties": false,
+ "properties": {
+ "COMPOSITION": {
+ "$ref": "#/$defs/YamlComposition",
+ "description": "Components in fluid and amount (relative to the others) in mole weights",
+ "title": "COMPOSITION"
+ },
+ "EOS_MODEL": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/YamlEosModel"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": "SRK"
+ },
+ "FLUID_MODEL_TYPE": {
+ "const": "COMPOSITION",
+ "default": "COMPOSITION",
+ "enum": [
+ "COMPOSITION"
+ ],
+ "title": "Fluid Model Type",
+ "type": "string"
+ },
+ "NAME": {
+ "description": "Name of the model. See documentation for more information.",
+ "title": "NAME",
+ "type": "string"
+ },
+ "TYPE": {
+ "const": "FLUID",
+ "default": "FLUID",
+ "enum": [
+ "FLUID"
+ ],
+ "title": "Type",
+ "type": "string"
+ }
+ },
+ "required": [
+ "COMPOSITION",
+ "NAME"
+ ],
+ "title": "YamlCompositionFluidModel",
+ "type": "object"
+ },
+ "YamlCompressor": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Consumer name",
+ "pattern": "^[A-Z\u00c6\u00d8\u00c5a-z\u00e6\u00f8\u00e5\\d_/\\- ]*$",
+ "title": "NAME",
+ "type": "string"
+ },
+ "CATEGORY": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "User defined category",
+ "title": "CATEGORY"
+ },
+ "TYPE": {
+ "const": "COMPRESSOR@v2",
+ "description": "The type of the component",
+ "enum": [
+ "COMPRESSOR@v2"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "ENERGY_USAGE_MODEL": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ }
+ ],
+ "title": "Energy Usage Model"
+ }
+ },
+ "required": [
+ "NAME",
+ "TYPE",
+ "ENERGY_USAGE_MODEL"
+ ],
+ "title": "Compressor",
+ "type": "object"
+ },
+ "YamlCompressorStage": {
+ "additionalProperties": false,
+ "properties": {
+ "INLET_TEMPERATURE": {
+ "description": "Inlet temperature in Celsius for stage",
+ "title": "INLET_TEMPERATURE",
+ "type": "number"
+ },
+ "COMPRESSOR_CHART": {
+ "description": "Reference to compressor chart model for stage, must be defined in MODELS or FACILITY_INPUTS",
+ "title": "COMPRESSOR_CHART",
+ "type": "string"
+ }
+ },
+ "required": [
+ "INLET_TEMPERATURE",
+ "COMPRESSOR_CHART"
+ ],
+ "title": "YamlCompressorStage",
+ "type": "object"
+ },
+ "YamlCompressorStageMultipleStreams": {
+ "additionalProperties": false,
+ "properties": {
+ "INLET_TEMPERATURE": {
+ "description": "Inlet temperature in Celsius for stage",
+ "title": "INLET_TEMPERATURE",
+ "type": "number"
+ },
+ "COMPRESSOR_CHART": {
+ "description": "Reference to compressor chart model for stage, must be defined in MODELS or FACILITY_INPUTS",
+ "title": "COMPRESSOR_CHART",
+ "type": "string"
+ },
+ "PRESSURE_DROP_AHEAD_OF_STAGE": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": 0.0,
+ "description": "Pressure drop before compression stage [in bar]",
+ "title": "PRESSURE_DROP_AHEAD_OF_STAGE"
+ },
+ "CONTROL_MARGIN": {
+ "description": "Surge control margin, see documentation for more details.",
+ "minimum": 0.0,
+ "title": "CONTROL_MARGIN",
+ "type": "number"
+ },
+ "CONTROL_MARGIN_UNIT": {
+ "$ref": "#/$defs/YamlControlMarginUnits",
+ "description": "The unit of the surge control margin.",
+ "title": "CONTROL_MARGIN_UNIT"
+ },
+ "STREAM": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ ],
+ "default": null,
+ "description": "Reference to stream from STREAMS.",
+ "title": "STREAM"
+ },
+ "INTERSTAGE_CONTROL_PRESSURE": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/YamlInterstageControlPressure"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Pressure control. Can only be specified for one (only one) of the stages 2, ..., N.",
+ "title": "INTERSTAGE_CONTROL_PRESSURE"
+ }
+ },
+ "required": [
+ "INLET_TEMPERATURE",
+ "COMPRESSOR_CHART",
+ "CONTROL_MARGIN",
+ "CONTROL_MARGIN_UNIT"
+ ],
+ "title": "YamlCompressorStageMultipleStreams",
+ "type": "object"
+ },
+ "YamlCompressorStageWithMarginAndPressureDrop": {
+ "additionalProperties": false,
+ "properties": {
+ "INLET_TEMPERATURE": {
+ "description": "Inlet temperature in Celsius for stage",
+ "title": "INLET_TEMPERATURE",
+ "type": "number"
+ },
+ "COMPRESSOR_CHART": {
+ "description": "Reference to compressor chart model for stage, must be defined in MODELS or FACILITY_INPUTS",
+ "title": "COMPRESSOR_CHART",
+ "type": "string"
+ },
+ "PRESSURE_DROP_AHEAD_OF_STAGE": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": 0.0,
+ "description": "Pressure drop before compression stage [in bar]",
+ "title": "PRESSURE_DROP_AHEAD_OF_STAGE"
+ },
+ "CONTROL_MARGIN": {
+ "description": "Surge control margin, see documentation for more details.",
+ "minimum": 0.0,
+ "title": "CONTROL_MARGIN",
+ "type": "number"
+ },
+ "CONTROL_MARGIN_UNIT": {
+ "$ref": "#/$defs/YamlControlMarginUnits",
+ "description": "The unit of the surge control margin.",
+ "title": "CONTROL_MARGIN_UNIT"
+ }
+ },
+ "required": [
+ "INLET_TEMPERATURE",
+ "COMPRESSOR_CHART",
+ "CONTROL_MARGIN",
+ "CONTROL_MARGIN_UNIT"
+ ],
+ "title": "YamlCompressorStageWithMarginAndPressureDrop",
+ "type": "object"
+ },
+ "YamlCompressorStages_YamlCompressorStageWithMarginAndPressureDrop_": {
+ "additionalProperties": false,
+ "properties": {
+ "STAGES": {
+ "description": "List of compressor stages",
+ "items": {
+ "$ref": "#/$defs/YamlCompressorStageWithMarginAndPressureDrop"
+ },
+ "title": "STAGES",
+ "type": "array"
+ }
+ },
+ "required": [
+ "STAGES"
+ ],
+ "title": "YamlCompressorStages[YamlCompressorStageWithMarginAndPressureDrop]",
+ "type": "object"
+ },
+ "YamlCompressorStages_YamlCompressorStage_": {
+ "additionalProperties": false,
+ "properties": {
+ "STAGES": {
+ "description": "List of compressor stages",
+ "items": {
+ "$ref": "#/$defs/YamlCompressorStage"
+ },
+ "title": "STAGES",
+ "type": "array"
+ }
+ },
+ "required": [
+ "STAGES"
+ ],
+ "title": "YamlCompressorStages[YamlCompressorStage]",
+ "type": "object"
+ },
+ "YamlCompressorSystemCompressor": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the compressor",
+ "title": "NAME",
+ "type": "string"
+ },
+ "COMPRESSOR_MODEL": {
+ "description": "Reference to a compressor type facility model defined in FACILITY_INPUTS",
+ "title": "COMPRESSOR_MODEL",
+ "type": "string"
+ }
+ },
+ "required": [
+ "NAME",
+ "COMPRESSOR_MODEL"
+ ],
+ "title": "YamlCompressorSystemCompressor",
+ "type": "object"
+ },
+ "YamlCompressorSystemOperationalSetting": {
+ "additionalProperties": false,
+ "properties": {
+ "CROSSOVER": {
+ "default": null,
+ "description": "Set cross over rules in system operational setting. \n\n$ECALC_DOCS_KEYWORDS_URL/OPERATIONAL_SETTINGS#crossover",
+ "items": {
+ "type": "integer"
+ },
+ "title": "CROSSOVER",
+ "type": "array"
+ },
+ "RATES": {
+ "default": null,
+ "description": "Set rate per consumer in a consumer system operational setting. \n\n$ECALC_DOCS_KEYWORDS_URL/OPERATIONAL_SETTINGS#rates",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "RATES",
+ "type": "array"
+ },
+ "RATE_FRACTIONS": {
+ "default": null,
+ "description": "List of expressions defining fractional rate (of total system rate) per consumer. \n\n$ECALC_DOCS_KEYWORDS_URL/OPERATIONAL_SETTINGS#rate-fractions",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "RATE_FRACTIONS",
+ "type": "array"
+ },
+ "SUCTION_PRESSURES": {
+ "default": null,
+ "description": "Set suction pressure per consumer in a consumer system operational setting. \n\n$ECALC_DOCS_KEYWORDS_URL/OPERATIONAL_SETTINGS#suction-pressures",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "SUCTION_PRESSURES",
+ "type": "array"
+ },
+ "DISCHARGE_PRESSURES": {
+ "default": null,
+ "description": "Set discharge pressure per consumer in a consumer system operational setting. \n\n$ECALC_DOCS_KEYWORDS_URL/OPERATIONAL_SETTINGS#discharge-pressures",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "DISCHARGE_PRESSURES",
+ "type": "array"
+ },
+ "DISCHARGE_PRESSURE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Set discharge pressure equal for all consumers in a consumer system operational setting. \n\n$ECALC_DOCS_KEYWORDS_URL/DISCHARGE_PRESSURE",
+ "title": "DISCHARGE_PRESSURE"
+ },
+ "SUCTION_PRESSURE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Set suction pressure equal for all consumers in a consumer system operational setting. \n\n$ECALC_DOCS_KEYWORDS_URL/SUCTION_PRESSURE",
+ "title": "SUCTION_PRESSURE"
+ }
+ },
+ "title": "YamlCompressorSystemOperationalSetting",
+ "type": "object"
+ },
+ "YamlCompressorTabularModel": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the facility input.\n\n$ECALC_DOCS_KEYWORDS_URL/NAME",
+ "title": "NAME",
+ "type": "string"
+ },
+ "FILE": {
+ "description": "Specifies the name of an input file.\n\n$ECALC_DOCS_KEYWORDS_URL/FILE",
+ "title": "FILE",
+ "type": "string"
+ },
+ "ADJUSTMENT": {
+ "$ref": "#/$defs/YamlFacilityAdjustment",
+ "default": null,
+ "description": "Definition of adjustments to correct for mismatches in facility energy usage.\n\n$ECALC_DOCS_KEYWORDS_URL/ADJUSTMENT",
+ "title": "ADJUSTMENT"
+ },
+ "TYPE": {
+ "const": "COMPRESSOR_TABULAR",
+ "description": "Defines the type of model applied on the data in the file.\n\n$ECALC_DOCS_KEYWORDS_URL/TYPE",
+ "enum": [
+ "COMPRESSOR_TABULAR"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ }
+ },
+ "required": [
+ "NAME",
+ "FILE",
+ "TYPE"
+ ],
+ "title": "YamlCompressorTabularModel",
+ "type": "object"
+ },
+ "YamlCompressorWithTurbine": {
+ "additionalProperties": false,
+ "properties": {
+ "COMPRESSOR_MODEL": {
+ "description": "Reference to a compressor model",
+ "title": "COMPRESSOR_MODEL",
+ "type": "string"
+ },
+ "NAME": {
+ "description": "Name of the model. See documentation for more information.",
+ "title": "NAME",
+ "type": "string"
+ },
+ "POWER_ADJUSTMENT_CONSTANT": {
+ "default": 0.0,
+ "description": "Constant to adjust power usage in MW",
+ "title": "POWER_ADJUSTMENT_CONSTANT",
+ "type": "number"
+ },
+ "POWER_ADJUSTMENT_FACTOR": {
+ "default": 1.0,
+ "description": "Factor to adjust power usage in MW",
+ "title": "POWER_ADJUSTMENT_FACTOR",
+ "type": "number"
+ },
+ "TURBINE_MODEL": {
+ "description": "Reference to a turbine model",
+ "title": "TURBINE_MODEL",
+ "type": "string"
+ },
+ "TYPE": {
+ "const": "COMPRESSOR_WITH_TURBINE",
+ "description": "Defines the type of model. See documentation for more information.",
+ "enum": [
+ "COMPRESSOR_WITH_TURBINE"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ }
+ },
+ "required": [
+ "COMPRESSOR_MODEL",
+ "NAME",
+ "TURBINE_MODEL",
+ "TYPE"
+ ],
+ "title": "YamlCompressorWithTurbine",
+ "type": "object"
+ },
+ "YamlConsumerSystem": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Consumer name",
+ "pattern": "^[A-Z\u00c6\u00d8\u00c5a-z\u00e6\u00f8\u00e5\\d_/\\- ]*$",
+ "title": "NAME",
+ "type": "string"
+ },
+ "CATEGORY": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "User defined category",
+ "title": "CATEGORY"
+ },
+ "TYPE": {
+ "const": "CONSUMER_SYSTEM@v2",
+ "description": "The type of the component",
+ "enum": [
+ "CONSUMER_SYSTEM@v2"
+ ],
+ "title": "Type",
+ "type": "string"
+ },
+ "COMPONENT_CONDITIONS": {
+ "$ref": "#/$defs/YamlSystemComponentConditions",
+ "default": null,
+ "description": "Contains conditions for the component, in this case the system.",
+ "title": "System component conditions"
+ },
+ "STREAM_CONDITIONS_PRIORITIES": {
+ "additionalProperties": {
+ "additionalProperties": {
+ "additionalProperties": {
+ "$ref": "#/$defs/YamlStreamConditions"
+ },
+ "type": "object"
+ },
+ "type": "object"
+ },
+ "description": "A list of prioritised stream conditions per consumer.",
+ "title": "Stream conditions priorities",
+ "type": "object"
+ },
+ "CONSUMERS": {
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/$defs/YamlCompressor"
+ },
+ {
+ "$ref": "#/$defs/YamlPump"
+ },
+ {
+ "$ref": "#/$defs/YamlTrain"
+ }
+ ]
+ },
+ "title": "Consumers",
+ "type": "array"
+ }
+ },
+ "required": [
+ "NAME",
+ "TYPE",
+ "STREAM_CONDITIONS_PRIORITIES",
+ "CONSUMERS"
+ ],
+ "title": "ConsumerSystem",
+ "type": "object"
+ },
+ "YamlControlMarginUnits": {
+ "enum": [
+ "FRACTION",
+ "PERCENTAGE"
+ ],
+ "title": "YamlControlMarginUnits",
+ "type": "string"
+ },
+ "YamlCrossover": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "default": null,
+ "description": "The name of the stream. Can be used to identify the crossover stream in multiple streams compressor train",
+ "title": "NAME",
+ "type": "string"
+ },
+ "FROM": {
+ "description": "Source component for crossover",
+ "title": "FROM",
+ "type": "string"
+ },
+ "TO": {
+ "description": "Target component for crossover",
+ "title": "TO",
+ "type": "string"
+ }
+ },
+ "required": [
+ "FROM",
+ "TO"
+ ],
+ "title": "YamlCrossover",
+ "type": "object"
+ },
+ "YamlCurve": {
+ "additionalProperties": false,
+ "properties": {
+ "SPEED": {
+ "default": 1,
+ "title": "Speed",
+ "type": "number"
+ },
+ "RATE": {
+ "items": {
+ "type": "number"
+ },
+ "title": "Rate",
+ "type": "array"
+ },
+ "HEAD": {
+ "items": {
+ "type": "number"
+ },
+ "title": "Head",
+ "type": "array"
+ },
+ "EFFICIENCY": {
+ "items": {
+ "type": "number"
+ },
+ "title": "Efficiency",
+ "type": "array"
+ }
+ },
+ "required": [
+ "RATE",
+ "HEAD",
+ "EFFICIENCY"
+ ],
+ "title": "YamlCurve",
+ "type": "object"
+ },
+ "YamlDefaultTimeSeriesCollection": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the time series.\n\n$ECALC_DOCS_KEYWORDS_URL/NAME",
+ "pattern": "^[A-Za-z][A-Za-z0-9_]*$",
+ "title": "NAME",
+ "type": "string"
+ },
+ "FILE": {
+ "description": "Specifies the name of a time series input file.\n\n$ECALC_DOCS_KEYWORDS_URL/FILE",
+ "title": "FILE",
+ "type": "string"
+ },
+ "TYPE": {
+ "const": "DEFAULT",
+ "description": "Defines the type of time series input file.\n\n$ECALC_DOCS_KEYWORDS_URL/TYPE",
+ "enum": [
+ "DEFAULT"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "INFLUENCE_TIME_VECTOR": {
+ "default": true,
+ "description": "Determines if the time steps in this input source will contribute to the global time vector.\n\n$ECALC_DOCS_KEYWORDS_URL/INFLUENCE_TIME_VECTOR",
+ "title": "INFLUENCE_TIME_VECTOR",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "NAME",
+ "FILE",
+ "TYPE"
+ ],
+ "title": "TimeSeries",
+ "type": "object"
+ },
+ "YamlDensity": {
+ "additionalProperties": false,
+ "properties": {
+ "VALUE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "title": "Value"
+ },
+ "UNIT": {
+ "$ref": "#/$defs/Unit",
+ "default": "kg/Sm3"
+ }
+ },
+ "required": [
+ "VALUE"
+ ],
+ "title": "Density",
+ "type": "object"
+ },
+ "YamlDirectTypeEmitter": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of venting emitter",
+ "pattern": "^[A-Z\u00c6\u00d8\u00c5a-z\u00e6\u00f8\u00e5\\d_/\\- ]*$",
+ "title": "NAME",
+ "type": "string"
+ },
+ "CATEGORY": {
+ "$ref": "#/$defs/ConsumerUserDefinedCategoryType",
+ "description": "Output category/tag.\n\n$ECALC_DOCS_KEYWORDS_URL/CATEGORY",
+ "title": "CATEGORY"
+ },
+ "TYPE": {
+ "const": "DIRECT_EMISSION",
+ "description": "Type of venting emitter",
+ "enum": [
+ "DIRECT_EMISSION"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "EMISSIONS": {
+ "description": "The emissions for the emitter of type DIRECT_EMISSION",
+ "items": {
+ "$ref": "#/$defs/YamlVentingEmission"
+ },
+ "title": "EMISSIONS",
+ "type": "array"
+ }
+ },
+ "required": [
+ "NAME",
+ "CATEGORY",
+ "TYPE",
+ "EMISSIONS"
+ ],
+ "title": "VentingEmitter",
+ "type": "object"
+ },
+ "YamlEfficiencyUnits": {
+ "enum": [
+ "FRACTION",
+ "PERCENTAGE"
+ ],
+ "title": "YamlEfficiencyUnits",
+ "type": "string"
+ },
+ "YamlElectricityConsumer": {
+ "additionalProperties": false,
+ "properties": {
+ "TYPE": {
+ "const": "ELECTRICITY_CONSUMER",
+ "default": "ELECTRICITY_CONSUMER",
+ "description": "The type of the component",
+ "enum": [
+ "ELECTRICITY_CONSUMER"
+ ],
+ "title": "Type",
+ "type": "string"
+ },
+ "NAME": {
+ "description": "Name of the consumer.\n\n$ECALC_DOCS_KEYWORDS_URL/NAME",
+ "title": "NAME",
+ "type": "string"
+ },
+ "CATEGORY": {
+ "description": "Output category/tag.\n\n$ECALC_DOCS_KEYWORDS_URL/CATEGORY",
+ "oneOf": [
+ {
+ "$ref": "#/$defs/ConsumerUserDefinedCategoryType"
+ },
+ {
+ "additionalProperties": {
+ "$ref": "#/$defs/ConsumerUserDefinedCategoryType"
+ },
+ "type": "object"
+ }
+ ],
+ "title": "CATEGORY"
+ },
+ "ENERGY_USAGE_MODEL": {
+ "description": "Definition of the energy usage model for the consumer.\n\n$ECALC_DOCS_KEYWORDS_URL/ENERGY_USAGE_MODEL",
+ "oneOf": [
+ {
+ "discriminator": {
+ "mapping": {
+ "COMPRESSOR": "#/$defs/YamlEnergyUsageModelCompressor",
+ "COMPRESSOR_SYSTEM": "#/$defs/YamlEnergyUsageModelCompressorSystem",
+ "DIRECT": "#/$defs/YamlEnergyUsageModelDirect",
+ "PUMP": "#/$defs/YamlEnergyUsageModelPump",
+ "PUMP_SYSTEM": "#/$defs/YamlEnergyUsageModelPumpSystem",
+ "TABULATED": "#/$defs/YamlEnergyUsageModelTabulated",
+ "VARIABLE_SPEED_COMPRESSOR_TRAIN_MULTIPLE_STREAMS_AND_PRESSURES": "#/$defs/YamlEnergyUsageModelCompressorTrainMultipleStreams"
+ },
+ "propertyName": "TYPE"
+ },
+ "oneOf": [
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelDirect"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelCompressor"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelPump"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelCompressorSystem"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelPumpSystem"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelTabulated"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelCompressorTrainMultipleStreams"
+ }
+ ]
+ },
+ {
+ "additionalProperties": {
+ "discriminator": {
+ "mapping": {
+ "COMPRESSOR": "#/$defs/YamlEnergyUsageModelCompressor",
+ "COMPRESSOR_SYSTEM": "#/$defs/YamlEnergyUsageModelCompressorSystem",
+ "DIRECT": "#/$defs/YamlEnergyUsageModelDirect",
+ "PUMP": "#/$defs/YamlEnergyUsageModelPump",
+ "PUMP_SYSTEM": "#/$defs/YamlEnergyUsageModelPumpSystem",
+ "TABULATED": "#/$defs/YamlEnergyUsageModelTabulated",
+ "VARIABLE_SPEED_COMPRESSOR_TRAIN_MULTIPLE_STREAMS_AND_PRESSURES": "#/$defs/YamlEnergyUsageModelCompressorTrainMultipleStreams"
+ },
+ "propertyName": "TYPE"
+ },
+ "oneOf": [
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelDirect"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelCompressor"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelPump"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelCompressorSystem"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelPumpSystem"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelTabulated"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelCompressorTrainMultipleStreams"
+ }
+ ]
+ },
+ "type": "object"
+ }
+ ],
+ "title": "ENERGY_USAGE_MODEL"
+ }
+ },
+ "required": [
+ "NAME",
+ "CATEGORY",
+ "ENERGY_USAGE_MODEL"
+ ],
+ "title": "ELECTRICITY_CONSUMER",
+ "type": "object"
+ },
+ "YamlEmission": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the emission.\n\n$ECALC_DOCS_KEYWORDS_URL/NAME",
+ "pattern": "^\\w*$",
+ "title": "NAME",
+ "type": "string"
+ },
+ "FACTOR": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "description": "Emission factor for fuel in kg emission/Sm3 fuel. May be a constant number or an expression using vectors from a time series input.\n\n$ECALC_DOCS_KEYWORDS_URL/FACTOR",
+ "title": "FACTOR"
+ }
+ },
+ "required": [
+ "NAME",
+ "FACTOR"
+ ],
+ "title": "Emission",
+ "type": "object"
+ },
+ "YamlEmissionRate": {
+ "additionalProperties": false,
+ "properties": {
+ "VALUE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "title": "Value"
+ },
+ "UNIT": {
+ "$ref": "#/$defs/YamlEmissionRateUnits",
+ "default": "KG_PER_DAY"
+ },
+ "TYPE": {
+ "default": "STREAM_DAY",
+ "enum": [
+ "STREAM_DAY",
+ "CALENDAR_DAY"
+ ],
+ "title": "Type",
+ "type": "string"
+ }
+ },
+ "required": [
+ "VALUE"
+ ],
+ "title": "Rate",
+ "type": "object"
+ },
+ "YamlEmissionRateUnits": {
+ "enum": [
+ "KG_PER_DAY",
+ "TONS_PER_DAY"
+ ],
+ "title": "YamlEmissionRateUnits",
+ "type": "string"
+ },
+ "YamlEnergyUsageModelCompressor": {
+ "additionalProperties": false,
+ "properties": {
+ "CONDITION": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Logical condition for the consumer to be used.\n\n$ECALC_DOCS_KEYWORDS_URL/CONDITION",
+ "title": "CONDITION"
+ },
+ "CONDITIONS": {
+ "default": null,
+ "description": "Logical conditions for the consumer to be used.\n\n$ECALC_DOCS_KEYWORDS_URL/CONDITION",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "CONDITIONS",
+ "type": "array"
+ },
+ "POWERLOSSFACTOR": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "A factor that may be added to account for power line losses.\n\n$ECALC_DOCS_KEYWORDS_URL/POWERLOSSFACTOR",
+ "title": "POWERLOSSFACTOR"
+ },
+ "TYPE": {
+ "const": "COMPRESSOR",
+ "description": "Defines the energy usage model type.\n\n$ECALC_DOCS_KEYWORDS_URL/TYPE",
+ "enum": [
+ "COMPRESSOR"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "ENERGYFUNCTION": {
+ "description": "The compressor energy function, reference to a compressor type facility model defined in FACILITY_INPUTS",
+ "title": "ENERGY_FUNCTION",
+ "type": "string"
+ },
+ "RATE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Fluid (gas) rate through the compressor in Sm3/day \n\n$ECALC_DOCS_KEYWORDS_URL/RATE",
+ "title": "RATE"
+ },
+ "SUCTION_PRESSURE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Fluid (gas) pressure at compressor inlet in bars \n\n$ECALC_DOCS_KEYWORDS_URL/SUCTION_PRESSURE",
+ "title": "SUCTION_PRESSURE"
+ },
+ "DISCHARGE_PRESSURE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Fluid (gas) pressure at compressor outlet in bars \n\n$ECALC_DOCS_KEYWORDS_URL/DISCHARGE_PRESSURE",
+ "title": "DISCHARGE_PRESSURE"
+ }
+ },
+ "required": [
+ "TYPE",
+ "ENERGYFUNCTION"
+ ],
+ "title": "YamlEnergyUsageModelCompressor",
+ "type": "object"
+ },
+ "YamlEnergyUsageModelCompressorSystem": {
+ "additionalProperties": false,
+ "properties": {
+ "CONDITION": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Logical condition for the consumer to be used.\n\n$ECALC_DOCS_KEYWORDS_URL/CONDITION",
+ "title": "CONDITION"
+ },
+ "CONDITIONS": {
+ "default": null,
+ "description": "Logical conditions for the consumer to be used.\n\n$ECALC_DOCS_KEYWORDS_URL/CONDITION",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "CONDITIONS",
+ "type": "array"
+ },
+ "POWERLOSSFACTOR": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "A factor that may be added to account for power line losses.\n\n$ECALC_DOCS_KEYWORDS_URL/POWERLOSSFACTOR",
+ "title": "POWERLOSSFACTOR"
+ },
+ "TYPE": {
+ "const": "COMPRESSOR_SYSTEM",
+ "description": "Defines the energy usage model type.\n\n$ECALC_DOCS_KEYWORDS_URL/TYPE",
+ "enum": [
+ "COMPRESSOR_SYSTEM"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "COMPRESSORS": {
+ "description": "The compressors in a compressor system. \n\n$ECALC_DOCS_KEYWORDS_URL/COMPRESSORS#compressors",
+ "items": {
+ "$ref": "#/$defs/YamlCompressorSystemCompressor"
+ },
+ "title": "COMPRESSORS",
+ "type": "array"
+ },
+ "TOTAL_SYSTEM_RATE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Total fluid rate through the system \n\n$ECALC_DOCS_KEYWORDS_URL/TOTAL_SYSTEM_RATE",
+ "title": "TOTAL_SYSTEM_RATE"
+ },
+ "OPERATIONAL_SETTINGS": {
+ "description": "Operational settings of the system. \n\n$ECALC_DOCS_KEYWORDS_URL/OPERATIONAL_SETTINGS",
+ "items": {
+ "$ref": "#/$defs/YamlCompressorSystemOperationalSetting"
+ },
+ "title": "OPERATIONAL_SETTINGS",
+ "type": "array"
+ }
+ },
+ "required": [
+ "TYPE",
+ "COMPRESSORS",
+ "OPERATIONAL_SETTINGS"
+ ],
+ "title": "YamlEnergyUsageModelCompressorSystem",
+ "type": "object"
+ },
+ "YamlEnergyUsageModelCompressorTrainMultipleStreams": {
+ "additionalProperties": false,
+ "properties": {
+ "CONDITION": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Logical condition for the consumer to be used.\n\n$ECALC_DOCS_KEYWORDS_URL/CONDITION",
+ "title": "CONDITION"
+ },
+ "CONDITIONS": {
+ "default": null,
+ "description": "Logical conditions for the consumer to be used.\n\n$ECALC_DOCS_KEYWORDS_URL/CONDITION",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "CONDITIONS",
+ "type": "array"
+ },
+ "POWERLOSSFACTOR": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "A factor that may be added to account for power line losses.\n\n$ECALC_DOCS_KEYWORDS_URL/POWERLOSSFACTOR",
+ "title": "POWERLOSSFACTOR"
+ },
+ "TYPE": {
+ "const": "VARIABLE_SPEED_COMPRESSOR_TRAIN_MULTIPLE_STREAMS_AND_PRESSURES",
+ "description": "Defines the energy usage model type.\n\n$ECALC_DOCS_KEYWORDS_URL/TYPE",
+ "enum": [
+ "VARIABLE_SPEED_COMPRESSOR_TRAIN_MULTIPLE_STREAMS_AND_PRESSURES"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "RATE_UNIT": {
+ "const": "SM3_PER_DAY",
+ "default": "SM3_PER_DAY",
+ "description": "Defaults to SM3_PER_DAY, only SM3_PER_DAY implemented for now",
+ "enum": [
+ "SM3_PER_DAY"
+ ],
+ "title": "RATE_UNIT",
+ "type": "string"
+ },
+ "COMPRESSOR_TRAIN_MODEL": {
+ "description": "The compressor train model, reference to a compressor type model defined in MODELS",
+ "title": "COMPRESSOR_TRAIN_MODEL",
+ "type": "string"
+ },
+ "RATE_PER_STREAM": {
+ "description": "Fluid (gas) rate for each of the streams going into or out of the compressor train (excluding the outlet of the last compressor stage) in Sm3/day \n\n$ECALC_DOCS_KEYWORDS_URL/RATE",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "RATE_PER_STREAM",
+ "type": "array"
+ },
+ "SUCTION_PRESSURE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "description": "Fluid (gas) pressure at compressor train inlet in bars \n\n$ECALC_DOCS_KEYWORDS_URL/SUCTION_PRESSURE",
+ "title": "SUCTION_PRESSURE"
+ },
+ "DISCHARGE_PRESSURE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "description": "Fluid (gas) pressure at compressor train outlet in bars \n\n$ECALC_DOCS_KEYWORDS_URL/DISCHARGE_PRESSURE",
+ "title": "DISCHARGE_PRESSURE"
+ },
+ "INTERSTAGE_CONTROL_PRESSURE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Fluid (gas) pressure at an intermediate step in the compressor train \n\n$ECALC_DOCS_KEYWORDS_URL/INTERSTAGE_CONTROL_PRESSURE",
+ "title": "INTERSTAGE_CONTROL_PRESSURE"
+ }
+ },
+ "required": [
+ "TYPE",
+ "COMPRESSOR_TRAIN_MODEL",
+ "RATE_PER_STREAM",
+ "SUCTION_PRESSURE",
+ "DISCHARGE_PRESSURE"
+ ],
+ "title": "YamlEnergyUsageModelCompressorTrainMultipleStreams",
+ "type": "object"
+ },
+ "YamlEnergyUsageModelDirect": {
+ "additionalProperties": false,
+ "properties": {
+ "CONDITION": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Logical condition for the consumer to be used.\n\n$ECALC_DOCS_KEYWORDS_URL/CONDITION",
+ "title": "CONDITION"
+ },
+ "CONDITIONS": {
+ "default": null,
+ "description": "Logical conditions for the consumer to be used.\n\n$ECALC_DOCS_KEYWORDS_URL/CONDITION",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "CONDITIONS",
+ "type": "array"
+ },
+ "POWERLOSSFACTOR": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "A factor that may be added to account for power line losses.\n\n$ECALC_DOCS_KEYWORDS_URL/POWERLOSSFACTOR",
+ "title": "POWERLOSSFACTOR"
+ },
+ "TYPE": {
+ "const": "DIRECT",
+ "description": "Defines the energy usage model type.\n\n$ECALC_DOCS_KEYWORDS_URL/TYPE",
+ "enum": [
+ "DIRECT"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "LOAD": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Fixed power consumer with constant load.\n\n$ECALC_DOCS_KEYWORDS_URL/LOAD",
+ "title": "LOAD"
+ },
+ "FUELRATE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Fixed power consumer with constant load.\n\n$ECALC_DOCS_KEYWORDS_URL/LOAD",
+ "title": "FUEL_RATE"
+ },
+ "CONSUMPTION_RATE_TYPE": {
+ "$ref": "#/$defs/ConsumptionRateType",
+ "default": null,
+ "description": "Defines the energy usage rate as stream day or calendar day.\n\n$ECALC_DOCS_KEYWORDS_URL/CONSUMPTION_RATE_TYPE#consumption-rate-type",
+ "title": "CONSUMPTION_RATE_TYPE"
+ }
+ },
+ "required": [
+ "TYPE"
+ ],
+ "title": "YamlEnergyUsageModelDirect",
+ "type": "object"
+ },
+ "YamlEnergyUsageModelPump": {
+ "additionalProperties": false,
+ "properties": {
+ "CONDITION": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Logical condition for the consumer to be used.\n\n$ECALC_DOCS_KEYWORDS_URL/CONDITION",
+ "title": "CONDITION"
+ },
+ "CONDITIONS": {
+ "default": null,
+ "description": "Logical conditions for the consumer to be used.\n\n$ECALC_DOCS_KEYWORDS_URL/CONDITION",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "CONDITIONS",
+ "type": "array"
+ },
+ "POWERLOSSFACTOR": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "A factor that may be added to account for power line losses.\n\n$ECALC_DOCS_KEYWORDS_URL/POWERLOSSFACTOR",
+ "title": "POWERLOSSFACTOR"
+ },
+ "TYPE": {
+ "const": "PUMP",
+ "description": "Defines the energy usage model type.\n\n$ECALC_DOCS_KEYWORDS_URL/TYPE",
+ "enum": [
+ "PUMP"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "ENERGYFUNCTION": {
+ "description": "The pump energy function, reference to a pump type facility model defined in FACILITY_INPUTS",
+ "title": "ENERGY_FUNCTION",
+ "type": "string"
+ },
+ "RATE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Fluid rate through the pump in Sm3/day \n\n$ECALC_DOCS_KEYWORDS_URL/RATE",
+ "title": "RATE"
+ },
+ "SUCTION_PRESSURE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Fluid pressure at pump inlet in bars \n\n$ECALC_DOCS_KEYWORDS_URL/SUCTION_PRESSURE",
+ "title": "SUCTION_PRESSURE"
+ },
+ "DISCHARGE_PRESSURE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Fluid pressure at pump outlet in bars \n\n$ECALC_DOCS_KEYWORDS_URL/DISCHARGE_PRESSURE",
+ "title": "DISCHARGE_PRESSURE"
+ },
+ "FLUID_DENSITY": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "description": "Density of the fluid in kg/m3. \n\n$ECALC_DOCS_KEYWORDS_URL/FLUID_DENSITY",
+ "title": "FLUID_DENSITY"
+ }
+ },
+ "required": [
+ "TYPE",
+ "ENERGYFUNCTION",
+ "FLUID_DENSITY"
+ ],
+ "title": "YamlEnergyUsageModelPump",
+ "type": "object"
+ },
+ "YamlEnergyUsageModelPumpSystem": {
+ "additionalProperties": false,
+ "properties": {
+ "CONDITION": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Logical condition for the consumer to be used.\n\n$ECALC_DOCS_KEYWORDS_URL/CONDITION",
+ "title": "CONDITION"
+ },
+ "CONDITIONS": {
+ "default": null,
+ "description": "Logical conditions for the consumer to be used.\n\n$ECALC_DOCS_KEYWORDS_URL/CONDITION",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "CONDITIONS",
+ "type": "array"
+ },
+ "POWERLOSSFACTOR": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "A factor that may be added to account for power line losses.\n\n$ECALC_DOCS_KEYWORDS_URL/POWERLOSSFACTOR",
+ "title": "POWERLOSSFACTOR"
+ },
+ "TYPE": {
+ "const": "PUMP_SYSTEM",
+ "description": "Defines the energy usage model type.\n\n$ECALC_DOCS_KEYWORDS_URL/TYPE",
+ "enum": [
+ "PUMP_SYSTEM"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "PUMPS": {
+ "description": "The pumps in a pump system. \n\n$ECALC_DOCS_KEYWORDS_URL/PUMPS#pumps",
+ "items": {
+ "$ref": "#/$defs/YamlPumpSystemPump"
+ },
+ "title": "PUMPS",
+ "type": "array"
+ },
+ "FLUID_DENSITY": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Density of the fluid in kg/m3. \n\n$ECALC_DOCS_KEYWORDS_URL/FLUID_DENSITY",
+ "title": "FLUID_DENSITY"
+ },
+ "TOTAL_SYSTEM_RATE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Total fluid rate through the system \n\n$ECALC_DOCS_KEYWORDS_URL/TOTAL_SYSTEM_RATE",
+ "title": "TOTAL_SYSTEM_RATE"
+ },
+ "OPERATIONAL_SETTINGS": {
+ "description": "Operational settings of the system. \n\n$ECALC_DOCS_KEYWORDS_URL/OPERATIONAL_SETTINGS",
+ "items": {
+ "$ref": "#/$defs/YamlPumpSystemOperationalSettings"
+ },
+ "title": "OPERATIONAL_SETTINGS",
+ "type": "array"
+ }
+ },
+ "required": [
+ "TYPE",
+ "PUMPS",
+ "OPERATIONAL_SETTINGS"
+ ],
+ "title": "YamlEnergyUsageModelPumpSystem",
+ "type": "object"
+ },
+ "YamlEnergyUsageModelTabulated": {
+ "additionalProperties": false,
+ "properties": {
+ "CONDITION": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Logical condition for the consumer to be used.\n\n$ECALC_DOCS_KEYWORDS_URL/CONDITION",
+ "title": "CONDITION"
+ },
+ "CONDITIONS": {
+ "default": null,
+ "description": "Logical conditions for the consumer to be used.\n\n$ECALC_DOCS_KEYWORDS_URL/CONDITION",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "CONDITIONS",
+ "type": "array"
+ },
+ "POWERLOSSFACTOR": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "A factor that may be added to account for power line losses.\n\n$ECALC_DOCS_KEYWORDS_URL/POWERLOSSFACTOR",
+ "title": "POWERLOSSFACTOR"
+ },
+ "TYPE": {
+ "const": "TABULATED",
+ "description": "Defines the energy usage model type.\n\n$ECALC_DOCS_KEYWORDS_URL/TYPE",
+ "enum": [
+ "TABULATED"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "ENERGYFUNCTION": {
+ "description": "The tabulated energy function, reference to a tabular type facility model defined in FACILITY_INPUTS",
+ "title": "ENERGY_FUNCTION",
+ "type": "string"
+ },
+ "VARIABLES": {
+ "description": "Variables for the tabulated energy function \n\n$ECALC_DOCS_KEYWORDS_URL/VARIABLES#variables",
+ "items": {
+ "$ref": "#/$defs/YamlTabulatedVariable"
+ },
+ "title": "VARIABLES",
+ "type": "array"
+ }
+ },
+ "required": [
+ "TYPE",
+ "ENERGYFUNCTION",
+ "VARIABLES"
+ ],
+ "title": "YamlEnergyUsageModelTabulated",
+ "type": "object"
+ },
+ "YamlEosModel": {
+ "enum": [
+ "SRK",
+ "PR",
+ "GERG_SRK",
+ "GERG_PR"
+ ],
+ "title": "YamlEosModel",
+ "type": "string"
+ },
+ "YamlFacilityAdjustment": {
+ "additionalProperties": false,
+ "properties": {
+ "CONSTANT": {
+ "default": 0,
+ "description": "Adjust input data with a constant value.\n\n$ECALC_DOCS_KEYWORDS_URL/CONSTANT",
+ "title": "CONSTANT",
+ "type": "number"
+ },
+ "FACTOR": {
+ "default": 1,
+ "description": "Adjust input data with a constant multiplier.\n\n$ECALC_DOCS_KEYWORDS_URL/FACTOR",
+ "title": "FACTOR",
+ "type": "number"
+ }
+ },
+ "title": "YamlFacilityAdjustment",
+ "type": "object"
+ },
+ "YamlFile": {
+ "additionalProperties": false,
+ "properties": {
+ "FILE": {
+ "description": "Specifies the name of an input file. See documentation for more information.",
+ "title": "FILE",
+ "type": "string"
+ }
+ },
+ "required": [
+ "FILE"
+ ],
+ "title": "YamlFile",
+ "type": "object"
+ },
+ "YamlFuelConsumer": {
+ "additionalProperties": false,
+ "properties": {
+ "TYPE": {
+ "const": "FUEL_CONSUMER",
+ "default": "FUEL_CONSUMER",
+ "description": "The type of the component",
+ "enum": [
+ "FUEL_CONSUMER"
+ ],
+ "title": "Type",
+ "type": "string"
+ },
+ "NAME": {
+ "description": "Name of the consumer.\n\n$ECALC_DOCS_KEYWORDS_URL/NAME",
+ "title": "NAME",
+ "type": "string"
+ },
+ "CATEGORY": {
+ "description": "Output category/tag.\n\n$ECALC_DOCS_KEYWORDS_URL/CATEGORY",
+ "oneOf": [
+ {
+ "$ref": "#/$defs/ConsumerUserDefinedCategoryType"
+ },
+ {
+ "additionalProperties": {
+ "$ref": "#/$defs/ConsumerUserDefinedCategoryType"
+ },
+ "type": "object"
+ }
+ ],
+ "title": "CATEGORY"
+ },
+ "ENERGY_USAGE_MODEL": {
+ "description": "Definition of the energy usage model for the consumer.\n\n$ECALC_DOCS_KEYWORDS_URL/ENERGY_USAGE_MODEL",
+ "oneOf": [
+ {
+ "discriminator": {
+ "mapping": {
+ "COMPRESSOR": "#/$defs/YamlEnergyUsageModelCompressor",
+ "COMPRESSOR_SYSTEM": "#/$defs/YamlEnergyUsageModelCompressorSystem",
+ "DIRECT": "#/$defs/YamlEnergyUsageModelDirect",
+ "TABULATED": "#/$defs/YamlEnergyUsageModelTabulated",
+ "VARIABLE_SPEED_COMPRESSOR_TRAIN_MULTIPLE_STREAMS_AND_PRESSURES": "#/$defs/YamlEnergyUsageModelCompressorTrainMultipleStreams"
+ },
+ "propertyName": "TYPE"
+ },
+ "oneOf": [
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelDirect"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelCompressor"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelCompressorSystem"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelTabulated"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelCompressorTrainMultipleStreams"
+ }
+ ]
+ },
+ {
+ "additionalProperties": {
+ "discriminator": {
+ "mapping": {
+ "COMPRESSOR": "#/$defs/YamlEnergyUsageModelCompressor",
+ "COMPRESSOR_SYSTEM": "#/$defs/YamlEnergyUsageModelCompressorSystem",
+ "DIRECT": "#/$defs/YamlEnergyUsageModelDirect",
+ "TABULATED": "#/$defs/YamlEnergyUsageModelTabulated",
+ "VARIABLE_SPEED_COMPRESSOR_TRAIN_MULTIPLE_STREAMS_AND_PRESSURES": "#/$defs/YamlEnergyUsageModelCompressorTrainMultipleStreams"
+ },
+ "propertyName": "TYPE"
+ },
+ "oneOf": [
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelDirect"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelCompressor"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelCompressorSystem"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelTabulated"
+ },
+ {
+ "$ref": "#/$defs/YamlEnergyUsageModelCompressorTrainMultipleStreams"
+ }
+ ]
+ },
+ "type": "object"
+ }
+ ],
+ "title": "ENERGY_USAGE_MODEL"
+ },
+ "FUEL": {
+ "default": null,
+ "description": "The fuel used by the consumer.\n\n$ECALC_DOCS_KEYWORDS_URL/FUEL",
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ }
+ ],
+ "title": "FUEL"
+ }
+ },
+ "required": [
+ "NAME",
+ "CATEGORY",
+ "ENERGY_USAGE_MODEL"
+ ],
+ "title": "FUEL_CONSUMER",
+ "type": "object"
+ },
+ "YamlFuelType": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the fuel.\n\n$ECALC_DOCS_KEYWORDS_URL/NAME",
+ "title": "NAME",
+ "type": "string"
+ },
+ "CATEGORY": {
+ "$ref": "#/$defs/FuelTypeUserDefinedCategoryType",
+ "default": null,
+ "description": "Output category/tag.\n\n$ECALC_DOCS_KEYWORDS_URL/CATEGORY",
+ "title": "CATEGORY"
+ },
+ "EMISSIONS": {
+ "description": "Emission types and their attributes for this fuel.\n\n$ECALC_DOCS_KEYWORDS_URL/EMISSIONS",
+ "items": {
+ "$ref": "#/$defs/YamlEmission"
+ },
+ "title": "EMISSIONS",
+ "type": "array"
+ },
+ "LOWER_HEATING_VALUE": {
+ "default": null,
+ "description": "Warning! Deprecated. Does not have any effect. Lower heating value [MJ/Sm3] of fuel. Lower heating value is also known as net calorific value",
+ "title": "LOWER_HEATING_VALUE",
+ "type": "number"
+ }
+ },
+ "required": [
+ "NAME",
+ "EMISSIONS"
+ ],
+ "title": "FuelType",
+ "type": "object"
+ },
+ "YamlGeneratorSet": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the generator set.\n\n$ECALC_DOCS_KEYWORDS_URL/NAME",
+ "pattern": "^[A-Z\u00c6\u00d8\u00c5a-z\u00e6\u00f8\u00e5\\d_/\\- ]*$",
+ "title": "NAME",
+ "type": "string"
+ },
+ "CATEGORY": {
+ "description": "Output category/tag.\n\n$ECALC_DOCS_KEYWORDS_URL/CATEGORY",
+ "oneOf": [
+ {
+ "$ref": "#/$defs/ConsumerUserDefinedCategoryType"
+ },
+ {
+ "additionalProperties": {
+ "$ref": "#/$defs/ConsumerUserDefinedCategoryType"
+ },
+ "type": "object"
+ }
+ ],
+ "title": "CATEGORY"
+ },
+ "FUEL": {
+ "default": null,
+ "description": "The fuel used by the generator set.\n\n$ECALC_DOCS_KEYWORDS_URL/FUEL",
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ }
+ ],
+ "title": "FUEL"
+ },
+ "ELECTRICITY2FUEL": {
+ "description": "Specifies the correlation between the electric power delivered and the fuel burned by a generator set.\n\n$ECALC_DOCS_KEYWORDS_URL/ELECTRICITY2FUEL",
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ }
+ ],
+ "title": "ELECTRICITY2FUEL"
+ },
+ "CABLE_LOSS": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Cable loss from shore, fraction of from shore consumption",
+ "title": "CABLE_LOSS"
+ },
+ "MAX_USAGE_FROM_SHORE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The peak load/effect that is expected for one hour, per year (MW)",
+ "title": "MAX_USAGE_FROM_SHORE"
+ },
+ "CONSUMERS": {
+ "description": "Consumers getting electrical power from the generator set.\n\n$ECALC_DOCS_KEYWORDS_URL/CONSUMERS",
+ "items": {
+ "discriminator": {
+ "mapping": {
+ "CONSUMER_SYSTEM@v2": "#/$defs/YamlConsumerSystem",
+ "ELECTRICITY_CONSUMER": "#/$defs/YamlElectricityConsumer"
+ },
+ "propertyName": "TYPE"
+ },
+ "oneOf": [
+ {
+ "$ref": "#/$defs/YamlElectricityConsumer"
+ },
+ {
+ "$ref": "#/$defs/YamlConsumerSystem"
+ }
+ ]
+ },
+ "title": "CONSUMERS",
+ "type": "array"
+ }
+ },
+ "required": [
+ "NAME",
+ "CATEGORY",
+ "ELECTRICITY2FUEL",
+ "CONSUMERS"
+ ],
+ "title": "GeneratorSet",
+ "type": "object"
+ },
+ "YamlGeneratorSetModel": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the facility input.\n\n$ECALC_DOCS_KEYWORDS_URL/NAME",
+ "title": "NAME",
+ "type": "string"
+ },
+ "FILE": {
+ "description": "Specifies the name of an input file.\n\n$ECALC_DOCS_KEYWORDS_URL/FILE",
+ "title": "FILE",
+ "type": "string"
+ },
+ "ADJUSTMENT": {
+ "$ref": "#/$defs/YamlFacilityAdjustment",
+ "default": null,
+ "description": "Definition of adjustments to correct for mismatches in facility energy usage.\n\n$ECALC_DOCS_KEYWORDS_URL/ADJUSTMENT",
+ "title": "ADJUSTMENT"
+ },
+ "TYPE": {
+ "const": "ELECTRICITY2FUEL",
+ "description": "Defines the type of model applied on the data in the file.\n\n$ECALC_DOCS_KEYWORDS_URL/TYPE",
+ "enum": [
+ "ELECTRICITY2FUEL"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ }
+ },
+ "required": [
+ "NAME",
+ "FILE",
+ "TYPE"
+ ],
+ "title": "YamlGeneratorSetModel",
+ "type": "object"
+ },
+ "YamlGenericFromDesignPointChart": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the model. See documentation for more information.",
+ "title": "NAME",
+ "type": "string"
+ },
+ "TYPE": {
+ "const": "COMPRESSOR_CHART",
+ "default": "COMPRESSOR_CHART",
+ "description": "Defines the type of model. See documentation for more information.",
+ "enum": [
+ "COMPRESSOR_CHART"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "CHART_TYPE": {
+ "const": "GENERIC_FROM_DESIGN_POINT",
+ "default": "GENERIC_FROM_DESIGN_POINT",
+ "enum": [
+ "GENERIC_FROM_DESIGN_POINT"
+ ],
+ "title": "Chart Type",
+ "type": "string"
+ },
+ "POLYTROPIC_EFFICIENCY": {
+ "description": "Polytropic efficiency for compressor chart",
+ "title": "POLYTROPIC_EFFICIENCY",
+ "type": "number"
+ },
+ "DESIGN_RATE": {
+ "description": "Design rate for generic compressor chart",
+ "title": "DESIGN_RATE",
+ "type": "number"
+ },
+ "DESIGN_HEAD": {
+ "description": "Design head for generic compressor chart",
+ "title": "DESIGN_HEAD",
+ "type": "number"
+ },
+ "UNITS": {
+ "$ref": "#/$defs/YamlUnits"
+ }
+ },
+ "required": [
+ "NAME",
+ "POLYTROPIC_EFFICIENCY",
+ "DESIGN_RATE",
+ "DESIGN_HEAD",
+ "UNITS"
+ ],
+ "title": "YamlGenericFromDesignPointChart",
+ "type": "object"
+ },
+ "YamlGenericFromInputChart": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the model. See documentation for more information.",
+ "title": "NAME",
+ "type": "string"
+ },
+ "TYPE": {
+ "const": "COMPRESSOR_CHART",
+ "default": "COMPRESSOR_CHART",
+ "description": "Defines the type of model. See documentation for more information.",
+ "enum": [
+ "COMPRESSOR_CHART"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "CHART_TYPE": {
+ "const": "GENERIC_FROM_INPUT",
+ "default": "GENERIC_FROM_INPUT",
+ "enum": [
+ "GENERIC_FROM_INPUT"
+ ],
+ "title": "Chart Type",
+ "type": "string"
+ },
+ "POLYTROPIC_EFFICIENCY": {
+ "description": "Polytropic efficiency for compressor chart",
+ "title": "POLYTROPIC_EFFICIENCY",
+ "type": "number"
+ },
+ "UNITS": {
+ "$ref": "#/$defs/YamlUnits",
+ "description": "Defines the units",
+ "title": "UNITS"
+ }
+ },
+ "required": [
+ "NAME",
+ "POLYTROPIC_EFFICIENCY"
+ ],
+ "title": "YamlGenericFromInputChart",
+ "type": "object"
+ },
+ "YamlHeadUnits": {
+ "enum": [
+ "M",
+ "KJ_PER_KG",
+ "JOULE_PER_KG"
+ ],
+ "title": "YamlHeadUnits",
+ "type": "string"
+ },
+ "YamlInstallation": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the installation.\n\n$ECALC_DOCS_KEYWORDS_URL/NAME",
+ "pattern": "^[A-Z\u00c6\u00d8\u00c5a-z\u00e6\u00f8\u00e5\\d_/\\- ]*$",
+ "title": "NAME",
+ "type": "string"
+ },
+ "CATEGORY": {
+ "$ref": "#/$defs/InstallationUserDefinedCategoryType",
+ "default": null,
+ "description": "Output category/tag.\n\n$ECALC_DOCS_KEYWORDS_URL/CATEGORY",
+ "title": "CATEGORY"
+ },
+ "HCEXPORT": {
+ "default": 0,
+ "description": "Defines the export of hydrocarbons as number of oil equivalents in Sm3.\n\n$ECALC_DOCS_KEYWORDS_URL/HCEXPORT",
+ "oneOf": [
+ {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ {
+ "additionalProperties": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "type": "object"
+ }
+ ],
+ "title": "HCEXPORT"
+ },
+ "FUEL": {
+ "default": null,
+ "description": "Main fuel type for installation.\n\n$ECALC_DOCS_KEYWORDS_URL/FUEL",
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ }
+ ],
+ "title": "FUEL"
+ },
+ "REGULARITY": {
+ "default": 1,
+ "description": "Regularity of the installation can be specified by a single number or as an expression. USE WITH CARE.\n\n$ECALC_DOCS_KEYWORDS_URL/REGULARITY",
+ "oneOf": [
+ {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ {
+ "additionalProperties": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "type": "object"
+ }
+ ],
+ "title": "REGULARITY"
+ },
+ "GENERATORSETS": {
+ "default": null,
+ "description": "Defines one or more generator sets.\n\n$ECALC_DOCS_KEYWORDS_URL/GENERATORSETS",
+ "items": {
+ "$ref": "#/$defs/YamlGeneratorSet"
+ },
+ "title": "GENERATORSETS",
+ "type": "array"
+ },
+ "FUELCONSUMERS": {
+ "default": null,
+ "description": "Defines fuel consumers on the installation which are not generators.\n\n$ECALC_DOCS_KEYWORDS_URL/FUELCONSUMERS",
+ "items": {
+ "discriminator": {
+ "mapping": {
+ "CONSUMER_SYSTEM@v2": "#/$defs/YamlConsumerSystem",
+ "FUEL_CONSUMER": "#/$defs/YamlFuelConsumer"
+ },
+ "propertyName": "TYPE"
+ },
+ "oneOf": [
+ {
+ "$ref": "#/$defs/YamlFuelConsumer"
+ },
+ {
+ "$ref": "#/$defs/YamlConsumerSystem"
+ }
+ ]
+ },
+ "title": "FUELCONSUMERS",
+ "type": "array"
+ },
+ "VENTING_EMITTERS": {
+ "default": null,
+ "description": "Covers the direct emissions on the installation that are not consuming energy",
+ "items": {
+ "discriminator": {
+ "mapping": {
+ "DIRECT_EMISSION": "#/$defs/YamlDirectTypeEmitter",
+ "OIL_VOLUME": "#/$defs/YamlOilTypeEmitter"
+ },
+ "propertyName": "TYPE"
+ },
+ "oneOf": [
+ {
+ "$ref": "#/$defs/YamlOilTypeEmitter"
+ },
+ {
+ "$ref": "#/$defs/YamlDirectTypeEmitter"
+ }
+ ]
+ },
+ "title": "VENTING_EMITTERS",
+ "type": "array"
+ }
+ },
+ "required": [
+ "NAME"
+ ],
+ "title": "Installation",
+ "type": "object"
+ },
+ "YamlInterstageControlPressure": {
+ "additionalProperties": false,
+ "properties": {
+ "UPSTREAM_PRESSURE_CONTROL": {
+ "$ref": "#/$defs/YamlPressureControl",
+ "description": "Pressure control.",
+ "title": "UPSTREAM_PRESSURE_CONTROL"
+ },
+ "DOWNSTREAM_PRESSURE_CONTROL": {
+ "$ref": "#/$defs/YamlPressureControl",
+ "description": "Pressure control.",
+ "title": "DOWNSTREAM_PRESSURE_CONTROL"
+ }
+ },
+ "required": [
+ "UPSTREAM_PRESSURE_CONTROL",
+ "DOWNSTREAM_PRESSURE_CONTROL"
+ ],
+ "title": "YamlInterstageControlPressure",
+ "type": "object"
+ },
+ "YamlMiscellaneousTimeSeriesCollection": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the time series.\n\n$ECALC_DOCS_KEYWORDS_URL/NAME",
+ "pattern": "^[A-Za-z][A-Za-z0-9_]*$",
+ "title": "NAME",
+ "type": "string"
+ },
+ "FILE": {
+ "description": "Specifies the name of a time series input file.\n\n$ECALC_DOCS_KEYWORDS_URL/FILE",
+ "title": "FILE",
+ "type": "string"
+ },
+ "TYPE": {
+ "const": "MISCELLANEOUS",
+ "description": "Defines the type of time series input file.\n\n$ECALC_DOCS_KEYWORDS_URL/TYPE",
+ "enum": [
+ "MISCELLANEOUS"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "INFLUENCE_TIME_VECTOR": {
+ "default": true,
+ "description": "Determines if the time steps in this input source will contribute to the global time vector.\n\n$ECALC_DOCS_KEYWORDS_URL/INFLUENCE_TIME_VECTOR",
+ "title": "INFLUENCE_TIME_VECTOR",
+ "type": "boolean"
+ },
+ "EXTRAPOLATION": {
+ "default": false,
+ "description": "Defines whether the rates in the source should be set to 0 after last time step or constant equal to value at last time step after time interval.\n\n$ECALC_DOCS_KEYWORDS_URL/EXTRAPOLATION",
+ "title": "EXTRAPOLATION",
+ "type": "boolean"
+ },
+ "INTERPOLATION_TYPE": {
+ "description": "Defines how the time series are interpolated between input time steps.\n\n$ECALC_DOCS_KEYWORDS_URL/INTERPOLATION_TYPE",
+ "enum": [
+ "LEFT",
+ "RIGHT",
+ "LINEAR"
+ ],
+ "title": "INTERPOLATION_TYPE",
+ "type": "string"
+ }
+ },
+ "required": [
+ "NAME",
+ "FILE",
+ "TYPE",
+ "INTERPOLATION_TYPE"
+ ],
+ "title": "TimeSeries",
+ "type": "object"
+ },
+ "YamlMultipleStreamsStream": {
+ "additionalProperties": false,
+ "properties": {
+ "TYPE": {
+ "enum": [
+ "INGOING",
+ "OUTGOING"
+ ],
+ "title": "Type",
+ "type": "string"
+ },
+ "NAME": {
+ "title": "Name",
+ "type": "string"
+ },
+ "FLUID_MODEL": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Reference to a fluid model",
+ "title": "FLUID_MODEL"
+ }
+ },
+ "required": [
+ "TYPE",
+ "NAME"
+ ],
+ "title": "YamlMultipleStreamsStream",
+ "type": "object"
+ },
+ "YamlOilRateUnits": {
+ "const": "SM3_PER_DAY",
+ "enum": [
+ "SM3_PER_DAY"
+ ],
+ "title": "YamlOilRateUnits",
+ "type": "string"
+ },
+ "YamlOilTypeEmitter": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of venting emitter",
+ "pattern": "^[A-Z\u00c6\u00d8\u00c5a-z\u00e6\u00f8\u00e5\\d_/\\- ]*$",
+ "title": "NAME",
+ "type": "string"
+ },
+ "CATEGORY": {
+ "$ref": "#/$defs/ConsumerUserDefinedCategoryType",
+ "description": "Output category/tag.\n\n$ECALC_DOCS_KEYWORDS_URL/CATEGORY",
+ "title": "CATEGORY"
+ },
+ "TYPE": {
+ "const": "OIL_VOLUME",
+ "description": "Type of venting emitter",
+ "enum": [
+ "OIL_VOLUME"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "VOLUME": {
+ "$ref": "#/$defs/YamlVentingVolume",
+ "description": "The volume rate and emissions for the emitter of type OIL_VOLUME",
+ "title": "VOLUME"
+ }
+ },
+ "required": [
+ "NAME",
+ "CATEGORY",
+ "TYPE",
+ "VOLUME"
+ ],
+ "title": "VentingEmitter",
+ "type": "object"
+ },
+ "YamlOilVolumeRate": {
+ "additionalProperties": false,
+ "properties": {
+ "VALUE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "title": "Value"
+ },
+ "UNIT": {
+ "$ref": "#/$defs/YamlOilRateUnits",
+ "default": "SM3_PER_DAY"
+ },
+ "TYPE": {
+ "default": "STREAM_DAY",
+ "enum": [
+ "STREAM_DAY",
+ "CALENDAR_DAY"
+ ],
+ "title": "Type",
+ "type": "string"
+ }
+ },
+ "required": [
+ "VALUE"
+ ],
+ "title": "Rate",
+ "type": "object"
+ },
+ "YamlPredefinedFluidModel": {
+ "additionalProperties": false,
+ "properties": {
+ "EOS_MODEL": {
+ "$ref": "#/$defs/YamlEosModel",
+ "default": "SRK"
+ },
+ "FLUID_MODEL_TYPE": {
+ "const": "PREDEFINED",
+ "default": "PREDEFINED",
+ "enum": [
+ "PREDEFINED"
+ ],
+ "title": "Fluid Model Type",
+ "type": "string"
+ },
+ "GAS_TYPE": {
+ "$ref": "#/$defs/YamlPredefinedFluidType",
+ "default": null
+ },
+ "NAME": {
+ "description": "Name of the model. See documentation for more information.",
+ "title": "NAME",
+ "type": "string"
+ },
+ "TYPE": {
+ "const": "FLUID",
+ "enum": [
+ "FLUID"
+ ],
+ "title": "Type",
+ "type": "string"
+ }
+ },
+ "required": [
+ "NAME",
+ "TYPE"
+ ],
+ "title": "YamlPredefinedFluidModel",
+ "type": "object"
+ },
+ "YamlPredefinedFluidType": {
+ "enum": [
+ "ULTRA_DRY",
+ "DRY",
+ "MEDIUM",
+ "RICH",
+ "ULTRA_RICH"
+ ],
+ "title": "YamlPredefinedFluidType",
+ "type": "string"
+ },
+ "YamlPressure": {
+ "additionalProperties": false,
+ "properties": {
+ "VALUE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "title": "Value"
+ },
+ "UNIT": {
+ "$ref": "#/$defs/Unit",
+ "default": "bara"
+ }
+ },
+ "required": [
+ "VALUE"
+ ],
+ "title": "Pressure",
+ "type": "object"
+ },
+ "YamlPressureControl": {
+ "enum": [
+ "DOWNSTREAM_CHOKE",
+ "UPSTREAM_CHOKE",
+ "INDIVIDUAL_ASV_PRESSURE",
+ "INDIVIDUAL_ASV_RATE",
+ "COMMON_ASV"
+ ],
+ "title": "YamlPressureControl",
+ "type": "string"
+ },
+ "YamlPump": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Consumer name",
+ "pattern": "^[A-Z\u00c6\u00d8\u00c5a-z\u00e6\u00f8\u00e5\\d_/\\- ]*$",
+ "title": "NAME",
+ "type": "string"
+ },
+ "CATEGORY": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "User defined category",
+ "title": "CATEGORY"
+ },
+ "TYPE": {
+ "const": "PUMP@v2",
+ "description": "The type of the component",
+ "enum": [
+ "PUMP@v2"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "ENERGY_USAGE_MODEL": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ }
+ ],
+ "title": "Energy Usage Model"
+ }
+ },
+ "required": [
+ "NAME",
+ "TYPE",
+ "ENERGY_USAGE_MODEL"
+ ],
+ "title": "Pump",
+ "type": "object"
+ },
+ "YamlPumpChartSingleSpeed": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the facility input.\n\n$ECALC_DOCS_KEYWORDS_URL/NAME",
+ "title": "NAME",
+ "type": "string"
+ },
+ "FILE": {
+ "description": "Specifies the name of an input file.\n\n$ECALC_DOCS_KEYWORDS_URL/FILE",
+ "title": "FILE",
+ "type": "string"
+ },
+ "ADJUSTMENT": {
+ "$ref": "#/$defs/YamlFacilityAdjustment",
+ "default": null,
+ "description": "Definition of adjustments to correct for mismatches in facility energy usage.\n\n$ECALC_DOCS_KEYWORDS_URL/ADJUSTMENT",
+ "title": "ADJUSTMENT"
+ },
+ "HEAD_MARGIN": {
+ "default": 0.0,
+ "description": "Adjustment of the head margin for power calibration.\n\n$ECALC_DOCS_KEYWORDS_URL/HEAD_MARGIN",
+ "title": "HEAD_MARGIN",
+ "type": "number"
+ },
+ "UNITS": {
+ "$ref": "#/$defs/YamlPumpChartUnits",
+ "description": "Units for pump charts: RATE, HEAD and EFFICIENCY.",
+ "title": "UNITS"
+ },
+ "TYPE": {
+ "const": "PUMP_CHART_SINGLE_SPEED",
+ "description": "Defines the type of model applied on the data in the file.\n\n$ECALC_DOCS_KEYWORDS_URL/TYPE",
+ "enum": [
+ "PUMP_CHART_SINGLE_SPEED"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ }
+ },
+ "required": [
+ "NAME",
+ "FILE",
+ "UNITS",
+ "TYPE"
+ ],
+ "title": "YamlPumpChartSingleSpeed",
+ "type": "object"
+ },
+ "YamlPumpChartUnits": {
+ "additionalProperties": false,
+ "properties": {
+ "RATE": {
+ "const": "AM3_PER_HOUR",
+ "description": "Unit for rate in pump chart. Currently only AM3_PER_HOUR is supported",
+ "enum": [
+ "AM3_PER_HOUR"
+ ],
+ "title": "RATE",
+ "type": "string"
+ },
+ "HEAD": {
+ "description": "Unit for head in pump chart. Supported units are M (default), KJ_PER_KG and JOULE_PER_KG",
+ "enum": [
+ "M",
+ "KJ_PER_KG",
+ "JOULE_PER_KG"
+ ],
+ "title": "HEAD",
+ "type": "string"
+ },
+ "EFFICIENCY": {
+ "description": "Unit of efficiency in pump chart. Supported units are PERCENTAGE (default) and FRACTION.",
+ "enum": [
+ "PERCENTAGE",
+ "FRACTION"
+ ],
+ "title": "EFFICIENCY",
+ "type": "string"
+ }
+ },
+ "required": [
+ "RATE",
+ "HEAD",
+ "EFFICIENCY"
+ ],
+ "title": "YamlPumpChartUnits",
+ "type": "object"
+ },
+ "YamlPumpChartVariableSpeed": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the facility input.\n\n$ECALC_DOCS_KEYWORDS_URL/NAME",
+ "title": "NAME",
+ "type": "string"
+ },
+ "FILE": {
+ "description": "Specifies the name of an input file.\n\n$ECALC_DOCS_KEYWORDS_URL/FILE",
+ "title": "FILE",
+ "type": "string"
+ },
+ "ADJUSTMENT": {
+ "$ref": "#/$defs/YamlFacilityAdjustment",
+ "default": null,
+ "description": "Definition of adjustments to correct for mismatches in facility energy usage.\n\n$ECALC_DOCS_KEYWORDS_URL/ADJUSTMENT",
+ "title": "ADJUSTMENT"
+ },
+ "HEAD_MARGIN": {
+ "default": 0.0,
+ "description": "Adjustment of the head margin for power calibration.\n\n$ECALC_DOCS_KEYWORDS_URL/HEAD_MARGIN",
+ "title": "HEAD_MARGIN",
+ "type": "number"
+ },
+ "UNITS": {
+ "$ref": "#/$defs/YamlPumpChartUnits",
+ "description": "Units for pump charts: RATE, HEAD and EFFICIENCY.",
+ "title": "UNITS"
+ },
+ "TYPE": {
+ "const": "PUMP_CHART_VARIABLE_SPEED",
+ "description": "Defines the type of model applied on the data in the file.\n\n$ECALC_DOCS_KEYWORDS_URL/TYPE",
+ "enum": [
+ "PUMP_CHART_VARIABLE_SPEED"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ }
+ },
+ "required": [
+ "NAME",
+ "FILE",
+ "UNITS",
+ "TYPE"
+ ],
+ "title": "YamlPumpChartVariableSpeed",
+ "type": "object"
+ },
+ "YamlPumpSystemOperationalSettings": {
+ "additionalProperties": false,
+ "properties": {
+ "CROSSOVER": {
+ "default": null,
+ "description": "Set cross over rules in system operational setting. \n\n$ECALC_DOCS_KEYWORDS_URL/OPERATIONAL_SETTINGS#crossover",
+ "items": {
+ "type": "integer"
+ },
+ "title": "CROSSOVER",
+ "type": "array"
+ },
+ "RATES": {
+ "default": null,
+ "description": "Set rate per consumer in a consumer system operational setting. \n\n$ECALC_DOCS_KEYWORDS_URL/OPERATIONAL_SETTINGS#rates",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "RATES",
+ "type": "array"
+ },
+ "RATE_FRACTIONS": {
+ "default": null,
+ "description": "List of expressions defining fractional rate (of total system rate) per consumer. \n\n$ECALC_DOCS_KEYWORDS_URL/OPERATIONAL_SETTINGS#rate-fractions",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "RATE_FRACTIONS",
+ "type": "array"
+ },
+ "SUCTION_PRESSURES": {
+ "default": null,
+ "description": "Set suction pressure per consumer in a consumer system operational setting. \n\n$ECALC_DOCS_KEYWORDS_URL/OPERATIONAL_SETTINGS#suction-pressures",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "SUCTION_PRESSURES",
+ "type": "array"
+ },
+ "DISCHARGE_PRESSURES": {
+ "default": null,
+ "description": "Set discharge pressure per consumer in a consumer system operational setting. \n\n$ECALC_DOCS_KEYWORDS_URL/OPERATIONAL_SETTINGS#discharge-pressures",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "DISCHARGE_PRESSURES",
+ "type": "array"
+ },
+ "DISCHARGE_PRESSURE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Set discharge pressure equal for all consumers in a consumer system operational setting. \n\n$ECALC_DOCS_KEYWORDS_URL/DISCHARGE_PRESSURE",
+ "title": "DISCHARGE_PRESSURE"
+ },
+ "SUCTION_PRESSURE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "default": null,
+ "description": "Set suction pressure equal for all consumers in a consumer system operational setting. \n\n$ECALC_DOCS_KEYWORDS_URL/SUCTION_PRESSURE",
+ "title": "SUCTION_PRESSURE"
+ },
+ "FLUID_DENSITIES": {
+ "default": null,
+ "description": "Set fluid density per consumer in a consumer system operational setting. Will overwrite the systems common fluid density expression \n\n$ECALC_DOCS_KEYWORDS_URL/OPERATIONAL_SETTINGS#fluid-densities",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ]
+ },
+ "title": "FLUID_DENSITIES",
+ "type": "array"
+ }
+ },
+ "title": "YamlPumpSystemOperationalSettings",
+ "type": "object"
+ },
+ "YamlPumpSystemPump": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the pump",
+ "title": "NAME",
+ "type": "string"
+ },
+ "CHART": {
+ "description": "Reference to a pump type facility model defined in FACILITY_INPUTS",
+ "title": "COMPRESSOR_MODEL",
+ "type": "string"
+ }
+ },
+ "required": [
+ "NAME",
+ "CHART"
+ ],
+ "title": "YamlPumpSystemPump",
+ "type": "object"
+ },
+ "YamlRate": {
+ "additionalProperties": false,
+ "properties": {
+ "VALUE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "title": "Value"
+ },
+ "UNIT": {
+ "$ref": "#/$defs/Unit",
+ "default": "Sm3/d"
+ },
+ "TYPE": {
+ "default": "STREAM_DAY",
+ "enum": [
+ "STREAM_DAY",
+ "CALENDAR_DAY"
+ ],
+ "title": "Type",
+ "type": "string"
+ }
+ },
+ "required": [
+ "VALUE"
+ ],
+ "title": "Rate",
+ "type": "object"
+ },
+ "YamlRateUnits": {
+ "const": "AM3_PER_HOUR",
+ "enum": [
+ "AM3_PER_HOUR"
+ ],
+ "title": "YamlRateUnits",
+ "type": "string"
+ },
+ "YamlSimplifiedVariableSpeedCompressorTrain": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the model. See documentation for more information.",
+ "title": "NAME",
+ "type": "string"
+ },
+ "MAXIMUM_POWER": {
+ "default": null,
+ "description": "Optional constant MW maximum power the compressor train can require",
+ "title": "MAXIMUM_POWER",
+ "type": "number"
+ },
+ "TYPE": {
+ "const": "SIMPLIFIED_VARIABLE_SPEED_COMPRESSOR_TRAIN",
+ "description": "Defines the type of model. See documentation for more information.",
+ "enum": [
+ "SIMPLIFIED_VARIABLE_SPEED_COMPRESSOR_TRAIN"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "COMPRESSOR_TRAIN": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/YamlCompressorStages_YamlCompressorStage_"
+ },
+ {
+ "$ref": "#/$defs/YamlUnknownCompressorStages"
+ }
+ ],
+ "description": "Compressor train definition",
+ "title": "COMPRESSOR_TRAIN"
+ },
+ "CALCULATE_MAX_RATE": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": false,
+ "description": "Optional compressor train max standard rate [Sm3/day] in result if set to true. Default false. Use with caution. This will increase runtime significantly.",
+ "title": "CALCULATE_MAX_RATE"
+ },
+ "FLUID_MODEL": {
+ "description": "Reference to a fluid model",
+ "title": "FLUID_MODEL",
+ "type": "string"
+ },
+ "POWER_ADJUSTMENT_CONSTANT": {
+ "default": 0.0,
+ "description": "Constant to adjust power usage in MW",
+ "title": "POWER_ADJUSTMENT_CONSTANT",
+ "type": "number"
+ },
+ "POWER_ADJUSTMENT_FACTOR": {
+ "default": 1.0,
+ "description": "Factor to adjust power usage in MW",
+ "title": "POWER_ADJUSTMENT_FACTOR",
+ "type": "number"
+ }
+ },
+ "required": [
+ "NAME",
+ "TYPE",
+ "COMPRESSOR_TRAIN",
+ "FLUID_MODEL"
+ ],
+ "title": "YamlSimplifiedVariableSpeedCompressorTrain",
+ "type": "object"
+ },
+ "YamlSingleSpeedChart": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the model. See documentation for more information.",
+ "title": "NAME",
+ "type": "string"
+ },
+ "TYPE": {
+ "const": "COMPRESSOR_CHART",
+ "default": "COMPRESSOR_CHART",
+ "description": "Defines the type of model. See documentation for more information.",
+ "enum": [
+ "COMPRESSOR_CHART"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "CHART_TYPE": {
+ "const": "SINGLE_SPEED",
+ "default": "SINGLE_SPEED",
+ "enum": [
+ "SINGLE_SPEED"
+ ],
+ "title": "Chart Type",
+ "type": "string"
+ },
+ "CURVE": {
+ "description": "One single compressor chart curve.",
+ "oneOf": [
+ {
+ "$ref": "#/$defs/YamlCurve"
+ },
+ {
+ "$ref": "#/$defs/YamlFile"
+ }
+ ],
+ "title": "CURVE"
+ },
+ "UNITS": {
+ "$ref": "#/$defs/YamlUnits",
+ "description": "Defines the units",
+ "title": "UNITS"
+ }
+ },
+ "required": [
+ "NAME",
+ "CURVE"
+ ],
+ "title": "YamlSingleSpeedChart",
+ "type": "object"
+ },
+ "YamlSingleSpeedCompressorTrain": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the model. See documentation for more information.",
+ "title": "NAME",
+ "type": "string"
+ },
+ "MAXIMUM_POWER": {
+ "default": null,
+ "description": "Optional constant MW maximum power the compressor train can require",
+ "title": "MAXIMUM_POWER",
+ "type": "number"
+ },
+ "TYPE": {
+ "const": "SINGLE_SPEED_COMPRESSOR_TRAIN",
+ "description": "Defines the type of model. See documentation for more information.",
+ "enum": [
+ "SINGLE_SPEED_COMPRESSOR_TRAIN"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "COMPRESSOR_TRAIN": {
+ "$ref": "#/$defs/YamlCompressorStages_YamlCompressorStageWithMarginAndPressureDrop_",
+ "description": "Compressor train definition",
+ "title": "COMPRESSOR_TRAIN"
+ },
+ "PRESSURE_CONTROL": {
+ "$ref": "#/$defs/YamlPressureControl",
+ "default": "DOWNSTREAM_CHOKE",
+ "description": "Method for pressure control",
+ "title": "PRESSURE_CONTROL"
+ },
+ "MAXIMUM_DISCHARGE_PRESSURE": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Maximum discharge pressure in bar (can only use if pressure control is DOWNSTREAM_CHOKE)",
+ "title": "MAXIMUM_DISCHARGE_PRESSURE"
+ },
+ "CALCULATE_MAX_RATE": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": false,
+ "description": "Optional compressor train max standard rate [Sm3/day] in result if set to true. Default false. Use with caution. This will increase runtime significantly.",
+ "title": "CALCULATE_MAX_RATE"
+ },
+ "POWER_ADJUSTMENT_CONSTANT": {
+ "default": 0.0,
+ "description": "Constant to adjust power usage in MW",
+ "title": "POWER_ADJUSTMENT_CONSTANT",
+ "type": "number"
+ },
+ "POWER_ADJUSTMENT_FACTOR": {
+ "default": 1.0,
+ "description": "Factor to adjust power usage in MW",
+ "title": "POWER_ADJUSTMENT_FACTOR",
+ "type": "number"
+ },
+ "FLUID_MODEL": {
+ "description": "Reference to a fluid model",
+ "title": "FLUID_MODEL",
+ "type": "string"
+ }
+ },
+ "required": [
+ "NAME",
+ "TYPE",
+ "COMPRESSOR_TRAIN",
+ "FLUID_MODEL"
+ ],
+ "title": "YamlSingleSpeedCompressorTrain",
+ "type": "object"
+ },
+ "YamlSingleVariable": {
+ "additionalProperties": false,
+ "description": "A variable in YAML that can be set to a valid eCalc Expression",
+ "properties": {
+ "VALUE": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ],
+ "title": "Value"
+ }
+ },
+ "required": [
+ "VALUE"
+ ],
+ "title": "YamlSingleVariable",
+ "type": "object"
+ },
+ "YamlStream": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "default": null,
+ "description": "The name of the stream. ",
+ "title": "NAME",
+ "type": "string"
+ },
+ "FROM": {
+ "description": "The component the stream comes from.",
+ "title": "FROM",
+ "type": "string"
+ },
+ "TO": {
+ "description": "The component the stream goes to.",
+ "title": "TO",
+ "type": "string"
+ }
+ },
+ "required": [
+ "FROM",
+ "TO"
+ ],
+ "title": "YamlStream",
+ "type": "object"
+ },
+ "YamlStreamConditions": {
+ "additionalProperties": false,
+ "properties": {
+ "RATE": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/YamlRate"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Rate...",
+ "title": "Rate"
+ },
+ "PRESSURE": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/YamlPressure"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Pressure..",
+ "title": "Pressure"
+ },
+ "TEMPERATURE": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/YamlTemperature"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Temperature...",
+ "title": "Temperature"
+ },
+ "FLUID_DENSITY": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/YamlDensity"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "The fluid density...",
+ "title": "Fluid density"
+ }
+ },
+ "title": "Stream",
+ "type": "object"
+ },
+ "YamlSystemComponentConditions": {
+ "additionalProperties": false,
+ "properties": {
+ "CROSSOVER": {
+ "anyOf": [
+ {
+ "items": {
+ "$ref": "#/$defs/YamlCrossover"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "CROSSOVER specifies if rates are to be crossed over to another consumer if rate capacity is exceeded. If the energy consumption calculation is not successful for a consumer, and the consumer has a valid cross-over defined, the consumer will be allocated its maximum rate and the exceeding rate will be added to the cross-over consumer.\nTo avoid loops, a consumer can only be either receiving or giving away rate. For a cross-over to be valid, the discharge pressure at the consumer \"receiving\" overshooting rate must be higher than or equal to the discharge pressure of the \"sending\" consumer. This is because it is possible to choke pressure down to meet the outlet pressure in a flow line with lower pressure, but not possible to \"pressure up\" in the crossover flow line.\nSome examples show how the crossover logic works:\nCrossover is given as and list of integer values for the first position is the first consumer, second position is the second consumer, etc. The number specifies which consumer to send cross-over flow to, and 0 signifies no cross-over possible. Note that we use 1-index here.\nExample 1:\nTwo consumers where there is a cross-over such that if the rate for the first consumer exceeds its capacity, the excess rate will be processed by the second consumer. The second consumer can not cross-over to anyone.\nCROSSOVER: \n - FROM: consumer1 \n TO: consumer2 \nExample 2:\nThe first and second consumers may both send exceeding rate to the third consumer if their capacity is exceeded.\nCROSSOVER: \n - FROM: consumer1 \n TO: consumer3 \n - FROM: consumer2 \n TO: consumer3 \n",
+ "title": "Crossover"
+ }
+ },
+ "title": "YamlSystemComponentConditions",
+ "type": "object"
+ },
+ "YamlTabularModel": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the facility input.\n\n$ECALC_DOCS_KEYWORDS_URL/NAME",
+ "title": "NAME",
+ "type": "string"
+ },
+ "FILE": {
+ "description": "Specifies the name of an input file.\n\n$ECALC_DOCS_KEYWORDS_URL/FILE",
+ "title": "FILE",
+ "type": "string"
+ },
+ "ADJUSTMENT": {
+ "$ref": "#/$defs/YamlFacilityAdjustment",
+ "default": null,
+ "description": "Definition of adjustments to correct for mismatches in facility energy usage.\n\n$ECALC_DOCS_KEYWORDS_URL/ADJUSTMENT",
+ "title": "ADJUSTMENT"
+ },
+ "TYPE": {
+ "const": "TABULAR",
+ "description": "Defines the type of model applied on the data in the file.\n\n$ECALC_DOCS_KEYWORDS_URL/TYPE",
+ "enum": [
+ "TABULAR"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ }
+ },
+ "required": [
+ "NAME",
+ "FILE",
+ "TYPE"
+ ],
+ "title": "YamlTabularModel",
+ "type": "object"
+ },
+ "YamlTabulatedVariable": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of variable. Must correspond exactly to header/column name in the energy function",
+ "title": "NAME",
+ "type": "string"
+ },
+ "EXPRESSION": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "description": "Expression defining the variable",
+ "title": "EXPRESSION"
+ }
+ },
+ "required": [
+ "NAME",
+ "EXPRESSION"
+ ],
+ "title": "YamlTabulatedVariable",
+ "type": "object"
+ },
+ "YamlTemperature": {
+ "additionalProperties": false,
+ "properties": {
+ "VALUE": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "title": "Value"
+ },
+ "UNIT": {
+ "$ref": "#/$defs/Unit",
+ "default": "K"
+ }
+ },
+ "required": [
+ "VALUE"
+ ],
+ "title": "Temperature",
+ "type": "object"
+ },
+ "YamlTrain": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Consumer name",
+ "pattern": "^[A-Z\u00c6\u00d8\u00c5a-z\u00e6\u00f8\u00e5\\d_/\\- ]*$",
+ "title": "NAME",
+ "type": "string"
+ },
+ "CATEGORY": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "User defined category",
+ "title": "CATEGORY"
+ },
+ "TYPE": {
+ "const": "TRAIN@V2",
+ "default": "TRAIN@V2",
+ "description": "The type of the component",
+ "enum": [
+ "TRAIN@V2"
+ ],
+ "title": "Type",
+ "type": "string"
+ },
+ "STAGES": {
+ "items": {
+ "$ref": "#/$defs/YamlCompressor"
+ },
+ "title": "Stages",
+ "type": "array"
+ },
+ "STREAMS": {
+ "description": "List of streams",
+ "items": {
+ "$ref": "#/$defs/YamlStream"
+ },
+ "title": "Streams",
+ "type": "array"
+ }
+ },
+ "required": [
+ "NAME",
+ "STAGES"
+ ],
+ "title": "YamlTrain",
+ "type": "object"
+ },
+ "YamlTurbine": {
+ "additionalProperties": false,
+ "examples": [
+ {
+ "LOWER_HEATING_VALUE": "38 # MJ/Sm3",
+ "NAME": "compressor_train_turbine",
+ "POWER_ADJUSTMENT_CONSTANT": 10,
+ "TURBINE_EFFICIENCIES": [
+ 0,
+ 0.138,
+ 0.21,
+ 0.255,
+ 0.286,
+ 0.31,
+ 0.328,
+ 0.342,
+ 0.353,
+ 0.36,
+ 0.362
+ ],
+ "TURBINE_LOADS": [
+ 0,
+ 2.352,
+ 4.589,
+ 6.853,
+ 9.125,
+ 11.399,
+ 13.673,
+ 15.947,
+ 18.223,
+ 20.496,
+ 22.767
+ ],
+ "TYPE": "TURBINE"
+ }
+ ],
+ "properties": {
+ "NAME": {
+ "description": "Name of the model. See documentation for more information.",
+ "title": "NAME",
+ "type": "string"
+ },
+ "TYPE": {
+ "const": "TURBINE",
+ "description": "Defines the type of model. See documentation for more information.",
+ "enum": [
+ "TURBINE"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "LOWER_HEATING_VALUE": {
+ "description": "Lower heating value [MJ/Sm3] of fuel. Lower heating value is also known as net calorific value",
+ "title": "LOWER_HEATING_VALUE",
+ "type": "number"
+ },
+ "TURBINE_LOADS": {
+ "description": "Load values [MW] in load vs efficiency table for turbine. Number of elements must correspond to number of elements in TURBINE_EFFICIENCIES. See documentation for more information.",
+ "items": {
+ "type": "number"
+ },
+ "title": "TURBINE_LOADS",
+ "type": "array"
+ },
+ "TURBINE_EFFICIENCIES": {
+ "description": "Efficiency values in load vs efficiency table for turbine. Efficiency is given as fraction between 0 and 1 corresponding to 0-100%. Number of elements must correspond to number of elements in TURBINE_LOADS. See documentation for more information.",
+ "items": {
+ "type": "number"
+ },
+ "title": "TURBINE_EFFICIENCIES",
+ "type": "array"
+ },
+ "POWER_ADJUSTMENT_CONSTANT": {
+ "default": 0,
+ "description": "Constant to adjust power usage in MW",
+ "title": "POWER_ADJUSTMENT_CONSTANT",
+ "type": "number"
+ },
+ "POWER_ADJUSTMENT_FACTOR": {
+ "default": 1.0,
+ "description": "Factor to adjust power usage in MW",
+ "title": "POWER_ADJUSTMENT_FACTOR",
+ "type": "number"
+ }
+ },
+ "required": [
+ "NAME",
+ "TYPE",
+ "LOWER_HEATING_VALUE",
+ "TURBINE_LOADS",
+ "TURBINE_EFFICIENCIES"
+ ],
+ "title": "TURBINE",
+ "type": "object"
+ },
+ "YamlUnits": {
+ "additionalProperties": false,
+ "properties": {
+ "RATE": {
+ "$ref": "#/$defs/YamlRateUnits",
+ "default": "AM3_PER_HOUR",
+ "description": "Unit for rate in compressor chart. Currently only AM3_PER_HOUR is supported",
+ "title": "RATE"
+ },
+ "HEAD": {
+ "$ref": "#/$defs/YamlHeadUnits",
+ "default": "M",
+ "description": "Unit for head in compressor chart. Supported units are M, KJ_PER_KG, JOULE_PER_KG",
+ "title": "HEAD"
+ },
+ "EFFICIENCY": {
+ "$ref": "#/$defs/YamlEfficiencyUnits",
+ "default": "PERCENTAGE",
+ "description": "Unit of efficiency in compressor chart. Supported units are PERCENTAGE and FRACTION.",
+ "title": "EFFICIENCY"
+ }
+ },
+ "title": "YamlUnits",
+ "type": "object"
+ },
+ "YamlUnknownCompressorStages": {
+ "additionalProperties": false,
+ "properties": {
+ "MAXIMUM_PRESSURE_RATIO_PER_STAGE": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Maximum pressure ratio per stage. Number of compressors will be large enough to ensure no pressure ratios are above a given maximum pressure ratio per stage, but not larger",
+ "title": "MAXIMUM_PRESSURE_RATIO_PER_STAGE"
+ },
+ "INLET_TEMPERATURE": {
+ "description": "Inlet temperature in Celsius for stage",
+ "title": "INLET_TEMPERATURE",
+ "type": "number"
+ },
+ "COMPRESSOR_CHART": {
+ "description": "Reference to compressor chart model for stage, must be defined in MODELS or FACILITY_INPUTS",
+ "title": "COMPRESSOR_CHART",
+ "type": "string"
+ }
+ },
+ "required": [
+ "INLET_TEMPERATURE",
+ "COMPRESSOR_CHART"
+ ],
+ "title": "YamlUnknownCompressorStages",
+ "type": "object"
+ },
+ "YamlVariableSpeedChart": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the model. See documentation for more information.",
+ "title": "NAME",
+ "type": "string"
+ },
+ "TYPE": {
+ "const": "COMPRESSOR_CHART",
+ "default": "COMPRESSOR_CHART",
+ "description": "Defines the type of model. See documentation for more information.",
+ "enum": [
+ "COMPRESSOR_CHART"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "CHART_TYPE": {
+ "const": "VARIABLE_SPEED",
+ "default": "VARIABLE_SPEED",
+ "enum": [
+ "VARIABLE_SPEED"
+ ],
+ "title": "Chart Type",
+ "type": "string"
+ },
+ "CURVES": {
+ "description": "Compressor chart curves, one per speed.",
+ "oneOf": [
+ {
+ "items": {
+ "$ref": "#/$defs/YamlCurve"
+ },
+ "type": "array"
+ },
+ {
+ "$ref": "#/$defs/YamlFile"
+ }
+ ],
+ "title": "CURVES"
+ },
+ "UNITS": {
+ "$ref": "#/$defs/YamlUnits",
+ "description": "Defines the units",
+ "title": "UNITS"
+ }
+ },
+ "required": [
+ "NAME",
+ "CURVES"
+ ],
+ "title": "YamlVariableSpeedChart",
+ "type": "object"
+ },
+ "YamlVariableSpeedCompressorTrain": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the model. See documentation for more information.",
+ "title": "NAME",
+ "type": "string"
+ },
+ "MAXIMUM_POWER": {
+ "default": null,
+ "description": "Optional constant MW maximum power the compressor train can require",
+ "title": "MAXIMUM_POWER",
+ "type": "number"
+ },
+ "TYPE": {
+ "const": "VARIABLE_SPEED_COMPRESSOR_TRAIN",
+ "description": "Defines the type of model. See documentation for more information.",
+ "enum": [
+ "VARIABLE_SPEED_COMPRESSOR_TRAIN"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "COMPRESSOR_TRAIN": {
+ "$ref": "#/$defs/YamlCompressorStages_YamlCompressorStageWithMarginAndPressureDrop_",
+ "description": "Compressor train definition",
+ "title": "COMPRESSOR_TRAIN"
+ },
+ "PRESSURE_CONTROL": {
+ "$ref": "#/$defs/YamlPressureControl",
+ "default": "DOWNSTREAM_CHOKE",
+ "description": "Method for pressure control",
+ "title": "PRESSURE_CONTROL"
+ },
+ "CALCULATE_MAX_RATE": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": false,
+ "description": "Optional compressor train max standard rate [Sm3/day] in result if set to true. Default false. Use with caution. This will increase runtime significantly.",
+ "title": "CALCULATE_MAX_RATE"
+ },
+ "POWER_ADJUSTMENT_CONSTANT": {
+ "default": 0.0,
+ "description": "Constant to adjust power usage in MW",
+ "title": "POWER_ADJUSTMENT_CONSTANT",
+ "type": "number"
+ },
+ "POWER_ADJUSTMENT_FACTOR": {
+ "default": 1.0,
+ "description": "Factor to adjust power usage in MW",
+ "title": "POWER_ADJUSTMENT_FACTOR",
+ "type": "number"
+ },
+ "FLUID_MODEL": {
+ "description": "Reference to a fluid model",
+ "title": "FLUID_MODEL",
+ "type": "string"
+ }
+ },
+ "required": [
+ "NAME",
+ "TYPE",
+ "COMPRESSOR_TRAIN",
+ "FLUID_MODEL"
+ ],
+ "title": "YamlVariableSpeedCompressorTrain",
+ "type": "object"
+ },
+ "YamlVariableSpeedCompressorTrainMultipleStreamsAndPressures": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of the model. See documentation for more information.",
+ "title": "NAME",
+ "type": "string"
+ },
+ "MAXIMUM_POWER": {
+ "default": null,
+ "description": "Optional constant MW maximum power the compressor train can require",
+ "title": "MAXIMUM_POWER",
+ "type": "number"
+ },
+ "TYPE": {
+ "const": "VARIABLE_SPEED_COMPRESSOR_TRAIN_MULTIPLE_STREAMS_AND_PRESSURES",
+ "description": "Defines the type of model. See documentation for more information.",
+ "enum": [
+ "VARIABLE_SPEED_COMPRESSOR_TRAIN_MULTIPLE_STREAMS_AND_PRESSURES"
+ ],
+ "title": "TYPE",
+ "type": "string"
+ },
+ "STREAMS": {
+ "description": "A list of all in- and out-going streams for the compressor train. The same equation of state (EOS) must be used for each INGOING stream fluid models",
+ "items": {
+ "$ref": "#/$defs/YamlMultipleStreamsStream"
+ },
+ "title": "STREAMS",
+ "type": "array"
+ },
+ "STAGES": {
+ "description": "A list of all stages in compressor model.",
+ "items": {
+ "$ref": "#/$defs/YamlCompressorStageMultipleStreams"
+ },
+ "title": "STAGES",
+ "type": "array"
+ },
+ "PRESSURE_CONTROL": {
+ "$ref": "#/$defs/YamlPressureControl",
+ "default": "DOWNSTREAM_CHOKE",
+ "description": "Method for pressure control",
+ "title": "PRESSURE_CONTROL"
+ },
+ "POWER_ADJUSTMENT_CONSTANT": {
+ "default": 0.0,
+ "description": "Constant to adjust power usage in MW",
+ "title": "POWER_ADJUSTMENT_CONSTANT",
+ "type": "number"
+ },
+ "POWER_ADJUSTMENT_FACTOR": {
+ "default": 1.0,
+ "description": "Factor to adjust power usage in MW",
+ "title": "POWER_ADJUSTMENT_FACTOR",
+ "type": "number"
+ }
+ },
+ "required": [
+ "NAME",
+ "TYPE",
+ "STREAMS",
+ "STAGES"
+ ],
+ "title": "YamlVariableSpeedCompressorTrainMultipleStreamsAndPressures",
+ "type": "object"
+ },
+ "YamlVentingEmission": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of emission",
+ "title": "NAME",
+ "type": "string"
+ },
+ "RATE": {
+ "$ref": "#/$defs/YamlEmissionRate",
+ "description": "The emission rate",
+ "title": "RATE"
+ }
+ },
+ "required": [
+ "NAME",
+ "RATE"
+ ],
+ "title": "YamlVentingEmission",
+ "type": "object"
+ },
+ "YamlVentingVolume": {
+ "additionalProperties": false,
+ "properties": {
+ "RATE": {
+ "$ref": "#/$defs/YamlOilVolumeRate",
+ "description": "The oil loading/storage volume or volume/rate",
+ "title": "RATE"
+ },
+ "EMISSIONS": {
+ "description": "The emission types and volume-emission-factors associated with oil loading/storage",
+ "items": {
+ "$ref": "#/$defs/YamlVentingVolumeEmission"
+ },
+ "title": "EMISSIONS",
+ "type": "array"
+ }
+ },
+ "required": [
+ "RATE",
+ "EMISSIONS"
+ ],
+ "title": "YamlVentingVolume",
+ "type": "object"
+ },
+ "YamlVentingVolumeEmission": {
+ "additionalProperties": false,
+ "properties": {
+ "NAME": {
+ "description": "Name of emission",
+ "title": "NAME",
+ "type": "string"
+ },
+ "EMISSION_FACTOR": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "integer"
+ }
+ ],
+ "description": "Loading/storage volume-emission factor",
+ "title": "EMISSION_FACTOR"
+ }
+ },
+ "required": [
+ "NAME",
+ "EMISSION_FACTOR"
+ ],
+ "title": "YamlVentingVolumeEmission",
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "description": "An eCalc\u2122 yaml file",
+ "properties": {
+ "TIME_SERIES": {
+ "default": null,
+ "description": "Defines the inputs for time dependent variables, or 'reservoir variables'.\n\n$ECALC_DOCS_KEYWORDS_URL/TIME_SERIES",
+ "items": {
+ "discriminator": {
+ "mapping": {
+ "DEFAULT": "#/$defs/YamlDefaultTimeSeriesCollection",
+ "MISCELLANEOUS": "#/$defs/YamlMiscellaneousTimeSeriesCollection"
+ },
+ "propertyName": "TYPE"
+ },
+ "oneOf": [
+ {
+ "$ref": "#/$defs/YamlDefaultTimeSeriesCollection"
+ },
+ {
+ "$ref": "#/$defs/YamlMiscellaneousTimeSeriesCollection"
+ }
+ ]
+ },
+ "title": "TIME_SERIES",
+ "type": "array"
+ },
+ "FACILITY_INPUTS": {
+ "default": null,
+ "description": "Defines input files which characterize various facility elements.\n\n$ECALC_DOCS_KEYWORDS_URL/FACILITY_INPUTS",
+ "items": {
+ "discriminator": {
+ "mapping": {
+ "COMPRESSOR_TABULAR": "#/$defs/YamlCompressorTabularModel",
+ "ELECTRICITY2FUEL": "#/$defs/YamlGeneratorSetModel",
+ "PUMP_CHART_SINGLE_SPEED": "#/$defs/YamlPumpChartSingleSpeed",
+ "PUMP_CHART_VARIABLE_SPEED": "#/$defs/YamlPumpChartVariableSpeed",
+ "TABULAR": "#/$defs/YamlTabularModel"
+ },
+ "propertyName": "TYPE"
+ },
+ "oneOf": [
+ {
+ "$ref": "#/$defs/YamlGeneratorSetModel"
+ },
+ {
+ "$ref": "#/$defs/YamlTabularModel"
+ },
+ {
+ "$ref": "#/$defs/YamlCompressorTabularModel"
+ },
+ {
+ "$ref": "#/$defs/YamlPumpChartSingleSpeed"
+ },
+ {
+ "$ref": "#/$defs/YamlPumpChartVariableSpeed"
+ }
+ ]
+ },
+ "title": "FACILITY_INPUTS",
+ "type": "array"
+ },
+ "MODELS": {
+ "default": null,
+ "description": "Defines input files which characterize various facility elements.\n\n$ECALC_DOCS_KEYWORDS_URL/MODELS",
+ "items": {
+ "oneOf": [
+ {
+ "discriminator": {
+ "mapping": {
+ "GENERIC_FROM_DESIGN_POINT": "#/$defs/YamlGenericFromDesignPointChart",
+ "GENERIC_FROM_INPUT": "#/$defs/YamlGenericFromInputChart",
+ "SINGLE_SPEED": "#/$defs/YamlSingleSpeedChart",
+ "VARIABLE_SPEED": "#/$defs/YamlVariableSpeedChart"
+ },
+ "propertyName": "CHART_TYPE"
+ },
+ "oneOf": [
+ {
+ "$ref": "#/$defs/YamlSingleSpeedChart"
+ },
+ {
+ "$ref": "#/$defs/YamlVariableSpeedChart"
+ },
+ {
+ "$ref": "#/$defs/YamlGenericFromDesignPointChart"
+ },
+ {
+ "$ref": "#/$defs/YamlGenericFromInputChart"
+ }
+ ]
+ },
+ {
+ "$ref": "#/$defs/YamlCompressorWithTurbine"
+ },
+ {
+ "discriminator": {
+ "mapping": {
+ "COMPOSITION": "#/$defs/YamlCompositionFluidModel",
+ "PREDEFINED": "#/$defs/YamlPredefinedFluidModel"
+ },
+ "propertyName": "FLUID_MODEL_TYPE"
+ },
+ "oneOf": [
+ {
+ "$ref": "#/$defs/YamlPredefinedFluidModel"
+ },
+ {
+ "$ref": "#/$defs/YamlCompositionFluidModel"
+ }
+ ]
+ },
+ {
+ "$ref": "#/$defs/YamlTurbine"
+ },
+ {
+ "$ref": "#/$defs/YamlVariableSpeedCompressorTrain"
+ },
+ {
+ "$ref": "#/$defs/YamlSimplifiedVariableSpeedCompressorTrain"
+ },
+ {
+ "$ref": "#/$defs/YamlSingleSpeedCompressorTrain"
+ },
+ {
+ "$ref": "#/$defs/YamlVariableSpeedCompressorTrainMultipleStreamsAndPressures"
+ }
+ ]
+ },
+ "title": "MODELS",
+ "type": "array"
+ },
+ "FUEL_TYPES": {
+ "description": "Specifies the various fuel types and associated emissions used in the model.\n\n$ECALC_DOCS_KEYWORDS_URL/FUEL_TYPES",
+ "items": {
+ "$ref": "#/$defs/YamlFuelType"
+ },
+ "title": "FUEL_TYPES",
+ "type": "array"
+ },
+ "VARIABLES": {
+ "default": null,
+ "description": "Defines variables used in an energy usage model by means of expressions or constants.\n\n$ECALC_DOCS_KEYWORDS_URL/VARIABLES",
+ "patternProperties": {
+ "^[A-Za-z][A-Za-z0-9_]*$": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/YamlSingleVariable"
+ },
+ {
+ "additionalProperties": {
+ "$ref": "#/$defs/YamlSingleVariable"
+ },
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "title": "VARIABLES",
+ "type": "object"
+ },
+ "INSTALLATIONS": {
+ "description": "Description of the system of energy consumers.\n\n$ECALC_DOCS_KEYWORDS_URL/INSTALLATIONS",
+ "items": {
+ "$ref": "#/$defs/YamlInstallation"
+ },
+ "title": "INSTALLATIONS",
+ "type": "array"
+ },
+ "START": {
+ "default": null,
+ "description": "Global start date for eCalc calculations in format.\n\n$ECALC_DOCS_KEYWORDS_URL/START",
+ "format": "date",
+ "title": "START",
+ "type": "string"
+ },
+ "END": {
+ "default": null,
+ "description": "Global end date for eCalc calculations in format.\n\n$ECALC_DOCS_KEYWORDS_URL/END",
+ "format": "date",
+ "title": "END",
+ "type": "string"
+ }
+ },
+ "required": [
+ "FUEL_TYPES",
+ "INSTALLATIONS"
+ ],
+ "title": "Asset",
+ "type": "object"
+}
\ No newline at end of file
diff --git a/assets/images/asv_recycling-8cbf643933baa1262460838cc4b483ae.png b/assets/images/asv_recycling-8cbf643933baa1262460838cc4b483ae.png
new file mode 100644
index 0000000000000000000000000000000000000000..07d2ee8c95711c1350623ada5abc2f3e6308626f
GIT binary patch
literal 44134
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
literal 0
HcmV?d00001
diff --git a/assets/images/changed_rate_resampling-1618c246583304921e59eced813219f2.png b/assets/images/changed_rate_resampling-1618c246583304921e59eced813219f2.png
new file mode 100644
index 0000000000000000000000000000000000000000..001279ea62cb0b290286ecc16b38ce1b3dbe6390
GIT binary patch
literal 237031
zcma&ObzD@>_dgB@0)m7f-5??$D9zGR(h^FCbT75Q(xHH)v^0WrEL{>J(%s$N-Lc;b
zzTWSbAK$+}e*1W=dzpJ@=FZGHXU=(^=lJQ3yyU|NBo7b}5FSds7E?k%xPOCyfUJdf
zA1G0(T3JFsz!WwU6@4QmDoXXn4s2{@X@r3A`ct$js+w{;L9%AVXJIrPVPWYtIh-8C
zZy)+z?V@qLdPEh4b5Eo>l!dX%vDoXO_G85&Bz?&(=D>%S`Xb`$gcy#?au3#OU~b@g
z@Xpm~3Ok(Fey6L>2_ZFUF0i>e`#u6R?Uj_)YXk#XX-3~8{5fIlJ_M96Hc%A(ce1j`
zUPeXNu283YR3#_5zOtJs*YI-F0~8c~gwI3)gXbu<`~lbqUaI@QB3>Z`u+6yHeO2>&
zk23Lyi0T)HA&;_mo*|F6_i3BeqlGb?N~F}ZmSt%+#5WC?PzhXCJoD^RkuACf3~_`$
zBAm;W<>f+FM`eeG8X#uuOIV-t8kJhl%fj23?H%@fOa43}+%vp}l{
zL@3`CTq-1F_$2kogNKd04@j3JT%v$MBlwl|(iud>=n;Pcz(Eh#y
zwc~>Qy(Vg|4?Jp7q>sNY4YGe|Bny~-Ad-cK!HbTwDN-x^1_vKjHcr?Brx1Xgs%NU@RjY~+NCk%kywxHX_N%RYEl7jP@6Ch#
z!B@+fH9G9kL#PZ=7&YyczY|M7KM|NEzvRZV7rSJZn81)GD%hcq)|bmv3X|skBhgQd
zVwzJ3r_FWyXwJv}!^9>F$-akY)(XzA)~NXDw4OTPTFc?by!HrWd*mQ;t!KnC;Ms*@
zjlwy-hcJbjD{7=g$c=zi#dOs4^E%apyR9VJwzK5tnbaki{cPThVY^MI-n1PzLRCkygfOlo6NCU&qlZ;|(*?fsn}q-VZVIQP>;kX|F==^d%t
zB+2|Rd_mrYn2}1xjFR^QRD^4Z$oIp#2%E!)c8-qc9*a-s9H{D^ssgt&;>8cXJz^1@
zN3X=!0tEGa)M!ou*nf(-g;UWXeG*mr%t42TORZ!GVk3Me8AH4Ix%>6Q5<=b&iDEsp
zf<-10gVBc
z0o#GcO5E$dfw_U70!yWfq;msbXNYCIGRo?B8O_9~@K!LAvn|Gu)s7=hAz51I)r_
zy)KPYq>wVlvk`nsX{09!Z2l#FN|L;C)iTiZ++6d_jU19ZMwO(38VN|)2JbLxF6D69
z(ALnH`Qp$w^Pu61yrehZGfw=ZGc**hb8?1WZRndnJjOp3JoW`?Pb(&+_o$|1=;X|#
zdWc^?36U-RR&0uA+FbTv!eioz2JF6ileBL^B{N4k%hd{>>BI}_Tek?
z-G}kLWv?~fX^3dJ6+ksK%jC@j(hMBzK?yzSy&2$)luRcJyz+u_-ih&v<%#d*ljWBV
zWe!@92#3ryl?}4t^?_!G0teoj>KYk`)AgCYYmP2cB8xA2V?We^h=+do7@L_Cb`fAev`EqYQb79
zBoa*Ny+eH*Ln`Jq<7LxFrE%rzY3iTU>&6A_19=Deo7^&>LC}=xt~L=>!Oa%u>aj+Cyb5o(TV%$9$hI2)HO$*HI|mMJruSQ#sOe>u%j2Hy&-Vb!N0LN9Wb${ebvx
z%5m3dew%cwB&dY#Q0zQ91)Wl0V}x;pF^0)!af`y^`LT%dh!I}Ch`ZxDTf|#<-fDWU_0;uTKfimU-&d1**=XDt*I3@@PHjy+_)7l6
zqgPF$u^%1nf_eDmA7-(3(OOEVSyX8_yPehS`Qtj`Mg*+9=3ryC6JMHU=wwh-G2jST
z5rYNP6B>}SKU=Y3e#u2&!FD1wm0h)NYqGe$kGJU5(jbHOS}nrnX+OPU{8)sT3`wj?
zybad7n){m(SAX3|eG=rgQkwkb(D9EZntY^@iiTc?S@0v;V_hj^Iu
zOY%IRaISDZTTc?|=e$-X6NJ_rmGP4)JyI~~-Nj;P9+dU$<|_J%!aGc_dd|#Gq2(ah
zBu+4niOsd-s)Vt`<)h_1Xg+VNZ!2Vc*FMd@Vij|VesyFuXDMTu{E^uwJF$ZEmUHC;
zzF#K`O17hPFsVHHW2v7{CLetE*+-H4II$;LFK14BEq;;OR+(M0*0l7k{W8l`9#_sR
z!JHd1Ka|zn*xVr3l(nB(F3X)HXma68oKKu!Lc>02Qqjeh!U=wNy7hUSZ{^L(QrCIi
zuN*^Y`($;yeZnencY?rfKPz>^P)u&Dv^3wUYwv6of-aR-Uwxm^{KUuEjx!^|j-(Ez
zjt1t1=QVqq*}9`wpduav+sj9%Pe@}P#RkUAsI635w%TFJ2
zQ%!=|6pU5HmuS?~Sjhc~&nzdfh%LM>VX>G#?(pikU~J0$_;z>na8!4EuHmb7dVkA7
zND3D^_w*E5N%hx>+!}ohTbcftr<#!!$=4z0n%!K!R?Cz1)`V8O6S$S>UAfwNtzgr;ylRl*)PU1)Hl=xywUY9d)k=rrtP>8asDJ4`4WonI*I{)@hZ|pN
zj#fUuetCU5yIgm9RlntX<4;Z*N7?HkeRFhlxWxL6)uMjF!|I0MW_w3?=7-l8ruhy}
zlox9K!I%g-U{tSoBn0y0UIv55t3pr_e3N&)NN{wfo`8b|EMf91>)}p4>?YTjLMH
zbl;?KVR;cTBA_QDKx~O~eN8yetCijb?2#2c+puua0iAJ++pb(u@1$r_DML_%D&a_x
zlWtlSgsas+ND*kHCS@!qhrkG2qah$8k|3Y}SBSt@5Rvr1*Aj>f2>0&Fkq{94%@C0P
zc}5=iz5RR!zPELL|K5x6LqG-odIWr(Q<47j^!=OEd;hsc)&lM!h$xFnNddpg26je9
z*7l}g2lb+*k3a#s&1-dg1O$R7w_ijlCAvMJ{V_8YH3v00SwPisii_Sl@`n*~;d&
z9Rz-75O8T_DBl1
z!3R`SRQz^^#vmmziGQjCe+kf-Iyl&XSXrH%oLHRLS-^HCtS@J&nBTIELGb>=ufIb9YzI@5We^=puZvETkA63=<
zsLIXz;?Jso-1@ufTYDorQLq)zse|CZ3-(XtKX3k1k)QQ;?0?L~?}@%E1!h|C0YB@1
zS55FiZ2e^^u#jYCVhSq2FCb>OA0!swABNw*z%}9p!^uZOeFOwy1Sv5Q6=%e)B-F9T
z&BI>Uaw=lt_|$1sL>P|fW3GhXUyh9Fi!*1ZKDsWZYM}~1c|x%Dyv0v{S6`L+E82-q
zAWGwd>?zM)y3+CQm9x{AFTY>*9PU{q*!A$4u$J0qa&$sP&_2<=FdLwwJ>1BHCG(8q
zs(rYSsd)Uxb4a%YoletbMrea|9692-z%J!+tR+%=O!8^ig$$Rsp-k_k-3ulIjZr2!<#4HZ{p|AWQ`1<<)cLhl4C%mU@i@gJLXozUS2uL_y2*^|jz$Mj31J3^HDwoP@
z5%%DRuh)dP}*LbVs
z5n59=IX}4l_4vYVGZdjqNdLFjAL>A_i3KFczW;X;aF`IuJc}3T*#CN)9o!%Lt2#+k
zxc_%$yd`jc?2n@5E}{R`JT=ffSuW<^bKEBkl#`&v=KuZn!ob^OlzU!;dfH)xQ#QD=enw!286<^DK+}
zRjz+qPQ=svSGk%nAlT2T_VE8+#2mD_GYiInsC)l+9`qW4)vDAxR|fqx06#p_vc=s=
za6`1&U?#D^J1txB^}es7O^`H%zh)kX0gyA;XLP4Ko%{DSzXb}bw9aA+T~UPzUSzu+
z^-B(o>zPxDbVb+?-h8es_S0fmBcq{Qqe+U(YD`8$qL;4;u(hbcQ>Z|
z-hO;HcGZcpNuam&7aL6K#&JeslAar_)QEqpcf6l4e(NmvtQ)N_Dt1g9yU7ZA-mIe}
zIV36(x)OKL$=a|aFo@wUXxN5hHj=O2$Zq|IX5L*28=(DKICH%|9$gOMp24}M(sEhP
zFe>flinN}tY3~(+GdKA?jI5mXn2h!K`jH?aJxox8YfSGRoZ{(UOH0+qgQQ62sj36b
z;6ENx7XN55T9~xPmXh%besi6n3e(A;u&4Zc0Q&Seqz-cqqL`E$vTJm<3!?ni2E
zdf!Lzd?_+b#@D>hwUyi{G2|!i-+hzFQbjE80&~QHRXgi(Ss>iSWi`=O3q1^EIZq4!
z?yyd?n&Rmp0{Y)Mt3}>`T&;6YQ~Q(Ye^B(FUC&Bk$t$RcA0OQfWGdYIIQ8D2d@0oz
zi*0nb_ApePM1{4+X_sX+*|m@oSZ_6?8vZR!aNQH2>sp7kzQ&nQH%pcJaFj!~s0`
zkV4h2wm#dNKL7-!^ZRZ+(?n%m4`{P(_U44!Y_`6x-QwbC{Qy{kFDD_^W=2h@lx|eM
z_a8>U8g4WQbe!LhJI%T;d)>n-3M0L^+$H=ewS~+$oJXM6L9b8fhe`d0*86p+P*QhR
zLe*rdEB9Km$9!t1r*&DsL?&XcjL(G4{71r$U5`^f*Y^Ki8(}J}R^2cPfu&&fp1q7g
z??m{`X+w9pV_-qi&j&Z`(=#G`Ajq>m#dL}DQ(oIxFAx-%GV=|Gg)88vS$(NT7dxd&8brnrEf{EGF45c*CIG%ZPjPGT{>M%Y{cGhp)awf-2$9nSW
z3fZCey>|SRAF!TUp}Z?ZuIl^Qld4uF?ex&ex8q{mGtTK`&U4-+mpk7(>rQ7ZtT*4i
zyKt=^kY;3Kz$lPwiK_UZxW{L}mHCE6|8jw7h7{5)nd!sHFIL-$RWL$6N6c
zy3?A^3`ij)a?{yvi(Z`!+dK>rsCQP784c+ebfYrTge^1`oI2W5VBf>rN(f&`0LR!a
zw!~SGzjVNQ&g1p4XeYMr(av#Zju~{YVWfrybeZ%Y5@@v?0T9Gef?8V&n}V
zIlt6ZF|}@am8w;@fxw+qt_w&Uu9qwo&POk9QC6o$6vDNyD|7B^%O{gyp~K$E-d=^>
zkVi+mu9VOlcLC^9xa5_|498ZjiPmo$c#T{e8lT8rM3dFft&=6W(qo0Sk7UjTOCLA+?5IpY}p!)XwAJhbi!*hV9yM{Tp}K
z;9$dU_k*Kd`vnR_@QPHAX3|sGL;XpojL?~2zr;#^13IJHW!=M$BV&Atj$V3em3l6C
zb}L=w6ZkIthP865q;sYA$&p?1A^D~?E(2||@LHd$fN0@rmjXk);s>vcak72ASi03K7kd**wmkcw
zGR_yx7ON!?G#$_DV_@>pK{sW-vA*~|l#InUXUD9uU*6_I^x4
z*I;B&3r@ho*`Q!F!E=qJ;e^U5hwU@KxbA1(h@LPs6z%PIv-)QQ3b5)C!p>
zLz@(qT}(Qz7IyJfQ;J(v;>Wv)$kjXb?jyS0cp1YT55mZJ*_>9BoZjKvw0)*tN!a~>
zC*RhcEbv|5jfR;BX=Wf9nv}S)r|C2eu|J*l^z513WXK}_Izti43qCLPao#ApJQ`FW
z44y-0;cT~(QcYw;FZ2+D2~%yHerDpzWxw>f$9M#nf3=7%W_tzg>{=O)>#;24RI$V1
zJUDH5r~XM-z+3uQ!(IN@2jM|H(-o_Uq(OILhlV;ApTe*3eo0EH&Y0)jGalQMmE7ZN
zBvms9lnc*EX=;e8?oYGM0iwlz3W59gr%NU{tWbO2Ia;aoNJ7^~kyn8EC)~Z4LzToW
zt?5v@u5?-EoL+W#vi7Vk_2)zIhlZ`{)#QVDf6Dk-XPAKk7VpyM2RV#FfQm%R6tYOr
zjxK|bk_o==)Z|S8yH3Dz}I{HW>9dGFdPCasy02m5xEP@tq)
z({5%fD7$2*Y*1dpdYY;KK6u_Z!&`BRMq5R!(`_}*9JShXFXmwlBypz?KwL5{En=9uS
zrWJKKq6xOz61P(Ko%p`vnroCxZc6@4vjDCya=dT+E@)-@IkxG{M{L0};o7*Ov|X=*
zDLvnZhPN)O9QSmY8o`QA0VMBJ;JVsI-9v)>io><^FcR{oa`A>I)k@b#0w*yNm=e!<
z!pxiIF*l196C?#3-w*nQ&Ey(q*4Hjmh7^pidR{G38UYR++wo?%Uo7BGObN2Jx)^3x
z%s8ZImy2H)3=1Olo*T|YrXpOxy>418k}vpjcO%>@t@sPr!5Fxuv#^P3?n$}YC-K_`
zIjtug#W(ev;P8%$X~)U9S;}kAW>PQxEuC3XaLYH{P`SgO7_48MB;X2THcbz29jedD
z^1M%W;dIlHT!~z)w7Wkwi{-6r_azQB*B?e5Q*OHQxt-bA7c}5$T32WAj?TJ0*YxC$
zF1Q)7Xb8H0U4IhulWX-ta@Gi(!4I#QnT4BgYQVt{{aj`hhr1Jg8F&~#grvbZpU;I}
zO`_%MPF7g?Hh(#E*=YEpV+*g}@JN_o>A&Wx%gB}Eld#&}`M%4=mFaHAR9KakZLOi(
z$y_SyZ5_Q)o+yVuSe(q||KP2KYql`1wPB+!JFErXy+Gvw7AN`K(sAY;-?v(j>*5k?ndg<;Kw1RbyPh
zUq`3DqHFGDRqR`Q!HO;=NtiwFDle*ZN4l%H2cVG9c3{S}%@v7JjIffOc4wxq{Fa{_
zvHUzqy8?o@!?bhfP+s;XbrYw@lRl01?^dm=mt$;jS3qahW+~$VxU_*QU)eTeFy`NY
zr_BZ5lXuotR%pqkcaq;HzTXQNq02;%Nqh`N%PKVw7uY+}VGhNuSA&EY$%m!$EbJ_NCbbhA1S&03NA9GH`VUwFGm<#Dj*-$~g7
z;V-_NQ}SW1q*XMgcDlA#ok2?Q_jM%umn1Bro8N(fiysdPP}GS~iv+LK-tB}o=f`Ed
z8&=ql8GeSyJ_;xsGNJ$UmE(4UM@3unkK#t+g*B#8l9U>EGcrzdj%q~`s*>i+Fl^UW
z)d*gT6KY2(`!8fGrpx*Vak+6Ma|aG%PV_ZWkT{I9gaF>`>X$~^3{YTge-N-KdyoIp
zB0Y$Y^=LDvow`vTU+GRzeOupbIAoMvt5{O4tROJ#fK29o)Xxi!N
zv0B9U{&JbU=<%RD^0ehO5aG2!OP>XO3pCO8Ag4<|FjKEltm=5-apinyOLp}G&1po<
zy9}$A_>kT`MbJHXYT{+440MA+c7Csmy_aZYX6=lhw2z|#t5z`v+P<+I8H-MMw~f!?
zBTh;Y`oEb_U+Fqm=o%U6epEPZiQT@hxnUO&OKVP4oKkrW#v`fDk~juE36}R
zn;*<2KdklBN(ww8I&4;cZQZ0{QSkO<61QlZ1nZ=k)~B!(sc<~-ikLj)!HVJ*e-&Br
zj=_5ONX{3DLq$zzz-2s;#+sBVKJYoMaadQXV1}R(OmZ_@5;pP&CHZ^yZWd_1tso)a
zcFo&otzL>K0ck+%q8sdHx~SzA{Ij{XOz=TD!xHHe;@Qsdk|@zew*JL#?pezP$>^^W
zE`z%uu%m@e(#O-~=PR-peAc5{_T9Do4pOEM0Vy3+EpdmmjHO90te%2^%jLz|EKWoM`X*w%?M>^z2g|%`A
z<@Ft+=skh{Li$pOc4(9M9}tpu|EhjEyG8vM`5}RfhcRKIeJeMlTrEno5;21t6U0_K9Kyh
z^(8l(If#NTuXWLoAAN(@F0URWLuCS2YBT1#l0QTrJU`)QNZ(n